summaryrefslogtreecommitdiff
path: root/SDL_Core/src/components
diff options
context:
space:
mode:
authorJustin Dickow <jjdickow@gmail.com>2014-03-18 13:46:46 -0400
committerJustin Dickow <jjdickow@gmail.com>2014-03-18 13:46:46 -0400
commitba492fb83c258bc60ca68120ce964a95b41133b5 (patch)
treeaf99c087941d65a19831397c1ec5eb34850cfc7f /SDL_Core/src/components
parent8504605b01177da2e55bee6abe4c3f20c82da379 (diff)
downloadsmartdevicelink-ba492fb83c258bc60ca68120ce964a95b41133b5.tar.gz
initial commit for API 3.0 (replaced all)
Diffstat (limited to 'SDL_Core/src/components')
-rw-r--r--SDL_Core/src/components/AppMgr/CMakeLists.txt42
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/AppChoiceSets.h156
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/AppMenus.h129
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/AppMgr.h159
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/AppMgrCore.h382
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/AppMgrCoreQueues.h115
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/AppPolicy.h89
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/Application.h356
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/Application_v1.h161
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/Application_v2.h187
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/AutoActivateIdMapping.h128
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/ButtonMapping.h142
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/CapabilitesContainer.h110
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/CommandMapping.h318
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/ConnectionHandler.h105
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/DeviceHandler.h121
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/DeviceList.h106
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/DeviceStorage.hpp64
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/HMIHandler.h122
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/MenuMapping.h136
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/MessageChaining.hpp53
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/MobileHandler.h101
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/RegistryItem.h129
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/SyncPManager.h128
-rw-r--r--SDL_Core/src/components/AppMgr/include/AppMgr/VehicleDataMapping.h129
-rw-r--r--SDL_Core/src/components/AppMgr/src/AppChoiceSets.cpp178
-rw-r--r--SDL_Core/src/components/AppMgr/src/AppMenus.cpp132
-rw-r--r--SDL_Core/src/components/AppMgr/src/AppMgr.cpp191
-rw-r--r--SDL_Core/src/components/AppMgr/src/AppMgrCore.cpp7720
-rw-r--r--SDL_Core/src/components/AppMgr/src/AppMgrCoreQueues.cpp172
-rw-r--r--SDL_Core/src/components/AppMgr/src/AppPolicy.cpp84
-rw-r--r--SDL_Core/src/components/AppMgr/src/Application.cpp454
-rw-r--r--SDL_Core/src/components/AppMgr/src/Application_v1.cpp187
-rw-r--r--SDL_Core/src/components/AppMgr/src/Application_v2.cpp225
-rw-r--r--SDL_Core/src/components/AppMgr/src/AutoActivateIdMapping.cpp187
-rw-r--r--SDL_Core/src/components/AppMgr/src/ButtonMapping.cpp193
-rw-r--r--SDL_Core/src/components/AppMgr/src/CapabilitesContainer.cpp108
-rw-r--r--SDL_Core/src/components/AppMgr/src/CommandMapping.cpp381
-rw-r--r--SDL_Core/src/components/AppMgr/src/ConnectionHandler.cpp131
-rw-r--r--SDL_Core/src/components/AppMgr/src/DeviceHandler.cpp133
-rw-r--r--SDL_Core/src/components/AppMgr/src/DeviceList.cpp121
-rw-r--r--SDL_Core/src/components/AppMgr/src/DeviceStorage.cpp84
-rw-r--r--SDL_Core/src/components/AppMgr/src/HMIHandler.cpp174
-rw-r--r--SDL_Core/src/components/AppMgr/src/IAppCommand.cpp82
-rw-r--r--SDL_Core/src/components/AppMgr/src/MenuMapping.cpp153
-rw-r--r--SDL_Core/src/components/AppMgr/src/MessageChaining.cpp49
-rw-r--r--SDL_Core/src/components/AppMgr/src/MobileHandler.cpp117
-rw-r--r--SDL_Core/src/components/AppMgr/src/RegistryItem.cpp183
-rw-r--r--SDL_Core/src/components/AppMgr/src/SyncPManager.cpp191
-rw-r--r--SDL_Core/src/components/AppMgr/src/VehicleDataMapping.cpp158
-rw-r--r--SDL_Core/src/components/CMakeLists.txt81
-rw-r--r--SDL_Core/src/components/ConnectionHandler/CMakeLists.txt16
-rw-r--r--SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CConnection.hpp153
-rw-r--r--SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CConnectionHandler.hpp180
-rw-r--r--SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CDevice.hpp115
-rw-r--r--SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IConnectionHandler.hpp83
-rw-r--r--SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IConnectionHandlerObserver.hpp81
-rw-r--r--SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IDevicesDiscoveryStarter.hpp75
-rw-r--r--SDL_Core/src/components/ConnectionHandler/src/CConnection.cpp110
-rw-r--r--SDL_Core/src/components/ConnectionHandler/src/CConnectionHandler.cpp282
-rw-r--r--SDL_Core/src/components/ConnectionHandler/src/CDevice.cpp70
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/AppViews.js168
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/Flags.js93
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/SDLApp.js166
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/StateManager.js417
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/controller/AppController.js73
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/controller/InfoController.js128
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/controller/MediaController.js156
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/controller/PhoneController.js110
-rw-r--r--SDL_Core/src/components/HMI/app/controller/sdl/AppController.js125
-rw-r--r--SDL_Core/src/components/HMI/app/controller/sdl/Controller.js1142
-rw-r--r--SDL_Core/src/components/HMI/app/controller/sdl/MediaController.js93
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/controller/sdl/NonMediaController.js74
-rw-r--r--SDL_Core/src/components/HMI/app/controller/sdl/RPCController.js2898
-rwxr-xr-xSDL_Core/src/components/HMI/app/controlls/AZERTYLayout.js264
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/controlls/Button.js330
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/controlls/Indicator.js259
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/controlls/Label.js110
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/controlls/List.js360
-rw-r--r--SDL_Core/src/components/HMI/app/controlls/MenuList.js275
-rwxr-xr-xSDL_Core/src/components/HMI/app/controlls/QWERTYLayout.js264
-rwxr-xr-xSDL_Core/src/components/HMI/app/controlls/QWERTZLayout.js264
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/controlls/ScrollBar.js328
-rw-r--r--SDL_Core/src/components/HMI/app/controlls/ScrollableText.js261
-rwxr-xr-xSDL_Core/src/components/HMI/app/controlls/sdl/PresetButton.js59
-rw-r--r--SDL_Core/src/components/HMI/app/mixins/PresetEventCustom.js37
-rw-r--r--SDL_Core/src/components/HMI/app/mixins/PresetEvents.js25
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/model/PhoneModel.js171
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/model/abstract/RangedValue.js271
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/model/media/CDModel.js86
-rw-r--r--SDL_Core/src/components/HMI/app/model/sdl/AppModel.js578
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/model/sdl/MediaModel.js487
-rw-r--r--SDL_Core/src/components/HMI/app/model/sdl/Model.js1027
-rw-r--r--SDL_Core/src/components/HMI/app/model/sdl/NonMediaModel.js274
-rw-r--r--SDL_Core/src/components/HMI/app/model/sdl/VehicleInfoModel.js642
-rw-r--r--SDL_Core/src/components/HMI/app/util/Audio.js20
-rw-r--r--SDL_Core/src/components/HMI/app/util/StreamAudio.js49
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/WarningView.js231
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/home/bottomControls.js179
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/home/controlButtons.js771
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/home/statusClimateView.js135
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/home/statusInfoView.js124
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/home/statusMediaView.js188
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/home/statusNavigationView.js119
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/home/statusPhoneView.js139
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/home/topControls.js116
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/homeView.js80
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/info/alertsView.js247
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/info/appsView.js292
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/info/calendarView.js180
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/info/devicelistView.js104
-rw-r--r--SDL_Core/src/components/HMI/app/view/info/nonMediaView.js363
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/info/servicesView.js108
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/info/travelLinkView.js332
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/infoView.js358
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/media/common/LeftMenuView.js164
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/media/playerView.js84
-rw-r--r--SDL_Core/src/components/HMI/app/view/media/sdl/controllsView.js44
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/media/sdlmediaView.js133
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/mediaView.js96
-rw-r--r--SDL_Core/src/components/HMI/app/view/navigationApp/baseNavigationView.js173
-rw-r--r--SDL_Core/src/components/HMI/app/view/navigationAppView.js76
-rw-r--r--SDL_Core/src/components/HMI/app/view/navigationView.js40
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/phone/dialpadView.js426
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/phoneView.js199
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/AlertManeuverPopUp.js191
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/sdl/AlertPopUp.js129
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/AudioPassThruPopUp.js34
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/ExitAppView.js114
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/sdl/TTSPopUp.js89
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/VRHelpListView.js104
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/sdl/VRPopUp.js127
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/VehicleInfoView.js10
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/app/view/sdl/driverDistraction.js0
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/shared/interactionChoicesView.js373
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/shared/keyboard.js290
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/shared/optionsView.js79
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/shared/scrollableMessage.js110
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/shared/sliderView.js75
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/shared/tbtTurnList.js141
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/shared/turnByTurnView.js206
-rw-r--r--SDL_Core/src/components/HMI/app/view/sdl/tbtClientStateView.js2
-rw-r--r--SDL_Core/src/components/HMI/app/view/settingsView.js23
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/audio/alert.wavbin37428 -> 37428 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/audio/initial.wavbin46834 -> 46834 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/audio/listen.wavbin11070 -> 11070 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/audio/positive.wavbin20302 -> 20302 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/css/buttonControls.css376
-rwxr-xr-xSDL_Core/src/components/HMI/css/climate.css2289
-rwxr-xr-xSDL_Core/src/components/HMI/css/ffw.css28
-rwxr-xr-xSDL_Core/src/components/HMI/css/fr.css17
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/css/general.css2004
-rwxr-xr-xSDL_Core/src/components/HMI/css/help.css83
-rwxr-xr-xSDL_Core/src/components/HMI/css/home.css59
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/css/info.css1572
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/css/mcs.css6756
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/css/media.css3471
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/css/navigation.css2287
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/css/phone.css3048
-rw-r--r--SDL_Core/src/components/HMI/css/sdl.css567
-rwxr-xr-xSDL_Core/src/components/HMI/css/settings.css3423
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/ffw/BasicCommunicationRPC.js835
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/ffw/ButtonsRPC.js287
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/ffw/Framework.js80
-rw-r--r--SDL_Core/src/components/HMI/ffw/NavigationRPC.js319
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/ffw/RPCClient.js551
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/ffw/RPCObserver.js192
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/ffw/TTSRPC.js401
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/ffw/UIRPC.js1511
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/ffw/VRRPC.js287
-rw-r--r--SDL_Core/src/components/HMI/ffw/VehicleInfoRPC.js405
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/ffw/WebSocket.js152
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/airflow_feet_wide.pngbin1219 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/airflow_panel_wide.pngbin1099 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/bg.pngbin4573 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/fan_control/fan_ico.pngbin1787 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/fan_control/fan_ind_active.pngbin1447 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/fan_control/fan_ind_def.pngbin986 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/fan_control/fan_minus_control.pngbin930 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/fan_control/fan_plus_comtrol.pngbin1020 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/gang_buttons/ac_ico.pngbin1271 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/gang_buttons/auto_ico.pngbin1285 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/gang_buttons/defrost_ico.pngbin1410 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/gang_buttons/maxac_ico.pngbin1631 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/gang_buttons/recycle_ico.pngbin1386 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/gang_buttons/windsheald_ico.pngbin1431 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/gang_buttons/windsheald_max_ico.pngbin1067 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/heated_stearbutton_blur.pngbin4060 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/helpmode_climate_front.jpgbin16597 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/helpmode_climate_rear.jpgbin17229 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/helpmode_climate_simple.jpgbin14712 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/ind_horiz_active.pngbin2334 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/ind_horiz_active_wheel.pngbin2465 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/ind_horiz_def.pngbin1038 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/ind_vert_active.pngbin2346 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/ind_vert_def.pngbin1066 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/key.pngbin1458 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/left_person_control/cooledseat_ico.pngbin1492 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/left_person_control/cooledstear_ico.pngbin1549 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/left_person_control/heatedseat_ico.pngbin1543 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/left_person_control/mytemp_ico.pngbin1630 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/minus_ico.pngbin1082 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/modeman/defrost_ico.pngbin1525 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/modeman/feet_ico.pngbin2087 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/modeman/panel_ico.pngbin1373 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/modeman/panelfeet_ico.pngbin2189 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/plus_ico.pngbin1161 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/power_button/power_icon.pngbin1425 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/center_dot_rear_fan.pngbin1014 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/full_ico.pngbin1026 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/heat_ico.pngbin1181 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/indicator_long_act.pngbin1312 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/indicator_long_def.pngbin990 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/minus_icon.pngbin941 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/plus_icon.pngbin1020 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_closed.pngbin988 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_icon.pngbin1355 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_opened.pngbin986 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/rear_climat_ico.pngbin1720 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/rear_control_but_ico.pngbin1847 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/rear_auto/rear_lightning.pngbin1036 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/small_ind_active.pngbin1387 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/small_ind_blue.pngbin1414 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/small_ind_def.pngbin1062 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/small_ind_green.pngbin3279 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/status/cool1.pngbin2206 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/status/cool2.pngbin2310 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/status/cool3.pngbin2289 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/status/heat1.pngbin2248 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/status/heat2.pngbin2362 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/climate/status/heat3.pngbin2339 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/arr-r-disable.pngbin1268 -> 1268 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/arr-r.pngbin1467 -> 1467 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/arrow_ico.pngbin1194 -> 1194 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/common/bottom_cont_bg.pngbin7207 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/bt_bg.pngbin1204 -> 1204 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/bt_bg_pressed.pngbin1211 -> 1211 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/btn-28h-gray-active.pngbin957 -> 957 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/btn-28h.pngbin1080 -> 1080 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/btn-48h-active-gray.pngbin952 -> 952 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/btn-48h-active.pngbin972 -> 972 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/btn-48h-pressed.pngbin3011 -> 3011 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/btn-48h.pngbin1141 -> 1141 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/btn-98h.pngbin1266 -> 1266 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/button.pngbin655 -> 655 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/button_active_blue.pngbin170 -> 170 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/button_large.pngbin1192 -> 1192 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/button_small.pngbin487 -> 487 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/center-button-150.pngbin1390 -> 1390 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/center-button.pngbin1300 -> 1300 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/climate-status-bg.pngbin2315 -> 2315 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/delim.pngbin1120 -> 1120 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/divider.pngbin1157 -> 1157 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/header_bg.pngbin6743 -> 6743 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/ico_back.pngbin1123 -> 1123 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/ind_vert_active.pngbin2346 -> 2346 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/ind_vert_def.pngbin1066 -> 1066 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/ls_border.pngbin3403 -> 3403 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/media-status-bg.pngbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/minus-ico.pngbin934 -> 934 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/nav-status-bg.pngbin2971 -> 2971 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/okbut.pngbin3102 -> 3102 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/okbut_pressed.pngbin3155 -> 3155 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/page-back-button.pngbin1112 -> 1112 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/phone-statusbar-bg.pngbin2910 -> 2910 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/plus-ico.pngbin958 -> 958 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/scroll_down.pngbin1072 -> 1072 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/scroll_down_active.pngbin1070 -> 1070 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/scroll_down_inactive.pngbin1033 -> 1033 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/scroll_up.pngbin1186 -> 1186 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/scroll_up_inactive.pngbin1108 -> 1108 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/seat-act-led.pngbin1383 -> 1383 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/seat-inact-led.pngbin967 -> 967 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/skipbuttonbg.pngbin1562 -> 1562 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/skippbuttonbg_pressed.pngbin1544 -> 1544 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/system_settings_btn_bg.pngbin962 -> 962 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/system_settings_btn_bg_active.pngbin970 -> 970 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/system_settings_btn_h54.pngbin966 -> 966 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/common/toggle.pngbin3596 -> 3596 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/faq_bg.pngbin3258 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/faq_top_btn.pngbin4650 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/faq_top_btn_pressed.pngbin7533 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/help_devider.pngbin1228 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/help_pressed.pngbin5476 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/ind_vert_active.pngbin2346 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/ind_vert_def.pngbin1094 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/left_yellow_bg.pngbin3780 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/rear_controls_yellow_bg.pngbin3700 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/rear_yellow_bg.pngbin2686 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/white_help.pngbin1355 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/yellow_189_138_bg.pngbin3714 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/yellow_198_bg.pngbin3914 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/yellow_bg.pngbin3071 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/help/yellow_help.pngbin1374 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/bottom_controlls_full.pngbin28638 -> 28638 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/DownButton.pngbin6391 -> 6391 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/DownButton_pressed.pngbin6278 -> 6278 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/LeftButton.pngbin6547 -> 6547 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/LeftButton_pressed.pngbin6630 -> 6630 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/OkButton.pngbin4939 -> 4939 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/OkButton_pressed.pngbin4809 -> 4809 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/RightButton.pngbin6550 -> 6550 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/RightButton_pressed.pngbin6549 -> 6549 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/UpButton.pngbin6397 -> 6397 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/UpButton_pressed.pngbin6536 -> 6536 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/backGroundControllButtons.pngbin3157 -> 3157 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/vr.pngbin5429 -> 5429 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/vrImage.pngbin2461 -> 2461 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/controlButtons/vr_pressed.pngbin6165 -> 6165 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/home/home_nav_off.jpgbin4496 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/home/home_nav_off_blur.jpgbin3249 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/home/home_phone.pngbin2774 -> 2774 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/home/home_phone_blur.pngbin7949 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/home/home_phone_blur_bg.pngbin3306 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/home/home_phone_end_blur.pngbin8395 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/home/home_screen.pngbin2979 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/home/home_screen_blur.pngbin8856 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/btn_40_bg_active_invert.pngbin954 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/btn_50_bg_active_invert.pngbin980 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/callendar-btn.pngbin1366 -> 1366 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/delim_40.pngbin1096 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/ico_arrowLock.pngbin1503 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/ico_arrowRight.pngbin1269 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/ico_assist.pngbin1553 -> 1553 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/ico_emergcyAndEnvelope.pngbin2678 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/ico_emergency.pngbin2444 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/ico_envelope.pngbin1358 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/ico_info_install.pngbin2022 -> 2022 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/ico_lock.pngbin1416 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/ico_vehicle.pngbin1614 -> 1614 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/info.pngbin20447 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/info_alerts_bg_help.pngbin10291 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/info_apps_bg_help.pngbin12791 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/info_blur.pngbin53729 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/info_leftMenu_alerts_ico.pngbin2225 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/info_leftMenu_apps_ico.pngbin1632 -> 1632 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/info_leftMenu_calendar_ico.pngbin1868 -> 1868 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/info_leftMenu_services_ico.pngbin2493 -> 2493 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/info_leftMenu_travelLink_ico.pngbin3646 -> 3646 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/info_services_bg.pngbin11109 -> 11109 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/info_services_bg_help.pngbin41399 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/info_travelLink_bg_help.pngbin20960 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/info_travelLink_sirius_logo.pngbin3627 -> 3627 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/menu_active.pngbin973 -> 973 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/info/view_info_calendar-help.pngbin23047 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/info/view_info_calendar.pngbin5924 -> 5924 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/list/list_item_bg.pngbin1099 -> 1099 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/list/list_item_pressed.pngbin1091 -> 1091 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/list/scrollbar/button-down-active.pngbin1407 -> 1407 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/list/scrollbar/button-up-active.pngbin1406 -> 1406 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/active_arrow.pngbin1194 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/active_horiz_led.pngbin2413 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/active_led.pngbin1475 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ant.pngbin1911 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/av-in_details.pngbin18957 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/bcs-item_bgL.pngbin1472 -> 1472 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/bcs-item_bgL_pressed.pngbin1455 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/bcs-item_bgR.pngbin1423 -> 1423 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/bcs-item_bgR_pressed.pngbin1407 -> 1407 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/bcs-item_bgS.pngbin1542 -> 1542 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/bcs-item_bgS_pressed.pngbin1541 -> 1541 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/bcs-item_bg_act.pngbin1071 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/bg.pngbin4614 -> 4614 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/big-fall-image.pngbin131942 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/big-lazerhorse-image.pngbin92556 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/browse_all_button.pngbin1297 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/browse_all_button_pressed.pngbin1270 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/bt-h-ico.pngbin1307 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/bt_bg.pngbin45494 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/btn_alert.pngbin2266 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/btn_bg.pngbin1286 -> 1286 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/btn_browse-all-sources.pngbin2196 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/btn_tag.pngbin2571 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/button28_red_bg.pngbin955 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/cd-ico-home.pngbin1741 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/cd-next-btn.pngbin1744 -> 1744 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/cd-next-btn_pressed.pngbin1752 -> 1752 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/cd-prev-btn.pngbin1845 -> 1845 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/cd-prev-btn_pressed.pngbin1872 -> 1872 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/cd_play_btn.pngbin1999 -> 1999 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/cd_play_btn_pressed.pngbin1964 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/direct_tune_bg_s.pngbin1448 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/direct_tune_bg_s_pressed.pngbin1458 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/disabled_arrow.pngbin1147 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/disabled_player_controls.pngbin4865 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/divider_o.pngbin1136 -> 1136 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/h-media-actbg.pngbin1067 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/h-media-l-bg-pressed.pngbin1369 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/h-media-l-bg.pngbin1351 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/h-media-rbg-pressed.pngbin1340 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/h-media-rbg.pngbin1310 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/h-media-sbg-pressed.pngbin1437 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/h-media-sbg.pngbin1407 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/hd-radio-ico.pngbin1405 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/hd_ico.pngbin2412 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/ant_blur.pngbin3201 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/av-in_details_blur.pngbin38549 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/big-fall-image_blur.pngbin82708 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/big_help_lazerhorse_poster_blur.pngbin75071 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/bluetooth_content_blur.pngbin57608 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/broall_view_blur.jpgbin10649 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/bt-h-ico_blur.pngbin2097 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/cd-ico-home_blur.pngbin3844 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/cd_bro_view_blur.pngbin27292 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/fm_hd_info_ico_blur.pngbin8216 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/hd-radio-ico_blur.pngbin3603 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/hd_active_btn-blur.pngbin5759 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/hd_inactive_btn-blur.pngbin4612 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/hsir-ico_blur.pngbin2035 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/ico_whatIsPlaying_blur.pngbin2212 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/lazerhorse_poster_blur.pngbin19771 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/line-h-ico_blur.pngbin1744 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/more_info_list-blur.pngbin16170 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/moreinfo_list_blur.pngbin12852 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/option_btn_blur.pngbin4418 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/others_browse_blur.pngbin14221 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/player_controls_blur.pngbin8159 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/preset_yellow_border.pngbin3265 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/right_menu_btn_yellow_border.pngbin1963 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/right_menu_groupbtn_yellow_border.pngbin2413 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/right_menu_threebtngroup_yellow_border.pngbin2610 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/sd-h-ico_blur.pngbin1663 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/sir_bro_view_blur.pngbin33518 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/small-fall-image_blur.pngbin21614 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/tag_alert_bg.pngbin4020 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/tag_help_bg.pngbin4342 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/titanium-logo-home-blur.pngbin18929 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/titanium_logo_blur.pngbin25212 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/top_rightmenu_button_blur.pngbin2486 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/top_rightmenu_button_blur_active.pngbin3683 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/help/usb-h-ico_blur.pngbin2790 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/hsir-ico.pngbin1277 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/ico-play.pngbin1162 -> 1162 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_am.pngbin2748 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_antenna.pngbin2748 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/ico_arrow_down.pngbin1723 -> 1723 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/ico_arrow_up.pngbin1726 -> 1726 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/ico_back.pngbin1123 -> 1123 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_browseAll.pngbin1077 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_bt.pngbin2658 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/ico_cd.pngbin2479 -> 2479 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_dog.pngbin4180 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_fm.pngbin2748 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_li.pngbin2655 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/ico_next.pngbin1423 -> 1423 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/ico_pause.pngbin1134 -> 1134 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_plus.pngbin1149 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/ico_prew.pngbin1435 -> 1435 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_sd.pngbin1893 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_sirius.pngbin2215 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_usb.pngbin1973 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/ico_whatIsPlaying.pngbin4387 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/line-h-ico.pngbin1073 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/list/ico_mi1.pngbin1394 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/list/ico_mi2.pngbin1607 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/list/ico_mi3.pngbin1775 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/list/ico_mi4.pngbin1552 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/list/ico_mi5.pngbin1729 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/ls-item_bg.pngbin1481 -> 1481 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/media/ls-item_bg_act.pngbin1219 -> 1219 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/media_am_options_bg_help.pngbin7713 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/media_bt_options_bg_help.pngbin4917 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/media_cd_options_bg_help.pngbin4093 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/media_fm_options_bg_help.pngbin8146 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/media_sirius_options_bg_help.pngbin6950 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/media_usb_options_bg_help.pngbin5781 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/mi-image.pngbin92556 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/passiv_horiz_led.pngbin1219 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/passive_led.pngbin1073 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/sd-h-ico.pngbin1186 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/sd-image.pngbin24109 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/sirius-logo-h.pngbin10758 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/sirius-logo.pngbin13588 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/small-fall-image.pngbin29836 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/small-lazerhorse-image.pngbin24109 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/usb-big-cover.pngbin131942 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/usb-cover.pngbin29836 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/media/usb-h-ico.pngbin1263 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/arrow-inact.pngbin1324 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/arrow.pngbin389 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/arrow_home.pngbin5594 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/arrow_home_blur.pngbin8994 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/back-arr.pngbin287 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/back_btn.pngbin633 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/back_btn_pressed.pngbin636 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/bg.pngbin7423 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/compas.pngbin963 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest-speak-ico.pngbin2303 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest-time.pngbin2675 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/ico_adress.pngbin1032 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/ico_cityCenter.pngbin1217 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/ico_destination.pngbin1372 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/ico_emergency.pngbin1427 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/ico_favorites.pngbin1410 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/ico_freeWay.pngbin1398 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/ico_intersection.pngbin1133 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/ico_latLong.pngbin1540 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/ico_map.pngbin1284 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/ico_myHome.pngbin1329 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/ico_poi.pngbin1268 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_CityCenter_bg.pngbin16702 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_CityCenter_bg_help.pngbin21119 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Emergency_bg.pngbin12153 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Emergency_bg_help.pngbin13733 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Favorites_bg.pngbin15148 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Favorites_bg_help.pngbin16669 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Freeway_bg.pngbin15697 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Freeway_bg_help.pngbin19969 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Intersection_bg.pngbin18504 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Intersection_bg_help.pngbin24191 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_LatitudeLongitude_bg.pngbin18060 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_LatitudeLongitude_bg_help.pngbin21494 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Map_bg.pngbin92431 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Map_bg_help.pngbin83702 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_MyHome_bg.pngbin53414 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_MyHome_bg_help.pngbin51891 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_POI_bg.pngbin23539 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_POI_bg_help.pngbin27554 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_PreviousStartPoint_bg.pngbin10735 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_PreviousStartPoint_bg_help.pngbin11556 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Previous_bg.pngbin13160 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_Previous_bg_help.pngbin14088 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_StreetAddress_bg.pngbin18858 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest/navi_destination_StreetAddress_bg_help.pngbin24721 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/dest_bg.pngbin14804 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/distance.pngbin276 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/edit_tirn_list.pngbin3758 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/flag.pngbin1169 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/green_bg.pngbin1096 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/compas_blur.pngbin3582 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/direction_arrow_blur.pngbin7088 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/distance.pngbin1277 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/distance_linedecor_blur.pngbin1287 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/map_view2_blur.pngbin16471 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/menu_btn_help.pngbin3553 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/miles_button_blur.pngbin3569 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/mute_button_active_blur.pngbin4459 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/mute_button_blur.pngbin3526 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/nav_bg_blur.pngbin13979 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/navigation_destnation_bg_help.pngbin23743 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/repeate_btn_yellow_border.pngbin607 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/street_bar_blur.pngbin4105 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/top_menu_yellow_border.pngbin1567 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/type_2_content_blur.pngbin48765 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/type_3_content_blur.pngbin43285 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/type_view_button_help.pngbin2504 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/view_type1_button_blur.pngbin5445 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/view_type2_button_blur.pngbin5087 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/view_type3_button_blur.pngbin4717 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/zoom_buttons_all_active.pngbin4154 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/zoom_buttons_minus_disabled.pngbin4515 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help/zoom_buttons_plus_disabled.pngbin4478 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/help_nav_wrap.pngbin758 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/ico_nav_statusbar.pngbin662 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/ico_pushToTalk.pngbin3314 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/ind_horiz_active.pngbin2334 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/ind_horiz_def.pngbin1074 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/left_arrow.pngbin696 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_0.pngbin59547 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_1.pngbin52240 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_2.pngbin40580 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_3.pngbin21749 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map2d_north_zoom_0.pngbin94375 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map2d_north_zoom_1.pngbin82508 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map2d_north_zoom_2.pngbin76213 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map2d_north_zoom_3.pngbin61414 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map3d_zoom_0.pngbin46165 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map3d_zoom_1.pngbin40108 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map3d_zoom_2.pngbin32195 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map3d_zoom_3.pngbin16933 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map_view2.pngbin4887 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map_view2_with_icons.pngbin8949 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map_view3.pngbin28263 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map_view_btn_bg.pngbin1470 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/map_view_btn_bg_pressed.pngbin1457 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/mute.pngbin310 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/nav_arrow.pngbin3790 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/nav_bg.pngbin17944 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/nav_bg_pressed.pngbin318 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/nav_help_led.pngbin1485 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/red_arrow.pngbin620 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/right_arrow.pngbin704 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/small_ind_def.pngbin1067 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/small_ind_yell.pngbin563 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/street.pngbin2312 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/top_menu_bg.pngbin368 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/top_menu_delim.pngbin302 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/type.pngbin711 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/type_d.pngbin4324 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/type_h.pngbin4526 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/type_n.pngbin4887 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/type_pressed.pngbin715 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/type_view_btn_bg.pngbin1409 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/type_view_btn_bg_pressed.pngbin1386 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/zoom_bg.pngbin347 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/zoom_bg_active.pngbin329 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/zoom_in.pngbin436 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/zoom_in_dis.pngbin522 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/zoom_out.pngbin394 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/nav/zoom_out_dis.pngbin494 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/bcs-item_bg_act.pngbin970 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/bg.pngbin13851 -> 13851 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/book-filter-bg.pngbin2673 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/btn_bg.pngbin328 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/btn_bg_pressed.pngbin1309 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/controls_bg.pngbin331 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/controls_bg_pressed.pngbin1322 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/del.pngbin207 -> 207 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/dial.pngbin510 -> 510 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/dial_photo.pngbin33152 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/end.pngbin499 -> 499 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/history-filter-bg.pngbin2477 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/ico_bluetoothConnect.pngbin1512 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/ico_cellPhone.pngbin1324 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/ico_history.pngbin1388 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/ico_messaging.pngbin1141 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/ico_phone.pngbin1204 -> 1204 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/ico_phoneMelody.pngbin2007 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/ico_phonebook.pngbin1163 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/ico_questionMark.pngbin1328 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/ico_quickdial.pngbin1263 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/ico_settings.pngbin1595 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/ico_sound_active.pngbin1986 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/ico_star.pngbin1537 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/incoming_call_ico.pngbin1350 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/keypad/center_btn.pngbin706 -> 706 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/keypad/center_btn_pressed.pngbin699 -> 699 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/keypad/left_btn.pngbin636 -> 636 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/keypad/left_btn_pressed.pngbin624 -> 624 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/keypad/right_btn.pngbin571 -> 571 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/keypad/right_btn_pressed.pngbin563 -> 563 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/menu_active.pngbin172 -> 172 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/phone/menu_bg.pngbin555 -> 555 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/missed_call_ico.pngbin1411 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/msg-list-bg.pngbin10456 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/msg-r-group-bg.pngbin1953 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/number_area.pngbin375 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/outgoing_call_ico.pngbin1350 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone-ico.pngbin992 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_antena.pngbin1283 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_button48_bg_active.pngbin985 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_button_bg_active.pngbin993 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_help_dialpad.pngbin30828 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_help_history.pngbin21680 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_help_menu.pngbin4078 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_help_messaging.pngbin19549 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_help_phonebook.pngbin17071 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_help_quickdial.pngbin15575 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_help_settings.pngbin17890 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_info_sample.pngbin4334 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_settings_bluetoothDevices_bg_help.pngbin27450 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_settings_internetDataConnection_bg_help.pngbin21210 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_settings_phoneBook_bg_help.pngbin23798 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_settings_phoneRinger_bg_help.pngbin24725 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/phone_settings_textMessageNotification_bg_help.pngbin23844 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/quick_dial_inact_bg.pngbin8980 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/signal-ico-blur.pngbin1608 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/phone/signal-ico.pngbin1036 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/player/done_ico.pngbin1433 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/player/frd_ico.pngbin2413 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/player/pause.pngbin1970 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/player/play.pngbin2076 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/player/player_active_control.pngbin2817 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/player/player_free_control.pngbin2272 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/player/player_prog_bg.pngbin1229 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/player/prog_ind.pngbin1260 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/player/rewind_ico.pngbin2425 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/images/sdl/Warning.pngbin9023 -> 7546 bytes
-rw-r--r--SDL_Core/src/components/HMI/images/sdl/progress.gifbin0 -> 2327 bytes
-rw-r--r--SDL_Core/src/components/HMI/images/sdl/progressindicator.gifbin0 -> 7703 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/911-ico.pngbin6184 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/Cushion_WhiteOutline_driver.pngbin3736 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/Cushion_WhiteOutline_passenger.pngbin3716 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/LowerLumbar_WhiteOutline_driver.pngbin3254 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/LowerLumbar_WhiteOutline_passenger.pngbin3279 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/MassageCircle.pngbin3235 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/MiddleLumbar_WhiteOutline_driver.pngbin3142 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/MiddleLumbar_WhiteOutline_passenger.pngbin3147 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/SettingsVehicleEnableValetMode.pngbin18648 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/TopLumbar_WhiteOutline_driver.pngbin3167 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/TopLumbar_WhiteOutline_passenger.pngbin3184 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/WhiteOutline_driver-lumbar-all.pngbin3753 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/WhiteOutline_passenger-lumbar-all.pngbin3779 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/arr-r-disable.pngbin1268 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/arr-r.pngbin1467 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/btn-28h-gray-active.pngbin957 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/btn-28h.pngbin1080 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/btn-48h-gray-active.pngbin978 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/btn-48h.pngbin1141 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/btn-68h-pressed.pngbin1158 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/btn-68h.pngbin1156 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/btn-98h.pngbin1266 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/center-button.pngbin1300 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/dial.pngbin510 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/driver-lumbar-all.pngbin3992 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/driver-lumbar-low.pngbin1692 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/driver-lumbar-m-bottom-selected.pngbin1627 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/driver-lumbar-m-bottom.pngbin2819 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/driver-lumbar-m-top-selected.pngbin1684 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/driver-lumbar-m-top.pngbin2664 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/driver-lumbar-mid.pngbin1675 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/driver-lumbar-top.pngbin1746 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_911assist.pngbin1083 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_LED.pngbin1369 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_ambientLighting.pngbin1408 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_assist.pngbin1282 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_backspace.pngbin1330 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_clock.pngbin2192 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_clock_plus_comtrol.pngbin1020 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_display.pngbin1586 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_distance.pngbin3135 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_doorKeypadCode.pngbin1321 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_enableValetMode.pngbin1258 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_forbiddance.pngbin1347 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_help.pngbin2111 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_languages.pngbin5087 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_licenses.pngbin1286 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_minus_control.pngbin930 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_navigation.pngbin1570 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_on-off-wide.pngbin2645 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_on-off.pngbin2698 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_phone.pngbin1308 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_phone_off.pngbin474 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_player.pngbin1208 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel-disabled.pngbin1944 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel.pngbin3112 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel_disabled.pngbin2927 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_plus-zero-minus-pannel.pngbin3141 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_rearViewCamera.pngbin1113 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_settings.pngbin2561 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_12-24.pngbin3570 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_on-off.pngbin2698 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_time-date.pngbin3023 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidFerries.pngbin3024 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidFreeways.pngbin3126 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidTollroads.pngbin3081 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_useHOV.pngbin1928 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_settings_white.pngbin1339 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_sound.pngbin1746 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_temperature.pngbin3856 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_upArrow.pngbin1240 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_vehicle.pngbin2264 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_vehicleHealthReport.pngbin1460 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_vehicle_help.pngbin2264 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_voice.pngbin1448 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ico_wireless.pngbin1424 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ioc_backspace.pngbin1330 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/ls-item_bg.pngbin3005 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/lumbar_cushion.pngbin3895 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/lumbar_cushion_bot-active.pngbin3620 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/lumbar_cushion_bot_passanger-active.pngbin3622 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/lumbar_cushion_top-active.pngbin3744 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/lumbar_cushion_top_passenger-active.pngbin3746 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/massageBottom.pngbin2888 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/massageHorisontal.pngbin2942 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/massageRound.pngbin3352 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/massageTop.pngbin2877 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/massageVertical.pngbin2949 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/mcsBlockBackArrow6_1.pngbin4372 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/mcsBlockBackArrow6_2.pngbin4992 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/menu_active.pngbin973 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/passenger-lumbar-all.pngbin4064 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/passenger-lumbar-low.pngbin4109 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-bottom-selected.pngbin1606 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-bottom.pngbin2822 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-top-selected.pngbin1667 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-top.pngbin2688 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/passenger-lumbar-mid.pngbin4116 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/passenger-lumbar-top.pngbin4153 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/passenger_lumbar_cushion.pngbin3885 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/scroll_down.pngbin1072 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/scroll_down_active.pngbin1070 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/scroll_down_inactive.pngbin1033 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/scroll_up.pngbin1186 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/scroll_up_inactive.pngbin1108 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/seat-left.pngbin20562 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/seat-right.pngbin18934 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/seats-message-bottom.pngbin3339 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/seats-message-top.pngbin3337 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/seats-message.pngbin1981 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/seats.pngbin2749 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/seetings_help_VoiceCommandsList_bg_help.pngbin9612 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/seetings_help_softwareLicenses_bg_help.pngbin8678 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_clock_bg_help.pngbin12201 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_help_VoiceCommandList_bg_help.pngbin24751 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_help_WhereAmI_bg.pngbin7228 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_help_WhereAmI_bg_help.pngbin13535 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_help_help.pngbin20373 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_help_systemInformation_bg_help.pngbin56778 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_bg_help.pngbin17314 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_media_bg_help.pngbin40510 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_media_bluetoothDevices_bg_help.pngbin5339 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_navigation_avoidAreas_bg_help.pngbin2737 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_navigation_bg_help.pngbin9096 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_navigation_mapPreferences_bg_help.pngbin5752 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_navigation_navigationPreferences_bg_help.pngbin4628 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_navigation_routePreferences_bg_help.pngbin25220 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_navigation_trafficPreferences_bg_help.pngbin55574 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_system_bg_help.pngbin32315 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_system_keyboardLayout_bg_help.pngbin26738 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_settings_system_settings_settings_system_installApplications_bg_help.pngbin4881 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_sound_bg_help.pngbin14899 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_vehicle_amberLight_bg-help.pngbin191736 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_vehicle_amberLight_bg.pngbin240487 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_vehicle_enableValetMode_enterPIN_bg_help.pngbin7813 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_vehicle_enableValetMode_popUp_bg_help.pngbin2274 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settings_vehicle_help.pngbin18294 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/settints_settings_help.pngbin13231 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/smll-ar-r.pngbin2979 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/toggle_selected.pngbin968 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/g#439 tmc generic.pngbin1367 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_acciden.pngbin1515 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_difficultDriving.pngbin1393 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_incident.pngbin1131 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_reducesVisibility.pngbin1154 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_roadClosed.pngbin1044 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_roadWorks.pngbin1211 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_smog.pngbin1551 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_snow.pngbin1582 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_traffic jam.pngbin1352 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_trafficJam.pngbin1352 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_turnOnYourRadio.pngbin1508 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_weatherWarning.pngbin1344 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/trash.pngbin45888 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_info_apps_911Assist_help.pngbin33021 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_Sound_BalanceFader-help.pngbin109682 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_Sound_BalanceFader.pngbin117227 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_display_bg.pngbin6728 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_display_bg_help.pngbin10431 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_help_911Assist_bg_help.pngbin20542 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_help_WhereAmI-help.pngbin13535 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_help_WhereAmI.pngbin7228 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_settings_VoiceControl-help.pngbin12501 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_settings_VoiceControl.pngbin6455 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessInternet-help.pngbin82898 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessInternet.pngbin47492 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessWifiInternet-help.pngbin15277 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessWifiInternet.pngbin9486 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_DoorKeypadCode-help.pngbin10375 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_DoorKeypadCode.pngbin4965 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-Passenger_massage_seat.pngbin20625 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-driver_massage_seat.pngbin20846 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-left-s.pngbin21724 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-right-s.pngbin20878 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj1.pngbin3678 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj1_passenger.pngbin5857 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj2.pngbin3724 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj2_passenger.pngbin6108 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_RearViewCamera-help.pngbin59536 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_RearViewCamera.pngbin87209 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_VehicleHealthReport-help.pngbin15036 -> 0 bytes
-rwxr-xr-xSDL_Core/src/components/HMI/images/settings/view_settings_vehicle_VehicleHealthReport.pngbin6178 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/index.html342
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/lib/ember-1.0.pre.js41418
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/lib/ember-1.0.pre.min.js34
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/lib/handlebars-1.0.0.beta.6.js3123
-rw-r--r--SDL_Core/src/components/HMI/lib/iscroll-lite.js594
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/lib/jquery-1.7.2.js18808
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/lib/jquery-1.7.2.min.js6
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/locale/eng.js1181
-rwxr-xr-xSDL_Core/src/components/HMI/locale/fr.js1119
-rw-r--r--[-rwxr-xr-x]SDL_Core/src/components/HMI/locale/locale.js84
-rwxr-xr-xSDL_Core/src/components/HMI/locale/rus.js11
-rw-r--r--SDL_Core/src/components/Interfaces/HMI_API.xml3347
-rw-r--r--SDL_Core/src/components/Interfaces/Json_HMI_message_specification.txt317
-rw-r--r--SDL_Core/src/components/Interfaces/Json_Mobile_side_message_spec.txt62
-rw-r--r--SDL_Core/src/components/Interfaces/MOBILE_API.xml4889
-rw-r--r--SDL_Core/src/components/Interfaces/QT_HMI_API.xml3756
-rw-r--r--SDL_Core/src/components/Interfaces/RPC2Spec.idl987
-rwxr-xr-xSDL_Core/src/components/Interfaces/v4_protocol_v1_2_no_extra.xml1153
-rw-r--r--SDL_Core/src/components/JSONHandler/CMakeLists.txt672
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/IJSONRPC2Handler.h86
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/IJsonHandler.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/IRPC2CommandsObserver.h65
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/IRPCMessagesObserver.h65
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/JSONHandler.h180
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/JSONRPC2Handler.h241
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/MessageQueue.h193
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Command.h122
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Error.h166
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2ErrorMarshaller.h88
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Notification.h73
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/Marshaller.h1645
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateApp.h89
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateAppResponse.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppList.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppListResponse.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceList.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.h86
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivated.h95
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppRegistered.h83
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppUnregistered.h96
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.h86
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/RPC2.h64
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendData.h99
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendDataResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilities.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilitiesResponse.h92
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonEvent.h96
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonPress.h96
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/RPC2.h55
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistration.h88
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistrationResponse.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilities.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilitiesResponse.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguage.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguageResponse.h83
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguages.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/OnLanguageChange.h83
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/RPC2.h62
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/Speak.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/SpeakResponse.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommand.h101
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommandResponse.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenu.h102
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenuResponse.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Alert.h134
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuver.h97
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuverResponse.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertResponse.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistration.h88
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistrationResponse.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSet.h96
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommand.h88
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommandResponse.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSet.h89
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenu.h89
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenuResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumber.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumberResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThru.h83
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThruResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilities.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilitiesResponse.h100
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguage.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguageResponse.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguages.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguagesResponse.h86
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnCommand.h89
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDeviceChosen.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDriverDistraction.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnLanguageChange.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnReady.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnSystemContext.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnTBTClientState.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThru.h130
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThruResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteraction.h141
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteractionResponse.h92
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/RPC2.h111
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalProperties.h91
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessage.h106
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessageResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIcon.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIconResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayout.h89
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayoutResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalProperties.h116
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalPropertiesResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimer.h96
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimerResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Show.h163
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBT.h144
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBTResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Slider.h116
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SliderResponse.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnList.h98
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnListResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommand.h97
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommandResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistration.h89
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistrationResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommand.h89
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommandResponse.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilities.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilitiesResponse.h86
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguage.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguageResponse.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguages.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguagesResponse.h86
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnCommand.h89
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnLanguageChange.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/RPC2.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCs.h95
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCsResponse.h87
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleData.h89
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.h198
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleType.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/OnVehicleData.h198
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/RPC2.h61
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDID.h102
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDIDResponse.h95
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Request.h100
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Response.h124
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCMessage.h168
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCNotification.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddCommand_request.h103
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddCommand_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_request.h101
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Alert_request.h120
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Alert_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AppInterfaceUnregisteredReason.h82
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AudioCaptureQuality.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AudioStreamingState.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonCapabilities.h107
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonEventMode.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonName.h87
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonPressMode.h82
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CharacterSet.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Choice.h87
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_request.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_request.h80
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_request.h83
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_request.h80
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DisplayCapabilities.h95
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DisplayType.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DriverDistractionState.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_request.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/GenericResponse_response.h70
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/GlobalProperty.h78
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/HMILevel.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/HmiZoneCapabilities.h77
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/InteractionMode.h83
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Language.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Marshaller.h728
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/MediaClockFormat.h113
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/MenuParams.h105
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnAppInterfaceUnregistered.h79
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnButtonEvent.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnButtonPress.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnCommand.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnDriverDistraction.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnEncodedSyncPData.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnHMIStatus.h91
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnTBTClientState.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_request.h134
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_response.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RPC.h129
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_request.h159
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_response.h128
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_request.h82
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Result.h169
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_request.h99
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_request.h97
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Show_request.h134
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Show_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Speak_request.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Speak_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SpeechCapabilities.h77
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/StartTime.h88
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_request.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SyncMsgVersion.h86
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SystemContext.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TBTState.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TTSChunk.h91
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextAlignment.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextField.h96
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextFieldName.h113
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TriggerSource.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_request.h79
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_request.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UpdateMode.h82
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/VrCapabilities.h73
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddCommand_request.h113
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddCommand_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_request.h101
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_response.h65
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_request.h86
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Alert_request.h136
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Alert_response.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AppInterfaceUnregisteredReason.h83
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AppType.h82
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioCaptureQuality.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioStreamingState.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioType.h73
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonCapabilities.h107
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonEventMode.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonName.h88
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonPressMode.h82
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_request.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CharacterSet.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Choice.h91
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CompassDirection.h80
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_request.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DTC.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeactivateReason.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_request.h80
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteFile_request.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteFile_response.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_request.h83
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_request.h80
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DialNumber_request.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DialNumber_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Dimension.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DisplayCapabilities.h95
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DisplayType.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DriverDistractionState.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_request.h82
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_request.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/FileType.h77
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/FunctionID.h126
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GPSData.h167
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GenericResponse_response.h71
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetDTCs_request.h92
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetDTCs_response.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_request.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_response.h193
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GlobalProperty.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMIApplication.h124
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMILevel.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMIPermissions.h87
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HmiZoneCapabilities.h77
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Image.h86
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ImageType.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/InteractionMode.h83
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Language.h133
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ListFiles_request.h78
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ListFiles_response.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Marshaller.h1211
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/MediaClockFormat.h113
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/MenuParams.h105
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnAppInterfaceUnregistered.h79
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnAudioPassThru.h73
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnButtonEvent.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnButtonPress.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnCommand.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnDriverDistraction.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnEncodedSyncPData.h102
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnHMIStatus.h91
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnLanguageChange.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnPermissionsChange.h82
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnTBTClientState.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnVehicleData.h201
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PRNDL.h100
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ParameterPermissions.h86
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_request.h124
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_request.h144
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_response.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PermissionItem.h88
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PermissionStatus.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PresetBankCapabilities.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PutFile_request.h110
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PutFile_response.h77
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RPC.h206
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ReadDID_request.h98
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ReadDID_response.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_request.h180
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_response.h154
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_request.h82
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Result.h201
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SamplingRate.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_request.h100
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_request.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_response.h72
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_request.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_request.h120
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_request.h97
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_request.h131
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Show_request.h184
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Show_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SingleTirePressureStatus.h77
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SingleTireStatus.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Slider_request.h111
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Slider_response.h72
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButton.h117
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButtonCapabilities.h106
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButtonType.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Speak_request.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Speak_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SpeechCapabilities.h77
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/StartTime.h88
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_request.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_request.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_response.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SyncMsgVersion.h86
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SystemAction.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SystemContext.h92
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TBTState.h82
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h91
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextAlignment.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextField.h96
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextFieldName.h164
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TimerMode.h79
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TirePressureTellTale.h75
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TireStatus.h118
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TriggerSource.h74
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Turn.h87
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_request.h79
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_request.h81
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_request.h85
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_response.h76
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateMode.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_request.h84
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_response.h66
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataResult.h88
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataResultCode.h80
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataType.h101
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleType.h115
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VrCapabilities.h73
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VrHelpItem.h91
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/messageType.h78
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCRequest.h100
-rw-r--r--SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCResponse.h121
-rwxr-xr-xSDL_Core/src/components/JSONHandler/sdlinkObjGenerator/convertGpRPC.sh8
-rwxr-xr-xSDL_Core/src/components/JSONHandler/sdlinkObjGenerator/convertGpSDLink.sh8
-rwxr-xr-xSDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/idlgen.yp1652
-rwxr-xr-xSDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/pr0tojoin.pl493
-rwxr-xr-xSDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/robok0der.pl2775
-rwxr-xr-xSDL_Core/src/components/JSONHandler/sdlinkObjGenerator/v4_protocol_v1_2_no_extra.xml1154
-rwxr-xr-xSDL_Core/src/components/JSONHandler/sdlinkObjGenerator/v4_protocol_v2_0_revP.xml3174
-rw-r--r--SDL_Core/src/components/JSONHandler/src/JSONHandler.cpp704
-rw-r--r--SDL_Core/src/components/JSONHandler/src/JSONRPC2Handler.cpp287
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2Command.cpp80
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2Error.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ErrorMarshaller.cpp118
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2Notification.cpp56
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.cpp1304
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.inc425
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateApp.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppList.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponse.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponseMarshaller.cpp156
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceList.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.cpp95
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponseMarshaller.cpp166
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivated.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedMarshaller.cpp131
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegistered.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegisteredMarshaller.cpp121
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegisteredMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregistered.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregisteredMarshaller.cpp139
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregisteredMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.cpp95
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdatedMarshaller.cpp154
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdatedMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendData.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataMarshaller.cpp181
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilities.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponse.cpp107
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponseMarshaller.cpp171
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEvent.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEventMarshaller.cpp142
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEventMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPress.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPressMarshaller.cpp142
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPressMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistration.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationMarshaller.cpp128
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilities.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponse.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponseMarshaller.cpp158
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguage.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponse.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponseMarshaller.cpp133
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguages.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponseMarshaller.cpp158
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChange.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChangeMarshaller.cpp121
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChangeMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/Speak.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakMarshaller.cpp153
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommand.cpp131
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandMarshaller.cpp148
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenu.cpp131
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuMarshaller.cpp151
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Alert.cpp239
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuver.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverMarshaller.cpp184
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertMarshaller.cpp264
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponse.cpp95
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponseMarshaller.cpp142
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistration.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationMarshaller.cpp128
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSet.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetMarshaller.cpp160
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommand.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSet.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenu.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumber.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThru.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruMarshaller.cpp122
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilities.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponse.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponseMarshaller.cpp199
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguage.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponse.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponseMarshaller.cpp133
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguages.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponse.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponseMarshaller.cpp158
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommand.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommandMarshaller.cpp126
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommandMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosen.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosenMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosenMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistraction.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistractionMarshaller.cpp121
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistractionMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChange.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChangeMarshaller.cpp121
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChangeMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReady.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReadyMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReadyMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContext.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContextMarshaller.cpp121
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContextMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientState.cpp96
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientStateMarshaller.cpp124
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientStateMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThru.cpp189
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruMarshaller.cpp208
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteraction.cpp221
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionMarshaller.cpp324
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponse.cpp117
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponseMarshaller.cpp155
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalProperties.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesMarshaller.cpp153
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessage.cpp141
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageMarshaller.cpp179
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIcon.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayout.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutMarshaller.cpp126
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalProperties.cpp173
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesMarshaller.cpp242
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimer.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerMarshaller.cpp141
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Show.cpp327
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBT.cpp243
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTMarshaller.cpp245
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowMarshaller.cpp332
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Slider.cpp155
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderMarshaller.cpp194
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponse.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponseMarshaller.cpp134
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnList.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListMarshaller.cpp184
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommand.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandMarshaller.cpp167
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistration.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationMarshaller.cpp128
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommand.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponse.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilities.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponse.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponseMarshaller.cpp158
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguage.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponse.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponseMarshaller.cpp133
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguages.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponse.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponseMarshaller.cpp158
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommand.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommandMarshaller.cpp126
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommandMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChange.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChangeMarshaller.cpp121
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChangeMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCs.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsMarshaller.cpp141
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponse.cpp95
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponseMarshaller.cpp162
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleData.cpp97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataMarshaller.cpp128
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.cpp447
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponseMarshaller.cpp376
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleType.cpp73
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.cpp85
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponseMarshaller.cpp133
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleData.cpp447
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleDataMarshaller.cpp364
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleDataMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDID.cpp131
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDMarshaller.cpp179
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponse.cpp117
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponseMarshaller.cpp206
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponseMarshaller.h60
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2Request.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/RPC2Response.cpp95
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCMessage.cpp118
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCNotification.cpp59
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_request.cpp152
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_requestMarshaller.cpp185
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_request.cpp133
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_requestMarshaller.cpp160
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_request.cpp217
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_requestMarshaller.cpp217
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.cpp116
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp26
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.inc171
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.inc90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.inc91
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilities.cpp118
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilitiesMarshaller.cpp144
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilitiesMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.inc91
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.cpp121
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp31
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.inc191
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.inc90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.gp20
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.inc150
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Choice.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ChoiceMarshaller.cpp153
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ChoiceMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_request.cpp106
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_requestMarshaller.cpp165
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_response.cpp78
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_request.cpp88
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_requestMarshaller.cpp138
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_response.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_request.cpp88
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_requestMarshaller.cpp138
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_response.cpp86
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_request.cpp88
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_requestMarshaller.cpp138
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_response.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilities.cpp120
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilitiesMarshaller.cpp176
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilitiesMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.cpp115
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp25
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.inc175
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.inc90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_request.cpp112
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_requestMarshaller.cpp162
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_response.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_response.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.inc92
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.gp20
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.inc124
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.inc90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.inc94
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.inc147
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.cpp816
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp62
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.inc250
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.cpp111
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.gp21
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.inc157
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParams.cpp149
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParamsMarshaller.cpp146
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParamsMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregistered.cpp89
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregisteredMarshaller.cpp135
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregisteredMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEvent.cpp102
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEventMarshaller.cpp145
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEventMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPress.cpp102
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPressMarshaller.cpp145
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPressMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommand.cpp101
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommandMarshaller.cpp144
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommandMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistraction.cpp89
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistractionMarshaller.cpp135
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistractionMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPData.cpp112
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPDataMarshaller.cpp159
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPDataMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatus.cpp115
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatusMarshaller.cpp155
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatusMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientState.cpp89
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientStateMarshaller.cpp135
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientStateMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerfectHashTable.h44
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_request.cpp234
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_requestMarshaller.cpp285
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_response.cpp145
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_responseMarshaller.cpp189
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_request.cpp242
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_requestMarshaller.cpp236
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_response.cpp380
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_responseMarshaller.cpp367
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_request.cpp94
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_requestMarshaller.cpp155
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_response.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Result.cpp78
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.cpp126
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp36
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.inc183
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_request.cpp144
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_requestMarshaller.cpp201
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_response.cpp77
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_request.cpp122
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_requestMarshaller.cpp153
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_response.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_request.cpp238
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_requestMarshaller.cpp208
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_request.cpp94
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_requestMarshaller.cpp156
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.cpp111
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.gp21
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.inc70
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTime.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTimeMarshaller.cpp138
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTimeMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_request.cpp89
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_requestMarshaller.cpp138
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_response.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersion.cpp96
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersionMarshaller.cpp130
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersionMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.inc148
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.gp20
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.inc100
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunk.cpp95
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunkMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunkMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.inc93
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextField.cpp124
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldMarshaller.cpp150
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp23
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.inc172
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.inc91
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_request.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_requestMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_response.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_request.cpp89
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_requestMarshaller.cpp138
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_response.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_responseMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.gp20
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.inc95
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.cpp107
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.gp17
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.inc88
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_request.cpp180
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_requestMarshaller.cpp181
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_request.cpp134
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_requestMarshaller.cpp141
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_request.cpp112
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_requestMarshaller.cpp165
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_request.cpp276
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_requestMarshaller.cpp248
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_response.cpp94
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_responseMarshaller.cpp149
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.cpp117
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp27
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.inc171
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.cpp116
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp26
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.inc165
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.inc90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.inc96
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.cpp107
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.gp17
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.inc88
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilities.cpp118
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilitiesMarshaller.cpp144
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilitiesMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.inc94
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.cpp122
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp32
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.inc207
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.inc93
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_request.cpp101
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_requestMarshaller.cpp128
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.gp20
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.inc153
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Choice.cpp126
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChoiceMarshaller.cpp168
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChoiceMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.cpp114
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp24
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.inc179
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_request.cpp106
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_requestMarshaller.cpp146
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_response.cpp77
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_responseMarshaller.cpp175
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTC.cpp95
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTCMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTCMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.cpp112
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.gp22
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.inc167
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_request.cpp88
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_requestMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_request.cpp88
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_requestMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_response.cpp91
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_responseMarshaller.cpp149
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_request.cpp88
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_requestMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_response.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_request.cpp88
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_requestMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_request.cpp88
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_requestMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.inc148
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilities.cpp120
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilitiesMarshaller.cpp176
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilitiesMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.cpp115
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp25
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.inc178
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.inc93
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_request.cpp93
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_requestMarshaller.cpp134
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_request.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_requestMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.cpp111
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.gp21
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.inc153
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.cpp157
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.inc273
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSData.cpp306
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSDataMarshaller.cpp279
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSDataMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_request.cpp120
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_requestMarshaller.cpp131
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_response.cpp121
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_responseMarshaller.cpp177
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_request.cpp89
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_requestMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_response.cpp670
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_responseMarshaller.cpp376
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.gp20
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.inc156
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplication.cpp313
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplicationMarshaller.cpp294
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplicationMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.gp20
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.inc151
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissions.cpp105
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissionsMarshaller.cpp165
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissionsMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.inc93
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Image.cpp95
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.inc90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.inc97
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.cpp126
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp36
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.inc219
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_request.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_requestMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_response.cpp133
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_responseMarshaller.cpp182
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Marshaller.cpp1362
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.cpp111
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.gp21
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.inc154
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParams.cpp149
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParamsMarshaller.cpp146
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParamsMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregistered.cpp89
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregisteredMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregisteredMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThru.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThruMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThruMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEvent.cpp114
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEventMarshaller.cpp138
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEventMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPress.cpp114
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPressMarshaller.cpp138
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPressMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommand.cpp101
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommandMarshaller.cpp128
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommandMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistraction.cpp89
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistractionMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistractionMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPData.cpp152
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPDataMarshaller.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPDataMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatus.cpp115
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatusMarshaller.cpp139
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatusMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChange.cpp101
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChangeMarshaller.cpp128
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChangeMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChange.cpp94
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChangeMarshaller.cpp137
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChangeMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientState.cpp89
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientStateMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientStateMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleData.cpp534
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleDataMarshaller.cpp345
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleDataMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.cpp120
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp30
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.inc178
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissions.cpp104
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissionsMarshaller.cpp158
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissionsMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerfectHashTable.h44
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_request.cpp208
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_requestMarshaller.cpp202
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_request.cpp267
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_requestMarshaller.cpp303
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_response.cpp146
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_responseMarshaller.cpp168
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItem.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItemMarshaller.cpp139
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItemMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.gp20
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.inc98
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilities.cpp81
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilitiesMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilitiesMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_request.cpp159
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_requestMarshaller.cpp152
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_response.cpp91
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_responseMarshaller.cpp149
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_request.cpp138
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_requestMarshaller.cpp155
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_response.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_responseMarshaller.cpp210
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_request.cpp282
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_requestMarshaller.cpp284
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_response.cpp491
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_responseMarshaller.cpp414
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_request.cpp94
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_requestMarshaller.cpp137
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Result.cpp78
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.cpp136
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp46
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.inc234
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.gp20
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.inc151
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_request.cpp153
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_requestMarshaller.cpp168
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_responseMarshaller.cpp127
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_request.cpp88
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_requestMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_request.cpp87
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_requestMarshaller.cpp118
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_response.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_request.cpp203
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_requestMarshaller.cpp232
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_request.cpp123
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_requestMarshaller.cpp134
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_request.cpp272
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_requestMarshaller.cpp231
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_request.cpp381
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_requestMarshaller.cpp300
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.cpp111
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.gp21
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.inc98
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatus.cpp95
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatusMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatusMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_request.cpp167
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_requestMarshaller.cpp181
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_response.cpp96
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_responseMarshaller.cpp137
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButton.cpp192
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilities.cpp117
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilitiesMarshaller.cpp143
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilitiesMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.cpp175
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.inc147
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_request.cpp94
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_requestMarshaller.cpp137
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.cpp111
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.gp21
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.inc103
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTime.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTimeMarshaller.cpp138
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTimeMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_request.cpp89
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_requestMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_request.cpp94
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_requestMarshaller.cpp137
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_response.cpp120
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_responseMarshaller.cpp177
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersion.cpp96
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersionMarshaller.cpp130
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersionMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.inc65
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.cpp113
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp23
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.inc160
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.cpp116
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp26
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.inc169
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunk.cpp95
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.cpp129
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.inc96
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextField.cpp124
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldMarshaller.cpp150
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.cpp126
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp36
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.inc214
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.inc148
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.inc93
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatus.cpp161
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatusMarshaller.cpp175
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatusMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.cpp108
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.gp18
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.inc94
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Turn.cpp122
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TurnMarshaller.cpp133
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TurnMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_request.cpp76
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_requestMarshaller.cpp110
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_response.cpp74
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_request.cpp89
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_requestMarshaller.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_request.cpp94
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_requestMarshaller.cpp137
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_response.cpp119
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_responseMarshaller.cpp177
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.cpp111
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.gp21
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.inc155
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_request.cpp112
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_requestMarshaller.cpp165
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_requestMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_response.cpp75
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_responseMarshaller.cpp140
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_responseMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResult.cpp96
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.cpp114
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp24
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.inc166
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultMarshaller.cpp130
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.cpp122
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp32
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.inc199
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleType.cpp189
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleTypeMarshaller.cpp163
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleTypeMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.cpp107
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.gp17
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.inc91
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItem.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItemMarshaller.cpp139
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItemMarshaller.h67
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.cpp109
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.gp19
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.h90
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.inc93
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCRequest.cpp66
-rw-r--r--SDL_Core/src/components/JSONHandler/src/SDLRPCResponse.cpp137
-rw-r--r--SDL_Core/src/components/ProtocolHandler/CMakeLists.txt16
-rw-r--r--SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/IProtocolObserver.h72
-rw-r--r--SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ISessionObserver.h102
-rw-r--r--SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ProtocolHandler.h312
-rw-r--r--SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ProtocolPacket.h431
-rw-r--r--SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/SmartDeviceLinkRawMessage.h116
-rw-r--r--SDL_Core/src/components/ProtocolHandler/src/ProtocolHandler.cpp685
-rw-r--r--SDL_Core/src/components/ProtocolHandler/src/ProtocolPacket.cpp307
-rw-r--r--SDL_Core/src/components/ProtocolHandler/src/SmartDeviceLinkRawMessage.cpp77
-rw-r--r--SDL_Core/src/components/TransportManager/CMakeLists.txt23
-rw-r--r--SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManager.hpp168
-rw-r--r--SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManagerDataListener.hpp129
-rw-r--r--SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManagerDeviceListener.hpp102
-rw-r--r--SDL_Core/src/components/TransportManager/include/TransportManager/SDeviceInfo.hpp140
-rw-r--r--SDL_Core/src/components/TransportManager/src/CBluetoothAdapter.cpp573
-rw-r--r--SDL_Core/src/components/TransportManager/src/CBluetoothAdapter.hpp225
-rw-r--r--SDL_Core/src/components/TransportManager/src/CDeviceAdapter.cpp866
-rw-r--r--SDL_Core/src/components/TransportManager/src/CDeviceAdapter.hpp555
-rw-r--r--SDL_Core/src/components/TransportManager/src/CTCPAdapter.cpp317
-rw-r--r--SDL_Core/src/components/TransportManager/src/CTCPAdapter.hpp181
-rw-r--r--SDL_Core/src/components/TransportManager/src/CTransportManager.cpp1311
-rw-r--r--SDL_Core/src/components/TransportManager/src/CTransportManager.hpp837
-rw-r--r--SDL_Core/src/components/TransportManager/src/IDeviceAdapter.cpp39
-rw-r--r--SDL_Core/src/components/TransportManager/src/IDeviceAdapter.hpp109
-rw-r--r--SDL_Core/src/components/TransportManager/src/IDeviceAdapterListener.cpp59
-rw-r--r--SDL_Core/src/components/TransportManager/src/IDeviceAdapterListener.hpp126
-rw-r--r--SDL_Core/src/components/TransportManager/src/IHandleGenerator.cpp39
-rw-r--r--SDL_Core/src/components/TransportManager/src/IHandleGenerator.hpp79
-rw-r--r--SDL_Core/src/components/TransportManager/src/ITransportManager.cpp44
-rw-r--r--SDL_Core/src/components/TransportManager/src/ITransportManagerDataListener.cpp47
-rw-r--r--SDL_Core/src/components/TransportManager/src/ITransportManagerDeviceListener.cpp52
-rw-r--r--SDL_Core/src/components/TransportManager/src/SDeviceInfo.cpp67
-rw-r--r--SDL_Core/src/components/TransportManager/src/SInternalDeviceInfo.cpp49
-rw-r--r--SDL_Core/src/components/TransportManager/src/SInternalDeviceInfo.hpp88
-rw-r--r--SDL_Core/src/components/TransportManager/src/TransportManagerLoggerHelpers.hpp53
-rw-r--r--SDL_Core/src/components/Utils/CMakeLists.txt28
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/MessageQueue.h164
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/MultithreadingMap.h43
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/WorkWithOS.h25
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/back_trace.h75
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/bitstream.h170
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/conditional_variable.h94
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/date_time.h56
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/dict.h225
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/file_system.h207
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/lock.h132
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/logger.h72
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/macro.h77
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/memory_barrier.h54
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/message_queue.h181
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/prioritized_queue.h89
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/shared_ptr.h342
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/signals.h44
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/singleton.h179
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/stl_utils.h81
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/threads/message_loop_thread.h136
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/threads/thread.h237
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/threads/thread_delegate.h71
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/threads/thread_manager.h117
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/threads/thread_options.h107
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/threads/thread_validator.h105
-rw-r--r--SDL_Core/src/components/Utils/include/Utils/timer_thread.h336
-rw-r--r--SDL_Core/src/components/Utils/include/utils/atomic.h69
-rw-r--r--SDL_Core/src/components/Utils/src/WorkWithOS.cpp147
-rw-r--r--SDL_Core/src/components/Utils/src/back_trace.cc107
-rw-r--r--SDL_Core/src/components/Utils/src/bitstream.cc129
-rw-r--r--SDL_Core/src/components/Utils/src/conditional_variable_posix.cc134
-rw-r--r--SDL_Core/src/components/Utils/src/date_time.cc74
-rw-r--r--SDL_Core/src/components/Utils/src/file_system.cc404
-rw-r--r--SDL_Core/src/components/Utils/src/lock_posix.cc126
-rw-r--r--SDL_Core/src/components/Utils/src/signals_linux.cc57
-rw-r--r--SDL_Core/src/components/Utils/src/threads/posix_thread.cc185
-rw-r--r--SDL_Core/src/components/Utils/src/threads/thread_manager.cc120
-rw-r--r--SDL_Core/src/components/Utils/src/threads/thread_validator.cc95
-rw-r--r--SDL_Core/src/components/application_manager/CMakeLists.txt347
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/application.h438
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/application_data_impl.h323
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/application_impl.h176
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/application_manager.h79
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/application_manager_impl.h610
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/command.h81
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/command_impl.h94
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/command_notification_impl.h64
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/command_request_impl.h178
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/command_response_impl.h68
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_response.h71
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_request.h71
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_response.h71
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_response.h71
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_request.h71
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_response.h71
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h69
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_to_hmi.h58
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h78
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h78
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h78
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_show_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h74
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h74
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h77
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h76
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h77
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h74
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h74
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h75
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h85
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_request.h71
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h74
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h74
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h74
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h141
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_request.h88
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_request.h87
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_request.h129
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h124
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_request.h163
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_request.h97
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_request.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_request.h82
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_request.h99
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_request.h80
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/dial_number_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_request.h76
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_response.h67
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_request.h80
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/generic_response.h70
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_request.h80
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_request.h94
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_request.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_app_interface_unregistered_notification.h74
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_audio_pass_thru_notification.h74
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_event_notification.h86
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_press_notification.h85
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_command_notification.h75
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_driver_distraction_notification.h77
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_encoded_sync_pdata_notification.h90
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hash_change_notification.h75
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_keyboard_input_notification.h76
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_language_change_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_permissions_change_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_sync_pdata_notification.h91
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h76
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_tbt_client_state_notification.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_touch_event_notification.h76
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_vehicle_data_notification.h82
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_request.h87
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h220
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_request.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_request.h80
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h183
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_request.h149
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_request.h89
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h68
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_request.h80
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_request.h113
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_request.h88
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_request.h81
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h67
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_request.h85
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_request.h91
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_response.h67
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_request.h84
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_response.h67
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_request.h86
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_response.h67
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_request.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_request.h96
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_request.h76
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_response.h67
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_request.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_request.h76
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_response.h72
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_request.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_request.h95
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_request.h92
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_response.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/commands/pending.h75
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/event_engine/event.h147
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h117
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_observer.h116
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/hmi_capabilities.h515
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/hmi_command_factory.h65
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/message.h121
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/message_helper.h351
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/mobile_command_factory.h63
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/mobile_message_handler.h67
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/policies_manager/policies_manager.h73
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/request_controller.h148
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/resume_ctrl.h221
-rw-r--r--SDL_Core/src/components/application_manager/include/application_manager/smart_object_keys.h312
-rw-r--r--SDL_Core/src/components/application_manager/src/application_data_impl.cc477
-rw-r--r--SDL_Core/src/components/application_manager/src/application_impl.cc359
-rw-r--r--SDL_Core/src/components/application_manager/src/application_manager_impl.cc1661
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/command_impl.cc67
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/command_notification_impl.cc74
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/command_request_impl.cc211
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/command_response_impl.cc88
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_request.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_response.cc72
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_response.cc65
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_request.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_response.cc52
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_request.cc23
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_response.cc52
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc63
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_response.cc53
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc63
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc73
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc23
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc52
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/notification_from_hmi.cc100
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/notification_to_hmi.cc66
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc59
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc113
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc62
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_button_event_notification.cc65
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_button_press_notification.cc67
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc60
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc85
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc88
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_find_applications.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_ready_notification.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_show_notification.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_system_context_notification.cc95
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_system_request_notification.cc59
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc91
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc62
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc63
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc93
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc63
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc63
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_update_device_list.cc52
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc108
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc91
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/request_to_hmi.cc67
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/response_from_hmi.cc105
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc67
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_response.cc59
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc66
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc62
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_response.cc52
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc75
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_response.cc60
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc66
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc63
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc54
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_response.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_response.cc54
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_request.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_response.cc54
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc91
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc59
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc62
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc59
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_response.cc59
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc66
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc62
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/add_command_request.cc364
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/add_command_response.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc145
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc198
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/alert_request.cc303
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/alert_response.cc59
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_request.cc288
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc244
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc68
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_request.cc180
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_response.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_request.cc96
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_response.cc67
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc115
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc77
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc178
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc81
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/dial_number_request.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_request.cc113
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_response.cc65
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc88
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/generic_response.cc65
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_request.cc104
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_response.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc294
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/list_files_request.cc90
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/list_files_response.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_button_event_notification.cc120
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_button_press_notification.cc120
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_command_notification.cc76
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc73
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_encoded_sync_pdata_notification.cc105
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc74
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc60
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc73
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_language_change_notification.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc61
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_sync_pdata_notification.cc105
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_system_request_notification.cc60
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc72
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc72
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc88
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc193
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc763
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/put_file_request.cc188
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/put_file_response.cc69
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/read_did_request.cc111
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/read_did_response.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc573
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_response.cc72
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc339
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_request.cc159
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_response.cc55
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc109
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_response.cc59
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc350
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_request.cc139
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_response.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc149
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc192
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/show_request.cc261
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/show_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/slider_request.cc148
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/slider_response.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/speak_request.cc120
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/speak_response.cc58
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_request.cc80
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_response.cc66
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc276
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_request.cc103
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_response.cc67
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/system_request.cc72
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/system_response.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc59
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc47
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc79
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc69
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc272
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc66
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_request.cc172
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_response.cc57
-rw-r--r--SDL_Core/src/components/application_manager/src/commands/pending.cc67
-rw-r--r--SDL_Core/src/components/application_manager/src/event_engine/event.cc56
-rw-r--r--SDL_Core/src/components/application_manager/src/event_engine/event_dispatcher.cc119
-rw-r--r--SDL_Core/src/components/application_manager/src/event_engine/event_observer.cc63
-rw-r--r--SDL_Core/src/components/application_manager/src/hmi_capabilities.cc691
-rw-r--r--SDL_Core/src/components/application_manager/src/hmi_command_factory.cc1880
-rw-r--r--SDL_Core/src/components/application_manager/src/message.cc186
-rw-r--r--SDL_Core/src/components/application_manager/src/message_helper.cc1593
-rw-r--r--SDL_Core/src/components/application_manager/src/mobile_command_factory.cc570
-rw-r--r--SDL_Core/src/components/application_manager/src/mobile_message_handler.cc218
-rw-r--r--SDL_Core/src/components/application_manager/src/policies_manager/policies_manager.cc201
-rw-r--r--SDL_Core/src/components/application_manager/src/request_controller.cc204
-rw-r--r--SDL_Core/src/components/application_manager/src/resume_ctrl.cpp529
-rw-r--r--SDL_Core/src/components/config_profile/CMakeLists.txt14
-rw-r--r--SDL_Core/src/components/config_profile/include/config_profile/ini_file.h133
-rw-r--r--SDL_Core/src/components/config_profile/include/config_profile/profile.h393
-rw-r--r--SDL_Core/src/components/config_profile/src/ini_file.cc411
-rw-r--r--SDL_Core/src/components/config_profile/src/profile.cc666
-rw-r--r--SDL_Core/src/components/connection_handler/CMakeLists.txt20
-rw-r--r--SDL_Core/src/components/connection_handler/include/connection_handler/connection.h208
-rw-r--r--SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler.h91
-rw-r--r--SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler_impl.h319
-rw-r--r--SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler_observer.h106
-rw-r--r--SDL_Core/src/components/connection_handler/include/connection_handler/device.h123
-rw-r--r--SDL_Core/src/components/connection_handler/include/connection_handler/devices_discovery_starter.h75
-rw-r--r--SDL_Core/src/components/connection_handler/include/connection_handler/heartbeat_monitor.h75
-rw-r--r--SDL_Core/src/components/connection_handler/src/connection.cc174
-rw-r--r--SDL_Core/src/components/connection_handler/src/connection_handler_impl.cc576
-rw-r--r--SDL_Core/src/components/connection_handler/src/device.cc69
-rw-r--r--SDL_Core/src/components/connection_handler/src/heartbeat_monitor.cc85
-rw-r--r--SDL_Core/src/components/dbus/CMakeLists.txt42
-rw-r--r--SDL_Core/src/components/dbus/codegen/code_formatter.py57
-rw-r--r--SDL_Core/src/components/dbus/codegen/ford_xml_parser.py211
-rwxr-xr-xSDL_Core/src/components/dbus/codegen/make_introspection_c.py126
-rwxr-xr-xSDL_Core/src/components/dbus/codegen/make_message_descriptions.py273
-rwxr-xr-xSDL_Core/src/components/dbus/codegen/make_qml_dbus_cpp.py734
-rwxr-xr-xSDL_Core/src/components/dbus/codegen/make_qml_dbus_qml.py217
-rw-r--r--SDL_Core/src/components/dbus/include/dbus/dbus_adapter.h351
-rw-r--r--SDL_Core/src/components/dbus/include/dbus/dbus_message_controller.h85
-rw-r--r--SDL_Core/src/components/dbus/include/dbus/message_descriptions.h73
-rw-r--r--SDL_Core/src/components/dbus/include/dbus/schema.h98
-rw-r--r--SDL_Core/src/components/dbus/src/dbus_adapter.cc782
-rw-r--r--SDL_Core/src/components/dbus/src/dbus_message_controller.cc73
-rw-r--r--SDL_Core/src/components/dbus/src/schema.cc136
-rw-r--r--SDL_Core/src/components/formatters/CMakeLists.txt25
-rw-r--r--SDL_Core/src/components/formatters/include/formatters/CFormatterJsonBase.hpp122
-rw-r--r--SDL_Core/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv1.hpp238
-rw-r--r--SDL_Core/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv2.hpp176
-rw-r--r--SDL_Core/src/components/formatters/include/formatters/CSmartFactory.hpp422
-rw-r--r--SDL_Core/src/components/formatters/include/formatters/formatter_json_rpc.h497
-rw-r--r--SDL_Core/src/components/formatters/include/formatters/generic_json_formatter.h71
-rw-r--r--SDL_Core/src/components/formatters/include/formatters/meta_formatter.h78
-rw-r--r--SDL_Core/src/components/formatters/src/CFormatterJsonBase.cpp118
-rw-r--r--SDL_Core/src/components/formatters/src/CFormatterJsonSDLRPCv1.cpp157
-rw-r--r--SDL_Core/src/components/formatters/src/CFormatterJsonSDLRPCv2.cpp106
-rw-r--r--SDL_Core/src/components/formatters/src/CSmartFactory.cpp46
-rw-r--r--SDL_Core/src/components/formatters/src/formatter_json_rpc.cc204
-rw-r--r--SDL_Core/src/components/formatters/src/generic_json_formatter.cc63
-rw-r--r--SDL_Core/src/components/formatters/src/meta_formatter.cc60
-rw-r--r--SDL_Core/src/components/hmi_message_handler/CMakeLists.txt37
-rw-r--r--SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/dbus_message_adapter.h101
-rw-r--r--SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_adapter.h81
-rw-r--r--SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler.h56
-rw-r--r--SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h124
-rw-r--r--SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_observer.h47
-rw-r--r--SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_sender.h48
-rw-r--r--SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/messagebroker_adapter.h90
-rw-r--r--SDL_Core/src/components/hmi_message_handler/src/dbus_message_adapter.cc196
-rw-r--r--SDL_Core/src/components/hmi_message_handler/src/hmi_message_adapter.cc44
-rw-r--r--SDL_Core/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc122
-rw-r--r--SDL_Core/src/components/hmi_message_handler/src/messagebroker_adapter.cc165
-rw-r--r--SDL_Core/src/components/interfaces/CMakeLists.txt50
-rw-r--r--SDL_Core/src/components/media_manager/CMakeLists.txt75
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/audio/a2dp_source_player_adapter.h67
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/audio/audio_stream_sender_thread.h135
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_recorder_adapter.h67
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_recorder_listener.h67
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_to_file_recorder_thread.h100
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/audio/pipe_audio_streamer_adapter.h51
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/audio/socket_audio_streamer_adapter.h50
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/media_adapter.h51
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/media_adapter_impl.h65
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/media_adapter_listener.h55
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/media_manager.h55
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/media_manager_impl.h92
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/pipe_streamer_adapter.h114
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/socket_streamer_adapter.h136
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/streamer_listener.h61
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/video/pipe_video_streamer_adapter.h51
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/video/socket_video_streamer_adapter.h51
-rw-r--r--SDL_Core/src/components/media_manager/include/media_manager/video/video_stream_to_file_adapter.h111
-rw-r--r--SDL_Core/src/components/media_manager/src/audio/a2dp_source_player_adapter.cc284
-rw-r--r--SDL_Core/src/components/media_manager/src/audio/audio_stream_sender_thread.cc151
-rw-r--r--SDL_Core/src/components/media_manager/src/audio/from_mic_recorder_adapter.cc107
-rw-r--r--SDL_Core/src/components/media_manager/src/audio/from_mic_recorder_listener.cc99
-rw-r--r--SDL_Core/src/components/media_manager/src/audio/from_mic_to_file_recorder_thread.cc272
-rw-r--r--SDL_Core/src/components/media_manager/src/audio/pipe_audio_streamer_adapter.cc54
-rw-r--r--SDL_Core/src/components/media_manager/src/audio/socket_audio_streamer_adapter.cc55
-rw-r--r--SDL_Core/src/components/media_manager/src/media_adapter_impl.cc58
-rw-r--r--SDL_Core/src/components/media_manager/src/media_manager_impl.cc323
-rw-r--r--SDL_Core/src/components/media_manager/src/pipe_streamer_adapter.cc225
-rw-r--r--SDL_Core/src/components/media_manager/src/socket_streamer_adapter.cc309
-rw-r--r--SDL_Core/src/components/media_manager/src/streamer_listener.cc80
-rw-r--r--SDL_Core/src/components/media_manager/src/video/pipe_video_streamer_adapter.cc54
-rw-r--r--SDL_Core/src/components/media_manager/src/video/socket_video_streamer_adapter.cc54
-rw-r--r--SDL_Core/src/components/media_manager/src/video/video_stream_to_file_adapter.cc201
-rw-r--r--SDL_Core/src/components/policies/CMakeLists.txt22
-rw-r--r--SDL_Core/src/components/policies/include/policies/permissions_calculator.h140
-rw-r--r--SDL_Core/src/components/policies/include/policies/policy_configuration.h96
-rw-r--r--SDL_Core/src/components/policies/include/policies/policy_manager.h197
-rw-r--r--SDL_Core/src/components/policies/include/policies/policy_manager_impl.h126
-rw-r--r--SDL_Core/src/components/policies/include/policies/policy_table.h129
-rw-r--r--SDL_Core/src/components/policies/include/policies/policy_table_schema.h202
-rw-r--r--SDL_Core/src/components/policies/include/policies/preloaded_pt_schema.h75
-rw-r--r--SDL_Core/src/components/policies/src/permissions_calculator.cc234
-rw-r--r--SDL_Core/src/components/policies/src/policy_configuration.cc68
-rw-r--r--SDL_Core/src/components/policies/src/policy_manager_impl.cc175
-rw-r--r--SDL_Core/src/components/policies/src/policy_table.cc113
-rw-r--r--SDL_Core/src/components/policies/src/policy_table_schema.cc272
-rw-r--r--SDL_Core/src/components/policies/src/preloaded_pt_schema.cc92
-rw-r--r--SDL_Core/src/components/protocol_handler/CMakeLists.txt20
-rw-r--r--SDL_Core/src/components/protocol_handler/include/protocol_handler/applink_protocol.h77
-rw-r--r--SDL_Core/src/components/protocol_handler/include/protocol_handler/message_priority.h37
-rw-r--r--SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_handler.h95
-rw-r--r--SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_handler_impl.h455
-rw-r--r--SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_observer.h76
-rw-r--r--SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_packet.h498
-rw-r--r--SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_payload.h77
-rw-r--r--SDL_Core/src/components/protocol_handler/include/protocol_handler/raw_message.h164
-rw-r--r--SDL_Core/src/components/protocol_handler/include/protocol_handler/rpc_type.h60
-rw-r--r--SDL_Core/src/components/protocol_handler/include/protocol_handler/service_type.h32
-rw-r--r--SDL_Core/src/components/protocol_handler/include/protocol_handler/session_observer.h145
-rw-r--r--SDL_Core/src/components/protocol_handler/src/applink_protocol.cc1
-rw-r--r--SDL_Core/src/components/protocol_handler/src/message_priority.cc26
-rw-r--r--SDL_Core/src/components/protocol_handler/src/protocol_handler_impl.cc781
-rw-r--r--SDL_Core/src/components/protocol_handler/src/protocol_packet.cc304
-rw-r--r--SDL_Core/src/components/protocol_handler/src/protocol_payload.cc96
-rw-r--r--SDL_Core/src/components/protocol_handler/src/raw_message.cc100
-rw-r--r--SDL_Core/src/components/protocol_handler/src/rpc_type.cc86
-rw-r--r--SDL_Core/src/components/protocol_handler/src/service_type.cc43
-rw-r--r--SDL_Core/src/components/qt_hmi/CMakeLists.txt38
-rw-r--r--SDL_Core/src/components/qt_hmi/Readme.txt7
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/EVALUATION USE LICENSE AGREEMENT.docbin0 -> 41472 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Bold.ttfbin0 -> 380840 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Md.ttfbin0 -> 314564 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Roman.ttfbin0 -> 332128 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-Lt.ttfbin0 -> 246000 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-LtCn.ttfbin0 -> 246040 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-ThCn.ttfbin0 -> 260780 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Bold.ttfbin0 -> 380840 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Md.ttfbin0 -> 314564 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Roman.ttfbin0 -> 332128 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/ImageHardkey.qml52
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/AlphaSortLayout.qml378
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/BlankLayout.qml9
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/ChromeLayout.qml69
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/ClimatePCALayout.qml111
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/ControlMirrorLayout.qml57
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/FMLayout.qml217
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/FMLayoutPCA.qml152
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/HomeLayout.qml61
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/ListLayout.qml59
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavInRouteLayout.qml130
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavKeyboardLayout.qml547
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavNoRouteLayout.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/OffLayout.qml71
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/PCAstatusBarLayout.qml123
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/PhoneContactsLayout.qml40
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/SiriusLayout.qml195
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/StartLayout.qml30
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/TC1_B1_Grid.qml37
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackImgLayoutPCA.qml76
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackLayout.qml107
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackLayoutPCA.qml73
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/USBLayout.qml132
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Layouts/USBLayoutPCA.qml155
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/PCA_HMI_v1_0.qml373
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/PCA_HMI_v1_0.qmlproject20
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/CButton.pngbin0 -> 4607 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Ford-HMI-PCA-phone_contacts.psdbin0 -> 1111637 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/HierarchicalListBG.pngbin0 -> 40425 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/Map.pngbin0 -> 335952 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/OptionsInActive.pngbin0 -> 5760 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/OptionsPressed_9_9.pngbin0 -> 10538 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/Options_9_9.pngbin0 -> 10625 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/compass.pngbin0 -> 3528 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/current street.pngbin0 -> 5491 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/deleteIcon.pngbin0 -> 2892 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/deleteIconBlack.pngbin0 -> 2898 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/destIcon.pngbin0 -> 3097 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/destIconBlack.pngbin0 -> 3000 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/turnArrow.pngbin0 -> 2894 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/OButton.pngbin0 -> 5287 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonCenter_0_8.pngbin0 -> 2861 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonEnd_8_8.pngbin0 -> 3859 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonOtherEnd_8_8.pngbin0 -> 3911 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/Ford-HMI-PCA-audio_fm_sirius.pngbin0 -> 42473 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HD Logo.pngbin0 -> 3609 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HD Logo1.pngbin0 -> 3543 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HDBtn_8_8.pngbin0 -> 5292 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/SourceBtn_8_8.pngbin0 -> 5251 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/TuneBtn_8_8.pngbin0 -> 5059 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/blueBall.pngbin0 -> 2874 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/menuIcon_2_2.pngbin0 -> 2850 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/perlJamIcon_0_0.pngbin0 -> 13194 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/whiteBall.pngbin0 -> 2866 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/NextPressed_9_9.pngbin0 -> 11177 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/Next_9_9.pngbin0 -> 11472 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/PrevPressed_9_9.pngbin0 -> 11089 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/Prev_9_9.pngbin0 -> 11325 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/albumArt.pngbin0 -> 45068 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pause.pngbin0 -> 3276 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pausePressed_9_9.pngbin0 -> 12559 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pause_9_9.pngbin0 -> 13816 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/playPressed_9_9.pngbin0 -> 12335 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/play_9_9.pngbin0 -> 13219 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/Ambient Lighti Icon.pngbin0 -> 3744 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/EV Icon.pngbin0 -> 4227 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/MCS Icon.pngbin0 -> 4054 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/SYNC Services.pngbin0 -> 3578 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/cal.pngbin0 -> 3699 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/folders.pngbin0 -> 3337 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/key_car.pngbin0 -> 4426 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/sun.pngbin0 -> 4773 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/album artRazorFish.pngbin0 -> 95149 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/keyPressed_9_9.pngbin0 -> 10154 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/keySelected.pngbin0 -> 4396 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/key_9_9.pngbin0 -> 9590 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/muteActive.pngbin0 -> 5614 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/muteInActive.pngbin0 -> 4903 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/mutePressed_9_9.pngbin0 -> 10510 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/mute_9_9.pngbin0 -> 11248 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/presetPressed_9_9.pngbin0 -> 8915 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/presetSelected.pngbin0 -> 4017 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/preset_9_9.pngbin0 -> 8401 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoomPressed_9_9.pngbin0 -> 8107 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoomSelected.pngbin0 -> 3611 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoom_9_9.pngbin0 -> 8490 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/A_C icon.pngbin0 -> 3566 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/A_C iconBlack.pngbin0 -> 3871 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonActive_0_0.pngbin0 -> 5166 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonInActive_0_0.pngbin0 -> 4264 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonPressed_9_9.pngbin0 -> 13064 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/Button_9_9.pngbin0 -> 12252 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/defrost icon.pngbin0 -> 3509 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/defrost iconBlue.pngbin0 -> 3887 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/face icon.pngbin0 -> 3593 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/face iconBlack.pngbin0 -> 3931 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/feet icon.pngbin0 -> 3568 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/feet iconBlack.pngbin0 -> 3878 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/headed dash.pngbin0 -> 3326 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/headed dashBlue.pngbin0 -> 3638 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/heated seat icon.pngbin0 -> 3967 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/heated seat iconBlack.pngbin0 -> 4406 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ring.pngbin0 -> 10987 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/wheel icon.pngbin0 -> 3807 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/wheel iconBlack.pngbin0 -> 4272 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/dn-arrow.pngbin0 -> 1097 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/g136p.pngbin0 -> 274 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/g137p.pngbin0 -> 357 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/arrow.pngbin0 -> 3745 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/car.pngbin0 -> 4114 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/gear.pngbin0 -> 4806 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/notes.pngbin0 -> 1962 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/phone.pngbin0 -> 2528 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/snow.pngbin0 -> 3976 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/DNDoff.pngbin0 -> 7073 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/DNDon.pngbin0 -> 5564 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/contacts.pngbin0 -> 4036 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/keypad.pngbin0 -> 3200 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/messages.pngbin0 -> 2576 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/more.pngbin0 -> 3447 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/recent.pngbin0 -> 3104 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/texts.pngbin0 -> 3917 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/scrollbar.pngbin0 -> 1008 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/slider.pngbin0 -> 1017 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Resources/up-arrow.pngbin0 -> 1101 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/TextHardkey.qml52
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/AM.qml86
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/AMPCA.qml122
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/AlphaSortPCA.qml151
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/AuxPCA.qml41
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/BT_AudioPCA.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/CDPCA.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/Chrome.qml55
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/ClimatePCA.qml74
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/ControlMirror.qml55
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/FM.qml94
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/FMPCA.qml175
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/GenListHandling.qml14
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/GridMenuPCA.qml87
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/Home.qml50
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/List.qml74
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/MenuTopLevelGrid.qml85
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/MyVehiclePCA.qml85
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/NavInRoute.qml38
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/NavKeyboardPCA.qml159
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/NavMenu.qml85
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/NavNoRoute.qml35
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/Off.qml34
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/On.qml38
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/PCAstatusBar.qml37
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/PhoneContactsListView.qml104
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/PhonePCA.qml85
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/RadioEventHandling.qml37
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/RadioEventHandlingPCA.qml61
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/SDL_MusicPCA.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/Sirius.qml71
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/SiriusPCA.qml115
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/SourceChange.qml73
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/SourceChangePCA.qml105
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/Start.qml43
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/USB.qml59
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/USBPCA.qml49
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Views/iPodPCA.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/FocusListViewLayout.qml34
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewImgItemLayout.qml25
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewItemLayout.qml24
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewLayout.qml56
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewPresetItemLayout.qml22
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewPresetLayout.qml61
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PhoneListWdgtLayout.qml50
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PresetGridLayoutPCA.qml40
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PresetPCALayout.qml40
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/SimpleItemWdgLayout.qml24
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TGListItemLayout.qml50
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonBackGroundPCALayout.qml97
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonClimatePCALayout.qml143
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonPCALayout.qml95
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonPCASpecialLayout.qml325
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/BaseText.qml50
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/CondText.qml14
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/FocusListViewWidget.qml45
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewImgItemWidget.qml31
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewItemWidget.qml32
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewPresetItemWidget.qml41
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewPresetWidget.qml35
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewWidget.qml31
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/MenuListItemWidget.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/MenuSubmenuListItemWidget.qml60
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/PhoneContactListItemWdgt.qml28
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/PresetPCA.qml27
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/PresetsGridPCA.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/ScrollBar.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton.qml77
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton2.qml32
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonBackGround_PCA.qml27
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonClimatePCA.qml38
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonSpecial_PCA.qml34
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton_PCA.qml27
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/Widgets/VerySimpleListItemWidget.qml18
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/QtHMIFrameworkd.pdbbin0 -> 5516288 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/plugin.qmltypes682
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtBorderImage.qml40
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtContainer.qml8
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtGridView.qml35
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtImage.qml43
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtListView.qml9
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtPathView.qml9
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtScrollbar.qml104
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtScrollview.qml7
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtText.qml6
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtTouchAreaEnums.js12
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActScriptCall.qml13
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActSystemModelCall.qml14
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActTimer.qml25
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActWidgetCall.qml13
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActWidgetProperty.qml13
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FAnimViewHide.qml6
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FAnimationEnums.js7
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FConditionPool.qml5
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FDataPool.qml5
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FEventPool.qml9
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FGaugeValue.qml51
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FHardwareKeyEnums.js9
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStringFormat.js132
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStringFormat.qml28
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStyle.qml56
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStyler.qml41
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTimer.qml6
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTimerEnums.js5
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTrgTimer.qml19
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCase.qml9
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseGroup.qml7
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseSimple.qml15
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseTransition.qml6
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qmldir35
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/.gitignore11
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/BananaSnacks.pro21
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas.desktop11
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas64.pngbin0 -> 3400 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas80.pngbin0 -> 4945 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas_harmattan.desktop11
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/README.md37
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/bananas.qmlproject19
-rwxr-xr-xSDL_Core/src/components/qt_hmi/References/Work/bananasnacks/fetch_plugins.sh8
-rwxr-xr-xSDL_Core/src/components/qt_hmi/References/Work/bananasnacks/load_env.sh1
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/main.cpp17
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/mediacore/qmldir2
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/navcore/qmldir3
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/phonecore/qmldir3
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/sdlcore/qmldir3
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/AddIcon.pngbin0 -> 4369 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/BackIcon.pngbin0 -> 2975 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/BluetoothIcon.pngbin0 -> 6876 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/CMaxCal.pngbin0 -> 10475 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ChromeBottom.pngbin0 -> 16926 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ChromeTop.pngbin0 -> 13849 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Cloud.pngbin0 -> 4471 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/CloudNight.pngbin0 -> 3848 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/FunArtwork.pngbin0 -> 49513 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/MapMich.pngbin0 -> 1035032 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/SiriusArtwork.pngbin0 -> 16044 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Crosshairs.pngbin0 -> 5932 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/DeleteIcon.pngbin0 -> 2890 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/DndIcon.pngbin0 -> 8217 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/EvIcon.pngbin0 -> 7355 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/FavoritesIcon.pngbin0 -> 6218 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Forward.pngbin0 -> 3072 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/HomeIcon.pngbin0 -> 5305 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeyboardIcon.pngbin0 -> 4473 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeypadEntryIcon.pngbin0 -> 5374 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeypadIcon.pngbin0 -> 5073 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/LightingIcon.pngbin0 -> 6456 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Loop.pngbin0 -> 3115 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MediaTab.pngbin0 -> 3992 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MessagesIcon.pngbin0 -> 4974 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MissingArtwork.pngbin0 -> 55017 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/NavigationTab.pngbin0 -> 4821 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PandoraIcon.pngbin0 -> 6918 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Pause.pngbin0 -> 2826 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneCornerIcons.pngbin0 -> 4156 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneIcons.pngbin0 -> 7277 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneTab.pngbin0 -> 4759 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhonebookIcon.pngbin0 -> 5748 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Play.pngbin0 -> 3020 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PoiIcon.pngbin0 -> 4517 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RadioIcon.pngbin0 -> 9198 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RecentCallsIcon.pngbin0 -> 5831 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RecentDestinationsIcon.pngbin0 -> 5807 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Rewind.pngbin0 -> 3092 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RightTurn.pngbin0 -> 8684 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ScoutIcon.pngbin0 -> 6611 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SearchIcon.pngbin0 -> 395 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SeatsIcon.pngbin0 -> 7897 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ServicesIcon.pngbin0 -> 5832 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Shuffle.pngbin0 -> 3149 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SiriusIcon.pngbin0 -> 6570 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SpeedDialIcon.pngbin0 -> 5976 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/UsbIcon.pngbin0 -> 3592 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VehicleCornerIcon.pngbin0 -> 31003 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VehicleTab.pngbin0 -> 4741 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VhrIcon.pngbin0 -> 7070 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VoicemailIcon.pngbin0 -> 7500 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WallpaperIcon.pngbin0 -> 4767 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WifiIcon.pngbin0 -> 8214 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WorkIcon.pngbin0 -> 4698 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/BackButton.qml9
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Button.qml32
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/CheckButton.qml36
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Clickable.qml24
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/GraphicalButton.qml40
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/H1.qml6
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/H2.qml9
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/ImageButton.qml13
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Key.qml7
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Keyboard.qml129
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Keypad.qml43
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/MediaBrowser.qml40
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/OverflowableText.qml46
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/RadioButton.qml30
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/RadioButtonGroup.qml5
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Section.qml6
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/TextBox.qml29
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/TextEntry.qml72
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Weather.qml34
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/EmptyLayout.qml16
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/LeftThirdSection.qml16
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/MediaLayout.qml59
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/MediaPlayerLayout.qml34
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/TitledLayout.qml14
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/.usb.qml.swpbin0 -> 12288 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/Browse/artists.qml6
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/applink.qml29
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/bluetooth.qml13
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/fm.qml46
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/menu.qml54
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/sirius.qml13
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/usb.qml59
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/.menu.qml.swpbin0 -> 12288 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/favorites.qml70
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/keyboard_search.qml64
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/map.qml63
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/menu.qml57
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/poi.qml205
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/recent_destinations.qml70
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/video_moving_map.qml20
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/device_info.qml21
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/discovery.qml23
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/keypad.qml55
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/manage_devices.qml16
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/menu.qml54
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/recent_calls.qml62
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Vehicle/menu.qml60
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/alert.qml68
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/chrome.qml144
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/home.qml51
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/home_corners.qml133
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/media.qml55
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/navigation.qml49
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/phone.qml37
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/vehicle.qml17
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/main.qml79
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.cpp70
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.h33
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/.gitignore5
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/FordSdlCore.pro48
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.cpp470
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.h87
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.cpp792
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h170
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QtWebsocket.pro21
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QtWebsocket.vcproj328
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.cpp31
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.h16
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/qmldir3
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.cpp6
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.h18
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.cpp6
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.h47
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.cpp263
-rw-r--r--SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.h75
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/.gitignore9
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/CMakeLists.txt87
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/MainWindow.qml356
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ArrowKeys.qml68
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/BackButton.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/CheckBox.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/CircleButton.qml87
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClickableImage.qml66
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClickableText.qml77
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClimateControlBtn.qml93
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ComboBox.qml143
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/GradientRectangle.qml125
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/GridItem.qml53
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/HardwareButton.qml108
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/HeaderMenu.qml134
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/Icon.qml65
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ListItem.qml70
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/MaskedButton.qml64
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/MultiTouchArea.qml77
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/OvalButton.qml240
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PagedFlickable.qml105
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/Pager.qml53
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PlayPauseButton.qml77
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PowerSwitchButton.qml75
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PresetRow.qml106
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PushButton.qml136
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ScrollableListView.qml49
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ScrollableText.qml70
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/SoftButton.js39
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/SoftButton.qml104
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/StatusBar.qml42
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Async.js7
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/BasicCommunication.qml88
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Buttons.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Navigation.qml127
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/TTS.qml115
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/UI.qml449
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/VR.qml93
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/VehicleInfo.qml749
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/log4cxx.properties41
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationData.qml57
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationModel.qml91
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/CarMenuModel.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Constants.js249
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ContactsListModel.qml98
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/DataStorage.qml510
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/InteractionModel.qml58
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Internal.js163
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MainMenuListModel.qml79
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MediaClockModel.qml112
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MusicSourceModel.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationMenuModel.qml72
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationModel.qml52
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PerformAudioPassThruModel.qml43
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PhoneMenuModel.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PlayerState.qml51
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ScrollableMessageModel.qml54
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SettingsStorage.qml125
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SliderModel.qml45
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/models/VehicleInfoModel.qml234
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/AlertWindow.qml285
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/ContextPopup.qml56
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/ExitAllApplicationsPopup.qml81
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/InteractionPopup.qml103
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/PerformAudioPassThruPopup.qml149
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/PopUp.qml94
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/SliderPopup.qml214
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/TBTClientStatePopUp.qml71
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/TTSPopUp.qml79
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VRHelpPopup.qml92
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VRPopUp.qml92
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VehicleInfoPopUp.qml111
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/qml_model.qmlproject20
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/AMPlayerView.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ApplicationListView.qml123
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/BTPlayerView.qml62
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/CDPlayerView.qml63
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/CarMenuGridView.qml54
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ChangeDeviceView.qml102
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ClimateControlView.qml94
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ContactsListView.qml118
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/FMPlayerView.qml121
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/GeneralView.qml45
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/GridMenu.qml86
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/HardwareButtonsView.qml173
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/IPodPlayerView.qml61
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/LineInPlayerView.qml61
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MainMenuView.qml54
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MediaClockView.qml73
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MediaPlayer.qml325
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MusicSourceView.qml75
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationInRouteGridView.qml250
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationKeyboardView.qml221
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationMenuView.qml75
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationNoRouteGridView.qml205
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/PhoneKeyboardView.qml171
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/PhoneMenuGridView.qml55
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/RadioPlayer.qml160
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLNavi.qml223
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLNonMediaView.qml194
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLPlayerOptionsListView.qml120
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLPlayerView.qml79
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ScrollableMessageView.qml216
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SimulationView.qml284
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SiriusPlayerView.qml46
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/TurnByTurnView.qml201
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/TurnListView.qml103
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/UsbPlayerView.qml61
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt4/views/WarningInfo.qml135
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/.gitignore9
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/CMakeLists.txt87
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/MainWindow.qml409
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ArrowKeys.qml68
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/BackButton.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/CircleButton.qml87
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClickableImage.qml66
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClickableText.qml77
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClimateControlBtn.qml93
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/GradientRectangle.qml125
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/GridItem.qml53
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/HardwareButton.qml108
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/HeaderMenu.qml134
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/Icon.qml65
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ListItem.qml70
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/MaskedButton.qml64
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/MultiTouchArea.qml103
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/OvalButton.qml246
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PagedFlickable.qml105
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/Pager.qml53
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PlayPauseButton.qml77
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PowerSwitchButton.qml75
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PresetRow.qml106
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PushButton.qml136
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ScrollableListView.qml49
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/SoftButton.js39
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/SoftButton.qml97
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/StatusBar.qml42
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Async.js7
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/BasicCommunication.qml139
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Buttons.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Navigation.qml246
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/TTS.qml203
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/UI.qml721
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/VR.qml114
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/VehicleInfo.qml761
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/log4cxx.properties41
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ApplicationData.qml57
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ApplicationModel.qml103
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/CarMenuModel.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/Constants.js250
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ContactsListModel.qml98
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/DataStorage.qml651
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/Internal.js176
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MainMenuListModel.qml79
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MediaClockModel.qml112
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MusicSourceModel.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/NavigationMenuModel.qml72
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/NavigationModel.qml50
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PerformAudioPassThruModel.qml43
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PhoneMenuModel.qml78
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PlayerState.qml51
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ScrollableMessageModel.qml54
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/SettingsStorage.qml125
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/SliderModel.qml45
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/VehicleInfoModel.qml234
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/models/VrHelpItemsDefault.qml66
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/AlertWindow.qml290
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/ContextPopup.qml56
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/ExitAllApplicationsPopup.qml82
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/InteractionPopup.qml157
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/PerformAudioPassThruPopup.qml150
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/PopUp.qml94
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/SliderPopup.qml217
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/TBTClientStatePopUp.qml71
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/TTSPopUp.qml104
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VRHelpPopup.qml113
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VRPopUp.qml92
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VehicleInfoPopUp.qml112
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/qml_model.qmlproject20
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/AMPlayerView.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ApplicationListView.qml125
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/BTPlayerView.qml62
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/CDPlayerView.qml63
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/CarMenuGridView.qml54
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ChangeDeviceView.qml102
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ClimateControlView.qml94
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ContactsListView.qml118
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/FMPlayerView.qml121
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/GeneralView.qml48
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/GridMenu.qml86
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/HardwareButtonsView.qml175
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/IPodPlayerView.qml61
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/LineInPlayerView.qml61
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MainMenuView.qml54
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MediaClockView.qml73
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MediaPlayer.qml312
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MusicSourceView.qml75
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationInRouteGridView.qml250
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationKeyboardView.qml221
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationMenuView.qml75
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationNoRouteGridView.qml205
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/PhoneKeyboardView.qml171
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/PhoneMenuGridView.qml55
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/RadioPlayer.qml160
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLNavi.qml223
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLNonMediaView.qml179
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLPlayerOptionsListView.qml120
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLPlayerView.qml79
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ScrollableMessageView.qml173
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SimulationView.qml293
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SiriusPlayerView.qml46
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/TurnByTurnView.qml202
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/TurnListView.qml103
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/UsbPlayerView.qml61
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_model_qt5/views/WarningInfo.qml135
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/CMakeLists.txt41
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/CMakeLists.txt116
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.cc89
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.h64
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.cc93
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.h68
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.cc46
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.h64
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/metatype.h61
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/optional_argument.h83
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qml_dbus_common.h232
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qmldir3
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qt_version.h47
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/sdl_proxy.cc110
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/sdl_proxy.h76
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.cc68
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.h42
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/CMakeLists.txt85
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.cc39
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.h64
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.cc58
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.h59
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.cc155
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.h89
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/qmldir3
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/qt_version.h47
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/CMakeLists.txt83
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.cc108
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.h77
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/qmldir3
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/CMakeLists.txt84
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.cc59
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.h65
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.cc52
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.h59
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qmldir2
-rw-r--r--SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qt_version.h47
-rw-r--r--SDL_Core/src/components/qt_hmi/res/SPT.pngbin0 -> 11718 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/album_art.pngbin0 -> 45068 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/app_911_assist.pngbin0 -> 6982 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/app_vehicle_info.pngbin0 -> 4842 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/apps.pngbin0 -> 5957 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/arrow.pngbin0 -> 3745 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/blue_ball.pngbin0 -> 2874 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/long_oval_btn.pngbin0 -> 5251 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/long_oval_pressed_btn.pngbin0 -> 5042 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/longest_oval_btn.pngbin0 -> 5292 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/longest_oval_btn_pressed.pngbin0 -> 4977 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_bottom.pngbin0 -> 2817 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_left.pngbin0 -> 3893 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_pressed_left.pngbin0 -> 3735 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_pressed_right.pngbin0 -> 3755 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_right.pngbin0 -> 3881 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_top.pngbin0 -> 2814 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/player_next_btn.pngbin0 -> 11472 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/player_next_pressed_btn.pngbin0 -> 11177 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/player_pause_btn.pngbin0 -> 6666 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/player_pause_pressed_btn.pngbin0 -> 6268 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/player_play_btn.pngbin0 -> 13219 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/player_play_pressed_btn.pngbin0 -> 12335 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/player_prev_btn.pngbin0 -> 11325 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/player_prev_pressed_btn.pngbin0 -> 11089 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/preset_btn.pngbin0 -> 8401 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/preset_pressed_btn.pngbin0 -> 8915 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/round_btn.pngbin0 -> 9590 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/round_pressed_btn.pngbin0 -> 10154 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/short_oval_btn.pngbin0 -> 5059 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/short_oval_btn_pressed.pngbin0 -> 4733 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/zoom.pngbin0 -> 8490 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/buttons/zoom_pressed.pngbin0 -> 8107 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/car.pngbin0 -> 4114 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/change_devices.pngbin0 -> 5188 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/AC_off.pngbin0 -> 3566 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/AC_on.pngbin0 -> 3871 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/climate_round_off_btn.pngbin0 -> 12252 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/climate_round_on_btn.pngbin0 -> 13064 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/defrost_off.pngbin0 -> 3887 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/defrost_on.pngbin0 -> 3509 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/face_off.pngbin0 -> 3593 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/face_on.pngbin0 -> 3931 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/feet_off.pngbin0 -> 3568 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/feet_on.pngbin0 -> 3878 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/headed_dash_off.pngbin0 -> 3638 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/headed_dash_on.pngbin0 -> 3326 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/heated_seat_off.pngbin0 -> 3967 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/heated_seat_on.pngbin0 -> 4406 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/heated_wheel_off.pngbin0 -> 3807 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/climate/heated_wheel_on.pngbin0 -> 4272 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/DownButton.pngbin0 -> 4688 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/DownButton_pressed.pngbin0 -> 4612 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/LeftButton.pngbin0 -> 5170 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/LeftButton_pressed.pngbin0 -> 5269 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/OkButton.pngbin0 -> 4497 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/OkButton_pressed.pngbin0 -> 4622 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/RightButton.pngbin0 -> 5242 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/RightButton_pressed.pngbin0 -> 5138 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/UpButton.pngbin0 -> 4553 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/UpButton_pressed.pngbin0 -> 4681 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/backGroundControllButtons.pngbin0 -> 3157 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/vrButton.pngbin0 -> 5429 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/vrButton_pressed.pngbin0 -> 6165 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/controlButtons/vrImage.pngbin0 -> 2461 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/find_apps.pngbin0 -> 4085 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/gear.pngbin0 -> 4806 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/hd_logo_off.pngbin0 -> 3543 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/hd_logo_on.pngbin0 -> 3609 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/initial.wavbin0 -> 46834 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/install_apps.pngbin0 -> 6517 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/compass.pngbin0 -> 3552 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/current_street.pngbin0 -> 5491 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/delete_icon.pngbin0 -> 2892 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/delete_icon_black.pngbin0 -> 2898 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/dest_icon.pngbin0 -> 3097 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/dest_icon_black.pngbin0 -> 3000 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/map.pngbin0 -> 332637 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/mute_off.pngbin0 -> 11248 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/mute_on.pngbin0 -> 4334 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/options.pngbin0 -> 10625 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/options_in_active.pngbin0 -> 5760 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/options_pressed.pngbin0 -> 10538 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/nav/turnArrow.pngbin0 -> 2894 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/notes.pngbin0 -> 1962 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/phone/contacts.pngbin0 -> 4036 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/phone/dnd_off.pngbin0 -> 7073 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/phone/dnd_on.pngbin0 -> 5564 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/phone/keypad.pngbin0 -> 3200 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/phone/messages.pngbin0 -> 2576 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/phone/more.pngbin0 -> 3447 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/phone/phone.pngbin0 -> 2528 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/phone/recent.pngbin0 -> 3104 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/phone/texts.pngbin0 -> 3917 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/snow.pngbin0 -> 3976 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/vehicle/Ambient Lighti Icon.pngbin0 -> 3744 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/vehicle/EV Icon.pngbin0 -> 4227 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/vehicle/MCS Icon.pngbin0 -> 4054 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/vehicle/SYNC Services.pngbin0 -> 3578 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/vehicle/cal.pngbin0 -> 3699 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/vehicle/folders.pngbin0 -> 3337 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/vehicle/key_car.pngbin0 -> 4426 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/vehicle/sun.pngbin0 -> 4773 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/warning.pngbin0 -> 7546 bytes
-rw-r--r--SDL_Core/src/components/qt_hmi/res/white_ball.pngbin0 -> 2866 bytes
-rw-r--r--SDL_Core/src/components/request_watchdog/CMakeLists.txt15
-rw-r--r--SDL_Core/src/components/request_watchdog/include/request_watchdog/request_info.h62
-rw-r--r--SDL_Core/src/components/request_watchdog/include/request_watchdog/request_watchdog.h227
-rw-r--r--SDL_Core/src/components/request_watchdog/include/request_watchdog/watchdog.h134
-rw-r--r--SDL_Core/src/components/request_watchdog/include/request_watchdog/watchdog_subscriber.h58
-rw-r--r--SDL_Core/src/components/request_watchdog/src/request_info.cc64
-rw-r--r--SDL_Core/src/components/request_watchdog/src/request_watchdog.cc371
-rw-r--r--SDL_Core/src/components/request_watchdog/src/watchdog.cc48
-rw-r--r--SDL_Core/src/components/resumption/CMakeLists.txt11
-rw-r--r--SDL_Core/src/components/resumption/include/resumption/last_state.h101
-rw-r--r--SDL_Core/src/components/resumption/src/last_state.cc112
-rw-r--r--SDL_Core/src/components/rpc_base/CMakeLists.txt18
-rw-r--r--SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base.h297
-rw-r--r--SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base_inl.h407
-rw-r--r--SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base_json_inl.h245
-rw-r--r--SDL_Core/src/components/rpc_base/include/rpc_base/rpc_message.h95
-rw-r--r--SDL_Core/src/components/rpc_base/src/rpc_base/rpc_base.cc36
-rw-r--r--SDL_Core/src/components/rpc_base/src/rpc_base/rpc_message.cc39
-rw-r--r--SDL_Core/src/components/smart_objects/CMakeLists.txt22
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/always_false_schema_item.h92
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/always_true_schema_item.h92
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/array_schema_item.h151
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/bool_schema_item.h124
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/enum_schema_item.h302
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/errors.h80
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/number_schema_item.h282
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/object_optional_schema_item.h170
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/object_schema_item.h164
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/schema_item.h96
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/schema_item_parameter.h115
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/smart_object.h942
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/smart_schema.h116
-rw-r--r--SDL_Core/src/components/smart_objects/include/smart_objects/string_schema_item.h145
-rw-r--r--SDL_Core/src/components/smart_objects/src/always_false_schema_item.cc48
-rw-r--r--SDL_Core/src/components/smart_objects/src/always_true_schema_item.cc48
-rw-r--r--SDL_Core/src/components/smart_objects/src/array_schema_item.cc121
-rw-r--r--SDL_Core/src/components/smart_objects/src/bool_schema_item.cc79
-rw-r--r--SDL_Core/src/components/smart_objects/src/enum_schema_item.cc31
-rw-r--r--SDL_Core/src/components/smart_objects/src/number_schema_item.cc49
-rw-r--r--SDL_Core/src/components/smart_objects/src/object_optional_schema_item.cc186
-rw-r--r--SDL_Core/src/components/smart_objects/src/object_schema_item.cc151
-rw-r--r--SDL_Core/src/components/smart_objects/src/schema_item.cc55
-rw-r--r--SDL_Core/src/components/smart_objects/src/smart_object.cc1015
-rw-r--r--SDL_Core/src/components/smart_objects/src/smart_schema.cc66
-rw-r--r--SDL_Core/src/components/smart_objects/src/string_schema_item.cc107
-rw-r--r--SDL_Core/src/components/transport_manager/CMakeLists.txt81
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_connection_factory.h98
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device.h128
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h178
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_socket_connection.h83
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_transport_adapter.h81
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/common.h86
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/error.h147
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/info.h161
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/tcp/dnssd_service_browser.h133
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h115
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_connection_factory.h99
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_device.h148
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h112
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h88
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h91
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/connection.h84
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/device.h128
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/device_scanner.h86
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/server_connection_factory.h89
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h165
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter.h251
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h192
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_event.h163
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h498
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h252
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h303
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager.h166
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_default.h71
-rwxr-xr-xSDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_impl.h495
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_listener.h170
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_listener_empty.h189
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/common.h82
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h78
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h100
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h100
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h78
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h101
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/usb_handler.h85
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_aoa_adapter.h64
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_connection_factory.h67
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h105
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_device.h74
-rw-r--r--SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h78
-rw-r--r--SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc77
-rw-r--r--SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_device.cc98
-rw-r--r--SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc487
-rw-r--r--SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc132
-rw-r--r--SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_transport_adapter.cc144
-rw-r--r--SDL_Core/src/components/transport_manager/src/tcp/dnssd_service_browser.cc326
-rw-r--r--SDL_Core/src/components/transport_manager/src/tcp/tcp_client_listener.cc254
-rw-r--r--SDL_Core/src/components/transport_manager/src/tcp/tcp_connection_factory.cc72
-rw-r--r--SDL_Core/src/components/transport_manager/src/tcp/tcp_device.cc113
-rw-r--r--SDL_Core/src/components/transport_manager/src/tcp/tcp_socket_connection.cc117
-rw-r--r--SDL_Core/src/components/transport_manager/src/tcp/tcp_transport_adapter.cc146
-rw-r--r--SDL_Core/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc357
-rw-r--r--SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_event.cc93
-rw-r--r--SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc614
-rw-r--r--SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc241
-rw-r--r--SDL_Core/src/components/transport_manager/src/transport_manager_default.cc71
-rw-r--r--SDL_Core/src/components/transport_manager/src/transport_manager_impl.cc966
-rw-r--r--SDL_Core/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc79
-rw-r--r--SDL_Core/src/components/transport_manager/src/usb/libusb/usb_connection.cc313
-rw-r--r--SDL_Core/src/components/transport_manager/src/usb/libusb/usb_handler.cc418
-rw-r--r--SDL_Core/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc75
-rw-r--r--SDL_Core/src/components/transport_manager/src/usb/qnx/usb_connection.cc399
-rw-r--r--SDL_Core/src/components/transport_manager/src/usb/qnx/usb_handler.cc296
-rw-r--r--SDL_Core/src/components/transport_manager/src/usb/usb_aoa_adapter.cc80
-rw-r--r--SDL_Core/src/components/transport_manager/src/usb/usb_connection_factory.cc91
-rw-r--r--SDL_Core/src/components/transport_manager/src/usb/usb_device_scanner.cc213
4026 files changed, 215698 insertions, 255292 deletions
diff --git a/SDL_Core/src/components/AppMgr/CMakeLists.txt b/SDL_Core/src/components/AppMgr/CMakeLists.txt
deleted file mode 100644
index f077bad18..000000000
--- a/SDL_Core/src/components/AppMgr/CMakeLists.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-include_directories (
- ./include/
- ../JSONHandler/include/
- ../ConnectionHandler/include/
- ../ProtocolHandler/include/
- ../TransportManager/include/
- ../Utils/include/
- ../../thirdPartyLibs/MessageBroker/include/
- ../../thirdPartyLibs/jsoncpp/include/
- ../../thirdPartyLibs/logger/include/
- ../../thirdPartyLibs/logger/log4cplus-1.1.0/include/
- ../../thirdPartyLibs/encryption/include/
- ${CMAKE_BINARY_DIR}/src/thirdPartyLibs/logger/log4cplus-1.1.0/include
-)
-
-set (SOURCES
- ./src/AppMgr.cpp
- ./src/AppMgrCore.cpp
- ./src/MessageChaining.cpp
- ./src/DeviceStorage.cpp
- ./src/Application.cpp
- ./src/Application_v1.cpp
- ./src/Application_v2.cpp
- ./src/AppMgrCoreQueues.cpp
- ./src/AppPolicy.cpp
- ./src/RegistryItem.cpp
- ./src/ButtonMapping.cpp
- ./src/CommandMapping.cpp
- ./src/MenuMapping.cpp
- ./src/CapabilitesContainer.cpp
- ./src/HMIHandler.cpp
- ./src/MobileHandler.cpp
- ./src/ConnectionHandler.cpp
- ./src/SyncPManager.cpp
- ./src/AppMenus.cpp
- ./src/AppChoiceSets.cpp
- ./src/DeviceList.cpp
- ./src/DeviceHandler.cpp
- ./src/VehicleDataMapping.cpp
-)
-
-add_library("AppMgr" ${SOURCES})
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/AppChoiceSets.h b/SDL_Core/src/components/AppMgr/include/AppMgr/AppChoiceSets.h
deleted file mode 100644
index ef3aa6419..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/AppChoiceSets.h
+++ /dev/null
@@ -1,156 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef APPCHOICESETS_H
-#define APPCHOICESETS_H
-
-#include "JSONHandler/SDLRPCObjects/V1/Choice.h"
-#include "JSONHandler/SDLRPCObjects/V2/Choice.h"
-#include <vector>
-#include <string>
-#include <map>
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
- /**
- * \brief interaction choice sets protocol v1
- */
- typedef std::vector<NsSmartDeviceLinkRPC::Choice> ChoiceSetV1;
-
- /**
- * \brief interaction choice sets protocol v2
- */
- typedef std::vector<NsSmartDeviceLinkRPCV2::Choice> ChoiceSetV2;
-
- /**
- * \brief interaction choice sets
- */
- struct ChoiceSetGeneric
- {
- ChoiceSetV1 choiceSetV1;
- ChoiceSetV2 choiceSetV2;
- ChoiceSetGeneric();
- ChoiceSetGeneric(const ChoiceSetGeneric&src);
- const ChoiceSetGeneric& operator= (const ChoiceSetGeneric&);
- ~ChoiceSetGeneric();
- };
-
- /**
- * \brief mapping of interaction choice set id to choice set item vector
- */
- typedef std::pair<unsigned int, ChoiceSetGeneric> ChoiceSetItem;
-
- /**
- * \brief mapping of interaction choice set id to choice set item vector
- */
- typedef std::map<unsigned int, ChoiceSetGeneric> ChoiceSetItems;
-
- /**
- * \brief AppChoiceSets acts as a mapping between interaction choice set ids and respective choice sets
- */
- class AppChoiceSets
- {
- public:
-
- /**
- * \brief Default class constructor
- */
- AppChoiceSets();
-
- /**
- * \brief Default class destructor
- */
- ~AppChoiceSets();
-
- /**
- * \brief add an interaction choice set item to a mapping
- * \param choiceSetId interaction choice set id
- * \param choiceSet interaction choice set
- */
- void addItem(const unsigned int& choiceSetId, const ChoiceSetV1& choiceSet);
-
- /**
- * \brief add an interaction choice set item to a mapping
- * \param choiceSetId interaction choice set id
- * \param choiceSet interaction choice set
- */
- void addItem(const unsigned int& choiceSetId, const ChoiceSetV2& choiceSet);
-
- /**
- * \brief remove an interaction choice set from a mapping
- * \param choiceSetId interaction choice set id
- */
- void removeItem(const unsigned int& choiceSetId);
-
- /**
- * \brief find a mapped choice set item
- * \param choiceSetId interaction choice set id
- * \return a mapped choice set item
- */
- const ChoiceSetGeneric *findItem(const unsigned int& choiceSetId);
-
- /**
- * \brief gets all interaction choice set items
- * \return interaction choice set items
- */
- ChoiceSetItems getAllChoiceSets() const;
-
- /**
- * \brief get count of interaction choice sets
- * \return interaction choice sets count
- */
- size_t size() const;
-
- /**
- * \brief cleans all the items
- */
- void clear();
-
- private:
-
- /**
- * \brief Copy constructor
- */
- AppChoiceSets(const AppChoiceSets&);
-
- ChoiceSetItems mChoiceSets;
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // APPCHOICESETS_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/AppMenus.h b/SDL_Core/src/components/AppMgr/include/AppMgr/AppMenus.h
deleted file mode 100644
index 9c4f98e88..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/AppMenus.h
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef APPMENUS_H
-#define APPMENUS_H
-
-#include <map>
-#include <string>
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
- /**
- * \brief mapping of menu item name to menu item position
- */
- typedef std::pair<std::string, const unsigned int*> MenuValue;
-
- /**
- * \brief mapping of menu item id to the combination of menu item name and menu item position
- */
- typedef std::pair<unsigned int, MenuValue> MenuItem;
-
- /**
- * \brief mapping of menu item id to the combination of menu item name and menu item position
- */
- typedef std::map<unsigned int, MenuValue> MenuItems;
-
- /**
- * \brief AppMenus acts as a mapping between menu items id and respective item names with position
- */
- class AppMenus
- {
- public:
-
- /**
- * \brief Default class constructor
- */
- AppMenus();
-
- /**
- * \brief Default class destructor
- */
- ~AppMenus();
-
- /**
- * \brief add a menu item to a mapping
- * \param menuId menu id
- * \param menuName menu item name
- * \param position menu item position within the parent menu
- */
- void addItem(const unsigned int& menuId, const std::string& menuName, const unsigned int* position);
-
- /**
- * \brief remove a menu item from a mapping
- * \param menuId menu id
- */
- void removeItem(const unsigned int& menuId);
-
- /**
- * \brief find a menu item from a mapping
- * \param menuId menu id
- * \return a menu item from a mapping
- */
- const MenuValue* findItem(const unsigned int& menuId);
-
- /**
- * \brief gets all menu items
- * \return menu items
- */
- MenuItems getAllMenuItems() const;
-
- /**
- * \brief get count of commands
- * \return commands count
- */
- size_t size() const;
-
- /**
- * \brief cleans all the items
- */
- void clear();
-
- private:
-
- /**
- * \brief Copy constructor
- */
- AppMenus(const AppMenus&);
-
- MenuItems mMenuItems;
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // APPMENUS_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/AppMgr.h b/SDL_Core/src/components/AppMgr/include/AppMgr/AppMgr.h
deleted file mode 100644
index 767223ede..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/AppMgr.h
+++ /dev/null
@@ -1,159 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef APPMGR_H
-#define APPMGR_H
-
-#include "JSONHandler/IRPCMessagesObserver.h"
-#include "JSONHandler/IRPC2CommandsObserver.h"
-#include "ConnectionHandler/IConnectionHandlerObserver.hpp"
-
-class JSONHandler;
-class SDLRPCMessage;
-class JSONRPC2Handler;
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsRPC2Communication
-{
- class RPC2Command;
-}
-
-namespace NsConnectionHandler
-{
- class IDevicesDiscoveryStarter;
-}
-
-namespace NsAppManager
-{
- class AppMgrRegistry;
- class AppMgrCore;
- class AppFactory;
-
- /**
- * \brief a main app manager class which acts like container for other classes
- */
- class AppMgr: public IRPCMessagesObserver, public IRPC2CommandsObserver, public NsConnectionHandler::IConnectionHandlerObserver
- {
- public:
-
- /**
- * \brief Returning class instance
- * \return class instance
- */
- static AppMgr& getInstance();
-
- /**
- * \brief callback to proceed received mobile message
- * \param message the received message
- * \param connectionKey key of a connection associated with application that sent the message
- */
- virtual void onMessageReceivedCallback( NsSmartDeviceLinkRPC::SDLRPCMessage * message, int connectionKey );
-
- /**
- * \brief callback to proceed received RPC2 command
- * \param command the received command
- */
- virtual void onCommandReceivedCallback( NsRPC2Communication::RPC2Command * command );
-
- /**
- * \brief Available devices list updated.
- *
- * Called when device scanning initiated with scanForNewDevices
- * is completed.
- *
- * \param deviceList New list of available devices.
- **/
- virtual void onDeviceListUpdated(const NsConnectionHandler::tDeviceList & deviceList);
-
- /**
- * \brief callback which is called upon session starting
- * \param deviceHandle
- * \param sessionKey
- */
- virtual void onSessionStartedCallback(NsConnectionHandler::tDeviceHandle deviceHandle, int sessionKey, int firstSessionKey);
-
- /**
- * \brief callback which is called upon session ending
- * \param sessionKey
- */
- virtual void onSessionEndedCallback(int sessionKey, int firstSessionKey);
-
- /**
- * \brief Sets Json mobile handler instance
- * \param handler Json mobile handler
- */
- void setJsonHandler(JSONHandler* handler);
-
- /**
- * \brief Sets Json RPC2 handler instance
- * \param handler Json RPC2 handler
- */
- void setJsonRPC2Handler(JSONRPC2Handler* handler);
-
- /**
- * \brief Sets connection handler instance
- * \param handler connection handler
- */
- void setConnectionHandler(NsConnectionHandler::IDevicesDiscoveryStarter *handler);
-
- /**
- * \brief method to execute threads.
- */
- void executeThreads();
-
- private:
-
- /**
- * \brief Default class destructor
- */
- virtual ~AppMgr();
-
- /**
- * \brief Copy constructor
- */
- AppMgr(const AppMgr&);
-
- /**
- * \brief Default class constructor
- */
- AppMgr();
-
- static log4cplus::Logger mLogger;
- };
-
-} // namespace NsAppManager
-
-#endif // APPMGR_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/AppMgrCore.h b/SDL_Core/src/components/AppMgr/include/AppMgr/AppMgrCore.h
deleted file mode 100644
index 909e6d77b..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/AppMgrCore.h
+++ /dev/null
@@ -1,382 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef APPMGR_H_
-#define APPMGR_H_
-
-#include <string>
-#include "AppMgr/Application.h"
-#include "AppMgr/ButtonMapping.h"
-#include "AppMgr/VehicleDataMapping.h"
-#include "AppMgr/CapabilitesContainer.h"
-#include "AppMgr/SyncPManager.h"
-#include "AppMgr/DeviceList.h"
-#include "AppMgr/DeviceHandler.h"
-#include "JSONHandler/SDLRPCObjects/V2/DisplayCapabilities.h"
-#include "JSONHandler/SDLRPCObjects/V2/OnDriverDistraction.h"
-#include "JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonEvent.h"
-#include "JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonPress.h"
-#include "JSONHandler/SDLRPCObjects/V2/VehicleType.h"
-#include "JSONHandler/SDLRPCObjects/V1/Language.h"
-#include "JSONHandler/SDLRPCObjects/V2/Language.h"
-#include "AppMgr/MessageChaining.hpp"
-#include "AppMgr/DeviceStorage.hpp"
-
-namespace NsSmartDeviceLinkRPC
-{
- class SDLRPCMessage;
-}
-class JSONHandler;
-class JSONRPC2Handler;
-
-namespace NsSmartDeviceLinkRPC
-{
- class RegisterAppInterface_request;
- class OnDriverDistraction;
- class SDLRPCRequest;
-}
-
-namespace NsRPC2Communication
-{
- class RPC2Command;
-}
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsConnectionHandler
-{
- class IDevicesDiscoveryStarter;
-}
-
-namespace NsAppManager
-{
- class RegistryItem;
- template< class QueueType >
- class AppMgrCoreQueue;
-
- /**
- * \brief a connection between a mobile RPC message and a session
- */
- typedef std::pair<NsSmartDeviceLinkRPC::SDLRPCMessage*, int> Message;
-
- /**
- * \brief a list of device names
- */
- typedef std::vector<std::string> DeviceNamesList;
-
- /**
- *\brief Map of messages between mobile app and hmi
- */
- typedef std::map<int, MessageChaining*> MessageChains;
-
- /**
- * \brief Core app manager class which acts as a core for application manager
- */
- class AppMgrCore
- {
- friend class SubscribeButtonCmd;
- public:
-
- /**
- * \brief Default class destructor
- */
- virtual ~AppMgrCore();
-
- /**
- * \brief Returning class instance
- * \return class instance
- */
- static AppMgrCore& getInstance();
-
- /**
- * \brief push mobile RPC message to a queue
- * \param message a message to be pushed
- */
- void pushMobileRPCMessage(NsSmartDeviceLinkRPC::SDLRPCMessage * message , int appId);
-
- /**
- * \brief push HMI RPC2 message to a queue
- * \param message a message to be pushed
- */
- void pushRPC2CommunicationMessage( NsRPC2Communication::RPC2Command * message );
-
- /**
- * \brief method to execute threads.
- */
- void executeThreads();
-
- /**
- * \brief set Json mobile handler
- * \param handler a handler instance
- */
- void setJsonHandler(JSONHandler* handler);
-
- /**
- * \brief get Json mobile handler
- * \return JSONHandler instance
- */
- JSONHandler* getJsonHandler( ) const;
-
- /**
- * \brief set Json RPC2 handler
- * \param handler a handler instance
- */
- void setJsonRPC2Handler(JSONRPC2Handler* handler);
-
- /**
- * \brief get Json RPC2 handler
- * \return JSONRPC2Handler instance
- */
- JSONRPC2Handler* getJsonRPC2Handler( ) const;
-
- /**
- * \brief Sets connection handler instance
- * \param handler connection handler
- */
- void setConnectionHandler(NsConnectionHandler::IDevicesDiscoveryStarter* handler);
-
- /**
- * \brief Gets connection handler instance
- * \return connection handler
- */
- NsConnectionHandler::IDevicesDiscoveryStarter* getConnectionHandler( ) const;
-
- /**
- * \brief set device list
- * \param deviceList device list
- */
- void setDeviceList( const NsConnectionHandler::tDeviceList& deviceList );
-
- /**
- * \brief get device list
- * \return device list
- */
- const NsConnectionHandler::tDeviceList& getDeviceList() const;
-
- /**
- * \brief add a device to a mapping
- * \param sessionKey session/connection key
- * \param device device handler
- */
- void addDevice( const NsConnectionHandler::tDeviceHandle &device,
- const int &sessionKey, int firstSessionKey );
-
- /**
- * \brief remove a device from a mapping
- * \param sessionKey session/connection key
- */
- void removeDevice(const int &sessionKey, int firstSessionKey);
-
- bool getAudioPassThruFlag() const;
- void setAudioPassThruFlag(bool flag);
-
- //const MessageMapping& getMessageMapping() const;
-
- /**
- * \brief retrieve an application instance from the RegistryItrem instance checking for non-null values
- * \param item a RegistryItem from which to retrieve an app pointer
- * \return Application instance retrieved from item
- */
- Application* getApplicationFromItemCheckNotNull( const RegistryItem* item ) const;
-
- /**
- * \brief Sends notification to Mobile Application about changes in its HMI status
- * ie in system context/hmi level/audio streaming state.
- * \param application Mobile app to be notified about changes
- */
- void sendHMINotificationToMobile( Application * application );
-
- /**
- * \brief Activates app and deactivates others.
- * \param app Application to be activated.
- * \return bool Success of operation
- */
- bool performActivitiesForActivatingApp( Application * app );
-
- Application * getItem( int applicationId );
-
- private:
-
- /**
- * \brief Default class constructor
- */
- AppMgrCore();
-
- /**
- * \brief Copy constructor
- */
- AppMgrCore(const AppMgrCore&);
-
- /**
- * \brief mobile RPC message handler
- * \param mesage a message to be handled
- * \param pThis a pointer to AppMgrCore class instance
- */
- static void handleMobileRPCMessage(Message message, void* pThis);
-
- /**
- * \brief push HMI RPC2 message to a queue
- * \param msg a message to be pushed
- * \param pThis a pointer to AppMgrCore class instance
- */
- static void handleBusRPCMessageIncoming( NsRPC2Communication::RPC2Command* msg, void* pThis );
-
- /**
- * \brief Register an application
- * \param request a RegisterAppInterface request which is the source for application fields initial values
- * \param connectionID id of the connection which will be associated with the application
- * \param sessionID an id of the session which will be associated with the application
- * \return A instance of RegistryItem created for application
- */
- const Application* registerApplication(NsSmartDeviceLinkRPC::SDLRPCMessage *request , int sessionKey);
-
- /**
- * \brief unregister an application associated with the given session
- * \param connectionID an id of the connection asociated with the application to be unregistered
- * \param sessionID an id of the session asociated with the application to be unregistered
- */
- void unregisterApplication(int appId);
-
- /**
- * \brief Remove all app components from HMI
- * \param currentApp app which components to be removed
- * \param connectionID connection id
- * \param sessionID session id
- */
- void removeAppFromHmi(Application* currentApp, int appId);
-
- /**
- * \brief serialize a string value to the text file
- * \param fileName name of the file to serialize to
- * \param value a value to serialize
- * \return bool success of an operation - true or false
- */
- bool serializeToFile(const std::string& fileName, const std::string &value) const;
-
- /**
- * \brief Sends notification to mobile app about button event.
- * \param app Application to receive notification
- * \param object Notification received from HMI.
- */
- void sendButtonEvent( Application * app, NsRPC2Communication::Buttons::OnButtonEvent * object );
-
- /**
- * \brief Send notification to mobile app about button press event
- * \param app Application to receive notification
- * \param object Notification received from HMI.
- */
- void sendButtonPress( Application * app, NsRPC2Communication::Buttons::OnButtonPress * object );
-
- /**
- * \brief Remove message from message chain between mobile app and hmi.
- * If counter == 0 then remove message completely.
- * \param chain Iterator in message map
- * \return bool True if chain was deleted otherwise false
- */
- bool decreaseMessageChain(const MessageChains::iterator & chain);
-
- /**
- * \brief Inserts message chain
- * \param chain Pointer to @MessageChain
- * \param connectionKey Id of connection for Mobile side
- * \param correlationID Correlation id for response for Mobile side
- * \return @MessageChaining* pointer to result chain
- */
- MessageChaining * addChain(MessageChaining * chain, int connectionKey, unsigned int correlationID);
-
- void differenceBetweenLists( const NsConnectionHandler::tDeviceList &deviceList );
-
- Application * getActiveItem();
-
- Application * getApplicationByCommand(const unsigned int &cmdId, int appId);
-
- bool activateApp( Application * appToBeActivated );
-
- AppMgrCoreQueue<Message>* mQueueRPCSmartDeviceLinkObjectsIncoming;
- AppMgrCoreQueue<NsRPC2Communication::RPC2Command*>* mQueueRPCBusObjectsIncoming;
-
- //CapabilitiesContainer<NsSmartDeviceLinkRPC::ButtonCapabilities> mButtonCapabilitiesV1;
- CapabilitiesContainer<NsSmartDeviceLinkRPCV2::ButtonCapabilities> mButtonCapabilitiesV2;
- NsSmartDeviceLinkRPC::DisplayCapabilities mDisplayCapabilitiesV1;
- NsSmartDeviceLinkRPCV2::DisplayCapabilities mDisplayCapabilitiesV2;
- NsSmartDeviceLinkRPCV2::PresetBankCapabilities mPresetBankCapabilities;
- //CapabilitiesContainer<NsSmartDeviceLinkRPC::HmiZoneCapabilities> mHmiZoneCapabilitiesV1;
- CapabilitiesContainer<NsSmartDeviceLinkRPCV2::HmiZoneCapabilities> mHmiZoneCapabilitiesV2;
- //CapabilitiesContainer<NsSmartDeviceLinkRPC::VrCapabilities> mVrCapabilitiesV1;
- //CapabilitiesContainer<NsSmartDeviceLinkRPC::SpeechCapabilities> mSpeechCapabilitiesV1;
- CapabilitiesContainer<NsSmartDeviceLinkRPCV2::VrCapabilities> mVrCapabilitiesV2;
- CapabilitiesContainer<NsSmartDeviceLinkRPCV2::SpeechCapabilities> mSpeechCapabilitiesV2;
- CapabilitiesContainer<NsSmartDeviceLinkRPCV2::SoftButtonCapabilities> mSoftButtonCapabilities;
- ButtonMapping mButtonsMapping;
- VehicleDataMapping mVehicleDataMapping;
- //MessageMapping mMessageMapping;
- //RequestMapping mRequestMapping;
- //DeviceList mDeviceList;
- DeviceHandler mDeviceHandler;
-
- MessageChains mMessageChaining;
-
- NsSmartDeviceLinkRPC::OnDriverDistraction* mDriverDistractionV1;
- NsSmartDeviceLinkRPCV2::OnDriverDistraction* mDriverDistractionV2;
-
- NsSmartDeviceLinkRPC::Language mUiLanguageV1;
- NsSmartDeviceLinkRPC::Language mVrLanguageV1;
- NsSmartDeviceLinkRPC::Language mTtsLanguageV1;
- NsSmartDeviceLinkRPCV2::Language mUiLanguageV2;
- NsSmartDeviceLinkRPCV2::Language mVrLanguageV2;
- NsSmartDeviceLinkRPCV2::Language mTtsLanguageV2;
- std::vector<NsSmartDeviceLinkRPCV2::Language> mUISupportedLanguages;
- std::vector<NsSmartDeviceLinkRPCV2::Language> mVRSupportedLanguages;
- std::vector<NsSmartDeviceLinkRPCV2::Language> mTTSSupportedLanguages;
-
- NsSmartDeviceLinkRPCV2::VehicleType mVehicleType;
- bool mAudioPassThruFlag;
- int mPerformInteractionFlag;
- int mHMIStartupFlag;
-
- std::map<int, int> menuMapping; // map<request_id, menu_id>
-
- SyncPManager mSyncPManager;
-
- static log4cplus::Logger mLogger;
-
- std::map<int, Application*> mApplications;
- std::map<int, DeviceStorage> mDevices;
- //NsConnectionHandler::tDeviceList mDevices;
- };
-
-} // namespace NsAppManager
-
-#endif /* APPMGR_H_ */
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/AppMgrCoreQueues.h b/SDL_Core/src/components/AppMgr/include/AppMgr/AppMgrCoreQueues.h
deleted file mode 100644
index 477a72d75..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/AppMgrCoreQueues.h
+++ /dev/null
@@ -1,115 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef APPMGRCOREQUEUES_H
-#define APPMGRCOREQUEUES_H
-
-#include "system.h"
-#include <queue>
-#include <string>
-#include <map>
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsRPC2Communication
-{
- class RPC2Command;
-}
-
-namespace NsAppManager
-{
-
- /**
- * \brief AppMgrCore queue acts as a container for various messages that need to be parsed/handled in different threads
- * \class QueueType type of queue elements
- */
- template< class QueueType >
- class AppMgrCoreQueue
- {
- public:
- /**
- * \brief Callback function
- * \param QueueType type of queue elements
- * \param pThis pointer to an instance of the class the callback is being called of
- */
- typedef void (*HandlerCallback)( QueueType, void* );
-
- /**
- * \brief Class constructor
- * \param cbFn callback function for a handler thread
- * \param pThis pointer to an instance of the class the cbFn is being called of
- */
- AppMgrCoreQueue(HandlerCallback cbFn, void *pThis);
-
- /**
- * \brief Default destructor
- */
- virtual ~AppMgrCoreQueue();
-
- /**
- * \brief execute inner threads
- */
- void executeThreads();
-
- /**
- * \brief push a message to a queue
- * \param message a message being pushed
- */
- void pushMessage(QueueType message);
-
- private:
-
- /**
- * \brief Default copy constructor
- */
- AppMgrCoreQueue( const AppMgrCoreQueue& );
-
- /**
- * \brief handle a queue
- * \param pThis a pointer to an instance of the class the callback function is being called of
- */
- void* handleQueue(void* pThis);
-
- std::queue< QueueType > mQueue;
- System::Mutex mMtx;
- System::BinarySemaphore mBinarySemaphore;
- System::Thread* mThread;
- HandlerCallback mCallbackFn;
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // APPMGRCOREQUEUES_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/AppPolicy.h b/SDL_Core/src/components/AppMgr/include/AppMgr/AppPolicy.h
deleted file mode 100644
index 9458c037c..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/AppPolicy.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef APPPOLICY_H_
-#define APPPOLICY_H_
-
-#include <string>
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
-
- /**
- * \brief AppPolicy acts as application behaviour modifier according to some rule
- */
- class AppPolicy
- {
- public:
-
- /**
- * \brief Class constructor
- * \param policy text representation
- */
- AppPolicy( const std::string& policy );
-
- /**
- * \brief Default class destructor
- */
- ~AppPolicy( );
-
- /**
- * \brief comparison operator
- * \return comparison result
- */
- bool operator<(const AppPolicy& item2) const;
-
- /**
- * \brief gets application policy text representation
- * \return application policy test representation
- */
- const std::string& getPolicyHash() const;
-
- private:
-
- /**
- * \brief Default class copy constructor
- */
- AppPolicy( const AppPolicy& );
-
- const std::string mPolicy;
- static log4cplus::Logger mLogger;
- };
-
-} // namespace NsAppManager
-
-#endif /* APPPOLICY_H_ */
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/Application.h b/SDL_Core/src/components/AppMgr/include/AppMgr/Application.h
deleted file mode 100644
index 9ca9c2a9e..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/Application.h
+++ /dev/null
@@ -1,356 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef APPLICATION_H_
-#define APPLICATION_H_
-
-#include "AppMgr/MenuMapping.h"
-#include "AppMgr/CommandMapping.h"
-#include "AppMgr/AppMenus.h"
-#include "JSONHandler/SDLRPCObjects/V2/AudioStreamingState.h"
-#include "JSONHandler/SDLRPCObjects/V2/SystemContext.h"
-#include "JSONHandler/SDLRPCObjects/V2/HMILevel.h"
-#include "JSONHandler/SDLRPCObjects/V1/AudioStreamingState.h"
-#include "JSONHandler/SDLRPCObjects/V1/SystemContext.h"
-#include "JSONHandler/SDLRPCObjects/V1/HMILevel.h"
-#include <string>
-#include <vector>
-#include <tuple>
-#include <map>
-#include <list>
-#include <cstddef>
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
- /**
- * \brief An application unique id - combination of connection id and session id
- */
- typedef int ApplicationUniqueID;
-
- /**
- * \brief An application session keys
- */
- typedef std::list<int> SessionKeys;
-
- /**
- * \brief class Application acts as a metaphor for every mobile application being registered on HMI
- */
- class Application
- {
- public:
-
- /**
- * \brief Class constructor
- * \param name application name
- * \param appId application id
- * \param protocolVersion protocol version
- */
- Application(const std::string& name, int appId, unsigned int protocolVersion);
-
- /**
- * \brief Default class destructor
- */
- virtual ~Application( );
-
- /**
- * \brief operator ==
- * \param item the item to compare with
- * \return comparison result
- */
- bool operator==(const Application& item) const;
-
- /**
- * \brief Set application NGN media screen app name
- * \param value application NGN media screen app name
- */
- void setNgnMediaScreenAppName(const std::string& value);
-
- /**
- * \brief Set application voice recognition synonyms
- * \param value application voice recognition synonyms
- */
- void setVrSynonyms(const std::vector<std::string>& value);
-
- /**
- * \brief Set if the application is a media application
- * \param value is the application a media application
- */
- void setIsMediaApplication(bool value);
-
- /**
- * \brief retrieve application NGN media screen application name
- * \return application NGN media screen application name
- */
- const std::string& getNgnMediaScreenAppName( ) const;
-
- /**
- * \brief retrieve application voice-recognition synonyms
- * \return application voice-recognition synonyms
- */
- const std::vector<std::string>& getVrSynonyms( ) const;
-
- /**
- * \brief retrieve is the application a media application
- * \return is the application a media application
- */
- bool getIsMediaApplication( ) const;
-
- /**
- * \brief retrieve application protocol version
- * \return application protocol version
- */
- const unsigned int& getProtocolVersion() const;
-
- /**
- * \brief retrieve application name
- * \return application name
- */
- const std::string& getName() const;
-
- /**
- * \brief retrieve application ID
- * \return application ID
- */
- const int& getAppID( ) const;
-
- /**
- * \brief add a command to a menu
- * \param commandId command id
- * \param menuId menu id
- */
- void addMenuCommand(const unsigned int &commandId, const unsigned int &menuId );
-
- /**
- * \brief remove a command from a menu(s)
- * \param commandId command id
- */
- void removeMenuCommand(const unsigned int& commandId);
-
- /**
- * \brief find commands within a menu
- * \param menuId menu id
- * \return commands residing within the given menu
- */
- MenuCommands findMenuCommands(const unsigned int &menuId) const;
-
- /**
- * \brief add a menu item to the application
- * \param menuId menu id
- * \param menuName menu item name
- * \param position menu item position within the parent menu
- */
- void addMenu(const unsigned int &menuId, const std::string& menuName, const unsigned int* position=0);
-
- /**
- * \brief remove a menu item from the application
- * \param menuId menu id
- */
- void removeMenu(const unsigned int& menuId);
-
- /**
- * \brief find a menu item from a mapping
- * \param menuId menu id
- * \return a menu item from a mapping
- */
- const MenuValue* findMenu(const unsigned int& menuId);
-
- /**
- * \brief gets all application menus
- * \return application menus
- */
- MenuItems getAllMenus() const;
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t getMenusCount() const;
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t getMenuCommandsCount() const;
-
- /**
- * \brief add a command to an application
- * \param commandId command id
- * \param type command type
- * \param params VR or UI params supplied with the AddCommand request
- */
- void addCommand(unsigned int commandId, CommandType type , CommandParams params);
-
- /**
- * \brief remove a command from application
- * \param commandId command id
- * \param type a type of a command
- */
- void removeCommand(unsigned int commandId, CommandType type);
-
- /**
- * \brief finds commands in application
- * \param commandId command id
- * \return command list
- */
- Commands findCommands(unsigned int commandId) const;
-
- /**
- * \brief gets all application commands
- * \return application commands
- */
- Commands getAllCommands() const;
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t getCommandsCount() const;
-
- /**
- * \brief retrieve types associated with command id in current application
- * \param commandId command id to search for types
- * \return input container of command types to be filled with result
- */
- CommandTypes getCommandTypes(unsigned int commandId) const;
-
- /**
- * \brief get count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to count unresponded requests for
- * \return unresponded requests count
- */
- unsigned int getUnrespondedRequestCount(const unsigned int& cmdId) const;
-
- /**
- * \brief increment count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to increment unresponded request count for
- * \return unresponded requests count after the operation
- */
- unsigned int incrementUnrespondedRequestCount(const unsigned int& cmdId);
-
- /**
- * \brief decrement count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to decrement unresponded request count for
- * \return unresponded requests count after the operation
- */
- unsigned int decrementUnrespondedRequestCount(const unsigned int& cmdId);
-
- /**
- * \brief add session key to a list of session keys
- * \param sessionKey session key
- */
- void addSessionKey(const int& sessionKey);
-
- /**
- * \brief remove session key from a list of session keys
- * \param sessionKey session key
- */
- void removeSessionKey(const int& sessionKey);
-
- /**
- * \brief set application system context
- * \param application system context
- */
- virtual void setSystemContext( NsSmartDeviceLinkRPCV2::SystemContext value );
-
- /**
- * \brief retrieve application system context
- * \return application system context
- */
- virtual const NsSmartDeviceLinkRPCV2::SystemContext& getSystemContext() const;
-
- /**
- * \brief Set application audio streaming state
- * \param streamingState audio streaming state of application
- */
- virtual void setApplicationAudioStreamingState( const NsSmartDeviceLinkRPCV2::AudioStreamingState& hmiLevel );
-
- /**
- * \brief retreive application audio streaming state
- * \return application audio streaming state
- */
- virtual const NsSmartDeviceLinkRPCV2::AudioStreamingState& getApplicationAudioStreamingState( ) const;
-
- /**
- * \brief Set application HMI status level
- * \param hmiLevel HMI status level of application
- */
- virtual void setApplicationHMIStatusLevel( const NsSmartDeviceLinkRPCV2::HMILevel::HMILevelInternal& hmiLevel );
-
- /**
- * \brief retrieve aplication HMI status level
- * \return HMI status level of application
- */
- virtual const NsSmartDeviceLinkRPCV2::HMILevel::HMILevelInternal& getApplicationHMIStatusLevel( ) const;
-
- void addPersistentFile(const std::string& file);
- void removePersistentFile(const std::string& file);
- bool isPersistentFile(const std::string& file);
-
- int getDeviceHandle() const;
- void setDeviceHandle(int deviceHandle);
-
-
- protected:
- static log4cplus::Logger mLogger;
-
- /**
- * \brief Copy constructor
- */
- Application(const Application& );
-
- const std::string mName;
- const unsigned int mProtocolVersion;
- const int mAppID;
- SessionKeys mSessionKeys;
- std::string mNgnMediaScreenAppName;
- std::vector<std::string> mVrSynonyms;
- std::vector<std::string> persistentFiles;
- bool m_bIsMediaApplication;
- MenuMapping mMenuMapping;
- CommandMapping mCommandMapping;
- AppMenus mMenus;
-
- NsSmartDeviceLinkRPCV2::SystemContext mSystemContext;
- NsSmartDeviceLinkRPCV2::AudioStreamingState mAudioStreamingState;
- NsSmartDeviceLinkRPCV2::HMILevel::HMILevelInternal mHMIStatusLevel;
-
- int mDeviceHandle;
- };
-
-} // namespace NsAppManager
-
-#endif /* APPLICATION_H_ */
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/Application_v1.h b/SDL_Core/src/components/AppMgr/include/AppMgr/Application_v1.h
deleted file mode 100644
index 018fb755a..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/Application_v1.h
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef APPLICATION_V1_H
-#define APPLICATION_V1_H
-
-#include "AppMgr/Application.h"
-#include "AppMgr/AppChoiceSets.h"
-#include "JSONHandler/SDLRPCObjects/V1/Language.h"
-#include "JSONHandler/SDLRPCObjects/V1/SyncMsgVersion.h"
-
-namespace NsAppManager
-{
- /**
- * \brief class Application acts as a metaphor for every mobile application of protocol v1 being registered on HMI
- */
- class Application_v1 : public Application
- {
- public:
-
- /**
- * \brief Class constructor
- * \param name application name
- * \param appId application id
- */
- Application_v1(const std::string& name, int appId);
-
- /**
- * \brief Default class destructor
- */
- virtual ~Application_v1( );
-
- /**
- * \brief Set application usage of vehicle data
- * \param value does the application use vehicle data
- */
- void setUsesVehicleData(bool value);
-
- /**
- * \brief retrieve does the application use vehicle data
- * \return does the application use vehicle data
- */
- bool getUsesVehicleData( ) const;
-
- /**
- * \brief Set application desired languuage
- * \param value application desired language
- */
- void setLanguageDesired(NsSmartDeviceLinkRPC::Language value);
-
- /**
- * \brief retrieve application desired language
- * \return application desired language
- */
- const NsSmartDeviceLinkRPC::Language& getLanguageDesired( ) const;
-
- /**
- * \brief Set application HMI desired display language
- * \param value application HMI desired display language
- */
- void setHMIDisplayLanguageDesired( NsSmartDeviceLinkRPC::Language value );
-
- /**
- * \brief retrieve application HMI desired display language
- * \return application HMI desired display language
- */
- const NsSmartDeviceLinkRPC::Language& getHMIDisplayLanguageDesired( ) const;
-
-
-
- /**
- * \brief Set application sync message version
- * \param value application sync message version
- */
- void setSyncMsgVersion(NsSmartDeviceLinkRPC::SyncMsgVersion value);
-
- /**
- * \brief retrieve application sync message version
- * \return application sync msg version
- */
- const NsSmartDeviceLinkRPC::SyncMsgVersion& getSyncMsgVersion( ) const;
-
- /**
- * \brief add an interaction choice set item to the application
- * \param choiceSetId interaction choice set id
- * \param choiceSet interaction choice set
- */
- void addChoiceSet(const unsigned int& choiceSetId, const ChoiceSetV1& choiceSet);
-
- /**
- * \brief remove an interaction choice set from the application
- * \param choiceSetId interaction choice set id
- */
- void removeChoiceSet(const unsigned int& choiceSetId);
-
- /**
- * \brief gets all interaction choice set items
- * \return interaction choice set items
- */
- ChoiceSetItems getAllChoiceSets() const;
-
- /**
- * \brief get count of interaction choice sets
- * \return interaction choice sets count
- */
- size_t getChoiceSetsCount() const;
-
- /**
- * \brief find a mapped choice set item
- * \param choiceSetId interaction choice set id
- * \return a mapped choice set item
- */
- const ChoiceSetV1 *findChoiceSet(const unsigned int& choiceSetId);
-
- private:
-
- /**
- * \brief Copy constructor
- */
- Application_v1(const Application_v1& );
-
- NsSmartDeviceLinkRPC::Language mLanguageDesired;
-
- NsSmartDeviceLinkRPC::Language mHMIDisplayLanguageDesired;
-
- NsSmartDeviceLinkRPC::SyncMsgVersion mSyncMsgVersion;
- AppChoiceSets mChoiceSets;
- bool m_bUsesVehicleData;
- };
-}
-
-#endif // APPLICATION_V1_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/Application_v2.h b/SDL_Core/src/components/AppMgr/include/AppMgr/Application_v2.h
deleted file mode 100644
index 384503b47..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/Application_v2.h
+++ /dev/null
@@ -1,187 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef APPLICATION_V2_H
-#define APPLICATION_V2_H
-
-#include "AppMgr/Application.h"
-#include "AppMgr/AppChoiceSets.h"
-
-#include "JSONHandler/SDLRPCObjects/V2/Language.h"
-#include "JSONHandler/SDLRPCObjects/V2/AppType.h"
-#include "JSONHandler/SDLRPCObjects/V2/SyncMsgVersion.h"
-#include "JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-
-namespace NsAppManager
-{
- /**
- * \brief Application types
- */
- typedef std::vector<NsSmartDeviceLinkRPCV2::AppType> AppTypes;
-
- /**
- * \brief TTS name
- */
- typedef std::vector<NsSmartDeviceLinkRPCV2::TTSChunk> TTSName;
-
- /**
- * \brief class Application acts as a metaphor for every mobile application of protocol v2 being registered on HMI
- */
- class Application_v2 : public Application
- {
- public:
-
- /**
- * \brief Class constructor
- * \param name application name
- * \param appId application id
- */
- Application_v2(const std::string& name, int appid );
-
- /**
- * \brief Default class destructor
- */
- virtual ~Application_v2( );
-
- /**
- * \brief Set application desired languuage
- * \param value application desired language
- */
- void setLanguageDesired(NsSmartDeviceLinkRPCV2::Language value);
-
- /**
- * \brief retrieve application desired language
- * \return application desired language
- */
- const NsSmartDeviceLinkRPCV2::Language& getLanguageDesired( ) const;
-
- /**
- * \brief Set application HMI desired display language
- * \param value application HMI desired display language
- */
- void setHMIDisplayLanguageDesired( NsSmartDeviceLinkRPCV2::Language value );
-
- /**
- * \brief retrieve application HMI desired display language
- * \return application HMI desired display language
- */
- const NsSmartDeviceLinkRPCV2::Language& getHMIDisplayLanguageDesired( ) const;
-
- /**
- * \brief Set application type
- * \param appType application type
- */
- void setAppType(const AppTypes& appType);
-
- /**
- * \brief retreive application type
- * \param appId application type
- */
- const AppTypes& getAppType() const;
-
- /**
- * \brief Set application sync message version
- * \param value application sync message version
- */
- void setSyncMsgVersion(NsSmartDeviceLinkRPCV2::SyncMsgVersion value);
-
- /**
- * \brief retrieve application sync message version
- * \return application sync msg version
- */
- const NsSmartDeviceLinkRPCV2::SyncMsgVersion& getSyncMsgVersion( ) const;
-
- /**
- * \brief Set application text-to-speech name
- * \param value application text-to-speech name
- */
- void setTtsName(const TTSName& value);
-
- /**
- * \brief retrieve application text-to-speech name
- * \return application text-to-speech name
- */
- const TTSName& getTtsName( ) const;
-
- /**
- * \brief add an interaction choice set item to the application
- * \param choiceSetId interaction choice set id
- * \param choiceSet interaction choice set
- */
- void addChoiceSet(const unsigned int& choiceSetId, const ChoiceSetV2& choiceSet);
-
- /**
- * \brief remove an interaction choice set from the application
- * \param choiceSetId interaction choice set id
- */
- void removeChoiceSet(const unsigned int& choiceSetId);
-
- /**
- * \brief gets all interaction choice set items
- * \return interaction choice set items
- */
- ChoiceSetItems getAllChoiceSets() const;
-
- /**
- * \brief get count of interaction choice sets
- * \return interaction choice sets count
- */
- size_t getChoiceSetsCount() const;
-
- /**
- * \brief find a mapped choice set item
- * \param choiceSetId interaction choice set id
- * \return a mapped choice set item
- */
- const ChoiceSetV2 *findChoiceSet(const unsigned int& choiceSetId);
-
- private:
-
- /**
- * \brief Copy constructor
- */
- Application_v2(const Application_v2& );
-
- NsSmartDeviceLinkRPCV2::Language mLanguageDesired;
-
- NsSmartDeviceLinkRPCV2::Language mHMIDisplayLanguageDesired;
-
- NsSmartDeviceLinkRPCV2::SyncMsgVersion mSyncMsgVersion;
-
- // std::string mAppID;
- AppTypes mAppType;
- AppChoiceSets mChoiceSets;
- TTSName mTtsName;
- };
-}
-
-#endif // APPLICATION_V2_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/AutoActivateIdMapping.h b/SDL_Core/src/components/AppMgr/include/AppMgr/AutoActivateIdMapping.h
deleted file mode 100644
index a8a0778d5..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/AutoActivateIdMapping.h
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef AUTOACTIVATEIDMAPPING_H
-#define AUTOACTIVATEIDMAPPING_H
-
-#include <string>
-#include <map>
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
-
- /**
- * \brief a mapping between application and its auto-activate id (application name is a key)
- */
- typedef std::map<std::string, std::string> AutoActivateIDs;
-
- /**
- * \brief an element of a mapping between application and its auto-activate id (application name is a key)
- */
- typedef std::pair<std::string, std::string> AutoActivateID;
-
- /**
- * \brief AutoActivateIdMapping acts as a mapping of auto-activate ids to names of registered applications
- * \brief An autoActivateId is being assigned automatically to a newly-registered app name
- */
- class AutoActivateIdMapping
- {
- public:
-
- /**
- * \brief Default class constructor
- */
- AutoActivateIdMapping();
-
- /**
- * \brief Default class destructor
- */
- ~AutoActivateIdMapping();
-
- /**
- * \brief add an application to a mapping
- * \param appName application to be added to mapping
- * \return auto-activate id assigned to an application
- */
- std::string addApplicationName( const std::string& appName );
-
- /**
- * \brief remove an application from a mapping
- * \param appName application to remove all associated ids from mapping
- */
- void removeApplicationName( const std::string& appName );
-
- /**
- * \brief find an auto-activate id subscribed to message
- * \param name application name
- * \return auto-activate id
- */
- std::string findAutoActivateIdAssignedToName(const std::string& name) const;
-
- /**
- * \brief remove all mappings
- */
- void clear();
-
- private:
-
- /**
- * \brief Copy constructor
- */
- AutoActivateIdMapping(const AutoActivateIdMapping&);
-
- /**
- * \brief add an id and an application to a mapping
- * \param appName application name
- * \param id auto-activate id
- */
- void addId( const std::string& appName, const std::string& id );
-
- /**
- * \brief remove an auto-activate id from a mapping
- * \param id auto-activate id
- */
- void removeId(const std::string& id);
-
- AutoActivateIDs mAutoActivateIds;
- unsigned long mLastAutoActivateId;
-
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // AUTOACTIVATEIDMAPPING_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/ButtonMapping.h b/SDL_Core/src/components/AppMgr/include/AppMgr/ButtonMapping.h
deleted file mode 100644
index 69d8af1af..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/ButtonMapping.h
+++ /dev/null
@@ -1,142 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef BUTTONMAPPING_H
-#define BUTTONMAPPING_H
-
-#include <map>
-#include "JSONHandler/SDLRPCObjects/V1/ButtonName.h"
-#include "JSONHandler/SDLRPCObjects/V2/ButtonName.h"
-#include "AppMgr/Application.h"
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
-
- class Application;
-
- /**
- * \brief Comparer acts as a comparer that allows to create std::map with NsSmartDeviceLinkRPC::ButtonName as a key
- */
- struct Comparer {
- bool operator() (const NsSmartDeviceLinkRPCV2::ButtonName &b1, const NsSmartDeviceLinkRPCV2::ButtonName &b2) const;
- };
-
- /**
- * \brief a button_name-registered-app map
- */
- typedef std::multimap<NsSmartDeviceLinkRPCV2::ButtonName, Application*, Comparer> ButtonMap;
-
- /**
- * \brief a button_name-registered-app map item
- */
- typedef std::pair<NsSmartDeviceLinkRPCV2::ButtonName, Application*> ButtonMapItem;
-
- /**
- *\brief Iterators of beginning and end of result range
- */
- typedef std::pair<ButtonMap::const_iterator, ButtonMap::const_iterator> ResultRange;
-
- /**
- * \brief ButtonMapping acts as a mapping of buttons to registered application which subscribes to them
- */
- class ButtonMapping
- {
- public:
-
- /**
- * \brief Default class constructor
- */
- ButtonMapping();
-
- /**
- * \brief Default class destructor
- */
- ~ButtonMapping();
-
- /**
- * \brief add a button to a mapping
- * \param buttonName button name
- * \param app application to map a button to
- */
- void addButton( const NsSmartDeviceLinkRPCV2::ButtonName& buttonName, Application* app );
-
- /**
- * \brief remove a button from a mapping
- * \param buttonName button name
- */
- void removeButton(const NsSmartDeviceLinkRPCV2::ButtonName& buttonName, Application * item);
-
- /**
- * \brief remove an application from a mapping
- * \param app application to remove all associated buttons from mapping
- */
- void removeItem( Application* app );
-
- /**
- * \brief cleans all the mapping
- */
- void clear( );
-
- /**
- * \brief find a registry item subscribed to button
- * \param btnName button name
- * \return Application instance
- */
- Application *findRegistryItemSubscribedToButton(const NsSmartDeviceLinkRPCV2::ButtonName &btnName) const;
-
- /**
- * \brief Find all apps subscribed to button
- * \param btnName Button name
- * \return @ResultRange Results range
- */
- ResultRange findSubscribedToButton(const NsSmartDeviceLinkRPCV2::ButtonName &btnName) const;
-
- bool exist(const NsSmartDeviceLinkRPCV2::ButtonName& buttonName, Application* item);
- private:
-
- /**
- * \brief Copy constructor
- */
- ButtonMapping(const ButtonMapping&);
-
- ButtonMap mButtonsMapping;
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // BUTTONMAPPING_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/CapabilitesContainer.h b/SDL_Core/src/components/AppMgr/include/AppMgr/CapabilitesContainer.h
deleted file mode 100644
index 31f1d52a9..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/CapabilitesContainer.h
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef CAPABILITESCONTAINER_H
-#define CAPABILITESCONTAINER_H
-
-#include <vector>
-
-namespace log4cplus
-{
- class Logger;
-}
-
-#include "JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilitiesResponse.h"
-#include "JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilitiesResponse.h"
-#include "JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilitiesResponse.h"
-#include "JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilitiesResponse.h"
-#include "JSONHandler/SDLRPCObjects/V2/PresetBankCapabilities.h"
-#include "JSONHandler/SDLRPCObjects/V1/SpeechCapabilities.h"
-#include "JSONHandler/SDLRPCObjects/V1/VrCapabilities.h"
-#include "JSONHandler/SDLRPCObjects/V1/HmiZoneCapabilities.h"
-#include "JSONHandler/SDLRPCObjects/V1/ButtonCapabilities.h"
-#include "JSONHandler/SDLRPCObjects/V1/DisplayCapabilities.h"
-
-namespace NsAppManager
-{
-
- /**
- * \brief CapabilitiesContainer acts as container of button capabilities
- */
- template<class DeviceCapabilities>
- class CapabilitiesContainer
- {
- public:
-
- /**
- * \brief Capabilities container
- */
- typedef std::vector<DeviceCapabilities> Capabilities;
-
- /**
- * \brief Default class constructor
- */
- CapabilitiesContainer();
-
- /**
- * \brief Default class destructor
- */
- ~CapabilitiesContainer();
-
- /**
- * \brief set capabilities
- * \param caps capabilities
- */
- void set(const Capabilities& caps );
-
- /**
- * \brief get capabilities
- * \return capabilities
- */
- const Capabilities& get() const;
-
- /**
- * \brief clearing underlying container
- */
- void clear();
-
- private:
-
- /**
- * \brief Default class copy constructor
- */
- CapabilitiesContainer(const CapabilitiesContainer&);
-
- Capabilities mCapabilities;
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // CAPABILITESCONTAINER_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/CommandMapping.h b/SDL_Core/src/components/AppMgr/include/AppMgr/CommandMapping.h
deleted file mode 100644
index 039736775..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/CommandMapping.h
+++ /dev/null
@@ -1,318 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef COMMANDMAPPING_H
-#define COMMANDMAPPING_H
-
-#include <map>
-#include <tuple>
-#include <vector>
-#include <set>
-#include <cstddef>
-#include "JSONHandler/SDLRPCObjects/V1/MenuParams.h"
-#include "JSONHandler/SDLRPCObjects/V2/MenuParams.h"
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
-
- class RegistryItem;
- class Application;
-
- /**
- * \brief CommandType acts as command type enum representation that allows iterating over types in cycle and using types in comparison
- */
- class CommandType
- {
- public:
-
- /**
- * \brief command types
- */
- typedef enum
- {
- UNDEFINED = -1,
- UI = 0,
- FIRST = UI,
- VR = 1,
- TTS = 2,
- LAST = TTS
- } Type;
-
- /**
- * \brief Default constructor
- */
- CommandType();
-
- /**
- * \brief Copy constructor
- */
- CommandType(const CommandType& src);
-
- /**
- * \brief Class constructor
- * \param type command type to create a class with
- */
- CommandType(const Type& type);
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool operator==(const Type& type) const;
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool operator==(const CommandType& type) const;
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool operator<(const Type& type) const;
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool operator<(const CommandType& type) const;
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool operator>(const Type& type) const;
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool operator>(const CommandType& type) const;
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool operator!=(const Type& type) const;
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool operator!=(const CommandType& type) const;
-
- /**
- * \brief pre-increment operator
- * \return incremented value
- */
- CommandType& operator++ ();
-
- /**
- * \brief post-increment operator
- * \return incremented value
- */
- CommandType operator++ (int);
-
- /**
- * \brief get command type
- * \return command type
- */
- const Type& getType() const;
-
- private:
- Type mType;
- };
-
- /**
- * \brief Acts as a wrapper of command UI or VR params
- */
- union CommandParams
- {
- const NsSmartDeviceLinkRPCV2::MenuParams* menuParamsV2;
- const NsSmartDeviceLinkRPC::MenuParams* menuParams;
- const std::vector<std::string>* vrCommands;
- };
-
- /**
- * \brief mapping of command id to specific command type
- */
- typedef std::tuple<unsigned int, CommandType> CommandBase;
-
- /**
- * \brief mapping of command base to params
- */
- typedef std::pair<CommandBase, CommandParams> Command;
-
- /**
- * \brief command types associated with command
- */
- typedef std::vector<CommandType> CommandTypes;
-
- /**
- * \brief commands vector
- */
- typedef std::map<CommandBase, CommandParams> Commands;
-
- /**
- * \brief command_id-to-request_number map (command id is a key);
- */
- typedef std::map<unsigned int, unsigned int> RequestsAwaitingResponse;
-
- /**
- * \brief command_id-to-request_number map item (command id is a key);
- */
- typedef std::pair<unsigned int, unsigned int> RequestAwaitingResponse;
-
- /**
- * \brief CommandMapping acts as a mapping of command to const NsSmartDeviceLinkRPC::MenuParams that are contained in some of them
- */
- class CommandMapping
- {
- public:
-
- /**
- * \brief Default class constructor
- */
- CommandMapping();
-
- /**
- * \brief Default class destructor
- */
- ~CommandMapping();
-
- /**
- * \brief add a command to a mapping
- * \param commandId command id
- * \param type command type
- * \param params VR or UI params supplied with the AddCommand request
- */
- void addCommand(unsigned int commandId, const CommandType &type , CommandParams params);
-
- /**
- * \brief remove a command from a mapping
- * \param commandId command id
- * \param type a type of a command
- */
- void removeCommand(unsigned int commandId, const CommandType &type);
-
- /**
- * \brief finds commands in mapping
- * \param commandId command id
- * \return true if found, false if not
- */
- bool findCommand(unsigned int commandId, const CommandType &type) const;
-
- /**
- * \brief finds commands in mapping
- * \param commandId command id
- * \return commands list
- */
- Commands findCommands(unsigned int commandId) const;
-
- /**
- * \brief gets all commands
- * \return commands
- */
- Commands getAllCommands() const;
-
- /**
- * \brief retrieve types associated with command id in current mapping
- * \param commandId command id to search for types
- * \return input container of command types to be filled with result
- */
- CommandTypes getTypes(unsigned int commandId) const;
-
- /**
- * \brief get count of commands
- * \return commands count
- */
- size_t size() const;
-
- /**
- * \brief get count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to count unresponded requests for
- * \return unresponded requests count
- */
- unsigned int getUnrespondedRequestCount(const unsigned int& cmdId) const;
-
- /**
- * \brief increment count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to increment unresponded request count for
- * \return unresponded requests count after the operation
- */
- unsigned int incrementUnrespondedRequestCount(const unsigned int& cmdId);
-
- /**
- * \brief decrement count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to decrement unresponded request count for
- * \return unresponded requests count after the operation
- */
- unsigned int decrementUnrespondedRequestCount(const unsigned int& cmdId);
-
- /**
- * \brief cleans all the items
- */
- void clear( );
-
- /**
- * \brief cleans all the requests awaiting response
- */
- void clearUnrespondedRequests( );
-
- private:
-
- /**
- * \brief Copy constructor
- */
- CommandMapping(const CommandMapping&);
- Commands mCommands;
- RequestsAwaitingResponse mRequestsPerCommand;
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // COMMANDMAPPING_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/ConnectionHandler.h b/SDL_Core/src/components/AppMgr/include/AppMgr/ConnectionHandler.h
deleted file mode 100644
index 8cc2bcc3a..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/ConnectionHandler.h
+++ /dev/null
@@ -1,105 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef APPCONNECTIONHANDLER_H
-#define APPCONNECTIONHANDLER_H
-
-
-namespace NsConnectionHandler
-{
- class IDevicesDiscoveryStarter;
- typedef int tDeviceHandle;
-}
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
- /**
- * \brief ConnectionHandler acts as wrapper for connection handler
- */
- class ConnectionHandler
- {
- public:
- /**
- * \brief Returning class instance
- * \return class instance
- */
- static ConnectionHandler &getInstance();
-
- /**
- * \brief Sets connection handler instance
- * \param handler connection handler
- */
- void setConnectionHandler(NsConnectionHandler::IDevicesDiscoveryStarter *handler);
-
- /**
- * \brief Gets connection handler instance
- * \return connection handler
- */
- NsConnectionHandler::IDevicesDiscoveryStarter *getConnectionHandler( ) const;
-
- /**
- * \brief Start device discovery
- */
- void startDevicesDiscovery();
-
- /**
- * \brief Connect to device specified in params
- * \param deviceHandle device handle
- */
- void connectToDevice( NsConnectionHandler::tDeviceHandle deviceHandle );
-
- void startTransportManager();
-
- private:
-
- /**
- * \brief Default class constructor
- */
- ConnectionHandler();
-
- /**
- * \brief Copy constructor
- */
- ConnectionHandler(const ConnectionHandler&);
-
- NsConnectionHandler::IDevicesDiscoveryStarter* mConnectionHandler;
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // APPCONNECTIONHANDLER_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/DeviceHandler.h b/SDL_Core/src/components/AppMgr/include/AppMgr/DeviceHandler.h
deleted file mode 100644
index 7c15f742d..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/DeviceHandler.h
+++ /dev/null
@@ -1,121 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef DEVICEHANDLER_H
-#define DEVICEHANDLER_H
-
-#include "ConnectionHandler/CDevice.hpp"
-
-#include <map>
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
- /**
- * \brief session-to-device map
- */
- typedef std::map<int, NsConnectionHandler::tDeviceHandle> DeviceMap;
-
- /**
- * \brief session-to-device map
- */
- typedef std::pair<int, NsConnectionHandler::tDeviceHandle> DeviceMapItem;
-
- class DeviceHandler
- {
- public:
-
- /**
- * \brief Default class constructor
- */
- DeviceHandler();
-
- /**
- * \brief Default class destructor
- */
- ~DeviceHandler();
-
- /**
- * \brief add a device to a mapping
- * \param sessionKey session/connection key
- * \param device device handler
- */
- void addDevice( const int& sessionKey, const NsConnectionHandler::tDeviceHandle& device );
-
- /**
- * \brief remove a device from a mapping
- * \param sessionKey session/connection key
- */
- void removeDevice(const int& sessionKey);
-
- /**
- * \brief remove an application from a mapping
- * \param device device to remove all associated sessions from mapping
- */
- void removeSession( const NsConnectionHandler::tDeviceHandle& device );
-
- /**
- * \brief find a device subscribed to sesssion
- * \param sessionKey session/connection key
- * \return device handler
- */
- NsConnectionHandler::tDeviceHandle findDeviceAssignedToSession(const int& sessionKey) const;
-
- /**
- * \brief cleans session mapping
- */
- void clear( );
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t size() const;
-
- private:
-
- /**
- * \brief Copy constructor
- */
- DeviceHandler(const DeviceHandler&);
-
- DeviceMap mDeviceMapping;
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // DEVICEHANDLER_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/DeviceList.h b/SDL_Core/src/components/AppMgr/include/AppMgr/DeviceList.h
deleted file mode 100644
index 7327a0ea2..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/DeviceList.h
+++ /dev/null
@@ -1,106 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef DEVICELIST_H
-#define DEVICELIST_H
-
-#include "ConnectionHandler/CDevice.hpp"
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
- /**
- * \brief DeviceList acts as a device list
- */
- class DeviceList
- {
- public:
-
- /**
- * \brief Default class constructor
- */
- DeviceList();
-
- /**
- * \brief Default class destructor
- */
- ~DeviceList();
-
- /**
- * \brief set device list
- * \param deviceList device list
- */
- void setDeviceList( const NsConnectionHandler::tDeviceList& deviceList );
-
- /**
- * \brief get device list
- * \return device list
- */
- const NsConnectionHandler::tDeviceList& getDeviceList() const;
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t size() const;
-
- /**
- * \brief find device associated with the given handle
- * \param handle device handle
- * \return device associated with the given handle
- */
- const NsConnectionHandler::CDevice *findDeviceByHandle(const NsConnectionHandler::tDeviceHandle& handle) const;
-
- /**
- * \brief find device associated with the given name
- * \param name device name
- * \return device associated with the given name
- */
- const NsConnectionHandler::CDevice *findDeviceByName(const std::string& name) const;
-
- private:
-
- /**
- * \brief Copy constructor
- */
- DeviceList(const DeviceList&);
-
- NsConnectionHandler::tDeviceList mDeviceList;
- static log4cplus::Logger mLogger;
- };
-}
-
-#endif // DEVICELIST_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/DeviceStorage.hpp b/SDL_Core/src/components/AppMgr/include/AppMgr/DeviceStorage.hpp
deleted file mode 100644
index f1152106a..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/DeviceStorage.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef DEVICESTORAGE_CLASS
-#define DEVICESTORAGE_CLASS
-
-#include <string>
-#include <set>
-
-namespace NsAppManager
-{
- class DeviceStorage
- {
- public:
- DeviceStorage(int deviceHandle, const std::string & deviceName);
- ~DeviceStorage();
-
- void setAppId( int appId );
- int getAppId() const;
- int getDeviceHandle() const;
- const std::string & getUserFriendlyName() const;
- void addConnectionKey(int connectionKey);
- bool hasConnectionKey(int connectionKey);
- void removeConnectionKey(int connectionKey);
- const std::set<int> & getConnectionKeys() const;
-
- private:
- int mDeviceHandle;
- std::string mUserFriendlyName;
- int mApplicationOnDeviceID;
- std::set<int> mConnectionKeys;
- };
-}
-
-#endif // DEVICESTORAGE_CLASS
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/HMIHandler.h b/SDL_Core/src/components/AppMgr/include/AppMgr/HMIHandler.h
deleted file mode 100644
index 6d5643b27..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/HMIHandler.h
+++ /dev/null
@@ -1,122 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef HMIHANDLER_H
-#define HMIHANDLER_H
-
-class JSONRPC2Handler;
-
-namespace NsRPC2Communication
-{
- class RPC2Notification;
- class RPC2Response;
- class RPC2Request;
-}
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
-
- /**
- * \brief HMIHandler acts as wrapper for JSON RPC2 handler
- */
- class HMIHandler
- {
- public:
-
- /**
- * \brief Returning class instance
- * \return class instance
- */
- static HMIHandler &getInstance();
-
- /**
- * \brief set handler ready state
- * \param ready ready state
- */
- void setReadyState(bool ready);
-
- /**
- * \brief send notification via associated handler
- * \param command notification to send
- */
- void sendNotification( const NsRPC2Communication::RPC2Notification * command );
-
- /**
- * \brief send response via associated handler
- * \param command response to send
- */
- void sendResponse( const NsRPC2Communication::RPC2Response * command );
-
- /**
- * \brief send request via associated handler
- * \param command request to send
- */
- void sendRequest( const NsRPC2Communication::RPC2Request * command );
-
- /**
- * \brief set Json RPC2 handler
- * \param handler Json RPC2 handler instance
- */
- void setJsonRPC2Handler(JSONRPC2Handler* handler);
-
- /**
- * \brief get Json RPC2 handler
- * \return Json RPC2 handler instance
- */
- JSONRPC2Handler* getJsonRPC2Handler( ) const;
-
- private:
-
- /**
- * \brief Default class constructor
- */
- HMIHandler();
-
- /**
- * \brief Copy constructor
- */
- HMIHandler(const HMIHandler&);
-
- bool m_bHMIReady;
- JSONRPC2Handler* mJSONRPC2Handler;
-
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // HMIHANDLER_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/MenuMapping.h b/SDL_Core/src/components/AppMgr/include/AppMgr/MenuMapping.h
deleted file mode 100644
index a412dc031..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/MenuMapping.h
+++ /dev/null
@@ -1,136 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef MENUMAPPING_H
-#define MENUMAPPING_H
-
-#include <map>
-#include <vector>
-#include <cstddef>
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
-
- /**
- * \brief command-to-menu map (command id is a key: multiple commands can reside within a single menu)
- */
- typedef std::map<unsigned int, unsigned int> MenuMap;
-
- /**
- * \brief command-to-menu map item (command id is a key: multiple commands can reside within a single menu)
- */
- typedef std::pair<unsigned int, unsigned int> MenuMapItem;
-
- /**
- * \brief commands residing within the same menu
- */
- typedef std::vector<unsigned int> MenuCommands;
-
- /**
- * \brief MenuMapping acts as a mapping of command to registsred application that subscribed to them
- */
- class MenuMapping
- {
- public:
- /**
- * \brief Default class constructor
- */
- MenuMapping();
-
- /**
- * \brief Default class destructor
- */
- ~MenuMapping();
-
- /**
- * \brief add a command to a mapping
- * \param commandId command id
- * \param menuId menu id
- */
- void addCommand(const unsigned int &commandId, const unsigned int &menuId );
-
- /**
- * \brief remove a command from a mapping
- * \param commandId command id
- */
- void removeCommand(const unsigned int& commandId);
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t size() const;
-
- /**
- * \brief remove an application from a mapping
- * \param menuId id of a menu to remove all commands mapping from
- */
- void removeMenu(const unsigned int &menuId );
-
- /**
- * \brief find a registry item subscribed to command
- * \param commandId command id
- * \return id of menu where a command resides
- */
- unsigned int findMenuAssignedToCommand(const unsigned int &commandId) const;
-
- /**
- * \brief find commands within a menu
- * \param menuId menu id
- * \return commands residing within the given menu
- */
- MenuCommands findCommandsAssignedToMenu(const unsigned int &menuId) const;
-
- /**
- * \brief cleans menu mapping
- */
- void clear( );
-
- private:
-
- /**
- * \brief Copy constructor
- */
- MenuMapping(const MenuMapping&);
-
- MenuMap mMenuMapping;
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // MENUMAPPING_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/MessageChaining.hpp b/SDL_Core/src/components/AppMgr/include/AppMgr/MessageChaining.hpp
deleted file mode 100644
index 6006f0b6b..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/MessageChaining.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef MESSAGE_CHAINING_CLASS
-#define MESSAGE_CHAINING_CLASS
-
-namespace NsAppManager
-{
- class MessageChaining
- {
- public:
- MessageChaining(int connectionKey,
- unsigned int correlationID);
- ~MessageChaining();
-
- unsigned int correlationID;
- int connectionKey;
- bool success;
- //unsigned int rpcMessageId;
- int counter;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/MobileHandler.h b/SDL_Core/src/components/AppMgr/include/AppMgr/MobileHandler.h
deleted file mode 100644
index 9489f4120..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/MobileHandler.h
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef MOBILEHANDLER_H
-#define MOBILEHANDLER_H
-
-class JSONHandler;
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsSmartDeviceLinkRPC
-{
- class SDLRPCMessage;
-}
-
-namespace NsAppManager
-{
-
- /**
- * \brief MobileHandler acts as wrapper for mobile JSON handler
- */
- class MobileHandler
- {
- public:
-
- /**
- * \brief Returning class instance
- * \return class instance
- */
- static MobileHandler &getInstance();
-
- /**
- * \brief send a message via associated handler
- * \param message message to send
- */
- void sendRPCMessage(const NsSmartDeviceLinkRPC::SDLRPCMessage * message, int appId );
-
- /**
- * \brief set mobile Json handler
- * \param handler mobile Json handler instance
- */
- void setJsonHandler(JSONHandler* handler);
-
- /**
- * \brief get mobile Json handler
- * \return mobile Json handler instance
- */
- JSONHandler* getJsonHandler( ) const;
-
- private:
-
- /**
- * \brief Default class constructor
- */
- MobileHandler();
-
- /**
- * \brief Copy constructor
- */
- MobileHandler(const MobileHandler&);
-
- JSONHandler* mJSONHandler;
-
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // MOBILEHANDLER_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/RegistryItem.h b/SDL_Core/src/components/AppMgr/include/AppMgr/RegistryItem.h
deleted file mode 100644
index 172b1466d..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/RegistryItem.h
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef REGISTRYITEM_H_
-#define REGISTRYITEM_H_
-
-#include "Application.h"
-#include "AppPolicy.h"
-#include <set>
-#include <string>
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
-
- /**
- * \brief RegistryItem acts as a wrapper for registered application in AppMgrRegistry
- */
- class RegistryItem
- {
- public:
- typedef std::set<AppPolicy*> Policies;
-
- /**
- * \brief Class constructor
- * \param app application to register
- */
- RegistryItem(Application *app );
-
- /**
- * \brief Default class destructor
- */
- virtual ~RegistryItem( );
-
- /**
- * \brief operator ==
- * \param item the item to compare with
- * \return comparison result
- */
- bool operator==(const RegistryItem& item) const;
-
- /**
- * \brief register application policy
- * \param hash policy text representation
- * \return app policy instance
- */
- const AppPolicy* registerPolicy( const std::string& hash );
-
- /**
- * \brief unregister application policy
- * \param policy policy to be unregistered
- */
- void unregisterPolicy( AppPolicy* policy );
-
- /**
- * \brief get associated application
- * \return asssociated application
- */
- Application *getApplication() const;
-
- /**
- * \brief comparison operator
- * \param item2 item to compare with
- * \return comparison result
- */
- bool operator<(const RegistryItem& item2) const;
-
- /**
- * \brief get application policies
- * \param app application to get policies for
- * \return app policy set
- */
- Policies getApplicationPolicies(const Application* app) const;
-
- /**
- * \brief get application policies
- * \param app name of an application to get policies for
- * \return app policy set
- */
- Policies getApplicationPolicies(const std::string& app) const;
-
- private:
-
- /**
- * \brief Copy constructor
- */
- RegistryItem( const RegistryItem& );
-
- Policies mAppPolicies;
- Application* mApplication;
- static log4cplus::Logger mLogger;
- };
-
-} // namespace NsAppManager
-
-#endif /* REGISTRYITEM_H_ */
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/SyncPManager.h b/SDL_Core/src/components/AppMgr/include/AppMgr/SyncPManager.h
deleted file mode 100644
index 92c030812..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/SyncPManager.h
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef SYNCPMANAGER_H
-#define SYNCPMANAGER_H
-
-#include <vector>
-#include <string>
-#include "LoggerHelper.hpp"
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
-
-/**
- * \brief SyncPManager acts as a handler of PData for EncodedSyncPData and OnEncodedSyncPData
- */
-class SyncPManager
-{
-public:
-
- /**
- * \brief vector of base64-encoded strings
- */
- typedef std::vector<std::string> PData;
-
- /**
- * \brief vector of raw strings
- */
- typedef std::vector<std::string> RawData;
-
- /**
- * \brief Default class constructor
- */
- SyncPManager();
-
- /**
- * \brief Default class destructor
- */
- ~SyncPManager();
-
- /**
- * \brief set base64-encoded PData
- * \param data vector of strings of base64-encoded information
- */
- void setPData(const PData& data, const std::string &appName, const int &methodId);
-
- /**
- * \brief get base64-encoded PData
- * \return vector of strings of base64-encoded information
- */
- const PData& getPData() const;
-
- /**
- * \brief set raw string data
- * \param data vector of strings
- */
- void setRawData(const RawData& data);
-
- /**
- * \brief set raw string data
- * \return vector of strings
- */
- RawData getRawData() const;
-
-private:
-
- /**
- * \brief Copy constructor
- */
- SyncPManager(const SyncPManager&);
-
- /**
- * \brief serialize a string vector to the text file
- * \param fileName name of the file to serialize to
- * \param value a value to serialize
- * \return success of an operation - true or false
- */
- bool serializeToFile(const std::string& fileName, const PData &value) const;
-
- /**
- * \brief deserialize a string vector from the text file
- * \param fileName name of the file to deserialize from
- * \param value a value to deserialize
- * \return success of an operation - true or false
- */
- bool deserializeFromFile(const std::string &fileName, PData &value);
-
- PData mPData;
- static log4cplus::Logger mLogger;
-};
-
-}
-
-#endif // SYNCPMANAGER_H
diff --git a/SDL_Core/src/components/AppMgr/include/AppMgr/VehicleDataMapping.h b/SDL_Core/src/components/AppMgr/include/AppMgr/VehicleDataMapping.h
deleted file mode 100644
index b17cca9f3..000000000
--- a/SDL_Core/src/components/AppMgr/include/AppMgr/VehicleDataMapping.h
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef VEHICLEDATAMAPPING_H
-#define VEHICLEDATAMAPPING_H
-
-#include <map>
-#include <vector>
-#include "JSONHandler/SDLRPCObjects/V2/VehicleDataType.h"
-
-namespace log4cplus
-{
- class Logger;
-}
-
-namespace NsAppManager
-{
-
- class Application;
-
- /**
- * \brief a VehicleData-registered-app map
- */
- typedef std::multimap<NsSmartDeviceLinkRPCV2::VehicleDataType::VehicleDataTypeInternal, Application*> VehicleDataMap;
-
- /**
- * \brief a VehicleData-registered-app map iterator
- */
- typedef std::multimap<NsSmartDeviceLinkRPCV2::VehicleDataType::VehicleDataTypeInternal, Application*>::iterator VehicleDataMapIterator;
-
- /**
- * \brief a VehicleData-registered-app map item
- */
- typedef std::pair<NsSmartDeviceLinkRPCV2::VehicleDataType::VehicleDataTypeInternal, Application*> VehicleDataMapItem;
-
- /**
- * \brief VehicleDataMapping acts as a mapping of VehicleData to registered application which subscribes to them
- */
- class VehicleDataMapping
- {
- public:
-
- /**
- * \brief Default class constructor
- */
- VehicleDataMapping();
-
- /**
- * \brief Default class destructor
- */
- ~VehicleDataMapping();
-
- /**
- * \brief add a VehicleData to a mapping
- * \param vehicleDataName button name
- * \param app application to map a button to
- * \return false if such subscribe already exists.
- */
- bool addVehicleDataMapping(const NsSmartDeviceLinkRPCV2::VehicleDataType& vehicleDataName, Application* app);
-
- /**
- * \brief remove a VehicleData from a mapping
- * \param vehicleDataName button name
- * \return false if no such subscribe found.
- */
- bool removeVehicleDataMapping(const NsSmartDeviceLinkRPCV2::VehicleDataType& vehicleDataName, Application* app);
-
- /**
- * \brief remove an application from a mapping
- * \param app application to remove all associated buttons from mapping
- */
- void removeItem(Application* app);
-
- /**
- * \brief cleans all the mapping
- */
- void clear();
-
- /**
- * \brief find a registry item subscribed to VehicleData
- * \param vehicleData VehicleDataTypeInternal value
- * \param result reference to empty vector to store results.
- * \return count of subscribers
- */
- int findRegistryItemsSubscribedToVehicleData(const NsSmartDeviceLinkRPCV2::VehicleDataType& vehicleDataName, std::vector<Application*>& result);
-
- private:
-
- /**
- * \brief Copy constructor
- */
- VehicleDataMapping(const VehicleDataMapping&);
-
- VehicleDataMap mVehicleDataMapping;
- static log4cplus::Logger mLogger;
- };
-
-}
-
-#endif // VEHICLEDATAMAPPING_H
diff --git a/SDL_Core/src/components/AppMgr/src/AppChoiceSets.cpp b/SDL_Core/src/components/AppMgr/src/AppChoiceSets.cpp
deleted file mode 100644
index 15d8ebd34..000000000
--- a/SDL_Core/src/components/AppMgr/src/AppChoiceSets.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/AppChoiceSets.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
- log4cplus::Logger AppChoiceSets::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("AppChoiceSets"));
-
- /**
- * \brief Default class constructor
- */
- AppChoiceSets::AppChoiceSets()
- {
- }
-
- /**
- * \brief Default class destructor
- */
- AppChoiceSets::~AppChoiceSets()
- {
- clear();
- }
-
- /**
- * \brief add an interaction choice set item to a mapping
- * \param choiceSetId interaction choice set id
- * \param choiceSet interaction choice set
- */
- void AppChoiceSets::addItem(const unsigned int &choiceSetId, const ChoiceSetV1 &choiceSet)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Adding an interaction choice set item " << choiceSetId );
- ChoiceSetGeneric choiceSetGeneric;
- choiceSetGeneric.choiceSetV1 = choiceSet;
- mChoiceSets.insert(ChoiceSetItem(choiceSetId, choiceSetGeneric));
- }
-
- /**
- * \brief add an interaction choice set item to a mapping
- * \param choiceSetId interaction choice set id
- * \param choiceSet interaction choice set
- */
- void AppChoiceSets::addItem(const unsigned int &choiceSetId, const ChoiceSetV2 &choiceSet)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Adding an interaction choice set item " << choiceSetId );
- ChoiceSetGeneric choiceSetGeneric;
- choiceSetGeneric.choiceSetV2 = choiceSet;
- mChoiceSets.insert(ChoiceSetItem(choiceSetId, choiceSetGeneric));
- }
-
- /**
- * \brief remove an interaction choice set from a mapping
- * \param choiceSetId interaction choice set id
- */
- void AppChoiceSets::removeItem(const unsigned int &choiceSetId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Deleting an interaction choice set item " << choiceSetId );
- mChoiceSets.erase(choiceSetId);
- }
-
- /**
- * \brief find a mapped choice set item
- * \param choiceSetId interaction choice set id
- * \return a mapped choice set item
- */
- const ChoiceSetGeneric* AppChoiceSets::findItem(const unsigned int &choiceSetId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Searching for an interaction choice set item with id " << choiceSetId );
- ChoiceSetItems::iterator it = mChoiceSets.find(choiceSetId);
- if(it != mChoiceSets.end())
- {
- const ChoiceSetItem& item = *it;
- if(choiceSetId == item.first)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Found an interaction choice set item with id " << choiceSetId );
- return &item.second;
- }
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Interaction choice set item for id " << choiceSetId << " not found!" );
- return 0;
- }
-
- /**
- * \brief gets all interaction choice set items
- * \return interaction choice set items
- */
- ChoiceSetItems AppChoiceSets::getAllChoiceSets() const
- {
- return mChoiceSets;
- }
-
- /**
- * \brief get count of interaction choice sets
- * \return interaction choice sets count
- */
- size_t AppChoiceSets::size() const
- {
- return mChoiceSets.size();
- }
-
- /**
- * \brief cleans all the items
- */
- void AppChoiceSets::clear()
- {
- mChoiceSets.clear();
- }
-
- /**
- * \brief Copy constructor
- */
- AppChoiceSets::AppChoiceSets(const AppChoiceSets &)
- {
- }
-
- /**
- * \brief ChoiceSetGeneric default constructor
- */
- ChoiceSetGeneric::ChoiceSetGeneric()
- {
- }
-
- /**
- * \brief ChoiceSetGeneric default copy constructor
- * \param src source
- */
- ChoiceSetGeneric::ChoiceSetGeneric(const ChoiceSetGeneric &src)
- {
- *this = src;
- }
-
- const ChoiceSetGeneric &ChoiceSetGeneric::operator =(const ChoiceSetGeneric& src)
- {
- choiceSetV1 = src.choiceSetV1;
- choiceSetV2 = src.choiceSetV2;
- return *this;
- }
-
- /**
- * \brief ChoiceSetGeneric default destructor
- */
- ChoiceSetGeneric::~ChoiceSetGeneric()
- {
- choiceSetV1.clear();
- choiceSetV2.clear();
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/AppMenus.cpp b/SDL_Core/src/components/AppMgr/src/AppMenus.cpp
deleted file mode 100644
index 2a3c71019..000000000
--- a/SDL_Core/src/components/AppMgr/src/AppMenus.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/AppMenus.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
- log4cplus::Logger AppMenus::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("AppMenus"));
-
- /**
- * \brief Default class constructor
- */
- AppMenus::AppMenus()
- {
- }
-
- /**
- * \brief Default class destructor
- */
- AppMenus::~AppMenus()
- {
- clear();
- }
-
- /**
- * \brief add a menu item to a mapping
- * \param menuId menu id
- * \param menuName menu item name
- * \param position menu item position within the parent menu
- */
- void AppMenus::addItem(const unsigned int &menuId, const std::string &menuName, const unsigned int *position)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Adding a menu item " << menuId << " name " << menuName );
- mMenuItems.insert(MenuItem(menuId, MenuValue(menuName, position)));
- }
-
- /**
- * \brief remove a menu item from a mapping
- * \param menuId menu id
- */
- void AppMenus::removeItem(const unsigned int &menuId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Deleting a menu item " << menuId );
- mMenuItems.erase(menuId);
- }
-
- /**
- * \brief find a menu item from a mapping
- * \param menuId menu id
- * \return a menu item from a mapping
- */
- const MenuValue *AppMenus::findItem(const unsigned int &menuId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Searching for a menu item " << menuId );
- const MenuItems::const_iterator& it = mMenuItems.find(menuId);
- if(it != mMenuItems.end())
- {
- const MenuItem& item = *it;
- if(menuId == item.first)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Found a menu item for id " << menuId << " !");
- return &item.second;
- }
- }
- LOG4CPLUS_ERROR_EXT(mLogger, "A menu item " << menuId << " has not been found!");
- return 0;
- }
-
- /**
- * \brief gets all menu items
- * \return menu items
- */
- MenuItems AppMenus::getAllMenuItems() const
- {
- return mMenuItems;
- }
-
- /**
- * \brief get count of commands
- * \return commands count
- */
- size_t AppMenus::size() const
- {
- return mMenuItems.size();
- }
-
- /**
- * \brief cleans all the items
- */
- void AppMenus::clear()
- {
- mMenuItems.clear();
- }
-
- /**
- * \brief Copy constructor
- */
- AppMenus::AppMenus(const AppMenus &)
- {
- }
-}
-
diff --git a/SDL_Core/src/components/AppMgr/src/AppMgr.cpp b/SDL_Core/src/components/AppMgr/src/AppMgr.cpp
deleted file mode 100644
index 31a3cc30b..000000000
--- a/SDL_Core/src/components/AppMgr/src/AppMgr.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/AppMgr.h"
-#include "AppMgr/AppMgrCore.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
- log4cplus::Logger AppMgr::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("AppMgr"));
-
- /**
- * \brief Returning class instance
- * \return class instance
- */
- AppMgr& AppMgr::getInstance( )
- {
- static AppMgr appMgr;
- return appMgr;
- }
-
- /**
- * \brief Default class constructor
- */
- AppMgr::AppMgr()
- {
- LOG4CPLUS_INFO_EXT(mLogger, " AppMgr constructed!");
- }
-
- /**
- * \brief Default class destructor
- */
- AppMgr::~AppMgr()
- {
- LOG4CPLUS_INFO_EXT(mLogger, " AppMgr destructed!");
- }
-
- /**
- * \brief Copy constructor
- */
- AppMgr::AppMgr(const AppMgr &)
- {
- }
-
- /**
- * \brief Sets Json mobile handler instance
- * \param handler Json mobile handler
- */
- void AppMgr::setJsonHandler(JSONHandler* handler)
- {
- if(!handler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Setting null handler!");
- return;
- }
- AppMgrCore::getInstance().setJsonHandler( handler );
- }
-
- /**
- * \brief Sets Json RPC2 handler instance
- * \param handler Json RPC2 handler
- */
- void AppMgr::setJsonRPC2Handler(JSONRPC2Handler *handler)
- {
- if(!handler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Setting null handler!");
- return;
- }
- AppMgrCore::getInstance().setJsonRPC2Handler( handler );
- }
-
- /**
- * \brief Sets connection handler instance
- * \param handler connection handler
- */
- void AppMgr::setConnectionHandler(NsConnectionHandler::IDevicesDiscoveryStarter *handler)
- {
- if(!handler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Setting null handler!");
- return;
- }
- AppMgrCore::getInstance().setConnectionHandler( handler );
- }
-
- /**
- * \brief callback to proceed received mobile message
- * \param message the received message
- * \param connectionKey key of a connection associated with application that sent the message
- */
- void AppMgr::onMessageReceivedCallback(NsSmartDeviceLinkRPC::SDLRPCMessage * message, int connectionKey)
- {
- if(!message)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Calling a function with null command! connection key" << connectionKey);
- return;
- }
- LOG4CPLUS_INFO_EXT(mLogger, " Message " << message->getMethodId() << " received from mobile side");
- AppMgrCore::getInstance().pushMobileRPCMessage( message, connectionKey );
- }
-
- /**
- * \brief callback to proceed received RPC2 command
- * \param command the received command
- */
- void AppMgr::onCommandReceivedCallback(NsRPC2Communication::RPC2Command *command)
- {
- if(!command)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Calling a function with null command!");
- return;
- }
- LOG4CPLUS_INFO_EXT(mLogger, " Message " << command->getMethod() << " received from HMI side");
- AppMgrCore::getInstance().pushRPC2CommunicationMessage(command);
- }
-
- /**
- * \brief Available devices list updated.
- *
- * Called when device scanning initiated with scanForNewDevices
- * is completed.
- *
- * \param deviceList New list of available devices.
- **/
- void AppMgr::onDeviceListUpdated(const NsConnectionHandler::tDeviceList &deviceList)
- {
- AppMgrCore::getInstance().setDeviceList(deviceList);
- }
-
- /**
- * \brief callback which is called upon session starting
- * \param deviceHandle
- * \param sessionKey
- */
- void AppMgr::onSessionStartedCallback(NsConnectionHandler::tDeviceHandle deviceHandle, int sessionKey, int firstSessionKey)
- {
- AppMgrCore::getInstance().addDevice(deviceHandle, sessionKey, firstSessionKey);
- }
-
- /**
- * \brief callback which is called upon session ending
- * \param sessionKey
- */
- void AppMgr::onSessionEndedCallback(int sessionKey, int firstSessionKey)
- {
- AppMgrCore::getInstance().removeDevice(sessionKey, firstSessionKey);
- }
-
- /**
- * \brief method to execute threads.
- */
- void AppMgr::executeThreads()
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Threads are being started!");
-
- AppMgrCore::getInstance().executeThreads();
-
- LOG4CPLUS_INFO_EXT(mLogger, " Threads have been started!");
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/AppMgrCore.cpp b/SDL_Core/src/components/AppMgr/src/AppMgrCore.cpp
deleted file mode 100644
index 4fada341a..000000000
--- a/SDL_Core/src/components/AppMgr/src/AppMgrCore.cpp
+++ /dev/null
@@ -1,7720 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <sys/socket.h>
-#include <signal.h>
-#include <pthread.h>
-#include <sys/time.h>
-
-#include "LoggerHelper.hpp"
-#include "Utils/WorkWithOS.h"
-#include "AppMgr/AppMgrCore.h"
-#include "AppMgr/AppPolicy.h"
-#include "AppMgr/RegistryItem.h"
-#include "AppMgr/AppMgrCoreQueues.h"
-#include "AppMgr/HMIHandler.h"
-#include "AppMgr/MobileHandler.h"
-#include "AppMgr/ConnectionHandler.h"
-#include "AppMgr/Application_v2.h"
-#include "AppMgr/Application_v1.h"
-#include "JSONHandler/SDLRPCMessage.h"
-#include "JSONHandler/SDLRPCRequest.h"
-#include "JSONHandler/SDLRPCResponse.h"
-#include "JSONHandler/SDLRPCNotification.h"
-#include "JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "JSONHandler/JSONHandler.h"
-#include "JSONHandler/JSONRPC2Handler.h"
-#include "JSONHandler/RPC2Objects/Marshaller.h"
-#include "JSONHandler/RPC2Command.h"
-#include "JSONHandler/RPC2Request.h"
-#include "JSONHandler/RPC2Response.h"
-#include "JSONHandler/RPC2Notification.h"
-#include "JSONHandler/SDLRPCObjects/V2/AppType.h"
-#include "JSONHandler/SDLRPCObjects/V2/VehicleDataType.h"
-
-#include "ConnectionHandler/CConnectionHandler.hpp"
-
-namespace {
- // We wait for some request form HMI:
- // UI::GetCapabilities, VR::GetCapabilities, TTS::GetCapabilities, Buttons::GetCapabilities
- // VehicleInfo::GetVehicleType, UI::GetSupportedLanguages, TTS::GetSupportedLanguages
- // VR::GetSupportedLanguages, UI::GetLanguage, VR::GetLanguage, TTS::GetLanguage
- // Look for METHOD_NSRPC2COMMUNICATION_UI__ONREADY for details
- const int HMI_STARTUP_REQUEST_COUNT = 11;
-
- template<typename To, typename From, typename InternalType>
- void convert(const std::vector<From> & from, std::vector<To> & result)
- {
- typename std::vector<From>::const_iterator i = from.begin();
- for(i; i != from.end(); ++i)
- {
- const From& caps = *i;
- To item;
- item.set(static_cast<InternalType>(caps.get()));
- result.push_back(item);
- }
- }
-
- template<typename Response>
- void sendResponse(int responseId, NsSmartDeviceLinkRPCV2::Result::ResultInternal result)
- {
- Response* response = new Response;
- if (!response)
- return;
-
- response->setId(responseId);
- response->setResult(result);
- NsAppManager::HMIHandler::getInstance().sendResponse(response);
- }
-
- template<typename Response, typename Result>
- void sendResponse(NsSmartDeviceLinkRPCV2::FunctionID::FunctionIDInternal functionId
- , Result result
- , unsigned int correlationID
- , bool succes
- , unsigned int sessionKey)
- {
- Response* response = new Response;
- if (!response)
- return;
-
- response->setMethodId(functionId);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(succes);
- response->set_resultCode(result);
- response->setCorrelationID(correlationID);
- NsAppManager::MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- }
-
- template<typename Response, typename Result>
- void sendResponse(NsSmartDeviceLinkRPC::SDLRPCMessage * request
- , Result result
- , bool succes
- , unsigned int sessionKey)
- {
- Response* response = new Response;
- if (!response)
- return;
-
- response->setMethodId(request->getMethodId());
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setCorrelationID(request->getCorrelationID());
- response->set_success(succes);
- response->set_resultCode(result);
- NsAppManager::MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- }
-
- template<typename Response>
- NsAppManager::Application_v2* getApplicationV2AndCheckHMIStatus(unsigned int sessionKey
- , NsSmartDeviceLinkRPC::SDLRPCMessage * request)
- {
- NsAppManager::Application_v2* app = static_cast<NsAppManager::Application_v2*>(
- NsAppManager::AppMgrCore::getInstance().getItem(sessionKey));
- if(!app)
- {
- /*LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");*/
-
- sendResponse<Response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- request
- , NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED
- , false
- , sessionKey);
-
- return NULL;
- }
-
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- /*LOG4CPLUS_ERROR_EXT(mLogger, "An application " << app->getName() << " with session key "
- << sessionKey << " has not been activated yet!" );*/
-
- sendResponse<Response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- request
- , NsSmartDeviceLinkRPCV2::Result::REJECTED
- , false
- , sessionKey);
-
- return NULL;
- }
-
- return app;
- }
-
- pthread_t sendingThread;
- struct thread_data
- {
- int timeout;
- std::string url;
- NsAppManager::SyncPManager::PData pdata;
- };
-
- void *SendPData(void *data)
- {
- log4cplus::Logger logger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("AppMgrCore"));
- LOG4CPLUS_INFO_EXT(logger, " Started data sending thread");
- struct thread_data* my_data = (struct thread_data*) data;
- int timeout = my_data->timeout;
- std::string url = my_data->url;
- NsAppManager::SyncPManager::PData pData = my_data->pdata;
- LOG4CPLUS_INFO_EXT(logger, " Sending params: url " << url << " timeout " << timeout << " data of " << pData.size() << " lines");
- sleep(timeout); // TODO(AK): Why we use it?
- int port = 80;
- size_t pos = url.find(":");
- if(pos != std::string::npos)
- {
- std::string strPort = url.substr(pos+1);
- if(!strPort.empty())
- {
- port = atoi(strPort.c_str());
- }
- }
- std::string host = url.substr(0, pos);
- LOG4CPLUS_INFO_EXT(logger, " Sending at " << host << " port " << port);
- // TODO (pv): change implementation.
- LOG4CPLUS_INFO_EXT(logger, " All data sent to host " << host << " port " << port);
- pthread_exit(NULL);
- }
-
- // !----------------------------------------------------------------------------------------------------------------
-
- const unsigned int AUDIO_PASS_THRU_TIMEOUT = 1;
-
- pthread_cond_t cv;
- pthread_mutex_t audioPassThruMutex = PTHREAD_MUTEX_INITIALIZER;
- pthread_t audioPassThruThread;
-
- // Don't send PerformAudioPassThru_response to mobile if false.
- bool sendEndAudioPassThruToHMI(unsigned int sessionKey, unsigned int correlationID)
- {
- // Send respons to HMI.
- NsRPC2Communication::UI::EndAudioPassThru* endAudioPassThru
- = new NsRPC2Communication::UI::EndAudioPassThru;
- if (!endAudioPassThru)
- {
- std::cout << "OUT_OF_MEMORY: new NsRPC2Communication::UI::EndAudioPassThru." << std::endl;
- sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID
- , NsSmartDeviceLinkRPCV2::Result::OUT_OF_MEMORY
- , correlationID
- , false
- , sessionKey);
- return false;
- }
-
- NsAppManager::Application* app = NsAppManager::AppMgrCore::getInstance().getItem(sessionKey);
- if(!app)
- {
- std::cout << "No application associated with this registry item!" << std::endl;
- return false;
- }
-
- endAudioPassThru->setId(NsAppManager::HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- endAudioPassThru->set_appId(app->getAppID());
- NsAppManager::HMIHandler::getInstance().sendRequest(endAudioPassThru);
- return true;
- }
-
- void AudioPassThruTimerProc(int i)
- {
- pthread_cond_signal(&cv);
- }
-
- struct AudioPassThruData
- {
- unsigned int sessionKey; // For error reports
- unsigned int id; // For error reports
-
- unsigned int maxDuration;
- NsSmartDeviceLinkRPCV2::SamplingRate samplingRate;
- NsSmartDeviceLinkRPCV2::AudioCaptureQuality bitsPerSample;
- NsSmartDeviceLinkRPCV2::AudioType audioType;
- };
-
- void* AudioPassThru(void* data)
- {
- AudioPassThruData* data_ = static_cast<AudioPassThruData*>(data);
- if (!data_)
- {
- NsAppManager::AppMgrCore::getInstance().setAudioPassThruFlag(false);
- std::cout << "AudioPassThruData empty." << std::endl;
- pthread_exit(NULL);
- }
-
- unsigned int audioLength = 0;
- std::string filename;
- if (data_->bitsPerSample.get() == NsSmartDeviceLinkRPCV2::AudioCaptureQuality::FIX_8_BIT)
- {
- filename = "audio.8bit.wav";
- audioLength = 5000;
- }
- else if (data_->bitsPerSample.get() == NsSmartDeviceLinkRPCV2::AudioCaptureQuality::FIX_16_BIT)
- {
- filename = ""; // TODO(AK): Add file name here.
- audioLength = static_cast<unsigned int>(1000 * 60 * 2.7); // 3 minute audio.
- }
- else
- {
- pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
- if (sendEndAudioPassThruToHMI(data_->sessionKey, data_->id))
- {
- sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID
- , NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR
- , data_->id
- , false
- , data_->sessionKey);
- }
-
- NsAppManager::AppMgrCore::getInstance().setAudioPassThruFlag(false);
- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
- pthread_exit(NULL);
- }
-
- std::vector<unsigned char> binaryData;
- if (!WorkWithOS::readFileAsBinary(filename, binaryData))
- {
- pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
- std::cout << "Can't read from file." << std::endl;
- if (sendEndAudioPassThruToHMI(data_->sessionKey, data_->id))
- {
- sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID
- , NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR
- , data_->id
- , false
- , data_->sessionKey);
- }
-
- NsAppManager::AppMgrCore::getInstance().setAudioPassThruFlag(false);
- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
- pthread_exit(NULL);
- }
-
- if (binaryData.empty())
- {
- pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
- std::cout << "Binary data empty." << std::endl;
- if (sendEndAudioPassThruToHMI(data_->sessionKey, data_->id))
- {
- sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID
- , NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR
- , data_->id
- , false
- , data_->sessionKey);
- }
-
- NsAppManager::AppMgrCore::getInstance().setAudioPassThruFlag(false);
- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
- pthread_exit(NULL);
- }
-
- unsigned int percentOfAudioLength = 0; // % of audio file.
- unsigned int dataLength = 0; // part of file data.
-
- // Send only part of file
- if (data_->maxDuration != 0 && data_->maxDuration < audioLength)
- {
- percentOfAudioLength = (data_->maxDuration * 100) / audioLength;
- dataLength = (binaryData.size() * percentOfAudioLength) / 100;
- }
- else
- {
- percentOfAudioLength = 100;
- dataLength = binaryData.size();
- }
-
- // Part of file in seconds = audio length in seconds * (%) of audio length / 100%
- unsigned int seconds = ((audioLength / 1000) * percentOfAudioLength) / 100;
- // Step is data length * AUDIO_PASS_THRU_TIMEOUT / seconds
- unsigned int step = dataLength * AUDIO_PASS_THRU_TIMEOUT / seconds;
-
- std::vector<unsigned char>::iterator from = binaryData.begin();
- std::vector<unsigned char>::iterator to = from + step;
-
- for (int i = 0; i != seconds; i += AUDIO_PASS_THRU_TIMEOUT) // minimal timeout is 1 sec now.
- {
- struct itimerval tout_val;
- tout_val.it_interval.tv_sec = 0;
- tout_val.it_interval.tv_usec = 0;
- tout_val.it_value.tv_sec = AUDIO_PASS_THRU_TIMEOUT;
- tout_val.it_value.tv_usec = 0;
- setitimer(ITIMER_REAL, &tout_val, 0);
- signal(SIGALRM, AudioPassThruTimerProc);
-
- pthread_cond_wait(&cv, &audioPassThruMutex);
-
- pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
- NsSmartDeviceLinkRPCV2::OnAudioPassThru* onAudioPassThru = new NsSmartDeviceLinkRPCV2::OnAudioPassThru;
- if (!onAudioPassThru)
- {
- std::cout << "OUT_OF_MEMORY: new NsSmartDeviceLinkRPCV2::OnAudioPassThru." << std::endl;
- if (sendEndAudioPassThruToHMI(data_->sessionKey, data_->id))
- {
- sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID
- , NsSmartDeviceLinkRPCV2::Result::OUT_OF_MEMORY
- , data_->id
- , false
- , data_->sessionKey);
- }
-
- delete onAudioPassThru;
- NsAppManager::AppMgrCore::getInstance().setAudioPassThruFlag(false);
- pthread_exit(NULL);
- }
-
- onAudioPassThru->setBinaryData(std::vector<unsigned char>(from, to));
- onAudioPassThru->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnAudioPassThruID);
- onAudioPassThru->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
-
- NsAppManager::MobileHandler::getInstance().sendRPCMessage(onAudioPassThru, data_->sessionKey);
- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
-
- from = to;
- to = to + step;
- }
-
- pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
-
- //sendEndAudioPassThruToHMI(data_->sessionKey);
- /*if (sendEndAudioPassThruToHMI(data_->sessionKey))
- {
- // Send response to mobile.
- sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID
- , NsSmartDeviceLinkRPCV2::Result::SUCCESS
- , NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE
- , true
- , data_->sessionKey);
- }*/
-
- NsAppManager::AppMgrCore::getInstance().setAudioPassThruFlag(false);
- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
- pthread_exit(NULL);
- }
-}
-
-namespace NsAppManager
-{
- log4cplus::Logger AppMgrCore::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("AppMgrCore"));
-
- /**
- * \brief Returning class instance
- * \return class instance
- */
- AppMgrCore& AppMgrCore::getInstance( )
- {
- static AppMgrCore appMgr;
- return appMgr;
- }
-
- /**
- * \brief Default class constructor
- */
- AppMgrCore::AppMgrCore()
- : mQueueRPCSmartDeviceLinkObjectsIncoming(new AppMgrCoreQueue<Message>(&AppMgrCore::handleMobileRPCMessage, this))
- , mQueueRPCBusObjectsIncoming(new AppMgrCoreQueue<NsRPC2Communication::RPC2Command*>(&AppMgrCore::handleBusRPCMessageIncoming, this))
- , mDriverDistractionV1(0)
- , mDriverDistractionV2(0)
- , mAudioPassThruFlag(false)
- , mPerformInteractionFlag(-1)
- , mHMIStartupFlag(HMI_STARTUP_REQUEST_COUNT)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " AppMgrCore constructed!");
-
- pthread_mutex_init(&audioPassThruMutex, NULL);
- memset(static_cast<void*>(&cv), 0, sizeof(cv));
- }
-
- /**
- * \brief Copy constructor
- */
- AppMgrCore::AppMgrCore(const AppMgrCore &)
- :mQueueRPCSmartDeviceLinkObjectsIncoming(0)
- ,mQueueRPCBusObjectsIncoming(0)
- ,mDriverDistractionV1(0)
- ,mDriverDistractionV2(0)
- {
- }
-
- /**
- * \brief Default class destructor
- */
- AppMgrCore::~AppMgrCore()
- {
- if(mQueueRPCSmartDeviceLinkObjectsIncoming)
- delete mQueueRPCSmartDeviceLinkObjectsIncoming;
- if(mQueueRPCBusObjectsIncoming)
- delete mQueueRPCBusObjectsIncoming;
- if(mDriverDistractionV1)
- delete mDriverDistractionV1;
- if(mDriverDistractionV2)
- delete mDriverDistractionV2;
-
- LOG4CPLUS_INFO_EXT(mLogger, " AppMgrCore destructed!");
- }
-
- /**
- * \brief push mobile RPC message to a queue
- * \param message a message to be pushed
- * \param connectionID id of a connection associated with application that sent the message
- * \param sessionID an id of a session associated with the application which pushes a message
- */
- void AppMgrCore::pushMobileRPCMessage( NsSmartDeviceLinkRPC::SDLRPCMessage * message, int appId )
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Pushing mobile RPC message " << message->getMethodId() << " for application id " << appId << "...");
- if(!message)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Nothing to push! A null-ptr occured!");
- return;
- }
-
- mQueueRPCSmartDeviceLinkObjectsIncoming->pushMessage(Message(message, appId));
-
- LOG4CPLUS_INFO_EXT(mLogger, " Pushed mobile RPC message " << message->getMethodId() << " for application id " << appId);
- }
-
- /**
- * \brief push HMI RPC2 message to a queue
- * \param message a message to be pushed
- */
- void AppMgrCore::pushRPC2CommunicationMessage( NsRPC2Communication::RPC2Command * message )
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Returning a message " << message->getMethod() << " from HMI...");
- if(!message)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Nothing to push! A null-ptr occured!");
- return;
- }
-
- mQueueRPCBusObjectsIncoming->pushMessage(message);
-
- LOG4CPLUS_INFO_EXT(mLogger, " Returned a message " << message->getMethod() << " from HMI");
- }
-
- /**
- * \brief method to execute threads.
- */
- void AppMgrCore::executeThreads()
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Threads are being started!");
-
- mQueueRPCSmartDeviceLinkObjectsIncoming->executeThreads();
- mQueueRPCBusObjectsIncoming->executeThreads();
-
- LOG4CPLUS_INFO_EXT(mLogger, " Threads have been started!");
- }
-
- /**
- * \brief mobile RPC message handler
- * \param mesage a message to be handled
- * \param pThis a pointer to AppMgrCore class instance
- */
- void AppMgrCore::handleMobileRPCMessage(Message message , void *pThis)
- {
- int sessionKey = message.second;
-
- NsSmartDeviceLinkRPC::SDLRPCMessage* mobileMsg = message.first;
- if(!mobileMsg)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " No message associated with the session key " << sessionKey << " !");
- return;
- }
- LOG4CPLUS_INFO_EXT(mLogger, " A mobile RPC message " << mobileMsg->getMethodId() << " has been received for the session key " << sessionKey << " !");
- if(!pThis)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " pThis should point to an instance of AppMgrCore class");
- return;
- }
- AppMgrCore* core = (AppMgrCore*)pThis;
- const unsigned int& protocolVersion = mobileMsg->getProtocolVersion();
- /*const NsConnectionHandler::tDeviceHandle& currentDeviceHandle = core->mDeviceHandler.findDeviceAssignedToSession(sessionKey);
- const NsConnectionHandler::CDevice* currentDevice = core->mDeviceList.findDeviceByHandle(currentDeviceHandle);
- if(!currentDevice)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Cannot retreive current device name for the message with session key " << sessionKey << " !");
- return;
- }
- const std::string& currentDeviceName = currentDevice->getUserFriendlyName();*/
-
- LOG4CPLUS_INFO_EXT(mLogger, "Message received is from protocol " << protocolVersion);
- if ( 1 == mobileMsg->getProtocolVersion() )
- {
- switch(mobileMsg->getMethodId())
- {
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_REGISTERAPPINTERFACE_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A RegisterAppInterface request has been invoked");
-
- NsSmartDeviceLinkRPC::RegisterAppInterface_request * object = (NsSmartDeviceLinkRPC::RegisterAppInterface_request*)mobileMsg;
- NsSmartDeviceLinkRPC::RegisterAppInterface_response* response = new NsSmartDeviceLinkRPC::RegisterAppInterface_response();
- const std::string& appName = object->get_appName();
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- response->setCorrelationID(object->getCorrelationID());
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
-
- if(core->getItem(sessionKey))
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Application " << appName << " is already registered!");
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_REGISTERED_ALREADY);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- Application_v1* app = (Application_v1*)core->registerApplication( object, sessionKey );
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Application " << appName << " hasn't been registered!");
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- std::vector<NsSmartDeviceLinkRPC::ButtonCapabilities> buttonCapsResult;
- std::vector<NsSmartDeviceLinkRPCV2::ButtonCapabilities> buttonCapsOrig = core->mButtonCapabilitiesV2.get();
- for ( int i = 0; i < buttonCapsOrig.size(); ++i )
- {
- NsSmartDeviceLinkRPC::ButtonCapabilities buttonCaps;
- buttonCaps.set_longPressAvailable(buttonCapsOrig[i].get_longPressAvailable());
- buttonCaps.set_name(
- static_cast<NsSmartDeviceLinkRPC::ButtonName::ButtonNameInternal>(
- buttonCapsOrig[i].get_name().get()));
- buttonCaps.set_shortPressAvailable(buttonCapsOrig[i].get_shortPressAvailable());
- buttonCaps.set_upDownAvailable(buttonCapsOrig[i].get_upDownAvailable());
- buttonCapsResult.push_back(buttonCaps);
- }
- response->set_buttonCapabilities(buttonCapsResult);
-
- std::vector<NsSmartDeviceLinkRPC::HmiZoneCapabilities> hmiCapsResult;
- convert<NsSmartDeviceLinkRPC::HmiZoneCapabilities,
- NsSmartDeviceLinkRPCV2::HmiZoneCapabilities,
- NsSmartDeviceLinkRPC::HmiZoneCapabilities::HmiZoneCapabilitiesInternal>(
- core->mHmiZoneCapabilitiesV2.get(),
- hmiCapsResult);
- response->set_hmiZoneCapabilities(hmiCapsResult);
-
- std::vector<NsSmartDeviceLinkRPC::SpeechCapabilities> speechCapsResult;
- convert<NsSmartDeviceLinkRPC::SpeechCapabilities,
- NsSmartDeviceLinkRPCV2::SpeechCapabilities,
- NsSmartDeviceLinkRPC::SpeechCapabilities::SpeechCapabilitiesInternal>(
- core->mSpeechCapabilitiesV2.get(),
- speechCapsResult);
- response->set_speechCapabilities(speechCapsResult);
-
- std::vector<NsSmartDeviceLinkRPC::VrCapabilities> vrCapsResult;
- convert<NsSmartDeviceLinkRPC::VrCapabilities,
- NsSmartDeviceLinkRPCV2::VrCapabilities,
- NsSmartDeviceLinkRPC::VrCapabilities::VrCapabilitiesInternal>(
- core->mVrCapabilitiesV2.get(),
- vrCapsResult);
- response->set_vrCapabilities(vrCapsResult);
-
- response->set_displayCapabilities(core->mDisplayCapabilitiesV1);
- response->set_language(core->mUiLanguageV1);
- if (object->get_languageDesired().get() != core->mUiLanguageV1.get())
- {
- LOG4CPLUS_WARN(mLogger, "Wrong language on registering application " << appName);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::WRONG_LANGUAGE);
- }
- response->set_syncMsgVersion(app->getSyncMsgVersion());
-
-
- LOG4CPLUS_INFO_EXT(mLogger, " A RegisterAppInterface response for the app " << app->getName()
- << " connection/session key " << app->getAppID()
- << " gets sent to a mobile side... ");
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
-
- NsRPC2Communication::BasicCommunication::OnAppRegistered* appRegistered = new NsRPC2Communication::BasicCommunication::OnAppRegistered();
- NsSmartDeviceLinkRPCV2::HMIApplication hmiApp;
- hmiApp.set_appName(app->getName());
- hmiApp.set_appId(app->getAppID());
- hmiApp.set_isMediaApplication(app->getIsMediaApplication());
-
- std::map<int,DeviceStorage>::const_iterator it = core->mDevices.find( app->getDeviceHandle() );
- std::string currentDeviceName = "";
- if ( core->mDevices.end() != it )
- {
- currentDeviceName = it->second.getUserFriendlyName();
- }
-
- hmiApp.set_deviceName(currentDeviceName);
- hmiApp.set_hmiDisplayLanguageDesired(static_cast<NsSmartDeviceLinkRPCV2::Language::LanguageInternal>(app->getLanguageDesired().get()));
- hmiApp.set_languageDesired(static_cast<NsSmartDeviceLinkRPCV2::Language::LanguageInternal>(app->getLanguageDesired().get()));
-
- appRegistered->set_application(hmiApp);
- HMIHandler::getInstance().sendNotification(appRegistered);
- LOG4CPLUS_INFO_EXT(mLogger, " An SmartDeviceLinkCore::OnAppRegistered notofocation for the app " << app->getName()
- << " application id " << app->getAppID()
- << " gets sent to an HMI side... ");
- LOG4CPLUS_INFO_EXT(mLogger, " A RegisterAppInterface request was successful: registered an app " << app->getName()
- << " application id " << app->getAppID());
-
- NsSmartDeviceLinkRPC::OnHMIStatus* status = new NsSmartDeviceLinkRPC::OnHMIStatus();
- status->set_hmiLevel(
- static_cast<NsSmartDeviceLinkRPC::HMILevel::HMILevelInternal>(app->getApplicationHMIStatusLevel()));
- status->set_audioStreamingState(
- static_cast<NsSmartDeviceLinkRPC::AudioStreamingState::AudioStreamingStateInternal>(
- app->getApplicationAudioStreamingState().get()));
- status->set_systemContext(
- static_cast<NsSmartDeviceLinkRPC::SystemContext::SystemContextInternal>(app->getSystemContext().get()));
- MobileHandler::getInstance().sendRPCMessage(status, sessionKey);
- LOG4CPLUS_INFO_EXT(mLogger, " An OnHMIStatus notification for the app " << app->getName()
- << " connection/session key " << app->getAppID()
- << " gets sent to a mobile side... ");
-
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_UNREGISTERAPPINTERFACE_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An UnregisterAppInterface request has been invoked");
-
- NsSmartDeviceLinkRPC::UnregisterAppInterface_request * object = (NsSmartDeviceLinkRPC::UnregisterAppInterface_request*)mobileMsg;
- Application* app = core->getItem(sessionKey);
- NsSmartDeviceLinkRPC::UnregisterAppInterface_response* response = new NsSmartDeviceLinkRPC::UnregisterAppInterface_response();
- response->setCorrelationID(object->getCorrelationID());
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- std::string appName = app->getName();
- int appId = app->getAppID();
- //core->removeAppFromHmi(app, sessionKey);
- core->unregisterApplication( sessionKey );
-
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
-
- /*NsSmartDeviceLinkRPC::OnAppInterfaceUnregistered* msgUnregistered = new NsSmartDeviceLinkRPC::OnAppInterfaceUnregistered();
- msgUnregistered->set_reason(NsSmartDeviceLinkRPC::AppInterfaceUnregisteredReason(NsSmartDeviceLinkRPC::AppInterfaceUnregisteredReason::USER_EXIT));
- MobileHandler::getInstance().sendRPCMessage(msgUnregistered, sessionKey);*/
-
- LOG4CPLUS_INFO_EXT(mLogger, " An application " << appName << " has been unregistered successfully ");
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_SUBSCRIBEBUTTON_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A SubscribeButton request has been invoked");
-
- NsSmartDeviceLinkRPC::SubscribeButton_request * object = (NsSmartDeviceLinkRPC::SubscribeButton_request*)mobileMsg;
- NsSmartDeviceLinkRPC::SubscribeButton_response* response = new NsSmartDeviceLinkRPC::SubscribeButton_response();
- //RegistryItem* item = AppMgrRegistry::getInstance().getItem(sessionKey);
- response->setCorrelationID(object->getCorrelationID());
- /*if(!item)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }*/
- Application_v1* app = (Application_v1*)core->getItem( sessionKey );
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsSmartDeviceLinkRPCV2::ButtonName btnName;
- btnName.set((NsSmartDeviceLinkRPCV2::ButtonName::ButtonNameInternal)object->get_buttonName().get());
-
- if (core->mButtonsMapping.exist(btnName, app))
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::IGNORED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- core->mButtonsMapping.addButton( btnName, app );
-
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_UNSUBSCRIBEBUTTON_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An UnsubscribeButton request has been invoked");
- NsSmartDeviceLinkRPC::UnsubscribeButton_request * object = (NsSmartDeviceLinkRPC::UnsubscribeButton_request*)mobileMsg;
- NsSmartDeviceLinkRPC::UnsubscribeButton_response* response = new NsSmartDeviceLinkRPC::UnsubscribeButton_response();
- response->setCorrelationID(object->getCorrelationID());
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN_EXT(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsSmartDeviceLinkRPCV2::ButtonName btnName;
- btnName.set((NsSmartDeviceLinkRPCV2::ButtonName::ButtonNameInternal)object->get_buttonName().get());
-
- if (!core->mButtonsMapping.exist(btnName, app))
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::IGNORED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- core->mButtonsMapping.removeButton( btnName, app );
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_SHOW_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A Show request has been invoked");
- LOG4CPLUS_INFO_EXT(mLogger, "message " << mobileMsg->getMethodId() );
- NsSmartDeviceLinkRPC::Show_request* object = (NsSmartDeviceLinkRPC::Show_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPC::Show_response* response = new NsSmartDeviceLinkRPC::Show_response();
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::Show_response* response = new NsSmartDeviceLinkRPC::Show_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::Show* showRPC2Request = new NsRPC2Communication::UI::Show();
- showRPC2Request->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- LOG4CPLUS_INFO_EXT(mLogger, "showrpc2request created");
- if(object->get_mainField1())
- {
- showRPC2Request->set_mainField1(*object->get_mainField1());
- }
- LOG4CPLUS_INFO_EXT(mLogger, "setMainField1 was called");
- if(object->get_mainField2())
- {
- showRPC2Request->set_mainField2(*object->get_mainField2());
- }
- if(object->get_mediaClock())
- {
- showRPC2Request->set_mediaClock(*object->get_mediaClock());
- }
- if(object->get_mediaTrack())
- {
- showRPC2Request->set_mediaTrack(*object->get_mediaTrack());
- }
- if(object->get_statusBar())
- {
- showRPC2Request->set_statusBar(*object->get_statusBar());
- }
- if(object->get_alignment())
- {
- showRPC2Request->set_alignment(
- static_cast<NsSmartDeviceLinkRPCV2::TextAlignment::TextAlignmentInternal>(object->get_alignment()->get()));
- }
- showRPC2Request->set_appId(sessionKey);
- LOG4CPLUS_INFO_EXT(mLogger, "Show request almost handled" );
- core->mMessageChaining[showRPC2Request->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- HMIHandler::getInstance().sendRequest(showRPC2Request);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_SPEAK_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A Speak request has been invoked");
- NsSmartDeviceLinkRPC::Speak_request* object = (NsSmartDeviceLinkRPC::Speak_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPC::Speak_response* response = new NsSmartDeviceLinkRPC::Speak_response();
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL != app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::Speak_response* response = new NsSmartDeviceLinkRPC::Speak_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::TTS::Speak* speakRPC2Request = new NsRPC2Communication::TTS::Speak();
- speakRPC2Request->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
-
- {
- std::vector<NsSmartDeviceLinkRPC::TTSChunk> chunkOrig = object->get_ttsChunks();
- std::vector<NsSmartDeviceLinkRPCV2::TTSChunk> chunkRes;
- for( int i = 0; i < chunkOrig.size(); ++i )
- {
- NsSmartDeviceLinkRPCV2::TTSChunk chunk;
- chunk.set_text(chunkOrig[i].get_text());
- chunk.set_type(
- static_cast<NsSmartDeviceLinkRPCV2::SpeechCapabilities::SpeechCapabilitiesInternal>(
- chunkOrig[i].get_type().get()));
- chunkRes.push_back(chunk);
- }
- speakRPC2Request->set_ttsChunks(chunkRes);
- }
-
- speakRPC2Request->set_appId(sessionKey);
- core->mMessageChaining[speakRPC2Request->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- HMIHandler::getInstance().sendRequest(speakRPC2Request);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_SETGLOBALPROPERTIES_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A SetGlobalProperties request has been invoked");
- NsSmartDeviceLinkRPC::SetGlobalProperties_request* object = (NsSmartDeviceLinkRPC::SetGlobalProperties_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPC::SetGlobalProperties_response* response = new NsSmartDeviceLinkRPC::SetGlobalProperties_response();
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::SetGlobalProperties_response* response = new NsSmartDeviceLinkRPC::SetGlobalProperties_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::SetGlobalProperties* setGPRPC2Request = new NsRPC2Communication::UI::SetGlobalProperties();
- setGPRPC2Request->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[setGPRPC2Request->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- if(object->get_helpPrompt())
- {
- std::vector<NsSmartDeviceLinkRPC::TTSChunk> chunkOrig = *object->get_helpPrompt();
- std::vector<NsSmartDeviceLinkRPCV2::TTSChunk> chunkRes;
- for( int i = 0; i < chunkOrig.size(); ++i )
- {
- NsSmartDeviceLinkRPCV2::TTSChunk chunk;
- chunk.set_text(chunkOrig[i].get_text());
- chunk.set_type(
- static_cast<NsSmartDeviceLinkRPCV2::SpeechCapabilities::SpeechCapabilitiesInternal>(
- chunkOrig[i].get_type().get()));
- chunkRes.push_back(chunk);
- }
- setGPRPC2Request->set_helpPrompt(chunkRes);
- }
-
- if(object->get_timeoutPrompt())
- {
- std::vector<NsSmartDeviceLinkRPC::TTSChunk> chunkOrig = *object->get_timeoutPrompt();
- std::vector<NsSmartDeviceLinkRPCV2::TTSChunk> chunkRes;
- for( int i = 0; i < chunkOrig.size(); ++i )
- {
- NsSmartDeviceLinkRPCV2::TTSChunk chunk;
- chunk.set_text(chunkOrig[i].get_text());
- chunk.set_type(
- static_cast<NsSmartDeviceLinkRPCV2::SpeechCapabilities::SpeechCapabilitiesInternal>(
- chunkOrig[i].get_type().get()));
- chunkRes.push_back(chunk);
- }
- setGPRPC2Request->set_timeoutPrompt(chunkRes);
- }
-
- setGPRPC2Request->set_appId(sessionKey);
- HMIHandler::getInstance().sendRequest(setGPRPC2Request);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_RESETGLOBALPROPERTIES_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A ResetGlobalProperties request has been invoked");
- NsSmartDeviceLinkRPC::ResetGlobalProperties_request* object = (NsSmartDeviceLinkRPC::ResetGlobalProperties_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPC::ResetGlobalProperties_response* response = new NsSmartDeviceLinkRPC::ResetGlobalProperties_response();
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::ResetGlobalProperties_response* response = new NsSmartDeviceLinkRPC::ResetGlobalProperties_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::ResetGlobalProperties* resetGPRPC2Request = new NsRPC2Communication::UI::ResetGlobalProperties();
- resetGPRPC2Request->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[resetGPRPC2Request->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
-
- std::vector<NsSmartDeviceLinkRPCV2::GlobalProperty> propertyResult;
- convert<NsSmartDeviceLinkRPCV2::GlobalProperty,
- NsSmartDeviceLinkRPC::GlobalProperty,
- NsSmartDeviceLinkRPCV2::GlobalProperty::GlobalPropertyInternal>(
- object->get_properties(),
- propertyResult);
- resetGPRPC2Request->set_properties(propertyResult);
- resetGPRPC2Request->set_appId(sessionKey);
- HMIHandler::getInstance().sendRequest(resetGPRPC2Request);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_ALERT_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An Alert request has been invoked");
- NsSmartDeviceLinkRPC::Alert_request* object = (NsSmartDeviceLinkRPC::Alert_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPC::Alert_response* response = new NsSmartDeviceLinkRPC::Alert_response();
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if((NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- || (NsSmartDeviceLinkRPCV2::HMILevel::HMI_BACKGROUND == app->getApplicationHMIStatusLevel()))
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::Alert_response* response = new NsSmartDeviceLinkRPC::Alert_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::Alert* alert = new NsRPC2Communication::UI::Alert();
- alert->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[alert->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- if(object->get_alertText1())
- {
- alert->set_AlertText1(*object->get_alertText1());
- }
- if(object->get_alertText2())
- {
- alert->set_AlertText2(*object->get_alertText2());
- }
- if(object->get_duration())
- {
- alert->set_duration(*object->get_duration());
- }
- if(object->get_playTone())
- {
- alert->set_playTone(*object->get_playTone());
- }
- if(object->get_ttsChunks())
- {
- const std::vector<NsSmartDeviceLinkRPC::TTSChunk> &oldChunks = *object->get_ttsChunks();
- std::vector<NsSmartDeviceLinkRPCV2::TTSChunk> chunks(oldChunks.size());
- for(int i = 0; i < oldChunks.size(); ++i)
- {
- NsSmartDeviceLinkRPCV2::TTSChunk chunk;
- chunk.set_text(oldChunks[i].get_text());
- chunk.set_type(
- static_cast<NsSmartDeviceLinkRPCV2::SpeechCapabilities::SpeechCapabilitiesInternal>(
- oldChunks[i].get_type().get()));
- chunks[i] = chunk;
- }
- alert->set_ttsChunks(chunks);
- }
- alert->set_appId(sessionKey);
- HMIHandler::getInstance().sendRequest(alert);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_ADDCOMMAND_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An AddCommand request has been invoked");
- NsSmartDeviceLinkRPC::AddCommand_request* object = (NsSmartDeviceLinkRPC::AddCommand_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPC::AddCommand_response* response = new NsSmartDeviceLinkRPC::AddCommand_response();
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::AddCommand_response* response = new NsSmartDeviceLinkRPC::AddCommand_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- const unsigned int& cmdId = object->get_cmdID();
-
- MessageChaining * chain = 0;
-
- if(object->get_menuParams())
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An AddCommand UI request has been invoked");
- NsRPC2Communication::UI::AddCommand * addCmd = new NsRPC2Communication::UI::AddCommand();
- addCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- CommandType cmdType = CommandType::UI;
- const NsSmartDeviceLinkRPC::MenuParams* menuParams = object->get_menuParams();
-
- NsSmartDeviceLinkRPCV2::MenuParams menuParamsRes;
- menuParamsRes.set_menuName(menuParams->get_menuName());
- if ( menuParams->get_parentID() )
- {
- menuParamsRes.set_parentID(*menuParams->get_parentID());
- }
- if ( menuParams->get_position() )
- {
- menuParamsRes.set_position(*menuParams->get_position());
- }
-
- addCmd->set_menuParams(menuParamsRes);
- addCmd->set_cmdId(cmdId);
- addCmd->set_appId(app->getAppID());
- if(menuParams->get_parentID())
- {
- const unsigned int& menuId = *menuParams->get_parentID();
- app->addMenuCommand(cmdId, menuId);
- }
-
- chain = core->addChain(chain,
- sessionKey,
- object->getCorrelationID());
- core->mMessageChaining[addCmd->getId()] = chain;
- CommandParams params;
- params.menuParams = menuParams;
- app->addCommand(cmdId, cmdType, params);
- app->incrementUnrespondedRequestCount(cmdId);
- HMIHandler::getInstance().sendRequest(addCmd);
-
- }
- if(object->get_vrCommands())
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An AddCommand VR request has been invoked");
- NsRPC2Communication::VR::AddCommand * addCmd = new NsRPC2Communication::VR::AddCommand();
- addCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- CommandType cmdType = CommandType::VR;
- addCmd->set_vrCommands(*object->get_vrCommands());
- addCmd->set_cmdId(cmdId);
- addCmd->set_appId(app->getAppID());
- chain = core->addChain(chain,
- sessionKey,
- object->getCorrelationID());
- core->mMessageChaining[addCmd->getId()] = chain;
- CommandParams params;
- params.vrCommands = object->get_vrCommands();
- app->addCommand(cmdId, cmdType, params);
- app->incrementUnrespondedRequestCount(cmdId);
- HMIHandler::getInstance().sendRequest(addCmd);
- }
-
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_DELETECOMMAND_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteCommand request has been invoked");
- NsSmartDeviceLinkRPC::DeleteCommand_request* object = (NsSmartDeviceLinkRPC::DeleteCommand_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Application id " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPC::DeleteCommand_response* response = new NsSmartDeviceLinkRPC::DeleteCommand_response();
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::DeleteCommand_response* response = new NsSmartDeviceLinkRPC::DeleteCommand_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- CommandTypes cmdTypes = app->getCommandTypes(object->get_cmdID());
- if(cmdTypes.empty())
- {
- NsSmartDeviceLinkRPC::DeleteCommand_response* response = new NsSmartDeviceLinkRPC::DeleteCommand_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- const unsigned int& cmdId = object->get_cmdID();
- MessageChaining * chain = 0;
- for(CommandTypes::iterator it = cmdTypes.begin(); it != cmdTypes.end(); it++)
- {
- CommandType cmdType = *it;
- if(cmdType == CommandType::UI)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteCommand UI request has been invoked");
- NsRPC2Communication::UI::DeleteCommand* deleteCmd = new NsRPC2Communication::UI::DeleteCommand();
- deleteCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- deleteCmd->set_appId(app->getAppID());
- deleteCmd->set_cmdId(cmdId);
- app->removeCommand(cmdId, cmdType);
- app->incrementUnrespondedRequestCount(cmdId);
- app->removeMenuCommand(cmdId);
- chain = core->addChain(chain,
- sessionKey,
- object->getCorrelationID());
- core->mMessageChaining[deleteCmd->getId()] = chain;
- HMIHandler::getInstance().sendRequest(deleteCmd);
- }
- else if(cmdType == CommandType::VR)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteCommand VR request has been invoked");
- NsRPC2Communication::VR::DeleteCommand* deleteCmd = new NsRPC2Communication::VR::DeleteCommand();
- deleteCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- deleteCmd->set_cmdId(cmdId);
- deleteCmd->set_appId(app->getAppID());
- app->removeCommand(cmdId, cmdType);
- app->incrementUnrespondedRequestCount(cmdId);
- chain = core->addChain(chain,
- sessionKey,
- object->getCorrelationID());
- core->mMessageChaining[deleteCmd->getId()] = chain;
- HMIHandler::getInstance().sendRequest(deleteCmd);
- }
- }
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_ADDSUBMENU_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An AddSubmenu request has been invoked");
- NsSmartDeviceLinkRPC::AddSubMenu_request* object = (NsSmartDeviceLinkRPC::AddSubMenu_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPC::AddSubMenu_response* response = new NsSmartDeviceLinkRPC::AddSubMenu_response();
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::AddSubMenu_response* response = new NsSmartDeviceLinkRPC::AddSubMenu_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- const MenuValue* menu = app->findMenu(object->get_menuID());
- if (menu)
- {
- NsSmartDeviceLinkRPC::AddSubMenu_response* response = new NsSmartDeviceLinkRPC::AddSubMenu_response;
- response->set_success(false);
- response->setCorrelationID(object->getCorrelationID());
-
- if (menu->first == object->get_menuName())
- {
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::DUPLICATE_NAME);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_ID);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- NsRPC2Communication::UI::AddSubMenu* addSubMenu = new NsRPC2Communication::UI::AddSubMenu();
- addSubMenu->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[addSubMenu->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- addSubMenu->set_menuId(object->get_menuID());
- addSubMenu->set_menuName(object->get_menuName());
- if(object->get_position())
- {
- addSubMenu->set_position(*object->get_position());
- }
- addSubMenu->set_appId(app->getAppID());
- app->addMenu(object->get_menuID(), object->get_menuName(), object->get_position());
- HMIHandler::getInstance().sendRequest(addSubMenu);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_DELETESUBMENU_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteSubmenu request has been invoked");
- NsSmartDeviceLinkRPC::DeleteSubMenu_request* object = (NsSmartDeviceLinkRPC::DeleteSubMenu_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPC::DeleteSubMenu_response* response = new NsSmartDeviceLinkRPC::DeleteSubMenu_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::DeleteSubMenu_response* response = new NsSmartDeviceLinkRPC::DeleteSubMenu_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- const unsigned int& menuId = object->get_menuID();
- if(!app->findMenu(menuId))
- {
- LOG4CPLUS_WARN(mLogger, " menuId " << menuId
- << " hasn't been associated with the application " << app->getName() << " id " << app->getAppID() << " !");
- NsSmartDeviceLinkRPC::DeleteSubMenu_response* response = new NsSmartDeviceLinkRPC::DeleteSubMenu_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_ID);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::DeleteSubMenu* delSubMenu = new NsRPC2Communication::UI::DeleteSubMenu();
- delSubMenu->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[delSubMenu->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- delSubMenu->set_menuId(menuId);
- delSubMenu->set_appId(app->getAppID());
- HMIHandler::getInstance().sendRequest(delSubMenu);
- core->menuMapping[delSubMenu->getId()] = menuId;
- // app->removeMenu(menuId);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_CREATEINTERACTIONCHOICESET_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A CreateInteractionChoiceSet request has been invoked");
- NsSmartDeviceLinkRPC::CreateInteractionChoiceSet_request* object = (NsSmartDeviceLinkRPC::CreateInteractionChoiceSet_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPC::CreateInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPC::CreateInteractionChoiceSet_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::CreateInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPC::CreateInteractionChoiceSet_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::CreateInteractionChoiceSet* createInteractionChoiceSet = new NsRPC2Communication::UI::CreateInteractionChoiceSet();
- createInteractionChoiceSet->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[createInteractionChoiceSet->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- std::vector<NsSmartDeviceLinkRPC::Choice> chSetOrig = object->get_choiceSet();
- std::vector<NsSmartDeviceLinkRPCV2::Choice> chSetRes;
- for(int i = 0; i < chSetOrig.size(); ++i)
- {
- NsSmartDeviceLinkRPCV2::Choice choice;
- choice.set_choiceID(chSetOrig[i].get_choiceID());
- choice.set_menuName(chSetOrig[i].get_menuName());
- choice.set_vrCommands(chSetOrig[i].get_vrCommands());
- chSetRes.push_back(choice);
- }
- createInteractionChoiceSet->set_choiceSet(chSetRes);
- createInteractionChoiceSet->set_interactionChoiceSetID(object->get_interactionChoiceSetID());
- createInteractionChoiceSet->set_appId(app->getAppID());
- app->addChoiceSet(object->get_interactionChoiceSetID(), object->get_choiceSet());
- HMIHandler::getInstance().sendRequest(createInteractionChoiceSet);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_DELETEINTERACTIONCHOICESET_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteInteractionChoiceSet request has been invoked");
- NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_request* object = (NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_request*)mobileMsg;
-
- if (core->mPerformInteractionFlag == object->get_interactionChoiceSetID())
- {
- NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::IN_USE);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- const unsigned int& choiceSetId = object->get_interactionChoiceSetID();
- const ChoiceSetV1* choiceSetFound = app->findChoiceSet(choiceSetId);
- if(!choiceSetFound)
- {
- LOG4CPLUS_WARN(mLogger, " a choice set " << choiceSetId
- << " hasn't been registered within the application " << app->getName() << " id" << app->getAppID() << " !");
- NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_ID);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- NsRPC2Communication::UI::DeleteInteractionChoiceSet* deleteInteractionChoiceSet = new NsRPC2Communication::UI::DeleteInteractionChoiceSet();
- deleteInteractionChoiceSet->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[deleteInteractionChoiceSet->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- deleteInteractionChoiceSet->set_interactionChoiceSetID(object->get_interactionChoiceSetID());
- deleteInteractionChoiceSet->set_appId(app->getAppID());
- app->removeChoiceSet(object->get_interactionChoiceSetID());
- HMIHandler::getInstance().sendRequest(deleteInteractionChoiceSet);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_PERFORMINTERACTION_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A PerformInteraction request has been invoked");
- NsSmartDeviceLinkRPC::PerformInteraction_request* object = (NsSmartDeviceLinkRPC::PerformInteraction_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPC::PerformInteraction_response* response = new NsSmartDeviceLinkRPC::PerformInteraction_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL != app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName()
- << " with session key "
- << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::PerformInteraction_response* response = new NsSmartDeviceLinkRPC::PerformInteraction_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- const std::vector<unsigned int>& choiceSets = object->get_interactionChoiceSetIDList();
- for(std::vector<unsigned int>::const_iterator it = choiceSets.begin(); it != choiceSets.end(); it++)
- {
- const unsigned int& choiceSetId = *it;
- const ChoiceSetV1* choiceSetFound = app->findChoiceSet(choiceSetId);
- if(!choiceSetFound)
- {
- LOG4CPLUS_WARN(mLogger, " a choice set " << choiceSetId
- << " hasn't been registered within the application " << app->getName()
- << " id" << app->getAppID() << " !");
- NsSmartDeviceLinkRPC::PerformInteraction_response* response = new NsSmartDeviceLinkRPC::PerformInteraction_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
- }
- NsRPC2Communication::UI::PerformInteraction* performInteraction = new NsRPC2Communication::UI::PerformInteraction();
- performInteraction->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- performInteraction->set_appId(sessionKey);
- performInteraction->set_interactionChoiceSetIDList(choiceSets);
- core->mMessageChaining[performInteraction->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- if(object->get_helpPrompt())
- {
- std::vector<NsSmartDeviceLinkRPC::TTSChunk> chunkOrig = *object->get_helpPrompt();
- std::vector<NsSmartDeviceLinkRPCV2::TTSChunk> chunkRes;
- for( int i = 0; i < chunkOrig.size(); ++i )
- {
- NsSmartDeviceLinkRPCV2::TTSChunk chunk;
- chunk.set_text(chunkOrig[i].get_text());
- chunk.set_type(
- static_cast<NsSmartDeviceLinkRPCV2::SpeechCapabilities::SpeechCapabilitiesInternal>(
- chunkOrig[i].get_type().get()));
- chunkRes.push_back(chunk);
- }
- performInteraction->set_helpPrompt(chunkRes);
- }
-
- {
- std::vector<NsSmartDeviceLinkRPC::TTSChunk> chunkOrig = object->get_initialPrompt();
- std::vector<NsSmartDeviceLinkRPCV2::TTSChunk> chunkRes;
- for( int i = 0; i < chunkOrig.size(); ++i )
- {
- NsSmartDeviceLinkRPCV2::TTSChunk chunk;
- chunk.set_text(chunkOrig[i].get_text());
- chunk.set_type(
- static_cast<NsSmartDeviceLinkRPCV2::SpeechCapabilities::SpeechCapabilitiesInternal>(
- chunkOrig[i].get_type().get()));
- chunkRes.push_back(chunk);
- }
- performInteraction->set_initialPrompt(chunkRes);
- }
-
- performInteraction->set_initialText(object->get_initialText());
- performInteraction->set_interactionMode(
- static_cast<NsSmartDeviceLinkRPCV2::InteractionMode::InteractionModeInternal>(
- object->get_interactionMode().get()));
- if(object->get_timeout())
- {
- performInteraction->set_timeout(*object->get_timeout());
- }
- if(object->get_timeoutPrompt())
- {
- std::vector<NsSmartDeviceLinkRPC::TTSChunk> chunkOrig = *object->get_timeoutPrompt();
- std::vector<NsSmartDeviceLinkRPCV2::TTSChunk> chunkRes;
- for( int i = 0; i < chunkOrig.size(); ++i )
- {
- NsSmartDeviceLinkRPCV2::TTSChunk chunk;
- chunk.set_text(chunkOrig[i].get_text());
- chunk.set_type(
- static_cast<NsSmartDeviceLinkRPCV2::SpeechCapabilities::SpeechCapabilitiesInternal>(
- chunkOrig[i].get_type().get()));
- chunkRes.push_back(chunk);
- }
- performInteraction->set_timeoutPrompt(chunkRes);
- }
- HMIHandler::getInstance().sendRequest(performInteraction);
- core->mPerformInteractionFlag = choiceSets[0];
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_SETMEDIACLOCKTIMER_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A SetMediaClockTimer request has been invoked");
- NsSmartDeviceLinkRPC::SetMediaClockTimer_request* object = (NsSmartDeviceLinkRPC::SetMediaClockTimer_request*)mobileMsg;
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPC::SetMediaClockTimer_response* response = new NsSmartDeviceLinkRPC::SetMediaClockTimer_response();
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel()
- || !app->getIsMediaApplication() )
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPC::SetMediaClockTimer_response* response = new NsSmartDeviceLinkRPC::SetMediaClockTimer_response;
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::SetMediaClockTimer* setTimer = new NsRPC2Communication::UI::SetMediaClockTimer();
- setTimer->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- setTimer->set_appId(sessionKey);
-
- if(object->get_startTime())
- {
- NsSmartDeviceLinkRPCV2::StartTime to;
- to.set_hours(object->get_startTime()->get_hours());
- to.set_minutes(object->get_startTime()->get_minutes());
- to.set_seconds(object->get_startTime()->get_seconds());
- setTimer->set_startTime(to);
- }
- const NsSmartDeviceLinkRPC::UpdateMode& updateMode = object->get_updateMode();
- NsSmartDeviceLinkRPCV2::UpdateMode updateModeV2;
- updateModeV2.set((NsSmartDeviceLinkRPCV2::UpdateMode::UpdateModeInternal)updateMode.get());
- setTimer->set_updateMode(updateModeV2);
- HMIHandler::getInstance().sendRequest(setTimer);
-
- core->mMessageChaining[setTimer->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
-
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_ENCODEDSYNCPDATA_REQUEST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An EncodedSyncPData request has been invoked");
- NsSmartDeviceLinkRPC::EncodedSyncPData_request* object = (NsSmartDeviceLinkRPC::EncodedSyncPData_request*)mobileMsg;
- NsSmartDeviceLinkRPC::EncodedSyncPData_response* response = new NsSmartDeviceLinkRPC::EncodedSyncPData_response;
- response->setCorrelationID(object->getCorrelationID());
- Application_v1* app = (Application_v1*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- if(object->get_data())
- {
- Application* app = core->getItem(sessionKey);
- const std::string& name = app->getName();
- core->mSyncPManager.setPData(*object->get_data(), name, object->getMethodId());
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- }
- else
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- }
-
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_SHOW_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_SPEAK_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_SETGLOBALPROPERTIES_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_RESETGLOBALPROPERTIES_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_REGISTERAPPINTERFACE_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_SUBSCRIBEBUTTON_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_UNSUBSCRIBEBUTTON_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_ONAPPINTERFACEUNREGISTERED:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_ALERT_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_ADDCOMMAND_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_ADDSUBMENU_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_CREATEINTERACTIONCHOICESET_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_DELETECOMMAND_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_DELETEINTERACTIONCHOICESET_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_DELETESUBMENU_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_ENCODEDSYNCPDATA_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_GENERICRESPONSE_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_PERFORMINTERACTION_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_SETMEDIACLOCKTIMER_RESPONSE:
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_UNREGISTERAPPINTERFACE_RESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A " << mobileMsg->getMethodId() << " response or notification has been invoked");
- MobileHandler::getInstance().sendRPCMessage(mobileMsg, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPC::Marshaller::METHOD_INVALID:
- default:
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " An undefined or invalid RPC message " << mobileMsg->getMethodId() << " has been received!");
- NsSmartDeviceLinkRPC::GenericResponse_response* response = new NsSmartDeviceLinkRPC::GenericResponse_response();
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- response->setCorrelationID(mobileMsg->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- }
- }
- else if ( 2 == mobileMsg->getProtocolVersion() )
- {
- LOG4CPLUS_INFO_EXT(mLogger,"Received message of version 2.");
- switch(mobileMsg->getMethodId())
- {
- case NsSmartDeviceLinkRPCV2::FunctionID::RegisterAppInterfaceID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Message id is NsSmartDeviceLinkRPCV2::FunctionID::RegisterAppInterfaceID");
- NsSmartDeviceLinkRPCV2::RegisterAppInterface_request * object = (NsSmartDeviceLinkRPCV2::RegisterAppInterface_request*)mobileMsg;
- NsSmartDeviceLinkRPCV2::RegisterAppInterface_response* response = new NsSmartDeviceLinkRPCV2::RegisterAppInterface_response();
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::RegisterAppInterfaceID);
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- response->setCorrelationID(object->getCorrelationID());
-
- const std::string& appName = object->get_appName();
-
- if(core->getItem(sessionKey))
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Application " << appName << " is already registered!");
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_REGISTERED_ALREADY);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- Application_v2* app = (Application_v2*)core->registerApplication( object, sessionKey );
-
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Application " << appName << " hasn't been registered!");
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- response->set_buttonCapabilities(core->mButtonCapabilitiesV2.get());
- response->set_displayCapabilities(core->mDisplayCapabilitiesV2);
- response->set_hmiZoneCapabilities(core->mHmiZoneCapabilitiesV2.get());
-
- response->set_hmiDisplayLanguage(core->mUiLanguageV2);
- response->set_language(core->mVrLanguageV2);
- if ( object->get_languageDesired().get() != core->mVrLanguageV2.get()
- || object->get_hmiDisplayLanguageDesired().get() != core->mUiLanguageV2.get())
- {
- LOG4CPLUS_WARN(mLogger, "Wrong language on registering application " << appName);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::WRONG_LANGUAGE);
- }
- response->set_speechCapabilities(core->mSpeechCapabilitiesV2.get());
- response->set_vrCapabilities(core->mVrCapabilitiesV2.get());
- response->set_syncMsgVersion(app->getSyncMsgVersion());
- response->set_softButtonCapabilities(core->mSoftButtonCapabilities.get());
- response->set_presetBankCapabilities(core->mPresetBankCapabilities);
- response->set_vehicleType(core->mVehicleType);
-
- LOG4CPLUS_INFO_EXT(mLogger, " A RegisterAppInterface response for the app " << app->getName() << " gets sent to a mobile side... ");
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
-
- NsRPC2Communication::BasicCommunication::OnAppRegistered* appRegistered = new NsRPC2Communication::BasicCommunication::OnAppRegistered();
- NsSmartDeviceLinkRPCV2::HMIApplication hmiApp;
- hmiApp.set_appName(app->getName());
- hmiApp.set_appId(app->getAppID());
- hmiApp.set_isMediaApplication(app->getIsMediaApplication());
-
- std::map<int,DeviceStorage>::const_iterator it = core->mDevices.find( app->getDeviceHandle() );
- std::string currentDeviceName = "";
- if ( core->mDevices.end() != it )
- {
- currentDeviceName = it->second.getUserFriendlyName();
- }
-
- hmiApp.set_deviceName(currentDeviceName);
- hmiApp.set_hmiDisplayLanguageDesired(app->getHMIDisplayLanguageDesired());
- hmiApp.set_languageDesired(app->getLanguageDesired());
-
- if (!app->getAppType().empty())
- {
- hmiApp.set_appType(app->getAppType());
- }
-
- if (!app->getTtsName().empty())
- {
- hmiApp.set_ttsName(app->getTtsName());
- }
- appRegistered->set_application(hmiApp);
-
- HMIHandler::getInstance().sendNotification(appRegistered);
-
- NsSmartDeviceLinkRPCV2::OnHMIStatus* status = new NsSmartDeviceLinkRPCV2::OnHMIStatus();
- status->set_hmiLevel(app->getApplicationHMIStatusLevel());
- status->set_audioStreamingState(app->getApplicationAudioStreamingState());
- status->set_systemContext(app->getSystemContext());
- status->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnHMIStatusID);
- status->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- MobileHandler::getInstance().sendRPCMessage(status, sessionKey);
-
- LOG4CPLUS_INFO_EXT(mLogger, " A RegisterAppInterface request was successful: registered an app " << app->getName());
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::UnregisterAppInterfaceID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An UnregisterAppInterface request has been invoked");
- NsSmartDeviceLinkRPCV2::UnregisterAppInterface_request * object = (NsSmartDeviceLinkRPCV2::UnregisterAppInterface_request*)mobileMsg;
- Application* app = core->getItem(sessionKey);
- NsSmartDeviceLinkRPCV2::UnregisterAppInterface_response* response = new NsSmartDeviceLinkRPCV2::UnregisterAppInterface_response();
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::UnregisterAppInterfaceID);
- response->setCorrelationID(object->getCorrelationID());
-
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
-
- /*NsSmartDeviceLinkRPCV2::OnAppInterfaceUnregistered* msgUnregistered = new NsSmartDeviceLinkRPCV2::OnAppInterfaceUnregistered();
- msgUnregistered->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- msgUnregistered->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnAppInterfaceUnregisteredID);
- msgUnregistered->set_reason(NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason(NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason::USER_EXIT));
- MobileHandler::getInstance().sendRPCMessage(msgUnregistered, sessionKey);
-
- std::string appName = app->getName();
- // core->removeAppFromHmi(app, sessionKey);
-
- NsRPC2Communication::BasicCommunication::OnAppUnregistered* appUnregistered = new NsRPC2Communication::BasicCommunication::OnAppUnregistered();
- appUnregistered->set_appName(appName);
- appUnregistered->set_appId(app->getAppID());
- appUnregistered->set_reason(NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason::USER_EXIT);
- HMIHandler::getInstance().sendNotification(appUnregistered);*/
- LOG4CPLUS_INFO_EXT(mLogger, " An application " << app->getName() << " has been unregistered successfully ");
- core->unregisterApplication( sessionKey );
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::SubscribeButtonID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A SubscribeButton request has been invoked");
- NsSmartDeviceLinkRPCV2::SubscribeButton_request * object = (NsSmartDeviceLinkRPCV2::SubscribeButton_request*)mobileMsg;
- NsSmartDeviceLinkRPCV2::SubscribeButton_response* response = new NsSmartDeviceLinkRPCV2::SubscribeButton_response();
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SubscribeButtonID);
- response->setCorrelationID(object->getCorrelationID());
-
- /*RegistryItem* item = AppMgrRegistry::getInstance().getItem(sessionKey);
- if(!item)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }*/
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- if (core->mButtonsMapping.exist(object->get_buttonName(), app))
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::IGNORED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- core->mButtonsMapping.addButton( object->get_buttonName(), app );
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::UnsubscribeButtonID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An UnsubscribeButton request has been invoked");
- NsSmartDeviceLinkRPCV2::UnsubscribeButton_request * object = (NsSmartDeviceLinkRPCV2::UnsubscribeButton_request*)mobileMsg;
- NsSmartDeviceLinkRPCV2::UnsubscribeButton_response* response = new NsSmartDeviceLinkRPCV2::UnsubscribeButton_response();
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::UnsubscribeButtonID);
- response->setCorrelationID(object->getCorrelationID());
-
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- if (!core->mButtonsMapping.exist(object->get_buttonName(), app))
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::IGNORED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- core->mButtonsMapping.removeButton( object->get_buttonName(), app );
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::SetMediaClockTimerID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A SetMediaClockTimer request has been invoked");
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::SetMediaClockTimer_response* response = new NsSmartDeviceLinkRPCV2::SetMediaClockTimer_response();
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SetMediaClockTimerID);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(mobileMsg->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel()
- || !app->getIsMediaApplication())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key "
- << sessionKey << " has not been activated yet or not media!" );
- NsSmartDeviceLinkRPCV2::SetMediaClockTimer_response* response = new NsSmartDeviceLinkRPCV2::SetMediaClockTimer_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SetMediaClockTimerID);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(mobileMsg->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::SetMediaClockTimer* setTimer = new NsRPC2Communication::UI::SetMediaClockTimer();
- setTimer->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- setTimer->set_appId(sessionKey);
-
- NsSmartDeviceLinkRPCV2::SetMediaClockTimer_request* object = (NsSmartDeviceLinkRPCV2::SetMediaClockTimer_request*)mobileMsg;
- if(object->get_startTime())
- {
- setTimer->set_startTime(*object->get_startTime());
- }
- core->mMessageChaining[setTimer->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- setTimer->set_updateMode(object->get_updateMode());
- HMIHandler::getInstance().sendRequest(setTimer);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::PutFileID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An PutFile request has been invoked");
- NsSmartDeviceLinkRPCV2::PutFile_request* object = (NsSmartDeviceLinkRPCV2::PutFile_request*)mobileMsg;
- NsSmartDeviceLinkRPCV2::PutFile_response* response = new NsSmartDeviceLinkRPCV2::PutFile_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::PutFileID);
- response->setCorrelationID(object->getCorrelationID());
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- unsigned long int freeSpace = WorkWithOS::getAvailableSpace();
- const std::string& syncFileName = object->get_syncFileName();
- const NsSmartDeviceLinkRPCV2::FileType& fileType = object->get_fileType();
- bool persistentFile = object->get_persistentFile();
- const std::vector<unsigned char>* fileData = object->getBinaryData();
-
- bool isSyncFileName = !syncFileName.empty();
- bool isFileData = fileData && !fileData->empty();
- if (isSyncFileName && isFileData)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Trying to save file of size " << fileData->size());
- bool flag = false;
- if (freeSpace > fileData->size())
- {
- std::string relativeFilePath = WorkWithOS::createDirectory(app->getName());
-
- relativeFilePath += "/";
- relativeFilePath += syncFileName;
-
- LOG4CPLUS_INFO(mLogger, "Relative path to file " << relativeFilePath);
-
- std::string fullFilePath = WorkWithOS::getFullPath( relativeFilePath );
-
- LOG4CPLUS_INFO(mLogger, "Full path to file " << fullFilePath);
-
- if (WorkWithOS::checkIfFileExists(fullFilePath))
- {
- WorkWithOS::deleteFile(fullFilePath);
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, "Saving to file " << fullFilePath);
- flag = WorkWithOS::createFileAndWrite(fullFilePath, *fileData);
- if (persistentFile)
- {
- app->addPersistentFile(syncFileName);
- }
- }
-
- if (flag)
- {
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- response->set_spaceAvailable(freeSpace);
- }
- else
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR);
- response->set_spaceAvailable(freeSpace);
- }
- }
- else
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- response->set_spaceAvailable(freeSpace);
- }
-
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::DeleteFileID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An DeleteFile request has been invoked");
- NsSmartDeviceLinkRPCV2::DeleteFile_request* object = (NsSmartDeviceLinkRPCV2::DeleteFile_request*)mobileMsg;
- NsSmartDeviceLinkRPCV2::DeleteFile_response* response = new NsSmartDeviceLinkRPCV2::DeleteFile_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteFileID);
- response->setCorrelationID(object->getCorrelationID());
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- unsigned long int freeSpace = WorkWithOS::getAvailableSpace();
- const std::string& syncFileName = object->get_syncFileName();
- if(!syncFileName.empty())
- {
- std::string relativeFilePath = app->getName();
- relativeFilePath += "/";
- relativeFilePath += syncFileName;
-
- std::string fullFilePath = WorkWithOS::getFullPath( relativeFilePath );
-
- LOG4CPLUS_INFO(mLogger, "Trying to remove file " << fullFilePath);
-
- if ( WorkWithOS::deleteFile(fullFilePath) )
- {
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- response->set_spaceAvailable(freeSpace);
- app->removePersistentFile(syncFileName);
- }
- else
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR);
- response->set_spaceAvailable(freeSpace);
- }
- }
- else
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- response->set_spaceAvailable(freeSpace);
- }
-
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::ListFilesID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An ListFiles request has been invoked");
- NsSmartDeviceLinkRPCV2::ListFiles_request* object = (NsSmartDeviceLinkRPCV2::ListFiles_request*)mobileMsg;
- NsSmartDeviceLinkRPCV2::ListFiles_response* response = new NsSmartDeviceLinkRPCV2::ListFiles_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ListFilesID);
- response->setCorrelationID(object->getCorrelationID());
- unsigned long int freeSpace = WorkWithOS::getAvailableSpace();
-
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- bool successFlag = false;
-
- if ( WorkWithOS::checkIfDirectoryExists(app->getName()))
- {
- const std::string & fullDirectoryPath = WorkWithOS::getFullPath(app->getName());
- std::vector<std::string> listFiles = WorkWithOS::listFilesInDirectory( fullDirectoryPath );
- if (!listFiles.empty())
- {
- successFlag = true;
- response->set_filenames(listFiles);
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- response->set_spaceAvailable(freeSpace);
- }
- }
-
- if ( !successFlag )
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR);
- response->set_spaceAvailable(freeSpace);
- }
-
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::SliderID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A Slider request has been invoked");
- NsSmartDeviceLinkRPCV2::Slider_request* request = (NsSmartDeviceLinkRPCV2::Slider_request*)mobileMsg;
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::Slider_response* response = new NsSmartDeviceLinkRPCV2::Slider_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SliderID);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL != app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::Slider_response* response = new NsSmartDeviceLinkRPCV2::Slider_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SliderID);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::Slider* slider = new NsRPC2Communication::UI::Slider();
-
- slider->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[slider->getId()] = new MessageChaining(
- sessionKey,
- request->getCorrelationID());
-
- slider->set_numTicks(request->get_numTicks());
-
- slider->set_sliderHeader(request->get_sliderHeader());
-
- if (request->get_sliderFooter())
- {
- slider->set_sliderFooter(*(request->get_sliderFooter()));
- }
-
- slider->set_position(request->get_position());
- slider->set_timeout(request->get_timeout());
- slider->set_appId(sessionKey);
- HMIHandler::getInstance().sendRequest(slider);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::SetAppIconID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A SetAppIcon request has been invoked");
- NsSmartDeviceLinkRPCV2::SetAppIcon_request* request = static_cast<NsSmartDeviceLinkRPCV2::SetAppIcon_request*>(mobileMsg);
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::SetAppIcon_response* response = new NsSmartDeviceLinkRPCV2::SetAppIcon_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SetAppIconID);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::SetAppIcon_response* response = new NsSmartDeviceLinkRPCV2::SetAppIcon_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SetAppIconID);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- NsRPC2Communication::UI::SetAppIcon* setAppIcon = new NsRPC2Communication::UI::SetAppIcon();
- setAppIcon->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
-
- char currentAppPath[FILENAME_MAX];
- char fullPathToSyncFileName[FILENAME_MAX];
-
- memset(currentAppPath, 0, FILENAME_MAX);
- memset(fullPathToSyncFileName, 0, FILENAME_MAX);
-
- getcwd(currentAppPath, FILENAME_MAX);
- const std::string& syncFileName = request->get_syncFileName();
- // TODO(AK): We look for icon in current app dir.
- // TODO(PV): and that is correct, why todo?
- snprintf(fullPathToSyncFileName, FILENAME_MAX - 1, "%s/%s/%s"
- , currentAppPath, app->getName().c_str(), syncFileName.c_str());
-
- LOG4CPLUS_INFO_EXT(mLogger, "Full path to sync file name: " << fullPathToSyncFileName);
-
- setAppIcon->set_syncFileName(fullPathToSyncFileName);
- setAppIcon->set_appId(app->getAppID());
-
- core->mMessageChaining[setAppIcon->getId()] = new MessageChaining(
- sessionKey,
- request->getCorrelationID());
- HMIHandler::getInstance().sendRequest(setAppIcon);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::ScrollableMessageID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A ScrollableMessageID request has been invoked");
- NsSmartDeviceLinkRPCV2::ScrollableMessage_request* request = static_cast<NsSmartDeviceLinkRPCV2::ScrollableMessage_request*>(mobileMsg);
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::ScrollableMessage_response* response = new NsSmartDeviceLinkRPCV2::ScrollableMessage_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ScrollableMessageID);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL != app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::ScrollableMessage_response* response = new NsSmartDeviceLinkRPCV2::ScrollableMessage_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ScrollableMessageID);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- NsRPC2Communication::UI::ScrollableMessage* scrollableMessage = new NsRPC2Communication::UI::ScrollableMessage();
- if (!scrollableMessage)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Can't create scrollable message object.");
- return;
- }
- scrollableMessage->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- scrollableMessage->set_appId(app->getAppID());
- scrollableMessage->set_scrollableMessageBody(request->get_scrollableMessageBody());
- if (request->get_timeout())
- {
- scrollableMessage->set_timeout(*(request->get_timeout()));
- }
- if ( request->get_softButtons() )
- {
- scrollableMessage->set_softButtons(*(request->get_softButtons()));
- }
- core->mMessageChaining[scrollableMessage->getId()] = new MessageChaining(
- sessionKey,
- request->getCorrelationID());
- HMIHandler::getInstance().sendRequest(scrollableMessage);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::EncodedSyncPDataID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An EncodedSyncPData request has been invoked");
- NsSmartDeviceLinkRPCV2::EncodedSyncPData_request* object = (NsSmartDeviceLinkRPCV2::EncodedSyncPData_request*)mobileMsg;
- NsSmartDeviceLinkRPCV2::EncodedSyncPData_response* response = new NsSmartDeviceLinkRPCV2::EncodedSyncPData_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::EncodedSyncPDataID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setCorrelationID(object->getCorrelationID());
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- response->set_success(false);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::EncodedSyncPDataID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- response->set_success(false);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::EncodedSyncPDataID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- const std::string& name = app->getName();
- core->mSyncPManager.setPData(object->get_data(), name, object->getMethodId());
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
-
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::SetGlobalPropertiesID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A SetGlobalProperties request has been invoked");
- NsSmartDeviceLinkRPCV2::SetGlobalProperties_request* object = (NsSmartDeviceLinkRPCV2::SetGlobalProperties_request*)mobileMsg;
- NsSmartDeviceLinkRPCV2::SetGlobalProperties_response * mobileResponse = new NsSmartDeviceLinkRPCV2::SetGlobalProperties_response;
- mobileResponse->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SetGlobalPropertiesID);
- mobileResponse->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- mobileResponse->setCorrelationID(object->getCorrelationID());
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- mobileResponse->set_success(false);
- mobileResponse->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(mobileResponse, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- mobileResponse->set_success(false);
- mobileResponse->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(mobileResponse, sessionKey);
- break;
- }
-
- if ((object->get_vrHelp() && object->get_vrHelpTitle()) ||
- (!object->get_vrHelp() && !object->get_vrHelpTitle()))
- {
- NsRPC2Communication::UI::SetGlobalProperties* setGPRPC2Request = new NsRPC2Communication::UI::SetGlobalProperties();
- setGPRPC2Request->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[setGPRPC2Request->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- if(object->get_helpPrompt())
- {
- setGPRPC2Request->set_helpPrompt(*object->get_helpPrompt());
- }
-
- if(object->get_timeoutPrompt())
- {
- setGPRPC2Request->set_timeoutPrompt(*object->get_timeoutPrompt());
- }
-
- if(object->get_vrHelp())
- {
- setGPRPC2Request->set_vrHelp(*object->get_vrHelp());
- }
- if(object->get_vrHelpTitle())
- {
- setGPRPC2Request->set_vrHelpTitle(*object->get_vrHelpTitle());
- }
-
- setGPRPC2Request->set_appId(sessionKey);
- HMIHandler::getInstance().sendRequest(setGPRPC2Request);
- }
- else
- {
- mobileResponse->set_success(false);
- mobileResponse->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- MobileHandler::getInstance().sendRPCMessage(mobileResponse, sessionKey);
- }
-
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::ResetGlobalPropertiesID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A ResetGlobalProperties request has been invoked");
- NsSmartDeviceLinkRPCV2::ResetGlobalProperties_request* object = (NsSmartDeviceLinkRPCV2::ResetGlobalProperties_request*)mobileMsg;
- NsSmartDeviceLinkRPCV2::ResetGlobalProperties_response * mobileResponse = new NsSmartDeviceLinkRPCV2::ResetGlobalProperties_response;
- mobileResponse->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ResetGlobalPropertiesID);
- mobileResponse->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- mobileResponse->setCorrelationID(object->getCorrelationID());
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- mobileResponse->set_success(false);
- mobileResponse->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(mobileResponse, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- mobileResponse->set_success(false);
- mobileResponse->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(mobileResponse, sessionKey);
- break;
- }
- NsRPC2Communication::UI::ResetGlobalProperties* resetGPRPC2Request = new NsRPC2Communication::UI::ResetGlobalProperties();
- resetGPRPC2Request->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[resetGPRPC2Request->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- resetGPRPC2Request->set_properties(object->get_properties());
- resetGPRPC2Request->set_appId(sessionKey);
- HMIHandler::getInstance().sendRequest(resetGPRPC2Request);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::CreateInteractionChoiceSetID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A CreateInteractionChoiceSet request has been invoked");
- NsSmartDeviceLinkRPCV2::CreateInteractionChoiceSet_request* object = (NsSmartDeviceLinkRPCV2::CreateInteractionChoiceSet_request*)mobileMsg;
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPCV2::CreateInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPCV2::CreateInteractionChoiceSet_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::CreateInteractionChoiceSetID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::CreateInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPCV2::CreateInteractionChoiceSet_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::CreateInteractionChoiceSetID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::CreateInteractionChoiceSet* createInteractionChoiceSet = new NsRPC2Communication::UI::CreateInteractionChoiceSet();
- createInteractionChoiceSet->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[createInteractionChoiceSet->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
-
- createInteractionChoiceSet->set_choiceSet(object->get_choiceSet());
- createInteractionChoiceSet->set_interactionChoiceSetID(object->get_interactionChoiceSetID());
- createInteractionChoiceSet->set_appId(app->getAppID());
- app->addChoiceSet(object->get_interactionChoiceSetID(), object->get_choiceSet());
- HMIHandler::getInstance().sendRequest(createInteractionChoiceSet);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::DeleteInteractionChoiceSetID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteInteractionChoiceSet request has been invoked");
- NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_request* object = (NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_request*)mobileMsg;
-
- if (core->mPerformInteractionFlag == object->get_interactionChoiceSetID())
- {
- NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteInteractionChoiceSetID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::IN_USE);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteInteractionChoiceSetID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteInteractionChoiceSetID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- const unsigned int& choiceSetId = object->get_interactionChoiceSetID();
- const ChoiceSetV2* choiceSetFound = app->findChoiceSet(choiceSetId);
- if(!choiceSetFound)
- {
- LOG4CPLUS_WARN(mLogger, " a choice set " << choiceSetId
- << " hasn't been registered within the application " << app->getName() << " id" << app->getAppID() << " !");
- NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteInteractionChoiceSetID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_ID);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- NsRPC2Communication::UI::DeleteInteractionChoiceSet* deleteInteractionChoiceSet = new NsRPC2Communication::UI::DeleteInteractionChoiceSet();
- deleteInteractionChoiceSet->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[deleteInteractionChoiceSet->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- deleteInteractionChoiceSet->set_interactionChoiceSetID(object->get_interactionChoiceSetID());
- deleteInteractionChoiceSet->set_appId(app->getAppID());
- app->removeChoiceSet(object->get_interactionChoiceSetID());
- HMIHandler::getInstance().sendRequest(deleteInteractionChoiceSet);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::PerformInteractionID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A PerformInteraction request has been invoked");
- NsSmartDeviceLinkRPCV2::PerformInteraction_request* object = (NsSmartDeviceLinkRPCV2::PerformInteraction_request*)mobileMsg;
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPCV2::PerformInteraction_response* response = new NsSmartDeviceLinkRPCV2::PerformInteraction_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::PerformInteractionID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL != app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::PerformInteraction_response* response = new NsSmartDeviceLinkRPCV2::PerformInteraction_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::PerformInteractionID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- const std::vector<unsigned int>& choiceSets = object->get_interactionChoiceSetIDList();
- for(std::vector<unsigned int>::const_iterator it = choiceSets.begin(); it != choiceSets.end(); it++)
- {
- const unsigned int& choiceSetId = *it;
- const ChoiceSetV2* choiceSetFound = app->findChoiceSet(choiceSetId);
- if(!choiceSetFound)
- {
- LOG4CPLUS_WARN(mLogger, " a choice set " << choiceSetId
- << " hasn't been registered within the application " << app->getName() << " id" << app->getAppID() << " !");
- NsSmartDeviceLinkRPCV2::PerformInteraction_response* response = new NsSmartDeviceLinkRPCV2::PerformInteraction_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::PerformInteractionID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
- }
- NsRPC2Communication::UI::PerformInteraction* performInteraction = new NsRPC2Communication::UI::PerformInteraction();
- performInteraction->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[performInteraction->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- performInteraction->set_initialPrompt(object->get_initialPrompt());
- performInteraction->set_initialText(object->get_initialText());
- performInteraction->set_interactionChoiceSetIDList(choiceSets);
- performInteraction->set_interactionMode(object->get_interactionMode());
- if(object->get_helpPrompt())
- {
- performInteraction->set_helpPrompt(*object->get_helpPrompt());
- }
- if(object->get_timeout())
- {
- performInteraction->set_timeout(*object->get_timeout());
- }
- if(object->get_timeoutPrompt())
- {
- performInteraction->set_timeoutPrompt(*object->get_timeoutPrompt());
- }
- performInteraction->set_appId(sessionKey);
- if(object->get_vrHelp())
- {
- performInteraction->set_vrHelp(*object->get_vrHelp());
- }
- HMIHandler::getInstance().sendRequest(performInteraction);
- core->mPerformInteractionFlag = choiceSets[0];
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::AlertID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An Alert request has been invoked");
- NsSmartDeviceLinkRPCV2::Alert_request* object = (NsSmartDeviceLinkRPCV2::Alert_request*)mobileMsg;
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::Alert_response* response = new NsSmartDeviceLinkRPCV2::Alert_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::AlertID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::Alert_response* response = new NsSmartDeviceLinkRPCV2::Alert_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::AlertID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::Alert* alert = new NsRPC2Communication::UI::Alert();
- alert->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[alert->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- if(object->get_alertText1())
- {
- alert->set_AlertText1(*object->get_alertText1());
- }
- if(object->get_alertText2())
- {
- alert->set_AlertText2(*object->get_alertText2());
- }
- if(object->get_alertText3())
- {
- alert->set_AlertText3(*object->get_alertText3());
- }
- if(object->get_duration())
- {
- alert->set_duration(*object->get_duration());
- }
- if(object->get_playTone())
- {
- alert->set_playTone(*object->get_playTone());
- }
- if(object->get_ttsChunks())
- {
- alert->set_ttsChunks(*object->get_ttsChunks());
- }
- if(object->get_softButtons())
- {
- alert->set_softButtons(*object->get_softButtons());
- }
- alert->set_appId(sessionKey);
- HMIHandler::getInstance().sendRequest(alert);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::ShowID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A Show request has been invoked");
- LOG4CPLUS_INFO_EXT(mLogger, "message " << mobileMsg->getMethodId() );
- NsSmartDeviceLinkRPCV2::Show_request* object = (NsSmartDeviceLinkRPCV2::Show_request*)mobileMsg;
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::Show_response* response = new NsSmartDeviceLinkRPCV2::Show_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ShowID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::Show_response* response = new NsSmartDeviceLinkRPCV2::Show_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ShowID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::Show* showRPC2Request = new NsRPC2Communication::UI::Show();
- showRPC2Request->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- LOG4CPLUS_INFO_EXT(mLogger, "showrpc2request created");
- if(object->get_mainField1())
- {
- showRPC2Request->set_mainField1(*object->get_mainField1());
- }
- if(object->get_mainField2())
- {
- showRPC2Request->set_mainField2(*object->get_mainField2());
- }
- if(object->get_mainField3())
- {
- showRPC2Request->set_mainField3(*object->get_mainField3());
- }
- if(object->get_mainField4())
- {
- showRPC2Request->set_mainField4(*object->get_mainField4());
- }
- if(object->get_mediaClock())
- {
- showRPC2Request->set_mediaClock(*object->get_mediaClock());
- }
- if(object->get_mediaTrack())
- {
- showRPC2Request->set_mediaTrack(*object->get_mediaTrack());
- }
- if(object->get_statusBar())
- {
- showRPC2Request->set_statusBar(*object->get_statusBar());
- }
- if(object->get_graphic())
- {
- showRPC2Request->set_graphic(*object->get_graphic());
- }
- if(object->get_softButtons())
- {
- showRPC2Request->set_softButtons(*object->get_softButtons());
- }
- if(object->get_customPresets())
- {
- showRPC2Request->set_customPresets(*object->get_customPresets());
- }
- if(object->get_alignment())
- {
- showRPC2Request->set_alignment(*object->get_alignment());
- }
- showRPC2Request->set_appId(sessionKey);
- LOG4CPLUS_INFO_EXT(mLogger, "Show request almost handled" );
- core->mMessageChaining[showRPC2Request->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- HMIHandler::getInstance().sendRequest(showRPC2Request);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::SpeakID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A Speak request has been invoked");
- NsSmartDeviceLinkRPCV2::Speak_request* object = (NsSmartDeviceLinkRPCV2::Speak_request*)mobileMsg;
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::Speak_response* response = new NsSmartDeviceLinkRPCV2::Speak_response();
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SpeakID);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel()
- || NsSmartDeviceLinkRPCV2::HMILevel::HMI_BACKGROUND == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::Speak_response* response = new NsSmartDeviceLinkRPCV2::Speak_response;
- response->set_success(false);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SpeakID);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::TTS::Speak* speakRPC2Request = new NsRPC2Communication::TTS::Speak();
- speakRPC2Request->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- speakRPC2Request->set_ttsChunks(object->get_ttsChunks());
- speakRPC2Request->set_appId(sessionKey);
- core->mMessageChaining[speakRPC2Request->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- HMIHandler::getInstance().sendRequest(speakRPC2Request);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::AddCommandID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An AddCommand request has been invoked");
- NsSmartDeviceLinkRPCV2::AddCommand_request* object = (NsSmartDeviceLinkRPCV2::AddCommand_request*)mobileMsg;
-
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if (!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPCV2::AddCommand_response* response = new NsSmartDeviceLinkRPCV2::AddCommand_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::AddCommandID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if (NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key "
- << sessionKey << " has not been activated yet!");
- NsSmartDeviceLinkRPCV2::AddCommand_response* response = new NsSmartDeviceLinkRPCV2::AddCommand_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::AddCommandID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- const int cmdId = object->get_cmdID();
-
- LOG4CPLUS_INFO_EXT(mLogger, " An AddCommand UI request has been invoked");
- NsRPC2Communication::UI::AddCommand* addCmd = new NsRPC2Communication::UI::AddCommand();
- addCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- addCmd->set_cmdId(cmdId);
- addCmd->set_appId(app->getAppID());
-
- MessageChaining* chain = NULL;
- chain = core->addChain(chain, sessionKey, object->getCorrelationID());
- core->mMessageChaining[addCmd->getId()] = chain;
-
- if (object->get_menuParams())
- {
- addCmd->set_menuParams(*object->get_menuParams());
- if (object->get_menuParams()->get_parentID())
- {
- const unsigned int& menuId = *object->get_menuParams()->get_parentID();
- app->addMenuCommand(cmdId, menuId);
- }
- }
-
- if (object->get_cmdIcon())
- {
- NsSmartDeviceLinkRPCV2::Image* cmdIcon = const_cast<NsSmartDeviceLinkRPCV2::Image*>(object->get_cmdIcon());
-
- char currentAppPath[FILENAME_MAX];
- char fullPathToIcon[FILENAME_MAX];
-
- memset(currentAppPath, 0, FILENAME_MAX);
- memset(fullPathToIcon, 0, FILENAME_MAX);
-
- getcwd(currentAppPath, FILENAME_MAX);
- snprintf(fullPathToIcon, FILENAME_MAX - 1, "%s/%s/%s"
- , currentAppPath, app->getName().c_str(), cmdIcon->get_value().c_str());
-
- LOG4CPLUS_INFO_EXT(mLogger, "Full path to sync file name: " << fullPathToIcon);
-
- cmdIcon->set_value(fullPathToIcon);
- addCmd->set_cmdIcon(*cmdIcon);
- }
-
- CommandType cmdType = CommandType::UI;
- CommandParams params;
- params.menuParamsV2 = object->get_menuParams();
-
- app->addCommand(cmdId, cmdType, params);
- app->incrementUnrespondedRequestCount(cmdId);
- HMIHandler::getInstance().sendRequest(addCmd);
-
- if (object->get_vrCommands())
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An AddCommand VR request has been invoked");
- NsRPC2Communication::VR::AddCommand* addCmd = new NsRPC2Communication::VR::AddCommand();
- addCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- addCmd->set_vrCommands(*object->get_vrCommands());
- addCmd->set_cmdId(cmdId);
- addCmd->set_appId(app->getAppID());
-
- CommandType cmdType = CommandType::VR;
- CommandParams params;
- params.vrCommands = object->get_vrCommands();
-
- app->addCommand(cmdId, cmdType, params);
- app->incrementUnrespondedRequestCount(cmdId);
-
- chain = core->addChain(chain, sessionKey, object->getCorrelationID());
- core->mMessageChaining[addCmd->getId()] = chain;
- HMIHandler::getInstance().sendRequest(addCmd);
- }
-
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::DeleteCommandID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteCommand request has been invoked");
- NsSmartDeviceLinkRPCV2::DeleteCommand_request* object = (NsSmartDeviceLinkRPCV2::DeleteCommand_request*)mobileMsg;
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPCV2::DeleteCommand_response* response = new NsSmartDeviceLinkRPCV2::DeleteCommand_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteCommandID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::DeleteCommand_response* response = new NsSmartDeviceLinkRPCV2::DeleteCommand_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteCommandID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- CommandTypes cmdTypes = app->getCommandTypes(object->get_cmdID());
- if(cmdTypes.empty())
- {
- NsSmartDeviceLinkRPCV2::DeleteCommand_response* response = new NsSmartDeviceLinkRPCV2::DeleteCommand_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteCommandID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- const unsigned int& cmdId = object->get_cmdID();
- MessageChaining * chain = 0;
- for(CommandTypes::iterator it = cmdTypes.begin(); it != cmdTypes.end(); it++)
- {
- CommandType cmdType = *it;
- if(cmdType == CommandType::UI)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteCommand UI request has been invoked");
- NsRPC2Communication::UI::DeleteCommand* deleteCmd = new NsRPC2Communication::UI::DeleteCommand();
- deleteCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- deleteCmd->set_appId(app->getAppID());
- deleteCmd->set_cmdId(cmdId);
- app->removeCommand(cmdId, cmdType);
- app->incrementUnrespondedRequestCount(cmdId);
- app->removeMenuCommand(cmdId);
- chain = core->addChain(chain,
- sessionKey,
- object->getCorrelationID());
- core->mMessageChaining[deleteCmd->getId()] = chain;
- HMIHandler::getInstance().sendRequest(deleteCmd);
- }
- else if(cmdType == CommandType::VR)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteCommand VR request has been invoked");
- NsRPC2Communication::VR::DeleteCommand* deleteCmd = new NsRPC2Communication::VR::DeleteCommand();
- deleteCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- deleteCmd->set_cmdId(cmdId);
- deleteCmd->set_appId(app->getAppID());
- app->removeCommand(cmdId, cmdType);
- app->incrementUnrespondedRequestCount(cmdId);
- chain = core->addChain(chain,
- sessionKey,
- object->getCorrelationID());
- core->mMessageChaining[deleteCmd->getId()] = chain;
- HMIHandler::getInstance().sendRequest(deleteCmd);
- }
- }
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::AddSubMenuID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An AddSubmenu request has been invoked");
- NsSmartDeviceLinkRPCV2::AddSubMenu_request* object = (NsSmartDeviceLinkRPCV2::AddSubMenu_request*)mobileMsg;
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPCV2::AddSubMenu_response* response = new NsSmartDeviceLinkRPCV2::AddSubMenu_response();
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::AddSubMenuID);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key "
- << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::AddSubMenu_response* response = new NsSmartDeviceLinkRPCV2::AddSubMenu_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::AddSubMenuID);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- const MenuValue* menu = app->findMenu(object->get_menuID());
- if (menu)
- {
- NsSmartDeviceLinkRPCV2::AddSubMenu_response* response = new NsSmartDeviceLinkRPCV2::AddSubMenu_response;
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::AddSubMenuID);
- response->set_success(false);
- response->setCorrelationID(object->getCorrelationID());
-
- if (menu->first == object->get_menuName())
- {
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::DUPLICATE_NAME);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_ID);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- return;
- }
-
- NsRPC2Communication::UI::AddSubMenu* addSubMenu = new NsRPC2Communication::UI::AddSubMenu();
- addSubMenu->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[addSubMenu->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- addSubMenu->set_menuId(object->get_menuID());
- addSubMenu->set_menuName(object->get_menuName());
- if(object->get_position())
- {
- addSubMenu->set_position(*object->get_position());
- }
- addSubMenu->set_appId(app->getAppID());
- app->addMenu(object->get_menuID(), object->get_menuName(), object->get_position());
- HMIHandler::getInstance().sendRequest(addSubMenu);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::DeleteSubMenuID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteSubmenu request has been invoked");
- NsSmartDeviceLinkRPCV2::DeleteSubMenu_request* object = (NsSmartDeviceLinkRPCV2::DeleteSubMenu_request*)mobileMsg;
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- NsSmartDeviceLinkRPCV2::DeleteSubMenu_response* response = new NsSmartDeviceLinkRPCV2::DeleteSubMenu_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteSubMenuID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::DeleteSubMenu_response* response = new NsSmartDeviceLinkRPCV2::DeleteSubMenu_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteSubMenuID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- const unsigned int& menuId = object->get_menuID();
- if(!app->findMenu(menuId))
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " menuId " << menuId
- << " hasn't been associated with the application " << app->getName() << " id " << app->getAppID() << " !");
- NsSmartDeviceLinkRPCV2::DeleteSubMenu_response* response = new NsSmartDeviceLinkRPCV2::DeleteSubMenu_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteSubMenuID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_ID);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::DeleteSubMenu* delSubMenu = new NsRPC2Communication::UI::DeleteSubMenu();
- delSubMenu->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[delSubMenu->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- delSubMenu->set_menuId(menuId);
- delSubMenu->set_appId(app->getAppID());
- HMIHandler::getInstance().sendRequest(delSubMenu);
- core->menuMapping[delSubMenu->getId()] = menuId;
- // app->removeMenu(menuId);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A PerformAudioPassThru request has been invoked");
-
- NsSmartDeviceLinkRPCV2::PerformAudioPassThru_request* request
- = static_cast<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_request*>(mobileMsg);
-
- if (core->getAudioPassThruFlag())
- {
- LOG4CPLUS_WARN(mLogger, "PerformAudioPassThru::TOO_MANY_PENDING_REQUESTS");
- sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(mobileMsg
- , NsSmartDeviceLinkRPCV2::Result::TOO_MANY_PENDING_REQUESTS
- , false
- , sessionKey);
- break;
- }
-
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response* response = new NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response* response = new NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- core->setAudioPassThruFlag(true);
-
- NsRPC2Communication::UI::PerformAudioPassThru* performAudioPassThru
- = new NsRPC2Communication::UI::PerformAudioPassThru;
- if (!performAudioPassThru)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "PerformAudioPassThru::OUT_OF_MEMORY");
- sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(mobileMsg
- , NsSmartDeviceLinkRPCV2::Result::OUT_OF_MEMORY
- , false
- , sessionKey);
- core->setAudioPassThruFlag(false);
- break;
- }
-
- const std::vector<NsSmartDeviceLinkRPCV2::TTSChunk>& initialPrompt = request->get_initialPrompt();
- const NsSmartDeviceLinkRPCV2::SamplingRate& samplingRate = request->get_samplingRate();
- unsigned int maxDuration = request->get_maxDuration();
- const NsSmartDeviceLinkRPCV2::AudioCaptureQuality& bitsPerSample = request->get_bitsPerSample();
- const NsSmartDeviceLinkRPCV2::AudioType& audioType = request->get_audioType();
-
- performAudioPassThru->set_initialPrompt(initialPrompt);
- performAudioPassThru->set_samplingRate(samplingRate);
- performAudioPassThru->set_maxDuration(maxDuration);
- performAudioPassThru->set_bitsPerSample(bitsPerSample);
- performAudioPassThru->set_audioType(audioType);
-
- const std::string* firstDisplayText = request->get_audioPassThruDisplayText1();
- if(firstDisplayText)
- performAudioPassThru->set_audioPassThruDisplayText1(*firstDisplayText);
-
- const std::string* secondDisplayText = request->get_audioPassThruDisplayText2();
- if (secondDisplayText)
- performAudioPassThru->set_audioPassThruDisplayText2(*secondDisplayText);
-
- performAudioPassThru->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- performAudioPassThru->set_appId(app->getAppID());
- core->mMessageChaining[performAudioPassThru->getId()] = new MessageChaining(
- sessionKey,
- request->getCorrelationID());
- HMIHandler::getInstance().sendRequest(performAudioPassThru);
- LOG4CPLUS_INFO_EXT(mLogger, "Request PerformAudioPassThru sent to HMI ...");
-
- AudioPassThruData* data = new AudioPassThruData;
- if (!data)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "PerformAudioPassThru::OUT_OF_MEMORY");
- sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID
- , NsSmartDeviceLinkRPCV2::Result::OUT_OF_MEMORY
- , request->getCorrelationID()
- , false
- , sessionKey);
- core->setAudioPassThruFlag(false);
- break;
- }
-
- // Thread for audio record operation
- data->samplingRate = samplingRate;
- data->maxDuration = maxDuration;
- data->bitsPerSample = bitsPerSample;
- data->audioType = audioType;
- data->sessionKey = sessionKey;
- data->id = request->getCorrelationID();
- pthread_create(&audioPassThruThread, 0, AudioPassThru, static_cast<void*>(data));
-
- LOG4CPLUS_INFO_EXT(mLogger, "AudioPassThru thread created...");
-
- // We send response only when we finish or EndAudioPassThru request received.
- // Look for AudioPassThru thread proc and EndAudioPassThruID event handler.
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::EndAudioPassThruID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A EndAudioPassThru request has been invoked");
-
- pthread_cond_signal(&cv);
- pthread_cancel(audioPassThruThread);
-
- Application_v2* app
- = getApplicationV2AndCheckHMIStatus<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response>(sessionKey,
- mobileMsg);
- if (!app)
- break;
-
- NsRPC2Communication::UI::EndAudioPassThru* endAudioPassThru
- = new NsRPC2Communication::UI::EndAudioPassThru;
- if (!endAudioPassThru)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "EndAudioPassThru::OUT_OF_MEMORY");
- sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(mobileMsg
- , NsSmartDeviceLinkRPCV2::Result::OUT_OF_MEMORY
- , false
- , sessionKey);
- core->setAudioPassThruFlag(false);
- break;
- }
-
- endAudioPassThru->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- endAudioPassThru->set_appId(app->getAppID());
- core->mMessageChaining[endAudioPassThru->getId()] = new MessageChaining(
- sessionKey,
- mobileMsg->getCorrelationID());
- HMIHandler::getInstance().sendRequest(endAudioPassThru);
- LOG4CPLUS_INFO_EXT(mLogger, "Request EndAudioPassThru sent to HMI ...");
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::SubscribeVehicleDataID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A SubscribeVehicleData request has been invoked");
- NsSmartDeviceLinkRPCV2::SubscribeVehicleData_request * object = static_cast<NsSmartDeviceLinkRPCV2::SubscribeVehicleData_request*>(mobileMsg);
- NsSmartDeviceLinkRPCV2::SubscribeVehicleData_response* response = new NsSmartDeviceLinkRPCV2::SubscribeVehicleData_response();
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SubscribeVehicleDataID);
- response->setCorrelationID(object->getCorrelationID());
- /*RegistryItem* item = AppMgrRegistry::getInstance().getItem(sessionKey);
- if(!item)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }*/
- Application_v2* app = (Application_v2*)core->getItem( sessionKey );
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- std::vector<NsSmartDeviceLinkRPCV2::VehicleDataType> vdVector = object->get_dataType();
- int countOfItems = vdVector.size();
- std::vector<NsSmartDeviceLinkRPCV2::VehicleDataType>::iterator it;
- for (it = vdVector.begin(); it != vdVector.end(); it++)
- {
- if (core->mVehicleDataMapping.addVehicleDataMapping(*it, app))
- {
- countOfItems--;
- }
- }
- if (0 == countOfItems)
- {
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- } else if (countOfItems == vdVector.size())
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->set_info("Application is already subscribed on all VehicleData which it is trying to subscribe!");
- } else if (countOfItems < vdVector.size())
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::WARNINGS);
- response->set_info("Application was already subscribed on some VehicleData which it is trying to subscribe!");
- } else
- {
- LOG4CPLUS_WARN(mLogger, "Wrong command sequence!" );
- break;
- }
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::UnsubscribeVehicleDataID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An UnsubscribeVehicleData request has been invoked");
- NsSmartDeviceLinkRPCV2::UnsubscribeVehicleData_request * object = static_cast<NsSmartDeviceLinkRPCV2::UnsubscribeVehicleData_request*>(mobileMsg);
- NsSmartDeviceLinkRPCV2::UnsubscribeVehicleData_response* response = new NsSmartDeviceLinkRPCV2::UnsubscribeVehicleData_response();
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::UnsubscribeVehicleDataID);
- response->setCorrelationID(object->getCorrelationID());
- /*RegistryItem* item = AppMgrRegistry::getInstance().getItem(sessionKey);
- if(!item)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " session key " << sessionKey
- << " hasn't been associated with any application!");
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }*/
- Application_v2* app = (Application_v2*)core->getItem( sessionKey );
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- std::vector<NsSmartDeviceLinkRPCV2::VehicleDataType> vdVector = object->get_dataType();
- int countOfItems = vdVector.size();
- std::vector<NsSmartDeviceLinkRPCV2::VehicleDataType>::iterator it;
- for (it = vdVector.begin(); it != vdVector.end(); it++)
- {
- if (core->mVehicleDataMapping.removeVehicleDataMapping(*it, app))
- {
- countOfItems--;
- }
- }
- if (0 == countOfItems)
- {
- response->set_success(true);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- } else if (countOfItems == vdVector.size())
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->set_info("Application was not subscribed on any VehicleData which it is trying to unsubscribe!");
- } else if (countOfItems < vdVector.size())
- {
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::WARNINGS);
- response->set_info("Application was subscribed not to all VehicleData which it is trying to unsubscribe!");
- } else
- {
- LOG4CPLUS_WARN(mLogger, "Wrong command sequence!" );
- break;
- }
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::GetVehicleDataID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A GetVehicleData request has been invoked");
- NsSmartDeviceLinkRPCV2::GetVehicleData_request* object = static_cast<NsSmartDeviceLinkRPCV2::GetVehicleData_request*>(mobileMsg);
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::GetVehicleData_response* response = new NsSmartDeviceLinkRPCV2::GetVehicleData_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::GetVehicleDataID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::GetVehicleData_response* response = new NsSmartDeviceLinkRPCV2::GetVehicleData_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::GetVehicleDataID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::VehicleInfo::GetVehicleData* getVehicleDataRPC2Request = new NsRPC2Communication::VehicleInfo::GetVehicleData();
- getVehicleDataRPC2Request->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- LOG4CPLUS_INFO_EXT(mLogger, "getVehicleDataRPC2Request created");
- getVehicleDataRPC2Request->set_dataType(object->get_dataType());
- getVehicleDataRPC2Request->set_appId(sessionKey);
- LOG4CPLUS_INFO_EXT(mLogger, "GetVehicleData request almost handled" );
- core->mMessageChaining[getVehicleDataRPC2Request->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- HMIHandler::getInstance().sendRequest(getVehicleDataRPC2Request);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::ReadDIDID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "ReadDID is received from mobile app.");
- NsSmartDeviceLinkRPCV2::ReadDID_request * request = static_cast<NsSmartDeviceLinkRPCV2::ReadDID_request*>(mobileMsg);
- NsAppManager::Application_v2* app = static_cast<NsAppManager::Application_v2*>(core->
- getItem(sessionKey));
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "An application " << app->getName() << " is not registered." );
- NsSmartDeviceLinkRPCV2::ReadDID_response* response = new NsSmartDeviceLinkRPCV2::ReadDID_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ReadDIDID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::ReadDID_response* response = new NsSmartDeviceLinkRPCV2::ReadDID_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ReadDIDID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- NsRPC2Communication::VehicleInfo::ReadDID * readDIDRequest =
- new NsRPC2Communication::VehicleInfo::ReadDID;
- readDIDRequest->set_appId(app->getAppID());
- readDIDRequest->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- core->mMessageChaining[readDIDRequest->getId()] = new MessageChaining(
- sessionKey,
- request->getCorrelationID());
- readDIDRequest->set_ecuName(request->get_ecuName());
- readDIDRequest->set_didLocation(request->get_didLocation());
- if ( request->get_encrypted() )
- {
- readDIDRequest->set_encrypted( *request->get_encrypted() );
- }
- HMIHandler::getInstance().sendRequest(readDIDRequest);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::GetDTCsID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A GetDTCs request has been invoked");
- NsSmartDeviceLinkRPCV2::GetDTCs_request* object = static_cast<NsSmartDeviceLinkRPCV2::GetDTCs_request*>(mobileMsg);
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::GetDTCs_response* response = new NsSmartDeviceLinkRPCV2::GetDTCs_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::GetDTCsID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::GetDTCs_response* response = new NsSmartDeviceLinkRPCV2::GetDTCs_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::GetDTCsID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::VehicleInfo::GetDTCs* getDTCsRPC2Request = new NsRPC2Communication::VehicleInfo::GetDTCs();
- getDTCsRPC2Request->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- LOG4CPLUS_INFO_EXT(mLogger, "getDTCsRPC2Request created");
- getDTCsRPC2Request->set_ecuName(object->get_ecuName());
- if (object->get_encrypted())
- {
- getDTCsRPC2Request->set_encrypted(*(object->get_encrypted()));
- }
- getDTCsRPC2Request->set_appId(sessionKey);
- LOG4CPLUS_INFO_EXT(mLogger, "GetDTCs request almost handled" );
- core->mMessageChaining[getDTCsRPC2Request->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- HMIHandler::getInstance().sendRequest(getDTCsRPC2Request);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::ChangeRegistrationID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "A ChangeRegistration request has been invoked." );
-
- NsAppManager::Application_v2* app = static_cast<NsAppManager::Application_v2*>(
- core->getItem(sessionKey));
- if(!app)
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- mobileMsg
- , NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED
- , false
- , sessionKey);
- break;
- }
-
- NsSmartDeviceLinkRPCV2::ChangeRegistration_request* request
- = static_cast<NsSmartDeviceLinkRPCV2::ChangeRegistration_request*>(mobileMsg);
-
- // -------------------------------------------------------------------------------------------------
- // Is it supported HMI, VR and TTS language?
- NsSmartDeviceLinkRPCV2::Language hmiLanguage = request->get_hmiDisplayLanguage();
- std::vector<NsSmartDeviceLinkRPCV2::Language>::iterator it = std::find(
- core->mUISupportedLanguages.begin(), core->mUISupportedLanguages.end(), hmiLanguage);
- if (it == core->mUISupportedLanguages.end())
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::ChangeRegistrationID
- , NsSmartDeviceLinkRPCV2::Result::INVALID_DATA
- , request->getCorrelationID()
- , false
- , sessionKey);
- return;
- }
-
- NsSmartDeviceLinkRPCV2::Language language = request->get_language();
- it = std::find(core->mVRSupportedLanguages.begin(), core->mVRSupportedLanguages.end(), language);
- if (it == core->mVRSupportedLanguages.end())
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::ChangeRegistrationID
- , NsSmartDeviceLinkRPCV2::Result::INVALID_DATA
- , request->getCorrelationID()
- , false
- , sessionKey);
- return;
- }
-
- it = std::find(core->mTTSSupportedLanguages.begin(), core->mTTSSupportedLanguages.end(),
- language);
- if (it == core->mTTSSupportedLanguages.end())
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::ChangeRegistrationID
- , NsSmartDeviceLinkRPCV2::Result::INVALID_DATA
- , request->getCorrelationID()
- , false
- , sessionKey);
- return;
- }
- // -------------------------------------------------------------------------------------------------
-
- bool hasActuallyChanged = false;
- MessageChaining * chain = 0;
- if ( app->getHMIDisplayLanguageDesired().get() != request->get_hmiDisplayLanguage().get())
- {
- app->setHMIDisplayLanguageDesired(request->get_hmiDisplayLanguage());
-
- if (app->getApplicationHMIStatusLevel() == NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL)
- {
- NsRPC2Communication::UI::ChangeRegistration * changeUIRegistration =
- new NsRPC2Communication::UI::ChangeRegistration;
- changeUIRegistration->set_hmiDisplayLanguage(request->get_hmiDisplayLanguage());
- changeUIRegistration->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- changeUIRegistration->set_appId(app->getAppID());
- chain = core->addChain(chain,
- sessionKey,
- request->getCorrelationID());
- core->mMessageChaining[changeUIRegistration->getId()] = chain;
- HMIHandler::getInstance().sendRequest(changeUIRegistration);
- }
- else if ( app->getApplicationHMIStatusLevel() == NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE )
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- mobileMsg
- , NsSmartDeviceLinkRPCV2::Result::SUCCESS
- , true
- , sessionKey);
- }
- hasActuallyChanged = true;
- }
- if (app->getLanguageDesired().get() != request->get_language().get())
- {
- app->setLanguageDesired(request->get_language());
-
- if (app->getApplicationHMIStatusLevel() != NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE)
- {
- NsRPC2Communication::VR::ChangeRegistration * changeVrRegistration =
- new NsRPC2Communication::VR::ChangeRegistration;
- changeVrRegistration->set_language(request->get_language());
- changeVrRegistration->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- changeVrRegistration->set_appId(app->getAppID());
- chain = core->addChain(chain,
- sessionKey,
- request->getCorrelationID());
- core->mMessageChaining[changeVrRegistration->getId()] = chain;
- HMIHandler::getInstance().sendRequest(changeVrRegistration);
-
- NsRPC2Communication::TTS::ChangeRegistration * changeTtsRegistration =
- new NsRPC2Communication::TTS::ChangeRegistration;
- changeTtsRegistration->set_language(request->get_language());
- changeTtsRegistration->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- changeTtsRegistration->set_appId(app->getAppID());
- app->incrementUnrespondedRequestCount(app->getAppID());
- chain = core->addChain(chain,
- sessionKey,
- request->getCorrelationID());
- core->mMessageChaining[changeTtsRegistration->getId()] = chain;
- HMIHandler::getInstance().sendRequest(changeTtsRegistration);
- }
- else
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- mobileMsg
- , NsSmartDeviceLinkRPCV2::Result::SUCCESS
- , true
- , sessionKey);
- }
- hasActuallyChanged = true;
- }
-
- if ( !hasActuallyChanged )
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- mobileMsg
- , NsSmartDeviceLinkRPCV2::Result::SUCCESS
- , true
- , sessionKey);
- }
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::AlertManeuverID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "A AlertManeuver request has been invoked." );
- sendResponse<NsSmartDeviceLinkRPCV2::AlertManeuver_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- mobileMsg
- , NsSmartDeviceLinkRPCV2::Result::IGNORED
- , false
- , sessionKey);
-
- /*NsSmartDeviceLinkRPCV2::AlertManeuver_request* request
- = static_cast<NsSmartDeviceLinkRPCV2::AlertManeuver_request*>(mobileMsg);
-
- Application_v2* app = static_cast<Application_v2*>(
- core->getItem(sessionKey)));
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger,
- "No application associated with the registry item with session key " << sessionKey );
- sendResponse<NsSmartDeviceLinkRPCV2::AlertManeuver_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::AlertManeuverID
- , NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED
- , NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE
- , false
- , sessionKey);
- break;
- }
-
- if((NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- || (NsSmartDeviceLinkRPCV2::HMILevel::HMI_BACKGROUND == app->getApplicationHMIStatusLevel()))
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "An application " << app->getName()
- << " with session key " << sessionKey << " has not been activated yet!" );
- sendResponse<NsSmartDeviceLinkRPCV2::AlertManeuver_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::AlertManeuverID
- , NsSmartDeviceLinkRPCV2::Result::REJECTED
- , NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE
- , false
- , sessionKey);
- break;
- }
-
- NsRPC2Communication::UI::AlertManeuver* alert
- = new NsRPC2Communication::UI::AlertManeuver;
- if (!alert)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "new NsRPC2Communication::Navigation::AlertManeuver() failed");
- sendResponse<NsSmartDeviceLinkRPCV2::AlertManeuver_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::AlertManeuverID
- , NsSmartDeviceLinkRPCV2::Result::OUT_OF_MEMORY
- , NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE
- , false
- , sessionKey);
- break;
- }
-
- alert->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- alert->set_appId(app->getAppID());
- alert->set_ttsChunks(request->get_ttsChunks());
- alert->set_softButtons(request->get_softButtons());
-
- core->mMessageMapping.addMessage(alert->getId(), sessionKey);
- HMIHandler::getInstance().sendRequest(alert);*/
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::DialNumberID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DialNumber request has been invoked");
- NsSmartDeviceLinkRPCV2::DialNumber_request* object = static_cast<NsSmartDeviceLinkRPCV2::DialNumber_request*>(mobileMsg);
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::DialNumber_response* response = new NsSmartDeviceLinkRPCV2::DialNumber_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DialNumberID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL != app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::DialNumber_response* response = new NsSmartDeviceLinkRPCV2::DialNumber_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DialNumberID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(object->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- NsRPC2Communication::UI::DialNumber* dialNumberRPC2Request = new NsRPC2Communication::UI::DialNumber();
- dialNumberRPC2Request->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- LOG4CPLUS_INFO_EXT(mLogger, "dialNumberRPC2Request created");
- dialNumberRPC2Request->set_number(object->get_number());
- dialNumberRPC2Request->set_appId(sessionKey);
- LOG4CPLUS_INFO_EXT(mLogger, "DialNumber request almost handled" );
- core->mMessageChaining[dialNumberRPC2Request->getId()] = new MessageChaining(
- sessionKey,
- object->getCorrelationID());
- HMIHandler::getInstance().sendRequest(dialNumberRPC2Request);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::ShowConstantTBTID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "A ShowConstantTBT request has been invoked." );
- NsSmartDeviceLinkRPCV2::ShowConstantTBT_request* request
- = static_cast<NsSmartDeviceLinkRPCV2::ShowConstantTBT_request*>(mobileMsg);
-
- Application_v2* app = (Application_v2*)core->getItem(sessionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item with session key " << sessionKey );
- NsSmartDeviceLinkRPCV2::ShowConstantTBT_response* response = new NsSmartDeviceLinkRPCV2::ShowConstantTBT_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ShowConstantTBTID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_LIMITED == app->getApplicationHMIStatusLevel()
- || NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == app->getApplicationHMIStatusLevel())
- {
- LOG4CPLUS_WARN(mLogger, "An application " << app->getName() << " with session key " << sessionKey << " has not been activated yet!" );
- NsSmartDeviceLinkRPCV2::ShowConstantTBT_response* response = new NsSmartDeviceLinkRPCV2::ShowConstantTBT_response;
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ShowConstantTBTID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::REJECTED);
- response->setCorrelationID(request->getCorrelationID());
- MobileHandler::getInstance().sendRPCMessage(response, sessionKey);
- break;
- }
-
- NsRPC2Communication::UI::ShowConstantTBT* showConstantTBT
- = new NsRPC2Communication::UI::ShowConstantTBT;
- if (!showConstantTBT)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "new NsRPC2Communication::UI::ShowConstantTBT() failed");
- sendResponse<NsSmartDeviceLinkRPCV2::ShowConstantTBT_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- mobileMsg
- , NsSmartDeviceLinkRPCV2::Result::OUT_OF_MEMORY
- , false
- , sessionKey);
- return;
- }
-
- showConstantTBT->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- showConstantTBT->set_appId(app->getAppID());
- showConstantTBT->set_softButtons(request->get_softButtons());
- showConstantTBT->set_distanceToManeuver(request->get_distanceToManeuver());
- showConstantTBT->set_distanceToManeuverScale(request->get_distanceToManeuverScale());
- showConstantTBT->set_turnIcon(request->get_turnIcon());
-
- const std::string* firstNavigationText = request->get_navigationText1();
- const std::string* secondNavigationText = request->get_navigationText2();
- const std::string* eta = request->get_eta();
- const std::string* totalDistance = request->get_totalDistance();
- const bool* maneuverComplete = request->get_maneuverComplete();
-
- if (firstNavigationText)
- showConstantTBT->set_navigationText1(*firstNavigationText);
- if (secondNavigationText)
- showConstantTBT->set_navigationText2(*secondNavigationText);
- if (eta)
- showConstantTBT->set_eta(*eta);
- if (totalDistance)
- showConstantTBT->set_totalDistance(*totalDistance);
- if (maneuverComplete)
- showConstantTBT->set_maneuverComplete(maneuverComplete);
-
- core->mMessageChaining[showConstantTBT->getId()] = new MessageChaining(
- sessionKey,
- request->getCorrelationID());
- HMIHandler::getInstance().sendRequest(showConstantTBT);
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::UpdateTurnListID:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "A UpdateTurnList request has been invoked." );
- NsSmartDeviceLinkRPCV2::UpdateTurnList_request* request
- = static_cast<NsSmartDeviceLinkRPCV2::UpdateTurnList_request*>(mobileMsg);
-
- Application_v2* app = getApplicationV2AndCheckHMIStatus<NsSmartDeviceLinkRPCV2::ShowConstantTBT_response>(
- sessionKey,
- request);
- if (!app)
- return;
-
- NsRPC2Communication::UI::UpdateTurnList* updateTurnList = new NsRPC2Communication::UI::UpdateTurnList;
- if (!updateTurnList)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "new NsRPC2Communication::UI::UpdateTurnList() failed");
- sendResponse<NsSmartDeviceLinkRPCV2::UpdateTurnList_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- mobileMsg
- , NsSmartDeviceLinkRPCV2::Result::OUT_OF_MEMORY
- , false
- , sessionKey);
- return;
- }
-
- updateTurnList->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- updateTurnList->set_appId(app->getAppID());
- std::vector<NsSmartDeviceLinkRPCV2::Turn> toHMI;
- const std::vector<NsSmartDeviceLinkRPCV2::Turn> fromMobile = request->get_turnList();
- std::vector<NsSmartDeviceLinkRPCV2::Turn>::const_iterator i = fromMobile.begin();
- for (i; i != fromMobile.end(); ++i)
- {
- NsSmartDeviceLinkRPCV2::Turn turn;
- turn.set_navigationText(*(i->get_navigationText()));
-
- NsSmartDeviceLinkRPCV2::Image image;
- image.set_imageType(i->get_turnIcon().get_imageType());
-
- std::string relativeFilePath = app->getName();
- relativeFilePath += "/";
- relativeFilePath += i->get_turnIcon().get_value();
-
- std::string fullFilePath = WorkWithOS::getFullPath( relativeFilePath );
- if (!WorkWithOS::checkIfFileExists(fullFilePath))
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "UpdateTurnList file doesn't exist");
- sendResponse<NsSmartDeviceLinkRPCV2::UpdateTurnList_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::UpdateTurnListID
- , NsSmartDeviceLinkRPCV2::Result::INVALID_DATA
- , request->getCorrelationID()
- , false
- , sessionKey);
- return;
- }
-
- image.set_value(fullFilePath);
- turn.set_turnIcon(image);
- toHMI.push_back(turn);
- }
-
- updateTurnList->set_turnList(toHMI);
- updateTurnList->set_softButtons(request->get_softButtons());
-
- core->mMessageChaining[updateTurnList->getId()] = new MessageChaining(
- sessionKey,
- request->getCorrelationID());
- HMIHandler::getInstance().sendRequest(updateTurnList);
-
- break;
- }
- case NsSmartDeviceLinkRPCV2::FunctionID::INVALID_ENUM:
- default:
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " An undefined or invalid RPC message " << mobileMsg->getMethodId()
- << " has been received!");
-
- sendResponse<NsSmartDeviceLinkRPCV2::GenericResponse_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::GenericResponseID
- , NsSmartDeviceLinkRPCV2::Result::INVALID_DATA
- , mobileMsg->getCorrelationID()
- , false
- , sessionKey);
- break;
- }
- }
- }
- }
-
- /**
- * \brief push HMI RPC2 message to a queue
- * \param msg a message to be pushed
- * \param pThis a pointer to AppMgrCore class instance
- */
- void AppMgrCore::handleBusRPCMessageIncoming(NsRPC2Communication::RPC2Command* msg , void *pThis)
- {
- if(!msg)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Incoming null pointer from HMI side!");
- return;
- }
- LOG4CPLUS_INFO_EXT(mLogger, " A RPC2 bus message " << msg->getMethod() << " has been incoming...");
-
- if(!pThis)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " pThis should point to an instance of AppMgrCore class");
- return;
- }
-
- AppMgrCore* core = (AppMgrCore*)pThis;
- switch(msg->getMethod())
- {
- case NsRPC2Communication::Marshaller::METHOD_INVALID:
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " An invalid RPC message " << msg->getMethod() << " has been received!");
- return;
- }
- default:
- LOG4CPLUS_INFO_EXT(mLogger, " A valid RPC message " << msg->getMethod() << " has been received!");
- }
-
- switch(msg->getMethod())
- {
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONEVENT:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An OnButtonEvent notification has been invoked");
- NsRPC2Communication::Buttons::OnButtonEvent * object = (NsRPC2Communication::Buttons::OnButtonEvent*)msg;
-
- NsSmartDeviceLinkRPCV2::ButtonName btnName;
- btnName.set((NsSmartDeviceLinkRPCV2::ButtonName::ButtonNameInternal)object->get_name().get());
-
- if(object->get_customButtonID())
- {
- LOG4CPLUS_INFO_EXT(mLogger, "No subscription for custom buttons is required.");
- Application* app = core->getActiveItem();
- if (!app)
- {
- LOG4CPLUS_WARN_EXT(mLogger, "OnButtonPress came but no app is active.");
- return;
- }
- core->sendButtonEvent(app, object);
- return;
- }
-
- ResultRange subscribedApps = core->mButtonsMapping.findSubscribedToButton(btnName);
-
- for( ButtonMap::const_iterator it=subscribedApps.first; it!=subscribedApps.second; ++it )
- {
- Application* app = it -> second;
- if (!app)
- {
- LOG4CPLUS_WARN(mLogger, "Null pointer to subscribed app.");
- continue;
- }
-
- if ( NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL != app->getApplicationHMIStatusLevel()
- && NsSmartDeviceLinkRPCV2::HMILevel::HMI_LIMITED != app->getApplicationHMIStatusLevel() )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "Application is not supposed \
- to receive OnButtonPress when in HMI_BACKGROUND or NONE");
- continue;
- }
- core->sendButtonEvent(app, object);
- }
-
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONPRESS:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An OnButtonPress notification has been invoked");
- NsRPC2Communication::Buttons::OnButtonPress * object = (NsRPC2Communication::Buttons::OnButtonPress*)msg;
- const NsSmartDeviceLinkRPC::ButtonName & name = static_cast<NsSmartDeviceLinkRPC::ButtonName::ButtonNameInternal>(object->get_name().get());
- NsSmartDeviceLinkRPCV2::ButtonName btnName;
- btnName.set((NsSmartDeviceLinkRPCV2::ButtonName::ButtonNameInternal)name.get());
-
- if(object->get_customButtonID())
- {
- LOG4CPLUS_INFO_EXT(mLogger, "No subscription for custom buttons is required.");
- Application* app = core->getActiveItem();
- if (!app)
- {
- LOG4CPLUS_WARN_EXT(mLogger, "OnButtonPress came but no app is active.");
- return;
- }
- core->sendButtonPress(app, object);
- return;
- }
-
- ResultRange subscribedApps = core->mButtonsMapping.findSubscribedToButton(btnName);
-
- for( ButtonMap::const_iterator it=subscribedApps.first; it!=subscribedApps.second; ++it )
- {
- Application* app = it -> second;
- if (!app)
- {
- LOG4CPLUS_WARN(mLogger, "Null pointer to subscribed app.");
- continue;
- }
-
- if ( NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL != app->getApplicationHMIStatusLevel()
- && NsSmartDeviceLinkRPCV2::HMILevel::HMI_LIMITED != app->getApplicationHMIStatusLevel() )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "Application is not supposed \
- to receive OnButtonPress when in HMI_BACKGROUND or NONE");
- continue;
- }
- core->sendButtonPress(app, object);
- }
-
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_BUTTONS__GETCAPABILITIESRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A GetButtonCapabilities response has been income");
- NsRPC2Communication::Buttons::GetCapabilitiesResponse * btnCaps = (NsRPC2Communication::Buttons::GetCapabilitiesResponse*)msg;
- core->mButtonCapabilitiesV2.set( btnCaps->get_capabilities() );
- if(btnCaps->get_presetBankCapabilities())
- {
- core->mPresetBankCapabilities = *btnCaps->get_presetBankCapabilities();
- }
-
- --core->mHMIStartupFlag;
- if (!core->mHMIStartupFlag)
- {
- ConnectionHandler::getInstance().startTransportManager();
- }
- return;
- }
- default:
- LOG4CPLUS_INFO_EXT(mLogger, " Not Buttons RPC message " << msg->getMethod() << " has been received!");
- }
-
- switch(msg->getMethod())
- {
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONREADY:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An OnReady UI notification has been invoked");
- HMIHandler::getInstance().setReadyState(true);
-
- NsRPC2Communication::UI::GetCapabilities* getUiCapsRequest = new NsRPC2Communication::UI::GetCapabilities();
- getUiCapsRequest->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- HMIHandler::getInstance().sendRequest(getUiCapsRequest);
- NsRPC2Communication::VR::GetCapabilities* getVrCapsRequest = new NsRPC2Communication::VR::GetCapabilities();
- getVrCapsRequest->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- HMIHandler::getInstance().sendRequest(getVrCapsRequest);
- NsRPC2Communication::TTS::GetCapabilities* getTtsCapsRequest = new NsRPC2Communication::TTS::GetCapabilities();
- getTtsCapsRequest->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- HMIHandler::getInstance().sendRequest(getTtsCapsRequest);
- NsRPC2Communication::Buttons::GetCapabilities* getButtonsCapsRequest = new NsRPC2Communication::Buttons::GetCapabilities();
- getButtonsCapsRequest->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- HMIHandler::getInstance().sendRequest(getButtonsCapsRequest);
- NsRPC2Communication::VehicleInfo::GetVehicleType* getVehicleType = new NsRPC2Communication::VehicleInfo::GetVehicleType;
- getVehicleType->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- HMIHandler::getInstance().sendRequest(getVehicleType);
-
- NsRPC2Communication::UI::GetSupportedLanguages * getUISupportedLanguages
- = new NsRPC2Communication::UI::GetSupportedLanguages;
- getUISupportedLanguages->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- HMIHandler::getInstance().sendRequest(getUISupportedLanguages);
-
- NsRPC2Communication::TTS::GetSupportedLanguages * getTTSSupportedLanguages
- = new NsRPC2Communication::TTS::GetSupportedLanguages;
- getTTSSupportedLanguages->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- HMIHandler::getInstance().sendRequest(getTTSSupportedLanguages);
-
- NsRPC2Communication::VR::GetSupportedLanguages* getVRSupportedLanguages
- = new NsRPC2Communication::VR::GetSupportedLanguages;
- getVRSupportedLanguages->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- HMIHandler::getInstance().sendRequest(getVRSupportedLanguages);
-
- NsRPC2Communication::UI::GetLanguage* getUiLang = new NsRPC2Communication::UI::GetLanguage;
- getUiLang->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- HMIHandler::getInstance().sendRequest(getUiLang);
- NsRPC2Communication::VR::GetLanguage* getVrLang = new NsRPC2Communication::VR::GetLanguage;
- getVrLang->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- HMIHandler::getInstance().sendRequest(getVrLang);
- NsRPC2Communication::TTS::GetLanguage* getTtsLang = new NsRPC2Communication::TTS::GetLanguage;
- getTtsLang->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- HMIHandler::getInstance().sendRequest(getTtsLang);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__PERFORMAUDIOPASSTHRURESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A PerformAudioPassThru response has been invoked");
-
- pthread_cond_signal(&cv);
- pthread_cancel(audioPassThruThread);
-
- NsRPC2Communication::UI::PerformAudioPassThruResponse* response
- = static_cast<NsRPC2Communication::UI::PerformAudioPassThruResponse*>(msg);
-
- MessageChains::iterator it = core->mMessageChaining.find(response->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << response->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No application associated with this registry item!");
- NsAppManager::AppMgrCore::getInstance().setAudioPassThruFlag(false);
- return;
- }
-
- sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , it->second->correlationID
- , true
- , it->second->connectionKey);
-
- // We wait for new PerformAudioPassThru request.
- core -> decreaseMessageChain(it);
- NsAppManager::AppMgrCore::getInstance().setAudioPassThruFlag(false);
- break;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ENDAUDIOPASSTHRURESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A EndAudioPassThru response has been invoked");
- NsRPC2Communication::UI::EndAudioPassThruResponse* response =
- static_cast<NsRPC2Communication::UI::EndAudioPassThruResponse*>(msg);
-
- MessageChains::iterator it = core->mMessageChaining.find(response->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << response->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- NsAppManager::AppMgrCore::getInstance().setAudioPassThruFlag(false);
- return;
- }
-
- sendResponse<NsSmartDeviceLinkRPCV2::EndAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(NsSmartDeviceLinkRPCV2::FunctionID::EndAudioPassThruID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , it->second->correlationID
- , NsSmartDeviceLinkRPCV2::Result::SUCCESS == static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- response->getResult())
- , app->getAppID());
-
- /*sendResponse<NsSmartDeviceLinkRPCV2::PerformAudioPassThru_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(NsSmartDeviceLinkRPCV2::FunctionID::PerformAudioPassThruID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE
- , NsSmartDeviceLinkRPCV2::Result::SUCCESS == static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- response->getResult())
- , app->getAppID());*/
- core->decreaseMessageChain(it);
- core->setAudioPassThruFlag(false);
-
- break;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETCAPABILITIESRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A GetUICapabilities response has been income");
- NsRPC2Communication::UI::GetCapabilitiesResponse * uiCaps = (NsRPC2Communication::UI::GetCapabilitiesResponse*)msg;
- core->mDisplayCapabilitiesV2 = uiCaps->get_displayCapabilities();
-
- NsSmartDeviceLinkRPC::DisplayCapabilities displayCaps;
- const NsSmartDeviceLinkRPCV2::DisplayCapabilities& displayCapsV2 = uiCaps->get_displayCapabilities();
- displayCaps.set_displayType(
- static_cast<NsSmartDeviceLinkRPC::DisplayType::DisplayTypeInternal>(
- displayCapsV2.get_displayType().get()));
- std::vector<NsSmartDeviceLinkRPC::MediaClockFormat> mediaClockV1;
- convert<NsSmartDeviceLinkRPC::MediaClockFormat,
- NsSmartDeviceLinkRPCV2::MediaClockFormat,
- NsSmartDeviceLinkRPC::MediaClockFormat::MediaClockFormatInternal>(
- displayCapsV2.get_mediaClockFormats(),
- mediaClockV1);
- displayCaps.set_mediaClockFormats(mediaClockV1);
-
- std::vector<NsSmartDeviceLinkRPC::TextField> txtFields;
- for(std::vector<NsSmartDeviceLinkRPCV2::TextField>::const_iterator it = displayCapsV2.get_textFields().begin();
- it != displayCapsV2.get_textFields().end(); it++)
- {
- NsSmartDeviceLinkRPC::TextField txtField;
- const NsSmartDeviceLinkRPCV2::TextField txtFieldOrig = *it;
- NsSmartDeviceLinkRPC::CharacterSet charset;
- charset.set(
- static_cast<NsSmartDeviceLinkRPC::CharacterSet::CharacterSetInternal>(
- txtFieldOrig.get_characterSet().get())
- );
- txtField.set_characterSet(charset);
- txtField.set_name(
- static_cast<NsSmartDeviceLinkRPC::TextFieldName::TextFieldNameInternal>(
- txtFieldOrig.get_name().get()));
- txtField.set_rows(txtFieldOrig.get_rows());
- txtField.set_width(txtFieldOrig.get_width());
- txtFields.push_back(txtField);
- }
- displayCaps.set_textFields(txtFields);
- core->mDisplayCapabilitiesV1 = displayCaps;
- core->mHmiZoneCapabilitiesV2.set( uiCaps->get_hmiZoneCapabilities() );
- if(uiCaps->get_softButtonCapabilities())
- {
- core->mSoftButtonCapabilities.set(*uiCaps->get_softButtonCapabilities());
- }
-
- --core->mHMIStartupFlag;
- if (!core->mHMIStartupFlag)
- {
- ConnectionHandler::getInstance().startTransportManager();
- }
-
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETLANGUAGERESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "GetLanguageResponse from UI is received");
- NsRPC2Communication::UI::GetLanguageResponse* getLang = (NsRPC2Communication::UI::GetLanguageResponse*)msg;
- core->mUiLanguageV1.set(
- static_cast<NsSmartDeviceLinkRPC::Language::LanguageInternal>(
- getLang->get_hmiDisplayLanguage().get()));
- core->mUiLanguageV2 = getLang->get_hmiDisplayLanguage();
-
- --core->mHMIStartupFlag;
- if (!core->mHMIStartupFlag)
- {
- ConnectionHandler::getInstance().startTransportManager();
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONCOMMAND:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An OnCommand UI notification has been invoked");
- NsRPC2Communication::UI::OnCommand* object = (NsRPC2Communication::UI::OnCommand*)msg;
- Application* app = core->getApplicationByCommand(object->get_commandId(), object->get_appId());
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::OnCommand* event = new NsSmartDeviceLinkRPC::OnCommand();
- event->set_cmdID(object->get_commandId());
- event->set_triggerSource(NsSmartDeviceLinkRPC::TriggerSource::TS_MENU);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(event, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::OnCommand* event = new NsSmartDeviceLinkRPCV2::OnCommand();
- event->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnCommandID);
- event->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- event->set_cmdID(object->get_commandId());
- event->set_triggerSource(NsSmartDeviceLinkRPCV2::TriggerSource::TS_MENU);
- event->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnCommandID);
- event->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(event, appId);
- break;
- }
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SHOWRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A Show response has been income");
- NsRPC2Communication::UI::ShowResponse* object = (NsRPC2Communication::UI::ShowResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::Show_response* response = new NsSmartDeviceLinkRPC::Show_response();
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->set_success(true);
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::Show_response* response = new NsSmartDeviceLinkRPCV2::Show_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ShowID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->set_success(true);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ShowID);
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- }
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETGLOBALPROPERTIESRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A SetGlobalProperties response has been income");
- NsRPC2Communication::UI::SetGlobalPropertiesResponse* object = (NsRPC2Communication::UI::SetGlobalPropertiesResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::SetGlobalProperties_response* response = new NsSmartDeviceLinkRPC::SetGlobalProperties_response();
-
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->set_success(true);
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::SetGlobalProperties_response* response = new NsSmartDeviceLinkRPCV2::SetGlobalProperties_response();
-
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SetGlobalPropertiesID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->set_success(true);
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- }
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__RESETGLOBALPROPERTIESRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A ResetGlobalProperties response has been income");
- NsRPC2Communication::UI::ResetGlobalPropertiesResponse* object = (NsRPC2Communication::UI::ResetGlobalPropertiesResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::ResetGlobalProperties_response* response = new NsSmartDeviceLinkRPC::ResetGlobalProperties_response();
-
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(true);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::ResetGlobalProperties_response* response = new NsSmartDeviceLinkRPCV2::ResetGlobalProperties_response();
-
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ResetGlobalPropertiesID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(true);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- }
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ALERTRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An Alert response has been income");
- NsRPC2Communication::UI::AlertResponse* object = (NsRPC2Communication::UI::AlertResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::Alert_response* response = new NsSmartDeviceLinkRPC::Alert_response();
- response->set_success(true);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::Alert_response* response = new NsSmartDeviceLinkRPCV2::Alert_response();
- response->set_success(true);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::AlertID);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- if(object->get_tryAgainTime())
- {
- response->set_tryAgainTime(*object->get_tryAgainTime());
- }
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- break;
- }
- }
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ADDCOMMANDRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An AddCommand UI response has been income");
- NsRPC2Communication::UI::AddCommandResponse* object = (NsRPC2Communication::UI::AddCommandResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int connectionKey = it->second->connectionKey;
- //unsigned int cmdId = core->mRequestMapping.findRequestIdAssignedToMessage(object->getId());
- //app->decrementUnrespondedRequestCount(cmdId);
- unsigned int correlationID = it->second->correlationID;
- if(core->decreaseMessageChain(it)) //app->getUnrespondedRequestCount(cmdId) == 0
- {
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::AddCommand_response* response = new NsSmartDeviceLinkRPC::AddCommand_response();
- response->set_success(true);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << connectionKey);
- MobileHandler::getInstance().sendRPCMessage(response, connectionKey);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::AddCommand_response* response = new NsSmartDeviceLinkRPCV2::AddCommand_response();
- response->set_success(true);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::AddCommandID);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << connectionKey);
- MobileHandler::getInstance().sendRPCMessage(response, connectionKey);
- break;
- }
- }
- }
-
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETECOMMANDRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteCommand UI response has been income");
- NsRPC2Communication::UI::DeleteCommandResponse* object = (NsRPC2Communication::UI::DeleteCommandResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int connectionKey = it->second->connectionKey;
- unsigned int correlationID = it->second->correlationID;
- if(core->decreaseMessageChain(it))
- {
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::DeleteCommand_response* response = new NsSmartDeviceLinkRPC::DeleteCommand_response();
- response->set_success(true);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << connectionKey);
- MobileHandler::getInstance().sendRPCMessage(response, connectionKey);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::DeleteCommand_response* response = new NsSmartDeviceLinkRPCV2::DeleteCommand_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteCommandID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(true);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << connectionKey);
- MobileHandler::getInstance().sendRPCMessage(response, connectionKey);
- break;
- }
- }
- }
-
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ADDSUBMENURESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An AddSubMenu response has been income");
- NsRPC2Communication::UI::AddSubMenuResponse* object = (NsRPC2Communication::UI::AddSubMenuResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::AddSubMenu_response* response = new NsSmartDeviceLinkRPC::AddSubMenu_response();
- response->set_success(true);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::AddSubMenu_response* response = new NsSmartDeviceLinkRPCV2::AddSubMenu_response();
- response->set_success(true);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::AddSubMenuID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- }
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETESUBMENURESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteSubMenu response has been income");
- NsRPC2Communication::UI::DeleteSubMenuResponse* object = (NsRPC2Communication::UI::DeleteSubMenuResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::DeleteSubMenu_response* response = new NsSmartDeviceLinkRPC::DeleteSubMenu_response();
- response->set_success(true);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS !=
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()))
- {
- response->set_success(false);
- }
- else
- {
- std::map<int, int>::iterator menuId = core->menuMapping.find(object->getId());
- if (menuId != core->menuMapping.end())
- {
- app->removeMenu(menuId->second);
- core->menuMapping.erase(menuId);
- }
- }
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::DeleteSubMenu_response* response = new NsSmartDeviceLinkRPCV2::DeleteSubMenu_response();
- response->set_success(true);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS !=
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()))
- {
- response->set_success(false);
- }
- else
- {
- std::map<int, int>::iterator menuId = core->menuMapping.find(object->getId());
- if (menuId != core->menuMapping.end())
- {
- app->removeMenu(menuId->second);
- core->menuMapping.erase(menuId);
- }
- }
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteSubMenuID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- }
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__CREATEINTERACTIONCHOICESETRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A CreateInteractionChoiceSet response has been income");
- NsRPC2Communication::UI::CreateInteractionChoiceSetResponse* object = (NsRPC2Communication::UI::CreateInteractionChoiceSetResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::CreateInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPC::CreateInteractionChoiceSet_response();
- response->set_success(true);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS !=
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()))
- {
- response->set_success(false);
- }
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::CreateInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPCV2::CreateInteractionChoiceSet_response();
- response->set_success(true);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS !=
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()))
- {
- response->set_success(false);
- }
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::CreateInteractionChoiceSetID);
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- }
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETEINTERACTIONCHOICESETRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteInteractionChoiceSet response has been income");
- NsRPC2Communication::UI::DeleteInteractionChoiceSetResponse* object = (NsRPC2Communication::UI::DeleteInteractionChoiceSetResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPC::DeleteInteractionChoiceSet_response();
- response->set_success(true);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS !=
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()))
- {
- response->set_success(false);
- }
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_response* response = new NsSmartDeviceLinkRPCV2::DeleteInteractionChoiceSet_response();
- response->set_success(true);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS !=
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()))
- {
- response->set_success(false);
- }
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteInteractionChoiceSetID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- }
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__PERFORMINTERACTIONRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A PerformInteraction response has been income");
- NsRPC2Communication::UI::PerformInteractionResponse* object = (NsRPC2Communication::UI::PerformInteractionResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::PerformInteraction_response* response = new NsSmartDeviceLinkRPC::PerformInteraction_response();
- if(object->get_choiceID())
- {
- response->set_choiceID(*object->get_choiceID());
- }
- if(object->get_triggerSource())
- {
- response->set_triggerSource(
- static_cast<NsSmartDeviceLinkRPC::TriggerSource::TriggerSourceInternal>(
- object->get_triggerSource()->get()));
- }
- response->set_success(true);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS !=
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()))
- {
- response->set_success(false);
- }
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- core->mPerformInteractionFlag = -1;
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::PerformInteraction_response* response = new NsSmartDeviceLinkRPCV2::PerformInteraction_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::PerformInteractionID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- if(object->get_choiceID())
- {
- response->set_choiceID(*object->get_choiceID());
- }
- if(object->get_triggerSource())
- {
- NsSmartDeviceLinkRPCV2::TriggerSource triggerSrc;
- triggerSrc.set((NsSmartDeviceLinkRPCV2::TriggerSource::TriggerSourceInternal)object->get_triggerSource()->get());
- response->set_triggerSource(triggerSrc);
- }
- response->set_success(true);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS !=
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()))
- {
- response->set_success(false);
- }
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- core->mPerformInteractionFlag = -1;
- break;
- }
- }
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETMEDIACLOCKTIMERRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A SetMediaClockTimer response has been income");
- NsRPC2Communication::UI::SetMediaClockTimerResponse* object = (NsRPC2Communication::UI::SetMediaClockTimerResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::SetMediaClockTimer_response* response = new NsSmartDeviceLinkRPC::SetMediaClockTimer_response();
- response->set_success(true);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS !=
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()))
- {
- response->set_success(false);
- }
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::SetMediaClockTimer_response* response = new NsSmartDeviceLinkRPCV2::SetMediaClockTimer_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SetMediaClockTimerID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_success(true);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS !=
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()))
- {
- response->set_success(false);
- }
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- break;
- }
- }
- core -> decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONDRIVERDISTRACTION:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An OnDriverDistraction UI notification has been invoked");
- NsRPC2Communication::UI::OnDriverDistraction* object
- = static_cast<NsRPC2Communication::UI::OnDriverDistraction*>(msg);
-
- for(std::map<int,Application*>::const_iterator it = core->mApplications.begin();
- it != core->mApplications.end();
- ++it)
- {
- if (NULL != it->second)
- {
- NsSmartDeviceLinkRPCV2::HMILevel::HMILevelInternal hmiLevel = it->second->getApplicationHMIStatusLevel();
- if(NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL == hmiLevel
- || NsSmartDeviceLinkRPCV2::HMILevel::HMI_BACKGROUND == hmiLevel)
- {
- int appId = it->second->getAppID();
-
- // We need two events simultaneously, because we may have applications of more than
- // one protocol version registered on the HMI and all they need to be notified of
- // an OnDriverDistraction event
- NsSmartDeviceLinkRPC::OnDriverDistraction* eventV1 = new NsSmartDeviceLinkRPC::OnDriverDistraction();
- eventV1->set_state(
- static_cast<NsSmartDeviceLinkRPC::DriverDistractionState::DriverDistractionStateInternal>(
- object->get_state().get()));
- core->mDriverDistractionV1 = eventV1;
- NsSmartDeviceLinkRPCV2::OnDriverDistraction* eventV2 = new NsSmartDeviceLinkRPCV2::OnDriverDistraction();
- eventV2->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnDriverDistractionID);
- eventV2->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
-
- NsSmartDeviceLinkRPCV2::DriverDistractionState stateV2;
- stateV2.set(
- static_cast<NsSmartDeviceLinkRPCV2::DriverDistractionState::DriverDistractionStateInternal>(
- object->get_state().get()));
- eventV2->set_state(stateV2);
- eventV2->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnDriverDistractionID);
- eventV2->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- core->mDriverDistractionV2 = eventV2;
-
- switch(it->second->getProtocolVersion())
- {
- case 1:
- {
- MobileHandler::getInstance().sendRPCMessage(eventV1, appId);
- break;
- }
- case 2:
- {
- MobileHandler::getInstance().sendRPCMessage(eventV2, appId);
- break;
- }
- }
- }
- }
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONSYSTEMCONTEXT:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An OnSystemContext UI notification has been invoked");
- NsRPC2Communication::UI::OnSystemContext* object = (NsRPC2Communication::UI::OnSystemContext*)msg;
-
- Application* app = core->getActiveItem();
- if(!app)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " null-application found as an active item!");
- return;
- }
-
- if ( (NsSmartDeviceLinkRPCV2::SystemContext::SYSCTXT_HMI_OBSCURED == object->get_systemContext().get() ||
- NsSmartDeviceLinkRPCV2::SystemContext::SYSCTXT_ALERT == object->get_systemContext().get()) &&
- 1 == app->getProtocolVersion() )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "This system context is not supported for first generation of RPC.");
- return;
- }
-
- if ( NsSmartDeviceLinkRPCV2::SystemContext::NOT_AUDIBLE == object->get_systemContext().get() )
- {
- if (app->getApplicationAudioStreamingState().get() == NsSmartDeviceLinkRPCV2::AudioStreamingState::AUDIBLE)
- {
- app->setApplicationAudioStreamingState(NsSmartDeviceLinkRPCV2::AudioStreamingState::NOT_AUDIBLE);
- core->sendHMINotificationToMobile(app);
- }
- return;
- }
- else
- {
- app->setSystemContext(object->get_systemContext());
- app->setApplicationAudioStreamingState(NsSmartDeviceLinkRPCV2::AudioStreamingState::AUDIBLE);
- core->sendHMINotificationToMobile(app);
- return;
- }
-
- if( app->getSystemContext().get() != object->get_systemContext().get() )
- {
- app->setSystemContext(object->get_systemContext());
-
- if ( NsSmartDeviceLinkRPCV2::SystemContext::SYSCTXT_MAIN == object->get_systemContext().get()
- && NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL != app->getApplicationHMIStatusLevel() )
- {
- core->performActivitiesForActivatingApp(app);
- }
- }
- else
- {
- core->sendHMINotificationToMobile(app);
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SLIDERRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A Slider response has been income");
- NsRPC2Communication::UI::SliderResponse* uiResponse = (NsRPC2Communication::UI::SliderResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(uiResponse->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << uiResponse->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
- NsSmartDeviceLinkRPCV2::Slider_response* response = new NsSmartDeviceLinkRPCV2::Slider_response();
-
- response->set_success(true);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS !=
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(uiResponse->getResult()))
- {
- response->set_success(false);
- }
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SliderID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_sliderPosition(uiResponse->get_sliderPosition());
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(uiResponse->getResult()));
- response->setCorrelationID(it->second->correlationID);
-
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(response, appId);
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETAPPICONRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A SetAppIcon response has been income");
- NsRPC2Communication::UI::SetAppIconResponse* uiResponse = static_cast<NsRPC2Communication::UI::SetAppIconResponse*>(msg);
-
- MessageChains::iterator it = core->mMessageChaining.find(uiResponse->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << uiResponse->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- NsSmartDeviceLinkRPCV2::Result::ResultInternal resultCode
- = static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(uiResponse->getResult());
-
- NsSmartDeviceLinkRPCV2::SetAppIcon_response* response = new NsSmartDeviceLinkRPCV2::SetAppIcon_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SetAppIconID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_resultCode(resultCode);
- response->setCorrelationID(it->second->correlationID);
- NsSmartDeviceLinkRPCV2::Result::SUCCESS == resultCode ? response->set_success(true) : response->set_success(false);
-
- MobileHandler::getInstance().sendRPCMessage(response, it->second->connectionKey);
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SCROLLABLEMESSAGERESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A ScrollableMessageID response has been income");
- NsRPC2Communication::UI::ScrollableMessageResponse* uiResponse
- = static_cast<NsRPC2Communication::UI::ScrollableMessageResponse*>(msg);
-
- MessageChains::iterator it = core->mMessageChaining.find(uiResponse->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << uiResponse->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
- NsSmartDeviceLinkRPCV2::Result::ResultInternal resultCode
- = static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(uiResponse->getResult());
-
- NsSmartDeviceLinkRPCV2::ScrollableMessage_response* response = new NsSmartDeviceLinkRPCV2::ScrollableMessage_response();
- if (!response)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Can't create scrollable message response object");
- return;
- }
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ScrollableMessageID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_resultCode(resultCode);
- response->setCorrelationID(it->second->correlationID);
- NsSmartDeviceLinkRPCV2::Result::SUCCESS == resultCode ? response->set_success(true) : response->set_success(false);
-
- MobileHandler::getInstance().sendRPCMessage(response, it->second->connectionKey);
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONDEVICECHOSEN:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An OnDeviceChosen notification has been income");
- NsRPC2Communication::UI::OnDeviceChosen* chosen = (NsRPC2Communication::UI::OnDeviceChosen*)msg;
- const std::string& deviceName = chosen->get_deviceName();
- //const NsConnectionHandler::CDevice* device = core->mDeviceList.findDeviceByName(deviceName);
- for(std::map<int, DeviceStorage>::const_iterator it = core->mDevices.begin();
- it != core->mDevices.end();
- ++it)
- {
- if ( !it->second.getUserFriendlyName().compare(deviceName) )
- {
- ConnectionHandler::getInstance().connectToDevice(it->first);
- return;
- }
- }/*
- if (device)
- {
- const NsConnectionHandler::tDeviceHandle& handle = device->getDeviceHandle();
- ConnectionHandler::getInstance().connectToDevice(handle);
- }*/
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETSUPPORTEDLANGUAGESRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Get Supported Languages for UI response is received.");
- NsRPC2Communication::UI::GetSupportedLanguagesResponse * languages =
- static_cast<NsRPC2Communication::UI::GetSupportedLanguagesResponse*>(msg);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS == languages->getResult())
- {
- core->mUISupportedLanguages = languages->get_languages();
- }
-
- --core->mHMIStartupFlag;
- if (!core->mHMIStartupFlag)
- {
- ConnectionHandler::getInstance().startTransportManager();
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONLANGUAGECHANGE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "UI::OnLanguageChange is received from HMI.");
- NsRPC2Communication::UI::OnLanguageChange * languageChange =
- static_cast<NsRPC2Communication::UI::OnLanguageChange*>(msg);
- if ( languageChange->get_hmiDisplayLanguage().get() != core->mUiLanguageV2.get() )
- {
- // TODO(PV): clear mess around versions up.
- core->mUiLanguageV2 = languageChange->get_hmiDisplayLanguage();
- core->mUiLanguageV1.set(static_cast<NsSmartDeviceLinkRPC::Language::LanguageInternal>(languageChange->get_hmiDisplayLanguage().get()));
-
- /*const AppMgrRegistry::ItemsMap & allRegisteredApplications = AppMgrRegistry::getInstance().getItems();
- for( AppMgrRegistry::ItemsMap::const_iterator it = allRegisteredApplications.begin();
- it != allRegisteredApplications.end();
- ++it )*/
- for(std::map<int,Application*>::const_iterator it = core->mApplications.begin();
- it != core->mApplications.end();
- ++it)
- {
- if ( 0 != it->second )
- {
- if (NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE
- != it->second->getApplicationHMIStatusLevel() &&
- 1 != it->second->getProtocolVersion() )
- {
- NsSmartDeviceLinkRPCV2::OnLanguageChange * languageChangeToApp =
- new NsSmartDeviceLinkRPCV2::OnLanguageChange;
- languageChangeToApp->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- languageChangeToApp->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnLanguageChangeID);
- languageChangeToApp->set_hmiDisplayLanguage(core->mUiLanguageV2);
- languageChangeToApp->set_language(core->mVrLanguageV2);
- MobileHandler::getInstance().sendRPCMessage(languageChangeToApp, it->first);
- }
- }
- }
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__CHANGEREGISTRATIONRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "UI::ChangeRegistrationResponse is received from HMI.");
- NsRPC2Communication::UI::ChangeRegistrationResponse * response =
- static_cast<NsRPC2Communication::UI::ChangeRegistrationResponse*>(msg);
- MessageChains::iterator it = core->mMessageChaining.find(response->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << response->getId());
- return;
- }
- Application_v2* app = static_cast<Application_v2*>(
- core->getItem(it->second->connectionKey));
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- // TODO: exchange when result is not succes.
- if(core->decreaseMessageChain(it))
- {
- if ( NsSmartDeviceLinkRPCV2::Result::SUCCESS != response->getResult() )
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::ChangeRegistrationID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , it->second->correlationID
- , false
- , it->second->connectionKey);
- // TODO(PV): not sure if this is correct behaviour
- app->setHMIDisplayLanguageDesired(core->mUiLanguageV2);
- }
- else
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::ChangeRegistrationID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , it->second->correlationID
- , true
- , it->second->connectionKey);
- }
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << it->second->connectionKey);
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SHOWCONSTANTTBTRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "UI::ShowConstantTBTResponse is received from HMI.");
- NsRPC2Communication::UI::ShowConstantTBTResponse * response =
- static_cast<NsRPC2Communication::UI::ShowConstantTBTResponse*>(msg);
-
- MessageChains::iterator it = core->mMessageChaining.find(response->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << response->getId());
- return;
- }
- Application_v2* app = static_cast<Application_v2*>(
- core->getItem(it->second->connectionKey));
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- sendResponse<NsSmartDeviceLinkRPCV2::ShowConstantTBT_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::ShowConstantTBTID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , it->second->correlationID
- , response->getResult() == NsSmartDeviceLinkRPCV2::Result::SUCCESS
- , it->second->connectionKey);
-
- core->decreaseMessageChain(it);
- break;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__UPDATETURNLISTRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "UI::UpdateTurnListResponse is received from HMI.");
- NsRPC2Communication::UI::UpdateTurnListResponse * response =
- static_cast<NsRPC2Communication::UI::UpdateTurnListResponse*>(msg);
-
- MessageChains::iterator it = core->mMessageChaining.find(response->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << response->getId());
- return;
- }
- Application_v2* app = static_cast<Application_v2*>(core->getItem(it->second->connectionKey));
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- sendResponse<NsSmartDeviceLinkRPCV2::UpdateTurnList_response
- , NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::UpdateTurnListID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , it->second->correlationID
- , response->getResult() == NsSmartDeviceLinkRPCV2::Result::SUCCESS
- , it->second->connectionKey);
-
- core->decreaseMessageChain(it);
- break;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DIALNUMBERRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DialNambor response has been income");
- NsRPC2Communication::UI::DialNumberResponse* object = static_cast<NsRPC2Communication::UI::DialNumberResponse*>(msg);
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- if (2 == app->getProtocolVersion())
- {
- NsSmartDeviceLinkRPCV2::DialNumber_response* response = new NsSmartDeviceLinkRPCV2::DialNumber_response();
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DialNumberID);
- NsSmartDeviceLinkRPCV2::Result::ResultInternal result = static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult());
- response->set_resultCode(result);
- NsSmartDeviceLinkRPCV2::Result::SUCCESS == static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult())
- ? response->set_success(true) : response->set_success(false);
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName());
- MobileHandler::getInstance().sendRPCMessage(response, it->second->connectionKey);
- } else
- {
- LOG4CPLUS_WARN(mLogger, "This command is available in protocol V2 only!");
- }
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONTBTCLIENTSTATE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "UI::OnTBTClientState is received from HMI.");
- NsRPC2Communication::UI::OnTBTClientState * notification =
- static_cast<NsRPC2Communication::UI::OnTBTClientState*>(msg);
-
- Application* app = core->getItem(notification->get_appId());
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- if (2 == app->getProtocolVersion())
- {
- NsSmartDeviceLinkRPCV2::OnTBTClientState* onTBTClientState = new NsSmartDeviceLinkRPCV2::OnTBTClientState;
- onTBTClientState->set_state(notification-> get_state());
- onTBTClientState->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnTBTClientStateID);
- onTBTClientState->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- MobileHandler::getInstance().sendRPCMessage(onTBTClientState, app->getAppID());
- }
- else
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "This command is available in protocol V2 only!");
- }
- break;
- }
- default:
- LOG4CPLUS_INFO_EXT(mLogger, " Not UI RPC message " << msg->getMethod() << " has been received!");
- }
-
- switch(msg->getMethod())
- {
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETSUPPORTEDLANGUAGESRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Get Supported Languages for UI response is received.");
- NsRPC2Communication::VR::GetSupportedLanguagesResponse * languages =
- static_cast<NsRPC2Communication::VR::GetSupportedLanguagesResponse*>(msg);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS == languages->getResult())
- {
- core->mVRSupportedLanguages = languages->get_languages();
- }
-
- --core->mHMIStartupFlag;
- if (!core->mHMIStartupFlag)
- {
- ConnectionHandler::getInstance().startTransportManager();
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETCAPABILITIESRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A GetVRCapabilities response has been income");
- NsRPC2Communication::VR::GetCapabilitiesResponse * vrCaps =
- (NsRPC2Communication::VR::GetCapabilitiesResponse*)msg;
- core->mVrCapabilitiesV2.set(vrCaps->get_capabilities());
-
- --core->mHMIStartupFlag;
- if (!core->mHMIStartupFlag)
- {
- ConnectionHandler::getInstance().startTransportManager();
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETLANGUAGERESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "GetLanguageResponse from VR is received");
- NsRPC2Communication::VR::GetLanguageResponse* getLang = (NsRPC2Communication::VR::GetLanguageResponse*)msg;
- core->mVrLanguageV2 = getLang->get_language();
- NsSmartDeviceLinkRPC::Language langV1;
- langV1.set((NsSmartDeviceLinkRPC::Language::LanguageInternal)getLang->get_language().get());
- core->mVrLanguageV1 = langV1;
-
- --core->mHMIStartupFlag;
- if (!core->mHMIStartupFlag)
- {
- ConnectionHandler::getInstance().startTransportManager();
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VR__ADDCOMMANDRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An AddCommand VR response has been income");
- NsRPC2Communication::VR::AddCommandResponse* object = (NsRPC2Communication::VR::AddCommandResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- /*int appId = app->getAppID();
- unsigned int cmdId = core->mRequestMapping.findRequestIdAssignedToMessage(object->getId());
- app->decrementUnrespondedRequestCount(cmdId);*/
- unsigned int correlationID = it->second->correlationID;
- int connectionKey = it->second->connectionKey;
- if(core->decreaseMessageChain(it))
- {
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::AddCommand_response* response = new NsSmartDeviceLinkRPC::AddCommand_response();
- response->set_success(true);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName());
- MobileHandler::getInstance().sendRPCMessage(response, connectionKey);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::AddCommand_response* response = new NsSmartDeviceLinkRPCV2::AddCommand_response();
- response->set_success(true);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::AddCommandID);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName());
- MobileHandler::getInstance().sendRPCMessage(response, connectionKey);
- break;
- }
- }
- }
-
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VR__DELETECOMMANDRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A DeleteCommand VR response has been income");
- NsRPC2Communication::VR::DeleteCommandResponse* object = (NsRPC2Communication::VR::DeleteCommandResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- /*int appId = app->getAppID();
- unsigned int cmdId = core->mRequestMapping.findRequestIdAssignedToMessage(object->getId());
- app->decrementUnrespondedRequestCount(cmdId);*/
- int connectionKey = it->second->connectionKey;
- unsigned int correlationID = it->second->correlationID;
- if(core->decreaseMessageChain(it))
- {
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::DeleteCommand_response* response = new NsSmartDeviceLinkRPC::DeleteCommand_response();
- // TODO(PV): use here result from message chain.
- response->set_success(true);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName());
- MobileHandler::getInstance().sendRPCMessage(response, connectionKey);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::DeleteCommand_response* response = new NsSmartDeviceLinkRPCV2::DeleteCommand_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::DeleteCommandID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- // TODO(PV): use here result from message chain.
- response->set_success(true);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- response->setCorrelationID(correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName());
- MobileHandler::getInstance().sendRPCMessage(response, connectionKey);
- break;
- }
- }
- }
-
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VR__ONCOMMAND:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An OnCommand VR notification has been invoked");
- NsRPC2Communication::VR::OnCommand* object = (NsRPC2Communication::VR::OnCommand*)msg;
- Application* app = core->getApplicationByCommand(object->get_cmdID(), object->get_appId());
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::OnCommand* event = new NsSmartDeviceLinkRPC::OnCommand();
- event->set_cmdID(object->get_cmdID());
- event->set_triggerSource(NsSmartDeviceLinkRPC::TriggerSource::TS_VR);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(event, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::OnCommand* event = new NsSmartDeviceLinkRPCV2::OnCommand();
- event->set_cmdID(object->get_cmdID());
- event->set_triggerSource(NsSmartDeviceLinkRPCV2::TriggerSource::TS_VR);
- event->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnCommandID);
- event->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(event, appId);
- break;
- }
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VR__ONLANGUAGECHANGE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "VR::OnLanguageChange is received from HMI.");
- NsRPC2Communication::VR::OnLanguageChange * languageChange =
- static_cast<NsRPC2Communication::VR::OnLanguageChange*>(msg);
- if ( languageChange->get_language().get() != core->mVrLanguageV2.get() )
- {
- // TODO(PV): clear mess around versions up.
- core->mVrLanguageV2 = languageChange->get_language();
- core->mVrLanguageV1.set(static_cast<NsSmartDeviceLinkRPC::Language::LanguageInternal>(languageChange->get_language().get()));
-
- for(std::map<int, Application*>::const_iterator it = core->mApplications.begin();
- it != core->mApplications.end();
- ++it)
- {
- if ( 0 != it->second &&
- 1 != it->second->getProtocolVersion() )
- {
- NsSmartDeviceLinkRPCV2::OnLanguageChange * languageChangeToApp =
- new NsSmartDeviceLinkRPCV2::OnLanguageChange;
- languageChangeToApp->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- languageChangeToApp->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnLanguageChangeID);
- languageChangeToApp->set_hmiDisplayLanguage(core->mUiLanguageV2);
- languageChangeToApp->set_language(core->mVrLanguageV2);
- MobileHandler::getInstance().sendRPCMessage(languageChangeToApp, it->first);
- }
- }
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VR__CHANGEREGISTRATIONRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "VR::ChangeRegistrationResponse is received from HMI.");
- NsRPC2Communication::VR::ChangeRegistrationResponse * response =
- static_cast<NsRPC2Communication::VR::ChangeRegistrationResponse*>(msg);
- MessageChains::iterator it = core->mMessageChaining.find(response->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << response->getId());
- return;
- }
- Application_v2* app = static_cast<Application_v2*>(core->getItem(it->second->connectionKey));
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- // TODO(PV): exchange when result is not succes.
- int connectionKey = it->second->connectionKey;
- unsigned int correlationID = it->second->correlationID;
-
- if(core->decreaseMessageChain(it))
- {
- if ( NsSmartDeviceLinkRPCV2::Result::SUCCESS != response->getResult() )
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::ChangeRegistrationID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , correlationID
- , false
- , connectionKey);
- // TODO(PV): not sure if this is correct behaviour
- app->setLanguageDesired(core->mVrLanguageV2);
- }
- else
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::ChangeRegistrationID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , correlationID
- , true
- , connectionKey);
- }
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << connectionKey);
- }
-
- return;
- }
- default:
- LOG4CPLUS_INFO_EXT(mLogger, " Not VR RPC message " << msg->getMethod() << " has been received!");
- }
-
- switch(msg->getMethod())
- {
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETSUPPORTEDLANGUAGESRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Get Supported Languages for UI response is received.");
- NsRPC2Communication::TTS::GetSupportedLanguagesResponse * languages =
- static_cast<NsRPC2Communication::TTS::GetSupportedLanguagesResponse*>(msg);
- if (NsSmartDeviceLinkRPCV2::Result::SUCCESS == languages->getResult())
- {
- core->mTTSSupportedLanguages = languages->get_languages();
- }
-
- --core->mHMIStartupFlag;
- if (!core->mHMIStartupFlag)
- {
- ConnectionHandler::getInstance().startTransportManager();
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETCAPABILITIESRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A GetTTSCapabilities response has been income");
- NsRPC2Communication::TTS::GetCapabilitiesResponse * ttsCaps = (NsRPC2Communication::TTS::GetCapabilitiesResponse*)msg;
- core->mSpeechCapabilitiesV2.set(ttsCaps->get_capabilities());
-
- --core->mHMIStartupFlag;
- if (!core->mHMIStartupFlag)
- {
- ConnectionHandler::getInstance().startTransportManager();
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETLANGUAGERESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "GetLanguage Response from TTS is received.");
- NsRPC2Communication::TTS::GetLanguageResponse* getLang = (NsRPC2Communication::TTS::GetLanguageResponse*)msg;
- core->mTtsLanguageV2 = getLang->get_language();
-
- --core->mHMIStartupFlag;
- if (!core->mHMIStartupFlag)
- {
- ConnectionHandler::getInstance().startTransportManager();
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__SPEAKRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A Speak response has been income");
- NsRPC2Communication::TTS::SpeakResponse* object = (NsRPC2Communication::TTS::SpeakResponse*)msg;
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::Speak_response* response = new NsSmartDeviceLinkRPC::Speak_response();
- //response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- NsSmartDeviceLinkRPCV2::Result::SUCCESS == static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult())
- ? response->set_success(true) : response->set_success(false);
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName());
- MobileHandler::getInstance().sendRPCMessage(response, it->second->connectionKey);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::Speak_response* response = new NsSmartDeviceLinkRPCV2::Speak_response();
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::SpeakID);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- NsSmartDeviceLinkRPCV2::Result::SUCCESS == static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult())
- ? response->set_success(true) : response->set_success(false);
- response->setCorrelationID(it->second->correlationID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << it->second->connectionKey);
- MobileHandler::getInstance().sendRPCMessage(response, it->second->connectionKey);
- break;
- }
- }
- core->decreaseMessageChain(it);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__ONLANGUAGECHANGE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "TTS::OnLanguageChange is received from HMI.");
- NsRPC2Communication::TTS::OnLanguageChange * languageChange =
- static_cast<NsRPC2Communication::TTS::OnLanguageChange*>(msg);
- if ( languageChange->get_language().get() != core->mTtsLanguageV2.get() )
- {
- // TODO(PV): clear mess around versions up.
- core->mTtsLanguageV2 = languageChange->get_language();
- core->mTtsLanguageV1.set(static_cast<NsSmartDeviceLinkRPC::Language::LanguageInternal>(languageChange->get_language().get()));
-
- for( std::map<int, Application*>::const_iterator it = core->mApplications.begin();
- it != core->mApplications.end();
- ++it )
- {
- if ( 0 != it->second &&
- 1 != it->second->getProtocolVersion() )
- {
- NsSmartDeviceLinkRPCV2::OnLanguageChange * languageChangeToApp =
- new NsSmartDeviceLinkRPCV2::OnLanguageChange;
- languageChangeToApp->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- languageChangeToApp->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnLanguageChangeID);
- languageChangeToApp->set_hmiDisplayLanguage(core->mUiLanguageV2);
- languageChangeToApp->set_language(core->mTtsLanguageV2);
- MobileHandler::getInstance().sendRPCMessage(languageChangeToApp, it->first);
- }
- }
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__CHANGEREGISTRATIONRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "TTS::ChangeRegistrationResponse is received from HMI.");
- NsRPC2Communication::TTS::ChangeRegistrationResponse * response =
- static_cast<NsRPC2Communication::TTS::ChangeRegistrationResponse*>(msg);
- MessageChains::iterator it = core->mMessageChaining.find(response->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << response->getId());
- return;
- }
- Application_v2* app = static_cast<Application_v2*>(core->getItem(it->second->connectionKey));
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int connectionKey = it->second->connectionKey;
- unsigned int correlationID = it->second->correlationID;
-
- if(core->decreaseMessageChain(it))
- {
- if ( NsSmartDeviceLinkRPCV2::Result::SUCCESS != response->getResult() )
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::ChangeRegistrationID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , correlationID
- , false
- , connectionKey);
- // TODO(PV): not sure if this is correct behaviour
- app->setLanguageDesired(core->mVrLanguageV2);
- }
- else
- {
- sendResponse<NsSmartDeviceLinkRPCV2::ChangeRegistration_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::ChangeRegistrationID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , correlationID
- , true
- , connectionKey);
- }
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << connectionKey);
- }
-
- return;
- }
- default:
- LOG4CPLUS_INFO_EXT(mLogger, " Not TTS RPC message " << msg->getMethod() << " has been received!");
- }
-
- switch(msg->getMethod())
- {
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ACTIVATEAPP:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "ActivateApp has been received!");
- NsRPC2Communication::BasicCommunication::ActivateApp* object = static_cast<NsRPC2Communication::BasicCommunication::ActivateApp*>(msg);
- if ( !object )
- {
- LOG4CPLUS_WARN(mLogger, "Couldn't cast object to ActivateApp type");
- sendResponse<NsRPC2Communication::BasicCommunication::ActivateAppResponse>(
- object->getId(), NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR);
- return;
- }
-
- Application * app = core->getItem(object->get_appId());
- if ( !app )
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application with id " << object->get_appId() << " found!");
- sendResponse<NsRPC2Communication::BasicCommunication::ActivateAppResponse>(
- object->getId(), NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- return;
- }
-
- if ( !core->performActivitiesForActivatingApp(app) )
- {
- sendResponse<NsRPC2Communication::BasicCommunication::ActivateAppResponse>(
- object->getId(), NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR);
- }
- else
- {
- sendResponse<NsRPC2Communication::BasicCommunication::ActivateAppResponse>(
- object->getId(), NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, "New app " << app->getName() << " id " << app->getAppID() << " activated!");
- return;
- }
- /*case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_SmartDeviceLinkCORE__DEACTIVATEAPP:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "DeactivateApp has been received!");
- NsRPC2Communication::BasicCommunication::DeactivateApp* object = static_cast<NsRPC2Communication::BasicCommunication::DeactivateApp*>(msg);
- if ( !object )
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Couldn't cast object to DeactivateApp type");
- return;
- }
-
- Application* currentApp = AppMgrRegistry::getInstance().getActiveItem();
- if (!currentApp)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "No application is currently active");
- return;
- }
-
- //switch(currentApp->getApplicationHMIStatusLevel())
- //{
- // case NsSmartDeviceLinkRPC::HMILevel::HMI_FULL:
- // break;
- // case NsSmartDeviceLinkRPC::HMILevel::HMI_LIMITED:
- // break;
- // case NsSmartDeviceLinkRPC::HMILevel::HMI_BACKGROUND:
- // break;
- // case NsSmartDeviceLinkRPC::HMILevel::HMI_NONE:
- // break;
- //}
-
- break;
- }*/
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__SENDDATA:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "SendData request has been received!");
- NsRPC2Communication::BasicCommunication::SendData* object = static_cast<NsRPC2Communication::BasicCommunication::SendData*>(msg);
- core->mSyncPManager.setRawData( object->get_data() );
- Application* app = core->getActiveItem();
- if(!app)
- {
- LOG4CPLUS_WARN(mLogger, " No active application found!");
- return;
- }
-
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::OnEncodedSyncPData* encodedNotification = new NsSmartDeviceLinkRPC::OnEncodedSyncPData;
- encodedNotification->set_data(core->mSyncPManager.getPData());
- MobileHandler::getInstance().sendRPCMessage( encodedNotification, appId );
- NsRPC2Communication::BasicCommunication::SendDataResponse* response = new NsRPC2Communication::BasicCommunication::SendDataResponse;
- response->setId(object->getId());
- response->setResult(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- HMIHandler::getInstance().sendResponse(response);
- break;
- }
- case 2:
- {
- NsRPC2Communication::BasicCommunication::SendDataResponse* response = new NsRPC2Communication::BasicCommunication::SendDataResponse;
- response->setId(object->getId());
- const std::string* urlPtr = object->get_url();
- const int* timeoutPtr = object->get_timeout();
- if(urlPtr)
- {
- const std::string& url = *urlPtr;
- const int& timeout = timeoutPtr ? *timeoutPtr : 0;
- LOG4CPLUS_INFO_EXT(mLogger, "SendData about to send at " << url << " timeout " << timeout);
- thread_data* data = new thread_data;
- data->pdata = core->mSyncPManager.getPData();
- data->timeout = timeout;
- data->url = url;
- int rc = pthread_create(&sendingThread, 0, SendPData,
- (void *) data);
- if (rc)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Couldn't start a thread: return code from pthread_create() is " << rc);
- response->setResult(NsSmartDeviceLinkRPCV2::Result::GENERIC_ERROR);
- HMIHandler::getInstance().sendResponse(response);
- return;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Data sending thread started!");
- }
- else
- {
- NsSmartDeviceLinkRPCV2::OnEncodedSyncPData* encodedNotification = new NsSmartDeviceLinkRPCV2::OnEncodedSyncPData;
- encodedNotification->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnEncodedSyncPDataID);
- encodedNotification->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- encodedNotification->set_data(core->mSyncPManager.getPData());
- MobileHandler::getInstance().sendRPCMessage( encodedNotification, appId );
- }
- response->setResult(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- HMIHandler::getInstance().sendResponse(response);
- break;
- }
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETAPPLIST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "GetAppList request has been received!");
- NsRPC2Communication::BasicCommunication::GetAppList* object = static_cast<NsRPC2Communication::BasicCommunication::GetAppList*>(msg);
- NsRPC2Communication::BasicCommunication::GetAppListResponse* response = new NsRPC2Communication::BasicCommunication::GetAppListResponse;
- response->setId(object->getId());
- std::vector< NsSmartDeviceLinkRPCV2::HMIApplication> hmiApps;
-
- for(std::map<int,Application*>::const_iterator it = core->mApplications.begin();
- it != core->mApplications.end();
- ++ it)
- {
- NsSmartDeviceLinkRPCV2::HMIApplication hmiApp;
- Application* app = it->second;
- if(!app)
- {
- LOG4CPLUS_WARN(mLogger, " null-application found!");
- continue;
- }
- if(app->getAppID() != it->first)
- {
- continue;
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, "Adding an application " << app->getName()
- << " application id " << app->getAppID()
- << " is media? " << app->getIsMediaApplication() );
-
- /*const NsConnectionHandler::tDeviceHandle& deviceHandle = core->mDeviceHandler.findDeviceAssignedToSession(app->getAppID());
- const NsConnectionHandler::CDevice* device = core->mDeviceList.findDeviceByHandle(deviceHandle);
- if(!device)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Cannot retreive current device name for the message with app ID " << app->getAppID() << " !");
- return;
- }*/
- //const std::string& deviceName = "DEVICE";//device->getUserFriendlyName();
-
- hmiApp.set_appName(app->getName());
- hmiApp.set_appId(app->getAppID());
- hmiApp.set_isMediaApplication(app->getIsMediaApplication());
-
- std::map<int,DeviceStorage>::const_iterator dev = core->mDevices.find( app->getDeviceHandle() );
- std::string deviceName = "";
- if ( core->mDevices.end() != dev )
- {
- deviceName = dev->second.getUserFriendlyName();
- }
-
- hmiApp.set_deviceName(deviceName);
-
- if ( 1 == app->getProtocolVersion() )
- {
- Application_v1 * app1 = static_cast<Application_v1*>(app);
- hmiApp.set_hmiDisplayLanguageDesired(static_cast<NsSmartDeviceLinkRPCV2::Language::LanguageInternal>(app1->getLanguageDesired().get()));
- hmiApp.set_languageDesired(static_cast<NsSmartDeviceLinkRPCV2::Language::LanguageInternal>(app1->getLanguageDesired().get()));
- }
- if ( 2 == app->getProtocolVersion() )
- {
- Application_v2 * app2 = static_cast<Application_v2*>(app);
- hmiApp.set_hmiDisplayLanguageDesired(app2->getHMIDisplayLanguageDesired());
- hmiApp.set_languageDesired(app2->getLanguageDesired());
- hmiApp.set_appType(app2->getAppType());
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, "Added an application " << hmiApp.get_appName()
- << " application id " << hmiApp.get_appId()
- << " is media? " << hmiApp.get_isMediaApplication() );
- hmiApps.push_back(hmiApp);
- }
- if(!hmiApps.empty())
- {
- response->set_appList(hmiApps);
- response->setResult(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- }
- else
- {
- LOG4CPLUS_WARN(mLogger, " Application list is empty!");
- response->setResult(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- }
-
- Json::Value commandJson = NsRPC2Communication::Marshaller::toJSON( response );
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForCommandsToHMI: received command text: " << commandJson);
- HMIHandler::getInstance().sendResponse(response);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETDEVICELIST:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A GetDeviceList request has been income");
- NsRPC2Communication::BasicCommunication::GetDeviceList* getDevList = (NsRPC2Communication::BasicCommunication::GetDeviceList*)msg;
- NsRPC2Communication::BasicCommunication::GetDeviceListResponse* response = new NsRPC2Communication::BasicCommunication::GetDeviceListResponse;
- response->setId(getDevList->getId());
- response->setResult(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- ConnectionHandler::getInstance().startDevicesDiscovery();
- HMIHandler::getInstance().sendResponse(response);
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPDEACTIVATED:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "OnAppDeactivated has been received.");
- NsRPC2Communication::BasicCommunication::OnAppDeactivated * appDeacivated =
- static_cast<NsRPC2Communication::BasicCommunication::OnAppDeactivated*>(msg);
-
- Application* currentApp = core->getActiveItem();
- if ( !currentApp )
- {
- LOG4CPLUS_INFO(mLogger, "No application is currently acitve.");
- return;
- }
- if ( currentApp->getAppID() != appDeacivated->get_appId() )
- {
- LOG4CPLUS_WARN(mLogger, "Currently active application is not the same as on HMI.");
- return;
- }
-
- // TODO(PV): don't forget after refactoring: get to this switch only if not in NONE
- switch ( appDeacivated->get_reason().get() )
- {
- case NsSmartDeviceLinkRPCV2::DeactivateReason::AUDIO:
- case NsSmartDeviceLinkRPCV2::DeactivateReason::PHONECALL:
- {
- if ( currentApp->getIsMediaApplication() )
- {
- currentApp->setApplicationAudioStreamingState(
- NsSmartDeviceLinkRPCV2::AudioStreamingState::NOT_AUDIBLE);
- }
- currentApp->setApplicationHMIStatusLevel(
- NsSmartDeviceLinkRPCV2::HMILevel::HMI_BACKGROUND);
- break;
-
- }
- case NsSmartDeviceLinkRPCV2::DeactivateReason::NAVIGATIONMAP:
- case NsSmartDeviceLinkRPCV2::DeactivateReason::PHONEMENU:
- case NsSmartDeviceLinkRPCV2::DeactivateReason::SYNCSETTINGS:
- case NsSmartDeviceLinkRPCV2::DeactivateReason::GENERAL:
- {
- if ( currentApp->getIsMediaApplication() )
- {
- // TODO(PV): for media it seems for FULL it is neccessarily that its audio is AUDIBLE.
- if ( NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL ==
- currentApp->getApplicationHMIStatusLevel() )
- {
- currentApp->setApplicationHMIStatusLevel(
- NsSmartDeviceLinkRPCV2::HMILevel::HMI_LIMITED);
- }
- }
- else
- {
- currentApp->setApplicationHMIStatusLevel(
- NsSmartDeviceLinkRPCV2::HMILevel::HMI_BACKGROUND);
- }
- break;
- }
- default:
- {
- // TODO(PV): what should be done in this case?
- return;
- }
- }
-
- core->sendHMINotificationToMobile( currentApp );
- return;
- }
- default:
- LOG4CPLUS_INFO_EXT(mLogger, " Not SmartDeviceLinkCore RPC message " << msg->getMethod() << " has been received!");
- }
-
- switch(msg->getMethod())
- {
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLETYPERESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A GetVehicleType response has been income");
- NsRPC2Communication::VehicleInfo::GetVehicleTypeResponse* getVehType = (NsRPC2Communication::VehicleInfo::GetVehicleTypeResponse*)msg;
- core->mVehicleType = getVehType->get_vehicleType();
-
- --core->mHMIStartupFlag;
- if (!core->mHMIStartupFlag)
- {
- ConnectionHandler::getInstance().startTransportManager();
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLEDATARESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A GetVehicleData response has been income");
- NsRPC2Communication::VehicleInfo::GetVehicleDataResponse* object = static_cast<NsRPC2Communication::VehicleInfo::GetVehicleDataResponse*>(msg);
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- int appId = app->getAppID();
-
- if (2 == app->getProtocolVersion())
- {
- NsSmartDeviceLinkRPCV2::GetVehicleData_response* response = new NsSmartDeviceLinkRPCV2::GetVehicleData_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::GetVehicleDataID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::SUCCESS);
- response->set_success(true);
- if (object->get_gps())
- {
- response->set_gps(*(object->get_gps()));
- }
- if (object->get_speed())
- {
- response->set_speed(*(object->get_speed()));
- }
- if (object->get_rpm())
- {
- response->set_rpm(*(object->get_rpm()));
- }
- if (object->get_fuelLevel())
- {
- response->set_fuelLevel(*(object->get_fuelLevel()));
- }
- if (object->get_avgFuelEconomy())
- {
- response->set_avgFuelEconomy(*(object->get_avgFuelEconomy()));
- }
- if (object->get_batteryVoltage())
- {
- response->set_batteryVoltage(*(object->get_batteryVoltage()));
- }
- if (object->get_externalTemperature())
- {
- response->set_externalTemperature(*(object->get_externalTemperature()));
- }
- if (object->get_vin())
- {
- response->set_vin(*(object->get_vin()));
- }
- if (object->get_prndl())
- {
- response->set_prndl(*(object->get_prndl()));
- }
- if (object->get_tirePressure())
- {
- response->set_tirePressure(*(object->get_tirePressure()));
- }
- if (object->get_batteryPackVoltage())
- {
- response->set_batteryPackVoltage(*(object->get_batteryPackVoltage()));
- }
- if (object->get_batteryPackCurrent())
- {
- response->set_batteryPackCurrent(*(object->get_batteryPackCurrent()));
- }
- if (object->get_batteryPackTemperature())
- {
- response->set_batteryPackTemperature(*(object->get_batteryPackTemperature()));
- }
- if (object->get_engineTorque())
- {
- response->set_engineTorque(*(object->get_engineTorque()));
- }
- if (object->get_odometer())
- {
- response->set_odometer(*(object->get_odometer()));
- }
- if (object->get_tripOdometer())
- {
- response->set_tripOdometer(*(object->get_tripOdometer()));
- }
- if (object->get_satRadioESN())
- {
- response->set_satRadioESN(*(object->get_satRadioESN()));
- }
- response->setCorrelationID(it->second->correlationID);
-
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName());
- MobileHandler::getInstance().sendRPCMessage(response, it->second->connectionKey);
- core->decreaseMessageChain(it);
- } else
- {
- LOG4CPLUS_WARN(mLogger, "GetVehicleData is present in Protocol V2 only!!!");
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__ONVEHICLEDATA:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " An OnVehicleData notification has been income");
- NsRPC2Communication::VehicleInfo::OnVehicleData* object = static_cast<NsRPC2Communication::VehicleInfo::OnVehicleData*>(msg);
- if (object->get_gps())
- {
- }
- if (object->get_speed())
- {
- }
- if (object->get_rpm())
- {
- }
- if (object->get_fuelLevel())
- {
- }
- if (object->get_avgFuelEconomy())
- {
- }
- if (object->get_batteryVoltage())
- {
- }
- if (object->get_externalTemperature())
- {
- }
- if (object->get_vin())
- {
- }
- if (object->get_prndl())
- {
- NsSmartDeviceLinkRPCV2::VehicleDataType vehicleDataName = NsSmartDeviceLinkRPCV2::VehicleDataType(NsSmartDeviceLinkRPCV2::VehicleDataType::VehicleDataTypeInternal::VEHICLEDATA_PRNDLSTATUS);
- std::vector<Application*> result;
- result.clear();
- core->mVehicleDataMapping.findRegistryItemsSubscribedToVehicleData(vehicleDataName, result);
- if (0 < result.size())
- {
- LOG4CPLUS_INFO_EXT(mLogger, " There are " << result.size() <<" subscribers on PRNDL notification!");
- for (std::vector<Application*>::iterator it = result.begin(); it != result.end(); it++)
- {
- Application_v2* app = (Application_v2*)(*it);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with the registry item" );
- continue;
- }
- int appId = app->getAppID();
- LOG4CPLUS_INFO_EXT(mLogger, " An OnVehicleData PRNDL notification sending to " << appId);
- NsSmartDeviceLinkRPCV2::OnVehicleData* notification = new NsSmartDeviceLinkRPCV2::OnVehicleData();
- notification->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnVehicleDataID);
- notification->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- notification->set_prndl(*(object->get_prndl()));
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(notification, appId);
- }
- } else
- {
- LOG4CPLUS_INFO_EXT(mLogger, " No subscribers found!");
- }
- }
- if (object->get_tirePressure())
- {
- }
- if (object->get_batteryPackVoltage())
- {
- }
- if (object->get_batteryPackCurrent())
- {
- }
- if (object->get_batteryPackTemperature())
- {
- }
- if (object->get_engineTorque())
- {
- }
- if (object->get_odometer())
- {
- }
- if (object->get_tripOdometer())
- {
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETDTCSRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, " A GetDTCs response has been income");
- NsRPC2Communication::VehicleInfo::GetDTCsResponse* object = static_cast<NsRPC2Communication::VehicleInfo::GetDTCsResponse*>(msg);
- MessageChains::iterator it = core->mMessageChaining.find(object->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << object->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- if (2 == app->getProtocolVersion())
- {
- NsSmartDeviceLinkRPCV2::GetDTCs_response* response = new NsSmartDeviceLinkRPCV2::GetDTCs_response();
- response->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::GetDTCsID);
- response->setCorrelationID(it->second->correlationID);
- response->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- response->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult()));
- NsSmartDeviceLinkRPCV2::Result::SUCCESS == static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(object->getResult())
- ? response->set_success(true) : response->set_success(false);
- response->setCorrelationID(it->second->correlationID);
- if (object->get_dtcList())
- {
- LOG4CPLUS_INFO_EXT(mLogger, " dtcList is present! ");
- response->set_dtcList(*(object->get_dtcList()));
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << it->second->connectionKey);
- MobileHandler::getInstance().sendRPCMessage(response, it->second->connectionKey);
- core->decreaseMessageChain(it);
- } else
- {
- LOG4CPLUS_WARN(mLogger, "GetVehicleData is present in Protocol V2 only!!!");
- }
- return;
- }
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__READDIDRESPONSE:
- {
- LOG4CPLUS_INFO_EXT(mLogger, "ReadDID response is received from HMI.");
- NsRPC2Communication::VehicleInfo::ReadDIDResponse * response =
- static_cast<NsRPC2Communication::VehicleInfo::ReadDIDResponse*>(msg);
- MessageChains::iterator it = core->mMessageChaining.find(response->getId());
- if ( core->mMessageChaining.end() == it )
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No chain for " << response->getId());
- return;
- }
- Application* app = core->getItem(it->second->connectionKey);
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- if (2 == app->getProtocolVersion())
- {
- NsSmartDeviceLinkRPCV2::ReadDID_response * readDIDResponse = new NsSmartDeviceLinkRPCV2::ReadDID_response;
- readDIDResponse->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::ReadDIDID);
- readDIDResponse->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE);
- bool isSuccess = true;
- if ( NsSmartDeviceLinkRPCV2::Result::SUCCESS != response->getResult() &&
- NsSmartDeviceLinkRPCV2::Result::ENCRYPTED != response->getResult() )
- {
- isSuccess = false;
- }
- readDIDResponse->set_success(isSuccess);
- readDIDResponse->set_resultCode(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult()));
-
- if ( response->get_dataResult() )
- {
- readDIDResponse->set_dataResult( *response->get_dataResult() );
- }
-
- if ( response->get_data() )
- {
- readDIDResponse->set_data( *response->get_data() );
- }
- readDIDResponse->setCorrelationID(it->second->correlationID);
- MobileHandler::getInstance().sendRPCMessage(readDIDResponse, it->second->connectionKey);
- } else
- {
- LOG4CPLUS_WARN(mLogger, "ReadDID is present in Protocol V2 only!!!");
- }
- core->decreaseMessageChain(it);
- return;
- }
- default:
- LOG4CPLUS_INFO_EXT(mLogger, " Not VehicleInfo RPC message " << msg->getMethod() << " has been received!");
- }
-
- switch(msg->getMethod())
- {
- case NsRPC2Communication::Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ALERTMANEUVERRESPONSE:
- {
- /*LOG4CPLUS_INFO_EXT(mLogger, "ReadDID response is received from HMI.");
- NsRPC2Communication::UI::AlertManeuverResponse * response =
- static_cast<NsRPC2Communication::UI::AlertManeuverResponse*>(msg);
- Application* app = core->getApplicationFromItemCheckNotNull(
- core->mMessageMapping.findRegistryItemAssignedToCommand(response->getId()));
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application associated with this registry item!");
- sendResponse<NsSmartDeviceLinkRPCV2::AlertManeuver_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::AlertManeuverID
- , NsSmartDeviceLinkRPCV2::Result::APPLICATION_NOT_REGISTERED
- , NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE
- , false
- , app->getAppID());
- return;
- }
-
- sendResponse<NsSmartDeviceLinkRPCV2::AlertManeuver_response, NsSmartDeviceLinkRPCV2::Result::ResultInternal>(
- NsSmartDeviceLinkRPCV2::FunctionID::AlertManeuverID
- , static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(response->getResult())
- , NsSmartDeviceLinkRPC::SDLRPCMessage::RESPONSE
- , NsSmartDeviceLinkRPCV2::Result::SUCCESS == response->getResult()
- , app->getAppID());*/
-
- break;
- }
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, " A RPC2 bus message " << msg->getMethod() << " has been invoked!");
- }
-
- /**
- * \brief Register an application
- * \param request a RegisterAppInterface request which is the source for application fields initial values
- * \param connectionID id of the connection which will be associated with the application
- * \param sessionID an id of the session which will be associated with the application
- * \return A instance of RegistryItem created for application
- */
- const Application* AppMgrCore::registerApplication(NsSmartDeviceLinkRPC::SDLRPCMessage * request, int appId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, __PRETTY_FUNCTION__);
- if(!request)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Null-request specified for application id " << appId << "!");
- return 0;
- }
-
- const unsigned int& protocolVersion = request->getProtocolVersion();
- std::string appName = "";
-
- switch(protocolVersion)
- {
- case 2:
- {
- appName = ((NsSmartDeviceLinkRPCV2::RegisterAppInterface_request*)request)->get_appName();
- Application_v2* application = new Application_v2(appName, appId);
- if(!application)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Cannot register application " << appName
- << " application id " << appId
- << " protocol version " << protocolVersion
- << " !");
- return 0;
- }
-
- NsSmartDeviceLinkRPCV2::RegisterAppInterface_request* registerRequest = (NsSmartDeviceLinkRPCV2::RegisterAppInterface_request*) request;
- /* if(registerRequest->get_appID())
- {
- const std::string& appId = *registerRequest->get_appID();
- application->setAppID(appId);
- }
- */ if( registerRequest->get_appType() )
- {
- const std::vector<NsSmartDeviceLinkRPCV2::AppType>& appType = *registerRequest->get_appType();
- application->setAppType(appType);
- }
- bool isMediaApplication = registerRequest->get_isMediaApplication();
- if (mVrLanguageV2.get() != mTtsLanguageV2.get())
- {
- // TODO: posibly notify application that VR&TTS have different languages.
- LOG4CPLUS_WARN(mLogger, "VR and TTS have different active languages. Unspecified behaviour.");
- }
- application->setLanguageDesired(mVrLanguageV2);
-
- const NsSmartDeviceLinkRPCV2::SyncMsgVersion& syncMsgVersion = registerRequest->get_syncMsgVersion();
-
- if ( registerRequest -> get_ngnMediaScreenAppName() )
- {
- const std::string& ngnMediaScreenAppName = *registerRequest->get_ngnMediaScreenAppName();
- application->setNgnMediaScreenAppName(ngnMediaScreenAppName);
- }
-
- if ( registerRequest -> get_vrSynonyms() )
- {
- const std::vector<std::string>& vrSynonyms = *registerRequest->get_vrSynonyms();
- application->setVrSynonyms(vrSynonyms);
- }
-
- application->setHMIDisplayLanguageDesired(mUiLanguageV2);
- application->setIsMediaApplication(isMediaApplication);
- application->setSyncMsgVersion(syncMsgVersion);
- application->setSystemContext(NsSmartDeviceLinkRPCV2::SystemContext::SYSCTXT_MENU);
- application->setApplicationAudioStreamingState(
- static_cast<NsSmartDeviceLinkRPCV2::AudioStreamingState::AudioStreamingStateInternal>(1));//NsSmartDeviceLinkRPCV2::AudioStreamingState::NOT_AUDIBLE
-
- if(registerRequest->get_ttsName())
- {
- application->setTtsName(*registerRequest->get_ttsName());
- }
-
- application->setApplicationHMIStatusLevel(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE);
-
- mApplications.insert( std::pair<int, Application*>(appId, application) );
- //LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tAdded application with appid " << appId <<
- // " to mApplications " << (int)mApplications[appId]);
- for( std::map<int, DeviceStorage>::iterator it = mDevices.begin();
- it != mDevices.end();
- ++it )
- {
- if(it->second.getAppId() == appId)
- {
- application->setDeviceHandle(it->first);
- LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tSet for application " << appId << " device handle " << it->first );
- for(std::set<int>::const_iterator connectionIt = it->second.getConnectionKeys().begin();
- connectionIt != it->second.getConnectionKeys().end();
- ++connectionIt)
- {
- mApplications.insert( std::pair<int, Application*>(*connectionIt, application) );
- }
- break;
- }
- }
-
- return application;
- }
- case 1:
- {
- appName = ((NsSmartDeviceLinkRPC::RegisterAppInterface_request*)request)->get_appName();
- Application_v1* application = new Application_v1(appName, appId);
- if(!application)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Cannot register application " << appName
- << " application id " << appId
- << " protocol version " << protocolVersion
- << " !");
- return 0;
- }
-
- NsSmartDeviceLinkRPC::RegisterAppInterface_request* registerRequest = (NsSmartDeviceLinkRPC::RegisterAppInterface_request*) request;
- bool isMediaApplication = registerRequest->get_isMediaApplication();
-
- const NsSmartDeviceLinkRPC::SyncMsgVersion& syncMsgVersion = registerRequest->get_syncMsgVersion();
-
- if ( registerRequest -> get_ngnMediaScreenAppName() )
- {
- const std::string& ngnMediaScreenAppName = *registerRequest->get_ngnMediaScreenAppName();
- application->setNgnMediaScreenAppName(ngnMediaScreenAppName);
- }
-
- if ( registerRequest -> get_vrSynonyms() )
- {
- const std::vector<std::string>& vrSynonyms = *registerRequest->get_vrSynonyms();
- application->setVrSynonyms(vrSynonyms);
- }
-
- if ( registerRequest -> get_usesVehicleData() )
- {
- bool usesVehicleData = registerRequest->get_usesVehicleData();
- application->setUsesVehicleData(usesVehicleData);
- }
-
- application->setIsMediaApplication(isMediaApplication);
- application->setLanguageDesired(mUiLanguageV1);
-
- application->setSyncMsgVersion(syncMsgVersion);
- application->setSystemContext(NsSmartDeviceLinkRPCV2::SystemContext::SYSCTXT_MENU);
- application->setApplicationAudioStreamingState(NsSmartDeviceLinkRPCV2::AudioStreamingState::NOT_AUDIBLE);
- application->setApplicationHMIStatusLevel(NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE);
-
- LOG4CPLUS_INFO_EXT(mLogger, "Application created." );
- mApplications.insert( std::pair<int, Application*>(appId, application) );
- //LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tAdded application with appid " << appId <<
- // " to mApplications " << (int)mApplications[appId]);
- for( std::map<int, DeviceStorage>::iterator it = mDevices.begin();
- it != mDevices.end();
- ++it )
- {
- if(it->second.getAppId() == appId)
- {
- application->setDeviceHandle(it->first);
- LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tSet for application " << appId << " device handle " << it->first );
- for(std::set<int>::const_iterator connectionIt = it->second.getConnectionKeys().begin();
- connectionIt != it->second.getConnectionKeys().end();
- ++connectionIt)
- {
- mApplications.insert( std::pair<int, Application*>(*connectionIt, application) );
- }
- break;
- }
- }
- return application;
- }
- default:
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Unsupported protocol version number " << protocolVersion << " !");
- return 0;
- }
- }
- LOG4CPLUS_INFO_EXT(mLogger, " Application " << appName << " application id " << appId << " registered successfully !");
- return 0;
- }
-
- /**
- * \brief unregister an application associated with the given session
- * \param appId an id of the application to be unregistered
- */
- void AppMgrCore::unregisterApplication(int appId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Trying to unregister an application for application id " << appId);
-
- Application* app = getItem(appId);
- if(!app)
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No application associated with this registry item!");
- return;
- }
-
- // Delete app files
- std::string fullPath = WorkWithOS::getFullPath(app->getName());
- std::string fullFilePath;
- LOG4CPLUS_INFO_EXT(mLogger, "Full path to app folder: " << fullPath);
- if (WorkWithOS::checkIfDirectoryExists(fullPath))
- {
- std::vector<std::string> files = WorkWithOS::listFilesInDirectory(fullPath);
- std::vector<std::string>::const_iterator i = files.begin();
- for (i; i != files.end(); ++i)
- {
- if (app->isPersistentFile(*i))
- {
- continue;
- }
-
- fullFilePath = fullPath;
- fullFilePath += "/";
- fullFilePath += *i;
- LOG4CPLUS_INFO_EXT(mLogger, "File to be removed: " << fullFilePath);
- if (WorkWithOS::checkIfFileExists(fullFilePath))
- {
- WorkWithOS::deleteFile(fullFilePath);
- }
- }
-
- WorkWithOS::deleteFile(fullPath);
- }
-
- const std::string& appName = app->getName();
- LOG4CPLUS_INFO_EXT(mLogger, " Unregistering an application " << appName
- << " application id " << appId
- << "!");
-
- mButtonsMapping.removeItem(app);
- //AppMgrRegistry::getInstance().unregisterApplication(item);
-
- LOG4CPLUS_INFO_EXT(mLogger, " Unregistered an application " << appName
- << " application id " << appId
- << "!");
-
- NsRPC2Communication::BasicCommunication::OnAppUnregistered* appUnregistered = new NsRPC2Communication::BasicCommunication::OnAppUnregistered();
- appUnregistered->set_appName(appName);
- appUnregistered->set_appId(app->getAppID());
- appUnregistered->set_reason(NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason(NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason::USER_EXIT));
- HMIHandler::getInstance().sendNotification(appUnregistered);
- mApplications.erase( appId );
- LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tRemvoed application " << appId );
- std::map<int, DeviceStorage>::iterator it = mDevices.find( app->getDeviceHandle() );
- if (mDevices.end() != it)
- {
- it->second.setAppId(0);
- LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tApplication " << appId << " removed from device " << it->first);
- }
- }
-
- void AppMgrCore::sendHMINotificationToMobile( Application * application )
- {
- if (1 == application->getProtocolVersion())
- {
- NsSmartDeviceLinkRPC::OnHMIStatus* hmiStatus = new NsSmartDeviceLinkRPC::OnHMIStatus;
- hmiStatus->set_audioStreamingState(
- static_cast<NsSmartDeviceLinkRPC::AudioStreamingState::AudioStreamingStateInternal>(
- application->getApplicationAudioStreamingState().get()));
- hmiStatus->set_systemContext(
- static_cast<NsSmartDeviceLinkRPC::SystemContext::SystemContextInternal>(application->getSystemContext().get()));
- hmiStatus->set_hmiLevel(
- static_cast<NsSmartDeviceLinkRPC::HMILevel::HMILevelInternal>(application->getApplicationHMIStatusLevel()));
- MobileHandler::getInstance().sendRPCMessage(hmiStatus, application->getAppID());
- }
- else
- {
- NsSmartDeviceLinkRPCV2::OnHMIStatus* hmiStatus = new NsSmartDeviceLinkRPCV2::OnHMIStatus;
- hmiStatus->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- hmiStatus->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnHMIStatusID);
- hmiStatus->set_audioStreamingState(application->getApplicationAudioStreamingState());
- hmiStatus->set_systemContext(application->getSystemContext());
- hmiStatus->set_hmiLevel(application->getApplicationHMIStatusLevel());
- MobileHandler::getInstance().sendRPCMessage(hmiStatus, application->getAppID());
- }
- }
-
- bool AppMgrCore::performActivitiesForActivatingApp( Application * app )
- {
- int appId = app->getAppID();
-
- Application* currentApp = getActiveItem();
- if (!currentApp)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "No application is currently active");
- }
- else
- {
- if (currentApp->getAppID() == appId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "App is currently active");
- return false;
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, "There is a currently active application " << currentApp->getName()
- << " ID " << currentApp->getAppID()
- << " - about to remove it from HMI first");
- //removeAppFromHmi(currentApp, appId);
- }
-
- NsSmartDeviceLinkRPCV2::HMILevel::HMILevelInternal previousState = app->getApplicationHMIStatusLevel();
-
- if(!activateApp(app))
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Application " << app->getName()
- << " application id " << appId << " cannot be activated.");
- return false;
- }
-
- if ( NsSmartDeviceLinkRPCV2::HMILevel::HMI_NONE == previousState )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "First time activating - sending stuff.");
-
- if ( 1== app->getProtocolVersion() )
- {
- if(mDriverDistractionV1)
- {
- MobileHandler::getInstance().sendRPCMessage(mDriverDistractionV1, appId);
- }
- }
- else
- {
- Application_v2* appv2 = (Application_v2*)app;
- //Methods for changing language:
- NsRPC2Communication::VR::ChangeRegistration * changeVrRegistration =
- new NsRPC2Communication::VR::ChangeRegistration;
- changeVrRegistration->set_language(appv2->getLanguageDesired());
- changeVrRegistration->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- changeVrRegistration->set_appId(appv2->getAppID());
- HMIHandler::getInstance().sendRequest(changeVrRegistration);
-
- NsRPC2Communication::TTS::ChangeRegistration * changeTtsRegistration =
- new NsRPC2Communication::TTS::ChangeRegistration;
- changeTtsRegistration->set_language(appv2->getLanguageDesired());
- changeTtsRegistration->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- changeTtsRegistration->set_appId(appv2->getAppID());
- HMIHandler::getInstance().sendRequest(changeTtsRegistration);
-
- NsRPC2Communication::UI::ChangeRegistration * changeUIRegistration =
- new NsRPC2Communication::UI::ChangeRegistration;
- changeUIRegistration->set_hmiDisplayLanguage(appv2->getHMIDisplayLanguageDesired());
- changeUIRegistration->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- changeUIRegistration->set_appId(appv2->getAppID());
- HMIHandler::getInstance().sendRequest(changeUIRegistration);
- //End of methods for languages.
-
- if(mDriverDistractionV2)
- {
- MobileHandler::getInstance().sendRPCMessage(mDriverDistractionV2, appId);
- }
- }
- }
-
- return true;
- }
-
- /**
- * \brief Remove all app components from HMI
- * \param currentApp app which components to be removed
- * \param appId application id
- */
- /*void AppMgrCore::removeAppFromHmi(Application* currentApp, int appId)
- {
- const Commands& currentCommands = currentApp->getAllCommands();
- LOG4CPLUS_INFO_EXT(mLogger, "Removing current application's commands from HMI");
-
- for(Commands::const_iterator it = currentCommands.begin(); it != currentCommands.end(); it++)
- {
- const Command& key = *it;
- const CommandParams& params = key.second;
- const CommandBase& base = key.first;
- const CommandType& type = std::get<1>(base);
- unsigned int cmdId = std::get<0>(base);
- NsRPC2Communication::RPC2Request* deleteCmd = 0;
- if(type == CommandType::UI)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Removing UI command");
- deleteCmd = new NsRPC2Communication::UI::DeleteCommand();
- }
- else if(type == CommandType::VR)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Removing VR command");
- deleteCmd = new NsRPC2Communication::VR::DeleteCommand();
- }
- else
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "An unindentified command type - " << type.getType());
- continue;
- }
- deleteCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- ((NsRPC2Communication::UI::DeleteCommand*)deleteCmd)->set_cmdId(cmdId); //doesn't matter, of which type- VR or UI is thye cmd = eather has the set_cmdId method within
- ((NsRPC2Communication::UI::DeleteCommand*)deleteCmd)->set_appId(currentApp->getAppID());
- mMessageMapping.addMessage(deleteCmd->getId(), appId);
-
- HMIHandler::getInstance().sendRequest(deleteCmd);
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Current app's commands removed!");
-
- const MenuItems& currentMenus = currentApp->getAllMenus();
- LOG4CPLUS_INFO_EXT(mLogger, "Removing current application's menus from HMI");
- for(MenuItems::const_iterator it = currentMenus.begin(); it != currentMenus.end(); it++)
- {
- const unsigned int& menuId = it->first;
- NsRPC2Communication::UI::DeleteSubMenu* deleteCmd = new NsRPC2Communication::UI::DeleteSubMenu();
- deleteCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- deleteCmd->set_menuId(menuId);
- deleteCmd->set_appId(currentApp->getAppID());
- mMessageMapping.addMessage(deleteCmd->getId(), appId);
-
- HMIHandler::getInstance().sendRequest(deleteCmd);
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Current app's menus removed!");
-
- switch(currentApp->getProtocolVersion())
- {
- case 1:
- {
- Application_v1* appV1 = (Application_v1*)currentApp;
- const ChoiceSetItems& currentChoiceSets = appV1->getAllChoiceSets();
- LOG4CPLUS_INFO_EXT(mLogger, "Removing current application's interaction choice sets from HMI");
- for(ChoiceSetItems::const_iterator it = currentChoiceSets.begin(); it != currentChoiceSets.end(); it++)
- {
- const unsigned int& choiceSetId = it->first;
- NsRPC2Communication::UI::DeleteInteractionChoiceSet* deleteCmd = new NsRPC2Communication::UI::DeleteInteractionChoiceSet();
- deleteCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- deleteCmd->set_interactionChoiceSetID(choiceSetId);
- deleteCmd->set_appId(currentApp->getAppID());
- mMessageMapping.addMessage(deleteCmd->getId(), appId);
- HMIHandler::getInstance().sendRequest(deleteCmd);
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Current app's interaction choice sets removed!");
- break;
- }
- case 2:
- {
- Application_v2* appV2 = (Application_v2*)currentApp;
- const ChoiceSetItems& currentChoiceSets = appV2->getAllChoiceSets();
- LOG4CPLUS_INFO_EXT(mLogger, "Removing current application's interaction choice sets from HMI");
- for(ChoiceSetItems::const_iterator it = currentChoiceSets.begin(); it != currentChoiceSets.end(); it++)
- {
- const unsigned int& choiceSetId = it->first;
- NsRPC2Communication::UI::DeleteInteractionChoiceSet* deleteCmd = new NsRPC2Communication::UI::DeleteInteractionChoiceSet();
- deleteCmd->setId(HMIHandler::getInstance().getJsonRPC2Handler()->getNextMessageId());
- deleteCmd->set_interactionChoiceSetID(choiceSetId);
- deleteCmd->set_appId(currentApp->getAppID());
- mMessageMapping.addMessage(deleteCmd->getId(), appId);
- HMIHandler::getInstance().sendRequest(deleteCmd);
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Current app's interaction choice sets removed!");
- break;
- }
- }
- }*/
-
- /**
- * \brief retrieve an application instance from the RegistryItrem instance checking for non-null values
- * \param item a RegistryItem from which to retrieve an app pointer
- * \return Application instance retrieved from item
- */
- Application *AppMgrCore::getApplicationFromItemCheckNotNull(const RegistryItem *item) const
- {
- if(!item)
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No registry item found!");
- return 0;
- }
- Application* app = item->getApplication();
- if(!app)
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No application associated with this registry item!");
- return 0;
- }
- return app;
- }
-
- /**
- * \brief set Json mobile handler
- * \param handler a handler instance
- */
- void AppMgrCore::setJsonHandler(JSONHandler* handler)
- {
- if(!handler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "A null pointer is being assigned - is this the intent?");
- return;
- }
- MobileHandler::getInstance().setJsonHandler(handler);
- }
-
- /**
- * \brief get Json mobile handler
- * \return JSONHandler instance
- */
- JSONHandler* AppMgrCore::getJsonHandler( ) const
- {
- return MobileHandler::getInstance().getJsonHandler();
- }
-
- /**
- * \brief set Json RPC2 handler
- * \param handler a handler instance
- */
- void AppMgrCore::setJsonRPC2Handler(JSONRPC2Handler *handler)
- {
- if(!handler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "A null pointer is being assigned - is this the intent?");
- return;
- }
- HMIHandler::getInstance().setJsonRPC2Handler(handler);
- }
-
- /**
- * \brief get Json RPC2 handler
- * \return JSONRPC2Handler instance
- */
- JSONRPC2Handler *AppMgrCore::getJsonRPC2Handler() const
- {
- return HMIHandler::getInstance().getJsonRPC2Handler();
- }
-
- /**
- * \brief Sets connection handler instance
- * \param handler connection handler
- */
- void AppMgrCore::setConnectionHandler(NsConnectionHandler::IDevicesDiscoveryStarter *handler)
- {
- if(!handler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "A null pointer is being assigned - is this the intent?");
- return;
- }
- ConnectionHandler::getInstance().setConnectionHandler(handler);
- }
-
- /**
- * \brief Gets connection handler instance
- * \return connection handler
- */
- NsConnectionHandler::IDevicesDiscoveryStarter *AppMgrCore::getConnectionHandler() const
- {
- return ConnectionHandler::getInstance().getConnectionHandler();
- }
-
- /**
- * \brief set device list
- * \param deviceList device list
- */
- void AppMgrCore::setDeviceList(const NsConnectionHandler::tDeviceList &deviceList)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Updating device list: " << deviceList.size() << " devices");
- //mDeviceList.setDeviceList(deviceList);
- differenceBetweenLists(deviceList);
- NsRPC2Communication::BasicCommunication::OnDeviceListUpdated* deviceListUpdated =
- new NsRPC2Communication::BasicCommunication::OnDeviceListUpdated;
- if ( !deviceList.empty() )
- {
- std::vector<std::string> deviceNames;
- for(std::map<int, DeviceStorage>::const_iterator it = mDevices.begin();
- it != mDevices.end(); ++it)
- {
- deviceNames.push_back(it->second.getUserFriendlyName());
- }
- deviceListUpdated->set_deviceList(deviceNames);
- }
- HMIHandler::getInstance().sendNotification(deviceListUpdated);
- }
-
- void AppMgrCore::differenceBetweenLists( const NsConnectionHandler::tDeviceList &deviceList )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Start finding diff.");
- typedef NsConnectionHandler::tDeviceList::const_iterator NewIterator;
- typedef std::map<int, DeviceStorage>::const_iterator ExistingIterator;
- typedef std::map<int, Application*>::const_iterator ApplicationIterator;
-
- for(NewIterator it = deviceList.begin(); it != deviceList.end(); ++it)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "\t\t\t\tNew device " << it->first);
- }
- for(ExistingIterator it = mDevices.begin(); it != mDevices.end(); ++it)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "\t\t\t\tOld device " << it->first);
- }
-
- std::map<int, DeviceStorage> updatedMap;
-
- ExistingIterator tempIt = mDevices.end();
- ExistingIterator oldIt = mDevices.begin();
- NewIterator newIt = deviceList.begin();
-
- while ( newIt != deviceList.end() )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Current device " << newIt->first);
- if ( mDevices.end() == oldIt )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "End of existing devices.");
- for( NewIterator newItRest = newIt; newItRest != deviceList.end(); ++ newItRest)
- {
- updatedMap.insert( std::pair<int, DeviceStorage>(newItRest->first,
- DeviceStorage(newItRest->second.getDeviceHandle(), newItRest->second.getUserFriendlyName())) );
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Size of updated map " << updatedMap.size());
- break;
- }
-
- while( oldIt != mDevices.end() && newIt != deviceList.end() && newIt->first > oldIt->first )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "\t\t\t\tRemoving old device " << oldIt->first);
- if( oldIt->second.getAppId() )
- {
- // The app should be deleted.
- ApplicationIterator appIt = mApplications.find( oldIt->second.getAppId() );
- if ( mApplications.end() != appIt )
- {
- if ( appIt->second )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Unregistering app " << appIt->first);
- unregisterApplication( appIt -> first );
- //Application * appToBeRemoved =
- //unregister app
- }
- //mApplications.erase( appIt );
- }
- }
- ++oldIt;
- }
-
- while( oldIt != mDevices.end() && newIt != deviceList.end() && newIt->first < oldIt->first )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "\t\t\t\tAdding new device " << newIt->first);
- updatedMap.insert( std::pair<int, DeviceStorage>(newIt->first,
- DeviceStorage(newIt->second.getDeviceHandle(), newIt->second.getUserFriendlyName())) );
- ++newIt;
- }
- if ( oldIt != mDevices.end() && newIt != deviceList.end() && newIt->first == oldIt->first )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "\t\t\t\tCopying existing device " << oldIt->first);
- updatedMap.insert( std::pair<int, DeviceStorage>(newIt->first,
- DeviceStorage(newIt->second.getDeviceHandle(), newIt->second.getUserFriendlyName())) );
- ++oldIt; ++newIt;
- }
- }
-
- if ( mDevices.end() != oldIt )
- {
- //oldIt = (mDevices.begin() == oldIt ? oldIt : --oldIt);
- for( ExistingIterator it = oldIt; it != mDevices.end(); ++it )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Removing old devices");
- if( it->second.getAppId() )
- {
- // The app should be deleted.
- ApplicationIterator appIt = mApplications.find( it->second.getAppId() );
- if ( mApplications.end() != appIt )
- {
- if ( appIt->second )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Unregistering app " << appIt->first);
- unregisterApplication( appIt -> first );
- }
- }
- }
- }
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, "size of existing devices " << mDevices.size());
- mDevices = updatedMap;
- LOG4CPLUS_INFO_EXT(mLogger, "size of existing devices " << mDevices.size());
- }
-
- /**
- * \brief get device list
- * \return device list
- */
- /*const NsConnectionHandler::tDeviceList &AppMgrCore::getDeviceList() const
- {
- return mDeviceList.getDeviceList();
- }*/
-
- /**
- * \brief add a device to a mapping
- * \param connectionKey session/connection key
- * \param device device handler
- */
- void AppMgrCore::addDevice(const NsConnectionHandler::tDeviceHandle &device,
- const int &sessionKey, int firstSessionKey)
- {
- //mDeviceHandler.addDevice(sessionKey, device);
- LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tAdding session to device " <<
- device << " with first session " << firstSessionKey
- << " session: " << sessionKey);
- if( sessionKey == firstSessionKey )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tAdding first session " << firstSessionKey);
- std::map<int, DeviceStorage>::iterator it = mDevices.find(device);
- if ( mDevices.end() != it )
- {
- it->second.setAppId(sessionKey);
- LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tAdded session to device " << it->first);
- }
- }
- else
- {
- for(std::map<int, DeviceStorage>::iterator it = mDevices.begin();
- it != mDevices.end(); ++it)
- {
- if ( it->second.getAppId() == firstSessionKey )
- {
- it->second.addConnectionKey( sessionKey );
- LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tSession "<<sessionKey
- << " added to device " << it->first);
- break;
- }
- }
- }
- }
-
- /**
- * \brief remove a device from a mapping
- * \param sessionKey session/connection key
- */
- void AppMgrCore::removeDevice(const int &sessionKey, int firstSessionKey)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tRemoving session " << sessionKey
- << " with first session " << firstSessionKey);
- if ( sessionKey == firstSessionKey )
- {
- std::map<int, Application *>::iterator it = mApplications.find( firstSessionKey );
- if ( it != mApplications.end() )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tRemoving app from device " << it->second->getDeviceHandle());
- mDevices.erase( it->second->getDeviceHandle() );
- }
- unregisterApplication( firstSessionKey );
- }
- else
- {
- for(std::map<int, DeviceStorage>::iterator it = mDevices.begin();
- it != mDevices.end(); ++it)
- {
- if ( it->second.getAppId() == firstSessionKey )
- {
- it->second.removeConnectionKey( sessionKey );
- LOG4CPLUS_INFO_EXT(mLogger, "\n\t\t\t\tsession " << sessionKey
- << " revmoved from device " << it->first);
- // TODO(PV): remove from applist if all sessions are closed.
- mApplications.erase( sessionKey );
- break;
- }
- }
- }
- }
-
- bool AppMgrCore::getAudioPassThruFlag() const
- {
- return mAudioPassThruFlag;
- }
-
- void AppMgrCore::setAudioPassThruFlag(bool flag)
- {
- mAudioPassThruFlag = flag;
- }
-
- /*const MessageMapping& AppMgrCore::getMessageMapping() const
- {
- return mMessageMapping;
- }*/
-
- void AppMgrCore::sendButtonEvent( Application * app, NsRPC2Communication::Buttons::OnButtonEvent * object )
- {
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::OnButtonEvent* event = new NsSmartDeviceLinkRPC::OnButtonEvent();
- event->set_buttonEventMode(static_cast<NsSmartDeviceLinkRPC::ButtonEventMode::ButtonEventModeInternal>(object->get_mode().get()));
- event->set_buttonName(
- static_cast<NsSmartDeviceLinkRPC::ButtonName::ButtonNameInternal>(
- object->get_name().get()));
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName() << " Application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(event, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::OnButtonEvent* event = new NsSmartDeviceLinkRPCV2::OnButtonEvent();
- event->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnButtonEventID);
- event->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- event->set_buttonEventMode(object->get_mode());
- event->set_buttonName(object->get_name());
- if(object->get_customButtonID())
- {
- event->set_customButtonID(*object->get_customButtonID());
- }
- else
- {
- event->set_customButtonID(0);
- }
- event->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- event->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnButtonEventID);
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName() << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(event, appId);
- break;
- }
- }
- }
-
- void AppMgrCore::sendButtonPress( Application * app, NsRPC2Communication::Buttons::OnButtonPress * object )
- {
- int appId = app->getAppID();
-
- switch(app->getProtocolVersion())
- {
- case 1:
- {
- NsSmartDeviceLinkRPC::OnButtonPress* event = new NsSmartDeviceLinkRPC::OnButtonPress();
-
- event->set_buttonName(static_cast<NsSmartDeviceLinkRPC::ButtonName::ButtonNameInternal>(
- object->get_name().get()));
- event->set_buttonPressMode(static_cast<NsSmartDeviceLinkRPC::ButtonPressMode::ButtonPressModeInternal>(object->get_mode().get()));
- LOG4CPLUS_INFO_EXT(mLogger, "before we find sessionID");
-
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app " << app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(event, appId);
- break;
- }
- case 2:
- {
- NsSmartDeviceLinkRPCV2::OnButtonPress* event = new NsSmartDeviceLinkRPCV2::OnButtonPress();
- event->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnButtonPressID);
- event->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- event->set_buttonName(object->get_name());
- NsSmartDeviceLinkRPCV2::ButtonPressMode pressMode;
- pressMode.set((NsSmartDeviceLinkRPCV2::ButtonPressMode::ButtonPressModeInternal)object->get_mode().get());
- event->set_buttonPressMode(pressMode);
- if(object->get_customButtonID())
- {
- event->set_customButtonID(*object->get_customButtonID());
- }
- else
- {
- event->set_customButtonID(0);
- }
- LOG4CPLUS_INFO_EXT(mLogger, "before we find sessionID");
-
- event->setMessageType(NsSmartDeviceLinkRPC::SDLRPCMessage::NOTIFICATION);
- event->setMethodId(NsSmartDeviceLinkRPCV2::FunctionID::OnButtonPressID);
-
- LOG4CPLUS_INFO_EXT(mLogger, " A message will be sent to an app "<< app->getName()
- << " application id " << appId);
- MobileHandler::getInstance().sendRPCMessage(event, appId);
- break;
- }
- }
- }
-
- bool AppMgrCore::decreaseMessageChain(const MessageChains::iterator & chain)
- {
- chain->second->counter--;
- MessageChaining * currentChain = chain->second;
- mMessageChaining.erase(chain);
- if (!currentChain->counter)
- {
- delete currentChain;
- return true;
- }
- return false;
- }
-
- MessageChaining * AppMgrCore::addChain(MessageChaining * chain, int sessionKey, unsigned int correlationID)
- {
- if (!chain)
- {
- chain = new MessageChaining(
- sessionKey,
- correlationID);
- }
- else
- {
- chain->counter++;
- }
- return chain;
- }
-
- Application * AppMgrCore::getActiveItem()
- {
- for(std::map<int,Application*>::const_iterator it = mApplications.begin();
- it != mApplications.end();
- ++it)
- {
- if( NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL == it->second->getApplicationHMIStatusLevel() )
- {
- return it->second;
- }
- }
- return 0;
- }
-
- Application * AppMgrCore::getItem( int applicationId )
- {
- std::map<int, Application*>::iterator it = mApplications.find( applicationId );
- if( mApplications.end() != it )
- {
- return it->second;
- }
- return 0;
- }
-
- bool AppMgrCore::activateApp( Application * appToBeActivated )
- {
- if(!appToBeActivated)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Cannot activate null-application!");
- return false;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Activating an app " << appToBeActivated->getName() << " application id " << appToBeActivated->getAppID());
-
- bool isCurrentAudible = false;
- for(std::map<int,Application*>::iterator it = mApplications.begin();
- it != mApplications.end();
- ++it)
- {
- Application* tempApplication = it->second;
- if(!tempApplication)
- {
- LOG4CPLUS_WARN_EXT(mLogger, "No application for the item!");
- return false;
- }
-
- if ( tempApplication->getAppID() == appToBeActivated->getAppID() )
- {
- continue;
- }
-
- // TODO(PV): at this point it is assumed that behaviour is correct and
- // when app is not in HMI_FULL/HMI_LIMITED it is not audible.
- if ( tempApplication->getIsMediaApplication()
- && NsSmartDeviceLinkRPCV2::AudioStreamingState::AUDIBLE
- == tempApplication->getApplicationAudioStreamingState().get()
- && appToBeActivated->getIsMediaApplication() )
- {
- tempApplication->setApplicationAudioStreamingState(
- NsSmartDeviceLinkRPCV2::AudioStreamingState::NOT_AUDIBLE);
- }
-
- if ( NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL == tempApplication->getApplicationHMIStatusLevel()
- || ( NsSmartDeviceLinkRPCV2::HMILevel::HMI_LIMITED == tempApplication->getApplicationHMIStatusLevel()
- && appToBeActivated->getIsMediaApplication() ) )
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Deactivating application " << tempApplication->getName());
- tempApplication -> setApplicationHMIStatusLevel(
- NsSmartDeviceLinkRPCV2::HMILevel::HMI_BACKGROUND);
- AppMgrCore::getInstance().sendHMINotificationToMobile(tempApplication);
- }
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, " Activating application " << appToBeActivated->getName());
- appToBeActivated->setApplicationHMIStatusLevel(NsSmartDeviceLinkRPCV2::HMILevel::HMI_FULL);
- appToBeActivated->setSystemContext(NsSmartDeviceLinkRPCV2::SystemContext::SYSCTXT_MAIN);
- if ( appToBeActivated->getIsMediaApplication() )
- {
- appToBeActivated->setApplicationAudioStreamingState(NsSmartDeviceLinkRPCV2::AudioStreamingState::AUDIBLE);
- }
- else
- {
- appToBeActivated->setApplicationAudioStreamingState(NsSmartDeviceLinkRPCV2::AudioStreamingState::NOT_AUDIBLE);
- }
- AppMgrCore::getInstance().sendHMINotificationToMobile(appToBeActivated);
-
- return true;
- }
-
- Application * AppMgrCore::getApplicationByCommand(const unsigned int &cmdId, int appId)
- {
- std::map<int, Application*>::iterator it = mApplications.find(appId);
- if ( mApplications.end() != it )
- {
- Application* app = it->second;
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " No application for the item " << it->first);
- return 0;
- }
- if(app->getCommandsCount())
- {
- const Commands& cmds = app->findCommands(cmdId);
- if(!cmds.empty())
- {
- return app;
- }
- }
- }
- /*for(std::map<int, Application*>::iterator it = mApplications.begin();
- it != mApplications.end();
- ++it)
- {
- Application* app = it->second;
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " No application for the item " << it->first);
- continue;
- }
- if(app->getCommandsCount())
- {
- const Commands& cmds = app->findCommands(cmdId);
- if(!cmds.empty())
- {
- return app;
- }
- }
- }*/
- LOG4CPLUS_INFO_EXT(mLogger, " No applications found for the command " << cmdId);
- return 0;
- }
-}
diff --git a/SDL_Core/src/components/AppMgr/src/AppMgrCoreQueues.cpp b/SDL_Core/src/components/AppMgr/src/AppMgrCoreQueues.cpp
deleted file mode 100644
index 71f7e46a5..000000000
--- a/SDL_Core/src/components/AppMgr/src/AppMgrCoreQueues.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/AppMgrCoreQueues.h"
-#include "LoggerHelper.hpp"
-#include "JSONHandler/RPC2Command.h"
-#include "JSONHandler/SDLRPCMessage.h"
-#include "AppMgr/AppMgrCore.h"
-
-namespace NsAppManager
-{
-
- template< class QueueType >
- log4cplus::Logger AppMgrCoreQueue<QueueType>::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("AppMgrCore"));
-
- /**
- * \brief Class constructor
- * \param cbFn callback function for a handler thread
- * \param pThis pointer to an instance of the class the cbFn is being called of
- */
- template< class QueueType >
- AppMgrCoreQueue<QueueType>::AppMgrCoreQueue(HandlerCallback cbFn, void *pThis)
- :mThread(new System::Thread(new System::ThreadArgImpl<AppMgrCoreQueue>(*this, &AppMgrCoreQueue::handleQueue, pThis)))
- ,mCallbackFn((HandlerCallback)cbFn)
- {
- if(pThis && mThread && mCallbackFn)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " AppMgrCoreQueues constructed!");
- }
- else
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " AppMgrCoreQueues not constructed! Check if params are non-null!");
- }
- }
-
- /**
- * \brief Default copy constructor
- */
- template< class QueueType >
- AppMgrCoreQueue<QueueType>::AppMgrCoreQueue(const AppMgrCoreQueue &)
- :mThread(0)
- ,mCallbackFn(0)
- {
- }
-
- /**
- * \brief Default destructor
- */
- template< class QueueType >
- AppMgrCoreQueue<QueueType>::~AppMgrCoreQueue()
- {
- if(mThread)
- {
- if(!mThread->Join())
- mThread->Stop();
- delete mThread;
- }
-
- if( mQueue.size() > 0 )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Emptying queue elements");
- mMtx.Lock();
- while( mQueue.size() > 0 )
- {
- mQueue.pop();
- }
- mMtx.Unlock();
- LOG4CPLUS_INFO_EXT(mLogger, "Queue empty.");
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, " AppMgrCoreQueues detructed!");
- }
-
- /**
- * \brief execute inner threads
- */
- template< class QueueType >
- void AppMgrCoreQueue<QueueType>::executeThreads()
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Threads are being started!");
- mThread->Start(false);
-
- LOG4CPLUS_INFO_EXT(mLogger, " Threads have been started!");
- }
-
- /**
- * \brief push a message to a queue
- * \param message a message being pushed
- */
- template< class QueueType >
- void AppMgrCoreQueue<QueueType>::pushMessage( QueueType message )
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Pushing a message...");
- mMtx.Lock();
-
- mQueue.push(message);
-
- mMtx.Unlock();
-
- mBinarySemaphore.Notify();
- LOG4CPLUS_INFO_EXT(mLogger, " Pushed a message");
- }
-
- /**
- * \brief handle a queue
- * \param pThis a pointer to an instance of the class the callback function is being called of
- */
- template< class QueueType >
- void *AppMgrCoreQueue<QueueType>::handleQueue(void *pThis)
- {
- if(!pThis)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " pThis should be non-null!");
- return 0;
- }
- if(!mCallbackFn)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " callback function pointer should be non-null!");
- return 0;
- }
- while(true)
- {
- bool result = false;
- while ( mMtx.Lock(), result = !mQueue.empty(), mMtx.Unlock(), result )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Handling message in queue.");
- mMtx.Lock();
- QueueType msg = mQueue.front();
- mQueue.pop();
- mMtx.Unlock();
-
- mCallbackFn( msg, pThis );
- LOG4CPLUS_INFO_EXT(mLogger, "Message handled.");
- }
- mBinarySemaphore.Wait();
- }
- }
-
- template class AppMgrCoreQueue<NsRPC2Communication::RPC2Command*>;
- template class AppMgrCoreQueue<Message>;
- template class AppMgrCoreQueue<NsSmartDeviceLinkRPC::SDLRPCMessage*>;
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/AppPolicy.cpp b/SDL_Core/src/components/AppMgr/src/AppPolicy.cpp
deleted file mode 100644
index 2af26c059..000000000
--- a/SDL_Core/src/components/AppMgr/src/AppPolicy.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/AppPolicy.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
- log4cplus::Logger AppPolicy::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("AppPolicy"));
-
- /**
- * \brief Class constructor
- * \param policy text representation
- */
- AppPolicy::AppPolicy( const std::string& policy )
- : mPolicy(policy)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Created an app policy " << policy);
- }
-
- /**
- * \brief Default class destructor
- */
- AppPolicy::~AppPolicy( )
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Destroyed an app policy " << mPolicy);
- }
-
- /**
- * \brief comparison operator
- * \return comparison result
- */
- bool AppPolicy::operator <( const AppPolicy& item2 ) const
- {
- return this->getPolicyHash() < item2.getPolicyHash();
- }
-
- /**
- * \brief gets application policy text representation
- * \return application policy test representation
- */
- const std::string& AppPolicy::getPolicyHash( ) const
- {
- return mPolicy;
- }
-
- /**
- * \brief Default class copy constructor
- */
- AppPolicy::AppPolicy(const AppPolicy &policy)
- : mPolicy(policy.getPolicyHash())
- {
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/Application.cpp b/SDL_Core/src/components/AppMgr/src/Application.cpp
deleted file mode 100644
index 52b8f5a16..000000000
--- a/SDL_Core/src/components/AppMgr/src/Application.cpp
+++ /dev/null
@@ -1,454 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/Application.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
-
- log4cplus::Logger Application::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("Application"));
-
- /**
- * \brief Class constructor
- * \param name application name
- * \param appId application id
- * \param protocolVersion protocol version
- */
- Application::Application(const std::string& name , int appId, unsigned int protocolVersion)
- :mNgnMediaScreenAppName("")
- ,m_bIsMediaApplication(false)
- ,mName(name)
- ,mProtocolVersion(protocolVersion)
- ,mAppID(appId)
- {
- addSessionKey(appId);
- LOG4CPLUS_INFO_EXT(mLogger, " Created an application " << name << " application id " << appId);
- }
-
- /**
- * \brief Copy constructor
- */
- Application::Application( const Application& app )
- :mNgnMediaScreenAppName(app.getNgnMediaScreenAppName())
- ,mName(app.getName())
- ,m_bIsMediaApplication(app.getIsMediaApplication())
- ,mProtocolVersion(app.getProtocolVersion())
- ,mAppID(app.getAppID())
- {
- addSessionKey(app.getAppID());
- mVrSynonyms = app.getVrSynonyms();
- }
-
- /**
- * \brief Default class destructor
- */
- Application::~Application( )
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Deleted an application " << mName << " application id " << mAppID);
- }
-
- /**
- * \brief operator ==
- * \param item the item to compare with
- * \return comparison result
- */
- bool Application::operator ==(const Application &item) const
- {
- return this->getAppID() == item.getAppID();
- }
-
- /**
- * \brief Set application NGN media screen app name
- * \param value application NGN media screen app name
- */
- void Application::setNgnMediaScreenAppName(const std::string& value)
- {
- mNgnMediaScreenAppName = value;
- }
-
- /**
- * \brief Set application voice recognition synonyms
- * \param value application voice recognition synonyms
- */
- void Application::setVrSynonyms(const std::vector<std::string>& value)
- {
- mVrSynonyms = value;
- }
-
- /**
- * \brief Set if the application is a media application
- * \param value is the application a media application
- */
- void Application::setIsMediaApplication(bool value)
- {
- m_bIsMediaApplication = value;
- }
-
- /**
- * \brief retrieve application NGN media screen application name
- * \return application NGN media screen application name
- */
- const std::string& Application::getNgnMediaScreenAppName( ) const
- {
- return mNgnMediaScreenAppName;
- }
-
- /**
- * \brief retrieve application voice-recognition synonyms
- * \return application voice-recognition synonyms
- */
- const std::vector<std::string>& Application::getVrSynonyms( ) const
- {
- return mVrSynonyms;
- }
-
- /**
- * \brief retrieve is the application a media application
- * \return is the application a media application
- */
- bool Application::getIsMediaApplication( ) const
- {
- return m_bIsMediaApplication;
- }
-
- /**
- * \brief retrieve application protocol version
- * \return application protocol version
- */
- const unsigned int &Application::getProtocolVersion() const
- {
- return mProtocolVersion;
- }
-
- /**
- * \brief retrieve application name
- * \return application name
- */
- const std::string &Application::getName() const
- {
- return mName;
- }
-
- /**
- * \brief retrieve application ID
- * \return application ID
- */
- const int &Application::getAppID() const
- {
- return mAppID;
- }
-
- /**
- * \brief add a command to a menu
- * \param commandId command id
- * \param menuId menu id
- */
- void Application::addMenuCommand(const unsigned int &commandId, const unsigned int &menuId)
- {
- mMenuMapping.addCommand(commandId, menuId);
- }
-
- /**
- * \brief remove a command from a menu(s)
- * \param commandId command id
- */
- void Application::removeMenuCommand(const unsigned int &commandId)
- {
- mMenuMapping.removeCommand(commandId);
- }
-
- /**
- * \brief find commands within a menu
- * \param menuId menu id
- * \return commands residing within the given menu
- */
- MenuCommands Application::findMenuCommands(const unsigned int &menuId) const
- {
- return mMenuMapping.findCommandsAssignedToMenu(menuId);
- }
-
- /**
- * \brief add a menu item to the application
- * \param menuId menu id
- * \param menuName menu item name
- * \param position menu item position within the parent menu
- */
- void Application::addMenu(const unsigned int &menuId, const std::string &menuName, const unsigned int *position)
- {
- mMenus.addItem(menuId, menuName, position);
- }
-
- /**
- * \brief remove a menu item from the application
- * \param menuId menu id
- */
- void Application::removeMenu(const unsigned int &menuId)
- {
- mMenus.removeItem(menuId);
- }
-
- /**
- * \brief find a menu item from a mapping
- * \param menuId menu id
- * \return a menu item from a mapping
- */
- const MenuValue *Application::findMenu(const unsigned int &menuId)
- {
- return mMenus.findItem(menuId);
- }
-
- /**
- * \brief gets all application menus
- * \return application menus
- */
- MenuItems Application::getAllMenus() const
- {
- return mMenus.getAllMenuItems();
- }
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t Application::getMenusCount() const
- {
- return mMenus.size();
- }
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t Application::getMenuCommandsCount() const
- {
- return mMenuMapping.size();
- }
-
- /**
- * \brief add a command to an application
- * \param commandId command id
- * \param type command type
- * \param params VR or UI params supplied with the AddCommand request
- */
- void Application::addCommand(unsigned int commandId, CommandType type, CommandParams params)
- {
- mCommandMapping.addCommand(commandId, type, params);
- }
-
- /**
- * \brief remove a command from application
- * \param commandId command id
- * \param type a type of a command
- */
- void Application::removeCommand(unsigned int commandId, CommandType type)
- {
- mCommandMapping.removeCommand(commandId, type);
- }
-
- /**
- * \brief finds commands in application
- * \param commandId command id
- * \return command list
- */
- Commands Application::findCommands(unsigned int commandId) const
- {
- return mCommandMapping.findCommands(commandId);
- }
-
- /**
- * \brief gets all application commands
- * \return application commands
- */
- Commands Application::getAllCommands() const
- {
- return mCommandMapping.getAllCommands();
- }
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t Application::getCommandsCount() const
- {
- return mCommandMapping.size();
- }
-
- /**
- * \brief retrieve types associated with command id in current application
- * \param commandId command id to search for types
- * \return input container of command types to be filled with result
- */
- CommandTypes Application::getCommandTypes(unsigned int commandId) const
- {
- return mCommandMapping.getTypes(commandId);
- }
-
- /**
- * \brief get count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to count unresponded requests for
- * \return unresponded requests count
- */
- unsigned int Application::getUnrespondedRequestCount(const unsigned int &cmdId) const
- {
- return mCommandMapping.getUnrespondedRequestCount(cmdId);
- }
-
- /**
- * \brief increment count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to increment unresponded request count for
- * \return unresponded requests count after the operation
- */
- unsigned int Application::incrementUnrespondedRequestCount(const unsigned int &cmdId)
- {
- return mCommandMapping.incrementUnrespondedRequestCount(cmdId);
- }
-
- /**
- * \brief decrement count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to decrement unresponded request count for
- * \return unresponded requests count after the operation
- */
- unsigned int Application::decrementUnrespondedRequestCount(const unsigned int &cmdId)
- {
- return mCommandMapping.decrementUnrespondedRequestCount(cmdId);
- }
-
- /**
- * \brief add session key to a list of session keys
- * \param sessionKey session key
- */
- void Application::addSessionKey(const int &sessionKey)
- {
- mSessionKeys.push_back(sessionKey);
- }
-
- /**
- * \brief remove session key from a list of session keys
- * \param sessionKey session key
- */
- void Application::removeSessionKey(const int &sessionKey)
- {
- mSessionKeys.remove(sessionKey);
- }
-
- /**
- * \brief retrieve application audio streaming state
- * \return application audio streaming state
- */
- const NsSmartDeviceLinkRPCV2::AudioStreamingState& Application::getApplicationAudioStreamingState( ) const
- {
- return mAudioStreamingState;
- }
-
- /**
- * \brief retrieve application system context
- * \return application system context
- */
- const NsSmartDeviceLinkRPCV2::SystemContext &Application::getSystemContext() const
- {
- return mSystemContext;
- }
-
- /**
- * \brief retrieve aplication HMI status level
- * \return HMI status level of application
- */
- const NsSmartDeviceLinkRPCV2::HMILevel::HMILevelInternal& Application::getApplicationHMIStatusLevel( ) const
- {
- return mHMIStatusLevel;
- }
-
- /**
- * \brief Set application audio streaming state
- * \param streamingState audio streaming state of application
- */
- void Application::setApplicationAudioStreamingState( const NsSmartDeviceLinkRPCV2::AudioStreamingState& streamingState )
- {
- mAudioStreamingState = streamingState;
- }
-
- /**
- * \brief set application system context
- * \param application system context
- */
- void Application::setSystemContext(NsSmartDeviceLinkRPCV2::SystemContext value)
- {
- mSystemContext = value;
- }
-
- /**
- * \brief Set application HMI status level
- * \param hmiLevel HMI status level of application
- */
- void Application::setApplicationHMIStatusLevel( const NsSmartDeviceLinkRPCV2::HMILevel::HMILevelInternal& hmiLevel )
- {
- mHMIStatusLevel = hmiLevel;
- }
-
- void Application::addPersistentFile(const std::string& file)
- {
- persistentFiles.push_back(file);
- }
-
- void Application::removePersistentFile(const std::string& file)
- {
- std::vector<std::string>::iterator i = std::find(persistentFiles.begin()
- , persistentFiles.end(), file);
- if (i != persistentFiles.end())
- {
- persistentFiles.erase(i);
- }
- }
-
- bool Application::isPersistentFile(const std::string& file)
- {
- std::vector<std::string>::iterator i = std::find(persistentFiles.begin()
- , persistentFiles.end(), file);
- if (i != persistentFiles.end())
- {
- return true;
- }
- return false;
- }
-
- int Application::getDeviceHandle() const
- {
- return mDeviceHandle;
- }
-
- void Application::setDeviceHandle(int deviceHandle)
- {
- mDeviceHandle = deviceHandle;
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/Application_v1.cpp b/SDL_Core/src/components/AppMgr/src/Application_v1.cpp
deleted file mode 100644
index 253c25e24..000000000
--- a/SDL_Core/src/components/AppMgr/src/Application_v1.cpp
+++ /dev/null
@@ -1,187 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/Application_v1.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
- /**
- * \brief Class constructor
- * \param name application name
- * \param appId application id
- */
- Application_v1::Application_v1(const std::string& name, int appId)
- :Application(name, appId, 1)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Created an application " << name
- << " for the application id " << appId);
- }
-
- /**
- * \brief Copy constructor
- */
- Application_v1::Application_v1( const Application_v1& app )
- :Application(app)
- {
- }
-
- /**
- * \brief Default class destructor
- */
- Application_v1::~Application_v1( )
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Deleted an application " << mName
- << " appId " << mAppID);
- }
-
- /**
- * \brief retrieve does the application use vehicle data
- * \return does the application use vehicle data
- */
- bool Application_v1::getUsesVehicleData( ) const
- {
- return m_bUsesVehicleData;
- }
-
- /**
- * \brief Set application usage of vehicle data
- * \param value does the application use vehicle data
- */
- void Application_v1::setUsesVehicleData(bool value)
- {
- m_bUsesVehicleData = value;
- }
-
- /**
- * \brief retrieve application desired language
- * \return application desired language
- */
- const NsSmartDeviceLinkRPC::Language& Application_v1::getLanguageDesired( ) const
- {
- return mLanguageDesired;
- }
-
- /**
- * \brief Set application desired languuage
- * \param value application desired language
- */
- void Application_v1::setLanguageDesired(NsSmartDeviceLinkRPC::Language value)
- {
- mLanguageDesired = value;
- }
-
- /**
- * \brief retrieve application HMI desired display language
- * \return application HMI desired display language
- */
- const NsSmartDeviceLinkRPC::Language &Application_v1::getHMIDisplayLanguageDesired() const
- {
- return mHMIDisplayLanguageDesired;
- }
-
- /**
- * \brief Set application HMI desired display language
- * \param value application HMI desired display language
- */
- void Application_v1::setHMIDisplayLanguageDesired(NsSmartDeviceLinkRPC::Language value)
- {
- mHMIDisplayLanguageDesired = value;
- }
-
-
- /**
- * \brief retrieve application sync message version
- * \return application sync msg version
- */
- const NsSmartDeviceLinkRPC::SyncMsgVersion& Application_v1::getSyncMsgVersion( ) const
- {
- return mSyncMsgVersion;
- }
-
- /**
- * \brief Set application sync message version
- * \param value application sync message version
- */
- void Application_v1::setSyncMsgVersion(NsSmartDeviceLinkRPC::SyncMsgVersion value)
- {
- mSyncMsgVersion = value;
- }
-
- /**
- * \brief add an interaction choice set item to the application
- * \param choiceSetId interaction choice set id
- * \param choiceSet interaction choice set
- */
- void Application_v1::addChoiceSet(const unsigned int &choiceSetId, const ChoiceSetV1 &choiceSet)
- {
- mChoiceSets.addItem(choiceSetId, choiceSet);
- }
-
- /**
- * \brief remove an interaction choice set from the application
- * \param choiceSetId interaction choice set id
- */
- void Application_v1::removeChoiceSet(const unsigned int &choiceSetId)
- {
- mChoiceSets.removeItem(choiceSetId);
- }
-
- /**
- * \brief gets all interaction choice set items
- * \return interaction choice set items
- */
- ChoiceSetItems Application_v1::getAllChoiceSets() const
- {
- return mChoiceSets.getAllChoiceSets();
- }
-
- /**
- * \brief get count of interaction choice sets
- * \return interaction choice sets count
- */
- size_t Application_v1::getChoiceSetsCount() const
- {
- return mChoiceSets.size();
- }
-
- /**
- * \brief find a mapped choice set item
- * \param choiceSetId interaction choice set id
- * \return a mapped choice set item
- */
- const ChoiceSetV1* Application_v1::findChoiceSet(const unsigned int &choiceSetId)
- {
- const ChoiceSetGeneric* choiceSetGeneric = mChoiceSets.findItem(choiceSetId);
- return choiceSetGeneric ? &choiceSetGeneric->choiceSetV1 : 0;
- }
-}
diff --git a/SDL_Core/src/components/AppMgr/src/Application_v2.cpp b/SDL_Core/src/components/AppMgr/src/Application_v2.cpp
deleted file mode 100644
index e54ca7a97..000000000
--- a/SDL_Core/src/components/AppMgr/src/Application_v2.cpp
+++ /dev/null
@@ -1,225 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/Application_v2.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
- /**
- * \brief Class constructor
- * \param name application name
- * \param protocolVersion protocol version
- * \param appId application id
- */
- Application_v2::Application_v2(const std::string& name , int appId)
- :Application(name, appId, 2)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Created an application " << name << " for the application id " << appId);
- }
-
- /**
- * \brief Copy constructor
- */
- Application_v2::Application_v2( const Application_v2& app )
- :Application(app)
- {
- }
-
- /**
- * \brief Default class destructor
- */
- Application_v2::~Application_v2( )
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Deleted an application " << mName << " application id " << mAppID);
- }
-
- /**
- * \brief retrieve application ID
- * \return application ID
- */
- /* const std::string &Application_v2::getAppID() const
- {
- return mAppID;
- }
-*/
- /**
- * \brief Set application ID
- * \param value application ID
- */
- /* void Application_v2::setAppID(const std::string &value)
- {
- mAppID = value;
- }
-*/
- /**
- * \brief retrieve application desired language
- * \return application desired language
- */
- const NsSmartDeviceLinkRPCV2::Language& Application_v2::getLanguageDesired( ) const
- {
- return mLanguageDesired;
- }
-
- /**
- * \brief Set application desired languuage
- * \param value application desired language
- */
- void Application_v2::setLanguageDesired(NsSmartDeviceLinkRPCV2::Language value)
- {
- mLanguageDesired = value;
- }
-
- /**
- * \brief retrieve application HMI desired display language
- * \return application HMI desired display language
- */
- const NsSmartDeviceLinkRPCV2::Language &Application_v2::getHMIDisplayLanguageDesired() const
- {
- return mHMIDisplayLanguageDesired;
- }
-
- /**
- * \brief Set application HMI desired display language
- * \param value application HMI desired display language
- */
- void Application_v2::setHMIDisplayLanguageDesired(NsSmartDeviceLinkRPCV2::Language value)
- {
- mHMIDisplayLanguageDesired = value;
- }
-
-
-
- /**
- * \brief Set application type
- * \param appType application type
- */
- void Application_v2::setAppType(const AppTypes &appType)
- {
- mAppType = appType;
- }
-
- /**
- * \brief retreive application type
- * \param appId application type
- */
- const AppTypes &Application_v2::getAppType() const
- {
- return mAppType;
- }
-
-
-
- /**
- * \brief retrieve application sync message version
- * \return application sync msg version
- */
- const NsSmartDeviceLinkRPCV2::SyncMsgVersion& Application_v2::getSyncMsgVersion( ) const
- {
- return mSyncMsgVersion;
- }
-
- /**
- * \brief Set application sync message version
- * \param value application sync message version
- */
- void Application_v2::setSyncMsgVersion(NsSmartDeviceLinkRPCV2::SyncMsgVersion value)
- {
- mSyncMsgVersion = value;
- }
-
- /**
- * \brief retrieve application text-to-speech name
- * \return application text-to-speech name
- */
- const TTSName &Application_v2::getTtsName() const
- {
- return mTtsName;
- }
-
- /**
- * \brief Set application text-to-speech name
- * \param value application text-to-speech name
- */
- void Application_v2::setTtsName(const TTSName &value)
- {
- mTtsName = value;
- }
-
- /**
- * \brief add an interaction choice set item to the application
- * \param choiceSetId interaction choice set id
- * \param choiceSet interaction choice set
- */
- void Application_v2::addChoiceSet(const unsigned int &choiceSetId, const ChoiceSetV2 &choiceSet)
- {
- mChoiceSets.addItem(choiceSetId, choiceSet);
- }
-
- /**
- * \brief remove an interaction choice set from the application
- * \param choiceSetId interaction choice set id
- */
- void Application_v2::removeChoiceSet(const unsigned int &choiceSetId)
- {
- mChoiceSets.removeItem(choiceSetId);
- }
-
- /**
- * \brief gets all interaction choice set items
- * \return interaction choice set items
- */
- ChoiceSetItems Application_v2::getAllChoiceSets() const
- {
- return mChoiceSets.getAllChoiceSets();
- }
-
- /**
- * \brief get count of interaction choice sets
- * \return interaction choice sets count
- */
- size_t Application_v2::getChoiceSetsCount() const
- {
- return mChoiceSets.size();
- }
-
- /**
- * \brief find a mapped choice set item
- * \param choiceSetId interaction choice set id
- * \return a mapped choice set item
- */
- const ChoiceSetV2* Application_v2::findChoiceSet(const unsigned int &choiceSetId)
- {
- const ChoiceSetGeneric* choiceSetGeneric = mChoiceSets.findItem(choiceSetId);
- return choiceSetGeneric ? &choiceSetGeneric->choiceSetV2 : 0;
- }
-}
diff --git a/SDL_Core/src/components/AppMgr/src/AutoActivateIdMapping.cpp b/SDL_Core/src/components/AppMgr/src/AutoActivateIdMapping.cpp
deleted file mode 100644
index 59dd21ed5..000000000
--- a/SDL_Core/src/components/AppMgr/src/AutoActivateIdMapping.cpp
+++ /dev/null
@@ -1,187 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-namespace NsAppManager
-{
-
- log4cplus::Logger AutoActivateIdMapping::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("AutoActivateIdMapping"));
-
- /**
- * \brief Default class constructor
- */
- AutoActivateIdMapping::AutoActivateIdMapping()
- :mLastAutoActivateId(0)
- {
- }
-
- /**
- * \brief Default class destructor
- */
- AutoActivateIdMapping::~AutoActivateIdMapping()
- {
- mAutoActivateIds.clear();
- }
-
- /**
- * \brief add an application to a mapping
- * \param appName application to be added to mapping
- * \return auto-activate id assigned to an application
- */
- std::string AutoActivateIdMapping::addApplicationName(const std::string &appName)
- {
- if(appName.empty())
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Trying to add a null-named application!" );
- return "";
- }
- std::stringstream st(std::stringstream::in | std::stringstream::out);
- st << mLastAutoActivateId;
- std::string strAAId = "";
- st >> strAAId;
- addId(appName, strAAId);
- mLastAutoActivateId++;
- LOG4CPLUS_INFO_EXT(mLogger, "Added an application " << appName << " to auto-activate id " << strAAId );
- return strAAId;
- }
-
- /**
- * \brief add an id and an application to a mapping
- * \param appName application name
- * \param id auto-activate id
- */
- void AutoActivateIdMapping::addId(const std::string &appName, const std::string &id)
- {
- if(appName.empty() || id.empty())
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Trying to add a null-named application or to a null id value!" );
- return;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Added an application " << appName << " to auto-activate id " << id );
- mAutoActivateIds.insert(AutoActivateID(appName, id));
- }
-
- /**
- * \brief remove an auto-activate id from a mapping
- * \param id auto-activate id
- */
- void AutoActivateIdMapping::removeId(const std::string &id)
- {
- if(id.empty())
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Trying to add a null id!" );
- return;
- }
- if(mAutoActivateIds.empty())
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Nothing to remove: a map is empty!" );
- return;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Removing an auto-activate id " << id );
- for(AutoActivateIDs::iterator it = mAutoActivateIds.begin(); it != mAutoActivateIds.end(); it++)
- {
- if(id == it->second)
- {
- mAutoActivateIds.erase(it->first);
- }
- }
- }
-
- /**
- * \brief remove an application from a mapping
- * \param appName application to remove all associated ids from mapping
- */
- void AutoActivateIdMapping::removeApplicationName(const std::string &appName)
- {
- if(appName.empty())
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Trying to remove a null-named application!" );
- return;
- }
- if(mAutoActivateIds.empty())
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Nothing to remove: a map is empty!" );
- return;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Removing an application " << appName );
- mAutoActivateIds.erase(appName);
- }
-
- /**
- * \brief find an auto-activate id subscribed to message
- * \param name application name
- * \return auto-activate id
- */
- std::string AutoActivateIdMapping::findAutoActivateIdAssignedToName(const std::string &name) const
- {
- if(name.empty())
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Trying to search for a null-named application!" );
- return "";
- }
- if(mAutoActivateIds.empty())
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Nothing to find: a map is empty!" );
- return "";
- }
- else
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Found " << mAutoActivateIds.size() << " elements in autoactivateid map");
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Searching for an auto-activate id for the application " << name );
- AutoActivateIDs::const_iterator it = mAutoActivateIds.find( name );
- if ( it != mAutoActivateIds.end() )
- {
- const std::string& aaId = it->second;
- LOG4CPLUS_INFO_EXT(mLogger, "An application " << name << " has auto activate id " << aaId );
- return aaId;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Application " << name << " not found in subscribed." );
- return "";
- }
-
- /**
- * \brief remove all mappings
- */
- void AutoActivateIdMapping::clear()
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Clearing a mapping" );
- mAutoActivateIds.clear();
- }
-
- /**
- * \brief Copy constructor
- */
- AutoActivateIdMapping::AutoActivateIdMapping(const AutoActivateIdMapping &)
- {
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/ButtonMapping.cpp b/SDL_Core/src/components/AppMgr/src/ButtonMapping.cpp
deleted file mode 100644
index 65c60155e..000000000
--- a/SDL_Core/src/components/AppMgr/src/ButtonMapping.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/ButtonMapping.h"
-#include "AppMgr/RegistryItem.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
-
- log4cplus::Logger ButtonMapping::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("ButtonMapping"));
-
- /**
- * \brief Default class constructor
- */
- ButtonMapping::ButtonMapping()
- {
- }
-
- /**
- * \brief Default class destructor
- */
- ButtonMapping::~ButtonMapping()
- {
- clear();
- }
-
- /**
- * \brief add a button to a mapping
- * \param buttonName button name
- * \param app application to map a button to
- */
- void ButtonMapping::addButton(const NsSmartDeviceLinkRPCV2::ButtonName &buttonName, Application *app)
- {
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Adding a button to a null registry item");
- return;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Subscribed to button " << buttonName.get() << " in app " << app->getName() );
- mButtonsMapping.insert(ButtonMapItem(buttonName, app));
- }
-
- /**
- * \brief remove a button from a mapping
- * \param buttonName button name
- */
- void ButtonMapping::removeButton(const NsSmartDeviceLinkRPCV2::ButtonName &buttonName, Application * item)
- {
- //mButtonsMapping.erase(buttonName);
-
- ResultRange result = mButtonsMapping.equal_range(buttonName);
- for( ButtonMap::const_iterator it=result.first; it!=result.second; ++it )
- {
- if ( it->second->getAppID() == item->getAppID() )
- {
- mButtonsMapping.erase(it);
- break;
- }
- }
- }
-
- /**
- * \brief remove an application from a mapping
- * \param app application to remove all associated buttons from mapping
- */
- void ButtonMapping::removeItem(Application *app)
- {
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Trying to remove a null item");
- return;
- }
- for(ButtonMap::iterator it = mButtonsMapping.begin();
- it != mButtonsMapping.end(); it++)
- {
- if(it->second->getAppID() == app->getAppID())
- {
- mButtonsMapping.erase(it);
- }
- }
- }
-
- /**
- * \brief cleans all the mapping
- */
- void ButtonMapping::clear()
- {
- mButtonsMapping.clear();
- }
-
- /**
- * \brief find a registry item subscribed to button
- * \param btnName button name
- * \return RegistryItem instance
- */
- Application* ButtonMapping::findRegistryItemSubscribedToButton( const NsSmartDeviceLinkRPCV2::ButtonName &btnName ) const
- {
- ButtonMap::const_iterator it = mButtonsMapping.find( btnName );
- if ( it != mButtonsMapping.end() )
- {
- if ( !it->second )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "An application " <<
- it->second->getName() << " is subscribed to a button "
- << btnName.get() );
-
- return it->second;
- }
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Button " << btnName.get() << " not found in subscribed." );
- return 0;
- }
-
- ResultRange ButtonMapping::findSubscribedToButton(const NsSmartDeviceLinkRPCV2::ButtonName &btnName) const
- {
- return mButtonsMapping.equal_range(btnName);
- }
-
- /**
- * \brief Copy constructor
- */
- ButtonMapping::ButtonMapping(const ButtonMapping &)
- {
- }
-
- bool ButtonMapping::exist(const NsSmartDeviceLinkRPCV2::ButtonName& buttonName, Application* item)
- {
- ResultRange result = mButtonsMapping.equal_range(buttonName);
- for( ButtonMap::const_iterator it=result.first; it!=result.second; ++it )
- {
- if ( it->second->getAppID() == item->getAppID() )
- {
- return true;
- }
- }
- return false;
- /*ButtonMap::const_iterator it = mButtonsMapping.find(buttonName);
- if (it != mButtonsMapping.end())
- {
- if (it->second)
- {
- if (*(it->second) == *item)
- {
- return true;
- }
- }
- }
-
- return false;*/
- }
-
- /**
- * \brief comparison operator
- * \param b1 button name 1
- * \param b2 button name 2
- * \return comparison result
- */
- bool Comparer::operator ()(const NsSmartDeviceLinkRPCV2::ButtonName &b1, const NsSmartDeviceLinkRPCV2::ButtonName &b2) const
- {
- return b1.get() < b2.get();
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/CapabilitesContainer.cpp b/SDL_Core/src/components/AppMgr/src/CapabilitesContainer.cpp
deleted file mode 100644
index e570b4b29..000000000
--- a/SDL_Core/src/components/AppMgr/src/CapabilitesContainer.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/CapabilitesContainer.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
-
- template<class DeviceCapabilities>
- log4cplus::Logger CapabilitiesContainer<DeviceCapabilities>::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("ButtonCapabilities"));
-
- /**
- * \brief Default class constructor
- */
- template<class DeviceCapabilities>
- CapabilitiesContainer<DeviceCapabilities>::CapabilitiesContainer()
- {
- LOG4CPLUS_INFO_EXT(mLogger, " CapabilitiesContainer constructed!");
- }
-
- /**
- * \brief Default class destructor
- */
- template<class DeviceCapabilities>
- CapabilitiesContainer<DeviceCapabilities>::~CapabilitiesContainer()
- {
- clear();
- }
-
- /**
- * \brief set capabilities
- * \param caps capabilities
- */
- template<class DeviceCapabilities>
- void CapabilitiesContainer<DeviceCapabilities>::set(const CapabilitiesContainer::Capabilities& caps)
- {
- if(caps.empty())
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Trying to set empty capabilities set");
- return;
- }
-
- mCapabilities = caps;
- }
-
- /**
- * \brief get capabilities
- * \return capabilities
- */
- template<class DeviceCapabilities>
- const typename CapabilitiesContainer<DeviceCapabilities>::Capabilities& CapabilitiesContainer<DeviceCapabilities>::get() const
- {
- return mCapabilities;
- }
-
- /**
- * \brief clearing underlying container
- */
- template<class DeviceCapabilities>
- void CapabilitiesContainer<DeviceCapabilities>::clear()
- {
- mCapabilities.clear();
- }
-
- /**
- * \brief Default class copy constructor
- */
- template<class DeviceCapabilities>
- CapabilitiesContainer<DeviceCapabilities>::CapabilitiesContainer(const CapabilitiesContainer&)
- {
- }
-
- template class CapabilitiesContainer<NsSmartDeviceLinkRPCV2::ButtonCapabilities>;
- template class CapabilitiesContainer<NsSmartDeviceLinkRPCV2::HmiZoneCapabilities>;
- template class CapabilitiesContainer<NsSmartDeviceLinkRPCV2::VrCapabilities>;
- template class CapabilitiesContainer<NsSmartDeviceLinkRPCV2::SpeechCapabilities>;
- template class CapabilitiesContainer<NsSmartDeviceLinkRPCV2::SoftButtonCapabilities>;
-}
diff --git a/SDL_Core/src/components/AppMgr/src/CommandMapping.cpp b/SDL_Core/src/components/AppMgr/src/CommandMapping.cpp
deleted file mode 100644
index 25e00ebf2..000000000
--- a/SDL_Core/src/components/AppMgr/src/CommandMapping.cpp
+++ /dev/null
@@ -1,381 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/CommandMapping.h"
-#include "AppMgr/RegistryItem.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
-
- log4cplus::Logger CommandMapping::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("CommandMapping"));
-
- /**
- * \brief Default class constructor
- */
- CommandMapping::CommandMapping()
- {
- }
-
- /**
- * \brief Default class destructor
- */
- CommandMapping::~CommandMapping()
- {
- clear();
- }
-
- /**
- * \brief add a command to a mapping
- * \param commandId command id
- * \param type command type
- * \param params VR or UI params supplied with the AddCommand request
- */
- void CommandMapping::addCommand(unsigned int commandId, const CommandType& type, CommandParams params)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Subscribed to a command " << commandId << " type " << type.getType() );
- mCommands.insert(Command(CommandBase( commandId, type ), params ));
- }
-
- /**
- * \brief remove a command from a mapping
- * \param commandId command id
- * \param type a type of a command
- */
- void CommandMapping::removeCommand(unsigned int commandId, const CommandType& type)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Deleting a command " << commandId << " type " << type.getType() );
- mCommands.erase(CommandBase(commandId, type));
- }
-
- /**
- * \brief finds commands in mapping
- * \param commandId command id
- * \return true if found, false if not
- */
- bool CommandMapping::findCommand(unsigned int commandId, const CommandType& type) const
- {
- return ( mCommands.find(CommandBase(commandId, type)) != mCommands.end() );
- }
-
- /**
- * \brief finds commands in mapping
- * \param commandId command id
- * \return commands list
- */
- Commands CommandMapping::findCommands(unsigned int commandId) const
- {
- Commands cmds;
- LOG4CPLUS_INFO_EXT(mLogger, "Searching for commands by id " << commandId );
- for(Commands::const_iterator it = mCommands.begin(); it != mCommands.end(); it++)
- {
- const Command& cmd = *it;
- const CommandBase& base = cmd.first;
- const unsigned int& cmdId = std::get<0>(base);
- const CommandType& cmdType = std::get<1>(base);
- if(cmdId == commandId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Found a command " << cmdId << " type " << cmdType.getType() );
- cmds.insert(cmd);
- }
- }
- return cmds;
- }
-
- /**
- * \brief gets all commands
- * \return commands
- */
- Commands CommandMapping::getAllCommands() const
- {
- return mCommands;
- }
-
- /**
- * \brief retrieve types associated with command id in current mapping
- * \param commandId command id to search for types
- * \return input container of command types to be filled with result
- */
- CommandTypes CommandMapping::getTypes( unsigned int commandId ) const
- {
- CommandTypes types;
- LOG4CPLUS_INFO_EXT(mLogger, "Searching for command types by command id " << commandId );
- for(CommandType type = CommandType::FIRST; type != CommandType::LAST; type++)
- {
- Commands::const_iterator it = mCommands.find( CommandBase(commandId, type) );
- if ( it != mCommands.end() )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Found a type " << type.getType() );
- types.push_back(type);
- }
- }
- return types;
- }
-
- /**
- * \brief get count of commands
- * \return commands count
- */
- size_t CommandMapping::size() const
- {
- return mCommands.size();
- }
-
- /**
- * \brief get count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to count unresponded requests for
- * \return unresponded requests count
- */
- unsigned int CommandMapping::getUnrespondedRequestCount(const unsigned int &cmdId) const
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Searching for unresponded requests for command " << cmdId );
- RequestsAwaitingResponse::const_iterator it = mRequestsPerCommand.find(cmdId);
- if(it != mRequestsPerCommand.end())
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Unresponded requests for command " << cmdId << " is " << it->second );
- return it->second;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "No unresponded requests for command " << cmdId << " found! " );
- return 0;
- }
-
- /**
- * \brief increment count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to increment unresponded request count for
- * \return unresponded requests count after the operation
- */
- unsigned int CommandMapping::incrementUnrespondedRequestCount(const unsigned int &cmdId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Incrementing for unresponded requests for command " << cmdId );
- RequestsAwaitingResponse::iterator it = mRequestsPerCommand.find(cmdId);
- unsigned int reqsCount = it != mRequestsPerCommand.end() ? it->second : 0;
- LOG4CPLUS_INFO_EXT(mLogger, "Unresponded requests for command " << cmdId << " was " << reqsCount );
- reqsCount++;
- if(it != mRequestsPerCommand.end())
- {
- mRequestsPerCommand.erase(it);
- }
- mRequestsPerCommand.insert(RequestAwaitingResponse(cmdId, reqsCount));
- LOG4CPLUS_INFO_EXT(mLogger, "Unresponded requests for command " << cmdId << " became " << reqsCount );
- return reqsCount;
- }
-
- /**
- * \brief decrement count of unresponsed requests associated with the given command id
- * \param cmdId id of command we need to decrement unresponded request count for
- * \return unresponded requests count after the operation
- */
- unsigned int CommandMapping::decrementUnrespondedRequestCount(const unsigned int &cmdId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Decrementing for unresponded requests for command " << cmdId );
- RequestsAwaitingResponse::iterator it = mRequestsPerCommand.find(cmdId);
- if(it != mRequestsPerCommand.end())
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Unresponded requests for command " << cmdId << " was " << it->second );
- if(it->second <= 0)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Trying to decrement already null value!" );
- return 0;
- }
- unsigned int reqsCount = it->second - 1;
- mRequestsPerCommand.erase(it);
- mRequestsPerCommand.insert(RequestAwaitingResponse(cmdId, reqsCount));
- LOG4CPLUS_INFO_EXT(mLogger, "Unresponded requests for command " << cmdId << " became " << reqsCount );
- return reqsCount;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "No unresponded requests for command " << cmdId << " found! " );
- return 0;
- }
-
- /**
- * \brief cleans all the items
- */
- void CommandMapping::clear()
- {
- mCommands.clear();
- }
-
- /**
- * \brief cleans all the requests awaiting response
- */
- void CommandMapping::clearUnrespondedRequests()
- {
- mRequestsPerCommand.clear();
- }
-
- /**
- * \brief Copy constructor
- */
- CommandMapping::CommandMapping(const CommandMapping &)
- {
- }
-
- /**
- * \brief Default constructor
- */
- CommandType::CommandType()
- :mType(CommandType::UNDEFINED)
- {
- }
-
- /**
- * \brief Copy constructor
- */
- CommandType::CommandType(const CommandType& src)
- :mType(src.getType())
- {
- }
-
- /**
- * \brief Class constructor
- * \param type command type to create a class with
- */
- CommandType::CommandType(const CommandType::Type& type)
- :mType(type)
- {
- }
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool CommandType::operator ==(const CommandType::Type &type) const
- {
- return mType == type;
- }
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool CommandType::operator ==(const CommandType &type) const
- {
- return mType == type.getType();
- }
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool CommandType::operator <(const CommandType::Type &type) const
- {
- return mType < type;
- }
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool CommandType::operator <(const CommandType &type) const
- {
- return mType < type.getType();
- }
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool CommandType::operator >(const CommandType::Type &type) const
- {
- return mType > type;
- }
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool CommandType::operator >(const CommandType &type) const
- {
- return mType > type.getType();
- }
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool CommandType::operator !=(const CommandType::Type &type) const
- {
- return mType != type;
- }
-
- /**
- * \brief comparison operator
- * \param type of a command to compare with
- * \return comparison result
- */
- bool CommandType::operator !=(const CommandType &type) const
- {
- return mType != type.getType();
- }
-
- /**
- * \brief pre-increment operator
- * \return incremented value
- */
- CommandType& CommandType::operator ++()
- {
- if(mType != CommandType::LAST)
- {
- int type = mType + 1;
- mType = (CommandType::Type)type;
- }
- return *this;
- }
-
- /**
- * \brief post-increment operator
- * \return incremented value
- */
- CommandType CommandType::operator++ (int)
- {
- CommandType result(*this);
- ++(*this);
- return result;
- }
-
- /**
- * \brief get command type
- * \return command type
- */
- const CommandType::Type& CommandType::getType() const
- {
- return mType;
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/ConnectionHandler.cpp b/SDL_Core/src/components/AppMgr/src/ConnectionHandler.cpp
deleted file mode 100644
index 35aaa27ce..000000000
--- a/SDL_Core/src/components/AppMgr/src/ConnectionHandler.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/ConnectionHandler.h"
-#include "ConnectionHandler/IDevicesDiscoveryStarter.hpp"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
- log4cplus::Logger ConnectionHandler::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("ConnectionHandler"));
-
- /**
- * \brief Returning class instance
- * \return class instance
- */
- ConnectionHandler &ConnectionHandler::getInstance()
- {
- static ConnectionHandler instance;
- return instance;
- }
-
- /**
- * \brief Sets connection handler instance
- * \param handler connection handler
- */
- void ConnectionHandler::setConnectionHandler(NsConnectionHandler::IDevicesDiscoveryStarter *handler)
- {
- if(!handler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "A null pointer is being assigned - is this the intent?");
- return;
- }
- mConnectionHandler = handler;
- }
-
- /**
- * \brief Gets connection handler instance
- * \return connection handler
- */
- NsConnectionHandler::IDevicesDiscoveryStarter *ConnectionHandler::getConnectionHandler() const
- {
- if(!mConnectionHandler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Connection handler hasn't yet been assigned, but an attempt to retrieve it has been made! Face a core dump soon...(((");
- }
- return mConnectionHandler;
- }
-
- /**
- * \brief Start device discovery
- */
- void ConnectionHandler::startDevicesDiscovery()
- {
- if(!mConnectionHandler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Connection handler hasn't yet been assigned, but an attempt to access it has been made! Giving up...");
- return;
- }
- mConnectionHandler->startDevicesDiscovery();
- }
-
- /**
- * \brief Connect to device specified in params
- * \param deviceHandle device handle
- */
- void ConnectionHandler::connectToDevice(NsConnectionHandler::tDeviceHandle deviceHandle)
- {
- if(!mConnectionHandler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Connection handler hasn't yet been assigned, but an attempt to access it has been made! Giving up...");
- return;
- }
- mConnectionHandler->connectToDevice(deviceHandle);
- }
-
- void ConnectionHandler::startTransportManager()
- {
- if(!mConnectionHandler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Connection handler hasn't yet been assigned, but an attempt to access it has been made! Giving up...");
- return;
- }
- mConnectionHandler->startTransportManager();
- }
-
- /**
- * \brief Default class constructor
- */
- ConnectionHandler::ConnectionHandler()
- :mConnectionHandler(0)
- {
- }
-
- /**
- * \brief Copy constructor
- */
- ConnectionHandler::ConnectionHandler(const ConnectionHandler &)
- :mConnectionHandler(0)
- {
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/DeviceHandler.cpp b/SDL_Core/src/components/AppMgr/src/DeviceHandler.cpp
deleted file mode 100644
index a39220a5d..000000000
--- a/SDL_Core/src/components/AppMgr/src/DeviceHandler.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/DeviceHandler.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
- log4cplus::Logger DeviceHandler::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("DeviceHandler"));
-
- /**
- * \brief Default class constructor
- */
- DeviceHandler::DeviceHandler()
- {
- }
-
- /**
- * \brief Default class destructor
- */
- DeviceHandler::~DeviceHandler()
- {
- clear();
- }
-
- /**
- * \brief add a device to a mapping
- * \param sessionKey session/connection key
- * \param device device handler
- */
- void DeviceHandler::addDevice(const int &sessionKey, const NsConnectionHandler::tDeviceHandle &device)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Adding a device " << device << " with a session " << sessionKey );
- mDeviceMapping.insert(DeviceMapItem(sessionKey, device));
- }
-
- /**
- * \brief remove a device from a mapping
- * \param sessionKey session/connection key
- */
- void DeviceHandler::removeDevice(const int &sessionKey)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Removing a device with a session " << sessionKey );
- mDeviceMapping.erase(sessionKey);
- }
-
- /**
- * \brief remove an application from a mapping
- * \param device device to remove all associated sessions from mapping
- */
- void DeviceHandler::removeSession(const NsConnectionHandler::tDeviceHandle &device)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Removing all sessions associated with device " << device );
- for(DeviceMap::iterator it = mDeviceMapping.begin(); it != mDeviceMapping.end(); it++)
- {
- if(it->second == device)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Removing session " << it->first );
- mDeviceMapping.erase(it->first);
- }
- }
- }
-
- /**
- * \brief find a device subscribed to sesssion
- * \param sessionKey session/connection key
- * \return device handler
- */
- NsConnectionHandler::tDeviceHandle DeviceHandler::findDeviceAssignedToSession(const int &sessionKey) const
- {
- DeviceMap::const_iterator it = mDeviceMapping.find(sessionKey);
- if(it != mDeviceMapping.end())
- {
- return it->second;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Session " << sessionKey << " not found in subscribed." );
- return 0;
- }
-
- /**
- * \brief cleans session mapping
- */
- void DeviceHandler::clear()
- {
- mDeviceMapping.clear();
- }
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t DeviceHandler::size() const
- {
- return mDeviceMapping.size();
- }
-
- /**
- * \brief Copy constructor
- */
- DeviceHandler::DeviceHandler(const DeviceHandler &)
- {
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/DeviceList.cpp b/SDL_Core/src/components/AppMgr/src/DeviceList.cpp
deleted file mode 100644
index f2eb0dab5..000000000
--- a/SDL_Core/src/components/AppMgr/src/DeviceList.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/DeviceList.h"
-
-namespace NsAppManager
-{
- log4cplus::Logger DeviceList::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("DeviceList"));
-
- /**
- * \brief Default class constructor
- */
- DeviceList::DeviceList()
- {
- }
-
- /**
- * \brief Default class destructor
- */
- DeviceList::~DeviceList()
- {
- }
-
- /**
- * \brief set device list
- * \param deviceList device list
- */
- void DeviceList::setDeviceList(const NsConnectionHandler::tDeviceList &deviceList)
- {
- mDeviceList = deviceList;
- }
-
- /**
- * \brief get device list
- * \return device list
- */
- const NsConnectionHandler::tDeviceList &DeviceList::getDeviceList() const
- {
- return mDeviceList;
- }
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t DeviceList::size() const
- {
- return mDeviceList.size();
- }
-
- /**
- * \brief find device associated with the given handle
- * \param handle device handle
- * \return device associated with the given handle
- */
- const NsConnectionHandler::CDevice* DeviceList::findDeviceByHandle(const NsConnectionHandler::tDeviceHandle &handle) const
- {
- NsConnectionHandler::tDeviceList::const_iterator it = mDeviceList.find(handle);
- if(it != mDeviceList.end())
- {
- return &it->second;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Device " << handle << " not found in subscribed." );
- return 0;
- }
-
- /**
- * \brief find device associated with the given name
- * \param name device name
- * \return device associated with the given name
- */
- const NsConnectionHandler::CDevice *DeviceList::findDeviceByName(const std::string &name) const
- {
- for(NsConnectionHandler::tDeviceList::const_iterator it = mDeviceList.begin(); it != mDeviceList.end(); it++)
- {
- const NsConnectionHandler::CDevice& device = it->second;
- if(device.getUserFriendlyName() == name)
- {
- return &device;
- }
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Device " << name << " not found in subscribed." );
- return 0;
- }
-
- /**
- * \brief Copy constructor
- */
- DeviceList::DeviceList(const DeviceList &)
- {
- }
-}
diff --git a/SDL_Core/src/components/AppMgr/src/DeviceStorage.cpp b/SDL_Core/src/components/AppMgr/src/DeviceStorage.cpp
deleted file mode 100644
index 0dca07525..000000000
--- a/SDL_Core/src/components/AppMgr/src/DeviceStorage.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/DeviceStorage.hpp"
-
-using namespace NsAppManager;
-
-DeviceStorage::DeviceStorage(int deviceHandle, const std::string & deviceName) :
-mDeviceHandle( deviceHandle )
-, mUserFriendlyName( deviceName )
-, mApplicationOnDeviceID( 0 )
-{}
-
-DeviceStorage::~DeviceStorage()
-{}
-
-void DeviceStorage::setAppId( int appId )
-{
- mApplicationOnDeviceID = appId;
-}
-
-int DeviceStorage::getAppId() const
-{
- return mApplicationOnDeviceID;
-}
-
-int DeviceStorage::getDeviceHandle() const
-{
- return mDeviceHandle;
-}
-
-const std::string & DeviceStorage::getUserFriendlyName() const
-{
- return mUserFriendlyName;
-}
-
-void DeviceStorage::addConnectionKey(int connectionKey)
-{
- mConnectionKeys.insert(connectionKey);
-}
-
-bool DeviceStorage::hasConnectionKey(int connectionKey)
-{
- return (mConnectionKeys.find(connectionKey) != mConnectionKeys.end());
-}
-
-void DeviceStorage::removeConnectionKey(int connectionKey)
-{
- mConnectionKeys.erase(connectionKey);
-}
-
-const std::set<int> & DeviceStorage::getConnectionKeys() const
-{
- return mConnectionKeys;
-}
diff --git a/SDL_Core/src/components/AppMgr/src/HMIHandler.cpp b/SDL_Core/src/components/AppMgr/src/HMIHandler.cpp
deleted file mode 100644
index 373aeb223..000000000
--- a/SDL_Core/src/components/AppMgr/src/HMIHandler.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/HMIHandler.h"
-#include "JSONHandler/JSONRPC2Handler.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
-
- log4cplus::Logger HMIHandler::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("AppMgrCore"));
-
- /**
- * \brief Returning class instance
- * \return class instance
- */
- HMIHandler& HMIHandler::getInstance()
- {
- static HMIHandler instance;
- return instance;
- }
-
- /**
- * \brief set handler ready state
- * \param ready ready state
- */
- void HMIHandler::setReadyState(bool ready)
- {
- if(mJSONRPC2Handler)
- {
- m_bHMIReady = ready;
- }
- else
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " HMIHandler is about to set ready, but is null!");
- }
- }
-
- /**
- * \brief send notification via associated handler
- * \param command notification to send
- */
- void HMIHandler::sendNotification(const NsRPC2Communication::RPC2Notification *command)
- {
- if(m_bHMIReady)
- {
- if(mJSONRPC2Handler)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Sending a notification " << command->getMethod());
- mJSONRPC2Handler->sendNotification(command);
- }
- }
- else
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " HMIHandler not ready yet!");
- }
- }
-
- /**
- * \brief send response via associated handler
- * \param command response to send
- */
- void HMIHandler::sendResponse(const NsRPC2Communication::RPC2Response *command)
- {
- if(m_bHMIReady)
- {
- if(mJSONRPC2Handler)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Sending a response " << command->getMethod());
- mJSONRPC2Handler->sendResponse(command);
- }
- }
- else
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " HMIHandler not ready yet!");
- }
- }
-
- /**
- * \brief send request via associated handler
- * \param command request to send
- */
- void HMIHandler::sendRequest(const NsRPC2Communication::RPC2Request *command)
- {
- if(m_bHMIReady)
- {
- if(mJSONRPC2Handler)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Sending a request " << command->getMethod());
- mJSONRPC2Handler->sendRequest(command);
- }
- }
- else
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " HMIHandler not ready yet!");
- }
- }
-
- /**
- * \brief set Json RPC2 handler
- * \param handler Json RPC2 handler instance
- */
- void HMIHandler::setJsonRPC2Handler(JSONRPC2Handler *handler)
- {
- if(!handler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "A null pointer is being assigned - is this the intent?");
- return;
- }
- mJSONRPC2Handler = handler;
- }
-
- /**
- * \brief get Json RPC2 handler
- * \return Json RPC2 handler instance
- */
- JSONRPC2Handler *HMIHandler::getJsonRPC2Handler() const
- {
- if(!mJSONRPC2Handler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "JSON RPC2 handler hasn't yet been assigned, but an attempt to retrieve it has been made! Face a core dump soon...(((");
- }
- return mJSONRPC2Handler;
- }
-
- /**
- * \brief Default class constructor
- */
- HMIHandler::HMIHandler()
- :mJSONRPC2Handler(0)
- ,m_bHMIReady(false)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " HMIHandler constructed!");
- }
-
- /**
- * \brief Copy constructor
- */
- HMIHandler::HMIHandler(const HMIHandler &)
- :mJSONRPC2Handler(0)
- ,m_bHMIReady(false)
- {
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/IAppCommand.cpp b/SDL_Core/src/components/AppMgr/src/IAppCommand.cpp
deleted file mode 100644
index ab13f535f..000000000
--- a/SDL_Core/src/components/AppMgr/src/IAppCommand.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/IAppCommand.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
-
- log4cplus::Logger IAppCommand::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("AppMgrCommands"));
-
- /**
- * \brief Class constructor
- * \param receiver a registry item associated with application that will execute command
- */
- IAppCommand::IAppCommand(const RegistryItem *receiver)
- :mReceiver(receiver)
- ,mParams(NULL)
- {
- }
-
- /**
- * \brief Copy constructor
- */
- IAppCommand::IAppCommand(const IAppCommand &)
- :mReceiver(0)
- ,mParams(0)
- {
- }
-
- /**
- * \brief Class constructor
- * \param receiver a registry item associated with application that will execute command
- * \param params command params
- */
- IAppCommand::IAppCommand(const RegistryItem* receiver, const void* params)
- :mReceiver(receiver)
- ,mParams(params)
- {
- }
-
- /**
- * \brief Default destructor
- */
- IAppCommand::~IAppCommand()
- {
- if(mParams)
- {
- delete mParams;
- }
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/MenuMapping.cpp b/SDL_Core/src/components/AppMgr/src/MenuMapping.cpp
deleted file mode 100644
index 90367d0b1..000000000
--- a/SDL_Core/src/components/AppMgr/src/MenuMapping.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/MenuMapping.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
-
- log4cplus::Logger MenuMapping::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("MenuMapping"));
-
- /**
- * \brief Default class constructor
- */
- MenuMapping::MenuMapping()
- {
- }
-
- /**
- * \brief Default class destructor
- */
- MenuMapping::~MenuMapping()
- {
- clear();
- }
-
- /**
- * \brief add a command to a mapping
- * \param commandId command id
- * \param menuId menu id
- */
- void MenuMapping::addCommand(const unsigned int& commandId, const unsigned int& menuId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Inserting a command " << commandId << " into a menu " << menuId );
- mMenuMapping.insert(MenuMapItem(commandId, menuId));
- }
-
- /**
- * \brief remove a command from a mapping
- * \param commandId command id
- */
- void MenuMapping::removeCommand(const unsigned int &commandId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Removing a command " << commandId );
- mMenuMapping.erase(commandId);
- }
-
- /**
- * \brief get count of items
- * \return items count
- */
- size_t MenuMapping::size() const
- {
- return mMenuMapping.size();
- }
-
- /**
- * \brief remove an application from a mapping
- * \param menuId id of a menu to remove all commands mapping from
- */
- void MenuMapping::removeMenu(const unsigned int& menuId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Removing a menu " << menuId );
- const MenuCommands& commands = findCommandsAssignedToMenu(menuId);
-
- for(MenuCommands::const_iterator it = commands.begin(); it != commands.end(); it++)
- {
- mMenuMapping.erase(*it);
- }
- }
-
- /**
- * \brief find a registry item subscribed to command
- * \param commandId command id
- * \return id of menu where a command resides
- */
- unsigned int MenuMapping::findMenuAssignedToCommand(const unsigned int& commandId) const
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Finding a menu associated with a command " << commandId );
- MenuMap::const_iterator it = mMenuMapping.find(commandId);
- if(it != mMenuMapping.end())
- {
- return it->second;
- }
- LOG4CPLUS_ERROR_EXT(mLogger, "Command " << commandId << " isn't associated with any menu" );
- return -1;
- }
-
- /**
- * \brief find commands within a menu
- * \param menuId menu id
- * \return commands residing within the given menu
- */
- MenuCommands MenuMapping::findCommandsAssignedToMenu(const unsigned int& menuId) const
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Finding a command list associated with a menu " << menuId );
- MenuCommands commands;
- for(MenuMap::const_iterator it = mMenuMapping.begin(); it != mMenuMapping.end(); it++)
- {
- const unsigned int& menuIdFound = it->second;
- if(menuId == menuIdFound)
- {
- commands.push_back(it->first);
- }
- }
- return commands;
- }
-
- /**
- * \brief cleans menu mapping
- */
- void MenuMapping::clear()
- {
- mMenuMapping.clear();
- }
-
- /**
- * \brief Copy constructor
- */
- MenuMapping::MenuMapping(const MenuMapping &)
- {
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/MessageChaining.cpp b/SDL_Core/src/components/AppMgr/src/MessageChaining.cpp
deleted file mode 100644
index aece3b23b..000000000
--- a/SDL_Core/src/components/AppMgr/src/MessageChaining.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/MessageChaining.hpp"
-
-using namespace NsAppManager;
-
-MessageChaining::MessageChaining(int _connectionKey,
- unsigned int _correlationID):
- correlationID(_correlationID)
-,connectionKey(_connectionKey)
-,success(true)
-//,rpcMessageId(_rpcMessageId)
-,counter(1)
-{}
-
-MessageChaining::~MessageChaining()
-{
- counter = 0;
-}
diff --git a/SDL_Core/src/components/AppMgr/src/MobileHandler.cpp b/SDL_Core/src/components/AppMgr/src/MobileHandler.cpp
deleted file mode 100644
index d4c4403e7..000000000
--- a/SDL_Core/src/components/AppMgr/src/MobileHandler.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/MobileHandler.h"
-#include "JSONHandler/JSONHandler.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
-
- log4cplus::Logger MobileHandler::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("AppMgrCore"));
-
- /**
- * \brief Returning class instance
- * \return class instance
- */
- MobileHandler &MobileHandler::getInstance()
- {
- static MobileHandler instance;
- return instance;
- }
-
- /**
- * \brief send a message via associated handler
- * \param message message to send
- * \param connectionID id of a connection associated with application that sent the message
- * \param sessionId id of a session associated with application that sent the message
- */
- void MobileHandler::sendRPCMessage(const NsSmartDeviceLinkRPC::SDLRPCMessage *message, int appId)
- {
- if(mJSONHandler)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Sending a message " << message->getMethodId()
- << " of the type " << message->getMessageType()
- << " with the application id " << appId
- << " to a mobile side");
- mJSONHandler->sendRPCMessage(message, appId);
- }
- else
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " MobileHandler is null!");
- }
- }
-
- /**
- * \brief set mobile Json handler
- * \param handler mobile Json handler instance
- */
- void MobileHandler::setJsonHandler(JSONHandler *handler)
- {
- if(!handler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "A null pointer is being assigned - is this the intent?");
- return;
- }
- mJSONHandler = handler;
- }
-
- /**
- * \brief get mobile Json handler
- * \return mobile Json handler instance
- */
- JSONHandler *MobileHandler::getJsonHandler() const
- {
- if(!mJSONHandler)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "JSON Mobile handler hasn't yet been assigned, but an attempt to retrieve it has been made! Face a core dump soon...(((");
- }
- return mJSONHandler;
- }
-
- /**
- * \brief Default class constructor
- */
- MobileHandler::MobileHandler()
- :mJSONHandler(0)
- {
- }
-
- /**
- * \brief Copy constructor
- */
- MobileHandler::MobileHandler(const MobileHandler &)
- :mJSONHandler(0)
- {
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/RegistryItem.cpp b/SDL_Core/src/components/AppMgr/src/RegistryItem.cpp
deleted file mode 100644
index f652e920d..000000000
--- a/SDL_Core/src/components/AppMgr/src/RegistryItem.cpp
+++ /dev/null
@@ -1,183 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/RegistryItem.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
-
- log4cplus::Logger RegistryItem::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("RegistryItem"));
-
- /**
- * \brief Class constructor
- * \param app application to register
- */
- RegistryItem::RegistryItem( Application* app )
- : mApplication(app)
- {
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "No application to register! Please specify a valid application instance!");
- return;
- }
- LOG4CPLUS_INFO_EXT(mLogger, " RegistryItem constructed for the application " << app->getName());
- }
-
- /**
- * \brief Copy constructor
- */
- RegistryItem::RegistryItem( const RegistryItem& item )
- : mApplication(item.getApplication())
- {
- }
-
- /**
- * \brief Default class destructor
- */
- RegistryItem::~RegistryItem( )
- {
- if(mApplication)
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Destroying RegistryItem for the application " << mApplication->getName()
- << " application id " << mApplication->getAppID() << " ...");
- delete mApplication;
- mApplication = 0;
- }
-
- for(Policies::iterator it = mAppPolicies.begin(); it != mAppPolicies.end(); it++)
- {
- if( *it )
- {
- delete *it;
- }
- }
-
- mAppPolicies.clear();
- LOG4CPLUS_INFO_EXT(mLogger, " Registry item was destroyed!");
- }
-
- /**
- * \brief operator ==
- * \param item the item to compare with
- * \return comparison result
- */
- bool RegistryItem::operator ==(const RegistryItem &item) const
- {
- return this->getApplication() == item.getApplication();
- }
-
- /**
- * \brief register application policy
- * \param hash policy text representation
- * \return app policy instance
- */
- const AppPolicy* RegistryItem::registerPolicy( const std::string& hash )
- {
- LOG4CPLUS_INFO_EXT(mLogger, " Registering a policy " << hash);
- AppPolicy* policy = new AppPolicy(hash);
- mAppPolicies.insert(policy);
- return *mAppPolicies.find(policy);
- }
-
- /**
- * \brief unregister application policy
- * \param policy policy to be unregistered
- */
- void RegistryItem::unregisterPolicy( AppPolicy* policy )
- {
- if(!policy)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Trying to unregister null policy!");
- return;
- }
- LOG4CPLUS_INFO_EXT(mLogger, " Unregistering a policy " << policy->getPolicyHash());
- Policies::iterator policyIterator = mAppPolicies.find(policy);
- mAppPolicies.erase(policyIterator);
- }
-
- /**
- * \brief get associated application
- * \return asssociated application
- */
- Application* RegistryItem::getApplication( ) const
- {
- if(!mApplication)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "About to return a null application: a null ptr exception may occur right after this line!");
- }
- return mApplication;
- }
-
- /**
- * \brief comparison operator
- * \param item2 item to compare with
- * \return comparison result
- */
- bool RegistryItem::operator <(const RegistryItem& item2 ) const
- {
- if(!this->getApplication() || !item2.getApplication())
- {
- LOG4CPLUS_ERROR_EXT(mLogger, "Cannot perform registry items comparison, due to null application(s) assigned to (some of) them");
- return false;
- }
- return this->getApplication()->getName() < item2.getApplication()->getName();
- }
-
- /**
- * \brief get application policies
- * \param app application to get policies for
- * \return app policy set
- */
- RegistryItem::Policies RegistryItem::getApplicationPolicies( const Application* app ) const
- {
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Trying to get policies of null application!");
- // return;
- }
- Policies policySet;
- return policySet;
- }
-
- /**
- * \brief get application policies
- * \param app name of an application to get policies for
- * \return app policy set
- */
- RegistryItem::Policies RegistryItem::getApplicationPolicies( const std::string& app ) const
- {
- Policies policySet;
- return policySet;
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/SyncPManager.cpp b/SDL_Core/src/components/AppMgr/src/SyncPManager.cpp
deleted file mode 100644
index 7a0c9b52b..000000000
--- a/SDL_Core/src/components/AppMgr/src/SyncPManager.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <iostream>
-#include <fstream>
-#include <sstream>
-#include "encryption/Base64.h"
-#include "AppMgr/SyncPManager.h"
-
-
-namespace NsAppManager
-{
-
- log4cplus::Logger SyncPManager::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("SyncPManager"));
-
- /**
- * \brief Default class destructor
- */
- SyncPManager::~SyncPManager()
- {
- mPData.clear();
- }
-
- /**
- * \brief set base64-encoded PData
- * \param data vector of strings of base64-encoded information
- */
- void SyncPManager::setPData(const SyncPManager::PData &data, const std::string& appName, const int& methodId)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Setting PData of length " << data.size() );
- mPData = data;
- std::stringstream stringStream((std::stringstream::in | std::stringstream::out));
- stringStream << appName << "_" << methodId;
- std::string fileName;
- stringStream >> fileName;
- serializeToFile( fileName, mPData );
- LOG4CPLUS_INFO_EXT(mLogger, "PData of length " << data.size() << " serialized to file " << fileName );
- }
-
- /**
- * \brief get base64-encoded PData
- * \return vector of strings of base64-encoded information
- */
- const SyncPManager::PData& SyncPManager::getPData() const
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Getting PData of length " << mPData.size() );
- return mPData;
- }
-
- /**
- * \brief set raw string data
- * \param data vector of strings
- */
- void SyncPManager::setRawData(const SyncPManager::RawData &data)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Setting raw data of length " << data.size() );
- mPData.clear();
- for(RawData::const_iterator it = data.begin(); it != data.end(); it++)
- {
- const std::string& rawString = *it;
- std::string pData = base64_encode((const unsigned char*)rawString.c_str(), rawString.length());
- mPData.push_back(pData);
- }
- LOG4CPLUS_INFO_EXT(mLogger, "PData now is of mength length " << mPData.size() );
- }
-
- /**
- * \brief set raw string data
- * \return vector of strings
- */
- SyncPManager::RawData SyncPManager::getRawData() const
- {
- RawData rawData;
- for(PData::const_iterator it = mPData.begin(); it != mPData.end(); it++)
- {
- std::string rawString = base64_decode(*it);
- rawData.push_back(rawString);
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Getting raw data of length " << rawData.size() );
- return rawData;
- }
-
- /**
- * \brief Default class constructor
- */
- SyncPManager::SyncPManager()
- {
- }
-
- /**
- * \brief Copy constructor
- */
- SyncPManager::SyncPManager(const SyncPManager &)
- {
- }
-
- /**
- * \brief serialize a string vector to the text file
- * \param fileName name of the file to serialize to
- * \param value a value to serialize
- * \return success of an operation - true or false
- */
- bool SyncPManager::serializeToFile(const std::string &fileName, const PData &value) const
- {
- if(fileName.empty())
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " AppMgrCore cannot serialize to a file: a filename is empty!");
- return false;
- }
- if(!value.empty())
- {
- std::ofstream file(fileName, std::ios::out | std::ios::trunc);
- if(file.is_open())
- {
- for(PData::const_iterator it = value.begin(); it != value.end(); it++)
- {
- file << *it << std::endl;
- }
- LOG4CPLUS_INFO_EXT(mLogger, " AppMgrCore successfully serialized a vector of size " <<value.size() << " to a file " << fileName);
- file.close();
- return true;
- }
- else
- {
- LOG4CPLUS_INFO_EXT(mLogger, " AppMgrCore cannot serialize to a file: error creating file!");
- return false;
- }
- }
- LOG4CPLUS_INFO_EXT(mLogger, " AppMgrCore cannot serialize to a file: value is empty!");
- return false;
- }
-
- /**
- * \brief deserialize a string vector from the text file
- * \param fileName name of the file to deserialize from
- * \param value a value to deserialize
- * \return success of an operation - true or false
- */
- bool SyncPManager::deserializeFromFile(const std::string &fileName, PData &value)
- {
- value.empty();
- std::ifstream file(fileName);
- if( file.is_open() )
- {
- if( file.good() )
- {
- for ( std::string line; getline(file, line); )
- {
- value.push_back(line);
- }
- }
- file.close();
- LOG4CPLUS_INFO_EXT(mLogger, "PData of length " << value.size() << " deserialized from file " << fileName );
- }
- else
- {
- LOG4CPLUS_INFO_EXT(mLogger, " AppMgrCore cannot deserialize a file: probably file doesn't exist!");
- }
- return false;
- }
-
-}
diff --git a/SDL_Core/src/components/AppMgr/src/VehicleDataMapping.cpp b/SDL_Core/src/components/AppMgr/src/VehicleDataMapping.cpp
deleted file mode 100644
index 4f5f76a9d..000000000
--- a/SDL_Core/src/components/AppMgr/src/VehicleDataMapping.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "AppMgr/VehicleDataMapping.h"
-#include "AppMgr/RegistryItem.h"
-#include "LoggerHelper.hpp"
-
-namespace NsAppManager
-{
-
- log4cplus::Logger VehicleDataMapping::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("VehicleDataMapping"));
-
- VehicleDataMapping::VehicleDataMapping()
- {
- }
-
- VehicleDataMapping::~VehicleDataMapping()
- {
- clear();
- }
-
- bool VehicleDataMapping::addVehicleDataMapping(const NsSmartDeviceLinkRPCV2::VehicleDataType& vehicleDataName,
- Application* app)
- {
- bool result = true;
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Adding a VehicleData to a null registry item");
- return false;
- }
- std::pair<VehicleDataMapIterator, VehicleDataMapIterator> p =
- mVehicleDataMapping.equal_range(vehicleDataName.get());
- if (p.first != p.second)
- {
- for (VehicleDataMapIterator itr = p.first; itr != p.second; itr++)
- {
- if (app->getAppID() == itr->second->getAppID())
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Already subscribed to VehicleData "
- << itr->first << " in app "
- << itr->second->getName() );
- result = false;
- break;
- }
- }
- }
- if (result)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Subscribed to VehicleData "
- << vehicleDataName.get() << " in app "
- << app->getName() );
-
- mVehicleDataMapping.insert(VehicleDataMapItem(vehicleDataName.get(), app));
- }
- return result;
- }
-
- bool VehicleDataMapping::removeVehicleDataMapping(const NsSmartDeviceLinkRPCV2::VehicleDataType& vehicleDataName, Application* app)
- {
- bool result =false;
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Removing VehicleData from a null registry item");
- return result;
- }
- std::pair<VehicleDataMapIterator, VehicleDataMapIterator> p = mVehicleDataMapping.equal_range(vehicleDataName.get());
- if (p.first != p.second)
- {
- for (VehicleDataMapIterator itr = p.first; itr != p.second; itr++)
- {
- if (app->getAppID() == itr->second->getAppID())
- {
- LOG4CPLUS_INFO_EXT(mLogger, "UnSubscribed from VehicleData "
- << itr->first << " in app "
- << itr->second->getName() );
-
- mVehicleDataMapping.erase(itr);
- result = true;
- break;
- }
- }
- }
- return result;
- }
-
- void VehicleDataMapping::removeItem(Application *app)
- {
- if(!app)
- {
- LOG4CPLUS_ERROR_EXT(mLogger, " Trying to remove a null item");
- return;
- }
- for(VehicleDataMap::iterator it = mVehicleDataMapping.begin(); it != mVehicleDataMapping.end(); it++)
- {
- if(it->second->getAppID() == app->getAppID())
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Removed from VehicleData " << it->first << " with app " << it->second->getName() );
- mVehicleDataMapping.erase(it);
- }
- }
- }
-
- void VehicleDataMapping::clear()
- {
- mVehicleDataMapping.clear();
- }
-
- int VehicleDataMapping::findRegistryItemsSubscribedToVehicleData(
- const NsSmartDeviceLinkRPCV2::VehicleDataType& vehicleDataName,
- std::vector<Application*>& result)
- {
- std::pair<VehicleDataMapIterator, VehicleDataMapIterator> p =
- mVehicleDataMapping.equal_range(vehicleDataName.get());
- if (p.first != p.second)
- {
- VehicleDataMapIterator itr;
- for (itr = p.first; itr != p.second; itr++)
- {
- result.push_back(itr->second);
- }
- }
- LOG4CPLUS_INFO_EXT(mLogger, "Found " << result.size() << " subscribers.");
- return result.size();
- }
-
- VehicleDataMapping::VehicleDataMapping(const VehicleDataMapping &)
- {
- }
-}
diff --git a/SDL_Core/src/components/CMakeLists.txt b/SDL_Core/src/components/CMakeLists.txt
index dee7e681b..829ff70db 100644
--- a/SDL_Core/src/components/CMakeLists.txt
+++ b/SDL_Core/src/components/CMakeLists.txt
@@ -1,17 +1,82 @@
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# --- Interfaces
+add_subdirectory(./interfaces)
+
# --- TransportManager
-add_subdirectory(./TransportManager)
+add_subdirectory(./transport_manager)
-# --- AppMgr
-add_subdirectory(./AppMgr)
+# --- Policies
+add_subdirectory(./resumption)
-# --- JSONHandler
-add_subdirectory(./JSONHandler)
+# --- formatters
+add_subdirectory(./formatters)
# --- ProtocolHandler
-add_subdirectory(./ProtocolHandler)
+add_subdirectory(./protocol_handler)
# --- ConnectionHandler
-add_subdirectory(./ConnectionHandler)
+add_subdirectory(./connection_handler)
# --- Utils
-add_subdirectory(./Utils)
+add_subdirectory(./utils)
+
+# --- Validated types
+add_subdirectory(./rpc_base)
+
+# --- SmartObjects
+add_subdirectory(./smart_objects)
+
+# --- Application manager
+add_subdirectory(./application_manager)
+
+# --- Request watchdog
+add_subdirectory(./request_watchdog)
+
+# --- HMI Message Handler
+add_subdirectory(./hmi_message_handler)
+
+# --- Config
+add_subdirectory(./config_profile)
+
+# --- AudioManager
+add_subdirectory(./media_manager)
+
+# --- Policies
+add_subdirectory(./policies)
+
+if (${QT_HMI})
+# --- DBus
+ add_subdirectory(./dbus)
+# --- Qt HMI
+ add_subdirectory(./qt_hmi)
+endif ()
+
diff --git a/SDL_Core/src/components/ConnectionHandler/CMakeLists.txt b/SDL_Core/src/components/ConnectionHandler/CMakeLists.txt
deleted file mode 100644
index 9df533d29..000000000
--- a/SDL_Core/src/components/ConnectionHandler/CMakeLists.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-include_directories (
- ./include/
- ../TransportManager/include/
- ../ProtocolHandler/include/
- ../../thirdPartyLibs/logger/include
- ../../thirdPartyLibs/logger/log4cplus-1.1.0/include
- ${CMAKE_BINARY_DIR}/src/thirdPartyLibs/logger/log4cplus-1.1.0/include
-)
-
-set (SOURCES
- ./src/CConnectionHandler.cpp
- ./src/CConnection.cpp
- ./src/CDevice.cpp
-)
-
-add_library("connectionHandler" ${SOURCES})
diff --git a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CConnection.hpp b/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CConnection.hpp
deleted file mode 100644
index d22ff9d3b..000000000
--- a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CConnection.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- * \file CConnection.hpp
- * \brief Connection class.
- * Stores connection information
- *
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CONNECTION_H
-#define CONNECTION_H
-
-#include "Logger.hpp"
-#include "ConnectionHandler/CDevice.hpp"
-
-/**
- * \namespace NsConnectionHandler
- * \brief SmartDeviceLink ConnectionHandler namespace.
- */
-namespace NsConnectionHandler
-{
-
- /**
- * \brief Type for ConnectionHandle
- */
- typedef int tConnectionHandle;
-
- /**
- * \brief Type for Sessions vector
- */
- typedef std::vector<unsigned char> tSessionList;
-
- /**
- * \brief Type for Sessions vector iterator
- */
- typedef std::vector<unsigned char>::iterator tSessionListIterator;
-
- /**
- * \class CConnection
- * \brief Connection class
- */
- class CConnection
- {
- public:
- /**
- * \brief Class constructor
- */
- CConnection(tConnectionHandle aConnectionHandle, tDeviceHandle aConnectionDeviceHandle);
-
- /**
- * \brief Destructor
- */
- ~CConnection();
-
- /**
- * \brief Returns device handle
- * \return DeviceHandle
- */
- tConnectionHandle getConnectionHandle();
-
- /**
- * \brief Returns connection device handle
- * \return ConnectionDeviceHandle
- */
- tDeviceHandle getConnectionDeviceHandle();
-
- /**
- * \brief Adds session to connection
- * \return sessionID or -1 in case of issues
- */
- int addNewSession();
-
- /**
- * \brief Removes session from connection
- * \param aSession session ID
- * \return sessionID or -1 in case of issues
- */
- int removeSession(unsigned char aSession);
-
- /**
- * \brief Returns ID of first session from connection
- * \return first sessionID or -1 in case of issues
- */
- int getFirstSessionID();
- private:
-
- /**
- * \brief Current connection handle.
- */
- tConnectionHandle mConnectionHandle;
-
- /**
- * \brief DeviceHandle of this connection.
- */
- tDeviceHandle mConnectionDeviceHandle;
-
- /**
- * \brief Counter to generate session id's.
- */
- unsigned char mSessionIDCounter;
-
- /**
- * \brief Counter to generate session id's.
- */
- tSessionList mSessionList;
-
- /**
- * \brief For logging.
- */
- static log4cplus::Logger mLogger;
- };
-
- /**
- * \brief Type for Connections map
- * Key is ConnectionHandle which is uniq
- */
- typedef std::map<int, CConnection> tConnectionList;
-
- /**
- * \brief Type for Connections map iterator
- */
- typedef std::map<int, CConnection>::iterator tConnectionListIterator;
-
-}/* namespace NsConnectionHandler */
-
-#endif /* CONNECTION_H */
diff --git a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CConnectionHandler.hpp b/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CConnectionHandler.hpp
deleted file mode 100644
index a8a0d2eaf..000000000
--- a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CConnectionHandler.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-/**
- * \file CConnectionHandler.hpp
- * \brief Connection handler class.
- * Observes TransportManager and ProtocolHandler, stores information regarding connections
- * and sessions and provides it to AppManager.
- *
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CONNECTIONHANDLER_H
-#define CONNECTIONHANDLER_H
-
-#include <map>
-
-#include "Logger.hpp"
-#include "TransportManager/ITransportManagerDeviceListener.hpp"
-#include "TransportManager/SDeviceInfo.hpp"
-#include "ProtocolHandler/ISessionObserver.h"
-#include "ConnectionHandler/IConnectionHandlerObserver.hpp"
-#include "ConnectionHandler/CDevice.hpp"
-#include "ConnectionHandler/CConnection.hpp"
-#include "ConnectionHandler/IDevicesDiscoveryStarter.hpp"
-#include "ConnectionHandler/IConnectionHandler.hpp"
-/**
- * \namespace NsConnectionHandler
- * \brief SmartDeviceLink ConnectionHandler namespace.
- */
-namespace NsConnectionHandler
-{
- /**
- * \class CConnectionHandler
- * \brief SmartDeviceLink ConnectionHandler main class
- */
- class CConnectionHandler: public NsSmartDeviceLink::NsTransportManager::ITransportManagerDeviceListener,
- public NsProtocolHandler::ISessionObserver,
- public IDevicesDiscoveryStarter,
- public IConnectionHandler
- {
- public:
- /**
- * \brief Singletone instantiator.
- * \return pointer to CConnectionHandler instance.
- */
- static CConnectionHandler* getInstance();
-
- /**
- * \brief Destructor
- */
- ~CConnectionHandler();
-
- /**
- * \brief Sets observer pointer for ConnectionHandler.
- * \param observer Pointer to observer object.
- **/
- void setConnectionHandlerObserver(IConnectionHandlerObserver * observer);
-
- /**
- * \brief Available devices list updated.
- *
- * Called when device scanning initiated with scanForNewDevices
- * is completed.
- *
- * \param DeviceList New list of available devices.
- **/
- virtual void onDeviceListUpdated(const NsSmartDeviceLink::NsTransportManager::tDeviceList & DeviceList);
-
- /**
- * \brief Application connected.
- *
- * \param ConnectedDevice DeviceInfo of connected device.
- * \param Connection Connection handle.
- **/
- virtual void onApplicationConnected(const NsSmartDeviceLink::NsTransportManager::SDeviceInfo & ConnectedDevice, const NsSmartDeviceLink::NsTransportManager::tConnectionHandle Connection);
-
- /**
- * \brief Application disconnected.
- *
- * \param DisconnectedDevice DeviceInfo of disconnected device.
- * \param Connection Connection handle.
- **/
- virtual void onApplicationDisconnected(const NsSmartDeviceLink::NsTransportManager::SDeviceInfo & DisconnectedDevice, const NsSmartDeviceLink::NsTransportManager::tConnectionHandle Connection);
-
- virtual int onSessionStartedCallback(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle);
-
- virtual int onSessionEndedCallback(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned char sessionId,
- unsigned int hashCode);
-
- virtual int keyFromPair(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned char sessionId);
-
- virtual void pairFromKey(int key, NsSmartDeviceLink::NsTransportManager::tConnectionHandle & connectionHandle,
- unsigned char & sessionId);
-
- /**
- * \brief Sets pointer to TransportManager.
- * \param transportManager Pointer to TransportManager object.
- **/
- void setTransportManager( NsSmartDeviceLink::NsTransportManager::ITransportManager * transportManager );
-
- /**
- * \brief Method which should start devices discoveryng
- */
- virtual void startDevicesDiscovery();
-
- /**
- * \brief Connects to all services of device
- * \param deviceHandle Handle of device to connect to
- */
- virtual void connectToDevice( NsConnectionHandler::tDeviceHandle deviceHandle );
-
- void startTransportManager();
-
- private:
- /**
- * \brief Default class constructor
- */
- CConnectionHandler();
-
- /**
- * \brief Copy constructor
- */
- CConnectionHandler(const CConnectionHandler&);
-
- /**
- * \brief Pointer to observer
- */
- IConnectionHandlerObserver* mpConnectionHandlerObserver;
-
- /**
- * \brief Pointer to TransportManager
- */
- NsSmartDeviceLink::NsTransportManager::ITransportManager * mpTransportManager;
-
- /**
- * \brief List of devices
- */
- tDeviceList mDeviceList;
-
- /**
- * \brief List of connections
- */
- tConnectionList mConnectionList;
-
- /**
- *\brief For logging.
- */
- static log4cplus::Logger mLogger;
- };
-}/* namespace NsConnectionHandler */
-
-#endif /* CONNECTIONHANDLER_H */
diff --git a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CDevice.hpp b/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CDevice.hpp
deleted file mode 100644
index 559188bf4..000000000
--- a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/CDevice.hpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * \file CDevice.hpp
- * \brief CDevice class.
- * Stores device information
- *
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef DEVICE_H
-#define DEVICE_H
-
-#include "Logger.hpp"
-#include <string>
-#include <map>
-
-/**
- * \namespace NsConnectionHandler
- * \brief SmartDeviceLink ConnectionHandler namespace.
- */
-namespace NsConnectionHandler
-{
-
- /**
- * \brief Type for DeviceHandle
- */
- typedef int tDeviceHandle;
-
- /**
- * \class CDevice
- * \brief Connection class
- */
- class CDevice
- {
- public:
- /**
- * \brief Class constructor
- */
- CDevice(tDeviceHandle aDeviceHandle, std::string aUserFriendlyName);
-
- /**
- * \brief Destructor
- */
- ~CDevice();
-
- /**
- * \brief Returns device handle
- * \return DeviceHandle
- */
- tDeviceHandle getDeviceHandle() const;
-
- /**
- * \brief Returns user frendly device name
- * \return UserFriendlyName
- */
- std::string getUserFriendlyName() const;
-
- private:
- /**
- * \brief Uniq device handle.
- */
- tDeviceHandle mDeviceHandle;
-
- /**
- * \brief User-friendly device name.
- */
- std::string mUserFriendlyName;
-
- /**
- * \brief For logging.
- */
- static log4cplus::Logger mLogger;
- };
-
- /**
- * \brief Type for Devices map
- */
- typedef std::map<int, CDevice> tDeviceList;
-
- /**
- * \brief Type for Devices map iterator
- * Key is DeviceHandle which is uniq
- */
- typedef std::map<int, CDevice>::iterator tDeviceListIterator;
-
-}/* namespace NsConnectionHandler */
-
-#endif /* DEVICE_H */
diff --git a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IConnectionHandler.hpp b/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IConnectionHandler.hpp
deleted file mode 100644
index 0a967aedd..000000000
--- a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IConnectionHandler.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * \file IConnectionHandler.hpp
- * \brief Connection handler interface class.
- *
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ICONNECTIONHANDLER_H
-#define ICONNECTIONHANDLER_H
-
-#include "TransportManager/ITransportManagerDeviceListener.hpp"
-#include "TransportManager/SDeviceInfo.hpp"
-#include "ProtocolHandler/ISessionObserver.h"
-#include "ConnectionHandler/IConnectionHandlerObserver.hpp"
-#include "ConnectionHandler/CDevice.hpp"
-#include "ConnectionHandler/CConnection.hpp"
-#include "ConnectionHandler/IDevicesDiscoveryStarter.hpp"
-
-/**
- * \namespace NsConnectionHandler
- * \brief SmartDeviceLink ConnectionHandler namespace.
- */
-namespace NsConnectionHandler
-{
- /**
- * \class IConnectionHandler
- * \brief SmartDeviceLink ConnectionHandler interface class
- */
- class IConnectionHandler
- {
- public:
- /**
- * \brief Sets observer pointer for ConnectionHandler.
- * \param observer Pointer to observer object.
- **/
- virtual void setConnectionHandlerObserver(IConnectionHandlerObserver * observer)=0;
-
- /**
- * \brief Sets pointer to TransportManager.
- * \param transportManager Pointer to TransportManager object.
- **/
- virtual void setTransportManager( NsSmartDeviceLink::NsTransportManager::ITransportManager * transportManager )=0;
-
- virtual void startTransportManager() = 0;
-
- protected:
- /**
- * \brief Destructor
- */
- virtual ~IConnectionHandler(){};
-
- };
-}/* namespace NsConnectionHandler */
-
-#endif /* ICONNECTIONHANDLER_H */
diff --git a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IConnectionHandlerObserver.hpp b/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IConnectionHandlerObserver.hpp
deleted file mode 100644
index 76fc9d25a..000000000
--- a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IConnectionHandlerObserver.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * \file IConnectionHandlerObserver.hpp
- * \brief IConnectionHandlerObserver class.
- *
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CONNECTIONHANDLEROBSERVER_H
-#define CONNECTIONHANDLEROBSERVER_H
-
-#include "Logger.hpp"
-
-#include "ConnectionHandler/CDevice.hpp"
-#include "ConnectionHandler/CConnection.hpp"
-
-/**
- * \namespace NsConnectionHandler
- * \brief SmartDeviceLink ConnectionHandler namespace.
- */
-namespace NsConnectionHandler
-{
- /**
- * \class IConnectionHandlerObserver
- * \brief IConnectionHandlerObserver class
- */
- class IConnectionHandlerObserver
- {
- public:
-
- /**
- * \brief Available devices list updated.
- *
- * Called when device scanning initiated with scanForNewDevices
- * is completed.
- *
- * \param DeviceList New list of available devices.
- **/
- virtual void onDeviceListUpdated(const NsConnectionHandler::tDeviceList & DeviceList) = 0;
-
- virtual void onSessionStartedCallback(NsConnectionHandler::tDeviceHandle deviceHandle,
- int sessionKey, int firstSessionKey) = 0;
-
- virtual void onSessionEndedCallback(int sessionKey, int firstSessionKey) = 0;
-
- protected:
- /**
- * \brief Destructor
- */
- virtual ~IConnectionHandlerObserver() {};
- };
-}/* namespace NsConnectionHandler */
-
-#endif /* CONNECTIONHANDLEROBSERVER_H */
diff --git a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IDevicesDiscoveryStarter.hpp b/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IDevicesDiscoveryStarter.hpp
deleted file mode 100644
index edee2de83..000000000
--- a/SDL_Core/src/components/ConnectionHandler/include/ConnectionHandler/IDevicesDiscoveryStarter.hpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * \file IDevicesDiscoveryStarter.hpp
- * \brief Starter of devices discovering process.
- *
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef IDEVICESDISCOVERYSTARTER_H
-#define IDEVICESDISCOVERYSTARTER_H
-
-#include "ConnectionHandler/CDevice.hpp"
-
-/**
- * \namespace NsConnectionHandler
- * \brief SmartDeviceLink ConnectionHandler namespace.
- */
-namespace NsConnectionHandler
-{
- /**
- * \class IDevicesDiscoveryStarter
- * \brief Starter of devices discovering process class
- */
- class IDevicesDiscoveryStarter
- {
- public:
- /**
- * \brief Method which should start devices discoveryng
- */
- virtual void startDevicesDiscovery()=0;
-
- /**
- * \brief Connects to all services of device
- * \param deviceHandle Handle of device to connect to
- */
- virtual void connectToDevice( NsConnectionHandler::tDeviceHandle deviceHandle ) = 0;
-
- virtual void startTransportManager() = 0;
-
- protected:
- /**
- * \brief Destructor
- */
- virtual ~IDevicesDiscoveryStarter() {};
- };
-}/* namespace NsConnectionHandler */
-
-#endif /* IDEVICESDISCOVERYSTARTER_H */
diff --git a/SDL_Core/src/components/ConnectionHandler/src/CConnection.cpp b/SDL_Core/src/components/ConnectionHandler/src/CConnection.cpp
deleted file mode 100644
index 424f519db..000000000
--- a/SDL_Core/src/components/ConnectionHandler/src/CConnection.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- * \file CConnection.cpp
- * \brief Connection class implementation.
- *
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "Logger.hpp"
-
-#include <algorithm>
-
-#include "ConnectionHandler/CConnection.hpp"
-
-/**
- * \namespace NsConnectionHandler
- * \brief SmartDeviceLink ConnectionHandler namespace.
- */
-namespace NsConnectionHandler
-{
-
- log4cplus::Logger CConnection::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("ConnectionHandler"));
-
- CConnection::CConnection(tConnectionHandle aConnectionHandle, tDeviceHandle aConnectionDeviceHandle):
- mConnectionHandle(aConnectionHandle),
- mConnectionDeviceHandle(aConnectionDeviceHandle),
- mSessionIDCounter(1)
- {
-
- }
-
- CConnection::~CConnection()
- {
-
- }
-
- int CConnection::addNewSession()
- {
- int result = -1;
- if (255 > mSessionIDCounter)
- {
- mSessionList.push_back(mSessionIDCounter);
- result = mSessionIDCounter++;
- }
- return result;
- }
-
- int CConnection::removeSession(unsigned char aSession)
- {
- int result = -1;
- tSessionListIterator it = std::find(mSessionList.begin(), mSessionList.end(), aSession);
- if (mSessionList.end() == it)
- {
- LOG4CPLUS_ERROR( mLogger, "Session not found in this connection!");
- } else
- {
- mSessionList.erase(it);
- result = aSession;
- }
- return result;
- }
-
- int CConnection::getFirstSessionID()
- {
- int result = -1;
- tSessionListIterator it = mSessionList.begin();
- if (mSessionList.end() != it)
- {
- result = *it;
- }
- return result;
- }
-
- tConnectionHandle CConnection::getConnectionHandle()
- {
- return mConnectionHandle;
- }
-
- tDeviceHandle CConnection::getConnectionDeviceHandle()
- {
- return mConnectionDeviceHandle;
- }
-}/* namespace NsConnectionHandler */
diff --git a/SDL_Core/src/components/ConnectionHandler/src/CConnectionHandler.cpp b/SDL_Core/src/components/ConnectionHandler/src/CConnectionHandler.cpp
deleted file mode 100644
index b51d383de..000000000
--- a/SDL_Core/src/components/ConnectionHandler/src/CConnectionHandler.cpp
+++ /dev/null
@@ -1,282 +0,0 @@
-/**
- * \file CConnectionHandler.cpp
- * \brief Connection handler class.
- * \Observes TransportManager and ProtocolHandler, stores information regarding connections
- * \and sessions and provides it to AppManager.
- *
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "Logger.hpp"
-
-#include "ConnectionHandler/CConnectionHandler.hpp"
-
-/**
- * \namespace NsConnectionHandler
- * \brief SmartDeviceLink ConnectionHandler namespace.
- */
-namespace NsConnectionHandler
-{
-
- log4cplus::Logger CConnectionHandler::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("ConnectionHandler"));
-
- CConnectionHandler* CConnectionHandler::getInstance()
- {
- static CConnectionHandler instance;
- return &instance;
- }
-
- CConnectionHandler::CConnectionHandler():
- mpConnectionHandlerObserver(NULL),
- mpTransportManager(NULL)
- {
-
- }
-
- CConnectionHandler::~CConnectionHandler()
- {
-
- }
-
- void CConnectionHandler::setConnectionHandlerObserver(IConnectionHandlerObserver * observer)
- {
- LOG4CPLUS_INFO( mLogger, "CConnectionHandler::setConnectionHandlerObserver()" );
- if ( !observer )
- {
- LOG4CPLUS_ERROR(mLogger, "Null pointer to observer.");
- return;
- }
- mpConnectionHandlerObserver = observer;
- }
-
- void CConnectionHandler::onDeviceListUpdated(const NsSmartDeviceLink::NsTransportManager::tDeviceList & DeviceList)
- {
- LOG4CPLUS_INFO( mLogger, "CConnectionHandler::onDeviceListUpdated()" );
- NsSmartDeviceLink::NsTransportManager::tDeviceList::const_iterator it_in;
- mDeviceList.clear();
- for (it_in = DeviceList.begin(); it_in != DeviceList.end(); it_in++)
- {
- mDeviceList.insert(tDeviceList::value_type((*it_in).mDeviceHandle, CDevice((*it_in).mDeviceHandle, (*it_in).mUserFriendlyName)));
- }
- if (0 != mpConnectionHandlerObserver)
- {
- mpConnectionHandlerObserver->onDeviceListUpdated(mDeviceList);
- }
- }
-
- void CConnectionHandler::onApplicationConnected(const NsSmartDeviceLink::NsTransportManager::SDeviceInfo & ConnectedDevice, const NsSmartDeviceLink::NsTransportManager::tConnectionHandle Connection)
- {
- LOG4CPLUS_INFO( mLogger, "CConnectionHandler::onApplicationConnected()" );
- tDeviceListIterator it = mDeviceList.find(ConnectedDevice.mDeviceHandle);
- if (mDeviceList.end() == it)
- {
- LOG4CPLUS_ERROR( mLogger, "Unknown device!");
- return;
- }
- LOG4CPLUS_INFO( mLogger, "Add Connection:" << Connection << " to the list." );
- mConnectionList.insert(tConnectionList::value_type(Connection, CConnection(Connection, ConnectedDevice.mDeviceHandle)));
- }
-
- void CConnectionHandler::onApplicationDisconnected(const NsSmartDeviceLink::NsTransportManager::SDeviceInfo & DisconnectedDevice,
- const NsSmartDeviceLink::NsTransportManager::tConnectionHandle Connection)
- {
- LOG4CPLUS_INFO( mLogger, "CConnectionHandler::onApplicationDisconnected()" );
- tDeviceListIterator it = mDeviceList.find(DisconnectedDevice.mDeviceHandle);
- if (mDeviceList.end() == it)
- {
- LOG4CPLUS_ERROR( mLogger, "Unknown device!");
- return;
- }
- LOG4CPLUS_INFO( mLogger, "Delete Connection:" << (int)Connection << "from the list." );
- tConnectionListIterator itr = mConnectionList.find(Connection);
- if (mConnectionList.end() == itr)
- {
- LOG4CPLUS_ERROR( mLogger, "Connection not found!");
- return;
- }
- else
- {
- if (0 != mpConnectionHandlerObserver)
- {
- int firstSessionID = (itr->second).getFirstSessionID();
- if (0 < firstSessionID)
- {
- firstSessionID = keyFromPair(Connection, firstSessionID);
- // In case bot parameters of onSessionEndedCallback are the same AppMgr knows
- // that Application with id=firstSessionID should be closed.
- mpConnectionHandlerObserver->onSessionEndedCallback(firstSessionID, firstSessionID);
- }
- }
- mConnectionList.erase(itr);
- }
-
- if (mConnectionList.empty())
- {
- mDeviceList.erase( it );
- }
- }
-
- int CConnectionHandler::onSessionStartedCallback(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle)
- {
- LOG4CPLUS_INFO( mLogger, "CConnectionHandler::onSessionStartedCallback()" );
- int newSessionID = -1;
- tConnectionListIterator it = mConnectionList.find(connectionHandle);
- if (mConnectionList.end() == it)
- {
- LOG4CPLUS_ERROR( mLogger, "Unknown connection!");
- } else
- {
- newSessionID = (it->second).addNewSession();
- int firstSessionID = (it->second).getFirstSessionID();
- if (0 > newSessionID)
- {
- LOG4CPLUS_ERROR( mLogger, "Not possible to start session!");
- } else
- {
- LOG4CPLUS_INFO( mLogger, "New session ID:" << (int)newSessionID );
- if (0 != mpConnectionHandlerObserver)
- {
- if (0 < firstSessionID)
- {
- firstSessionID = keyFromPair(connectionHandle, firstSessionID);
- }
- int sessionKey = keyFromPair(connectionHandle, newSessionID);
- mpConnectionHandlerObserver->onSessionStartedCallback((it->second).getConnectionDeviceHandle()
- , sessionKey, firstSessionID);
- }
- }
- }
- return newSessionID;
- }
-
- int CConnectionHandler::onSessionEndedCallback(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned char sessionId,
- unsigned int hashCode)
- {
- LOG4CPLUS_INFO( mLogger, "CConnectionHandler::onSessionEndedCallback()" );
- int result = -1;
- tConnectionListIterator it = mConnectionList.find(connectionHandle);
- if (mConnectionList.end() == it)
- {
- LOG4CPLUS_ERROR( mLogger, "Unknown connection!");
- } else
- {
- int firstSessionID = (it->second).getFirstSessionID();
- result = (it->second).removeSession(sessionId);
- if (0 > result)
- {
- LOG4CPLUS_ERROR( mLogger, "Not possible to remove session!");
- } else
- {
- LOG4CPLUS_INFO( mLogger, "Session removed:" << (int)result );
- if (0 != mpConnectionHandlerObserver)
- {
- if (0 < firstSessionID)
- {
- firstSessionID = keyFromPair(connectionHandle, firstSessionID);
- }
- int sessionKey = keyFromPair(connectionHandle, sessionId);
- mpConnectionHandlerObserver->onSessionEndedCallback(sessionKey, firstSessionID);
- result = sessionKey;
- }
- }
- }
- return result;
- }
-
- int CConnectionHandler::keyFromPair(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned char sessionId)
- {
- int key = connectionHandle|(sessionId << 16);
- LOG4CPLUS_INFO( mLogger, "Key for ConnectionHandle:" << (int)connectionHandle << " Session:" << (int)sessionId << " is: " << (int)key );
- return key;
- }
-
- void CConnectionHandler::pairFromKey(int key, NsSmartDeviceLink::NsTransportManager::tConnectionHandle & connectionHandle,
- unsigned char & sessionId)
- {
- connectionHandle = key & 0xFF00FFFF;
- sessionId = key >> 16;
- LOG4CPLUS_INFO( mLogger, "ConnectionHandle:" << (int)connectionHandle << " Session:" << (int)sessionId << " for key:" << (int)key );
- }
-
- void CConnectionHandler::setTransportManager( NsSmartDeviceLink::NsTransportManager::ITransportManager * transportManager )
- {
- LOG4CPLUS_INFO( mLogger, "CConnectionHandler::setTransportManager()" );
- if ( !transportManager )
- {
- LOG4CPLUS_ERROR(mLogger, "Null pointer to TransportManager.");
- return;
- }
- mpTransportManager = transportManager;
- }
- void CConnectionHandler::startDevicesDiscovery()
- {
- LOG4CPLUS_INFO( mLogger, "CConnectionHandler::startDevicesDiscovery()" );
- if (NULL == mpTransportManager)
- {
- LOG4CPLUS_ERROR(mLogger, "Null pointer to TransportManager.");
- return;
- }
- mpTransportManager->scanForNewDevices();
- }
-
- void CConnectionHandler::connectToDevice( NsConnectionHandler::tDeviceHandle deviceHandle )
- {
- NsConnectionHandler::tDeviceList::const_iterator it_in;
- it_in = mDeviceList.find( deviceHandle );
- if ( mDeviceList.end() != it_in )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Connecting to device with handle " << (int)deviceHandle );
- if ( mpTransportManager )
- {
- mpTransportManager -> connectDevice( deviceHandle );
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Application Manager wanted to connect to non-existing device");
- }
- }
-
- void CConnectionHandler::startTransportManager()
- {
- LOG4CPLUS_INFO(mLogger, "CConnectionHandler::startTransportManager()");
- if (NULL == mpTransportManager)
- {
- LOG4CPLUS_ERROR(mLogger, "Null pointer to TransportManager.");
- return;
- }
-
- mpTransportManager->run();
- }
-
-}/* namespace NsConnectionHandler */
diff --git a/SDL_Core/src/components/ConnectionHandler/src/CDevice.cpp b/SDL_Core/src/components/ConnectionHandler/src/CDevice.cpp
deleted file mode 100644
index 044e59cb0..000000000
--- a/SDL_Core/src/components/ConnectionHandler/src/CDevice.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * \file CDevice.cpp
- * \brief CDevice class implementation.
- *
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "Logger.hpp"
-
-#include "ConnectionHandler/CDevice.hpp"
-
-/**
- * \namespace NsConnectionHandler
- * \brief SmartDeviceLink ConnectionHandler namespace.
- */
-namespace NsConnectionHandler
-{
-
- log4cplus::Logger CDevice::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("ConnectionHandler"));
-
- CDevice::CDevice(tDeviceHandle aDeviceHandle, std::string aUserFriendlyName):
- mDeviceHandle(aDeviceHandle),
- mUserFriendlyName(aUserFriendlyName)
- {
-
- }
-
- CDevice::~CDevice()
- {
-
- }
-
- tDeviceHandle CDevice::getDeviceHandle() const
- {
- return mDeviceHandle;
- }
-
- std::string CDevice::getUserFriendlyName() const
- {
- return mUserFriendlyName;
- }
-}/* namespace NsConnectionHandler */
diff --git a/SDL_Core/src/components/HMI/app/AppViews.js b/SDL_Core/src/components/HMI/app/AppViews.js
index 01aff20e0..30b2ddc42 100755..100644
--- a/SDL_Core/src/components/HMI/app/AppViews.js
+++ b/SDL_Core/src/components/HMI/app/AppViews.js
@@ -1,83 +1,85 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL
- * @desc Setup application container for all views
- * @category Application
- * @filesource app/AppViews.js
- * @version 1.0
- */
-
-/** Appending views */
-SDL.AppViews = Em.ContainerView.extend( {
-
- elementId: 'app',
-
- childViews:
- [
- SDL.HomeView,
- SDL.MediaView,
- SDL.InfoView,
- SDL.PhoneView,
- SDL.NavigationView,
- SDL.ClimateView,
- SDL.SettingsView,
- SDL.TurnByTurnView,
- SDL.TBTTurnList,
- SDL.OptionsView,
- SDL.InteractionChoicesView,
- SDL.ScrollableMessage,
- SDL.SliderView,
- SDL.StatusClimateView,
- SDL.StatusMediaView,
- SDL.StatusNavigationView,
- SDL.StatusInfoView,
- SDL.StatusPhoneView,
- SDL.TopControls,
- SDL.BottomControls,
- SDL.TTSPopUp,
- SDL.AlertPopUp,
- SDL.AlertManeuverPopUp,
- SDL.AudioPassThruPopUp,
- SDL.VRPopUp,
- SDL.VehicleInfo,
- SDL.TBTClientStateView,
- SDL.DriverDistraction,
- SDL.ControlButtons
- ],
-
- /*
- * This method is called when the app is fully rendered and ready to be
- * displayed. We notify the backend to hide the splash and load internal
- * view modules
- */
- didInsertElement: function() {
- this._super();
-
- SDL.set( 'appReady', true );
- }
-} );
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL
+ * @desc Setup application container for all views
+ * @category Application
+ * @filesource app/AppViews.js
+ * @version 1.0
+ */
+
+/** Appending views */
+SDL.AppViews = Em.ContainerView.extend( {
+
+ elementId: 'app',
+
+ childViews: [
+ SDL.HomeView,
+ SDL.MediaView,
+ SDL.NavigationAppView,
+ SDL.InfoView,
+ SDL.PhoneView,
+ SDL.ClimateView,
+ SDL.NavigationView,
+ SDL.SettingsView,
+ SDL.TurnByTurnView,
+ SDL.TBTTurnList,
+ SDL.OptionsView,
+ SDL.InteractionChoicesView,
+ SDL.Keyboard,
+ SDL.VRHelpListView,
+ SDL.ScrollableMessage,
+ SDL.SliderView,
+ SDL.StatusClimateView,
+ SDL.StatusMediaView,
+ SDL.StatusNavigationView,
+ SDL.StatusInfoView,
+ SDL.StatusPhoneView,
+ SDL.TopControls,
+ SDL.BottomControls,
+ SDL.TTSPopUp,
+ SDL.AlertPopUp,
+ SDL.AudioPassThruPopUp,
+ SDL.VRPopUp,
+ SDL.VehicleInfo,
+ SDL.TBTClientStateView,
+ SDL.DriverDistraction,
+ SDL.ExitApp,
+ SDL.ControlButtons
+ ],
+
+ /*
+ * This method is called when the app is fully rendered and ready to be
+ * displayed. We notify the backend to hide the splash and load internal
+ * view modules
+ */
+ didInsertElement: function() {
+
+ this._super();
+
+ SDL.set('appReady', true);
+ }
+});
diff --git a/SDL_Core/src/components/HMI/app/Flags.js b/SDL_Core/src/components/HMI/app/Flags.js
index 85c0712cb..a3f15d034 100755..100644
--- a/SDL_Core/src/components/HMI/app/Flags.js
+++ b/SDL_Core/src/components/HMI/app/Flags.js
@@ -1,45 +1,48 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL
- * @desc flags for application flags used for diffeerent configurations of
- * application As the same code base is used fro Production and RnD work
- * pakackages, it is necessary to configare application for different
- * needs/releases It is NOT recommended to extend this object with new
- * flags. Each modification should be discussed with PM in advance
- * @category Application
- * @filesource app/AppFlags.js
- * @version 1.0
- */
-
-FLAGS = Em.Object.create( {
- /**
- * Set language for localization
- */
- SET_LOCALIZATION: 'eng'
-
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL
+ * @desc flags for application flags used for diffeerent configurations of
+ * application As the same code base is used fro Production and RnD work
+ * pakackages, it is necessary to configare application for different
+ * needs/releases It is NOT recommended to extend this object with new
+ * flags. Each modification should be discussed with PM in advance
+ * @category Application
+ * @filesource app/AppFlags.js
+ * @version 1.0
+ */
+
+FLAGS = Em.Object.create( {
+ /**
+ * Set language for localization
+ */
+ SET_LOCALIZATION: 'eng',
+
+ WEBSOCKET_URL: "ws://127.0.0.1:8087",
+
+ TOUCH_EVENT_STARTED: false
+
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/SDLApp.js b/SDL_Core/src/components/HMI/app/SDLApp.js
index 2a481cc26..bbe464400 100755..100644
--- a/SDL_Core/src/components/HMI/app/SDLApp.js
+++ b/SDL_Core/src/components/HMI/app/SDLApp.js
@@ -1,86 +1,80 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL
- * @desc Setup application namespace and settings
- * @category Application
- * @filesource app/App.js
- * @version 1.0
- */
-
-SDL = Em.Application.create( {
-
- /** Override for mouse/touch events */
- customEvents: ( 'ontouchstart' in document.documentElement ) ? {
- touchstart: 'actionDown',
- touchend: 'actionUp',
- touchmove: 'actionMove'
- } : {
- mousedown: 'actionDown',
- mouseup: 'actionUp',
- mousemove: 'actionMove'
- },
-
- /** Help mode flag {boolean} */
- helpMode: false,
-
- // determine home view {string}
- homeView: 'home',
-
- /** Set language for localization */
- localization: 'eng',
-
- // Application ready flag
- appReady: false,
-
- // Debug text
- debugText: 'debug&nbsp;mode',
-
- init: function() {
- Em.Logger.log( 'SDL: Application init!' );
-
- FFW.Buttons.connect();
- FFW.TTS.connect();
- FFW.VR.connect();
- FFW.BasicCommunication.connect();
- FFW.UI.connect();
- FFW.VehicleInfo.connect();
-
- this._super();
- },
-
- /** Application ready event */
- ready: function() {
- Em.Logger.log( 'SDL: Application ready!' );
-
- /** State manager init */
- SDL.States = StateManager.create();
-
- /** container for all views */
- SDL.views = SDL.AppViews.create().appendTo( 'body' );
- }
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL
+ * @desc Setup application namespace and settings
+ * @category Application
+ * @filesource app/App.js
+ * @version 1.0
+ */
+
+SDL = Em.Application.create( {
+
+ /** Override for mouse/touch events */
+ customEvents: ('ontouchstart' in document.documentElement) ? {
+ touchstart: 'actionDown',
+ touchend: 'actionUp',
+ touchmove: 'actionMove'
+ } : {
+ mousedown: 'actionDown',
+ mouseup: 'actionUp',
+ mousemove: 'actionMove'
+ },
+
+ /** Help mode flag {boolean} */
+ helpMode: false,
+
+ // determine home view {string}
+ homeView: 'home',
+
+ /** Set language for localization */
+ localization: 'eng',
+
+ // Application ready flag
+ appReady: false,
+
+ // Debug text
+ debugText: 'debug&nbsp;mode',
+
+ init: function() {
+
+ Em.Logger.log('SDL: Application init!');
+
+ this._super();
+ },
+
+ /** Application ready event */
+ ready: function() {
+
+ Em.Logger.log('SDL: Application ready!');
+
+ /** State manager init */
+ SDL.States = StateManager.create();
+
+ /** container for all views */
+ SDL.views = SDL.AppViews.create().appendTo('body');
+ }
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/StateManager.js b/SDL_Core/src/components/HMI/app/StateManager.js
index 346028372..000ab8dc3 100755..100644
--- a/SDL_Core/src/components/HMI/app/StateManager.js
+++ b/SDL_Core/src/components/HMI/app/StateManager.js
@@ -1,195 +1,222 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.States
- * @desc State manager definition
- * @category State Manager
- * @filesource app/StateManager.js
- * @version 1.0
- */
-
-// Extend base Em.State object
-Em.State.reopen( {
-
- // used for determine display status
- active: false,
-
- enter: function() {
- this.set( 'active', true );
- },
-
- exit: function() {
- this.set( 'active', false );
- }
-} );
-
-// State Manager class
-var StateManager = Em.StateManager.extend( {
-
- // default state
- initialState: 'home',
-
- /**
- * Name of the next state to which at the moment is a transition
- */
- nextState: 'home',
-
- /**
- * Method used for determine previous currentState and
- * make
- */
- goToStates: function( stateName ){
- this.set( 'nextState', stateName );
- this.transitionTo( stateName );
- },
-
- /** Go to parent state */
- back: function() {
- if( this.currentState.parentState.hasOwnProperty( 'name' ) ){
- this.goToStates( this.currentState.parentState.get( 'path' ) );
- }else{
- this.goToStates( 'home' );
- }
-
- SDL.StateVisitor.visit( this.currentState );
- },
-
- /** Home state */
- home: Em.State.create( {
-
- } ),
-
- /** Climate state */
- climate: Em.State.create( {
-
- } ),
-
- /** info state */
- info: Em.State.create( {
-
- exit: function() {
- SDL.InfoController.set( 'activeState', SDL.States.currentState.get( 'path' ) );
- this._super();
- },
-
- services: Em.State.create( {
-
- } ),
-
- travelLink: Em.State.create( {
-
- } ),
-
- alerts: Em.State.create( {
-
- } ),
-
- calendar: Em.State.create( {
-
- } ),
-
- apps: Em.State.create( {
-
- /**
- * Calls function from BasicCommunicationRPC to get new list of applications
- */
- enter: function() {
- this._super();
- FFW.BasicCommunication.getAppList();
- }
- } ),
-
- devicelist: Em.State.create( {
- /**
- * Calls function to clear device list on DeviceListView
- */
- enter: function() {
- this._super();
- SDL.DeviceListView.clearDeviceList();
- }
- } ),
-
- nonMedia: Em.State.create( {
- enter: function() {
- this._super();
-
- SDL.NonMediaController.restoreCurrentApp();
- },
-
- exit: function(){
- this._super();
-
- SDL.SDLAppController.deactivateApp();
- }
- } )
- } ),
-
- /** settings state */
- settings: Em.State.create( {
-
- } ),
-
- /** Media state */
- media: Em.State.create( {
-
- exit: function() {
- SDL.MediaController.set( 'activeState', SDL.States.currentState.get( 'path' ) );
- this._super();
- },
-
- player: Em.State.create( {} ),
-
- sdlmedia: Em.State.create( {
-
- enter: function() {
- this._super();
-
- SDL.SDLMediaController.restoreCurrentApp();
- },
-
- exit: function(){
- this._super();
-
- SDL.SDLAppController.deactivateApp();
- }
-
- } )
- } ),
-
- /** Navigation state */
- navigation: Em.State.create( {
-
- } ),
-
- /** Phone state */
- phone: Em.State.create( {
-
- dialpad: Em.State.create( {
-
- } )
- } )
-} );
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.States
+ * @desc State manager definition
+ * @category State Manager
+ * @filesource app/StateManager.js
+ * @version 1.0
+ */
+
+ // Extend base Em.State object
+Em.State.reopen({
+
+ // used for determine display status
+ active: false,
+
+ enter: function () {
+
+ this.set('active', true);
+ },
+
+ exit: function () {
+
+ this.set('active', false);
+ SDL.SDLController.triggerState();
+ }
+});
+
+// State Manager class
+var StateManager = Em.StateManager.extend({
+
+ // default state
+ initialState: 'home',
+
+ /**
+ * Name of the next state to which at the moment is a transition
+ */
+ nextState: 'home',
+
+ /**
+ * Method used for determine previous currentState and make
+ */
+ goToStates: function (stateName) {
+
+ SDL.SDLController.userStateAction();
+ this.set('nextState', stateName);
+ this.transitionTo(stateName);
+ },
+
+ /** Go to parent state */
+ back: function () {
+
+ if (this.currentState.parentState.hasOwnProperty('name')) {
+ this.goToStates(this.currentState.parentState.get('path'));
+ } else {
+ this.goToStates('home');
+ }
+
+ SDL.StateVisitor.visit(this.currentState);
+ },
+
+ /** Home state */
+ home: Em.State.create({
+
+ }),
+
+ /** Climate state */
+ climate: Em.State.create({
+
+ }),
+
+ /** info state */
+ info: Em.State.create({
+
+ exit: function () {
+
+ SDL.InfoController.set('activeState', SDL.States.currentState.get('path'));
+ this._super();
+ },
+
+ services: Em.State.create({
+
+ }),
+
+ travelLink: Em.State.create({
+
+ }),
+
+ alerts: Em.State.create({
+
+ }),
+
+ calendar: Em.State.create({
+
+ }),
+
+ apps: Em.State.create({
+
+ /**
+ * Calls function from BasicCommunicationRPC to get new list of
+ * applications
+ */
+ enter: function () {
+
+ this._super();
+ FFW.BasicCommunication.OnFindApplications();
+ }
+ }),
+
+ devicelist: Em.State.create({
+ /**
+ * Calls function to clear device list on DeviceListView
+ */
+ enter: function () {
+
+ this._super();
+ SDL.DeviceListView.clearDeviceList();
+ FFW.BasicCommunication.OnStartDeviceDiscovery();
+ }
+ }),
+
+ nonMedia: Em.State.create({
+
+ enter: function () {
+
+ this._super();
+ SDL.SDLController.activateTBT();
+ },
+
+ exit: function () {
+
+ this._super();
+
+ SDL.SDLAppController.deactivateApp();
+ }
+ })
+ }),
+
+ /** settings state */
+ settings: Em.State.create({
+
+ }),
+
+ /** Media state */
+ media: Em.State.create({
+
+ exit: function () {
+
+ SDL.MediaController.set('activeState', SDL.States.currentState.get('path'));
+ this._super();
+ },
+
+ player: Em.State.create({}),
+
+ sdlmedia: Em.State.create({
+
+ enter: function () {
+
+ this._super();
+ SDL.SDLController.activateTBT();
+ },
+
+ exit: function () {
+
+ this._super();
+
+ SDL.SDLAppController.deactivateApp();
+ }
+
+ })
+ }),
+
+ navigationApp: Em.State.create({
+
+ baseNavigation: Em.State.create({
+
+ }),
+
+ exit: function () {
+
+ this._super();
+
+ SDL.SDLAppController.deactivateApp();
+ }
+ }),
+
+ /** Navigation state */
+ navigation: Em.State.create({
+
+ }),
+
+ /** Phone state */
+ phone: Em.State.create({
+
+ dialpad: Em.State.create({
+
+ })
+ })
+});
diff --git a/SDL_Core/src/components/HMI/app/controller/AppController.js b/SDL_Core/src/components/HMI/app/controller/AppController.js
index 7a7a85f6a..c65546339 100755..100644
--- a/SDL_Core/src/components/HMI/app/controller/AppController.js
+++ b/SDL_Core/src/components/HMI/app/controller/AppController.js
@@ -1,37 +1,36 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.AppController
- * @desc App general logic
- * @category Controller
- * @filesource app/controller/AppController.js
- * @version 1.0
- */
-
-SDL.AppController = Em.Object.create( {
- active: false
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.AppController
+ * @desc App general logic
+ * @category Controller
+ * @filesource app/controller/AppController.js
+ * @version 1.0
+ */
+
+SDL.AppController = Em.Object.create( {
+ active: false
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controller/InfoController.js b/SDL_Core/src/components/HMI/app/controller/InfoController.js
index 69796327a..e31f4ed28 100755..100644
--- a/SDL_Core/src/components/HMI/app/controller/InfoController.js
+++ b/SDL_Core/src/components/HMI/app/controller/InfoController.js
@@ -1,49 +1,79 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.InfoController
- * @desc Info Controller logic
- * @category Controller
- * @filesource app/controller/InfoController.js
- * @version 1.0
- */
-
-SDL.InfoController = Em.Object.create( {
-
- activeState: 'info.apps',
-
- hiddenLeftMenu: false,
-
- onState: function( event ) {
- SDL.States.goToStates( 'info.' + event.goToState );
- },
-
- onChildState: function( event ) {
-
- SDL.States.goToStates( SDL.States.currentState.get( 'path' ) + '.' + event.goToState );
- }
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.InfoController
+ * @desc Info Controller logic
+ * @category Controller
+ * @filesource app/controller/InfoController.js
+ * @version 1.0
+ */
+
+SDL.InfoController = Em.Object.create( {
+
+ activeState: 'info.apps',
+
+ hiddenLeftMenu: false,
+
+ onState: function(event) {
+
+ SDL.States.goToStates('info.' + event.goToState);
+ },
+
+ onChildState: function(event) {
+
+ SDL.States.goToStates(SDL.States.currentState.get('path') + '.'
+ + event.goToState);
+ },
+
+ /**
+ * Switching on Application
+ */
+ turnOnSDL: function () {
+
+ //SDL.CDModel.set('active', false);
+ /**
+ * Set SDL Data active, flag for status bar
+ */
+ if (SDL.SDLAppController.model) {
+ SDL.SDLAppController.model.set('active', true);
+ }
+ /**
+ * Go to SDL state
+ */
+ if (SDL.SDLAppController.model.appType) {
+ for (var i = 0; i < SDL.SDLAppController.model.appType.length; i++) {
+ if (SDL.SDLAppController.model.appType[i] == "NAVIGATION") {
+ SDL.States.goToStates('navigationApp.baseNavigation');
+ return;
+ }
+ }
+ }
+
+ SDL.States.goToStates('info.nonMedia');
+ //SDL.States.goToStates('media.sdlmedia');
+
+ }
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controller/MediaController.js b/SDL_Core/src/components/HMI/app/controller/MediaController.js
index a7e2d2cbd..f354cb84f 100755..100644
--- a/SDL_Core/src/components/HMI/app/controller/MediaController.js
+++ b/SDL_Core/src/components/HMI/app/controller/MediaController.js
@@ -1,74 +1,82 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.MediaController
- * @desc Media module logic
- * @category Controller
- * @filesource app/controller/MediaController.js
- * @version 1.0
- */
-SDL.MediaController = Em.Object.create( {
-
- /**
- * Initial substate
- */
- activeState: 'media.player',
-
- /**
- * Turn on CD
- */
- turnOnCD: function() {
-
- if( !SDL.States.media.player.active ){
- SDL.States.goToStates( 'media.player' );
- }
-
- if( SDL.SDLAppController.model ){
- SDL.SDLAppController.model.set( 'active', false );
- }
- SDL.CDModel.set( 'active', true );
- },
-
- /**
- * Switching on Application
- */
- turnOnSDL: function() {
-
- SDL.CDModel.set( 'active', false );
- /**
- * Set SDL Data active, flag for status bar
- */
- if( SDL.SDLAppController.model ){
- SDL.SDLAppController.model.set( 'active', true );
- }
- /**
- * Go to SDL state
- */
- SDL.States.goToStates( 'media.sdlmedia' );
-
- }
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.MediaController
+ * @desc Media module logic
+ * @category Controller
+ * @filesource app/controller/MediaController.js
+ * @version 1.0
+ */
+SDL.MediaController = Em.Object.create({
+
+ /**
+ * Initial substate
+ */
+ activeState: 'media.player',
+
+ /**
+ * Turn on CD
+ */
+ turnOnCD: function () {
+
+ if (!SDL.States.media.player.active) {
+ SDL.States.goToStates('media.player');
+ }
+
+ if (SDL.SDLAppController.model) {
+ SDL.SDLAppController.model.set('active', false);
+ }
+ SDL.CDModel.set('active', true);
+ },
+
+ /**
+ * Switching on Application
+ */
+ turnOnSDL: function () {
+
+ SDL.CDModel.set('active', false);
+ /**
+ * Set SDL Data active, flag for status bar
+ */
+ if (SDL.SDLAppController.model) {
+ SDL.SDLAppController.model.set('active', true);
+ }
+ /**
+ * Go to SDL state
+ */
+ if (SDL.SDLAppController.model.appType) {
+ for (var i = 0; i < SDL.SDLAppController.model.appType.length; i++) {
+ if (SDL.SDLAppController.model.appType[i] == "NAVIGATION") {
+ SDL.States.goToStates('navigationApp.baseNavigation');
+ return;
+ }
+ }
+ }
+
+ SDL.States.goToStates('media.sdlmedia');
+
+ }
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controller/PhoneController.js b/SDL_Core/src/components/HMI/app/controller/PhoneController.js
index f5f68cc93..dd722df80 100755..100644
--- a/SDL_Core/src/components/HMI/app/controller/PhoneController.js
+++ b/SDL_Core/src/components/HMI/app/controller/PhoneController.js
@@ -1,54 +1,56 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.PhoneController
- * @desc Phone module logic
- * @category Controller
- * @filesource app/controller/PhoneController.js
- * @version 1.0
- */
-
-SDL.PhoneController = Em.Object.create( {
-
- /** Model binding */
- modelBinding: "SDL.PhoneModel",
-
- /** Dialpad delete key press handeler */
- onDelete: function() {
- this.model.deleteDialpadNumber();
- },
-
- /** Dial call handeler */
- onEndCall: function() {
- this.model.endCall();
- },
-
- /** Dial call handeler */
- onDialCall: function() {
- this.model.dialCall();
- }
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.PhoneController
+ * @desc Phone module logic
+ * @category Controller
+ * @filesource app/controller/PhoneController.js
+ * @version 1.0
+ */
+
+SDL.PhoneController = Em.Object.create( {
+
+ /** Model binding */
+ modelBinding: "SDL.PhoneModel",
+
+ /** Dialpad delete key press handeler */
+ onDelete: function() {
+
+ this.model.deleteDialpadNumber();
+ },
+
+ /** Dial call handeler */
+ onEndCall: function() {
+
+ this.model.endCall();
+ },
+
+ /** Dial call handeler */
+ onDialCall: function() {
+
+ this.model.dialCall();
+ }
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controller/sdl/AppController.js b/SDL_Core/src/components/HMI/app/controller/sdl/AppController.js
index 71781b2a7..e12af142e 100644
--- a/SDL_Core/src/components/HMI/app/controller/sdl/AppController.js
+++ b/SDL_Core/src/components/HMI/app/controller/sdl/AppController.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -32,7 +31,15 @@
* @version 1.0
*/
-SDL.SDLAppController = Em.Object.create( {
+SDL.SDLAppController = Em.Object.create({
+
+ init: function () {
+
+ this._super();
+
+ //FFW.UI.set('isReady', true);
+ //FFW.Navigation.set('isReady', true);
+ },
/**
* Active application model binding type {SDLAppModel}
@@ -41,62 +48,94 @@ SDL.SDLAppController = Em.Object.create( {
/**
* Handeler for command button press
- *
- * @param element: SDL.Button
+ *
+ * @param element:
+ * SDL.Button
*/
- onCommand: function( element ) {
+ onCommand: function (element) {
// if submenu
- if( element.menuId ){
+ if (element.menuID >= 0) {
// activate driver destruction if necessary
- if( SDL.SDLModel.driverDistractionState ){
+ if (SDL.SDLModel.driverDistractionState) {
SDL.DriverDistraction.activate();
- }else{
- this.onSubMenu( element.menuId );
+ } else {
+ this.onSubMenu(element.menuID);
}
return;
}
- FFW.UI.onCommand( element.commandId, this.model.appId );
+ FFW.UI.onCommand(element.commandID, this.model.appID);
+ SDL.OptionsView.deactivate();
},
/**
* Open commands submenu
- *
+ *
* @param {Number}
*/
- onSubMenu: function( id ) {
- this.model.set( 'currentSubMenuId', id );
+ onSubMenu: function (id) {
+
+ this.model.set('currentSubMenuId', id);
+ },
+
+ /**
+ * Comparison function for sort array of buttons in options list by 'position' parameter
+ *
+ * @param {Number}
+ */
+ buttonsSort: function (arrayId, appID) {
+
+ SDL.SDLController.getApplicationModel(appID).commandsList[arrayId].sort(function (a, b) {
+ return a.position - b.position;
+ })
},
/**
* Handeler for command button press
- *
- * @param element: SDL.Button
+ *
+ * @param element:
+ * SDL.Button
*/
- onVRCommand: function( element ) {
- FFW.VR.onCommand( element.commandId, element.appId );
+ onVRCommand: function (element) {
+
+ FFW.VR.onCommand(element.commandID, element.appID);
+ },
+
+ /**
+ * Handler for preform interaction choice send response to device and
+ * deactivate interactions window
+ *
+ * @param element:
+ * SDL.Button
+ */
+ onChoiceInteraction: function (element) {
+
+ SDL.InteractionChoicesView.deactivate("SUCCESS", element.choiceID);
},
/**
- * Handeler for preform interaction choice send response to device and
+ * Handeler for Navigation preform interaction choice send response to device and
* deactivate interactions window
- *
- * @param element: SDL.Button
+ *
+ * @param {Object}
*/
- onChoiceInteraction: function( element ) {
+ onChoiceNaviInteraction: function(element) {
+
+ SDL.SDLModel.uiShowKeyboard();
- FFW.UI.interactionResponse( 'SUCCESS', element.performInteractionRequestId, element.choiceId );
+ FFW.UI.interactionResponse(SDL.SDLModel.resultCode["SUCCESS"], element.choiceID);
- SDL.InteractionChoicesView.deactivate( false );
+ SDL.InteractionChoicesView.deactivate("SUCCESS");
},
/**
* Open commands list
*/
- openCommandsList: function() {
+ openCommandsList: function () {
+
SDL.OptionsView.activate();
},
@@ -104,24 +143,28 @@ SDL.SDLAppController = Em.Object.create( {
* Notification of deactivation of current application model initiated in
* StateManager
*/
- deactivateApp: function() {
+ deactivateApp: function () {
- if( this.model ){
- SDL.SDLModel.onDeactivateApp( SDL.States.nextState, this.model.appId, this.model.appName );
+ if (this.model) {
+ SDL.SDLModel.onDeactivateApp(SDL.States.nextState, this.model.appID);
}
+ SDL.SDLAppController.onSubMenu('top');
+ SDL.SDLAppController.model.set('tbtActivate', false);
+ this.model = null;
},
/**
* Method clears all applications data and unregister models
*/
- onSDLDisconected: function() {
+ onSDLDisconected: function () {
+
var i = 0, apps = SDL.SDLModel.registeredApps;
- for( i = 0; i < apps.length; i++ ){
- SDL.SDLModel.onAppUnregistered( {
- "appId": apps[i].appId
- } );
+ for (i = 0; i < apps.length; i++) {
+ SDL.SDLModel.onAppUnregistered({
+ "appID": apps[i].appID
+ });
}
}
-} );
+});
diff --git a/SDL_Core/src/components/HMI/app/controller/sdl/Controller.js b/SDL_Core/src/components/HMI/app/controller/sdl/Controller.js
index fd30d99e6..570bdf435 100644
--- a/SDL_Core/src/components/HMI/app/controller/sdl/Controller.js
+++ b/SDL_Core/src/components/HMI/app/controller/sdl/Controller.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -31,437 +30,718 @@
* @filesource app/controller/sdl/SDLController.js
* @version 1.0
*/
+SDL.SDLController = Em.Object
+ .create( {
+ /**
+ * Current system context
+ *
+ * @type {String}
+ */
+ sysContext: function() {
+
+ if (SDL.VRPopUp.VRActive) {
+ return 'VRSESSION';
+ }
+ if (SDL.AlertPopUp.active) {
+ return 'ALERT';
+ }
+ if (SDL.TBTClientStateView.active
+ || SDL.VehicleInfo.active
+ || SDL.DriverDistraction.active
+ || SDL.ExitApp.active
+ || SDL.SliderView.active
+ || SDL.InteractionChoicesView.active
+ || SDL.ScrollableMessage.active
+ || SDL.AudioPassThruPopUp.activate
+ || SDL.VRHelpListView.active) {
+
+ return 'HMI_OBSCURED';
+ }
+ if (SDL.OptionsView.active) {
+ return 'MENU';
+ }
+ if (SDL.States.info.nonMedia.active
+ || SDL.States.media.sdlmedia.active) {
-SDL.SDLController = Em.Object.create( {
-
- /**
- * Current system context
- *
- * @type {String}
- */
- sysContext: function() {
-
- if( SDL.VRPopUp.VRActive ){
- return 'VRSESSION';
- }
-
- if( SDL.AlertPopUp.active ){
- return 'ALERT';
- }
-
- if( SDL.TBTClientStateView.active || SDL.VehicleInfo.active || SDL.DriverDistraction.active ){
- return 'HMI_OBSCURED';
- }
-
- if( SDL.OptionsView.active ){
- return 'MENU';
- }
-
- if( SDL.States.info.nonMedia.active || SDL.States.media.sdlmedia.active ){
- return 'MAIN';
- }else{
- return 'MENU';
- }
-
- }.property( 'SDL.DriverDistraction.active', 'SDL.OptionsView.active', 'SDL.VRPopUp.VRActive', 'SDL.AlertPopUp.active', 'SDL.TBTClientStateView.active',
- 'SDL.VehicleInfo.active', 'SDL.States.info.nonMedia.active', 'SDL.States.media.sdlmedia.active' ),
-
- /**
- * List of SDL application models
- *
- * @type object
- */
- applicationModels: {
- 0: SDL.SDLMediaModel,
- 1: SDL.SDLNonMediaModel
- },
-
- /**
- * Default action for SoftButtons: closes window, popUp or clears
- * applications screen
- *
- * @param {Object}
- */
- defaultActionSoftButton: function( element ) {
- switch( element.groupName ){
-
- case "AlertPopUp": {
- SDL.AlertPopUp.deactivate( true );
- break;
+ return 'MAIN';
+ } else {
+ return 'MENU';
}
- case "ScrollableMessage": {
- SDL.ScrollableMessage.deactivate();
- break;
+ }.property('SDL.DriverDistraction.active',
+ 'SDL.OptionsView.active',
+ 'SDL.VRPopUp.VRActive',
+ 'SDL.AlertPopUp.active',
+ 'SDL.TBTClientStateView.active',
+ 'SDL.VehicleInfo.active',
+ 'SDL.States.info.nonMedia.active',
+ 'SDL.States.media.sdlmedia.active',
+ 'SDL.ExitApp.active',
+ 'SDL.ScrollableMessage.active',
+ 'SDL.InteractionChoicesView.active',
+ 'SDL.VRHelpListView.active',
+ 'SDL.AudioPassThruPopUp.activate'),
+
+ /**
+ * List of SDL application models
+ *
+ * @type object
+ */
+ applicationModels: {
+ 0: SDL.SDLMediaModel,
+ 1: SDL.SDLNonMediaModel
+ },
+
+ /**
+ * Registered components handler
+ *
+ * @type object
+ */
+ activateTBT: function(){
+ if (SDL.SDLAppController.model.tbtActivate) {
+ SDL.TurnByTurnView.activate(SDL.SDLAppController.model.appID);
}
- case "TurnByTurnView": {
- SDL.TurnByTurnView.deactivate();
- break;
+ },
+
+ /**
+ * Registered components handler
+ *
+ * @type object
+ */
+ registeredComponentStatus: function(component) {
+
+ for ( var i = 0; i < SDL.SDLModel.registeredComponents.length; i++) {
+ if (SDL.SDLModel.registeredComponents[i].type == component) {
+ SDL.SDLModel.set('registeredComponents.' + i + '.state', true);
+ return;
+ }
}
- case "NonMediaView": {
- SDL.SDLController.getApplicationModel( element.appId ).clearAppOverLay();
- break;
+ },
+
+ /**
+ * Registered components handler
+ *
+ * @type object
+ */
+ unregisterComponentStatus: function(component) {
+
+ for ( var i = 0; i < SDL.SDLModel.registeredComponents.length; i++) {
+ if (SDL.SDLModel.registeredComponents[i].type == component) {
+ SDL.SDLModel.set('registeredComponents.' + i + '.state', false);
+ return;
+ }
}
- case "MediaView": {
- SDL.SDLController.getApplicationModel( element.appId ).clearAppOverLay();
- break;
+ },
+
+ /**
+ * Notification from state manager about triggered state
+ * Method aborts all popups and requests currently in process
+ *
+ * @type object
+ */
+ triggerState: function(){
+ if (SDL.SliderView.active) {
+ SDL.SliderView.deactivate(false);
}
-
- }
- },
-
- /**
- * Action to show Voice Recognition PopUp
- */
- activateVRPopUp: function() {
- SDL.VRPopUp.activateVRPopUp();
- },
-
- /**
- * Action for SoftButtons that closes popUp or window and opens applications
- * screen
- *
- * @param {Object}
- */
- stealFocusSoftButton: function( element ) {
- switch( element.groupName ){
-
- case "AlertPopUp": {
+ },
+
+ /**
+ * Notify SDLCore that HMI is ready and all components are registered
+ *
+ * @type {String}
+ */
+ componentsReadiness: function(component) {
+
+ for ( var i = 0; i < SDL.SDLModel.registeredComponents.length; i++) {
+ if (!SDL.SDLModel.registeredComponents[i].state) {
+ return;
+ }
+ }
+ FFW.BasicCommunication.onReady();
+ SDL.SDLModel.timeStamp = new Date().getTime();
+
+ console.log(SDL.SDLModel.timeStamp);
+
+ }.observes('SDL.SDLModel.registeredComponents.@each.state'),
+
+ /**
+ * Show VrHelpItems popup with necessary params
+ * if VRPopUp is active - show data from Global Properties
+ * if VRPopUp and InteractionChoicesView are active - show data from PerformInteraction request
+ *
+ */
+ showVRHelpItems: function() {
+
+ if (SDL.SDLAppController.model) {
+ if (SDL.SDLModel.VRActive && SDL.SDLModel.interactionData.vrHelp) {
+
+ SDL.SDLModel.ShowVrHelp(SDL.SDLModel.interactionData.vrHelpTitle, SDL.SDLModel.interactionData.vrHelp);
+ } else if (SDL.SDLModel.VRActive && !SDL.SDLModel.interactionData.vrHelp && SDL.SDLAppController.model.globalProperties.vrHelp) {
+
+ if (SDL.SDLAppController.model) {
+ SDL.SDLModel.ShowVrHelp(SDL.SDLAppController.model.globalProperties.vrHelpTitle, SDL.SDLAppController.model.globalProperties.vrHelp );
+ }
+ } else {
+ if (SDL.VRHelpListView.active) {
+ SDL.VRHelpListView.deactivate();
+ }
+ }
+ }
+ }.observes('SDL.SDLModel.VRActive', 'SDL.SDLModel.interactionData.vrHelp'),
+
+ /**
+ * Handler for Help button in VR menu
+ * triggers helpPrompt on HMI
+ *
+ */
+ vrHelpAction: function() {
+ if (SDL.SDLModel.interactionData.helpPrompt) {
+ SDL.SDLModel.onPrompt(SDL.SDLModel.interactionData.helpPrompt);
+ } else if (SDL.SDLAppController.model && SDL.SDLAppController.model.globalProperties.helpPrompt.length) {
+ SDL.SDLModel.onPrompt(SDL.SDLAppController.model.globalProperties.helpPrompt);
+ }
+ },
+
+ /**
+ * Notify SDLCore that TTS haas finished processing
+ *
+ * @type {String}
+ */
+ TTSResponseHandler: function() {
+
+ if (FFW.TTS.requestId) {
+ if (FFW.TTS.aborted) {
+ FFW.TTS.sendError(SDL.SDLModel.resultCode["ABORTED"], FFW.TTS.requestId, "TTS.Speak", "TTS Speak request aborted");
+ } else {
+ FFW.TTS.sendTTSResult(SDL.SDLModel.resultCode["SUCCESS"], FFW.TTS.requestId, "TTS.Speak");
+ }
+ FFW.TTS.requestId = null;
+ FFW.TTS.aborted = false;
+ }
+ },
+
+ /**
+ * Move VR list to right side when VRHelpList was activated
+ *
+ * @type {String}
+ */
+ VRMove: function() {
+
+ if (SDL.VRHelpListView.active || SDL.InteractionChoicesView.active) {
+ SDL.SDLModel.set('VRHelpListActivated', true);
+ } else {
+ SDL.SDLModel.set('VRHelpListActivated', false);
+ }
+ },
+
+ /**
+ * Activate navigationApp method to set navigationApp data to controlls on main screen
+ */
+ navigationAppUpdate: function() {
+ SDL.BaseNavigationView.update(SDL.SDLAppController.model.appID);
+ },
+
+ /**
+ * Default action for SoftButtons: closes window, popUp or clears
+ * applications screen
+ *
+ * @param {Object}
+ */
+ defaultActionSoftButton: function(element) {
+
+ switch (element.groupName) {
+ case "AlertPopUp": {
+ SDL.AlertPopUp.deactivate();
+ break;
+ }
+ case "ScrollableMessage": {
+ SDL.ScrollableMessage.deactivate(true);
+ break;
+ }
+ }
+ },
+
+ /**
+ * SDL notification call function
+ * to notify that SDL Core should reset timeout for some method
+ */
+ onResetTimeout: function (appID, methodName) {
+ FFW.UI.onResetTimeout(appID, methodName);
+ },
+ /**
+ * Action to show Voice Recognition PopUp
+ */
+ activateVRPopUp: function() {
+
+ SDL.SDLModel.toggleProperty('VRActive');
+ },
+ /**
+ * Action for SoftButtons that closes popUp or window and opens
+ * applications screen
+ *
+ * @param {Object}
+ */
+ stealFocusSoftButton: function(element) {
+
+ switch (element.groupName) {
+ case "AlertPopUp": {
+ SDL.AlertPopUp.deactivate();
+ this.onActivateSDLApp(element);
+ break;
+ }
+ case "ScrollableMessage": {
+ SDL.ScrollableMessage.deactivate();
+ this.onActivateSDLApp(element);
+ break;
+ }
+ }
+ },
+ /**
+ * Action for SoftButtons that clears popUps timer and it become visible
+ * all the time until user user closes it
+ *
+ * @param {Object}
+ */
+ keepContextSoftButton: function(element) {
+
+ switch (element.groupName) {
+ case "AlertPopUp": {
+ clearTimeout(SDL.AlertPopUp.timer);
+ SDL.AlertPopUp.timer = setTimeout(function() {
+ SDL.AlertPopUp.deactivate();
+ }, SDL.AlertPopUp.timeout);
+ this.onResetTimeout(element.appID, "UI.Alert");
+ break;
+ }
+ case "ScrollableMessage": {
+ clearTimeout(SDL.ScrollableMessage.timer);
+ SDL.ScrollableMessage.timer = setTimeout(function() {
+ SDL.ScrollableMessage.deactivate();
+ }, SDL.ScrollableMessage.timeout);
+ this.onResetTimeout(element.appID, "UI.ScrollableMessage");
+ break;
+ }
+ }
+ },
+ /**
+ * Action for ClosePopUp request that triggers deactivate function from
+ * opened popUp
+ */
+ closePopUp: function() {
+
+ if (SDL.AlertPopUp.active) {
SDL.AlertPopUp.deactivate();
- SDL.SDLController.getApplicationModel( element.appId ).turnOnSDL();
- break;
}
- case "ScrollableMessage": {
- SDL.ScrollableMessage.deactivate();
- SDL.SDLController.getApplicationModel( element.appId ).turnOnSDL();
- break;
+ if (SDL.AudioPassThruPopUp.active) {
+ SDL.AudioPassThruPopUp.deactivate();
+ this.performAudioPassThruResponse(SDL.SDLModel.resultCode["SUCCESS"]);
}
-
- }
- },
-
- /**
- * Action for SoftButtons that clears popUps timer and it become visible all
- * the time until user user closes it
- *
- * @param {Object}
- */
- keepContextSoftButton: function( element ) {
- switch( element.groupName ){
-
- case "AlertPopUp": {
- SDL.AlertPopUp.set( 'timer', 0 );
- break;
+ if (SDL.InteractionChoicesView.active) {
+ SDL.InteractionChoicesView.deactivate("ABORTED");
}
- case "ScrollableMessage": {
- SDL.ScrollableMessage.set( 'timer', 0 );
- break;
+ if (SDL.ScrollableMessage.active) {
+ SDL.ScrollableMessage.deactivate(true);
}
-
- }
- },
-
- /**
- * Method to close AlertMeneuverPopUp view
- */
- closeAlertMeneuverPopUp: function() {
- SDL.AlertManeuverPopUp.set( 'activate', false );
- },
-
- /**
- * Method to open Turn List view from TBT
- *
- * @param {Number} appId AppId of activated sdl application
- */
- tbtTurnList: function( appId ) {
- SDL.TBTTurnList.activate( appId );
- },
-
- /**
- * Method to sent notification with selected state of TBT Client State
- *
- * @param {String}
- */
- tbtClientStateSeleced: function( state ) {
- FFW.UI.onTBTClientState( state, SDL.SDLAppController.model.appId );
- },
-
- /**
- * Method to sent notification ABORTED for PerformInteractionChoise
- */
- interactionChoiseCloseResponse: function( result, performInteractionRequestId ) {
- FFW.UI.interactionResponse( result, performInteractionRequestId );
- },
-
- /**
- * Method to sent notification for Alert
- *
- * @param {String} result
- * @param {Number} alertRequestId
- */
- alertResponse: function( result, alertRequestId ) {
- FFW.UI.sendUIResult( result, alertRequestId, 'UI.Alert' );
- },
-
- /**
- * Method to sent notification for Scrollable Message
- *
- * @param {String} result
- * @param {Number} messageRequestId
- */
- scrollableMessageResponse: function( result, messageRequestId ) {
- FFW.UI.sendUIResult( result, messageRequestId, 'UI.ScrollableMessage' );
- },
-
- /**
- * Method to sent notification for Slider
- *
- * @param {String} result
- * @param {Number} sliderRequestId
- */
- sliderResponse: function( result, sliderRequestId ) {
- FFW.UI.sendUIResult( result, sliderRequestId, 'UI.Slider' );
- },
-
- /**
- * Method to call performAudioPassThruResponse with Result code parameters
- *
- * @param {Object} element Button object
- */
- callPerformAudioPassThruPopUpResponse: function( element ) {
- this.performAudioPassThruResponse( element.responseResult );
- },
-
- /**
- * Method close PerformAudioPassThruPopUp and call response from UIRPC back
- * to SDLCore
- *
- * @param {String} result Result code
- */
- performAudioPassThruResponse: function( result ) {
- SDL.SDLModel.set( 'AudioPassThruState', false );
- FFW.UI.sendUIResult( result, FFW.UI.performAudioPassThruRequestId, "UI.PerformAudioPassThru" );
- },
-
- /**
- * Method to set language for UI component with parameters sent from SDLCore
- * to UIRPC
- */
- onLanguageChangeUI: function() {
- FFW.UI.OnLanguageChange( SDL.SDLModel.hmiUILanguage );
- }.observes( 'SDL.SDLModel.hmiUILanguage' ),
-
- /**
- * Method to set language for TTS and VR components with parameters sent
- * from SDLCore to UIRPC
- */
- onLanguageChangeTTSVR: function() {
- FFW.TTS.OnLanguageChange( SDL.SDLModel.hmiTTSVRLanguage );
- FFW.VR.OnLanguageChange( SDL.SDLModel.hmiTTSVRLanguage );
- }.observes( 'SDL.SDLModel.hmiTTSVRLanguage' ),
-
- /**
- * Register application
- *
- * @param {Object} params
- * @param {Number} applicationType
- */
- registerApplication: function( params, applicationType ) {
-
- SDL.SDLModel.get( 'registeredApps' ).pushObject( SDL.SDLController.applicationModels[applicationType].create( {
- appId: params.appId,
- appName: params.appName,
- deviceName: params.deviceName
- } ) );
-
- },
-
- /**
- * Unregister application
- *
- * @param {Number} appId
- */
- unregisterApplication: function( appId ) {
-
- this.getApplicationModel( appId ).onDeleteApplication( appId );
-
- this.getApplicationModel( appId ).set( 'active', false );
-
- var index = SDL.SDLModel.registeredApps.indexOf( SDL.SDLModel.registeredApps.filterProperty( 'appId', appId )[0] );
-
- SDL.SDLModel.registeredApps.replace( index, 1 );
-
- this.set( 'model', null );
-
- },
-
- /**
- * SDL Driver Distraction ON/OFF switcher
- */
- selectDriverDistraction: function() {
- if( SDL.SDLModel.driverDistractionState ){
- FFW.UI.onDriverDistraction( "DD_ON" );
- }else{
- FFW.UI.onDriverDistraction( "DD_OFF" );
- }
- }.observes( 'SDL.SDLModel.driverDistractionState' ),
-
- /**
- * SDL Protocol Version 2 ON/OFF switcher
- */
- selectProtocolVersion: function() {
- if( SDL.SDLModel.protocolVersion2State ){
- FFW.BasicCommunication.OnVersionChanged( 2 );
- }else{
- FFW.BasicCommunication.OnVersionChanged( 1 );
- }
- }.observes( 'SDL.SDLModel.protocolVersion2State' ),
-
- /**
- * Get application model
- *
- * @param {Number}
- */
- getApplicationModel: function( applicationId ) {
- return SDL.SDLModel.registeredApps.filterProperty( 'appId', applicationId )[0];
- },
-
- /**
- * Function returns ChangeDeviceView back to previous state
- */
- turnChangeDeviceViewBack: function() {
- SDL.States.goToStates( 'info.apps' );
- },
-
- /**
- * Enter screen vith list of devices application model
- */
- onGetDeviceList: function() {
- SDL.States.goToStates( 'info.devicelist' );
- FFW.BasicCommunication.getDeviceList();
- },
-
- /**
- * Send notification if device was choosed
- *
- * @param element: SDL.Button
- */
- onDeviceChoosed: function( element ) {
- FFW.UI.OnDeviceChosen( element.deviceName );
- this.turnChangeDeviceViewBack();
- },
-
- /**
- * Method creates list of Application ID's Then call HMI method for display
- * a list of Applications
- *
- * @param {Object}
- */
- onGetAppList: function( appList ) {
- SDL.SDLModel.onGetAppList( appList );
- },
-
- /**
- * Method call's request to get list of applications
- */
- findNewApps: function() {
- FFW.BasicCommunication.getAppList();
- },
-
- /**
- * Method activates selected registered application
- *
- * @param {Object}
- */
- onActivateSDLApp: function( element ) {
- this.getApplicationModel( element.appId ).turnOnSDL();
- },
-
- /**
- * Method sent custom softButtons pressed and event status to RPC
- *
- * @param {Object}
- */
- onSoftButtonActionUpCustom: function( element ) {
- if( element.time > 0 ){
- FFW.Buttons.buttonEventCustom( "CUSTOM_BUTTON", "BUTTONUP", element.softButtonID );
- }else{
- FFW.Buttons.buttonEventCustom( "CUSTOM_BUTTON", "BUTTONUP", element.softButtonID );
- FFW.Buttons.buttonPressedCustom( "CUSTOM_BUTTON", "SHORT", element.softButtonID );
- }
- clearTimeout( element.timer );
- element.time = 0;
- },
-
- /**
- * Method sent custom softButtons pressed and event status to RPC
- *
- * @param {Object}
- */
- onSoftButtonActionDownCustom: function( element ) {
- FFW.Buttons.buttonEventCustom( "CUSTOM_BUTTON", "BUTTONDOWN", element.softButtonID );
- element.time = 0;
- element.timer = setTimeout( function() {
- FFW.Buttons.buttonPressedCustom( "CUSTOM_BUTTON", "LONG", element.softButtonID );
- element.time++;
- }, 2000 );
- },
-
- /**
- * Method sent softButtons pressed and event status to RPC
- *
- * @param {String}
- * @param {Object}
- */
- onSoftButtonActionUp: function( element ) {
- if( element.time > 0 ){
- FFW.Buttons.buttonEvent( element.presetName, "BUTTONUP" );
- }else{
- FFW.Buttons.buttonEvent( element.presetName, "BUTTONUP" );
- FFW.Buttons.buttonPressed( element.presetName, "SHORT" );
+ if (SDL.SliderView.active) {
+ SDL.SliderView.deactivate(true);
+ }
+ if (SDL.VRHelpListView.active) {
+ SDL.VRHelpListView.deactivate();
+ }
+ },
+
+ /**
+ * Method to close InteractionChoices view
+ */
+ InteractionChoicesDeactivate: function() {
+
+ SDL.InteractionChoicesView.deactivate("ABORTED");
+ },
+ /**
+ * Method to open Turn List view from TBT
+ *
+ * @param {Number}
+ * appID AppID of activated sdl application
+ */
+ tbtTurnList: function(appID) {
+
+ SDL.TBTTurnList.activate(appID);
+ },
+ /**
+ * Method to sent notification with selected state of TBT Client State
+ *
+ * @param {String}
+ */
+ tbtClientStateSelected: function(state) {
+
+ FFW.Navigation.onTBTClientState(state);
+ },
+ /**
+ * Method to sent notification with selected reason of Exit Application
+ *
+ * @param {String}
+ */
+ exitAppViewSelected: function(state) {
+
+ FFW.BasicCommunication.ExitAllApplications(state);
+ },
+ /**
+ * Method to sent notification ABORTED for PerformInteractionChoise
+ */
+ interactionChoiseCloseResponse: function(appID, result, choiceID, manualTextEntry) {
+
+ FFW.UI.interactionResponse(SDL.SDLController.getApplicationModel(appID).activeRequests.uiPerformInteraction, result, choiceID, manualTextEntry);
+ SDL.SDLModel.set('interactionData.vrHelpTitle', null);
+ SDL.SDLModel.set('interactionData.vrHelp', null);
+
+ SDL.SDLController.getApplicationModel(appID).activeRequests.uiPerformInteraction = null;
+ },
+ /**
+ * Method to sent notification for Alert
+ *
+ * @param {String}
+ * result
+ * @param {Number}
+ * alertRequestID
+ */
+ alertResponse: function(result, alertRequestID) {
+
+ FFW.UI.alertResponse(result, alertRequestID);
+ },
+ /**
+ * Method to sent notification for Scrollable Message
+ *
+ * @param {String}
+ * result
+ * @param {Number}
+ * messageRequestId
+ */
+ scrollableMessageResponse: function(result, messageRequestId) {
+
+ if (result == SDL.SDLModel.resultCode['SUCCESS']) {
+ FFW.UI.sendUIResult(result,
+ messageRequestId,
+ 'UI.ScrollableMessage');
+ } else {
+ FFW.UI.sendError(result,
+ messageRequestId,
+ 'UI.ScrollableMessage',
+ "ScrollableMessage aborted!");
+ }
+ },
+ /**
+ * Method to do necessary actions when user navigate throught the menu
+ */
+ userStateAction: function() {
+ if (SDL.ScrollableMessage.active) {
+ SDL.ScrollableMessage.deactivate(true);
+ }
+ },
+ /**
+ * Method to sent notification for Slider
+ *
+ * @param {String}
+ * result
+ * @param {Number}
+ * sliderRequestId
+ */
+ sliderResponse: function(result, sliderRequestId) {
+
+ FFW.UI.sendUIResult(result, sliderRequestId, 'UI.Slider');
+ },
+ /**
+ * Method to call performAudioPassThruResponse with Result code
+ * parameters
+ *
+ * @param {Object}
+ * element Button object
+ */
+ callPerformAudioPassThruPopUpResponse: function(element) {
+
+ this.performAudioPassThruResponse(element.responseResult);
+ },
+ /**
+ * Method close PerformAudioPassThruPopUp and call response from UI RPC
+ * back to SDLCore
+ *
+ * @param {String}
+ * result Result code
+ */
+ performAudioPassThruResponse: function(result) {
+
+ SDL.SDLModel.set('AudioPassThruState', false);
+ FFW.UI.sendUIResult(result,
+ FFW.UI.performAudioPassThruRequestID,
+ "UI.PerformAudioPassThru");
+ },
+ /**
+ * Method close PerformAudioPassThruPopUp and call error response from
+ * UI RPC back to SDLCore
+ *
+ * @param {String}
+ * result Result code
+ */
+ callPerformAudioPassThruPopUpErrorResponse: function(element) {
+
+ SDL.SDLModel.set('AudioPassThruState', false);
+ FFW.UI.sendError(element.responseResult,
+ FFW.UI.performAudioPassThruRequestID,
+ "UI.PerformAudioPassThru",
+ "PerformAudioPassThru was not completed successfuly!");
+ },
+ /**
+ * Method to set language for UI component with parameters sent from
+ * SDLCore to UIRPC
+ */
+ onLanguageChangeUI: function() {
+
+ FFW.UI.OnLanguageChange(SDL.SDLModel.hmiUILanguage);
+ }.observes('SDL.SDLModel.hmiUILanguage'),
+ /**
+ * Method to set language for TTS and VR components with parameters sent
+ * from SDLCore to UIRPC
+ */
+ onLanguageChangeTTSVR: function() {
+
+ FFW.TTS.OnLanguageChange(SDL.SDLModel.hmiTTSVRLanguage);
+ FFW.VR.OnLanguageChange(SDL.SDLModel.hmiTTSVRLanguage);
+ }.observes('SDL.SDLModel.hmiTTSVRLanguage'),
+ /**
+ * Register application
+ *
+ * @param {Object}
+ * params
+ * @param {Number}
+ * applicationType
+ */
+ registerApplication: function(params, applicationType) {
+
+ SDL.SDLModel.get('registeredApps')
+ .pushObject(this.applicationModels[applicationType].create( {
+ appID: params.appID,
+ appName: params.appName,
+ deviceName: params.deviceName,
+ appType: params.appType
+ }));
+ },
+ /**
+ * Unregister application
+ *
+ * @param {Number}
+ * appID
+ */
+ unregisterApplication: function(appID) {
+
+ //this.getApplicationModel(appID).set('unregistered', true);
+ this.getApplicationModel(appID).onDeleteApplication(appID);
+ SDL.VRPopUp.DeleteActivateApp(appID);
+ SDL.SDLAppController.set('model', null);
+ },
+ /**
+ * SDL Driver Distraction ON/OFF switcher
+ */
+ selectDriverDistraction: function() {
+
+ if (SDL.SDLModel.driverDistractionState) {
+ FFW.UI.onDriverDistraction("DD_ON");
+ } else {
+ FFW.UI.onDriverDistraction("DD_OFF");
+ }
+ }.observes('SDL.SDLModel.driverDistractionState'),
+
+ /**
+ * Ondisplay keyboard event handler
+ * Sends notification on SDL Core with changed value
+ */
+ onKeyboardChanges: function() {
+ if (null !== SDL.SDLModel.keyboardInputValue) {
+
+ var str = SDL.SDLModel.keyboardInputValue;
+
+ if (SDL.SDLAppController.model.globalProperties.keyboardProperties.keypressMode) {
+ switch (SDL.SDLAppController.model.globalProperties.keyboardProperties.keypressMode) {
+ case 'SINGLE_KEYPRESS':{
+ FFW.UI.OnKeyboardInput(str.charAt( str.length-1 ));
+ break;
+ }
+ case 'QUEUE_KEYPRESS':{
+ break;
+ }
+ case 'RESEND_CURRENT_ENTRY':{
+ FFW.UI.OnKeyboardInput(str);
+ break;
+ }
+ }
+ }
+ }
+ }.observes('SDL.SDLModel.keyboardInputValue'),
+
+ /**
+ * Get application model
+ *
+ * @param {Number}
+ */
+ getApplicationModel: function(applicationId) {
+
+ return SDL.SDLModel.registeredApps.filterProperty('appID',
+ applicationId)[0];
+ },
+ /**
+ * Function returns ChangeDeviceView back to previous state
+ */
+ turnChangeDeviceViewBack: function() {
+
+ SDL.States.goToStates('info.apps');
+ },
+ /**
+ * Enter screen vith list of devices application model
+ */
+ onGetDeviceList: function() {
+
+ SDL.States.goToStates('info.devicelist');
+ SDL.SDLModel.set('deviceSearchProgress', true);
+ },
+ /**
+ * Send notification if device was choosed
+ *
+ * @param element:
+ * SDL.Button
+ */
+ onDeviceChoosed: function(element) {
+
+ SDL.SDLModel.set('CurrDeviceInfo.name', element.deviceName);
+ SDL.SDLModel.set('CurrDeviceInfo.id', element.id);
+ FFW.BasicCommunication.OnDeviceChosen(element.deviceName,
+ element.id);
+ this.turnChangeDeviceViewBack();
+ },
+ /**
+ * Method creates list of Application ID's Then call HMI method for
+ * display a list of Applications
+ *
+ * @param {Object}
+ */
+ onGetAppList: function(appList) {
+
+ SDL.SDLModel.onGetAppList(appList);
+ },
+ /**
+ * Method call's request to get list of applications
+ */
+ findNewApps: function() {
+
+ FFW.BasicCommunication.OnFindApplications();
+ },
+ /**
+ * Method activates selected registered application
+ *
+ * @param {Object}
+ */
+ onActivateSDLApp: function(element) {
+
+ FFW.BasicCommunication.OnAppActivated(element.appID);
+ },
+ /**
+ * Method sent custom softButtons pressed and event status to RPC
+ *
+ * @param {Object}
+ */
+ onSoftButtonActionUpCustom: function(element) {
+
+ if (element.time > 0) {
+ FFW.Buttons.buttonEventCustom("CUSTOM_BUTTON",
+ "BUTTONUP",
+ element.softButtonID);
+ } else {
+ FFW.Buttons.buttonEventCustom("CUSTOM_BUTTON",
+ "BUTTONUP",
+ element.softButtonID);
+ FFW.Buttons.buttonPressedCustom("CUSTOM_BUTTON",
+ "SHORT",
+ element.softButtonID);
+ }
+ clearTimeout(element.timer);
+ element.time = 0;
+ },
+ /**
+ * Method sent custom softButtons pressed and event status to RPC
+ *
+ * @param {Object}
+ */
+ onSoftButtonActionDownCustom: function(element) {
+
+ FFW.Buttons.buttonEventCustom("CUSTOM_BUTTON",
+ "BUTTONDOWN",
+ element.softButtonID);
+ element.time = 0;
+ element.timer = setTimeout(function() {
+
+ FFW.Buttons.buttonPressedCustom("CUSTOM_BUTTON",
+ "LONG",
+ element.softButtonID);
+ element.time++;
+ }, 2000);
+ },
+ /**
+ * Method sent softButtons pressed and event status to RPC
+ *
+ * @param {String}
+ * @param {Object}
+ */
+ onSoftButtonActionUp: function(element) {
+
+ if (element.time > 0) {
+ FFW.Buttons.buttonEvent(element.presetName, "BUTTONUP");
+ } else {
+ FFW.Buttons.buttonEvent(element.presetName, "BUTTONUP");
+ FFW.Buttons.buttonPressed(element.presetName, "SHORT");
+ }
+ clearTimeout(element.timer);
+ element.time = 0;
+ },
+ /**
+ * Method sent softButtons Ok pressed and event status to RPC
+ *
+ * @param {String}
+ */
+ onSoftButtonOkActionDown: function(name) {
+
+ FFW.Buttons.buttonEvent(name, "BUTTONDOWN");
+ },
+ /**
+ * Method sent softButton OK pressed and event status to RPC
+ *
+ * @param {String}
+ */
+ onSoftButtonOkActionUp: function(name) {
+
+ FFW.Buttons.buttonEvent(name, "BUTTONUP");
+ FFW.Buttons.buttonPressed(name, "SHORT");
+ if (SDL.SDLAppController.model) {
+ SDL.SDLAppController.model.set('isPlaying',
+ !SDL.SDLAppController.model.isPlaying);
+ }
+ },
+ /**
+ * Method sent softButtons pressed and event status to RPC
+ *
+ * @param {String}
+ * @param {Object}
+ */
+ onSoftButtonActionDown: function(element) {
+
+ FFW.Buttons.buttonEvent(element.presetName, "BUTTONDOWN");
+ element.time = 0;
+ element.timer = setTimeout(function() {
+
+ FFW.Buttons.buttonPressed(element.presetName, "LONG");
+ element.time++;
+ }, 2000);
+ },
+ /**
+ * Send system context
+ */
+ onSystemContextChange: function() {
+
+ FFW.UI.OnSystemContext(this.get('sysContext'));
}
- clearTimeout( element.timer );
- element.time = 0;
- },
-
- /**
- * Method sent softButtons Ok pressed and event status to RPC
- *
- * @param {String}
- */
- onSoftButtonOkActionDown: function( name ) {
- FFW.Buttons.buttonEvent( name, "BUTTONDOWN" );
- },
-
- /**
- * Method sent softButton OK pressed and event status to RPC
- *
- * @param {String}
- */
- onSoftButtonOkActionUp: function( name ) {
- FFW.Buttons.buttonEvent( name, "BUTTONUP" );
- FFW.Buttons.buttonPressed( name, "SHORT" );
- SDL.SDLAppController.model.set( 'isPlaying', !SDL.SDLAppController.model.isPlaying );
- },
-
- /**
- * Method sent softButtons pressed and event status to RPC
- *
- * @param {String}
- * @param {Object}
- */
- onSoftButtonActionDown: function( element ) {
- FFW.Buttons.buttonEvent( element.presetName, "BUTTONDOWN" );
- element.time = 0;
- element.timer = setTimeout( function() {
- FFW.Buttons.buttonPressed( element.presetName, "LONG" );
- element.time++;
- }, 2000 );
- },
-
- /**
- * Send system context
- */
- onSystemContextChange: function() {
- FFW.UI.OnSystemContext( this.get( 'sysContext' ) );
- }
-} );
+ });
diff --git a/SDL_Core/src/components/HMI/app/controller/sdl/MediaController.js b/SDL_Core/src/components/HMI/app/controller/sdl/MediaController.js
index 337d31ac5..5d5f17bfd 100644
--- a/SDL_Core/src/components/HMI/app/controller/sdl/MediaController.js
+++ b/SDL_Core/src/components/HMI/app/controller/sdl/MediaController.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -45,42 +44,41 @@ SDL.SDLMediaController = Em.Object.create( {
* Return current Media application name used for application button
*/
currentAppName: function() {
- if( this.currentAppId ){
- return SDL.SDLController.getApplicationModel( this.currentAppId ).appName;
+
+ if (this.currentAppId) {
+ return SDL.SDLController.getApplicationModel(this.currentAppId).appName;
}
- }.property( 'this.currentAppId' ),
+ }.property('this.currentAppId'),
/**
* Return current Media application icon used for application button
*/
currentAppIcon: function() {
- if( this.currentAppId ){
- return SDL.SDLController.getApplicationModel( this.currentAppId ).appIcon;
- }
- }.property( 'this.currentAppId', 'SDL.SDLAppController.model.appIcon' ),
+
+ if (this.currentAppId) { return SDL.SDLController
+ .getApplicationModel(this.currentAppId).appIcon; }
+ }.property('this.currentAppId', 'SDL.SDLAppController.model.appIcon'),
/** Call notification OnCommand on UIRPC */
- onCommand: function( element ) {
- FFW.UI.onCommand( element.commandId, element.appId );
+ onCommand: function(element) {
+
+ FFW.UI.onCommand(element.commandID, element.appID);
},
/** Call notification OnCommandSoftButton on UIRPC */
- onCommandSoftButton: function( element ) {
- FFW.UI.onCommandSoftButton( element.softButtonID, element.appId );
+ onCommandSoftButton: function(element) {
+
+ FFW.UI.onCommandSoftButton(element.softButtonID, element.appID);
},
/** Switching on Application */
- activateApp: function( applicationModel ) {
+ activateApp: function(applicationModel) {
// store active application id
- this.set( 'currentAppId', applicationModel.appId );
+ this.set('currentAppId', applicationModel.appID);
// set active model
- SDL.SDLAppController.set( 'model', applicationModel );
-
- // FFW.BasicCommunication.ActivateApp( applicationModel.appId );
-
- // SDL.MediaController.listDown();
+ SDL.SDLAppController.set('model', applicationModel);
SDL.MediaController.turnOnSDL();
@@ -89,30 +87,26 @@ SDL.SDLMediaController = Em.Object.create( {
/**
* Restore current application to active state
*/
- restoreCurrentApp: function() {
+ activateCurrentApp: function() {
- if( SDL.SDLAppController.model.appId === this.currentAppId ){
- FFW.BasicCommunication.ActivateApp( this.currentAppId );
- return;
- }
- this.activateApp( SDL.SDLController.getApplicationModel( this.currentAppId ) );
+ FFW.BasicCommunication.OnAppActivated(this.currentAppId);
},
/** SDL perform interaction action from VR */
- onVRPerformInteractionChoosed: function( element ) {
+ onVRPerformInteractionChoosed: function(element) {
- if( SDL.States.media.sdl.sdlperforminteractionchoise.active ){
- FFW.VR.onChoise( element.choiceID );
+ if (SDL.States.media.sdl.sdlperforminteractionchoise.active) {
+ FFW.VR.onChoise(element.choiceID);
SDL.States.back();
}
},
/** SDL perform interaction action */
- onPerformInteractionChoosed: function( element ) {
+ onPerformInteractionChoosed: function(element) {
- if( SDL.States.media.sdl.sdlperforminteractionchoise.active ){
- FFW.UI.interactionResponse( "SUCCESS", element.choiceID );
+ if (SDL.States.media.sdl.sdlperforminteractionchoise.active) {
+ FFW.UI.interactionResponse("SUCCESS", element.choiceID);
SDL.States.back();
}
@@ -123,17 +117,24 @@ SDL.SDLMediaController = Em.Object.create( {
*
* @param {Number}
*/
- onDeleteApplication: function( appId ) {
- if( this.currentAppId == appId ){
+ onDeleteApplication: function(appID) {
+
+ if (this.currentAppId == appID) {
- if( SDL.States.media.sdlmedia.active || SDL.SDLAppController.model.active ){
+ if (SDL.States.media.sdlmedia.active
+ || SDL.SDLAppController.model) {
- SDL.States.goToStates( 'info.apps' );
+ SDL.SDLAppController.model.set('active', false);
- SDL.MediaController.set( 'activeState', 'media.player' );
+ SDL.States.goToStates('info.apps');
+
+ SDL.MediaController.set('activeState', 'media.player');
}
- this.set( 'currentAppId', 0 );
+ this.set('currentAppId', 0);
}
+
+ SDL.SDLModel.stopStream(appID);
+ SDL.SDLModel.get('registeredApps').removeObjects(SDL.SDLModel.get('registeredApps').filterProperty('appID', appID));
}
-} ); \ No newline at end of file
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controller/sdl/NonMediaController.js b/SDL_Core/src/components/HMI/app/controller/sdl/NonMediaController.js
index 074f2edf8..46d42f308 100755..100644
--- a/SDL_Core/src/components/HMI/app/controller/sdl/NonMediaController.js
+++ b/SDL_Core/src/components/HMI/app/controller/sdl/NonMediaController.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -45,49 +44,47 @@ SDL.NonMediaController = Em.Object.create( {
* Return current NonMedia application name used for application button
*/
currentAppName: function() {
- if( this.currentAppId ){
- return SDL.SDLController.getApplicationModel( this.currentAppId ).appName;
- }
- }.property( 'this.currentAppId' ),
+
+ if (this.currentAppId) { return SDL.SDLController
+ .getApplicationModel(this.currentAppId).appName; }
+ }.property('this.currentAppId'),
/**
* Return current NonMedia application icon used for application button
*/
currentAppIcon: function() {
- if( this.currentAppId ){
- return SDL.SDLController.getApplicationModel( this.currentAppId ).appIcon;
- }
- }.property( 'this.currentAppId', 'SDL.SDLAppController.model.appIcon' ),
+
+ if (this.currentAppId) { return SDL.SDLController
+ .getApplicationModel(this.currentAppId).appIcon; }
+ }.property('this.currentAppId', 'SDL.SDLAppController.model.appIcon'),
/**
* Activate application model
*
* @param {SDLAppModel}
*/
- activateApp: function( applicationModel ) {
+ activateApp: function(applicationModel) {
// store active application id
- this.set( 'currentAppId', applicationModel.appId );
+ this.set('currentAppId', applicationModel.appID);
// set active model
- SDL.SDLAppController.set( 'model', applicationModel );
+ SDL.SDLAppController.set('model', applicationModel);
// send response
- // FFW.BasicCommunication.ActivateApp( applicationModel.appId );
+ // FFW.BasicCommunication.ActivateApp( applicationModel.appID );
// Go to SDL state
- SDL.States.goToStates( 'info.nonMedia' );
+ SDL.InfoController.turnOnSDL();
+ //SDL.States.goToStates('info.nonMedia');
},
/**
* Restore current application to active state
*/
- restoreCurrentApp: function() {
- if( SDL.SDLAppController.model.appId === this.currentAppId ){
- FFW.BasicCommunication.ActivateApp( this.currentAppId );
- return;
- }
- this.activateApp( SDL.SDLController.getApplicationModel( this.currentAppId ) );
+ activateCurrentApp: function() {
+
+ FFW.BasicCommunication.OnAppActivated(this.currentAppId);
},
/**
@@ -95,12 +92,21 @@ SDL.NonMediaController = Em.Object.create( {
*
* @param {Number}
*/
- onDeleteApplication: function( appId ) {
- if( this.currentAppId == appId ){
- if( SDL.States.info.nonMedia.active ){
- SDL.States.goToStates( 'info.apps' );
+ onDeleteApplication: function(appID) {
+
+ if (this.currentAppId == appID) {
+ if (SDL.States.info.nonMedia.active
+ || SDL.SDLAppController.model) {
+
+ SDL.SDLAppController.model.set('active', false);
+
+ SDL.States.goToStates('info.apps');
}
- this.set( 'currentAppId', 0 );
+
+ SDL.InfoController.set('activeState', 'info.apps');
+
+ this.set('currentAppId', 0);
}
+ SDL.SDLModel.get('registeredApps').removeObjects(SDL.SDLModel.get('registeredApps').filterProperty('appID', appID));
}
-} ); \ No newline at end of file
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controller/sdl/RPCController.js b/SDL_Core/src/components/HMI/app/controller/sdl/RPCController.js
new file mode 100644
index 000000000..1be44ccf4
--- /dev/null
+++ b/SDL_Core/src/components/HMI/app/controller/sdl/RPCController.js
@@ -0,0 +1,2898 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.RPCController
+ * @desc RPC Controller
+ * @category Controller
+ * @filesource app/controller/sdl/RPCController.js
+ * @version 1.0
+ */
+
+SDL.RPCController = Em.Object
+ .create( {
+
+ /**
+ * Start register RPC components on controller init
+ */
+ init: function() {
+
+ FFW.Buttons.connect();
+ FFW.TTS.connect();
+ FFW.VR.connect();
+ FFW.BasicCommunication.connect();
+ FFW.UI.connect();
+ FFW.VehicleInfo.connect();
+ FFW.Navigation.connect();
+ },
+
+ /**
+ * Method to check supported image type in request
+ *
+ * @param {Object}
+ * array
+ */
+ checkImagesArray: function(array) {
+
+ var error = false;
+ if (array instanceof Array) {
+ for ( var i = 0; i < array.length; i++) {
+ if (array[i].image && array[i].image.imageType !== "DYNAMIC") {
+
+ error = true;
+ }
+ }
+ }
+ return error;
+ },
+
+ /**
+ * Object that contains check methods that returns true if mandatory
+ * fields is successful and returns false if not
+ */
+ BasicCommunication: Em.Object
+ .create( {
+
+ resultStruct: {},
+
+ /**
+ * Validate method for request ActivateApp
+ *
+ * @param {Object}
+ * params
+ */
+ ActivateApp: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+
+ /**
+ * Validate method for request UpdateDeviceList
+ *
+ * @param {Object}
+ * params
+ */
+ UpdateDeviceList: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.deviceList == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'deviceList' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.deviceList.length < 0) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'deviceList'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request AllowDeviceToConnect
+ *
+ * @param {Object}
+ * params
+ */
+ AllowDeviceToConnect: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.device == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'device' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request UpdateAppList
+ *
+ * @param {Object}
+ * params
+ */
+ UpdateAppList: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.applications == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'applications' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.applications.length < 1) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'applications'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request MixingAudioSupported
+ *
+ * @param {Object}
+ * params
+ */
+ MixingAudioSupported: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request AllowAllApps
+ *
+ * @param {Object}
+ * params
+ */
+ AllowAllApps: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request AllowApp
+ *
+ * @param {Object}
+ * params
+ */
+ AllowApp: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.app == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'app' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ }
+
+ }),
+
+ /**
+ * Object that contains check methods that returns true if mandatory
+ * fields is successful and returns false if not
+ */
+ TTS: Em.Object
+ .create( {
+
+ resultStruct: {},
+
+ /**
+ * Validate method for request IsReady
+ *
+ * @param {Object}
+ * params
+ */
+ IsReady: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request GetLanguage
+ *
+ * @param {Object}
+ * params
+ */
+ GetLanguage: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+ /**
+ * Validate method for request PerformInteraction
+ *
+ * @param {Object}
+ * params
+ */
+ PerformInteraction: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.timeout == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'timeout' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.timeout != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'timeout'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request SetGlobalProperties
+ *
+ * @param {Object}
+ * params
+ */
+ SetGlobalProperties: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request GetSupportedLanguages
+ *
+ * @param {Object}
+ * params
+ */
+ GetSupportedLanguages: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request StopSpeaking
+ *
+ * @param {Object}
+ * params
+ */
+ StopSpeaking: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request Speak
+ *
+ * @param {Object}
+ * params
+ */
+ Speak: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.ttsChunks == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'ttsChunks' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.ttsChunks.length < 1) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'ttsChunks'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request ChangeRegistration
+ *
+ * @param {Object}
+ * params
+ */
+ ChangeRegistration: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.language == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'language' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.language != 'string') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'language'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request OnLanguageChange
+ *
+ * @param {Object}
+ * params
+ */
+ OnLanguageChange: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.language == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'language' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.language != 'string') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'language'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ }
+ }),
+
+ /**
+ * Object that contains check methods that returns true if mandatory
+ * fields is successful and returns false if not
+ */
+ Navigation: Em.Object
+ .create( {
+
+ resultStruct: {},
+
+ /**
+ * Validate method for request IsReady
+ *
+ * @param {Object}
+ * params
+ */
+ IsReady: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request Navigation.AlertManeuver
+ *
+ * @param {Object}
+ * params
+ */
+ AlertManeuver: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request StartStream
+ *
+ * @param {Object}
+ * params
+ */
+ StartStream: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.url == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'url' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.url != 'string') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'url'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request StopStream
+ *
+ * @param {Object}
+ * params
+ */
+ StopStream: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request StartAudioStream
+ *
+ * @param {Object}
+ * params
+ */
+ StartAudioStream: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.url == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'url' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.url != 'string') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'url'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request StopAudioStream
+ *
+ * @param {Object}
+ * params
+ */
+ StopAudioStream: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request Navigation.ShowConstantTBT
+ *
+ * @param {Object}
+ * params
+ */
+ ShowConstantTBT: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("softButtons" in params) {
+ if (SDL.RPCController
+ .checkImagesArray(params.softButtons)) {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ }
+ if ("turnIcon" in params
+ && params.turnIcon.imageType !== "DYNAMIC") {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("nextTurnIcon" in params
+ && params.nextTurnIcon.imageType !== "DYNAMIC") {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.navigationTexts == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'navigationTexts' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.navigationTexts.length < 0) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'navigationTexts'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request Navigation.UpdateTurnList
+ *
+ * @param {Object}
+ * params
+ */
+ UpdateTurnList: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("softButtons" in params) {
+ if (SDL.RPCController
+ .checkImagesArray(params.softButtons)) {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ }
+ if (params.turnList == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'navigationTexts' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.turnList.length < 1) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'navigationTexts'!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("turnList" in params) {
+
+ for ( var i = 0; i < params.turnList.length; i++) {
+ if (params.turnList[i].image
+ && params.turnList[i].image.imageType !== "DYNAMIC") {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ e;
+ }
+ }
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ }
+
+ }),
+
+ /**
+ * Object that contains check methods that returns true if mandatory
+ * fields is successful and returns false if not
+ */
+ UI: Em.Object
+ .create( {
+
+ resultStruct: {},
+
+ /**
+ * Validate method for request SetDisplayLayout
+ *
+ * @param {Object}
+ * params
+ */
+ SetDisplayLayout: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request IsReady
+ *
+ * @param {Object}
+ * params
+ */
+ IsReady: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request UI.Alert
+ *
+ * @param {Object}
+ * params
+ */
+ Alert: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("softButtons" in params) {
+ if (SDL.RPCController
+ .checkImagesArray(params.softButtons)) {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ }
+ if (params.alertStrings == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'alertStrings' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.alertStrings.length < 0) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'alertStrings'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.duration == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'duration' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.duration != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'duration'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request Show
+ *
+ * @param {Object}
+ * params
+ */
+ ShowNotification: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("icon" in params && params.icon.imageType !== "DYNAMIC") {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.text == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'text' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.text.length < 0) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'text'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.timeout == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'timeout' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.timeout != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'timeout'!"
+ };
+
+ return this.resultStruct;
+ }
+ },
+
+ /**
+ * Validate method for request Show
+ *
+ * @param {Object}
+ * params
+ */
+ Show: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("softButtons" in params) {
+ if (SDL.RPCController
+ .checkImagesArray(params.softButtons)) {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ }
+ if ("graphic" in params
+ && params.graphic.imageType !== "DYNAMIC") {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.showStrings == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'showStrings' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.showStrings.length < 0) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'showStrings'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request AddCommand
+ *
+ * @param {Object}
+ * params
+ */
+ AddCommand: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("cmdIcon" in params
+ && params.cmdIcon.imageType !== "DYNAMIC") {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.cmdID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'cmdID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.cmdID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'cmdID'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.menuParams == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'menuParams' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.menuParams != 'object') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'menuParams'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.menuParams.menuName == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'menuName' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.menuParams.menuName != 'string') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'menuName'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request DeleteCommand
+ *
+ * @param {Object}
+ * params
+ */
+ DeleteCommand: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.cmdID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'cmdID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.cmdID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'cmdID'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request AddSubMenu
+ *
+ * @param {Object}
+ * params
+ */
+ AddSubMenu: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.menuID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'menuID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.menuID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'menuID'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (!params.menuParams) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'menuParams' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request DeleteSubMenu
+ *
+ * @param {Object}
+ * params
+ */
+ DeleteSubMenu: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.menuID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'menuID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.menuID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'menuID'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+ // don't delete if current submenu active
+ if (SDL.SDLController.getApplicationModel(params.appID)
+ .get('currentSubMenuId') == params.menuID) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["IN_USE"],
+ "resultMessage": "SubMenu is already in use!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request PerformInteraction
+ *
+ * @param {Object}
+ * params
+ */
+ PerformInteraction: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.initialText == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'initialText' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.initialText != 'object') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'initialText'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.timeout == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'timeout' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.timeout != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'timeout'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request SetMediaClockTimer
+ *
+ * @param {Object}
+ * params
+ */
+ SetMediaClockTimer: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.updateMode == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'updateMode' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.updateMode != 'string') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'updateMode'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request SetGlobalProperties
+ *
+ * @param {Object}
+ * params
+ */
+ SetGlobalProperties: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("vrHelp" in params) {
+ if (SDL.RPCController.checkImagesArray(params.vrHelp)) {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request GetCapabilities
+ *
+ * @param {Object}
+ * params
+ */
+ GetCapabilities: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request ChangeRegistration
+ *
+ * @param {Object}
+ * params
+ */
+ ChangeRegistration: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.language == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'language' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.language != 'string') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'language'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request GetSupportedLanguages
+ *
+ * @param {Object}
+ * params
+ */
+ GetSupportedLanguages: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request GetLanguage
+ *
+ * @param {Object}
+ * params
+ */
+ GetLanguage: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request SetAppIcon
+ *
+ * @param {Object}
+ * params
+ */
+ SetAppIcon: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.syncFileName == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'syncFileName' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.syncFileName != 'object') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'syncFileName'!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("syncFileName" in params
+ && params.syncFileName.imageType !== "DYNAMIC") {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request Slider
+ *
+ * @param {Object}
+ * params
+ */
+ Slider: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.numTicks == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'numTicks' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.numTicks != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'numTicks'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.position == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'position' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.position != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'position'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.sliderHeader == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'sliderHeader' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.sliderHeader != 'string') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'sliderHeader'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.timeout == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'timeout' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.timeout != 'number' || params.timeout < 0) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'timeout'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request ScrollableMessage
+ *
+ * @param {Object}
+ * params
+ */
+ ScrollableMessage: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("softButtons" in params) {
+ if (SDL.RPCController
+ .checkImagesArray(params.softButtons)) {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ }
+ if (params.messageText == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'messageText' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.messageText.length < 0) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'messageText'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.timeout == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'timeout' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.timeout != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'timeout'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request PerformAudioPassThru
+ *
+ * @param {Object}
+ * params
+ */
+ PerformAudioPassThru: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.audioPassThruDisplayTexts == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'audioPassThruDisplayTexts' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.audioPassThruDisplayTexts.length < 0
+ || params.audioPassThruDisplayTexts.length > 2) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'audioPassThruDisplayTexts'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request EndAudioPassThru
+ *
+ * @param {Object}
+ * params
+ */
+ EndAudioPassThru: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request ClosePopUp
+ *
+ * @param {Object}
+ * params
+ */
+ ClosePopUp: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request ShowVrHelp
+ *
+ * @param {Object}
+ * params
+ */
+ ShowVrHelp: function(params) {
+
+ if (params) {
+ if ("vrHelp" in params) {
+ if (SDL.RPCController
+ .checkImagesArray(params.vrHelp)) {
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Unsupported image type!"
+ };
+
+ return this.resultStruct;
+ }
+ }
+ if ("appID" in params) {
+
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+ }
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ }
+ }),
+
+ /**
+ * Object that contains check methods that returns true if mandatory
+ * fields is successful and returns false if not
+ */
+ VehicleInfo: Em.Object
+ .create( {
+
+ resultStruct: {},
+
+ /**
+ * Validate method for request IsReady
+ *
+ * @param {Object}
+ * params
+ */
+ IsReady: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request DiagnosticMessage
+ *
+ * @param {Object}
+ * params
+ */
+ DiagnosticMessage: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request GetVehicleType
+ *
+ * @param {Object}
+ * params
+ */
+ GetVehicleType: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request ReadDID
+ *
+ * @param {Object}
+ * params
+ */
+ ReadDID: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.ecuName == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'ecuName' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.ecuName != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'ecuName'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.didLocation == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'didLocation' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.didLocation.length < 0) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'didLocation'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request GetDTCs
+ *
+ * @param {Object}
+ * params
+ */
+ GetDTCs: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.ecuName == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'ecuName' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.ecuName != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'ecuName'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request GetVehicleData
+ *
+ * @param {Object}
+ * params
+ */
+ GetVehicleData: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request SubscribeVehicleData
+ *
+ * @param {Object}
+ * params
+ */
+ SubscribeVehicleData: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request UnsubscribeVehicleData
+ *
+ * @param {Object}
+ * params
+ */
+ UnsubscribeVehicleData: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ }
+ }),
+
+ /**
+ * Object that contains check methods that returns true if mandatory
+ * fields is successful and returns false if not
+ */
+ VR: Em.Object
+ .create( {
+
+ resultStruct: {},
+
+ /**
+ * Validate method for request IsReady
+ *
+ * @param {Object}
+ * params
+ */
+ IsReady: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request GetCapabilities
+ *
+ * @param {Object}
+ * params
+ */
+ GetCapabilities: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request GetLanguage
+ *
+ * @param {Object}
+ * params
+ */
+ GetLanguage: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request GetSupportedLanguages
+ *
+ * @param {Object}
+ * params
+ */
+ GetSupportedLanguages: function(params) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request AddCommand
+ *
+ * @param {Object}
+ * params
+ */
+ AddCommand: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.cmdID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'cmdID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.cmdID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'cmdID'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.vrCommands == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'vrCommands' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.vrCommands.length < 0) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'vrCommands'!"
+ };
+
+ return this.resultStruct;
+ }
+ if ("appID" in params) {
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request DeleteCommand
+ *
+ * @param {Object}
+ * params
+ */
+ DeleteCommand: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.cmdID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'cmdID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.cmdID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'cmdID'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ },
+
+ /**
+ * Validate method for request ChangeRegistration
+ *
+ * @param {Object}
+ * params
+ */
+ ChangeRegistration: function(params) {
+
+ if (params == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'params' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.language == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'language' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.language != 'string') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'language'!"
+ };
+
+ return this.resultStruct;
+ }
+ if (params.appID == null) {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Parameter 'appID' does not exists!"
+ };
+
+ return this.resultStruct;
+ }
+ if (typeof params.appID != 'number') {
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
+ "resultMessage": "Wrong type of parameter 'appID'!"
+ };
+
+ return this.resultStruct;
+ }
+
+ this.resultStruct = {
+ "resultCode": SDL.SDLModel.resultCode["SUCCESS"]
+ };
+
+ return this.resultStruct;
+ }
+ })
+ });
diff --git a/SDL_Core/src/components/HMI/app/controlls/AZERTYLayout.js b/SDL_Core/src/components/HMI/app/controlls/AZERTYLayout.js
new file mode 100755
index 000000000..d6ae03388
--- /dev/null
+++ b/SDL_Core/src/components/HMI/app/controlls/AZERTYLayout.js
@@ -0,0 +1,264 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.QWERTYLayout
+ * @desc General list component for SDL application
+ * @category Controlls
+ * @filesource app/controlls/QWERTYLayout.js
+ * @version 1.0
+ */
+
+SDL.AZERTYLayout = Em.ContainerView.extend( {
+
+ classNames: 'keyboardLayout AZERTYLayout wide',
+
+ childViews: [
+ 'a',
+ 'z',
+ 'e',
+ 'r',
+ 't',
+ 'y',
+ 'u',
+ 'i',
+ 'o',
+ 'p',
+ 'q',
+ 's',
+ 'd',
+ 'f',
+ 'g',
+ 'h',
+ 'j',
+ 'k',
+ 'l',
+ 'm',
+ 'w',
+ 'x',
+ 'c',
+ 'v',
+ 'b',
+ 'n',
+ 'dash',
+ 'ampersand'
+ ],
+
+ a: SDL.Button.extend({
+ classNames: 'a k0',
+ text : 'a',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ z: SDL.Button.extend({
+ classNames: 'z k1',
+ text : 'z',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ e: SDL.Button.extend({
+ classNames: 'e k2',
+ text : 'e',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ r: SDL.Button.extend({
+ classNames: 'r k3',
+ text : 'r',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ t: SDL.Button.extend({
+ classNames: 't k4',
+ text : 't',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ y: SDL.Button.extend({
+ classNames: 'y k5',
+ text : 'y',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ u: SDL.Button.extend({
+ classNames: 'u k6',
+ text : 'u',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ i: SDL.Button.extend({
+ classNames: 'i k7',
+ text : 'i',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ o: SDL.Button.extend({
+ classNames: 'o k8',
+ text : 'o',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ p: SDL.Button.extend({
+ classNames: 'p k9',
+ text : 'p',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ q: SDL.Button.extend({
+ classNames: 'q k10',
+ text : 'q',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ s: SDL.Button.extend({
+ classNames: 's k11',
+ text : 's',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ d: SDL.Button.extend({
+ classNames: 'd k12',
+ text : 'd',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ f: SDL.Button.extend({
+ classNames: 'f k13',
+ text : 'f',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ g: SDL.Button.extend({
+ classNames: 'g k14',
+ text : 'g',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ h: SDL.Button.extend({
+ classNames: 'h k15',
+ text : 'h',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ j: SDL.Button.extend({
+ classNames: 'j k16',
+ text : 'j',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ k: SDL.Button.extend({
+ classNames: 'k k17',
+ text : 'k',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ l: SDL.Button.extend({
+ classNames: 'l k18',
+ text : 'l',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ m: SDL.Button.extend({
+ classNames: 'm k19',
+ text : 'm',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ w: SDL.Button.extend({
+ classNames: 'w k21',
+ text : 'w',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ x: SDL.Button.extend({
+ classNames: 'x k22',
+ text : 'x',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ c: SDL.Button.extend({
+ classNames: 'c k23',
+ text : 'c',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ v: SDL.Button.extend({
+ classNames: 'v k24',
+ text : 'v',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ b: SDL.Button.extend({
+ classNames: 'b k25',
+ text : 'b',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ n: SDL.Button.extend({
+ classNames: 'n k26',
+ text : 'n',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ dash: SDL.Button.extend({
+ classNames: 'dash k27',
+ text : '-',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ ampersand: SDL.Button.extend({
+ classNames: 'ampersand k28',
+ text : '&',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ })
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controlls/Button.js b/SDL_Core/src/components/HMI/app/controlls/Button.js
index bcd8563c1..7d5b4f4ed 100755..100644
--- a/SDL_Core/src/components/HMI/app/controlls/Button.js
+++ b/SDL_Core/src/components/HMI/app/controlls/Button.js
@@ -1,161 +1,169 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.Button
- * @desc Universal button component for SDL application
- * @category Controlls
- * @filesource app/controlls/Button.js
- * @version 1.0
- */
-
-SDL.Button = Em.View.extend( Ember.TargetActionSupport, {
- classNames:
- [
- 'ffw-button',
- 'notpressed'
- ],
-
- classNameBindings:
- [
- 'pressed',
- 'disabled',
- 'hidden'
- ],
-
- /** Pressed state binding */
- pressed: false,
-
- /** Disable actions on button */
- disabled: false,
-
- /** Button icon class */
- icon: null,
-
- /** Button text */
- text: null,
-
- rightText: null,
-
- target: this.target ? this.target : this,
-
- /** Arrow icon */
- arrow: false,
-
- /** Button timer flag */
- timer: 0,
-
- timerId: null,
- /** Touch leave event flag */
- touchleave: false,
-
- onDown: true,
-
- helpMode: false,
- /** */
- targetElement: null,
-
- actionDown: function( event ) {
- if( this.get( 'disabled' ) ){
- return;
- }
-
- var self = this;
-
- this.set( 'pressed', true );
- /** Set Mouse Leave Event Flag to false */
- this.set( 'mouseleave', false );
-
-
- // Default trigger action
- if( this.onDown ){
- this.triggerAction();
- }
-
- // Call trigger with timeout
- if( this.timer ){
- this.timerId = setInterval( function() {
- self.triggerAction();
- }, this.timer );
- }
- },
-
- actionUp: function( event ) {
- this.set( 'pressed', false );
-
- if( this.timer ){
- clearInterval( this.timerId );
- }
-
- if( this.get( 'disabled' ) ){
- if( this.touchleave == true ){
- this.set( 'touchleave', false );
- }
- return;
- }
-
- if( !this.onDown ){
- this.triggerAction();
- }
- },
-
- /** Only for desktop */
- mouseLeave: function( event ) {
- this.set( 'pressed', false );
-
- if( this.timer ){
- clearInterval( this.timerId );
- }
- },
-
- /**
- * Only for IOS Simulation of mouseleave event for touch
- * devices If target element looses focus during touch move
- * event events dont trigger
- */
- touchMove: function( event ) {
- /** Set Mouse Leave Event Flag to true */
- this.set( 'touchleave', this.targetElement !== document.elementFromPoint( event.originalEvent.touches[0].pageX, event.originalEvent.touches[0].pageY ) );
- },
-
- // component default template
- defaultTemplate: Em.Handlebars.compile( '<img class="ico" {{bindAttr src="view.icon"}} />' + '<span>{{view.text}}</span>' ),
-
- templates: {
- text: Em.Handlebars.compile( '<span>{{view.text}}</span>' ),
-
- icon: Em.Handlebars.compile( '<img class="ico" {{bindAttr src="view.icon"}} />' ),
-
- rightText: Em.Handlebars.compile( '<img class="ico" {{bindAttr src="view.icon"}} />' + '<span>{{view.text}}</span>'
- + '<span class="right_text">{{view.rightText}}</span>' ),
-
- arrow: Em.Handlebars.compile( '<img class="ico" {{bindAttr src="view.icon"}} />' + '<span>{{view.text}}</span>'
- + '<img class="arrow-ico" src="images/common/arrow_ico.png" />' ),
-
- rightIcon: Em.Handlebars.compile( '<img class="ico" {{bindAttr src="view.icon"}} />' + '<span>{{view.text}}</span>'
- + '<img class="right_ico" {{bindAttr src="view.righticon"}} />' )
- }
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.Button
+ * @desc Universal button component for SDL application
+ * @category Controlls
+ * @filesource app/controlls/Button.js
+ * @version 1.0
+ */
+
+SDL.Button = Em.View
+ .extend(Ember.TargetActionSupport,
+ {
+ classNames: [
+ 'ffw-button', 'notpressed'
+ ],
+
+ classNameBindings: [
+ 'pressed', 'disabled', 'hidden'
+ ],
+
+ /** Pressed state binding */
+ pressed: false,
+
+ /** Disable actions on button */
+ disabled: false,
+
+ /** Button icon class */
+ icon: null,
+
+ /** Button text */
+ text: null,
+
+ rightText: null,
+
+ target: this.target ? this.target : this,
+
+ /** Arrow icon */
+ arrow: false,
+
+ /** Button timer flag */
+ timer: 0,
+
+ timerId: null,
+ /** Touch leave event flag */
+ touchleave: false,
+
+ onDown: true,
+
+ helpMode: false,
+ /** */
+ targetElement: null,
+
+ actionDown: function(event) {
+
+ if (this.get('disabled')) { return; }
+
+ var self = this;
+
+ this.set('pressed', true);
+ /** Set Mouse Leave Event Flag to false */
+ this.set('mouseleave', false);
+
+ // Default trigger action
+ if (this.onDown) {
+ this.triggerAction();
+ }
+
+ // Call trigger with timeout
+ if (this.timer) {
+ this.timerId = setInterval(function() {
+
+ self.triggerAction();
+ }, this.timer);
+ }
+ },
+
+ actionUp: function(event) {
+
+ this.set('pressed', false);
+
+ if (this.timer) {
+ clearInterval(this.timerId);
+ }
+
+ if (this.get('disabled')) {
+ if (this.touchleave == true) {
+ this.set('touchleave', false);
+ }
+ return;
+ }
+
+ if (!this.onDown) {
+ this.triggerAction();
+ }
+ },
+
+ /** Only for desktop */
+ mouseLeave: function(event) {
+
+ this.set('pressed', false);
+
+ if (this.timer) {
+ clearInterval(this.timerId);
+ }
+ },
+
+ /**
+ * Only for IOS Simulation of mouseleave event for touch devices If
+ * target element looses focus during touch move event events dont
+ * trigger
+ */
+ touchMove: function(event) {
+
+ /** Set Mouse Leave Event Flag to true */
+ this.set('touchleave', this.targetElement !== document
+ .elementFromPoint(event.originalEvent.touches[0].pageX,
+ event.originalEvent.touches[0].pageY));
+ },
+
+ // component default template
+ defaultTemplate: Em.Handlebars
+ .compile('<img class="ico" {{bindAttr src="view.icon"}} />'
+ + '<span>{{view.text}}</span>'),
+
+ templates: {
+ text: Em.Handlebars.compile('<span class="text">{{view.text}}</span>'),
+
+ icon: Em.Handlebars
+ .compile('<img class="ico" {{bindAttr src="view.icon"}} />'),
+
+ rightText: Em.Handlebars
+ .compile('<img class="ico" {{bindAttr src="view.icon"}} />'
+ + '<span class="right_text">{{view.text}}</span>'),
+
+ arrow: Em.Handlebars
+ .compile('<img class="ico" {{bindAttr src="view.icon"}} />'
+ + '<span>{{view.text}}</span>'
+ + '<img class="arrow-ico" src="images/common/arrow_ico.png" />'),
+
+ rightIcon: Em.Handlebars
+ .compile('<img class="ico" {{bindAttr src="view.icon"}} />'
+ + '<span>{{view.text}}</span>'
+ + '<img class="right_ico" {{bindAttr src="view.righticon"}} />')
+ }
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controlls/Indicator.js b/SDL_Core/src/components/HMI/app/controlls/Indicator.js
index 3add25475..4d3804e73 100755..100644
--- a/SDL_Core/src/components/HMI/app/controlls/Indicator.js
+++ b/SDL_Core/src/components/HMI/app/controlls/Indicator.js
@@ -1,125 +1,134 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.Indicator
- * @desc Universal button component with value indicator for SDL application
- * @category Controlls
- * @filesource app/controlls/Indicator.js
- * @version 1.0
- */
-
-SDL.Indicator = Em.View.extend( Ember.TargetActionSupport, {
-
- /** Content binding */
- content: null,
-
- /** internal indicators array */
- indicators: null,
-
- /** indicator active class */
- indActiveClass: null,
-
- /** indicator default class */
- indDefaultClass: null,
-
- /** Set active indicator from the start */
- startFrom: null,
-
- /** binding property to enable/disable indicators */
- enabledBinding: 'content.enabled',
-
- /**
- * Before rendering view handeler need to generate indicators array based on
- * indicator range value
- */
- beforeRender: function() {
- // define variables
- var length = this.content.range, view = this, i;
-
- // generate indicators
- this.indicators = [];
-
- for( i = 0; i < length; i++ ){
- this.indicators.push( Em.Object.create( {
- index: i,
- className: this.indDefaultClass
- } ) );
- }
- // apply indicator visualization rule
- view.setRecord();
-
- if( this.startFrom ){
- this.indicators[this.startFrom].set( 'className', this.indActiveClass );
- }
-
- // add observer to content record
- this.addObserver( 'content', function() {
- view.setRecord();
- } );
-
- // view internal call
- this.applyAttributesToBuffer( this.buffer );
- },
-
- actionDown: function() {
- this.triggerAction();
- },
-
- // change record binding
- setRecord: function() {
-
- var view = this;
-
- if( this.content.observersForKey( 'value' ).length == 0 ){
-
- this.content.addObserver( 'value', function() {
- view.toggleIndicators();
- } );
-
- }
-
- this.toggleIndicators();
- },
-
- // Toggle indicator handeler
- toggleIndicators: function() {
-
- var length = this.indicators.length, i;
-
- for( i = 0; i < length; i++ ){
- if( i >= this.content.value ){
- this.indicators[i].set( 'className', 'SDL_indicator ' + this.indDefaultClass );
- }else{
- this.indicators[i].set( 'className', 'SDL_indicator ' + this.indActiveClass );
- }
- }
- },
-
- /** Define indicator template */
- template: Ember.Handlebars.compile( '{{#with view}}' + '{{#each indicators}}' + '<div {{bindAttr class="className view.enabled:show"}}></div>' + '{{/each}}' + '{{/with}}' )
-
-} );
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.Indicator
+ * @desc Universal button component with value indicator for SDL application
+ * @category Controlls
+ * @filesource app/controlls/Indicator.js
+ * @version 1.0
+ */
+
+SDL.Indicator = Em.View.extend(Ember.TargetActionSupport, {
+
+ /** Content binding */
+ content: null,
+
+ /** internal indicators array */
+ indicators: null,
+
+ /** indicator active class */
+ indActiveClass: null,
+
+ /** indicator default class */
+ indDefaultClass: null,
+
+ /** Set active indicator from the start */
+ startFrom: null,
+
+ /** binding property to enable/disable indicators */
+ enabledBinding: 'content.enabled',
+
+ /**
+ * Before rendering view handeler need to generate indicators array based on
+ * indicator range value
+ */
+ beforeRender: function() {
+
+ // define variables
+ var length = this.content.range, view = this, i;
+
+ // generate indicators
+ this.indicators = [];
+
+ for (i = 0; i < length; i++) {
+ this.indicators.push(Em.Object.create( {
+ index: i,
+ className: this.indDefaultClass
+ }));
+ }
+ // apply indicator visualization rule
+ view.setRecord();
+
+ if (this.startFrom) {
+ this.indicators[this.startFrom].set('className',
+ this.indActiveClass);
+ }
+
+ // add observer to content record
+ this.addObserver('content', function() {
+
+ view.setRecord();
+ });
+
+ // view internal call
+ this.applyAttributesToBuffer(this.buffer);
+ },
+
+ actionDown: function() {
+
+ this.triggerAction();
+ },
+
+ // change record binding
+ setRecord: function() {
+
+ var view = this;
+
+ if (this.content.observersForKey('value').length == 0) {
+
+ this.content.addObserver('value', function() {
+
+ view.toggleIndicators();
+ });
+
+ }
+
+ this.toggleIndicators();
+ },
+
+ // Toggle indicator handeler
+ toggleIndicators: function() {
+
+ var length = this.indicators.length, i;
+
+ for (i = 0; i < length; i++) {
+ if (i >= this.content.value) {
+ this.indicators[i].set('className', 'SDL_indicator '
+ + this.indDefaultClass);
+ } else {
+ this.indicators[i].set('className', 'SDL_indicator '
+ + this.indActiveClass);
+ }
+ }
+ },
+
+ /** Define indicator template */
+ template: Ember.Handlebars.compile('{{#with view}}'
+ + '{{#each indicators}}'
+ + '<div {{bindAttr class="className view.enabled:show"}}></div>'
+ + '{{/each}}' + '{{/with}}')
+
+});
diff --git a/SDL_Core/src/components/HMI/app/controlls/Label.js b/SDL_Core/src/components/HMI/app/controlls/Label.js
index 995acc702..2fc9e6604 100755..100644
--- a/SDL_Core/src/components/HMI/app/controlls/Label.js
+++ b/SDL_Core/src/components/HMI/app/controlls/Label.js
@@ -1,55 +1,55 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.Label
- * @desc Universal label component for SDL application
- * @category Controlls
- * @filesource app/controlls/Label.js
- * @version 1.0
- */
-
-SDL.Label = Em.View.extend( {
- classNameBindings:
- [
- 'disabled'
- ],
- classNames: 'label',
-
- // component default template
- defaultTemplate: Em.Handlebars.compile( '<span>{{view.content}}</span>' ),
-
- templates: {
- icon: Em.Handlebars.compile( '<img class="ico" {{bindAttr src="view.icon"}} />' + '<span>{{view.content}}</span>' )
- }
-
-/** Define button template */
-/*
- * template: Ember.Handlebars.compile( '{{#with view}}'+ '{{#if icon}}<img
- * class="ico" {{bindAttr src="icon"}} />{{/if}}'+ '<span>{{content}}</span>'+
- * '{{/with}}' )
- */
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.Label
+ * @desc Universal label component for SDL application
+ * @category Controlls
+ * @filesource app/controlls/Label.js
+ * @version 1.0
+ */
+
+SDL.Label = Em.View.extend( {
+ classNameBindings: [
+ 'disabled'
+ ],
+ classNames: 'label',
+
+ // component default template
+ defaultTemplate: Em.Handlebars.compile('<span>{{view.content}}</span>'),
+
+ templates: {
+ icon: Em.Handlebars
+ .compile('<img class="ico" {{bindAttr src="view.icon"}} />'
+ + '<span>{{view.content}}</span>')
+ }
+
+/** Define button template */
+/*
+ * template: Ember.Handlebars.compile( '{{#with view}}'+ '{{#if icon}}<img
+ * class="ico" {{bindAttr src="icon"}} />{{/if}}'+ '<span>{{content}}</span>'+
+ * '{{/with}}' )
+ */
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controlls/List.js b/SDL_Core/src/components/HMI/app/controlls/List.js
index bb11dfc91..e0fc551f4 100755..100644
--- a/SDL_Core/src/components/HMI/app/controlls/List.js
+++ b/SDL_Core/src/components/HMI/app/controlls/List.js
@@ -1,174 +1,186 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.List
- * @desc General list component for SDL application
- * @category Controlls
- * @filesource app/controlls/List.js
- * @version 1.0
- */
-
-SDL.List = Em.ContainerView.extend( {
-
- classNames: 'list',
-
- /** flag for scrollbar */
- disableScrollbar: false,
-
- /** Set count of items at one time */
- itemsOnPage: 0,
-
- /** Speed of scrolling in milliseconds */
- scrollBarSpeed: 200,
-
- /** Number of columns on page */
- columnsNumber: 1,
-
- itemheight: 50,
-
- /** Current scroll page */
- currentPage: 0,
-
- /** Css style of list */
- listScrollingAttributes: '',
-
- /** Count of items in menu */
- /*
- * listCount: function(){ if( this.items ) { return this.items.length; }
- * }.property('items.@each.type'),
- */
- listCount: function() {
- // console.log(this.get('this.list.childViews.length'));
- return this.get( 'this.list.childViews.length' );
- }.property( 'this.list.childViews.length' ),
-
- /** Pages count */
- pageCount: function() {
- return Math.ceil( this.get( 'listCount' ) / this.get( 'columnsNumber' ) / this.get( 'itemsOnPage' ) );
- }.property( 'listCount', 'itemsOnPage' ),
-
- listHeight: function() {
- return this.itemsOnPage * this.itemheight;
- }.property( 'itemsOnPage' ),
-
- /** Action of element "sb-top" which show previous list page */
- sbUp: function() {
- if( this.get( 'currentPage' ) > 0 ){
- this.set( 'currentPage', this.get( 'currentPage' ) - 1 );
- }
- },
-
- /** Action of element "sb-bottom" which show previous list page */
- sbDown: function() {
- if( this.get( 'currentPage' ) < this.get( 'pageCount' ) - 1 ){
- this.set( 'currentPage', this.get( 'currentPage' ) + 1 );
- }
- },
-
- /** Scroll content according to current page */
- onCurrentPageChange: function() {
- this.set( 'listScrollingAttributes', 'margin-top: ' + ( this.get( 'currentPage' ) * this.itemsOnPage * ( -50 ) ) + 'px' );
- }.observes( 'currentPage' ),
-
- /** Method for delete certain item from list */
- deleteItem: function( id ) {
- this.items.splice( id, 1 );
- this.list.refresh();
- },
-
- /** List components */
- childViews:
- [
- 'list',
- 'scrollbar'
- ],
-
- /** List view */
- list: Em.ContainerView.extend( {
-
- classNames: 'list-content',
-
- listStyleBinding: 'parentView.listScrollingAttributes',
-
- attributeBindings:
- [
- 'listStyle:style'
- ],
-
- refresh: function() {
- this.rerender();
- }.observes( '_parentView.items.@each.type' ),
-
- afterRender: function() {
- var items = this._parentView.items, element, i, key, binding;
-
- for( i = 0; i < items.length; i++ ){
-
- element = items[i].type.create( {
- // element id
- elementId: this._parentView.elementId + '_item' + i,
-
- // list item css class
- classNames: 'list-item',
-
- classNameBindings:
- [
- 'this.voiceOver'
- ],
-
- // Dynamic property set
- init: function() {
- for( key in items[i].params ){
- if( key.match( 'Binding' ) != null ){
- binding = Ember.Binding.from( items[i].params[key] ).to( key.replace( 'Binding', '' ) );
- binding.connect( this );
- // Set one way binding
- binding.oneWay();
- }else{
- this.set( key, items[i].params[key] );
- }
- }
- this._super();
- // synchronize bindings
- Ember.run.sync();
- }
- } )
-
- // Push element to list
- this.get( 'childViews' ).pushObject( element );
- }
- }
- } ),
-
- /** Scrollbar view */
- scrollbar: SDL.ScrollBar.extend( {
- currentPageBinding: 'parentView.currentPage',
- pageCountBinding: 'parentView.pageCount',
- listHeightBinding: 'parentView.listHeight',
- scrollBarIsDisabledBinding: 'parentView.disableScrollbar'
- } )
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.List
+ * @desc General list component for SDL application
+ * @category Controlls
+ * @filesource app/controlls/List.js
+ * @version 1.0
+ */
+
+SDL.List = Em.ContainerView.extend( {
+
+ classNames: 'list',
+
+ /** flag for scrollbar */
+ disableScrollbar: false,
+
+ /** Set count of items at one time */
+ itemsOnPage: 0,
+
+ /** Speed of scrolling in milliseconds */
+ scrollBarSpeed: 200,
+
+ /** Number of columns on page */
+ columnsNumber: 1,
+
+ itemheight: 50,
+
+ /** Current scroll page */
+ currentPage: 0,
+
+ /** Css style of list */
+ listScrollingAttributes: '',
+
+ /** Count of items in menu */
+ /*
+ * listCount: function(){ if( this.items ) { return this.items.length; }
+ * }.property('items.@each.type'),
+ */
+ listCount: function() {
+
+ if ( (this.get('this.list.childViews.length') / this.get('columnsNumber') / this.get('itemsOnPage') ) < this.get('currentPage')) {
+ this.set('currentPage', 0);
+ }
+ // console.log(this.get('this.list.childViews.length'));
+ return this.get('this.list.childViews.length');
+ }.property('this.list.childViews.length'),
+
+ /** Pages count */
+ pageCount: function() {
+
+ return Math.ceil(this.get('listCount') / this.get('columnsNumber')
+ / this.get('itemsOnPage'));
+ }.property('listCount', 'itemsOnPage'),
+
+ listHeight: function() {
+
+ return this.itemsOnPage * this.itemheight;
+ }.property('itemsOnPage'),
+
+ /** Action of element "sb-top" which show previous list page */
+ sbUp: function() {
+
+ if (this.get('currentPage') > 0) {
+ this.set('currentPage', this.get('currentPage') - 1);
+ }
+ },
+
+ /** Action of element "sb-bottom" which show previous list page */
+ sbDown: function() {
+
+ if (this.get('currentPage') < this.get('pageCount') - 1) {
+ this.set('currentPage', this.get('currentPage') + 1);
+ }
+ },
+
+ /** Scroll content according to current page */
+ onCurrentPageChange: function() {
+
+ this.set('listScrollingAttributes', 'margin-top: '
+ + (this.get('currentPage') * this.itemsOnPage * (-50)) + 'px');
+ }.observes('currentPage'),
+
+ /** Method for delete certain item from list */
+ deleteItem: function(id) {
+
+ this.items.splice(id, 1);
+ this.list.refresh();
+ },
+
+ /** List components */
+ childViews: [
+ 'list', 'scrollbar'
+ ],
+
+ /** List view */
+ list: Em.ContainerView.extend( {
+
+ classNames: 'list-content',
+
+ listStyleBinding: 'parentView.listScrollingAttributes',
+
+ attributeBindings: [
+ 'listStyle:style'
+ ],
+
+ refresh: function() {
+
+ this.rerender();
+ }.observes('_parentView.items.@each.type'),
+
+ afterRender: function() {
+
+ var items = this._parentView.items, element, i, key, binding;
+
+ for (i = 0; i < items.length; i++) {
+
+ element = items[i].type.create( {
+ // element id
+ elementId: this._parentView.elementId + '_item' + i,
+
+ // list item css class
+ classNames: 'list-item',
+
+ classNameBindings: [
+ 'this.voiceOver'
+ ],
+
+ // Dynamic property set
+ init: function() {
+
+ for (key in items[i].params) {
+ if (key.match('Binding') != null) {
+ binding = Ember.Binding
+ .from(items[i].params[key]).to(key
+ .replace('Binding', ''));
+ binding.connect(this);
+ // Set one way binding
+ binding.oneWay();
+ } else {
+ this.set(key, items[i].params[key]);
+ }
+ }
+ this._super();
+ // synchronize bindings
+ Ember.run.sync();
+ }
+ })
+
+ // Push element to list
+ this.get('childViews').pushObject(element);
+ }
+ }
+ }),
+
+ /** Scrollbar view */
+ scrollbar: SDL.ScrollBar.extend( {
+ currentPageBinding: 'parentView.currentPage',
+ pageCountBinding: 'parentView.pageCount',
+ listHeightBinding: 'parentView.listHeight',
+ scrollBarIsDisabledBinding: 'parentView.disableScrollbar'
+ })
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controlls/MenuList.js b/SDL_Core/src/components/HMI/app/controlls/MenuList.js
index 3e0c8d031..b4ba9207e 100644
--- a/SDL_Core/src/components/HMI/app/controlls/MenuList.js
+++ b/SDL_Core/src/components/HMI/app/controlls/MenuList.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -32,158 +31,174 @@
* @version 1.0
*/
-SDL.MenuList = Em.ContainerView.extend( {
-
- /**
- * Add new item to container
- *
- * @param buttons: SoftButton[]
- */
- addItems: function( buttons, appId ) {
-
- this.deleteItems();
-
- if( buttons ){
- for( var i = 0; i < buttons.length; i++ ){
- this.get( 'content.childViews' ).pushObject( SDL.Button.create( SDL.PresetEventsCustom, {
- text: buttons[i].text,
- icon: buttons[i].image,
- softButtonId: buttons[i].softButtonID,
- systemAction: buttons[i].systemAction,
- groupName: this.groupName,
- appId: appId
- } ) );
+SDL.MenuList = Em.ContainerView
+ .extend( {
+
+ /**
+ * Add new item to container
+ *
+ * @param buttons:
+ * SoftButton[]
+ */
+ addItems: function(buttons, appID) {
+
+ this.deleteItems();
+
+ if (buttons) {
+ for ( var i = 0; i < buttons.length; i++) {
+ this.get('content.childViews').pushObject(SDL.Button
+ .create(SDL.PresetEventsCustom, {
+ text: buttons[i].text,
+ icon: buttons[i].image ? buttons[i].image.value : "",
+ templateName: buttons[i].image ? 'rightText' : 'text',
+ groupName: "AlertPopUp",
+ classNameBindings: ['isHighlighted:isHighlighted'],
+ isHighlighted: buttons[i].isHighlighted ? true : false,
+ softButtonID: buttons[i].softButtonID,
+ systemAction: buttons[i].systemAction,
+ groupName: this.groupName,
+ classNames: 'softButton',
+ appID: appID
+ }));
+ }
}
- }
- },
+ },
- /**
- * Delete existing Soft Buttons from container
- */
- deleteItems: function() {
+ /**
+ * Delete existing Soft Buttons from container
+ */
+ deleteItems: function() {
- this.get( 'content.childViews' ).removeObjects( this.get( 'content.childViews' ).filterProperty( 'softButtonId' ) );
- },
+ this.get('content.childViews').removeObjects(this.get('content.childViews').filterProperty('softButtonID'));
+ this.get('content.childViews').removeObjects(this.get('content.childViews').filterProperty('softButtonID', 0));
+ },
- classNames:
- [
+ classNames: [
'ffw_list_menu'
],
- attributeBindings:
- [
+ attributeBindings: [
'elementHeight:style'
],
- // Position of current page
- page: 0,
-
- // Items per one page
- itemsOnPage: 5,
-
- // Height of one item
- ITEM_HEIGHT: 50,
-
- pageHeight: function() {
- return this.itemsOnPage * this.ITEM_HEIGHT;
- }.property( 'this.itemsOnPage' ),
-
- elementHeight: function() {
- return 'height:' + String( this.get( 'pageHeight' ) + this.ITEM_HEIGHT - 2 ) + 'px;';
- }.property( 'this.pageHeight' ),
-
- // Position of content block
- contentPositon: function() {
- return 'top:' + String( -( this.get( 'page' ) * this.get( 'pageHeight' ) ) ) + 'px; height:'
- + String( this.get( 'pageHeight' ) - ( Boolean( this.get( 'onLastPage' ) && this.get( 'page' ) ) * this.ITEM_HEIGHT ) ) + 'px;';
- }.property( 'onLastPage' ),
-
- // Property for show or hide 'down' button
- onLastPage: function() {
- return( ( this.get( 'page' ) * this.itemsOnPage ) < ( this.get( 'content.childViews.length' ) - this.itemsOnPage ) );
- }.property( 'page', 'content.childViews.length' ),
-
- // Handeler to go previous page
- pageUp: function() {
- if( this.get( 'page' ) ){
- this.set( 'page', ( this.get( 'page' ) - 1 ) );
- }
- },
-
- // Handeler to go next page
- pageDown: function() {
- if( this.get( 'onLastPage' ) ){
- this.set( 'page', ( this.get( 'page' ) + 1 ) );
- }
- },
-
- childViews:
- [
- 'upButton',
- 'content',
- 'downButton'
+ // Position of current page
+ page: 0,
+
+ // Items per one page
+ itemsOnPage: 5,
+
+ // Height of one item
+ ITEM_HEIGHT: 50,
+
+ pageHeight: function() {
+
+ return this.itemsOnPage * this.ITEM_HEIGHT;
+ }.property('this.itemsOnPage'),
+
+ elementHeight: function() {
+
+ return 'height:'
+ + String(this.get('pageHeight') + this.ITEM_HEIGHT - 2) + 'px;';
+ }.property('this.pageHeight'),
+
+ // Position of content block
+ contentPositon: function() {
+
+ return 'top:'
+ + String(-(this.get('page') * this.get('pageHeight')))
+ + 'px; height:'
+ + String(this.get('pageHeight')
+ - (Boolean(this.get('onLastPage') && this.get('page')) * this.ITEM_HEIGHT))
+ + 'px;';
+ }.property('onLastPage'),
+
+ // Property for show or hide 'down' button
+ onLastPage: function() {
+
+ return ((this.get('page') * this.itemsOnPage) < (this
+ .get('content.childViews.length') - this.itemsOnPage));
+ }.property('page', 'content.childViews.length'),
+
+ // Handeler to go previous page
+ pageUp: function() {
+
+ if (this.get('page')) {
+ this.set('page', (this.get('page') - 1));
+ }
+ },
+
+ // Handeler to go next page
+ pageDown: function() {
+
+ if (this.get('onLastPage')) {
+ this.set('page', (this.get('page') + 1));
+ }
+ },
+
+ childViews: [
+ 'upButton', 'content', 'downButton'
],
- upButton: SDL.Button.extend( {
+ upButton: SDL.Button.extend( {
- classNames:
- [
- 'control',
- 'up_button'
+ classNames: [
+ 'control', 'up_button'
],
- hidden: function() {
- if( this.get( 'parentView.page' ) ){
- return false;
- }else{
- return true;
- }
- }.property( 'parentView.page' ),
+ hidden: function() {
- templateName: 'icon',
+ if (this.get('parentView.page')) {
+ return false;
+ } else {
+ return true;
+ }
+ }.property('parentView.page'),
- icon: 'images/media/ico_arrow_up.png',
+ templateName: 'icon',
- action: 'pageUp',
+ icon: 'images/media/ico_arrow_up.png',
- target: 'parentView'
- } ),
+ action: 'pageUp',
- downButton: SDL.Button.extend( {
+ onDown: false,
- classNames:
- [
- 'control',
- 'down_button'
+ target: 'parentView'
+ }),
+
+ downButton: SDL.Button.extend( {
+
+ classNames: [
+ 'control', 'down_button'
],
- hidden: function() {
- if( this.get( 'parentView.onLastPage' ) ){
- return false;
- }else{
- return true;
- }
- }.property( 'parentView.onLastPage' ),
+ hidden: function() {
+
+ if (this.get('parentView.onLastPage')) {
+ return false;
+ } else {
+ return true;
+ }
+ }.property('parentView.onLastPage'),
+
+ templateName: 'icon',
- templateName: 'icon',
+ icon: 'images/media/ico_arrow_down.png',
- icon: 'images/media/ico_arrow_down.png',
+ action: 'pageDown',
- action: 'pageDown',
+ onDown: false,
- target: 'parentView'
- } ),
+ target: 'parentView'
+ }),
- content: Em.ContainerView.extend( {
+ content: Em.ContainerView.extend( {
- classNames:
- [
+ classNames: [
'content'
],
- attributeBindings:
- [
+ attributeBindings: [
'parentView.contentPositon:style'
]
- } )
-} ); \ No newline at end of file
+ })
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controlls/QWERTYLayout.js b/SDL_Core/src/components/HMI/app/controlls/QWERTYLayout.js
new file mode 100755
index 000000000..336587d02
--- /dev/null
+++ b/SDL_Core/src/components/HMI/app/controlls/QWERTYLayout.js
@@ -0,0 +1,264 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.QWERTYLayout
+ * @desc General list component for SDL application
+ * @category Controlls
+ * @filesource app/controlls/QWERTYLayout.js
+ * @version 1.0
+ */
+
+SDL.QWERTYLayout = Em.ContainerView.extend( {
+
+ classNames: 'keyboardLayout QWERTYLayout',
+
+ childViews: [
+ 'q',
+ 'w',
+ 'e',
+ 'r',
+ 't',
+ 'y',
+ 'u',
+ 'i',
+ 'o',
+ 'p',
+ 'a',
+ 's',
+ 'd',
+ 'f',
+ 'g',
+ 'h',
+ 'j',
+ 'k',
+ 'l',
+ 'z',
+ 'x',
+ 'c',
+ 'v',
+ 'b',
+ 'n',
+ 'm',
+ 'dash',
+ 'ampersand'
+ ],
+
+ q: SDL.Button.extend({
+ classNames: 'q k0',
+ text : 'q',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ w: SDL.Button.extend({
+ classNames: 'w k1',
+ text : 'w',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ e: SDL.Button.extend({
+ classNames: 'e k2',
+ text : 'e',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ r: SDL.Button.extend({
+ classNames: 'r k3',
+ text : 'r',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ t: SDL.Button.extend({
+ classNames: 't k4',
+ text : 't',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ y: SDL.Button.extend({
+ classNames: 'y k5',
+ text : 'y',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ u: SDL.Button.extend({
+ classNames: 'u k6',
+ text : 'u',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ i: SDL.Button.extend({
+ classNames: 'i k7',
+ text : 'i',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ o: SDL.Button.extend({
+ classNames: 'o k8',
+ text : 'o',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ p: SDL.Button.extend({
+ classNames: 'p k9',
+ text : 'p',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ a: SDL.Button.extend({
+ classNames: 'a k10',
+ text : 'a',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ s: SDL.Button.extend({
+ classNames: 's k11',
+ text : 's',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ d: SDL.Button.extend({
+ classNames: 'd k12',
+ text : 'd',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ f: SDL.Button.extend({
+ classNames: 'f k13',
+ text : 'f',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ g: SDL.Button.extend({
+ classNames: 'g k14',
+ text : 'g',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ h: SDL.Button.extend({
+ classNames: 'h k15',
+ text : 'h',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ j: SDL.Button.extend({
+ classNames: 'j k16',
+ text : 'j',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ k: SDL.Button.extend({
+ classNames: 'k k17',
+ text : 'k',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ l: SDL.Button.extend({
+ classNames: 'l k18',
+ text : 'l',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ z: SDL.Button.extend({
+ classNames: 'z k21',
+ text : 'z',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ x: SDL.Button.extend({
+ classNames: 'x k22',
+ text : 'x',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ c: SDL.Button.extend({
+ classNames: 'c k23',
+ text : 'c',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ v: SDL.Button.extend({
+ classNames: 'v k24',
+ text : 'v',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ b: SDL.Button.extend({
+ classNames: 'b k25',
+ text : 'b',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ n: SDL.Button.extend({
+ classNames: 'n k26',
+ text : 'n',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ m: SDL.Button.extend({
+ classNames: 'm k27',
+ text : 'm',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ dash: SDL.Button.extend({
+ classNames: 'dash k28',
+ text : '-',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ ampersand: SDL.Button.extend({
+ classNames: 'ampersand k29',
+ text : '&',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ })
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controlls/QWERTZLayout.js b/SDL_Core/src/components/HMI/app/controlls/QWERTZLayout.js
new file mode 100755
index 000000000..4374c5f78
--- /dev/null
+++ b/SDL_Core/src/components/HMI/app/controlls/QWERTZLayout.js
@@ -0,0 +1,264 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.QWERTYLayout
+ * @desc General list component for SDL application
+ * @category Controlls
+ * @filesource app/controlls/QWERTYLayout.js
+ * @version 1.0
+ */
+
+SDL.QWERTZLayout = Em.ContainerView.extend( {
+
+ classNames: 'keyboardLayout QWERTZLayout',
+
+ childViews: [
+ 'q',
+ 'w',
+ 'e',
+ 'r',
+ 't',
+ 'z',
+ 'u',
+ 'i',
+ 'o',
+ 'p',
+ 'a',
+ 's',
+ 'd',
+ 'f',
+ 'g',
+ 'h',
+ 'j',
+ 'k',
+ 'l',
+ 'y',
+ 'x',
+ 'c',
+ 'v',
+ 'b',
+ 'n',
+ 'm',
+ 'dash',
+ 'ampersand'
+ ],
+
+ q: SDL.Button.extend({
+ classNames: 'q k0',
+ text : 'q',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ w: SDL.Button.extend({
+ classNames: 'w k1',
+ text : 'w',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ e: SDL.Button.extend({
+ classNames: 'e k2',
+ text : 'e',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ r: SDL.Button.extend({
+ classNames: 'r k3',
+ text : 'r',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ t: SDL.Button.extend({
+ classNames: 't k4',
+ text : 't',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ z: SDL.Button.extend({
+ classNames: 'z k5',
+ text : 'z',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ u: SDL.Button.extend({
+ classNames: 'u k6',
+ text : 'u',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ i: SDL.Button.extend({
+ classNames: 'i k7',
+ text : 'i',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ o: SDL.Button.extend({
+ classNames: 'o k8',
+ text : 'o',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ p: SDL.Button.extend({
+ classNames: 'p k9',
+ text : 'p',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ a: SDL.Button.extend({
+ classNames: 'a k10',
+ text : 'a',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ s: SDL.Button.extend({
+ classNames: 's k11',
+ text : 's',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ d: SDL.Button.extend({
+ classNames: 'd k12',
+ text : 'd',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ f: SDL.Button.extend({
+ classNames: 'f k13',
+ text : 'f',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ g: SDL.Button.extend({
+ classNames: 'g k14',
+ text : 'g',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ h: SDL.Button.extend({
+ classNames: 'h k15',
+ text : 'h',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ j: SDL.Button.extend({
+ classNames: 'j k16',
+ text : 'j',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ k: SDL.Button.extend({
+ classNames: 'k k17',
+ text : 'k',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ l: SDL.Button.extend({
+ classNames: 'l k18',
+ text : 'l',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ y: SDL.Button.extend({
+ classNames: 'y k21',
+ text : 'y',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ x: SDL.Button.extend({
+ classNames: 'x k22',
+ text : 'x',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ c: SDL.Button.extend({
+ classNames: 'c k23',
+ text : 'c',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ v: SDL.Button.extend({
+ classNames: 'v k24',
+ text : 'v',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ b: SDL.Button.extend({
+ classNames: 'b k25',
+ text : 'b',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ n: SDL.Button.extend({
+ classNames: 'n k26',
+ text : 'n',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ m: SDL.Button.extend({
+ classNames: 'm k27',
+ text : 'm',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ dash: SDL.Button.extend({
+ classNames: 'dash k28',
+ text : '-',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ ampersand: SDL.Button.extend({
+ classNames: 'ampersand k29',
+ text : '&',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ })
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controlls/ScrollBar.js b/SDL_Core/src/components/HMI/app/controlls/ScrollBar.js
index 6e86eef7d..466a29e40 100755..100644
--- a/SDL_Core/src/components/HMI/app/controlls/ScrollBar.js
+++ b/SDL_Core/src/components/HMI/app/controlls/ScrollBar.js
@@ -1,161 +1,167 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.ScrollBar
- * @desc ScrollBar component for List component
- * @category Controlls
- * @filesource app/controlls/ScrollBar.js
- * @version 1.0
- */
-
-SDL.ScrollBar = Em.ContainerView.extend( {
-
- /** Define enable/disable scrollbar */
- classNameBindings:
- [
- 'scrollBarIsDisabled:is-disabled'
- ],
-
- /** Componet class */
- classNames: 'scrollbar',
-
- /** Childs views */
- childViews:
- [
- 'upButton',
- 'bar',
- 'downButton'
- ],
-
- /** current page */
- currentPage: 1,
-
- /** Pages count */
- pageCount: 0,
-
- listHeight: 250,
-
- /** On/OF scrollbar */
- scrollBarIsDisabled: false,
-
- /** Define bar height */
- sbHeight: function() {
- /** Max bar height */
- this.maxHeight = this.listHeight - 102;
- if( this.pageCount <= 1 ){
- return this.maxHeight + 1;
- }else{
- return( this.maxHeight / this.pageCount );
- }
- }.property( 'pageCount' ),
-
- /** Position of bar */
- sbTop: function() {
- if( this.get( 'currentPage' ) == 0 ){
- return 0;
- }else{
- return ( this.maxHeight - this.get( 'sbHeight' ) ) / ( this.get( 'pageCount' ) - 1 ) * this.get( 'currentPage' ) + 1;
- }
- }.property( 'currentPage', 'pageCount' ),
-
- /** Support function */
- scrollbarBodyStyleAttributes: function() {
- return 'height: ' + ( this.get( 'listHeight' ) - 1 ) + 'px;';
- }.property( 'listHeight' ),
-
- /** Support function */
- sbBodyStyleAttributes: function() {
- return 'height: ' + ( this.get( 'listHeight' ) - 100 - 1 ) + 'px;';
- }.property( 'listHeight' ),
-
- sbStyleAttributes: function() {
- return 'height: ' + this.get( 'sbHeight' ) + 'px; ' + 'top: ' + this.get( 'sbTop' ) + 'px';
- }.property( 'currentPage', 'pageCount' ),
-
- /** Define scroll up button "disable" status */
- sbUpButtonIsDisabled: function() {
- if( this.get( 'currentPage' ) < 1 ){
- return true;
- }else{
- return false;
- }
- }.property( 'currentPage', 'pageCount' ),
-
- /** Define scroll down button "disable" status */
- sbDownButtonIsDisabled: function() {
- if( ( this.pageCount - 1 ) > this.get( 'currentPage' ) ){
- return false;
- }else{
- return true;
- }
- }.property( 'currentPage', 'pageCount' ),
-
- attributeBindings:
- [
- 'scrollbarBodyStyleAttributes:style'
- ],
-
- /** Bottom for scroll up */
- upButton: SDL.Button.extend( {
- classNames:
- [
- 'sb-top',
- 'button'
- ],
- action: 'sbUp',
- target: 'parentView.parentView',
- disabledBinding: 'parentView.sbUpButtonIsDisabled',
- icon: 'images/list/scrollbar/button-up-active.png',
- timer: 200
- } ),
-
- /** Bottom for scroll down */
- downButton: SDL.Button.extend( {
- classNames:
- [
- 'sb-bottom',
- 'button'
- ],
- action: 'sbDown',
- target: 'parentView.parentView',
- disabledBinding: 'parentView.sbDownButtonIsDisabled',
- icon: 'images/list/scrollbar/button-down-active.png',
- timer: 200
- } ),
-
- /** Scrollbar track */
- bar: Em.View.extend( {
- barBodyStyleBinding: 'parentView.sbBodyStyleAttributes',
- barStyleBinding: 'parentView.sbStyleAttributes',
- cancelAnimationBinding: 'parentView.parentView.cancelAnimation',
-
- layout: Em.Handlebars.compile( '<div class="sb-body" {{bindAttr style="view.barBodyStyle"}}>' + '{{yield}}' + '</div>' ),
-
- template: Em.Handlebars
- .compile( '<div class="sb-bar" ' + '{{bindAttr style="view.barStyle"}}' + '{{bindAttr class="view.cancelAnimation:cancelBarAnimation"}}>' + '</div>' )
- } )
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.ScrollBar
+ * @desc ScrollBar component for List component
+ * @category Controlls
+ * @filesource app/controlls/ScrollBar.js
+ * @version 1.0
+ */
+
+SDL.ScrollBar = Em.ContainerView
+ .extend( {
+
+ /** Define enable/disable scrollbar */
+ classNameBindings: [
+ 'scrollBarIsDisabled:is-disabled'
+ ],
+
+ /** Componet class */
+ classNames: 'scrollbar',
+
+ /** Childs views */
+ childViews: [
+ 'upButton', 'bar', 'downButton'
+ ],
+
+ /** current page */
+ currentPage: 1,
+
+ /** Pages count */
+ pageCount: 0,
+
+ listHeight: 250,
+
+ /** On/OF scrollbar */
+ scrollBarIsDisabled: false,
+
+ /** Define bar height */
+ sbHeight: function() {
+
+ /** Max bar height */
+ this.maxHeight = this.listHeight - 102;
+ if (this.pageCount <= 1) {
+ return this.maxHeight + 1;
+ } else {
+ return (this.maxHeight / this.pageCount);
+ }
+ }.property('pageCount'),
+
+ /** Position of bar */
+ sbTop: function() {
+
+ if (this.get('currentPage') == 0) {
+ return 0;
+ } else {
+ return (this.maxHeight - this.get('sbHeight'))
+ / (this.get('pageCount') - 1) * this.get('currentPage') + 1;
+ }
+ }.property('currentPage', 'pageCount'),
+
+ /** Support function */
+ scrollbarBodyStyleAttributes: function() {
+
+ return 'height: ' + (this.get('listHeight') - 1) + 'px;';
+ }.property('listHeight'),
+
+ /** Support function */
+ sbBodyStyleAttributes: function() {
+
+ return 'height: ' + (this.get('listHeight') - 100 - 1) + 'px;';
+ }.property('listHeight'),
+
+ sbStyleAttributes: function() {
+
+ return 'height: ' + this.get('sbHeight') + 'px; ' + 'top: '
+ + this.get('sbTop') + 'px';
+ }.property('currentPage', 'pageCount'),
+
+ /** Define scroll up button "disable" status */
+ sbUpButtonIsDisabled: function() {
+
+ if (this.get('currentPage') < 1) {
+ return true;
+ } else {
+ return false;
+ }
+ }.property('currentPage', 'pageCount'),
+
+ /** Define scroll down button "disable" status */
+ sbDownButtonIsDisabled: function() {
+
+ if ((this.pageCount - 1) > this.get('currentPage')) {
+ return false;
+ } else {
+ return true;
+ }
+ }.property('currentPage', 'pageCount'),
+
+ attributeBindings: [
+ 'scrollbarBodyStyleAttributes:style'
+ ],
+
+ /** Bottom for scroll up */
+ upButton: SDL.Button.extend( {
+ classNames: [
+ 'sb-top', 'button'
+ ],
+ action: 'sbUp',
+ target: 'parentView.parentView',
+ disabledBinding: 'parentView.sbUpButtonIsDisabled',
+ icon: 'images/list/scrollbar/button-up-active.png',
+ timer: 200
+ }),
+
+ /** Bottom for scroll down */
+ downButton: SDL.Button.extend( {
+ classNames: [
+ 'sb-bottom', 'button'
+ ],
+ action: 'sbDown',
+ target: 'parentView.parentView',
+ disabledBinding: 'parentView.sbDownButtonIsDisabled',
+ icon: 'images/list/scrollbar/button-down-active.png',
+ timer: 200
+ }),
+
+ /** Scrollbar track */
+ bar: Em.View
+ .extend( {
+ barBodyStyleBinding: 'parentView.sbBodyStyleAttributes',
+ barStyleBinding: 'parentView.sbStyleAttributes',
+ cancelAnimationBinding: 'parentView.parentView.cancelAnimation',
+
+ layout: Em.Handlebars
+ .compile('<div class="sb-body" {{bindAttr style="view.barBodyStyle"}}>'
+ + '{{yield}}' + '</div>'),
+
+ template: Em.Handlebars
+ .compile('<div class="sb-bar" '
+ + '{{bindAttr style="view.barStyle"}}'
+ + '{{bindAttr class="view.cancelAnimation:cancelBarAnimation"}}>'
+ + '</div>')
+ })
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controlls/ScrollableText.js b/SDL_Core/src/components/HMI/app/controlls/ScrollableText.js
index 3d6f92e65..40d35f012 100644
--- a/SDL_Core/src/components/HMI/app/controlls/ScrollableText.js
+++ b/SDL_Core/src/components/HMI/app/controlls/ScrollableText.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -32,157 +31,179 @@
* @version 1.0
*/
-SDL.ScrollableText = Em.ContainerView.extend( {
+SDL.ScrollableText = Em.ContainerView
+ .extend( {
- classNames: 'scrollableText',
+ classNames: 'scrollableText',
- /** flag for scrollbar */
- disableScrollbar: false,
+ /** flag for scrollbar */
+ disableScrollbar: false,
- /** Set count of items at one time */
- itemsOnPage: 0,
+ /** Set count of items at one time */
+ itemsOnPage: 0,
- /** Speed of scrolling in milliseconds */
- scrollBarSpeed: 200,
+ /** Speed of scrolling in milliseconds */
+ scrollBarSpeed: 200,
- /** Number of columns on page */
- columnsNumber: 1,
+ /** Number of columns on page */
+ columnsNumber: 1,
- itemheight: 50,
+ itemheight: 50,
- /** Current scroll page */
- currentPage: 0,
+ /** Current scroll page */
+ currentPage: 0,
- /** Css style of scrollableText */
- scrollableTextScrollingAttributes: '',
+ /** Css style of scrollableText */
+ scrollableTextScrollingAttributes: '',
- /** Css style of line-height of rows */
- linesHeght: 23,
+ /** Css style of line-height of rows */
+ linesHeght: 23,
- linesCount: 1,
+ linesCount: 1,
- scrollHeight: null,
+ scrollHeight: null,
- scrollableTextCount: function() {
- if( $( '#' + this.get( 'childViews' )[1].elementId ) ){
- $( '#' + this.get( 'childViews' )[1].elementId ).removeAttr( 'style' );
- this.set( 'scrollHeight', $( '#' + this.get( 'childViews' )[1].elementId )[0].scrollHeight );
- $( '#' + this.get( 'childViews' )[1].elementId ).height( this.scrollHeight );
- this.set( 'linesCount', $( '#' + this.get( 'childViews' )[1].elementId )[0].scrollHeight / this.linesHeght );
- }
- },
+ scrollableTextCount: function() {
- /** Pages count */
- pageCount: function() {
- return Math.ceil( this.get( 'linesCount' ) / this.get( 'itemsOnPage' ) );
- }.property( 'linesCount', 'itemsOnPage' ),
+ if ($('#' + this.get('childViews')[1].elementId)) {
+ $('#' + this.get('childViews')[1].elementId)
+ .removeAttr('style');
+ this.set('scrollHeight', $('#'
+ + this.get('childViews')[1].elementId)[0].scrollHeight);
+ $('#' + this.get('childViews')[1].elementId)
+ .height(this.scrollHeight);
+ this.set('linesCount', $('#'
+ + this.get('childViews')[1].elementId)[0].scrollHeight
+ / this.linesHeght);
+ }
+ },
+
+ /** Pages count */
+ pageCount: function() {
+
+ return Math.ceil(this.get('linesCount') / this.get('itemsOnPage'));
+ }.property('linesCount', 'itemsOnPage'),
+
+ scrollableTextHeight: function() {
+
+ return this.itemsOnPage * this.itemheight;
+ }.property('itemsOnPage'),
+
+ /** Action of element "sb-top" which show previous scrollableText page */
+ sbUp: function() {
- scrollableTextHeight: function() {
- return this.itemsOnPage * this.itemheight;
- }.property( 'itemsOnPage' ),
+ if (this.get('currentPage') > 0) {
+ this.set('currentPage', this.get('currentPage') - 1);
+ }
+ },
- /** Action of element "sb-top" which show previous scrollableText page */
- sbUp: function() {
- if( this.get( 'currentPage' ) > 0 ){
- this.set( 'currentPage', this.get( 'currentPage' ) - 1 );
- }
- },
+ /** Action of element "sb-bottom" which show previous scrollableText page */
+ sbDown: function() {
- /** Action of element "sb-bottom" which show previous scrollableText page */
- sbDown: function() {
- if( this.get( 'currentPage' ) < this.get( 'pageCount' ) - 1 ){
- this.set( 'currentPage', this.get( 'currentPage' ) + 1 );
- }
- },
+ if (this.get('currentPage') < this.get('pageCount') - 1) {
+ this.set('currentPage', this.get('currentPage') + 1);
+ }
+ },
- /** Scroll content according to current page */
- onCurrentPageChange: function() {
- this.set( 'scrollableTextScrollingAttributes', 'height: ' + this.scrollHeight + 'px; top: ' + ( this.get( 'currentPage' ) * this.itemsOnPage * ( -23 ) ) + 'px' );
- }.observes( 'currentPage' ),
+ /** Scroll content according to current page */
+ onCurrentPageChange: function() {
- /** Method for delete certain item from scrollableText */
- deleteItem: function( id ) {
- this.items.splice( id, 1 );
- this.scrollableText.refresh();
- },
+ this.set('scrollableTextScrollingAttributes', 'height: '
+ + this.scrollHeight + 'px; top: '
+ + (this.get('currentPage') * this.itemsOnPage * (-23)) + 'px');
+ }.observes('currentPage'),
+
+ /** Method for delete certain item from scrollableText */
+ deleteItem: function(id) {
+
+ this.items.splice(id, 1);
+ this.scrollableText.refresh();
+ },
- /** scrollableText components */
- childViews:
- [
+ /** scrollableText components */
+ childViews: [
'scrollbar',
// 'scrollableText'
],
- refreshTextArea: function() {
- if( this.get( 'childViews' )[1] ){
- this.get( 'childViews' ).removeObject( this.get( 'childViews' )[1] );
- }
+ refreshTextArea: function() {
- $( '#scrollableTextArea' ).height( 23 );
- this.set( 'scrollHeight', 23 );
- this.set( 'linesCount', 1 );
- this.set( 'currentPage', 0 );
+ if (this.get('childViews')[1]) {
+ this.get('childViews').removeObject(this.get('childViews')[1]);
+ }
- this.get( 'childViews' ).pushObject( Ember.TextArea.create( {
+ $('#scrollableTextArea').height(23);
+ this.set('scrollHeight', 23);
+ this.set('linesCount', 1);
+ this.set('currentPage', 0);
- classNames: 'scrollableTextArea',
+ this
+ .get('childViews')
+ .pushObject(Ember.TextArea
+ .create( {
- elementId: 'scrollableTextArea',
+ classNames: 'scrollableTextArea',
- scrollableTextStyleBinding: 'parentView.scrollableTextScrollingAttributes',
+ elementId: 'scrollableTextArea',
- attributeBindings:
- [
- 'scrollableTextStyle:style'
- ],
+ scrollableTextStyleBinding: 'parentView.scrollableTextScrollingAttributes',
- valueBinding: 'this.parentView.items',
+ attributeBindings: [
+ 'scrollableTextStyle:style'
+ ],
- actionDown: function() {
- return false;
- },
+ valueBinding: 'this.parentView.items',
- didInsertElement: function() {
- this.get( 'parentView' ).scrollableTextCount();
- }
- } ) );
- }.observes( 'items' ),
+ actionDown: function() {
- /** scrollableText view */
- scrollableText: Ember.TextArea.extend( {
+ return false;
+ },
- classNames: 'scrollableTextArea',
+ didInsertElement: function() {
- elementId: 'scrollableTextArea',
+ this.get('parentView').scrollableTextCount();
+ }
+ }));
+ }.observes('items'),
- scrollableTextStyleBinding: 'parentView.scrollableTextScrollingAttributes',
+ /** scrollableText view */
+ scrollableText: Ember.TextArea
+ .extend( {
- attributeBindings:
- [
- 'scrollableTextStyle:style'
- ],
+ classNames: 'scrollableTextArea',
- valueBinding: 'this.parentView.items',
+ elementId: 'scrollableTextArea',
- actionDown: function() {
- return false;
- },
+ scrollableTextStyleBinding: 'parentView.scrollableTextScrollingAttributes',
- didInsertElement: function() {
- this._parentView.scrollableTextCount();
- },
+ attributeBindings: [
+ 'scrollableTextStyle:style'
+ ],
+
+ valueBinding: 'this.parentView.items',
+
+ actionDown: function() {
+
+ return false;
+ },
+
+ didInsertElement: function() {
+
+ this._parentView.scrollableTextCount();
+ },
+
+ refresh: function() {
- refresh: function() {
- this.rerender();
- }.observes( '_parentView.items' )
+ this.rerender();
+ }.observes('_parentView.items')
- } ),
+ }),
- /** Scrollbar view */
- scrollbar: SDL.ScrollBar.extend( {
- currentPageBinding: 'parentView.currentPage',
- pageCountBinding: 'parentView.pageCount',
- scrollableTextHeightBinding: 'parentView.scrollableTextHeight',
- scrollBarIsDisabledBinding: 'parentView.disableScrollbar'
- } )
-} ); \ No newline at end of file
+ /** Scrollbar view */
+ scrollbar: SDL.ScrollBar.extend( {
+ currentPageBinding: 'parentView.currentPage',
+ pageCountBinding: 'parentView.pageCount',
+ scrollableTextHeightBinding: 'parentView.scrollableTextHeight',
+ scrollBarIsDisabledBinding: 'parentView.disableScrollbar'
+ })
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/controlls/sdl/PresetButton.js b/SDL_Core/src/components/HMI/app/controlls/sdl/PresetButton.js
deleted file mode 100755
index 9656bd127..000000000
--- a/SDL_Core/src/components/HMI/app/controlls/sdl/PresetButton.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.Button
- * @desc Universal button component for SDL application
- * @category Controlls
- * @filesource app/controlls/Button.js
- * @version 1.0
- */
-
-SDL.SDLPresetButton = SDL.Button.extend( {
- actionDown: function() {
- this._super();
-
- FFW.Buttons.buttonEvent( this.presetName, "BUTTONDOWN" );
- var self = this;
- this.time = 0;
- setTimeout( function() {
- self.time++;
- }, 1000 );
- },
-
- actionUp: function() {
- this._super();
-
- FFW.Buttons.buttonEvent( this.presetName, "BUTTONUP" );
-
- if( this.time > 0 ){
- FFW.Buttons.buttonPressed( this.presetName, "LONG" );
- }else{
- FFW.Buttons.buttonPressed( this.presetName, "SHORT" );
- }
- this.time = 0;
- }
-} ); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/mixins/PresetEventCustom.js b/SDL_Core/src/components/HMI/app/mixins/PresetEventCustom.js
index bdcf2cd2c..b28468e47 100644
--- a/SDL_Core/src/components/HMI/app/mixins/PresetEventCustom.js
+++ b/SDL_Core/src/components/HMI/app/mixins/PresetEventCustom.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -33,24 +32,26 @@
*/
SDL.PresetEventsCustom = Ember.Mixin.create( {
actionDown: function() {
+
this._super();
- SDL.SDLController.onSoftButtonActionDownCustom( this );
+ SDL.SDLController.onSoftButtonActionDownCustom(this);
},
actionUp: function() {
+
this._super();
- SDL.SDLController.onSoftButtonActionUpCustom( this );
- if( this.systemAction == 'DEFAULT_ACTION' ){
+ SDL.SDLController.onSoftButtonActionUpCustom(this);
+ if (this.systemAction == 'DEFAULT_ACTION') {
- SDL.SDLController.defaultActionSoftButton( this );
+ SDL.SDLController.defaultActionSoftButton(this);
- }else if( this.systemAction == 'STEAL_FOCUS' ){
+ } else if (this.systemAction == 'STEAL_FOCUS') {
- SDL.SDLController.stealFocusSoftButton( this );
+ SDL.SDLController.stealFocusSoftButton(this);
- }else if( this.systemAction == 'KEEP_CONTEXT' ){
+ } else if (this.systemAction == 'KEEP_CONTEXT') {
- SDL.SDLController.keepContextSoftButton( this );
+ SDL.SDLController.keepContextSoftButton(this);
}
}
-} ); \ No newline at end of file
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/mixins/PresetEvents.js b/SDL_Core/src/components/HMI/app/mixins/PresetEvents.js
index e7d2efb1b..08e58b6f3 100644
--- a/SDL_Core/src/components/HMI/app/mixins/PresetEvents.js
+++ b/SDL_Core/src/components/HMI/app/mixins/PresetEvents.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -33,11 +32,13 @@
*/
SDL.PresetEvents = Ember.Mixin.create( {
actionDown: function() {
+
this._super();
- SDL.SDLController.onSoftButtonActionDown( this );
+ SDL.SDLController.onSoftButtonActionDown(this);
},
actionUp: function() {
+
this._super();
- SDL.SDLController.onSoftButtonActionUp( this );
+ SDL.SDLController.onSoftButtonActionUp(this);
}
-} ); \ No newline at end of file
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/model/PhoneModel.js b/SDL_Core/src/components/HMI/app/model/PhoneModel.js
index 60ca55b4d..7273be7a9 100755..100644
--- a/SDL_Core/src/components/HMI/app/model/PhoneModel.js
+++ b/SDL_Core/src/components/HMI/app/model/PhoneModel.js
@@ -1,83 +1,88 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.PhoneModel
- * @desc Phone model
- * @category Model
- * @filesource app/model/PhoneModel.js
- * @version 1.0
- */
-
-SDL.PhoneModel = Em.Object.create( {
-
- /** Dial number */
- dialpadNumber: '',
-
- readyForCall: true,
-
- onCall: false,
-
- /** Text for phone status bar */
- statusModeText: null,
-
- /** Start call */
- dialCall: function() {
- if( this.dialpadNumber.length ){
- this.set( 'onCall', true );
- this.set( 'readyForCall', false );
- }
- },
-
- /** End call */
- endCall: function() {
- this.set( 'onCall', false );
- this.set( 'readyForCall', true );
- this.set( 'dialpadNumber', '' );
-
- this.set( 'statusModeText', null );
-
- if( SDL.SDLModel.phoneCall ){
- SDL.SDLModel.set( 'phoneCall', false );
- SDL.SDLController.getApplicationModel( SDL.SDLAppController.model.appId ).turnOnSDL();
- }
- },
-
- /** Add symbol to dial pad number */
- setDialpadNumber: function( key ) {
- if( this.dialpadNumber.length < 14 ){
- key = this.dialpadNumber + key;
- this.set( 'dialpadNumber', key );
- }
- },
-
- /** Delete last number symbol */
- deleteDialpadNumber: function() {
- if( this.dialpadNumber.length ){
- this.set( 'dialpadNumber', this.dialpadNumber.slice( 0, -1 ) );
- }
- }
-} ) \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.PhoneModel
+ * @desc Phone model
+ * @category Model
+ * @filesource app/model/PhoneModel.js
+ * @version 1.0
+ */
+
+SDL.PhoneModel = Em.Object.create( {
+
+ /** Dial number */
+ dialpadNumber: '',
+
+ readyForCall: true,
+
+ onCall: false,
+
+ /** Text for phone status bar */
+ statusModeText: null,
+
+ /** Start call */
+ dialCall: function() {
+
+ if (this.dialpadNumber.length) {
+ this.set('onCall', true);
+ this.set('readyForCall', false);
+ }
+ },
+
+ /** End call */
+ endCall: function() {
+
+ this.set('onCall', false);
+ this.set('readyForCall', true);
+ this.set('dialpadNumber', '');
+
+ this.set('statusModeText', null);
+
+ if (SDL.SDLModel.phoneCall) {
+ SDL.SDLModel.set('phoneCall', false);
+ SDL.SDLController
+ .getApplicationModel(SDL.SDLAppController.model.appID)
+ .turnOnSDL();
+ }
+ },
+
+ /** Add symbol to dial pad number */
+ setDialpadNumber: function(key) {
+
+ if (this.dialpadNumber.length < 14) {
+ key = this.dialpadNumber + key;
+ this.set('dialpadNumber', key);
+ }
+ },
+
+ /** Delete last number symbol */
+ deleteDialpadNumber: function() {
+
+ if (this.dialpadNumber.length) {
+ this.set('dialpadNumber', this.dialpadNumber.slice(0, -1));
+ }
+ }
+}) \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/model/abstract/RangedValue.js b/SDL_Core/src/components/HMI/app/model/abstract/RangedValue.js
index 9679a43f6..425e41806 100755..100644
--- a/SDL_Core/src/components/HMI/app/model/abstract/RangedValue.js
+++ b/SDL_Core/src/components/HMI/app/model/abstract/RangedValue.js
@@ -1,134 +1,137 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name Ranged Value
- * @desc Abstract ranged value class
- * @category Model
- * @filesource app/model/abstract/RangedValue.js
- * @version 1.0
- */
-
-SDL.RangedValue = Em.Object.extend( {
-
- range: 3,
- minValue: 1,
- value: 0,
- cycle: true,
- enabled: true,
-
- /**
- * @desc Cyclically increases seat value until it reaches the range value
- * than value is switched to off (0)
- */
- increase: function() {
- if( !this.enabled ){
- this.enable();
- return;
- }
-
- if( this.value < this.range ){
- this.set( 'value', this.value + 1 );
- }else{
- if( !this.cycle ){
- return;
- }
- this.set( 'value', 0 );
- }
- },
- /**
- * Toggle indicators one by one
- */
- toggleIndicators: function() {
- if( !this.enabled ){
- this.enable();
- return;
- }
-
- if( this.value < this.range - 1 ){
- this.set( 'value', this.value + 1 );
- }else{
- this.set( 'value', 0 );
- }
- },
- /**
- * @desc Cyclically increases seat value until it reaches zero value (off)
- * than value is changed to the range value
- */
- decrease: function() {
- if( !this.enabled ){
- this.enable();
- return;
- }
-
- if( this.value >= this.minValue ){
- if( !this.cycle && ( this.value == this.minValue ) ){
- return;
- }
- this.set( 'value', this.value - 1 );
- }else{
- this.set( 'value', this.range );
- }
- },
-
- /**
- * @desc Switch off
- */
- off: function() {
- this.set( 'beforeOff', this.value );
- this.set( 'value', 0 );
- },
-
- /**
- * Switch on
- */
- on: function() {
- this.set( 'value', this.range );
- },
-
- /**
- * Switch visual enable
- */
- enable: function() {
- this.set( 'enabled', true );
- },
-
- /**
- * Switch visual disable
- */
- disable: function() {
- this.set( 'enabled', false );
- },
-
- /**
- * Revert to value before toggle Off
- */
- revert: function() {
- if( this.beforeOff ){
- this.set( 'value', this.beforeOff );
- }
- }
-} ) \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name Ranged Value
+ * @desc Abstract ranged value class
+ * @category Model
+ * @filesource app/model/abstract/RangedValue.js
+ * @version 1.0
+ */
+
+SDL.RangedValue = Em.Object.extend( {
+
+ range: 3,
+ minValue: 1,
+ value: 0,
+ cycle: true,
+ enabled: true,
+
+ /**
+ * @desc Cyclically increases seat value until it reaches the range value
+ * than value is switched to off (0)
+ */
+ increase: function() {
+
+ if (!this.enabled) {
+ this.enable();
+ return;
+ }
+
+ if (this.value < this.range) {
+ this.set('value', this.value + 1);
+ } else {
+ if (!this.cycle) { return; }
+ this.set('value', 0);
+ }
+ },
+ /**
+ * Toggle indicators one by one
+ */
+ toggleIndicators: function() {
+
+ if (!this.enabled) {
+ this.enable();
+ return;
+ }
+
+ if (this.value < this.range - 1) {
+ this.set('value', this.value + 1);
+ } else {
+ this.set('value', 0);
+ }
+ },
+ /**
+ * @desc Cyclically increases seat value until it reaches zero value (off)
+ * than value is changed to the range value
+ */
+ decrease: function() {
+
+ if (!this.enabled) {
+ this.enable();
+ return;
+ }
+
+ if (this.value >= this.minValue) {
+ if (!this.cycle && (this.value == this.minValue)) { return; }
+ this.set('value', this.value - 1);
+ } else {
+ this.set('value', this.range);
+ }
+ },
+
+ /**
+ * @desc Switch off
+ */
+ off: function() {
+
+ this.set('beforeOff', this.value);
+ this.set('value', 0);
+ },
+
+ /**
+ * Switch on
+ */
+ on: function() {
+
+ this.set('value', this.range);
+ },
+
+ /**
+ * Switch visual enable
+ */
+ enable: function() {
+
+ this.set('enabled', true);
+ },
+
+ /**
+ * Switch visual disable
+ */
+ disable: function() {
+
+ this.set('enabled', false);
+ },
+
+ /**
+ * Revert to value before toggle Off
+ */
+ revert: function() {
+
+ if (this.beforeOff) {
+ this.set('value', this.beforeOff);
+ }
+ }
+}) \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/model/media/CDModel.js b/SDL_Core/src/components/HMI/app/model/media/CDModel.js
index fb41f732f..9ded512c5 100755..100644
--- a/SDL_Core/src/components/HMI/app/model/media/CDModel.js
+++ b/SDL_Core/src/components/HMI/app/model/media/CDModel.js
@@ -1,43 +1,43 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.CDModel
- * @desc CD Media data model
- * @category Model
- * @filesource app/model/media/CDModel.js
- * @version 1.0
- */
-
-SDL.CDModel = Em.Object.create( {
- active: true,
-
- statusBar: 'The Electric Broncos',
-
- init: function() {
- this.set( 'active', true );
- }
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.CDModel
+ * @desc CD Media data model
+ * @category Model
+ * @filesource app/model/media/CDModel.js
+ * @version 1.0
+ */
+
+SDL.CDModel = Em.Object.create( {
+ active: true,
+
+ statusBar: 'The Electric Broncos',
+
+ init: function() {
+
+ this.set('active', true);
+ }
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/model/sdl/AppModel.js b/SDL_Core/src/components/HMI/app/model/sdl/AppModel.js
index 1eee841c7..bece47231 100644
--- a/SDL_Core/src/components/HMI/app/model/sdl/AppModel.js
+++ b/SDL_Core/src/components/HMI/app/model/sdl/AppModel.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -32,259 +31,326 @@
* @version 1.0
*/
-SDL.SDLAppModel = Em.Object.extend( {
-
- /**
- * Application Id
- *
- * @type {Number}
- */
- appId: null,
-
- /**
- * Application name
- *
- * @type {String}
- */
- appName: '',
-
- /**
- * Chosen device name
- *
- * @type {String}
- */
- deviceName: '',
-
- /**
- * Statusbar text
- *
- * @type {String}
- */
- statusText: '',
-
- /**
- * Info data
- *
- * @type: {Em.Object}
- */
- appInfo: null,
-
- /**
- * Current language of applications UI component
- *
- * @type {String}
- */
- UILanguage: 'EN-US',
-
- /**
- * Current language of applications TTS and applications VR component
- *
- * @type {String}
- */
- TTSVRLanguage: 'EN-US',
-
- /**
- * Array of Soft Buttons
- *
- * @type {Array}
- */
- softButtons: [],
-
- /**
- * Array of Objects for TBTTurnList
- *
- * @type {Array}
- */
- turnList: [],
-
- /**
- * URL to application Icon
- *
- * @type {String}
- */
- appIcon: 'images/info/info_leftMenu_apps_ico.png',
-
- /**
- * Application commands list
- *
- * @type {Array}
- */
- commandsList: [],
-
- /**
- * Return current menu commands
- *
- * @return {Array}
- */
- currentCommandsList: function() {
- return this.get( 'commandsList' ).filterProperty( 'parent', this.get( 'currentSubMenuId' ) );
- }.property( 'this.commandsList.@each', 'this.currentSubMenuId' ),
-
- /**
- * Current command submenu identificator
- *
- * @type {Number}
- */
- currentSubMenuId: 0,
-
- /**
- * Return current submenu name
- *
- * @return {String}
- */
- currentSubMenuLabel: function() {
- var submenu = this.get( 'commandsList' ).filterProperty( 'menuId', this.get( 'currentSubMenuId' ) );
- return submenu.length ? submenu[0].name : 'Options';
- }.property( 'this.currentSubMenuId' ),
-
- /**
- * Interaction chooses data
- *
- * @type {Object}
- */
- interactionChoices: {},
-
- /**
- * Update Soft Buttons will handle on command Show
- *
- * @param {Array}
- */
- updateSoftButtons: function( buttons ) {
- // delete existing buttons from array
- this.softButtons.splice( 0 );
-
- // push new buttons to array
- this.get( 'softButtons' ).pushObjects( buttons );
- },
-
- /**
- * Add command to list
- *
- * @param {Object}
- */
- addCommand: function( params ) {
-
- this.get( 'commandsList' ).pushObject( {
- commandId: params.cmdId,
- name: params.menuParams.menuName,
- parent: params.menuParams.parentID ? params.menuParams.parentID : 0,
- position: params.menuParams.position,
- icon: params.cmdIcon ? params.cmdIcon.value : null
- } );
- },
-
- /**
- * Delete command from list
- *
- * @param {Number}
- */
- deleteCommand: function( commandId ) {
-
- this.get( 'commandsList' ).removeObjects( this.get( 'commandsList' ).filterProperty( 'commandId', commandId ) );
- },
-
- /**
- * Add submenu to commands list
- *
- * @param {Object}
- */
- addSubMenu: function( params ) {
-
- this.get( 'commandsList' ).pushObject( {
- menuId: params.menuId,
- name: params.menuName,
- parent: 0,
- position: params.position
- } );
- },
-
- /**
- * Delete submenu and related commands from list
- *
- * @param {Number}
- */
- deleteSubMenu: function( menuId ) {
-
- // don't delete if current submenu active
- if( this.get( 'currentSubMenuId' ) == menuId ){
- return 'IN_USE';
- // SDL.SDLAppController.onSubMenu(0);
- }
+SDL.SDLAppModel = Em.Object.extend({
+
+ /**
+ * List of subscribed data on VehicleInfo model
+ *
+ * @type {Object}
+ */
+ subscribedData: {},
+
+ /**
+ * Application's container for current processed requests on HMI
+ *
+ * @type {Object}
+ */
+ activeRequests: {},
+
+ /**
+ * Application Id
+ *
+ * @type {Number}
+ */
+ appID: null,
+
+ /**
+ * Application name
+ *
+ * @type {String}
+ */
+ appName: '',
+
+ /**
+ * Navigation streaming url
+ */
+ navigationStream: null,
+
+ /**
+ * Navigation streaming url
+ */
+ navigationAudioStream: null,
+
+ /**
+ * Chosen device name
+ *
+ * @type {String}
+ */
+ deviceName: '',
+
+ /**
+ * Global properties for current application
+ *
+ * @type {Object}
+ */
+ globalProperties: {},
+
+ /**
+ * Statusbar text
+ *
+ * @type {String}
+ */
+ statusText: '',
+
+ /**
+ * Info data
+ *
+ * @type: {Em.Object}
+ */
+ appInfo: null,
+
+ /**
+ * Current language of applications UI component
+ *
+ * @type {String}
+ */
+ UILanguage: 'EN-US',
+
+ /**
+ * Current language of applications TTS and applications VR component
+ *
+ * @type {String}
+ */
+ TTSVRLanguage: 'EN-US',
+
+ /**
+ * Array of Soft Buttons
+ *
+ * @type {Array}
+ */
+ softButtons: [],
+
+ /**
+ * Array of Objects for TBTTurnList
+ *
+ * @type {Array}
+ */
+ turnList: [],
+
+ /**
+ * URL to application Icon
+ *
+ * @type {String}
+ */
+ appIcon: 'images/info/info_leftMenu_apps_ico.png',
+
+ /**
+ * Application commands list
+ *
+ * @type {Array}
+ */
+ commandsList: {
+ 0: []
+ },
+
+ /**
+ * Flag to open ShowConstantTBTview when entering to current screen
+ *
+ * @type {Boolean}
+ */
+ tbtActivate: false,
+
+ /**
+ * Return current menu commands
+ *
+ * @return {Array}
+ */
+ currentCommandsList: function () {
+
+ return this.get('commandsList.' + this.get('currentSubMenuId'));
+ }.property('this.currentSubMenuId'),
+
+ /**
+ * Current command submenu identificator
+ *
+ * @type {Number}
+ */
+ currentSubMenuId: 'top',
+
+ /**
+ * Return current submenu name
+ *
+ * @return {String}
+ */
+ currentSubMenuLabel: function () {
+
+ //Param "top" is Top level menu index
+ var submenu, commands = this.commandsList["top"];
+
+ for (var i = 0; i < commands.length; i++) {
+ if (commands[i].menuID == this.currentSubMenuId) {
+ submenu = commands[i].name;
+ }
+ }
- // remove submenu
- this.get( 'commandsList' ).removeObjects( this.get( 'commandsList' ).filterProperty( 'menuId', menuId ) );
+ return this.get('currentSubMenuId') != 'top' ? submenu : 'Options';
+ }.property('this.currentSubMenuId'),
+
+ /**
+ * Interaction chooses data
+ *
+ * @type {Object}
+ */
+ interactionChoices: {},
+
+ /**
+ * Update Soft Buttons will handle on command Show
+ *
+ * @param {Array}
+ */
+ updateSoftButtons: function (buttons) {
+
+ // delete existing buttons from array
+ this.softButtons.splice(0);
+
+ // push new buttons to array
+ this.get('softButtons').pushObjects(buttons);
+ },
+
+ /**
+ * Add command to list
+ *
+ * @param {Object}
+ */
+ addCommand: function (request) {
+
+ var parentID = request.params.menuParams.parentID >= 0 ? request.params.menuParams.parentID : 'top';
+
+ if (!this.get('commandsList.' + parentID)) {
+ this.commandsList[parentID] = [];
+ }
- // remove commands from deleted submenu
- this.get( 'commandsList' ).removeObjects( this.get( 'commandsList' ).filterProperty( 'parent', menuId ) );
+ var commands = this.get('commandsList.' + parentID);
- return 'SUCCESS';
- },
+ // Magic number is limit of 1000 commands added on one menu
+ if (commands.length <= 999) {
- /**
- * SDL UI PreformInteraction response handeler open Perform Interaction
- * screen and show choices
- *
- * @param {Object} message
- * @param {Number} performInteractionRequestId
- */
- onPreformInteraction: function( message, performInteractionRequestId ) {
+ commands[commands.length] = {
+ commandID: request.params.cmdID,
+ name : request.params.menuParams.menuName,
+ parent : parentID,
+ position : request.params.menuParams.position ? request.params.menuParams.position : 0,
+ icon : request.params.cmdIcon ? request.params.cmdIcon.value : null
+ };
- var i = 0, length = message.interactionChoiceSetIDList.length;
+ if (SDL.SDLController.getApplicationModel(request.params.appID) && SDL.OptionsView.active) {
+ SDL.SDLAppController.buttonsSort(parentID, this.appID);
+ SDL.OptionsView.commands.refreshItems();
+ }
- SDL.InteractionChoicesView.clean();
+ console.log(commands.length);
+ FFW.UI.sendUIResult(SDL.SDLModel.resultCode["SUCCESS"], request.id, request.method);
+ } else {
+ FFW.UI.sendError(SDL.SDLModel.resultCode["REJECTED"], request.id, request.method, 'Adding more than 1000 item to the top menu or to submenu is not allowed.');
+ }
- for( i = 0; i < length; i++ ){
- var choiceSetId = message.interactionChoiceSetIDList[i];
- SDL.InteractionChoicesView.preformChoices( this.interactionChoices[choiceSetId], performInteractionRequestId, message.timeout );
+ },
+
+ /**
+ * Delete command from list
+ *
+ * @param {Number}
+ */
+ deleteCommand: function (commandID, requestID) {
+
+ for (var i in this.commandsList) {
+ if (this.commandsList[i].filterProperty('commandID', commandID).length) {
+ if (i != this.currentSubMenuId || this.currentSubMenuId == 'top') {
+ this.get('commandsList.' + i).removeObjects(this.get('commandsList.' + i).filterProperty('commandID', commandID));
+ SDL.SDLModel.deleteCommandResponse(SDL.SDLModel.resultCode["SUCCESS"], requestID);
+ return;
+ } else {
+ SDL.SDLModel.deleteCommandResponse(SDL.SDLModel.resultCode["IN_USE"], requestID);
+ return;
+ }
+ }
+ }
+ },
+
+ /**
+ * Add submenu to commands list
+ *
+ * @param {Object}
+ */
+ addSubMenu: function (request) {
+
+ // parentID is equal to 'top' cause Top level menu ID
+ var parentID = 'top';
+
+ var commands = this.get('commandsList.' + parentID);
+
+ // Magic number is limit of 1000 commands added on one menu
+ if (commands.length <= 999) {
+
+ this.commandsList[request.params.menuID] = [];
+ commands[commands.length] = {
+ menuID : request.params.menuID,
+ name : request.params.menuParams.menuName ? request.params.menuParams.menuName : '',
+ parent : 0,
+ position: request.params.menuParams.position ? request.params.menuParams.position : 0
+ };
+
+ if (SDL.SDLController.getApplicationModel(request.params.appID) && SDL.OptionsView.active) {
+ SDL.SDLAppController.buttonsSort(parentID, this.appID);
+ SDL.OptionsView.commands.refreshItems();
+ }
+
+ FFW.UI.sendUIResult(SDL.SDLModel.resultCode["SUCCESS"], request.id, request.method);
+ } else {
+ FFW.UI.sendError(SDL.SDLModel.resultCode["REJECTED"], request.id, request.method, 'Adding more than 1000 item to the top menu or to submenu is not allowed.');
+ }
+ },
+
+ /**
+ * Delete submenu and related commands from list
+ *
+ * @param {Number}
+ */
+ deleteSubMenu: function (menuID) {
+
+ if (this.commandsList['top'].filterProperty('commandID', menuID)) {
+ this.get('commandsList.top').removeObjects(this.get('commandsList.top').filterProperty('menuID', menuID));
+ delete(this.commandsList[menuID]);
+ }
- SDL.VRPopUp.CreateInteractionChoise( this.interactionChoices[choiceSetId], performInteractionRequestId );
- }
+ return SDL.SDLModel.resultCode['SUCCESS'];
+ },
- SDL.InteractionChoicesView.activate( message.initialText );
-
- // Show Initial prompt
- SDL.SDLModel.onPrompt( message.initialPrompt );
- },
-
- /**
- * SDL UI CreateInteraction response handeler push set of commands to voice
- * recognition list
- *
- * @param {Object}
- */
- onCreateInteraction: function( message ) {
-
- this.interactionChoices[message.interactionChoiceSetID] = message.choiceSet;
-
- },
-
- /**
- * SDL UI DeleteInteraction response handeler close current interaction set
- * window (if opened) and delete current set commands from voice recognition
- * list
- *
- * @param {Object}
- */
- onDeleteInteraction: function( message ) {
- delete this.interactionChoices[message.interactionChoiceSetID];
- },
-
- /**
- * SDL UI Slider response handeler open Slider window with received
- * parameters
- *
- * @param {Object}
- */
- onSlider: function( message ) {
-
- SDL.SliderView.loadData( message );
-
- SDL.SliderView.activate( this.appName );
-
- setTimeout( function() {
- if( SDL.SliderView.active ){
- SDL.SliderView.deactivate();
- }
- }, message.params.timeout );
- }
-} );
+ /**
+ * SDL UI CreateInteraction response handeler push set of commands to
+ * voice recognition list
+ *
+ * @param {Object}
+ */
+ onCreateInteraction: function (message) {
+
+ this.interactionChoices[message.interactionChoiceSetID] = message.choiceSet;
+
+ },
+
+ /**
+ * SDL UI DeleteInteraction response handeler close current interaction
+ * set window (if opened) and delete current set commands from voice
+ * recognition list
+ *
+ * @param {Object}
+ */
+ onDeleteInteraction: function (message) {
+
+ delete this.interactionChoices[message.interactionChoiceSetID];
+ },
+
+ /**
+ * SDL UI Slider response handeler open Slider window with received
+ * parameters
+ *
+ * @param {Object}
+ */
+ onSlider: function (message) {
+
+ SDL.SliderView.loadData(message);
+
+ SDL.SliderView.activate(this.appName, message.params.timeout);
+
+ }
+ });
diff --git a/SDL_Core/src/components/HMI/app/model/sdl/MediaModel.js b/SDL_Core/src/components/HMI/app/model/sdl/MediaModel.js
index d90a79efb..da1a6cfd9 100755..100644
--- a/SDL_Core/src/components/HMI/app/model/sdl/MediaModel.js
+++ b/SDL_Core/src/components/HMI/app/model/sdl/MediaModel.js
@@ -31,226 +31,323 @@
* @version 1.0
*/
-SDL.SDLMediaModel = SDL.SDLAppModel.extend( {
+SDL.SDLMediaModel = SDL.SDLAppModel.extend({
- init: function() {
+ init: function () {
- this._super();
+ this._super();
- // init properties here
- this.set( 'appInfo', Em.Object.create( {
- field1: '<field1>',
- field2: '<field2>',
- field3: '<field3>',
- mediaClock: '<mediaClock>',
- trackIcon: 'images/sdl/audio_icon.jpg',
- customPresets:
- [
+ var subscribeVIData = {};
+
+ for (var key in SDL.SDLVehicleInfoModel.vehicleData) {
+ subscribeVIData[key] = false;
+ }
+
+ this.set('subscribedData', subscribeVIData);
+
+ // init properties here
+ this.set('appInfo', Em.Object.create({
+ field1 : '<field1>',
+ field2 : '<field2>',
+ field3 : '<field3>',
+ mediaClock : '<mediaClock>',
+ trackIcon : 'images/sdl/audio_icon.jpg',
+ customPresets: [
+ '<no definition>',
+ '<no definition>',
'<no definition>',
'<no definition>',
'<no definition>',
'<no definition>',
'<no definition>',
'<no definition>'
- ]
- } ) );
-
- this.set( 'isPlaying', true );
-
- this.set( 'commandsList', [] );
- this.set( 'softButtons', [] );
- },
-
- /**
- * Flag for media playing state
- *
- * @param {Boolean}
- */
- isPlaying: false,
-
- /**
- * Flag for model active state currently used for status bar
- *
- * @param {Boolean}
- */
- active: false,
-
- /**
- * Timer for Media Clock
- */
- timer: null,
-
- /**
- * Current sdl Sub Menu identificator
- */
- currentSDLSubMenuid: null,
-
- /**
- * Current sdl Perform Interaction Choise identificator
- */
- currentSDLPerformInteractionChoiseId: null,
-
- countUp: true,
- pause: false,
- maxTimeValue: 68400, // 19 hours
- duration: 0,
- currTime: 0,
-
- /**
- * Method hides sdl activation button and sdl application
- *
- * @param {Number}
- */
- onDeleteApplication: function( appId ) {
- SDL.SDLMediaController.onDeleteApplication( appId );
- },
-
- /**
- * Activate current application model
- */
- turnOnSDL: function() {
- SDL.SDLMediaController.activateApp( this );
- },
-
- startTimer: function() {
-
- var self = this;
-
- if( !this.pause ){
- this.timer = setInterval( function() {
- self.set( 'currTime', self.currTime + 1 );
- }, 1000 );
- }else{
- clearInterval( this.timer );
- }
- }.observes( 'this.pause' ),
+ ],
+ alignment : "text-align:center"
+ }));
+
+ this.set('activeRequests', Em.Object.create({
+ uiPerformInteraction: null
+ }));
+
+ this.set('tbtActivate', false);
+ this.set('isPlaying', true);
+ this.set('globalProperties.helpPrompt', []);
+ this.set('globalProperties.timeoutPrompt', []);
+ this.set('globalProperties.keyboardProperties', Em.Object.create());
+ this.set('globalProperties.keyboardProperties.keyboardLayout', 'QWERTY');
+ this.set('globalProperties.keyboardProperties.limitedCharacterList', []);
+
+ this.set('commandsList', {"top": []});
+ this.set('softButtons', []);
+ },
+
+ /**
+ * Parameter for presets for Media App to show presets on media screen
+ *
+ * @type bool
+ */
+ mediaPreset: false,
+
+ /**
+ * Flag for media playing state
+ *
+ * @param {Boolean}
+ */
+ isPlaying: false,
+
+ /**
+ * Flag for model active state currently used for status bar
+ *
+ * @param {Boolean}
+ */
+ active: false,
+
+ /**
+ * Timer for Media Clock
+ */
+ timer: null,
+
+ /**
+ * Current sdl Sub Menu identificator
+ */
+ currentSDLSubMenuid: null,
+
+ /**
+ * Current sdl Perform Interaction Choise identificator
+ */
+ currentSDLPerformInteractionChoiseId: null,
+
+ countUp : true,
+ pause : null,
+ maxTimeValue: 68400, // 19 hours
+ duration : 0,
+ currTime : 0,
+
+ /**
+ * Method hides sdl activation button and sdl application
+ *
+ * @param {Number}
+ */
+ onDeleteApplication: function (appID) {
+
+ SDL.SDLMediaController.onDeleteApplication(appID);
+ },
+
+ /**
+ * Activate current application model
+ */
+ turnOnSDL: function () {
+
+ SDL.SDLMediaController.activateApp(this);
+ },
+
+ startTimer: function () {
+
+ var self = this;
+
+ if (this.pause === false) {
+ this.timer = setInterval(function () {
+
+ self.set('currTime', self.currTime + 1);
+ }, 1000);
+ } else {
+ clearInterval(this.timer);
+ }
+ }.observes('this.pause'),
+
+ stopTimer: function () {
+
+ clearInterval(this.timer);
+ this.pause = null;
+ this.appInfo.set('mediaClock', '');
+ },
+
+ setDuration: function () {
+
+ var number, str = '', hrs = 0, min = 0, sec = 0;
+ if (this.countUp) {
+ number = this.duration + this.currTime;
+ } else {
+ if (this.duration <= this.currTime) {
+ clearInterval(this.timer);
+ this.currTime = 0;
+ this.appInfo.set('mediaClock', '00:00:00');
+ return;
+ }
+ number = this.duration - this.currTime;
+ }
- stopTimer: function() {
- clearInterval( this.timer );
- this.appInfo.set( 'mediaClock', '' );
- },
+ hrs = parseInt(number / 3600), // hours
+ min = parseInt(number / 60) % 60, // minutes
+ sec = number % 60; // seconds
- setDuration: function() {
+ str = (hrs < 10 ? '0' : '') + hrs + ':';
+ str += (min < 10 ? '0' : '') + min + ":";
+ str += (sec < 10 ? '0' : '') + sec;
+ this.appInfo.set('mediaClock', str);
- var number, str = '', hrs = 0, min = 0, sec = 0;
- if( this.countUp ){
- number = this.duration + this.currTime;
- }else{
- number = this.duration - this.currTime;
- }
+ if (!this.get('countUp') && this.duration == this.currTime) {
+ clearInterval(this.timer);
+ return;
+ }
- hrs = parseInt( number / 3600 ), // hours
- min = parseInt( number / 60 ) % 60, // minutes
- sec = number % 60; // seconds
+ }.observes('this.currTime'),
- str = ( hrs < 10 ? '0' : '' ) + hrs + ':';
- str += ( min < 10 ? '0' : '' ) + min + ":";
- str += ( sec < 10 ? '0' : '' ) + sec;
- this.appInfo.set( 'mediaClock', str );
+ changeDuration: function () {
- if( !this.get( 'countUp' ) && this.duration == this.currTime ){
- clearInterval( this.timer );
- return;
- }
+ clearInterval(this.timer);
+ this.currTime = -1;
+ this.startTimer();
+ }.observes('this.duration'),
- }.observes( 'this.currTime' ),
+ /**
+ * SDL Setter for Media Clock Timer
+ *
+ * @param {Object}
+ */
+ sdlSetMediaClockTimer: function (params) {
- changeDuration: function() {
- clearInterval( this.timer );
- this.currTime = 0;
- this.startTimer();
- }.observes( 'this.duration' ),
+ if ((params.updateMode == "PAUSE" && this.pause) || (params.updateMode == "RESUME" && !this.pause) || ((params.updateMode == "RESUME" || params.updateMode == "PAUSE") && this.pause === null )) {
+ return SDL.SDLModel.resultCode['IGNORED'];
+ }
- /**
- * SDL Setter for Media Clock Timer
- *
- * @param {Object}
- */
- sdlSetMediaClockTimer: function( params ) {
+ if (params.updateMode == "CLEAR") {
+ this.stopTimer();
+ return SDL.SDLModel.resultCode['SUCCESS'];
+ }
- if( ( params.updateMode == "PAUSE" && this.pause ) || ( params.updateMode == "RESUME" && !this.pause ) ){
- return 'IGNORED';
- }
+ if (params.updateMode == "PAUSE") {
+ this.set('pause', true);
+ } else if (params.updateMode == "RESUME") {
+ this.set('pause', false);
+ } else {
+ if (params.startTime) {
+ this.set('countUp', params.updateMode == "COUNTUP" ? true : false);
+ this.set('duration', null);
+ this.set('duration', params.startTime.hours * 3600 + params.startTime.minutes * 60 + params.startTime.seconds);
+ }
+ this.set('pause', false);
+ }
- if( params.updateMode == "CLEAR" ){
- this.stopTimer();
- return 'SUCCESS';
- }
+ return SDL.SDLModel.resultCode['SUCCESS'];
+ },
+
+ /**
+ * Method to clear App OverLay
+ */
+ clearAppOverLay: function () {
+
+ clearInterval(this.timer);
+ this.appInfo.set('field1', '');
+ this.appInfo.set('field2', '');
+ this.appInfo.set('field3', '');
+ this.appInfo.set('field4', '');
+ this.appInfo.set('alignment', '');
+ this.set('statusText', '');
+ this.appInfo.set('mediaClock', '');
+ this.appInfo.set('mediaTrack', '');
+ this.appInfo.set('trackIcon', 'images/sdl/audio_icon.jpg');
+ this.updateSoftButtons();
+ for (i = 0; i < 6; i++) {
+ this.appInfo.set('customPresets.' + i, '');
+ }
+ this.set('mediaPreset', false);
+
+ },
+
+ /**
+ * Applin UI Show handler
+ *
+ * @param {Object}
+ */
+ onSDLUIShow: function (params) {
+
+ clearInterval(this.timer);
+
+ for (var i = 0; i < params.showStrings.length; i++) {
+ switch (params.showStrings[i].fieldName) {
+ case 'mainField1':
+ {
+ this.appInfo.set('field1', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'mainField2':
+ {
+ this.appInfo.set('field2', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'mainField3':
+ {
+ this.appInfo.set('field3', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'mainField4':
+ {
+ this.appInfo.set('field4', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'statusBar':
+ {
+ this.set('statusText', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'mediaClock':
+ {
+ this.appInfo.set('mediaClock', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'mediaTrack':
+ {
+ this.appInfo.set('mediaTrack', params.showStrings[i].fieldText);
+ break;
+ }
+ default :
+ {
+ break;
+ }
+ }
+ }
- if( params.updateMode == "PAUSE" ){
- this.set( 'pause', true );
- }else if( params.updateMode == "RESUME" ){
- this.set( 'pause', false );
- }else{
- if( params.startTime ){
- this.set( 'countUp', params.updateMode == "COUNTUP" ? true : false );
- this.set( 'duration', 0 );
- this.set( 'duration', params.startTime.hours * 3600 + params.startTime.minutes * 60 + params.startTime.seconds );
+ if (params.alignment) {
+ switch (params.alignment) {
+ case "CENTERED":
+ {
+ this.appInfo.set('alignment', "text-align:center");
+ break;
+ }
+ case "LEFT_ALIGNED":
+ {
+ this.appInfo.set('alignment', "text-align:left");
+ break;
+ }
+ case "RIGHT_ALIGNED":
+ {
+ this.appInfo.set('alignment', "text-align:right");
+ break;
+ }
+ }
}
- this.set( 'pause', false );
- }
- return 'SUCCESS';
- },
-
- /**
- * Method to clear App OverLay
- */
- clearAppOverLay: function() {
-
- clearInterval( this.timer );
- this.appInfo.set( 'field1', '' );
- this.appInfo.set( 'field2', '' );
- this.appInfo.set( 'field3', '' );
- this.appInfo.set( 'field4', '' );
- this.appInfo.set( 'alignment', '' );
- this.set( 'statusText', '' );
- this.appInfo.set( 'mediaClock', '' );
- this.appInfo.set( 'mediaTrack', '' );
- this.appInfo.set( 'trackIcon', 'images/sdl/audio_icon.jpg' );
- this.updateSoftButtons();
- for( i = 0; i < 6; i++ ){
- this.appInfo.set( 'customPresets.' + i, '' );
- }
- SDL.SDLModel.set( 'protocolVersion2State', false );
-
- },
-
- /**
- * Applin UI Show handler
- *
- * @param {Object}
- */
- onSDLUIShow: function( params ) {
- clearInterval( this.timer );
- this.appInfo.set( 'field1', params.mainField1 );
- this.appInfo.set( 'field2', params.mainField2 );
- this.appInfo.set( 'field3', params.mainField3 );
- this.appInfo.set( 'field4', params.mainField4 );
- this.appInfo.set( 'alignment', params.alignment );
- this.set( 'statusText', params.statusBar );
- this.appInfo.set( 'mediaClock', params.mediaClock );
- this.appInfo.set( 'mediaTrack', params.mediaTrack );
- if( params.graphic ){
- this.appInfo.set( 'trackIcon', params.graphic );
- }else{
- this.appInfo.set( 'trackIcon', 'images/sdl/audio_icon.jpg' );
- }
+ if (params.graphic) {
+ this.appInfo.set('trackIcon', params.graphic.value);
+ } else {
+ this.appInfo.set('trackIcon', 'images/sdl/audio_icon.jpg');
+ }
- this.updateSoftButtons( params.softButtons );
+ this.updateSoftButtons(params.softButtons);
- if( params.customPresets ){
- var i = 0;
- for( i = 0; i < 6; i++ ){
- if( params.customPresets[i] != '' || params.customPresets[i] != null ){
- this.appInfo.set( 'customPresets.' + i, params.customPresets[i] );
- }else{
- this.appInfo.set( 'customPresets.' + i, '' );
+ // Magic number is a count of Preset Buttons on HMI = 6
+ if (params.customPresets) {
+ for (var i = 0; i < 8; i++) {
+ if (params.customPresets[i] != '' || params.customPresets[i] != null) {
+ this.appInfo.set('customPresets.' + i, params.customPresets[i]);
+ } else {
+ this.appInfo.set('customPresets.' + i, 'Preset' + i);
+ }
}
+ this.set('mediaPreset', true);
+ } else {
+ this.set('mediaPreset', false);
}
- SDL.SDLModel.set( 'protocolVersion2State', true );
- }else{
- SDL.SDLModel.set( 'protocolVersion2State', false );
}
- }
-} ); \ No newline at end of file
+ });
diff --git a/SDL_Core/src/components/HMI/app/model/sdl/Model.js b/SDL_Core/src/components/HMI/app/model/sdl/Model.js
index 40edaf7ea..53bb9793e 100644
--- a/SDL_Core/src/components/HMI/app/model/sdl/Model.js
+++ b/SDL_Core/src/components/HMI/app/model/sdl/Model.js
@@ -1,17 +1,16 @@
/*
* Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -32,354 +31,709 @@
* @version 1.0
*/
-SDL.SDLModel = Em.Object.create( {
+SDL.SDLModel = Em.Object.create({
+
+ /**
+ * Data came from UI.PerformInteractionRequest for ShowVRHelpItems popup
+ *
+ * @type {Object}
+ */
+ interactionData: {
+ 'vrHelpTitle': null,
+ 'vrHelp': null
+ },
+
+ /**
+ * IScroll object to manage scroll on PerformInteraction view
+ *
+ * @type {Object}
+ */
+ interactionListWrapper: null,
+
+ /**
+ * TimeStamp of current started HMI session
+ *
+ * @type {Number}
+ */
+ timeStamp: null,
+
+ /**
+ * Video player object for navigationApp
+ *
+ * @type {Object}
+ */
+ naviVideo: null,
/**
* Flag to indicate AudioPassThruPopUp activity
- *
- * @param {Boolean}
+ *
+ * @type {Boolean}
*/
AudioPassThruState: false,
/**
+ * Current device information
+ *
+ * @type {Object}
+ */
+ CurrDeviceInfo: {
+ "name": null,
+ "id": null
+ },
+
+ /**
* Driver Distraction State
- *
+ *
* @type bool
*/
driverDistractionState: false,
/**
* Flag to sent Send Data extended params
- *
- * @param {Boolean}
+ *
+ * @type {Boolean}
*/
sendDataExtend: false,
/**
- * Protocol Version 2 State
- *
- * @type bool
+ * VR active status
+ *
+ * @type {Boolean}
*/
- protocolVersion2State: false,
+ VRActive: false,
/**
* Flag to be set true when phone call is initialised
- *
- * @param {Boolean}
+ *
+ * @type {Boolean}
*/
phoneCall: false,
/**
- * Default values for global properties
+ * Device list search progress flag
+ *
+ * @param {Boolean}
*/
- globalPropertiesDefault: {
- helpPrompt:
- [
- {
- "text": "Some text for help prompt",
- "type": "TEXT"
- }
- ],
+ deviceSearchProgress: false,
- timeoutPrompt:
- [
- {
- "text": "Some text for timeout prompt",
- "type": "TEXT"
- }
- ]
- },
+ /**
+ * Flag to be set true when VRHelpList are activated
+ *
+ * @param {Boolean}
+ */
+ VRHelpListActivated: false,
+
+ /**
+ * Flag to be set true when VRHelpList are activated
+ *
+ * @type {String}
+ */
+ keyboardInputValue: "",
/**
* List of states for OnTBTClientState notification
*/
- tbtClientStates:
- [
+ tbtClientStates: [
+ {
+ name: "ROUTE_UPDATE_REQUEST",
+ id: 0
+ }, {
+ name: "ROUTE_ACCEPTED",
+ id: 1
+ }, {
+ name: "ROUTE_REFUSED",
+ id: 2
+ }, {
+ name: "ROUTE_CANCELLED",
+ id: 3
+ }, {
+ name: "ETA_REQUEST",
+ id: 4
+ }, {
+ name: "NEXT_TURN_REQUEST",
+ id: 5
+ }, {
+ name: "ROUTE_STATUS_REQUEST",
+ id: 6
+ }, {
+ name: "ROUTE_SUMMARY_REQUEST",
+ id: 7
+ }, {
+ name: "TRIP_STATUS_REQUEST",
+ id: 8
+ }, {
+ name: "ROUTE_UPDATE_REQUEST_TIMEOUT",
+ id: 9
+ }
+ ],
+ /**
+ * List of states for ExitApplication notification
+ */
+ exitAppState: [
+ {
+ name: "IGNITION_OFF",
+ id : 0
+ },
+ {
+ name: "MASTER_RESET",
+ id : 1
+ },
+ {
+ name: "FACTORY_DEFAULTS",
+ id : 2
+ }
+ ],
+
+ /**
+ * Data for AudioPassThruPopUp that contains params for visualisation
+ *
+ * @type {Object}
+ */
+ AudioPassThruData: {},
+
+ /**
+ * Enum with result codes for RPC
+ */
+ resultCode: {
+ "SUCCESS" : 0,
+ "UNSUPPORTED_REQUEST" : 1,
+ "UNSUPPORTED_RESOURCE" : 2,
+ "DISALLOWED" : 3,
+ "REJECTED" : 4,
+ "ABORTED" : 5,
+ "IGNORED" : 6,
+ "RETRY" : 7,
+ "IN_USE" : 8,
+ "DATA_NOT_AVAILABLE" : 9,
+ "TIMED_OUT" : 10,
+ "INVALID_DATA" : 11,
+ "CHAR_LIMIT_EXCEEDED" : 12,
+ "INVALID_ID" : 13,
+ "DUPLICATE_NAME" : 14,
+ "APPLICATION_NOT_REGISTERED": 15,
+ "WRONG_LANGUAGE" : 16,
+ "OUT_OF_MEMORY" : 17,
+ "TOO_MANY_PENDING_REQUESTS" : 18,
+ "NO_APPS_REGISTERED" : 19,
+ "NO_DEVICES_CONNECTED" : 20,
+ "WARNINGS" : 21,
+ "GENERIC_ERROR" : 22,
+ "USER_DISALLOWED" : 23
+ },
+
+
+
+ /**
+ * Info navigationApp data for ShowConstantTBT request
+ *
+ * @type: {Object}
+ */
+ constantTBTParams: {
+ "navigationTexts":[
{
- name: "ROUTE_UPDATE_REQUEST",
- id: 0
+ "fieldName": "navigationText1",
+ "fieldText": "mainField1"
},
{
- name: "ROUTE_ACCEPTED",
- id: 1
+ "fieldName": "navigationText2",
+ "fieldText": "mainField2"
},
{
- name: "ROUTE_REFUSED",
- id: 2
+ "fieldName": "ETA",
+ "fieldText": "mainField3"
},
{
- name: "ROUTE_CANCELLED",
- id: 3
+ "fieldName": "totalDistance",
+ "fieldText": "mainField4"
},
{
- name: "ETA_REQUEST",
- id: 4
+ "fieldName": "navigationText",
+ "fieldText": "mainField5"
},
{
- name: "NEXT_TURN_REQUEST",
- id: 5
- },
+ "fieldName": "timeToDestination",
+ "fieldText": "mainField6"
+ }
+ ],
+ "softButtons": [
{
- name: "ROUTE_STATUS_REQUEST",
- id: 6
+ "text" : "Menu",
+ "isHighlighted" : true,
+ "softButtonID" : 1
},
{
- name: "ROUTE_SUMMARY_REQUEST",
- id: 7
+ "text" : "Custom button",
+ "isHighlighted" : false,
+ "softButtonID" : 2
},
{
- name: "TRIP_STATUS_REQUEST",
- id: 8
+ "text" : "+",
+ "isHighlighted" : true,
+ "softButtonID" : 3
},
{
- name: "ROUTE_UPDATE_REQUEST_TIMEOUT",
- id: 9
+ "text" : "-",
+ "isHighlighted" : false,
+ "softButtonID" : 4
}
- ],
+ ]
+ },
/**
- * Data for AudioPassThruPopUp that contains params for visualisation
- *
- * @type {Object}
+ * List of registered applications, To prevent errors without registered
+ * application "-1" used as test appID
+ *
+ * @type object
*/
- AudioPassThruData: {},
+ registeredApps: [],
/**
- * List of registered applications, To prevent errors without registered
- * application "-1" used as test appId
- *
+ * List of registered components
+ *
* @type object
*/
- registeredApps: [],
+ registeredComponents: [
+ {
+ type: "UI",
+ state: false
+ }, {
+ type: "TTS",
+ state: false
+ }, {
+ type: "VR",
+ state: false
+ }, {
+ type: "BasicCommunication",
+ state: false
+ }, {
+ type: "VehicleInfo",
+ state: false
+ }, {
+ type: "Buttons",
+ state: false
+ }, {
+ type: "Navigation",
+ state: false
+ }
+ ],
/**
* List of icons
- *
+ *
* @type {Object}
*/
listOfIcons: {
- // appId: syncFileName
+ // appID: syncFileName
0: "images/media/ico_li.png"
},
/**
* Array of active applications
- *
+ *
* @type {Array}
*/
applicationsList: [],
/**
* Array of connected devices
- *
+ *
* @type {Array}
*/
devicesList: [],
/**
- * Global properties
- *
- * @type {Object}
- */
- globalProperties: {
- helpPrompt: [],
- timeoutPrompt: []
- },
-
- /**
* TTS + VR language
- *
+ *
* @type {String}
*/
hmiTTSVRLanguage: 'EN-US',
/**
* UI language
- *
+ *
* @type {String}
*/
hmiUILanguage: 'EN-US',
/**
* List of supported languages
- *
+ *
* @type {Array}
*/
- sdlLanguagesList:
- [
- 'EN-US',
- 'ES-MX',
- 'FR-CA',
- 'DE-EU',
- 'ES-EU',
- 'EN-EU',
- 'RU-RU',
- 'TR-TR',
- 'PL-EU',
- 'FR-EU',
- 'IT-EU',
- 'SV-EU',
- 'PT-EU',
- 'NL-EU',
- 'EN-AU',
- 'ZH-CN',
- 'ZH-TW',
- 'JA-JP',
- 'AR',
- 'KO-KR'
- ],
+ sdlLanguagesList: [
+ 'EN-US',
+ 'ES-MX',
+ 'FR-CA',
+ 'DE-DE',
+ 'ES-ES',
+ 'EN-GB',
+ 'RU-RU',
+ 'TR-TR',
+ 'PL-PL',
+ 'FR-FR',
+ 'IT-IT',
+ 'SV-SE',
+ 'PT-PT',
+ 'NL-NL',
+ 'ZH-TW',
+ 'JA-JP',
+ 'AR-SA',
+ 'KO-KR',
+ 'PT-BR',
+ 'CS-CZ',
+ 'DA-DK',
+ 'NO-NO'
+ ],
/**
* Method to open Phone view and dial phone number
- *
+ *
* @param {Object}
*/
- dialNumber: function( params ) {
- this.set( 'phoneCall', true );
- SDL.States.goToStates( 'phone.dialpad' );
- SDL.PhoneModel.set( 'dialpadNumber', params.number );
+ dialNumber: function(params) {
+
+ this.set('phoneCall', true);
+ SDL.States.goToStates('phone.dialpad');
+ SDL.PhoneModel.set('dialpadNumber', params.number);
SDL.PhoneController.onDialCall();
},
/**
+ * Notification method to send touch event data to SDLCore
+ *
+ * @param {Object}
+ */
+ onTouchEvent: function(event){
+
+ if (event.target.parentElement.className.indexOf("navButton") >= 0 || event.target.className.indexOf("navButton") >= 0) {
+ return;
+ }
+
+ var type = "",
+ changedTouches = event.originalEvent.changedTouches ? event.originalEvent.changedTouches.length : 1;
+
+ switch (event.originalEvent.type) {
+ case "touchstart": {
+ FLAGS.TOUCH_EVENT_STARTED = true;
+ type = "BEGIN";
+ break;
+ }
+ case "touchmove": {
+ type = "MOVE";
+ break;
+ }
+ case "touchend": {
+ type = "END";
+ break;
+ }
+ case "mousedown": {
+ FLAGS.TOUCH_EVENT_STARTED = true;
+ type = "BEGIN";
+ break;
+ }
+ case "mousemove": {
+ type = "MOVE";
+ break;
+ }
+ case "mouseup": {
+ type = "END";
+ break;
+ }
+ }
+
+ if (FLAGS.TOUCH_EVENT_STARTED ) {
+
+ var events = [];
+ for(var i = 0; i < changedTouches; i++){
+
+ if (event.originalEvent.changedTouches && (event.originalEvent.changedTouches[i].pageX > SDL.SDLVehicleInfoModel.vehicleData.displayResolution.width || event.originalEvent.changedTouches[i].pageY > SDL.SDLVehicleInfoModel.vehicleData.displayResolution.height)) {
+ return;
+ }
+
+ events[i] = {};
+ events[i].c = [{}];
+
+ events[i].id = event.originalEvent.changedTouches ? event.originalEvent.changedTouches[i].identifier : 0;
+ events[i].c[0].x = event.originalEvent.changedTouches ? event.originalEvent.changedTouches[i].pageX : event.originalEvent.pageX;
+ events[i].c[0].y = event.originalEvent.changedTouches ? event.originalEvent.changedTouches[i].pageY : event.originalEvent.pageY;
+ events[i].ts = [event.timeStamp - SDL.SDLModel.timeStamp];
+
+
+
+ }
+ FFW.UI.onTouchEvent(type, events);
+ }
+
+ if (event.originalEvent.type == "mouseup") {
+ FLAGS.TOUCH_EVENT_STARTED = false;
+ }
+ },
+
+ /**
+ * Method to start playing video from streaming video source
+ * provided by SDLCore
+ *
+ * @param {Object}
+ */
+ startStream: function(params) {
+
+ SDL.SDLController.getApplicationModel(params.appID).set('navigationStream', params.url);
+ SDL.SDLModel.playVideo();
+ },
+
+ /**
+ * Method to stop playing video streaming
+ *
+ * @param {Number}
+ */
+ stopStream: function(appID) {
+
+ var createVideoView = Ember.View.create({
+ templateName: "video",
+ template: Ember.Handlebars.compile('<video id="html5Player"></video>')
+ }),
+ videoChild = null;
+
+ SDL.NavigationAppView.removeChild(SDL.NavigationAppView.get('videoView'));
+ SDL.NavigationAppView.rerender();
+
+ SDL.SDLController.getApplicationModel(appID).set('navigationStream', null);
+
+ //this.pauseVideo();
+
+ videoChild = SDL.NavigationAppView.createChildView(createVideoView);
+
+ SDL.NavigationAppView.get('childViews').pushObject(videoChild);
+ SDL.NavigationAppView.set('videoView', videoChild);
+ },
+
+ /**
+ * Method to start playing audio from streaming audio source
+ * provided by SDLCore
+ *
+ * @param {Object}
+ */
+ startAudioStream: function(params) {
+
+ SDL.SDLController.getApplicationModel(params.appID).set('navigationAudioStream', params.url);
+ SDL.StreamAudio.play(params.url);
+ },
+
+ /**
+ * Method to set navigationApp streaming url to current app model
+ *
+ * @param {Number}
+ */
+ stoptAudioStream: function(appID) {
+
+ SDL.SDLController.getApplicationModel(appID).set('navigationAudioStream', null);
+ SDL.StreamAudio.stop();
+ },
+
+ /**
+ * Method to reset navigationApp streaming url from current app model
+ */
+ playVideo: function(){
+ if (SDL.SDLAppController.model.navigationStream !== null) {
+
+ SDL.SDLModel.naviVideo = document.getElementById("html5Player");
+ SDL.SDLModel.naviVideo.src = SDL.SDLAppController.model.navigationStream;
+ SDL.SDLModel.naviVideo.play();
+ }
+ },
+
+ /**
+ * Video player trigger to stop playing video
+ */
+ pauseVideo: function(){
+ if (SDL.SDLModel.naviVideo != null) {
+
+ SDL.SDLModel.naviVideo.pause();
+ }
+ },
+
+ /**
* Method to open Turn By Turn view
- *
+ *
* @param {Object}
*/
- tbtActivate: function( params ) {
- SDL.TurnByTurnView.activate( params );
+ tbtActivate: function(params) {
+
+ SDL.SDLController.getApplicationModel(params.appID).set('constantTBTParams', params);
+ SDL.SDLController.getApplicationModel(params.appID).set('tbtActivate', true);
+
+ if (SDL.SDLAppController.model) {
+ SDL.SDLController.activateTBT();
+ }
},
/**
* Method to set data for Turn List in applications model
- *
+ *
* @param {Object}
*/
- tbtTurnListUpdate: function( params ) {
- SDL.SDLController.getApplicationModel( params.appId ).turnList = params.turnList;
- SDL.TBTTurnList.updateList( params.appId );
+ tbtTurnListUpdate: function(params) {
+
+ SDL.SDLController.getApplicationModel(params.appID).turnList = params.turnList;
+ SDL.SDLController.getApplicationModel(params.appID).turnListSoftButtons = params.softButtons;
+ SDL.TBTTurnList.updateList(params.appID);
},
/**
- * Method to set language for UI component with parameters sent from SDLCore
- * to UIRPC
- *
+ * Method to VRHelpList on UI with request parameters
+ * It opens VrHelpList PopUp with current list of readable VR commands
+ *
+ * @param {Object}
+ */
+ ShowVrHelp: function(vrHelpTitle, vrHelp) {
+
+ SDL.VRHelpListView.showVRHelp(vrHelpTitle, vrHelp);
+ },
+
+ /**
+ * Method to set language for UI component with parameters sent from
+ * SDLCore to UIRPC
+ *
* @type {String} lang
*/
- changeRegistrationUI: function( lang ) {
- SDL.SDLAppController.model.set( 'UILanguage', lang );
+ changeRegistrationUI: function (lang, appID) {
+
+ if (SDL.SDLController.getApplicationModel(appID)) {
+ SDL.SDLController.getApplicationModel(appID).set('UILanguage', lang);
+ }
},
/**
* Method to set language for TTS and VR components with parameters sent
* from SDLCore to UIRPC
- *
+ *
* @type {String} lang
*/
- changeRegistrationTTSVR: function( lang ) {
- SDL.SDLAppController.model.set( 'TTSVRLanguage', lang );
+ changeRegistrationTTSVR: function (lang, appID) {
+
+ if (SDL.SDLController.getApplicationModel(appID)) {
+ SDL.SDLController.getApplicationModel(appID).set('TTSVRLanguage', lang);
+ }
},
/**
- * Method to add activation button to VR commands and set device parameters
- * to model
- *
+ * Method to add activation button to VR commands and set device
+ * parameters to model
+ *
* @param {Object}
*/
- onAppRegistered: function( params ) {
+ onAppRegistered: function (params) {
+
var applicationType = 1;
- if( SDL.SDLController.getApplicationModel( params.appId ) ){
+ if (SDL.SDLController.getApplicationModel(params.application.appID)) {
return;
}
- if( params.isMediaApplication ){
- applicationType = 0;
+ if (params.ttsName) {
+ SDL.VRPopUp.AddActivateApp(params.ttsName.text ,params.appID);
}
- SDL.SDLController.registerApplication( params, applicationType );
+ if (params.vrSynonyms) {
+ var length = params.vrSynonyms.length
+ for (var i = 0; i < length; i++) {
+ SDL.VRPopUp.AddActivateApp(params.vrSynonyms[i] ,params.application.appID);
+ }
+ }
- SDL.VRPopUp.AddActivateApp( params.appId, params.appName );
+ if (params.application.isMediaApplication) {
+ applicationType = 0;
+ }
+
+ SDL.SDLController.registerApplication(params.application, applicationType);
},
/**
* Method to delete activation button from VR commands and delete device
* parameters from model
- *
+ *
* @param {Object}
*/
- onAppUnregistered: function( params ) {
- if( SDL.SDLController.getApplicationModel( params.appId ) ){
+ onAppUnregistered: function (params) {
- SDL.VRPopUp.DeleteActivateApp( params.appId );
+ if (SDL.SDLController.getApplicationModel(params.appID)) {
- SDL.SDLController.unregisterApplication( params.appId );
+ if (SDL.SDLController.getApplicationModel(params.appID).activeRequests.uiPerformInteraction) {
+ SDL.InteractionChoicesView.deactivate("ABORTED");
+ }
+ SDL.SDLController.unregisterApplication(params.appID);
}
},
/**
* SDL UI ScrolableMessage activation function dependent of Driver
* Distraction toggle state
- *
- * @param {Object} params Object with parameters come from SDLCore.
- * @param {Number} messageRequestId Identification of unique request
+ *
+ * @param {Object}
+ * params Object with parameters come from SDLCore.
+ * @param {Number}
+ * messageRequestId Identification of unique request
*/
- onSDLScrolableMessage: function( params, messageRequestId ) {
+ onSDLScrolableMessage: function (request, messageRequestId) {
- if( !SDL.ScrollableMessage.active ){
- if( SDL.SDLModel.driverDistractionState ){
+ if (!SDL.ScrollableMessage.active) {
+ if (SDL.SDLModel.driverDistractionState) {
SDL.DriverDistraction.activate();
- }else{
- SDL.ScrollableMessage.activate( SDL.SDLController.getApplicationModel( params.appId ).appName, params, messageRequestId );
+ FFW.UI.sendError(SDL.SDLModel.resultCode["REJECTED"], request.id, request.method, 'DD mode is active!');
+ } else {
+ SDL.ScrollableMessage.activate(SDL.SDLController.getApplicationModel(request.params.appID).appName, request.params, messageRequestId);
}
- }else{
- SDL.SDLController.scrollableMessageResponse( 'REJECTED', messageRequestId );
+ } else {
+ FFW.UI.sendError(SDL.SDLModel.resultCode["REJECTED"], request.id, request.method, 'Higher priority request is being processed on HMI!');
}
},
/**
- * Handler for reset globalProperties
- *
+ * setGlobalProperties
+ *
* @param {Object}
+ * message Object with parameters come from SDLCore.
*/
- resetProperties: function( params ) {
+ setProperties: function(params) {
- var i, len = params.properties.length;
- for( i = 0; i < len; i++ ){
- if( params.properties[i] == "HELPPROMPT" ){
- this.set( 'globalProperties.helpPrompt', this.globalPropertiesDefault.helpPrompt );
- }
-
- if( params.properties[i] == "TIMEOUTPROMPT" ){
- this.set( 'globalProperties.timeoutPrompt', this.globalPropertiesDefault.timeoutPrompt );
+ for (var i in params) {
+ if (i === "keyboardProperties") {
+ if (params[i].language) {
+ SDL.SDLController.getApplicationModel(params.appID).set('globalProperties.keyboardProperties.language', params[i].language)
+ }
+ if (params[i].keyboardLayout) {
+ SDL.SDLController.getApplicationModel(params.appID).set('globalProperties.keyboardProperties.keyboardLayout', params[i].keyboardLayout);
+ }
+ if (params[i].keypressMode) {
+ SDL.SDLController.getApplicationModel(params.appID).set('globalProperties.keyboardProperties.keypressMode', params[i].keypressMode)
+ }
+ if (params[i].limitedCharacterList) {
+ SDL.SDLController.getApplicationModel(params.appID).set('globalProperties.keyboardProperties.limitedCharacterList', params[i].limitedCharacterList)
+ }
+ if (params[i].autoCompleteText) {
+ SDL.SDLController.getApplicationModel(params.appID).set('globalProperties.keyboardProperties.autoCompleteText', params[i].autoCompleteText)
+ }
+ } else {
+ SDL.SDLController.getApplicationModel(params.appID).set('globalProperties.' + i, params[i]);
}
}
- },
-
- /**
- * setGlobalProperties
- *
- * @param {Object} message Object with parameters come from SDLCore.
- */
- setProperties: function( message ) {
-
- this.set( 'globalProperties.helpPrompt', message.helpPrompt );
- this.set( 'globalProperties.timeoutPrompt', message.timeoutPrompt );
},
/**
- * Method to call handler from model to show list of avaliable applications
- *
- * @param {Object} appList
+ * Method to call handler from model to show list of avaliable
+ * applications
+ *
+ * @param {Object}
+ * appList
*/
- onGetAppList: function( appList ) {
+ onGetAppList: function (appList) {
var i = 0, len = appList.length;
- for( i = 0; i < len; i++ ){
- if( appList[i] ){
- SDL.SDLModel.onAppRegistered( appList[i] );
+ for (i = 0; i < len; i++) {
+ if (appList[i]) {
+ SDL.SDLModel.onAppRegistered(appList[i]);
}
}
@@ -388,180 +742,281 @@ SDL.SDLModel = Em.Object.create( {
/**
* Method to call function from DeviceListView to show list of connected
* devices
- *
- * @param {Object} params
+ *
+ * @param {Object}
+ * params
*/
- onGetDeviceList: function( params ) {
- if( null == params.resultCode || ( null != params.resultCode && "SUCCESS" == params.resultCode ) ){
- if( SDL.States.info.devicelist.active && params.deviceList && params.deviceList.length ){
- SDL.DeviceListView.ShowDeviceList( params );
- }
+ onGetDeviceList: function (params) {
+
+ if (SDL.States.info.devicelist.active && params.deviceList && params.deviceList.length) {
+ SDL.DeviceListView.ShowDeviceList(params);
}
+
+ SDL.SDLModel.set('deviceSearchProgress', false);
},
/**
* SDL UI SetAppIcon handler
- *
- * @param {Object} message
- * @param {Number} id
- * @param {String} method
+ *
+ * @param {Object}
+ * message
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
*/
- onSDLSetAppIcon: function( message, id, method ) {
- var img = new Image();
- img.onload = function() {
- // code to set the src on success
- SDL.SDLController.getApplicationModel( message.appId ).set( 'appIcon', message.syncFileName );
- FFW.UI.sendUIResult( "SUCCESS", id, method );
- };
- img.onerror = function( event ) {
- // doesn't exist or error loading
- FFW.UI.sendUIResult( "INVALID_DATA", id, method );
- return false;
- };
+ onSDLSetAppIcon: function (message, id, method) {
- img.src = message.syncFileName;
- },
+ if (!SDL.SDLController.getApplicationModel(message.appID)){
+ FFW.UI.sendUIResult(SDL.SDLModel.resultCode["APPLICATION_NOT_REGISTERED"], id, method);
+ } else {
- /**
- * SDL UI Alert Maneuver response handler show popup window
- *
- * @param {Object} message Object with parameters come from SDLCore
- */
- onUIAlertManeuver: function( message ) {
+ var img = new Image();
+ img.onload = function () {
+
+ // code to set the src on success
+ SDL.SDLController.getApplicationModel(message.appID).set('appIcon', message.syncFileName.value);
+ FFW.UI.sendUIResult(SDL.SDLModel.resultCode["SUCCESS"], id, method);
+ };
+ img.onerror = function (event) {
+
+ // doesn't exist or error loading
+ FFW.UI.sendError(SDL.SDLModel.resultCode["INVALID_DATA"], id, method, 'Image does not exist!');
+ return false;
+ };
- SDL.AlertManeuverPopUp.AlertManeuverActive( message );
+ img.src = message.syncFileName.value;
+ }
},
/**
* SDL UI Alert response handler show popup window
- *
- * @param {Object} message Object with parameters come from SDLCore
- * @param {Number} alertRequestId Id of current handled request
+ *
+ * @param {Object}
+ * message Object with parameters come from SDLCore
+ * @param {Number}
+ * alertRequestId Id of current handled request
*/
- onUIAlert: function( message, alertRequestId ) {
+ onUIAlert: function (message, alertRequestId) {
- if( !SDL.AlertPopUp.active ){
- SDL.AlertPopUp.AlertActive( message, alertRequestId );
- }else{
- SDL.SDLController.alertResponse( 'REJECTED', alertRequestId );
+ if (!SDL.AlertPopUp.active) {
+ SDL.AlertPopUp.AlertActive(message, alertRequestId);
+ } else {
+ SDL.SDLController.alertResponse(this.resultCode['REJECTED'], alertRequestId);
}
},
/**
* SDL UI PerformInteraction response handler show popup window
- *
- * @param {Object} message Object with parameters come from SDLCore
- * @param {Number} performInteractionRequestId Id of current handled request
+ *
+ * @param {Object}
+ * message Object with parameters come from SDLCore
+ * @param {Number}
+ * performInteractionRequestId Id of current handled request
*/
- uiPerformInteraction: function( message, performInteractionRequestId ) {
+ uiPerformInteraction: function (message) {
+
+ if (!SDL.SDLController.getApplicationModel(message.params.appID).activeRequests.uiPerformInteraction) {
+ SDL.SDLController.getApplicationModel(message.params.appID).activeRequests.uiPerformInteraction = message.id;
+ } else {
+ SDL.SDLController.interactionChoiseCloseResponse(message.appID, SDL.SDLModel.resultCode['REJECTED']);
+ return;
+ }
+
+ if (message.params && message.params.vrHelpTitle && message.params.vrHelp) {
- if( !SDL.InteractionChoicesView.active ){
- SDL.SDLController.getApplicationModel( message.appId ).onPreformInteraction( message, performInteractionRequestId );
- }else{
- SDL.SDLController.interactionChoiseCloseResponse( 'ABORTED', performInteractionRequestId );
+ SDL.SDLModel.set('interactionData.vrHelpTitle', message.params.vrHelpTitle);
+ SDL.SDLModel.set('interactionData.vrHelp', message.params.vrHelp);
}
+
+ SDL.InteractionChoicesView.activate(message);
+
+ SDL.SDLController.VRMove();
},
/**
* SDL UI Slider response handler show popup window
- *
- * @param {Object} message Object with parameters come from SDLCore
+ *
+ * @param {Object}
+ * message Object with parameters come from SDLCore
*/
- uiSlider: function( message ) {
+ uiSlider: function (message) {
- if( !SDL.SliderView.active ){
- SDL.SDLController.getApplicationModel( message.params.appId ).onSlider( message );
- }else{
- FFW.UI.sendSliderResult( 'ABORTED', message.id );
+ if (!SDL.SliderView.active) {
+ SDL.SDLController.getApplicationModel(message.params.appID).onSlider(message);
+ } else {
+ FFW.UI.sendSliderResult(this.resultCode["ABORTED"], message.id);
}
},
/**
+ * SDL ShowKeyboard show method with incoming parameters of layout, language etc...
+ *
+ * @param {Object}
+ * message Object with parameters come from SDLCore
+ */
+ uiShowKeyboard: function(element){
+ SDL.Keyboard.activate(element);
+ },
+
+ /**
* SDL UI AudioPassThru response handler show popup window
- *
- * @param {Object} message Object with parameters come from SDLCore.
+ *
+ * @param {Object}
+ * message Object with parameters come from SDLCore.
*/
- UIPerformAudioPassThru: function( message ) {
- this.set( 'AudioPassThruData', message );
- this.set( 'AudioPassThruState', true );
+ UIPerformAudioPassThru: function(message) {
+
+ this.set('AudioPassThruData', message);
+ this.set('AudioPassThruState', true);
},
/**
* Method ends processing of AudioPassThru and call AudioPassThru UI
* response handler
*/
- UIEndAudioPassThru: function() {
- if( this.AudioPassThruState ){
- FFW.UI.sendUIResult( "SUCCESS", FFW.UI.endAudioPassThruRequestId, "UI.EndAudioPassThru" );
- SDL.SDLController.performAudioPassThruResponse( "SUCCESS" );
- }else{
- FFW.UI.sendUIResult( "GENERIC_ERROR", FFW.UI.endAudioPassThruRequestId, "UI.EndAudioPassThru" );
+ UIEndAudioPassThru: function () {
+
+ if (this.AudioPassThruState) {
+ FFW.UI.sendUIResult(this.resultCode["SUCCESS"], FFW.UI.endAudioPassThruRequestID, "UI.EndAudioPassThru");
+ SDL.SDLController.performAudioPassThruResponse(this.resultCode["SUCCESS"]);
+ } else {
+ FFW.UI.sendError(this.resultCode["GENERIC_ERROR"], FFW.UI.endAudioPassThruRequestID, "UI.EndAudioPassThru", "UI.PerformAudioPassThru are not processed at the moment!");
}
},
/**
* Prompt activation
- *
+ *
* @param {Object}
* @param {Number}
*/
- onPrompt: function( ttsChunks, delay ) {
+ onPrompt: function (ttsChunks) {
+
var message = '';
- if( ttsChunks ){
- for( var i = 0; i < ttsChunks.length; i++ ){
+ if (ttsChunks) {
+ for (var i = 0; i < ttsChunks.length; i++) {
message += ttsChunks[i].text + '\n';
}
- SDL.TTSPopUp.ActivateTTS( message, delay );
+ SDL.TTSPopUp.ActivateTTS(message);
+ }
+ },
+
+ /**
+ * Play audio file on PlayTone notification
+ */
+ onPlayTone: function () {
+
+ SDL.Audio.play('audio/initial.wav');
+ },
+
+ /**
+ * Prompt deactivation
+ */
+ TTSStopSpeaking: function () {
+ //true parameter makes send error response ABORTED
+ SDL.TTSPopUp.DeactivateTTS();
+ FFW.TTS.set('aborted', true);
+ },
+
+ /**
+ * SDL DeleteCommand response handler to sent delete command error or normal result
+ *
+ * @param {Number}
+ * @param {Number}
+ */
+ deleteCommandResponse: function (resultCode, requestID) {
+
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
+ FFW.UI.sendUIResult(resultCode, requestID, "UI.DeleteCommand");
+ } else {
+ FFW.UI.sendError(resultCode, requestID, "UI.DeleteCommand", "SubMenu is opened")
}
},
/**
* SDL VR AddCommand response handler add command to voice recognition
* window
- *
+ *
* @param {Object}
*/
- addCommandVR: function( message ) {
- SDL.VRPopUp.AddCommand( message.cmdId, message.vrCommands, message.appId );
+ addCommandVR: function (message) {
+
+ var appId = 0;
+ if ("appID" in message) {
+ appId = message.appID;
+ }
+
+ SDL.VRPopUp.AddCommand(message.cmdID, message.vrCommands, appId);
},
/**
* SDL VR DeleteCommand response handler delete command from voice
* recognition window
- *
+ *
* @param {Number}
*/
- deleteCommandVR: function( commandId ) {
- SDL.VRPopUp.DeleteCommand( commandId );
+ deleteCommandVR: function (commandID) {
+
+ SDL.VRPopUp.DeleteCommand(commandID);
},
- onDeactivateApp: function( target, appId, appName ) {
+ /**
+ * SDL VR DeleteCommand response handler delete command from voice
+ * recognition window
+ *
+ * @param {Number}
+ */
+ deleteCommandVR: function (commandID) {
- var dest = target.split( '.' ), reason;
+ SDL.VRPopUp.DeleteCommand(commandID);
+ },
- switch( dest[0] ){
- case 'media': {
- reason = 'AUDIO';
- break;
- }
- case "phone": {
- reason = 'PHONEMENU';
- break;
- }
- case "navigation": {
- reason = 'NAVIGATIONMAP';
- break;
- }
- case "settings": {
- reason = 'SYNCSETTINGS';
- break;
+ onDeactivateApp: function (target, appID) {
+
+ if (SDL.SDLController.getApplicationModel(appID)) {
+ /**
+ * Close Options menu if opened
+ */
+ if (SDL.OptionsView.active) {
+ SDL.OptionsView.set('active', false);
}
- default: {
- reason = 'GENERAL';
- break;
+
+ var dest = target.split('.'), reason;
+
+ switch (dest[0]) {
+ case 'media':
+ {
+ reason = 'AUDIO';
+ break;
+ }
+ case "phone":
+ {
+ reason = 'PHONEMENU';
+ break;
+ }
+ case "navigation":
+ {
+ reason = 'NAVIGATIONMAP';
+ break;
+ }
+ case "settings":
+ {
+ reason = 'SYNCSETTINGS';
+ break;
+ }
+ default:
+ {
+ reason = 'GENERAL';
+ break;
+ }
}
- }
- FFW.BasicCommunication.DeactivateApp( appName, reason, appId );
+ SDL.TurnByTurnView.deactivate();
+
+ //if (!SDL.SDLController.getApplicationModel(appID).unregistered) {
+ FFW.BasicCommunication.OnAppDeactivated(reason, appID);
+ //}
+ }
}
-} ); \ No newline at end of file
+});
diff --git a/SDL_Core/src/components/HMI/app/model/sdl/NonMediaModel.js b/SDL_Core/src/components/HMI/app/model/sdl/NonMediaModel.js
index b9545860a..acc4698bc 100644
--- a/SDL_Core/src/components/HMI/app/model/sdl/NonMediaModel.js
+++ b/SDL_Core/src/components/HMI/app/model/sdl/NonMediaModel.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -32,91 +31,180 @@
* @version 1.0
*/
-SDL.SDLNonMediaModel = SDL.SDLAppModel.extend( {
-
- init: function() {
-
- this._super();
-
- // init properties here
- this.set( 'appInfo', Em.Object.create( {
- field1: '<field1>',
- field2: '<field2>',
- field3: '<field3>',
- field4: '<field4>',
- mainImage: 'images/sdl/audio_icon.jpg',
- image: '',
- customPresets: []
- } ) );
-
- // this.set('appIcon', 'images/info/info_leftMenu_apps_ico.png'),
-
- this.set( 'commandsList', [] );
- this.set( 'softButtons', [] );
- },
-
- /**
- * Method hides sdl activation button and sdl application
- *
- * @param {Number}
- */
- onDeleteApplication: function( appId ) {
- SDL.NonMediaController.onDeleteApplication( appId );
- },
-
- /**
- * Activate current application model
- */
- turnOnSDL: function() {
- SDL.NonMediaController.activateApp( this );
- },
-
- /**
- * Method to clear App OverLay
- */
- clearAppOverLay: function() {
-
- clearInterval( this.timer );
- this.appInfo.set( 'field1', '' );
- this.appInfo.set( 'field2', '' );
- this.appInfo.set( 'field3', '' );
- this.appInfo.set( 'field4', '' );
- this.appInfo.set( 'alignment', '' );
- this.appInfo.set( 'mainImage', 'images/sdl/audio_icon.jpg' );
- this.updateSoftButtons();
- for( i = 0; i < 6; i++ ){
- this.appInfo.set( 'customPresets.' + i, '' );
- }
+SDL.SDLNonMediaModel = SDL.SDLAppModel.extend({
- },
-
- /**
- * Applin UI Show handler
- *
- * @param {Object}
- */
- onSDLUIShow: function( params ) {
- this.appInfo.set( 'field1', params.mainField1 );
- this.appInfo.set( 'field2', params.mainField2 );
- this.appInfo.set( 'field3', params.mainField3 );
- this.appInfo.set( 'field4', params.mainField4 );
- if( params.graphic ){
- this.appInfo.set( 'mainImage', params.graphic );
- }else{
- this.appInfo.set( 'mainImage', 'images/sdl/audio_icon.jpg' );
- }
+ init: function () {
- if( params.customPresets ){
- this.appInfo.set( 'customPresets', params.customPresets );
- }
+ this._super();
- // Get soft buttons if exists
- if( params.softButtons ){
- this.updateSoftButtons( params.softButtons );
- }
- },
+ var subscribeVIData = {};
+
+ for (var key in SDL.SDLVehicleInfoModel.vehicleData) {
+ subscribeVIData[key] = false;
+ }
+
+ this.set('subscribedData', subscribeVIData);
+
+ // init properties here
+ this.set('appInfo', Em.Object.create({
+ field1 : '<field1>',
+ field2 : '<field2>',
+ field3 : '<field3>',
+ field4 : '<field4>',
+ mainImage : 'images/sdl/audio_icon.jpg',
+ image : '',
+ customPresets: [],
+ alignment : "text-align:center"
+ }));
+
+ this.set('activeRequests', Em.Object.create({
+ uiPerformInteraction: null
+ }));
+
+ this.set('constantTBTParams', null);
+
+ this.set('tbtActivate', false);
+ this.set('globalProperties.helpPrompt', []);
+ this.set('globalProperties.timeoutPrompt', []);
+ this.set('globalProperties.keyboardProperties', Em.Object.create());
+ this.set('globalProperties.keyboardProperties.keyboardLayout', 'QWERTY');
+ this.set('globalProperties.keyboardProperties.limitedCharacterList', []);
+
+ this.set('commandsList', {'top': []});
+ this.set('softButtons', []);
+ },
+
+ /**
+ * Method hides sdl activation button and sdl application
+ *
+ * @param {Number}
+ */
+ onDeleteApplication: function (appID) {
+
+ SDL.NonMediaController.onDeleteApplication(appID);
+ },
+
+ /**
+ * Activate current application model
+ */
+ turnOnSDL: function () {
- sdlSetMediaClockTimer: function() {
- return;
- }
-} ); \ No newline at end of file
+ SDL.NonMediaController.activateApp(this);
+ },
+
+ /**
+ * Method to clear App OverLay
+ */
+ clearAppOverLay: function () {
+
+ clearInterval(this.timer);
+ this.appInfo.set('field1', '');
+ this.appInfo.set('field2', '');
+ this.appInfo.set('field3', '');
+ this.appInfo.set('field4', '');
+ this.appInfo.set('alignment', '');
+ this.appInfo.set('mainImage', 'images/sdl/audio_icon.jpg');
+ this.updateSoftButtons();
+ for (i = 0; i < 6; i++) {
+ this.appInfo.set('customPresets.' + i, '');
+ }
+
+ },
+
+ /**
+ * Applin UI Show handler
+ *
+ * @param {Object}
+ */
+ onSDLUIShow: function (params) {
+
+ for (var i = 0; i < params.showStrings.length; i++) {
+ switch (params.showStrings[i].fieldName) {
+ case 'mainField1':
+ {
+ this.appInfo.set('field1', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'mainField2':
+ {
+ this.appInfo.set('field2', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'mainField3':
+ {
+ this.appInfo.set('field3', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'mainField4':
+ {
+ this.appInfo.set('field4', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'statusBar':
+ {
+ this.appInfo.set('statusText', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'mediaClock':
+ {
+ this.appInfo.set('mediaClock', params.showStrings[i].fieldText);
+ break;
+ }
+ case 'mediaTrack':
+ {
+ this.appInfo.set('mediaTrack', params.showStrings[i].fieldText);
+ break;
+ }
+ default :{
+ break;
+ }
+ }
+ }
+
+ if (params.alignment) {
+ switch (params.alignment) {
+ case "CENTERED":
+ {
+ this.appInfo.set('alignment', "text-align:center");
+ break;
+ }
+ case "LEFT_ALIGNED":
+ {
+ this.appInfo.set('alignment', "text-align:left");
+ break;
+ }
+ case "RIGHT_ALIGNED":
+ {
+ this.appInfo.set('alignment', "text-align:right");
+ break;
+ }
+ }
+ }
+
+ if (params.graphic) {
+ this.appInfo.set('mainImage', params.graphic.value);
+ } else {
+ this.appInfo.set('mainImage', 'images/sdl/audio_icon.jpg');
+ }
+
+ // Magic number is a count of Preset Buttons on HMI = 6
+ if (params.customPresets) {
+ this.appInfo.set('customPresets', []);
+ for (var i = 0; i < 8; i++) {
+ if (params.customPresets[i] != '' || params.customPresets[i] != null) {
+ this.appInfo.get('customPresets').pushObject(params.customPresets[i]);
+ } else {
+ this.appInfo.get('customPresets').pushObject('Preset' + i);
+ }
+ }
+ }
+
+ this.updateSoftButtons(params.softButtons);
+
+ },
+
+ sdlSetMediaClockTimer: function () {
+
+ return;
+ }
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/model/sdl/VehicleInfoModel.js b/SDL_Core/src/components/HMI/app/model/sdl/VehicleInfoModel.js
index 67abf141f..092e700df 100644
--- a/SDL_Core/src/components/HMI/app/model/sdl/VehicleInfoModel.js
+++ b/SDL_Core/src/components/HMI/app/model/sdl/VehicleInfoModel.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -33,135 +32,191 @@
* @version 1.0
*/
-SDL.SDLVehicleInfoModel = Em.Object.create( {
+SDL.SDLVehicleInfoModel = Em.Object
+ .create( {
- /**
- * Stored VehicleInfo transmission state Data
- *
- * @type {Array}
- */
- vehicleInfoPRNDL:
- [
+ /**
+ * Stored VehicleInfo transmission state Data
+ *
+ * @type {Array}
+ */
+ vehicleInfoPRNDL: [
"PARK",
"REVERSE",
"NEUTRAL",
- "FORWARD_DRIVE_2",
- "LOWGEAR"
+ "DRIVE",
+ "SPORT",
+ "LOWGEAR",
+ "FIRST",
+ "SECOND",
+ "THIRD",
+ "FOURTH",
+ "FIFTH",
+ "SIXTH"
],
- /**
- * PRNDL state value
- *
- * @type {String}
- */
- prndlSelectState: 'PARK',
-
- /**
- * Stored VehicleInfo Data
- *
- * @type {Array}
- */
- ecuDIDData:
- [
+ /**
+ * PRNDL state value
+ *
+ * @type {String}
+ */
+ prndlSelectState: 'PARK',
+
+ /**
+ * Stored VehicleInfo Data
+ *
+ * @type {Array}
+ */
+ ecuDIDData: [
{
'data': "ECU 1 Test Data"
- },
- {
+ }, {
'data': "ECU 2 Test Data"
}
],
- /**
- * Type of current vehicle: make of the vehicle, model of the vehicle, model
- * Year of the vehicle, trim of the vehicle.
- *
- * @type {Object}
- */
- vehicleType: {
- make: "Ford",
- model: "Fiesta",
- modelYear: "2013",
- trim: "SE"
- },
-
- /**
- * Stored VehicleInfo Data
- *
- * @type {Object}
- */
- vehicleData: {
- 'VEHICLEDATA_SPEED': {
- data: 80.0,
- type: 'speed'
- },
- 'VEHICLEDATA_ENGINERPM': {
- data: 5000,
- type: 'rpm'
- },
- 'VEHICLEDATA_FUELLEVEL': {
- data: 0.2,
- type: 'fuelLevel'
- },
- 'VEHICLEDATA_FUELECONOMY': {
- data: 0.1,
- type: 'avgFuelEconomy'
- },
- 'VEHICLEDATA_BATTVOLTS': {
- data: 12.5,
- type: 'batteryVoltage'
- },
- 'VEHICLEDATA_EXTERNTEMP': {
- data: 40.0,
- type: 'externalTemperature'
- },
- 'VEHICLEDATA_VIN': {
- data: '52-452-52-752',
- type: 'vin'
- },
- 'VEHICLEDATA_PRNDLSTATUS': {
- data: 'PARK',
- type: 'prndl'
+ /**
+ * Type of current vehicle: make of the vehicle, model of the vehicle,
+ * model Year of the vehicle, trim of the vehicle.
+ *
+ * @type {Object}
+ */
+ vehicleType: {
+ make: "Ford",
+ model: "Fiesta",
+ modelYear: "2013",
+ trim: "SE"
},
- 'VEHICLEDATA_BATTERYPACKVOLTAGE': {
- data: 12.5,
- type: 'batteryPackVoltage'
- },
- 'VEHICLEDATA_BATTERYCURRENT': {
- data: 7.0,
- type: 'batteryPackCurrent'
- },
- 'VEHICLEDATA_BATTERYTEMPERATURE': {
- data: 30,
- type: 'batteryPackTemperature'
- },
- 'VEHICLEDATA_ENGINETORQUE': {
- data: 650,
- type: 'engineTorque'
- },
- 'VEHICLEDATA_ODOMETER': {
- data: 0,
- type: 'odometer'
- },
- 'VEHICLEDATA_TRIPODOMETER': {
- data: 0,
- type: 'tripOdometer'
- },
- 'VEHICLEDATA_GENERICBINARY': {
- data: '165165650',
- type: 'genericbinary'
- },
- 'VEHICLEDATA_SATESN': {
- data: "165165650",
- type: 'satRadioESN'
- },
- 'VEHICLEDATA_RAINSENSOR': {
- data: 165165650,
- type: 'rainSensor'
+
+ eVehicleDataType:{
+ "gps" :"VEHICLEDATA_GPS",
+ "speed": "VEHICLEDATA_SPEED",
+ "rpm": "VEHICLEDATA_RPM",
+ "fuelLevel": "VEHICLEDATA_FUELLEVEL",
+ "fuelLevel_State": "VEHICLEDATA_FUELLEVEL_STATE",
+ "instantFuelConsumption": "VEHICLEDATA_FUELCONSUMPTION",
+ "externalTemperature": "VEHICLEDATA_EXTERNTEMP",
+ "prndl": "VEHICLEDATA_PRNDL",
+ "tirePressure": "VEHICLEDATA_TIREPRESSURE",
+ "odometer": "VEHICLEDATA_ODOMETER",
+ "beltStatus": "VEHICLEDATA_BELTSTATUS",
+ "bodyInformation": "VEHICLEDATA_BODYINFO",
+ "deviceStatus": "VEHICLEDATA_DEVICESTATUS",
+ "eCallInfo": "VEHICLEDATA_ECALLINFO",
+ "airbagStatus": "VEHICLEDATA_AIRBAGSTATUS",
+ "emergencyEvent": "VEHICLEDATA_EMERGENCYEVENT",
+ "clusterModes": "VEHICLEDATA_CLUSTERMODESTATUS",
+ "myKey": "VEHICLEDATA_MYKEY",
+ "driverBraking": "VEHICLEDATA_BRAKING",
+ "wiperStatus": "VEHICLEDATA_WIPERSTATUS",
+ "headLampStatus": "VEHICLEDATA_HEADLAMPSTATUS",
+ "engineTorque":"VEHICLEDATA_ENGINETORQUE",
+ "accPedalPosition": "VEHICLEDATA_ACCPEDAL",
+ "steeringWheelAngle": "VEHICLEDATA_STEERINGWHEEL"
},
- 'VEHICLEDATA_GPS': {
- data: {
- 'longitudeDegrees': 423293,
- 'latitudeDegrees': -830464,
+
+ /**
+ * Stored VehicleInfo Data
+ *
+ * @type {Object}
+ */
+ vehicleData: {
+ 'displayResolution':{
+ 'width': 800,
+ 'height': 480
+ },
+ 'speed': 80.0,
+ 'fuelLevel': 0.2,
+ 'fuelLevel_State': "UNKNOWN",
+ 'instantFuelConsumption': 2.2,
+ 'tirePressure': {
+ 'pressureTelltale': 'OFF',
+ 'leftFront': {
+ 'status': 'UNKNOWN'
+ },
+ 'rightFront': {
+ 'status': 'UNKNOWN'
+ },
+ 'leftRear': {
+ 'status': 'UNKNOWN'
+ },
+ 'rightRear': {
+ 'status': 'UNKNOWN'
+ },
+ 'innerLeftRear': {
+ 'status': 'UNKNOWN'
+ },
+ 'innerRightRear': {
+ 'status': 'UNKNOWN'
+ }
+ },
+ 'beltStatus': {
+ 'driverBeltDeployed': "NOT_SUPPORTED",
+ 'passengerBeltDeployed': "NOT_SUPPORTED",
+ 'passengerBuckleBelted': "NOT_SUPPORTED",
+ 'driverBuckleBelted': "NOT_SUPPORTED",
+ 'leftRow2BuckleBelted': "NOT_SUPPORTED",
+ 'passengerChildDetected': "NOT_SUPPORTED",
+ 'rightRow2BuckleBelted': "NOT_SUPPORTED",
+ 'middleRow2BuckleBelted': "NOT_SUPPORTED",
+ 'middleRow3BuckleBelted': "NOT_SUPPORTED",
+ 'leftRow3BuckleBelted': "NOT_SUPPORTED",
+ 'rightRow3BuckleBelted': "NOT_SUPPORTED",
+ 'leftRearInflatableBelted': "NOT_SUPPORTED",
+ 'rightRearInflatableBelted': "NOT_SUPPORTED",
+ 'middleRow1BeltDeployed': "NOT_SUPPORTED",
+ 'middleRow1BuckleBelted': "NOT_SUPPORTED"
+ },
+ 'bodyInformation': {
+ 'parkBrakeActive': false,
+ 'ignitionStableStatus': "MISSING_FROM_TRANSMITTER",
+ 'ignitionStatus': "UNKNOWN",
+ 'driverDoorAjar': true,
+ 'passengerDoorAjar': true,
+ 'rearLeftDoorAjar': true,
+ 'rearRightDoorAjar': true
+ },
+ 'deviceStatus': {
+ 'voiceRecOn': false,
+ 'btIconOn': false,
+ 'callActive': false,
+ 'phoneRoaming': false,
+ 'textMsgAvailable': false,
+ 'battLevelStatus': "NOT_PROVIDED",
+ 'stereoAudioOutputMuted': false,
+ 'monoAudioOutputMuted': false,
+ 'signalLevelStatus': "NOT_PROVIDED",
+ 'primaryAudioSource': "NO_SOURCE_SELECTED",
+ 'eCallEventActive': false
+ },
+ 'driverBraking': "NOT_SUPPORTED",
+ 'wiperStatus': "NO_DATA_EXISTS",
+ 'headLampStatus': {
+ "lowBeamsOn": false,
+ "highBeamsOn": false,
+ "ambientLightSensorStatus": "NIGHT"
+ },
+ 'engineTorque': 2.5,
+ 'accPedalPosition': 10.5,
+ 'steeringWheelAngle': 1.2,
+ 'myKey': {
+ "e911Override": "NO_DATA_EXISTS"
+ },
+ 'avgFuelEconomy': 0.1,
+ 'batteryVoltage': 12.5,
+ 'externalTemperature': 40.0,
+ 'vin': '52-452-52-752',
+ 'prndl': 'PARK',
+ 'batteryPackVoltage': 12.5,
+ 'batteryPackCurrent': 7.0,
+ 'batteryPackTemperature': 30,
+ 'tripOdometer': 0,
+ 'genericbinary': '165165650',
+ 'satRadioESN': "165165650",
+ 'rainSensor': 165165650,
+ 'gps': {
+ 'longitudeDegrees': 42,
+ 'latitudeDegrees': -83,
'utcYear': 2013,
'utcMonth': 2,
'utcDay': 14,
@@ -169,9 +224,9 @@ SDL.SDLVehicleInfoModel = Em.Object.create( {
'utcMinutes': 16,
'utcSeconds': 54,
'compassDirection': 'SOUTHWEST',
- 'pdop': 15,
+ 'pdop': 8,
'hdop': 5,
- 'vdop': 30,
+ 'vdop': 3,
'actual': false,
'satellites': 8,
'dimension': '2D',
@@ -179,114 +234,231 @@ SDL.SDLVehicleInfoModel = Em.Object.create( {
'heading': 173,
'speed': 2
},
- type: 'gps'
- }
- },
-
- /**
- * Method to set selected state of vehicle transmission to vehicleData
- */
- onPRNDLSelected: function() {
- if( this.prndlSelectState ) {
- this.set( 'vehicleData.VEHICLEDATA_PRNDLSTATUS.data', this.prndlSelectState );
- }
- }.observes( 'this.prndlSelectState' ),
-
- /**
- * Method calls GetVehicleType response
- *
- * @type {Number}
- */
- getVehicleType: function( id ) {
- FFW.VehicleInfo.GetVehicleTypeResponse( this.vehicleType, id );
- },
-
- /**
- * SDL VehicleInfo.GetDTCs handler fill data for response about vehicle
- * errors
- *
- * @type {Object} params
- * @type {Number} id
- */
- vehicleInfoGetDTCs: function( params, id ) {
- var data = [], i = 0, info = "Inormation about reported DTC's", result = "";
-
- for( i = 0; i < 3; i++ ){
- data.push( params.encrypted ? "0" : {
- "identifier": '0',
- "statusByte": '0'
- } );
- }
-
- result = "SUCCESS";
-
- if( params.encrypted ){
- result = 'ENCRYPTED';
- FFW.BasicCommunication.SendData( data );
- FFW.VehicleInfo.vehicleInfoGetDTCsResponse( null, info, result, id );
- }else{
- FFW.VehicleInfo.vehicleInfoGetDTCsResponse( data, info, result, id );
- }
- },
-
- /**
- * SDL VehicleInfo.ReadDID handler send response about vehicle conditions
- *
- * @type {Object} params
- * @type {Number} id
- */
- vehicleInfoReadDID: function( params, id ) {
- var data = [], i = 0, info = '', dataResult = [], resultCode = "";
- // magic number used because there is no huge database on HMI of vehicle
- // data
- if( this.ecuDIDData[1].data ){
- info = this.ecuDIDData[1].data;
+ 'eCallInfo': {
+ 'eCallNotificationStatus': 'NORMAL',
+ 'auxECallNotificationStatus': 'NORMAL',
+ 'eCallConfirmationStatus': 'NORMAL'
+ },
+ 'airbagStatus': {
+ 'driverAirbagDeployed': 'NO_EVENT',
+ 'driverSideAirbagDeployed': 'NO_EVENT',
+ 'driverCurtainAirbagDeployed': 'NO_EVENT',
+ 'passengerAirbagDeployed': 'NO_EVENT',
+ 'passengerCurtainAirbagDeployed': 'NO_EVENT',
+ 'driverKneeAirbagDeployed': 'NO_EVENT',
+ 'passengerSideAirbagDeployed': 'NO_EVENT',
+ 'passengerKneeAirbagDeployed': 'NO_EVENT'
+ },
+ 'emergencyEvent': {
+ 'emergencyEventType': 'NO_EVENT',
+ 'fuelCutoffStatus': 'NORMAL_OPERATION',
+ 'rolloverEvent': 'NO_EVENT',
+ 'maximumChangeVelocity': 'NO_EVENT',
+ 'multipleEvents': 'NO_EVENT'
+ },
+ 'clusterModeStatus': {
+ 'powerModeActive': false,
+ 'powerModeQualificationStatus': 'POWER_MODE_EVALUATION_IN_PROGRESS',
+ 'carModeStatus': 'FACTORY',
+ 'powerModeStatus': 'KEY_OUT'
+ }
+
+ },
+
+ /**
+ * Method to set selected state of vehicle transmission to vehicleData
+ */
+ onPRNDLSelected: function() {
+
+ if (this.prndlSelectState) {
+ this.set('vehicleData.prndl', this.prndlSelectState);
+ }
+ }.observes('this.prndlSelectState'),
+
+ /**
+ * Method calls GetVehicleType response
+ *
+ * @type {Number}
+ */
+ getVehicleType: function(id) {
+
+ FFW.VehicleInfo.GetVehicleTypeResponse(this.vehicleType, id);
+ },
+
+ /**
+ * SDL VehicleInfo.GetDTCs handler fill data for response about vehicle
+ * errors
+ *
+ * @type {Object} params
+ * @type {Number} id
+ */
+ vehicleInfoGetDTCs: function(params, id) {
+
+ var dtc = [], result = "", ecuHeader = 2;
+
+ for ( var i = 0; i < 3; i++) {
+ dtc.push("line " + i);
+ }
+
result = "SUCCESS";
- }else{
- result = "INVALID_DATA";
- }
-
- for( i = 0; i < params.didLocation.length; i++ ){
- if( i < 10 ){
- dataResult[i] = 'SUCCESS';
- data.push( '0' );
- }else{
- dataResult[i] = "INVALID_DATA";
- data.push( '0' );
+
+ FFW.VehicleInfo.vehicleInfoGetDTCsResponse(ecuHeader,
+ dtc,
+ result,
+ id);
+
+ },
+
+ /**
+ * SDL VehicleInfo.ReadDID handler send response about vehicle
+ * conditions
+ *
+ * @type {Object} params
+ * @type {Number} id
+ */
+ vehicleInfoReadDID: function(params, id) {
+
+ var didResult = [], resultCode = "";
+ // magic number used because there is no huge database on HMI of
+ // vehicle
+ // data
+ if (this.ecuDIDData[1].data) {
+ resultCode = "SUCCESS";
+ } else {
+ resultCode = "INVALID_DATA";
+ }
+
+ for ( var i = 0; i < params.didLocation.length; i++) {
+ if (i < 10) {
+ didResult[i] = {};
+ didResult[i].resultCode = 'SUCCESS';
+ didResult[i].didLocation = params.didLocation[i];
+ didResult[i].data = '0';
+ } else {
+ didResult[i] = {};
+ didResult[i].resultCode = "VEHICLE_DATA_NOT_AVAILABLE";
+ didResult[i].didLocation = params.didLocation[i];
+ didResult[i].data = '0';
+ }
}
- }
-
- if( params.encrypted ){
- result = 'ENCRYPTED';
- FFW.BasicCommunication.SendData( data );
- FFW.VehicleInfo.vehicleInfoReadDIDResponse( null, null, info, result, id );
- }else{
- FFW.VehicleInfo.vehicleInfoReadDIDResponse( dataResult, data, info, result, id );
- }
- },
-
- /**
- * Function returns response message to VehicleInfoRPC
- *
- * @type {Object} message
- */
- getVehicleData: function( message ) {
-
- return this.vehicleData[message.dataType].data;
-
- },
-
- /**
- * Function send all vehicle conditions on FFW.VehicleInfo.OnVehicleData fo
- * notification when data changes
- */
- onVehicleDataChanged: function() {
-
- var jsonData = {};
- for( var i in this.vehicleData ){
- jsonData[this.vehicleData[i].type] = this.vehicleData[i].data;
- }
- FFW.VehicleInfo.OnVehicleData( jsonData );
-
- }.observes( 'this.vehicleData.VEHICLEDATA_PRNDLSTATUS.data' )
-} );
+
+ FFW.VehicleInfo.vehicleInfoReadDIDResponse(didResult,
+ resultCode,
+ id);
+ },
+
+ /**
+ * Function returns response message to VehicleInfoRPC
+ *
+ * @type {Object} message
+ */
+ SubscribeVehicleData: function(message) {
+ if (SDL.SDLController.getApplicationModel(message.params.appID)) {
+
+ var subscribeVIData = {};
+ for (var key in message.params) {
+ if (message.params[key] && key != 'appID' && key in SDL.SDLController.getApplicationModel(message.params.appID).subscribedData && key !== "clusterModeStatus") {
+ SDL.SDLController.getApplicationModel(message.params.appID).subscribedData[key] = message.params[key];
+ subscribeVIData[key] = {
+ dataType: this.eVehicleDataType[key],
+ resultCode: "SUCCESS"
+ };
+ } else if (key != 'appID' && message.params[key] && key !== "clusterModeStatus") {
+ subscribeVIData[key] = {
+ dataType: this.eVehicleDataType[key],
+ resultCode: "VEHICLE_DATA_NOT_AVAILABLE"
+ }
+ } else if (key === "clusterModeStatus") {
+ subscribeVIData["clusterModes"] = {
+ dataType: this.eVehicleDataType["clusterModes"],
+ resultCode: "SUCCESS"
+ }
+ }
+ }
+ }
+ FFW.VehicleInfo.sendVISubscribeVehicleDataResult(SDL.SDLModel.resultCode["SUCCESS"], message.id, message.method, subscribeVIData);
+ },
+
+ /**
+ * Function returns response message to VehicleInfoRPC
+ *
+ * @type {Object} message
+ */
+ UnsubscribeVehicleData: function(message) {
+ if (SDL.SDLController.getApplicationModel(message.params.appID)) {
+
+ var subscribeVIData = {};
+ for (var key in message.params) {
+ if (message.params[key] && key != 'appID' && key in SDL.SDLController.getApplicationModel(message.params.appID).subscribedData && key !== "clusterModeStatus") {
+ SDL.SDLController.getApplicationModel(message.params.appID).subscribedData[key] = false;
+ subscribeVIData[key] = {
+ dataType: this.eVehicleDataType[key],
+ resultCode: "SUCCESS"
+ };
+ } else if (key != 'appID' && message.params[key] && key !== "clusterModeStatus") {
+ subscribeVIData[key] = {
+ dataType: this.eVehicleDataType[key],
+ resultCode: "VEHICLE_DATA_NOT_AVAILABLE"
+ }
+ } else if (key === "clusterModeStatus") {
+ subscribeVIData["clusterModes"] = {
+ dataType: this.eVehicleDataType["clusterModes"],
+ resultCode: "SUCCESS"
+ }
+ }
+ }
+ }
+ FFW.VehicleInfo.sendVISubscribeVehicleDataResult(SDL.SDLModel.resultCode["SUCCESS"], message.id, message.method, subscribeVIData);
+ },
+
+ /**
+ * Function returns response message to VehicleInfoRPC
+ *
+ * @type {Object} message
+ */
+ getVehicleData: function(message) {
+
+ var data = {}
+ text = "Params ", result = true;
+
+ for ( var key in message.params) {
+ if (key != "appID") {
+ if (this.vehicleData[key]) {
+ data[key] = this.vehicleData[key];
+ } else {
+ text += key + ", ";
+ result = false;
+ }
+ }
+ }
+
+ text += "are not avaliable";
+
+ if (result) {
+ FFW.VehicleInfo.sendGetVehicleDataResut(SDL.SDLModel.resultCode["SUCCESS"], message.id, message.method, data);
+ } else {
+ FFW.VehicleInfo.sendGetVehicleDataError(SDL.SDLModel.resultCode["DATA_NOT_AVAILABLE"], message.id, message.method, text, data);
+ }
+ },
+
+ /**
+ * Function send all vehicle conditions on FFW.VehicleInfo.OnVehicleData
+ * for notification when data changes
+ */
+ onVehicleDataChanged: function() {
+
+ var appID = null;
+
+ for (var i = 0; i < SDL.SDLModel.registeredApps.length; i++) {
+ appID = SDL.SDLModel.registeredApps[i].appID;
+ if (SDL.SDLController.getApplicationModel(appID).subscribedData["prndl"]) {
+
+ var jsonData = {};
+ jsonData["prndl"] = this.vehicleData["prndl"];
+ FFW.VehicleInfo.OnVehicleData(jsonData);
+ return;
+ }
+ }
+
+ }.observes('this.vehicleData.prndl')
+ });
diff --git a/SDL_Core/src/components/HMI/app/util/Audio.js b/SDL_Core/src/components/HMI/app/util/Audio.js
index 695a51567..9684d5b4e 100644
--- a/SDL_Core/src/components/HMI/app/util/Audio.js
+++ b/SDL_Core/src/components/HMI/app/util/Audio.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -36,7 +35,8 @@ SDL.Audio = {
audio: new Audio(),
- play: function( path ) {
+ play: function(path) {
+
this.audio.src = path;
this.audio.play();
}
diff --git a/SDL_Core/src/components/HMI/app/util/StreamAudio.js b/SDL_Core/src/components/HMI/app/util/StreamAudio.js
new file mode 100644
index 000000000..de78abae7
--- /dev/null
+++ b/SDL_Core/src/components/HMI/app/util/StreamAudio.js
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.StreamAudio
+ * @desc HTML5 Audio player
+ * @category utils
+ * @filesource app/util/StreamAudio.js
+ * @version 1.0
+ */
+
+SDL.StreamAudio = {
+
+ audio: new Audio(),
+
+ play: function(path) {
+
+ this.audio.src = path;
+ this.audio.play();
+ },
+
+ stop: function() {
+
+ this.audio.src = "";
+ this.audio.pause();
+ }
+} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/WarningView.js b/SDL_Core/src/components/HMI/app/view/WarningView.js
index 201ea5e9a..44ddf3f6a 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/WarningView.js
+++ b/SDL_Core/src/components/HMI/app/view/WarningView.js
@@ -1,113 +1,118 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.WarningViewg
- * @desc Warning representation
- * @category View
- * @filesource app/view/WarningView.js
- * @version 1.0
- */
-
-SDL.warningView = Em.ContainerView.extend( {
-
- classNameBindings:
- [
- 'fade:fadeAnimation:fadeWarning',
- 'hide:inactive_state',
- ],
-
- elementId: 'warning_view',
-
- childViews:
- [
- 'content',
- 'button'
- ],
-
- content: Em.View.extend( {
-
- classNames: 'message',
-
- template: Ember.Handlebars.compile( '<div class="warning_text"> {{SDL.locale.label.view_warning}}</div>' + '<div class="text">' + '<br>'
- + '<p>{{SDL.locale.label.view_warning_paragraph1}} </p><br>' + '<p> {{SDL.locale.label.view_warning_paragraph2}} </p><br>' + '</div>' )
- } ),
-
- button: Em.View.create( {
-
- elementId: 'warning_ok_button',
-
- classNameBindings:
- [
- 'isReady: visible_display',
- 'pressed:pressed'
- ],
-
- classNames:
- [
- 'okbut',
- 'ffw-button'
- ],
- /**
- * Check for webkit fillmode animation support Android < 4 version
- * doesnt support webkit animation fillmode
- */
- checkForCCS3AnimationSupport: function() {
- if( FFW.isAndroid ){
- return $( 'body' )[0].style.webkitAnimationFillMode === '';
- }else{
- return false;
- }
- },
-
- template: Ember.Handlebars.compile( '<span>OK</span>' ),
-
- /* this method is called when the web part is fully loaded */
- appLoaded: function() {
- var self = this;
- /** Show OK Button after 2 second delay */
- setTimeout( function() {
- self.set( 'isReady', true );
- }, 2000 );
- }.observes( 'SDL.appReady' ),
-
- actionDown: function( event ) {
- this.set( 'pressed', true );
- },
-
- actionUp: function( event ) {
- this.set( 'pressed', false );
-
- var self = this;
-
- this._parentView.set( 'fade', this.checkForCCS3AnimationSupport() );
-
- setTimeout( function() {
- self._parentView.set( 'hide', true );
- }, 1000 );
- }
- } )
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.WarningViewg
+ * @desc Warning representation
+ * @category View
+ * @filesource app/view/WarningView.js
+ * @version 1.0
+ */
+
+SDL.warningView = Em.ContainerView
+ .extend( {
+
+ classNameBindings: [
+ 'fade:fadeAnimation:fadeWarning', 'hide:inactive_state',
+ ],
+
+ elementId: 'warning_view',
+
+ childViews: [
+ 'content', 'button'
+ ],
+
+ content: Em.View
+ .extend( {
+
+ classNames: 'message',
+
+ template: Ember.Handlebars
+ .compile('<div class="warning_text"> {{SDL.locale.label.view_warning}}</div>'
+ + '<div class="text">'
+ + '<br>'
+ + '<p>{{SDL.locale.label.view_warning_paragraph1}} </p><br>'
+ + '<p> {{SDL.locale.label.view_warning_paragraph2}} </p><br>'
+ + '</div>')
+ }),
+
+ button: Em.View.create( {
+
+ elementId: 'warning_ok_button',
+
+ classNameBindings: [
+ 'isReady: visible_display', 'pressed:pressed'
+ ],
+
+ classNames: [
+ 'okbut', 'ffw-button'
+ ],
+ /**
+ * Check for webkit fillmode animation support Android < 4 version
+ * doesnt support webkit animation fillmode
+ */
+ checkForCCS3AnimationSupport: function() {
+
+ if (FFW.isAndroid) {
+ return $('body')[0].style.webkitAnimationFillMode === '';
+ } else {
+ return false;
+ }
+ },
+
+ template: Ember.Handlebars.compile('<span>OK</span>'),
+
+ /* this method is called when the web part is fully loaded */
+ appLoaded: function() {
+
+ var self = this;
+ /** Show OK Button after 2 second delay */
+ setTimeout(function() {
+
+ self.set('isReady', true);
+ }, 2000);
+ }.observes('SDL.appReady'),
+
+ actionDown: function(event) {
+
+ this.set('pressed', true);
+ },
+
+ actionUp: function(event) {
+
+ this.set('pressed', false);
+
+ var self = this;
+
+ this._parentView.set('fade', this
+ .checkForCCS3AnimationSupport());
+
+ setTimeout(function() {
+
+ self._parentView.set('hide', true);
+ }, 1000);
+ }
+ })
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/home/bottomControls.js b/SDL_Core/src/components/HMI/app/view/home/bottomControls.js
index 770701b3a..787955ce1 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/home/bottomControls.js
+++ b/SDL_Core/src/components/HMI/app/view/home/bottomControls.js
@@ -1,89 +1,90 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.BottomControlls
- * @desc BottomControlls module visual representation
- * @category View
- * @filesource app/view/BottomControls.js
- * @version 1.0
- */
-
-SDL.BottomControls = Em.ContainerView.extend( {
-
- elementId: 'app_bottom_controlls',
-
- childViews:
- [
- 'information',
- 'home',
- 'settings'
- ],
-
- information: Em.View.extend( {
- elementId: 'info_but',
- classNameBindings:
- [
- 'SDL.States.info.active:selected'
- ],
-
- template: Em.Handlebars.compile( '<div id="info_but_click"></div>' ),
-
- actionDown: function( event ) {
- if( !SDL.States.info.active ){
- SDL.States.goToStates( SDL.InfoController.activeState );
- }
- }
- } ),
-
- home: Em.View.extend( {
- elementId: 'home_but',
- classNameBindings:
- [
- 'SDL.States.home.active:selected'
- ],
-
- template: Em.Handlebars.compile( '<div id="home_but_click"></div>' ),
-
- actionDown: function( event ) {
- SDL.States.goToStates( 'home' );
- }
- } ),
-
- settings: Em.View.extend( {
- elementId: 'setting_but',
-
- classNameBindings: 'SDL.States.settings.active:selected',
-
- template: Em.Handlebars.compile( '<div id="setting_but_click"></div>' ),
-
- actionDown: function( event ) {
- if( !SDL.States.settings.active ){
- SDL.States.goToStates( 'settings' );
- }
- }
- } )
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.BottomControlls
+ * @desc BottomControlls module visual representation
+ * @category View
+ * @filesource app/view/BottomControls.js
+ * @version 1.0
+ */
+
+SDL.BottomControls = Em.ContainerView.extend( {
+
+ elementId: 'app_bottom_controlls',
+
+ childViews: [
+ 'information', 'home', 'settings'
+ ],
+
+ information: Em.View.extend( {
+ elementId: 'info_but',
+ classNameBindings: [
+ 'SDL.States.info.active:selected'
+ ],
+
+ template: Em.Handlebars.compile('<div id="info_but_click"></div>'),
+
+ actionDown: function(event) {
+
+ if (!SDL.States.info.active) {
+ if (SDL.InfoController.activeState === 'info.nonMedia') {
+ SDL.NonMediaController.activateCurrentApp();
+ } else {
+ SDL.States.goToStates(SDL.InfoController.activeState);
+ }
+ }
+ }
+ }),
+
+ home: Em.View.extend( {
+ elementId: 'home_but',
+ classNameBindings: [
+ 'SDL.States.home.active:selected'
+ ],
+
+ template: Em.Handlebars.compile('<div id="home_but_click"></div>'),
+
+ actionDown: function(event) {
+
+ SDL.States.goToStates('home');
+ }
+ }),
+
+ settings: Em.View.extend( {
+ elementId: 'setting_but',
+
+ classNameBindings: 'SDL.States.settings.active:selected',
+
+ template: Em.Handlebars.compile('<div id="setting_but_click"></div>'),
+
+ actionDown: function(event) {
+
+ if (!SDL.States.settings.active) {
+ SDL.States.goToStates('settings');
+ }
+ }
+ })
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/home/controlButtons.js b/SDL_Core/src/components/HMI/app/view/home/controlButtons.js
index 124cc928b..645c1dd93 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/home/controlButtons.js
+++ b/SDL_Core/src/components/HMI/app/view/home/controlButtons.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -32,22 +31,20 @@
* @version 1.0
*/
-SDL.ControlButtons = Em.ContainerView.create( {
+SDL.ControlButtons = Em.ContainerView
+ .create( {
- elementId: 'app_controlButtons',
+ elementId: 'app_controlButtons',
- childViews:
- [
+ childViews: [
'VRButton',
'buttonControls',
'driverDistractionControl',
- 'protocolVersion',
'infoTable',
'sendData',
- 'sendDataCheckBox',
- 'sendDataLabel',
'vehicleInfo',
'tbtClientState',
+ 'ExitApp',
'UILanguages',
'TTSVRLanguages',
'UILanguagesLabel',
@@ -58,312 +55,303 @@ SDL.ControlButtons = Em.ContainerView.create( {
'appTTSVRLang'
],
- /*
- * Label with name of UILanguages select
- */
- appUILang: SDL.Label.extend( {
+ /*
+ * Label with name of UILanguages select
+ */
+ appUILang: SDL.Label.extend( {
- elementId: 'appUILang',
+ elementId: 'appUILang',
- classNames: 'appUILang',
+ classNames: 'appUILang',
- contentBinding: 'SDL.SDLAppController.model.UILanguage'
- } ),
+ contentBinding: 'SDL.SDLAppController.model.UILanguage'
+ }),
- /*
- * Label with name of TTSVRLanguages select
- */
- appTTSVRLang: SDL.Label.extend( {
+ /*
+ * Label with name of TTSVRLanguages select
+ */
+ appTTSVRLang: SDL.Label.extend( {
- elementId: 'appTTSVRLang',
+ elementId: 'appTTSVRLang',
- classNames: 'appTTSVRLang',
+ classNames: 'appTTSVRLang',
- contentBinding: 'SDL.SDLAppController.model.TTSVRLanguage'
- } ),
+ contentBinding: 'SDL.SDLAppController.model.TTSVRLanguage'
+ }),
- /*
- * Label with name of UILanguages select
- */
- appUILanguagesLabel: SDL.Label.extend( {
+ /*
+ * Label with name of UILanguages select
+ */
+ appUILanguagesLabel: SDL.Label.extend( {
- elementId: 'appUILanguagesLabel',
+ elementId: 'appUILanguagesLabel',
- classNames: 'appUILanguagesLabel',
+ classNames: 'appUILanguagesLabel',
- content: 'application UI Languages'
- } ),
+ content: 'application UI Languages'
+ }),
- /*
- * Label with name of TTSVRLanguages select
- */
- appTTSVRLanguagesLabel: SDL.Label.extend( {
+ /*
+ * Label with name of TTSVRLanguages select
+ */
+ appTTSVRLanguagesLabel: SDL.Label.extend( {
- elementId: 'appTTSVRLanguagesLabel',
+ elementId: 'appTTSVRLanguagesLabel',
- classNames: 'appTTSVRLanguagesLabel',
+ classNames: 'appTTSVRLanguagesLabel',
- content: 'application (TTS + VR) Languages'
- } ),
+ content: 'application (TTS + VR) Languages'
+ }),
- /*
- * Label with name of UILanguages select
- */
- UILanguagesLabel: SDL.Label.extend( {
+ /*
+ * Label with name of UILanguages select
+ */
+ UILanguagesLabel: SDL.Label.extend( {
- elementId: 'UILanguagesLabel',
+ elementId: 'UILanguagesLabel',
- classNames: 'UILanguagesLabel',
+ classNames: 'UILanguagesLabel',
- content: 'UI Languages'
- } ),
+ content: 'UI Languages'
+ }),
- /*
- * Label with name of TTSVRLanguages select
- */
- TTSVRLanguagesLabel: SDL.Label.extend( {
+ /*
+ * Label with name of TTSVRLanguages select
+ */
+ TTSVRLanguagesLabel: SDL.Label.extend( {
- elementId: 'TTSVRLanguagesLabel',
+ elementId: 'TTSVRLanguagesLabel',
- classNames: 'TTSVRLanguagesLabel',
+ classNames: 'TTSVRLanguagesLabel',
- content: 'TTS + VR Languages'
- } ),
+ content: 'TTS + VR Languages'
+ }),
- /*
- * HMI element Select with list of supported UI component languages
- */
- UILanguages: Em.Select.extend( {
+ /*
+ * HMI element Select with list of supported UI component languages
+ */
+ UILanguages: Em.Select.extend( {
- elementId: 'UILanguages',
+ elementId: 'UILanguages',
- classNames: 'languageSelect',
+ classNames: 'languageSelect',
- contentBinding: 'SDL.SDLModel.sdlLanguagesList',
+ contentBinding: 'SDL.SDLModel.sdlLanguagesList',
- valueBinding: 'SDL.SDLModel.hmiUILanguage'
- } ),
+ valueBinding: 'SDL.SDLModel.hmiUILanguage'
+ }),
- /*
- * HMI element Select with list of supported TTS and VR component languages
- */
- TTSVRLanguages: Em.Select.extend( {
+ /*
+ * HMI element Select with list of supported TTS and VR component
+ * languages
+ */
+ TTSVRLanguages: Em.Select.extend( {
- elementId: 'TTSVRLanguages',
+ elementId: 'TTSVRLanguages',
- classNames: 'languageSelect',
+ classNames: 'languageSelect',
- contentBinding: 'SDL.SDLModel.sdlLanguagesList',
+ contentBinding: 'SDL.SDLModel.sdlLanguagesList',
- valueBinding: 'SDL.SDLModel.hmiTTSVRLanguage'
- } ),
+ valueBinding: 'SDL.SDLModel.hmiTTSVRLanguage'
+ }),
- /**
- * Sending data from HMI for processing in SDLCore
- */
- sendData: SDL.Button.create( {
- elementId: 'sendData',
- classNames: 'sendData btnNotPressed',
- action: function() {
- FFW.BasicCommunication.SendData( null );
- },
- text: 'Send Data'
- } ),
+ /**
+ * Sending data from HMI for processing in SDLCore
+ */
+ sendData: SDL.Button.create( {
+ elementId: 'sendData',
+ classNames: 'sendData btnNotPressed',
+ action: function() {
- /**
- * Select for extended param of SendData
- */
- sendDataCheckBox: Em.Checkbox.extend( {
+ FFW.BasicCommunication.OnSystemRequest();
+ },
+ text: 'OnSystemRequest',
+ templateName: 'text'
+ }),
- elementId: 'sendDataCheckBox',
-
- classNames: 'sendDataCheckBox',
-
- checkedBinding: 'SDL.SDLModel.sendDataExtend'
-
- } ),
-
- /*
- * Label for sendDataCheckBox
- */
- sendDataLabel: SDL.Label.extend( {
-
- elementId: 'sendDataLabel',
-
- classNames: 'sendDataLabel',
-
- content: 'Use URL'
- } ),
-
- /**
- * VehicleInfo button
- */
- vehicleInfo: SDL.Button.create( {
- elementId: 'vehicleInfoButton',
- classNames: 'vehicleInfoButton btn',
- text: 'Vehicle Info',
- action: function() {
- // this._super();
- SDL.VehicleInfo.toggleActivity();
- }
- } ),
-
- /**
- * TBT Client State button
- */
- tbtClientState: SDL.Button.create( {
- elementId: 'tbtClientStateButton',
- classNames: 'tbtClientStateButton btn',
- text: 'TBT Client State',
- action: function() {
- // this._super();
- SDL.TBTClientStateView.toggleActivity();
- }
- } ),
-
- /**
- * Voice Recognition button
- */
- VRButton: SDL.Button.create( {
- elementId: 'VRButton',
- classNames: 'VRButton',
- action: 'activateVRPopUp',
- target: 'SDL.SDLController'
- } ),
-
- infoTable: Em.ContainerView.extend( {
- elementId: 'infoTable',
-
- classNames: 'infoTable',
-
- childViews:
- [
- 'globalPropertiesLabel',
- 'gpHelpData',
- 'gpTimeoutData'
- ],
-
- globalPropertiesLabel: SDL.Label.extend( {
-
- elementId: 'sdlGPLabel',
-
- classNames: 'sdlGPLabel',
-
- content: 'HELP_PROMPT: TIMEOUT_PROMPT:'
- } ),
+ /**
+ * VehicleInfo button
+ */
+ vehicleInfo: SDL.Button.create( {
+ elementId: 'vehicleInfoButton',
+ classNames: 'vehicleInfoButton btn',
+ text: 'Vehicle Info',
+ action: function() {
+
+ // this._super();
+ SDL.VehicleInfo.toggleActivity();
+ },
+ templateName: 'text'
+ }),
+
+ /**
+ * TBT Client State button
+ */
+ tbtClientState: SDL.Button.create( {
+ elementId: 'tbtClientStateButton',
+ classNames: 'tbtClientStateButton btn',
+ text: 'TBT Client State',
+ action: function() {
+
+ // this._super();
+ SDL.TBTClientStateView.toggleActivity();
+ },
+ templateName: 'text'
+ }),
+
+ /**
+ * Exit Application button opens Exit Application reasons popup
+ */
+ ExitApp: SDL.Button.create( {
+ elementId: 'exitApp',
+ classNames: 'exitApp btn',
+ text: 'Exit Application',
+ action: function() {
+
+ // this._super();
+ SDL.ExitApp.toggleActivity();
+ },
+ templateName: 'text'
+ }),
+
+ /**
+ * Voice Recognition button
+ */
+ VRButton: SDL.Button.create( {
+ elementId: 'VRButton',
+ classNames: 'VRButton',
+ action: 'activateVRPopUp',
+ target: 'SDL.SDLController'
+ }),
+
+ infoTable: Em.ContainerView
+ .extend( {
+ elementId: 'infoTable',
+
+ classNames: 'infoTable',
+
+ childViews: [
+ 'globalPropertiesLabel',
+ 'gpHelpData',
+ 'gpTimeoutData',
+ 'gpAUTOCOMPLETE'
+ ],
- gpHelpData: SDL.Label.extend( {
+ globalPropertiesLabel: SDL.Label.extend( {
- elementId: 'sdlGPHData',
+ elementId: 'sdlGPLabel',
- classNames: 'sdlGPData',
+ classNames: 'sdlGPLabel',
- contentBinding: 'this.propertiesData',
+ content: 'HELP_PROMPT: TIMEOUT_PROMPT: AUTOCOMPLETE_TEXT:'
+ }),
- propertiesData: function() {
- var str = '';
- if( SDL.SDLModel.globalProperties.helpPrompt ){
- var i = 0;
+ gpHelpData: SDL.Label.extend( {
- for( i = 0; i < SDL.SDLModel.globalProperties.helpPrompt.length; i++ ){
- str += SDL.SDLModel.globalProperties.helpPrompt[i].text + ' ';
- }
- }
- return str;
- }.property( 'SDL.SDLModel.globalProperties.helpPrompt.@each.text' )
- } ),
+ elementId: 'sdlGPHData',
- gpTimeoutData: SDL.Label.extend( {
+ classNames: 'sdlGPData',
- elementId: 'sdlGPTData',
+ contentBinding: 'this.propertiesData',
- classNames: 'sdlGPData',
+ propertiesData: function() {
- contentBinding: 'this.propertiesData',
+ var str = '';
+ if (SDL.SDLAppController.model && SDL.SDLAppController.model.globalProperties.helpPrompt) {
+ var i = 0;
- propertiesData: function() {
- var str = '';
- if( SDL.SDLModel.globalProperties.timeoutPrompt ){
- var i = 0;
- for( i = 0; i < SDL.SDLModel.globalProperties.timeoutPrompt.length; i++ ){
- str += SDL.SDLModel.globalProperties.timeoutPrompt[i].text + ' ';
- }
- }
+ for (i = 0; i < SDL.SDLAppController.model.globalProperties.helpPrompt.length; i++) {
+ str += SDL.SDLAppController.model.globalProperties.helpPrompt[i].text
+ + ' ';
+ }
+ }
+ return str;
+ }.property('SDL.SDLAppController.model.globalProperties.helpPrompt.@each.text')
+ }),
- return str;
- }.property( 'SDL.SDLModel.globalProperties.timeoutPrompt.@each.text' )
- } )
- } ),
+ gpTimeoutData: SDL.Label.extend( {
- driverDistractionControl: Em.ContainerView.extend( {
- elementId: 'driverDistractionControl',
+ elementId: 'sdlGPTData',
- classNames: 'driverDistractionControl',
+ classNames: 'sdlGPData',
- childViews:
- [
- 'driverDistractionLabel',
- 'driverDistractionCheckBox'
- ],
+ contentBinding: 'this.propertiesData',
- driverDistractionLabel: SDL.Label.extend( {
+ propertiesData: function() {
- elementId: 'driverDistractionControlLabel',
+ var str = '';
+ if (SDL.SDLAppController.model && SDL.SDLAppController.model.globalProperties.timeoutPrompt) {
+ var i = 0;
+ for (i = 0; i < SDL.SDLAppController.model.globalProperties.timeoutPrompt.length; i++) {
+ str += SDL.SDLAppController.model.globalProperties.timeoutPrompt[i].text
+ + ' ';
+ }
+ }
- classNames: 'driverDistractionControlLabel',
+ return str;
+ }.property('SDL.SDLAppController.model.globalProperties.timeoutPrompt.@each.text')
+ }),
- content: 'Driver Distraction'
- } ),
+ gpAUTOCOMPLETE: SDL.Label.extend( {
- driverDistractionCheckBox: Em.Checkbox.extend( {
+ elementId: 'sdlGPAUTOCOMPLETE',
- elementId: 'driverDistractionControlCheckBox',
+ classNames: 'sdlGPData',
- classNames: 'driverDistractionControlCheckBox',
+ contentBinding: 'SDL.SDLAppController.model.globalProperties.keyboardProperties.autoCompleteText',
- checkedBinding: 'SDL.SDLModel.driverDistractionState'
+ propertiesData: function() {
- } )
- } ),
+// var str = '';
+// if (SDL.SDLAppController.model && SDL.SDLAppController.model.globalProperties.timeoutPrompt) {
+// var i = 0;
+// for (i = 0; i < SDL.SDLAppController.model.globalProperties.timeoutPrompt.length; i++) {
+// str += SDL.SDLAppController.model.globalProperties.timeoutPrompt[i].text
+// + ' ';
+// }
+// }
+//
+// return str;
+ }.property('SDL.SDLAppController.model.globalProperties.keyboardProperties.autoCompleteText.@each')
+ })
+ }),
- protocolVersion: Em.ContainerView.extend( {
- elementId: 'protocolVersion',
+ driverDistractionControl: Em.ContainerView.extend( {
+ elementId: 'driverDistractionControl',
- classNames: 'protocolVersion',
+ classNames: 'driverDistractionControl',
- childViews:
- [
- 'protocolVersionLabel',
- 'protocolVersionCheckBox'
+ childViews: [
+ 'driverDistractionLabel', 'driverDistractionCheckBox'
],
- protocolVersionLabel: SDL.Label.extend( {
+ driverDistractionLabel: SDL.Label.extend( {
- elementId: 'protocolVersionLabel',
+ elementId: 'driverDistractionControlLabel',
- classNames: 'protocolVersionLabel',
+ classNames: 'driverDistractionControlLabel',
- content: 'Protocol version V2'
- } ),
+ content: 'DD'
+ }),
- protocolVersionCheckBox: Em.Checkbox.extend( {
+ driverDistractionCheckBox: Em.Checkbox.extend( {
- elementId: 'protocolVersionCheckBox',
+ elementId: 'driverDistractionControlCheckBox',
- classNames: 'protocolVersionCheckBox',
+ classNames: 'driverDistractionControlCheckBox',
- checkedBinding: 'SDL.SDLModel.protocolVersion2State'
+ checkedBinding: 'SDL.SDLModel.driverDistractionState'
- } )
- } ),
+ })
+ }),
- buttonControls: Em.ContainerView.extend( {
- elementId: 'buttonControls',
+ buttonControls: Em.ContainerView.extend( {
+ elementId: 'buttonControls',
- classNames: 'buttonControls',
+ classNames: 'buttonControls',
- childViews:
- [
+ childViews: [
'ContainerControlls',
'OneBtn',
'TwoBtn',
@@ -377,149 +365,166 @@ SDL.ControlButtons = Em.ContainerView.create( {
'ZiroBtn'
],
- ContainerControlls: Em.ContainerView.extend( {
- elementId: 'ContainerControlls',
+ ContainerControlls: Em.ContainerView.extend( {
+ elementId: 'ContainerControlls',
- classNames: 'ContainerControlls',
+ classNames: 'ContainerControlls',
- childViews:
- [
- 'UpBtn',
- 'DownBtn',
- 'LeftBtn',
- 'RightBtn',
- 'OkBtn'
+ childViews: [
+ 'UpBtn', 'DownBtn', 'LeftBtn', 'RightBtn', 'OkBtn'
],
- /** Up button */
- UpBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'TUNEUP',
- classNames: 'UpBtn',
+ /** Up button */
+ UpBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'TUNEUP',
+ classNames: 'UpBtn',
+ time: 0,
+ presetName: 'TUNEUP'
+ }),
+
+ /** Down button */
+ DownBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'TUNEDOWN',
+ classNames: 'DownBtn',
+ time: 0,
+ presetName: 'TUNEDOWN'
+ }),
+
+ /** Left button */
+ LeftBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'SEEKLEFT',
+ classNames: 'LeftBtn',
+ time: 0,
+ presetName: 'SEEKLEFT'
+ }),
+
+ /** Right button */
+ RightBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'SEEKRIGHT',
+ classNames: 'RightBtn',
+ time: 0,
+ presetName: 'SEEKRIGHT'
+ }),
+
+ /** Ok button */
+ OkBtn: SDL.Button.create( {
+ elementId: 'OK',
+ classNames: 'OkBtn',
+ time: 0,
+ presetName: 'OK',
+ actionDown: function() {
+
+ this._super();
+ SDL.SDLController
+ .onSoftButtonOkActionDown(this.presetName);
+ },
+ actionUp: function() {
+
+ this._super();
+ SDL.SDLController
+ .onSoftButtonOkActionUp(this.presetName);
+ }
+ })
+ }),
+
+ /** One button */
+ OneBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'PRESET_1',
+ classNames: 'OneBtn btnNotPressed',
+ text: '1',
time: 0,
- presetName: 'TUNEUP'
- } ),
-
- /** Down button */
- DownBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'TUNEDOWN',
- classNames: 'DownBtn',
+ presetName: 'PRESET_1',
+ templateName: 'text'
+ }),
+
+ /** Two button */
+ TwoBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'PRESET_2',
+ classNames: 'TwoBtn btnNotPressed',
+ text: '2',
time: 0,
- presetName: 'TUNEDOWN'
- } ),
-
- /** Left button */
- LeftBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'SEEKLEFT',
- classNames: 'LeftBtn',
+ presetName: 'PRESET_2',
+ templateName: 'text'
+ }),
+
+ /** Three button */
+ ThreeBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'PRESET_3',
+ classNames: 'ThreeBtn btnNotPressed',
+ text: '3',
time: 0,
- presetName: 'SEEKLEFT'
- } ),
-
- /** Right button */
- RightBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'SEEKRIGHT',
- classNames: 'RightBtn',
+ presetName: 'PRESET_3',
+ templateName: 'text'
+ }),
+
+ /** Four button */
+ FourBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'PRESET_4',
+ classNames: 'FourBtn btnNotPressed',
+ text: '4',
time: 0,
- presetName: 'SEEKRIGHT'
- } ),
-
- /** Ok button */
- OkBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'OK',
- classNames: 'OkBtn',
+ presetName: 'PRESET_4',
+ templateName: 'text'
+ }),
+
+ /** Five button */
+ FiveBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'PRESET_5',
+ classNames: 'FiveBtn btnNotPressed',
+ text: '5',
+ time: 0,
+ presetName: 'PRESET_5',
+ templateName: 'text'
+ }),
+
+ /** One button */
+ SixBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'PRESET_6',
+ classNames: 'SixBtn btnNotPressed',
+ text: '6',
+ time: 0,
+ presetName: 'PRESET_6',
+ templateName: 'text'
+ }),
+
+ /** One button */
+ SevenBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'PRESET_7',
+ classNames: 'SevenBtn btnNotPressed',
+ text: '7',
+ time: 0,
+ presetName: 'PRESET_7',
+ templateName: 'text'
+ }),
+
+ /** One button */
+ EightBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'PRESET_8',
+ classNames: 'EightBtn btnNotPressed',
+ text: '8',
+ time: 0,
+ presetName: 'PRESET_8',
+ templateName: 'text'
+ }),
+
+ /** One button */
+ NineBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'PRESET_9',
+ classNames: 'NineBtn btnNotPressed',
+ text: '9',
+ time: 0,
+ presetName: 'PRESET_9',
+ templateName: 'text'
+ }),
+
+ /** One button */
+ ZiroBtn: SDL.Button.create(SDL.PresetEvents, {
+ elementId: 'PRESET_0',
+ classNames: 'ZiroBtn btnNotPressed',
+ text: '0',
time: 0,
- presetName: 'OK'
- } )
- } ),
-
- /** One button */
- OneBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'PRESET_1',
- classNames: 'OneBtn btnNotPressed',
- text: '1',
- time: 0,
- presetName: 'PRESET_1'
- } ),
-
- /** Two button */
- TwoBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'PRESET_2',
- classNames: 'TwoBtn btnNotPressed',
- text: '2',
- time: 0,
- presetName: 'PRESET_2'
- } ),
-
- /** Three button */
- ThreeBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'PRESET_3',
- classNames: 'ThreeBtn btnNotPressed',
- text: '3',
- time: 0,
- presetName: 'PRESET_3'
- } ),
-
- /** Four button */
- FourBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'PRESET_4',
- classNames: 'FourBtn btnNotPressed',
- text: '4',
- time: 0,
- presetName: 'PRESET_4'
- } ),
-
- /** Five button */
- FiveBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'PRESET_5',
- classNames: 'FiveBtn btnNotPressed',
- text: '5',
- time: 0,
- presetName: 'PRESET_5'
- } ),
-
- /** One button */
- SixBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'PRESET_6',
- classNames: 'SixBtn btnNotPressed',
- text: '6',
- time: 0,
- presetName: 'PRESET_6'
- } ),
-
- /** One button */
- SevenBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'PRESET_7',
- classNames: 'SevenBtn btnNotPressed',
- text: '7',
- time: 0,
- presetName: 'PRESET_7'
- } ),
-
- /** One button */
- EightBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'PRESET_8',
- classNames: 'EightBtn btnNotPressed',
- text: '8',
- time: 0,
- presetName: 'PRESET_8'
- } ),
-
- /** One button */
- NineBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'PRESET_9',
- classNames: 'NineBtn btnNotPressed',
- text: '9',
- time: 0,
- presetName: 'PRESET_9'
- } ),
-
- /** One button */
- ZiroBtn: SDL.Button.create( SDL.PresetEvents, {
- elementId: 'PRESET_0',
- classNames: 'ZiroBtn btnNotPressed',
- text: '0',
- time: 0,
- presetName: 'PRESET_0'
- } )
- } )
-} ); \ No newline at end of file
+ presetName: 'PRESET_0',
+ templateName: 'text'
+ })
+ })
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/home/statusClimateView.js b/SDL_Core/src/components/HMI/app/view/home/statusClimateView.js
index 5d8127611..01b6dc636 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/home/statusClimateView.js
+++ b/SDL_Core/src/components/HMI/app/view/home/statusClimateView.js
@@ -1,69 +1,66 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.StatusClimateView
- * @desc Climate statusbar visual representation
- * @category View
- * @filesource app/view/climate/StatusClimateView.js
- * @version 1.0
- */
-
-SDL.StatusClimateView = Em.ContainerView.extend( {
-
- elementId: 'status_climate',
-
- classNames:
- [
- 'status_bar'
- ],
-
- /** Climate components */
- childViews:
- [
- 'statusHome'
- ],
-
- /** Label for Home screen */
- statusHome: SDL.Label.create( {
- elementId: 'status_climate_label',
-
- classNames:
- [
- 'visible'
- ],
-
- content: 'Climate'
- } ),
-
- /**
- * Select phone state should be called when user press phone statusbar
- */
- actionUp: function( event ) {
- SDL.States.goToStates( 'climate' );
- }
-
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.StatusClimateView
+ * @desc Climate statusbar visual representation
+ * @category View
+ * @filesource app/view/climate/StatusClimateView.js
+ * @version 1.0
+ */
+
+SDL.StatusClimateView = Em.ContainerView.extend( {
+
+ elementId: 'status_climate',
+
+ classNames: [
+ 'status_bar'
+ ],
+
+ /** Climate components */
+ childViews: [
+ 'statusHome'
+ ],
+
+ /** Label for Home screen */
+ statusHome: SDL.Label.create( {
+ elementId: 'status_climate_label',
+
+ classNames: [
+ 'visible'
+ ],
+
+ content: 'Climate'
+ }),
+
+ /**
+ * Select phone state should be called when user press phone statusbar
+ */
+ actionUp: function(event) {
+
+ SDL.States.goToStates('climate');
+ }
+
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/home/statusInfoView.js b/SDL_Core/src/components/HMI/app/view/home/statusInfoView.js
index 406b1b803..1241d87c3 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/home/statusInfoView.js
+++ b/SDL_Core/src/components/HMI/app/view/home/statusInfoView.js
@@ -1,64 +1,60 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.StatusInfoView
- * @desc Component for Information Status bar
- * @category view
- * @filesource app/view/navigation/StatusNavigationView.js
- * @version 1.0
- */
-SDL.StatusInfoView = Em.ContainerView.extend( {
- /** View Id */
- elementId: 'status_info',
-
- classNames:
- [
- 'status_bar',
- 'hidden'
- ],
-
- classNameBindings:
- [
- 'SDL.States.info.active:selected'
- ],
-
- /** Navigation components */
- childViews:
- [
- 'statusHome'
- ],
-
- /** Label for Home screen */
- statusHome: SDL.Label.create( {
- elementId: 'status_info_label',
- content: 'Information'
- } ),
-
- actionUp: function( event ) {
- SDL.States.goToStates( SDL.InfoController.activeState );
- }
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.StatusInfoView
+ * @desc Component for Information Status bar
+ * @category view
+ * @filesource app/view/home/statusNavigationView.js
+ * @version 1.0
+ */
+SDL.StatusInfoView = Em.ContainerView.extend( {
+ /** View Id */
+ elementId: 'status_info',
+
+ classNames: [
+ 'status_bar', 'hidden'
+ ],
+
+ classNameBindings: [
+ 'SDL.States.info.active:selected'
+ ],
+
+ /** Navigation components */
+ childViews: [
+ 'statusHome'
+ ],
+
+ /** Label for Home screen */
+ statusHome: SDL.Label.create( {
+ elementId: 'status_info_label',
+ content: 'Information'
+ }),
+
+ actionUp: function(event) {
+
+ SDL.States.goToStates(SDL.InfoController.activeState);
+ }
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/home/statusMediaView.js b/SDL_Core/src/components/HMI/app/view/home/statusMediaView.js
index 29aaa3570..53d72b565 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/home/statusMediaView.js
+++ b/SDL_Core/src/components/HMI/app/view/home/statusMediaView.js
@@ -1,89 +1,99 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.StatusMediaView
- * @desc Component for Media Status bar
- * @category view
- * @filesource app/view/media/StatusMediaView.js
- * @version 1.0
- */
-SDL.StatusMediaView = Em.ContainerView.extend( {
-
- elementId: 'media_status',
-
- classNameBindings:
- [
- 'SDL.States.media.active:selected'
- ],
-
- /** Climate components */
- childViews:
- [
- 'statusHome',
- 'statusInfo'
- ],
-
- /** Label for Home screen */
- statusHome: SDL.Label.extend( {
- elementId: 'media_status_homestatus',
- classNameBindings:
- [
- 'SDL.States.home.active:visible'
- ],
- contentBinding: Ember.Binding.oneWay( 'SDL.locale.label.view_mediaStatus_entertainment' )
- } ),
-
- statusInfo: Em.ContainerView.extend( {
- elementId: 'media_status_radio_container',
-
- childViews:
- [
- 'info'
- ],
-
- info: Em.View.extend( {
- elementId: 'media_status_radio_info',
- controlerBinding: 'SDL.MediaController',
- /** Bind class for visual representation */
- classNameBindings:
- [
- 'SDL.States.home.active:hidden_display:visible_display'
- ],
- /** Define module layout */
- template: Em.Handlebars.compile( '<div class="statusInfo">' + '<div class="station">'
- + '<span {{bindAttr class="SDL.CDModel.active:visible_display"}}>{{SDL.CDModel.statusBar}}</span>' + // title
- '<span {{bindAttr class="SDL.SDLAppController.model.active:visible_display"}}>{{SDL.SDLAppController.model.statusText}}</span>' + // SDL
- '</div>' + '<div class="icon cdIco"' + '{{bindAttr class="SDL.CDModel.active:cdIco"}}' + // CD
- // icon
- '{{bindAttr class="SDL.SDLAppController.model.active:appIco"}}>' + // SDL
- '</div>' + '</div>' )
- } )
- } ),
- actionUp: function( event ) {
- SDL.States.goToStates( SDL.MediaController.activeState );
- }
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.StatusMediaView
+ * @desc Component for Media Status bar
+ * @category view
+ * @filesource app/view/media/StatusMediaView.js
+ * @version 1.0
+ */
+SDL.StatusMediaView = Em.ContainerView
+ .extend( {
+
+ elementId: 'media_status',
+
+ classNameBindings: [
+ 'SDL.States.media.active:selected'
+ ],
+
+ /** Climate components */
+ childViews: [
+ 'statusHome', 'statusInfo'
+ ],
+
+ /** Label for Home screen */
+ statusHome: SDL.Label.extend( {
+ elementId: 'media_status_homestatus',
+ classNameBindings: [
+ 'SDL.States.home.active:visible'
+ ],
+ contentBinding: Ember.Binding
+ .oneWay('SDL.locale.label.view_mediaStatus_entertainment')
+ }),
+
+ statusInfo: Em.ContainerView
+ .extend( {
+ elementId: 'media_status_radio_container',
+
+ childViews: [
+ 'info'
+ ],
+
+ info: Em.View
+ .extend( {
+ elementId: 'media_status_radio_info',
+ controlerBinding: 'SDL.MediaController',
+ /** Bind class for visual representation */
+ classNameBindings: [
+ 'SDL.States.home.active:hidden_display:visible_display'
+ ],
+ /** Define module layout */
+ template: Em.Handlebars
+ .compile('<div class="statusInfo">'
+ + '<div class="station">'
+ + '<span {{bindAttr class="SDL.CDModel.active:visible_display"}}>{{SDL.CDModel.statusBar}}</span>'
+ + // title
+ '<span {{bindAttr class="SDL.SDLAppController.model.active:visible_display"}}>{{SDL.SDLAppController.model.statusText}}</span>'
+ + // SDL
+ '</div>'
+ + '<div class="icon cdIco"'
+ + '{{bindAttr class="SDL.CDModel.active:cdIco"}}'
+ + // CD
+ // icon
+ '{{bindAttr class="SDL.SDLAppController.model.active:appIco"}}>'
+ + // SDL
+ '</div>' + '</div>')
+ })
+ }),
+ actionUp: function(event) {
+
+ if (SDL.MediaController.activeState.indexOf('media.sdlmedia') >= 0) {
+ SDL.SDLMediaController.activateCurrentApp();
+ } else {
+ SDL.States.goToStates(SDL.MediaController.activeState);
+ }
+ }
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/home/statusNavigationView.js b/SDL_Core/src/components/HMI/app/view/home/statusNavigationView.js
index a49435b56..e1d5bac3d 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/home/statusNavigationView.js
+++ b/SDL_Core/src/components/HMI/app/view/home/statusNavigationView.js
@@ -1,60 +1,59 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.StatusNavigationView
- * @desc Component for Navigation Status bar
- * @category view
- * @filesource app/view/navigation/StatusNavigationView.js
- * @version 1.0
- */
-SDL.StatusNavigationView = Em.ContainerView.extend( {
- /** View Id */
- elementId: 'status_nav',
-
- classNames: 'status_bar',
-
- /** Navigation components */
- childViews:
- [
- 'statusHome'
- ],
-
- /** Label for Home screen */
- statusHome: SDL.Label.create( {
- elementId: 'navigation_status_label',
- classNames: 'visible',
- content: 'Navigation'
- } ),
-
- /**
- * Select phone state should be called when user press phone statusbar
- */
- actionUp: function( event ) {
- SDL.States.goToStates( 'navigation' );
- }
-
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.StatusNavigationView
+ * @desc Component for Navigation Status bar
+ * @category view
+ * @filesource app/view/home/statusNavigationView.js
+ * @version 1.0
+ */
+SDL.StatusNavigationView = Em.ContainerView.extend( {
+ /** View Id */
+ elementId: 'status_nav',
+
+ classNames: 'status_bar',
+
+ /** Navigation components */
+ childViews: [
+ 'statusHome'
+ ],
+
+ /** Label for Home screen */
+ statusHome: SDL.Label.create( {
+ elementId: 'navigation_status_label',
+ classNames: 'visible',
+ content: 'Navigation'
+ }),
+
+ /**
+ * Select phone state should be called when user press phone statusbar
+ */
+ actionUp: function(event) {
+
+ SDL.States.goToStates('navigation');
+ }
+
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/home/statusPhoneView.js b/SDL_Core/src/components/HMI/app/view/home/statusPhoneView.js
index 52247b4a0..034d9c782 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/home/statusPhoneView.js
+++ b/SDL_Core/src/components/HMI/app/view/home/statusPhoneView.js
@@ -1,71 +1,68 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.StatusPhoneView
- * @desc Phone statusbar visual representation
- * @category View
- * @filesource app/view/phone/StatusPhoneView.js
- * @version 1.0
- */
-
-SDL.StatusPhoneView = Em.ContainerView.extend( {
-
- elementId: 'status_phone',
-
- classNames:
- [
- 'status_bar'
- ],
-
- /** Bind class for visual representation */
- classNameBindings:
- [
- 'SDL.States.phone.active:selected'
- ],
-
- /** Climate components */
- childViews:
- [
- 'statusHome',
- ],
-
- /** Label for Home screen */
- statusHome: SDL.Label.extend( {
- elementId: 'status_phone_label',
-
- classNames: 'visible',
-
- content: 'Phone'
- } ),
-
- /**
- * Select phone state should be called when user press phone statusbar
- */
- actionUp: function( event ) {
- SDL.States.goToStates( 'phone.dialpad' );
- }
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.StatusPhoneView
+ * @desc Phone statusbar visual representation
+ * @category View
+ * @filesource app/view/phone/StatusPhoneView.js
+ * @version 1.0
+ */
+
+SDL.StatusPhoneView = Em.ContainerView.extend( {
+
+ elementId: 'status_phone',
+
+ classNames: [
+ 'status_bar'
+ ],
+
+ /** Bind class for visual representation */
+ classNameBindings: [
+ 'SDL.States.phone.active:selected'
+ ],
+
+ /** Climate components */
+ childViews: [
+ 'statusHome',
+ ],
+
+ /** Label for Home screen */
+ statusHome: SDL.Label.extend( {
+ elementId: 'status_phone_label',
+
+ classNames: 'visible',
+
+ content: 'Phone'
+ }),
+
+ /**
+ * Select phone state should be called when user press phone statusbar
+ */
+ actionUp: function(event) {
+
+ SDL.States.goToStates('phone.dialpad');
+ }
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/home/topControls.js b/SDL_Core/src/components/HMI/app/view/home/topControls.js
index 55185665d..0e3508ff5 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/home/topControls.js
+++ b/SDL_Core/src/components/HMI/app/view/home/topControls.js
@@ -1,59 +1,57 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.ClimateView
- * @desc Climate module visual representation
- * @category View
- * @filesource app/view/climate/ClimateView.js
- * @version 1.0
- */
-
-SDL.TopControls = Em.ContainerView.extend( {
-
- elementId: 'app_top_menu_cont',
-
- childViews:
- [
- 'controls'
- ],
-
- controls: Em.ContainerView.extend( {
- elementId: 'top_controls',
-
- childViews:
- [
- 'clock'
- ],
-
- clock: Em.View.extend( {
- elementId: 'clock',
-
- template: Em.Handlebars.compile( '<div id="time_num">1:47 86°</div>' )
-
- } )
- } )
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.ClimateView
+ * @desc Climate module visual representation
+ * @category View
+ * @filesource app/view/climate/ClimateView.js
+ * @version 1.0
+ */
+
+SDL.TopControls = Em.ContainerView.extend( {
+
+ elementId: 'app_top_menu_cont',
+
+ childViews: [
+ 'controls'
+ ],
+
+ controls: Em.ContainerView.extend( {
+ elementId: 'top_controls',
+
+ childViews: [
+ 'clock'
+ ],
+
+ clock: Em.View.extend( {
+ elementId: 'clock',
+
+ template: Em.Handlebars
+ .compile('<div id="time_num">1:47 86°</div>')
+
+ })
+ })
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/homeView.js b/SDL_Core/src/components/HMI/app/view/homeView.js
index cc0052345..4663996af 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/homeView.js
+++ b/SDL_Core/src/components/HMI/app/view/homeView.js
@@ -1,40 +1,40 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.HomeView
- * @desc Home screen visual representation
- * @category View
- * @filesource app/view/home/HomeView.js
- * @version 1.0
- */
-
-SDL.HomeView = Em.ContainerView.create( {
-
- classNameBindings: 'SDL.States.home.active:active_state:inactive_state',
-
- elementId: 'home'
-} );
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * · Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * · Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * · Neither the name of the Ford Motor Company nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.HomeView
+ * @desc Home screen visual representation
+ * @category View
+ * @filesource app/view/home/HomeView.js
+ * @version 1.0
+ */
+
+SDL.HomeView = Em.ContainerView.create( {
+
+ classNameBindings: 'SDL.States.home.active:active_state:inactive_state',
+
+ elementId: 'home'
+} );
diff --git a/SDL_Core/src/components/HMI/app/view/info/alertsView.js b/SDL_Core/src/components/HMI/app/view/info/alertsView.js
index 6f6378a80..6e4e935f5 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/info/alertsView.js
+++ b/SDL_Core/src/components/HMI/app/view/info/alertsView.js
@@ -1,129 +1,118 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.InfoAlertsView
- * @desc Info Alerts module visual representation
- * @category View
- * @filesource app/view/sinfo/InfoAlertsView.js
- * @version 1.0
- */
-
-SDL.InfoAlertsView = Em.ContainerView.create( {
- /** Bind class for visual representation */
- classNameBindings:
- [
- 'SDL.States.info.alerts.active:active_state:inactive_state'
- ],
-
- elementId: 'info_alerts',
-
- childViews:
- [
- 'listCaption',
- 'mainlist',
- 'rightlist'
- ],
-
- listCaption: SDL.LabelPlusToggleButton.extend( {
- elementId: 'info_alerts_listCaption',
- labelContentBinding: 'SDL.locale.label.view_info_alerts_sort',
- tButtonValue: 0,
- tButtonRange: 2,
- tButtonLabelsBinding: 'SDL.locale.label.view_info_alerts_dateIcon',
- labelDisabled: true,
- tButtonDisabled: true
- } ),
-
- mainlist: SDL.List.extend( {
-
- elementId: 'info_alerts_list',
-
- itemsOnPage: 6,
-
- items:
- [
- {
- type: SDL.Label,
-
- params: {
- disabled: true
- }
- },
- {
- type: SDL.Button,
- params: {
- classNames:
- [
- 'ember-view ffw-button notpressed list-item disabled active'
- ],
- textBinding: 'SDL.locale.label.view_info_alerts_911Assist',
- templateName: 'rightIcon',
- icon: 'images/info/ico_emergcyAndEnvelope.png',
- righticon: 'images/info/ico_arrowLock.png',
- disabled: true
- }
- }
- ]
- } ),
-
- rightlist: SDL.List.extend( {
-
- elementId: 'info_alerts_rightList',
-
- itemsOnPage: 5,
-
- disableScrollbar: true,
-
- items:
- [
- {
- type: SDL.Button,
- params: {
- className: 'button',
- textBinding: 'SDL.locale.label.view_info_alerts_view',
- disabled: true
- }
- },
- {
- type: SDL.Button,
- params: {
- className: 'button',
- textBinding: 'SDL.locale.label.view_info_alerts_delete',
- disabled: true
- }
- },
- {
- type: SDL.Button,
- params: {
- className: 'button',
- textBinding: 'SDL.locale.label.view_info_alerts_deleteAll',
- disabled: true
- }
- }
- ]
- } )
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.InfoAlertsView
+ * @desc Info Alerts module visual representation
+ * @category View
+ * @filesource app/view/sinfo/InfoAlertsView.js
+ * @version 1.0
+ */
+
+SDL.InfoAlertsView = Em.ContainerView.create( {
+ /** Bind class for visual representation */
+ classNameBindings: [
+ 'SDL.States.info.alerts.active:active_state:inactive_state'
+ ],
+
+ elementId: 'info_alerts',
+
+ childViews: [
+ 'listCaption', 'mainlist', 'rightlist'
+ ],
+
+ listCaption: SDL.LabelPlusToggleButton.extend( {
+ elementId: 'info_alerts_listCaption',
+ labelContentBinding: 'SDL.locale.label.view_info_alerts_sort',
+ tButtonValue: 0,
+ tButtonRange: 2,
+ tButtonLabelsBinding: 'SDL.locale.label.view_info_alerts_dateIcon',
+ labelDisabled: true,
+ tButtonDisabled: true
+ }),
+
+ mainlist: SDL.List.extend( {
+
+ elementId: 'info_alerts_list',
+
+ itemsOnPage: 6,
+
+ items: [
+ {
+ type: SDL.Label,
+
+ params: {
+ disabled: true
+ }
+ }, {
+ type: SDL.Button,
+ params: {
+ classNames: [
+ 'ember-view ffw-button notpressed list-item disabled active'
+ ],
+ textBinding: 'SDL.locale.label.view_info_alerts_911Assist',
+ templateName: 'rightIcon',
+ icon: 'images/info/ico_emergcyAndEnvelope.png',
+ righticon: 'images/info/ico_arrowLock.png',
+ disabled: true
+ }
+ }
+ ]
+ }),
+
+ rightlist: SDL.List.extend( {
+
+ elementId: 'info_alerts_rightList',
+
+ itemsOnPage: 5,
+
+ disableScrollbar: true,
+
+ items: [
+ {
+ type: SDL.Button,
+ params: {
+ className: 'button',
+ textBinding: 'SDL.locale.label.view_info_alerts_view',
+ disabled: true
+ }
+ }, {
+ type: SDL.Button,
+ params: {
+ className: 'button',
+ textBinding: 'SDL.locale.label.view_info_alerts_delete',
+ disabled: true
+ }
+ }, {
+ type: SDL.Button,
+ params: {
+ className: 'button',
+ textBinding: 'SDL.locale.label.view_info_alerts_deleteAll',
+ disabled: true
+ }
+ }
+ ]
+ })
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/info/appsView.js b/SDL_Core/src/components/HMI/app/view/info/appsView.js
index fc00d3882..39c5d97bd 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/info/appsView.js
+++ b/SDL_Core/src/components/HMI/app/view/info/appsView.js
@@ -1,144 +1,148 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.InfoAppsview
- * @desc Info Apps visual representation
- * @category View
- * @filesource app/view/info/AppsView.js
- * @version 1.0
- */
-
-SDL.InfoAppsView = Em.ContainerView.create( {
-
- elementId: 'info_apps',
-
- classNameBindings:
- [
- 'SDL.States.info.apps.active:active_state:inactive_state'
- ],
-
- childViews:
- [
- 'vehicleHealthReport',
- 'Asist911',
- 'installButton',
- 'findNewApps',
- 'getDeviceList',
- 'listOfApplications'
- ],
-
- /**
- * Function to add application to application list
- */
- showAppList: function() {
-
- this.get( 'listOfApplications.list' ).removeAllChildren();
-
- this.listOfApplications.list.refresh();
-
- var i, apps = SDL.SDLModel.registeredApps, appIndex;
-
- for( i = 0; i < apps.length; i++ ){
-
- appIndex = SDL.SDLModel.registeredApps.indexOf( apps[i] );
-
- this.get( 'listOfApplications.list.childViews' ).pushObject( SDL.Button.create( {
- action: 'onActivateSDLApp',
- target: 'SDL.SDLController',
- text: apps[i].appName + " - " + apps[i].deviceName,
- appName: apps[i].appName,
- appId: apps[i].appId,
- classNames: 'list-item button',
- iconBinding: 'SDL.SDLModel.registeredApps.' + appIndex + '.appIcon'
- } ) );
- }
-
- }.observes( 'SDL.SDLModel.registeredApps.@each' ),
-
- vehicleHealthReport: SDL.Button.extend( {
- goToState: 'vehicle.healthReport',
- classNames: 'button vehicleHealthReport leftButtons',
- icon: 'images/info/ico_vehicle.png',
- textBinding: 'SDL.locale.label.view_info_apps_vehicle_VehicleHealthReport',
- elementId: 'infoAppsVehicleHealthReport',
- arrow: true,
- onDown: false
- } ),
-
- Asist911: SDL.Button.extend( {
- goToState: 'help.helpAssist',
- classNames: 'button Asist911 leftButtons',
- icon: 'images/info/ico_assist.png',
- textBinding: 'SDL.locale.label.view_info_apps_911Assist',
- elementId: 'infoAppsAsist911',
- arrow: true,
- onDown: false
- } ),
-
- installButton: SDL.Button.extend( {
- goToState: 'settings.system.installApplications',
- icon: 'images/info/ico_info_install.png',
- textBinding: 'SDL.locale.label.view_info_apps_vehicle_InstallApplicationsUp',
- elementId: 'infoAppsInstallButton',
- classNames: 'button installButton leftButtons',
- arrow: true,
- onDown: false
- } ),
-
- findNewApps: SDL.Button.extend( {
- goToState: 'settings.system.installApplications',
- icon: 'images/sdl/new_apps.png',
- textBinding: 'SDL.locale.label.view_info_apps_vehicle_FindNewApplications',
- elementId: 'infoAppsFindNewApps',
- classNames: 'button findNewApps leftButtons',
- arrow: true,
- action: 'findNewApps',
- target: 'SDL.SDLController',
- onDown: false
- } ),
-
- getDeviceList: SDL.Button.extend( {
- icon: 'images/sdl/devices.png',
- textBinding: 'SDL.locale.label.view_info_apps_vehicle_GetDeviceList',
- elementId: 'infoAppsGetDeviceList',
- classNames: 'button getDeviceList leftButtons',
- arrow: true,
- action: 'onGetDeviceList',
- target: 'SDL.SDLController',
- onDown: false
- } ),
-
- listOfApplications: SDL.List.extend( {
-
- elementId: 'info_apps_list',
-
- itemsOnPage: 5,
-
- /** Items */
- items: new Array()
- } )
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.InfoAppsview
+ * @desc Info Apps visual representation
+ * @category View
+ * @filesource app/view/info/AppsView.js
+ * @version 1.0
+ */
+
+SDL.InfoAppsView = Em.ContainerView
+ .create( {
+
+ elementId: 'info_apps',
+
+ classNameBindings: [
+ 'SDL.States.info.apps.active:active_state:inactive_state'
+ ],
+
+ childViews: [
+ 'vehicleHealthReport',
+ 'Asist911',
+ 'installButton',
+ 'findNewApps',
+ 'getDeviceList',
+ 'listOfApplications'
+ ],
+
+ /**
+ * Function to add application to application list
+ */
+ showAppList: function() {
+
+ this.get('listOfApplications.list').removeAllChildren();
+
+ this.listOfApplications.list.refresh();
+
+ var i, apps = SDL.SDLModel.registeredApps, appIndex;
+
+ for (i = 0; i < apps.length; i++) {
+
+ appIndex = SDL.SDLModel.registeredApps.indexOf(apps[i]);
+
+ this.get('listOfApplications.list.childViews')
+ .pushObject(SDL.Button.create( {
+ action: 'onActivateSDLApp',
+ target: 'SDL.SDLController',
+ text: apps[i].appName + " - " + apps[i].deviceName,
+ appName: apps[i].appName,
+ appID: apps[i].appID,
+ classNames: 'list-item button',
+ iconBinding: 'SDL.SDLModel.registeredApps.' + appIndex
+ + '.appIcon'
+ }));
+ }
+
+ }.observes('SDL.SDLModel.registeredApps.@each'),
+
+ vehicleHealthReport: SDL.Button
+ .extend( {
+ goToState: 'vehicle.healthReport',
+ classNames: 'button vehicleHealthReport leftButtons',
+ icon: 'images/info/ico_vehicle.png',
+ textBinding: 'SDL.locale.label.view_info_apps_vehicle_VehicleHealthReport',
+ elementId: 'infoAppsVehicleHealthReport',
+ arrow: true,
+ onDown: false
+ }),
+
+ Asist911: SDL.Button.extend( {
+ goToState: 'help.helpAssist',
+ classNames: 'button Asist911 leftButtons',
+ icon: 'images/info/ico_assist.png',
+ textBinding: 'SDL.locale.label.view_info_apps_911Assist',
+ elementId: 'infoAppsAsist911',
+ arrow: true,
+ onDown: false
+ }),
+
+ installButton: SDL.Button
+ .extend( {
+ goToState: 'settings.system.installApplications',
+ icon: 'images/info/ico_info_install.png',
+ textBinding: 'SDL.locale.label.view_info_apps_vehicle_InstallApplicationsUp',
+ elementId: 'infoAppsInstallButton',
+ classNames: 'button installButton leftButtons',
+ arrow: true,
+ onDown: false
+ }),
+
+ findNewApps: SDL.Button
+ .extend( {
+ goToState: 'settings.system.installApplications',
+ icon: 'images/sdl/new_apps.png',
+ textBinding: 'SDL.locale.label.view_info_apps_vehicle_FindNewApplications',
+ elementId: 'infoAppsFindNewApps',
+ classNames: 'button findNewApps leftButtons',
+ arrow: true,
+ action: 'findNewApps',
+ target: 'SDL.SDLController',
+ onDown: false
+ }),
+
+ getDeviceList: SDL.Button
+ .extend( {
+ icon: 'images/sdl/devices.png',
+ textBinding: 'SDL.locale.label.view_info_apps_vehicle_GetDeviceList',
+ elementId: 'infoAppsGetDeviceList',
+ classNames: 'button getDeviceList leftButtons',
+ arrow: true,
+ action: 'onGetDeviceList',
+ target: 'SDL.SDLController',
+ onDown: false
+ }),
+
+ listOfApplications: SDL.List.extend( {
+
+ elementId: 'info_apps_list',
+
+ itemsOnPage: 5,
+
+ /** Items */
+ items: new Array()
+ })
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/info/calendarView.js b/SDL_Core/src/components/HMI/app/view/info/calendarView.js
index 04c335ccb..235938a90 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/info/calendarView.js
+++ b/SDL_Core/src/components/HMI/app/view/info/calendarView.js
@@ -1,76 +1,104 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.InfoCalendarView
- * @desc Info Calendar module visual representation
- * @category View
- * @filesource app/view/sinfo/CalendarView.js
- * @version 1.0
- */
-
-SDL.InfoCalendarView = Em.View.create( {
- /** Bind class for visual representation */
- classNameBindings:
- [
- 'SDL.States.info.calendar.active:active_state:inactive_state'
- ],
-
- elementId: 'info_calendar',
-
- template: Ember.Handlebars.compile( '<div class="inner-wrapper">' + '<div class="label-20 disabled date">{{SDL.locale.label.view_info_calendar_date}}</div>' +
-
- '{{view SDL.Button ' + 'class= "today button" ' + 'textBinding="SDL.locale.label.view_info_calendar_today" ' + 'disabled=true ' + '}}' +
-
- '<div class="day day-1">{{SDL.locale.label.view_info_calendar_day1}}</div>' + '<div class="day day-2">{{SDL.locale.label.view_info_calendar_day2}}</div>'
- + '<div class="day day-3">{{SDL.locale.label.view_info_calendar_day3}}</div>' + '<div class="day day-4">{{SDL.locale.label.view_info_calendar_day4}}</div>'
- + '<div class="day day-5">{{SDL.locale.label.view_info_calendar_day5}}</div>' + '<div class="day day-6">{{SDL.locale.label.view_info_calendar_day6}}</div>'
- + '<div class="day day-7 active">{{SDL.locale.label.view_info_calendar_day7}}</div>' +
-
- '<div class="c-btn disabled btn-1">1</div>' + '<div class="c-btn disabled btn-8">8</div>' + '<div class="c-btn disabled btn-15">15</div>'
- + '<div class="c-btn disabled btn-22">22</div>' + '<div class="c-btn disabled btn-29">29</div>' +
-
- '<div class="c-btn disabled btn-7">7</div>' + '<div class="c-btn disabled btn-14">14</div>' + '<div class="c-btn disabled btn-21">21</div>'
- + '<div class="c-btn disabled active btn-28">28</div>' +
-
- '<div class="c-btn disabled btn-6">6</div>' + '<div class="c-btn disabled btn-13">13</div>' + '<div class="c-btn disabled btn-20">20</div>'
- + '<div class="c-btn disabled btn-27">27</div>' +
-
- '<div class="c-btn disabled btn-5">5</div>' + '<div class="c-btn disabled btn-12">12</div>' + '<div class="c-btn disabled btn-19">19</div>'
- + '<div class="c-btn disabled btn-26">26</div>' +
-
- '<div class="c-btn disabled btn-4">4</div>' + '<div class="c-btn disabled btn-11">11</div>' + '<div class="c-btn disabled btn-18">18</div>'
- + '<div class="c-btn disabled btn-25">25</div>' +
-
- '<div class="c-btn disabled btn-3">3</div>' + '<div class="c-btn disabled btn-10">10</div>' + '<div class="c-btn disabled btn-17">17</div>'
- + '<div class="c-btn disabled btn-24">24</div>' + '<div class="c-btn disabled btn-31">31</div>' +
-
- '<div class="c-btn disabled btn-2">2</div>' + '<div class="c-btn disabled btn-9">9</div>' + '<div class="c-btn disabled btn-16">16</div>'
- + '<div class="c-btn disabled btn-23">23</div>' + '<div class="c-btn disabled btn-30">30</div>' +
-
- '</div>' )
-
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.InfoCalendarView
+ * @desc Info Calendar module visual representation
+ * @category View
+ * @filesource app/view/sinfo/CalendarView.js
+ * @version 1.0
+ */
+
+SDL.InfoCalendarView = Em.View
+ .create( {
+ /** Bind class for visual representation */
+ classNameBindings: [
+ 'SDL.States.info.calendar.active:active_state:inactive_state'
+ ],
+
+ elementId: 'info_calendar',
+
+ template: Ember.Handlebars
+ .compile('<div class="inner-wrapper">'
+ + '<div class="label-20 disabled date">{{SDL.locale.label.view_info_calendar_date}}</div>'
+ +
+
+ '{{view SDL.Button '
+ + 'class= "today button" '
+ + 'textBinding="SDL.locale.label.view_info_calendar_today" '
+ + 'disabled=true '
+ + '}}'
+ +
+
+ '<div class="day day-1">{{SDL.locale.label.view_info_calendar_day1}}</div>'
+ + '<div class="day day-2">{{SDL.locale.label.view_info_calendar_day2}}</div>'
+ + '<div class="day day-3">{{SDL.locale.label.view_info_calendar_day3}}</div>'
+ + '<div class="day day-4">{{SDL.locale.label.view_info_calendar_day4}}</div>'
+ + '<div class="day day-5">{{SDL.locale.label.view_info_calendar_day5}}</div>'
+ + '<div class="day day-6">{{SDL.locale.label.view_info_calendar_day6}}</div>'
+ + '<div class="day day-7 active">{{SDL.locale.label.view_info_calendar_day7}}</div>'
+ +
+
+ '<div class="c-btn disabled btn-1">1</div>'
+ + '<div class="c-btn disabled btn-8">8</div>'
+ + '<div class="c-btn disabled btn-15">15</div>'
+ + '<div class="c-btn disabled btn-22">22</div>'
+ + '<div class="c-btn disabled btn-29">29</div>' +
+
+ '<div class="c-btn disabled btn-7">7</div>'
+ + '<div class="c-btn disabled btn-14">14</div>'
+ + '<div class="c-btn disabled btn-21">21</div>'
+ + '<div class="c-btn disabled active btn-28">28</div>' +
+
+ '<div class="c-btn disabled btn-6">6</div>'
+ + '<div class="c-btn disabled btn-13">13</div>'
+ + '<div class="c-btn disabled btn-20">20</div>'
+ + '<div class="c-btn disabled btn-27">27</div>' +
+
+ '<div class="c-btn disabled btn-5">5</div>'
+ + '<div class="c-btn disabled btn-12">12</div>'
+ + '<div class="c-btn disabled btn-19">19</div>'
+ + '<div class="c-btn disabled btn-26">26</div>' +
+
+ '<div class="c-btn disabled btn-4">4</div>'
+ + '<div class="c-btn disabled btn-11">11</div>'
+ + '<div class="c-btn disabled btn-18">18</div>'
+ + '<div class="c-btn disabled btn-25">25</div>' +
+
+ '<div class="c-btn disabled btn-3">3</div>'
+ + '<div class="c-btn disabled btn-10">10</div>'
+ + '<div class="c-btn disabled btn-17">17</div>'
+ + '<div class="c-btn disabled btn-24">24</div>'
+ + '<div class="c-btn disabled btn-31">31</div>' +
+
+ '<div class="c-btn disabled btn-2">2</div>'
+ + '<div class="c-btn disabled btn-9">9</div>'
+ + '<div class="c-btn disabled btn-16">16</div>'
+ + '<div class="c-btn disabled btn-23">23</div>'
+ + '<div class="c-btn disabled btn-30">30</div>' +
+
+ '</div>')
+
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/info/devicelistView.js b/SDL_Core/src/components/HMI/app/view/info/devicelistView.js
index 30034098a..5bd6b8e68 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/info/devicelistView.js
+++ b/SDL_Core/src/components/HMI/app/view/info/devicelistView.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -34,15 +33,13 @@
SDL.DeviceListView = Em.ContainerView.create( {
- classNames:
- [
- 'info_apps_deviceList_view'
- ],
+ classNames: [
+ 'info_apps_deviceList_view'
+ ],
- classNameBindings:
- [
- 'SDL.States.info.devicelist.active:active_state:inactive_state'
- ],
+ classNameBindings: [
+ 'SDL.States.info.devicelist.active:active_state:inactive_state'
+ ],
/**
* View Id
@@ -52,26 +49,35 @@ SDL.DeviceListView = Em.ContainerView.create( {
/**
* View Components
*/
- childViews:
- [
- 'backButton',
- 'listOfDevices',
- 'deviceListLabel'
+ childViews: [
+ 'backButton',
+ 'listOfDevices',
+ 'deviceListLabel',
+ 'progress'
+ ],
+
+ /**
+ * Animation of search devices progress
+ */
+ progress: Em.View.extend( {
+ classNames: [
+ 'progress'
],
+ classNameBindings: ['SDL.SDLModel.deviceSearchProgress:progress']
+ }),
+
/**
* Button to return to previous view
*/
backButton: SDL.Button.extend( {
- classNames:
- [
- 'backButton',
- 'button'
- ],
+ classNames: [
+ 'backButton', 'button'
+ ],
action: 'turnChangeDeviceViewBack',
target: 'SDL.SDLController',
icon: 'images/media/ico_back.png'
- } ),
+ }),
/**
* Label in title
@@ -83,35 +89,41 @@ SDL.DeviceListView = Em.ContainerView.create( {
classNames: 'deviceListLabel',
content: 'Change Devices'
- } ),
+ }),
- /*
+ /**
* Function calls when notification from RPC comes and creates buttons to
* choose devices
*/
- ShowDeviceList: function( params ) {
+ ShowDeviceList: function(params) {
+
+ this.clearDeviceList();
var i, len = params.deviceList.length;
- for( i = 0; i < len; i++ ){
- this.get( 'listOfDevices.list.childViews' ).pushObject( SDL.Button.create( {
- deviceName: params.deviceList[i],
- icon: params.icon,
- text: params.deviceList[i],
- classNames: 'ffw-button notpressed list-item',
- templateName: params.icon ? 'rightIcon' : 'text',
- action: 'onDeviceChoosed',
- target: 'SDL.SDLController',
- onDown: false
- } ) );
+ for (i = 0; i < len; i++) {
+ this.get('listOfDevices.list.childViews').pushObject(SDL.Button
+ .create( {
+ deviceName: params.deviceList[i].name,
+ icon: params.deviceList[i].icon,
+ text: params.deviceList[i].name,
+ classNames: 'ffw-button notpressed list-item',
+ templateName: params.deviceList[i].icon ? 'rightIcon'
+ : 'text',
+ action: 'onDeviceChoosed',
+ target: 'SDL.SDLController',
+ onDown: false,
+ id: params.deviceList[i].id
+ }));
}
},
- /*
+ /**
* Function calls each time when user enters Change Device menu and clear
* all old data about devices
*/
clearDeviceList: function() {
- this.get( 'listOfDevices.list' ).removeAllChildren();
+
+ this.get('listOfDevices.list').removeAllChildren();
this.listOfDevices.rerender();
},
@@ -126,5 +138,5 @@ SDL.DeviceListView = Em.ContainerView.create( {
/** Items array */
items: []
- } )
-} ); \ No newline at end of file
+ })
+});
diff --git a/SDL_Core/src/components/HMI/app/view/info/nonMediaView.js b/SDL_Core/src/components/HMI/app/view/info/nonMediaView.js
index 9ad9a09f8..b36aab21b 100644
--- a/SDL_Core/src/components/HMI/app/view/info/nonMediaView.js
+++ b/SDL_Core/src/components/HMI/app/view/info/nonMediaView.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -32,188 +31,214 @@
* @version 1.0
*/
-SDL.InfoNonMedia = Em.ContainerView.create( {
+SDL.InfoNonMedia = Em.ContainerView
+ .create( {
- elementId: 'info_nonMedia',
+ elementId: 'info_nonMedia',
- controller: SDL.SDLAppController,
+ controller: SDL.SDLAppController,
- childViews:
- [
+ childViews: [
'content'
],
- classNameBindings:
- [
- 'SDL.States.info.nonMedia.active:active_state:inactive_state'
+ classNameBindings: [
+ 'this.activeState:active_state:inactive_state'
],
- content: Em.ContainerView.extend( {
- classNames:
- [
- 'inner_content'
- ],
-
- childViews:
- [
- 'deviceName',
- 'image',
- 'fields',
- 'innerMenu',
- 'presets'
- ],
-
- /**
- * Deactivate View
- */
- deactivate: function() {
- SDL.States.goToStates( 'info.apps' );
- },
-
- deviceName: SDL.Label.extend( {
-
- classNames:
- [
- 'app_title'
+ activeState: function(){
+ if (SDL.TurnByTurnView.activeTBT) {
+ return false;
+ } else if (SDL.States.info.nonMedia.active) {
+ return true;
+ } else {
+ return false;
+ }
+ }.property('SDL.States.info.nonMedia.active', 'SDL.TurnByTurnView.activeTBT'),
+
+ content: Em.ContainerView
+ .extend( {
+ classNames: [
+ 'inner_content'
],
- contentBinding: 'SDL.SDLAppController.model.deviceName'
- } ),
-
- image: Em.View.extend( {
-
- classNames:
- [
- 'app_image'
- ],
-
- template: Ember.Handlebars.compile( '<img width="150px" {{bindAttr src="SDL.SDLAppController.model.appInfo.mainImage"}}>' )
- } ),
-
- fields: Em.ContainerView.extend( {
-
- classNames:
- [
- 'app_fields'
+ childViews: [
+ 'deviceName', 'image', 'fields', 'innerMenu', 'presets'
],
- childViews:
- [
- 'field1',
- 'field2',
- 'field3',
- 'field4'
- ],
-
- field1: SDL.Label.extend( {
- contentBinding: 'controller.model.appInfo.field1'
- } ),
-
- field2: SDL.Label.extend( {
- contentBinding: 'controller.model.appInfo.field2'
- } ),
+ /**
+ * Deactivate View
+ */
+ deactivate: function() {
- field3: SDL.Label.extend( {
- contentBinding: 'controller.model.appInfo.field3'
- } ),
+ SDL.States.goToStates('info.apps');
+ },
- field4: SDL.Label.extend( {
- contentBinding: 'controller.model.appInfo.field4'
- } )
+ deviceName: SDL.Label.extend( {
- } ),
+ classNames: [
+ 'app_title'
+ ],
- innerMenu: SDL.MenuList.extend( {
+ contentBinding: 'SDL.SDLAppController.model.deviceName'
+ }),
- refreshItems: function() {
- if( SDL.SDLAppController.model.appId == SDL.NonMediaController.currentAppId ){
- this.addItems( SDL.SDLAppController.model.softButtons, SDL.SDLAppController.model.appId );
- }
- }.observes( 'SDL.SDLAppController.model.softButtons.@each' ),
+ image: Em.View
+ .extend( {
- groupName: "NonMediaView",
+ classNames: [
+ 'app_image'
+ ],
- content: Em.ContainerView.extend( {
+ template: Ember.Handlebars
+ .compile('<img width="150px" {{bindAttr src="SDL.SDLAppController.model.appInfo.mainImage"}}>')
+ }),
- classNames:
- [
- 'content'
- ],
+ fields: Em.ContainerView.extend( {
- attributeBindings:
- [
- 'parentView.contentPositon:style'
+ classNames: [
+ 'app_fields'
],
- childViews:
- [
- 'optionsButton'
+ childViews: [
+ 'field1', 'field2', 'field3', 'field4'
],
- optionsButton: SDL.Button.extend( {
- text: 'Options',
-
- templateName: 'arrow',
-
- action: 'openCommandsList',
- target: 'SDL.SDLAppController'
- } )
- } )
- } ),
-
- presets: Em.ContainerView.extend( {
- classNames:
- [
- 'presets'
- ],
-
- classNameBindings:
- [
- 'hidden'
- ],
-
- hidden: function() {
-
- if( SDL.SDLAppController.model ){
- return !Boolean( SDL.SDLAppController.model.get( 'appInfo.customPresets' ).length );
- }
-
- }.property( 'SDL.SDLAppController.model.appInfo.customPresets.@each' ),
-
- childViews:
- [
- 'perset1',
- 'perset2',
- 'perset3',
- 'perset4',
- 'perset5',
- 'perset6'
- ],
-
- perset1: SDL.SDLPresetButton.extend( {
- textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.0',
- presetName: 'PRESET_1'
- } ),
- perset2: SDL.SDLPresetButton.extend( {
- textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.1',
- presetName: 'PRESET_2'
- } ),
- perset3: SDL.SDLPresetButton.extend( {
- textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.2',
- presetName: 'PRESET_3'
- } ),
- perset4: SDL.SDLPresetButton.extend( {
- textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.3',
- presetName: 'PRESET_4'
- } ),
- perset5: SDL.SDLPresetButton.extend( {
- textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.4',
- presetName: 'PRESET_5'
- } ),
- perset6: SDL.SDLPresetButton.extend( {
- textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.5',
- presetName: 'PRESET_6'
- } )
- } )
- } )
-} ); \ No newline at end of file
+ field1: SDL.Label.extend( {
+ contentBinding: 'controller.model.appInfo.field1',
+ attributeBindings: ["style"],
+ style: function(){
+ if (SDL.SDLAppController.model) {
+ return SDL.SDLAppController.model.appInfo.alignment;
+ } else {
+ return null;
+ }
+ }.property("SDL.SDLAppController.model.appInfo.alignment")
+ }),
+
+ field2: SDL.Label.extend( {
+ contentBinding: 'controller.model.appInfo.field2',
+ attributeBindings: ["style"],
+ style: function(){
+ if (SDL.SDLAppController.model) {
+ return SDL.SDLAppController.model.appInfo.alignment;
+ } else {
+ return null;
+ }
+ }.property("SDL.SDLAppController.model.appInfo.alignment")
+ }),
+
+ field3: SDL.Label.extend( {
+ contentBinding: 'controller.model.appInfo.field3'
+ }),
+
+ field4: SDL.Label.extend( {
+ contentBinding: 'controller.model.appInfo.field4'
+ })
+
+ }),
+
+ innerMenu: SDL.MenuList
+ .extend( {
+
+ refreshItems: function() {
+
+ if (SDL.SDLAppController.model && SDL.SDLAppController.model.appID == SDL.NonMediaController.currentAppId) {
+ this
+ .addItems(SDL.SDLAppController.model.softButtons,
+ SDL.SDLAppController.model.appID);
+ }
+ }
+ .observes('SDL.SDLAppController.model.softButtons.@each'),
+
+ groupName: "NonMediaView",
+
+ content: Em.ContainerView.extend( {
+
+ classNames: [
+ 'content'
+ ],
+
+ attributeBindings: [
+ 'parentView.contentPositon:style'
+ ],
+
+ childViews: [
+ 'optionsButton'
+ ],
+
+ optionsButton: SDL.Button.extend( {
+ text: 'Options',
+
+ templateName: 'arrow',
+
+ action: 'openCommandsList',
+ target: 'SDL.SDLAppController'
+ })
+ })
+ }),
+
+ presets: Em.ContainerView
+ .extend( {
+ classNames: [
+ 'presets'
+ ],
+
+ classNameBindings: [
+ 'hidden'
+ ],
+
+ hidden: function() {
+
+ if (SDL.SDLAppController.model) { return !Boolean(SDL.SDLAppController.model
+ .get('appInfo.customPresets').length); }
+
+ }
+ .property('SDL.SDLAppController.model.appInfo.customPresets.@each'),
+
+ childViews: [
+ 'perset1',
+ 'perset2',
+ 'perset3',
+ 'perset4',
+ 'perset5',
+ 'perset6',
+ 'perset7',
+ 'perset8'
+ ],
+
+ perset1: SDL.Button.extend(SDL.PresetEvents, {
+ textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.0',
+ presetName: 'PRESET_1'
+ }),
+ perset2: SDL.Button.extend(SDL.PresetEvents, {
+ textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.1',
+ presetName: 'PRESET_2'
+ }),
+ perset3: SDL.Button.extend(SDL.PresetEvents, {
+ textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.2',
+ presetName: 'PRESET_3'
+ }),
+ perset4: SDL.Button.extend(SDL.PresetEvents, {
+ textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.3',
+ presetName: 'PRESET_4'
+ }),
+ perset5: SDL.Button.extend(SDL.PresetEvents, {
+ textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.4',
+ presetName: 'PRESET_5'
+ }),
+ perset6: SDL.Button.extend(SDL.PresetEvents, {
+ textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.5',
+ presetName: 'PRESET_6'
+ }),
+ perset7: SDL.Button.extend(SDL.PresetEvents, {
+ textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.6',
+ presetName: 'PRESET_7'
+ }),
+ perset8: SDL.Button.extend(SDL.PresetEvents, {
+ textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.7',
+ presetName: 'PRESET_8'
+ })
+ })
+ })
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/info/servicesView.js b/SDL_Core/src/components/HMI/app/view/info/servicesView.js
index a2cc7f62d..f4bac6d0e 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/info/servicesView.js
+++ b/SDL_Core/src/components/HMI/app/view/info/servicesView.js
@@ -1,54 +1,54 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.ServicesView
- * @desc Info Services module visual representation
- * @category Info
- * @filesource app/view/ServicesView.js
- * @version 1.0
- */
-
-SDL.InfoServicesView = Em.View.create( {
-
- elementId: 'info_services_view',
-
- classNameBindings:
- [
- 'SDL.States.info.services.active:active_state:inactive_state'
- ],
-
- /** Define module template */
- template: Ember.Handlebars
- .compile( '<div class="inner-content">'
- + '<div id="info_sync_services" class="info-text">{{SDL.locale.label.view_info_services_syncServices}}</div>'
- + '<div id="info_traff" class="info-text">{{SDL.locale.label.view_info_services_trafficDirectionsAndInformation}}</div>'
- + '<div id="info_traffic_report" class="info-text">{{SDL.locale.label.view_info_services_getTheLatestTrafficRreport}}</div>'
- + '<div id="info_traffic_pts" class="info-text">{{SDL.locale.label.view_info_services_findBusinessesAndDownloadSaved}}<br>{{SDL.locale.label.view_info_services_Pts}}</div>'
- + '<div id="info_traffic_hear" class="info-text">{{SDL.locale.label.view_info_services_hearPersonalizedInformationMore}}</div>'
- + '<div id="info_connect" class="info-text">{{SDL.locale.label.view_info_services_connecttoServices}}</div>'
- + '<div id="info_log" class="info-text">{{SDL.locale.label.view_info_services_toActivate}}</div>' + '</div>' )
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.ServicesView
+ * @desc Info Services module visual representation
+ * @category Info
+ * @filesource app/view/ServicesView.js
+ * @version 1.0
+ */
+
+SDL.InfoServicesView = Em.View
+ .create( {
+
+ elementId: 'info_services_view',
+
+ classNameBindings: [
+ 'SDL.States.info.services.active:active_state:inactive_state'
+ ],
+
+ /** Define module template */
+ template: Ember.Handlebars
+ .compile('<div class="inner-content">'
+ + '<div id="info_sync_services" class="info-text">{{SDL.locale.label.view_info_services_syncServices}}</div>'
+ + '<div id="info_traff" class="info-text">{{SDL.locale.label.view_info_services_trafficDirectionsAndInformation}}</div>'
+ + '<div id="info_traffic_report" class="info-text">{{SDL.locale.label.view_info_services_getTheLatestTrafficRreport}}</div>'
+ + '<div id="info_traffic_pts" class="info-text">{{SDL.locale.label.view_info_services_findBusinessesAndDownloadSaved}}<br>{{SDL.locale.label.view_info_services_Pts}}</div>'
+ + '<div id="info_traffic_hear" class="info-text">{{SDL.locale.label.view_info_services_hearPersonalizedInformationMore}}</div>'
+ + '<div id="info_connect" class="info-text">{{SDL.locale.label.view_info_services_connecttoServices}}</div>'
+ + '<div id="info_log" class="info-text">{{SDL.locale.label.view_info_services_toActivate}}</div>'
+ + '</div>')
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/info/travelLinkView.js b/SDL_Core/src/components/HMI/app/view/info/travelLinkView.js
index 63c4faea9..2bf6b90a9 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/info/travelLinkView.js
+++ b/SDL_Core/src/components/HMI/app/view/info/travelLinkView.js
@@ -1,168 +1,164 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.InfoTravelLinkView
- * @desc Info Travel Link Help module visual representation
- * @category View
- * @filesource app/view/settings/InfoTravelLinkView.js
- * @version 1.0
- */
-
-SDL.InfoTravelLinkView = Em.ContainerView.create( {
-
- classNameBindings:
- [
- 'SDL.States.info.travelLink.active:active_state:inactive_state'
- ],
-
- elementId: 'info_travelLink',
-
- childViews:
- [
- 'imageLogo',
- 'listLeft',
- 'listRight',
- ],
-
- imageLogo: SDL.Label.extend( {
- elementId: 'info_travelLink_logo',
- icon: 'images/info/info_travelLink_sirius_logo.png',
- templateName: 'icon'
- } ),
-
- listLeft: SDL.List.extend( {
- elementId: 'info_travelLink_listLeft',
-
- disableScrollbar: true,
-
- itemsOnPage: 5,
-
- /** Items */
- items:
- [
- {
-
- type: SDL.Button,
-
- params: {
- textBinding: 'SDL.locale.label.view_info_travelLink_trafficOnRoute',
- templateName: 'arrow',
- disabled: true
- }
-
- },
- {
-
- type: SDL.Button,
-
- params: {
- textBinding: 'SDL.locale.label.view_info_travelLink_trafficNearby',
- templateName: 'arrow',
- disabled: true
- }
-
- },
- {
-
- type: SDL.Button,
-
- params: {
- textBinding: 'SDL.locale.label.view_info_travelLink_fuelPrices',
- templateName: 'arrow',
- disabled: true
- }
-
- },
- {
-
- type: SDL.Button,
-
- params: {
- textBinding: 'SDL.locale.label.view_info_travelLink_movieListings',
- templateName: 'arrow',
- disabled: true
- }
-
- },
- ]
- } ),
-
- listRight: SDL.List.extend( {
- elementId: 'info_travelLink_listRight',
-
- disableScrollbar: true,
-
- /** Items */
- items:
- [
- {
-
- type: SDL.Button,
-
- params: {
-
- textBinding: 'SDL.locale.label.view_info_travelLink_subscriptionInfo',
- disabled: true
- }
-
- },
- {
-
- type: SDL.Button,
-
- params: {
- textBinding: 'SDL.locale.label.view_info_travelLink_weather',
- templateName: 'arrow',
- disabled: true
- }
-
- },
- {
-
- type: SDL.Button,
-
- params: {
- textBinding: 'SDL.locale.label.view_info_travelLink_sportsInfo',
- templateName: 'arrow',
- disabled: true
- }
-
- },
- {
-
- type: SDL.Button,
-
- params: {
- textBinding: 'SDL.locale.label.view_info_travelLink_skiConditions',
- templateName: 'arrow',
- disabled: true
- }
-
- }
- ]
- } )
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.InfoTravelLinkView
+ * @desc Info Travel Link Help module visual representation
+ * @category View
+ * @filesource app/view/settings/InfoTravelLinkView.js
+ * @version 1.0
+ */
+
+SDL.InfoTravelLinkView = Em.ContainerView
+ .create( {
+
+ classNameBindings: [
+ 'SDL.States.info.travelLink.active:active_state:inactive_state'
+ ],
+
+ elementId: 'info_travelLink',
+
+ childViews: [
+ 'imageLogo', 'listLeft', 'listRight',
+ ],
+
+ imageLogo: SDL.Label.extend( {
+ elementId: 'info_travelLink_logo',
+ icon: 'images/info/info_travelLink_sirius_logo.png',
+ templateName: 'icon'
+ }),
+
+ listLeft: SDL.List
+ .extend( {
+ elementId: 'info_travelLink_listLeft',
+
+ disableScrollbar: true,
+
+ itemsOnPage: 5,
+
+ /** Items */
+ items: [
+ {
+
+ type: SDL.Button,
+
+ params: {
+ textBinding: 'SDL.locale.label.view_info_travelLink_trafficOnRoute',
+ templateName: 'arrow',
+ disabled: true
+ }
+
+ },
+ {
+
+ type: SDL.Button,
+
+ params: {
+ textBinding: 'SDL.locale.label.view_info_travelLink_trafficNearby',
+ templateName: 'arrow',
+ disabled: true
+ }
+
+ },
+ {
+
+ type: SDL.Button,
+
+ params: {
+ textBinding: 'SDL.locale.label.view_info_travelLink_fuelPrices',
+ templateName: 'arrow',
+ disabled: true
+ }
+
+ },
+ {
+
+ type: SDL.Button,
+
+ params: {
+ textBinding: 'SDL.locale.label.view_info_travelLink_movieListings',
+ templateName: 'arrow',
+ disabled: true
+ }
+
+ },
+ ]
+ }),
+
+ listRight: SDL.List
+ .extend( {
+ elementId: 'info_travelLink_listRight',
+
+ disableScrollbar: true,
+
+ /** Items */
+ items: [
+ {
+
+ type: SDL.Button,
+
+ params: {
+
+ textBinding: 'SDL.locale.label.view_info_travelLink_subscriptionInfo',
+ disabled: true
+ }
+
+ },
+ {
+
+ type: SDL.Button,
+
+ params: {
+ textBinding: 'SDL.locale.label.view_info_travelLink_weather',
+ templateName: 'arrow',
+ disabled: true
+ }
+
+ },
+ {
+
+ type: SDL.Button,
+
+ params: {
+ textBinding: 'SDL.locale.label.view_info_travelLink_sportsInfo',
+ templateName: 'arrow',
+ disabled: true
+ }
+
+ },
+ {
+
+ type: SDL.Button,
+
+ params: {
+ textBinding: 'SDL.locale.label.view_info_travelLink_skiConditions',
+ templateName: 'arrow',
+ disabled: true
+ }
+
+ }
+ ]
+ })
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/infoView.js b/SDL_Core/src/components/HMI/app/view/infoView.js
index 99a7e7720..f5a59b706 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/infoView.js
+++ b/SDL_Core/src/components/HMI/app/view/infoView.js
@@ -1,180 +1,180 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.InfoView
- * @desc Info module visual representation
- * @category Info
- * @filesource app/view/InfoView.js
- * @version 1.0
- */
-
-SDL.InfoView = Em.ContainerView.create( {
-
- elementId: 'info_view',
-
- /** Bind class for visual representation */
- classNameBindings:
- [
- 'SDL.States.info.active:active_state:inactive_state'
- ],
-
- controllerBinding: Ember.Binding.oneWay( 'SDL.InfoController' ),
-
- /** Settings components */
- childViews:
- [
- 'leftMenu',
- SDL.InfoServicesView,
- SDL.InfoTravelLinkView,
- SDL.InfoCalendarView,
- SDL.InfoAppsView,
- SDL.InfoNonMedia,
- SDL.DeviceListView
- ],
-
- /** Left menu */
- leftMenu: Em.ContainerView.extend( {
- elementId: 'info_leftMenu',
-
- classNameBindings:
- [
- 'parentView.controller.hiddenLeftMenu:hidden'
- ],
-
- classNames: 'menu-items',
-
- childViews:
- [
- 'border',
- 'items'
- ],
-
- border: Em.View.extend( {
- classNames: 'ls_border'
- } ),
-
- items: Em.ContainerView.extend( {
- classNames: 'ls-items',
-
- childViews:
- [
- 'servicesButton',
- 'travelLinkButton',
- 'calendarButton',
- 'appsButton',
- 'sdlButton'
- ],
-
- servicesButton: SDL.Button.extend( {
- elementId: 'info_leftMenu_services',
- goToState: 'services',
- classNames: 'menu-item lsp1_p',
- classNameBindings:
- [
- 'SDL.States.info.services.active:info_active'
- ],
- textBinding: 'SDL.locale.label.view_info_leftmenu_services',
- icon: 'images/info/info_leftMenu_services_ico.png',
- action: 'onState',
- target: 'SDL.InfoController'
- } ),
-
- travelLinkButton: SDL.Button.extend( {
- elementId: 'info_leftMenu_travelLink',
- goToState: 'travelLink',
- classNames: 'menu-item lsp1_p',
- classNameBindings:
- [
- 'SDL.States.info.travelLink.active:info_active'
- ],
- textBinding: 'SDL.locale.label.view_info_leftmenu_travelLink',
- icon: 'images/info/info_leftMenu_travelLink_ico.png',
- action: 'onState',
- target: 'SDL.InfoController'
- } ),
-
- alertsButton: SDL.Button.extend( {
- elementId: 'info_leftMenu_alerts',
- goToState: 'alerts',
- classNames: 'menu-item lsp1_p',
- classNameBindings:
- [
- 'SDL.States.info.alerts.active:info_active'
- ],
- textBinding: 'SDL.locale.label.view_info_leftmenu_alerts',
- icon: 'images/info/info_leftMenu_alerts_ico.png',
- action: 'onState',
- target: 'SDL.InfoController'
- } ),
-
- calendarButton: SDL.Button.extend( {
- elementId: 'info_leftMenu_calendar',
- goToState: 'calendar',
- classNames: 'menu-item lsp1_p',
- classNameBindings:
- [
- 'SDL.States.info.calendar.active:info_active'
- ],
- textBinding: 'SDL.locale.label.view_info_leftmenu_calendar',
- icon: 'images/info/info_leftMenu_calendar_ico.png',
- action: 'onState',
- target: 'SDL.InfoController'
- } ),
-
- appsButton: SDL.Button.extend( {
- elementId: 'info_leftMenu_apps',
- goToState: 'apps',
- classNames: 'menu-item lsp1_p',
- classNameBindings:
- [
- 'SDL.States.info.apps.active:info_active'
- ],
- textBinding: 'SDL.locale.label.view_info_leftmenu_apps',
- icon: 'images/info/info_leftMenu_apps_ico.png',
- action: 'onState',
- target: 'SDL.InfoController'
- } ),
-
- sdlButton: SDL.Button.extend( {
- elementId: 'info_leftMenu_sdl',
- goToState: 'nonMedia',
- classNames: 'menu-item lsp1_p',
- classNameBindings:
- [
- 'SDL.States.info.nonMedia.active:info_active'
- ],
- hidden: function() {
- return !SDL.NonMediaController.currentAppId;
- }.property( 'SDL.NonMediaController.currentAppId' ),
- textBinding: 'SDL.NonMediaController.currentAppName',
- iconBinding: 'SDL.NonMediaController.currentAppIcon',
- action: 'onState',
- target: 'SDL.InfoController'
- } )
- } )
- } )
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * · Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * · Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * · Neither the name of the Ford Motor Company nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.InfoView
+ * @desc Info module visual representation
+ * @category Info
+ * @filesource app/view/InfoView.js
+ * @version 1.0
+ */
+
+SDL.InfoView = Em.ContainerView.create( {
+
+ elementId: 'info_view',
+
+ /** Bind class for visual representation */
+ classNameBindings:
+ [
+ 'SDL.States.info.active:active_state:inactive_state'
+ ],
+
+ controllerBinding: Ember.Binding.oneWay( 'SDL.InfoController' ),
+
+ /** Settings components */
+ childViews:
+ [
+ 'leftMenu',
+ SDL.InfoServicesView,
+ SDL.InfoTravelLinkView,
+ SDL.InfoCalendarView,
+ SDL.InfoAppsView,
+ SDL.InfoNonMedia,
+ SDL.DeviceListView
+ ],
+
+ /** Left menu */
+ leftMenu: Em.ContainerView.extend( {
+ elementId: 'info_leftMenu',
+
+ classNameBindings:
+ [
+ 'parentView.controller.hiddenLeftMenu:hidden'
+ ],
+
+ classNames: 'menu-items',
+
+ childViews:
+ [
+ 'border',
+ 'items'
+ ],
+
+ border: Em.View.extend( {
+ classNames: 'ls_border'
+ } ),
+
+ items: Em.ContainerView.extend( {
+ classNames: 'ls-items',
+
+ childViews:
+ [
+ 'servicesButton',
+ 'travelLinkButton',
+ 'calendarButton',
+ 'appsButton',
+ 'sdlButton'
+ ],
+
+ servicesButton: SDL.Button.extend( {
+ elementId: 'info_leftMenu_services',
+ goToState: 'services',
+ classNames: 'menu-item lsp1_p',
+ classNameBindings:
+ [
+ 'SDL.States.info.services.active:info_active'
+ ],
+ textBinding: 'SDL.locale.label.view_info_leftmenu_services',
+ icon: 'images/info/info_leftMenu_services_ico.png',
+ action: 'onState',
+ target: 'SDL.InfoController'
+ } ),
+
+ travelLinkButton: SDL.Button.extend( {
+ elementId: 'info_leftMenu_travelLink',
+ goToState: 'travelLink',
+ classNames: 'menu-item lsp1_p',
+ classNameBindings:
+ [
+ 'SDL.States.info.travelLink.active:info_active'
+ ],
+ textBinding: 'SDL.locale.label.view_info_leftmenu_travelLink',
+ icon: 'images/info/info_leftMenu_travelLink_ico.png',
+ action: 'onState',
+ target: 'SDL.InfoController'
+ } ),
+
+ alertsButton: SDL.Button.extend( {
+ elementId: 'info_leftMenu_alerts',
+ goToState: 'alerts',
+ classNames: 'menu-item lsp1_p',
+ classNameBindings:
+ [
+ 'SDL.States.info.alerts.active:info_active'
+ ],
+ textBinding: 'SDL.locale.label.view_info_leftmenu_alerts',
+ icon: 'images/info/info_leftMenu_alerts_ico.png',
+ action: 'onState',
+ target: 'SDL.InfoController'
+ } ),
+
+ calendarButton: SDL.Button.extend( {
+ elementId: 'info_leftMenu_calendar',
+ goToState: 'calendar',
+ classNames: 'menu-item lsp1_p',
+ classNameBindings:
+ [
+ 'SDL.States.info.calendar.active:info_active'
+ ],
+ textBinding: 'SDL.locale.label.view_info_leftmenu_calendar',
+ icon: 'images/info/info_leftMenu_calendar_ico.png',
+ action: 'onState',
+ target: 'SDL.InfoController'
+ } ),
+
+ appsButton: SDL.Button.extend( {
+ elementId: 'info_leftMenu_apps',
+ goToState: 'apps',
+ classNames: 'menu-item lsp1_p',
+ classNameBindings:
+ [
+ 'SDL.States.info.apps.active:info_active'
+ ],
+ textBinding: 'SDL.locale.label.view_info_leftmenu_apps',
+ icon: 'images/info/info_leftMenu_apps_ico.png',
+ action: 'onState',
+ target: 'SDL.InfoController'
+ } ),
+
+ sdlButton: SDL.Button.extend( {
+ elementId: 'info_leftMenu_sdl',
+ goToState: 'nonMedia',
+ classNames: 'menu-item lsp1_p',
+ classNameBindings:
+ [
+ 'SDL.States.info.nonMedia.active:info_active'
+ ],
+ hidden: function() {
+ return !SDL.NonMediaController.currentAppId;
+ }.property( 'SDL.NonMediaController.currentAppId' ),
+ textBinding: 'SDL.NonMediaController.currentAppName',
+ iconBinding: 'SDL.NonMediaController.currentAppIcon',
+ action: 'activateCurrentApp',
+ target: 'SDL.NonMediaController'
+ } )
+ } )
+ } )
} ); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/media/common/LeftMenuView.js b/SDL_Core/src/components/HMI/app/view/media/common/LeftMenuView.js
index 365baa927..ba4495681 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/media/common/LeftMenuView.js
+++ b/SDL_Core/src/components/HMI/app/view/media/common/LeftMenuView.js
@@ -1,82 +1,82 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.LeftMenuView
- * @desc Media Left Menu module visual representation
- * @category View
- * @filesource app/view/media/SiriusView.js
- * @version 1.0
- */
-
-SDL.LeftMenuView = Em.ContainerView.extend( {
- /** View ID */
- elementId: 'media_leftmenu',
-
- /** View components */
- childViews:
- [
- 'border',
- 'cdButton',
- 'sdlButton'
- ],
- /** Border decoration */
- border: Em.View.extend( {
- elementId: 'media_left_menu_border',
- classNames: 'ls_border'
- } ),
-
- /** CD Station Button */
- cdButton: SDL.Button.extend( {
- classNameBindings:
- [
- 'SDL.CDModel.active:active_state'
- ],
- elementId: 'media_cdButton',
- classNames: 'media-ls-item',
- action: 'turnOnCD',
- icon: 'images/media/ico_cd.png',
- target: 'SDL.MediaController',
- textBinding: Ember.Binding.oneWay( 'SDL.locale.label.view_media_cd' )
- } ),
- /** SDL Button */
- sdlButton: SDL.Button.extend( {
- classNameBindings:
- [
- 'SDL.States.media.sdlmedia.active:active_state'
- ],
- elementId: 'media_sdlButton',
- classNames: 'media-ls-item',
- hidden: function() {
- return !SDL.SDLMediaController.currentAppId;
- }.property( 'SDL.SDLMediaController.currentAppId' ),
- textBinding: 'SDL.SDLMediaController.currentAppName',
- iconBinding: 'SDL.SDLMediaController.currentAppIcon',
- action: 'turnOnSDL',
- target: 'SDL.MediaController'
- } )
-
-} );
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * · Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * · Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * · Neither the name of the Ford Motor Company nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.LeftMenuView
+ * @desc Media Left Menu module visual representation
+ * @category View
+ * @filesource app/view/media/SiriusView.js
+ * @version 1.0
+ */
+
+SDL.LeftMenuView = Em.ContainerView.extend( {
+ /** View ID */
+ elementId: 'media_leftmenu',
+
+ /** View components */
+ childViews:
+ [
+ 'border',
+ 'cdButton',
+ 'sdlButton'
+ ],
+ /** Border decoration */
+ border: Em.View.extend( {
+ elementId: 'media_left_menu_border',
+ classNames: 'ls_border'
+ } ),
+
+ /** CD Station Button */
+ cdButton: SDL.Button.extend( {
+ classNameBindings:
+ [
+ 'SDL.CDModel.active:active_state'
+ ],
+ elementId: 'media_cdButton',
+ classNames: 'media-ls-item',
+ action: 'turnOnCD',
+ icon: 'images/media/ico_cd.png',
+ target: 'SDL.MediaController',
+ textBinding: Ember.Binding.oneWay( 'SDL.locale.label.view_media_cd' )
+ } ),
+ /** SDL Button */
+ sdlButton: SDL.Button.extend( {
+ classNameBindings:
+ [
+ 'SDL.States.media.sdlmedia.active:active_state'
+ ],
+ elementId: 'media_sdlButton',
+ classNames: 'media-ls-item',
+ hidden: function() {
+ return !SDL.SDLMediaController.currentAppId;
+ }.property( 'SDL.SDLMediaController.currentAppId' ),
+ textBinding: 'SDL.SDLMediaController.currentAppName',
+ iconBinding: 'SDL.SDLMediaController.currentAppIcon',
+ action: 'activateCurrentApp',
+ target: 'SDL.SDLMediaController'
+ } )
+
+} );
diff --git a/SDL_Core/src/components/HMI/app/view/media/playerView.js b/SDL_Core/src/components/HMI/app/view/media/playerView.js
index 318985d27..406a6dba4 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/media/playerView.js
+++ b/SDL_Core/src/components/HMI/app/view/media/playerView.js
@@ -1,43 +1,43 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.MediaPlayerView
- * @desc Media Player module visual representation
- * @category View
- * @filesource app/view/media/common/MediaPalyerView.js
- * @version 1.0
- */
-SDL.playerView = Em.View.create( {
-
- elementId: 'media_player_view_container',
-
- classNameBindings:
- [
- 'SDL.States.media.player.active:active_state:inactive_state'
- ]
-
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * · Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * · Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * · Neither the name of the Ford Motor Company nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.MediaPlayerView
+ * @desc Media Player module visual representation
+ * @category View
+ * @filesource app/view/media/common/MediaPalyerView.js
+ * @version 1.0
+ */
+SDL.playerView = Em.View.create( {
+
+ elementId: 'media_player_view_container',
+
+ classNameBindings:
+ [
+ 'SDL.States.media.player.active:active_state:inactive_state'
+ ]
+
} ); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/media/sdl/controllsView.js b/SDL_Core/src/components/HMI/app/view/media/sdl/controllsView.js
index 6f3cd05df..b90e29235 100644
--- a/SDL_Core/src/components/HMI/app/view/media/sdl/controllsView.js
+++ b/SDL_Core/src/components/HMI/app/view/media/sdl/controllsView.js
@@ -55,11 +55,11 @@ SDL.SDLMediaControlls = Em.ContainerView.create( {
+ '<div class="track-info">'
+ '<div class="device">{{SDL.SDLAppController.model.deviceName}}</div>'
+ '<div class="divider_o"></div>'
- + '<div class="title textLimit">{{SDL.SDLAppController.model.appInfo.field1}}</div>'
- + '<div class="album textLimit">{{SDL.SDLAppController.model.appInfo.field2}}</div>'
- + '<div class="artist textLimit"{{bindAttr class="SDL.SDLModel.protocolVersion2State:hidden"}}>{{SDL.SDLAppController.model.appInfo.field3}}</div>'
- + '<div class="time"{{bindAttr class="SDL.SDLModel.protocolVersion2State:timeV2"}}>{{SDL.SDLAppController.model.appInfo.mediaClock}}</div>'
- + '<img class="cd_logo" {{bindAttr src="SDL.SDLAppController.model.appInfo.trackIcon" class="SDL.SDLModel.protocolVersion2State:cd_logoV2"}} />'
+ + '<div class="title textLimit" {{bindAttr style="SDL.SDLAppController.model.appInfo.alignment"}}>{{SDL.SDLAppController.model.appInfo.field1}}</div>'
+ + '<div class="album textLimit" {{bindAttr style="SDL.SDLAppController.model.appInfo.alignment"}}>{{SDL.SDLAppController.model.appInfo.field2}}</div>'
+ + '<div class="artist textLimit"{{bindAttr class="SDL.SDLAppController.model.mediaPreset:hidden"}}>{{SDL.SDLAppController.model.appInfo.field3}}</div>'
+ + '<div class="time"{{bindAttr class="SDL.SDLAppController.model.mediaPreset:timeV2"}}>{{SDL.SDLAppController.model.appInfo.mediaClock}}</div>'
+ + '<img class="cd_logo" {{bindAttr src="SDL.SDLAppController.model.appInfo.trackIcon" class="SDL.SDLAppController.model.mediaPreset:cd_logoV2"}} />'
+ '</div>' + '{{/with}}' )
} ),
@@ -77,7 +77,7 @@ SDL.SDLMediaControlls = Em.ContainerView.create( {
classNames: 'player_controlls',
- classNameBindings: 'SDL.SDLModel.protocolVersion2State:player_controllsV2',
+ classNameBindings: 'SDL.SDLAppController.model.mediaPreset:player_controllsV2',
PrevTrackButton: SDL.Button.extend( SDL.PresetEvents, {
elementId: 'app_view_controlls_prev_track_button_v2',
@@ -134,7 +134,7 @@ SDL.SDLMediaControlls = Em.ContainerView.create( {
classNameBindings:
[
- 'SDL.SDLModel.protocolVersion2State::hidden'
+ 'SDL.SDLAppController.model.mediaPreset::hidden'
],
classNames:
@@ -160,50 +160,66 @@ SDL.SDLMediaControlls = Em.ContainerView.create( {
'3',
'4',
'5',
- '6'
+ '6',
+ '7',
+ '8'
],
1: SDL.Button.extend( SDL.PresetEvents, {
elementId: 'sdl_media_preset_button1',
- classNames: 'a0 preset-item',
+ classNames: 'preset-item',
textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.0',
templateName: 'text',
presetName: 'PRESET_1'
} ),
2: SDL.Button.extend( SDL.PresetEvents, {
elementId: 'sdl_media_preset_button2',
- classNames: 'a1 preset-item',
+ classNames: 'preset-item',
textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.1',
templateName: 'text',
presetName: 'PRESET_2'
} ),
3: SDL.Button.extend( SDL.PresetEvents, {
elementId: 'sdl_media_preset_button3',
- classNames: 'a2 preset-item',
+ classNames: 'preset-item',
textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.2',
templateName: 'text',
presetName: 'PRESET_3'
} ),
4: SDL.Button.extend( SDL.PresetEvents, {
elementId: 'sdl_media_preset_button4',
- classNames: 'a3 preset-item',
+ classNames: 'preset-item',
textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.3',
templateName: 'text',
presetName: 'PRESET_4'
} ),
5: SDL.Button.extend( SDL.PresetEvents, {
elementId: 'sdl_media_preset_button5',
- classNames: 'a4 preset-item',
+ classNames: 'preset-item',
textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.4',
templateName: 'text',
presetName: 'PRESET_5'
} ),
6: SDL.Button.extend( SDL.PresetEvents, {
elementId: 'sdl_media_preset_button6',
- classNames: 'a5 preset-item',
+ classNames: 'preset-item',
textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.5',
templateName: 'text',
presetName: 'PRESET_6'
+ } ),
+ 7: SDL.Button.extend( SDL.PresetEvents, {
+ elementId: 'sdl_media_preset_button7',
+ classNames: 'preset-item',
+ textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.6',
+ templateName: 'text',
+ presetName: 'PRESET_7'
+ } ),
+ 8: SDL.Button.extend( SDL.PresetEvents, {
+ elementId: 'sdl_media_preset_button8',
+ classNames: 'preset-item',
+ textBinding: 'SDL.SDLAppController.model.appInfo.customPresets.7',
+ templateName: 'text',
+ presetName: 'PRESET_8'
} )
} )
} )
diff --git a/SDL_Core/src/components/HMI/app/view/media/sdlmediaView.js b/SDL_Core/src/components/HMI/app/view/media/sdlmediaView.js
index 70fc4d4e3..78371e7ea 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/media/sdlmediaView.js
+++ b/SDL_Core/src/components/HMI/app/view/media/sdlmediaView.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -31,81 +30,81 @@
* @filesource app/view/media/sdlView.js
* @version 1.0
*/
-SDL.sdlView = Em.ContainerView.create( {
+SDL.sdlView = Em.ContainerView
+ .create( {
- /**
- * View Id
- */
- elementId: 'sdl_view_container',
+ /**
+ * View Id
+ */
+ elementId: 'sdl_view_container',
- classNameBindings:
- [
- 'SDL.States.media.sdlmedia.active:active_state:inactive_state'
+ classNameBindings: [
+ 'this.activeState:active_state:inactive_state'
],
- /**
- * View Components
- */
- childViews:
- [
+ activeState: function(){
+ if (SDL.TurnByTurnView.activeTBT) {
+ return false;
+ } else if (SDL.States.media.sdlmedia.active) {
+ return true;
+ } else {
+ return false;
+ }
+ }.property('SDL.States.media.sdlmedia.active', 'SDL.TurnByTurnView.activeTBT'),
+
+ /**
+ * View Components
+ */
+ childViews: [
'innerMenu',
'controlls'
],
- controlls: SDL.SDLMediaControlls,
+ controlls: SDL.SDLMediaControlls,
- /**
- * Deactivate View
- */
- deactivate: function() {
- SDL.States.goToStates( 'info.apps' );
- },
+ /**
+ * Deactivate View
+ */
+ deactivate: function() {
- innerMenu: SDL.MenuList.extend( {
+ SDL.States.goToStates('info.apps');
+ },
- refreshItems: function() {
- if( SDL.SDLAppController.model.appId == SDL.SDLMediaController.currentAppId ){
- this.addItems( SDL.SDLAppController.model.softButtons, SDL.SDLAppController.model.appId );
- }
- }.observes( 'SDL.SDLAppController.model.softButtons.@each' ),
+ innerMenu: SDL.MenuList
+ .extend( {
- groupName: "MediaView",
+ refreshItems: function() {
- content: Em.ContainerView.extend( {
+ if (SDL.SDLAppController.model && SDL.SDLAppController.model.appID == SDL.SDLMediaController.currentAppId) {
+ this.addItems(SDL.SDLAppController.model.softButtons,
+ SDL.SDLAppController.model.appID);
+ }
+ }.observes('SDL.SDLAppController.model.softButtons.@each'),
- classNames:
- [
- 'content'
- ],
+ groupName: "MediaView",
- attributeBindings:
- [
- 'parentView.contentPositon:style'
- ],
+ content: Em.ContainerView.extend( {
- childViews:
- [
- 'optionsButton'
- ],
+ classNames: [
+ 'content'
+ ],
- optionsButton: SDL.Button.extend( {
- text: 'Options',
+ attributeBindings: [
+ 'parentView.contentPositon:style'
+ ],
- templateName: 'arrow',
+ childViews: [
+ 'optionsButton'
+ ],
- action: 'openCommandsList',
- target: 'SDL.SDLAppController'
- } )
- } )
- } )
+ optionsButton: SDL.Button.extend( {
+ text: 'Options',
-/** Calls SDL SystemContext switcher when turn On/Of SDL application */
-/*
- * onTurnOnSDLApp: function(systemContextValue){
- * if(SDL.States.media.sdl.active){
- * SDL.SDLMediaController.onSystemContextSwitcher(SDL.SDLMediaController.eSystemContext.application);
- * }else{
- * SDL.SDLMediaController.onSystemContextSwitcher(SDL.SDLMediaController.eSystemContext.main); }
- * }.observes('SDL.States.media.sdl.active')
- */
-} ); \ No newline at end of file
+ templateName: 'arrow',
+
+ action: 'openCommandsList',
+ target: 'SDL.SDLAppController'
+ })
+ })
+ })
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/mediaView.js b/SDL_Core/src/components/HMI/app/view/mediaView.js
index 66d03c8a5..647b59306 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/mediaView.js
+++ b/SDL_Core/src/components/HMI/app/view/mediaView.js
@@ -1,49 +1,49 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.MediaView
- * @desc Media module visual representation
- * @category View
- * @filesource app/view/media/MediaView.js
- * @version 1.0
- */
-SDL.MediaView = Em.ContainerView.create( {
- /** View Id */
- elementId: 'media',
-
- classNameBindings: 'SDL.States.media.active:active_state:inactive_state',
-
- /** Media components */
- childViews:
- [
- 'leftMenu',
- SDL.playerView,
- SDL.sdlView
- ],
- /** Left Menu view component */
- leftMenu: SDL.LeftMenuView
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * · Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * · Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * · Neither the name of the Ford Motor Company nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.MediaView
+ * @desc Media module visual representation
+ * @category View
+ * @filesource app/view/media/MediaView.js
+ * @version 1.0
+ */
+SDL.MediaView = Em.ContainerView.create( {
+ /** View Id */
+ elementId: 'media',
+
+ classNameBindings: 'SDL.States.media.active:active_state:inactive_state',
+
+ /** Media components */
+ childViews:
+ [
+ 'leftMenu',
+ SDL.playerView,
+ SDL.sdlView
+ ],
+ /** Left Menu view component */
+ leftMenu: SDL.LeftMenuView
} ); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/navigationApp/baseNavigationView.js b/SDL_Core/src/components/HMI/app/view/navigationApp/baseNavigationView.js
new file mode 100644
index 000000000..d0972368c
--- /dev/null
+++ b/SDL_Core/src/components/HMI/app/view/navigationApp/baseNavigationView.js
@@ -0,0 +1,173 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.BaseNavigationView
+ * @desc Navigation component base screen
+ * @category View
+ * @filesource app/view/navigationApp/baseNavigationView.js
+ * @version 1.0
+ */
+SDL.BaseNavigationView = Em.ContainerView.create({
+ /** View Id */
+ elementId: 'baseNavigation',
+
+ classNameBindings: [
+ 'SDL.States.navigationApp.baseNavigation.active:active_state:inactive_state'
+ ],
+
+ afterRender: function() {
+ this.update();
+ },
+
+ childViews: [
+ 'mainField1',
+ 'mainField2',
+ 'mainField3',
+ 'mainField4',
+ 'mainField5',
+ 'mainField6',
+ 'optionsBtn'
+ ],
+
+ mainField1: null,
+ mainField2: null,
+ mainField3: null,
+ mainField4: null,
+ mainField5: null,
+ mainField6: null,
+
+ update: function(){
+
+ var naviParams = SDL.SDLModel.constantTBTParams;
+
+ if (naviParams) {
+
+ for ( var i = 0; i < naviParams.navigationTexts.length; i++) {
+ switch (naviParams.navigationTexts[i].fieldName) {
+ case 'navigationText1': {
+ this.set('mainField1',
+ naviParams.navigationTexts[i].fieldText);
+ break;
+ }
+ case 'navigationText2': {
+ this.set('mainField2',
+ naviParams.navigationTexts[i].fieldText);
+ break;
+ }
+ case 'ETA': {
+ this.set('mainField4', naviParams.navigationTexts[i].fieldText);
+ break;
+ }
+ case 'totalDistance': {
+ this.set('mainField5',
+ naviParams.navigationTexts[i].fieldText);
+ break;
+ }
+ case 'navigationText': {
+ this.set('mainField6',
+ naviParams.navigationTexts[i].fieldText);
+ break;
+ }
+ case 'timeToDestination': {
+ this.set('mainField3',
+ naviParams.navigationTexts[i].fieldText);
+ break;
+ }
+ default :{
+ break;
+ }
+ }
+ }
+
+ if (naviParams.softButtons) {
+ for ( var i = 0; i < naviParams.softButtons.length; i++) {
+ this.get('childViews').pushObject(SDL.Button.create(SDL.PresetEventsCustom, {
+ text: naviParams.softButtons[i].text,
+ icon: naviParams.softButtons[i].image ? naviParams.softButtons[i].image.value : "",
+ templateName: naviParams.softButtons[i].image ? 'rightText' : 'text',
+ groupName: "NaviBase",
+ classNameBindings: ['isHighlighted:isHighlighted'],
+ isHighlighted: naviParams.softButtons[i].isHighlighted ? true : false,
+ softButtonID: naviParams.softButtons[i].softButtonID,
+ systemAction: naviParams.softButtons[i].systemAction,
+ classNames: 'navButton softButton softButton' + (i + 1),
+ appID: null
+ }));
+ }
+ }
+ }
+ },
+
+ mainField1: SDL.Label.extend({
+
+ classNames: 'mainField1 mainField',
+
+ contentBinding: 'SDL.SDLAppController.model.appInfo.field1'
+ }),
+
+ mainField2: SDL.Label.extend({
+
+ classNames: 'mainField2 mainField',
+
+ contentBinding: 'SDL.SDLAppController.model.appInfo.field2'
+ }),
+
+ mainField3: SDL.Label.extend({
+
+ classNames: 'mainField3 mainField',
+
+ contentBinding: 'SDL.SDLAppController.model.appInfo.field3'
+ }),
+
+ mainField4: SDL.Label.extend({
+
+ classNames: 'mainField4 mainField',
+
+ contentBinding: 'SDL.SDLAppController.model.appInfo.field4'
+ }),
+
+ mainField5: SDL.Label.extend({
+
+ classNames: 'mainField5 mainField',
+
+ contentBinding: 'parentView.mainField5'
+ }),
+
+ mainField6: SDL.Label.extend({
+
+ classNames: 'mainField6 mainField',
+
+ contentBinding: 'parentView.mainField6'
+ }),
+
+ optionsBtn: SDL.Button.extend({
+ classNames: 'naviOptionsBtn navButton',
+ text : "Options",
+ action: 'openCommandsList',
+ target: 'SDL.SDLAppController'
+ })
+
+});
diff --git a/SDL_Core/src/components/HMI/app/view/navigationAppView.js b/SDL_Core/src/components/HMI/app/view/navigationAppView.js
new file mode 100644
index 000000000..29a69e190
--- /dev/null
+++ b/SDL_Core/src/components/HMI/app/view/navigationAppView.js
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.NavigationAppView
+ * @desc Navigation component
+ * @category View
+ * @filesource app/view/navigationAppView.js
+ * @version 1.0
+ */
+SDL.NavigationAppView = Em.ContainerView.create( {
+ /** View Id */
+ elementId: 'NavigationAppView',
+
+ classNameBindings: [
+ 'this.activeState:active_state:inactive_state'
+ ],
+
+ activeState: function(){
+ if (SDL.TurnByTurnView.activeTBT) {
+ return false;
+ } else if (SDL.States.navigationApp.active) {
+ return true;
+ } else {
+ return false;
+ }
+ }.property('SDL.States.navigationApp.active', 'SDL.TurnByTurnView.activeTBT'),
+
+ childViews: [
+ 'videoView',
+ SDL.BaseNavigationView
+ ],
+
+ actionMove:function(event){
+
+ SDL.SDLModel.onTouchEvent(event);
+ },
+
+ actionUp:function(event){
+
+ SDL.SDLModel.onTouchEvent(event);
+ },
+
+ actionDown:function(event){
+
+ SDL.SDLModel.onTouchEvent(event);
+ },
+
+ videoView: Ember.View.create({
+ templateName: "video",
+ template: Ember.Handlebars.compile('<video id="html5Player"></video>')
+ })
+
+});
diff --git a/SDL_Core/src/components/HMI/app/view/navigationView.js b/SDL_Core/src/components/HMI/app/view/navigationView.js
index af66f26f3..bdb4b6ded 100644
--- a/SDL_Core/src/components/HMI/app/view/navigationView.js
+++ b/SDL_Core/src/components/HMI/app/view/navigationView.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -25,21 +24,20 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
/**
- * @name SDL.PlayerControllsView
- * @desc Video player visual representation
+ * @name SDL.NavigationView
+ * @desc Navigation component
* @category View
- * @filesource app/view/player/PlayerView.js
+ * @filesource app/view/navigationView.js
* @version 1.0
*/
SDL.NavigationView = Em.ContainerView.create( {
/** View Id */
elementId: 'navigationView',
-
- classNameBindings:
- [
- 'SDL.States.navigation.active:active_state:inactive_state'
- ],
-
+
+ classNameBindings: [
+ 'SDL.States.navigation.active:active_state:inactive_state'
+ ],
+
childViews:
[
'windowText'
@@ -47,10 +45,10 @@ SDL.NavigationView = Em.ContainerView.create( {
windowText: SDL.Label.extend( {
-
+
classNames: 'windowText',
-
+
content: 'Navigation'
} )
-} );
+});
diff --git a/SDL_Core/src/components/HMI/app/view/phone/dialpadView.js b/SDL_Core/src/components/HMI/app/view/phone/dialpadView.js
index f59c9f146..0290750d0 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/phone/dialpadView.js
+++ b/SDL_Core/src/components/HMI/app/view/phone/dialpadView.js
@@ -1,214 +1,214 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.DialpadPhoneView
- * @desc Phone Dialpad module visual representation
- * @category View
- * @filesource app/view/phone/DialpadView.js
- * @version 1.0
- */
-
-SDL.DialpadPhoneView = Em.ContainerView.create( {
-
- elementId: 'phone_dialpad',
-
- classNameBindings: 'SDL.States.phone.dialpad.active:active_state:inactive_state',
-
- childViews:
- [
- 'number',
- 'keypad',
- 'deleteButton',
- 'dialButton',
- 'endButton'
- ],
-
- /** Number area */
- number: SDL.Label.extend( {
- elementId: 'phone_dialpad_number',
-
- contentBinding: Em.Binding.oneWay( 'SDL.PhoneController.model.dialpadNumber' )
- } ),
-
- /** Keypad block */
- keypad: Em.ContainerView.extend( {
- elementId: 'phone_dialpad_keypad',
-
- childViews:
- [
- 'key1',
- 'key2',
- 'key3',
- 'key4',
- 'key5',
- 'key6',
- 'key7',
- 'key8',
- 'key9',
- 'key0',
- 'keyStar',
- 'keyDiez'
- ],
-
- key1: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_key1',
-
- classNames: 'left',
-
- text: '1'
- } ),
-
- key2: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_key2',
-
- classNames: 'center',
-
- text: '2'
- } ),
-
- key3: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_key3',
-
- classNames: 'right',
-
- text: '3'
-
- } ),
-
- key4: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_key4',
-
- classNames: 'left',
-
- text: '4'
- } ),
-
- key5: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_key5',
-
- classNames: 'center',
-
- text: '5'
- } ),
-
- key6: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_key6',
-
- classNames: 'right',
-
- text: '6'
- } ),
-
- key7: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_key7',
-
- classNames: 'left',
-
- text: '7'
- } ),
-
- key8: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_key8',
-
- classNames: 'center',
-
- text: '8'
- } ),
-
- key9: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_key9',
-
- classNames: 'right',
-
- text: '9'
- } ),
-
- key0: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_key0',
-
- classNames: 'center',
-
- text: '0'
- } ),
-
- keyStar: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_keyStar',
-
- classNames: 'left',
-
- text: '*'
- } ),
-
- keyDiez: SDL.Button.extend( {
- elementId: 'phone_dialpad_keypad_keyDiez',
-
- classNames: 'right',
-
- text: '#'
- } )
- } ),
-
- deleteButton: SDL.Button.extend( {
- elementId: 'phone_dialpad_deleteButton',
-
- classNameBindings:
- [
- 'SDL.PhoneController.model.dialpadNumber.length:show'
- ],
-
- icon: 'images/phone/del.png',
-
- action: 'onDelete',
- target: 'SDL.PhoneController',
-
- disabledBinding: Em.Binding.oneWay( 'SDL.PhoneController.model.onCall' )
- } ),
-
- dialButton: SDL.Button.extend( {
- elementId: 'phone_dialpad_dialButton',
-
- textBinding: Em.Binding.oneWay( 'SDL.locale.label.view_phone_dial' ),
- icon: 'images/phone/dial.png',
-
- action: 'onDialCall',
- target: 'SDL.PhoneController',
-
- disabledBinding: Em.Binding.oneWay( 'SDL.PhoneController.model.onCall' )
- } ),
-
- endButton: SDL.Button.extend( {
- elementId: 'phone_dialpad_endButton',
-
- textBinding: Em.Binding.oneWay( 'SDL.locale.label.view_phone_end' ),
- icon: 'images/phone/end.png',
-
- action: 'onEndCall',
- target: 'SDL.PhoneController',
-
- disabledBinding: Em.Binding.oneWay( 'SDL.PhoneController.model.readyForCall' )
- } )
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * · Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * · Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * · Neither the name of the Ford Motor Company nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.DialpadPhoneView
+ * @desc Phone Dialpad module visual representation
+ * @category View
+ * @filesource app/view/phone/DialpadView.js
+ * @version 1.0
+ */
+
+SDL.DialpadPhoneView = Em.ContainerView.create( {
+
+ elementId: 'phone_dialpad',
+
+ classNameBindings: 'SDL.States.phone.dialpad.active:active_state:inactive_state',
+
+ childViews:
+ [
+ 'number',
+ 'keypad',
+ 'deleteButton',
+ 'dialButton',
+ 'endButton'
+ ],
+
+ /** Number area */
+ number: SDL.Label.extend( {
+ elementId: 'phone_dialpad_number',
+
+ contentBinding: Em.Binding.oneWay( 'SDL.PhoneController.model.dialpadNumber' )
+ } ),
+
+ /** Keypad block */
+ keypad: Em.ContainerView.extend( {
+ elementId: 'phone_dialpad_keypad',
+
+ childViews:
+ [
+ 'key1',
+ 'key2',
+ 'key3',
+ 'key4',
+ 'key5',
+ 'key6',
+ 'key7',
+ 'key8',
+ 'key9',
+ 'key0',
+ 'keyStar',
+ 'keyDiez'
+ ],
+
+ key1: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_key1',
+
+ classNames: 'left',
+
+ text: '1'
+ } ),
+
+ key2: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_key2',
+
+ classNames: 'center',
+
+ text: '2'
+ } ),
+
+ key3: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_key3',
+
+ classNames: 'right',
+
+ text: '3'
+
+ } ),
+
+ key4: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_key4',
+
+ classNames: 'left',
+
+ text: '4'
+ } ),
+
+ key5: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_key5',
+
+ classNames: 'center',
+
+ text: '5'
+ } ),
+
+ key6: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_key6',
+
+ classNames: 'right',
+
+ text: '6'
+ } ),
+
+ key7: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_key7',
+
+ classNames: 'left',
+
+ text: '7'
+ } ),
+
+ key8: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_key8',
+
+ classNames: 'center',
+
+ text: '8'
+ } ),
+
+ key9: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_key9',
+
+ classNames: 'right',
+
+ text: '9'
+ } ),
+
+ key0: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_key0',
+
+ classNames: 'center',
+
+ text: '0'
+ } ),
+
+ keyStar: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_keyStar',
+
+ classNames: 'left',
+
+ text: '*'
+ } ),
+
+ keyDiez: SDL.Button.extend( {
+ elementId: 'phone_dialpad_keypad_keyDiez',
+
+ classNames: 'right',
+
+ text: '#'
+ } )
+ } ),
+
+ deleteButton: SDL.Button.extend( {
+ elementId: 'phone_dialpad_deleteButton',
+
+ classNameBindings:
+ [
+ 'SDL.PhoneController.model.dialpadNumber.length:show'
+ ],
+
+ icon: 'images/phone/del.png',
+
+ action: 'onDelete',
+ target: 'SDL.PhoneController',
+
+ disabledBinding: Em.Binding.oneWay( 'SDL.PhoneController.model.onCall' )
+ } ),
+
+ dialButton: SDL.Button.extend( {
+ elementId: 'phone_dialpad_dialButton',
+
+ textBinding: Em.Binding.oneWay( 'SDL.locale.label.view_phone_dial' ),
+ icon: 'images/phone/dial.png',
+
+ action: 'onDialCall',
+ target: 'SDL.PhoneController',
+
+ disabledBinding: Em.Binding.oneWay( 'SDL.PhoneController.model.onCall' )
+ } ),
+
+ endButton: SDL.Button.extend( {
+ elementId: 'phone_dialpad_endButton',
+
+ textBinding: Em.Binding.oneWay( 'SDL.locale.label.view_phone_end' ),
+ icon: 'images/phone/end.png',
+
+ action: 'onEndCall',
+ target: 'SDL.PhoneController',
+
+ disabledBinding: Em.Binding.oneWay( 'SDL.PhoneController.model.readyForCall' )
+ } )
} ); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/phoneView.js b/SDL_Core/src/components/HMI/app/view/phoneView.js
index 3de39e4b6..ec3413eb7 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/phoneView.js
+++ b/SDL_Core/src/components/HMI/app/view/phoneView.js
@@ -1,102 +1,97 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.PhoneView
- * @desc Phone module visual representation
- * @category View
- * @filesource app/view/phone/PhoneView.js
- * @version 1.0
- */
-
-SDL.PhoneView = Em.ContainerView.create( {
-
- elementId: 'phone',
-
- /** Bind class for visual representation */
- classNameBindings:
- [
- 'SDL.States.phone.active:active_state:inactive_state'
- ],
-
- /** Initial phone components */
- childViews:
- [
- 'menu',
- SDL.DialpadPhoneView
- ],
-
- /** Left menu */
- menu: Em.ContainerView.extend( {
- elementId: 'phone_menu',
-
- // classNameBindings: ['SDL.PhoneController.hideMenu:hide'],
-
- childViews:
- [
- 'border',
- 'items'
- ],
-
- border: Em.View.extend( {
- classNames: 'ls_border',
-
- template: Ember.Handlebars.compile( '<img class="bg" src="images/common/ls_border.png">' )
- } ),
-
- items: Em.ContainerView.extend( {
- classNames: 'ls-items',
-
- childViews:
- [
- 'dialpadButton'
- ],
-
- dialpadButton: SDL.Button.extend( {
- elementId: 'phone_menu_dialpadButton',
-
- classNames: 'ls-item lsp1_p active_in_helpmode',
- classNameBindings:
- [
- 'SDL.States.phone.dialpad.active:phone_active'
- ],
- textBinding: Em.Binding.oneWay( 'SDL.locale.label.view_phone_phone' ),
- icon: 'images/phone/ico_phone.png',
- action: 'subState',
- target: 'SDL.PhoneController',
-
- stateName: 'dialpad'
- } )
- } )
- } ),
-
- /** End call message window */
- endCallMessage: SDL.Label.extend( {
- elementId: 'phone_endCallMessage',
-
- contentBinding: Em.Binding.oneWay( 'SDL.locale.label.view_phone_popUp_callEnded' )
- } )
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.PhoneView
+ * @desc Phone module visual representation
+ * @category View
+ * @filesource app/view/phone/PhoneView.js
+ * @version 1.0
+ */
+
+SDL.PhoneView = Em.ContainerView.create( {
+
+ elementId: 'phone',
+
+ /** Bind class for visual representation */
+ classNameBindings: [
+ 'SDL.States.phone.active:active_state:inactive_state'
+ ],
+
+ /** Initial phone components */
+ childViews: [
+ 'menu', SDL.DialpadPhoneView
+ ],
+
+ /** Left menu */
+ menu: Em.ContainerView.extend( {
+ elementId: 'phone_menu',
+
+ // classNameBindings: ['SDL.PhoneController.hideMenu:hide'],
+
+ childViews: [
+ 'border', 'items'
+ ],
+
+ border: Em.View.extend( {
+ classNames: 'ls_border',
+
+ template: Ember.Handlebars
+ .compile('<img class="bg" src="images/common/ls_border.png">')
+ }),
+
+ items: Em.ContainerView.extend( {
+ classNames: 'ls-items',
+
+ childViews: [
+ 'dialpadButton'
+ ],
+
+ dialpadButton: SDL.Button.extend( {
+ elementId: 'phone_menu_dialpadButton',
+
+ classNames: 'ls-item lsp1_p active_in_helpmode',
+ classNameBindings: [
+ 'SDL.States.phone.dialpad.active:phone_active'
+ ],
+ textBinding: Em.Binding
+ .oneWay('SDL.locale.label.view_phone_phone'),
+ icon: 'images/phone/ico_phone.png',
+ action: 'subState',
+ target: 'SDL.PhoneController',
+
+ stateName: 'dialpad'
+ })
+ })
+ }),
+
+ /** End call message window */
+ endCallMessage: SDL.Label.extend( {
+ elementId: 'phone_endCallMessage',
+
+ contentBinding: Em.Binding
+ .oneWay('SDL.locale.label.view_phone_popUp_callEnded')
+ })
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/AlertManeuverPopUp.js b/SDL_Core/src/components/HMI/app/view/sdl/AlertManeuverPopUp.js
deleted file mode 100644
index 77b12fa2e..000000000
--- a/SDL_Core/src/components/HMI/app/view/sdl/AlertManeuverPopUp.js
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.AlertManeuverPopUp
- * @desc AlertManeuverPopUp module visual representation
- * @category View
- * @filesource app/view/sdl/AlertManeuverPopUp.js
- * @version 1.0
- */
-
-SDL.AlertManeuverPopUp = Em.ContainerView.create( {
-
- elementId: 'AlertManeuverPopUp',
-
- classNames: 'AlertManeuverPopUp',
-
- classNameBindings:
- ['activate:AlertManeuverActive'
- ],
-
- childViews:
- [
- 'applicationName',
- // 'image',
- // 'message1',
- // 'message2',
- // 'message3',
- 'softbuttons',
- 'closeButton'
- ],
-
- content1: 'Title',
-
- content2: 'Text',
-
- activate: false,
-
- timer: null,
-
- /**
- * Wagning image on Alert Maneuver PopUp
- */
- image: Em.View.extend( {
- elementId: 'alertManeuverPopUpImage',
-
- classNames: 'alertManeuverPopUpImage'
- } ),
-
- applicationName: SDL.Label.extend( {
-
- elementId: 'applicationName',
-
- classNames: 'applicationName',
-
- contentBinding: 'parentView.appName'
- } ),
-
- message1: SDL.Label.extend( {
-
- elementId: 'message1',
-
- classNames: 'message1',
-
- contentBinding: 'parentView.content1'
- } ),
-
- message2: SDL.Label.extend( {
-
- elementId: 'message2',
-
- classNames: 'message2',
-
- contentBinding: 'parentView.content2'
- } ),
-
- message3: SDL.Label.extend( {
-
- elementId: 'message3',
-
- classNames: 'message3',
-
- contentBinding: 'parentView.content3'
- } ),
-
- /**
- * Container for softbuttons
- */
- softbuttons: Em.ContainerView.extend( {
- elementId: 'alertManeuverSoftButtons',
-
- classNames: 'alertManeuverSoftButtons'
- } ),
-
- /**
- * Close button
- */
- closeButton: SDL.Button.create( {
- text: 'Close',
- classNames: 'closeButton softButton',
- action: 'closeAlertMeneuverPopUp',
- target: 'SDL.SDLController',
- templateName: 'text'
- } ),
-
- /**
- * @desc Function creates Soft Buttons on AlertPoUp
- * @param {Object} params
- */
- addSoftButtons: function( params ) {
-
- var count = this.get( 'softbuttons' ).removeAllChildren();
-
- if( params ){
-
- var softButtonsClass;
- switch( params.length ){
- case 1:
- softButtonsClass = 'one';
- break;
- case 2:
- softButtonsClass = 'two';
- break;
- case 3:
- softButtonsClass = 'three';
- break;
- case 4:
- softButtonsClass = 'four';
- break;
- }
-
- for( var i = 0; i < params.length; i++ ){
- this.get( 'softbuttons.childViews' ).pushObject( SDL.Button.create( SDL.PresetEventsCustom, {
- softButtonID: params[i].softButtonID,
- icon: params[i].image,
- text: params[i].text,
- classNames: 'list-item softButton ' + softButtonsClass,
- elementId: 'softButton' + i,
- templateName: params[i].image ? 'rightIcon' : 'text',
- systemAction: params[i].systemAction
- } ) );
- }
- }
- },
-
- AlertManeuverActive: function( message ) {
- var self = this;
-
- // play audio alert
- if( message.playTone ){
- SDL.Audio.play( 'audio/alert.wav' );
- }
-
- this.addSoftButtons( message.softButtons );
- if( message.ttsChunks ){
- SDL.SDLModel.onPrompt( message.ttsChunks.ttsChunks );
- }
-
- this.set( 'appName', SDL.SDLController.getApplicationModel( message.appId ).appName );
-
- this.set( 'activate', true );
-
- clearTimeout( this.timer );
- this.timer = setTimeout( function() {
- self.set( 'activate', false );
- }, 5000 );
- }
-} ); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/AlertPopUp.js b/SDL_Core/src/components/HMI/app/view/sdl/AlertPopUp.js
index 3ff8e1dbc..de4502974 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/AlertPopUp.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/AlertPopUp.js
@@ -32,7 +32,7 @@
* @version 1.0
*/
-SDL.AlertPopUp = Em.ContainerView.create( {
+SDL.AlertPopUp = Em.ContainerView.create({
elementId: 'AlertPopUp',
@@ -50,7 +50,8 @@ SDL.AlertPopUp = Em.ContainerView.create( {
'message1',
'message2',
'message3',
- 'softbuttons'
+ 'softbuttons',
+ 'progressIndicatorView'
],
/**
@@ -68,59 +69,72 @@ SDL.AlertPopUp = Em.ContainerView.create( {
timer: null,
+ timeout: null,
+
+ progressIndicator: false,
+
/**
* Wagning image on Alert PopUp
*/
- image: Em.View.extend( {
+ image: Em.View.extend({
elementId: 'alertPopUpImage',
classNames: 'alertPopUpImage'
- } ),
+ }),
+
+ /**
+ * Wagning image on Alert PopUp
+ */
+ progressIndicatorView: Em.View.extend({
+ elementId: 'progressIndicator',
- applicationName: SDL.Label.extend( {
+ classNameBindings: 'this.parentView.progressIndicator:progressIndicator'
+ }),
+
+ applicationName: SDL.Label.extend({
elementId: 'applicationName',
classNames: 'applicationName',
contentBinding: 'parentView.appName'
- } ),
+ }),
- message1: SDL.Label.extend( {
+ message1: SDL.Label.extend({
elementId: 'message1',
classNames: 'message1',
contentBinding: 'parentView.content1'
- } ),
+ }),
- message2: SDL.Label.extend( {
+ message2: SDL.Label.extend({
elementId: 'message2',
classNames: 'message2',
contentBinding: 'parentView.content2'
- } ),
+ }),
- message3: SDL.Label.extend( {
+ message3: SDL.Label.extend({
elementId: 'message3',
classNames: 'message3',
contentBinding: 'parentView.content3'
- } ),
+ }),
/**
* Deactivate PopUp
*/
- deactivate: function( ABORTED ) {
- this.set( 'active', false );
- clearTimeout( this.timer );
+ deactivate: function() {
+ this.set('active', false);
+ clearTimeout(this.timer);
- SDL.SDLController.alertResponse( ABORTED ? 'ABORTED' : 'SUCCESS', this.alertRequestId );
+ SDL.SDLController.alertResponse(SDL.SDLModel.resultCode['SUCCESS'], this.alertRequestId);
SDL.SDLController.onSystemContextChange();
},
@@ -128,35 +142,33 @@ SDL.AlertPopUp = Em.ContainerView.create( {
/**
* Container for softbuttons
*/
- softbuttons: Em.ContainerView.extend( {
+ softbuttons: Em.ContainerView.extend({
childViews:
[
'buttons'
],
- buttons: Em.ContainerView.extend( {
+ buttons: Em.ContainerView.extend({
elementId: 'alertSoftButtons',
classNames: 'alertSoftButtons'
- } )
- } ),
+ })
+ }),
/**
* @desc Function creates Soft Buttons on AlertPoUp
* @param {Object} params
*/
- addSoftButtons: function( params, appId ) {
+ addSoftButtons: function(params, appID) {
- var count = this.get( 'softbuttons.buttons.childViews' ).length - 1;
- for( var i = count; i >= 0; i-- ){
- this.get( 'softbuttons.buttons.childViews' ).removeObject( this.get( 'softbuttons.buttons.childViews' )[0] );
- }
+ this.softbuttons.buttons.removeAllChildren();
+ this.softbuttons.buttons.rerender();
- if( params ){
+ if(params){
var softButtonsClass;
- switch( params.length ){
+ switch(params.length){
case 1:
softButtonsClass = 'one';
break;
@@ -171,49 +183,60 @@ SDL.AlertPopUp = Em.ContainerView.create( {
break;
}
- for( var i = 0; i < params.length; i++ ){
- this.get( 'softbuttons.buttons.childViews' ).pushObject( SDL.Button.create( SDL.PresetEventsCustom, {
+ for(var i = 0; i < params.length; i++){
+ this.get('softbuttons.buttons.childViews')
+ .pushObject(SDL.Button.create(SDL.PresetEventsCustom, {
systemAction: params[i].systemAction,
groupName: "AlertPopUp",
+ classNameBindings: ['isHighlighted:isHighlighted'],
+ isHighlighted: params[i].isHighlighted ? true : false,
softButtonID: params[i].softButtonID,
- icon: params[i].image,
+ icon: params[i].image ? params[i].image.value : "",
text: params[i].text,
classNames: 'list-item softButton ' + softButtonsClass,
elementId: 'softButton' + i,
- templateName: params[i].image ? 'rightIcon' : 'text',
- appId: appId
- } ) );
+ templateName: params[i].image ? 'rightText' : 'text',
+ appID: appID
+ }));
}
}
},
- AlertActive: function( message, alertRequestId ) {
+ AlertActive: function(message, alertRequestId) {
var self = this;
- // play audio alert
- if( message.playTone ){
- SDL.Audio.play( 'audio/alert.wav' );
- }
+ this.set('alertRequestId', alertRequestId);
- this.set( 'alertRequestId', alertRequestId );
+ this.addSoftButtons(message.softButtons, message.appID);
- this.addSoftButtons( message.softButtons, message.appId );
+ this.set('progressIndicator', message.progressIndicator);
- this.set( 'appName', SDL.SDLController.getApplicationModel( message.appId ).appName );
+ this.set('appName', SDL.SDLController.getApplicationModel(message.appID).appName);
- this.set( 'content1', message.AlertText1 );
- this.set( 'content2', message.AlertText2 );
- this.set( 'content3', message.AlertText3 );
- this.set( 'active', true );
+ for (var i = 0; i < message.alertStrings.length; i++) {
+ switch (message.alertStrings[i].fieldName) {
+ case 'alertText1': {
+ this.set('content1', message.alertStrings[i].fieldText);
+ break;
+ }
+ case 'alertText2': {
+ this.set('content2', message.alertStrings[i].fieldText);
+ break;
+ }
+ case 'alertText3': {
+ this.set('content3', message.alertStrings[i].fieldText);
+ break;
+ }
+ }
+ }
+
+ this.set('active', true);
+ this.set('timeout', message.duration);
SDL.SDLController.onSystemContextChange();
- clearTimeout( this.timer );
- this.timer = setTimeout( function() {
+ clearTimeout(this.timer);
+ this.timer = setTimeout(function() {
self.deactivate();
- }, message.duration );
-
- if( message.ttsChunks ){
- SDL.SDLModel.onPrompt( message.ttsChunks, message.duration - 100 );
- }
+ }, message.duration);
}
-} ); \ No newline at end of file
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/AudioPassThruPopUp.js b/SDL_Core/src/components/HMI/app/view/sdl/AudioPassThruPopUp.js
index 1020a5b04..3900ee35a 100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/AudioPassThruPopUp.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/AudioPassThruPopUp.js
@@ -112,9 +112,9 @@ SDL.AudioPassThruPopUp = Em.ContainerView.create( {
elementId: 'AudioPassThruPopUpButtonRetry',
classNames: 'buttonRetry softButton',
text: 'Retry',
- responseResult: 'RETRY',
+ responseResult: SDL.SDLModel.resultCode['RETRY'],
actionUp: function() {
- SDL.SDLController.callPerformAudioPassThruPopUpResponse( this );
+ SDL.SDLController.callPerformAudioPassThruPopUpErrorResponse( this );
}
} ),
@@ -122,7 +122,7 @@ SDL.AudioPassThruPopUp = Em.ContainerView.create( {
elementId: 'AudioPassThruPopUpButtonDone',
classNames: 'buttonDone softButton',
text: 'Done',
- responseResult: 'SUCCESS',
+ responseResult: SDL.SDLModel.resultCode['SUCCESS'],
actionUp: function() {
SDL.SDLController.callPerformAudioPassThruPopUpResponse( this );
}
@@ -132,9 +132,9 @@ SDL.AudioPassThruPopUp = Em.ContainerView.create( {
elementId: 'AudioPassThruPopUpButtonCancel',
classNames: 'buttonCancel softButton',
text: 'Cancel',
- responseResult: 'ABORTED',
+ responseResult: SDL.SDLModel.resultCode['ABORTED'],
actionUp: function() {
- SDL.SDLController.callPerformAudioPassThruPopUpResponse( this );
+ SDL.SDLController.callPerformAudioPassThruPopUpErrorResponse( this );
}
} ),
@@ -148,21 +148,31 @@ SDL.AudioPassThruPopUp = Em.ContainerView.create( {
var self = this, data = SDL.SDLModel.AudioPassThruData;
- SDL.SDLModel.onPrompt( data.initialPrompt.ttsChunks );
-
- this.set( 'appName', SDL.SDLController.getApplicationModel( data.appId ).appName );
-
- this.set( 'content1', data.audioPassThruDisplayText1 );
- this.set( 'content2', data.audioPassThruDisplayText2 );
+ this.set( 'appName', SDL.SDLController.getApplicationModel( data.appID ).appName );
+
+ for (var i = 0; i < data.audioPassThruDisplayTexts.length; i++) {
+ switch (data.audioPassThruDisplayTexts[i].fieldName) {
+ case 'audioPassThruDisplayText1': {
+ this.set('content1', data.audioPassThruDisplayTexts[i].fieldText);
+ break;
+ }
+ case 'audioPassThruDisplayText2': {
+ this.set('content2', data.audioPassThruDisplayTexts[i].fieldText);
+ break;
+ }
+ }
+ }
clearTimeout( this.timer );
this.timer = setTimeout( function() {
- SDL.SDLController.performAudioPassThruResponse( "SUCCESS" );
+ SDL.SDLController.performAudioPassThruResponse( SDL.SDLModel.resultCode["SUCCESS"] );
}, data.maxDuration );
}else{
if( this.timer ){
clearTimeout( this.timer );
}
}
+
+ SDL.SDLController.onSystemContextChange();
}.observes( 'activate' )
} ); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/ExitAppView.js b/SDL_Core/src/components/HMI/app/view/sdl/ExitAppView.js
new file mode 100644
index 000000000..920f5f36d
--- /dev/null
+++ b/SDL_Core/src/components/HMI/app/view/sdl/ExitAppView.js
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * · Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * · Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * · Neither the name of the Ford Motor Company nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.ExitApp
+ * @desc Exit All Applications reason select visual representation
+ * @category View
+ * @filesource app/view/sdl/ExitAppView.js
+ * @version 1.0
+ */
+
+SDL.ExitApp = Em.ContainerView.create( {
+
+ elementId: 'exitAppView',
+
+ classNames: 'exitAppView',
+
+ classNameBindings:
+ [
+ 'active'
+ ],
+
+ childViews:
+ [
+ 'exitAppViewLabel',
+ 'exitAppViewTitle',
+ 'exitAppViewSelect'
+ ],
+
+ /**
+ * Title of VehicleInfo PopUp view
+ */
+ exitAppViewLabel: SDL.Label.extend( {
+
+ elementId: 'exitAppViewLabel',
+
+ classNames: 'exitAppViewLabel',
+
+ content: 'Exit Application'
+ } ),
+
+ /**
+ * Property indicates the activity state of TBTClientStateView
+ */
+ active: false,
+
+ /**
+ * Title of tbtClientState group of parameters
+ */
+ exitAppViewTitle: SDL.Label.extend( {
+
+ elementId: 'exitAppViewTitle',
+
+ classNames: 'exitAppViewTitle',
+
+ content: 'Exit Application reason'
+ } ),
+
+ /**
+ * HMI element Select with parameters of TBTClientStates
+ */
+ exitAppViewSelect: Em.Select.extend( {
+
+ elementId: 'exitAppViewSelect',
+
+ classNames: 'exitAppViewSelect',
+
+ contentBinding: 'SDL.SDLModel.exitAppState',
+
+ optionValuePath: 'content.id',
+
+ optionLabelPath: 'content.name',
+
+ /**
+ * Selected data sent on model for further processing
+ */
+ click: function() {
+
+ SDL.SDLController.exitAppViewSelected( this.selection.name );
+
+ }
+ } ),
+
+ /**
+ * Trigger function that activates and deactivates tbtClientStateView
+ */
+ toggleActivity: function() {
+ this.toggleProperty( 'active' );
+ SDL.SDLController.onSystemContextChange();
+ }
+} ); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/TTSPopUp.js b/SDL_Core/src/components/HMI/app/view/sdl/TTSPopUp.js
index 24ba4849c..0fb11eeb5 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/TTSPopUp.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/TTSPopUp.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -38,16 +37,15 @@ SDL.TTSPopUp = Em.ContainerView.create( {
classNames: 'TTSPopUp',
- classNameBindings:
- [
- 'active'
- ],
+ classNameBindings: [
+ 'active'
+ ],
- childViews:
- [
- 'popUp',
- 'message'
- ],
+ childViews: [
+ 'popUp', 'message'
+ ],
+
+ requestId: null,
content: 'Messaage',
@@ -55,44 +53,53 @@ SDL.TTSPopUp = Em.ContainerView.create( {
timer: null,
- popUp: Em.View.extend( {
+ popUp: Ember.TextArea.extend( {
elementId: 'popUp',
- classNames: 'popUp'
- } ),
+ classNames: 'popUp',
+
+ valueBinding: 'parentView.content'
+ }),
message: SDL.Label.extend( {
elementId: 'message',
- classNames: 'message',
+ classNames: 'message'
+ }),
- contentBinding: 'parentView.content'
- } ),
+ ActivateTTS: function(msg) {
- ActivateTTS: function( msg, delay ) {
var self = this;
- // play audio alert
- // SDL.Audio.play('audio/initial.wav');
+ //this.requestId = id;
+
+ this.set('content', msg);
+ this.set('active', true);
- this.set( 'content', msg );
- this.set( 'active', true );
+ clearTimeout(this.timer);
+ this.timer = setTimeout(function() {
- FFW.UI.OnSystemContext( 'NOT_AUDIBLE' );
+ self.DeactivateTTS();
+ }, 2000); // 2 second timeout for TTS popUp
+ FFW.TTS.Started();
+ },
- clearTimeout( this.timer );
- this.timer = setTimeout( function() {
- self.set( 'active', false );
- self.onStateChange();
- }, delay ? delay : 10000 );
+ DeactivateTTS: function() {
+ clearTimeout(this.timer);
+ this.set('active', false);
+ SDL.SDLController.TTSResponseHandler();
+ FFW.TTS.Stopped();
},
- // send context notification
- onStateChange: function() {
- if( !SDL.AlertPopUp.active ){
- FFW.UI.OnSystemContext( 'AUDIBLE' );
- }
+ /**
+ * This event triggered when component is placed to document DOM structure
+ */
+ didInsertElement: function() {
+
+ this._super();
+
+ //FFW.TTS.set('isReady', true);
}
-} ); \ No newline at end of file
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/VRHelpListView.js b/SDL_Core/src/components/HMI/app/view/sdl/VRHelpListView.js
new file mode 100644
index 000000000..879ff0f79
--- /dev/null
+++ b/SDL_Core/src/components/HMI/app/view/sdl/VRHelpListView.js
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.InteractionChoicesView
+ * @desc Interaction Choices visual representation
+ * @category View
+ * @filesource app/view/sdl/shared/interactionChoicesView.js
+ * @version 1.0
+ */
+
+SDL.VRHelpListView = SDL.SDLAbstractView.create( {
+
+ elementId: 'vr_help_list_view',
+
+ childViews: [
+ 'backButton', 'captionText', 'helpList'
+ ],
+
+ helpList: SDL.List.extend( {
+ elementId: 'vr_help_list_view_list',
+ itemsOnPage: 5,
+ items: []
+ }),
+
+ /**
+ * Deactivate window
+ */
+ deactivate: function() {
+
+ this._super();
+
+ SDL.SDLController.VRMove();
+ SDL.SDLController.onSystemContextChange();
+ },
+
+ /**
+ * Clean choices caption and list before new proform
+ */
+ clean: function() {
+
+ this.set('captionText.content', 'vrHelp');
+ this.helpList.items = [];
+ this.helpList.list.refresh();
+ },
+
+ /**
+ * Update choises list with actual set id
+ *
+ * @param data:
+ * Array
+ */
+ showVRHelp: function(vrHelpTitle, vrHelp) {
+
+ this.clean();
+
+ this.set('active', true);
+
+ SDL.SDLController.VRMove();
+
+ if (vrHelpTitle) {
+ this.captionText.set('content', vrHelpTitle);
+ }
+
+ if (vrHelp) {
+ for (i = 0; i < vrHelp.length; i++) {
+ this.helpList.items.push( {
+ type: SDL.Label,
+ params: {
+ content: vrHelp[i].text,
+ icon: vrHelp[i].image
+ ? vrHelp[i].image.value : null,
+ templateName: vrHelp[i].image ? "icon" : null
+ }
+ });
+ }
+ }
+
+ this.helpList.list.refresh();
+ SDL.SDLController.onSystemContextChange();
+ }
+});
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/VRPopUp.js b/SDL_Core/src/components/HMI/app/view/sdl/VRPopUp.js
index 5af421dc7..0bf6bd7e6 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/VRPopUp.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/VRPopUp.js
@@ -40,7 +40,8 @@ SDL.VRPopUp = Em.ContainerView.create( {
classNameBindings:
[
- 'VRActive:active'
+ 'SDL.SDLModel.VRActive:active',
+ 'SDL.SDLModel.VRHelpListActivated:move'
],
childViews:
@@ -67,7 +68,7 @@ SDL.VRPopUp = Em.ContainerView.create( {
content: 'Speak the command'
} ),
- VRActive: false,
+ VRActiveBinding: 'SDL.SDLModel.VRActive',
popUp: Em.View.extend( {
@@ -76,34 +77,14 @@ SDL.VRPopUp = Em.ContainerView.create( {
classNames: 'popUp'
} ),
- AddActivateApp: function( appId, appName ) {
-
- this.get( 'listOfCommands.list.childViews' ).pushObject( SDL.Button.create( {
- action: 'onActivateSDLApp',
- target: 'SDL.SDLController',
- text: appName,
- appName: appName,
- appId: appId,
- classNames: 'list-item',
- templateName: 'text'
- } ) );
-
- },
-
- DeleteActivateApp: function( appId ) {
-
- this.get( 'listOfCommands.list.childViews' ).removeObjects( this.get( 'listOfCommands.list.childViews' ).filterProperty( 'activeAppId', appId ) );
-
- },
-
- AddCommand: function( commandId, vrCommands, appId ) {
+ AddCommand: function( commandID, vrCommands, appID ) {
for( var j = 0; j < vrCommands.length; j++ ){
this.get( 'listOfCommands.list.childViews' ).pushObject( SDL.Button.create( {
action: 'onVRCommand',
target: 'SDL.SDLAppController',
- appId: appId,
- commandId: commandId,
+ appID: appID,
+ commandID: commandID,
text: vrCommands[j],
classNames: 'list-item',
templateName: 'text'
@@ -112,55 +93,29 @@ SDL.VRPopUp = Em.ContainerView.create( {
},
- DeleteCommand: function( commandId ) {
+ DeleteCommand: function( commandID ) {
- this.get( 'listOfCommands.list.childViews' ).removeObjects( this.get( 'listOfCommands.list.childViews' ).filterProperty( 'commandId', commandId ) );
+ this.get( 'listOfCommands.list.childViews' ).removeObjects( this.get( 'listOfCommands.list.childViews' ).filterProperty( 'commandID', commandID ) );
},
- CreateInteractionChoise: function( params, performInteractionRequestId ) {
+ AddActivateApp: function( AppName, appID ) {
- if( !params ){
- return;
- }
+ this.get( 'listOfCommands.list.childViews' ).pushObject( SDL.Button.create( {
+ action: 'onActivateSDLApp',
+ target: 'SDL.SDLController',
+ appID: appID,
+ text: AppName,
+ classNames: 'list-item',
+ templateName: 'text'
+ } ) );
- for( var i = 0; i < params.length; i++ ){
- for( var j = 0; j < params[i].vrCommands.length; j++ ){
- this.get( 'listOfCommands.list.childViews' ).pushObject( SDL.Button.create( {
- action: 'onChoiceInteraction',
- target: 'SDL.SDLAppController',
- choiceId: params[i].choiceID,
- btnType: 'interactionChoice',
- text: params[i].vrCommands[j],
- performInteractionRequestId: performInteractionRequestId,
- classNames: 'list-item',
- templateName: 'text'
- } ) );
- }
- }
},
- DeleteInteractionChoise: function() {
-
- if( !SDL.InteractionChoicesView.active ){
- this.get( 'listOfCommands.list.childViews' ).removeObjects( this.get( 'listOfCommands.list.childViews' ).filterProperty( 'btnType', 'interactionChoice' ) );
- }
-
- }.observes( 'SDL.InteractionChoicesView.active' ),
-
- activateVRPopUp: function() {
- var self = this;
+ DeleteActivateApp: function( appID ) {
- if( this.VRActive ){
- this.set( 'VRActive', false );
- }else{
- // play audio alert
- SDL.Audio.play( 'audio/say.wav' );
-
- this.set( 'VRActive', true );
- }
+ this.get( 'listOfCommands.list.childViews' ).removeObjects( this.get( 'listOfCommands.list.childViews' ).filterProperty( 'appID', appID ) );
- SDL.SDLController.onSystemContextChange();
},
/**
@@ -173,13 +128,47 @@ SDL.VRPopUp = Em.ContainerView.create( {
itemsOnPage: 5,
/** Items array */
- items: new Array()
+ items: [
+ {
+ type: SDL.Button,
+ params: {
+ //templateName: template,
+ text: 'Help',
+ target: 'SDL.SDLController',
+ action: 'vrHelpAction',
+ onDown: false
+ }
+ }
+ ]
} ),
// deactivate VR on change application state
onStateChange: function() {
- if( this.VRActive ){
- this.set( 'VRActive', false );
- }
- }.observes( 'SDL.TransitionIterator.ready' )
+ if (this.VRActive) {
+ FFW.VR.Started();
+ this.set( 'VRActive', false );
+ } else {
+ FFW.VR.Stopped();
+ }
+ }.observes('SDL.TransitionIterator.ready'),
+
+ onActivate: function() {
+ SDL.SDLController.VRMove();
+ SDL.SDLController.onSystemContextChange();
+ if (this.VRActive) {
+ FFW.VR.Started();
+ } else {
+ FFW.VR.Stopped();
+ }
+ }.observes('this.VRActive'),
+
+ /**
+ * This event triggered when component is placed to
+ * document DOM structure
+ */
+ didInsertElement: function() {
+ this._super();
+
+ //FFW.VR.set( 'isReady', true );
+ }
} ); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/VehicleInfoView.js b/SDL_Core/src/components/HMI/app/view/sdl/VehicleInfoView.js
index 72c4ab832..541d07105 100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/VehicleInfoView.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/VehicleInfoView.js
@@ -166,5 +166,15 @@ SDL.VehicleInfo = Em.ContainerView.create( {
toggleActivity: function() {
this.set( 'active', !this.active );
SDL.SDLController.onSystemContextChange();
+ },
+
+ /**
+ * This event triggered when component is placed to
+ * document DOM structure
+ */
+ didInsertElement: function() {
+ this._super();
+
+ //FFW.VehicleInfo.set( 'isReady', true );
}
} ); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/driverDistraction.js b/SDL_Core/src/components/HMI/app/view/sdl/driverDistraction.js
index e2f57105c..e2f57105c 100755..100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/driverDistraction.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/driverDistraction.js
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/shared/interactionChoicesView.js b/SDL_Core/src/components/HMI/app/view/sdl/shared/interactionChoicesView.js
index 2663783b7..16ffe89ee 100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/shared/interactionChoicesView.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/shared/interactionChoicesView.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -32,89 +31,351 @@
* @version 1.0
*/
-SDL.InteractionChoicesView = SDL.SDLAbstractView.create( {
+SDL.InteractionChoicesView = SDL.SDLAbstractView.create({
elementId: 'perform_interaction_view',
- childViews:
- [
- 'backButton',
- 'captionText',
- 'listOfChoices'
+ childViews: [
+ 'backButton',
+ 'captionText',
+ 'listOfChoices',
+ 'input',
+ 'listWrapper'
+ ],
+
+ didInsertElement: function(){
+
+ SDL.SDLModel.interactionListWrapper = new iScroll('listWrapper', { hideScrollbar:false, hScrollbar: true, vScrollbar: true, hScroll: true, vScroll: true });
+ },
+
+ backButton: SDL.Button.extend({
+ classNames: [
+ 'back-button'
],
+ target: 'SDL.SDLController',
+ action: 'InteractionChoicesDeactivate',
+ icon: 'images/media/ico_back.png',
+ onDown: false
+ }),
+
+ input: Ember.TextArea.extend({
+ classNameBindings: ['this.parentView.search::hide'],
+ tagName: 'input',
+ attribute: ['type:text'],
+ attributeBindings: ['disabled'],
+ disabled: false,
+ click: function(){
+ SDL.SDLModel.uiShowKeyboard(this);
+ },
+ search: function(){
+ this.get('parentView').deactivate("SUCCESS");
+ }
+ }),
- listOfChoices: SDL.List.extend( {
+ listWrapper: Em.ContainerView.extend({
+
+ classNameBindings: ['this.parentView.icon::hide'],
+
+ elementId: 'listWrapper',
+
+ classNames: 'listWrapper',
+
+ childViews: [
+ 'naviChoises'
+ ],
+
+ naviChoises: Em.ContainerView.extend({
+ classNames: 'naviChoises',
+ childViews: [
+ 'captionText'
+ ],
+
+ captionText: SDL.Label.extend({
+
+ classNameBindings: ['this.parentView.search:hide'],
+ classNames: ['caption-text'],
+ contentBinding: 'this.parentView.caption'
+ })
+
+ })
+ }),
+
+ captionText: SDL.Label.extend({
+
+ classNameBindings: ['this.parentView.search:hide'],
+ classNames: ['caption-text'],
+ contentBinding: 'this.parentView.caption'
+ }),
+
+ listOfChoices: SDL.List.extend({
+ classNameBindings: ['this.parentView.list::hide'],
elementId: 'perform_interaction_view_list',
itemsOnPage: 5,
items: []
- } ),
+ }),
timer: null,
+ timeout: null,
+
+ search: false,
+
+ list: false,
+
+ icon: false,
+
+ /**
+ * Id of app initiated performInteraction request
+ */
+ appID: null,
+
/**
- * Identifier of current request
+ * Method updates popup timer when data changes through keyboard
*/
- performInteractionRequestId: null,
+ timerUpdate: function (){
+ if (this.timeout) {
+ clearTimeout(this.timer);
+ var self = this;
+ this.timer = setTimeout(function () {
+
+ self.deactivate("TIMED_OUT");
+ }, this.timeout);
+ }
+ }.observes('this.input.value'),
+
+ /**
+ * Activate window and set caption text
+ *
+ * @param text: String
+ */
+ activate: function (message) {
+
+ this.clean();
+
+ if (message.params && message.params.initialText) {
+ this.set('caption', message.params.initialText.fieldText);
+ }
+
+ this.appID = message.params.appID;
+
+ if (message.params.interactionLayout) {
+
+ switch (message.params.interactionLayout) {
+ case "ICON_ONLY" : {
+
+ this.preformChoicesNavigation(message.params.choiceSet, message.params.timeout);
+
+
+ this.set('search', false);
+ this.set('list', false);
+ this.set('icon', true);
+ this.set('active', true);
+ SDL.SDLController.onSystemContextChange();
+ break;
+ }
+ case "ICON_WITH_SEARCH" : {
+
+ this.preformChoicesNavigation(message.params.choiceSet, message.params.timeout);
+
+ this.set('icon', true);
+ this.set('search', true);
+ this.set('list', false);
+ this.set('active', true);
+ SDL.SDLController.onSystemContextChange();
+ break;
+ }
+ case "LIST_ONLY" : {
+
+ this.preformChoices(message.params.choiceSet, message.params.timeout);
+
+ this.set('list', true);
+ this.set('icon', false);
+ this.set('search', false);
+ this.set('active', true);
+ SDL.SDLController.onSystemContextChange();
+ break;
+ }
+ case "LIST_WITH_SEARCH" : {
+
+ this.preformChoices(message.params.choiceSet, message.params.timeout);
+
+ this.set('list', true);
+ this.set('search', true);
+ this.set('icon', false);
+ this.set('active', true);
+ break;
+ }
+ case "KEYBOARD" : {
+ this.preformChoices(null, message.params.timeout);
+ SDL.SDLModel.uiShowKeyboard(this.input);
+
+
+ this.set('list', false);
+ this.set('search', false);
+ this.set('icon', false);
+ // this.set('active', true);
+
+ break;
+ }
+ default:
+ {
+ // default action
+ }
+ }
+ } else {
+
+ if (message.params.choiceSet) {
+ this.preformChoices(message.params.choiceSet, message.params.timeout);
+
+ this.set('list', true);
+ this.set('icon', false);
+ this.set('search', false);
+ this.set('active', true);
+ SDL.SDLController.onSystemContextChange();
+ } else {
+
+ this.timer = setTimeout(function () {
+ SDL.InteractionChoicesView.deactivate("TIMED_OUT");
+ }, message.params.timeout);
+ }
+ }
+
+ },
/**
* Deactivate window
*/
- deactivate: function( ABORTED ) {
+ deactivate: function (result, choiceID) {
+
+ clearTimeout(this.timer);
+ this.set('active', false);
+ SDL.SDLController.VRMove();
+ SDL.Keyboard.deactivate();
- clearTimeout( this.timer );
- this.set( 'active', false );
- if( ABORTED ){
- SDL.SDLController.interactionChoiseCloseResponse( 'ABORTED', this.performInteractionRequestId );
+
+ switch (result) {
+ case "ABORTED":
+ {
+ SDL.SDLController.interactionChoiseCloseResponse(this.appID, SDL.SDLModel.resultCode["ABORTED"]);
+ break;
+ }
+ case "TIMED_OUT":
+ {
+ SDL.SDLController.interactionChoiseCloseResponse(this.appID, SDL.SDLModel.resultCode["TIMED_OUT"]);
+ break;
+ }
+ case "SUCCESS":
+ {
+ SDL.SDLController.interactionChoiseCloseResponse(this.appID, SDL.SDLModel.resultCode["SUCCESS"], choiceID, this.input.value);
+ break;
+ }
+ default:
+ {
+ // default action
+ }
}
+
+ this.appID = null;
+
+ SDL.SDLController.onSystemContextChange();
},
/**
* Clean choices caption and list before new proform
*/
- clean: function() {
- this.set( 'captionText.content', 'Interaction Choices' );
+ clean: function () {
+
+ this.input.set('value', null);
+ this.set('captionText.content', 'Interaction Choices');
+ this.set('timeout', null);
this.listOfChoices.items = [];
this.listOfChoices.list.refresh();
+ var length = this.get('listWrapper.naviChoises.childViews').length;
+ for (var i=0; i < length; i++) {
+ SDL.InteractionChoicesView.get('listWrapper.naviChoises.childViews').shiftObject();
+ }
},
/**
* Update choises list with actual set id
- *
- * @param data: Array
+ *
+ * @param data:
+ * Array
*/
- preformChoices: function( data, performInteractionRequestId, timeout ) {
+ preformChoices: function (data, timeout) {
+
+ this.set('timeout', timeout);
+
+ if (data) {
+
+ // temp for testing
+ for (var i = 0; i < data.length; i++) {
+ this.listOfChoices.items
+ .push({
+ type: SDL.Button,
+ params: {
+ text: data[i].menuName,
+ choiceID: data[i].choiceID,
+ action: 'onChoiceInteraction',
+ onDown: false,
+ target: 'SDL.SDLAppController',
+ templateName: data[i].image ? 'rightIcon' : 'text',
+ icon: data[i].image ? data[i].image.value : null
+ }
+ });
+ }
- if( !data ){
- Em.Logger.error( 'No choices to preform' )
- return;
+ this.listOfChoices.list.refresh();
}
- this.set( 'performInteractionRequestId', performInteractionRequestId );
-
- var i = 0, length = data.length, self = this;
-
- // temp for testing
- for( i = 0; i < length; i++ ){
- this.listOfChoices.items.push( {
- type: SDL.Button,
- params: {
- text: data[i].menuName,
- choiceId: data[i].choiceID,
- action: 'onChoiceInteraction',
- onDown: false,
- target: 'SDL.SDLAppController',
- performInteractionRequestId: performInteractionRequestId,
- templateName: 'text'
- }
- } );
+ var self = this;
+
+ clearTimeout(this.timer);
+ this.timer = setTimeout(function () {
+
+ self.deactivate("TIMED_OUT");
+ }, timeout);
+ },
+
+ /**
+ * Update choises list with actual set id
+ *
+ * @param data:
+ * Array
+ */
+ preformChoicesNavigation: function (data, timeout) {
+
+ this.set('timeout', timeout);
+
+ if (data) {
+
+ // temp for testing
+ for (var i = 0; i < data.length; i++) {
+ this.get('listWrapper.naviChoises.childViews').pushObject(SDL.Button.create({
+ text: data[i].menuName,
+ choiceID: data[i].choiceID,
+ action: 'onChoiceInteraction',
+ onDown: false,
+ target: 'SDL.SDLAppController',
+ templateName: data[i].image ? 'rightIcon' : 'text',
+ icon: data[i].image ? data[i].image.value : null
+ })
+ );
+ }
+
}
- this.listOfChoices.list.refresh();
+ var self = this;
+
+ setTimeout(function(){
+
+ SDL.SDLModel.interactionListWrapper.refresh();
+ }, 0);
- clearTimeout( this.timer );
- this.timer = setTimeout( function() {
- self.deactivate( true );
- }, timeout );
+ clearTimeout(this.timer);
+ this.timer = setTimeout(function () {
+ self.deactivate("TIMED_OUT");
+ }, timeout);
}
-} );
+});
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/shared/keyboard.js b/SDL_Core/src/components/HMI/app/view/sdl/shared/keyboard.js
new file mode 100644
index 000000000..b82b7c697
--- /dev/null
+++ b/SDL_Core/src/components/HMI/app/view/sdl/shared/keyboard.js
@@ -0,0 +1,290 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * · Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * · Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * · Neither the name of the Ford Motor Company nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.Keyboard
+ * @desc Slider visual representation
+ * @category View
+ * @filesource app/view/sdl/shared/keyboard.js
+ * @version 1.0
+ */
+
+SDL.Keyboard = SDL.SDLAbstractView.create({
+
+ elementId: 'keyboard_view',
+
+ childViews: [
+ 'backButton',
+ 'microphone',
+ 'searchBar',
+ 'controlls',
+ 'buttonsAreaQWERTY',
+ 'buttonsAreaQWERTZ',
+ 'buttonsAreaAZERTY'
+ ],
+
+ /**
+ * Activate keyboard method
+ *
+ * @param {Object}
+ */
+ activate: function( element ) {
+ if( element.tagName === 'input' ){
+
+ this.set( 'active', true );
+ this.set('target', element);
+ }
+ },
+
+ backButton: SDL.Button.extend( {
+ classNames:
+ [
+ 'back-button'
+ ],
+ action: function() {
+
+ if (SDL.SDLAppController.model && SDL.SDLAppController.model.activeRequests.uiPerformInteraction && !SDL.InteractionChoicesView.active) {
+ SDL.InteractionChoicesView.deactivate("ABORTED");
+ }
+ SDL.Keyboard.deactivate();
+ },
+ icon: 'images/media/ico_back.png',
+ onDown: false
+ } ),
+
+ /**
+ * Extend deactivate method send SUCCESS response on deactivate with current
+ * slider value
+ */
+ deactivate: function () {
+
+ this._super();
+ this.searchBar.input.set('value', null);
+ this.set('target', null);
+ },
+
+ inputChanges: function (element) {
+
+ if (SDL.SDLAppController.model && SDL.SDLAppController.model.activeRequests.uiPerformInteraction) {
+ SDL.SDLController.onResetTimeout(SDL.SDLAppController.model.appID, "UI.PerformInteraction");
+ }
+
+ if (this.searchBar.input.value == null) {
+ this.searchBar.input.set('value', "");
+ }
+
+ switch (element.text) {
+ case "Space": {
+ this.searchBar.input.set('value', this.searchBar.input.value + " ");
+ this.target.set('value', this.searchBar.input.value);
+ break;
+ }
+ case "Search": {
+ this.target.search();
+ this.deactivate();
+ break;
+ }
+ default:{
+ this.searchBar.input.set('value', this.searchBar.input.value + element.text);
+ this.target.set('value', this.searchBar.input.value);
+ }
+
+ }
+ },
+
+ clearBtn: function (element) {
+ this.searchBar.input.set('value', this.searchBar.input.value.slice(0, -1));
+ this.target.set('value', this.searchBar.input.value);
+ SDL.SDLController.onResetTimeout(SDL.SDLAppController.model.appID, "UI.PerformInteraction");
+ },
+
+ /**
+ * Tearget element that initiated keyboard
+ */
+ target: null,
+
+ microphone: SDL.Button.extend({
+ classNames: 'microphone',
+ text: 'mic'
+ }),
+
+ searchBar: Em.ContainerView.extend({
+
+ classNames: 'searchBar',
+
+ childViews: [
+ 'input',
+ 'clearBtn',
+ 'serchIcon'
+ ],
+
+ clearBtn: SDL.Button.extend({
+ classNames: 'clearBtn',
+ text: 'X',
+ action: 'clearBtn',
+ target: 'parentView.parentView'
+ }),
+
+ serchIcon: Em.View.extend({
+ classNames: 'serchIcon'
+ }),
+
+ input: Ember.TextField.extend({
+ elementId: "keyboardInput",
+ classNames: "keyboardInput",
+ valueBinding: 'SDL.SDLModel.keyboardInputValue'
+ })
+
+ }),
+
+ controlls: Em.ContainerView.extend({
+
+ classNames: 'controlls',
+
+ childViews: [
+ 'numericBtn',
+ 'symbolBtn',
+ 'spaceBtn',
+ 'caseSwitchBtn',
+ 'localisationBtn',
+ 'searchBtn'
+ ],
+
+ numericBtn: SDL.Button.extend({
+ classNames: 'numericBtn controll',
+ text: '123'
+ }),
+
+ symbolBtn: SDL.Button.extend({
+ classNames: 'symbolBtn controll',
+ text: '!@#'
+ }),
+
+ spaceBtn: SDL.Button.extend({
+ classNames: 'spaceBtn controll',
+ text: 'Space',
+ target : 'parentView.parentView',
+ action : 'inputChanges'
+ }),
+
+ caseSwitchBtn: SDL.Button.extend({
+ classNames: 'caseSwitchBtn controll',
+ text: 'ABC'
+ }),
+
+ localisationBtn: SDL.Button.extend({
+ classNames: 'localisationBtn controll',
+ icon: 'images/info/info_leftMenu_apps_ico.png'
+ }),
+
+ searchBtn: SDL.Button.extend(SDL.PresetEvents, {
+ classNames: 'searchBtn controll',
+ text: 'Search',
+ click: function(){
+ this.get('parentView.parentView').inputChanges(this);
+ },
+ presetName: 'SEARCH'
+ })
+ }),
+
+ disableButtons: function(){
+
+ if (SDL.SDLAppController.model) {
+ if (!SDL.SDLAppController.model.globalProperties.keyboardProperties) {
+ return;
+ }
+ var list = SDL.SDLAppController.model.globalProperties.keyboardProperties.limitedCharacterList ? SDL.SDLAppController.model.globalProperties.keyboardProperties.limitedCharacterList : [];
+
+ for (var i = 0; i < list.length; i++) {
+ list[i] = list[i].toLowerCase();
+ }
+
+ if (SDL.SDLAppController.model && list.length){
+
+ for (var i = 0; i < this.buttonsAreaQWERTY._childViews.length; i++) {
+
+ if (list.indexOf(this.buttonsAreaQWERTY._childViews[i].text) < 0) {
+ this.buttonsAreaQWERTY._childViews[i].set('disabled', true);
+ this.buttonsAreaQWERTZ._childViews[i].set('disabled', true);
+ this.buttonsAreaAZERTY._childViews[i].set('disabled', true);
+ } else {
+ this.buttonsAreaQWERTY._childViews[i].set('disabled', false);
+ this.buttonsAreaQWERTZ._childViews[i].set('disabled', false);
+ this.buttonsAreaAZERTY._childViews[i].set('disabled', false);
+ }
+ }
+ } else if (SDL.SDLAppController.model && !list.length) {
+ for (var i = 0; i < this.buttonsAreaQWERTY._childViews.length; i++) {
+ this.buttonsAreaQWERTY._childViews[i].set('disabled', false);
+ }
+ }
+ }
+
+ }.observes('SDL.SDLAppController.model.globalProperties.keyboardProperties.limitedCharacterList.@each'),
+
+ buttonsAreaQWERTY: SDL.QWERTYLayout.create({
+
+ classNameBindings: 'this.pQWERTY::hide',
+
+ pQWERTY: function(){
+ if (SDL.SDLAppController.model && SDL.SDLAppController.model.globalProperties.keyboardProperties.keyboardLayout == "QWERTY") {
+ return true;
+ } else {
+ return false;
+ }
+ }.property('SDL.SDLAppController.model.globalProperties.keyboardProperties.keyboardLayout')
+
+ }),
+
+ buttonsAreaQWERTZ: SDL.QWERTZLayout.create({
+
+ classNameBindings: 'this.pQWERTZ::hide',
+
+ pQWERTZ: function(){
+ if (SDL.SDLAppController.model && SDL.SDLAppController.model.globalProperties.keyboardProperties.keyboardLayout == "QWERTZ") {
+ return true;
+ } else {
+ return false;
+ }
+ }.property('SDL.SDLAppController.model.globalProperties.keyboardProperties.keyboardLayout')
+
+ }),
+
+ buttonsAreaAZERTY: SDL.AZERTYLayout.create({
+
+ classNameBindings: 'this.pAZERTY::hide',
+
+ pAZERTY: function(){
+ if (SDL.SDLAppController.model && SDL.SDLAppController.model.globalProperties.keyboardProperties.keyboardLayout == "AZERTY") {
+ return true;
+ } else {
+ return false;
+ }
+ }.property('SDL.SDLAppController.model.globalProperties.keyboardProperties.keyboardLayout')
+
+ })
+
+});
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/shared/optionsView.js b/SDL_Core/src/components/HMI/app/view/sdl/shared/optionsView.js
index 7fc8c7ccb..a4858255a 100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/shared/optionsView.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/shared/optionsView.js
@@ -25,14 +25,14 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
/**
- * @name SDL.SliderView
+ * @name SDL.OptionsView
* @desc Options visual representation
* @category View
* @filesource app/view/sdl/shared/optionsView.js
* @version 1.0
*/
-SDL.OptionsView = SDL.SDLAbstractView.create( {
+SDL.OptionsView = SDL.SDLAbstractView.create({
elementId: 'sdl_options',
@@ -46,7 +46,7 @@ SDL.OptionsView = SDL.SDLAbstractView.create( {
// Menu caption text
captionBinding: 'SDL.SDLAppController.model.currentSubMenuLabel',
- commands: SDL.List.extend( {
+ commands: SDL.List.extend({
elementId: 'info_nonMedia_options_list',
@@ -65,46 +65,63 @@ SDL.OptionsView = SDL.SDLAbstractView.create( {
*/
refreshItems: function() {
- var commands = SDL.SDLAppController.model.get( 'currentCommandsList' ), i, len;
-
- this.items = [];
-
- len = commands.length;
-
- for( i = 0; i < len; i++ ){
- this.items.push( {
- type: SDL.Button,
- params: {
- templateName: commands[i].menuId ? 'arrow' : '',
- text: commands[i].name,
- commandId: commands[i].commandId,
- menuId: commands[i].menuId,
- icon: commands[i].icon,
- target: 'SDL.SDLAppController',
- action: 'onCommand',
- onDown: false
+
+ if (SDL.SDLAppController.model) {
+
+ var commands = SDL.SDLAppController.model.get('currentCommandsList'),
+ i,
+ len,
+ template;
+
+ this.items = [];
+
+ len = commands.length;
+
+ for(i = 0; i < len; i++){
+
+ if(commands[i].menuID >= 0){
+ template = 'arrow';
+ }else{
+ template = commands[i].icon ? 'rightText' : 'text';
}
- } )
- }
- this.list.refresh();
+ this.items.push({
+ type: SDL.Button,
+ params: {
+ templateName: template,
+ text: commands[i].name,
+ commandID: commands[i].commandID,
+ menuID: commands[i].menuID,
+ icon: commands[i].icon,
+ target: 'SDL.SDLAppController',
+ action: 'onCommand',
+ onDown: false
+ }
+ })
+ }
+
+ this.list.refresh();
+ }
- }.observes( 'SDL.SDLAppController.model.currentCommandsList' )
- } ),
+ }.observes('SDL.SDLAppController.model.currentSubMenuId', 'SDL.SDLAppController.model.currentCommandsList.@each')
+ }),
- activate: function( text ) {
+ activate: function(text) {
this._super();
+ SDL.SDLAppController.buttonsSort('top', SDL.SDLAppController.model.appID);
+ SDL.OptionsView.commands.refreshItems();
+
SDL.SDLController.onSystemContextChange();
},
// Extend deactivate window
deactivate: function() {
- if( SDL.SDLAppController.model ){
+ if (SDL.SDLAppController.model) {
- if( SDL.SDLAppController.model.get( 'currentSubMenuId' ) ){
- SDL.SDLAppController.onSubMenu( 0 );
+ if (SDL.SDLAppController.model.get('currentSubMenuId') >= 0) {
+ SDL.SDLAppController.onSubMenu('top');
}else{
this._super();
SDL.SDLController.onSystemContextChange();
@@ -112,4 +129,4 @@ SDL.OptionsView = SDL.SDLAbstractView.create( {
}
}
-} );
+});
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/shared/scrollableMessage.js b/SDL_Core/src/components/HMI/app/view/sdl/shared/scrollableMessage.js
index d531aa9f3..1cc1c2d0c 100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/shared/scrollableMessage.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/shared/scrollableMessage.js
@@ -32,99 +32,119 @@
* @version 1.0
*/
-SDL.ScrollableMessage = SDL.SDLAbstractView.create( {
+SDL.ScrollableMessage = SDL.SDLAbstractView.create({
elementId: 'ScrollableMessage',
classNames: 'ScrollableMessage',
- classNameBindings:
- [
- 'active:active'
- ],
+ classNameBindings: [
+ 'active:active'
+ ],
/**
* Id of current request
- *
+ *
* @type {Number}
*/
messageRequestId: null,
active: false,
- appId: null,
+ appID: null,
timer: null,
- childViews:
- [
- 'backButton',
- 'captionText',
- 'softButtons',
- 'listOfCommands'
- ],
+ timeout: null,
+
+ childViews: [
+ 'backButton', 'captionText', 'softButtons', 'listOfCommands'
+ ],
/**
* Deactivate View
- *
+ *
* @param {Object} ABORTED Parameter to indicate status for
* UI.ScrollableMessageResponse
*/
- deactivate: function( ABORTED ) {
- clearTimeout( this.timer );
- this.set( 'active', false );
+ deactivate: function (ABORTED) {
+ clearTimeout(this.timer);
+ this.set('active', false);
+ this.softButtons.set('page', 0);
+
+ this.timeout = null;
+
+ SDL.SDLController.scrollableMessageResponse(ABORTED ? SDL.SDLModel.resultCode['ABORTED'] : SDL.SDLModel.resultCode['SUCCESS'], this.messageRequestId);
- SDL.SDLController.scrollableMessageResponse( ABORTED ? 'ABORTED' : 'SUCCESS', this.messageRequestId );
+ SDL.SDLController.onSystemContextChange();
},
- activate: function( appName, params, messageRequestId ) {
- if( appName ){
+ activate: function (appName, params, messageRequestId) {
+ if (appName) {
var self = this;
- this.set( 'messageRequestId', messageRequestId );
- this.set( 'captionText.content', appName );
- this.softButtons.addItems( params.softButtons, params.appId );
- this.set( 'listOfCommands.items', params.scrollableMessageBody );
- this.set( 'active', true );
- clearTimeout( this.timer );
- this.timer = setTimeout( function() {
+ if (params.messageText.fieldName == 'scrollableMessageBody') {
+ this.set('listOfCommands.items', params.messageText.fieldText);
+ }
+
+ this.set('messageRequestId', messageRequestId);
+ this.set('captionText.content', appName);
+ this.softButtons.addItems(params.softButtons, params.appID);
+ this.set('active', true);
+ clearTimeout(this.timer);
+ this.timeout = params.timeout;
+ this.timer = setTimeout(function () {
self.deactivate();
- }, params.timeout );
+ }, params.timeout);
+
+ SDL.SDLController.onSystemContextChange();
}
},
- softButtons: SDL.MenuList.extend( {
+ softButtons: SDL.MenuList.extend({
itemsOnPage: 4,
groupName: "ScrollableMessage",
- content: Em.ContainerView.extend( {
+ content: Em.ContainerView.extend({
- classNames:
- [
- 'content'
- ],
+ classNames: [
+ 'content'
+ ],
- attributeBindings:
- [
- 'parentView.contentPositon:style'
- ]
+ attributeBindings: [
+ 'parentView.contentPositon:style'
+ ]
- } )
- } ),
+ })
+ }),
/**
* List for option on SDLOptionsView screen
*/
- listOfCommands: SDL.ScrollableText.extend( {
+ listOfCommands: SDL.ScrollableText.extend({
elementId: 'scrollable_message_list',
itemsOnPage: 11,
/** Items array */
- items: 'asdasdasd'
- } )
-} ); \ No newline at end of file
+ items: 'asdasdasd',
+
+ /**
+ * Reset timeout function
+ */
+ click: function(){
+
+ var self = this._parentView;
+
+ clearTimeout(this._parentView.timer);
+ SDL.SDLController.onResetTimeout(SDL.SDLAppController.model.appID, "UI.ScrollableMessage");
+ this._parentView.timer = setTimeout(function () {
+ self.deactivate();
+ }, this._parentView.timeout);
+ }
+ })
+});
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/shared/sliderView.js b/SDL_Core/src/components/HMI/app/view/sdl/shared/sliderView.js
index 4e3b31798..aedb2cbc0 100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/shared/sliderView.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/shared/sliderView.js
@@ -61,15 +61,59 @@ SDL.SliderView = SDL.SDLAbstractView.create( {
*/
sliderRequestId: null,
+ timer: null,
+
+ timeout: null,
+
/**
* Extend deactivate method send SUCCESS response on deactivate with current
* slider value
*/
- deactivate: function() {
+ deactivate: function(ABORTED) {
this._super();
- FFW.UI.sendSliderResult( "SUCCESS", this.get( 'sliderRequestId' ), this.get( 'adjustControl.sliderValue.value' ) );
+ this.timeout = null;
+ clearTimeout(this.timer);
+ this.timer = null;
+
+ if (ABORTED === true) {
+ FFW.UI.sendSliderResult( SDL.SDLModel.resultCode["SUCCESS"], this.get( 'sliderRequestId' ), this.get( 'adjustControl.sliderValue.value' ) );
+ } else {
+ FFW.UI.sendSliderResult( SDL.SDLModel.resultCode["ABORTED"], this.get( 'sliderRequestId' ), this.get( 'adjustControl.sliderValue.value' ) );
+ }
+
+ SDL.SDLController.onSystemContextChange();
+ },
+
+ activate: function(text, timeout) {
+ if( text ){
+ this.set( 'caption', text );
+ }
+
+ this.set( 'active', true );
+
+ this.set('timeout', timeout);
+
+ SDL.SDLController.onSystemContextChange();
+
+ this.timer = setTimeout(function () {
+ if (SDL.SliderView.active) {
+ SDL.SliderView.deactivate(true);
+ }
+ }, timeout);
},
+ dataChange: function(){
+ if (this.timeout){
+ var self = this;
+
+ clearTimeout(this.timer);
+ SDL.SDLController.onResetTimeout(SDL.SDLAppController.model.appID, "UI.Slider");
+ this.timer = setTimeout(function () {
+ self.deactivate(true);
+ }, this.timeout);
+ }
+ }.observes('this.adjustControl.sliderValue.value'),
+
adjustControl: Em.ContainerView.extend( {
classNames: 'sliderControl',
@@ -91,7 +135,9 @@ SDL.SliderView = SDL.SDLAbstractView.create( {
icon: 'images/common/minus-ico.png',
actionDown: function() {
this._super();
- this.set( 'parentView.sliderValue.value', this._parentView.sliderValue.value - 1 );
+ if (this._parentView.sliderValue.value > 1) {
+ this.set( 'parentView.sliderValue.value', this._parentView.sliderValue.value - 1 );
+ }
}
} ),
@@ -107,7 +153,9 @@ SDL.SliderView = SDL.SDLAbstractView.create( {
icon: 'images/common/plus-ico.png',
actionDown: function() {
this._super();
- this.set( 'parentView.sliderValue.value', this._parentView.sliderValue.value + 1 );
+ if (this._parentView.sliderValue.value < this._parentView.sliderValue.range) {
+ this.set( 'parentView.sliderValue.value', this._parentView.sliderValue.value + 1 );
+ }
}
} )
} ),
@@ -119,15 +167,26 @@ SDL.SliderView = SDL.SDLAbstractView.create( {
this.set( 'sliderRequestId', message.id );
this.set( 'headerLabel.content', data.sliderHeader );
- this.set( 'footerLabel.content', data.sliderFooter[0] );
this.get( 'adjustControl.sliderValue' ).set( 'range', data.numTicks );
this.get( 'adjustControl.sliderValue' ).set( 'value', data.position );
- this.footerLabel.data = data.sliderFooter;
-
setTimeout( function() {
SDL.SliderView.adjustControl.rerender();
}, 1 );
+
+ if (!data.sliderFooter) {
+ this.set('footerLabel.content', '');
+ return;
+ }
+
+ this.footerLabel.data = data.sliderFooter;
+
+ if (data.sliderFooter.length != data.numTicks) {
+ this.set( 'footerLabel.content', data.sliderFooter[0] );
+ } else {
+ // Magick number is array index correction
+ this.set( 'footerLabel.content', data.sliderFooter[data.position - 1] );
+ }
},
/**
@@ -135,7 +194,7 @@ SDL.SliderView = SDL.SDLAbstractView.create( {
* dynamic footer mode
*/
changeFooterText: function() {
- if( this.footerLabel.data.length > 1 ){
+ if( this.footerLabel.data && this.footerLabel.data.length > 1 ){
this.set( 'footerLabel.content', this.footerLabel.data[this.adjustControl.sliderValue.value - 1] );
}
}.observes( 'adjustControl.sliderValue.value' )
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/shared/tbtTurnList.js b/SDL_Core/src/components/HMI/app/view/sdl/shared/tbtTurnList.js
index 7b7a296a8..acc1d46f8 100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/shared/tbtTurnList.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/shared/tbtTurnList.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -32,61 +31,97 @@
* @version 1.0
*/
-SDL.TBTTurnList = SDL.SDLAbstractView.create( {
+SDL.TBTTurnList = SDL.SDLAbstractView.create({
- elementId: 'tbtTurnListView',
+ elementId: 'tbtTurnListView',
- childViews:
- [
+ childViews: [
'backButton',
'captionText',
'tbtTurnListList'
],
- /**
- * Activate window
- */
- activate: function() {
- this.set( 'active', true );
- },
+ /**
+ * Activate window
+ */
+ activate: function () {
- /**
- * Title Labes of window
- */
- captionText: SDL.Label.extend( {
- classNames: 'caption-text',
+ this.set('active', true);
+ },
- content: 'Turn List'
- } ),
+ /**
+ * Deactivate window if TurnByTurnView window was closed
+ */
+ closeTurnList: function () {
- /**
- * Turn List
- */
- tbtTurnListList: SDL.List.extend( {
- elementId: 'tbtTurnListList',
- itemsOnPage: 5,
- items: []
- } ),
+ if (!SDL.TurnByTurnView.get('activeTBT')) {
+ this.set('active', false);
+ }
+ }.observes('SDL.TurnByTurnView.activeTBT'),
- /**
- * Function updates content of Turn List with data from application's model
- *
- * @type {Number}
- */
- updateList: function( appId ) {
- this.get( 'tbtTurnListList.list' ).removeAllChildren();
+ /**
+ * Title Labes of window
+ */
+ captionText: SDL.Label.extend({
+ classNames: 'caption-text',
- this.tbtTurnListList.list.refresh();
+ content: 'Turn List'
+ }),
- var i = 0, turnListArray = SDL.SDLController.getApplicationModel( appId ).turnList;
- length = turnListArray.length;
- for( i = 0; i < length; i++ ){
- this.get( 'tbtTurnListList.list.childViews' ).pushObject( SDL.Label.create( {
- icon: turnListArray[i].turnIcon.value,
- content: turnListArray[i].navigationText,
- templateName: turnListArray[i].turnIcon.value ? 'icon' : 'text',
- classNames: 'list-item'
- } ) );
+ /**
+ * Turn List
+ */
+ tbtTurnListList: SDL.List.extend({
+ elementId : 'tbtTurnListList',
+ itemsOnPage: 5,
+ items : []
+ }),
+
+ /**
+ * Function updates content of Turn List with data from application's
+ * model
+ *
+ * @type {Number}
+ */
+ updateList: function (appID) {
+
+ this.get('tbtTurnListList.list').removeAllChildren();
+
+ this.tbtTurnListList.list.refresh();
+
+ var turnListArray = SDL.SDLController.getApplicationModel(appID).turnList,
+ length = turnListArray.length;
+ for (var i = 0; i < length; i++) {
+ this.get('tbtTurnListList.list.childViews').pushObject(SDL.Label.create({
+ icon : turnListArray[i].turnIcon ? turnListArray[i].turnIcon.value : "",
+ content : turnListArray[i].navigationText ? turnListArray[i].navigationText.fieldText : "",
+ classNames : 'list-item',
+ templateName: turnListArray[i].turnIcon ? 'icon' : ''
+ }));
+ }
+ if (SDL.SDLController.getApplicationModel(appID).turnListSoftButtons) {
+ turnListArray = SDL.SDLController.getApplicationModel(appID).turnListSoftButtons;
+ length = turnListArray.length;
+ } else {
+ length = null;
+ turnListArray = [];
+ }
+ for (var i = 0; i < length; i++) {
+ this.get('tbtTurnListList.list.childViews').pushObject(SDL.Button.create(SDL.PresetEventsCustom, {
+ systemAction : turnListArray[i].systemAction,
+ groupName : "TBTList",
+ classNameBindings: [
+ 'isHighlighted:isHighlighted'
+ ],
+ isHighlighted : turnListArray[i].isHighlighted ? true : false,
+ softButtonID : turnListArray[i].softButtonID,
+ icon : turnListArray[i].image ? turnListArray[i].image.value : "",
+ text : turnListArray[i].text,
+ classNames : 'list-item softButton',
+ elementId : 'softButton' + i,
+ templateName : turnListArray[i].image ? 'rightIcon' : 'text',
+ appID : appID
+ }));
+ }
}
- }
-} );
+ });
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/shared/turnByTurnView.js b/SDL_Core/src/components/HMI/app/view/sdl/shared/turnByTurnView.js
index a0e1dafa6..ea19034e2 100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/shared/turnByTurnView.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/shared/turnByTurnView.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -38,48 +37,94 @@ SDL.TurnByTurnView = SDL.SDLAbstractView.create( {
classNames: 'TurnByTurnView',
- classNameBindings:
- [
- 'active:active'
- ],
+ classNameBindings: [
+ 'activeTBT:active_state:inactive_state'
+ ],
active: false,
- childViews:
- [
- 'captionText',
- 'softButtons',
- 'totalDistanceLabel',
- 'etaLabel',
- 'turnList',
- 'homeScreen',
- 'navigationText2',
- 'turnIconImage'
- ],
-
- appId: -1,
+ activeTBT: false,
+
+ childViews: [
+ 'captionText',
+ 'softButtons',
+ 'totalDistanceLabel',
+ 'etaLabel',
+ 'turnList',
+ 'homeScreen',
+ 'navigationText2',
+ 'turnIconImage',
+ 'nextTurnIconImage',
+ 'distanceToManeuver',
+ 'distanceToManeuverScale',
+ 'timeToDestination'
+ ],
+
+ appID: -1,
navigationText2: null,
eta: null,
totalDistance: null,
turnIcon: null,
+ nextturnIcon: null,
distanceToManeuver: null,
distanceToManeuverScale: null,
+ timeToDestination: null,
maneuverComplete: null,
- activate: function( params ) {
- if( params ){
- this.softButtons.addItems( params.softButtons );
- this.set( 'captionText.content', params.navigationText1 );
- this.set( 'appId', params.appId );
- this.set( 'navigationText2', params.navigationText2 );
- this.set( 'eta', params.eta );
- this.set( 'totalDistance', params.totalDistance );
- this.set( 'turnIcon', params.turnIcon );
- this.set( 'distanceToManeuver', params.distanceToManeuver );
- this.set( 'distanceToManeuverScale', params.distanceToManeuverScale );
- this.set( 'maneuverComplete', params.maneuverComplete );
-
- this.set( 'active', true );
+ activate: function(appID) {
+
+ var naviParams = SDL.SDLController.getApplicationModel(appID).constantTBTParams;
+
+ if (naviParams) {
+
+ for ( var i = 0; i < naviParams.navigationTexts.length; i++) {
+ switch (naviParams.navigationTexts[i].fieldName) {
+ case 'navigationText1': {
+ this.set('captionText.content',
+ naviParams.navigationTexts[i].fieldText);
+ break;
+ }
+ case 'navigationText2': {
+ this.set('navigationText2',
+ naviParams.navigationTexts[i].fieldText);
+ break;
+ }
+ case 'ETA': {
+ this.set('eta', naviParams.navigationTexts[i].fieldText);
+ break;
+ }
+ case 'totalDistance': {
+ this.set('totalDistance',
+ naviParams.navigationTexts[i].fieldText);
+ break;
+ }
+ }
+ }
+
+ if (naviParams.softButtons) {
+ this.softButtons.addItems(naviParams.softButtons);
+ }
+
+ if (naviParams.maneuverComplete) {
+ this.set('maneuverComplete', naviParams.maneuverComplete);
+ }
+
+ this.set('appID', naviParams.appID);
+
+ if (naviParams.turnIcon) {
+
+ this.set('turnIcon', naviParams.turnIcon.value);
+ }
+
+ if (naviParams.nextTurnIcon) {
+
+ this.set('nextTurnIcon', naviParams.nextTurnIcon.value);
+ }
+ this.set('distanceToManeuver', naviParams.distanceToManeuver);
+ this.set('distanceToManeuverScale', naviParams.distanceToManeuverScale);
+ this.set('timeToDestination', naviParams.timeToDestination);
+
+ this.set('activeTBT', true);
}
},
@@ -87,50 +132,84 @@ SDL.TurnByTurnView = SDL.SDLAbstractView.create( {
* Deactivate View
*/
deactivate: function() {
- this.set( 'active', false );
+
+ this.set('activeTBT', false);
},
totalDistanceLabel: SDL.Label.extend( {
classNames: 'totalDistanceLabel',
contentBinding: 'parentView.totalDistance'
- } ),
+ }),
+
+ distanceToManeuverScale: SDL.Label.extend( {
+ classNames: 'distanceToManeuverScale',
+ contentBinding: 'parentView.distanceToManeuverScale'
+ }),
+
+ distanceToManeuver: SDL.Label.extend( {
+ classNames: 'distanceToManeuver',
+ contentBinding: 'parentView.distanceToManeuver'
+ }),
+
+ timeToDestination: SDL.Label.extend( {
+ classNames: 'timeToDestination',
+ contentBinding: 'parentView.timeToDestination'
+ }),
etaLabel: SDL.Label.extend( {
classNames: 'etaLabel',
contentBinding: 'parentView.eta'
- } ),
+ }),
turnList: SDL.Button.create( {
- elementId: 'turnList',
+ elementID: 'turnList',
classNames: 'turnList btn',
text: 'Turn List',
action: function() {
- SDL.SDLController.tbtTurnList( this._parentView.appId );
+
+ SDL.SDLController.tbtTurnList(this._parentView.appID);
},
target: '',
onDown: false,
templateName: 'arrow'
- } ),
+ }),
turnIconImage: Em.View.create( {
classNames: 'turnIcon btn',
- attributeBindings:
- [
- 'style'
- ],
+ attributeBindings: [
+ 'style'
+ ],
style: function() {
- if( this._parentView.turnIcon ){
- return 'background-image: URL(' + this._parentView.turnIcon + ');';
- }else{
+
+ if (this._parentView.turnIcon) {
+ return 'background-image: URL(' + this._parentView.turnIcon
+ + ');';
+ } else {
+ return '';
+ }
+ }.property('this.parentView.turnIcon')
+ }),
+
+ nextTurnIconImage: Em.View.create( {
+ classNames: 'nextTurnIcon btn',
+ attributeBindings: [
+ 'style'
+ ],
+ style: function() {
+
+ if (this._parentView.nextTurnIcon) {
+ return 'background-image: URL(' + this._parentView.nextTurnIcon
+ + ');';
+ } else {
return '';
}
- }.property( 'this.parentView.turnIcon' )
- } ),
+ }.property('this.parentView.nextTurnIcon')
+ }),
navigationText2: SDL.Label.extend( {
classNames: 'navigationText2',
contentBinding: 'parentView.navigationText2'
- } ),
+ }),
homeScreen: SDL.Button.create( {
elementId: 'homeScreen',
@@ -140,7 +219,7 @@ SDL.TurnByTurnView = SDL.SDLAbstractView.create( {
target: 'this.parentView',
action: 'deactivate',
onDown: false
- } ),
+ }),
softButtons: SDL.MenuList.extend( {
@@ -150,11 +229,10 @@ SDL.TurnByTurnView = SDL.SDLAbstractView.create( {
content: Em.ContainerView.extend( {
- classNames:
- [
- 'content'
- ]
+ classNames: [
+ 'content'
+ ]
- } )
- } )
-} ); \ No newline at end of file
+ })
+ })
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/app/view/sdl/tbtClientStateView.js b/SDL_Core/src/components/HMI/app/view/sdl/tbtClientStateView.js
index 4446f2cc5..62856bff8 100644
--- a/SDL_Core/src/components/HMI/app/view/sdl/tbtClientStateView.js
+++ b/SDL_Core/src/components/HMI/app/view/sdl/tbtClientStateView.js
@@ -99,7 +99,7 @@ SDL.TBTClientStateView = Em.ContainerView.create( {
*/
click: function() {
- SDL.SDLController.tbtClientStateSeleced( this.selection.name );
+ SDL.SDLController.tbtClientStateSelected( this.selection.name );
}
} ),
diff --git a/SDL_Core/src/components/HMI/app/view/settingsView.js b/SDL_Core/src/components/HMI/app/view/settingsView.js
index 2c91bc801..f0c2638ca 100644
--- a/SDL_Core/src/components/HMI/app/view/settingsView.js
+++ b/SDL_Core/src/components/HMI/app/view/settingsView.js
@@ -35,22 +35,19 @@ SDL.SettingsView = Em.ContainerView.create( {
/** View Id */
elementId: 'settingsView',
- classNameBindings:
- [
- 'SDL.States.settings.active:active_state:inactive_state'
- ],
-
- childViews:
- [
- 'windowText'
- ],
+ classNameBindings: [
+ 'SDL.States.settings.active:active_state:inactive_state'
+ ],
+ childViews: [
+ 'windowText'
+ ],
windowText: SDL.Label.extend( {
-
+
classNames: 'windowText',
-
+
content: 'Settings'
- } )
+ })
-} );
+});
diff --git a/SDL_Core/src/components/HMI/audio/alert.wav b/SDL_Core/src/components/HMI/audio/alert.wav
index bde18695e..bde18695e 100755..100644
--- a/SDL_Core/src/components/HMI/audio/alert.wav
+++ b/SDL_Core/src/components/HMI/audio/alert.wav
Binary files differ
diff --git a/SDL_Core/src/components/HMI/audio/initial.wav b/SDL_Core/src/components/HMI/audio/initial.wav
index 61a549fbc..61a549fbc 100755..100644
--- a/SDL_Core/src/components/HMI/audio/initial.wav
+++ b/SDL_Core/src/components/HMI/audio/initial.wav
Binary files differ
diff --git a/SDL_Core/src/components/HMI/audio/listen.wav b/SDL_Core/src/components/HMI/audio/listen.wav
index 0f087c8d2..0f087c8d2 100755..100644
--- a/SDL_Core/src/components/HMI/audio/listen.wav
+++ b/SDL_Core/src/components/HMI/audio/listen.wav
Binary files differ
diff --git a/SDL_Core/src/components/HMI/audio/positive.wav b/SDL_Core/src/components/HMI/audio/positive.wav
index 464af1f88..464af1f88 100755..100644
--- a/SDL_Core/src/components/HMI/audio/positive.wav
+++ b/SDL_Core/src/components/HMI/audio/positive.wav
Binary files differ
diff --git a/SDL_Core/src/components/HMI/css/buttonControls.css b/SDL_Core/src/components/HMI/css/buttonControls.css
index fb05a8e64..77299af89 100755..100644
--- a/SDL_Core/src/components/HMI/css/buttonControls.css
+++ b/SDL_Core/src/components/HMI/css/buttonControls.css
@@ -5,7 +5,6 @@
* @filesource css/buttonControls.css
* @version 2.0
*/
-
#buttonControls.buttonControls {
width: 270px;
height: 200px;
@@ -13,30 +12,247 @@
left: 790px;
}
-#protocolVersion.protocolVersion {
+#driverDistractionControl.driverDistractionControl {
width: 302px;
height: 20px;
- top: 450px;
+ top: 423px;
left: 810px;
}
-#protocolVersion .protocolVersionLabel{
+#driverDistractionControl .driverDistractionControlLabel {
left: 20px;
}
-#driverDistractionControl.driverDistractionControl {
- width: 302px;
- height: 20px;
- top: 423px;
- left: 810px;
+#keyboard_view .back-button{
+ top: 58px;
}
-#driverDistractionControl .driverDistractionControlLabel{
- left: 20px;
+#keyboard_view .controlls{
+ top: 350px;
+ width: 800px;
+ height: 75px;
+}
+
+#keyboard_view .controll{
+ margin: 10px;
+ height: 60px;
+ border: 1px solid #333;
+ text-align: center;
+ line-height: 60px;
+ border-radius: 3px;
+}
+
+#keyboard_view .controlls .leftBtn{
+ width: 130px;
+ left: 0px;
+}
+
+#keyboard_view .controlls .numericBtn{
+ width: 60px;
+ left: 145px;
+}
+
+#keyboard_view .controlls .symbolBtn{
+ width: 60px;
+ left: 220px;
+}
+
+#keyboard_view .controlls .spaceBtn{
+ width: 215px;
+ left: 295px;
+}
+
+#keyboard_view .controlls .caseSwitchBtn{
+ width: 60px;
+ left: 525px;
+}
+
+#keyboard_view .controlls .localisationBtn{
+ width: 60px;
+ left: 600px;
+}
+
+#keyboard_view .controlls .searchBtn{
+ width: 100px;
+ left: 677px;
+}
+
+#keyboard_view .keyboardLayout{
+ width: 750px;
+ height: 185px;
+ top: 170px;
+ left: 25px;
}
-#infoTable.infoTable{
- width: 375px;
+#keyboard_view .keyboardLayout.wide{
+ left: 5px !important;
+}
+
+#keyboard_view .searchBar{
+ top: 58px;
+ width: 666px;
+ height: 49px;
+ left: 120px;
+}
+
+#keyboard_view input{
+ width: 597px;
+ height: 48px;
+ border: 1px solid #333;
+ border-radius: 2px;
+ background: rgba(119, 119, 119, 0.42);
+ cursor: pointer;
+ font-size: 32px;
+ color: #FFF;
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+#keyboard_view .microphone{
+ text-align: center;
+ line-height: 49px;
+}
+
+#keyboard_view .clearBtn{
+ right: 0px;
+ top: 0px;
+ width: 48px;
+ height: 48px;
+ border: 1px solid #333;
+ border-radius: 2px;
+ font-size: 32px;
+ text-align: center;
+ line-height: 50px;
+}
+
+#keyboard_view .microphone{
+ left: 63px;
+ top: 58px;
+ width: 48px;
+ height: 48px;
+ border: 1px solid #333;
+ border-radius: 2px;
+}
+
+#keyboard_view .keyboardLayout .ffw-button{
+ width: 60px;
+ height: 50px;
+ border-radius: 3px;
+ border: 1px solid #333;
+ margin: 5px;
+ font-size: 42px;
+ text-align: center;
+ line-height: 50px;
+}
+#keyboard_view .keyboardLayout .k1{
+ left: 75px;
+}
+#keyboard_view .keyboardLayout .k2{
+ left: 150px;
+}
+#keyboard_view .keyboardLayout .k3{
+ left: 225px;
+}
+#keyboard_view .keyboardLayout .k4{
+ left: 300px;
+}
+#keyboard_view .keyboardLayout .k5{
+ left: 375px;
+}
+#keyboard_view .keyboardLayout .k6{
+ left: 450px;
+}
+#keyboard_view .keyboardLayout .k7{
+ left: 525px;
+}
+#keyboard_view .keyboardLayout .k8{
+ left: 600px;
+}
+#keyboard_view .keyboardLayout .k9{
+ left: 675px;
+}
+#keyboard_view .keyboardLayout .k10{
+ left: 38px;
+ top: 62px;
+}
+#keyboard_view .keyboardLayout .k11{
+ left: 113px;
+ top: 62px;
+}
+#keyboard_view .keyboardLayout .k12{
+ left: 188px;
+ top: 62px;
+}
+#keyboard_view .keyboardLayout .k13{
+ left: 263px;
+ top: 62px;
+}
+#keyboard_view .keyboardLayout .k14{
+ left: 338px;
+ top: 62px;
+}
+#keyboard_view .keyboardLayout .k15{
+ left: 413px;
+ top: 62px;
+}
+#keyboard_view .keyboardLayout .k16{
+ left: 488px;
+ top: 62px;
+}
+#keyboard_view .keyboardLayout .k17{
+ left: 563px;
+ top: 62px;
+}
+#keyboard_view .keyboardLayout .k18{
+ left: 638px;
+ top: 62px;
+}
+#keyboard_view .keyboardLayout .k19{
+ left: 713px;
+ top: 62px;
+}
+#keyboard_view .keyboardLayout .k20{
+ left: 0px;
+ top: 124px;
+}
+#keyboard_view .keyboardLayout .k21{
+ left: 75px;
+ top: 124px;
+}
+#keyboard_view .keyboardLayout .k22{
+ left: 150px;
+ top: 124px;
+}
+#keyboard_view .keyboardLayout .k23{
+ left: 225px;
+ top: 124px;
+}
+#keyboard_view .keyboardLayout .k24{
+ left: 300px;
+ top: 124px;
+}
+#keyboard_view .keyboardLayout .k25{
+ left: 375px;
+ top: 124px;
+}
+#keyboard_view .keyboardLayout .k26{
+ left: 450px;
+ top: 124px;
+}
+#keyboard_view .keyboardLayout .k27{
+ left: 525px;
+ top: 124px;
+}
+#keyboard_view .keyboardLayout .k28{
+ left: 600px;
+ top: 124px;
+}
+#keyboard_view .keyboardLayout .k29{
+ left: 675px;
+ top: 124px;
+}
+#infoTable.infoTable {
+ width: 400px;
height: 96px;
top: 308px;
left: 801px;
@@ -45,14 +261,16 @@
border: 1px solid gray;
overflow: hidden;
}
-#infoTable .sdlGPLabel{
- width: 157px;
+
+#infoTable .sdlGPLabel {
+ width: 190px;
border-right: 1px solid #14100F;
height: 96px;
position: relative;
float: left;
}
-#infoTable .sdlGPData{
+
+#infoTable .sdlGPData {
position: relative;
display: block;
overflow: hidden;
@@ -60,103 +278,122 @@
width: 203px;
height: 18px;
}
-#buttonControls .ContainerControlls{
+
+#buttonControls .ContainerControlls {
left: 34px;
- background: url(../images/home/controlButtons/backGroundControllButtons.png) no-repeat;
+ background:
+ url(../images/home/controlButtons/backGroundControllButtons.png)
+ no-repeat;
width: 200px;
height: 200px;
}
-#buttonControls .UpBtn{
+
+#buttonControls .UpBtn {
background: url(../images/home/controlButtons/UpButton.png) no-repeat;
background-position: -32px 0;
width: 137px;
height: 64px;
left: 32px;
- -webkit-transition: 0.2s ;
+ -webkit-transition: 0.2s;
}
-#TUNEUP.pressed{
- background: url(../images/home/controlButtons/UpButton_pressed.png) !important;
+
+#TUNEUP.pressed {
+ background: url(../images/home/controlButtons/UpButton_pressed.png)
+ !important;
background-position: -32px 0 !important;
width: 137px !important;
height: 69px !important;
left: 32px !important;
}
-#buttonControls .DownBtn{
+
+#buttonControls .DownBtn {
background: url(../images/home/controlButtons/DownButton.png) no-repeat;
background-position: -32px -132px;
width: 137px;
height: 65px;
top: 132px;
left: 32px;
- -webkit-transition: 0.2s ;
+ -webkit-transition: 0.2s;
}
-#TUNEDOWN.pressed{
- background: url(../images/home/controlButtons/DownButton_pressed.png) no-repeat;
+
+#TUNEDOWN.pressed {
+ background: url(../images/home/controlButtons/DownButton_pressed.png)
+ no-repeat;
background-position: -32px -132px !important;
width: 137px !important;
height: 65px !important;
top: 132px !important;
left: 32px !important;
}
-#buttonControls .LeftBtn{
+
+#buttonControls .LeftBtn {
background: url(../images/home/controlButtons/LeftButton.png) no-repeat;
width: 63px;
height: 138px;
background-position: -3px -31px;
left: 3px;
top: 31px;
- -webkit-transition: 0.2s ;
+ -webkit-transition: 0.2s;
}
-#SEEKLEFT.pressed{
- background: url(../images/home/controlButtons/LeftButton_pressed.png) no-repeat;
+
+#SEEKLEFT.pressed {
+ background: url(../images/home/controlButtons/LeftButton_pressed.png)
+ no-repeat;
width: 63px !important;
height: 138px !important;
background-position: -3px -31px !important;
left: 3px !important;
top: 31px !important;
}
-#buttonControls .RightBtn{
+
+#buttonControls .RightBtn {
background: url(../images/home/controlButtons/RightButton.png) no-repeat;
background-position: -131px -31px;
width: 68px;
height: 139px;
left: 131px;
top: 31px;
- -webkit-transition: 0.2s ;
+ -webkit-transition: 0.2s;
}
-#SEEKRIGHT.pressed{
- background: url(../images/home/controlButtons/RightButton_pressed.png) no-repeat;
+
+#SEEKRIGHT.pressed {
+ background: url(../images/home/controlButtons/RightButton_pressed.png)
+ no-repeat;
background-position: -131px -31px !important;
width: 68px !important;
height: 139px !important;
left: 131px !important;
top: 31px !important;
}
-#buttonControls .OkBtn{
+
+#buttonControls .OkBtn {
background: url(../images/home/controlButtons/OkButton.png) no-repeat;
background-position: -55px -55px;
width: 89px;
height: 90px;
left: 55px;
top: 55px;
- -webkit-transition: 0.2s ;
+ -webkit-transition: 0.2s;
}
-#OK.pressed{
- background: url(../images/home/controlButtons/OkButton_pressed.png) no-repeat;
+
+#OK.pressed {
+ background: url(../images/home/controlButtons/OkButton_pressed.png)
+ no-repeat;
background-position: -55px -55px !important;
width: 89px !important;
height: 90px !important;
left: 55px !important;
top: 55px !important;
}
-#app_controlButtons .sendData{
+
+#app_controlButtons .sendData {
top: 252px !important;
left: 1049px !important;
- width: 80px !important;
+ width: 150px !important;
font-size: 16px !important;
-
}
-#app_controlButtons .btnNotPressed{
+
+#app_controlButtons .btnNotPressed {
width: 40px;
height: 40px;
left: 0px;
@@ -175,9 +412,9 @@
margin-left: 10px;
margin-top: 10px;
}
-}
-#app_controlButtons .languageSelect{
+}
+#app_controlButtons .languageSelect {
position: absolute;
width: 150px;
height: 30px;
@@ -185,62 +422,74 @@
background: #393939;
}
-#app_controlButtons .languageSelect option{
+#app_controlButtons .languageSelect option {
background: #393939;
}
-#UILanguages.languageSelect{
+
+#UILanguages.languageSelect {
top: 110px;
left: 1028px;
}
-#TTSVRLanguages.languageSelect{
+
+#TTSVRLanguages.languageSelect {
top: 170px;
left: 1028px;
}
-#app_controlButtons .UILanguagesLabel{
+#app_controlButtons .UILanguagesLabel {
top: 91px;
left: 1028px;
width: 150px;
}
-#app_controlButtons .TTSVRLanguagesLabel{
+
+#app_controlButtons .TTSVRLanguagesLabel {
top: 151px;
left: 1028px;
width: 160px;
}
-#app_controlButtons .appUILanguagesLabel{
+
+#app_controlButtons .appUILanguagesLabel {
top: 91px;
left: 1195px;
width: 250px;
}
-#app_controlButtons .appTTSVRLanguagesLabel{
+
+#app_controlButtons .appTTSVRLanguagesLabel {
top: 151px;
left: 1195px;
width: 250px;
-}#app_controlButtons .appUILang{
+}
+
+#app_controlButtons .appUILang {
top: 117px;
left: 1195px;
width: 150px;
}
-#app_controlButtons .appTTSVRLang{
+
+#app_controlButtons .appTTSVRLang {
top: 176px;
left: 1195px;
width: 150px;
}
-#app_controlButtons .sendDataCheckBox{
+
+#app_controlButtons .sendDataCheckBox {
left: 1158px;
position: absolute;
top: 275px;
}
-#app_controlButtons .sendDataLabel{
+
+#app_controlButtons .sendDataLabel {
top: 275px;
left: 1180px;
width: 160px;
}
-#buttonControls .btnNotPressed.pressed{
+
+#buttonControls .btnNotPressed.pressed {
box-shadow: inset 5px 5px 10px black, inset -3px -3px 10px #383737;
line-height: 45px;
}
-#app_controlButtons .languageSelect{
+
+#app_controlButtons .languageSelect {
position: absolute;
width: 150px;
height: 30px;
@@ -248,24 +497,27 @@
background: #393939;
}
-#app_controlButtons .languageSelect option{
+#app_controlButtons .languageSelect option {
background: #393939;
}
-#UILanguages.languageSelect{
+
+#UILanguages.languageSelect {
top: 110px;
left: 1028px;
}
-#TTSVRLanguages.languageSelect{
+
+#TTSVRLanguages.languageSelect {
top: 170px;
left: 1028px;
}
-#app_controlButtons .UILanguagesLabel{
+#app_controlButtons .UILanguagesLabel {
top: 91px;
left: 1028px;
width: 150px;
}
-#app_controlButtons .TTSVRLanguagesLabel{
+
+#app_controlButtons .TTSVRLanguagesLabel {
top: 151px;
left: 1028px;
width: 160px;
diff --git a/SDL_Core/src/components/HMI/css/climate.css b/SDL_Core/src/components/HMI/css/climate.css
deleted file mode 100755
index f56c224ef..000000000
--- a/SDL_Core/src/components/HMI/css/climate.css
+++ /dev/null
@@ -1,2289 +0,0 @@
-/**
- * Climate module CSS
- *
- * @category Style Sheets
- * @filesource css/climate.css
- * @version 2.0
- */
-
-.helpmode .climate_helprear span {
- color: transparent;
- text-shadow: 0 0 6px #fff;
- pointer-events:none;
-}
-
-.climate_helpfront {
- z-index: 2001;
-}
-
-
-#climate_simple_test {
- top: 150px;
- left: 100px;
- font-size: 30px;
-}
-
-#climate {
- width: 800px;
- height: 480px;
- background: url(../images/climate/bg.png) no-repeat;
-}
-
-#climate_offLabel {
- top: 133px;
- left: 369px;
- font-size: 30px;
-}
-
-#climate_simple_offLabel {
- top: 130px;
- left: 376px;
- font-size: 25px;
-}
-
-#climate_simple_controls_group {
- display: inline-block;
- z-index: 2001;
- height: 58px;
-}
-
-/* Stored temperature popup */
-
-#climate_storeTemp {
- display: none;
- background: #000000;
- border: 2px solid #2471b1;
- border-radius:3px;
- font-size: 23px;
- font-weight: bold;
- height: 112px;
- left: 227px;
- line-height:105px;
- text-align: center;
- top: 178px;
- width: 344px;
- z-index: 5001;
-}
-
-/* Climate module warp */
-
-#climate_wrap {
- height: 425px;
- top: 55px;
- width: 800px;
- z-index: 1000;
- overflow:hidden;
-}
-
-
-/* SIMPLE VIEW MODE */
-
-/* Automode labels & borders */
-
-#climate_simple_automode .label {
- background: black;
- width: 148px;
- height: 20px;
- text-align: center;
- font-size: 25px;
- font-weight: bold;
-}
-
-#climate_simple_automode .auto_full {
- top: 130px !important;
- left: 325px !important;
-}
-
-#climate_simple_automode .auto_fan {
- top: 130px;
- left: 425px;
-}
-
-#climate_simple_automode .auto_airflow {
- top: 130px;
- left: 230px;
-}
-
-#climate_simple_automode .border {
- border-left: 2px solid #fff;
- border-right: 2px solid #fff;
- border-top: 2px solid #fff;
- z-index: -1;
- border-top-right-radius: 3px;
- border-top-left-radius: 3px;
-}
-
-#climate_simple_automode .border_full {
- width: 365px !important;
- height: 16px !important;
- left: 217px !important;
- top: 143px !important;
-}
-
-#climate_simple_automode .border_airflow {
- width: 170px;
- height: 16px;
- left: 217px;
- top: 143px;
-}
-
-#climate_simple_automode .border_fan {
- width: 170px;
- height: 16px;
- left: 412px;
- top: 143px;
-}
-
-
-#climate_simple_driverTemp {
- width: 170px;
- height: 150px;
- background-color: #000;
- top: 160px;
- left: 22px;
- border: 1px solid #393939;
- border-radius: 3px;
-}
-
-#climate_simple_passangerTemp {
- width: 170px;
- height: 150px;
- background-color: #000;
- top: 160px;
- left: 611px;
- border: 1px solid #393939;
- border-radius: 3px;
-}
-
-#climate_simple .minus
-{
- height: 50px;
- width: 170px;
- position: relative;
- float: left;
-}
-
-#climate_simple .plus {
- height: 50px;
- width: 170px;
- position: relative;
- float: left;
-}
-
-#climate_simple .temp_num {
- width: 170px;
- height: 48px;
- position: relative;
- float: left;
- text-align: center;
- border-bottom: 1px solid #393939;
- border-top: 1px solid #393939;
- line-height: 48px;
- z-index: 3001;
-}
-
-#climate_simple .temp_num span {
- font-size: 32px;
-}
-
-
-#climate_simple .minus img {
- position: absolute;
- top: 23px;
- left: 73px;
-}
-
-#climate_simple .plus img {
- position: absolute;
- top: 12px;
- left: 73px;
-}
-
-
-/* Power button */
-
-#climate_simple_powerButton {
- width: 78px;
- height: 48px;
- text-align: center;
- top:78px;
- left:360px;
- border: 1px solid #393939;
- border-radius: 3px;
-}
-
-#climate_simple_powerButton .ico {
- top: 14px;
- position: relative;
-}
-
-#climate_simple_powerButton .ind_inact {
- position: absolute;
- right: 4px;
- top: 14px;
- width:6px;
- height:21px;
- background:url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_simple_powerButton .ind_act {
- position: absolute;
- right: -2px;
- top: 9px;
- background:url(../images/climate/ind_vert_active.png) no-repeat;
- width:19px;
- height:32px;
-}
-
-#climate_simple_controls {
- width: 448px;
- height: 58px;
- border: 1px solid #393939;
- border-radius: 3px;
- top: 338px;
- left: 173px;
-}
-
-/* Airflow controls */
-
-#climate_simple_airflowControls {
- width: 170px;
- height: 150px;
- background-color: #000;
- top: 160px;
- left: 218px;
- border: 1px solid #393939;
- border-radius: 3px;
-}
-
-#climate_simple_airflowControls.automode {
- top: 159px;
- left: 217px;
-}
-
-
-/* Fan controls */
-
-#climate_simple_fanControls {
- width: 170px;
- height: 150px;
- background-color: #000;
- top: 160px;
- left: 413px;
- border: 1px solid #393939;
- border-radius: 3px;
-}
-
-#climate_simple_fanControls.automode {
- top: 159px;
- left: 412px;
-}
-
-/* Fan indicators */
-
-#climate_simple_fanControls_fanIndicator {
- width: 170px;
- height: 48px;
- left: 1px;
- position: relative;
- cursor: default;
- border-bottom: 1px solid #393939;
- border-top: 1px solid #393939;
- background: none;
-}
-
-#climate_simple_fanControls_fanIndicator .ico{
- top: 13px;
- left: 72px;
- position: absolute;
-}
-
-#climate_simple_fanControls_fanIndicator .ind_def{
- background: url(../images/climate/fan_control/fan_ind_active.png) no-repeat;
- width: 21px;
- height: 44px;
- position: relative;
- display: inline-block;
- left: -1px;
- top: 3px;
-}
-
-#climate_simple_fanControls_fanIndicator .indf_inact {
- background: url(../images/climate/fan_control/fan_ind_def.png) no-repeat;
- width: 24px;
- height: 44px;
- position: relative;
- display: inline-block;
- background-position: 9px;
- top: 3px;
-}
-
-#climate_simple_fanControls_fanIndicator .indf_act {
- background: url(../images/climate/fan_control/fan_ind_active.png) no-repeat;
- width: 24px;
- height: 44px;
- position: relative;
- display: inline-block;
- left: 1px;
- top: 3px;
-}
-
-
-/* Fan minus button */
-
-#climate_simple_fanControls_fanMinusButton {
- width: 170px;
- height: 50px;
- position: relative;
-}
-
-#climate_simple_fanControls_fanMinusButton .ico {
- top: 25px;
- left: 72px;
- position: absolute;
-}
-
-/* Fan plus button */
-
-#climate_simple_fanControls_fanPlusButton {
- width: 170px;
- height: 50px;
- position: relative;
-}
-
-#climate_simple_fanControls_fanPlusButton .ico {
- top: 13px;
- left: 72px;
- position: absolute;
-}
-
-/* Automode button */
-
-#climate_simple_autoButton {
- z-index: 2001;
- width: 89px;
- height: 58px;
- position: relative;
- display: inline-block;
- border-right: 1px solid #000;
- float: left;
- text-align: center;
-}
-
-#climate_simple_autoButton span{
- font-size: 20px;
- line-height: 58px;
-}
-
-#climate_simple_autoButton.active {
- background: url(../images/common/button_active_blue.png) repeat !important;
-}
-
-/* AC button */
-
-#climate_simple_acButton {
- width: 88px;
- height: 58px;
- position: relative;
- display: inline-block;
- border-left: 1px solid #393939;
- border-right: 1px solid #000;
- float: left;
- text-align: center;
-}
-
-#climate_simple_acButton span {
- font-size: 20px;
- line-height: 58px;
-}
-
-#climate_simple_acButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 18px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_simple_acButton .ind_act {
- position: absolute;
- right: 4px;
- top: 13px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width:19px;
- height:32px;
-}
-
-
-/* Windshield button */
-
-#climate_simple_windshieldButton {
- width: 84px;
- height: 50px;
- position: relative;
- border-right: 1px solid #000;
- float: left;
-}
-
-#climate_simple_windshieldButton .ico {
- top: 12px;
- left: 30px;
- position: absolute;
-}
-
-#climate_simple_windshieldButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 10px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_simple_windshieldButton .ind_act {
- position: absolute;
- right: 4px;
- top: 5px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width: 19px;
- height: 32px;
-}
-
-
-/* Windshield max button */
-
-#climate_simple_defrostMaxButton {
- width: 84px;
- height: 50px;
- border-left: 1px solid #393939;
- position: relative;
- float: left;
-}
-
-#climate_simple_defrostMaxButton .ico {
- left: 18px;
- position: absolute;
-}
-
-#climate_simple_defrostMaxButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 10px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_simple_defrostMaxButton .ind_act {
- position: absolute;
- right: 4px;
- top: 5px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width: 19px;
- height: 32px;
-}
-
-/* Windshield panel airflow button */
-
-#climate_simple_panelAirflowButton {
- width: 170px;
- height: 49px;
- position: relative;
- float: left;
- border-top: 1px solid #393939;
-}
-
-#climate_simple_panelAirflowButton .ico {
- left: 42px;
- position: absolute;
-}
-
-#climate_simple_panelAirflowButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 10px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_simple_panelAirflowButton .ind_act {
- position: absolute;
- right: 4px;
- top: 5px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width: 19px;
- height: 32px;
-}
-
-/* Windshield feet airflow button */
-
-#climate_simple_feetAirflowButton {
- width: 170px;
- height: 49px;
- position: relative;
- float: left;
- border-top: 1px solid #393939;
-}
-
-#climate_simple_feetAirflowButton .ico {
- left: 15px;
- position: absolute;
-}
-
-#climate_simple_feetAirflowButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 10px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_simple_feetAirflowButton .ind_act {
- position: absolute;
- right: 4px;
- top: 5px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width: 19px;
- height: 32px;
-}
-
-
-/* Max AC button */
-
-#climate_simple_maxAcButton {
- width: 88px;
- height: 58px;
- position: relative;
- display: inline-block;
- border-left: 1px solid #393939;
- border-right: 1px solid #000;
- float: left;
- text-align: center;
- z-index: 2001;
-}
-
-#climate_simple_maxAcButton span {
- top: 12px;
- left: 24px;
- position: absolute;
- font-size: 20px;
- line-height: 18px;
- text-align: center;
- width: 37px;
-}
-
-#climate_simple_maxAcButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 18px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_simple_maxAcButton .ind_act {
- position: absolute;
- right: 4px;
- top: 13px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width: 19px;
- height:32px;
-}
-
-
-/* Recirculation button */
-
-#climate_simple_recirculationButton {
- width: 88px;
- height: 58px;
- position: relative;
- display: inline-block;
- border-left: 1px solid #393939;
- border-right: 1px solid #000;
- float: left;
- z-index: 2000;
-}
-
-#climate_simple_recirculationButton .ico {
- top: 21px;
- left: 25px;
- position: absolute;
-}
-
-#climate_simple_recirculationButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 18px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_simple_recirculationButton .ind_act {
- position: absolute;
- right: 4px;
- top: 13px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width:19px;
- height:32px;
-}
-
-
-/* dual button */
-
-#climate_simple_dualButton {
- width: 87px;
- height: 58px;
- border-left: 1px solid #393939;
- position: relative;
- display: inline-block;
- text-align: center;
- float: left;
- z-index: 2001;
-}
-
-#climate_simple_dualButton span{
- font-size: 20px;
- line-height: 58px;
-}
-
-#climate_simple_dualButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 18px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_simple_dualButton .ind_act {
- position: absolute;
- right: 4px;
- top: 13px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width:19px;
- height:32px;
-}
-
-
-
-
-/* NORMAL VIEW MODE */
-
-/* Power button */
-
-#climate_powerButton {
- width: 78px;
- height: 48px;
- text-align: center;
- top:78px;
- left:360px;
- border: 1px solid #393939;
- border-radius: 3px;
-}
-
-#climate_powerButton .ico {
- top: 14px;
- position: relative;
-}
-
-#climate_powerButton .ind_inact {
- position: absolute;
- right: 4px;
- top: 14px;
- width:6px;
- height:21px;
- background:url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_powerButton .ind_act {
- position: absolute;
- right: -2px;
- top: 9px;
- background:url(../images/climate/ind_vert_active.png) no-repeat;
- width:19px;
- height:32px;
-}
-
-
-/* Automode labels & borders */
-#climate .automode {
- border: 2px solid #fff !important;
-}
-
-#climate_automode .label {
- background: black;
- width: 148px;
- height: 20px;
- text-align: center;
- font-size: 25px;
- font-weight: bold;
-}
-
-#climate_automode .auto_full {
- top: 144px !important;
- left: 325px !important;
-}
-
-#climate_automode .auto_fan {
- top: 144px;
- left: 423px;
-}
-
-#climate_automode .auto_airflow {
- top: 144px;
- left: 228px;
-}
-
-#climate_automode .border {
- border-left: 2px solid #fff;
- border-right: 2px solid #fff;
- border-top: 2px solid #fff;
- z-index: -1;
- border-top-right-radius: 3px;
- border-top-left-radius: 3px;
-}
-
-#climate_automode .border_full {
- width: 363px !important;
- height: 16px !important;
- left: 217px !important;
- top: 160px !important;
-}
-
-#climate_automode .border_airflow {
- width: 168px;
- height: 16px;
- left: 217px;
- top: 160px;
-}
-
-#climate_automode .border_fan {
- width: 168px;
- height: 16px;
- left: 412px;
- top: 160px;
-}
-
-/* Temperature */
-
-#climate_driverTemp {
- width: 170px;
- height: 50px;
- background-color: #000;
- top: 100px;
- left: 22px;
-}
-
-#climate_passangerTemp {
- width: 170px;
- height: 50px;
- background-color: #000;
- top: 100px;
- left: 611px;
-}
-
-#climate_full .minus
-{
- height: 48px;
- width: 43px;
- position: relative;
- float: left;
- border: 1px solid #393939;
- border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-#climate_full .minus .ico {
- position: absolute;
- left: 10px;
- top: 23px;
-}
-
-#climate_full .plus {
- height: 48px;
- width: 43px;
- position: relative;
- float: left;
- border: 1px solid #393939;
- border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-
-#climate_full .plus .ico {
- position: absolute;
- left: 10px;
- top: 13px;
-}
-
-#climate_full .temp_num {
- width: 80px;
- height: 48px;
- position: relative;
- float: left;
- text-align: center;
- border-bottom: 1px solid #393939;
- border-top: 1px solid #393939;
- line-height: 48px;
- z-index: 3001;
-}
-
-#climate_full .temp_num span {
- font-size: 32px;
-}
-
-
-/* Driver controls */
-
-#climate_driverControls {
- width: 168px;
- height: 118px;
- border: 1px solid #393939;
- border-radius: 3px;
- top: 176px;
- left: 22px;
-}
-
-
-/* Driver heated seat button */
-
-#climate_driverControls_heatedSeatButton {
- z-index: 2001;
- width: 83px;
- height: 58px;
- position: relative;
- float: left;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
-}
-
-#climate_driverControls_heatedSeatButton .ico {
- top: 9px;
- left: 26px;
- position: absolute;
-}
-
-#climate_driverControls_heatedSeatButton div {
- width: 22px;
- height: 17px;
- top: 40px;
- left: 25px;
- position: relative;
- float: left;
- margin-left: -9px;
-}
-
-#climate_driverControls_heatedSeatButton div.small_ind_def {
- background:url(../images/climate/small_ind_def.png) no-repeat;
-}
-
-#climate_driverControls_heatedSeatButton div.small_ind_active {
- background:url(../images/climate/small_ind_active.png) no-repeat;
-}
-
-
-/* My temperature button */
-
-#climate_driverControls_myTempButton {
- width: 83px;
- height: 58px;
- position: relative;
- float: left;
- font-size: 20px;
- border-left: 1px solid #393939;
- border-bottom: 1px solid #000;
-}
-
-#climate_driverControls_myTempButton span{
- float: left;
- left: 17px;
- top: 8px;
- text-align: center;
- font-size: 19px;
- line-height: 20px;
- width: 47px;
- z-index: 4001;
- position: relative;
-}
-
-#climate_driverControls_myTempButton.active {
- background:url(../images/common/button_active_blue.png) repeat !important;
-}
-
-/* Driver cooled seat button */
-
-#climate_driverControls_cooledSeatButton {
- z-index: 2001;
- width: 83px;
- height: 58px;
- position: relative;
- float: left;
- border-top: 1px solid #393939;
- border-right: 1px solid #000;
-}
-
-#climate_driverControls_cooledSeatButton .ico {
- top: 9px;
- left: 26px;
- position: absolute;
-}
-
-#climate_driverControls_cooledSeatButton div {
- width: 22px;
- height: 17px;
- top: 40px;
- left: 25px;
- position: relative;
- float: left;
- margin-left: -9px;
-}
-
-#climate_driverControls_cooledSeatButton div.small_ind_def {
- background: url(../images/climate/small_ind_def.png) no-repeat;
-}
-
-#climate_driverControls_cooledSeatButton div.small_ind_active {
- background:url(../images/climate/small_ind_blue.png) no-repeat;
-}
-
-
-/* Driver heated steer button */
-
-#climate_driverControls_heatedSteerButton {
- width: 83px;
- height: 58px;
- float: left;
- position: relative;
- border-top: 1px solid #393939;
- border-left: 1px solid #393939;
-}
-
-#climate_driverControls_heatedSteerButton .ico {
- top: 8px;
- left: 27px;
- position: absolute;
-}
-
-#climate_driverControls_heatedSteerButton .ind_inact {
- position: absolute;
- right: 34px;
- top: 47px;
- width: 21px;
- height: 6px;
- background: url(../images/climate/ind_horiz_def.png) no-repeat;
-}
-
-#climate_driverControls_heatedSteerButton .ind_act {
- position: absolute;
- right: 27px;
- top: 40px;
- background: url(../images/climate/ind_horiz_active_wheel.png) no-repeat;
- width:32px;
- height:19px;
-}
-
-/* Passenger controls */
-
-#climate_passengerControls {
- width:168px;
- height:118px;
- background-color: #000;
- border:1px solid #393939;
- border-radius: 3px;
- top: 176px;
- left: 611px;
-}
-
-/* Passenger cooled seat button */
-
-#climate_passengerControls_cooledSeatButton {
- width: 83px;
- height: 58px;
- position: relative;
- float: right;
- border-left: 1px solid #393939;
- border-top: 1px solid #393939;
-}
-
-#climate_passengerControls_cooledSeatButton .ico {
- top: 9px;
- left: 26px;
- position: absolute;
-}
-
-#climate_passengerControls_cooledSeatButton div {
- width: 22px;
- height: 17px;
- top: 40px;
- left: 25px;
- position: relative;
- float: left;
- margin-left: -9px;
-}
-
-#climate_passengerControls_cooledSeatButton div.small_ind_def {
- background: url(../images/climate/small_ind_def.png) no-repeat;
-}
-
-#climate_passengerControls_cooledSeatButton div.small_ind_active {
- background: url(../images/climate/small_ind_blue.png) no-repeat;
-}
-
-
-/* Passenger heated seat button */
-
-#climate_passengerControls_heatedSeatButton {
- width: 83px;
- height: 58px;
- position: relative;
- float: right;
- border-left: 1px solid #393939;
- border-bottom: 1px solid #000;
-}
-
-#climate_passengerControls_heatedSeatButton .ico {
- top: 9px;
- left: 26px;
- position: absolute;
-}
-
-#climate_passengerControls_heatedSeatButton div {
- width:22px;
- height:17px;
- top: 40px;
- left: 25px;
- position: relative;
- float: left;
- margin-left: -9px;
-}
-
-#climate_passengerControls_heatedSeatButton div.small_ind_def {
- background: url(../images/climate/small_ind_def.png) no-repeat;
-}
-
-#climate_passengerControls_heatedSeatButton div.small_ind_active {
- background:url(../images/climate/small_ind_active.png) no-repeat;
-}
-
-/* Passenger dual mode button */
-
-#climate_passengerControls_dualModeButton {
- width: 83px;
- height: 118px;
- text-align: center;
- border-right: 1px solid #000;
- position: relative;
- float: left;
-}
-
-#climate_passengerControls_dualModeButton span {
- font-size: 20px;
- line-height: 106px;
- z-index: 4001;
- position: relative;
-}
-
-#climate_passengerControls_dualModeButton .ind_inact {
- position: absolute;
- right: 31px;
- top: 103px;
- width: 21px;
- height: 6px;
- background: url(../images/climate/ind_horiz_def.png) no-repeat;
-}
-
-#climate_passengerControls_dualModeButton .ind_act {
- position: absolute;
- right: 25px;
- top: 96px;
- background: url(../images/climate/ind_horiz_active.png) no-repeat;
- width: 32px;
- height: 19px;
-}
-
-
-/* Airflow controls */
-
-#climate_airflowControls {
- width: 168px;
- height: 118px;
- border: 1px solid #393939;
- border-radius: 3px;
- top: 176px;
- left: 218px;
-}
-
-#climate_airflowControls.automode {
- top: 175px;
- left: 217px;
-}
-
-/* Defrost button */
-
-#climate_airflowControls_defrostButton {
- width: 83px;
- height: 58px;
- position: relative;
- float: left;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
-}
-
-#climate_airflowControls_defrostButton .ico {
- top: 15px;
- left:23px;
- position: absolute;
-}
-
-#climate_airflowControls_defrostButton.active {
- background: url(../images/common/button_active_blue.png) repeat !important;
-}
-
-
-
-/* Panel button */
-
-#climate_airflowControls_panelButton {
- width: 83px;
- height: 58px;
- position: relative;
- float: left;
- border-left: 1px solid #393939;
- border-bottom: 1px solid #000;
-}
-
-#climate_airflowControls_panelButton .ico {
- top: 16px;
- left: 27px;
- position: absolute;
-}
-
-#climate_airflowControls_panelButton.active {
- background: url(../images/common/button_active_blue.png) repeat !important;
-}
-
-
-/* Feet button*/
-
-#climate_airflowControls_feetButton {
- width: 83px;
- height: 58px;
- position: relative;
- float: left;
- border-top: 1px solid #393939;
- border-right: 1px solid #000;
-}
-
-#climate_airflowControls_feetButton .ico {
- top: 16px;
- left: 23px;
- position: absolute;
-}
-#climate_airflowControls_feetButton.active {
- background: url(../images/common/button_active_blue.png) repeat !important;
-}
-
-/* Panel & Feet button */
-
-#climate_airflowControls_bothButton {
- width: 83px;
- height: 58px;
- float: left;
- position: relative;
- border-top: 1px solid #393939;
- border-left: 1px solid #393939;
-}
-
-
-#climate_airflowControls_bothButton .ico {
- top: 16px;
- left: 23px;
- position: absolute;
-}
-
-#climate_airflowControls_bothButton.active {
- background:url(../images/common/button_active_blue.png) repeat !important;
-}
-
-
-/* Fan controls */
-
-#climate_fanControls {
- width: 168px;
- height: 118px;
- border: 1px solid #393939;
- border-radius: 3px;
- top: 176px;
- left: 413px;
-}
-
-#climate_fanControls.automode {
- top: 175px;
- left: 412px;
-}
-
-/* Fan indicators */
-
-#climate_fanControls_fanIndicator {
- width: 168px;
- height: 59px;
- left: 1px;
- position: relative;
- cursor: default;
- background: none;
-}
-
-#climate_fanControls_fanIndicator .ico{
- top: 17px;
- left: 72px;
- position: absolute;
-}
-
-#climate_fanControls_fanIndicator .ind_def{
- background: url(../images/climate/fan_control/fan_ind_active.png) no-repeat;
- width: 21px;
- height: 44px;
- position: relative;
- display: inline-block;
- left: -1px;
- top: 7px;
-}
-
-#climate_fanControls_fanIndicator .indf_inact {
- background: url(../images/climate/fan_control/fan_ind_def.png) no-repeat;
- width: 24px;
- height: 44px;
- position: relative;
- display: inline-block;
- background-position: 9px;
- top: 7px;
-}
-
-#climate_fanControls_fanIndicator .indf_act {
- background: url(../images/climate/fan_control/fan_ind_active.png) no-repeat;
- width: 24px;
- height: 44px;
- position: relative;
- display: inline-block;
- left: 1px;
- top: 7px;
-}
-
-
-/* Fan minus button */
-
-#climate_fanControls_fanMinusButton {
- width: 83px;
- height: 58px;
- position: relative;
- float: left;
- border-top: 1px solid #393939;
- border-right: 1px solid #000;
-}
-
-#climate_fanControls_fanMinusButton .ico {
- top: 27px;
- left: 30px;
- position: absolute;
-}
-
-/* Fan plus button */
-
-#climate_fanControls_fanPlusButton {
- width: 83px;
- height: 58px;
- float: left;
- position: relative;
- border-top: 1px solid #393939;
- border-left: 1px solid #393939;
-}
-
-#climate_fanControls_fanPlusButton .ico {
- top: 17px;
- left: 30px;
- position: absolute;
-}
-
-
-/* Front climate control buttons */
-
-#climate_frontControls {
- width: 538px;
- height: 58px;
- border: 1px solid #393939;
- border-radius: 3px;
- top: 338px;
- left: 129px;
-}
-
-
-/* Windshield button */
-
-#climate_frontControls_windshieldButton {
- width: 89px;
- height: 58px;
- position: relative;
- float: left;
- display: inline-block;
- border-right: 1px solid #000;
-
-}
-
-#climate_frontControls_windshieldButton .ico {
- top: 20px;
- left: 30px;
- position: absolute;
-}
-
-#climate_frontControls_windshieldButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 18px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_frontControls_windshieldButton .ind_act {
- position: absolute;
- right: 4px;
- top: 13px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width: 19px;
- height: 32px;
-}
-
-
-/* Defrost button */
-
-#climate_frontControls_defrostButton {
- width: 88px;
- height: 58px;
- position: relative;
- float: left;
- display: inline-block;
- border-left: 1px solid #393939;
- border-right: 1px solid #000;
-}
-
-#climate_frontControls_defrostButton .ico {
- top: 18px;
- left: 27px;
- position: absolute;
-}
-
-#climate_frontControls_defrostButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 18px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_frontControls_defrostButton .ind_act {
- position: absolute;
- right: 4px;
- top: 13px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width: 19px;
- height: 32px;
-}
-
-
-/* Automode button */
-
-#climate_frontControls_autoButton {
- z-index: 2001;
- width: 88px;
- height: 58px;
- position: relative;
- float:left;
- display: inline-block;
- border-right: 1px solid #000;
- border-left: 1px solid #393939;
-}
-
-#climate_frontControls_autoButton span{
- top: 18px;
- left: 26px;
- position: absolute;
- font-size: 20px;
-}
-
-#climate_frontControls_autoButton.active {
- background: url(../images/common/button_active_blue.png) repeat !important;
-}
-
-/* AC button */
-
-#climate_frontControls_acButton {
- width: 88px;
- height: 58px;
- position: relative;
- float: left;
- display: inline-block;
- border-right: 1px solid #000;
- border-left: 1px solid #393939;
-}
-
-#climate_frontControls_acButton span {
- top: 18px;
- left: 28px;
- position: absolute;
- font-size: 20px;
-}
-
-#climate_frontControls_acButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 18px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_frontControls_acButton .ind_act {
- position: absolute;
- right: 4px;
- top: 13px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width:19px;
- height:32px;
-}
-
-
-/* Max AC button */
-
-#climate_frontControls_maxAcButton {
- z-index: 2001;
- width: 88px;
- height: 58px;
- position: relative;
- float: left;
- display: inline-block;
- border-right: 1px solid #000;
- border-left: 1px solid #393939;
-}
-
-#climate_frontControls_maxAcButton span {
- top: 12px;
- left: 24px;
- position: absolute;
- font-size: 20px;
- line-height: 18px;
- text-align: center;
- width: 37px;
-}
-
-#climate_frontControls_maxAcButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 18px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_frontControls_maxAcButton .ind_act {
- position: absolute;
- right: 4px;
- top: 13px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width: 19px;
- height:32px;
-}
-
-
-/* Recirculation button */
-
-#climate_frontControls_recirculationButton {
- z-index: 2001;
- width: 87px;
- height: 58px;
- position: relative;
- display: inline-block;
- border-left: 1px solid #393939;
-}
-
-#climate_frontControls_recirculationButton .ico {
- top: 21px;
- left: 25px;
- position: absolute;
-}
-
-#climate_frontControls_recirculationButton .ind_inact {
- position: absolute;
- right: 10px;
- top: 18px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_frontControls_recirculationButton .ind_act {
- position: absolute;
- right: 4px;
- top: 13px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width:19px;
- height:32px;
-}
-
-
-/* REAR VIEW BLOCK */
-
-/* Rear switcher */
-
-#climate_rearSwitcher {
- z-index: 4001;
- width: 78px;
- height: 48px;
- border: 1px solid #393939;
- border-radius:3px;
- top:425px;
- left:716px;
- text-align: center;
-}
-
-#climate_rearSwitcher span {
- font-size: 19px;
- line-height: 28px;
- margin-right: 3px;
-}
-
-#climate_rearSwitcher .ico {
- top: 28px;
- left: 28px;
- position: absolute;
-}
-
-#climate_rearSwitcher .rear_arrow {
- top: 32px;
- left: 28px;
- position: absolute;
-}
-
-/* Rear controls */
-
-#climate_rearControls {
- top: 315px;
- width: 800px;
- z-index: 4001;
-}
-
-#climate_rearControls_tempControls_labels {
- pointer-events: none;
-}
-
-#climate_rearControls_topCaption {
- width: 470px;
- height: 1px;
- left: 165px;
- background: url(../images/climate/rear_auto/rear_lightning.png) no-repeat;
-}
-
-#climate_rearControls_topCaption.help {
- background: none;
-}
-
-#climate_rearControls_topCaption span{
- position: absolute;
- top: -11px;
- left: 179px;
- font-size: 19px;
-}
-
-#climate_rearControls_topCaption .rear_ico {
- position: relative;
- left: 178px;
- bottom: 8px;
-}
-
-#climate_rearControls .rear_controls {
- position: relative;
- top: 16px;
- width: 800px;
- height: 60px;
-}
-
-
-/* Rear control button */
-
-#climate_rearControls_controlButton {
- z-index: 4001;
- width: 98px;
- height: 58px;
- position: relative;
- float: left;
- border: 1px solid #393939;
- border-radius: 3px;
- margin-left: 97px;
- margin-right:7px;
- top: 16px;
-}
-
-#climate_rearControls_controlButton span {
- top: 5px;
- left: 19px;
- position: absolute;
- width: 60px;
- font-size: 19px;
- line-height: 24px;
- text-align: center;
-}
-
-#climate_rearControls_controlButton .ind_inact {
- position: absolute;
- right: 6px;
- top: 18px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_rearControls_controlButton .ind_act {
- position: absolute;
- right: 0px;
- top: 13px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width: 19px;
- height: 32px;
-}
-
-
-/* Rear temperature control */
-
-#climate_rearControls_tempControls {
- z-index: 4001;
- width: 198px;
- height: 58px;
- background-color: #000;
- position: relative;
- float: left;
- margin-right: 8px;
- top: 16px;
- border: 1px solid #393939;
- border-radius: 3px;
-}
-
-
-/* Rear temperature minus button */
-
-#climate_rearControls_tempControls_minusButton {
- height: 58px;
- width: 44px;
- border-right: 1px solid #393939;
- position: relative;
- float: left;
-}
-
-#climate_rearControls_tempControls_minusButton .ico {
- top: 27px;
- left: 10px;
- position: absolute;
-}
-
-/* Rear temperature plus button */
-
-#climate_rearControls_tempControls_plusButton {
- height:58px;
- width:44px;
- border-left: 1px solid #393939;
- display: inline-block;
-}
-
-#climate_rearControls_tempControls_plusButton .ico {
- top: 17px;
- left: 10px;
- position: absolute;
-}
-
-/* Rear temperature indicators */
-
-#climate_rearControls_tempControls_indicator {
- background-color: #000;
- width: 108px;
- height: 59px;
- position: relative;
- display: inline-block;
- top: 0px;
- cursor: default;
- background: none;
-}
-
-#climate_rearControls_tempControls_indicator .indt_inact {
- background: url(../images/climate/fan_control/fan_ind_def.png) no-repeat;
- width: 5px;
- height: 48px;
- position: relative;
- float: left;
- margin-left: 3px;
- margin-right: 4px;
- margin-top: 15px
-}
-
-#climate_rearControls_tempControls_indicator .indt_inact_long {
- background: url(../images/climate/rear_auto/indicator_long_def.png) no-repeat;
- width: 5px;
- height: 48px;
- position: relative;
- float: left;
- margin-left: 3px;
- margin-right: 4px;
- margin-top: 5px
-}
-
-#climate_rearControls_tempControls_indicator .indt_dot {
- width: 10px;
- height: 10px;
- position: relative;
- float: left;
- margin-right: 2px;
- margin-top: 24px;
-}
-
-#climate_rearControls_tempControls_indicator .indt_act {
- background: url(../images/climate/fan_control/fan_ind_active.png) no-repeat;
- width: 21px;
- height: 44px;
- position: relative;
- float: left;
- margin-top: 7px;
- margin-left: -5px;
- margin-right: -4px;
-}
-
-#climate_rearControls_tempControls_indicator .indt_act_long {
- background: url(../images/climate/rear_auto/indicator_long_act.png) no-repeat;
- width: 21px;
- height: 54px;
- position: relative;
- float: left;
- margin-top: 2px;
- margin-left: -3px;
- margin-right: -6px;
-}
-
-
-#climate_rearControls_tempControls_indicator_dot {
- background:url(../images/climate/rear_auto/center_dot_rear_fan.png) no-repeat;
- width:10px;
- height:10px;
- position:absolute;
- top: 24px;
- left: 48px;
- opacity: 0;
-}
-
-#climate_rearControls_tempControls .full_label {
- z-index: 1;
- top: 1px;
- left: 89px;
- font-size: 12px;
- font-weight: 600;
- position:absolute;
- opacity: 0;
-}
-
-#climate_rearControls_tempControls .mode_label {
- z-index: 1;
- top: 44px;
- left: 86px;
- font-size: 12px;
- font-weight: 600;
- position: absolute;
-}
-
-#climate_rearOff {
- z-index: 2;
- font-size: 30px;
- left: 45px;
- width: 108px;
- height: 58px;
- background-color: #000;
- line-height: 58px;
- text-align: center;
-}
-
-#climate_rearLabelOn {
- width: 190px;
- font-size: 18px;
- top: 442px;
- left: 525px;
- visibility: hidden;
-}
-
-
-/* Rear power button */
-#climate_rearControls_powerButton {
- width: 78px;
- height: 58px;
- position: relative;
- float: left;
- border: 1px solid #393939;
- border-radius: 3px;
- margin-right: 7px;
- top: 16px;
-}
-
-#climate_rearControls_powerButton .ico {
- top: 19px;
- left: 29px;
- position: absolute;
-}
-
-#climate_rearControls_powerButton .ind_inact {
- position: absolute;
- right: 6px;
- top: 18px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#climate_rearControls_powerButton .ind_act {
- position: absolute;
- right: 0px;
- top: 13px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width: 19px;
- height: 32px;
-}
-
-
-/* Rear fan control */
-
-#climate_rearControls_fanControls {
- width: 198px;
- height: 58px;
- background-color: #000;
- float: left;
- margin-right: 7px;
- position: relative;
- top: 16px;
-}
-
-#climate_rearControls_fanControls_minusButton {
- height: 58px;
- width: 43px;
- position: relative;
- float: left;
- border: 1px solid #393939;
- border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-
-#climate_rearControls_fanControls_minusButton .ico {
- top: 27px;
- left: 10px;
- position: absolute;
-}
-
-#climate_rearControls_fanControls_plusButton {
- height: 58px;
- width: 43px;
- position: relative;
- display: inline-block;
- border: 1px solid #393939;
- border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-
-#climate_rearControls_fanControls_plusButton .ico {
- top: 17px;
- left: 10px;
- position: absolute;
-}
-
-#climate_rearControls_fanControls_indicator {
- width:108px;
- height:58px;
- position:relative;
- float:left;
- border-bottom:1px solid #393939;
- border-top:1px solid #393939;
- cursor: default;
- background: none;
-}
-
-#climate_rearControls_fanControls_indicator .ico {
- top: 17px;
- left:43px;
- position: absolute;
-}
-
-#climate_rearControls_fanControls_indicator .indr_inact {
- background: url(../images/climate/fan_control/fan_ind_def.png) no-repeat;
- width: 21px;
- height: 44px;
- position: relative;
- display: inline-block;
- background-position: 9px;
- top: 7px;
- margin-left: -7px;
- left: 8px;
-}
-
-#climate_rearControls_fanControls_indicator .indr_act {
- background: url(../images/climate/fan_control/fan_ind_active.png) no-repeat;
- width: 21px;
- height: 44px;
- position: relative;
- display: inline-block;
- left: 8px;
- top: 7px;
- margin-left: -7px;
-}
-
-
-/* HELP VIEW MODE */
-
-#climate_help_blur {
- width: 800px;
- height: 480px;
- z-index: 1001;
- background: url(../images/climate/helpmode_climate_front.jpg) no-repeat;
- visibility: hidden;
-}
-
-#climate_rear_help_blur {
- width: 800px;
- height: 480px;
- z-index: 3001;
- background: url(../images/climate/helpmode_climate_rear.jpg) no-repeat;
- visibility: hidden;
-}
-
-#climate_simple_help_blur {
- width: 800px;
- height: 480px;
- z-index: 1001;
- background: url(../images/climate/helpmode_climate_simple.jpg) no-repeat;
- visibility: hidden;
-}
-
-/* HOME WIDGET */
-
-
-/* Climate power home button */
-
-#home_widgetClimate_powerButton {
- width: 206px;
- height: 48px;
- left: 96px;
- top: 35px;
- border: 1px solid #393939;
- border-radius: 3px;
-}
-
-#home_widgetClimate_powerButton .ico {
- position: absolute;
- top: 15px;
- left: 93px;
-}
-
-#home_widgetClimate_powerButton.simple_climate{
- top: 80px;
-}
-
-
-/* Driver temp home label */
-
-#home_widgetClimate_driverTemp {
- font-size: 36px;
- top: 44px;
- left: 108px;
- visibility: hidden;
-}
-
-/* Passenger temp home label */
-
-#home_widgetClimate_passengerTemp {
- font-size: 36px;
- top: 44px;
- left: 249px;
- visibility: hidden;
-}
-
-#home_widgetClimate .simple_climate_temp {
- font-size: 45px;
- top: 75px;
-}
-
-
-/* Driver home controls */
-
-#home_widgetClimate_driverControls {
- z-index: 1;
- top: 100px;
- left: 35px;
- width: 131px;
- height: 58px;
- border-left: 1px solid #393939;
- border-top: 1px solid #393939;
- border-bottom: 1px solid #393939;
- border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-
-/* Driver home heated seat button */
-
-#home_widgetClimate_driverControls_heatedSeatButton {
- width: 64px;
- height: 58px;
- position: relative;
- float: left;
- border-right: 1px solid #000;
-}
-
-#home_widgetClimate_driverControls_heatedSeatButton .ico {
- top: 9px;
- left: 18px;
- position: absolute;
-}
-
-#home_widgetClimate_driverControls_heatedSeatButton div {
- width: 22px;
- height: 17px;
- top: 40px;
- left: 20px;
- position: relative;
- float: left;
- margin-left: -10px;
-}
-
-#home_widgetClimate_driverControls_heatedSeatButton div.small_ind_def {
- background:url(../images/climate/small_ind_def.png) no-repeat;
-}
-
-#home_widgetClimate_driverControls_heatedSeatButton div.small_ind_active {
- background:url(../images/climate/small_ind_active.png) no-repeat;
-}
-
-
-/* Driver home cooled seat button */
-
-#home_widgetClimate_driverControls_cooledSeatButton {
- width: 64px;
- height: 58px;
- position: relative;
- float: left;
- border-left: 1px solid #393939;
- border-right: 1px solid #000;
-}
-
-#home_widgetClimate_driverControls_cooledSeatButton .ico {
- top: 9px;
- left: 18px;
- position: absolute;
-}
-
-#home_widgetClimate_driverControls_cooledSeatButton div {
- width: 22px;
- height: 17px;
- top: 40px;
- left: 20px;
- position: relative;
- float: left;
- margin-left: -10px;
-}
-
-#home_widgetClimate_driverControls_cooledSeatButton div.small_ind_def {
- background: url(../images/climate/small_ind_def.png) no-repeat;
-}
-
-#home_widgetClimate_driverControls_cooledSeatButton div.small_ind_active {
- background:url(../images/climate/small_ind_blue.png) no-repeat;
-}
-
-
-/* Driver home heated steer button */
-
-#home_widgetClimate_driverControls_heatedSteerButton {
- width: 64px;
- height: 58px;
- position: absolute;
- top: 100px;
- left: 167px;
- border: 1px solid #393939;
- border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-
-#home_widgetClimate_driverControls_heatedSteerButton.helpmode_blur_cont {
- background:url(../images/climate/heated_stearbutton_blur.png) no-repeat !important;
- width:75px !important;
- height:70px !important;
- border:none !important;
- top: 95px !important;
- left:163px !important;
-}
-
-#home_widgetClimate_driverControls_heatedSteerButton .ico {
- top: 8px;
- left: 17px;
- position: absolute;
-}
-
-#home_widgetClimate_driverControls_heatedSteerButton .ind_inact {
- position: absolute;
- right: 24px;
- top: 47px;
- width: 21px;
- height: 6px;
- background: url(../images/climate/ind_horiz_def.png) no-repeat;
-}
-
-#home_widgetClimate_driverControls_heatedSteerButton .ind_act {
- position: absolute;
- right: 17px;
- top: 40px;
- background: url(../images/climate/ind_horiz_active_wheel.png) no-repeat;
- width: 32px;
- height: 19px;
-}
-
-
-/* Passenger home controls */
-
-#home_widgetClimate_passengerControls {
- top: 100px;
- left: 242px;
- width: 130px;
- height: 58px;
- border: 1px solid #393939;
- border-radius: 3px;
-}
-
-/* Passenger home heated seat button */
-
-#home_widgetClimate_passengerControls_heatedSeatButton {
- width: 64px;
- height: 58px;
- position: relative;
- float: left;
- border-right: 1px solid #000;
-}
-
-#home_widgetClimate_passengerControls_heatedSeatButton .ico {
- top: 9px;
- left: 18px;
- position: absolute;
-}
-
-#home_widgetClimate_passengerControls_heatedSeatButton div {
- width: 22px;
- height: 17px;
- top: 40px;
- left: 20px;
- position: relative;
- float: left;
- margin-left: -10px;
-}
-
-#home_widgetClimate_passengerControls_heatedSeatButton div.small_ind_def {
- background:url(../images/climate/small_ind_def.png) no-repeat;
-}
-
-#home_widgetClimate_passengerControls_heatedSeatButton div.small_ind_active {
- background:url(../images/climate/small_ind_active.png) no-repeat;
-}
-
-
-/* Passenger home cooled seat button */
-
-#home_widgetClimate_passengerControls_cooledSeatButton {
- width: 64px;
- height: 58px;
- position: relative;
- float: left;
- border-left: 1px solid #393939;
-}
-
-#home_widgetClimate_passengerControls_cooledSeatButton .ico {
- top: 9px;
- left: 18px;
- position: absolute;
-}
-
-#home_widgetClimate_passengerControls_cooledSeatButton div {
- width: 22px;
- height: 17px;
- top: 40px;
- left: 20px;
- position: relative;
- float: left;
- margin-left: -10px;
-}
-
-#home_widgetClimate_passengerControls_cooledSeatButton div.small_ind_def {
- background: url(../images/climate/small_ind_def.png) no-repeat;
-}
-
-#home_widgetClimate_passengerControls_cooledSeatButton div.small_ind_active {
- background:url(../images/climate/small_ind_blue.png) no-repeat;
-}
-
-
-/* Climate Status */
-
-#status_climate {
- bottom:0px;
- right:0px;
- text-align:right;
- font-size:21px;
- width:324px;
- height:48px;
- cursor:pointer;
- background:url(../images/common/climate-status-bg.png) no-repeat;
- z-index:1;
-}
-
-#status_climate_off {
- position: absolute;
- right: 15px;
-}
-
-#status_climate_label {
- display: block;
- width: 100%;
- visibility: hidden;
-}
-#status_climate_label span {
- padding-right: 11px;
-}
-
-#status_climate_off .key {
- position: absolute;
- right: 220px;
- top: 10px;
-}
-
-#status_climate_driverTemp {
- position: absolute;
- left: 60px;
- width: 50px;
- text-align: left;
-}
-
-#status_climate_passangerTemp {
- position: absolute;
- left: 260px;
- width: 50px;
- text-align: right;
-}
-
-#status_climate_driverSeat {
- position: absolute;
- left: 115px;
- top: 10px;
-}
-
-#status_climate_passangerSeat {
- position: absolute;
- left: 225px;
- top: 10px;
-} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/css/ffw.css b/SDL_Core/src/components/HMI/css/ffw.css
deleted file mode 100755
index caa8d49ec..000000000
--- a/SDL_Core/src/components/HMI/css/ffw.css
+++ /dev/null
@@ -1,28 +0,0 @@
-#debug_view {
- z-index: 20000;
- pointer-events: none;
- color: #0F0;
- font-weight: bold;
- padding: 5px;
- margin: 5px;
- background-color: #000;
- opacity: .8;
-}
-
-/* Button component */
-.ffw-button {
- cursor: pointer;
- background: url(../images/common/button.png) repeat-x;
-}
-
-.ffw-button.large {
- background: url(../images/common/button_large.png) repeat-x;
-}
-
-.ffw-button.small {
- background: url(../images/common/button_small.png) repeat-x;
-}
-
-.ffw-button.pressed {
- background-position: bottom;
-} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/css/fr.css b/SDL_Core/src/components/HMI/css/fr.css
deleted file mode 100755
index 89ec94379..000000000
--- a/SDL_Core/src/components/HMI/css/fr.css
+++ /dev/null
@@ -1,17 +0,0 @@
-
-.fr #navigation_destination_myHome_view .view {
- left: 71px;
- font-size: 18px;
-}
-
-.fr #view_navi_destination_map .poi {
- top: 313px;
- font-size: 18px;
- line-height: 15px;
-}
-
-.fr #view_navi_destination_map .view{
- top: 122px;
- left: -22px;
- font-size: 18px;
-} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/css/general.css b/SDL_Core/src/components/HMI/css/general.css
index 308dfb346..07efbaa9e 100755..100644
--- a/SDL_Core/src/components/HMI/css/general.css
+++ b/SDL_Core/src/components/HMI/css/general.css
@@ -1,1558 +1,1516 @@
/*GENERAL CSS*/
-
* {
- /*Reset default browser styles*/
- margin: 0;
- padding: 0;
- border: none;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
- -webkit-user-select: none;
+ /*Reset default browser styles*/
+ margin: 0;
+ padding: 0;
+ border: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-user-select: none;
}
html, body {
- /*GLOBAL HTML and BODE Dimansions*/
- width: 100%;
- min-height: 100%;
+ /*GLOBAL HTML and BODE Dimansions*/
+ width: 100%;
+ min-height: 100%;
}
body {
- /*FONT FAMILY*/
- font-family: sans-serif;
- /*Defaul font size*/
- font-size: 16px;
- background-color: #000;
- color: #fff;
- overflow:hidden;
+ /*FONT FAMILY*/
+ font-family: sans-serif;
+ /*Defaul font size*/
+ font-size: 16px;
+ background-color: #000;
+ color: #fff;
+ overflow: hidden;
}
/*Default style for all images*/
-
img {
- border-width: 0px;
- border-style: none;
- margin: 0px;
- padding: 0px;
- z-index: 1000;
- pointer-events: none;
+ border-width: 0px;
+ border-style: none;
+ margin: 0px;
+ padding: 0px;
+ z-index: 1000;
+ pointer-events: none;
}
/*Default style for all DIVs*/
-
div {
- position: absolute;
- margin: 0;
- padding: 0;
+ position: absolute;
+ margin: 0;
+ padding: 0;
+}
+
+.ffw-button {
+ cursor: pointer;
+ background: url(../images/common/button.png) repeat-x;
+}
+
+.ffw-button.pressed {
+ background-position: bottom;
}
.windowText {
- top: 190px;
- width: 800px;
- font-size: 80px;
- color: white;
- text-align: center;
+ top: 190px;
+ width: 800px;
+ font-size: 80px;
+ color: white;
+ text-align: center;
}
-/*FORD CONTAINER DEFAULT DIMANSIONS */
+/* Home view */
+#home {
+ background: url(../images/home/home_main_image.png) no-repeat;
+ width: 800px;
+ height: 369px;
+ top: 56px;
+}
-#app {
- /*position:relative;*/
- width: 800px;
- height: 480px;
- /*overflow: hidden;
- Mac font smoothing */
- -webkit-font-smoothing: antialiased;
- /*margin: 25px auto;*/
+/* Climate Status */
+#status_climate {
+ bottom: 0px;
+ right: 0px;
+ text-align: right;
+ font-size: 21px;
+ width: 324px;
+ height: 48px;
+ cursor: pointer;
+ background: url(../images/common/climate-status-bg.png) no-repeat;
+ z-index: 1;
}
+#status_climate_label {
+ display: block;
+ width: 100%;
+ visibility: hidden;
+}
-/* TTS popUp*/
+#status_climate_label span {
+ padding-right: 11px;
+}
-#TTSPopUp.TTSPopUp{
- opacity: 0;
- left: 500px;
- width: 295px;
- height: 100px;
- background-color: black;
- z-index: 1;
- border-radius: 10PX;
- border: #A6A6A6 solid 2px;
- top: 8px;
- -webkit-transition: opacity 1s ease-in-out;
- display: none;
+/* Navigation Status */
+#status_nav {
+ top: 0px;
+ right: 0px;
+ text-align: right;
+ font-size: 21px;
+ width: 324px;
+ height: 48px;
+ cursor: pointer;
+ background: url(../images/common/nav-status-bg.png) no-repeat;
+ z-index: 1;
}
-#TTSPopUp .popUp{
- width: 294px;
- height: 98px;
- border: 1px solid black;
- border-radius: 10px;
+#navigation_status_label {
+ width: 100%;
+ display: block;
+ visibility: hidden;
}
-#TTSPopUp .message{
- top: 10px;
- left: 10px;
- width: 278px;
- height: 81px;
+#navigation_status_label span {
+ padding-right: 11px;
}
-#TTSPopUp.active{
- opacity: 1;
- display: block;
+/*FORD CONTAINER DEFAULT DIMANSIONS */
+#app {
+ /*position:relative;*/
+ width: 800px;
+ height: 480px;
+ /*overflow: hidden;
+ Mac font smoothing */
+ -webkit-font-smoothing: antialiased;
+ /*margin: 25px auto;*/
+}
+
+/* TTS popUp*/
+#TTSPopUp.TTSPopUp {
+ opacity: 0;
+ left: 500px;
+ width: 295px;
+ height: 100px;
+ z-index: 1;
+ border-radius: 10 PX;
+ top: 8px;
+ -webkit-transition: opacity 1s ease-in-out;
+ display: none;
+}
+
+#TTSPopUp .popUp {
+ width: 294px;
+ height: 98px;
+ border: 1px solid black;
+ border-radius: 10px;
+ background-color: black;
+ border: #A6A6A6 solid 2px;
+ color: white;
+}
+
+#TTSPopUp .message {
+ top: 10px;
+ left: 10px;
+ width: 278px;
+ height: 81px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+#TTSPopUp.active {
+ opacity: 1;
+ display: block;
}
+
/* Diver Distraction PopUp */
-#driverDistraction.driverDistractionWindow{
- left: 0;
- top: 0;
- width: 800px;
- height: 480px;
- background: rgba(0, 0, 0, 0.7);
- z-index: 30000;
- opacity: 0;
- display: none;
-}
-
-#driverDistraction .driverDistraction{
- left: 200px;
- width: 400px;
- height: 200px;
- z-index: 2;
- top: 140px;
- -webkit-transition: opacity 1s ease-in-out;
- background-color: black;
- border: #A6A6A6 solid 2px;
- border-radius: 6px;
-}
-
-#driverDistraction.active{
- opacity: 1;
- display: block;
-}
-
-#driverDistraction .driverDistractionText{
- top: 224px;
- left: 210px;
- width: 374px;
- height: 20px;
- text-align: center;
- font-size: 28px;
- z-index: 2;
+#driverDistraction.driverDistractionWindow {
+ left: 0;
+ top: 0;
+ width: 800px;
+ height: 480px;
+ background: rgba(0, 0, 0, 0.7);
+ z-index: 30000;
+ opacity: 0;
+ display: none;
+}
+
+#driverDistraction .driverDistraction {
+ left: 200px;
+ width: 400px;
+ height: 200px;
+ z-index: 2;
+ top: 140px;
+ -webkit-transition: opacity 1s ease-in-out;
+ background-color: black;
+ border: #A6A6A6 solid 2px;
+ border-radius: 6px;
+}
+
+#driverDistraction.active {
+ opacity: 1;
+ display: block;
+}
+
+#driverDistraction .driverDistractionText {
+ top: 224px;
+ left: 210px;
+ width: 374px;
+ height: 20px;
+ text-align: center;
+ font-size: 28px;
+ z-index: 2;
}
-/* UI popUp*/
+/* UI popUp*/
/* VR popUp*/
-
-#VRPopUp.VRPopUp{
- opacity: 0;
- left: 50px;
- width: 700px;
- height: 340px;
- background-color: black;
- z-index: 2;
- border-radius: 10PX;
- top: 70px;
- -webkit-transition: opacity 1s ease-in-out;
- display: none;
+#VRPopUp.VRPopUp {
+ opacity: 0;
+ left: 50px;
+ width: 700px;
+ height: 340px;
+ background-color: black;
+ z-index: 2;
+ border-radius: 10 PX;
+ top: 70px;
+ -webkit-transition: opacity 1s ease-in-out;
+ display: none;
}
-#VRPopUp span{
- margin-left: 15px;
+#VRPopUp span {
+ margin-left: 15px;
}
-#VRPopUp .popUp{
- width: 698px;
- height: 338px;
- border: 1px solid white;
- border-radius: 10px;
+#VRPopUp .popUp {
+ width: 698px;
+ height: 338px;
+ border: 1px solid white;
+ border-radius: 10px;
}
-#VRPopUp .message1{
- top: 10px;
- left: 10px;
- width: 278px;
- height: 81px;
+#VRPopUp .message1 {
+ top: 10px;
+ left: 10px;
+ width: 278px;
+ height: 81px;
}
-#VRPopUp .message2{
- top: 40px;
- left: 10px;
- width: 278px;
- height: 81px;
+#VRPopUp .message2 {
+ top: 40px;
+ left: 10px;
+ width: 278px;
+ height: 81px;
}
-#VRPopUp.active{
- opacity: 1;
- display: block;
+#VRPopUp.active {
+ opacity: 1;
+ display: block;
+ transition: all 1s;
}
-
-#VRPopUp .list{
- position: absolute;
- width: 629px;
- height: 251px;
- border-radius: 2px;
- left: 35px;
- top: 70px;
+#VRPopUp .list {
+ position: absolute;
+ width: 629px;
+ height: 251px;
+ border-radius: 2px;
+ left: 35px;
+ top: 70px;
}
-#VRPopUp .list-content{
- border: none;
+#VRPopUp .list-content {
+ border: none;
}
#VRPopUp .list-item {
- position: relative;
- width: 100%;
- height: 48px;
- font-size: 20px;
- line-height: 50px;
- border: 1px solid #393939;
+ position: relative;
+ width: 100%;
+ height: 48px;
+ font-size: 20px;
+ line-height: 50px;
+ border: 1px solid #393939;
}
-#VRPopUp .list-content{
- width: 578px;
+#VRPopUp .list-content {
+ width: 578px;
}
-#VRPopUp .VRLabel{
- top: 10px;
- width: 550px;
- left: 35px;
- height: 20px;
- padding: 15px;
- background: #393939;
+#VRPopUp .VRLabel {
+ top: 10px;
+ width: 550px;
+ left: 35px;
+ height: 20px;
+ padding: 15px;
+ background: #393939;
}
-#VRPopUp .VRImage{
- right: 25px;
- width: 50px;
- height: 50px;
- top: 10px;
- background: url(../images/home/controlButtons/vrImage.png) no-repeat;
- background-size: contain;
+#VRPopUp .VRImage {
+ right: 25px;
+ width: 50px;
+ height: 50px;
+ top: 10px;
+ background: url(../images/home/controlButtons/vrImage.png) no-repeat;
+ background-size: contain;
}
/*WRAPER FOR CONTENT VIEW*/
-
#app_active_view {
- position: absolute;
- width: 800px;
- height: 480px;
+ position: absolute;
+ width: 800px;
+ height: 480px;
}
#html5Player {
position: absolute;
z-index: 1;
- width:800px;
- height:480px;
- -webkit-transform: translateX(-810px);
- -moz-transform: translateX(-810px);
+ width: 800px;
+ height: 480px;
}
-#html5Player.visible{
- -webkit-transform: translateX(0px) !important;
+
+#html5Player.visible {
+ -webkit-transform: translateX(0px) !important;
}
+
#mode {
- position: relative;
- margin: 150px auto;
- width: 150px;
+ position: relative;
+ margin: 150px auto;
+ width: 150px;
}
/* Image preloader block*/
-
-#preloader{
- position: absolute;
- left: -9999px;
- top: -9999px;
+#preloader {
+ position: absolute;
+ left: -9999px;
+ top: -9999px;
}
/*CLOCK*/
-
#clock {
- font-size: 28px;
- text-align: center;
- width: 225px;
- height: 50px;
- position: relative;
- float: left;
- pointer-events: all;
- cursor: pointer;
+ font-size: 28px;
+ text-align: center;
+ width: 225px;
+ height: 50px;
+ position: relative;
+ float: left;
+ pointer-events: all;
+ cursor: pointer;
}
#clock.mcs {
- width: 225px;
+ width: 225px;
}
#time_num {
- width: 100%;
- padding: 10px;
- margin-left: 5px;
+ width: 100%;
+ padding: 10px;
+ margin-left: 5px;
}
#app_top_menu_cont {
- z-index: 10000;
- top: 0px;
- left: 275px;
- position: relative;
- pointer-events: none;
+ z-index: 10000;
+ top: 0px;
+ left: 275px;
+ position: relative;
+ pointer-events: none;
}
#top_controls {
- width: 322px;
- height: 58px;
- background: url("../images/common/header_bg.png") no-repeat;
- z-index: 2;
+ width: 322px;
+ height: 58px;
+ background: url("../images/common/header_bg.png") no-repeat;
+ z-index: 2;
}
.not-visible {
- visibility: hidden !important;
+ visibility: hidden !important;
}
/* Universal class to show hidden elements */
-
.visible {
- visibility: visible !important;
+ visibility: visible !important;
}
/* Universal class to show transparent elements */
-
.show {
- opacity: 1 !important;
+ opacity: 1 !important;
}
.arrow-ico {
- position: absolute;
- right: 10px;
+ position: absolute;
+ right: 10px;
}
.right_text {
- float: right;
- margin-right: 10px;
- font-style: italic;
+ float: right;
+ margin-right: 5px;
}
-.helpmode_block {
- visibility: hidden;
+.hidden_display {
+ display: none !important;
}
-.helpmode_blur_cont div {
- visibility: hidden;
-}
-
-.helpmode_blur_cont span {
- visibility: hidden;
-}
-
-.helpmode_blur_cont img {
- visibility: hidden;
-}
-
-.helpmode_box {
- border-radius: 0px !important;
- -moz-box-shadow: 0 0 5px 3px #f3c800;
- -webkit-box-shadow: 0 0 8px 5px #f3c800;
- box-shadow: 0 0 8px 5px #f3c800;
-}
-
-.helpmode_blur_text { /* deep blur*/
- border: none !important;
- background: none !important;
- color: transparent !important;
- text-shadow: 0 0 6px #fff;
-}
-
-.helpmode_blur_text_light { /* light blur*/
- color: transparent !important;
- text-shadow: 0 0 3px #fff;
-}
-
-.helpmode_blur_black_text
-{
- color: transparent !important;
- text-shadow: 0 0 3px #000 !important;
-}
-
-.helpmode_divider {
- background-color: #E8C803;
- position: absolute;
- z-index: 2002;
-}
-
-.hidden_display{
- display: none !important ;
-}
-
-.visible_display{
- display: block !important;
+.visible_display {
+ display: block !important;
}
/*STATUS BAR*/
-
.status_bar {
- z-index: 2001;
- line-height: 50px;
+ z-index: 2001;
+ line-height: 50px;
}
.selected {
- display: none;
+ display: none;
}
/*BOTTOM Control BUTTONS*/
-
#app_bottom_controlls {
- z-index: 11000;
- bottom: 0px;
- left: 275px;
- width: 252px;
- height: 59px;
- /*background: url(../images/common/bottom_cont_bg.png) no-repeat;*/
- overflow: hidden;
- pointer-events: none;
+ z-index: 11000;
+ bottom: 0px;
+ left: 275px;
+ width: 252px;
+ height: 59px;
+ /*background: url(../images/common/bottom_cont_bg.png) no-repeat;*/
+ overflow: hidden;
+ pointer-events: none;
}
#home_active {
- z-index: 2002;
- bottom: 0px;
- left: 275px;
- width: 250px;
- height: 58px;
- background: url("../../images/common/home_active.png") no-repeat;
+ z-index: 2002;
+ bottom: 0px;
+ left: 275px;
+ width: 250px;
+ height: 58px;
+ background: url("../../images/common/home_active.png") no-repeat;
}
#home_but {
- height: 59px;
- width: 73px;
- cursor: pointer;
- z-index: 1000;
- background: url(../images/home/bottom_controlls_full.png) no-repeat;
- background-position: -90px -59px;
- position: relative;
- float: left;
- pointer-events: none;
+ height: 59px;
+ width: 73px;
+ cursor: pointer;
+ z-index: 1000;
+ background: url(../images/home/bottom_controlls_full.png) no-repeat;
+ background-position: -90px -59px;
+ position: relative;
+ float: left;
+ pointer-events: none;
}
#home_but.large {
- width: 126px;
- background-position: 0px -177px;
+ width: 126px;
+ background-position: 0px -177px;
}
#home_but.large.selected {
- width: 126px;
- background-position: 0px -118px;
+ width: 126px;
+ background-position: 0px -118px;
}
#home_but.selected {
- background-position: -90px 0px;
- display: block;
+ background-position: -90px 0px;
+ display: block;
}
#home_but_click {
- height: 59px;
- width: 73px;
- cursor: pointer;
- z-index: 1001;
- position: absolute;
- pointer-events: all;
-
+ height: 59px;
+ width: 73px;
+ cursor: pointer;
+ z-index: 1001;
+ position: absolute;
+ pointer-events: all;
}
#home_but_click.large {
- width: 125px;
- height: 115px;
- -webkit-transform: skew(0deg, -42deg);
+ width: 125px;
+ height: 115px;
+ -webkit-transform: skew(0deg, -42deg);
}
/*INFO BUTTON*/
-
#info_but_click {
- height: 117px;
- width: 88px;
- cursor: pointer;
- z-index: 1001;
- position: absolute;
- pointer-events: all;
- -webkit-transform: skew(0deg, -52deg);
+ height: 117px;
+ width: 88px;
+ cursor: pointer;
+ z-index: 1001;
+ position: absolute;
+ pointer-events: all;
+ -webkit-transform: skew(0deg, -52deg);
}
#info_but {
- height: 59px;
- width: 90px;
- cursor: pointer;
- background: url(../images/home/bottom_controlls_full.png) no-repeat;
- background-position: 0px -59px;
- position: relative;
- float: left;
- z-index: 1001;
- pointer-events: none;
- -webkit-border-top-left-radius: 10px;
+ height: 59px;
+ width: 90px;
+ cursor: pointer;
+ background: url(../images/home/bottom_controlls_full.png) no-repeat;
+ background-position: 0px -59px;
+ position: relative;
+ float: left;
+ z-index: 1001;
+ pointer-events: none;
+ -webkit-border-top-left-radius: 10px;
}
#info_but.selected {
- background-position: 0px 0px;
- display: block;
+ background-position: 0px 0px;
+ display: block;
}
/*SETTINGS BUTTON*/
-
#setting_but {
- width: 89px;
- height: 59px;
- cursor: pointer;
- background: url(../images/home/bottom_controlls_full.png) no-repeat;
- background-position: -162px -59px;
- position: relative;
- float: left;
- pointer-events: none;
+ width: 89px;
+ height: 59px;
+ cursor: pointer;
+ background: url(../images/home/bottom_controlls_full.png) no-repeat;
+ background-position: -162px -59px;
+ position: relative;
+ float: left;
+ pointer-events: none;
}
#setting_but.large {
- width: 126px;
- background-position: -126px -177px;
+ width: 126px;
+ background-position: -126px -177px;
}
#setting_but.large.selected {
- width: 126px;
- background-position: -126px -118px;
+ width: 126px;
+ background-position: -126px -118px;
}
#setting_but.selected {
- background-position: -162px 0px;
- display: block;
+ background-position: -162px 0px;
+ display: block;
}
#setting_but_click {
- width: 83px;
- height: 110px;
- cursor: pointer;
- position: absolute;
- -webkit-transform: skew(0deg, 52deg);
- left: 1px;
- top: 4px;
- z-index: 1000;
- pointer-events: all;
+ width: 83px;
+ height: 110px;
+ cursor: pointer;
+ position: absolute;
+ -webkit-transform: skew(0deg, 52deg);
+ left: 1px;
+ top: 4px;
+ z-index: 1000;
+ pointer-events: all;
}
#setting_but_click.large {
- width: 158px;
- height: 155px;
+ width: 158px;
+ height: 155px;
}
/*HIDDEN FOR CONTENT BLOCKS*/
-
.hidden {
- -webkit-transform: translateX(-2000px);
- -moz-transform: translateX(-2000px);
+ -webkit-transform: translateX(-2000px);
+ -moz-transform: translateX(-2000px);
}
/*ACTIVE VISIBLE FOR CONTENT BLOCK*/
-
.inactive_state {
- -webkit-transform: translateX(-2000px);
- -moz-transform: translateX(-2000px);
+ -webkit-transform: translateX(-2000px);
+ -moz-transform: translateX(-2000px);
}
.active_state {
- -webkit-transform: translateX(0px) !important;
- -moz-transform: translateX(0px) !important;
+ -webkit-transform: translateX(0px) !important;
+ -moz-transform: translateX(0px) !important;
}
.passive_button_color {
- color: #999 !important;
+ color: #999 !important;
}
/*MEDIA BLOCK CONTAINER*/
-
-
#media {
- width: 800px;
- height: 480px;
- background: url(../images/media/bg.png) no-repeat;
+ width: 800px;
+ height: 480px;
+ background: url(../images/media/bg.png) no-repeat;
}
-
/****************************** FOR MEDIA VIEW************************************************/
-
/*#media, #browseUsbHD {
- background: url(../images/media/bg.png) no-repeat;
+background: url(../images/media/bg.png) no-repeat;
}
#media_view {
- width: 800px;
- height: 480px;
+width: 800px;
+height: 480px;
}
#media_view #cntrlMenu {
- position: relative;
- margin-top: 90px;
+position: relative;
+margin-top: 90px;
}*/
-
/*Video Player*/
/*******Player Controlls View********/
-
-
#video_player_view {
- top: 85px;
- left: 93px;
- z-index: 2002;
- display: block;
+ top: 85px;
+ left: 93px;
+ z-index: 2002;
+ display: block;
}
/*Holder for all progressbar elements*/
-
#video_player_view .progressline_holder {
- display: block;
- width: 537px;
- height: 10px;
- cursor: pointer;
- background: url(../images/player/player_prog_bg.png) no-repeat;
+ display: block;
+ width: 537px;
+ height: 10px;
+ cursor: pointer;
+ background: url(../images/player/player_prog_bg.png) no-repeat;
}
/*Style to fix actual width for progress bar concerning width of progrees bar mark*/
-
.progressline_width_fix {
- width: 537px;
- position: absolute;
+ width: 537px;
+ position: absolute;
}
/*Progressbar*/
-
#video_player_view .progressbar {
- display: block;
- height: 10px;
- background: url(../images/player/prog_ind.png) no-repeat;
- position: relative;
- float: left;
+ display: block;
+ height: 10px;
+ background: url(../images/player/prog_ind.png) no-repeat;
+ position: relative;
+ float: left;
}
/*Current time*/
-
.current_time {
- width: 33px;
- height: 15px;
- top: -4px;
- left: -55px;
- font-weight: bold;
+ width: 33px;
+ height: 15px;
+ top: -4px;
+ left: -55px;
+ font-weight: bold;
}
/*Total time*/
-
.total_time {
- width: 33px;
- height: 15px;
- left: 546px;
- top: -4px;
- font-weight: bold;
+ width: 33px;
+ height: 15px;
+ left: 546px;
+ top: -4px;
+ font-weight: bold;
}
/*Drag Area*/
-
.drag_area {
- width: 561px;
- position: relative;
- float: left;
- height: 10px;
+ width: 561px;
+ position: relative;
+ float: left;
+ height: 10px;
}
/*Progress bar mark*/
-
#mark {
- position: relative;
- float: left;
- bottom: 19px;
- left: -20px;
- background:url(../images/player/player_free_control.png) no-repeat;
- width:50px;
- height:50px;
+ position: relative;
+ float: left;
+ bottom: 19px;
+ left: -20px;
+ background: url(../images/player/player_free_control.png) no-repeat;
+ width: 50px;
+ height: 50px;
}
-#mark.active{
- background:url(../images/player/player_active_control.png) no-repeat !important;
- bottom:20px !important;
- left:-21px !important;
- width:52px !important;
- height:52px !important;
+#mark.active {
+ background: url(../images/player/player_active_control.png) no-repeat !important;
+ bottom: 20px !important;
+ left: -21px !important;
+ width: 52px !important;
+ height: 52px !important;
}
/*Back Button*/
-
#back {
- width: 80px;
- height: 50px;
- cursor: pointer;
- top: 60px;
- left: 140px;
- border:1px solid #393939;
+ width: 80px;
+ height: 50px;
+ cursor: pointer;
+ top: 60px;
+ left: 140px;
+ border: 1px solid #393939;
}
#back .ico {
- top: 13px;
- left: 20px;
- position: relative;
+ top: 13px;
+ left: 20px;
+ position: relative;
}
/* Forward Button*/
-
#frw {
- width: 79px;
- height: 49px;
- cursor: pointer;
- top: 60px;
- left: 347px;
- border:1px solid #393939;
- -webkit-border-radius:3px;
-}
+ width: 79px;
+ height: 49px;
+ cursor: pointer;
+ top: 60px;
+ left: 347px;
+
+]
+border:
+
+1
+px solid #393939
+
+;
+-webkit-border-radius:
+
+3
+px
+
+;
+ }
#frw .ico {
- top: 13px;
- left: 24px;
- position: relative;
+ top: 13px;
+ left: 24px;
+ position: relative;
}
/*Play Button*/
-
#play {
- width: 79px;
- height: 49px;
- cursor: pointer;
- top: 60px;
- left: 244px;
- border:1px solid #393939;
- -webkit-border-radius:3px;
+ width: 79px;
+ height: 49px;
+ cursor: pointer;
+ top: 60px;
+ left: 244px;
+ border: 1px solid #393939;
+ -webkit-border-radius: 3px;
}
-
#play .play {
- top: 13px;
- left: 31px;
- position: relative;
+ top: 13px;
+ left: 31px;
+ position: relative;
}
#play .pause {
- top: 10px;
- left: 28px;
- position: relative;
+ top: 10px;
+ left: 28px;
+ position: relative;
}
/*Stop Button*/
-
#stop {
- width: 79px;
- height: 49px;
- cursor: pointer;
- top: -18px;
- left: 585px;
- border:1px solid #393939;
- -webkit-border-radius:3px;
+ width: 79px;
+ height: 49px;
+ cursor: pointer;
+ top: -18px;
+ left: 585px;
+ border: 1px solid #393939;
+ -webkit-border-radius: 3px;
}
#stop .ico {
- top: 17px;
- left: 18px;
- position: relative;
+ top: 17px;
+ left: 18px;
+ position: relative;
}
/********************FOR TEST PURPOSE ONLY********************/
-
.centered {
- position: absolute;
- width: 300px;
- height: 200px;
- border: 2px solid #999;
- color: white;
- text-align: center;
- margin: 100px auto;
- line-height: 190px;
- font-size: 24px;
- left: 240px;
+ position: absolute;
+ width: 300px;
+ height: 200px;
+ border: 2px solid #999;
+ color: white;
+ text-align: center;
+ margin: 100px auto;
+ line-height: 190px;
+ font-size: 24px;
+ left: 240px;
}
/**************************FOR LIST***************************/
-
/* List */
.list {
- position: relative;
- overflow: hidden;
+ position: relative;
+ overflow: hidden;
}
.list-content {
- border-top: 1px solid #393939;
- border-left: 1px solid #393939;
- border-right: 1px solid #393939;
+ border-top: 1px solid #393939;
+ border-left: 1px solid #393939;
+ border-right: 1px solid #393939;
}
/* List item */
.list-item {
- position: relative;
- width: 100%;
- height: 49px;
- font-size: 20px;
- line-height: 50px;
- border-bottom: 1px solid #393939;
+ position: relative;
+ width: 100%;
+ height: 49px;
+ font-size: 20px;
+ line-height: 50px;
+ border-bottom: 1px solid #393939;
+}
+
+.list-item .ico {
+ height: 49px;
+ float: left;
+}
+
+.list-item span {
+ /*position: absolute*/
}
/* List item background */
.list-item.notpressed {
- background-image: url(../images/list/list_item_bg.png);
+ background-image: url(../images/list/list_item_bg.png);
}
-.list-item .highLighted{
+.list-item .highLighted {
}
/*************************FOR SCROLLBAR*************************/
/*
.scrollBar{
- position: relative;
- width: 48px;
- background: black;
- border: 1px solid #393939;
- border-top-right-radius: 1px;
- border-top-left-radius: 1px;
- border-bottom-right-radius: 1px;
- border-bottom-left-radius: 1px;
- float: right;
+ position: relative;
+ width: 48px;
+ background: black;
+ border: 1px solid #393939;
+ border-top-right-radius: 1px;
+ border-top-left-radius: 1px;
+ border-bottom-right-radius: 1px;
+ border-bottom-left-radius: 1px;
+ float: right;
}
*/
-
.scrollbar {
- position: absolute;
- top: 0px;
- right: 0px;
- width: 48px;
- background: black;
- border: 1px solid #393939;
- border-top-right-radius: 2px;
- border-top-left-radius: 2px;
- border-bottom-right-radius: 2px;
- border-bottom-left-radius: 2px;
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ width: 48px;
+ background: black;
+ border: 1px solid #393939;
+ border-top-right-radius: 2px;
+ border-top-left-radius: 2px;
+ border-bottom-right-radius: 2px;
+ border-bottom-left-radius: 2px;
}
.sb-content {
- width: 48px;
- background: black;
- border: 1px solid #393939;
- border-top-right-radius: 2px;
- border-top-left-radius: 2px;
- border-bottom-right-radius: 2px;
- border-bottom-left-radius: 2px;
+ width: 48px;
+ background: black;
+ border: 1px solid #393939;
+ border-top-right-radius: 2px;
+ border-top-left-radius: 2px;
+ border-bottom-right-radius: 2px;
+ border-bottom-left-radius: 2px;
}
/* Top button */
-
.sb-top {
- height: 48px;
- width: 48px;
- border-bottom: #393939 1px solid;
- position: relative;
- cursor: pointer;
+ height: 48px;
+ width: 48px;
+ border-bottom: #393939 1px solid;
+ position: relative;
+ cursor: pointer;
}
/* Background of scrollbar */
-
.sb-body {
- height: 148px;
- width: 46px;
- background-color: #262626;
- margin: 1px;
- position: relative;
+ height: 148px;
+ width: 46px;
+ background-color: #262626;
+ margin: 1px;
+ position: relative;
}
/* Bar */
-
.sb-bar {
- width: 46px;
- height: 146px;
- background: #464646;
- position: relative;
- bottom: 10px;
- -webkit-transition: top 0.2s ease-out;
+ width: 46px;
+ height: 146px;
+ background: #464646;
+ position: relative;
+ bottom: 10px;
+ -webkit-transition: top 0.2s ease-out;
}
/* Bottom button */
-
.sb-bottom {
- height: 48px;
- width: 48px;
- border-top: #393939 1px solid;
- position: absolute;
- cursor: pointer;
- bottom: 0px;
+ height: 48px;
+ width: 48px;
+ border-top: #393939 1px solid;
+ position: absolute;
+ cursor: pointer;
+ bottom: 0px;
}
/* Buttons image position */
-
-
.sb-bottom img, .sb-top img {
- margin-top: 13px;
- margin-left: 13px;
+ margin-top: 13px;
+ margin-left: 13px;
}
/* List item button background */
-
.list-item.pressed {
- background-image: url(../images/list/list_item_pressed.png);
+ background-image: url(../images/list/list_item_pressed.png);
}
/** Background for pressed button */
-
.button.pressed {
- background-image: url(../images/list/list_item_pressed.png);
+ background-image: url(../images/list/list_item_pressed.png);
}
/* Hide function */
-
.is-disabled {
- display: none;
+ display: none;
}
.hide {
- visibility: hidden;
+ visibility: hidden;
}
/* Disabled list items */
-
.disabled {
- color: #999;
+ color: #999;
}
-.disabled .ico,
-.disabled .right_ico {
- opacity: .3;
+.disabled .ico, .disabled .right_ico {
+ opacity: .3;
}
.disabled .arrow-ico {
- opacity: .3;
-}
-
-/* HELP SIGN */
-
-.help_dev {
- width: 4px;
- height: 53px;
- background: url(../images/help/help_devider.png) no-repeat;
- left: 159px;
- pointer-events: none;
-}
-
-#help {
- width: 84px;
- height: 53px;
- left: 163px;
- cursor: pointer;
- z-index: 5000;
- overflow: hidden;
- pointer-events: none;
- background: none;
-}
-
-#help.disabled {
- opacity: .3;
-}
-
-#help-p {
- width: 93px;
- height: 53px;
- cursor: pointer;
- z-index: 5000;
- -webkit-transform: skewX(-43deg);
- pointer-events: all;
- left: -27px;
-}
-
-#help.pressed {
- background: url(../images/help/help_pressed.png) no-repeat;
+ opacity: .3;
}
#sing {
- width: 19px;
- height: 27px;
- left: 13px;
- top: 13px;
+ width: 19px;
+ height: 27px;
+ left: 13px;
+ top: 13px;
}
#sing.white {
- background: url(../images/help/white_help.png) no-repeat;
+ background: url(../images/help/white_help.png) no-repeat;
}
#sing.yellow {
- background: url(../images/help/yellow_help.png) no-repeat;
-}
-
-#help .inact {
- position: absolute;
- left: 42px;
- top: 13px;
- width: 6px;
- height: 21px;
- background: url(../images/climate/ind_vert_def.png) no-repeat;
-}
-
-#help .act {
- position: absolute;
- left: 35px;
- top: 8px;
- background: url(../images/climate/ind_vert_active.png) no-repeat;
- width: 19px;
- height: 32px;
+ background: url(../images/help/yellow_help.png) no-repeat;
}
/******************** FOR FAQ ********************************/
-
#faq_btn {
- cursor: pointer;
- width: 145px;
- height: 53px;
- background: url(../images/help/faq_top_btn.png) no-repeat;
- top: 0;
- left: 110px;
- z-index: 0;
- pointer-events: none;
- -webkit-transition: left 0.5s ease-in-out;
+ cursor: pointer;
+ width: 145px;
+ height: 53px;
+ background: url(../images/help/faq_top_btn.png) no-repeat;
+ top: 0;
+ left: 110px;
+ z-index: 0;
+ pointer-events: none;
+ -webkit-transition: left 0.5s ease-in-out;
}
.faq-pressed {
- left: 0px !important;
+ left: 0px !important;
}
#faq_btn.pressed {
- background: url(../images/help/faq_top_btn_pressed.png) no-repeat !important;
+ background: url(../images/help/faq_top_btn_pressed.png) no-repeat !important;
}
#faq_btn .ico {
- position: absolute;
- right: 32px;
- top: 8px;
+ position: absolute;
+ right: 32px;
+ top: 8px;
}
#faq_btn_c {
- width: 118px;
- height: 50px;
- -webkit-transform: skewX(-43deg);
- z-index: 1;
- cursor: pointer;
- pointer-events: all;
+ width: 118px;
+ height: 50px;
+ -webkit-transform: skewX(-43deg);
+ z-index: 1;
+ cursor: pointer;
+ pointer-events: all;
}
#faq_btn .ind_inact {
- background: url(../images/help/ind_vert_def.png) no-repeat;
- position: absolute;
- right: 32px;
- top: 8px;
- width: 19px;
- height: 32px;
+ background: url(../images/help/ind_vert_def.png) no-repeat;
+ position: absolute;
+ right: 32px;
+ top: 8px;
+ width: 19px;
+ height: 32px;
}
#faq_btn .ind_act {
- background: url(../images/help/ind_vert_active.png) no-repeat;
- position: absolute;
- right: 32px;
- top: 8px;
- width: 19px;
- height: 32px;
+ background: url(../images/help/ind_vert_active.png) no-repeat;
+ position: absolute;
+ right: 32px;
+ top: 8px;
+ width: 19px;
+ height: 32px;
}
.button {
- background-image: url(../images/list/list_item_bg.png);
- cursor: pointer;
+ background-image: url(../images/list/list_item_bg.png);
+ cursor: pointer;
}
-.button img{
- float: left;
+.button img {
+ float: left;
}
/* default style */
-
* {
- margin: 0;
- padding: 0;
- border: 0;
- -webkit-user-select: none;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ -webkit-user-select: none;
}
/******************* For FAQ View *******************/
#fag_view {
- font-size: 20px;
- display: block;
- background: url(../images/help/faq_bg.png) no-repeat;
- width: 800px;
- height: 384px;
- position: absolute;
- top: 48px;
+ font-size: 20px;
+ display: block;
+ background: url(../images/help/faq_bg.png) no-repeat;
+ width: 800px;
+ height: 384px;
+ position: absolute;
+ top: 48px;
}
#faq_view_list {
- position: relative;
- margin-left: 115px;
- margin-top: 34px;
- height: 251px;
- width: 630px;
- float: left;
+ position: relative;
+ margin-left: 115px;
+ margin-top: 34px;
+ height: 251px;
+ width: 630px;
+ float: left;
}
#faq_view_list .list-content {
- width: 570px;
+ width: 570px;
}
#fag_view .list-item {
- position: relative;
- width: 570px;
- height: 49px;
- font-size: 20px;
- line-height: 50px;
- border-bottom: 1px solid #393939;
- cursor: pointer;
- float: left;
+ position: relative;
+ width: 570px;
+ height: 49px;
+ font-size: 20px;
+ line-height: 50px;
+ border-bottom: 1px solid #393939;
+ cursor: pointer;
+ float: left;
}
-#fag_view .list-item span{
- left: 5px;
- margin-top: 18px;
- margin-left: 17px;
+#fag_view .list-item span {
+ left: 5px;
+ margin-top: 18px;
+ margin-left: 17px;
}
/* Faq bottom text*/
#faq_bottom {
- bottom: 19px;
- width: 764px;
- height: 50px;
- font-size: 18px;
- float: left;
- margin-top: 31px;
- margin-left: 36px;
+ bottom: 19px;
+ width: 764px;
+ height: 50px;
+ font-size: 18px;
+ float: left;
+ margin-top: 31px;
+ margin-left: 36px;
}
-#faq_bottom div{
- float: left;
- width: 764px;
+#faq_bottom div {
+ float: left;
+ width: 764px;
}
-#faq_bottom .second-line{
- top: 22px;
+#faq_bottom .second-line {
+ top: 22px;
}
+
#settings_view {
- width: 800px;
- height: 480px;
+ width: 800px;
+ height: 480px;
}
.block {
- display: block !important;
+ display: block !important;
}
.test_blur {
- width: 800px;
- height: 480px;
- top: -55px;
- z-index: 1001;
- opacity: .6;
- background-color: black;
- box-shadow: 3px;
+ width: 800px;
+ height: 480px;
+ top: -55px;
+ z-index: 1001;
+ opacity: .6;
+ background-color: black;
+ box-shadow: 3px;
}
.pointer {
- cursor: pointer !important;
+ cursor: pointer !important;
}
/*CAUTION MESSAGE*/
-#warning_view{width: 800px;height: 480px;z-index: 12001;
-background-image: -webkit-gradient(
- linear,
- left bottom,
- left top,
- color-stop(0, rgb(218,218,218)),
- color-stop(0.3, rgb(0,0,0))
-);}
+#warning_view {
+ width: 800px;
+ height: 480px;
+ z-index: 12001;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, rgb(218, 218, 218)), color-stop(0.3, rgb(0, 0, 0)));
+}
-#warning_view.fr .text{
- font-size: 23px;
+#warning_view.fr .text {
+ font-size: 23px;
}
-#warning_view .message{ width:744px; height:340px; position:relative; margin:0 auto; top:15px;}
-#warning_view .warning_text{ position: relative;margin: 0 auto;width: 216px;font-size: 42px;font-weight: bold;top: 20px; text-shadow: 1px 1px 3px white; color: #CC2A2A;}
-#warning_view .text{ font-size:25px; position:relative; top:15px; font-weight:bold;}
-#warning_view .okbut{width: 130px;height: 51px;position: relative;top: 30px;cursor: pointer;float:right; margin-right:83px; display:none; font-size: 20px;
-text-align: center;
-line-height: 50px;}
+#warning_view .message {
+ width: 744px;
+ height: 340px;
+ position: relative;
+ margin: 0 auto;
+ top: 15px;
+}
-.hideWarning{
- width: 0px !important;
- overflow: hidden;
- z-index:-1 !important;
+#warning_view .warning_text {
+ position: relative;
+ margin: 0 auto;
+ width: 216px;
+ font-size: 42px;
+ font-weight: bold;
+ top: 20px;
+ text-shadow: 1px 1px 3px white;
+ color: #CC2A2A;
+}
+#warning_view .text {
+ font-size: 25px;
+ position: relative;
+ top: 15px;
+ font-weight: bold;
}
+#warning_view .okbut {
+ width: 130px;
+ height: 51px;
+ position: relative;
+ top: 30px;
+ cursor: pointer;
+ float: right;
+ margin-right: 83px;
+ display: none;
+ font-size: 20px;
+ text-align: center;
+ line-height: 50px;
+}
-.fadeWarning {
- opacity: 0;
- transition:opacity 1s;
- -moz-transition:opacity 1s;
- -webkit-transition:opacity 1s;
- -o-transition:opacity 1s;
+.hideWarning {
+ width: 0px !important;
+ overflow: hidden;
+ z-index: -1 !important;
}
-#warning_view.fadeAnimation{
-
- -webkit-animation-name: opacity;
- -webkit-animation-duration:1s;
- -webkit-animation-timing-function:linear;
- -webkit-animation-fill-mode:forwards;
+.fadeWarning {
+ opacity: 0;
+ transition: opacity 1s;
+ -moz-transition: opacity 1s;
+ -webkit-transition: opacity 1s;
+ -o-transition: opacity 1s;
}
-@-webkit-keyframes opacity {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- }
+#warning_view.fadeAnimation {
+ -webkit-animation-name: opacity;
+ -webkit-animation-duration: 1s;
+ -webkit-animation-timing-function: linear;
+ -webkit-animation-fill-mode: forwards;
}
-/* Welcome Orientation View*/
+@
+-webkit-keyframes opacity {
+from {
+ opacity: 1;
-#app_welcome_orientation_view{
- width:800px;
- height:480px;
- z-index:12000;
}
-#app_welcome_orientation_balck_mask_view {
- width:800px;
- height:480px;
- background:#000;
- opacity:0.75;
+to {
+ opacity: 0;
}
+ }
-#app_welcome_orientation_popup_text{
- position: relative;
- margin: 0px auto;
- font-size: 30px;
- text-align: center;
- width: 410px;
- margin-top:18px;
+/* Welcome Orientation View*/
+#app_welcome_orientation_view {
+ width: 800px;
+ height: 480px;
+ z-index: 12000;
}
-#app_welcome_orientation_denypopup_text{
- position: relative;
- margin: 0px auto;
- font-size: 28px;
- text-align: center;
- width: 460px;
- margin-top: 53px;
+#app_welcome_orientation_balck_mask_view {
+ width: 800px;
+ height: 480px;
+ background: #000;
+ opacity: 0.75;
+}
+
+#app_welcome_orientation_popup_text {
+ position: relative;
+ margin: 0px auto;
+ font-size: 30px;
+ text-align: center;
+ width: 410px;
+ margin-top: 18px;
+}
+
+#app_welcome_orientation_denypopup_text {
+ position: relative;
+ margin: 0px auto;
+ font-size: 28px;
+ text-align: center;
+ width: 460px;
+ margin-top: 53px;
+}
+
+#app_welcome_orientation_popup_buttons {
+ width: 266px;
+ height: 53px;
+ border: 1px solid #333;
+ position: relative;
+ margin: 20px auto 0px;
+}
+
+#app_welcome_orientation_popup_lable {
+ position: relative;
+ width: 479px;
+ height: 70px;
+ border: 1px solid #fff;
+ text-align: center;
+ margin: 0px auto;
+ margin-top: 70px;
+ font-size: 25px;
+ font-family: Helvetica;
}
-#app_welcome_orientation_popup_buttons{
- width: 266px;
- height: 53px;
- border: 1px solid #333;
- position: relative;
- margin: 20px auto 0px;
+#app_welcome_orientation_popup_lable span {
+ position: relative;
+ top: 5px;
+ width: 432px;
}
-#app_welcome_orientation_popup_lable{
- position: relative;
- width: 479px;
- height: 70px;
- border:1px solid #fff;
- text-align: center;
- margin: 0px auto;
- margin-top:70px;
- font-size:25px;
- font-family:Helvetica;
+#app_welcome_orientation_popup_view, #wo_denypopup {
+ width: 546px;
+ height: 346px;
+ background: #000;
+ z-index: 12002;
+ left: 134px;
+ top: 46px;
+ border: 2px solid #A28542;
+ -webkit-border-radius: 4px;
}
-#app_welcome_orientation_popup_lable span {
- position:relative;
- top: 5px;
- width: 432px;
-}
-
-#app_welcome_orientation_popup_view, #wo_denypopup{
- width: 546px;
- height: 346px;
- background: #000;
- z-index: 12002;
- left: 134px;
- top: 46px;
- border: 2px solid #A28542;
- -webkit-border-radius: 4px;
-}
-
-#wo_popup_btn_divider{
- width: 4px;
- height: 48px;
- background: url(../images/common/divider.png) no-repeat;
- left: 131px;
- z-index: 1;
+#wo_popup_btn_divider {
+ width: 4px;
+ height: 48px;
+ background: url(../images/common/divider.png) no-repeat;
+ left: 131px;
+ z-index: 1;
}
-#wo_popup_yes_button , #wo_popup_no_button{height: 52px;
- width:132px;
- cursor: pointer;
- position: relative;
- float: left;
- font-size: 20px;
- text-align: center;
- line-height: 52px;
+#wo_popup_yes_button, #wo_popup_no_button {
+ height: 52px;
+ width: 132px;
+ cursor: pointer;
+ position: relative;
+ float: left;
+ font-size: 20px;
+ text-align: center;
+ line-height: 52px;
}
#wo_popup_yes_button {
- border-right:1px solid #000;
+ border-right: 1px solid #000;
}
#wo_popup_no_button {
- border-left:1px solid #393939;
+ border-left: 1px solid #393939;
}
-#wo_popup_denypopup_ok_button{
- width: 238px;
- height:48px;
- background: url(../images/common/bt_bg.png) repeat-x;
- cursor: pointer;
- position: relative;
- float: left;
- font-size: 20px;
- font-weight: bold;
- text-align: center;
- line-height: 50px;
- border:1px solid #333;
- left: 155px;
- top: 80px;
- -webkit-border-radius: 4px;
+#wo_popup_denypopup_ok_button {
+ width: 238px;
+ height: 48px;
+ background: url(../images/common/bt_bg.png) repeat-x;
+ cursor: pointer;
+ position: relative;
+ float: left;
+ font-size: 20px;
+ font-weight: bold;
+ text-align: center;
+ line-height: 50px;
+ border: 1px solid #333;
+ left: 155px;
+ top: 80px;
+ -webkit-border-radius: 4px;
}
-#woSkippButton{
- width: 80px;
- height: 50px;
- cursor: pointer;
- top: 370px;
- left: 710px;
- font-size: 21px;
- text-align: center;
- line-height: 48px;
- z-index: 10000;
- border: 1px solid white;
- -webkit-border-radius: 3px;
- background:url(../images/common/skippbuttonbg_pressed.png) no-repeat;
- opacity:0.75;
- display:none;
+#woSkippButton {
+ width: 80px;
+ height: 50px;
+ cursor: pointer;
+ top: 370px;
+ left: 710px;
+ font-size: 21px;
+ text-align: center;
+ line-height: 48px;
+ z-index: 10000;
+ border: 1px solid white;
+ -webkit-border-radius: 3px;
+ background: url(../images/common/skippbuttonbg_pressed.png) no-repeat;
+ opacity: 0.75;
+ display: none;
}
-
-#woSkippButton .right_text{
- margin-top:2px;
+#woSkippButton .right_text {
+ margin-top: 2px;
}
-#woSkippButton.pressed{
- background:url(../images/common/skippbuttonbg_pressed.png) no-repeat !important;
+#woSkippButton.pressed {
+ background: url(../images/common/skippbuttonbg_pressed.png) no-repeat !important;
}
-
-#wo_popup_yes_button.pressed , #wo_popup_no_button.pressed, #wo_popup_denypopup_ok_button.pressed {
- background:url(../images/common/bt_bg_pressed.png) repeat-x !important;
+#wo_popup_yes_button.pressed, #wo_popup_no_button.pressed, #wo_popup_denypopup_ok_button.pressed {
+ background: url(../images/common/bt_bg_pressed.png) repeat-x !important;
}
-/* END Welcome Orientation View*/
-
+/* END Welcome Orientation View*/
/* Video Error Popup*/
-
-#video_error_popup{
- background: black;
- border: 1px solid #A03333;
- -webkit-border-radius: 3px;
- font-size: 23px;
- font-weight: bold;
- left: 308px;
- text-align: center;
- top: 170px;
- z-index: 12100;
- position: absolute;
- padding: 10px;
- display:none;
+#video_error_popup {
+ background: black;
+ border: 1px solid #A03333;
+ -webkit-border-radius: 3px;
+ font-size: 23px;
+ font-weight: bold;
+ left: 308px;
+ text-align: center;
+ top: 170px;
+ z-index: 12100;
+ position: absolute;
+ padding: 10px;
+ display: none;
}
.mft_indicator {
- opacity: 0;
+ opacity: 0;
}
/* Lable plus Button*/
.lablePlusButton .button {
- float: right;
- right: 0px;
- width: 323px;
- height: 49px;
- border-left: 1px solid #393939;
+ float: right;
+ right: 0px;
+ width: 323px;
+ height: 49px;
+ border-left: 1px solid #393939;
}
-.lablePlusButton .lable span,
-.lablePlusButton .button span {
- margin-left: 13px;
+.lablePlusButton .lable span, .lablePlusButton .button span {
+ margin-left: 13px;
}
.lablePlusButton .button.single {
- width: 148px;
- height: 28px;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 10px;
- margin-right: 10px;
- text-align: center;
- line-height: 28px;
- float: right;
+ width: 148px;
+ height: 28px;
+ border: 1px solid #393939;
+ border-radius: 2px;
+ margin-top: 10px;
+ margin-right: 10px;
+ text-align: center;
+ line-height: 28px;
+ float: right;
}
-.lablePlusButton .button.single span{
- margin: 0px;
+.lablePlusButton .button.single span {
+ margin: 0px;
}
/* ****************Select System Popup *********************** */
-
-#select_sysytem_view{
- width: 796px;
- height: 475px;
- top:1px;
- border: 2px solid #926100;
- background:#000;
- z-index:12002;
- -webkit-border-radius: 4px;
+#select_sysytem_view {
+ width: 796px;
+ height: 475px;
+ top: 1px;
+ border: 2px solid #926100;
+ background: #000;
+ z-index: 12002;
+ -webkit-border-radius: 4px;
}
/* header lable*/
-#select_system_heading_lable{
- position:relative;
- font-size:30px;
- text-align:center;
- margin-top:25px;
- margin-bottom:30px;
+#select_system_heading_lable {
+ position: relative;
+ font-size: 30px;
+ text-align: center;
+ margin-top: 25px;
+ margin-bottom: 30px;
}
/* content container*/
#select_system_container {
- width:756px;
- height:200px;
- position:relative;
- margin: 0px auto;
- border: 1px solid #393939;
+ width: 756px;
+ height: 200px;
+ position: relative;
+ margin: 0px auto;
+ border: 1px solid #393939;
}
/* vehicle select list*/
-#settings_list{
- height: 130px;
- position:relative;
+#settings_list {
+ height: 130px;
+ position: relative;
}
/* vehicle select list container*/
-#select_system_list{
- width: 545px;
- position:relative;
- float:right;
- margin-top:15px;
- margin-right:20px;
+#select_system_list {
+ width: 545px;
+ position: relative;
+ float: right;
+ margin-top: 15px;
+ margin-right: 20px;
}
/* vehicle select list buttons*/
-#settings_list .button{
- position:relative;
- width:135px;
- height:48px;
- font-size:20px;
- text-align:center;
- line-height: 48px;
- float:left;
- border-right:1px solid #393939;
- border-top:1px solid #393939;
- border-bottom:1px solid #393939;
+#settings_list .button {
+ position: relative;
+ width: 135px;
+ height: 48px;
+ font-size: 20px;
+ text-align: center;
+ line-height: 48px;
+ float: left;
+ border-right: 1px solid #393939;
+ border-top: 1px solid #393939;
+ border-bottom: 1px solid #393939;
}
-#settings_list .button.left-border{
- border-left: 1px solid #393939;
+#settings_list .button.left-border {
+ border-left: 1px solid #393939;
}
-#settings_list .button.active{
- background: url(../images/settings/btn-48h-gray-active.png) repeat-x !important;
- color: #000;
+#settings_list .button.active {
+ background: url(../images/settings/btn-48h-gray-active.png) repeat-x !important;
+ color: #000;
}
-#settings_list .button.bottom{
- margin-top:2px;
+#settings_list .button.bottom {
+ margin-top: 2px;
}
+
/* select climate style lable*/
-#select_system_label{
- font-size: 20px;
- width:135px;
- position:relative;
- float:left;
- margin-left:10px;
- margin-top:15px;
+#select_system_label {
+ font-size: 20px;
+ width: 135px;
+ position: relative;
+ float: left;
+ margin-left: 10px;
+ margin-top: 15px;
}
-
/* Navigation select block*/
-#navsdcard{
- height: 70px;
- position:relative;
- border-bottom: 1px solid #393939;
-
+#navsdcard {
+ height: 70px;
+ position: relative;
+ border-bottom: 1px solid #393939;
}
+
/* Navigation select block button container*/
-#sdnav_buttons{
- position:relative;
- float:right;
- margin-top:10px;
- margin-right:20px;
+#sdnav_buttons {
+ position: relative;
+ float: right;
+ margin-top: 10px;
+ margin-right: 20px;
}
+
/* Navigation select block button*/
#navsdcard .button {
- width: 120px;
- height: 48px;
- border: 1px solid #393939;
- text-align: center;
- font-size: 20px;
- line-height: 48px;
- font-weight:bold;
+ width: 120px;
+ height: 48px;
+ border: 1px solid #393939;
+ text-align: center;
+ font-size: 20px;
+ line-height: 48px;
+ font-weight: bold;
}
-#navsdcard .button.active{
- background: url(../images/settings/btn-48h-gray-active.png) repeat-x !important;
- color: #000;
+#navsdcard .button.active {
+ background: url(../images/settings/btn-48h-gray-active.png) repeat-x !important;
+ color: #000;
}
-#navsdcard_no_btn{
- position:relative;
- float:right;
+#navsdcard_no_btn {
+ position: relative;
+ float: right;
}
-#navsdcard_yes_btn{
- position:relative;
- float:left;
+#navsdcard_yes_btn {
+ position: relative;
+ float: left;
}
-/* navigation select lable*/
-#sdnav_label{
- position:relative;
- float:left;
- font-size:20px;
- margin-top:15px;
- margin-left:10px;
+
+/* navigationApp select lable*/
+#sdnav_label {
+ position: relative;
+ float: left;
+ font-size: 20px;
+ margin-top: 15px;
+ margin-left: 10px;
}
/* Submit button*/
-#select_system_submit{
- width: 130px;
- height: 50px;
- z-index: 12002;
- position:relative;
- border: 1px solid #393939;
- text-align: center;
- font-size: 25px;
- font-weight: bold;
- line-height: 50px;
- margin: 50px auto;
+#select_system_submit {
+ width: 130px;
+ height: 50px;
+ z-index: 12002;
+ position: relative;
+ border: 1px solid #393939;
+ text-align: center;
+ font-size: 25px;
+ font-weight: bold;
+ line-height: 50px;
+ margin: 50px auto;
}
+
/* Info Lable*/
-#select_system_info{
- position:relative;
- text-align:center;
- font-size:25px;
- margin-top:25px;
+#select_system_info {
+ position: relative;
+ text-align: center;
+ font-size: 25px;
+ margin-top: 25px;
}
#select_system_info span {
- border:1px solid #fff;
- padding: 5px 15px 5px 15px;
+ border: 1px solid #fff;
+ padding: 5px 15px 5px 15px;
}
diff --git a/SDL_Core/src/components/HMI/css/help.css b/SDL_Core/src/components/HMI/css/help.css
deleted file mode 100755
index 5534b5b2d..000000000
--- a/SDL_Core/src/components/HMI/css/help.css
+++ /dev/null
@@ -1,83 +0,0 @@
-.helpmode .blured_background {
- visibility: visible !important;
-}
-
-.helpmode #phone .active_in_helpmode span {
- color: inherit;
- text-shadow: none;
-}
-
-.helpmode #phone span {
- color: transparent;
- text-shadow: 0 0 6px #fff;
- pointer-events:none;
- position: relative;
- z-index: 9000;
-}
-
-/* Disabled gray blur for buttons and lables*/
-.helpmode .disabled span {
- color: transparent;
- text-shadow: 0 0 6px #999 !important;
- pointer-events:none;
-}
-
-.helpmode .helpmode_box_shadow {
- border-radius: 0px !important;
- -moz-box-shadow: 0px 0px 6px 3px #f3c800;
- -webkit-box-shadow: 0 0 6px 3px #f3c800;
- box-shadow: 0px 0px 6px 3px #f3c800;
- border-color: #F3C800 !important;
-}
-
-.helpmode .helpmode_box_top_shadow {
- border-radius: 0px !important;
- -moz-box-shadow: 0px -2px 6px 3px #f3c800;
- -webkit-box-shadow: 0px -2px 6px 3px #f3c800;
- box-shadow: 0px -2px 6px 3px #F3C800;
- border-color: #F3C800 !important;
-}
-
-.helpmode .helpmode_box_bottom_shadow {
- border-radius: 0px !important;
- -moz-box-shadow: 0px 2px 6px 3px #f3c800;
- -webkit-box-shadow: 0px 2px 6px 3px #f3c800;
- box-shadow: 0px 2px 6px 3px #F3C800;
- border-color: #F3C800 !important;
-}
-
-.helpmode .helpmode_box_left_shadow {
- border-radius: 0px !important;
- -moz-box-shadow: -2px 0px 6px 3px #f3c800;
- -webkit-box-shadow: -2px 0px 6px 3px #f3c800;
- box-shadow: -2px 0px 6px 3px #F3C800;
- border-color: #F3C800 !important;
-}
-
-.helpmode .helpmode_box_right_shadow {
- border-radius: 0px !important;
- -moz-box-shadow: 2px 0px 6px 3px #f3c800;
- -webkit-box-shadow: 2px 0px 6px 3px #f3c800;
- box-shadow: 2px 0px 6px 3px #F3C800;
- border-color: #F3C800 !important;
-}
-
-.helpmode .helpmode_left_delim {
- border-left-color: #F3C800 !important;
-}
-
-.helpmode .helpmode_right_delim {
- border-right-color: #F3C800 !important;
-}
-
-.helpmode .helpmode_bottom_delim {
- border-bottom-color: #F3C800 !important;
-}
-
-.helpmode .helpmode_top_delim {
- border-top-color: #F3C800 !important;
-}
-
-.helpmode .faq_show {
- left: 182px !important;
-} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/css/home.css b/SDL_Core/src/components/HMI/css/home.css
deleted file mode 100755
index ad450626a..000000000
--- a/SDL_Core/src/components/HMI/css/home.css
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * Home screen CSS
- *
- * @category Style Sheets
- * @filesource css/home.css
- * @version 2.0
- */
-
-
-#home {
- background: url(../images/home/home_main_image.png) no-repeat;
- width: 800px;
- height: 369px;
- top: 56px;
-}
-
-#home.help {
- background: url(../images/home/home_screen_blur.png) no-repeat !important;
-}
-
-#home_topControls_temperature {
- position: absolute;
- top: 10px;
- left: 115px;
- font-size: 28px;
-}
-
-/* Widgets wrapers */
-
-#home_widgetPhone {
- position: absolute;
- width: 400px;
- height: 183px;
-}
-
-#widget_navigation {
- position: absolute;
- width: 400px;
- height: 183px;
- left: 400px;
-}
-
-#home_widgetMedia {
- position: absolute; width: 400px;
- height: 183px;
- top: 183px;
-}
-
-#home_widgetClimate {
- position: absolute;
- width: 400px;
- height: 183px;
- left: 400px;
- top: 183px
-}
-
-.helpmode .voiceButton{
- opacity: 0;
-} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/css/info.css b/SDL_Core/src/components/HMI/css/info.css
index b8cd7b0dd..34776e6cb 100755..100644
--- a/SDL_Core/src/components/HMI/css/info.css
+++ b/SDL_Core/src/components/HMI/css/info.css
@@ -1,903 +1,671 @@
-#status_info {
- top:0px;
- right:0px;
- text-align:right;
- font-size:21px;
- width:324px;
- height:48px;
- cursor:pointer;
- background:url(../images/common/nav-status-bg.png) no-repeat; z-index:1;
-}
-
-#status_info_label {
- width: 100%;
- display: block;
-}
-
-#status_info_label span {
- padding-right: 11px;
-}
-
-/******************* For Help-Mode *******************/
-#info_view.help-mode .list-item span{
- line-height: 54px;
- left: 1px;
-}
-
-#info_view {
- width: 800px;
- height: 480px;
-}
-
-#info_view.green_bg {
- background: url(../images/nav/bg.png) no-repeat;
-}
-
-#info_leftMenu{
- background: #333;
- width: 150px;
- height: 300px;
- top: 90px;
-}
-#info_leftMenu .menu-item.info_active{
- background: url("../images/info/menu_active.png") repeat-x;
-}
-
-#info_leftMenu .menu-item {
- z-index: 201;
- position: relative;
- width: 150px;
- height: 50px;
- cursor: pointer;
-}
-
-#info_leftMenu .menu-item span{
- position: absolute;
- left: 50px;
- width: 100px;
- height: 50px;
- font-size: 18px;
- line-height: 50px;
- white-space: nowrap;
- overflow: hidden;
-}
-
-#info_leftMenu .ico{
- height: 50px;
- width: 50px;
-}
-
-#info_leftMenu .settings_active {
- background: url("../images/settings/menu_active.png") repeat-x;
-}
-
-#info_right_menu {left: 183px; top: 6px;}
-#info_sync_services {font-size: 32px; width: 280px;}
-#info_traff {font-size: 20px; width: 410px; top: 36px;}
-#info_traffic_report {width: 300px; top: 85px; font-size: 20px; color: #a6a6a6;}
-#info_traffic_pts {width: 400px; top: 120px; font-size: 20px; color: #65cdd9;}
-#info_traffic_hear {width: 355px; top: 192px; font-size: 20px; color: #a6a6a6;}
-#info_connect {width: 300px; top: 241px; font-size: 20px; left: 15px;}
-#info_log {width: 500px; top: 285px; font-size: 20px;}
-#info_left_menu {top: 6px;}
-#info_left_menu div {font-size: 20px;left: 49px; }
-
-#info_left_services {top: 17px;}
-#info_left_travel_link {top: 66px; width: 200px;}
-#info_left_alerts {top: 118px;}
-#info_left_calendar {top: 166px;}
-#info_left_apps {top: 216px;}
-
-.help-mode #info{
- background: url(../images/info/info_blur.png) no-repeat 0 -5px;
-}
-
-#info_view.help-mode #info_sync_services,
-#info_view.help-mode #info_traff,
-#info_view.help-mode #info_traffic_report,
-#info_view.help-mode #info_traffic_pts,
-#info_view.help-mode #info_traffic_hear,
-#info_view.help-mode #info_connect,
-#info_view.help-mode #info_log,
-
-#info_view.help-mode #info_left_services,
-#info_view.help-mode #info_left_travel_link,
-#info_view.help-mode #info_left_alerts,
-#info_view.help-mode #info_left_calendar,
-#info_view.help-mode #info_left_apps,
-#info_view.help-mode .inner-wrapper div{
- color: transparent !important;
- text-shadow: 0 0 3px #999 !important;
-}
-
-#info_view.help-mode #info_connect{
- background: none !important;
- border: none !important;
-}
-
-#info_view.help-mode .list-content{
- border: none !important;
-}
-
-/******************* For Info.Services *******************/
-#info_services_view{
- top: 48px;
- left: 153px;
- background: url(../images/info/info_services_bg.png) no-repeat 0px 39px;
- height: 384px;
- width: 647px;
-}
-
-#info_services_view .inner-content{
- left: 30px;
- top: 49px;
-}
-
-.help-mode #info_services_view #info_traffic_pts{
- text-shadow: 0 0 3px #65CDD9 !important;
-}
-
-.help-mode #info_services_view{
- background-image:url(../images/info/info_services_bg_help.png);
- background-position: 0px 40px;
-}
-
-/******************* For Info.travelLink *******************/
-#info_travelLink {
- position: absolute;
- top: 48px;
- left: 153px;
- width: 647px;
- height: 384px;
- float: left;
- z-index: 1001;
-}
-
-#info_travelLink_logo {
- margin-top: 48px;
- margin-left: 22px;
-}
-
-#info_travelLink .inner-content{
- top: 71px;
-}
-
-#info_travelLink .block-header-title {
- top: 21px;
- left: 75px;
-}
-
-#info_travelLink .list {
- width: 308px;
- border-radius: 2px;
- max-height: 248px;
- border:1px solid #393939;
-}
-
-#info_travelLink .list .list-item:last-of-type {
- height: 50px;
- border: none;
-}
-
-#info_travelLink .list-content {
- position: relative;
- float: left;
- width: 100%;
- border:none;
-}
-
-#info_travelLink_listLeft{
- left: 12px;
- top: 92px;
-}
-
-#info_travelLink_listRight {
- position: absolute;
- top: 43px;
- right: 5px;
- width: 310px;
-}
-
-#info_travelLink_listLeft .list-item span,
-#info_travelLink_listRight .list-item span{
- margin-left: 44px;
-}
-
-#info_travelLink.fr #info_travelLink_listLeft .list-item span,
-#info_travelLink.fr #info_travelLink_listRight .list-item span{
- margin-left: 22px;
-}
-
-#info_travelLink_listRight_item0 span{
- margin-left: 0px !important;
-}
-
-#info_travelLink_listRight_item0{
- text-align: center;
-}
-
-.helpmode #info_travelLink_listLeft{
- margin-left: -1px;
- top: 91px;
-}
-
-.helpmode #info_travelLink_listRight{
- margin-right: 2px;
-}
-
-#info_travelLink_listRight .list-item:first-of-type {
- height: 48px !important;
-}
-
-.helpmode #info_travelLink {
- background-image: url(../images/info/info_travelLink_bg_help.png);
- background-repeat: no-repeat;
- border: none !important;
-}
-
-.helpmode #info_travelLink_logo {
- opacity: 0;
-}
-
-.helpmode #info_travelLink .lat{
- text-shadow: 0 0 3px lime !important;
-}
-
-.helpmode #info_travelLink .list-item span{
- text-shadow: 0 0 3px #999 !important;
-}
-
-.helpmode #info_travelLink_listRight .list-item:first-of-type {
- height: 48px !important;
- line-height: 48px;
-}
-
-.helpmode #info_travelLink_listRight .list-item:first-of-type span{
- line-height: 51px;
-}
-
-.helpmode #info_travelLink_listRight .list-item span{
- margin-left: 43px;
-}
-
-/******************* For Info.Alerts menu *****************/
-
-#info_alerts {
- left: 153px;
- top: 48px;
- width: 647px;
- height: 384px;
- font-size: 20px;
-}
-
-#info_alerts_listCaption {
- top: 66px;
- left: 13px;
- height: 39px;
-}
-
-#info_alerts_listCaption .lableToggle {
- position: relative;
- line-height: 40px;
- float: left;
- margin-left: 0px !important;
- margin-top: 0px !important;
- width: 134px;
- text-align: right;
-}
-
-#info_alerts_listCaption .lableToggle span{
- z-index: 2;
- position: relative;
-}
-
-#info_alerts_listCaption .toogleButtonContainer{
- height: 39px;
- width: 260px;
- border-radius: 0;
- margin: 0 11px;
- border: 1px solid #393939;
- border-bottom: none;
- line-height: 39px;
- float: left;
-}
-
-#info_alerts_listCaption .toogleButtonContainer .delim{
- width: 4px;
- height: 39px;
- background: url(../images/info/delim_40.png) no-repeat;
- z-index: 100;
- border: none;
-}
-
-#info_alerts_listCaption .toggles {
- height: 39px;
- width: 128px;
-}
-
-#info_alerts_listCaption .toogleButtonContainer span{
- line-height: 40px;
- z-index: 2;
- margin-left: 0px !important;
- margin-top: 0px !important;
-}
-
-#info_alerts .toogleButtonContainer .active {
- background: url(../images/info/btn_40_bg_active_invert.png) !important;
-}
-
-#info_alerts_list {
- position: relative;
- float: left;
- top: 67px;
- left: 13px;
- width: 468px;
- height: 301px;
-}
-
-#info_alerts_list .list-content {
- width: 406px;
- border-top: none;
- border-left: none;
-}
-
-#info_alerts_list .list-item {
- width: 405px;
-}
-
-#info_alerts_list .list-item:first-of-type{
- height: 39px !important;
- line-height: 39px !important;
-}
-
-#info_alerts_list_item1 {
- border-left: 1px solid #393939;
-}
-
-#info_alerts_list_item1 .right_ico {
- position: absolute;
- right: 7px;
-}
-#info_alerts_list_item1 .ico {
- border: none !important;
-}
-
-#info_alerts_list_item1 span {
- position: absolute;
- bottom: -2px;
- width: 250px;
- font-size: 19px;
- z-index: 2;
-}
-
-.helpmode #info_alerts_list_item1 span {
- bottom: -3px;
- margin: 0px 0 0 94px;
-}
-
-.fr #info_alerts_list_item1 span {
- line-height: 18px;
- bottom: 4px;
-}
-
-.helpmode.fr #info_alerts_list_item1 span {
- line-height: 18px;
- bottom: 5px;
-}
-
-#info_alerts_list .list-item.active {
- background-image: url(../images/info/btn_50_bg_active_invert.png);
-}
-
-#info_alerts_list .toogleButtonContainer .delim {
- width: 4px;
- height: 39px;
- background: url(../images/info/delim_40.png) no-repeat;
- z-index: 100;
- border: none;
-}
-
-#info_alerts_rightList {
- position: relative;
- float: left;
- top: 67px;
- left: 23px;
- height: 151px;
- width: 152px;
-}
-
-#info_alerts_rightList .list-content {
- width: 150px;
-}
-
-#info_alerts_rightList .list-item {
- border-bottom: 1px solid #393939 !important;
-}
-
-#info_alerts_rightList .list-item > span {
- margin-left: 15px;
- position: relative;
- z-index: 2;
-}
-
-.helpmode #info_alerts_rightList{
- top: 67px;
- left: 23px;
-}
-
-.helpmode #info_alerts_rightList .list-item{
- height: 49px !important;
-}
-
-.helpmode #info_alerts_rightList .list-item span{
- line-height: 51px !important;
-}
-
-.helpmode #info_alerts_rightList .list-item .ico{
- border: none !important;
-}
-
-.helpmode #info_alerts span{
- text-shadow: 0 0 3px #999 !important;
-}
-
-#info_alert_bg_helpMode{
- width: 647px;
- height: 384px;
- background-image: url(../images/info/info_alerts_bg_help.png);
-}
-
-.help-mode #info_alerts_list .list-item:first-of-type {
- border-bottom: 1px solid #393939 !important;
-}
-
-/******************* For Info.Calendar menu ***************/
-#info_calendar {
- left: 153px;
- top: 48px;
- width: 647px;
- height: 384px;
- background-image: url(../images/info/view_info_calendar.png);
- background-repeat: no-repeat;
- background-position: 4px 38px;
-}
-
-#info_calendar .inner-wrapper{
- left: 99px;
- top: 99px;
-}
-
-#info_calendar .c-btn {
- width: 90px;
- height: 34px;
- background: url(../images/info/callendar-btn.png) no-repeat 0px 0px;
- text-align: center;
- line-height: 33px;
-}
-
-#info_calendar .c-btn.active {
- background: #3b3b3b url(../images/common/btn-28h-gray-active.png) repeat-x 0 5px !important;
-}
-
-#info_calendar .date {
- white-space: nowrap;
- font-size: 26px;
- top: -43px;
- left: 178px;
-}
-
-#info_calendar .today {
- white-space: nowrap;
- top: -58px;
- left: 414px;
- height: 48px;
- width: 130px;
- font-size: 20px;
- line-height: 48px;
- border: 1px #333 solid;
- text-align: center;
- border-radius: 2px;
-}
-
-#info_calendar .day {
- width: 89px;
- height: 36px;
- text-align: center;
- top: 5px;
- line-height: 25px;
-}
-
-#info_calendar .day.active {
- background: #f28b06;
-}
-
-#info_calendar .day-1 {
- left: -86px;
-}
-#info_calendar .day-2 {
- left: 3px;
-}
-#info_calendar .day-3 {
- left: 93px;
-}
-#info_calendar .day-4 {
- left: 183px;
-}
-#info_calendar .day-5 {
- left: 272px;
-}
-#info_calendar .day-6 {
- left: 363px;
-}
-#info_calendar .day-7 {
- left: 453px;
-}
-
-#info_calendar .btn-1 {
- left: -88px;
- top: 40px;
-}
-#info_calendar .btn-8 {
- left: -88px;
- top: 75px;
-}
-#info_calendar .btn-15 {
- left: -87px;
- top: 108px;
-}
-#info_calendar .btn-22 {
- left: -88px;
- top: 141px;
-}
-#info_calendar .btn-29 {
- left: -88px;
- top: 174px;
-}
-
-#info_calendar .btn-7 {
- left: 452px;
- top: 40px;
-}
-#info_calendar .btn-14 {
- left: 452px;
- top: 75px;
-}
-#info_calendar .btn-21 {
- left: 452px;
- top: 108px;
-}
-#info_calendar .btn-28 {
- left: 452px;
- top: 141px;
-}
-
-#info_calendar .btn-6 {
- left: 362px;
- top: 40px;
-}
-#info_calendar .btn-13 {
- left: 362px;
- top: 75px;
-}
-#info_calendar .btn-20 {
- left: 362px;
- top: 108px;
-}
-#info_calendar .btn-27 {
- left: 362px;
- top: 141px;
-}
-
-#info_calendar .btn-5 {
- left: 272px;
- top: 40px;
-}
-#info_calendar .btn-12 {
- left: 272px;
- top: 75px;
-}
-#info_calendar .btn-19 {
- left: 272px;
- top: 108px;
-}
-#info_calendar .btn-26 {
- left: 272px;
- top: 141px;
-}
-
-#info_calendar .btn-4 {
- left: 182px;
- top: 40px;
-}
-#info_calendar .btn-11 {
- left: 182px;
- top: 75px;
-}
-#info_calendar .btn-18 {
- left: 182px;
- top: 108px;
-}
-#info_calendar .btn-25 {
- left: 182px;
- top: 141px;
-}
-
-#info_calendar .btn-3 {
- left: 92px;
- top: 40px;
-}
-#info_calendar .btn-10 {
- left: 92px;
- top: 75px;
-}
-#info_calendar .btn-17 {
- left: 92px;
- top: 108px;
-}
-#info_calendar .btn-24 {
- left: 92px;
- top: 141px;
-}
-#info_calendar .btn-31 {
- left: 92px;
- top: 174px;
-}
-
-#info_calendar .btn-2 {
- left: 2px;
- top: 40px;
-}
-#info_calendar .btn-9 {
- left: 2px;
- top: 75px;
-}
-#info_calendar .btn-16 {
- left: 2px;
- top: 108px;
-}
-#info_calendar .btn-23 {
- left: 2px;
- top: 141px;
-}
-#info_calendar .btn-30 {
- left: 2px;
- top: 174px;
-}
-
-#info_calendar.help-mode {
- background-image: url(../images/info/view_info_calendar-help.png);
- background-position: 1px 33px;
-}
-
-#info_calendar.help-mode .c-btn, #info_calendar.help-mode .day.active {
- background: none !important;
-}
-
-#info_calendar.help-mode div.day{
- text-shadow: 0 0 3px #FFF !important;
-}
-
-.help-mode #info_calendar .today {
- border: none !important;
- background: none !important;
-}
-
-.help-mode #info_calendar .today span {
- text-shadow: 0 0 3px #999 !important;
-}
-
-/******************* For Info.DeviceList *******************/
-#info_view .info_apps_deviceList_view{
- background: black;
- width: 800px;
- height: 480px;
- z-index: 201;
-}
-
-
-#info_apps_deviceList_view .backButton {
- top: 80px;
- width: 48px;
- height: 48px;
- border: 1px solid #333;
- border-radius: 2px;
-}
-
-#info_apps_deviceList_view .list{
- position: absolute;
- width: 629px;
- height: 251px;
- border-radius: 2px;
- left: 100px;
- top: 154px;
-}
-
-#info_apps_deviceList_view .deviceListLabel{
- top: 80px;
- left: 75px;
- width: 620px;
- height: 20px;
- background: #393939;
- padding: 15px;
-}
-
-#info_apps_deviceList_view .list-content{
- width: 578px;
- border: none;
-}
-#info_apps_deviceList_view .list-item{
- border: 1px solid #393939 !important;
-}
-/******************* For Info.Apps menu*******************/
-#info_apps {
- position: absolute;
- top: 48px;
- left: 153px;
- width: 647px;
- height: 384px;
- float: left;
- z-index: 1001;
-}
-
-#info_apps .backButton{
- top: 59px;
-}
-
-#info_apps .block-header-title{
- top: 67px;
- left: 73px;
-}
-
-#info_apps_pushToTalk_buttton{
- top: 80px;
- right: 5px;
- height: 48px;
- width: 48px;
- border: 1px solid #4bffff;
- border-radius: 2px;
-}
-
-#info_apps_list{
- top: 70px;
- left: 13px;
-}
-
-#info_appst {
- height: 250px;
- position: relative;
- float: left;
- margin-top: 5px;
- width: 554px;
-}
-
-#info_apps .list {
- width: 629px;
- height: 251px;
-}
-
-#info_apps_list .list-item .ico{
- width: 50px;
- height: 50px;
- position: absolute;
-}
-
-#info_apps_list .list-item span{
- margin-left: 50px;
-}
-
-#info_apps_list .list-item{
- height: 48px !important;
- border: 1px solid #393939;
-}
-
-#info_apps_list .list-content {
- width: 279px;
- border: none !important;
-}
-
-#info_apps .leftButtons {
- width: 278px;
- float: left;
- margin-right: 10px;
- height: 51px;
- font-size: 20px;
- line-height: 50px;
- border: 1px solid #393939;
- cursor: pointer;
- left: 10px;
-}
-
-#info_apps .vehicleHealthReport{
- top: 70px;
-}
-
-#info_apps .Asist911{
- top: 122px;
-}
-
-#info_apps .installButton{
- top: 174px;
-}
-
-#info_apps .findNewApps{
- top: 226px;
-}
-
-#info_apps .findNewApps img{
- margin: 9px;
- width: 32px;
-}
-
-#info_apps .getDeviceList{
- top: 278px;
-}
-
-#info_apps .getDeviceList img{
- width: 38px;
- margin: 6px;
-}
-
-#info_apps .list{
- float: right;
- margin-right: 41px;
- width: 330px
-}
-
-#info_apps_install_Button span{
- position: absolute;
-}
-
-#info_apps.fr #info_apps_install_Button span{
- position: absolute;
- line-height: 20px;
- width: 170px;
- top: 3px;
-}
-
-#info_apps .list-item .ico {
- float: left;
-}
-
-#info_apps .list-item span {
- height: 23px;
-}
-
-#info_apps .inner-wrapper {
- left: 100px;
- top: 71px;
-}
-
-#info_apps_install_Button{
- border: 1px solid #393939;
- border-radius: 2px;
- top: 269px;
- left: 303px;
-}
-
-.helpmode #info_apps{
- background-image: url(../images/info/info_apps_bg_help.png) !important;
- background-repeat: no-repeat;
-}
-
-.helpmode #info_apps_list span {
- margin-left: -1px;
- line-height: 51px !important;
-}
-
-.helpmode #info_apps_install_Button{
- border: none;
- background: none;
-}
-
-.helpmode #info_apps #info_apps_install_Button span{
- margin-top: 1px;
- left: 51px;
-}
-
-.helpmode #info_apps_install_Button .arrow-ico{
- opacity: 0;
-}
-
-#info_apps.help-mode #info_apps_install_Button .ico{
- opacity: 0;
+#status_info {
+ top: 0px;
+ right: 0px;
+ text-align: right;
+ font-size: 21px;
+ width: 324px;
+ height: 48px;
+ cursor: pointer;
+ background: url(../images/common/nav-status-bg.png) no-repeat;
+ z-index: 1;
+}
+
+#status_info_label {
+ width: 100%;
+ display: block;
+}
+
+#status_info_label span {
+ padding-right: 11px;
+}
+
+#info_view {
+ width: 800px;
+ height: 480px;
+}
+
+#info_view.green_bg {
+ background: url(../images/nav/bg.png) no-repeat;
+}
+
+#info_leftMenu {
+ background: #333;
+ width: 150px;
+ height: 300px;
+ top: 90px;
+}
+
+#info_leftMenu .menu-item.info_active {
+ background: url("../images/info/menu_active.png") repeat-x;
+}
+
+#info_leftMenu .menu-item {
+ z-index: 201;
+ position: relative;
+ width: 150px;
+ height: 50px;
+ cursor: pointer;
+}
+
+#info_leftMenu .menu-item span {
+ position: absolute;
+ left: 50px;
+ width: 100px;
+ height: 50px;
+ font-size: 18px;
+ line-height: 50px;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+#info_leftMenu .ico {
+ height: 50px;
+ width: 50px;
+}
+
+#info_leftMenu .settings_active {
+ background: url("../images/settings/menu_active.png") repeat-x;
+}
+
+#info_right_menu {
+ left: 183px;
+ top: 6px;
+}
+
+#info_sync_services {
+ font-size: 32px;
+ width: 280px;
+}
+
+#info_traff {
+ font-size: 20px;
+ width: 410px;
+ top: 36px;
+}
+
+#info_traffic_report {
+ width: 300px;
+ top: 85px;
+ font-size: 20px;
+ color: #a6a6a6;
+}
+
+#info_traffic_pts {
+ width: 400px;
+ top: 120px;
+ font-size: 20px;
+ color: #65cdd9;
+}
+
+#info_traffic_hear {
+ width: 355px;
+ top: 192px;
+ font-size: 20px;
+ color: #a6a6a6;
+}
+
+#info_connect {
+ width: 300px;
+ top: 241px;
+ font-size: 20px;
+ left: 15px;
+}
+
+#info_log {
+ width: 500px;
+ top: 285px;
+ font-size: 20px;
+}
+
+#info_left_menu {
+ top: 6px;
+}
+
+#info_left_menu div {
+ font-size: 20px;
+ left: 49px;
+}
+
+#info_left_services {
+ top: 17px;
+}
+
+#info_left_travel_link {
+ top: 66px;
+ width: 200px;
+}
+
+#info_left_alerts {
+ top: 118px;
+}
+
+#info_left_calendar {
+ top: 166px;
+}
+
+#info_left_apps {
+ top: 216px;
+}
+
+/******************* For Info.Services *******************/
+#info_services_view {
+ top: 48px;
+ left: 153px;
+ background: url(../images/info/info_services_bg.png) no-repeat 0px 39px;
+ height: 384px;
+ width: 647px;
+}
+
+#info_services_view .inner-content {
+ left: 30px;
+ top: 49px;
+}
+
+/******************* For Info.travelLink *******************/
+#info_travelLink {
+ position: absolute;
+ top: 48px;
+ left: 153px;
+ width: 647px;
+ height: 384px;
+ float: left;
+ z-index: 1001;
+}
+
+#info_travelLink_logo {
+ margin-top: 48px;
+ margin-left: 22px;
+}
+
+#info_travelLink .inner-content {
+ top: 71px;
+}
+
+#info_travelLink .block-header-title {
+ top: 21px;
+ left: 75px;
+}
+
+#info_travelLink .list {
+ width: 308px;
+ border-radius: 2px;
+ max-height: 248px;
+ border: 1px solid #393939;
+}
+
+#info_travelLink .list .list-item:last-of-type {
+ height: 50px;
+ border: none;
+}
+
+#info_travelLink .list-content {
+ position: relative;
+ float: left;
+ width: 100%;
+ border: none;
+}
+
+#info_travelLink_listLeft {
+ left: 12px;
+ top: 92px;
+}
+
+#info_travelLink_listRight {
+ position: absolute;
+ top: 43px;
+ right: 5px;
+ width: 310px;
+}
+
+#info_travelLink_listLeft .list-item span,#info_travelLink_listRight .list-item span
+ {
+ margin-left: 44px;
+}
+
+#info_travelLink.fr #info_travelLink_listLeft .list-item span,#info_travelLink.fr #info_travelLink_listRight .list-item span
+ {
+ margin-left: 22px;
+}
+
+#info_travelLink_listRight_item0 span {
+ margin-left: 0px !important;
+}
+
+#info_travelLink_listRight_item0 {
+ text-align: center;
+}
+
+#info_travelLink_listRight .list-item:first-of-type {
+ height: 48px !important;
+}
+
+/******************* For Info.Alerts menu *****************/
+ /******************* For Info.Calendar menu ***************/
+#info_calendar {
+ left: 153px;
+ top: 48px;
+ width: 647px;
+ height: 384px;
+ background-image: url(../images/info/view_info_calendar.png);
+ background-repeat: no-repeat;
+ background-position: 4px 38px;
+}
+
+#info_calendar .inner-wrapper {
+ left: 99px;
+ top: 99px;
+}
+
+#info_calendar .c-btn {
+ width: 90px;
+ height: 34px;
+ background: url(../images/info/callendar-btn.png) no-repeat 0px 0px;
+ text-align: center;
+ line-height: 33px;
+}
+
+#info_calendar .c-btn.active {
+ background: #3b3b3b url(../images/common/btn-28h-gray-active.png)
+ repeat-x 0 5px !important;
+}
+
+#info_calendar .date {
+ white-space: nowrap;
+ font-size: 26px;
+ top: -43px;
+ left: 178px;
+}
+
+#info_calendar .today {
+ white-space: nowrap;
+ top: -58px;
+ left: 414px;
+ height: 48px;
+ width: 130px;
+ font-size: 20px;
+ line-height: 48px;
+ border: 1px #333 solid;
+ text-align: center;
+ border-radius: 2px;
+}
+
+#info_calendar .day {
+ width: 89px;
+ height: 36px;
+ text-align: center;
+ top: 5px;
+ line-height: 25px;
+}
+
+#info_calendar .day.active {
+ background: #f28b06;
+}
+
+#info_calendar .day-1 {
+ left: -86px;
+}
+
+#info_calendar .day-2 {
+ left: 3px;
+}
+
+#info_calendar .day-3 {
+ left: 93px;
+}
+
+#info_calendar .day-4 {
+ left: 183px;
+}
+
+#info_calendar .day-5 {
+ left: 272px;
+}
+
+#info_calendar .day-6 {
+ left: 363px;
+}
+
+#info_calendar .day-7 {
+ left: 453px;
+}
+
+#info_calendar .btn-1 {
+ left: -88px;
+ top: 40px;
+}
+
+#info_calendar .btn-8 {
+ left: -88px;
+ top: 75px;
+}
+
+#info_calendar .btn-15 {
+ left: -87px;
+ top: 108px;
+}
+
+#info_calendar .btn-22 {
+ left: -88px;
+ top: 141px;
+}
+
+#info_calendar .btn-29 {
+ left: -88px;
+ top: 174px;
+}
+
+#info_calendar .btn-7 {
+ left: 452px;
+ top: 40px;
+}
+
+#info_calendar .btn-14 {
+ left: 452px;
+ top: 75px;
+}
+
+#info_calendar .btn-21 {
+ left: 452px;
+ top: 108px;
+}
+
+#info_calendar .btn-28 {
+ left: 452px;
+ top: 141px;
+}
+
+#info_calendar .btn-6 {
+ left: 362px;
+ top: 40px;
+}
+
+#info_calendar .btn-13 {
+ left: 362px;
+ top: 75px;
+}
+
+#info_calendar .btn-20 {
+ left: 362px;
+ top: 108px;
+}
+
+#info_calendar .btn-27 {
+ left: 362px;
+ top: 141px;
+}
+
+#info_calendar .btn-5 {
+ left: 272px;
+ top: 40px;
+}
+
+#info_calendar .btn-12 {
+ left: 272px;
+ top: 75px;
+}
+
+#info_calendar .btn-19 {
+ left: 272px;
+ top: 108px;
+}
+
+#info_calendar .btn-26 {
+ left: 272px;
+ top: 141px;
+}
+
+#info_calendar .btn-4 {
+ left: 182px;
+ top: 40px;
+}
+
+#info_calendar .btn-11 {
+ left: 182px;
+ top: 75px;
+}
+
+#info_calendar .btn-18 {
+ left: 182px;
+ top: 108px;
+}
+
+#info_calendar .btn-25 {
+ left: 182px;
+ top: 141px;
+}
+
+#info_calendar .btn-3 {
+ left: 92px;
+ top: 40px;
+}
+
+#info_calendar .btn-10 {
+ left: 92px;
+ top: 75px;
+}
+
+#info_calendar .btn-17 {
+ left: 92px;
+ top: 108px;
+}
+
+#info_calendar .btn-24 {
+ left: 92px;
+ top: 141px;
+}
+
+#info_calendar .btn-31 {
+ left: 92px;
+ top: 174px;
+}
+
+#info_calendar .btn-2 {
+ left: 2px;
+ top: 40px;
+}
+
+#info_calendar .btn-9 {
+ left: 2px;
+ top: 75px;
+}
+
+#info_calendar .btn-16 {
+ left: 2px;
+ top: 108px;
+}
+
+#info_calendar .btn-23 {
+ left: 2px;
+ top: 141px;
+}
+
+#info_calendar .btn-30 {
+ left: 2px;
+ top: 174px;
+}
+
+/******************* For Info.DeviceList *******************/
+#info_view .info_apps_deviceList_view {
+ background: black;
+ width: 800px;
+ height: 480px;
+ z-index: 201;
+}
+
+#info_apps_deviceList_view .backButton {
+ top: 80px;
+ width: 48px;
+ height: 48px;
+ border: 1px solid #333;
+ border-radius: 2px;
+ left: 5px;
+}
+
+#info_apps_deviceList_view .backButton .ico {
+ margin-top: 13px;
+ margin-left: 8px;
+}
+
+#info_apps_deviceList_view .list {
+ position: absolute;
+ width: 629px;
+ height: 251px;
+ border-radius: 2px;
+ left: 100px;
+ top: 154px;
+}
+
+#info_apps_deviceList_view .list-content {
+ width: 578px;
+ border: none;
+}
+
+#info_apps_deviceList_view .list-item {
+ border: 1px solid #393939 !important;
+}
+
+/******************* For Info.Apps menu*******************/
+#info_apps {
+ position: absolute;
+ top: 48px;
+ left: 153px;
+ width: 647px;
+ height: 384px;
+ float: left;
+ z-index: 1001;
+}
+
+#info_apps .backButton {
+ top: 59px;
+}
+
+#info_apps .block-header-title {
+ top: 67px;
+ left: 73px;
+}
+
+#info_apps_pushToTalk_buttton {
+ top: 80px;
+ right: 5px;
+ height: 48px;
+ width: 48px;
+ border: 1px solid #4bffff;
+ border-radius: 2px;
+}
+
+#info_apps_list {
+ top: 70px;
+ left: 13px;
+}
+
+#info_appst {
+ height: 250px;
+ position: relative;
+ float: left;
+ margin-top: 5px;
+ width: 554px;
+}
+
+#info_apps .list {
+ width: 629px;
+ height: 251px;
+}
+
+#info_apps_list .list-item .ico {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+}
+
+#info_apps_list .list-item span {
+ margin-left: 50px;
+}
+
+#info_apps_list .list-item {
+ height: 48px !important;
+ border: 1px solid #393939;
+}
+
+#info_apps_list .list-content {
+ width: 279px;
+ border: none !important;
+}
+
+#info_apps .leftButtons {
+ width: 278px;
+ float: left;
+ margin-right: 10px;
+ height: 51px;
+ font-size: 20px;
+ line-height: 50px;
+ border: 1px solid #393939;
+ cursor: pointer;
+ left: 10px;
+}
+
+#info_apps .vehicleHealthReport {
+ top: 70px;
+}
+
+#info_apps .Asist911 {
+ top: 122px;
+}
+
+#info_apps .installButton {
+ top: 174px;
+}
+
+#info_apps .findNewApps {
+ top: 226px;
+}
+
+#info_apps .findNewApps img {
+ margin: 9px;
+ width: 32px;
+}
+
+#info_apps .getDeviceList {
+ top: 278px;
+}
+
+#info_apps .getDeviceList img {
+ width: 38px;
+ margin: 6px;
+}
+
+#info_apps .list {
+ float: right;
+ margin-right: 41px;
+ width: 330px
+}
+
+#info_apps_install_Button span {
+ position: absolute;
+}
+
+#info_apps.fr #info_apps_install_Button span {
+ position: absolute;
+ line-height: 20px;
+ width: 170px;
+ top: 3px;
+}
+
+#info_apps .list-item .ico {
+ float: left;
+}
+
+#info_apps .list-item span {
+ height: 23px;
+}
+
+#info_apps .inner-wrapper {
+ left: 100px;
+ top: 71px;
+}
+
+#info_apps_install_Button {
+ border: 1px solid #393939;
+ border-radius: 2px;
+ top: 269px;
+ left: 303px;
} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/css/mcs.css b/SDL_Core/src/components/HMI/css/mcs.css
index f9a9082da..304e2ee8d 100755..100644
--- a/SDL_Core/src/components/HMI/css/mcs.css
+++ b/SDL_Core/src/components/HMI/css/mcs.css
@@ -1,3055 +1,3703 @@
-/*** Multi Contour Seat ** */
-#back-button {
- background: url(../images/common/page-back-button.png) no-repeat center 12px,
- url(../images/common/btn-48h.png);
- width: 48px;
- z-index: 5000;
- left: -107px;
- top: -72px;
-}
-
-#back-button.pressed {
- background: url(../images/common/page-back-button.png) no-repeat center 12px,
- url(../images/common/btn-48h-pressed.png);
-}
-
-#MultiContourSeat_customMassage {
- visibility: hidden;
- background-color: #000;
- z-index: 200;
- width: 800px;
- height: 345px;
- position: absolute;
- top: -60px;
- left: -112px;
-}
-#MultiContourSeat_customMassage_caption {
- width: 600px;
- height: 28px;
- line-height: 29px;
- left: 74px;
- font-size: 26px;
-}
-#MultiContourSeat_customMassage_caption2{
- top: 35px;
- width: 350px;
- text-align: center;
- left: 225px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust .MultiContourSeat_customMassage_previewButton {
- top: 172px;
- left: 620px;
- width: 120px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust .MultiContourSeat_customMassage_previewButtonTop {
- top: 113px;
- left: 535px;
- width: 120px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust .MultiContourSeat_customMassage_previewButtonBottom {
- top: 239px;
- left: 535px;
- width: 120px;
- text-align: center;
-}
-#MultiContourSeat_customMassage_backButton {
- top: 220px;
- left: 535px;
- width: 120px;
- text-align: center;
-}
-#MultiContourSeat_customMassage_backButtonCenter {
- bottom: 10px;
- left: 340px;
- width: 120px;
- text-align: center;
-}
-
-#MultiContourSeatContainer .led {
- width: 12px;
- height: 40px;
- background: url("../images/common/seat-act-led.png") no-repeat;
- position: relative !important;
- float: left;
- background-position: -4px 0;
-}
-#MultiContourSeatContainer .led-inactive {
- background: url("../images/common/seat-inact-led.png") no-repeat;
- background-position: 3px 8px;
- width: 12px;
- height: 40px;
- position: relative !important;
- float: left;
-}
-
-#MultiContourSeat_customMassage .led {
- /*background-position: -4px -6px;*/
-}
-
-#MultiContourSeat_customMassage .led-inactive {
- /*background-position: 3px 2px;*/
-}
-
-#contentMCS{
- top: 83px;
- left: 112px;
-}
-
-#MultiContourSeatContainer{
- position: absolute;
- background-color: black;
- width: 800px;
- height: 384px;
- top: -38px;
- left: -160px;
- z-index: 1001;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust .block-header-title{
- font-size: 26px;
- width: 400px;
- top: -72px;
- left: -38px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust .view_settings_vehicle_MultiContourSeat-left-s {
- background: url(../images/settings/view_settings_vehicle_MultiContourSeat-left-s.png) no-repeat;
- width: 193px;
- height: 263px;
- left: -70px;
- top: -40px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust .view_settings_vehicle_MultiContourSeat-Massage-left-s {
- background: url(../images/settings/view_settings_vehicle_MultiContourSeat-driver_massage_seat.png) no-repeat;
- width: 193px;
- height: 263px;
- left: -70px;
- top: -40px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust .notActiveSeat {
- opacity: 0.5;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust .not_selected .active {
- opacity: 0;
-}
-
- #view_settings_vehicle_MultiContourSeat_Adjust .driver {
- width: 158px;
- left: -54px;
- top: 226px;
- text-align: center;
- line-height: 49px;
- }
-
-#view_settings_vehicle_MultiContourSeat_Adjust .btn-48.active {
- background: url(../images/common/btn-48h-active-gray.png) repeat-x !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust .btn-28.active {
- background: url(../images/settings/btn-28h-gray-active.png) repeat-x !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust .adjust {
- width: 158px;
- left: -54px;
- top: 226px;
- text-align: center;
- line-height: 49px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .massage {
- width: 144px;
- left: 299px;
- top: -60px;
- text-align: center;
- line-height: 49px;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
- -webkit-border-top-right-radius: 3px;
- -webkit-border-bottom-right-radius: 3px;
- -moz-border-radius-topright: 3px;
- -moz-border-radius-bottomright: 3px;
- border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .adjust {
- width: 144px;
- left: 154px;
- top: -60px;
- text-align: center;
- line-height: 49px;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
- -webkit-border-top-left-radius: 3px;
- -webkit-border-bottom-left-radius: 3px;
- -moz-border-radius-topleft: 3px;
- -moz-border-radius-bottomleft: 3px;
- border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .passenger {
- width: 158px;
- left: 496px;
- top: 227px;
- text-align: center;
- line-height: 49px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .pressed{
- background: url(../images/common/btn-48h-pressed.png) bottom repeat-x !important;
-}
-
- #view_settings_vehicle_MultiContourSeat_Adjust .seats-1 {
- width: 32px;
- height: 39px;
- left: 414px;
- top: 3px;
- background: url(../images/settings/seats.png) no-repeat;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .seats-2 {
- width: 32px;
- height: 39px;
- left: 414px;
- top: 61px;
- background: url(../images/settings/seats.png) no-repeat 0 -61px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .seats-3 {
- width: 32px;
- height: 39px;
- left: 414px;
- top: 118px;
- background: url(../images/settings/seats.png) no-repeat 0 -117px;
- }
-
- #view_settings_vehicle_MultiContourSeat_Adjust .seats-4 {
- width: 32px;
- height: 39px;
- left: 414px;
- top: 179px;
- background: url(../images/settings/seats.png) no-repeat 0 -177px;
- }
-
- #view_settings_vehicle_MultiContourSeat_Adjust .seats-5 {
- width: 32px;
- height: 39px;
- left: 414px;
- top: 236px;
- background: url(../images/settings/seats.png) no-repeat 0 -233px;
- }
-
- #view_settings_vehicle_MultiContourSeat_Adjust .seats-message-1 {
- width: 32px;
- height: 38px;
- left: 414px;
- top: 3px;
- background: url(../images/settings/seats-message.png) no-repeat;
- }
-
- #view_settings_vehicle_MultiContourSeat_Adjust .seats-message-2 {
- width: 32px;
- height: 38px;
- left: 414px;
- top: 63px;
- background: url(../images/settings/seats-message.png) no-repeat 0 -61px;
- }
-
- #view_settings_vehicle_MultiContourSeat_Adjust .seat-right {
- width: 193px;
- height: 263px;
- left: 480px;
- top: -40px;
- background: url(../images/settings/view_settings_vehicle_MultiContourSeat-right-s.png) no-repeat;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .massage-seat-right {
- width: 193px;
- height: 263px;
- left: 480px;
- top: -40px;
- background: url(../images/settings/view_settings_vehicle_MultiContourSeat-Passenger_massage_seat.png) no-repeat;
- }
-
- #view_settings_vehicle_MultiContourSeat_Adjust .control {
- width: 238px;
- height: 41px;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
- }
-
- #MultiContourSeat_customMassage .control{
- width: 213px;
- /*height: 28px;*/
- }
-
- #view_settings_vehicle_MultiContourSeat_Adjust .indButtonMCS.active ,
- #view_settings_vehicle_MultiContourSeat_Adjust .seats-message-actions.active ,
- #view_settings_vehicle_MultiContourSeat_Adjust .control.active {
- border: 1px solid #ff9900;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .control .minus {
- width: 58px;
- height: 41px;
- border-right: 1px solid #393939;
- -webkit-border-top-right-radius: 3px;
- -webkit-border-bottom-right-radius: 3px;
- -moz-border-radius-topright: 3px;
- -moz-border-radius-bottomright: 3px;
- border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
- top: 0;
- left: 0;
- background: url(../images/common/btn-48h.png);
- position: relative;
- float: left;
- cursor: pointer;
- }
-
- #MultiContourSeat_customMassage .control .minus {
- /* height: 28px;*/
- }
-
- #view_settings_vehicle_MultiContourSeat_Adjust .ledContainer{
- position: relative;
- float: left;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .control .plus {
- width: 58px;
- height: 41px;
- border-left: 1px solid #393939;
- -webkit-border-top-left-radius: 3px;
- -webkit-border-bottom-left-radius: 3px;
- -moz-border-radius-topleft: 3px;
- -moz-border-radius-bottomleft: 3px;
- border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
- top: 0px;
- right: 0;
- background: url(../images/common/btn-48h.png);
- cursor: pointer;
- }
-
- #MultiContourSeat_customMassage .control .plus {
- /* height: 28px;*/
- }
-
- #view_settings_vehicle_MultiContourSeat_Adjust .control .minus .ico {
- top: 19px;
- left: 20px;
- position: absolute;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .control .plus .ico {
- top: 12px;
- left: 20px;
- position: absolute;
- }
-
- #MultiContourSeat_customMassage .control .minus .ico {
- /*top: 13px;*/
- }
-
- #MultiContourSeat_customMassage .control .plus .ico {
- /*top: 6px;;*/
- }
-
-
- #view_settings_vehicle_MultiContourSeat_Adjust .control-1 {
- top: 1px;
- left: 155px;
-
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .control-2 {
- top: 60px;
- left: 155px;
-
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .control-3 {
- top: 119px;
- left: 155px;
-
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .control-4 {
- top: 177px;
- left: 155px;
-
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .control-5 {
- top: 235px;
- left: 154px;
- }
-
- #view_settings_vehicle_MultiContourSeat_Adjust .led-1 {
- left: 60px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .led-2 {
- left: 71px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .led-3 {
- left: 82px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .led-4 {
- left: 93px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .led-5 {
- left: 104px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .led-6 {
- left: 115px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .led-7 {
- left: 126px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .led-8 {
- left: 137px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .led-9 {
- left: 148px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .led-10 {
- left: 159px;
- }
-
- #view_settings_vehicle_MultiContourSeat_Adjust .seats-message-actions {
- width: 238px;
- height: 48px;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
- left: 154px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .seats-message-actions-1 {
- top: 0;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .seats-message-actions-2 {
- top: 60px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .quality {
- width: 79px;
- height: 48px;
- background: url(../images/common/btn-48h.png);
- font-size: 20px;
- text-align: center;
- line-height: 48px;
- cursor: pointer;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .delim {
- width: 4px;
- height: 48px;
- background: url(../images/common/delim.png) no-repeat;
- z-index: 100;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .active.quality {
- background: url(../images/common/btn-48h-active-gray.png) !important;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .delim-0 {
- left: 76px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .delim-1 {
- left: 158px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .button0 {
- left: 0;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .button1 {
- left: 80px;
- }
- #view_settings_vehicle_MultiContourSeat_Adjust .button2 {
- left: 159px;
- }
-
-#MultiContourSeatContainer .indButtonMCS {
- width: 84px;
- height: 49px;
- cursor: pointer;
-}
-
-#MultiContourSeatContainer .indButtonMCS .ico {
- top: 1px;
- left: 26px;
- position: absolute;
-}
-
-#MultiContourSeatContainer .indButtonMCS div {
- width:22px;
- height:17px;
- top: 35px;
- left: 25px;
- position: relative;
- float: left;
- margin-left: -9px;
-}
-
-#MultiContourSeatContainer .indButtonMCS div.small_ind_def {
- background: url(../images/climate/small_ind_def.png) no-repeat;
-}
-
-#MultiContourSeatContainer .indButtonMCS div.small_ind_active {
- background:url(../images/climate/small_ind_active.png) no-repeat;
-}
-
-#MultiContourSeatContainer .indButtonMCS.notpressed {
- background: url(../images/common/btn-48h.png);
- background-size: contain;
- border-radius: 3px;
- border: 1px solid #393939;
-}
-
-#MultiContourSeatContainer .indButtonMCS.pressed {
- background:url(../images/climate/left_person_control/rb_bg_pressed.png) no-repeat;
-}
-
-
- /* BEGIN concept 1.1 */
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions {
- left: 186px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageTop1{
- width: 18px;
- height: 27px;
- left: 150px;
- background-image: url(../images/settings/massageTop.png) !important;
- background-repeat: no-repeat;
- top: 8px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageTop2{
- width: 30px;
- height: 27px;
- left: 150px;
- background-image: url(../images/settings/massageBottom.png) !important;
- background-repeat: no-repeat;
- top: 52px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageTop3{
- width: 30px;
- height: 27px;
- left: 143px;
- background-image: url(../images/settings/massageVertical.png) !important;
- background-repeat: no-repeat;
- top: 96px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .dividerBlocks{
- width: 292px;
- height: 0px;
- border: 1px solid #525252;
- left: 154px;
- top: 139px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageBottom1{
- width: 29px;
- height: 21px;
- left: 143px;
- background-image: url(../images/settings/MassageCircle.png) !important;
- background-repeat: no-repeat;
- top: 162px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageBottom2{
- width: 29px;
- height: 30px;
- left: 144px;
- background-image: url(../images/settings/massageRound.png) !important;
- background-repeat: no-repeat;
- top: 200px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageBottom3{
- width: 27px;
- height: 30px;
- left: 144px;
- background-image: url(../images/settings/massageHorisontal.png) !important;
- background-repeat: no-repeat;
- top: 245px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-1{
- top: 46px;
- left: 428px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-2{
- top: 196px;
- left: 428px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .quality {
- width: 56px;
- height: 38px;
- line-height: 38px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions{
- width: 224px;
- height: 38px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions-top2 {
- top: 45px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions-top3 {
- top: 90px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions-bottom1{
- top: 150px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions-bottom2{
- top: 195px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions-bottom3{
- top: 240px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .delim {
- height: 38px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .delim-0 {
- left: 54px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .delim-1 {
- left: 110px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .delim-2 {
- left: 166px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .button0 {
- left: 0;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .button1 {
- left: 56px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .button2 {
- left: 112px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .button3 {
- left: 168px;
-}
- /* END concept 1.1 */
-
-
- /* BEGIN concept 1.2 */
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-actions {
- left: 154px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-1{
- top: 35px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-2{
- top: 203px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .quality {
- width: 56px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .quality img{
- margin-top: 10px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-actions{
- width: 224px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-actions-top2 {
- top: 60px;
- left: 210px;
- width: 168px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-actions-bottom1{
- top: 170px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-actions-bottom2{
- top: 230px;
- left: 210px;
- width: 168px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .delim-0 {
- left: 54px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .delim-1 {
- left: 110px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .delim-2 {
- left: 166px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .button0 {
- left: 0;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .button1 {
- left: 56px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .button2 {
- left: 112px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .button3 {
- left: 168px;
-}
- /* END concept 1.2 */
-
- /* BEGIN concept 1.3 */
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .indButtonMCS div.small_ind_active{
- background: url(../images/climate/small_ind_green.png) no-repeat;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .patternTextIndicator{
- top: -29px;
- width: 80px;
- text-align: center;
- font-size: 18px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .patternTextTop{
- left: 280px;
- width: 150px;
- text-align: center;
- font-size: 18px;
- top: 30px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .patternTextBottom{
- left: 280px;
- width: 150px;
- text-align: center;
- font-size: 18px;
- top: 140px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions {
- left: 154px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-1{
- top: 35px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-2{
- top: 203px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .quality {
- width: 56px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .quality img{
- margin-top: 10px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions{
- width: 224px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions-top1 {
- left: 159px;
- top: 60px;
- width: 78px;
- height: 20px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions-top2 {
- left: 270px;
- top: 60px;
- width: 168px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions-bottom1{
- top: 170px;
- left: 159px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions-bottom2{
- top: 170px;
- left: 270px;
- width: 168px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .delim-0 {
- left: 54px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .delim-1 {
- left: 110px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .delim-2 {
- left: 166px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .button0 {
- left: 0;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .button1 {
- left: 56px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .button2 {
- left: 112px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .button3 {
- left: 168px;
-}
- /* END concept 1.3 */
-
- /* BEGIN concept 1.4 */
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .patternText1{
- width: 78px;
- height: 20px;
- top: 65px;
- left: 270px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .pattern1{
- background-image: url('../images/settings/massageTop.png');
- background-repeat: no-repeat;
- background-position: 53px 0px;
- background-size: contain;
- width: 83px;
- height: 20px;
- top: 65px;
- left: 209px;
- text-align: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .pattern2{
- background-image: url('../images/settings/massageBottom.png');
- background-repeat: no-repeat;
- background-position: 53px 0px;
- background-size: contain;
- width: 83px;
- height: 20px;
- top: 65px;
- left: 209px;
- text-align: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .pattern3{
- background-image: url('../images/settings/massageVertical.png');
- background-repeat: no-repeat;
- background-position: 52px 0px;
- background-size: contain;
- width: 83px;
- height: 20px;
- top: 65px;
- left: 202px;
- text-align: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .patternbottom1{
- background-image: url('../images/settings/massageCircle.png');
- background-repeat: no-repeat;
- background-position: 53px 0px;
- background-size: contain;
- width: 83px;
- height: 20px;
- top: 165px;
- left: 196px;
- text-align: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .patternbottom2{
- background-image: url('../images/settings/massageRound.png');
- background-repeat: no-repeat;
- background-position: 55px 0px;
- background-size: contain;
- width: 83px;
- height: 20px;
- top: 165px;
- left: 196px;
- text-align: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .patternbottom3{
- background-image: url('../images/settings/massageHorisontal.png');
- background-repeat: no-repeat;
- background-position: 55px 0px;
- background-size: contain;
- width: 83px;
- height: 20px;
- top: 165px;
- left: 202px;
- text-align: left;
-}
-#seatsMassageView1_4 .seatsMassageView1_4_seatLabel{
- top: 172px;
- left: 45px;
- font-size: 24px;
- width: 199px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .seats-message-2 {
- top: 105px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .patternText2{
- width: 78px;
- height: 20px;
- top: 165px;
- left: 271px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .labelTitle {
- width: 600px;
- text-align: left;
- height: 30px;
- line-height: 30px;
- font-size: 26px;
- left: 74px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Settings {
- top: 200px;
- left: 197px;
- width: 138px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Settings span{
- float: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Settings .ico{
- float: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Massage {
- text-align: center;
- height: 48px;
- line-height: 48px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Massage.button0{
- top: 70px;
- left: 45px;
- width: 200px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Massage.button1{
- top: 130px;
- left: 45px;
- width: 200px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Massage.button2 {
- top: 190px;
- left: 45px;
- width: 200px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Back {
- top: 280px;
- left: 45px;
- width: 200px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5SettingsScreen {
- top: -60px;
- left: -112px;
- width: 800px;
- height: 345px;
- background: black;
- z-index: 100;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .btn-48 {
- line-height: 48px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .show{
- visibility: visible !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .hide{
- visibility: hidden;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .quality {
- width: 56px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .quality img{
- margin-top: 10px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .seats-message-actions-top {
- left: 355px;
- top: 120px;
- width: 168px !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .seats-message-actions-bottom{
- left: 355px;
- top: 210px;
- width: 168px !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .seats-message-actions{
- width: 224px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .seats-message-actions-2 {
- top: 100px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .delim-0 {
- left: 54px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .delim-1 {
- left: 110px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .delim-2 {
- left: 166px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .button0 {
- left: 0;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .button1 {
- left: 56px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .button2 {
- left: 112px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .button3 {
- left: 168px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 #alternatingMassage .seats-message-1 {
- width: 32px;
- height: 38px;
- top: 126px;
- background: url(../images/settings/seats-message.png) no-repeat;
- left: 285px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 #alternatingMassage .seats-message-2 {
- width: 32px;
- height: 38px;
- top: 216px;
- left: 285px;
- background: url(../images/settings/seats-message.png) no-repeat 0 -61px;
-}
- /* END concept 1.4 */
-
- /* BEGIN concept 1.5 */
-#seatsMassageView1_5 .seatsMassageView1_5_seatLabel{
- top: 160px;
- left: 0px;
- font-size: 24px;
- width: 199px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .labelTitle {
- width: 600px;
- text-align: left;
- height: 30px;
- line-height: 30px;
- font-size: 26px;
- left: 74px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .labelText {
- top: 97px;
- width: 672px;
- text-align: center;
- left: 140px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Settings {
- top: 120px;
- left: 205px;
- width: 138px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Settings span{
- float: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Settings .ico{
- float: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Massage {
- text-align: center;
- height: 48px;
- line-height: 48px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Massage.button0{
- top: 147px;
- left: 240px;
- width: 150px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Massage.button1{
- top: 147px;
- left: 400px;
- width: 150px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Massage.button2 {
- top: 147px;
- left: 560px;
- width: 150px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Back {
- top: 280px;
- left: 45px;
- width: 200px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5SettingsScreen {
- top: -60px;
- left: -112px;
- width: 800px;
- height: 345px;
- background: black;
- z-index: 100;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Settings .ico {
- float: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .btn-48 {
- line-height: 48px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .show{
- visibility: visible !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .hide{
- visibility: hidden;
-}
- /* END concept 1.5 */
-
- /* BEGIN HMI concept 2.1 */
-#seatsMassageView2_1 .seatsMassageView2_1_seatLabel{
- top: 160px;
- left: 0px;
- font-size: 24px;
- width: 199px;
- text-align: center;
-}
-#seatsMassageView2_1 .MultiContourSeat_customMassage_caption {
- width: 600px;
- height: 28px;
- line-height: 29px;
- left: 74px;
- font-size: 26px;
-}
-#seatsMassageView2_1 .control{
- width: 237px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .quality {
- width: 50px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .seats-message-actions {
- width: 250px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .delim-0 {
- left: 48px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .delim-1 {
- left: 98px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .delim-2 {
- left: 148px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .button0 {
- left: 0;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .button1 {
- left: 50px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .button2 {
- left: 100px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .button3 {
- left: 150px;
- width: 100px;
-}
-
-#seatsMassageView2_1_settingsButton {
- width: 210px;
- left: 175px;
- top: 130px;
- line-height: 49px;
-}
-
-#seatsMassageView2_1_settingsButton .ico {
- float: left;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .control-11 {
- top: 60px;
- left: 370px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .control-12 {
- top: 105px;
- left: 370px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .control-13 {
- top: 150px;
- left: 370px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .control-14 {
- top: 210px;
- left: 370px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .control-15 {
- top: 255px;
- left: 370px;
-}
-
-#seatsMassageView2_1 #MultiContourSeat_customMassage .seats-message-1 {
- left: 150px;
- top: 107px;
-}
-
-#seatsMassageView2_1 #MultiContourSeat_customMassage .seats-message-2 {
- left: 150px;
- top: 234px;
-}
-
-#seatsMassageView2_1_upperLabel {
- top: 73px;
- left: 645px;
-}
-
-#seatsMassageView2_1_middleLabel {
- top: 117px;
- left: 645px;
-}
-
-#seatsMassageView2_1_lowerLabel {
- top: 162px;
- left: 645px;
-}
-
-#seatsMassageView2_1_frontLabel {
- top: 223px;
- left: 645px;
-}
-
-#seatsMassageView2_1_rearLabel {
- top: 266px;
- left: 645px;
-}
-
-/* END HMI concept 2.1 */
-
-
-/* BEGIN HMI concept 2.2 */
-#seatsMassageView2_2 .MultiContourSeat_customMassage_previewButtonTop {
- top: 134px;
- left: 625px;
- width: 120px;
- text-align: center;
-}
-#seatsMassageView2_2 .MultiContourSeat_customMassage_previewButtonBottom {
- top: 282px;
- left: 625px;
- width: 120px;
- text-align: center;
-}
-#seatsMassageView2_2 .control{
- width: 240px;
- /*height: 28px;*/
-}
-#seatsMassageView2_2 .seatsMassageView2_2_seatLabel{
- top: 172px;
- left: 0px;
- font-size: 24px;
- width: 199px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .quality {
- width: 100px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .seats-message-actions {
- width: 200px;
- left: 198px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .delim-0 {
- left: 98px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .button0 {
- left: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .button1 {
- left: 100px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .control-11 {
- top: 80px;
- left: 370px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .control-12 {
- top: 125px;
- left: 370px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .control-13 {
- top: 170px;
- left: 370px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .control-14 {
- top: 253px;
- left: 370px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .control-15 {
- top: 298px;
- left: 370px;
-}
-
-#seatsMassageView2_2 #MultiContourSeat_customMassage .seats-message-1 {
- left: 230px;
- top: 128px;
-}
-
-#seatsMassageView2_2 #MultiContourSeat_customMassage .seats-message-2 {
- left: 720px;
- top: 275px;
-}
-
-#seatsMassageView2_2 #MultiContourSeat_customMassage .seats-message-actions-3 {
- top: 45px;
-}
-
-#seatsMassageView2_2 #MultiContourSeat_customMassage .seats-message-actions-4 {
- top: 218px;
-}
-
-#seatsMassageView2_2 #MultiContourSeat_customMassage .seats-message-actions {
- left: 358px;
- width: 265px;
- height: 28px;
-}
-#seatsMassageView2_2 #MultiContourSeat_customMassage .quality {
- width: 50px;
- height: 28px;
- line-height: 29px;
-}
-#seatsMassageView2_2 #MultiContourSeat_customMassage .delim {
- height: 28px;
-}
-#seatsMassageView2_2 #MultiContourSeat_customMassage .delim-0 {
- left: 48px;
-}
-#seatsMassageView2_2 #MultiContourSeat_customMassage .delim-1 {
- left: 98px;
-}
-#seatsMassageView2_2 #MultiContourSeat_customMassage .delim-2 {
- left: 148px;
-}
-#seatsMassageView2_2 #MultiContourSeat_customMassage .button0 {
- left: 0;
-}
-#seatsMassageView2_2 #MultiContourSeat_customMassage .button1 {
- left: 50px;
-}
-#seatsMassageView2_2 #MultiContourSeat_customMassage .button2 {
- left: 100px;
-}
-#seatsMassageView2_2 #MultiContourSeat_customMassage .button3 {
- left: 150px;
- width: 115px;
-}
-#seatsMassageView2_2_upperLabel {
- top: 93px;
- left: 645px;
-}
-#seatsMassageView2_2_middleLabel {
- top: 138px;
- left: 645px;
-}
-#seatsMassageView2_2_lowerLabel {
- top: 182px;
- left: 645px;
-}
-#seatsMassageView2_2_frontLabel {
- top: 266px;
- left: 645px;
-}
-#seatsMassageView2_2_rearLabel {
- top: 310px;
- left: 645px;
-}
-
-#seatsMassageView2_2_settingsButton {
- width: 210px;
- left: 192px;
- top: 130px;
- line-height: 49px;
-}
-
-#seatsMassageView2_2_settingsButton .ico {
- float: left;
-}
-
-/* END HMI concept 2.2 */
-
-/* BEGIN HMI concept 4.1 */
-
-#seatsMassageView4_1 .seatsMassageView4_1_seatLabel{
- top: 172px;
- left: 45px;
- font-size: 24px;
- width: 199px;
- text-align: center;
-}
-#seatsMassageView4_1_settingsButton {
- width: 140px;
- left: 200px;
- top: 130px;
- line-height: 49px;
-}
-#seatsMassageView4_1_settingsButton .ico {
- float: left;
-}
-#seatsMassageView4_1 #MultiContourSeat_customMassage .seats-message-actions {
- left: 280px;
-}
-
-#seatsMassageView4_1 #MultiContourSeat_customMassage .seats-message-actions-3 {
- top: 115px;
-}
-
-#seatsMassageView4_1 #MultiContourSeat_customMassage .seats-message-actions-4 {
- top: 205px;
-}
-#seatsMassageView4_1 #MultiContourSeat_customMassage .seats-message-3 {
- right: 220px;
- top: 120px;
- width: 32px;
- height: 38px;
- background: url(../images/settings/seats-message.png) no-repeat;
-}
-#seatsMassageView4_1 #MultiContourSeat_customMassage .seats-message-4 {
- right: 220px;
- top: 210px;
- width: 32px;
- height: 38px;
- background: url(../images/settings/seats-message.png) no-repeat 0 -61px;
-}
-/* END HMI concept 4.1 */
-
-/* BEGIN HMI concept 5.1 */
-#seatsMassageView5_1 .MultiContourSeat_customMassage_caption {
- width: 600px;
- height: 28px;
- line-height: 29px;
- left: 74px;
- font-size: 26px;
-}
-#seatsMassageView5_1 .seatsMassageView5_1_seatLabel{
- top: 187px;
- left: 0px;
- font-size: 24px;
- width: 140px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 #MultiContourSeat_customMassage_backButtonCenter{
- bottom: 0px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .lableToggleButton {
- height: 48px;
- border: 1px solid gray;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .lableToggleButton .btn-48{
- height: 46px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .lableToggleButton .lableToggle{
- line-height: 30px;
- margin-left: 10px;
- margin-top: 10px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .toogleButtonContainer {
- width: 100px;
- margin: 0px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .toogleButtonContainer .toggles {
- position: absolute;
- float: left;
- width: 50px;
- height: 28px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .seatsMassageView_settingsButton {
- width: 140px;
- left: 200px;
- top: 130px;
- line-height: 49px;
- text-align: left !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .seatsMassageView_settingsButton span{
- position: absolute;
- line-height: 50px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .toogleButtonContainer span{
- position: absolute;
- width: 50px;
- margin-top: 0px;
- text-align: center;
- line-height: 28px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .seats-message-actions-3 {
- left: 247px;
- margin-top: 10px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Settings {
- top: 200px;
- left: 197px;
- width: 138px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Settings span{
- float: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Settings .ico{
- float: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Massage {
- text-align: center;
- height: 48px;
- line-height: 48px;
-}
-#seatsMassageView5_1 .MCSSettingslist{
- top: 76px;
- left: 139px;
- height: 251px;
-}
-#seatsMassageView5_1 .MCSSettingslist .list-content {
- width: 674px;
- border-right: none;
- border-top: none;
-}
-#seatsMassageView5_1 .MCSSettingslist .list-item:first-child,
-#seatsMassageView5_1 .MCSSettingslist .soundButton:first-child{
- border-top: 1px solid #393939;
- height: 48px;
-}
-#seatsMassageView5_1 .MCSSettingslist .list-item {
- position: relative;
- width: 577px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- border-right: 1px solid #393939;
- line-height: 50px;
-}
-#seatsMassageView5_1 .MCSSettingslist .list-item.soundButton {
- width: 48px;
- border-left: 1px solid #393939;
- margin-left: 10px;
-}
-#seatsMassageView5_1 .MCSSettingslist .list-item.soundButton .ico {
- border: none;
- margin-top: 12px;
- margin-right: 11px;
-}
-#seatsMassageView5_1 .MCSSettingslist .list-item.pressed {
- background: url(../images/phone/phone_button_bg_active.png) repeat-x !important;
-}
-#seatsMassageView5_1 .MCSSettingslist .list-item > span{
- margin-left: 13px;
-}
-#seatsMassageView5_1 .MCSSettingslist .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
-}
-#seatsMassageView5_1 .MCSSettingslist .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-#seatsMassageView5_1 .MCSSettingslist .toggles,
-#seatsMassageView5_1 .MCSSettingslist .toggles span{
- width: 148px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .MCSSettingslist .button1{
- left: 148px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .MCSSettingslist .delim{
- height: 29px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .MCSSettingslist .delim-0{
- left: 147px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .toogleButtonContainer .button1{
- left: 50px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .toogleButtonContainer .delim-0 {
- left: 48px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Back {
- top: 280px;
- left: 45px;
- width: 200px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5SettingsScreen {
- top: -60px;
- left: 154px;
- width: 291px;
- height: 345px;
- background: black;
- z-index: 100;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .btn-48 {
- line-height: 48px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .show{
- visibility: visible !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .hide{
- visibility: hidden;
-}
-/* END HMI concept 5.1 */
-
-/* BEGIN HMI concept 5.2 */
-#seatsMassageView5_2_settingsButton {
- width: 140px;
- left: 200px;
- top: 130px;
- line-height: 49px;
-}
-#seatsMassageView5_2 .MultiContourSeat_customMassage_caption {
- width: 600px;
- height: 28px;
- line-height: 29px;
- left: 74px;
- font-size: 26px;
-}
-#seatsMassageView5_2 .seatsMassageView5_2_seatLabel{
- top: 160px;
- left: 0px;
- font-size: 24px;
- width: 199px;
- text-align: center;
-}
-#seatsMassageView5_2_settingsButton .ico {
- float: left;
-}
-
-#seatsMassageView5_2 #MultiContourSeat_customMassage .seats-message-actions {
- left: 275px;
-}
-
-#seatsMassageView5_2 #MultiContourSeat_customMassage .seats-message-actions-3 {
- top: 90px;
-}
-
-#seatsMassageView5_2 #MultiContourSeat_customMassage .seats-message-actions-4 {
- top: 190px;
-}
-
-#seatsMassageView5_2 #MultiContourSeat_customMassage .quality {
- width: 50px;
-}
-
-#seatsMassageView5_2 #MultiContourSeat_customMassage .seats-message-actions {
- width: 250px;
-}
-
-#MultiContourSeat_customMassage_5_2_topLabel {
- top: 65px;
- left: 275px;
- width: 250px;
- text-align: center;
-}
-
-#MultiContourSeat_customMassage_5_2_bottomLabel {
- top: 165px;
- left: 275px;
- width: 250px;
- text-align: center;
-}
-
-#seatsMassageView5_2 #MultiContourSeat_customMassage .delim-0 {
- left: 48px;
-}
-#seatsMassageView5_2 #MultiContourSeat_customMassage .delim-1 {
- left: 98px;
-}
-#seatsMassageView5_2 #MultiContourSeat_customMassage .delim-2 {
- left: 148px;
-}
-#seatsMassageView5_2 #MultiContourSeat_customMassage .delim-3 {
- left: 198px;
-}
-#seatsMassageView5_2 #MultiContourSeat_customMassage .button0 {
- left: 0;
-}
-#seatsMassageView5_2 #MultiContourSeat_customMassage .button1 {
- left: 50px;
-}
-#seatsMassageView5_2 #MultiContourSeat_customMassage .button2 {
- left: 100px;
-}
-#seatsMassageView5_2 #MultiContourSeat_customMassage .button3 {
- left: 150px;
-}
-#seatsMassageView5_2 #MultiContourSeat_customMassage .button4 {
- left: 200px;
-}
-
-/* END HMI concept 5.2 */
-
-/* BEGIN HMI concept 6.1 */
-#seatsMassageView6_1 #settingsScreen .seatsMassageView6_1_seatLabel{
- top: 13px;
- left: 600px;
- font-size: 24px;
- width: 199px;
- text-align: center;
-}
-#seatsMassageView6_1 .mySettingsPopUpTitle{
- width: 143px;
- height: 25px;
- position: absolute;
- top: 163px;
- left: 216px !important;
- background: gray;
- text-align: center;
- line-height: 25px;
- font-size: 16px !important;
- font-weight: bold;
-}
-#seatsMassageView6_1 .mySettingsLabel{
- z-index: 100;
- left: 102px;
-}
-#seatsMassageView6_1 .MultiContourSeat_customMassage .btn-28.active {
- background: url(../images/common/btn-48h-active-gray.png) repeat-x !important;
-}
-#seatsMassageView6_1 #settingsScreen .durationButtons .quality,
-#seatsMassageView6_1 #settingsScreen .pauseButtons .quality {
- width: 60px;
-}
-#seatsMassageView6_1 #settingsScreen .quality {
- height: 35px;
- width: 130px;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
- border-radius: 3px;
-}
-#seatsMassageView6_1 #settingsScreen .btn-28 {
- text-align: center;
- line-height: 34px;
-}
-#seatsMassageView6_1 .settingsScreen {
- width: 800px;
- height: 368px;
- top: -15px;
- background: black;
- visibility: hidden;
-}
-#seatsMassageView6_1 .settingsScreen2 {
- width: 800px;
- height: 368px;
- top: -15px;
- background: black;
- visibility: hidden;
-}
-#seatsMassageView6_1 #settingsScreen .seats-message-actions{
- height: 39px;
- border: none;
-}
-
-#seatsMassageView6_1 #settingsScreen .button0 {
- left: 0;
-}
-#seatsMassageView6_1 #settingsScreen .button1 {
- left: 140px;
-}
-#seatsMassageView6_1 #settingsScreen .button2 {
- left: 280px;
-}
-#seatsMassageView6_1 #settingsScreen .button3 {
- left: 420px;
-}
-
-#seatsMassageView6_1 #settingsScreen .durationButtons .button0,
-#seatsMassageView6_1 #settingsScreen .pauseButtons .button0{
- left: 0;
-}
-#seatsMassageView6_1 #settingsScreen .durationButtons .button1,
-#seatsMassageView6_1 #settingsScreen .pauseButtons .button1 {
- left: 70px;
-}
-#seatsMassageView6_1 #settingsScreen .durationButtons .button2,
-#seatsMassageView6_1 #settingsScreen .pauseButtons .button2 {
- left: 140px;
-}
-#seatsMassageView6_1 #settingsScreen .durationButtons .button3,
-#seatsMassageView6_1 #settingsScreen .pauseButtons .button3 {
- left: 210px;
-}
-#seatsMassageView6_1 #settingsScreen .durationButtons .button4,
-#seatsMassageView6_1 #settingsScreen .pauseButtons .button4 {
- left: 280px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .control-11 {
- top: 60px;
- left: 350px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .control-12 {
- top: 105px;
- left: 350px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .control-13 {
- top: 150px;
- left: 350px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .control-14 {
- top: 230px;
- left: 350px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .control-15 {
- top: 275px;
- left: 350px;
-}
-#seatsMassageView6_1 #settingsScreen2 .seats-message-1 {
- left: 280px;
- top: 110px;
-}
-#seatsMassageView6_1 #settingsScreen2 .seats-message-2 {
- left: 280px;
- top: 252px;
-}
-#seatsMassageView6_1 .seatsMassageView6_1_seatLabel{
- top: 172px;
- left: 45px;
- font-size: 24px;
- width: 199px;
- text-align: center;
-}
-#seatsMassageView6_1 .MultiContourSeat_customMassage_caption {
- width: 600px;
- height: 28px;
- line-height: 29px;
- left: 74px;
- font-size: 26px;
-}
-#seatsMassageView6_1 .seatsMassageView6_1_upperLabel {
- top: 73px;
- left: 615px !important;
- font-size: 18px !important;
-}
-#seatsMassageView6_1 .seatsMassageView6_1_middleLabel {
- top: 118px;
- left: 615px !important;
- font-size: 18px !important;
-}
-
-#seatsMassageView6_1 .seatsMassageView6_1_lowerLabel {
- top: 163px;
- left: 615px !important;
- font-size: 18px !important;
-}
-
-#seatsMassageView6_1 .seatsMassageView6_1_frontLabel {
- top: 243px;
- left: 615px !important;
- font-size: 18px !important;
-}
-#seatsMassageView6_1 .seatsMassageView6_1_rearLabel {
- top: 287px;
- left: 615px !important;
- font-size: 18px !important;
-}
-#seatsMassageView6_1 .label {
- font-size: 26px;
- left: 20px;
-}
-#seatsMassageView6_1 .massageLabel {
- top: 51px;
-}
-#seatsMassageView6_1 .pattern {
- top: 91px;
-}
-#seatsMassageView6_1 .intensity {
- top: 131px;
-}
-#seatsMassageView6_1 .speed {
- top: 211px;
-}
-#seatsMassageView6_1 .duration {
- top: 251px;
-}
-#seatsMassageView6_1 .pause {
- top: 291px;
-}
-#seatsMassageView6_1 .editMenu {
- left: 70px;
- width: 240px;
- top: 12px;
- text-align: center;
-}
-#seatsMassageView6_1 .massageButtons {
- top: 50px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_1 .massageButtons img{
- height: 34px;
-}
-#seatsMassageView6_1 .patternButtons {
- top: 90px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_1 .intensityButtons{
- top: 130px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_1 .intensityEditCustom{
- top: 170px;
- left: 520px;
- width: 270px;
- height: 34px;
-}
-#seatsMassageView6_1 .speedButtons {
- top: 210px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_1 .durationButtons {
- top: 250px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_1 .pauseButtons{
- top: 290px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_1 .preview{
- top: 330px;
- left: 289px;
- width: 214px;
- height: 34px;
-}
-#seatsMassageView6_1 .MultiContourSeat_customMassage_caption {
- width: 600px;
- height: 28px;
- line-height: 29px;
- left: 74px;
- font-size: 26px;
-}
-#seatsMassageView6_1 .settingsScreen2 .MultiContourSeat_customMassage_caption {
- top: 14px;
-}
-#seatsMassageView6_1 .SettingsBlocks{
- margin-left: auto;
- margin-right: auto;
- width: 315px;
- height: 50px;
- position: relative;
- -webkit-transition: width 1s;
-}
-#seatsMassageView6_1 .MultiContourSeat_customMassage {
- visibility: hidden;
- background-color: #000;
- z-index: 200;
- width: 800px;
- height: 345px;
- position: absolute;
- top: -60px;
- left: -112px;
- background-image: url('../images/settings/mcsBlockBackArrow6_1.png');
- background-position: 339px 39px;
- background-repeat: no-repeat;
-}
-#seatsMassageView6_1 .btn-48 {
- line-height: 48px;
- text-align: center;
-}
-#seatsMassageView6_1 .show{
- visibility: visible !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButtonUp{
- width: 200px;
- left: 560px;
- top: 101px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButtonDown{
- width: 200px;
- left: 560px;
- bottom: 143px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButtonEdit{
- width: 250px;
- left: 275px;
- bottom: 40px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButtonNew{
- width: 100px;
- left: 275px;
- bottom: 0px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButtonTrash{
- width: 140px;
- left: 385px;
- bottom: 0px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsBlock {
- width: 220px;
- top: 130px;
- text-align: center !important;
- transition: 1s;
- -webkit-transition: top 1s; /* Safari and Chrome */
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButton {
- width: 159px;
- left: 154px;
- top: 205px;
- line-height: 49px;
- z-index: 1;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButton2{
- width: 50px;
- left: 365px;
- top: 205px;
- line-height: 49px;
- text-align: left !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButton3{
- width: 50px;
- left: 403px;
- top: 130px;
- line-height: 49px;
- text-align: left !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .hide{
- visibility: hidden;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .captionMySettings{
- top: 157px;
- left: 138px;
- width: 300px;
- height: 90px;
- border: 1px solid;
- padding: 8px 13px 13px 13px;
- font-size: 26px;
-}
-
-/* END HMI concept 6.1 */
-
-/* BEGIN HMI concept 6.2 */
-#seatsMassageView6_2 #settingsScreen .seatsMassageView6_2_seatLabel{
- top: 13px;
- left: 600px;
- font-size: 24px;
- width: 199px;
- text-align: center;
-}
-#seatsMassageView6_2 .MultiContourSeat_customMassage .seatsMassageView6_2_seatLabel_custom{
- top: 60px;
- left: 300px !important;
- font-size: 24px;
- width: 199px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButton {
- width: 159px;
- left: 154px;
- top: 205px;
- line-height: 49px;
- z-index: 1;
-}
-#seatsMassageView6_2 .mySettingsPopUpTitle{
- width: 143px;
- height: 25px;
- position: absolute;
- top: 163px;
- left: 216px !important;
- background: gray;
- text-align: center;
- line-height: 25px;
- font-size: 16px !important;
- font-weight: bold;
-}
-#seatsMassageView6_2 .mySettingsLabel{
- z-index: 100;
- left: 102px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .captionMySettings{
- top: 157px;
- left: 138px;
- width: 300px;
- height: 90px;
- border: 1px solid;
- padding: 8px 13px 13px 13px;
- font-size: 26px;
-}
-#seatsMassageView6_2 #settingsScreen .durationButtons .quality,
-#seatsMassageView6_2 #settingsScreen .pauseButtons .quality {
- width: 60px;
-}
-#seatsMassageView6_2 #settingsScreen .quality {
- height: 35px;
- width: 130px;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
- border-radius: 3px;
-}
-#seatsMassageView6_2 #settingsScreen .btn-28 {
- text-align: center;
- line-height: 34px;
-}
-#seatsMassageView6_2 .settingsScreen {
- width: 800px;
- height: 368px;
- top: -15px;
- background: black;
- visibility: hidden;
-}
-#seatsMassageView6_2 .settingsScreen2 {
- width: 800px;
- height: 368px;
- top: -15px;
- background: black;
- visibility: hidden;
-}
-#seatsMassageView6_2 #settingsScreen .seats-message-actions{
- height: 39px;
- border: none;
-}
-
-#seatsMassageView6_2 #settingsScreen .button0 {
- left: 0;
-}
-#seatsMassageView6_2 #settingsScreen .button1 {
- left: 140px;
-}
-#seatsMassageView6_2 #settingsScreen .button2 {
- left: 280px;
-}
-#seatsMassageView6_2 #settingsScreen .button3 {
- left: 420px;
-}
-
-#seatsMassageView6_2 #settingsScreen .durationButtons .button0,
-#seatsMassageView6_2 #settingsScreen .pauseButtons .button0{
- left: 0;
-}
-#seatsMassageView6_2 #settingsScreen .durationButtons .button1,
-#seatsMassageView6_2 #settingsScreen .pauseButtons .button1 {
- left: 70px;
-}
-#seatsMassageView6_2 #settingsScreen .durationButtons .button2,
-#seatsMassageView6_2 #settingsScreen .pauseButtons .button2 {
- left: 140px;
-}
-#seatsMassageView6_2 #settingsScreen .durationButtons .button3,
-#seatsMassageView6_2 #settingsScreen .pauseButtons .button3 {
- left: 210px;
-}
-#seatsMassageView6_2 #settingsScreen .durationButtons .button4,
-#seatsMassageView6_2 #settingsScreen .pauseButtons .button4 {
- left: 280px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .control-11 {
- top: 60px;
- left: 350px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .control-12 {
- top: 105px;
- left: 350px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .control-13 {
- top: 150px;
- left: 350px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .control-14 {
- top: 230px;
- left: 350px;
-}
-
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .control-15 {
- top: 275px;
- left: 350px;
-}
-#seatsMassageView6_2 #settingsScreen2 .seats-message-1 {
- left: 280px;
- top: 110px;
-}
-
-#seatsMassageView6_2 #settingsScreen2 .seats-message-2 {
- left: 280px;
- top: 252px;
-}
-#seatsMassageView6_2 .seatsMassageView6_2_seatLabel{
- top: 172px;
- left: 45px;
- font-size: 24px;
- width: 199px;
- text-align: center;
-}
-#seatsMassageView6_2 .MultiContourSeat_customMassage_caption {
- width: 600px;
- height: 28px;
- line-height: 29px;
- left: 74px;
- font-size: 26px;
-}
-#seatsMassageView6_2 .seatsMassageView6_2_upperLabel {
- top: 73px;
- left: 615px !important;
- font-size: 18px !important;
-}
-
-#seatsMassageView6_2 .seatsMassageView6_2_middleLabel {
- top: 118px;
- left: 615px !important;
- font-size: 18px !important;
-}
-
-#seatsMassageView6_2 .seatsMassageView6_2_lowerLabel {
- top: 163px;
- left: 615px !important;
- font-size: 18px !important;
-}
-
-#seatsMassageView6_2 .seatsMassageView6_2_frontLabel {
- top: 243px;
- left: 615px !important;
- font-size: 18px !important;
-}
-#seatsMassageView6_2 .seatsMassageView6_2_rearLabel {
- top: 287px;
- left: 615px !important;
- font-size: 18px !important;
-}
-#seatsMassageView6_2 .label {
- font-size: 26px;
- left: 20px;
-}
-#seatsMassageView6_2 .massageLabel {
- top: 51px;
-}
-#seatsMassageView6_2 .pattern {
- top: 91px;
-}
-#seatsMassageView6_2 .intensity {
- top: 131px;
-}
-#seatsMassageView6_2 .speed {
- top: 211px;
-}
-#seatsMassageView6_2 .duration {
- top: 251px;
-}
-#seatsMassageView6_2 .pause {
- top: 291px;
-}
-#seatsMassageView6_2 .editMenu {
- width: 240px;
- top: 12px;
- text-align: center;
- left: 70px;
-}
-#seatsMassageView6_2 .massageButtons {
- top: 50px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_2 .massageButtons img{
- height: 34px;
-}
-#seatsMassageView6_2 .patternButtons {
- top: 90px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_2 .intensityButtons{
- top: 130px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_2 .intensityEditCustom{
- top: 170px;
- left: 520px;
- width: 270px;
- height: 34px;
-}
-#seatsMassageView6_2 .speedButtons {
- top: 210px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_2 .durationButtons {
- top: 250px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_2 .pauseButtons{
- top: 290px;
- left: 240px;
- width: 560px;
-}
-#seatsMassageView6_2 .preview{
- top: 330px;
- left: 289px;
- width: 214px;
- height: 34px;
-}
-#seatsMassageView6_2 .settingsScreen2 .MultiContourSeat_customMassage_caption {
- top: 14px;
-}
-#seatsMassageView6_2 .MultiContourSeat_customMassage_caption {
- width: 600px;
- height: 28px;
- line-height: 29px;
- left: 74px;
- font-size: 26px;
-}
-#seatsMassageView6_2 .SettingsBlocks{
- margin-left: auto;
- margin-right: auto;
- width: 315px;
- height: 50px;
- position: relative;
- -webkit-transition: width 1s;
-}
-#seatsMassageView6_2 .MultiContourSeat_customMassage {
- visibility: hidden;
- background-color: #000;
- z-index: 200;
- width: 800px;
- height: 345px;
- position: absolute;
- top: -60px;
- left: -112px;
- background-image: url('../images/settings/mcsBlockBackArrow6_2.png');
- background-position: 39px 145px;
- background-repeat: no-repeat;
-}
-#seatsMassageView6_2 .btn-48 {
- line-height: 48px;
- text-align: center;
-}
-#seatsMassageView6_2 .show{
- visibility: visible !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButtonNew{
- width: 100px;
- left: 270px;
- bottom: 20px;
- line-height: 49px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButtonTrash{
- width: 71px;
- left: 446px;
- bottom: 5px;
- line-height: 49px;
- height: 78px;
- background-image: url("../images/settings/trash.png");
- background-repeat: no-repeat;
- background-size: contain;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButtonSave{
- width: 100px;
- left: 480px;
- bottom: 20px;
- line-height: 49px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsBlock {
- width: 100px;
- top: 130px;
- line-height: 49px;
- text-align: center !important;
- transition: left 1s;
- -webkit-transition: left 1s; /* Safari and Chrome */
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButton2{
- width: 50px;
- left: 365px;
- top: 205px;
- line-height: 49px;
- text-align: left !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButton3{
- width: 50px;
- left: 403px;
- top: 130px;
- line-height: 49px;
- text-align: left !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .hide{
- visibility: hidden;
-}
-/* END HMI concept 6.2 */
-
-/* BEGIN HMI concept 7.1 */
-#seatsMassageView7_1_appendix .localBack{
- background: url(../images/common/page-back-button.png) no-repeat center 12px,
- url(../images/common/btn-48h.png);
- width: 48px;
- z-index: 5000;
- left: 5px;
- top: 59px;
- visibility: hidden;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .seatsMassageView_settingsButton2{
- width: 50px;
- left: 365px;
- top: 205px;
- line-height: 49px;
- text-align: left !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .seatsMassageView_settingsButton {
- width: 159px;
- left: 154px;
- top: 205px;
- line-height: 49px;
- z-index: 1;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .captionMySettings{
- top: 157px;
- left: 138px;
- width: 300px;
- height: 90px;
- border: 1px solid;
- padding: 8px 13px 13px 13px;
- font-size: 26px;
-}
-#seatsMassageView7_1 .mySettingsPopUpTitle{
- width: 143px;
- height: 25px;
- position: absolute;
- top: 163px;
- left: 216px !important;
- background: gray;
- text-align: center;
- line-height: 25px;
- font-size: 16px !important;
- font-weight: bold;
-}
-#seatsMassageView7_1 .mySettingsLabel{
- z-index: 100;
- left: 102px;
-}
-#seatsMassageView7_1_appendix .btn-48 {
- line-height: 48px;
- text-align: center;
-}
-#seatsMassageView7_1_appendix .seats-message-actions-3 {
- top: 165px;
- left: 59px;
-}
-#seatsMassageView7_1_appendix .show{
- visibility: visible !important;
-}
-#seatsMassageView7_1_appendix{
- z-index: 2003;
-}
-#seatsMassageView7_1_appendix .SeatsMassageDialogView {
- visibility: hidden;
- background-color: whiteSmoke;
- width: 350px;
- height: 368px;
- position: absolute;
- top: 56px;
- left: 305px !important;
- background: black;
- border: #A6A6A6 solid 2px;
- border-radius: 6px;
- font-size: 18px;
- font-family: Arial;
-}
-#seatsMassageView7_1_appendix .titleQuestion{
- font-size: 21px;
- font-family: Arial;
- width: 350px;
- text-align: center;
- top: 25px;
-}
-#seatsMassageView7_1_appendix .question{
- font-size: 18px;
- font-family: Arial;
- width: 350px;
- text-align: center;
- top: 65px;
-}
-#seatsMassageView7_1_appendix .titleAnswer{
- font-size: 21px;
- font-family: Arial;
- width: 350px;
- text-align: center;
- top: 103px;
-}
-#seatsMassageView7_1_appendix .View1 .seats-message-actions-3{
- top: 194px;
- left: 7px;
-}
-#seatsMassageView7_1_appendix .View1 .titleQuestion{
- left: 0px;
- width: 500px;
- top: 40px;
-}
-#seatsMassageView7_1_appendix .View1 .question{
- left: 0px;
- top: 90px;
- text-align: center;
- width: 500px;
-}
-#seatsMassageView7_1_appendix .View1 .titleAnswer{
- left: 0px;
- width: 500px;
- top: 134px;
-}
-#seatsMassageView7_1_appendix .View1 .button0 {
- left: 0;
- top: 0 !important;
-}
-#seatsMassageView7_1_appendix .View1 .button1 {
- left: 0;
- top: 45px !important;
-}
-#seatsMassageView7_1_appendix .View1 .button2 {
- left: 0;
- top: 90px !important;
-}
-#seatsMassageView7_1_appendix .View1 .button3 {
- left: 258px!important;
- top: 0px !important;
-}
-#seatsMassageView7_1_appendix .View1 .button4 {
- left: 258px !important;
- top: 45px !important;
-}
-#seatsMassageView7_1_appendix .View1 .button5 {
- left: 258px !important;
- top: 90px !important;
-}
-#seatsMassageView7_1_appendix .View1 .btn-48 {
- height: 35px !important;
- line-height: 35px !important;
-}
-#seatsMassageView7_1_appendix .seatsMassageDialogView4 {
- visibility: hidden;
- font-size: 26px !important;
- font-family: Arial;
- font-size: 18px;
- font-family: Arial;
- left: 300px;
- top: 140px;
- width: 232px;
- height: 127px;
- background: white;
- border-radius: 6px;
- border: 1px solid gray;
- color: black;
- text-align: center;
- padding: 10px;
-}
-#seatsMassageView7_1_appendix .seatsMassageDialogView5 {
- visibility: hidden;
- font-size: 26px !important;
- font-family: Arial;
- font-size: 18px;
- font-family: Arial;
- left: 300px;
- top: 132px;
- width: 326px;
- height: 165px;
- background: white;
- border-radius: 6px;
- border: 1px solid gray;
- color: black;
- text-align: center;
- padding: 10px;
-}
-#seatsMassageView7_1_appendix .SeatsMassageDialogView.View1 {
- visibility: hidden;
- background-color: whiteSmoke;
- width: 520px;
- height: 368px;
- position: absolute;
- top: 56px;
- left: 265px !important;
- background: black;
- border: #A6A6A6 solid 2px;
- border-radius: 6px;
-}
-#seatsMassageView7_1_appendix .SeatsMassageDialogView .button0 {
- left: 0;
- top: 0;
-}
-#seatsMassageView7_1_appendix .SeatsMassageDialogView .button1 {
- left: 0;
- top: 60px;
-}
-#seatsMassageView7_1_appendix .SeatsMassageDialogView .button2 {
- left: 0;
- top: 120px;
-}
-#seatsMassageView7_1_appendix .SeatsMassageDialogView .button3 {
- left: 0;
- top: 180px;
-}
-#seatsMassageView7_1_appendix .SeatsMassageDialogView .button{
- width: 245px;
- border-radius: 3px;
- border: 1px solid #393939;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .concept1_5Settings {
- top: 200px;
- left: 197px;
- width: 138px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .concept1_5Settings span{
- float: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .concept1_5Settings .ico{
- float: left;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .concept1_5Massage {
- text-align: center;
- height: 48px;
- line-height: 48px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .toogleButtonContainer .button1{
- left: 50px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .toogleButtonContainer .delim-0 {
- left: 48px;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .concept1_5SettingsScreen {
- top: -60px;
- left: 154px;
- width: 291px;
- height: 345px;
- background: black;
- z-index: 100;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .btn-48 {
- line-height: 48px;
- text-align: center;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .show{
- visibility: visible !important;
-}
-#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .hide{
- visibility: hidden;
-}
-/* END HMI concept 7.1 */
-
- /* lumbars */
-
- /* driver */
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion1 .active {
- background: url(../images/settings/TopLumbar_WhiteOutline_driver.png) no-repeat;
- width: 38px;
- height: 29px;
- top: 70px;
- left: 22px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion2 .active {
- background: url(../images/settings/MiddleLumbar_WhiteOutline_driver.png) no-repeat;
- width: 34px;
- height: 30px;
- top: 84px;
- left: 18px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion3 .active {
- background: url(../images/settings/LowerLumbar_WhiteOutline_driver.png) no-repeat;
- width: 33px;
- height: 36px;
- top: 99px;
- left: 14px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion4 .active {
- background: url(../images/settings/lumbar_cushion_top-active.png) no-repeat;
- width: 70px;
- height: 70px;
- top: 71px;
- left: -2px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion5 .active {
- background: url(../images/settings/lumbar_cushion_bot-active.png) no-repeat;
- width: 91px;
- height: 59px;
- top: 112px;
- left: -37px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion6 .active {
- background: url(../images/settings/whiteOutline_driver-lumbar-all.png) no-repeat;
- width: 47px;
- height: 68px;
- top: 70px;
- left: 16px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion7 .active{
- background: url(../images/settings/Cushion_WhiteOutline_driver.png) no-repeat;
- width: 74px;
- height: 36px;
- top: 119px;
- left: -32px;
- z-index: 1;
-}
-
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion1 .lumbar {
- background: url(../images/settings/driver-lumbar-top.png) no-repeat;
- width: 36px;
- height: 31px;
- top: 69px;
- left: 22px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion2 .lumbar {
- background: url(../images/settings/driver-lumbar-mid.png) no-repeat;
- width: 34px;
- height: 31px;
- top: 84px;
- left: 17px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion3 .lumbar {
- background: url(../images/settings/driver-lumbar-low.png) no-repeat;
- width: 31px;
- height: 35px;
- top: 99px;
- left: 15px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion4 .lumbar {
- background: url(../images/settings/view_settings_vehicle_MultiContourSeat_adj1.png) no-repeat;
- width: 70px;
- height: 70px;
- top: 68px;
- left: -4px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion5 .lumbar {
- background: url(../images/settings/lumbar_cushion.png) no-repeat;
- width: 91px;
- height: 59px;
- top: 111px;
- left: -36px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion6 .lumbar {
- background: url(../images/settings/driver-lumbar-all.png) no-repeat;
- width: 47px;
- height: 68px;
- top: 68px;
- left: 12px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_driverSeat_cushion7 .lumbar {
- background: url(../images/settings/view_settings_vehicle_MultiContourSeat_adj2.png) no-repeat;
- width: 73px;
- height: 37px;
- top: 119px;
- left: -30px;
- opacity: 0;
-}
-
-/* passenger */
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion1 .active {
- background: url(../images/settings/TopLumbar_WhiteOutline_passenger.png) no-repeat;
- width: 38px;
- height: 29px;
- top: 70px;
- left: 541px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion2 .active {
- background: url(../images/settings/MiddleLumbar_WhiteOutline_passenger.png) no-repeat;
- width: 34px;
- height: 30px;
- top: 84px;
- left: 549px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion3 .active {
- background: url(../images/settings/LowerLumbar_WhiteOutline_passenger.png) no-repeat;
- width: 33px;
- height: 36px;
- top: 99px;
- left: 555px;
- z-index: 1;
-}
-
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion4 .active {
- background: url(../images/settings/lumbar_cushion_top_passenger-active.png) no-repeat;
- width: 70px;
- height: 70px;
- top: 71px;
- left: 535px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion5 .active {
- background: url(../images/settings/lumbar_cushion_bot_passanger-active.png) no-repeat;
- width: 91px;
- height: 59px;
- top: 112px;
- left: 546px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion6 .active {
- background: url(../images/settings/WhiteOutline_passenger-lumbar-all.png) no-repeat;
- width: 47px;
- height: 68px;
- top: 70px;
- left: 544px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion7 .active{
- background: url(../images/settings/Cushion_WhiteOutline_passenger.png) no-repeat;
- width: 74px;
- height: 36px;
- top: 120px;
- left: 558px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion1 .lumbar {
- background: url(../images/settings/passenger-lumbar-top.png) no-repeat;
- width: 37px;
- height: 31px;
- top: 68px;
- left: 542px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion2 .lumbar {
- background: url(../images/settings/passenger-lumbar-mid.png) no-repeat;
- width: 34px;
- height: 31px;
- top: 84px;
- left: 550px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion3 .lumbar {
- background: url(../images/settings/passenger-lumbar-low.png) no-repeat;
- width: 32px;
- height: 35px;
- top: 99px;
- left: 555px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion4 .lumbar {
- background: url(../images/settings/view_settings_vehicle_MultiContourSeat_adj1_passenger.png) no-repeat;
- width: 69px;
- height: 69px;
- top: 70px;
- left: 535px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion5 .lumbar {
- background: url(../images/settings/passenger_lumbar_cushion.png) no-repeat;
- width: 91px;
- height: 59px;
- top: 111px;
- left: 546px;
- opacity: 0;
-}
-
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion6 .lumbar {
- background: url(../images/settings/passenger-lumbar-all.png) no-repeat;
- width: 47px;
- height: 68px;
- top: 68px;
- left: 540px;
- opacity: 0;
-}
-
-
-#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion7 .lumbar {
- background: url(../images/settings/view_settings_vehicle_MultiContourSeat_adj2_passenger.png) no-repeat;
- width: 72px;
- height: 37px;
- top: 119px;
- left: 559px;
- opacity: 0;
-}
-
-
-/* CUSTOM MASSAGE */
-
-/* Driver cushions */
-
-#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion6 .active {
- background: url(../images/settings/TopLumbar_WhiteOutline_driver.png) no-repeat;
- width: 38px;
- height: 29px;
- top: 70px;
- left: 22px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion7 .active {
- background: url(../images/settings/MiddleLumbar_WhiteOutline_driver.png) no-repeat;
- width: 34px;
- height: 30px;
- top: 84px;
- left: 18px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion8 .active {
- background: url(../images/settings/LowerLumbar_WhiteOutline_driver.png) no-repeat;
- width: 33px;
- height: 36px;
- top: 99px;
- left: 14px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion9 .active {
- background: url(../images/settings/driver-lumbar-m-top-selected.png) no-repeat;
- width: 77px;
- height: 41px;
- top: 119px;
- left: -30px;
- z-index: 1;
- opacity: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion10 .active {
- background: url(../images/settings/driver-lumbar-m-bottom-selected.png) no-repeat;
- width: 77px;
- height: 41px;
- top: 119px;
- left: -30px;
- z-index: 1;
- opacity: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion6 .lumbar {
- background: url(../images/settings/driver-lumbar-top.png) no-repeat;
- width: 36px;
- height: 31px;
- top: 69px;
- left: 22px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion7 .lumbar {
- background: url(../images/settings/driver-lumbar-mid.png) no-repeat;
- width: 34px;
- height: 31px;
- top: 84px;
- left: 17px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion8 .lumbar {
- background: url(../images/settings/driver-lumbar-low.png) no-repeat;
- width: 31px;
- height: 35px;
- top: 99px;
- left: 15px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion9 .lumbar {
- background: url(../images/settings/driver-lumbar-m-top.png) no-repeat;
- width: 73px;
- height: 37px;
- top: 119px;
- left: -30px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion10 .lumbar {
- background: url(../images/settings/driver-lumbar-m-bottom.png) no-repeat;
- width: 73px;
- height: 37px;
- top: 119px;
- left: -30px;
- opacity: 0;
-}
-
-/* Passenger cushions */
-
-#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion6 .active {
- background: url(../images/settings/TopLumbar_WhiteOutline_passenger.png) no-repeat;
- width: 38px;
- height: 29px;
- top: 70px;
- left: 541px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion7 .active {
- background: url(../images/settings/MiddleLumbar_WhiteOutline_passenger.png) no-repeat;
- width: 34px;
- height: 30px;
- top: 84px;
- left: 549px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion8 .active {
- background: url(../images/settings/LowerLumbar_WhiteOutline_passenger.png) no-repeat;
- width: 33px;
- height: 36px;
- top: 99px;
- left: 555px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion9 .active {
- background: url(../images/settings/passenger-lumbar-m-top-selected.png) no-repeat;
- width: 77px;
- height: 41px;
- top: 120px;
- left: 558px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion10 .active {
- background: url(../images/settings/passenger-lumbar-m-bottom-selected.png) no-repeat;
- width: 77px;
- height: 41px;
- top: 120px;
- left: 558px;
- z-index: 1;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion6 .lumbar {
- background: url(../images/settings/passenger-lumbar-top.png) no-repeat;
- width: 36px;
- height: 31px;
- top: 70px;
- left: 541px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion7 .lumbar {
- background: url(../images/settings/passenger-lumbar-mid.png) no-repeat;
- width: 34px;
- height: 31px;
- top: 84px;
- left: 549px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion8 .lumbar {
- background: url(../images/settings/passenger-lumbar-low.png) no-repeat;
- width: 31px;
- height: 35px;
- top: 99px;
- left: 555px;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion9 .lumbar {
- background: url(../images/settings/passenger-lumbar-m-top.png) no-repeat;
- width: 77px;
- height: 41px;
- top: 120px;
- left: 558px;;
- opacity: 0;
-}
-
-#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion10 .lumbar {
- background: url(../images/settings/passenger-lumbar-m-bottom.png) no-repeat;
- width: 77px;
- height: 41px;
- top: 120px;
- left: 558px;
- opacity: 0;
+/*** Multi Contour Seat ** */
+#back-button {
+ background: url(../images/common/page-back-button.png) no-repeat center
+ 12px, url(../images/common/btn-48h.png);
+ width: 48px;
+ z-index: 5000;
+ left: -107px;
+ top: -72px;
+}
+
+#back-button.pressed {
+ background: url(../images/common/page-back-button.png) no-repeat center
+ 12px, url(../images/common/btn-48h-pressed.png);
+}
+
+#MultiContourSeat_customMassage {
+ visibility: hidden;
+ background-color: #000;
+ z-index: 200;
+ width: 800px;
+ height: 345px;
+ position: absolute;
+ top: -60px;
+ left: -112px;
+}
+
+#MultiContourSeat_customMassage_caption {
+ width: 600px;
+ height: 28px;
+ line-height: 29px;
+ left: 74px;
+ font-size: 26px;
+}
+
+#MultiContourSeat_customMassage_caption2 {
+ top: 35px;
+ width: 350px;
+ text-align: center;
+ left: 225px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .MultiContourSeat_customMassage_previewButton
+ {
+ top: 172px;
+ left: 620px;
+ width: 120px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .MultiContourSeat_customMassage_previewButtonTop
+ {
+ top: 113px;
+ left: 535px;
+ width: 120px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .MultiContourSeat_customMassage_previewButtonBottom
+ {
+ top: 239px;
+ left: 535px;
+ width: 120px;
+ text-align: center;
+}
+
+#MultiContourSeat_customMassage_backButton {
+ top: 220px;
+ left: 535px;
+ width: 120px;
+ text-align: center;
+}
+
+#MultiContourSeat_customMassage_backButtonCenter {
+ bottom: 10px;
+ left: 340px;
+ width: 120px;
+ text-align: center;
+}
+
+#MultiContourSeatContainer .led {
+ width: 12px;
+ height: 40px;
+ background: url("../images/common/seat-act-led.png") no-repeat;
+ position: relative !important;
+ float: left;
+ background-position: -4px 0;
+}
+
+#MultiContourSeatContainer .led-inactive {
+ background: url("../images/common/seat-inact-led.png") no-repeat;
+ background-position: 3px 8px;
+ width: 12px;
+ height: 40px;
+ position: relative !important;
+ float: left;
+}
+
+#MultiContourSeat_customMassage .led {
+ /*background-position: -4px -6px;*/
+
+}
+
+#MultiContourSeat_customMassage .led-inactive {
+ /*background-position: 3px 2px;*/
+
+}
+
+#contentMCS {
+ top: 83px;
+ left: 112px;
+}
+
+#MultiContourSeatContainer {
+ position: absolute;
+ background-color: black;
+ width: 800px;
+ height: 384px;
+ top: -38px;
+ left: -160px;
+ z-index: 1001;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .block-header-title {
+ font-size: 26px;
+ width: 400px;
+ top: -72px;
+ left: -38px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .view_settings_vehicle_MultiContourSeat-left-s
+ {
+ background:
+ url(../images/settings/view_settings_vehicle_MultiContourSeat-left-s.png)
+ no-repeat;
+ width: 193px;
+ height: 263px;
+ left: -70px;
+ top: -40px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .view_settings_vehicle_MultiContourSeat-Massage-left-s
+ {
+ background:
+ url(../images/settings/view_settings_vehicle_MultiContourSeat-driver_massage_seat.png)
+ no-repeat;
+ width: 193px;
+ height: 263px;
+ left: -70px;
+ top: -40px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .notActiveSeat {
+ opacity: 0.5;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .not_selected .active {
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .driver {
+ width: 158px;
+ left: -54px;
+ top: 226px;
+ text-align: center;
+ line-height: 49px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .btn-48.active {
+ background: url(../images/common/btn-48h-active-gray.png) repeat-x
+ !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .btn-28.active {
+ background: url(../images/settings/btn-28h-gray-active.png) repeat-x
+ !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .adjust {
+ width: 158px;
+ left: -54px;
+ top: 226px;
+ text-align: center;
+ line-height: 49px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .massage {
+ width: 144px;
+ left: 299px;
+ top: -60px;
+ text-align: center;
+ line-height: 49px;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+ -webkit-border-top-right-radius: 3px;
+ -webkit-border-bottom-right-radius: 3px;
+ -moz-border-radius-topright: 3px;
+ -moz-border-radius-bottomright: 3px;
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .adjust {
+ width: 144px;
+ left: 154px;
+ top: -60px;
+ text-align: center;
+ line-height: 49px;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+ -webkit-border-top-left-radius: 3px;
+ -webkit-border-bottom-left-radius: 3px;
+ -moz-border-radius-topleft: 3px;
+ -moz-border-radius-bottomleft: 3px;
+ border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .passenger {
+ width: 158px;
+ left: 496px;
+ top: 227px;
+ text-align: center;
+ line-height: 49px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .pressed {
+ background: url(../images/common/btn-48h-pressed.png) bottom repeat-x
+ !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .seats-1 {
+ width: 32px;
+ height: 39px;
+ left: 414px;
+ top: 3px;
+ background: url(../images/settings/seats.png) no-repeat;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .seats-2 {
+ width: 32px;
+ height: 39px;
+ left: 414px;
+ top: 61px;
+ background: url(../images/settings/seats.png) no-repeat 0 -61px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .seats-3 {
+ width: 32px;
+ height: 39px;
+ left: 414px;
+ top: 118px;
+ background: url(../images/settings/seats.png) no-repeat 0 -117px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .seats-4 {
+ width: 32px;
+ height: 39px;
+ left: 414px;
+ top: 179px;
+ background: url(../images/settings/seats.png) no-repeat 0 -177px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .seats-5 {
+ width: 32px;
+ height: 39px;
+ left: 414px;
+ top: 236px;
+ background: url(../images/settings/seats.png) no-repeat 0 -233px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .seats-message-1 {
+ width: 32px;
+ height: 38px;
+ left: 414px;
+ top: 3px;
+ background: url(../images/settings/seats-message.png) no-repeat;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .seats-message-2 {
+ width: 32px;
+ height: 38px;
+ left: 414px;
+ top: 63px;
+ background: url(../images/settings/seats-message.png) no-repeat 0 -61px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .seat-right {
+ width: 193px;
+ height: 263px;
+ left: 480px;
+ top: -40px;
+ background:
+ url(../images/settings/view_settings_vehicle_MultiContourSeat-right-s.png)
+ no-repeat;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .massage-seat-right {
+ width: 193px;
+ height: 263px;
+ left: 480px;
+ top: -40px;
+ background:
+ url(../images/settings/view_settings_vehicle_MultiContourSeat-Passenger_massage_seat.png)
+ no-repeat;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .control {
+ width: 238px;
+ height: 41px;
+ border: 1px solid #393939;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+
+#MultiContourSeat_customMassage .control {
+ width: 213px;
+ /*height: 28px;*/
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .indButtonMCS.active,#view_settings_vehicle_MultiContourSeat_Adjust .seats-message-actions.active,#view_settings_vehicle_MultiContourSeat_Adjust .control.active
+ {
+ border: 1px solid #ff9900;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .control .minus {
+ width: 58px;
+ height: 41px;
+ border-right: 1px solid #393939;
+ -webkit-border-top-right-radius: 3px;
+ -webkit-border-bottom-right-radius: 3px;
+ -moz-border-radius-topright: 3px;
+ -moz-border-radius-bottomright: 3px;
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ top: 0;
+ left: 0;
+ background: url(../images/common/btn-48h.png);
+ position: relative;
+ float: left;
+ cursor: pointer;
+}
+
+#MultiContourSeat_customMassage .control .minus { /* height: 28px;*/
+
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .ledContainer {
+ position: relative;
+ float: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .control .plus {
+ width: 58px;
+ height: 41px;
+ border-left: 1px solid #393939;
+ -webkit-border-top-left-radius: 3px;
+ -webkit-border-bottom-left-radius: 3px;
+ -moz-border-radius-topleft: 3px;
+ -moz-border-radius-bottomleft: 3px;
+ border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ top: 0px;
+ right: 0;
+ background: url(../images/common/btn-48h.png);
+ cursor: pointer;
+}
+
+#MultiContourSeat_customMassage .control .plus { /* height: 28px;*/
+
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .control .minus .ico {
+ top: 19px;
+ left: 20px;
+ position: absolute;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .control .plus .ico {
+ top: 12px;
+ left: 20px;
+ position: absolute;
+}
+
+#MultiContourSeat_customMassage .control .minus .ico { /*top: 13px;*/
+
+}
+
+#MultiContourSeat_customMassage .control .plus .ico { /*top: 6px;;*/
+
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .control-1 {
+ top: 1px;
+ left: 155px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .control-2 {
+ top: 60px;
+ left: 155px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .control-3 {
+ top: 119px;
+ left: 155px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .control-4 {
+ top: 177px;
+ left: 155px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .control-5 {
+ top: 235px;
+ left: 154px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .led-1 {
+ left: 60px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .led-2 {
+ left: 71px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .led-3 {
+ left: 82px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .led-4 {
+ left: 93px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .led-5 {
+ left: 104px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .led-6 {
+ left: 115px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .led-7 {
+ left: 126px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .led-8 {
+ left: 137px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .led-9 {
+ left: 148px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .led-10 {
+ left: 159px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .seats-message-actions {
+ width: 238px;
+ height: 48px;
+ border: 1px solid #393939;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ left: 154px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .seats-message-actions-1
+ {
+ top: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .seats-message-actions-2
+ {
+ top: 60px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .quality {
+ width: 79px;
+ height: 48px;
+ background: url(../images/common/btn-48h.png);
+ font-size: 20px;
+ text-align: center;
+ line-height: 48px;
+ cursor: pointer;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .delim {
+ width: 4px;
+ height: 48px;
+ background: url(../images/common/delim.png) no-repeat;
+ z-index: 100;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .active.quality {
+ background: url(../images/common/btn-48h-active-gray.png) !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .delim-0 {
+ left: 76px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .delim-1 {
+ left: 158px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .button0 {
+ left: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .button1 {
+ left: 80px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust .button2 {
+ left: 159px;
+}
+
+#MultiContourSeatContainer .indButtonMCS {
+ width: 84px;
+ height: 49px;
+ cursor: pointer;
+}
+
+#MultiContourSeatContainer .indButtonMCS .ico {
+ top: 1px;
+ left: 26px;
+ position: absolute;
+}
+
+#MultiContourSeatContainer .indButtonMCS div {
+ width: 22px;
+ height: 17px;
+ top: 35px;
+ left: 25px;
+ position: relative;
+ float: left;
+ margin-left: -9px;
+}
+
+#MultiContourSeatContainer .indButtonMCS div.small_ind_def {
+ background: url(../images/climate/small_ind_def.png) no-repeat;
+}
+
+#MultiContourSeatContainer .indButtonMCS div.small_ind_active {
+ background: url(../images/climate/small_ind_active.png) no-repeat;
+}
+
+#MultiContourSeatContainer .indButtonMCS.notpressed {
+ background: url(../images/common/btn-48h.png);
+ background-size: contain;
+ border-radius: 3px;
+ border: 1px solid #393939;
+}
+
+#MultiContourSeatContainer .indButtonMCS.pressed {
+ background: url(../images/climate/left_person_control/rb_bg_pressed.png)
+ no-repeat;
+}
+
+/* BEGIN concept 1.1 */
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions
+ {
+ left: 186px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageTop1
+ {
+ width: 18px;
+ height: 27px;
+ left: 150px;
+ background-image: url(../images/settings/massageTop.png) !important;
+ background-repeat: no-repeat;
+ top: 8px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageTop2
+ {
+ width: 30px;
+ height: 27px;
+ left: 150px;
+ background-image: url(../images/settings/massageBottom.png) !important;
+ background-repeat: no-repeat;
+ top: 52px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageTop3
+ {
+ width: 30px;
+ height: 27px;
+ left: 143px;
+ background-image: url(../images/settings/massageVertical.png) !important;
+ background-repeat: no-repeat;
+ top: 96px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .dividerBlocks
+ {
+ width: 292px;
+ height: 0px;
+ border: 1px solid #525252;
+ left: 154px;
+ top: 139px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageBottom1
+ {
+ width: 29px;
+ height: 21px;
+ left: 143px;
+ background-image: url(../images/settings/MassageCircle.png) !important;
+ background-repeat: no-repeat;
+ top: 162px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageBottom2
+ {
+ width: 29px;
+ height: 30px;
+ left: 144px;
+ background-image: url(../images/settings/massageRound.png) !important;
+ background-repeat: no-repeat;
+ top: 200px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .massageBottom3
+ {
+ width: 27px;
+ height: 30px;
+ left: 144px;
+ background-image: url(../images/settings/massageHorisontal.png)
+ !important;
+ background-repeat: no-repeat;
+ top: 245px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-1
+ {
+ top: 46px;
+ left: 428px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-2
+ {
+ top: 196px;
+ left: 428px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .quality
+ {
+ width: 56px;
+ height: 38px;
+ line-height: 38px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions
+ {
+ width: 224px;
+ height: 38px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions-top2
+ {
+ top: 45px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions-top3
+ {
+ top: 90px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions-bottom1
+ {
+ top: 150px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions-bottom2
+ {
+ top: 195px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .seats-message-actions-bottom3
+ {
+ top: 240px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .delim
+ {
+ height: 38px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .delim-0
+ {
+ left: 54px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .delim-1
+ {
+ left: 110px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .delim-2
+ {
+ left: 166px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .button0
+ {
+ left: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .button1
+ {
+ left: 56px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .button2
+ {
+ left: 112px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1 .button3
+ {
+ left: 168px;
+}
+
+/* END concept 1.1 */ /* BEGIN concept 1.2 */
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-actions
+ {
+ left: 154px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-1
+ {
+ top: 35px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-2
+ {
+ top: 203px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .quality
+ {
+ width: 56px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .quality img
+ {
+ margin-top: 10px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-actions
+ {
+ width: 224px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-actions-top2
+ {
+ top: 60px;
+ left: 210px;
+ width: 168px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-actions-bottom1
+ {
+ top: 170px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .seats-message-actions-bottom2
+ {
+ top: 230px;
+ left: 210px;
+ width: 168px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .delim-0
+ {
+ left: 54px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .delim-1
+ {
+ left: 110px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .delim-2
+ {
+ left: 166px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .button0
+ {
+ left: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .button1
+ {
+ left: 56px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .button2
+ {
+ left: 112px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2 .button3
+ {
+ left: 168px;
+}
+
+/* END concept 1.2 */ /* BEGIN concept 1.3 */
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .indButtonMCS div.small_ind_active
+ {
+ background: url(../images/climate/small_ind_green.png) no-repeat;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .patternTextIndicator
+ {
+ top: -29px;
+ width: 80px;
+ text-align: center;
+ font-size: 18px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .patternTextTop
+ {
+ left: 280px;
+ width: 150px;
+ text-align: center;
+ font-size: 18px;
+ top: 30px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .patternTextBottom
+ {
+ left: 280px;
+ width: 150px;
+ text-align: center;
+ font-size: 18px;
+ top: 140px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions
+ {
+ left: 154px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-1
+ {
+ top: 35px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-2
+ {
+ top: 203px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .quality
+ {
+ width: 56px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .quality img
+ {
+ margin-top: 10px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions
+ {
+ width: 224px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions-top1
+ {
+ left: 159px;
+ top: 60px;
+ width: 78px;
+ height: 20px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions-top2
+ {
+ left: 270px;
+ top: 60px;
+ width: 168px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions-bottom1
+ {
+ top: 170px;
+ left: 159px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .seats-message-actions-bottom2
+ {
+ top: 170px;
+ left: 270px;
+ width: 168px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .delim-0
+ {
+ left: 54px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .delim-1
+ {
+ left: 110px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .delim-2
+ {
+ left: 166px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .button0
+ {
+ left: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .button1
+ {
+ left: 56px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .button2
+ {
+ left: 112px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_3 .button3
+ {
+ left: 168px;
+}
+
+/* END concept 1.3 */ /* BEGIN concept 1.4 */
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .patternText1
+ {
+ width: 78px;
+ height: 20px;
+ top: 65px;
+ left: 270px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .pattern1
+ {
+ background-image: url('../images/settings/massageTop.png');
+ background-repeat: no-repeat;
+ background-position: 53px 0px;
+ background-size: contain;
+ width: 83px;
+ height: 20px;
+ top: 65px;
+ left: 209px;
+ text-align: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .pattern2
+ {
+ background-image: url('../images/settings/massageBottom.png');
+ background-repeat: no-repeat;
+ background-position: 53px 0px;
+ background-size: contain;
+ width: 83px;
+ height: 20px;
+ top: 65px;
+ left: 209px;
+ text-align: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .pattern3
+ {
+ background-image: url('../images/settings/massageVertical.png');
+ background-repeat: no-repeat;
+ background-position: 52px 0px;
+ background-size: contain;
+ width: 83px;
+ height: 20px;
+ top: 65px;
+ left: 202px;
+ text-align: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .patternbottom1
+ {
+ background-image: url('../images/settings/massageCircle.png');
+ background-repeat: no-repeat;
+ background-position: 53px 0px;
+ background-size: contain;
+ width: 83px;
+ height: 20px;
+ top: 165px;
+ left: 196px;
+ text-align: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .patternbottom2
+ {
+ background-image: url('../images/settings/massageRound.png');
+ background-repeat: no-repeat;
+ background-position: 55px 0px;
+ background-size: contain;
+ width: 83px;
+ height: 20px;
+ top: 165px;
+ left: 196px;
+ text-align: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .patternbottom3
+ {
+ background-image: url('../images/settings/massageHorisontal.png');
+ background-repeat: no-repeat;
+ background-position: 55px 0px;
+ background-size: contain;
+ width: 83px;
+ height: 20px;
+ top: 165px;
+ left: 202px;
+ text-align: left;
+}
+
+#seatsMassageView1_4 .seatsMassageView1_4_seatLabel {
+ top: 172px;
+ left: 45px;
+ font-size: 24px;
+ width: 199px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .seats-message-2
+ {
+ top: 105px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .patternText2
+ {
+ width: 78px;
+ height: 20px;
+ top: 165px;
+ left: 271px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .labelTitle
+ {
+ width: 600px;
+ text-align: left;
+ height: 30px;
+ line-height: 30px;
+ font-size: 26px;
+ left: 74px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Settings
+ {
+ top: 200px;
+ left: 197px;
+ width: 138px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Settings span
+ {
+ float: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Settings .ico
+ {
+ float: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Massage
+ {
+ text-align: center;
+ height: 48px;
+ line-height: 48px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Massage.button0
+ {
+ top: 70px;
+ left: 45px;
+ width: 200px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Massage.button1
+ {
+ top: 130px;
+ left: 45px;
+ width: 200px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Massage.button2
+ {
+ top: 190px;
+ left: 45px;
+ width: 200px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5Back
+ {
+ top: 280px;
+ left: 45px;
+ width: 200px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .concept1_5SettingsScreen
+ {
+ top: -60px;
+ left: -112px;
+ width: 800px;
+ height: 345px;
+ background: black;
+ z-index: 100;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .btn-48
+ {
+ line-height: 48px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .show
+ {
+ visibility: visible !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .hide
+ {
+ visibility: hidden;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .quality
+ {
+ width: 56px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .quality img
+ {
+ margin-top: 10px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .seats-message-actions-top
+ {
+ left: 355px;
+ top: 120px;
+ width: 168px !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .seats-message-actions-bottom
+ {
+ left: 355px;
+ top: 210px;
+ width: 168px !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .seats-message-actions
+ {
+ width: 224px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .seats-message-actions-2
+ {
+ top: 100px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .delim-0
+ {
+ left: 54px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .delim-1
+ {
+ left: 110px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .delim-2
+ {
+ left: 166px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .button0
+ {
+ left: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .button1
+ {
+ left: 56px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .button2
+ {
+ left: 112px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 .button3
+ {
+ left: 168px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 #alternatingMassage .seats-message-1
+ {
+ width: 32px;
+ height: 38px;
+ top: 126px;
+ background: url(../images/settings/seats-message.png) no-repeat;
+ left: 285px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_4 #alternatingMassage .seats-message-2
+ {
+ width: 32px;
+ height: 38px;
+ top: 216px;
+ left: 285px;
+ background: url(../images/settings/seats-message.png) no-repeat 0 -61px;
+}
+
+/* END concept 1.4 */ /* BEGIN concept 1.5 */
+#seatsMassageView1_5 .seatsMassageView1_5_seatLabel {
+ top: 160px;
+ left: 0px;
+ font-size: 24px;
+ width: 199px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .labelTitle
+ {
+ width: 600px;
+ text-align: left;
+ height: 30px;
+ line-height: 30px;
+ font-size: 26px;
+ left: 74px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .labelText
+ {
+ top: 97px;
+ width: 672px;
+ text-align: center;
+ left: 140px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Settings
+ {
+ top: 120px;
+ left: 205px;
+ width: 138px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Settings span
+ {
+ float: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Settings .ico
+ {
+ float: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Massage
+ {
+ text-align: center;
+ height: 48px;
+ line-height: 48px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Massage.button0
+ {
+ top: 147px;
+ left: 240px;
+ width: 150px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Massage.button1
+ {
+ top: 147px;
+ left: 400px;
+ width: 150px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Massage.button2
+ {
+ top: 147px;
+ left: 560px;
+ width: 150px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5Back
+ {
+ top: 280px;
+ left: 45px;
+ width: 200px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .concept1_5SettingsScreen
+ {
+ top: -60px;
+ left: -112px;
+ width: 800px;
+ height: 345px;
+ background: black;
+ z-index: 100;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Settings .ico
+ {
+ float: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .btn-48
+ {
+ line-height: 48px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .show
+ {
+ visibility: visible !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView1_5 .hide
+ {
+ visibility: hidden;
+}
+
+/* END concept 1.5 */ /* BEGIN HMI concept 2.1 */
+#seatsMassageView2_1 .seatsMassageView2_1_seatLabel {
+ top: 160px;
+ left: 0px;
+ font-size: 24px;
+ width: 199px;
+ text-align: center;
+}
+
+#seatsMassageView2_1 .MultiContourSeat_customMassage_caption {
+ width: 600px;
+ height: 28px;
+ line-height: 29px;
+ left: 74px;
+ font-size: 26px;
+}
+
+#seatsMassageView2_1 .control {
+ width: 237px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .quality
+ {
+ width: 50px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .seats-message-actions
+ {
+ width: 250px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .delim-0
+ {
+ left: 48px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .delim-1
+ {
+ left: 98px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .delim-2
+ {
+ left: 148px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .button0
+ {
+ left: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .button1
+ {
+ left: 50px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .button2
+ {
+ left: 100px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .button3
+ {
+ left: 150px;
+ width: 100px;
+}
+
+#seatsMassageView2_1_settingsButton {
+ width: 210px;
+ left: 175px;
+ top: 130px;
+ line-height: 49px;
+}
+
+#seatsMassageView2_1_settingsButton .ico {
+ float: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .control-11
+ {
+ top: 60px;
+ left: 370px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .control-12
+ {
+ top: 105px;
+ left: 370px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .control-13
+ {
+ top: 150px;
+ left: 370px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .control-14
+ {
+ top: 210px;
+ left: 370px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_1 .control-15
+ {
+ top: 255px;
+ left: 370px;
+}
+
+#seatsMassageView2_1 #MultiContourSeat_customMassage .seats-message-1 {
+ left: 150px;
+ top: 107px;
+}
+
+#seatsMassageView2_1 #MultiContourSeat_customMassage .seats-message-2 {
+ left: 150px;
+ top: 234px;
+}
+
+#seatsMassageView2_1_upperLabel {
+ top: 73px;
+ left: 645px;
+}
+
+#seatsMassageView2_1_middleLabel {
+ top: 117px;
+ left: 645px;
+}
+
+#seatsMassageView2_1_lowerLabel {
+ top: 162px;
+ left: 645px;
+}
+
+#seatsMassageView2_1_frontLabel {
+ top: 223px;
+ left: 645px;
+}
+
+#seatsMassageView2_1_rearLabel {
+ top: 266px;
+ left: 645px;
+}
+
+/* END HMI concept 2.1 */ /* BEGIN HMI concept 2.2 */
+#seatsMassageView2_2 .MultiContourSeat_customMassage_previewButtonTop {
+ top: 134px;
+ left: 625px;
+ width: 120px;
+ text-align: center;
+}
+
+#seatsMassageView2_2 .MultiContourSeat_customMassage_previewButtonBottom
+ {
+ top: 282px;
+ left: 625px;
+ width: 120px;
+ text-align: center;
+}
+
+#seatsMassageView2_2 .control {
+ width: 240px;
+ /*height: 28px;*/
+}
+
+#seatsMassageView2_2 .seatsMassageView2_2_seatLabel {
+ top: 172px;
+ left: 0px;
+ font-size: 24px;
+ width: 199px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .quality
+ {
+ width: 100px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .seats-message-actions
+ {
+ width: 200px;
+ left: 198px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .delim-0
+ {
+ left: 98px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .button0
+ {
+ left: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .button1
+ {
+ left: 100px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .control-11
+ {
+ top: 80px;
+ left: 370px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .control-12
+ {
+ top: 125px;
+ left: 370px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .control-13
+ {
+ top: 170px;
+ left: 370px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .control-14
+ {
+ top: 253px;
+ left: 370px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView2_2 .control-15
+ {
+ top: 298px;
+ left: 370px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .seats-message-1 {
+ left: 230px;
+ top: 128px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .seats-message-2 {
+ left: 720px;
+ top: 275px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .seats-message-actions-3
+ {
+ top: 45px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .seats-message-actions-4
+ {
+ top: 218px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .seats-message-actions
+ {
+ left: 358px;
+ width: 265px;
+ height: 28px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .quality {
+ width: 50px;
+ height: 28px;
+ line-height: 29px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .delim {
+ height: 28px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .delim-0 {
+ left: 48px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .delim-1 {
+ left: 98px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .delim-2 {
+ left: 148px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .button0 {
+ left: 0;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .button1 {
+ left: 50px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .button2 {
+ left: 100px;
+}
+
+#seatsMassageView2_2 #MultiContourSeat_customMassage .button3 {
+ left: 150px;
+ width: 115px;
+}
+
+#seatsMassageView2_2_upperLabel {
+ top: 93px;
+ left: 645px;
+}
+
+#seatsMassageView2_2_middleLabel {
+ top: 138px;
+ left: 645px;
+}
+
+#seatsMassageView2_2_lowerLabel {
+ top: 182px;
+ left: 645px;
+}
+
+#seatsMassageView2_2_frontLabel {
+ top: 266px;
+ left: 645px;
+}
+
+#seatsMassageView2_2_rearLabel {
+ top: 310px;
+ left: 645px;
+}
+
+#seatsMassageView2_2_settingsButton {
+ width: 210px;
+ left: 192px;
+ top: 130px;
+ line-height: 49px;
+}
+
+#seatsMassageView2_2_settingsButton .ico {
+ float: left;
+}
+
+/* END HMI concept 2.2 */ /* BEGIN HMI concept 4.1 */
+#seatsMassageView4_1 .seatsMassageView4_1_seatLabel {
+ top: 172px;
+ left: 45px;
+ font-size: 24px;
+ width: 199px;
+ text-align: center;
+}
+
+#seatsMassageView4_1_settingsButton {
+ width: 140px;
+ left: 200px;
+ top: 130px;
+ line-height: 49px;
+}
+
+#seatsMassageView4_1_settingsButton .ico {
+ float: left;
+}
+
+#seatsMassageView4_1 #MultiContourSeat_customMassage .seats-message-actions
+ {
+ left: 280px;
+}
+
+#seatsMassageView4_1 #MultiContourSeat_customMassage .seats-message-actions-3
+ {
+ top: 115px;
+}
+
+#seatsMassageView4_1 #MultiContourSeat_customMassage .seats-message-actions-4
+ {
+ top: 205px;
+}
+
+#seatsMassageView4_1 #MultiContourSeat_customMassage .seats-message-3 {
+ right: 220px;
+ top: 120px;
+ width: 32px;
+ height: 38px;
+ background: url(../images/settings/seats-message.png) no-repeat;
+}
+
+#seatsMassageView4_1 #MultiContourSeat_customMassage .seats-message-4 {
+ right: 220px;
+ top: 210px;
+ width: 32px;
+ height: 38px;
+ background: url(../images/settings/seats-message.png) no-repeat 0 -61px;
+}
+
+/* END HMI concept 4.1 */ /* BEGIN HMI concept 5.1 */
+#seatsMassageView5_1 .MultiContourSeat_customMassage_caption {
+ width: 600px;
+ height: 28px;
+ line-height: 29px;
+ left: 74px;
+ font-size: 26px;
+}
+
+#seatsMassageView5_1 .seatsMassageView5_1_seatLabel {
+ top: 187px;
+ left: 0px;
+ font-size: 24px;
+ width: 140px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 #MultiContourSeat_customMassage_backButtonCenter
+ {
+ bottom: 0px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .lableToggleButton
+ {
+ height: 48px;
+ border: 1px solid gray;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .lableToggleButton .btn-48
+ {
+ height: 46px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .lableToggleButton .lableToggle
+ {
+ line-height: 30px;
+ margin-left: 10px;
+ margin-top: 10px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .toogleButtonContainer
+ {
+ width: 100px;
+ margin: 0px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .toogleButtonContainer .toggles
+ {
+ position: absolute;
+ float: left;
+ width: 50px;
+ height: 28px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .seatsMassageView_settingsButton
+ {
+ width: 140px;
+ left: 200px;
+ top: 130px;
+ line-height: 49px;
+ text-align: left !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .seatsMassageView_settingsButton span
+ {
+ position: absolute;
+ line-height: 50px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .toogleButtonContainer span
+ {
+ position: absolute;
+ width: 50px;
+ margin-top: 0px;
+ text-align: center;
+ line-height: 28px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .seats-message-actions-3
+ {
+ left: 247px;
+ margin-top: 10px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Settings
+ {
+ top: 200px;
+ left: 197px;
+ width: 138px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Settings span
+ {
+ float: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Settings .ico
+ {
+ float: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Massage
+ {
+ text-align: center;
+ height: 48px;
+ line-height: 48px;
+}
+
+#seatsMassageView5_1 .MCSSettingslist {
+ top: 76px;
+ left: 139px;
+ height: 251px;
+}
+
+#seatsMassageView5_1 .MCSSettingslist .list-content {
+ width: 674px;
+ border-right: none;
+ border-top: none;
+}
+
+#seatsMassageView5_1 .MCSSettingslist .list-item:first-child,#seatsMassageView5_1 .MCSSettingslist .soundButton:first-child
+ {
+ border-top: 1px solid #393939;
+ height: 48px;
+}
+
+#seatsMassageView5_1 .MCSSettingslist .list-item {
+ position: relative;
+ width: 577px;
+ float: left;
+ height: 49px;
+ border-bottom: 1px solid #393939;
+ border-right: 1px solid #393939;
+ line-height: 50px;
+}
+
+#seatsMassageView5_1 .MCSSettingslist .list-item.soundButton {
+ width: 48px;
+ border-left: 1px solid #393939;
+ margin-left: 10px;
+}
+
+#seatsMassageView5_1 .MCSSettingslist .list-item.soundButton .ico {
+ border: none;
+ margin-top: 12px;
+ margin-right: 11px;
+}
+
+#seatsMassageView5_1 .MCSSettingslist .list-item.pressed {
+ background: url(../images/phone/phone_button_bg_active.png) repeat-x
+ !important;
+}
+
+#seatsMassageView5_1 .MCSSettingslist .list-item>span {
+ margin-left: 13px;
+}
+
+#seatsMassageView5_1 .MCSSettingslist .list-item .ico {
+ float: right;
+ border: 1px solid #393939;
+ border-radius: 2px;
+ margin-top: 9px;
+ margin-right: 9px;
+}
+
+#seatsMassageView5_1 .MCSSettingslist .list-item.big-ico img {
+ float: right;
+ border: none;
+ margin-top: 4px;
+ margin-right: 9px;
+}
+
+#seatsMassageView5_1 .MCSSettingslist .toggles,#seatsMassageView5_1 .MCSSettingslist .toggles span
+ {
+ width: 148px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .MCSSettingslist .button1
+ {
+ left: 148px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .MCSSettingslist .delim
+ {
+ height: 29px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .MCSSettingslist .delim-0
+ {
+ left: 147px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .toogleButtonContainer .button1
+ {
+ left: 50px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .toogleButtonContainer .delim-0
+ {
+ left: 48px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5Back
+ {
+ top: 280px;
+ left: 45px;
+ width: 200px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .concept1_5SettingsScreen
+ {
+ top: -60px;
+ left: 154px;
+ width: 291px;
+ height: 345px;
+ background: black;
+ z-index: 100;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .btn-48
+ {
+ line-height: 48px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .show
+ {
+ visibility: visible !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView5_1 .hide
+ {
+ visibility: hidden;
+}
+
+/* END HMI concept 5.1 */ /* BEGIN HMI concept 5.2 */
+#seatsMassageView5_2_settingsButton {
+ width: 140px;
+ left: 200px;
+ top: 130px;
+ line-height: 49px;
+}
+
+#seatsMassageView5_2 .MultiContourSeat_customMassage_caption {
+ width: 600px;
+ height: 28px;
+ line-height: 29px;
+ left: 74px;
+ font-size: 26px;
+}
+
+#seatsMassageView5_2 .seatsMassageView5_2_seatLabel {
+ top: 160px;
+ left: 0px;
+ font-size: 24px;
+ width: 199px;
+ text-align: center;
+}
+
+#seatsMassageView5_2_settingsButton .ico {
+ float: left;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .seats-message-actions
+ {
+ left: 275px;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .seats-message-actions-3
+ {
+ top: 90px;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .seats-message-actions-4
+ {
+ top: 190px;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .quality {
+ width: 50px;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .seats-message-actions
+ {
+ width: 250px;
+}
+
+#MultiContourSeat_customMassage_5_2_topLabel {
+ top: 65px;
+ left: 275px;
+ width: 250px;
+ text-align: center;
+}
+
+#MultiContourSeat_customMassage_5_2_bottomLabel {
+ top: 165px;
+ left: 275px;
+ width: 250px;
+ text-align: center;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .delim-0 {
+ left: 48px;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .delim-1 {
+ left: 98px;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .delim-2 {
+ left: 148px;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .delim-3 {
+ left: 198px;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .button0 {
+ left: 0;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .button1 {
+ left: 50px;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .button2 {
+ left: 100px;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .button3 {
+ left: 150px;
+}
+
+#seatsMassageView5_2 #MultiContourSeat_customMassage .button4 {
+ left: 200px;
+}
+
+/* END HMI concept 5.2 */ /* BEGIN HMI concept 6.1 */
+#seatsMassageView6_1 #settingsScreen .seatsMassageView6_1_seatLabel {
+ top: 13px;
+ left: 600px;
+ font-size: 24px;
+ width: 199px;
+ text-align: center;
+}
+
+#seatsMassageView6_1 .mySettingsPopUpTitle {
+ width: 143px;
+ height: 25px;
+ position: absolute;
+ top: 163px;
+ left: 216px !important;
+ background: gray;
+ text-align: center;
+ line-height: 25px;
+ font-size: 16px !important;
+ font-weight: bold;
+}
+
+#seatsMassageView6_1 .mySettingsLabel {
+ z-index: 100;
+ left: 102px;
+}
+
+#seatsMassageView6_1 .MultiContourSeat_customMassage .btn-28.active {
+ background: url(../images/common/btn-48h-active-gray.png) repeat-x
+ !important;
+}
+
+#seatsMassageView6_1 #settingsScreen .durationButtons .quality,#seatsMassageView6_1 #settingsScreen .pauseButtons .quality
+ {
+ width: 60px;
+}
+
+#seatsMassageView6_1 #settingsScreen .quality {
+ height: 35px;
+ width: 130px;
+ border: 1px solid #393939;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+
+#seatsMassageView6_1 #settingsScreen .btn-28 {
+ text-align: center;
+ line-height: 34px;
+}
+
+#seatsMassageView6_1 .settingsScreen {
+ width: 800px;
+ height: 368px;
+ top: -15px;
+ background: black;
+ visibility: hidden;
+}
+
+#seatsMassageView6_1 .settingsScreen2 {
+ width: 800px;
+ height: 368px;
+ top: -15px;
+ background: black;
+ visibility: hidden;
+}
+
+#seatsMassageView6_1 #settingsScreen .seats-message-actions {
+ height: 39px;
+ border: none;
+}
+
+#seatsMassageView6_1 #settingsScreen .button0 {
+ left: 0;
+}
+
+#seatsMassageView6_1 #settingsScreen .button1 {
+ left: 140px;
+}
+
+#seatsMassageView6_1 #settingsScreen .button2 {
+ left: 280px;
+}
+
+#seatsMassageView6_1 #settingsScreen .button3 {
+ left: 420px;
+}
+
+#seatsMassageView6_1 #settingsScreen .durationButtons .button0,#seatsMassageView6_1 #settingsScreen .pauseButtons .button0
+ {
+ left: 0;
+}
+
+#seatsMassageView6_1 #settingsScreen .durationButtons .button1,#seatsMassageView6_1 #settingsScreen .pauseButtons .button1
+ {
+ left: 70px;
+}
+
+#seatsMassageView6_1 #settingsScreen .durationButtons .button2,#seatsMassageView6_1 #settingsScreen .pauseButtons .button2
+ {
+ left: 140px;
+}
+
+#seatsMassageView6_1 #settingsScreen .durationButtons .button3,#seatsMassageView6_1 #settingsScreen .pauseButtons .button3
+ {
+ left: 210px;
+}
+
+#seatsMassageView6_1 #settingsScreen .durationButtons .button4,#seatsMassageView6_1 #settingsScreen .pauseButtons .button4
+ {
+ left: 280px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .control-11
+ {
+ top: 60px;
+ left: 350px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .control-12
+ {
+ top: 105px;
+ left: 350px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .control-13
+ {
+ top: 150px;
+ left: 350px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .control-14
+ {
+ top: 230px;
+ left: 350px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .control-15
+ {
+ top: 275px;
+ left: 350px;
+}
+
+#seatsMassageView6_1 #settingsScreen2 .seats-message-1 {
+ left: 280px;
+ top: 110px;
+}
+
+#seatsMassageView6_1 #settingsScreen2 .seats-message-2 {
+ left: 280px;
+ top: 252px;
+}
+
+#seatsMassageView6_1 .seatsMassageView6_1_seatLabel {
+ top: 172px;
+ left: 45px;
+ font-size: 24px;
+ width: 199px;
+ text-align: center;
+}
+
+#seatsMassageView6_1 .MultiContourSeat_customMassage_caption {
+ width: 600px;
+ height: 28px;
+ line-height: 29px;
+ left: 74px;
+ font-size: 26px;
+}
+
+#seatsMassageView6_1 .seatsMassageView6_1_upperLabel {
+ top: 73px;
+ left: 615px !important;
+ font-size: 18px !important;
+}
+
+#seatsMassageView6_1 .seatsMassageView6_1_middleLabel {
+ top: 118px;
+ left: 615px !important;
+ font-size: 18px !important;
+}
+
+#seatsMassageView6_1 .seatsMassageView6_1_lowerLabel {
+ top: 163px;
+ left: 615px !important;
+ font-size: 18px !important;
+}
+
+#seatsMassageView6_1 .seatsMassageView6_1_frontLabel {
+ top: 243px;
+ left: 615px !important;
+ font-size: 18px !important;
+}
+
+#seatsMassageView6_1 .seatsMassageView6_1_rearLabel {
+ top: 287px;
+ left: 615px !important;
+ font-size: 18px !important;
+}
+
+#seatsMassageView6_1 .label {
+ font-size: 26px;
+ left: 20px;
+}
+
+#seatsMassageView6_1 .massageLabel {
+ top: 51px;
+}
+
+#seatsMassageView6_1 .pattern {
+ top: 91px;
+}
+
+#seatsMassageView6_1 .intensity {
+ top: 131px;
+}
+
+#seatsMassageView6_1 .speed {
+ top: 211px;
+}
+
+#seatsMassageView6_1 .duration {
+ top: 251px;
+}
+
+#seatsMassageView6_1 .pause {
+ top: 291px;
+}
+
+#seatsMassageView6_1 .editMenu {
+ left: 70px;
+ width: 240px;
+ top: 12px;
+ text-align: center;
+}
+
+#seatsMassageView6_1 .massageButtons {
+ top: 50px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_1 .massageButtons img {
+ height: 34px;
+}
+
+#seatsMassageView6_1 .patternButtons {
+ top: 90px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_1 .intensityButtons {
+ top: 130px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_1 .intensityEditCustom {
+ top: 170px;
+ left: 520px;
+ width: 270px;
+ height: 34px;
+}
+
+#seatsMassageView6_1 .speedButtons {
+ top: 210px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_1 .durationButtons {
+ top: 250px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_1 .pauseButtons {
+ top: 290px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_1 .preview {
+ top: 330px;
+ left: 289px;
+ width: 214px;
+ height: 34px;
+}
+
+#seatsMassageView6_1 .MultiContourSeat_customMassage_caption {
+ width: 600px;
+ height: 28px;
+ line-height: 29px;
+ left: 74px;
+ font-size: 26px;
+}
+
+#seatsMassageView6_1 .settingsScreen2 .MultiContourSeat_customMassage_caption
+ {
+ top: 14px;
+}
+
+#seatsMassageView6_1 .SettingsBlocks {
+ margin-left: auto;
+ margin-right: auto;
+ width: 315px;
+ height: 50px;
+ position: relative;
+ -webkit-transition: width 1s;
+}
+
+#seatsMassageView6_1 .MultiContourSeat_customMassage {
+ visibility: hidden;
+ background-color: #000;
+ z-index: 200;
+ width: 800px;
+ height: 345px;
+ position: absolute;
+ top: -60px;
+ left: -112px;
+ background-image: url('../images/settings/mcsBlockBackArrow6_1.png');
+ background-position: 339px 39px;
+ background-repeat: no-repeat;
+}
+
+#seatsMassageView6_1 .btn-48 {
+ line-height: 48px;
+ text-align: center;
+}
+
+#seatsMassageView6_1 .show {
+ visibility: visible !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButtonUp
+ {
+ width: 200px;
+ left: 560px;
+ top: 101px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButtonDown
+ {
+ width: 200px;
+ left: 560px;
+ bottom: 143px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButtonEdit
+ {
+ width: 250px;
+ left: 275px;
+ bottom: 40px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButtonNew
+ {
+ width: 100px;
+ left: 275px;
+ bottom: 0px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButtonTrash
+ {
+ width: 140px;
+ left: 385px;
+ bottom: 0px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsBlock
+ {
+ width: 220px;
+ top: 130px;
+ text-align: center !important;
+ transition: 1s;
+ -webkit-transition: top 1s; /* Safari and Chrome */
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButton
+ {
+ width: 159px;
+ left: 154px;
+ top: 205px;
+ line-height: 49px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButton2
+ {
+ width: 50px;
+ left: 365px;
+ top: 205px;
+ line-height: 49px;
+ text-align: left !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .seatsMassageView_settingsButton3
+ {
+ width: 50px;
+ left: 403px;
+ top: 130px;
+ line-height: 49px;
+ text-align: left !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .hide
+ {
+ visibility: hidden;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_1 .captionMySettings
+ {
+ top: 157px;
+ left: 138px;
+ width: 300px;
+ height: 90px;
+ border: 1px solid;
+ padding: 8px 13px 13px 13px;
+ font-size: 26px;
+}
+
+/* END HMI concept 6.1 */ /* BEGIN HMI concept 6.2 */
+#seatsMassageView6_2 #settingsScreen .seatsMassageView6_2_seatLabel {
+ top: 13px;
+ left: 600px;
+ font-size: 24px;
+ width: 199px;
+ text-align: center;
+}
+
+#seatsMassageView6_2 .MultiContourSeat_customMassage .seatsMassageView6_2_seatLabel_custom
+ {
+ top: 60px;
+ left: 300px !important;
+ font-size: 24px;
+ width: 199px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButton
+ {
+ width: 159px;
+ left: 154px;
+ top: 205px;
+ line-height: 49px;
+ z-index: 1;
+}
+
+#seatsMassageView6_2 .mySettingsPopUpTitle {
+ width: 143px;
+ height: 25px;
+ position: absolute;
+ top: 163px;
+ left: 216px !important;
+ background: gray;
+ text-align: center;
+ line-height: 25px;
+ font-size: 16px !important;
+ font-weight: bold;
+}
+
+#seatsMassageView6_2 .mySettingsLabel {
+ z-index: 100;
+ left: 102px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .captionMySettings
+ {
+ top: 157px;
+ left: 138px;
+ width: 300px;
+ height: 90px;
+ border: 1px solid;
+ padding: 8px 13px 13px 13px;
+ font-size: 26px;
+}
+
+#seatsMassageView6_2 #settingsScreen .durationButtons .quality,#seatsMassageView6_2 #settingsScreen .pauseButtons .quality
+ {
+ width: 60px;
+}
+
+#seatsMassageView6_2 #settingsScreen .quality {
+ height: 35px;
+ width: 130px;
+ border: 1px solid #393939;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+
+#seatsMassageView6_2 #settingsScreen .btn-28 {
+ text-align: center;
+ line-height: 34px;
+}
+
+#seatsMassageView6_2 .settingsScreen {
+ width: 800px;
+ height: 368px;
+ top: -15px;
+ background: black;
+ visibility: hidden;
+}
+
+#seatsMassageView6_2 .settingsScreen2 {
+ width: 800px;
+ height: 368px;
+ top: -15px;
+ background: black;
+ visibility: hidden;
+}
+
+#seatsMassageView6_2 #settingsScreen .seats-message-actions {
+ height: 39px;
+ border: none;
+}
+
+#seatsMassageView6_2 #settingsScreen .button0 {
+ left: 0;
+}
+
+#seatsMassageView6_2 #settingsScreen .button1 {
+ left: 140px;
+}
+
+#seatsMassageView6_2 #settingsScreen .button2 {
+ left: 280px;
+}
+
+#seatsMassageView6_2 #settingsScreen .button3 {
+ left: 420px;
+}
+
+#seatsMassageView6_2 #settingsScreen .durationButtons .button0,#seatsMassageView6_2 #settingsScreen .pauseButtons .button0
+ {
+ left: 0;
+}
+
+#seatsMassageView6_2 #settingsScreen .durationButtons .button1,#seatsMassageView6_2 #settingsScreen .pauseButtons .button1
+ {
+ left: 70px;
+}
+
+#seatsMassageView6_2 #settingsScreen .durationButtons .button2,#seatsMassageView6_2 #settingsScreen .pauseButtons .button2
+ {
+ left: 140px;
+}
+
+#seatsMassageView6_2 #settingsScreen .durationButtons .button3,#seatsMassageView6_2 #settingsScreen .pauseButtons .button3
+ {
+ left: 210px;
+}
+
+#seatsMassageView6_2 #settingsScreen .durationButtons .button4,#seatsMassageView6_2 #settingsScreen .pauseButtons .button4
+ {
+ left: 280px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .control-11
+ {
+ top: 60px;
+ left: 350px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .control-12
+ {
+ top: 105px;
+ left: 350px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .control-13
+ {
+ top: 150px;
+ left: 350px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .control-14
+ {
+ top: 230px;
+ left: 350px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .control-15
+ {
+ top: 275px;
+ left: 350px;
+}
+
+#seatsMassageView6_2 #settingsScreen2 .seats-message-1 {
+ left: 280px;
+ top: 110px;
+}
+
+#seatsMassageView6_2 #settingsScreen2 .seats-message-2 {
+ left: 280px;
+ top: 252px;
+}
+
+#seatsMassageView6_2 .seatsMassageView6_2_seatLabel {
+ top: 172px;
+ left: 45px;
+ font-size: 24px;
+ width: 199px;
+ text-align: center;
+}
+
+#seatsMassageView6_2 .MultiContourSeat_customMassage_caption {
+ width: 600px;
+ height: 28px;
+ line-height: 29px;
+ left: 74px;
+ font-size: 26px;
+}
+
+#seatsMassageView6_2 .seatsMassageView6_2_upperLabel {
+ top: 73px;
+ left: 615px !important;
+ font-size: 18px !important;
+}
+
+#seatsMassageView6_2 .seatsMassageView6_2_middleLabel {
+ top: 118px;
+ left: 615px !important;
+ font-size: 18px !important;
+}
+
+#seatsMassageView6_2 .seatsMassageView6_2_lowerLabel {
+ top: 163px;
+ left: 615px !important;
+ font-size: 18px !important;
+}
+
+#seatsMassageView6_2 .seatsMassageView6_2_frontLabel {
+ top: 243px;
+ left: 615px !important;
+ font-size: 18px !important;
+}
+
+#seatsMassageView6_2 .seatsMassageView6_2_rearLabel {
+ top: 287px;
+ left: 615px !important;
+ font-size: 18px !important;
+}
+
+#seatsMassageView6_2 .label {
+ font-size: 26px;
+ left: 20px;
+}
+
+#seatsMassageView6_2 .massageLabel {
+ top: 51px;
+}
+
+#seatsMassageView6_2 .pattern {
+ top: 91px;
+}
+
+#seatsMassageView6_2 .intensity {
+ top: 131px;
+}
+
+#seatsMassageView6_2 .speed {
+ top: 211px;
+}
+
+#seatsMassageView6_2 .duration {
+ top: 251px;
+}
+
+#seatsMassageView6_2 .pause {
+ top: 291px;
+}
+
+#seatsMassageView6_2 .editMenu {
+ width: 240px;
+ top: 12px;
+ text-align: center;
+ left: 70px;
+}
+
+#seatsMassageView6_2 .massageButtons {
+ top: 50px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_2 .massageButtons img {
+ height: 34px;
+}
+
+#seatsMassageView6_2 .patternButtons {
+ top: 90px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_2 .intensityButtons {
+ top: 130px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_2 .intensityEditCustom {
+ top: 170px;
+ left: 520px;
+ width: 270px;
+ height: 34px;
+}
+
+#seatsMassageView6_2 .speedButtons {
+ top: 210px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_2 .durationButtons {
+ top: 250px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_2 .pauseButtons {
+ top: 290px;
+ left: 240px;
+ width: 560px;
+}
+
+#seatsMassageView6_2 .preview {
+ top: 330px;
+ left: 289px;
+ width: 214px;
+ height: 34px;
+}
+
+#seatsMassageView6_2 .settingsScreen2 .MultiContourSeat_customMassage_caption
+ {
+ top: 14px;
+}
+
+#seatsMassageView6_2 .MultiContourSeat_customMassage_caption {
+ width: 600px;
+ height: 28px;
+ line-height: 29px;
+ left: 74px;
+ font-size: 26px;
+}
+
+#seatsMassageView6_2 .SettingsBlocks {
+ margin-left: auto;
+ margin-right: auto;
+ width: 315px;
+ height: 50px;
+ position: relative;
+ -webkit-transition: width 1s;
+}
+
+#seatsMassageView6_2 .MultiContourSeat_customMassage {
+ visibility: hidden;
+ background-color: #000;
+ z-index: 200;
+ width: 800px;
+ height: 345px;
+ position: absolute;
+ top: -60px;
+ left: -112px;
+ background-image: url('../images/settings/mcsBlockBackArrow6_2.png');
+ background-position: 39px 145px;
+ background-repeat: no-repeat;
+}
+
+#seatsMassageView6_2 .btn-48 {
+ line-height: 48px;
+ text-align: center;
+}
+
+#seatsMassageView6_2 .show {
+ visibility: visible !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButtonNew
+ {
+ width: 100px;
+ left: 270px;
+ bottom: 20px;
+ line-height: 49px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButtonTrash
+ {
+ width: 71px;
+ left: 446px;
+ bottom: 5px;
+ line-height: 49px;
+ height: 78px;
+ background-image: url("../images/settings/trash.png");
+ background-repeat: no-repeat;
+ background-size: contain;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButtonSave
+ {
+ width: 100px;
+ left: 480px;
+ bottom: 20px;
+ line-height: 49px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsBlock
+ {
+ width: 100px;
+ top: 130px;
+ line-height: 49px;
+ text-align: center !important;
+ transition: left 1s;
+ -webkit-transition: left 1s; /* Safari and Chrome */
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButton2
+ {
+ width: 50px;
+ left: 365px;
+ top: 205px;
+ line-height: 49px;
+ text-align: left !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .seatsMassageView_settingsButton3
+ {
+ width: 50px;
+ left: 403px;
+ top: 130px;
+ line-height: 49px;
+ text-align: left !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView6_2 .hide
+ {
+ visibility: hidden;
+}
+
+/* END HMI concept 6.2 */ /* BEGIN HMI concept 7.1 */
+#seatsMassageView7_1_appendix .localBack {
+ background: url(../images/common/page-back-button.png) no-repeat center
+ 12px, url(../images/common/btn-48h.png);
+ width: 48px;
+ z-index: 5000;
+ left: 5px;
+ top: 59px;
+ visibility: hidden;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .seatsMassageView_settingsButton2
+ {
+ width: 50px;
+ left: 365px;
+ top: 205px;
+ line-height: 49px;
+ text-align: left !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .seatsMassageView_settingsButton
+ {
+ width: 159px;
+ left: 154px;
+ top: 205px;
+ line-height: 49px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .captionMySettings
+ {
+ top: 157px;
+ left: 138px;
+ width: 300px;
+ height: 90px;
+ border: 1px solid;
+ padding: 8px 13px 13px 13px;
+ font-size: 26px;
+}
+
+#seatsMassageView7_1 .mySettingsPopUpTitle {
+ width: 143px;
+ height: 25px;
+ position: absolute;
+ top: 163px;
+ left: 216px !important;
+ background: gray;
+ text-align: center;
+ line-height: 25px;
+ font-size: 16px !important;
+ font-weight: bold;
+}
+
+#seatsMassageView7_1 .mySettingsLabel {
+ z-index: 100;
+ left: 102px;
+}
+
+#seatsMassageView7_1_appendix .btn-48 {
+ line-height: 48px;
+ text-align: center;
+}
+
+#seatsMassageView7_1_appendix .seats-message-actions-3 {
+ top: 165px;
+ left: 59px;
+}
+
+#seatsMassageView7_1_appendix .show {
+ visibility: visible !important;
+}
+
+#seatsMassageView7_1_appendix {
+ z-index: 2003;
+}
+
+#seatsMassageView7_1_appendix .SeatsMassageDialogView {
+ visibility: hidden;
+ background-color: whiteSmoke;
+ width: 350px;
+ height: 368px;
+ position: absolute;
+ top: 56px;
+ left: 305px !important;
+ background: black;
+ border: #A6A6A6 solid 2px;
+ border-radius: 6px;
+ font-size: 18px;
+ font-family: Arial;
+}
+
+#seatsMassageView7_1_appendix .titleQuestion {
+ font-size: 21px;
+ font-family: Arial;
+ width: 350px;
+ text-align: center;
+ top: 25px;
+}
+
+#seatsMassageView7_1_appendix .question {
+ font-size: 18px;
+ font-family: Arial;
+ width: 350px;
+ text-align: center;
+ top: 65px;
+}
+
+#seatsMassageView7_1_appendix .titleAnswer {
+ font-size: 21px;
+ font-family: Arial;
+ width: 350px;
+ text-align: center;
+ top: 103px;
+}
+
+#seatsMassageView7_1_appendix .View1 .seats-message-actions-3 {
+ top: 194px;
+ left: 7px;
+}
+
+#seatsMassageView7_1_appendix .View1 .titleQuestion {
+ left: 0px;
+ width: 500px;
+ top: 40px;
+}
+
+#seatsMassageView7_1_appendix .View1 .question {
+ left: 0px;
+ top: 90px;
+ text-align: center;
+ width: 500px;
+}
+
+#seatsMassageView7_1_appendix .View1 .titleAnswer {
+ left: 0px;
+ width: 500px;
+ top: 134px;
+}
+
+#seatsMassageView7_1_appendix .View1 .button0 {
+ left: 0;
+ top: 0 !important;
+}
+
+#seatsMassageView7_1_appendix .View1 .button1 {
+ left: 0;
+ top: 45px !important;
+}
+
+#seatsMassageView7_1_appendix .View1 .button2 {
+ left: 0;
+ top: 90px !important;
+}
+
+#seatsMassageView7_1_appendix .View1 .button3 {
+ left: 258px !important;
+ top: 0px !important;
+}
+
+#seatsMassageView7_1_appendix .View1 .button4 {
+ left: 258px !important;
+ top: 45px !important;
+}
+
+#seatsMassageView7_1_appendix .View1 .button5 {
+ left: 258px !important;
+ top: 90px !important;
+}
+
+#seatsMassageView7_1_appendix .View1 .btn-48 {
+ height: 35px !important;
+ line-height: 35px !important;
+}
+
+#seatsMassageView7_1_appendix .seatsMassageDialogView4 {
+ visibility: hidden;
+ font-size: 26px !important;
+ font-family: Arial;
+ font-size: 18px;
+ font-family: Arial;
+ left: 300px;
+ top: 140px;
+ width: 232px;
+ height: 127px;
+ background: white;
+ border-radius: 6px;
+ border: 1px solid gray;
+ color: black;
+ text-align: center;
+ padding: 10px;
+}
+
+#seatsMassageView7_1_appendix .seatsMassageDialogView5 {
+ visibility: hidden;
+ font-size: 26px !important;
+ font-family: Arial;
+ font-size: 18px;
+ font-family: Arial;
+ left: 300px;
+ top: 132px;
+ width: 326px;
+ height: 165px;
+ background: white;
+ border-radius: 6px;
+ border: 1px solid gray;
+ color: black;
+ text-align: center;
+ padding: 10px;
+}
+
+#seatsMassageView7_1_appendix .SeatsMassageDialogView.View1 {
+ visibility: hidden;
+ background-color: whiteSmoke;
+ width: 520px;
+ height: 368px;
+ position: absolute;
+ top: 56px;
+ left: 265px !important;
+ background: black;
+ border: #A6A6A6 solid 2px;
+ border-radius: 6px;
+}
+
+#seatsMassageView7_1_appendix .SeatsMassageDialogView .button0 {
+ left: 0;
+ top: 0;
+}
+
+#seatsMassageView7_1_appendix .SeatsMassageDialogView .button1 {
+ left: 0;
+ top: 60px;
+}
+
+#seatsMassageView7_1_appendix .SeatsMassageDialogView .button2 {
+ left: 0;
+ top: 120px;
+}
+
+#seatsMassageView7_1_appendix .SeatsMassageDialogView .button3 {
+ left: 0;
+ top: 180px;
+}
+
+#seatsMassageView7_1_appendix .SeatsMassageDialogView .button {
+ width: 245px;
+ border-radius: 3px;
+ border: 1px solid #393939;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .concept1_5Settings
+ {
+ top: 200px;
+ left: 197px;
+ width: 138px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .concept1_5Settings span
+ {
+ float: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .concept1_5Settings .ico
+ {
+ float: left;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .concept1_5Massage
+ {
+ text-align: center;
+ height: 48px;
+ line-height: 48px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .toogleButtonContainer .button1
+ {
+ left: 50px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .toogleButtonContainer .delim-0
+ {
+ left: 48px;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .concept1_5SettingsScreen
+ {
+ top: -60px;
+ left: 154px;
+ width: 291px;
+ height: 345px;
+ background: black;
+ z-index: 100;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .btn-48
+ {
+ line-height: 48px;
+ text-align: center;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .show
+ {
+ visibility: visible !important;
+}
+
+#view_settings_vehicle_MultiContourSeat_Adjust #seatsMassageView7_1 .hide
+ {
+ visibility: hidden;
+}
+
+/* END HMI concept 7.1 */ /* lumbars */ /* driver */
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion1 .active {
+ background: url(../images/settings/TopLumbar_WhiteOutline_driver.png)
+ no-repeat;
+ width: 38px;
+ height: 29px;
+ top: 70px;
+ left: 22px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion2 .active {
+ background: url(../images/settings/MiddleLumbar_WhiteOutline_driver.png)
+ no-repeat;
+ width: 34px;
+ height: 30px;
+ top: 84px;
+ left: 18px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion3 .active {
+ background: url(../images/settings/LowerLumbar_WhiteOutline_driver.png)
+ no-repeat;
+ width: 33px;
+ height: 36px;
+ top: 99px;
+ left: 14px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion4 .active {
+ background: url(../images/settings/lumbar_cushion_top-active.png)
+ no-repeat;
+ width: 70px;
+ height: 70px;
+ top: 71px;
+ left: -2px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion5 .active {
+ background: url(../images/settings/lumbar_cushion_bot-active.png)
+ no-repeat;
+ width: 91px;
+ height: 59px;
+ top: 112px;
+ left: -37px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion6 .active {
+ background: url(../images/settings/whiteOutline_driver-lumbar-all.png)
+ no-repeat;
+ width: 47px;
+ height: 68px;
+ top: 70px;
+ left: 16px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion7 .active {
+ background: url(../images/settings/Cushion_WhiteOutline_driver.png)
+ no-repeat;
+ width: 74px;
+ height: 36px;
+ top: 119px;
+ left: -32px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion1 .lumbar {
+ background: url(../images/settings/driver-lumbar-top.png) no-repeat;
+ width: 36px;
+ height: 31px;
+ top: 69px;
+ left: 22px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion2 .lumbar {
+ background: url(../images/settings/driver-lumbar-mid.png) no-repeat;
+ width: 34px;
+ height: 31px;
+ top: 84px;
+ left: 17px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion3 .lumbar {
+ background: url(../images/settings/driver-lumbar-low.png) no-repeat;
+ width: 31px;
+ height: 35px;
+ top: 99px;
+ left: 15px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion4 .lumbar {
+ background:
+ url(../images/settings/view_settings_vehicle_MultiContourSeat_adj1.png)
+ no-repeat;
+ width: 70px;
+ height: 70px;
+ top: 68px;
+ left: -4px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion5 .lumbar {
+ background: url(../images/settings/lumbar_cushion.png) no-repeat;
+ width: 91px;
+ height: 59px;
+ top: 111px;
+ left: -36px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion6 .lumbar {
+ background: url(../images/settings/driver-lumbar-all.png) no-repeat;
+ width: 47px;
+ height: 68px;
+ top: 68px;
+ left: 12px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_driverSeat_cushion7 .lumbar {
+ background:
+ url(../images/settings/view_settings_vehicle_MultiContourSeat_adj2.png)
+ no-repeat;
+ width: 73px;
+ height: 37px;
+ top: 119px;
+ left: -30px;
+ opacity: 0;
+}
+
+/* passenger */
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion1 .active {
+ background: url(../images/settings/TopLumbar_WhiteOutline_passenger.png)
+ no-repeat;
+ width: 38px;
+ height: 29px;
+ top: 70px;
+ left: 541px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion2 .active {
+ background:
+ url(../images/settings/MiddleLumbar_WhiteOutline_passenger.png)
+ no-repeat;
+ width: 34px;
+ height: 30px;
+ top: 84px;
+ left: 549px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion3 .active {
+ background:
+ url(../images/settings/LowerLumbar_WhiteOutline_passenger.png)
+ no-repeat;
+ width: 33px;
+ height: 36px;
+ top: 99px;
+ left: 555px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion4 .active {
+ background:
+ url(../images/settings/lumbar_cushion_top_passenger-active.png)
+ no-repeat;
+ width: 70px;
+ height: 70px;
+ top: 71px;
+ left: 535px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion5 .active {
+ background:
+ url(../images/settings/lumbar_cushion_bot_passanger-active.png)
+ no-repeat;
+ width: 91px;
+ height: 59px;
+ top: 112px;
+ left: 546px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion6 .active {
+ background:
+ url(../images/settings/WhiteOutline_passenger-lumbar-all.png)
+ no-repeat;
+ width: 47px;
+ height: 68px;
+ top: 70px;
+ left: 544px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion7 .active {
+ background: url(../images/settings/Cushion_WhiteOutline_passenger.png)
+ no-repeat;
+ width: 74px;
+ height: 36px;
+ top: 120px;
+ left: 558px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion1 .lumbar {
+ background: url(../images/settings/passenger-lumbar-top.png) no-repeat;
+ width: 37px;
+ height: 31px;
+ top: 68px;
+ left: 542px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion2 .lumbar {
+ background: url(../images/settings/passenger-lumbar-mid.png) no-repeat;
+ width: 34px;
+ height: 31px;
+ top: 84px;
+ left: 550px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion3 .lumbar {
+ background: url(../images/settings/passenger-lumbar-low.png) no-repeat;
+ width: 32px;
+ height: 35px;
+ top: 99px;
+ left: 555px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion4 .lumbar {
+ background:
+ url(../images/settings/view_settings_vehicle_MultiContourSeat_adj1_passenger.png)
+ no-repeat;
+ width: 69px;
+ height: 69px;
+ top: 70px;
+ left: 535px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion5 .lumbar {
+ background: url(../images/settings/passenger_lumbar_cushion.png)
+ no-repeat;
+ width: 91px;
+ height: 59px;
+ top: 111px;
+ left: 546px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion6 .lumbar {
+ background: url(../images/settings/passenger-lumbar-all.png) no-repeat;
+ width: 47px;
+ height: 68px;
+ top: 68px;
+ left: 540px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_passengerSeat_cushion7 .lumbar {
+ background:
+ url(../images/settings/view_settings_vehicle_MultiContourSeat_adj2_passenger.png)
+ no-repeat;
+ width: 72px;
+ height: 37px;
+ top: 119px;
+ left: 559px;
+ opacity: 0;
+}
+
+/* CUSTOM MASSAGE */ /* Driver cushions */
+#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion6 .active
+ {
+ background: url(../images/settings/TopLumbar_WhiteOutline_driver.png)
+ no-repeat;
+ width: 38px;
+ height: 29px;
+ top: 70px;
+ left: 22px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion7 .active
+ {
+ background: url(../images/settings/MiddleLumbar_WhiteOutline_driver.png)
+ no-repeat;
+ width: 34px;
+ height: 30px;
+ top: 84px;
+ left: 18px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion8 .active
+ {
+ background: url(../images/settings/LowerLumbar_WhiteOutline_driver.png)
+ no-repeat;
+ width: 33px;
+ height: 36px;
+ top: 99px;
+ left: 14px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion9 .active
+ {
+ background: url(../images/settings/driver-lumbar-m-top-selected.png)
+ no-repeat;
+ width: 77px;
+ height: 41px;
+ top: 119px;
+ left: -30px;
+ z-index: 1;
+ opacity: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion10 .active
+ {
+ background: url(../images/settings/driver-lumbar-m-bottom-selected.png)
+ no-repeat;
+ width: 77px;
+ height: 41px;
+ top: 119px;
+ left: -30px;
+ z-index: 1;
+ opacity: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion6 .lumbar
+ {
+ background: url(../images/settings/driver-lumbar-top.png) no-repeat;
+ width: 36px;
+ height: 31px;
+ top: 69px;
+ left: 22px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion7 .lumbar
+ {
+ background: url(../images/settings/driver-lumbar-mid.png) no-repeat;
+ width: 34px;
+ height: 31px;
+ top: 84px;
+ left: 17px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion8 .lumbar
+ {
+ background: url(../images/settings/driver-lumbar-low.png) no-repeat;
+ width: 31px;
+ height: 35px;
+ top: 99px;
+ left: 15px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion9 .lumbar
+ {
+ background: url(../images/settings/driver-lumbar-m-top.png) no-repeat;
+ width: 73px;
+ height: 37px;
+ top: 119px;
+ left: -30px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_driverSeat_cushion10 .lumbar
+ {
+ background: url(../images/settings/driver-lumbar-m-bottom.png) no-repeat;
+ width: 73px;
+ height: 37px;
+ top: 119px;
+ left: -30px;
+ opacity: 0;
+}
+
+/* Passenger cushions */
+#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion6 .active
+ {
+ background: url(../images/settings/TopLumbar_WhiteOutline_passenger.png)
+ no-repeat;
+ width: 38px;
+ height: 29px;
+ top: 70px;
+ left: 541px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion7 .active
+ {
+ background:
+ url(../images/settings/MiddleLumbar_WhiteOutline_passenger.png)
+ no-repeat;
+ width: 34px;
+ height: 30px;
+ top: 84px;
+ left: 549px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion8 .active
+ {
+ background:
+ url(../images/settings/LowerLumbar_WhiteOutline_passenger.png)
+ no-repeat;
+ width: 33px;
+ height: 36px;
+ top: 99px;
+ left: 555px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion9 .active
+ {
+ background: url(../images/settings/passenger-lumbar-m-top-selected.png)
+ no-repeat;
+ width: 77px;
+ height: 41px;
+ top: 120px;
+ left: 558px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion10 .active
+ {
+ background:
+ url(../images/settings/passenger-lumbar-m-bottom-selected.png)
+ no-repeat;
+ width: 77px;
+ height: 41px;
+ top: 120px;
+ left: 558px;
+ z-index: 1;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion6 .lumbar
+ {
+ background: url(../images/settings/passenger-lumbar-top.png) no-repeat;
+ width: 36px;
+ height: 31px;
+ top: 70px;
+ left: 541px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion7 .lumbar
+ {
+ background: url(../images/settings/passenger-lumbar-mid.png) no-repeat;
+ width: 34px;
+ height: 31px;
+ top: 84px;
+ left: 549px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion8 .lumbar
+ {
+ background: url(../images/settings/passenger-lumbar-low.png) no-repeat;
+ width: 31px;
+ height: 35px;
+ top: 99px;
+ left: 555px;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion9 .lumbar
+ {
+ background: url(../images/settings/passenger-lumbar-m-top.png) no-repeat;
+ width: 77px;
+ height: 41px;
+ top: 120px;
+ left: 558px;;
+ opacity: 0;
+}
+
+#view_settings_vehicle_MultiContourSeat_customMassage_passengerSeat_cushion10 .lumbar
+ {
+ background: url(../images/settings/passenger-lumbar-m-bottom.png)
+ no-repeat;
+ width: 77px;
+ height: 41px;
+ top: 120px;
+ left: 558px;
+ opacity: 0;
} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/css/media.css b/SDL_Core/src/components/HMI/css/media.css
index a1a33c461..ac9c5df9d 100755..100644
--- a/SDL_Core/src/components/HMI/css/media.css
+++ b/SDL_Core/src/components/HMI/css/media.css
@@ -1,2943 +1,528 @@
-/*MEDIA*/
-
-/* Backgrpund for active toogleButton*/
-#media .toogleButtonContainer .active {
- background: url(../images/media/bcs-item_bg_act.png);
-}
-/*LEFT MENU*/
-
-
-#media_leftmenu {
- z-index: 301;
- position: absolute;
- top: 90px;
- left: 0px;
- width: 150px;
- height: 300px;
- background: #333;
-}
-
-#media_directTune{
- z-index: 503;
- position: absolute;
- top: 290px;
- left: 165px;
- width: 468px;
- height: 100px;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
- visibility: hidden;
-}
-
-/* Direct Tune */
-#media_directTune_tuneButtons , #media_directTune_sirius_tuneButtons {
- width: 390px;
- height: 99px;
-
-}
-
-#media_directTune_keyBack {
- position: absolute !important;
- right: 0px;
- top:0px;
-}
-
-#media_directTune_keyEnter {
- position: absolute !important;
- right: 0px;
- bottom: 0px;
-}
-
-#media_directTune .key {
- position: relative;
- float: left;
- width: 77px;
- height: 50px;
- line-height: 50px;
- text-align: center;
- font-size: 20px;
- border-right: 1px solid #393939;
- cursor: pointer;
- background: url("../images/media/direct_tune_bg_s.png") repeat;
-}
-
-#media_directTune .key.pressed {
- background: url("../images/media/direct_tune_bg_s_pressed.png") repeat !important;
-}
-
-/*AM*/
-
-
-.info_wrapper, .hdInfo{
- position:relative;
-}
-#media_amButton {
- top: 10px;
- display: none;
-}
-
-#media_amButton div {
- width: 22px;
- height: 18px;
- left: 120px;
- bottom: -12px;
- position: relative;
- margin-top: -10px;
-}
-
-#media_amButton div.small_ind_def {
- background: url(../images/media/passive_led.png) no-repeat;
-}
-
-#media_amButton div.small_ind_active {
- background: url(../images/media/active_led.png) no-repeat;
-}
-
-/*FM*/
-
-#media_fmButton {
- top: 20px;
- display: none;
-}
-
-#media_fmButton div {
- width: 22px;
- height: 18px;
- left: 120px;
- bottom: -9px;
- position: relative;
- margin-top: -10px;
-}
-
-#media_fmButton div.small_ind_def {
- background: url(../images/media/passive_led.png) no-repeat;
-}
-
-#media_fmButton div.small_ind_active {
- background: url(../images/media/active_led.png) no-repeat;
-}
-
-/*SIRIUS*/
-
-#media_sirius{
- z-index:502;
-}
-
-#media_siriusButton {
- top: 30px;
- display: none;
-}
-
-#media_siriusButton div {
- width: 22px;
- height: 18px;
- left: 120px;
- bottom: -9px;
- position: relative;
- margin-top: -10px;
-}
-
-#media_siriusButton div.small_ind_def {
- background: url(../images/media/passive_led.png) no-repeat;
-}
-
-#media_siriusButton div.small_ind_active {
- background: url(../images/media/active_led.png) no-repeat;
-}
-
-/*CD,USB*/
-
-#media_cdButton, #media_usbButton {
- font-size: 18px;
- padding-left: 48px;
- line-height: 48px;
-}
-
-#media_options_view.help-mode .toogleButtonContainer{
- border:none !important;
-}
-
-#media_options_back_btn{
- top:11px;
-}
-
-#media_option_title_header{
- top:19px;
-}
-
-#media_options_view.usb .lablePlusButton .button {
- width: 148px;
- text-align: center;
-}
-
-#media_options_view.usb .lablePlusButton .button span {
- margin-left: 0px;
-}
-
-#media_options_view.fr.am #media_options_list_item1 .label,
-#media_options_view.fr.fm #media_options_list_item1 .label,
-#media_options_view.fr.sirius #media_options_list_item1 .label {
- line-height: 20px;
- width: 346px;
- margin: 3px 0 0 13px;
-}
-
-#media_options_view.fr.am #media_options_list_item1 .label span,
-#media_options_view.fr.fm #media_options_list_item1 .label span,
-#media_options_view.fr.sirius #media_options_list_item1 .label span {
- margin: 0 0 0 0;
-}
-
-/*SD*/
-
-#media_sdButton {
- font-size: 18px;
- padding-left: 48px;
- line-height: 48px;
- display: block;
-}
-
-#media_sdButton.displayed {
- display: none !important;
-}
-
-
-#media_options_view.sd .lablePlusButton .button {
- width: 148px;
- text-align: center;
-}
-
-#media_options_view.sd .lablePlusButton .button span {
- margin-left: 0px;
-}
-
-
-/*Bluetooth*/
-
-#media_btButton {
- font-size: 18px;
- padding-left: 48px;
- line-height: 48px;
- display: block;
-}
-
-#media_btButton.displayed {
- display: none !important;
-}
-
-/*AVIN*/
-
-#media_avinButton {
- font-size: 18px;
- padding-left: 48px;
- line-height: 48px;
- display: block;
-}
-
-#media_avinButton.displayed {
- display: none !important;
-}
-/**SDL*/
-
-#media_sdlButton {
- font-size: 18px;
- line-height: 48px;
- display: block;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-#media_sdlButton.displayed {
- display: none !important;
-}
-
-#media_sdlButton span {
- margin-left: 50px;
-}
-
-/*SCROLL DOWN*/
-
-#media_scrolldownButton {
- top: 30px;
- display: none;
-}
-
-#media_scrolldownButton img {
- left: 50px;
-}
-
-/*SCROLL UP*/
-
-#media_scrollupButton {
- display: block;
-}
-
-#media_scrollupButton.displayed {
- display: none !important;
-}
-
-#media_scrollupButton img {
- left: 50px;
-}
-
-.displayed {
- display: block !important;
-}
-
-#media_status {
- bottom: 0px;
- left: 0px;
- font-size: 21px;
- width: 324px;
- height: 48px;
- cursor: pointer;
- background: url(../images/common/media-status-bg.png) no-repeat;
- z-index: 1;
-}
-
-#media_status_homestatus {
- position: absolute;
- visibility: hidden;
- width: 100%;
- line-height: 50px;
-}
-#media_status_homestatus span {
- padding-left: 11px;
-}
-
-.ls_border {
- z-index: 201;
- position: absolute;
- top: -3px;
- left: 0px;
- width: 153px;
- height: 306px;
- background:url(../images/common/ls_border.png) no-repeat;
-}
-
-.media-ls-items {
- position: relative;
- width: 150px;
- height: 300px;
-}
-
-.media-ls-item {
- z-index: 201;
- position: relative;
- height: 50px;
- cursor: pointer;
- background: url(../images/media/ls-item_bg.png) no-repeat;
-}
-
-.media-ls-item.active_state {
- background: url(../images/media/ls-item_bg_act.png) no-repeat !important;
-}
-
-.media-ls-item > .bg {
- z-index: 201;
- position: absolute;
- top: 0px;
- left: 0px;
- width: 150px;
- height: 50px;
-}
-
-.media-ls-item > .ico {
- z-index: 299;
- position: absolute;
- left: 0px;
- width: 50px;
- height: 50px;
-}
-
-.media-ls-item > .ico.more {
- left: 50px;
-}
-
-.media-ls-item > p {
- z-index: 298;
- position: absolute;
- left: 48px;
- width: 86px;
- height: 50px;
- font-size: 18px;
- line-height: 50px;
- white-space: nowrap;
- overflow: hidden;
-}
-
-.media-ls-item > .led {
- z-index: 299;
- position: absolute;
- top: 0px;
- right: 8px;
- width: 24px;
- height: 50px;
-}
-
-.media-ls-item.empty {
- background: #333333;
-}
-
-.right-stock {
- z-index: 200;
- position: relative;
- margin-top: 90px;
- margin-right: 4px;
- float: right;
- width: 150px;
- border: 1px solid #393939;
- border-bottom: none;
- -webkit-border-radius: 3px;
-}
-
-
-.right-stock-bt {
- z-index: 200;
- position: absolute;
- top: 35px;
- right: -151px;
- width: 150px;
- border: 1px solid #393939;
- border-bottom: none;
- -webkit-border-radius: 3px;
-}
-
-.right-menu-fm {
- z-index: 200;
- position: relative;
- margin-top: -154px;
- margin-right: -162px;
- float: right;
- width: 150px;
- border: 1px solid #393939;
- border-bottom: none;
- -webkit-border-radius: 3px;
-}
-
-.right-stock .ico, .right-menu-fm .ico {
- opacity: 1 !important;
-}
-
-.rs-item {
- position: relative;
- width: 135px;
- height: 49px;
- cursor: pointer;
- border-bottom: 1px solid #333;
- font-size: 18px;
- line-height: 46px;
- padding-left: 15px;
-}
-
-.rs-item.notpressed {
- background: url(../images/list/list_item_bg.png) repeat-x;
-}
-
-.rs-item.pressed {
- background: url(../images/list/list_item_pressed.png) repeat-x !important;
-}
-
-.led-hd {
- height: 32px !important;
- width: 19px !important;
- top: 8px !important;
- left: 116px;
-}
-
-.rs-item > .ico {
- z-index: 202;
- position: absolute;
- top: 0px;
- right: 10px;
- width: 24px;
- height: 50px;
-}
-
-#media_rightmenu_optionButton.disabled img {
- opacity: 0.3 !important;
-}
-
-.bcs_border {
- z-index: 299;
- position: absolute;
- top: 0px;
- left: 0px;
- width: 466px;
- height: 98px;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
-}
-
-.bcs_divider1 {
- z-index: 298;
- position: absolute;
- top: 0px;
- left: 154px;
-}
-
-.bcs_divider2 {
- z-index: 298;
- position: absolute;
- top: 0px;
- left: 310px;
-}
-
-.main-preset-buttons-wraper {
- position: relative;
- width: 468px;
- height: 100px;
- float: left;
- left: 165px;
- top: 290px;
- z-index: 503;
-}
-
-.main-preset-buttons-wraper .preset-items {
- position: relative;
- width: 467px;
- height: 99px;
- border: 1px solid #393939;
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- z-index:1;
-}
-
-.main-preset-buttons-wraper .preset-item {
- position: relative;
- float: left;
- width: 155px;
- height: 49px;
- cursor: pointer;
-}
-
-.main-preset-buttons-wraper .preset-item.a0 {
- background: url(../images/media/bcs-item_bgL.png) no-repeat;
- border-right: 1px solid #393939;
- border-bottom: 1px solid #393939;
-}
-
-.main-preset-buttons-wraper .preset-item.a0.pressed {
- background: url(../images/media/bcs-item_bgL_pressed.png) no-repeat;
-}
-
-.main-preset-buttons-wraper .preset-item.a0.active {
- background: url(../images/media/bcs-item_bg_act.png) no-repeat;
-}
-
-.main-preset-buttons-wraper .preset-item.a1 {
- background: url(../images/media/bcs-item_bgS.png) no-repeat;
- border-right: 1px solid #393939;
- border-bottom: 1px solid #393939;
- width: 157px;
-}
-
-.main-preset-buttons-wraper .preset-item.a1.pressed {
- background: url(../images/media/bcs-item_bgS_pressed.png) no-repeat;
- width: 157px;
-}
-
-.main-preset-buttons-wraper .preset-item.a1.active {
- background: url(../images/media/bcs-item_bg_act.png) repeat;
-}
-
-.main-preset-buttons-wraper .preset-item.a2 {
- background: url(../images/media/bcs-item_bgR.png) no-repeat;
- border-bottom: 1px solid #393939;
- width: 153px;
-}
-
-.main-preset-buttons-wraper .preset-item.a2.pressed {
- background: url(../images/media/bcs-item_bgR_pressed.png) no-repeat;
-}
-
-.main-preset-buttons-wraper .preset-item.a2.active {
- background: url(../images/media/bcs-item_bg_act.png) no-repeat;
-}
-
-.main-preset-buttons-wraper .preset-item.a3 {
- background: url(../images/media/bcs-item_bgL.png) no-repeat;
- border-right: 1px solid #393939;
-}
-
-.main-preset-buttons-wraper .preset-item.a3.pressed {
- background: url(../images/media/bcs-item_bgL_pressed.png) no-repeat;
-}
-
-.main-preset-buttons-wraper .preset-item.a3.active {
- background: url(../images/media/bcs-item_bg_act.png) no-repeat;
-}
-
-.main-preset-buttons-wraper .preset-item.a4 {
- background: url(../images/media/bcs-item_bgS.png) no-repeat;
- border-right: 1px solid #393939;
- width: 157px;
-}
-
-.main-preset-buttons-wraper .preset-item.a4.pressed {
- background: url(../images/media/bcs-item_bgS_pressed.png) no-repeat;
- width: 157px;
-}
-
-.main-preset-buttons-wraper .preset-item.a4.active {
- background: url(../images/media/bcs-item_bg_act.png) repeat;
-}
-
-.main-preset-buttons-wraper .preset-item.a5 {
- background: url(../images/media/bcs-item_bgR.png) no-repeat;
- width: 153px;
-}
-
-.main-preset-buttons-wraper .preset-item.a5.pressed {
- background: url(../images/media/bcs-item_bgR_pressed.png) no-repeat;
-}
-
-.main-preset-buttons-wraper .preset-item.a5.active {
- background: url(../images/media/bcs-item_bg_act.png) no-repeat;
-}
-
-.main-preset-buttons-wraper .preset-item > .bg {
- z-index: 201;
- position: absolute;
- top: 0px;
- left: 0px;
- width: 155px;
- height: 49px;
-}
-
-.main-preset-buttons-wraper .preset-item > span {
- z-index: 202;
- display: block;
- position: absolute;
- left: 10px;
- width: 30px;
- height: 50px;
- font-size: 32px;
- line-height: 50px;
- white-space: nowrap;
- overflow: hidden;
- color: #999;
-}
-
-.main-preset-buttons-wraper .preset-item > p {
- z-index: 202;
- position: absolute;
- left: 40px;
- width: 100px;
- height: 50px;
- font-size: 18px;
- line-height: 50px;
- white-space: nowrap;
- overflow: hidden;
-}
-
-.home-preset-buttons-wraper {
- top: 82px;
- left: 34px;
- z-index: 50;
-}
-
-.home-preset-buttons-wraper .preset-items {
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
- border: 1px solid #393939;
- width: 328px;
- height: 79px;
-}
-
-#home_presets_yellow_box {
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
- border: 1px solid #393939;
- width: 328px;
- height: 79px;
- cursor:pointer;
- background: none;
-}
-#home_presets_yellow_box .home-help-preset-buttons-wraper {
- top: 82px;
- left: 34px;
- z-index: 50;
-}
-.home-preset-buttons-wraper .preset-item {
- position: relative;
- float: left;
- width: 109px;
- height: 39px;
- cursor: pointer;
- text-align: center;
- line-height: 39px;
-}
-
-.home-preset-buttons-wraper .preset-item.a0 {
- background: url(../images/media/h-media-l-bg.png) no-repeat;
- border-right: 1px solid #393939;
- border-bottom: 1px solid #393939;
-}
-
-.home-preset-buttons-wraper .preset-item.a0.pressed {
- background: url(../images/media/h-media-l-bg-pressed.png) no-repeat;
-}
-
-.home-preset-buttons-wraper .preset-item.a0.active {
- background: url(../images/media/h-media-actbg.png) repeat;
-}
-
-.home-preset-buttons-wraper .preset-item.a1 {
- background: url(../images/media/h-media-sbg.png) no-repeat;
- border-right: 1px solid #393939;
- border-bottom: 1px solid #393939;
-}
-
-.home-preset-buttons-wraper .preset-item.a1.pressed {
- background: url(../images/media/h-media-sbg-pressed.png) no-repeat;
-}
-
-.home-preset-buttons-wraper .preset-item.a1.active {
- background: url(../images/media/h-media-actbg.png) repeat;
-}
-
-.home-preset-buttons-wraper .preset-item.a2 {
- background: url(../images/media/h-media-rbg.png) no-repeat;
- border-bottom: 1px solid #393939;
- width: 108px;
-}
-
-.home-preset-buttons-wraper .preset-item.a2.pressed {
- background: url(../images/media/h-media-rbg-pressed.png) no-repeat;
-}
-
-.home-preset-buttons-wraper .preset-item.a2.active {
- background: url(../images/media/h-media-actbg.png) no-repeat;
-}
-
-.home-preset-buttons-wraper .preset-item.a3 {
- background: url(../images/media/h-media-l-bg.png) no-repeat;
- border-right: 1px solid #393939;
-}
-
-.home-preset-buttons-wraper .preset-item.a3.pressed {
- background: url(../images/media/h-media-l-bg-pressed.png) no-repeat;
-}
-
-.home-preset-buttons-wraper .preset-item.a3.active {
- background: url(../images/media/h-media-actbg.png) repeat;
-}
-
-.home-preset-buttons-wraper .preset-item.a4 {
- background: url(../images/media/h-media-sbg.png) no-repeat;
- border-right: 1px solid #393939;
-}
-
-.home-preset-buttons-wraper .preset-item.a4.pressed {
- background: url(../images/media/h-media-sbg-pressed.png) no-repeat;
-}
-
-.home-preset-buttons-wraper .preset-item.a4.active {
- background: url(../images/media/h-media-actbg.png) repeat;
-}
-
-.home-preset-buttons-wraper .preset-item.a5 {
- background: url(../images/media/h-media-rbg.png) no-repeat;
- width: 108px;
-}
-
-.home-preset-buttons-wraper .preset-item.a5.pressed {
- background: url(../images/media/h-media-rbg-pressed.png) no-repeat;
-}
-
-.home-preset-buttons-wraper .preset-item.a5.active {
- background: url(../images/media/h-media-actbg.png) repeat;
-}
-
-.bc-stock-numpad {
- z-index: 200;
- position: absolute;
- top: 290px;
- left: 165px;
- width: 467px;
- height: 99px;/*background:url("../images/media/btn_bg.png") repeat;*/
- border-top: 1px solid #393939;
- border-bottom: 1px solid #393939;
- border-left: 1px solid #393939;
- -webkit-border-radius: 3px;
- background: #000;
-}
-
-.media-antenna {
- width: 50px;
- height: 50px;
- background: url(../images/media/ico_antenna.png) no-repeat;
- right: 50px;
- top: 0px;
-}
-
-.media-hdico {
- background: url(../images/home/hd-radio-ico.png) no-repeat;
- width: 28px;
- height: 28px;
- right: 55px;
- top: 10px;
-}
-
-.hd-holder {
- font-size: 24px;
-}
-
-.sir-ico {
- background: url(../images/media/ico_dog.png) no-repeat;
- width: 50px;
- height: 50px;
- top: 0px;
- right: 50px;
-}
-
-.bc_divider {
- z-index: 202;
- position: absolute;
- top: 0px;
- width: 4px;
- height: 100px;
- background: url("../images/media/bcs-divider.png") no-repeat;
-}
-
-.bc_divider.pos1 {
- left: 76px;
-}
-
-.bc_divider.pos2 {
- left: 154px;
-}
-
-.bc_divider.pos3 {
- left: 232px;
-}
-
-.bc_divider.pos4 {
- left: 310px;
-}
-
-.bc_divider.pos5 {
- left: 388px;
-}
-
-.bc_divider_big {
- z-index: 202;
- position: absolute;
- top: 0px;
- width: 4px;
- height: 100px;
- background: url("../images/media/divider_big.png") no-repeat;
-}
-
-.bc_divider_big.pos1 {
- left: 154px;
-}
-
-.bc_divider_big.pos2 {
- left: 310px;
-}
-
-.bc-item {
- position: relative;
- float: left;
- width: 77px;
- height: 50px;
- line-height: 50px;
- text-align: center;
- font-size: 20px;
- background: url(../images/media/direct_tune_bg_s.png) no-repeat;
- border-right: 1px solid #393939;
- cursor: pointer;
-}
-
-.bc-item.pressed {
- background: url(../images/media/direct_tune_bg_s_pressed.png) no-repeat;
-}
-
-.bc-item.upline {
- border-bottom: 1px solid #393939;
- height: 49px
-}
-
-.bc-item.l {
- background: url(../images/media/direct_tune_bg_l.png) no-repeat;
-}
-
-.bc-item.l.pressed {
- background: url(../images/media/direct_tune_bg_l_pressed.png) no-repeat;
-}
-
-.bc-item.r {
- background: url(../images/media/direct_tune_r_bg.png) no-repeat;
- width: 78px;
- border-right: none;
-}
-
-.bc-item.r.pressed {
- background: url(../images/media/direct_tune_r_bg_pressed.png) no-repeat;
-}
-
-.bc-item2 {
- position: relative;
- float: left;
- width: 156px;
- height: 50px;
- line-height: 50px;
- font-size: 20px;
-}
-
-.bc-item2.active {
- background: url("../images/media/bcs-item_bg_act.png") no-repeat;
-}
-
-.bc-item2 > span {
- z-index: 202;
- display: block;
- position: absolute;
- left: 10px;
- width: 30px;
- height: 50px;
- font-size: 32px;
- line-height: 50px;
- white-space: nowrap;
- overflow: hidden;
-}
-
-.bc-item2 > p {
- z-index: 202;
- position: absolute;
- left: 40px;
- width: 100px;
- height: 50px;
- font-size: 18px;
- line-height: 50px;
- white-space: nowrap;
- overflow: hidden;
-}
-
-.bc-item-big {
- position: relative;
- float: left;
- width: 156px;
- height: 100px;
- line-height: 100px;
- text-align: center;
- font-size: 20px;
-}
-
-.bc-item-big.prevcd, .bc-item-big.prevusb, .bc-item-big.prevsd, .bc-item-big.prevblue {
- width: 155px;
- height: 98px;
- border-right: 1px solid #393939;
- cursor: pointer;
- background: url(../images/media/cd-prev-btn.png) no-repeat;
-}
-
-.bc-item-big.prevcd.pressed, .bc-item-big.prevusb.pressed, .bc-item-big.prevsd.pressed, .bc-item-big.prevblue.pressed {
- background: url(../images/media/cd-prev-btn_pressed.png) no-repeat;
-}
-
-.bc-item-big.playcd {
- width: 157px;
- height: 98px;
- border-right: 1px solid #393939;
- cursor: pointer;
- background: url(../images/media/cd_play_btn.png) no-repeat;
-}
-
-.playIcon {
- position: absolute;
- left: 66px;
-}
-
-.playIcon.hideicon {
- visibility: hidden;
-}
-
-.playIcon.showicon {
- visibility: visible;
-}
-
-.bc-item-big.playcd.pressed, .bc-item-big.playusb.pressed, .bc-item-big.playsd.pressed, .bc-item-big.playblue.pressed {
- background: url(../images/media/cd_play_btn_pressed.png) no-repeat;
-}
-
-.bc-item-big.nextcd, .bc-item-big.nextusb, .bc-item-big.nextsd, .bc-item-big.nextblue {
- width: 154px;
- height: 98px;
- cursor: pointer;
- background: url(../images/media/cd-next-btn.png) no-repeat;
-}
-
-.bc-item-big.nextcd.pressed, .bc-item-big.nextusb.pressed, .bc-item-big.nextsd.pressed, .bc-item-big.nextblue.pressed {
- background: url(../images/media/cd-next-btn_pressed.png) no-repeat;
-}
-
-#bt-bg {
- position: relative;
- float: left;
- margin-left: 10px;
- margin-top: -8px;
-}
-
-#bt-dis-controls {
- background: url(../images/media/disabled_player_controls.png) no-repeat;
- width: 470px;
- height: 100px;
- position: relative;
- bottom: 17px;
- float: left;
- margin-left: 13px;
-}
-
-#avin-line{
- z-index: 200;
- position: relative;
- width: 151px;
- height: 297px;
- margin-top: 100px;
- margin-left: 171px;
-}
-
-.player_controlls {
- z-index: 199;
- position: absolute;
- top: 237px;
- left: 13px;
- width: 468px;
- height: 99px;
- background: url("../images/media/btn_bg.png") repeat;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
-}
-
-#sdl_view_container .track-info{
- left: 165px;
- top: 55px;
-}
-
-#sdl_view_container .list-content{
- border: none;
-}
-
-#sdl_view_container .list-item {
- position: relative;
- width: 100%;
- height: 48px;
- font-size: 20px;
- line-height: 50px;
- border: 1px solid #393939;
-}
-
-.track-info {
- z-index: 199;
- position: absolute;
- left: 13px;
- width: 470px;
- height: 190px;
-}
-
-.track-info > .total {
- position: absolute;
- top: 30px;
- left: 10px;
- width: 300px;
- text-align: left;
- font-size: 20px;
- color: #999999;
-}
-
-.track-info > .title {
- top: 110px;
- font-size: 38px;
- left: 7px;
-}
-
-.track-info > .track-number {
- top: 153px;
- font-size: 26px;
- left: 10px;
-}
-
-.track-info > .time {
- top: 190px;
- font-size: 26px;
- left: 10px;
-}
-
-.track-info > .divider_o {
- top: 65px;
-}
-
-.track-info > .device {
- position: absolute;
- top: 30px;
- left: 10px;
- width: 300px;
- text-align: left;
- font-size: 20px;
- color: #999999;
-}
-
-
-
-#cd_logo{
- position: absolute;
- top: 90px;
- right: 10px;
- border: 1px solid #393939;
- -webkit-border-radius: 2px;
- -moz-border-radius: 2px;
- width: 109px;
- height: 109px;
- background: url(../images/media/small-lazerhorse-image.png) no-repeat;
- display:none;
-}
-
-#cd_logo.helpmode{
- top:86px;
- right:5px;
- width:120px;
- height: 120px;
- background:url(../images/media/help/lazerhorse_poster_blur.png) no-repeat !important;
- border:none;
-}
-
-#usb_logo{
- position: absolute;
- top: 90px;
- right: 10px;
- border: 1px solid #393939;
- -webkit-border-radius: 2px;
- -moz-border-radius: 2px;
- width: 109px;
- height: 109px;
- background: url(../images/media/small-fall-image.png) no-repeat;
- display:none;
-}
-
-#usb_logo.helpmode{
- top:86px;
- right:5px;
- width:120px;
- height: 120px;
- background: url(../images/media/help/small-fall-image_blur.png) no-repeat !important;
- border:none;
-}
-
-.dash {
- position: relative;
- bottom: 3px;
- float: left;
- margin-left: 7px;
- margin-right: 7px;
- font-size: 25px;
-}
-
-.more_info {
- z-index: 250;
- pozition: absolute;
- top: 80px;
- left: 5px;
- bottom: 90px;
- right: 5px;
-}
-
-.mi-back {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 50px;
- height: 50px;
- cursor: pointer;
- background: url("../images/media/btn_back.png") no-repeat;
-}
-
-.mi-wp {
- position: absolute;
- top: 0px;
- right: 60px;
- width: 137px;
- height: 50px;
- background: url("../images/media/btn_whats-playing.png") no-repeat;
-}
-
-.mi-title {
- position: absolute;
- top: 0px;
- left: 70px;
- width: 400px;
- height: 50px;
- line-height: 50px;
- font-size: 26px;
-}
-
-.mi-image {
- position: absolute;
- top: 60px;
- left: 0px;
- width: 250px;
- height: 250px;
-}
-
-.mi-info {
- position: absolute;
- top: 60px;
- left: 260px;
- width: 468px;
- height: 250px;
- background: #000;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
-}
-
-.mi-info_item {
- position: relative;
- hieght: 48px;
- border-top: 1px solid #020202;
- border-bottom: 1px solid #383838;
-}
-
-.mi-info_item.last {
- height: 49px !important;
- border-bottom: none !important;
-}
-
-.mi-info_item > p {
- position: absolute;
- top: 0px;
- left: 70px;
- width: 400px;
- height: 50px;
- line-height: 50px;
- font-size: 20px;
-}
-
-.mi-scroll {
- position: absolute;
- top: 60px;
- right: 0px;
- width: 50px;
- height: 250px;
- background: url("../images/media/scroll_bg.png") no-repeat;
-}
-
-.mi-scroll > .up {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 50px;
- height: 50px;
- background: url("../images/media/scroll_up.png") no-repeat;
- cursor: pointer;
-}
-
-.mi-scroll > .down {
- position: absolute;
- bottom: 0px;
- left: 0px;
- width: 50px;
- height: 50px;
- background: url("../images/media/scroll_down.png") no-repeat;
- cursor: pointer;
-}
-
-.mi-scroll > .scroll_area {
- position: absolute;
- top: 51px;
- left: 2px;
- bottom: 51px;
- right: 2px;
- background: #262626;
-}
-
-.mi-scroll > .scroll_area > .current {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 46px;
- height: 80px;
- background: #464646;
- border-bottom: 1px solid #000;
-}
-
-.browse {
- z-index: 250;
- position: absolute;
- top: 80px;
- left: 5px;
- bottom: 90px;
- right: 5px;
-}
-
-.br-back {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 50px;
- height: 50px;
- cursor: pointer;
- background: url("../images/media/btn_back.png") no-repeat;
-}
-
-.br-title {
- position: absolute;
- top: 0px;
- left: 70px;
- width: 400px;
- height: 50px;
- line-height: 50px;
- font-size: 26px;
-}
-
-.br-all {
- position: absolute;
- top: 110px;
- left: 0px;
- width: 150px;
- height: 98px;
- cursor: pointer;
- background: url("../images/media/btn_browse-all-sources.png") no-repeat;
- font-size: 20px;
- line-height: 25px;
- padding-left: 17px;
- padding-top: 22px;
-}
-
-.br-list {
- position: absolute;
- top: 60px;
- left: 160px;
- width: 568px;
- height: 250px;
- background: url("../images/media/list_bg.png") repeat;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
-}
-
-.br-list-item {
- position: relative;
- height: 50px;
-}
-
-.br-list-item > p {
- position: absolute;
- top: 0px;
- left: 50px;
- width: 450px;
- height: 50px;
- line-height: 50px;
- font-size: 20px;
-}
-
-.br-list-item > p.numbers {
- top: 0px;
- left: 500px;
- width: 50px;
- font-size: 18px;
- text-align: right;
- font-style: italic;
-}
-
-.br-scroll {
- position: absolute;
- top: 60px;
- right: 0px;
- width: 50px;
- height: 250px;
- background: url("../images/media/scroll_bg.png") no-repeat;
-}
-
-.br-scroll > .up {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 50px;
- height: 50px;
- background: url("../images/media/scroll_up.png") no-repeat;
- cursor: pointer;
-}
-
-.br-scroll > .down {
- position: absolute;
- bottom: 0px;
- left: 0px;
- width: 50px;
- height: 50px;
- background: url("../images/media/scroll_down.png") no-repeat;
- cursor: pointer;
-}
-
-.br-scroll > .scroll_area {
- position: absolute;
- top: 51px;
- left: 2px;
- bottom: 51px;
- right: 2px;
- background: #262626;
-}
-
-.br-scroll > .scroll_area > .current {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 46px;
- height: 80px;
- background: #464646;
- border-bottom: 1px solid #000;
-}
-
-.all-sources {
- z-index: 250;
- pozition: absolute;
- top: 80px;
- left: 5px;
- bottom: 90px;
- right: 5px;
-}
-
-.as-back {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 50px;
- height: 50px;
- cursor: pointer;
- background: url("../images/media/btn_back.png") no-repeat;
-}
-
-.as-title {
- position: absolute;
- top: 0px;
- left: 70px;
- width: 400px;
- height: 50px;
- line-height: 50px;
- font-size: 26px;
-}
-
-.as-list {
- position: absolute;
- top: 60px;
- left: 60px;
- width: 328px;
- height: 200px;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
-}
-
-.as-list.right {
- left: 400px;
-}
-
-.as-list-item {
- position: relative;
- height: 49px;
- background: url(../images/media/allist-bg.png) no-repeat;
- border-bottom: 1px solid #393939;
- cursor: pointer;
-}
-
-.as-list-item.pressed {
- background: url(../images/media/allist-bg_pressed.png) no-repeat !important;
-}
-
-.as-list-item > p {
- position: absolute;
- top: 0px;
- left: 50px;
- width: 250px;
- height: 50px;
- line-height: 50px;
- font-size: 20px;
-}
-
-.as-scroll {
- position: absolute;
- top: 60px;
- right: 0px;
- width: 50px;
- height: 250px;
- background: url("../images/media/scroll_bg.png") no-repeat;
-}
-
-.as-scroll > .up {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 50px;
- height: 50px;
- background: url("../images/media/scroll_up.png") no-repeat;
- cursor: pointer;
-}
-
-.as-scroll > .down {
- position: absolute;
- bottom: 0px;
- left: 0px;
- width: 50px;
- height: 50px;
- background: url("../images/media/scroll_down.png") no-repeat;
- cursor: pointer;
-}
-
-.as-scroll > .scroll_area {
- position: absolute;
- top: 51px;
- left: 2px;
- bottom: 51px;
- right: 2px;
- background: #262626;
-}
-
-.as-scroll > .scroll_area > .current {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 46px;
- height: 80px;
- background: #464646;
- border-bottom: 1px solid #000;
-}
-
-.act_ar_ba {
- position: absolute;
- left: 300px;
-}
-
-/* helpers */
-/*.gray{color:#4F4F4F !important;}
-.active-button{color:#FFF !important;cursor:pointer;}*/
-/*MEDIA HELP MODE*/
-
-
-.blur-text {
- color: transparent !important;
- text-shadow: 0 0 3px #fff !important;
-}
-
-#help_media_block {
- width: 800px;
- height: 480px;
-}
-
-#preset_bg {
- background: url(../images/media/help_mode/direct_yg_bg.png) no-repeat;
- width: 496px;
- height: 123px;
- left: 152px;
- top: 279px;
- z-index: 1;
-}
-
-#disableAM-direct, #disableAM-preset, #disableFM-direct, #disableFM-preset {
- width: 496px;
- height: 123px;
- left: 152px;
- top: 279px;
- z-index: 300;
- cursor: pointer;
-}
-
-#tag_help {
- background: url(../images/media/help_mode/tag_help_bg.png) no-repeat;
- width: 97px;
- height: 57px;
- top: 212px;
- left: 536px;
- z-index: 300;
- cursor: pointer;
-}
-
-#alert_help {
- background: url(../images/media/help_mode/tag_alert_bg.png) no-repeat;
- width: 97px;
- height: 57px;
- top: 212px;
- left: 536px;
- z-index: 300;
- cursor: pointer;
-}
-
-#scan_help {
- background: url(../images/media/help_mode/right_but_glow.png) no-repeat;
- width: 166px;
- height: 73px;
- z-index: 300;
- top: 129px;
- left: 633px;
- cursor: pointer;
-}
-
-#scan_help_sir {
- background: url(../images/media/help_mode/bottom_glow.png) no-repeat;
- width: 166px;
- height: 69px;
- z-index: 300;
- top: 141px;
- left: 633px;
- cursor: pointer;
-}
-
-#scan_help.cd-help {
- background: url(../images/media/help_mode/bottom_1_glow.png) no-repeat;
- width: 166px;
- height: 51px;
- z-index: 300;
- top: 192px;
- left: 633px;
- cursor: pointer;
-}
-
-#more_info_help {
- background: url(../images/media/help_mode/bottom_glow_minus.png) no-repeat;
- width: 166px;
- height: 69px;
- z-index: 300;
- top: 243px;
- left: 633px;
- cursor: pointer;
-}
-
-#direct_help {
- background: url(../images/media/help_mode/right_but_glow.png) no-repeat;
- width: 166px;
- height: 73px;
- z-index: 300;
- top: 231px;
- left: 633px;
- cursor: pointer;
-}
-
-#sirius_browse {
- background: url(../images/media/help_mode/bottom_glow.png) no-repeat !important;
- height: 69px !important;
- width: 166px;
- z-index: 300;
- top: 292px !important;
- left: 633px;
- cursor: pointer;
-}
-
-#sirius_browse.cd-browse {
- background: url(../images/media/help_mode/right_but_glow.png) no-repeat !important;
- ;
- width: 166px;
- height: 73px;
- top: 330px !important;
- ;
- left: 633px;
- cursor: pointer;
- z-index: 300;
-}
-
-#shuffle_help {
- background: url(../images/media/help_mode/top_glow.png) no-repeat;
- height: 69px;
- width: 166px;
- z-index: 300;
- top: 130px;
- left: 633px;
- cursor: pointer;
-}
-
-.sirius_direct {
- background: url(../images/media/help_mode/top_glow.png) no-repeat !important;
- height: 69px;
- width: 166px;
- z-index: 300;
- top: 231px;
- left: 633px;
- cursor: pointer;
-}
-
-#hd_bg {
- background: url(../images/media/hd-blur.png) no-repeat;
- width: 156px;
- height: 54px;
- z-index: 299;
- top: 88px;
- left: 641px;
- cursor: pointer;
-}
-
-#hd_bg_fm {
- background: url(../images/media/hd-blur-fm.png) no-repeat;
- width: 156px;
- height: 54px;
- z-index: 299;
- top: 88px;
- left: 641px;
- cursor: pointer;
-}
-
-#replay_bg {
- background: url(../images/media/help_mode/top_glow.png) no-repeat;
- width: 166px;
- height: 62px;
- z-index: 300;
- top: 79px;
- left: 633px;
- cursor: pointer;
-}
-
-#option_blur {
- background: url(../images/media/help_mode/option-blur.png) no-repeat;
- width: 162px;
- height: 51px;
- z-index: 290;
- top: 191px;
- left: 638px;
-}
-
-#option_blur.cd-option {
- top: 291px;
-}
-
-#controls_blur {
- background: url(../images/media/help_mode/controls-blur.png) no-repeat;
- width: 479px;
- height: 106px;
- top: 289px;
- left: 160px;
- z-index: 290;
-}
-
-#repeat_blur {
- background: url(../images/media/help_mode/repeat-blur.png) no-repeat;
- width: 160px;
- height: 53px;
- left: 639px;
- top: 89px;
- z-index: 290;
-}
-
-#usb-glow {
- background: url(../images/media/help_mode/left_glow.png) no-repeat;
- width: 160px;
- height: 71px;
- z-index: 302;
- cursor: pointer;
- left: 0px;
- top: 281px;
-}
-
-#bluetooth-glow {
- background: url(../images/media/help_mode/left_glow.png) no-repeat;
- width: 160px;
- height: 71px;
- z-index: 302;
- cursor: pointer;
- left: 0px;
- top: 180px;
-}
-
-#bt_blur {
- background: url(../images/media/help_mode/blt_s_blur.png) no-repeat;
- width: 642px;
- height: 348px;
- z-index: 300;
- left: 158px;
- top: 57px;
-}
-
-#bt_l_blur {
- background: url(../images/media/help_mode/bt-r-blur.png) no-repeat;
- width: 159px;
- height: 114px;
- z-index: 300;
- left: 640px;
- top: 86px;
-}
-
-#avin_blur {
- background: url(../images/media/help_mode/av_in_blur.png) no-repeat;
- width: 158px;
- height: 272px;
- z-index: 300;
- left: 321px;
- top: 161px;
-}
-
-#linein_blur {
- background: url(../images/media/help_mode/linein_blur.png) no-repeat;
- width: 46px;
- height: 291px;
- z-index: 300;
- left: 376px;
- top: 135px;
-}
-
-#blur-image {
- width: 120px;
- height: 119px;
- top: 61px;
- right: 5px
-}
-
-#usb-image {
- width: 120px;
- height: 119px;
- top: 61px;
- right: 5px;
-}
-
-#cd-image {
- width: 120px;
- height: 119px;
- top: 61px;
- right: 5px;
-}
-
-.preset-stored {
- background: #000000;
- border: 1px solid #a03333;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- font-size: 23px;
- font-weight: bold;
- height: 75px;
- left: 271px;
- line-height: 68px;
- text-align: center;
- top: 170px;
- width: 250px;
- z-index: 1001;
- display: none;
-}
-
-#media_popup.fr .preset-stored {
- position: relative;
- width: 350px;
- margin: auto auto;
-}
-
-#home_widgetMedia_presetPopup.fr .preset-stored {
- position: relative;
- width: 350px;
- margin: auto auto;
-}
-
-#video-error {
- background: #000000;
- border: 1px solid #a03333;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- font-size: 23px;
- font-weight: bold;
- left: 400px;
- text-align: center;
- top: 170px;
- ;
- z-index: 12100;
- position: absolute;
- padding: 10px;
-}
-
-.fm-info-holder {
- top: 138px;
- width: 380px;
- height: 63px;
-}/* CSS Document */
-
-#media_cd, #usbView, #media_sd , #siriusView{
- z-index: 500;
-}
-
-/******************** FOR MoreInfo View********************************/
-
-.moreInfo_view {
- position: absolute;
- width: 800px;
- height: 480px;
- z-index: 501;
- background-image: url(../images/media/bg.png);
-}
-
-.moreInfo_backButton .ico {
- position: absolute;
- margin-top: 13px;
- margin-left: 8px;
-}
-
-.moreInfo_backButton {
- width: 48px;
- height: 48px;
- float: left;
- position: relative;
- margin-top: 88px;
- margin-left: 5px;
- border: 1px solid #333;
- border-radius: 2px;
- cursor: pointer;
- z-index: 1001;
-}
-
-.moreInfo_title {
- position: relative;
- margin-left: 20px;
- margin-top: 88px;
- width: 400px;
- height: 50px;
- line-height: 50px;
- font-size: 26px;
- float: left;
-}
-
-#cd_poster{
- background:url(../images/media/big-lazerhorse-image.png) no-repeat;
- width:250px;
- height:250px;
- display:none;
-}
-
-#cd_poster.helpmode{
- background:url(../images/media/help/big_help_lazerhorse_poster_blur.png) no-repeat !important;
- width:260px;
- height:260px;
- top:-5px;
- left:-5px;
-}
-
-#usb_poster{
- background:url(../images/media/big-fall-image.png) no-repeat;
- width:250px;
- height:250px;
- display:none;
-}
-
-#usb_poster.helpmode{
- background: url(../images/media/help/big-fall-image_blur.png) no-repeat !important;
- width:260px;
- height:260px;
- top:-5px;
- left:-5px;
-}
-
-.moreInfo_image {
- position: relative;
- margin-top: 148px;
- margin-left: 5px;
- width: 250px;
- height: 250px;
- float: left;
-}
-.cd-more-info {
- margin-top: 148px;
- margin-left: 265px;
- width: 530px;
- height: 251px;
- -webkit-border-radius: 3px;
-}
-
-.cd-more-info .list-content {
- width: 468px;
- background:#000;
-}
-
-
-.cd-more-info .list-item span {
- font-size: 20px;
- position: absolute;
- top: 13px;
- left: 70px;
- line-height: 25px;
- z-index:2;
-}
-
-.cd-more-info .list-item img {
- margin-top: 1px;
-}
-
-
-.moreInfo_whatIsPlayingButton {
- position: relative;
- float: right;
- margin-right: 65px;
- margin-top: 88px;
- width: 135px;
- height: 48px;
- border-radius: 2px;
- border: 1px solid #393939;
-}
-
-.moreInfo_whatIsPlayingButton .ico{
- padding: 12px 11px 11px 13px;
- position: relative;
- float: left;
-}
-
-.moreInfo_whatIsPlayingButton span{
- position: relative;
- width: 55px;
- padding: 6px 0 0 5px;
- float: left;
-}
-
-.fr .moreInfo_whatIsPlayingButton{
- white-space: nowrap;
-}
-
-.fr .moreInfo_whatIsPlayingButton span{
- padding: 14px 0 0 5px;
-}
-
-.helpmode .moreInfo_whatIsPlayingButton{
- margin-right: 60px;
- margin-top: 83px;
- padding: 6px;
- border: none;
- background: url(../images/media/help/ico_whatIsPlaying_blur.png) no-repeat;
-}
-
-.helpmode .moreInfo_whatIsPlayingButton .ico{
- opacity: 0;
-}
-
-#media_moreinfo_list_blur{
- background: url(../images/media/help/moreinfo_list_blur.png) no-repeat;
- width:542px;
- height:269px;
- left:258px;
- top:139px;
-
-}
-
-/*#media .backButton, #media .block-header-title{
- margin-top: 11px;
-}*/
-
-/* Media options */
-#media_options_view {
- top: 48px;
- width: 800px;
- height: 432px;
- background-color: black;
- font-size: 20px;
- z-index: 1001;
-}
-
-#media_options_list {
- margin-top: 91px;
- margin-left: 65px;
- width: 672px;
- height: 251px;;
-}
-
-#media_options_list .arrow-ico{
- z-index:0;
-}
-
-#media_options_list .list-content {
- width: 670px;
-}
-
-#media_options_list .list-item {
- position: relative;
- width: 670px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- line-height: 50px;
-}
-
-#media_options_list span{
- margin-left: 13px;
- z-index:1;
- position:relative;
-}
-
-
-
-#media_options_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
-}
-
-#media_options_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-
-#media_options_list .toogleButtonContainer{
- width: 198px;
-}
-
-#media_options_list .toggles, #media_options_list .toggles span{
- width: 98px;
-}
-
-.help-mode #media_options_view .list-item span{
- text-shadow: 0 0 3px #999;
-}
-
-
-.help-mode #media_options_list .list-item span{
- text-shadow: 0 0 3px #999;
-}
-
-.help-mode #media_options_list .toogleButtonContainer {
- margin-right: 11px;
-}
-
-/* Media Am,Fm options */
-.helpmode .am #media_options_view_blur {
- background: url(../images/media/media_am_options_bg_help.png) no-repeat;
- top:86px;
- left:60px;
- width:682px;
- height:261px;
-}
-
-.helpmode .fm #media_options_view_blur {
- background: url(../images/media/media_fm_options_bg_help.png) no-repeat;
- top:86px;
- left:60px;
- width:682px;
- height:261px;
-}
-
-
-/* Media Sitius options */
-.helpmode .sirius #media_options_view_blur {
- background: url(../images/media/media_sirius_options_bg_help.png) no-repeat;
- top:86px;
- left:60px;
- width:682px;
- height:261px;
-
-}
-
-/* Media CD options */
-.helpmode .cd #media_options_view_blur {
- background: url(../images/media/media_cd_options_bg_help.png) no-repeat;
- top:86px;
- left:60px;
- width:682px;
- height:111px;
-}
-
-/* Media USB options */
-.helpmode .usb #media_options_view_blur {
- background: url(../images/media/media_usb_options_bg_help.png) no-repeat;
- top:86px;
- left:60px;
- width:682px;
- height:211px;
-}
-
-/* Media SD options */
-.helpmode .sd #media_options_view_blur {
- background: url(../images/media/media_usb_options_bg_help.png) no-repeat;
- top:86px;
- left:60px;
- width:682px;
- height:211px;
-}
-
-
-
-/* Media Bluetooth options */
-.helpmode .bt #media_options_view_blur {
- background: url(../images/media/media_bt_options_bg_help.png) no-repeat;
- width:682px;
- height:162px;
- top:86px;
- left:60px;
-}
-
-/******************** FOR Browse View********************************/
-.browse_view {
- width: 800px;
- height: 480px;
- z-index:503;
- background:url(../images/media/bg.png) no-repeat;
-}
-
-.browse_view .backButton .ico {
- position: absolute;
- margin-top: 13px;
- margin-left: 8px;
-}
-
-.browse_view .backButton {
- top: 80px;
- width: 48px;
- height: 48px;
- border: 1px solid #333;
- border-radius: 2px;
-}
-
-.browse_view .title {
- top: 89px;
- left: 75px;
- font-size:26px;
-}
-
-.browse_view .browesAllSources {
- width: 148px;
- height: 96px;
- top:190px;
- left:5px;
- border: 1px solid #333;
-
-}
-
-.browse_view .browesAllSources.notpressed {
- background: url(../images/media/browse_all_button.png) repeat-x;
-}
-
-.browse_view .browesAllSources.pressed {
- background: url(../images/media/browse_all_button_pressed.png);
-}
-
-.browse_view .browesAllSources span {
- width: 105px;
- position: absolute;
- top:21px;
- left:16px;
- font-size:20px;
- line-height: 25px;
- cursor:pointer;
-
-}
-
-.helpmode .browesAllSources{
- pointer-events: none;
- margin: 1px 1px;
-}
-
-.helpmode .browesAllSources img {
- opacity: 0;
-}
-
-.all_sources_span{
- top:46px !important;
-}
-
-.browse_view .browesAllSources .arrow-ico {
- position: absolute;
- top:24px;
- right: 4px;
-}
-
-
-.guidelist{
- width: 630px;
- height:251px;
- top:140px;
- left:165px;
- -webkit-border-radius: 3px;
-}
-
-.guidelist .list-content{
- width: 568px;
-}
-
-.guidelist .list-item ico{
- float: left;
-}
-
-.guidelist .list-item span{
- font-size: 20px;
- position: absolute;
- left:50px;
-}
-
-.guidelist .list-item span.right_text{
- font-size: 18px;
- position: relative;
- left:-8px;
-}
-
-.usbbrowselist{
- height:101px;
-}
-
-.usbbrowselist .list-item span{
- left: 5px;
-}
-
-
-#media_browseall_heading_lable{
- z-index:1;
-
-}
-
-#media_browseAll_list .arrow-ico{
- z-index:0;
-}
-
-#media_browseAll_list span{
- z-index:1;
-}
-
-#media_browseAll_view{
- z-index:505;
-}
-
-.helpmode #media_browseall_blur_bg{
- width:800px;
- height:480px;
- background:url(../images/media/help/broall_view_blur.jpg) no-repeat;
- top:0px;
-}
-
-#media_usb_browse_list .list .list-content .list-item span{
- left:5px !important;
-}
-
-.media_usb_browse_browseall_button{
- top: 325px !important;
-}
-.browseAlllist{
- width: 340px;
- height: 201px;
- top:140px;
- left:65px;
-}
-
-.browseAlllist .list-content{
- width: 330px;
-}
-
-.browseAlllist .list-content div{
- cursor:pointer;
-}
-
-
-.browseAlllist .list-item span{
- font-size: 20px;
- position: absolute;
-}
-
-
-#media_browse_view.sirhelpblur{
- background:url(../images/media/help/sir_bro_view_blur.png) no-repeat;
-}
-
-#media_browse_view.cdhelpblur{
- background:url(../images/media/help/cd_bro_view_blur.png) no-repeat;
-}
-
-#media_browse_view.usbhelpblur{
- background:url(../images/media/help/others_browse_blur.png) no-repeat;
- width:800px;
- height:480px;
-}
-
-.am-info, .fm-info,.sirius-info ,.bt-info, .avin-info{
- top: 70px;
- left: 152px;
- width: 490px;
- height: 368px;
- z-index: 200;
-}
-
-.bt-info{
- top: 55px !important;
-}
-
-#mi-divider {
- position: absolute;
- top: 110px;
- left: 0px;
-}
-
-#sirius-right {
- height: 250px;
-}
-
-
-
-#btn_alert {
- position: absolute;
- top: 140px;
- right: 10px;
-}
-
-#cd-right {
- height: 300px;
-}
-
-#cd-info {
- z-index: 200;
- position: absolute;
- top: 80px;
- left: 165px;
- width: 470px;
- height: 190px;
-}
-
-#usb-right {
- height: 300px;
-}
-
-#sd-right {
- height: 300px;
-}
-
-#sd-info {
- z-index: 200;
- position: absolute;
- top: 80px;
- left: 165px;
- width: 470px;
- height: 190px;
-}
-
-.divider_o {
- position: absolute;
- top: 120px;
- left: 0px;
- width: 470px;
- height: 1px;
- background: url("../images/media/divider_o.png") no-repeat;
-}
-
-.equalizer {
- position: absolute;
- top: 5px;
- right: 10px;
- width: 104px;
- text-align: right;
- font-size: 24px;
-}
-
-.siriusband {
- position: absolute;
- top: 50px;
- left: 13px;
- font-size: 62px;
- width: 400px;
-}
-
-.directune_band {
- position: absolute;
- top: 50px;
- left: 13px;
- font-size: 62px;
- width: 400px;
- display:none;
-}
-
-
-#band{
- position: absolute;
- top: 38px;
- left: 18px;
- font-size: 62px;
-}
-
-#band_dir{
- position: absolute;
- top: 38px;
- left: 18px;
- font-size: 62px;
-}
-
-.nonHDsonginfo {
- text-transform: uppercase;
- position: absolute;
- font-size: 20px;
- float: left;
- top: 148px;
- left: 15px;
-}
-
-.fmInfoHdIco {
- position: absolute;
- right: 328px;
- top: 10px;
- background:url(../images/media/hd_ico.png) no-repeat;
- width:149px;
- height:30px;
-}
-
-.fmInfoHdIco_helpmode{
- position: absolute;
- right: 323px;
- top: 5px;
- background:url(../images/media/help/fm_hd_info_ico_blur.png) no-repeat !important;
- width:159px;
- height:40px;
-}
-.channel {
- position: absolute;
- top: 15px;
- left: 23px;
- width: 300px;
- text-align: left;
- font-size: 20px;
- color: #999999;
-}
-
-.STAName {
- font-size: 22px;
- top: 15px;
- left: 23px;
- position: absolute;
-}
-
-.fmgenre {
- position: absolute;
- top: 15px;
- right: 16px;
- width: 200px;
- text-align: right;
- font-size: 24px;
-}
-
-.siriusgenre {
- position: absolute;
- top: 15px;
- left: 273px;
- width: 200px;
- text-align: right;
- font-size: 24px;
-}
-
-.titanium {
- top: 50px;
- position: absolute;
- left: 13px;
- display: none ;
- background: url(../images/media/sirius-logo.png) no-repeat;
- width:215px;
- height:87px;
-}
-
-.titanium.logo_blur{
- background: url(../images/media/help/titanium_logo_blur.png) no-repeat !important;
-}
-.hdtitle {
- /*-webkit-transform: translateX(-1000px);*/
- position: absolute;
- top: 137px;
- left: 19px;
- font-size: 32px;
-}
-
-.hdartist {
- /*-webkit-transform: translateX(-1000px);*/
- position: absolute;
- top: 175px;
- left: 20px;
- font-size: 20px;
-}
-
-.btn_tag {
- position: absolute;
- top: 150px;
- right: 17px;
- background:url(../images/media/btn_tag.png) no-repeat;
- width:80px;
- height:40px;
-}
-
-.btn_tag_help{
- position: absolute;
- top: 142px;
- right: 9px;
- cursor:pointer;
- background:url(../images/media/help/tag_help_bg.png) no-repeat;
- width:97px;
- height:57px;
-}
-
-.btn_alert {
- position: absolute;
- top: 150px;
- left: 393px;
- z-index: 100;
- width: 78px;
- height: 38px;
- text-align: center;
- font-size: 19px;
- line-height: 39px;
- border: 1px solid #333;
- -webkit-border-radius: 2px;
-}
-
-#media_sirius_alert_help_yellow_border{
- top: 142px;
- left: 384px;
- width: 100px;
- height: 54px;
- background: url(../images/media/help/tag_alert_bg.png) no-repeat;
-}
-
-.btn_alert.disabled{
- color: #999 !important;
-}
-
-.btn_alert.help{
- text-shadow: none !important;
- color: white;
-}
-
-.siriustitle {
- position: absolute;
- top: 138px;
- left: 20px;
- font-size: 32px;
- width: 400px;
-}
-
-.siriusartist {
- position: absolute;
- top: 175px;
- left: 23px;
- font-size: 20px;
- width: 400px;
-}
-
-.hdButton .ico {
- background: url(../images/media/passiv_horiz_led.png) no-repeat;
- right: 8px;
-}
-
-.hdButton.isHd .ico {
- background: url(../images/media/active_horiz_led.png) no-repeat !important;
-}
-
-.stationInfo {
- width: 200px;
- height: 50px;
- left: 115px;
- top: 29px;
-}
-
-.stationInfo .stationimg {
- background: url(../images/media/ant.png) no-repeat;
- width: 27px;
- height: 28px;
- top: 6px;
-}
-.stationInfo .stationimg_help {
- background: url(../images/media/help/ant_blur.png) no-repeat;
- width: 37px;
- height: 38px;
- top: 1px;
- left: -5px;
-}
-
-.stationInfo .station {
- font-size: 36px;
- left: 40px;
- position: absolute;
- width: 243px;
-}
-
-.homehdicon {
- background: url(../images/media/hd-radio-ico.png) no-repeat !important;
- width: 28px !important;
-}
-
-.homehdicon_blur {
- background: url(../images/media/help/hd-radio-ico_blur.png) no-repeat !important;
- width: 38px !important;
-}
-
-.stationInfo .siriusico {
- background: url(../images/media/hsir-ico.png) no-repeat;
- width: 26px;
- height: 28px;
- top: 6px;
-}
-
-.stationInfo .siriusico_help {
- background: url(../images/media/help/hsir-ico_blur.png) no-repeat;
- width: 36px;
- height: 38px;
- top: 1px;
- left:-5px;
-}
-
-
-.stationInfo .logo {
- left: 40px;
- position: absolute;
- top: -22px;
-}
-
-.statusInfo {
- width: 275px;
- height: 48px;
-}
-
-.statusInfo .station {
- top: 12px;
- left: 11px;
- text-overflow: ellipsis;
- overflow: hidden;
- height: 21px;
- width: 220px;
-}
-
-.statusInfo .station span{
- display: none;
-}
-
-.statusInfo .icon {
- width: 50px;
- height: 50px;
- left: 224px;
-}
-
-.statusInfo .antenaIco {
- background: url(../images/media/ico_antenna.png) no-repeat;
-}
-
-.statusInfo .statushdicon {
- background: url(../images/media/hd-radio-ico.png) no-repeat !important;
- width: 28px !important;
- height: 28px !important;
- top: 10px;
- left: 241px !important;
-}
-
-.info_holder{
- top: 42px;
-}
-
-.siriusIco {
- background: url(../images/media/ico_sirius.png) no-repeat !important;
-}
-
-.cdIco { background:url(../images/media/ico_cd.png) no-repeat !important}
-.usbIco { background:url(../images/media/ico_usb.png) no-repeat !important}
-.sdIco { background:url(../images/media/ico_sd.png) no-repeat !important}
-.btIco { background:url(../images/media/ico_bt.png) no-repeat !important}
-.avIco { background:url(../images/media/ico_li.png) no-repeat !important}
-.appIco { background:url(../images/info/info_leftMenu_apps_ico.png) no-repeat !important}
-
-#media_player_view_container{
- background: url(../images/media/player_view.png) no-repeat;
- width: 635px;
- height: 323px;
- top: 70px;
- left: 161px;
- z-index:501;
-}
-
-#home_widgetMedia_cd {width:399px; height:193px}
-#home_widgetMedia_cd .album_title {width:400px; text-align:center; font-size:28px;}
-#home_widgetMedia_cd .song_title{width:400px; text-align:center; font-size:24px; top:33px;}
-#home_widgetMedia_cd .info{top: 55px; width:400px;}
-#home_widgetMedia_cd .ico_holder{width:400px; margin-top:-7px;}
-#home_widgetMedia_cd .ico {margin-left:45%;}
-#home_widgetMedia_cd .ico_blur {top:-5px; left:-5px; margin-left:45%; position:absolute;}
-
-
-#home_widgetMedia_bluetooth .title{width:400px; text-align:center; font-size:24px;}
-#home_widgetMedia_bluetooth .info{top: 55px; width:100%;}
-#home_widgetMedia_bluetooth .ico_holder{width:400px; top:-7px;}
-#home_widgetMedia_bluetooth .ico_blur {top:-5px; left:-5px; margin-left:48%; position:absolute; background:url(../images/media/help/bt-h-ico_blur.png) no-repeat !important; width:34px !important; height:40px !important;}
-#home_widgetMedia_bluetooth .bluetooth_ico {
- background: url(../images/media/bt-h-ico.png) no-repeat;
- width:24px;
- height:30px;
- margin-left:48%;
-}
-
-#home_widgetMedia_avin .title{width:400px; text-align:center; font-size:24px;}
-#home_widgetMedia_avin .info{top: 55px; width:100%;}
-#home_widgetMedia_avin .ico_holder{width:400px; top:-7px;}
-
-
-#home_widgetMedia_avin .avin_ico{ background: url(../images/media/line-h-ico.png) no-repeat; width:14px; height:36px; margin-left:48%;}
-#home_widgetMedia_avin .ico_blur {top:-5px; left:-5px; margin-left:48%; position:absolute; background: url(../images/media/help/line-h-ico_blur.png) no-repeat!important; width:24px !important; height:46px !important;}
-
-
-/* HELP MODE*/
-
-/* rigth menu*/
-#media_rightmenu.help_mode{ border:none; left:-5px;}
-
-/* replay button*/
-.replay_button_help{border-bottom:none; left:4px; cursor:pointer; margin-top:1px; margin-bottom:1px; z-index:2;}
-
-/* browse button*/
-.browse_button_help{border-bottom:none; left:4px; cursor:pointer;}
-
-/*scan button*/
-.scan_button_help{ border-bottom:none; left:4px; cursor:pointer; z-index:2;}
-/*direct tune*/
-.direct_button_help {border-bottom:none; left:4px;cursor:pointer; margin-bottom:1px; z-index:2;}
-
-
-/*hd active button blur*/
-.helpmode .isHd.top_rightmenu_button_blur{ background:url(../images/media/help/top_rightmenu_button_blur_active.png) no-repeat !important;width:162px; height:49px; left:-2px; bottom: 5px; margin-bottom:2px; border-bottom: none;}
-
-
-/* repeat button / hd button*/
-.helpmode .top_rightmenu_button_blur{ background:url(../images/media/help/top_rightmenu_button_blur.png) no-repeat !important; width:162px; height:49px; left:-2px;bottom: 5px; margin-bottom:2px; border-bottom: none;}
-
-.helpmode .top_rightmenu_button_blur span {
- position:relative;
- top:6px;
- left:6px;
-}
-
-/* shuffle button*/
-.shuffleButton_help{border-bottom:none; left:4px; cursor:pointer; z-index:2; margin-bottom:1px;}
-/* more info button*/
-.moreinfoButton_help{border-bottom:none; left:4px; cursor:pointer; z-index:2; margin-top:1px;}
-
-/*option button*/
-#media_rightmenu_optionButton.option_blur{ background:url(../images/media/help/option_btn_blur.png) no-repeat !important; width:162px !important; height:49px !important; left:-2px; border-bottom: none; margin-bottom:2px; bottom:4px;}
-
-
-/* Browse button*/
-#media_rightmenu_browseButton{ z-index:2;}
-
-/* Bluetooth view*/
-#bluetooth_blur{ background:url(../images/media/help/bluetooth_content_blur.png) no-repeat; width:646px; height:373px; top:-29px; left:2px;}
-
-/* Line In view*/
-#line_in_blur{ background:url(../images/media/help/av-in_details_blur.png) no-repeat; width:160px; height:278px; left:166px; top:95px; display:none;}
-/** yellow borders*/
-#amfmscan{ background:url(../images/media/help/right_menu_btn_yellow_border.png) no-repeat; width:166px; height:73px; top:-161px; right:-159px;}
-#amfmdirect{ background:url(../images/media/help/right_menu_btn_yellow_border.png) no-repeat; width:166px; height:73px; top:-61px; right:-159px;}
-#media_preset_help_yellow_border{ background:url(../images/media/help/preset_yellow_border.png) no-repeat; width:495px; height:123px; top:-11px; left:-14px; cursor:pointer; z-index:2;}
-#uplist_borders{ background:url(../images/media/help/right_menu_groupbtn_yellow_border.png) no-repeat; width:166px; height:125px; top: -261px;left: -7px;}
-#bottomlist_borders{ background:url(../images/media/help/right_menu_groupbtn_yellow_border.png) no-repeat; width:166px; height:125px; top: -111px;left: -7px;}
-#yellow_dividers { z-index:2;}
-.yellow_divider{ width:150px; height:3px; background:#FF0; left:4px;}
-.yellow_divider.top{top:-202px;}
-.yellow_divider.bottom{top:-49px;}
-.yellow_divider.cdtop{top:-202px;}
-.yellow_divider.cdbottom{top:-152px;}
-#triple_borders{ background:url(../images/media/help/right_menu_threebtngroup_yellow_border.png) no-repeat; width:166px; height:170px; top:-258px; left:-7px;}
-#single_border{ background:url(../images/media/help/right_menu_btn_yellow_border.png) no-repeat; width:166px; height:73px; top:-60px; left:-7px;}
-#media_helpmode_cd_controllsblur{ background:url(../images/media/help/player_controls_blur.png) no-repeat; width:480px; height:111px; top:231px; left:8px;}
-
-#media_rightmenu_yellow_amfm_borders, #media_rightmenu_yellow_sir_borders, #media_rightmenu_yellow_cd_borders, #media_rightmenu_yellow_sir_dividers, #media_rightmenu_yellow_cd_dividers{
- position:relative;
- display:none;
-}
-
-
-/* cancel scrollbar animation */
-.cancelBarAnimation{-webkit-transition:none !important;}
-
-
-#media_sdl_soft_buttons_view.media_sdl_soft_buttons_view{
- position: absolute;
- width: 800px;
- height: 480px;
- z-index: 1;
- background-image: url(../images/media/bg.png);
-}
-
-#sdl_view_container .ffw_list_menu {
- top: 90px;
- left: 650px;
- width: 140px;
-}
-
-#media_rightmenu_topButton_sdlSoftButtons.media_rightmenu_topButton {
- right: 4px;
- top: 90px;
- width: 152px;
- z-index: 2;
- background-color: gray;
- height: 50px;
- border-top-left-radius: 5px;
- border-top-right-radius: 5px;
-}
-
-#media_appScrollWrapper_sdlSoftButtons{
- overflow: hidden;
- position: absolute;
- right: 4px;
- top: 90px;
- margin: 0;
- z-index: 1;
- float: none;
- width: 150px;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
- height: 300px;
-}
-
-#media_rightmenu_bottomButton_sdlSoftButtons.media_rightmenu_bottomButton {
- right: 4px;
- top: 342px;
- width: 152px;
- z-index: 2;
- background-color: gray;
- height: 50px;
- border-bottom-left-radius: 5px;
- border-bottom-right-radius: 5px;
-}
-
-#sdl_view_container .buttonsWrapper{
- top: 135px;
- left: 100px;
- width: 600px;
- height: 260px;
- overflow: hidden;
-}
-
-#sdl_view_container .scrollBar{
- position: relative;
- height: 260px;
- float: right;
-}
-
-#sdl_view_container .scrollArrowUp {
- position: relative;
- height: 47px;
- width: 47px;
- border: #393939 1px solid;
- border-radius: 2px;
-}
-
-#sdl_view_container .scroller{
- position: relative;
- height: 20px;
- background: #555;
- -webkit-transition: 0.4s;
-}
-
-#sdl_view_container .scrollArrowDown {
- height: 47px;
- width: 47px;
- border: #393939 1px solid;
- border-radius: 2px;
- bottom: 0;
-}
-
-#sdl_view_container .rs-item{
- width: 536px;
-}
-
-#media_app_sub_menu_view.media_app_sub_menu_view {
- width: 800px;
- height: 480px;
- z-index: 1000;
- background: url(../images/media/bg.png) no-repeat;
-}
-
-#media_app_sub_menu_view .optionsSubMenuLabel{
- top: 80px;
- left: 75px;
- width: 620px;
- height: 20px;
- background: #393939;
- padding: 15px;
-}
-/*
-#sdl_view_container .ffw-button span{
- padding-left: 20px;
-}*/ \ No newline at end of file
+#media_leftmenu {
+ z-index: 301;
+ position: absolute;
+ top: 90px;
+ left: 0px;
+ width: 150px;
+ height: 300px;
+ background: #333;
+}
+
+#media_cdButton {
+ font-size: 18px;
+ padding-left: 48px;
+ line-height: 48px;
+}
+
+#media_sdlButton {
+ font-size: 18px;
+ line-height: 48px;
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+#media_sdlButton span {
+ margin-left: 50px;
+}
+
+#media_status {
+ bottom: 0px;
+ left: 0px;
+ font-size: 21px;
+ width: 324px;
+ height: 48px;
+ cursor: pointer;
+ background: url(../images/common/media-status-bg.png) no-repeat;
+ z-index: 1;
+}
+
+#media_status_homestatus {
+ position: absolute;
+ visibility: hidden;
+ width: 100%;
+ line-height: 50px;
+}
+
+#media_status_homestatus span {
+ padding-left: 11px;
+}
+
+.ls_border {
+ z-index: 201;
+ position: absolute;
+ top: -3px;
+ left: 0px;
+ width: 153px;
+ height: 306px;
+ background: url(../images/common/ls_border.png) no-repeat;
+}
+
+.media-ls-items {
+ position: relative;
+ width: 150px;
+ height: 300px;
+}
+
+.media-ls-item {
+ z-index: 201;
+ position: relative;
+ height: 50px;
+ cursor: pointer;
+ background: url(../images/media/ls-item_bg.png) no-repeat;
+}
+
+.media-ls-item.active_state {
+ background: url(../images/media/ls-item_bg_act.png) no-repeat !important;
+}
+
+.media-ls-item>.bg {
+ z-index: 201;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 150px;
+ height: 50px;
+}
+
+.media-ls-item>.ico {
+ z-index: 299;
+ position: absolute;
+ left: 0px;
+ width: 50px;
+ height: 50px;
+}
+
+.media-ls-item>.ico.more {
+ left: 50px;
+}
+
+.media-ls-item>p {
+ z-index: 298;
+ position: absolute;
+ left: 48px;
+ width: 86px;
+ height: 50px;
+ font-size: 18px;
+ line-height: 50px;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+.media-ls-item>.led {
+ z-index: 299;
+ position: absolute;
+ top: 0px;
+ right: 8px;
+ width: 24px;
+ height: 50px;
+}
+
+.media-ls-item.empty {
+ background: #333333;
+}
+
+.main-preset-buttons-wraper {
+ position: relative;
+ width: 468px;
+ height: 100px;
+ float: left;
+ left: 165px;
+ top: 290px;
+ z-index: 503;
+}
+
+.main-preset-buttons-wraper .preset-items {
+ position: relative;
+ width: 467px;
+ height: 99px;
+ border: 1px solid #393939;
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ z-index: 1;
+}
+
+.main-preset-buttons-wraper .preset-item {
+ position: relative;
+ display: inline-block;
+ vertical-align: top;
+ border-right: 1px solid #393939;
+ border-bottom: 1px solid #393939;
+ width: 116px;
+ height: 49px;
+ cursor: pointer;
+}
+
+.main-preset-buttons-wraper .preset-item.a0 {
+ background: url(../images/media/bcs-item_bgL.png) no-repeat;
+ border-right: 1px solid #393939;
+ border-bottom: 1px solid #393939;
+}
+
+.main-preset-buttons-wraper .preset-item.a0.pressed {
+ background: url(../images/media/bcs-item_bgL_pressed.png) no-repeat;
+}
+
+.main-preset-buttons-wraper .preset-item.a0.active {
+ background: url(../images/media/bcs-item_bg_act.png) no-repeat;
+}
+
+.main-preset-buttons-wraper .preset-item.a1 {
+ background: url(../images/media/bcs-item_bgS.png) no-repeat;
+ border-right: 1px solid #393939;
+ border-bottom: 1px solid #393939;
+ width: 157px;
+}
+
+.main-preset-buttons-wraper .preset-item.a1.pressed {
+ background: url(../images/media/bcs-item_bgS_pressed.png) no-repeat;
+ width: 157px;
+}
+
+.main-preset-buttons-wraper .preset-item.a1.active {
+ background: url(../images/media/bcs-item_bg_act.png) repeat;
+}
+
+.main-preset-buttons-wraper .preset-item.a2 {
+ background: url(../images/media/bcs-item_bgR.png) no-repeat;
+ border-bottom: 1px solid #393939;
+ width: 153px;
+}
+
+.main-preset-buttons-wraper .preset-item.a2.pressed {
+ background: url(../images/media/bcs-item_bgR_pressed.png) no-repeat;
+}
+
+.main-preset-buttons-wraper .preset-item.a2.active {
+ background: url(../images/media/bcs-item_bg_act.png) no-repeat;
+}
+
+.main-preset-buttons-wraper .preset-item.a3 {
+ background: url(../images/media/bcs-item_bgL.png) no-repeat;
+ border-right: 1px solid #393939;
+}
+
+.main-preset-buttons-wraper .preset-item.a3.pressed {
+ background: url(../images/media/bcs-item_bgL_pressed.png) no-repeat;
+}
+
+.main-preset-buttons-wraper .preset-item.a3.active {
+ background: url(../images/media/bcs-item_bg_act.png) no-repeat;
+}
+
+.main-preset-buttons-wraper .preset-item.a4 {
+ background: url(../images/media/bcs-item_bgS.png) no-repeat;
+ border-right: 1px solid #393939;
+ width: 157px;
+}
+
+.main-preset-buttons-wraper .preset-item.a4.pressed {
+ background: url(../images/media/bcs-item_bgS_pressed.png) no-repeat;
+ width: 157px;
+}
+
+.main-preset-buttons-wraper .preset-item.a4.active {
+ background: url(../images/media/bcs-item_bg_act.png) repeat;
+}
+
+.main-preset-buttons-wraper .preset-item.a5 {
+ background: url(../images/media/bcs-item_bgR.png) no-repeat;
+ width: 153px;
+}
+
+.main-preset-buttons-wraper .preset-item.a5.pressed {
+ background: url(../images/media/bcs-item_bgR_pressed.png) no-repeat;
+}
+
+.main-preset-buttons-wraper .preset-item.a5.active {
+ background: url(../images/media/bcs-item_bg_act.png) no-repeat;
+}
+
+.main-preset-buttons-wraper .preset-item>.bg {
+ z-index: 201;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 155px;
+ height: 49px;
+}
+
+.main-preset-buttons-wraper .preset-item>span {
+ z-index: 202;
+ display: block;
+ position: absolute;
+ left: 10px;
+ width: 30px;
+ height: 50px;
+ font-size: 32px;
+ line-height: 50px;
+ white-space: nowrap;
+ overflow: hidden;
+ color: #999;
+}
+
+.main-preset-buttons-wraper .preset-item>p {
+ z-index: 202;
+ position: absolute;
+ left: 40px;
+ width: 100px;
+ height: 50px;
+ font-size: 18px;
+ line-height: 50px;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+.home-preset-buttons-wraper {
+ top: 82px;
+ left: 34px;
+ z-index: 50;
+}
+
+.home-preset-buttons-wraper .preset-items {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ border: 1px solid #393939;
+ width: 328px;
+ height: 79px;
+}
+
+.bc-item2>p {
+ z-index: 202;
+ position: absolute;
+ left: 40px;
+ width: 100px;
+ height: 50px;
+ font-size: 18px;
+ line-height: 50px;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+.bc-item-big {
+ position: relative;
+ float: left;
+ width: 156px;
+ height: 100px;
+ line-height: 100px;
+ text-align: center;
+ font-size: 20px;
+}
+
+.bc-item-big.prevcd,.bc-item-big.prevusb,.bc-item-big.prevsd,.bc-item-big.prevblue
+ {
+ width: 155px;
+ height: 98px;
+ border-right: 1px solid #393939;
+ cursor: pointer;
+ background: url(../images/media/cd-prev-btn.png) no-repeat;
+}
+
+.bc-item-big.prevcd.pressed,.bc-item-big.prevusb.pressed,.bc-item-big.prevsd.pressed,.bc-item-big.prevblue.pressed
+ {
+ background: url(../images/media/cd-prev-btn_pressed.png) no-repeat;
+}
+
+.bc-item-big.playcd {
+ width: 157px;
+ height: 98px;
+ border-right: 1px solid #393939;
+ cursor: pointer;
+ background: url(../images/media/cd_play_btn.png) no-repeat;
+}
+
+.playIcon {
+ position: absolute;
+ left: 66px;
+}
+
+.playIcon.hideicon {
+ visibility: hidden;
+}
+
+.playIcon.showicon {
+ visibility: visible;
+}
+
+.bc-item-big.playcd.pressed,.bc-item-big.playusb.pressed,.bc-item-big.playsd.pressed,.bc-item-big.playblue.pressed
+ {
+ background: url(../images/media/cd_play_btn_pressed.png) no-repeat;
+}
+
+.bc-item-big.nextcd,.bc-item-big.nextusb,.bc-item-big.nextsd,.bc-item-big.nextblue
+ {
+ width: 154px;
+ height: 98px;
+ cursor: pointer;
+ background: url(../images/media/cd-next-btn.png) no-repeat;
+}
+
+.bc-item-big.nextcd.pressed,.bc-item-big.nextusb.pressed,.bc-item-big.nextsd.pressed,.bc-item-big.nextblue.pressed
+ {
+ background: url(../images/media/cd-next-btn_pressed.png) no-repeat;
+}
+
+#bt-bg {
+ position: relative;
+ float: left;
+ margin-left: 10px;
+ margin-top: -8px;
+}
+
+#bt-dis-controls {
+ background: url(../images/media/disabled_player_controls.png) no-repeat;
+ width: 470px;
+ height: 100px;
+ position: relative;
+ bottom: 17px;
+ float: left;
+ margin-left: 13px;
+}
+
+#avin-line {
+ z-index: 200;
+ position: relative;
+ width: 151px;
+ height: 297px;
+ margin-top: 100px;
+ margin-left: 171px;
+}
+
+.player_controlls {
+ z-index: 199;
+ position: absolute;
+ top: 237px;
+ left: 13px;
+ width: 468px;
+ height: 99px;
+ background: url("../images/media/btn_bg.png") repeat;
+ border: 1px solid #393939;
+ -webkit-border-radius: 3px;
+}
+
+#sdl_view_container .track-info {
+ left: 165px;
+ top: 55px;
+}
+
+#sdl_view_container .list-content {
+ border: none;
+}
+
+#sdl_view_container .list-item {
+ position: relative;
+ width: 100%;
+ height: 48px;
+ font-size: 20px;
+ line-height: 50px;
+ border: 1px solid #393939;
+}
+
+.track-info {
+ z-index: 199;
+ position: absolute;
+ left: 13px;
+ width: 470px;
+ overflow: hidden;
+ height: 237px;
+}
+
+.track-info>.total {
+ position: absolute;
+ top: 30px;
+ left: 10px;
+ width: 300px;
+ text-align: left;
+ font-size: 20px;
+ color: #999999;
+}
+
+.track-info>.title {
+ top: 110px;
+ font-size: 38px;
+ left: 7px;
+}
+
+.track-info>.track-number {
+ top: 153px;
+ font-size: 26px;
+ left: 10px;
+}
+
+.track-info>.time {
+ top: 190px;
+ font-size: 26px;
+ left: 10px;
+}
+
+.track-info>.divider_o {
+ top: 65px;
+}
+
+.track-info>.device {
+ position: absolute;
+ top: 30px;
+ left: 10px;
+ width: 300px;
+ text-align: left;
+ font-size: 20px;
+ color: #999999;
+}
+
+.divider_o {
+ position: absolute;
+ top: 120px;
+ left: 0px;
+ width: 470px;
+ height: 1px;
+ background: url("../images/media/divider_o.png") no-repeat;
+}
+
+.statusInfo {
+ width: 275px;
+ height: 48px;
+}
+
+.statusInfo .station {
+ top: 12px;
+ left: 11px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ height: 21px;
+ width: 220px;
+}
+
+.statusInfo .station span {
+ display: none;
+}
+
+.statusInfo .icon {
+ width: 50px;
+ height: 50px;
+ left: 224px;
+}
+
+.cdIco {
+ background: url(../images/media/ico_cd.png) no-repeat !important
+}
+
+.appIco {
+ background: url(../images/info/info_leftMenu_apps_ico.png) no-repeat
+ !important
+}
+
+#media_player_view_container {
+ background: url(../images/media/player_view.png) no-repeat;
+ width: 635px;
+ height: 323px;
+ top: 70px;
+ left: 161px;
+ z-index: 501;
+}
+
+#sdl_view_container .ffw_list_menu {
+ top: 90px;
+ left: 650px;
+ width: 140px;
+} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/css/navigation.css b/SDL_Core/src/components/HMI/css/navigation.css
index 3fc274c9d..55cab5b14 100755..100644
--- a/SDL_Core/src/components/HMI/css/navigation.css
+++ b/SDL_Core/src/components/HMI/css/navigation.css
@@ -1,2185 +1,102 @@
-#navigation{width:800px; height:480px; background:url(../images/nav/bg.png) no-repeat;}
-
-#nav_bg.view2{background:url(../images/nav/green_bg.png) repeat-x;}
-#nav_bg.view3{background:url(../images/nav/green_bg.png) repeat-x;}
-#nav_map_img{width:800px;height:422px;background:url(../images/nav/map2d_north_zoom_0.png) no-repeat;top:10px;z-index:-2;}
-#nav_bg.view2 #street, #nav_bg.view3 #street{display: none;}
-
-#nav_map_img_help{width:800px;height:480px;/*background:rgba(0,0,0,0.8);*/ background:url(../images/nav/black_filter.png) no-repeat;z-index:10;display: none;}
-
-#nav_blur_controls {width: 800px;height: 433px; background: url(../images/nav/blur_nav_controls.png) no-repeat;top:0;z-index:-1;display: none;}
-.no-bg{background: none !important;}
-
-#home_presset_titanium{background: url(../images/home/home_presset_titanium.png) no-repeat;width: 185px; height: 56px; top: 201px;
-left: 120px; display: none;}
-#home_presset_hd {background: url(../images/home/home_presset_hd.png) no-repeat;width: 28px; height: 28px; top: 221px;
-left: 113px; display: none;}
-
-.blur_controls2 {background: url(../images/nav/blur_nav_controls2.png) no-repeat !important;}
-.blur_controls3 {background: url(../images/nav/blur_nav_controls3.png) no-repeat !important;}
-
-.zoom_45, .zoom_72 {background: url(../images/nav/map2d_north_zoom_1.png) no-repeat !important;}
-.zoom_35, .zoom_56 {background: url(../images/nav/map2d_north_zoom_2.png) no-repeat !important;}
-.zoom_25, .zoom_40 {background: url(../images/nav/map2d_north_zoom_3.png) no-repeat !important;}
-
-.type2 {background-image: url(../images/nav/map3d_zoom_0.png) !important; background-repeat: no-repeat !important;}
-.type2.zoom_45, .type2.zoom_72 {background-image: url(../images/nav/map3d_zoom_1.png) !important; background-repeat: no-repeat !important;}
-.type2.zoom_35, .type2.zoom_56 {background-image: url(../images/nav/map3d_zoom_2.png) !important; background-repeat: no-repeat !important;}
-.type2.zoom_25, .type2.zoom_40 {background-image: url(../images/nav/map3d_zoom_3.png) !important; background-repeat: no-repeat !important;}
-
-.type1 {background-image: url(../images/nav/map2d_heading_up_zoom_0.png) !important; background-repeat: no-repeat !important;}
-.type1.zoom_45, .type1.zoom_72 {background-image: url(../images/nav/map2d_heading_up_zoom_1.png) !important; background-repeat: no-repeat !important;}
-.type1.zoom_35, .type1.zoom_56 {background-image: url(../images/nav/map2d_heading_up_zoom_2.png) !important; background-repeat: no-repeat !important;}
-.type1.zoom_25, .type1.zoom_40 {background-image: url(../images/nav/map2d_heading_up_zoom_3.png) !important; background-repeat: no-repeat !important;}
-
-.street_blur {background: url(../images/nav/street_blur.png) !important; width: 490px !important; height: 70px !important; left: 154px !important; top: 359px !important; line-height: 72px !important;}
-
-#nav.view3 .navbar {display:block !important;}
-
-#mi{font-size: 26px;z-index:5;font-weight: bold;left: 110px;top: 65px;}
-
-#mi.help_blur{
- border: none !important;
- background: none !important;
- color: transparent !important;
- text-shadow: 0 0 3px rgba(256, 256, 256, 0.7);
- top:62px !important;
-}
-
-
-#nav_location{font-size: 26px;z-index: 5;font-weight: bold;left: 315px;top: 65px;}
-
-#nav_location.help_blur{
- border: none !important;
- background: none !important;
- color: transparent !important;
- text-shadow: 0 0 3px rgba(256, 256, 256, 0.7);
- top:62px !important;
-}
-
-
-#nav_dest{background: url(../images/nav/dest_bg.png) no-repeat;width: 730px;height: 310px;left: 65px;top: 105px;}
-
-#nav_dest ul.r-block { list-style:none; position:relative; float:left; width:310px; height:250px; top:60px; margin-left:20px}
-#nav_dest ul.l-block { list-style:none; position:relative; float:left; width:320px; height:250px; top:60px; margin-left:50px}
-#nav_dest ul li { line-height:50px; font-size:20px;}
-
-
-
-#navigation_destination_back_button{left:9px;top:65px;cursor:pointer;z-index:5;width:50px;height:50px;background: url(../images/nav/back_btn.png) no-repeat;}
-#navigation_destination_back_button .ico{left: 9px;top: 14px;position: absolute;}
-#navigation_destination_back_button.pressed{background: url(../images/nav/back_btn_pressed.png) no-repeat !important;}
-
-/************ Destination ************/
-.keyboard .q {
- left: -67px;
- top: 109px;
- white-space: nowrap;
-}
-
-.keyboard .w {
- left: 4px;
- top: 109px;
- white-space: nowrap;
-}
-
-.keyboard .e {
- left: 79px;
- top: 109px;
- white-space: nowrap;
-}
-
-.keyboard .r {
- left: 150px;
- top: 109px;
- white-space: nowrap;
-}
-
-.keyboard .t {
- left: 222px;
- top: 109px;
- white-space: nowrap;
-}
-
-.keyboard .y {
- left: 295px;
- top: 109px;
- white-space: nowrap;
- }
-
-.keyboard .u {
- left: 367px;
- top: 109px;
- white-space: nowrap;
-}
-
-.keyboard .i {
- left: 445px;
- top: 109px;
- white-space: nowrap;
-}
-
-.keyboard .o {
- left: 511px;
- top: 109px;
- white-space: nowrap;
-}
-
-.keyboard .p {
- left: 584px;
- top: 109px;
- white-space: nowrap;
-}
-
-.keyboard .a {
- left: -29px;
- top: 155px;
- white-space: nowrap;
-}
-
-.keyboard .s {
- left: 44px;
- top: 155px;
- white-space: nowrap;
-}
-
-.keyboard .d {
- left: 114px;
- top: 155px;
- white-space: nowrap;
-}
-
-.keyboard .f {
- left: 188px;
- top: 155px;
- white-space: nowrap;
-}
-
-.keyboard .g {
- left: 258px;
- top: 155px;
- white-space: nowrap;
-}
-
-.keyboard .h {
- left: 332px;
- top: 155px;
- white-space: nowrap;
-}
-
-.keyboard .j {
- left: 405px;
- top: 155px;
- white-space: nowrap;
-}
-
-.keyboard .k {
- left: 478px;
- top: 155px;
- white-space: nowrap;
-}
-
-.keyboard .l {
- left: 550px;
- top: 155px;
- white-space: nowrap;
-}
-
-.keyboard .z {
- left: 7px;
- top: 204px;
- white-space: nowrap;
-}
-
-.keyboard .x {
- left: 79px;
- top: 204px;
- white-space: nowrap;
-}
-
-.keyboard .c {
- left: 149px;
- top: 204px;
- white-space: nowrap;
-}
-
-.keyboard .v {
- left: 223px;
- top: 204px;
- white-space: nowrap;
-}
-
-.keyboard .b {
- left: 293px;
- top: 204px;
- white-space: nowrap;
-}
-
-.keyboard .n {
- left: 366px;
- top: 204px;
- white-space: nowrap;
-}
-
-.keyboard .m {
- left: 439px;
- top: 204px;
- white-space: nowrap;
-}
-
-.keyboard .and {
- left: 656px;
- top: 204px;
- white-space: nowrap;
-}
-
-.keyboard .dash {
- left: 581px;
- top: 203px;
- white-space: nowrap;
-}
-
-.keyboard .space {
- left: 220px;
- top: 249px;
- white-space: nowrap;
-}
-
-.keyboard .ch {
- left: 499px;
- top: 244px;
- white-space: nowrap;
-}
-
-.keyboard .abc {
- left: 357px;
- top: 244px;
- white-space: nowrap;
-}
-
-.keyboard .n123 {
- left: 429px;
- top: 250px;
- white-space: nowrap;
-}
-
-#navigation .sortby {
- white-space: nowrap;
- left: 276px;
- top: 9px;
- width: 150px;
- text-align: right;
-}
-
-/************ Destination My Home ************/
-#navigation_destination_myHome_view {
- width: 800px;
- height: 432px;
- background: url(../images/nav/dest/navi_destination_MyHome_bg.png) no-repeat;
- top: 0px;
- z-index: 1001;
-}
-
-#navigation_destination_myHome_view .content{
- width: 800px;
-}
-
-#navigation_destination_myHome_view .view {
- top: 180px;
- left: 72px;
- text-align: center;
- width: 63px;
-}
-
-#navigation_destination_myHome_view .set_a_dest {
- top: 385px;
- left: 17px;
-}
-#navigation_destination_myHome_view .dest {
- left: 603px;
- top: 19px;
-}
-#navigation_destination_myHome_view .set_as_way {
- top: 374px;
- left: 134px;
- width: 130px;
- text-align: center;
-}
-#navigation_destination_myHome_view .my_home {
- left: 490px;
- top: 151px;
-}
-#navigation_destination_myHome_view .rd {
- left: 490px;
- top: 201px;
-}
-#navigation_destination_myHome_view .menu {
- left: 712px;
- top: 19px;
-}
-#navigation_destination_myHome_view .dial {
- left: 680px;
- top: 249px;
-}
-#navigation_destination_myHome_view .edit {
- left: 601px;
- top: 354px;
- width: 138px;
- text-align: center;
-}
-#navigation_destination_myHome_view .delete {
- left: 461px;
- top: 354px;
- width: 138px;
- text-align: center;
-}
-
-.help-mode #navigation_destination_myHome_view .label-20, {
- text-shadow: 0 0 3px #999;
-}
-
-.help-mode #navigation_destination_myHome_view {
- background: url(../images/nav/dest/navi_destination_MyHome_bg_help.png) no-repeat;
-}
-
-.help-mode #navigation_destination_myHome_view .label-20{
- text-shadow: 0 0 3px #999;
-}
-
-/********************** Favorites ***********************/
-#view_navi_destination_favorites {
- top: 0px;
- width: 800px;
- height: 432px;
- background: url(../images/nav/dest/navi_destination_Favorites_bg.png) no-repeat;
- z-index:1001;
-}
-
-#view_navi_destination_favorites .content {
- top: 119px;
- left: 100px;
-}
-
-#view_navi_destination_favorites .i1{
- top: 57px;
- left: -9px;
-}
-
-#view_navi_destination_favorites .i2{
- top: 117px;
- left: -9px;
-}
-
-#view_navi_destination_favorites .az{
- top: 12px;
- left: 472px;
- white-space: nowrap;
-}
-
-#view_navi_destination_favorites .date{
- top: 12px;
- left: 566px;
- white-space: nowrap;
-}
-
-#view_navi_destination_favorites .edit{
- top: 56px;
- left: 437px;
- width: 98px;
- white-space: nowrap;
- text-align: center;
-}
-
-#view_navi_destination_favorites .delete1{
- top: 57px;
- left: 538px;
- width: 96px;
- white-space: nowrap;
- text-align: center;
-}
-
-#view_navi_destination_favorites .delete2{
- top: 115px;
- left: 538px;
- width: 96px;
- white-space: nowrap;
- text-align: center;
-}
-
-#view_navi_destination_favorites .add{
- top: 116px;
- left: 437px;
- width: 98px;
- white-space: nowrap;
- text-align: center;
-}
-
-#view_navi_destination_favorites .myhome{
- white-space: nowrap;
- left: 80px;
- top: 57px;
-}
-
-.help-mode #view_navi_destination_favorites {
- background: url(../images/nav/dest/navi_destination_Favorites_bg_help.png) no-repeat;
-}
-
-.help-mode #view_navi_destination_favorites .label-20 {
- text-shadow: 0 0 3px #999;
-}
-
-/*** Previous ***/
-#view_navi_destination_previous {
- top: 0px;
- width: 800px;
- height: 432px;
- background: url(../images/nav/dest/navi_destination_Previous_bg.png) no-repeat;
- z-index: 1001;
-}
-
-#view_navi_destination_previous .content {
- top: 119px;
- left: 100px;
-}
-
-#view_navi_destination_previous .i1 {
- top: 57px;
- left: -9px;
-}
-#view_navi_destination_previous .i2 {
- top: 117px;
- left: -9px;
-}
-
-#view_navi_destination_previous .date {
- top: 12px;
- left: 464px;
- white-space: nowrap;
-}
-
-#view_navi_destination_previous .city {
- top: 12px;
- left: 566px;
- white-space: nowrap;
-}
-
-#view_navi_destination_previous .delete1 {
- top: 57px;
- left: 538px;
- width: 96px;
- white-space: nowrap;
- text-align: center;
-}
-
-#view_navi_destination_previous .delete2 {
- top: 115px;
- left: 538px;
- width: 96px;
- white-space: nowrap;
- text-align: center;
-}
-
-#view_navi_destination_previous .add {
- left: 470px;
- top: 116px;
- white-space: nowrap;
-}
-#view_navi_destination_previous .milerd {
- white-space: nowrap;
- left: 31px;
- top: 58px;
-}
-#view_navi_destination_previous .southfield {
- white-space: nowrap;
- left: 34px;
- top: 116px;
-}
-
-.help-mode #view_navi_destination_previous {
- background: url(../images/nav/dest/navi_destination_Previous_bg_help.png) no-repeat;
-}
-
-.help-mode #view_navi_destination_previous .label-20 {
- text-shadow: 0 0 3px #999;
-}
-
-/*** POI ***/
-#view_navi_destination_poi {
- top: 0px;
- width: 800px;
- height: 432px;
- background: url(../images/nav/dest/navi_destination_POI_bg.png) no-repeat;
- z-index: 1001;
-}
-
-#view_navi_destination_poi .content {
- top: 118px;
- left: 99px;
-}
-
-#view_navi_destination_poi .sa{
- left: -93px;
- top: 58px;
- width: 146px;
- text-align: center;
-}
-
-#view_navi_destination_poi.fr .sa{
- left: -72px;
- top: 47px;
- width: 100px;
- text-align: center;
- line-height: 20px;
-}
-
-#view_navi_destination_poi .sbn{
- width: 145px;
- left: -92px;
- top: 104px;
- text-align: center;
-}
-
-#view_navi_destination_poi.fr .sbn {
- left: -67px;
- width: 94px;
-}
-
-#view_navi_destination_poi .sbp {
- width: 148px;
- left: -92px;
- top: 161px;
- text-align: center;
-}
-
-#view_navi_destination_poi.fr .sbp {
- line-height: 19px;
- top: 155px;
-}
-
-#view_navi_destination_poi .recent {
- left: 554px;
- top: 12px;
-}
-
-#view_navi_destination_poi .all {
- left: 437px;
- top: 12px;
- width: 99px;
- text-align: center;
-}
-
-#view_navi_destination_poi .fav {
- left: 337px;
- top: 12px;
- text-align: center;
- width: 97px;
-}
-
-#view_navi_destination_poi .cat {
- left: 220px;
- top: 14px;
-}
-
-#view_navi_destination_poi .fs {
- left: 116px;
- top: 58px;
- white-space: nowrap;
-}
-
-#view_navi_destination_poi .fin {
- left: 116px;
- top: 108px;
- white-space: nowrap;
-}
-#view_navi_destination_poi .ar {
- left: 116px;
- top: 158px;
- white-space: nowrap;
-}
-
-#view_navi_destination_poi .acc {
- left: 116px;
- top: 208px;
- white-space: nowrap;
-}
-#view_navi_destination_poi .p {
- left: 116px;
- top: 258px;
- white-space: nowrap;
-}
-#view_navi_destination_poi .edit1 {
- left: 535px;
- top: 55px;
- white-space: nowrap;
- width: 100px;
- text-align: center;
-}
-#view_navi_destination_poi .edit2 {
- left: 535px;
- top: 105px;
- white-space: nowrap;
- width: 100px;
- text-align: center;
-}
-#view_navi_destination_poi .edit3 {
- left: 535px;
- top: 155px;
- white-space: nowrap;
- width: 100px;
- text-align: center;
-}
-#view_navi_destination_poi .edit4 {
- left: 535px;
- top: 205px;
- white-space: nowrap;
- width: 100px;
- text-align: center;
-}
-#view_navi_destination_poi .edit5 {
- left: 535px;
- top: 255px;
- white-space: nowrap;
- width: 100px;
- text-align: center;
-}
-
-.help-mode #view_navi_destination_poi {
- background: url(../images/nav/dest/navi_destination_POI_bg_help.png) no-repeat;
-}
-
-.help-mode #view_navi_destination_poi .label-20 {
- text-shadow: 0 0 3px #999;
-}
-
-/************** Street Address ***************/
-#view_navi_destination_streetAddress {
- top: 0px;
- width: 800px;
- height: 480px;
- background-image: url(../images/nav/dest/navi_destination_StreetAddress_bg.png);
- background-repeat: no-repeat;
- z-index: 1001;
-}
-
-#view_navi_destination_streetAddress .content{
- top: 119px;
- left: 100px;
-}
-
-#view_navi_destination_streetAddress .backButton{
- top: 11px;
-}
-
-#view_navi_destination_streetAddress .voiceButton{
- top: 80px;
-}
-
-#view_navi_destination_streetAddress .number {
- left: -14px;
- top: -24px;
- white-space: nowrap;
-}
-
-#view_navi_destination_streetAddress .city {
- left: 3px;
- top: 21px;
- white-space: nowrap;
-}
-
-#view_navi_destination_streetAddress .street {
- left: 217px;
- top: -24px;
- white-space: nowrap;
-}
-
-#view_navi_destination_streetAddress .de {
- left: 88px;
- top: 30px;
- white-space: nowrap;
-}
-
-#view_navi_destination_streetAddress .l26 {
- left: 350px;
- top: 30px;
- white-space: nowrap;
-}
-
-#view_navi_destination_streetAddress .sp {
- left: 416px;
- top: 29px;
- width: 108px;
- text-align: center;
- white-space: nowrap;
-}
-
-#view_navi_destination_streetAddress .mi {
- left: 540px;
- top: 30px;
- white-space: nowrap;
-}
-
-.help-mode #view_navi_destination_streetAddress {
- background-image: url(../images/nav/dest/navi_destination_StreetAddress_bg_help.png);
-}
-
-.help-mode #view_navi_destination_streetAddress .label-20{
- text-shadow: 0 0 3px #999;
-}
-
-/*** Intersection ***/
-#view_navi_destination_intersection {
- top: 0px;
- width: 800px;
- height: 432px;
- background: url(../images/nav/dest/navi_destination_Intersection_bg.png) no-repeat;
- z-index: 1001;
-}
-
-#view_navi_destination_intersection .voiceButton{
- top: 80px;
-}
-
-#view_navi_destination_intersection .content{
- top: 119px;
- left: 100px;
-}
-
-#view_navi_destination_intersection .street1{
- left: -14px;
- top: -24px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .city{
- top: 21px;
- left: 3px;
-}
-
-#view_navi_destination_intersection .street2{
- left: 326px;
- top: -24px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .de {
- left: 88px;
- top: -24px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .l26 {
- left: 238px;
- top: -25px;
- white-space: nowrap;
- font-size: 19px;
-}
-
-#view_navi_destination_intersection .sp {
- left: 416px;
- top: 29px;
- width: 108px;
- text-align: center;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .mi {
- left: 540px;
- top: 30px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .q {
- left: -67px;
- top: 109px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .w {
- left: 4px;
- top: 109px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .e {
- left: 79px;
- top: 109px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .r {
- left: 150px;
- top: 109px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .t {
- left: 222px;
- top: 109px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .y {
- left: 295px;
- top: 109px;
- white-space: nowrap;
- }
-
-#view_navi_destination_intersection .u {
- left: 367px;
- top: 109px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .i {
- left: 445px;
- top: 109px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .o {
- left: 511px;
- top: 109px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .p {
- left: 584px;
- top: 109px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .a {
- left: -29px;
- top: 155px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .s {
- left: 44px;
- top: 155px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .d {
- left: 114px;
- top: 155px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .f {
- left: 188px;
- top: 155px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .g {
- left: 258px;
- top: 155px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .h {
- left: 332px;
- top: 155px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .j {
- left: 405px;
- top: 155px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .k {
- left: 478px;
- top: 155px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .l {
- left: 550px;
- top: 155px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .z {
- left: 7px;
- top: 204px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .x {
- left: 79px;
- top: 204px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .c {
- left: 149px;
- top: 204px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .v {
- left: 223px;
- top: 204px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .b {
- left: 293px;
- top: 204px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .n {
- left: 366px;
- top: 204px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .m {
- left: 439px;
- top: 204px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .and {
- left: 656px;
- top: 204px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .dash {
- left: 581px;
- top: 203px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .space {
- left: 220px;
- top: 249px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .ch {
- left: 499px;
- top: 244px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .abc {
- left: 357px;
- top: 244px;
- white-space: nowrap;
-}
-
-#view_navi_destination_intersection .n123 {
- left: 429px;
- top: 250px;
- white-space: nowrap;
-}
-
-.help-mode #view_navi_destination_intersection {
- background: url(../images/nav/dest/navi_destination_Intersection_bg_help.png) no-repeat;
-}
-
-.help-mode #view_navi_destination_intersection .label-20 {
- text-shadow: 0 0 3px #999;
-}
-
-/*** CityCenter ***/
-#view_navi_destination_cityCenter {
- top: 0px;
- width: 800px;
- height: 432px;
- background: url(../images/nav/dest/navi_destination_CityCenter_bg.png) no-repeat;
- z-index: 1001;
-}
-
-#view_navi_destination_cityCenter .content{
- top: 119px;
- left: 100px;
-}
-
-#view_navi_destination_cityCenter .state {
- left: 416px;
- top: 29px;
- width: 108px;
- text-align: center;
- white-space: nowrap;
-}
-
-#view_navi_destination_cityCenter .n26{
- left: 350px;
- top: 30px;
-}
-
-#view_navi_destination_cityCenter .city {
- left: 2px;
- top: 25px;
-}
-#view_navi_destination_cityCenter .pointer{
- left: 90px;
- top: 29px;
-}
-
-#view_navi_destination_cityCenter .mi {
- left: 540px;
- top: 30px;
- white-space: nowrap;
-}
-
-.help-mode #view_navi_destination_cityCenter {
- background: url(../images/nav/dest/navi_destination_CityCenter_bg_help.png) no-repeat;
-}
-
-.help-mode #view_navi_destination_cityCenter .label-20 {
- text-shadow: 0 0 3px #999;
-}
-
-/*** Map ***/
-#view_navi_destination_map {
- width: 800px;
- height: 432px;
- background: url(../images/nav/dest/navi_destination_Map_bg.png) no-repeat;
- top: 0px;
- z-index: 1001;
-}
-
-#view_navi_destination_map_destination_button{
- left: 565px;
- top: 5px;
- height: 23px;
- white-space: nowrap;
- width: 113px;
- text-align: center;
- padding: 14px 0 12px;
- border-top-left-radius: 4px;
- border-bottom-left-radius: 4px;
- border-bottom: 1px solid #393939;
- border-right: none;
-}
-
-#view_navi_destination_map .content{
- left: 95px;
- top: 60px;
-}
-
-#view_navi_destination_map .view {
- left: -14px;
- top: 120px;
-}
-#view_navi_destination_map .set_as_dest {
- top: 325px;
- left: -90px;
- width: 127px;
- text-align: center;
-}
-
-#view_navi_destination_map .saw {
- top: 314px;
- left: 41px;
- width: 127px;
- text-align: center;
-}
-#view_navi_destination_map .saf {
- top: 314px;
- left: 171px;
- width: 127px;
- text-align: center;
-}
-
-#view_navi_destination_map .poi {
- top: 315px;
- left: 306px;
- width: 120px;
- text-align: center;
-}
-
-#view_navi_destination_map .tf {
- left: 445px;
- top: 318px;
- width: 99px;
- text-align: center;
-}
-
-#view_navi_destination_map.fr .tf {
- top: 314px;
-}
-
-#view_navi_destination_map .menu {
- left: 615px;
- top: -41px;
- white-space: nowrap;
-}
-#view_navi_destination_map .chestnut {
- left: 251px;
- top: 12px;
- white-space: nowrap;
-}
-
-.help-mode #view_navi_destination_map {
- background: url(../images/nav/dest/navi_destination_Map_bg_help.png) no-repeat;
-}
-
-.help-mode #view_navi_destination_map .label-20{
- text-shadow: 0 0 3px #999;
-}
-
-.help-mode #view_navi_destination_map_destination_button {
- border: none;
- background: none;
-}
-
-/*** Previous Starting Points ***/
-#view_navi_destination_previousStartingsPoint {
- top: 0px;
- width: 800px;
- height: 432px;
- background: url(../images/nav/dest/navi_destination_PreviousStartPoint_bg.png) no-repeat;
- z-index: 1001;
-}
-
-#view_navi_destination_previousStartingsPoint .content{
- top: 119px;
- left: 100px;
-}
-
-#view_navi_destination_previousStartingsPoint .i1{
- top: 57px;
- left: -9px;
-}
-#view_navi_destination_previousStartingsPoint .i2{
- top: 117px;
- left: -9px;
-}
-#view_navi_destination_previousStartingsPoint .date{
- top: 12px;
- left: 465px;
- white-space: nowrap;
-}
-
-#view_navi_destination_previousStartingsPoint .city{
- top: 12px;
- left: 566px;
- white-space: nowrap;
-}
-
-#view_navi_destination_previousStartingsPoint .delete1{
- top: 57px;
- left: 557px;
- white-space: nowrap;
-}
-#view_navi_destination_previousStartingsPoint .delete2{
- top: 115px;
- left: 557px;
- white-space: nowrap;
-}
-#view_navi_destination_previousStartingsPoint .add{
- left: 470px;
- top: 116px;
- white-space: nowrap;
-}
-#view_navi_destination_previousStartingsPoint .milerd{
- white-space: nowrap;
- left: 31px;
- top: 58px;
-}
-#view_navi_destination_previousStartingsPoint .southfield{
- white-space: nowrap;
- left: 34px;
- top: 116px;
-}
-
-.help-mode #view_navi_destination_previousStartingsPoint {
- background: url(../images/nav/dest/navi_destination_PreviousStartPoint_bg_help.png) no-repeat;
-}
-
-.help-mode #view_navi_destination_previousStartingsPoint .label-20 {
- text-shadow: 0 0 3px #999;
-}
-
-/*** Freeway ***/
-#view_navi_destination_freeWay {
- top: 0px;
- width: 800px;
- height: 432px;
- background: url(../images/nav/dest/navi_destination_Freeway_bg.png) no-repeat;
- z-index: 1001;
-}
-
-#view_navi_destination_freeWay .content{
- top: 119px;
- left: 100px;
-}
-
-#view_navi_destination_freeWay .state {
- left: 416px;
- top: 29px;
- width: 108px;
- text-align: center;
- white-space: nowrap;
-}
-
-#view_navi_destination_freeWay .n26{
- left: 350px;
- top: 29px;
-}
-
-#view_navi_destination_freeWay .freeway {
- left: -16px;
- top: 28px;
-}
-
-#view_navi_destination_freeWay .pointer{
- left: 90px;
- top: 29px;
-}
-
-#view_navi_destination_freeWay .mi {
- left: 540px;
- top: 30px;
- white-space: nowrap;
-}
-
-.help-mode #view_navi_destination_freeWay {
- background: url(../images/nav/dest/navi_destination_Freeway_bg_help.png) no-repeat;
-}
-
-.help-mode #view_navi_destination_freeWay .label-20 {
- text-shadow: 0 0 3px #999;
-}
-
-/*** Latitude ***/
-
-#view_navi_destination_latitudeLongitude {
- top: 0px;
- width: 800px;
- height: 432px;
- background: url(../images/nav/dest/navi_destination_LatitudeLongitude_bg.png) no-repeat;
- z-index: 1001;
-}
-
-#view_navi_destination_latitudeLongitude .content{
- top: 119px;
- left: 100px;
-}
-
-#view_navi_destination_latitudeLongitude .w{
- left: 526px;
- top: 149px;
-}
-#view_navi_destination_latitudeLongitude .n{
- left: 454px;
- top: 95px;
-}
-#view_navi_destination_latitudeLongitude .s{
- left: 455px;
- top: 203px;
-}
-#view_navi_destination_latitudeLongitude .e{
- left: 383px;
- top: 149px;
-}
-#view_navi_destination_latitudeLongitude .go{
- left: 610px;
- top: 247px;
-}
-#view_navi_destination_latitudeLongitude .longitude{
- left: 156px;
- top: 37px;
-}
-#view_navi_destination_latitudeLongitude .latitude{
- left: 156px;
- top: -20px;
-}
-#view_navi_destination_latitudeLongitude .dd{
- left: 45px;
- top: 10px;
-}
-
-#view_navi_destination_latitudeLongitude .n1{
- left: 94px;
- top: 203px;
-}
-
-#view_navi_destination_latitudeLongitude .n2{
- left: 165px;
- top: 203px;
-}
-
-#view_navi_destination_latitudeLongitude .n3{
- left: 237px;
- top: 203px;
-}
-
-#view_navi_destination_latitudeLongitude .n4{
- left: 94px;
- top: 148px;
-}
-
-#view_navi_destination_latitudeLongitude .n5{
- left: 165px;
- top: 148px;
-}
-
-#view_navi_destination_latitudeLongitude .n6{
- left: 237px;
- top: 148px;
-}
-
-#view_navi_destination_latitudeLongitude .n7{
- left: 94px;
- top: 98px;
-}
-
-#view_navi_destination_latitudeLongitude .n8{
- left: 165px;
- top: 98px;
-}
-
-#view_navi_destination_latitudeLongitude .n9{
- left: 237px;
- top: 98px;
-}
-
-#view_navi_destination_latitudeLongitude .n0{
- top: 257px;
- left: 166px;
-}
-
-#view_navi_destination_latitudeLongitude .z1{
- left: 374px;
- top: -21px;
-}
-#view_navi_destination_latitudeLongitude .z2{
- left: 444px;
- top: -21px;
-}
-#view_navi_destination_latitudeLongitude .z3{
- left: 374px;
- top: 38px;
-}
-#view_navi_destination_latitudeLongitude .z4{
- left: 444px;
- top: 38px;
-}
-
-#view_navi_destination_latitudeLongitude .wn1{
- left: 512px;
- top: -21px;
-}
-#view_navi_destination_latitudeLongitude .wn2{
- left: 510px;
- top: 38px;
-}
-
-#view_navi_destination_latitudeLongitude .d1{
- left: 414px;
- top: -32px;
- font-size: 48px;
-}
-#view_navi_destination_latitudeLongitude .d2{
- left: 414px;
- top: 28px;
- font-size: 48px;
-}
-
-#view_navi_destination_latitudeLongitude .mn1{
- left: 485px;
- top: -36px;
- font-size: 22px;
-}
-#view_navi_destination_latitudeLongitude .mn2{
- left: 485px;
- top: 25px;
- font-size: 22px;
-}
-
-.help-mode #view_navi_destination_latitudeLongitude {
- background: url(../images/nav/dest/navi_destination_LatitudeLongitude_bg_help.png) no-repeat;
-}
-
-.help-mode #view_navi_destination_latitudeLongitude .label-20 {
- text-shadow: 0 0 3px #999;
-}
-
-/*** Emergency ***/
-#view_navi_destination_emergency {
- top: 0px;
- width: 800px;
- height: 432px;
- background: url(../images/nav/dest/navi_destination_Emergency_bg.png) no-repeat;
- z-index: 10001;
-}
-
-#view_navi_destination_emergency .content{
- top: 119px;
- left: 100px;
-}
-
-#view_navi_destination_emergency .sa {
- white-space: nowrap;
- top: 28px;
- left: -74px;
-}
-
-#view_navi_destination_emergency.fr .sa {
- white-space: pre-wrap;
- position: relative;
- line-height: 19px;
- width: 148px;
- top: 19px;
- left: -95px;
- text-align: center;
-}
-
-#view_navi_destination_emergency .nearby {
- white-space: nowrap;
- top: 28px;
- left: 65px;
-}
-#view_navi_destination_emergency .hospital {
- white-space: nowrap;
- top: 138px;
- left: 170px;
-}
-#view_navi_destination_emergency .police {
- white-space: nowrap;
- top: 189px;
- left: 170px;
-}
-#view_navi_destination_emergency .emerg {
- white-space: nowrap;
- top: 89px;
- left: 170px;
-}
-
-.help-mode #view_navi_destination_emergency {
- background: url(../images/nav/dest/navi_destination_Emergency_bg_help.png) no-repeat;
-}
-
-.help-mode #view_navi_destination_emergency .label-20{
- text-shadow: 0 0 3px #999;
-}
-
-#nav_arrow {background: url(../images/nav/nav_arrow.png) no-repeat;width: 70px;height: 56px;z-index: 5;left: 21px;top: 73px;}
-
-#nav_arrow.help_blur{ background:url(../images/nav/help/direction_arrow_blur.png) no-repeat !important; width:80px !important; height:66px !important; left:16px !important; top:65px !important;}
-
-#nav_compass{width:50px;height:50px;background: url(../images/nav/compas.png) no-repeat;right:208px; z-index:1;}
-
-#nav_compass.help_blur{ background:url(../images/nav/help/compas_blur.png) no-repeat !important; width:60px !important; height:60px !important; top:-5px; left:-66px;}
-
-
-#navigation_topmenu{right:6px;top:5px;width:197px;height:48px;-webkit-border-radius:3px;border-radius:3px; z-index:6;}
-
-#top_menu_blur_1{ background:url(../images/nav/top_menu_blur_1.png) no-repeat; width:267px; height:58px; display:none; right:1px; z-index:1;}
-
-
-#nav_top_menu_arrow, #help_nav_top_menu_repeat_button{cursor: pointer;background: url(../images/nav/top_menu_bg.png) repeat-x;z-index: 6;-webkit-border-top-right-radius:2px;-webkit-border-bottom-right-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;width:48px;height:48px;right:0px;}
-
-/* Top menu Menu button*/
-#navigation_topmenu_menu_button{
- cursor:pointer;
- z-index: 5;
- background: url(../images/nav/top_menu_bg.png) repeat-x;
- width:71px;
- height:48px;
- left: 75px;
- font-size:18px;
- text-align:center;
- line-height:48px;
-}
-#navigation_topmenu_menu_button.pressed{
- background: url(../images/nav/nav_bg_pressed.png) repeat-x !important;
-}
-
-#navigation_topmenu_menu_button_help{
- background:url(../images/nav/help/menu_btn_help.png) no-repeat;
- width:74px;
- height:55px;
- left:74px;
- bottom:-4px;
-}
-
-
-#navigation_topmenu .delim{background: url(../images/nav/top_menu_delim.png) no-repeat;height:48px;width:4px; z-index:5;}
-#navigation_topmenu .delim2 { left: 71px; }
-#navigation_topmenu .delim3 { left: 146px; }
-
-/* Destination button*/
-#navigation_topmenu_destination_button{
- cursor:pointer;
- z-index:6;
- background: url("../images/nav/top_menu_bg.png") repeat-x;
- font-size:18px;
- width:71px;
- height:48px;
- text-align:center;
- line-height:48px;
- -webkit-border-top-left-radius:2px;
- -webkit-border-bottom-left-radius:2px;
- border-top-left-radius:2px;
- border-bottom-left-radius:2px;
-}
-
-
-
-
-#navigation_topmenu_destination_button.pressed{background: url("../images/nav/nav_bg_pressed.png") repeat-x !important;}
-
-#nav_top_menu_mute ,#help_nav_top_menu_repeat_button img {position:absolute;top:10px;left:10px;}
-
-#nav_top_menu_arrow img {position:absolute;top:10px;left:10px;}
-
-#nav_zoom_in_dis {background: url("../images/nav/zoom_in_dis.png") no-repeat; width: 25px; height: 25px; left: 19px; top: 259px; display: none; z-index: 1000;}
-
-#nav_zoom_out_dis {background: url("../images/nav/zoom_out_dis.png") no-repeat; width: 25px; height: 25px; left: 19px; top: 309px; z-index: 1000;}
-
-.time-dest{ background:url(../images/nav/dest-time.png) no-repeat; width:130px; height:50px; top:349px; left:5px; z-index:1000}
-
-.time-dest .distance{
- font-size: 20px;
- left: 50px;
- top: 3px;
- position: absolute;
-}
-.time-dest .distance_label{
- position: absolute;
- left: 25px;
- font-size: 16px;
- top: 4px;
-}
-
-.distance_time{
- font-size: 20px;
- left: -24px;
- top: 16px;
- position: absolute;
-}
-
-.distance_time_label{
- position: absolute;
- left: 40px;
- font-size: 12px;
- top: 7px;
-}
-
-
-
-.time-dest.help_blur{
- background:url(../images/nav/help/miles_button_blur.png) no-repeat !important;
- width:140px !important;
- height:60px !important;
- left:0px !important;
- top:344px !important;
-}
-
-.time-dest.help_blur span{
- border: none !important;
- background: none !important;
- color: transparent !important;
- text-shadow: 0 0 3px rgba(256, 256, 256, 0.7);
-}
-
-.time-dest.help_blur .time-dest-cont{
- top:5px;
- left:5px;
-}
-
-
-#navigation_zoomin_button{border:1px solid #393939;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;z-index:5;width:50px;height:50px;top:245px;left:5px;cursor:pointer;z-index:1000;background: url("../images/nav/zoom_bg.png") repeat-x;}
-#navigation_zoomout_button{border:1px solid #393939;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;z-index:5;width:50px;height:49px;top:294px;left:5px;cursor:pointer;z-index:1000;background: url("../images/nav/zoom_bg.png") repeat-x;}
-#navigation_zoomin_button .ico{position:absolute;left:13px;top:13px;}
-#navigation_zoomout_button .ico{position:absolute;left:13px;top:13px;}
-
-#navigation_zoomin_button.pressed{background: url("../images/nav/zoom_bg_active.png") repeat-x !important;}
-#navigation_zoomout_button.pressed{background:url("../images/nav/zoom_bg_active.png") repeat-x !important;}
-
-#nav_top_menu_mute_help {display: none; width: 32px; height: 19px; background: url("../images/nav/nav_help_led.png") no-repeat; left: 705px; top: 34px; z-index: 100;}
-#no_freeway {z-index:100; text-align: center; width: 202px;font-size: 21px; bottom: 2px; right: 70px;}
-.nav_type_ico {position:absolute;left:2px;top:-1px;}
-.type_h{position:absolute;left:5px;top:-5px;}
-
-
-
-#navigation_mapsettings{
- top:175px;
- left:5px;
- border:1px solid #333;
- -webkit-border-radius:3px;
- z-index:6;
-}
-
-#navigation_mapsettings.noboreder{
- border:none !important;
-}
-
-/* Type View Change Button*/
-
-#navigation_typeview_button {
- position:relative;
- float:left;
- background: url(../images/nav/type_view_btn_bg.png) no-repeat;
- cursor:pointer;
- font-size:18px;
- width:60px;
- height:57px;
- text-align:center;
- line-height:40px;
- border-left:1px solid #333;
- z-index:5;
-}
-
-.helpmode #navigation_typeview_button {
- top:1px;
- left:1px;
-}
-
-#navigation_typeview_button p {
- margin-top:6px;
-}
-#navigation_typeview_button div{
- width:22px;
- height:17px;
- left:13px;
- bottom:8px;
- position:relative;
- float:left;
- margin-left:-9px;
-}
-#navigation_typeview_button div.small_ind_def{
- background:url(../images/nav/small_ind_def.png) no-repeat;
-}
-#navigation_typeview_button div.small_ind_active{
- background:url(../images/nav/small_ind_yell.png) no-repeat;
-}
-#navigation_typeview_button.pressed{
- background: url(../images/nav/type_view_btn_bg_pressed.png) no-repeat !important;
-}
-
-#helptypeviewchange{
- background:url(../images/nav/help/type_view_button_help.png) no-repeat;
- width:85px;
- height:80px;
- left:50px;
- top:-10px;
-}
-
-
-/* Map View Change Button*/
-
-#navigation_mapview_button{
- cursor:pointer;
- width:60px;
- height:57px;
- background:url(../images/nav/map_view_btn_bg.png) no-repeat;
- z-index:1000;
- position:relative;
- float:left;
-}
-#navigation_mapview_button .ico {
- margin-left: 5px;
-}
-#navigation_mapview_button div{
- width:22px;
- height:17px;
- left:13px;
- bottom:12px;
- position:relative;
- float:left;
- margin-left:-9px;
-}
-#navigation_mapview_button div.small_ind_def{
- background:url(../images/nav/small_ind_def.png) no-repeat;
-}
-#navigation_mapview_button div.small_ind_active{
- background:url(../images/nav/small_ind_yell.png) no-repeat;
-}
-#navigation_mapview_button.pressed{
- background:url(../images/nav/map_view_btn_bg_pressed.png) no-repeat !important;
-}
-/* END Map View Change Button*/
-
-
-
-#help_navigation_mapview_button{
- width:60px;
- height:70px;
- z-index:1001;
- top:170px;
-}
-
-#help_navigation_mapview_button.button_type1{
- background:url(../images/nav/help/view_type1_button_blur.png) no-repeat !important;
- z-index:1;
- width:65px;
-}
-#help_navigation_mapview_button.button_type2{
- background:url(../images/nav/help/view_type2_button_blur.png) no-repeat !important;
- z-index:1;
- width:65px;
-}
-#help_navigation_mapview_button.button_type3{
- background:url(../images/nav/help/view_type3_button_blur.png) no-repeat !important;
- z-index:1;
- width:65px;
-}
-
-/* Nav Menu*/
-
-#nav_menu_view {
- width: 496px;
- height: 216px;
- background: black;
- z-index: 1000;
- top: 125px;
- left:155px;
- border: 2px solid #167B3B;
-}
-
-#nav_menu_lable{
- font-size: 24px;
- position: relative;
- width: 400px;
- margin: 0 auto;
- margin-top: 10px;
- text-align: center;
-}
-
-#nav_menu_buttons{
- border: 1px solid #393939;
- width: 461px;
- height: 152px;
- position: relative;
- margin: 0 auto;
- -webkit-border-radius:4px;
- margin-top:10px;
-}
-
-#nav_menu_buttons .button{
- background:url(../images/list/list_item_bg.png) repeat-x;
- width: 230px;
- height: 50px;
- border-bottom: 1px solid #393939;
- position:relative;
- float:left;
-}
-
-#nav_menu_buttons .button.right_border{
- border-right: 1px solid #393939;
-}
-
-#nav_menu_buttons .button span{
- font-size: 18px;
- line-height: 48px;
- padding-left: 20px;
-}
-#nav_menu_buttons .button.pressed{
- background: url(../images/list/list_item_pressed.png) repeat-x !important;
-}
-
-#guadian_mute .ind_act{
- position: absolute;
- right:14px;
- top:9px;
- background:url(../images/climate/ind_vert_active.png) no-repeat;
- width:19px;
- height:32px;
-}
-
-#guadian_mute .ind_inact{
- position: absolute;
- background:url(../images/climate/ind_vert_def.png) no-repeat;
- width:6px;
- height:21px;
- right:20px;
- top:14px;
-}
-
-
-
-#distance{background: url("../images/nav/distance.png") no-repeat bottom left;width: 133px;height: 14px;font-size: 20px;text-shadow: 0px 0px 3px #fff;color: black;top: 397px;padding: 0 0 11px 10px;z-index: 5;left: 6px;}
-
-#distance.help_blur{ background:url(../images/nav/help/distance_linedecor_blur.png) no-repeat !important; width:143px !important; height:24px !important; top:402px !important; left:1px !important;}
-#distance.help_blur span{ position:absolute; bottom:16px; left:15px;}
-
-
-.typeview2{left: 0;background-position: -140px 0 !important; width: 395px !important;}
-.typeview3{left: 0;background-position: -140px 0 !important; width: 395px !important;}
-
-#navigation_view1{background: url("../images/nav/nav_bg.png") no-repeat; width:800px; height:480px; display:none;}
-
-#navigation_view1.help_blur{ background:url(../images/nav/help/nav_bg_blur.png) no-repeat !important; top:3px;}
-
-#navigation_view1.typeview1{display:block; background-position:0 0 !important;}
-
-#navigation_view2 {display: none;background: url("../images/nav/map_view2_with_icons.png") 0px -30px no-repeat;width:343px;height:233px;left: 395px;top: 56px;z-index: 5;}
-
-#navigation_view2.help_blur{ background:url(../images/nav/help/map_view2_blur.png) no-repeat !important; height:434px !important; }
-
-#navigation_view2.help_blur .nav2_ctrls2,
-#navigation_view2.help_blur .nav2_ctrls,
-#navigation_view2.help_blur .turn-list {
- border: none !important;
- background: none !important;
- color: transparent !important;
- text-shadow: 0 0 3px rgba(256, 256, 256, 0.7);
-}
-
-
-#navigation_view2.typeview2{display:block; background-position:0 -30px !important;}
-
-
-#navigation_view3 {display: none;background: url("../images/nav/map_view3.png") 0px -70px no-repeat;width: 343px;height: 335px;left: 395px;top: 70px;z-index: 5;}
-
-#navigation_view3.help_blur{ background:url(../images/nav/help/type_3_content_blur.png) no-repeat !important; width:415px !important; height:443px !important; top:65px !important; left:390px !important; }
-
-
-
-#navigation_view3.typeview3{display:block; background-position:0 -70px !important;}
-
-#navigation_view3.forhelp {z-index: 200; background: none !important;}
-
-#street {line-height: 56px;text-align:center;font-size:20px;text-shadow:1px 1px 1px #000;z-index: 5;top: 369px;left: 164px;background:url("../images/nav/street.png") no-repeat;width:470px;height:50px;}
-
-
-#street.help_blur{ background:url(../images/nav/help/street_bar_blur.png) no-repeat !important; width:480px !important; height:60px !important; left:159px !important; top:361px !important; line-height: 63px !important;}
-
-
-.phone_help_view2 {display: block; z-index: 10 !important;/* left: -405px !important;*/}
-#help_view_2 {width: 400px; height: 480px; background: url("../images/nav/blur_nav_controls_view2.png") no-repeat; z-index: 100; left: 400px; display: none;}
-#help_view_3 {width: 400px; height: 480px; background: url("../images/nav/blur_nav_controls_view3.png") no-repeat; z-index: 100; left: 395px; display: none;}
-#blur_zoom {width: 132px; height: 227px; background: url("../images/nav/phone_blur_zoom.png") no-repeat; top: 173px;z-index: 1999;left:4px; display: none;}
-
-.blur_zoom2 {background: url("../images/nav/phone_blur_zoom2.png") no-repeat !important; top: 174px !important;}
-.blur_zoom3 {background: url("../images/nav/phone_blur_zoom3.png") no-repeat !important; top: 174px !important; left:5px !important;}
-
-#help_nav_di_blur {z-index: 100; width: 143px; height: 25px; background: url("../images/nav/di_blur.png") no-repeat; bottom: 58px;left: 6px; display: none;}
-
-#help_nav_arrow_wrap {display:none; right: 0;z-index: 1002;top: 0;width: 71px; height: 67px; background: url("../images/bg/nav_btn_bg.png") no-repeat;}
-#help_nav_arrow {top: 6px;right: 7px;cursor: pointer;background: url("../images/nav/top_menu_bg.png") repeat-x;z-index: 5;-webkit-border-top-right-radius:2px;-webkit-border-bottom-right-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;width:48px;height:48px;}
-#help_nav_arrow img {position:absolute;top:10px;left:11px;}
-
-
-#help_nav_view {background: url("../images/nav/help_nav_wrap.png") no-repeat; width: 124px; height: 67px; right: 92px; z-index: 1003; top: 0;display: none;}
-
-#dest_nav_blur{width:800px;height:480px;z-index: 100;display: none;background: url(../images/nav/destination_blur.png) no-repeat;}
-
-
-#help_nav_top_menu_view {top: 6px;z-index:5;cursor:pointer;left:63px;font-size:18px;width:48px;height:48px;text-align:center;line-height:40px;}
-#help_nav_top_menu_view .ico1{position:absolute;left:6px;top:35px;}
-#help_nav_top_menu_view .ico2{position:absolute;left:18px;top:35px;}
-#help_nav_top_menu_view .ico3{position:absolute;left:30px;top:35px;}
-
-#help_nav_top_menu_dest{cursor: pointer;z-index: 5;background: url("../images/nav/top_menu_bg.png") repeat-x;left: 13px;font-size: 18px;top: 6px;width: 48px;height: 48px;text-align: center;line-height: 48px;-webkit-border-top-left-radius: 2px;-webkit-border-bottom-left-radius: 2px;border-top-left-radius: 2px;border-bottom-left-radius: 2px;}
-
-#help_nav_top_menu_view .active{left:-1px;top:28px;}
-#help_nav_top_menu_view .ico2.active{left: 11px;}
-#help_nav_top_menu_view .ico3.active{left: 23px;}
-
-.nav2_ctrls {font-size: 20px; font-weight: bold; left: 131px;}
-.nav2_ctrls2 {font-size: 20px; font-weight: normal; left: 60px;}
-
-#nav_mich_mi {top: 40px;}
-#nav_outer_mi {top: 90px;}
-#nav_main_street_mi {top: 140px;}
-#nav_wyoming_street_mi {top: 190px;}
-
-#nav_wyoming_street {top: 190px;}
-#nav_main_street {top: 141px;}
-#nav_outer {top: 93px;}
-#nav_mich {top: 40px;}
-
-
-#navigation_view2 .turn-list { top:306px; left:9px; width:325px; height:50px; font-size: 20px; line-height: 50px; border: 1px solid #393939; }
-#navigation_view2 .turn-list span{ margin-left: 13px; }
-
-#navigation_view2.help_blur .turn-list { top:307px; left:10px; width:325px; height:50px; font-size: 20px; line-height: 50px; border: none; }
-#navigation_view2.help_blur .turn-list .arrow-ico { opacity: 0 !important; }
-
-#nav_red_arrow {width: 38px; height: 36px; background: url(../images/nav/red_arrow.png) no-repeat; left: 16px; top: 35px;}
-#nav_left_arrow {width: 38px; height: 36px; background: url(../images/nav/left_arrow.png) no-repeat; left: 16px; top: 85px;}
-#nav_right_arrow {width: 38px; height: 36px; background: url(../images/nav/right_arrow.png) no-repeat; left: 16px; top: 135px;}
-#nav_flag_arrow {width: 38px; height: 36px; background: url(../images/nav/flag.png) no-repeat; left: 16px; top: 185px;}
-#nav_red_arrow.blur{background: url(../images/nav/red_arrow_blur.png) no-repeat;}
-#nav_left_arrow.blur{background: url(../images/nav/left_arrow_blur.png) no-repeat;}
-#nav_right_arrow.blur{background: url(../images/nav/right_arrow_blur.png) no-repeat;}
-#nav_flag_arrow.blur{background: url(../images/nav/flag_blur.png) no-repeat;}
-
-
-#view-blur{background:url(../images/nav/view2-1-blur.png) no-repeat; width:800px; height:480px; z-index:1001; display:none;}
-#view-blur-2{background:url(../images/nav/view2-2-blur.png) no-repeat; width:800px; height:480px; z-index:1001; display:none;}
-#view-blur-3{background:url(../images/nav/view2-3-blur.png) no-repeat; width:800px; height:480px; z-index:1001; display:none;}
-
-.dest-logo{font-size: 30px; top: -30px; left: 5px;}
-.speak-ico{background:url(../images/nav/dest-speak-ico.png) no-repeat; width:50px; height:50px; left:679px; top:-40px;}
-
-#navigation_destination{width:800px; height:480px; background:url(../images/nav/bg.png) no-repeat; z-index:1001;}
-#widget_navigation{position:absolute;width: 400px;height: 183px; left:400px;}
-#home_main_mi {font-size: 21px; left: 159px; top: 102px;}
-#home_main_st {font-size: 27px; left: 140px; top: 126px;}
-#home_screen_arrow {background: url(../images/nav/arrow_home.png) no-repeat; width: 91px; height: 74px; right: 153px; top: 18px;}
-#home_screen_arrow.help {background: url(../images/nav/arrow_home_blur.png) no-repeat !important;}
-
-#home_non_nav {
- background: url(../images/home/home_nav_off.jpg) no-repeat;
- width: 140px;
- height: 140px;
- left: 125px;
- top: 20px;
-}
-
-#home_non_nav.help {
- background: url(../images/home/home_nav_off_blur.jpg) no-repeat;
-}
-
-#status_nav{top:0px;right:0px;text-align:right;font-size:21px; width:324px; height:48px; cursor:pointer; background:url(../images/common/nav-status-bg.png) no-repeat; z-index:1;}
-
-#navigation_status_label {
- width: 100%;
- display: block;
- visibility: hidden;
-}
-
-#navigation_status_label span {
- padding-right: 11px;
-}
-#navigation_status_on{height:48px; width:310px; position:relative; float:right;}
-#navigation_status_on .nav_distance{position: relative; right: 11px;}
-#navigation_status_on .ico{width: 26px;left: 60px;top: 10px; position:absolute;}
-
-#help_navigation_zoom_button{width: 62px; height:110px; top:240px; z-index:1001;}
-#help_navigation_zoom_button.button_type1{ background:url(../images/nav/help/zoom_buttons_plus_disabled.png) no-repeat;}
-#help_navigation_zoom_button.button_type2{ background:url(../images/nav/help/zoom_buttons_minus_disabled.png) no-repeat;}
-#help_navigation_zoom_button.button_type3{ background:url(../images/nav/help/zoom_buttons_all_active.png) no-repeat;}
-
-.dark_map{opacity:0.5 !important;}
-
-#help_yellow_border{ background:url(../images/nav/help/top_menu_yellow_border.png) no-repeat; width:124px; height:67px; top: -6px;
-left: -13px; z-index:5;}
-
-#help_yellow_border_repeat_button{ background:url(../images/nav/help/repeate_btn_yellow_border.png) no-repeat; width:71px; height:67px; z-index:5;left: 133px;
-top: -5px;}
-
-#navigation_topmenu_help_mute_button{
- background:url(../images/nav/help/mute_button_blur.png) no-repeat;
- width:64px;
- height:58px;
- left: 91px;
- z-index: 5;
- top: -5px;
-}
-
-#navigation_topmenu_help_mute_button.active_led{ background:url(../images/nav/help/mute_button_active_blur.png) no-repeat !important;}
-
-#view2_list_container{width: 343px;}
-
-#destination_view_blur{ background:url(../images/nav/help/destination_view_blur.png) no-repeat; width:800px; height:480px;}
-
-
-/******************* For Navigation.Destination menu*******************/
-#navigation_destination {
- width: 800px;
- height: 480px;
-}
-
-#navigation_destination .backButton{
- top: 59px;
-}
-
-#navigation_destination .block-header-title{
- top: 67px;
- left: 73px;
-}
-
-#navigation_destination_pushToTalk_buttton{
- top: 80px;
- right: 5px;
- height: 48px;
- width: 48px;
- border: 1px solid #4bffff;
- border-radius: 2px;
-}
-
-#navigation_destination_list {
- top: 139px;
- left: 64px;
- width: 734px;
- height: 250px;
-}
-
-#navigation_destination_list .list-content {
- border: none !important;
-}
-#navigation_destination_list .scrollbar {
- height: 248px !important;
-}
-
-#navigation_destination_list .sb-bottom {
- height: 47px;
-}
-
-#navigation_destinationt {
- height: 250px;
- position: relative;
- float: left;
- margin-top: 5px;
- width: 554px;
-}
-
-#navigation_destination_list .list-item .ico{
- width: 50px;
- height: 50px;
-}
-
-#navigation_destination_list .list-content {
- width: 684px;
-}
-
-#navigation_destination .list-item {
- position: relative;
- width: 330px;
- float: left;
- margin-right: 10px;
- height: 49px;
- font-size: 20px;
- line-height: 50px;
- border: 1px solid #393939;
- border-bottom: none;
- cursor: pointer;
-}
-
-#navigation_destination .list-item .ico {
- float: left;
-}
-
-#navigation_destination .list-item span {
- height: 23px;
-}
-
-#navigation_destination .inner-wrapper {
- left: 100px;
- top: 71px;
-}
-
-#navigation_destination .group_button_wraper{
- width: 330px;
- position: absolute;
- height: 49px;
- top: 339px;
- left: 406px;
- border: 1px solid #333;
- text-align: center;
-}
-
-.helpmode #navigation_destination .group_button_wraper span{
- text-shadow: 0 0 3px #999;
-}
-
-.helpmode #navigation_destination .group_button_wraper {
- margin: 1px 1px;
-}
-
-#navigation_destination .delim {
- left:161px;
- width: 4px;
- height: 48px;
- background: url(../images/common/delim.png) no-repeat;
- z-index: 100;
-}
-
-#navigation_destination .group_button_wraper .button{
- position: relative;
- float: left;
- width: 165px;
- height: 48px;
- cursor: pointer;
- line-height: 50px;
-}
-
-#navigation_destination .group_button_wraper span{
- font-size: 20px;
- line-height: 25px;
- text-align: center;
-}
-
-#navigation_destination.fr #navigation_destination_editRoute_Button span {
- position: absolute;
- width: 79px;
- left: 41px;
- top: 5px;
- line-height: 19px;
-}
-
-#navigation_destination.fr #navigation_destination_cancelRoute_Button span {
- position: absolute;
- width: 98px;
- left: 33px;
- top: 5px;
- line-height: 19px;
-}
-
-#navigation_destination.help-mode {
- background-image: url(../images/settings/navigation_destination_help.png);
- background-repeat: no-repeat;
-}
-
-#navigation_destination.help-mode .group_button_wraper .button, #navigation_destination.help-mode .group_button_wraper{
- border: none !important;
- background: none !important;
-}
-
-#navigation_destination.help-mode .delim{
- opacity: 0;
-}
-
-/*#navigation_destination_list .list-item.voice-over{
- border: 1px solid #4BFFFF;
- border-bottom: none;
-}*/
-
-#navigation_destination_list_item0, #navigation_destination_list_item1{
- border-top-left-radius: 2px;
- border-top-right-radius: 2px;
-}
-
-#navigation_destination_list_item8,
-#navigation_destination_list_item3{
- height: 48px !important;
- border-bottom: 1px solid #393939 !important;
- border-bottom-left-radius: 2px;
- border-bottom-right-radius: 2px;
-}
-
-#navigation_destination_list_item12,
-#navigation_destination_list_item11{
- height: 48px !important;
- border-bottom: 1px solid #393939 !important;
-}
-
-#navigation_destination.help-mode{
- background-image: url(../images/nav/help/navigation_destnation_bg_help.png) !important;
- background-repeat: no-repeat;
-}
-
-.helpmode #navigation_destination_list_item8,
-.helpmode #navigation_destination_list_item3
-{
- height: 50px !important;
- border-bottom: none !important;
-}
-
-.helpmode #navigation_destination_list span{
- margin-top: 1px;
- line-height: 51px;
-}
-
-.helpmode #navigation_destination .list-item{
- margin-right: 11px;
- margin-left: -1px;
- width: 332px;
-}
-
+/*NAVIGATION CSS*/
+#baseNavigation{
+ z-index: 2;
+ position: absolute;
+ top: 48px;
+ width: 800px;
+ height: 384px;
+}
+#baseNavigation .mainField{
+ position: absolute;
+ background: rgba(124, 124, 124, 0.3);
+ border: 1px solid;
+ border-color: rgba(90, 90, 90, 0.31);
+ border-radius: 3px;
+ box-shadow: inset 2px 2px 10px 0px rgba(112, 112, 112, 0.3), inset -2px -2px 10px 0px rgba(112, 112, 112, 0.3);
+ padding-top: 10px;
+ padding-left: 10px;
+ font-size: 18px;
+}
+#baseNavigation .softButton{
+ position: absolute;
+ border-radius: 3px;
+ border: 1px solid #393939;
+}
+#baseNavigation .mainField1{
+ top: 0;
+ height: 30px;
+ width: 190px;
+ left: 0;
+}
+#baseNavigation .mainField2{
+ top: 0;
+ height: 40px;
+ width: 380px;
+ left: 204px;
+}
+#baseNavigation .mainField3{
+ top: 0;
+ height: 30px;
+ width: 190px;
+ right: 0;
+}
+#baseNavigation .mainField4{
+ top: 50px;
+ height: 30px;
+ width: 90px;
+ right: 0;
+ overflow: hidden;
+ white-space: nowrap;
+}
+#baseNavigation .mainField5{
+ top: 100px;
+ height: 30px;
+ width: 90px;
+ right: 0;
+}
+#baseNavigation .mainField6{
+ bottom: 0;
+ height: 40px;
+ width: 280px;
+ left: 254px;
+}
+#baseNavigation .softButton1{
+ width: 250px;
+ bottom: 0;
+ left: 0;
+ position: absolute!important;
+ margin: 0px!important;
+ height: 49px!important;
+ font-size: 32px;
+ line-height: 50px!important;
+}
+#baseNavigation .softButton2{
+ width: 250px;
+ bottom: 0px;
+ right: 0px;
+ position: absolute!important;
+ margin: 0px!important;
+ height: 49px!important;
+ font-size: 32px;
+ line-height: 50px!important;
+}
+#baseNavigation .softButton3{
+ width: 100px;
+ top: 100px;
+ left: 0;
+ position: absolute!important;
+ margin: 0px!important;
+ height: 49px!important;
+ font-size: 32px;
+ line-height: 50px!important;
+}
+#baseNavigation .softButton4{
+ width: 100px;
+ top: 150px;
+ left: 0;
+ position: absolute!important;
+ margin: 0px!important;
+ height: 49px!important;
+ font-size: 32px;
+ line-height: 50px!important;
+} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/css/phone.css b/SDL_Core/src/components/HMI/css/phone.css
index 2aac454dc..fbd538b06 100755..100644
--- a/SDL_Core/src/components/HMI/css/phone.css
+++ b/SDL_Core/src/components/HMI/css/phone.css
@@ -1,1499 +1,1549 @@
-/**
- * Phone module CSS
- *
- * @category Style Sheets
- * @filesource css/phone.css
- * @version 2.0
- */
-
-#phone {
- width: 800px;
- height: 480px;
- background: url(../images/phone/bg.png) no-repeat;
- background-position: top;
-}
-
-.helpmode #phone {
- background-position: bottom;
-}
-
-/* Backgrpund for active toogleButton*/
-#phone .toogleButtonContainer .active {
- background: url(../images/phone/bcs-item_bg_act.png);
-}
-
-#phone .delim {
- position: relative;
- float: left;
- border: #393939 1px solid;
- height: 26px;
- width: 0px;
-}
-
-/* LEFT MENU */
-#phone_menu{position:absolute;top:90px;left:0px;width:150px;height:300px;}
- .ls_border {z-index:201;position:absolute;top:-3px;left:0px;width:153px;height:306px;}
- .ls-items{position:relative;width:150px;height:300px;}
- .ls-item{
- z-index:201;
- position:relative;
- width:150px;
- }
- .ls-item > .bg{z-index:201;position:absolute;top:0px;left:0px;width:150px;height:50px;}
- .ls-item > .ico{z-index:299;position:absolute;left:10px;width:30px;height:30px;top:10px;}
- .ls-item > .ico.more {left:50px;}
- .ls-item span {z-index:298;position:absolute;left:50px;width:100px;height:50px;font-size:18px;line-height:50px;white-space:nowrap;overflow:hidden;}
- .ls-item > .led{z-index:299;position:absolute;top:0px;right:8px;width:24px;height:50px;}
- .ls-item.empty{background:#333333;}
- .firts_item{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;}
- .last_item{-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;}
- .lsp1_p{background:url("../images/phone/menu_bg.png") repeat-x bottom;}
- .phone_active {
- background:url("../images/phone/menu_active.png") repeat-x bottom !important;
- border-top: 1px solid #3e3115;
- border-bottom: 1px solid #4a3a17
- }
-#phone_menu .ls-item {
- height:48px;
- border-bottom: 1px solid #656565;
- border-top: 1px solid #393939;
-}
- .navigation {width:26px;height:25px;background:url("../images/phone/ico_navigation.png") no-repeat;left:60px;top:10px;}
-
-#phone_menu.hide {
- left: -170px;
-}
-
-#phone_menu_quickdialButton,
-#phone_menu_messagingButton,
-#phone_menu_settingsButton {
- z-index: 203;
-}
-
-#phone .list-item.active {
- background: url(../images/phone/phone_button_bg_active.png) repeat-x;
-}
-/* PHONE STATUS BAR */
-#status_phone {
- top: 0px;
- left: 0px;
- font-size: 21px;
- cursor: pointer;
- width: 324px;
- height: 48px;
- background: url(../images/common/phone-statusbar-bg.png) no-repeat;
- z-index: 1;
-}
-
-#status_phone_label {
- width: 100%;
- display: block;
- visibility: hidden;
-}
-
-#status_phone_label span {
- padding-left: 11px;
-}
-
-#status_phone_call {
- position: absolute;
- top: 0px;
- left: 11px;
-}
-
-#status_phone_antena {
- background: url(../images/phone/phone_antena.png) no-repeat;
- width: 28px;
- height: 18px;
- top: 15px;
- left: 236px;
-}
-
-
-/* PHONE HOME WIDGET */
-
-#home_widgetPhone_dndButton {
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
- border: 1px solid #393939;
- padding: 12px 53px 11px 14px;
- font-size: 21px;
- top: 104px;
- left: 96px;
-}
-
-#home_widgetPhone_onCall {
- width: 100%;
-}
-
-#home_widgetPhone_dndButton .ind_inact {
- position: absolute;
- right: 17px;
- top: 13px;
- width:6px;
- height:21px;
- background:url(../images/common/ind_vert_def.png) no-repeat;
-}
-
-#home_widgetPhone_dndButton .ind_act {
- position: absolute;
- right: 11px;
- top: 8px;
- background:url(../images/common/ind_vert_active.png) no-repeat;
- width:19px;
- height:32px;
-}
-
-#home_widgetPhone_endCallButton {
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
- border: 1px solid #393939;
- padding: 12px 77px 11px 14px;
- font-size: 21px;
- top: 104px;
- left: 96px;
- z-index: 0;
-}
-
-#home_widgetPhone_endCallButton .ico {
- left: 60px;
- position: relative;
- top: 2px;
- float: right;
-}
-
-#home_widgetPhone_icons {
- background: url(../images/home/home_phone.png) no-repeat;
- width: 137px;
- height: 35px;
- left: 132px;
- top: 18px;
-}
-
-#home_widgetPhone_icons.help {
- background: url(../images/home/home_phone_blur.png) no-repeat !important;
-}
-
-#home_widgetPhone_label {
- font-size: 27px;
- top: 60px;
- left: 52px;
- width: 300px;
- text-align: center;
-}
-
-#home_widgetPhone_nameInfo {
- position: relative;
- left: 100px;
- top: 25px;
-}
-
-#home_widgetPhone_nameInfo span {
- font-size: 24px;
- margin-left: 43px;
-}
-
-#home_widgetPhone_callInfo {
- position: relative;
- left: 100px;
- top: 38px;
-}
-
-#home_widgetPhone_callInfo span {
- font-size: 24px;
- margin-left: 20px;
-}
-
-#home_widgetPhone_help {
- width: 194px;
- height: 155px;
- background: url(../images/home/home_phone_end_blur.png) no-repeat;
- position: absolute;
- top: 15px;
- left: 82px;
- z-index: 1;
- visibility: hidden;
-}
-
-/* PHONE MODULE */
-
-/* DIALPAD */
-
-
-#phone_endCallMessage {
- background: black;
- border: 1px solid #A28542;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- font-size: 23px;
- font-weight: bold;
- height: 75px;
- left: 271px;
- line-height: 68px;
- text-align: center;
- top: 170px;
- width: 250px;
- z-index: 1000;
- display: none;
-}
-
-#phone_info {
- width: 248px;
- height: 27px;
- top: 15px;
- left: 15px;
- z-index: 10010;
-}
-
-#phone_info_number {
- font-size: 15px;
-}
-
-#phone_info_name {
- font-size: 20px;
- width: 132px;
-}
-
-#phone_info_name p {
- margin-top: -3px;
-}
-
-#phone_dialpad_number {
- width: 283px;
- height: 30px;
- position: absolute;
- left: 258px;
- top: 87px;
- text-align: center;
- font-size: 22px;
- padding: 10px 0 0 0;
- background: black;
- border: 1px solid #393939;
- border-radius: 3px;
-}
-
-#phone_dialpad_keypad {
- width: 282px;
- height: 200px;
- position: absolute;
- left: 259px;
- top: 141px;
-}
-
-#phone_dialpad_keypad div {
- font-size: 26px;
- text-align: center;
- line-height: 32px;
-}
-
-
-#phone_dialpad_keypad .words {
- font-size: 17px;
- margin: -11px 0 0 0;
- display: block;
- color: #999;
-}
-
-#phone_dialpad_keypad .left {
- left: 0px;
- width: 93px;
- height: 49px;
- border-left: 1px solid #393939;
- border-right: 1px solid #000;
- border-top: 1px solid #393939;
-}
-
-#phone_dialpad_keypad .center {
- left: 95px;
- width: 93px;
- height: 49px;
- border-top: 1px solid #393939;
- border-left: 1px solid #393939;
- border-right: 1px solid #000;
-}
-
-#phone_dialpad_keypad .right {
- left: 190px;
- width: 93px;
- height: 49px;
- border-left: 1px solid #393939;
- border-right: 1px solid #393939;
- border-top: 1px solid #393939;
-}
-
-#phone_dialpad_keypad_key4, #phone_dialpad_keypad_key5, #phone_dialpad_keypad_key6 {
- top:50px;
-}
-
-#phone_dialpad_keypad_key7, #phone_dialpad_keypad_key8, #phone_dialpad_keypad_key9 {
- top:100px;
-}
-
-
-#phone_dialpad_keypad_key0, #phone_dialpad_keypad_keyDiez, #phone_dialpad_keypad_keyStar {
- top:150px;
- border-bottom: 1px solid #393939;
-}
-
-#phone_dialpad_keypad_key1 {
- -webkit-border-top-left-radius: 3px;
- border-top-left-radius: 3px;
-}
-
-#phone_dialpad_keypad_key3 {
- -webkit-border-top-right-radius: 3px;
- border-top-right-radius: 3px;
-}
-
-#phone_dialpad_keypad_keyStar {
- -webkit-border-bottom-left-radius:3px;
- border-bottom-left-radius:3px;
-}
-#phone_dialpad_keypad_keyDiez {
- -webkit-border-bottom-right-radius:3px;
- border-bottom-right-radius:3px;
-}
-
-
-/* Dialpad controls */
-
-#phone_dialpad_controls {
- width: 526px;
- height: 38px;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- top: 355px;
- left: 259px;
-}
-
-#phone_dialpad_controls div {
- position: absolute;
- background-repeat: repeat-x;
- height: 38px;
- width: 130px;
- text-align: center;
- line-height: 38px;
- font-size: 20px;
-}
-
-#phone_dialpad_controls_privacyButton {
- border-right: 1px solid #000;
- z-index: 2001;
- cursor: pointer;
-}
-
-#phone_dialpad_controls .ind_inact {
- position: absolute;
- right: 8px;
- top: 8px;
- width:6px;
- height:21px;
- background:url(../images/common/ind_vert_def.png) no-repeat;
-}
-
-#phone_dialpad_controls .ind_act {
- position: absolute;
- right: 2px;
- top: 3px;
- background:url(../images/common/ind_vert_active.png) no-repeat;
- width:19px;
- height:32px;
-}
-
-
-#phone_dialpad_controls_holdButton {
- left: 131px;
- border-left: 1px solid #393939;
- border-right: 1px solid #000;
- cursor: pointer;
-}
-
-#phone_dialpad_controls_muteButton {
- left: 263px;
- border-left: 1px solid #393939;
- border-right: 1px solid #000;
- cursor: pointer;
-}
-
-#phone_dialpad_controls_joinButton {
- border-left: 1px solid #393939;
- left: 395px;
- z-index: 2001;
- cursor: pointer;
-}
-
-#phone_dialpad_deleteButton {
- opacity:0;
- cursor: pointer;
- width: 93px;
- height: 49px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- left: 554px;
- top: 291px;
- border: 1px solid #393939;
-}
-
-#phone_dialpad_deleteButton .ico {
- position: absolute;
- left: 34px;
- top: 15px;
-}
-
-
-#phone_dialpad_dialButton {
- cursor: pointer;
- border: 1px solid #393939;
- left: 661px;
- top: 241px;
- width: 128px;
- height: 49px;
- -webkit-border-top-left-radius: 3px;
- border-top-left-radius: 3px;
- -webkit-border-top-right-radius: 3px;
- border-top-right-radius: 3px;
-}
-
-#phone_dialpad_dialButton span {
- font-size: 18px;
- position: absolute;
- left: 14px;
- top: 14px;
-}
-
-#phone_dialpad_dialButton .ico {
- position: absolute;
- right: 14px;
- top: 11px;
-}
-
-
-#phone_dialpad_endButton {
- cursor: pointer;
- border: 1px solid #393939;
- left: 661px;
- top: 291px;
- width: 128px;
- height: 49px;
- -webkit-border-bottom-left-radius: 3px;
- border-bottom-left-radius: 3px;
- -webkit-border-bottom-right-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-
-#phone_dialpad_endButton span {
- font-size: 18px;
- position: absolute;
- left: 14px;
- top: 14px;
-}
-
-#phone_dialpad_endButton .ico {
- position: absolute;
- right: 9px;
- top: 16px;
-}
-
-#phone_dialpad_contactImage {
- opacity: 0;
- width: 130px;
- height: 135px;
- background: url("../images/phone/dial_photo.png") repeat-x;
- left: 658px;
- top: 86px;
-}
-
-/* QUICK DIAL */
-
-#phone_quickdial_content {
- width: 630px;
- height: 250px;
- left: 166px;
- top: 98px;
- background: url(../images/phone/quick_dial_inact_bg.png) no-repeat;
-}
-
-#phone_quickdial ul.l-block {
- list-style: none;
- position: relative;
- float: left;
- width: 320px;
- height: 250px;
-}
-
-#phone_quickdial ul.r-block {
- list-style: none;
- position: relative;
- float: left;
- width: 310px;
- height: 250px;
-}
-
-#phone_quickdial ul li {
- line-height: 50px;
- font-size: 20px;
-}
-
-#phone_quickdial ul li span.number {
- position: relative;
- float: left;
- padding-left: 5px;
- padding-right: 15px;
- font-size: 29px;
- width: 22px;
-}
-
-/* PHONEBOOK */
-#phone_phonebook_content {
- left: 166px;
- top: 98px;
- width: 633px;
- height: 295px;
-}
-
-#phone_phonebook_filters {
- width: 470px;
- height: 40px;
- position: relative;
- margin-left: 100px;
- background: url(../images/phone/book-filter-bg.png) no-repeat;
-}
-
-#phone_phonebook_filters ul {
- list-style: none;
-}
-
-#phone_phonebook_filters li {
- float: left;
- width: 94px;
- text-align: center;
- line-height: 40px;
- font-size: 20px;
-}
-
-#phone_phonebook_list {
- height: 251px;
- position: relative;
- float: left;
- margin-top: 5px;
- width: 630px;
-}
-
-#phone_phonebook_list .list-content {
- width: 568px;
-}
-
-#phone_phonebook .list-item span {
- padding-left: 10px;
-}
-
-/* HISTORY */
-
-#phone_history_content {
- left: 166px;
- top: 98px;
- width: 625px;
- height: 295px;
-}
-
-#phone_history_filters {
- background: url(../images/phone/history-filter-bg.png) no-repeat;
- width: 470px;
- height: 40px;
- position: relative;
-}
-
-#phone_history_filters ul {
- list-style: none;
-}
-
-#phone_history_filters li {
- float: left;
- width: 117px;
- text-align: center;
- line-height: 40px;
- font-size: 20px;
-}
-
-#phone_history_list {
- width: 470px;
- height: 251px;
- position: relative;
- top: 5px;
- float: left;
-}
-
-#phone_history_list .list-content {
- width: 413px;
-}
-
-#phone_history_list .list-item .ico {
- margin-top: 7px;
- margin-right: 5px;
- margin-left: 5px;
- float: left;
-}
-
-#phone_history_list .list-item .right_text {
- margin-right: 6px;
-}
-
-#phone_history_controls {
- width: 150px;
- height: 149px;
- left: 5px;
- top: 5px;
- position: relative;
- float: left;
- border: 1px solid #393939;
- border-radius:3px;
- -webkit-border-radius:3px;
- -moz-border-radius:3px;
-}
-
-#phone_history_dial {
- position: relative;
- height: 50px;
- width: 150px;
- font-size: 20px;
- line-height: 43px;
-}
-
-#phone_history_dial span {
- padding-left: 10px;
-}
-
-#phone_history_dial .ico {
- float: right;
- margin: 10px;
-}
-
-#phone_history_savedial {
- position: relative;
- height: 99px;
- width: 150px;
- font-size: 20px;
- line-height: 43px;
-}
-
-#phone_history_savedial span {
- padding-left: 10px;
-}
-
-/* MESSAGING */
-
-#phone_messaging_content {
- left: 166px;
- top: 98px;
- width: 570px;
- height: 295px;
-}
-
-#phone_messaging_send {
- background: url(../images/phone/btn_bg.png) repeat-x;
- width: 150px;
- height: 38px;
- position: relative;
- float: left;
- font-size: 20px;
- line-height: 40px;
- border: 1px solid #393939;
- border-radius:3px;
-}
-
-#phone_messaging_send span {
- padding-left: 10px;
-}
-
-#phone_messaging_send .arrow-ico {
- top: -5px;
-}
-
-#phone_messaging_controls {
- background: url(../images/phone/msg-r-group-bg.png) no-repeat;
- width: 300px;
- height: 40px;
- position: relative;
- float: right;
-}
-
-#phone_messaging_controls ul {
- list-style: none;
-}
-
-#phone_messaging_controls ul li {
- float: left;
- width: 150px;
- text-align: center;
- line-height: 40px;
- font-size: 20px;
-}
-
-#phone_messaging_list {
- width: 570px;
- height: 250px;
- position: relative;
- margin-top: 45px;
- background: url(../images/phone/msg-list-bg.png) no-repeat;
-}
-
-#phone_messaging_list ul.list {
- float: left;
- list-style: none;
-}
-
-#phone_messaging_list ul.del {
- float: right;
- list-style: none;
-}
-
-#phone_messaging_list ul.list li {
- width: 320px;
- height: 50px;
- font-size: 20px;
- line-height: 50px;
- padding-left: 50px;
-}
-
-#phone_messaging_list ul.del li {
- width: 100px;
- height: 50px;
- font-size: 20px;
- line-height: 50px;
- text-align: center;
-}
-
-/* SETTINGS */
-#phone_settings {
- z-index: 10001;
-}
-
-#phone_settings_content {
- width: 627px;
- height: 300px;
- left: 166px;
- top: 87px;
-}
-
-#phone_settings_list {
- width: 630px;
- height: 301px;
- position: relative;
- top: 5px;
- float: left;
-}
-
-#phone_settings_list .list-content {
- width: 570px;
-}
-
-#phone_settings_list .list-item > span,
-#phone_settings_list .lableToggle span{
- padding-left: 7px;
-}
-
-#phone_settings_list .list-item .ico {
- position: absolute;
- right: 10px;
- top: 8px;
- opacity: 1;
-}
-
-#phone_settings_list .lableToggleButton{
- background-image: url(../images/list/list_item_bg.png);
-}
-
-#phone_settings .toogleButtonContainer {
- position: relative;
- width: 198px;
- height: 28px;
- border: 1px solid #393939;
- border-radius: 2px;
- float: right;
- margin-top: 10px;
- margin-right: 10px;
-}
-
-/* HELP MODE */
-
-#phone .shifted {
- width: 650px;
- left: 150px;
-}
-
-#phone .blured_background {
- visibility: hidden;
- width: 800px;
- height: 480px;
- z-index: 1001;
- position: absolute;
-}
-
-#phone_dialpad_help {
- background: url(../images/phone/phone_help_dialpad.png) no-repeat;
-}
-
-#phone_quickdial_help {
- background: url(../images/phone/phone_help_quickdial.png) no-repeat;
-}
-
-#phone_phonebook_help {
- background: url(../images/phone/phone_help_phonebook.png) no-repeat;
-}
-
-#phone_history_help {
- background: url(../images/phone/phone_help_history.png) no-repeat;
-}
-
-#phone_messaging_help {
- background: url(../images/phone/phone_help_messaging.png) no-repeat;
-}
-
-#phone_settings_help {
- background: url(../images/phone/phone_help_settings.png) no-repeat;
-}
-
-#phone_menu_help {
- background: url("../images/phone/phone_help_menu.png") no-repeat;
- width: 165px;
- height: 315px;
- z-index: 202;
- pointer-events: none;
-}
-
-#phone_help_divider {
- height: 3px;
- width: 150px;
- top: 249px;
- left: 0;
-}
-
-#phone_settings_help_dndButton {
- font-size: 20px;
- line-height: 55px;
- height: 50px;
- width: 570px;
- top: 190px;
- left: 16px;
- z-index: 2001;
- cursor: pointer;
-}
-
-#phone_settings_help_dndButton span {
- padding-left: 8px;
-}
-
-#phone_settings_help_dndButton .ico {
- position: absolute;
- right: 9px;
- top: 13px;
- opacity: 1;
-}
-
-/* Phone settings Bluetooth Devices */
-#phone_settings_BluetoothDevices_view {
- width: 800px;
- height: 480px;
- background-image: url(../images/phone/bg.png);
- font-size: 20px;
- z-index: 10001;
-}
-
-#phone_settings_BluetoothDevices_view .backButton {
- margin-top: 59px;
-}
-
-#phone_settings_BluetoothDevices_view .block-header-title {
- top: 69px;
-}
-
-#phone_settings_BluetoothDevices_view .bluetoothLogo{
- background: url(../images/phone/ico_bluetoothConnect.png) no-repeat;
- top: 109px;
- left: 5px;
- height: 50px;
- width: 50px;
-}
-
-#phone_settings_BluetoothDevices_list {
- margin-top: 109px;
- margin-left: 65px;
- width: 570px;
- height: 301px;;
-}
-
-
-#phone_settings_BluetoothDevices_list .list-content {
- border-right: none;
- border-top: none;
-}
-
-#phone_settings_BluetoothDevices_list .list-item:first-child {
- border-top: 1px solid #393939;
- height: 48px;
-}
-
-#phone_settings_BluetoothDevices_list .list-item {
- position: relative;
- width: 503px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- border-right: 1px solid #393939;
- line-height: 50px;
-}
-
-#phone_settings_BluetoothDevices_list .list-item.pressed {
- background: url(../images/phone/phone_button_bg_active.png) repeat-x !important;
-}
-
-#phone_settings_BluetoothDevices_list .list-item > span {
- position: absolute;
- left: 63px;
-}
-
-#phone_settings_BluetoothDevices_list .list-item .ico {
- position: absolute;
- float: left;
- left: 9px;
-}
-
-#phone_settings_BluetoothDevices_list .list-item .right_ico {
- float: right;
-}
-
-#phone_settings_BluetoothDevices_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-
-#phone_settings_BluetoothDevices_view .right-menu{
- top: 109px;
- right: 3px;
- float: right;
- width: 150px;
- border: 1px solid #393939;
- border-bottom: none;
- -webkit-border-radius: 3px;
-}
-
-#view_phone_phoneSettings_bluetoothDevices_rightmenu .menu-item{
- position: relative;
- width: 135px;
- height: 49px;
- cursor: pointer;
- border-bottom: 1px solid #333;
- font-size: 18px;
- line-height: 46px;
- padding-left: 15px;
-}
-
-#phone_settings_BluetoothDevices_view.help-mode {
- background-image: url(../images/phone/phone_settings_bluetoothDevices_bg_help.png);
- background-repeat: no-repeat;
-}
-
-#phone_settings_BluetoothDevices_view.help-mode .menu-item,
-#phone_settings_BluetoothDevices_view.help-mode .right-menu {
- border: none;
- background: none;
-}
-
-#phone_settings_BluetoothDevices_view.help-mode .menu-item{
- margin-top: 1px;
- right: 1px;
-}
-
-#phone_settings_BluetoothDevices_view.help-mode .menu-item .arrow-ico,
-#phone_settings_BluetoothDevices_view.help-mode .bluetoothLogo{
- opacity: 0;
-}
-
-.help-mode #phone_settings_BluetoothDevices_view .list-item span {
- text-shadow: 0 0 3px #999;
-}
-
-.help-mode #phone_settings_BluetoothDevices_list .list-item span {
- text-shadow: 0 0 3px #999;
-}
-
-/* Phone settings Phone Ringer */
-#phone_settings_phoneRinger_view {
- width: 800px;
- height: 480px;
- background-image: url(../images/phone/bg.png);
- font-size: 20px;
- z-index: 10001;
-}
-
-
-#phone_settings_phoneRinger_view .backButton {
- margin-top: 59px;
-}
-
-#phone_settings_phoneRinger_view .block-header-title {
- top: 69px;
-}
-
-#phone_settings_phoneRinger_list {
- margin-top: 139px;
- margin-left: 65px;
- width: 734px;
- height: 251px;;
-}
-
-#phone_settings_phoneRinger_list .list-content {
- width: 674px;
- border-right: none;
- border-top: none;
-}
-
-#phone_settings_phoneRinger_list .list-item:first-child,
-#phone_settings_phoneRinger_list .soundButton:first-child{
- border-top: 1px solid #393939;
- height: 48px;
-}
-
-#phone_settings_phoneRinger_list .list-item {
- position: relative;
- width: 613px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- border-right: 1px solid #393939;
- line-height: 50px;
-}
-
-#phone_settings_phoneRinger_list .list-item.soundButton {
- width: 48px;
- border-left: 1px solid #393939;
- margin-left: 10px;
-}
-
-#phone_settings_phoneRinger_list .list-item.soundButton .ico {
- border: none;
- margin-top: 12px;
- margin-right: 11px;
-}
-
-#phone_settings_phoneRinger_list .list-item.pressed {
- background: url(../images/phone/phone_button_bg_active.png) repeat-x !important;
-}
-
-#phone_settings_phoneRinger_list .list-item > span {
- margin-left: 13px;
-}
-
-#phone_settings_phoneRinger_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
-}
-
-#phone_settings_phoneRinger_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-
-#phone_settings_phoneRinger_list .toggles, #phone_settings_phoneRinger_list .toggles span {
- width: 148px;
-}
-
-#phone_settings_phoneRinger_view.help-mode {
- background-image: url(../images/phone/phone_settings_phoneRinger_bg_help.png);
- background-repeat: no-repeat;
-}
-
-.help-mode #phone_settings_phoneRinger_view .list-item span {
- text-shadow: 0 0 3px #999;
-}
-
-.help-mode #phone_settings_phoneRinger_list .list-item span {
- text-shadow: 0 0 3px #999;
-}
-
-/* Phone settings Text Message Notification */
-#phone_settings_textMessageNotification_view {
- width: 800px;
- height: 480px;
- background-image: url(../images/phone/bg.png);
- font-size: 20px;
- z-index: 10001;
-}
-
-
-#phone_settings_textMessageNotification_view .backButton {
- margin-top: 59px;
-}
-
-#phone_settings_textMessageNotification_view .block-header-title {
- top: 69px;
-}
-
-#phone_settings_textMessageNotification_list {
- margin-top: 139px;
- margin-left: 65px;
- width: 731px;
- height: 251px;
-}
-
-#phone_settings_textMessageNotification_list .list-content {
- width: 674px;
- border-right: none;
- border-top: none;
-}
-
-#phone_settings_textMessageNotification_list .list-item:first-child,
-#phone_settings_textMessageNotification_list .soundButton:first-child{
- border-top: 1px solid #393939;
- height: 48px;
-}
-
-#phone_settings_textMessageNotification_list .list-item {
- position: relative;
- width: 613px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- border-right: 1px solid #393939;
- line-height: 50px;
-}
-
-#phone_settings_textMessageNotification_list .list-item.soundButton {
- width: 48px;
- border-left: 1px solid #393939;
- margin-left: 10px;
-}
-
-#phone_settings_textMessageNotification_list .list-item.soundButton .ico {
- border: none;
- margin-top: 12px;
- margin-right: 11px;
-}
-
-#phone_settings_textMessageNotification_list .list-item.pressed {
- background: url(../images/phone/phone_button_bg_active.png) repeat-x !important;
-}
-
-#phone_settings_textMessageNotification_list .list-item > span {
- margin-left: 13px;
-}
-
-#phone_settings_textMessageNotification_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
-}
-
-#phone_settings_textMessageNotification_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-
-#phone_settings_textMessageNotification_list .toggles, #phone_settings_textMessageNotification_list .toggles span {
- width: 148px;
-}
-
-#phone_settings_textMessageNotification_view.help-mode {
- background-image: url(../images/phone/phone_settings_textMessageNotification_bg_help.png);
- background-repeat: no-repeat;
-}
-
-.help-mode #phone_settings_textMessageNotification_view .list-item span {
- text-shadow: 0 0 3px #999;
-}
-
-.help-mode #phone_settings_textMessageNotification_list .list-item span {
- text-shadow: 0 0 3px #999;
-}
-
-/* Phone settings Internet Data Connection */
-#phone_settings_internetDataConnection_view {
- width: 800px;
- height: 480px;
- background-image: url(../images/phone/bg.png);
- font-size: 20px;
- z-index: 10001;
-}
-
-
-#phone_settings_internetDataConnection_view.help-mode .toogleButtonContainer {
- border: none !important;
-
-}
-
-#phone_settings_internetDataConnection_view .backButton {
- margin-top: 59px;
-}
-
-#phone_settings_internetDataConnection_view .block-header-title {
- top: 69px;
-}
-
-#phone_settings_internetDataConnection_view .content {
- top: 119px;
- left: 100px;
- width: 650px;
- height: 300px;
-}
-
-#phone_settings_phoneRinger_phone_label {
- position: relative;
- width: 300px;
- height: 29px;
- float: left;
- margin-left: 12px;
-}
-
-#phone_settings_phoneRinger_phone_label .ico {
- margin-top: -12px;
- margin-left: -6px;
-}
-
-#phone_settings_phoneRinger_phone_label span {
- position: absolute;
- margin-left: 13px;
- top: -3px;
-}
-
-#phone_settings_internetDataConnection_view .lableToggleButton {
- position: relative;
- margin-top: 1px;
- width: 560px;
- height: 50px;
- line-height: 50px;
- float: left;
-}
-
-#phone_settings_internetDataConnection_view .toogleButtonContainer {
- width: 298px;
- margin-left: 213px;
- margin-right: 9px;
- margin-top: 9px;
-}
-
-#phone_settings_internetDataConnection_view .lableToggleButton .lableToggle > span {
- margin-left: 12px;
-}
-
-#phone_settings_internetDataConnection_view .helpButton {
- position: relative;
- float: right;
- margin-top: 10px;
- height: 28px;
- width: 88px;
- border: 1px solid #333;
- border-radius: 2px;
-}
-
-#phone_settings_internetDataConnection_view .helpButton .ico{
- margin-top: 4px;
- margin-left: 38px;
-}
-
-#phone_settings_phoneRinger_DUNSettings_button {
- position: relative;
- float: left;
- width: 648px;
- height: 48px;
- line-height: 50px;
- border: 1px solid #333;
- border-radius: 2px;
-}
-
-#phone_settings_phoneRinger_DUNSettings_button span {
- margin-left: 12px;
-}
-
-#phone_settings_internetDataConnection_view .wraper {
- position: relative;
- float: left;
- top: -1px;
- border: 1px solid #333;
- border-radius: 2px;
- height: 109px;
- padding-left: 10px;
- padding-top: 9px;
- width: 638px;
-}
-
-#phone_settings_phoneRinger_dataUsage_label {
- width: 613px;
-}
-
-#phone_settings_phoneRinger_dataUsage_label span {
- line-height: 25px
-}
-
-#phone_settings_internetDataConnection_view.fr #phone_settings_phoneRinger_dataUsage_label {
- line-height: 21px;
-}
-
-#phone_settings_internetDataConnection_view.fr #phone_settings_phoneRinger_dataUsage_label span{
- line-height: 21px;
-}
-
-#phone_settings_internetDataConnection_view.help-mode .content .ico,
-#phone_settings_internetDataConnection_view.help-mode .arrow-ico {
- opacity: 0;
-}
-
-#phone_settings_internetDataConnection_view.help-mode .wraper {
- top: 0px;
- left: 1px;
- border: none;
-}
-
-#phone_settings_internetDataConnection_view.help-mode .content .button {
- border: none;
- background: none;
-}
-
-.help-mode #phone_settings_phoneRinger_DUNSettings_button {
- top: 1px;
-}
-
-#phone_settings_internetDataConnection_view.help-mode {
- background: url(../images/phone/phone_settings_internetDataConnection_bg_help.png) no-repeat;
-}
-
-#phone_settings_internetDataConnection_view.help-mode .lableToggleButton {
- top: -1px;
- left: -1px;
-}
-
-#phone_settings_internetDataConnection_view.help-mode .lableToggleButton .button0 span {
- margin-left: 0px !important;
-}
-
-#phone_settings_internetDataConnection_view.help-mode .lableToggleButton .button1 span {
- margin-left: 2px !important;
-}
-
-#phone_settings_internetDataConnection_view.help-mode .lableToggleButton .button2 span {
- margin-left: 3px !important;
-}
-
-.help-mode #phone_settings_phoneRinger_DUNSettings_button {
- margin-left: 1px;
-}
-
-.help-mode #phone_settings_phoneRinger_OnConnect_Lable {
- margin-top: 3px;
-}
-
-/* Phone settings phonebook */
-#phone_settings_phoneBook_view {
- width: 800px;
- height: 480px;
- background-image: url(../images/phone/bg.png);
- font-size: 20px;
- z-index: 10001;
-}
-
-#phone_settings_phoneBook_view .backButton {
- margin-top: 59px;
-}
-
-#phone_settings_phoneBook_view .block-header-title {
- top: 69px;
-}
-
-#phone_settings_phoneBook_list {
- margin-top: 139px;
- margin-left: 65px;
- width: 731px;
- height: 251px;;
-}
-
-#phone_settings_phoneBook_list .list-content {
- width: 670px;
-}
-
-#phone_settings_phoneBook_list .list-item {
- position: relative;
- width: 670px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- line-height: 50px;
-}
-
-#phone_settings_phoneBook_list .list-item > span {
- margin-left: 13px;
-}
-
-#phone_settings_phoneBook_list .list-item .lableToggle span {
- margin-left: 13px;
-}
-
-#phone_settings_phoneBook_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
-}
-
-#phone_settings_phoneBook_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-
-#phone_settings_phoneBook_list .toogleButtonContainer {
- width: 298px;
-}
-
-#phone_settings_phoneBook_view.help-mode .toogleButtonContainer {
- border: none !important;
-}
-
-#phone_settings_phoneBook_view.fr #phone_settings_phoneBook_list_item0 .lableToggle {
- line-height: 19px;
- width: 360px;
- margin: 5px 0px 0px 13px;
-}
-
-#phone_settings_phoneBook_view.fr #phone_settings_phoneBook_list_item0 .lableToggle span {
- margin-left: 0px;
-}
-
-#phone_settings_phoneBook_view.help-mode {
- background-image: url(../images/phone/phone_settings_phoneBook_bg_help.png);
- background-repeat: no-repeat;
-}
-
-phone_settings_phoneBook_view.help-mode #phone_settings_phoneBook_view .list-item span {
- text-shadow: 0 0 3px #999;
-}
-
-phone_settings_phoneBook_view.help-mode #phone_settings_phoneBook_list .list-item span {
- text-shadow: 0 0 3px #999;
-}
-
-phone_settings_phoneBook_view.help-mode #phone_settings_phoneBook_list .toogleButtonContainer {
- margin-right: 11px;
-}
-
-phone_settings_phoneBook_view.help-mode #phone_settings_phoneBook_list .lablePlusButton .button.single {
- right: 1px;
- top: 1px;
-}
-phone_settings_phoneBook_view.help-mode #phone_settings_phoneBook_list .button1 span {
- margin-left: 3px !important;
-} \ No newline at end of file
+/**
+ * Phone module CSS
+ *
+ * @category Style Sheets
+ * @filesource css/phone.css
+ * @version 2.0
+ */
+#phone {
+ width: 800px;
+ height: 480px;
+ background: url(../images/phone/bg.png) no-repeat;
+ background-position: top;
+} /*
+
+
+ Backgrpund for active toogleButton
+#phone .toogleButtonContainer .active {
+ background: url(../images/phone/bcs-item_bg_act.png);
+}
+
+#phone .delim {
+ position: relative;
+ float: left;
+ border: #393939 1px solid;
+ height: 26px;
+ width: 0px;
+}
+
+ LEFT MENU
+*/
+#phone_menu {
+ position: absolute;
+ top: 90px;
+ left: 0px;
+ width: 150px;
+ height: 300px;
+ background: #333;
+}
+
+.ls_border {
+ z-index: 201;
+ position: absolute;
+ top: -3px;
+ left: 0px;
+ width: 153px;
+ height: 306px;
+}
+
+.ls-items {
+ position: relative;
+ width: 150px;
+ height: 300px;
+}
+
+.ls-item {
+ z-index: 201;
+ position: relative;
+ width: 150px;
+}
+
+/*.ls-item > .bg{z-index:201;position:absolute;top:0px;left:0px;width:150px;height:50px;}
+ */
+.ls-item>.ico {
+ z-index: 299;
+ position: absolute;
+ left: 10px;
+ width: 30px;
+ height: 30px;
+ top: 10px;
+} /*
+ .ls-item > .ico.more {left:50px;}
+ */
+.ls-item span {
+ z-index: 298;
+ position: absolute;
+ left: 50px;
+ width: 100px;
+ height: 50px;
+ font-size: 18px;
+ line-height: 50px;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+/*.ls-item > .led{z-index:299;position:absolute;top:0px;right:8px;width:24px;height:50px;}
+ .ls-item.empty{background:#333333;}
+ .firts_item{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;}
+ .last_item{-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;}
+ */
+.lsp1_p {
+ background: url("../images/phone/menu_bg.png") repeat-x bottom;
+}
+
+.phone_active {
+ background: url("../images/phone/menu_active.png") repeat-x bottom
+ !important;
+ border-top: 1px solid #3e3115;
+ border-bottom: 1px solid #4a3a17
+}
+
+#phone_menu .ls-item {
+ height: 48px;
+ border-bottom: 1px solid #656565;
+ border-top: 1px solid #393939;
+} /*
+ .navigationApp {width:26px;height:25px;background:url("../images/phone/ico_navigation.png") no-repeat;left:60px;top:10px;}
+
+#phone_menu.hide {
+ left: -170px;
+}
+
+#phone_menu_quickdialButton,
+#phone_menu_messagingButton,
+#phone_menu_settingsButton {
+ z-index: 203;
+}
+
+#phone .list-item.active {
+ background: url(../images/phone/phone_button_bg_active.png) repeat-x;
+}
+ PHONE STATUS BAR
+*/
+#status_phone {
+ top: 0px;
+ left: 0px;
+ font-size: 21px;
+ cursor: pointer;
+ width: 324px;
+ height: 48px;
+ background: url(../images/common/phone-statusbar-bg.png) no-repeat;
+ z-index: 1;
+}
+
+#status_phone_label {
+ width: 100%;
+ display: block;
+ visibility: hidden;
+}
+
+#status_phone_label span {
+ padding-left: 11px;
+} /*
+
+#status_phone_call {
+ position: absolute;
+ top: 0px;
+ left: 11px;
+}
+
+#status_phone_antena {
+ background: url(../images/phone/phone_antena.png) no-repeat;
+ width: 28px;
+ height: 18px;
+ top: 15px;
+ left: 236px;
+}
+
+
+ PHONE HOME WIDGET
+
+#home_widgetPhone_dndButton {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ border: 1px solid #393939;
+ padding: 12px 53px 11px 14px;
+ font-size: 21px;
+ top: 104px;
+ left: 96px;
+}
+
+#home_widgetPhone_onCall {
+ width: 100%;
+}
+
+#home_widgetPhone_dndButton .ind_inact {
+ position: absolute;
+ right: 17px;
+ top: 13px;
+ width:6px;
+ height:21px;
+ background:url(../images/common/ind_vert_def.png) no-repeat;
+}
+
+#home_widgetPhone_dndButton .ind_act {
+ position: absolute;
+ right: 11px;
+ top: 8px;
+ background:url(../images/common/ind_vert_active.png) no-repeat;
+ width:19px;
+ height:32px;
+}
+
+#home_widgetPhone_endCallButton {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ border: 1px solid #393939;
+ padding: 12px 77px 11px 14px;
+ font-size: 21px;
+ top: 104px;
+ left: 96px;
+ z-index: 0;
+}
+
+#home_widgetPhone_endCallButton .ico {
+ left: 60px;
+ position: relative;
+ top: 2px;
+ float: right;
+}
+
+#home_widgetPhone_icons {
+ background: url(../images/home/home_phone.png) no-repeat;
+ width: 137px;
+ height: 35px;
+ left: 132px;
+ top: 18px;
+}
+
+#home_widgetPhone_icons.help {
+ background: url(../images/home/home_phone_blur.png) no-repeat !important;
+}
+
+#home_widgetPhone_label {
+ font-size: 27px;
+ top: 60px;
+ left: 52px;
+ width: 300px;
+ text-align: center;
+}
+
+#home_widgetPhone_nameInfo {
+ position: relative;
+ left: 100px;
+ top: 25px;
+}
+
+#home_widgetPhone_nameInfo span {
+ font-size: 24px;
+ margin-left: 43px;
+}
+
+#home_widgetPhone_callInfo {
+ position: relative;
+ left: 100px;
+ top: 38px;
+}
+
+#home_widgetPhone_callInfo span {
+ font-size: 24px;
+ margin-left: 20px;
+}
+
+#home_widgetPhone_help {
+ width: 194px;
+ height: 155px;
+ background: url(../images/home/home_phone_end_blur.png) no-repeat;
+ position: absolute;
+ top: 15px;
+ left: 82px;
+ z-index: 1;
+ visibility: hidden;
+}
+
+ PHONE MODULE
+
+ DIALPAD
+
+
+#phone_endCallMessage {
+ background: black;
+ border: 1px solid #A28542;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ font-size: 23px;
+ font-weight: bold;
+ height: 75px;
+ left: 271px;
+ line-height: 68px;
+ text-align: center;
+ top: 170px;
+ width: 250px;
+ z-index: 1000;
+ display: none;
+}
+
+#phone_info {
+ width: 248px;
+ height: 27px;
+ top: 15px;
+ left: 15px;
+ z-index: 10010;
+}
+
+#phone_info_number {
+ font-size: 15px;
+}
+
+#phone_info_name {
+ font-size: 20px;
+ width: 132px;
+}
+
+#phone_info_name p {
+ margin-top: -3px;
+}
+
+*/
+#phone_dialpad_number {
+ width: 283px;
+ height: 30px;
+ position: absolute;
+ left: 258px;
+ top: 87px;
+ text-align: center;
+ font-size: 22px;
+ padding: 10px 0 0 0;
+ background: black;
+ border: 1px solid #393939;
+ border-radius: 3px;
+}
+
+#phone_dialpad_keypad {
+ width: 282px;
+ height: 200px;
+ position: absolute;
+ left: 259px;
+ top: 141px;
+}
+
+#phone_dialpad_keypad div {
+ font-size: 26px;
+ text-align: center;
+ line-height: 32px;
+} /*
+
+
+#phone_dialpad_keypad .words {
+ font-size: 17px;
+ margin: -11px 0 0 0;
+ display: block;
+ color: #999;
+}
+
+*/
+#phone_dialpad_keypad .left {
+ left: 0px;
+ width: 93px;
+ height: 49px;
+ border-left: 1px solid #393939;
+ border-right: 1px solid #000;
+ border-top: 1px solid #393939;
+}
+
+#phone_dialpad_keypad .center {
+ left: 95px;
+ width: 93px;
+ height: 49px;
+ border-top: 1px solid #393939;
+ border-left: 1px solid #393939;
+ border-right: 1px solid #000;
+}
+
+#phone_dialpad_keypad .right {
+ left: 190px;
+ width: 93px;
+ height: 49px;
+ border-left: 1px solid #393939;
+ border-right: 1px solid #393939;
+ border-top: 1px solid #393939;
+}
+
+#phone_dialpad_keypad_key4,#phone_dialpad_keypad_key5,#phone_dialpad_keypad_key6
+ {
+ top: 50px;
+}
+
+#phone_dialpad_keypad_key7,#phone_dialpad_keypad_key8,#phone_dialpad_keypad_key9
+ {
+ top: 100px;
+}
+
+#phone_dialpad_keypad_key0,#phone_dialpad_keypad_keyDiez,#phone_dialpad_keypad_keyStar
+ {
+ top: 150px;
+ border-bottom: 1px solid #393939;
+}
+
+#phone_dialpad_keypad_key1 {
+ -webkit-border-top-left-radius: 3px;
+ border-top-left-radius: 3px;
+}
+
+#phone_dialpad_keypad_key3 {
+ -webkit-border-top-right-radius: 3px;
+ border-top-right-radius: 3px;
+}
+
+#phone_dialpad_keypad_keyStar {
+ -webkit-border-bottom-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+
+#phone_dialpad_keypad_keyDiez {
+ -webkit-border-bottom-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+} /*
+
+
+ Dialpad controls
+
+#phone_dialpad_controls {
+ width: 526px;
+ height: 38px;
+ border: 1px solid #393939;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ top: 355px;
+ left: 259px;
+}
+
+#phone_dialpad_controls div {
+ position: absolute;
+ background-repeat: repeat-x;
+ height: 38px;
+ width: 130px;
+ text-align: center;
+ line-height: 38px;
+ font-size: 20px;
+}
+
+#phone_dialpad_controls_privacyButton {
+ border-right: 1px solid #000;
+ z-index: 2001;
+ cursor: pointer;
+}
+
+#phone_dialpad_controls .ind_inact {
+ position: absolute;
+ right: 8px;
+ top: 8px;
+ width:6px;
+ height:21px;
+ background:url(../images/common/ind_vert_def.png) no-repeat;
+}
+
+#phone_dialpad_controls .ind_act {
+ position: absolute;
+ right: 2px;
+ top: 3px;
+ background:url(../images/common/ind_vert_active.png) no-repeat;
+ width:19px;
+ height:32px;
+}
+
+
+#phone_dialpad_controls_holdButton {
+ left: 131px;
+ border-left: 1px solid #393939;
+ border-right: 1px solid #000;
+ cursor: pointer;
+}
+
+#phone_dialpad_controls_muteButton {
+ left: 263px;
+ border-left: 1px solid #393939;
+ border-right: 1px solid #000;
+ cursor: pointer;
+}
+
+#phone_dialpad_controls_joinButton {
+ border-left: 1px solid #393939;
+ left: 395px;
+ z-index: 2001;
+ cursor: pointer;
+}
+
+*/
+#phone_dialpad_deleteButton {
+ opacity: 0;
+ cursor: pointer;
+ width: 93px;
+ height: 49px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ left: 554px;
+ top: 291px;
+ border: 1px solid #393939;
+}
+
+#phone_dialpad_deleteButton .ico {
+ position: absolute;
+ left: 34px;
+ top: 15px;
+}
+
+#phone_dialpad_dialButton {
+ cursor: pointer;
+ border: 1px solid #393939;
+ left: 661px;
+ top: 241px;
+ width: 128px;
+ height: 49px;
+ -webkit-border-top-left-radius: 3px;
+ border-top-left-radius: 3px;
+ -webkit-border-top-right-radius: 3px;
+ border-top-right-radius: 3px;
+}
+
+#phone_dialpad_dialButton span {
+ font-size: 18px;
+ position: absolute;
+ left: 14px;
+ top: 14px;
+}
+
+#phone_dialpad_dialButton .ico {
+ position: absolute;
+ right: 14px;
+ top: 11px;
+}
+
+#phone_dialpad_endButton {
+ cursor: pointer;
+ border: 1px solid #393939;
+ left: 661px;
+ top: 291px;
+ width: 128px;
+ height: 49px;
+ -webkit-border-bottom-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+ -webkit-border-bottom-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+}
+
+#phone_dialpad_endButton span {
+ font-size: 18px;
+ position: absolute;
+ left: 14px;
+ top: 14px;
+}
+
+#phone_dialpad_endButton .ico {
+ position: absolute;
+ right: 9px;
+ top: 16px;
+} /*
+
+#phone_dialpad_contactImage {
+ opacity: 0;
+ width: 130px;
+ height: 135px;
+ background: url("../images/phone/dial_photo.png") repeat-x;
+ left: 658px;
+ top: 86px;
+}
+
+ QUICK DIAL
+
+#phone_quickdial_content {
+ width: 630px;
+ height: 250px;
+ left: 166px;
+ top: 98px;
+ background: url(../images/phone/quick_dial_inact_bg.png) no-repeat;
+}
+
+#phone_quickdial ul.l-block {
+ list-style: none;
+ position: relative;
+ float: left;
+ width: 320px;
+ height: 250px;
+}
+
+#phone_quickdial ul.r-block {
+ list-style: none;
+ position: relative;
+ float: left;
+ width: 310px;
+ height: 250px;
+}
+
+#phone_quickdial ul li {
+ line-height: 50px;
+ font-size: 20px;
+}
+
+#phone_quickdial ul li span.number {
+ position: relative;
+ float: left;
+ padding-left: 5px;
+ padding-right: 15px;
+ font-size: 29px;
+ width: 22px;
+}
+
+ PHONEBOOK
+#phone_phonebook_content {
+ left: 166px;
+ top: 98px;
+ width: 633px;
+ height: 295px;
+}
+
+#phone_phonebook_filters {
+ width: 470px;
+ height: 40px;
+ position: relative;
+ margin-left: 100px;
+ background: url(../images/phone/book-filter-bg.png) no-repeat;
+}
+
+#phone_phonebook_filters ul {
+ list-style: none;
+}
+
+#phone_phonebook_filters li {
+ float: left;
+ width: 94px;
+ text-align: center;
+ line-height: 40px;
+ font-size: 20px;
+}
+
+#phone_phonebook_list {
+ height: 251px;
+ position: relative;
+ float: left;
+ margin-top: 5px;
+ width: 630px;
+}
+
+#phone_phonebook_list .list-content {
+ width: 568px;
+}
+
+#phone_phonebook .list-item span {
+ padding-left: 10px;
+}
+
+ HISTORY
+
+#phone_history_content {
+ left: 166px;
+ top: 98px;
+ width: 625px;
+ height: 295px;
+}
+
+#phone_history_filters {
+ background: url(../images/phone/history-filter-bg.png) no-repeat;
+ width: 470px;
+ height: 40px;
+ position: relative;
+}
+
+#phone_history_filters ul {
+ list-style: none;
+}
+
+#phone_history_filters li {
+ float: left;
+ width: 117px;
+ text-align: center;
+ line-height: 40px;
+ font-size: 20px;
+}
+
+#phone_history_list {
+ width: 470px;
+ height: 251px;
+ position: relative;
+ top: 5px;
+ float: left;
+}
+
+#phone_history_list .list-content {
+ width: 413px;
+}
+
+#phone_history_list .list-item .ico {
+ margin-top: 7px;
+ margin-right: 5px;
+ margin-left: 5px;
+ float: left;
+}
+
+#phone_history_list .list-item .right_text {
+ margin-right: 6px;
+}
+
+#phone_history_controls {
+ width: 150px;
+ height: 149px;
+ left: 5px;
+ top: 5px;
+ position: relative;
+ float: left;
+ border: 1px solid #393939;
+ border-radius:3px;
+ -webkit-border-radius:3px;
+ -moz-border-radius:3px;
+}
+
+#phone_history_dial {
+ position: relative;
+ height: 50px;
+ width: 150px;
+ font-size: 20px;
+ line-height: 43px;
+}
+
+#phone_history_dial span {
+ padding-left: 10px;
+}
+
+#phone_history_dial .ico {
+ float: right;
+ margin: 10px;
+}
+
+#phone_history_savedial {
+ position: relative;
+ height: 99px;
+ width: 150px;
+ font-size: 20px;
+ line-height: 43px;
+}
+
+#phone_history_savedial span {
+ padding-left: 10px;
+}
+
+ MESSAGING
+
+#phone_messaging_content {
+ left: 166px;
+ top: 98px;
+ width: 570px;
+ height: 295px;
+}
+
+#phone_messaging_send {
+ background: url(../images/phone/btn_bg.png) repeat-x;
+ width: 150px;
+ height: 38px;
+ position: relative;
+ float: left;
+ font-size: 20px;
+ line-height: 40px;
+ border: 1px solid #393939;
+ border-radius:3px;
+}
+
+#phone_messaging_send span {
+ padding-left: 10px;
+}
+
+#phone_messaging_send .arrow-ico {
+ top: -5px;
+}
+
+#phone_messaging_controls {
+ background: url(../images/phone/msg-r-group-bg.png) no-repeat;
+ width: 300px;
+ height: 40px;
+ position: relative;
+ float: right;
+}
+
+#phone_messaging_controls ul {
+ list-style: none;
+}
+
+#phone_messaging_controls ul li {
+ float: left;
+ width: 150px;
+ text-align: center;
+ line-height: 40px;
+ font-size: 20px;
+}
+
+#phone_messaging_list {
+ width: 570px;
+ height: 250px;
+ position: relative;
+ margin-top: 45px;
+ background: url(../images/phone/msg-list-bg.png) no-repeat;
+}
+
+#phone_messaging_list ul.list {
+ float: left;
+ list-style: none;
+}
+
+#phone_messaging_list ul.del {
+ float: right;
+ list-style: none;
+}
+
+#phone_messaging_list ul.list li {
+ width: 320px;
+ height: 50px;
+ font-size: 20px;
+ line-height: 50px;
+ padding-left: 50px;
+}
+
+#phone_messaging_list ul.del li {
+ width: 100px;
+ height: 50px;
+ font-size: 20px;
+ line-height: 50px;
+ text-align: center;
+}
+
+ SETTINGS
+#phone_settings {
+ z-index: 10001;
+}
+
+#phone_settings_content {
+ width: 627px;
+ height: 300px;
+ left: 166px;
+ top: 87px;
+}
+
+#phone_settings_list {
+ width: 630px;
+ height: 301px;
+ position: relative;
+ top: 5px;
+ float: left;
+}
+
+#phone_settings_list .list-content {
+ width: 570px;
+}
+
+#phone_settings_list .list-item > span,
+#phone_settings_list .lableToggle span{
+ padding-left: 7px;
+}
+
+#phone_settings_list .list-item .ico {
+ position: absolute;
+ right: 10px;
+ top: 8px;
+ opacity: 1;
+}
+
+#phone_settings_list .lableToggleButton{
+ background-image: url(../images/list/list_item_bg.png);
+}
+
+#phone_settings .toogleButtonContainer {
+ position: relative;
+ width: 198px;
+ height: 28px;
+ border: 1px solid #393939;
+ border-radius: 2px;
+ float: right;
+ margin-top: 10px;
+ margin-right: 10px;
+}
+
+ HELP MODE
+
+#phone .shifted {
+ width: 650px;
+ left: 150px;
+}
+
+#phone .blured_background {
+ visibility: hidden;
+ width: 800px;
+ height: 480px;
+ z-index: 1001;
+ position: absolute;
+}
+
+#phone_dialpad_help {
+ background: url(../images/phone/phone_help_dialpad.png) no-repeat;
+}
+
+#phone_quickdial_help {
+ background: url(../images/phone/phone_help_quickdial.png) no-repeat;
+}
+
+#phone_phonebook_help {
+ background: url(../images/phone/phone_help_phonebook.png) no-repeat;
+}
+
+#phone_history_help {
+ background: url(../images/phone/phone_help_history.png) no-repeat;
+}
+
+#phone_messaging_help {
+ background: url(../images/phone/phone_help_messaging.png) no-repeat;
+}
+
+#phone_settings_help {
+ background: url(../images/phone/phone_help_settings.png) no-repeat;
+}
+
+#phone_menu_help {
+ background: url("../images/phone/phone_help_menu.png") no-repeat;
+ width: 165px;
+ height: 315px;
+ z-index: 202;
+ pointer-events: none;
+}
+
+#phone_help_divider {
+ height: 3px;
+ width: 150px;
+ top: 249px;
+ left: 0;
+}
+
+#phone_settings_help_dndButton {
+ font-size: 20px;
+ line-height: 55px;
+ height: 50px;
+ width: 570px;
+ top: 190px;
+ left: 16px;
+ z-index: 2001;
+ cursor: pointer;
+}
+
+#phone_settings_help_dndButton span {
+ padding-left: 8px;
+}
+
+#phone_settings_help_dndButton .ico {
+ position: absolute;
+ right: 9px;
+ top: 13px;
+ opacity: 1;
+}
+
+ Phone settings Bluetooth Devices
+#phone_settings_BluetoothDevices_view {
+ width: 800px;
+ height: 480px;
+ background-image: url(../images/phone/bg.png);
+ font-size: 20px;
+ z-index: 10001;
+}
+
+#phone_settings_BluetoothDevices_view .backButton {
+ margin-top: 59px;
+}
+
+#phone_settings_BluetoothDevices_view .block-header-title {
+ top: 69px;
+}
+
+#phone_settings_BluetoothDevices_view .bluetoothLogo{
+ background: url(../images/phone/ico_bluetoothConnect.png) no-repeat;
+ top: 109px;
+ left: 5px;
+ height: 50px;
+ width: 50px;
+}
+
+#phone_settings_BluetoothDevices_list {
+ margin-top: 109px;
+ margin-left: 65px;
+ width: 570px;
+ height: 301px;;
+}
+
+
+#phone_settings_BluetoothDevices_list .list-content {
+ border-right: none;
+ border-top: none;
+}
+
+#phone_settings_BluetoothDevices_list .list-item:first-child {
+ border-top: 1px solid #393939;
+ height: 48px;
+}
+
+#phone_settings_BluetoothDevices_list .list-item {
+ position: relative;
+ width: 503px;
+ float: left;
+ height: 49px;
+ border-bottom: 1px solid #393939;
+ border-right: 1px solid #393939;
+ line-height: 50px;
+}
+
+#phone_settings_BluetoothDevices_list .list-item.pressed {
+ background: url(../images/phone/phone_button_bg_active.png) repeat-x !important;
+}
+
+#phone_settings_BluetoothDevices_list .list-item > span {
+ position: absolute;
+ left: 63px;
+}
+
+#phone_settings_BluetoothDevices_list .list-item .ico {
+ position: absolute;
+ float: left;
+ left: 9px;
+}
+
+#phone_settings_BluetoothDevices_list .list-item .right_ico {
+ float: right;
+}
+
+#phone_settings_BluetoothDevices_list .list-item.big-ico img {
+ float: right;
+ border: none;
+ margin-top: 4px;
+ margin-right: 9px;
+}
+
+#phone_settings_BluetoothDevices_view .right-menu{
+ top: 109px;
+ right: 3px;
+ float: right;
+ width: 150px;
+ border: 1px solid #393939;
+ border-bottom: none;
+ -webkit-border-radius: 3px;
+}
+
+#view_phone_phoneSettings_bluetoothDevices_rightmenu .menu-item{
+ position: relative;
+ width: 135px;
+ height: 49px;
+ cursor: pointer;
+ border-bottom: 1px solid #333;
+ font-size: 18px;
+ line-height: 46px;
+ padding-left: 15px;
+}
+
+#phone_settings_BluetoothDevices_view.help-mode {
+ background-image: url(../images/phone/phone_settings_bluetoothDevices_bg_help.png);
+ background-repeat: no-repeat;
+}
+
+#phone_settings_BluetoothDevices_view.help-mode .menu-item,
+#phone_settings_BluetoothDevices_view.help-mode .right-menu {
+ border: none;
+ background: none;
+}
+
+#phone_settings_BluetoothDevices_view.help-mode .menu-item{
+ margin-top: 1px;
+ right: 1px;
+}
+
+#phone_settings_BluetoothDevices_view.help-mode .menu-item .arrow-ico,
+#phone_settings_BluetoothDevices_view.help-mode .bluetoothLogo{
+ opacity: 0;
+}
+
+.help-mode #phone_settings_BluetoothDevices_view .list-item span {
+ text-shadow: 0 0 3px #999;
+}
+
+.help-mode #phone_settings_BluetoothDevices_list .list-item span {
+ text-shadow: 0 0 3px #999;
+}
+
+ Phone settings Phone Ringer
+#phone_settings_phoneRinger_view {
+ width: 800px;
+ height: 480px;
+ background-image: url(../images/phone/bg.png);
+ font-size: 20px;
+ z-index: 10001;
+}
+
+
+#phone_settings_phoneRinger_view .backButton {
+ margin-top: 59px;
+}
+
+#phone_settings_phoneRinger_view .block-header-title {
+ top: 69px;
+}
+
+#phone_settings_phoneRinger_list {
+ margin-top: 139px;
+ margin-left: 65px;
+ width: 734px;
+ height: 251px;;
+}
+
+#phone_settings_phoneRinger_list .list-content {
+ width: 674px;
+ border-right: none;
+ border-top: none;
+}
+
+#phone_settings_phoneRinger_list .list-item:first-child,
+#phone_settings_phoneRinger_list .soundButton:first-child{
+ border-top: 1px solid #393939;
+ height: 48px;
+}
+
+#phone_settings_phoneRinger_list .list-item {
+ position: relative;
+ width: 613px;
+ float: left;
+ height: 49px;
+ border-bottom: 1px solid #393939;
+ border-right: 1px solid #393939;
+ line-height: 50px;
+}
+
+#phone_settings_phoneRinger_list .list-item.soundButton {
+ width: 48px;
+ border-left: 1px solid #393939;
+ margin-left: 10px;
+}
+
+#phone_settings_phoneRinger_list .list-item.soundButton .ico {
+ border: none;
+ margin-top: 12px;
+ margin-right: 11px;
+}
+
+#phone_settings_phoneRinger_list .list-item.pressed {
+ background: url(../images/phone/phone_button_bg_active.png) repeat-x !important;
+}
+
+#phone_settings_phoneRinger_list .list-item > span {
+ margin-left: 13px;
+}
+
+#phone_settings_phoneRinger_list .list-item .ico {
+ float: right;
+ border: 1px solid #393939;
+ border-radius: 2px;
+ margin-top: 9px;
+ margin-right: 9px;
+}
+
+#phone_settings_phoneRinger_list .list-item.big-ico img {
+ float: right;
+ border: none;
+ margin-top: 4px;
+ margin-right: 9px;
+}
+
+#phone_settings_phoneRinger_list .toggles, #phone_settings_phoneRinger_list .toggles span {
+ width: 148px;
+}
+
+#phone_settings_phoneRinger_view.help-mode {
+ background-image: url(../images/phone/phone_settings_phoneRinger_bg_help.png);
+ background-repeat: no-repeat;
+}
+
+.help-mode #phone_settings_phoneRinger_view .list-item span {
+ text-shadow: 0 0 3px #999;
+}
+
+.help-mode #phone_settings_phoneRinger_list .list-item span {
+ text-shadow: 0 0 3px #999;
+}
+
+ Phone settings Text Message Notification
+#phone_settings_textMessageNotification_view {
+ width: 800px;
+ height: 480px;
+ background-image: url(../images/phone/bg.png);
+ font-size: 20px;
+ z-index: 10001;
+}
+
+
+#phone_settings_textMessageNotification_view .backButton {
+ margin-top: 59px;
+}
+
+#phone_settings_textMessageNotification_view .block-header-title {
+ top: 69px;
+}
+
+#phone_settings_textMessageNotification_list {
+ margin-top: 139px;
+ margin-left: 65px;
+ width: 731px;
+ height: 251px;
+}
+
+#phone_settings_textMessageNotification_list .list-content {
+ width: 674px;
+ border-right: none;
+ border-top: none;
+}
+
+#phone_settings_textMessageNotification_list .list-item:first-child,
+#phone_settings_textMessageNotification_list .soundButton:first-child{
+ border-top: 1px solid #393939;
+ height: 48px;
+}
+
+#phone_settings_textMessageNotification_list .list-item {
+ position: relative;
+ width: 613px;
+ float: left;
+ height: 49px;
+ border-bottom: 1px solid #393939;
+ border-right: 1px solid #393939;
+ line-height: 50px;
+}
+
+#phone_settings_textMessageNotification_list .list-item.soundButton {
+ width: 48px;
+ border-left: 1px solid #393939;
+ margin-left: 10px;
+}
+
+#phone_settings_textMessageNotification_list .list-item.soundButton .ico {
+ border: none;
+ margin-top: 12px;
+ margin-right: 11px;
+}
+
+#phone_settings_textMessageNotification_list .list-item.pressed {
+ background: url(../images/phone/phone_button_bg_active.png) repeat-x !important;
+}
+
+#phone_settings_textMessageNotification_list .list-item > span {
+ margin-left: 13px;
+}
+
+#phone_settings_textMessageNotification_list .list-item .ico {
+ float: right;
+ border: 1px solid #393939;
+ border-radius: 2px;
+ margin-top: 9px;
+ margin-right: 9px;
+}
+
+#phone_settings_textMessageNotification_list .list-item.big-ico img {
+ float: right;
+ border: none;
+ margin-top: 4px;
+ margin-right: 9px;
+}
+
+#phone_settings_textMessageNotification_list .toggles, #phone_settings_textMessageNotification_list .toggles span {
+ width: 148px;
+}
+
+#phone_settings_textMessageNotification_view.help-mode {
+ background-image: url(../images/phone/phone_settings_textMessageNotification_bg_help.png);
+ background-repeat: no-repeat;
+}
+
+.help-mode #phone_settings_textMessageNotification_view .list-item span {
+ text-shadow: 0 0 3px #999;
+}
+
+.help-mode #phone_settings_textMessageNotification_list .list-item span {
+ text-shadow: 0 0 3px #999;
+}
+
+ Phone settings Internet Data Connection
+#phone_settings_internetDataConnection_view {
+ width: 800px;
+ height: 480px;
+ background-image: url(../images/phone/bg.png);
+ font-size: 20px;
+ z-index: 10001;
+}
+
+
+#phone_settings_internetDataConnection_view.help-mode .toogleButtonContainer {
+ border: none !important;
+
+}
+
+#phone_settings_internetDataConnection_view .backButton {
+ margin-top: 59px;
+}
+
+#phone_settings_internetDataConnection_view .block-header-title {
+ top: 69px;
+}
+
+#phone_settings_internetDataConnection_view .content {
+ top: 119px;
+ left: 100px;
+ width: 650px;
+ height: 300px;
+}
+
+#phone_settings_phoneRinger_phone_label {
+ position: relative;
+ width: 300px;
+ height: 29px;
+ float: left;
+ margin-left: 12px;
+}
+
+#phone_settings_phoneRinger_phone_label .ico {
+ margin-top: -12px;
+ margin-left: -6px;
+}
+
+#phone_settings_phoneRinger_phone_label span {
+ position: absolute;
+ margin-left: 13px;
+ top: -3px;
+}
+
+#phone_settings_internetDataConnection_view .lableToggleButton {
+ position: relative;
+ margin-top: 1px;
+ width: 560px;
+ height: 50px;
+ line-height: 50px;
+ float: left;
+}
+
+#phone_settings_internetDataConnection_view .toogleButtonContainer {
+ width: 298px;
+ margin-left: 213px;
+ margin-right: 9px;
+ margin-top: 9px;
+}
+
+#phone_settings_internetDataConnection_view .lableToggleButton .lableToggle > span {
+ margin-left: 12px;
+}
+
+#phone_settings_internetDataConnection_view .helpButton {
+ position: relative;
+ float: right;
+ margin-top: 10px;
+ height: 28px;
+ width: 88px;
+ border: 1px solid #333;
+ border-radius: 2px;
+}
+
+#phone_settings_internetDataConnection_view .helpButton .ico{
+ margin-top: 4px;
+ margin-left: 38px;
+}
+
+#phone_settings_phoneRinger_DUNSettings_button {
+ position: relative;
+ float: left;
+ width: 648px;
+ height: 48px;
+ line-height: 50px;
+ border: 1px solid #333;
+ border-radius: 2px;
+}
+
+#phone_settings_phoneRinger_DUNSettings_button span {
+ margin-left: 12px;
+}
+
+#phone_settings_internetDataConnection_view .wraper {
+ position: relative;
+ float: left;
+ top: -1px;
+ border: 1px solid #333;
+ border-radius: 2px;
+ height: 109px;
+ padding-left: 10px;
+ padding-top: 9px;
+ width: 638px;
+}
+
+#phone_settings_phoneRinger_dataUsage_label {
+ width: 613px;
+}
+
+#phone_settings_phoneRinger_dataUsage_label span {
+ line-height: 25px
+}
+
+#phone_settings_internetDataConnection_view.fr #phone_settings_phoneRinger_dataUsage_label {
+ line-height: 21px;
+}
+
+#phone_settings_internetDataConnection_view.fr #phone_settings_phoneRinger_dataUsage_label span{
+ line-height: 21px;
+}
+
+#phone_settings_internetDataConnection_view.help-mode .content .ico,
+#phone_settings_internetDataConnection_view.help-mode .arrow-ico {
+ opacity: 0;
+}
+
+#phone_settings_internetDataConnection_view.help-mode .wraper {
+ top: 0px;
+ left: 1px;
+ border: none;
+}
+
+#phone_settings_internetDataConnection_view.help-mode .content .button {
+ border: none;
+ background: none;
+}
+
+.help-mode #phone_settings_phoneRinger_DUNSettings_button {
+ top: 1px;
+}
+
+#phone_settings_internetDataConnection_view.help-mode {
+ background: url(../images/phone/phone_settings_internetDataConnection_bg_help.png) no-repeat;
+}
+
+#phone_settings_internetDataConnection_view.help-mode .lableToggleButton {
+ top: -1px;
+ left: -1px;
+}
+
+#phone_settings_internetDataConnection_view.help-mode .lableToggleButton .button0 span {
+ margin-left: 0px !important;
+}
+
+#phone_settings_internetDataConnection_view.help-mode .lableToggleButton .button1 span {
+ margin-left: 2px !important;
+}
+
+#phone_settings_internetDataConnection_view.help-mode .lableToggleButton .button2 span {
+ margin-left: 3px !important;
+}
+
+.help-mode #phone_settings_phoneRinger_DUNSettings_button {
+ margin-left: 1px;
+}
+
+.help-mode #phone_settings_phoneRinger_OnConnect_Lable {
+ margin-top: 3px;
+}
+
+ Phone settings phonebook
+#phone_settings_phoneBook_view {
+ width: 800px;
+ height: 480px;
+ background-image: url(../images/phone/bg.png);
+ font-size: 20px;
+ z-index: 10001;
+}
+
+#phone_settings_phoneBook_view .backButton {
+ margin-top: 59px;
+}
+
+#phone_settings_phoneBook_view .block-header-title {
+ top: 69px;
+}
+
+#phone_settings_phoneBook_list {
+ margin-top: 139px;
+ margin-left: 65px;
+ width: 731px;
+ height: 251px;;
+}
+
+#phone_settings_phoneBook_list .list-content {
+ width: 670px;
+}
+
+#phone_settings_phoneBook_list .list-item {
+ position: relative;
+ width: 670px;
+ float: left;
+ height: 49px;
+ border-bottom: 1px solid #393939;
+ line-height: 50px;
+}
+
+#phone_settings_phoneBook_list .list-item > span {
+ margin-left: 13px;
+}
+
+#phone_settings_phoneBook_list .list-item .lableToggle span {
+ margin-left: 13px;
+}
+
+#phone_settings_phoneBook_list .list-item .ico {
+ float: right;
+ border: 1px solid #393939;
+ border-radius: 2px;
+ margin-top: 9px;
+ margin-right: 9px;
+}
+
+#phone_settings_phoneBook_list .list-item.big-ico img {
+ float: right;
+ border: none;
+ margin-top: 4px;
+ margin-right: 9px;
+}
+
+#phone_settings_phoneBook_list .toogleButtonContainer {
+ width: 298px;
+}
+
+#phone_settings_phoneBook_view.help-mode .toogleButtonContainer {
+ border: none !important;
+}
+
+#phone_settings_phoneBook_view.fr #phone_settings_phoneBook_list_item0 .lableToggle {
+ line-height: 19px;
+ width: 360px;
+ margin: 5px 0px 0px 13px;
+}
+
+#phone_settings_phoneBook_view.fr #phone_settings_phoneBook_list_item0 .lableToggle span {
+ margin-left: 0px;
+}
+
+#phone_settings_phoneBook_view.help-mode {
+ background-image: url(../images/phone/phone_settings_phoneBook_bg_help.png);
+ background-repeat: no-repeat;
+}
+
+phone_settings_phoneBook_view.help-mode #phone_settings_phoneBook_view .list-item span {
+ text-shadow: 0 0 3px #999;
+}
+
+phone_settings_phoneBook_view.help-mode #phone_settings_phoneBook_list .list-item span {
+ text-shadow: 0 0 3px #999;
+}
+
+phone_settings_phoneBook_view.help-mode #phone_settings_phoneBook_list .toogleButtonContainer {
+ margin-right: 11px;
+}
+
+phone_settings_phoneBook_view.help-mode #phone_settings_phoneBook_list .lablePlusButton .button.single {
+ right: 1px;
+ top: 1px;
+}
+phone_settings_phoneBook_view.help-mode #phone_settings_phoneBook_list .button1 span {
+ margin-left: 3px !important;
+}*/ \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/css/sdl.css b/SDL_Core/src/components/HMI/css/sdl.css
index 7cf6fce8c..5a72861da 100644
--- a/SDL_Core/src/components/HMI/css/sdl.css
+++ b/SDL_Core/src/components/HMI/css/sdl.css
@@ -1,7 +1,6 @@
/**
* CSS for sdl aplications
*/
-
.ffw_list_menu {
left: 440px;
width: 158px;
@@ -19,10 +18,16 @@
height: 49px;
border-bottom: 1px solid #393939;
line-height: 50px;
+ display: -webkit-flex;
+ display: -moz-flex;
+ display: flex;
}
.ffw_list_menu .ffw-button span {
- margin-left: 20px;
+ height: 50px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ padding-left: 10px;
}
.ffw_list_menu .content {
@@ -31,7 +36,7 @@
.ffw_list_menu .ffw-button.hidden {
display: none;
-}
+}
.sdl-window {
width: 800px;
@@ -39,7 +44,31 @@
background-color: #000;
z-index: 1;
}
-
+
+/**
+ * Important Class for SoftButtons Highlightening
+ */
+.isHighlighted{
+ color: gold;
+}
+
+.isHighlighted .ico{
+ border-style: solid;
+ border-color: #FFA300 #F7DA9C;
+ border-width: 1px;
+}
+
+.softButton .ico{
+ width: 50px;
+ height: 49px;
+ -webkit-flex: 0 0 50px;
+ float: left;
+}
+
+.softButton .right_text{
+ padding-left: 5px !important;
+}
+
.sdl-window .back-button {
top: 80px;
left: 5px;
@@ -54,15 +83,27 @@
margin-left: 8px;
}
-.sdl-window .caption-text {
+#info_apps_deviceList_view .deviceListLabel,.sdl-window .caption-text {
top: 80px;
left: 75px;
width: 620px;
- height: 20px;
background: #393939;
- padding: 15px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ line-height: 50px;
+ height: 50px;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+
+#info_apps_deviceList_view .progress{
+ top: 175px;
+ left: 254px;
+ background: URL('../images/sdl/progress.gif') no-repeat;
+ width: 300px;
+ height: 200px;
}
-
+
#info_nonMedia {
z-index: 1001;
}
@@ -77,6 +118,7 @@
top: 90px;
width: 600px;
height: 300px;
+ overflow: hidden;
}
#info_nonMedia .app_title {
@@ -104,29 +146,29 @@
}
#info_nonMedia .presets {
- top: 220px;
- width: 420px;
- height: 80px;
+ top: 220px;
+ width: 420px;
+ height: 80px;
}
#info_nonMedia .presets .ffw-button {
- width: 138px;
- height: 38px;
- position: relative;
- float: left;
- line-height: 40px;
- border-bottom: 1px solid #393939;
- border-right: 1px solid #393939;
- border-top: 1px solid #222;
- border-left: 1px solid #222;
- text-align: center;
+ width: 103px;
+ height: 38px;
+ position: relative;
+ float: left;
+ line-height: 40px;
+ border-bottom: 1px solid #393939;
+ border-right: 1px solid #393939;
+ border-top: 1px solid #222;
+ border-left: 1px solid #222;
+ text-align: center;
}
-#info_nonMedia .app_image img{
+#info_nonMedia .app_image img {
border: 1px solid #393939;
}
-#sdl_options .list{
+#sdl_options .list {
width: 650px;
height: 251px;
border-radius: 2px;
@@ -135,18 +177,26 @@
}
/*#sdl_view_container .list-content,*/
-#sdl_options .list-content{
+#sdl_options .list-content {
width: 590px;
}
-#info_apps_deviceList_list .list-content span,
-#sdl_view_container .list-content span,
-#sdl_options .list-content span{
+
+#VRPopUp.move{
+ left: 800px;
+}
+
+#VRPopUp span,#info_apps_deviceList_list .list-content span,#sdl_view_container .list-content span,#sdl_options .list-content span
+ {
margin-left: 15px;
+ position: absolute;
+ text-overflow: ellipsis;
+ width: 527px;
+ overflow: hidden;
}
#sdl_options .list-content .ico {
- height: 49px;
- float: left;
+ height: 49px;
+ float: left;
}
#info_nonMedia_options_submenu {
@@ -158,12 +208,12 @@
left: 0px;
}
-#sdl_media_presetButtons .preset-item > span {
+#sdl_media_presetButtons .preset-item>span {
z-index: 202;
display: block;
position: absolute;
left: 10px;
- width: 140px;
+ width: 105px;
height: 50px;
font-size: 20px;
line-height: 50px;
@@ -172,40 +222,39 @@
color: white;
}
-#sdl_view_container .preset-items{
+#sdl_view_container .preset-items {
width: 468px;
}
-#sdl_view_container .main-preset-buttons-wraper .preset-item.a3,
-#sdl_view_container .main-preset-buttons-wraper .preset-item.a6{
+#sdl_view_container .main-preset-buttons-wraper .preset-item.a3,#sdl_view_container .main-preset-buttons-wraper .preset-item.a6
+ {
width: 155px;
}
-#sdl_view_container .player_controllsV2{
+#sdl_view_container .player_controllsV2 {
top: 241px !important;
height: 48px;
}
-#sdl_view_container .player_controllsV2 .ffw-button{
+#sdl_view_container .player_controllsV2 .ffw-button {
height: 48px;
}
-#sdl_view_container .player_controllsV2 img{
+#sdl_view_container .player_controllsV2 img {
margin-top: -26px;
}
-
/* ScrollableMessage */
-#ScrollableMessage.ScrollableMessage{
+#ScrollableMessage.ScrollableMessage {
left: 0;
top: 0;
- width: 800px;
+ width: 800px;
height: 480px;
/*z-index: 1000;*/
background: url(../images/media/bg.png) no-repeat;
}
-#ScrollableMessage.active{
+#ScrollableMessage.active {
opacity: 1;
display: block;
}
@@ -218,7 +267,7 @@
border-radius: 2px;
}
-#ScrollableMessage .titleText{
+#ScrollableMessage .titleText {
top: 80px;
left: 75px;
width: 620px;
@@ -227,7 +276,7 @@
padding: 15px;
}
-#ScrollableMessage .scrollableText{
+#ScrollableMessage .scrollableText {
position: absolute;
width: 525px;
height: 251px;
@@ -237,7 +286,7 @@
overflow: hidden;
}
-#ScrollableMessage .scrollableText-content{
+#ScrollableMessage .scrollableText-content {
border: none;
width: 474px;
}
@@ -256,7 +305,7 @@
left: 25px !important;
}
-#ScrollableMessage .scrollableTextArea{
+#ScrollableMessage .scrollableTextArea {
margin: 0px;
/*height: 251px;*/
width: 469px;
@@ -269,25 +318,31 @@
position: absolute;
}
-
/* SDL Slider */
-
.slider-header {
top: 167px;
left: 145px;
width: 480px;
- height: 20px;
background: #393939;
- padding: 15px;
+ line-height: 50px;
+ height: 50px;
+ padding-left: 15px;
+ padding-right: 15px;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
.slider-footer {
top: 325px;
left: 145px;
width: 480px;
- height: 20px;
background: #393939;
- padding: 15px;
+ line-height: 50px;
+ height: 50px;
+ padding-left: 15px;
+ padding-right: 15px;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
#slider_view .sliderControl {
@@ -305,25 +360,24 @@
display: inline-block;
}
-
-#slider_view .ledContainer{
+#slider_view .ledContainer {
position: relative;
display: inline-block;
border: 1px solid #393939;
height: 38px;
}
-
- #slider_view .control.minus .ico {
- top: 19px;
- left: 20px;
- position: absolute;
- }
- #slider_view .control.plus .ico {
- top: 12px;
- left: 20px;
- position: absolute;
- }
+#slider_view .control.minus .ico {
+ top: 19px;
+ left: 20px;
+ position: absolute;
+}
+
+#slider_view .control.plus .ico {
+ top: 12px;
+ left: 20px;
+ position: absolute;
+}
#slider_view .led {
width: 12px;
@@ -333,6 +387,7 @@
background-position: -4px 0;
display: inline-block;
}
+
#slider_view .led-inactive {
background: url("../images/common/seat-inact-led.png") no-repeat;
background-position: 3px 8px;
@@ -342,11 +397,11 @@
display: inline-block;
}
-
/* SDL Perform Interaction Choise,
SDL TBT Turn List */
#tbtTurnListView .list,
-#perform_interaction_view .list{
+#perform_interaction_view .list,
+#vr_help_list_view .list {
position: absolute;
width: 650px;
height: 251px;
@@ -354,15 +409,51 @@
left: 75px;
top: 154px;
}
+
#tbtTurnListView .list span,
-#perform_interaction_view .list span{
+#perform_interaction_view .list span,
+#vr_help_list_view .list span{
margin-left: 15px;
}
+
#tbtTurnListView .list-content,
-#perform_interaction_view .list-content{
+#perform_interaction_view .list-content,
+#vr_help_list_view .list-content {
width: 578px;
}
-#sdl_view_container .cd_logo{
+
+#perform_interaction_view input{
+ width: 720px;
+ height: 48px;
+ border: 1px solid #333;
+ border-radius: 2px;
+ background: rgba(119, 119, 119, 0.42);
+ cursor: pointer;
+ font-size: 32px;
+ color: #FFF;
+ top: 80px;
+ left: 65px;
+ position: absolute;
+}
+#perform_interaction_view .listWrapper{
+ top: 140px;
+ width: 750px;
+ height: 275px;
+ left: 25px;
+}
+
+#perform_interaction_view .naviChoises .ffw-button{
+ width: 110px;
+ height: 110px;
+ margin: 20px;
+ float: left;
+ position: relative;
+ border: 1px solid #333;
+ border-radius: 2px;
+ background-repeat: repeat;
+}
+
+#sdl_view_container .cd_logo {
position: absolute;
top: 90px;
right: 10px;
@@ -371,7 +462,8 @@
width: 109px;
height: 109px;
}
-#sdl_view_container .cd_logoV2{
+
+#sdl_view_container .cd_logoV2 {
position: absolute;
top: 70px;
right: 10px;
@@ -380,15 +472,18 @@
width: 109px;
height: 109px;
}
-#sdl_view_container .timeV2{
+
+#sdl_view_container .timeV2 {
top: 155px;
}
-#sdl_view_container .textLimit{
+
+#sdl_view_container .textLimit {
width: 460px;
text-overflow: ellipsis;
overflow: hidden;
}
-#VRButton.VRButton{
+
+#VRButton.VRButton {
background: url(../images/home/controlButtons/vr.png) no-repeat;
width: 89px;
height: 90px;
@@ -396,10 +491,12 @@
top: 2px;
-webkit-transition: 0.2s;
}
-#VRButton.pressed{
+
+#VRButton.pressed {
background: url(../images/home/controlButtons/vr_pressed.png) no-repeat;
}
-#vehicleInfoButton.vehicleInfoButton{
+
+#vehicleInfoButton.vehicleInfoButton {
width: 117px;
height: 48px;
left: 1059px;
@@ -407,16 +504,26 @@
text-align: center;
line-height: 48px;
}
-#tbtClientStateButton.tbtClientStateButton{
+
+#tbtClientStateButton.tbtClientStateButton {
width: 158px;
height: 48px;
- left: 1018px;
+ left: 865px;
top: 418px;
text-align: center;
line-height: 48px;
}
-#tbtClientStateView,
-#VehicleInfo{
+
+#exitApp.exitApp {
+ width: 135px;
+ height: 48px;
+ left: 1043px;
+ top: 418px;
+ text-align: center;
+ line-height: 48px;
+}
+
+#exitAppView,#tbtClientStateView,#VehicleInfo {
opacity: 0;
left: 50px;
width: 700px;
@@ -429,8 +536,9 @@
display: none;
border: 1px solid white;
}
-#tbtClientStateView .tbtClientStateLabel,
-#VehicleInfo .vehicleInfoLabel{
+
+#exitAppView .exitAppViewLabel,#tbtClientStateView .tbtClientStateLabel,#VehicleInfo .vehicleInfoLabel
+ {
top: 10px;
width: 600px;
left: 35px;
@@ -438,13 +546,14 @@
padding: 15px;
background: #393939;
}
-#tbtClientStateView.active,
-#VehicleInfo.active{
+
+#exitAppView.active,#tbtClientStateView.active,#VehicleInfo.active {
opacity: 1;
display: block;
}
-#tbtClientStateView .tbtClientState,
-#VehicleInfo .prndl{
+
+#exitAppView .exitAppViewTitle,#tbtClientStateView .tbtClientState,#VehicleInfo .prndl
+ {
top: 70px;
width: 600px;
left: 40px;
@@ -452,8 +561,9 @@
padding: 10px;
background: #535353;
}
-#tbtClientStateView .tbtClientStateSelect,
-#VehicleInfo .prndlSelect{
+
+#exitAppView .exitAppViewSelect,#tbtClientStateView .tbtClientStateSelect,#VehicleInfo .prndlSelect
+ {
top: 125px;
position: absolute;
width: 150px;
@@ -462,11 +572,13 @@
color: white;
background: #393939;
}
-#tbtClientStateView .tbtClientStateSelect option,
-#VehicleInfo .prndlSelect option{
+
+#exitAppView .exitAppViewSelect option,#tbtClientStateView .tbtClientStateSelect option,#VehicleInfo .prndlSelect option
+ {
background: #393939;
}
-#VehicleInfo .ecu1Title{
+
+#VehicleInfo .ecu1Title {
top: 180px;
width: 600px;
left: 40px;
@@ -474,28 +586,32 @@
padding: 10px;
background: #535353;
}
-#VehicleInfo .ecu1{
+
+#VehicleInfo .ecu1 {
top: 233px;
width: 80px;
left: 65px;
height: 20px;
padding: 10px;
}
-#VehicleInfo .ecu2{
+
+#VehicleInfo .ecu2 {
top: 265px;
width: 80px;
left: 65px;
height: 20px;
padding: 10px;
}
-#VehicleInfo .ecu1Data{
+
+#VehicleInfo .ecu1Data {
top: 233px;
width: 485px;
left: 155px;
height: 20px;
padding: 10px;
}
-#VehicleInfo .ecu2Data{
+
+#VehicleInfo .ecu2Data {
top: 265px;
width: 485px;
left: 155px;
@@ -504,9 +620,8 @@
}
/* Alert, AudioPassThruPopUp popup*/
-#AlertManeuverPopUp.AlertManeuverPopUp,
-#AudioPassThruPopUp.AudioPassThruPopUp,
-#AlertPopUp.AlertPopUp{
+#AudioPassThruPopUp.AudioPassThruPopUp,#AlertPopUp.AlertPopUp
+ {
opacity: 0;
left: 200px;
width: 400px;
@@ -519,9 +634,9 @@
border-radius: 6px;
display: none;
}
-#AlertManeuverPopUp .applicationName,
-#AudioPassThruPopUp .applicationName,
-#AlertPopUp .applicationName{
+
+#AudioPassThruPopUp .applicationName,#AlertPopUp .applicationName
+ {
width: 380px;
left: 10px;
text-align: center;
@@ -530,22 +645,33 @@
overflow: hidden;
text-overflow: ellipsis;
}
-#AlertPopUp .alertPopUpImage{
+
+#AlertPopUp .alertPopUpImage {
width: 83px;
height: 74px;
background: url(../images/sdl/Warning.png) no-repeat;
top: 45px;
left: 10px;
}
-#AudioPassThruPopUp .audioPassThruImage{
+
+#AlertPopUp .progressIndicator {
+ width: 50px;
+ height: 50px;
+ background: url(../images/sdl/progressindicator.gif) no-repeat;
+ top: 0px;
+ background-size: contain;
+ left: 0px;
+}
+
+#AudioPassThruPopUp .audioPassThruImage {
width: 83px;
height: 74px;
background: url(../images/home/controlButtons/vrImage.png) no-repeat;
top: 45px;
left: 25px;
}
-#AudioPassThruPopUp .message1,
-#AlertPopUp .message1{
+
+#AudioPassThruPopUp .message1,#AlertPopUp .message1 {
top: 37px;
left: 105px;
width: 285px;
@@ -556,8 +682,8 @@
overflow: hidden;
text-overflow: ellipsis;
}
-#AudioPassThruPopUp .message2,
-#AlertPopUp .message2{
+
+#AudioPassThruPopUp .message2,#AlertPopUp .message2 {
top: 70px;
left: 105px;
width: 285px;
@@ -568,8 +694,8 @@
overflow: hidden;
text-overflow: ellipsis;
}
-#AudioPassThruPopUp .message3,
-#AlertPopUp .message3{
+
+#AudioPassThruPopUp .message3,#AlertPopUp .message3 {
top: 100px;
left: 105px;
width: 285px;
@@ -580,15 +706,15 @@
overflow: hidden;
text-overflow: ellipsis;
}
-#AlertManeuverPopUp.AlertManeuverActive,
-#AudioPassThruPopUp.AudioPassThruActive,
-#AlertPopUp.AlertActive{
+
+#AudioPassThruPopUp.AudioPassThruActive,#AlertPopUp.AlertActive
+ {
opacity: 1;
display: block;
}
-#AlertManeuverPopUp .softButton,
-#AudioPassThruPopUp .softButton,
-#AlertPopUp .softButton{
+
+#baseNavigation .softButton,#AudioPassThruPopUp .softButton,#AlertPopUp .softButton
+ {
border: 1px solid #393939;
border-radius: 3px;
height: 42px;
@@ -597,73 +723,98 @@
float: left;
margin: 10px;
position: relative;
+ text-overflow: ellipsis;
+ overflow: hidden;
}
-#AlertManeuverPopUp .closeButton{
- width: 170px;
- top: 180px;
- left: 110px;
+
+#baseNavigation .naviOptionsBtn{
+ border: 1px solid #393939;
+ border-radius: 3px;
+ height: 42px;
+ line-height: 42px;
+ text-align: center;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ top: 283px;
+ right: 6px;
+ width: 105px;
+ position: absolute;
}
-#AlertPopUp .alertSoftButtons{
+
+#AlertPopUp .alertSoftButtons {
margin-left: 8px;
top: 120px;
width: 386px;
}
-#AlertManeuverPopUp .one,
-#softButton0.one{
+
+#softButton0.one {
margin-top: 42px;
width: 362px;
}
-#softButton0.two{
+
+#softButton0.two {
margin-top: 42px;
width: 170px;
}
-#softButton1.two{
+
+#softButton1.two {
margin-top: 42px;
width: 170px;
}
-#softButton0.three{
+
+#softButton0.three {
width: 170px;
}
-#AudioPassThruPopUp .buttonDone,
-#softButton1.three{
+
+#AudioPassThruPopUp .buttonDone,#softButton1.three {
width: 170px;
}
-#AudioPassThruPopUp .buttonCancel,
-#softButton2.three{
+
+#AudioPassThruPopUp .buttonCancel,#softButton2.three {
width: 362px;
}
-#softButton0.four{
+
+#softButton0.four {
width: 170px;
}
-#softButton1.four{
+
+#softButton1.four {
width: 170px;
}
-#softButton2.four{
+
+#softButton2.four {
width: 170px;
}
-#softButton3.four{
+
+#softButton3.four {
width: 170px;
}
-#AudioPassThruPopUp .buttonRetry{
+
+#AudioPassThruPopUp .buttonRetry {
top: 120px;
width: 175px;
}
-#AudioPassThruPopUp .buttonDone{
+
+#AudioPassThruPopUp .buttonDone {
top: 120px;
width: 175px;
}
-#AudioPassThruPopUp .buttonCancel{
+
+#AudioPassThruPopUp .buttonCancel {
top: 120px;
width: 372px;
}
-#info_leftMenu_sdl{
+
+#info_leftMenu_sdl {
font-size: 18px;
line-height: 48px;
}
-#info_leftMenu_sdl img{
+
+#info_leftMenu_sdl img {
float: left;
}
-#info_leftMenu_sdl span{
+
+#info_leftMenu_sdl span {
float: left;
position: relative;
width: 100px;
@@ -673,18 +824,25 @@
}
/* TurnByTurnView */
-#TurnByTurnView.TurnByTurnView{
+#TurnByTurnView.TurnByTurnView {
top: 48px;
height: 384px;
left: 153px;
width: 647px;
+ background: none;
}
-#TurnByTurnView .caption-text{
+
+#TurnByTurnView .caption-text {
left: 5px;
width: 607px;
top: 15px;
}
-#TurnByTurnView .totalDistanceLabel{
+
+#TurnByTurnView .label {
+ overflow: hidden;
+}
+
+#TurnByTurnView .totalDistanceLabel {
height: 20px;
background: #393939;
padding: 15px;
@@ -692,7 +850,8 @@
top: 80px;
width: 170px;
}
-#TurnByTurnView .etaLabel{
+
+#TurnByTurnView .etaLabel {
height: 20px;
background: #393939;
padding: 15px;
@@ -700,79 +859,131 @@
top: 80px;
width: 170px;
}
-#TurnByTurnView .turnList{
+
+#TurnByTurnView .turnList {
left: 5px;
top: 145px;
width: 379px;
padding: 10px;
text-align: center;
}
-#TurnByTurnView .ffw_list_menu{
+
+#TurnByTurnView .ffw_list_menu {
height: 198px;
top: 200px;
left: 5px;
width: 401px;
border: none;
}
-#TurnByTurnView .ffw-button{
+
+#TurnByTurnView .ffw-button {
border-radius: 3px;
border: 1px solid #393939;
margin-bottom: 5px;
text-align: center;
font-size: 20px;
}
-#turnList img{
- margin-top: -10px;
+
+
+#TurnByTurnView .ffw-button .text {
+ margin: auto;
+}
+
+#TurnByTurnView .turnList .arrow-ico {
+ margin-top: -13px;
+}
+
+#turnList img {
+ margin-top: -10px;
}
-#TurnByTurnView .homeScreen{
+
+#TurnByTurnView .homeScreen {
left: 440px;
top: 312px;
padding: 0 0 0 5px;
width: 195px;
}
-#TurnByTurnView .homeScreen > img{
+
+#TurnByTurnView .homeScreen span {
+ width: 140px;
+}
+
+#TurnByTurnView .homeScreen>img {
float: left;
width: 50px;
height: 50px;
}
-#TurnByTurnView .homeScreen > span{
+
+#TurnByTurnView .homeScreen>span {
float: left;
line-height: 50px;
padding-left: 5px;
}
-#TurnByTurnView .navigationText2{
+
+#TurnByTurnView .navigationText2 {
left: 440px;
- top: 269px;
+ top: 268px;
width: 182px;
padding: 10px;
height: 20px;
background: #393939;
}
-#TurnByTurnView .turnIcon{
- border: 1px solid #222;
- top: 64px;
- left: 440px;
- width: 200px;
- height: 200px;
- background-size: contain;
- background-repeat: no-repeat;
+
+#TurnByTurnView .turnIcon,
+#TurnByTurnView .nextTurnIcon {
+ border: 1px solid #222;
+ left: 540px;
+ width: 100px;
+ height: 100px;
+ background-size: contain;
+ background-repeat: no-repeat;
+}
+
+#TurnByTurnView .distanceToManeuver{
+ top: 80px;
+ left: 419px;
+ background: #393939;
+ padding: 15px;
+}
+
+#TurnByTurnView .distanceToManeuverScale{
+ top: 144px;
+ left: 419px;
+ background: #393939;
+ padding: 15px;
+}
+
+#TurnByTurnView .timeToDestination{
+ top: 207px;
+ left: 419px;
+ background: #393939;
+ padding: 15px;
}
-#tbtTurnListList .list-content .label > img{
+#TurnByTurnView .turnIcon {
+ top: 65px;
+}
+
+#TurnByTurnView .nextTurnIcon {
+ top: 166px;
+}
+
+#tbtTurnListList .list-content .label>img {
width: 50px;
height: 50px;
float: left;
}
-#info_apps_list .ffw-button{
+
+#info_apps_list .ffw-button {
overflow: hidden;
text-overflow: ellipsis;
}
-#sdl_view_container{
- z-index:501;
+#sdl_view_container {
+ z-index: 501;
}
-#sdl_view_container .title{
+#sdl_view_container .title {
top: 79px;
font-size: 38px;
left: 7px;
@@ -780,7 +991,7 @@
height: 44px;
}
-#sdl_view_container .album{
+#sdl_view_container .album {
top: 123px;
font-size: 26px;
left: 10px;
@@ -788,7 +999,7 @@
height: 32px;
}
-#sdl_view_container .artist{
+#sdl_view_container .artist {
top: 155px;
font-size: 26px;
left: 10px;
@@ -796,13 +1007,13 @@
height: 32px;
}
-#sdl_view_container .player_controlls{
+#sdl_view_container .player_controlls {
top: 292px;
left: 165px;
}
/* SDL Slider*/
-#media_sdl_slider_view{
+#media_sdl_slider_view {
width: 800px;
height: 480px;
z-index: 1000;
@@ -817,7 +1028,7 @@
border-radius: 2px;
}
-#media_sdl_slider_view .initialText{
+#media_sdl_slider_view .initialText {
top: 80px;
left: 75px;
width: 620px;
@@ -827,7 +1038,7 @@
}
/* SDL Perform Interaction Choise */
-#media_app_perform_interaction_view{
+#media_app_perform_interaction_view {
width: 800px;
height: 480px;
z-index: 1000;
@@ -842,7 +1053,7 @@
border-radius: 2px;
}
-#media_app_perform_interaction_view .list{
+#media_app_perform_interaction_view .list {
position: absolute;
width: 629px;
height: 251px;
@@ -851,7 +1062,7 @@
top: 154px;
}
-#media_app_perform_interaction_view .initialText{
+#media_app_perform_interaction_view .initialText {
top: 80px;
left: 75px;
width: 620px;
@@ -860,12 +1071,12 @@
padding: 15px;
}
-#media_app_perform_interaction_view .list-content{
+#media_app_perform_interaction_view .list-content {
width: 578px;
}
/* SDL Media Options */
-#media_app_options_view{
+#media_app_options_view {
width: 800px;
height: 480px;
z-index: 2002;
@@ -880,7 +1091,7 @@
border-radius: 2px;
}
-#media_app_options_view .list{
+#media_app_options_view .list {
position: absolute;
width: 650px;
height: 251px;
@@ -889,7 +1100,7 @@
top: 154px;
}
-#media_app_options_view .optionsLabel{
+#media_app_options_view .optionsLabel {
top: 80px;
left: 75px;
width: 620px;
@@ -898,6 +1109,6 @@
padding: 15px;
}
-#media_app_options_view .list-content{
+#media_app_options_view .list-content {
width: 578px;
} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/css/settings.css b/SDL_Core/src/components/HMI/css/settings.css
deleted file mode 100755
index a4129dba7..000000000
--- a/SDL_Core/src/components/HMI/css/settings.css
+++ /dev/null
@@ -1,3423 +0,0 @@
-/** Settings General*/
-#content {
- top: 59px;
- left: 5px;
-}
-
-.inner-content {
- left: 100px;
- top: 60px;
-}
-
-.inner-wrapper {
- left: 100px;
- top: 60px;
-}
-
-.label-20 {
- font-size: 20px;
- line-height: 22px;
-}
-
-.btn-28 {
- background: url(../images/settings/btn-28h.png) repeat-x;
- height: 28px;
- line-height: 29px;
-}
-
-.btn-left-c {
- background: url(../images/settings/center-button.png) no-repeat -1px 0;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
- -webkit-border-top-left-radius: 3px;
- -webkit-border-bottom-left-radius: 3px;
- -moz-border-radius-topleft: 3px;
- -moz-border-radius-bottomleft: 3px;
- border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-
-.btn {
- font-size: 20px;
- line-height: 28px;
- cursor: pointer;
- border: 1px solid #393939;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
-}
-
-.disabled {
- cursor: default !important;
-}
-
-#settings_view .disabled .right-icon{
- opacity: 0.3;
-}
-
-.btn-28.active {
- background: url(../images/settings/btn-48h-active.png) repeat-x !important;
- cursor: default;
-}
-
-.btn-48 {
- background: url(../images/settings/btn-48h.png) repeat-x;
- height: 48px;
- line-height: 49px;
-}
-
-.btn.disabled {
- color: #6E6E6E;
-f
-}
-
-.btn-98 {
- background: url(../images/settings/btn-98h.png) repeat-x;
- height: 98px;
-}
-
-.scroll {
- position: relative;
- border: 1px solid #393939;
- height: 300px;
- width: 48px;
- left: 580px;
-}
-
-.scroll_up {
- width: 50px;
- height: 51px;
- background: url("../images/settings/scroll_up.png") no-repeat;
- top: -1px;
- left: -1px;
- cursor: pointer;
-}
-
-.scroll_up_inactive {
- background: url("../images/settings/scroll_up_inactive.png") no-repeat !important;
-}
-
-.scroll_down_inactive {
- background: url("../images/settings/scroll_down_inactive.png") no-repeat !important;
-}
-
-.scroll_down {
- width: 50px;
- height: 51px;
- background: url("../images/settings/scroll_down.png") no-repeat;
- bottom: -1px;
- left: -1px;
- cursor: pointer;
-}
-
-.scroll_body {
- width: 46px;
- height: 200px;
- background: #262626;
- top: 50px;
- left: 1px;
-}
-
-.scroll_knob {
- width: 46px;
- top: 50px;
- left: 1px;
- background: #464646;
-}
-
-.text-block {
- border: 1px solid #393939;
- font-size: 20px;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- border-radius: 3px;
-}
-
-.text-block-500 {
- width: 476px;
- padding: 13px 11px;
-}
-
-.backButton {
- width: 48px;
- height: 48px;
- border: 1px solid #333;
- border-radius: 2px;
- float: left;
- margin-left: 5px;
- z-index: 1;
-}
-
-.backButton .ico {
- margin-top: 13px;
- margin-left: 8px;
- cursor: pointer;
-}
-
-.voiceButton {
- top: 59px;
- right: 5px;
- width: 48px;
- height: 48px;
- border: 1px solid #333;
- border-radius: 2px;
-}
-
-.block-header-title {
- font-size: 26px;
- width: 550px;
- top: 10px;
- left: 75px;
-}
-
-/******************* ToggleLabelButton********************/
-
-.toogleButtonContainer {
- position: relative;
- width: 198px;
- height: 28px;
- border: 1px solid #393939;
- border-radius: 2px;
- float: right;
- margin-top: 10px;
- margin-right: 10px;
-}
-
-.toogleButtonContainer .toggles{
- position: relative;
- float: left;
- width: 98px;
- height: 28px;
-}
-
-.toogleButtonContainer span{
- position: relative;
- float: left;
- width: 100%;
- margin-top: 1px;
- text-align: center;
- line-height: 28px;
-}
-
-.toogleButtonContainer .delim{
- position: relative;
- float: left;
- border: #393939 1px solid;
- height: 26px;
- width: 0px;
-}
-
-.lableToggleButton.wideDoubleToggle .toogleButtonContainer,
-.lableToggleButton.tripleToggle .toogleButtonContainer{
- width: 298px;
-}
-
-.lableToggleButton.wideDoubleToggle .delim{
- position: relative;
- float: left;
- background-color: #393939;
- height: 26px;
- width: 0px;
-}
-
-.lableToggleButton.wideDoubleToggle .toggles{
- width: 148px;
-}
-
-#settings_view .toogleButtonContainer .active {
- background: url(../images/settings/btn-28h-gray-active.png) repeat-x !important;
-}
-
-#settings_view.help-mode .toogleButtonContainer .active {
- background: none !important;
-}
-
-#settings_view.help-mode .toogleButtonContainer {
- border: none !important;
-}
-
-/******************* For Help Mode *******************/
-.help-mode .btn-28,
-.help-mode .button span,
-.help-mode .label-20,
-.btn .help-mode,
-.help-mode .title,
-.help-mode .text,
-.help-mode .text-block-500,
-.help-mode .list-item span,
-.help-mode .lableToggleButton .lableToggle,
-.help-mode .block-header-title,
-.help-mode .label {
- color: transparent !important;
- text-shadow: 0 0 3px #FFF; !important;
-
-}
-
-.help-mode .btn-28,
-.help-mode .button span,
-.help-mode .text-block-500,
-.help-mode .btn-98,
-.help-mode .btn-48,
-.help-mode .toggles,y
-.help-mode .toogleButtonContainer,
-.help-mode .toogleButtonContainer .delim,
-.help-mode .lablePlusButton .button {
- border: none !important;
- background: none !important;
-}
-
-.help-mode .list-item,
-.help-mode .list,
-.help-mode .list-content{
- background: none !important;
- float: left;
- border: none !important;
- color: transparent !important;
- text-shadow: 0 0 3px #FFF !important;
-}
-
-.help-mode .list-item .ico{
- border: 1px solid #000;
-}
-
-.help-mode .list-item {
- height: 50px !important;
-}
-
-
-_list .list-item,
-.helpmode #settings_settings_mediaPlayer .list-item,
-.helpmode #settings_help_systemInformation_list .list-item {
- left: 1px !important;
- top: 1px !important;
-}
-
-.helpmode #settings_vehicle_list .list-item,
-.helpmode #settings_settings_list .list-item,
-.helpmode #settings_help_list_left .list-item,
-.helpmode #settings_help_list_right .list-item {
- top: 1px !important;
- left: -1px !important;
-}
-
-.help-mode .lableToggle{
- margin-top: 1px !important;
- margin-left: 1px !important;
-}
-
-.help-mode .toogleButtonContainer span{
- margin-top: 3px !important;
- margin-left: 1px !important;
-}
-
-.help-mode .button1 span{
- margin-left: 2px !important;
-}
-
-.help-mode .button2 span{
- margin-left: 3px !important;
-}
-
-.help-mode .lablePlusButton{
- left: 1px !important;
- top: 1px !important;
-}
-
-.help-mode .list-item img {
- opacity: 0 !important;
-}
-
-#settings_view.help-mode .sb-content {
- opacity: 0;
-}
-
-/******************* For Settings Menu *******************/
-#ctrl_settings_menu {
- z-index: 1000;
- position: absolute;
- top: 90px;
- left: 0px;
- width: 150px;
- height: 300px;
-}
-
-#ctrl_settings_menu .ls_border {
- z-index: 201;
- position: absolute;
- top: -3px;
- left: 0px;
- width: 153px;
- height: 306px;
-}
-
-#ctrl_settings_menu .ls-items {
- position: relative;
- width: 150px;
- height: 300px;
-}
-
-#ctrl_settings_menu .ls-item {
- z-index: 201;
- position: relative;
- width: 150px;
- height: 50px;
- cursor: pointer;
-}
-
-#ctrl_settings_menu .ls-item > .bg {
- z-index: 201;
- position: absolute;
- top: 0px;
- left: 0px;
- width: 150px;
- height: 50px;
-}
-
-#ctrl_settings_menu .ls-item > .ico {
- z-index: 299;
- position: absolute;
- width: 50px;
- height: 50px;
- left: 0px;
- top: 0px;
-}
-
-#ctrl_settings_menu .lsp1_p {
- background: url("../images/settings/ls-item_bg.png") repeat-x;
-}
-
-#ctrl_settings_menu .settings_active {
- background: url("../images/settings/menu_active.png") repeat-x;
-}
-
-#ctrl_settings_menu .ls-item > .ico.more {
- left: 50px;
-}
-
-#ctrl_settings_menu .ls-item p {
- z-index: 298;
- position: absolute;
- left: 50px;
- width: 100px;
- height: 50px;
- font-size: 20px;
- line-height: 50px;
- white-space: nowrap;
- overflow: hidden;
-}
-
-#ctrl_settings_menu .ls-item > .led {
- z-index: 299;
- position: absolute;
- top: 0px;
- right: 8px;
- width: 24px;
- height: 50px;
-}
-
-#ctrl_settings_menu .ls-item.empty {
- background: #333333;
-}
-
-#ctrl_settings_menu .firts_item {
- -webkit-border-top-right-radius: 3px;
- border-top-right-radius: 3px;
-}
-
-#ctrl_settings_menu .last_item {
- -webkit-border-bottom-right-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-
-#ctrl_settings_menu .phone_active {
- background: url("../images/phone/menu_active.png") repeat-x !important;
-}
-
-#ctrl_settings_menu .navigation {
- width: 26px;
- height: 25px;
- background: url("../images/phone/ico_navigation.png") no-repeat;
- left: 60px;
- top: 10px;
-}
-
-/******************* For Settings.Clock *******************/
-#settings_clock {
- position: absolute;
- top: 90px;
- left: 160px;
- height: 305px;
- width: 640px;
- float: left;
-}
-
-#settings_clock .clockPanel {
- position: relative;
- margin-left: 5px;
- top: 5px;
- float: left;
- width: 570px;
-}
-
-#settings_clock .leftPlusButton {
- position: relative;
- width: 98px;
- height: 43px;
- float: left;
- border: 1px solid #393939;
- border-top-left-radius: 3px;
-}
-
-#settings_clock .leftPlusButton .ico, #settings_clock .rightPlusButton .ico {
- position: relative;
- margin-left: 37px;
- margin-top: 10px;
- float: left;
-}
-
-#settings_clock .leftMinusButton {
- position: relative;
- margin-top: 45px;
- margin-left: -100px;
- width: 98px;
- height: 44px;
- border: 1px solid #393939;
- border-top: none;
- border-bottom-left-radius: 3px;
- float: left;
-}
-
-#settings_clock .leftMinusButton .ico, #settings_clock .rightMinusButton .ico {
- position: relative;
- margin-left: 37px;
- margin-top: 20px;
- float: left;
-}
-
-#settings_clock .timeNum {
- position: relative;
- margin-left: 0px;
- margin-top: 0px;
- width: 265px;
- height: 88px;
- border-top: 1px solid #393939;
- border-bottom: 1px solid #393939;
- float: left;
- color: #999;
-}
-
-#settings_clock .timeNum .time {
- position: relative;
- margin-left: 78px;
- margin-top: 0px;
- width: 112px;
- height: 44px;
- font-size: 59px;
- float: left;
-}
-
-#settings_clock .timeNum .timeZone {
- position: relative;
- margin-left: 78px;
- margin-top: 13px;
- width: 180px;
- height: 46px;
- font-size: 18px;
- font-weight: bold;
- float: left;
-}
-
-#settings_clock .rightPlusButton {
- position: relative;
- width: 98px;
- height: 43px;
- float: left;
- border: 1px solid #393939;
- border-top-right-radius: 3px;
-}
-
-#settings_clock .rightMinusButton {
- position: relative;
- margin-top: 45px;
- margin-left: -100px;
- width: 98px;
- height: 44px;
- border: 1px solid #393939;
- border-bottom-right-radius: 3px;
- border-top: none;
- float: left;
-}
-
-#settings_clock .am {
- position: relative;
- margin-left: 5px;
- float: left;
- width: 98px;
- height: 43px;
- border: 1px solid #333;
- border-top-left-radius: 3px;
- border-top-right-radius: 3px;
- font-size: 20px;
- font-weight: bold;
-}
-
-#settings_clock .pm {
- position: relative;
- margin-left: 5px;
- float: left;
- width: 98px;
- height: 44px;
- border: 1px solid #333;
- border-top: none;
- border-bottom-left-radius: 3px;
- border-bottom-right-radius: 3px;
- font-size: 20px;
- font-weight: bold;
-}
-
-#settings_clock .am span {
- position: relative;
- top: 10px;
- margin-left: 33px;
-}
-
-#settings_clock .pm span {
- position: relative;
- top: 10px;
- margin-left: 33px;
-}
-
-#settings_clock .am.pressed, #settings_clock .pm.pressed {
- background: url(../images/settings/menu_active.png);
-}
-
-#settings_clock_list {
- margin-top: 100px;
- margin-left: 5px
-}
-
-/* Settings.clock lisr wraper */
-#settings_clock .list {
- position: absolute;
- width: 629px;
- height: 201px;
- border-radius: 2px;
-}
-
-/* Settings.clock list item */
-#settings_clock .list-item {
- position: relative;
- width: 568px;
- float: left;
- background: #000;
- height: 49px;
- border-bottom: 1px solid #393939;
-}
-
-/* Settings.clock list */
-#settings_clock .list-content {
- width: 568px;
-}
-
-/* Settings.clock list label */
-#settings_clock .list-item > span,
-#settings_clock .lableToggle {
- margin-left: 15px;
- width: 300px;
- float: left;
-}
-
-#settings_clock .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
- opacity: 0.3;
-}
-
-#settings_view .toogleButtonContainer.doubletoggle{
- width: 198px;
-}
-
-.helpmode #settings_clock {
- background-image: url(../images/settings/settings_clock_bg_help.png)!important;
- background-repeat: no-repeat;
- background-position: 0px 0px;
-
-}
-
-.helpmode #settings_clock .list-item {
- height: 50px !important;
-}
-
-.helpmode #settings_clock .lableToggle {
- margin-left: 15px !important;
- margin-top: 0px !important;
-}
-
-.helpmode #settings_clock .toogleButtonContainer span {
- margin-top: 1px !important;
- margin-left: 0px !important;
-}
-
-.helpmode #settings_clock .toogleButtonContainer {
- border: none !important;
- padding: 1px;
-}
-
-.helpmode #settings_clock .toogleButtonContainer .delim {
- width:2px;
-}
-.helpmode #settings_clock .list {
- margin-top: 101px;
- margin-left: 6px;
-}
-
-.helpmode #settings_clock .ico {
- opacity: 0;
-}
-
-.helpmode #settings_clock .time,
-.helpmode #settings_clock .timeZone,
-.helpmode #settings_clock .timeNum,
-.helpmode #settings_clock .am span,
-.helpmode #settings_clock .pm span{
- color: transparent !important;
- text-shadow: 0 0 3px #999 !important;
- background-image: none !important;
- border: none !important;
-}
-
-.helpmode #settings_clock .button, .helpmode #settings_clock .button {
- background: none !important;
- border: none !important;
-}
-
-#settings_clock.help-mode .leftPlusButton{
- top: 1px !important;
- left: 2px !important;
-}
-
-.helpmode #settings_clock .timeNum {
- top: 1px !important;
- left: 2px !important;
-}
-
-.helpmode #settings_clock .am {
- top: 1px !important;
- left: 5px !important;
-}
-
-.helpmode #settings_clock .pm {
- top: 2px !important;
- left: 7px !important;
-}
-
-
-
-/******************* For Settings.Display Menu *******************/
-#settings_display {
- background: url(../images/settings/view_settings_display_bg.png) no-repeat;
- height: 260px;
- width: 640px;
- left: 160px;
- top: 81px;
-}
-
-#settings_display .inner-wrapper {
- top: 65px;
- left: 100px;
-}
-
-#options_left_menu {
- left: -46px;
- top: -30px;
-}
-
-.settings_font {
- font-size: 20px;
-}
-
-#gang_buttons div, #end p, .rs-item > p, .br-list-item > p, .br-list-item > p.numbers, .bcs-item > span, .bc-item2 > span, #home_usb .usb_time, #keypad .words, .channel, .equalizer.subsubtitle, .intive_btn, .info-text {
- color: #999;
-}
-
-#options_left_clock {
- top: 16px;
-}
-
-#options_left_display {
- top: 66px;
-}
-
-#options_left_sound {
- top: 116px;
-}
-
-#options_left_vehicle {
- top: 166px;
-}
-
-#options_left_settings {
- top: 216px;
-}
-
-#options_left_help {
- top: 265px;
-}
-
-#settings_display .brightness {
- left: -80px;
- top: -45px;
-}
-
-#settings_display .auto-dim {
- left: -80px;
- top: 5px;
- width: 300px;
-}
-
-#settings_display .mode {
- left: -80px;
- top: 55px;
-}
-
-#settings_display .edit-wallpaper {
- left: -80px;
- top: 105px;
- width: 580px;
-}
-
-#settings_display .auto-dim-manual-offset {
- left: -80px;
- top: 156px;
- width: 240px;
-}
-
-#settings_display .auto-dim-on {
- width: 99px;
- text-align: center;
- left: 404px;
- top: -3px;
-}
-
-#settings_display .auto-dim-off {
- width: 99px;
- text-align: center;
- left: 504px;
- top: -3px;
-}
-
-#settings_display .auto {
- width: 99px;
- text-align: center;
- left: 304px;
- top: -3px;
-}
-
-#settings_display .day {
- width: 99px;
- text-align: center;
- left: 404px;
- top: -3px;
-}
-
-#settings_display .night {
- width: 99px;
- text-align: center;
- left: 504px;
- top: -3px;
-}
-
-#settings_display .active {
- background: url(../images/settings/btn-28h-gray-active.png) repeat-x !important;
-}
-
-.help-mode .auto-dim-on,
-.help-mode .auto-dim-off,
-.help-mode #settings_display .auto,
-.help-mode #settings_display .day,
-.help-mode #settings_display .night{
- line-height: 30px;
-}
-
-.help-mode #settings_display {
- background: url(../images/settings/view_settings_display_bg_help.png) no-repeat !important;
-}
-
-.help-mode #settings_display .label-20,
-.help-mode #settings_display .btn-28{
- color: transparent !important;
- text-shadow: 0 0 3px #999; !important;
-}
-
-/******************* For Settings.Sound Menu *******************/
-#settings_sound_view {
- height: 384px;
- width: 647px;
- left: 153px;
- top: 48px;
- z-index: 1001;
-}
-
-#settings_sound_list{
- top: 42px;
- left: 12px;
- height: 251px;
- width: 630px;
-}
-
-#settings_sound_list .list-content{
- height: 391px;
- width: 570px;
-}
-
-#settings_sound_list .list-item > span,
-#settings_sound_list .lableToggle > span
-{
- margin-left: 13px;
-}
-
-#settings_sound_list_item5 .toogleButtonContainer{
- width: 242px;
-}
-
-#settings_sound_list_item5 .toggles,
-#settings_sound_list_item5 .toggles span{
- width: 120px;
-}
-
-#settings_sound_list_item6 {
- height: 90px;
-}
-
-#settings_sound_list_item6 .toogleButtonContainer{
- width: 334px;
- height: 100px;
- border: none;
-}
-
-#settings_sound_list_item6 .lableToggle{
- margin-top: 10px;
- margin-left: 10px;
- width: 199px;
- height: 100px;
- line-height: 20px;
-}
-
-#settings_sound_list_item6 span{
- margin-left: 0px !important;
-}
-
-#settings_sound_list_item6 .toggles span{
- width: 80px;
-}
-
-#settings_sound_list_item6 .toggles{
- border-top: 1px solid #393939;
- border-bottom: 1px solid #393939;
- margin-bottom: 10px;
- width: 80px;
-}
-
-#settings_sound_list_item6 .toogleButtonContainer .delim{
- height: 28px;
-}
-
-#settings_sound_list_item6 .delim-3{
- display: none;
-}
-
-#settings_sound_list_item6 .button3,
-#settings_sound_list_item6 .button7{
- border-right: 1px solid #393939;
-}
-
-#settings_sound_list_item6 .button0,
-#settings_sound_list_item6 .button4{
- border-left: 1px solid #393939;
-}
-
-#settings_sound_list .list-item .ico {
- margin-right: 1px;
- float: right;
-}
-
-#settings_sound_list .scrollbar .disabled .ico{
- opacity: 0.3;
-}
-
-#settings_sound_list .disabled .ico{
- opacity: 1;
-}
-
-.helpmode #settings_sound_view .list-content{
- padding: 1px 0 0 1px;
-}
-
-.helpmode #settings_sound_view {
- background: url(../images/settings/settings_sound_bg_help.png) no-repeat;
-}
-
-/******************* For Settings.Sound.SetBalanceAndFadeView *******************/
-#settings_sound_soundBalanceFade {
- top: 0px;
- left: -153px;
- background-image: url(../images/settings/view_settings_Sound_BalanceFader.png);
- background-repeat: no-repeat;
- background-position: 158px -10px;
- background-color: #000;
- width: 800px;
- height: 384px;
- z-index: 1011;
-}
-
-#settings_sound_soundBalanceFade .backButton {
- top: 11px;
-}
-
-#settings_sound_soundBalanceFade .block-header-title {
- top: 21px;
-}
-
-#settings_sound_soundBalanceFade .inner-wrapper {
- left: 100px;
- top: 71px;
-}
-
-#settings_sound_soundBalanceFade .fade {
- top: -2px;
- left: 82px;
-}
-
-#settings_sound_soundBalanceFade.fr .fade {
- top: -4px;
- left: 77px;
- font-size: 16px;
- width: 89px;
- line-height: 13px;
-}
-
-#settings_sound_soundBalanceFade .balance {
- top: 261px;
- left: 82px;
-}
-
-#settings_sound_soundBalanceFade.fr .balance {
- top: 259px;
- left: 77px;
- font-size: 16px;
- width: 96px;
- line-height: 13px;
-}
-
-#settings_sound_soundBalanceFade .f {
- top: -2px;
- left: 190px;
-}
-
-#settings_sound_soundBalanceFade .z1 {
- top: 100px;
- left: 190px;
-}
-
-#settings_sound_soundBalanceFade .b {
- top: 202px;
- left: 190px;
-}
-
-#settings_sound_soundBalanceFade .l {
- top: 259px;
- left: 235px;
-}
-
-#settings_sound_soundBalanceFade .z2 {
- top: 260px;
- left: 336px;
-}
-
-#settings_sound_soundBalanceFade .r {
- top: 260px;
- left: 434px;
-}
-
-.help-mode #settings_sound_soundBalanceFade {
- background-image: url(../images/settings/view_settings_Sound_BalanceFader-help.png);
-}
-
-/******************* For Settings.Vehicle Menu*******************/
-#settings_vehicle {
- width: 640px;
- height: 480px;
- left: 160px;
- z-index: 1001;
-}
-
-.help-mode #settings_vehicle {
- background-image: url(../images/settings/settings_vehicle_help.png);
- background-repeat: no-repeat;
- background-position-y: 85px;
-}
-
-#settings_vehicle_list{
- top: 90px;
- left: 5px;
-}
-
-#settings_vehiclet {
- height: 250px;
- position: relative;
- float: left;
- margin-top: 5px;
- width: 554px;
-}
-
-
-#settings_vehicle .list {
- width: 630px;
- height: 301px;
-}
-
-#settings_vehicle_list .list-item .ico{
- width: 50px;
- height: 50px;
-}
-
-#settings_vehicle_list .list-content {
- width: 630px;
- border-left: none;
- border-right: none;
-}
-
-#settings_vehicle .list-item {
- position: relative;
- width: 628px;
- height: 49px;
- font-size: 20px;
- line-height: 50px;
- border-bottom: 1px solid #393939;
- border-left: 1px solid #393939;
- border-right: 1px solid #393939;
-}
-
-#settings_vehicle .list-item .arrow-ico {
- right: 8px;
-}
-
-#settings_vehicle .list-item .ico {
- float: left;
-}
-
-#settings_vehicle .list-item span {
- height: 23px;
-}
-
-#settings_vehicle .backButton {
- margin-top: 11px;
-}
-
-#settings_vehicle_HealthReport .backButton {
- margin-top: 11px;
-}
-
-#settings_vehicle_HealthReport .block-header-title {
- margin-top: 11px;
-}
-
-#settings_vehicle .block-header-title {
- margin-top: 11px;
-}
-
-#settings_vehicle_HealthReport .inner-wrapper {
- left: 100px;
- top: 71px;
-}
-
-#settings_vehicle .inner-wrapper {
- left: 100px;
- top: 71px;
-}
-
-/******************* For Settings.Vehicle.AmbientLighting Menu*******************/
-
-#settings_vehicle_ambientLighting {
- top: 48px;
- left: -160px;
- /*top: 48px;*/
- width: 800px;
- height: 384px;
- background-image: url(../images/settings/settings_vehicle_amberLight_bg.png);
- background-color: #000;
- z-index: 1001;
-}
-
-#settings_vehicle_ambientLighting.help-mode {
- background-image: url(../images/settings/settings_vehicle_amberLight_bg-help.png) !important;
-}
-
-/******************* For Settings.Vehicle.HealthReport Menu*******************/
-
-#settings_vehicle_HealthReport {
- top: 48px;
- left: -160px;
- width: 800px;
- height: 384px;
- background-image: url(../images/settings/view_settings_vehicle_VehicleHealthReport.png);
- background-repeat: no-repeat;
- background-position: 55px 82px;
- background-color: #000;
- z-index: 1001;
-}
-
-#settings_vehicle_HealthReport .ar {
- white-space: nowrap;
- top: 35px;
- left: -20px;
-}
-
-#settings_vehicle_HealthReport .mi {
- white-space: nowrap;
- left: -20px;
- top: 84px;
-}
-
-#settings_vehicle_HealthReport .ar_on {
- top: 36px;
- left: 401px;
- width: 99px;
- text-align: center;
- white-space: nowrap;
-}
-
-#settings_vehicle_HealthReport .ar_off {
- top: 36px;
- left: 501px;
- width: 98px;
- text-align: center;
- white-space: nowrap;
-}
-
-#settings_vehicle_HealthReport .ar_q {
- white-space: nowrap;
- left: 635px;
- top: 36px;
-}
-
-#settings_vehicle_HealthReport .mi_5000 {
- white-space: nowrap;
- left: 329px;
- top: 85px;
-}
-
-#settings_vehicle_HealthReport .mi_7500 {
- white-space: nowrap;
- left: 428px;
- top: 85px;
-}
-
-#settings_vehicle_HealthReport .mi_10000 {
- white-space: nowrap;
- left: 523px;
- top: 85px;
-}
-
-#settings_vehicle_HealthReport .mi_q {
- white-space: nowrap;
- left: 634px;
- top: 85px;
-}
-
-#settings_vehicle_HealthReport .mi_rv {
- left: 146px;
- top: 139px;
- width: 308px;
- white-space: nowrap;
- text-align: center;
-}
-
-#settings_vehicle_HealthReport .mi_tc {
- white-space: nowrap;
- left: 119px;
- top: 185px;
- font-size: 18px;
-}
-
-.help-mode #settings_vehicle_HealthReport {
- background-image: url(../images/settings/view_settings_vehicle_VehicleHealthReport-help.png);
-}
-
-.help-mode #settings_vehicle_HealthReport .inner-wrapper div {
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Vehicle.Door Keypad Code Menu*******************/
-#settings_vehicle_DoorKeypadCode {
- top: 48px;
- left: -160px;
- width: 800px;
- height: 384px;
- background-image: url(../images/settings/view_settings_vehicle_DoorKeypadCode.png);
- background-repeat: no-repeat;
- background-position: 110px 181px;
- background-color: #000;
- z-index: 1001;
-}
-
-.help-mode #settings_vehicle_DoorKeypadCode {
- background-image: url(../images/settings/view_settings_vehicle_DoorKeypadCode-help.png);
-}
-
-#settings_vehicle_DoorKeypadCode .factory {
- left: -27px;
- top: 28px;
- font-size: 26px;
- width: 635px;
- line-height: 32px;
-}
-
-#settings_vehicle_DoorKeypadCode .digit {
- right: -289px;
- top: 136px;
- white-space: nowrap;
-}
-
-#settings_vehicle_DoorKeypadCode .b1 {
- left: 62px;
- top: 199px;
- white-space: nowrap;
-}
-
-#settings_vehicle_DoorKeypadCode .b2 {
- left: 162px;
- top: 199px;
- white-space: nowrap;
-}
-
-#settings_vehicle_DoorKeypadCode .b3 {
- left: 262px;
- top: 199px;
- white-space: nowrap;
-}
-
-#settings_vehicle_DoorKeypadCode .b4 {
- left: 362px;
- top: 199px;
- white-space: nowrap;
-}
-
-#settings_vehicle_DoorKeypadCode .b5 {
- left: 462px;
- top: 199px;
- white-space: nowrap;
-}
-
-#settings_vehicle_DoorKeypadCode .enter {
- left: 592px;
- top: 199px;
- white-space: nowrap;
-}
-
-.help-mode #settings_vehicle_DoorKeypadCode .inner-wrapper div {
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Vehicle.Rear View Camera*******************/
-#settings_vehicle_RearCamera {
- top: 48px;
- left: -160px;
- width: 800px;
- height: 384px;
- background-image: url(../images/settings/view_settings_vehicle_RearViewCamera.png);
- background-repeat: no-repeat;
- background-position: 66px 61px;
- background-color: #000;
- z-index: 1001;
-}
-
-#view_settings_vehicle_RearViewCamera .preview {
- top: 147px;
- left: 90px;
-}
-
-#settings_vehicle_RearCamera .rcd {
- top: 12px;
- left: -10px;
- white-space: nowrap;
-}
-
-#settings_vehicle_RearCamera .visualPark {
- top: 60px;
- left: -10px;
- white-space: nowrap;
-}
-
-#settings_vehicle_RearCamera .guidelines {
- top: 108px;
- left: -10px;
- white-space: nowrap;
-}
-
-#settings_vehicle_RearCamera .on1 {
- top: 11px;
- left: 292px;
- width: 148px;
- text-align: center;
- white-space: nowrap;
-}
-
-#settings_vehicle_RearCamera .off1 {
- top: 11px;
- left: 441px;
- width: 149px;
- text-align: center;
- white-space: nowrap;
-}
-
-#settings_vehicle_RearCamera .on2 {
- top: 61px;
- left: 292px;
- width: 148px;
- text-align: center;
- white-space: nowrap;
-}
-
-#settings_vehicle_RearCamera .off2 {
- top: 61px;
- left: 441px;
- width: 149px;
- text-align: center;
- white-space: nowrap;
-}
-
-
-#settings_vehicle_RearCamera .on3 {
- top: 109px;
- left: 292px;
- width: 148px;
- text-align: center;
- white-space: nowrap;
-}
-
-#settings_vehicle_RearCamera .off3 {
- top: 109px;
- left: 441px;
- width: 149px;
- text-align: center;
- white-space: nowrap;
-}
-#settings_vehicle_RearCamera .preview {
- top: 167px;
- right: -166px;
-}
-
-.help-mode #settings_vehicle_RearCamera {
- background-image: url(../images/settings/view_settings_vehicle_RearViewCamera-help.png);
-}
-
-.help-mode #settings_vehicle_RearCamera .inner-wrapper div {
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Vehicle. Enable Valet Mode*******************/
-#settings_vehicle_enableValetMode_popUp {
- width: 800px;
- height: 480px;
- z-index: 100000;
-}
-
-#settings_vehicle_enableValetMode_popUp .blackFilter{
- left: -160px;
- width: 800px;
- height: 480px;
- background-color: #000;
- opacity: 0.5;
-}
-
-#settings_vehicle_enableValetMode_popUp .wrapper{
- top: 79px;
- left: 80px;
- height: 320px;
- width: 330px;
- background-color: #000;
- z-index: 10001;
- border: #a6a6a6 solid 2px;
- border-radius: 6px;
-}
-
-#settings_vehicle_enableValetMode_popUp .wrapper .yesButton,
-#settings_vehicle_enableValetMode_popUp .wrapper .noButton {
- bottom: 9px;
- left: 10px;
- width: 155px;
- height: 48px;
- border: 1px solid #393939;
- font-size: 21px;
- font-family: Arial;
-}
-
-
-#settings_vehicle_enableValetMode_textEnabling,
-#settings_vehicle_enableValetMode_textSamePIN,
-#settings_vehicle_enableValetMode_textContinue{
- text-align: center;
- font-size: 20px;
- float: left;
-}
-
-#settings_vehicle_enableValetMode_textEnabling{
- top: 11px;
- left: 34px;
- width: 261px;
- line-height: 22px;
-}
-
-#settings_vehicle_enableValetMode_textSamePIN{
- top: 99px;
- left: 35px;
- width: 261px;
- line-height: 22px;
-}
-
-#settings_vehicle_enableValetMode_textContinue{
- top: 208px;
- left: 33px;
- width: 267px;
- line-height: 22px;
-}
-
-#settings_vehicle_enableValetMode_popUp .wrapper .yesButton{
- border-top-left-radius: 2px;
- border-bottom-left-radius: 2px;
-}
-
-#settings_vehicle_enableValetMode_popUp .wrapper .noButton {
- left: 163px;
- border-top-right-radius: 2px;
- border-bottom-right-radius: 2px;
-}
-
-#settings_vehicle_enableValetMode_popUp .yesButton span,
-#settings_vehicle_enableValetMode_popUp .noButton span {
- position: absolute;
- top: 13px;
- width: 155px;
- text-align: center;
-}
-
-.helpmode #settings_vehicle_enableValetMode_popUp .wrapper {
- background-image: url(../images/settings/settings_vehicle_enableValetMode_popUp_bg_help.png);
-}
-
-.helpmode #settings_vehicle_enableValetMode_popUp .wrapper .yesButton,
-.helpmode #settings_vehicle_enableValetMode_popUp .wrapper .noButton {
- border: none !important;
- margin: 0 0 1px 1px;
- background: none;
-}
-
-/******* For Settings.Vehicle.EnableValetMode.EnterPin*******/
-#settings_vehicle_enableValetMode_enteringPin {
- top: 53px;
- left: -160px;
- width: 800px;
- height: 384px;
- background-color: black;
- z-index: 1001;
- font-size: 26px;
-}
-
-#settings_vehicle_enableValetMode_enteringPin .backButton,
-#settings_vehicle_enableValetMode_enteringPin .block-header-title {
- margin-top: 11px;
-}
-
-#settings_vehicle_enableValetMode_enteringPin_enterPadLabel{
- position: absolute;
- top: 83px;
- right: 525px;
-}
-
-#settings_vehicle_enableValetMode_enteringPin.fr #settings_vehicle_enableValetMode_enteringPin_enterPadLabel{
- width: 200px;
-}
-
-#settings_vehicle_enableValetMode_enteringPin_enterPad {
- position: absolute;
- top: 74px;
- left: 285px;
- width: 240px;
- height: 289px;
-}
-
-#settings_vehicle_enableValetMode_enteringPin_PIN{
- position: relative;
- float: left;
- width: 228px;
- height: 48px;
- border: 1px solid #393939;
- border-radius: 2px;
- text-align: center;
-}
-
-#settings_vehicle_enableValetMode_enteringPin_enterPad .digitButton{
-position: relative;
- float: left;
- height: 48px;
- width: 68px;
- border: 1px solid #393939;
- border-radius: 4px;
- text-align: center;
- line-height: 50px;
- margin-right: 10px;
- margin-top: 10px;
-}
-
-#settings_vehicle_enableValetMode_enteringPin_digit0 {
- margin-left: 80px;
-}
-
-#settings_vehicle_enableValetMode_enteringPin_backspaceButton{
- top: 74px;
- right: 14px;
- width: 63px;
- height: 48px;
- border: 1px solid #393939;
- border-radius: 2px;
-}
-
-#settings_vehicle_enableValetMode_enteringPin_backspaceButton .ico {
- margin-top: 15px;
- margin-left: 19px;
-}
-
-#settings_vehicle_enableValetMode_enteringPin_enterButton {
- bottom: 21px;
- right: 14px;
- height: 48px;
- width: 138px;
- border: 1px solid #393939;
- border-radius: 2px;
- text-align: center;
- line-height: 50px;
- font-size: 24px;
-}
-
-.help-mode #settings_vehicle_enableValetMode_enteringPin_PIN,
-.help-mode #settings_vehicle_enableValetMode_enteringPin_enterPad .digitButton,
-.help-mode #settings_vehicle_enableValetMode_enteringPin_backspaceButton,
-.help-mode #settings_vehicle_enableValetMode_enteringPin_enterButton{
- border: none !important;
- background: none !important;
-}
-
-.help-mode #settings_vehicle_enableValetMode_enteringPin_backspaceButton .ico {
- opacity: 0;
-}
-
-.help-mode #settings_vehicle_enableValetMode_enteringPin_enterButton {
- right: 15px;
- bottom: 22px;
-}
-
-.help-mode #settings_vehicle_enableValetMode_enteringPin_enterPad {
- top: 74px;
- left: 285px;
-}
-
-.help-mode #settings_vehicle_enableValetMode_enteringPin_enterPad {
- top: 75px;
- left: 286px;
-}
-
-.help-mode #settings_vehicle_enableValetMode_enteringPin_enterPad .digitButton {
- margin-right: 12px;
- margin-top: 12px;
-}
-
-.help-mode #settings_vehicle_enableValetMode_enteringPin_enterPadLabel,
-.help-mode #settings_vehicle_enableValetMode_enteringPin_enterPad .digitButton span,
-.help-mode #settings_vehicle_enableValetMode_enteringPin_enterButton span{
- text-shadow: 0 0 3px #999 !important;
-}
-
-.help-mode #settings_vehicle_enableValetMode_enteringPin{
- background-image: url(../images/settings/settings_vehicle_enableValetMode_enterPIN_bg_help.png)
-}
-
-/******************* For Settings.Settings*******************/
-
-#settings_settings {
- position: relative;
- left: 160px;
- top: 86px;
- width: 642px;
- height: 310px;
- float: left;
- z-index: 1001;
-}
-
-#settings_settings_list{
- width: 630px;
- height: 301px;
- top: 5px;
- left: 5px;
-}
-
-#settings_settings_list .list-item > .ico{
- height: 50px;
- width: 50px;
-}
-
-#settings_settings_list .list-content {
- width: 628px;
-}
-
-#settings_settings .list-item {
- position: relative;
- width: 100%;
- height: 49px;
- font-size: 20px;
- line-height: 50px;
- border-bottom: 1px solid #393939;
-}
-
-#settings_settings .list-item .ico {
- float: left;
- opacity: 1;
-}
-
-
-
-#settings_settings .backButton {
- margin-top: 11px;
-}
-
-#settings_settings .block-header-title {
- top: 22px;
- left: 76px;
-}
-
-.help-mode #settings_settings {
- background-image: url(../images/settings/settings_settings_bg_help.png)!important;
- border: none;
-}
-
-/******************* For Settings.Settings.System Menu*******************/
-#settings_settings_system {
- top: -38px;
- left: -160px;
- /* top: 48px;*/
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1001
-}
-
-#settings_settings_system_list {
- position: relative;
- margin-top: 84px;
- margin-left: 65px;
- width: 730px;
- height: 251px;
-}
-
-#settings_settings_system_list .list {
- position: relative;
- width: 670px;
- height: 251px;
- border: 1px solid #393939;
- border-radius: 2px;
-}
-
-#settings_settings_system_list .list-item {
- position: relative;
- width: 670px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- line-height: 50px;
-}
-
-#settings_settings_system_list .list-item > span,
-#settings_settings_system_list .lableToggle > span{
- margin-left: 13px;
-}
-
-
-#settings_settings_system_list .list-content {
- width: 670px;
-}
-
-#settings_settings_system_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;/* opacity: 0.3;*/
-}
-
-#settings_settings_system_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;/* opacity: 0.3;*/
-}
-
-.help-mode #settings_settings_system {
- background-image: url(../images/settings/settings_settings_system_bg_help.png);
- background-repeat: no-repeat;
- background-position: 51px 70px;
-}
-
-.help-mode #settings_settings_system .list-item span{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Settings.System.Keyboard Layout Menu*******************/
-#settings_settings_system_keyboardLayout {
- top: 0px;
- left: 0px;
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1101
-}
-
-#settings_settings_system_keyboardLayout .backButton {
- margin-top: 11px;
-}
-
-#settings_settings_system_keyboardLayout .block-header-title {
- top: 22px;
- left: 76px;
-}
-
-#settings_settings_system_keyboardLayout_list {
- margin-top: 84px;
- margin-left: 65px;
- width: 731px;
- height: 251px;
-}
-
-#settings_settings_system_keyboardLayout_list .list-item {
- position: relative;
- width: 657px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- padding-left: 13px;
- line-height: 50px;
-}
-
-#settings_settings_system_keyboardLayout_list .list-content {
- width: 670px;
-}
-
-#settings_settings_system_keyboardLayout_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
-}
-
-#settings_settings_system_keyboardLayout_list .list-item.pressed {
- background: url(../images/settings/menu_active.png)
-}
-
-.help-mode #settings_settings_system_keyboardLayout{
- background-image: url(../images/settings/settings_settings_system_keyboardLayout_bg_help.png) !important;
- background-repeat: no-repeat;
- background-position: 60px 79px;
-}
-
-.help-mode #settings_settings_system_keyboardLayout_list {
- display: none;
-}
-
-.help-mode #settings_settings_system_keyboardLayout .list-item span{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Settings.System.Iinstall Applications Menu*******************/
-#settings_settings_system_installApplications {
- left: 0px;
- top: 0px;
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1301
-}
-
-#settings_settings_system_installApplications .backButton {
- margin-top: 11px;
-}
-
-#settings_settings_system_installApplications .block-header-title {
- top: 22px;
- left: 76px;
-}
-
-#settings_settings_system_installApplications_list {
- position: relative;
- margin-top: 84px;
- margin-left: 65px;
- width: 730px !important;
- height: 200px;
-}
-#settings_settings_system_installApplications_list .list-content {
- width: 728px;
-}
-
-#settings_settings_system_installApplications_list .list-item span {
- padding-left: 10px;
-}
-
-#settings_settings_system_installApplications_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
-}
-
-.help-mode #settings_settings_system_installApplications{
- background-image: url(../images/settings/settings_settings_system_settings_settings_system_installApplications_bg_help.png) !important;
- background-repeat: no-repeat;
- background-position: 60px 78px;
-}
-
-.help-mode #settings_settings_system_installApplications .list-item span{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.VoiceControl *******************/
-
-#settings_settings_VoiceControl {
- top: -38px;
- left: -160px;
- background-image: url(../images/settings/view_settings_settings_VoiceControl.png);
- background-position: 55px 78px;
- background-repeat: no-repeat;
- background-color: #000;
- width: 800px;
- height: 384px;
- z-index: 1001;
-}
-
-#settings_settings_VoiceControl .inner-content {
- top: 71px;
-}
-
-#settings_settings_VoiceControl .on1 {
- top: 82px;
-}
-
-#settings_settings_VoiceControl .on2 {
- top: 132px;
-}
-
-#settings_settings_VoiceControl .on3 {
- top: 182px;
-}
-
-#settings_settings_VoiceControl .off1 {
- top: 82px;
-}
-
-#settings_settings_VoiceControl .off2 {
- top: 132px;
-}
-
-#settings_settings_VoiceControl .off3 {
- top: 182px;
-}
-
-#settings_settings_VoiceControl .vcv {
- left: -23px;
- top: 233px;
- white-space: nowrap;
-}
-
-#settings_settings_VoiceControl .pcl {
- left: -23px;
- top: 183px;
- white-space: nowrap;
-}
-
-#settings_settings_VoiceControl .mcl {
- left: -23px;
- top: 133px;
- white-space: nowrap;
-}
-
-#settings_settings_VoiceControl .cp {
- left: -23px;
- top: 83px;
- white-space: nowrap;
-}
-
-#settings_settings_VoiceControl .im {
- left: -23px;
- top: 33px;
- white-space: nowrap;
-}
-
-#settings_settings_VoiceControl .novice {
- top: 32px;
- white-space: nowrap;
-}
-
-#settings_settings_VoiceControl .advance {
- top: 32px;
- white-space: nowrap;
-}
-
-#settings_settings_VoiceControl .toggle0{
- left: 330px;
- width: 148px;
- text-align: center;
-}
-
-#settings_settings_VoiceControl .toggle1{
- left: 480px;
- width: 148px;
- text-align: center;
-}
-
-.helpmode #settings_settings_VoiceControl {
- background-image: url(../images/settings/view_settings_settings_VoiceControl-help.png);
-}
-
-.helpmode #settings_settings_VoiceControl .inner-content div{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Settings.Media Player Menu*******************/
-#settings_settings_mediaPlayer {
- top: -38px;
- left: -160px;
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1001
-}
-
-#settings_settings_mediaPlayer .backButton {
- margin-top: 11px;
-}
-
-#settings_settings_mediaPlayer .block-header-title {
- top: 22px;
- left: 76px;
-}
-
-#settings_settings_mediaPlayer_list {
- margin-top: 84px;
- margin-left: 65px;
- width: 730px;
- height: 251px;
-}
-
-#settings_settings_mediaPlayer_list .list-content {
- width: 670px;
-}
-
-#settings_settings_mediaPlayer_list .list-item {
- position: relative;
- width: 670px;
- float: left;
- height: 49px;
- line-height: 50px;
-}
-
-#settings_settings_mediaPlayer_list .list-item span{
- margin-left: 13px;
-}
-
-#settings_settings_mediaPlayer_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
-}
-
-#settings_settings_mediaPlayer_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-
-#settings_settings_mediaPlayer_list_item5 .toogleButtonContainer {
- width: 300px;
- text-align: center;
-}
-
-#settings_settings_mediaPlayer_list .list-item .toogleButtonContainer span{
- margin-left: 0px;
- width: 149px;
-}
-
-#settings_settings_mediaPlayer_list_item5 .toogleButtonContainer .toggles {
- width: 149px;
-}
-
-.help-mode #settings_settings_mediaPlayer {
- background-image: url(../images/settings/settings_settings_media_bg_help.png)!important;
- background-position: 60px 78px;
- background-repeat: no-repeat;
- border: none;
-}
-
-.help-mode #settings_settings_mediaPlayer .list-item {
- color: transparent !important;
- text-shadow: 0 0 3px white !important;
-}
-
-.help-mode #settings_settings_mediaPlayer .list-item .ico {
- margin-right: 8px!important;
-}
-
-.help-mode #settings_settings_mediaPlayer_list_item0 span,
-.help-mode #settings_settings_mediaPlayer_list_item2 span,
-.help-mode #settings_settings_mediaPlayer_list_item3 span,
-.help-mode #settings_settings_mediaPlayer_list_item4 span{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Settings.Media Player Bluetooth Devices Menu*******************/
-#settings_settings_mediaPlayer_bluetoothDevices {
- left: 0px;
- top: 0px;
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1001
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices .backButton {
- margin-top: 11px;
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices .block-header-title {
- top: 22px;
- left: 76px;
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices_list {
- position: relative;
- margin-top: 84px;
- margin-left: 65px;
- width: 670px;
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices_list {
- width: 730px;
- height: 251px;
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices_list .list-content {
- width: 670px;
- height: 150px;
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices_list .list-item {
- position: relative;
- width: 670px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- line-height: 50px;
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices_list .list-item > span,
-#settings_settings_mediaPlayer_bluetoothDevices_list .lableToggle > span{
- margin-left: 13px;
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices_list .toogleButtonContainer {
- width: 300px;
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices_list .toggles,
-#settings_settings_mediaPlayer_bluetoothDevices_list .toggles span {
- width: 149px;
-}
-
-#settings_settings_mediaPlayer_bluetoothDevices_list .toogleButtonContainer .delim {
- border: none;
- background: #393939;
- width: 2px;
-}
-
-.help-mode #settings_settings_mediaPlayer_bluetoothDevices_list .toogleButtonContainer span{
- margin-top: 2px !important;
- margin-left: -1px !important;
-}
-
-.help-mode #settings_settings_mediaPlayer_bluetoothDevices_list .lableToggle {
- margin-top: 0px !important;
- margin-left: 0px !important;
-}
-
-.helpmode #settings_settings_mediaPlayer_bluetoothDevices{
- background-image: url(../images/settings/settings_settings_media_bluetoothDevices_bg_help.png) !important;
- background-repeat: no-repeat;
-}
-
-.helpmode #settings_settings_mediaPlayer_bluetoothDevices .list-item .ico{
- border: 1px solid #000;
-}
-
-.helpmode #settings_settings_mediaPlayer_bluetoothDevices_list .list-item span{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Settings. Navigation*******************/
-
-#settings_settings_navigation {
- top: -38px;
- left: -160px;
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1001
-}
-
-#settings_settings_navigation .backButton {
- margin-top: 11px;
-}
-
-#settings_settings_navigation .block-header-title {
- top: 22px;
- left: 76px;
-}
-
-#settings_settings_navigation_list {
- margin-top: 84px;
- margin-left: 65px;
- width: 733px;
- height: 251px;
-}
-
-#settings_settings_navigation_list .list-content {
- width: 728px;
- height: 250px;
-}
-
-#settings_settings_navigation_list .list-item {
- position: relative;
- width: 728px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- line-height: 50px;
-}
-
-#settings_settings_navigation_list .list-item span{
- margin-left: 13px;
-}
-
-#settings_settings_navigation_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-
-
-.helpmode #settings_settings_navigation {
- background-image: url(../images/settings/settings_settings_navigation_bg_help.png) !important;
- background-position: 60px 79px;
- background-repeat: no-repeat;
- border: none;
-}
-
-.helpmode #settings_settings_navigation_list{
- margin-top: 85px;
- margin-left: 64px;
-}
-
-/******************* For Settings.Settings.Navigation.MapPreferences *******************/
-#settings_settings_navigation_mapPreferences {
- top: 0px;
- left: 0px;
- /* top: 48px;*/
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1001
-}
-
-#settings_settings_navigation_mapPreferences_list {
- margin-top: 84px;
- margin-left: 65px;
- width: 672px;
- height: 151px;;
-}
-
-#settings_settings_navigation_mapPreferences_list .list-content {
- width: 670px;
- height: 200px;
-}
-
-#settings_settings_navigation_mapPreferences_list .list-item {
- position: relative;
- width: 670px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- line-height: 50px;
-}
-
-#settings_settings_navigation_mapPreferences_list .list-item .lableToggle span {
- margin-left: 13px;
-}
-
-#settings_settings_navigation_mapPreferences_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;/* opacity: 0.3;*/
-}
-
-#settings_settings_navigation_mapPreferences_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;/* opacity: 0.3;*/
-}
-
-#settings_settings_navigation_mapPreferences_list .lableToggleButton.wideDoubleToggle .delim {
- border: none;
- background: #393939;
- width: 2px;
-}
-
-.helpmode #settings_settings_navigation_mapPreferences {
- background-image: url(../images/settings/settings_settings_navigation_mapPreferences_bg_help.png);
- background-repeat: no-repeat;
- text-shadow: 0 0 3px #999;
-}
-
-.helpmode #settings_settings_navigation_mapPreferences .toogleButtonContainer{
- border: none;
-}
-
-.helpmode #settings_settings_navigation_mapPreferences .toogleButtonContainer .ffw-button{
- background: none !important;
-}
-
-.helpmode #settings_settings_navigation_mapPreferences .toogleButtonContainer span {
- margin-left: 0px !important;
-}
-
-/******************* For Settings.Settings.Navigation.RoutePreferences *******************/
-#settings_settings_navigation_routePreferences {
- top: 0px;
- left: 0px;
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1001
-}
-
-#settings_settings_navigation_routePreferences_list {
- margin-top: 84px;
- margin-left: 65px;
- width: 672px;
- height: 251px
-}
-
-#settings_settings_navigation_routePreferences_list .list-item {
- position: relative;
- width: 670px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- line-height: 50px;
-}
-
-#settings_settings_navigation_routePreferences_list .list-item .lableToggle{
- margin-left: 13px;
-}
-
-#settings_settings_navigation_routePreferences_list .list-item .lableToggle{
- margin-left: 13px;
-}
-
-#settings_settings_navigation_routePreferences_list .list-content {
- width: 670px;
- height: 250px;
-}
-
-#settings_settings_navigation_routePreferences_list .list-item .ico {
- float: left;
- padding-right: 10px;
-}
-
-#settings_settings_navigation_routePreferences_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-
-#settings_settings_navigation_routePreferences_list.help_mode .list-content .list-item .toogleButtonContainer{
- border: none !important;
-}
-
-#settings_settings_navigation_routePreferences_list_item0 .toogleButtonContainer{
- width: 448px;
-}
-
-.helpmode #settings_settings_navigation_routePreferences {
- background-image: url(../images/settings/settings_settings_navigation_routePreferences_bg_help.png);
- background-repeat: no-repeat;
- background-position: 59px 79px;
-}
-
-.helpmode #settings_settings_navigation_routePreferences .lableToggle{
- left: 11px;
-}
-
-.helpmode #settings_settings_navigation_routePreferences_list_item0 .lableToggle{
- left: 13px;
-}
-
-.helpmode #settings_settings_navigation_routePreferences .list-item span{
- text-shadow: 0 0 3px #999;
-}
-
-.helpmode #settings_settings_navigation_routePreferences .toogleButtonContainer span{
- margin-left: 0px !important;
-}
-
-.helpmode #settings_settings_navigation_routePreferences .lableToggleButton .delim{
- width: 2px;
-}
-
-/******************* For Settings.Settings.Navigation.NavigationPreferences *******************/
-#settings_settings_navigation_navigationPreferences {
- top: 0px;
- left: 0px;
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1001
-}
-
-#settings_settings_navigation_navigationPreferences_list {
- position: relative;
- margin-top: 161px;
- margin-left: 77px;
- width: 672px;
- height: 101px;
-}
-
-#settings_settings_navigation_navigationPreferences_list .list {
- position: relative;
- width: 668px;
- height: 98px;
- border: 1px solid #393939;
- border-radius: 2px;
-}
-
-#settings_settings_navigation_navigationPreferences_list .list-content {
- width: 670px;
- height: 100px;
-}
-
-#settings_settings_navigation_navigationPreferences_list .list-item {
- position: relative;
- width: 670px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- line-height: 50px;
-}
-
-#settings_settings_navigation_navigationPreferences_list .list-item .lableToggle span {
- margin-left: 13px;
-}
-
-#settings_settings_navigation_navigationPreferences_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
-}
-
-#settings_settings_navigation_navigationPreferences_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-
-.helpmode #settings_settings_navigation_navigationPreferences .toogleButtonContainer span{
- margin-left: 0px !important;
-}
-
-.helpmode #settings_settings_navigation_navigationPreferences .toogleButtonContainer .delim {
- width: 2px
-}
-
-.helpmode #settings_settings_navigation_navigationPreferences {
- background-image: url(../images/settings/settings_settings_navigation_navigationPreferences_bg_help.png);
- background-repeat: no-repeat;
- background-position: 72px 156px;
-}
-
-.helpmode #settings_settings_navigation_navigationPreferences .list-item span{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Settings.Navigation.TrafficPreferences *******************/
-#settings_settings_navigation_trafficPreferences {
- top: 0px;
- left: 0px;
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1001
-}
-
-#settings_settings_navigation_trafficPreferences_list {
- position: relative;
- margin-top: 84px;
- margin-left: 65px;
- width: 730px;
- height: 251px;
-}
-
-#settings_settings_navigation_trafficPreferences_list .list-content {
- width: 670px;
- height: 650px;
-}
-
-#settings_settings_navigation_trafficPreferences_list .list-item{
- position: relative;
- width: 670px;
- float: left;
- height: 49px;
- border-bottom: 1px solid #393939;
- line-height: 50px;
-}
-
-#settings_settings_navigation_trafficPreferences_list .list-item .lableToggle {
- margin-left: 13px;
-}
-
-#settings_settings_navigation_trafficPreferences_list .list-item .lableToggle span {
- margin-left: 13px;
-}
-
-#settings_settings_navigation_trafficPreferences_list .list-item .ico {
- float: left;
- padding-right: 10px;
- margin-top: 9px;
-}
-
-#settings_settings_navigation_trafficPreferences_list .list-item.big-ico img {
- float: right;
- border: none;
- margin-top: 4px;
- margin-right: 9px;
-}
-
-.help-mode #settings_settings_navigation_trafficPreferences {
- background-image: url(../images/settings/settings_settings_navigation_trafficPreferences_bg_help.png);
- background-repeat: no-repeat;
-}
-
-.help-mode #settings_settings_navigation_trafficPreferences .lableToggle{
- left: 11px;
-}
-
-.help-mode #settings_settings_navigation_trafficPreferences_list_item0 .lableToggle,
-.help-mode #settings_settings_navigation_trafficPreferences_list_item1 .lableToggle {
- margin-left: 1px;
-}
-
-.help-mode #settings_settings_navigation_trafficPreferences_list_item0 .lableToggle,
-.help-mode #settings_settings_navigation_trafficPreferences_list_item1 .lableToggle{
- left: 13px;
-}
-
-.help-mode #settings_settings_navigation_trafficPreferences #settings_settings_navigation_trafficPreferences_list{
- display: none;
-}
-
-.help-mode #settings_settings_navigation_trafficPreferences .list-item span{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Settings.Navigation.AvoidAreas*******************/
-
-#settings_settings_navigation_avoidAreas_view{
- height: 48px;
- width: 148px;
- top: 0px;
- left: 0px;
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1001
-}
-
-#settings_settings_navigation_avoidAreas_backButton_addButton{
- top: 112px;
- left: 5px;
- width: 148px;
- height: 48px;
- border: 1px solid #333;
- border-radius: 2px;
- cursor: pointer;
- z-index: 1;
- line-height: 50px;
-}
-
-#settings_settings_navigation_avoidAreas_backButton_addButton span{
- margin-left: 13px;
-}
-
-.help-mode #settings_settings_navigation_avoidAreas_view{
- background-image: url(../images/settings/settings_settings_navigation_avoidAreas_bg_help.png);
- background-repeat: no-repeat;
- background-position: 0px 107px;
-}
-
-.help-mode #settings_settings_navigation_avoidAreas_backButton_addButton{
- background: none;
- border: #000;
-}
-
-.help-mode #settings_settings_navigation_avoidAreas_backButton_addButton .arrow-ico{
- opacity: 0;
-}
-
-.help-mode #settings_settings_navigation_avoidAreas_backButton_addButton span{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Wireless Internet *******************/
-#settings_settings_wirelessInternet {
- top: -38px;
- left: -160px;
- width: 800px;
- height: 384px;
- z-index: 1001;
- background-color: #000;
- background-image: url(../images/settings/view_settings_settings_WirelessInternet.png);
- background-repeat: no-repeat;
- background-position: 0px 48px;
-}
-
-.help-mode #settings_settings_wirelessInternet {
- background-image: url(../images/settings/view_settings_settings_WirelessInternet-help.png);
-}
-
-#settings_settings_wirelessInternet .backButton {
- margin-top: 11px;
-}
-
-#settings_settings_wirelessInternet .block-header-title {
- top: 21px;
-}
-
-#settings_settings_wirelessInternet .inner-content {
- top: 71px;
-}
-
-#settings_settings_wirelessInternet .wifi-network {
- white-space: nowrap;
- top: 7px;
- left: 349px;
-}
-
-#settings_settings_wirelessInternet .usbmb {
- white-space: nowrap;
- top: 86px;
- left: 349px;
-}
-
-#settings_settings_wirelessInternet .bluetooth_settings {
- white-space: nowrap;
- top: 168px;
- left: 349px;
-}
-
-#settings_settings_wirelessInternet .bluetooth_pcm {
- white-space: nowrap;
- top: 250px;
- left: 316px;
-}
-
-#settings_settings_wirelessInternet .i {
- white-space: nowrap;
- top: 172px;
- left: -32px;
- font-size: 12px;
-}
-
-#settings_settings_wirelessInternet .wifi {
- white-space: nowrap;
- top: 41px;
- left: 118px;
- font-size: 12px;
-}
-
-#settings_settings_wirelessInternet .wdp {
- white-space: nowrap;
- top: 127px;
- left: 68px;
- font-size: 12px;
-}
-
-#settings_settings_wirelessInternet .cn {
- white-space: nowrap;
- top: 212px;
- left: 84px;
- font-size: 12px;
-}
-
-.help-mode #settings_settings_wirelessInternet .inner-content div{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Help *******************/
-#settings_help {
- position: absolute;
- top: 86px;
- left: 160px;
- width: 640px;
- height: 305px;
- float: left;
- z-index:1001
-}
-
-#settings_help .backButton {
- margin-top: 11px;
-}
-
-#settings_help .inner-content{
- top: 71px;
-}
-
-#settings_help .block-header-title {
- top: 21px;
- left: 75px;
-}
-
-#settings_help_911Assist .backButton{
- margin-top: 11px;
-}
-
-#settings_help_911Assist .a911r .btn-28{
- border-radius: 0px;
-}
-
-#viewSettingsDisplay_assist-a911r .inner-content{
- top: 71px;
-}
-
-#settings_help_911Assist .block-header-title {
- top: 21px;
- left: 75px;
-}
-
-
-#settings_help_list_left, #settings_help_list_right {
- width: 310px;
- height: 251px;
-}
-
-#settings_help_list_right .list-item {
- cursor: pointer;
-}
-
-#settings_help .list-content {
- position: relative;
- float: left;
- width: 308px
-}
-
-#settings_help .list-item .ico {
- height: 50px;
- width: 50px;
-}
-
-#settings_help .list-item .ico {
- float: left;
-}
-
-#settings_help_list_left{
- float: left;
- left: 5px;
- top: 5px;
-}
-
-#settings_help_list_right {
- position: relative;
- float: left;
- margin-top: 5px;
- margin-left: 15px;
- width: 310px;
-}
-
-#settings_help #settings_help_list_right .list {
- max-height: 48px;
-}
-
-#settings_help_bottom_label {
- font-size: 20px;
- line-height: 50px;
- color: #6E6E6E;
- float: left;
- width: 100%;
- text-align: center;
- bottom: 0px;
-}
-
-.helpmode #settings_help {
- background-image: url(../images/settings/settings_help_help.png);
- background-repeat: no-repeat;
- border: none !important;
-}
-
-.helpmode #settings_help_bottom_label {
- text-shadow: 0 0 3px #999 !important;
-}
-
-.helpmode #settings_help .lat{
- text-shadow: 0 0 3px lime !important;
-}
-
-/******************* For Settings.Help.Where Am I Report Menu*******************/
-#settings_help_whereAmI {
- position: absolute;
- top: -38px;
- left: -160px;
- width: 800px;
- height: 384px;
- background-image: url(../images/settings/settings_help_WhereAmI_bg.png);
- background-repeat: no-repeat;
- background-position: 14px 96px;
- background-color: black;
- z-index: 1001;
-}
-
-#settings_help_whereAmI .next_street {
- white-space: nowrap;
- left: -68px;
- top: 17px;
-}
-
-#settings_help_whereAmI .villagerd {
- white-space: nowrap;
- left: -53px;
- top: 50px;
-}
-
-#settings_help_whereAmI .current_street {
- white-space: nowrap;
- left: -68px;
- top: 97px;
-}
-
-#settings_help_whereAmI .mi {
- white-space: nowrap;
- right: -669px;
- top: 50px;
-}
-
-#settings_help_whereAmI .military_st {
- white-space: nowrap;
- left: -45px;
- top: 124px;
-}
-
-#settings_help_whereAmI .dmi {
- white-space: nowrap;
- left: -45px;
- top: 147px;
-}
-
-#settings_help_whereAmI .lat {
- white-space: nowrap;
- left: -45px;
- top: 190px;
- color: #00ff00;
-}
-
-#settings_help_whereAmI .previous_street {
- white-space: nowrap;
- left: -68px;
- top: 229px;
-}
-
-#settings_help_whereAmI .rd {
- white-space: nowrap;
- left: -45px;
- top: 262px;
-}
-
-#settings_help_whereAmI .ft {
- white-space: nowrap;
- right: -668px;
- top: 262px;
-}
-
-.help-mode #settings_help_whereAmI {
- position: absolute;
- width: 800px;
- height: 384px;
- background-image: url(../images/settings/settings_help_WhereAmI_bg_help.png);
-}
-
-.help-mode #settings_help_whereAmI .inner-content div{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Help.SystemInformation Menu*******************/
-#settings_help_systemInformation {
- top: -38px;
- left: -160px;
- width: 800px;
- height: 384px;
- background-color: black;
- z-index: 1001;
- font-size: 20px;
-}
-
-#settings_help_systemInformation .backButton {
- margin-top: 11px;
-}
-
-#settings_help_systemInformation .block-header-title {
- top: 22px;
- left: 76px;
-}
-
-#settings_help_systemInformation_list {
- position: relative;
- margin-top: 91px;
- margin-left: 65px;
- width: 730px;
- height: 251px;
-}
-
-#settings_help_systemInformation_list .list-content {
- width: 670px;
-}
-
-
-#settings_help_systemInformation_list .list-item span {
- padding-left: 13px;
-}
-
-.help-mode #settings_help_systemInformation {
- background-image: url(../images/settings/settings_help_systemInformation_bg_help.png);
- background-repeat: no-repeat;
- background-position: 60px 86px;
-}
-
-.help-mode #settings_help_systemInformation .list-item span{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Help.SoftwareLicenses Menu*******************/
-#settings_help_softwareLicenses {
- top: -38px;
- left: -160px;
- width: 800px;
- height: 384px;
- background-color: black;
- z-index: 1001;
- font-size: 20px;
-}
-
-#settings_help_softwareLicenses .backButton {
- margin-top: 11px;
-}
-
-#settings_help_softwareLicenses .block-header-title {
- top: 22px;
- left: 76px;
-}
-
-#settings_help_softwareLicenses .list-titles {
- position: relative;
- margin-top: 57px;
- margin-left: 274px;
- float: left;
- font-size: 18px;
-}
-
-#settings_help_softwareLicenses #title-name {
- position: relative;
- width: 152px;
- float: left;
-}
-
-#settings_help_softwareLicenses.fr #title-name {
- left: -15px;
- width: 162px;
-}
-
-#settings_help_softwareLicenses #title-data {
- position: relative;
- width: 100px;
- margin-left: 53px;
- float: left;
- text-align: center;
-}
-
-#settings_help_softwareLicenses.fr #title-data {
- margin-left: 43px;
-}
-
-#settings_help_softwareLicenses #title-users {
- position: relative;
- width: 100px;
- margin-left: 44px;
- float: left;
- text-align: center;
-}
-
-#settings_help_softwareLicenses.fr #title-users{
- width: 89px;
-}
-
-#settings_help_softwareLicenses_list .list-item .ico{
- width: 12px;
- height: 50px;
-}
-
-#settings_help_softwareLicenses_list_item0 .right-icon{
- position: absolute;
- top: 0px;
- left: 299px;
- width: 10px;
- height: 50px;
-}
-
-#settings_help_softwareLicenses_list {
- position: absolute;
- margin-top: 101px;
- margin-left: 135px;
- width: 655px;
- height: 251px;
-}
-
-#settings_help_softwareLicenses_list .list {
- position: relative;
- width: 595px;
- height: 48px;
- border: 1px solid #393939;
- border-radius: 2px;
-}
-
-#settings_help_softwareLicenses_list .list-item {
- position: relative;
- width: 595px;
- float: left;
- background: black;
- height: 49px;
- border-bottom: 1px solid #393939;
- line-height: 50px;
- cursor: default;
-}
-
-#settings_help_softwareLicenses_list .list-item span {
- position: absolute;
- top: 0px;
- left: 29px;
-}
-
-#settings_help_softwareLicenses_list .list-item span.content {
- font-size: 23px;
-}
-
-#settings_help_softwareLicenses_list .list-content {
- width: 595px;
-}
-
-#settings_help_softwareLicenses_list .list-item .ico {
- margin-left: 12px;
- margin-right: 5px;
-}
-
-#settings_help_softwareLicenses_list .list-item .content-second {
- position: absolute;
- top: 0px;
- left: 370px;
-}
-
-#settings_help_softwareLicenses.fr .list-item .content-second {
- left: 367px;
-}
-
-#settings_help_softwareLicenses.fr .list-item .content-third {
- left: 503px;
-}
-
-#settings_help_softwareLicenses_list .list-item .content-third {
- position: absolute;
- top: 0px;
- left: 499px
-}
-#installUpdatesButton {
- position: relative;
- margin-left: 5px;
- width: 118px;
- height: 58px;
- border: 1px solid #393939;
- border-radius: 2px;
- float: left;
- background: url(../images/settings/btn-68h.png);
- text-align: center;
- padding-top: 10px;
-}
-
-#installUpdatesButton.pressed {
- background: url(../images/settings/btn-68h-pressed.png);
-}
-
-.help-mode #settings_help_softwareLicenses .list-titles{
- color: transparent !important;
- text-shadow: 0 0 3px #FFF !important;
-}
-
-.help-mode #settings_help_softwareLicenses{
- background-image: url(../images/settings/seetings_help_softwareLicenses_bg_help.png);
- background-repeat: no-repeat;
- background-position: 130px 96px;
-}
-
-.help-mode #installUpdatesButton{
- border: none;
- background: none;
- padding-top: 11px;
- margin-left: 6px;
-}
-
-.help-mode #settings_help_systemInformation .list-titles span{
- text-shadow: 0 0 3px #999;
-}
-
-/******************* For Settings.Help. Driver Restrictions Menu*******************/
-#settings_help_driver_restrictions {
- top: -38px;
- left: -160px;
- width: 800px;
- height: 384px;
- background-color: black;
- z-index: 1001;
-}
-
-#settings_help_driver_restrictions .text {
- position: relative;
- top: 90px;
- width: 497px;
- margin: 0 auto;
- text-align: center;
- line-height: 42px;
- font-size: 32px;
-
-}
-
-.fr #settings_help_driver_restrictions .text{
- width: 649px;
-}
-
-/******************* For Settings.Help.911Assist Menu*******************/
-#settings_help_911Assist {
- top: -39px;
- left: -160px;
- width: 800px;
- height: 385px;
- background-color: black;
- z-index: 1001;
-}
-
-#settings_help_911Assist .active {
- background: url(../images/settings/btn-28h-gray-active.png) repeat-x !important;
-}
-
-#settings_help_911Assist .ico-911 {
- width: 104px;
- height: 100px;
- background: url(../images/settings/911-ico.png) no-repeat;
- top: 45px;
- left: -12px;
-}
-
-#settings_help_911Assist .assist-911 {
- width: 425px;
- left: 134px;
- top: 17px;
-}
-
-#settings_help_911Assist.fr .assist-911 {
- width: 500px;
-}
-
-#settings_help_911Assist .a911 {
- left: 135px;
- top: 70px;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
- -webkit-border-top-left-radius: 3px;
- -webkit-border-top-right-radius: 3px;
- -moz-border-radius-topleft: 3px;
- -moz-border-radius-topright: 3px;
- border-top-left-radius: 3px;
- border-top-right-radius: 3px;
-}
-
-#settings_help_911Assist .a911-on {
- width: 99px;
- text-align: center;
- right: 109px;
- top: 10px;
-}
-
-#settings_help_911Assist .a911-off {
- width: 99px;
- text-align: center;
- right: 9px;
- top: 10px;
-}
-
-#settings_help_911Assist .vri {
- line-height: 24px;
- width: 148px;
- top: 170px;
- left: -35px;
- height: 98px;
-}
-
-#settings_help_911Assist .vri span{
- position: absolute;
- margin: 26px 0 0 0;
- text-align: center;
-}
-
-#settings_help_911Assist.fr .vri span{
- position: absolute;
- margin: 14px 0 0 15px;
- width: 117px;
- text-align: center;
-}
-
-#settings_help_911Assist .a911r {
- left: 135px;
- top: 120px;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- border-radius: 0;
- -webkit-border-bottom-left-radius: 3px;
- -webkit-border-bottom-right-radius: 3px;
- -moz-border-radius-bottomleft: 3px;
- -moz-border-radius-bottomright: 3px;
- border-bottom-left-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-
-#settings_help_911Assist .icofesd {
- width: 400px;
- top: 185px;
- left: 135px;
-}
-
-#settings_help_911Assist .sarah {
- top: 220px;
- left: 135px;
- line-height: 47px;
- width: 158px;
- text-indent: 12px;
-}
-
-#settings_help_911Assist .sarah > .ico, #settings_help_911Assist .john > .ico {
- top: 11px;
- right: 13px;
- width: 19px;
- height: 26px;
- background: url(../images/settings/ico_phone_off.png) no-repeat;
-}
-
-#settings_help_911Assist .john {
- top: 220px;
- left: 305px;
- line-height: 47px;
- width: 158px;
- text-indent: 12px;
-}
-
-#settings_help_911Assist .edit {
- top: 220px;
- left: 475px;
- line-height: 47px;
- width: 158px;
- text-indent: 12px;
-}
-
-#settings_help_911Assist .edit > .ico {
- top: 14px;
- right: 13px;
- width: 14px;
- height: 26px;
- background: url(../images/settings/arr-r-disable.png) no-repeat;
-}
-
-#settings_help_911Assist .disabled .ico {
- opacity: 1
-}
-
-.helpmode #settings_help_911Assist {
- background: url(../images/settings/view_settings_help_911Assist_bg_help.png) no-repeat!important;
-}
-
-.helpmode #settings_help_911Assist .disabled .ico {
- opacity: 0;
-}
-
-.helpmode .ico-911 {
- display: none !important;
-}
-
-.helpmode #settings_help_911Assist .btn{
- padding: 1px;
-}
-
-.helpmode #settings_help_911Assist .inner-content div{
- text-shadow: 0 0 3px #999;
-}
-
-.helpmode #viewSettingsDisplay_vri{
- left: -36px;
-}
-
-.helpmode #viewSettingsDisplay_assist-a911{
- left: 136px;
- top: 71px;
-}
-
-.helpmode #viewSettingsDisplay_assist-a911r{
- left: 136px;
- top: 121px;
-}
-
-/******************* For Settings.Help.VoiceCommandList Menu*******************/
-#settings_help_voiceCommandList {
- top: -38px;
- left: -160px;
- width: 800px;
- height: 384px;
- background-color: black;
- font-size: 20px;
- z-index: 1001
-}
-
-#settings_help_voiceCommandList .backButton {
- margin-top: 11px;
-}
-
-#settings_help_voiceCommandList .block-header-title {
- top: 22px;
- left: 76px;
-}
-
-#settings_help_voiceCommandList_list {
- position: relative;
- margin-top: 85px;
- margin-left: 65px;
- width: 730px;
- height: 251px;
-}
-
-#settings_help_voiceCommandList_list .list-content {
- width: 670px;
-}
-
-#settings_help_voiceCommandList_list .list-item span {
- padding-left: 13px;
-}
-
-#settings_help_voiceCommandList_list .list-item .ico {
- float: right;
- border: 1px solid #393939;
- border-radius: 2px;
- margin-top: 9px;
- margin-right: 9px;
- opacity: 0.3;
-}
-
-.help-mode #settings_help_voiceCommandList {
- background-image: url(../images/settings/settings_help_VoiceCommandList_bg_help.png);
- background-repeat: no-repeat;
- background-position: 60px 80px;
-}
-
-.help-mode #settings_help_voiceCommandList .list-item span{
- text-shadow: 0 0 3px #999;
-}
-
-#settings_settings_system_list .button-group {
- right: 10px;
- top: 10px;
- border: 1px solid #393939;
- border-radius: 2px;
-}
-
-#settings_settings_system_list .button-group .button {
- width: 148px;
- position: relative;
- float: left;
- text-align: center;
- border: none;
- border-radius: 0px;
-}
-
-#settings_settings_system_list .button-group span {
- margin-left: 0px;
-}
-
-#settings_settings_system_list .button-group .button.active {
- background: url(../images/settings/btn-28h-gray-active.png) repeat-x !important;
-} \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/ffw/BasicCommunicationRPC.js b/SDL_Core/src/components/HMI/ffw/BasicCommunicationRPC.js
index 96407e113..afc619bfa 100755..100644
--- a/SDL_Core/src/components/HMI/ffw/BasicCommunicationRPC.js
+++ b/SDL_Core/src/components/HMI/ffw/BasicCommunicationRPC.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -31,278 +30,566 @@
* mobile apps, geting the list of devices and applications and data transfer.
*/
-FFW.BasicCommunication = FFW.RPCObserver.create( {
-
- /**
- * access to basic RPC functionality
- */
- client: FFW.RPCClient.create( {
- componentName: "BasicCommunicationClient"
- } ),
-
- getAppListRequestId: -1,
- getDeviceListRequestId: -1,
- activateAppRequestId: -1,
- onAppRegisteredSubscribeRequestId: -1,
- onAppUnregisteredSubscribeRequestId: -1,
- onAppRegisteredUnsubscribeRequestId: -1,
- onAppUnregisteredUnsubscribeRequestId: -1,
-
- // const
- onAppRegisteredNotification: "BasicCommunication.OnAppRegistered",
- onAppUnregisteredNotification: "BasicCommunication.OnAppUnregistered",
- onDeviceListUpdatedNotification: "BasicCommunication.OnDeviceListUpdated",
-
- /**
- * init object
- */
- init: function() {
- },
-
- /**
- * connect to RPC bus
- */
- connect: function() {
-
- this.client.connect( this, 600 );
- },
-
- /**
- * disconnect from RPC bus
- */
- disconnect: function() {
- this.client.disconnect();
- },
-
- /**
- * Client is registered - we can send request starting from this point of
- * time
- */
- onRPCRegistered: function() {
- Em.Logger.log( "FFW.BasicCommunicationRPC.onRPCRegistered" );
- this._super();
-
- // subscribe to notifications
- this.onAppRegisteredSubscribeRequestId = this.client.subscribeToNotification( this.onAppRegisteredNotification );
- this.onAppUnregisteredSubscribeRequestId = this.client.subscribeToNotification( this.onAppUnregisteredNotification );
- this.onDeviceListUpdatedNotificationId = this.client.subscribeToNotification( this.onDeviceListUpdatedNotification );
- },
-
- /**
- * Client is unregistered - no more requests
- */
- onRPCUnregistered: function() {
- Em.Logger.log( "FFW.BasicCommunicationRPC.onRPCUnregistered" );
- this._super();
-
- // unsubscribe from notifications
- this.onAppRegusteredUnsubscribeRequestId = this.client.unsubscribeFromNotification( this.onAppRegisteredNotification );
- this.onAppUnregusteredUnsubscribeRequestId = this.client.unsubscribeFromNotification( this.onAppUnregisteredNotification );
- this.onDeviceListUpdatedNotificationId = this.client.unsubscribeFromNotification( this.onDeviceListUpdatedNotification );
- },
-
- /**
- * Client disconnected.
- */
- onRPCDisconnected: function() {
- if( SDL.SDLAppController ){
- SDL.SDLAppController.onSDLDisconected();
- }
- },
-
- /**
- * when result is received from RPC component this function is called It is
- * the propriate place to check results of reuqest execution Please use
- * previously store reuqestID to determine to which request repsonse belongs
- * to
- */
- onRPCResult: function( response ) {
- Em.Logger.log( "FFW.BasicCommunicationRPC.onRPCResult" );
- this._super();
-
- if( response.result.method == "BasicCommunication.GetAppListResponse" ){
- if( SDL.States.info.active ){
- SDL.SDLController.onGetAppList( response.result.appList );
+FFW.BasicCommunication = FFW.RPCObserver
+ .create( {
+
+ /**
+ * access to basic RPC functionality
+ */
+ client: FFW.RPCClient.create( {
+ componentName: "BasicCommunication"
+ }),
+
+ onAppRegisteredSubscribeRequestID: -1,
+ onAppUnregisteredSubscribeRequestID: -1,
+ onPlayToneSubscribeRequestID: -1,
+ onSDLCloseSubscribeRequestID: -1,
+
+ onAppRegisteredUnsubscribeRequestID: -1,
+ onAppUnregisteredUnsubscribeRequestID: -1,
+ onPlayToneUnsubscribeRequestID: -1,
+ onSDLCloseUnsubscribeRequestID: -1,
+
+ // const
+ onAppRegisteredNotification: "BasicCommunication.OnAppRegistered",
+ onAppUnregisteredNotification: "BasicCommunication.OnAppUnregistered",
+ onPlayToneNotification: "BasicCommunication.PlayTone",
+ onSDLCloseNotification: "BasicCommunication.OnSDLClose",
+
+ /**
+ * init object
+ */
+ init: function() {
+
+ },
+
+ /**
+ * connect to RPC bus
+ */
+ connect: function() {
+
+ this.client.connect(this, 600); // Magic number is unique identifier
+ // for component
+ },
+
+ /**
+ * disconnect from RPC bus
+ */
+ disconnect: function() {
+
+ this.client.disconnect();
+ },
+
+ /**
+ * Client is registered - we can send request starting from this point
+ * of time
+ */
+ onRPCRegistered: function() {
+
+ Em.Logger.log("FFW.BasicCommunicationRPC.onRPCRegistered");
+ this._super();
+
+ // subscribe to notifications
+ this.onAppRegisteredSubscribeRequestID = this.client
+ .subscribeToNotification(this.onAppRegisteredNotification);
+ this.onAppUnregisteredSubscribeRequestID = this.client
+ .subscribeToNotification(this.onAppUnregisteredNotification);
+ this.onPlayToneSubscribeRequestID = this.client
+ .subscribeToNotification(this.onPlayToneNotification);
+ this.onSDLCloseSubscribeRequestID = this.client
+ .subscribeToNotification(this.onSDLCloseNotification);
+
+ },
+
+ /**
+ * Client is unregistered - no more requests
+ */
+ onRPCUnregistered: function() {
+
+ Em.Logger.log("FFW.BasicCommunicationRPC.onRPCUnregistered");
+ this._super();
+
+ // unsubscribe from notifications
+ this.onAppRegisteredUnsubscribeRequestID = this.client
+ .unsubscribeFromNotification(this.onAppRegisteredNotification);
+ this.onAppUnregisteredUnsubscribeRequestID = this.client
+ .unsubscribeFromNotification(this.onAppUnregisteredNotification);
+ this.onPlayToneUnsubscribeRequestID = this.client
+ .unsubscribeFromNotification(this.onPlayToneUpdatedNotification);
+ this.onSDLCloseUnsubscribeRequestID = this.client
+ .unsubscribeFromNotification(this.onSDLCloseNotification);
+ },
+
+ /**
+ * Client disconnected.
+ */
+ onRPCDisconnected: function() {
+
+ if (SDL.SDLAppController) {
+ SDL.SDLAppController.onSDLDisconected();
}
- }
-
- if( response.result.method == "BasicCommunication.GetDeviceListResponse" ){
- if( SDL.States.info.active ){
- SDL.SDLModel.onGetDeviceList( response.result );
+ },
+
+ /**
+ * when result is received from RPC component this function is called It
+ * is the propriate place to check results of reuqest execution Please
+ * use previously store reuqestID to determine to which request repsonse
+ * belongs to
+ */
+ onRPCResult: function(response) {
+
+ Em.Logger.log("FFW.BasicCommunicationRPC.onRPCResult");
+ this._super();
+ },
+
+ /**
+ * handle RPC erros here
+ */
+ onRPCError: function(error) {
+
+ Em.Logger.log("FFW.BasicCommunicationRPC.onRPCError");
+ this._super();
+ },
+
+ /**
+ * handle RPC notifications here
+ */
+ onRPCNotification: function(notification) {
+
+ Em.Logger.log("FFW.BasicCommunicationRPC.onRPCNotification");
+ this._super();
+
+ if (notification.method == this.onAppRegisteredNotification) {
+ SDL.SDLModel.onAppRegistered(notification.params);
+ this.OnFindApplications();
}
- }
-
- if( response.id == this.activateAppRequestId ){
- //
- }
- },
-
- /**
- * handle RPC erros here
- */
- onRPCError: function( error ) {
- Em.Logger.log( "FFW.BasicCommunicationRPC.onRPCError" );
- this._super();
- },
-
- /**
- * handle RPC notifications here
- */
- onRPCNotification: function( notification ) {
- Em.Logger.log( "FFW.BasicCommunicationRPC.onRPCNotification" );
- this._super();
-
- if( notification.method == this.onAppRegisteredNotification ){
- SDL.SDLModel.onAppRegistered( notification.params.application );
- this.getAppList();
- }
-
- if( notification.method == this.onAppUnregisteredNotification ){
- // remove app from list
- SDL.SDLModel.onAppUnregistered( notification.params );
- }
- if( notification.method == this.onDeviceListUpdatedNotification ){
- SDL.SDLModel.onGetDeviceList( notification.params );
- }
- },
-
- /**
- * handle RPC requests here
- */
- onRPCRequest: function( request ) {
- Em.Logger.log( "FFW.BasicCommunicationRPC.onRPCRequest" );
- this._super();
-
- // nothing to do, it is client
- },
-
- /**
- * Request for list of avaliable applications
- */
- getAppList: function() {
- this.getAppListRequestId = this.client.generateId();
-
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": this.getAppListRequestId,
- "method": "BasicCommunication.GetAppList",
- "params": {}
- };
- this.client.send( JSONMessage );
- },
-
- /**
- * send notification when version of protocol vas changed
- *
- * @params {Number}
- */
- OnVersionChanged: function( version ) {
- Em.Logger.log( "FFW.BasicCommunication.OnVersionChanged" );
-
- // send repsonse
- var JSONMessage = {
- "jsonrpc": "2.0",
- "method": "BasicCommunication.OnVersionChanged",
- "params": {
- "versionNumber": version
+ if (notification.method == this.onAppUnregisteredNotification) {
+ // remove app from list
+ SDL.SDLModel.onAppUnregistered(notification.params);
}
- };
- this.client.send( JSONMessage );
- },
-
- /**
- * Request for list of avaliable devices
- */
- getDeviceList: function() {
- this.getDeviceListRequestId = this.client.generateId();
-
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": this.getDeviceListRequestId,
- "method": "BasicCommunication.GetDeviceList",
- "params": {}
- };
- this.client.send( JSONMessage );
- },
-
- /**
- * Sending data from HMI for processing in BasicCommunication
- *
- * @params {Array}
- */
- SendData: function( data ) {
- Em.Logger.log( "FFW.BasicCommunication.SendData" );
-
- if( !data ){
- data =
- [
- "Data for sending from HMI to Mobile application."
- ];
- }
- // send request
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": this.client.idStart,
- "method": "BasicCommunication.SendData",
- "params": {
- "data": data
+ if (notification.method == this.onPlayToneNotification) {
+ SDL.SDLModel.onPlayTone();
}
- };
- if( SDL.SDLModel.sendDataExtend ){
- JSONMessage.params["url"] = "http://projects.genivi.org/smartphonelink/";
- JSONMessage.params["timeout"] = 10000;
- }
-
- this.client.send( JSONMessage );
- },
-
- /**
- * Notification when user returned to application
- *
- * @params {Number}
- */
- ActivateApp: function( appId ) {
- Em.Logger.log( "FFW.BasicCommunication.ActivateApp" );
-
- // send request
-
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": this.client.idStart,
- "method": "BasicCommunication.ActivateApp",
- "params": {
- "appName": SDL.SDLController.getApplicationModel( appId ).appName,
- "appId": appId
+ if (notification.method == this.onSDLCloseNotification) {
+ //notification handler method
+ }
+ },
+
+ /**
+ * handle RPC requests here
+ */
+ onRPCRequest: function(request) {
+
+ Em.Logger.log("FFW.BasicCommunicationRPC.onRPCRequest");
+ this._super();
+
+ if (this.validationCheck(request)) {
+
+ if (request.method == "BasicCommunication.MixingAudioSupported") {
+ this.MixingAudioSupported(true);
+ }
+ if (request.method == "BasicCommunication.AllowAllApps") {
+ this.AllowAllApps(true);
+ }
+ if (request.method == "BasicCommunication.AllowApp") {
+ this.AllowApp(true);
+ }
+ if (request.method == "BasicCommunication.AllowDeviceToConnect") {
+ this
+ .AllowDeviceToConnect(request.id, request.method, allow);
+ }
+ if (request.method == "BasicCommunication.UpdateAppList") {
+ if (SDL.States.info.active) {
+ SDL.SDLController
+ .onGetAppList(request.params.applications);
+ }
+ this.sendBCResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+ }
+ if (request.method == "BasicCommunication.UpdateDeviceList") {
+ SDL.SDLModel.onGetDeviceList(request.params);
+ this.sendBCResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+ }
+ if (request.method == "BasicCommunication.ActivateApp") {
+ SDL.SDLController.getApplicationModel(request.params.appID).turnOnSDL();
+ this.sendBCResult(SDL.SDLModel.resultCode["SUCCESS"], request.id, request.method);
+ }
}
- };
- this.client.send( JSONMessage );
- },
-
- /**
- * Sent notification that user was turned off the app and the reason why
- *
- * @params {String}
- * @params {String}
- * @params {Number}
- */
- DeactivateApp: function( appName, reason, appId ) {
- Em.Logger.log( "FFW.BasicCommunication.OnAppDeactivated" );
-
- // send request
-
- var JSONMessage = {
- "jsonrpc": "2.0",
- "method": "BasicCommunication.OnAppDeactivated",
- "params": {
- "appName": appName,
- "appId": appId,
- "reason": reason
+ },
+
+ /**
+ * send response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendBCResult: function(resultCode, id, method) {
+
+ Em.Logger.log("FFW." + method + "Response");
+
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "method": method
+ }
+ };
+ this.client.send(JSONMessage);
}
- };
- this.client.send( JSONMessage );
- }
+ },
+
+ /**
+ * send response from onRPCRequest
+ *
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ * @param {Boolean}
+ * allow
+ */
+ AllowDeviceToConnect: function(id, method, allow) {
+
+ Em.Logger.log("FFW." + method + "Response");
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": {
+ "code": SDL.SDLModel.resultCode["SUCCESS"], // type (enum)
+ // from SDL
+ // protocol
+ "method": method,
+ "allow": true
+ }
+ };
+ this.client.send(JSONMessage);
+
+ },
+
+ /**
+ * notification that UI is ready BasicCommunication should be sunscribed
+ * to this notification
+ */
+ onReady: function() {
+
+ Em.Logger.log("FFW.BasicCommunication.onReady");
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "BasicCommunication.OnReady"
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Send request if application was activated
+ *
+ * @param {number} appID
+ */
+ OnAppActivated: function(appID) {
+
+ Em.Logger.log("FFW.BasicCommunication.OnAppActivated");
+
+ // send notification
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "BasicCommunication.OnAppActivated",
+ "params": {
+ "appID": appID
+ }
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * This methos is request to get list of registered apps.
+ */
+ OnFindApplications: function() {
+
+ Em.Logger.log("FFW.BasicCommunication.OnFindApplications");
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "BasicCommunication.OnFindApplications"
+ };
+
+ if (SDL.SDLModel.CurrDeviceInfo.name
+ || SDL.SDLModel.CurrDeviceInfo.id) {
+
+ JSONMessage.params = {
+ "deviceInfo": SDL.SDLModel.CurrDeviceInfo
+ };
+ }
+
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Request for list of avaliable devices
+ */
+ getDeviceList: function() {
+
+ Em.Logger.log("FFW.BasicCommunication.GetDeviceList");
+
+ this.getDeviceListRequestID = this.client.generateID();
+
+ var JSONMessage = {
+ "id": this.getDeviceListRequestID,
+ "jsonrpc": "2.0",
+ "method": "BasicCommunication.GetDeviceList"
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Invoked by UI component when user switches to any functionality which
+ * is not other mobile application.
+ *
+ * @params {String}
+ * @params {Number}
+ */
+ OnAppDeactivated: function(reason, appID) {
+
+ Em.Logger.log("FFW.BasicCommunication.OnAppDeactivated");
+
+ // send request
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "BasicCommunication.OnAppDeactivated",
+ "params": {
+ "appID": appID,
+ "reason": reason
+ }
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Initiated by HMI user. In response optional list of found devices -
+ * if not provided, not were found.
+ */
+ OnStartDeviceDiscovery: function() {
+
+ Em.Logger.log("FFW.BasicCommunication.OnStartDeviceDiscovery");
+
+ // send request
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "BasicCommunication.OnStartDeviceDiscovery"
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Used by HMI when User chooses to exit application.
+ *
+ * @params {Number}
+ */
+ ExitApplication: function(appID) {
+
+ Em.Logger.log("FFW.BasicCommunication.OnExitApplication");
+
+ // send request
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "BasicCommunication.OnExitApplication",
+ "params": {
+ "appID": appID
+ }
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Sent by HMI to SDL to close all registered applications.
+ *
+ * @params {String}
+ */
+ ExitAllApplications: function(reason) {
+
+ Em.Logger.log("FFW.BasicCommunication.OnExitAllApplications");
+
+ // send request
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "BasicCommunication.OnExitAllApplications",
+ "params": {
+ "reason": reason
+ }
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Response with params of the last one supports mixing audio (ie
+ * recording TTS command and playing audio).
+ *
+ * @params {Number}
+ */
+ MixingAudioSupported: function(attenuatedSupported) {
+
+ Em.Logger.log("FFW.BasicCommunication.MixingAudioSupportedResponse");
+
+ // send request
+
+ var JSONMessage = {
+ "id": this.client.idStart,
+ "jsonrpc": "2.0",
+ "result": {
+ "code": 0,
+ "attenuatedSupported": attenuatedSupported,
+ "method": "BasicCommunication.MixingAudioSupported"
+ }
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Response with Results by user/HMI allowing SDL functionality or
+ * disallowing access to all mobile apps.
+ *
+ * @params {Number}
+ */
+ AllowAllApps: function(allowed) {
+
+ Em.Logger.log("FFW.BasicCommunication.AllowAllAppsResponse");
+
+ // send request
+
+ var JSONMessage = {
+ "id": this.client.idStart,
+ "jsonrpc": "2.0",
+ "result": {
+ "code": 0,
+ "method": "BasicCommunication.AllowAllApps",
+ "allowed": allowed
+ }
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Response with result of allowed application
+ *
+ * @params {Number}
+ */
+ AllowApp: function(allowed) {
+
+ Em.Logger.log("FFW.BasicCommunication.AllowAppResponse");
+
+ // send request
+
+ var JSONMessage = {
+ "id": this.client.idStart,
+ "jsonrpc": "2.0",
+ "result": {
+ "code": 0,
+ "method": "BasicCommunication.AllowApp",
+ "allowed": allowed
+ }
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Notifies if device was choosed
+ *
+ * @param {String}
+ * deviceName
+ * @param {Number}
+ * appID
+ */
+ OnDeviceChosen: function(deviceName, appID) {
+
+ Em.Logger.log("FFW.BasicCommunication.OnDeviceChosen");
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "BasicCommunication.OnDeviceChosen",
+ "params": {
+ "deviceInfo": {
+ "name": deviceName,
+ "id": appID
+ }
+ }
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Send error response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendError: function(resultCode, id, method, message) {
+
+ Em.Logger.log("FFW." + method + "Response");
+
+ if (resultCode != SDL.SDLModel.resultCode["SUCCESS"]) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "error": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "message": message,
+ "data": {
+ "method": method
+ }
+ }
+ };
+ this.client.send(JSONMessage);
+ }
+ },
+
+ /**
+ * Initiated by HMI.
+ */
+ OnSystemRequest: function() {
+
+ Em.Logger.log("FFW.BasicCommunication.OnSystemRequest");
+
+ // send request
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "BasicCommunication.OnStartDeviceDiscovery",
+ "params":{
+ "requestType": "HTTP",
+ "url": "http://127.0.0.1",
+ "fileType": "BINARY",
+ "offset": 1000,
+ "length": 10000
+ }
+ };
+ this.client.send(JSONMessage);
+ }
-} )
+ })
diff --git a/SDL_Core/src/components/HMI/ffw/ButtonsRPC.js b/SDL_Core/src/components/HMI/ffw/ButtonsRPC.js
index 1b5b8174f..d3134295e 100755..100644
--- a/SDL_Core/src/components/HMI/ffw/ButtonsRPC.js
+++ b/SDL_Core/src/components/HMI/ffw/ButtonsRPC.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -38,19 +37,22 @@ FFW.Buttons = FFW.RPCObserver.create( {
*/
client: FFW.RPCClient.create( {
componentName: "Buttons"
- } ),
+ }),
/*
* connect to RPC bus
*/
connect: function() {
- this.client.connect( this, 200 );
+
+ this.client.connect(this, 200); // Magic number is unique identifier for
+ // component
},
/*
* disconnect from RPC bus
*/
disconnect: function() {
+
this.client.disconnect();
},
@@ -59,7 +61,8 @@ FFW.Buttons = FFW.RPCObserver.create( {
* time
*/
onRPCRegistered: function() {
- Em.Logger.log( "FFW.Buttons.onRPCRegistered" );
+
+ Em.Logger.log("FFW.Buttons.onRPCRegistered");
this._super();
},
@@ -67,7 +70,8 @@ FFW.Buttons = FFW.RPCObserver.create( {
* Client is unregistered - no more requests
*/
onRPCUnregistered: function() {
- Em.Logger.log( "FFW.Buttons.onRPCUnregistered" );
+
+ Em.Logger.log("FFW.Buttons.onRPCUnregistered");
this._super();
},
@@ -84,142 +88,163 @@ FFW.Buttons = FFW.RPCObserver.create( {
* previously store reuqestID to determine to which request repsonse belongs
* to
*/
- onRPCResult: function( response ) {
- Em.Logger.log( "FFW.Buttons.onRPCResult" );
+ onRPCResult: function(response) {
+
+ Em.Logger.log("FFW.Buttons.onRPCResult");
this._super();
},
/*
* handle RPC erros here
*/
- onRPCError: function( error ) {
- Em.Logger.log( "FFW.Buttons.onRPCError" );
+ onRPCError: function(error) {
+
+ Em.Logger.log("FFW.Buttons.onRPCError");
this._super();
},
/*
* handle RPC notifications here
*/
- onRPCNotification: function( notification ) {
- Em.Logger.log( "FFW.Buttons.onRPCNotification" );
+ onRPCNotification: function(notification) {
+
+ Em.Logger.log("FFW.Buttons.onRPCNotification");
this._super();
},
/*
* handle RPC requests here
*/
- onRPCRequest: function( request ) {
- Em.Logger.log( "FFW.Buttons.onRPCRequest" );
+ onRPCRequest: function(request) {
+
+ Em.Logger.log("FFW.Buttons.onRPCRequest");
this._super();
- if( request.method == "Buttons.GetCapabilities" ){
+ if (request.method == "Buttons.GetCapabilities") {
// send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
"id": request.id,
"result": {
- "capabilities":
- [
- {
- "name": "PRESET_0",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "PRESET_1",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "PRESET_2",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "PRESET_3",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "PRESET_4",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "PRESET_5",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "PRESET_6",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "PRESET_7",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "PRESET_8",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "PRESET_9",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "OK",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "SEEKLEFT",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "SEEKRIGHT",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "TUNEUP",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- },
- {
- "name": "TUNEDOWN",
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true
- }
- ],
+ "capabilities": [
+ {
+ "name": "PRESET_0",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_1",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_2",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_3",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_4",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_5",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_6",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_7",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_8",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_9",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "OK",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "SEEKLEFT",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "SEEKRIGHT",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "TUNEUP",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "TUNEDOWN",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }
+ ],
"presetBankCapabilities": {
"onScreenPresetsAvailable": true
},
- "method": "Buttons.GetCapabilitiesResponse",
- "resultCode": "SUCCESS" // type (enum) from SDL protocol
+ "code": 0,
+ "method": "Buttons.GetCapabilities"
+ }
+ };
+ this.client.send(JSONMessage);
+ }
+ },
+
+ /**
+ * Send error response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendError: function(resultCode, id, method, message) {
+
+ Em.Logger.log("FFW." + method + "Response");
+
+ if (resultCode) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "error": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "message": message,
+ "data": {
+ "method": method
+ }
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
}
},
@@ -228,9 +253,9 @@ FFW.Buttons = FFW.RPCObserver.create( {
* when the RPC link is up or failed to connect and all the views are
* rendered.
*/
- buttonPressed: function( id, type ) {
+ buttonPressed: function(id, type) {
- Em.Logger.log( "FFW.Buttons.buttonPressed " + type );
+ Em.Logger.log("FFW.Buttons.buttonPressed " + type);
var JSONMessage = {
"jsonrpc": "2.0",
@@ -241,7 +266,7 @@ FFW.Buttons = FFW.RPCObserver.create( {
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
/*
@@ -249,9 +274,9 @@ FFW.Buttons = FFW.RPCObserver.create( {
* when the RPC link is up or failed to connect and all the views are
* rendered.
*/
- buttonEvent: function( id, type ) {
+ buttonEvent: function(id, type) {
- Em.Logger.log( "FFW.Buttons.buttonEvent " + type );
+ Em.Logger.log("FFW.Buttons.OnButtonEvent " + type);
var JSONMessage = {
"jsonrpc": "2.0",
@@ -262,7 +287,7 @@ FFW.Buttons = FFW.RPCObserver.create( {
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
@@ -271,9 +296,9 @@ FFW.Buttons = FFW.RPCObserver.create( {
* when the RPC link is up or failed to connect and all the views are
* rendered.
*/
- buttonPressedCustom: function( name, type, softButtonID ) {
+ buttonPressedCustom: function(name, type, softButtonID) {
- // Em.Logger.log("FFW.Buttons.buttonPressedCustom " + type);
+ Em.Logger.log("FFW.Buttons.OnButtonPress " + type);
var JSONMessage = {
"jsonrpc": "2.0",
@@ -285,7 +310,7 @@ FFW.Buttons = FFW.RPCObserver.create( {
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
/*
@@ -293,9 +318,9 @@ FFW.Buttons = FFW.RPCObserver.create( {
* when the RPC link is up or failed to connect and all the views are
* rendered.
*/
- buttonEventCustom: function( name, type, softButtonID ) {
+ buttonEventCustom: function(name, type, softButtonID) {
- // Em.Logger.log("FFW.Buttons.buttonEventCustom " + type);
+ Em.Logger.log("FFW.Buttons.OnButtonEvent " + type);
var JSONMessage = {
"jsonrpc": "2.0",
@@ -307,7 +332,7 @@ FFW.Buttons = FFW.RPCObserver.create( {
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
}
-} )
+})
diff --git a/SDL_Core/src/components/HMI/ffw/Framework.js b/SDL_Core/src/components/HMI/ffw/Framework.js
index c73e47f94..4ab772528 100755..100644
--- a/SDL_Core/src/components/HMI/ffw/Framework.js
+++ b/SDL_Core/src/components/HMI/ffw/Framework.js
@@ -1,40 +1,40 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name FFW
- * @desc Setup framework namespace and settings
- * @category Framework
- * @filesource app/Framework.js
- * @version 1.0
- */
-
-FFW = Em.Object.create( {
-
- init: function() {
- Em.Logger.log( 'FFW: Framework init' );
- }
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name FFW
+ * @desc Setup framework namespace and settings
+ * @category Framework
+ * @filesource app/Framework.js
+ * @version 1.0
+ */
+
+FFW = Em.Object.create( {
+
+ init: function() {
+
+ Em.Logger.log('FFW: Framework init');
+ }
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/ffw/NavigationRPC.js b/SDL_Core/src/components/HMI/ffw/NavigationRPC.js
new file mode 100644
index 000000000..b08a19adc
--- /dev/null
+++ b/SDL_Core/src/components/HMI/ffw/NavigationRPC.js
@@ -0,0 +1,319 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Reference implementation of Navigation component.
+ *
+ * Interface to get or set some essential information sent from SDLCore.
+ * Navigation is responsible for the navigationApp functionality provided by the
+ * application: display graphics and multimedia components, is responsible for
+ * the transfer of managed manipulations, generated by the user to the server.
+ *
+ */
+
+FFW.Navigation = FFW.RPCObserver.create( {
+
+ /**
+ * If true then Navigation is present and ready to communicate with SDL.
+ *
+ * @type {Boolean}
+ */
+ isReady: true,
+
+ /**
+ * access to basic RPC functionality
+ */
+ client: FFW.RPCClient.create( {
+ componentName: "Navigation"
+ }),
+
+ // temp var for debug
+ appID: 1,
+
+ /**
+ * connect to RPC bus
+ */
+ connect: function() {
+
+ this.client.connect(this, 800); // Magic number is unique identifier for
+ // component
+ },
+
+ /**
+ * disconnect from RPC bus
+ */
+ disconnect: function() {
+
+ this.client.disconnect();
+ },
+
+ /**
+ * Client is registered - we can send request starting from this point of
+ * time
+ */
+ onRPCRegistered: function() {
+
+ Em.Logger.log("FFW.Navigation.onRPCRegistered");
+ this._super();
+
+ // subscribe to notifications
+ },
+
+ /**
+ * Client is unregistered - no more requests
+ */
+ onRPCUnregistered: function() {
+
+ Em.Logger.log("FFW.Navigation.onRPCUnregistered");
+ this._super();
+
+ // unsubscribe from notifications
+ },
+
+ /**
+ * Client disconnected.
+ */
+ onRPCDisconnected: function() {
+
+ },
+
+ /**
+ * when result is received from RPC component this function is called It is
+ * the propriate place to check results of request execution Please use
+ * previously store reuqestID to determine to which request repsonse belongs
+ * to
+ */
+ onRPCResult: function(response) {
+
+ Em.Logger.log("FFW.Navigation.onRPCResult");
+ this._super();
+ },
+
+ /**
+ * handle RPC erros here
+ */
+ onRPCError: function(error) {
+
+ Em.Logger.log("FFW.Navigation.onRPCError");
+ this._super();
+ },
+
+ /**
+ * handle RPC notifications here
+ */
+ onRPCNotification: function(notification) {
+
+ Em.Logger.log("FFW.Navigation.onRPCNotification");
+ this._super();
+
+ if (notification.method == this.onStopStreamNotification) {
+ SDL.SDLModel.onStopStream(notification.params.appID);
+ }
+ },
+
+ /**
+ * handle RPC requests here
+ */
+ onRPCRequest: function(request) {
+
+ Em.Logger.log("FFW.Navigation.onRPCRequest");
+ if (this.validationCheck(request)) {
+
+ var resultCode = null;
+
+ switch (request.method) {
+ case "Navigation.IsReady": {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "available": this.get('isReady'),
+ "code": SDL.SDLModel.resultCode["SUCCESS"],
+ "method": "Navigation.IsReady"
+ }
+ };
+
+ this.client.send(JSONMessage);
+
+ break;
+ }
+ case "Navigation.AlertManeuver": {
+
+ this.sendNavigationResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+
+ break;
+ }
+ case "Navigation.ShowConstantTBT": {
+
+ SDL.SDLModel.tbtActivate(request.params);
+ this.sendNavigationResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+
+ break;
+ }
+ case "Navigation.UpdateTurnList": {
+
+ SDL.SDLModel.tbtTurnListUpdate(request.params);
+ this.sendNavigationResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+
+ break;
+ }
+ case "Navigation.StartAudioStream": {
+
+ SDL.SDLModel.startAudioStream(request.params);
+
+ this.sendNavigationResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+
+ break;
+ }
+ case "Navigation.StopAudioStream": {
+
+ SDL.SDLModel.stoptAudioStream(request.params.appID);
+
+ this.sendNavigationResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+
+ break;
+ }
+ case "Navigation.StartStream": {
+
+ SDL.SDLModel.startStream(request.params);
+
+ this.sendNavigationResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+
+ break;
+ }
+ case "Navigation.StopStream": {
+
+ SDL.SDLModel.stopStream(request.params.appID);
+
+ this.sendNavigationResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+
+ break;
+ }
+ }
+ }
+ },
+
+ /**
+ * Send error response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendError: function(resultCode, id, method, message) {
+
+ Em.Logger.log("FFW." + method + "Response");
+
+ if (resultCode != SDL.SDLModel.resultCode["SUCCESS"]) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "error": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "message": message,
+ "data": {
+ "method": method
+ }
+ }
+ };
+ this.client.send(JSONMessage);
+ }
+ },
+
+ /**
+ * send response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendNavigationResult: function(resultCode, id, method) {
+
+ Em.Logger.log("FFW.UI." + method + "Response");
+
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "method": method
+ }
+ };
+ this.client.send(JSONMessage);
+ }
+ },
+
+ /**
+ * Notifies if TBTClientState was activated
+ *
+ * @param {String}
+ * state
+ * @param {Number}
+ * appID
+ */
+ onTBTClientState: function(state, appID) {
+
+ Em.Logger.log("FFW.Navigation.OnTBTClientState");
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "Navigation.OnTBTClientState",
+ "params": {
+ "state": state
+ }
+ };
+ this.client.send(JSONMessage);
+ }
+}) \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/ffw/RPCClient.js b/SDL_Core/src/components/HMI/ffw/RPCClient.js
index 0a7fe065a..744bbbc53 100755..100644
--- a/SDL_Core/src/components/HMI/ffw/RPCClient.js
+++ b/SDL_Core/src/components/HMI/ffw/RPCClient.js
@@ -1,261 +1,290 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- * Base class for RPC client
- *
- * Class provides access to basic functionality of RPC components Message Broker
- * as: registerComponent unregisterComponent subscription to notifications logic
- * to calculate request id
- */
-
-FFW.RPCClient = Em.Object.extend( {
-
- /*
- * transport layer for messages exchange
- */
- socket: null, // instance of websocket
-
- /*
- * url for message broker
- */
- url: "ws://localhost:8087",
-
- /*
- * Component name in RPC system It is unique.
- */
- componentName: null,
-
- /*
- * observer of RPC states
- */
- observer: null,
-
- /*
- * these variables are used to have unique request ids for different
- * components in RPC bus idStart is received as a response for
- * registerRPCComponent messages. space for ids for specific RPC component
- * is allocated by message broker
- */
- idStart: -1,
- idRange: 1000,
- requestId: -1,
-
- registerRequestId: -1,
- unregisterRequestId: -1,
-
- /*
- * Open WebSocket and initialize handlers
- */
- connect: function( observer, startId ) {
- this.observer = observer;
- this.idStart = startId;
-
- this.socket = new WebSocket( this.url, 'sample' );
-
- var self = this;
-
- this.socket.onopen = function( evt ) {
- self.onWSOpen( evt )
- };
- this.socket.onclose = function( evt ) {
- self.onWSClose( evt )
- };
- this.socket.onmessage = function( evt ) {
- self.onWSMessage( evt )
- };
- this.socket.onerror = function( evt ) {
- self.onWSError( evt )
- };
-
- },
-
- /*
- * Close WebSocket connection Please make sure that component was
- * unregistered in advance
- */
- disconnect: function() {
- this.unregisterRPCComponent();
- },
-
- /*
- * WebSocket connection is ready Now RPC component can be registered in
- * message broker
- */
- onWSOpen: function( evt ) {
- Em.Logger.log( "RPCCLient.onWSOpen" );
-
- this.registerRPCComponent();
- },
-
- /*
- * when result is received from RPC component this function is called It is
- * the propriate place to check results of reuqest execution Please use
- * previously store reuqestID to determine to which request repsonse belongs
- * to
- */
- onWSMessage: function( evt ) {
- Em.Logger.log( "Message received: " + evt.data );
-
- var jsonObj = JSON.parse( evt.data );
-
- // handle component registration
- if( jsonObj.id == this.registerRequestId ){
- if( jsonObj.error == null ){
- this.requestId = this.idStart = jsonObj.result;
- this.observer.onRPCRegistered();
- }
- // handle component unregistration
- }else if( jsonObj.id == this.unregisterRequestId ){
- if( jsonObj.error == null ){
- this.socket.close();
- this.observer.onRPCUnregistered();
- }
- // handle result, error, notification, requests
- }else{
- if( jsonObj.id == null ){
- this.observer.onRPCNotification( jsonObj );
- }else{
- if( jsonObj.result != null )
- this.observer.onRPCResult( jsonObj );
- else if( jsonObj.error != null )
- this.observer.onRPCError( jsonObj );
- else
- this.observer.onRPCRequest( jsonObj );
- }
- }
- },
-
- /*
- * WebSocket connection is closed Please make sure that RPCComponent was
- * dunregistered in advance
- */
- onWSClose: function( evt ) {
- Em.Logger.log( "RPCClient: Connection is closed" );
- this.observer.onRPCDisconnected();
- },
-
- /*
- * WebSocket connection errors handling
- */
- onWSError: function( evt ) {
- // Em.Logger.log("ERROR: " + evt.data);
- Em.Logger.log( "ERROR: " );
- },
-
- /*
- * register component is RPC bus
- */
- registerRPCComponent: function() {
- this.registerRequestId = this.idStart;
-
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": this.registerRequestId,
- "method": "MB.registerComponent",
- "params": {
- "componentName": this.componentName
- }
- };
- this.send( JSONMessage );
- },
-
- /*
- * unregister component is RPC bus
- */
- unregisterRPCComponent: function() {
- this.unregisterRequestId = this.generateId();
-
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": this.unregisterRequestId,
- "method": "MB.unregisterComponent",
- "params": {
- "componentName": this.componentName
- }
- };
- this.send( JSONMessage );
- },
-
- /*
- * Subscribes to notification. Returns the request's id.
- */
- subscribeToNotification: function( notification ) {
- var msgId = this.generateId();
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": msgId,
- "method": "MB.subscribeTo",
- "params": {
- "propertyName": notification
- }
- };
- this.send( JSONMessage );
- return msgId;
- },
-
- /*
- * Unsubscribes from notification. Returns the request's id.
- */
- unsubscribeFromNotification: function( notification ) {
- var msgId = this.client.generateId();
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": msgId,
- "method": "MB.unsubscribeFrom",
- "params": {
- "propertyName": notification
- }
- };
- this.send( JSONMessage );
- return msgId;
- },
-
- /*
- * stringify object and send via socket connection
- */
- send: function( obj ) {
- if( this.socket.readyState == this.socket.OPEN ){
- var strJson = JSON.stringify( obj );
- Em.Logger.log( strJson );
- this.socket.send( strJson );
- }else{
- Em.Logger.error( "RPCClient: Can't send message since socket is not ready" );
- }
- },
-
- /*
- * Generate id for new request to RPC component Function has to be used as
- * private
- */
- generateId: function() {
- this.requestId++;
- if( this.requestId >= this.idStart + this.idRange )
- this.requestId = this.idStart;
- return this.requestId;
- }
-
-} ) \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Base class for RPC client
+ *
+ * Class provides access to basic functionality of RPC components Message Broker
+ * as: registerComponent unregisterComponent subscription to notifications logic
+ * to calculate request id
+ */
+
+FFW.RPCClient = Em.Object
+ .extend( {
+
+ /*
+ * transport layer for messages exchange
+ */
+ socket: null, // instance of websocket
+
+ /*
+ * url for message broker
+ */
+ url: "ws://localhost:8087",
+// url: FLAGS.WEBSOCKET_URL,
+
+ /*
+ * Component name in RPC system It is unique.
+ */
+ componentName: null,
+
+ /*
+ * observer of RPC states
+ */
+ observer: null,
+
+ /*
+ * these variables are used to have unique request ids for different
+ * components in RPC bus idStart is received as a response for
+ * registerRPCComponent messages. space for ids for specific RPC
+ * component is allocated by message broker
+ */
+ idStart: -1,
+ idRange: 1000,
+ requestId: -1,
+
+ registerRequestId: -1,
+ unregisterRequestId: -1,
+
+ /*
+ * Open WebSocket and initialize handlers
+ */
+ connect: function(observer, startId) {
+
+ this.observer = observer;
+ this.idStart = startId;
+
+ this.socket = new WebSocket(this.url);
+
+ var self = this;
+
+ this.socket.onopen = function(evt) {
+
+ self.onWSOpen(evt)
+ };
+ this.socket.onclose = function(evt) {
+
+ self.onWSClose(evt)
+ };
+ this.socket.onmessage = function(evt) {
+
+ self.onWSMessage(evt)
+ };
+ this.socket.onerror = function(evt) {
+
+ self.onWSError(evt)
+ };
+
+ },
+
+ /*
+ * Close WebSocket connection Please make sure that component was
+ * unregistered in advance
+ */
+ disconnect: function() {
+
+ this.unregisterRPCComponent();
+ },
+
+ /*
+ * WebSocket connection is ready Now RPC component can be registered in
+ * message broker
+ */
+ onWSOpen: function(evt) {
+
+ Em.Logger.log("RPCCLient.onWSOpen");
+
+ this.registerRPCComponent();
+ },
+
+ /*
+ * when result is received from RPC component this function is called It
+ * is the propriate place to check results of reuqest execution Please
+ * use previously store reuqestID to determine to which request repsonse
+ * belongs to
+ */
+ onWSMessage: function(evt) {
+
+ Em.Logger.log("Message received: " + evt.data);
+
+ var jsonObj = JSON.parse(evt.data);
+
+ // handle component registration
+ if (jsonObj.id == this.registerRequestId && jsonObj.method == null && typeof jsonObj.result == 'number') {
+ if (jsonObj.error == null) {
+ this.requestId = this.idStart = jsonObj.result;
+ this.observer.onRPCRegistered();
+ }
+ // handle component unregistration
+ } else if (jsonObj.id == this.unregisterRequestId) {
+ if (jsonObj.error == null) {
+ this.socket.close();
+ this.observer.onRPCUnregistered();
+ }
+ // handle result, error, notification, requests
+ } else {
+ if (jsonObj.id == null) {
+ this.observer.onRPCNotification(jsonObj);
+ } else {
+ if (jsonObj.result != null)
+ this.observer.onRPCResult(jsonObj);
+ else if (jsonObj.error != null)
+ this.observer.onRPCError(jsonObj);
+ else
+ this.observer.onRPCRequest(jsonObj);
+ }
+ }
+ },
+
+ /*
+ * WebSocket connection is closed Please make sure that RPCComponent was
+ * dunregistered in advance
+ */
+ onWSClose: function(evt) {
+
+ Em.Logger.log("RPCClient: Connection is closed");
+
+ SDL.SDLController.unregisterComponentStatus(this.observer.client.componentName);
+
+ var self = this;
+ setTimeout(function(){
+ self.connect(self.observer, self.idStart);
+ }, 5000);
+ this.observer.onRPCDisconnected();
+ },
+
+ /*
+ * WebSocket connection errors handling
+ */
+ onWSError: function(evt) {
+
+ // Em.Logger.log("ERROR: " + evt.data);
+ Em.Logger.log("ERROR: ");
+ },
+
+ /*
+ * register component is RPC bus
+ */
+ registerRPCComponent: function() {
+
+ this.registerRequestId = this.idStart;
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": this.registerRequestId,
+ "method": "MB.registerComponent",
+ "params": {
+ "componentName": this.componentName
+ }
+ };
+ this.send(JSONMessage);
+ },
+
+ /*
+ * unregister component is RPC bus
+ */
+ unregisterRPCComponent: function() {
+
+ this.unregisterRequestId = this.generateId();
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": this.unregisterRequestId,
+ "method": "MB.unregisterComponent",
+ "params": {
+ "componentName": this.componentName
+ }
+ };
+ this.send(JSONMessage);
+ },
+
+ /*
+ * Subscribes to notification. Returns the request's id.
+ */
+ subscribeToNotification: function(notification) {
+
+ var msgId = this.generateId();
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": msgId,
+ "method": "MB.subscribeTo",
+ "params": {
+ "propertyName": notification
+ }
+ };
+ this.send(JSONMessage);
+ return msgId;
+ },
+
+ /*
+ * Unsubscribes from notification. Returns the request's id.
+ */
+ unsubscribeFromNotification: function(notification) {
+
+ var msgId = this.client.generateId();
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": msgId,
+ "method": "MB.unsubscribeFrom",
+ "params": {
+ "propertyName": notification
+ }
+ };
+ this.send(JSONMessage);
+ return msgId;
+ },
+
+ /*
+ * stringify object and send via socket connection
+ */
+ send: function(obj) {
+
+ if (this.socket.readyState == this.socket.OPEN) {
+ var strJson = JSON.stringify(obj);
+ Em.Logger.log(strJson);
+
+ var logTime = new Date();
+ console.log(logTime.getHours() + ":" + logTime.getMinutes() + ":" + logTime.getSeconds() + ":" + logTime.getMilliseconds());
+
+ this.socket.send(strJson);
+ } else {
+ Em.Logger
+ .error("RPCClient: Can't send message since socket is not ready");
+ }
+ },
+
+ /*
+ * Generate id for new request to RPC component Function has to be used
+ * as private
+ */
+ generateId: function() {
+
+ this.requestId++;
+ if (this.requestId >= this.idStart + this.idRange)
+ this.requestId = this.idStart;
+ return this.requestId;
+ }
+
+ })
diff --git a/SDL_Core/src/components/HMI/ffw/RPCObserver.js b/SDL_Core/src/components/HMI/ffw/RPCObserver.js
index 42b027170..9fd422d78 100755..100644
--- a/SDL_Core/src/components/HMI/ffw/RPCObserver.js
+++ b/SDL_Core/src/components/HMI/ffw/RPCObserver.js
@@ -1,76 +1,116 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @desc Observer of RPCClient
- *
- */
-
-FFW.RPCObserver = Em.Object.extend( {
-
- onRPCRegistered: function() {
- // request necessary parameters from Backend
- Em.Logger.log( "FFW.RPCObserver.Registered" );
- },
-
- onRPCUnregistred: function() {
- Em.Logger.log( "FFW.RPCObserver.onUnregistered" );
- },
-
- onRPCDisconnected: function() {
- Em.Logger.log( "FFW.RPCObserver.onRPCDisconnected" );
- },
-
- /*
- * when result is received from RPC component this function is called It is
- * the propriate place to check results of reuqest execution Please use
- * previously store reuqestID to determine to which request repsonse belongs
- * to
- */
- onRPCResult: function( result ) {
-
- // parse JSON string and set necessary properties
- },
-
- /*
- */
- onRPCError: function( error ) {
-
- // parse JSON string and set necessary properties
- },
-
- /*
- */
- onRPCNotification: function( notification ) {
-
- // parse JSON string and set necessary properties
- },
-
- onRPCRequest: function( request ) {
-
- // parse JSON string and send back necessary data
- }
-} ) \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @desc Observer of RPCClient
+ */
+
+FFW.RPCObserver = Em.Object
+ .extend( {
+
+ onRPCRegistered: function() {
+
+ // request necessary parameters from Backend
+ SDL.SDLController.registeredComponentStatus(this.client.componentName);
+ },
+
+ onRPCUnregistered: function() {
+
+ Em.Logger.log("FFW.RPCObserver.onUnregistered");
+ },
+
+ onRPCDisconnected: function() {
+
+ Em.Logger.log("FFW.RPCObserver.onRPCDisconnected");
+ },
+
+ /*
+ * when result is received from RPC component this function is called It
+ * is the propriate place to check results of reuqest execution Please
+ * use previously store reuqestID to determine to which request repsonse
+ * belongs to
+ */
+ onRPCResult: function(result) {
+
+ // parse JSON string and set necessary properties
+ },
+
+ /*
+ */
+ onRPCError: function(error) {
+
+ // parse JSON string and set necessary properties
+ },
+
+ /*
+ */
+ onRPCNotification: function(notification) {
+
+ // parse JSON string and set necessary properties
+ },
+
+ onRPCRequest: function(request) {
+
+ // parse JSON string and send back necessary data
+ },
+
+ validationCheck: function(request) {
+
+ if (request && request.method) {
+ var parsedMethod = request.method.split(/[.]/), validateFunc, result;
+
+ //if (request.params && "appID" in request.params && SDL.SDLModel.registeredApps.filterProperty('appID', request.params.appID).length > 0) {
+ if (request.params && request.params.appID >= 0 && !SDL.SDLModel.registeredApps.filterProperty('appID', request.params.appID)) {
+ Em.Logger.error('No application registered with current appID!');
+ return false;
+ }
+
+ if (SDL.RPCController[parsedMethod[0]][parsedMethod[1]]) {
+ validateFunc = SDL.RPCController[parsedMethod[0]][parsedMethod[1]];
+ result = validateFunc(request.params);
+
+ if (result.resultCode != SDL.SDLModel.resultCode["SUCCESS"]) {
+ this.sendError(result.resultCode,
+ request.id,
+ request.method,
+ result.resultMessage);
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ this
+ .sendError(SDL.SDLModel.resultCode["UNSUPPORTED_REQUEST"],
+ request.id,
+ request.method,
+ 'Unsupported incoming request! ' + parsedMethod[0]
+ + '.' + parsedMethod[1]);
+ Em.Logger.error('No method "' + parsedMethod[0] + '.'
+ + parsedMethod[1] + '"');
+ return false;
+ }
+ }
+ }
+ }); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/ffw/TTSRPC.js b/SDL_Core/src/components/HMI/ffw/TTSRPC.js
index 85a1bea34..fe205e555 100755..100644
--- a/SDL_Core/src/components/HMI/ffw/TTSRPC.js
+++ b/SDL_Core/src/components/HMI/ffw/TTSRPC.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -33,24 +32,48 @@
FFW.TTS = FFW.RPCObserver.create( {
+ /**
+ * If true then TTS is present and ready to communicate with SDL.
+ *
+ * @type {Boolean}
+ */
+ isReady: true,
+
+ /**
+ * Request id of current running Speak request
+ *
+ * @type {Boolean}
+ */
+ requestId: null,
+
+ /**
+ * Flag to determine if Speak request was aborted
+ *
+ * @type {Boolean}
+ */
+ aborted: false,
+
/*
* access to basic RPC functionality
*/
client: FFW.RPCClient.create( {
componentName: "TTS"
- } ),
+ }),
/*
* connect to RPC bus
*/
connect: function() {
- this.client.connect( this, 300 );
+
+ this.client.connect(this, 300); // Magic number is unique identifier for
+ // component
},
/*
* disconnect from RPC bus
*/
disconnect: function() {
+
this.client.disconnect();
},
@@ -59,7 +82,8 @@ FFW.TTS = FFW.RPCObserver.create( {
* time
*/
onRPCRegistered: function() {
- Em.Logger.log( "FFW.TTS.onRPCRegistered" );
+
+ Em.Logger.log("FFW.TTS.onRPCRegistered");
this._super();
},
@@ -67,7 +91,8 @@ FFW.TTS = FFW.RPCObserver.create( {
* Client is unregistered - no more requests
*/
onRPCUnregistered: function() {
- Em.Logger.log( "FFW.TTS.onRPCUnregistered" );
+
+ Em.Logger.log("FFW.TTS.onRPCUnregistered");
this._super();
},
@@ -84,136 +109,262 @@ FFW.TTS = FFW.RPCObserver.create( {
* previously store reuqestID to determine to which request repsonse belongs
* to
*/
- onRPCResult: function( response ) {
- Em.Logger.log( "FFW.TTS.onRPCResult" );
+ onRPCResult: function(response) {
+
+ Em.Logger.log("FFW.TTS.onRPCResult");
this._super();
},
/*
* handle RPC erros here
*/
- onRPCError: function( error ) {
- Em.Logger.log( "FFW.TTS.onRPCError" );
+ onRPCError: function(error) {
+
+ Em.Logger.log("FFW.TTS.onRPCError");
this._super();
},
/*
* handle RPC notifications here
*/
- onRPCNotification: function( notification ) {
- Em.Logger.log( "FFW.TTS.onRPCNotification" );
+ onRPCNotification: function(notification) {
+
+ Em.Logger.log("FFW.TTS.onRPCNotification");
this._super();
},
/*
* handle RPC requests here
*/
- onRPCRequest: function( request ) {
- Em.Logger.log( "FFW.TTS.onRPCRequest" );
+ onRPCRequest: function(request) {
+
+ Em.Logger.log("FFW.TTS.onRPCRequest");
this._super();
- switch( request.method ){
- case "TTS.Speak": {
- SDL.SDLModel.onPrompt( request.params.ttsChunks.splice( 0, 1 ) );
-
- // send repsonse
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": request.id,
- "result": {
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": "TTS.SpeakResponse"
- }
- };
- this.client.send( JSONMessage );
+ switch (request.method) {
+ case "TTS.Speak": {
- break;
+ if (SDL.TTSPopUp.active) {
+ FFW.TTS.sendError(SDL.SDLModel.resultCode["REJECTED"], request.id, "TTS.Speak", "TTS in progress. Rejected.");
+ } else {
+ this.requestId = request.id;
+ SDL.SDLModel.onPrompt(request.params.ttsChunks);
}
- case "TTS.GetCapabilities": {
-
- // send repsonse
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": request.id,
- "result": {
- "capabilities":
- [
- "TEXT"
- ],
-
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": "TTS.GetCapabilitiesResponse"
- }
- };
- this.client.send( JSONMessage );
- break;
- }
- case "TTS.GetSupportedLanguages": {
-
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": request.id,
- "result": {
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": "TTS.GetSupportedLanguagesResponse",
- "languages": SDL.SDLModel.sdlLanguagesList
- }
- };
- this.client.send( JSONMessage );
+ break;
+ }
+ case "TTS.SetGlobalProperties": {
- break;
- }
- case "TTS.GetLanguage": {
-
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": request.id,
- "result": {
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": "TTS.GetLanguageResponse",
- "language": SDL.SDLModel.hmiTTSVRLanguage
- }
- };
- this.client.send( JSONMessage );
+ SDL.SDLModel.setProperties(request.params);
- break;
- }
- case "TTS.ChangeRegistration": {
-
- SDL.SDLModel.changeRegistrationTTSVR( request.params.language );
-
- // send repsonse
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": request.id,
- "result": {
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": "TTS.ChangeRegistrationResponse"
+ this.sendTTSResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+
+ break;
+ }
+ case "TTS.StopSpeaking": {
+
+ SDL.SDLModel.TTSStopSpeaking();
+
+ this.sendTTSResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+
+ break;
+ }
+ case "TTS.GetCapabilities": {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "speechCapabilities": [
+ "TEXT",
+ "PRE_RECORDED"
+ ],
+ "prerecordedSpeechCapabilities": [
+ "HELP_JINGLE",
+ "INITIAL_JINGLE",
+ "LISTEN_JINGLE",
+ "POSITIVE_JINGLE",
+ "NEGATIVE_JINGLE"
+ ],
+ "code": SDL.SDLModel.resultCode["SUCCESS"], // type (enum)
+ // from SDL
+ // protocol
+ "method": "TTS.GetCapabilities"
+ }
+ };
+ this.client.send(JSONMessage);
+
+ break;
+ }
+ case "TTS.PerformInteraction":
+ {
+
+ SDL.SDLModel.onPrompt(request.params.initialPrompt);
+
+ SDL.SDLModel.interactionData.helpPrompt = request.params.helpPrompt;
+
+ var request = request;
+
+ setTimeout(function(){
+ if (SDL.InteractionChoicesView.active) {
+ //FFW.TTS.requestId = request.id;
+ SDL.SDLModel.onPrompt(request.params.timeoutPrompt);
+ SDL.SDLModel.interactionData.helpPrompt = null;
+ }
+ }, request.params.timeout - 2000); //Magic numer is a platform depended HMI behavior: -2 seconds for timeout prompt
+
+ this.sendTTSResult(SDL.SDLModel.resultCode["SUCCESS"], request.id, "TTS.PerformInteraction");
+
+ break;
+ }
+ case "TTS.GetSupportedLanguages": {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "code": SDL.SDLModel.resultCode["SUCCESS"], // type (enum)
+ // from SDL
+ "method": "TTS.GetSupportedLanguages",
+ "languages": SDL.SDLModel.sdlLanguagesList
+ }
+ };
+ this.client.send(JSONMessage);
+
+ break;
+ }
+ case "TTS.GetLanguage": {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "code": SDL.SDLModel.resultCode["SUCCESS"], // type (enum)
+ // from SDL
+ "method": "TTS.GetLanguage",
+ "language": SDL.SDLModel.hmiTTSVRLanguage
+ }
+ };
+ this.client.send(JSONMessage);
+
+ break;
+ }
+ case "TTS.ChangeRegistration": {
+
+ SDL.SDLModel.changeRegistrationTTSVR(request.params.language, request.params.appID);
+
+ this.sendTTSResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+
+ break;
+ }
+
+ case "TTS.IsReady": {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "available": this.get('isReady'),
+ "code": SDL.SDLModel.resultCode["SUCCESS"],
+ "method": "TTS.IsReady"
+ }
+ };
+
+ this.client.send(JSONMessage);
+
+ break;
+ }
+
+ default: {
+ // statements_def
+ break;
+ }
+ }
+ },
+
+ /**
+ * Send error response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendError: function(resultCode, id, method, message) {
+
+ Em.Logger.log("FFW." + method + "Response");
+
+ if (resultCode != SDL.SDLModel.resultCode["SUCCESS"]) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "error": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "message": message,
+ "data": {
+ "method": method
}
- };
- this.client.send( JSONMessage );
+ }
+ };
+ this.client.send(JSONMessage);
+ }
+ },
- break;
- }
+ /**
+ * send response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendTTSResult: function(resultCode, id, method) {
- default: {
- // statements_def
- break;
- }
+ Em.Logger.log("FFW." + method + "Response");
+
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "method": method
+ }
+ };
+ this.client.send(JSONMessage);
}
},
/*
* Notifies if sdl TTS components language was changed
*/
- OnLanguageChange: function( lang ) {
- Em.Logger.log( "FFW.TTS.OnLanguageChange" );
+ OnLanguageChange: function(lang) {
+
+ Em.Logger.log("FFW.TTS.OnLanguageChange");
// send repsonse
var JSONMessage = {
@@ -223,6 +374,34 @@ FFW.TTS = FFW.RPCObserver.create( {
"language": lang
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Initiated by TTS module to let SDL know that TTS session has started.
+ */
+ Started: function() {
+
+ Em.Logger.log("FFW.TTS.Started");
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "TTS.Started"
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Initiated by TTS module to let SDL know that TTS session has stopped.
+ */
+ Stopped: function() {
+
+ Em.Logger.log("FFW.TTS.Stopped");
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "TTS.Stopped"
+ };
+ this.client.send(JSONMessage);
}
-} ) \ No newline at end of file
+}) \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/ffw/UIRPC.js b/SDL_Core/src/components/HMI/ffw/UIRPC.js
index 619d76e84..8970cda2c 100755..100644
--- a/SDL_Core/src/components/HMI/ffw/UIRPC.js
+++ b/SDL_Core/src/components/HMI/ffw/UIRPC.js
@@ -1,17 +1,16 @@
/*
* Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -26,637 +25,1321 @@
*/
/*
* Reference implementation of UI component.
- *
+ *
* Interface to get or set some essential information sent from SDLCore. UI is
* responsible for the functionality provided by the application: display
* graphics and multimedia components, is responsible for the transfer of
* managed manipulations, generated by the user to the server.
- *
+ *
*/
-FFW.UI = FFW.RPCObserver.create( {
+FFW.UI = FFW.RPCObserver.create({
- /*
+ /**
+ * If true then UI is present and ready to communicate with SDL.
+ *
+ * @type {Boolean}
+ */
+ isReady: true,
+
+ /**
* access to basic RPC functionality
*/
- client: FFW.RPCClient.create( {
+ client: FFW.RPCClient.create({
componentName: "UI"
- } ),
+ }),
// temp var for debug
- appId: 1,
+ appID: 1,
- onVRChoiseSubscribeRequestId: -1,
- onVRChoiseUnsubscribeRequestId: -1,
+ onShowNotificationSubscribeRequestID: -1,
+
+ onShowNotificationUnsubscribeRequestID: -1,
// const
- onVRChoiseNotification: "VR.OnChoise",
+ onShowNotificationNotification: "UI.ShowNotification",
- /*
+ /**
* ids for requests AudioPassThru
*/
- performAudioPassThruRequestId: -1,
- endAudioPassThruRequestId: -1,
+ performAudioPassThruRequestID: -1,
+ endAudioPassThruRequestID: -1,
- /*
+ /**
* connect to RPC bus
*/
- connect: function() {
- this.client.connect( this, 400 );
+ connect: function () {
+
+ this.client.connect(this, 400); // Magic number is unique identifier
+ // for component
},
- /*
+ /**
* disconnect from RPC bus
*/
- disconnect: function() {
+ disconnect: function () {
+
this.client.disconnect();
},
- /*
- * Client is registered - we can send request starting from this point of
- * time
+ /**
+ * Client is registered - we can send request starting from this point
+ * of time
*/
- onRPCRegistered: function() {
- Em.Logger.log( "FFW.UI.onRPCRegistered" );
+ onRPCRegistered: function () {
+
+ Em.Logger.log("FFW.UI.onRPCRegistered");
this._super();
// subscribe to notifications
- this.onVRChoiseSubscribeRequestId = this.client.subscribeToNotification( this.onVRChoiseNotification );
-
- // notify other components that UI is ready
- // main purpose is to nitofy SDLCore
- this.onReady();
+ this.onShowNotificationSubscribeRequestID = this.client.subscribeToNotification(this.onShowNotificationNotification);
},
- /*
+ /**
* Client is unregistered - no more requests
*/
- onRPCUnregistered: function() {
- Em.Logger.log( "FFW.UI.onRPCUnregistered" );
+ onRPCUnregistered: function () {
+
+ Em.Logger.log("FFW.UI.onRPCUnregistered");
this._super();
// unsubscribe from notifications
- this.onVRChoiseUnsubscribeRequestId = this.client.unsubscribeFromNotification( this.onVRChoiseNotification );
+ this.onShowNotificationUnsubscribeRequestID = this.client.unsubscribeFromNotification(this.onShowNotificationNotification);
},
- /*
+ /**
* Client disconnected.
*/
- onRPCDisconnected: function() {
+ onRPCDisconnected: function () {
},
- /*
- * when result is received from RPC component this function is called It is
- * the propriate place to check results of request execution Please use
- * previously store reuqestID to determine to which request repsonse belongs
- * to
+ /**
+ * when result is received from RPC component this function is called It
+ * is the propriate place to check results of request execution Please
+ * use previously store reuqestID to determine to which request repsonse
+ * belongs to
*/
- onRPCResult: function( response ) {
- Em.Logger.log( "FFW.UI.onRPCResult" );
+ onRPCResult: function (response) {
+
+ Em.Logger.log("FFW.UI.onRPCResult");
this._super();
},
- /*
+ /**
* handle RPC erros here
*/
- onRPCError: function( error ) {
- Em.Logger.log( "FFW.UI.onRPCError" );
+ onRPCError: function (error) {
+
+ Em.Logger.log("FFW.UI.onRPCError");
this._super();
},
- /*
+ /**
* handle RPC notifications here
*/
- onRPCNotification: function( notification ) {
- Em.Logger.log( "FFW.UI.onRPCNotification" );
+ onRPCNotification: function (notification) {
+
+ Em.Logger.log("FFW.UI.onRPCNotification");
this._super();
- if( notification.method == this.onVRChoiseNotification ){
- this.interactionResponse( "SUCCESS", notification.params.choiceId );
+ if (notification.method == this.onShowNotificationNotification) {
+ // to do
}
},
- /*
+ /**
* handle RPC requests here
*/
- onRPCRequest: function( request ) {
- Em.Logger.log( "FFW.UI.onRPCRequest" );
- this._super();
+ onRPCRequest: function (request) {
- var resultCode = null;
+ Em.Logger.log("FFW.UI.onRPCRequest");
- switch( request.method ){
- case "UI.Show": {
+ if (this.validationCheck(request)) {
- // Close TBT
- SDL.TurnByTurnView.deactivate();
+ switch (request.method) {
+ case "UI.Alert":
+ {
- SDL.SDLController.getApplicationModel( request.params.appId ).onSDLUIShow( request.params );
-
- this.sendUIResult( "SUCCESS", request.id, request.method );
-
- break;
- }
- case "UI.Alert": {
+ SDL.SDLModel.onUIAlert(request.params, request.id);
- SDL.SDLModel.onUIAlert( request.params, request.id );
+ break;
+ }
+ case "UI.Show":
+ {
- break;
- }
- case "UI.SetGlobalProperties": {
+ SDL.TurnByTurnView.deactivate();
+ SDL.SDLController.getApplicationModel(request.params.appID).onSDLUIShow(request.params);
+ this.sendUIResult(SDL.SDLModel.resultCode["SUCCESS"], request.id, request.method);
- SDL.SDLModel.setProperties( request.params );
+ break;
+ }
+ case "UI.SetGlobalProperties":
+ {
+ SDL.SDLModel.setProperties(request.params);
- this.sendUIResult( "SUCCESS", request.id, request.method );
+ this.sendUIResult(SDL.SDLModel.resultCode["SUCCESS"], request.id, request.method);
- break;
- }
- case "UI.ResetGlobalProperties": {
+ break;
+ }
+ case "UI.ResetGlobalProperties":
+ {
- // reset all requested properties
- SDL.SDLModel.resetProperties( request.params );
+ this.sendUIResult(SDL.SDLModel.resultCode["SUCCESS"], request.id, request.method);
- this.sendUIResult( "SUCCESS", request.id, request.method );
+ break;
+ }
+ case "UI.AddCommand":
+ {
- break;
- }
- case "UI.AddCommand": {
+ SDL.SDLController.getApplicationModel(request.params.appID).addCommand(request);
- SDL.SDLController.getApplicationModel( request.params.appId ).addCommand( request.params );
+ break;
+ }
+ case "UI.DeleteCommand":
+ {
- this.sendUIResult( "SUCCESS", request.id, request.method );
+ SDL.SDLController.getApplicationModel(request.params.appID).deleteCommand(request.params.cmdID, request.id);
- break;
- }
- case "UI.DeleteCommand": {
+ break;
+ }
+ case "UI.AddSubMenu":
+ {
- SDL.SDLController.getApplicationModel( request.params.appId ).deleteCommand( request.params.cmdId );
+ SDL.SDLController.getApplicationModel(request.params.appID).addSubMenu(request);
- this.sendUIResult( "SUCCESS", request.id, request.method );
+ break;
+ }
+ case "UI.DeleteSubMenu":
+ {
- break;
- }
- case "UI.AddSubMenu": {
+ var resultCode = SDL.SDLController.getApplicationModel(request.params.appID).deleteSubMenu(request.params.menuID);
+ this.sendUIResult(resultCode, request.id, request.method);
- SDL.SDLController.getApplicationModel( request.params.appId ).addSubMenu( request.params );
+ break;
+ }
+ case "UI.PerformInteraction":
+ {
- this.sendUIResult( "SUCCESS", request.id, request.method );
+ SDL.SDLModel.uiPerformInteraction(request);
- break;
- }
- case "UI.DeleteSubMenu": {
+ break;
+ }
+ case "UI.SetMediaClockTimer":
+ {
+
+ var resultCode = SDL.SDLController.getApplicationModel(request.params.appID).sdlSetMediaClockTimer(request.params);
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
+ this.sendUIResult(resultCode, request.id, request.method);
+ } else {
+ this.sendError(resultCode, request.id, request.method, 'Request is ignored, because the intended result is already in effect.');
+ }
- var resultCode = SDL.SDLController.getApplicationModel( request.params.appId ).deleteSubMenu( request.params.menuId );
+ break;
+ }
+ case "UI.Slider":
+ {
- this.sendUIResult( resultCode, request.id, request.method );
+ SDL.SDLModel.uiSlider(request);
- break;
- }
- case "UI.CreateInteractionChoiceSet": {
+ break;
+ }
+ case "UI.ScrollableMessage":
+ {
- SDL.SDLController.getApplicationModel( request.params.appId ).onCreateInteraction( request.params );
+ SDL.SDLModel.onSDLScrolableMessage(request, request.id);
- this.sendUIResult( "SUCCESS", request.id, request.method );
+ break;
+ }
+ case "UI.ChangeRegistration":
+ {
- break;
- }
- case "UI.DeleteInteractionChoiceSet": {
+ SDL.SDLModel.changeRegistrationUI(request.params.language, request.params.appID);
+ this.sendUIResult(SDL.SDLModel.resultCode["SUCCESS"], request.id, request.method);
- SDL.SDLController.getApplicationModel( request.params.appId ).onDeleteInteraction( request.params );
+ break;
+ }
+ case "UI.SetDisplayLayout":
+ {
+
+ var senResponseFlag = false;
+
+ switch (request.params.displayLayout){
+ case "MEDIA": {
+ senResponseFlag = true;
+ break;
+ }
+ case "NON-MEDIA": {
+ senResponseFlag = true;
+ break;
+ }
+ case "DEFAULT": {
+ senResponseFlag = true;
+ break;
+ }
+ case "ONSCREEN_PRESETS": {
+ senResponseFlag = true;
+ break;
+ }
+ case "NAV_FULLSCREEN_MAP": {
+ senResponseFlag = true;
+ break;
+ }
+ case "NAV_KEYBOARD": {
+ senResponseFlag = true;
+ break;
+ }
+ case "NAV_LIST": {
+ senResponseFlag = true;
+ break;
+ }
+ }
- this.sendUIResult( "SUCCESS", request.id, request.method );
+ if (senResponseFlag) {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "displayCapabilities": {
+ "displayType": "GEN2_8_DMA",
+ "textFields": [
+ "mainField1",
+ "mainField2",
+ "mainField3",
+ "mainField4",
+ "statusBar",
+ "mediaClock",
+ "mediaTrack",
+ "alertText1",
+ "alertText2",
+ "alertText3",
+ "scrollableMessageBody",
+ "initialInteractionText",
+ "navigationText1",
+ "navigationText2",
+ "ETA",
+ "totalDistance",
+ "navigationText",
+ "audioPassThruDisplayText1",
+ "audioPassThruDisplayText2",
+ "sliderHeader",
+ "sliderFooter",
+ "notificationText",
+ "menuName",
+ "secondaryText",
+ "tertiaryText",
+ "timeToDestination",
+ "turnText"
+ ],
+ "imageFields": [
+ {
+ "name": "softButtonImage",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "choiceImage",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "choiceSecondaryImage",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "vrHelpItem",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "turnIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "menuIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "cmdIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "graphic",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "showConstantTBTIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "showConstantTBTNextTurnIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "showConstantTBTNextTurnIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ }
+ ],
+ "mediaClockFormats": [
+ "CLOCK1", "CLOCK2", "CLOCK3", "CLOCKTEXT1", "CLOCKTEXT2", "CLOCKTEXT3", "CLOCKTEXT4"
+ ],
+ "graphicSupported": true,
+ "imageCapabilities": ["DYNAMIC"],
+ "templatesAvailable": ["TEMPLATE"],
+ "screenParams": {
+ "resolution": {
+ "resolutionWidth": 800,
+ "resolutionHeight": 480
+ },
+ "touchEventAvailable": {
+ "pressAvailable": true,
+ "multiTouchAvailable": true,
+ "doublePressAvailable": false
+ }
+ },
+ "numCustomPresetsAvailable": 8
+ },
+ "buttonCapabilities": [
+ {
+ "name": "PRESET_0",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_1",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_2",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_3",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_4",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_5",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_6",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_7",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_8",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "PRESET_9",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "OK",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "SEEKLEFT",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "SEEKRIGHT",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "TUNEUP",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }, {
+ "name": "TUNEDOWN",
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true
+ }
+ ],
+ "softButtonCapabilities": [{
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true,
+ "imageSupported": true
+ }],
+ "presetBankCapabilities": {
+ "onScreenPresetsAvailable": true
+ },
+ "code": SDL.SDLModel.resultCode["SUCCESS"],
+ "method": "UI.SetDisplayLayout"
+ }
+ };
+
+ this.client.send(JSONMessage);
+
+ } else {
+ this.sendError(SDL.SDLModel.resultCode["UNSUPPORTED_RESOURCE"], request.id, request.method, "Unsupported display layout!")
+ }
- break;
- }
- case "UI.PerformInteraction": {
+ break;
+ }
+ case "UI.SetAppIcon":
+ {
- SDL.SDLModel.uiPerformInteraction( request.params, request.id );
+ SDL.SDLModel.onSDLSetAppIcon(request.params, request.id, request.method);
- break;
- }
- case "UI.SetMediaClockTimer": {
+ break;
+ }
+ case "UI.PerformAudioPassThru":
+ {
- var resultCode = SDL.SDLController.getApplicationModel( request.params.appId ).sdlSetMediaClockTimer( request.params );
+ this.performAudioPassThruRequestID = request.id;
+ SDL.SDLModel.UIPerformAudioPassThru(request.params);
- this.sendUIResult( resultCode, request.id, request.method );
+ break;
+ }
+ case "UI.EndAudioPassThru":
+ {
- break;
- }
- case "UI.OnAppActivated": {
+ this.endAudioPassThruRequestID = request.id;
- break;
- }
- case "UI.Slider": {
+ SDL.SDLModel.UIEndAudioPassThru();
- SDL.SDLModel.uiSlider( request );
+ break;
+ }
+ case "UI.GetSupportedLanguages":
+ {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+
+ var JSONMessage = {
+ "id": request.id,
+ "jsonrpc": "2.0",
+ "result": {
+ "code": SDL.SDLModel.resultCode["SUCCESS"], // type
+ // (enum)
+ // from
+ // SDL
+ "method": "UI.GetSupportedLanguages",
+ "languages": SDL.SDLModel.sdlLanguagesList
+ }
+ };
+ this.client.send(JSONMessage);
+
+ break;
+ }
+ case "UI.GetLanguage":
+ {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "code": SDL.SDLModel.resultCode["SUCCESS"], // type
+ // (enum)
+ // from
+ // SDL
+ "method": "UI.GetLanguage",
+ "language": SDL.SDLModel.hmiUILanguage
+ }
+ };
+ this.client.send(JSONMessage);
+
+ break;
+ }
+ case "UI.GetCapabilities":
+ {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "displayCapabilities": {
+ "displayType": "GEN2_8_DMA",
+ "textFields": [
+ "mainField1",
+ "mainField2",
+ "mainField3",
+ "mainField4",
+ "statusBar",
+ "mediaClock",
+ "mediaTrack",
+ "alertText1",
+ "alertText2",
+ "alertText3",
+ "scrollableMessageBody",
+ "initialInteractionText",
+ "navigationText1",
+ "navigationText2",
+ "ETA",
+ "totalDistance",
+ "navigationText",
+ "audioPassThruDisplayText1",
+ "audioPassThruDisplayText2",
+ "sliderHeader",
+ "sliderFooter",
+ "notificationText",
+ "menuName",
+ "secondaryText",
+ "tertiaryText",
+ "timeToDestination",
+ "turnText"
+ ],
+ "imageFields": [
+ {
+ "name": "softButtonImage",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "choiceImage",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "choiceSecondaryImage",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "vrHelpItem",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "turnIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "menuIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "cmdIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "graphic",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "showConstantTBTIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "showConstantTBTNextTurnIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ },
+ {
+ "name": "showConstantTBTNextTurnIcon",
+ "imageTypeSupported":
+ [
+ "GRAPHIC_BMP",
+ "GRAPHIC_JPEG",
+ "GRAPHIC_PNG"
+ ],
+ "imageResolution":
+ {
+ "resolutionWidth": 64,
+ "resolutionHeight": 64
+ }
+ }
+ ],
+ "mediaClockFormats": [
+ "CLOCK1", "CLOCK2", "CLOCK3", "CLOCKTEXT1", "CLOCKTEXT2", "CLOCKTEXT3", "CLOCKTEXT4"
+ ],
+ "graphicSupported": true,
+ "imageCapabilities": ["DYNAMIC"],
+ "templatesAvailable": ["TEMPLATE"],
+ "screenParams": {
+ "resolution": {
+ "resolutionWidth": 800,
+ "resolutionHeight": 480
+ },
+ "touchEventAvailable": {
+ "pressAvailable": true,
+ "multiTouchAvailable": true,
+ "doublePressAvailable": false
+ }
+ },
+ "numCustomPresetsAvailable": 8
+ },
+ "audioPassThruCapabilities": {
+ "samplingRate": "44KHZ",
+ "bitsPerSample": "8_BIT",
+ "audioType": "PCM"
+ },
+ "hmiZoneCapabilities": "FRONT",
+ "softButtonCapabilities": {
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true,
+ "imageSupported": true
+ },
+ "code": SDL.SDLModel.resultCode["SUCCESS"],
+ "method": "UI.GetCapabilities"
+ }
+ };
+
+ this.client.send(JSONMessage);
+
+ break;
+ }
+ case "UI.IsReady":
+ {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "available": this.get('isReady'),
+ "code": SDL.SDLModel.resultCode["SUCCESS"],
+ "method": "UI.IsReady"
+ }
+ };
+
+ this.client.send(JSONMessage);
+
+ break;
+ }
+ case "UI.ClosePopUp":
+ {
- break;
- }
- case "UI.ScrollableMessage": {
+ SDL.SDLController.closePopUp();
- SDL.SDLModel.onSDLScrolableMessage( request.params, request.id );
- break;
- }
- case "UI.ChangeRegistration": {
+ Em.Logger.log("FFW." + request.method + "Response");
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "code": SDL.SDLModel.resultCode["SUCCESS"],
+ "method": "UI.ClosePopUp"
+ }
+ };
- SDL.SDLModel.changeRegistrationUI( request.params.hmiDisplayLanguage );
+ this.client.send(JSONMessage);
- this.sendUIResult( "SUCCESS", request.id, request.method );
+ break;
+ }
+ case "UI.ShowVrHelp":
+ {
- break;
- }
- case "UI.SetAppIcon": {
+ //SDL.SDLModel.ShowVrHelp(request.params);
- SDL.SDLModel.onSDLSetAppIcon( request.params, request.id, request.method );
+ this.sendUIResult(SDL.SDLModel.resultCode["SUCCESS"], request.id, request.method);
- break;
- }
- case "UI.PerformAudioPassThru": {
+ break;
+ }
+ case "UI.ShowKeyboard":
+ {
- this.performAudioPassThruRequestId = request.id;
+ SDL.SDLModel.uiShowKeyboard(request.params);
- SDL.SDLModel.UIPerformAudioPassThru( request.params );
+ this.sendUIResult(SDL.SDLModel.resultCode["SUCCESS"], request.id, request.method);
- break;
+ break;
+ }
+ default:
+ {
+ // statements_def
+ break;
+ }
}
- case "UI.EndAudioPassThru": {
+ }
+ },
- this.endAudioPassThruRequestId = request.id;
+ /**
+ * Send error response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendError: function (resultCode, id, method, message) {
- SDL.SDLModel.UIEndAudioPassThru();
+ Em.Logger.log("FFW." + method + "Response");
- break;
- }
- case "UI.GetSupportedLanguages": {
-
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": request.id,
- "result": {
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": "UI.GetSupportedLanguagesResponse",
- "languages": SDL.SDLModel.sdlLanguagesList
- }
- };
- this.client.send( JSONMessage );
+ if (resultCode !== 0) {
- break;
- }
- case "UI.GetLanguage": {
-
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": request.id,
- "result": {
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": "UI.GetLanguageResponse",
- "hmiDisplayLanguage": SDL.SDLModel.hmiUILanguage
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "error": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "message": message,
+ "data": {
+ "method": method
}
- };
- this.client.send( JSONMessage );
-
- break;
- }
- case "UI.ShowConstantTBT": {
-
- SDL.SDLModel.tbtActivate( request.params );
-
- this.sendUIResult( "SUCCESS", request.id, request.method );
-
- break;
- }
- case "UI.UpdateTurnList": {
-
- SDL.SDLModel.tbtTurnListUpdate( request.params );
-
- this.sendUIResult( "SUCCESS", request.id, request.method );
-
- break;
- }
- case "UI.AlertManeuver": {
-
- SDL.SDLModel.onUIAlertManeuver( request.params );
+ }
+ };
+ this.client.send(JSONMessage);
+ }
+ },
- this.sendUIResult( "SUCCESS", request.id, request.method );
+ /**
+ * send response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendUIResult: function (resultCode, id, method) {
- break;
- }
- case "UI.DialNumber": {
+ Em.Logger.log("FFW." + method + "Response");
- SDL.SDLModel.dialNumber( request.params );
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
- this.sendUIResult( "SUCCESS", request.id, request.method );
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "method": method
+ }
+ };
+ this.client.send(JSONMessage);
+ }
+ },
- break;
- }
- case "UI.GetCapabilities": {
- // send repsonse
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": request.id,
- "result": {
- "displayCapabilities": {
- "displayType": "GEN2_8_DMA",
- "textFields":
- [
- {
- "name": "mainField1",
- "characterSet": "TYPE2SET",
- "width": 1,
- "rows": 1
- },
- {
- "name": "mainField2",
- "characterSet": "TYPE2SET",
- "width": 1,
- "rows": 1
- },
- {
- "name": "statusBar",
- "characterSet": "TYPE2SET",
- "width": 1,
- "rows": 1
- },
- {
- "name": "mediaClock",
- "characterSet": "TYPE2SET",
- "width": 1,
- "rows": 1
- },
- {
- "name": "mediaTrack",
- "characterSet": "TYPE2SET",
- "width": 1,
- "rows": 1
- },
- {
- "name": "alertText1",
- "characterSet": "TYPE2SET",
- "width": 1,
- "rows": 1
- },
- {
- "name": "alertText2",
- "characterSet": "TYPE2SET",
- "width": 1,
- "rows": 1
- }
- ],
- "mediaClockFormats":
- [
- "CLOCK1",
- "CLOCK2",
- "CLOCKTEXT1",
- "CLOCKTEXT2",
- "CLOCKTEXT3"
- ]
- },
- "hmiZoneCapabilities":
- [
- "FRONT",
- "BACK"
- ],
- "softButtonCapabilities":
- [
- {
- "shortPressAvailable": true,
- "longPressAvailable": true,
- "upDownAvailable": true,
- "imageSupported": true
- }
- ],
- "method": "UI.GetCapabilitiesResponse",
- "resultCode": "SUCCESS" // type (enum) from SDL protocol
- }
- };
+ /**
+ * send response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ */
+ alertResponse: function (resultCode, id) {
- this.client.send( JSONMessage );
+ Em.Logger.log("FFW.UI.AlertResponse");
- break;
- }
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
- default: {
- // statements_def
- break;
- }
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "method": 'UI.Alert'
+ }
+ };
+ this.client.send(JSONMessage);
+ } else {
+ this.sendError(resultCode, id, "UI.Alert", 'Alert request aborted.');
}
},
- /*
+ /**
* send response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * sliderRequestID
+ * @param {Number}
+ * sliderPosition
*/
- sendUIResult: function( resultCode, id, method ) {
+ sendSliderResult: function (resultCode, sliderRequestID, sliderPosition) {
- Em.Logger.log( "FFW.UI." + method + "Response" );
- if( resultCode ){
+ Em.Logger.log("FFW.UI.SliderResponse");
+
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
// send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
- "id": id,
+ "id": sliderRequestID,
"result": {
- "resultCode": resultCode, // type (enum) from SDL protocol
- "method": method + "Response"
+ "code": resultCode, // type (enum) from SDL protocol
+ "method": 'UI.Slider'
}
};
- this.client.send( JSONMessage );
- }
- },
- sendSliderResult: function( resultCode, sliderRequestId, sliderPosition ) {
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": sliderRequestId,
- "result": {
- "resultCode": resultCode, // type (enum) from SDL protocol
- "method": "UI.SliderResponse"
+ if (sliderPosition) {
+ JSONMessage.result.sliderPosition = sliderPosition;
}
- };
+ } else {
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": sliderRequestID,
+ "error": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "message": 'Slider request aborted.',
+ "data": {
+ "method": 'UI.Slider'
+ }
+ }
+ };
- if( sliderPosition ){
- JSONMessage.result.sliderPosition = sliderPosition;
+ if (sliderPosition) {
+ JSONMessage.error.data.sliderPosition = sliderPosition;
+ }
}
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
- /*
- * send notification when command was triggered
+ /**
+ * Notification method to send touch event data to SDLCore
+ *
+ * @param {Number} appID
+ * @param {String} methodName
*/
- onCommand: function( commandId, appId ) {
- Em.Logger.log( "FFW.UI.onCommand" );
+ onResetTimeout: function (appID, methodName) {
+
+ Em.Logger.log("FFW.UI.OnResetTimeout");
var JSONMessage = {
"jsonrpc": "2.0",
- "method": "UI.OnCommand",
+ "method": "UI.OnResetTimeout",
"params": {
- "commandId": commandId,
- "appId": appId
+ "methodName": methodName,
+ "appID": appID
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
- /*
+ /**
* send notification when command was triggered
+ *
+ * @param {Number}
+ * commandID
+ * @param {Number}
+ * appID
*/
- onCommandSoftButton: function( softButtonID, appId ) {
- Em.Logger.log( "FFW.UI.onCommand" );
+ onCommand: function (commandID, appID) {
+
+ Em.Logger.log("FFW.UI.onCommand");
var JSONMessage = {
"jsonrpc": "2.0",
"method": "UI.OnCommand",
"params": {
- "commandId": softButtonID,
- "appId": appId
+ "cmdID": commandID,
+ "appID": appID
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
- /*
- * send notification when command was triggered
+ /**
+ * Notification method to send touch event data to SDLCore
+ *
+ * @param {String} type
+ * @param {Object} touchLists
+ * @param {Object} info
*/
- interactionResponse: function( resultCode, performInteractionRequestId, commandId ) {
- Em.Logger.log( "FFW.UI.PerformInteractionResponse" );
+ onTouchEvent: function (type, event) {
+
+ Em.Logger.log("FFW.UI.OnTouchEvent");
- // send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
- "id": performInteractionRequestId,
- "result": {
- "resultCode": resultCode,
- "method": "UI.PerformInteractionResponse"
+ "method": "UI.OnTouchEvent",
+ "params": {
+ "type": type,
+ "event": event
}
};
-
- if( commandId ){
- JSONMessage.result.choiceID = commandId;
- }
-
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
- /*
- * notification that UI is ready BasicCommunication should be sunscribed to
- * this notification
+ /**
+ * send notification when command was triggered
+ *
+ * @param {Number}
+ * softButtonID
+ * @param {Number}
+ * appID
*/
- onReady: function() {
- Em.Logger.log( "FFW.UI.onReady" );
+ onCommandSoftButton: function (softButtonID, appID) {
- var JSONMessage = {
- "jsonrpc": "2.0",
- "method": "UI.OnReady"
- };
- this.client.send( JSONMessage );
- },
-
- /*
- * send notification when DriverDistraction PopUp is visible
- */
- onDriverDistraction: function( driverDistractionState ) {
- Em.Logger.log( "FFW.UI.DriverDistraction" );
+ Em.Logger.log("FFW.UI.onCommand");
- // send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
- "method": "UI.OnDriverDistraction",
+ "method": "UI.OnCommand",
"params": {
- "state": driverDistractionState,
- "appId": 0
+ "commandID": softButtonID,
+ "appID": appID
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
- /*
- * Notifies if system context is changed
+ /**
+ * send notification when command was triggered
+ *
+ * @param {Number} appID
+ * @param {Number} resultCode
+ * @param {Number} commandID
+ * @param {String} manualTextEntry
*/
- OnSystemContext: function( systemContextValue ) {
- Em.Logger.log( "FFW.UI.OnSystemContext" );
+ interactionResponse: function (appID, resultCode, commandID, manualTextEntry) {
- // send repsonse
- var JSONMessage = {
- "jsonrpc": "2.0",
- "method": "UI.OnSystemContext",
- "params": {
- "systemContext": systemContextValue
+ Em.Logger.log("FFW.UI.PerformInteractionResponse");
+
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": appID,
+ "result": {
+ "code": resultCode,
+ "method": "UI.PerformInteraction"
+ }
+ };
+
+ if (commandID) {
+ JSONMessage.result.choiceID = commandID;
}
- };
- this.client.send( JSONMessage );
+
+ if (manualTextEntry) {
+ JSONMessage.result.manualTextEntry = manualTextEntry;
+ }
+ } else {
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": appID,
+ "error": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "message": "Perform Interaction error response.",
+ "data": {
+ "method": "UI.PerformInteraction"
+ }
+ }
+ };
+ }
+
+ this.client.send(JSONMessage);
},
- /*
- * Notifies if application was activated
+ /**
+ * send notification when DriverDistraction PopUp is visible
+ *
+ * @param {String}
+ * driverDistractionState
*/
- OnAppActivated: function( appName ) {
- Em.Logger.log( "FFW.UI.OnAppActivated" );
+ onDriverDistraction: function (driverDistractionState) {
+
+ Em.Logger.log("FFW.UI.DriverDistraction");
// send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
- "method": "UI.OnAppActivated",
+ "method": "UI.OnDriverDistraction",
"params": {
- "appName": appName
+ "state": driverDistractionState
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
- /*
- * Notifies if device was choosed
+ /**
+ * Notifies if system context is changed
+ *
+ * @param {String}
+ * systemContextValue
*/
- OnDeviceChosen: function( deviceName ) {
- Em.Logger.log( "FFW.UI.OnDeviceChosen" );
+ OnSystemContext: function (systemContextValue) {
+
+ Em.Logger.log("FFW.UI.OnSystemContext");
// send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
- "method": "UI.OnDeviceChosen",
+ "method": "UI.OnSystemContext",
"params": {
- "deviceName": deviceName
+ "systemContext": systemContextValue
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
- /*
+ /**
* Notifies if sdl UI components language was changed
+ *
+ * @param {String}
+ * lang
*/
- OnLanguageChange: function( lang ) {
- Em.Logger.log( "FFW.UI.OnLanguageChange" );
+ OnLanguageChange: function (lang) {
+
+ Em.Logger.log("FFW.UI.OnLanguageChange");
// send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
"method": "UI.OnLanguageChange",
"params": {
- "hmiDisplayLanguage": lang
+ "language": lang
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
- /*
- * Notifies if TBTClientState was activated
+ /**
+ * Sends notification on SDL Core display keyboard value
+ *
+ * @param {String}
+ *
*/
- onTBTClientState: function( state, appId ) {
- Em.Logger.log( "FFW.UI.OnTBTClientState" );
+ OnKeyboardInput: function (value) {
+
+ Em.Logger.log("FFW.UI.OnKeyboardInput");
// send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
- "method": "UI.OnTBTClientState",
+ "method": "UI.OnKeyboardInput",
"params": {
- "state": state,
- "appId": appId
+ "data": value,
+ "event": "KEYPRESS"
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
}
-} )
+})
diff --git a/SDL_Core/src/components/HMI/ffw/VRRPC.js b/SDL_Core/src/components/HMI/ffw/VRRPC.js
index 77deb2a3b..cfc8b07fe 100755..100644
--- a/SDL_Core/src/components/HMI/ffw/VRRPC.js
+++ b/SDL_Core/src/components/HMI/ffw/VRRPC.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -35,24 +34,34 @@
FFW.VR = FFW.RPCObserver.create( {
+ /**
+ * If true then VR is present and ready to communicate with SDL.
+ *
+ * @type {Boolean}
+ */
+ isReady: true,
+
/*
* access to basic RPC functionality
*/
client: FFW.RPCClient.create( {
componentName: "VR"
- } ),
+ }),
/*
* connect to RPC bus
*/
connect: function() {
- this.client.connect( this, 500 );
+
+ this.client.connect(this, 500); // Magic number is unique identifier for
+ // component
},
/*
* disconnect from RPC bus
*/
disconnect: function() {
+
this.client.disconnect();
},
@@ -61,7 +70,8 @@ FFW.VR = FFW.RPCObserver.create( {
* time
*/
onRPCRegistered: function() {
- Em.Logger.log( "FFW.VR.onRPCRegistered" );
+
+ Em.Logger.log("FFW.VR.onRPCRegistered");
this._super();
},
@@ -69,7 +79,8 @@ FFW.VR = FFW.RPCObserver.create( {
* Client is unregistered - no more requests
*/
onRPCUnregistered: function() {
- Em.Logger.log( "FFW.VR.onRPCUnregistered" );
+
+ Em.Logger.log("FFW.VR.onRPCUnregistered");
this._super();
},
@@ -86,155 +97,159 @@ FFW.VR = FFW.RPCObserver.create( {
* previously store reuqestID to determine to which request repsonse belongs
* to
*/
- onRPCResult: function( response ) {
- Em.Logger.log( "FFW.VR.onRPCResult" );
+ onRPCResult: function(response) {
+
+ Em.Logger.log("FFW.VR.onRPCResult");
this._super();
},
/*
* handle RPC erros here
*/
- onRPCError: function( error ) {
- Em.Logger.log( "FFW.VR.onRPCError" );
+ onRPCError: function(error) {
+
+ Em.Logger.log("FFW.VR.onRPCError");
this._super();
},
/*
* handle RPC notifications here
*/
- onRPCNotification: function( notification ) {
- Em.Logger.log( "FFW.VR.onRPCNotification" );
+ onRPCNotification: function(notification) {
+
+ Em.Logger.log("FFW.VR.onRPCNotification");
this._super();
},
/*
* send notification when command was triggered
*/
- onCommand: function( element ) {
- Em.Logger.log( "FFW.VR.onCommand" );
+ onCommand: function(element) {
+
+ Em.Logger.log("FFW.VR.onCommand");
var JSONMessage = {
"jsonrpc": "2.0",
"method": "VR.OnCommand",
"params": {
- "commandId": element.commandId
+ "commandID": element.commandID
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
- SDL.VRPopUp.set( 'VRActive', false );
+ SDL.VRPopUp.set('VRActive', false);
},
/*
* handle RPC requests here
*/
- onRPCRequest: function( request ) {
- Em.Logger.log( "FFW.VR.onRPCRequest" );
- this._super();
+ onRPCRequest: function(request) {
+
+ Em.Logger.log("FFW.VR.onRPCRequest");
+ if (this.validationCheck(request)) {
- switch( request.method ){
+ switch (request.method) {
case "VR.AddCommand": {
- SDL.SDLModel.addCommandVR( request.params );
+ SDL.SDLModel.addCommandVR(request.params);
- // send repsonse
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": request.id,
- "result": {
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": request.method + "Response"
- }
- };
- this.client.send( JSONMessage );
+ this.sendVRResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
break;
}
case "VR.DeleteCommand": {
- SDL.SDLModel.deleteCommandVR( request.params.cmdId );
+ SDL.SDLModel.deleteCommandVR(request.params.cmdID);
- // send repsonse
- var JSONMessage = {
- "jsonrpc": "2.0",
- "id": request.id,
- "result": {
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": request.method + "Response"
- }
- };
- this.client.send( JSONMessage );
+ this.sendVRResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
break;
}
case "VR.GetSupportedLanguages": {
+ Em.Logger.log("FFW." + request.method + "Response");
+
var JSONMessage = {
"jsonrpc": "2.0",
"id": request.id,
"result": {
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": "VR.GetSupportedLanguagesResponse",
+ "code": SDL.SDLModel.resultCode["SUCCESS"], // type
+ // (enum)
+ // from SDL
+ "method": "VR.GetSupportedLanguages",
"languages": SDL.SDLModel.sdlLanguagesList
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
break;
}
case "VR.GetLanguage": {
+ Em.Logger.log("FFW." + request.method + "Response");
+
var JSONMessage = {
"jsonrpc": "2.0",
"id": request.id,
"result": {
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": "VR.GetLanguageResponse",
+ "code": SDL.SDLModel.resultCode["SUCCESS"], // type
+ // (enum)
+ // from SDL
+ "method": "VR.GetLanguage",
"language": SDL.SDLModel.hmiTTSVRLanguage
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
break;
}
- case "VR.GetCapabilities": {
+ case "VR.ChangeRegistration": {
+
+ SDL.SDLModel.changeRegistrationTTSVR(request.params.language, request.params.appID);
+
+ this.sendVRResult(SDL.SDLModel.resultCode["SUCCESS"],
+ request.id,
+ request.method);
+
+ break;
+ }
+ case "VR.IsReady": {
+
+ Em.Logger.log("FFW." + request.method + "Response");
// send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
"id": request.id,
"result": {
- "capabilities":
- [
- "TEXT"
- ],
- "method": "VR.GetCapabilitiesResponse",
- "resultCode": "SUCCESS" // type (enum) from SDL protocol
+ "available": this.get('isReady'),
+ "code": 0,
+ "method": "VR.IsReady"
}
};
- this.client.send( JSONMessage );
+
+ this.client.send(JSONMessage);
break;
}
- case "VR.ChangeRegistration": {
+ case "VR.GetCapabilities": {
- SDL.SDLModel.changeRegistrationTTSVR( request.params.language );
+ Em.Logger.log("FFW." + request.method + "Response");
- // send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
"id": request.id,
"result": {
- "resultCode": "SUCCESS", // type (enum) from SDL
- // protocol
- "method": request.method + "Response"
+ "code": SDL.SDLModel.resultCode["SUCCESS"],
+ "method": "VR.GetCapabilities",
+ "vrCapabilities": ["TEXT"]
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
break;
}
@@ -243,49 +258,141 @@ FFW.VR = FFW.RPCObserver.create( {
// statements_def
break;
}
+ }
+ }
+ },
+
+ /**
+ * Send error response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendError: function(resultCode, id, method, message) {
+
+ Em.Logger.log("FFW." + method + "Response");
+
+ if (resultCode != SDL.SDLModel.resultCode["SUCCESS"]) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "error": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "message": message,
+ "data": {
+ "method": method
+ }
+ }
+ };
+ this.client.send(JSONMessage);
}
+ },
+ /**
+ * send response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendVRResult: function(resultCode, id, method) {
+
+ Em.Logger.log("FFW." + method + "Response");
+
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "method": method
+ }
+ };
+ this.client.send(JSONMessage);
+ }
},
/*
* send notification when command was triggered from VR
*/
- onChoise: function( commandId ) {
- Em.Logger.log( "FFW.VR.PerformInteractionResponse" );
+ onChoise: function(commandID) {
+
+ Em.Logger.log("FFW.VR.PerformInteraction");
var JSONMessage = {
"jsonrpc": "2.0",
"method": "VR.OnChoise",
"params": {
- "choiceID": commandId
+ "choiceID": commandID
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
- /*
+ /**
+ * Initiated by VR module to let SDL know that VR session has started.
+ */
+ Started: function() {
+
+ Em.Logger.log("FFW.VR.Started");
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "VR.Started"
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
+ * Initiated by VR module to let SDL know that VR session has stopped.
+ */
+ Stopped: function() {
+
+ Em.Logger.log("FFW.VR.Stopped");
+
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "method": "VR.Stopped"
+ };
+ this.client.send(JSONMessage);
+ },
+
+ /**
* send notification when command was triggered
*/
- onCommand: function( commandId, appId ) {
- Em.Logger.log( "FFW.VR.onCommand" );
+ onCommand: function(commandID, appID) {
+
+ Em.Logger.log("FFW.VR.onCommand");
var JSONMessage = {
"jsonrpc": "2.0",
"method": "VR.OnCommand",
"params": {
- "cmdID": commandId,
- "appId": appId
+ "cmdID": commandID,
+ "appID": appID
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
- /*
+ /**
* Notifies if sdl VR components language was changed
*/
- OnLanguageChange: function( lang ) {
- Em.Logger.log( "FFW.VR.OnLanguageChange" );
+ OnLanguageChange: function(lang) {
+
+ Em.Logger.log("FFW.VR.OnLanguageChange");
// send repsonse
var JSONMessage = {
@@ -295,6 +402,6 @@ FFW.VR = FFW.RPCObserver.create( {
"language": lang
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
}
-} ) \ No newline at end of file
+}) \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/ffw/VehicleInfoRPC.js b/SDL_Core/src/components/HMI/ffw/VehicleInfoRPC.js
index 27fb9ce9a..6d969e0ca 100644
--- a/SDL_Core/src/components/HMI/ffw/VehicleInfoRPC.js
+++ b/SDL_Core/src/components/HMI/ffw/VehicleInfoRPC.js
@@ -2,15 +2,14 @@
* Copyright (c) 2013, Ford Motor Company All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -37,23 +36,33 @@
FFW.VehicleInfo = FFW.RPCObserver.create( {
/**
+ * If true then VehicleInfo is present and ready to communicate with SDL.
+ *
+ * @type {Boolean}
+ */
+ isReady: true,
+
+ /**
* access to basic RPC functionality
*/
client: FFW.RPCClient.create( {
componentName: "VehicleInfo"
- } ),
+ }),
/**
* connect to RPC bus
*/
connect: function() {
- this.client.connect( this, 600 );
+
+ this.client.connect(this, 700); // Magic number is unique identifier for
+ // component
},
/**
* disconnect from RPC bus
*/
disconnect: function() {
+
this.client.disconnect();
},
@@ -62,7 +71,8 @@ FFW.VehicleInfo = FFW.RPCObserver.create( {
* time
*/
onRPCRegistered: function() {
- Em.Logger.log( "FFW.VehicleInfo.onRPCRegistered" );
+
+ Em.Logger.log("FFW.VehicleInfo.onRPCRegistered");
this._super();
},
@@ -70,7 +80,8 @@ FFW.VehicleInfo = FFW.RPCObserver.create( {
* Client is unregistered - no more requests
*/
onRPCUnregistered: function() {
- Em.Logger.log( "FFW.VehicleInfo.onRPCUnregistered" );
+
+ Em.Logger.log("FFW.VehicleInfo.onRPCUnregistered");
this._super();
},
@@ -87,24 +98,27 @@ FFW.VehicleInfo = FFW.RPCObserver.create( {
* previously store reuqestID to determine to which request repsonse belongs
* to
*/
- onRPCResult: function( response ) {
- Em.Logger.log( "FFW.VehicleInfo.onRPCResult" );
+ onRPCResult: function(response) {
+
+ Em.Logger.log("FFW.VehicleInfo.onRPCResult");
this._super();
},
/**
* handle RPC erros here
*/
- onRPCError: function( error ) {
- Em.Logger.log( "FFW.VehicleInfo.onRPCError" );
+ onRPCError: function(error) {
+
+ Em.Logger.log("FFW.VehicleInfo.onRPCError");
this._super();
},
/**
* handle RPC notifications here
*/
- onRPCNotification: function( notification ) {
- Em.Logger.log( "FFW.VehicleInfo.onRPCNotification" );
+ onRPCNotification: function(notification) {
+
+ Em.Logger.log("FFW.VehicleInfo.onRPCNotification");
this._super();
},
@@ -113,60 +127,260 @@ FFW.VehicleInfo = FFW.RPCObserver.create( {
*
* @type {Object} request
*/
- onRPCRequest: function( request ) {
- Em.Logger.log( "FFW.VehicleInfo.onRPCRequest" );
- this._super();
+ onRPCRequest: function(request) {
+
+ Em.Logger.log("FFW.VehicleInfo.onRPCRequest");
+ if (this.validationCheck(request)) {
+
+ switch (request.method) {
+ case "VehicleInfo.GetVehicleData": {
+
+ SDL.SDLVehicleInfoModel.getVehicleData(request);
+
+ break;
+ }
+
+ case "VehicleInfo.ReadDID": {
+
+ SDL.SDLVehicleInfoModel.vehicleInfoReadDID(request.params,
+ request.id);
+
+ break;
+ }
+
+ case "VehicleInfo.GetDTCs": {
+
+ SDL.SDLVehicleInfoModel.vehicleInfoGetDTCs(request.params,
+ request.id);
+
+ break;
+ }
+
+ case "VehicleInfo.DiagnosticMessage": {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "messageDataResult": [200],
+ "code": SDL.SDLModel.resultCode["SUCCESS"],
+ "method": "VehicleInfo.DiagnosticMessage"
+ }
+ };
+
+ this.client.send(JSONMessage);
+
+ break;
+
+ break;
+ }
+
+ case "VehicleInfo.SubscribeVehicleData": {
+
+ SDL.SDLVehicleInfoModel.SubscribeVehicleData(request);
+
+ break;
+ }
+
+ case "VehicleInfo.UnsubscribeVehicleData": {
- if( request.method == "VehicleInfo.GetVehicleData" ){
+ SDL.SDLVehicleInfoModel.UnsubscribeVehicleData(request);
- var vehicleData = SDL.SDLVehicleInfoModel.getVehicleData( request.params ), resultCode;
+ break;
+ }
+
+ case "VehicleInfo.GetVehicleType": {
+
+ SDL.SDLVehicleInfoModel.getVehicleType(request.id);
+
+ break;
+ }
- if( vehicleData ){
- resultCode = "SUCCESS";
- }else{
- resultCode = "GENERIC_ERROR";
+ case "VehicleInfo.IsReady": {
+
+ Em.Logger.log("FFW." + request.method + "Response");
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": request.id,
+ "result": {
+ "available": this.get('isReady'),
+ "code": SDL.SDLModel.resultCode["SUCCESS"],
+ "method": "VehicleInfo.IsReady"
+ }
+ };
+
+ this.client.send(JSONMessage);
+
+ break;
}
+ default: {
+ // statements_def
+ break;
+ }
+ }
+ }
+ },
+
+ /**
+ * Send error response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendError: function(resultCode, id, method, message) {
+
+ Em.Logger.log("FFW." + method + "Response");
+
+ if (resultCode != SDL.SDLModel.resultCode["SUCCESS"]) {
+
// send repsonse
var JSONMessage = {
"jsonrpc": "2.0",
- "id": request.id,
- "result": {
- "resultCode": resultCode, // type (enum) from SDL protocol
- "method": "VehicleInfo.GetVehicleDataResponse"
- // request.params.dataType: vehicleData
+ "id": id,
+ "error": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "message": message,
+ "data": {
+ "method": method
+ }
}
};
- JSONMessage.result[SDL.SDLVehicleInfoModel.vehicleData[request.params.dataType].type] = vehicleData;
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
}
+ },
- if( request.method == "VehicleInfo.ReadDID" ){
+ /**
+ * Send response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendVIResult: function(resultCode, id, method) {
- SDL.SDLVehicleInfoModel.vehicleInfoReadDID( request.params, request.id );
+ Em.Logger.log("FFW." + method + "Response");
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": {
+ "code": resultCode,
+ "method": method
+ }
+ };
+ this.client.send(JSONMessage);
}
+ },
- if( request.method == "VehicleInfo.GetDTCs" ){
+ /**
+ * Send response from onRPCRequest
+ *
+ * @param {Number} resultCode
+ * @param {Number} id
+ * @param {String} method
+ * @param {Object} data
+ */
+ sendVISubscribeVehicleDataResult: function(resultCode, id, method, data) {
- SDL.SDLVehicleInfoModel.vehicleInfoGetDTCs( request.params, request.id );
+ Em.Logger.log("FFW." + method + "Response");
+ if (resultCode === SDL.SDLModel.resultCode["SUCCESS"]) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": data
+ };
+
+ JSONMessage.result.code = resultCode;
+ JSONMessage.result.method = method;
+
+ this.client.send(JSONMessage);
}
+ },
- if( request.method == "VehicleInfo.GetVehicleType" ){
+ /**
+ * Send error response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendGetVehicleDataError: function(resultCode, id, method, message, data) {
- SDL.SDLVehicleInfoModel.getVehicleType( request.id );
+ Em.Logger.log("FFW." + method + "Response");
+
+ if (resultCode != SDL.SDLModel.resultCode["SUCCESS"]) {
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "error": {
+ "code": resultCode, // type (enum) from SDL protocol
+ "message": message,
+ "data": data
+ }
+ };
+ JSONMessage.error.data.method = method;
+ this.client.send(JSONMessage);
}
},
/**
+ * Send error response from onRPCRequest
+ *
+ * @param {Number}
+ * resultCode
+ * @param {Number}
+ * id
+ * @param {String}
+ * method
+ */
+ sendGetVehicleDataResut: function(resultCode, id, method, data) {
+
+ Em.Logger.log("FFW." + method + "Response");
+
+ // send repsonse
+ var JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": data
+ };
+ JSONMessage.result.code = resultCode;
+ JSONMessage.result.method = method;
+ this.client.send(JSONMessage);
+ },
+
+ /**
* Notifies if data was changed
*
* @type {Object} params
*/
- OnVehicleData: function( params ) {
- Em.Logger.log( "FFW.VehicleInfo.OnVehicleData" );
+ OnVehicleData: function(params) {
+
+ Em.Logger.log("FFW.VehicleInfo.OnVehicleData");
// send repsonse
var JSONMessage = {
@@ -174,7 +388,7 @@ FFW.VehicleInfo = FFW.RPCObserver.create( {
"method": "VehicleInfo.OnVehicleData",
"params": params
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
/**
@@ -183,20 +397,21 @@ FFW.VehicleInfo = FFW.RPCObserver.create( {
* @type {string} vehicleType
* @type {int} id
*/
- GetVehicleTypeResponse: function( vehicleType, id ) {
- Em.Logger.log( "FFW.VehicleInfo.GetVehicleType" );
+ GetVehicleTypeResponse: function(vehicleType, id) {
+
+ Em.Logger.log("FFW.VehicleInfo.GetVehicleTypeResponse");
var JSONMessage = {
"jsonrpc": "2.0",
"id": id,
"result": {
- "resultCode": "SUCCESS", // type (enum) from SDL protocol
- "method": "VehicleInfo.GetVehicleTypeResponse",
+ "code": SDL.SDLModel.resultCode["SUCCESS"],
+ "method": "VehicleInfo.GetVehicleType",
"vehicleType": vehicleType
}
};
- this.client.send( JSONMessage );
+ this.client.send(JSONMessage);
},
/**
@@ -208,72 +423,52 @@ FFW.VehicleInfo = FFW.RPCObserver.create( {
* @type {string} result
* @type {int} id
*/
- vehicleInfoReadDIDResponse: function( dataResult, data, info, result, id ) {
- Em.Logger.log( "FFW.VehicleInfo.ReadDID" );
+ vehicleInfoReadDIDResponse: function(didResult, resultCode, id) {
+
+ Em.Logger.log("FFW.VehicleInfo.ReadDIDResponse");
var JSONMessage;
// send repsonse
- if( result != 'ENCRYPTED' ){
- JSONMessage = {
- "jsonrpc": "2.0",
- "id": id,
- "result": {
- "resultCode": result, // type (enum) from SDL protocol
- "method": "VehicleInfo.ReadDIDResponse",
- "info": info,
- "dataResult": dataResult,
- "data": data
- }
- };
- }else{
- JSONMessage = {
- "jsonrpc": "2.0",
- "id": id,
- "result": {
- "resultCode": result, // type (enum) from SDL protocol
- "method": "VehicleInfo.ReadDIDResponse",
- "info": info
- }
- };
- }
- this.client.send( JSONMessage );
+ JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": {
+ "code": SDL.SDLModel.resultCode[resultCode], // type (enum)
+ // from SDL
+ // protocol
+ "method": "VehicleInfo.ReadDID",
+ "didResult": didResult
+ }
+ };
+ this.client.send(JSONMessage);
},
/**
* GetDTCs Response
*
- * @type {array} data
- * @type {string} info
- * @type {string} result
- * @type {int} id
+ * @type {Number} ecuHeader
+ * @type {Array} dtc
+ * @type {String} result
+ * @type {Number} id
*/
- vehicleInfoGetDTCsResponse: function( data, info, result, id ) {
- Em.Logger.log( "FFW.VehicleInfo.GetDTCs" );
+ vehicleInfoGetDTCsResponse: function(ecuHeader, dtc, result, id) {
+
+ Em.Logger.log("FFW.VehicleInfo.GetDTCsResponse");
var JSONMessage;
// send repsonse
- if( result != 'ENCRYPTED' ){
- JSONMessage = {
- "jsonrpc": "2.0",
- "id": id,
- "result": {
- "resultCode": result, // type (enum) from SDL protocol
- "method": "VehicleInfo.GetDTCsResponse",
- "info": info,
- "dtcList": data
- }
- };
- }else{
- JSONMessage = {
- "jsonrpc": "2.0",
- "id": id,
- "result": {
- "resultCode": result, // type (enum) from SDL protocol
- "method": "VehicleInfo.GetDTCsResponse",
- "info": info
- }
- };
- }
- this.client.send( JSONMessage );
+ JSONMessage = {
+ "jsonrpc": "2.0",
+ "id": id,
+ "result": {
+ "code": SDL.SDLModel.resultCode[result], // type (enum) from
+ // SDL protocol
+ "method": "VehicleInfo.GetDTCs",
+ "ecuHeader": ecuHeader,
+ "dtc": dtc
+ }
+ };
+
+ this.client.send(JSONMessage);
}
-} ) \ No newline at end of file
+}) \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/ffw/WebSocket.js b/SDL_Core/src/components/HMI/ffw/WebSocket.js
index c126f3c09..7b508b406 100755..100644
--- a/SDL_Core/src/components/HMI/ffw/WebSocket.js
+++ b/SDL_Core/src/components/HMI/ffw/WebSocket.js
@@ -1,75 +1,77 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- * WebSocket interface mockup
- *
- * Android WebView and browser don't support WebSocket This class provides
- * interface mockup to have seamless code for different platforms
- * JavaScriptFacade is used instead of real WebSocket connection
- *
- */
-
-FFW.WebSocket = Em.Object.extend( {
-
- readyState: 1,
-
- /*
- * add observer of messages from Android
- */
- init: function() {
- FFW.WebSocketSimulator.addClient( this );
- },
-
- /*
- * remove observer of Android messages on connection close
- */
- close: function() {
- FFW.WebSocketSimulator.removeClient( this );
- // simulate connection is closed
- this.onclose( null );
- },
-
- /*
- * send message to Android native code Java Script facade is used instead of
- * real WebSocket connection
- */
- send: function( jsonMessage ) {
- FFW.WebSocketSimulator.send( this.clientName, jsonMessage );
- },
-
- // handlers for web socket events
- onclose: null,
- onerror: null,
- onmessage: null,
- onopen: null,
-
- /*
- * used for identification of sender and receiver of particular message
- * from/to Android
- */
- clientName: ''
-} );
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * WebSocket interface mockup
+ *
+ * Android WebView and browser don't support WebSocket This class provides
+ * interface mockup to have seamless code for different platforms
+ * JavaScriptFacade is used instead of real WebSocket connection
+ *
+ */
+
+FFW.WebSocket = Em.Object.extend( {
+
+ readyState: 1,
+
+ /*
+ * add observer of messages from Android
+ */
+ init: function() {
+
+ FFW.WebSocketSimulator.addClient(this);
+ },
+
+ /*
+ * remove observer of Android messages on connection close
+ */
+ close: function() {
+
+ FFW.WebSocketSimulator.removeClient(this);
+ // simulate connection is closed
+ this.onclose(null);
+ },
+
+ /*
+ * send message to Android native code Java Script facade is used instead of
+ * real WebSocket connection
+ */
+ send: function(jsonMessage) {
+
+ FFW.WebSocketSimulator.send(this.clientName, jsonMessage);
+ },
+
+ // handlers for web socket events
+ onclose: null,
+ onerror: null,
+ onmessage: null,
+ onopen: null,
+
+ /*
+ * used for identification of sender and receiver of particular message
+ * from/to Android
+ */
+ clientName: ''
+});
diff --git a/SDL_Core/src/components/HMI/images/climate/airflow_feet_wide.png b/SDL_Core/src/components/HMI/images/climate/airflow_feet_wide.png
deleted file mode 100755
index ac2c1e241..000000000
--- a/SDL_Core/src/components/HMI/images/climate/airflow_feet_wide.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/airflow_panel_wide.png b/SDL_Core/src/components/HMI/images/climate/airflow_panel_wide.png
deleted file mode 100755
index aa087fcd1..000000000
--- a/SDL_Core/src/components/HMI/images/climate/airflow_panel_wide.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/bg.png b/SDL_Core/src/components/HMI/images/climate/bg.png
deleted file mode 100755
index f4b6f1ade..000000000
--- a/SDL_Core/src/components/HMI/images/climate/bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/fan_control/fan_ico.png b/SDL_Core/src/components/HMI/images/climate/fan_control/fan_ico.png
deleted file mode 100755
index 6165115c8..000000000
--- a/SDL_Core/src/components/HMI/images/climate/fan_control/fan_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/fan_control/fan_ind_active.png b/SDL_Core/src/components/HMI/images/climate/fan_control/fan_ind_active.png
deleted file mode 100755
index 67943ec9c..000000000
--- a/SDL_Core/src/components/HMI/images/climate/fan_control/fan_ind_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/fan_control/fan_ind_def.png b/SDL_Core/src/components/HMI/images/climate/fan_control/fan_ind_def.png
deleted file mode 100755
index e1b97cc68..000000000
--- a/SDL_Core/src/components/HMI/images/climate/fan_control/fan_ind_def.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/fan_control/fan_minus_control.png b/SDL_Core/src/components/HMI/images/climate/fan_control/fan_minus_control.png
deleted file mode 100755
index 65a142f87..000000000
--- a/SDL_Core/src/components/HMI/images/climate/fan_control/fan_minus_control.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/fan_control/fan_plus_comtrol.png b/SDL_Core/src/components/HMI/images/climate/fan_control/fan_plus_comtrol.png
deleted file mode 100755
index b4be9cdfd..000000000
--- a/SDL_Core/src/components/HMI/images/climate/fan_control/fan_plus_comtrol.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/gang_buttons/ac_ico.png b/SDL_Core/src/components/HMI/images/climate/gang_buttons/ac_ico.png
deleted file mode 100755
index 2722b9a88..000000000
--- a/SDL_Core/src/components/HMI/images/climate/gang_buttons/ac_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/gang_buttons/auto_ico.png b/SDL_Core/src/components/HMI/images/climate/gang_buttons/auto_ico.png
deleted file mode 100755
index 2ecc70de3..000000000
--- a/SDL_Core/src/components/HMI/images/climate/gang_buttons/auto_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/gang_buttons/defrost_ico.png b/SDL_Core/src/components/HMI/images/climate/gang_buttons/defrost_ico.png
deleted file mode 100755
index 85ad08ddd..000000000
--- a/SDL_Core/src/components/HMI/images/climate/gang_buttons/defrost_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/gang_buttons/maxac_ico.png b/SDL_Core/src/components/HMI/images/climate/gang_buttons/maxac_ico.png
deleted file mode 100755
index 33cb2d307..000000000
--- a/SDL_Core/src/components/HMI/images/climate/gang_buttons/maxac_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/gang_buttons/recycle_ico.png b/SDL_Core/src/components/HMI/images/climate/gang_buttons/recycle_ico.png
deleted file mode 100755
index e063099aa..000000000
--- a/SDL_Core/src/components/HMI/images/climate/gang_buttons/recycle_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/gang_buttons/windsheald_ico.png b/SDL_Core/src/components/HMI/images/climate/gang_buttons/windsheald_ico.png
deleted file mode 100755
index d403c9c11..000000000
--- a/SDL_Core/src/components/HMI/images/climate/gang_buttons/windsheald_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/gang_buttons/windsheald_max_ico.png b/SDL_Core/src/components/HMI/images/climate/gang_buttons/windsheald_max_ico.png
deleted file mode 100755
index cf83c5bd4..000000000
--- a/SDL_Core/src/components/HMI/images/climate/gang_buttons/windsheald_max_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/heated_stearbutton_blur.png b/SDL_Core/src/components/HMI/images/climate/heated_stearbutton_blur.png
deleted file mode 100755
index 933f24ad2..000000000
--- a/SDL_Core/src/components/HMI/images/climate/heated_stearbutton_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/helpmode_climate_front.jpg b/SDL_Core/src/components/HMI/images/climate/helpmode_climate_front.jpg
deleted file mode 100755
index 5fff1bdf4..000000000
--- a/SDL_Core/src/components/HMI/images/climate/helpmode_climate_front.jpg
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/helpmode_climate_rear.jpg b/SDL_Core/src/components/HMI/images/climate/helpmode_climate_rear.jpg
deleted file mode 100755
index 686d68d29..000000000
--- a/SDL_Core/src/components/HMI/images/climate/helpmode_climate_rear.jpg
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/helpmode_climate_simple.jpg b/SDL_Core/src/components/HMI/images/climate/helpmode_climate_simple.jpg
deleted file mode 100755
index deedc8b09..000000000
--- a/SDL_Core/src/components/HMI/images/climate/helpmode_climate_simple.jpg
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/ind_horiz_active.png b/SDL_Core/src/components/HMI/images/climate/ind_horiz_active.png
deleted file mode 100755
index bc6c905e3..000000000
--- a/SDL_Core/src/components/HMI/images/climate/ind_horiz_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/ind_horiz_active_wheel.png b/SDL_Core/src/components/HMI/images/climate/ind_horiz_active_wheel.png
deleted file mode 100755
index add1dd3bf..000000000
--- a/SDL_Core/src/components/HMI/images/climate/ind_horiz_active_wheel.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/ind_horiz_def.png b/SDL_Core/src/components/HMI/images/climate/ind_horiz_def.png
deleted file mode 100755
index 18d645b1f..000000000
--- a/SDL_Core/src/components/HMI/images/climate/ind_horiz_def.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/ind_vert_active.png b/SDL_Core/src/components/HMI/images/climate/ind_vert_active.png
deleted file mode 100755
index 526fc2746..000000000
--- a/SDL_Core/src/components/HMI/images/climate/ind_vert_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/ind_vert_def.png b/SDL_Core/src/components/HMI/images/climate/ind_vert_def.png
deleted file mode 100755
index 594852cd1..000000000
--- a/SDL_Core/src/components/HMI/images/climate/ind_vert_def.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/key.png b/SDL_Core/src/components/HMI/images/climate/key.png
deleted file mode 100755
index f079ff20e..000000000
--- a/SDL_Core/src/components/HMI/images/climate/key.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/left_person_control/cooledseat_ico.png b/SDL_Core/src/components/HMI/images/climate/left_person_control/cooledseat_ico.png
deleted file mode 100755
index fc6214a7e..000000000
--- a/SDL_Core/src/components/HMI/images/climate/left_person_control/cooledseat_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/left_person_control/cooledstear_ico.png b/SDL_Core/src/components/HMI/images/climate/left_person_control/cooledstear_ico.png
deleted file mode 100755
index 2bf66a4f7..000000000
--- a/SDL_Core/src/components/HMI/images/climate/left_person_control/cooledstear_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/left_person_control/heatedseat_ico.png b/SDL_Core/src/components/HMI/images/climate/left_person_control/heatedseat_ico.png
deleted file mode 100755
index 6722dcec6..000000000
--- a/SDL_Core/src/components/HMI/images/climate/left_person_control/heatedseat_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/left_person_control/mytemp_ico.png b/SDL_Core/src/components/HMI/images/climate/left_person_control/mytemp_ico.png
deleted file mode 100755
index e03e9d889..000000000
--- a/SDL_Core/src/components/HMI/images/climate/left_person_control/mytemp_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/minus_ico.png b/SDL_Core/src/components/HMI/images/climate/minus_ico.png
deleted file mode 100755
index 60f05dacf..000000000
--- a/SDL_Core/src/components/HMI/images/climate/minus_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/modeman/defrost_ico.png b/SDL_Core/src/components/HMI/images/climate/modeman/defrost_ico.png
deleted file mode 100755
index e6741f908..000000000
--- a/SDL_Core/src/components/HMI/images/climate/modeman/defrost_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/modeman/feet_ico.png b/SDL_Core/src/components/HMI/images/climate/modeman/feet_ico.png
deleted file mode 100755
index 2b78ec515..000000000
--- a/SDL_Core/src/components/HMI/images/climate/modeman/feet_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/modeman/panel_ico.png b/SDL_Core/src/components/HMI/images/climate/modeman/panel_ico.png
deleted file mode 100755
index 66681b2ff..000000000
--- a/SDL_Core/src/components/HMI/images/climate/modeman/panel_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/modeman/panelfeet_ico.png b/SDL_Core/src/components/HMI/images/climate/modeman/panelfeet_ico.png
deleted file mode 100755
index 4ec1aec99..000000000
--- a/SDL_Core/src/components/HMI/images/climate/modeman/panelfeet_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/plus_ico.png b/SDL_Core/src/components/HMI/images/climate/plus_ico.png
deleted file mode 100755
index 9cada1c1a..000000000
--- a/SDL_Core/src/components/HMI/images/climate/plus_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/power_button/power_icon.png b/SDL_Core/src/components/HMI/images/climate/power_button/power_icon.png
deleted file mode 100755
index 2a3d99b0b..000000000
--- a/SDL_Core/src/components/HMI/images/climate/power_button/power_icon.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/center_dot_rear_fan.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/center_dot_rear_fan.png
deleted file mode 100755
index a2f525960..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/center_dot_rear_fan.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/full_ico.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/full_ico.png
deleted file mode 100755
index 02e639bfb..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/full_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/heat_ico.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/heat_ico.png
deleted file mode 100755
index c07e5198c..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/heat_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/indicator_long_act.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/indicator_long_act.png
deleted file mode 100755
index 4f5d32bf6..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/indicator_long_act.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/indicator_long_def.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/indicator_long_def.png
deleted file mode 100755
index 3428c0f3c..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/indicator_long_def.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/minus_icon.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/minus_icon.png
deleted file mode 100755
index df76b72b0..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/minus_icon.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/plus_icon.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/plus_icon.png
deleted file mode 100755
index 1aa56fa22..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/plus_icon.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_closed.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_closed.png
deleted file mode 100755
index 4fa46dc97..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_closed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_icon.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_icon.png
deleted file mode 100755
index a9e422a9f..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_icon.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_opened.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_opened.png
deleted file mode 100755
index cdb86ec0f..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_but_opened.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_climat_ico.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_climat_ico.png
deleted file mode 100755
index 76f2b1d23..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_climat_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_control_but_ico.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_control_but_ico.png
deleted file mode 100755
index d7e2fc321..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_control_but_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_lightning.png b/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_lightning.png
deleted file mode 100755
index d79264664..000000000
--- a/SDL_Core/src/components/HMI/images/climate/rear_auto/rear_lightning.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/small_ind_active.png b/SDL_Core/src/components/HMI/images/climate/small_ind_active.png
deleted file mode 100755
index 11c1bee2c..000000000
--- a/SDL_Core/src/components/HMI/images/climate/small_ind_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/small_ind_blue.png b/SDL_Core/src/components/HMI/images/climate/small_ind_blue.png
deleted file mode 100755
index b99f77a88..000000000
--- a/SDL_Core/src/components/HMI/images/climate/small_ind_blue.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/small_ind_def.png b/SDL_Core/src/components/HMI/images/climate/small_ind_def.png
deleted file mode 100755
index 76ca04dc3..000000000
--- a/SDL_Core/src/components/HMI/images/climate/small_ind_def.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/small_ind_green.png b/SDL_Core/src/components/HMI/images/climate/small_ind_green.png
deleted file mode 100755
index 3943da117..000000000
--- a/SDL_Core/src/components/HMI/images/climate/small_ind_green.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/status/cool1.png b/SDL_Core/src/components/HMI/images/climate/status/cool1.png
deleted file mode 100755
index d1af3c2b8..000000000
--- a/SDL_Core/src/components/HMI/images/climate/status/cool1.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/status/cool2.png b/SDL_Core/src/components/HMI/images/climate/status/cool2.png
deleted file mode 100755
index 06deb9471..000000000
--- a/SDL_Core/src/components/HMI/images/climate/status/cool2.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/status/cool3.png b/SDL_Core/src/components/HMI/images/climate/status/cool3.png
deleted file mode 100755
index 5de4c9897..000000000
--- a/SDL_Core/src/components/HMI/images/climate/status/cool3.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/status/heat1.png b/SDL_Core/src/components/HMI/images/climate/status/heat1.png
deleted file mode 100755
index eac25d6df..000000000
--- a/SDL_Core/src/components/HMI/images/climate/status/heat1.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/status/heat2.png b/SDL_Core/src/components/HMI/images/climate/status/heat2.png
deleted file mode 100755
index 25ba1d203..000000000
--- a/SDL_Core/src/components/HMI/images/climate/status/heat2.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/climate/status/heat3.png b/SDL_Core/src/components/HMI/images/climate/status/heat3.png
deleted file mode 100755
index c870cec1c..000000000
--- a/SDL_Core/src/components/HMI/images/climate/status/heat3.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/arr-r-disable.png b/SDL_Core/src/components/HMI/images/common/arr-r-disable.png
index acdfb56f9..acdfb56f9 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/arr-r-disable.png
+++ b/SDL_Core/src/components/HMI/images/common/arr-r-disable.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/arr-r.png b/SDL_Core/src/components/HMI/images/common/arr-r.png
index 05d8e9797..05d8e9797 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/arr-r.png
+++ b/SDL_Core/src/components/HMI/images/common/arr-r.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/arrow_ico.png b/SDL_Core/src/components/HMI/images/common/arrow_ico.png
index 97126966d..97126966d 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/arrow_ico.png
+++ b/SDL_Core/src/components/HMI/images/common/arrow_ico.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/bottom_cont_bg.png b/SDL_Core/src/components/HMI/images/common/bottom_cont_bg.png
deleted file mode 100755
index ea1198d22..000000000
--- a/SDL_Core/src/components/HMI/images/common/bottom_cont_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/bt_bg.png b/SDL_Core/src/components/HMI/images/common/bt_bg.png
index b69267e44..b69267e44 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/bt_bg.png
+++ b/SDL_Core/src/components/HMI/images/common/bt_bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/bt_bg_pressed.png b/SDL_Core/src/components/HMI/images/common/bt_bg_pressed.png
index acd4acbac..acd4acbac 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/bt_bg_pressed.png
+++ b/SDL_Core/src/components/HMI/images/common/bt_bg_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/btn-28h-gray-active.png b/SDL_Core/src/components/HMI/images/common/btn-28h-gray-active.png
index 2b4b2ee0a..2b4b2ee0a 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/btn-28h-gray-active.png
+++ b/SDL_Core/src/components/HMI/images/common/btn-28h-gray-active.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/btn-28h.png b/SDL_Core/src/components/HMI/images/common/btn-28h.png
index 034c061be..034c061be 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/btn-28h.png
+++ b/SDL_Core/src/components/HMI/images/common/btn-28h.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/btn-48h-active-gray.png b/SDL_Core/src/components/HMI/images/common/btn-48h-active-gray.png
index 3faeff3d7..3faeff3d7 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/btn-48h-active-gray.png
+++ b/SDL_Core/src/components/HMI/images/common/btn-48h-active-gray.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/btn-48h-active.png b/SDL_Core/src/components/HMI/images/common/btn-48h-active.png
index 9515a2172..9515a2172 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/btn-48h-active.png
+++ b/SDL_Core/src/components/HMI/images/common/btn-48h-active.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/btn-48h-pressed.png b/SDL_Core/src/components/HMI/images/common/btn-48h-pressed.png
index 8f62dd087..8f62dd087 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/btn-48h-pressed.png
+++ b/SDL_Core/src/components/HMI/images/common/btn-48h-pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/btn-48h.png b/SDL_Core/src/components/HMI/images/common/btn-48h.png
index 89fe73bf3..89fe73bf3 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/btn-48h.png
+++ b/SDL_Core/src/components/HMI/images/common/btn-48h.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/btn-98h.png b/SDL_Core/src/components/HMI/images/common/btn-98h.png
index be25c0c45..be25c0c45 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/btn-98h.png
+++ b/SDL_Core/src/components/HMI/images/common/btn-98h.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/button.png b/SDL_Core/src/components/HMI/images/common/button.png
index 04144a6d6..04144a6d6 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/button.png
+++ b/SDL_Core/src/components/HMI/images/common/button.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/button_active_blue.png b/SDL_Core/src/components/HMI/images/common/button_active_blue.png
index e8f661903..e8f661903 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/button_active_blue.png
+++ b/SDL_Core/src/components/HMI/images/common/button_active_blue.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/button_large.png b/SDL_Core/src/components/HMI/images/common/button_large.png
index 737f96262..737f96262 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/button_large.png
+++ b/SDL_Core/src/components/HMI/images/common/button_large.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/button_small.png b/SDL_Core/src/components/HMI/images/common/button_small.png
index 3f8ec3448..3f8ec3448 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/button_small.png
+++ b/SDL_Core/src/components/HMI/images/common/button_small.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/center-button-150.png b/SDL_Core/src/components/HMI/images/common/center-button-150.png
index a696c3ca6..a696c3ca6 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/center-button-150.png
+++ b/SDL_Core/src/components/HMI/images/common/center-button-150.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/center-button.png b/SDL_Core/src/components/HMI/images/common/center-button.png
index fd407b735..fd407b735 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/center-button.png
+++ b/SDL_Core/src/components/HMI/images/common/center-button.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/climate-status-bg.png b/SDL_Core/src/components/HMI/images/common/climate-status-bg.png
index dbdddddd5..dbdddddd5 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/climate-status-bg.png
+++ b/SDL_Core/src/components/HMI/images/common/climate-status-bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/delim.png b/SDL_Core/src/components/HMI/images/common/delim.png
index 98e651666..98e651666 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/delim.png
+++ b/SDL_Core/src/components/HMI/images/common/delim.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/divider.png b/SDL_Core/src/components/HMI/images/common/divider.png
index c567e5ef2..c567e5ef2 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/divider.png
+++ b/SDL_Core/src/components/HMI/images/common/divider.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/header_bg.png b/SDL_Core/src/components/HMI/images/common/header_bg.png
index f2752149f..f2752149f 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/header_bg.png
+++ b/SDL_Core/src/components/HMI/images/common/header_bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/ico_back.png b/SDL_Core/src/components/HMI/images/common/ico_back.png
index f2cdf410e..f2cdf410e 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/ico_back.png
+++ b/SDL_Core/src/components/HMI/images/common/ico_back.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/ind_vert_active.png b/SDL_Core/src/components/HMI/images/common/ind_vert_active.png
index 526fc2746..526fc2746 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/ind_vert_active.png
+++ b/SDL_Core/src/components/HMI/images/common/ind_vert_active.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/ind_vert_def.png b/SDL_Core/src/components/HMI/images/common/ind_vert_def.png
index 594852cd1..594852cd1 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/ind_vert_def.png
+++ b/SDL_Core/src/components/HMI/images/common/ind_vert_def.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/ls_border.png b/SDL_Core/src/components/HMI/images/common/ls_border.png
index d59d3afbb..d59d3afbb 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/ls_border.png
+++ b/SDL_Core/src/components/HMI/images/common/ls_border.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/media-status-bg.png b/SDL_Core/src/components/HMI/images/common/media-status-bg.png
index b48786c04..b48786c04 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/media-status-bg.png
+++ b/SDL_Core/src/components/HMI/images/common/media-status-bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/minus-ico.png b/SDL_Core/src/components/HMI/images/common/minus-ico.png
index a5fd7585a..a5fd7585a 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/minus-ico.png
+++ b/SDL_Core/src/components/HMI/images/common/minus-ico.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/nav-status-bg.png b/SDL_Core/src/components/HMI/images/common/nav-status-bg.png
index afe2168ca..afe2168ca 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/nav-status-bg.png
+++ b/SDL_Core/src/components/HMI/images/common/nav-status-bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/okbut.png b/SDL_Core/src/components/HMI/images/common/okbut.png
index 7762204aa..7762204aa 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/okbut.png
+++ b/SDL_Core/src/components/HMI/images/common/okbut.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/okbut_pressed.png b/SDL_Core/src/components/HMI/images/common/okbut_pressed.png
index 7f3262f2d..7f3262f2d 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/okbut_pressed.png
+++ b/SDL_Core/src/components/HMI/images/common/okbut_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/page-back-button.png b/SDL_Core/src/components/HMI/images/common/page-back-button.png
index 8cc6ad971..8cc6ad971 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/page-back-button.png
+++ b/SDL_Core/src/components/HMI/images/common/page-back-button.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/phone-statusbar-bg.png b/SDL_Core/src/components/HMI/images/common/phone-statusbar-bg.png
index 1d63f4898..1d63f4898 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/phone-statusbar-bg.png
+++ b/SDL_Core/src/components/HMI/images/common/phone-statusbar-bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/plus-ico.png b/SDL_Core/src/components/HMI/images/common/plus-ico.png
index 3a3aa2181..3a3aa2181 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/plus-ico.png
+++ b/SDL_Core/src/components/HMI/images/common/plus-ico.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/scroll_down.png b/SDL_Core/src/components/HMI/images/common/scroll_down.png
index d16060531..d16060531 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/scroll_down.png
+++ b/SDL_Core/src/components/HMI/images/common/scroll_down.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/scroll_down_active.png b/SDL_Core/src/components/HMI/images/common/scroll_down_active.png
index f609ecae6..f609ecae6 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/scroll_down_active.png
+++ b/SDL_Core/src/components/HMI/images/common/scroll_down_active.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/scroll_down_inactive.png b/SDL_Core/src/components/HMI/images/common/scroll_down_inactive.png
index 418379f0b..418379f0b 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/scroll_down_inactive.png
+++ b/SDL_Core/src/components/HMI/images/common/scroll_down_inactive.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/scroll_up.png b/SDL_Core/src/components/HMI/images/common/scroll_up.png
index 6ae4d6836..6ae4d6836 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/scroll_up.png
+++ b/SDL_Core/src/components/HMI/images/common/scroll_up.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/scroll_up_inactive.png b/SDL_Core/src/components/HMI/images/common/scroll_up_inactive.png
index 328ed7a3a..328ed7a3a 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/scroll_up_inactive.png
+++ b/SDL_Core/src/components/HMI/images/common/scroll_up_inactive.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/seat-act-led.png b/SDL_Core/src/components/HMI/images/common/seat-act-led.png
index 7acb61359..7acb61359 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/seat-act-led.png
+++ b/SDL_Core/src/components/HMI/images/common/seat-act-led.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/seat-inact-led.png b/SDL_Core/src/components/HMI/images/common/seat-inact-led.png
index 40a57e2cc..40a57e2cc 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/seat-inact-led.png
+++ b/SDL_Core/src/components/HMI/images/common/seat-inact-led.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/skipbuttonbg.png b/SDL_Core/src/components/HMI/images/common/skipbuttonbg.png
index 9e3b4e97a..9e3b4e97a 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/skipbuttonbg.png
+++ b/SDL_Core/src/components/HMI/images/common/skipbuttonbg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/skippbuttonbg_pressed.png b/SDL_Core/src/components/HMI/images/common/skippbuttonbg_pressed.png
index 27c2a52ce..27c2a52ce 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/skippbuttonbg_pressed.png
+++ b/SDL_Core/src/components/HMI/images/common/skippbuttonbg_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/system_settings_btn_bg.png b/SDL_Core/src/components/HMI/images/common/system_settings_btn_bg.png
index ca8a268dd..ca8a268dd 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/system_settings_btn_bg.png
+++ b/SDL_Core/src/components/HMI/images/common/system_settings_btn_bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/system_settings_btn_bg_active.png b/SDL_Core/src/components/HMI/images/common/system_settings_btn_bg_active.png
index b53bd11e8..b53bd11e8 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/system_settings_btn_bg_active.png
+++ b/SDL_Core/src/components/HMI/images/common/system_settings_btn_bg_active.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/system_settings_btn_h54.png b/SDL_Core/src/components/HMI/images/common/system_settings_btn_h54.png
index 1da632450..1da632450 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/system_settings_btn_h54.png
+++ b/SDL_Core/src/components/HMI/images/common/system_settings_btn_h54.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/common/toggle.png b/SDL_Core/src/components/HMI/images/common/toggle.png
index 7162ad36b..7162ad36b 100755..100644
--- a/SDL_Core/src/components/HMI/images/common/toggle.png
+++ b/SDL_Core/src/components/HMI/images/common/toggle.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/faq_bg.png b/SDL_Core/src/components/HMI/images/help/faq_bg.png
deleted file mode 100755
index 44d419af2..000000000
--- a/SDL_Core/src/components/HMI/images/help/faq_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/faq_top_btn.png b/SDL_Core/src/components/HMI/images/help/faq_top_btn.png
deleted file mode 100755
index 560a13fcb..000000000
--- a/SDL_Core/src/components/HMI/images/help/faq_top_btn.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/faq_top_btn_pressed.png b/SDL_Core/src/components/HMI/images/help/faq_top_btn_pressed.png
deleted file mode 100755
index 3094777fb..000000000
--- a/SDL_Core/src/components/HMI/images/help/faq_top_btn_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/help_devider.png b/SDL_Core/src/components/HMI/images/help/help_devider.png
deleted file mode 100755
index 7fe66bc6f..000000000
--- a/SDL_Core/src/components/HMI/images/help/help_devider.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/help_pressed.png b/SDL_Core/src/components/HMI/images/help/help_pressed.png
deleted file mode 100755
index b26c76335..000000000
--- a/SDL_Core/src/components/HMI/images/help/help_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/ind_vert_active.png b/SDL_Core/src/components/HMI/images/help/ind_vert_active.png
deleted file mode 100755
index 526fc2746..000000000
--- a/SDL_Core/src/components/HMI/images/help/ind_vert_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/ind_vert_def.png b/SDL_Core/src/components/HMI/images/help/ind_vert_def.png
deleted file mode 100755
index 56b3f44e7..000000000
--- a/SDL_Core/src/components/HMI/images/help/ind_vert_def.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/left_yellow_bg.png b/SDL_Core/src/components/HMI/images/help/left_yellow_bg.png
deleted file mode 100755
index eca15aeb8..000000000
--- a/SDL_Core/src/components/HMI/images/help/left_yellow_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/rear_controls_yellow_bg.png b/SDL_Core/src/components/HMI/images/help/rear_controls_yellow_bg.png
deleted file mode 100755
index 05fb628ab..000000000
--- a/SDL_Core/src/components/HMI/images/help/rear_controls_yellow_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/rear_yellow_bg.png b/SDL_Core/src/components/HMI/images/help/rear_yellow_bg.png
deleted file mode 100755
index 4fb3b5572..000000000
--- a/SDL_Core/src/components/HMI/images/help/rear_yellow_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/white_help.png b/SDL_Core/src/components/HMI/images/help/white_help.png
deleted file mode 100755
index 956701e2c..000000000
--- a/SDL_Core/src/components/HMI/images/help/white_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/yellow_189_138_bg.png b/SDL_Core/src/components/HMI/images/help/yellow_189_138_bg.png
deleted file mode 100755
index fdfc1a98f..000000000
--- a/SDL_Core/src/components/HMI/images/help/yellow_189_138_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/yellow_198_bg.png b/SDL_Core/src/components/HMI/images/help/yellow_198_bg.png
deleted file mode 100755
index 7d19a555c..000000000
--- a/SDL_Core/src/components/HMI/images/help/yellow_198_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/yellow_bg.png b/SDL_Core/src/components/HMI/images/help/yellow_bg.png
deleted file mode 100755
index eda91cb35..000000000
--- a/SDL_Core/src/components/HMI/images/help/yellow_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/help/yellow_help.png b/SDL_Core/src/components/HMI/images/help/yellow_help.png
deleted file mode 100755
index 3370f5242..000000000
--- a/SDL_Core/src/components/HMI/images/help/yellow_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/bottom_controlls_full.png b/SDL_Core/src/components/HMI/images/home/bottom_controlls_full.png
index 3fc22b56f..3fc22b56f 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/bottom_controlls_full.png
+++ b/SDL_Core/src/components/HMI/images/home/bottom_controlls_full.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/DownButton.png b/SDL_Core/src/components/HMI/images/home/controlButtons/DownButton.png
index 66e3cc5a7..66e3cc5a7 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/DownButton.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/DownButton.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/DownButton_pressed.png b/SDL_Core/src/components/HMI/images/home/controlButtons/DownButton_pressed.png
index b23b07780..b23b07780 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/DownButton_pressed.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/DownButton_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/LeftButton.png b/SDL_Core/src/components/HMI/images/home/controlButtons/LeftButton.png
index a33a09f94..a33a09f94 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/LeftButton.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/LeftButton.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/LeftButton_pressed.png b/SDL_Core/src/components/HMI/images/home/controlButtons/LeftButton_pressed.png
index fbc15a584..fbc15a584 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/LeftButton_pressed.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/LeftButton_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/OkButton.png b/SDL_Core/src/components/HMI/images/home/controlButtons/OkButton.png
index 809f719de..809f719de 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/OkButton.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/OkButton.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/OkButton_pressed.png b/SDL_Core/src/components/HMI/images/home/controlButtons/OkButton_pressed.png
index 2902de6a3..2902de6a3 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/OkButton_pressed.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/OkButton_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/RightButton.png b/SDL_Core/src/components/HMI/images/home/controlButtons/RightButton.png
index 35da46f26..35da46f26 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/RightButton.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/RightButton.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/RightButton_pressed.png b/SDL_Core/src/components/HMI/images/home/controlButtons/RightButton_pressed.png
index 3a3d247ff..3a3d247ff 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/RightButton_pressed.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/RightButton_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/UpButton.png b/SDL_Core/src/components/HMI/images/home/controlButtons/UpButton.png
index 58407ce9e..58407ce9e 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/UpButton.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/UpButton.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/UpButton_pressed.png b/SDL_Core/src/components/HMI/images/home/controlButtons/UpButton_pressed.png
index 7b853cb2a..7b853cb2a 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/UpButton_pressed.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/UpButton_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/backGroundControllButtons.png b/SDL_Core/src/components/HMI/images/home/controlButtons/backGroundControllButtons.png
index 041d49e7e..041d49e7e 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/backGroundControllButtons.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/backGroundControllButtons.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/vr.png b/SDL_Core/src/components/HMI/images/home/controlButtons/vr.png
index af09282df..af09282df 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/vr.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/vr.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/vrImage.png b/SDL_Core/src/components/HMI/images/home/controlButtons/vrImage.png
index 2f6bac2d9..2f6bac2d9 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/vrImage.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/vrImage.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/controlButtons/vr_pressed.png b/SDL_Core/src/components/HMI/images/home/controlButtons/vr_pressed.png
index 9206e42a9..9206e42a9 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/controlButtons/vr_pressed.png
+++ b/SDL_Core/src/components/HMI/images/home/controlButtons/vr_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/home_nav_off.jpg b/SDL_Core/src/components/HMI/images/home/home_nav_off.jpg
deleted file mode 100755
index a713142fc..000000000
--- a/SDL_Core/src/components/HMI/images/home/home_nav_off.jpg
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/home_nav_off_blur.jpg b/SDL_Core/src/components/HMI/images/home/home_nav_off_blur.jpg
deleted file mode 100755
index a7d46f822..000000000
--- a/SDL_Core/src/components/HMI/images/home/home_nav_off_blur.jpg
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/home_phone.png b/SDL_Core/src/components/HMI/images/home/home_phone.png
index dfdd0a577..dfdd0a577 100755..100644
--- a/SDL_Core/src/components/HMI/images/home/home_phone.png
+++ b/SDL_Core/src/components/HMI/images/home/home_phone.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/home_phone_blur.png b/SDL_Core/src/components/HMI/images/home/home_phone_blur.png
deleted file mode 100755
index c83abe9ae..000000000
--- a/SDL_Core/src/components/HMI/images/home/home_phone_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/home_phone_blur_bg.png b/SDL_Core/src/components/HMI/images/home/home_phone_blur_bg.png
deleted file mode 100755
index 46033c397..000000000
--- a/SDL_Core/src/components/HMI/images/home/home_phone_blur_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/home_phone_end_blur.png b/SDL_Core/src/components/HMI/images/home/home_phone_end_blur.png
deleted file mode 100755
index 0805e55dd..000000000
--- a/SDL_Core/src/components/HMI/images/home/home_phone_end_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/home_screen.png b/SDL_Core/src/components/HMI/images/home/home_screen.png
deleted file mode 100755
index 3441d0801..000000000
--- a/SDL_Core/src/components/HMI/images/home/home_screen.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/home/home_screen_blur.png b/SDL_Core/src/components/HMI/images/home/home_screen_blur.png
deleted file mode 100755
index 9e56e1d90..000000000
--- a/SDL_Core/src/components/HMI/images/home/home_screen_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/btn_40_bg_active_invert.png b/SDL_Core/src/components/HMI/images/info/btn_40_bg_active_invert.png
deleted file mode 100755
index 788d82783..000000000
--- a/SDL_Core/src/components/HMI/images/info/btn_40_bg_active_invert.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/btn_50_bg_active_invert.png b/SDL_Core/src/components/HMI/images/info/btn_50_bg_active_invert.png
deleted file mode 100755
index f37bf1f2d..000000000
--- a/SDL_Core/src/components/HMI/images/info/btn_50_bg_active_invert.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/callendar-btn.png b/SDL_Core/src/components/HMI/images/info/callendar-btn.png
index c193f0f21..c193f0f21 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/callendar-btn.png
+++ b/SDL_Core/src/components/HMI/images/info/callendar-btn.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/delim_40.png b/SDL_Core/src/components/HMI/images/info/delim_40.png
deleted file mode 100755
index dbda7d809..000000000
--- a/SDL_Core/src/components/HMI/images/info/delim_40.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/ico_arrowLock.png b/SDL_Core/src/components/HMI/images/info/ico_arrowLock.png
deleted file mode 100755
index bb154202c..000000000
--- a/SDL_Core/src/components/HMI/images/info/ico_arrowLock.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/ico_arrowRight.png b/SDL_Core/src/components/HMI/images/info/ico_arrowRight.png
deleted file mode 100755
index 08762ddf7..000000000
--- a/SDL_Core/src/components/HMI/images/info/ico_arrowRight.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/ico_assist.png b/SDL_Core/src/components/HMI/images/info/ico_assist.png
index 1abb26dc1..1abb26dc1 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/ico_assist.png
+++ b/SDL_Core/src/components/HMI/images/info/ico_assist.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/ico_emergcyAndEnvelope.png b/SDL_Core/src/components/HMI/images/info/ico_emergcyAndEnvelope.png
deleted file mode 100755
index 74004812c..000000000
--- a/SDL_Core/src/components/HMI/images/info/ico_emergcyAndEnvelope.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/ico_emergency.png b/SDL_Core/src/components/HMI/images/info/ico_emergency.png
deleted file mode 100755
index 85eb9db7b..000000000
--- a/SDL_Core/src/components/HMI/images/info/ico_emergency.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/ico_envelope.png b/SDL_Core/src/components/HMI/images/info/ico_envelope.png
deleted file mode 100755
index 1bf161174..000000000
--- a/SDL_Core/src/components/HMI/images/info/ico_envelope.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/ico_info_install.png b/SDL_Core/src/components/HMI/images/info/ico_info_install.png
index 5c9d93ad2..5c9d93ad2 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/ico_info_install.png
+++ b/SDL_Core/src/components/HMI/images/info/ico_info_install.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/ico_lock.png b/SDL_Core/src/components/HMI/images/info/ico_lock.png
deleted file mode 100755
index b0859963e..000000000
--- a/SDL_Core/src/components/HMI/images/info/ico_lock.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/ico_vehicle.png b/SDL_Core/src/components/HMI/images/info/ico_vehicle.png
index c4ca30f96..c4ca30f96 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/ico_vehicle.png
+++ b/SDL_Core/src/components/HMI/images/info/ico_vehicle.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info.png b/SDL_Core/src/components/HMI/images/info/info.png
deleted file mode 100755
index 3f0d53cd3..000000000
--- a/SDL_Core/src/components/HMI/images/info/info.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_alerts_bg_help.png b/SDL_Core/src/components/HMI/images/info/info_alerts_bg_help.png
deleted file mode 100755
index 55208ede2..000000000
--- a/SDL_Core/src/components/HMI/images/info/info_alerts_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_apps_bg_help.png b/SDL_Core/src/components/HMI/images/info/info_apps_bg_help.png
deleted file mode 100755
index f958099b3..000000000
--- a/SDL_Core/src/components/HMI/images/info/info_apps_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_blur.png b/SDL_Core/src/components/HMI/images/info/info_blur.png
deleted file mode 100755
index 776fc4b55..000000000
--- a/SDL_Core/src/components/HMI/images/info/info_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_leftMenu_alerts_ico.png b/SDL_Core/src/components/HMI/images/info/info_leftMenu_alerts_ico.png
deleted file mode 100755
index 89fd5f988..000000000
--- a/SDL_Core/src/components/HMI/images/info/info_leftMenu_alerts_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_leftMenu_apps_ico.png b/SDL_Core/src/components/HMI/images/info/info_leftMenu_apps_ico.png
index 7f648c9a0..7f648c9a0 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/info_leftMenu_apps_ico.png
+++ b/SDL_Core/src/components/HMI/images/info/info_leftMenu_apps_ico.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_leftMenu_calendar_ico.png b/SDL_Core/src/components/HMI/images/info/info_leftMenu_calendar_ico.png
index 6fb5aec3e..6fb5aec3e 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/info_leftMenu_calendar_ico.png
+++ b/SDL_Core/src/components/HMI/images/info/info_leftMenu_calendar_ico.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_leftMenu_services_ico.png b/SDL_Core/src/components/HMI/images/info/info_leftMenu_services_ico.png
index de36255aa..de36255aa 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/info_leftMenu_services_ico.png
+++ b/SDL_Core/src/components/HMI/images/info/info_leftMenu_services_ico.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_leftMenu_travelLink_ico.png b/SDL_Core/src/components/HMI/images/info/info_leftMenu_travelLink_ico.png
index 4235c92d0..4235c92d0 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/info_leftMenu_travelLink_ico.png
+++ b/SDL_Core/src/components/HMI/images/info/info_leftMenu_travelLink_ico.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_services_bg.png b/SDL_Core/src/components/HMI/images/info/info_services_bg.png
index ef082c739..ef082c739 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/info_services_bg.png
+++ b/SDL_Core/src/components/HMI/images/info/info_services_bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_services_bg_help.png b/SDL_Core/src/components/HMI/images/info/info_services_bg_help.png
deleted file mode 100755
index f4e753491..000000000
--- a/SDL_Core/src/components/HMI/images/info/info_services_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_travelLink_bg_help.png b/SDL_Core/src/components/HMI/images/info/info_travelLink_bg_help.png
deleted file mode 100755
index 5edfb785a..000000000
--- a/SDL_Core/src/components/HMI/images/info/info_travelLink_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/info_travelLink_sirius_logo.png b/SDL_Core/src/components/HMI/images/info/info_travelLink_sirius_logo.png
index 0eb328c9c..0eb328c9c 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/info_travelLink_sirius_logo.png
+++ b/SDL_Core/src/components/HMI/images/info/info_travelLink_sirius_logo.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/menu_active.png b/SDL_Core/src/components/HMI/images/info/menu_active.png
index b4cf7277a..b4cf7277a 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/menu_active.png
+++ b/SDL_Core/src/components/HMI/images/info/menu_active.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/view_info_calendar-help.png b/SDL_Core/src/components/HMI/images/info/view_info_calendar-help.png
deleted file mode 100755
index c8f866662..000000000
--- a/SDL_Core/src/components/HMI/images/info/view_info_calendar-help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/info/view_info_calendar.png b/SDL_Core/src/components/HMI/images/info/view_info_calendar.png
index 9e09ae9d6..9e09ae9d6 100755..100644
--- a/SDL_Core/src/components/HMI/images/info/view_info_calendar.png
+++ b/SDL_Core/src/components/HMI/images/info/view_info_calendar.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/list/list_item_bg.png b/SDL_Core/src/components/HMI/images/list/list_item_bg.png
index f5cdcbe34..f5cdcbe34 100755..100644
--- a/SDL_Core/src/components/HMI/images/list/list_item_bg.png
+++ b/SDL_Core/src/components/HMI/images/list/list_item_bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/list/list_item_pressed.png b/SDL_Core/src/components/HMI/images/list/list_item_pressed.png
index 593d697a0..593d697a0 100755..100644
--- a/SDL_Core/src/components/HMI/images/list/list_item_pressed.png
+++ b/SDL_Core/src/components/HMI/images/list/list_item_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/list/scrollbar/button-down-active.png b/SDL_Core/src/components/HMI/images/list/scrollbar/button-down-active.png
index bcd52150b..bcd52150b 100755..100644
--- a/SDL_Core/src/components/HMI/images/list/scrollbar/button-down-active.png
+++ b/SDL_Core/src/components/HMI/images/list/scrollbar/button-down-active.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/list/scrollbar/button-up-active.png b/SDL_Core/src/components/HMI/images/list/scrollbar/button-up-active.png
index 5d1bb3f07..5d1bb3f07 100755..100644
--- a/SDL_Core/src/components/HMI/images/list/scrollbar/button-up-active.png
+++ b/SDL_Core/src/components/HMI/images/list/scrollbar/button-up-active.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/active_arrow.png b/SDL_Core/src/components/HMI/images/media/active_arrow.png
deleted file mode 100755
index 97126966d..000000000
--- a/SDL_Core/src/components/HMI/images/media/active_arrow.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/active_horiz_led.png b/SDL_Core/src/components/HMI/images/media/active_horiz_led.png
deleted file mode 100755
index c93a14216..000000000
--- a/SDL_Core/src/components/HMI/images/media/active_horiz_led.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/active_led.png b/SDL_Core/src/components/HMI/images/media/active_led.png
deleted file mode 100755
index 574de808d..000000000
--- a/SDL_Core/src/components/HMI/images/media/active_led.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ant.png b/SDL_Core/src/components/HMI/images/media/ant.png
deleted file mode 100755
index 726e665aa..000000000
--- a/SDL_Core/src/components/HMI/images/media/ant.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/av-in_details.png b/SDL_Core/src/components/HMI/images/media/av-in_details.png
deleted file mode 100755
index 50c0e562e..000000000
--- a/SDL_Core/src/components/HMI/images/media/av-in_details.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/bcs-item_bgL.png b/SDL_Core/src/components/HMI/images/media/bcs-item_bgL.png
index cbb8dc44b..cbb8dc44b 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/bcs-item_bgL.png
+++ b/SDL_Core/src/components/HMI/images/media/bcs-item_bgL.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/bcs-item_bgL_pressed.png b/SDL_Core/src/components/HMI/images/media/bcs-item_bgL_pressed.png
index 16e9ce208..e69de29bb 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/bcs-item_bgL_pressed.png
+++ b/SDL_Core/src/components/HMI/images/media/bcs-item_bgL_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/bcs-item_bgR.png b/SDL_Core/src/components/HMI/images/media/bcs-item_bgR.png
index e9aef9089..e9aef9089 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/bcs-item_bgR.png
+++ b/SDL_Core/src/components/HMI/images/media/bcs-item_bgR.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/bcs-item_bgR_pressed.png b/SDL_Core/src/components/HMI/images/media/bcs-item_bgR_pressed.png
index d7c3f961c..d7c3f961c 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/bcs-item_bgR_pressed.png
+++ b/SDL_Core/src/components/HMI/images/media/bcs-item_bgR_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/bcs-item_bgS.png b/SDL_Core/src/components/HMI/images/media/bcs-item_bgS.png
index 54d70b7f0..54d70b7f0 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/bcs-item_bgS.png
+++ b/SDL_Core/src/components/HMI/images/media/bcs-item_bgS.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/bcs-item_bgS_pressed.png b/SDL_Core/src/components/HMI/images/media/bcs-item_bgS_pressed.png
index 8c1563af9..8c1563af9 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/bcs-item_bgS_pressed.png
+++ b/SDL_Core/src/components/HMI/images/media/bcs-item_bgS_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/bcs-item_bg_act.png b/SDL_Core/src/components/HMI/images/media/bcs-item_bg_act.png
deleted file mode 100755
index 2dffb60ab..000000000
--- a/SDL_Core/src/components/HMI/images/media/bcs-item_bg_act.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/bg.png b/SDL_Core/src/components/HMI/images/media/bg.png
index b0c24355f..b0c24355f 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/bg.png
+++ b/SDL_Core/src/components/HMI/images/media/bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/big-fall-image.png b/SDL_Core/src/components/HMI/images/media/big-fall-image.png
deleted file mode 100755
index c82c5d899..000000000
--- a/SDL_Core/src/components/HMI/images/media/big-fall-image.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/big-lazerhorse-image.png b/SDL_Core/src/components/HMI/images/media/big-lazerhorse-image.png
deleted file mode 100755
index 0a9e85c91..000000000
--- a/SDL_Core/src/components/HMI/images/media/big-lazerhorse-image.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/browse_all_button.png b/SDL_Core/src/components/HMI/images/media/browse_all_button.png
deleted file mode 100755
index 795d2dde8..000000000
--- a/SDL_Core/src/components/HMI/images/media/browse_all_button.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/browse_all_button_pressed.png b/SDL_Core/src/components/HMI/images/media/browse_all_button_pressed.png
deleted file mode 100755
index 90b6fdc7f..000000000
--- a/SDL_Core/src/components/HMI/images/media/browse_all_button_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/bt-h-ico.png b/SDL_Core/src/components/HMI/images/media/bt-h-ico.png
deleted file mode 100755
index 0f3e5816a..000000000
--- a/SDL_Core/src/components/HMI/images/media/bt-h-ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/bt_bg.png b/SDL_Core/src/components/HMI/images/media/bt_bg.png
deleted file mode 100755
index a11ceba95..000000000
--- a/SDL_Core/src/components/HMI/images/media/bt_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/btn_alert.png b/SDL_Core/src/components/HMI/images/media/btn_alert.png
deleted file mode 100755
index 716b6263b..000000000
--- a/SDL_Core/src/components/HMI/images/media/btn_alert.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/btn_bg.png b/SDL_Core/src/components/HMI/images/media/btn_bg.png
index 9713aab1e..9713aab1e 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/btn_bg.png
+++ b/SDL_Core/src/components/HMI/images/media/btn_bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/btn_browse-all-sources.png b/SDL_Core/src/components/HMI/images/media/btn_browse-all-sources.png
deleted file mode 100755
index b6a06d7a7..000000000
--- a/SDL_Core/src/components/HMI/images/media/btn_browse-all-sources.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/btn_tag.png b/SDL_Core/src/components/HMI/images/media/btn_tag.png
deleted file mode 100755
index 18d445e01..000000000
--- a/SDL_Core/src/components/HMI/images/media/btn_tag.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/button28_red_bg.png b/SDL_Core/src/components/HMI/images/media/button28_red_bg.png
deleted file mode 100755
index f494f3698..000000000
--- a/SDL_Core/src/components/HMI/images/media/button28_red_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/cd-ico-home.png b/SDL_Core/src/components/HMI/images/media/cd-ico-home.png
deleted file mode 100755
index fa6198bab..000000000
--- a/SDL_Core/src/components/HMI/images/media/cd-ico-home.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/cd-next-btn.png b/SDL_Core/src/components/HMI/images/media/cd-next-btn.png
index 1973292d4..1973292d4 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/cd-next-btn.png
+++ b/SDL_Core/src/components/HMI/images/media/cd-next-btn.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/cd-next-btn_pressed.png b/SDL_Core/src/components/HMI/images/media/cd-next-btn_pressed.png
index 8cb1391b8..8cb1391b8 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/cd-next-btn_pressed.png
+++ b/SDL_Core/src/components/HMI/images/media/cd-next-btn_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/cd-prev-btn.png b/SDL_Core/src/components/HMI/images/media/cd-prev-btn.png
index 8bdd67d8f..8bdd67d8f 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/cd-prev-btn.png
+++ b/SDL_Core/src/components/HMI/images/media/cd-prev-btn.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/cd-prev-btn_pressed.png b/SDL_Core/src/components/HMI/images/media/cd-prev-btn_pressed.png
index 3dbdbb9c8..3dbdbb9c8 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/cd-prev-btn_pressed.png
+++ b/SDL_Core/src/components/HMI/images/media/cd-prev-btn_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/cd_play_btn.png b/SDL_Core/src/components/HMI/images/media/cd_play_btn.png
index d183119f2..d183119f2 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/cd_play_btn.png
+++ b/SDL_Core/src/components/HMI/images/media/cd_play_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/cd_play_btn_pressed.png b/SDL_Core/src/components/HMI/images/media/cd_play_btn_pressed.png
deleted file mode 100755
index 89cf91cb1..000000000
--- a/SDL_Core/src/components/HMI/images/media/cd_play_btn_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/direct_tune_bg_s.png b/SDL_Core/src/components/HMI/images/media/direct_tune_bg_s.png
deleted file mode 100755
index e0f4387db..000000000
--- a/SDL_Core/src/components/HMI/images/media/direct_tune_bg_s.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/direct_tune_bg_s_pressed.png b/SDL_Core/src/components/HMI/images/media/direct_tune_bg_s_pressed.png
deleted file mode 100755
index 29fb60203..000000000
--- a/SDL_Core/src/components/HMI/images/media/direct_tune_bg_s_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/disabled_arrow.png b/SDL_Core/src/components/HMI/images/media/disabled_arrow.png
deleted file mode 100755
index eb55e44b0..000000000
--- a/SDL_Core/src/components/HMI/images/media/disabled_arrow.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/disabled_player_controls.png b/SDL_Core/src/components/HMI/images/media/disabled_player_controls.png
deleted file mode 100755
index 9d148d3b9..000000000
--- a/SDL_Core/src/components/HMI/images/media/disabled_player_controls.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/divider_o.png b/SDL_Core/src/components/HMI/images/media/divider_o.png
index 38cb6bc8e..38cb6bc8e 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/divider_o.png
+++ b/SDL_Core/src/components/HMI/images/media/divider_o.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/h-media-actbg.png b/SDL_Core/src/components/HMI/images/media/h-media-actbg.png
deleted file mode 100755
index a30b3b488..000000000
--- a/SDL_Core/src/components/HMI/images/media/h-media-actbg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/h-media-l-bg-pressed.png b/SDL_Core/src/components/HMI/images/media/h-media-l-bg-pressed.png
deleted file mode 100755
index 15d8dc998..000000000
--- a/SDL_Core/src/components/HMI/images/media/h-media-l-bg-pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/h-media-l-bg.png b/SDL_Core/src/components/HMI/images/media/h-media-l-bg.png
deleted file mode 100755
index 08533ae15..000000000
--- a/SDL_Core/src/components/HMI/images/media/h-media-l-bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/h-media-rbg-pressed.png b/SDL_Core/src/components/HMI/images/media/h-media-rbg-pressed.png
deleted file mode 100755
index 5fcaeab3e..000000000
--- a/SDL_Core/src/components/HMI/images/media/h-media-rbg-pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/h-media-rbg.png b/SDL_Core/src/components/HMI/images/media/h-media-rbg.png
deleted file mode 100755
index d7212b52e..000000000
--- a/SDL_Core/src/components/HMI/images/media/h-media-rbg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/h-media-sbg-pressed.png b/SDL_Core/src/components/HMI/images/media/h-media-sbg-pressed.png
deleted file mode 100755
index b57968f60..000000000
--- a/SDL_Core/src/components/HMI/images/media/h-media-sbg-pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/h-media-sbg.png b/SDL_Core/src/components/HMI/images/media/h-media-sbg.png
deleted file mode 100755
index 7b80ddb54..000000000
--- a/SDL_Core/src/components/HMI/images/media/h-media-sbg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/hd-radio-ico.png b/SDL_Core/src/components/HMI/images/media/hd-radio-ico.png
deleted file mode 100755
index 7aabaca2b..000000000
--- a/SDL_Core/src/components/HMI/images/media/hd-radio-ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/hd_ico.png b/SDL_Core/src/components/HMI/images/media/hd_ico.png
deleted file mode 100755
index a377b65c7..000000000
--- a/SDL_Core/src/components/HMI/images/media/hd_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/ant_blur.png b/SDL_Core/src/components/HMI/images/media/help/ant_blur.png
deleted file mode 100755
index 269219c9c..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/ant_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/av-in_details_blur.png b/SDL_Core/src/components/HMI/images/media/help/av-in_details_blur.png
deleted file mode 100755
index d68370bb4..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/av-in_details_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/big-fall-image_blur.png b/SDL_Core/src/components/HMI/images/media/help/big-fall-image_blur.png
deleted file mode 100755
index 59ffb8c2e..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/big-fall-image_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/big_help_lazerhorse_poster_blur.png b/SDL_Core/src/components/HMI/images/media/help/big_help_lazerhorse_poster_blur.png
deleted file mode 100755
index e2d059b57..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/big_help_lazerhorse_poster_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/bluetooth_content_blur.png b/SDL_Core/src/components/HMI/images/media/help/bluetooth_content_blur.png
deleted file mode 100755
index 94096bc9b..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/bluetooth_content_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/broall_view_blur.jpg b/SDL_Core/src/components/HMI/images/media/help/broall_view_blur.jpg
deleted file mode 100755
index 8509a26b8..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/broall_view_blur.jpg
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/bt-h-ico_blur.png b/SDL_Core/src/components/HMI/images/media/help/bt-h-ico_blur.png
deleted file mode 100755
index 746e103f1..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/bt-h-ico_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/cd-ico-home_blur.png b/SDL_Core/src/components/HMI/images/media/help/cd-ico-home_blur.png
deleted file mode 100755
index 9a97e746d..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/cd-ico-home_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/cd_bro_view_blur.png b/SDL_Core/src/components/HMI/images/media/help/cd_bro_view_blur.png
deleted file mode 100755
index ccc734567..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/cd_bro_view_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/fm_hd_info_ico_blur.png b/SDL_Core/src/components/HMI/images/media/help/fm_hd_info_ico_blur.png
deleted file mode 100755
index d67dfa49e..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/fm_hd_info_ico_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/hd-radio-ico_blur.png b/SDL_Core/src/components/HMI/images/media/help/hd-radio-ico_blur.png
deleted file mode 100755
index e0870e535..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/hd-radio-ico_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/hd_active_btn-blur.png b/SDL_Core/src/components/HMI/images/media/help/hd_active_btn-blur.png
deleted file mode 100755
index dec695e70..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/hd_active_btn-blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/hd_inactive_btn-blur.png b/SDL_Core/src/components/HMI/images/media/help/hd_inactive_btn-blur.png
deleted file mode 100755
index 448141c3f..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/hd_inactive_btn-blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/hsir-ico_blur.png b/SDL_Core/src/components/HMI/images/media/help/hsir-ico_blur.png
deleted file mode 100755
index d4735703d..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/hsir-ico_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/ico_whatIsPlaying_blur.png b/SDL_Core/src/components/HMI/images/media/help/ico_whatIsPlaying_blur.png
deleted file mode 100755
index 8edc91081..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/ico_whatIsPlaying_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/lazerhorse_poster_blur.png b/SDL_Core/src/components/HMI/images/media/help/lazerhorse_poster_blur.png
deleted file mode 100755
index f3716bf9c..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/lazerhorse_poster_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/line-h-ico_blur.png b/SDL_Core/src/components/HMI/images/media/help/line-h-ico_blur.png
deleted file mode 100755
index cd2fc820a..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/line-h-ico_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/more_info_list-blur.png b/SDL_Core/src/components/HMI/images/media/help/more_info_list-blur.png
deleted file mode 100755
index 1d274af4a..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/more_info_list-blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/moreinfo_list_blur.png b/SDL_Core/src/components/HMI/images/media/help/moreinfo_list_blur.png
deleted file mode 100755
index 6c64210d4..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/moreinfo_list_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/option_btn_blur.png b/SDL_Core/src/components/HMI/images/media/help/option_btn_blur.png
deleted file mode 100755
index 338f1bda4..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/option_btn_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/others_browse_blur.png b/SDL_Core/src/components/HMI/images/media/help/others_browse_blur.png
deleted file mode 100755
index 5627d9fef..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/others_browse_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/player_controls_blur.png b/SDL_Core/src/components/HMI/images/media/help/player_controls_blur.png
deleted file mode 100755
index 6189174b8..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/player_controls_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/preset_yellow_border.png b/SDL_Core/src/components/HMI/images/media/help/preset_yellow_border.png
deleted file mode 100755
index 11045a831..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/preset_yellow_border.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/right_menu_btn_yellow_border.png b/SDL_Core/src/components/HMI/images/media/help/right_menu_btn_yellow_border.png
deleted file mode 100755
index b6d7ffa9c..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/right_menu_btn_yellow_border.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/right_menu_groupbtn_yellow_border.png b/SDL_Core/src/components/HMI/images/media/help/right_menu_groupbtn_yellow_border.png
deleted file mode 100755
index a75e708a0..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/right_menu_groupbtn_yellow_border.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/right_menu_threebtngroup_yellow_border.png b/SDL_Core/src/components/HMI/images/media/help/right_menu_threebtngroup_yellow_border.png
deleted file mode 100755
index 150b7400f..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/right_menu_threebtngroup_yellow_border.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/sd-h-ico_blur.png b/SDL_Core/src/components/HMI/images/media/help/sd-h-ico_blur.png
deleted file mode 100755
index 01148102a..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/sd-h-ico_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/sir_bro_view_blur.png b/SDL_Core/src/components/HMI/images/media/help/sir_bro_view_blur.png
deleted file mode 100755
index 027f67fb0..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/sir_bro_view_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/small-fall-image_blur.png b/SDL_Core/src/components/HMI/images/media/help/small-fall-image_blur.png
deleted file mode 100755
index 752142ada..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/small-fall-image_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/tag_alert_bg.png b/SDL_Core/src/components/HMI/images/media/help/tag_alert_bg.png
deleted file mode 100755
index 3912780f1..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/tag_alert_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/tag_help_bg.png b/SDL_Core/src/components/HMI/images/media/help/tag_help_bg.png
deleted file mode 100755
index 5104cd317..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/tag_help_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/titanium-logo-home-blur.png b/SDL_Core/src/components/HMI/images/media/help/titanium-logo-home-blur.png
deleted file mode 100755
index e196e6cd0..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/titanium-logo-home-blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/titanium_logo_blur.png b/SDL_Core/src/components/HMI/images/media/help/titanium_logo_blur.png
deleted file mode 100755
index b2c2d4d42..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/titanium_logo_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/top_rightmenu_button_blur.png b/SDL_Core/src/components/HMI/images/media/help/top_rightmenu_button_blur.png
deleted file mode 100755
index 4445b1c76..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/top_rightmenu_button_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/top_rightmenu_button_blur_active.png b/SDL_Core/src/components/HMI/images/media/help/top_rightmenu_button_blur_active.png
deleted file mode 100755
index 9f9ad1bac..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/top_rightmenu_button_blur_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/help/usb-h-ico_blur.png b/SDL_Core/src/components/HMI/images/media/help/usb-h-ico_blur.png
deleted file mode 100755
index e762c0f46..000000000
--- a/SDL_Core/src/components/HMI/images/media/help/usb-h-ico_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/hsir-ico.png b/SDL_Core/src/components/HMI/images/media/hsir-ico.png
deleted file mode 100755
index 8d4bddeab..000000000
--- a/SDL_Core/src/components/HMI/images/media/hsir-ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico-play.png b/SDL_Core/src/components/HMI/images/media/ico-play.png
index 5e746174c..5e746174c 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/ico-play.png
+++ b/SDL_Core/src/components/HMI/images/media/ico-play.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_am.png b/SDL_Core/src/components/HMI/images/media/ico_am.png
deleted file mode 100755
index c2ddfd360..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_am.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_antenna.png b/SDL_Core/src/components/HMI/images/media/ico_antenna.png
deleted file mode 100755
index c2ddfd360..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_antenna.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_arrow_down.png b/SDL_Core/src/components/HMI/images/media/ico_arrow_down.png
index 609e4a16c..609e4a16c 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/ico_arrow_down.png
+++ b/SDL_Core/src/components/HMI/images/media/ico_arrow_down.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_arrow_up.png b/SDL_Core/src/components/HMI/images/media/ico_arrow_up.png
index 09b9610f2..09b9610f2 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/ico_arrow_up.png
+++ b/SDL_Core/src/components/HMI/images/media/ico_arrow_up.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_back.png b/SDL_Core/src/components/HMI/images/media/ico_back.png
index f2cdf410e..f2cdf410e 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/ico_back.png
+++ b/SDL_Core/src/components/HMI/images/media/ico_back.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_browseAll.png b/SDL_Core/src/components/HMI/images/media/ico_browseAll.png
deleted file mode 100755
index 8a3f99f9e..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_browseAll.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_bt.png b/SDL_Core/src/components/HMI/images/media/ico_bt.png
deleted file mode 100755
index 053f15118..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_bt.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_cd.png b/SDL_Core/src/components/HMI/images/media/ico_cd.png
index b482408f2..b482408f2 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/ico_cd.png
+++ b/SDL_Core/src/components/HMI/images/media/ico_cd.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_dog.png b/SDL_Core/src/components/HMI/images/media/ico_dog.png
deleted file mode 100755
index 628a73d63..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_dog.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_fm.png b/SDL_Core/src/components/HMI/images/media/ico_fm.png
deleted file mode 100755
index c2ddfd360..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_fm.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_li.png b/SDL_Core/src/components/HMI/images/media/ico_li.png
deleted file mode 100755
index 3d75f3e25..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_li.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_next.png b/SDL_Core/src/components/HMI/images/media/ico_next.png
index 24c19d2bf..24c19d2bf 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/ico_next.png
+++ b/SDL_Core/src/components/HMI/images/media/ico_next.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_pause.png b/SDL_Core/src/components/HMI/images/media/ico_pause.png
index d885c1203..d885c1203 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/ico_pause.png
+++ b/SDL_Core/src/components/HMI/images/media/ico_pause.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_plus.png b/SDL_Core/src/components/HMI/images/media/ico_plus.png
deleted file mode 100755
index 309846c69..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_plus.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_prew.png b/SDL_Core/src/components/HMI/images/media/ico_prew.png
index a079f6705..a079f6705 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/ico_prew.png
+++ b/SDL_Core/src/components/HMI/images/media/ico_prew.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_sd.png b/SDL_Core/src/components/HMI/images/media/ico_sd.png
deleted file mode 100755
index 9791187f6..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_sd.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_sirius.png b/SDL_Core/src/components/HMI/images/media/ico_sirius.png
deleted file mode 100755
index 7fdde75b4..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_sirius.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_usb.png b/SDL_Core/src/components/HMI/images/media/ico_usb.png
deleted file mode 100755
index 6a482491d..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_usb.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ico_whatIsPlaying.png b/SDL_Core/src/components/HMI/images/media/ico_whatIsPlaying.png
deleted file mode 100755
index 6de6de029..000000000
--- a/SDL_Core/src/components/HMI/images/media/ico_whatIsPlaying.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/line-h-ico.png b/SDL_Core/src/components/HMI/images/media/line-h-ico.png
deleted file mode 100755
index 8bd70b51c..000000000
--- a/SDL_Core/src/components/HMI/images/media/line-h-ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/list/ico_mi1.png b/SDL_Core/src/components/HMI/images/media/list/ico_mi1.png
deleted file mode 100755
index a1992583d..000000000
--- a/SDL_Core/src/components/HMI/images/media/list/ico_mi1.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/list/ico_mi2.png b/SDL_Core/src/components/HMI/images/media/list/ico_mi2.png
deleted file mode 100755
index b51914a68..000000000
--- a/SDL_Core/src/components/HMI/images/media/list/ico_mi2.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/list/ico_mi3.png b/SDL_Core/src/components/HMI/images/media/list/ico_mi3.png
deleted file mode 100755
index 714f72d9a..000000000
--- a/SDL_Core/src/components/HMI/images/media/list/ico_mi3.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/list/ico_mi4.png b/SDL_Core/src/components/HMI/images/media/list/ico_mi4.png
deleted file mode 100755
index d3620f958..000000000
--- a/SDL_Core/src/components/HMI/images/media/list/ico_mi4.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/list/ico_mi5.png b/SDL_Core/src/components/HMI/images/media/list/ico_mi5.png
deleted file mode 100755
index e631d6215..000000000
--- a/SDL_Core/src/components/HMI/images/media/list/ico_mi5.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ls-item_bg.png b/SDL_Core/src/components/HMI/images/media/ls-item_bg.png
index 3863e15c7..3863e15c7 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/ls-item_bg.png
+++ b/SDL_Core/src/components/HMI/images/media/ls-item_bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/ls-item_bg_act.png b/SDL_Core/src/components/HMI/images/media/ls-item_bg_act.png
index 7b52318a4..7b52318a4 100755..100644
--- a/SDL_Core/src/components/HMI/images/media/ls-item_bg_act.png
+++ b/SDL_Core/src/components/HMI/images/media/ls-item_bg_act.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/media_am_options_bg_help.png b/SDL_Core/src/components/HMI/images/media/media_am_options_bg_help.png
deleted file mode 100755
index 46802a089..000000000
--- a/SDL_Core/src/components/HMI/images/media/media_am_options_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/media_bt_options_bg_help.png b/SDL_Core/src/components/HMI/images/media/media_bt_options_bg_help.png
deleted file mode 100755
index 382e9cfdf..000000000
--- a/SDL_Core/src/components/HMI/images/media/media_bt_options_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/media_cd_options_bg_help.png b/SDL_Core/src/components/HMI/images/media/media_cd_options_bg_help.png
deleted file mode 100755
index cca3cb8fb..000000000
--- a/SDL_Core/src/components/HMI/images/media/media_cd_options_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/media_fm_options_bg_help.png b/SDL_Core/src/components/HMI/images/media/media_fm_options_bg_help.png
deleted file mode 100755
index 6a5fcc074..000000000
--- a/SDL_Core/src/components/HMI/images/media/media_fm_options_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/media_sirius_options_bg_help.png b/SDL_Core/src/components/HMI/images/media/media_sirius_options_bg_help.png
deleted file mode 100755
index 061f71641..000000000
--- a/SDL_Core/src/components/HMI/images/media/media_sirius_options_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/media_usb_options_bg_help.png b/SDL_Core/src/components/HMI/images/media/media_usb_options_bg_help.png
deleted file mode 100755
index e9d0d272b..000000000
--- a/SDL_Core/src/components/HMI/images/media/media_usb_options_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/mi-image.png b/SDL_Core/src/components/HMI/images/media/mi-image.png
deleted file mode 100755
index 0a9e85c91..000000000
--- a/SDL_Core/src/components/HMI/images/media/mi-image.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/passiv_horiz_led.png b/SDL_Core/src/components/HMI/images/media/passiv_horiz_led.png
deleted file mode 100755
index 4df0362a0..000000000
--- a/SDL_Core/src/components/HMI/images/media/passiv_horiz_led.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/passive_led.png b/SDL_Core/src/components/HMI/images/media/passive_led.png
deleted file mode 100755
index bac5b534a..000000000
--- a/SDL_Core/src/components/HMI/images/media/passive_led.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/sd-h-ico.png b/SDL_Core/src/components/HMI/images/media/sd-h-ico.png
deleted file mode 100755
index 1baf2a636..000000000
--- a/SDL_Core/src/components/HMI/images/media/sd-h-ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/sd-image.png b/SDL_Core/src/components/HMI/images/media/sd-image.png
deleted file mode 100755
index 81d996eb8..000000000
--- a/SDL_Core/src/components/HMI/images/media/sd-image.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/sirius-logo-h.png b/SDL_Core/src/components/HMI/images/media/sirius-logo-h.png
deleted file mode 100755
index 70a376594..000000000
--- a/SDL_Core/src/components/HMI/images/media/sirius-logo-h.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/sirius-logo.png b/SDL_Core/src/components/HMI/images/media/sirius-logo.png
deleted file mode 100755
index 7a2cee4fd..000000000
--- a/SDL_Core/src/components/HMI/images/media/sirius-logo.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/small-fall-image.png b/SDL_Core/src/components/HMI/images/media/small-fall-image.png
deleted file mode 100755
index d4686c5ca..000000000
--- a/SDL_Core/src/components/HMI/images/media/small-fall-image.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/small-lazerhorse-image.png b/SDL_Core/src/components/HMI/images/media/small-lazerhorse-image.png
deleted file mode 100755
index 81d996eb8..000000000
--- a/SDL_Core/src/components/HMI/images/media/small-lazerhorse-image.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/usb-big-cover.png b/SDL_Core/src/components/HMI/images/media/usb-big-cover.png
deleted file mode 100755
index c82c5d899..000000000
--- a/SDL_Core/src/components/HMI/images/media/usb-big-cover.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/usb-cover.png b/SDL_Core/src/components/HMI/images/media/usb-cover.png
deleted file mode 100755
index d4686c5ca..000000000
--- a/SDL_Core/src/components/HMI/images/media/usb-cover.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/media/usb-h-ico.png b/SDL_Core/src/components/HMI/images/media/usb-h-ico.png
deleted file mode 100755
index 2ba0f7ead..000000000
--- a/SDL_Core/src/components/HMI/images/media/usb-h-ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/arrow-inact.png b/SDL_Core/src/components/HMI/images/nav/arrow-inact.png
deleted file mode 100755
index b8c383349..000000000
--- a/SDL_Core/src/components/HMI/images/nav/arrow-inact.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/arrow.png b/SDL_Core/src/components/HMI/images/nav/arrow.png
deleted file mode 100755
index 4d118a78d..000000000
--- a/SDL_Core/src/components/HMI/images/nav/arrow.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/arrow_home.png b/SDL_Core/src/components/HMI/images/nav/arrow_home.png
deleted file mode 100755
index c24442366..000000000
--- a/SDL_Core/src/components/HMI/images/nav/arrow_home.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/arrow_home_blur.png b/SDL_Core/src/components/HMI/images/nav/arrow_home_blur.png
deleted file mode 100755
index a0247e590..000000000
--- a/SDL_Core/src/components/HMI/images/nav/arrow_home_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/back-arr.png b/SDL_Core/src/components/HMI/images/nav/back-arr.png
deleted file mode 100755
index d881c2306..000000000
--- a/SDL_Core/src/components/HMI/images/nav/back-arr.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/back_btn.png b/SDL_Core/src/components/HMI/images/nav/back_btn.png
deleted file mode 100755
index d8f00ac3c..000000000
--- a/SDL_Core/src/components/HMI/images/nav/back_btn.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/back_btn_pressed.png b/SDL_Core/src/components/HMI/images/nav/back_btn_pressed.png
deleted file mode 100755
index 9fcef2d42..000000000
--- a/SDL_Core/src/components/HMI/images/nav/back_btn_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/bg.png b/SDL_Core/src/components/HMI/images/nav/bg.png
deleted file mode 100755
index 062c3fc8d..000000000
--- a/SDL_Core/src/components/HMI/images/nav/bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/compas.png b/SDL_Core/src/components/HMI/images/nav/compas.png
deleted file mode 100755
index 1e0ea94d5..000000000
--- a/SDL_Core/src/components/HMI/images/nav/compas.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest-speak-ico.png b/SDL_Core/src/components/HMI/images/nav/dest-speak-ico.png
deleted file mode 100755
index a252d6f14..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest-speak-ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest-time.png b/SDL_Core/src/components/HMI/images/nav/dest-time.png
deleted file mode 100755
index 4f20209b7..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest-time.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/ico_adress.png b/SDL_Core/src/components/HMI/images/nav/dest/ico_adress.png
deleted file mode 100755
index 80690cca2..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/ico_adress.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/ico_cityCenter.png b/SDL_Core/src/components/HMI/images/nav/dest/ico_cityCenter.png
deleted file mode 100755
index d939d60cc..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/ico_cityCenter.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/ico_destination.png b/SDL_Core/src/components/HMI/images/nav/dest/ico_destination.png
deleted file mode 100755
index eb7bd4b15..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/ico_destination.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/ico_emergency.png b/SDL_Core/src/components/HMI/images/nav/dest/ico_emergency.png
deleted file mode 100755
index f3f85059b..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/ico_emergency.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/ico_favorites.png b/SDL_Core/src/components/HMI/images/nav/dest/ico_favorites.png
deleted file mode 100755
index 142d6aa8d..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/ico_favorites.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/ico_freeWay.png b/SDL_Core/src/components/HMI/images/nav/dest/ico_freeWay.png
deleted file mode 100755
index e9b81ed83..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/ico_freeWay.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/ico_intersection.png b/SDL_Core/src/components/HMI/images/nav/dest/ico_intersection.png
deleted file mode 100755
index 14b583074..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/ico_intersection.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/ico_latLong.png b/SDL_Core/src/components/HMI/images/nav/dest/ico_latLong.png
deleted file mode 100755
index 37a1aa851..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/ico_latLong.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/ico_map.png b/SDL_Core/src/components/HMI/images/nav/dest/ico_map.png
deleted file mode 100755
index 6e8b33809..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/ico_map.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/ico_myHome.png b/SDL_Core/src/components/HMI/images/nav/dest/ico_myHome.png
deleted file mode 100755
index 534ea680b..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/ico_myHome.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/ico_poi.png b/SDL_Core/src/components/HMI/images/nav/dest/ico_poi.png
deleted file mode 100755
index ef03853d0..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/ico_poi.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_CityCenter_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_CityCenter_bg.png
deleted file mode 100755
index 041f1f630..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_CityCenter_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_CityCenter_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_CityCenter_bg_help.png
deleted file mode 100755
index f6f8edcf4..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_CityCenter_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Emergency_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Emergency_bg.png
deleted file mode 100755
index 326a4ccc3..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Emergency_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Emergency_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Emergency_bg_help.png
deleted file mode 100755
index 62c610d09..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Emergency_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Favorites_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Favorites_bg.png
deleted file mode 100755
index 6e0fce030..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Favorites_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Favorites_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Favorites_bg_help.png
deleted file mode 100755
index 89cbb8ba9..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Favorites_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Freeway_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Freeway_bg.png
deleted file mode 100755
index a59af3427..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Freeway_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Freeway_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Freeway_bg_help.png
deleted file mode 100755
index f57ca54dc..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Freeway_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Intersection_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Intersection_bg.png
deleted file mode 100755
index 63d206c12..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Intersection_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Intersection_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Intersection_bg_help.png
deleted file mode 100755
index 9fa7092b5..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Intersection_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_LatitudeLongitude_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_LatitudeLongitude_bg.png
deleted file mode 100755
index 3cb3b91ba..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_LatitudeLongitude_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_LatitudeLongitude_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_LatitudeLongitude_bg_help.png
deleted file mode 100755
index 474f17383..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_LatitudeLongitude_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Map_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Map_bg.png
deleted file mode 100755
index 40d92e9b6..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Map_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Map_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Map_bg_help.png
deleted file mode 100755
index 025a9674b..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Map_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_MyHome_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_MyHome_bg.png
deleted file mode 100755
index ba48b681e..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_MyHome_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_MyHome_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_MyHome_bg_help.png
deleted file mode 100755
index d7ff6ab44..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_MyHome_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_POI_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_POI_bg.png
deleted file mode 100755
index 4698d7c78..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_POI_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_POI_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_POI_bg_help.png
deleted file mode 100755
index 69ab25578..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_POI_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_PreviousStartPoint_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_PreviousStartPoint_bg.png
deleted file mode 100755
index 68c740358..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_PreviousStartPoint_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_PreviousStartPoint_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_PreviousStartPoint_bg_help.png
deleted file mode 100755
index 28240c669..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_PreviousStartPoint_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Previous_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Previous_bg.png
deleted file mode 100755
index 0adf72e95..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Previous_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Previous_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Previous_bg_help.png
deleted file mode 100755
index 9a0d65615..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_Previous_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_StreetAddress_bg.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_StreetAddress_bg.png
deleted file mode 100755
index 437a0cfbb..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_StreetAddress_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_StreetAddress_bg_help.png b/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_StreetAddress_bg_help.png
deleted file mode 100755
index ad400ff99..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest/navi_destination_StreetAddress_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/dest_bg.png b/SDL_Core/src/components/HMI/images/nav/dest_bg.png
deleted file mode 100755
index a83911473..000000000
--- a/SDL_Core/src/components/HMI/images/nav/dest_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/distance.png b/SDL_Core/src/components/HMI/images/nav/distance.png
deleted file mode 100755
index bef305f9c..000000000
--- a/SDL_Core/src/components/HMI/images/nav/distance.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/edit_tirn_list.png b/SDL_Core/src/components/HMI/images/nav/edit_tirn_list.png
deleted file mode 100755
index bd8b75968..000000000
--- a/SDL_Core/src/components/HMI/images/nav/edit_tirn_list.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/flag.png b/SDL_Core/src/components/HMI/images/nav/flag.png
deleted file mode 100755
index 06baff280..000000000
--- a/SDL_Core/src/components/HMI/images/nav/flag.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/green_bg.png b/SDL_Core/src/components/HMI/images/nav/green_bg.png
deleted file mode 100755
index 785805576..000000000
--- a/SDL_Core/src/components/HMI/images/nav/green_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/compas_blur.png b/SDL_Core/src/components/HMI/images/nav/help/compas_blur.png
deleted file mode 100755
index 5a1972c01..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/compas_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/direction_arrow_blur.png b/SDL_Core/src/components/HMI/images/nav/help/direction_arrow_blur.png
deleted file mode 100755
index abd7e8a42..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/direction_arrow_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/distance.png b/SDL_Core/src/components/HMI/images/nav/help/distance.png
deleted file mode 100755
index dcd5554cc..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/distance.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/distance_linedecor_blur.png b/SDL_Core/src/components/HMI/images/nav/help/distance_linedecor_blur.png
deleted file mode 100755
index a55221056..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/distance_linedecor_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/map_view2_blur.png b/SDL_Core/src/components/HMI/images/nav/help/map_view2_blur.png
deleted file mode 100755
index 44b672b87..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/map_view2_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/menu_btn_help.png b/SDL_Core/src/components/HMI/images/nav/help/menu_btn_help.png
deleted file mode 100755
index 321ad55ee..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/menu_btn_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/miles_button_blur.png b/SDL_Core/src/components/HMI/images/nav/help/miles_button_blur.png
deleted file mode 100755
index 94e97d367..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/miles_button_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/mute_button_active_blur.png b/SDL_Core/src/components/HMI/images/nav/help/mute_button_active_blur.png
deleted file mode 100755
index 0b4829944..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/mute_button_active_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/mute_button_blur.png b/SDL_Core/src/components/HMI/images/nav/help/mute_button_blur.png
deleted file mode 100755
index 4d54de9cd..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/mute_button_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/nav_bg_blur.png b/SDL_Core/src/components/HMI/images/nav/help/nav_bg_blur.png
deleted file mode 100755
index b88b04935..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/nav_bg_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/navigation_destnation_bg_help.png b/SDL_Core/src/components/HMI/images/nav/help/navigation_destnation_bg_help.png
deleted file mode 100755
index cfbca33d2..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/navigation_destnation_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/repeate_btn_yellow_border.png b/SDL_Core/src/components/HMI/images/nav/help/repeate_btn_yellow_border.png
deleted file mode 100755
index bb7a41db3..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/repeate_btn_yellow_border.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/street_bar_blur.png b/SDL_Core/src/components/HMI/images/nav/help/street_bar_blur.png
deleted file mode 100755
index c8b493c2e..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/street_bar_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/top_menu_yellow_border.png b/SDL_Core/src/components/HMI/images/nav/help/top_menu_yellow_border.png
deleted file mode 100755
index 90048a889..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/top_menu_yellow_border.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/type_2_content_blur.png b/SDL_Core/src/components/HMI/images/nav/help/type_2_content_blur.png
deleted file mode 100755
index 2a44c131d..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/type_2_content_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/type_3_content_blur.png b/SDL_Core/src/components/HMI/images/nav/help/type_3_content_blur.png
deleted file mode 100755
index 9150a9ce5..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/type_3_content_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/type_view_button_help.png b/SDL_Core/src/components/HMI/images/nav/help/type_view_button_help.png
deleted file mode 100755
index 4d99c22d7..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/type_view_button_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/view_type1_button_blur.png b/SDL_Core/src/components/HMI/images/nav/help/view_type1_button_blur.png
deleted file mode 100755
index 33c15fd75..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/view_type1_button_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/view_type2_button_blur.png b/SDL_Core/src/components/HMI/images/nav/help/view_type2_button_blur.png
deleted file mode 100755
index cd7430fbc..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/view_type2_button_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/view_type3_button_blur.png b/SDL_Core/src/components/HMI/images/nav/help/view_type3_button_blur.png
deleted file mode 100755
index acbec582c..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/view_type3_button_blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/zoom_buttons_all_active.png b/SDL_Core/src/components/HMI/images/nav/help/zoom_buttons_all_active.png
deleted file mode 100755
index 62385b06c..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/zoom_buttons_all_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/zoom_buttons_minus_disabled.png b/SDL_Core/src/components/HMI/images/nav/help/zoom_buttons_minus_disabled.png
deleted file mode 100755
index 9e19323d5..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/zoom_buttons_minus_disabled.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help/zoom_buttons_plus_disabled.png b/SDL_Core/src/components/HMI/images/nav/help/zoom_buttons_plus_disabled.png
deleted file mode 100755
index ff35eb158..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help/zoom_buttons_plus_disabled.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/help_nav_wrap.png b/SDL_Core/src/components/HMI/images/nav/help_nav_wrap.png
deleted file mode 100755
index b410cc631..000000000
--- a/SDL_Core/src/components/HMI/images/nav/help_nav_wrap.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/ico_nav_statusbar.png b/SDL_Core/src/components/HMI/images/nav/ico_nav_statusbar.png
deleted file mode 100755
index e357cb0c8..000000000
--- a/SDL_Core/src/components/HMI/images/nav/ico_nav_statusbar.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/ico_pushToTalk.png b/SDL_Core/src/components/HMI/images/nav/ico_pushToTalk.png
deleted file mode 100755
index 033ea93b8..000000000
--- a/SDL_Core/src/components/HMI/images/nav/ico_pushToTalk.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/ind_horiz_active.png b/SDL_Core/src/components/HMI/images/nav/ind_horiz_active.png
deleted file mode 100755
index bc6c905e3..000000000
--- a/SDL_Core/src/components/HMI/images/nav/ind_horiz_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/ind_horiz_def.png b/SDL_Core/src/components/HMI/images/nav/ind_horiz_def.png
deleted file mode 100755
index e420c34ef..000000000
--- a/SDL_Core/src/components/HMI/images/nav/ind_horiz_def.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/left_arrow.png b/SDL_Core/src/components/HMI/images/nav/left_arrow.png
deleted file mode 100755
index 4c5eca949..000000000
--- a/SDL_Core/src/components/HMI/images/nav/left_arrow.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_0.png b/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_0.png
deleted file mode 100755
index c6299a0a1..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_0.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_1.png b/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_1.png
deleted file mode 100755
index d53739d90..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_1.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_2.png b/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_2.png
deleted file mode 100755
index 0977a7f15..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_2.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_3.png b/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_3.png
deleted file mode 100755
index 3894f0bfb..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map2d_heading_up_zoom_3.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_0.png b/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_0.png
deleted file mode 100755
index 13eab9c25..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_0.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_1.png b/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_1.png
deleted file mode 100755
index 408fde3df..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_1.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_2.png b/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_2.png
deleted file mode 100755
index 7c73f6243..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_2.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_3.png b/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_3.png
deleted file mode 100755
index c04a6e061..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map2d_north_zoom_3.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map3d_zoom_0.png b/SDL_Core/src/components/HMI/images/nav/map3d_zoom_0.png
deleted file mode 100755
index b17aab85a..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map3d_zoom_0.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map3d_zoom_1.png b/SDL_Core/src/components/HMI/images/nav/map3d_zoom_1.png
deleted file mode 100755
index fe7826c72..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map3d_zoom_1.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map3d_zoom_2.png b/SDL_Core/src/components/HMI/images/nav/map3d_zoom_2.png
deleted file mode 100755
index 08a1352df..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map3d_zoom_2.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map3d_zoom_3.png b/SDL_Core/src/components/HMI/images/nav/map3d_zoom_3.png
deleted file mode 100755
index 17b72e22a..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map3d_zoom_3.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map_view2.png b/SDL_Core/src/components/HMI/images/nav/map_view2.png
deleted file mode 100755
index f6b891a78..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map_view2.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map_view2_with_icons.png b/SDL_Core/src/components/HMI/images/nav/map_view2_with_icons.png
deleted file mode 100755
index 33300ab13..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map_view2_with_icons.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map_view3.png b/SDL_Core/src/components/HMI/images/nav/map_view3.png
deleted file mode 100755
index cd74d32c5..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map_view3.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map_view_btn_bg.png b/SDL_Core/src/components/HMI/images/nav/map_view_btn_bg.png
deleted file mode 100755
index eb4a22789..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map_view_btn_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/map_view_btn_bg_pressed.png b/SDL_Core/src/components/HMI/images/nav/map_view_btn_bg_pressed.png
deleted file mode 100755
index 6eedbc6ee..000000000
--- a/SDL_Core/src/components/HMI/images/nav/map_view_btn_bg_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/mute.png b/SDL_Core/src/components/HMI/images/nav/mute.png
deleted file mode 100755
index 07a6f528f..000000000
--- a/SDL_Core/src/components/HMI/images/nav/mute.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/nav_arrow.png b/SDL_Core/src/components/HMI/images/nav/nav_arrow.png
deleted file mode 100755
index 20dbc480f..000000000
--- a/SDL_Core/src/components/HMI/images/nav/nav_arrow.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/nav_bg.png b/SDL_Core/src/components/HMI/images/nav/nav_bg.png
deleted file mode 100755
index 7bca8dda4..000000000
--- a/SDL_Core/src/components/HMI/images/nav/nav_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/nav_bg_pressed.png b/SDL_Core/src/components/HMI/images/nav/nav_bg_pressed.png
deleted file mode 100755
index cbe812b71..000000000
--- a/SDL_Core/src/components/HMI/images/nav/nav_bg_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/nav_help_led.png b/SDL_Core/src/components/HMI/images/nav/nav_help_led.png
deleted file mode 100755
index 0be981a36..000000000
--- a/SDL_Core/src/components/HMI/images/nav/nav_help_led.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/red_arrow.png b/SDL_Core/src/components/HMI/images/nav/red_arrow.png
deleted file mode 100755
index 2ef861294..000000000
--- a/SDL_Core/src/components/HMI/images/nav/red_arrow.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/right_arrow.png b/SDL_Core/src/components/HMI/images/nav/right_arrow.png
deleted file mode 100755
index 7ee8e3f4c..000000000
--- a/SDL_Core/src/components/HMI/images/nav/right_arrow.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/small_ind_def.png b/SDL_Core/src/components/HMI/images/nav/small_ind_def.png
deleted file mode 100755
index 5b005600b..000000000
--- a/SDL_Core/src/components/HMI/images/nav/small_ind_def.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/small_ind_yell.png b/SDL_Core/src/components/HMI/images/nav/small_ind_yell.png
deleted file mode 100755
index 4015bc4c4..000000000
--- a/SDL_Core/src/components/HMI/images/nav/small_ind_yell.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/street.png b/SDL_Core/src/components/HMI/images/nav/street.png
deleted file mode 100755
index 617c278bb..000000000
--- a/SDL_Core/src/components/HMI/images/nav/street.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/top_menu_bg.png b/SDL_Core/src/components/HMI/images/nav/top_menu_bg.png
deleted file mode 100755
index f397c69c7..000000000
--- a/SDL_Core/src/components/HMI/images/nav/top_menu_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/top_menu_delim.png b/SDL_Core/src/components/HMI/images/nav/top_menu_delim.png
deleted file mode 100755
index 0c93b4b0c..000000000
--- a/SDL_Core/src/components/HMI/images/nav/top_menu_delim.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/type.png b/SDL_Core/src/components/HMI/images/nav/type.png
deleted file mode 100755
index b6cde33b8..000000000
--- a/SDL_Core/src/components/HMI/images/nav/type.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/type_d.png b/SDL_Core/src/components/HMI/images/nav/type_d.png
deleted file mode 100755
index 13a41bb7b..000000000
--- a/SDL_Core/src/components/HMI/images/nav/type_d.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/type_h.png b/SDL_Core/src/components/HMI/images/nav/type_h.png
deleted file mode 100755
index f83d4dfc2..000000000
--- a/SDL_Core/src/components/HMI/images/nav/type_h.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/type_n.png b/SDL_Core/src/components/HMI/images/nav/type_n.png
deleted file mode 100755
index 70f8c5bb3..000000000
--- a/SDL_Core/src/components/HMI/images/nav/type_n.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/type_pressed.png b/SDL_Core/src/components/HMI/images/nav/type_pressed.png
deleted file mode 100755
index c10909a80..000000000
--- a/SDL_Core/src/components/HMI/images/nav/type_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/type_view_btn_bg.png b/SDL_Core/src/components/HMI/images/nav/type_view_btn_bg.png
deleted file mode 100755
index e88f820ec..000000000
--- a/SDL_Core/src/components/HMI/images/nav/type_view_btn_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/type_view_btn_bg_pressed.png b/SDL_Core/src/components/HMI/images/nav/type_view_btn_bg_pressed.png
deleted file mode 100755
index c1eb0996b..000000000
--- a/SDL_Core/src/components/HMI/images/nav/type_view_btn_bg_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/zoom_bg.png b/SDL_Core/src/components/HMI/images/nav/zoom_bg.png
deleted file mode 100755
index dc327c48b..000000000
--- a/SDL_Core/src/components/HMI/images/nav/zoom_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/zoom_bg_active.png b/SDL_Core/src/components/HMI/images/nav/zoom_bg_active.png
deleted file mode 100755
index 6d9d82243..000000000
--- a/SDL_Core/src/components/HMI/images/nav/zoom_bg_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/zoom_in.png b/SDL_Core/src/components/HMI/images/nav/zoom_in.png
deleted file mode 100755
index 8e8eb1153..000000000
--- a/SDL_Core/src/components/HMI/images/nav/zoom_in.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/zoom_in_dis.png b/SDL_Core/src/components/HMI/images/nav/zoom_in_dis.png
deleted file mode 100755
index f96417bd5..000000000
--- a/SDL_Core/src/components/HMI/images/nav/zoom_in_dis.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/zoom_out.png b/SDL_Core/src/components/HMI/images/nav/zoom_out.png
deleted file mode 100755
index 3551f7d3a..000000000
--- a/SDL_Core/src/components/HMI/images/nav/zoom_out.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/nav/zoom_out_dis.png b/SDL_Core/src/components/HMI/images/nav/zoom_out_dis.png
deleted file mode 100755
index c8fb77d0f..000000000
--- a/SDL_Core/src/components/HMI/images/nav/zoom_out_dis.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/bcs-item_bg_act.png b/SDL_Core/src/components/HMI/images/phone/bcs-item_bg_act.png
deleted file mode 100755
index f89fa8426..000000000
--- a/SDL_Core/src/components/HMI/images/phone/bcs-item_bg_act.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/bg.png b/SDL_Core/src/components/HMI/images/phone/bg.png
index ffcf3e667..ffcf3e667 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/bg.png
+++ b/SDL_Core/src/components/HMI/images/phone/bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/book-filter-bg.png b/SDL_Core/src/components/HMI/images/phone/book-filter-bg.png
deleted file mode 100755
index abc1b0535..000000000
--- a/SDL_Core/src/components/HMI/images/phone/book-filter-bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/btn_bg.png b/SDL_Core/src/components/HMI/images/phone/btn_bg.png
deleted file mode 100755
index cfb28dad7..000000000
--- a/SDL_Core/src/components/HMI/images/phone/btn_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/btn_bg_pressed.png b/SDL_Core/src/components/HMI/images/phone/btn_bg_pressed.png
deleted file mode 100755
index c589b25cc..000000000
--- a/SDL_Core/src/components/HMI/images/phone/btn_bg_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/controls_bg.png b/SDL_Core/src/components/HMI/images/phone/controls_bg.png
deleted file mode 100755
index 9bb555e7c..000000000
--- a/SDL_Core/src/components/HMI/images/phone/controls_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/controls_bg_pressed.png b/SDL_Core/src/components/HMI/images/phone/controls_bg_pressed.png
deleted file mode 100755
index ee895f774..000000000
--- a/SDL_Core/src/components/HMI/images/phone/controls_bg_pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/del.png b/SDL_Core/src/components/HMI/images/phone/del.png
index 714b1edb6..714b1edb6 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/del.png
+++ b/SDL_Core/src/components/HMI/images/phone/del.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/dial.png b/SDL_Core/src/components/HMI/images/phone/dial.png
index 56b95bfdb..56b95bfdb 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/dial.png
+++ b/SDL_Core/src/components/HMI/images/phone/dial.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/dial_photo.png b/SDL_Core/src/components/HMI/images/phone/dial_photo.png
deleted file mode 100755
index d995584f1..000000000
--- a/SDL_Core/src/components/HMI/images/phone/dial_photo.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/end.png b/SDL_Core/src/components/HMI/images/phone/end.png
index 2d622bcc7..2d622bcc7 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/end.png
+++ b/SDL_Core/src/components/HMI/images/phone/end.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/history-filter-bg.png b/SDL_Core/src/components/HMI/images/phone/history-filter-bg.png
deleted file mode 100755
index e780a413c..000000000
--- a/SDL_Core/src/components/HMI/images/phone/history-filter-bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_bluetoothConnect.png b/SDL_Core/src/components/HMI/images/phone/ico_bluetoothConnect.png
deleted file mode 100755
index 68ef92caf..000000000
--- a/SDL_Core/src/components/HMI/images/phone/ico_bluetoothConnect.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_cellPhone.png b/SDL_Core/src/components/HMI/images/phone/ico_cellPhone.png
deleted file mode 100755
index 580aebe0a..000000000
--- a/SDL_Core/src/components/HMI/images/phone/ico_cellPhone.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_history.png b/SDL_Core/src/components/HMI/images/phone/ico_history.png
deleted file mode 100755
index 7ac3da4a9..000000000
--- a/SDL_Core/src/components/HMI/images/phone/ico_history.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_messaging.png b/SDL_Core/src/components/HMI/images/phone/ico_messaging.png
deleted file mode 100755
index 5492ccf8c..000000000
--- a/SDL_Core/src/components/HMI/images/phone/ico_messaging.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_phone.png b/SDL_Core/src/components/HMI/images/phone/ico_phone.png
index 68bcf408d..68bcf408d 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/ico_phone.png
+++ b/SDL_Core/src/components/HMI/images/phone/ico_phone.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_phoneMelody.png b/SDL_Core/src/components/HMI/images/phone/ico_phoneMelody.png
deleted file mode 100755
index 49bb10425..000000000
--- a/SDL_Core/src/components/HMI/images/phone/ico_phoneMelody.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_phonebook.png b/SDL_Core/src/components/HMI/images/phone/ico_phonebook.png
deleted file mode 100755
index 9536bf5f3..000000000
--- a/SDL_Core/src/components/HMI/images/phone/ico_phonebook.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_questionMark.png b/SDL_Core/src/components/HMI/images/phone/ico_questionMark.png
deleted file mode 100755
index 1b097005c..000000000
--- a/SDL_Core/src/components/HMI/images/phone/ico_questionMark.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_quickdial.png b/SDL_Core/src/components/HMI/images/phone/ico_quickdial.png
deleted file mode 100755
index dbd686af1..000000000
--- a/SDL_Core/src/components/HMI/images/phone/ico_quickdial.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_settings.png b/SDL_Core/src/components/HMI/images/phone/ico_settings.png
deleted file mode 100755
index 8f54f015a..000000000
--- a/SDL_Core/src/components/HMI/images/phone/ico_settings.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_sound_active.png b/SDL_Core/src/components/HMI/images/phone/ico_sound_active.png
deleted file mode 100755
index 57dc7f478..000000000
--- a/SDL_Core/src/components/HMI/images/phone/ico_sound_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/ico_star.png b/SDL_Core/src/components/HMI/images/phone/ico_star.png
deleted file mode 100755
index 61203a676..000000000
--- a/SDL_Core/src/components/HMI/images/phone/ico_star.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/incoming_call_ico.png b/SDL_Core/src/components/HMI/images/phone/incoming_call_ico.png
deleted file mode 100755
index 7f4d352f7..000000000
--- a/SDL_Core/src/components/HMI/images/phone/incoming_call_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/keypad/center_btn.png b/SDL_Core/src/components/HMI/images/phone/keypad/center_btn.png
index 9661ecd18..9661ecd18 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/keypad/center_btn.png
+++ b/SDL_Core/src/components/HMI/images/phone/keypad/center_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/keypad/center_btn_pressed.png b/SDL_Core/src/components/HMI/images/phone/keypad/center_btn_pressed.png
index 42ac69bb2..42ac69bb2 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/keypad/center_btn_pressed.png
+++ b/SDL_Core/src/components/HMI/images/phone/keypad/center_btn_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/keypad/left_btn.png b/SDL_Core/src/components/HMI/images/phone/keypad/left_btn.png
index d043b4255..d043b4255 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/keypad/left_btn.png
+++ b/SDL_Core/src/components/HMI/images/phone/keypad/left_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/keypad/left_btn_pressed.png b/SDL_Core/src/components/HMI/images/phone/keypad/left_btn_pressed.png
index 287c1eaba..287c1eaba 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/keypad/left_btn_pressed.png
+++ b/SDL_Core/src/components/HMI/images/phone/keypad/left_btn_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/keypad/right_btn.png b/SDL_Core/src/components/HMI/images/phone/keypad/right_btn.png
index 30f7ec9a9..30f7ec9a9 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/keypad/right_btn.png
+++ b/SDL_Core/src/components/HMI/images/phone/keypad/right_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/keypad/right_btn_pressed.png b/SDL_Core/src/components/HMI/images/phone/keypad/right_btn_pressed.png
index 9f67dd001..9f67dd001 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/keypad/right_btn_pressed.png
+++ b/SDL_Core/src/components/HMI/images/phone/keypad/right_btn_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/menu_active.png b/SDL_Core/src/components/HMI/images/phone/menu_active.png
index 776e857b5..776e857b5 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/menu_active.png
+++ b/SDL_Core/src/components/HMI/images/phone/menu_active.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/menu_bg.png b/SDL_Core/src/components/HMI/images/phone/menu_bg.png
index 7de8abeb7..7de8abeb7 100755..100644
--- a/SDL_Core/src/components/HMI/images/phone/menu_bg.png
+++ b/SDL_Core/src/components/HMI/images/phone/menu_bg.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/missed_call_ico.png b/SDL_Core/src/components/HMI/images/phone/missed_call_ico.png
deleted file mode 100755
index 6abacba32..000000000
--- a/SDL_Core/src/components/HMI/images/phone/missed_call_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/msg-list-bg.png b/SDL_Core/src/components/HMI/images/phone/msg-list-bg.png
deleted file mode 100755
index 0e9c4568f..000000000
--- a/SDL_Core/src/components/HMI/images/phone/msg-list-bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/msg-r-group-bg.png b/SDL_Core/src/components/HMI/images/phone/msg-r-group-bg.png
deleted file mode 100755
index 8d0dfe487..000000000
--- a/SDL_Core/src/components/HMI/images/phone/msg-r-group-bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/number_area.png b/SDL_Core/src/components/HMI/images/phone/number_area.png
deleted file mode 100755
index eeb1e3907..000000000
--- a/SDL_Core/src/components/HMI/images/phone/number_area.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/outgoing_call_ico.png b/SDL_Core/src/components/HMI/images/phone/outgoing_call_ico.png
deleted file mode 100755
index 0ca77c3b9..000000000
--- a/SDL_Core/src/components/HMI/images/phone/outgoing_call_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone-ico.png b/SDL_Core/src/components/HMI/images/phone/phone-ico.png
deleted file mode 100755
index 4e797463d..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone-ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_antena.png b/SDL_Core/src/components/HMI/images/phone/phone_antena.png
deleted file mode 100755
index c5aac391b..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_antena.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_button48_bg_active.png b/SDL_Core/src/components/HMI/images/phone/phone_button48_bg_active.png
deleted file mode 100755
index e6607db95..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_button48_bg_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_button_bg_active.png b/SDL_Core/src/components/HMI/images/phone/phone_button_bg_active.png
deleted file mode 100755
index 6e7e0738c..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_button_bg_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_help_dialpad.png b/SDL_Core/src/components/HMI/images/phone/phone_help_dialpad.png
deleted file mode 100755
index c36203641..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_help_dialpad.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_help_history.png b/SDL_Core/src/components/HMI/images/phone/phone_help_history.png
deleted file mode 100755
index d3113ef47..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_help_history.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_help_menu.png b/SDL_Core/src/components/HMI/images/phone/phone_help_menu.png
deleted file mode 100755
index b5d4bb8b6..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_help_menu.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_help_messaging.png b/SDL_Core/src/components/HMI/images/phone/phone_help_messaging.png
deleted file mode 100755
index ee1696821..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_help_messaging.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_help_phonebook.png b/SDL_Core/src/components/HMI/images/phone/phone_help_phonebook.png
deleted file mode 100755
index 20b274b12..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_help_phonebook.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_help_quickdial.png b/SDL_Core/src/components/HMI/images/phone/phone_help_quickdial.png
deleted file mode 100755
index e672d5d3c..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_help_quickdial.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_help_settings.png b/SDL_Core/src/components/HMI/images/phone/phone_help_settings.png
deleted file mode 100755
index 91d888e1c..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_help_settings.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_info_sample.png b/SDL_Core/src/components/HMI/images/phone/phone_info_sample.png
deleted file mode 100755
index 7fb7971f4..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_info_sample.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_settings_bluetoothDevices_bg_help.png b/SDL_Core/src/components/HMI/images/phone/phone_settings_bluetoothDevices_bg_help.png
deleted file mode 100755
index 7fde12d95..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_settings_bluetoothDevices_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_settings_internetDataConnection_bg_help.png b/SDL_Core/src/components/HMI/images/phone/phone_settings_internetDataConnection_bg_help.png
deleted file mode 100755
index 4b93b463f..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_settings_internetDataConnection_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_settings_phoneBook_bg_help.png b/SDL_Core/src/components/HMI/images/phone/phone_settings_phoneBook_bg_help.png
deleted file mode 100755
index 716011c17..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_settings_phoneBook_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_settings_phoneRinger_bg_help.png b/SDL_Core/src/components/HMI/images/phone/phone_settings_phoneRinger_bg_help.png
deleted file mode 100755
index c8c8dfb33..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_settings_phoneRinger_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/phone_settings_textMessageNotification_bg_help.png b/SDL_Core/src/components/HMI/images/phone/phone_settings_textMessageNotification_bg_help.png
deleted file mode 100755
index a90f15ffd..000000000
--- a/SDL_Core/src/components/HMI/images/phone/phone_settings_textMessageNotification_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/quick_dial_inact_bg.png b/SDL_Core/src/components/HMI/images/phone/quick_dial_inact_bg.png
deleted file mode 100755
index e92caac9b..000000000
--- a/SDL_Core/src/components/HMI/images/phone/quick_dial_inact_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/signal-ico-blur.png b/SDL_Core/src/components/HMI/images/phone/signal-ico-blur.png
deleted file mode 100755
index 7470cdb7d..000000000
--- a/SDL_Core/src/components/HMI/images/phone/signal-ico-blur.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/phone/signal-ico.png b/SDL_Core/src/components/HMI/images/phone/signal-ico.png
deleted file mode 100755
index 2cf32beaf..000000000
--- a/SDL_Core/src/components/HMI/images/phone/signal-ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/player/done_ico.png b/SDL_Core/src/components/HMI/images/player/done_ico.png
deleted file mode 100755
index 3099408af..000000000
--- a/SDL_Core/src/components/HMI/images/player/done_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/player/frd_ico.png b/SDL_Core/src/components/HMI/images/player/frd_ico.png
deleted file mode 100755
index 9af7a41d1..000000000
--- a/SDL_Core/src/components/HMI/images/player/frd_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/player/pause.png b/SDL_Core/src/components/HMI/images/player/pause.png
deleted file mode 100755
index 4cb45ea80..000000000
--- a/SDL_Core/src/components/HMI/images/player/pause.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/player/play.png b/SDL_Core/src/components/HMI/images/player/play.png
deleted file mode 100755
index 077482c52..000000000
--- a/SDL_Core/src/components/HMI/images/player/play.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/player/player_active_control.png b/SDL_Core/src/components/HMI/images/player/player_active_control.png
deleted file mode 100755
index ab928911b..000000000
--- a/SDL_Core/src/components/HMI/images/player/player_active_control.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/player/player_free_control.png b/SDL_Core/src/components/HMI/images/player/player_free_control.png
deleted file mode 100755
index 48bc8b193..000000000
--- a/SDL_Core/src/components/HMI/images/player/player_free_control.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/player/player_prog_bg.png b/SDL_Core/src/components/HMI/images/player/player_prog_bg.png
deleted file mode 100755
index 19440c6a9..000000000
--- a/SDL_Core/src/components/HMI/images/player/player_prog_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/player/prog_ind.png b/SDL_Core/src/components/HMI/images/player/prog_ind.png
deleted file mode 100755
index ac88eb972..000000000
--- a/SDL_Core/src/components/HMI/images/player/prog_ind.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/player/rewind_ico.png b/SDL_Core/src/components/HMI/images/player/rewind_ico.png
deleted file mode 100755
index 53340d17b..000000000
--- a/SDL_Core/src/components/HMI/images/player/rewind_ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/sdl/Warning.png b/SDL_Core/src/components/HMI/images/sdl/Warning.png
index e59dcd068..c91cd31d3 100755..100644
--- a/SDL_Core/src/components/HMI/images/sdl/Warning.png
+++ b/SDL_Core/src/components/HMI/images/sdl/Warning.png
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/sdl/progress.gif b/SDL_Core/src/components/HMI/images/sdl/progress.gif
new file mode 100644
index 000000000..37690fa5b
--- /dev/null
+++ b/SDL_Core/src/components/HMI/images/sdl/progress.gif
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/sdl/progressindicator.gif b/SDL_Core/src/components/HMI/images/sdl/progressindicator.gif
new file mode 100644
index 000000000..77d358cae
--- /dev/null
+++ b/SDL_Core/src/components/HMI/images/sdl/progressindicator.gif
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/911-ico.png b/SDL_Core/src/components/HMI/images/settings/911-ico.png
deleted file mode 100755
index 123d12e3a..000000000
--- a/SDL_Core/src/components/HMI/images/settings/911-ico.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/Cushion_WhiteOutline_driver.png b/SDL_Core/src/components/HMI/images/settings/Cushion_WhiteOutline_driver.png
deleted file mode 100755
index 3e42d84b1..000000000
--- a/SDL_Core/src/components/HMI/images/settings/Cushion_WhiteOutline_driver.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/Cushion_WhiteOutline_passenger.png b/SDL_Core/src/components/HMI/images/settings/Cushion_WhiteOutline_passenger.png
deleted file mode 100755
index 788760487..000000000
--- a/SDL_Core/src/components/HMI/images/settings/Cushion_WhiteOutline_passenger.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/LowerLumbar_WhiteOutline_driver.png b/SDL_Core/src/components/HMI/images/settings/LowerLumbar_WhiteOutline_driver.png
deleted file mode 100755
index 396f39b8f..000000000
--- a/SDL_Core/src/components/HMI/images/settings/LowerLumbar_WhiteOutline_driver.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/LowerLumbar_WhiteOutline_passenger.png b/SDL_Core/src/components/HMI/images/settings/LowerLumbar_WhiteOutline_passenger.png
deleted file mode 100755
index bec2874b2..000000000
--- a/SDL_Core/src/components/HMI/images/settings/LowerLumbar_WhiteOutline_passenger.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/MassageCircle.png b/SDL_Core/src/components/HMI/images/settings/MassageCircle.png
deleted file mode 100755
index d24673608..000000000
--- a/SDL_Core/src/components/HMI/images/settings/MassageCircle.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/MiddleLumbar_WhiteOutline_driver.png b/SDL_Core/src/components/HMI/images/settings/MiddleLumbar_WhiteOutline_driver.png
deleted file mode 100755
index 1f4d15097..000000000
--- a/SDL_Core/src/components/HMI/images/settings/MiddleLumbar_WhiteOutline_driver.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/MiddleLumbar_WhiteOutline_passenger.png b/SDL_Core/src/components/HMI/images/settings/MiddleLumbar_WhiteOutline_passenger.png
deleted file mode 100755
index 83761de15..000000000
--- a/SDL_Core/src/components/HMI/images/settings/MiddleLumbar_WhiteOutline_passenger.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/SettingsVehicleEnableValetMode.png b/SDL_Core/src/components/HMI/images/settings/SettingsVehicleEnableValetMode.png
deleted file mode 100755
index 99718d3a8..000000000
--- a/SDL_Core/src/components/HMI/images/settings/SettingsVehicleEnableValetMode.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/TopLumbar_WhiteOutline_driver.png b/SDL_Core/src/components/HMI/images/settings/TopLumbar_WhiteOutline_driver.png
deleted file mode 100755
index 9354aa554..000000000
--- a/SDL_Core/src/components/HMI/images/settings/TopLumbar_WhiteOutline_driver.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/TopLumbar_WhiteOutline_passenger.png b/SDL_Core/src/components/HMI/images/settings/TopLumbar_WhiteOutline_passenger.png
deleted file mode 100755
index c406b8178..000000000
--- a/SDL_Core/src/components/HMI/images/settings/TopLumbar_WhiteOutline_passenger.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/WhiteOutline_driver-lumbar-all.png b/SDL_Core/src/components/HMI/images/settings/WhiteOutline_driver-lumbar-all.png
deleted file mode 100755
index 25d9d829b..000000000
--- a/SDL_Core/src/components/HMI/images/settings/WhiteOutline_driver-lumbar-all.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/WhiteOutline_passenger-lumbar-all.png b/SDL_Core/src/components/HMI/images/settings/WhiteOutline_passenger-lumbar-all.png
deleted file mode 100755
index e0d172e04..000000000
--- a/SDL_Core/src/components/HMI/images/settings/WhiteOutline_passenger-lumbar-all.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/arr-r-disable.png b/SDL_Core/src/components/HMI/images/settings/arr-r-disable.png
deleted file mode 100755
index acdfb56f9..000000000
--- a/SDL_Core/src/components/HMI/images/settings/arr-r-disable.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/arr-r.png b/SDL_Core/src/components/HMI/images/settings/arr-r.png
deleted file mode 100755
index 05d8e9797..000000000
--- a/SDL_Core/src/components/HMI/images/settings/arr-r.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/btn-28h-gray-active.png b/SDL_Core/src/components/HMI/images/settings/btn-28h-gray-active.png
deleted file mode 100755
index 2b4b2ee0a..000000000
--- a/SDL_Core/src/components/HMI/images/settings/btn-28h-gray-active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/btn-28h.png b/SDL_Core/src/components/HMI/images/settings/btn-28h.png
deleted file mode 100755
index 034c061be..000000000
--- a/SDL_Core/src/components/HMI/images/settings/btn-28h.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/btn-48h-gray-active.png b/SDL_Core/src/components/HMI/images/settings/btn-48h-gray-active.png
deleted file mode 100755
index 30909010c..000000000
--- a/SDL_Core/src/components/HMI/images/settings/btn-48h-gray-active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/btn-48h.png b/SDL_Core/src/components/HMI/images/settings/btn-48h.png
deleted file mode 100755
index 89fe73bf3..000000000
--- a/SDL_Core/src/components/HMI/images/settings/btn-48h.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/btn-68h-pressed.png b/SDL_Core/src/components/HMI/images/settings/btn-68h-pressed.png
deleted file mode 100755
index 8d90ca7b2..000000000
--- a/SDL_Core/src/components/HMI/images/settings/btn-68h-pressed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/btn-68h.png b/SDL_Core/src/components/HMI/images/settings/btn-68h.png
deleted file mode 100755
index e1f8181d4..000000000
--- a/SDL_Core/src/components/HMI/images/settings/btn-68h.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/btn-98h.png b/SDL_Core/src/components/HMI/images/settings/btn-98h.png
deleted file mode 100755
index be25c0c45..000000000
--- a/SDL_Core/src/components/HMI/images/settings/btn-98h.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/center-button.png b/SDL_Core/src/components/HMI/images/settings/center-button.png
deleted file mode 100755
index fd407b735..000000000
--- a/SDL_Core/src/components/HMI/images/settings/center-button.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/dial.png b/SDL_Core/src/components/HMI/images/settings/dial.png
deleted file mode 100755
index 56b95bfdb..000000000
--- a/SDL_Core/src/components/HMI/images/settings/dial.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-all.png b/SDL_Core/src/components/HMI/images/settings/driver-lumbar-all.png
deleted file mode 100755
index 115d0c453..000000000
--- a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-all.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-low.png b/SDL_Core/src/components/HMI/images/settings/driver-lumbar-low.png
deleted file mode 100755
index 59441042a..000000000
--- a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-low.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-bottom-selected.png b/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-bottom-selected.png
deleted file mode 100755
index c57f56a8a..000000000
--- a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-bottom-selected.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-bottom.png b/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-bottom.png
deleted file mode 100755
index 7d6117544..000000000
--- a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-bottom.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-top-selected.png b/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-top-selected.png
deleted file mode 100755
index 11df1fa69..000000000
--- a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-top-selected.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-top.png b/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-top.png
deleted file mode 100755
index 8c97c97db..000000000
--- a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-m-top.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-mid.png b/SDL_Core/src/components/HMI/images/settings/driver-lumbar-mid.png
deleted file mode 100755
index 602183157..000000000
--- a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-mid.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-top.png b/SDL_Core/src/components/HMI/images/settings/driver-lumbar-top.png
deleted file mode 100755
index c07860f98..000000000
--- a/SDL_Core/src/components/HMI/images/settings/driver-lumbar-top.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_911assist.png b/SDL_Core/src/components/HMI/images/settings/ico_911assist.png
deleted file mode 100755
index 3a405f30f..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_911assist.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_LED.png b/SDL_Core/src/components/HMI/images/settings/ico_LED.png
deleted file mode 100755
index 61a0fffd3..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_LED.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_ambientLighting.png b/SDL_Core/src/components/HMI/images/settings/ico_ambientLighting.png
deleted file mode 100755
index 9b580b2ce..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_ambientLighting.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_assist.png b/SDL_Core/src/components/HMI/images/settings/ico_assist.png
deleted file mode 100755
index c770a5f56..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_assist.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_backspace.png b/SDL_Core/src/components/HMI/images/settings/ico_backspace.png
deleted file mode 100755
index 572f24b5d..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_backspace.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_clock.png b/SDL_Core/src/components/HMI/images/settings/ico_clock.png
deleted file mode 100755
index 28bc2fc42..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_clock.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_clock_plus_comtrol.png b/SDL_Core/src/components/HMI/images/settings/ico_clock_plus_comtrol.png
deleted file mode 100755
index b4be9cdfd..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_clock_plus_comtrol.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_display.png b/SDL_Core/src/components/HMI/images/settings/ico_display.png
deleted file mode 100755
index 72f7302cc..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_display.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_distance.png b/SDL_Core/src/components/HMI/images/settings/ico_distance.png
deleted file mode 100755
index 06fbb272b..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_distance.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_doorKeypadCode.png b/SDL_Core/src/components/HMI/images/settings/ico_doorKeypadCode.png
deleted file mode 100755
index 993f5d3cd..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_doorKeypadCode.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_enableValetMode.png b/SDL_Core/src/components/HMI/images/settings/ico_enableValetMode.png
deleted file mode 100755
index a75b7f330..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_enableValetMode.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_forbiddance.png b/SDL_Core/src/components/HMI/images/settings/ico_forbiddance.png
deleted file mode 100755
index 86560c5dc..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_forbiddance.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_help.png b/SDL_Core/src/components/HMI/images/settings/ico_help.png
deleted file mode 100755
index 41df727ff..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_languages.png b/SDL_Core/src/components/HMI/images/settings/ico_languages.png
deleted file mode 100755
index 695c40bb2..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_languages.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_licenses.png b/SDL_Core/src/components/HMI/images/settings/ico_licenses.png
deleted file mode 100755
index 4c72f0b73..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_licenses.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_minus_control.png b/SDL_Core/src/components/HMI/images/settings/ico_minus_control.png
deleted file mode 100755
index 65a142f87..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_minus_control.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_navigation.png b/SDL_Core/src/components/HMI/images/settings/ico_navigation.png
deleted file mode 100755
index 556b75947..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_navigation.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_on-off-wide.png b/SDL_Core/src/components/HMI/images/settings/ico_on-off-wide.png
deleted file mode 100755
index 734907a7c..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_on-off-wide.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_on-off.png b/SDL_Core/src/components/HMI/images/settings/ico_on-off.png
deleted file mode 100755
index 1cd7fe992..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_on-off.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_phone.png b/SDL_Core/src/components/HMI/images/settings/ico_phone.png
deleted file mode 100755
index 29d214bc0..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_phone.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_phone_off.png b/SDL_Core/src/components/HMI/images/settings/ico_phone_off.png
deleted file mode 100755
index fb41c5e70..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_phone_off.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_player.png b/SDL_Core/src/components/HMI/images/settings/ico_player.png
deleted file mode 100755
index ecdb28826..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_player.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel-disabled.png b/SDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel-disabled.png
deleted file mode 100755
index c5a7b3165..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel-disabled.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel.png b/SDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel.png
deleted file mode 100755
index 064df2ba4..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel_disabled.png b/SDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel_disabled.png
deleted file mode 100755
index 6dfbf66a5..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_plus-minus-pannel_disabled.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_plus-zero-minus-pannel.png b/SDL_Core/src/components/HMI/images/settings/ico_plus-zero-minus-pannel.png
deleted file mode 100755
index 028129068..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_plus-zero-minus-pannel.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_rearViewCamera.png b/SDL_Core/src/components/HMI/images/settings/ico_rearViewCamera.png
deleted file mode 100755
index b42e45855..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_rearViewCamera.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_settings.png b/SDL_Core/src/components/HMI/images/settings/ico_settings.png
deleted file mode 100755
index d65777ee0..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_settings.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_12-24.png b/SDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_12-24.png
deleted file mode 100755
index caa39a10f..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_12-24.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_on-off.png b/SDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_on-off.png
deleted file mode 100755
index 1cd7fe992..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_on-off.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_time-date.png b/SDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_time-date.png
deleted file mode 100755
index 4c1cd0af5..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_settings_clock_toggle_time-date.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidFerries.png b/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidFerries.png
deleted file mode 100755
index 71e01f540..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidFerries.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidFreeways.png b/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidFreeways.png
deleted file mode 100755
index c25880367..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidFreeways.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidTollroads.png b/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidTollroads.png
deleted file mode 100755
index 9b7c8052c..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_avoidTollroads.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_useHOV.png b/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_useHOV.png
deleted file mode 100755
index 45de6c15c..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_settings_settings_navigation_routePreferences_useHOV.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_settings_white.png b/SDL_Core/src/components/HMI/images/settings/ico_settings_white.png
deleted file mode 100755
index 86307d5e2..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_settings_white.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_sound.png b/SDL_Core/src/components/HMI/images/settings/ico_sound.png
deleted file mode 100755
index e18cdfe99..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_sound.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_temperature.png b/SDL_Core/src/components/HMI/images/settings/ico_temperature.png
deleted file mode 100755
index adeb68b86..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_temperature.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_upArrow.png b/SDL_Core/src/components/HMI/images/settings/ico_upArrow.png
deleted file mode 100755
index 821b94899..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_upArrow.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_vehicle.png b/SDL_Core/src/components/HMI/images/settings/ico_vehicle.png
deleted file mode 100755
index 090489723..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_vehicle.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_vehicleHealthReport.png b/SDL_Core/src/components/HMI/images/settings/ico_vehicleHealthReport.png
deleted file mode 100755
index f093c0ef6..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_vehicleHealthReport.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_vehicle_help.png b/SDL_Core/src/components/HMI/images/settings/ico_vehicle_help.png
deleted file mode 100755
index 090489723..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_vehicle_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_voice.png b/SDL_Core/src/components/HMI/images/settings/ico_voice.png
deleted file mode 100755
index 31505e4b3..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_voice.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ico_wireless.png b/SDL_Core/src/components/HMI/images/settings/ico_wireless.png
deleted file mode 100755
index 3ef8431f5..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ico_wireless.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ioc_backspace.png b/SDL_Core/src/components/HMI/images/settings/ioc_backspace.png
deleted file mode 100755
index 40fe84c3d..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ioc_backspace.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/ls-item_bg.png b/SDL_Core/src/components/HMI/images/settings/ls-item_bg.png
deleted file mode 100755
index fd31fb32d..000000000
--- a/SDL_Core/src/components/HMI/images/settings/ls-item_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/lumbar_cushion.png b/SDL_Core/src/components/HMI/images/settings/lumbar_cushion.png
deleted file mode 100755
index f9cc75ea4..000000000
--- a/SDL_Core/src/components/HMI/images/settings/lumbar_cushion.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_bot-active.png b/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_bot-active.png
deleted file mode 100755
index ea596996f..000000000
--- a/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_bot-active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_bot_passanger-active.png b/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_bot_passanger-active.png
deleted file mode 100755
index 4a99d11a7..000000000
--- a/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_bot_passanger-active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_top-active.png b/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_top-active.png
deleted file mode 100755
index bf6614218..000000000
--- a/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_top-active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_top_passenger-active.png b/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_top_passenger-active.png
deleted file mode 100755
index f13590e62..000000000
--- a/SDL_Core/src/components/HMI/images/settings/lumbar_cushion_top_passenger-active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/massageBottom.png b/SDL_Core/src/components/HMI/images/settings/massageBottom.png
deleted file mode 100755
index 63837eda4..000000000
--- a/SDL_Core/src/components/HMI/images/settings/massageBottom.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/massageHorisontal.png b/SDL_Core/src/components/HMI/images/settings/massageHorisontal.png
deleted file mode 100755
index 0bcd4b7ab..000000000
--- a/SDL_Core/src/components/HMI/images/settings/massageHorisontal.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/massageRound.png b/SDL_Core/src/components/HMI/images/settings/massageRound.png
deleted file mode 100755
index 5cc095433..000000000
--- a/SDL_Core/src/components/HMI/images/settings/massageRound.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/massageTop.png b/SDL_Core/src/components/HMI/images/settings/massageTop.png
deleted file mode 100755
index cb6dc103a..000000000
--- a/SDL_Core/src/components/HMI/images/settings/massageTop.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/massageVertical.png b/SDL_Core/src/components/HMI/images/settings/massageVertical.png
deleted file mode 100755
index 770cc061c..000000000
--- a/SDL_Core/src/components/HMI/images/settings/massageVertical.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/mcsBlockBackArrow6_1.png b/SDL_Core/src/components/HMI/images/settings/mcsBlockBackArrow6_1.png
deleted file mode 100755
index 5559a5067..000000000
--- a/SDL_Core/src/components/HMI/images/settings/mcsBlockBackArrow6_1.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/mcsBlockBackArrow6_2.png b/SDL_Core/src/components/HMI/images/settings/mcsBlockBackArrow6_2.png
deleted file mode 100755
index 2e0ef729e..000000000
--- a/SDL_Core/src/components/HMI/images/settings/mcsBlockBackArrow6_2.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/menu_active.png b/SDL_Core/src/components/HMI/images/settings/menu_active.png
deleted file mode 100755
index b4cf7277a..000000000
--- a/SDL_Core/src/components/HMI/images/settings/menu_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-all.png b/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-all.png
deleted file mode 100755
index c0131e927..000000000
--- a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-all.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-low.png b/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-low.png
deleted file mode 100755
index d714f6a1e..000000000
--- a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-low.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-bottom-selected.png b/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-bottom-selected.png
deleted file mode 100755
index 0dd8a4218..000000000
--- a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-bottom-selected.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-bottom.png b/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-bottom.png
deleted file mode 100755
index 31734c623..000000000
--- a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-bottom.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-top-selected.png b/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-top-selected.png
deleted file mode 100755
index e14595802..000000000
--- a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-top-selected.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-top.png b/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-top.png
deleted file mode 100755
index b7e4755a2..000000000
--- a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-m-top.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-mid.png b/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-mid.png
deleted file mode 100755
index bf0a06c16..000000000
--- a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-mid.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-top.png b/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-top.png
deleted file mode 100755
index b0266ed87..000000000
--- a/SDL_Core/src/components/HMI/images/settings/passenger-lumbar-top.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/passenger_lumbar_cushion.png b/SDL_Core/src/components/HMI/images/settings/passenger_lumbar_cushion.png
deleted file mode 100755
index 0293cdafc..000000000
--- a/SDL_Core/src/components/HMI/images/settings/passenger_lumbar_cushion.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/scroll_down.png b/SDL_Core/src/components/HMI/images/settings/scroll_down.png
deleted file mode 100755
index d16060531..000000000
--- a/SDL_Core/src/components/HMI/images/settings/scroll_down.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/scroll_down_active.png b/SDL_Core/src/components/HMI/images/settings/scroll_down_active.png
deleted file mode 100755
index f609ecae6..000000000
--- a/SDL_Core/src/components/HMI/images/settings/scroll_down_active.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/scroll_down_inactive.png b/SDL_Core/src/components/HMI/images/settings/scroll_down_inactive.png
deleted file mode 100755
index 418379f0b..000000000
--- a/SDL_Core/src/components/HMI/images/settings/scroll_down_inactive.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/scroll_up.png b/SDL_Core/src/components/HMI/images/settings/scroll_up.png
deleted file mode 100755
index 6ae4d6836..000000000
--- a/SDL_Core/src/components/HMI/images/settings/scroll_up.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/scroll_up_inactive.png b/SDL_Core/src/components/HMI/images/settings/scroll_up_inactive.png
deleted file mode 100755
index 328ed7a3a..000000000
--- a/SDL_Core/src/components/HMI/images/settings/scroll_up_inactive.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/seat-left.png b/SDL_Core/src/components/HMI/images/settings/seat-left.png
deleted file mode 100755
index f6836b7c0..000000000
--- a/SDL_Core/src/components/HMI/images/settings/seat-left.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/seat-right.png b/SDL_Core/src/components/HMI/images/settings/seat-right.png
deleted file mode 100755
index d65a4e8ad..000000000
--- a/SDL_Core/src/components/HMI/images/settings/seat-right.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/seats-message-bottom.png b/SDL_Core/src/components/HMI/images/settings/seats-message-bottom.png
deleted file mode 100755
index d079ddf7a..000000000
--- a/SDL_Core/src/components/HMI/images/settings/seats-message-bottom.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/seats-message-top.png b/SDL_Core/src/components/HMI/images/settings/seats-message-top.png
deleted file mode 100755
index ae0bf37b3..000000000
--- a/SDL_Core/src/components/HMI/images/settings/seats-message-top.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/seats-message.png b/SDL_Core/src/components/HMI/images/settings/seats-message.png
deleted file mode 100755
index 8b1ac7ae5..000000000
--- a/SDL_Core/src/components/HMI/images/settings/seats-message.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/seats.png b/SDL_Core/src/components/HMI/images/settings/seats.png
deleted file mode 100755
index aecd5f7c0..000000000
--- a/SDL_Core/src/components/HMI/images/settings/seats.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/seetings_help_VoiceCommandsList_bg_help.png b/SDL_Core/src/components/HMI/images/settings/seetings_help_VoiceCommandsList_bg_help.png
deleted file mode 100755
index a7ca3da03..000000000
--- a/SDL_Core/src/components/HMI/images/settings/seetings_help_VoiceCommandsList_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/seetings_help_softwareLicenses_bg_help.png b/SDL_Core/src/components/HMI/images/settings/seetings_help_softwareLicenses_bg_help.png
deleted file mode 100755
index 6a292e732..000000000
--- a/SDL_Core/src/components/HMI/images/settings/seetings_help_softwareLicenses_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_clock_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_clock_bg_help.png
deleted file mode 100755
index b08f50193..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_clock_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_help_VoiceCommandList_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_help_VoiceCommandList_bg_help.png
deleted file mode 100755
index 4d0636fe5..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_help_VoiceCommandList_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_help_WhereAmI_bg.png b/SDL_Core/src/components/HMI/images/settings/settings_help_WhereAmI_bg.png
deleted file mode 100755
index b9d1a5320..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_help_WhereAmI_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_help_WhereAmI_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_help_WhereAmI_bg_help.png
deleted file mode 100755
index a144998de..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_help_WhereAmI_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_help_help.png b/SDL_Core/src/components/HMI/images/settings/settings_help_help.png
deleted file mode 100755
index 7538856f4..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_help_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_help_systemInformation_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_help_systemInformation_bg_help.png
deleted file mode 100755
index cc6de5af4..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_help_systemInformation_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_bg_help.png
deleted file mode 100755
index d75061819..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_media_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_media_bg_help.png
deleted file mode 100755
index 9f1cfb611..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_media_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_media_bluetoothDevices_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_media_bluetoothDevices_bg_help.png
deleted file mode 100755
index 038023b1d..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_media_bluetoothDevices_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_avoidAreas_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_avoidAreas_bg_help.png
deleted file mode 100755
index c74120109..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_avoidAreas_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_bg_help.png
deleted file mode 100755
index 7ec05db7c..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_mapPreferences_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_mapPreferences_bg_help.png
deleted file mode 100755
index 5f0500975..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_mapPreferences_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_navigationPreferences_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_navigationPreferences_bg_help.png
deleted file mode 100755
index d575334af..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_navigationPreferences_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_routePreferences_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_routePreferences_bg_help.png
deleted file mode 100755
index 50c8558e2..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_routePreferences_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_trafficPreferences_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_trafficPreferences_bg_help.png
deleted file mode 100755
index ef89d0dee..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_navigation_trafficPreferences_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_system_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_system_bg_help.png
deleted file mode 100755
index 8ec899c04..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_system_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_system_keyboardLayout_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_system_keyboardLayout_bg_help.png
deleted file mode 100755
index ce910b825..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_system_keyboardLayout_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_settings_system_settings_settings_system_installApplications_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_settings_system_settings_settings_system_installApplications_bg_help.png
deleted file mode 100755
index 98974e407..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_settings_system_settings_settings_system_installApplications_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_sound_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_sound_bg_help.png
deleted file mode 100755
index bbc2e7c0b..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_sound_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_vehicle_amberLight_bg-help.png b/SDL_Core/src/components/HMI/images/settings/settings_vehicle_amberLight_bg-help.png
deleted file mode 100755
index 6d37684e6..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_vehicle_amberLight_bg-help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_vehicle_amberLight_bg.png b/SDL_Core/src/components/HMI/images/settings/settings_vehicle_amberLight_bg.png
deleted file mode 100755
index 856650ed9..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_vehicle_amberLight_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_vehicle_enableValetMode_enterPIN_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_vehicle_enableValetMode_enterPIN_bg_help.png
deleted file mode 100755
index 6d97cc3fb..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_vehicle_enableValetMode_enterPIN_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_vehicle_enableValetMode_popUp_bg_help.png b/SDL_Core/src/components/HMI/images/settings/settings_vehicle_enableValetMode_popUp_bg_help.png
deleted file mode 100755
index 1526cdf05..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_vehicle_enableValetMode_popUp_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settings_vehicle_help.png b/SDL_Core/src/components/HMI/images/settings/settings_vehicle_help.png
deleted file mode 100755
index 6fd5c6513..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settings_vehicle_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/settints_settings_help.png b/SDL_Core/src/components/HMI/images/settings/settints_settings_help.png
deleted file mode 100755
index b05e273d5..000000000
--- a/SDL_Core/src/components/HMI/images/settings/settints_settings_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/smll-ar-r.png b/SDL_Core/src/components/HMI/images/settings/smll-ar-r.png
deleted file mode 100755
index a24de2101..000000000
--- a/SDL_Core/src/components/HMI/images/settings/smll-ar-r.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/toggle_selected.png b/SDL_Core/src/components/HMI/images/settings/toggle_selected.png
deleted file mode 100755
index b8003e440..000000000
--- a/SDL_Core/src/components/HMI/images/settings/toggle_selected.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/g#439 tmc generic.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/g#439 tmc generic.png
deleted file mode 100755
index f94cc0ed1..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/g#439 tmc generic.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_acciden.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_acciden.png
deleted file mode 100755
index 5a41811fa..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_acciden.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_difficultDriving.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_difficultDriving.png
deleted file mode 100755
index 95aab46b8..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_difficultDriving.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_incident.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_incident.png
deleted file mode 100755
index d0406de24..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_incident.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_reducesVisibility.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_reducesVisibility.png
deleted file mode 100755
index 9368a9045..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_reducesVisibility.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_roadClosed.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_roadClosed.png
deleted file mode 100755
index 6f5c07b9e..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_roadClosed.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_roadWorks.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_roadWorks.png
deleted file mode 100755
index e17e5e9f5..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_roadWorks.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_smog.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_smog.png
deleted file mode 100755
index 3670e07eb..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_smog.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_snow.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_snow.png
deleted file mode 100755
index 4354bc5e2..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_snow.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_traffic jam.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_traffic jam.png
deleted file mode 100755
index bdf4fcb3f..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_traffic jam.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_trafficJam.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_trafficJam.png
deleted file mode 100755
index bdf4fcb3f..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_trafficJam.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_turnOnYourRadio.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_turnOnYourRadio.png
deleted file mode 100755
index 20b0d1635..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_turnOnYourRadio.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_weatherWarning.png b/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_weatherWarning.png
deleted file mode 100755
index 99a4ea924..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trafficPreferences_ico/ico_weatherWarning.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/trash.png b/SDL_Core/src/components/HMI/images/settings/trash.png
deleted file mode 100755
index 46c9e2598..000000000
--- a/SDL_Core/src/components/HMI/images/settings/trash.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_info_apps_911Assist_help.png b/SDL_Core/src/components/HMI/images/settings/view_info_apps_911Assist_help.png
deleted file mode 100755
index 4e237bd29..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_info_apps_911Assist_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_Sound_BalanceFader-help.png b/SDL_Core/src/components/HMI/images/settings/view_settings_Sound_BalanceFader-help.png
deleted file mode 100755
index 0e6f31b0f..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_Sound_BalanceFader-help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_Sound_BalanceFader.png b/SDL_Core/src/components/HMI/images/settings/view_settings_Sound_BalanceFader.png
deleted file mode 100755
index 949779b51..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_Sound_BalanceFader.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_display_bg.png b/SDL_Core/src/components/HMI/images/settings/view_settings_display_bg.png
deleted file mode 100755
index 59a2cb5ce..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_display_bg.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_display_bg_help.png b/SDL_Core/src/components/HMI/images/settings/view_settings_display_bg_help.png
deleted file mode 100755
index 5e8dbcec4..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_display_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_help_911Assist_bg_help.png b/SDL_Core/src/components/HMI/images/settings/view_settings_help_911Assist_bg_help.png
deleted file mode 100755
index ae01962f2..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_help_911Assist_bg_help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_help_WhereAmI-help.png b/SDL_Core/src/components/HMI/images/settings/view_settings_help_WhereAmI-help.png
deleted file mode 100755
index a144998de..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_help_WhereAmI-help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_help_WhereAmI.png b/SDL_Core/src/components/HMI/images/settings/view_settings_help_WhereAmI.png
deleted file mode 100755
index b9d1a5320..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_help_WhereAmI.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_VoiceControl-help.png b/SDL_Core/src/components/HMI/images/settings/view_settings_settings_VoiceControl-help.png
deleted file mode 100755
index 46d70ed57..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_VoiceControl-help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_VoiceControl.png b/SDL_Core/src/components/HMI/images/settings/view_settings_settings_VoiceControl.png
deleted file mode 100755
index 50995937d..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_VoiceControl.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessInternet-help.png b/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessInternet-help.png
deleted file mode 100755
index a7ca8c0df..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessInternet-help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessInternet.png b/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessInternet.png
deleted file mode 100755
index bfddd95d2..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessInternet.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessWifiInternet-help.png b/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessWifiInternet-help.png
deleted file mode 100755
index 5547564bc..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessWifiInternet-help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessWifiInternet.png b/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessWifiInternet.png
deleted file mode 100755
index 76f03ac85..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_settings_WirelessWifiInternet.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_DoorKeypadCode-help.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_DoorKeypadCode-help.png
deleted file mode 100755
index 1747f14c9..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_DoorKeypadCode-help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_DoorKeypadCode.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_DoorKeypadCode.png
deleted file mode 100755
index ea5e93c05..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_DoorKeypadCode.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-Passenger_massage_seat.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-Passenger_massage_seat.png
deleted file mode 100755
index aa1353682..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-Passenger_massage_seat.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-driver_massage_seat.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-driver_massage_seat.png
deleted file mode 100755
index 2f9dcab64..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-driver_massage_seat.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-left-s.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-left-s.png
deleted file mode 100755
index b65916050..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-left-s.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-right-s.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-right-s.png
deleted file mode 100755
index 5e481886f..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat-right-s.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj1.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj1.png
deleted file mode 100755
index 1620e92fa..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj1.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj1_passenger.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj1_passenger.png
deleted file mode 100755
index 86422f4b9..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj1_passenger.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj2.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj2.png
deleted file mode 100755
index 06fb8a93d..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj2.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj2_passenger.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj2_passenger.png
deleted file mode 100755
index 0a40c5198..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_MultiContourSeat_adj2_passenger.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_RearViewCamera-help.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_RearViewCamera-help.png
deleted file mode 100755
index f54c3d5d9..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_RearViewCamera-help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_RearViewCamera.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_RearViewCamera.png
deleted file mode 100755
index 1de8207a9..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_RearViewCamera.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_VehicleHealthReport-help.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_VehicleHealthReport-help.png
deleted file mode 100755
index 8514e44a6..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_VehicleHealthReport-help.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_VehicleHealthReport.png b/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_VehicleHealthReport.png
deleted file mode 100755
index 87b11b6cf..000000000
--- a/SDL_Core/src/components/HMI/images/settings/view_settings_vehicle_VehicleHealthReport.png
+++ /dev/null
Binary files differ
diff --git a/SDL_Core/src/components/HMI/index.html b/SDL_Core/src/components/HMI/index.html
index a86db3939..cab732fbe 100755..100644
--- a/SDL_Core/src/components/HMI/index.html
+++ b/SDL_Core/src/components/HMI/index.html
@@ -1,170 +1,174 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml" ontouchmove="event.preventDefault();"><html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Ford Smart Device HMI</title>
- <!--Styles-->
- <link rel="stylesheet" type="text/css" href="css/buttonControls.css" />
- <link rel="stylesheet" type="text/css" href="css/ffw.css" />
- <link rel="stylesheet" type="text/css" href="css/general.css" />
- <link rel="stylesheet" type="text/css" href="css/home.css" />
- <link rel="stylesheet" type="text/css" href="css/climate.css" />
- <link rel="stylesheet" type="text/css" href="css/phone.css" />
- <link rel="stylesheet" type="text/css" href="css/navigation.css" />
- <link rel="stylesheet" type="text/css" href="css/info.css" />
- <link rel="stylesheet" type="text/css" href="css/settings.css" />
- <link rel="stylesheet" type="text/css" href="css/media.css" />
- <link rel="stylesheet" type="text/css" href="css/help.css" />
- <link rel="stylesheet" type="text/css" href="css/fr.css" />
- <link rel="stylesheet" type="text/css" href="css/sdl.css" />
-
- <!--Libs-->
-
- <script type="text/javascript" src="lib/handlebars-1.0.0.beta.6.js"></script>
-
- <!-- RELEASE's min versions -->
-
- <script type="text/javascript" src="lib/jquery-1.7.2.min.js"></script>
- <script type="text/javascript" src="lib/ember-1.0.pre.min.js"></script>
-
-
- </head>
- <body ontouchmove="event.preventDefault();">
-
- <!-- Framework -->
- <script type="text/javascript" src="ffw/Framework.js"></script>
- <script type="text/javascript" src="ffw/WebSocket.js"></script>
- <script type="text/javascript" src="ffw/RPCObserver.js"></script>
- <script type="text/javascript" src="ffw/RPCClient.js"></script>
- <script type="text/javascript" src="ffw/ButtonsRPC.js"></script>
- <script type="text/javascript" src="ffw/UIRPC.js"></script>
- <script type="text/javascript" src="ffw/TTSRPC.js"></script>
- <script type="text/javascript" src="ffw/VRRPC.js"></script>
- <script type="text/javascript" src="ffw/VehicleInfoRPC.js"></script>
- <script type="text/javascript" src="ffw/BasicCommunicationRPC.js"></script>
-
- <!-- APP -->
- <script type="text/javascript" src="app/Flags.js"></script>
- <script type="text/javascript" src="app/SDLApp.js"></script>
- <!-- locales -->
- <script type="text/javascript" src="locale/eng.js"></script>
- <!-- script type="text/javascript" src="locale/fr.js"></script-->
- <!-- script type="text/javascript" src="locale/rus.js"></script-->
- <script type="text/javascript" src="locale/locale.js"></script>
- <script type="text/javascript" src="app/view/WarningView.js"></script>
-
- <script type="text/x-handlebars">
- {{view SDL.warningView}}
- </script>
-
- <!-- UI controlls -->
- <script type="text/javascript" src="app/controlls/Button.js"></script>
- <script type="text/javascript" src="app/controlls/Label.js"></script>
- <script type="text/javascript" src="app/controlls/ScrollBar.js"></script>
- <script type="text/javascript" src="app/controlls/List.js"></script>
- <script type="text/javascript" src="app/controlls/Indicator.js"></script>
- <script type="text/javascript" src="app/controlls/MenuList.js"></script>
- <script type="text/javascript" src="app/controlls/ScrollableText.js"></script>
-
- <script type="text/javascript" src="app/controlls/sdl/PresetButton.js"></script>
-
- <!-- utils -->
- <script type="text/javascript" src="app/util/Audio.js"></script>
-
- <!-- Models -->
-
- <script type="text/javascript" src="app/model/media/CDModel.js"></script>
-
- <script type="text/javascript" src="app/model/PhoneModel.js"></script>
-
- <!-- SDL models -->
- <script type="text/javascript" src="app/model/sdl/VehicleInfoModel.js"></script>
- <script type="text/javascript" src="app/model/sdl/AppModel.js"></script>
- <script type="text/javascript" src="app/model/sdl/NonMediaModel.js"></script>
- <script type="text/javascript" src="app/model/sdl/MediaModel.js"></script>
- <script type="text/javascript" src="app/model/sdl/Model.js"></script>
- <!-- SDL models END -->
-
- <!-- Controllers -->
- <script type="text/javascript" src="app/controller/AppController.js"></script>
- <script type="text/javascript" src="app/controller/MediaController.js"></script>
- <script type="text/javascript" src="app/controller/PhoneController.js"></script>
- <script type="text/javascript" src="app/controller/InfoController.js"></script>
-
- <script type="text/javascript" src="app/controller/sdl/Controller.js"></script>
- <script type="text/javascript" src="app/controller/sdl/AppController.js"></script>
- <script type="text/javascript" src="app/controller/sdl/NonMediaController.js"></script>
- <script type="text/javascript" src="app/controller/sdl/MediaController.js"></script>
-
- <!-- Mixins -->
- <script type="text/javascript" src="app/mixins/PresetEvents.js"></script>
- <script type="text/javascript" src="app/mixins/PresetEventCustom.js"></script>
-
- <!-- Views -->
-
- <!-- phone views -->
- <script type="text/javascript" src="app/view/phone/dialpadView.js"></script>
-
- <!-- media views -->
- <script type="text/javascript" src="app/view/media/sdl/controllsView.js"></script>
- <script type="text/javascript" src="app/view/media/common/LeftMenuView.js"></script>
- <script type="text/javascript" src="app/view/media/playerView.js"></script>
- <script type="text/javascript" src="app/view/media/sdlmediaView.js"></script>
-
- <!-- info views -->
- <script type="text/javascript" src="app/view/info/servicesView.js"></script>
- <script type="text/javascript" src="app/view/info/travelLinkView.js"></script>
- <script type="text/javascript" src="app/view/info/calendarView.js"></script>
- <script type="text/javascript" src="app/view/info/appsView.js"></script>
- <script type="text/javascript" src="app/view/info/devicelistView.js"></script>
- <script type="text/javascript" src="app/view/info/nonMediaView.js"></script>
-
- <script type="text/javascript" src="app/view/homeView.js"></script>
- <script type="text/javascript" src="app/view/mediaView.js"></script>
- <script type="text/javascript" src="app/view/infoView.js"></script>
- <script type="text/javascript" src="app/view/climateView.js"></script>
- <script type="text/javascript" src="app/view/phoneView.js"></script>
- <script type="text/javascript" src="app/view/navigationView.js"></script>
- <script type="text/javascript" src="app/view/settingsView.js"></script>
-
- <!-- home views -->
- <script type="text/javascript" src="app/view/home/controlButtons.js"></script>
-
- <script type="text/javascript" src="app/view/home/topControls.js"></script>
- <script type="text/javascript" src="app/view/home/bottomControls.js"></script>
- <script type="text/javascript" src="app/view/home/statusMediaView.js"></script>
- <script type="text/javascript" src="app/view/home/statusPhoneView.js"></script>
- <script type="text/javascript" src="app/view/home/statusInfoView.js"></script>
- <script type="text/javascript" src="app/view/home/statusNavigationView.js"></script>
- <script type="text/javascript" src="app/view/home/statusClimateView.js"></script>
- <!-- SDL views -->
- <script type="text/javascript" src="app/view/sdl/shared/AbstractView.js"></script>
- <script type="text/javascript" src="app/view/sdl/shared/interactionChoicesView.js"></script>
- <script type="text/javascript" src="app/view/sdl/shared/sliderView.js"></script>
- <script type="text/javascript" src="app/view/sdl/shared/optionsView.js"></script>
- <script type="text/javascript" src="app/view/sdl/shared/scrollableMessage.js"></script>
- <script type="text/javascript" src="app/view/sdl/shared/turnByTurnView.js"></script>
- <script type="text/javascript" src="app/view/sdl/shared/tbtTurnList.js"></script>
- <script type="text/javascript" src="app/view/sdl/TTSPopUp.js"></script>
- <script type="text/javascript" src="app/view/sdl/AlertPopUp.js"></script>
- <script type="text/javascript" src="app/view/sdl/AlertManeuverPopUp.js"></script>
- <script type="text/javascript" src="app/view/sdl/AudioPassThruPopUp.js"></script>
- <script type="text/javascript" src="app/view/sdl/VRPopUp.js"></script>
- <script type="text/javascript" src="app/view/sdl/VehicleInfoView.js"></script>
- <script type="text/javascript" src="app/view/sdl/tbtClientStateView.js"></script>
- <script type="text/javascript" src="app/view/sdl/driverDistraction.js"></script>
-
-
- <script type="text/javascript" src="app/StateManager.js"></script>
-
- <!-- STATE MACHINE -->
- <script type="text/javascript" src="app/AppViews.js"></script>
-
-
- <!-- Big Images Preloader block -->
- <div id="preloader">
- </div>
-
-
- </body>
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" ontouchmove="event.preventDefault();"><html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>Ford Smart Device HMI</title>
+ <!--Styles-->
+ <link rel="stylesheet" type="text/css" href="css/buttonControls.css" />
+ <link rel="stylesheet" type="text/css" href="css/general.css" />
+ <link rel="stylesheet" type="text/css" href="css/navigation.css" />
+ <link rel="stylesheet" type="text/css" href="css/phone.css" />
+ <link rel="stylesheet" type="text/css" href="css/info.css" />
+ <link rel="stylesheet" type="text/css" href="css/media.css" />
+ <link rel="stylesheet" type="text/css" href="css/sdl.css" />
+
+ <!--Libs-->
+
+ <script type="text/javascript" src="lib/handlebars-1.0.0.beta.6.js"></script>
+
+ <!-- RELEASE's min versions -->
+
+ <script type="text/javascript" src="lib/jquery-1.7.2.min.js"></script>
+ <script type="text/javascript" src="lib/ember-1.0.pre.min.js"></script>
+ <script type="text/javascript" src="lib/iscroll-lite.js"></script>
+
+
+ </head>
+ <body ontouchmove="event.preventDefault();">
+
+
+ <script type="text/javascript" src="app/Flags.js"></script>
+
+ <!-- Framework -->
+ <script type="text/javascript" src="ffw/Framework.js"></script>
+ <script type="text/javascript" src="ffw/WebSocket.js"></script>
+ <script type="text/javascript" src="ffw/RPCObserver.js"></script>
+ <script type="text/javascript" src="ffw/RPCClient.js"></script>
+ <script type="text/javascript" src="ffw/ButtonsRPC.js"></script>
+ <script type="text/javascript" src="ffw/UIRPC.js"></script>
+ <script type="text/javascript" src="ffw/NavigationRPC.js"></script>
+ <script type="text/javascript" src="ffw/TTSRPC.js"></script>
+ <script type="text/javascript" src="ffw/VRRPC.js"></script>
+ <script type="text/javascript" src="ffw/VehicleInfoRPC.js"></script>
+ <script type="text/javascript" src="ffw/BasicCommunicationRPC.js"></script>
+
+ <!-- APP -->
+ <script type="text/javascript" src="app/SDLApp.js"></script>
+ <!-- locales -->
+ <script type="text/javascript" src="locale/eng.js"></script>
+ <script type="text/javascript" src="locale/locale.js"></script>
+ <script type="text/javascript" src="app/view/WarningView.js"></script>
+
+ <script type="text/x-handlebars">
+ {{view SDL.warningView}}
+ </script>
+
+ <!-- UI controlls -->
+ <script type="text/javascript" src="app/controlls/Button.js"></script>
+ <script type="text/javascript" src="app/controlls/Label.js"></script>
+ <script type="text/javascript" src="app/controlls/ScrollBar.js"></script>
+ <script type="text/javascript" src="app/controlls/List.js"></script>
+ <script type="text/javascript" src="app/controlls/Indicator.js"></script>
+ <script type="text/javascript" src="app/controlls/QWERTYLayout.js"></script>
+ <script type="text/javascript" src="app/controlls/QWERTZLayout.js"></script>
+ <script type="text/javascript" src="app/controlls/AZERTYLayout.js"></script>
+ <script type="text/javascript" src="app/controlls/MenuList.js"></script>
+ <script type="text/javascript" src="app/controlls/ScrollableText.js"></script>
+
+ <!-- utils -->
+ <script type="text/javascript" src="app/util/Audio.js"></script>
+ <script type="text/javascript" src="app/util/StreamAudio.js"></script>
+
+ <!-- Models -->
+
+ <script type="text/javascript" src="app/model/media/CDModel.js"></script>
+
+ <script type="text/javascript" src="app/model/PhoneModel.js"></script>
+
+ <!-- SDL models -->
+ <script type="text/javascript" src="app/model/sdl/VehicleInfoModel.js"></script>
+ <script type="text/javascript" src="app/model/sdl/AppModel.js"></script>
+ <script type="text/javascript" src="app/model/sdl/NonMediaModel.js"></script>
+ <script type="text/javascript" src="app/model/sdl/MediaModel.js"></script>
+ <script type="text/javascript" src="app/model/sdl/Model.js"></script>
+ <!-- SDL models END -->
+
+ <!-- Controllers -->
+ <!--script type="text/javascript" src="app/controller/AppController.js"></script-->
+ <script type="text/javascript" src="app/controller/MediaController.js"></script>
+ <script type="text/javascript" src="app/controller/PhoneController.js"></script>
+ <script type="text/javascript" src="app/controller/InfoController.js"></script>
+
+ <script type="text/javascript" src="app/controller/sdl/Controller.js"></script>
+ <script type="text/javascript" src="app/controller/sdl/RPCController.js"></script>
+ <script type="text/javascript" src="app/controller/sdl/AppController.js"></script>
+ <script type="text/javascript" src="app/controller/sdl/NonMediaController.js"></script>
+ <script type="text/javascript" src="app/controller/sdl/MediaController.js"></script>
+
+ <!-- Mixins -->
+ <script type="text/javascript" src="app/mixins/PresetEvents.js"></script>
+ <script type="text/javascript" src="app/mixins/PresetEventCustom.js"></script>
+
+ <!-- Views -->
+
+ <!-- phone views -->
+ <script type="text/javascript" src="app/view/phone/dialpadView.js"></script>
+
+ <!-- media views -->
+ <script type="text/javascript" src="app/view/media/sdl/controllsView.js"></script>
+ <script type="text/javascript" src="app/view/media/common/LeftMenuView.js"></script>
+ <script type="text/javascript" src="app/view/media/playerView.js"></script>
+ <script type="text/javascript" src="app/view/media/sdlmediaView.js"></script>
+
+ <!-- info views -->
+ <script type="text/javascript" src="app/view/info/servicesView.js"></script>
+ <script type="text/javascript" src="app/view/info/travelLinkView.js"></script>
+ <script type="text/javascript" src="app/view/info/calendarView.js"></script>
+ <script type="text/javascript" src="app/view/info/appsView.js"></script>
+ <script type="text/javascript" src="app/view/info/devicelistView.js"></script>
+ <script type="text/javascript" src="app/view/info/nonMediaView.js"></script>
+
+ <script type="text/javascript" src="app/view/homeView.js"></script>
+ <script type="text/javascript" src="app/view/mediaView.js"></script>
+ <script type="text/javascript" src="app/view/infoView.js"></script>
+ <script type="text/javascript" src="app/view/climateView.js"></script>
+ <script type="text/javascript" src="app/view/phoneView.js"></script>
+ <script type="text/javascript" src="app/view/navigationView.js"></script>
+ <script type="text/javascript" src="app/view/settingsView.js"></script>
+ <script type="text/javascript" src="app/view/navigationApp/baseNavigationView.js"></script>
+ <script type="text/javascript" src="app/view/navigationAppView.js"></script>
+
+ <!-- home views -->
+ <script type="text/javascript" src="app/view/home/controlButtons.js"></script>
+
+ <script type="text/javascript" src="app/view/home/topControls.js"></script>
+ <script type="text/javascript" src="app/view/home/bottomControls.js"></script>
+ <script type="text/javascript" src="app/view/home/statusMediaView.js"></script>
+ <script type="text/javascript" src="app/view/home/statusPhoneView.js"></script>
+ <script type="text/javascript" src="app/view/home/statusInfoView.js"></script>
+ <script type="text/javascript" src="app/view/home/statusNavigationView.js"></script>
+ <script type="text/javascript" src="app/view/home/statusClimateView.js"></script>
+ <!-- SDL views -->
+ <script type="text/javascript" src="app/view/sdl/shared/AbstractView.js"></script>
+ <script type="text/javascript" src="app/view/sdl/shared/interactionChoicesView.js"></script>
+ <script type="text/javascript" src="app/view/sdl/shared/sliderView.js"></script>
+ <script type="text/javascript" src="app/view/sdl/shared/optionsView.js"></script>
+ <script type="text/javascript" src="app/view/sdl/shared/scrollableMessage.js"></script>
+ <script type="text/javascript" src="app/view/sdl/shared/turnByTurnView.js"></script>
+ <script type="text/javascript" src="app/view/sdl/shared/tbtTurnList.js"></script>
+ <script type="text/javascript" src="app/view/sdl/shared/keyboard.js"></script>
+ <script type="text/javascript" src="app/view/sdl/TTSPopUp.js"></script>
+ <script type="text/javascript" src="app/view/sdl/AlertPopUp.js"></script>
+ <script type="text/javascript" src="app/view/sdl/AudioPassThruPopUp.js"></script>
+ <script type="text/javascript" src="app/view/sdl/VRPopUp.js"></script>
+ <script type="text/javascript" src="app/view/sdl/VehicleInfoView.js"></script>
+ <script type="text/javascript" src="app/view/sdl/VRHelpListView.js"></script>
+ <script type="text/javascript" src="app/view/sdl/tbtClientStateView.js"></script>
+ <script type="text/javascript" src="app/view/sdl/driverDistraction.js"></script>
+ <script type="text/javascript" src="app/view/sdl/ExitAppView.js"></script>
+
+
+
+ <script type="text/javascript" src="app/StateManager.js"></script>
+
+ <!-- STATE MACHINE -->
+ <script type="text/javascript" src="app/AppViews.js"></script>
+
+
+ <!-- Big Images Preloader block -->
+ <div id="preloader">
+ </div>
+
+
+ </body>
</html> \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/lib/ember-1.0.pre.js b/SDL_Core/src/components/HMI/lib/ember-1.0.pre.js
index 1eb78c2b4..dc2cb8447 100755..100644
--- a/SDL_Core/src/components/HMI/lib/ember-1.0.pre.js
+++ b/SDL_Core/src/components/HMI/lib/ember-1.0.pre.js
@@ -1,20709 +1,20709 @@
-// Version: v1.0.pre
-// Last commit: 7955b85 (2012-08-03 14:50:17 -0700)
-
-
-(function() {
-/*global __fail__*/
-
-if ('undefined' === typeof Ember) {
- Ember = {};
-
- if ('undefined' !== typeof window) {
- window.Em = window.Ember = Em = Ember;
- }
-}
-
-Ember.ENV = 'undefined' === typeof ENV ? {} : ENV;
-
-if (!('MANDATORY_SETTER' in Ember.ENV)) {
- Ember.ENV.MANDATORY_SETTER = true; // default to true for debug dist
-}
-
-/**
- Define an assertion that will throw an exception if the condition is not
- met. Ember build tools will remove any calls to Ember.assert() when
- doing a production build. Example:
-
- // Test for truthiness
- Ember.assert('Must pass a valid object', obj);
- // Fail unconditionally
- Ember.assert('This code path should never be run')
-
- @static
- @function
- @param {String} desc
- A description of the assertion. This will become the text of the Error
- thrown if the assertion fails.
-
- @param {Boolean} test
- Must be truthy for the assertion to pass. If falsy, an exception will be
- thrown.
-*/
-Ember.assert = function(desc, test) {
- if (!test) throw new Error("assertion failed: "+desc);
-};
-
-
-/**
- Display a warning with the provided message. Ember build tools will
- remove any calls to Ember.warn() when doing a production build.
-
- @static
- @function
- @param {String} message
- A warning to display.
-
- @param {Boolean} test
- An optional boolean. If falsy, the warning will be displayed.
-*/
-Ember.warn = function(message, test) {
- if (!test) {
- Ember.Logger.warn("WARNING: "+message);
- if ('trace' in Ember.Logger) Ember.Logger.trace();
- }
-};
-
-/**
- Display a deprecation warning with the provided message and a stack trace
- (Chrome and Firefox only). Ember build tools will remove any calls to
- Ember.deprecate() when doing a production build.
-
- @static
- @function
- @param {String} message
- A description of the deprecation.
-
- @param {Boolean} test
- An optional boolean. If falsy, the deprecation will be displayed.
-*/
-Ember.deprecate = function(message, test) {
- if (Ember && Ember.TESTING_DEPRECATION) { return; }
-
- if (arguments.length === 1) { test = false; }
- if (test) { return; }
-
- if (Ember && Ember.ENV.RAISE_ON_DEPRECATION) { throw new Error(message); }
-
- var error;
-
- // When using new Error, we can't do the arguments check for Chrome. Alternatives are welcome
- try { __fail__.fail(); } catch (e) { error = e; }
-
- if (Ember.LOG_STACKTRACE_ON_DEPRECATION && error.stack) {
- var stack, stackStr = '';
- if (error['arguments']) {
- // Chrome
- stack = error.stack.replace(/^\s+at\s+/gm, '').
- replace(/^([^\(]+?)([\n$])/gm, '{anonymous}($1)$2').
- replace(/^Object.<anonymous>\s*\(([^\)]+)\)/gm, '{anonymous}($1)').split('\n');
- stack.shift();
- } else {
- // Firefox
- stack = error.stack.replace(/(?:\n@:0)?\s+$/m, '').
- replace(/^\(/gm, '{anonymous}(').split('\n');
- }
-
- stackStr = "\n " + stack.slice(2).join("\n ");
- message = message + stackStr;
- }
-
- Ember.Logger.warn("DEPRECATION: "+message);
-};
-
-
-
-/**
- Display a deprecation warning with the provided message and a stack trace
- (Chrome and Firefox only) when the wrapped method is called.
-
- Ember build tools will not remove calls to Ember.deprecateFunc(), though
- no warnings will be shown in production.
-
- @static
- @function
- @param {String} message
- A description of the deprecation.
-
- @param {Function} func
- The function to be deprecated.
-*/
-Ember.deprecateFunc = function(message, func) {
- return function() {
- Ember.deprecate(message);
- return func.apply(this, arguments);
- };
-};
-
-
-window.ember_assert = Ember.deprecateFunc("ember_assert is deprecated. Please use Ember.assert instead.", Ember.assert);
-window.ember_warn = Ember.deprecateFunc("ember_warn is deprecated. Please use Ember.warn instead.", Ember.warn);
-window.ember_deprecate = Ember.deprecateFunc("ember_deprecate is deprecated. Please use Ember.deprecate instead.", Ember.deprecate);
-window.ember_deprecateFunc = Ember.deprecateFunc("ember_deprecateFunc is deprecated. Please use Ember.deprecateFunc instead.", Ember.deprecateFunc);
-
-})();
-
-// Version: v1.0.pre
-// Last commit: 7955b85 (2012-08-03 14:50:17 -0700)
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Metal
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/*globals Em:true ENV */
-
-if ('undefined' === typeof Ember) {
- // Create core object. Make it act like an instance of Ember.Namespace so that
- // objects assigned to it are given a sane string representation.
- Ember = {};
-}
-
-/**
- @namespace
- @name Ember
- @version 1.0.pre
-
- All Ember methods and functions are defined inside of this namespace.
- You generally should not add new properties to this namespace as it may be
- overwritten by future versions of Ember.
-
- You can also use the shorthand "Em" instead of "Ember".
-
- Ember-Runtime is a framework that provides core functions for
- Ember including cross-platform functions, support for property
- observing and objects. Its focus is on small size and performance. You can
- use this in place of or along-side other cross-platform libraries such as
- jQuery.
-
- The core Runtime framework is based on the jQuery API with a number of
- performance optimizations.
-*/
-
-// aliases needed to keep minifiers from removing the global context
-if ('undefined' !== typeof window) {
- window.Em = window.Ember = Em = Ember;
-}
-
-// Make sure these are set whether Ember was already defined or not
-
-Ember.isNamespace = true;
-
-Ember.toString = function() { return "Ember"; };
-
-
-/**
- @static
- @type String
- @default '1.0.pre'
- @constant
-*/
-Ember.VERSION = '1.0.pre';
-
-/**
- @static
- @type Hash
- @constant
-
- Standard environmental variables. You can define these in a global `ENV`
- variable before loading Ember to control various configuration
- settings.
-*/
-Ember.ENV = Ember.ENV || ('undefined' === typeof ENV ? {} : ENV);
-
-Ember.config = Ember.config || {};
-
-// ..........................................................
-// BOOTSTRAP
-//
-
-/**
- @static
- @type Boolean
- @default true
- @constant
-
- Determines whether Ember should enhances some built-in object
- prototypes to provide a more friendly API. If enabled, a few methods
- will be added to Function, String, and Array. Object.prototype will not be
- enhanced, which is the one that causes most troubles for people.
-
- In general we recommend leaving this option set to true since it rarely
- conflicts with other code. If you need to turn it off however, you can
- define an ENV.EXTEND_PROTOTYPES config to disable it.
-*/
-Ember.EXTEND_PROTOTYPES = (Ember.ENV.EXTEND_PROTOTYPES !== false);
-
-/**
- @static
- @type Boolean
- @default true
- @constant
-
- Determines whether Ember logs a full stack trace during deprecation warnings
-*/
-Ember.LOG_STACKTRACE_ON_DEPRECATION = (Ember.ENV.LOG_STACKTRACE_ON_DEPRECATION !== false);
-
-/**
- @static
- @type Boolean
- @default Ember.EXTEND_PROTOTYPES
- @constant
-
- Determines whether Ember should add ECMAScript 5 shims to older browsers.
-*/
-Ember.SHIM_ES5 = (Ember.ENV.SHIM_ES5 === false) ? false : Ember.EXTEND_PROTOTYPES;
-
-
-/**
- @static
- @type Boolean
- @default true
- @constant
-
- Determines whether computed properties are cacheable by default.
- This option will be removed for the 1.1 release.
-
- When caching is enabled by default, you can use `volatile()` to disable
- caching on individual computed properties.
-*/
-Ember.CP_DEFAULT_CACHEABLE = (Ember.ENV.CP_DEFAULT_CACHEABLE !== false);
-
-/**
- @static
- @type Boolean
- @default true
- @constant
-
- Determines whether views render their templates using themselves
- as the context, or whether it is inherited from the parent. This option
- will be removed in the 1.1 release.
-
- If you need to update your application to use the new context rules, simply
- prefix property access with `view.`:
-
- // Before:
- {{#each App.photosController}}
- Photo Title: {{title}}
- {{#view App.InfoView contentBinding="this"}}
- {{content.date}}
- {{content.cameraType}}
- {{otherViewProperty}}
- {{/view}}
- {{/each}}
-
- // After:
- {{#each App.photosController}}
- Photo Title: {{title}}
- {{#view App.InfoView}}
- {{date}}
- {{cameraType}}
- {{view.otherViewProperty}}
- {{/view}}
- {{/each}}
-*/
-Ember.VIEW_PRESERVES_CONTEXT = (Ember.ENV.VIEW_PRESERVES_CONTEXT !== false);
-
-/**
- Empty function. Useful for some operations.
-
- @returns {Object}
- @private
-*/
-Ember.K = function() { return this; };
-
-/**
- @namespace
- @name window
- @description The global window object
-*/
-
-
-// Stub out the methods defined by the ember-debug package in case it's not loaded
-
-if ('undefined' === typeof Ember.assert) { Ember.assert = Ember.K; }
-if ('undefined' === typeof Ember.warn) { Ember.warn = Ember.K; }
-if ('undefined' === typeof Ember.deprecate) { Ember.deprecate = Ember.K; }
-if ('undefined' === typeof Ember.deprecateFunc) {
- Ember.deprecateFunc = function(_, func) { return func; };
-}
-
-// These are deprecated but still supported
-
-if ('undefined' === typeof ember_assert) { window.ember_assert = Ember.K; }
-if ('undefined' === typeof ember_warn) { window.ember_warn = Ember.K; }
-if ('undefined' === typeof ember_deprecate) { window.ember_deprecate = Ember.K; }
-if ('undefined' === typeof ember_deprecateFunc) {
- /** @private */
- window.ember_deprecateFunc = function(_, func) { return func; };
-}
-
-
-// ..........................................................
-// LOGGER
-//
-
-/**
- @class
-
- Inside Ember-Metal, simply uses the window.console object.
- Override this to provide more robust logging functionality.
-*/
-Ember.Logger = window.console || { log: Ember.K, warn: Ember.K, error: Ember.K, info: Ember.K, debug: Ember.K };
-
-})();
-
-
-
-(function() {
-/*jshint newcap:false*/
-
-// NOTE: There is a bug in jshint that doesn't recognize `Object()` without `new`
-// as being ok unless both `newcap:false` and not `use strict`.
-// https://github.com/jshint/jshint/issues/392
-
-// Testing this is not ideal, but we want to use native functions
-// if available, but not to use versions created by libraries like Prototype
-/** @private */
-var isNativeFunc = function(func) {
- // This should probably work in all browsers likely to have ES5 array methods
- return func && Function.prototype.toString.call(func).indexOf('[native code]') > -1;
-};
-
-// From: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/map
-/** @private */
-var arrayMap = isNativeFunc(Array.prototype.map) ? Array.prototype.map : function(fun /*, thisp */) {
- //"use strict";
-
- if (this === void 0 || this === null) {
- throw new TypeError();
- }
-
- var t = Object(this);
- var len = t.length >>> 0;
- if (typeof fun !== "function") {
- throw new TypeError();
- }
-
- var res = new Array(len);
- var thisp = arguments[1];
- for (var i = 0; i < len; i++) {
- if (i in t) {
- res[i] = fun.call(thisp, t[i], i, t);
- }
- }
-
- return res;
-};
-
-// From: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/foreach
-/** @private */
-var arrayForEach = isNativeFunc(Array.prototype.forEach) ? Array.prototype.forEach : function(fun /*, thisp */) {
- //"use strict";
-
- if (this === void 0 || this === null) {
- throw new TypeError();
- }
-
- var t = Object(this);
- var len = t.length >>> 0;
- if (typeof fun !== "function") {
- throw new TypeError();
- }
-
- var thisp = arguments[1];
- for (var i = 0; i < len; i++) {
- if (i in t) {
- fun.call(thisp, t[i], i, t);
- }
- }
-};
-
-/** @private */
-var arrayIndexOf = isNativeFunc(Array.prototype.indexOf) ? Array.prototype.indexOf : function (obj, fromIndex) {
- if (fromIndex === null || fromIndex === undefined) { fromIndex = 0; }
- else if (fromIndex < 0) { fromIndex = Math.max(0, this.length + fromIndex); }
- for (var i = fromIndex, j = this.length; i < j; i++) {
- if (this[i] === obj) { return i; }
- }
- return -1;
-};
-
-Ember.ArrayPolyfills = {
- map: arrayMap,
- forEach: arrayForEach,
- indexOf: arrayIndexOf
-};
-
-var utils = Ember.EnumerableUtils = {
- map: function(obj, callback, thisArg) {
- return obj.map ? obj.map.call(obj, callback, thisArg) : arrayMap.call(obj, callback, thisArg);
- },
-
- forEach: function(obj, callback, thisArg) {
- return obj.forEach ? obj.forEach.call(obj, callback, thisArg) : arrayForEach.call(obj, callback, thisArg);
- },
-
- indexOf: function(obj, element, index) {
- return obj.indexOf ? obj.indexOf.call(obj, element, index) : arrayIndexOf.call(obj, element, index);
- },
-
- indexesOf: function(obj, elements) {
- return elements === undefined ? [] : utils.map(elements, function(item) {
- return utils.indexOf(obj, item);
- });
- },
-
- removeObject: function(array, item) {
- var index = utils.indexOf(array, item);
- if (index !== -1) { array.splice(index, 1); }
- }
-};
-
-
-if (Ember.SHIM_ES5) {
- if (!Array.prototype.map) {
- /** @private */
- Array.prototype.map = arrayMap;
- }
-
- if (!Array.prototype.forEach) {
- /** @private */
- Array.prototype.forEach = arrayForEach;
- }
-
- if (!Array.prototype.indexOf) {
- /** @private */
- Array.prototype.indexOf = arrayIndexOf;
- }
-}
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Metal
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/*globals Node */
-/**
- @class
-
- Platform specific methods and feature detectors needed by the framework.
-
- @name Ember.platform
-*/
-var platform = Ember.platform = {};
-
-/**
- Identical to Object.create(). Implements if not available natively.
- @memberOf Ember.platform
- @name create
-*/
-Ember.create = Object.create;
-
-if (!Ember.create) {
- /** @private */
- var K = function() {};
-
- Ember.create = function(obj, props) {
- K.prototype = obj;
- obj = new K();
- if (props) {
- K.prototype = obj;
- for (var prop in props) {
- K.prototype[prop] = props[prop].value;
- }
- obj = new K();
- }
- K.prototype = null;
-
- return obj;
- };
-
- Ember.create.isSimulated = true;
-}
-
-/** @private */
-var defineProperty = Object.defineProperty;
-var canRedefineProperties, canDefinePropertyOnDOM;
-
-// Catch IE8 where Object.defineProperty exists but only works on DOM elements
-if (defineProperty) {
- try {
- defineProperty({}, 'a',{get:function(){}});
- } catch (e) {
- /** @private */
- defineProperty = null;
- }
-}
-
-if (defineProperty) {
- // Detects a bug in Android <3.2 where you cannot redefine a property using
- // Object.defineProperty once accessors have already been set.
- /** @private */
- canRedefineProperties = (function() {
- var obj = {};
-
- defineProperty(obj, 'a', {
- configurable: true,
- enumerable: true,
- get: function() { },
- set: function() { }
- });
-
- defineProperty(obj, 'a', {
- configurable: true,
- enumerable: true,
- writable: true,
- value: true
- });
-
- return obj.a === true;
- })();
-
- // This is for Safari 5.0, which supports Object.defineProperty, but not
- // on DOM nodes.
- /** @private */
- canDefinePropertyOnDOM = (function(){
- try {
- defineProperty(document.createElement('div'), 'definePropertyOnDOM', {});
- return true;
- } catch(e) { }
-
- return false;
- })();
-
- if (!canRedefineProperties) {
- /** @private */
- defineProperty = null;
- } else if (!canDefinePropertyOnDOM) {
- /** @private */
- defineProperty = function(obj, keyName, desc){
- var isNode;
-
- if (typeof Node === "object") {
- isNode = obj instanceof Node;
- } else {
- isNode = typeof obj === "object" && typeof obj.nodeType === "number" && typeof obj.nodeName === "string";
- }
-
- if (isNode) {
- // TODO: Should we have a warning here?
- return (obj[keyName] = desc.value);
- } else {
- return Object.defineProperty(obj, keyName, desc);
- }
- };
- }
-}
-
-/**
- Identical to Object.defineProperty(). Implements as much functionality
- as possible if not available natively.
-
- @memberOf Ember.platform
- @name defineProperty
- @param {Object} obj The object to modify
- @param {String} keyName property name to modify
- @param {Object} desc descriptor hash
- @returns {void}
-*/
-platform.defineProperty = defineProperty;
-
-/**
- Set to true if the platform supports native getters and setters.
-
- @memberOf Ember.platform
- @name hasPropertyAccessors
-*/
-platform.hasPropertyAccessors = true;
-
-if (!platform.defineProperty) {
- platform.hasPropertyAccessors = false;
-
- platform.defineProperty = function(obj, keyName, desc) {
- if (!desc.get) { obj[keyName] = desc.value; }
- };
-
- platform.defineProperty.isSimulated = true;
-}
-
-if (Ember.ENV.MANDATORY_SETTER && !platform.hasPropertyAccessors) {
- Ember.ENV.MANDATORY_SETTER = false;
-}
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Metal
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var o_defineProperty = Ember.platform.defineProperty,
- o_create = Ember.create,
- // Used for guid generation...
- GUID_KEY = '__ember'+ (+ new Date()),
- uuid = 0,
- numberCache = [],
- stringCache = {};
-
-var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
-
-/**
- @private
- @static
- @type String
- @constant
-
- A unique key used to assign guids and other private metadata to objects.
- If you inspect an object in your browser debugger you will often see these.
- They can be safely ignored.
-
- On browsers that support it, these properties are added with enumeration
- disabled so they won't show up when you iterate over your properties.
-*/
-Ember.GUID_KEY = GUID_KEY;
-
-var GUID_DESC = {
- writable: false,
- configurable: false,
- enumerable: false,
- value: null
-};
-
-/**
- @private
-
- Generates a new guid, optionally saving the guid to the object that you
- pass in. You will rarely need to use this method. Instead you should
- call Ember.guidFor(obj), which return an existing guid if available.
-
- @param {Object} obj
- Optional object the guid will be used for. If passed in, the guid will
- be saved on the object and reused whenever you pass the same object
- again.
-
- If no object is passed, just generate a new guid.
-
- @param {String} prefix
- Optional prefix to place in front of the guid. Useful when you want to
- separate the guid into separate namespaces.
-
- @returns {String} the guid
-*/
-Ember.generateGuid = function generateGuid(obj, prefix) {
- if (!prefix) prefix = 'ember';
- var ret = (prefix + (uuid++));
- if (obj) {
- GUID_DESC.value = ret;
- o_defineProperty(obj, GUID_KEY, GUID_DESC);
- }
- return ret ;
-};
-
-/**
- @private
-
- Returns a unique id for the object. If the object does not yet have
- a guid, one will be assigned to it. You can call this on any object,
- Ember.Object-based or not, but be aware that it will add a _guid property.
-
- You can also use this method on DOM Element objects.
-
- @method
- @param obj {Object} any object, string, number, Element, or primitive
- @returns {String} the unique guid for this instance.
-*/
-Ember.guidFor = function guidFor(obj) {
-
- // special cases where we don't want to add a key to object
- if (obj === undefined) return "(undefined)";
- if (obj === null) return "(null)";
-
- var cache, ret;
- var type = typeof obj;
-
- // Don't allow prototype changes to String etc. to change the guidFor
- switch(type) {
- case 'number':
- ret = numberCache[obj];
- if (!ret) ret = numberCache[obj] = 'nu'+obj;
- return ret;
-
- case 'string':
- ret = stringCache[obj];
- if (!ret) ret = stringCache[obj] = 'st'+(uuid++);
- return ret;
-
- case 'boolean':
- return obj ? '(true)' : '(false)';
-
- default:
- if (obj[GUID_KEY]) return obj[GUID_KEY];
- if (obj === Object) return '(Object)';
- if (obj === Array) return '(Array)';
- ret = 'ember'+(uuid++);
- GUID_DESC.value = ret;
- o_defineProperty(obj, GUID_KEY, GUID_DESC);
- return ret;
- }
-};
-
-// ..........................................................
-// META
-//
-
-var META_DESC = {
- writable: true,
- configurable: false,
- enumerable: false,
- value: null
-};
-
-var META_KEY = Ember.GUID_KEY+'_meta';
-
-/**
- The key used to store meta information on object for property observing.
-
- @static
- @type String
-*/
-Ember.META_KEY = META_KEY;
-
-// Placeholder for non-writable metas.
-var EMPTY_META = {
- descs: {},
- watching: {}
-};
-
-if (MANDATORY_SETTER) { EMPTY_META.values = {}; }
-
-Ember.EMPTY_META = EMPTY_META;
-
-if (Object.freeze) Object.freeze(EMPTY_META);
-
-var isDefinePropertySimulated = Ember.platform.defineProperty.isSimulated;
-
-function Meta(obj) {
- this.descs = {};
- this.watching = {};
- this.cache = {};
- this.source = obj;
-}
-
-if (isDefinePropertySimulated) {
- // on platforms that don't support enumerable false
- // make meta fail jQuery.isPlainObject() to hide from
- // jQuery.extend() by having a property that fails
- // hasOwnProperty check.
- Meta.prototype.__preventPlainObject__ = true;
-}
-
-/**
- @private
- @function
-
- Retrieves the meta hash for an object. If 'writable' is true ensures the
- hash is writable for this object as well.
-
- The meta object contains information about computed property descriptors as
- well as any watched properties and other information. You generally will
- not access this information directly but instead work with higher level
- methods that manipulate this hash indirectly.
-
- @param {Object} obj
- The object to retrieve meta for
-
- @param {Boolean} writable
- Pass false if you do not intend to modify the meta hash, allowing the
- method to avoid making an unnecessary copy.
-
- @returns {Hash}
-*/
-Ember.meta = function meta(obj, writable) {
-
- var ret = obj[META_KEY];
- if (writable===false) return ret || EMPTY_META;
-
- if (!ret) {
- if (!isDefinePropertySimulated) o_defineProperty(obj, META_KEY, META_DESC);
-
- ret = new Meta(obj);
-
- if (MANDATORY_SETTER) { ret.values = {}; }
-
- obj[META_KEY] = ret;
-
- // make sure we don't accidentally try to create constructor like desc
- ret.descs.constructor = null;
-
- } else if (ret.source !== obj) {
- if (!isDefinePropertySimulated) o_defineProperty(obj, META_KEY, META_DESC);
-
- ret = o_create(ret);
- ret.descs = o_create(ret.descs);
- ret.watching = o_create(ret.watching);
- ret.cache = {};
- ret.source = obj;
-
- if (MANDATORY_SETTER) { ret.values = o_create(ret.values); }
-
- obj[META_KEY] = ret;
- }
- return ret;
-};
-
-Ember.getMeta = function getMeta(obj, property) {
- var meta = Ember.meta(obj, false);
- return meta[property];
-};
-
-Ember.setMeta = function setMeta(obj, property, value) {
- var meta = Ember.meta(obj, true);
- meta[property] = value;
- return value;
-};
-
-/**
- @private
-
- In order to store defaults for a class, a prototype may need to create
- a default meta object, which will be inherited by any objects instantiated
- from the class's constructor.
-
- However, the properties of that meta object are only shallow-cloned,
- so if a property is a hash (like the event system's `listeners` hash),
- it will by default be shared across all instances of that class.
-
- This method allows extensions to deeply clone a series of nested hashes or
- other complex objects. For instance, the event system might pass
- ['listeners', 'foo:change', 'ember157'] to `prepareMetaPath`, which will
- walk down the keys provided.
-
- For each key, if the key does not exist, it is created. If it already
- exists and it was inherited from its constructor, the constructor's
- key is cloned.
-
- You can also pass false for `writable`, which will simply return
- undefined if `prepareMetaPath` discovers any part of the path that
- shared or undefined.
-
- @param {Object} obj The object whose meta we are examining
- @param {Array} path An array of keys to walk down
- @param {Boolean} writable whether or not to create a new meta
- (or meta property) if one does not already exist or if it's
- shared with its constructor
-*/
-Ember.metaPath = function metaPath(obj, path, writable) {
- var meta = Ember.meta(obj, writable), keyName, value;
-
- for (var i=0, l=path.length; i<l; i++) {
- keyName = path[i];
- value = meta[keyName];
-
- if (!value) {
- if (!writable) { return undefined; }
- value = meta[keyName] = { __ember_source__: obj };
- } else if (value.__ember_source__ !== obj) {
- if (!writable) { return undefined; }
- value = meta[keyName] = o_create(value);
- value.__ember_source__ = obj;
- }
-
- meta = value;
- }
-
- return value;
-};
-
-/**
- @private
-
- Wraps the passed function so that `this._super` will point to the superFunc
- when the function is invoked. This is the primitive we use to implement
- calls to super.
-
- @param {Function} func
- The function to call
-
- @param {Function} superFunc
- The super function.
-
- @returns {Function} wrapped function.
-*/
-Ember.wrap = function(func, superFunc) {
-
- function K() {}
-
- var newFunc = function() {
- var ret, sup = this._super;
- this._super = superFunc || K;
- ret = func.apply(this, arguments);
- this._super = sup;
- return ret;
- };
-
- newFunc.base = func;
- return newFunc;
-};
-
-/**
- Returns true if the passed object is an array or Array-like.
-
- Ember Array Protocol:
-
- - the object has an objectAt property
- - the object is a native Array
- - the object is an Object, and has a length property
-
- Unlike Ember.typeOf this method returns true even if the passed object is
- not formally array but appears to be array-like (i.e. implements Ember.Array)
-
- Ember.isArray(); // false
- Ember.isArray([]); // true
- Ember.isArray( Ember.ArrayProxy.create({ content: [] }) ); // true
-
- @param {Object} obj The object to test
- @returns {Boolean}
-*/
-Ember.isArray = function(obj) {
- if (!obj || obj.setInterval) { return false; }
- if (Array.isArray && Array.isArray(obj)) { return true; }
- if (Ember.Array && Ember.Array.detect(obj)) { return true; }
- if ((obj.length !== undefined) && 'object'===typeof obj) { return true; }
- return false;
-};
-
-/**
- Forces the passed object to be part of an array. If the object is already
- an array or array-like, returns the object. Otherwise adds the object to
- an array. If obj is null or undefined, returns an empty array.
-
- Ember.makeArray(); => []
- Ember.makeArray(null); => []
- Ember.makeArray(undefined); => []
- Ember.makeArray('lindsay'); => ['lindsay']
- Ember.makeArray([1,2,42]); => [1,2,42]
-
- var controller = Ember.ArrayProxy.create({ content: [] });
- Ember.makeArray(controller) === controller; => true
-
- @param {Object} obj the object
- @returns {Array}
-*/
-Ember.makeArray = function(obj) {
- if (obj === null || obj === undefined) { return []; }
- return Ember.isArray(obj) ? obj : [obj];
-};
-
-function canInvoke(obj, methodName) {
- return !!(obj && typeof obj[methodName] === 'function');
-}
-
-/**
- Checks to see if the `methodName` exists on the `obj`.
-
- @function
-
- @param {Object} obj The object to check for the method
- @param {String} methodName The method name to check for
-*/
-Ember.canInvoke = canInvoke;
-
-/**
- Checks to see if the `methodName` exists on the `obj`,
- and if it does, invokes it with the arguments passed.
-
- @function
-
- @param {Object} obj The object to check for the method
- @param {String} methodName The method name to check for
- @param {Array} args The arguments to pass to the method
-
- @returns {Boolean} true if the method does not return false
- @returns {Boolean} false otherwise
-*/
-Ember.tryInvoke = function(obj, methodName, args) {
- if (canInvoke(obj, methodName)) {
- return obj[methodName].apply(obj, args);
- }
-};
-
-})();
-
-
-
-(function() {
-/**
- JavaScript (before ES6) does not have a Map implementation. Objects,
- which are often used as dictionaries, may only have Strings as keys.
-
- Because Ember has a way to get a unique identifier for every object
- via `Ember.guidFor`, we can implement a performant Map with arbitrary
- keys. Because it is commonly used in low-level bookkeeping, Map is
- implemented as a pure JavaScript object for performance.
-
- This implementation follows the current iteration of the ES6 proposal
- for maps (http://wiki.ecmascript.org/doku.php?id=harmony:simple_maps_and_sets),
- with two exceptions. First, because we need our implementation to be
- pleasant on older browsers, we do not use the `delete` name (using
- `remove` instead). Second, as we do not have the luxury of in-VM
- iteration, we implement a forEach method for iteration.
-
- Map is mocked out to look like an Ember object, so you can do
- `Ember.Map.create()` for symmetry with other Ember classes.
-*/
-/** @private */
-var guidFor = Ember.guidFor,
- indexOf = Ember.ArrayPolyfills.indexOf;
-
-var copy = function(obj) {
- var output = {};
-
- for (var prop in obj) {
- if (obj.hasOwnProperty(prop)) { output[prop] = obj[prop]; }
- }
-
- return output;
-};
-
-var copyMap = function(original, newObject) {
- var keys = original.keys.copy(),
- values = copy(original.values);
-
- newObject.keys = keys;
- newObject.values = values;
-
- return newObject;
-};
-
-// This class is used internally by Ember.js and Ember Data.
-// Please do not use it at this time. We plan to clean it up
-// and add many tests soon.
-var OrderedSet = Ember.OrderedSet = function() {
- this.clear();
-};
-
-OrderedSet.create = function() {
- return new OrderedSet();
-};
-
-OrderedSet.prototype = {
- clear: function() {
- this.presenceSet = {};
- this.list = [];
- },
-
- add: function(obj) {
- var guid = guidFor(obj),
- presenceSet = this.presenceSet,
- list = this.list;
-
- if (guid in presenceSet) { return; }
-
- presenceSet[guid] = true;
- list.push(obj);
- },
-
- remove: function(obj) {
- var guid = guidFor(obj),
- presenceSet = this.presenceSet,
- list = this.list;
-
- delete presenceSet[guid];
-
- var index = indexOf.call(list, obj);
- if (index > -1) {
- list.splice(index, 1);
- }
- },
-
- isEmpty: function() {
- return this.list.length === 0;
- },
-
- forEach: function(fn, self) {
- // allow mutation during iteration
- var list = this.list.slice();
-
- for (var i = 0, j = list.length; i < j; i++) {
- fn.call(self, list[i]);
- }
- },
-
- toArray: function() {
- return this.list.slice();
- },
-
- copy: function() {
- var set = new OrderedSet();
-
- set.presenceSet = copy(this.presenceSet);
- set.list = this.list.slice();
-
- return set;
- }
-};
-
-/**
- A Map stores values indexed by keys. Unlike JavaScript's
- default Objects, the keys of a Map can be any JavaScript
- object.
-
- Internally, a Map has two data structures:
-
- `keys`: an OrderedSet of all of the existing keys
- `values`: a JavaScript Object indexed by the
- Ember.guidFor(key)
-
- When a key/value pair is added for the first time, we
- add the key to the `keys` OrderedSet, and create or
- replace an entry in `values`. When an entry is deleted,
- we delete its entry in `keys` and `values`.
-*/
-
-/** @private */
-var Map = Ember.Map = function() {
- this.keys = Ember.OrderedSet.create();
- this.values = {};
-};
-
-Map.create = function() {
- return new Map();
-};
-
-Map.prototype = {
- /**
- Retrieve the value associated with a given key.
-
- @param {anything} key
- @return {anything} the value associated with the key, or undefined
- */
- get: function(key) {
- var values = this.values,
- guid = guidFor(key);
-
- return values[guid];
- },
-
- /**
- Adds a value to the map. If a value for the given key has already been
- provided, the new value will replace the old value.
-
- @param {anything} key
- @param {anything} value
- */
- set: function(key, value) {
- var keys = this.keys,
- values = this.values,
- guid = guidFor(key);
-
- keys.add(key);
- values[guid] = value;
- },
-
- /**
- Removes a value from the map for an associated key.
-
- @param {anything} key
- @returns {Boolean} true if an item was removed, false otherwise
- */
- remove: function(key) {
- // don't use ES6 "delete" because it will be annoying
- // to use in browsers that are not ES6 friendly;
- var keys = this.keys,
- values = this.values,
- guid = guidFor(key),
- value;
-
- if (values.hasOwnProperty(guid)) {
- keys.remove(key);
- value = values[guid];
- delete values[guid];
- return true;
- } else {
- return false;
- }
- },
-
- /**
- Check whether a key is present.
-
- @param {anything} key
- @returns {Boolean} true if the item was present, false otherwise
- */
- has: function(key) {
- var values = this.values,
- guid = guidFor(key);
-
- return values.hasOwnProperty(guid);
- },
-
- /**
- Iterate over all the keys and values. Calls the function once
- for each key, passing in the key and value, in that order.
-
- The keys are guaranteed to be iterated over in insertion order.
-
- @param {Function} callback
- @param {anything} self if passed, the `this` value inside the
- callback. By default, `this` is the map.
- */
- forEach: function(callback, self) {
- var keys = this.keys,
- values = this.values;
-
- keys.forEach(function(key) {
- var guid = guidFor(key);
- callback.call(self, key, values[guid]);
- });
- },
-
- copy: function() {
- return copyMap(this, new Map());
- }
-};
-
-var MapWithDefault = Ember.MapWithDefault = function(options) {
- Map.call(this);
- this.defaultValue = options.defaultValue;
-};
-
-MapWithDefault.create = function(options) {
- if (options) {
- return new MapWithDefault(options);
- } else {
- return new Map();
- }
-};
-
-MapWithDefault.prototype = Ember.create(Map.prototype);
-
-MapWithDefault.prototype.get = function(key) {
- var hasValue = this.has(key);
-
- if (hasValue) {
- return Map.prototype.get.call(this, key);
- } else {
- var defaultValue = this.defaultValue(key);
- this.set(key, defaultValue);
- return defaultValue;
- }
-};
-
-MapWithDefault.prototype.copy = function() {
- return copyMap(this, new MapWithDefault({
- defaultValue: this.defaultValue
- }));
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Metal
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var META_KEY = Ember.META_KEY, get, set;
-
-var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
-
-/** @private */
-var IS_GLOBAL = /^([A-Z$]|([0-9][A-Z$]))/;
-var IS_GLOBAL_PATH = /^([A-Z$]|([0-9][A-Z$])).*[\.\*]/;
-var HAS_THIS = /^this[\.\*]/;
-var FIRST_KEY = /^([^\.\*]+)/;
-
-// ..........................................................
-// GET AND SET
-//
-// If we are on a platform that supports accessors we can get use those.
-// Otherwise simulate accessors by looking up the property directly on the
-// object.
-
-/** @private */
-get = function get(obj, keyName) {
- // Helpers that operate with 'this' within an #each
- if (keyName === '') {
- return obj;
- }
-
- if (!keyName && 'string'===typeof obj) {
- keyName = obj;
- obj = null;
- }
-
- if (!obj || keyName.indexOf('.') !== -1) {
- return getPath(obj, keyName);
- }
-
- Ember.assert("You need to provide an object and key to `get`.", !!obj && keyName);
-
- var meta = obj[META_KEY], desc = meta && meta.descs[keyName], ret;
- if (desc) {
- return desc.get(obj, keyName);
- } else {
- if (MANDATORY_SETTER && meta && meta.watching[keyName] > 0) {
- ret = meta.values[keyName];
- } else {
- ret = obj[keyName];
- }
-
- if (ret === undefined &&
- 'object' === typeof obj && !(keyName in obj) && 'function' === typeof obj.unknownProperty) {
- return obj.unknownProperty(keyName);
- }
-
- return ret;
- }
-};
-
-/** @private */
-set = function set(obj, keyName, value, tolerant) {
- if (typeof obj === 'string') {
- Ember.assert("Path '" + obj + "' must be global if no obj is given.", IS_GLOBAL.test(obj));
- value = keyName;
- keyName = obj;
- obj = null;
- }
-
- if (!obj || keyName.indexOf('.') !== -1) {
- return setPath(obj, keyName, value, tolerant);
- }
-
- Ember.assert("You need to provide an object and key to `set`.", !!obj && keyName !== undefined);
- Ember.assert('calling set on destroyed object', !obj.isDestroyed);
-
- var meta = obj[META_KEY], desc = meta && meta.descs[keyName],
- isUnknown, currentValue;
- if (desc) {
- desc.set(obj, keyName, value);
- }
- else {
- isUnknown = 'object' === typeof obj && !(keyName in obj);
-
- // setUnknownProperty is called if `obj` is an object,
- // the property does not already exist, and the
- // `setUnknownProperty` method exists on the object
- if (isUnknown && 'function' === typeof obj.setUnknownProperty) {
- obj.setUnknownProperty(keyName, value);
- } else if (meta && meta.watching[keyName] > 0) {
- if (MANDATORY_SETTER) {
- currentValue = meta.values[keyName];
- } else {
- currentValue = obj[keyName];
- }
- // only trigger a change if the value has changed
- if (value !== currentValue) {
- Ember.propertyWillChange(obj, keyName);
- if (MANDATORY_SETTER) {
- if (currentValue === undefined && !(keyName in obj)) {
- Ember.defineProperty(obj, keyName, null, value); // setup mandatory setter
- } else {
- meta.values[keyName] = value;
- }
- } else {
- obj[keyName] = value;
- }
- Ember.propertyDidChange(obj, keyName);
- }
- } else {
- obj[keyName] = value;
- }
- }
- return value;
-};
-
-/** @private */
-function firstKey(path) {
- return path.match(FIRST_KEY)[0];
-}
-
-// assumes path is already normalized
-/** @private */
-function normalizeTuple(target, path) {
- var hasThis = HAS_THIS.test(path),
- isGlobal = !hasThis && IS_GLOBAL_PATH.test(path),
- key;
-
- if (!target || isGlobal) target = window;
- if (hasThis) path = path.slice(5);
-
- if (target === window) {
- key = firstKey(path);
- target = get(target, key);
- path = path.slice(key.length+1);
- }
-
- // must return some kind of path to be valid else other things will break.
- if (!path || path.length===0) throw new Error('Invalid Path');
-
- return [ target, path ];
-}
-
-/** @private */
-function getPath(root, path) {
- var hasThis, parts, tuple, idx, len;
-
- // If there is no root and path is a key name, return that
- // property from the global object.
- // E.g. get('Ember') -> Ember
- if (root === null && path.indexOf('.') === -1) { return get(window, path); }
-
- // detect complicated paths and normalize them
- hasThis = HAS_THIS.test(path);
-
- if (!root || hasThis) {
- tuple = normalizeTuple(root, path);
- root = tuple[0];
- path = tuple[1];
- tuple.length = 0;
- }
-
- parts = path.split(".");
- len = parts.length;
- for (idx=0; root && idx<len; idx++) {
- root = get(root, parts[idx], true);
- if (root && root.isDestroyed) { return undefined; }
- }
- return root;
-}
-
-/** @private */
-function setPath(root, path, value, tolerant) {
- var keyName;
-
- // get the last part of the path
- keyName = path.slice(path.lastIndexOf('.') + 1);
-
- // get the first part of the part
- path = path.slice(0, path.length-(keyName.length+1));
-
- // unless the path is this, look up the first part to
- // get the root
- if (path !== 'this') {
- root = getPath(root, path);
- }
-
- if (!keyName || keyName.length === 0) {
- throw new Error('You passed an empty path');
- }
-
- if (!root) {
- if (tolerant) { return; }
- else { throw new Error('Object in path '+path+' could not be found or was destroyed.'); }
- }
-
- return set(root, keyName, value);
-}
-
-/**
- @private
-
- Normalizes a target/path pair to reflect that actual target/path that should
- be observed, etc. This takes into account passing in global property
- paths (i.e. a path beginning with a captial letter not defined on the
- target) and * separators.
-
- @param {Object} target
- The current target. May be null.
-
- @param {String} path
- A path on the target or a global property path.
-
- @returns {Array} a temporary array with the normalized target/path pair.
-*/
-Ember.normalizeTuple = function(target, path) {
- return normalizeTuple(target, path);
-};
-
-Ember.getWithDefault = function(root, key, defaultValue) {
- var value = get(root, key);
-
- if (value === undefined) { return defaultValue; }
- return value;
-};
-
-
-/**
- @function
-
- Gets the value of a property on an object. If the property is computed,
- the function will be invoked. If the property is not defined but the
- object implements the unknownProperty() method then that will be invoked.
-
- If you plan to run on IE8 and older browsers then you should use this
- method anytime you want to retrieve a property on an object that you don't
- know for sure is private. (My convention only properties beginning with
- an underscore '_' are considered private.)
-
- On all newer browsers, you only need to use this method to retrieve
- properties if the property might not be defined on the object and you want
- to respect the unknownProperty() handler. Otherwise you can ignore this
- method.
-
- Note that if the obj itself is null, this method will simply return
- undefined.
-
- @param {Object} obj
- The object to retrieve from.
-
- @param {String} keyName
- The property key to retrieve
-
- @returns {Object} the property value or null.
-*/
-Ember.get = get;
-Ember.getPath = Ember.deprecateFunc('getPath is deprecated since get now supports paths', Ember.get);
-
-/**
- @function
-
- Sets the value of a property on an object, respecting computed properties
- and notifying observers and other listeners of the change. If the
- property is not defined but the object implements the unknownProperty()
- method then that will be invoked as well.
-
- If you plan to run on IE8 and older browsers then you should use this
- method anytime you want to set a property on an object that you don't
- know for sure is private. (My convention only properties beginning with
- an underscore '_' are considered private.)
-
- On all newer browsers, you only need to use this method to set
- properties if the property might not be defined on the object and you want
- to respect the unknownProperty() handler. Otherwise you can ignore this
- method.
-
- @param {Object} obj
- The object to modify.
-
- @param {String} keyName
- The property key to set
-
- @param {Object} value
- The value to set
-
- @returns {Object} the passed value.
-*/
-Ember.set = set;
-Ember.setPath = Ember.deprecateFunc('setPath is deprecated since set now supports paths', Ember.set);
-
-/**
- Error-tolerant form of Ember.set. Will not blow up if any part of the
- chain is undefined, null, or destroyed.
-
- This is primarily used when syncing bindings, which may try to update after
- an object has been destroyed.
-*/
-Ember.trySet = function(root, path, value) {
- return set(root, path, value, true);
-};
-Ember.trySetPath = Ember.deprecateFunc('trySetPath has been renamed to trySet', Ember.trySet);
-
-/**
- Returns true if the provided path is global (e.g., "MyApp.fooController.bar")
- instead of local ("foo.bar.baz").
-
- @param {String} path
- @returns Boolean
-*/
-Ember.isGlobalPath = function(path) {
- return IS_GLOBAL.test(path);
-};
-
-
-
-if (Ember.config.overrideAccessors) {
- Ember.config.overrideAccessors();
- get = Ember.get;
- set = Ember.set;
-}
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Metal
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var GUID_KEY = Ember.GUID_KEY,
- META_KEY = Ember.META_KEY,
- EMPTY_META = Ember.EMPTY_META,
- metaFor = Ember.meta,
- o_create = Ember.create,
- objectDefineProperty = Ember.platform.defineProperty;
-
-var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
-
-// ..........................................................
-// DESCRIPTOR
-//
-
-/**
- @private
- @constructor
-
- Objects of this type can implement an interface to responds requests to
- get and set. The default implementation handles simple properties.
-
- You generally won't need to create or subclass this directly.
-*/
-var Descriptor = Ember.Descriptor = function() {};
-
-// ..........................................................
-// DEFINING PROPERTIES API
-//
-
-/**
- @private
-
- NOTE: This is a low-level method used by other parts of the API. You almost
- never want to call this method directly. Instead you should use Ember.mixin()
- to define new properties.
-
- Defines a property on an object. This method works much like the ES5
- Object.defineProperty() method except that it can also accept computed
- properties and other special descriptors.
-
- Normally this method takes only three parameters. However if you pass an
- instance of Ember.Descriptor as the third param then you can pass an optional
- value as the fourth parameter. This is often more efficient than creating
- new descriptor hashes for each property.
-
- ## Examples
-
- // ES5 compatible mode
- Ember.defineProperty(contact, 'firstName', {
- writable: true,
- configurable: false,
- enumerable: true,
- value: 'Charles'
- });
-
- // define a simple property
- Ember.defineProperty(contact, 'lastName', undefined, 'Jolley');
-
- // define a computed property
- Ember.defineProperty(contact, 'fullName', Ember.computed(function() {
- return this.firstName+' '+this.lastName;
- }).property('firstName', 'lastName').cacheable());
-*/
-Ember.defineProperty = function(obj, keyName, desc, data, meta) {
- // The first two parameters to defineProperty are mandatory:
- //
- // * obj: the object to define this property on. This may be
- // a prototype.
- // * keyName: the name of the property
- //
- // One and only one of the following two parameters must be
- // provided:
- //
- // * desc: an instance of Ember.Descriptor (typically a
- // computed property) or an ES5 descriptor.
- // * data: something other than a descriptor, that will
- // become the explicit value of this property.
-
- var descs, existingDesc, watching, value;
-
- if (!meta) meta = metaFor(obj);
- descs = meta.descs;
- existingDesc = meta.descs[keyName];
- watching = meta.watching[keyName] > 0;
-
- if (existingDesc instanceof Ember.Descriptor) {
- existingDesc.teardown(obj, keyName);
- }
-
- if (desc instanceof Ember.Descriptor) {
- value = desc;
-
- descs[keyName] = desc;
- if (MANDATORY_SETTER && watching) {
- objectDefineProperty(obj, keyName, {
- configurable: true,
- enumerable: true,
- writable: true,
- value: undefined // make enumerable
- });
- } else {
- obj[keyName] = undefined; // make enumerable
- }
- desc.setup(obj, keyName);
- } else {
- descs[keyName] = undefined; // shadow descriptor in proto
- if (desc == null) {
- value = data;
-
- if (MANDATORY_SETTER && watching) {
- meta.values[keyName] = data;
- objectDefineProperty(obj, keyName, {
- configurable: true,
- enumerable: true,
- set: function() {
- Ember.assert('Must use Ember.set() to access this property', false);
- },
- get: function() {
- var meta = this[META_KEY];
- return meta && meta.values[keyName];
- }
- });
- } else {
- obj[keyName] = data;
- }
- } else {
- value = desc;
-
- // compatibility with ES5
- objectDefineProperty(obj, keyName, desc);
- }
- }
-
- // if key is being watched, override chains that
- // were initialized with the prototype
- if (watching) { Ember.overrideChains(obj, keyName, meta); }
-
- // The `value` passed to the `didDefineProperty` hook is
- // either the descriptor or data, whichever was passed.
- if (obj.didDefineProperty) { obj.didDefineProperty(obj, keyName, value); }
-
- return this;
-};
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Metal
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var AFTER_OBSERVERS = ':change';
-var BEFORE_OBSERVERS = ':before';
-var guidFor = Ember.guidFor;
-
-var deferred = 0;
-var array_Slice = [].slice;
-
-/** @private */
-var ObserverSet = function () {
- this.targetSet = {};
-};
-ObserverSet.prototype.add = function (target, path) {
- var targetSet = this.targetSet,
- targetGuid = Ember.guidFor(target),
- pathSet = targetSet[targetGuid];
- if (!pathSet) {
- targetSet[targetGuid] = pathSet = {};
- }
- if (pathSet[path]) {
- return false;
- } else {
- return pathSet[path] = true;
- }
-};
-ObserverSet.prototype.clear = function () {
- this.targetSet = {};
-};
-
-/** @private */
-var DeferredEventQueue = function() {
- this.targetSet = {};
- this.queue = [];
-};
-
-DeferredEventQueue.prototype.push = function(target, eventName, keyName) {
- var targetSet = this.targetSet,
- queue = this.queue,
- targetGuid = Ember.guidFor(target),
- eventNameSet = targetSet[targetGuid],
- index;
-
- if (!eventNameSet) {
- targetSet[targetGuid] = eventNameSet = {};
- }
- index = eventNameSet[eventName];
- if (index === undefined) {
- eventNameSet[eventName] = queue.push(Ember.deferEvent(target, eventName, [target, keyName])) - 1;
- } else {
- queue[index] = Ember.deferEvent(target, eventName, [target, keyName]);
- }
-};
-
-DeferredEventQueue.prototype.flush = function() {
- var queue = this.queue;
- this.queue = [];
- this.targetSet = {};
- for (var i=0, len=queue.length; i < len; ++i) {
- queue[i]();
- }
-};
-
-var queue = new DeferredEventQueue(), beforeObserverSet = new ObserverSet();
-
-/** @private */
-function notifyObservers(obj, eventName, keyName, forceNotification) {
- if (deferred && !forceNotification) {
- queue.push(obj, eventName, keyName);
- } else {
- Ember.sendEvent(obj, eventName, [obj, keyName]);
- }
-}
-
-/** @private */
-function flushObserverQueue() {
- beforeObserverSet.clear();
-
- queue.flush();
-}
-
-Ember.beginPropertyChanges = function() {
- deferred++;
- return this;
-};
-
-Ember.endPropertyChanges = function() {
- deferred--;
- if (deferred<=0) flushObserverQueue();
-};
-
-/**
- Make a series of property changes together in an
- exception-safe way.
-
- Ember.changeProperties(function() {
- obj1.set('foo', mayBlowUpWhenSet);
- obj2.set('bar', baz);
- });
-*/
-Ember.changeProperties = function(cb, binding){
- Ember.beginPropertyChanges();
- try {
- cb.call(binding);
- } finally {
- Ember.endPropertyChanges();
- }
-};
-
-/**
- Set a list of properties on an object. These properties are set inside
- a single `beginPropertyChanges` and `endPropertyChanges` batch, so
- observers will be buffered.
-*/
-Ember.setProperties = function(self, hash) {
- Ember.changeProperties(function(){
- for(var prop in hash) {
- if (hash.hasOwnProperty(prop)) Ember.set(self, prop, hash[prop]);
- }
- });
- return self;
-};
-
-
-/** @private */
-function changeEvent(keyName) {
- return keyName+AFTER_OBSERVERS;
-}
-
-/** @private */
-function beforeEvent(keyName) {
- return keyName+BEFORE_OBSERVERS;
-}
-
-Ember.addObserver = function(obj, path, target, method) {
- Ember.addListener(obj, changeEvent(path), target, method);
- Ember.watch(obj, path);
- return this;
-};
-
-/** @private */
-Ember.observersFor = function(obj, path) {
- return Ember.listenersFor(obj, changeEvent(path));
-};
-
-Ember.removeObserver = function(obj, path, target, method) {
- Ember.unwatch(obj, path);
- Ember.removeListener(obj, changeEvent(path), target, method);
- return this;
-};
-
-Ember.addBeforeObserver = function(obj, path, target, method) {
- Ember.addListener(obj, beforeEvent(path), target, method);
- Ember.watch(obj, path);
- return this;
-};
-
-// Suspend observer during callback.
-//
-// This should only be used by the target of the observer
-// while it is setting the observed path.
-/** @private */
-Ember._suspendBeforeObserver = function(obj, path, target, method, callback) {
- return Ember._suspendListener(obj, beforeEvent(path), target, method, callback);
-};
-
-Ember._suspendObserver = function(obj, path, target, method, callback) {
- return Ember._suspendListener(obj, changeEvent(path), target, method, callback);
-};
-
-/** @private */
-Ember.beforeObserversFor = function(obj, path) {
- return Ember.listenersFor(obj, beforeEvent(path));
-};
-
-Ember.removeBeforeObserver = function(obj, path, target, method) {
- Ember.unwatch(obj, path);
- Ember.removeListener(obj, beforeEvent(path), target, method);
- return this;
-};
-
-/** @private */
-Ember.notifyObservers = function(obj, keyName) {
- if (obj.isDestroying) { return; }
-
- notifyObservers(obj, changeEvent(keyName), keyName);
-};
-
-/** @private */
-Ember.notifyBeforeObservers = function(obj, keyName) {
- if (obj.isDestroying) { return; }
-
- var guid, set, forceNotification = false;
-
- if (deferred) {
- if (beforeObserverSet.add(obj, keyName)) {
- forceNotification = true;
- } else {
- return;
- }
- }
-
- notifyObservers(obj, beforeEvent(keyName), keyName, forceNotification);
-};
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Metal
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var guidFor = Ember.guidFor, // utils.js
- metaFor = Ember.meta, // utils.js
- get = Ember.get, // accessors.js
- set = Ember.set, // accessors.js
- normalizeTuple = Ember.normalizeTuple, // accessors.js
- GUID_KEY = Ember.GUID_KEY, // utils.js
- META_KEY = Ember.META_KEY, // utils.js
- // circular reference observer depends on Ember.watch
- // we should move change events to this file or its own property_events.js
- notifyObservers = Ember.notifyObservers, // observer.js
- forEach = Ember.ArrayPolyfills.forEach, // array.js
- FIRST_KEY = /^([^\.\*]+)/,
- IS_PATH = /[\.\*]/;
-
-var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER,
-o_defineProperty = Ember.platform.defineProperty;
-
-/** @private */
-function firstKey(path) {
- return path.match(FIRST_KEY)[0];
-}
-
-// returns true if the passed path is just a keyName
-/** @private */
-function isKeyName(path) {
- return path==='*' || !IS_PATH.test(path);
-}
-
-// ..........................................................
-// DEPENDENT KEYS
-//
-
-var DEP_SKIP = { __emberproto__: true }; // skip some keys and toString
-
-/** @private */
-function iterDeps(method, obj, depKey, seen, meta) {
-
- var guid = guidFor(obj);
- if (!seen[guid]) seen[guid] = {};
- if (seen[guid][depKey]) return;
- seen[guid][depKey] = true;
-
- var deps = meta.deps;
- deps = deps && deps[depKey];
- if (deps) {
- for(var key in deps) {
- if (DEP_SKIP[key]) continue;
- method(obj, key);
- }
- }
-}
-
-
-var WILL_SEEN, DID_SEEN;
-
-// called whenever a property is about to change to clear the cache of any dependent keys (and notify those properties of changes, etc...)
-/** @private */
-function dependentKeysWillChange(obj, depKey, meta) {
- if (obj.isDestroying) { return; }
-
- var seen = WILL_SEEN, top = !seen;
- if (top) { seen = WILL_SEEN = {}; }
- iterDeps(propertyWillChange, obj, depKey, seen, meta);
- if (top) { WILL_SEEN = null; }
-}
-
-// called whenever a property has just changed to update dependent keys
-/** @private */
-function dependentKeysDidChange(obj, depKey, meta) {
- if (obj.isDestroying) { return; }
-
- var seen = DID_SEEN, top = !seen;
- if (top) { seen = DID_SEEN = {}; }
- iterDeps(propertyDidChange, obj, depKey, seen, meta);
- if (top) { DID_SEEN = null; }
-}
-
-// ..........................................................
-// CHAIN
-//
-
-/** @private */
-function addChainWatcher(obj, keyName, node) {
- if (!obj || ('object' !== typeof obj)) return; // nothing to do
- var m = metaFor(obj);
- var nodes = m.chainWatchers;
- if (!nodes || nodes.__emberproto__ !== obj) {
- nodes = m.chainWatchers = { __emberproto__: obj };
- }
-
- if (!nodes[keyName]) { nodes[keyName] = {}; }
- nodes[keyName][guidFor(node)] = node;
- Ember.watch(obj, keyName);
-}
-
-/** @private */
-function removeChainWatcher(obj, keyName, node) {
- if (!obj || 'object' !== typeof obj) { return; } // nothing to do
- var m = metaFor(obj, false),
- nodes = m.chainWatchers;
- if (!nodes || nodes.__emberproto__ !== obj) { return; } //nothing to do
- if (nodes[keyName]) { delete nodes[keyName][guidFor(node)]; }
- Ember.unwatch(obj, keyName);
-}
-
-var pendingQueue = [];
-
-// attempts to add the pendingQueue chains again. If some of them end up
-// back in the queue and reschedule is true, schedules a timeout to try
-// again.
-/** @private */
-function flushPendingChains() {
- if (pendingQueue.length === 0) { return; } // nothing to do
-
- var queue = pendingQueue;
- pendingQueue = [];
-
- forEach.call(queue, function(q) { q[0].add(q[1]); });
-
- Ember.warn('Watching an undefined global, Ember expects watched globals to be setup by the time the run loop is flushed, check for typos', pendingQueue.length === 0);
-}
-
-/** @private */
-function isProto(pvalue) {
- return metaFor(pvalue, false).proto === pvalue;
-}
-
-// A ChainNode watches a single key on an object. If you provide a starting
-// value for the key then the node won't actually watch it. For a root node
-// pass null for parent and key and object for value.
-/** @private */
-var ChainNode = function(parent, key, value, separator) {
- var obj;
- this._parent = parent;
- this._key = key;
-
- // _watching is true when calling get(this._parent, this._key) will
- // return the value of this node.
- //
- // It is false for the root of a chain (because we have no parent)
- // and for global paths (because the parent node is the object with
- // the observer on it)
- this._watching = value===undefined;
-
- this._value = value;
- this._separator = separator || '.';
- this._paths = {};
- if (this._watching) {
- this._object = parent.value();
- if (this._object) { addChainWatcher(this._object, this._key, this); }
- }
-
- // Special-case: the EachProxy relies on immediate evaluation to
- // establish its observers.
- //
- // TODO: Replace this with an efficient callback that the EachProxy
- // can implement.
- if (this._parent && this._parent._key === '@each') {
- this.value();
- }
-};
-
-var ChainNodePrototype = ChainNode.prototype;
-
-ChainNodePrototype.value = function() {
- if (this._value === undefined && this._watching) {
- var obj = this._parent.value();
- this._value = (obj && !isProto(obj)) ? get(obj, this._key) : undefined;
- }
- return this._value;
-};
-
-ChainNodePrototype.destroy = function() {
- if (this._watching) {
- var obj = this._object;
- if (obj) { removeChainWatcher(obj, this._key, this); }
- this._watching = false; // so future calls do nothing
- }
-};
-
-// copies a top level object only
-ChainNodePrototype.copy = function(obj) {
- var ret = new ChainNode(null, null, obj, this._separator),
- paths = this._paths, path;
- for (path in paths) {
- if (paths[path] <= 0) { continue; } // this check will also catch non-number vals.
- ret.add(path);
- }
- return ret;
-};
-
-// called on the root node of a chain to setup watchers on the specified
-// path.
-ChainNodePrototype.add = function(path) {
- var obj, tuple, key, src, separator, paths;
-
- paths = this._paths;
- paths[path] = (paths[path] || 0) + 1;
-
- obj = this.value();
- tuple = normalizeTuple(obj, path);
-
- // the path was a local path
- if (tuple[0] && tuple[0] === obj) {
- path = tuple[1];
- key = firstKey(path);
- path = path.slice(key.length+1);
-
- // global path, but object does not exist yet.
- // put into a queue and try to connect later.
- } else if (!tuple[0]) {
- pendingQueue.push([this, path]);
- tuple.length = 0;
- return;
-
- // global path, and object already exists
- } else {
- src = tuple[0];
- key = path.slice(0, 0-(tuple[1].length+1));
- separator = path.slice(key.length, key.length+1);
- path = tuple[1];
- }
-
- tuple.length = 0;
- this.chain(key, path, src, separator);
-};
-
-// called on the root node of a chain to teardown watcher on the specified
-// path
-ChainNodePrototype.remove = function(path) {
- var obj, tuple, key, src, paths;
-
- paths = this._paths;
- if (paths[path] > 0) { paths[path]--; }
-
- obj = this.value();
- tuple = normalizeTuple(obj, path);
- if (tuple[0] === obj) {
- path = tuple[1];
- key = firstKey(path);
- path = path.slice(key.length+1);
- } else {
- src = tuple[0];
- key = path.slice(0, 0-(tuple[1].length+1));
- path = tuple[1];
- }
-
- tuple.length = 0;
- this.unchain(key, path);
-};
-
-ChainNodePrototype.count = 0;
-
-ChainNodePrototype.chain = function(key, path, src, separator) {
- var chains = this._chains, node;
- if (!chains) { chains = this._chains = {}; }
-
- node = chains[key];
- if (!node) { node = chains[key] = new ChainNode(this, key, src, separator); }
- node.count++; // count chains...
-
- // chain rest of path if there is one
- if (path && path.length>0) {
- key = firstKey(path);
- path = path.slice(key.length+1);
- node.chain(key, path); // NOTE: no src means it will observe changes...
- }
-};
-
-ChainNodePrototype.unchain = function(key, path) {
- var chains = this._chains, node = chains[key];
-
- // unchain rest of path first...
- if (path && path.length>1) {
- key = firstKey(path);
- path = path.slice(key.length+1);
- node.unchain(key, path);
- }
-
- // delete node if needed.
- node.count--;
- if (node.count<=0) {
- delete chains[node._key];
- node.destroy();
- }
-
-};
-
-ChainNodePrototype.willChange = function() {
- var chains = this._chains;
- if (chains) {
- for(var key in chains) {
- if (!chains.hasOwnProperty(key)) { continue; }
- chains[key].willChange();
- }
- }
-
- if (this._parent) { this._parent.chainWillChange(this, this._key, 1); }
-};
-
-ChainNodePrototype.chainWillChange = function(chain, path, depth) {
- if (this._key) { path = this._key + this._separator + path; }
-
- if (this._parent) {
- this._parent.chainWillChange(this, path, depth+1);
- } else {
- if (depth > 1) { Ember.propertyWillChange(this.value(), path); }
- path = 'this.' + path;
- if (this._paths[path] > 0) { Ember.propertyWillChange(this.value(), path); }
- }
-};
-
-ChainNodePrototype.chainDidChange = function(chain, path, depth) {
- if (this._key) { path = this._key + this._separator + path; }
- if (this._parent) {
- this._parent.chainDidChange(this, path, depth+1);
- } else {
- if (depth > 1) { Ember.propertyDidChange(this.value(), path); }
- path = 'this.' + path;
- if (this._paths[path] > 0) { Ember.propertyDidChange(this.value(), path); }
- }
-};
-
-ChainNodePrototype.didChange = function(suppressEvent) {
- // invalidate my own value first.
- if (this._watching) {
- var obj = this._parent.value();
- if (obj !== this._object) {
- removeChainWatcher(this._object, this._key, this);
- this._object = obj;
- addChainWatcher(obj, this._key, this);
- }
- this._value = undefined;
-
- // Special-case: the EachProxy relies on immediate evaluation to
- // establish its observers.
- if (this._parent && this._parent._key === '@each')
- this.value();
- }
-
- // then notify chains...
- var chains = this._chains;
- if (chains) {
- for(var key in chains) {
- if (!chains.hasOwnProperty(key)) { continue; }
- chains[key].didChange(suppressEvent);
- }
- }
-
- if (suppressEvent) { return; }
-
- // and finally tell parent about my path changing...
- if (this._parent) { this._parent.chainDidChange(this, this._key, 1); }
-};
-
-// get the chains for the current object. If the current object has
-// chains inherited from the proto they will be cloned and reconfigured for
-// the current object.
-/** @private */
-function chainsFor(obj) {
- var m = metaFor(obj), ret = m.chains;
- if (!ret) {
- ret = m.chains = new ChainNode(null, null, obj);
- } else if (ret.value() !== obj) {
- ret = m.chains = ret.copy(obj);
- }
- return ret;
-}
-
-/** @private */
-function notifyChains(obj, m, keyName, methodName, arg) {
- var nodes = m.chainWatchers;
-
- if (!nodes || nodes.__emberproto__ !== obj) { return; } // nothing to do
-
- nodes = nodes[keyName];
- if (!nodes) { return; }
-
- for(var key in nodes) {
- if (!nodes.hasOwnProperty(key)) { continue; }
- nodes[key][methodName](arg);
- }
-}
-
-Ember.overrideChains = function(obj, keyName, m) {
- notifyChains(obj, m, keyName, 'didChange', true);
-};
-
-/** @private */
-function chainsWillChange(obj, keyName, m) {
- notifyChains(obj, m, keyName, 'willChange');
-}
-
-/** @private */
-function chainsDidChange(obj, keyName, m) {
- notifyChains(obj, m, keyName, 'didChange');
-}
-
-// ..........................................................
-// WATCH
-//
-
-/**
- @private
-
- Starts watching a property on an object. Whenever the property changes,
- invokes Ember.propertyWillChange and Ember.propertyDidChange. This is the
- primitive used by observers and dependent keys; usually you will never call
- this method directly but instead use higher level methods like
- Ember.addObserver().
-*/
-Ember.watch = function(obj, keyName) {
- // can't watch length on Array - it is special...
- if (keyName === 'length' && Ember.typeOf(obj) === 'array') { return this; }
-
- var m = metaFor(obj), watching = m.watching, desc;
-
- // activate watching first time
- if (!watching[keyName]) {
- watching[keyName] = 1;
- if (isKeyName(keyName)) {
- desc = m.descs[keyName];
- if (desc && desc.willWatch) { desc.willWatch(obj, keyName); }
-
- if ('function' === typeof obj.willWatchProperty) {
- obj.willWatchProperty(keyName);
- }
-
- if (MANDATORY_SETTER && keyName in obj) {
- m.values[keyName] = obj[keyName];
- o_defineProperty(obj, keyName, {
- configurable: true,
- enumerable: true,
- set: function() {
- Ember.assert('Must use Ember.set() to access this property', false);
- },
- get: function() {
- var meta = this[META_KEY];
- return meta && meta.values[keyName];
- }
- });
- }
- } else {
- chainsFor(obj).add(keyName);
- }
-
- } else {
- watching[keyName] = (watching[keyName] || 0) + 1;
- }
- return this;
-};
-
-Ember.isWatching = function isWatching(obj, key) {
- var meta = obj[META_KEY];
- return (meta && meta.watching[key]) > 0;
-};
-
-Ember.watch.flushPending = flushPendingChains;
-
-/** @private */
-Ember.unwatch = function(obj, keyName) {
- // can't watch length on Array - it is special...
- if (keyName === 'length' && Ember.typeOf(obj) === 'array') { return this; }
-
- var m = metaFor(obj), watching = m.watching, desc;
-
- if (watching[keyName] === 1) {
- watching[keyName] = 0;
-
- if (isKeyName(keyName)) {
- desc = m.descs[keyName];
- if (desc && desc.didUnwatch) { desc.didUnwatch(obj, keyName); }
-
- if ('function' === typeof obj.didUnwatchProperty) {
- obj.didUnwatchProperty(keyName);
- }
-
- if (MANDATORY_SETTER && keyName in obj) {
- o_defineProperty(obj, keyName, {
- configurable: true,
- enumerable: true,
- writable: true,
- value: m.values[keyName]
- });
- delete m.values[keyName];
- }
- } else {
- chainsFor(obj).remove(keyName);
- }
-
- } else if (watching[keyName]>1) {
- watching[keyName]--;
- }
-
- return this;
-};
-
-/**
- @private
-
- Call on an object when you first beget it from another object. This will
- setup any chained watchers on the object instance as needed. This method is
- safe to call multiple times.
-*/
-Ember.rewatch = function(obj) {
- var m = metaFor(obj, false), chains = m.chains;
-
- // make sure the object has its own guid.
- if (GUID_KEY in obj && !obj.hasOwnProperty(GUID_KEY)) {
- Ember.generateGuid(obj, 'ember');
- }
-
- // make sure any chained watchers update.
- if (chains && chains.value() !== obj) {
- m.chains = chains.copy(obj);
- }
-
- return this;
-};
-
-Ember.finishChains = function(obj) {
- var m = metaFor(obj, false), chains = m.chains;
- if (chains) {
- if (chains.value() !== obj) {
- m.chains = chains = chains.copy(obj);
- }
- chains.didChange(true);
- }
-};
-
-// ..........................................................
-// PROPERTY CHANGES
-//
-
-/**
- This function is called just before an object property is about to change.
- It will notify any before observers and prepare caches among other things.
-
- Normally you will not need to call this method directly but if for some
- reason you can't directly watch a property you can invoke this method
- manually along with `Ember.propertyDidChange()` which you should call just
- after the property value changes.
-
- @memberOf Ember
-
- @param {Object} obj
- The object with the property that will change
-
- @param {String} keyName
- The property key (or path) that will change.
-
- @returns {void}
-*/
-function propertyWillChange(obj, keyName, value) {
- var m = metaFor(obj, false),
- watching = m.watching[keyName] > 0 || keyName === 'length',
- proto = m.proto,
- desc = m.descs[keyName];
-
- if (!watching) { return; }
- if (proto === obj) { return; }
- if (desc && desc.willChange) { desc.willChange(obj, keyName); }
- dependentKeysWillChange(obj, keyName, m);
- chainsWillChange(obj, keyName, m);
- Ember.notifyBeforeObservers(obj, keyName);
-}
-
-Ember.propertyWillChange = propertyWillChange;
-
-/**
- This function is called just after an object property has changed.
- It will notify any observers and clear caches among other things.
-
- Normally you will not need to call this method directly but if for some
- reason you can't directly watch a property you can invoke this method
- manually along with `Ember.propertyWilLChange()` which you should call just
- before the property value changes.
-
- @memberOf Ember
-
- @param {Object} obj
- The object with the property that will change
-
- @param {String} keyName
- The property key (or path) that will change.
-
- @returns {void}
-*/
-function propertyDidChange(obj, keyName) {
- var m = metaFor(obj, false),
- watching = m.watching[keyName] > 0 || keyName === 'length',
- proto = m.proto,
- desc = m.descs[keyName];
-
- if (proto === obj) { return; }
-
- // shouldn't this mean that we're watching this key?
- if (desc && desc.didChange) { desc.didChange(obj, keyName); }
- if (!watching && keyName !== 'length') { return; }
-
- dependentKeysDidChange(obj, keyName, m);
- chainsDidChange(obj, keyName, m);
- Ember.notifyObservers(obj, keyName);
-}
-
-Ember.propertyDidChange = propertyDidChange;
-
-var NODE_STACK = [];
-
-/**
- Tears down the meta on an object so that it can be garbage collected.
- Multiple calls will have no effect.
-
- @param {Object} obj the object to destroy
- @returns {void}
-*/
-Ember.destroy = function (obj) {
- var meta = obj[META_KEY], node, nodes, key, nodeObject;
- if (meta) {
- obj[META_KEY] = null;
- // remove chainWatchers to remove circular references that would prevent GC
- node = meta.chains;
- if (node) {
- NODE_STACK.push(node);
- // process tree
- while (NODE_STACK.length > 0) {
- node = NODE_STACK.pop();
- // push children
- nodes = node._chains;
- if (nodes) {
- for (key in nodes) {
- if (nodes.hasOwnProperty(key)) {
- NODE_STACK.push(nodes[key]);
- }
- }
- }
- // remove chainWatcher in node object
- if (node._watching) {
- nodeObject = node._object;
- if (nodeObject) {
- removeChainWatcher(nodeObject, node._key, node);
- }
- }
- }
- }
- }
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Metal
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-Ember.warn("Computed properties will soon be cacheable by default. To enable this in your app, set `ENV.CP_DEFAULT_CACHEABLE = true`.", Ember.CP_DEFAULT_CACHEABLE);
-
-
-var get = Ember.get,
- metaFor = Ember.meta,
- guidFor = Ember.guidFor,
- a_slice = [].slice,
- o_create = Ember.create,
- META_KEY = Ember.META_KEY,
- watch = Ember.watch,
- unwatch = Ember.unwatch;
-
-// ..........................................................
-// DEPENDENT KEYS
-//
-
-// data structure:
-// meta.deps = {
-// 'depKey': {
-// 'keyName': count,
-// __emberproto__: SRC_OBJ [to detect clones]
-// },
-// __emberproto__: SRC_OBJ
-// }
-
-/**
- @private
-
- This function returns a map of unique dependencies for a
- given object and key.
-*/
-function keysForDep(obj, depsMeta, depKey) {
- var keys = depsMeta[depKey];
- if (!keys) {
- // if there are no dependencies yet for a the given key
- // create a new empty list of dependencies for the key
- keys = depsMeta[depKey] = { __emberproto__: obj };
- } else if (keys.__emberproto__ !== obj) {
- // otherwise if the dependency list is inherited from
- // a superclass, clone the hash
- keys = depsMeta[depKey] = o_create(keys);
- keys.__emberproto__ = obj;
- }
- return keys;
-}
-
-/**
- @private
-
- return obj[META_KEY].deps
- */
-function metaForDeps(obj, meta) {
- var deps = meta.deps;
- // If the current object has no dependencies...
- if (!deps) {
- // initialize the dependencies with a pointer back to
- // the current object
- deps = meta.deps = { __emberproto__: obj };
- } else if (deps.__emberproto__ !== obj) {
- // otherwise if the dependencies are inherited from the
- // object's superclass, clone the deps
- deps = meta.deps = o_create(deps);
- deps.__emberproto__ = obj;
- }
- return deps;
-}
-
-/** @private */
-function addDependentKeys(desc, obj, keyName, meta) {
- // the descriptor has a list of dependent keys, so
- // add all of its dependent keys.
- var depKeys = desc._dependentKeys, depsMeta, idx, len, depKey, keys;
- if (!depKeys) return;
-
- depsMeta = metaForDeps(obj, meta);
-
- for(idx = 0, len = depKeys.length; idx < len; idx++) {
- depKey = depKeys[idx];
- // Lookup keys meta for depKey
- keys = keysForDep(obj, depsMeta, depKey);
- // Increment the number of times depKey depends on keyName.
- keys[keyName] = (keys[keyName] || 0) + 1;
- // Watch the depKey
- watch(obj, depKey);
- }
-}
-
-/** @private */
-function removeDependentKeys(desc, obj, keyName, meta) {
- // the descriptor has a list of dependent keys, so
- // add all of its dependent keys.
- var depKeys = desc._dependentKeys, depsMeta, idx, len, depKey, keys;
- if (!depKeys) return;
-
- depsMeta = metaForDeps(obj, meta);
-
- for(idx = 0, len = depKeys.length; idx < len; idx++) {
- depKey = depKeys[idx];
- // Lookup keys meta for depKey
- keys = keysForDep(obj, depsMeta, depKey);
- // Increment the number of times depKey depends on keyName.
- keys[keyName] = (keys[keyName] || 0) - 1;
- // Watch the depKey
- unwatch(obj, depKey);
- }
-}
-
-// ..........................................................
-// COMPUTED PROPERTY
-//
-
-/** @private */
-function ComputedProperty(func, opts) {
- this.func = func;
- this._cacheable = (opts && opts.cacheable !== undefined) ? opts.cacheable : Ember.CP_DEFAULT_CACHEABLE;
- this._dependentKeys = opts && opts.dependentKeys;
-}
-
-/**
- @constructor
-*/
-Ember.ComputedProperty = ComputedProperty;
-ComputedProperty.prototype = new Ember.Descriptor();
-
-/**
- @extends Ember.ComputedProperty
- @private
-*/
-var ComputedPropertyPrototype = ComputedProperty.prototype;
-
-/**
- Call on a computed property to set it into cacheable mode. When in this
- mode the computed property will automatically cache the return value of
- your function until one of the dependent keys changes.
-
- MyApp.president = Ember.Object.create({
- fullName: function() {
- return this.get('firstName') + ' ' + this.get('lastName');
-
- // After calculating the value of this function, Ember.js will
- // return that value without re-executing this function until
- // one of the dependent properties change.
- }.property('firstName', 'lastName').cacheable()
- });
-
- Properties are cacheable by default.
-
- @memberOf Ember.ComputedProperty.prototype
- @name cacheable
- @function
- @param {Boolean} aFlag optional set to false to disable caching
- @returns {Ember.ComputedProperty} receiver
-*/
-ComputedPropertyPrototype.cacheable = function(aFlag) {
- this._cacheable = aFlag !== false;
- return this;
-};
-
-/**
- Call on a computed property to set it into non-cached mode. When in this
- mode the computed property will not automatically cache the return value.
-
- MyApp.outsideService = Ember.Object.create({
- value: function() {
- return OutsideService.getValue();
- }.property().volatile()
- });
-
- @memberOf Ember.ComputedProperty.prototype
- @name volatile
- @function
- @returns {Ember.ComputedProperty} receiver
-*/
-ComputedPropertyPrototype.volatile = function() {
- return this.cacheable(false);
-};
-
-/**
- Sets the dependent keys on this computed property. Pass any number of
- arguments containing key paths that this computed property depends on.
-
- MyApp.president = Ember.Object.create({
- fullName: Ember.computed(function() {
- return this.get('firstName') + ' ' + this.get('lastName');
-
- // Tell Ember.js that this computed property depends on firstName
- // and lastName
- }).property('firstName', 'lastName')
- });
-
- @memberOf Ember.ComputedProperty.prototype
- @name property
- @function
- @param {String} path... zero or more property paths
- @returns {Ember.ComputedProperty} receiver
-*/
-ComputedPropertyPrototype.property = function() {
- var args = [];
- for (var i = 0, l = arguments.length; i < l; i++) {
- args.push(arguments[i]);
- }
- this._dependentKeys = args;
- return this;
-};
-
-/**
- In some cases, you may want to annotate computed properties with additional
- metadata about how they function or what values they operate on. For example,
- computed property functions may close over variables that are then no longer
- available for introspection.
-
- You can pass a hash of these values to a computed property like this:
-
- person: function() {
- var personId = this.get('personId');
- return App.Person.create({ id: personId });
- }.property().meta({ type: App.Person })
-
- The hash that you pass to the `meta()` function will be saved on the
- computed property descriptor under the `_meta` key. Ember runtime
- exposes a public API for retrieving these values from classes,
- via the `metaForProperty()` function.
-
- @memberOf Ember.ComputedProperty.prototype
- @name meta
- @function
- @param {Hash} meta
- @returns {Ember.ComputedProperty} property descriptor instance
-*/
-
-ComputedPropertyPrototype.meta = function(meta) {
- if (arguments.length === 0) {
- return this._meta || {};
- } else {
- this._meta = meta;
- return this;
- }
-};
-
-/** @private - impl descriptor API */
-ComputedPropertyPrototype.willWatch = function(obj, keyName) {
- // watch already creates meta for this instance
- var meta = obj[META_KEY];
- Ember.assert('watch should have setup meta to be writable', meta.source === obj);
- if (!(keyName in meta.cache)) {
- addDependentKeys(this, obj, keyName, meta);
- }
-};
-
-ComputedPropertyPrototype.didUnwatch = function(obj, keyName) {
- var meta = obj[META_KEY];
- Ember.assert('unwatch should have setup meta to be writable', meta.source === obj);
- if (!(keyName in meta.cache)) {
- // unwatch already creates meta for this instance
- removeDependentKeys(this, obj, keyName, meta);
- }
-};
-
-/** @private - impl descriptor API */
-ComputedPropertyPrototype.didChange = function(obj, keyName) {
- // _suspended is set via a CP.set to ensure we don't clear
- // the cached value set by the setter
- if (this._cacheable && this._suspended !== obj) {
- var meta = metaFor(obj);
- if (keyName in meta.cache) {
- delete meta.cache[keyName];
- if (!meta.watching[keyName]) {
- removeDependentKeys(this, obj, keyName, meta);
- }
- }
- }
-};
-
-/** @private - impl descriptor API */
-ComputedPropertyPrototype.get = function(obj, keyName) {
- var ret, cache, meta;
- if (this._cacheable) {
- meta = metaFor(obj);
- cache = meta.cache;
- if (keyName in cache) { return cache[keyName]; }
- ret = cache[keyName] = this.func.call(obj, keyName);
- if (!meta.watching[keyName]) {
- addDependentKeys(this, obj, keyName, meta);
- }
- } else {
- ret = this.func.call(obj, keyName);
- }
- return ret;
-};
-
-/** @private - impl descriptor API */
-ComputedPropertyPrototype.set = function(obj, keyName, value) {
- var cacheable = this._cacheable,
- meta = metaFor(obj, cacheable),
- watched = meta.watching[keyName],
- oldSuspended = this._suspended,
- hadCachedValue,
- ret;
-
- this._suspended = obj;
-
- if (watched) { Ember.propertyWillChange(obj, keyName); }
- if (cacheable) {
- if (keyName in meta.cache) {
- delete meta.cache[keyName];
- hadCachedValue = true;
- }
- }
- ret = this.func.call(obj, keyName, value);
- if (cacheable) {
- if (!watched && !hadCachedValue) {
- addDependentKeys(this, obj, keyName, meta);
- }
- meta.cache[keyName] = ret;
- }
- if (watched) { Ember.propertyDidChange(obj, keyName); }
- this._suspended = oldSuspended;
- return ret;
-};
-
-/** @private - called when property is defined */
-ComputedPropertyPrototype.setup = function(obj, keyName) {
- var meta = obj[META_KEY];
- if (meta && meta.watching[keyName]) {
- addDependentKeys(this, obj, keyName, metaFor(obj));
- }
-};
-
-/** @private - called before property is overridden */
-ComputedPropertyPrototype.teardown = function(obj, keyName) {
- var meta = metaFor(obj);
-
- if (meta.watching[keyName] || keyName in meta.cache) {
- removeDependentKeys(this, obj, keyName, meta);
- }
-
- if (this._cacheable) { delete meta.cache[keyName]; }
-
- return null; // no value to restore
-};
-
-/**
- This helper returns a new property descriptor that wraps the passed
- computed property function. You can use this helper to define properties
- with mixins or via Ember.defineProperty().
-
- The function you pass will be used to both get and set property values.
- The function should accept two parameters, key and value. If value is not
- undefined you should set the value first. In either case return the
- current value of the property.
-
- @param {Function} func
- The computed property function.
-
- @returns {Ember.ComputedProperty} property descriptor instance
-*/
-Ember.computed = function(func) {
- var args;
-
- if (arguments.length > 1) {
- args = a_slice.call(arguments, 0, -1);
- func = a_slice.call(arguments, -1)[0];
- }
-
- var cp = new ComputedProperty(func);
-
- if (args) {
- cp.property.apply(cp, args);
- }
-
- return cp;
-};
-
-/**
- Returns the cached value for a property, if one exists.
- This can be useful for peeking at the value of a computed
- property that is generated lazily, without accidentally causing
- it to be created.
-
- @param {Object} obj the object whose property you want to check
- @param {String} key the name of the property whose cached value you want
- to return
-
-*/
-Ember.cacheFor = function cacheFor(obj, key) {
- var cache = metaFor(obj, false).cache;
-
- if (cache && key in cache) {
- return cache[key];
- }
-};
-
-Ember.computed.not = function(dependentKey) {
- return Ember.computed(dependentKey, function(key) {
- return !get(this, dependentKey);
- }).cacheable();
-};
-
-Ember.computed.empty = function(dependentKey) {
- return Ember.computed(dependentKey, function(key) {
- var val = get(this, dependentKey);
- return val === undefined || val === null || val === '' || (Ember.isArray(val) && get(val, 'length') === 0);
- }).cacheable();
-};
-
-Ember.computed.bool = function(dependentKey) {
- return Ember.computed(dependentKey, function(key) {
- return !!get(this, dependentKey);
- }).cacheable();
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Metal
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var o_create = Ember.create,
- meta = Ember.meta,
- metaPath = Ember.metaPath,
- guidFor = Ember.guidFor,
- a_slice = [].slice;
-
-/**
- The event system uses a series of nested hashes to store listeners on an
- object. When a listener is registered, or when an event arrives, these
- hashes are consulted to determine which target and action pair to invoke.
-
- The hashes are stored in the object's meta hash, and look like this:
-
- // Object's meta hash
- {
- listeners: { // variable name: `listenerSet`
- "foo:changed": { // variable name: `targetSet`
- [targetGuid]: { // variable name: `actionSet`
- [methodGuid]: { // variable name: `action`
- target: [Object object],
- method: [Function function]
- }
- }
- }
- }
- }
-
-*/
-
-// Gets the set of all actions, keyed on the guid of each action's
-// method property.
-/** @private */
-function actionSetFor(obj, eventName, target, writable) {
- return metaPath(obj, ['listeners', eventName, guidFor(target)], writable);
-}
-
-// Gets the set of all targets, keyed on the guid of each action's
-// target property.
-/** @private */
-function targetSetFor(obj, eventName) {
- var listenerSet = meta(obj, false).listeners;
- if (!listenerSet) { return false; }
-
- return listenerSet[eventName] || false;
-}
-
-// TODO: This knowledge should really be a part of the
-// meta system.
-var SKIP_PROPERTIES = { __ember_source__: true };
-
-/** @private */
-function iterateSet(obj, eventName, callback, params) {
- var targetSet = targetSetFor(obj, eventName);
- if (!targetSet) { return false; }
- // Iterate through all elements of the target set
- for(var targetGuid in targetSet) {
- if (SKIP_PROPERTIES[targetGuid]) { continue; }
-
- var actionSet = targetSet[targetGuid];
- if (actionSet) {
- // Iterate through the elements of the action set
- for(var methodGuid in actionSet) {
- if (SKIP_PROPERTIES[methodGuid]) { continue; }
-
- var action = actionSet[methodGuid];
- if (action) {
- if (callback(action, params, obj) === true) {
- return true;
- }
- }
- }
- }
- }
- return false;
-}
-
-/** @private */
-function invokeAction(action, params, sender) {
- var method = action.method, target = action.target;
- // If there is no target, the target is the object
- // on which the event was fired.
- if (!target) { target = sender; }
- if ('string' === typeof method) { method = target[method]; }
- if (params) {
- method.apply(target, params);
- } else {
- method.apply(target);
- }
-}
-
-/**
- The sendEvent arguments > 2 are passed to an event listener.
-
- @memberOf Ember
-*/
-function addListener(obj, eventName, target, method) {
- Ember.assert("You must pass at least an object and event name to Ember.addListener", !!obj && !!eventName);
-
- if (!method && 'function' === typeof target) {
- method = target;
- target = null;
- }
-
- var actionSet = actionSetFor(obj, eventName, target, true),
- methodGuid = guidFor(method);
-
- if (!actionSet[methodGuid]) {
- actionSet[methodGuid] = { target: target, method: method };
- }
-
- if ('function' === typeof obj.didAddListener) {
- obj.didAddListener(eventName, target, method);
- }
-}
-
-/** @memberOf Ember */
-function removeListener(obj, eventName, target, method) {
- Ember.assert("You must pass at least an object and event name to Ember.removeListener", !!obj && !!eventName);
-
- if (!method && 'function' === typeof target) {
- method = target;
- target = null;
- }
-
- var actionSet = actionSetFor(obj, eventName, target, true),
- methodGuid = guidFor(method);
-
- // we can't simply delete this parameter, because if we do, we might
- // re-expose the property from the prototype chain.
- if (actionSet && actionSet[methodGuid]) { actionSet[methodGuid] = null; }
-
- if ('function' === typeof obj.didRemoveListener) {
- obj.didRemoveListener(eventName, target, method);
- }
-}
-
-// Suspend listener during callback.
-//
-// This should only be used by the target of the event listener
-// when it is taking an action that would cause the event, e.g.
-// an object might suspend its property change listener while it is
-// setting that property.
-/** @private */
-function suspendListener(obj, eventName, target, method, callback) {
- if (!method && 'function' === typeof target) {
- method = target;
- target = null;
- }
-
- var actionSet = actionSetFor(obj, eventName, target, true),
- methodGuid = guidFor(method),
- action = actionSet && actionSet[methodGuid];
-
- actionSet[methodGuid] = null;
- try {
- return callback.call(target);
- } finally {
- actionSet[methodGuid] = action;
- }
-}
-
-// returns a list of currently watched events
-/** @memberOf Ember */
-function watchedEvents(obj) {
- var listeners = meta(obj, false).listeners, ret = [];
-
- if (listeners) {
- for(var eventName in listeners) {
- if (!SKIP_PROPERTIES[eventName] && listeners[eventName]) {
- ret.push(eventName);
- }
- }
- }
- return ret;
-}
-
-/** @memberOf Ember */
-function sendEvent(obj, eventName, params) {
- // first give object a chance to handle it
- if (obj !== Ember && 'function' === typeof obj.sendEvent) {
- obj.sendEvent(eventName, params);
- }
-
- iterateSet(obj, eventName, invokeAction, params);
- return true;
-}
-
-/** @memberOf Ember */
-function deferEvent(obj, eventName, params) {
- var actions = [];
- iterateSet(obj, eventName, function (action) {
- actions.push(action);
- });
-
- return function() {
- if (obj.isDestroyed) { return; }
-
- if (obj !== Ember && 'function' === typeof obj.sendEvent) {
- obj.sendEvent(eventName, params);
- }
-
- for (var i=0, len=actions.length; i < len; ++i) {
- invokeAction(actions[i], params, obj);
- }
- };
-}
-
-/** @memberOf Ember */
-function hasListeners(obj, eventName) {
- if (iterateSet(obj, eventName, function() { return true; })) {
- return true;
- }
-
- // no listeners! might as well clean this up so it is faster later.
- var set = metaPath(obj, ['listeners'], true);
- set[eventName] = null;
-
- return false;
-}
-
-/** @memberOf Ember */
-function listenersFor(obj, eventName) {
- var ret = [];
- iterateSet(obj, eventName, function (action) {
- ret.push([action.target, action.method]);
- });
- return ret;
-}
-
-Ember.addListener = addListener;
-Ember.removeListener = removeListener;
-Ember._suspendListener = suspendListener;
-Ember.sendEvent = sendEvent;
-Ember.hasListeners = hasListeners;
-Ember.watchedEvents = watchedEvents;
-Ember.listenersFor = listenersFor;
-Ember.deferEvent = deferEvent;
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2010 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-// Ember.Logger
-// Ember.watch.flushPending
-// Ember.beginPropertyChanges, Ember.endPropertyChanges
-// Ember.guidFor
-
-// ..........................................................
-// HELPERS
-//
-
-var slice = [].slice,
- forEach = Ember.ArrayPolyfills.forEach;
-
-// invokes passed params - normalizing so you can pass target/func,
-// target/string or just func
-/** @private */
-function invoke(target, method, args, ignore) {
-
- if (method === undefined) {
- method = target;
- target = undefined;
- }
-
- if ('string' === typeof method) { method = target[method]; }
- if (args && ignore > 0) {
- args = args.length > ignore ? slice.call(args, ignore) : null;
- }
-
- // Unfortunately in some browsers we lose the backtrace if we rethrow the existing error,
- // so in the event that we don't have an `onerror` handler we don't wrap in a try/catch
- if ('function' === typeof Ember.onerror) {
- try {
- // IE8's Function.prototype.apply doesn't accept undefined/null arguments.
- return method.apply(target || this, args || []);
- } catch (error) {
- Ember.onerror(error);
- }
- } else {
- // IE8's Function.prototype.apply doesn't accept undefined/null arguments.
- return method.apply(target || this, args || []);
- }
-}
-
-
-// ..........................................................
-// RUNLOOP
-//
-
-var timerMark; // used by timers...
-
-/** @private */
-var RunLoop = function(prev) {
- this._prev = prev || null;
- this.onceTimers = {};
-};
-
-RunLoop.prototype = {
- end: function() {
- this.flush();
- },
-
- prev: function() {
- return this._prev;
- },
-
- // ..........................................................
- // Delayed Actions
- //
-
- schedule: function(queueName, target, method) {
- var queues = this._queues, queue;
- if (!queues) { queues = this._queues = {}; }
- queue = queues[queueName];
- if (!queue) { queue = queues[queueName] = []; }
-
- var args = arguments.length > 3 ? slice.call(arguments, 3) : null;
- queue.push({ target: target, method: method, args: args });
- return this;
- },
-
- flush: function(queueName) {
- var queueNames, idx, len, queue, log;
-
- if (!this._queues) { return this; } // nothing to do
-
- function iter(item) {
- invoke(item.target, item.method, item.args);
- }
-
- Ember.watch.flushPending(); // make sure all chained watchers are setup
-
- if (queueName) {
- while (this._queues && (queue = this._queues[queueName])) {
- this._queues[queueName] = null;
-
- // the sync phase is to allow property changes to propagate. don't
- // invoke observers until that is finished.
- if (queueName === 'sync') {
- log = Ember.LOG_BINDINGS;
- if (log) { Ember.Logger.log('Begin: Flush Sync Queue'); }
-
- Ember.beginPropertyChanges();
- try {
- forEach.call(queue, iter);
- } finally {
- Ember.endPropertyChanges();
- }
-
- if (log) { Ember.Logger.log('End: Flush Sync Queue'); }
-
- } else {
- forEach.call(queue, iter);
- }
- }
-
- } else {
- queueNames = Ember.run.queues;
- len = queueNames.length;
- idx = 0;
-
- outerloop:
- while (idx < len) {
- queueName = queueNames[idx];
- queue = this._queues && this._queues[queueName];
- delete this._queues[queueName];
-
- if (queue) {
- // the sync phase is to allow property changes to propagate. don't
- // invoke observers until that is finished.
- if (queueName === 'sync') {
- log = Ember.LOG_BINDINGS;
- if (log) { Ember.Logger.log('Begin: Flush Sync Queue'); }
-
- Ember.beginPropertyChanges();
- try {
- forEach.call(queue, iter);
- } finally {
- Ember.endPropertyChanges();
- }
-
- if (log) { Ember.Logger.log('End: Flush Sync Queue'); }
- } else {
- forEach.call(queue, iter);
- }
- }
-
- // Loop through prior queues
- for (var i = 0; i <= idx; i++) {
- if (this._queues && this._queues[queueNames[i]]) {
- // Start over at the first queue with contents
- idx = i;
- continue outerloop;
- }
- }
-
- idx++;
- }
- }
-
- timerMark = null;
-
- return this;
- }
-
-};
-
-Ember.RunLoop = RunLoop;
-
-// ..........................................................
-// Ember.run - this is ideally the only public API the dev sees
-//
-/**
-* @namespace Ember.run is both a function and a namespace for
-* RunLoop-related functions.
-* @name Ember.run
-*/
-
-/**
- Runs the passed target and method inside of a RunLoop, ensuring any
- deferred actions including bindings and views updates are flushed at the
- end.
-
- Normally you should not need to invoke this method yourself. However if
- you are implementing raw event handlers when interfacing with other
- libraries or plugins, you should probably wrap all of your code inside this
- call.
-
- Ember.run(function(){
- // code to be execute within a RunLoop
- });
-
- @name run
- @methodOf Ember.run
- @param {Object} target
- (Optional) target of method to call
-
- @param {Function|String} method
- Method to invoke. May be a function or a string. If you pass a string
- then it will be looked up on the passed target.
-
- @param {Object...} args
- Any additional arguments you wish to pass to the method.
-
- @returns {Object} return value from invoking the passed function.
-*/
-Ember.run = function(target, method) {
- var ret, loop;
- run.begin();
- try {
- if (target || method) { ret = invoke(target, method, arguments, 2); }
- } finally {
- run.end();
- }
- return ret;
-};
-
-/** @private */
-var run = Ember.run;
-
-
-/**
- Begins a new RunLoop. Any deferred actions invoked after the begin will
- be buffered until you invoke a matching call to Ember.run.end(). This is
- an lower-level way to use a RunLoop instead of using Ember.run().
-
- Ember.run.begin();
- // code to be execute within a RunLoop
- Ember.run.end();
-
-
- @returns {void}
-*/
-Ember.run.begin = function() {
- run.currentRunLoop = new RunLoop(run.currentRunLoop);
-};
-
-/**
- Ends a RunLoop. This must be called sometime after you call Ember.run.begin()
- to flush any deferred actions. This is a lower-level way to use a RunLoop
- instead of using Ember.run().
-
- Ember.run.begin();
- // code to be execute within a RunLoop
- Ember.run.end();
-
- @returns {void}
-*/
-Ember.run.end = function() {
- Ember.assert('must have a current run loop', run.currentRunLoop);
- try {
- run.currentRunLoop.end();
- }
- finally {
- run.currentRunLoop = run.currentRunLoop.prev();
- }
-};
-
-/**
- Array of named queues. This array determines the order in which queues
- are flushed at the end of the RunLoop. You can define your own queues by
- simply adding the queue name to this array. Normally you should not need
- to inspect or modify this property.
-
- @type Array
- @default ['sync', 'actions', 'destroy', 'timers']
-*/
-Ember.run.queues = ['sync', 'actions', 'destroy', 'timers'];
-
-/**
- Adds the passed target/method and any optional arguments to the named
- queue to be executed at the end of the RunLoop. If you have not already
- started a RunLoop when calling this method one will be started for you
- automatically.
-
- At the end of a RunLoop, any methods scheduled in this way will be invoked.
- Methods will be invoked in an order matching the named queues defined in
- the run.queues property.
-
- Ember.run.schedule('timers', this, function(){
- // this will be executed at the end of the RunLoop, when timers are run
- console.log("scheduled on timers queue");
- });
- Ember.run.schedule('sync', this, function(){
- // this will be executed at the end of the RunLoop, when bindings are synced
- console.log("scheduled on sync queue");
- });
- // Note the functions will be run in order based on the run queues order. Output would be:
- // scheduled on sync queue
- // scheduled on timers queue
-
- @param {String} queue
- The name of the queue to schedule against. Default queues are 'sync' and
- 'actions'
-
- @param {Object} target
- (Optional) target object to use as the context when invoking a method.
-
- @param {String|Function} method
- The method to invoke. If you pass a string it will be resolved on the
- target object at the time the scheduled item is invoked allowing you to
- change the target function.
-
- @param {Object} arguments...
- Optional arguments to be passed to the queued method.
-
- @returns {void}
-*/
-Ember.run.schedule = function(queue, target, method) {
- var loop = run.autorun();
- loop.schedule.apply(loop, arguments);
-};
-
-var scheduledAutorun;
-/** @private */
-function autorun() {
- scheduledAutorun = null;
- if (run.currentRunLoop) { run.end(); }
-}
-
-// Used by global test teardown
-/** @private */
-Ember.run.hasScheduledTimers = function() {
- return !!(scheduledAutorun || scheduledLater || scheduledNext);
-};
-
-// Used by global test teardown
-/** @private */
-Ember.run.cancelTimers = function () {
- if (scheduledAutorun) {
- clearTimeout(scheduledAutorun);
- scheduledAutorun = null;
- }
- if (scheduledLater) {
- clearTimeout(scheduledLater);
- scheduledLater = null;
- }
- if (scheduledNext) {
- clearTimeout(scheduledNext);
- scheduledNext = null;
- }
- timers = {};
-};
-
-/**
- Begins a new RunLoop if necessary and schedules a timer to flush the
- RunLoop at a later time. This method is used by parts of Ember to
- ensure the RunLoop always finishes. You normally do not need to call this
- method directly. Instead use Ember.run().
-
- Ember.run.autorun();
-
- @returns {Ember.RunLoop} the new current RunLoop
-*/
-Ember.run.autorun = function() {
- if (!run.currentRunLoop) {
- Ember.assert("You have turned on testing mode, which disabled the run-loop's autorun. You will need to wrap any code with asynchronous side-effects in an Ember.run", !Ember.testing);
-
- run.begin();
-
- if (!scheduledAutorun) {
- scheduledAutorun = setTimeout(autorun, 1);
- }
- }
-
- return run.currentRunLoop;
-};
-
-/**
- Immediately flushes any events scheduled in the 'sync' queue. Bindings
- use this queue so this method is a useful way to immediately force all
- bindings in the application to sync.
-
- You should call this method anytime you need any changed state to propagate
- throughout the app immediately without repainting the UI.
-
- Ember.run.sync();
-
- @returns {void}
-*/
-Ember.run.sync = function() {
- run.autorun();
- run.currentRunLoop.flush('sync');
-};
-
-// ..........................................................
-// TIMERS
-//
-
-var timers = {}; // active timers...
-
-var scheduledLater;
-/** @private */
-function invokeLaterTimers() {
- scheduledLater = null;
- var now = (+ new Date()), earliest = -1;
- for (var key in timers) {
- if (!timers.hasOwnProperty(key)) { continue; }
- var timer = timers[key];
- if (timer && timer.expires) {
- if (now >= timer.expires) {
- delete timers[key];
- invoke(timer.target, timer.method, timer.args, 2);
- } else {
- if (earliest<0 || (timer.expires < earliest)) earliest=timer.expires;
- }
- }
- }
-
- // schedule next timeout to fire...
- if (earliest > 0) { scheduledLater = setTimeout(invokeLaterTimers, earliest-(+ new Date())); }
-}
-
-/**
- Invokes the passed target/method and optional arguments after a specified
- period if time. The last parameter of this method must always be a number
- of milliseconds.
-
- You should use this method whenever you need to run some action after a
- period of time instead of using setTimeout(). This method will ensure that
- items that expire during the same script execution cycle all execute
- together, which is often more efficient than using a real setTimeout.
-
- Ember.run.later(myContext, function(){
- // code here will execute within a RunLoop in about 500ms with this == myContext
- }, 500);
-
- @param {Object} target
- (optional) target of method to invoke
-
- @param {Function|String} method
- The method to invoke. If you pass a string it will be resolved on the
- target at the time the method is invoked.
-
- @param {Object...} args
- Optional arguments to pass to the timeout.
-
- @param {Number} wait
- Number of milliseconds to wait.
-
- @returns {String} a string you can use to cancel the timer in Ember.run.cancel() later.
-*/
-Ember.run.later = function(target, method) {
- var args, expires, timer, guid, wait;
-
- // setTimeout compatibility...
- if (arguments.length===2 && 'function' === typeof target) {
- wait = method;
- method = target;
- target = undefined;
- args = [target, method];
- } else {
- args = slice.call(arguments);
- wait = args.pop();
- }
-
- expires = (+ new Date()) + wait;
- timer = { target: target, method: method, expires: expires, args: args };
- guid = Ember.guidFor(timer);
- timers[guid] = timer;
- run.once(timers, invokeLaterTimers);
- return guid;
-};
-
-/** @private */
-function invokeOnceTimer(guid, onceTimers) {
- if (onceTimers[this.tguid]) { delete onceTimers[this.tguid][this.mguid]; }
- if (timers[guid]) { invoke(this.target, this.method, this.args, 2); }
- delete timers[guid];
-}
-
-/**
- Schedules an item to run one time during the current RunLoop. Calling
- this method with the same target/method combination will have no effect.
-
- Note that although you can pass optional arguments these will not be
- considered when looking for duplicates. New arguments will replace previous
- calls.
-
- Ember.run(function(){
- var doFoo = function() { foo(); }
- Ember.run.once(myContext, doFoo);
- Ember.run.once(myContext, doFoo);
- // doFoo will only be executed once at the end of the RunLoop
- });
-
- @param {Object} target
- (optional) target of method to invoke
-
- @param {Function|String} method
- The method to invoke. If you pass a string it will be resolved on the
- target at the time the method is invoked.
-
- @param {Object...} args
- Optional arguments to pass to the timeout.
-
-
- @returns {Object} timer
-*/
-Ember.run.once = function(target, method) {
- var tguid = Ember.guidFor(target),
- mguid = Ember.guidFor(method),
- onceTimers = run.autorun().onceTimers,
- guid = onceTimers[tguid] && onceTimers[tguid][mguid],
- timer;
-
- if (guid && timers[guid]) {
- timers[guid].args = slice.call(arguments); // replace args
- } else {
- timer = {
- target: target,
- method: method,
- args: slice.call(arguments),
- tguid: tguid,
- mguid: mguid
- };
-
- guid = Ember.guidFor(timer);
- timers[guid] = timer;
- if (!onceTimers[tguid]) { onceTimers[tguid] = {}; }
- onceTimers[tguid][mguid] = guid; // so it isn't scheduled more than once
-
- run.schedule('actions', timer, invokeOnceTimer, guid, onceTimers);
- }
-
- return guid;
-};
-
-var scheduledNext;
-/** @private */
-function invokeNextTimers() {
- scheduledNext = null;
- for(var key in timers) {
- if (!timers.hasOwnProperty(key)) { continue; }
- var timer = timers[key];
- if (timer.next) {
- delete timers[key];
- invoke(timer.target, timer.method, timer.args, 2);
- }
- }
-}
-
-/**
- Schedules an item to run after control has been returned to the system.
- This is often equivalent to calling setTimeout(function...,1).
-
- Ember.run.next(myContext, function(){
- // code to be executed in the next RunLoop, which will be scheduled after the current one
- });
-
- @param {Object} target
- (optional) target of method to invoke
-
- @param {Function|String} method
- The method to invoke. If you pass a string it will be resolved on the
- target at the time the method is invoked.
-
- @param {Object...} args
- Optional arguments to pass to the timeout.
-
- @returns {Object} timer
-*/
-Ember.run.next = function(target, method) {
- var guid,
- timer = {
- target: target,
- method: method,
- args: slice.call(arguments),
- next: true
- };
-
- guid = Ember.guidFor(timer);
- timers[guid] = timer;
-
- if (!scheduledNext) { scheduledNext = setTimeout(invokeNextTimers, 1); }
- return guid;
-};
-
-/**
- Cancels a scheduled item. Must be a value returned by `Ember.run.later()`,
- `Ember.run.once()`, or `Ember.run.next()`.
-
- var runNext = Ember.run.next(myContext, function(){
- // will not be executed
- });
- Ember.run.cancel(runNext);
-
- var runLater = Ember.run.later(myContext, function(){
- // will not be executed
- }, 500);
- Ember.run.cancel(runLater);
-
- var runOnce = Ember.run.once(myContext, function(){
- // will not be executed
- });
- Ember.run.cancel(runOnce);
-
- @param {Object} timer
- Timer object to cancel
-
- @returns {void}
-*/
-Ember.run.cancel = function(timer) {
- delete timers[timer];
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-// Ember.Logger
-// get, set, trySet
-// guidFor, isArray, meta
-// addObserver, removeObserver
-// Ember.run.schedule
-// ..........................................................
-// CONSTANTS
-//
-
-/**
- @static
-
- Debug parameter you can turn on. This will log all bindings that fire to
- the console. This should be disabled in production code. Note that you
- can also enable this from the console or temporarily.
-
- @type Boolean
- @default false
-*/
-Ember.LOG_BINDINGS = false || !!Ember.ENV.LOG_BINDINGS;
-
-var get = Ember.get,
- set = Ember.set,
- guidFor = Ember.guidFor,
- isGlobalPath = Ember.isGlobalPath;
-
-
-/** @private */
-function getWithGlobals(obj, path) {
- return get(isGlobalPath(path) ? window : obj, path);
-}
-
-// ..........................................................
-// BINDING
-//
-
-/** @private */
-var Binding = function(toPath, fromPath) {
- this._direction = 'fwd';
- this._from = fromPath;
- this._to = toPath;
- this._directionMap = Ember.Map.create();
-};
-
-Binding.prototype = /** @scope Ember.Binding.prototype */ {
- /**
- This copies the Binding so it can be connected to another object.
- @returns {Ember.Binding}
- */
- copy: function () {
- var copy = new Binding(this._to, this._from);
- if (this._oneWay) { copy._oneWay = true; }
- return copy;
- },
-
- // ..........................................................
- // CONFIG
- //
-
- /**
- This will set "from" property path to the specified value. It will not
- attempt to resolve this property path to an actual object until you
- connect the binding.
-
- The binding will search for the property path starting at the root object
- you pass when you connect() the binding. It follows the same rules as
- `get()` - see that method for more information.
-
- @param {String} propertyPath the property path to connect to
- @returns {Ember.Binding} receiver
- */
- from: function(path) {
- this._from = path;
- return this;
- },
-
- /**
- This will set the "to" property path to the specified value. It will not
- attempt to resolve this property path to an actual object until you
- connect the binding.
-
- The binding will search for the property path starting at the root object
- you pass when you connect() the binding. It follows the same rules as
- `get()` - see that method for more information.
-
- @param {String|Tuple} propertyPath A property path or tuple
- @returns {Ember.Binding} this
- */
- to: function(path) {
- this._to = path;
- return this;
- },
-
- /**
- Configures the binding as one way. A one-way binding will relay changes
- on the "from" side to the "to" side, but not the other way around. This
- means that if you change the "to" side directly, the "from" side may have
- a different value.
-
- @returns {Ember.Binding} receiver
- */
- oneWay: function() {
- this._oneWay = true;
- return this;
- },
-
- /** @private */
- toString: function() {
- var oneWay = this._oneWay ? '[oneWay]' : '';
- return "Ember.Binding<" + guidFor(this) + ">(" + this._from + " -> " + this._to + ")" + oneWay;
- },
-
- // ..........................................................
- // CONNECT AND SYNC
- //
-
- /**
- Attempts to connect this binding instance so that it can receive and relay
- changes. This method will raise an exception if you have not set the
- from/to properties yet.
-
- @param {Object} obj The root object for this binding.
- @returns {Ember.Binding} this
- */
- connect: function(obj) {
- Ember.assert('Must pass a valid object to Ember.Binding.connect()', !!obj);
-
- var fromPath = this._from, toPath = this._to;
- Ember.trySet(obj, toPath, getWithGlobals(obj, fromPath));
-
- // add an observer on the object to be notified when the binding should be updated
- Ember.addObserver(obj, fromPath, this, this.fromDidChange);
-
- // if the binding is a two-way binding, also set up an observer on the target
- if (!this._oneWay) { Ember.addObserver(obj, toPath, this, this.toDidChange); }
-
- this._readyToSync = true;
-
- return this;
- },
-
- /**
- Disconnects the binding instance. Changes will no longer be relayed. You
- will not usually need to call this method.
-
- @param {Object} obj
- The root object you passed when connecting the binding.
-
- @returns {Ember.Binding} this
- */
- disconnect: function(obj) {
- Ember.assert('Must pass a valid object to Ember.Binding.disconnect()', !!obj);
-
- var twoWay = !this._oneWay;
-
- // remove an observer on the object so we're no longer notified of
- // changes that should update bindings.
- Ember.removeObserver(obj, this._from, this, this.fromDidChange);
-
- // if the binding is two-way, remove the observer from the target as well
- if (twoWay) { Ember.removeObserver(obj, this._to, this, this.toDidChange); }
-
- this._readyToSync = false; // disable scheduled syncs...
- return this;
- },
-
- // ..........................................................
- // PRIVATE
- //
-
- /** @private - called when the from side changes */
- fromDidChange: function(target) {
- this._scheduleSync(target, 'fwd');
- },
-
- /** @private - called when the to side changes */
- toDidChange: function(target) {
- this._scheduleSync(target, 'back');
- },
-
- /** @private */
- _scheduleSync: function(obj, dir) {
- var directionMap = this._directionMap;
- var existingDir = directionMap.get(obj);
-
- // if we haven't scheduled the binding yet, schedule it
- if (!existingDir) {
- Ember.run.schedule('sync', this, this._sync, obj);
- directionMap.set(obj, dir);
- }
-
- // If both a 'back' and 'fwd' sync have been scheduled on the same object,
- // default to a 'fwd' sync so that it remains deterministic.
- if (existingDir === 'back' && dir === 'fwd') {
- directionMap.set(obj, 'fwd');
- }
- },
-
- /** @private */
- _sync: function(obj) {
- var log = Ember.LOG_BINDINGS;
-
- // don't synchronize destroyed objects or disconnected bindings
- if (obj.isDestroyed || !this._readyToSync) { return; }
-
- // get the direction of the binding for the object we are
- // synchronizing from
- var directionMap = this._directionMap;
- var direction = directionMap.get(obj);
-
- var fromPath = this._from, toPath = this._to;
-
- directionMap.remove(obj);
-
- // if we're synchronizing from the remote object...
- if (direction === 'fwd') {
- var fromValue = getWithGlobals(obj, this._from);
- if (log) {
- Ember.Logger.log(' ', this.toString(), '->', fromValue, obj);
- }
- if (this._oneWay) {
- Ember.trySet(obj, toPath, fromValue);
- } else {
- Ember._suspendObserver(obj, toPath, this, this.toDidChange, function () {
- Ember.trySet(obj, toPath, fromValue);
- });
- }
- // if we're synchronizing *to* the remote object
- } else if (direction === 'back') {
- var toValue = get(obj, this._to);
- if (log) {
- Ember.Logger.log(' ', this.toString(), '<-', toValue, obj);
- }
- Ember._suspendObserver(obj, fromPath, this, this.fromDidChange, function () {
- Ember.trySet(Ember.isGlobalPath(fromPath) ? window : obj, fromPath, toValue);
- });
- }
- }
-
-};
-
-/** @private */
-function mixinProperties(to, from) {
- for (var key in from) {
- if (from.hasOwnProperty(key)) {
- to[key] = from[key];
- }
- }
-}
-
-mixinProperties(Binding,
-/** @scope Ember.Binding */ {
-
- /**
- @see Ember.Binding.prototype.from
- */
- from: function() {
- var C = this, binding = new C();
- return binding.from.apply(binding, arguments);
- },
-
- /**
- @see Ember.Binding.prototype.to
- */
- to: function() {
- var C = this, binding = new C();
- return binding.to.apply(binding, arguments);
- },
-
- /**
- Creates a new Binding instance and makes it apply in a single direction.
- A one-way binding will relay changes on the "from" side object (supplies
- as the `from` argument) the "to" side, but not the other way around.
- This means that if you change the "to" side directly, the "from" side may have
- a different value.
-
- @param {String} from from path.
- @param {Boolean} [flag] (Optional) passing nothing here will make the binding oneWay. You can
- instead pass false to disable oneWay, making the binding two way again.
-
- @see Ember.Binding.prototype.oneWay
- */
- oneWay: function(from, flag) {
- var C = this, binding = new C(null, from);
- return binding.oneWay(flag);
- }
-
-});
-
-/**
- @class
-
- An Ember.Binding connects the properties of two objects so that whenever the
- value of one property changes, the other property will be changed also.
-
- ## Automatic Creation of Bindings with `/^*Binding/`-named Properties
- You do not usually create Binding objects directly but instead describe
- bindings in your class or object definition using automatic binding detection.
-
- Properties ending in a `Binding` suffix will be converted to Ember.Binding instances.
- The value of this property should be a string representing a path to another object or
- a custom binding instanced created using Binding helpers (see "Customizing Your Bindings"):
-
- valueBinding: "MyApp.someController.title"
-
- This will create a binding from `MyApp.someController.title` to the `value`
- property of your object instance automatically. Now the two values will be
- kept in sync.
-
- ## One Way Bindings
-
- One especially useful binding customization you can use is the `oneWay()`
- helper. This helper tells Ember that you are only interested in
- receiving changes on the object you are binding from. For example, if you
- are binding to a preference and you want to be notified if the preference
- has changed, but your object will not be changing the preference itself, you
- could do:
-
- bigTitlesBinding: Ember.Binding.oneWay("MyApp.preferencesController.bigTitles")
-
- This way if the value of MyApp.preferencesController.bigTitles changes the
- "bigTitles" property of your object will change also. However, if you
- change the value of your "bigTitles" property, it will not update the
- preferencesController.
-
- One way bindings are almost twice as fast to setup and twice as fast to
- execute because the binding only has to worry about changes to one side.
-
- You should consider using one way bindings anytime you have an object that
- may be created frequently and you do not intend to change a property; only
- to monitor it for changes. (such as in the example above).
-
- ## Adding Bindings Manually
-
- All of the examples above show you how to configure a custom binding, but
- the result of these customizations will be a binding template, not a fully
- active Binding instance. The binding will actually become active only when you
- instantiate the object the binding belongs to. It is useful however, to
- understand what actually happens when the binding is activated.
-
- For a binding to function it must have at least a "from" property and a "to"
- property. The from property path points to the object/key that you want to
- bind from while the to path points to the object/key you want to bind to.
-
- When you define a custom binding, you are usually describing the property
- you want to bind from (such as "MyApp.someController.value" in the examples
- above). When your object is created, it will automatically assign the value
- you want to bind "to" based on the name of your binding key. In the
- examples above, during init, Ember objects will effectively call
- something like this on your binding:
-
- binding = Ember.Binding.from(this.valueBinding).to("value");
-
- This creates a new binding instance based on the template you provide, and
- sets the to path to the "value" property of the new object. Now that the
- binding is fully configured with a "from" and a "to", it simply needs to be
- connected to become active. This is done through the connect() method:
-
- binding.connect(this);
-
- Note that when you connect a binding you pass the object you want it to be
- connected to. This object will be used as the root for both the from and
- to side of the binding when inspecting relative paths. This allows the
- binding to be automatically inherited by subclassed objects as well.
-
- Now that the binding is connected, it will observe both the from and to side
- and relay changes.
-
- If you ever needed to do so (you almost never will, but it is useful to
- understand this anyway), you could manually create an active binding by
- using the Ember.bind() helper method. (This is the same method used by
- to setup your bindings on objects):
-
- Ember.bind(MyApp.anotherObject, "value", "MyApp.someController.value");
-
- Both of these code fragments have the same effect as doing the most friendly
- form of binding creation like so:
-
- MyApp.anotherObject = Ember.Object.create({
- valueBinding: "MyApp.someController.value",
-
- // OTHER CODE FOR THIS OBJECT...
-
- });
-
- Ember's built in binding creation method makes it easy to automatically
- create bindings for you. You should always use the highest-level APIs
- available, even if you understand how it works underneath.
-
- @since Ember 0.9
-*/
-Ember.Binding = Binding;
-
-/**
- Global helper method to create a new binding. Just pass the root object
- along with a to and from path to create and connect the binding.
-
- @param {Object} obj
- The root object of the transform.
-
- @param {String} to
- The path to the 'to' side of the binding. Must be relative to obj.
-
- @param {String} from
- The path to the 'from' side of the binding. Must be relative to obj or
- a global path.
-
- @returns {Ember.Binding} binding instance
-*/
-Ember.bind = function(obj, to, from) {
- return new Ember.Binding(to, from).connect(obj);
-};
-
-Ember.oneWay = function(obj, to, from) {
- return new Ember.Binding(to, from).oneWay().connect(obj);
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var Mixin, REQUIRED, Alias,
- classToString, superClassString,
- a_map = Ember.ArrayPolyfills.map,
- a_indexOf = Ember.ArrayPolyfills.indexOf,
- a_forEach = Ember.ArrayPolyfills.forEach,
- a_slice = [].slice,
- EMPTY_META = {}, // dummy for non-writable meta
- META_SKIP = { __emberproto__: true, __ember_count__: true },
- o_create = Ember.create,
- defineProperty = Ember.defineProperty,
- guidFor = Ember.guidFor;
-
-/** @private */
-function mixinsMeta(obj) {
- var m = Ember.meta(obj, true), ret = m.mixins;
- if (!ret) {
- ret = m.mixins = { __emberproto__: obj };
- } else if (ret.__emberproto__ !== obj) {
- ret = m.mixins = o_create(ret);
- ret.__emberproto__ = obj;
- }
- return ret;
-}
-
-/** @private */
-function initMixin(mixin, args) {
- if (args && args.length > 0) {
- mixin.mixins = a_map.call(args, function(x) {
- if (x instanceof Mixin) { return x; }
-
- // Note: Manually setup a primitive mixin here. This is the only
- // way to actually get a primitive mixin. This way normal creation
- // of mixins will give you combined mixins...
- var mixin = new Mixin();
- mixin.properties = x;
- return mixin;
- });
- }
- return mixin;
-}
-
-/** @private */
-function isMethod(obj) {
- return 'function' === typeof obj &&
- obj.isMethod !== false &&
- obj !== Boolean && obj !== Object && obj !== Number && obj !== Array && obj !== Date && obj !== String;
-}
-
-/** @private */
-function mergeMixins(mixins, m, descs, values, base) {
- var len = mixins.length, idx, mixin, guid, props, value, key, ovalue, concats;
-
- /** @private */
- function removeKeys(keyName) {
- delete descs[keyName];
- delete values[keyName];
- }
-
- for(idx=0; idx < len; idx++) {
- mixin = mixins[idx];
- Ember.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(mixin), typeof mixin === 'object' && mixin !== null && Object.prototype.toString.call(mixin) !== '[object Array]');
-
- if (mixin instanceof Mixin) {
- guid = guidFor(mixin);
- if (m[guid]) { continue; }
- m[guid] = mixin;
- props = mixin.properties;
- } else {
- props = mixin; // apply anonymous mixin properties
- }
-
- if (props) {
- // reset before adding each new mixin to pickup concats from previous
- concats = values.concatenatedProperties || base.concatenatedProperties;
- if (props.concatenatedProperties) {
- concats = concats ? concats.concat(props.concatenatedProperties) : props.concatenatedProperties;
- }
-
- for (key in props) {
- if (!props.hasOwnProperty(key)) { continue; }
- value = props[key];
- if (value instanceof Ember.Descriptor) {
- if (value === REQUIRED && descs[key]) { continue; }
-
- descs[key] = value;
- values[key] = undefined;
- } else {
- // impl super if needed...
- if (isMethod(value)) {
- ovalue = descs[key] === undefined && values[key];
- if (!ovalue) { ovalue = base[key]; }
- if ('function' !== typeof ovalue) { ovalue = null; }
- if (ovalue) {
- var o = value.__ember_observes__, ob = value.__ember_observesBefore__;
- value = Ember.wrap(value, ovalue);
- value.__ember_observes__ = o;
- value.__ember_observesBefore__ = ob;
- }
- } else if ((concats && a_indexOf.call(concats, key) >= 0) || key === 'concatenatedProperties') {
- var baseValue = values[key] || base[key];
- value = baseValue ? baseValue.concat(value) : Ember.makeArray(value);
- }
-
- descs[key] = undefined;
- values[key] = value;
- }
- }
-
- // manually copy toString() because some JS engines do not enumerate it
- if (props.hasOwnProperty('toString')) {
- base.toString = props.toString;
- }
-
- } else if (mixin.mixins) {
- mergeMixins(mixin.mixins, m, descs, values, base);
- if (mixin._without) { a_forEach.call(mixin._without, removeKeys); }
- }
- }
-}
-
-/** @private */
-function writableReq(obj) {
- var m = Ember.meta(obj), req = m.required;
- if (!req || req.__emberproto__ !== obj) {
- req = m.required = req ? o_create(req) : { __ember_count__: 0 };
- req.__emberproto__ = obj;
- }
- return req;
-}
-
-var IS_BINDING = Ember.IS_BINDING = /^.+Binding$/;
-
-/** @private */
-function detectBinding(obj, key, value, m) {
- if (IS_BINDING.test(key)) {
- var bindings = m.bindings;
- if (!bindings) {
- bindings = m.bindings = { __emberproto__: obj };
- } else if (bindings.__emberproto__ !== obj) {
- bindings = m.bindings = o_create(m.bindings);
- bindings.__emberproto__ = obj;
- }
- bindings[key] = value;
- }
-}
-
-/** @private */
-function connectBindings(obj, m) {
- // TODO Mixin.apply(instance) should disconnect binding if exists
- var bindings = m.bindings, key, binding, to;
- if (bindings) {
- for (key in bindings) {
- binding = key !== '__emberproto__' && bindings[key];
- if (binding) {
- to = key.slice(0, -7); // strip Binding off end
- if (binding instanceof Ember.Binding) {
- binding = binding.copy(); // copy prototypes' instance
- binding.to(to);
- } else { // binding is string path
- binding = new Ember.Binding(to, binding);
- }
- binding.connect(obj);
- obj[key] = binding;
- }
- }
- // mark as applied
- m.bindings = { __emberproto__: obj };
- }
-}
-
-function finishPartial(obj, m) {
- connectBindings(obj, m || Ember.meta(obj));
- return obj;
-}
-
-/** @private */
-function applyMixin(obj, mixins, partial) {
- var descs = {}, values = {}, m = Ember.meta(obj), req = m.required,
- key, value, desc, prevValue, paths, len, idx;
-
- // Go through all mixins and hashes passed in, and:
- //
- // * Handle concatenated properties
- // * Set up _super wrapping if necessary
- // * Set up computed property descriptors
- // * Copying `toString` in broken browsers
- mergeMixins(mixins, mixinsMeta(obj), descs, values, obj);
-
- for(key in values) {
- if (key === 'contructor') { continue; }
- if (!values.hasOwnProperty(key)) { continue; }
-
- desc = descs[key];
- value = values[key];
-
- if (desc === REQUIRED) {
- if (!(key in obj)) {
- Ember.assert('Required property not defined: '+key, !!partial);
-
- // for partial applies add to hash of required keys
- req = writableReq(obj);
- req.__ember_count__++;
- req[key] = true;
- }
- } else {
- while (desc && desc instanceof Alias) {
- var altKey = desc.methodName;
- if (descs[altKey] || values[altKey]) {
- value = values[altKey];
- desc = descs[altKey];
- } else if (m.descs[altKey]) {
- desc = m.descs[altKey];
- value = undefined;
- } else {
- desc = undefined;
- value = obj[altKey];
- }
- }
-
- if (desc === undefined && value === undefined) { continue; }
-
- prevValue = obj[key];
-
- if ('function' === typeof prevValue) {
- if ((paths = prevValue.__ember_observesBefore__)) {
- len = paths.length;
- for (idx=0; idx < len; idx++) {
- Ember.removeBeforeObserver(obj, paths[idx], null, key);
- }
- } else if ((paths = prevValue.__ember_observes__)) {
- len = paths.length;
- for (idx=0; idx < len; idx++) {
- Ember.removeObserver(obj, paths[idx], null, key);
- }
- }
- }
-
- detectBinding(obj, key, value, m);
-
- defineProperty(obj, key, desc, value, m);
-
- if ('function' === typeof value) {
- if (paths = value.__ember_observesBefore__) {
- len = paths.length;
- for (idx=0; idx < len; idx++) {
- Ember.addBeforeObserver(obj, paths[idx], null, key);
- }
- } else if (paths = value.__ember_observes__) {
- len = paths.length;
- for (idx=0; idx < len; idx++) {
- Ember.addObserver(obj, paths[idx], null, key);
- }
- }
- }
-
- if (req && req[key]) {
- req = writableReq(obj);
- req.__ember_count__--;
- req[key] = false;
- }
- }
- }
-
- if (!partial) { // don't apply to prototype
- finishPartial(obj, m);
- }
-
- // Make sure no required attrs remain
- if (!partial && req && req.__ember_count__>0) {
- var keys = [];
- for (key in req) {
- if (META_SKIP[key]) { continue; }
- keys.push(key);
- }
- // TODO: Remove surrounding if clause from production build
- Ember.assert('Required properties not defined: '+keys.join(','));
- }
- return obj;
-}
-
-Ember.mixin = function(obj) {
- var args = a_slice.call(arguments, 1);
- applyMixin(obj, args, false);
- return obj;
-};
-
-/**
- @class
-
- The `Ember.Mixin` class allows you to create mixins, whose properties can be
- added to other classes. For instance,
-
- App.Editable = Ember.Mixin.create({
- edit: function() {
- console.log('starting to edit');
- this.set('isEditing', true);
- },
- isEditing: false
- });
-
- // Mix mixins into classes by passing them as the first arguments to
- // .extend or .create.
- App.CommentView = Ember.View.extend(App.Editable, {
- template: Ember.Handlebars.compile('{{#if isEditing}}...{{else}}...{{/if}}')
- });
-
- commentView = App.CommentView.create();
- commentView.edit(); // => outputs 'starting to edit'
-
- Note that Mixins are created with `Ember.Mixin.create`, not
- `Ember.Mixin.extend`.
-*/
-Ember.Mixin = function() { return initMixin(this, arguments); };
-
-/** @private */
-Mixin = Ember.Mixin;
-
-/** @private */
-Mixin._apply = applyMixin;
-
-Mixin.applyPartial = function(obj) {
- var args = a_slice.call(arguments, 1);
- return applyMixin(obj, args, true);
-};
-
-Mixin.finishPartial = finishPartial;
-
-Mixin.create = function() {
- classToString.processed = false;
- var M = this;
- return initMixin(new M(), arguments);
-};
-
-var MixinPrototype = Mixin.prototype;
-
-MixinPrototype.reopen = function() {
- var mixin, tmp;
-
- if (this.properties) {
- mixin = Mixin.create();
- mixin.properties = this.properties;
- delete this.properties;
- this.mixins = [mixin];
- } else if (!this.mixins) {
- this.mixins = [];
- }
-
- var len = arguments.length, mixins = this.mixins, idx;
-
- for(idx=0; idx < len; idx++) {
- mixin = arguments[idx];
- Ember.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(mixin), typeof mixin === 'object' && mixin !== null && Object.prototype.toString.call(mixin) !== '[object Array]');
-
- if (mixin instanceof Mixin) {
- mixins.push(mixin);
- } else {
- tmp = Mixin.create();
- tmp.properties = mixin;
- mixins.push(tmp);
- }
- }
-
- return this;
-};
-
-MixinPrototype.apply = function(obj) {
- return applyMixin(obj, [this], false);
-};
-
-MixinPrototype.applyPartial = function(obj) {
- return applyMixin(obj, [this], true);
-};
-
-/** @private */
-function _detect(curMixin, targetMixin, seen) {
- var guid = guidFor(curMixin);
-
- if (seen[guid]) { return false; }
- seen[guid] = true;
-
- if (curMixin === targetMixin) { return true; }
- var mixins = curMixin.mixins, loc = mixins ? mixins.length : 0;
- while (--loc >= 0) {
- if (_detect(mixins[loc], targetMixin, seen)) { return true; }
- }
- return false;
-}
-
-MixinPrototype.detect = function(obj) {
- if (!obj) { return false; }
- if (obj instanceof Mixin) { return _detect(obj, this, {}); }
- var mixins = Ember.meta(obj, false).mixins;
- if (mixins) {
- return !!mixins[guidFor(this)];
- }
- return false;
-};
-
-MixinPrototype.without = function() {
- var ret = new Mixin(this);
- ret._without = a_slice.call(arguments);
- return ret;
-};
-
-/** @private */
-function _keys(ret, mixin, seen) {
- if (seen[guidFor(mixin)]) { return; }
- seen[guidFor(mixin)] = true;
-
- if (mixin.properties) {
- var props = mixin.properties;
- for (var key in props) {
- if (props.hasOwnProperty(key)) { ret[key] = true; }
- }
- } else if (mixin.mixins) {
- a_forEach.call(mixin.mixins, function(x) { _keys(ret, x, seen); });
- }
-}
-
-MixinPrototype.keys = function() {
- var keys = {}, seen = {}, ret = [];
- _keys(keys, this, seen);
- for(var key in keys) {
- if (keys.hasOwnProperty(key)) { ret.push(key); }
- }
- return ret;
-};
-
-/** @private - make Mixin's have nice displayNames */
-
-var NAME_KEY = Ember.GUID_KEY+'_name';
-var get = Ember.get;
-
-/** @private */
-function processNames(paths, root, seen) {
- var idx = paths.length;
- for(var key in root) {
- if (!root.hasOwnProperty || !root.hasOwnProperty(key)) { continue; }
- var obj = root[key];
- paths[idx] = key;
-
- if (obj && obj.toString === classToString) {
- obj[NAME_KEY] = paths.join('.');
- } else if (obj && get(obj, 'isNamespace')) {
- if (seen[guidFor(obj)]) { continue; }
- seen[guidFor(obj)] = true;
- processNames(paths, obj, seen);
- }
- }
- paths.length = idx; // cut out last item
-}
-
-/** @private */
-function findNamespaces() {
- var Namespace = Ember.Namespace, obj, isNamespace;
-
- if (Namespace.PROCESSED) { return; }
-
- for (var prop in window) {
- // get(window.globalStorage, 'isNamespace') would try to read the storage for domain isNamespace and cause exception in Firefox.
- // globalStorage is a storage obsoleted by the WhatWG storage specification. See https://developer.mozilla.org/en/DOM/Storage#globalStorage
- if (prop === "globalStorage" && window.StorageList && window.globalStorage instanceof window.StorageList) { continue; }
- // Unfortunately, some versions of IE don't support window.hasOwnProperty
- if (window.hasOwnProperty && !window.hasOwnProperty(prop)) { continue; }
-
- // At times we are not allowed to access certain properties for security reasons.
- // There are also times where even if we can access them, we are not allowed to access their properties.
- try {
- obj = window[prop];
- isNamespace = obj && get(obj, 'isNamespace');
- } catch (e) {
- continue;
- }
-
- if (isNamespace) {
- Ember.deprecate("Namespaces should not begin with lowercase.", /^[A-Z]/.test(prop));
- obj[NAME_KEY] = prop;
- }
- }
-}
-
-Ember.identifyNamespaces = findNamespaces;
-
-/** @private */
-superClassString = function(mixin) {
- var superclass = mixin.superclass;
- if (superclass) {
- if (superclass[NAME_KEY]) { return superclass[NAME_KEY]; }
- else { return superClassString(superclass); }
- } else {
- return;
- }
-};
-
-/** @private */
-classToString = function() {
- var Namespace = Ember.Namespace, namespace;
-
- // TODO: Namespace should really be in Metal
- if (Namespace) {
- if (!this[NAME_KEY] && !classToString.processed) {
- if (!Namespace.PROCESSED) {
- findNamespaces();
- Namespace.PROCESSED = true;
- }
-
- classToString.processed = true;
-
- var namespaces = Namespace.NAMESPACES;
- for (var i=0, l=namespaces.length; i<l; i++) {
- namespace = namespaces[i];
- processNames([namespace.toString()], namespace, {});
- }
- }
- }
-
- if (this[NAME_KEY]) {
- return this[NAME_KEY];
- } else {
- var str = superClassString(this);
- if (str) {
- return "(subclass of " + str + ")";
- } else {
- return "(unknown mixin)";
- }
- }
-};
-
-MixinPrototype.toString = classToString;
-
-// returns the mixins currently applied to the specified object
-// TODO: Make Ember.mixin
-Mixin.mixins = function(obj) {
- var ret = [], mixins = Ember.meta(obj, false).mixins, key, mixin;
- if (mixins) {
- for(key in mixins) {
- if (META_SKIP[key]) { continue; }
- mixin = mixins[key];
-
- // skip primitive mixins since these are always anonymous
- if (!mixin.properties) { ret.push(mixins[key]); }
- }
- }
- return ret;
-};
-
-REQUIRED = new Ember.Descriptor();
-REQUIRED.toString = function() { return '(Required Property)'; };
-
-Ember.required = function() {
- return REQUIRED;
-};
-
-/** @private */
-Alias = function(methodName) {
- this.methodName = methodName;
-};
-Alias.prototype = new Ember.Descriptor();
-
-Ember.alias = function(methodName) {
- return new Alias(methodName);
-};
-
-// ..........................................................
-// OBSERVER HELPER
-//
-
-Ember.observer = function(func) {
- var paths = a_slice.call(arguments, 1);
- func.__ember_observes__ = paths;
- return func;
-};
-
-// If observers ever become asynchronous, Ember.immediateObserver
-// must remain synchronous.
-Ember.immediateObserver = function() {
- for (var i=0, l=arguments.length; i<l; i++) {
- var arg = arguments[i];
- Ember.assert("Immediate observers must observe internal properties only, not properties on other objects.", typeof arg !== "string" || arg.indexOf('.') === -1);
- }
-
- return Ember.observer.apply(this, arguments);
-};
-
-Ember.beforeObserver = function(func) {
- var paths = a_slice.call(arguments, 1);
- func.__ember_observesBefore__ = paths;
- return func;
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Metal
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-(function() {
-/**
- * @license
- * ==========================================================================
- * Ember
- * Copyright ©2006-2011, Strobe Inc. and contributors.
- * Portions copyright ©2008-2011 Apple Inc. All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * For more information about Ember, visit http://www.emberjs.com
- *
- * ==========================================================================
- */
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/*globals ENV */
-var indexOf = Ember.EnumerableUtils.indexOf;
-
-// ........................................
-// TYPING & ARRAY MESSAGING
-//
-
-var TYPE_MAP = {};
-var t = "Boolean Number String Function Array Date RegExp Object".split(" ");
-Ember.ArrayPolyfills.forEach.call(t, function(name) {
- TYPE_MAP[ "[object " + name + "]" ] = name.toLowerCase();
-});
-
-var toString = Object.prototype.toString;
-
-/**
- Returns a consistent type for the passed item.
-
- Use this instead of the built-in Ember.typeOf() to get the type of an item.
- It will return the same result across all browsers and includes a bit
- more detail. Here is what will be returned:
-
- | Return Value | Meaning |
- |---------------|------------------------------------------------------|
- | 'string' | String primitive |
- | 'number' | Number primitive |
- | 'boolean' | Boolean primitive |
- | 'null' | Null value |
- | 'undefined' | Undefined value |
- | 'function' | A function |
- | 'array' | An instance of Array |
- | 'class' | A Ember class (created using Ember.Object.extend()) |
- | 'instance' | A Ember object instance |
- | 'error' | An instance of the Error object |
- | 'object' | A JavaScript object not inheriting from Ember.Object |
-
- Examples:
-
- Ember.typeOf(); => 'undefined'
- Ember.typeOf(null); => 'null'
- Ember.typeOf(undefined); => 'undefined'
- Ember.typeOf('michael'); => 'string'
- Ember.typeOf(101); => 'number'
- Ember.typeOf(true); => 'boolean'
- Ember.typeOf(Ember.makeArray); => 'function'
- Ember.typeOf([1,2,90]); => 'array'
- Ember.typeOf(Ember.Object.extend()); => 'class'
- Ember.typeOf(Ember.Object.create()); => 'instance'
- Ember.typeOf(new Error('teamocil')); => 'error'
-
- // "normal" JavaScript object
- Ember.typeOf({a: 'b'}); => 'object'
-
- @param item {Object} the item to check
- @returns {String} the type
-*/
-Ember.typeOf = function(item) {
- var ret;
-
- ret = (item === null || item === undefined) ? String(item) : TYPE_MAP[toString.call(item)] || 'object';
-
- if (ret === 'function') {
- if (Ember.Object && Ember.Object.detect(item)) ret = 'class';
- } else if (ret === 'object') {
- if (item instanceof Error) ret = 'error';
- else if (Ember.Object && item instanceof Ember.Object) ret = 'instance';
- else ret = 'object';
- }
-
- return ret;
-};
-
-/**
- Returns true if the passed value is null or undefined. This avoids errors
- from JSLint complaining about use of ==, which can be technically
- confusing.
-
- Ember.none(); => true
- Ember.none(null); => true
- Ember.none(undefined); => true
- Ember.none(''); => false
- Ember.none([]); => false
- Ember.none(function(){}); => false
-
- @param {Object} obj Value to test
- @returns {Boolean}
-*/
-Ember.none = function(obj) {
- return obj === null || obj === undefined;
-};
-
-/**
- Verifies that a value is null or an empty string | array | function.
-
- Constrains the rules on `Ember.none` by returning false for empty
- string and empty arrays.
-
- Ember.empty(); => true
- Ember.empty(null); => true
- Ember.empty(undefined); => true
- Ember.empty(''); => true
- Ember.empty([]); => true
- Ember.empty('tobias fünke'); => false
- Ember.empty([0,1,2]); => false
-
- @param {Object} obj Value to test
- @returns {Boolean}
-*/
-Ember.empty = function(obj) {
- return obj === null || obj === undefined || (obj.length === 0 && typeof obj !== 'function');
-};
-
-/**
- This will compare two javascript values of possibly different types.
- It will tell you which one is greater than the other by returning:
-
- - -1 if the first is smaller than the second,
- - 0 if both are equal,
- - 1 if the first is greater than the second.
-
- The order is calculated based on Ember.ORDER_DEFINITION, if types are different.
- In case they have the same type an appropriate comparison for this type is made.
-
- Ember.compare('hello', 'hello'); => 0
- Ember.compare('abc', 'dfg'); => -1
- Ember.compare(2, 1); => 1
-
- @param {Object} v First value to compare
- @param {Object} w Second value to compare
- @returns {Number} -1 if v < w, 0 if v = w and 1 if v > w.
-*/
-Ember.compare = function compare(v, w) {
- if (v === w) { return 0; }
-
- var type1 = Ember.typeOf(v);
- var type2 = Ember.typeOf(w);
-
- var Comparable = Ember.Comparable;
- if (Comparable) {
- if (type1==='instance' && Comparable.detect(v.constructor)) {
- return v.constructor.compare(v, w);
- }
-
- if (type2 === 'instance' && Comparable.detect(w.constructor)) {
- return 1-w.constructor.compare(w, v);
- }
- }
-
- // If we haven't yet generated a reverse-mapping of Ember.ORDER_DEFINITION,
- // do so now.
- var mapping = Ember.ORDER_DEFINITION_MAPPING;
- if (!mapping) {
- var order = Ember.ORDER_DEFINITION;
- mapping = Ember.ORDER_DEFINITION_MAPPING = {};
- var idx, len;
- for (idx = 0, len = order.length; idx < len; ++idx) {
- mapping[order[idx]] = idx;
- }
-
- // We no longer need Ember.ORDER_DEFINITION.
- delete Ember.ORDER_DEFINITION;
- }
-
- var type1Index = mapping[type1];
- var type2Index = mapping[type2];
-
- if (type1Index < type2Index) { return -1; }
- if (type1Index > type2Index) { return 1; }
-
- // types are equal - so we have to check values now
- switch (type1) {
- case 'boolean':
- case 'number':
- if (v < w) { return -1; }
- if (v > w) { return 1; }
- return 0;
-
- case 'string':
- var comp = v.localeCompare(w);
- if (comp < 0) { return -1; }
- if (comp > 0) { return 1; }
- return 0;
-
- case 'array':
- var vLen = v.length;
- var wLen = w.length;
- var l = Math.min(vLen, wLen);
- var r = 0;
- var i = 0;
- while (r === 0 && i < l) {
- r = compare(v[i],w[i]);
- i++;
- }
- if (r !== 0) { return r; }
-
- // all elements are equal now
- // shorter array should be ordered first
- if (vLen < wLen) { return -1; }
- if (vLen > wLen) { return 1; }
- // arrays are equal now
- return 0;
-
- case 'instance':
- if (Ember.Comparable && Ember.Comparable.detect(v)) {
- return v.compare(v, w);
- }
- return 0;
-
- case 'date':
- var vNum = v.getTime();
- var wNum = w.getTime();
- if (vNum < wNum) { return -1; }
- if (vNum > wNum) { return 1; }
- return 0;
-
- default:
- return 0;
- }
-};
-
-/** @private */
-function _copy(obj, deep, seen, copies) {
- var ret, loc, key;
-
- // primitive data types are immutable, just return them.
- if ('object' !== typeof obj || obj===null) return obj;
-
- // avoid cyclical loops
- if (deep && (loc=indexOf(seen, obj))>=0) return copies[loc];
-
- Ember.assert('Cannot clone an Ember.Object that does not implement Ember.Copyable', !(obj instanceof Ember.Object) || (Ember.Copyable && Ember.Copyable.detect(obj)));
-
- // IMPORTANT: this specific test will detect a native array only. Any other
- // object will need to implement Copyable.
- if (Ember.typeOf(obj) === 'array') {
- ret = obj.slice();
- if (deep) {
- loc = ret.length;
- while(--loc>=0) ret[loc] = _copy(ret[loc], deep, seen, copies);
- }
- } else if (Ember.Copyable && Ember.Copyable.detect(obj)) {
- ret = obj.copy(deep, seen, copies);
- } else {
- ret = {};
- for(key in obj) {
- if (!obj.hasOwnProperty(key)) continue;
- ret[key] = deep ? _copy(obj[key], deep, seen, copies) : obj[key];
- }
- }
-
- if (deep) {
- seen.push(obj);
- copies.push(ret);
- }
-
- return ret;
-}
-
-/**
- Creates a clone of the passed object. This function can take just about
- any type of object and create a clone of it, including primitive values
- (which are not actually cloned because they are immutable).
-
- If the passed object implements the clone() method, then this function
- will simply call that method and return the result.
-
- @param {Object} object The object to clone
- @param {Boolean} deep If true, a deep copy of the object is made
- @returns {Object} The cloned object
-*/
-Ember.copy = function(obj, deep) {
- // fast paths
- if ('object' !== typeof obj || obj===null) return obj; // can't copy primitives
- if (Ember.Copyable && Ember.Copyable.detect(obj)) return obj.copy(deep);
- return _copy(obj, deep, deep ? [] : null, deep ? [] : null);
-};
-
-/**
- Convenience method to inspect an object. This method will attempt to
- convert the object into a useful string description.
-
- @param {Object} obj The object you want to inspect.
- @returns {String} A description of the object
-*/
-Ember.inspect = function(obj) {
- var v, ret = [];
- for(var key in obj) {
- if (obj.hasOwnProperty(key)) {
- v = obj[key];
- if (v === 'toString') { continue; } // ignore useless items
- if (Ember.typeOf(v) === 'function') { v = "function() { ... }"; }
- ret.push(key + ": " + v);
- }
- }
- return "{" + ret.join(" , ") + "}";
-};
-
-/**
- Compares two objects, returning true if they are logically equal. This is
- a deeper comparison than a simple triple equal. For sets it will compare the
- internal objects. For any other object that implements `isEqual()` it will
- respect that method.
-
- Ember.isEqual('hello', 'hello'); => true
- Ember.isEqual(1, 2); => false
- Ember.isEqual([4,2], [4,2]); => false
-
- @param {Object} a first object to compare
- @param {Object} b second object to compare
- @returns {Boolean}
-*/
-Ember.isEqual = function(a, b) {
- if (a && 'function'===typeof a.isEqual) return a.isEqual(b);
- return a === b;
-};
-
-/**
- @private
- Used by Ember.compare
-*/
-Ember.ORDER_DEFINITION = Ember.ENV.ORDER_DEFINITION || [
- 'undefined',
- 'null',
- 'boolean',
- 'number',
- 'string',
- 'array',
- 'object',
- 'instance',
- 'function',
- 'class',
- 'date'
-];
-
-/**
- Returns all of the keys defined on an object or hash. This is useful
- when inspecting objects for debugging. On browsers that support it, this
- uses the native Object.keys implementation.
-
- @function
- @param {Object} obj
- @returns {Array} Array containing keys of obj
-*/
-Ember.keys = Object.keys;
-
-if (!Ember.keys) {
- Ember.keys = function(obj) {
- var ret = [];
- for(var key in obj) {
- if (obj.hasOwnProperty(key)) { ret.push(key); }
- }
- return ret;
- };
-}
-
-// ..........................................................
-// ERROR
-//
-
-/**
- @class
-
- A subclass of the JavaScript Error object for use in Ember.
-*/
-Ember.Error = function() {
- var tmp = Error.prototype.constructor.apply(this, arguments);
-
- for (var p in tmp) {
- if (tmp.hasOwnProperty(p)) { this[p] = tmp[p]; }
- }
- this.message = tmp.message;
-};
-
-Ember.Error.prototype = Ember.create(Error.prototype);
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-/** @private **/
-var STRING_DASHERIZE_REGEXP = (/[ _]/g);
-var STRING_DASHERIZE_CACHE = {};
-var STRING_DECAMELIZE_REGEXP = (/([a-z])([A-Z])/g);
-var STRING_CAMELIZE_REGEXP = (/(\-|_|\s)+(.)?/g);
-var STRING_UNDERSCORE_REGEXP_1 = (/([a-z\d])([A-Z]+)/g);
-var STRING_UNDERSCORE_REGEXP_2 = (/\-|\s+/g);
-
-/**
- Defines the hash of localized strings for the current language. Used by
- the `Ember.String.loc()` helper. To localize, add string values to this
- hash.
-
- @type Hash
-*/
-Ember.STRINGS = {};
-
-/**
- Defines string helper methods including string formatting and localization.
- Unless Ember.EXTEND_PROTOTYPES = false these methods will also be added to the
- String.prototype as well.
-
- @namespace
-*/
-Ember.String = {
-
- /**
- Apply formatting options to the string. This will look for occurrences
- of %@ in your string and substitute them with the arguments you pass into
- this method. If you want to control the specific order of replacement,
- you can add a number after the key as well to indicate which argument
- you want to insert.
-
- Ordered insertions are most useful when building loc strings where values
- you need to insert may appear in different orders.
-
- "Hello %@ %@".fmt('John', 'Doe') => "Hello John Doe"
- "Hello %@2, %@1".fmt('John', 'Doe') => "Hello Doe, John"
-
- @param {Object...} [args]
- @returns {String} formatted string
- */
- fmt: function(str, formats) {
- // first, replace any ORDERED replacements.
- var idx = 0; // the current index for non-numerical replacements
- return str.replace(/%@([0-9]+)?/g, function(s, argIndex) {
- argIndex = (argIndex) ? parseInt(argIndex,0) - 1 : idx++ ;
- s = formats[argIndex];
- return ((s === null) ? '(null)' : (s === undefined) ? '' : s).toString();
- }) ;
- },
-
- /**
- Formats the passed string, but first looks up the string in the localized
- strings hash. This is a convenient way to localize text. See
- `Ember.String.fmt()` for more information on formatting.
-
- Note that it is traditional but not required to prefix localized string
- keys with an underscore or other character so you can easily identify
- localized strings.
-
- Ember.STRINGS = {
- '_Hello World': 'Bonjour le monde',
- '_Hello %@ %@': 'Bonjour %@ %@'
- };
-
- Ember.String.loc("_Hello World");
- => 'Bonjour le monde';
-
- Ember.String.loc("_Hello %@ %@", ["John", "Smith"]);
- => "Bonjour John Smith";
-
- @param {String} str
- The string to format
-
- @param {Array} formats
- Optional array of parameters to interpolate into string.
-
- @returns {String} formatted string
- */
- loc: function(str, formats) {
- str = Ember.STRINGS[str] || str;
- return Ember.String.fmt(str, formats) ;
- },
-
- /**
- Splits a string into separate units separated by spaces, eliminating any
- empty strings in the process. This is a convenience method for split that
- is mostly useful when applied to the String.prototype.
-
- Ember.String.w("alpha beta gamma").forEach(function(key) {
- console.log(key);
- });
- > alpha
- > beta
- > gamma
-
- @param {String} str
- The string to split
-
- @returns {String} split string
- */
- w: function(str) { return str.split(/\s+/); },
-
- /**
- Converts a camelized string into all lower case separated by underscores.
-
- 'innerHTML'.decamelize() => 'inner_html'
- 'action_name'.decamelize() => 'action_name'
- 'css-class-name'.decamelize() => 'css-class-name'
- 'my favorite items'.decamelize() => 'my favorite items'
-
- @param {String} str
- The string to decamelize.
-
- @returns {String} the decamelized string.
- */
- decamelize: function(str) {
- return str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase();
- },
-
- /**
- Replaces underscores or spaces with dashes.
-
- 'innerHTML'.dasherize() => 'inner-html'
- 'action_name'.dasherize() => 'action-name'
- 'css-class-name'.dasherize() => 'css-class-name'
- 'my favorite items'.dasherize() => 'my-favorite-items'
-
- @param {String} str
- The string to dasherize.
-
- @returns {String} the dasherized string.
- */
- dasherize: function(str) {
- var cache = STRING_DASHERIZE_CACHE,
- ret = cache[str];
-
- if (ret) {
- return ret;
- } else {
- ret = Ember.String.decamelize(str).replace(STRING_DASHERIZE_REGEXP,'-');
- cache[str] = ret;
- }
-
- return ret;
- },
-
- /**
- Returns the lowerCaseCamel form of a string.
-
- 'innerHTML'.camelize() => 'innerHTML'
- 'action_name'.camelize() => 'actionName'
- 'css-class-name'.camelize() => 'cssClassName'
- 'my favorite items'.camelize() => 'myFavoriteItems'
-
- @param {String} str
- The string to camelize.
-
- @returns {String} the camelized string.
- */
- camelize: function(str) {
- return str.replace(STRING_CAMELIZE_REGEXP, function(match, separator, chr) {
- return chr ? chr.toUpperCase() : '';
- });
- },
-
- /**
- Returns the UpperCamelCase form of a string.
-
- 'innerHTML'.classify() => 'InnerHTML'
- 'action_name'.classify() => 'ActionName'
- 'css-class-name'.classify() => 'CssClassName'
- 'my favorite items'.classift() => 'MyFavoriteItems'
- */
- classify: function(str) {
- var camelized = Ember.String.camelize(str);
- return camelized.charAt(0).toUpperCase() + camelized.substr(1);
- },
-
- /**
- More general than decamelize. Returns the lower_case_and_underscored
- form of a string.
-
- 'innerHTML'.underscore() => 'inner_html'
- 'action_name'.underscore() => 'action_name'
- 'css-class-name'.underscore() => 'css_class_name'
- 'my favorite items'.underscore() => 'my_favorite_items'
-
- @param {String} str
- The string to underscore.
-
- @returns {String} the underscored string.
- */
- underscore: function(str) {
- return str.replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2').
- replace(STRING_UNDERSCORE_REGEXP_2, '_').toLowerCase();
- }
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var fmt = Ember.String.fmt,
- w = Ember.String.w,
- loc = Ember.String.loc,
- camelize = Ember.String.camelize,
- decamelize = Ember.String.decamelize,
- dasherize = Ember.String.dasherize,
- underscore = Ember.String.underscore;
-
-if (Ember.EXTEND_PROTOTYPES) {
-
- /**
- @see Ember.String.fmt
- */
- String.prototype.fmt = function() {
- return fmt(this, arguments);
- };
-
- /**
- @see Ember.String.w
- */
- String.prototype.w = function() {
- return w(this);
- };
-
- /**
- @see Ember.String.loc
- */
- String.prototype.loc = function() {
- return loc(this, arguments);
- };
-
- /**
- @see Ember.String.camelize
- */
- String.prototype.camelize = function() {
- return camelize(this);
- };
-
- /**
- @see Ember.String.decamelize
- */
- String.prototype.decamelize = function() {
- return decamelize(this);
- };
-
- /**
- @see Ember.String.dasherize
- */
- String.prototype.dasherize = function() {
- return dasherize(this);
- };
-
- /**
- @see Ember.String.underscore
- */
- String.prototype.underscore = function() {
- return underscore(this);
- };
-
-}
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var a_slice = Array.prototype.slice;
-
-if (Ember.EXTEND_PROTOTYPES) {
-
- /**
- The `property` extension of Javascript's Function prototype is available
- when Ember.EXTEND_PROTOTYPES is true, which is the default.
-
- Computed properties allow you to treat a function like a property:
-
- MyApp.president = Ember.Object.create({
- firstName: "Barack",
- lastName: "Obama",
-
- fullName: function() {
- return this.get('firstName') + ' ' + this.get('lastName');
-
- // Call this flag to mark the function as a property
- }.property()
- });
-
- MyApp.president.get('fullName'); => "Barack Obama"
-
- Treating a function like a property is useful because they can work with
- bindings, just like any other property.
-
- Many computed properties have dependencies on other properties. For
- example, in the above example, the `fullName` property depends on
- `firstName` and `lastName` to determine its value. You can tell Ember.js
- about these dependencies like this:
-
- MyApp.president = Ember.Object.create({
- firstName: "Barack",
- lastName: "Obama",
-
- fullName: function() {
- return this.get('firstName') + ' ' + this.get('lastName');
-
- // Tell Ember.js that this computed property depends on firstName
- // and lastName
- }.property('firstName', 'lastName')
- });
-
- Make sure you list these dependencies so Ember.js knows when to update
- bindings that connect to a computed property. Changing a dependency
- will not immediately trigger an update of the computed property, but
- will instead clear the cache so that it is updated when the next `get`
- is called on the property.
-
- Note: you will usually want to use `property(...)` with `cacheable()`.
-
- @see Ember.ComputedProperty
- @see Ember.computed
- */
- Function.prototype.property = function() {
- var ret = Ember.computed(this);
- return ret.property.apply(ret, arguments);
- };
-
- /**
- The `observes` extension of Javascript's Function prototype is available
- when Ember.EXTEND_PROTOTYPES is true, which is the default.
-
- You can observe property changes simply by adding the `observes`
- call to the end of your method declarations in classes that you write.
- For example:
-
- Ember.Object.create({
- valueObserver: function() {
- // Executes whenever the "value" property changes
- }.observes('value')
- });
-
- @see Ember.Observable
- */
- Function.prototype.observes = function() {
- this.__ember_observes__ = a_slice.call(arguments);
- return this;
- };
-
- /**
- The `observesBefore` extension of Javascript's Function prototype is
- available when Ember.EXTEND_PROTOTYPES is true, which is the default.
-
- You can get notified when a property changes is about to happen by
- by adding the `observesBefore` call to the end of your method
- declarations in classes that you write. For example:
-
- Ember.Object.create({
- valueObserver: function() {
- // Executes whenever the "value" property is about to change
- }.observesBefore('value')
- });
-
- @see Ember.Observable
- */
- Function.prototype.observesBefore = function() {
- this.__ember_observesBefore__ = a_slice.call(arguments);
- return this;
- };
-
-}
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-
-
-
-
-// ..........................................................
-// HELPERS
-//
-
-var get = Ember.get, set = Ember.set;
-var a_slice = Array.prototype.slice;
-var a_indexOf = Ember.EnumerableUtils.indexOf;
-
-var contexts = [];
-/** @private */
-function popCtx() {
- return contexts.length===0 ? {} : contexts.pop();
-}
-
-/** @private */
-function pushCtx(ctx) {
- contexts.push(ctx);
- return null;
-}
-
-/** @private */
-function iter(key, value) {
- var valueProvided = arguments.length === 2;
-
- function i(item) {
- var cur = get(item, key);
- return valueProvided ? value===cur : !!cur;
- }
- return i ;
-}
-
-/**
- @class
-
- This mixin defines the common interface implemented by enumerable objects
- in Ember. Most of these methods follow the standard Array iteration
- API defined up to JavaScript 1.8 (excluding language-specific features that
- cannot be emulated in older versions of JavaScript).
-
- This mixin is applied automatically to the Array class on page load, so you
- can use any of these methods on simple arrays. If Array already implements
- one of these methods, the mixin will not override them.
-
- h3. Writing Your Own Enumerable
-
- To make your own custom class enumerable, you need two items:
-
- 1. You must have a length property. This property should change whenever
- the number of items in your enumerable object changes. If you using this
- with an Ember.Object subclass, you should be sure to change the length
- property using set().
-
- 2. If you must implement nextObject(). See documentation.
-
- Once you have these two methods implement, apply the Ember.Enumerable mixin
- to your class and you will be able to enumerate the contents of your object
- like any other collection.
-
- h3. Using Ember Enumeration with Other Libraries
-
- Many other libraries provide some kind of iterator or enumeration like
- facility. This is often where the most common API conflicts occur.
- Ember's API is designed to be as friendly as possible with other
- libraries by implementing only methods that mostly correspond to the
- JavaScript 1.8 API.
-
- @extends Ember.Mixin
- @since Ember 0.9
-*/
-Ember.Enumerable = Ember.Mixin.create(
- /** @scope Ember.Enumerable.prototype */ {
-
- /** @private - compatibility */
- isEnumerable: true,
-
- /**
- Implement this method to make your class enumerable.
-
- This method will be call repeatedly during enumeration. The index value
- will always begin with 0 and increment monotonically. You don't have to
- rely on the index value to determine what object to return, but you should
- always check the value and start from the beginning when you see the
- requested index is 0.
-
- The previousObject is the object that was returned from the last call
- to nextObject for the current iteration. This is a useful way to
- manage iteration if you are tracing a linked list, for example.
-
- Finally the context parameter will always contain a hash you can use as
- a "scratchpad" to maintain any other state you need in order to iterate
- properly. The context object is reused and is not reset between
- iterations so make sure you setup the context with a fresh state whenever
- the index parameter is 0.
-
- Generally iterators will continue to call nextObject until the index
- reaches the your current length-1. If you run out of data before this
- time for some reason, you should simply return undefined.
-
- The default implementation of this method simply looks up the index.
- This works great on any Array-like objects.
-
- @param {Number} index the current index of the iteration
- @param {Object} previousObject the value returned by the last call to nextObject.
- @param {Object} context a context object you can use to maintain state.
- @returns {Object} the next object in the iteration or undefined
- */
- nextObject: Ember.required(Function),
-
- /**
- Helper method returns the first object from a collection. This is usually
- used by bindings and other parts of the framework to extract a single
- object if the enumerable contains only one item.
-
- If you override this method, you should implement it so that it will
- always return the same value each time it is called. If your enumerable
- contains only one object, this method should always return that object.
- If your enumerable is empty, this method should return undefined.
-
- var arr = ["a", "b", "c"];
- arr.firstObject(); => "a"
-
- var arr = [];
- arr.firstObject(); => undefined
-
- @returns {Object} the object or undefined
- */
- firstObject: Ember.computed(function() {
- if (get(this, 'length')===0) return undefined ;
-
- // handle generic enumerables
- var context = popCtx(), ret;
- ret = this.nextObject(0, null, context);
- pushCtx(context);
- return ret ;
- }).property('[]').cacheable(),
-
- /**
- Helper method returns the last object from a collection. If your enumerable
- contains only one object, this method should always return that object.
- If your enumerable is empty, this method should return undefined.
-
- var arr = ["a", "b", "c"];
- arr.lastObject(); => "c"
-
- var arr = [];
- arr.lastObject(); => undefined
-
- @returns {Object} the last object or undefined
- */
- lastObject: Ember.computed(function() {
- var len = get(this, 'length');
- if (len===0) return undefined ;
- var context = popCtx(), idx=0, cur, last = null;
- do {
- last = cur;
- cur = this.nextObject(idx++, last, context);
- } while (cur !== undefined);
- pushCtx(context);
- return last;
- }).property('[]').cacheable(),
-
- /**
- Returns true if the passed object can be found in the receiver. The
- default version will iterate through the enumerable until the object
- is found. You may want to override this with a more efficient version.
-
- var arr = ["a", "b", "c"];
- arr.contains("a"); => true
- arr.contains("z"); => false
-
- @param {Object} obj
- The object to search for.
-
- @returns {Boolean} true if object is found in enumerable.
- */
- contains: function(obj) {
- return this.find(function(item) { return item===obj; }) !== undefined;
- },
-
- /**
- Iterates through the enumerable, calling the passed function on each
- item. This method corresponds to the forEach() method defined in
- JavaScript 1.6.
-
- The callback method you provide should have the following signature (all
- parameters are optional):
-
- function(item, index, enumerable);
-
- - *item* is the current item in the iteration.
- - *index* is the current index in the iteration
- - *enumerable* is the enumerable object itself.
-
- Note that in addition to a callback, you can also pass an optional target
- object that will be set as "this" on the context. This is a good way
- to give your iterator function access to the current object.
-
- @param {Function} callback The callback to execute
- @param {Object} [target] The target object to use
- @returns {Object} receiver
- */
- forEach: function(callback, target) {
- if (typeof callback !== "function") throw new TypeError() ;
- var len = get(this, 'length'), last = null, context = popCtx();
-
- if (target === undefined) target = null;
-
- for(var idx=0;idx<len;idx++) {
- var next = this.nextObject(idx, last, context) ;
- callback.call(target, next, idx, this);
- last = next ;
- }
- last = null ;
- context = pushCtx(context);
- return this ;
- },
-
- /**
- Alias for mapProperty
-
- @param {String} key name of the property
- @returns {Array} The mapped array.
- */
- getEach: function(key) {
- return this.mapProperty(key);
- },
-
- /**
- Sets the value on the named property for each member. This is more
- efficient than using other methods defined on this helper. If the object
- implements Ember.Observable, the value will be changed to set(), otherwise
- it will be set directly. null objects are skipped.
-
- @param {String} key The key to set
- @param {Object} value The object to set
- @returns {Object} receiver
- */
- setEach: function(key, value) {
- return this.forEach(function(item) {
- set(item, key, value);
- });
- },
-
- /**
- Maps all of the items in the enumeration to another value, returning
- a new array. This method corresponds to map() defined in JavaScript 1.6.
-
- The callback method you provide should have the following signature (all
- parameters are optional):
-
- function(item, index, enumerable);
-
- - *item* is the current item in the iteration.
- - *index* is the current index in the iteration
- - *enumerable* is the enumerable object itself.
-
- It should return the mapped value.
-
- Note that in addition to a callback, you can also pass an optional target
- object that will be set as "this" on the context. This is a good way
- to give your iterator function access to the current object.
-
- @param {Function} callback The callback to execute
- @param {Object} [target] The target object to use
- @returns {Array} The mapped array.
- */
- map: function(callback, target) {
- var ret = [];
- this.forEach(function(x, idx, i) {
- ret[idx] = callback.call(target, x, idx,i);
- });
- return ret ;
- },
-
- /**
- Similar to map, this specialized function returns the value of the named
- property on all items in the enumeration.
-
- @param {String} key name of the property
- @returns {Array} The mapped array.
- */
- mapProperty: function(key) {
- return this.map(function(next) {
- return get(next, key);
- });
- },
-
- /**
- Returns an array with all of the items in the enumeration that the passed
- function returns true for. This method corresponds to filter() defined in
- JavaScript 1.6.
-
- The callback method you provide should have the following signature (all
- parameters are optional):
-
- function(item, index, enumerable);
-
- - *item* is the current item in the iteration.
- - *index* is the current index in the iteration
- - *enumerable* is the enumerable object itself.
-
- It should return the true to include the item in the results, false otherwise.
-
- Note that in addition to a callback, you can also pass an optional target
- object that will be set as "this" on the context. This is a good way
- to give your iterator function access to the current object.
-
- @param {Function} callback The callback to execute
- @param {Object} [target] The target object to use
- @returns {Array} A filtered array.
- */
- filter: function(callback, target) {
- var ret = [];
- this.forEach(function(x, idx, i) {
- if (callback.call(target, x, idx, i)) ret.push(x);
- });
- return ret ;
- },
-
- /**
- Returns an array with just the items with the matched property. You
- can pass an optional second argument with the target value. Otherwise
- this will match any property that evaluates to true.
-
- @param {String} key the property to test
- @param {String} [value] optional value to test against.
- @returns {Array} filtered array
- */
- filterProperty: function(key, value) {
- return this.filter(iter.apply(this, arguments));
- },
-
- /**
- Returns the first item in the array for which the callback returns true.
- This method works similar to the filter() method defined in JavaScript 1.6
- except that it will stop working on the array once a match is found.
-
- The callback method you provide should have the following signature (all
- parameters are optional):
-
- function(item, index, enumerable);
-
- - *item* is the current item in the iteration.
- - *index* is the current index in the iteration
- - *enumerable* is the enumerable object itself.
-
- It should return the true to include the item in the results, false otherwise.
-
- Note that in addition to a callback, you can also pass an optional target
- object that will be set as "this" on the context. This is a good way
- to give your iterator function access to the current object.
-
- @param {Function} callback The callback to execute
- @param {Object} [target] The target object to use
- @returns {Object} Found item or null.
- */
- find: function(callback, target) {
- var len = get(this, 'length') ;
- if (target === undefined) target = null;
-
- var last = null, next, found = false, ret ;
- var context = popCtx();
- for(var idx=0;idx<len && !found;idx++) {
- next = this.nextObject(idx, last, context) ;
- if (found = callback.call(target, next, idx, this)) ret = next ;
- last = next ;
- }
- next = last = null ;
- context = pushCtx(context);
- return ret ;
- },
-
- /**
- Returns the first item with a property matching the passed value. You
- can pass an optional second argument with the target value. Otherwise
- this will match any property that evaluates to true.
-
- This method works much like the more generic find() method.
-
- @param {String} key the property to test
- @param {String} [value] optional value to test against.
- @returns {Object} found item or null
- */
- findProperty: function(key, value) {
- return this.find(iter.apply(this, arguments));
- },
-
- /**
- Returns true if the passed function returns true for every item in the
- enumeration. This corresponds with the every() method in JavaScript 1.6.
-
- The callback method you provide should have the following signature (all
- parameters are optional):
-
- function(item, index, enumerable);
-
- - *item* is the current item in the iteration.
- - *index* is the current index in the iteration
- - *enumerable* is the enumerable object itself.
-
- It should return the true or false.
-
- Note that in addition to a callback, you can also pass an optional target
- object that will be set as "this" on the context. This is a good way
- to give your iterator function access to the current object.
-
- Example Usage:
-
- if (people.every(isEngineer)) { Paychecks.addBigBonus(); }
-
- @param {Function} callback The callback to execute
- @param {Object} [target] The target object to use
- @returns {Boolean}
- */
- every: function(callback, target) {
- return !this.find(function(x, idx, i) {
- return !callback.call(target, x, idx, i);
- });
- },
-
- /**
- Returns true if the passed property resolves to true for all items in the
- enumerable. This method is often simpler/faster than using a callback.
-
- @param {String} key the property to test
- @param {String} [value] optional value to test against.
- @returns {Array} filtered array
- */
- everyProperty: function(key, value) {
- return this.every(iter.apply(this, arguments));
- },
-
-
- /**
- Returns true if the passed function returns true for any item in the
- enumeration. This corresponds with the every() method in JavaScript 1.6.
-
- The callback method you provide should have the following signature (all
- parameters are optional):
-
- function(item, index, enumerable);
-
- - *item* is the current item in the iteration.
- - *index* is the current index in the iteration
- - *enumerable* is the enumerable object itself.
-
- It should return the true to include the item in the results, false otherwise.
-
- Note that in addition to a callback, you can also pass an optional target
- object that will be set as "this" on the context. This is a good way
- to give your iterator function access to the current object.
-
- Usage Example:
-
- if (people.some(isManager)) { Paychecks.addBiggerBonus(); }
-
- @param {Function} callback The callback to execute
- @param {Object} [target] The target object to use
- @returns {Array} A filtered array.
- */
- some: function(callback, target) {
- return !!this.find(function(x, idx, i) {
- return !!callback.call(target, x, idx, i);
- });
- },
-
- /**
- Returns true if the passed property resolves to true for any item in the
- enumerable. This method is often simpler/faster than using a callback.
-
- @param {String} key the property to test
- @param {String} [value] optional value to test against.
- @returns {Boolean} true
- */
- someProperty: function(key, value) {
- return this.some(iter.apply(this, arguments));
- },
-
- /**
- This will combine the values of the enumerator into a single value. It
- is a useful way to collect a summary value from an enumeration. This
- corresponds to the reduce() method defined in JavaScript 1.8.
-
- The callback method you provide should have the following signature (all
- parameters are optional):
-
- function(previousValue, item, index, enumerable);
-
- - *previousValue* is the value returned by the last call to the iterator.
- - *item* is the current item in the iteration.
- - *index* is the current index in the iteration
- - *enumerable* is the enumerable object itself.
-
- Return the new cumulative value.
-
- In addition to the callback you can also pass an initialValue. An error
- will be raised if you do not pass an initial value and the enumerator is
- empty.
-
- Note that unlike the other methods, this method does not allow you to
- pass a target object to set as this for the callback. It's part of the
- spec. Sorry.
-
- @param {Function} callback The callback to execute
- @param {Object} initialValue Initial value for the reduce
- @param {String} reducerProperty internal use only.
- @returns {Object} The reduced value.
- */
- reduce: function(callback, initialValue, reducerProperty) {
- if (typeof callback !== "function") { throw new TypeError(); }
-
- var ret = initialValue;
-
- this.forEach(function(item, i) {
- ret = callback.call(null, ret, item, i, this, reducerProperty);
- }, this);
-
- return ret;
- },
-
- /**
- Invokes the named method on every object in the receiver that
- implements it. This method corresponds to the implementation in
- Prototype 1.6.
-
- @param {String} methodName the name of the method
- @param {Object...} args optional arguments to pass as well.
- @returns {Array} return values from calling invoke.
- */
- invoke: function(methodName) {
- var args, ret = [];
- if (arguments.length>1) args = a_slice.call(arguments, 1);
-
- this.forEach(function(x, idx) {
- var method = x && x[methodName];
- if ('function' === typeof method) {
- ret[idx] = args ? method.apply(x, args) : method.call(x);
- }
- }, this);
-
- return ret;
- },
-
- /**
- Simply converts the enumerable into a genuine array. The order is not
- guaranteed. Corresponds to the method implemented by Prototype.
-
- @returns {Array} the enumerable as an array.
- */
- toArray: function() {
- var ret = [];
- this.forEach(function(o, idx) { ret[idx] = o; });
- return ret ;
- },
-
- /**
- Returns a copy of the array with all null elements removed.
-
- var arr = ["a", null, "c", null];
- arr.compact(); => ["a", "c"]
-
- @returns {Array} the array without null elements.
- */
- compact: function() { return this.without(null); },
-
- /**
- Returns a new enumerable that excludes the passed value. The default
- implementation returns an array regardless of the receiver type unless
- the receiver does not contain the value.
-
- var arr = ["a", "b", "a", "c"];
- arr.without("a"); => ["b", "c"]
-
- @param {Object} value
- @returns {Ember.Enumerable}
- */
- without: function(value) {
- if (!this.contains(value)) return this; // nothing to do
- var ret = [] ;
- this.forEach(function(k) {
- if (k !== value) ret[ret.length] = k;
- }) ;
- return ret ;
- },
-
- /**
- Returns a new enumerable that contains only unique values. The default
- implementation returns an array regardless of the receiver type.
-
- var arr = ["a", "a", "b", "b"];
- arr.uniq(); => ["a", "b"]
-
- @returns {Ember.Enumerable}
- */
- uniq: function() {
- var ret = [];
- this.forEach(function(k){
- if (a_indexOf(ret, k)<0) ret.push(k);
- });
- return ret;
- },
-
- /**
- This property will trigger anytime the enumerable's content changes.
- You can observe this property to be notified of changes to the enumerables
- content.
-
- For plain enumerables, this property is read only. Ember.Array overrides
- this method.
-
- @type Ember.Array
- */
- '[]': Ember.computed(function(key, value) {
- return this;
- }).property().cacheable(),
-
- // ..........................................................
- // ENUMERABLE OBSERVERS
- //
-
- /**
- Registers an enumerable observer. Must implement Ember.EnumerableObserver
- mixin.
- */
- addEnumerableObserver: function(target, opts) {
- var willChange = (opts && opts.willChange) || 'enumerableWillChange',
- didChange = (opts && opts.didChange) || 'enumerableDidChange';
-
- var hasObservers = get(this, 'hasEnumerableObservers');
- if (!hasObservers) Ember.propertyWillChange(this, 'hasEnumerableObservers');
- Ember.addListener(this, '@enumerable:before', target, willChange);
- Ember.addListener(this, '@enumerable:change', target, didChange);
- if (!hasObservers) Ember.propertyDidChange(this, 'hasEnumerableObservers');
- return this;
- },
-
- /**
- Removes a registered enumerable observer.
- */
- removeEnumerableObserver: function(target, opts) {
- var willChange = (opts && opts.willChange) || 'enumerableWillChange',
- didChange = (opts && opts.didChange) || 'enumerableDidChange';
-
- var hasObservers = get(this, 'hasEnumerableObservers');
- if (hasObservers) Ember.propertyWillChange(this, 'hasEnumerableObservers');
- Ember.removeListener(this, '@enumerable:before', target, willChange);
- Ember.removeListener(this, '@enumerable:change', target, didChange);
- if (hasObservers) Ember.propertyDidChange(this, 'hasEnumerableObservers');
- return this;
- },
-
- /**
- Becomes true whenever the array currently has observers watching changes
- on the array.
-
- @type Boolean
- */
- hasEnumerableObservers: Ember.computed(function() {
- return Ember.hasListeners(this, '@enumerable:change') || Ember.hasListeners(this, '@enumerable:before');
- }).property().cacheable(),
-
-
- /**
- Invoke this method just before the contents of your enumerable will
- change. You can either omit the parameters completely or pass the objects
- to be removed or added if available or just a count.
-
- @param {Ember.Enumerable|Number} removing
- An enumerable of the objects to be removed or the number of items to
- be removed.
-
- @param {Ember.Enumerable|Number} adding
- An enumerable of the objects to be added or the number of items to be
- added.
-
- @returns {Ember.Enumerable} receiver
- */
- enumerableContentWillChange: function(removing, adding) {
-
- var removeCnt, addCnt, hasDelta;
-
- if ('number' === typeof removing) removeCnt = removing;
- else if (removing) removeCnt = get(removing, 'length');
- else removeCnt = removing = -1;
-
- if ('number' === typeof adding) addCnt = adding;
- else if (adding) addCnt = get(adding,'length');
- else addCnt = adding = -1;
-
- hasDelta = addCnt<0 || removeCnt<0 || addCnt-removeCnt!==0;
-
- if (removing === -1) removing = null;
- if (adding === -1) adding = null;
-
- Ember.propertyWillChange(this, '[]');
- if (hasDelta) Ember.propertyWillChange(this, 'length');
- Ember.sendEvent(this, '@enumerable:before', [this, removing, adding]);
-
- return this;
- },
-
- /**
- Invoke this method when the contents of your enumerable has changed.
- This will notify any observers watching for content changes. If your are
- implementing an ordered enumerable (such as an array), also pass the
- start and end values where the content changed so that it can be used to
- notify range observers.
-
- @param {Number} start
- optional start offset for the content change. For unordered
- enumerables, you should always pass -1.
-
- @param {Ember.Enumerable|Number} removing
- An enumerable of the objects to be removed or the number of items to
- be removed.
-
- @param {Ember.Enumerable|Number} adding
- An enumerable of the objects to be added or the number of items to be
- added.
-
- @returns {Object} receiver
- */
- enumerableContentDidChange: function(removing, adding) {
- var notify = this.propertyDidChange, removeCnt, addCnt, hasDelta;
-
- if ('number' === typeof removing) removeCnt = removing;
- else if (removing) removeCnt = get(removing, 'length');
- else removeCnt = removing = -1;
-
- if ('number' === typeof adding) addCnt = adding;
- else if (adding) addCnt = get(adding, 'length');
- else addCnt = adding = -1;
-
- hasDelta = addCnt<0 || removeCnt<0 || addCnt-removeCnt!==0;
-
- if (removing === -1) removing = null;
- if (adding === -1) adding = null;
-
- Ember.sendEvent(this, '@enumerable:change', [this, removing, adding]);
- if (hasDelta) Ember.propertyDidChange(this, 'length');
- Ember.propertyDidChange(this, '[]');
-
- return this ;
- }
-
-}) ;
-
-
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-// ..........................................................
-// HELPERS
-//
-
-var get = Ember.get, set = Ember.set, meta = Ember.meta, map = Ember.EnumerableUtils.map, cacheFor = Ember.cacheFor;
-
-/** @private */
-function none(obj) { return obj===null || obj===undefined; }
-
-// ..........................................................
-// ARRAY
-//
-/**
- @namespace
-
- This module implements Observer-friendly Array-like behavior. This mixin is
- picked up by the Array class as well as other controllers, etc. that want to
- appear to be arrays.
-
- Unlike Ember.Enumerable, this mixin defines methods specifically for
- collections that provide index-ordered access to their contents. When you
- are designing code that needs to accept any kind of Array-like object, you
- should use these methods instead of Array primitives because these will
- properly notify observers of changes to the array.
-
- Although these methods are efficient, they do add a layer of indirection to
- your application so it is a good idea to use them only when you need the
- flexibility of using both true JavaScript arrays and "virtual" arrays such
- as controllers and collections.
-
- You can use the methods defined in this module to access and modify array
- contents in a KVO-friendly way. You can also be notified whenever the
- membership if an array changes by changing the syntax of the property to
- .observes('*myProperty.[]') .
-
- To support Ember.Array in your own class, you must override two
- primitives to use it: replace() and objectAt().
-
- Note that the Ember.Array mixin also incorporates the Ember.Enumerable mixin. All
- Ember.Array-like objects are also enumerable.
-
- @extends Ember.Enumerable
- @since Ember 0.9.0
-*/
-Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.prototype */ {
-
- /** @private - compatibility */
- isSCArray: true,
-
- /**
- @field {Number} length
-
- Your array must support the length property. Your replace methods should
- set this property whenever it changes.
- */
- length: Ember.required(),
-
- /**
- Returns the object at the given index. If the given index is negative or
- is greater or equal than the array length, returns `undefined`.
-
- This is one of the primitives you must implement to support `Ember.Array`.
- If your object supports retrieving the value of an array item using `get()`
- (i.e. `myArray.get(0)`), then you do not need to implement this method
- yourself.
-
- var arr = ['a', 'b', 'c', 'd'];
- arr.objectAt(0); => "a"
- arr.objectAt(3); => "d"
- arr.objectAt(-1); => undefined
- arr.objectAt(4); => undefined
- arr.objectAt(5); => undefined
-
- @param {Number} idx
- The index of the item to return.
- */
- objectAt: function(idx) {
- if ((idx < 0) || (idx>=get(this, 'length'))) return undefined ;
- return get(this, idx);
- },
-
- /**
- This returns the objects at the specified indexes, using `objectAt`.
-
- var arr = ['a', 'b', 'c', 'd'];
- arr.objectsAt([0, 1, 2]) => ["a", "b", "c"]
- arr.objectsAt([2, 3, 4]) => ["c", "d", undefined]
-
- @param {Array} indexes
- An array of indexes of items to return.
- */
- objectsAt: function(indexes) {
- var self = this;
- return map(indexes, function(idx){ return self.objectAt(idx); });
- },
-
- /** @private (nodoc) - overrides Ember.Enumerable version */
- nextObject: function(idx) {
- return this.objectAt(idx);
- },
-
- /**
- @field []
-
- This is the handler for the special array content property. If you get
- this property, it will return this. If you set this property it a new
- array, it will replace the current content.
-
- This property overrides the default property defined in Ember.Enumerable.
- */
- '[]': Ember.computed(function(key, value) {
- if (value !== undefined) this.replace(0, get(this, 'length'), value) ;
- return this ;
- }).property().cacheable(),
-
- firstObject: Ember.computed(function() {
- return this.objectAt(0);
- }).property().cacheable(),
-
- lastObject: Ember.computed(function() {
- return this.objectAt(get(this, 'length')-1);
- }).property().cacheable(),
-
- /** @private (nodoc) - optimized version from Enumerable */
- contains: function(obj){
- return this.indexOf(obj) >= 0;
- },
-
- // Add any extra methods to Ember.Array that are native to the built-in Array.
- /**
- Returns a new array that is a slice of the receiver. This implementation
- uses the observable array methods to retrieve the objects for the new
- slice.
-
- var arr = ['red', 'green', 'blue'];
- arr.slice(0); => ['red', 'green', 'blue']
- arr.slice(0, 2); => ['red', 'green']
- arr.slice(1, 100); => ['green', 'blue']
-
- @param beginIndex {Integer} (Optional) index to begin slicing from.
- @param endIndex {Integer} (Optional) index to end the slice at.
- @returns {Array} New array with specified slice
- */
- slice: function(beginIndex, endIndex) {
- var ret = [];
- var length = get(this, 'length') ;
- if (none(beginIndex)) beginIndex = 0 ;
- if (none(endIndex) || (endIndex > length)) endIndex = length ;
- while(beginIndex < endIndex) {
- ret[ret.length] = this.objectAt(beginIndex++) ;
- }
- return ret ;
- },
-
- /**
- Returns the index of the given object's first occurrence.
- If no startAt argument is given, the starting location to
- search is 0. If it's negative, will count backward from
- the end of the array. Returns -1 if no match is found.
-
- var arr = ["a", "b", "c", "d", "a"];
- arr.indexOf("a"); => 0
- arr.indexOf("z"); => -1
- arr.indexOf("a", 2); => 4
- arr.indexOf("a", -1); => 4
- arr.indexOf("b", 3); => -1
- arr.indexOf("a", 100); => -1
-
- @param {Object} object the item to search for
- @param {Number} startAt optional starting location to search, default 0
- @returns {Number} index or -1 if not found
- */
- indexOf: function(object, startAt) {
- var idx, len = get(this, 'length');
-
- if (startAt === undefined) startAt = 0;
- if (startAt < 0) startAt += len;
-
- for(idx=startAt;idx<len;idx++) {
- if (this.objectAt(idx, true) === object) return idx ;
- }
- return -1;
- },
-
- /**
- Returns the index of the given object's last occurrence.
- If no startAt argument is given, the search starts from
- the last position. If it's negative, will count backward
- from the end of the array. Returns -1 if no match is found.
-
- var arr = ["a", "b", "c", "d", "a"];
- arr.lastIndexOf("a"); => 4
- arr.lastIndexOf("z"); => -1
- arr.lastIndexOf("a", 2); => 0
- arr.lastIndexOf("a", -1); => 4
- arr.lastIndexOf("b", 3); => 1
- arr.lastIndexOf("a", 100); => 4
-
- @param {Object} object the item to search for
- @param {Number} startAt optional starting location to search, default 0
- @returns {Number} index or -1 if not found
- */
- lastIndexOf: function(object, startAt) {
- var idx, len = get(this, 'length');
-
- if (startAt === undefined || startAt >= len) startAt = len-1;
- if (startAt < 0) startAt += len;
-
- for(idx=startAt;idx>=0;idx--) {
- if (this.objectAt(idx) === object) return idx ;
- }
- return -1;
- },
-
- // ..........................................................
- // ARRAY OBSERVERS
- //
-
- /**
- Adds an array observer to the receiving array. The array observer object
- normally must implement two methods:
-
- * `arrayWillChange(start, removeCount, addCount)` - This method will be
- called just before the array is modified.
- * `arrayDidChange(start, removeCount, addCount)` - This method will be
- called just after the array is modified.
-
- Both callbacks will be passed the starting index of the change as well a
- a count of the items to be removed and added. You can use these callbacks
- to optionally inspect the array during the change, clear caches, or do
- any other bookkeeping necessary.
-
- In addition to passing a target, you can also include an options hash
- which you can use to override the method names that will be invoked on the
- target.
-
- @param {Object} target
- The observer object.
-
- @param {Hash} opts
- Optional hash of configuration options including willChange, didChange,
- and a context option.
-
- @returns {Ember.Array} receiver
- */
- addArrayObserver: function(target, opts) {
- var willChange = (opts && opts.willChange) || 'arrayWillChange',
- didChange = (opts && opts.didChange) || 'arrayDidChange';
-
- var hasObservers = get(this, 'hasArrayObservers');
- if (!hasObservers) Ember.propertyWillChange(this, 'hasArrayObservers');
- Ember.addListener(this, '@array:before', target, willChange);
- Ember.addListener(this, '@array:change', target, didChange);
- if (!hasObservers) Ember.propertyDidChange(this, 'hasArrayObservers');
- return this;
- },
-
- /**
- Removes an array observer from the object if the observer is current
- registered. Calling this method multiple times with the same object will
- have no effect.
-
- @param {Object} target
- The object observing the array.
-
- @returns {Ember.Array} receiver
- */
- removeArrayObserver: function(target, opts) {
- var willChange = (opts && opts.willChange) || 'arrayWillChange',
- didChange = (opts && opts.didChange) || 'arrayDidChange';
-
- var hasObservers = get(this, 'hasArrayObservers');
- if (hasObservers) Ember.propertyWillChange(this, 'hasArrayObservers');
- Ember.removeListener(this, '@array:before', target, willChange);
- Ember.removeListener(this, '@array:change', target, didChange);
- if (hasObservers) Ember.propertyDidChange(this, 'hasArrayObservers');
- return this;
- },
-
- /**
- Becomes true whenever the array currently has observers watching changes
- on the array.
-
- @type Boolean
- */
- hasArrayObservers: Ember.computed(function() {
- return Ember.hasListeners(this, '@array:change') || Ember.hasListeners(this, '@array:before');
- }).property().cacheable(),
-
- /**
- If you are implementing an object that supports Ember.Array, call this
- method just before the array content changes to notify any observers and
- invalidate any related properties. Pass the starting index of the change
- as well as a delta of the amounts to change.
-
- @param {Number} startIdx
- The starting index in the array that will change.
-
- @param {Number} removeAmt
- The number of items that will be removed. If you pass null assumes 0
-
- @param {Number} addAmt
- The number of items that will be added. If you pass null assumes 0.
-
- @returns {Ember.Array} receiver
- */
- arrayContentWillChange: function(startIdx, removeAmt, addAmt) {
-
- // if no args are passed assume everything changes
- if (startIdx===undefined) {
- startIdx = 0;
- removeAmt = addAmt = -1;
- } else {
- if (removeAmt === undefined) removeAmt=-1;
- if (addAmt === undefined) addAmt=-1;
- }
-
- // Make sure the @each proxy is set up if anyone is observing @each
- if (Ember.isWatching(this, '@each')) { get(this, '@each'); }
-
- Ember.sendEvent(this, '@array:before', [this, startIdx, removeAmt, addAmt]);
-
- var removing, lim;
- if (startIdx>=0 && removeAmt>=0 && get(this, 'hasEnumerableObservers')) {
- removing = [];
- lim = startIdx+removeAmt;
- for(var idx=startIdx;idx<lim;idx++) removing.push(this.objectAt(idx));
- } else {
- removing = removeAmt;
- }
-
- this.enumerableContentWillChange(removing, addAmt);
-
- return this;
- },
-
- arrayContentDidChange: function(startIdx, removeAmt, addAmt) {
-
- // if no args are passed assume everything changes
- if (startIdx===undefined) {
- startIdx = 0;
- removeAmt = addAmt = -1;
- } else {
- if (removeAmt === undefined) removeAmt=-1;
- if (addAmt === undefined) addAmt=-1;
- }
-
- var adding, lim;
- if (startIdx>=0 && addAmt>=0 && get(this, 'hasEnumerableObservers')) {
- adding = [];
- lim = startIdx+addAmt;
- for(var idx=startIdx;idx<lim;idx++) adding.push(this.objectAt(idx));
- } else {
- adding = addAmt;
- }
-
- this.enumerableContentDidChange(removeAmt, adding);
- Ember.sendEvent(this, '@array:change', [this, startIdx, removeAmt, addAmt]);
-
- var length = get(this, 'length'),
- cachedFirst = cacheFor(this, 'firstObject'),
- cachedLast = cacheFor(this, 'lastObject');
- if (this.objectAt(0) !== cachedFirst) {
- Ember.propertyWillChange(this, 'firstObject');
- Ember.propertyDidChange(this, 'firstObject');
- }
- if (this.objectAt(length-1) !== cachedLast) {
- Ember.propertyWillChange(this, 'lastObject');
- Ember.propertyDidChange(this, 'lastObject');
- }
-
- return this;
- },
-
- // ..........................................................
- // ENUMERATED PROPERTIES
- //
-
- /**
- Returns a special object that can be used to observe individual properties
- on the array. Just get an equivalent property on this object and it will
- return an enumerable that maps automatically to the named key on the
- member objects.
- */
- '@each': Ember.computed(function() {
- if (!this.__each) this.__each = new Ember.EachProxy(this);
- return this.__each;
- }).property().cacheable()
-
-}) ;
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/**
- @namespace
-
- Implements some standard methods for comparing objects. Add this mixin to
- any class you create that can compare its instances.
-
- You should implement the compare() method.
-
- @extends Ember.Mixin
- @since Ember 0.9
-*/
-Ember.Comparable = Ember.Mixin.create( /** @scope Ember.Comparable.prototype */{
-
- /**
- walk like a duck. Indicates that the object can be compared.
-
- @type Boolean
- @default true
- @constant
- */
- isComparable: true,
-
- /**
- Override to return the result of the comparison of the two parameters. The
- compare method should return:
-
- - `-1` if `a < b`
- - `0` if `a == b`
- - `1` if `a > b`
-
- Default implementation raises an exception.
-
- @param a {Object} the first object to compare
- @param b {Object} the second object to compare
- @returns {Integer} the result of the comparison
- */
- compare: Ember.required(Function)
-
-});
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2010 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set;
-
-/**
- @namespace
-
- Implements some standard methods for copying an object. Add this mixin to
- any object you create that can create a copy of itself. This mixin is
- added automatically to the built-in array.
-
- You should generally implement the copy() method to return a copy of the
- receiver.
-
- Note that frozenCopy() will only work if you also implement Ember.Freezable.
-
- @extends Ember.Mixin
- @since Ember 0.9
-*/
-Ember.Copyable = Ember.Mixin.create(
-/** @scope Ember.Copyable.prototype */ {
-
- /**
- Override to return a copy of the receiver. Default implementation raises
- an exception.
-
- @function
- @param deep {Boolean} if true, a deep copy of the object should be made
- @returns {Object} copy of receiver
- */
- copy: Ember.required(Function),
-
- /**
- If the object implements Ember.Freezable, then this will return a new copy
- if the object is not frozen and the receiver if the object is frozen.
-
- Raises an exception if you try to call this method on a object that does
- not support freezing.
-
- You should use this method whenever you want a copy of a freezable object
- since a freezable object can simply return itself without actually
- consuming more memory.
-
- @returns {Object} copy of receiver or receiver
- */
- frozenCopy: function() {
- if (Ember.Freezable && Ember.Freezable.detect(this)) {
- return get(this, 'isFrozen') ? this : this.copy().freeze();
- } else {
- throw new Error(Ember.String.fmt("%@ does not support freezing", [this]));
- }
- }
-});
-
-
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2010 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-
-
-
-
-var get = Ember.get, set = Ember.set;
-
-/**
- @namespace
-
- The Ember.Freezable mixin implements some basic methods for marking an object
- as frozen. Once an object is frozen it should be read only. No changes
- may be made the internal state of the object.
-
- ## Enforcement
-
- To fully support freezing in your subclass, you must include this mixin and
- override any method that might alter any property on the object to instead
- raise an exception. You can check the state of an object by checking the
- isFrozen property.
-
- Although future versions of JavaScript may support language-level freezing
- object objects, that is not the case today. Even if an object is freezable,
- it is still technically possible to modify the object, even though it could
- break other parts of your application that do not expect a frozen object to
- change. It is, therefore, very important that you always respect the
- isFrozen property on all freezable objects.
-
- ## Example Usage
-
- The example below shows a simple object that implement the Ember.Freezable
- protocol.
-
- Contact = Ember.Object.extend(Ember.Freezable, {
-
- firstName: null,
-
- lastName: null,
-
- // swaps the names
- swapNames: function() {
- if (this.get('isFrozen')) throw Ember.FROZEN_ERROR;
- var tmp = this.get('firstName');
- this.set('firstName', this.get('lastName'));
- this.set('lastName', tmp);
- return this;
- }
-
- });
-
- c = Context.create({ firstName: "John", lastName: "Doe" });
- c.swapNames(); => returns c
- c.freeze();
- c.swapNames(); => EXCEPTION
-
- ## Copying
-
- Usually the Ember.Freezable protocol is implemented in cooperation with the
- Ember.Copyable protocol, which defines a frozenCopy() method that will return
- a frozen object, if the object implements this method as well.
-
- @extends Ember.Mixin
- @since Ember 0.9
-*/
-Ember.Freezable = Ember.Mixin.create(
-/** @scope Ember.Freezable.prototype */ {
-
- /**
- Set to true when the object is frozen. Use this property to detect whether
- your object is frozen or not.
-
- @type Boolean
- */
- isFrozen: false,
-
- /**
- Freezes the object. Once this method has been called the object should
- no longer allow any properties to be edited.
-
- @returns {Object} receiver
- */
- freeze: function() {
- if (get(this, 'isFrozen')) return this;
- set(this, 'isFrozen', true);
- return this;
- }
-
-});
-
-Ember.FROZEN_ERROR = "Frozen object cannot be modified.";
-
-
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var forEach = Ember.EnumerableUtils.forEach;
-
-/**
- @class
-
- This mixin defines the API for modifying generic enumerables. These methods
- can be applied to an object regardless of whether it is ordered or
- unordered.
-
- Note that an Enumerable can change even if it does not implement this mixin.
- For example, a MappedEnumerable cannot be directly modified but if its
- underlying enumerable changes, it will change also.
-
- ## Adding Objects
-
- To add an object to an enumerable, use the addObject() method. This
- method will only add the object to the enumerable if the object is not
- already present and the object if of a type supported by the enumerable.
-
- set.addObject(contact);
-
- ## Removing Objects
-
- To remove an object form an enumerable, use the removeObject() method. This
- will only remove the object if it is already in the enumerable, otherwise
- this method has no effect.
-
- set.removeObject(contact);
-
- ## Implementing In Your Own Code
-
- If you are implementing an object and want to support this API, just include
- this mixin in your class and implement the required methods. In your unit
- tests, be sure to apply the Ember.MutableEnumerableTests to your object.
-
- @extends Ember.Mixin
- @extends Ember.Enumerable
-*/
-Ember.MutableEnumerable = Ember.Mixin.create(Ember.Enumerable,
- /** @scope Ember.MutableEnumerable.prototype */ {
-
- /**
- __Required.__ You must implement this method to apply this mixin.
-
- Attempts to add the passed object to the receiver if the object is not
- already present in the collection. If the object is present, this method
- has no effect.
-
- If the passed object is of a type not supported by the receiver
- then this method should raise an exception.
-
- @function
-
- @param {Object} object
- The object to add to the enumerable.
-
- @returns {Object} the passed object
- */
- addObject: Ember.required(Function),
-
- /**
- Adds each object in the passed enumerable to the receiver.
-
- @param {Ember.Enumerable} objects the objects to add.
- @returns {Object} receiver
- */
- addObjects: function(objects) {
- Ember.beginPropertyChanges(this);
- forEach(objects, function(obj) { this.addObject(obj); }, this);
- Ember.endPropertyChanges(this);
- return this;
- },
-
- /**
- __Required.__ You must implement this method to apply this mixin.
-
- Attempts to remove the passed object from the receiver collection if the
- object is in present in the collection. If the object is not present,
- this method has no effect.
-
- If the passed object is of a type not supported by the receiver
- then this method should raise an exception.
-
- @function
-
- @param {Object} object
- The object to remove from the enumerable.
-
- @returns {Object} the passed object
- */
- removeObject: Ember.required(Function),
-
-
- /**
- Removes each objects in the passed enumerable from the receiver.
-
- @param {Ember.Enumerable} objects the objects to remove
- @returns {Object} receiver
- */
- removeObjects: function(objects) {
- Ember.beginPropertyChanges(this);
- forEach(objects, function(obj) { this.removeObject(obj); }, this);
- Ember.endPropertyChanges(this);
- return this;
- }
-
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-// ..........................................................
-// CONSTANTS
-//
-
-var OUT_OF_RANGE_EXCEPTION = "Index out of range" ;
-var EMPTY = [];
-
-// ..........................................................
-// HELPERS
-//
-
-var get = Ember.get, set = Ember.set, forEach = Ember.EnumerableUtils.forEach;
-
-/**
- @class
-
- This mixin defines the API for modifying array-like objects. These methods
- can be applied only to a collection that keeps its items in an ordered set.
-
- Note that an Array can change even if it does not implement this mixin.
- For example, one might implement a SparseArray that cannot be directly
- modified, but if its underlying enumerable changes, it will change also.
-
- @extends Ember.Mixin
- @extends Ember.Array
- @extends Ember.MutableEnumerable
-*/
-Ember.MutableArray = Ember.Mixin.create(Ember.Array, Ember.MutableEnumerable,
- /** @scope Ember.MutableArray.prototype */ {
-
- /**
- __Required.__ You must implement this method to apply this mixin.
-
- This is one of the primitives you must implement to support Ember.Array. You
- should replace amt objects started at idx with the objects in the passed
- array. You should also call this.enumerableContentDidChange() ;
-
- @function
-
- @param {Number} idx
- Starting index in the array to replace. If idx >= length, then append
- to the end of the array.
-
- @param {Number} amt
- Number of elements that should be removed from the array, starting at
- *idx*.
-
- @param {Array} objects
- An array of zero or more objects that should be inserted into the array
- at *idx*
- */
- replace: Ember.required(),
-
- /**
- Remove all elements from self. This is useful if you
- want to reuse an existing array without having to recreate it.
-
- var colors = ["red", "green", "blue"];
- color.length(); => 3
- colors.clear(); => []
- colors.length(); => 0
-
- @returns {Ember.Array} An empty Array.
- */
- clear: function () {
- var len = get(this, 'length');
- if (len === 0) return this;
- this.replace(0, len, EMPTY);
- return this;
- },
-
- /**
- This will use the primitive replace() method to insert an object at the
- specified index.
-
- var colors = ["red", "green", "blue"];
- colors.insertAt(2, "yellow"); => ["red", "green", "yellow", "blue"]
- colors.insertAt(5, "orange"); => Error: Index out of range
-
- @param {Number} idx index of insert the object at.
- @param {Object} object object to insert
- */
- insertAt: function(idx, object) {
- if (idx > get(this, 'length')) throw new Error(OUT_OF_RANGE_EXCEPTION) ;
- this.replace(idx, 0, [object]) ;
- return this ;
- },
-
- /**
- Remove an object at the specified index using the replace() primitive
- method. You can pass either a single index, or a start and a length.
-
- If you pass a start and length that is beyond the
- length this method will throw an Ember.OUT_OF_RANGE_EXCEPTION
-
- var colors = ["red", "green", "blue", "yellow", "orange"];
- colors.removeAt(0); => ["green", "blue", "yellow", "orange"]
- colors.removeAt(2, 2); => ["green", "blue"]
- colors.removeAt(4, 2); => Error: Index out of range
-
- @param {Number} start index, start of range
- @param {Number} len length of passing range
- @returns {Object} receiver
- */
- removeAt: function(start, len) {
-
- var delta = 0;
-
- if ('number' === typeof start) {
-
- if ((start < 0) || (start >= get(this, 'length'))) {
- throw new Error(OUT_OF_RANGE_EXCEPTION);
- }
-
- // fast case
- if (len === undefined) len = 1;
- this.replace(start, len, EMPTY);
- }
-
- return this ;
- },
-
- /**
- Push the object onto the end of the array. Works just like push() but it
- is KVO-compliant.
-
- var colors = ["red", "green", "blue"];
- colors.pushObject("black"); => ["red", "green", "blue", "black"]
- colors.pushObject(["yellow", "orange"]); => ["red", "green", "blue", "black", ["yellow", "orange"]]
-
- */
- pushObject: function(obj) {
- this.insertAt(get(this, 'length'), obj) ;
- return obj ;
- },
-
- /**
- Add the objects in the passed numerable to the end of the array. Defers
- notifying observers of the change until all objects are added.
-
- var colors = ["red", "green", "blue"];
- colors.pushObjects("black"); => ["red", "green", "blue", "black"]
- colors.pushObjects(["yellow", "orange"]); => ["red", "green", "blue", "black", "yellow", "orange"]
-
- @param {Ember.Enumerable} objects the objects to add
- @returns {Ember.Array} receiver
- */
- pushObjects: function(objects) {
- this.replace(get(this, 'length'), 0, objects);
- return this;
- },
-
- /**
- Pop object from array or nil if none are left. Works just like pop() but
- it is KVO-compliant.
-
- var colors = ["red", "green", "blue"];
- colors.popObject(); => "blue"
- console.log(colors); => ["red", "green"]
-
- */
- popObject: function() {
- var len = get(this, 'length') ;
- if (len === 0) return null ;
-
- var ret = this.objectAt(len-1) ;
- this.removeAt(len-1, 1) ;
- return ret ;
- },
-
- /**
- Shift an object from start of array or nil if none are left. Works just
- like shift() but it is KVO-compliant.
-
- var colors = ["red", "green", "blue"];
- colors.shiftObject(); => "red"
- console.log(colors); => ["green", "blue"]
-
- */
- shiftObject: function() {
- if (get(this, 'length') === 0) return null ;
- var ret = this.objectAt(0) ;
- this.removeAt(0) ;
- return ret ;
- },
-
- /**
- Unshift an object to start of array. Works just like unshift() but it is
- KVO-compliant.
-
- var colors = ["red", "green", "blue"];
- colors.unshiftObject("yellow"); => ["yellow", "red", "green", "blue"]
- colors.unshiftObject(["black", "white"]); => [["black", "white"], "yellow", "red", "green", "blue"]
-
- */
- unshiftObject: function(obj) {
- this.insertAt(0, obj) ;
- return obj ;
- },
-
- /**
- Adds the named objects to the beginning of the array. Defers notifying
- observers until all objects have been added.
-
- var colors = ["red", "green", "blue"];
- colors.unshiftObjects(["black", "white"]); => ["black", "white", "red", "green", "blue"]
- colors.unshiftObjects("yellow"); => Type Error: 'undefined' is not a function
-
- @param {Ember.Enumerable} objects the objects to add
- @returns {Ember.Array} receiver
- */
- unshiftObjects: function(objects) {
- this.replace(0, 0, objects);
- return this;
- },
-
- /**
- Reverse objects in the array. Works just like reverse() but it is
- KVO-compliant.
-
- @return {Ember.Array} receiver
- */
- reverseObjects: function() {
- var len = get(this, 'length');
- if (len === 0) return this;
- var objects = this.toArray().reverse();
- this.replace(0, len, objects);
- return this;
- },
-
- // ..........................................................
- // IMPLEMENT Ember.MutableEnumerable
- //
-
- /** @private (nodoc) */
- removeObject: function(obj) {
- var loc = get(this, 'length') || 0;
- while(--loc >= 0) {
- var curObject = this.objectAt(loc) ;
- if (curObject === obj) this.removeAt(loc) ;
- }
- return this ;
- },
-
- /** @private (nodoc) */
- addObject: function(obj) {
- if (!this.contains(obj)) this.pushObject(obj);
- return this ;
- }
-
-});
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-var get = Ember.get, set = Ember.set, defineProperty = Ember.defineProperty;
-
-/**
- @class
-
- ## Overview
-
- This mixin provides properties and property observing functionality, core
- features of the Ember object model.
-
- Properties and observers allow one object to observe changes to a
- property on another object. This is one of the fundamental ways that
- models, controllers and views communicate with each other in an Ember
- application.
-
- Any object that has this mixin applied can be used in observer
- operations. That includes Ember.Object and most objects you will
- interact with as you write your Ember application.
-
- Note that you will not generally apply this mixin to classes yourself,
- but you will use the features provided by this module frequently, so it
- is important to understand how to use it.
-
- ## Using get() and set()
-
- Because of Ember's support for bindings and observers, you will always
- access properties using the get method, and set properties using the
- set method. This allows the observing objects to be notified and
- computed properties to be handled properly.
-
- More documentation about `get` and `set` are below.
-
- ## Observing Property Changes
-
- You typically observe property changes simply by adding the `observes`
- call to the end of your method declarations in classes that you write.
- For example:
-
- Ember.Object.create({
- valueObserver: function() {
- // Executes whenever the "value" property changes
- }.observes('value')
- });
-
- Although this is the most common way to add an observer, this capability
- is actually built into the Ember.Object class on top of two methods
- defined in this mixin: `addObserver` and `removeObserver`. You can use
- these two methods to add and remove observers yourself if you need to
- do so at runtime.
-
- To add an observer for a property, call:
-
- object.addObserver('propertyKey', targetObject, targetAction)
-
- This will call the `targetAction` method on the `targetObject` to be called
- whenever the value of the `propertyKey` changes.
-
- Note that if `propertyKey` is a computed property, the observer will be
- called when any of the property dependencies are changed, even if the
- resulting value of the computed property is unchanged. This is necessary
- because computed properties are not computed until `get` is called.
-
- @extends Ember.Mixin
-*/
-Ember.Observable = Ember.Mixin.create(/** @scope Ember.Observable.prototype */ {
-
- /** @private - compatibility */
- isObserverable: true,
-
- /**
- Retrieves the value of a property from the object.
-
- This method is usually similar to using object[keyName] or object.keyName,
- however it supports both computed properties and the unknownProperty
- handler.
-
- Because `get` unifies the syntax for accessing all these kinds
- of properties, it can make many refactorings easier, such as replacing a
- simple property with a computed property, or vice versa.
-
- ### Computed Properties
-
- Computed properties are methods defined with the `property` modifier
- declared at the end, such as:
-
- fullName: function() {
- return this.getEach('firstName', 'lastName').compact().join(' ');
- }.property('firstName', 'lastName')
-
- When you call `get` on a computed property, the function will be
- called and the return value will be returned instead of the function
- itself.
-
- ### Unknown Properties
-
- Likewise, if you try to call `get` on a property whose value is
- undefined, the unknownProperty() method will be called on the object.
- If this method returns any value other than undefined, it will be returned
- instead. This allows you to implement "virtual" properties that are
- not defined upfront.
-
- @param {String} key The property to retrieve
- @returns {Object} The property value or undefined.
- */
- get: function(keyName) {
- return get(this, keyName);
- },
-
- /**
- To get multiple properties at once, call getProperties
- with a list of strings or an array:
-
- record.getProperties('firstName', 'lastName', 'zipCode'); // => { firstName: 'John', lastName: 'Doe', zipCode: '10011' }
-
- is equivalent to:
-
- record.getProperties(['firstName', 'lastName', 'zipCode']); // => { firstName: 'John', lastName: 'Doe', zipCode: '10011' }
-
- @param {String...|Array} list of keys to get
- @returns {Hash}
- */
- getProperties: function() {
- var ret = {};
- var propertyNames = arguments;
- if (arguments.length === 1 && Ember.typeOf(arguments[0]) === 'array') {
- propertyNames = arguments[0];
- }
- for(var i = 0; i < propertyNames.length; i++) {
- ret[propertyNames[i]] = get(this, propertyNames[i]);
- }
- return ret;
- },
-
- /**
- Sets the provided key or path to the value.
-
- This method is generally very similar to calling object[key] = value or
- object.key = value, except that it provides support for computed
- properties, the unknownProperty() method and property observers.
-
- ### Computed Properties
-
- If you try to set a value on a key that has a computed property handler
- defined (see the get() method for an example), then set() will call
- that method, passing both the value and key instead of simply changing
- the value itself. This is useful for those times when you need to
- implement a property that is composed of one or more member
- properties.
-
- ### Unknown Properties
-
- If you try to set a value on a key that is undefined in the target
- object, then the unknownProperty() handler will be called instead. This
- gives you an opportunity to implement complex "virtual" properties that
- are not predefined on the object. If unknownProperty() returns
- undefined, then set() will simply set the value on the object.
-
- ### Property Observers
-
- In addition to changing the property, set() will also register a
- property change with the object. Unless you have placed this call
- inside of a beginPropertyChanges() and endPropertyChanges(), any "local"
- observers (i.e. observer methods declared on the same object), will be
- called immediately. Any "remote" observers (i.e. observer methods
- declared on another object) will be placed in a queue and called at a
- later time in a coalesced manner.
-
- ### Chaining
-
- In addition to property changes, set() returns the value of the object
- itself so you can do chaining like this:
-
- record.set('firstName', 'Charles').set('lastName', 'Jolley');
-
- @param {String} key The property to set
- @param {Object} value The value to set or null.
- @returns {Ember.Observable}
- */
- set: function(keyName, value) {
- set(this, keyName, value);
- return this;
- },
-
- /**
- To set multiple properties at once, call setProperties
- with a Hash:
-
- record.setProperties({ firstName: 'Charles', lastName: 'Jolley' });
-
- @param {Hash} hash the hash of keys and values to set
- @returns {Ember.Observable}
- */
- setProperties: function(hash) {
- return Ember.setProperties(this, hash);
- },
-
- /**
- Begins a grouping of property changes.
-
- You can use this method to group property changes so that notifications
- will not be sent until the changes are finished. If you plan to make a
- large number of changes to an object at one time, you should call this
- method at the beginning of the changes to begin deferring change
- notifications. When you are done making changes, call endPropertyChanges()
- to deliver the deferred change notifications and end deferring.
-
- @returns {Ember.Observable}
- */
- beginPropertyChanges: function() {
- Ember.beginPropertyChanges();
- return this;
- },
-
- /**
- Ends a grouping of property changes.
-
- You can use this method to group property changes so that notifications
- will not be sent until the changes are finished. If you plan to make a
- large number of changes to an object at one time, you should call
- beginPropertyChanges() at the beginning of the changes to defer change
- notifications. When you are done making changes, call this method to
- deliver the deferred change notifications and end deferring.
-
- @returns {Ember.Observable}
- */
- endPropertyChanges: function() {
- Ember.endPropertyChanges();
- return this;
- },
-
- /**
- Notify the observer system that a property is about to change.
-
- Sometimes you need to change a value directly or indirectly without
- actually calling get() or set() on it. In this case, you can use this
- method and propertyDidChange() instead. Calling these two methods
- together will notify all observers that the property has potentially
- changed value.
-
- Note that you must always call propertyWillChange and propertyDidChange as
- a pair. If you do not, it may get the property change groups out of order
- and cause notifications to be delivered more often than you would like.
-
- @param {String} key The property key that is about to change.
- @returns {Ember.Observable}
- */
- propertyWillChange: function(keyName){
- Ember.propertyWillChange(this, keyName);
- return this;
- },
-
- /**
- Notify the observer system that a property has just changed.
-
- Sometimes you need to change a value directly or indirectly without
- actually calling get() or set() on it. In this case, you can use this
- method and propertyWillChange() instead. Calling these two methods
- together will notify all observers that the property has potentially
- changed value.
-
- Note that you must always call propertyWillChange and propertyDidChange as
- a pair. If you do not, it may get the property change groups out of order
- and cause notifications to be delivered more often than you would like.
-
- @param {String} keyName The property key that has just changed.
- @returns {Ember.Observable}
- */
- propertyDidChange: function(keyName) {
- Ember.propertyDidChange(this, keyName);
- return this;
- },
-
- /**
- Convenience method to call `propertyWillChange` and `propertyDidChange` in
- succession.
-
- @param {String} keyName The property key to be notified about.
- @returns {Ember.Observable}
- */
- notifyPropertyChange: function(keyName) {
- this.propertyWillChange(keyName);
- this.propertyDidChange(keyName);
- return this;
- },
-
- addBeforeObserver: function(key, target, method) {
- Ember.addBeforeObserver(this, key, target, method);
- },
-
- /**
- Adds an observer on a property.
-
- This is the core method used to register an observer for a property.
-
- Once you call this method, anytime the key's value is set, your observer
- will be notified. Note that the observers are triggered anytime the
- value is set, regardless of whether it has actually changed. Your
- observer should be prepared to handle that.
-
- You can also pass an optional context parameter to this method. The
- context will be passed to your observer method whenever it is triggered.
- Note that if you add the same target/method pair on a key multiple times
- with different context parameters, your observer will only be called once
- with the last context you passed.
-
- ### Observer Methods
-
- Observer methods you pass should generally have the following signature if
- you do not pass a "context" parameter:
-
- fooDidChange: function(sender, key, value, rev);
-
- The sender is the object that changed. The key is the property that
- changes. The value property is currently reserved and unused. The rev
- is the last property revision of the object when it changed, which you can
- use to detect if the key value has really changed or not.
-
- If you pass a "context" parameter, the context will be passed before the
- revision like so:
-
- fooDidChange: function(sender, key, value, context, rev);
-
- Usually you will not need the value, context or revision parameters at
- the end. In this case, it is common to write observer methods that take
- only a sender and key value as parameters or, if you aren't interested in
- any of these values, to write an observer that has no parameters at all.
-
- @param {String} key The key to observer
- @param {Object} target The target object to invoke
- @param {String|Function} method The method to invoke.
- @returns {Ember.Object} self
- */
- addObserver: function(key, target, method) {
- Ember.addObserver(this, key, target, method);
- },
-
- /**
- Remove an observer you have previously registered on this object. Pass
- the same key, target, and method you passed to addObserver() and your
- target will no longer receive notifications.
-
- @param {String} key The key to observer
- @param {Object} target The target object to invoke
- @param {String|Function} method The method to invoke.
- @returns {Ember.Observable} receiver
- */
- removeObserver: function(key, target, method) {
- Ember.removeObserver(this, key, target, method);
- },
-
- /**
- Returns true if the object currently has observers registered for a
- particular key. You can use this method to potentially defer performing
- an expensive action until someone begins observing a particular property
- on the object.
-
- @param {String} key Key to check
- @returns {Boolean}
- */
- hasObserverFor: function(key) {
- return Ember.hasListeners(this, key+':change');
- },
-
- /**
- This method will be called when a client attempts to get the value of a
- property that has not been defined in one of the typical ways. Override
- this method to create "virtual" properties.
-
- @param {String} key The name of the unknown property that was requested.
- @returns {Object} The property value or undefined. Default is undefined.
- */
- unknownProperty: function(key) {
- return undefined;
- },
-
- /**
- This method will be called when a client attempts to set the value of a
- property that has not been defined in one of the typical ways. Override
- this method to create "virtual" properties.
-
- @param {String} key The name of the unknown property to be set.
- @param {Object} value The value the unknown property is to be set to.
- */
- setUnknownProperty: function(key, value) {
- defineProperty(this, key);
- set(this, key, value);
- },
-
- /**
- @deprecated
- @param {String} path The property path to retrieve
- @returns {Object} The property value or undefined.
- */
- getPath: function(path) {
- Ember.deprecate("getPath is deprecated since get now supports paths");
- return this.get(path);
- },
-
- /**
- @deprecated
- @param {String} path The path to the property that will be set
- @param {Object} value The value to set or null.
- @returns {Ember.Observable}
- */
- setPath: function(path, value) {
- Ember.deprecate("setPath is deprecated since set now supports paths");
- return this.set(path, value);
- },
-
- /**
- Retrieves the value of a property, or a default value in the case that the property
- returns undefined.
-
- person.getWithDefault('lastName', 'Doe');
-
- @param {String} keyName The name of the property to retrieve
- @param {Object} defaultValue The value to return if the property value is undefined
- @returns {Object} The property value or the defaultValue.
- */
- getWithDefault: function(keyName, defaultValue) {
- return Ember.getWithDefault(this, keyName, defaultValue);
- },
-
- /**
- Set the value of a property to the current value plus some amount.
-
- person.incrementProperty('age');
- team.incrementProperty('score', 2);
-
- @param {String} keyName The name of the property to increment
- @param {Object} increment The amount to increment by. Defaults to 1
- @returns {Object} The new property value
- */
- incrementProperty: function(keyName, increment) {
- if (!increment) { increment = 1; }
- set(this, keyName, (get(this, keyName) || 0)+increment);
- return get(this, keyName);
- },
-
- /**
- Set the value of a property to the current value minus some amount.
-
- player.decrementProperty('lives');
- orc.decrementProperty('health', 5);
-
- @param {String} keyName The name of the property to decrement
- @param {Object} increment The amount to decrement by. Defaults to 1
- @returns {Object} The new property value
- */
- decrementProperty: function(keyName, increment) {
- if (!increment) { increment = 1; }
- set(this, keyName, (get(this, keyName) || 0)-increment);
- return get(this, keyName);
- },
-
- /**
- Set the value of a boolean property to the opposite of it's
- current value.
-
- starship.toggleProperty('warpDriveEnaged');
-
- @param {String} keyName The name of the property to toggle
- @returns {Object} The new property value
- */
- toggleProperty: function(keyName) {
- set(this, keyName, !get(this, keyName));
- return get(this, keyName);
- },
-
- /**
- Returns the cached value of a computed property, if it exists.
- This allows you to inspect the value of a computed property
- without accidentally invoking it if it is intended to be
- generated lazily.
-
- @param {String} keyName
- @returns {Object} The cached value of the computed property, if any
- */
- cacheFor: function(keyName) {
- return Ember.cacheFor(this, keyName);
- },
-
- /** @private - intended for debugging purposes */
- observersForKey: function(keyName) {
- return Ember.observersFor(this, keyName);
- }
-});
-
-
-
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set;
-
-Ember.TargetActionSupport = Ember.Mixin.create({
- target: null,
- action: null,
-
- targetObject: Ember.computed(function() {
- var target = get(this, 'target');
-
- if (Ember.typeOf(target) === "string") {
- var value = get(this, target);
- if (value === undefined) { value = get(window, target); }
- return value;
- } else {
- return target;
- }
- }).property('target').cacheable(),
-
- triggerAction: function() {
- var action = get(this, 'action'),
- target = get(this, 'targetObject');
-
- if (target && action) {
- var ret;
-
- if (typeof target.send === 'function') {
- ret = target.send(action, this);
- } else {
- if (typeof action === 'string') {
- action = target[action];
- }
- ret = action.call(target, this);
- }
- if (ret !== false) ret = true;
-
- return ret;
- } else {
- return false;
- }
- }
-});
-
-})();
-
-
-
-(function() {
-/**
- @class
-
- @extends Ember.Mixin
- */
-Ember.Evented = Ember.Mixin.create(
- /** @scope Ember.Evented.prototype */ {
- on: function(name, target, method) {
- Ember.addListener(this, name, target, method);
- },
-
- one: function(name, target, method) {
- if (!method) {
- method = target;
- target = null;
- }
-
- var self = this;
- var wrapped = function() {
- Ember.removeListener(self, name, target, wrapped);
-
- if ('string' === typeof method) { method = this[method]; }
-
- // Internally, a `null` target means that the target is
- // the first parameter to addListener. That means that
- // the `this` passed into this function is the target
- // determined by the event system.
- method.apply(this, arguments);
- };
-
- this.on(name, target, wrapped);
- },
-
- trigger: function(name) {
- var args = [], i, l;
- for (i = 1, l = arguments.length; i < l; i++) {
- args.push(arguments[i]);
- }
- Ember.sendEvent(this, name, args);
- },
-
- fire: function(name) {
- Ember.deprecate("Ember.Evented#fire() has been deprecated in favor of trigger() for compatibility with jQuery. It will be removed in 1.0. Please update your code to call trigger() instead.");
- this.trigger.apply(this, arguments);
- },
-
- off: function(name, target, method) {
- Ember.removeListener(this, name, target, method);
- },
-
- has: function(name) {
- return Ember.hasListeners(this, name);
- }
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-
-
-// NOTE: this object should never be included directly. Instead use Ember.
-// Ember.Object. We only define this separately so that Ember.Set can depend on it
-
-
-
-var classToString = Ember.Mixin.prototype.toString;
-var set = Ember.set, get = Ember.get;
-var o_create = Ember.create,
- o_defineProperty = Ember.platform.defineProperty,
- a_slice = Array.prototype.slice,
- meta = Ember.meta,
- rewatch = Ember.rewatch,
- finishChains = Ember.finishChains,
- finishPartial = Ember.Mixin.finishPartial,
- reopen = Ember.Mixin.prototype.reopen;
-
-var undefinedDescriptor = {
- configurable: true,
- writable: true,
- enumerable: false,
- value: undefined
-};
-
-/** @private */
-function makeCtor() {
-
- // Note: avoid accessing any properties on the object since it makes the
- // method a lot faster. This is glue code so we want it to be as fast as
- // possible.
-
- var wasApplied = false, initMixins;
-
- var Class = function() {
- if (!wasApplied) {
- Class.proto(); // prepare prototype...
- }
- var m = Ember.meta(this);
- m.proto = this;
- if (initMixins) {
- this.reopen.apply(this, initMixins);
- initMixins = null;
- }
- o_defineProperty(this, Ember.GUID_KEY, undefinedDescriptor);
- o_defineProperty(this, '_super', undefinedDescriptor);
- finishPartial(this, m);
- delete m.proto;
- finishChains(this);
- this.init.apply(this, arguments);
- };
-
- Class.toString = classToString;
- Class.willReopen = function() {
- if (wasApplied) {
- Class.PrototypeMixin = Ember.Mixin.create(Class.PrototypeMixin);
- }
-
- wasApplied = false;
- };
- Class._initMixins = function(args) { initMixins = args; };
-
- Class.proto = function() {
- var superclass = Class.superclass;
- if (superclass) { superclass.proto(); }
-
- if (!wasApplied) {
- wasApplied = true;
- Class.PrototypeMixin.applyPartial(Class.prototype);
- rewatch(Class.prototype);
- }
-
- return this.prototype;
- };
-
- return Class;
-
-}
-
-var CoreObject = makeCtor();
-
-CoreObject.PrototypeMixin = Ember.Mixin.create(
-/** @scope Ember.CoreObject.prototype */ {
-
- reopen: function() {
- Ember.Mixin._apply(this, arguments, true);
- return this;
- },
-
- isInstance: true,
-
- /** @private */
- init: function() {},
-
- /** @field */
- isDestroyed: false,
-
- /** @field */
- isDestroying: false,
-
- /**
- Destroys an object by setting the isDestroyed flag and removing its
- metadata, which effectively destroys observers and bindings.
-
- If you try to set a property on a destroyed object, an exception will be
- raised.
-
- Note that destruction is scheduled for the end of the run loop and does not
- happen immediately.
-
- @returns {Ember.Object} receiver
- */
- destroy: function() {
- if (this.isDestroying) { return; }
-
- this.isDestroying = true;
-
- if (this.willDestroy) { this.willDestroy(); }
-
- set(this, 'isDestroyed', true);
- Ember.run.schedule('destroy', this, this._scheduledDestroy);
- return this;
- },
-
- /**
- Invoked by the run loop to actually destroy the object. This is
- scheduled for execution by the `destroy` method.
-
- @private
- */
- _scheduledDestroy: function() {
- Ember.destroy(this);
- if (this.didDestroy) { this.didDestroy(); }
- },
-
- bind: function(to, from) {
- if (!(from instanceof Ember.Binding)) { from = Ember.Binding.from(from); }
- from.to(to).connect(this);
- return from;
- },
-
- toString: function() {
- return '<'+this.constructor.toString()+':'+Ember.guidFor(this)+'>';
- }
-});
-
-if (Ember.config.overridePrototypeMixin) {
- Ember.config.overridePrototypeMixin(CoreObject.PrototypeMixin);
-}
-
-CoreObject.__super__ = null;
-
-var ClassMixin = Ember.Mixin.create(
-/** @scope Ember.ClassMixin.prototype */ {
-
- ClassMixin: Ember.required(),
-
- PrototypeMixin: Ember.required(),
-
- isClass: true,
-
- isMethod: false,
-
- extend: function() {
- var Class = makeCtor(), proto;
- Class.ClassMixin = Ember.Mixin.create(this.ClassMixin);
- Class.PrototypeMixin = Ember.Mixin.create(this.PrototypeMixin);
-
- Class.ClassMixin.ownerConstructor = Class;
- Class.PrototypeMixin.ownerConstructor = Class;
-
- reopen.apply(Class.PrototypeMixin, arguments);
-
- Class.superclass = this;
- Class.__super__ = this.prototype;
-
- proto = Class.prototype = o_create(this.prototype);
- proto.constructor = Class;
- Ember.generateGuid(proto, 'ember');
- meta(proto).proto = proto; // this will disable observers on prototype
-
- Class.ClassMixin.apply(Class);
- return Class;
- },
-
- create: function() {
- var C = this;
- if (arguments.length>0) { this._initMixins(arguments); }
- return new C();
- },
-
- reopen: function() {
- this.willReopen();
- reopen.apply(this.PrototypeMixin, arguments);
- return this;
- },
-
- reopenClass: function() {
- reopen.apply(this.ClassMixin, arguments);
- Ember.Mixin._apply(this, arguments, false);
- return this;
- },
-
- detect: function(obj) {
- if ('function' !== typeof obj) { return false; }
- while(obj) {
- if (obj===this) { return true; }
- obj = obj.superclass;
- }
- return false;
- },
-
- detectInstance: function(obj) {
- return obj instanceof this;
- },
-
- /**
- In some cases, you may want to annotate computed properties with additional
- metadata about how they function or what values they operate on. For example,
- computed property functions may close over variables that are then no longer
- available for introspection.
-
- You can pass a hash of these values to a computed property like this:
-
- person: function() {
- var personId = this.get('personId');
- return App.Person.create({ id: personId });
- }.property().meta({ type: App.Person })
-
- Once you've done this, you can retrieve the values saved to the computed
- property from your class like this:
-
- MyClass.metaForProperty('person');
-
- This will return the original hash that was passed to `meta()`.
- */
- metaForProperty: function(key) {
- var desc = meta(this.proto(), false).descs[key];
-
- Ember.assert("metaForProperty() could not find a computed property with key '"+key+"'.", !!desc && desc instanceof Ember.ComputedProperty);
- return desc._meta || {};
- },
-
- /**
- Iterate over each computed property for the class, passing its name
- and any associated metadata (see `metaForProperty`) to the callback.
- */
- eachComputedProperty: function(callback, binding) {
- var proto = this.proto(),
- descs = meta(proto).descs,
- empty = {},
- property;
-
- for (var name in descs) {
- property = descs[name];
-
- if (property instanceof Ember.ComputedProperty) {
- callback.call(binding || this, name, property._meta || empty);
- }
- }
- }
-
-});
-
-if (Ember.config.overrideClassMixin) {
- Ember.config.overrideClassMixin(ClassMixin);
-}
-
-CoreObject.ClassMixin = ClassMixin;
-ClassMixin.apply(CoreObject);
-
-/**
- @class
-*/
-Ember.CoreObject = CoreObject;
-
-
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set, guidFor = Ember.guidFor, none = Ember.none;
-
-/**
- @class
-
- An unordered collection of objects.
-
- A Set works a bit like an array except that its items are not ordered.
- You can create a set to efficiently test for membership for an object. You
- can also iterate through a set just like an array, even accessing objects
- by index, however there is no guarantee as to their order.
-
- All Sets are observable via the Enumerable Observer API - which works
- on any enumerable object including both Sets and Arrays.
-
- ## Creating a Set
-
- You can create a set like you would most objects using
- `new Ember.Set()`. Most new sets you create will be empty, but you can
- also initialize the set with some content by passing an array or other
- enumerable of objects to the constructor.
-
- Finally, you can pass in an existing set and the set will be copied. You
- can also create a copy of a set by calling `Ember.Set#copy()`.
-
- #js
- // creates a new empty set
- var foundNames = new Ember.Set();
-
- // creates a set with four names in it.
- var names = new Ember.Set(["Charles", "Tom", "Juan", "Alex"]); // :P
-
- // creates a copy of the names set.
- var namesCopy = new Ember.Set(names);
-
- // same as above.
- var anotherNamesCopy = names.copy();
-
- ## Adding/Removing Objects
-
- You generally add or remove objects from a set using `add()` or
- `remove()`. You can add any type of object including primitives such as
- numbers, strings, and booleans.
-
- Unlike arrays, objects can only exist one time in a set. If you call `add()`
- on a set with the same object multiple times, the object will only be added
- once. Likewise, calling `remove()` with the same object multiple times will
- remove the object the first time and have no effect on future calls until
- you add the object to the set again.
-
- NOTE: You cannot add/remove null or undefined to a set. Any attempt to do so
- will be ignored.
-
- In addition to add/remove you can also call `push()`/`pop()`. Push behaves
- just like `add()` but `pop()`, unlike `remove()` will pick an arbitrary
- object, remove it and return it. This is a good way to use a set as a job
- queue when you don't care which order the jobs are executed in.
-
- ## Testing for an Object
-
- To test for an object's presence in a set you simply call
- `Ember.Set#contains()`.
-
- ## Observing changes
-
- When using `Ember.Set`, you can observe the `"[]"` property to be
- alerted whenever the content changes. You can also add an enumerable
- observer to the set to be notified of specific objects that are added and
- removed from the set. See `Ember.Enumerable` for more information on
- enumerables.
-
- This is often unhelpful. If you are filtering sets of objects, for instance,
- it is very inefficient to re-filter all of the items each time the set
- changes. It would be better if you could just adjust the filtered set based
- on what was changed on the original set. The same issue applies to merging
- sets, as well.
-
- ## Other Methods
-
- `Ember.Set` primary implements other mixin APIs. For a complete reference
- on the methods you will use with `Ember.Set`, please consult these mixins.
- The most useful ones will be `Ember.Enumerable` and
- `Ember.MutableEnumerable` which implement most of the common iterator
- methods you are used to on Array.
-
- Note that you can also use the `Ember.Copyable` and `Ember.Freezable`
- APIs on `Ember.Set` as well. Once a set is frozen it can no longer be
- modified. The benefit of this is that when you call frozenCopy() on it,
- Ember will avoid making copies of the set. This allows you to write
- code that can know with certainty when the underlying set data will or
- will not be modified.
-
- @extends Ember.Enumerable
- @extends Ember.MutableEnumerable
- @extends Ember.Copyable
- @extends Ember.Freezable
-
- @since Ember 0.9
-*/
-Ember.Set = Ember.CoreObject.extend(Ember.MutableEnumerable, Ember.Copyable, Ember.Freezable,
- /** @scope Ember.Set.prototype */ {
-
- // ..........................................................
- // IMPLEMENT ENUMERABLE APIS
- //
-
- /**
- This property will change as the number of objects in the set changes.
-
- @type number
- @default 0
- */
- length: 0,
-
- /**
- Clears the set. This is useful if you want to reuse an existing set
- without having to recreate it.
-
- var colors = new Ember.Set(["red", "green", "blue"]);
- colors.length; => 3
- colors.clear();
- colors.length; => 0
-
- @returns {Ember.Set} An empty Set
- */
- clear: function() {
- if (this.isFrozen) { throw new Error(Ember.FROZEN_ERROR); }
-
- var len = get(this, 'length');
- if (len === 0) { return this; }
-
- var guid;
-
- this.enumerableContentWillChange(len, 0);
- Ember.propertyWillChange(this, 'firstObject');
- Ember.propertyWillChange(this, 'lastObject');
-
- for (var i=0; i < len; i++){
- guid = guidFor(this[i]);
- delete this[guid];
- delete this[i];
- }
-
- set(this, 'length', 0);
-
- Ember.propertyDidChange(this, 'firstObject');
- Ember.propertyDidChange(this, 'lastObject');
- this.enumerableContentDidChange(len, 0);
-
- return this;
- },
-
- /**
- Returns true if the passed object is also an enumerable that contains the
- same objects as the receiver.
-
- var colors = ["red", "green", "blue"],
- same_colors = new Ember.Set(colors);
- same_colors.isEqual(colors); => true
- same_colors.isEqual(["purple", "brown"]); => false
-
- @param {Ember.Set} obj the other object.
- @returns {Boolean}
- */
- isEqual: function(obj) {
- // fail fast
- if (!Ember.Enumerable.detect(obj)) return false;
-
- var loc = get(this, 'length');
- if (get(obj, 'length') !== loc) return false;
-
- while(--loc >= 0) {
- if (!obj.contains(this[loc])) return false;
- }
-
- return true;
- },
-
- /**
- Adds an object to the set. Only non-null objects can be added to a set
- and those can only be added once. If the object is already in the set or
- the passed value is null this method will have no effect.
-
- This is an alias for `Ember.MutableEnumerable.addObject()`.
-
- var colors = new Ember.Set();
- colors.add("blue"); => ["blue"]
- colors.add("blue"); => ["blue"]
- colors.add("red"); => ["blue", "red"]
- colors.add(null); => ["blue", "red"]
- colors.add(undefined); => ["blue", "red"]
-
- @function
- @param {Object} obj The object to add.
- @returns {Ember.Set} The set itself.
- */
- add: Ember.alias('addObject'),
-
- /**
- Removes the object from the set if it is found. If you pass a null value
- or an object that is already not in the set, this method will have no
- effect. This is an alias for `Ember.MutableEnumerable.removeObject()`.
-
- var colors = new Ember.Set(["red", "green", "blue"]);
- colors.remove("red"); => ["blue", "green"]
- colors.remove("purple"); => ["blue", "green"]
- colors.remove(null); => ["blue", "green"]
-
- @function
- @param {Object} obj The object to remove
- @returns {Ember.Set} The set itself.
- */
- remove: Ember.alias('removeObject'),
-
- /**
- Removes the last element from the set and returns it, or null if it's empty.
-
- var colors = new Ember.Set(["green", "blue"]);
- colors.pop(); => "blue"
- colors.pop(); => "green"
- colors.pop(); => null
-
- @returns {Object} The removed object from the set or null.
- */
- pop: function() {
- if (get(this, 'isFrozen')) throw new Error(Ember.FROZEN_ERROR);
- var obj = this.length > 0 ? this[this.length-1] : null;
- this.remove(obj);
- return obj;
- },
-
- /**
- Inserts the given object on to the end of the set. It returns
- the set itself.
-
- This is an alias for `Ember.MutableEnumerable.addObject()`.
-
- var colors = new Ember.Set();
- colors.push("red"); => ["red"]
- colors.push("green"); => ["red", "green"]
- colors.push("blue"); => ["red", "green", "blue"]
-
- @function
- @returns {Ember.Set} The set itself.
- */
- push: Ember.alias('addObject'),
-
- /**
- Removes the last element from the set and returns it, or null if it's empty.
-
- This is an alias for `Ember.Set.pop()`.
-
- var colors = new Ember.Set(["green", "blue"]);
- colors.shift(); => "blue"
- colors.shift(); => "green"
- colors.shift(); => null
-
- @function
- @returns {Object} The removed object from the set or null.
- */
- shift: Ember.alias('pop'),
-
- /**
- Inserts the given object on to the end of the set. It returns
- the set itself.
-
- This is an alias of `Ember.Set.push()`
-
- var colors = new Ember.Set();
- colors.unshift("red"); => ["red"]
- colors.unshift("green"); => ["red", "green"]
- colors.unshift("blue"); => ["red", "green", "blue"]
-
- @function
- @returns {Ember.Set} The set itself.
- */
- unshift: Ember.alias('push'),
-
- /**
- Adds each object in the passed enumerable to the set.
-
- This is an alias of `Ember.MutableEnumerable.addObjects()`
-
- var colors = new Ember.Set();
- colors.addEach(["red", "green", "blue"]); => ["red", "green", "blue"]
-
- @function
- @param {Ember.Enumerable} objects the objects to add.
- @returns {Ember.Set} The set itself.
- */
- addEach: Ember.alias('addObjects'),
-
- /**
- Removes each object in the passed enumerable to the set.
-
- This is an alias of `Ember.MutableEnumerable.removeObjects()`
-
- var colors = new Ember.Set(["red", "green", "blue"]);
- colors.removeEach(["red", "blue"]); => ["green"]
-
- @function
- @param {Ember.Enumerable} objects the objects to remove.
- @returns {Ember.Set} The set itself.
- */
- removeEach: Ember.alias('removeObjects'),
-
- // ..........................................................
- // PRIVATE ENUMERABLE SUPPORT
- //
-
- /** @private */
- init: function(items) {
- this._super();
- if (items) this.addObjects(items);
- },
-
- /** @private (nodoc) - implement Ember.Enumerable */
- nextObject: function(idx) {
- return this[idx];
- },
-
- /** @private - more optimized version */
- firstObject: Ember.computed(function() {
- return this.length > 0 ? this[0] : undefined;
- }).property().cacheable(),
-
- /** @private - more optimized version */
- lastObject: Ember.computed(function() {
- return this.length > 0 ? this[this.length-1] : undefined;
- }).property().cacheable(),
-
- /** @private (nodoc) - implements Ember.MutableEnumerable */
- addObject: function(obj) {
- if (get(this, 'isFrozen')) throw new Error(Ember.FROZEN_ERROR);
- if (none(obj)) return this; // nothing to do
-
- var guid = guidFor(obj),
- idx = this[guid],
- len = get(this, 'length'),
- added ;
-
- if (idx>=0 && idx<len && (this[idx] === obj)) return this; // added
-
- added = [obj];
-
- this.enumerableContentWillChange(null, added);
- Ember.propertyWillChange(this, 'lastObject');
-
- len = get(this, 'length');
- this[guid] = len;
- this[len] = obj;
- set(this, 'length', len+1);
-
- Ember.propertyDidChange(this, 'lastObject');
- this.enumerableContentDidChange(null, added);
-
- return this;
- },
-
- /** @private (nodoc) - implements Ember.MutableEnumerable */
- removeObject: function(obj) {
- if (get(this, 'isFrozen')) throw new Error(Ember.FROZEN_ERROR);
- if (none(obj)) return this; // nothing to do
-
- var guid = guidFor(obj),
- idx = this[guid],
- len = get(this, 'length'),
- isFirst = idx === 0,
- isLast = idx === len-1,
- last, removed;
-
-
- if (idx>=0 && idx<len && (this[idx] === obj)) {
- removed = [obj];
-
- this.enumerableContentWillChange(removed, null);
- if (isFirst) { Ember.propertyWillChange(this, 'firstObject'); }
- if (isLast) { Ember.propertyWillChange(this, 'lastObject'); }
-
- // swap items - basically move the item to the end so it can be removed
- if (idx < len-1) {
- last = this[len-1];
- this[idx] = last;
- this[guidFor(last)] = idx;
- }
-
- delete this[guid];
- delete this[len-1];
- set(this, 'length', len-1);
-
- if (isFirst) { Ember.propertyDidChange(this, 'firstObject'); }
- if (isLast) { Ember.propertyDidChange(this, 'lastObject'); }
- this.enumerableContentDidChange(removed, null);
- }
-
- return this;
- },
-
- /** @private (nodoc) - optimized version */
- contains: function(obj) {
- return this[guidFor(obj)]>=0;
- },
-
- /** @private (nodoc) */
- copy: function() {
- var C = this.constructor, ret = new C(), loc = get(this, 'length');
- set(ret, 'length', loc);
- while(--loc>=0) {
- ret[loc] = this[loc];
- ret[guidFor(this[loc])] = loc;
- }
- return ret;
- },
-
- /** @private */
- toString: function() {
- var len = this.length, idx, array = [];
- for(idx = 0; idx < len; idx++) {
- array[idx] = this[idx];
- }
- return "Ember.Set<%@>".fmt(array.join(','));
- }
-
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/**
- @class
-
- `Ember.Object` is the main base class for all Ember objects. It is a subclass
- of `Ember.CoreObject` with the `Ember.Observable` mixin applied. For details,
- see the documentation for each of these.
-
- @extends Ember.CoreObject
- @extends Ember.Observable
-*/
-Ember.Object = Ember.CoreObject.extend(Ember.Observable);
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var indexOf = Ember.ArrayPolyfills.indexOf;
-
-/**
- @private
- A Namespace is an object usually used to contain other objects or methods
- such as an application or framework. Create a namespace anytime you want
- to define one of these new containers.
-
- # Example Usage
-
- MyFramework = Ember.Namespace.create({
- VERSION: '1.0.0'
- });
-
-*/
-Ember.Namespace = Ember.Object.extend({
- isNamespace: true,
-
- init: function() {
- Ember.Namespace.NAMESPACES.push(this);
- Ember.Namespace.PROCESSED = false;
- },
-
- toString: function() {
- Ember.identifyNamespaces();
- return this[Ember.GUID_KEY+'_name'];
- },
-
- destroy: function() {
- var namespaces = Ember.Namespace.NAMESPACES;
- window[this.toString()] = undefined;
- namespaces.splice(indexOf.call(namespaces, this), 1);
- this._super();
- }
-});
-
-Ember.Namespace.NAMESPACES = [Ember];
-Ember.Namespace.PROCESSED = false;
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/**
- @private
-
- Defines a namespace that will contain an executable application. This is
- very similar to a normal namespace except that it is expected to include at
- least a 'ready' function which can be run to initialize the application.
-
- Currently Ember.Application is very similar to Ember.Namespace. However, this
- class may be augmented by additional frameworks so it is important to use
- this instance when building new applications.
-
- # Example Usage
-
- MyApp = Ember.Application.create({
- VERSION: '1.0.0',
- store: Ember.Store.create().from(Ember.fixtures)
- });
-
- MyApp.ready = function() {
- //..init code goes here...
- }
-
-*/
-Ember.Application = Ember.Namespace.extend();
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set;
-
-/**
- @class
-
- An ArrayProxy wraps any other object that implements Ember.Array and/or
- Ember.MutableArray, forwarding all requests. This makes it very useful for
- a number of binding use cases or other cases where being able to swap
- out the underlying array is useful.
-
- A simple example of usage:
-
- var pets = ['dog', 'cat', 'fish'];
- var ap = Ember.ArrayProxy.create({ content: Ember.A(pets) });
- ap.get('firstObject'); // => 'dog'
- ap.set('content', ['amoeba', 'paramecium']);
- ap.get('firstObject'); // => 'amoeba'
-
- This class can also be useful as a layer to transform the contents of
- an array, as they are accessed. This can be done by overriding
- `objectAtContent`:
-
- var pets = ['dog', 'cat', 'fish'];
- var ap = Ember.ArrayProxy.create({
- content: Ember.A(pets),
- objectAtContent: function(idx) {
- return this.get('content').objectAt(idx).toUpperCase();
- }
- });
- ap.get('firstObject'); // => 'DOG'
-
-
- @extends Ember.Object
- @extends Ember.Array
- @extends Ember.MutableArray
-*/
-Ember.ArrayProxy = Ember.Object.extend(Ember.MutableArray,
-/** @scope Ember.ArrayProxy.prototype */ {
-
- /**
- The content array. Must be an object that implements Ember.Array and/or
- Ember.MutableArray.
-
- @type Ember.Array
- */
- content: null,
-
- /**
- The array that the proxy pretends to be. In the default `ArrayProxy`
- implementation, this and `content` are the same. Subclasses of `ArrayProxy`
- can override this property to provide things like sorting and filtering.
- */
- arrangedContent: Ember.computed('content', function() {
- return get(this, 'content');
- }).cacheable(),
-
- /**
- Should actually retrieve the object at the specified index from the
- content. You can override this method in subclasses to transform the
- content item to something new.
-
- This method will only be called if content is non-null.
-
- @param {Number} idx
- The index to retrieve.
-
- @returns {Object} the value or undefined if none found
- */
- objectAtContent: function(idx) {
- return get(this, 'arrangedContent').objectAt(idx);
- },
-
- /**
- Should actually replace the specified objects on the content array.
- You can override this method in subclasses to transform the content item
- into something new.
-
- This method will only be called if content is non-null.
-
- @param {Number} idx
- The starting index
-
- @param {Number} amt
- The number of items to remove from the content.
-
- @param {Array} objects
- Optional array of objects to insert or null if no objects.
-
- @returns {void}
- */
- replaceContent: function(idx, amt, objects) {
- get(this, 'arrangedContent').replace(idx, amt, objects);
- },
-
- /**
- Invoked when the content property is about to change. Notifies observers that the
- entire array content will change.
- */
- _contentWillChange: Ember.beforeObserver(function() {
- var content = get(this, 'content');
-
- if (content) {
- content.removeArrayObserver(this, {
- willChange: 'contentArrayWillChange',
- didChange: 'contentArrayDidChange'
- });
- }
- }, 'content'),
-
-
- contentArrayWillChange: Ember.K,
- contentArrayDidChange: Ember.K,
-
- /**
- Invoked when the content property changes. Notifies observers that the
- entire array content has changed.
- */
- _contentDidChange: Ember.observer(function() {
- var content = get(this, 'content'),
- len = content ? get(content, 'length') : 0;
-
- Ember.assert("Can't set ArrayProxy's content to itself", content !== this);
-
- if (content) {
- content.addArrayObserver(this, {
- willChange: 'contentArrayWillChange',
- didChange: 'contentArrayDidChange'
- });
- }
- }, 'content'),
-
- _arrangedContentWillChange: Ember.beforeObserver(function() {
- var arrangedContent = get(this, 'arrangedContent'),
- len = arrangedContent ? get(arrangedContent, 'length') : 0;
-
- this.arrangedContentArrayWillChange(this, 0, len, undefined);
-
- if (arrangedContent) {
- arrangedContent.removeArrayObserver(this, {
- willChange: 'arrangedContentArrayWillChange',
- didChange: 'arrangedContentArrayDidChange'
- });
- }
- }, 'arrangedContent'),
-
- _arrangedContentDidChange: Ember.observer(function() {
- var arrangedContent = get(this, 'arrangedContent'),
- len = arrangedContent ? get(arrangedContent, 'length') : 0;
-
- Ember.assert("Can't set ArrayProxy's content to itself", arrangedContent !== this);
-
- if (arrangedContent) {
- arrangedContent.addArrayObserver(this, {
- willChange: 'arrangedContentArrayWillChange',
- didChange: 'arrangedContentArrayDidChange'
- });
- }
-
- this.arrangedContentArrayDidChange(this, 0, undefined, len);
- }, 'arrangedContent'),
-
- /** @private (nodoc) */
- objectAt: function(idx) {
- return get(this, 'content') && this.objectAtContent(idx);
- },
-
- /** @private (nodoc) */
- length: Ember.computed(function() {
- var arrangedContent = get(this, 'arrangedContent');
- return arrangedContent ? get(arrangedContent, 'length') : 0;
- // No dependencies since Enumerable notifies length of change
- }).property().cacheable(),
-
- /** @private (nodoc) */
- replace: function(idx, amt, objects) {
- if (get(this, 'content')) this.replaceContent(idx, amt, objects);
- return this;
- },
-
- /** @private (nodoc) */
- arrangedContentArrayWillChange: function(item, idx, removedCnt, addedCnt) {
- this.arrayContentWillChange(idx, removedCnt, addedCnt);
- },
-
- /** @private (nodoc) */
- arrangedContentArrayDidChange: function(item, idx, removedCnt, addedCnt) {
- this.arrayContentDidChange(idx, removedCnt, addedCnt);
- },
-
- /** @private (nodoc) */
- init: function() {
- this._super();
- this._contentWillChange();
- this._contentDidChange();
- this._arrangedContentWillChange();
- this._arrangedContentDidChange();
- }
-
-});
-
-
-
-
-})();
-
-
-
-(function() {
-var get = Ember.get,
- set = Ember.set,
- fmt = Ember.String.fmt,
- addBeforeObserver = Ember.addBeforeObserver,
- addObserver = Ember.addObserver,
- removeBeforeObserver = Ember.removeBeforeObserver,
- removeObserver = Ember.removeObserver,
- propertyWillChange = Ember.propertyWillChange,
- propertyDidChange = Ember.propertyDidChange;
-
-function contentPropertyWillChange(content, contentKey) {
- var key = contentKey.slice(8); // remove "content."
- if (key in this) { return; } // if shadowed in proxy
- propertyWillChange(this, key);
-}
-
-function contentPropertyDidChange(content, contentKey) {
- var key = contentKey.slice(8); // remove "content."
- if (key in this) { return; } // if shadowed in proxy
- propertyDidChange(this, key);
-}
-
-/**
- @class
-
- `Ember.ObjectProxy` forwards all properties not defined by the proxy itself
- to a proxied `content` object.
-
- object = Ember.Object.create({
- name: 'Foo'
- });
- proxy = Ember.ObjectProxy.create({
- content: object
- });
-
- // Access and change existing properties
- proxy.get('name') // => 'Foo'
- proxy.set('name', 'Bar');
- object.get('name') // => 'Bar'
-
- // Create new 'description' property on `object`
- proxy.set('description', 'Foo is a whizboo baz');
- object.get('description') // => 'Foo is a whizboo baz'
-
- While `content` is unset, setting a property to be delegated will throw an Error.
-
- proxy = Ember.ObjectProxy.create({
- content: null,
- flag: null
- });
- proxy.set('flag', true);
- proxy.get('flag'); // => true
- proxy.get('foo'); // => undefined
- proxy.set('foo', 'data'); // throws Error
-
- Delegated properties can be bound to and will change when content is updated.
-
- Computed properties on the proxy itself can depend on delegated properties.
-
- ProxyWithComputedProperty = Ember.ObjectProxy.extend({
- fullName: function () {
- var firstName = this.get('firstName'),
- lastName = this.get('lastName');
- if (firstName && lastName) {
- return firstName + ' ' + lastName;
- }
- return firstName || lastName;
- }.property('firstName', 'lastName')
- });
- proxy = ProxyWithComputedProperty.create();
- proxy.get('fullName'); => undefined
- proxy.set('content', {
- firstName: 'Tom', lastName: 'Dale'
- }); // triggers property change for fullName on proxy
- proxy.get('fullName'); => 'Tom Dale'
-*/
-Ember.ObjectProxy = Ember.Object.extend(
-/** @scope Ember.ObjectProxy.prototype */ {
- /**
- The object whose properties will be forwarded.
-
- @type Ember.Object
- @default null
- */
- content: null,
- _contentDidChange: Ember.observer(function() {
- Ember.assert("Can't set ObjectProxy's content to itself", this.get('content') !== this);
- }, 'content'),
- /** @private */
- willWatchProperty: function (key) {
- var contentKey = 'content.' + key;
- addBeforeObserver(this, contentKey, null, contentPropertyWillChange);
- addObserver(this, contentKey, null, contentPropertyDidChange);
- },
- /** @private */
- didUnwatchProperty: function (key) {
- var contentKey = 'content.' + key;
- removeBeforeObserver(this, contentKey, null, contentPropertyWillChange);
- removeObserver(this, contentKey, null, contentPropertyDidChange);
- },
- /** @private */
- unknownProperty: function (key) {
- var content = get(this, 'content');
- if (content) {
- return get(content, key);
- }
- },
- /** @private */
- setUnknownProperty: function (key, value) {
- var content = get(this, 'content');
- Ember.assert(fmt("Cannot delegate set('%@', %@) to the 'content' property of object proxy %@: its 'content' is undefined.", [key, value, this]), content);
- return set(content, key, value);
- }
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var set = Ember.set, get = Ember.get, guidFor = Ember.guidFor;
-var forEach = Ember.EnumerableUtils.forEach;
-
-var EachArray = Ember.Object.extend(Ember.Array, {
-
- init: function(content, keyName, owner) {
- this._super();
- this._keyName = keyName;
- this._owner = owner;
- this._content = content;
- },
-
- objectAt: function(idx) {
- var item = this._content.objectAt(idx);
- return item && get(item, this._keyName);
- },
-
- length: Ember.computed(function() {
- var content = this._content;
- return content ? get(content, 'length') : 0;
- }).property().cacheable()
-
-});
-
-var IS_OBSERVER = /^.+:(before|change)$/;
-
-/** @private */
-function addObserverForContentKey(content, keyName, proxy, idx, loc) {
- var objects = proxy._objects, guid;
- if (!objects) objects = proxy._objects = {};
-
- while(--loc>=idx) {
- var item = content.objectAt(loc);
- if (item) {
- Ember.addBeforeObserver(item, keyName, proxy, 'contentKeyWillChange');
- Ember.addObserver(item, keyName, proxy, 'contentKeyDidChange');
-
- // keep track of the indicies each item was found at so we can map
- // it back when the obj changes.
- guid = guidFor(item);
- if (!objects[guid]) objects[guid] = [];
- objects[guid].push(loc);
- }
- }
-}
-
-/** @private */
-function removeObserverForContentKey(content, keyName, proxy, idx, loc) {
- var objects = proxy._objects;
- if (!objects) objects = proxy._objects = {};
- var indicies, guid;
-
- while(--loc>=idx) {
- var item = content.objectAt(loc);
- if (item) {
- Ember.removeBeforeObserver(item, keyName, proxy, 'contentKeyWillChange');
- Ember.removeObserver(item, keyName, proxy, 'contentKeyDidChange');
-
- guid = guidFor(item);
- indicies = objects[guid];
- indicies[indicies.indexOf(loc)] = null;
- }
- }
-}
-
-/**
- @private
- @class
-
- This is the object instance returned when you get the @each property on an
- array. It uses the unknownProperty handler to automatically create
- EachArray instances for property names.
-
- @extends Ember.Object
-*/
-Ember.EachProxy = Ember.Object.extend({
-
- init: function(content) {
- this._super();
- this._content = content;
- content.addArrayObserver(this);
-
- // in case someone is already observing some keys make sure they are
- // added
- forEach(Ember.watchedEvents(this), function(eventName) {
- this.didAddListener(eventName);
- }, this);
- },
-
- /**
- You can directly access mapped properties by simply requesting them.
- The unknownProperty handler will generate an EachArray of each item.
- */
- unknownProperty: function(keyName, value) {
- var ret;
- ret = new EachArray(this._content, keyName, this);
- Ember.defineProperty(this, keyName, null, ret);
- this.beginObservingContentKey(keyName);
- return ret;
- },
-
- // ..........................................................
- // ARRAY CHANGES
- // Invokes whenever the content array itself changes.
-
- arrayWillChange: function(content, idx, removedCnt, addedCnt) {
- var keys = this._keys, key, array, lim;
-
- lim = removedCnt>0 ? idx+removedCnt : -1;
- Ember.beginPropertyChanges(this);
-
- for(key in keys) {
- if (!keys.hasOwnProperty(key)) { continue; }
-
- if (lim>0) removeObserverForContentKey(content, key, this, idx, lim);
-
- Ember.propertyWillChange(this, key);
- }
-
- Ember.propertyWillChange(this._content, '@each');
- Ember.endPropertyChanges(this);
- },
-
- arrayDidChange: function(content, idx, removedCnt, addedCnt) {
- var keys = this._keys, key, array, lim;
-
- lim = addedCnt>0 ? idx+addedCnt : -1;
- Ember.beginPropertyChanges(this);
-
- for(key in keys) {
- if (!keys.hasOwnProperty(key)) { continue; }
-
- if (lim>0) addObserverForContentKey(content, key, this, idx, lim);
-
- Ember.propertyDidChange(this, key);
- }
-
- Ember.propertyDidChange(this._content, '@each');
- Ember.endPropertyChanges(this);
- },
-
- // ..........................................................
- // LISTEN FOR NEW OBSERVERS AND OTHER EVENT LISTENERS
- // Start monitoring keys based on who is listening...
-
- didAddListener: function(eventName) {
- if (IS_OBSERVER.test(eventName)) {
- this.beginObservingContentKey(eventName.slice(0, -7));
- }
- },
-
- didRemoveListener: function(eventName) {
- if (IS_OBSERVER.test(eventName)) {
- this.stopObservingContentKey(eventName.slice(0, -7));
- }
- },
-
- // ..........................................................
- // CONTENT KEY OBSERVING
- // Actual watch keys on the source content.
-
- beginObservingContentKey: function(keyName) {
- var keys = this._keys;
- if (!keys) keys = this._keys = {};
- if (!keys[keyName]) {
- keys[keyName] = 1;
- var content = this._content,
- len = get(content, 'length');
- addObserverForContentKey(content, keyName, this, 0, len);
- } else {
- keys[keyName]++;
- }
- },
-
- stopObservingContentKey: function(keyName) {
- var keys = this._keys;
- if (keys && (keys[keyName]>0) && (--keys[keyName]<=0)) {
- var content = this._content,
- len = get(content, 'length');
- removeObserverForContentKey(content, keyName, this, 0, len);
- }
- },
-
- contentKeyWillChange: function(obj, keyName) {
- Ember.propertyWillChange(this, keyName);
- },
-
- contentKeyDidChange: function(obj, keyName) {
- Ember.propertyDidChange(this, keyName);
- }
-
-});
-
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set;
-
-// Add Ember.Array to Array.prototype. Remove methods with native
-// implementations and supply some more optimized versions of generic methods
-// because they are so common.
-var NativeArray = Ember.Mixin.create(Ember.MutableArray, Ember.Observable, Ember.Copyable, {
-
- // because length is a built-in property we need to know to just get the
- // original property.
- get: function(key) {
- if (key==='length') return this.length;
- else if ('number' === typeof key) return this[key];
- else return this._super(key);
- },
-
- objectAt: function(idx) {
- return this[idx];
- },
-
- // primitive for array support.
- replace: function(idx, amt, objects) {
-
- if (this.isFrozen) throw Ember.FROZEN_ERROR ;
-
- // if we replaced exactly the same number of items, then pass only the
- // replaced range. Otherwise, pass the full remaining array length
- // since everything has shifted
- var len = objects ? get(objects, 'length') : 0;
- this.arrayContentWillChange(idx, amt, len);
-
- if (!objects || objects.length === 0) {
- this.splice(idx, amt) ;
- } else {
- var args = [idx, amt].concat(objects) ;
- this.splice.apply(this,args) ;
- }
-
- this.arrayContentDidChange(idx, amt, len);
- return this ;
- },
-
- // If you ask for an unknown property, then try to collect the value
- // from member items.
- unknownProperty: function(key, value) {
- var ret;// = this.reducedProperty(key, value) ;
- if ((value !== undefined) && ret === undefined) {
- ret = this[key] = value;
- }
- return ret ;
- },
-
- // If browser did not implement indexOf natively, then override with
- // specialized version
- indexOf: function(object, startAt) {
- var idx, len = this.length;
-
- if (startAt === undefined) startAt = 0;
- else startAt = (startAt < 0) ? Math.ceil(startAt) : Math.floor(startAt);
- if (startAt < 0) startAt += len;
-
- for(idx=startAt;idx<len;idx++) {
- if (this[idx] === object) return idx ;
- }
- return -1;
- },
-
- lastIndexOf: function(object, startAt) {
- var idx, len = this.length;
-
- if (startAt === undefined) startAt = len-1;
- else startAt = (startAt < 0) ? Math.ceil(startAt) : Math.floor(startAt);
- if (startAt < 0) startAt += len;
-
- for(idx=startAt;idx>=0;idx--) {
- if (this[idx] === object) return idx ;
- }
- return -1;
- },
-
- copy: function() {
- return this.slice();
- }
-});
-
-// Remove any methods implemented natively so we don't override them
-var ignore = ['length'];
-Ember.EnumerableUtils.forEach(NativeArray.keys(), function(methodName) {
- if (Array.prototype[methodName]) ignore.push(methodName);
-});
-
-if (ignore.length>0) {
- NativeArray = NativeArray.without.apply(NativeArray, ignore);
-}
-
-/**
- The NativeArray mixin contains the properties needed to to make the native
- Array support Ember.MutableArray and all of its dependent APIs. Unless you
- have Ember.EXTEND_PROTOTYPES set to false, this will be applied automatically.
- Otherwise you can apply the mixin at anytime by calling
- `Ember.NativeArray.activate`.
-
- @namespace
- @extends Ember.MutableArray
- @extends Ember.Array
- @extends Ember.Enumerable
- @extends Ember.MutableEnumerable
- @extends Ember.Copyable
- @extends Ember.Freezable
-*/
-Ember.NativeArray = NativeArray;
-
-/**
- Creates an Ember.NativeArray from an Array like object.
- Does not modify the original object.
-
- @returns {Ember.NativeArray}
-*/
-Ember.A = function(arr){
- if (arr === undefined) { arr = []; }
- return Ember.NativeArray.apply(arr);
-};
-
-/**
- Activates the mixin on the Array.prototype if not already applied. Calling
- this method more than once is safe.
-
- @returns {void}
-*/
-Ember.NativeArray.activate = function() {
- NativeArray.apply(Array.prototype);
-
- Ember.A = function(arr) { return arr || []; };
-};
-
-if (Ember.EXTEND_PROTOTYPES) Ember.NativeArray.activate();
-
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set;
-
-Ember._PromiseChain = Ember.Object.extend({
- promises: null,
- failureCallback: Ember.K,
- successCallback: Ember.K,
- abortCallback: Ember.K,
- promiseSuccessCallback: Ember.K,
-
- /**
- @private
- */
- runNextPromise: function() {
- if (get(this, 'isDestroyed')) { return; }
-
- var item = get(this, 'promises').shiftObject();
- if (item) {
- var promise = get(item, 'promise') || item;
- Ember.assert("Cannot find promise to invoke", Ember.canInvoke(promise, 'then'));
-
- var self = this;
-
- var successCallback = function() {
- self.promiseSuccessCallback.call(this, item, arguments);
- self.runNextPromise();
- };
-
- var failureCallback = get(self, 'failureCallback');
-
- promise.then(successCallback, failureCallback);
- } else {
- this.successCallback();
- }
- },
-
- start: function() {
- this.runNextPromise();
- return this;
- },
-
- abort: function() {
- this.abortCallback();
- this.destroy();
- },
-
- init: function() {
- set(this, 'promises', Ember.A(get(this, 'promises')));
- this._super();
- }
-});
-
-
-})();
-
-
-
-(function() {
-var loadHooks = {};
-var loaded = {};
-
-Ember.onLoad = function(name, callback) {
- var object;
-
- loadHooks[name] = loadHooks[name] || Ember.A();
- loadHooks[name].pushObject(callback);
-
- if (object = loaded[name]) {
- callback(object);
- }
-};
-
-Ember.runLoadHooks = function(name, object) {
- var hooks;
-
- loaded[name] = object;
-
- if (hooks = loadHooks[name]) {
- loadHooks[name].forEach(function(callback) {
- callback(object);
- });
- }
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-
-
-(function() {
-Ember.ControllerMixin = Ember.Mixin.create({
- /**
- The object to which events from the view should be sent.
-
- For example, when a Handlebars template uses the `{{action}}` helper,
- it will attempt to send the event to the view's controller's `target`.
-
- By default, a controller's `target` is set to the router after it is
- instantiated by `Ember.Application#initialize`.
- */
- target: null,
- store: null
-});
-
-Ember.Controller = Ember.Object.extend(Ember.ControllerMixin);
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set, forEach = Ember.EnumerableUtils.forEach;
-
-/**
- @class
-
- @extends Ember.Mixin
- @extends Ember.MutableEnumerable
-*/
-Ember.SortableMixin = Ember.Mixin.create(Ember.MutableEnumerable,
- /** @scope Ember.Observable.prototype */ {
- sortProperties: null,
- sortAscending: true,
-
- addObject: function(obj) {
- var content = get(this, 'content');
- content.pushObject(obj);
- },
-
- removeObject: function(obj) {
- var content = get(this, 'content');
- content.removeObject(obj);
- },
-
- orderBy: function(item1, item2) {
- var result = 0,
- sortProperties = get(this, 'sortProperties'),
- sortAscending = get(this, 'sortAscending');
-
- Ember.assert("you need to define `sortProperties`", !!sortProperties);
-
- forEach(sortProperties, function(propertyName) {
- if (result === 0) {
- result = Ember.compare(get(item1, propertyName), get(item2, propertyName));
- if ((result !== 0) && !sortAscending) {
- result = (-1) * result;
- }
- }
- });
-
- return result;
- },
-
- destroy: function() {
- var content = get(this, 'content'),
- sortProperties = get(this, 'sortProperties');
-
- if (content && sortProperties) {
- forEach(content, function(item) {
- forEach(sortProperties, function(sortProperty) {
- Ember.removeObserver(item, sortProperty, this, 'contentItemSortPropertyDidChange');
- }, this);
- }, this);
- }
-
- return this._super();
- },
-
- isSorted: Ember.computed('sortProperties', function() {
- return !!get(this, 'sortProperties');
- }),
-
- arrangedContent: Ember.computed('content', 'sortProperties.@each', function(key, value) {
- var content = get(this, 'content'),
- isSorted = get(this, 'isSorted'),
- sortProperties = get(this, 'sortProperties'),
- self = this;
-
- if (content && isSorted) {
- content = content.slice();
- content.sort(function(item1, item2) {
- return self.orderBy(item1, item2);
- });
- forEach(content, function(item) {
- forEach(sortProperties, function(sortProperty) {
- Ember.addObserver(item, sortProperty, this, 'contentItemSortPropertyDidChange');
- }, this);
- }, this);
- return Ember.A(content);
- }
-
- return content;
- }).cacheable(),
-
- _contentWillChange: Ember.beforeObserver(function() {
- var content = get(this, 'content'),
- sortProperties = get(this, 'sortProperties');
-
- if (content && sortProperties) {
- forEach(content, function(item) {
- forEach(sortProperties, function(sortProperty) {
- Ember.removeObserver(item, sortProperty, this, 'contentItemSortPropertyDidChange');
- }, this);
- }, this);
- }
-
- this._super();
- }, 'content'),
-
- sortAscendingWillChange: Ember.beforeObserver(function() {
- this._lastSortAscending = get(this, 'sortAscending');
- }, 'sortAscending'),
-
- sortAscendingDidChange: Ember.observer(function() {
- if (get(this, 'sortAscending') !== this._lastSortAscending) {
- var arrangedContent = get(this, 'arrangedContent');
- arrangedContent.reverseObjects();
- }
- }, 'sortAscending'),
-
- contentArrayWillChange: function(array, idx, removedCount, addedCount) {
- var isSorted = get(this, 'isSorted');
-
- if (isSorted) {
- var arrangedContent = get(this, 'arrangedContent');
- var removedObjects = array.slice(idx, idx+removedCount);
- var sortProperties = get(this, 'sortProperties');
-
- forEach(removedObjects, function(item) {
- arrangedContent.removeObject(item);
-
- forEach(sortProperties, function(sortProperty) {
- Ember.removeObserver(item, sortProperty, this, 'contentItemSortPropertyDidChange');
- }, this);
- });
- }
-
- return this._super(array, idx, removedCount, addedCount);
- },
-
- contentArrayDidChange: function(array, idx, removedCount, addedCount) {
- var isSorted = get(this, 'isSorted'),
- sortProperties = get(this, 'sortProperties');
-
- if (isSorted) {
- var addedObjects = array.slice(idx, idx+addedCount);
- var arrangedContent = get(this, 'arrangedContent');
-
- forEach(addedObjects, function(item) {
- this.insertItemSorted(item);
-
- forEach(sortProperties, function(sortProperty) {
- Ember.addObserver(item, sortProperty, this, 'contentItemSortPropertyDidChange');
- }, this);
- }, this);
- }
-
- return this._super(array, idx, removedCount, addedCount);
- },
-
- insertItemSorted: function(item) {
- var arrangedContent = get(this, 'arrangedContent');
- var length = get(arrangedContent, 'length');
-
- var idx = this._binarySearch(item, 0, length);
- arrangedContent.insertAt(idx, item);
- },
-
- contentItemSortPropertyDidChange: function(item) {
- var arrangedContent = get(this, 'arrangedContent'),
- index = arrangedContent.indexOf(item);
-
- arrangedContent.removeObject(item);
- this.insertItemSorted(item);
- },
-
- _binarySearch: function(item, low, high) {
- var mid, midItem, res, arrangedContent;
-
- if (low === high) {
- return low;
- }
-
- arrangedContent = get(this, 'arrangedContent');
-
- mid = low + Math.floor((high - low) / 2);
- midItem = arrangedContent.objectAt(mid);
-
- res = this.orderBy(midItem, item);
-
- if (res < 0) {
- return this._binarySearch(item, mid+1, high);
- } else if (res > 0) {
- return this._binarySearch(item, low, mid);
- }
-
- return mid;
- }
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set;
-
-/**
- @class
-
- Ember.ArrayController provides a way for you to publish a collection of objects
- so that you can easily bind to the collection from a Handlebars #each helper,
- an Ember.CollectionView, or other controllers.
-
- The advantage of using an ArrayController is that you only have to set up
- your view bindings once; to change what's displayed, simply swap out the
- `content` property on the controller.
-
- For example, imagine you wanted to display a list of items fetched via an XHR
- request. Create an Ember.ArrayController and set its `content` property:
-
- MyApp.listController = Ember.ArrayController.create();
-
- $.get('people.json', function(data) {
- MyApp.listController.set('content', data);
- });
-
- Then, create a view that binds to your new controller:
-
- {{#each MyApp.listController}}
- {{firstName}} {{lastName}}
- {{/each}}
-
- Although you are binding to the controller, the behavior of this controller
- is to pass through any methods or properties to the underlying array. This
- capability comes from `Ember.ArrayProxy`, which this class inherits from.
-
- Note: As of this writing, `ArrayController` does not add any functionality
- to its superclass, `ArrayProxy`. The Ember team plans to add additional
- controller-specific functionality in the future, e.g. single or multiple
- selection support. If you are creating something that is conceptually a
- controller, use this class.
-
- @extends Ember.ArrayProxy
-*/
-
-Ember.ArrayController = Ember.ArrayProxy.extend(Ember.ControllerMixin,
- Ember.SortableMixin);
-
-})();
-
-
-
-(function() {
-Ember.ObjectController = Ember.ObjectProxy.extend(Ember.ControllerMixin);
-
-})();
-
-
-
-(function() {
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Runtime
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-var get = Ember.get, set = Ember.set;
-
-/**
- @class
-
- An Ember.Application instance serves as the namespace in which you define your
- application's classes. You can also override the configuration of your
- application.
-
- By default, Ember.Application will begin listening for events on the document.
- If your application is embedded inside a page, instead of controlling the
- entire document, you can specify which DOM element to attach to by setting
- the `rootElement` property:
-
- MyApp = Ember.Application.create({
- rootElement: $('#my-app')
- });
-
- The root of an Ember.Application must not be removed during the course of the
- page's lifetime. If you have only a single conceptual application for the
- entire page, and are not embedding any third-party Ember applications
- in your page, use the default document root for your application.
-
- You only need to specify the root if your page contains multiple instances
- of Ember.Application.
-
- @extends Ember.Object
-*/
-Ember.Application = Ember.Namespace.extend(
-/** @scope Ember.Application.prototype */{
-
- /**
- The root DOM element of the Application.
-
- Can be specified as DOMElement or a selector string.
-
- @type DOMElement
- @default 'body'
- */
- rootElement: 'body',
-
- /**
- @type Ember.EventDispatcher
- @default null
- */
- eventDispatcher: null,
-
- /**
- @type Object
- @default null
- */
- customEvents: null,
-
- /** @private */
- init: function() {
- var eventDispatcher,
- rootElement = get(this, 'rootElement');
- this._super();
-
- eventDispatcher = Ember.EventDispatcher.create({
- rootElement: rootElement
- });
-
- set(this, 'eventDispatcher', eventDispatcher);
-
- // jQuery 1.7 doesn't call the ready callback if already ready
- if (Ember.$.isReady) {
- Ember.run.once(this, this.didBecomeReady);
- } else {
- var self = this;
- Ember.$(document).ready(function() {
- Ember.run.once(self, self.didBecomeReady);
- });
- }
- },
-
- /**
- Instantiate all controllers currently available on the namespace
- and inject them onto a router.
-
- Example:
-
- App.PostsController = Ember.ArrayController.extend();
- App.CommentsController = Ember.ArrayController.extend();
-
- var router = Ember.Router.create({
- ...
- });
-
- App.initialize(router);
-
- router.get('postsController') // <App.PostsController:ember1234>
- router.get('commentsController') // <App.CommentsController:ember1235>
-
- router.get('postsController.router') // router
- */
- initialize: function(router) {
- var properties = Ember.A(Ember.keys(this)),
- injections = get(this.constructor, 'injections'),
- namespace = this, controller, name;
-
- if (!router && Ember.Router.detect(namespace['Router'])) {
- router = namespace['Router'].create();
- this._createdRouter = router;
- }
-
- if (router) {
- set(this, 'router', router);
-
- // By default, the router's namespace is the current application.
- //
- // This allows it to find model classes when a state has a
- // route like `/posts/:post_id`. In that case, it would first
- // convert `post_id` into `Post`, and then look it up on its
- // namespace.
- set(router, 'namespace', this);
- }
-
- Ember.runLoadHooks('application', this);
-
- injections.forEach(function(injection) {
- properties.forEach(function(property) {
- injection[1](namespace, router, property);
- });
- });
-
- if (router && router instanceof Ember.Router) {
- this.startRouting(router);
- }
- },
-
- /** @private */
- didBecomeReady: function() {
- var eventDispatcher = get(this, 'eventDispatcher'),
- customEvents = get(this, 'customEvents');
-
- eventDispatcher.setup(customEvents);
-
- this.ready();
- },
-
- /**
- @private
-
- If the application has a router, use it to route to the current URL, and
- trigger a new call to `route` whenever the URL changes.
- */
- startRouting: function(router) {
- var location = get(router, 'location'),
- rootElement = get(this, 'rootElement'),
- applicationController = get(router, 'applicationController');
-
- Ember.assert("ApplicationView and ApplicationController must be defined on your application", (this.ApplicationView && applicationController) );
-
- var applicationView = this.ApplicationView.create({
- controller: applicationController
- });
- this._createdApplicationView = applicationView;
-
- applicationView.appendTo(rootElement);
-
- router.route(location.getURL());
- location.onUpdateURL(function(url) {
- router.route(url);
- });
- },
-
- /**
- Called when the Application has become ready.
- The call will be delayed until the DOM has become ready.
- */
- ready: Ember.K,
-
- /** @private */
- willDestroy: function() {
- get(this, 'eventDispatcher').destroy();
- if (this._createdRouter) { this._createdRouter.destroy(); }
- if (this._createdApplicationView) { this._createdApplicationView.destroy(); }
- },
-
- registerInjection: function(options) {
- this.constructor.registerInjection(options);
- }
-});
-
-Ember.Application.reopenClass({
- concatenatedProperties: ['injections'],
- injections: Ember.A(),
- registerInjection: function(options) {
- var injections = get(this, 'injections'),
- before = options.before,
- name = options.name,
- injection = options.injection,
- location;
-
- if (before) {
- location = injections.find(function(item) {
- if (item[0] === before) { return true; }
- });
- location = injections.indexOf(location);
- } else {
- location = get(injections, 'length');
- }
-
- injections.splice(location, 0, [name, injection]);
- }
-});
-
-Ember.Application.registerInjection({
- name: 'controllers',
- injection: function(app, router, property) {
- if (!/^[A-Z].*Controller$/.test(property)) { return; }
-
- var name = property.charAt(0).toLowerCase() + property.substr(1),
- controller = app[property].create();
-
- router.set(name, controller);
-
- controller.setProperties({
- target: router,
- controllers: router,
- namespace: app
- });
- }
-});
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set;
-
-/**
- This file implements the `location` API used by Ember's router.
-
- That API is:
-
- getURL: returns the current URL
- setURL(path): sets the current URL
- onUpdateURL(callback): triggers the callback when the URL changes
- formatURL(url): formats `url` to be placed into `href` attribute
-
- Calling setURL will not trigger onUpdateURL callbacks.
-
- TODO: This, as well as the Ember.Location documentation below, should
- perhaps be moved so that it's visible in the JsDoc output.
-*/
-/**
- @class
-
- Ember.Location returns an instance of the correct implementation of
- the `location` API.
-
- You can pass it a `implementation` ('hash', 'history', 'none') to force a
- particular implementation.
-*/
-Ember.Location = {
- create: function(options) {
- var implementation = options && options.implementation;
- Ember.assert("Ember.Location.create: you must specify a 'implementation' option", !!implementation);
-
- var implementationClass = this.implementations[implementation];
- Ember.assert("Ember.Location.create: " + implementation + " is not a valid implementation", !!implementationClass);
-
- return implementationClass.create.apply(implementationClass, arguments);
- },
-
- registerImplementation: function(name, implementation) {
- this.implementations[name] = implementation;
- },
-
- implementations: {}
-};
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set;
-
-/**
- @class
-
- Ember.HashLocation implements the location API using the browser's
- hash. At present, it relies on a hashchange event existing in the
- browser.
-
- @extends Ember.Object
-*/
-Ember.HashLocation = Ember.Object.extend(
-/** @scope Ember.HashLocation.prototype */ {
-
- /** @private */
- init: function() {
- set(this, 'location', get(this, 'location') || window.location);
- },
-
- /**
- @private
-
- Returns the current `location.hash`, minus the '#' at the front.
- */
- getURL: function() {
- return get(this, 'location').hash.substr(1);
- },
-
- /**
- @private
-
- Set the `location.hash` and remembers what was set. This prevents
- `onUpdateURL` callbacks from triggering when the hash was set by
- `HashLocation`.
- */
- setURL: function(path) {
- get(this, 'location').hash = path;
- set(this, 'lastSetURL', path);
- },
-
- /**
- @private
-
- Register a callback to be invoked when the hash changes. These
- callbacks will execute when the user presses the back or forward
- button, but not after `setURL` is invoked.
- */
- onUpdateURL: function(callback) {
- var self = this;
- var guid = Ember.guidFor(this);
-
- Ember.$(window).bind('hashchange.ember-location-'+guid, function() {
- var path = location.hash.substr(1);
- if (get(self, 'lastSetURL') === path) { return; }
-
- set(self, 'lastSetURL', null);
-
- callback(location.hash.substr(1));
- });
- },
-
- /**
- @private
-
- Given a URL, formats it to be placed into the page as part
- of an element's `href` attribute.
-
- This is used, for example, when using the {{action}} helper
- to generate a URL based on an event.
- */
- formatURL: function(url) {
- return '#'+url;
- },
-
- /** @private */
- willDestroy: function() {
- var guid = Ember.guidFor(this);
-
- Ember.$(window).unbind('hashchange.ember-location-'+guid);
- }
-});
-
-Ember.Location.registerImplementation('hash', Ember.HashLocation);
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set;
-
-/**
- @class
-
- Ember.HistoryLocation implements the location API using the browser's
- history.pushState API.
-
- @extends Ember.Object
-*/
-Ember.HistoryLocation = Ember.Object.extend(
-/** @scope Ember.HistoryLocation.prototype */ {
-
- /** @private */
- init: function() {
- set(this, 'location', get(this, 'location') || window.location);
- set(this, '_initialURL', get(this, 'location').pathname);
- },
-
- /**
- Will be pre-pended to path upon state change
- */
- rootURL: '/',
-
- /**
- @private
-
- Used to give history a starting reference
- */
- _initialURL: null,
-
- /**
- @private
-
- Returns the current `location.pathname`.
- */
- getURL: function() {
- return get(this, 'location').pathname;
- },
-
- /**
- @private
-
- Uses `history.pushState` to update the url without a page reload.
- */
- setURL: function(path) {
- var state = window.history.state,
- initialURL = get(this, '_initialURL');
-
- path = this.formatPath(path);
-
- if ((initialURL !== path && !state) || (state && state.path !== path)) {
- window.history.pushState({ path: path }, null, path);
- }
- },
-
- /**
- @private
-
- Register a callback to be invoked whenever the browser
- history changes, including using forward and back buttons.
- */
- onUpdateURL: function(callback) {
- var guid = Ember.guidFor(this);
-
- Ember.$(window).bind('popstate.ember-location-'+guid, function(e) {
- callback(location.pathname);
- });
- },
-
- /**
- @private
-
- returns the given path appended to rootURL
- */
- formatPath: function(path) {
- var rootURL = get(this, 'rootURL');
-
- if (path !== '') {
- rootURL = rootURL.replace(/\/$/, '');
- }
-
- return rootURL + path;
- },
-
- /**
- @private
-
- Used when using {{action}} helper. Since no formatting
- is required we just return the url given.
- */
- formatURL: function(url) {
- return url;
- },
-
- /** @private */
- willDestroy: function() {
- var guid = Ember.guidFor(this);
-
- Ember.$(window).unbind('popstate.ember-location-'+guid);
- }
-});
-
-Ember.Location.registerImplementation('history', Ember.HistoryLocation);
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set;
-
-/**
- @class
-
- Ember.NoneLocation does not interact with the browser. It is useful for
- testing, or when you need to manage state with your Router, but temporarily
- don't want it to muck with the URL (for example when you embed your
- application in a larger page).
-
- @extends Ember.Object
-*/
-Ember.NoneLocation = Ember.Object.extend(
-/** @scope Ember.NoneLocation.prototype */ {
- path: '',
-
- getURL: function() {
- return get(this, 'path');
- },
-
- setURL: function(path) {
- set(this, 'path', path);
- },
-
- onUpdateURL: function(callback) {
- // We are not wired up to the browser, so we'll never trigger the callback.
- },
-
- formatURL: function(url) {
- // The return value is not overly meaningful, but we do not want to throw
- // errors when test code renders templates containing {{action href=true}}
- // helpers.
- return url;
- }
-});
-
-Ember.Location.registerImplementation('none', Ember.NoneLocation);
-
-})();
-
-
-
-(function() {
-
-})();
-
-
-
-(function() {
-
-})();
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-Ember.assert("Ember Views require jQuery 1.7", window.jQuery && (window.jQuery().jquery.match(/^1\.7(\.\d+)?(pre|rc\d?)?/) || Ember.ENV.FORCE_JQUERY));
-Ember.$ = window.jQuery;
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dndevents
-var dragEvents = Ember.String.w('dragstart drag dragenter dragleave dragover drop dragend');
-
-// Copies the `dataTransfer` property from a browser event object onto the
-// jQuery event object for the specified events
-Ember.EnumerableUtils.forEach(dragEvents, function(eventName) {
- Ember.$.event.fixHooks[eventName] = { props: ['dataTransfer'] };
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-var get = Ember.get, set = Ember.set;
-var indexOf = Ember.ArrayPolyfills.indexOf;
-
-/** @private */
-var ClassSet = function() {
- this.seen = {};
- this.list = [];
-};
-
-ClassSet.prototype = {
- add: function(string) {
- if (string in this.seen) { return; }
- this.seen[string] = true;
-
- this.list.push(string);
- },
-
- toDOM: function() {
- return this.list.join(" ");
- }
-};
-
-/**
- @class
-
- Ember.RenderBuffer gathers information regarding the a view and generates the
- final representation. Ember.RenderBuffer will generate HTML which can be pushed
- to the DOM.
-
- @extends Ember.Object
-*/
-Ember.RenderBuffer = function(tagName) {
- return new Ember._RenderBuffer(tagName);
-};
-
-Ember._RenderBuffer = function(tagName) {
- this.elementTag = tagName;
- this.childBuffers = [];
-};
-
-Ember._RenderBuffer.prototype =
-/** @scope Ember.RenderBuffer.prototype */ {
-
- /**
- Array of class-names which will be applied in the class="" attribute
-
- You should not maintain this array yourself, rather, you should use
- the addClass() method of Ember.RenderBuffer.
-
- @type Array
- @default []
- */
- elementClasses: null,
-
- /**
- The id in of the element, to be applied in the id="" attribute
-
- You should not set this property yourself, rather, you should use
- the id() method of Ember.RenderBuffer.
-
- @type String
- @default null
- */
- elementId: null,
-
- /**
- A hash keyed on the name of the attribute and whose value will be
- applied to that attribute. For example, if you wanted to apply a
- data-view="Foo.bar" property to an element, you would set the
- elementAttributes hash to {'data-view':'Foo.bar'}
-
- You should not maintain this hash yourself, rather, you should use
- the attr() method of Ember.RenderBuffer.
-
- @type Hash
- @default {}
- */
- elementAttributes: null,
-
- /**
- The tagname of the element an instance of Ember.RenderBuffer represents.
-
- Usually, this gets set as the first parameter to Ember.RenderBuffer. For
- example, if you wanted to create a `p` tag, then you would call
-
- Ember.RenderBuffer('p')
-
- @type String
- @default null
- */
- elementTag: null,
-
- /**
- A hash keyed on the name of the style attribute and whose value will
- be applied to that attribute. For example, if you wanted to apply a
- background-color:black;" style to an element, you would set the
- elementStyle hash to {'background-color':'black'}
-
- You should not maintain this hash yourself, rather, you should use
- the style() method of Ember.RenderBuffer.
-
- @type Hash
- @default {}
- */
- elementStyle: null,
-
- /**
- Nested RenderBuffers will set this to their parent RenderBuffer
- instance.
-
- @type Ember._RenderBuffer
- */
- parentBuffer: null,
-
- /**
- Adds a string of HTML to the RenderBuffer.
-
- @param {String} string HTML to push into the buffer
- @returns {Ember.RenderBuffer} this
- */
- push: function(string) {
- this.childBuffers.push(String(string));
- return this;
- },
-
- /**
- Adds a class to the buffer, which will be rendered to the class attribute.
-
- @param {String} className Class name to add to the buffer
- @returns {Ember.RenderBuffer} this
- */
- addClass: function(className) {
- // lazily create elementClasses
- var elementClasses = this.elementClasses = (this.elementClasses || new ClassSet());
- this.elementClasses.add(className);
-
- return this;
- },
-
- /**
- Sets the elementID to be used for the element.
-
- @param {String} id
- @returns {Ember.RenderBuffer} this
- */
- id: function(id) {
- this.elementId = id;
- return this;
- },
-
- // duck type attribute functionality like jQuery so a render buffer
- // can be used like a jQuery object in attribute binding scenarios.
-
- /**
- Adds an attribute which will be rendered to the element.
-
- @param {String} name The name of the attribute
- @param {String} value The value to add to the attribute
- @returns {Ember.RenderBuffer|String} this or the current attribute value
- */
- attr: function(name, value) {
- var attributes = this.elementAttributes = (this.elementAttributes || {});
-
- if (arguments.length === 1) {
- return attributes[name];
- } else {
- attributes[name] = value;
- }
-
- return this;
- },
-
- /**
- Remove an attribute from the list of attributes to render.
-
- @param {String} name The name of the attribute
- @returns {Ember.RenderBuffer} this
- */
- removeAttr: function(name) {
- var attributes = this.elementAttributes;
- if (attributes) { delete attributes[name]; }
-
- return this;
- },
-
- /**
- Adds a style to the style attribute which will be rendered to the element.
-
- @param {String} name Name of the style
- @param {String} value
- @returns {Ember.RenderBuffer} this
- */
- style: function(name, value) {
- var style = this.elementStyle = (this.elementStyle || {});
-
- this.elementStyle[name] = value;
- return this;
- },
-
- /**
- Create a new child render buffer from a parent buffer. Optionally set
- additional properties on the buffer. Optionally invoke a callback
- with the newly created buffer.
-
- This is a primitive method used by other public methods: `begin`,
- `prepend`, `replaceWith`, `insertAfter`.
-
- @private
- @param {String} tagName Tag name to use for the child buffer's element
- @param {Ember._RenderBuffer} parent The parent render buffer that this
- buffer should be appended to.
- @param {Function} fn A callback to invoke with the newly created buffer.
- @param {Object} other Additional properties to add to the newly created
- buffer.
- */
- newBuffer: function(tagName, parent, fn, other) {
- var buffer = new Ember._RenderBuffer(tagName);
- buffer.parentBuffer = parent;
-
- if (other) { Ember.$.extend(buffer, other); }
- if (fn) { fn.call(this, buffer); }
-
- return buffer;
- },
-
- /**
- Replace the current buffer with a new buffer. This is a primitive
- used by `remove`, which passes `null` for `newBuffer`, and `replaceWith`,
- which passes the new buffer it created.
-
- @private
- @param {Ember._RenderBuffer} buffer The buffer to insert in place of
- the existing buffer.
- */
- replaceWithBuffer: function(newBuffer) {
- var parent = this.parentBuffer;
- if (!parent) { return; }
-
- var childBuffers = parent.childBuffers;
-
- var index = indexOf.call(childBuffers, this);
-
- if (newBuffer) {
- childBuffers.splice(index, 1, newBuffer);
- } else {
- childBuffers.splice(index, 1);
- }
- },
-
- /**
- Creates a new Ember.RenderBuffer object with the provided tagName as
- the element tag and with its parentBuffer property set to the current
- Ember.RenderBuffer.
-
- @param {String} tagName Tag name to use for the child buffer's element
- @returns {Ember.RenderBuffer} A new RenderBuffer object
- */
- begin: function(tagName) {
- return this.newBuffer(tagName, this, function(buffer) {
- this.childBuffers.push(buffer);
- });
- },
-
- /**
- Prepend a new child buffer to the current render buffer.
-
- @param {String} tagName Tag name to use for the child buffer's element
- */
- prepend: function(tagName) {
- return this.newBuffer(tagName, this, function(buffer) {
- this.childBuffers.splice(0, 0, buffer);
- });
- },
-
- /**
- Replace the current buffer with a new render buffer.
-
- @param {String} tagName Tag name to use for the new buffer's element
- */
- replaceWith: function(tagName) {
- var parentBuffer = this.parentBuffer;
-
- return this.newBuffer(tagName, parentBuffer, function(buffer) {
- this.replaceWithBuffer(buffer);
- });
- },
-
- /**
- Insert a new render buffer after the current render buffer.
-
- @param {String} tagName Tag name to use for the new buffer's element
- */
- insertAfter: function(tagName) {
- var parentBuffer = get(this, 'parentBuffer');
-
- return this.newBuffer(tagName, parentBuffer, function(buffer) {
- var siblings = parentBuffer.childBuffers;
- var index = indexOf.call(siblings, this);
- siblings.splice(index + 1, 0, buffer);
- });
- },
-
- /**
- Closes the current buffer and adds its content to the parentBuffer.
-
- @returns {Ember.RenderBuffer} The parentBuffer, if one exists. Otherwise, this
- */
- end: function() {
- var parent = this.parentBuffer;
- return parent || this;
- },
-
- remove: function() {
- this.replaceWithBuffer(null);
- },
-
- /**
- @returns {DOMElement} The element corresponding to the generated HTML
- of this buffer
- */
- element: function() {
- return Ember.$(this.string())[0];
- },
-
- /**
- Generates the HTML content for this buffer.
-
- @returns {String} The generated HTMl
- */
- string: function() {
- var content = '', tag = this.elementTag, openTag;
-
- if (tag) {
- var id = this.elementId,
- classes = this.elementClasses,
- attrs = this.elementAttributes,
- style = this.elementStyle,
- styleBuffer = '', prop;
-
- openTag = ["<" + tag];
-
- if (id) { openTag.push('id="' + this._escapeAttribute(id) + '"'); }
- if (classes) { openTag.push('class="' + this._escapeAttribute(classes.toDOM()) + '"'); }
-
- if (style) {
- for (prop in style) {
- if (style.hasOwnProperty(prop)) {
- styleBuffer += (prop + ':' + this._escapeAttribute(style[prop]) + ';');
- }
- }
-
- openTag.push('style="' + styleBuffer + '"');
- }
-
- if (attrs) {
- for (prop in attrs) {
- if (attrs.hasOwnProperty(prop)) {
- openTag.push(prop + '="' + this._escapeAttribute(attrs[prop]) + '"');
- }
- }
- }
-
- openTag = openTag.join(" ") + '>';
- }
-
- var childBuffers = this.childBuffers;
-
- Ember.ArrayPolyfills.forEach.call(childBuffers, function(buffer) {
- var stringy = typeof buffer === 'string';
- content += (stringy ? buffer : buffer.string());
- });
-
- if (tag) {
- return openTag + content + "</" + tag + ">";
- } else {
- return content;
- }
- },
-
- _escapeAttribute: function(value) {
- // Stolen shamelessly from Handlebars
-
- var escape = {
- "<": "&lt;",
- ">": "&gt;",
- '"': "&quot;",
- "'": "&#x27;",
- "`": "&#x60;"
- };
-
- var badChars = /&(?!\w+;)|[<>"'`]/g;
- var possible = /[&<>"'`]/;
-
- var escapeChar = function(chr) {
- return escape[chr] || "&amp;";
- };
-
- var string = value.toString();
-
- if(!possible.test(string)) { return string; }
- return string.replace(badChars, escapeChar);
- }
-
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-var get = Ember.get, set = Ember.set, fmt = Ember.String.fmt;
-
-/**
- @ignore
-
- Ember.EventDispatcher handles delegating browser events to their corresponding
- Ember.Views. For example, when you click on a view, Ember.EventDispatcher ensures
- that that view's `mouseDown` method gets called.
-*/
-Ember.EventDispatcher = Ember.Object.extend(
-/** @scope Ember.EventDispatcher.prototype */{
-
- /**
- @private
-
- The root DOM element to which event listeners should be attached. Event
- listeners will be attached to the document unless this is overridden.
-
- Can be specified as a DOMElement or a selector string.
-
- The default body is a string since this may be evaluated before document.body
- exists in the DOM.
-
- @type DOMElement
- @default 'body'
- */
- rootElement: 'body',
-
- /**
- @private
-
- Sets up event listeners for standard browser events.
-
- This will be called after the browser sends a DOMContentReady event. By
- default, it will set up all of the listeners on the document body. If you
- would like to register the listeners on a different element, set the event
- dispatcher's `root` property.
- */
- setup: function(addedEvents) {
- var event, events = {
- touchstart : 'touchStart',
- touchmove : 'touchMove',
- touchend : 'touchEnd',
- touchcancel : 'touchCancel',
- keydown : 'keyDown',
- keyup : 'keyUp',
- keypress : 'keyPress',
- mousedown : 'mouseDown',
- mouseup : 'mouseUp',
- contextmenu : 'contextMenu',
- click : 'click',
- dblclick : 'doubleClick',
- mousemove : 'mouseMove',
- focusin : 'focusIn',
- focusout : 'focusOut',
- mouseenter : 'mouseEnter',
- mouseleave : 'mouseLeave',
- submit : 'submit',
- input : 'input',
- change : 'change',
- dragstart : 'dragStart',
- drag : 'drag',
- dragenter : 'dragEnter',
- dragleave : 'dragLeave',
- dragover : 'dragOver',
- drop : 'drop',
- dragend : 'dragEnd'
- };
-
- Ember.$.extend(events, addedEvents || {});
-
- var rootElement = Ember.$(get(this, 'rootElement'));
-
- Ember.assert(fmt('You cannot use the same root element (%@) multiple times in an Ember.Application', [rootElement.selector || rootElement[0].tagName]), !rootElement.is('.ember-application'));
- Ember.assert('You cannot make a new Ember.Application using a root element that is a descendent of an existing Ember.Application', !rootElement.closest('.ember-application').length);
- Ember.assert('You cannot make a new Ember.Application using a root element that is an ancestor of an existing Ember.Application', !rootElement.find('.ember-application').length);
-
- rootElement.addClass('ember-application');
-
- Ember.assert('Unable to add "ember-application" class to rootElement. Make sure you set rootElement to the body or an element in the body.', rootElement.is('.ember-application'));
-
- for (event in events) {
- if (events.hasOwnProperty(event)) {
- this.setupHandler(rootElement, event, events[event]);
- }
- }
- },
-
- /**
- @private
-
- Registers an event listener on the document. If the given event is
- triggered, the provided event handler will be triggered on the target
- view.
-
- If the target view does not implement the event handler, or if the handler
- returns false, the parent view will be called. The event will continue to
- bubble to each successive parent view until it reaches the top.
-
- For example, to have the `mouseDown` method called on the target view when
- a `mousedown` event is received from the browser, do the following:
-
- setupHandler('mousedown', 'mouseDown');
-
- @param {String} event the browser-originated event to listen to
- @param {String} eventName the name of the method to call on the view
- */
- setupHandler: function(rootElement, event, eventName) {
- var self = this;
-
- rootElement.delegate('.ember-view', event + '.ember', function(evt, triggeringManager) {
-
- var view = Ember.View.views[this.id],
- result = true, manager = null;
-
- manager = self._findNearestEventManager(view,eventName);
-
- if (manager && manager !== triggeringManager) {
- result = self._dispatchEvent(manager, evt, eventName, view);
- } else if (view) {
- result = self._bubbleEvent(view,evt,eventName);
- } else {
- evt.stopPropagation();
- }
-
- return result;
- });
-
- rootElement.delegate('[data-ember-action]', event + '.ember', function(evt) {
- var actionId = Ember.$(evt.currentTarget).attr('data-ember-action'),
- action = Ember.Handlebars.ActionHelper.registeredActions[actionId],
- handler = action.handler;
-
- if (action.eventName === eventName) {
- return handler(evt);
- }
- });
- },
-
- /** @private */
- _findNearestEventManager: function(view, eventName) {
- var manager = null;
-
- while (view) {
- manager = get(view, 'eventManager');
- if (manager && manager[eventName]) { break; }
-
- view = get(view, 'parentView');
- }
-
- return manager;
- },
-
- /** @private */
- _dispatchEvent: function(object, evt, eventName, view) {
- var result = true;
-
- var handler = object[eventName];
- if (Ember.typeOf(handler) === 'function') {
- result = handler.call(object, evt, view);
- // Do not preventDefault in eventManagers.
- evt.stopPropagation();
- }
- else {
- result = this._bubbleEvent(view, evt, eventName);
- }
-
- return result;
- },
-
- /** @private */
- _bubbleEvent: function(view, evt, eventName) {
- return Ember.run(function() {
- return view.handleEvent(eventName, evt);
- });
- },
-
- /** @private */
- destroy: function() {
- var rootElement = get(this, 'rootElement');
- Ember.$(rootElement).undelegate('.ember').removeClass('ember-application');
- return this._super();
- }
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-// Add a new named queue for rendering views that happens
-// after bindings have synced.
-var queues = Ember.run.queues;
-queues.splice(Ember.$.inArray('actions', queues)+1, 0, 'render');
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set;
-
-Ember.ControllerMixin.reopen({
-
- target: null,
- controllers: null,
- namespace: null,
- view: null,
-
- /**
- `connectOutlet` creates a new instance of a provided view
- class, wires it up to its associated controller, and
- assigns the new view to a property on the current controller.
-
- The purpose of this method is to enable views that use
- outlets to quickly assign new views for a given outlet.
-
- For example, an application view's template may look like
- this:
-
- <h1>My Blog</h1>
- {{outlet}}
-
- The view for this outlet is specified by assigning a
- `view` property to the application's controller. The
- following code will assign a new `App.PostsView` to
- that outlet:
-
- applicationController.connectOutlet('posts');
-
- In general, you will also want to assign a controller
- to the newly created view. By convention, a controller
- named `postsController` will be assigned as the view's
- controller.
-
- In an application initialized using `app.initialize(router)`,
- `connectOutlet` will look for `postsController` on the
- router. The initialization process will automatically
- create an instance of `App.PostsController` called
- `postsController`, so you don't need to do anything
- beyond `connectOutlet` to assign your view and wire it
- up to its associated controller.
-
- You can supply a `content` for the controller by supplying
- a final argument after the view class:
-
- applicationController.connectOutlet('posts', App.Post.find());
-
- You can specify a particular outlet to use. For example, if your main
- template looks like:
-
- <h1>My Blog</h1>
- {{outlet master}}
- {{outlet detail}}
-
- You can assign an `App.PostsView` to the master outlet:
-
- applicationController.connectOutlet({
- name: 'posts',
- outletName: 'master',
- context: App.Post.find()
- });
-
- You can write this as:
-
- applicationController.connectOutlet('master', 'posts', App.Post.find());
-
- @param {String} outletName a name for the outlet to set
- @param {String} name a view/controller pair name
- @param {Object} context a context object to assign to the
- controller's `content` property, if a controller can be
- found (optional)
- */
- connectOutlet: function(name, context) {
- // Normalize arguments. Supported arguments:
- //
- // name
- // name, context
- // outletName, name
- // outletName, name, context
- // options
- //
- // The options hash has the following keys:
- //
- // name: the name of the controller and view
- // to use. If this is passed, the name
- // determines the view and controller.
- // outletName: the name of the outlet to
- // fill in. default: 'view'
- // viewClass: the class of the view to instantiate
- // controller: the controller instance to pass
- // to the view
- // context: an object that should become the
- // controller's `content` and thus the
- // template's context.
-
- var outletName, viewClass, view, controller, options;
-
- if (Ember.typeOf(context) === 'string') {
- outletName = name;
- name = context;
- context = arguments[2];
- }
-
- if (arguments.length === 1) {
- if (Ember.typeOf(name) === 'object') {
- options = name;
- outletName = options.outletName;
- name = options.name;
- viewClass = options.viewClass;
- controller = options.controller;
- context = options.context;
- }
- } else {
- options = {};
- }
-
- outletName = outletName || 'view';
-
- Ember.assert("You must supply a name or a view class to connectOutlets, but not both", (!!name && !viewClass && !controller) || (!name && !!viewClass));
-
- if (name) {
- var namespace = get(this, 'namespace'),
- controllers = get(this, 'controllers');
-
- var viewClassName = name.charAt(0).toUpperCase() + name.substr(1) + "View";
- viewClass = get(namespace, viewClassName);
- controller = get(controllers, name + 'Controller');
-
- Ember.assert("The name you supplied " + name + " did not resolve to a view " + viewClassName, !!viewClass);
- Ember.assert("The name you supplied " + name + " did not resolve to a controller " + name + 'Controller', (!!controller && !!context) || !context);
- }
-
- if (controller && context) { controller.set('content', context); }
- view = viewClass.create();
- if (controller) { set(view, 'controller', controller); }
- set(this, outletName, view);
-
- return view;
- },
-
- /**
- Convenience method to connect controllers. This method makes other controllers
- available on the controller the method was invoked on.
-
- For example, to make the `personController` and the `postController` available
- on the `overviewController`, you would call:
-
- overviewController.connectControllers('person', 'post');
-
- @param {String...} controllerNames the controllers to make available
- */
- connectControllers: function() {
- var controllers = get(this, 'controllers'),
- controllerNames = Array.prototype.slice.apply(arguments),
- controllerName;
-
- for (var i=0, l=controllerNames.length; i<l; i++) {
- controllerName = controllerNames[i] + 'Controller';
- set(this, controllerName, get(controllers, controllerName));
- }
- }
-});
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set, addObserver = Ember.addObserver;
-var meta = Ember.meta, fmt = Ember.String.fmt;
-var a_slice = [].slice;
-var a_forEach = Ember.EnumerableUtils.forEach;
-
-var childViewsProperty = Ember.computed(function() {
- var childViews = this._childViews;
-
- var ret = Ember.A();
-
- a_forEach(childViews, function(view) {
- if (view.isVirtual) {
- ret.pushObjects(get(view, 'childViews'));
- } else {
- ret.push(view);
- }
- });
-
- return ret;
-}).property().cacheable();
-
-var VIEW_PRESERVES_CONTEXT = Ember.VIEW_PRESERVES_CONTEXT;
-Ember.warn("The way that the {{view}} helper affects templates is about to change. Previously, templates inside child views would use the new view as the context. Soon, views will preserve their parent context when rendering their template. You can opt-in early to the new behavior by setting `ENV.VIEW_PRESERVES_CONTEXT = true`. For more information, see https://gist.github.com/2494968. You should update your templates as soon as possible; this default will change soon, and the option will be eliminated entirely before the 1.0 release.", VIEW_PRESERVES_CONTEXT);
-
-/**
- @static
-
- Global hash of shared templates. This will automatically be populated
- by the build tools so that you can store your Handlebars templates in
- separate files that get loaded into JavaScript at buildtime.
-
- @type Hash
-*/
-Ember.TEMPLATES = {};
-
-var invokeForState = {
- preRender: {},
- inBuffer: {},
- hasElement: {},
- inDOM: {},
- destroyed: {}
-};
-
-/**
- @class
-
- `Ember.View` is the class in Ember responsible for encapsulating templates of HTML
- content, combining templates with data to render as sections of a page's DOM, and
- registering and responding to user-initiated events.
-
- ## HTML Tag
- The default HTML tag name used for a view's DOM representation is `div`. This can be
- customized by setting the `tagName` property. The following view class:
-
- ParagraphView = Ember.View.extend({
- tagName: 'em'
- })
-
- Would result in instances with the following HTML:
-
- <em id="ember1" class="ember-view"></em>
-
- ## HTML `class` Attribute
- The HTML `class` attribute of a view's tag can be set by providing a `classNames` property
- that is set to an array of strings:
-
- MyView = Ember.View.extend({
- classNames: ['my-class', 'my-other-class']
- })
-
- Will result in view instances with an HTML representation of:
-
- <div id="ember1" class="ember-view my-class my-other-class"></div>
-
- `class` attribute values can also be set by providing a `classNameBindings` property
- set to an array of properties names for the view. The return value of these properties
- will be added as part of the value for the view's `class` attribute. These properties
- can be computed properties:
-
- MyView = Ember.View.extend({
- classNameBindings: ['propertyA', 'propertyB'],
- propertyA: 'from-a',
- propertyB: function(){
- if(someLogic){ return 'from-b'; }
- }.property()
- })
-
- Will result in view instances with an HTML representation of:
-
- <div id="ember1" class="ember-view from-a from-b"></div>
-
- If the value of a class name binding returns a boolean the property name itself
- will be used as the class name if the property is true. The class name will
- not be added if the value is `false` or `undefined`.
-
- MyView = Ember.View.extend({
- classNameBindings: ['hovered'],
- hovered: true
- })
-
- Will result in view instances with an HTML representation of:
-
- <div id="ember1" class="ember-view hovered"></div>
-
- When using boolean class name bindings you can supply a string value other than the
- property name for use as the `class` HTML attribute by appending the preferred value after
- a ":" character when defining the binding:
-
- MyView = Ember.View.extend({
- classNameBindings: ['awesome:so-very-cool'],
- awesome: true
- })
-
- Will result in view instances with an HTML representation of:
-
- <div id="ember1" class="ember-view so-very-cool"></div>
-
-
- Boolean value class name bindings whose property names are in a camelCase-style
- format will be converted to a dasherized format:
-
- MyView = Ember.View.extend({
- classNameBindings: ['isUrgent'],
- isUrgent: true
- })
-
- Will result in view instances with an HTML representation of:
-
- <div id="ember1" class="ember-view is-urgent"></div>
-
-
- Class name bindings can also refer to object values that are found by
- traversing a path relative to the view itself:
-
- MyView = Ember.View.extend({
- classNameBindings: ['messages.empty']
- messages: Ember.Object.create({
- empty: true
- })
- })
-
- Will result in view instances with an HTML representation of:
-
- <div id="ember1" class="ember-view empty"></div>
-
-
- If you want to add a class name for a property which evaluates to true and
- and a different class name if it evaluates to false, you can pass a binding
- like this:
-
- // Applies 'enabled' class when isEnabled is true and 'disabled' when isEnabled is false
- Ember.View.create({
- classNameBindings: ['isEnabled:enabled:disabled']
- isEnabled: true
- });
-
- Will result in view instances with an HTML representation of:
-
- <div id="ember1" class="ember-view enabled"></div>
-
- When isEnabled is `false`, the resulting HTML reprensentation looks like this:
-
- <div id="ember1" class="ember-view disabled"></div>
-
- This syntax offers the convenience to add a class if a property is `false`:
-
- // Applies no class when isEnabled is true and class 'disabled' when isEnabled is false
- Ember.View.create({
- classNameBindings: ['isEnabled::disabled']
- isEnabled: true
- });
-
- Will result in view instances with an HTML representation of:
-
- <div id="ember1" class="ember-view"></div>
-
- When the `isEnabled` property on the view is set to `false`, it will result
- in view instances with an HTML representation of:
-
- <div id="ember1" class="ember-view disabled"></div>
-
-
- Updates to the the value of a class name binding will result in automatic update
- of the HTML `class` attribute in the view's rendered HTML representation.
- If the value becomes `false` or `undefined` the class name will be removed.
-
- Both `classNames` and `classNameBindings` are concatenated properties.
- See `Ember.Object` documentation for more information about concatenated properties.
-
- ## HTML Attributes
- The HTML attribute section of a view's tag can be set by providing an `attributeBindings`
- property set to an array of property names on the view. The return value of these properties
- will be used as the value of the view's HTML associated attribute:
-
- AnchorView = Ember.View.extend({
- tagName: 'a',
- attributeBindings: ['href'],
- href: 'http://google.com'
- })
-
- Will result in view instances with an HTML representation of:
-
- <a id="ember1" class="ember-view" href="http://google.com"></a>
-
- If the return value of an `attributeBindings` monitored property is a boolean
- the property will follow HTML's pattern of repeating the attribute's name as
- its value:
-
- MyTextInput = Ember.View.extend({
- tagName: 'input',
- attributeBindings: ['disabled'],
- disabled: true
- })
-
- Will result in view instances with an HTML representation of:
-
- <input id="ember1" class="ember-view" disabled="disabled" />
-
- `attributeBindings` can refer to computed properties:
-
- MyTextInput = Ember.View.extend({
- tagName: 'input',
- attributeBindings: ['disabled'],
- disabled: function(){
- if (someLogic) {
- return true;
- } else {
- return false;
- }
- }.property()
- })
-
- Updates to the the property of an attribute binding will result in automatic update
- of the HTML attribute in the view's rendered HTML representation.
-
- `attributeBindings` is a concatenated property. See `Ember.Object` documentation
- for more information about concatenated properties.
-
- ## Templates
- The HTML contents of a view's rendered representation are determined by its template.
- Templates can be any function that accepts an optional context parameter and returns
- a string of HTML that will be inserted within the view's tag. Most
- typically in Ember this function will be a compiled Ember.Handlebars template.
-
- AView = Ember.View.extend({
- template: Ember.Handlebars.compile('I am the template')
- })
-
- Will result in view instances with an HTML representation of:
-
- <div id="ember1" class="ember-view">I am the template</div>
-
- The default context of the compiled template will be the view instance itself:
-
- AView = Ember.View.extend({
- template: Ember.Handlebars.compile('Hello {{excitedGreeting}}')
- })
-
- aView = AView.create({
- content: Ember.Object.create({
- firstName: 'Barry'
- })
- excitedGreeting: function(){
- return this.get("content.firstName") + "!!!"
- }
- })
-
- Will result in an HTML representation of:
-
- <div id="ember1" class="ember-view">Hello Barry!!!</div>
-
- Within an Ember application is more common to define a Handlebars templates as
- part of a page:
-
- <script type='text/x-handlebars' data-template-name='some-template'>
- Hello
- </script>
-
- And associate it by name using a view's `templateName` property:
-
- AView = Ember.View.extend({
- templateName: 'some-template'
- })
-
- Using a value for `templateName` that does not have a Handlebars template with a
- matching `data-template-name` attribute will throw an error.
-
- Assigning a value to both `template` and `templateName` properties will throw an error.
-
- For views classes that may have a template later defined (e.g. as the block portion of a `{{view}}`
- Handlebars helper call in another template or in a subclass), you can provide a `defaultTemplate`
- property set to compiled template function. If a template is not later provided for the view
- instance the `defaultTemplate` value will be used:
-
- AView = Ember.View.extend({
- defaultTemplate: Ember.Handlebars.compile('I was the default'),
- template: null,
- templateName: null
- })
-
- Will result in instances with an HTML representation of:
-
- <div id="ember1" class="ember-view">I was the default</div>
-
- If a `template` or `templateName` is provided it will take precedence over `defaultTemplate`:
-
- AView = Ember.View.extend({
- defaultTemplate: Ember.Handlebars.compile('I was the default')
- })
-
- aView = AView.create({
- template: Ember.Handlebars.compile('I was the template, not default')
- })
-
- Will result in the following HTML representation when rendered:
-
- <div id="ember1" class="ember-view">I was the template, not default</div>
-
- ## Layouts
- Views can have a secondary template that wraps their main template. Like
- primary templates, layouts can be any function that accepts an optional context
- parameter and returns a string of HTML that will be inserted inside view's tag. Views whose HTML
- element is self closing (e.g. `<input />`) cannot have a layout and this property will be ignored.
-
- Most typically in Ember a layout will be a compiled Ember.Handlebars template.
-
- A view's layout can be set directly with the `layout` property or reference an
- existing Handlebars template by name with the `layoutName` property.
-
- A template used as a layout must contain a single use of the Handlebars `{{yield}}`
- helper. The HTML contents of a view's rendered `template` will be inserted at this location:
-
- AViewWithLayout = Ember.View.extend({
- layout: Ember.Handlebars.compile("<div class='my-decorative-class'>{{yield}}</div>")
- template: Ember.Handlebars.compile("I got wrapped"),
- })
-
- Will result in view instances with an HTML representation of:
-
- <div id="ember1" class="ember-view">
- <div class="my-decorative-class">
- I got wrapped
- </div>
- </div>
-
- See `Handlebars.helpers.yield` for more information.
-
- ## Responding to Browser Events
- Views can respond to user-initiated events in one of three ways: method implementation,
- through an event manager, and through `{{action}}` helper use in their template or layout.
-
- ### Method Implementation
- Views can respond to user-initiated events by implementing a method that matches the
- event name. A `jQuery.Event` object will be passed as the argument to this method.
-
- AView = Ember.View.extend({
- click: function(event){
- // will be called when when an instance's
- // rendered element is clicked
- }
- })
-
- ### Event Managers
- Views can define an object as their `eventManager` property. This object can then
- implement methods that match the desired event names. Matching events that occur
- on the view's rendered HTML or the rendered HTML of any of its DOM descendants
- will trigger this method. A `jQuery.Event` object will be passed as the first
- argument to the method and an `Ember.View` object as the second. The `Ember.View`
- will be the view whose rendered HTML was interacted with. This may be the view with
- the `eventManager` property or one of its descendent views.
-
- AView = Ember.View.extend({
- eventManager: Ember.Object.create({
- doubleClick: function(event, view){
- // will be called when when an instance's
- // rendered element or any rendering
- // of this views's descendent
- // elements is clicked
- }
- })
- })
-
-
- An event defined for an event manager takes precedence over events of the same
- name handled through methods on the view.
-
-
- AView = Ember.View.extend({
- mouseEnter: function(event){
- // will never trigger.
- },
- eventManager: Ember.Object.create({
- mouseEnter: function(event, view){
- // takes presedence over AView#mouseEnter
- }
- })
- })
-
- Similarly a view's event manager will take precedence for events of any views
- rendered as a descendent. A method name that matches an event name will not be called
- if the view instance was rendered inside the HTML representation of a view that has
- an `eventManager` property defined that handles events of the name. Events not handled
- by the event manager will still trigger method calls on the descendent.
-
- OuterView = Ember.View.extend({
- template: Ember.Handlebars.compile("outer {{#view InnerView}}inner{{/view}} outer"),
- eventManager: Ember.Object.create({
- mouseEnter: function(event, view){
- // view might be instance of either
- // OutsideView or InnerView depending on
- // where on the page the user interaction occured
- }
- })
- })
-
- InnerView = Ember.View.extend({
- click: function(event){
- // will be called if rendered inside
- // an OuterView because OuterView's
- // eventManager doesn't handle click events
- },
- mouseEnter: function(event){
- // will never be called if rendered inside
- // an OuterView.
- }
- })
-
- ### Handlebars `{{action}}` Helper
- See `Handlebars.helpers.action`.
-
- ### Event Names
- Possible events names for any of the responding approaches described above are:
-
- Touch events: 'touchStart', 'touchMove', 'touchEnd', 'touchCancel'
-
- Keyboard events: 'keyDown', 'keyUp', 'keyPress'
-
- Mouse events: 'mouseDown', 'mouseUp', 'contextMenu', 'click', 'doubleClick', 'mouseMove',
- 'focusIn', 'focusOut', 'mouseEnter', 'mouseLeave'
-
- Form events: 'submit', 'change', 'focusIn', 'focusOut', 'input'
-
- HTML5 drag and drop events: 'dragStart', 'drag', 'dragEnter', 'dragLeave', 'drop', 'dragEnd'
-
- ## Handlebars `{{view}}` Helper
- Other `Ember.View` instances can be included as part of a view's template by using the `{{view}}`
- Handlebars helper. See `Handlebars.helpers.view` for additional information.
-
- @extends Ember.Object
- @extends Ember.Evented
-*/
-Ember.View = Ember.Object.extend(Ember.Evented,
-/** @scope Ember.View.prototype */ {
-
- /** @private */
- concatenatedProperties: ['classNames', 'classNameBindings', 'attributeBindings'],
-
- /**
- @type Boolean
- @default true
- @constant
- */
- isView: true,
-
- // ..........................................................
- // TEMPLATE SUPPORT
- //
-
- /**
- The name of the template to lookup if no template is provided.
-
- Ember.View will look for a template with this name in this view's
- `templates` object. By default, this will be a global object
- shared in `Ember.TEMPLATES`.
-
- @type String
- @default null
- */
- templateName: null,
-
- /**
- The name of the layout to lookup if no layout is provided.
-
- Ember.View will look for a template with this name in this view's
- `templates` object. By default, this will be a global object
- shared in `Ember.TEMPLATES`.
-
- @type String
- @default null
- */
- layoutName: null,
-
- /**
- The hash in which to look for `templateName`.
-
- @type Ember.Object
- @default Ember.TEMPLATES
- */
- templates: Ember.TEMPLATES,
-
- /**
- The template used to render the view. This should be a function that
- accepts an optional context parameter and returns a string of HTML that
- will be inserted into the DOM relative to its parent view.
-
- In general, you should set the `templateName` property instead of setting
- the template yourself.
-
- @field
- @type Function
- */
- template: Ember.computed(function(key, value) {
- if (value !== undefined) { return value; }
-
- var templateName = get(this, 'templateName'),
- template = this.templateForName(templateName, 'template');
-
- return template || get(this, 'defaultTemplate');
- }).property('templateName').cacheable(),
-
- /**
- The controller managing this view. If this property is set, it will be
- made available for use by the template.
-
- @type Object
- */
- controller: Ember.computed(function(key, value) {
- var parentView;
-
- if (arguments.length === 2) {
- return value;
- } else {
- parentView = get(this, 'parentView');
- return parentView ? get(parentView, 'controller') : null;
- }
- }).property().cacheable(),
-
- /**
- A view may contain a layout. A layout is a regular template but
- supersedes the `template` property during rendering. It is the
- responsibility of the layout template to retrieve the `template`
- property from the view (or alternatively, call `Handlebars.helpers.yield`,
- `{{yield}}`) to render it in the correct location.
-
- This is useful for a view that has a shared wrapper, but which delegates
- the rendering of the contents of the wrapper to the `template` property
- on a subclass.
-
- @field
- @type Function
- */
- layout: Ember.computed(function(key, value) {
- if (arguments.length === 2) { return value; }
-
- var layoutName = get(this, 'layoutName'),
- layout = this.templateForName(layoutName, 'layout');
-
- return layout || get(this, 'defaultLayout');
- }).property('layoutName').cacheable(),
-
- templateForName: function(name, type) {
- if (!name) { return; }
-
- var templates = get(this, 'templates'),
- template = get(templates, name);
-
- if (!template) {
- throw new Ember.Error(fmt('%@ - Unable to find %@ "%@".', [this, type, name]));
- }
-
- return template;
- },
-
- /**
- The object from which templates should access properties.
-
- This object will be passed to the template function each time the render
- method is called, but it is up to the individual function to decide what
- to do with it.
-
- By default, this will be the view itself.
-
- @type Object
- */
- context: Ember.computed(function(key, value) {
- if (arguments.length === 2) {
- set(this, '_context', value);
- return value;
- } else {
- return get(this, '_context');
- }
- }).cacheable(),
-
- /**
- @private
-
- Private copy of the view's template context. This can be set directly
- by Handlebars without triggering the observer that causes the view
- to be re-rendered.
-
- The context of a view is looked up as follows:
-
- 1. Specified controller
- 2. Supplied context (usually by Handlebars)
- 3. `parentView`'s context (for a child of a ContainerView)
-
- The code in Handlebars that overrides the `_context` property first
- checks to see whether the view has a specified controller. This is
- something of a hack and should be revisited.
- */
- _context: Ember.computed(function(key, value) {
- var parentView, controller, context;
-
- if (arguments.length === 2) {
- return value;
- }
-
- if (VIEW_PRESERVES_CONTEXT) {
- if (controller = get(this, 'controller')) {
- return controller;
- }
-
- parentView = get(this, '_parentView');
- if (parentView) {
- return get(parentView, '_context');
- }
- }
-
- return this;
- }).cacheable(),
-
- /**
- If a value that affects template rendering changes, the view should be
- re-rendered to reflect the new value.
-
- @private
- */
- _displayPropertyDidChange: Ember.observer(function() {
- this.rerender();
- }, 'context', 'controller'),
-
- /**
- If the view is currently inserted into the DOM of a parent view, this
- property will point to the parent of the view.
-
- @type Ember.View
- @default null
- */
- parentView: Ember.computed(function() {
- var parent = get(this, '_parentView');
-
- if (parent && parent.isVirtual) {
- return get(parent, 'parentView');
- } else {
- return parent;
- }
- }).property('_parentView').volatile(),
-
- _parentView: null,
-
- // return the current view, not including virtual views
- concreteView: Ember.computed(function() {
- if (!this.isVirtual) { return this; }
- else { return get(this, 'parentView'); }
- }).property('_parentView').volatile(),
-
- /**
- If false, the view will appear hidden in DOM.
-
- @type Boolean
- @default null
- */
- isVisible: true,
-
- /**
- Array of child views. You should never edit this array directly.
- Instead, use appendChild and removeFromParent.
-
- @private
- @type Array
- @default []
- */
- childViews: childViewsProperty,
-
- _childViews: [],
-
- /**
- When it's a virtual view, we need to notify the parent that their
- childViews will change.
- */
- _childViewsWillChange: Ember.beforeObserver(function() {
- if (this.isVirtual) {
- var parentView = get(this, 'parentView');
- if (parentView) { Ember.propertyWillChange(parentView, 'childViews'); }
- }
- }, 'childViews'),
-
- /**
- When it's a virtual view, we need to notify the parent that their
- childViews did change.
- */
- _childViewsDidChange: Ember.observer(function() {
- if (this.isVirtual) {
- var parentView = get(this, 'parentView');
- if (parentView) { Ember.propertyDidChange(parentView, 'childViews'); }
- }
- }, 'childViews'),
-
- /**
- Return the nearest ancestor that is an instance of the provided
- class.
-
- @param {Class} klass Subclass of Ember.View (or Ember.View itself)
- @returns Ember.View
- */
- nearestInstanceOf: function(klass) {
- var view = get(this, 'parentView');
-
- while (view) {
- if(view instanceof klass) { return view; }
- view = get(view, 'parentView');
- }
- },
-
- /**
- Return the nearest ancestor that has a given property.
-
- @param {String} property A property name
- @returns Ember.View
- */
- nearestWithProperty: function(property) {
- var view = get(this, 'parentView');
-
- while (view) {
- if (property in view) { return view; }
- view = get(view, 'parentView');
- }
- },
-
- /**
- Return the nearest ancestor whose parent is an instance of
- `klass`.
-
- @param {Class} klass Subclass of Ember.View (or Ember.View itself)
- @returns Ember.View
- */
- nearestChildOf: function(klass) {
- var view = get(this, 'parentView');
-
- while (view) {
- if(get(view, 'parentView') instanceof klass) { return view; }
- view = get(view, 'parentView');
- }
- },
-
- /**
- Return the nearest ancestor that is an Ember.CollectionView
-
- @returns Ember.CollectionView
- */
- collectionView: Ember.computed(function() {
- return this.nearestInstanceOf(Ember.CollectionView);
- }).cacheable(),
-
- /**
- Return the nearest ancestor that is a direct child of
- an Ember.CollectionView
-
- @returns Ember.View
- */
- itemView: Ember.computed(function() {
- return this.nearestChildOf(Ember.CollectionView);
- }).cacheable(),
-
- /**
- Return the nearest ancestor that has the property
- `content`.
-
- @returns Ember.View
- */
- contentView: Ember.computed(function() {
- return this.nearestWithProperty('content');
- }).cacheable(),
-
- /**
- @private
-
- When the parent view changes, recursively invalidate
- collectionView, itemView, and contentView
- */
- _parentViewDidChange: Ember.observer(function() {
- if (this.isDestroying) { return; }
-
- this.invokeRecursively(function(view) {
- view.propertyDidChange('collectionView');
- view.propertyDidChange('itemView');
- view.propertyDidChange('contentView');
- });
-
- if (get(this, 'parentView.controller') && !get(this, 'controller')) {
- this.notifyPropertyChange('controller');
- }
- }, '_parentView'),
-
- _controllerDidChange: Ember.observer(function() {
- if (this.isDestroying) { return; }
-
- this.forEachChildView(function(view) {
- view.propertyDidChange('controller');
- });
- }, 'controller'),
-
- cloneKeywords: function() {
- var templateData = get(this, 'templateData');
-
- var keywords = templateData ? Ember.copy(templateData.keywords) : {};
- set(keywords, 'view', get(this, 'concreteView'));
- set(keywords, 'controller', get(this, 'controller'));
-
- return keywords;
- },
-
- /**
- Called on your view when it should push strings of HTML into a
- Ember.RenderBuffer. Most users will want to override the `template`
- or `templateName` properties instead of this method.
-
- By default, Ember.View will look for a function in the `template`
- property and invoke it with the value of `context`. The value of
- `context` will be the view's controller unless you override it.
-
- @param {Ember.RenderBuffer} buffer The render buffer
- */
- render: function(buffer) {
- // If this view has a layout, it is the responsibility of the
- // the layout to render the view's template. Otherwise, render the template
- // directly.
- var template = get(this, 'layout') || get(this, 'template');
-
- if (template) {
- var context = get(this, '_context');
- var keywords = this.cloneKeywords();
-
- var data = {
- view: this,
- buffer: buffer,
- isRenderData: true,
- keywords: keywords
- };
-
- // Invoke the template with the provided template context, which
- // is the view by default. A hash of data is also passed that provides
- // the template with access to the view and render buffer.
-
- Ember.assert('template must be a function. Did you mean to call Ember.Handlebars.compile("...") or specify templateName instead?', typeof template === 'function');
- // The template should write directly to the render buffer instead
- // of returning a string.
- var output = template(context, { data: data });
-
- // If the template returned a string instead of writing to the buffer,
- // push the string onto the buffer.
- if (output !== undefined) { buffer.push(output); }
- }
- },
-
- invokeForState: function(name) {
- var stateName = this.state, args, fn;
-
- // try to find the function for the state in the cache
- if (fn = invokeForState[stateName][name]) {
- args = a_slice.call(arguments);
- args[0] = this;
-
- return fn.apply(this, args);
- }
-
- // otherwise, find and cache the function for this state
- var parent = this, states = parent.states, state;
-
- while (states) {
- state = states[stateName];
-
- while (state) {
- fn = state[name];
-
- if (fn) {
- invokeForState[stateName][name] = fn;
-
- args = a_slice.call(arguments, 1);
- args.unshift(this);
-
- return fn.apply(this, args);
- }
-
- state = state.parentState;
- }
-
- states = states.parent;
- }
- },
-
- /**
- Renders the view again. This will work regardless of whether the
- view is already in the DOM or not. If the view is in the DOM, the
- rendering process will be deferred to give bindings a chance
- to synchronize.
-
- If children were added during the rendering process using `appendChild`,
- `rerender` will remove them, because they will be added again
- if needed by the next `render`.
-
- In general, if the display of your view changes, you should modify
- the DOM element directly instead of manually calling `rerender`, which can
- be slow.
- */
- rerender: function() {
- return this.invokeForState('rerender');
- },
-
- clearRenderedChildren: function() {
- var lengthBefore = this.lengthBeforeRender,
- lengthAfter = this.lengthAfterRender;
-
- // If there were child views created during the last call to render(),
- // remove them under the assumption that they will be re-created when
- // we re-render.
-
- // VIEW-TODO: Unit test this path.
- var childViews = this._childViews;
- for (var i=lengthAfter-1; i>=lengthBefore; i--) {
- if (childViews[i]) { childViews[i].destroy(); }
- }
- },
-
- /**
- @private
-
- Iterates over the view's `classNameBindings` array, inserts the value
- of the specified property into the `classNames` array, then creates an
- observer to update the view's element if the bound property ever changes
- in the future.
- */
- _applyClassNameBindings: function() {
- var classBindings = get(this, 'classNameBindings'),
- classNames = get(this, 'classNames'),
- elem, newClass, dasherizedClass;
-
- if (!classBindings) { return; }
-
- // Loop through all of the configured bindings. These will be either
- // property names ('isUrgent') or property paths relative to the view
- // ('content.isUrgent')
- a_forEach(classBindings, function(binding) {
-
- // Variable in which the old class value is saved. The observer function
- // closes over this variable, so it knows which string to remove when
- // the property changes.
- var oldClass;
-
- // Set up an observer on the context. If the property changes, toggle the
- // class name.
- var observer = function() {
- // Get the current value of the property
- newClass = this._classStringForProperty(binding);
- elem = this.$();
-
- // If we had previously added a class to the element, remove it.
- if (oldClass) {
- elem.removeClass(oldClass);
- // Also remove from classNames so that if the view gets rerendered,
- // the class doesn't get added back to the DOM.
- classNames.removeObject(oldClass);
- }
-
- // If necessary, add a new class. Make sure we keep track of it so
- // it can be removed in the future.
- if (newClass) {
- elem.addClass(newClass);
- oldClass = newClass;
- } else {
- oldClass = null;
- }
- };
-
- // Get the class name for the property at its current value
- dasherizedClass = this._classStringForProperty(binding);
-
- if (dasherizedClass) {
- // Ensure that it gets into the classNames array
- // so it is displayed when we render.
- classNames.push(dasherizedClass);
-
- // Save a reference to the class name so we can remove it
- // if the observer fires. Remember that this variable has
- // been closed over by the observer.
- oldClass = dasherizedClass;
- }
-
- // Extract just the property name from bindings like 'foo:bar'
- var parsedPath = Ember.View._parsePropertyPath(binding);
- addObserver(this, parsedPath.path, observer);
- }, this);
- },
-
- /**
- Iterates through the view's attribute bindings, sets up observers for each,
- then applies the current value of the attributes to the passed render buffer.
-
- @param {Ember.RenderBuffer} buffer
- */
- _applyAttributeBindings: function(buffer) {
- var attributeBindings = get(this, 'attributeBindings'),
- attributeValue, elem, type;
-
- if (!attributeBindings) { return; }
-
- a_forEach(attributeBindings, function(binding) {
- var split = binding.split(':'),
- property = split[0],
- attributeName = split[1] || property;
-
- // Create an observer to add/remove/change the attribute if the
- // JavaScript property changes.
- var observer = function() {
- elem = this.$();
- if (!elem) { return; }
-
- attributeValue = get(this, property);
-
- Ember.View.applyAttributeBindings(elem, attributeName, attributeValue);
- };
-
- addObserver(this, property, observer);
-
- // Determine the current value and add it to the render buffer
- // if necessary.
- attributeValue = get(this, property);
- Ember.View.applyAttributeBindings(buffer, attributeName, attributeValue);
- }, this);
- },
-
- /**
- @private
-
- Given a property name, returns a dasherized version of that
- property name if the property evaluates to a non-falsy value.
-
- For example, if the view has property `isUrgent` that evaluates to true,
- passing `isUrgent` to this method will return `"is-urgent"`.
- */
- _classStringForProperty: function(property) {
- var parsedPath = Ember.View._parsePropertyPath(property);
- var path = parsedPath.path;
-
- var val = get(this, path);
- if (val === undefined && Ember.isGlobalPath(path)) {
- val = get(window, path);
- }
-
- return Ember.View._classStringForValue(path, val, parsedPath.className, parsedPath.falsyClassName);
- },
-
- // ..........................................................
- // ELEMENT SUPPORT
- //
-
- /**
- Returns the current DOM element for the view.
-
- @field
- @type DOMElement
- */
- element: Ember.computed(function(key, value) {
- if (value !== undefined) {
- return this.invokeForState('setElement', value);
- } else {
- return this.invokeForState('getElement');
- }
- }).property('_parentView').cacheable(),
-
- /**
- Returns a jQuery object for this view's element. If you pass in a selector
- string, this method will return a jQuery object, using the current element
- as its buffer.
-
- For example, calling `view.$('li')` will return a jQuery object containing
- all of the `li` elements inside the DOM element of this view.
-
- @param {String} [selector] a jQuery-compatible selector string
- @returns {Ember.CoreQuery} the CoreQuery object for the DOM node
- */
- $: function(sel) {
- return this.invokeForState('$', sel);
- },
-
- /** @private */
- mutateChildViews: function(callback) {
- var childViews = this._childViews,
- idx = childViews.length,
- view;
-
- while(--idx >= 0) {
- view = childViews[idx];
- callback.call(this, view, idx);
- }
-
- return this;
- },
-
- /** @private */
- forEachChildView: function(callback) {
- var childViews = this._childViews;
-
- if (!childViews) { return this; }
-
- var len = childViews.length,
- view, idx;
-
- for(idx = 0; idx < len; idx++) {
- view = childViews[idx];
- callback.call(this, view);
- }
-
- return this;
- },
-
- /**
- Appends the view's element to the specified parent element.
-
- If the view does not have an HTML representation yet, `createElement()`
- will be called automatically.
-
- Note that this method just schedules the view to be appended; the DOM
- element will not be appended to the given element until all bindings have
- finished synchronizing.
-
- This is not typically a function that you will need to call directly
- when building your application. You might consider using Ember.ContainerView
- instead. If you do need to use appendTo, be sure that the target element you
- are providing is associated with an Ember.Application and does not have an
- ancestor element that is associated with an Ember view.
-
- @param {String|DOMElement|jQuery} A selector, element, HTML string, or jQuery object
- @returns {Ember.View} receiver
- */
- appendTo: function(target) {
- // Schedule the DOM element to be created and appended to the given
- // element after bindings have synchronized.
- this._insertElementLater(function() {
- Ember.assert("You cannot append to an existing Ember.View. Consider using Ember.ContainerView instead.", !Ember.$(target).is('.ember-view') && !Ember.$(target).parents().is('.ember-view'));
- this.$().appendTo(target);
- });
-
- return this;
- },
-
- /**
- Replaces the content of the specified parent element with this view's element.
- If the view does not have an HTML representation yet, `createElement()`
- will be called automatically.
-
- Note that this method just schedules the view to be appended; the DOM
- element will not be appended to the given element until all bindings have
- finished synchronizing
-
- @param {String|DOMElement|jQuery} A selector, element, HTML string, or jQuery object
- @returns {Ember.View} received
- */
- replaceIn: function(target) {
- Ember.assert("You cannot replace an existing Ember.View. Consider using Ember.ContainerView instead.", !Ember.$(target).is('.ember-view') && !Ember.$(target).parents().is('.ember-view'));
-
- this._insertElementLater(function() {
- Ember.$(target).empty();
- this.$().appendTo(target);
- });
-
- return this;
- },
-
- /**
- @private
-
- Schedules a DOM operation to occur during the next render phase. This
- ensures that all bindings have finished synchronizing before the view is
- rendered.
-
- To use, pass a function that performs a DOM operation..
-
- Before your function is called, this view and all child views will receive
- the `willInsertElement` event. After your function is invoked, this view
- and all of its child views will receive the `didInsertElement` event.
-
- view._insertElementLater(function() {
- this.createElement();
- this.$().appendTo('body');
- });
-
- @param {Function} fn the function that inserts the element into the DOM
- */
- _insertElementLater: function(fn) {
- this._lastInsert = Ember.guidFor(fn);
- Ember.run.schedule('render', this, this.invokeForState, 'insertElement', fn);
- },
-
- /**
- Appends the view's element to the document body. If the view does
- not have an HTML representation yet, `createElement()` will be called
- automatically.
-
- Note that this method just schedules the view to be appended; the DOM
- element will not be appended to the document body until all bindings have
- finished synchronizing.
-
- @returns {Ember.View} receiver
- */
- append: function() {
- return this.appendTo(document.body);
- },
-
- /**
- Removes the view's element from the element to which it is attached.
-
- @returns {Ember.View} receiver
- */
- remove: function() {
- // What we should really do here is wait until the end of the run loop
- // to determine if the element has been re-appended to a different
- // element.
- // In the interim, we will just re-render if that happens. It is more
- // important than elements get garbage collected.
- this.destroyElement();
- this.invokeRecursively(function(view) {
- view.clearRenderedChildren();
- });
- },
-
- /**
- The ID to use when trying to locate the element in the DOM. If you do not
- set the elementId explicitly, then the view's GUID will be used instead.
- This ID must be set at the time the view is created.
-
- @type String
- @readOnly
- */
- elementId: Ember.computed(function(key, value) {
- return value !== undefined ? value : Ember.guidFor(this);
- }).cacheable(),
-
- /**
- @private
-
- TODO: Perhaps this should be removed from the production build somehow.
- */
- _elementIdDidChange: Ember.beforeObserver(function() {
- throw "Changing a view's elementId after creation is not allowed.";
- }, 'elementId'),
-
- /**
- Attempts to discover the element in the parent element. The default
- implementation looks for an element with an ID of elementId (or the view's
- guid if elementId is null). You can override this method to provide your
- own form of lookup. For example, if you want to discover your element
- using a CSS class name instead of an ID.
-
- @param {DOMElement} parentElement The parent's DOM element
- @returns {DOMElement} The discovered element
- */
- findElementInParentElement: function(parentElem) {
- var id = "#" + get(this, 'elementId');
- return Ember.$(id)[0] || Ember.$(id, parentElem)[0];
- },
-
- /**
- Creates a new renderBuffer with the passed tagName. You can override this
- method to provide further customization to the buffer if needed. Normally
- you will not need to call or override this method.
-
- @returns {Ember.RenderBuffer}
- */
- renderBuffer: function(tagName) {
- tagName = tagName || get(this, 'tagName');
-
- // Explicitly check for null or undefined, as tagName
- // may be an empty string, which would evaluate to false.
- if (tagName === null || tagName === undefined) {
- tagName = 'div';
- }
-
- return Ember.RenderBuffer(tagName);
- },
-
- /**
- Creates a DOM representation of the view and all of its
- child views by recursively calling the `render()` method.
-
- After the element has been created, `didInsertElement` will
- be called on this view and all of its child views.
-
- @returns {Ember.View} receiver
- */
- createElement: function() {
- if (get(this, 'element')) { return this; }
-
- var buffer = this.renderToBuffer();
- set(this, 'element', buffer.element());
-
- return this;
- },
-
- /**
- Called when a view is going to insert an element into the DOM.
- */
- willInsertElement: Ember.K,
-
- /**
- Called when the element of the view has been inserted into the DOM.
- Override this function to do any set up that requires an element in the
- document body.
- */
- didInsertElement: Ember.K,
-
- /**
- Called when the view is about to rerender, but before anything has
- been torn down. This is a good opportunity to tear down any manual
- observers you have installed based on the DOM state
- */
- willRerender: Ember.K,
-
- /**
- Run this callback on the current view and recursively on child views.
-
- @private
- */
- invokeRecursively: function(fn) {
- fn.call(this, this);
-
- this.forEachChildView(function(view) {
- view.invokeRecursively(fn);
- });
- },
-
- /**
- Invalidates the cache for a property on all child views.
- */
- invalidateRecursively: function(key) {
- this.forEachChildView(function(view) {
- view.propertyDidChange(key);
- });
- },
-
- /**
- @private
-
- Invokes the receiver's willInsertElement() method if it exists and then
- invokes the same on all child views.
-
- NOTE: In some cases this was called when the element existed. This no longer
- works so we let people know. We can remove this warning code later.
- */
- _notifyWillInsertElement: function() {
- this.invokeRecursively(function(view) {
- view.trigger('willInsertElement');
- });
- },
-
- /**
- @private
-
- Invokes the receiver's didInsertElement() method if it exists and then
- invokes the same on all child views.
- */
- _notifyDidInsertElement: function() {
- this.invokeRecursively(function(view) {
- view.trigger('didInsertElement');
- });
- },
-
- /**
- @private
-
- Invokes the receiver's willRerender() method if it exists and then
- invokes the same on all child views.
- */
- _notifyWillRerender: function() {
- this.invokeRecursively(function(view) {
- view.trigger('willRerender');
- });
- },
-
- /**
- Destroys any existing element along with the element for any child views
- as well. If the view does not currently have a element, then this method
- will do nothing.
-
- If you implement willDestroyElement() on your view, then this method will
- be invoked on your view before your element is destroyed to give you a
- chance to clean up any event handlers, etc.
-
- If you write a willDestroyElement() handler, you can assume that your
- didInsertElement() handler was called earlier for the same element.
-
- Normally you will not call or override this method yourself, but you may
- want to implement the above callbacks when it is run.
-
- @returns {Ember.View} receiver
- */
- destroyElement: function() {
- return this.invokeForState('destroyElement');
- },
-
- /**
- Called when the element of the view is going to be destroyed. Override
- this function to do any teardown that requires an element, like removing
- event listeners.
- */
- willDestroyElement: function() {},
-
- /**
- @private
-
- Invokes the `willDestroyElement` callback on the view and child views.
- */
- _notifyWillDestroyElement: function() {
- this.invokeRecursively(function(view) {
- view.trigger('willDestroyElement');
- });
- },
-
- /** @private (nodoc) */
- _elementWillChange: Ember.beforeObserver(function() {
- this.forEachChildView(function(view) {
- Ember.propertyWillChange(view, 'element');
- });
- }, 'element'),
-
- /**
- @private
-
- If this view's element changes, we need to invalidate the caches of our
- child views so that we do not retain references to DOM elements that are
- no longer needed.
-
- @observes element
- */
- _elementDidChange: Ember.observer(function() {
- this.forEachChildView(function(view) {
- Ember.propertyDidChange(view, 'element');
- });
- }, 'element'),
-
- /**
- Called when the parentView property has changed.
-
- @function
- */
- parentViewDidChange: Ember.K,
-
- /**
- @private
-
- Invoked by the view system when this view needs to produce an HTML
- representation. This method will create a new render buffer, if needed,
- then apply any default attributes, such as class names and visibility.
- Finally, the `render()` method is invoked, which is responsible for
- doing the bulk of the rendering.
-
- You should not need to override this method; instead, implement the
- `template` property, or if you need more control, override the `render`
- method.
-
- @param {Ember.RenderBuffer} buffer the render buffer. If no buffer is
- passed, a default buffer, using the current view's `tagName`, will
- be used.
- */
- renderToBuffer: function(parentBuffer, bufferOperation) {
- var buffer;
-
- Ember.run.sync();
-
- // Determine where in the parent buffer to start the new buffer.
- // By default, a new buffer will be appended to the parent buffer.
- // The buffer operation may be changed if the child views array is
- // mutated by Ember.ContainerView.
- bufferOperation = bufferOperation || 'begin';
-
- // If this is the top-most view, start a new buffer. Otherwise,
- // create a new buffer relative to the original using the
- // provided buffer operation (for example, `insertAfter` will
- // insert a new buffer after the "parent buffer").
- if (parentBuffer) {
- var tagName = get(this, 'tagName');
- if (tagName === null || tagName === undefined) {
- tagName = 'div';
- }
-
- buffer = parentBuffer[bufferOperation](tagName);
- } else {
- buffer = this.renderBuffer();
- }
-
- this.buffer = buffer;
- this.transitionTo('inBuffer', false);
-
- this.lengthBeforeRender = this._childViews.length;
-
- this.beforeRender(buffer);
- this.render(buffer);
- this.afterRender(buffer);
-
- this.lengthAfterRender = this._childViews.length;
-
- return buffer;
- },
-
- beforeRender: function(buffer) {
- this.applyAttributesToBuffer(buffer);
- },
-
- afterRender: Ember.K,
-
- /**
- @private
- */
- applyAttributesToBuffer: function(buffer) {
- // Creates observers for all registered class name and attribute bindings,
- // then adds them to the element.
- this._applyClassNameBindings();
-
- // Pass the render buffer so the method can apply attributes directly.
- // This isn't needed for class name bindings because they use the
- // existing classNames infrastructure.
- this._applyAttributeBindings(buffer);
-
-
- a_forEach(get(this, 'classNames'), function(name){ buffer.addClass(name); });
- buffer.id(get(this, 'elementId'));
-
- var role = get(this, 'ariaRole');
- if (role) {
- buffer.attr('role', role);
- }
-
- if (get(this, 'isVisible') === false) {
- buffer.style('display', 'none');
- }
- },
-
- // ..........................................................
- // STANDARD RENDER PROPERTIES
- //
-
- /**
- Tag name for the view's outer element. The tag name is only used when
- an element is first created. If you change the tagName for an element, you
- must destroy and recreate the view element.
-
- By default, the render buffer will use a `<div>` tag for views.
-
- @type String
- @default null
- */
-
- // We leave this null by default so we can tell the difference between
- // the default case and a user-specified tag.
- tagName: null,
-
- /**
- The WAI-ARIA role of the control represented by this view. For example, a
- button may have a role of type 'button', or a pane may have a role of
- type 'alertdialog'. This property is used by assistive software to help
- visually challenged users navigate rich web applications.
-
- The full list of valid WAI-ARIA roles is available at:
- http://www.w3.org/TR/wai-aria/roles#roles_categorization
-
- @type String
- @default null
- */
- ariaRole: null,
-
- /**
- Standard CSS class names to apply to the view's outer element. This
- property automatically inherits any class names defined by the view's
- superclasses as well.
-
- @type Array
- @default ['ember-view']
- */
- classNames: ['ember-view'],
-
- /**
- A list of properties of the view to apply as class names. If the property
- is a string value, the value of that string will be applied as a class
- name.
-
- // Applies the 'high' class to the view element
- Ember.View.create({
- classNameBindings: ['priority']
- priority: 'high'
- });
-
- If the value of the property is a Boolean, the name of that property is
- added as a dasherized class name.
-
- // Applies the 'is-urgent' class to the view element
- Ember.View.create({
- classNameBindings: ['isUrgent']
- isUrgent: true
- });
-
- If you would prefer to use a custom value instead of the dasherized
- property name, you can pass a binding like this:
-
- // Applies the 'urgent' class to the view element
- Ember.View.create({
- classNameBindings: ['isUrgent:urgent']
- isUrgent: true
- });
-
- This list of properties is inherited from the view's superclasses as well.
-
- @type Array
- @default []
- */
- classNameBindings: [],
-
- /**
- A list of properties of the view to apply as attributes. If the property is
- a string value, the value of that string will be applied as the attribute.
-
- // Applies the type attribute to the element
- // with the value "button", like <div type="button">
- Ember.View.create({
- attributeBindings: ['type'],
- type: 'button'
- });
-
- If the value of the property is a Boolean, the name of that property is
- added as an attribute.
-
- // Renders something like <div enabled="enabled">
- Ember.View.create({
- attributeBindings: ['enabled'],
- enabled: true
- });
- */
- attributeBindings: [],
-
- state: 'preRender',
-
- // .......................................................
- // CORE DISPLAY METHODS
- //
-
- /**
- @private
-
- Setup a view, but do not finish waking it up.
- - configure childViews
- - register the view with the global views hash, which is used for event
- dispatch
- */
- init: function() {
- this._super();
-
- // Register the view for event handling. This hash is used by
- // Ember.EventDispatcher to dispatch incoming events.
- if (!this.isVirtual) Ember.View.views[get(this, 'elementId')] = this;
-
- // setup child views. be sure to clone the child views array first
- this._childViews = this._childViews.slice();
-
- Ember.assert("Only arrays are allowed for 'classNameBindings'", Ember.typeOf(this.classNameBindings) === 'array');
- this.classNameBindings = Ember.A(this.classNameBindings.slice());
-
- Ember.assert("Only arrays are allowed for 'classNames'", Ember.typeOf(this.classNames) === 'array');
- this.classNames = Ember.A(this.classNames.slice());
-
- var viewController = get(this, 'viewController');
- if (viewController) {
- viewController = get(viewController);
- if (viewController) {
- set(viewController, 'view', this);
- }
- }
- },
-
- appendChild: function(view, options) {
- return this.invokeForState('appendChild', view, options);
- },
-
- /**
- Removes the child view from the parent view.
-
- @param {Ember.View} view
- @returns {Ember.View} receiver
- */
- removeChild: function(view) {
- // If we're destroying, the entire subtree will be
- // freed, and the DOM will be handled separately,
- // so no need to mess with childViews.
- if (this.isDestroying) { return; }
-
- // update parent node
- set(view, '_parentView', null);
-
- // remove view from childViews array.
- var childViews = this._childViews;
-
- Ember.EnumerableUtils.removeObject(childViews, view);
-
- this.propertyDidChange('childViews'); // HUH?! what happened to will change?
-
- return this;
- },
-
- /**
- Removes all children from the parentView.
-
- @returns {Ember.View} receiver
- */
- removeAllChildren: function() {
- return this.mutateChildViews(function(view) {
- this.removeChild(view);
- });
- },
-
- destroyAllChildren: function() {
- return this.mutateChildViews(function(view) {
- view.destroy();
- });
- },
-
- /**
- Removes the view from its parentView, if one is found. Otherwise
- does nothing.
-
- @returns {Ember.View} receiver
- */
- removeFromParent: function() {
- var parent = get(this, '_parentView');
-
- // Remove DOM element from parent
- this.remove();
-
- if (parent) { parent.removeChild(this); }
- return this;
- },
-
- /**
- You must call `destroy` on a view to destroy the view (and all of its
- child views). This will remove the view from any parent node, then make
- sure that the DOM element managed by the view can be released by the
- memory manager.
- */
- willDestroy: function() {
- // calling this._super() will nuke computed properties and observers,
- // so collect any information we need before calling super.
- var childViews = this._childViews,
- parent = get(this, '_parentView'),
- childLen;
-
- // destroy the element -- this will avoid each child view destroying
- // the element over and over again...
- if (!this.removedFromDOM) { this.destroyElement(); }
-
- // remove from non-virtual parent view if viewName was specified
- if (this.viewName) {
- var nonVirtualParentView = get(this, 'parentView');
- if (nonVirtualParentView) {
- set(nonVirtualParentView, this.viewName, null);
- }
- }
-
- // remove from parent if found. Don't call removeFromParent,
- // as removeFromParent will try to remove the element from
- // the DOM again.
- if (parent) { parent.removeChild(this); }
-
- this.state = 'destroyed';
-
- childLen = childViews.length;
- for (var i=childLen-1; i>=0; i--) {
- childViews[i].removedFromDOM = true;
- childViews[i].destroy();
- }
-
- // next remove view from global hash
- if (!this.isVirtual) delete Ember.View.views[get(this, 'elementId')];
- },
-
- /**
- Instantiates a view to be added to the childViews array during view
- initialization. You generally will not call this method directly unless
- you are overriding createChildViews(). Note that this method will
- automatically configure the correct settings on the new view instance to
- act as a child of the parent.
-
- @param {Class} viewClass
- @param {Hash} [attrs] Attributes to add
- @returns {Ember.View} new instance
- @test in createChildViews
- */
- createChildView: function(view, attrs) {
- if (Ember.View.detect(view)) {
- attrs = attrs || {};
- attrs._parentView = this;
- attrs.templateData = attrs.templateData || get(this, 'templateData');
-
- view = view.create(attrs);
-
- // don't set the property on a virtual view, as they are invisible to
- // consumers of the view API
- if (view.viewName) { set(get(this, 'concreteView'), view.viewName, view); }
- } else {
- Ember.assert('You must pass instance or subclass of View', view instanceof Ember.View);
- Ember.assert("You can only pass attributes when a class is provided", !attrs);
-
- if (!get(view, 'templateData')) {
- set(view, 'templateData', get(this, 'templateData'));
- }
-
- set(view, '_parentView', this);
- }
-
- return view;
- },
-
- becameVisible: Ember.K,
- becameHidden: Ember.K,
-
- /**
- @private
-
- When the view's `isVisible` property changes, toggle the visibility
- element of the actual DOM element.
- */
- _isVisibleDidChange: Ember.observer(function() {
- var $el = this.$();
- if (!$el) { return; }
-
- var isVisible = get(this, 'isVisible');
-
- $el.toggle(isVisible);
-
- if (this._isAncestorHidden()) { return; }
-
- if (isVisible) {
- this._notifyBecameVisible();
- } else {
- this._notifyBecameHidden();
- }
- }, 'isVisible'),
-
- _notifyBecameVisible: function() {
- this.trigger('becameVisible');
-
- this.forEachChildView(function(view) {
- var isVisible = get(view, 'isVisible');
-
- if (isVisible || isVisible === null) {
- view._notifyBecameVisible();
- }
- });
- },
-
- _notifyBecameHidden: function() {
- this.trigger('becameHidden');
- this.forEachChildView(function(view) {
- var isVisible = get(view, 'isVisible');
-
- if (isVisible || isVisible === null) {
- view._notifyBecameHidden();
- }
- });
- },
-
- _isAncestorHidden: function() {
- var parent = get(this, 'parentView');
-
- while (parent) {
- if (get(parent, 'isVisible') === false) { return true; }
-
- parent = get(parent, 'parentView');
- }
-
- return false;
- },
-
- clearBuffer: function() {
- this.invokeRecursively(function(view) {
- this.buffer = null;
- });
- },
-
- transitionTo: function(state, children) {
- this.state = state;
-
- if (children !== false) {
- this.forEachChildView(function(view) {
- view.transitionTo(state);
- });
- }
- },
-
- /**
- @private
-
- Override the default event firing from Ember.Evented to
- also call methods with the given name.
- */
- trigger: function(name) {
- this._super.apply(this, arguments);
- var method = this[name];
- if (method) {
- var args = [], i, l;
- for (i = 1, l = arguments.length; i < l; i++) {
- args.push(arguments[i]);
- }
- return method.apply(this, args);
- }
- },
-
- has: function(name) {
- return Ember.typeOf(this[name]) === 'function' || this._super(name);
- },
-
- // .......................................................
- // EVENT HANDLING
- //
-
- /**
- @private
-
- Handle events from `Ember.EventDispatcher`
- */
- handleEvent: function(eventName, evt) {
- return this.invokeForState('handleEvent', eventName, evt);
- }
-
-});
-
-/**
- Describe how the specified actions should behave in the various
- states that a view can exist in. Possible states:
-
- * preRender: when a view is first instantiated, and after its
- element was destroyed, it is in the preRender state
- * inBuffer: once a view has been rendered, but before it has
- been inserted into the DOM, it is in the inBuffer state
- * inDOM: once a view has been inserted into the DOM it is in
- the inDOM state. A view spends the vast majority of its
- existence in this state.
- * destroyed: once a view has been destroyed (using the destroy
- method), it is in this state. No further actions can be invoked
- on a destroyed view.
-*/
-
- // in the destroyed state, everything is illegal
-
- // before rendering has begun, all legal manipulations are noops.
-
- // inside the buffer, legal manipulations are done on the buffer
-
- // once the view has been inserted into the DOM, legal manipulations
- // are done on the DOM element.
-
-/** @private */
-var DOMManager = {
- prepend: function(view, childView) {
- childView._insertElementLater(function() {
- var element = view.$();
- element.prepend(childView.$());
- });
- },
-
- after: function(view, nextView) {
- nextView._insertElementLater(function() {
- var element = view.$();
- element.after(nextView.$());
- });
- },
-
- replace: function(view) {
- var element = get(view, 'element');
-
- set(view, 'element', null);
-
- view._insertElementLater(function() {
- Ember.$(element).replaceWith(get(view, 'element'));
- });
- },
-
- remove: function(view) {
- var elem = get(view, 'element');
-
- set(view, 'element', null);
- view._lastInsert = null;
-
- Ember.$(elem).remove();
- },
-
- empty: function(view) {
- view.$().empty();
- }
-};
-
-Ember.View.reopen({
- states: Ember.View.states,
- domManager: DOMManager
-});
-
-Ember.View.reopenClass({
-
- /**
- @private
-
- Parse a path and return an object which holds the parsed properties.
-
- For example a path like "content.isEnabled:enabled:disabled" wil return the
- following object:
-
- {
- path: "content.isEnabled",
- className: "enabled",
- falsyClassName: "disabled",
- classNames: ":enabled:disabled"
- }
-
- */
- _parsePropertyPath: function(path) {
- var split = path.split(/:/),
- propertyPath = split[0],
- classNames = "",
- className,
- falsyClassName;
-
- // check if the property is defined as prop:class or prop:trueClass:falseClass
- if (split.length > 1) {
- className = split[1];
- if (split.length === 3) { falsyClassName = split[2]; }
-
- classNames = ':' + className;
- if (falsyClassName) { classNames += ":" + falsyClassName; }
- }
-
- return {
- path: propertyPath,
- classNames: classNames,
- className: (className === '') ? undefined : className,
- falsyClassName: falsyClassName
- };
- },
-
- /**
- @private
-
- Get the class name for a given value, based on the path, optional className
- and optional falsyClassName.
-
- - if the value is truthy and a className is defined, the className is returned
- - if the value is true, the dasherized last part of the supplied path is returned
- - if the value is false and a falsyClassName is supplied, the falsyClassName is returned
- - if the value is truthy, the value is returned
- - if none of the above rules apply, null is returned
-
- */
- _classStringForValue: function(path, val, className, falsyClassName) {
- // If the value is truthy and we're using the colon syntax,
- // we should return the className directly
- if (!!val && className) {
- return className;
-
- // If value is a Boolean and true, return the dasherized property
- // name.
- } else if (val === true) {
- // catch syntax like isEnabled::not-enabled
- if (val === true && !className && falsyClassName) { return null; }
-
- // Normalize property path to be suitable for use
- // as a class name. For exaple, content.foo.barBaz
- // becomes bar-baz.
- var parts = path.split('.');
- return Ember.String.dasherize(parts[parts.length-1]);
-
- // If the value is false and a falsyClassName is specified, return it
- } else if (val === false && falsyClassName) {
- return falsyClassName;
-
- // If the value is not false, undefined, or null, return the current
- // value of the property.
- } else if (val !== false && val !== undefined && val !== null) {
- return val;
-
- // Nothing to display. Return null so that the old class is removed
- // but no new class is added.
- } else {
- return null;
- }
- }
-});
-
-// Create a global view hash.
-Ember.View.views = {};
-
-// If someone overrides the child views computed property when
-// defining their class, we want to be able to process the user's
-// supplied childViews and then restore the original computed property
-// at view initialization time. This happens in Ember.ContainerView's init
-// method.
-Ember.View.childViewsProperty = childViewsProperty;
-
-Ember.View.applyAttributeBindings = function(elem, name, value) {
- var type = Ember.typeOf(value);
- var currentValue = elem.attr(name);
-
- // if this changes, also change the logic in ember-handlebars/lib/helpers/binding.js
- if ((type === 'string' || (type === 'number' && !isNaN(value))) && value !== currentValue) {
- elem.attr(name, value);
- } else if (value && type === 'boolean') {
- elem.attr(name, name);
- } else if (!value) {
- elem.removeAttr(name);
- }
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set;
-
-Ember.View.states = {
- _default: {
- // appendChild is only legal while rendering the buffer.
- appendChild: function() {
- throw "You can't use appendChild outside of the rendering process";
- },
-
- $: function() {
- return undefined;
- },
-
- getElement: function() {
- return null;
- },
-
- // Handle events from `Ember.EventDispatcher`
- handleEvent: function() {
- return true; // continue event propagation
- },
-
- destroyElement: function(view) {
- set(view, 'element', null);
- view._lastInsert = null;
- return view;
- }
- }
-};
-
-Ember.View.reopen({
- states: Ember.View.states
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-Ember.View.states.preRender = {
- parentState: Ember.View.states._default,
-
- // a view leaves the preRender state once its element has been
- // created (createElement).
- insertElement: function(view, fn) {
- if (view._lastInsert !== Ember.guidFor(fn)){
- return;
- }
- view.createElement();
- view._notifyWillInsertElement();
- // after createElement, the view will be in the hasElement state.
- fn.call(view);
- view.transitionTo('inDOM');
- view._notifyDidInsertElement();
- },
-
- empty: Ember.K,
-
- setElement: function(view, value) {
- if (value !== null) {
- view.transitionTo('hasElement');
- }
- return value;
- }
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set, meta = Ember.meta;
-
-Ember.View.states.inBuffer = {
- parentState: Ember.View.states._default,
-
- $: function(view, sel) {
- // if we don't have an element yet, someone calling this.$() is
- // trying to update an element that isn't in the DOM. Instead,
- // rerender the view to allow the render method to reflect the
- // changes.
- view.rerender();
- return Ember.$();
- },
-
- // when a view is rendered in a buffer, rerendering it simply
- // replaces the existing buffer with a new one
- rerender: function(view) {
- Ember.deprecate("Something you did caused a view to re-render after it rendered but before it was inserted into the DOM. Because this is avoidable and the cause of significant performance issues in applications, this behavior is deprecated. If you want to use the debugger to find out what caused this, you can set ENV.RAISE_ON_DEPRECATION to true.");
-
- view._notifyWillRerender();
-
- view.clearRenderedChildren();
- view.renderToBuffer(view.buffer, 'replaceWith');
- },
-
- // when a view is rendered in a buffer, appending a child
- // view will render that view and append the resulting
- // buffer into its buffer.
- appendChild: function(view, childView, options) {
- var buffer = view.buffer;
-
- childView = this.createChildView(childView, options);
- view._childViews.push(childView);
-
- childView.renderToBuffer(buffer);
-
- view.propertyDidChange('childViews');
-
- return childView;
- },
-
- // when a view is rendered in a buffer, destroying the
- // element will simply destroy the buffer and put the
- // state back into the preRender state.
- destroyElement: function(view) {
- view.clearBuffer();
- view._notifyWillDestroyElement();
- view.transitionTo('preRender');
-
- return view;
- },
-
- empty: function() {
- Ember.assert("Emptying a view in the inBuffer state is not allowed and should not happen under normal circumstances. Most likely there is a bug in your application. This may be due to excessive property change notifications.");
- },
-
- // It should be impossible for a rendered view to be scheduled for
- // insertion.
- insertElement: function() {
- throw "You can't insert an element that has already been rendered";
- },
-
- setElement: function(view, value) {
- if (value === null) {
- view.transitionTo('preRender');
- } else {
- view.clearBuffer();
- view.transitionTo('hasElement');
- }
-
- return value;
- }
-};
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set, meta = Ember.meta;
-
-Ember.View.states.hasElement = {
- parentState: Ember.View.states._default,
-
- $: function(view, sel) {
- var elem = get(view, 'element');
- return sel ? Ember.$(sel, elem) : Ember.$(elem);
- },
-
- getElement: function(view) {
- var parent = get(view, 'parentView');
- if (parent) { parent = get(parent, 'element'); }
- if (parent) { return view.findElementInParentElement(parent); }
- return Ember.$("#" + get(view, 'elementId'))[0];
- },
-
- setElement: function(view, value) {
- if (value === null) {
- view.transitionTo('preRender');
- } else {
- throw "You cannot set an element to a non-null value when the element is already in the DOM.";
- }
-
- return value;
- },
-
- // once the view has been inserted into the DOM, rerendering is
- // deferred to allow bindings to synchronize.
- rerender: function(view) {
- view._notifyWillRerender();
-
- view.clearRenderedChildren();
-
- view.domManager.replace(view);
- return view;
- },
-
- // once the view is already in the DOM, destroying it removes it
- // from the DOM, nukes its element, and puts it back into the
- // preRender state if inDOM.
-
- destroyElement: function(view) {
- view._notifyWillDestroyElement();
- view.domManager.remove(view);
- return view;
- },
-
- empty: function(view) {
- var _childViews = view._childViews, len, idx;
- if (_childViews) {
- len = _childViews.length;
- for (idx = 0; idx < len; idx++) {
- _childViews[idx]._notifyWillDestroyElement();
- }
- }
- view.domManager.empty(view);
- },
-
- // Handle events from `Ember.EventDispatcher`
- handleEvent: function(view, eventName, evt) {
- if (view.has(eventName)) {
- // Handler should be able to re-dispatch events, so we don't
- // preventDefault or stopPropagation.
- return view.trigger(eventName, evt);
- } else {
- return true; // continue event propagation
- }
- }
-};
-
-Ember.View.states.inDOM = {
- parentState: Ember.View.states.hasElement,
-
- insertElement: function(view, fn) {
- if (view._lastInsert !== Ember.guidFor(fn)){
- return;
- }
- throw "You can't insert an element into the DOM that has already been inserted";
- }
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var destroyedError = "You can't call %@ on a destroyed view", fmt = Ember.String.fmt;
-
-Ember.View.states.destroyed = {
- parentState: Ember.View.states._default,
-
- appendChild: function() {
- throw fmt(destroyedError, ['appendChild']);
- },
- rerender: function() {
- throw fmt(destroyedError, ['rerender']);
- },
- destroyElement: function() {
- throw fmt(destroyedError, ['destroyElement']);
- },
- empty: function() {
- throw fmt(destroyedError, ['empty']);
- },
-
- setElement: function() {
- throw fmt(destroyedError, ["set('element', ...)"]);
- },
-
- // Since element insertion is scheduled, don't do anything if
- // the view has been destroyed between scheduling and execution
- insertElement: Ember.K
-};
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set, meta = Ember.meta;
-var forEach = Ember.EnumerableUtils.forEach;
-
-var childViewsProperty = Ember.computed(function() {
- return get(this, '_childViews');
-}).property('_childViews').cacheable();
-
-/**
- @class
-
- A `ContainerView` is an `Ember.View` subclass that allows for manual or programatic
- management of a view's `childViews` array that will correctly update the `ContainerView`
- instance's rendered DOM representation.
-
- ## Setting Initial Child Views
- The initial array of child views can be set in one of two ways. You can provide
- a `childViews` property at creation time that contains instance of `Ember.View`:
-
-
- aContainer = Ember.ContainerView.create({
- childViews: [Ember.View.create(), Ember.View.create()]
- })
-
- You can also provide a list of property names whose values are instances of `Ember.View`:
-
- aContainer = Ember.ContainerView.create({
- childViews: ['aView', 'bView', 'cView'],
- aView: Ember.View.create(),
- bView: Ember.View.create()
- cView: Ember.View.create()
- })
-
- The two strategies can be combined:
-
- aContainer = Ember.ContainerView.create({
- childViews: ['aView', Ember.View.create()],
- aView: Ember.View.create()
- })
-
- Each child view's rendering will be inserted into the container's rendered HTML in the same
- order as its position in the `childViews` property.
-
- ## Adding and Removing Child Views
- The views in a container's `childViews` array should be added and removed by manipulating
- the `childViews` property directly.
-
- To remove a view pass that view into a `removeObject` call on the container's `childViews` property.
-
- Given an empty `<body>` the following code
-
- aContainer = Ember.ContainerView.create({
- classNames: ['the-container'],
- childViews: ['aView', 'bView'],
- aView: Ember.View.create({
- template: Ember.Handlebars.compile("A")
- }),
- bView: Ember.View.create({
- template: Ember.Handlebars.compile("B")
- })
- })
-
- aContainer.appendTo('body')
-
- Results in the HTML
-
- <div class="ember-view the-container">
- <div class="ember-view">A</div>
- <div class="ember-view">B</div>
- </div>
-
- Removing a view
-
- aContainer.get('childViews') // [aContainer.aView, aContainer.bView]
- aContainer.get('childViews').removeObject(aContainer.get('bView'))
- aContainer.get('childViews') // [aContainer.aView]
-
- Will result in the following HTML
-
- <div class="ember-view the-container">
- <div class="ember-view">A</div>
- </div>
-
-
- Similarly, adding a child view is accomplished by adding `Ember.View` instances to the
- container's `childViews` property.
-
- Given an empty `<body>` the following code
-
- aContainer = Ember.ContainerView.create({
- classNames: ['the-container'],
- childViews: ['aView', 'bView'],
- aView: Ember.View.create({
- template: Ember.Handlebars.compile("A")
- }),
- bView: Ember.View.create({
- template: Ember.Handlebars.compile("B")
- })
- })
-
- aContainer.appendTo('body')
-
- Results in the HTML
-
- <div class="ember-view the-container">
- <div class="ember-view">A</div>
- <div class="ember-view">B</div>
- </div>
-
- Adding a view
-
- AnotherViewClass = Ember.View.extend({
- template: Ember.Handlebars.compile("Another view")
- })
-
- aContainer.get('childViews') // [aContainer.aView, aContainer.bView]
- aContainer.get('childViews').pushObject(AnotherViewClass.create())
- aContainer.get('childViews') // [aContainer.aView, aContainer.bView, <AnotherViewClass instance>]
-
- Will result in the following HTML
-
- <div class="ember-view the-container">
- <div class="ember-view">A</div>
- <div class="ember-view">B</div>
- <div class="ember-view">Another view</div>
- </div>
-
-
- Direct manipulation of childViews presence or absence in the DOM via calls to
- `remove` or `removeFromParent` or calls to a container's `removeChild` may not behave
- correctly.
-
- Calling `remove()` on a child view will remove the view's HTML, but it will remain as part of its
- container's `childView`s property.
-
- Calling `removeChild()` on the container will remove the passed view instance from the container's
- `childView`s but keep its HTML within the container's rendered view.
-
- Calling `removeFromParent()` behaves as expected but should be avoided in favor of direct
- manipulation of a container's `childViews` property.
-
- aContainer = Ember.ContainerView.create({
- classNames: ['the-container'],
- childViews: ['aView', 'bView'],
- aView: Ember.View.create({
- template: Ember.Handlebars.compile("A")
- }),
- bView: Ember.View.create({
- template: Ember.Handlebars.compile("B")
- })
- })
-
- aContainer.appendTo('body')
-
- Results in the HTML
-
- <div class="ember-view the-container">
- <div class="ember-view">A</div>
- <div class="ember-view">B</div>
- </div>
-
- Calling `aContainer.get('aView').removeFromParent()` will result in the following HTML
-
- <div class="ember-view the-container">
- <div class="ember-view">B</div>
- </div>
-
- And the `Ember.View` instance stored in `aContainer.aView` will be removed from `aContainer`'s
- `childViews` array.
-
- ## Templates and Layout
- A `template`, `templateName`, `defaultTemplate`, `layout`, `layoutName` or `defaultLayout`
- property on a container view will not result in the template or layout being rendered.
- The HTML contents of a `Ember.ContainerView`'s DOM representation will only be the rendered HTML
- of its child views.
-
- ## Binding a View to Display
-
- If you would like to display a single view in your ContainerView, you can set its `currentView`
- property. When the `currentView` property is set to a view instance, it will be added to the
- ContainerView's `childViews` array. If the `currentView` property is later changed to a
- different view, the new view will replace the old view. If `currentView` is set to `null`, the
- last `currentView` will be removed.
-
- This functionality is useful for cases where you want to bind the display of a ContainerView to
- a controller or state manager. For example, you can bind the `currentView` of a container to
- a controller like this:
-
- // Controller
- App.appController = Ember.Object.create({
- view: Ember.View.create({
- templateName: 'person_template'
- })
- });
-
- // Handlebars template
- {{view Ember.ContainerView currentViewBinding="App.appController.view"}}
-
- @extends Ember.View
-*/
-
-Ember.ContainerView = Ember.View.extend({
-
- init: function() {
- this._super();
-
- var childViews = get(this, 'childViews');
- Ember.defineProperty(this, 'childViews', childViewsProperty);
-
- var _childViews = this._childViews;
-
- forEach(childViews, function(viewName, idx) {
- var view;
-
- if ('string' === typeof viewName) {
- view = get(this, viewName);
- view = this.createChildView(view);
- set(this, viewName, view);
- } else {
- view = this.createChildView(viewName);
- }
-
- _childViews[idx] = view;
- }, this);
-
- var currentView = get(this, 'currentView');
- if (currentView) _childViews.push(this.createChildView(currentView));
-
- // Make the _childViews array observable
- Ember.A(_childViews);
-
- // Sets up an array observer on the child views array. This
- // observer will detect when child views are added or removed
- // and update the DOM to reflect the mutation.
- get(this, 'childViews').addArrayObserver(this, {
- willChange: 'childViewsWillChange',
- didChange: 'childViewsDidChange'
- });
- },
-
- /**
- Instructs each child view to render to the passed render buffer.
-
- @param {Ember.RenderBuffer} buffer the buffer to render to
- @private
- */
- render: function(buffer) {
- this.forEachChildView(function(view) {
- view.renderToBuffer(buffer);
- });
- },
-
- /**
- When the container view is destroyed, tear down the child views
- array observer.
-
- @private
- */
- willDestroy: function() {
- get(this, 'childViews').removeArrayObserver(this, {
- willChange: 'childViewsWillChange',
- didChange: 'childViewsDidChange'
- });
-
- this._super();
- },
-
- /**
- When a child view is removed, destroy its element so that
- it is removed from the DOM.
-
- The array observer that triggers this action is set up in the
- `renderToBuffer` method.
-
- @private
- @param {Ember.Array} views the child views array before mutation
- @param {Number} start the start position of the mutation
- @param {Number} removed the number of child views removed
- **/
- childViewsWillChange: function(views, start, removed) {
- if (removed === 0) { return; }
-
- var changedViews = views.slice(start, start+removed);
- this.initializeViews(changedViews, null, null);
-
- this.invokeForState('childViewsWillChange', views, start, removed);
- },
-
- /**
- When a child view is added, make sure the DOM gets updated appropriately.
-
- If the view has already rendered an element, we tell the child view to
- create an element and insert it into the DOM. If the enclosing container view
- has already written to a buffer, but not yet converted that buffer into an
- element, we insert the string representation of the child into the appropriate
- place in the buffer.
-
- @private
- @param {Ember.Array} views the array of child views afte the mutation has occurred
- @param {Number} start the start position of the mutation
- @param {Number} removed the number of child views removed
- @param {Number} the number of child views added
- */
- childViewsDidChange: function(views, start, removed, added) {
- var len = get(views, 'length');
-
- // No new child views were added; bail out.
- if (added === 0) return;
-
- var changedViews = views.slice(start, start+added);
- this.initializeViews(changedViews, this, get(this, 'templateData'));
-
- // Let the current state handle the changes
- this.invokeForState('childViewsDidChange', views, start, added);
- },
-
- initializeViews: function(views, parentView, templateData) {
- forEach(views, function(view) {
- set(view, '_parentView', parentView);
-
- if (!get(view, 'templateData')) {
- set(view, 'templateData', templateData);
- }
- });
- },
-
- /**
- Schedules a child view to be inserted into the DOM after bindings have
- finished syncing for this run loop.
-
- @param {Ember.View} view the child view to insert
- @param {Ember.View} prev the child view after which the specified view should
- be inserted
- @private
- */
- _scheduleInsertion: function(view, prev) {
- if (prev) {
- prev.domManager.after(prev, view);
- } else {
- this.domManager.prepend(this, view);
- }
- },
-
- currentView: null,
-
- _currentViewWillChange: Ember.beforeObserver(function() {
- var childViews = get(this, 'childViews'),
- currentView = get(this, 'currentView');
-
- if (currentView) {
- childViews.removeObject(currentView);
- currentView.destroy();
- }
- }, 'currentView'),
-
- _currentViewDidChange: Ember.observer(function() {
- var childViews = get(this, 'childViews'),
- currentView = get(this, 'currentView');
-
- if (currentView) {
- childViews.pushObject(currentView);
- }
- }, 'currentView')
-});
-
-// Ember.ContainerView extends the default view states to provide different
-// behavior for childViewsWillChange and childViewsDidChange.
-Ember.ContainerView.states = {
- parent: Ember.View.states,
-
- inBuffer: {
- childViewsDidChange: function(parentView, views, start, added) {
- var buffer = parentView.buffer,
- startWith, prev, prevBuffer, view;
-
- // Determine where to begin inserting the child view(s) in the
- // render buffer.
- if (start === 0) {
- // If views were inserted at the beginning, prepend the first
- // view to the render buffer, then begin inserting any
- // additional views at the beginning.
- view = views[start];
- startWith = start + 1;
- view.renderToBuffer(buffer, 'prepend');
- } else {
- // Otherwise, just insert them at the same place as the child
- // views mutation.
- view = views[start - 1];
- startWith = start;
- }
-
- for (var i=startWith; i<start+added; i++) {
- prev = view;
- view = views[i];
- prevBuffer = prev.buffer;
- view.renderToBuffer(prevBuffer, 'insertAfter');
- }
- }
- },
-
- hasElement: {
- childViewsWillChange: function(view, views, start, removed) {
- for (var i=start; i<start+removed; i++) {
- views[i].remove();
- }
- },
-
- childViewsDidChange: function(view, views, start, added) {
- // If the DOM element for this container view already exists,
- // schedule each child view to insert its DOM representation after
- // bindings have finished syncing.
- var prev = start === 0 ? null : views[start-1];
-
- for (var i=start; i<start+added; i++) {
- view = views[i];
- this._scheduleInsertion(view, prev);
- prev = view;
- }
- }
- }
-};
-
-Ember.ContainerView.states.inDOM = {
- parentState: Ember.ContainerView.states.hasElement
-};
-
-Ember.ContainerView.reopen({
- states: Ember.ContainerView.states
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set, fmt = Ember.String.fmt;
-
-/**
- @class
-
- `Ember.CollectionView` is an `Ember.View` descendent responsible for managing a
- collection (an array or array-like object) by maintaing a child view object and
- associated DOM representation for each item in the array and ensuring that child
- views and their associated rendered HTML are updated when items in the array
- are added, removed, or replaced.
-
- ## Setting content
- The managed collection of objects is referenced as the `Ember.CollectionView` instance's
- `content` property.
-
- someItemsView = Ember.CollectionView.create({
- content: ['A', 'B','C']
- })
-
- The view for each item in the collection will have its `content` property set
- to the item.
-
- ## Specifying itemViewClass
- By default the view class for each item in the managed collection will be an instance
- of `Ember.View`. You can supply a different class by setting the `CollectionView`'s
- `itemViewClass` property.
-
- Given an empty `<body>` and the following code:
-
-
- someItemsView = Ember.CollectionView.create({
- classNames: ['a-collection'],
- content: ['A','B','C'],
- itemViewClass: Ember.View.extend({
- template: Ember.Handlebars.compile("the letter: {{view.content}}")
- })
- })
-
- someItemsView.appendTo('body')
-
- Will result in the following HTML structure
-
- <div class="ember-view a-collection">
- <div class="ember-view">the letter: A</div>
- <div class="ember-view">the letter: B</div>
- <div class="ember-view">the letter: C</div>
- </div>
-
- ## Automatic matching of parent/child tagNames
-
- Setting the `tagName` property of a `CollectionView` to any of
- "ul", "ol", "table", "thead", "tbody", "tfoot", "tr", or "select" will result
- in the item views receiving an appropriately matched `tagName` property.
-
-
- Given an empty `<body>` and the following code:
-
- anUndorderedListView = Ember.CollectionView.create({
- tagName: 'ul',
- content: ['A','B','C'],
- itemViewClass: Ember.View.extend({
- template: Ember.Handlebars.compile("the letter: {{view.content}}")
- })
- })
-
- anUndorderedListView.appendTo('body')
-
- Will result in the following HTML structure
-
- <ul class="ember-view a-collection">
- <li class="ember-view">the letter: A</li>
- <li class="ember-view">the letter: B</li>
- <li class="ember-view">the letter: C</li>
- </ul>
-
- Additional tagName pairs can be provided by adding to `Ember.CollectionView.CONTAINER_MAP `
-
- Ember.CollectionView.CONTAINER_MAP['article'] = 'section'
-
-
- ## Empty View
- You can provide an `Ember.View` subclass to the `Ember.CollectionView` instance as its
- `emptyView` property. If the `content` property of a `CollectionView` is set to `null`
- or an empty array, an instance of this view will be the `CollectionView`s only child.
-
- aListWithNothing = Ember.CollectionView.create({
- classNames: ['nothing']
- content: null,
- emptyView: Ember.View.extend({
- template: Ember.Handlebars.compile("The collection is empty")
- })
- })
-
- aListWithNothing.appendTo('body')
-
- Will result in the following HTML structure
-
- <div class="ember-view nothing">
- <div class="ember-view">
- The collection is empty
- </div>
- </div>
-
- ## Adding and Removing items
- The `childViews` property of a `CollectionView` should not be directly manipulated. Instead,
- add, remove, replace items from its `content` property. This will trigger
- appropriate changes to its rendered HTML.
-
- ## Use in templates via the `{{collection}}` Ember.Handlebars helper
- Ember.Handlebars provides a helper specifically for adding `CollectionView`s to templates.
- See `Ember.Handlebars.collection` for more details
-
- @since Ember 0.9
- @extends Ember.ContainerView
-*/
-Ember.CollectionView = Ember.ContainerView.extend(
-/** @scope Ember.CollectionView.prototype */ {
-
- /**
- A list of items to be displayed by the Ember.CollectionView.
-
- @type Ember.Array
- @default null
- */
- content: null,
-
- /**
- @private
-
- This provides metadata about what kind of empty view class this
- collection would like if it is being instantiated from another
- system (like Handlebars)
- */
- emptyViewClass: Ember.View,
-
- /**
- An optional view to display if content is set to an empty array.
-
- @type Ember.View
- @default null
- */
- emptyView: null,
-
- /**
- @type Ember.View
- @default Ember.View
- */
- itemViewClass: Ember.View,
-
- /** @private */
- init: function() {
- var ret = this._super();
- this._contentDidChange();
- return ret;
- },
-
- _contentWillChange: Ember.beforeObserver(function() {
- var content = this.get('content');
-
- if (content) { content.removeArrayObserver(this); }
- var len = content ? get(content, 'length') : 0;
- this.arrayWillChange(content, 0, len);
- }, 'content'),
-
- /**
- @private
-
- Check to make sure that the content has changed, and if so,
- update the children directly. This is always scheduled
- asynchronously, to allow the element to be created before
- bindings have synchronized and vice versa.
- */
- _contentDidChange: Ember.observer(function() {
- var content = get(this, 'content');
-
- if (content) {
- Ember.assert(fmt("an Ember.CollectionView's content must implement Ember.Array. You passed %@", [content]), Ember.Array.detect(content));
- content.addArrayObserver(this);
- }
-
- var len = content ? get(content, 'length') : 0;
- this.arrayDidChange(content, 0, null, len);
- }, 'content'),
-
- willDestroy: function() {
- var content = get(this, 'content');
- if (content) { content.removeArrayObserver(this); }
-
- this._super();
- },
-
- arrayWillChange: function(content, start, removedCount) {
- // If the contents were empty before and this template collection has an
- // empty view remove it now.
- var emptyView = get(this, 'emptyView');
- if (emptyView && emptyView instanceof Ember.View) {
- emptyView.removeFromParent();
- }
-
- // Loop through child views that correspond with the removed items.
- // Note that we loop from the end of the array to the beginning because
- // we are mutating it as we go.
- var childViews = get(this, 'childViews'), childView, idx, len;
-
- len = get(childViews, 'length');
-
- var removingAll = removedCount === len;
-
- if (removingAll) {
- this.invokeForState('empty');
- }
-
- for (idx = start + removedCount - 1; idx >= start; idx--) {
- childView = childViews[idx];
- if (removingAll) { childView.removedFromDOM = true; }
- childView.destroy();
- }
- },
-
- /**
- Called when a mutation to the underlying content array occurs.
-
- This method will replay that mutation against the views that compose the
- Ember.CollectionView, ensuring that the view reflects the model.
-
- This array observer is added in contentDidChange.
-
- @param {Array} addedObjects
- the objects that were added to the content
-
- @param {Array} removedObjects
- the objects that were removed from the content
-
- @param {Number} changeIndex
- the index at which the changes occurred
- */
- arrayDidChange: function(content, start, removed, added) {
- var itemViewClass = get(this, 'itemViewClass'),
- childViews = get(this, 'childViews'),
- addedViews = [], view, item, idx, len, itemTagName;
-
- if ('string' === typeof itemViewClass) {
- itemViewClass = get(itemViewClass);
- }
-
- Ember.assert(fmt("itemViewClass must be a subclass of Ember.View, not %@", [itemViewClass]), Ember.View.detect(itemViewClass));
-
- len = content ? get(content, 'length') : 0;
- if (len) {
- for (idx = start; idx < start+added; idx++) {
- item = content.objectAt(idx);
-
- view = this.createChildView(itemViewClass, {
- content: item,
- contentIndex: idx
- });
-
- addedViews.push(view);
- }
- } else {
- var emptyView = get(this, 'emptyView');
- if (!emptyView) { return; }
-
- emptyView = this.createChildView(emptyView);
- addedViews.push(emptyView);
- set(this, 'emptyView', emptyView);
- }
- childViews.replace(start, 0, addedViews);
- },
-
- createChildView: function(view, attrs) {
- view = this._super(view, attrs);
-
- var itemTagName = get(view, 'tagName');
- var tagName = (itemTagName === null || itemTagName === undefined) ? Ember.CollectionView.CONTAINER_MAP[get(this, 'tagName')] : itemTagName;
-
- set(view, 'tagName', tagName);
-
- return view;
- }
-});
-
-/**
- @static
-
- A map of parent tags to their default child tags. You can add
- additional parent tags if you want collection views that use
- a particular parent tag to default to a child tag.
-
- @type Hash
- @constant
-*/
-Ember.CollectionView.CONTAINER_MAP = {
- ul: 'li',
- ol: 'li',
- table: 'tr',
- thead: 'tr',
- tbody: 'tr',
- tfoot: 'tr',
- tr: 'td',
- select: 'option'
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2006-2011 Strobe Inc. and contributors.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-/*globals jQuery*/
-
-})();
-
-(function() {
-var get = Ember.get, set = Ember.set;
-
-/**
- @class
-
- @extends Ember.Object
-*/
-Ember.State = Ember.Object.extend(Ember.Evented,
-/** @scope Ember.State.prototype */{
- isState: true,
-
- /**
- A reference to the parent state.
-
- @type Ember.State
- */
- parentState: null,
- start: null,
-
- /**
- The name of this state.
-
- @type String
- */
- name: null,
-
- /**
- The full path to this state.
-
- @type String
- @readOnly
- */
- path: Ember.computed(function() {
- var parentPath = get(this, 'parentState.path'),
- path = get(this, 'name');
-
- if (parentPath) {
- path = parentPath + '.' + path;
- }
-
- return path;
- }).property().cacheable(),
-
- /**
- @private
-
- Override the default event firing from Ember.Evented to
- also call methods with the given name.
- */
- trigger: function(name) {
- if (this[name]) {
- this[name].apply(this, [].slice.call(arguments, 1));
- }
- this._super.apply(this, arguments);
- },
-
- /** @private */
- init: function() {
- var states = get(this, 'states'), foundStates;
- set(this, 'childStates', Ember.A());
- set(this, 'eventTransitions', get(this, 'eventTransitions') || {});
-
- var name, value, transitionTarget;
-
- // As a convenience, loop over the properties
- // of this state and look for any that are other
- // Ember.State instances or classes, and move them
- // to the `states` hash. This avoids having to
- // create an explicit separate hash.
-
- if (!states) {
- states = {};
-
- for (name in this) {
- if (name === "constructor") { continue; }
-
- if (value = this[name]) {
- if (transitionTarget = value.transitionTarget) {
- this.eventTransitions[name] = transitionTarget;
- }
-
- this.setupChild(states, name, value);
- }
- }
-
- set(this, 'states', states);
- } else {
- for (name in states) {
- this.setupChild(states, name, states[name]);
- }
- }
-
- set(this, 'pathsCache', {});
- set(this, 'pathsCacheNoContext', {});
- },
-
- /** @private */
- setupChild: function(states, name, value) {
- if (!value) { return false; }
-
- if (value.isState) {
- set(value, 'name', name);
- } else if (Ember.State.detect(value)) {
- value = value.create({
- name: name
- });
- }
-
- if (value.isState) {
- set(value, 'parentState', this);
- get(this, 'childStates').pushObject(value);
- states[name] = value;
- }
- },
-
- lookupEventTransition: function(name) {
- var path, state = this;
-
- while(state && !path) {
- path = state.eventTransitions[name];
- state = state.get('parentState');
- }
-
- return path;
- },
-
- /**
- A Boolean value indicating whether the state is a leaf state
- in the state hierarchy. This is false if the state has child
- states; otherwise it is true.
-
- @type Boolean
- */
- isLeaf: Ember.computed(function() {
- return !get(this, 'childStates').length;
- }).cacheable(),
-
- /**
- A boolean value indicating whether the state takes a context.
- By default we assume all states take contexts.
- */
- hasContext: true,
-
- /**
- This is the default transition event.
-
- @event
- @param {Ember.StateManager} manager
- @param context
- @see Ember.StateManager#transitionEvent
- */
- setup: Ember.K,
-
- /**
- This event fires when the state is entered.
-
- @event
- @param {Ember.StateManager} manager
- */
- enter: Ember.K,
-
- /**
- This event fires when the state is exited.
-
- @event
- @param {Ember.StateManager} manager
- */
- exit: Ember.K
-});
-
-var Event = Ember.$ && Ember.$.Event;
-
-Ember.State.reopenClass(
-/** @scope Ember.State */{
-
- /**
- @static
-
- Creates an action function for transitioning to the named state while preserving context.
-
- The following example StateManagers are equivalent:
-
- aManager = Ember.StateManager.create({
- stateOne: Ember.State.create({
- changeToStateTwo: Ember.State.transitionTo('stateTwo')
- }),
- stateTwo: Ember.State.create({})
- })
-
- bManager = Ember.StateManager.create({
- stateOne: Ember.State.create({
- changeToStateTwo: function(manager, context){
- manager.transitionTo('stateTwo', context)
- }
- }),
- stateTwo: Ember.State.create({})
- })
-
- @param {String} target
- */
- transitionTo: function(target) {
- var event = function(stateManager, context) {
- if (Event && context instanceof Event) {
- if (context.hasOwnProperty('context')) {
- context = context.context;
- } else {
- // If we received an event and it doesn't contain
- // a context, don't pass along a superfluous
- // context to the target of the event.
- return stateManager.transitionTo(target);
- }
- }
-
- stateManager.transitionTo(target, context);
- };
-
- event.transitionTarget = target;
-
- return event;
- }
-});
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set, fmt = Ember.String.fmt;
-var arrayForEach = Ember.ArrayPolyfills.forEach;
-/**
- @private
-
- A Transition takes the enter, exit and resolve states and normalizes
- them:
-
- * takes any passed in contexts into consideration
- * adds in `initialState`s
-*/
-var Transition = function(raw) {
- this.enterStates = raw.enterStates.slice();
- this.exitStates = raw.exitStates.slice();
- this.resolveState = raw.resolveState;
-
- this.finalState = raw.enterStates[raw.enterStates.length - 1] || raw.resolveState;
-};
-
-Transition.prototype = {
- /**
- @private
-
- Normalize the passed in enter, exit and resolve states.
-
- This process also adds `finalState` and `contexts` to the Transition object.
-
- @param {Ember.StateManager} manager the state manager running the transition
- @param {Array} contexts a list of contexts passed into `transitionTo`
- */
- normalize: function(manager, contexts) {
- this.matchContextsToStates(contexts);
- this.addInitialStates();
- this.removeUnchangedContexts(manager);
- return this;
- },
-
- /**
- @private
-
- Match each of the contexts passed to `transitionTo` to a state.
- This process may also require adding additional enter and exit
- states if there are more contexts than enter states.
-
- @param {Array} contexts a list of contexts passed into `transitionTo`
- */
- matchContextsToStates: function(contexts) {
- var stateIdx = this.enterStates.length - 1,
- matchedContexts = [],
- state,
- context;
-
- // Next, we will match the passed in contexts to the states they
- // represent.
- //
- // First, assign a context to each enter state in reverse order. If
- // any contexts are left, add a parent state to the list of states
- // to enter and exit, and assign a context to the parent state.
- //
- // If there are still contexts left when the state manager is
- // reached, raise an exception.
- //
- // This allows the following:
- //
- // |- root
- // | |- post
- // | | |- comments
- // | |- about (* current state)
- //
- // For `transitionTo('post.comments', post, post.get('comments')`,
- // the first context (`post`) will be assigned to `root.post`, and
- // the second context (`post.get('comments')`) will be assigned
- // to `root.post.comments`.
- //
- // For the following:
- //
- // |- root
- // | |- post
- // | | |- index (* current state)
- // | | |- comments
- //
- // For `transitionTo('post.comments', otherPost, otherPost.get('comments')`,
- // the `<root.post>` state will be added to the list of enter and exit
- // states because its context has changed.
-
- while (contexts.length > 0) {
- if (stateIdx >= 0) {
- state = this.enterStates[stateIdx--];
- } else {
- if (this.enterStates.length) {
- state = get(this.enterStates[0], 'parentState');
- if (!state) { throw "Cannot match all contexts to states"; }
- } else {
- // If re-entering the current state with a context, the resolve
- // state will be the current state.
- state = this.resolveState;
- }
-
- this.enterStates.unshift(state);
- this.exitStates.unshift(state);
- }
-
- // in routers, only states with dynamic segments have a context
- if (get(state, 'hasContext')) {
- context = contexts.pop();
- } else {
- context = null;
- }
-
- matchedContexts.unshift(context);
- }
-
- this.contexts = matchedContexts;
- },
-
- /**
- @private
-
- Add any `initialState`s to the list of enter states.
- */
- addInitialStates: function() {
- var finalState = this.finalState, initialState;
-
- while(true) {
- initialState = get(finalState, 'initialState') || 'start';
- finalState = get(finalState, 'states.' + initialState);
-
- if (!finalState) { break; }
-
- this.finalState = finalState;
- this.enterStates.push(finalState);
- this.contexts.push(undefined);
- }
- },
-
- /**
- @private
-
- Remove any states that were added because the number of contexts
- exceeded the number of explicit enter states, but the context has
- not changed since the last time the state was entered.
-
- @param {Ember.StateManager} manager passed in to look up the last
- context for a states
- */
- removeUnchangedContexts: function(manager) {
- // Start from the beginning of the enter states. If the state was added
- // to the list during the context matching phase, make sure the context
- // has actually changed since the last time the state was entered.
- while (this.enterStates.length > 0) {
- if (this.enterStates[0] !== this.exitStates[0]) { break; }
-
- if (this.enterStates.length === this.contexts.length) {
- if (manager.getStateMeta(this.enterStates[0], 'context') !== this.contexts[0]) { break; }
- this.contexts.shift();
- }
-
- this.resolveState = this.enterStates.shift();
- this.exitStates.shift();
- }
- }
-};
-
-/**
- @class
-
- StateManager is part of Ember's implementation of a finite state machine. A StateManager
- instance manages a number of properties that are instances of `Ember.State`,
- tracks the current active state, and triggers callbacks when states have changed.
-
- ## Defining States
-
- The states of StateManager can be declared in one of two ways. First, you can define
- a `states` property that contains all the states:
-
- managerA = Ember.StateManager.create({
- states: {
- stateOne: Ember.State.create(),
- stateTwo: Ember.State.create()
- }
- })
-
- managerA.get('states')
- // {
- // stateOne: Ember.State.create(),
- // stateTwo: Ember.State.create()
- // }
-
- You can also add instances of `Ember.State` (or an `Ember.State` subclass) directly as properties
- of a StateManager. These states will be collected into the `states` property for you.
-
- managerA = Ember.StateManager.create({
- stateOne: Ember.State.create(),
- stateTwo: Ember.State.create()
- })
-
- managerA.get('states')
- // {
- // stateOne: Ember.State.create(),
- // stateTwo: Ember.State.create()
- // }
-
- ## The Initial State
- When created a StateManager instance will immediately enter into the state
- defined as its `start` property or the state referenced by name in its
- `initialState` property:
-
- managerA = Ember.StateManager.create({
- start: Ember.State.create({})
- })
-
- managerA.get('currentState.name') // 'start'
-
- managerB = Ember.StateManager.create({
- initialState: 'beginHere',
- beginHere: Ember.State.create({})
- })
-
- managerB.get('currentState.name') // 'beginHere'
-
- Because it is a property you may also provide a computed function if you wish to derive
- an `initialState` programmatically:
-
- managerC = Ember.StateManager.create({
- initialState: function(){
- if (someLogic) {
- return 'active';
- } else {
- return 'passive';
- }
- }.property(),
- active: Ember.State.create({}),
- passive: Ember.State.create({})
- })
-
- ## Moving Between States
- A StateManager can have any number of Ember.State objects as properties
- and can have a single one of these states as its current state.
-
- Calling `transitionTo` transitions between states:
-
- robotManager = Ember.StateManager.create({
- initialState: 'poweredDown',
- poweredDown: Ember.State.create({}),
- poweredUp: Ember.State.create({})
- })
-
- robotManager.get('currentState.name') // 'poweredDown'
- robotManager.transitionTo('poweredUp')
- robotManager.get('currentState.name') // 'poweredUp'
-
- Before transitioning into a new state the existing `currentState` will have its
- `exit` method called with the StateManager instance as its first argument and
- an object representing the transition as its second argument.
-
- After transitioning into a new state the new `currentState` will have its
- `enter` method called with the StateManager instance as its first argument and
- an object representing the transition as its second argument.
-
- robotManager = Ember.StateManager.create({
- initialState: 'poweredDown',
- poweredDown: Ember.State.create({
- exit: function(stateManager){
- console.log("exiting the poweredDown state")
- }
- }),
- poweredUp: Ember.State.create({
- enter: function(stateManager){
- console.log("entering the poweredUp state. Destroy all humans.")
- }
- })
- })
-
- robotManager.get('currentState.name') // 'poweredDown'
- robotManager.transitionTo('poweredUp')
- // will log
- // 'exiting the poweredDown state'
- // 'entering the poweredUp state. Destroy all humans.'
-
-
- Once a StateManager is already in a state, subsequent attempts to enter that state will
- not trigger enter or exit method calls. Attempts to transition into a state that the
- manager does not have will result in no changes in the StateManager's current state:
-
- robotManager = Ember.StateManager.create({
- initialState: 'poweredDown',
- poweredDown: Ember.State.create({
- exit: function(stateManager){
- console.log("exiting the poweredDown state")
- }
- }),
- poweredUp: Ember.State.create({
- enter: function(stateManager){
- console.log("entering the poweredUp state. Destroy all humans.")
- }
- })
- })
-
- robotManager.get('currentState.name') // 'poweredDown'
- robotManager.transitionTo('poweredUp')
- // will log
- // 'exiting the poweredDown state'
- // 'entering the poweredUp state. Destroy all humans.'
- robotManager.transitionTo('poweredUp') // no logging, no state change
-
- robotManager.transitionTo('someUnknownState') // silently fails
- robotManager.get('currentState.name') // 'poweredUp'
-
-
- Each state property may itself contain properties that are instances of Ember.State.
- The StateManager can transition to specific sub-states in a series of transitionTo method calls or
- via a single transitionTo with the full path to the specific state. The StateManager will also
- keep track of the full path to its currentState
-
- robotManager = Ember.StateManager.create({
- initialState: 'poweredDown',
- poweredDown: Ember.State.create({
- charging: Ember.State.create(),
- charged: Ember.State.create()
- }),
- poweredUp: Ember.State.create({
- mobile: Ember.State.create(),
- stationary: Ember.State.create()
- })
- })
-
- robotManager.get('currentState.name') // 'poweredDown'
-
- robotManager.transitionTo('poweredUp')
- robotManager.get('currentState.name') // 'poweredUp'
-
- robotManager.transitionTo('mobile')
- robotManager.get('currentState.name') // 'mobile'
-
- // transition via a state path
- robotManager.transitionTo('poweredDown.charging')
- robotManager.get('currentState.name') // 'charging'
-
- robotManager.get('currentState.path') // 'poweredDown.charging'
-
- Enter transition methods will be called for each state and nested child state in their
- hierarchical order. Exit methods will be called for each state and its nested states in
- reverse hierarchical order.
-
- Exit transitions for a parent state are not called when entering into one of its child states,
- only when transitioning to a new section of possible states in the hierarchy.
-
- robotManager = Ember.StateManager.create({
- initialState: 'poweredDown',
- poweredDown: Ember.State.create({
- enter: function(){},
- exit: function(){
- console.log("exited poweredDown state")
- },
- charging: Ember.State.create({
- enter: function(){},
- exit: function(){}
- }),
- charged: Ember.State.create({
- enter: function(){
- console.log("entered charged state")
- },
- exit: function(){
- console.log("exited charged state")
- }
- })
- }),
- poweredUp: Ember.State.create({
- enter: function(){
- console.log("entered poweredUp state")
- },
- exit: function(){},
- mobile: Ember.State.create({
- enter: function(){
- console.log("entered mobile state")
- },
- exit: function(){}
- }),
- stationary: Ember.State.create({
- enter: function(){},
- exit: function(){}
- })
- })
- })
-
-
- robotManager.get('currentState.path') // 'poweredDown'
- robotManager.transitionTo('charged')
- // logs 'entered charged state'
- // but does *not* log 'exited poweredDown state'
- robotManager.get('currentState.name') // 'charged
-
- robotManager.transitionTo('poweredUp.mobile')
- // logs
- // 'exited charged state'
- // 'exited poweredDown state'
- // 'entered poweredUp state'
- // 'entered mobile state'
-
- During development you can set a StateManager's `enableLogging` property to `true` to
- receive console messages of state transitions.
-
- robotManager = Ember.StateManager.create({
- enableLogging: true
- })
-
- ## Managing currentState with Actions
- To control which transitions between states are possible for a given state, StateManager
- can receive and route action messages to its states via the `send` method. Calling to `send` with
- an action name will begin searching for a method with the same name starting at the current state
- and moving up through the parent states in a state hierarchy until an appropriate method is found
- or the StateManager instance itself is reached.
-
- If an appropriately named method is found it will be called with the state manager as the first
- argument and an optional `context` object as the second argument.
-
- managerA = Ember.StateManager.create({
- initialState: 'stateOne.substateOne.subsubstateOne',
- stateOne: Ember.State.create({
- substateOne: Ember.State.create({
- anAction: function(manager, context){
- console.log("an action was called")
- },
- subsubstateOne: Ember.State.create({})
- })
- })
- })
-
- managerA.get('currentState.name') // 'subsubstateOne'
- managerA.send('anAction')
- // 'stateOne.substateOne.subsubstateOne' has no anAction method
- // so the 'anAction' method of 'stateOne.substateOne' is called
- // and logs "an action was called"
- // with managerA as the first argument
- // and no second argument
-
- someObject = {}
- managerA.send('anAction', someObject)
- // the 'anAction' method of 'stateOne.substateOne' is called again
- // with managerA as the first argument and
- // someObject as the second argument.
-
-
- If the StateManager attempts to send an action but does not find an appropriately named
- method in the current state or while moving upwards through the state hierarchy
- it will throw a new Ember.Error. Action detection only moves upwards through the state hierarchy
- from the current state. It does not search in other portions of the hierarchy.
-
- managerB = Ember.StateManager.create({
- initialState: 'stateOne.substateOne.subsubstateOne',
- stateOne: Ember.State.create({
- substateOne: Ember.State.create({
- subsubstateOne: Ember.State.create({})
- })
- }),
- stateTwo: Ember.State.create({
- anAction: function(manager, context){
- // will not be called below because it is
- // not a parent of the current state
- }
- })
- })
-
- managerB.get('currentState.name') // 'subsubstateOne'
- managerB.send('anAction')
- // Error: <Ember.StateManager:ember132> could not
- // respond to event anAction in state stateOne.substateOne.subsubstateOne.
-
- Inside of an action method the given state should delegate `transitionTo` calls on its
- StateManager.
-
- robotManager = Ember.StateManager.create({
- initialState: 'poweredDown.charging',
- poweredDown: Ember.State.create({
- charging: Ember.State.create({
- chargeComplete: function(manager, context){
- manager.transitionTo('charged')
- }
- }),
- charged: Ember.State.create({
- boot: function(manager, context){
- manager.transitionTo('poweredUp')
- }
- })
- }),
- poweredUp: Ember.State.create({
- beginExtermination: function(manager, context){
- manager.transitionTo('rampaging')
- },
- rampaging: Ember.State.create()
- })
- })
-
- robotManager.get('currentState.name') // 'charging'
- robotManager.send('boot') // throws error, no boot action
- // in current hierarchy
- robotManager.get('currentState.name') // remains 'charging'
-
- robotManager.send('beginExtermination') // throws error, no beginExtermination
- // action in current hierarchy
- robotManager.get('currentState.name') // remains 'charging'
-
- robotManager.send('chargeComplete')
- robotManager.get('currentState.name') // 'charged'
-
- robotManager.send('boot')
- robotManager.get('currentState.name') // 'poweredUp'
-
- robotManager.send('beginExtermination', allHumans)
- robotManager.get('currentState.name') // 'rampaging'
-
- Transition actions can also be created using the `transitionTo` method of the Ember.State class. The
- following example StateManagers are equivalent:
-
- aManager = Ember.StateManager.create({
- stateOne: Ember.State.create({
- changeToStateTwo: Ember.State.transitionTo('stateTwo')
- }),
- stateTwo: Ember.State.create({})
- })
-
- bManager = Ember.StateManager.create({
- stateOne: Ember.State.create({
- changeToStateTwo: function(manager, context){
- manager.transitionTo('stateTwo', context)
- }
- }),
- stateTwo: Ember.State.create({})
- })
-**/
-Ember.StateManager = Ember.State.extend(
-/** @scope Ember.StateManager.prototype */ {
-
- /**
- When creating a new statemanager, look for a default state to transition
- into. This state can either be named `start`, or can be specified using the
- `initialState` property.
- */
- init: function() {
- this._super();
-
- set(this, 'stateMeta', Ember.Map.create());
-
- var initialState = get(this, 'initialState');
-
- if (!initialState && get(this, 'states.start')) {
- initialState = 'start';
- }
-
- if (initialState) {
- this.transitionTo(initialState);
- Ember.assert('Failed to transition to initial state "' + initialState + '"', !!get(this, 'currentState'));
- }
- },
-
- stateMetaFor: function(state) {
- var meta = get(this, 'stateMeta'),
- stateMeta = meta.get(state);
-
- if (!stateMeta) {
- stateMeta = {};
- meta.set(state, stateMeta);
- }
-
- return stateMeta;
- },
-
- setStateMeta: function(state, key, value) {
- return set(this.stateMetaFor(state), key, value);
- },
-
- getStateMeta: function(state, key) {
- return get(this.stateMetaFor(state), key);
- },
-
- /**
- The current state from among the manager's possible states. This property should
- not be set directly. Use `transitionTo` to move between states by name.
-
- @type Ember.State
- @readOnly
- */
- currentState: null,
-
- /**
- The name of transitionEvent that this stateManager will dispatch
-
- @property {String}
- @default 'setup'
- */
- transitionEvent: 'setup',
-
- /**
- If set to true, `errorOnUnhandledEvents` will cause an exception to be
- raised if you attempt to send an event to a state manager that is not
- handled by the current state or any of its parent states.
-
- @type Boolean
- @default true
- */
- errorOnUnhandledEvent: true,
-
- send: function(event, context) {
- Ember.assert('Cannot send event "' + event + '" while currentState is ' + get(this, 'currentState'), get(this, 'currentState'));
- return this.sendRecursively(event, get(this, 'currentState'), context);
- },
-
- sendRecursively: function(event, currentState, context) {
- var log = this.enableLogging,
- action = currentState[event];
-
- // Test to see if the action is a method that
- // can be invoked. Don't blindly check just for
- // existence, because it is possible the state
- // manager has a child state of the given name,
- // and we should still raise an exception in that
- // case.
- if (typeof action === 'function') {
- if (log) { Ember.Logger.log(fmt("STATEMANAGER: Sending event '%@' to state %@.", [event, get(currentState, 'path')])); }
- return action.call(currentState, this, context);
- } else {
- var parentState = get(currentState, 'parentState');
- if (parentState) {
- return this.sendRecursively(event, parentState, context);
- } else if (get(this, 'errorOnUnhandledEvent')) {
- throw new Ember.Error(this.toString() + " could not respond to event " + event + " in state " + get(this, 'currentState.path') + ".");
- }
- }
- },
-
- /**
- Finds a state by its state path.
-
- Example:
-
- manager = Ember.StateManager.create({
- root: Ember.State.create({
- dashboard: Ember.State.create()
- })
- });
-
- manager.getStateByPath(manager, "root.dashboard")
-
- // returns the dashboard state
-
- @param {Ember.State} root the state to start searching from
- @param {String} path the state path to follow
- @returns {Ember.State} the state at the end of the path
- */
- getStateByPath: function(root, path) {
- var parts = path.split('.'),
- state = root;
-
- for (var i=0, l=parts.length; i<l; i++) {
- state = get(get(state, 'states'), parts[i]);
- if (!state) { break; }
- }
-
- return state;
- },
-
- findStateByPath: function(state, path) {
- var possible;
-
- while (!possible && state) {
- possible = this.getStateByPath(state, path);
- state = get(state, 'parentState');
- }
-
- return possible;
- },
-
- /**
- @private
-
- A state stores its child states in its `states` hash.
- This code takes a path like `posts.show` and looks
- up `origin.states.posts.states.show`.
-
- It returns a list of all of the states from the
- origin, which is the list of states to call `enter`
- on.
- */
- findStatesByPath: function(origin, path) {
- if (!path || path === "") { return undefined; }
- var r = path.split('.'),
- ret = [];
-
- for (var i=0, len = r.length; i < len; i++) {
- var states = get(origin, 'states');
-
- if (!states) { return undefined; }
-
- var s = get(states, r[i]);
- if (s) { origin = s; ret.push(s); }
- else { return undefined; }
- }
-
- return ret;
- },
-
- goToState: function() {
- // not deprecating this yet so people don't constantly need to
- // make trivial changes for little reason.
- return this.transitionTo.apply(this, arguments);
- },
-
- transitionTo: function(path, context) {
- // XXX When is transitionTo called with no path
- if (Ember.empty(path)) { return; }
-
- // The ES6 signature of this function is `path, ...contexts`
- var contexts = context ? Array.prototype.slice.call(arguments, 1) : [],
- currentState = get(this, 'currentState') || this;
-
- // First, get the enter, exit and resolve states for the current state
- // and specified path. If possible, use an existing cache.
- var hash = this.contextFreeTransition(currentState, path);
-
- // Next, process the raw state information for the contexts passed in.
- var transition = new Transition(hash).normalize(this, contexts);
-
- this.enterState(transition);
- this.triggerSetupContext(transition);
- },
-
- contextFreeTransition: function(currentState, path) {
- var cache = currentState.pathsCache[path];
- if (cache) { return cache; }
-
- var enterStates = this.findStatesByPath(currentState, path),
- exitStates = [],
- resolveState = currentState;
-
- // Walk up the states. For each state, check whether a state matching
- // the `path` is nested underneath. This will find the closest
- // parent state containing `path`.
- //
- // This allows the user to pass in a relative path. For example, for
- // the following state hierarchy:
- //
- // | |root
- // | |- posts
- // | | |- show (* current)
- // | |- comments
- // | | |- show
- //
- // If the current state is `<root.posts.show>`, an attempt to
- // transition to `comments.show` will match `<root.comments.show>`.
- //
- // First, this code will look for root.posts.show.comments.show.
- // Next, it will look for root.posts.comments.show. Finally,
- // it will look for `root.comments.show`, and find the state.
- //
- // After this process, the following variables will exist:
- //
- // * resolveState: a common parent state between the current
- // and target state. In the above example, `<root>` is the
- // `resolveState`.
- // * enterStates: a list of all of the states represented
- // by the path from the `resolveState`. For example, for
- // the path `root.comments.show`, `enterStates` would have
- // `[<root.comments>, <root.comments.show>]`
- // * exitStates: a list of all of the states from the
- // `resolveState` to the `currentState`. In the above
- // example, `exitStates` would have
- // `[<root.posts>`, `<root.posts.show>]`.
- while (resolveState && !enterStates) {
- exitStates.unshift(resolveState);
-
- resolveState = get(resolveState, 'parentState');
- if (!resolveState) {
- enterStates = this.findStatesByPath(this, path);
- if (!enterStates) {
- Ember.assert('Could not find state for path: "'+path+'"');
- return;
- }
- }
- enterStates = this.findStatesByPath(resolveState, path);
- }
-
- // If the path contains some states that are parents of both the
- // current state and the target state, remove them.
- //
- // For example, in the following hierarchy:
- //
- // |- root
- // | |- post
- // | | |- index (* current)
- // | | |- show
- //
- // If the `path` is `root.post.show`, the three variables will
- // be:
- //
- // * resolveState: `<state manager>`
- // * enterStates: `[<root>, <root.post>, <root.post.show>]`
- // * exitStates: `[<root>, <root.post>, <root.post.index>]`
- //
- // The goal of this code is to remove the common states, so we
- // have:
- //
- // * resolveState: `<root.post>`
- // * enterStates: `[<root.post.show>]`
- // * exitStates: `[<root.post.index>]`
- //
- // This avoid unnecessary calls to the enter and exit transitions.
- while (enterStates.length > 0 && enterStates[0] === exitStates[0]) {
- resolveState = enterStates.shift();
- exitStates.shift();
- }
-
- // Cache the enterStates, exitStates, and resolveState for the
- // current state and the `path`.
- var transitions = currentState.pathsCache[path] = {
- exitStates: exitStates,
- enterStates: enterStates,
- resolveState: resolveState
- };
-
- return transitions;
- },
-
- triggerSetupContext: function(transitions) {
- var contexts = transitions.contexts,
- offset = transitions.enterStates.length - contexts.length,
- enterStates = transitions.enterStates,
- transitionEvent = get(this, 'transitionEvent');
-
- Ember.assert("More contexts provided than states", offset >= 0);
-
- arrayForEach.call(enterStates, function(state, idx) {
- state.trigger(transitionEvent, this, contexts[idx-offset]);
- }, this);
- },
-
- getState: function(name) {
- var state = get(this, name),
- parentState = get(this, 'parentState');
-
- if (state) {
- return state;
- } else if (parentState) {
- return parentState.getState(name);
- }
- },
-
- enterState: function(transition) {
- var log = this.enableLogging;
-
- var exitStates = transition.exitStates.slice(0).reverse();
- arrayForEach.call(exitStates, function(state) {
- state.trigger('exit', this);
- }, this);
-
- arrayForEach.call(transition.enterStates, function(state) {
- if (log) { Ember.Logger.log("STATEMANAGER: Entering " + get(state, 'path')); }
- state.trigger('enter', this);
- }, this);
-
- set(this, 'currentState', transition.finalState);
- }
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Statecharts
-// Copyright: ©2011 Living Social Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-(function() {
-var get = Ember.get;
-
-Ember._ResolvedState = Ember.Object.extend({
- manager: null,
- state: null,
- match: null,
-
- object: Ember.computed(function(key, value) {
- if (arguments.length === 2) {
- this._object = value;
- return value;
- } else {
- if (this._object) {
- return this._object;
- } else {
- var state = get(this, 'state'),
- match = get(this, 'match'),
- manager = get(this, 'manager');
- return state.deserialize(manager, match.hash);
- }
- }
- }).property(),
-
- hasPromise: Ember.computed(function() {
- return Ember.canInvoke(get(this, 'object'), 'then');
- }).property('object'),
-
- promise: Ember.computed(function() {
- var object = get(this, 'object');
- if (Ember.canInvoke(object, 'then')) {
- return object;
- } else {
- return {
- then: function(success) { success(object); }
- };
- }
- }).property('object'),
-
- transition: function() {
- var manager = get(this, 'manager'),
- path = get(this, 'state.path'),
- object = get(this, 'object');
- manager.transitionTo(path, object);
- }
-});
-
-})();
-
-
-
-(function() {
-var get = Ember.get;
-
-// The Ember Routable mixin assumes the existance of a simple
-// routing shim that supports the following three behaviors:
-//
-// * .getURL() - this is called when the page loads
-// * .setURL(newURL) - this is called from within the state
-// manager when the state changes to a routable state
-// * .onURLChange(callback) - this happens when the user presses
-// the back or forward button
-
-var paramForClass = function(classObject) {
- var className = classObject.toString(),
- parts = className.split("."),
- last = parts[parts.length - 1];
-
- return Ember.String.underscore(last) + "_id";
-};
-
-var merge = function(original, hash) {
- for (var prop in hash) {
- if (!hash.hasOwnProperty(prop)) { continue; }
- if (original.hasOwnProperty(prop)) { continue; }
-
- original[prop] = hash[prop];
- }
-};
-
-/**
- @class
- @extends Ember.Mixin
-*/
-Ember.Routable = Ember.Mixin.create({
- init: function() {
- var redirection;
- this.on('connectOutlets', this, this.stashContext);
-
- if (redirection = get(this, 'redirectsTo')) {
- Ember.assert("You cannot use `redirectsTo` if you already have a `connectOutlets` method", this.connectOutlets === Ember.K);
-
- this.connectOutlets = function(router) {
- router.transitionTo(redirection);
- };
- }
-
- // normalize empty route to '/'
- var route = get(this, 'route');
- if (route === '') {
- route = '/';
- }
-
- this._super();
-
- Ember.assert("You cannot use `redirectsTo` on a state that has child states", !redirection || (!!redirection && !!get(this, 'isLeaf')));
- },
-
- /**
- @private
-
- Whenever a routable state is entered, the context it was entered with
- is stashed so that we can regenerate the state's `absoluteURL` on
- demand.
- */
- stashContext: function(manager, context) {
- var serialized = this.serialize(manager, context);
- Ember.assert('serialize must return a hash', !serialized || typeof serialized === 'object');
-
- manager.setStateMeta(this, 'context', context);
- manager.setStateMeta(this, 'serialized', serialized);
-
- if (get(this, 'isRoutable') && !get(manager, 'isRouting')) {
- this.updateRoute(manager, get(manager, 'location'));
- }
- },
-
- /**
- @private
-
- Whenever a routable state is entered, the router's location object
- is notified to set the URL to the current absolute path.
-
- In general, this will update the browser's URL.
- */
- updateRoute: function(manager, location) {
- if (get(this, 'isLeafRoute')) {
- var path = this.absoluteRoute(manager);
- location.setURL(path);
- }
- },
-
- /**
- @private
-
- Get the absolute route for the current state and a given
- hash.
-
- This method is private, as it expects a serialized hash,
- not the original context object.
- */
- absoluteRoute: function(manager, hash) {
- var parentState = get(this, 'parentState');
- var path = '', generated;
-
- // If the parent state is routable, use its current path
- // as this route's prefix.
- if (get(parentState, 'isRoutable')) {
- path = parentState.absoluteRoute(manager, hash);
- }
-
- var matcher = get(this, 'routeMatcher'),
- serialized = manager.getStateMeta(this, 'serialized');
-
- // merge the existing serialized object in with the passed
- // in hash.
- hash = hash || {};
- merge(hash, serialized);
-
- generated = matcher && matcher.generate(hash);
-
- if (generated) {
- path = path + '/' + generated;
- }
-
- return path;
- },
-
- /**
- @private
-
- At the moment, a state is routable if it has a string `route`
- property. This heuristic may change.
- */
- isRoutable: Ember.computed(function() {
- return typeof get(this, 'route') === 'string';
- }).cacheable(),
-
- /**
- @private
-
- Determine if this is the last routeable state
- */
- isLeafRoute: Ember.computed(function() {
- if (get(this, 'isLeaf')) { return true; }
- return !get(this, 'childStates').findProperty('isRoutable');
- }).cacheable(),
-
- /**
- @private
-
- A _RouteMatcher object generated from the current route's `route`
- string property.
- */
- routeMatcher: Ember.computed(function() {
- var route = get(this, 'route');
- if (route) {
- return Ember._RouteMatcher.create({ route: route });
- }
- }).cacheable(),
-
- /**
- @private
-
- Check whether the route has dynamic segments and therefore takes
- a context.
- */
- hasContext: Ember.computed(function() {
- var routeMatcher = get(this, 'routeMatcher');
- if (routeMatcher) {
- return routeMatcher.identifiers.length > 0;
- }
- }).cacheable(),
-
- /**
- @private
-
- The model class associated with the current state. This property
- uses the `modelType` property, in order to allow it to be
- specified as a String.
- */
- modelClass: Ember.computed(function() {
- var modelType = get(this, 'modelType');
-
- if (typeof modelType === 'string') {
- return Ember.get(window, modelType);
- } else {
- return modelType;
- }
- }).cacheable(),
-
- /**
- @private
-
- Get the model class for the state. The heuristic is:
-
- * The state must have a single dynamic segment
- * The dynamic segment must end in `_id`
- * A dynamic segment like `blog_post_id` is converted into `BlogPost`
- * The name is then looked up on the passed in namespace
-
- The process of initializing an application with a router will
- pass the application's namespace into the router, which will be
- used here.
- */
- modelClassFor: function(namespace) {
- var modelClass, routeMatcher, identifiers, match, className;
-
- // if an explicit modelType was specified, use that
- if (modelClass = get(this, 'modelClass')) { return modelClass; }
-
- // if the router has no lookup namespace, we won't be able to guess
- // the modelType
- if (!namespace) { return; }
-
- // make sure this state is actually a routable state
- routeMatcher = get(this, 'routeMatcher');
- if (!routeMatcher) { return; }
-
- // only guess modelType for states with a single dynamic segment
- // (no more, no fewer)
- identifiers = routeMatcher.identifiers;
- if (identifiers.length !== 2) { return; }
-
- // extract the `_id` from the end of the dynamic segment; if the
- // dynamic segment does not end in `_id`, we can't guess the
- // modelType
- match = identifiers[1].match(/^(.*)_id$/);
- if (!match) { return; }
-
- // convert the underscored type into a class form and look it up
- // on the router's namespace
- className = Ember.String.classify(match[1]);
- return get(namespace, className);
- },
-
- /**
- The default method that takes a `params` object and converts
- it into an object.
-
- By default, a params hash that looks like `{ post_id: 1 }`
- will be looked up as `namespace.Post.find(1)`. This is
- designed to work seamlessly with Ember Data, but will work
- fine with any class that has a `find` method.
- */
- deserialize: function(manager, params) {
- var modelClass, routeMatcher, param;
-
- if (modelClass = this.modelClassFor(get(manager, 'namespace'))) {
- Ember.assert("Expected "+modelClass.toString()+" to implement `find` for use in '"+this.get('path')+"' `deserialize`. Please implement the `find` method or overwrite `deserialize`.", modelClass.find);
- return modelClass.find(params[paramForClass(modelClass)]);
- }
-
- return params;
- },
-
- /**
- The default method that takes an object and converts it into
- a params hash.
-
- By default, if there is a single dynamic segment named
- `blog_post_id` and the object is a `BlogPost` with an
- `id` of `12`, the serialize method will produce:
-
- { blog_post_id: 12 }
- */
- serialize: function(manager, context) {
- var modelClass, routeMatcher, namespace, param, id;
-
- if (Ember.empty(context)) { return ''; }
-
- if (modelClass = this.modelClassFor(get(manager, 'namespace'))) {
- param = paramForClass(modelClass);
- id = get(context, 'id');
- context = {};
- context[param] = id;
- }
-
- return context;
- },
-
- /**
- @private
- */
- resolvePath: function(manager, path) {
- if (get(this, 'isLeafRoute')) { return Ember.A(); }
-
- var childStates = get(this, 'childStates'), match;
-
- childStates = Ember.A(childStates.filterProperty('isRoutable'));
-
- childStates = childStates.sort(function(a, b) {
- var aDynamicSegments = get(a, 'routeMatcher.identifiers.length'),
- bDynamicSegments = get(b, 'routeMatcher.identifiers.length'),
- aRoute = get(a, 'route'),
- bRoute = get(b, 'route');
-
- if (aRoute.indexOf(bRoute) === 0) {
- return -1;
- } else if (bRoute.indexOf(aRoute) === 0) {
- return 1;
- }
-
- if (aDynamicSegments !== bDynamicSegments) {
- return aDynamicSegments - bDynamicSegments;
- }
-
- return get(b, 'route.length') - get(a, 'route.length');
- });
-
- var state = childStates.find(function(state) {
- var matcher = get(state, 'routeMatcher');
- if (match = matcher.match(path)) { return true; }
- });
-
- Ember.assert("Could not find state for path " + path, !!state);
-
- var resolvedState = Ember._ResolvedState.create({
- manager: manager,
- state: state,
- match: match
- });
-
- var states = state.resolvePath(manager, match.remaining);
-
- return Ember.A([resolvedState]).pushObjects(states);
- },
-
- /**
- @private
-
- Once `unroute` has finished unwinding, `routePath` will be called
- with the remainder of the route.
-
- For example, if you were in the /posts/1/comments state, and you
- moved into the /posts/2/comments state, `routePath` will be called
- on the state whose path is `/posts` with the path `/2/comments`.
- */
- routePath: function(manager, path) {
- if (get(this, 'isLeafRoute')) { return; }
-
- var resolvedStates = this.resolvePath(manager, path),
- hasPromises = resolvedStates.some(function(s) { return get(s, 'hasPromise'); });
-
- function runTransition() {
- resolvedStates.forEach(function(rs) { rs.transition(); });
- }
-
- if (hasPromises) {
- manager.transitionTo('loading');
-
- Ember.assert('Loading state should be the child of a route', Ember.Routable.detect(get(manager, 'currentState.parentState')));
- Ember.assert('Loading state should not be a route', !Ember.Routable.detect(get(manager, 'currentState')));
-
- manager.handleStatePromises(resolvedStates, runTransition);
- } else {
- runTransition();
- }
- },
-
- /**
- @private
-
- When you move to a new route by pressing the back
- or forward button, this method is called first.
-
- Its job is to move the state manager into a parent
- state of the state it will eventually move into.
- */
- unroutePath: function(router, path) {
- var parentState = get(this, 'parentState');
-
- // If we're at the root state, we're done
- if (parentState === router) {
- return;
- }
-
- path = path.replace(/^(?=[^\/])/, "/");
- var absolutePath = this.absoluteRoute(router);
-
- var route = get(this, 'route');
-
- // If the current path is empty, move up one state,
- // because the index ('/') state must be a leaf node.
- if (route !== '/') {
- // If the current path is a prefix of the path we're trying
- // to go to, we're done.
- var index = path.indexOf(absolutePath),
- next = path.charAt(absolutePath.length);
-
- if (index === 0 && (next === "/" || next === "")) {
- return;
- }
- }
-
- // Transition to the parent and call unroute again.
- router.enterState({
- exitStates: [this],
- enterStates: [],
- finalState: parentState
- });
-
- router.send('unroutePath', path);
- },
-
- /**
- The `connectOutlets` event will be triggered once a
- state has been entered. It will be called with the
- route's context.
- */
- connectOutlets: Ember.K,
-
- /**
- The `navigateAway` event will be triggered when the
- URL changes due to the back/forward button
- */
- navigateAway: Ember.K
-});
-
-})();
-
-
-
-(function() {
-/**
- @class
- @extends Ember.Routable
-*/
-Ember.Route = Ember.State.extend(Ember.Routable);
-
-})();
-
-
-
-(function() {
-var escapeForRegex = function(text) {
- return text.replace(/[\-\[\]{}()*+?.,\\\^\$|#\s]/g, "\\$&");
-};
-
-Ember._RouteMatcher = Ember.Object.extend({
- state: null,
-
- init: function() {
- var route = this.route,
- identifiers = [],
- count = 1,
- escaped;
-
- // Strip off leading slash if present
- if (route.charAt(0) === '/') {
- route = this.route = route.substr(1);
- }
-
- escaped = escapeForRegex(route);
-
- var regex = escaped.replace(/:([a-z_]+)(?=$|\/)/gi, function(match, id) {
- identifiers[count++] = id;
- return "([^/]+)";
- });
-
- this.identifiers = identifiers;
- this.regex = new RegExp("^/?" + regex);
- },
-
- match: function(path) {
- var match = path.match(this.regex);
-
- if (match) {
- var identifiers = this.identifiers,
- hash = {};
-
- for (var i=1, l=identifiers.length; i<l; i++) {
- hash[identifiers[i]] = match[i];
- }
-
- return {
- remaining: path.substr(match[0].length),
- hash: identifiers.length > 0 ? hash : null
- };
- }
- },
-
- generate: function(hash) {
- var identifiers = this.identifiers, route = this.route, id;
- for (var i=1, l=identifiers.length; i<l; i++) {
- id = identifiers[i];
- route = route.replace(new RegExp(":" + id), hash[id]);
- }
- return route;
- }
-});
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set;
-
-var merge = function(original, hash) {
- for (var prop in hash) {
- if (!hash.hasOwnProperty(prop)) { continue; }
- if (original.hasOwnProperty(prop)) { continue; }
-
- original[prop] = hash[prop];
- }
-};
-
-/**
- @class
-
- `Ember.Router` is the subclass of `Ember.StateManager` responsible for providing URL-based
- application state detection. The `Ember.Router` instance of an application detects the browser URL
- at application load time and attempts to match it to a specific application state. Additionally
- the router will update the URL to reflect an application's state changes over time.
-
- ## Adding a Router Instance to Your Application
- An instance of Ember.Router can be associated with an instance of Ember.Application in one of two ways:
-
- You can provide a subclass of Ember.Router as the `Router` property of your application. An instance
- of this Router class will be instantiated and route detection will be enabled when the application's
- `initialize` method is called. The Router instance will be available as the `router` property
- of the application:
-
- App = Ember.Application.create({
- Router: Ember.Router.extend({ ... })
- });
-
- App.initialize();
- App.get('router') // an instance of App.Router
-
- If you want to define a Router instance elsewhere, you can pass the instance to the application's
- `initialize` method:
-
- App = Ember.Application.create();
- aRouter = Ember.Router.create({ ... });
-
- App.initialize(aRouter);
- App.get('router') // aRouter
-
- ## Adding Routes to a Router
- The `initialState` property of Ember.Router instances is named `root`. The state stored in this
- property must be a subclass of Ember.Route. The `root` route acts as the container for the
- set of routable states but is not routable itself. It should have states that are also subclasses
- of Ember.Route which each have a `route` property describing the URL pattern you would like to detect.
-
- App = Ember.Application.create({
- Router: Ember.Router.extend({
- root: Ember.Route.extend({
- index: Ember.Route.extend({
- route: '/'
- }),
- ... additional Ember.Routes ...
- })
- })
- });
- App.initialize();
-
-
- When an application loads, Ember will parse the URL and attempt to find an Ember.Route within
- the application's states that matches. (The example URL-matching below will use the default
- 'hash syntax' provided by `Ember.HashLocation`.)
-
- In the following route structure:
-
- App = Ember.Application.create({
- Router: Ember.Router.extend({
- root: Ember.Route.extend({
- aRoute: Ember.Route.extend({
- route: '/'
- }),
- bRoute: Ember.Route.extend({
- route: '/alphabeta'
- })
- })
- })
- });
- App.initialize();
-
- Loading the page at the URL '#/' will detect the route property of 'root.aRoute' ('/') and
- transition the router first to the state named 'root' and then to the substate 'aRoute'.
-
- Respectively, loading the page at the URL '#/alphabeta' would detect the route property of
- 'root.bRoute' ('/alphabeta') and transition the router first to the state named 'root' and
- then to the substate 'bRoute'.
-
- ## Adding Nested Routes to a Router
- Routes can contain nested subroutes each with their own `route` property describing the nested
- portion of the URL they would like to detect and handle. Router, like all instances of StateManager,
- cannot call `transitonTo` with an intermediary state. To avoid transitioning the Router into an
- intermediary state when detecting URLs, a Route with nested routes must define both a base `route`
- property for itself and a child Route with a `route` property of `'/'` which will be transitioned
- to when the base route is detected in the URL:
-
- Given the following application code:
-
- App = Ember.Application.create({
- Router: Ember.Router.extend({
- root: Ember.Route.extend({
- aRoute: Ember.Route.extend({
- route: '/theBaseRouteForThisSet',
-
- indexSubRoute: Ember.Route.extend({
- route: '/',
- }),
-
- subRouteOne: Ember.Route.extend({
- route: '/subroute1
- }),
-
- subRouteTwo: Ember.Route.extend({
- route: '/subRoute2'
- })
-
- })
- })
- })
- });
- App.initialize();
-
- When the application is loaded at '/theBaseRouteForThisSet' the Router will transition to the route
- at path 'root.aRoute' and then transition to state 'indexSubRoute'.
-
- When the application is loaded at '/theBaseRouteForThisSet/subRoute1' the Router will transition to
- the route at path 'root.aRoute' and then transition to state 'subRouteOne'.
-
- ## Route Transition Events
- Transitioning between Ember.Route instances (including the transition into the detected
- route when loading the application) triggers the same transition events as state transitions for
- base `Ember.State`s. However, the default `setup` transition event is named `connectOutlets` on
- Ember.Router instances (see 'Changing View Hierarchy in Response To State Change').
-
- The following route structure when loaded with the URL "#/"
-
- App = Ember.Application.create({
- Router: Ember.Router.extend({
- root: Ember.Route.extend({
- aRoute: Ember.Route.extend({
- route: '/',
- enter: function(router) {
- console.log("entering root.aRoute from", router.get('currentState.name'));
- },
- connectOutlets: function(router) {
- console.log("entered root.aRoute, fully transitioned to", router.get('currentState.path'));
- }
- })
- })
- })
- });
- App.initialize();
-
- Will result in console output of:
-
- 'entering root.aRoute from root'
- 'entered root.aRoute, fully transitioned to root.aRoute '
-
- Ember.Route has two additional callbacks for handling URL serialization and deserialization. See
- 'Serializing/Deserializing URLs'
-
- ## Routes With Dynamic Segments
- An Ember.Route's `route` property can reference dynamic sections of the URL by prefacing a URL segment
- with the ':' character. The values of these dynamic segments will be passed as a hash to the
- `deserialize` method of the matching Route (see 'Serializing/Deserializing URLs').
-
- ## Serializing/Deserializing URLs
- Ember.Route has two callbacks for associating a particular object context with a URL: `serialize`
- for converting an object into a parameters hash to fill dynamic segments of a URL and `deserialize`
- for converting a hash of dynamic segments from the URL into the appropriate object.
-
- ### Deserializing A URL's Dynamic Segments
- When an application is first loaded or the URL is changed manually (e.g. through the browser's
- back button) the `deserialize` method of the URL's matching Ember.Route will be called with
- the application's router as its first argument and a hash of the URLs dynamic segments and values
- as its second argument.
-
- The following route structure when loaded with the URL "#/fixed/thefirstvalue/anotherFixed/thesecondvalue":
-
- App = Ember.Application.create({
- Router: Ember.Router.extend({
- root: Ember.Route.extend({
- aRoute: Ember.Route.extend({
- route: '/fixed/:dynamicSectionA/anotherFixed/:dynamicSectionB',
- deserialize: function(router, params) {}
- })
- })
- })
- });
- App.initialize();
-
- Will call the 'deserialize' method of the Route instance at the path 'root.aRoute' with the
- following hash as its second argument:
-
- {
- dynamicSectionA: 'thefirstvalue',
- dynamicSectionB: 'thesecondvalue'
- }
-
- Within `deserialize` you should use this information to retrieve or create an appropriate context
- object for the given URL (e.g. by loading from a remote API or accessing the browser's
- `localStorage`). This object must be the `return` value of `deserialize` and will be
- passed to the Route's `connectOutlets` and `serialize` methods.
-
- When an application's state is changed from within the application itself, the context provided for
- the transition will be passed and `deserialize` is not called (see 'Transitions Between States').
-
- ### Serializing An Object For URLs with Dynamic Segments
- When transitioning into a Route whose `route` property contains dynamic segments the Route's
- `serialize` method is called with the Route's router as the first argument and the Route's
- context as the second argument. The return value of `serialize` will be use to populate the
- dynamic segments and should be a object with keys that match the names of the dynamic sections.
-
- Given the following route structure:
-
- App = Ember.Application.create({
- Router: Ember.Router.extend({
- root: Ember.Route.extend({
- aRoute: Ember.Route.extend({
- route: '/'
- }),
- bRoute: Ember.Route.extend({
- route: '/staticSection/:someDynamicSegment',
- serialize: function(router, context) {
- return {
- someDynamicSegment: context.get('name')
- }
- }
- })
- })
- })
- });
- App.initialize();
-
-
- Transitioning to "root.bRoute" with a context of `Object.create({name: 'Yehuda'})` will call
- the Route's `serialize` method with the context as its second argument and update the URL to
- '#/staticSection/Yehuda'.
-
- ## Transitions Between States
- Once a routed application has initialized its state based on the entry URL, subsequent transitions to other
- states will update the URL if the entered Route has a `route` property. Given the following route structure
- loaded at the URL '#/':
-
- App = Ember.Application.create({
- Router: Ember.Router.extend({
- root: Ember.Route.extend({
- aRoute: Ember.Route.extend({
- route: '/',
- moveElsewhere: Ember.Route.transitionTo('bRoute')
- }),
- bRoute: Ember.Route.extend({
- route: '/someOtherLocation'
- })
- })
- })
- });
- App.initialize();
-
- And application code:
-
- App.get('router').send('moveElsewhere');
-
- Will transition the application's state to 'root.bRoute' and trigger an update of the URL to
- '#/someOtherLocation'.
-
- For URL patterns with dynamic segments a context can be supplied as the second argument to `send`.
- The router will match dynamic segments names to keys on this object and fill in the URL with the
- supplied values. Given the following state structure loaded at the URL '#/':
-
- App = Ember.Application.create({
- Router: Ember.Router.extend({
- root: Ember.Route.extend({
- aRoute: Ember.Route.extend({
- route: '/',
- moveElsewhere: Ember.Route.transitionTo('bRoute')
- }),
- bRoute: Ember.Route.extend({
- route: '/a/route/:dynamicSection/:anotherDynamicSection',
- connectOutlets: function(router, context) {},
- })
- })
- })
- });
- App.initialize();
-
- And application code:
-
- App.get('router').send('moveElsewhere', {
- dynamicSection: '42',
- anotherDynamicSection: 'Life'
- });
-
- Will transition the application's state to 'root.bRoute' and trigger an update of the URL to
- '#/a/route/42/Life'.
-
- The context argument will also be passed as the second argument to the `serialize` method call.
-
- ## Injection of Controller Singletons
- During application initialization Ember will detect properties of the application ending in 'Controller',
- create singleton instances of each class, and assign them as a properties on the router. The property name
- will be the UpperCamel name converted to lowerCamel format. These controller classes should be subclasses
- of Ember.ObjectController, Ember.ArrayController, Ember.Controller, or a custom Ember.Object that includes the
- Ember.ControllerMixin mixin.
-
- App = Ember.Application.create({
- FooController: Ember.Object.create(Ember.ControllerMixin),
- Router: Ember.Router.extend({ ... })
- });
-
- App.get('router.fooController'); // instance of App.FooController
-
- The controller singletons will have their `namespace` property set to the application and their `target`
- property set to the application's router singleton for easy integration with Ember's user event system.
- See 'Changing View Hierarchy in Response To State Change' and 'Responding to User-initiated Events'
-
- ## Responding to User-initiated Events
- Controller instances injected into the router at application initialization have their `target` property
- set to the application's router instance. These controllers will also be the default `context` for their
- associated views. Uses of the `{{action}}` helper will automatically target the application's router.
-
- Given the following application entered at the URL '#/':
-
- App = Ember.Application.create({
- Router: Ember.Router.extend({
- root: Ember.Route.extend({
- aRoute: Ember.Route.extend({
- route: '/',
- anActionOnTheRouter: function(router, context) {
- router.transitionTo('anotherState', context);
- }
- })
- anotherState: Ember.Route.extend({
- route: '/differentUrl',
- connectOutlets: function(router, context) {
-
- }
- })
- })
- })
- });
- App.initialize();
-
- The following template:
-
- <script type="text/x-handlebars" data-template-name="aView">
- <h1><a {{action anActionOnTheRouter}}>{{title}}</a></h1>
- </script>
-
- Will delegate `click` events on the rendered `h1` to the application's router instance. In this case the
- `anActionOnTheRouter` method of the state at 'root.aRoute' will be called with the view's controller
- as the context argument. This context will be passed to the `connectOutlets` as its second argument.
-
- Different `context` can be supplied from within the `{{action}}` helper, allowing specific context passing
- between application states:
-
- <script type="text/x-handlebars" data-template-name="photos">
- {{#each photo in controller}}
- <h1><a {{action showPhoto photo}}>{{title}}</a></h1>
- {{/each}}
- </script>
-
- See Handlebars.helpers.action for additional usage examples.
-
-
- ## Changing View Hierarchy in Response To State Change
- Changes in application state that change the URL should be accompanied by associated changes in view
- hierarchy. This can be accomplished by calling 'connectOutlet' on the injected controller singletons from
- within the 'connectOutlets' event of an Ember.Route:
-
- App = Ember.Application.create({
- OneController: Ember.ObjectController.extend(),
- OneView: Ember.View.extend(),
-
- AnotherController: Ember.ObjectController.extend(),
- AnotherView: Ember.View.extend(),
-
- Router: Ember.Router.extend({
- root: Ember.Route.extend({
- aRoute: Ember.Route.extend({
- route: '/',
- connectOutlets: function(router, context) {
- router.get('oneController').connectOutlet('another');
- },
- })
- })
- })
- });
- App.initialize();
-
-
- This will detect the '{{outlet}}' portion of `oneController`'s view (an instance of `App.OneView`) and
- fill it with a rendered instance of `App.AnotherView` whose `context` will be the single instance of
- `App.AnotherController` stored on the router in the `anotherController` property.
-
- For more information about Outlets, see `Ember.Handlebars.helpers.outlet`. For additional information on
- the `connectOutlet` method, see `Ember.Controller.connectOutlet`. For more information on
- controller injections, see `Ember.Application#initialize()`. For additional information about view context,
- see `Ember.View`.
-
- @extends Ember.StateManager
-*/
-Ember.Router = Ember.StateManager.extend(
-/** @scope Ember.Router.prototype */ {
-
- /**
- @property {String}
- @default 'root'
- */
- initialState: 'root',
-
- /**
- The `Ember.Location` implementation to be used to manage the application
- URL state. The following values are supported:
-
- * 'hash': Uses URL fragment identifiers (like #/blog/1) for routing.
- * 'none': Does not read or set the browser URL, but still allows for
- routing to happen. Useful for testing.
-
- @type String
- @default 'hash'
- */
- location: 'hash',
-
- /**
- This is only used when a history location is used so that applications that
- don't live at the root of the domain can append paths to their root.
-
- @type String
- @default '/'
- */
-
- rootURL: '/',
-
- /**
- On router, transitionEvent should be called connectOutlets
-
- @property {String}
- @default 'connectOutlets'
- */
- transitionEvent: 'connectOutlets',
-
- transitionTo: function() {
- this.abortRoutingPromises();
- this._super.apply(this, arguments);
- },
-
- route: function(path) {
- this.abortRoutingPromises();
-
- set(this, 'isRouting', true);
-
- var routableState;
-
- try {
- path = path.replace(/^(?=[^\/])/, "/");
-
- this.send('navigateAway');
- this.send('unroutePath', path);
-
- routableState = get(this, 'currentState');
- while (routableState && !routableState.get('isRoutable')) {
- routableState = get(routableState, 'parentState');
- }
- var currentURL = routableState ? routableState.absoluteRoute(this) : '';
- var rest = path.substr(currentURL.length);
-
- this.send('routePath', rest);
- } finally {
- set(this, 'isRouting', false);
- }
-
- routableState = get(this, 'currentState');
- while (routableState && !routableState.get('isRoutable')) {
- routableState = get(routableState, 'parentState');
- }
-
- if (routableState) {
- routableState.updateRoute(this, get(this, 'location'));
- }
- },
-
- urlFor: function(path, hash) {
- var currentState = get(this, 'currentState') || this,
- state = this.findStateByPath(currentState, path);
-
- Ember.assert(Ember.String.fmt("Could not find route with path '%@'", [path]), !!state);
- Ember.assert("To get a URL for a state, it must have a `route` property.", !!get(state, 'routeMatcher'));
-
- var location = get(this, 'location'),
- absoluteRoute = state.absoluteRoute(this, hash);
-
- return location.formatURL(absoluteRoute);
- },
-
- urlForEvent: function(eventName) {
- var contexts = Array.prototype.slice.call(arguments, 1);
- var currentState = get(this, 'currentState');
- var targetStateName = currentState.lookupEventTransition(eventName);
-
- Ember.assert(Ember.String.fmt("You must specify a target state for event '%@' in order to link to it in the current state '%@'.", [eventName, get(currentState, 'path')]), !!targetStateName);
-
- var targetState = this.findStateByPath(currentState, targetStateName);
-
- Ember.assert("Your target state name " + targetStateName + " for event " + eventName + " did not resolve to a state", !!targetState);
-
- var hash = this.serializeRecursively(targetState, contexts, {});
-
- return this.urlFor(targetStateName, hash);
- },
-
- /** @private */
- serializeRecursively: function(state, contexts, hash) {
- var parentState,
- context = get(state, 'hasContext') ? contexts.pop() : null;
- merge(hash, state.serialize(this, context));
- parentState = state.get("parentState");
- if (parentState && parentState instanceof Ember.Route) {
- return this.serializeRecursively(parentState, contexts, hash);
- } else {
- return hash;
- }
- },
-
- abortRoutingPromises: function() {
- if (this._routingPromises) {
- this._routingPromises.abort();
- this._routingPromises = null;
- }
- },
-
- /**
- @private
- */
- handleStatePromises: function(states, complete) {
- this.abortRoutingPromises();
-
- this.set('isLocked', true);
-
- var manager = this;
-
- this._routingPromises = Ember._PromiseChain.create({
- promises: states.slice(),
-
- successCallback: function() {
- manager.set('isLocked', false);
- complete();
- },
-
- failureCallback: function() {
- throw "Unable to load object";
- },
-
- promiseSuccessCallback: function(item, args) {
- set(item, 'object', args[0]);
- },
-
- abortCallback: function() {
- manager.set('isLocked', false);
- }
- }).start();
- },
-
- /** @private */
- init: function() {
- this._super();
-
- var location = get(this, 'location'),
- rootURL = get(this, 'rootURL');
-
- if ('string' === typeof location) {
- set(this, 'location', Ember.Location.create({
- implementation: location,
- rootURL: rootURL
- }));
- }
- },
-
- /** @private */
- willDestroy: function() {
- get(this, 'location').destroy();
- }
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Routing
-// Copyright: ©2012 Tilde Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-(function() {
-var get = Ember.get;
-
-Ember.StateManager.reopen(
-/** @scope Ember.StateManager.prototype */ {
-
- /**
- If the current state is a view state or the descendent of a view state,
- this property will be the view associated with it. If there is no
- view state active in this state manager, this value will be null.
-
- @type Ember.View
- */
- currentView: Ember.computed(function() {
- var currentState = get(this, 'currentState'),
- view;
-
- while (currentState) {
- // TODO: Remove this when view state is removed
- if (get(currentState, 'isViewState')) {
- view = get(currentState, 'view');
- if (view) { return view; }
- }
-
- currentState = get(currentState, 'parentState');
- }
-
- return null;
- }).property('currentState').cacheable()
-
-});
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set;
-/**
- @class
- @deprecated
-
- Ember.ViewState extends Ember.State to control the presence of a childView within a
- container based on the current state of the ViewState's StateManager.
-
- ## Interactions with Ember's View System.
- When combined with instances of `Ember.StateManager`, ViewState is designed to
- interact with Ember's view system to control which views are added to
- and removed from the DOM based on the manager's current state.
-
- By default, a StateManager will manage views inside the 'body' element. This can be
- customized by setting the `rootElement` property to a CSS selector of an existing
- HTML element you would prefer to receive view rendering.
-
-
- viewStates = Ember.StateManager.create({
- rootElement: '#some-other-element'
- })
-
- You can also specify a particular instance of `Ember.ContainerView` you would like to receive
- view rendering by setting the `rootView` property. You will be responsible for placing
- this element into the DOM yourself.
-
- aLayoutView = Ember.ContainerView.create()
-
- // make sure this view instance is added to the browser
- aLayoutView.appendTo('body')
-
- App.viewStates = Ember.StateManager.create({
- rootView: aLayoutView
- })
-
-
- Once you have an instance of StateManager controlling a view, you can provide states
- that are instances of `Ember.ViewState`. When the StateManager enters a state
- that is an instance of `Ember.ViewState` that `ViewState`'s `view` property will be
- instantiated and inserted into the StateManager's `rootView` or `rootElement`.
- When a state is exited, the `ViewState`'s view will be removed from the StateManager's
- view.
-
- ContactListView = Ember.View.extend({
- classNames: ['my-contacts-css-class'],
- template: Ember.Handlebars.compile('<h2>People</h2>')
- })
-
- PhotoListView = Ember.View.extend({
- classNames: ['my-photos-css-class'],
- template: Ember.Handlebars.compile('<h2>Photos</h2>')
- })
-
- viewStates = Ember.StateManager.create({
- showingPeople: Ember.ViewState.create({
- view: ContactListView
- }),
- showingPhotos: Ember.ViewState.create({
- view: PhotoListView
- })
- })
-
- viewStates.transitionTo('showingPeople')
-
- The above code will change the rendered HTML from
-
- <body></body>
-
- to
-
- <body>
- <div id="ember1" class="ember-view my-contacts-css-class">
- <h2>People</h2>
- </div>
- </body>
-
- Changing the current state via `transitionTo` from `showingPeople` to
- `showingPhotos` will remove the `showingPeople` view and add the `showingPhotos` view:
-
- viewStates.transitionTo('showingPhotos')
-
- will change the rendered HTML to
-
- <body>
- <div id="ember2" class="ember-view my-photos-css-class">
- <h2>Photos</h2>
- </div>
- </body>
-
-
- When entering nested `ViewState`s, each state's view will be draw into the the StateManager's
- `rootView` or `rootElement` as siblings.
-
-
- ContactListView = Ember.View.extend({
- classNames: ['my-contacts-css-class'],
- template: Ember.Handlebars.compile('<h2>People</h2>')
- })
-
- EditAContactView = Ember.View.extend({
- classNames: ['editing-a-contact-css-class'],
- template: Ember.Handlebars.compile('Editing...')
- })
-
- viewStates = Ember.StateManager.create({
- showingPeople: Ember.ViewState.create({
- view: ContactListView,
-
- withEditingPanel: Ember.ViewState.create({
- view: EditAContactView
- })
- })
- })
-
-
- viewStates.transitionTo('showingPeople.withEditingPanel')
-
-
- Will result in the following rendered HTML:
-
- <body>
- <div id="ember2" class="ember-view my-contacts-css-class">
- <h2>People</h2>
- </div>
-
- <div id="ember2" class="ember-view editing-a-contact-css-class">
- Editing...
- </div>
- </body>
-
-
- ViewState views are added and removed from their StateManager's view via their
- `enter` and `exit` methods. If you need to override these methods, be sure to call
- `_super` to maintain the adding and removing behavior:
-
- viewStates = Ember.StateManager.create({
- aState: Ember.ViewState.create({
- view: Ember.View.extend({}),
- enter: function(manager){
- // calling _super ensures this view will be
- // properly inserted
- this._super(manager);
-
- // now you can do other things
- }
- })
- })
-
- ## Managing Multiple Sections of A Page With States
- Multiple StateManagers can be combined to control multiple areas of an application's rendered views.
- Given the following HTML body:
-
- <body>
- <div id='sidebar-nav'>
- </div>
- <div id='content-area'>
- </div>
- </body>
-
- You could separately manage view state for each section with two StateManagers
-
- navigationStates = Ember.StateManager.create({
- rootElement: '#sidebar-nav',
- userAuthenticated: Em.ViewState.create({
- view: Ember.View.extend({})
- }),
- userNotAuthenticated: Em.ViewState.create({
- view: Ember.View.extend({})
- })
- })
-
- contentStates = Ember.StateManager.create({
- rootElement: '#content-area',
- books: Em.ViewState.create({
- view: Ember.View.extend({})
- }),
- music: Em.ViewState.create({
- view: Ember.View.extend({})
- })
- })
-
-
- If you prefer to start with an empty body and manage state programmatically you
- can also take advantage of StateManager's `rootView` property and the ability of
- `Ember.ContainerView`s to manually manage their child views.
-
-
- dashboard = Ember.ContainerView.create({
- childViews: ['navigationAreaView', 'contentAreaView'],
- navigationAreaView: Ember.ContainerView.create({}),
- contentAreaView: Ember.ContainerView.create({})
- })
-
- navigationStates = Ember.StateManager.create({
- rootView: dashboard.get('navigationAreaView'),
- userAuthenticated: Em.ViewState.create({
- view: Ember.View.extend({})
- }),
- userNotAuthenticated: Em.ViewState.create({
- view: Ember.View.extend({})
- })
- })
-
- contentStates = Ember.StateManager.create({
- rootView: dashboard.get('contentAreaView'),
- books: Em.ViewState.create({
- view: Ember.View.extend({})
- }),
- music: Em.ViewState.create({
- view: Ember.View.extend({})
- })
- })
-
- dashboard.appendTo('body')
-
- ## User Manipulation of State via `{{action}}` Helpers
- The Handlebars `{{action}}` helper is StateManager-aware and will use StateManager action sending
- to connect user interaction to action-based state transitions.
-
- Given the following body and handlebars template
-
- <body>
- <script type='text/x-handlebars'>
- <a href="#" {{action "anAction" target="App.appStates"}}> Go </a>
- </script>
- </body>
-
- And application code
-
- App = Ember.Application.create()
- App.appStates = Ember.StateManager.create({
- initialState: 'aState',
- aState: Ember.State.create({
- anAction: function(manager, context){}
- }),
- bState: Ember.State.create({})
- })
-
- A user initiated click or touch event on "Go" will trigger the 'anAction' method of
- `App.appStates.aState` with `App.appStates` as the first argument and a
- `jQuery.Event` object as the second object. The `jQuery.Event` will include a property
- `view` that references the `Ember.View` object that was interacted with.
-
-**/
-Ember.ViewState = Ember.State.extend(
-/** @scope Ember.ViewState.prototype */ {
- isViewState: true,
-
- init: function() {
- Ember.deprecate("Ember.ViewState is deprecated and will be removed from future releases. Consider using the outlet pattern to display nested views instead. For more information, see http://emberjs.com/guides/outlets/.");
- return this._super();
- },
-
- enter: function(stateManager) {
- var view = get(this, 'view'), root, childViews;
-
- if (view) {
- if (Ember.View.detect(view)) {
- view = view.create();
- set(this, 'view', view);
- }
-
- Ember.assert('view must be an Ember.View', view instanceof Ember.View);
-
- root = stateManager.get('rootView');
-
- if (root) {
- childViews = get(root, 'childViews');
- childViews.pushObject(view);
- } else {
- root = stateManager.get('rootElement') || 'body';
- view.appendTo(root);
- }
- }
- },
-
- exit: function(stateManager) {
- var view = get(this, 'view');
-
- if (view) {
- // If the view has a parent view, then it is
- // part of a view hierarchy and should be removed
- // from its parent.
- if (get(view, 'parentView')) {
- view.removeFromParent();
- } else {
-
- // Otherwise, the view is a "root view" and
- // was appended directly to the DOM.
- view.remove();
- }
- }
- }
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Statecharts
-// Copyright: ©2011 Living Social Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-(function() {
-// ==========================================================================
-// Project: metamorph
-// Copyright: ©2011 My Company Inc. All rights reserved.
-// ==========================================================================
-
-(function(window) {
-
- var K = function(){},
- guid = 0,
- document = window.document,
-
- // Feature-detect the W3C range API, the extended check is for IE9 which only partially supports ranges
- supportsRange = ('createRange' in document) && (typeof Range !== 'undefined') && Range.prototype.createContextualFragment,
-
- // Internet Explorer prior to 9 does not allow setting innerHTML if the first element
- // is a "zero-scope" element. This problem can be worked around by making
- // the first node an invisible text node. We, like Modernizr, use &shy;
- needsShy = (function(){
- var testEl = document.createElement('div');
- testEl.innerHTML = "<div></div>";
- testEl.firstChild.innerHTML = "<script></script>";
- return testEl.firstChild.innerHTML === '';
- })();
-
- // Constructor that supports either Metamorph('foo') or new
- // Metamorph('foo');
- //
- // Takes a string of HTML as the argument.
-
- var Metamorph = function(html) {
- var self;
-
- if (this instanceof Metamorph) {
- self = this;
- } else {
- self = new K();
- }
-
- self.innerHTML = html;
- var myGuid = 'metamorph-'+(guid++);
- self.start = myGuid + '-start';
- self.end = myGuid + '-end';
-
- return self;
- };
-
- K.prototype = Metamorph.prototype;
-
- var rangeFor, htmlFunc, removeFunc, outerHTMLFunc, appendToFunc, afterFunc, prependFunc, startTagFunc, endTagFunc;
-
- outerHTMLFunc = function() {
- return this.startTag() + this.innerHTML + this.endTag();
- };
-
- startTagFunc = function() {
- return "<script id='" + this.start + "' type='text/x-placeholder'></script>";
- };
-
- endTagFunc = function() {
- return "<script id='" + this.end + "' type='text/x-placeholder'></script>";
- };
-
- // If we have the W3C range API, this process is relatively straight forward.
- if (supportsRange) {
-
- // Get a range for the current morph. Optionally include the starting and
- // ending placeholders.
- rangeFor = function(morph, outerToo) {
- var range = document.createRange();
- var before = document.getElementById(morph.start);
- var after = document.getElementById(morph.end);
-
- if (outerToo) {
- range.setStartBefore(before);
- range.setEndAfter(after);
- } else {
- range.setStartAfter(before);
- range.setEndBefore(after);
- }
-
- return range;
- };
-
- htmlFunc = function(html, outerToo) {
- // get a range for the current metamorph object
- var range = rangeFor(this, outerToo);
-
- // delete the contents of the range, which will be the
- // nodes between the starting and ending placeholder.
- range.deleteContents();
-
- // create a new document fragment for the HTML
- var fragment = range.createContextualFragment(html);
-
- // insert the fragment into the range
- range.insertNode(fragment);
- };
-
- removeFunc = function() {
- // get a range for the current metamorph object including
- // the starting and ending placeholders.
- var range = rangeFor(this, true);
-
- // delete the entire range.
- range.deleteContents();
- };
-
- appendToFunc = function(node) {
- var range = document.createRange();
- range.setStart(node);
- range.collapse(false);
- var frag = range.createContextualFragment(this.outerHTML());
- node.appendChild(frag);
- };
-
- afterFunc = function(html) {
- var range = document.createRange();
- var after = document.getElementById(this.end);
-
- range.setStartAfter(after);
- range.setEndAfter(after);
-
- var fragment = range.createContextualFragment(html);
- range.insertNode(fragment);
- };
-
- prependFunc = function(html) {
- var range = document.createRange();
- var start = document.getElementById(this.start);
-
- range.setStartAfter(start);
- range.setEndAfter(start);
-
- var fragment = range.createContextualFragment(html);
- range.insertNode(fragment);
- };
-
- } else {
- /**
- * This code is mostly taken from jQuery, with one exception. In jQuery's case, we
- * have some HTML and we need to figure out how to convert it into some nodes.
- *
- * In this case, jQuery needs to scan the HTML looking for an opening tag and use
- * that as the key for the wrap map. In our case, we know the parent node, and
- * can use its type as the key for the wrap map.
- **/
- var wrapMap = {
- select: [ 1, "<select multiple='multiple'>", "</select>" ],
- fieldset: [ 1, "<fieldset>", "</fieldset>" ],
- table: [ 1, "<table>", "</table>" ],
- tbody: [ 2, "<table><tbody>", "</tbody></table>" ],
- tr: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
- colgroup: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
- map: [ 1, "<map>", "</map>" ],
- _default: [ 0, "", "" ]
- };
-
- /**
- * Given a parent node and some HTML, generate a set of nodes. Return the first
- * node, which will allow us to traverse the rest using nextSibling.
- *
- * We need to do this because innerHTML in IE does not really parse the nodes.
- **/
- var firstNodeFor = function(parentNode, html) {
- var arr = wrapMap[parentNode.tagName.toLowerCase()] || wrapMap._default;
- var depth = arr[0], start = arr[1], end = arr[2];
-
- if (needsShy) { html = '&shy;'+html; }
-
- var element = document.createElement('div');
- element.innerHTML = start + html + end;
-
- for (var i=0; i<=depth; i++) {
- element = element.firstChild;
- }
-
- // Look for &shy; to remove it.
- if (needsShy) {
- var shyElement = element;
-
- // Sometimes we get nameless elements with the shy inside
- while (shyElement.nodeType === 1 && !shyElement.nodeName) {
- shyElement = shyElement.firstChild;
- }
-
- // At this point it's the actual unicode character.
- if (shyElement.nodeType === 3 && shyElement.nodeValue.charAt(0) === "\u00AD") {
- shyElement.nodeValue = shyElement.nodeValue.slice(1);
- }
- }
-
- return element;
- };
-
- /**
- * In some cases, Internet Explorer can create an anonymous node in
- * the hierarchy with no tagName. You can create this scenario via:
- *
- * div = document.createElement("div");
- * div.innerHTML = "<table>&shy<script></script><tr><td>hi</td></tr></table>";
- * div.firstChild.firstChild.tagName //=> ""
- *
- * If our script markers are inside such a node, we need to find that
- * node and use *it* as the marker.
- **/
- var realNode = function(start) {
- while (start.parentNode.tagName === "") {
- start = start.parentNode;
- }
-
- return start;
- };
-
- /**
- * When automatically adding a tbody, Internet Explorer inserts the
- * tbody immediately before the first <tr>. Other browsers create it
- * before the first node, no matter what.
- *
- * This means the the following code:
- *
- * div = document.createElement("div");
- * div.innerHTML = "<table><script id='first'></script><tr><td>hi</td></tr><script id='last'></script></table>
- *
- * Generates the following DOM in IE:
- *
- * + div
- * + table
- * - script id='first'
- * + tbody
- * + tr
- * + td
- * - "hi"
- * - script id='last'
- *
- * Which means that the two script tags, even though they were
- * inserted at the same point in the hierarchy in the original
- * HTML, now have different parents.
- *
- * This code reparents the first script tag by making it the tbody's
- * first child.
- **/
- var fixParentage = function(start, end) {
- if (start.parentNode !== end.parentNode) {
- end.parentNode.insertBefore(start, end.parentNode.firstChild);
- }
- };
-
- htmlFunc = function(html, outerToo) {
- // get the real starting node. see realNode for details.
- var start = realNode(document.getElementById(this.start));
- var end = document.getElementById(this.end);
- var parentNode = end.parentNode;
- var node, nextSibling, last;
-
- // make sure that the start and end nodes share the same
- // parent. If not, fix it.
- fixParentage(start, end);
-
- // remove all of the nodes after the starting placeholder and
- // before the ending placeholder.
- node = start.nextSibling;
- while (node) {
- nextSibling = node.nextSibling;
- last = node === end;
-
- // if this is the last node, and we want to remove it as well,
- // set the `end` node to the next sibling. This is because
- // for the rest of the function, we insert the new nodes
- // before the end (note that insertBefore(node, null) is
- // the same as appendChild(node)).
- //
- // if we do not want to remove it, just break.
- if (last) {
- if (outerToo) { end = node.nextSibling; } else { break; }
- }
-
- node.parentNode.removeChild(node);
-
- // if this is the last node and we didn't break before
- // (because we wanted to remove the outer nodes), break
- // now.
- if (last) { break; }
-
- node = nextSibling;
- }
-
- // get the first node for the HTML string, even in cases like
- // tables and lists where a simple innerHTML on a div would
- // swallow some of the content.
- node = firstNodeFor(start.parentNode, html);
-
- // copy the nodes for the HTML between the starting and ending
- // placeholder.
- while (node) {
- nextSibling = node.nextSibling;
- parentNode.insertBefore(node, end);
- node = nextSibling;
- }
- };
-
- // remove the nodes in the DOM representing this metamorph.
- //
- // this includes the starting and ending placeholders.
- removeFunc = function() {
- var start = realNode(document.getElementById(this.start));
- var end = document.getElementById(this.end);
-
- this.html('');
- start.parentNode.removeChild(start);
- end.parentNode.removeChild(end);
- };
-
- appendToFunc = function(parentNode) {
- var node = firstNodeFor(parentNode, this.outerHTML());
-
- while (node) {
- nextSibling = node.nextSibling;
- parentNode.appendChild(node);
- node = nextSibling;
- }
- };
-
- afterFunc = function(html) {
- // get the real starting node. see realNode for details.
- var end = document.getElementById(this.end);
- var insertBefore = end.nextSibling;
- var parentNode = end.parentNode;
- var nextSibling;
- var node;
-
- // get the first node for the HTML string, even in cases like
- // tables and lists where a simple innerHTML on a div would
- // swallow some of the content.
- node = firstNodeFor(parentNode, html);
-
- // copy the nodes for the HTML between the starting and ending
- // placeholder.
- while (node) {
- nextSibling = node.nextSibling;
- parentNode.insertBefore(node, insertBefore);
- node = nextSibling;
- }
- };
-
- prependFunc = function(html) {
- var start = document.getElementById(this.start);
- var parentNode = start.parentNode;
- var nextSibling;
- var node;
-
- node = firstNodeFor(parentNode, html);
- var insertBefore = start.nextSibling;
-
- while (node) {
- nextSibling = node.nextSibling;
- parentNode.insertBefore(node, insertBefore);
- node = nextSibling;
- }
- }
- }
-
- Metamorph.prototype.html = function(html) {
- this.checkRemoved();
- if (html === undefined) { return this.innerHTML; }
-
- htmlFunc.call(this, html);
-
- this.innerHTML = html;
- };
-
- Metamorph.prototype.replaceWith = function(html) {
- this.checkRemoved();
- htmlFunc.call(this, html, true);
- };
-
- Metamorph.prototype.remove = removeFunc;
- Metamorph.prototype.outerHTML = outerHTMLFunc;
- Metamorph.prototype.appendTo = appendToFunc;
- Metamorph.prototype.after = afterFunc;
- Metamorph.prototype.prepend = prependFunc;
- Metamorph.prototype.startTag = startTagFunc;
- Metamorph.prototype.endTag = endTagFunc;
-
- Metamorph.prototype.isRemoved = function() {
- var before = document.getElementById(this.start);
- var after = document.getElementById(this.end);
-
- return !before || !after;
- };
-
- Metamorph.prototype.checkRemoved = function() {
- if (this.isRemoved()) {
- throw new Error("Cannot perform operations on a Metamorph that is not in the DOM.");
- }
- };
-
- window.Metamorph = Metamorph;
-})(this);
-
-
-})();
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/*globals Handlebars */
-var objectCreate = Ember.create;
-
-/**
- @namespace
- @name Handlebars
- @private
-*/
-
-/**
- @namespace
- @name Handlebars.helpers
- @description Helpers for Handlebars templates
-*/
-
-Ember.assert("Ember Handlebars requires Handlebars 1.0.beta.5 or greater", window.Handlebars && window.Handlebars.VERSION.match(/^1\.0\.beta\.[56789]$|^1\.0\.rc\.[123456789]+/));
-
-/**
- @class
-
- Prepares the Handlebars templating library for use inside Ember's view
- system.
-
- The Ember.Handlebars object is the standard Handlebars library, extended to use
- Ember's get() method instead of direct property access, which allows
- computed properties to be used inside templates.
-
- To create an Ember.Handlebars template, call Ember.Handlebars.compile(). This will
- return a function that can be used by Ember.View for rendering.
-*/
-Ember.Handlebars = objectCreate(Handlebars);
-
-Ember.Handlebars.helpers = objectCreate(Handlebars.helpers);
-
-/**
- Override the the opcode compiler and JavaScript compiler for Handlebars.
- @private
-*/
-Ember.Handlebars.Compiler = function() {};
-Ember.Handlebars.Compiler.prototype = objectCreate(Handlebars.Compiler.prototype);
-Ember.Handlebars.Compiler.prototype.compiler = Ember.Handlebars.Compiler;
-
-/** @private */
-Ember.Handlebars.JavaScriptCompiler = function() {};
-Ember.Handlebars.JavaScriptCompiler.prototype = objectCreate(Handlebars.JavaScriptCompiler.prototype);
-Ember.Handlebars.JavaScriptCompiler.prototype.compiler = Ember.Handlebars.JavaScriptCompiler;
-Ember.Handlebars.JavaScriptCompiler.prototype.namespace = "Ember.Handlebars";
-
-
-Ember.Handlebars.JavaScriptCompiler.prototype.initializeBuffer = function() {
- return "''";
-};
-
-/**
- Override the default buffer for Ember Handlebars. By default, Handlebars creates
- an empty String at the beginning of each invocation and appends to it. Ember's
- Handlebars overrides this to append to a single shared buffer.
-
- @private
-*/
-Ember.Handlebars.JavaScriptCompiler.prototype.appendToBuffer = function(string) {
- return "data.buffer.push("+string+");";
-};
-
-/**
- Rewrite simple mustaches from {{foo}} to {{bind "foo"}}. This means that all simple
- mustaches in Ember's Handlebars will also set up an observer to keep the DOM
- up to date when the underlying property changes.
-
- @private
-*/
-Ember.Handlebars.Compiler.prototype.mustache = function(mustache) {
- if (mustache.params.length || mustache.hash) {
- return Handlebars.Compiler.prototype.mustache.call(this, mustache);
- } else {
- var id = new Handlebars.AST.IdNode(['_triageMustache']);
-
- // Update the mustache node to include a hash value indicating whether the original node
- // was escaped. This will allow us to properly escape values when the underlying value
- // changes and we need to re-render the value.
- if(!mustache.escaped) {
- mustache.hash = mustache.hash || new Handlebars.AST.HashNode([]);
- mustache.hash.pairs.push(["unescaped", new Handlebars.AST.StringNode("true")]);
- }
- mustache = new Handlebars.AST.MustacheNode([id].concat([mustache.id]), mustache.hash, !mustache.escaped);
- return Handlebars.Compiler.prototype.mustache.call(this, mustache);
- }
-};
-
-/**
- Used for precompilation of Ember Handlebars templates. This will not be used during normal
- app execution.
-
- @param {String} string The template to precompile
-*/
-Ember.Handlebars.precompile = function(string) {
- var ast = Handlebars.parse(string);
-
- var options = {
- knownHelpers: {
- action: true,
- unbound: true,
- bindAttr: true,
- template: true,
- view: true,
- _triageMustache: true
- },
- data: true,
- stringParams: true
- };
-
- var environment = new Ember.Handlebars.Compiler().compile(ast, options);
- return new Ember.Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true);
-};
-
-/**
- The entry point for Ember Handlebars. This replaces the default Handlebars.compile and turns on
- template-local data and String parameters.
-
- @param {String} string The template to compile
-*/
-Ember.Handlebars.compile = function(string) {
- var ast = Handlebars.parse(string);
- var options = { data: true, stringParams: true };
- var environment = new Ember.Handlebars.Compiler().compile(ast, options);
- var templateSpec = new Ember.Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true);
-
- return Handlebars.template(templateSpec);
-};
-
-/**
- If a path starts with a reserved keyword, returns the root
- that should be used.
-
- @private
-*/
-var normalizePath = Ember.Handlebars.normalizePath = function(root, path, data) {
- var keywords = (data && data.keywords) || {},
- keyword, isKeyword;
-
- // Get the first segment of the path. For example, if the
- // path is "foo.bar.baz", returns "foo".
- keyword = path.split('.', 1)[0];
-
- // Test to see if the first path is a keyword that has been
- // passed along in the view's data hash. If so, we will treat
- // that object as the new root.
- if (keywords.hasOwnProperty(keyword)) {
- // Look up the value in the template's data hash.
- root = keywords[keyword];
- isKeyword = true;
-
- // Handle cases where the entire path is the reserved
- // word. In that case, return the object itself.
- if (path === keyword) {
- path = '';
- } else {
- // Strip the keyword from the path and look up
- // the remainder from the newly found root.
- path = path.substr(keyword.length+1);
- }
- }
-
- return { root: root, path: path, isKeyword: isKeyword };
-};
-/**
- Lookup both on root and on window. If the path starts with
- a keyword, the corresponding object will be looked up in the
- template's data hash and used to resolve the path.
-
- @param {Object} root The object to look up the property on
- @param {String} path The path to be lookedup
- @param {Object} options The template's option hash
-*/
-
-Ember.Handlebars.getPath = function(root, path, options) {
- var data = options && options.data,
- normalizedPath = normalizePath(root, path, data),
- value;
-
- // In cases where the path begins with a keyword, change the
- // root to the value represented by that keyword, and ensure
- // the path is relative to it.
- root = normalizedPath.root;
- path = normalizedPath.path;
-
- value = Ember.get(root, path);
-
- if (value === undefined && root !== window && Ember.isGlobalPath(path)) {
- value = Ember.get(window, path);
- }
- return value;
-};
-
-/**
- Registers a helper in Handlebars that will be called if no property with the
- given name can be found on the current context object, and no helper with
- that name is registered.
-
- This throws an exception with a more helpful error message so the user can
- track down where the problem is happening.
-
- @name Handlebars.helpers.helperMissing
- @param {String} path
- @param {Hash} options
-*/
-Ember.Handlebars.registerHelper('helperMissing', function(path, options) {
- var error, view = "";
-
- error = "%@ Handlebars error: Could not find property '%@' on object %@.";
- if (options.data){
- view = options.data.view;
- }
- throw new Ember.Error(Ember.String.fmt(error, [view, path, this]));
-});
-
-
-})();
-
-
-
-(function() {
-
-Ember.String.htmlSafe = function(str) {
- return new Handlebars.SafeString(str);
-};
-
-var htmlSafe = Ember.String.htmlSafe;
-
-if (Ember.EXTEND_PROTOTYPES) {
-
- /**
- @see Ember.String.htmlSafe
- */
- String.prototype.htmlSafe = function() {
- return htmlSafe(this);
- };
-
-}
-
-})();
-
-
-
-(function() {
-/*jshint newcap:false*/
-var set = Ember.set, get = Ember.get;
-
-var DOMManager = {
- remove: function(view) {
- var morph = view.morph;
- if (morph.isRemoved()) { return; }
- set(view, 'element', null);
- view._lastInsert = null;
- morph.remove();
- },
-
- prepend: function(view, childView) {
- childView._insertElementLater(function() {
- var morph = view.morph;
- morph.prepend(childView.outerHTML);
- childView.outerHTML = null;
- });
- },
-
- after: function(view, nextView) {
- nextView._insertElementLater(function() {
- var morph = view.morph;
- morph.after(nextView.outerHTML);
- nextView.outerHTML = null;
- });
- },
-
- replace: function(view) {
- var morph = view.morph;
-
- view.transitionTo('preRender');
- view.clearRenderedChildren();
- var buffer = view.renderToBuffer();
-
- Ember.run.schedule('render', this, function() {
- if (get(view, 'isDestroyed')) { return; }
- view.invalidateRecursively('element');
- view._notifyWillInsertElement();
- morph.replaceWith(buffer.string());
- view.transitionTo('inDOM');
- view._notifyDidInsertElement();
- });
- },
-
- empty: function(view) {
- view.morph.html("");
- }
-};
-
-// The `morph` and `outerHTML` properties are internal only
-// and not observable.
-
-Ember._Metamorph = Ember.Mixin.create({
- isVirtual: true,
- tagName: '',
-
- init: function() {
- this._super();
- this.morph = Metamorph();
- },
-
- beforeRender: function(buffer) {
- buffer.push(this.morph.startTag());
- },
-
- afterRender: function(buffer) {
- buffer.push(this.morph.endTag());
- },
-
- createElement: function() {
- var buffer = this.renderToBuffer();
- this.outerHTML = buffer.string();
- this.clearBuffer();
- },
-
- domManager: DOMManager
-});
-
-Ember._MetamorphView = Ember.View.extend(Ember._Metamorph);
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/*globals Handlebars */
-
-var get = Ember.get, set = Ember.set, getPath = Ember.Handlebars.getPath;
-/**
- @ignore
- @private
- @class
-
- Ember._HandlebarsBoundView is a private view created by the Handlebars `{{bind}}`
- helpers that is used to keep track of bound properties.
-
- Every time a property is bound using a `{{mustache}}`, an anonymous subclass
- of Ember._HandlebarsBoundView is created with the appropriate sub-template and
- context set up. When the associated property changes, just the template for
- this view will re-render.
-*/
-Ember._HandlebarsBoundView = Ember._MetamorphView.extend({
-/** @scope Ember._HandlebarsBoundView.prototype */
-
- /**
- The function used to determine if the `displayTemplate` or
- `inverseTemplate` should be rendered. This should be a function that takes
- a value and returns a Boolean.
-
- @type Function
- @default null
- */
- shouldDisplayFunc: null,
-
- /**
- Whether the template rendered by this view gets passed the context object
- of its parent template, or gets passed the value of retrieving `path`
- from the `pathRoot`.
-
- For example, this is true when using the `{{#if}}` helper, because the
- template inside the helper should look up properties relative to the same
- object as outside the block. This would be false when used with `{{#with
- foo}}` because the template should receive the object found by evaluating
- `foo`.
-
- @type Boolean
- @default false
- */
- preserveContext: false,
-
- /**
- If `preserveContext` is true, this is the object that will be used
- to render the template.
-
- @type Object
- */
- previousContext: null,
-
- /**
- The template to render when `shouldDisplayFunc` evaluates to true.
-
- @type Function
- @default null
- */
- displayTemplate: null,
-
- /**
- The template to render when `shouldDisplayFunc` evaluates to false.
-
- @type Function
- @default null
- */
- inverseTemplate: null,
-
-
- /**
- The path to look up on `pathRoot` that is passed to
- `shouldDisplayFunc` to determine which template to render.
-
- In addition, if `preserveContext` is false, the object at this path will
- be passed to the template when rendering.
-
- @type String
- @default null
- */
- path: null,
-
- /**
- The object from which the `path` will be looked up. Sometimes this is the
- same as the `previousContext`, but in cases where this view has been generated
- for paths that start with a keyword such as `view` or `controller`, the
- path root will be that resolved object.
-
- @type Object
- */
- pathRoot: null,
-
- normalizedValue: Ember.computed(function() {
- var path = get(this, 'path'),
- pathRoot = get(this, 'pathRoot'),
- valueNormalizer = get(this, 'valueNormalizerFunc'),
- result, templateData;
-
- // Use the pathRoot as the result if no path is provided. This
- // happens if the path is `this`, which gets normalized into
- // a `pathRoot` of the current Handlebars context and a path
- // of `''`.
- if (path === '') {
- result = pathRoot;
- } else {
- templateData = get(this, 'templateData');
- result = getPath(pathRoot, path, { data: templateData });
- }
-
- return valueNormalizer ? valueNormalizer(result) : result;
- }).property('path', 'pathRoot', 'valueNormalizerFunc').volatile(),
-
- rerenderIfNeeded: function() {
- if (!get(this, 'isDestroyed') && get(this, 'normalizedValue') !== this._lastNormalizedValue) {
- this.rerender();
- }
- },
-
- /**
- Determines which template to invoke, sets up the correct state based on
- that logic, then invokes the default Ember.View `render` implementation.
-
- This method will first look up the `path` key on `pathRoot`,
- then pass that value to the `shouldDisplayFunc` function. If that returns
- true, the `displayTemplate` function will be rendered to DOM. Otherwise,
- `inverseTemplate`, if specified, will be rendered.
-
- For example, if this Ember._HandlebarsBoundView represented the {{#with foo}}
- helper, it would look up the `foo` property of its context, and
- `shouldDisplayFunc` would always return true. The object found by looking
- up `foo` would be passed to `displayTemplate`.
-
- @param {Ember.RenderBuffer} buffer
- */
- render: function(buffer) {
- // If not invoked via a triple-mustache ({{{foo}}}), escape
- // the content of the template.
- var escape = get(this, 'isEscaped');
-
- var shouldDisplay = get(this, 'shouldDisplayFunc'),
- preserveContext = get(this, 'preserveContext'),
- context = get(this, 'previousContext');
-
- var inverseTemplate = get(this, 'inverseTemplate'),
- displayTemplate = get(this, 'displayTemplate');
-
- var result = get(this, 'normalizedValue');
- this._lastNormalizedValue = result;
-
- // First, test the conditional to see if we should
- // render the template or not.
- if (shouldDisplay(result)) {
- set(this, 'template', displayTemplate);
-
- // If we are preserving the context (for example, if this
- // is an #if block, call the template with the same object.
- if (preserveContext) {
- set(this, '_context', context);
- } else {
- // Otherwise, determine if this is a block bind or not.
- // If so, pass the specified object to the template
- if (displayTemplate) {
- set(this, '_context', result);
- } else {
- // This is not a bind block, just push the result of the
- // expression to the render context and return.
- if (result === null || result === undefined) {
- result = "";
- } else if (!(result instanceof Handlebars.SafeString)) {
- result = String(result);
- }
-
- if (escape) { result = Handlebars.Utils.escapeExpression(result); }
- buffer.push(result);
- return;
- }
- }
- } else if (inverseTemplate) {
- set(this, 'template', inverseTemplate);
-
- if (preserveContext) {
- set(this, '_context', context);
- } else {
- set(this, '_context', result);
- }
- } else {
- set(this, 'template', function() { return ''; });
- }
-
- return this._super(buffer);
- }
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set, fmt = Ember.String.fmt;
-var getPath = Ember.Handlebars.getPath, normalizePath = Ember.Handlebars.normalizePath;
-var forEach = Ember.ArrayPolyfills.forEach;
-
-var EmberHandlebars = Ember.Handlebars, helpers = EmberHandlebars.helpers;
-
-// Binds a property into the DOM. This will create a hook in DOM that the
-// KVO system will look for and update if the property changes.
-/** @private */
-function bind(property, options, preserveContext, shouldDisplay, valueNormalizer) {
- var data = options.data,
- fn = options.fn,
- inverse = options.inverse,
- view = data.view,
- currentContext = this,
- pathRoot, path, normalized;
-
- normalized = normalizePath(currentContext, property, data);
-
- pathRoot = normalized.root;
- path = normalized.path;
-
- // Set up observers for observable objects
- if ('object' === typeof this) {
- // Create the view that will wrap the output of this template/property
- // and add it to the nearest view's childViews array.
- // See the documentation of Ember._HandlebarsBoundView for more.
- var bindView = view.createChildView(Ember._HandlebarsBoundView, {
- preserveContext: preserveContext,
- shouldDisplayFunc: shouldDisplay,
- valueNormalizerFunc: valueNormalizer,
- displayTemplate: fn,
- inverseTemplate: inverse,
- path: path,
- pathRoot: pathRoot,
- previousContext: currentContext,
- isEscaped: !options.hash.unescaped,
- templateData: options.data
- });
-
- view.appendChild(bindView);
-
- /** @private */
- var observer = function() {
- Ember.run.once(bindView, 'rerenderIfNeeded');
- };
-
- // Observes the given property on the context and
- // tells the Ember._HandlebarsBoundView to re-render. If property
- // is an empty string, we are printing the current context
- // object ({{this}}) so updating it is not our responsibility.
- if (path !== '') {
- Ember.addObserver(pathRoot, path, observer);
- }
- } else {
- // The object is not observable, so just render it out and
- // be done with it.
- data.buffer.push(getPath(pathRoot, path, options));
- }
-}
-
-/**
- '_triageMustache' is used internally select between a binding and helper for
- the given context. Until this point, it would be hard to determine if the
- mustache is a property reference or a regular helper reference. This triage
- helper resolves that.
-
- This would not be typically invoked by directly.
-
- @private
- @name Handlebars.helpers._triageMustache
- @param {String} property Property/helperID to triage
- @param {Function} fn Context to provide for rendering
- @returns {String} HTML string
-*/
-EmberHandlebars.registerHelper('_triageMustache', function(property, fn) {
- Ember.assert("You cannot pass more than one argument to the _triageMustache helper", arguments.length <= 2);
- if (helpers[property]) {
- return helpers[property].call(this, fn);
- }
- else {
- return helpers.bind.apply(this, arguments);
- }
-});
-
-/**
- `bind` can be used to display a value, then update that value if it
- changes. For example, if you wanted to print the `title` property of
- `content`:
-
- {{bind "content.title"}}
-
- This will return the `title` property as a string, then create a new
- observer at the specified path. If it changes, it will update the value in
- DOM. Note that if you need to support IE7 and IE8 you must modify the
- model objects properties using Ember.get() and Ember.set() for this to work as
- it relies on Ember's KVO system. For all other browsers this will be handled
- for you automatically.
-
- @private
- @name Handlebars.helpers.bind
- @param {String} property Property to bind
- @param {Function} fn Context to provide for rendering
- @returns {String} HTML string
-*/
-EmberHandlebars.registerHelper('bind', function(property, fn) {
- Ember.assert("You cannot pass more than one argument to the bind helper", arguments.length <= 2);
-
- var context = (fn.contexts && fn.contexts[0]) || this;
-
- return bind.call(context, property, fn, false, function(result) {
- return !Ember.none(result);
- });
-});
-
-/**
- Use the `boundIf` helper to create a conditional that re-evaluates
- whenever the bound value changes.
-
- {{#boundIf "content.shouldDisplayTitle"}}
- {{content.title}}
- {{/boundIf}}
-
- @private
- @name Handlebars.helpers.boundIf
- @param {String} property Property to bind
- @param {Function} fn Context to provide for rendering
- @returns {String} HTML string
-*/
-EmberHandlebars.registerHelper('boundIf', function(property, fn) {
- var context = (fn.contexts && fn.contexts[0]) || this;
- var func = function(result) {
- if (Ember.typeOf(result) === 'array') {
- return get(result, 'length') !== 0;
- } else {
- return !!result;
- }
- };
-
- return bind.call(context, property, fn, true, func, func);
-});
-
-/**
- @name Handlebars.helpers.with
- @param {Function} context
- @param {Hash} options
- @returns {String} HTML string
-*/
-EmberHandlebars.registerHelper('with', function(context, options) {
- if (arguments.length === 4) {
- var keywordName, path, rootPath, normalized;
-
- Ember.assert("If you pass more than one argument to the with helper, it must be in the form #with foo as bar", arguments[1] === "as");
- options = arguments[3];
- keywordName = arguments[2];
- path = arguments[0];
-
- Ember.assert("You must pass a block to the with helper", options.fn && options.fn !== Handlebars.VM.noop);
-
- if (Ember.isGlobalPath(path)) {
- Ember.bind(options.data.keywords, keywordName, path);
- } else {
- normalized = normalizePath(this, path, options.data);
- path = normalized.path;
- rootPath = normalized.root;
-
- // This is a workaround for the fact that you cannot bind separate objects
- // together. When we implement that functionality, we should use it here.
- var contextKey = Ember.$.expando + Ember.guidFor(rootPath);
- options.data.keywords[contextKey] = rootPath;
-
- // if the path is '' ("this"), just bind directly to the current context
- var contextPath = path ? contextKey + '.' + path : contextKey;
- Ember.bind(options.data.keywords, keywordName, contextPath);
- }
-
- return bind.call(this, path, options.fn, true, function(result) {
- return !Ember.none(result);
- });
- } else {
- Ember.assert("You must pass exactly one argument to the with helper", arguments.length === 2);
- Ember.assert("You must pass a block to the with helper", options.fn && options.fn !== Handlebars.VM.noop);
- return helpers.bind.call(options.contexts[0], context, options);
- }
-});
-
-
-/**
- @name Handlebars.helpers.if
- @param {Function} context
- @param {Hash} options
- @returns {String} HTML string
-*/
-EmberHandlebars.registerHelper('if', function(context, options) {
- Ember.assert("You must pass exactly one argument to the if helper", arguments.length === 2);
- Ember.assert("You must pass a block to the if helper", options.fn && options.fn !== Handlebars.VM.noop);
-
- return helpers.boundIf.call(options.contexts[0], context, options);
-});
-
-/**
- @name Handlebars.helpers.unless
- @param {Function} context
- @param {Hash} options
- @returns {String} HTML string
-*/
-EmberHandlebars.registerHelper('unless', function(context, options) {
- Ember.assert("You must pass exactly one argument to the unless helper", arguments.length === 2);
- Ember.assert("You must pass a block to the unless helper", options.fn && options.fn !== Handlebars.VM.noop);
-
- var fn = options.fn, inverse = options.inverse;
-
- options.fn = inverse;
- options.inverse = fn;
-
- return helpers.boundIf.call(options.contexts[0], context, options);
-});
-
-/**
- `bindAttr` allows you to create a binding between DOM element attributes and
- Ember objects. For example:
-
- <img {{bindAttr src="imageUrl" alt="imageTitle"}}>
-
- @name Handlebars.helpers.bindAttr
- @param {Hash} options
- @returns {String} HTML string
-*/
-EmberHandlebars.registerHelper('bindAttr', function(options) {
-
- var attrs = options.hash;
-
- Ember.assert("You must specify at least one hash argument to bindAttr", !!Ember.keys(attrs).length);
-
- var view = options.data.view;
- var ret = [];
- var ctx = this;
-
- // Generate a unique id for this element. This will be added as a
- // data attribute to the element so it can be looked up when
- // the bound property changes.
- var dataId = ++Ember.$.uuid;
-
- // Handle classes differently, as we can bind multiple classes
- var classBindings = attrs['class'];
- if (classBindings !== null && classBindings !== undefined) {
- var classResults = EmberHandlebars.bindClasses(this, classBindings, view, dataId, options);
- ret.push('class="' + Handlebars.Utils.escapeExpression(classResults.join(' ')) + '"');
- delete attrs['class'];
- }
-
- var attrKeys = Ember.keys(attrs);
-
- // For each attribute passed, create an observer and emit the
- // current value of the property as an attribute.
- forEach.call(attrKeys, function(attr) {
- var path = attrs[attr],
- pathRoot, normalized;
-
- Ember.assert(fmt("You must provide a String for a bound attribute, not %@", [path]), typeof path === 'string');
-
- normalized = normalizePath(ctx, path, options.data);
-
- pathRoot = normalized.root;
- path = normalized.path;
-
- var value = (path === 'this') ? pathRoot : getPath(pathRoot, path, options),
- type = Ember.typeOf(value);
-
- Ember.assert(fmt("Attributes must be numbers, strings or booleans, not %@", [value]), value === null || value === undefined || type === 'number' || type === 'string' || type === 'boolean');
-
- var observer, invoker;
-
- /** @private */
- observer = function observer() {
- var result = getPath(pathRoot, path, options);
-
- Ember.assert(fmt("Attributes must be numbers, strings or booleans, not %@", [result]), result === null || result === undefined || typeof result === 'number' || typeof result === 'string' || typeof result === 'boolean');
-
- var elem = view.$("[data-bindattr-" + dataId + "='" + dataId + "']");
-
- // If we aren't able to find the element, it means the element
- // to which we were bound has been removed from the view.
- // In that case, we can assume the template has been re-rendered
- // and we need to clean up the observer.
- if (elem.length === 0) {
- Ember.removeObserver(pathRoot, path, invoker);
- return;
- }
-
- Ember.View.applyAttributeBindings(elem, attr, result);
- };
-
- /** @private */
- invoker = function() {
- Ember.run.once(observer);
- };
-
- // Add an observer to the view for when the property changes.
- // When the observer fires, find the element using the
- // unique data id and update the attribute to the new value.
- if (path !== 'this') {
- Ember.addObserver(pathRoot, path, invoker);
- }
-
- // if this changes, also change the logic in ember-views/lib/views/view.js
- if ((type === 'string' || (type === 'number' && !isNaN(value)))) {
- ret.push(attr + '="' + Handlebars.Utils.escapeExpression(value) + '"');
- } else if (value && type === 'boolean') {
- // The developer controls the attr name, so it should always be safe
- ret.push(attr + '="' + attr + '"');
- }
- }, this);
-
- // Add the unique identifier
- // NOTE: We use all lower-case since Firefox has problems with mixed case in SVG
- ret.push('data-bindattr-' + dataId + '="' + dataId + '"');
- return new EmberHandlebars.SafeString(ret.join(' '));
-});
-
-/**
- Helper that, given a space-separated string of property paths and a context,
- returns an array of class names. Calling this method also has the side
- effect of setting up observers at those property paths, such that if they
- change, the correct class name will be reapplied to the DOM element.
-
- For example, if you pass the string "fooBar", it will first look up the
- "fooBar" value of the context. If that value is true, it will add the
- "foo-bar" class to the current element (i.e., the dasherized form of
- "fooBar"). If the value is a string, it will add that string as the class.
- Otherwise, it will not add any new class name.
-
- @param {Ember.Object} context
- The context from which to lookup properties
-
- @param {String} classBindings
- A string, space-separated, of class bindings to use
-
- @param {Ember.View} view
- The view in which observers should look for the element to update
-
- @param {Srting} bindAttrId
- Optional bindAttr id used to lookup elements
-
- @returns {Array} An array of class names to add
-*/
-EmberHandlebars.bindClasses = function(context, classBindings, view, bindAttrId, options) {
- var ret = [], newClass, value, elem;
-
- // Helper method to retrieve the property from the context and
- // determine which class string to return, based on whether it is
- // a Boolean or not.
- var classStringForPath = function(root, parsedPath, options) {
- var val,
- path = parsedPath.path;
-
- if (path === 'this') {
- val = root;
- } else if (path === '') {
- val = true;
- } else {
- val = getPath(root, path, options);
- }
-
- return Ember.View._classStringForValue(path, val, parsedPath.className, parsedPath.falsyClassName);
- };
-
- // For each property passed, loop through and setup
- // an observer.
- forEach.call(classBindings.split(' '), function(binding) {
-
- // Variable in which the old class value is saved. The observer function
- // closes over this variable, so it knows which string to remove when
- // the property changes.
- var oldClass;
-
- var observer, invoker;
-
- var parsedPath = Ember.View._parsePropertyPath(binding),
- path = parsedPath.path,
- pathRoot = context,
- normalized;
-
- if (path !== '' && path !== 'this') {
- normalized = normalizePath(context, path, options.data);
-
- pathRoot = normalized.root;
- path = normalized.path;
- }
-
- // Set up an observer on the context. If the property changes, toggle the
- // class name.
- /** @private */
- observer = function() {
- // Get the current value of the property
- newClass = classStringForPath(pathRoot, parsedPath, options);
- elem = bindAttrId ? view.$("[data-bindattr-" + bindAttrId + "='" + bindAttrId + "']") : view.$();
-
- // If we can't find the element anymore, a parent template has been
- // re-rendered and we've been nuked. Remove the observer.
- if (elem.length === 0) {
- Ember.removeObserver(pathRoot, path, invoker);
- } else {
- // If we had previously added a class to the element, remove it.
- if (oldClass) {
- elem.removeClass(oldClass);
- }
-
- // If necessary, add a new class. Make sure we keep track of it so
- // it can be removed in the future.
- if (newClass) {
- elem.addClass(newClass);
- oldClass = newClass;
- } else {
- oldClass = null;
- }
- }
- };
-
- /** @private */
- invoker = function() {
- Ember.run.once(observer);
- };
-
- if (path !== '' && path !== 'this') {
- Ember.addObserver(pathRoot, path, invoker);
- }
-
- // We've already setup the observer; now we just need to figure out the
- // correct behavior right now on the first pass through.
- value = classStringForPath(pathRoot, parsedPath, options);
-
- if (value) {
- ret.push(value);
-
- // Make sure we save the current value so that it can be removed if the
- // observer fires.
- oldClass = value;
- }
- });
-
- return ret;
-};
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/*globals Handlebars */
-
-// TODO: Don't require the entire module
-var get = Ember.get, set = Ember.set;
-var PARENT_VIEW_PATH = /^parentView\./;
-var EmberHandlebars = Ember.Handlebars;
-var VIEW_PRESERVES_CONTEXT = Ember.VIEW_PRESERVES_CONTEXT;
-
-/** @private */
-EmberHandlebars.ViewHelper = Ember.Object.create({
-
- propertiesFromHTMLOptions: function(options, thisContext) {
- var hash = options.hash, data = options.data;
- var extensions = {},
- classes = hash['class'],
- dup = false;
-
- if (hash.id) {
- extensions.elementId = hash.id;
- dup = true;
- }
-
- if (classes) {
- classes = classes.split(' ');
- extensions.classNames = classes;
- dup = true;
- }
-
- if (hash.classBinding) {
- extensions.classNameBindings = hash.classBinding.split(' ');
- dup = true;
- }
-
- if (hash.classNameBindings) {
- if (extensions.classNameBindings === undefined) extensions.classNameBindings = [];
- extensions.classNameBindings = extensions.classNameBindings.concat(hash.classNameBindings.split(' '));
- dup = true;
- }
-
- if (hash.attributeBindings) {
- Ember.assert("Setting 'attributeBindings' via Handlebars is not allowed. Please subclass Ember.View and set it there instead.");
- extensions.attributeBindings = null;
- dup = true;
- }
-
- if (dup) {
- hash = Ember.$.extend({}, hash);
- delete hash.id;
- delete hash['class'];
- delete hash.classBinding;
- }
-
- // Set the proper context for all bindings passed to the helper. This applies to regular attribute bindings
- // as well as class name bindings. If the bindings are local, make them relative to the current context
- // instead of the view.
- var path;
-
- // Evaluate the context of regular attribute bindings:
- for (var prop in hash) {
- if (!hash.hasOwnProperty(prop)) { continue; }
-
- // Test if the property ends in "Binding"
- if (Ember.IS_BINDING.test(prop) && typeof hash[prop] === 'string') {
- path = this.contextualizeBindingPath(hash[prop], data);
- if (path) { hash[prop] = path; }
- }
- }
-
- // Evaluate the context of class name bindings:
- if (extensions.classNameBindings) {
- for (var b in extensions.classNameBindings) {
- var full = extensions.classNameBindings[b];
- if (typeof full === 'string') {
- // Contextualize the path of classNameBinding so this:
- //
- // classNameBinding="isGreen:green"
- //
- // is converted to this:
- //
- // classNameBinding="bindingContext.isGreen:green"
- var parsedPath = Ember.View._parsePropertyPath(full);
- path = this.contextualizeBindingPath(parsedPath.path, data);
- if (path) { extensions.classNameBindings[b] = path + parsedPath.classNames; }
- }
- }
- }
-
- // Make the current template context available to the view
- // for the bindings set up above.
- extensions.bindingContext = thisContext;
-
- return Ember.$.extend(hash, extensions);
- },
-
- // Transform bindings from the current context to a context that can be evaluated within the view.
- // Returns null if the path shouldn't be changed.
- //
- // TODO: consider the addition of a prefix that would allow this method to return `path`.
- contextualizeBindingPath: function(path, data) {
- var normalized = Ember.Handlebars.normalizePath(null, path, data);
- if (normalized.isKeyword) {
- return 'templateData.keywords.' + path;
- } else if (Ember.isGlobalPath(path)) {
- return null;
- } else if (path === 'this') {
- return 'bindingContext';
- } else {
- return 'bindingContext.' + path;
- }
- },
-
- helper: function(thisContext, path, options) {
- var inverse = options.inverse,
- data = options.data,
- view = data.view,
- fn = options.fn,
- hash = options.hash,
- newView;
-
- if ('string' === typeof path) {
- newView = EmberHandlebars.getPath(thisContext, path, options);
- Ember.assert("Unable to find view at path '" + path + "'", !!newView);
- } else {
- newView = path;
- }
-
- Ember.assert(Ember.String.fmt('You must pass a view class to the #view helper, not %@ (%@)', [path, newView]), Ember.View.detect(newView));
-
- var viewOptions = this.propertiesFromHTMLOptions(options, thisContext);
- var currentView = data.view;
- viewOptions.templateData = options.data;
-
- if (fn) {
- Ember.assert("You cannot provide a template block if you also specified a templateName", !get(viewOptions, 'templateName') && !get(newView.proto(), 'templateName'));
- viewOptions.template = fn;
- }
-
- // We only want to override the `_context` computed property if there is
- // no specified controller. See View#_context for more information.
- if (VIEW_PRESERVES_CONTEXT && !newView.proto().controller && !newView.proto().controllerBinding && !viewOptions.controller && !viewOptions.controllerBinding) {
- viewOptions._context = thisContext;
- }
-
- currentView.appendChild(newView, viewOptions);
- }
-});
-
-/**
- `{{view}}` inserts a new instance of `Ember.View` into a template passing its options
- to the `Ember.View`'s `create` method and using the supplied block as the view's own template.
-
- An empty `<body>` and the following template:
-
- <script type="text/x-handlebars">
- A span:
- {{#view tagName="span"}}
- hello.
- {{/view}}
- </script>
-
- Will result in HTML structure:
-
- <body>
- <!-- Note: the handlebars template script
- also results in a rendered Ember.View
- which is the outer <div> here -->
-
- <div class="ember-view">
- A span:
- <span id="ember1" class="ember-view">
- Hello.
- </span>
- </div>
- </body>
-
- ### parentView setting
-
- The `parentView` property of the new `Ember.View` instance created through `{{view}}`
- will be set to the `Ember.View` instance of the template where `{{view}}` was called.
-
- aView = Ember.View.create({
- template: Ember.Handlebars.compile("{{#view}} my parent: {{parentView.elementId}} {{/view}}")
- })
-
- aView.appendTo('body')
-
- Will result in HTML structure:
-
- <div id="ember1" class="ember-view">
- <div id="ember2" class="ember-view">
- my parent: ember1
- </div>
- </div>
-
- ### Setting CSS id and class attributes
-
- The HTML `id` attribute can be set on the `{{view}}`'s resulting element with the `id` option.
- This option will _not_ be passed to `Ember.View.create`.
-
- <script type="text/x-handlebars">
- {{#view tagName="span" id="a-custom-id"}}
- hello.
- {{/view}}
- </script>
-
- Results in the following HTML structure:
-
- <div class="ember-view">
- <span id="a-custom-id" class="ember-view">
- hello.
- </span>
- </div>
-
- The HTML `class` attribute can be set on the `{{view}}`'s resulting element with
- the `class` or `classNameBindings` options. The `class` option
- will directly set the CSS `class` attribute and will not be passed to
- `Ember.View.create`. `classNameBindings` will be passed to `create` and use
- `Ember.View`'s class name binding functionality:
-
- <script type="text/x-handlebars">
- {{#view tagName="span" class="a-custom-class"}}
- hello.
- {{/view}}
- </script>
-
- Results in the following HTML structure:
-
- <div class="ember-view">
- <span id="ember2" class="ember-view a-custom-class">
- hello.
- </span>
- </div>
-
- ### Supplying a different view class
- `{{view}}` can take an optional first argument before its supplied options to specify a
- path to a custom view class.
-
- <script type="text/x-handlebars">
- {{#view "MyApp.CustomView"}}
- hello.
- {{/view}}
- </script>
-
- The first argument can also be a relative path. Ember will search for the view class
- starting at the `Ember.View` of the template where `{{view}}` was used as the root object:
-
- MyApp = Ember.Application.create({})
- MyApp.OuterView = Ember.View.extend({
- innerViewClass: Ember.View.extend({
- classNames: ['a-custom-view-class-as-property']
- }),
- template: Ember.Handlebars.compile('{{#view "innerViewClass"}} hi {{/view}}')
- })
-
- MyApp.OuterView.create().appendTo('body')
-
-Will result in the following HTML:
-
- <div id="ember1" class="ember-view">
- <div id="ember2" class="ember-view a-custom-view-class-as-property">
- hi
- </div>
- </div>
-
- ### Blockless use
-
- If you supply a custom `Ember.View` subclass that specifies its own template
- or provide a `templateName` option to `{{view}}` it can be used without supplying a block.
- Attempts to use both a `templateName` option and supply a block will throw an error.
-
- <script type="text/x-handlebars">
- {{view "MyApp.ViewWithATemplateDefined"}}
- </script>
-
- ### viewName property
-
- You can supply a `viewName` option to `{{view}}`. The `Ember.View` instance will
- be referenced as a property of its parent view by this name.
-
- aView = Ember.View.create({
- template: Ember.Handlebars.compile('{{#view viewName="aChildByName"}} hi {{/view}}')
- })
-
- aView.appendTo('body')
- aView.get('aChildByName') // the instance of Ember.View created by {{view}} helper
-
- @name Handlebars.helpers.view
- @param {String} path
- @param {Hash} options
- @returns {String} HTML string
-*/
-EmberHandlebars.registerHelper('view', function(path, options) {
- Ember.assert("The view helper only takes a single argument", arguments.length <= 2);
-
- // If no path is provided, treat path param as options.
- if (path && path.data && path.data.isRenderData) {
- options = path;
- path = "Ember.View";
- }
-
- return EmberHandlebars.ViewHelper.helper(this, path, options);
-});
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/*globals Handlebars */
-
-// TODO: Don't require all of this module
-var get = Ember.get, getPath = Ember.Handlebars.getPath, fmt = Ember.String.fmt;
-
-/**
- `{{collection}}` is a `Ember.Handlebars` helper for adding instances of
- `Ember.CollectionView` to a template. See `Ember.CollectionView` for additional
- information on how a `CollectionView` functions.
-
- `{{collection}}`'s primary use is as a block helper with a `contentBinding` option
- pointing towards an `Ember.Array`-compatible object. An `Ember.View` instance will
- be created for each item in its `content` property. Each view will have its own
- `content` property set to the appropriate item in the collection.
-
- The provided block will be applied as the template for each item's view.
-
- Given an empty `<body>` the following template:
-
- <script type="text/x-handlebars">
- {{#collection contentBinding="App.items"}}
- Hi {{content.name}}
- {{/collection}}
- </script>
-
- And the following application code
-
- App = Ember.Application.create()
- App.items = [
- Ember.Object.create({name: 'Dave'}),
- Ember.Object.create({name: 'Mary'}),
- Ember.Object.create({name: 'Sara'})
- ]
-
- Will result in the HTML structure below
-
- <div class="ember-view">
- <div class="ember-view">Hi Dave</div>
- <div class="ember-view">Hi Mary</div>
- <div class="ember-view">Hi Sara</div>
- </div>
-
- ### Blockless Use
- If you provide an `itemViewClass` option that has its own `template` you can omit
- the block.
-
- The following template:
-
- <script type="text/x-handlebars">
- {{collection contentBinding="App.items" itemViewClass="App.AnItemView"}}
- </script>
-
- And application code
-
- App = Ember.Application.create()
- App.items = [
- Ember.Object.create({name: 'Dave'}),
- Ember.Object.create({name: 'Mary'}),
- Ember.Object.create({name: 'Sara'})
- ]
-
- App.AnItemView = Ember.View.extend({
- template: Ember.Handlebars.compile("Greetings {{content.name}}")
- })
-
- Will result in the HTML structure below
-
- <div class="ember-view">
- <div class="ember-view">Greetings Dave</div>
- <div class="ember-view">Greetings Mary</div>
- <div class="ember-view">Greetings Sara</div>
- </div>
-
- ### Specifying a CollectionView subclass
- By default the `{{collection}}` helper will create an instance of `Ember.CollectionView`.
- You can supply a `Ember.CollectionView` subclass to the helper by passing it
- as the first argument:
-
- <script type="text/x-handlebars">
- {{#collection App.MyCustomCollectionClass contentBinding="App.items"}}
- Hi {{content.name}}
- {{/collection}}
- </script>
-
-
- ### Forwarded `item.*`-named Options
- As with the `{{view}}`, helper options passed to the `{{collection}}` will be set on
- the resulting `Ember.CollectionView` as properties. Additionally, options prefixed with
- `item` will be applied to the views rendered for each item (note the camelcasing):
-
- <script type="text/x-handlebars">
- {{#collection contentBinding="App.items"
- itemTagName="p"
- itemClassNames="greeting"}}
- Howdy {{content.name}}
- {{/collection}}
- </script>
-
- Will result in the following HTML structure:
-
- <div class="ember-view">
- <p class="ember-view greeting">Howdy Dave</p>
- <p class="ember-view greeting">Howdy Mary</p>
- <p class="ember-view greeting">Howdy Sara</p>
- </div>
-
- @name Handlebars.helpers.collection
- @param {String} path
- @param {Hash} options
- @returns {String} HTML string
-*/
-Ember.Handlebars.registerHelper('collection', function(path, options) {
- // If no path is provided, treat path param as options.
- if (path && path.data && path.data.isRenderData) {
- options = path;
- path = undefined;
- Ember.assert("You cannot pass more than one argument to the collection helper", arguments.length === 1);
- } else {
- Ember.assert("You cannot pass more than one argument to the collection helper", arguments.length === 2);
- }
-
- var fn = options.fn;
- var data = options.data;
- var inverse = options.inverse;
-
- // If passed a path string, convert that into an object.
- // Otherwise, just default to the standard class.
- var collectionClass;
- collectionClass = path ? getPath(this, path, options) : Ember.CollectionView;
- Ember.assert(fmt("%@ #collection: Could not find collection class %@", [data.view, path]), !!collectionClass);
-
- var hash = options.hash, itemHash = {}, match;
-
- // Extract item view class if provided else default to the standard class
- var itemViewClass, itemViewPath = hash.itemViewClass;
- var collectionPrototype = collectionClass.proto();
- delete hash.itemViewClass;
- itemViewClass = itemViewPath ? getPath(collectionPrototype, itemViewPath, options) : collectionPrototype.itemViewClass;
- Ember.assert(fmt("%@ #collection: Could not find itemViewClass %@", [data.view, itemViewPath]), !!itemViewClass);
-
- // Go through options passed to the {{collection}} helper and extract options
- // that configure item views instead of the collection itself.
- for (var prop in hash) {
- if (hash.hasOwnProperty(prop)) {
- match = prop.match(/^item(.)(.*)$/);
-
- if(match) {
- // Convert itemShouldFoo -> shouldFoo
- itemHash[match[1].toLowerCase() + match[2]] = hash[prop];
- // Delete from hash as this will end up getting passed to the
- // {{view}} helper method.
- delete hash[prop];
- }
- }
- }
-
- var tagName = hash.tagName || collectionPrototype.tagName;
-
- if (fn) {
- itemHash.template = fn;
- delete options.fn;
- }
-
- var emptyViewClass;
- if (inverse && inverse !== Handlebars.VM.noop) {
- emptyViewClass = get(collectionPrototype, 'emptyViewClass');
- emptyViewClass = emptyViewClass.extend({
- template: inverse,
- tagName: itemHash.tagName
- });
- } else if (hash.emptyViewClass) {
- emptyViewClass = getPath(this, hash.emptyViewClass, options);
- }
- hash.emptyView = emptyViewClass;
-
- if (hash.eachHelper === 'each') {
- itemHash._context = Ember.computed(function() {
- return get(this, 'content');
- }).property('content');
- delete hash.eachHelper;
- }
-
- var viewOptions = Ember.Handlebars.ViewHelper.propertiesFromHTMLOptions({ data: data, hash: itemHash }, this);
- hash.itemViewClass = itemViewClass.extend(viewOptions);
-
- return Ember.Handlebars.helpers.view.call(this, collectionClass, options);
-});
-
-
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/*globals Handlebars */
-var getPath = Ember.Handlebars.getPath;
-
-/**
- `unbound` allows you to output a property without binding. *Important:* The
- output will not be updated if the property changes. Use with caution.
-
- <div>{{unbound somePropertyThatDoesntChange}}</div>
-
- @name Handlebars.helpers.unbound
- @param {String} property
- @returns {String} HTML string
-*/
-Ember.Handlebars.registerHelper('unbound', function(property, fn) {
- var context = (fn.contexts && fn.contexts[0]) || this;
- return getPath(context, property, fn);
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-/*jshint debug:true*/
-var getPath = Ember.Handlebars.getPath, normalizePath = Ember.Handlebars.normalizePath;
-
-/**
- `log` allows you to output the value of a value in the current rendering
- context.
-
- {{log myVariable}}
-
- @name Handlebars.helpers.log
- @param {String} property
-*/
-Ember.Handlebars.registerHelper('log', function(property, options) {
- var context = (options.contexts && options.contexts[0]) || this,
- normalized = normalizePath(context, property, options.data),
- pathRoot = normalized.root,
- path = normalized.path,
- value = (path === 'this') ? pathRoot : getPath(pathRoot, path, options);
- Ember.Logger.log(value);
-});
-
-/**
- The `debugger` helper executes the `debugger` statement in the current
- context.
-
- {{debugger}}
-
- @name Handlebars.helpers.debugger
- @param {String} property
-*/
-Ember.Handlebars.registerHelper('debugger', function() {
- debugger;
-});
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set;
-
-Ember.Handlebars.EachView = Ember.CollectionView.extend(Ember._Metamorph, {
- itemViewClass: Ember._MetamorphView,
- emptyViewClass: Ember._MetamorphView,
-
- createChildView: function(view, attrs) {
- view = this._super(view, attrs);
-
- // At the moment, if a container view subclass wants
- // to insert keywords, it is responsible for cloning
- // the keywords hash. This will be fixed momentarily.
- var keyword = get(this, 'keyword');
-
- if (keyword) {
- var data = get(view, 'templateData');
-
- data = Ember.copy(data);
- data.keywords = view.cloneKeywords();
- set(view, 'templateData', data);
-
- var content = get(view, 'content');
-
- // In this case, we do not bind, because the `content` of
- // a #each item cannot change.
- data.keywords[keyword] = content;
- }
-
- return view;
- }
-});
-
-Ember.Handlebars.registerHelper('each', function(path, options) {
- if (arguments.length === 4) {
- Ember.assert("If you pass more than one argument to the each helper, it must be in the form #each foo in bar", arguments[1] === "in");
-
- var keywordName = arguments[0];
-
- options = arguments[3];
- path = arguments[2];
- if (path === '') { path = "this"; }
-
- options.hash.keyword = keywordName;
- } else {
- options.hash.eachHelper = 'each';
- }
-
- Ember.assert("You must pass a block to the each helper", options.fn && options.fn !== Handlebars.VM.noop);
-
- options.hash.contentBinding = path;
- // Set up emptyView as a metamorph with no tag
- //options.hash.emptyViewClass = Ember._MetamorphView;
-
- return Ember.Handlebars.helpers.collection.call(this, 'Ember.Handlebars.EachView', options);
-});
-
-})();
-
-
-
-(function() {
-/**
- `template` allows you to render a template from inside another template.
- This allows you to re-use the same template in multiple places. For example:
-
- <script type="text/x-handlebars">
- {{#with loggedInUser}}
- Last Login: {{lastLogin}}
- User Info: {{template "user_info"}}
- {{/with}}
- </script>
-
- <script type="text/x-handlebars" data-template-name="user_info">
- Name: <em>{{name}}</em>
- Karma: <em>{{karma}}</em>
- </script>
-
- This helper looks for templates in the global Ember.TEMPLATES hash. If you
- add &lt;script&gt; tags to your page with the `data-template-name` attribute set,
- they will be compiled and placed in this hash automatically.
-
- You can also manually register templates by adding them to the hash:
-
- Ember.TEMPLATES["my_cool_template"] = Ember.Handlebars.compile('<b>{{user}}</b>');
-
- @name Handlebars.helpers.template
- @param {String} templateName the template to render
-*/
-
-Ember.Handlebars.registerHelper('template', function(name, options) {
- var template = Ember.TEMPLATES[name];
-
- Ember.assert("Unable to find template with name '"+name+"'.", !!template);
-
- Ember.TEMPLATES[name](this, { data: options.data });
-});
-
-})();
-
-
-
-(function() {
-var EmberHandlebars = Ember.Handlebars,
- getPath = EmberHandlebars.getPath,
- get = Ember.get,
- a_slice = Array.prototype.slice;
-
-var ActionHelper = EmberHandlebars.ActionHelper = {
- registeredActions: {}
-};
-
-ActionHelper.registerAction = function(actionName, options) {
- var actionId = (++Ember.$.uuid).toString();
-
- ActionHelper.registeredActions[actionId] = {
- eventName: options.eventName,
- handler: function(event) {
- var modifier = event.shiftKey || event.metaKey || event.altKey || event.ctrlKey,
- secondaryClick = event.which > 1, // IE9 may return undefined
- nonStandard = modifier || secondaryClick;
-
- if (options.link && nonStandard) {
- // Allow the browser to handle special link clicks normally
- return;
- }
-
- event.preventDefault();
-
- event.view = options.view;
-
- if (options.hasOwnProperty('context')) {
- event.context = options.context;
- }
-
- if (options.hasOwnProperty('contexts')) {
- event.contexts = options.contexts;
- }
-
- var target = options.target;
-
- // Check for StateManager (or compatible object)
- if (target.isState && typeof target.send === 'function') {
- return target.send(actionName, event);
- } else {
- Ember.assert(Ember.String.fmt('Target %@ does not have action %@', [target, actionName]), target[actionName]);
- return target[actionName].call(target, event);
- }
- }
- };
-
- options.view.on('willRerender', function() {
- delete ActionHelper.registeredActions[actionId];
- });
-
- return actionId;
-};
-
-/**
- The `{{action}}` helper registers an HTML element within a template for
- DOM event handling and forwards that interaction to the Application's router,
- the template's `Ember.View` instance, or supplied `target` option (see 'Specifiying a Target').
-
- User interaction with that element will invoke the supplied action name on
- the appropriate target.
-
- Given the following Handlebars template on the page
-
- <script type="text/x-handlebars" data-template-name='a-template'>
- <div {{action anActionName}}>
- click me
- </div>
- </script>
-
- And application code
-
- AView = Ember.View.extend({
- templateName; 'a-template',
- anActionName: function(event){}
- });
-
- aView = AView.create();
- aView.appendTo('body');
-
- Will results in the following rendered HTML
-
- <div class="ember-view">
- <div data-ember-action="1">
- click me
- </div>
- </div>
-
- Clicking "click me" will trigger the `anActionName` method of the `aView`
- object with a `jQuery.Event` object as its argument. The `jQuery.Event`
- object will be extended to include a `view` property that is set to the
- original view interacted with (in this case the `aView` object).
-
- ### Event Propagation
-
- Events triggered through the action helper will automatically have
- `.preventDefault()` called on them. You do not need to do so in your event
- handlers. To stop propagation of the event, simply return `false` from your
- handler.
-
- If you need the default handler to trigger you should either register your
- own event handler, or use event methods on your view class. See Ember.View
- 'Responding to Browser Events' for more information.
-
- ### Specifying DOM event type
-
- By default the `{{action}}` helper registers for DOM `click` events. You can
- supply an `on` option to the helper to specify a different DOM event name:
-
- <script type="text/x-handlebars" data-template-name='a-template'>
- <div {{action anActionName on="doubleClick"}}>
- click me
- </div>
- </script>
-
- See Ember.View 'Responding to Browser Events' for a list of
- acceptable DOM event names.
-
- Because `{{action}}` depends on Ember's event dispatch system it will only
- function if an `Ember.EventDispatcher` instance is available. An
- `Ember.EventDispatcher` instance will be created when a new
- `Ember.Application` is created. Having an instance of `Ember.Application`
- will satisfy this requirement.
-
-
- ### Specifying a Target
- There are several possible target objects for `{{action}}` helpers:
-
- In a typical `Ember.Router`-backed Application where views are managed
- through use of the `{{outlet}}` helper, actions will be forwarded to the
- current state of the Applications's Router. See Ember.Router 'Responding
- to User-initiated Events' for more information.
-
- If you manaully set the `target` property on the controller of a template's
- `Ember.View` instance, the specifed `controller.target` will become the target
- for any actions. Likely custom values for a controller's `target` are the
- controller itself or a StateManager other than the Application's Router.
-
- If the templates's view lacks a controller property the view itself is the target.
-
- Finally, a `target` option can be provided to the helper to change which object
- will receive the method call. This option must be a string representing a
- path to an object:
-
- <script type="text/x-handlebars" data-template-name='a-template'>
- <div {{action anActionName target="MyApplication.someObject"}}>
- click me
- </div>
- </script>
-
- Clicking "click me" in the rendered HTML of the above template will trigger
- the `anActionName` method of the object at `MyApplication.someObject`.
- The first argument to this method will be a `jQuery.Event` extended to
- include a `view` property that is set to the original view interacted with.
-
- A path relative to the template's `Ember.View` instance can also be used as
- a target:
-
- <script type="text/x-handlebars" data-template-name='a-template'>
- <div {{action anActionName target="parentView"}}>
- click me
- </div>
- </script>
-
- Clicking "click me" in the rendered HTML of the above template will trigger
- the `anActionName` method of the view's parent view.
-
- The `{{action}}` helper is `Ember.StateManager` aware. If the target of the
- action is an `Ember.StateManager` instance `{{action}}` will use the `send`
- functionality of StateManagers. The documentation for `Ember.StateManager`
- has additional information about this use.
-
- If an action's target does not implement a method that matches the supplied
- action name an error will be thrown.
-
- <script type="text/x-handlebars" data-template-name='a-template'>
- <div {{action aMethodNameThatIsMissing}}>
- click me
- </div>
- </script>
-
- With the following application code
-
- AView = Ember.View.extend({
- templateName; 'a-template',
- // note: no method 'aMethodNameThatIsMissing'
- anActionName: function(event){}
- });
-
- aView = AView.create();
- aView.appendTo('body');
-
- Will throw `Uncaught TypeError: Cannot call method 'call' of undefined` when
- "click me" is clicked.
-
- ### Specifying a context
-
- By default the `{{action}}` helper passes the current Handlebars context
- along in the `jQuery.Event` object. You may specify an alternate object to
- pass as the context by providing a property path:
-
- <script type="text/x-handlebars" data-template-name='a-template'>
- {{#each person in people}}
- <div {{action edit person}}>
- click me
- </div>
- {{/each}}
- </script>
-
- @name Handlebars.helpers.action
- @param {String} actionName
- @param {Object...} contexts
- @param {Hash} options
-*/
-EmberHandlebars.registerHelper('action', function(actionName) {
- var options = arguments[arguments.length - 1],
- contexts = a_slice.call(arguments, 1, -1);
-
- var hash = options.hash,
- view = options.data.view,
- target, controller, link;
-
- // create a hash to pass along to registerAction
- var action = {
- eventName: hash.on || "click"
- };
-
- action.view = view = get(view, 'concreteView');
-
- if (hash.target) {
- target = getPath(this, hash.target, options);
- } else if (controller = options.data.keywords.controller) {
- target = get(controller, 'target');
- }
-
- action.target = target = target || view;
-
- if (contexts.length) {
- action.contexts = contexts = Ember.EnumerableUtils.map(contexts, function(context) {
- return getPath(this, context, options);
- }, this);
- action.context = contexts[0];
- }
-
- var output = [], url;
-
- if (hash.href && target.urlForEvent) {
- url = target.urlForEvent.apply(target, [actionName].concat(contexts));
- output.push('href="' + url + '"');
- action.link = true;
- }
-
- var actionId = ActionHelper.registerAction(actionName, action);
- output.push('data-ember-action="' + actionId + '"');
-
- return new EmberHandlebars.SafeString(output.join(" "));
-});
-
-})();
-
-
-
-(function() {
-var get = Ember.get, set = Ember.set;
-
-/**
-
- When used in a Handlebars template that is assigned to an `Ember.View` instance's
- `layout` property Ember will render the layout template first, inserting the view's
- own rendered output at the `{{ yield }}` location.
-
- An empty `<body>` and the following application code:
-
- AView = Ember.View.extend({
- classNames: ['a-view-with-layout'],
- layout: Ember.Handlebars.compile('<div class="wrapper">{{ yield }}</div>'),
- template: Ember.Handlebars.compile('<span>I am wrapped</span>')
- })
-
- aView = AView.create()
- aView.appendTo('body')
-
- Will result in the following HTML output:
-
- <body>
- <div class='ember-view a-view-with-layout'>
- <div class="wrapper">
- <span>I am wrapped</span>
- </div>
- </div>
- </body>
-
- The yield helper cannot be used outside of a template assigned to an `Ember.View`'s `layout` property
- and will throw an error if attempted.
-
- BView = Ember.View.extend({
- classNames: ['a-view-with-layout'],
- template: Ember.Handlebars.compile('{{yield}}')
- })
-
- bView = BView.create()
- bView.appendTo('body')
-
- // throws
- // Uncaught Error: assertion failed: You called yield in a template that was not a layout
-
- @name Handlebars.helpers.yield
- @param {Hash} options
- @returns {String} HTML string
-*/
-Ember.Handlebars.registerHelper('yield', function(options) {
- var view = options.data.view, template;
-
- while (view && !get(view, 'layout')) {
- view = get(view, 'parentView');
- }
-
- Ember.assert("You called yield in a template that was not a layout", !!view);
-
- template = get(view, 'template');
-
- if (template) { template(this, options); }
-});
-
-})();
-
-
-
-(function() {
-/**
- The `outlet` helper allows you to specify that the current
- view's controller will fill in the view for a given area.
-
- {{outlet}}
-
- By default, when the the current controller's `view`
- property changes, the outlet will replace its current
- view with the new view.
-
- controller.set('view', someView);
-
- You can also specify a particular name, other than view:
-
- {{outlet masterView}}
- {{outlet detailView}}
-
- Then, you can control several outlets from a single
- controller:
-
- controller.set('masterView', postsView);
- controller.set('detailView', postView);
-
- @name Handlebars.helpers.outlet
- @param {String} property the property on the controller
- that holds the view for this outlet
-*/
-Ember.Handlebars.registerHelper('outlet', function(property, options) {
- if (property && property.data && property.data.isRenderData) {
- options = property;
- property = 'view';
- }
-
- options.hash.currentViewBinding = "controller." + property;
-
- return Ember.Handlebars.helpers.view.call(this, Ember.ContainerView, options);
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var set = Ember.set, get = Ember.get;
-
-/**
- @class
-
- Creates an HTML input of type 'checkbox' with HTML related properties
- applied directly to the input.
-
- {{view Ember.Checkbox classNames="applicaton-specific-checkbox"}}
-
- <input id="ember1" class="ember-view ember-checkbox applicaton-specific-checkbox" type="checkbox">
-
- You can add a `label` tag yourself in the template where the Ember.Checkbox is being used.
-
- <label>
- Some Title
- {{view Ember.Checkbox classNames="applicaton-specific-checkbox"}}
- </label>
-
-
- The `checked` attribute of an Ember.Checkbox object should always be set
- through the Ember object or by interacting with its rendered element representation
- via the mouse, keyboard, or touch. Updating the value of the checkbox via jQuery will
- result in the checked value of the object and its element losing synchronization.
-
- ## Layout and LayoutName properties
- Because HTML `input` elements are self closing `layout` and `layoutName` properties will
- not be applied. See `Ember.View`'s layout section for more information.
-
- @extends Ember.View
-*/
-Ember.Checkbox = Ember.View.extend({
- classNames: ['ember-checkbox'],
-
- tagName: 'input',
-
- attributeBindings: ['type', 'checked', 'disabled', 'tabindex'],
-
- type: "checkbox",
- checked: false,
- disabled: false,
-
- init: function() {
- this._super();
- this.on("change", this, this._updateElementValue);
- },
-
- /**
- @private
- */
- _updateElementValue: function() {
- set(this, 'checked', this.$().prop('checked'));
- }
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set;
-
-/** @class */
-Ember.TextSupport = Ember.Mixin.create(
-/** @scope Ember.TextSupport.prototype */ {
-
- value: "",
-
- attributeBindings: ['placeholder', 'disabled', 'maxlength', 'tabindex'],
- placeholder: null,
- disabled: false,
- maxlength: null,
-
- insertNewline: Ember.K,
- cancel: Ember.K,
-
- /** @private */
- init: function() {
- this._super();
- this.on("focusOut", this, this._elementValueDidChange);
- this.on("change", this, this._elementValueDidChange);
- this.on("keyUp", this, this.interpretKeyEvents);
- },
-
- /**
- @private
- */
- interpretKeyEvents: function(event) {
- var map = Ember.TextSupport.KEY_EVENTS;
- var method = map[event.keyCode];
-
- this._elementValueDidChange();
- if (method) { return this[method](event); }
- },
-
- _elementValueDidChange: function() {
- set(this, 'value', this.$().val());
- }
-
-});
-
-Ember.TextSupport.KEY_EVENTS = {
- 13: 'insertNewline',
- 27: 'cancel'
-};
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set;
-
-/**
- @class
-
- The `Ember.TextField` view class renders a text
- [input](https://developer.mozilla.org/en/HTML/Element/Input) element. It
- allows for binding Ember properties to the text field contents (`value`),
- live-updating as the user inputs text.
-
- Example:
-
- {{view Ember.TextField valueBinding="firstName"}}
-
- ## Layout and LayoutName properties
- Because HTML `input` elements are self closing `layout` and `layoutName` properties will
- not be applied. See `Ember.View`'s layout section for more information.
-
- @extends Ember.View
- @extends Ember.TextSupport
-*/
-Ember.TextField = Ember.View.extend(Ember.TextSupport,
- /** @scope Ember.TextField.prototype */ {
-
- classNames: ['ember-text-field'],
- tagName: "input",
- attributeBindings: ['type', 'value', 'size'],
-
- /**
- The value attribute of the input element. As the user inputs text, this
- property is updated live.
-
- @type String
- @default ""
- */
- value: "",
-
- /**
- The type attribute of the input element.
-
- @type String
- @default "text"
- */
- type: "text",
-
- /**
- The size of the text field in characters.
-
- @type String
- @default null
- */
- size: null
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set;
-
-Ember.Button = Ember.View.extend(Ember.TargetActionSupport, {
- classNames: ['ember-button'],
- classNameBindings: ['isActive'],
-
- tagName: 'button',
-
- propagateEvents: false,
-
- attributeBindings: ['type', 'disabled', 'href', 'tabindex'],
-
- /** @private
- Overrides TargetActionSupport's targetObject computed
- property to use Handlebars-specific path resolution.
- */
- targetObject: Ember.computed(function() {
- var target = get(this, 'target'),
- root = get(this, 'context'),
- data = get(this, 'templateData');
-
- if (typeof target !== 'string') { return target; }
-
- return Ember.Handlebars.getPath(root, target, { data: data });
- }).property('target').cacheable(),
-
- // Defaults to 'button' if tagName is 'input' or 'button'
- type: Ember.computed(function(key, value) {
- var tagName = this.get('tagName');
- if (value !== undefined) { this._type = value; }
- if (this._type !== undefined) { return this._type; }
- if (tagName === 'input' || tagName === 'button') { return 'button'; }
- }).property('tagName').cacheable(),
-
- disabled: false,
-
- // Allow 'a' tags to act like buttons
- href: Ember.computed(function() {
- return this.get('tagName') === 'a' ? '#' : null;
- }).property('tagName').cacheable(),
-
- mouseDown: function() {
- if (!get(this, 'disabled')) {
- set(this, 'isActive', true);
- this._mouseDown = true;
- this._mouseEntered = true;
- }
- return get(this, 'propagateEvents');
- },
-
- mouseLeave: function() {
- if (this._mouseDown) {
- set(this, 'isActive', false);
- this._mouseEntered = false;
- }
- },
-
- mouseEnter: function() {
- if (this._mouseDown) {
- set(this, 'isActive', true);
- this._mouseEntered = true;
- }
- },
-
- mouseUp: function(event) {
- if (get(this, 'isActive')) {
- // Actually invoke the button's target and action.
- // This method comes from the Ember.TargetActionSupport mixin.
- this.triggerAction();
- set(this, 'isActive', false);
- }
-
- this._mouseDown = false;
- this._mouseEntered = false;
- return get(this, 'propagateEvents');
- },
-
- keyDown: function(event) {
- // Handle space or enter
- if (event.keyCode === 13 || event.keyCode === 32) {
- this.mouseDown();
- }
- },
-
- keyUp: function(event) {
- // Handle space or enter
- if (event.keyCode === 13 || event.keyCode === 32) {
- this.mouseUp();
- }
- },
-
- // TODO: Handle proper touch behavior. Including should make inactive when
- // finger moves more than 20x outside of the edge of the button (vs mouse
- // which goes inactive as soon as mouse goes out of edges.)
-
- touchStart: function(touch) {
- return this.mouseDown(touch);
- },
-
- touchEnd: function(touch) {
- return this.mouseUp(touch);
- },
-
- init: function() {
- Ember.deprecate("Ember.Button is deprecated and will be removed from future releases. Consider using the `{{action}}` helper.");
- this._super();
- }
-});
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-var get = Ember.get, set = Ember.set;
-
-/**
- @class
-
- The `Ember.TextArea` view class renders a
- [textarea](https://developer.mozilla.org/en/HTML/Element/textarea) element.
- It allows for binding Ember properties to the text area contents (`value`),
- live-updating as the user inputs text.
-
- ## Layout and LayoutName properties
-
- Because HTML `textarea` elements do not contain inner HTML the `layout` and `layoutName`
- properties will not be applied. See `Ember.View`'s layout section for more information.
-
- @extends Ember.View
- @extends Ember.TextSupport
-*/
-Ember.TextArea = Ember.View.extend(Ember.TextSupport,
-/** @scope Ember.TextArea.prototype */ {
-
- classNames: ['ember-text-area'],
-
- tagName: "textarea",
- attributeBindings: ['rows', 'cols'],
- rows: null,
- cols: null,
-
- _updateElementValue: Ember.observer(function() {
- // We do this check so cursor position doesn't get affected in IE
- var value = get(this, 'value'),
- $el = this.$();
- if ($el && value !== $el.val()) {
- $el.val(value);
- }
- }, 'value'),
-
- /** @private */
- init: function() {
- this._super();
- this.on("didInsertElement", this, this._updateElementValue);
- }
-
-});
-
-})();
-
-
-
-(function() {
-Ember.TabContainerView = Ember.View.extend({
- init: function() {
- Ember.deprecate("Ember.TabContainerView is deprecated and will be removed from future releases.");
- this._super();
- }
-});
-
-})();
-
-
-
-(function() {
-var get = Ember.get;
-
-Ember.TabPaneView = Ember.View.extend({
- tabsContainer: Ember.computed(function() {
- return this.nearestInstanceOf(Ember.TabContainerView);
- }).property().volatile(),
-
- isVisible: Ember.computed(function() {
- return get(this, 'viewName') === get(this, 'tabsContainer.currentView');
- }).property('tabsContainer.currentView').volatile(),
-
- init: function() {
- Ember.deprecate("Ember.TabPaneView is deprecated and will be removed from future releases.");
- this._super();
- }
-});
-
-})();
-
-
-
-(function() {
-var get = Ember.get, setPath = Ember.setPath;
-
-Ember.TabView = Ember.View.extend({
- tabsContainer: Ember.computed(function() {
- return this.nearestInstanceOf(Ember.TabContainerView);
- }).property().volatile(),
-
- mouseUp: function() {
- setPath(this, 'tabsContainer.currentView', get(this, 'value'));
- },
-
- init: function() {
- Ember.deprecate("Ember.TabView is deprecated and will be removed from future releases.");
- this._super();
- }
-});
-
-})();
-
-
-
-(function() {
-
-})();
-
-
-
-(function() {
-/*jshint eqeqeq:false */
-
-var set = Ember.set, get = Ember.get;
-var indexOf = Ember.EnumerableUtils.indexOf, indexesOf = Ember.EnumerableUtils.indexesOf;
-
-/**
- @class
-
- The Ember.Select view class renders a
- [select](https://developer.mozilla.org/en/HTML/Element/select) HTML element,
- allowing the user to choose from a list of options. The selected option(s)
- are updated live in the `selection` property, while the corresponding value
- is updated in the `value` property.
-
- ### Using Strings
- The simplest version of an Ember.Select takes an array of strings for the options
- of a select box and a valueBinding to set the value.
-
- Example:
-
- App.controller = Ember.Object.create({
- selected: null,
- content: [
- "Yehuda",
- "Tom"
- ]
- })
-
- {{view Ember.Select
- contentBinding="App.controller.content"
- valueBinding="App.controller.selected"
- }}
-
- Would result in the following HTML:
-
- <select class="ember-select">
- <option value="Yehuda">Yehuda</option>
- <option value="Tom">Tom</option>
- </select>
-
- Selecting Yehuda from the select box will set `App.controller.selected` to "Yehuda"
-
- ### Using Objects
- An Ember.Select can also take an array of JS or Ember objects.
-
- When using objects you need to supply optionLabelPath and optionValuePath parameters
- which will be used to get the label and value for each of the options.
-
- Usually you will bind to either the selection or the value attribute of the select.
-
- Use selectionBinding if you would like to set the whole object as a property on the target.
- Use valueBinding if you would like to set just the value.
-
- Example using selectionBinding:
-
- App.controller = Ember.Object.create({
- selectedPerson: null,
- selectedPersonId: null,
- content: [
- Ember.Object.create({firstName: "Yehuda", id: 1}),
- Ember.Object.create({firstName: "Tom", id: 2})
- ]
- })
-
- {{view Ember.Select
- contentBinding="App.controller.content"
- optionLabelPath="content.firstName"
- optionValuePath="content.id"
- selectionBinding="App.controller.selectedPerson"
- prompt="Please Select"}}
-
- <select class="ember-select">
- <option value>Please Select</option>
- <option value="1">Yehuda</option>
- <option value="2">Tom</option>
- </select>
-
- Selecting Yehuda here will set `App.controller.selectedPerson` to
- the Yehuda object.
-
- Example using valueBinding:
-
- {{view Ember.Select
- contentBinding="App.controller.content"
- optionLabelPath="content.firstName"
- optionValuePath="content.id"
- valueBinding="App.controller.selectedPersonId"
- prompt="Please Select"}}
-
- Selecting Yehuda in this case will set `App.controller.selectedPersonId` to 1.
-
- @extends Ember.View
-*/
-Ember.Select = Ember.View.extend(
- /** @scope Ember.Select.prototype */ {
-
- tagName: 'select',
- classNames: ['ember-select'],
- defaultTemplate: Ember.Handlebars.compile('{{#if view.prompt}}<option value>{{view.prompt}}</option>{{/if}}{{#each view.content}}{{view Ember.SelectOption contentBinding="this"}}{{/each}}'),
- attributeBindings: ['multiple', 'tabindex'],
-
- /**
- The `multiple` attribute of the select element. Indicates whether multiple
- options can be selected.
-
- @type Boolean
- @default false
- */
- multiple: false,
-
- /**
- The list of options.
-
- If `optionLabelPath` and `optionValuePath` are not overridden, this should
- be a list of strings, which will serve simultaneously as labels and values.
-
- Otherwise, this should be a list of objects. For instance:
-
- content: Ember.A([
- { id: 1, firstName: 'Yehuda' },
- { id: 2, firstName: 'Tom' }
- ]),
- optionLabelPath: 'content.firstName',
- optionValuePath: 'content.id'
-
- @type Array
- @default null
- */
- content: null,
-
- /**
- When `multiple` is false, the element of `content` that is currently
- selected, if any.
-
- When `multiple` is true, an array of such elements.
-
- @type Object or Array
- @default null
- */
- selection: null,
-
- /**
- In single selection mode (when `multiple` is false), value can be used to get
- the current selection's value or set the selection by it's value.
-
- It is not currently supported in multiple selection mode.
-
- @type String
- @default null
- */
- value: Ember.computed(function(key, value) {
- if (arguments.length === 2) { return value; }
-
- var valuePath = get(this, 'optionValuePath').replace(/^content\.?/, '');
- return valuePath ? get(this, 'selection.' + valuePath) : get(this, 'selection');
- }).property('selection').cacheable(),
-
- /**
- If given, a top-most dummy option will be rendered to serve as a user
- prompt.
-
- @type String
- @default null
- */
- prompt: null,
-
- /**
- The path of the option labels. See `content`.
-
- @type String
- @default 'content'
- */
- optionLabelPath: 'content',
-
- /**
- The path of the option values. See `content`.
-
- @type String
- @default 'content'
- */
- optionValuePath: 'content',
-
- _change: function() {
- if (get(this, 'multiple')) {
- this._changeMultiple();
- } else {
- this._changeSingle();
- }
- },
-
- selectionDidChange: Ember.observer(function() {
- var selection = get(this, 'selection'),
- isArray = Ember.isArray(selection);
- if (get(this, 'multiple')) {
- if (!isArray) {
- set(this, 'selection', Ember.A([selection]));
- return;
- }
- this._selectionDidChangeMultiple();
- } else {
- this._selectionDidChangeSingle();
- }
- }, 'selection'),
-
- valueDidChange: Ember.observer(function() {
- var content = get(this, 'content'),
- value = get(this, 'value'),
- valuePath = get(this, 'optionValuePath').replace(/^content\.?/, ''),
- selectedValue = (valuePath ? get(this, 'selection.' + valuePath) : get(this, 'selection')),
- selection;
-
- if (value !== selectedValue) {
- selection = content.find(function(obj) {
- return value === (valuePath ? get(obj, valuePath) : obj);
- });
-
- this.set('selection', selection);
- }
- }, 'value'),
-
-
- _triggerChange: function() {
- var selection = get(this, 'selection');
-
- if (selection) { this.selectionDidChange(); }
-
- this._change();
- },
-
- _changeSingle: function() {
- var selectedIndex = this.$()[0].selectedIndex,
- content = get(this, 'content'),
- prompt = get(this, 'prompt');
-
- if (!content) { return; }
- if (prompt && selectedIndex === 0) { set(this, 'selection', null); return; }
-
- if (prompt) { selectedIndex -= 1; }
- set(this, 'selection', content.objectAt(selectedIndex));
- },
-
- _changeMultiple: function() {
- var options = this.$('option:selected'),
- prompt = get(this, 'prompt'),
- offset = prompt ? 1 : 0,
- content = get(this, 'content');
-
- if (!content){ return; }
- if (options) {
- var selectedIndexes = options.map(function(){
- return this.index - offset;
- }).toArray();
- set(this, 'selection', content.objectsAt(selectedIndexes));
- }
- },
-
- _selectionDidChangeSingle: function() {
- var el = this.get('element');
- if (!el) { return; }
-
- var content = get(this, 'content'),
- selection = get(this, 'selection'),
- selectionIndex = content ? indexOf(content, selection) : -1,
- prompt = get(this, 'prompt');
-
- if (prompt) { selectionIndex += 1; }
- if (el) { el.selectedIndex = selectionIndex; }
- },
-
- _selectionDidChangeMultiple: function() {
- var content = get(this, 'content'),
- selection = get(this, 'selection'),
- selectedIndexes = content ? indexesOf(content, selection) : [-1],
- prompt = get(this, 'prompt'),
- offset = prompt ? 1 : 0,
- options = this.$('option'),
- adjusted;
-
- if (options) {
- options.each(function() {
- adjusted = this.index > -1 ? this.index + offset : -1;
- this.selected = indexOf(selectedIndexes, adjusted) > -1;
- });
- }
- },
-
- init: function() {
- this._super();
- this.on("didInsertElement", this, this._triggerChange);
- this.on("change", this, this._change);
- }
-});
-
-Ember.SelectOption = Ember.View.extend({
- tagName: 'option',
- attributeBindings: ['value', 'selected'],
-
- defaultTemplate: function(context, options) {
- options = { data: options.data, hash: {} };
- Ember.Handlebars.helpers.bind.call(context, "view.label", options);
- },
-
- init: function() {
- this.labelPathDidChange();
- this.valuePathDidChange();
-
- this._super();
- },
-
- selected: Ember.computed(function() {
- var content = get(this, 'content'),
- selection = get(this, 'parentView.selection');
- if (get(this, 'parentView.multiple')) {
- return selection && indexOf(selection, content) > -1;
- } else {
- // Primitives get passed through bindings as objects... since
- // `new Number(4) !== 4`, we use `==` below
- return content == selection;
- }
- }).property('content', 'parentView.selection').volatile(),
-
- labelPathDidChange: Ember.observer(function() {
- var labelPath = get(this, 'parentView.optionLabelPath');
-
- if (!labelPath) { return; }
-
- Ember.defineProperty(this, 'label', Ember.computed(function() {
- return get(this, labelPath);
- }).property(labelPath).cacheable());
- }, 'parentView.optionLabelPath'),
-
- valuePathDidChange: Ember.observer(function() {
- var valuePath = get(this, 'parentView.optionValuePath');
-
- if (!valuePath) { return; }
-
- Ember.defineProperty(this, 'value', Ember.computed(function() {
- return get(this, valuePath);
- }).property(valuePath).cacheable());
- }, 'parentView.optionValuePath')
-});
-
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-/*globals Handlebars */
-// Find templates stored in the head tag as script tags and make them available
-// to Ember.CoreView in the global Ember.TEMPLATES object. This will be run as as
-// jQuery DOM-ready callback.
-//
-// Script tags with "text/x-handlebars" will be compiled
-// with Ember's Handlebars and are suitable for use as a view's template.
-// Those with type="text/x-raw-handlebars" will be compiled with regular
-// Handlebars and are suitable for use in views' computed properties.
-Ember.Handlebars.bootstrap = function(ctx) {
- var selectors = 'script[type="text/x-handlebars"], script[type="text/x-raw-handlebars"]';
-
- Ember.$(selectors, ctx)
- .each(function() {
- // Get a reference to the script tag
- var script = Ember.$(this),
- type = script.attr('type');
-
- var compile = (script.attr('type') === 'text/x-raw-handlebars') ?
- Ember.$.proxy(Handlebars.compile, Handlebars) :
- Ember.$.proxy(Ember.Handlebars.compile, Ember.Handlebars),
- // Get the name of the script, used by Ember.View's templateName property.
- // First look for data-template-name attribute, then fall back to its
- // id if no name is found.
- templateName = script.attr('data-template-name') || script.attr('id'),
- template = compile(script.html()),
- view, viewPath, elementId, options;
-
- if (templateName) {
- // For templates which have a name, we save them and then remove them from the DOM
- Ember.TEMPLATES[templateName] = template;
-
- // Remove script tag from DOM
- script.remove();
- } else {
- if (script.parents('head').length !== 0) {
- // don't allow inline templates in the head
- throw new Ember.Error("Template found in <head> without a name specified. " +
- "Please provide a data-template-name attribute.\n" +
- script.html());
- }
-
- // For templates which will be evaluated inline in the HTML document, instantiates a new
- // view, and replaces the script tag holding the template with the new
- // view's DOM representation.
- //
- // Users can optionally specify a custom view subclass to use by setting the
- // data-view attribute of the script tag.
- viewPath = script.attr('data-view');
- view = viewPath ? Ember.get(viewPath) : Ember.View;
-
- // Get the id of the script, used by Ember.View's elementId property,
- // Look for data-element-id attribute.
- elementId = script.attr('data-element-id');
-
- options = { template: template };
- if (elementId) { options.elementId = elementId; }
-
- view = view.create(options);
-
- view._insertElementLater(function() {
- script.replaceWith(this.$());
-
- // Avoid memory leak in IE
- script = null;
- });
- }
- });
-};
-
-/** @private */
-function bootstrap() {
- Ember.Handlebars.bootstrap( Ember.$(document) );
-}
-
-/*
- We tie this to application.load to ensure that we've at least
- attempted to bootstrap at the point that the application is loaded.
-
- We also tie this to document ready since we're guaranteed that all
- the inline templates are present at this point.
-
- There's no harm to running this twice, since we remove the templates
- from the DOM after processing.
-*/
-
-Ember.$(document).ready(bootstrap);
-Ember.onLoad('application', bootstrap);
-
-})();
-
-
-
-(function() {
-// ==========================================================================
-// Project: Ember Handlebars Views
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
-// Version: v1.0.pre
-// Last commit: 7955b85 (2012-08-03 14:50:17 -0700)
-
-
-(function() {
-// ==========================================================================
-// Project: Ember
-// Copyright: ©2011 Strobe Inc. and contributors.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-})();
-
+// Version: v1.0.pre
+// Last commit: 7955b85 (2012-08-03 14:50:17 -0700)
+
+
+(function() {
+/*global __fail__*/
+
+if ('undefined' === typeof Ember) {
+ Ember = {};
+
+ if ('undefined' !== typeof window) {
+ window.Em = window.Ember = Em = Ember;
+ }
+}
+
+Ember.ENV = 'undefined' === typeof ENV ? {} : ENV;
+
+if (!('MANDATORY_SETTER' in Ember.ENV)) {
+ Ember.ENV.MANDATORY_SETTER = true; // default to true for debug dist
+}
+
+/**
+ Define an assertion that will throw an exception if the condition is not
+ met. Ember build tools will remove any calls to Ember.assert() when
+ doing a production build. Example:
+
+ // Test for truthiness
+ Ember.assert('Must pass a valid object', obj);
+ // Fail unconditionally
+ Ember.assert('This code path should never be run')
+
+ @static
+ @function
+ @param {String} desc
+ A description of the assertion. This will become the text of the Error
+ thrown if the assertion fails.
+
+ @param {Boolean} test
+ Must be truthy for the assertion to pass. If falsy, an exception will be
+ thrown.
+*/
+Ember.assert = function(desc, test) {
+ if (!test) throw new Error("assertion failed: "+desc);
+};
+
+
+/**
+ Display a warning with the provided message. Ember build tools will
+ remove any calls to Ember.warn() when doing a production build.
+
+ @static
+ @function
+ @param {String} message
+ A warning to display.
+
+ @param {Boolean} test
+ An optional boolean. If falsy, the warning will be displayed.
+*/
+Ember.warn = function(message, test) {
+ if (!test) {
+ Ember.Logger.warn("WARNING: "+message);
+ if ('trace' in Ember.Logger) Ember.Logger.trace();
+ }
+};
+
+/**
+ Display a deprecation warning with the provided message and a stack trace
+ (Chrome and Firefox only). Ember build tools will remove any calls to
+ Ember.deprecate() when doing a production build.
+
+ @static
+ @function
+ @param {String} message
+ A description of the deprecation.
+
+ @param {Boolean} test
+ An optional boolean. If falsy, the deprecation will be displayed.
+*/
+Ember.deprecate = function(message, test) {
+ if (Ember && Ember.TESTING_DEPRECATION) { return; }
+
+ if (arguments.length === 1) { test = false; }
+ if (test) { return; }
+
+ if (Ember && Ember.ENV.RAISE_ON_DEPRECATION) { throw new Error(message); }
+
+ var error;
+
+ // When using new Error, we can't do the arguments check for Chrome. Alternatives are welcome
+ try { __fail__.fail(); } catch (e) { error = e; }
+
+ if (Ember.LOG_STACKTRACE_ON_DEPRECATION && error.stack) {
+ var stack, stackStr = '';
+ if (error['arguments']) {
+ // Chrome
+ stack = error.stack.replace(/^\s+at\s+/gm, '').
+ replace(/^([^\(]+?)([\n$])/gm, '{anonymous}($1)$2').
+ replace(/^Object.<anonymous>\s*\(([^\)]+)\)/gm, '{anonymous}($1)').split('\n');
+ stack.shift();
+ } else {
+ // Firefox
+ stack = error.stack.replace(/(?:\n@:0)?\s+$/m, '').
+ replace(/^\(/gm, '{anonymous}(').split('\n');
+ }
+
+ stackStr = "\n " + stack.slice(2).join("\n ");
+ message = message + stackStr;
+ }
+
+ Ember.Logger.warn("DEPRECATION: "+message);
+};
+
+
+
+/**
+ Display a deprecation warning with the provided message and a stack trace
+ (Chrome and Firefox only) when the wrapped method is called.
+
+ Ember build tools will not remove calls to Ember.deprecateFunc(), though
+ no warnings will be shown in production.
+
+ @static
+ @function
+ @param {String} message
+ A description of the deprecation.
+
+ @param {Function} func
+ The function to be deprecated.
+*/
+Ember.deprecateFunc = function(message, func) {
+ return function() {
+ Ember.deprecate(message);
+ return func.apply(this, arguments);
+ };
+};
+
+
+window.ember_assert = Ember.deprecateFunc("ember_assert is deprecated. Please use Ember.assert instead.", Ember.assert);
+window.ember_warn = Ember.deprecateFunc("ember_warn is deprecated. Please use Ember.warn instead.", Ember.warn);
+window.ember_deprecate = Ember.deprecateFunc("ember_deprecate is deprecated. Please use Ember.deprecate instead.", Ember.deprecate);
+window.ember_deprecateFunc = Ember.deprecateFunc("ember_deprecateFunc is deprecated. Please use Ember.deprecateFunc instead.", Ember.deprecateFunc);
+
+})();
+
+// Version: v1.0.pre
+// Last commit: 7955b85 (2012-08-03 14:50:17 -0700)
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Metal
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/*globals Em:true ENV */
+
+if ('undefined' === typeof Ember) {
+ // Create core object. Make it act like an instance of Ember.Namespace so that
+ // objects assigned to it are given a sane string representation.
+ Ember = {};
+}
+
+/**
+ @namespace
+ @name Ember
+ @version 1.0.pre
+
+ All Ember methods and functions are defined inside of this namespace.
+ You generally should not add new properties to this namespace as it may be
+ overwritten by future versions of Ember.
+
+ You can also use the shorthand "Em" instead of "Ember".
+
+ Ember-Runtime is a framework that provides core functions for
+ Ember including cross-platform functions, support for property
+ observing and objects. Its focus is on small size and performance. You can
+ use this in place of or along-side other cross-platform libraries such as
+ jQuery.
+
+ The core Runtime framework is based on the jQuery API with a number of
+ performance optimizations.
+*/
+
+// aliases needed to keep minifiers from removing the global context
+if ('undefined' !== typeof window) {
+ window.Em = window.Ember = Em = Ember;
+}
+
+// Make sure these are set whether Ember was already defined or not
+
+Ember.isNamespace = true;
+
+Ember.toString = function() { return "Ember"; };
+
+
+/**
+ @static
+ @type String
+ @default '1.0.pre'
+ @constant
+*/
+Ember.VERSION = '1.0.pre';
+
+/**
+ @static
+ @type Hash
+ @constant
+
+ Standard environmental variables. You can define these in a global `ENV`
+ variable before loading Ember to control various configuration
+ settings.
+*/
+Ember.ENV = Ember.ENV || ('undefined' === typeof ENV ? {} : ENV);
+
+Ember.config = Ember.config || {};
+
+// ..........................................................
+// BOOTSTRAP
+//
+
+/**
+ @static
+ @type Boolean
+ @default true
+ @constant
+
+ Determines whether Ember should enhances some built-in object
+ prototypes to provide a more friendly API. If enabled, a few methods
+ will be added to Function, String, and Array. Object.prototype will not be
+ enhanced, which is the one that causes most troubles for people.
+
+ In general we recommend leaving this option set to true since it rarely
+ conflicts with other code. If you need to turn it off however, you can
+ define an ENV.EXTEND_PROTOTYPES config to disable it.
+*/
+Ember.EXTEND_PROTOTYPES = (Ember.ENV.EXTEND_PROTOTYPES !== false);
+
+/**
+ @static
+ @type Boolean
+ @default true
+ @constant
+
+ Determines whether Ember logs a full stack trace during deprecation warnings
+*/
+Ember.LOG_STACKTRACE_ON_DEPRECATION = (Ember.ENV.LOG_STACKTRACE_ON_DEPRECATION !== false);
+
+/**
+ @static
+ @type Boolean
+ @default Ember.EXTEND_PROTOTYPES
+ @constant
+
+ Determines whether Ember should add ECMAScript 5 shims to older browsers.
+*/
+Ember.SHIM_ES5 = (Ember.ENV.SHIM_ES5 === false) ? false : Ember.EXTEND_PROTOTYPES;
+
+
+/**
+ @static
+ @type Boolean
+ @default true
+ @constant
+
+ Determines whether computed properties are cacheable by default.
+ This option will be removed for the 1.1 release.
+
+ When caching is enabled by default, you can use `volatile()` to disable
+ caching on individual computed properties.
+*/
+Ember.CP_DEFAULT_CACHEABLE = (Ember.ENV.CP_DEFAULT_CACHEABLE !== false);
+
+/**
+ @static
+ @type Boolean
+ @default true
+ @constant
+
+ Determines whether views render their templates using themselves
+ as the context, or whether it is inherited from the parent. This option
+ will be removed in the 1.1 release.
+
+ If you need to update your application to use the new context rules, simply
+ prefix property access with `view.`:
+
+ // Before:
+ {{#each App.photosController}}
+ Photo Title: {{title}}
+ {{#view App.InfoView contentBinding="this"}}
+ {{content.date}}
+ {{content.cameraType}}
+ {{otherViewProperty}}
+ {{/view}}
+ {{/each}}
+
+ // After:
+ {{#each App.photosController}}
+ Photo Title: {{title}}
+ {{#view App.InfoView}}
+ {{date}}
+ {{cameraType}}
+ {{view.otherViewProperty}}
+ {{/view}}
+ {{/each}}
+*/
+Ember.VIEW_PRESERVES_CONTEXT = (Ember.ENV.VIEW_PRESERVES_CONTEXT !== false);
+
+/**
+ Empty function. Useful for some operations.
+
+ @returns {Object}
+ @private
+*/
+Ember.K = function() { return this; };
+
+/**
+ @namespace
+ @name window
+ @description The global window object
+*/
+
+
+// Stub out the methods defined by the ember-debug package in case it's not loaded
+
+if ('undefined' === typeof Ember.assert) { Ember.assert = Ember.K; }
+if ('undefined' === typeof Ember.warn) { Ember.warn = Ember.K; }
+if ('undefined' === typeof Ember.deprecate) { Ember.deprecate = Ember.K; }
+if ('undefined' === typeof Ember.deprecateFunc) {
+ Ember.deprecateFunc = function(_, func) { return func; };
+}
+
+// These are deprecated but still supported
+
+if ('undefined' === typeof ember_assert) { window.ember_assert = Ember.K; }
+if ('undefined' === typeof ember_warn) { window.ember_warn = Ember.K; }
+if ('undefined' === typeof ember_deprecate) { window.ember_deprecate = Ember.K; }
+if ('undefined' === typeof ember_deprecateFunc) {
+ /** @private */
+ window.ember_deprecateFunc = function(_, func) { return func; };
+}
+
+
+// ..........................................................
+// LOGGER
+//
+
+/**
+ @class
+
+ Inside Ember-Metal, simply uses the window.console object.
+ Override this to provide more robust logging functionality.
+*/
+Ember.Logger = window.console || { log: Ember.K, warn: Ember.K, error: Ember.K, info: Ember.K, debug: Ember.K };
+
+})();
+
+
+
+(function() {
+/*jshint newcap:false*/
+
+// NOTE: There is a bug in jshint that doesn't recognize `Object()` without `new`
+// as being ok unless both `newcap:false` and not `use strict`.
+// https://github.com/jshint/jshint/issues/392
+
+// Testing this is not ideal, but we want to use native functions
+// if available, but not to use versions created by libraries like Prototype
+/** @private */
+var isNativeFunc = function(func) {
+ // This should probably work in all browsers likely to have ES5 array methods
+ return func && Function.prototype.toString.call(func).indexOf('[native code]') > -1;
+};
+
+// From: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/map
+/** @private */
+var arrayMap = isNativeFunc(Array.prototype.map) ? Array.prototype.map : function(fun /*, thisp */) {
+ //"use strict";
+
+ if (this === void 0 || this === null) {
+ throw new TypeError();
+ }
+
+ var t = Object(this);
+ var len = t.length >>> 0;
+ if (typeof fun !== "function") {
+ throw new TypeError();
+ }
+
+ var res = new Array(len);
+ var thisp = arguments[1];
+ for (var i = 0; i < len; i++) {
+ if (i in t) {
+ res[i] = fun.call(thisp, t[i], i, t);
+ }
+ }
+
+ return res;
+};
+
+// From: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/foreach
+/** @private */
+var arrayForEach = isNativeFunc(Array.prototype.forEach) ? Array.prototype.forEach : function(fun /*, thisp */) {
+ //"use strict";
+
+ if (this === void 0 || this === null) {
+ throw new TypeError();
+ }
+
+ var t = Object(this);
+ var len = t.length >>> 0;
+ if (typeof fun !== "function") {
+ throw new TypeError();
+ }
+
+ var thisp = arguments[1];
+ for (var i = 0; i < len; i++) {
+ if (i in t) {
+ fun.call(thisp, t[i], i, t);
+ }
+ }
+};
+
+/** @private */
+var arrayIndexOf = isNativeFunc(Array.prototype.indexOf) ? Array.prototype.indexOf : function (obj, fromIndex) {
+ if (fromIndex === null || fromIndex === undefined) { fromIndex = 0; }
+ else if (fromIndex < 0) { fromIndex = Math.max(0, this.length + fromIndex); }
+ for (var i = fromIndex, j = this.length; i < j; i++) {
+ if (this[i] === obj) { return i; }
+ }
+ return -1;
+};
+
+Ember.ArrayPolyfills = {
+ map: arrayMap,
+ forEach: arrayForEach,
+ indexOf: arrayIndexOf
+};
+
+var utils = Ember.EnumerableUtils = {
+ map: function(obj, callback, thisArg) {
+ return obj.map ? obj.map.call(obj, callback, thisArg) : arrayMap.call(obj, callback, thisArg);
+ },
+
+ forEach: function(obj, callback, thisArg) {
+ return obj.forEach ? obj.forEach.call(obj, callback, thisArg) : arrayForEach.call(obj, callback, thisArg);
+ },
+
+ indexOf: function(obj, element, index) {
+ return obj.indexOf ? obj.indexOf.call(obj, element, index) : arrayIndexOf.call(obj, element, index);
+ },
+
+ indexesOf: function(obj, elements) {
+ return elements === undefined ? [] : utils.map(elements, function(item) {
+ return utils.indexOf(obj, item);
+ });
+ },
+
+ removeObject: function(array, item) {
+ var index = utils.indexOf(array, item);
+ if (index !== -1) { array.splice(index, 1); }
+ }
+};
+
+
+if (Ember.SHIM_ES5) {
+ if (!Array.prototype.map) {
+ /** @private */
+ Array.prototype.map = arrayMap;
+ }
+
+ if (!Array.prototype.forEach) {
+ /** @private */
+ Array.prototype.forEach = arrayForEach;
+ }
+
+ if (!Array.prototype.indexOf) {
+ /** @private */
+ Array.prototype.indexOf = arrayIndexOf;
+ }
+}
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Metal
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/*globals Node */
+/**
+ @class
+
+ Platform specific methods and feature detectors needed by the framework.
+
+ @name Ember.platform
+*/
+var platform = Ember.platform = {};
+
+/**
+ Identical to Object.create(). Implements if not available natively.
+ @memberOf Ember.platform
+ @name create
+*/
+Ember.create = Object.create;
+
+if (!Ember.create) {
+ /** @private */
+ var K = function() {};
+
+ Ember.create = function(obj, props) {
+ K.prototype = obj;
+ obj = new K();
+ if (props) {
+ K.prototype = obj;
+ for (var prop in props) {
+ K.prototype[prop] = props[prop].value;
+ }
+ obj = new K();
+ }
+ K.prototype = null;
+
+ return obj;
+ };
+
+ Ember.create.isSimulated = true;
+}
+
+/** @private */
+var defineProperty = Object.defineProperty;
+var canRedefineProperties, canDefinePropertyOnDOM;
+
+// Catch IE8 where Object.defineProperty exists but only works on DOM elements
+if (defineProperty) {
+ try {
+ defineProperty({}, 'a',{get:function(){}});
+ } catch (e) {
+ /** @private */
+ defineProperty = null;
+ }
+}
+
+if (defineProperty) {
+ // Detects a bug in Android <3.2 where you cannot redefine a property using
+ // Object.defineProperty once accessors have already been set.
+ /** @private */
+ canRedefineProperties = (function() {
+ var obj = {};
+
+ defineProperty(obj, 'a', {
+ configurable: true,
+ enumerable: true,
+ get: function() { },
+ set: function() { }
+ });
+
+ defineProperty(obj, 'a', {
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ value: true
+ });
+
+ return obj.a === true;
+ })();
+
+ // This is for Safari 5.0, which supports Object.defineProperty, but not
+ // on DOM nodes.
+ /** @private */
+ canDefinePropertyOnDOM = (function(){
+ try {
+ defineProperty(document.createElement('div'), 'definePropertyOnDOM', {});
+ return true;
+ } catch(e) { }
+
+ return false;
+ })();
+
+ if (!canRedefineProperties) {
+ /** @private */
+ defineProperty = null;
+ } else if (!canDefinePropertyOnDOM) {
+ /** @private */
+ defineProperty = function(obj, keyName, desc){
+ var isNode;
+
+ if (typeof Node === "object") {
+ isNode = obj instanceof Node;
+ } else {
+ isNode = typeof obj === "object" && typeof obj.nodeType === "number" && typeof obj.nodeName === "string";
+ }
+
+ if (isNode) {
+ // TODO: Should we have a warning here?
+ return (obj[keyName] = desc.value);
+ } else {
+ return Object.defineProperty(obj, keyName, desc);
+ }
+ };
+ }
+}
+
+/**
+ Identical to Object.defineProperty(). Implements as much functionality
+ as possible if not available natively.
+
+ @memberOf Ember.platform
+ @name defineProperty
+ @param {Object} obj The object to modify
+ @param {String} keyName property name to modify
+ @param {Object} desc descriptor hash
+ @returns {void}
+*/
+platform.defineProperty = defineProperty;
+
+/**
+ Set to true if the platform supports native getters and setters.
+
+ @memberOf Ember.platform
+ @name hasPropertyAccessors
+*/
+platform.hasPropertyAccessors = true;
+
+if (!platform.defineProperty) {
+ platform.hasPropertyAccessors = false;
+
+ platform.defineProperty = function(obj, keyName, desc) {
+ if (!desc.get) { obj[keyName] = desc.value; }
+ };
+
+ platform.defineProperty.isSimulated = true;
+}
+
+if (Ember.ENV.MANDATORY_SETTER && !platform.hasPropertyAccessors) {
+ Ember.ENV.MANDATORY_SETTER = false;
+}
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Metal
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var o_defineProperty = Ember.platform.defineProperty,
+ o_create = Ember.create,
+ // Used for guid generation...
+ GUID_KEY = '__ember'+ (+ new Date()),
+ uuid = 0,
+ numberCache = [],
+ stringCache = {};
+
+var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
+
+/**
+ @private
+ @static
+ @type String
+ @constant
+
+ A unique key used to assign guids and other private metadata to objects.
+ If you inspect an object in your browser debugger you will often see these.
+ They can be safely ignored.
+
+ On browsers that support it, these properties are added with enumeration
+ disabled so they won't show up when you iterate over your properties.
+*/
+Ember.GUID_KEY = GUID_KEY;
+
+var GUID_DESC = {
+ writable: false,
+ configurable: false,
+ enumerable: false,
+ value: null
+};
+
+/**
+ @private
+
+ Generates a new guid, optionally saving the guid to the object that you
+ pass in. You will rarely need to use this method. Instead you should
+ call Ember.guidFor(obj), which return an existing guid if available.
+
+ @param {Object} obj
+ Optional object the guid will be used for. If passed in, the guid will
+ be saved on the object and reused whenever you pass the same object
+ again.
+
+ If no object is passed, just generate a new guid.
+
+ @param {String} prefix
+ Optional prefix to place in front of the guid. Useful when you want to
+ separate the guid into separate namespaces.
+
+ @returns {String} the guid
+*/
+Ember.generateGuid = function generateGuid(obj, prefix) {
+ if (!prefix) prefix = 'ember';
+ var ret = (prefix + (uuid++));
+ if (obj) {
+ GUID_DESC.value = ret;
+ o_defineProperty(obj, GUID_KEY, GUID_DESC);
+ }
+ return ret ;
+};
+
+/**
+ @private
+
+ Returns a unique id for the object. If the object does not yet have
+ a guid, one will be assigned to it. You can call this on any object,
+ Ember.Object-based or not, but be aware that it will add a _guid property.
+
+ You can also use this method on DOM Element objects.
+
+ @method
+ @param obj {Object} any object, string, number, Element, or primitive
+ @returns {String} the unique guid for this instance.
+*/
+Ember.guidFor = function guidFor(obj) {
+
+ // special cases where we don't want to add a key to object
+ if (obj === undefined) return "(undefined)";
+ if (obj === null) return "(null)";
+
+ var cache, ret;
+ var type = typeof obj;
+
+ // Don't allow prototype changes to String etc. to change the guidFor
+ switch(type) {
+ case 'number':
+ ret = numberCache[obj];
+ if (!ret) ret = numberCache[obj] = 'nu'+obj;
+ return ret;
+
+ case 'string':
+ ret = stringCache[obj];
+ if (!ret) ret = stringCache[obj] = 'st'+(uuid++);
+ return ret;
+
+ case 'boolean':
+ return obj ? '(true)' : '(false)';
+
+ default:
+ if (obj[GUID_KEY]) return obj[GUID_KEY];
+ if (obj === Object) return '(Object)';
+ if (obj === Array) return '(Array)';
+ ret = 'ember'+(uuid++);
+ GUID_DESC.value = ret;
+ o_defineProperty(obj, GUID_KEY, GUID_DESC);
+ return ret;
+ }
+};
+
+// ..........................................................
+// META
+//
+
+var META_DESC = {
+ writable: true,
+ configurable: false,
+ enumerable: false,
+ value: null
+};
+
+var META_KEY = Ember.GUID_KEY+'_meta';
+
+/**
+ The key used to store meta information on object for property observing.
+
+ @static
+ @type String
+*/
+Ember.META_KEY = META_KEY;
+
+// Placeholder for non-writable metas.
+var EMPTY_META = {
+ descs: {},
+ watching: {}
+};
+
+if (MANDATORY_SETTER) { EMPTY_META.values = {}; }
+
+Ember.EMPTY_META = EMPTY_META;
+
+if (Object.freeze) Object.freeze(EMPTY_META);
+
+var isDefinePropertySimulated = Ember.platform.defineProperty.isSimulated;
+
+function Meta(obj) {
+ this.descs = {};
+ this.watching = {};
+ this.cache = {};
+ this.source = obj;
+}
+
+if (isDefinePropertySimulated) {
+ // on platforms that don't support enumerable false
+ // make meta fail jQuery.isPlainObject() to hide from
+ // jQuery.extend() by having a property that fails
+ // hasOwnProperty check.
+ Meta.prototype.__preventPlainObject__ = true;
+}
+
+/**
+ @private
+ @function
+
+ Retrieves the meta hash for an object. If 'writable' is true ensures the
+ hash is writable for this object as well.
+
+ The meta object contains information about computed property descriptors as
+ well as any watched properties and other information. You generally will
+ not access this information directly but instead work with higher level
+ methods that manipulate this hash indirectly.
+
+ @param {Object} obj
+ The object to retrieve meta for
+
+ @param {Boolean} writable
+ Pass false if you do not intend to modify the meta hash, allowing the
+ method to avoid making an unnecessary copy.
+
+ @returns {Hash}
+*/
+Ember.meta = function meta(obj, writable) {
+
+ var ret = obj[META_KEY];
+ if (writable===false) return ret || EMPTY_META;
+
+ if (!ret) {
+ if (!isDefinePropertySimulated) o_defineProperty(obj, META_KEY, META_DESC);
+
+ ret = new Meta(obj);
+
+ if (MANDATORY_SETTER) { ret.values = {}; }
+
+ obj[META_KEY] = ret;
+
+ // make sure we don't accidentally try to create constructor like desc
+ ret.descs.constructor = null;
+
+ } else if (ret.source !== obj) {
+ if (!isDefinePropertySimulated) o_defineProperty(obj, META_KEY, META_DESC);
+
+ ret = o_create(ret);
+ ret.descs = o_create(ret.descs);
+ ret.watching = o_create(ret.watching);
+ ret.cache = {};
+ ret.source = obj;
+
+ if (MANDATORY_SETTER) { ret.values = o_create(ret.values); }
+
+ obj[META_KEY] = ret;
+ }
+ return ret;
+};
+
+Ember.getMeta = function getMeta(obj, property) {
+ var meta = Ember.meta(obj, false);
+ return meta[property];
+};
+
+Ember.setMeta = function setMeta(obj, property, value) {
+ var meta = Ember.meta(obj, true);
+ meta[property] = value;
+ return value;
+};
+
+/**
+ @private
+
+ In order to store defaults for a class, a prototype may need to create
+ a default meta object, which will be inherited by any objects instantiated
+ from the class's constructor.
+
+ However, the properties of that meta object are only shallow-cloned,
+ so if a property is a hash (like the event system's `listeners` hash),
+ it will by default be shared across all instances of that class.
+
+ This method allows extensions to deeply clone a series of nested hashes or
+ other complex objects. For instance, the event system might pass
+ ['listeners', 'foo:change', 'ember157'] to `prepareMetaPath`, which will
+ walk down the keys provided.
+
+ For each key, if the key does not exist, it is created. If it already
+ exists and it was inherited from its constructor, the constructor's
+ key is cloned.
+
+ You can also pass false for `writable`, which will simply return
+ undefined if `prepareMetaPath` discovers any part of the path that
+ shared or undefined.
+
+ @param {Object} obj The object whose meta we are examining
+ @param {Array} path An array of keys to walk down
+ @param {Boolean} writable whether or not to create a new meta
+ (or meta property) if one does not already exist or if it's
+ shared with its constructor
+*/
+Ember.metaPath = function metaPath(obj, path, writable) {
+ var meta = Ember.meta(obj, writable), keyName, value;
+
+ for (var i=0, l=path.length; i<l; i++) {
+ keyName = path[i];
+ value = meta[keyName];
+
+ if (!value) {
+ if (!writable) { return undefined; }
+ value = meta[keyName] = { __ember_source__: obj };
+ } else if (value.__ember_source__ !== obj) {
+ if (!writable) { return undefined; }
+ value = meta[keyName] = o_create(value);
+ value.__ember_source__ = obj;
+ }
+
+ meta = value;
+ }
+
+ return value;
+};
+
+/**
+ @private
+
+ Wraps the passed function so that `this._super` will point to the superFunc
+ when the function is invoked. This is the primitive we use to implement
+ calls to super.
+
+ @param {Function} func
+ The function to call
+
+ @param {Function} superFunc
+ The super function.
+
+ @returns {Function} wrapped function.
+*/
+Ember.wrap = function(func, superFunc) {
+
+ function K() {}
+
+ var newFunc = function() {
+ var ret, sup = this._super;
+ this._super = superFunc || K;
+ ret = func.apply(this, arguments);
+ this._super = sup;
+ return ret;
+ };
+
+ newFunc.base = func;
+ return newFunc;
+};
+
+/**
+ Returns true if the passed object is an array or Array-like.
+
+ Ember Array Protocol:
+
+ - the object has an objectAt property
+ - the object is a native Array
+ - the object is an Object, and has a length property
+
+ Unlike Ember.typeOf this method returns true even if the passed object is
+ not formally array but appears to be array-like (i.e. implements Ember.Array)
+
+ Ember.isArray(); // false
+ Ember.isArray([]); // true
+ Ember.isArray( Ember.ArrayProxy.create({ content: [] }) ); // true
+
+ @param {Object} obj The object to test
+ @returns {Boolean}
+*/
+Ember.isArray = function(obj) {
+ if (!obj || obj.setInterval) { return false; }
+ if (Array.isArray && Array.isArray(obj)) { return true; }
+ if (Ember.Array && Ember.Array.detect(obj)) { return true; }
+ if ((obj.length !== undefined) && 'object'===typeof obj) { return true; }
+ return false;
+};
+
+/**
+ Forces the passed object to be part of an array. If the object is already
+ an array or array-like, returns the object. Otherwise adds the object to
+ an array. If obj is null or undefined, returns an empty array.
+
+ Ember.makeArray(); => []
+ Ember.makeArray(null); => []
+ Ember.makeArray(undefined); => []
+ Ember.makeArray('lindsay'); => ['lindsay']
+ Ember.makeArray([1,2,42]); => [1,2,42]
+
+ var controller = Ember.ArrayProxy.create({ content: [] });
+ Ember.makeArray(controller) === controller; => true
+
+ @param {Object} obj the object
+ @returns {Array}
+*/
+Ember.makeArray = function(obj) {
+ if (obj === null || obj === undefined) { return []; }
+ return Ember.isArray(obj) ? obj : [obj];
+};
+
+function canInvoke(obj, methodName) {
+ return !!(obj && typeof obj[methodName] === 'function');
+}
+
+/**
+ Checks to see if the `methodName` exists on the `obj`.
+
+ @function
+
+ @param {Object} obj The object to check for the method
+ @param {String} methodName The method name to check for
+*/
+Ember.canInvoke = canInvoke;
+
+/**
+ Checks to see if the `methodName` exists on the `obj`,
+ and if it does, invokes it with the arguments passed.
+
+ @function
+
+ @param {Object} obj The object to check for the method
+ @param {String} methodName The method name to check for
+ @param {Array} args The arguments to pass to the method
+
+ @returns {Boolean} true if the method does not return false
+ @returns {Boolean} false otherwise
+*/
+Ember.tryInvoke = function(obj, methodName, args) {
+ if (canInvoke(obj, methodName)) {
+ return obj[methodName].apply(obj, args);
+ }
+};
+
+})();
+
+
+
+(function() {
+/**
+ JavaScript (before ES6) does not have a Map implementation. Objects,
+ which are often used as dictionaries, may only have Strings as keys.
+
+ Because Ember has a way to get a unique identifier for every object
+ via `Ember.guidFor`, we can implement a performant Map with arbitrary
+ keys. Because it is commonly used in low-level bookkeeping, Map is
+ implemented as a pure JavaScript object for performance.
+
+ This implementation follows the current iteration of the ES6 proposal
+ for maps (http://wiki.ecmascript.org/doku.php?id=harmony:simple_maps_and_sets),
+ with two exceptions. First, because we need our implementation to be
+ pleasant on older browsers, we do not use the `delete` name (using
+ `remove` instead). Second, as we do not have the luxury of in-VM
+ iteration, we implement a forEach method for iteration.
+
+ Map is mocked out to look like an Ember object, so you can do
+ `Ember.Map.create()` for symmetry with other Ember classes.
+*/
+/** @private */
+var guidFor = Ember.guidFor,
+ indexOf = Ember.ArrayPolyfills.indexOf;
+
+var copy = function(obj) {
+ var output = {};
+
+ for (var prop in obj) {
+ if (obj.hasOwnProperty(prop)) { output[prop] = obj[prop]; }
+ }
+
+ return output;
+};
+
+var copyMap = function(original, newObject) {
+ var keys = original.keys.copy(),
+ values = copy(original.values);
+
+ newObject.keys = keys;
+ newObject.values = values;
+
+ return newObject;
+};
+
+// This class is used internally by Ember.js and Ember Data.
+// Please do not use it at this time. We plan to clean it up
+// and add many tests soon.
+var OrderedSet = Ember.OrderedSet = function() {
+ this.clear();
+};
+
+OrderedSet.create = function() {
+ return new OrderedSet();
+};
+
+OrderedSet.prototype = {
+ clear: function() {
+ this.presenceSet = {};
+ this.list = [];
+ },
+
+ add: function(obj) {
+ var guid = guidFor(obj),
+ presenceSet = this.presenceSet,
+ list = this.list;
+
+ if (guid in presenceSet) { return; }
+
+ presenceSet[guid] = true;
+ list.push(obj);
+ },
+
+ remove: function(obj) {
+ var guid = guidFor(obj),
+ presenceSet = this.presenceSet,
+ list = this.list;
+
+ delete presenceSet[guid];
+
+ var index = indexOf.call(list, obj);
+ if (index > -1) {
+ list.splice(index, 1);
+ }
+ },
+
+ isEmpty: function() {
+ return this.list.length === 0;
+ },
+
+ forEach: function(fn, self) {
+ // allow mutation during iteration
+ var list = this.list.slice();
+
+ for (var i = 0, j = list.length; i < j; i++) {
+ fn.call(self, list[i]);
+ }
+ },
+
+ toArray: function() {
+ return this.list.slice();
+ },
+
+ copy: function() {
+ var set = new OrderedSet();
+
+ set.presenceSet = copy(this.presenceSet);
+ set.list = this.list.slice();
+
+ return set;
+ }
+};
+
+/**
+ A Map stores values indexed by keys. Unlike JavaScript's
+ default Objects, the keys of a Map can be any JavaScript
+ object.
+
+ Internally, a Map has two data structures:
+
+ `keys`: an OrderedSet of all of the existing keys
+ `values`: a JavaScript Object indexed by the
+ Ember.guidFor(key)
+
+ When a key/value pair is added for the first time, we
+ add the key to the `keys` OrderedSet, and create or
+ replace an entry in `values`. When an entry is deleted,
+ we delete its entry in `keys` and `values`.
+*/
+
+/** @private */
+var Map = Ember.Map = function() {
+ this.keys = Ember.OrderedSet.create();
+ this.values = {};
+};
+
+Map.create = function() {
+ return new Map();
+};
+
+Map.prototype = {
+ /**
+ Retrieve the value associated with a given key.
+
+ @param {anything} key
+ @return {anything} the value associated with the key, or undefined
+ */
+ get: function(key) {
+ var values = this.values,
+ guid = guidFor(key);
+
+ return values[guid];
+ },
+
+ /**
+ Adds a value to the map. If a value for the given key has already been
+ provided, the new value will replace the old value.
+
+ @param {anything} key
+ @param {anything} value
+ */
+ set: function(key, value) {
+ var keys = this.keys,
+ values = this.values,
+ guid = guidFor(key);
+
+ keys.add(key);
+ values[guid] = value;
+ },
+
+ /**
+ Removes a value from the map for an associated key.
+
+ @param {anything} key
+ @returns {Boolean} true if an item was removed, false otherwise
+ */
+ remove: function(key) {
+ // don't use ES6 "delete" because it will be annoying
+ // to use in browsers that are not ES6 friendly;
+ var keys = this.keys,
+ values = this.values,
+ guid = guidFor(key),
+ value;
+
+ if (values.hasOwnProperty(guid)) {
+ keys.remove(key);
+ value = values[guid];
+ delete values[guid];
+ return true;
+ } else {
+ return false;
+ }
+ },
+
+ /**
+ Check whether a key is present.
+
+ @param {anything} key
+ @returns {Boolean} true if the item was present, false otherwise
+ */
+ has: function(key) {
+ var values = this.values,
+ guid = guidFor(key);
+
+ return values.hasOwnProperty(guid);
+ },
+
+ /**
+ Iterate over all the keys and values. Calls the function once
+ for each key, passing in the key and value, in that order.
+
+ The keys are guaranteed to be iterated over in insertion order.
+
+ @param {Function} callback
+ @param {anything} self if passed, the `this` value inside the
+ callback. By default, `this` is the map.
+ */
+ forEach: function(callback, self) {
+ var keys = this.keys,
+ values = this.values;
+
+ keys.forEach(function(key) {
+ var guid = guidFor(key);
+ callback.call(self, key, values[guid]);
+ });
+ },
+
+ copy: function() {
+ return copyMap(this, new Map());
+ }
+};
+
+var MapWithDefault = Ember.MapWithDefault = function(options) {
+ Map.call(this);
+ this.defaultValue = options.defaultValue;
+};
+
+MapWithDefault.create = function(options) {
+ if (options) {
+ return new MapWithDefault(options);
+ } else {
+ return new Map();
+ }
+};
+
+MapWithDefault.prototype = Ember.create(Map.prototype);
+
+MapWithDefault.prototype.get = function(key) {
+ var hasValue = this.has(key);
+
+ if (hasValue) {
+ return Map.prototype.get.call(this, key);
+ } else {
+ var defaultValue = this.defaultValue(key);
+ this.set(key, defaultValue);
+ return defaultValue;
+ }
+};
+
+MapWithDefault.prototype.copy = function() {
+ return copyMap(this, new MapWithDefault({
+ defaultValue: this.defaultValue
+ }));
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Metal
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var META_KEY = Ember.META_KEY, get, set;
+
+var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
+
+/** @private */
+var IS_GLOBAL = /^([A-Z$]|([0-9][A-Z$]))/;
+var IS_GLOBAL_PATH = /^([A-Z$]|([0-9][A-Z$])).*[\.\*]/;
+var HAS_THIS = /^this[\.\*]/;
+var FIRST_KEY = /^([^\.\*]+)/;
+
+// ..........................................................
+// GET AND SET
+//
+// If we are on a platform that supports accessors we can get use those.
+// Otherwise simulate accessors by looking up the property directly on the
+// object.
+
+/** @private */
+get = function get(obj, keyName) {
+ // Helpers that operate with 'this' within an #each
+ if (keyName === '') {
+ return obj;
+ }
+
+ if (!keyName && 'string'===typeof obj) {
+ keyName = obj;
+ obj = null;
+ }
+
+ if (!obj || keyName.indexOf('.') !== -1) {
+ return getPath(obj, keyName);
+ }
+
+ Ember.assert("You need to provide an object and key to `get`.", !!obj && keyName);
+
+ var meta = obj[META_KEY], desc = meta && meta.descs[keyName], ret;
+ if (desc) {
+ return desc.get(obj, keyName);
+ } else {
+ if (MANDATORY_SETTER && meta && meta.watching[keyName] > 0) {
+ ret = meta.values[keyName];
+ } else {
+ ret = obj[keyName];
+ }
+
+ if (ret === undefined &&
+ 'object' === typeof obj && !(keyName in obj) && 'function' === typeof obj.unknownProperty) {
+ return obj.unknownProperty(keyName);
+ }
+
+ return ret;
+ }
+};
+
+/** @private */
+set = function set(obj, keyName, value, tolerant) {
+ if (typeof obj === 'string') {
+ Ember.assert("Path '" + obj + "' must be global if no obj is given.", IS_GLOBAL.test(obj));
+ value = keyName;
+ keyName = obj;
+ obj = null;
+ }
+
+ if (!obj || keyName.indexOf('.') !== -1) {
+ return setPath(obj, keyName, value, tolerant);
+ }
+
+ Ember.assert("You need to provide an object and key to `set`.", !!obj && keyName !== undefined);
+ Ember.assert('calling set on destroyed object', !obj.isDestroyed);
+
+ var meta = obj[META_KEY], desc = meta && meta.descs[keyName],
+ isUnknown, currentValue;
+ if (desc) {
+ desc.set(obj, keyName, value);
+ }
+ else {
+ isUnknown = 'object' === typeof obj && !(keyName in obj);
+
+ // setUnknownProperty is called if `obj` is an object,
+ // the property does not already exist, and the
+ // `setUnknownProperty` method exists on the object
+ if (isUnknown && 'function' === typeof obj.setUnknownProperty) {
+ obj.setUnknownProperty(keyName, value);
+ } else if (meta && meta.watching[keyName] > 0) {
+ if (MANDATORY_SETTER) {
+ currentValue = meta.values[keyName];
+ } else {
+ currentValue = obj[keyName];
+ }
+ // only trigger a change if the value has changed
+ if (value !== currentValue) {
+ Ember.propertyWillChange(obj, keyName);
+ if (MANDATORY_SETTER) {
+ if (currentValue === undefined && !(keyName in obj)) {
+ Ember.defineProperty(obj, keyName, null, value); // setup mandatory setter
+ } else {
+ meta.values[keyName] = value;
+ }
+ } else {
+ obj[keyName] = value;
+ }
+ Ember.propertyDidChange(obj, keyName);
+ }
+ } else {
+ obj[keyName] = value;
+ }
+ }
+ return value;
+};
+
+/** @private */
+function firstKey(path) {
+ return path.match(FIRST_KEY)[0];
+}
+
+// assumes path is already normalized
+/** @private */
+function normalizeTuple(target, path) {
+ var hasThis = HAS_THIS.test(path),
+ isGlobal = !hasThis && IS_GLOBAL_PATH.test(path),
+ key;
+
+ if (!target || isGlobal) target = window;
+ if (hasThis) path = path.slice(5);
+
+ if (target === window) {
+ key = firstKey(path);
+ target = get(target, key);
+ path = path.slice(key.length+1);
+ }
+
+ // must return some kind of path to be valid else other things will break.
+ if (!path || path.length===0) throw new Error('Invalid Path');
+
+ return [ target, path ];
+}
+
+/** @private */
+function getPath(root, path) {
+ var hasThis, parts, tuple, idx, len;
+
+ // If there is no root and path is a key name, return that
+ // property from the global object.
+ // E.g. get('Ember') -> Ember
+ if (root === null && path.indexOf('.') === -1) { return get(window, path); }
+
+ // detect complicated paths and normalize them
+ hasThis = HAS_THIS.test(path);
+
+ if (!root || hasThis) {
+ tuple = normalizeTuple(root, path);
+ root = tuple[0];
+ path = tuple[1];
+ tuple.length = 0;
+ }
+
+ parts = path.split(".");
+ len = parts.length;
+ for (idx=0; root && idx<len; idx++) {
+ root = get(root, parts[idx], true);
+ if (root && root.isDestroyed) { return undefined; }
+ }
+ return root;
+}
+
+/** @private */
+function setPath(root, path, value, tolerant) {
+ var keyName;
+
+ // get the last part of the path
+ keyName = path.slice(path.lastIndexOf('.') + 1);
+
+ // get the first part of the part
+ path = path.slice(0, path.length-(keyName.length+1));
+
+ // unless the path is this, look up the first part to
+ // get the root
+ if (path !== 'this') {
+ root = getPath(root, path);
+ }
+
+ if (!keyName || keyName.length === 0) {
+ throw new Error('You passed an empty path');
+ }
+
+ if (!root) {
+ if (tolerant) { return; }
+ else { throw new Error('Object in path '+path+' could not be found or was destroyed.'); }
+ }
+
+ return set(root, keyName, value);
+}
+
+/**
+ @private
+
+ Normalizes a target/path pair to reflect that actual target/path that should
+ be observed, etc. This takes into account passing in global property
+ paths (i.e. a path beginning with a captial letter not defined on the
+ target) and * separators.
+
+ @param {Object} target
+ The current target. May be null.
+
+ @param {String} path
+ A path on the target or a global property path.
+
+ @returns {Array} a temporary array with the normalized target/path pair.
+*/
+Ember.normalizeTuple = function(target, path) {
+ return normalizeTuple(target, path);
+};
+
+Ember.getWithDefault = function(root, key, defaultValue) {
+ var value = get(root, key);
+
+ if (value === undefined) { return defaultValue; }
+ return value;
+};
+
+
+/**
+ @function
+
+ Gets the value of a property on an object. If the property is computed,
+ the function will be invoked. If the property is not defined but the
+ object implements the unknownProperty() method then that will be invoked.
+
+ If you plan to run on IE8 and older browsers then you should use this
+ method anytime you want to retrieve a property on an object that you don't
+ know for sure is private. (My convention only properties beginning with
+ an underscore '_' are considered private.)
+
+ On all newer browsers, you only need to use this method to retrieve
+ properties if the property might not be defined on the object and you want
+ to respect the unknownProperty() handler. Otherwise you can ignore this
+ method.
+
+ Note that if the obj itself is null, this method will simply return
+ undefined.
+
+ @param {Object} obj
+ The object to retrieve from.
+
+ @param {String} keyName
+ The property key to retrieve
+
+ @returns {Object} the property value or null.
+*/
+Ember.get = get;
+Ember.getPath = Ember.deprecateFunc('getPath is deprecated since get now supports paths', Ember.get);
+
+/**
+ @function
+
+ Sets the value of a property on an object, respecting computed properties
+ and notifying observers and other listeners of the change. If the
+ property is not defined but the object implements the unknownProperty()
+ method then that will be invoked as well.
+
+ If you plan to run on IE8 and older browsers then you should use this
+ method anytime you want to set a property on an object that you don't
+ know for sure is private. (My convention only properties beginning with
+ an underscore '_' are considered private.)
+
+ On all newer browsers, you only need to use this method to set
+ properties if the property might not be defined on the object and you want
+ to respect the unknownProperty() handler. Otherwise you can ignore this
+ method.
+
+ @param {Object} obj
+ The object to modify.
+
+ @param {String} keyName
+ The property key to set
+
+ @param {Object} value
+ The value to set
+
+ @returns {Object} the passed value.
+*/
+Ember.set = set;
+Ember.setPath = Ember.deprecateFunc('setPath is deprecated since set now supports paths', Ember.set);
+
+/**
+ Error-tolerant form of Ember.set. Will not blow up if any part of the
+ chain is undefined, null, or destroyed.
+
+ This is primarily used when syncing bindings, which may try to update after
+ an object has been destroyed.
+*/
+Ember.trySet = function(root, path, value) {
+ return set(root, path, value, true);
+};
+Ember.trySetPath = Ember.deprecateFunc('trySetPath has been renamed to trySet', Ember.trySet);
+
+/**
+ Returns true if the provided path is global (e.g., "MyApp.fooController.bar")
+ instead of local ("foo.bar.baz").
+
+ @param {String} path
+ @returns Boolean
+*/
+Ember.isGlobalPath = function(path) {
+ return IS_GLOBAL.test(path);
+};
+
+
+
+if (Ember.config.overrideAccessors) {
+ Ember.config.overrideAccessors();
+ get = Ember.get;
+ set = Ember.set;
+}
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Metal
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var GUID_KEY = Ember.GUID_KEY,
+ META_KEY = Ember.META_KEY,
+ EMPTY_META = Ember.EMPTY_META,
+ metaFor = Ember.meta,
+ o_create = Ember.create,
+ objectDefineProperty = Ember.platform.defineProperty;
+
+var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER;
+
+// ..........................................................
+// DESCRIPTOR
+//
+
+/**
+ @private
+ @constructor
+
+ Objects of this type can implement an interface to responds requests to
+ get and set. The default implementation handles simple properties.
+
+ You generally won't need to create or subclass this directly.
+*/
+var Descriptor = Ember.Descriptor = function() {};
+
+// ..........................................................
+// DEFINING PROPERTIES API
+//
+
+/**
+ @private
+
+ NOTE: This is a low-level method used by other parts of the API. You almost
+ never want to call this method directly. Instead you should use Ember.mixin()
+ to define new properties.
+
+ Defines a property on an object. This method works much like the ES5
+ Object.defineProperty() method except that it can also accept computed
+ properties and other special descriptors.
+
+ Normally this method takes only three parameters. However if you pass an
+ instance of Ember.Descriptor as the third param then you can pass an optional
+ value as the fourth parameter. This is often more efficient than creating
+ new descriptor hashes for each property.
+
+ ## Examples
+
+ // ES5 compatible mode
+ Ember.defineProperty(contact, 'firstName', {
+ writable: true,
+ configurable: false,
+ enumerable: true,
+ value: 'Charles'
+ });
+
+ // define a simple property
+ Ember.defineProperty(contact, 'lastName', undefined, 'Jolley');
+
+ // define a computed property
+ Ember.defineProperty(contact, 'fullName', Ember.computed(function() {
+ return this.firstName+' '+this.lastName;
+ }).property('firstName', 'lastName').cacheable());
+*/
+Ember.defineProperty = function(obj, keyName, desc, data, meta) {
+ // The first two parameters to defineProperty are mandatory:
+ //
+ // * obj: the object to define this property on. This may be
+ // a prototype.
+ // * keyName: the name of the property
+ //
+ // One and only one of the following two parameters must be
+ // provided:
+ //
+ // * desc: an instance of Ember.Descriptor (typically a
+ // computed property) or an ES5 descriptor.
+ // * data: something other than a descriptor, that will
+ // become the explicit value of this property.
+
+ var descs, existingDesc, watching, value;
+
+ if (!meta) meta = metaFor(obj);
+ descs = meta.descs;
+ existingDesc = meta.descs[keyName];
+ watching = meta.watching[keyName] > 0;
+
+ if (existingDesc instanceof Ember.Descriptor) {
+ existingDesc.teardown(obj, keyName);
+ }
+
+ if (desc instanceof Ember.Descriptor) {
+ value = desc;
+
+ descs[keyName] = desc;
+ if (MANDATORY_SETTER && watching) {
+ objectDefineProperty(obj, keyName, {
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ value: undefined // make enumerable
+ });
+ } else {
+ obj[keyName] = undefined; // make enumerable
+ }
+ desc.setup(obj, keyName);
+ } else {
+ descs[keyName] = undefined; // shadow descriptor in proto
+ if (desc == null) {
+ value = data;
+
+ if (MANDATORY_SETTER && watching) {
+ meta.values[keyName] = data;
+ objectDefineProperty(obj, keyName, {
+ configurable: true,
+ enumerable: true,
+ set: function() {
+ Ember.assert('Must use Ember.set() to access this property', false);
+ },
+ get: function() {
+ var meta = this[META_KEY];
+ return meta && meta.values[keyName];
+ }
+ });
+ } else {
+ obj[keyName] = data;
+ }
+ } else {
+ value = desc;
+
+ // compatibility with ES5
+ objectDefineProperty(obj, keyName, desc);
+ }
+ }
+
+ // if key is being watched, override chains that
+ // were initialized with the prototype
+ if (watching) { Ember.overrideChains(obj, keyName, meta); }
+
+ // The `value` passed to the `didDefineProperty` hook is
+ // either the descriptor or data, whichever was passed.
+ if (obj.didDefineProperty) { obj.didDefineProperty(obj, keyName, value); }
+
+ return this;
+};
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Metal
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var AFTER_OBSERVERS = ':change';
+var BEFORE_OBSERVERS = ':before';
+var guidFor = Ember.guidFor;
+
+var deferred = 0;
+var array_Slice = [].slice;
+
+/** @private */
+var ObserverSet = function () {
+ this.targetSet = {};
+};
+ObserverSet.prototype.add = function (target, path) {
+ var targetSet = this.targetSet,
+ targetGuid = Ember.guidFor(target),
+ pathSet = targetSet[targetGuid];
+ if (!pathSet) {
+ targetSet[targetGuid] = pathSet = {};
+ }
+ if (pathSet[path]) {
+ return false;
+ } else {
+ return pathSet[path] = true;
+ }
+};
+ObserverSet.prototype.clear = function () {
+ this.targetSet = {};
+};
+
+/** @private */
+var DeferredEventQueue = function() {
+ this.targetSet = {};
+ this.queue = [];
+};
+
+DeferredEventQueue.prototype.push = function(target, eventName, keyName) {
+ var targetSet = this.targetSet,
+ queue = this.queue,
+ targetGuid = Ember.guidFor(target),
+ eventNameSet = targetSet[targetGuid],
+ index;
+
+ if (!eventNameSet) {
+ targetSet[targetGuid] = eventNameSet = {};
+ }
+ index = eventNameSet[eventName];
+ if (index === undefined) {
+ eventNameSet[eventName] = queue.push(Ember.deferEvent(target, eventName, [target, keyName])) - 1;
+ } else {
+ queue[index] = Ember.deferEvent(target, eventName, [target, keyName]);
+ }
+};
+
+DeferredEventQueue.prototype.flush = function() {
+ var queue = this.queue;
+ this.queue = [];
+ this.targetSet = {};
+ for (var i=0, len=queue.length; i < len; ++i) {
+ queue[i]();
+ }
+};
+
+var queue = new DeferredEventQueue(), beforeObserverSet = new ObserverSet();
+
+/** @private */
+function notifyObservers(obj, eventName, keyName, forceNotification) {
+ if (deferred && !forceNotification) {
+ queue.push(obj, eventName, keyName);
+ } else {
+ Ember.sendEvent(obj, eventName, [obj, keyName]);
+ }
+}
+
+/** @private */
+function flushObserverQueue() {
+ beforeObserverSet.clear();
+
+ queue.flush();
+}
+
+Ember.beginPropertyChanges = function() {
+ deferred++;
+ return this;
+};
+
+Ember.endPropertyChanges = function() {
+ deferred--;
+ if (deferred<=0) flushObserverQueue();
+};
+
+/**
+ Make a series of property changes together in an
+ exception-safe way.
+
+ Ember.changeProperties(function() {
+ obj1.set('foo', mayBlowUpWhenSet);
+ obj2.set('bar', baz);
+ });
+*/
+Ember.changeProperties = function(cb, binding){
+ Ember.beginPropertyChanges();
+ try {
+ cb.call(binding);
+ } finally {
+ Ember.endPropertyChanges();
+ }
+};
+
+/**
+ Set a list of properties on an object. These properties are set inside
+ a single `beginPropertyChanges` and `endPropertyChanges` batch, so
+ observers will be buffered.
+*/
+Ember.setProperties = function(self, hash) {
+ Ember.changeProperties(function(){
+ for(var prop in hash) {
+ if (hash.hasOwnProperty(prop)) Ember.set(self, prop, hash[prop]);
+ }
+ });
+ return self;
+};
+
+
+/** @private */
+function changeEvent(keyName) {
+ return keyName+AFTER_OBSERVERS;
+}
+
+/** @private */
+function beforeEvent(keyName) {
+ return keyName+BEFORE_OBSERVERS;
+}
+
+Ember.addObserver = function(obj, path, target, method) {
+ Ember.addListener(obj, changeEvent(path), target, method);
+ Ember.watch(obj, path);
+ return this;
+};
+
+/** @private */
+Ember.observersFor = function(obj, path) {
+ return Ember.listenersFor(obj, changeEvent(path));
+};
+
+Ember.removeObserver = function(obj, path, target, method) {
+ Ember.unwatch(obj, path);
+ Ember.removeListener(obj, changeEvent(path), target, method);
+ return this;
+};
+
+Ember.addBeforeObserver = function(obj, path, target, method) {
+ Ember.addListener(obj, beforeEvent(path), target, method);
+ Ember.watch(obj, path);
+ return this;
+};
+
+// Suspend observer during callback.
+//
+// This should only be used by the target of the observer
+// while it is setting the observed path.
+/** @private */
+Ember._suspendBeforeObserver = function(obj, path, target, method, callback) {
+ return Ember._suspendListener(obj, beforeEvent(path), target, method, callback);
+};
+
+Ember._suspendObserver = function(obj, path, target, method, callback) {
+ return Ember._suspendListener(obj, changeEvent(path), target, method, callback);
+};
+
+/** @private */
+Ember.beforeObserversFor = function(obj, path) {
+ return Ember.listenersFor(obj, beforeEvent(path));
+};
+
+Ember.removeBeforeObserver = function(obj, path, target, method) {
+ Ember.unwatch(obj, path);
+ Ember.removeListener(obj, beforeEvent(path), target, method);
+ return this;
+};
+
+/** @private */
+Ember.notifyObservers = function(obj, keyName) {
+ if (obj.isDestroying) { return; }
+
+ notifyObservers(obj, changeEvent(keyName), keyName);
+};
+
+/** @private */
+Ember.notifyBeforeObservers = function(obj, keyName) {
+ if (obj.isDestroying) { return; }
+
+ var guid, set, forceNotification = false;
+
+ if (deferred) {
+ if (beforeObserverSet.add(obj, keyName)) {
+ forceNotification = true;
+ } else {
+ return;
+ }
+ }
+
+ notifyObservers(obj, beforeEvent(keyName), keyName, forceNotification);
+};
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Metal
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var guidFor = Ember.guidFor, // utils.js
+ metaFor = Ember.meta, // utils.js
+ get = Ember.get, // accessors.js
+ set = Ember.set, // accessors.js
+ normalizeTuple = Ember.normalizeTuple, // accessors.js
+ GUID_KEY = Ember.GUID_KEY, // utils.js
+ META_KEY = Ember.META_KEY, // utils.js
+ // circular reference observer depends on Ember.watch
+ // we should move change events to this file or its own property_events.js
+ notifyObservers = Ember.notifyObservers, // observer.js
+ forEach = Ember.ArrayPolyfills.forEach, // array.js
+ FIRST_KEY = /^([^\.\*]+)/,
+ IS_PATH = /[\.\*]/;
+
+var MANDATORY_SETTER = Ember.ENV.MANDATORY_SETTER,
+o_defineProperty = Ember.platform.defineProperty;
+
+/** @private */
+function firstKey(path) {
+ return path.match(FIRST_KEY)[0];
+}
+
+// returns true if the passed path is just a keyName
+/** @private */
+function isKeyName(path) {
+ return path==='*' || !IS_PATH.test(path);
+}
+
+// ..........................................................
+// DEPENDENT KEYS
+//
+
+var DEP_SKIP = { __emberproto__: true }; // skip some keys and toString
+
+/** @private */
+function iterDeps(method, obj, depKey, seen, meta) {
+
+ var guid = guidFor(obj);
+ if (!seen[guid]) seen[guid] = {};
+ if (seen[guid][depKey]) return;
+ seen[guid][depKey] = true;
+
+ var deps = meta.deps;
+ deps = deps && deps[depKey];
+ if (deps) {
+ for(var key in deps) {
+ if (DEP_SKIP[key]) continue;
+ method(obj, key);
+ }
+ }
+}
+
+
+var WILL_SEEN, DID_SEEN;
+
+// called whenever a property is about to change to clear the cache of any dependent keys (and notify those properties of changes, etc...)
+/** @private */
+function dependentKeysWillChange(obj, depKey, meta) {
+ if (obj.isDestroying) { return; }
+
+ var seen = WILL_SEEN, top = !seen;
+ if (top) { seen = WILL_SEEN = {}; }
+ iterDeps(propertyWillChange, obj, depKey, seen, meta);
+ if (top) { WILL_SEEN = null; }
+}
+
+// called whenever a property has just changed to update dependent keys
+/** @private */
+function dependentKeysDidChange(obj, depKey, meta) {
+ if (obj.isDestroying) { return; }
+
+ var seen = DID_SEEN, top = !seen;
+ if (top) { seen = DID_SEEN = {}; }
+ iterDeps(propertyDidChange, obj, depKey, seen, meta);
+ if (top) { DID_SEEN = null; }
+}
+
+// ..........................................................
+// CHAIN
+//
+
+/** @private */
+function addChainWatcher(obj, keyName, node) {
+ if (!obj || ('object' !== typeof obj)) return; // nothing to do
+ var m = metaFor(obj);
+ var nodes = m.chainWatchers;
+ if (!nodes || nodes.__emberproto__ !== obj) {
+ nodes = m.chainWatchers = { __emberproto__: obj };
+ }
+
+ if (!nodes[keyName]) { nodes[keyName] = {}; }
+ nodes[keyName][guidFor(node)] = node;
+ Ember.watch(obj, keyName);
+}
+
+/** @private */
+function removeChainWatcher(obj, keyName, node) {
+ if (!obj || 'object' !== typeof obj) { return; } // nothing to do
+ var m = metaFor(obj, false),
+ nodes = m.chainWatchers;
+ if (!nodes || nodes.__emberproto__ !== obj) { return; } //nothing to do
+ if (nodes[keyName]) { delete nodes[keyName][guidFor(node)]; }
+ Ember.unwatch(obj, keyName);
+}
+
+var pendingQueue = [];
+
+// attempts to add the pendingQueue chains again. If some of them end up
+// back in the queue and reschedule is true, schedules a timeout to try
+// again.
+/** @private */
+function flushPendingChains() {
+ if (pendingQueue.length === 0) { return; } // nothing to do
+
+ var queue = pendingQueue;
+ pendingQueue = [];
+
+ forEach.call(queue, function(q) { q[0].add(q[1]); });
+
+ Ember.warn('Watching an undefined global, Ember expects watched globals to be setup by the time the run loop is flushed, check for typos', pendingQueue.length === 0);
+}
+
+/** @private */
+function isProto(pvalue) {
+ return metaFor(pvalue, false).proto === pvalue;
+}
+
+// A ChainNode watches a single key on an object. If you provide a starting
+// value for the key then the node won't actually watch it. For a root node
+// pass null for parent and key and object for value.
+/** @private */
+var ChainNode = function(parent, key, value, separator) {
+ var obj;
+ this._parent = parent;
+ this._key = key;
+
+ // _watching is true when calling get(this._parent, this._key) will
+ // return the value of this node.
+ //
+ // It is false for the root of a chain (because we have no parent)
+ // and for global paths (because the parent node is the object with
+ // the observer on it)
+ this._watching = value===undefined;
+
+ this._value = value;
+ this._separator = separator || '.';
+ this._paths = {};
+ if (this._watching) {
+ this._object = parent.value();
+ if (this._object) { addChainWatcher(this._object, this._key, this); }
+ }
+
+ // Special-case: the EachProxy relies on immediate evaluation to
+ // establish its observers.
+ //
+ // TODO: Replace this with an efficient callback that the EachProxy
+ // can implement.
+ if (this._parent && this._parent._key === '@each') {
+ this.value();
+ }
+};
+
+var ChainNodePrototype = ChainNode.prototype;
+
+ChainNodePrototype.value = function() {
+ if (this._value === undefined && this._watching) {
+ var obj = this._parent.value();
+ this._value = (obj && !isProto(obj)) ? get(obj, this._key) : undefined;
+ }
+ return this._value;
+};
+
+ChainNodePrototype.destroy = function() {
+ if (this._watching) {
+ var obj = this._object;
+ if (obj) { removeChainWatcher(obj, this._key, this); }
+ this._watching = false; // so future calls do nothing
+ }
+};
+
+// copies a top level object only
+ChainNodePrototype.copy = function(obj) {
+ var ret = new ChainNode(null, null, obj, this._separator),
+ paths = this._paths, path;
+ for (path in paths) {
+ if (paths[path] <= 0) { continue; } // this check will also catch non-number vals.
+ ret.add(path);
+ }
+ return ret;
+};
+
+// called on the root node of a chain to setup watchers on the specified
+// path.
+ChainNodePrototype.add = function(path) {
+ var obj, tuple, key, src, separator, paths;
+
+ paths = this._paths;
+ paths[path] = (paths[path] || 0) + 1;
+
+ obj = this.value();
+ tuple = normalizeTuple(obj, path);
+
+ // the path was a local path
+ if (tuple[0] && tuple[0] === obj) {
+ path = tuple[1];
+ key = firstKey(path);
+ path = path.slice(key.length+1);
+
+ // global path, but object does not exist yet.
+ // put into a queue and try to connect later.
+ } else if (!tuple[0]) {
+ pendingQueue.push([this, path]);
+ tuple.length = 0;
+ return;
+
+ // global path, and object already exists
+ } else {
+ src = tuple[0];
+ key = path.slice(0, 0-(tuple[1].length+1));
+ separator = path.slice(key.length, key.length+1);
+ path = tuple[1];
+ }
+
+ tuple.length = 0;
+ this.chain(key, path, src, separator);
+};
+
+// called on the root node of a chain to teardown watcher on the specified
+// path
+ChainNodePrototype.remove = function(path) {
+ var obj, tuple, key, src, paths;
+
+ paths = this._paths;
+ if (paths[path] > 0) { paths[path]--; }
+
+ obj = this.value();
+ tuple = normalizeTuple(obj, path);
+ if (tuple[0] === obj) {
+ path = tuple[1];
+ key = firstKey(path);
+ path = path.slice(key.length+1);
+ } else {
+ src = tuple[0];
+ key = path.slice(0, 0-(tuple[1].length+1));
+ path = tuple[1];
+ }
+
+ tuple.length = 0;
+ this.unchain(key, path);
+};
+
+ChainNodePrototype.count = 0;
+
+ChainNodePrototype.chain = function(key, path, src, separator) {
+ var chains = this._chains, node;
+ if (!chains) { chains = this._chains = {}; }
+
+ node = chains[key];
+ if (!node) { node = chains[key] = new ChainNode(this, key, src, separator); }
+ node.count++; // count chains...
+
+ // chain rest of path if there is one
+ if (path && path.length>0) {
+ key = firstKey(path);
+ path = path.slice(key.length+1);
+ node.chain(key, path); // NOTE: no src means it will observe changes...
+ }
+};
+
+ChainNodePrototype.unchain = function(key, path) {
+ var chains = this._chains, node = chains[key];
+
+ // unchain rest of path first...
+ if (path && path.length>1) {
+ key = firstKey(path);
+ path = path.slice(key.length+1);
+ node.unchain(key, path);
+ }
+
+ // delete node if needed.
+ node.count--;
+ if (node.count<=0) {
+ delete chains[node._key];
+ node.destroy();
+ }
+
+};
+
+ChainNodePrototype.willChange = function() {
+ var chains = this._chains;
+ if (chains) {
+ for(var key in chains) {
+ if (!chains.hasOwnProperty(key)) { continue; }
+ chains[key].willChange();
+ }
+ }
+
+ if (this._parent) { this._parent.chainWillChange(this, this._key, 1); }
+};
+
+ChainNodePrototype.chainWillChange = function(chain, path, depth) {
+ if (this._key) { path = this._key + this._separator + path; }
+
+ if (this._parent) {
+ this._parent.chainWillChange(this, path, depth+1);
+ } else {
+ if (depth > 1) { Ember.propertyWillChange(this.value(), path); }
+ path = 'this.' + path;
+ if (this._paths[path] > 0) { Ember.propertyWillChange(this.value(), path); }
+ }
+};
+
+ChainNodePrototype.chainDidChange = function(chain, path, depth) {
+ if (this._key) { path = this._key + this._separator + path; }
+ if (this._parent) {
+ this._parent.chainDidChange(this, path, depth+1);
+ } else {
+ if (depth > 1) { Ember.propertyDidChange(this.value(), path); }
+ path = 'this.' + path;
+ if (this._paths[path] > 0) { Ember.propertyDidChange(this.value(), path); }
+ }
+};
+
+ChainNodePrototype.didChange = function(suppressEvent) {
+ // invalidate my own value first.
+ if (this._watching) {
+ var obj = this._parent.value();
+ if (obj !== this._object) {
+ removeChainWatcher(this._object, this._key, this);
+ this._object = obj;
+ addChainWatcher(obj, this._key, this);
+ }
+ this._value = undefined;
+
+ // Special-case: the EachProxy relies on immediate evaluation to
+ // establish its observers.
+ if (this._parent && this._parent._key === '@each')
+ this.value();
+ }
+
+ // then notify chains...
+ var chains = this._chains;
+ if (chains) {
+ for(var key in chains) {
+ if (!chains.hasOwnProperty(key)) { continue; }
+ chains[key].didChange(suppressEvent);
+ }
+ }
+
+ if (suppressEvent) { return; }
+
+ // and finally tell parent about my path changing...
+ if (this._parent) { this._parent.chainDidChange(this, this._key, 1); }
+};
+
+// get the chains for the current object. If the current object has
+// chains inherited from the proto they will be cloned and reconfigured for
+// the current object.
+/** @private */
+function chainsFor(obj) {
+ var m = metaFor(obj), ret = m.chains;
+ if (!ret) {
+ ret = m.chains = new ChainNode(null, null, obj);
+ } else if (ret.value() !== obj) {
+ ret = m.chains = ret.copy(obj);
+ }
+ return ret;
+}
+
+/** @private */
+function notifyChains(obj, m, keyName, methodName, arg) {
+ var nodes = m.chainWatchers;
+
+ if (!nodes || nodes.__emberproto__ !== obj) { return; } // nothing to do
+
+ nodes = nodes[keyName];
+ if (!nodes) { return; }
+
+ for(var key in nodes) {
+ if (!nodes.hasOwnProperty(key)) { continue; }
+ nodes[key][methodName](arg);
+ }
+}
+
+Ember.overrideChains = function(obj, keyName, m) {
+ notifyChains(obj, m, keyName, 'didChange', true);
+};
+
+/** @private */
+function chainsWillChange(obj, keyName, m) {
+ notifyChains(obj, m, keyName, 'willChange');
+}
+
+/** @private */
+function chainsDidChange(obj, keyName, m) {
+ notifyChains(obj, m, keyName, 'didChange');
+}
+
+// ..........................................................
+// WATCH
+//
+
+/**
+ @private
+
+ Starts watching a property on an object. Whenever the property changes,
+ invokes Ember.propertyWillChange and Ember.propertyDidChange. This is the
+ primitive used by observers and dependent keys; usually you will never call
+ this method directly but instead use higher level methods like
+ Ember.addObserver().
+*/
+Ember.watch = function(obj, keyName) {
+ // can't watch length on Array - it is special...
+ if (keyName === 'length' && Ember.typeOf(obj) === 'array') { return this; }
+
+ var m = metaFor(obj), watching = m.watching, desc;
+
+ // activate watching first time
+ if (!watching[keyName]) {
+ watching[keyName] = 1;
+ if (isKeyName(keyName)) {
+ desc = m.descs[keyName];
+ if (desc && desc.willWatch) { desc.willWatch(obj, keyName); }
+
+ if ('function' === typeof obj.willWatchProperty) {
+ obj.willWatchProperty(keyName);
+ }
+
+ if (MANDATORY_SETTER && keyName in obj) {
+ m.values[keyName] = obj[keyName];
+ o_defineProperty(obj, keyName, {
+ configurable: true,
+ enumerable: true,
+ set: function() {
+ Ember.assert('Must use Ember.set() to access this property', false);
+ },
+ get: function() {
+ var meta = this[META_KEY];
+ return meta && meta.values[keyName];
+ }
+ });
+ }
+ } else {
+ chainsFor(obj).add(keyName);
+ }
+
+ } else {
+ watching[keyName] = (watching[keyName] || 0) + 1;
+ }
+ return this;
+};
+
+Ember.isWatching = function isWatching(obj, key) {
+ var meta = obj[META_KEY];
+ return (meta && meta.watching[key]) > 0;
+};
+
+Ember.watch.flushPending = flushPendingChains;
+
+/** @private */
+Ember.unwatch = function(obj, keyName) {
+ // can't watch length on Array - it is special...
+ if (keyName === 'length' && Ember.typeOf(obj) === 'array') { return this; }
+
+ var m = metaFor(obj), watching = m.watching, desc;
+
+ if (watching[keyName] === 1) {
+ watching[keyName] = 0;
+
+ if (isKeyName(keyName)) {
+ desc = m.descs[keyName];
+ if (desc && desc.didUnwatch) { desc.didUnwatch(obj, keyName); }
+
+ if ('function' === typeof obj.didUnwatchProperty) {
+ obj.didUnwatchProperty(keyName);
+ }
+
+ if (MANDATORY_SETTER && keyName in obj) {
+ o_defineProperty(obj, keyName, {
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ value: m.values[keyName]
+ });
+ delete m.values[keyName];
+ }
+ } else {
+ chainsFor(obj).remove(keyName);
+ }
+
+ } else if (watching[keyName]>1) {
+ watching[keyName]--;
+ }
+
+ return this;
+};
+
+/**
+ @private
+
+ Call on an object when you first beget it from another object. This will
+ setup any chained watchers on the object instance as needed. This method is
+ safe to call multiple times.
+*/
+Ember.rewatch = function(obj) {
+ var m = metaFor(obj, false), chains = m.chains;
+
+ // make sure the object has its own guid.
+ if (GUID_KEY in obj && !obj.hasOwnProperty(GUID_KEY)) {
+ Ember.generateGuid(obj, 'ember');
+ }
+
+ // make sure any chained watchers update.
+ if (chains && chains.value() !== obj) {
+ m.chains = chains.copy(obj);
+ }
+
+ return this;
+};
+
+Ember.finishChains = function(obj) {
+ var m = metaFor(obj, false), chains = m.chains;
+ if (chains) {
+ if (chains.value() !== obj) {
+ m.chains = chains = chains.copy(obj);
+ }
+ chains.didChange(true);
+ }
+};
+
+// ..........................................................
+// PROPERTY CHANGES
+//
+
+/**
+ This function is called just before an object property is about to change.
+ It will notify any before observers and prepare caches among other things.
+
+ Normally you will not need to call this method directly but if for some
+ reason you can't directly watch a property you can invoke this method
+ manually along with `Ember.propertyDidChange()` which you should call just
+ after the property value changes.
+
+ @memberOf Ember
+
+ @param {Object} obj
+ The object with the property that will change
+
+ @param {String} keyName
+ The property key (or path) that will change.
+
+ @returns {void}
+*/
+function propertyWillChange(obj, keyName, value) {
+ var m = metaFor(obj, false),
+ watching = m.watching[keyName] > 0 || keyName === 'length',
+ proto = m.proto,
+ desc = m.descs[keyName];
+
+ if (!watching) { return; }
+ if (proto === obj) { return; }
+ if (desc && desc.willChange) { desc.willChange(obj, keyName); }
+ dependentKeysWillChange(obj, keyName, m);
+ chainsWillChange(obj, keyName, m);
+ Ember.notifyBeforeObservers(obj, keyName);
+}
+
+Ember.propertyWillChange = propertyWillChange;
+
+/**
+ This function is called just after an object property has changed.
+ It will notify any observers and clear caches among other things.
+
+ Normally you will not need to call this method directly but if for some
+ reason you can't directly watch a property you can invoke this method
+ manually along with `Ember.propertyWilLChange()` which you should call just
+ before the property value changes.
+
+ @memberOf Ember
+
+ @param {Object} obj
+ The object with the property that will change
+
+ @param {String} keyName
+ The property key (or path) that will change.
+
+ @returns {void}
+*/
+function propertyDidChange(obj, keyName) {
+ var m = metaFor(obj, false),
+ watching = m.watching[keyName] > 0 || keyName === 'length',
+ proto = m.proto,
+ desc = m.descs[keyName];
+
+ if (proto === obj) { return; }
+
+ // shouldn't this mean that we're watching this key?
+ if (desc && desc.didChange) { desc.didChange(obj, keyName); }
+ if (!watching && keyName !== 'length') { return; }
+
+ dependentKeysDidChange(obj, keyName, m);
+ chainsDidChange(obj, keyName, m);
+ Ember.notifyObservers(obj, keyName);
+}
+
+Ember.propertyDidChange = propertyDidChange;
+
+var NODE_STACK = [];
+
+/**
+ Tears down the meta on an object so that it can be garbage collected.
+ Multiple calls will have no effect.
+
+ @param {Object} obj the object to destroy
+ @returns {void}
+*/
+Ember.destroy = function (obj) {
+ var meta = obj[META_KEY], node, nodes, key, nodeObject;
+ if (meta) {
+ obj[META_KEY] = null;
+ // remove chainWatchers to remove circular references that would prevent GC
+ node = meta.chains;
+ if (node) {
+ NODE_STACK.push(node);
+ // process tree
+ while (NODE_STACK.length > 0) {
+ node = NODE_STACK.pop();
+ // push children
+ nodes = node._chains;
+ if (nodes) {
+ for (key in nodes) {
+ if (nodes.hasOwnProperty(key)) {
+ NODE_STACK.push(nodes[key]);
+ }
+ }
+ }
+ // remove chainWatcher in node object
+ if (node._watching) {
+ nodeObject = node._object;
+ if (nodeObject) {
+ removeChainWatcher(nodeObject, node._key, node);
+ }
+ }
+ }
+ }
+ }
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Metal
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+Ember.warn("Computed properties will soon be cacheable by default. To enable this in your app, set `ENV.CP_DEFAULT_CACHEABLE = true`.", Ember.CP_DEFAULT_CACHEABLE);
+
+
+var get = Ember.get,
+ metaFor = Ember.meta,
+ guidFor = Ember.guidFor,
+ a_slice = [].slice,
+ o_create = Ember.create,
+ META_KEY = Ember.META_KEY,
+ watch = Ember.watch,
+ unwatch = Ember.unwatch;
+
+// ..........................................................
+// DEPENDENT KEYS
+//
+
+// data structure:
+// meta.deps = {
+// 'depKey': {
+// 'keyName': count,
+// __emberproto__: SRC_OBJ [to detect clones]
+// },
+// __emberproto__: SRC_OBJ
+// }
+
+/**
+ @private
+
+ This function returns a map of unique dependencies for a
+ given object and key.
+*/
+function keysForDep(obj, depsMeta, depKey) {
+ var keys = depsMeta[depKey];
+ if (!keys) {
+ // if there are no dependencies yet for a the given key
+ // create a new empty list of dependencies for the key
+ keys = depsMeta[depKey] = { __emberproto__: obj };
+ } else if (keys.__emberproto__ !== obj) {
+ // otherwise if the dependency list is inherited from
+ // a superclass, clone the hash
+ keys = depsMeta[depKey] = o_create(keys);
+ keys.__emberproto__ = obj;
+ }
+ return keys;
+}
+
+/**
+ @private
+
+ return obj[META_KEY].deps
+ */
+function metaForDeps(obj, meta) {
+ var deps = meta.deps;
+ // If the current object has no dependencies...
+ if (!deps) {
+ // initialize the dependencies with a pointer back to
+ // the current object
+ deps = meta.deps = { __emberproto__: obj };
+ } else if (deps.__emberproto__ !== obj) {
+ // otherwise if the dependencies are inherited from the
+ // object's superclass, clone the deps
+ deps = meta.deps = o_create(deps);
+ deps.__emberproto__ = obj;
+ }
+ return deps;
+}
+
+/** @private */
+function addDependentKeys(desc, obj, keyName, meta) {
+ // the descriptor has a list of dependent keys, so
+ // add all of its dependent keys.
+ var depKeys = desc._dependentKeys, depsMeta, idx, len, depKey, keys;
+ if (!depKeys) return;
+
+ depsMeta = metaForDeps(obj, meta);
+
+ for(idx = 0, len = depKeys.length; idx < len; idx++) {
+ depKey = depKeys[idx];
+ // Lookup keys meta for depKey
+ keys = keysForDep(obj, depsMeta, depKey);
+ // Increment the number of times depKey depends on keyName.
+ keys[keyName] = (keys[keyName] || 0) + 1;
+ // Watch the depKey
+ watch(obj, depKey);
+ }
+}
+
+/** @private */
+function removeDependentKeys(desc, obj, keyName, meta) {
+ // the descriptor has a list of dependent keys, so
+ // add all of its dependent keys.
+ var depKeys = desc._dependentKeys, depsMeta, idx, len, depKey, keys;
+ if (!depKeys) return;
+
+ depsMeta = metaForDeps(obj, meta);
+
+ for(idx = 0, len = depKeys.length; idx < len; idx++) {
+ depKey = depKeys[idx];
+ // Lookup keys meta for depKey
+ keys = keysForDep(obj, depsMeta, depKey);
+ // Increment the number of times depKey depends on keyName.
+ keys[keyName] = (keys[keyName] || 0) - 1;
+ // Watch the depKey
+ unwatch(obj, depKey);
+ }
+}
+
+// ..........................................................
+// COMPUTED PROPERTY
+//
+
+/** @private */
+function ComputedProperty(func, opts) {
+ this.func = func;
+ this._cacheable = (opts && opts.cacheable !== undefined) ? opts.cacheable : Ember.CP_DEFAULT_CACHEABLE;
+ this._dependentKeys = opts && opts.dependentKeys;
+}
+
+/**
+ @constructor
+*/
+Ember.ComputedProperty = ComputedProperty;
+ComputedProperty.prototype = new Ember.Descriptor();
+
+/**
+ @extends Ember.ComputedProperty
+ @private
+*/
+var ComputedPropertyPrototype = ComputedProperty.prototype;
+
+/**
+ Call on a computed property to set it into cacheable mode. When in this
+ mode the computed property will automatically cache the return value of
+ your function until one of the dependent keys changes.
+
+ MyApp.president = Ember.Object.create({
+ fullName: function() {
+ return this.get('firstName') + ' ' + this.get('lastName');
+
+ // After calculating the value of this function, Ember.js will
+ // return that value without re-executing this function until
+ // one of the dependent properties change.
+ }.property('firstName', 'lastName').cacheable()
+ });
+
+ Properties are cacheable by default.
+
+ @memberOf Ember.ComputedProperty.prototype
+ @name cacheable
+ @function
+ @param {Boolean} aFlag optional set to false to disable caching
+ @returns {Ember.ComputedProperty} receiver
+*/
+ComputedPropertyPrototype.cacheable = function(aFlag) {
+ this._cacheable = aFlag !== false;
+ return this;
+};
+
+/**
+ Call on a computed property to set it into non-cached mode. When in this
+ mode the computed property will not automatically cache the return value.
+
+ MyApp.outsideService = Ember.Object.create({
+ value: function() {
+ return OutsideService.getValue();
+ }.property().volatile()
+ });
+
+ @memberOf Ember.ComputedProperty.prototype
+ @name volatile
+ @function
+ @returns {Ember.ComputedProperty} receiver
+*/
+ComputedPropertyPrototype.volatile = function() {
+ return this.cacheable(false);
+};
+
+/**
+ Sets the dependent keys on this computed property. Pass any number of
+ arguments containing key paths that this computed property depends on.
+
+ MyApp.president = Ember.Object.create({
+ fullName: Ember.computed(function() {
+ return this.get('firstName') + ' ' + this.get('lastName');
+
+ // Tell Ember.js that this computed property depends on firstName
+ // and lastName
+ }).property('firstName', 'lastName')
+ });
+
+ @memberOf Ember.ComputedProperty.prototype
+ @name property
+ @function
+ @param {String} path... zero or more property paths
+ @returns {Ember.ComputedProperty} receiver
+*/
+ComputedPropertyPrototype.property = function() {
+ var args = [];
+ for (var i = 0, l = arguments.length; i < l; i++) {
+ args.push(arguments[i]);
+ }
+ this._dependentKeys = args;
+ return this;
+};
+
+/**
+ In some cases, you may want to annotate computed properties with additional
+ metadata about how they function or what values they operate on. For example,
+ computed property functions may close over variables that are then no longer
+ available for introspection.
+
+ You can pass a hash of these values to a computed property like this:
+
+ person: function() {
+ var personId = this.get('personId');
+ return App.Person.create({ id: personId });
+ }.property().meta({ type: App.Person })
+
+ The hash that you pass to the `meta()` function will be saved on the
+ computed property descriptor under the `_meta` key. Ember runtime
+ exposes a public API for retrieving these values from classes,
+ via the `metaForProperty()` function.
+
+ @memberOf Ember.ComputedProperty.prototype
+ @name meta
+ @function
+ @param {Hash} meta
+ @returns {Ember.ComputedProperty} property descriptor instance
+*/
+
+ComputedPropertyPrototype.meta = function(meta) {
+ if (arguments.length === 0) {
+ return this._meta || {};
+ } else {
+ this._meta = meta;
+ return this;
+ }
+};
+
+/** @private - impl descriptor API */
+ComputedPropertyPrototype.willWatch = function(obj, keyName) {
+ // watch already creates meta for this instance
+ var meta = obj[META_KEY];
+ Ember.assert('watch should have setup meta to be writable', meta.source === obj);
+ if (!(keyName in meta.cache)) {
+ addDependentKeys(this, obj, keyName, meta);
+ }
+};
+
+ComputedPropertyPrototype.didUnwatch = function(obj, keyName) {
+ var meta = obj[META_KEY];
+ Ember.assert('unwatch should have setup meta to be writable', meta.source === obj);
+ if (!(keyName in meta.cache)) {
+ // unwatch already creates meta for this instance
+ removeDependentKeys(this, obj, keyName, meta);
+ }
+};
+
+/** @private - impl descriptor API */
+ComputedPropertyPrototype.didChange = function(obj, keyName) {
+ // _suspended is set via a CP.set to ensure we don't clear
+ // the cached value set by the setter
+ if (this._cacheable && this._suspended !== obj) {
+ var meta = metaFor(obj);
+ if (keyName in meta.cache) {
+ delete meta.cache[keyName];
+ if (!meta.watching[keyName]) {
+ removeDependentKeys(this, obj, keyName, meta);
+ }
+ }
+ }
+};
+
+/** @private - impl descriptor API */
+ComputedPropertyPrototype.get = function(obj, keyName) {
+ var ret, cache, meta;
+ if (this._cacheable) {
+ meta = metaFor(obj);
+ cache = meta.cache;
+ if (keyName in cache) { return cache[keyName]; }
+ ret = cache[keyName] = this.func.call(obj, keyName);
+ if (!meta.watching[keyName]) {
+ addDependentKeys(this, obj, keyName, meta);
+ }
+ } else {
+ ret = this.func.call(obj, keyName);
+ }
+ return ret;
+};
+
+/** @private - impl descriptor API */
+ComputedPropertyPrototype.set = function(obj, keyName, value) {
+ var cacheable = this._cacheable,
+ meta = metaFor(obj, cacheable),
+ watched = meta.watching[keyName],
+ oldSuspended = this._suspended,
+ hadCachedValue,
+ ret;
+
+ this._suspended = obj;
+
+ if (watched) { Ember.propertyWillChange(obj, keyName); }
+ if (cacheable) {
+ if (keyName in meta.cache) {
+ delete meta.cache[keyName];
+ hadCachedValue = true;
+ }
+ }
+ ret = this.func.call(obj, keyName, value);
+ if (cacheable) {
+ if (!watched && !hadCachedValue) {
+ addDependentKeys(this, obj, keyName, meta);
+ }
+ meta.cache[keyName] = ret;
+ }
+ if (watched) { Ember.propertyDidChange(obj, keyName); }
+ this._suspended = oldSuspended;
+ return ret;
+};
+
+/** @private - called when property is defined */
+ComputedPropertyPrototype.setup = function(obj, keyName) {
+ var meta = obj[META_KEY];
+ if (meta && meta.watching[keyName]) {
+ addDependentKeys(this, obj, keyName, metaFor(obj));
+ }
+};
+
+/** @private - called before property is overridden */
+ComputedPropertyPrototype.teardown = function(obj, keyName) {
+ var meta = metaFor(obj);
+
+ if (meta.watching[keyName] || keyName in meta.cache) {
+ removeDependentKeys(this, obj, keyName, meta);
+ }
+
+ if (this._cacheable) { delete meta.cache[keyName]; }
+
+ return null; // no value to restore
+};
+
+/**
+ This helper returns a new property descriptor that wraps the passed
+ computed property function. You can use this helper to define properties
+ with mixins or via Ember.defineProperty().
+
+ The function you pass will be used to both get and set property values.
+ The function should accept two parameters, key and value. If value is not
+ undefined you should set the value first. In either case return the
+ current value of the property.
+
+ @param {Function} func
+ The computed property function.
+
+ @returns {Ember.ComputedProperty} property descriptor instance
+*/
+Ember.computed = function(func) {
+ var args;
+
+ if (arguments.length > 1) {
+ args = a_slice.call(arguments, 0, -1);
+ func = a_slice.call(arguments, -1)[0];
+ }
+
+ var cp = new ComputedProperty(func);
+
+ if (args) {
+ cp.property.apply(cp, args);
+ }
+
+ return cp;
+};
+
+/**
+ Returns the cached value for a property, if one exists.
+ This can be useful for peeking at the value of a computed
+ property that is generated lazily, without accidentally causing
+ it to be created.
+
+ @param {Object} obj the object whose property you want to check
+ @param {String} key the name of the property whose cached value you want
+ to return
+
+*/
+Ember.cacheFor = function cacheFor(obj, key) {
+ var cache = metaFor(obj, false).cache;
+
+ if (cache && key in cache) {
+ return cache[key];
+ }
+};
+
+Ember.computed.not = function(dependentKey) {
+ return Ember.computed(dependentKey, function(key) {
+ return !get(this, dependentKey);
+ }).cacheable();
+};
+
+Ember.computed.empty = function(dependentKey) {
+ return Ember.computed(dependentKey, function(key) {
+ var val = get(this, dependentKey);
+ return val === undefined || val === null || val === '' || (Ember.isArray(val) && get(val, 'length') === 0);
+ }).cacheable();
+};
+
+Ember.computed.bool = function(dependentKey) {
+ return Ember.computed(dependentKey, function(key) {
+ return !!get(this, dependentKey);
+ }).cacheable();
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Metal
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var o_create = Ember.create,
+ meta = Ember.meta,
+ metaPath = Ember.metaPath,
+ guidFor = Ember.guidFor,
+ a_slice = [].slice;
+
+/**
+ The event system uses a series of nested hashes to store listeners on an
+ object. When a listener is registered, or when an event arrives, these
+ hashes are consulted to determine which target and action pair to invoke.
+
+ The hashes are stored in the object's meta hash, and look like this:
+
+ // Object's meta hash
+ {
+ listeners: { // variable name: `listenerSet`
+ "foo:changed": { // variable name: `targetSet`
+ [targetGuid]: { // variable name: `actionSet`
+ [methodGuid]: { // variable name: `action`
+ target: [Object object],
+ method: [Function function]
+ }
+ }
+ }
+ }
+ }
+
+*/
+
+// Gets the set of all actions, keyed on the guid of each action's
+// method property.
+/** @private */
+function actionSetFor(obj, eventName, target, writable) {
+ return metaPath(obj, ['listeners', eventName, guidFor(target)], writable);
+}
+
+// Gets the set of all targets, keyed on the guid of each action's
+// target property.
+/** @private */
+function targetSetFor(obj, eventName) {
+ var listenerSet = meta(obj, false).listeners;
+ if (!listenerSet) { return false; }
+
+ return listenerSet[eventName] || false;
+}
+
+// TODO: This knowledge should really be a part of the
+// meta system.
+var SKIP_PROPERTIES = { __ember_source__: true };
+
+/** @private */
+function iterateSet(obj, eventName, callback, params) {
+ var targetSet = targetSetFor(obj, eventName);
+ if (!targetSet) { return false; }
+ // Iterate through all elements of the target set
+ for(var targetGuid in targetSet) {
+ if (SKIP_PROPERTIES[targetGuid]) { continue; }
+
+ var actionSet = targetSet[targetGuid];
+ if (actionSet) {
+ // Iterate through the elements of the action set
+ for(var methodGuid in actionSet) {
+ if (SKIP_PROPERTIES[methodGuid]) { continue; }
+
+ var action = actionSet[methodGuid];
+ if (action) {
+ if (callback(action, params, obj) === true) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+}
+
+/** @private */
+function invokeAction(action, params, sender) {
+ var method = action.method, target = action.target;
+ // If there is no target, the target is the object
+ // on which the event was fired.
+ if (!target) { target = sender; }
+ if ('string' === typeof method) { method = target[method]; }
+ if (params) {
+ method.apply(target, params);
+ } else {
+ method.apply(target);
+ }
+}
+
+/**
+ The sendEvent arguments > 2 are passed to an event listener.
+
+ @memberOf Ember
+*/
+function addListener(obj, eventName, target, method) {
+ Ember.assert("You must pass at least an object and event name to Ember.addListener", !!obj && !!eventName);
+
+ if (!method && 'function' === typeof target) {
+ method = target;
+ target = null;
+ }
+
+ var actionSet = actionSetFor(obj, eventName, target, true),
+ methodGuid = guidFor(method);
+
+ if (!actionSet[methodGuid]) {
+ actionSet[methodGuid] = { target: target, method: method };
+ }
+
+ if ('function' === typeof obj.didAddListener) {
+ obj.didAddListener(eventName, target, method);
+ }
+}
+
+/** @memberOf Ember */
+function removeListener(obj, eventName, target, method) {
+ Ember.assert("You must pass at least an object and event name to Ember.removeListener", !!obj && !!eventName);
+
+ if (!method && 'function' === typeof target) {
+ method = target;
+ target = null;
+ }
+
+ var actionSet = actionSetFor(obj, eventName, target, true),
+ methodGuid = guidFor(method);
+
+ // we can't simply delete this parameter, because if we do, we might
+ // re-expose the property from the prototype chain.
+ if (actionSet && actionSet[methodGuid]) { actionSet[methodGuid] = null; }
+
+ if ('function' === typeof obj.didRemoveListener) {
+ obj.didRemoveListener(eventName, target, method);
+ }
+}
+
+// Suspend listener during callback.
+//
+// This should only be used by the target of the event listener
+// when it is taking an action that would cause the event, e.g.
+// an object might suspend its property change listener while it is
+// setting that property.
+/** @private */
+function suspendListener(obj, eventName, target, method, callback) {
+ if (!method && 'function' === typeof target) {
+ method = target;
+ target = null;
+ }
+
+ var actionSet = actionSetFor(obj, eventName, target, true),
+ methodGuid = guidFor(method),
+ action = actionSet && actionSet[methodGuid];
+
+ actionSet[methodGuid] = null;
+ try {
+ return callback.call(target);
+ } finally {
+ actionSet[methodGuid] = action;
+ }
+}
+
+// returns a list of currently watched events
+/** @memberOf Ember */
+function watchedEvents(obj) {
+ var listeners = meta(obj, false).listeners, ret = [];
+
+ if (listeners) {
+ for(var eventName in listeners) {
+ if (!SKIP_PROPERTIES[eventName] && listeners[eventName]) {
+ ret.push(eventName);
+ }
+ }
+ }
+ return ret;
+}
+
+/** @memberOf Ember */
+function sendEvent(obj, eventName, params) {
+ // first give object a chance to handle it
+ if (obj !== Ember && 'function' === typeof obj.sendEvent) {
+ obj.sendEvent(eventName, params);
+ }
+
+ iterateSet(obj, eventName, invokeAction, params);
+ return true;
+}
+
+/** @memberOf Ember */
+function deferEvent(obj, eventName, params) {
+ var actions = [];
+ iterateSet(obj, eventName, function (action) {
+ actions.push(action);
+ });
+
+ return function() {
+ if (obj.isDestroyed) { return; }
+
+ if (obj !== Ember && 'function' === typeof obj.sendEvent) {
+ obj.sendEvent(eventName, params);
+ }
+
+ for (var i=0, len=actions.length; i < len; ++i) {
+ invokeAction(actions[i], params, obj);
+ }
+ };
+}
+
+/** @memberOf Ember */
+function hasListeners(obj, eventName) {
+ if (iterateSet(obj, eventName, function() { return true; })) {
+ return true;
+ }
+
+ // no listeners! might as well clean this up so it is faster later.
+ var set = metaPath(obj, ['listeners'], true);
+ set[eventName] = null;
+
+ return false;
+}
+
+/** @memberOf Ember */
+function listenersFor(obj, eventName) {
+ var ret = [];
+ iterateSet(obj, eventName, function (action) {
+ ret.push([action.target, action.method]);
+ });
+ return ret;
+}
+
+Ember.addListener = addListener;
+Ember.removeListener = removeListener;
+Ember._suspendListener = suspendListener;
+Ember.sendEvent = sendEvent;
+Ember.hasListeners = hasListeners;
+Ember.watchedEvents = watchedEvents;
+Ember.listenersFor = listenersFor;
+Ember.deferEvent = deferEvent;
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2010 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+// Ember.Logger
+// Ember.watch.flushPending
+// Ember.beginPropertyChanges, Ember.endPropertyChanges
+// Ember.guidFor
+
+// ..........................................................
+// HELPERS
+//
+
+var slice = [].slice,
+ forEach = Ember.ArrayPolyfills.forEach;
+
+// invokes passed params - normalizing so you can pass target/func,
+// target/string or just func
+/** @private */
+function invoke(target, method, args, ignore) {
+
+ if (method === undefined) {
+ method = target;
+ target = undefined;
+ }
+
+ if ('string' === typeof method) { method = target[method]; }
+ if (args && ignore > 0) {
+ args = args.length > ignore ? slice.call(args, ignore) : null;
+ }
+
+ // Unfortunately in some browsers we lose the backtrace if we rethrow the existing error,
+ // so in the event that we don't have an `onerror` handler we don't wrap in a try/catch
+ if ('function' === typeof Ember.onerror) {
+ try {
+ // IE8's Function.prototype.apply doesn't accept undefined/null arguments.
+ return method.apply(target || this, args || []);
+ } catch (error) {
+ Ember.onerror(error);
+ }
+ } else {
+ // IE8's Function.prototype.apply doesn't accept undefined/null arguments.
+ return method.apply(target || this, args || []);
+ }
+}
+
+
+// ..........................................................
+// RUNLOOP
+//
+
+var timerMark; // used by timers...
+
+/** @private */
+var RunLoop = function(prev) {
+ this._prev = prev || null;
+ this.onceTimers = {};
+};
+
+RunLoop.prototype = {
+ end: function() {
+ this.flush();
+ },
+
+ prev: function() {
+ return this._prev;
+ },
+
+ // ..........................................................
+ // Delayed Actions
+ //
+
+ schedule: function(queueName, target, method) {
+ var queues = this._queues, queue;
+ if (!queues) { queues = this._queues = {}; }
+ queue = queues[queueName];
+ if (!queue) { queue = queues[queueName] = []; }
+
+ var args = arguments.length > 3 ? slice.call(arguments, 3) : null;
+ queue.push({ target: target, method: method, args: args });
+ return this;
+ },
+
+ flush: function(queueName) {
+ var queueNames, idx, len, queue, log;
+
+ if (!this._queues) { return this; } // nothing to do
+
+ function iter(item) {
+ invoke(item.target, item.method, item.args);
+ }
+
+ Ember.watch.flushPending(); // make sure all chained watchers are setup
+
+ if (queueName) {
+ while (this._queues && (queue = this._queues[queueName])) {
+ this._queues[queueName] = null;
+
+ // the sync phase is to allow property changes to propagate. don't
+ // invoke observers until that is finished.
+ if (queueName === 'sync') {
+ log = Ember.LOG_BINDINGS;
+ if (log) { Ember.Logger.log('Begin: Flush Sync Queue'); }
+
+ Ember.beginPropertyChanges();
+ try {
+ forEach.call(queue, iter);
+ } finally {
+ Ember.endPropertyChanges();
+ }
+
+ if (log) { Ember.Logger.log('End: Flush Sync Queue'); }
+
+ } else {
+ forEach.call(queue, iter);
+ }
+ }
+
+ } else {
+ queueNames = Ember.run.queues;
+ len = queueNames.length;
+ idx = 0;
+
+ outerloop:
+ while (idx < len) {
+ queueName = queueNames[idx];
+ queue = this._queues && this._queues[queueName];
+ delete this._queues[queueName];
+
+ if (queue) {
+ // the sync phase is to allow property changes to propagate. don't
+ // invoke observers until that is finished.
+ if (queueName === 'sync') {
+ log = Ember.LOG_BINDINGS;
+ if (log) { Ember.Logger.log('Begin: Flush Sync Queue'); }
+
+ Ember.beginPropertyChanges();
+ try {
+ forEach.call(queue, iter);
+ } finally {
+ Ember.endPropertyChanges();
+ }
+
+ if (log) { Ember.Logger.log('End: Flush Sync Queue'); }
+ } else {
+ forEach.call(queue, iter);
+ }
+ }
+
+ // Loop through prior queues
+ for (var i = 0; i <= idx; i++) {
+ if (this._queues && this._queues[queueNames[i]]) {
+ // Start over at the first queue with contents
+ idx = i;
+ continue outerloop;
+ }
+ }
+
+ idx++;
+ }
+ }
+
+ timerMark = null;
+
+ return this;
+ }
+
+};
+
+Ember.RunLoop = RunLoop;
+
+// ..........................................................
+// Ember.run - this is ideally the only public API the dev sees
+//
+/**
+* @namespace Ember.run is both a function and a namespace for
+* RunLoop-related functions.
+* @name Ember.run
+*/
+
+/**
+ Runs the passed target and method inside of a RunLoop, ensuring any
+ deferred actions including bindings and views updates are flushed at the
+ end.
+
+ Normally you should not need to invoke this method yourself. However if
+ you are implementing raw event handlers when interfacing with other
+ libraries or plugins, you should probably wrap all of your code inside this
+ call.
+
+ Ember.run(function(){
+ // code to be execute within a RunLoop
+ });
+
+ @name run
+ @methodOf Ember.run
+ @param {Object} target
+ (Optional) target of method to call
+
+ @param {Function|String} method
+ Method to invoke. May be a function or a string. If you pass a string
+ then it will be looked up on the passed target.
+
+ @param {Object...} args
+ Any additional arguments you wish to pass to the method.
+
+ @returns {Object} return value from invoking the passed function.
+*/
+Ember.run = function(target, method) {
+ var ret, loop;
+ run.begin();
+ try {
+ if (target || method) { ret = invoke(target, method, arguments, 2); }
+ } finally {
+ run.end();
+ }
+ return ret;
+};
+
+/** @private */
+var run = Ember.run;
+
+
+/**
+ Begins a new RunLoop. Any deferred actions invoked after the begin will
+ be buffered until you invoke a matching call to Ember.run.end(). This is
+ an lower-level way to use a RunLoop instead of using Ember.run().
+
+ Ember.run.begin();
+ // code to be execute within a RunLoop
+ Ember.run.end();
+
+
+ @returns {void}
+*/
+Ember.run.begin = function() {
+ run.currentRunLoop = new RunLoop(run.currentRunLoop);
+};
+
+/**
+ Ends a RunLoop. This must be called sometime after you call Ember.run.begin()
+ to flush any deferred actions. This is a lower-level way to use a RunLoop
+ instead of using Ember.run().
+
+ Ember.run.begin();
+ // code to be execute within a RunLoop
+ Ember.run.end();
+
+ @returns {void}
+*/
+Ember.run.end = function() {
+ Ember.assert('must have a current run loop', run.currentRunLoop);
+ try {
+ run.currentRunLoop.end();
+ }
+ finally {
+ run.currentRunLoop = run.currentRunLoop.prev();
+ }
+};
+
+/**
+ Array of named queues. This array determines the order in which queues
+ are flushed at the end of the RunLoop. You can define your own queues by
+ simply adding the queue name to this array. Normally you should not need
+ to inspect or modify this property.
+
+ @type Array
+ @default ['sync', 'actions', 'destroy', 'timers']
+*/
+Ember.run.queues = ['sync', 'actions', 'destroy', 'timers'];
+
+/**
+ Adds the passed target/method and any optional arguments to the named
+ queue to be executed at the end of the RunLoop. If you have not already
+ started a RunLoop when calling this method one will be started for you
+ automatically.
+
+ At the end of a RunLoop, any methods scheduled in this way will be invoked.
+ Methods will be invoked in an order matching the named queues defined in
+ the run.queues property.
+
+ Ember.run.schedule('timers', this, function(){
+ // this will be executed at the end of the RunLoop, when timers are run
+ console.log("scheduled on timers queue");
+ });
+ Ember.run.schedule('sync', this, function(){
+ // this will be executed at the end of the RunLoop, when bindings are synced
+ console.log("scheduled on sync queue");
+ });
+ // Note the functions will be run in order based on the run queues order. Output would be:
+ // scheduled on sync queue
+ // scheduled on timers queue
+
+ @param {String} queue
+ The name of the queue to schedule against. Default queues are 'sync' and
+ 'actions'
+
+ @param {Object} target
+ (Optional) target object to use as the context when invoking a method.
+
+ @param {String|Function} method
+ The method to invoke. If you pass a string it will be resolved on the
+ target object at the time the scheduled item is invoked allowing you to
+ change the target function.
+
+ @param {Object} arguments...
+ Optional arguments to be passed to the queued method.
+
+ @returns {void}
+*/
+Ember.run.schedule = function(queue, target, method) {
+ var loop = run.autorun();
+ loop.schedule.apply(loop, arguments);
+};
+
+var scheduledAutorun;
+/** @private */
+function autorun() {
+ scheduledAutorun = null;
+ if (run.currentRunLoop) { run.end(); }
+}
+
+// Used by global test teardown
+/** @private */
+Ember.run.hasScheduledTimers = function() {
+ return !!(scheduledAutorun || scheduledLater || scheduledNext);
+};
+
+// Used by global test teardown
+/** @private */
+Ember.run.cancelTimers = function () {
+ if (scheduledAutorun) {
+ clearTimeout(scheduledAutorun);
+ scheduledAutorun = null;
+ }
+ if (scheduledLater) {
+ clearTimeout(scheduledLater);
+ scheduledLater = null;
+ }
+ if (scheduledNext) {
+ clearTimeout(scheduledNext);
+ scheduledNext = null;
+ }
+ timers = {};
+};
+
+/**
+ Begins a new RunLoop if necessary and schedules a timer to flush the
+ RunLoop at a later time. This method is used by parts of Ember to
+ ensure the RunLoop always finishes. You normally do not need to call this
+ method directly. Instead use Ember.run().
+
+ Ember.run.autorun();
+
+ @returns {Ember.RunLoop} the new current RunLoop
+*/
+Ember.run.autorun = function() {
+ if (!run.currentRunLoop) {
+ Ember.assert("You have turned on testing mode, which disabled the run-loop's autorun. You will need to wrap any code with asynchronous side-effects in an Ember.run", !Ember.testing);
+
+ run.begin();
+
+ if (!scheduledAutorun) {
+ scheduledAutorun = setTimeout(autorun, 1);
+ }
+ }
+
+ return run.currentRunLoop;
+};
+
+/**
+ Immediately flushes any events scheduled in the 'sync' queue. Bindings
+ use this queue so this method is a useful way to immediately force all
+ bindings in the application to sync.
+
+ You should call this method anytime you need any changed state to propagate
+ throughout the app immediately without repainting the UI.
+
+ Ember.run.sync();
+
+ @returns {void}
+*/
+Ember.run.sync = function() {
+ run.autorun();
+ run.currentRunLoop.flush('sync');
+};
+
+// ..........................................................
+// TIMERS
+//
+
+var timers = {}; // active timers...
+
+var scheduledLater;
+/** @private */
+function invokeLaterTimers() {
+ scheduledLater = null;
+ var now = (+ new Date()), earliest = -1;
+ for (var key in timers) {
+ if (!timers.hasOwnProperty(key)) { continue; }
+ var timer = timers[key];
+ if (timer && timer.expires) {
+ if (now >= timer.expires) {
+ delete timers[key];
+ invoke(timer.target, timer.method, timer.args, 2);
+ } else {
+ if (earliest<0 || (timer.expires < earliest)) earliest=timer.expires;
+ }
+ }
+ }
+
+ // schedule next timeout to fire...
+ if (earliest > 0) { scheduledLater = setTimeout(invokeLaterTimers, earliest-(+ new Date())); }
+}
+
+/**
+ Invokes the passed target/method and optional arguments after a specified
+ period if time. The last parameter of this method must always be a number
+ of milliseconds.
+
+ You should use this method whenever you need to run some action after a
+ period of time instead of using setTimeout(). This method will ensure that
+ items that expire during the same script execution cycle all execute
+ together, which is often more efficient than using a real setTimeout.
+
+ Ember.run.later(myContext, function(){
+ // code here will execute within a RunLoop in about 500ms with this == myContext
+ }, 500);
+
+ @param {Object} target
+ (optional) target of method to invoke
+
+ @param {Function|String} method
+ The method to invoke. If you pass a string it will be resolved on the
+ target at the time the method is invoked.
+
+ @param {Object...} args
+ Optional arguments to pass to the timeout.
+
+ @param {Number} wait
+ Number of milliseconds to wait.
+
+ @returns {String} a string you can use to cancel the timer in Ember.run.cancel() later.
+*/
+Ember.run.later = function(target, method) {
+ var args, expires, timer, guid, wait;
+
+ // setTimeout compatibility...
+ if (arguments.length===2 && 'function' === typeof target) {
+ wait = method;
+ method = target;
+ target = undefined;
+ args = [target, method];
+ } else {
+ args = slice.call(arguments);
+ wait = args.pop();
+ }
+
+ expires = (+ new Date()) + wait;
+ timer = { target: target, method: method, expires: expires, args: args };
+ guid = Ember.guidFor(timer);
+ timers[guid] = timer;
+ run.once(timers, invokeLaterTimers);
+ return guid;
+};
+
+/** @private */
+function invokeOnceTimer(guid, onceTimers) {
+ if (onceTimers[this.tguid]) { delete onceTimers[this.tguid][this.mguid]; }
+ if (timers[guid]) { invoke(this.target, this.method, this.args, 2); }
+ delete timers[guid];
+}
+
+/**
+ Schedules an item to run one time during the current RunLoop. Calling
+ this method with the same target/method combination will have no effect.
+
+ Note that although you can pass optional arguments these will not be
+ considered when looking for duplicates. New arguments will replace previous
+ calls.
+
+ Ember.run(function(){
+ var doFoo = function() { foo(); }
+ Ember.run.once(myContext, doFoo);
+ Ember.run.once(myContext, doFoo);
+ // doFoo will only be executed once at the end of the RunLoop
+ });
+
+ @param {Object} target
+ (optional) target of method to invoke
+
+ @param {Function|String} method
+ The method to invoke. If you pass a string it will be resolved on the
+ target at the time the method is invoked.
+
+ @param {Object...} args
+ Optional arguments to pass to the timeout.
+
+
+ @returns {Object} timer
+*/
+Ember.run.once = function(target, method) {
+ var tguid = Ember.guidFor(target),
+ mguid = Ember.guidFor(method),
+ onceTimers = run.autorun().onceTimers,
+ guid = onceTimers[tguid] && onceTimers[tguid][mguid],
+ timer;
+
+ if (guid && timers[guid]) {
+ timers[guid].args = slice.call(arguments); // replace args
+ } else {
+ timer = {
+ target: target,
+ method: method,
+ args: slice.call(arguments),
+ tguid: tguid,
+ mguid: mguid
+ };
+
+ guid = Ember.guidFor(timer);
+ timers[guid] = timer;
+ if (!onceTimers[tguid]) { onceTimers[tguid] = {}; }
+ onceTimers[tguid][mguid] = guid; // so it isn't scheduled more than once
+
+ run.schedule('actions', timer, invokeOnceTimer, guid, onceTimers);
+ }
+
+ return guid;
+};
+
+var scheduledNext;
+/** @private */
+function invokeNextTimers() {
+ scheduledNext = null;
+ for(var key in timers) {
+ if (!timers.hasOwnProperty(key)) { continue; }
+ var timer = timers[key];
+ if (timer.next) {
+ delete timers[key];
+ invoke(timer.target, timer.method, timer.args, 2);
+ }
+ }
+}
+
+/**
+ Schedules an item to run after control has been returned to the system.
+ This is often equivalent to calling setTimeout(function...,1).
+
+ Ember.run.next(myContext, function(){
+ // code to be executed in the next RunLoop, which will be scheduled after the current one
+ });
+
+ @param {Object} target
+ (optional) target of method to invoke
+
+ @param {Function|String} method
+ The method to invoke. If you pass a string it will be resolved on the
+ target at the time the method is invoked.
+
+ @param {Object...} args
+ Optional arguments to pass to the timeout.
+
+ @returns {Object} timer
+*/
+Ember.run.next = function(target, method) {
+ var guid,
+ timer = {
+ target: target,
+ method: method,
+ args: slice.call(arguments),
+ next: true
+ };
+
+ guid = Ember.guidFor(timer);
+ timers[guid] = timer;
+
+ if (!scheduledNext) { scheduledNext = setTimeout(invokeNextTimers, 1); }
+ return guid;
+};
+
+/**
+ Cancels a scheduled item. Must be a value returned by `Ember.run.later()`,
+ `Ember.run.once()`, or `Ember.run.next()`.
+
+ var runNext = Ember.run.next(myContext, function(){
+ // will not be executed
+ });
+ Ember.run.cancel(runNext);
+
+ var runLater = Ember.run.later(myContext, function(){
+ // will not be executed
+ }, 500);
+ Ember.run.cancel(runLater);
+
+ var runOnce = Ember.run.once(myContext, function(){
+ // will not be executed
+ });
+ Ember.run.cancel(runOnce);
+
+ @param {Object} timer
+ Timer object to cancel
+
+ @returns {void}
+*/
+Ember.run.cancel = function(timer) {
+ delete timers[timer];
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+// Ember.Logger
+// get, set, trySet
+// guidFor, isArray, meta
+// addObserver, removeObserver
+// Ember.run.schedule
+// ..........................................................
+// CONSTANTS
+//
+
+/**
+ @static
+
+ Debug parameter you can turn on. This will log all bindings that fire to
+ the console. This should be disabled in production code. Note that you
+ can also enable this from the console or temporarily.
+
+ @type Boolean
+ @default false
+*/
+Ember.LOG_BINDINGS = false || !!Ember.ENV.LOG_BINDINGS;
+
+var get = Ember.get,
+ set = Ember.set,
+ guidFor = Ember.guidFor,
+ isGlobalPath = Ember.isGlobalPath;
+
+
+/** @private */
+function getWithGlobals(obj, path) {
+ return get(isGlobalPath(path) ? window : obj, path);
+}
+
+// ..........................................................
+// BINDING
+//
+
+/** @private */
+var Binding = function(toPath, fromPath) {
+ this._direction = 'fwd';
+ this._from = fromPath;
+ this._to = toPath;
+ this._directionMap = Ember.Map.create();
+};
+
+Binding.prototype = /** @scope Ember.Binding.prototype */ {
+ /**
+ This copies the Binding so it can be connected to another object.
+ @returns {Ember.Binding}
+ */
+ copy: function () {
+ var copy = new Binding(this._to, this._from);
+ if (this._oneWay) { copy._oneWay = true; }
+ return copy;
+ },
+
+ // ..........................................................
+ // CONFIG
+ //
+
+ /**
+ This will set "from" property path to the specified value. It will not
+ attempt to resolve this property path to an actual object until you
+ connect the binding.
+
+ The binding will search for the property path starting at the root object
+ you pass when you connect() the binding. It follows the same rules as
+ `get()` - see that method for more information.
+
+ @param {String} propertyPath the property path to connect to
+ @returns {Ember.Binding} receiver
+ */
+ from: function(path) {
+ this._from = path;
+ return this;
+ },
+
+ /**
+ This will set the "to" property path to the specified value. It will not
+ attempt to resolve this property path to an actual object until you
+ connect the binding.
+
+ The binding will search for the property path starting at the root object
+ you pass when you connect() the binding. It follows the same rules as
+ `get()` - see that method for more information.
+
+ @param {String|Tuple} propertyPath A property path or tuple
+ @returns {Ember.Binding} this
+ */
+ to: function(path) {
+ this._to = path;
+ return this;
+ },
+
+ /**
+ Configures the binding as one way. A one-way binding will relay changes
+ on the "from" side to the "to" side, but not the other way around. This
+ means that if you change the "to" side directly, the "from" side may have
+ a different value.
+
+ @returns {Ember.Binding} receiver
+ */
+ oneWay: function() {
+ this._oneWay = true;
+ return this;
+ },
+
+ /** @private */
+ toString: function() {
+ var oneWay = this._oneWay ? '[oneWay]' : '';
+ return "Ember.Binding<" + guidFor(this) + ">(" + this._from + " -> " + this._to + ")" + oneWay;
+ },
+
+ // ..........................................................
+ // CONNECT AND SYNC
+ //
+
+ /**
+ Attempts to connect this binding instance so that it can receive and relay
+ changes. This method will raise an exception if you have not set the
+ from/to properties yet.
+
+ @param {Object} obj The root object for this binding.
+ @returns {Ember.Binding} this
+ */
+ connect: function(obj) {
+ Ember.assert('Must pass a valid object to Ember.Binding.connect()', !!obj);
+
+ var fromPath = this._from, toPath = this._to;
+ Ember.trySet(obj, toPath, getWithGlobals(obj, fromPath));
+
+ // add an observer on the object to be notified when the binding should be updated
+ Ember.addObserver(obj, fromPath, this, this.fromDidChange);
+
+ // if the binding is a two-way binding, also set up an observer on the target
+ if (!this._oneWay) { Ember.addObserver(obj, toPath, this, this.toDidChange); }
+
+ this._readyToSync = true;
+
+ return this;
+ },
+
+ /**
+ Disconnects the binding instance. Changes will no longer be relayed. You
+ will not usually need to call this method.
+
+ @param {Object} obj
+ The root object you passed when connecting the binding.
+
+ @returns {Ember.Binding} this
+ */
+ disconnect: function(obj) {
+ Ember.assert('Must pass a valid object to Ember.Binding.disconnect()', !!obj);
+
+ var twoWay = !this._oneWay;
+
+ // remove an observer on the object so we're no longer notified of
+ // changes that should update bindings.
+ Ember.removeObserver(obj, this._from, this, this.fromDidChange);
+
+ // if the binding is two-way, remove the observer from the target as well
+ if (twoWay) { Ember.removeObserver(obj, this._to, this, this.toDidChange); }
+
+ this._readyToSync = false; // disable scheduled syncs...
+ return this;
+ },
+
+ // ..........................................................
+ // PRIVATE
+ //
+
+ /** @private - called when the from side changes */
+ fromDidChange: function(target) {
+ this._scheduleSync(target, 'fwd');
+ },
+
+ /** @private - called when the to side changes */
+ toDidChange: function(target) {
+ this._scheduleSync(target, 'back');
+ },
+
+ /** @private */
+ _scheduleSync: function(obj, dir) {
+ var directionMap = this._directionMap;
+ var existingDir = directionMap.get(obj);
+
+ // if we haven't scheduled the binding yet, schedule it
+ if (!existingDir) {
+ Ember.run.schedule('sync', this, this._sync, obj);
+ directionMap.set(obj, dir);
+ }
+
+ // If both a 'back' and 'fwd' sync have been scheduled on the same object,
+ // default to a 'fwd' sync so that it remains deterministic.
+ if (existingDir === 'back' && dir === 'fwd') {
+ directionMap.set(obj, 'fwd');
+ }
+ },
+
+ /** @private */
+ _sync: function(obj) {
+ var log = Ember.LOG_BINDINGS;
+
+ // don't synchronize destroyed objects or disconnected bindings
+ if (obj.isDestroyed || !this._readyToSync) { return; }
+
+ // get the direction of the binding for the object we are
+ // synchronizing from
+ var directionMap = this._directionMap;
+ var direction = directionMap.get(obj);
+
+ var fromPath = this._from, toPath = this._to;
+
+ directionMap.remove(obj);
+
+ // if we're synchronizing from the remote object...
+ if (direction === 'fwd') {
+ var fromValue = getWithGlobals(obj, this._from);
+ if (log) {
+ Ember.Logger.log(' ', this.toString(), '->', fromValue, obj);
+ }
+ if (this._oneWay) {
+ Ember.trySet(obj, toPath, fromValue);
+ } else {
+ Ember._suspendObserver(obj, toPath, this, this.toDidChange, function () {
+ Ember.trySet(obj, toPath, fromValue);
+ });
+ }
+ // if we're synchronizing *to* the remote object
+ } else if (direction === 'back') {
+ var toValue = get(obj, this._to);
+ if (log) {
+ Ember.Logger.log(' ', this.toString(), '<-', toValue, obj);
+ }
+ Ember._suspendObserver(obj, fromPath, this, this.fromDidChange, function () {
+ Ember.trySet(Ember.isGlobalPath(fromPath) ? window : obj, fromPath, toValue);
+ });
+ }
+ }
+
+};
+
+/** @private */
+function mixinProperties(to, from) {
+ for (var key in from) {
+ if (from.hasOwnProperty(key)) {
+ to[key] = from[key];
+ }
+ }
+}
+
+mixinProperties(Binding,
+/** @scope Ember.Binding */ {
+
+ /**
+ @see Ember.Binding.prototype.from
+ */
+ from: function() {
+ var C = this, binding = new C();
+ return binding.from.apply(binding, arguments);
+ },
+
+ /**
+ @see Ember.Binding.prototype.to
+ */
+ to: function() {
+ var C = this, binding = new C();
+ return binding.to.apply(binding, arguments);
+ },
+
+ /**
+ Creates a new Binding instance and makes it apply in a single direction.
+ A one-way binding will relay changes on the "from" side object (supplies
+ as the `from` argument) the "to" side, but not the other way around.
+ This means that if you change the "to" side directly, the "from" side may have
+ a different value.
+
+ @param {String} from from path.
+ @param {Boolean} [flag] (Optional) passing nothing here will make the binding oneWay. You can
+ instead pass false to disable oneWay, making the binding two way again.
+
+ @see Ember.Binding.prototype.oneWay
+ */
+ oneWay: function(from, flag) {
+ var C = this, binding = new C(null, from);
+ return binding.oneWay(flag);
+ }
+
+});
+
+/**
+ @class
+
+ An Ember.Binding connects the properties of two objects so that whenever the
+ value of one property changes, the other property will be changed also.
+
+ ## Automatic Creation of Bindings with `/^*Binding/`-named Properties
+ You do not usually create Binding objects directly but instead describe
+ bindings in your class or object definition using automatic binding detection.
+
+ Properties ending in a `Binding` suffix will be converted to Ember.Binding instances.
+ The value of this property should be a string representing a path to another object or
+ a custom binding instanced created using Binding helpers (see "Customizing Your Bindings"):
+
+ valueBinding: "MyApp.someController.title"
+
+ This will create a binding from `MyApp.someController.title` to the `value`
+ property of your object instance automatically. Now the two values will be
+ kept in sync.
+
+ ## One Way Bindings
+
+ One especially useful binding customization you can use is the `oneWay()`
+ helper. This helper tells Ember that you are only interested in
+ receiving changes on the object you are binding from. For example, if you
+ are binding to a preference and you want to be notified if the preference
+ has changed, but your object will not be changing the preference itself, you
+ could do:
+
+ bigTitlesBinding: Ember.Binding.oneWay("MyApp.preferencesController.bigTitles")
+
+ This way if the value of MyApp.preferencesController.bigTitles changes the
+ "bigTitles" property of your object will change also. However, if you
+ change the value of your "bigTitles" property, it will not update the
+ preferencesController.
+
+ One way bindings are almost twice as fast to setup and twice as fast to
+ execute because the binding only has to worry about changes to one side.
+
+ You should consider using one way bindings anytime you have an object that
+ may be created frequently and you do not intend to change a property; only
+ to monitor it for changes. (such as in the example above).
+
+ ## Adding Bindings Manually
+
+ All of the examples above show you how to configure a custom binding, but
+ the result of these customizations will be a binding template, not a fully
+ active Binding instance. The binding will actually become active only when you
+ instantiate the object the binding belongs to. It is useful however, to
+ understand what actually happens when the binding is activated.
+
+ For a binding to function it must have at least a "from" property and a "to"
+ property. The from property path points to the object/key that you want to
+ bind from while the to path points to the object/key you want to bind to.
+
+ When you define a custom binding, you are usually describing the property
+ you want to bind from (such as "MyApp.someController.value" in the examples
+ above). When your object is created, it will automatically assign the value
+ you want to bind "to" based on the name of your binding key. In the
+ examples above, during init, Ember objects will effectively call
+ something like this on your binding:
+
+ binding = Ember.Binding.from(this.valueBinding).to("value");
+
+ This creates a new binding instance based on the template you provide, and
+ sets the to path to the "value" property of the new object. Now that the
+ binding is fully configured with a "from" and a "to", it simply needs to be
+ connected to become active. This is done through the connect() method:
+
+ binding.connect(this);
+
+ Note that when you connect a binding you pass the object you want it to be
+ connected to. This object will be used as the root for both the from and
+ to side of the binding when inspecting relative paths. This allows the
+ binding to be automatically inherited by subclassed objects as well.
+
+ Now that the binding is connected, it will observe both the from and to side
+ and relay changes.
+
+ If you ever needed to do so (you almost never will, but it is useful to
+ understand this anyway), you could manually create an active binding by
+ using the Ember.bind() helper method. (This is the same method used by
+ to setup your bindings on objects):
+
+ Ember.bind(MyApp.anotherObject, "value", "MyApp.someController.value");
+
+ Both of these code fragments have the same effect as doing the most friendly
+ form of binding creation like so:
+
+ MyApp.anotherObject = Ember.Object.create({
+ valueBinding: "MyApp.someController.value",
+
+ // OTHER CODE FOR THIS OBJECT...
+
+ });
+
+ Ember's built in binding creation method makes it easy to automatically
+ create bindings for you. You should always use the highest-level APIs
+ available, even if you understand how it works underneath.
+
+ @since Ember 0.9
+*/
+Ember.Binding = Binding;
+
+/**
+ Global helper method to create a new binding. Just pass the root object
+ along with a to and from path to create and connect the binding.
+
+ @param {Object} obj
+ The root object of the transform.
+
+ @param {String} to
+ The path to the 'to' side of the binding. Must be relative to obj.
+
+ @param {String} from
+ The path to the 'from' side of the binding. Must be relative to obj or
+ a global path.
+
+ @returns {Ember.Binding} binding instance
+*/
+Ember.bind = function(obj, to, from) {
+ return new Ember.Binding(to, from).connect(obj);
+};
+
+Ember.oneWay = function(obj, to, from) {
+ return new Ember.Binding(to, from).oneWay().connect(obj);
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var Mixin, REQUIRED, Alias,
+ classToString, superClassString,
+ a_map = Ember.ArrayPolyfills.map,
+ a_indexOf = Ember.ArrayPolyfills.indexOf,
+ a_forEach = Ember.ArrayPolyfills.forEach,
+ a_slice = [].slice,
+ EMPTY_META = {}, // dummy for non-writable meta
+ META_SKIP = { __emberproto__: true, __ember_count__: true },
+ o_create = Ember.create,
+ defineProperty = Ember.defineProperty,
+ guidFor = Ember.guidFor;
+
+/** @private */
+function mixinsMeta(obj) {
+ var m = Ember.meta(obj, true), ret = m.mixins;
+ if (!ret) {
+ ret = m.mixins = { __emberproto__: obj };
+ } else if (ret.__emberproto__ !== obj) {
+ ret = m.mixins = o_create(ret);
+ ret.__emberproto__ = obj;
+ }
+ return ret;
+}
+
+/** @private */
+function initMixin(mixin, args) {
+ if (args && args.length > 0) {
+ mixin.mixins = a_map.call(args, function(x) {
+ if (x instanceof Mixin) { return x; }
+
+ // Note: Manually setup a primitive mixin here. This is the only
+ // way to actually get a primitive mixin. This way normal creation
+ // of mixins will give you combined mixins...
+ var mixin = new Mixin();
+ mixin.properties = x;
+ return mixin;
+ });
+ }
+ return mixin;
+}
+
+/** @private */
+function isMethod(obj) {
+ return 'function' === typeof obj &&
+ obj.isMethod !== false &&
+ obj !== Boolean && obj !== Object && obj !== Number && obj !== Array && obj !== Date && obj !== String;
+}
+
+/** @private */
+function mergeMixins(mixins, m, descs, values, base) {
+ var len = mixins.length, idx, mixin, guid, props, value, key, ovalue, concats;
+
+ /** @private */
+ function removeKeys(keyName) {
+ delete descs[keyName];
+ delete values[keyName];
+ }
+
+ for(idx=0; idx < len; idx++) {
+ mixin = mixins[idx];
+ Ember.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(mixin), typeof mixin === 'object' && mixin !== null && Object.prototype.toString.call(mixin) !== '[object Array]');
+
+ if (mixin instanceof Mixin) {
+ guid = guidFor(mixin);
+ if (m[guid]) { continue; }
+ m[guid] = mixin;
+ props = mixin.properties;
+ } else {
+ props = mixin; // apply anonymous mixin properties
+ }
+
+ if (props) {
+ // reset before adding each new mixin to pickup concats from previous
+ concats = values.concatenatedProperties || base.concatenatedProperties;
+ if (props.concatenatedProperties) {
+ concats = concats ? concats.concat(props.concatenatedProperties) : props.concatenatedProperties;
+ }
+
+ for (key in props) {
+ if (!props.hasOwnProperty(key)) { continue; }
+ value = props[key];
+ if (value instanceof Ember.Descriptor) {
+ if (value === REQUIRED && descs[key]) { continue; }
+
+ descs[key] = value;
+ values[key] = undefined;
+ } else {
+ // impl super if needed...
+ if (isMethod(value)) {
+ ovalue = descs[key] === undefined && values[key];
+ if (!ovalue) { ovalue = base[key]; }
+ if ('function' !== typeof ovalue) { ovalue = null; }
+ if (ovalue) {
+ var o = value.__ember_observes__, ob = value.__ember_observesBefore__;
+ value = Ember.wrap(value, ovalue);
+ value.__ember_observes__ = o;
+ value.__ember_observesBefore__ = ob;
+ }
+ } else if ((concats && a_indexOf.call(concats, key) >= 0) || key === 'concatenatedProperties') {
+ var baseValue = values[key] || base[key];
+ value = baseValue ? baseValue.concat(value) : Ember.makeArray(value);
+ }
+
+ descs[key] = undefined;
+ values[key] = value;
+ }
+ }
+
+ // manually copy toString() because some JS engines do not enumerate it
+ if (props.hasOwnProperty('toString')) {
+ base.toString = props.toString;
+ }
+
+ } else if (mixin.mixins) {
+ mergeMixins(mixin.mixins, m, descs, values, base);
+ if (mixin._without) { a_forEach.call(mixin._without, removeKeys); }
+ }
+ }
+}
+
+/** @private */
+function writableReq(obj) {
+ var m = Ember.meta(obj), req = m.required;
+ if (!req || req.__emberproto__ !== obj) {
+ req = m.required = req ? o_create(req) : { __ember_count__: 0 };
+ req.__emberproto__ = obj;
+ }
+ return req;
+}
+
+var IS_BINDING = Ember.IS_BINDING = /^.+Binding$/;
+
+/** @private */
+function detectBinding(obj, key, value, m) {
+ if (IS_BINDING.test(key)) {
+ var bindings = m.bindings;
+ if (!bindings) {
+ bindings = m.bindings = { __emberproto__: obj };
+ } else if (bindings.__emberproto__ !== obj) {
+ bindings = m.bindings = o_create(m.bindings);
+ bindings.__emberproto__ = obj;
+ }
+ bindings[key] = value;
+ }
+}
+
+/** @private */
+function connectBindings(obj, m) {
+ // TODO Mixin.apply(instance) should disconnect binding if exists
+ var bindings = m.bindings, key, binding, to;
+ if (bindings) {
+ for (key in bindings) {
+ binding = key !== '__emberproto__' && bindings[key];
+ if (binding) {
+ to = key.slice(0, -7); // strip Binding off end
+ if (binding instanceof Ember.Binding) {
+ binding = binding.copy(); // copy prototypes' instance
+ binding.to(to);
+ } else { // binding is string path
+ binding = new Ember.Binding(to, binding);
+ }
+ binding.connect(obj);
+ obj[key] = binding;
+ }
+ }
+ // mark as applied
+ m.bindings = { __emberproto__: obj };
+ }
+}
+
+function finishPartial(obj, m) {
+ connectBindings(obj, m || Ember.meta(obj));
+ return obj;
+}
+
+/** @private */
+function applyMixin(obj, mixins, partial) {
+ var descs = {}, values = {}, m = Ember.meta(obj), req = m.required,
+ key, value, desc, prevValue, paths, len, idx;
+
+ // Go through all mixins and hashes passed in, and:
+ //
+ // * Handle concatenated properties
+ // * Set up _super wrapping if necessary
+ // * Set up computed property descriptors
+ // * Copying `toString` in broken browsers
+ mergeMixins(mixins, mixinsMeta(obj), descs, values, obj);
+
+ for(key in values) {
+ if (key === 'contructor') { continue; }
+ if (!values.hasOwnProperty(key)) { continue; }
+
+ desc = descs[key];
+ value = values[key];
+
+ if (desc === REQUIRED) {
+ if (!(key in obj)) {
+ Ember.assert('Required property not defined: '+key, !!partial);
+
+ // for partial applies add to hash of required keys
+ req = writableReq(obj);
+ req.__ember_count__++;
+ req[key] = true;
+ }
+ } else {
+ while (desc && desc instanceof Alias) {
+ var altKey = desc.methodName;
+ if (descs[altKey] || values[altKey]) {
+ value = values[altKey];
+ desc = descs[altKey];
+ } else if (m.descs[altKey]) {
+ desc = m.descs[altKey];
+ value = undefined;
+ } else {
+ desc = undefined;
+ value = obj[altKey];
+ }
+ }
+
+ if (desc === undefined && value === undefined) { continue; }
+
+ prevValue = obj[key];
+
+ if ('function' === typeof prevValue) {
+ if ((paths = prevValue.__ember_observesBefore__)) {
+ len = paths.length;
+ for (idx=0; idx < len; idx++) {
+ Ember.removeBeforeObserver(obj, paths[idx], null, key);
+ }
+ } else if ((paths = prevValue.__ember_observes__)) {
+ len = paths.length;
+ for (idx=0; idx < len; idx++) {
+ Ember.removeObserver(obj, paths[idx], null, key);
+ }
+ }
+ }
+
+ detectBinding(obj, key, value, m);
+
+ defineProperty(obj, key, desc, value, m);
+
+ if ('function' === typeof value) {
+ if (paths = value.__ember_observesBefore__) {
+ len = paths.length;
+ for (idx=0; idx < len; idx++) {
+ Ember.addBeforeObserver(obj, paths[idx], null, key);
+ }
+ } else if (paths = value.__ember_observes__) {
+ len = paths.length;
+ for (idx=0; idx < len; idx++) {
+ Ember.addObserver(obj, paths[idx], null, key);
+ }
+ }
+ }
+
+ if (req && req[key]) {
+ req = writableReq(obj);
+ req.__ember_count__--;
+ req[key] = false;
+ }
+ }
+ }
+
+ if (!partial) { // don't apply to prototype
+ finishPartial(obj, m);
+ }
+
+ // Make sure no required attrs remain
+ if (!partial && req && req.__ember_count__>0) {
+ var keys = [];
+ for (key in req) {
+ if (META_SKIP[key]) { continue; }
+ keys.push(key);
+ }
+ // TODO: Remove surrounding if clause from production build
+ Ember.assert('Required properties not defined: '+keys.join(','));
+ }
+ return obj;
+}
+
+Ember.mixin = function(obj) {
+ var args = a_slice.call(arguments, 1);
+ applyMixin(obj, args, false);
+ return obj;
+};
+
+/**
+ @class
+
+ The `Ember.Mixin` class allows you to create mixins, whose properties can be
+ added to other classes. For instance,
+
+ App.Editable = Ember.Mixin.create({
+ edit: function() {
+ console.log('starting to edit');
+ this.set('isEditing', true);
+ },
+ isEditing: false
+ });
+
+ // Mix mixins into classes by passing them as the first arguments to
+ // .extend or .create.
+ App.CommentView = Ember.View.extend(App.Editable, {
+ template: Ember.Handlebars.compile('{{#if isEditing}}...{{else}}...{{/if}}')
+ });
+
+ commentView = App.CommentView.create();
+ commentView.edit(); // => outputs 'starting to edit'
+
+ Note that Mixins are created with `Ember.Mixin.create`, not
+ `Ember.Mixin.extend`.
+*/
+Ember.Mixin = function() { return initMixin(this, arguments); };
+
+/** @private */
+Mixin = Ember.Mixin;
+
+/** @private */
+Mixin._apply = applyMixin;
+
+Mixin.applyPartial = function(obj) {
+ var args = a_slice.call(arguments, 1);
+ return applyMixin(obj, args, true);
+};
+
+Mixin.finishPartial = finishPartial;
+
+Mixin.create = function() {
+ classToString.processed = false;
+ var M = this;
+ return initMixin(new M(), arguments);
+};
+
+var MixinPrototype = Mixin.prototype;
+
+MixinPrototype.reopen = function() {
+ var mixin, tmp;
+
+ if (this.properties) {
+ mixin = Mixin.create();
+ mixin.properties = this.properties;
+ delete this.properties;
+ this.mixins = [mixin];
+ } else if (!this.mixins) {
+ this.mixins = [];
+ }
+
+ var len = arguments.length, mixins = this.mixins, idx;
+
+ for(idx=0; idx < len; idx++) {
+ mixin = arguments[idx];
+ Ember.assert('Expected hash or Mixin instance, got ' + Object.prototype.toString.call(mixin), typeof mixin === 'object' && mixin !== null && Object.prototype.toString.call(mixin) !== '[object Array]');
+
+ if (mixin instanceof Mixin) {
+ mixins.push(mixin);
+ } else {
+ tmp = Mixin.create();
+ tmp.properties = mixin;
+ mixins.push(tmp);
+ }
+ }
+
+ return this;
+};
+
+MixinPrototype.apply = function(obj) {
+ return applyMixin(obj, [this], false);
+};
+
+MixinPrototype.applyPartial = function(obj) {
+ return applyMixin(obj, [this], true);
+};
+
+/** @private */
+function _detect(curMixin, targetMixin, seen) {
+ var guid = guidFor(curMixin);
+
+ if (seen[guid]) { return false; }
+ seen[guid] = true;
+
+ if (curMixin === targetMixin) { return true; }
+ var mixins = curMixin.mixins, loc = mixins ? mixins.length : 0;
+ while (--loc >= 0) {
+ if (_detect(mixins[loc], targetMixin, seen)) { return true; }
+ }
+ return false;
+}
+
+MixinPrototype.detect = function(obj) {
+ if (!obj) { return false; }
+ if (obj instanceof Mixin) { return _detect(obj, this, {}); }
+ var mixins = Ember.meta(obj, false).mixins;
+ if (mixins) {
+ return !!mixins[guidFor(this)];
+ }
+ return false;
+};
+
+MixinPrototype.without = function() {
+ var ret = new Mixin(this);
+ ret._without = a_slice.call(arguments);
+ return ret;
+};
+
+/** @private */
+function _keys(ret, mixin, seen) {
+ if (seen[guidFor(mixin)]) { return; }
+ seen[guidFor(mixin)] = true;
+
+ if (mixin.properties) {
+ var props = mixin.properties;
+ for (var key in props) {
+ if (props.hasOwnProperty(key)) { ret[key] = true; }
+ }
+ } else if (mixin.mixins) {
+ a_forEach.call(mixin.mixins, function(x) { _keys(ret, x, seen); });
+ }
+}
+
+MixinPrototype.keys = function() {
+ var keys = {}, seen = {}, ret = [];
+ _keys(keys, this, seen);
+ for(var key in keys) {
+ if (keys.hasOwnProperty(key)) { ret.push(key); }
+ }
+ return ret;
+};
+
+/** @private - make Mixin's have nice displayNames */
+
+var NAME_KEY = Ember.GUID_KEY+'_name';
+var get = Ember.get;
+
+/** @private */
+function processNames(paths, root, seen) {
+ var idx = paths.length;
+ for(var key in root) {
+ if (!root.hasOwnProperty || !root.hasOwnProperty(key)) { continue; }
+ var obj = root[key];
+ paths[idx] = key;
+
+ if (obj && obj.toString === classToString) {
+ obj[NAME_KEY] = paths.join('.');
+ } else if (obj && get(obj, 'isNamespace')) {
+ if (seen[guidFor(obj)]) { continue; }
+ seen[guidFor(obj)] = true;
+ processNames(paths, obj, seen);
+ }
+ }
+ paths.length = idx; // cut out last item
+}
+
+/** @private */
+function findNamespaces() {
+ var Namespace = Ember.Namespace, obj, isNamespace;
+
+ if (Namespace.PROCESSED) { return; }
+
+ for (var prop in window) {
+ // get(window.globalStorage, 'isNamespace') would try to read the storage for domain isNamespace and cause exception in Firefox.
+ // globalStorage is a storage obsoleted by the WhatWG storage specification. See https://developer.mozilla.org/en/DOM/Storage#globalStorage
+ if (prop === "globalStorage" && window.StorageList && window.globalStorage instanceof window.StorageList) { continue; }
+ // Unfortunately, some versions of IE don't support window.hasOwnProperty
+ if (window.hasOwnProperty && !window.hasOwnProperty(prop)) { continue; }
+
+ // At times we are not allowed to access certain properties for security reasons.
+ // There are also times where even if we can access them, we are not allowed to access their properties.
+ try {
+ obj = window[prop];
+ isNamespace = obj && get(obj, 'isNamespace');
+ } catch (e) {
+ continue;
+ }
+
+ if (isNamespace) {
+ Ember.deprecate("Namespaces should not begin with lowercase.", /^[A-Z]/.test(prop));
+ obj[NAME_KEY] = prop;
+ }
+ }
+}
+
+Ember.identifyNamespaces = findNamespaces;
+
+/** @private */
+superClassString = function(mixin) {
+ var superclass = mixin.superclass;
+ if (superclass) {
+ if (superclass[NAME_KEY]) { return superclass[NAME_KEY]; }
+ else { return superClassString(superclass); }
+ } else {
+ return;
+ }
+};
+
+/** @private */
+classToString = function() {
+ var Namespace = Ember.Namespace, namespace;
+
+ // TODO: Namespace should really be in Metal
+ if (Namespace) {
+ if (!this[NAME_KEY] && !classToString.processed) {
+ if (!Namespace.PROCESSED) {
+ findNamespaces();
+ Namespace.PROCESSED = true;
+ }
+
+ classToString.processed = true;
+
+ var namespaces = Namespace.NAMESPACES;
+ for (var i=0, l=namespaces.length; i<l; i++) {
+ namespace = namespaces[i];
+ processNames([namespace.toString()], namespace, {});
+ }
+ }
+ }
+
+ if (this[NAME_KEY]) {
+ return this[NAME_KEY];
+ } else {
+ var str = superClassString(this);
+ if (str) {
+ return "(subclass of " + str + ")";
+ } else {
+ return "(unknown mixin)";
+ }
+ }
+};
+
+MixinPrototype.toString = classToString;
+
+// returns the mixins currently applied to the specified object
+// TODO: Make Ember.mixin
+Mixin.mixins = function(obj) {
+ var ret = [], mixins = Ember.meta(obj, false).mixins, key, mixin;
+ if (mixins) {
+ for(key in mixins) {
+ if (META_SKIP[key]) { continue; }
+ mixin = mixins[key];
+
+ // skip primitive mixins since these are always anonymous
+ if (!mixin.properties) { ret.push(mixins[key]); }
+ }
+ }
+ return ret;
+};
+
+REQUIRED = new Ember.Descriptor();
+REQUIRED.toString = function() { return '(Required Property)'; };
+
+Ember.required = function() {
+ return REQUIRED;
+};
+
+/** @private */
+Alias = function(methodName) {
+ this.methodName = methodName;
+};
+Alias.prototype = new Ember.Descriptor();
+
+Ember.alias = function(methodName) {
+ return new Alias(methodName);
+};
+
+// ..........................................................
+// OBSERVER HELPER
+//
+
+Ember.observer = function(func) {
+ var paths = a_slice.call(arguments, 1);
+ func.__ember_observes__ = paths;
+ return func;
+};
+
+// If observers ever become asynchronous, Ember.immediateObserver
+// must remain synchronous.
+Ember.immediateObserver = function() {
+ for (var i=0, l=arguments.length; i<l; i++) {
+ var arg = arguments[i];
+ Ember.assert("Immediate observers must observe internal properties only, not properties on other objects.", typeof arg !== "string" || arg.indexOf('.') === -1);
+ }
+
+ return Ember.observer.apply(this, arguments);
+};
+
+Ember.beforeObserver = function(func) {
+ var paths = a_slice.call(arguments, 1);
+ func.__ember_observesBefore__ = paths;
+ return func;
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Metal
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+(function() {
+/**
+ * @license
+ * ==========================================================================
+ * Ember
+ * Copyright ©2006-2011, Strobe Inc. and contributors.
+ * Portions copyright ©2008-2011 Apple Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * For more information about Ember, visit http://www.emberjs.com
+ *
+ * ==========================================================================
+ */
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/*globals ENV */
+var indexOf = Ember.EnumerableUtils.indexOf;
+
+// ........................................
+// TYPING & ARRAY MESSAGING
+//
+
+var TYPE_MAP = {};
+var t = "Boolean Number String Function Array Date RegExp Object".split(" ");
+Ember.ArrayPolyfills.forEach.call(t, function(name) {
+ TYPE_MAP[ "[object " + name + "]" ] = name.toLowerCase();
+});
+
+var toString = Object.prototype.toString;
+
+/**
+ Returns a consistent type for the passed item.
+
+ Use this instead of the built-in Ember.typeOf() to get the type of an item.
+ It will return the same result across all browsers and includes a bit
+ more detail. Here is what will be returned:
+
+ | Return Value | Meaning |
+ |---------------|------------------------------------------------------|
+ | 'string' | String primitive |
+ | 'number' | Number primitive |
+ | 'boolean' | Boolean primitive |
+ | 'null' | Null value |
+ | 'undefined' | Undefined value |
+ | 'function' | A function |
+ | 'array' | An instance of Array |
+ | 'class' | A Ember class (created using Ember.Object.extend()) |
+ | 'instance' | A Ember object instance |
+ | 'error' | An instance of the Error object |
+ | 'object' | A JavaScript object not inheriting from Ember.Object |
+
+ Examples:
+
+ Ember.typeOf(); => 'undefined'
+ Ember.typeOf(null); => 'null'
+ Ember.typeOf(undefined); => 'undefined'
+ Ember.typeOf('michael'); => 'string'
+ Ember.typeOf(101); => 'number'
+ Ember.typeOf(true); => 'boolean'
+ Ember.typeOf(Ember.makeArray); => 'function'
+ Ember.typeOf([1,2,90]); => 'array'
+ Ember.typeOf(Ember.Object.extend()); => 'class'
+ Ember.typeOf(Ember.Object.create()); => 'instance'
+ Ember.typeOf(new Error('teamocil')); => 'error'
+
+ // "normal" JavaScript object
+ Ember.typeOf({a: 'b'}); => 'object'
+
+ @param item {Object} the item to check
+ @returns {String} the type
+*/
+Ember.typeOf = function(item) {
+ var ret;
+
+ ret = (item === null || item === undefined) ? String(item) : TYPE_MAP[toString.call(item)] || 'object';
+
+ if (ret === 'function') {
+ if (Ember.Object && Ember.Object.detect(item)) ret = 'class';
+ } else if (ret === 'object') {
+ if (item instanceof Error) ret = 'error';
+ else if (Ember.Object && item instanceof Ember.Object) ret = 'instance';
+ else ret = 'object';
+ }
+
+ return ret;
+};
+
+/**
+ Returns true if the passed value is null or undefined. This avoids errors
+ from JSLint complaining about use of ==, which can be technically
+ confusing.
+
+ Ember.none(); => true
+ Ember.none(null); => true
+ Ember.none(undefined); => true
+ Ember.none(''); => false
+ Ember.none([]); => false
+ Ember.none(function(){}); => false
+
+ @param {Object} obj Value to test
+ @returns {Boolean}
+*/
+Ember.none = function(obj) {
+ return obj === null || obj === undefined;
+};
+
+/**
+ Verifies that a value is null or an empty string | array | function.
+
+ Constrains the rules on `Ember.none` by returning false for empty
+ string and empty arrays.
+
+ Ember.empty(); => true
+ Ember.empty(null); => true
+ Ember.empty(undefined); => true
+ Ember.empty(''); => true
+ Ember.empty([]); => true
+ Ember.empty('tobias fünke'); => false
+ Ember.empty([0,1,2]); => false
+
+ @param {Object} obj Value to test
+ @returns {Boolean}
+*/
+Ember.empty = function(obj) {
+ return obj === null || obj === undefined || (obj.length === 0 && typeof obj !== 'function');
+};
+
+/**
+ This will compare two javascript values of possibly different types.
+ It will tell you which one is greater than the other by returning:
+
+ - -1 if the first is smaller than the second,
+ - 0 if both are equal,
+ - 1 if the first is greater than the second.
+
+ The order is calculated based on Ember.ORDER_DEFINITION, if types are different.
+ In case they have the same type an appropriate comparison for this type is made.
+
+ Ember.compare('hello', 'hello'); => 0
+ Ember.compare('abc', 'dfg'); => -1
+ Ember.compare(2, 1); => 1
+
+ @param {Object} v First value to compare
+ @param {Object} w Second value to compare
+ @returns {Number} -1 if v < w, 0 if v = w and 1 if v > w.
+*/
+Ember.compare = function compare(v, w) {
+ if (v === w) { return 0; }
+
+ var type1 = Ember.typeOf(v);
+ var type2 = Ember.typeOf(w);
+
+ var Comparable = Ember.Comparable;
+ if (Comparable) {
+ if (type1==='instance' && Comparable.detect(v.constructor)) {
+ return v.constructor.compare(v, w);
+ }
+
+ if (type2 === 'instance' && Comparable.detect(w.constructor)) {
+ return 1-w.constructor.compare(w, v);
+ }
+ }
+
+ // If we haven't yet generated a reverse-mapping of Ember.ORDER_DEFINITION,
+ // do so now.
+ var mapping = Ember.ORDER_DEFINITION_MAPPING;
+ if (!mapping) {
+ var order = Ember.ORDER_DEFINITION;
+ mapping = Ember.ORDER_DEFINITION_MAPPING = {};
+ var idx, len;
+ for (idx = 0, len = order.length; idx < len; ++idx) {
+ mapping[order[idx]] = idx;
+ }
+
+ // We no longer need Ember.ORDER_DEFINITION.
+ delete Ember.ORDER_DEFINITION;
+ }
+
+ var type1Index = mapping[type1];
+ var type2Index = mapping[type2];
+
+ if (type1Index < type2Index) { return -1; }
+ if (type1Index > type2Index) { return 1; }
+
+ // types are equal - so we have to check values now
+ switch (type1) {
+ case 'boolean':
+ case 'number':
+ if (v < w) { return -1; }
+ if (v > w) { return 1; }
+ return 0;
+
+ case 'string':
+ var comp = v.localeCompare(w);
+ if (comp < 0) { return -1; }
+ if (comp > 0) { return 1; }
+ return 0;
+
+ case 'array':
+ var vLen = v.length;
+ var wLen = w.length;
+ var l = Math.min(vLen, wLen);
+ var r = 0;
+ var i = 0;
+ while (r === 0 && i < l) {
+ r = compare(v[i],w[i]);
+ i++;
+ }
+ if (r !== 0) { return r; }
+
+ // all elements are equal now
+ // shorter array should be ordered first
+ if (vLen < wLen) { return -1; }
+ if (vLen > wLen) { return 1; }
+ // arrays are equal now
+ return 0;
+
+ case 'instance':
+ if (Ember.Comparable && Ember.Comparable.detect(v)) {
+ return v.compare(v, w);
+ }
+ return 0;
+
+ case 'date':
+ var vNum = v.getTime();
+ var wNum = w.getTime();
+ if (vNum < wNum) { return -1; }
+ if (vNum > wNum) { return 1; }
+ return 0;
+
+ default:
+ return 0;
+ }
+};
+
+/** @private */
+function _copy(obj, deep, seen, copies) {
+ var ret, loc, key;
+
+ // primitive data types are immutable, just return them.
+ if ('object' !== typeof obj || obj===null) return obj;
+
+ // avoid cyclical loops
+ if (deep && (loc=indexOf(seen, obj))>=0) return copies[loc];
+
+ Ember.assert('Cannot clone an Ember.Object that does not implement Ember.Copyable', !(obj instanceof Ember.Object) || (Ember.Copyable && Ember.Copyable.detect(obj)));
+
+ // IMPORTANT: this specific test will detect a native array only. Any other
+ // object will need to implement Copyable.
+ if (Ember.typeOf(obj) === 'array') {
+ ret = obj.slice();
+ if (deep) {
+ loc = ret.length;
+ while(--loc>=0) ret[loc] = _copy(ret[loc], deep, seen, copies);
+ }
+ } else if (Ember.Copyable && Ember.Copyable.detect(obj)) {
+ ret = obj.copy(deep, seen, copies);
+ } else {
+ ret = {};
+ for(key in obj) {
+ if (!obj.hasOwnProperty(key)) continue;
+ ret[key] = deep ? _copy(obj[key], deep, seen, copies) : obj[key];
+ }
+ }
+
+ if (deep) {
+ seen.push(obj);
+ copies.push(ret);
+ }
+
+ return ret;
+}
+
+/**
+ Creates a clone of the passed object. This function can take just about
+ any type of object and create a clone of it, including primitive values
+ (which are not actually cloned because they are immutable).
+
+ If the passed object implements the clone() method, then this function
+ will simply call that method and return the result.
+
+ @param {Object} object The object to clone
+ @param {Boolean} deep If true, a deep copy of the object is made
+ @returns {Object} The cloned object
+*/
+Ember.copy = function(obj, deep) {
+ // fast paths
+ if ('object' !== typeof obj || obj===null) return obj; // can't copy primitives
+ if (Ember.Copyable && Ember.Copyable.detect(obj)) return obj.copy(deep);
+ return _copy(obj, deep, deep ? [] : null, deep ? [] : null);
+};
+
+/**
+ Convenience method to inspect an object. This method will attempt to
+ convert the object into a useful string description.
+
+ @param {Object} obj The object you want to inspect.
+ @returns {String} A description of the object
+*/
+Ember.inspect = function(obj) {
+ var v, ret = [];
+ for(var key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ v = obj[key];
+ if (v === 'toString') { continue; } // ignore useless items
+ if (Ember.typeOf(v) === 'function') { v = "function() { ... }"; }
+ ret.push(key + ": " + v);
+ }
+ }
+ return "{" + ret.join(" , ") + "}";
+};
+
+/**
+ Compares two objects, returning true if they are logically equal. This is
+ a deeper comparison than a simple triple equal. For sets it will compare the
+ internal objects. For any other object that implements `isEqual()` it will
+ respect that method.
+
+ Ember.isEqual('hello', 'hello'); => true
+ Ember.isEqual(1, 2); => false
+ Ember.isEqual([4,2], [4,2]); => false
+
+ @param {Object} a first object to compare
+ @param {Object} b second object to compare
+ @returns {Boolean}
+*/
+Ember.isEqual = function(a, b) {
+ if (a && 'function'===typeof a.isEqual) return a.isEqual(b);
+ return a === b;
+};
+
+/**
+ @private
+ Used by Ember.compare
+*/
+Ember.ORDER_DEFINITION = Ember.ENV.ORDER_DEFINITION || [
+ 'undefined',
+ 'null',
+ 'boolean',
+ 'number',
+ 'string',
+ 'array',
+ 'object',
+ 'instance',
+ 'function',
+ 'class',
+ 'date'
+];
+
+/**
+ Returns all of the keys defined on an object or hash. This is useful
+ when inspecting objects for debugging. On browsers that support it, this
+ uses the native Object.keys implementation.
+
+ @function
+ @param {Object} obj
+ @returns {Array} Array containing keys of obj
+*/
+Ember.keys = Object.keys;
+
+if (!Ember.keys) {
+ Ember.keys = function(obj) {
+ var ret = [];
+ for(var key in obj) {
+ if (obj.hasOwnProperty(key)) { ret.push(key); }
+ }
+ return ret;
+ };
+}
+
+// ..........................................................
+// ERROR
+//
+
+/**
+ @class
+
+ A subclass of the JavaScript Error object for use in Ember.
+*/
+Ember.Error = function() {
+ var tmp = Error.prototype.constructor.apply(this, arguments);
+
+ for (var p in tmp) {
+ if (tmp.hasOwnProperty(p)) { this[p] = tmp[p]; }
+ }
+ this.message = tmp.message;
+};
+
+Ember.Error.prototype = Ember.create(Error.prototype);
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+/** @private **/
+var STRING_DASHERIZE_REGEXP = (/[ _]/g);
+var STRING_DASHERIZE_CACHE = {};
+var STRING_DECAMELIZE_REGEXP = (/([a-z])([A-Z])/g);
+var STRING_CAMELIZE_REGEXP = (/(\-|_|\s)+(.)?/g);
+var STRING_UNDERSCORE_REGEXP_1 = (/([a-z\d])([A-Z]+)/g);
+var STRING_UNDERSCORE_REGEXP_2 = (/\-|\s+/g);
+
+/**
+ Defines the hash of localized strings for the current language. Used by
+ the `Ember.String.loc()` helper. To localize, add string values to this
+ hash.
+
+ @type Hash
+*/
+Ember.STRINGS = {};
+
+/**
+ Defines string helper methods including string formatting and localization.
+ Unless Ember.EXTEND_PROTOTYPES = false these methods will also be added to the
+ String.prototype as well.
+
+ @namespace
+*/
+Ember.String = {
+
+ /**
+ Apply formatting options to the string. This will look for occurrences
+ of %@ in your string and substitute them with the arguments you pass into
+ this method. If you want to control the specific order of replacement,
+ you can add a number after the key as well to indicate which argument
+ you want to insert.
+
+ Ordered insertions are most useful when building loc strings where values
+ you need to insert may appear in different orders.
+
+ "Hello %@ %@".fmt('John', 'Doe') => "Hello John Doe"
+ "Hello %@2, %@1".fmt('John', 'Doe') => "Hello Doe, John"
+
+ @param {Object...} [args]
+ @returns {String} formatted string
+ */
+ fmt: function(str, formats) {
+ // first, replace any ORDERED replacements.
+ var idx = 0; // the current index for non-numerical replacements
+ return str.replace(/%@([0-9]+)?/g, function(s, argIndex) {
+ argIndex = (argIndex) ? parseInt(argIndex,0) - 1 : idx++ ;
+ s = formats[argIndex];
+ return ((s === null) ? '(null)' : (s === undefined) ? '' : s).toString();
+ }) ;
+ },
+
+ /**
+ Formats the passed string, but first looks up the string in the localized
+ strings hash. This is a convenient way to localize text. See
+ `Ember.String.fmt()` for more information on formatting.
+
+ Note that it is traditional but not required to prefix localized string
+ keys with an underscore or other character so you can easily identify
+ localized strings.
+
+ Ember.STRINGS = {
+ '_Hello World': 'Bonjour le monde',
+ '_Hello %@ %@': 'Bonjour %@ %@'
+ };
+
+ Ember.String.loc("_Hello World");
+ => 'Bonjour le monde';
+
+ Ember.String.loc("_Hello %@ %@", ["John", "Smith"]);
+ => "Bonjour John Smith";
+
+ @param {String} str
+ The string to format
+
+ @param {Array} formats
+ Optional array of parameters to interpolate into string.
+
+ @returns {String} formatted string
+ */
+ loc: function(str, formats) {
+ str = Ember.STRINGS[str] || str;
+ return Ember.String.fmt(str, formats) ;
+ },
+
+ /**
+ Splits a string into separate units separated by spaces, eliminating any
+ empty strings in the process. This is a convenience method for split that
+ is mostly useful when applied to the String.prototype.
+
+ Ember.String.w("alpha beta gamma").forEach(function(key) {
+ console.log(key);
+ });
+ > alpha
+ > beta
+ > gamma
+
+ @param {String} str
+ The string to split
+
+ @returns {String} split string
+ */
+ w: function(str) { return str.split(/\s+/); },
+
+ /**
+ Converts a camelized string into all lower case separated by underscores.
+
+ 'innerHTML'.decamelize() => 'inner_html'
+ 'action_name'.decamelize() => 'action_name'
+ 'css-class-name'.decamelize() => 'css-class-name'
+ 'my favorite items'.decamelize() => 'my favorite items'
+
+ @param {String} str
+ The string to decamelize.
+
+ @returns {String} the decamelized string.
+ */
+ decamelize: function(str) {
+ return str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase();
+ },
+
+ /**
+ Replaces underscores or spaces with dashes.
+
+ 'innerHTML'.dasherize() => 'inner-html'
+ 'action_name'.dasherize() => 'action-name'
+ 'css-class-name'.dasherize() => 'css-class-name'
+ 'my favorite items'.dasherize() => 'my-favorite-items'
+
+ @param {String} str
+ The string to dasherize.
+
+ @returns {String} the dasherized string.
+ */
+ dasherize: function(str) {
+ var cache = STRING_DASHERIZE_CACHE,
+ ret = cache[str];
+
+ if (ret) {
+ return ret;
+ } else {
+ ret = Ember.String.decamelize(str).replace(STRING_DASHERIZE_REGEXP,'-');
+ cache[str] = ret;
+ }
+
+ return ret;
+ },
+
+ /**
+ Returns the lowerCaseCamel form of a string.
+
+ 'innerHTML'.camelize() => 'innerHTML'
+ 'action_name'.camelize() => 'actionName'
+ 'css-class-name'.camelize() => 'cssClassName'
+ 'my favorite items'.camelize() => 'myFavoriteItems'
+
+ @param {String} str
+ The string to camelize.
+
+ @returns {String} the camelized string.
+ */
+ camelize: function(str) {
+ return str.replace(STRING_CAMELIZE_REGEXP, function(match, separator, chr) {
+ return chr ? chr.toUpperCase() : '';
+ });
+ },
+
+ /**
+ Returns the UpperCamelCase form of a string.
+
+ 'innerHTML'.classify() => 'InnerHTML'
+ 'action_name'.classify() => 'ActionName'
+ 'css-class-name'.classify() => 'CssClassName'
+ 'my favorite items'.classift() => 'MyFavoriteItems'
+ */
+ classify: function(str) {
+ var camelized = Ember.String.camelize(str);
+ return camelized.charAt(0).toUpperCase() + camelized.substr(1);
+ },
+
+ /**
+ More general than decamelize. Returns the lower_case_and_underscored
+ form of a string.
+
+ 'innerHTML'.underscore() => 'inner_html'
+ 'action_name'.underscore() => 'action_name'
+ 'css-class-name'.underscore() => 'css_class_name'
+ 'my favorite items'.underscore() => 'my_favorite_items'
+
+ @param {String} str
+ The string to underscore.
+
+ @returns {String} the underscored string.
+ */
+ underscore: function(str) {
+ return str.replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2').
+ replace(STRING_UNDERSCORE_REGEXP_2, '_').toLowerCase();
+ }
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var fmt = Ember.String.fmt,
+ w = Ember.String.w,
+ loc = Ember.String.loc,
+ camelize = Ember.String.camelize,
+ decamelize = Ember.String.decamelize,
+ dasherize = Ember.String.dasherize,
+ underscore = Ember.String.underscore;
+
+if (Ember.EXTEND_PROTOTYPES) {
+
+ /**
+ @see Ember.String.fmt
+ */
+ String.prototype.fmt = function() {
+ return fmt(this, arguments);
+ };
+
+ /**
+ @see Ember.String.w
+ */
+ String.prototype.w = function() {
+ return w(this);
+ };
+
+ /**
+ @see Ember.String.loc
+ */
+ String.prototype.loc = function() {
+ return loc(this, arguments);
+ };
+
+ /**
+ @see Ember.String.camelize
+ */
+ String.prototype.camelize = function() {
+ return camelize(this);
+ };
+
+ /**
+ @see Ember.String.decamelize
+ */
+ String.prototype.decamelize = function() {
+ return decamelize(this);
+ };
+
+ /**
+ @see Ember.String.dasherize
+ */
+ String.prototype.dasherize = function() {
+ return dasherize(this);
+ };
+
+ /**
+ @see Ember.String.underscore
+ */
+ String.prototype.underscore = function() {
+ return underscore(this);
+ };
+
+}
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var a_slice = Array.prototype.slice;
+
+if (Ember.EXTEND_PROTOTYPES) {
+
+ /**
+ The `property` extension of Javascript's Function prototype is available
+ when Ember.EXTEND_PROTOTYPES is true, which is the default.
+
+ Computed properties allow you to treat a function like a property:
+
+ MyApp.president = Ember.Object.create({
+ firstName: "Barack",
+ lastName: "Obama",
+
+ fullName: function() {
+ return this.get('firstName') + ' ' + this.get('lastName');
+
+ // Call this flag to mark the function as a property
+ }.property()
+ });
+
+ MyApp.president.get('fullName'); => "Barack Obama"
+
+ Treating a function like a property is useful because they can work with
+ bindings, just like any other property.
+
+ Many computed properties have dependencies on other properties. For
+ example, in the above example, the `fullName` property depends on
+ `firstName` and `lastName` to determine its value. You can tell Ember.js
+ about these dependencies like this:
+
+ MyApp.president = Ember.Object.create({
+ firstName: "Barack",
+ lastName: "Obama",
+
+ fullName: function() {
+ return this.get('firstName') + ' ' + this.get('lastName');
+
+ // Tell Ember.js that this computed property depends on firstName
+ // and lastName
+ }.property('firstName', 'lastName')
+ });
+
+ Make sure you list these dependencies so Ember.js knows when to update
+ bindings that connect to a computed property. Changing a dependency
+ will not immediately trigger an update of the computed property, but
+ will instead clear the cache so that it is updated when the next `get`
+ is called on the property.
+
+ Note: you will usually want to use `property(...)` with `cacheable()`.
+
+ @see Ember.ComputedProperty
+ @see Ember.computed
+ */
+ Function.prototype.property = function() {
+ var ret = Ember.computed(this);
+ return ret.property.apply(ret, arguments);
+ };
+
+ /**
+ The `observes` extension of Javascript's Function prototype is available
+ when Ember.EXTEND_PROTOTYPES is true, which is the default.
+
+ You can observe property changes simply by adding the `observes`
+ call to the end of your method declarations in classes that you write.
+ For example:
+
+ Ember.Object.create({
+ valueObserver: function() {
+ // Executes whenever the "value" property changes
+ }.observes('value')
+ });
+
+ @see Ember.Observable
+ */
+ Function.prototype.observes = function() {
+ this.__ember_observes__ = a_slice.call(arguments);
+ return this;
+ };
+
+ /**
+ The `observesBefore` extension of Javascript's Function prototype is
+ available when Ember.EXTEND_PROTOTYPES is true, which is the default.
+
+ You can get notified when a property changes is about to happen by
+ by adding the `observesBefore` call to the end of your method
+ declarations in classes that you write. For example:
+
+ Ember.Object.create({
+ valueObserver: function() {
+ // Executes whenever the "value" property is about to change
+ }.observesBefore('value')
+ });
+
+ @see Ember.Observable
+ */
+ Function.prototype.observesBefore = function() {
+ this.__ember_observesBefore__ = a_slice.call(arguments);
+ return this;
+ };
+
+}
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+
+
+
+
+// ..........................................................
+// HELPERS
+//
+
+var get = Ember.get, set = Ember.set;
+var a_slice = Array.prototype.slice;
+var a_indexOf = Ember.EnumerableUtils.indexOf;
+
+var contexts = [];
+/** @private */
+function popCtx() {
+ return contexts.length===0 ? {} : contexts.pop();
+}
+
+/** @private */
+function pushCtx(ctx) {
+ contexts.push(ctx);
+ return null;
+}
+
+/** @private */
+function iter(key, value) {
+ var valueProvided = arguments.length === 2;
+
+ function i(item) {
+ var cur = get(item, key);
+ return valueProvided ? value===cur : !!cur;
+ }
+ return i ;
+}
+
+/**
+ @class
+
+ This mixin defines the common interface implemented by enumerable objects
+ in Ember. Most of these methods follow the standard Array iteration
+ API defined up to JavaScript 1.8 (excluding language-specific features that
+ cannot be emulated in older versions of JavaScript).
+
+ This mixin is applied automatically to the Array class on page load, so you
+ can use any of these methods on simple arrays. If Array already implements
+ one of these methods, the mixin will not override them.
+
+ h3. Writing Your Own Enumerable
+
+ To make your own custom class enumerable, you need two items:
+
+ 1. You must have a length property. This property should change whenever
+ the number of items in your enumerable object changes. If you using this
+ with an Ember.Object subclass, you should be sure to change the length
+ property using set().
+
+ 2. If you must implement nextObject(). See documentation.
+
+ Once you have these two methods implement, apply the Ember.Enumerable mixin
+ to your class and you will be able to enumerate the contents of your object
+ like any other collection.
+
+ h3. Using Ember Enumeration with Other Libraries
+
+ Many other libraries provide some kind of iterator or enumeration like
+ facility. This is often where the most common API conflicts occur.
+ Ember's API is designed to be as friendly as possible with other
+ libraries by implementing only methods that mostly correspond to the
+ JavaScript 1.8 API.
+
+ @extends Ember.Mixin
+ @since Ember 0.9
+*/
+Ember.Enumerable = Ember.Mixin.create(
+ /** @scope Ember.Enumerable.prototype */ {
+
+ /** @private - compatibility */
+ isEnumerable: true,
+
+ /**
+ Implement this method to make your class enumerable.
+
+ This method will be call repeatedly during enumeration. The index value
+ will always begin with 0 and increment monotonically. You don't have to
+ rely on the index value to determine what object to return, but you should
+ always check the value and start from the beginning when you see the
+ requested index is 0.
+
+ The previousObject is the object that was returned from the last call
+ to nextObject for the current iteration. This is a useful way to
+ manage iteration if you are tracing a linked list, for example.
+
+ Finally the context parameter will always contain a hash you can use as
+ a "scratchpad" to maintain any other state you need in order to iterate
+ properly. The context object is reused and is not reset between
+ iterations so make sure you setup the context with a fresh state whenever
+ the index parameter is 0.
+
+ Generally iterators will continue to call nextObject until the index
+ reaches the your current length-1. If you run out of data before this
+ time for some reason, you should simply return undefined.
+
+ The default implementation of this method simply looks up the index.
+ This works great on any Array-like objects.
+
+ @param {Number} index the current index of the iteration
+ @param {Object} previousObject the value returned by the last call to nextObject.
+ @param {Object} context a context object you can use to maintain state.
+ @returns {Object} the next object in the iteration or undefined
+ */
+ nextObject: Ember.required(Function),
+
+ /**
+ Helper method returns the first object from a collection. This is usually
+ used by bindings and other parts of the framework to extract a single
+ object if the enumerable contains only one item.
+
+ If you override this method, you should implement it so that it will
+ always return the same value each time it is called. If your enumerable
+ contains only one object, this method should always return that object.
+ If your enumerable is empty, this method should return undefined.
+
+ var arr = ["a", "b", "c"];
+ arr.firstObject(); => "a"
+
+ var arr = [];
+ arr.firstObject(); => undefined
+
+ @returns {Object} the object or undefined
+ */
+ firstObject: Ember.computed(function() {
+ if (get(this, 'length')===0) return undefined ;
+
+ // handle generic enumerables
+ var context = popCtx(), ret;
+ ret = this.nextObject(0, null, context);
+ pushCtx(context);
+ return ret ;
+ }).property('[]').cacheable(),
+
+ /**
+ Helper method returns the last object from a collection. If your enumerable
+ contains only one object, this method should always return that object.
+ If your enumerable is empty, this method should return undefined.
+
+ var arr = ["a", "b", "c"];
+ arr.lastObject(); => "c"
+
+ var arr = [];
+ arr.lastObject(); => undefined
+
+ @returns {Object} the last object or undefined
+ */
+ lastObject: Ember.computed(function() {
+ var len = get(this, 'length');
+ if (len===0) return undefined ;
+ var context = popCtx(), idx=0, cur, last = null;
+ do {
+ last = cur;
+ cur = this.nextObject(idx++, last, context);
+ } while (cur !== undefined);
+ pushCtx(context);
+ return last;
+ }).property('[]').cacheable(),
+
+ /**
+ Returns true if the passed object can be found in the receiver. The
+ default version will iterate through the enumerable until the object
+ is found. You may want to override this with a more efficient version.
+
+ var arr = ["a", "b", "c"];
+ arr.contains("a"); => true
+ arr.contains("z"); => false
+
+ @param {Object} obj
+ The object to search for.
+
+ @returns {Boolean} true if object is found in enumerable.
+ */
+ contains: function(obj) {
+ return this.find(function(item) { return item===obj; }) !== undefined;
+ },
+
+ /**
+ Iterates through the enumerable, calling the passed function on each
+ item. This method corresponds to the forEach() method defined in
+ JavaScript 1.6.
+
+ The callback method you provide should have the following signature (all
+ parameters are optional):
+
+ function(item, index, enumerable);
+
+ - *item* is the current item in the iteration.
+ - *index* is the current index in the iteration
+ - *enumerable* is the enumerable object itself.
+
+ Note that in addition to a callback, you can also pass an optional target
+ object that will be set as "this" on the context. This is a good way
+ to give your iterator function access to the current object.
+
+ @param {Function} callback The callback to execute
+ @param {Object} [target] The target object to use
+ @returns {Object} receiver
+ */
+ forEach: function(callback, target) {
+ if (typeof callback !== "function") throw new TypeError() ;
+ var len = get(this, 'length'), last = null, context = popCtx();
+
+ if (target === undefined) target = null;
+
+ for(var idx=0;idx<len;idx++) {
+ var next = this.nextObject(idx, last, context) ;
+ callback.call(target, next, idx, this);
+ last = next ;
+ }
+ last = null ;
+ context = pushCtx(context);
+ return this ;
+ },
+
+ /**
+ Alias for mapProperty
+
+ @param {String} key name of the property
+ @returns {Array} The mapped array.
+ */
+ getEach: function(key) {
+ return this.mapProperty(key);
+ },
+
+ /**
+ Sets the value on the named property for each member. This is more
+ efficient than using other methods defined on this helper. If the object
+ implements Ember.Observable, the value will be changed to set(), otherwise
+ it will be set directly. null objects are skipped.
+
+ @param {String} key The key to set
+ @param {Object} value The object to set
+ @returns {Object} receiver
+ */
+ setEach: function(key, value) {
+ return this.forEach(function(item) {
+ set(item, key, value);
+ });
+ },
+
+ /**
+ Maps all of the items in the enumeration to another value, returning
+ a new array. This method corresponds to map() defined in JavaScript 1.6.
+
+ The callback method you provide should have the following signature (all
+ parameters are optional):
+
+ function(item, index, enumerable);
+
+ - *item* is the current item in the iteration.
+ - *index* is the current index in the iteration
+ - *enumerable* is the enumerable object itself.
+
+ It should return the mapped value.
+
+ Note that in addition to a callback, you can also pass an optional target
+ object that will be set as "this" on the context. This is a good way
+ to give your iterator function access to the current object.
+
+ @param {Function} callback The callback to execute
+ @param {Object} [target] The target object to use
+ @returns {Array} The mapped array.
+ */
+ map: function(callback, target) {
+ var ret = [];
+ this.forEach(function(x, idx, i) {
+ ret[idx] = callback.call(target, x, idx,i);
+ });
+ return ret ;
+ },
+
+ /**
+ Similar to map, this specialized function returns the value of the named
+ property on all items in the enumeration.
+
+ @param {String} key name of the property
+ @returns {Array} The mapped array.
+ */
+ mapProperty: function(key) {
+ return this.map(function(next) {
+ return get(next, key);
+ });
+ },
+
+ /**
+ Returns an array with all of the items in the enumeration that the passed
+ function returns true for. This method corresponds to filter() defined in
+ JavaScript 1.6.
+
+ The callback method you provide should have the following signature (all
+ parameters are optional):
+
+ function(item, index, enumerable);
+
+ - *item* is the current item in the iteration.
+ - *index* is the current index in the iteration
+ - *enumerable* is the enumerable object itself.
+
+ It should return the true to include the item in the results, false otherwise.
+
+ Note that in addition to a callback, you can also pass an optional target
+ object that will be set as "this" on the context. This is a good way
+ to give your iterator function access to the current object.
+
+ @param {Function} callback The callback to execute
+ @param {Object} [target] The target object to use
+ @returns {Array} A filtered array.
+ */
+ filter: function(callback, target) {
+ var ret = [];
+ this.forEach(function(x, idx, i) {
+ if (callback.call(target, x, idx, i)) ret.push(x);
+ });
+ return ret ;
+ },
+
+ /**
+ Returns an array with just the items with the matched property. You
+ can pass an optional second argument with the target value. Otherwise
+ this will match any property that evaluates to true.
+
+ @param {String} key the property to test
+ @param {String} [value] optional value to test against.
+ @returns {Array} filtered array
+ */
+ filterProperty: function(key, value) {
+ return this.filter(iter.apply(this, arguments));
+ },
+
+ /**
+ Returns the first item in the array for which the callback returns true.
+ This method works similar to the filter() method defined in JavaScript 1.6
+ except that it will stop working on the array once a match is found.
+
+ The callback method you provide should have the following signature (all
+ parameters are optional):
+
+ function(item, index, enumerable);
+
+ - *item* is the current item in the iteration.
+ - *index* is the current index in the iteration
+ - *enumerable* is the enumerable object itself.
+
+ It should return the true to include the item in the results, false otherwise.
+
+ Note that in addition to a callback, you can also pass an optional target
+ object that will be set as "this" on the context. This is a good way
+ to give your iterator function access to the current object.
+
+ @param {Function} callback The callback to execute
+ @param {Object} [target] The target object to use
+ @returns {Object} Found item or null.
+ */
+ find: function(callback, target) {
+ var len = get(this, 'length') ;
+ if (target === undefined) target = null;
+
+ var last = null, next, found = false, ret ;
+ var context = popCtx();
+ for(var idx=0;idx<len && !found;idx++) {
+ next = this.nextObject(idx, last, context) ;
+ if (found = callback.call(target, next, idx, this)) ret = next ;
+ last = next ;
+ }
+ next = last = null ;
+ context = pushCtx(context);
+ return ret ;
+ },
+
+ /**
+ Returns the first item with a property matching the passed value. You
+ can pass an optional second argument with the target value. Otherwise
+ this will match any property that evaluates to true.
+
+ This method works much like the more generic find() method.
+
+ @param {String} key the property to test
+ @param {String} [value] optional value to test against.
+ @returns {Object} found item or null
+ */
+ findProperty: function(key, value) {
+ return this.find(iter.apply(this, arguments));
+ },
+
+ /**
+ Returns true if the passed function returns true for every item in the
+ enumeration. This corresponds with the every() method in JavaScript 1.6.
+
+ The callback method you provide should have the following signature (all
+ parameters are optional):
+
+ function(item, index, enumerable);
+
+ - *item* is the current item in the iteration.
+ - *index* is the current index in the iteration
+ - *enumerable* is the enumerable object itself.
+
+ It should return the true or false.
+
+ Note that in addition to a callback, you can also pass an optional target
+ object that will be set as "this" on the context. This is a good way
+ to give your iterator function access to the current object.
+
+ Example Usage:
+
+ if (people.every(isEngineer)) { Paychecks.addBigBonus(); }
+
+ @param {Function} callback The callback to execute
+ @param {Object} [target] The target object to use
+ @returns {Boolean}
+ */
+ every: function(callback, target) {
+ return !this.find(function(x, idx, i) {
+ return !callback.call(target, x, idx, i);
+ });
+ },
+
+ /**
+ Returns true if the passed property resolves to true for all items in the
+ enumerable. This method is often simpler/faster than using a callback.
+
+ @param {String} key the property to test
+ @param {String} [value] optional value to test against.
+ @returns {Array} filtered array
+ */
+ everyProperty: function(key, value) {
+ return this.every(iter.apply(this, arguments));
+ },
+
+
+ /**
+ Returns true if the passed function returns true for any item in the
+ enumeration. This corresponds with the every() method in JavaScript 1.6.
+
+ The callback method you provide should have the following signature (all
+ parameters are optional):
+
+ function(item, index, enumerable);
+
+ - *item* is the current item in the iteration.
+ - *index* is the current index in the iteration
+ - *enumerable* is the enumerable object itself.
+
+ It should return the true to include the item in the results, false otherwise.
+
+ Note that in addition to a callback, you can also pass an optional target
+ object that will be set as "this" on the context. This is a good way
+ to give your iterator function access to the current object.
+
+ Usage Example:
+
+ if (people.some(isManager)) { Paychecks.addBiggerBonus(); }
+
+ @param {Function} callback The callback to execute
+ @param {Object} [target] The target object to use
+ @returns {Array} A filtered array.
+ */
+ some: function(callback, target) {
+ return !!this.find(function(x, idx, i) {
+ return !!callback.call(target, x, idx, i);
+ });
+ },
+
+ /**
+ Returns true if the passed property resolves to true for any item in the
+ enumerable. This method is often simpler/faster than using a callback.
+
+ @param {String} key the property to test
+ @param {String} [value] optional value to test against.
+ @returns {Boolean} true
+ */
+ someProperty: function(key, value) {
+ return this.some(iter.apply(this, arguments));
+ },
+
+ /**
+ This will combine the values of the enumerator into a single value. It
+ is a useful way to collect a summary value from an enumeration. This
+ corresponds to the reduce() method defined in JavaScript 1.8.
+
+ The callback method you provide should have the following signature (all
+ parameters are optional):
+
+ function(previousValue, item, index, enumerable);
+
+ - *previousValue* is the value returned by the last call to the iterator.
+ - *item* is the current item in the iteration.
+ - *index* is the current index in the iteration
+ - *enumerable* is the enumerable object itself.
+
+ Return the new cumulative value.
+
+ In addition to the callback you can also pass an initialValue. An error
+ will be raised if you do not pass an initial value and the enumerator is
+ empty.
+
+ Note that unlike the other methods, this method does not allow you to
+ pass a target object to set as this for the callback. It's part of the
+ spec. Sorry.
+
+ @param {Function} callback The callback to execute
+ @param {Object} initialValue Initial value for the reduce
+ @param {String} reducerProperty internal use only.
+ @returns {Object} The reduced value.
+ */
+ reduce: function(callback, initialValue, reducerProperty) {
+ if (typeof callback !== "function") { throw new TypeError(); }
+
+ var ret = initialValue;
+
+ this.forEach(function(item, i) {
+ ret = callback.call(null, ret, item, i, this, reducerProperty);
+ }, this);
+
+ return ret;
+ },
+
+ /**
+ Invokes the named method on every object in the receiver that
+ implements it. This method corresponds to the implementation in
+ Prototype 1.6.
+
+ @param {String} methodName the name of the method
+ @param {Object...} args optional arguments to pass as well.
+ @returns {Array} return values from calling invoke.
+ */
+ invoke: function(methodName) {
+ var args, ret = [];
+ if (arguments.length>1) args = a_slice.call(arguments, 1);
+
+ this.forEach(function(x, idx) {
+ var method = x && x[methodName];
+ if ('function' === typeof method) {
+ ret[idx] = args ? method.apply(x, args) : method.call(x);
+ }
+ }, this);
+
+ return ret;
+ },
+
+ /**
+ Simply converts the enumerable into a genuine array. The order is not
+ guaranteed. Corresponds to the method implemented by Prototype.
+
+ @returns {Array} the enumerable as an array.
+ */
+ toArray: function() {
+ var ret = [];
+ this.forEach(function(o, idx) { ret[idx] = o; });
+ return ret ;
+ },
+
+ /**
+ Returns a copy of the array with all null elements removed.
+
+ var arr = ["a", null, "c", null];
+ arr.compact(); => ["a", "c"]
+
+ @returns {Array} the array without null elements.
+ */
+ compact: function() { return this.without(null); },
+
+ /**
+ Returns a new enumerable that excludes the passed value. The default
+ implementation returns an array regardless of the receiver type unless
+ the receiver does not contain the value.
+
+ var arr = ["a", "b", "a", "c"];
+ arr.without("a"); => ["b", "c"]
+
+ @param {Object} value
+ @returns {Ember.Enumerable}
+ */
+ without: function(value) {
+ if (!this.contains(value)) return this; // nothing to do
+ var ret = [] ;
+ this.forEach(function(k) {
+ if (k !== value) ret[ret.length] = k;
+ }) ;
+ return ret ;
+ },
+
+ /**
+ Returns a new enumerable that contains only unique values. The default
+ implementation returns an array regardless of the receiver type.
+
+ var arr = ["a", "a", "b", "b"];
+ arr.uniq(); => ["a", "b"]
+
+ @returns {Ember.Enumerable}
+ */
+ uniq: function() {
+ var ret = [];
+ this.forEach(function(k){
+ if (a_indexOf(ret, k)<0) ret.push(k);
+ });
+ return ret;
+ },
+
+ /**
+ This property will trigger anytime the enumerable's content changes.
+ You can observe this property to be notified of changes to the enumerables
+ content.
+
+ For plain enumerables, this property is read only. Ember.Array overrides
+ this method.
+
+ @type Ember.Array
+ */
+ '[]': Ember.computed(function(key, value) {
+ return this;
+ }).property().cacheable(),
+
+ // ..........................................................
+ // ENUMERABLE OBSERVERS
+ //
+
+ /**
+ Registers an enumerable observer. Must implement Ember.EnumerableObserver
+ mixin.
+ */
+ addEnumerableObserver: function(target, opts) {
+ var willChange = (opts && opts.willChange) || 'enumerableWillChange',
+ didChange = (opts && opts.didChange) || 'enumerableDidChange';
+
+ var hasObservers = get(this, 'hasEnumerableObservers');
+ if (!hasObservers) Ember.propertyWillChange(this, 'hasEnumerableObservers');
+ Ember.addListener(this, '@enumerable:before', target, willChange);
+ Ember.addListener(this, '@enumerable:change', target, didChange);
+ if (!hasObservers) Ember.propertyDidChange(this, 'hasEnumerableObservers');
+ return this;
+ },
+
+ /**
+ Removes a registered enumerable observer.
+ */
+ removeEnumerableObserver: function(target, opts) {
+ var willChange = (opts && opts.willChange) || 'enumerableWillChange',
+ didChange = (opts && opts.didChange) || 'enumerableDidChange';
+
+ var hasObservers = get(this, 'hasEnumerableObservers');
+ if (hasObservers) Ember.propertyWillChange(this, 'hasEnumerableObservers');
+ Ember.removeListener(this, '@enumerable:before', target, willChange);
+ Ember.removeListener(this, '@enumerable:change', target, didChange);
+ if (hasObservers) Ember.propertyDidChange(this, 'hasEnumerableObservers');
+ return this;
+ },
+
+ /**
+ Becomes true whenever the array currently has observers watching changes
+ on the array.
+
+ @type Boolean
+ */
+ hasEnumerableObservers: Ember.computed(function() {
+ return Ember.hasListeners(this, '@enumerable:change') || Ember.hasListeners(this, '@enumerable:before');
+ }).property().cacheable(),
+
+
+ /**
+ Invoke this method just before the contents of your enumerable will
+ change. You can either omit the parameters completely or pass the objects
+ to be removed or added if available or just a count.
+
+ @param {Ember.Enumerable|Number} removing
+ An enumerable of the objects to be removed or the number of items to
+ be removed.
+
+ @param {Ember.Enumerable|Number} adding
+ An enumerable of the objects to be added or the number of items to be
+ added.
+
+ @returns {Ember.Enumerable} receiver
+ */
+ enumerableContentWillChange: function(removing, adding) {
+
+ var removeCnt, addCnt, hasDelta;
+
+ if ('number' === typeof removing) removeCnt = removing;
+ else if (removing) removeCnt = get(removing, 'length');
+ else removeCnt = removing = -1;
+
+ if ('number' === typeof adding) addCnt = adding;
+ else if (adding) addCnt = get(adding,'length');
+ else addCnt = adding = -1;
+
+ hasDelta = addCnt<0 || removeCnt<0 || addCnt-removeCnt!==0;
+
+ if (removing === -1) removing = null;
+ if (adding === -1) adding = null;
+
+ Ember.propertyWillChange(this, '[]');
+ if (hasDelta) Ember.propertyWillChange(this, 'length');
+ Ember.sendEvent(this, '@enumerable:before', [this, removing, adding]);
+
+ return this;
+ },
+
+ /**
+ Invoke this method when the contents of your enumerable has changed.
+ This will notify any observers watching for content changes. If your are
+ implementing an ordered enumerable (such as an array), also pass the
+ start and end values where the content changed so that it can be used to
+ notify range observers.
+
+ @param {Number} start
+ optional start offset for the content change. For unordered
+ enumerables, you should always pass -1.
+
+ @param {Ember.Enumerable|Number} removing
+ An enumerable of the objects to be removed or the number of items to
+ be removed.
+
+ @param {Ember.Enumerable|Number} adding
+ An enumerable of the objects to be added or the number of items to be
+ added.
+
+ @returns {Object} receiver
+ */
+ enumerableContentDidChange: function(removing, adding) {
+ var notify = this.propertyDidChange, removeCnt, addCnt, hasDelta;
+
+ if ('number' === typeof removing) removeCnt = removing;
+ else if (removing) removeCnt = get(removing, 'length');
+ else removeCnt = removing = -1;
+
+ if ('number' === typeof adding) addCnt = adding;
+ else if (adding) addCnt = get(adding, 'length');
+ else addCnt = adding = -1;
+
+ hasDelta = addCnt<0 || removeCnt<0 || addCnt-removeCnt!==0;
+
+ if (removing === -1) removing = null;
+ if (adding === -1) adding = null;
+
+ Ember.sendEvent(this, '@enumerable:change', [this, removing, adding]);
+ if (hasDelta) Ember.propertyDidChange(this, 'length');
+ Ember.propertyDidChange(this, '[]');
+
+ return this ;
+ }
+
+}) ;
+
+
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+// ..........................................................
+// HELPERS
+//
+
+var get = Ember.get, set = Ember.set, meta = Ember.meta, map = Ember.EnumerableUtils.map, cacheFor = Ember.cacheFor;
+
+/** @private */
+function none(obj) { return obj===null || obj===undefined; }
+
+// ..........................................................
+// ARRAY
+//
+/**
+ @namespace
+
+ This module implements Observer-friendly Array-like behavior. This mixin is
+ picked up by the Array class as well as other controllers, etc. that want to
+ appear to be arrays.
+
+ Unlike Ember.Enumerable, this mixin defines methods specifically for
+ collections that provide index-ordered access to their contents. When you
+ are designing code that needs to accept any kind of Array-like object, you
+ should use these methods instead of Array primitives because these will
+ properly notify observers of changes to the array.
+
+ Although these methods are efficient, they do add a layer of indirection to
+ your application so it is a good idea to use them only when you need the
+ flexibility of using both true JavaScript arrays and "virtual" arrays such
+ as controllers and collections.
+
+ You can use the methods defined in this module to access and modify array
+ contents in a KVO-friendly way. You can also be notified whenever the
+ membership if an array changes by changing the syntax of the property to
+ .observes('*myProperty.[]') .
+
+ To support Ember.Array in your own class, you must override two
+ primitives to use it: replace() and objectAt().
+
+ Note that the Ember.Array mixin also incorporates the Ember.Enumerable mixin. All
+ Ember.Array-like objects are also enumerable.
+
+ @extends Ember.Enumerable
+ @since Ember 0.9.0
+*/
+Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.prototype */ {
+
+ /** @private - compatibility */
+ isSCArray: true,
+
+ /**
+ @field {Number} length
+
+ Your array must support the length property. Your replace methods should
+ set this property whenever it changes.
+ */
+ length: Ember.required(),
+
+ /**
+ Returns the object at the given index. If the given index is negative or
+ is greater or equal than the array length, returns `undefined`.
+
+ This is one of the primitives you must implement to support `Ember.Array`.
+ If your object supports retrieving the value of an array item using `get()`
+ (i.e. `myArray.get(0)`), then you do not need to implement this method
+ yourself.
+
+ var arr = ['a', 'b', 'c', 'd'];
+ arr.objectAt(0); => "a"
+ arr.objectAt(3); => "d"
+ arr.objectAt(-1); => undefined
+ arr.objectAt(4); => undefined
+ arr.objectAt(5); => undefined
+
+ @param {Number} idx
+ The index of the item to return.
+ */
+ objectAt: function(idx) {
+ if ((idx < 0) || (idx>=get(this, 'length'))) return undefined ;
+ return get(this, idx);
+ },
+
+ /**
+ This returns the objects at the specified indexes, using `objectAt`.
+
+ var arr = ['a', 'b', 'c', 'd'];
+ arr.objectsAt([0, 1, 2]) => ["a", "b", "c"]
+ arr.objectsAt([2, 3, 4]) => ["c", "d", undefined]
+
+ @param {Array} indexes
+ An array of indexes of items to return.
+ */
+ objectsAt: function(indexes) {
+ var self = this;
+ return map(indexes, function(idx){ return self.objectAt(idx); });
+ },
+
+ /** @private (nodoc) - overrides Ember.Enumerable version */
+ nextObject: function(idx) {
+ return this.objectAt(idx);
+ },
+
+ /**
+ @field []
+
+ This is the handler for the special array content property. If you get
+ this property, it will return this. If you set this property it a new
+ array, it will replace the current content.
+
+ This property overrides the default property defined in Ember.Enumerable.
+ */
+ '[]': Ember.computed(function(key, value) {
+ if (value !== undefined) this.replace(0, get(this, 'length'), value) ;
+ return this ;
+ }).property().cacheable(),
+
+ firstObject: Ember.computed(function() {
+ return this.objectAt(0);
+ }).property().cacheable(),
+
+ lastObject: Ember.computed(function() {
+ return this.objectAt(get(this, 'length')-1);
+ }).property().cacheable(),
+
+ /** @private (nodoc) - optimized version from Enumerable */
+ contains: function(obj){
+ return this.indexOf(obj) >= 0;
+ },
+
+ // Add any extra methods to Ember.Array that are native to the built-in Array.
+ /**
+ Returns a new array that is a slice of the receiver. This implementation
+ uses the observable array methods to retrieve the objects for the new
+ slice.
+
+ var arr = ['red', 'green', 'blue'];
+ arr.slice(0); => ['red', 'green', 'blue']
+ arr.slice(0, 2); => ['red', 'green']
+ arr.slice(1, 100); => ['green', 'blue']
+
+ @param beginIndex {Integer} (Optional) index to begin slicing from.
+ @param endIndex {Integer} (Optional) index to end the slice at.
+ @returns {Array} New array with specified slice
+ */
+ slice: function(beginIndex, endIndex) {
+ var ret = [];
+ var length = get(this, 'length') ;
+ if (none(beginIndex)) beginIndex = 0 ;
+ if (none(endIndex) || (endIndex > length)) endIndex = length ;
+ while(beginIndex < endIndex) {
+ ret[ret.length] = this.objectAt(beginIndex++) ;
+ }
+ return ret ;
+ },
+
+ /**
+ Returns the index of the given object's first occurrence.
+ If no startAt argument is given, the starting location to
+ search is 0. If it's negative, will count backward from
+ the end of the array. Returns -1 if no match is found.
+
+ var arr = ["a", "b", "c", "d", "a"];
+ arr.indexOf("a"); => 0
+ arr.indexOf("z"); => -1
+ arr.indexOf("a", 2); => 4
+ arr.indexOf("a", -1); => 4
+ arr.indexOf("b", 3); => -1
+ arr.indexOf("a", 100); => -1
+
+ @param {Object} object the item to search for
+ @param {Number} startAt optional starting location to search, default 0
+ @returns {Number} index or -1 if not found
+ */
+ indexOf: function(object, startAt) {
+ var idx, len = get(this, 'length');
+
+ if (startAt === undefined) startAt = 0;
+ if (startAt < 0) startAt += len;
+
+ for(idx=startAt;idx<len;idx++) {
+ if (this.objectAt(idx, true) === object) return idx ;
+ }
+ return -1;
+ },
+
+ /**
+ Returns the index of the given object's last occurrence.
+ If no startAt argument is given, the search starts from
+ the last position. If it's negative, will count backward
+ from the end of the array. Returns -1 if no match is found.
+
+ var arr = ["a", "b", "c", "d", "a"];
+ arr.lastIndexOf("a"); => 4
+ arr.lastIndexOf("z"); => -1
+ arr.lastIndexOf("a", 2); => 0
+ arr.lastIndexOf("a", -1); => 4
+ arr.lastIndexOf("b", 3); => 1
+ arr.lastIndexOf("a", 100); => 4
+
+ @param {Object} object the item to search for
+ @param {Number} startAt optional starting location to search, default 0
+ @returns {Number} index or -1 if not found
+ */
+ lastIndexOf: function(object, startAt) {
+ var idx, len = get(this, 'length');
+
+ if (startAt === undefined || startAt >= len) startAt = len-1;
+ if (startAt < 0) startAt += len;
+
+ for(idx=startAt;idx>=0;idx--) {
+ if (this.objectAt(idx) === object) return idx ;
+ }
+ return -1;
+ },
+
+ // ..........................................................
+ // ARRAY OBSERVERS
+ //
+
+ /**
+ Adds an array observer to the receiving array. The array observer object
+ normally must implement two methods:
+
+ * `arrayWillChange(start, removeCount, addCount)` - This method will be
+ called just before the array is modified.
+ * `arrayDidChange(start, removeCount, addCount)` - This method will be
+ called just after the array is modified.
+
+ Both callbacks will be passed the starting index of the change as well a
+ a count of the items to be removed and added. You can use these callbacks
+ to optionally inspect the array during the change, clear caches, or do
+ any other bookkeeping necessary.
+
+ In addition to passing a target, you can also include an options hash
+ which you can use to override the method names that will be invoked on the
+ target.
+
+ @param {Object} target
+ The observer object.
+
+ @param {Hash} opts
+ Optional hash of configuration options including willChange, didChange,
+ and a context option.
+
+ @returns {Ember.Array} receiver
+ */
+ addArrayObserver: function(target, opts) {
+ var willChange = (opts && opts.willChange) || 'arrayWillChange',
+ didChange = (opts && opts.didChange) || 'arrayDidChange';
+
+ var hasObservers = get(this, 'hasArrayObservers');
+ if (!hasObservers) Ember.propertyWillChange(this, 'hasArrayObservers');
+ Ember.addListener(this, '@array:before', target, willChange);
+ Ember.addListener(this, '@array:change', target, didChange);
+ if (!hasObservers) Ember.propertyDidChange(this, 'hasArrayObservers');
+ return this;
+ },
+
+ /**
+ Removes an array observer from the object if the observer is current
+ registered. Calling this method multiple times with the same object will
+ have no effect.
+
+ @param {Object} target
+ The object observing the array.
+
+ @returns {Ember.Array} receiver
+ */
+ removeArrayObserver: function(target, opts) {
+ var willChange = (opts && opts.willChange) || 'arrayWillChange',
+ didChange = (opts && opts.didChange) || 'arrayDidChange';
+
+ var hasObservers = get(this, 'hasArrayObservers');
+ if (hasObservers) Ember.propertyWillChange(this, 'hasArrayObservers');
+ Ember.removeListener(this, '@array:before', target, willChange);
+ Ember.removeListener(this, '@array:change', target, didChange);
+ if (hasObservers) Ember.propertyDidChange(this, 'hasArrayObservers');
+ return this;
+ },
+
+ /**
+ Becomes true whenever the array currently has observers watching changes
+ on the array.
+
+ @type Boolean
+ */
+ hasArrayObservers: Ember.computed(function() {
+ return Ember.hasListeners(this, '@array:change') || Ember.hasListeners(this, '@array:before');
+ }).property().cacheable(),
+
+ /**
+ If you are implementing an object that supports Ember.Array, call this
+ method just before the array content changes to notify any observers and
+ invalidate any related properties. Pass the starting index of the change
+ as well as a delta of the amounts to change.
+
+ @param {Number} startIdx
+ The starting index in the array that will change.
+
+ @param {Number} removeAmt
+ The number of items that will be removed. If you pass null assumes 0
+
+ @param {Number} addAmt
+ The number of items that will be added. If you pass null assumes 0.
+
+ @returns {Ember.Array} receiver
+ */
+ arrayContentWillChange: function(startIdx, removeAmt, addAmt) {
+
+ // if no args are passed assume everything changes
+ if (startIdx===undefined) {
+ startIdx = 0;
+ removeAmt = addAmt = -1;
+ } else {
+ if (removeAmt === undefined) removeAmt=-1;
+ if (addAmt === undefined) addAmt=-1;
+ }
+
+ // Make sure the @each proxy is set up if anyone is observing @each
+ if (Ember.isWatching(this, '@each')) { get(this, '@each'); }
+
+ Ember.sendEvent(this, '@array:before', [this, startIdx, removeAmt, addAmt]);
+
+ var removing, lim;
+ if (startIdx>=0 && removeAmt>=0 && get(this, 'hasEnumerableObservers')) {
+ removing = [];
+ lim = startIdx+removeAmt;
+ for(var idx=startIdx;idx<lim;idx++) removing.push(this.objectAt(idx));
+ } else {
+ removing = removeAmt;
+ }
+
+ this.enumerableContentWillChange(removing, addAmt);
+
+ return this;
+ },
+
+ arrayContentDidChange: function(startIdx, removeAmt, addAmt) {
+
+ // if no args are passed assume everything changes
+ if (startIdx===undefined) {
+ startIdx = 0;
+ removeAmt = addAmt = -1;
+ } else {
+ if (removeAmt === undefined) removeAmt=-1;
+ if (addAmt === undefined) addAmt=-1;
+ }
+
+ var adding, lim;
+ if (startIdx>=0 && addAmt>=0 && get(this, 'hasEnumerableObservers')) {
+ adding = [];
+ lim = startIdx+addAmt;
+ for(var idx=startIdx;idx<lim;idx++) adding.push(this.objectAt(idx));
+ } else {
+ adding = addAmt;
+ }
+
+ this.enumerableContentDidChange(removeAmt, adding);
+ Ember.sendEvent(this, '@array:change', [this, startIdx, removeAmt, addAmt]);
+
+ var length = get(this, 'length'),
+ cachedFirst = cacheFor(this, 'firstObject'),
+ cachedLast = cacheFor(this, 'lastObject');
+ if (this.objectAt(0) !== cachedFirst) {
+ Ember.propertyWillChange(this, 'firstObject');
+ Ember.propertyDidChange(this, 'firstObject');
+ }
+ if (this.objectAt(length-1) !== cachedLast) {
+ Ember.propertyWillChange(this, 'lastObject');
+ Ember.propertyDidChange(this, 'lastObject');
+ }
+
+ return this;
+ },
+
+ // ..........................................................
+ // ENUMERATED PROPERTIES
+ //
+
+ /**
+ Returns a special object that can be used to observe individual properties
+ on the array. Just get an equivalent property on this object and it will
+ return an enumerable that maps automatically to the named key on the
+ member objects.
+ */
+ '@each': Ember.computed(function() {
+ if (!this.__each) this.__each = new Ember.EachProxy(this);
+ return this.__each;
+ }).property().cacheable()
+
+}) ;
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/**
+ @namespace
+
+ Implements some standard methods for comparing objects. Add this mixin to
+ any class you create that can compare its instances.
+
+ You should implement the compare() method.
+
+ @extends Ember.Mixin
+ @since Ember 0.9
+*/
+Ember.Comparable = Ember.Mixin.create( /** @scope Ember.Comparable.prototype */{
+
+ /**
+ walk like a duck. Indicates that the object can be compared.
+
+ @type Boolean
+ @default true
+ @constant
+ */
+ isComparable: true,
+
+ /**
+ Override to return the result of the comparison of the two parameters. The
+ compare method should return:
+
+ - `-1` if `a < b`
+ - `0` if `a == b`
+ - `1` if `a > b`
+
+ Default implementation raises an exception.
+
+ @param a {Object} the first object to compare
+ @param b {Object} the second object to compare
+ @returns {Integer} the result of the comparison
+ */
+ compare: Ember.required(Function)
+
+});
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2010 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set;
+
+/**
+ @namespace
+
+ Implements some standard methods for copying an object. Add this mixin to
+ any object you create that can create a copy of itself. This mixin is
+ added automatically to the built-in array.
+
+ You should generally implement the copy() method to return a copy of the
+ receiver.
+
+ Note that frozenCopy() will only work if you also implement Ember.Freezable.
+
+ @extends Ember.Mixin
+ @since Ember 0.9
+*/
+Ember.Copyable = Ember.Mixin.create(
+/** @scope Ember.Copyable.prototype */ {
+
+ /**
+ Override to return a copy of the receiver. Default implementation raises
+ an exception.
+
+ @function
+ @param deep {Boolean} if true, a deep copy of the object should be made
+ @returns {Object} copy of receiver
+ */
+ copy: Ember.required(Function),
+
+ /**
+ If the object implements Ember.Freezable, then this will return a new copy
+ if the object is not frozen and the receiver if the object is frozen.
+
+ Raises an exception if you try to call this method on a object that does
+ not support freezing.
+
+ You should use this method whenever you want a copy of a freezable object
+ since a freezable object can simply return itself without actually
+ consuming more memory.
+
+ @returns {Object} copy of receiver or receiver
+ */
+ frozenCopy: function() {
+ if (Ember.Freezable && Ember.Freezable.detect(this)) {
+ return get(this, 'isFrozen') ? this : this.copy().freeze();
+ } else {
+ throw new Error(Ember.String.fmt("%@ does not support freezing", [this]));
+ }
+ }
+});
+
+
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2010 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+
+
+
+
+var get = Ember.get, set = Ember.set;
+
+/**
+ @namespace
+
+ The Ember.Freezable mixin implements some basic methods for marking an object
+ as frozen. Once an object is frozen it should be read only. No changes
+ may be made the internal state of the object.
+
+ ## Enforcement
+
+ To fully support freezing in your subclass, you must include this mixin and
+ override any method that might alter any property on the object to instead
+ raise an exception. You can check the state of an object by checking the
+ isFrozen property.
+
+ Although future versions of JavaScript may support language-level freezing
+ object objects, that is not the case today. Even if an object is freezable,
+ it is still technically possible to modify the object, even though it could
+ break other parts of your application that do not expect a frozen object to
+ change. It is, therefore, very important that you always respect the
+ isFrozen property on all freezable objects.
+
+ ## Example Usage
+
+ The example below shows a simple object that implement the Ember.Freezable
+ protocol.
+
+ Contact = Ember.Object.extend(Ember.Freezable, {
+
+ firstName: null,
+
+ lastName: null,
+
+ // swaps the names
+ swapNames: function() {
+ if (this.get('isFrozen')) throw Ember.FROZEN_ERROR;
+ var tmp = this.get('firstName');
+ this.set('firstName', this.get('lastName'));
+ this.set('lastName', tmp);
+ return this;
+ }
+
+ });
+
+ c = Context.create({ firstName: "John", lastName: "Doe" });
+ c.swapNames(); => returns c
+ c.freeze();
+ c.swapNames(); => EXCEPTION
+
+ ## Copying
+
+ Usually the Ember.Freezable protocol is implemented in cooperation with the
+ Ember.Copyable protocol, which defines a frozenCopy() method that will return
+ a frozen object, if the object implements this method as well.
+
+ @extends Ember.Mixin
+ @since Ember 0.9
+*/
+Ember.Freezable = Ember.Mixin.create(
+/** @scope Ember.Freezable.prototype */ {
+
+ /**
+ Set to true when the object is frozen. Use this property to detect whether
+ your object is frozen or not.
+
+ @type Boolean
+ */
+ isFrozen: false,
+
+ /**
+ Freezes the object. Once this method has been called the object should
+ no longer allow any properties to be edited.
+
+ @returns {Object} receiver
+ */
+ freeze: function() {
+ if (get(this, 'isFrozen')) return this;
+ set(this, 'isFrozen', true);
+ return this;
+ }
+
+});
+
+Ember.FROZEN_ERROR = "Frozen object cannot be modified.";
+
+
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var forEach = Ember.EnumerableUtils.forEach;
+
+/**
+ @class
+
+ This mixin defines the API for modifying generic enumerables. These methods
+ can be applied to an object regardless of whether it is ordered or
+ unordered.
+
+ Note that an Enumerable can change even if it does not implement this mixin.
+ For example, a MappedEnumerable cannot be directly modified but if its
+ underlying enumerable changes, it will change also.
+
+ ## Adding Objects
+
+ To add an object to an enumerable, use the addObject() method. This
+ method will only add the object to the enumerable if the object is not
+ already present and the object if of a type supported by the enumerable.
+
+ set.addObject(contact);
+
+ ## Removing Objects
+
+ To remove an object form an enumerable, use the removeObject() method. This
+ will only remove the object if it is already in the enumerable, otherwise
+ this method has no effect.
+
+ set.removeObject(contact);
+
+ ## Implementing In Your Own Code
+
+ If you are implementing an object and want to support this API, just include
+ this mixin in your class and implement the required methods. In your unit
+ tests, be sure to apply the Ember.MutableEnumerableTests to your object.
+
+ @extends Ember.Mixin
+ @extends Ember.Enumerable
+*/
+Ember.MutableEnumerable = Ember.Mixin.create(Ember.Enumerable,
+ /** @scope Ember.MutableEnumerable.prototype */ {
+
+ /**
+ __Required.__ You must implement this method to apply this mixin.
+
+ Attempts to add the passed object to the receiver if the object is not
+ already present in the collection. If the object is present, this method
+ has no effect.
+
+ If the passed object is of a type not supported by the receiver
+ then this method should raise an exception.
+
+ @function
+
+ @param {Object} object
+ The object to add to the enumerable.
+
+ @returns {Object} the passed object
+ */
+ addObject: Ember.required(Function),
+
+ /**
+ Adds each object in the passed enumerable to the receiver.
+
+ @param {Ember.Enumerable} objects the objects to add.
+ @returns {Object} receiver
+ */
+ addObjects: function(objects) {
+ Ember.beginPropertyChanges(this);
+ forEach(objects, function(obj) { this.addObject(obj); }, this);
+ Ember.endPropertyChanges(this);
+ return this;
+ },
+
+ /**
+ __Required.__ You must implement this method to apply this mixin.
+
+ Attempts to remove the passed object from the receiver collection if the
+ object is in present in the collection. If the object is not present,
+ this method has no effect.
+
+ If the passed object is of a type not supported by the receiver
+ then this method should raise an exception.
+
+ @function
+
+ @param {Object} object
+ The object to remove from the enumerable.
+
+ @returns {Object} the passed object
+ */
+ removeObject: Ember.required(Function),
+
+
+ /**
+ Removes each objects in the passed enumerable from the receiver.
+
+ @param {Ember.Enumerable} objects the objects to remove
+ @returns {Object} receiver
+ */
+ removeObjects: function(objects) {
+ Ember.beginPropertyChanges(this);
+ forEach(objects, function(obj) { this.removeObject(obj); }, this);
+ Ember.endPropertyChanges(this);
+ return this;
+ }
+
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+// ..........................................................
+// CONSTANTS
+//
+
+var OUT_OF_RANGE_EXCEPTION = "Index out of range" ;
+var EMPTY = [];
+
+// ..........................................................
+// HELPERS
+//
+
+var get = Ember.get, set = Ember.set, forEach = Ember.EnumerableUtils.forEach;
+
+/**
+ @class
+
+ This mixin defines the API for modifying array-like objects. These methods
+ can be applied only to a collection that keeps its items in an ordered set.
+
+ Note that an Array can change even if it does not implement this mixin.
+ For example, one might implement a SparseArray that cannot be directly
+ modified, but if its underlying enumerable changes, it will change also.
+
+ @extends Ember.Mixin
+ @extends Ember.Array
+ @extends Ember.MutableEnumerable
+*/
+Ember.MutableArray = Ember.Mixin.create(Ember.Array, Ember.MutableEnumerable,
+ /** @scope Ember.MutableArray.prototype */ {
+
+ /**
+ __Required.__ You must implement this method to apply this mixin.
+
+ This is one of the primitives you must implement to support Ember.Array. You
+ should replace amt objects started at idx with the objects in the passed
+ array. You should also call this.enumerableContentDidChange() ;
+
+ @function
+
+ @param {Number} idx
+ Starting index in the array to replace. If idx >= length, then append
+ to the end of the array.
+
+ @param {Number} amt
+ Number of elements that should be removed from the array, starting at
+ *idx*.
+
+ @param {Array} objects
+ An array of zero or more objects that should be inserted into the array
+ at *idx*
+ */
+ replace: Ember.required(),
+
+ /**
+ Remove all elements from self. This is useful if you
+ want to reuse an existing array without having to recreate it.
+
+ var colors = ["red", "green", "blue"];
+ color.length(); => 3
+ colors.clear(); => []
+ colors.length(); => 0
+
+ @returns {Ember.Array} An empty Array.
+ */
+ clear: function () {
+ var len = get(this, 'length');
+ if (len === 0) return this;
+ this.replace(0, len, EMPTY);
+ return this;
+ },
+
+ /**
+ This will use the primitive replace() method to insert an object at the
+ specified index.
+
+ var colors = ["red", "green", "blue"];
+ colors.insertAt(2, "yellow"); => ["red", "green", "yellow", "blue"]
+ colors.insertAt(5, "orange"); => Error: Index out of range
+
+ @param {Number} idx index of insert the object at.
+ @param {Object} object object to insert
+ */
+ insertAt: function(idx, object) {
+ if (idx > get(this, 'length')) throw new Error(OUT_OF_RANGE_EXCEPTION) ;
+ this.replace(idx, 0, [object]) ;
+ return this ;
+ },
+
+ /**
+ Remove an object at the specified index using the replace() primitive
+ method. You can pass either a single index, or a start and a length.
+
+ If you pass a start and length that is beyond the
+ length this method will throw an Ember.OUT_OF_RANGE_EXCEPTION
+
+ var colors = ["red", "green", "blue", "yellow", "orange"];
+ colors.removeAt(0); => ["green", "blue", "yellow", "orange"]
+ colors.removeAt(2, 2); => ["green", "blue"]
+ colors.removeAt(4, 2); => Error: Index out of range
+
+ @param {Number} start index, start of range
+ @param {Number} len length of passing range
+ @returns {Object} receiver
+ */
+ removeAt: function(start, len) {
+
+ var delta = 0;
+
+ if ('number' === typeof start) {
+
+ if ((start < 0) || (start >= get(this, 'length'))) {
+ throw new Error(OUT_OF_RANGE_EXCEPTION);
+ }
+
+ // fast case
+ if (len === undefined) len = 1;
+ this.replace(start, len, EMPTY);
+ }
+
+ return this ;
+ },
+
+ /**
+ Push the object onto the end of the array. Works just like push() but it
+ is KVO-compliant.
+
+ var colors = ["red", "green", "blue"];
+ colors.pushObject("black"); => ["red", "green", "blue", "black"]
+ colors.pushObject(["yellow", "orange"]); => ["red", "green", "blue", "black", ["yellow", "orange"]]
+
+ */
+ pushObject: function(obj) {
+ this.insertAt(get(this, 'length'), obj) ;
+ return obj ;
+ },
+
+ /**
+ Add the objects in the passed numerable to the end of the array. Defers
+ notifying observers of the change until all objects are added.
+
+ var colors = ["red", "green", "blue"];
+ colors.pushObjects("black"); => ["red", "green", "blue", "black"]
+ colors.pushObjects(["yellow", "orange"]); => ["red", "green", "blue", "black", "yellow", "orange"]
+
+ @param {Ember.Enumerable} objects the objects to add
+ @returns {Ember.Array} receiver
+ */
+ pushObjects: function(objects) {
+ this.replace(get(this, 'length'), 0, objects);
+ return this;
+ },
+
+ /**
+ Pop object from array or nil if none are left. Works just like pop() but
+ it is KVO-compliant.
+
+ var colors = ["red", "green", "blue"];
+ colors.popObject(); => "blue"
+ console.log(colors); => ["red", "green"]
+
+ */
+ popObject: function() {
+ var len = get(this, 'length') ;
+ if (len === 0) return null ;
+
+ var ret = this.objectAt(len-1) ;
+ this.removeAt(len-1, 1) ;
+ return ret ;
+ },
+
+ /**
+ Shift an object from start of array or nil if none are left. Works just
+ like shift() but it is KVO-compliant.
+
+ var colors = ["red", "green", "blue"];
+ colors.shiftObject(); => "red"
+ console.log(colors); => ["green", "blue"]
+
+ */
+ shiftObject: function() {
+ if (get(this, 'length') === 0) return null ;
+ var ret = this.objectAt(0) ;
+ this.removeAt(0) ;
+ return ret ;
+ },
+
+ /**
+ Unshift an object to start of array. Works just like unshift() but it is
+ KVO-compliant.
+
+ var colors = ["red", "green", "blue"];
+ colors.unshiftObject("yellow"); => ["yellow", "red", "green", "blue"]
+ colors.unshiftObject(["black", "white"]); => [["black", "white"], "yellow", "red", "green", "blue"]
+
+ */
+ unshiftObject: function(obj) {
+ this.insertAt(0, obj) ;
+ return obj ;
+ },
+
+ /**
+ Adds the named objects to the beginning of the array. Defers notifying
+ observers until all objects have been added.
+
+ var colors = ["red", "green", "blue"];
+ colors.unshiftObjects(["black", "white"]); => ["black", "white", "red", "green", "blue"]
+ colors.unshiftObjects("yellow"); => Type Error: 'undefined' is not a function
+
+ @param {Ember.Enumerable} objects the objects to add
+ @returns {Ember.Array} receiver
+ */
+ unshiftObjects: function(objects) {
+ this.replace(0, 0, objects);
+ return this;
+ },
+
+ /**
+ Reverse objects in the array. Works just like reverse() but it is
+ KVO-compliant.
+
+ @return {Ember.Array} receiver
+ */
+ reverseObjects: function() {
+ var len = get(this, 'length');
+ if (len === 0) return this;
+ var objects = this.toArray().reverse();
+ this.replace(0, len, objects);
+ return this;
+ },
+
+ // ..........................................................
+ // IMPLEMENT Ember.MutableEnumerable
+ //
+
+ /** @private (nodoc) */
+ removeObject: function(obj) {
+ var loc = get(this, 'length') || 0;
+ while(--loc >= 0) {
+ var curObject = this.objectAt(loc) ;
+ if (curObject === obj) this.removeAt(loc) ;
+ }
+ return this ;
+ },
+
+ /** @private (nodoc) */
+ addObject: function(obj) {
+ if (!this.contains(obj)) this.pushObject(obj);
+ return this ;
+ }
+
+});
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+var get = Ember.get, set = Ember.set, defineProperty = Ember.defineProperty;
+
+/**
+ @class
+
+ ## Overview
+
+ This mixin provides properties and property observing functionality, core
+ features of the Ember object model.
+
+ Properties and observers allow one object to observe changes to a
+ property on another object. This is one of the fundamental ways that
+ models, controllers and views communicate with each other in an Ember
+ application.
+
+ Any object that has this mixin applied can be used in observer
+ operations. That includes Ember.Object and most objects you will
+ interact with as you write your Ember application.
+
+ Note that you will not generally apply this mixin to classes yourself,
+ but you will use the features provided by this module frequently, so it
+ is important to understand how to use it.
+
+ ## Using get() and set()
+
+ Because of Ember's support for bindings and observers, you will always
+ access properties using the get method, and set properties using the
+ set method. This allows the observing objects to be notified and
+ computed properties to be handled properly.
+
+ More documentation about `get` and `set` are below.
+
+ ## Observing Property Changes
+
+ You typically observe property changes simply by adding the `observes`
+ call to the end of your method declarations in classes that you write.
+ For example:
+
+ Ember.Object.create({
+ valueObserver: function() {
+ // Executes whenever the "value" property changes
+ }.observes('value')
+ });
+
+ Although this is the most common way to add an observer, this capability
+ is actually built into the Ember.Object class on top of two methods
+ defined in this mixin: `addObserver` and `removeObserver`. You can use
+ these two methods to add and remove observers yourself if you need to
+ do so at runtime.
+
+ To add an observer for a property, call:
+
+ object.addObserver('propertyKey', targetObject, targetAction)
+
+ This will call the `targetAction` method on the `targetObject` to be called
+ whenever the value of the `propertyKey` changes.
+
+ Note that if `propertyKey` is a computed property, the observer will be
+ called when any of the property dependencies are changed, even if the
+ resulting value of the computed property is unchanged. This is necessary
+ because computed properties are not computed until `get` is called.
+
+ @extends Ember.Mixin
+*/
+Ember.Observable = Ember.Mixin.create(/** @scope Ember.Observable.prototype */ {
+
+ /** @private - compatibility */
+ isObserverable: true,
+
+ /**
+ Retrieves the value of a property from the object.
+
+ This method is usually similar to using object[keyName] or object.keyName,
+ however it supports both computed properties and the unknownProperty
+ handler.
+
+ Because `get` unifies the syntax for accessing all these kinds
+ of properties, it can make many refactorings easier, such as replacing a
+ simple property with a computed property, or vice versa.
+
+ ### Computed Properties
+
+ Computed properties are methods defined with the `property` modifier
+ declared at the end, such as:
+
+ fullName: function() {
+ return this.getEach('firstName', 'lastName').compact().join(' ');
+ }.property('firstName', 'lastName')
+
+ When you call `get` on a computed property, the function will be
+ called and the return value will be returned instead of the function
+ itself.
+
+ ### Unknown Properties
+
+ Likewise, if you try to call `get` on a property whose value is
+ undefined, the unknownProperty() method will be called on the object.
+ If this method returns any value other than undefined, it will be returned
+ instead. This allows you to implement "virtual" properties that are
+ not defined upfront.
+
+ @param {String} key The property to retrieve
+ @returns {Object} The property value or undefined.
+ */
+ get: function(keyName) {
+ return get(this, keyName);
+ },
+
+ /**
+ To get multiple properties at once, call getProperties
+ with a list of strings or an array:
+
+ record.getProperties('firstName', 'lastName', 'zipCode'); // => { firstName: 'John', lastName: 'Doe', zipCode: '10011' }
+
+ is equivalent to:
+
+ record.getProperties(['firstName', 'lastName', 'zipCode']); // => { firstName: 'John', lastName: 'Doe', zipCode: '10011' }
+
+ @param {String...|Array} list of keys to get
+ @returns {Hash}
+ */
+ getProperties: function() {
+ var ret = {};
+ var propertyNames = arguments;
+ if (arguments.length === 1 && Ember.typeOf(arguments[0]) === 'array') {
+ propertyNames = arguments[0];
+ }
+ for(var i = 0; i < propertyNames.length; i++) {
+ ret[propertyNames[i]] = get(this, propertyNames[i]);
+ }
+ return ret;
+ },
+
+ /**
+ Sets the provided key or path to the value.
+
+ This method is generally very similar to calling object[key] = value or
+ object.key = value, except that it provides support for computed
+ properties, the unknownProperty() method and property observers.
+
+ ### Computed Properties
+
+ If you try to set a value on a key that has a computed property handler
+ defined (see the get() method for an example), then set() will call
+ that method, passing both the value and key instead of simply changing
+ the value itself. This is useful for those times when you need to
+ implement a property that is composed of one or more member
+ properties.
+
+ ### Unknown Properties
+
+ If you try to set a value on a key that is undefined in the target
+ object, then the unknownProperty() handler will be called instead. This
+ gives you an opportunity to implement complex "virtual" properties that
+ are not predefined on the object. If unknownProperty() returns
+ undefined, then set() will simply set the value on the object.
+
+ ### Property Observers
+
+ In addition to changing the property, set() will also register a
+ property change with the object. Unless you have placed this call
+ inside of a beginPropertyChanges() and endPropertyChanges(), any "local"
+ observers (i.e. observer methods declared on the same object), will be
+ called immediately. Any "remote" observers (i.e. observer methods
+ declared on another object) will be placed in a queue and called at a
+ later time in a coalesced manner.
+
+ ### Chaining
+
+ In addition to property changes, set() returns the value of the object
+ itself so you can do chaining like this:
+
+ record.set('firstName', 'Charles').set('lastName', 'Jolley');
+
+ @param {String} key The property to set
+ @param {Object} value The value to set or null.
+ @returns {Ember.Observable}
+ */
+ set: function(keyName, value) {
+ set(this, keyName, value);
+ return this;
+ },
+
+ /**
+ To set multiple properties at once, call setProperties
+ with a Hash:
+
+ record.setProperties({ firstName: 'Charles', lastName: 'Jolley' });
+
+ @param {Hash} hash the hash of keys and values to set
+ @returns {Ember.Observable}
+ */
+ setProperties: function(hash) {
+ return Ember.setProperties(this, hash);
+ },
+
+ /**
+ Begins a grouping of property changes.
+
+ You can use this method to group property changes so that notifications
+ will not be sent until the changes are finished. If you plan to make a
+ large number of changes to an object at one time, you should call this
+ method at the beginning of the changes to begin deferring change
+ notifications. When you are done making changes, call endPropertyChanges()
+ to deliver the deferred change notifications and end deferring.
+
+ @returns {Ember.Observable}
+ */
+ beginPropertyChanges: function() {
+ Ember.beginPropertyChanges();
+ return this;
+ },
+
+ /**
+ Ends a grouping of property changes.
+
+ You can use this method to group property changes so that notifications
+ will not be sent until the changes are finished. If you plan to make a
+ large number of changes to an object at one time, you should call
+ beginPropertyChanges() at the beginning of the changes to defer change
+ notifications. When you are done making changes, call this method to
+ deliver the deferred change notifications and end deferring.
+
+ @returns {Ember.Observable}
+ */
+ endPropertyChanges: function() {
+ Ember.endPropertyChanges();
+ return this;
+ },
+
+ /**
+ Notify the observer system that a property is about to change.
+
+ Sometimes you need to change a value directly or indirectly without
+ actually calling get() or set() on it. In this case, you can use this
+ method and propertyDidChange() instead. Calling these two methods
+ together will notify all observers that the property has potentially
+ changed value.
+
+ Note that you must always call propertyWillChange and propertyDidChange as
+ a pair. If you do not, it may get the property change groups out of order
+ and cause notifications to be delivered more often than you would like.
+
+ @param {String} key The property key that is about to change.
+ @returns {Ember.Observable}
+ */
+ propertyWillChange: function(keyName){
+ Ember.propertyWillChange(this, keyName);
+ return this;
+ },
+
+ /**
+ Notify the observer system that a property has just changed.
+
+ Sometimes you need to change a value directly or indirectly without
+ actually calling get() or set() on it. In this case, you can use this
+ method and propertyWillChange() instead. Calling these two methods
+ together will notify all observers that the property has potentially
+ changed value.
+
+ Note that you must always call propertyWillChange and propertyDidChange as
+ a pair. If you do not, it may get the property change groups out of order
+ and cause notifications to be delivered more often than you would like.
+
+ @param {String} keyName The property key that has just changed.
+ @returns {Ember.Observable}
+ */
+ propertyDidChange: function(keyName) {
+ Ember.propertyDidChange(this, keyName);
+ return this;
+ },
+
+ /**
+ Convenience method to call `propertyWillChange` and `propertyDidChange` in
+ succession.
+
+ @param {String} keyName The property key to be notified about.
+ @returns {Ember.Observable}
+ */
+ notifyPropertyChange: function(keyName) {
+ this.propertyWillChange(keyName);
+ this.propertyDidChange(keyName);
+ return this;
+ },
+
+ addBeforeObserver: function(key, target, method) {
+ Ember.addBeforeObserver(this, key, target, method);
+ },
+
+ /**
+ Adds an observer on a property.
+
+ This is the core method used to register an observer for a property.
+
+ Once you call this method, anytime the key's value is set, your observer
+ will be notified. Note that the observers are triggered anytime the
+ value is set, regardless of whether it has actually changed. Your
+ observer should be prepared to handle that.
+
+ You can also pass an optional context parameter to this method. The
+ context will be passed to your observer method whenever it is triggered.
+ Note that if you add the same target/method pair on a key multiple times
+ with different context parameters, your observer will only be called once
+ with the last context you passed.
+
+ ### Observer Methods
+
+ Observer methods you pass should generally have the following signature if
+ you do not pass a "context" parameter:
+
+ fooDidChange: function(sender, key, value, rev);
+
+ The sender is the object that changed. The key is the property that
+ changes. The value property is currently reserved and unused. The rev
+ is the last property revision of the object when it changed, which you can
+ use to detect if the key value has really changed or not.
+
+ If you pass a "context" parameter, the context will be passed before the
+ revision like so:
+
+ fooDidChange: function(sender, key, value, context, rev);
+
+ Usually you will not need the value, context or revision parameters at
+ the end. In this case, it is common to write observer methods that take
+ only a sender and key value as parameters or, if you aren't interested in
+ any of these values, to write an observer that has no parameters at all.
+
+ @param {String} key The key to observer
+ @param {Object} target The target object to invoke
+ @param {String|Function} method The method to invoke.
+ @returns {Ember.Object} self
+ */
+ addObserver: function(key, target, method) {
+ Ember.addObserver(this, key, target, method);
+ },
+
+ /**
+ Remove an observer you have previously registered on this object. Pass
+ the same key, target, and method you passed to addObserver() and your
+ target will no longer receive notifications.
+
+ @param {String} key The key to observer
+ @param {Object} target The target object to invoke
+ @param {String|Function} method The method to invoke.
+ @returns {Ember.Observable} receiver
+ */
+ removeObserver: function(key, target, method) {
+ Ember.removeObserver(this, key, target, method);
+ },
+
+ /**
+ Returns true if the object currently has observers registered for a
+ particular key. You can use this method to potentially defer performing
+ an expensive action until someone begins observing a particular property
+ on the object.
+
+ @param {String} key Key to check
+ @returns {Boolean}
+ */
+ hasObserverFor: function(key) {
+ return Ember.hasListeners(this, key+':change');
+ },
+
+ /**
+ This method will be called when a client attempts to get the value of a
+ property that has not been defined in one of the typical ways. Override
+ this method to create "virtual" properties.
+
+ @param {String} key The name of the unknown property that was requested.
+ @returns {Object} The property value or undefined. Default is undefined.
+ */
+ unknownProperty: function(key) {
+ return undefined;
+ },
+
+ /**
+ This method will be called when a client attempts to set the value of a
+ property that has not been defined in one of the typical ways. Override
+ this method to create "virtual" properties.
+
+ @param {String} key The name of the unknown property to be set.
+ @param {Object} value The value the unknown property is to be set to.
+ */
+ setUnknownProperty: function(key, value) {
+ defineProperty(this, key);
+ set(this, key, value);
+ },
+
+ /**
+ @deprecated
+ @param {String} path The property path to retrieve
+ @returns {Object} The property value or undefined.
+ */
+ getPath: function(path) {
+ Ember.deprecate("getPath is deprecated since get now supports paths");
+ return this.get(path);
+ },
+
+ /**
+ @deprecated
+ @param {String} path The path to the property that will be set
+ @param {Object} value The value to set or null.
+ @returns {Ember.Observable}
+ */
+ setPath: function(path, value) {
+ Ember.deprecate("setPath is deprecated since set now supports paths");
+ return this.set(path, value);
+ },
+
+ /**
+ Retrieves the value of a property, or a default value in the case that the property
+ returns undefined.
+
+ person.getWithDefault('lastName', 'Doe');
+
+ @param {String} keyName The name of the property to retrieve
+ @param {Object} defaultValue The value to return if the property value is undefined
+ @returns {Object} The property value or the defaultValue.
+ */
+ getWithDefault: function(keyName, defaultValue) {
+ return Ember.getWithDefault(this, keyName, defaultValue);
+ },
+
+ /**
+ Set the value of a property to the current value plus some amount.
+
+ person.incrementProperty('age');
+ team.incrementProperty('score', 2);
+
+ @param {String} keyName The name of the property to increment
+ @param {Object} increment The amount to increment by. Defaults to 1
+ @returns {Object} The new property value
+ */
+ incrementProperty: function(keyName, increment) {
+ if (!increment) { increment = 1; }
+ set(this, keyName, (get(this, keyName) || 0)+increment);
+ return get(this, keyName);
+ },
+
+ /**
+ Set the value of a property to the current value minus some amount.
+
+ player.decrementProperty('lives');
+ orc.decrementProperty('health', 5);
+
+ @param {String} keyName The name of the property to decrement
+ @param {Object} increment The amount to decrement by. Defaults to 1
+ @returns {Object} The new property value
+ */
+ decrementProperty: function(keyName, increment) {
+ if (!increment) { increment = 1; }
+ set(this, keyName, (get(this, keyName) || 0)-increment);
+ return get(this, keyName);
+ },
+
+ /**
+ Set the value of a boolean property to the opposite of it's
+ current value.
+
+ starship.toggleProperty('warpDriveEnaged');
+
+ @param {String} keyName The name of the property to toggle
+ @returns {Object} The new property value
+ */
+ toggleProperty: function(keyName) {
+ set(this, keyName, !get(this, keyName));
+ return get(this, keyName);
+ },
+
+ /**
+ Returns the cached value of a computed property, if it exists.
+ This allows you to inspect the value of a computed property
+ without accidentally invoking it if it is intended to be
+ generated lazily.
+
+ @param {String} keyName
+ @returns {Object} The cached value of the computed property, if any
+ */
+ cacheFor: function(keyName) {
+ return Ember.cacheFor(this, keyName);
+ },
+
+ /** @private - intended for debugging purposes */
+ observersForKey: function(keyName) {
+ return Ember.observersFor(this, keyName);
+ }
+});
+
+
+
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set;
+
+Ember.TargetActionSupport = Ember.Mixin.create({
+ target: null,
+ action: null,
+
+ targetObject: Ember.computed(function() {
+ var target = get(this, 'target');
+
+ if (Ember.typeOf(target) === "string") {
+ var value = get(this, target);
+ if (value === undefined) { value = get(window, target); }
+ return value;
+ } else {
+ return target;
+ }
+ }).property('target').cacheable(),
+
+ triggerAction: function() {
+ var action = get(this, 'action'),
+ target = get(this, 'targetObject');
+
+ if (target && action) {
+ var ret;
+
+ if (typeof target.send === 'function') {
+ ret = target.send(action, this);
+ } else {
+ if (typeof action === 'string') {
+ action = target[action];
+ }
+ ret = action.call(target, this);
+ }
+ if (ret !== false) ret = true;
+
+ return ret;
+ } else {
+ return false;
+ }
+ }
+});
+
+})();
+
+
+
+(function() {
+/**
+ @class
+
+ @extends Ember.Mixin
+ */
+Ember.Evented = Ember.Mixin.create(
+ /** @scope Ember.Evented.prototype */ {
+ on: function(name, target, method) {
+ Ember.addListener(this, name, target, method);
+ },
+
+ one: function(name, target, method) {
+ if (!method) {
+ method = target;
+ target = null;
+ }
+
+ var self = this;
+ var wrapped = function() {
+ Ember.removeListener(self, name, target, wrapped);
+
+ if ('string' === typeof method) { method = this[method]; }
+
+ // Internally, a `null` target means that the target is
+ // the first parameter to addListener. That means that
+ // the `this` passed into this function is the target
+ // determined by the event system.
+ method.apply(this, arguments);
+ };
+
+ this.on(name, target, wrapped);
+ },
+
+ trigger: function(name) {
+ var args = [], i, l;
+ for (i = 1, l = arguments.length; i < l; i++) {
+ args.push(arguments[i]);
+ }
+ Ember.sendEvent(this, name, args);
+ },
+
+ fire: function(name) {
+ Ember.deprecate("Ember.Evented#fire() has been deprecated in favor of trigger() for compatibility with jQuery. It will be removed in 1.0. Please update your code to call trigger() instead.");
+ this.trigger.apply(this, arguments);
+ },
+
+ off: function(name, target, method) {
+ Ember.removeListener(this, name, target, method);
+ },
+
+ has: function(name) {
+ return Ember.hasListeners(this, name);
+ }
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+
+
+// NOTE: this object should never be included directly. Instead use Ember.
+// Ember.Object. We only define this separately so that Ember.Set can depend on it
+
+
+
+var classToString = Ember.Mixin.prototype.toString;
+var set = Ember.set, get = Ember.get;
+var o_create = Ember.create,
+ o_defineProperty = Ember.platform.defineProperty,
+ a_slice = Array.prototype.slice,
+ meta = Ember.meta,
+ rewatch = Ember.rewatch,
+ finishChains = Ember.finishChains,
+ finishPartial = Ember.Mixin.finishPartial,
+ reopen = Ember.Mixin.prototype.reopen;
+
+var undefinedDescriptor = {
+ configurable: true,
+ writable: true,
+ enumerable: false,
+ value: undefined
+};
+
+/** @private */
+function makeCtor() {
+
+ // Note: avoid accessing any properties on the object since it makes the
+ // method a lot faster. This is glue code so we want it to be as fast as
+ // possible.
+
+ var wasApplied = false, initMixins;
+
+ var Class = function() {
+ if (!wasApplied) {
+ Class.proto(); // prepare prototype...
+ }
+ var m = Ember.meta(this);
+ m.proto = this;
+ if (initMixins) {
+ this.reopen.apply(this, initMixins);
+ initMixins = null;
+ }
+ o_defineProperty(this, Ember.GUID_KEY, undefinedDescriptor);
+ o_defineProperty(this, '_super', undefinedDescriptor);
+ finishPartial(this, m);
+ delete m.proto;
+ finishChains(this);
+ this.init.apply(this, arguments);
+ };
+
+ Class.toString = classToString;
+ Class.willReopen = function() {
+ if (wasApplied) {
+ Class.PrototypeMixin = Ember.Mixin.create(Class.PrototypeMixin);
+ }
+
+ wasApplied = false;
+ };
+ Class._initMixins = function(args) { initMixins = args; };
+
+ Class.proto = function() {
+ var superclass = Class.superclass;
+ if (superclass) { superclass.proto(); }
+
+ if (!wasApplied) {
+ wasApplied = true;
+ Class.PrototypeMixin.applyPartial(Class.prototype);
+ rewatch(Class.prototype);
+ }
+
+ return this.prototype;
+ };
+
+ return Class;
+
+}
+
+var CoreObject = makeCtor();
+
+CoreObject.PrototypeMixin = Ember.Mixin.create(
+/** @scope Ember.CoreObject.prototype */ {
+
+ reopen: function() {
+ Ember.Mixin._apply(this, arguments, true);
+ return this;
+ },
+
+ isInstance: true,
+
+ /** @private */
+ init: function() {},
+
+ /** @field */
+ isDestroyed: false,
+
+ /** @field */
+ isDestroying: false,
+
+ /**
+ Destroys an object by setting the isDestroyed flag and removing its
+ metadata, which effectively destroys observers and bindings.
+
+ If you try to set a property on a destroyed object, an exception will be
+ raised.
+
+ Note that destruction is scheduled for the end of the run loop and does not
+ happen immediately.
+
+ @returns {Ember.Object} receiver
+ */
+ destroy: function() {
+ if (this.isDestroying) { return; }
+
+ this.isDestroying = true;
+
+ if (this.willDestroy) { this.willDestroy(); }
+
+ set(this, 'isDestroyed', true);
+ Ember.run.schedule('destroy', this, this._scheduledDestroy);
+ return this;
+ },
+
+ /**
+ Invoked by the run loop to actually destroy the object. This is
+ scheduled for execution by the `destroy` method.
+
+ @private
+ */
+ _scheduledDestroy: function() {
+ Ember.destroy(this);
+ if (this.didDestroy) { this.didDestroy(); }
+ },
+
+ bind: function(to, from) {
+ if (!(from instanceof Ember.Binding)) { from = Ember.Binding.from(from); }
+ from.to(to).connect(this);
+ return from;
+ },
+
+ toString: function() {
+ return '<'+this.constructor.toString()+':'+Ember.guidFor(this)+'>';
+ }
+});
+
+if (Ember.config.overridePrototypeMixin) {
+ Ember.config.overridePrototypeMixin(CoreObject.PrototypeMixin);
+}
+
+CoreObject.__super__ = null;
+
+var ClassMixin = Ember.Mixin.create(
+/** @scope Ember.ClassMixin.prototype */ {
+
+ ClassMixin: Ember.required(),
+
+ PrototypeMixin: Ember.required(),
+
+ isClass: true,
+
+ isMethod: false,
+
+ extend: function() {
+ var Class = makeCtor(), proto;
+ Class.ClassMixin = Ember.Mixin.create(this.ClassMixin);
+ Class.PrototypeMixin = Ember.Mixin.create(this.PrototypeMixin);
+
+ Class.ClassMixin.ownerConstructor = Class;
+ Class.PrototypeMixin.ownerConstructor = Class;
+
+ reopen.apply(Class.PrototypeMixin, arguments);
+
+ Class.superclass = this;
+ Class.__super__ = this.prototype;
+
+ proto = Class.prototype = o_create(this.prototype);
+ proto.constructor = Class;
+ Ember.generateGuid(proto, 'ember');
+ meta(proto).proto = proto; // this will disable observers on prototype
+
+ Class.ClassMixin.apply(Class);
+ return Class;
+ },
+
+ create: function() {
+ var C = this;
+ if (arguments.length>0) { this._initMixins(arguments); }
+ return new C();
+ },
+
+ reopen: function() {
+ this.willReopen();
+ reopen.apply(this.PrototypeMixin, arguments);
+ return this;
+ },
+
+ reopenClass: function() {
+ reopen.apply(this.ClassMixin, arguments);
+ Ember.Mixin._apply(this, arguments, false);
+ return this;
+ },
+
+ detect: function(obj) {
+ if ('function' !== typeof obj) { return false; }
+ while(obj) {
+ if (obj===this) { return true; }
+ obj = obj.superclass;
+ }
+ return false;
+ },
+
+ detectInstance: function(obj) {
+ return obj instanceof this;
+ },
+
+ /**
+ In some cases, you may want to annotate computed properties with additional
+ metadata about how they function or what values they operate on. For example,
+ computed property functions may close over variables that are then no longer
+ available for introspection.
+
+ You can pass a hash of these values to a computed property like this:
+
+ person: function() {
+ var personId = this.get('personId');
+ return App.Person.create({ id: personId });
+ }.property().meta({ type: App.Person })
+
+ Once you've done this, you can retrieve the values saved to the computed
+ property from your class like this:
+
+ MyClass.metaForProperty('person');
+
+ This will return the original hash that was passed to `meta()`.
+ */
+ metaForProperty: function(key) {
+ var desc = meta(this.proto(), false).descs[key];
+
+ Ember.assert("metaForProperty() could not find a computed property with key '"+key+"'.", !!desc && desc instanceof Ember.ComputedProperty);
+ return desc._meta || {};
+ },
+
+ /**
+ Iterate over each computed property for the class, passing its name
+ and any associated metadata (see `metaForProperty`) to the callback.
+ */
+ eachComputedProperty: function(callback, binding) {
+ var proto = this.proto(),
+ descs = meta(proto).descs,
+ empty = {},
+ property;
+
+ for (var name in descs) {
+ property = descs[name];
+
+ if (property instanceof Ember.ComputedProperty) {
+ callback.call(binding || this, name, property._meta || empty);
+ }
+ }
+ }
+
+});
+
+if (Ember.config.overrideClassMixin) {
+ Ember.config.overrideClassMixin(ClassMixin);
+}
+
+CoreObject.ClassMixin = ClassMixin;
+ClassMixin.apply(CoreObject);
+
+/**
+ @class
+*/
+Ember.CoreObject = CoreObject;
+
+
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set, guidFor = Ember.guidFor, none = Ember.none;
+
+/**
+ @class
+
+ An unordered collection of objects.
+
+ A Set works a bit like an array except that its items are not ordered.
+ You can create a set to efficiently test for membership for an object. You
+ can also iterate through a set just like an array, even accessing objects
+ by index, however there is no guarantee as to their order.
+
+ All Sets are observable via the Enumerable Observer API - which works
+ on any enumerable object including both Sets and Arrays.
+
+ ## Creating a Set
+
+ You can create a set like you would most objects using
+ `new Ember.Set()`. Most new sets you create will be empty, but you can
+ also initialize the set with some content by passing an array or other
+ enumerable of objects to the constructor.
+
+ Finally, you can pass in an existing set and the set will be copied. You
+ can also create a copy of a set by calling `Ember.Set#copy()`.
+
+ #js
+ // creates a new empty set
+ var foundNames = new Ember.Set();
+
+ // creates a set with four names in it.
+ var names = new Ember.Set(["Charles", "Tom", "Juan", "Alex"]); // :P
+
+ // creates a copy of the names set.
+ var namesCopy = new Ember.Set(names);
+
+ // same as above.
+ var anotherNamesCopy = names.copy();
+
+ ## Adding/Removing Objects
+
+ You generally add or remove objects from a set using `add()` or
+ `remove()`. You can add any type of object including primitives such as
+ numbers, strings, and booleans.
+
+ Unlike arrays, objects can only exist one time in a set. If you call `add()`
+ on a set with the same object multiple times, the object will only be added
+ once. Likewise, calling `remove()` with the same object multiple times will
+ remove the object the first time and have no effect on future calls until
+ you add the object to the set again.
+
+ NOTE: You cannot add/remove null or undefined to a set. Any attempt to do so
+ will be ignored.
+
+ In addition to add/remove you can also call `push()`/`pop()`. Push behaves
+ just like `add()` but `pop()`, unlike `remove()` will pick an arbitrary
+ object, remove it and return it. This is a good way to use a set as a job
+ queue when you don't care which order the jobs are executed in.
+
+ ## Testing for an Object
+
+ To test for an object's presence in a set you simply call
+ `Ember.Set#contains()`.
+
+ ## Observing changes
+
+ When using `Ember.Set`, you can observe the `"[]"` property to be
+ alerted whenever the content changes. You can also add an enumerable
+ observer to the set to be notified of specific objects that are added and
+ removed from the set. See `Ember.Enumerable` for more information on
+ enumerables.
+
+ This is often unhelpful. If you are filtering sets of objects, for instance,
+ it is very inefficient to re-filter all of the items each time the set
+ changes. It would be better if you could just adjust the filtered set based
+ on what was changed on the original set. The same issue applies to merging
+ sets, as well.
+
+ ## Other Methods
+
+ `Ember.Set` primary implements other mixin APIs. For a complete reference
+ on the methods you will use with `Ember.Set`, please consult these mixins.
+ The most useful ones will be `Ember.Enumerable` and
+ `Ember.MutableEnumerable` which implement most of the common iterator
+ methods you are used to on Array.
+
+ Note that you can also use the `Ember.Copyable` and `Ember.Freezable`
+ APIs on `Ember.Set` as well. Once a set is frozen it can no longer be
+ modified. The benefit of this is that when you call frozenCopy() on it,
+ Ember will avoid making copies of the set. This allows you to write
+ code that can know with certainty when the underlying set data will or
+ will not be modified.
+
+ @extends Ember.Enumerable
+ @extends Ember.MutableEnumerable
+ @extends Ember.Copyable
+ @extends Ember.Freezable
+
+ @since Ember 0.9
+*/
+Ember.Set = Ember.CoreObject.extend(Ember.MutableEnumerable, Ember.Copyable, Ember.Freezable,
+ /** @scope Ember.Set.prototype */ {
+
+ // ..........................................................
+ // IMPLEMENT ENUMERABLE APIS
+ //
+
+ /**
+ This property will change as the number of objects in the set changes.
+
+ @type number
+ @default 0
+ */
+ length: 0,
+
+ /**
+ Clears the set. This is useful if you want to reuse an existing set
+ without having to recreate it.
+
+ var colors = new Ember.Set(["red", "green", "blue"]);
+ colors.length; => 3
+ colors.clear();
+ colors.length; => 0
+
+ @returns {Ember.Set} An empty Set
+ */
+ clear: function() {
+ if (this.isFrozen) { throw new Error(Ember.FROZEN_ERROR); }
+
+ var len = get(this, 'length');
+ if (len === 0) { return this; }
+
+ var guid;
+
+ this.enumerableContentWillChange(len, 0);
+ Ember.propertyWillChange(this, 'firstObject');
+ Ember.propertyWillChange(this, 'lastObject');
+
+ for (var i=0; i < len; i++){
+ guid = guidFor(this[i]);
+ delete this[guid];
+ delete this[i];
+ }
+
+ set(this, 'length', 0);
+
+ Ember.propertyDidChange(this, 'firstObject');
+ Ember.propertyDidChange(this, 'lastObject');
+ this.enumerableContentDidChange(len, 0);
+
+ return this;
+ },
+
+ /**
+ Returns true if the passed object is also an enumerable that contains the
+ same objects as the receiver.
+
+ var colors = ["red", "green", "blue"],
+ same_colors = new Ember.Set(colors);
+ same_colors.isEqual(colors); => true
+ same_colors.isEqual(["purple", "brown"]); => false
+
+ @param {Ember.Set} obj the other object.
+ @returns {Boolean}
+ */
+ isEqual: function(obj) {
+ // fail fast
+ if (!Ember.Enumerable.detect(obj)) return false;
+
+ var loc = get(this, 'length');
+ if (get(obj, 'length') !== loc) return false;
+
+ while(--loc >= 0) {
+ if (!obj.contains(this[loc])) return false;
+ }
+
+ return true;
+ },
+
+ /**
+ Adds an object to the set. Only non-null objects can be added to a set
+ and those can only be added once. If the object is already in the set or
+ the passed value is null this method will have no effect.
+
+ This is an alias for `Ember.MutableEnumerable.addObject()`.
+
+ var colors = new Ember.Set();
+ colors.add("blue"); => ["blue"]
+ colors.add("blue"); => ["blue"]
+ colors.add("red"); => ["blue", "red"]
+ colors.add(null); => ["blue", "red"]
+ colors.add(undefined); => ["blue", "red"]
+
+ @function
+ @param {Object} obj The object to add.
+ @returns {Ember.Set} The set itself.
+ */
+ add: Ember.alias('addObject'),
+
+ /**
+ Removes the object from the set if it is found. If you pass a null value
+ or an object that is already not in the set, this method will have no
+ effect. This is an alias for `Ember.MutableEnumerable.removeObject()`.
+
+ var colors = new Ember.Set(["red", "green", "blue"]);
+ colors.remove("red"); => ["blue", "green"]
+ colors.remove("purple"); => ["blue", "green"]
+ colors.remove(null); => ["blue", "green"]
+
+ @function
+ @param {Object} obj The object to remove
+ @returns {Ember.Set} The set itself.
+ */
+ remove: Ember.alias('removeObject'),
+
+ /**
+ Removes the last element from the set and returns it, or null if it's empty.
+
+ var colors = new Ember.Set(["green", "blue"]);
+ colors.pop(); => "blue"
+ colors.pop(); => "green"
+ colors.pop(); => null
+
+ @returns {Object} The removed object from the set or null.
+ */
+ pop: function() {
+ if (get(this, 'isFrozen')) throw new Error(Ember.FROZEN_ERROR);
+ var obj = this.length > 0 ? this[this.length-1] : null;
+ this.remove(obj);
+ return obj;
+ },
+
+ /**
+ Inserts the given object on to the end of the set. It returns
+ the set itself.
+
+ This is an alias for `Ember.MutableEnumerable.addObject()`.
+
+ var colors = new Ember.Set();
+ colors.push("red"); => ["red"]
+ colors.push("green"); => ["red", "green"]
+ colors.push("blue"); => ["red", "green", "blue"]
+
+ @function
+ @returns {Ember.Set} The set itself.
+ */
+ push: Ember.alias('addObject'),
+
+ /**
+ Removes the last element from the set and returns it, or null if it's empty.
+
+ This is an alias for `Ember.Set.pop()`.
+
+ var colors = new Ember.Set(["green", "blue"]);
+ colors.shift(); => "blue"
+ colors.shift(); => "green"
+ colors.shift(); => null
+
+ @function
+ @returns {Object} The removed object from the set or null.
+ */
+ shift: Ember.alias('pop'),
+
+ /**
+ Inserts the given object on to the end of the set. It returns
+ the set itself.
+
+ This is an alias of `Ember.Set.push()`
+
+ var colors = new Ember.Set();
+ colors.unshift("red"); => ["red"]
+ colors.unshift("green"); => ["red", "green"]
+ colors.unshift("blue"); => ["red", "green", "blue"]
+
+ @function
+ @returns {Ember.Set} The set itself.
+ */
+ unshift: Ember.alias('push'),
+
+ /**
+ Adds each object in the passed enumerable to the set.
+
+ This is an alias of `Ember.MutableEnumerable.addObjects()`
+
+ var colors = new Ember.Set();
+ colors.addEach(["red", "green", "blue"]); => ["red", "green", "blue"]
+
+ @function
+ @param {Ember.Enumerable} objects the objects to add.
+ @returns {Ember.Set} The set itself.
+ */
+ addEach: Ember.alias('addObjects'),
+
+ /**
+ Removes each object in the passed enumerable to the set.
+
+ This is an alias of `Ember.MutableEnumerable.removeObjects()`
+
+ var colors = new Ember.Set(["red", "green", "blue"]);
+ colors.removeEach(["red", "blue"]); => ["green"]
+
+ @function
+ @param {Ember.Enumerable} objects the objects to remove.
+ @returns {Ember.Set} The set itself.
+ */
+ removeEach: Ember.alias('removeObjects'),
+
+ // ..........................................................
+ // PRIVATE ENUMERABLE SUPPORT
+ //
+
+ /** @private */
+ init: function(items) {
+ this._super();
+ if (items) this.addObjects(items);
+ },
+
+ /** @private (nodoc) - implement Ember.Enumerable */
+ nextObject: function(idx) {
+ return this[idx];
+ },
+
+ /** @private - more optimized version */
+ firstObject: Ember.computed(function() {
+ return this.length > 0 ? this[0] : undefined;
+ }).property().cacheable(),
+
+ /** @private - more optimized version */
+ lastObject: Ember.computed(function() {
+ return this.length > 0 ? this[this.length-1] : undefined;
+ }).property().cacheable(),
+
+ /** @private (nodoc) - implements Ember.MutableEnumerable */
+ addObject: function(obj) {
+ if (get(this, 'isFrozen')) throw new Error(Ember.FROZEN_ERROR);
+ if (none(obj)) return this; // nothing to do
+
+ var guid = guidFor(obj),
+ idx = this[guid],
+ len = get(this, 'length'),
+ added ;
+
+ if (idx>=0 && idx<len && (this[idx] === obj)) return this; // added
+
+ added = [obj];
+
+ this.enumerableContentWillChange(null, added);
+ Ember.propertyWillChange(this, 'lastObject');
+
+ len = get(this, 'length');
+ this[guid] = len;
+ this[len] = obj;
+ set(this, 'length', len+1);
+
+ Ember.propertyDidChange(this, 'lastObject');
+ this.enumerableContentDidChange(null, added);
+
+ return this;
+ },
+
+ /** @private (nodoc) - implements Ember.MutableEnumerable */
+ removeObject: function(obj) {
+ if (get(this, 'isFrozen')) throw new Error(Ember.FROZEN_ERROR);
+ if (none(obj)) return this; // nothing to do
+
+ var guid = guidFor(obj),
+ idx = this[guid],
+ len = get(this, 'length'),
+ isFirst = idx === 0,
+ isLast = idx === len-1,
+ last, removed;
+
+
+ if (idx>=0 && idx<len && (this[idx] === obj)) {
+ removed = [obj];
+
+ this.enumerableContentWillChange(removed, null);
+ if (isFirst) { Ember.propertyWillChange(this, 'firstObject'); }
+ if (isLast) { Ember.propertyWillChange(this, 'lastObject'); }
+
+ // swap items - basically move the item to the end so it can be removed
+ if (idx < len-1) {
+ last = this[len-1];
+ this[idx] = last;
+ this[guidFor(last)] = idx;
+ }
+
+ delete this[guid];
+ delete this[len-1];
+ set(this, 'length', len-1);
+
+ if (isFirst) { Ember.propertyDidChange(this, 'firstObject'); }
+ if (isLast) { Ember.propertyDidChange(this, 'lastObject'); }
+ this.enumerableContentDidChange(removed, null);
+ }
+
+ return this;
+ },
+
+ /** @private (nodoc) - optimized version */
+ contains: function(obj) {
+ return this[guidFor(obj)]>=0;
+ },
+
+ /** @private (nodoc) */
+ copy: function() {
+ var C = this.constructor, ret = new C(), loc = get(this, 'length');
+ set(ret, 'length', loc);
+ while(--loc>=0) {
+ ret[loc] = this[loc];
+ ret[guidFor(this[loc])] = loc;
+ }
+ return ret;
+ },
+
+ /** @private */
+ toString: function() {
+ var len = this.length, idx, array = [];
+ for(idx = 0; idx < len; idx++) {
+ array[idx] = this[idx];
+ }
+ return "Ember.Set<%@>".fmt(array.join(','));
+ }
+
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/**
+ @class
+
+ `Ember.Object` is the main base class for all Ember objects. It is a subclass
+ of `Ember.CoreObject` with the `Ember.Observable` mixin applied. For details,
+ see the documentation for each of these.
+
+ @extends Ember.CoreObject
+ @extends Ember.Observable
+*/
+Ember.Object = Ember.CoreObject.extend(Ember.Observable);
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var indexOf = Ember.ArrayPolyfills.indexOf;
+
+/**
+ @private
+ A Namespace is an object usually used to contain other objects or methods
+ such as an application or framework. Create a namespace anytime you want
+ to define one of these new containers.
+
+ # Example Usage
+
+ MyFramework = Ember.Namespace.create({
+ VERSION: '1.0.0'
+ });
+
+*/
+Ember.Namespace = Ember.Object.extend({
+ isNamespace: true,
+
+ init: function() {
+ Ember.Namespace.NAMESPACES.push(this);
+ Ember.Namespace.PROCESSED = false;
+ },
+
+ toString: function() {
+ Ember.identifyNamespaces();
+ return this[Ember.GUID_KEY+'_name'];
+ },
+
+ destroy: function() {
+ var namespaces = Ember.Namespace.NAMESPACES;
+ window[this.toString()] = undefined;
+ namespaces.splice(indexOf.call(namespaces, this), 1);
+ this._super();
+ }
+});
+
+Ember.Namespace.NAMESPACES = [Ember];
+Ember.Namespace.PROCESSED = false;
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/**
+ @private
+
+ Defines a namespace that will contain an executable application. This is
+ very similar to a normal namespace except that it is expected to include at
+ least a 'ready' function which can be run to initialize the application.
+
+ Currently Ember.Application is very similar to Ember.Namespace. However, this
+ class may be augmented by additional frameworks so it is important to use
+ this instance when building new applications.
+
+ # Example Usage
+
+ MyApp = Ember.Application.create({
+ VERSION: '1.0.0',
+ store: Ember.Store.create().from(Ember.fixtures)
+ });
+
+ MyApp.ready = function() {
+ //..init code goes here...
+ }
+
+*/
+Ember.Application = Ember.Namespace.extend();
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set;
+
+/**
+ @class
+
+ An ArrayProxy wraps any other object that implements Ember.Array and/or
+ Ember.MutableArray, forwarding all requests. This makes it very useful for
+ a number of binding use cases or other cases where being able to swap
+ out the underlying array is useful.
+
+ A simple example of usage:
+
+ var pets = ['dog', 'cat', 'fish'];
+ var ap = Ember.ArrayProxy.create({ content: Ember.A(pets) });
+ ap.get('firstObject'); // => 'dog'
+ ap.set('content', ['amoeba', 'paramecium']);
+ ap.get('firstObject'); // => 'amoeba'
+
+ This class can also be useful as a layer to transform the contents of
+ an array, as they are accessed. This can be done by overriding
+ `objectAtContent`:
+
+ var pets = ['dog', 'cat', 'fish'];
+ var ap = Ember.ArrayProxy.create({
+ content: Ember.A(pets),
+ objectAtContent: function(idx) {
+ return this.get('content').objectAt(idx).toUpperCase();
+ }
+ });
+ ap.get('firstObject'); // => 'DOG'
+
+
+ @extends Ember.Object
+ @extends Ember.Array
+ @extends Ember.MutableArray
+*/
+Ember.ArrayProxy = Ember.Object.extend(Ember.MutableArray,
+/** @scope Ember.ArrayProxy.prototype */ {
+
+ /**
+ The content array. Must be an object that implements Ember.Array and/or
+ Ember.MutableArray.
+
+ @type Ember.Array
+ */
+ content: null,
+
+ /**
+ The array that the proxy pretends to be. In the default `ArrayProxy`
+ implementation, this and `content` are the same. Subclasses of `ArrayProxy`
+ can override this property to provide things like sorting and filtering.
+ */
+ arrangedContent: Ember.computed('content', function() {
+ return get(this, 'content');
+ }).cacheable(),
+
+ /**
+ Should actually retrieve the object at the specified index from the
+ content. You can override this method in subclasses to transform the
+ content item to something new.
+
+ This method will only be called if content is non-null.
+
+ @param {Number} idx
+ The index to retrieve.
+
+ @returns {Object} the value or undefined if none found
+ */
+ objectAtContent: function(idx) {
+ return get(this, 'arrangedContent').objectAt(idx);
+ },
+
+ /**
+ Should actually replace the specified objects on the content array.
+ You can override this method in subclasses to transform the content item
+ into something new.
+
+ This method will only be called if content is non-null.
+
+ @param {Number} idx
+ The starting index
+
+ @param {Number} amt
+ The number of items to remove from the content.
+
+ @param {Array} objects
+ Optional array of objects to insert or null if no objects.
+
+ @returns {void}
+ */
+ replaceContent: function(idx, amt, objects) {
+ get(this, 'arrangedContent').replace(idx, amt, objects);
+ },
+
+ /**
+ Invoked when the content property is about to change. Notifies observers that the
+ entire array content will change.
+ */
+ _contentWillChange: Ember.beforeObserver(function() {
+ var content = get(this, 'content');
+
+ if (content) {
+ content.removeArrayObserver(this, {
+ willChange: 'contentArrayWillChange',
+ didChange: 'contentArrayDidChange'
+ });
+ }
+ }, 'content'),
+
+
+ contentArrayWillChange: Ember.K,
+ contentArrayDidChange: Ember.K,
+
+ /**
+ Invoked when the content property changes. Notifies observers that the
+ entire array content has changed.
+ */
+ _contentDidChange: Ember.observer(function() {
+ var content = get(this, 'content'),
+ len = content ? get(content, 'length') : 0;
+
+ Ember.assert("Can't set ArrayProxy's content to itself", content !== this);
+
+ if (content) {
+ content.addArrayObserver(this, {
+ willChange: 'contentArrayWillChange',
+ didChange: 'contentArrayDidChange'
+ });
+ }
+ }, 'content'),
+
+ _arrangedContentWillChange: Ember.beforeObserver(function() {
+ var arrangedContent = get(this, 'arrangedContent'),
+ len = arrangedContent ? get(arrangedContent, 'length') : 0;
+
+ this.arrangedContentArrayWillChange(this, 0, len, undefined);
+
+ if (arrangedContent) {
+ arrangedContent.removeArrayObserver(this, {
+ willChange: 'arrangedContentArrayWillChange',
+ didChange: 'arrangedContentArrayDidChange'
+ });
+ }
+ }, 'arrangedContent'),
+
+ _arrangedContentDidChange: Ember.observer(function() {
+ var arrangedContent = get(this, 'arrangedContent'),
+ len = arrangedContent ? get(arrangedContent, 'length') : 0;
+
+ Ember.assert("Can't set ArrayProxy's content to itself", arrangedContent !== this);
+
+ if (arrangedContent) {
+ arrangedContent.addArrayObserver(this, {
+ willChange: 'arrangedContentArrayWillChange',
+ didChange: 'arrangedContentArrayDidChange'
+ });
+ }
+
+ this.arrangedContentArrayDidChange(this, 0, undefined, len);
+ }, 'arrangedContent'),
+
+ /** @private (nodoc) */
+ objectAt: function(idx) {
+ return get(this, 'content') && this.objectAtContent(idx);
+ },
+
+ /** @private (nodoc) */
+ length: Ember.computed(function() {
+ var arrangedContent = get(this, 'arrangedContent');
+ return arrangedContent ? get(arrangedContent, 'length') : 0;
+ // No dependencies since Enumerable notifies length of change
+ }).property().cacheable(),
+
+ /** @private (nodoc) */
+ replace: function(idx, amt, objects) {
+ if (get(this, 'content')) this.replaceContent(idx, amt, objects);
+ return this;
+ },
+
+ /** @private (nodoc) */
+ arrangedContentArrayWillChange: function(item, idx, removedCnt, addedCnt) {
+ this.arrayContentWillChange(idx, removedCnt, addedCnt);
+ },
+
+ /** @private (nodoc) */
+ arrangedContentArrayDidChange: function(item, idx, removedCnt, addedCnt) {
+ this.arrayContentDidChange(idx, removedCnt, addedCnt);
+ },
+
+ /** @private (nodoc) */
+ init: function() {
+ this._super();
+ this._contentWillChange();
+ this._contentDidChange();
+ this._arrangedContentWillChange();
+ this._arrangedContentDidChange();
+ }
+
+});
+
+
+
+
+})();
+
+
+
+(function() {
+var get = Ember.get,
+ set = Ember.set,
+ fmt = Ember.String.fmt,
+ addBeforeObserver = Ember.addBeforeObserver,
+ addObserver = Ember.addObserver,
+ removeBeforeObserver = Ember.removeBeforeObserver,
+ removeObserver = Ember.removeObserver,
+ propertyWillChange = Ember.propertyWillChange,
+ propertyDidChange = Ember.propertyDidChange;
+
+function contentPropertyWillChange(content, contentKey) {
+ var key = contentKey.slice(8); // remove "content."
+ if (key in this) { return; } // if shadowed in proxy
+ propertyWillChange(this, key);
+}
+
+function contentPropertyDidChange(content, contentKey) {
+ var key = contentKey.slice(8); // remove "content."
+ if (key in this) { return; } // if shadowed in proxy
+ propertyDidChange(this, key);
+}
+
+/**
+ @class
+
+ `Ember.ObjectProxy` forwards all properties not defined by the proxy itself
+ to a proxied `content` object.
+
+ object = Ember.Object.create({
+ name: 'Foo'
+ });
+ proxy = Ember.ObjectProxy.create({
+ content: object
+ });
+
+ // Access and change existing properties
+ proxy.get('name') // => 'Foo'
+ proxy.set('name', 'Bar');
+ object.get('name') // => 'Bar'
+
+ // Create new 'description' property on `object`
+ proxy.set('description', 'Foo is a whizboo baz');
+ object.get('description') // => 'Foo is a whizboo baz'
+
+ While `content` is unset, setting a property to be delegated will throw an Error.
+
+ proxy = Ember.ObjectProxy.create({
+ content: null,
+ flag: null
+ });
+ proxy.set('flag', true);
+ proxy.get('flag'); // => true
+ proxy.get('foo'); // => undefined
+ proxy.set('foo', 'data'); // throws Error
+
+ Delegated properties can be bound to and will change when content is updated.
+
+ Computed properties on the proxy itself can depend on delegated properties.
+
+ ProxyWithComputedProperty = Ember.ObjectProxy.extend({
+ fullName: function () {
+ var firstName = this.get('firstName'),
+ lastName = this.get('lastName');
+ if (firstName && lastName) {
+ return firstName + ' ' + lastName;
+ }
+ return firstName || lastName;
+ }.property('firstName', 'lastName')
+ });
+ proxy = ProxyWithComputedProperty.create();
+ proxy.get('fullName'); => undefined
+ proxy.set('content', {
+ firstName: 'Tom', lastName: 'Dale'
+ }); // triggers property change for fullName on proxy
+ proxy.get('fullName'); => 'Tom Dale'
+*/
+Ember.ObjectProxy = Ember.Object.extend(
+/** @scope Ember.ObjectProxy.prototype */ {
+ /**
+ The object whose properties will be forwarded.
+
+ @type Ember.Object
+ @default null
+ */
+ content: null,
+ _contentDidChange: Ember.observer(function() {
+ Ember.assert("Can't set ObjectProxy's content to itself", this.get('content') !== this);
+ }, 'content'),
+ /** @private */
+ willWatchProperty: function (key) {
+ var contentKey = 'content.' + key;
+ addBeforeObserver(this, contentKey, null, contentPropertyWillChange);
+ addObserver(this, contentKey, null, contentPropertyDidChange);
+ },
+ /** @private */
+ didUnwatchProperty: function (key) {
+ var contentKey = 'content.' + key;
+ removeBeforeObserver(this, contentKey, null, contentPropertyWillChange);
+ removeObserver(this, contentKey, null, contentPropertyDidChange);
+ },
+ /** @private */
+ unknownProperty: function (key) {
+ var content = get(this, 'content');
+ if (content) {
+ return get(content, key);
+ }
+ },
+ /** @private */
+ setUnknownProperty: function (key, value) {
+ var content = get(this, 'content');
+ Ember.assert(fmt("Cannot delegate set('%@', %@) to the 'content' property of object proxy %@: its 'content' is undefined.", [key, value, this]), content);
+ return set(content, key, value);
+ }
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var set = Ember.set, get = Ember.get, guidFor = Ember.guidFor;
+var forEach = Ember.EnumerableUtils.forEach;
+
+var EachArray = Ember.Object.extend(Ember.Array, {
+
+ init: function(content, keyName, owner) {
+ this._super();
+ this._keyName = keyName;
+ this._owner = owner;
+ this._content = content;
+ },
+
+ objectAt: function(idx) {
+ var item = this._content.objectAt(idx);
+ return item && get(item, this._keyName);
+ },
+
+ length: Ember.computed(function() {
+ var content = this._content;
+ return content ? get(content, 'length') : 0;
+ }).property().cacheable()
+
+});
+
+var IS_OBSERVER = /^.+:(before|change)$/;
+
+/** @private */
+function addObserverForContentKey(content, keyName, proxy, idx, loc) {
+ var objects = proxy._objects, guid;
+ if (!objects) objects = proxy._objects = {};
+
+ while(--loc>=idx) {
+ var item = content.objectAt(loc);
+ if (item) {
+ Ember.addBeforeObserver(item, keyName, proxy, 'contentKeyWillChange');
+ Ember.addObserver(item, keyName, proxy, 'contentKeyDidChange');
+
+ // keep track of the indicies each item was found at so we can map
+ // it back when the obj changes.
+ guid = guidFor(item);
+ if (!objects[guid]) objects[guid] = [];
+ objects[guid].push(loc);
+ }
+ }
+}
+
+/** @private */
+function removeObserverForContentKey(content, keyName, proxy, idx, loc) {
+ var objects = proxy._objects;
+ if (!objects) objects = proxy._objects = {};
+ var indicies, guid;
+
+ while(--loc>=idx) {
+ var item = content.objectAt(loc);
+ if (item) {
+ Ember.removeBeforeObserver(item, keyName, proxy, 'contentKeyWillChange');
+ Ember.removeObserver(item, keyName, proxy, 'contentKeyDidChange');
+
+ guid = guidFor(item);
+ indicies = objects[guid];
+ indicies[indicies.indexOf(loc)] = null;
+ }
+ }
+}
+
+/**
+ @private
+ @class
+
+ This is the object instance returned when you get the @each property on an
+ array. It uses the unknownProperty handler to automatically create
+ EachArray instances for property names.
+
+ @extends Ember.Object
+*/
+Ember.EachProxy = Ember.Object.extend({
+
+ init: function(content) {
+ this._super();
+ this._content = content;
+ content.addArrayObserver(this);
+
+ // in case someone is already observing some keys make sure they are
+ // added
+ forEach(Ember.watchedEvents(this), function(eventName) {
+ this.didAddListener(eventName);
+ }, this);
+ },
+
+ /**
+ You can directly access mapped properties by simply requesting them.
+ The unknownProperty handler will generate an EachArray of each item.
+ */
+ unknownProperty: function(keyName, value) {
+ var ret;
+ ret = new EachArray(this._content, keyName, this);
+ Ember.defineProperty(this, keyName, null, ret);
+ this.beginObservingContentKey(keyName);
+ return ret;
+ },
+
+ // ..........................................................
+ // ARRAY CHANGES
+ // Invokes whenever the content array itself changes.
+
+ arrayWillChange: function(content, idx, removedCnt, addedCnt) {
+ var keys = this._keys, key, array, lim;
+
+ lim = removedCnt>0 ? idx+removedCnt : -1;
+ Ember.beginPropertyChanges(this);
+
+ for(key in keys) {
+ if (!keys.hasOwnProperty(key)) { continue; }
+
+ if (lim>0) removeObserverForContentKey(content, key, this, idx, lim);
+
+ Ember.propertyWillChange(this, key);
+ }
+
+ Ember.propertyWillChange(this._content, '@each');
+ Ember.endPropertyChanges(this);
+ },
+
+ arrayDidChange: function(content, idx, removedCnt, addedCnt) {
+ var keys = this._keys, key, array, lim;
+
+ lim = addedCnt>0 ? idx+addedCnt : -1;
+ Ember.beginPropertyChanges(this);
+
+ for(key in keys) {
+ if (!keys.hasOwnProperty(key)) { continue; }
+
+ if (lim>0) addObserverForContentKey(content, key, this, idx, lim);
+
+ Ember.propertyDidChange(this, key);
+ }
+
+ Ember.propertyDidChange(this._content, '@each');
+ Ember.endPropertyChanges(this);
+ },
+
+ // ..........................................................
+ // LISTEN FOR NEW OBSERVERS AND OTHER EVENT LISTENERS
+ // Start monitoring keys based on who is listening...
+
+ didAddListener: function(eventName) {
+ if (IS_OBSERVER.test(eventName)) {
+ this.beginObservingContentKey(eventName.slice(0, -7));
+ }
+ },
+
+ didRemoveListener: function(eventName) {
+ if (IS_OBSERVER.test(eventName)) {
+ this.stopObservingContentKey(eventName.slice(0, -7));
+ }
+ },
+
+ // ..........................................................
+ // CONTENT KEY OBSERVING
+ // Actual watch keys on the source content.
+
+ beginObservingContentKey: function(keyName) {
+ var keys = this._keys;
+ if (!keys) keys = this._keys = {};
+ if (!keys[keyName]) {
+ keys[keyName] = 1;
+ var content = this._content,
+ len = get(content, 'length');
+ addObserverForContentKey(content, keyName, this, 0, len);
+ } else {
+ keys[keyName]++;
+ }
+ },
+
+ stopObservingContentKey: function(keyName) {
+ var keys = this._keys;
+ if (keys && (keys[keyName]>0) && (--keys[keyName]<=0)) {
+ var content = this._content,
+ len = get(content, 'length');
+ removeObserverForContentKey(content, keyName, this, 0, len);
+ }
+ },
+
+ contentKeyWillChange: function(obj, keyName) {
+ Ember.propertyWillChange(this, keyName);
+ },
+
+ contentKeyDidChange: function(obj, keyName) {
+ Ember.propertyDidChange(this, keyName);
+ }
+
+});
+
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set;
+
+// Add Ember.Array to Array.prototype. Remove methods with native
+// implementations and supply some more optimized versions of generic methods
+// because they are so common.
+var NativeArray = Ember.Mixin.create(Ember.MutableArray, Ember.Observable, Ember.Copyable, {
+
+ // because length is a built-in property we need to know to just get the
+ // original property.
+ get: function(key) {
+ if (key==='length') return this.length;
+ else if ('number' === typeof key) return this[key];
+ else return this._super(key);
+ },
+
+ objectAt: function(idx) {
+ return this[idx];
+ },
+
+ // primitive for array support.
+ replace: function(idx, amt, objects) {
+
+ if (this.isFrozen) throw Ember.FROZEN_ERROR ;
+
+ // if we replaced exactly the same number of items, then pass only the
+ // replaced range. Otherwise, pass the full remaining array length
+ // since everything has shifted
+ var len = objects ? get(objects, 'length') : 0;
+ this.arrayContentWillChange(idx, amt, len);
+
+ if (!objects || objects.length === 0) {
+ this.splice(idx, amt) ;
+ } else {
+ var args = [idx, amt].concat(objects) ;
+ this.splice.apply(this,args) ;
+ }
+
+ this.arrayContentDidChange(idx, amt, len);
+ return this ;
+ },
+
+ // If you ask for an unknown property, then try to collect the value
+ // from member items.
+ unknownProperty: function(key, value) {
+ var ret;// = this.reducedProperty(key, value) ;
+ if ((value !== undefined) && ret === undefined) {
+ ret = this[key] = value;
+ }
+ return ret ;
+ },
+
+ // If browser did not implement indexOf natively, then override with
+ // specialized version
+ indexOf: function(object, startAt) {
+ var idx, len = this.length;
+
+ if (startAt === undefined) startAt = 0;
+ else startAt = (startAt < 0) ? Math.ceil(startAt) : Math.floor(startAt);
+ if (startAt < 0) startAt += len;
+
+ for(idx=startAt;idx<len;idx++) {
+ if (this[idx] === object) return idx ;
+ }
+ return -1;
+ },
+
+ lastIndexOf: function(object, startAt) {
+ var idx, len = this.length;
+
+ if (startAt === undefined) startAt = len-1;
+ else startAt = (startAt < 0) ? Math.ceil(startAt) : Math.floor(startAt);
+ if (startAt < 0) startAt += len;
+
+ for(idx=startAt;idx>=0;idx--) {
+ if (this[idx] === object) return idx ;
+ }
+ return -1;
+ },
+
+ copy: function() {
+ return this.slice();
+ }
+});
+
+// Remove any methods implemented natively so we don't override them
+var ignore = ['length'];
+Ember.EnumerableUtils.forEach(NativeArray.keys(), function(methodName) {
+ if (Array.prototype[methodName]) ignore.push(methodName);
+});
+
+if (ignore.length>0) {
+ NativeArray = NativeArray.without.apply(NativeArray, ignore);
+}
+
+/**
+ The NativeArray mixin contains the properties needed to to make the native
+ Array support Ember.MutableArray and all of its dependent APIs. Unless you
+ have Ember.EXTEND_PROTOTYPES set to false, this will be applied automatically.
+ Otherwise you can apply the mixin at anytime by calling
+ `Ember.NativeArray.activate`.
+
+ @namespace
+ @extends Ember.MutableArray
+ @extends Ember.Array
+ @extends Ember.Enumerable
+ @extends Ember.MutableEnumerable
+ @extends Ember.Copyable
+ @extends Ember.Freezable
+*/
+Ember.NativeArray = NativeArray;
+
+/**
+ Creates an Ember.NativeArray from an Array like object.
+ Does not modify the original object.
+
+ @returns {Ember.NativeArray}
+*/
+Ember.A = function(arr){
+ if (arr === undefined) { arr = []; }
+ return Ember.NativeArray.apply(arr);
+};
+
+/**
+ Activates the mixin on the Array.prototype if not already applied. Calling
+ this method more than once is safe.
+
+ @returns {void}
+*/
+Ember.NativeArray.activate = function() {
+ NativeArray.apply(Array.prototype);
+
+ Ember.A = function(arr) { return arr || []; };
+};
+
+if (Ember.EXTEND_PROTOTYPES) Ember.NativeArray.activate();
+
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set;
+
+Ember._PromiseChain = Ember.Object.extend({
+ promises: null,
+ failureCallback: Ember.K,
+ successCallback: Ember.K,
+ abortCallback: Ember.K,
+ promiseSuccessCallback: Ember.K,
+
+ /**
+ @private
+ */
+ runNextPromise: function() {
+ if (get(this, 'isDestroyed')) { return; }
+
+ var item = get(this, 'promises').shiftObject();
+ if (item) {
+ var promise = get(item, 'promise') || item;
+ Ember.assert("Cannot find promise to invoke", Ember.canInvoke(promise, 'then'));
+
+ var self = this;
+
+ var successCallback = function() {
+ self.promiseSuccessCallback.call(this, item, arguments);
+ self.runNextPromise();
+ };
+
+ var failureCallback = get(self, 'failureCallback');
+
+ promise.then(successCallback, failureCallback);
+ } else {
+ this.successCallback();
+ }
+ },
+
+ start: function() {
+ this.runNextPromise();
+ return this;
+ },
+
+ abort: function() {
+ this.abortCallback();
+ this.destroy();
+ },
+
+ init: function() {
+ set(this, 'promises', Ember.A(get(this, 'promises')));
+ this._super();
+ }
+});
+
+
+})();
+
+
+
+(function() {
+var loadHooks = {};
+var loaded = {};
+
+Ember.onLoad = function(name, callback) {
+ var object;
+
+ loadHooks[name] = loadHooks[name] || Ember.A();
+ loadHooks[name].pushObject(callback);
+
+ if (object = loaded[name]) {
+ callback(object);
+ }
+};
+
+Ember.runLoadHooks = function(name, object) {
+ var hooks;
+
+ loaded[name] = object;
+
+ if (hooks = loadHooks[name]) {
+ loadHooks[name].forEach(function(callback) {
+ callback(object);
+ });
+ }
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+
+
+(function() {
+Ember.ControllerMixin = Ember.Mixin.create({
+ /**
+ The object to which events from the view should be sent.
+
+ For example, when a Handlebars template uses the `{{action}}` helper,
+ it will attempt to send the event to the view's controller's `target`.
+
+ By default, a controller's `target` is set to the router after it is
+ instantiated by `Ember.Application#initialize`.
+ */
+ target: null,
+ store: null
+});
+
+Ember.Controller = Ember.Object.extend(Ember.ControllerMixin);
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set, forEach = Ember.EnumerableUtils.forEach;
+
+/**
+ @class
+
+ @extends Ember.Mixin
+ @extends Ember.MutableEnumerable
+*/
+Ember.SortableMixin = Ember.Mixin.create(Ember.MutableEnumerable,
+ /** @scope Ember.Observable.prototype */ {
+ sortProperties: null,
+ sortAscending: true,
+
+ addObject: function(obj) {
+ var content = get(this, 'content');
+ content.pushObject(obj);
+ },
+
+ removeObject: function(obj) {
+ var content = get(this, 'content');
+ content.removeObject(obj);
+ },
+
+ orderBy: function(item1, item2) {
+ var result = 0,
+ sortProperties = get(this, 'sortProperties'),
+ sortAscending = get(this, 'sortAscending');
+
+ Ember.assert("you need to define `sortProperties`", !!sortProperties);
+
+ forEach(sortProperties, function(propertyName) {
+ if (result === 0) {
+ result = Ember.compare(get(item1, propertyName), get(item2, propertyName));
+ if ((result !== 0) && !sortAscending) {
+ result = (-1) * result;
+ }
+ }
+ });
+
+ return result;
+ },
+
+ destroy: function() {
+ var content = get(this, 'content'),
+ sortProperties = get(this, 'sortProperties');
+
+ if (content && sortProperties) {
+ forEach(content, function(item) {
+ forEach(sortProperties, function(sortProperty) {
+ Ember.removeObserver(item, sortProperty, this, 'contentItemSortPropertyDidChange');
+ }, this);
+ }, this);
+ }
+
+ return this._super();
+ },
+
+ isSorted: Ember.computed('sortProperties', function() {
+ return !!get(this, 'sortProperties');
+ }),
+
+ arrangedContent: Ember.computed('content', 'sortProperties.@each', function(key, value) {
+ var content = get(this, 'content'),
+ isSorted = get(this, 'isSorted'),
+ sortProperties = get(this, 'sortProperties'),
+ self = this;
+
+ if (content && isSorted) {
+ content = content.slice();
+ content.sort(function(item1, item2) {
+ return self.orderBy(item1, item2);
+ });
+ forEach(content, function(item) {
+ forEach(sortProperties, function(sortProperty) {
+ Ember.addObserver(item, sortProperty, this, 'contentItemSortPropertyDidChange');
+ }, this);
+ }, this);
+ return Ember.A(content);
+ }
+
+ return content;
+ }).cacheable(),
+
+ _contentWillChange: Ember.beforeObserver(function() {
+ var content = get(this, 'content'),
+ sortProperties = get(this, 'sortProperties');
+
+ if (content && sortProperties) {
+ forEach(content, function(item) {
+ forEach(sortProperties, function(sortProperty) {
+ Ember.removeObserver(item, sortProperty, this, 'contentItemSortPropertyDidChange');
+ }, this);
+ }, this);
+ }
+
+ this._super();
+ }, 'content'),
+
+ sortAscendingWillChange: Ember.beforeObserver(function() {
+ this._lastSortAscending = get(this, 'sortAscending');
+ }, 'sortAscending'),
+
+ sortAscendingDidChange: Ember.observer(function() {
+ if (get(this, 'sortAscending') !== this._lastSortAscending) {
+ var arrangedContent = get(this, 'arrangedContent');
+ arrangedContent.reverseObjects();
+ }
+ }, 'sortAscending'),
+
+ contentArrayWillChange: function(array, idx, removedCount, addedCount) {
+ var isSorted = get(this, 'isSorted');
+
+ if (isSorted) {
+ var arrangedContent = get(this, 'arrangedContent');
+ var removedObjects = array.slice(idx, idx+removedCount);
+ var sortProperties = get(this, 'sortProperties');
+
+ forEach(removedObjects, function(item) {
+ arrangedContent.removeObject(item);
+
+ forEach(sortProperties, function(sortProperty) {
+ Ember.removeObserver(item, sortProperty, this, 'contentItemSortPropertyDidChange');
+ }, this);
+ });
+ }
+
+ return this._super(array, idx, removedCount, addedCount);
+ },
+
+ contentArrayDidChange: function(array, idx, removedCount, addedCount) {
+ var isSorted = get(this, 'isSorted'),
+ sortProperties = get(this, 'sortProperties');
+
+ if (isSorted) {
+ var addedObjects = array.slice(idx, idx+addedCount);
+ var arrangedContent = get(this, 'arrangedContent');
+
+ forEach(addedObjects, function(item) {
+ this.insertItemSorted(item);
+
+ forEach(sortProperties, function(sortProperty) {
+ Ember.addObserver(item, sortProperty, this, 'contentItemSortPropertyDidChange');
+ }, this);
+ }, this);
+ }
+
+ return this._super(array, idx, removedCount, addedCount);
+ },
+
+ insertItemSorted: function(item) {
+ var arrangedContent = get(this, 'arrangedContent');
+ var length = get(arrangedContent, 'length');
+
+ var idx = this._binarySearch(item, 0, length);
+ arrangedContent.insertAt(idx, item);
+ },
+
+ contentItemSortPropertyDidChange: function(item) {
+ var arrangedContent = get(this, 'arrangedContent'),
+ index = arrangedContent.indexOf(item);
+
+ arrangedContent.removeObject(item);
+ this.insertItemSorted(item);
+ },
+
+ _binarySearch: function(item, low, high) {
+ var mid, midItem, res, arrangedContent;
+
+ if (low === high) {
+ return low;
+ }
+
+ arrangedContent = get(this, 'arrangedContent');
+
+ mid = low + Math.floor((high - low) / 2);
+ midItem = arrangedContent.objectAt(mid);
+
+ res = this.orderBy(midItem, item);
+
+ if (res < 0) {
+ return this._binarySearch(item, mid+1, high);
+ } else if (res > 0) {
+ return this._binarySearch(item, low, mid);
+ }
+
+ return mid;
+ }
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set;
+
+/**
+ @class
+
+ Ember.ArrayController provides a way for you to publish a collection of objects
+ so that you can easily bind to the collection from a Handlebars #each helper,
+ an Ember.CollectionView, or other controllers.
+
+ The advantage of using an ArrayController is that you only have to set up
+ your view bindings once; to change what's displayed, simply swap out the
+ `content` property on the controller.
+
+ For example, imagine you wanted to display a list of items fetched via an XHR
+ request. Create an Ember.ArrayController and set its `content` property:
+
+ MyApp.listController = Ember.ArrayController.create();
+
+ $.get('people.json', function(data) {
+ MyApp.listController.set('content', data);
+ });
+
+ Then, create a view that binds to your new controller:
+
+ {{#each MyApp.listController}}
+ {{firstName}} {{lastName}}
+ {{/each}}
+
+ Although you are binding to the controller, the behavior of this controller
+ is to pass through any methods or properties to the underlying array. This
+ capability comes from `Ember.ArrayProxy`, which this class inherits from.
+
+ Note: As of this writing, `ArrayController` does not add any functionality
+ to its superclass, `ArrayProxy`. The Ember team plans to add additional
+ controller-specific functionality in the future, e.g. single or multiple
+ selection support. If you are creating something that is conceptually a
+ controller, use this class.
+
+ @extends Ember.ArrayProxy
+*/
+
+Ember.ArrayController = Ember.ArrayProxy.extend(Ember.ControllerMixin,
+ Ember.SortableMixin);
+
+})();
+
+
+
+(function() {
+Ember.ObjectController = Ember.ObjectProxy.extend(Ember.ControllerMixin);
+
+})();
+
+
+
+(function() {
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Runtime
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+var get = Ember.get, set = Ember.set;
+
+/**
+ @class
+
+ An Ember.Application instance serves as the namespace in which you define your
+ application's classes. You can also override the configuration of your
+ application.
+
+ By default, Ember.Application will begin listening for events on the document.
+ If your application is embedded inside a page, instead of controlling the
+ entire document, you can specify which DOM element to attach to by setting
+ the `rootElement` property:
+
+ MyApp = Ember.Application.create({
+ rootElement: $('#my-app')
+ });
+
+ The root of an Ember.Application must not be removed during the course of the
+ page's lifetime. If you have only a single conceptual application for the
+ entire page, and are not embedding any third-party Ember applications
+ in your page, use the default document root for your application.
+
+ You only need to specify the root if your page contains multiple instances
+ of Ember.Application.
+
+ @extends Ember.Object
+*/
+Ember.Application = Ember.Namespace.extend(
+/** @scope Ember.Application.prototype */{
+
+ /**
+ The root DOM element of the Application.
+
+ Can be specified as DOMElement or a selector string.
+
+ @type DOMElement
+ @default 'body'
+ */
+ rootElement: 'body',
+
+ /**
+ @type Ember.EventDispatcher
+ @default null
+ */
+ eventDispatcher: null,
+
+ /**
+ @type Object
+ @default null
+ */
+ customEvents: null,
+
+ /** @private */
+ init: function() {
+ var eventDispatcher,
+ rootElement = get(this, 'rootElement');
+ this._super();
+
+ eventDispatcher = Ember.EventDispatcher.create({
+ rootElement: rootElement
+ });
+
+ set(this, 'eventDispatcher', eventDispatcher);
+
+ // jQuery 1.7 doesn't call the ready callback if already ready
+ if (Ember.$.isReady) {
+ Ember.run.once(this, this.didBecomeReady);
+ } else {
+ var self = this;
+ Ember.$(document).ready(function() {
+ Ember.run.once(self, self.didBecomeReady);
+ });
+ }
+ },
+
+ /**
+ Instantiate all controllers currently available on the namespace
+ and inject them onto a router.
+
+ Example:
+
+ App.PostsController = Ember.ArrayController.extend();
+ App.CommentsController = Ember.ArrayController.extend();
+
+ var router = Ember.Router.create({
+ ...
+ });
+
+ App.initialize(router);
+
+ router.get('postsController') // <App.PostsController:ember1234>
+ router.get('commentsController') // <App.CommentsController:ember1235>
+
+ router.get('postsController.router') // router
+ */
+ initialize: function(router) {
+ var properties = Ember.A(Ember.keys(this)),
+ injections = get(this.constructor, 'injections'),
+ namespace = this, controller, name;
+
+ if (!router && Ember.Router.detect(namespace['Router'])) {
+ router = namespace['Router'].create();
+ this._createdRouter = router;
+ }
+
+ if (router) {
+ set(this, 'router', router);
+
+ // By default, the router's namespace is the current application.
+ //
+ // This allows it to find model classes when a state has a
+ // route like `/posts/:post_id`. In that case, it would first
+ // convert `post_id` into `Post`, and then look it up on its
+ // namespace.
+ set(router, 'namespace', this);
+ }
+
+ Ember.runLoadHooks('application', this);
+
+ injections.forEach(function(injection) {
+ properties.forEach(function(property) {
+ injection[1](namespace, router, property);
+ });
+ });
+
+ if (router && router instanceof Ember.Router) {
+ this.startRouting(router);
+ }
+ },
+
+ /** @private */
+ didBecomeReady: function() {
+ var eventDispatcher = get(this, 'eventDispatcher'),
+ customEvents = get(this, 'customEvents');
+
+ eventDispatcher.setup(customEvents);
+
+ this.ready();
+ },
+
+ /**
+ @private
+
+ If the application has a router, use it to route to the current URL, and
+ trigger a new call to `route` whenever the URL changes.
+ */
+ startRouting: function(router) {
+ var location = get(router, 'location'),
+ rootElement = get(this, 'rootElement'),
+ applicationController = get(router, 'applicationController');
+
+ Ember.assert("ApplicationView and ApplicationController must be defined on your application", (this.ApplicationView && applicationController) );
+
+ var applicationView = this.ApplicationView.create({
+ controller: applicationController
+ });
+ this._createdApplicationView = applicationView;
+
+ applicationView.appendTo(rootElement);
+
+ router.route(location.getURL());
+ location.onUpdateURL(function(url) {
+ router.route(url);
+ });
+ },
+
+ /**
+ Called when the Application has become ready.
+ The call will be delayed until the DOM has become ready.
+ */
+ ready: Ember.K,
+
+ /** @private */
+ willDestroy: function() {
+ get(this, 'eventDispatcher').destroy();
+ if (this._createdRouter) { this._createdRouter.destroy(); }
+ if (this._createdApplicationView) { this._createdApplicationView.destroy(); }
+ },
+
+ registerInjection: function(options) {
+ this.constructor.registerInjection(options);
+ }
+});
+
+Ember.Application.reopenClass({
+ concatenatedProperties: ['injections'],
+ injections: Ember.A(),
+ registerInjection: function(options) {
+ var injections = get(this, 'injections'),
+ before = options.before,
+ name = options.name,
+ injection = options.injection,
+ location;
+
+ if (before) {
+ location = injections.find(function(item) {
+ if (item[0] === before) { return true; }
+ });
+ location = injections.indexOf(location);
+ } else {
+ location = get(injections, 'length');
+ }
+
+ injections.splice(location, 0, [name, injection]);
+ }
+});
+
+Ember.Application.registerInjection({
+ name: 'controllers',
+ injection: function(app, router, property) {
+ if (!/^[A-Z].*Controller$/.test(property)) { return; }
+
+ var name = property.charAt(0).toLowerCase() + property.substr(1),
+ controller = app[property].create();
+
+ router.set(name, controller);
+
+ controller.setProperties({
+ target: router,
+ controllers: router,
+ namespace: app
+ });
+ }
+});
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set;
+
+/**
+ This file implements the `location` API used by Ember's router.
+
+ That API is:
+
+ getURL: returns the current URL
+ setURL(path): sets the current URL
+ onUpdateURL(callback): triggers the callback when the URL changes
+ formatURL(url): formats `url` to be placed into `href` attribute
+
+ Calling setURL will not trigger onUpdateURL callbacks.
+
+ TODO: This, as well as the Ember.Location documentation below, should
+ perhaps be moved so that it's visible in the JsDoc output.
+*/
+/**
+ @class
+
+ Ember.Location returns an instance of the correct implementation of
+ the `location` API.
+
+ You can pass it a `implementation` ('hash', 'history', 'none') to force a
+ particular implementation.
+*/
+Ember.Location = {
+ create: function(options) {
+ var implementation = options && options.implementation;
+ Ember.assert("Ember.Location.create: you must specify a 'implementation' option", !!implementation);
+
+ var implementationClass = this.implementations[implementation];
+ Ember.assert("Ember.Location.create: " + implementation + " is not a valid implementation", !!implementationClass);
+
+ return implementationClass.create.apply(implementationClass, arguments);
+ },
+
+ registerImplementation: function(name, implementation) {
+ this.implementations[name] = implementation;
+ },
+
+ implementations: {}
+};
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set;
+
+/**
+ @class
+
+ Ember.HashLocation implements the location API using the browser's
+ hash. At present, it relies on a hashchange event existing in the
+ browser.
+
+ @extends Ember.Object
+*/
+Ember.HashLocation = Ember.Object.extend(
+/** @scope Ember.HashLocation.prototype */ {
+
+ /** @private */
+ init: function() {
+ set(this, 'location', get(this, 'location') || window.location);
+ },
+
+ /**
+ @private
+
+ Returns the current `location.hash`, minus the '#' at the front.
+ */
+ getURL: function() {
+ return get(this, 'location').hash.substr(1);
+ },
+
+ /**
+ @private
+
+ Set the `location.hash` and remembers what was set. This prevents
+ `onUpdateURL` callbacks from triggering when the hash was set by
+ `HashLocation`.
+ */
+ setURL: function(path) {
+ get(this, 'location').hash = path;
+ set(this, 'lastSetURL', path);
+ },
+
+ /**
+ @private
+
+ Register a callback to be invoked when the hash changes. These
+ callbacks will execute when the user presses the back or forward
+ button, but not after `setURL` is invoked.
+ */
+ onUpdateURL: function(callback) {
+ var self = this;
+ var guid = Ember.guidFor(this);
+
+ Ember.$(window).bind('hashchange.ember-location-'+guid, function() {
+ var path = location.hash.substr(1);
+ if (get(self, 'lastSetURL') === path) { return; }
+
+ set(self, 'lastSetURL', null);
+
+ callback(location.hash.substr(1));
+ });
+ },
+
+ /**
+ @private
+
+ Given a URL, formats it to be placed into the page as part
+ of an element's `href` attribute.
+
+ This is used, for example, when using the {{action}} helper
+ to generate a URL based on an event.
+ */
+ formatURL: function(url) {
+ return '#'+url;
+ },
+
+ /** @private */
+ willDestroy: function() {
+ var guid = Ember.guidFor(this);
+
+ Ember.$(window).unbind('hashchange.ember-location-'+guid);
+ }
+});
+
+Ember.Location.registerImplementation('hash', Ember.HashLocation);
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set;
+
+/**
+ @class
+
+ Ember.HistoryLocation implements the location API using the browser's
+ history.pushState API.
+
+ @extends Ember.Object
+*/
+Ember.HistoryLocation = Ember.Object.extend(
+/** @scope Ember.HistoryLocation.prototype */ {
+
+ /** @private */
+ init: function() {
+ set(this, 'location', get(this, 'location') || window.location);
+ set(this, '_initialURL', get(this, 'location').pathname);
+ },
+
+ /**
+ Will be pre-pended to path upon state change
+ */
+ rootURL: '/',
+
+ /**
+ @private
+
+ Used to give history a starting reference
+ */
+ _initialURL: null,
+
+ /**
+ @private
+
+ Returns the current `location.pathname`.
+ */
+ getURL: function() {
+ return get(this, 'location').pathname;
+ },
+
+ /**
+ @private
+
+ Uses `history.pushState` to update the url without a page reload.
+ */
+ setURL: function(path) {
+ var state = window.history.state,
+ initialURL = get(this, '_initialURL');
+
+ path = this.formatPath(path);
+
+ if ((initialURL !== path && !state) || (state && state.path !== path)) {
+ window.history.pushState({ path: path }, null, path);
+ }
+ },
+
+ /**
+ @private
+
+ Register a callback to be invoked whenever the browser
+ history changes, including using forward and back buttons.
+ */
+ onUpdateURL: function(callback) {
+ var guid = Ember.guidFor(this);
+
+ Ember.$(window).bind('popstate.ember-location-'+guid, function(e) {
+ callback(location.pathname);
+ });
+ },
+
+ /**
+ @private
+
+ returns the given path appended to rootURL
+ */
+ formatPath: function(path) {
+ var rootURL = get(this, 'rootURL');
+
+ if (path !== '') {
+ rootURL = rootURL.replace(/\/$/, '');
+ }
+
+ return rootURL + path;
+ },
+
+ /**
+ @private
+
+ Used when using {{action}} helper. Since no formatting
+ is required we just return the url given.
+ */
+ formatURL: function(url) {
+ return url;
+ },
+
+ /** @private */
+ willDestroy: function() {
+ var guid = Ember.guidFor(this);
+
+ Ember.$(window).unbind('popstate.ember-location-'+guid);
+ }
+});
+
+Ember.Location.registerImplementation('history', Ember.HistoryLocation);
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set;
+
+/**
+ @class
+
+ Ember.NoneLocation does not interact with the browser. It is useful for
+ testing, or when you need to manage state with your Router, but temporarily
+ don't want it to muck with the URL (for example when you embed your
+ application in a larger page).
+
+ @extends Ember.Object
+*/
+Ember.NoneLocation = Ember.Object.extend(
+/** @scope Ember.NoneLocation.prototype */ {
+ path: '',
+
+ getURL: function() {
+ return get(this, 'path');
+ },
+
+ setURL: function(path) {
+ set(this, 'path', path);
+ },
+
+ onUpdateURL: function(callback) {
+ // We are not wired up to the browser, so we'll never trigger the callback.
+ },
+
+ formatURL: function(url) {
+ // The return value is not overly meaningful, but we do not want to throw
+ // errors when test code renders templates containing {{action href=true}}
+ // helpers.
+ return url;
+ }
+});
+
+Ember.Location.registerImplementation('none', Ember.NoneLocation);
+
+})();
+
+
+
+(function() {
+
+})();
+
+
+
+(function() {
+
+})();
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+Ember.assert("Ember Views require jQuery 1.7", window.jQuery && (window.jQuery().jquery.match(/^1\.7(\.\d+)?(pre|rc\d?)?/) || Ember.ENV.FORCE_JQUERY));
+Ember.$ = window.jQuery;
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dndevents
+var dragEvents = Ember.String.w('dragstart drag dragenter dragleave dragover drop dragend');
+
+// Copies the `dataTransfer` property from a browser event object onto the
+// jQuery event object for the specified events
+Ember.EnumerableUtils.forEach(dragEvents, function(eventName) {
+ Ember.$.event.fixHooks[eventName] = { props: ['dataTransfer'] };
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+var get = Ember.get, set = Ember.set;
+var indexOf = Ember.ArrayPolyfills.indexOf;
+
+/** @private */
+var ClassSet = function() {
+ this.seen = {};
+ this.list = [];
+};
+
+ClassSet.prototype = {
+ add: function(string) {
+ if (string in this.seen) { return; }
+ this.seen[string] = true;
+
+ this.list.push(string);
+ },
+
+ toDOM: function() {
+ return this.list.join(" ");
+ }
+};
+
+/**
+ @class
+
+ Ember.RenderBuffer gathers information regarding the a view and generates the
+ final representation. Ember.RenderBuffer will generate HTML which can be pushed
+ to the DOM.
+
+ @extends Ember.Object
+*/
+Ember.RenderBuffer = function(tagName) {
+ return new Ember._RenderBuffer(tagName);
+};
+
+Ember._RenderBuffer = function(tagName) {
+ this.elementTag = tagName;
+ this.childBuffers = [];
+};
+
+Ember._RenderBuffer.prototype =
+/** @scope Ember.RenderBuffer.prototype */ {
+
+ /**
+ Array of class-names which will be applied in the class="" attribute
+
+ You should not maintain this array yourself, rather, you should use
+ the addClass() method of Ember.RenderBuffer.
+
+ @type Array
+ @default []
+ */
+ elementClasses: null,
+
+ /**
+ The id in of the element, to be applied in the id="" attribute
+
+ You should not set this property yourself, rather, you should use
+ the id() method of Ember.RenderBuffer.
+
+ @type String
+ @default null
+ */
+ elementId: null,
+
+ /**
+ A hash keyed on the name of the attribute and whose value will be
+ applied to that attribute. For example, if you wanted to apply a
+ data-view="Foo.bar" property to an element, you would set the
+ elementAttributes hash to {'data-view':'Foo.bar'}
+
+ You should not maintain this hash yourself, rather, you should use
+ the attr() method of Ember.RenderBuffer.
+
+ @type Hash
+ @default {}
+ */
+ elementAttributes: null,
+
+ /**
+ The tagname of the element an instance of Ember.RenderBuffer represents.
+
+ Usually, this gets set as the first parameter to Ember.RenderBuffer. For
+ example, if you wanted to create a `p` tag, then you would call
+
+ Ember.RenderBuffer('p')
+
+ @type String
+ @default null
+ */
+ elementTag: null,
+
+ /**
+ A hash keyed on the name of the style attribute and whose value will
+ be applied to that attribute. For example, if you wanted to apply a
+ background-color:black;" style to an element, you would set the
+ elementStyle hash to {'background-color':'black'}
+
+ You should not maintain this hash yourself, rather, you should use
+ the style() method of Ember.RenderBuffer.
+
+ @type Hash
+ @default {}
+ */
+ elementStyle: null,
+
+ /**
+ Nested RenderBuffers will set this to their parent RenderBuffer
+ instance.
+
+ @type Ember._RenderBuffer
+ */
+ parentBuffer: null,
+
+ /**
+ Adds a string of HTML to the RenderBuffer.
+
+ @param {String} string HTML to push into the buffer
+ @returns {Ember.RenderBuffer} this
+ */
+ push: function(string) {
+ this.childBuffers.push(String(string));
+ return this;
+ },
+
+ /**
+ Adds a class to the buffer, which will be rendered to the class attribute.
+
+ @param {String} className Class name to add to the buffer
+ @returns {Ember.RenderBuffer} this
+ */
+ addClass: function(className) {
+ // lazily create elementClasses
+ var elementClasses = this.elementClasses = (this.elementClasses || new ClassSet());
+ this.elementClasses.add(className);
+
+ return this;
+ },
+
+ /**
+ Sets the elementID to be used for the element.
+
+ @param {String} id
+ @returns {Ember.RenderBuffer} this
+ */
+ id: function(id) {
+ this.elementId = id;
+ return this;
+ },
+
+ // duck type attribute functionality like jQuery so a render buffer
+ // can be used like a jQuery object in attribute binding scenarios.
+
+ /**
+ Adds an attribute which will be rendered to the element.
+
+ @param {String} name The name of the attribute
+ @param {String} value The value to add to the attribute
+ @returns {Ember.RenderBuffer|String} this or the current attribute value
+ */
+ attr: function(name, value) {
+ var attributes = this.elementAttributes = (this.elementAttributes || {});
+
+ if (arguments.length === 1) {
+ return attributes[name];
+ } else {
+ attributes[name] = value;
+ }
+
+ return this;
+ },
+
+ /**
+ Remove an attribute from the list of attributes to render.
+
+ @param {String} name The name of the attribute
+ @returns {Ember.RenderBuffer} this
+ */
+ removeAttr: function(name) {
+ var attributes = this.elementAttributes;
+ if (attributes) { delete attributes[name]; }
+
+ return this;
+ },
+
+ /**
+ Adds a style to the style attribute which will be rendered to the element.
+
+ @param {String} name Name of the style
+ @param {String} value
+ @returns {Ember.RenderBuffer} this
+ */
+ style: function(name, value) {
+ var style = this.elementStyle = (this.elementStyle || {});
+
+ this.elementStyle[name] = value;
+ return this;
+ },
+
+ /**
+ Create a new child render buffer from a parent buffer. Optionally set
+ additional properties on the buffer. Optionally invoke a callback
+ with the newly created buffer.
+
+ This is a primitive method used by other public methods: `begin`,
+ `prepend`, `replaceWith`, `insertAfter`.
+
+ @private
+ @param {String} tagName Tag name to use for the child buffer's element
+ @param {Ember._RenderBuffer} parent The parent render buffer that this
+ buffer should be appended to.
+ @param {Function} fn A callback to invoke with the newly created buffer.
+ @param {Object} other Additional properties to add to the newly created
+ buffer.
+ */
+ newBuffer: function(tagName, parent, fn, other) {
+ var buffer = new Ember._RenderBuffer(tagName);
+ buffer.parentBuffer = parent;
+
+ if (other) { Ember.$.extend(buffer, other); }
+ if (fn) { fn.call(this, buffer); }
+
+ return buffer;
+ },
+
+ /**
+ Replace the current buffer with a new buffer. This is a primitive
+ used by `remove`, which passes `null` for `newBuffer`, and `replaceWith`,
+ which passes the new buffer it created.
+
+ @private
+ @param {Ember._RenderBuffer} buffer The buffer to insert in place of
+ the existing buffer.
+ */
+ replaceWithBuffer: function(newBuffer) {
+ var parent = this.parentBuffer;
+ if (!parent) { return; }
+
+ var childBuffers = parent.childBuffers;
+
+ var index = indexOf.call(childBuffers, this);
+
+ if (newBuffer) {
+ childBuffers.splice(index, 1, newBuffer);
+ } else {
+ childBuffers.splice(index, 1);
+ }
+ },
+
+ /**
+ Creates a new Ember.RenderBuffer object with the provided tagName as
+ the element tag and with its parentBuffer property set to the current
+ Ember.RenderBuffer.
+
+ @param {String} tagName Tag name to use for the child buffer's element
+ @returns {Ember.RenderBuffer} A new RenderBuffer object
+ */
+ begin: function(tagName) {
+ return this.newBuffer(tagName, this, function(buffer) {
+ this.childBuffers.push(buffer);
+ });
+ },
+
+ /**
+ Prepend a new child buffer to the current render buffer.
+
+ @param {String} tagName Tag name to use for the child buffer's element
+ */
+ prepend: function(tagName) {
+ return this.newBuffer(tagName, this, function(buffer) {
+ this.childBuffers.splice(0, 0, buffer);
+ });
+ },
+
+ /**
+ Replace the current buffer with a new render buffer.
+
+ @param {String} tagName Tag name to use for the new buffer's element
+ */
+ replaceWith: function(tagName) {
+ var parentBuffer = this.parentBuffer;
+
+ return this.newBuffer(tagName, parentBuffer, function(buffer) {
+ this.replaceWithBuffer(buffer);
+ });
+ },
+
+ /**
+ Insert a new render buffer after the current render buffer.
+
+ @param {String} tagName Tag name to use for the new buffer's element
+ */
+ insertAfter: function(tagName) {
+ var parentBuffer = get(this, 'parentBuffer');
+
+ return this.newBuffer(tagName, parentBuffer, function(buffer) {
+ var siblings = parentBuffer.childBuffers;
+ var index = indexOf.call(siblings, this);
+ siblings.splice(index + 1, 0, buffer);
+ });
+ },
+
+ /**
+ Closes the current buffer and adds its content to the parentBuffer.
+
+ @returns {Ember.RenderBuffer} The parentBuffer, if one exists. Otherwise, this
+ */
+ end: function() {
+ var parent = this.parentBuffer;
+ return parent || this;
+ },
+
+ remove: function() {
+ this.replaceWithBuffer(null);
+ },
+
+ /**
+ @returns {DOMElement} The element corresponding to the generated HTML
+ of this buffer
+ */
+ element: function() {
+ return Ember.$(this.string())[0];
+ },
+
+ /**
+ Generates the HTML content for this buffer.
+
+ @returns {String} The generated HTMl
+ */
+ string: function() {
+ var content = '', tag = this.elementTag, openTag;
+
+ if (tag) {
+ var id = this.elementId,
+ classes = this.elementClasses,
+ attrs = this.elementAttributes,
+ style = this.elementStyle,
+ styleBuffer = '', prop;
+
+ openTag = ["<" + tag];
+
+ if (id) { openTag.push('id="' + this._escapeAttribute(id) + '"'); }
+ if (classes) { openTag.push('class="' + this._escapeAttribute(classes.toDOM()) + '"'); }
+
+ if (style) {
+ for (prop in style) {
+ if (style.hasOwnProperty(prop)) {
+ styleBuffer += (prop + ':' + this._escapeAttribute(style[prop]) + ';');
+ }
+ }
+
+ openTag.push('style="' + styleBuffer + '"');
+ }
+
+ if (attrs) {
+ for (prop in attrs) {
+ if (attrs.hasOwnProperty(prop)) {
+ openTag.push(prop + '="' + this._escapeAttribute(attrs[prop]) + '"');
+ }
+ }
+ }
+
+ openTag = openTag.join(" ") + '>';
+ }
+
+ var childBuffers = this.childBuffers;
+
+ Ember.ArrayPolyfills.forEach.call(childBuffers, function(buffer) {
+ var stringy = typeof buffer === 'string';
+ content += (stringy ? buffer : buffer.string());
+ });
+
+ if (tag) {
+ return openTag + content + "</" + tag + ">";
+ } else {
+ return content;
+ }
+ },
+
+ _escapeAttribute: function(value) {
+ // Stolen shamelessly from Handlebars
+
+ var escape = {
+ "<": "&lt;",
+ ">": "&gt;",
+ '"': "&quot;",
+ "'": "&#x27;",
+ "`": "&#x60;"
+ };
+
+ var badChars = /&(?!\w+;)|[<>"'`]/g;
+ var possible = /[&<>"'`]/;
+
+ var escapeChar = function(chr) {
+ return escape[chr] || "&amp;";
+ };
+
+ var string = value.toString();
+
+ if(!possible.test(string)) { return string; }
+ return string.replace(badChars, escapeChar);
+ }
+
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+var get = Ember.get, set = Ember.set, fmt = Ember.String.fmt;
+
+/**
+ @ignore
+
+ Ember.EventDispatcher handles delegating browser events to their corresponding
+ Ember.Views. For example, when you click on a view, Ember.EventDispatcher ensures
+ that that view's `mouseDown` method gets called.
+*/
+Ember.EventDispatcher = Ember.Object.extend(
+/** @scope Ember.EventDispatcher.prototype */{
+
+ /**
+ @private
+
+ The root DOM element to which event listeners should be attached. Event
+ listeners will be attached to the document unless this is overridden.
+
+ Can be specified as a DOMElement or a selector string.
+
+ The default body is a string since this may be evaluated before document.body
+ exists in the DOM.
+
+ @type DOMElement
+ @default 'body'
+ */
+ rootElement: 'body',
+
+ /**
+ @private
+
+ Sets up event listeners for standard browser events.
+
+ This will be called after the browser sends a DOMContentReady event. By
+ default, it will set up all of the listeners on the document body. If you
+ would like to register the listeners on a different element, set the event
+ dispatcher's `root` property.
+ */
+ setup: function(addedEvents) {
+ var event, events = {
+ touchstart : 'touchStart',
+ touchmove : 'touchMove',
+ touchend : 'touchEnd',
+ touchcancel : 'touchCancel',
+ keydown : 'keyDown',
+ keyup : 'keyUp',
+ keypress : 'keyPress',
+ mousedown : 'mouseDown',
+ mouseup : 'mouseUp',
+ contextmenu : 'contextMenu',
+ click : 'click',
+ dblclick : 'doubleClick',
+ mousemove : 'mouseMove',
+ focusin : 'focusIn',
+ focusout : 'focusOut',
+ mouseenter : 'mouseEnter',
+ mouseleave : 'mouseLeave',
+ submit : 'submit',
+ input : 'input',
+ change : 'change',
+ dragstart : 'dragStart',
+ drag : 'drag',
+ dragenter : 'dragEnter',
+ dragleave : 'dragLeave',
+ dragover : 'dragOver',
+ drop : 'drop',
+ dragend : 'dragEnd'
+ };
+
+ Ember.$.extend(events, addedEvents || {});
+
+ var rootElement = Ember.$(get(this, 'rootElement'));
+
+ Ember.assert(fmt('You cannot use the same root element (%@) multiple times in an Ember.Application', [rootElement.selector || rootElement[0].tagName]), !rootElement.is('.ember-application'));
+ Ember.assert('You cannot make a new Ember.Application using a root element that is a descendent of an existing Ember.Application', !rootElement.closest('.ember-application').length);
+ Ember.assert('You cannot make a new Ember.Application using a root element that is an ancestor of an existing Ember.Application', !rootElement.find('.ember-application').length);
+
+ rootElement.addClass('ember-application');
+
+ Ember.assert('Unable to add "ember-application" class to rootElement. Make sure you set rootElement to the body or an element in the body.', rootElement.is('.ember-application'));
+
+ for (event in events) {
+ if (events.hasOwnProperty(event)) {
+ this.setupHandler(rootElement, event, events[event]);
+ }
+ }
+ },
+
+ /**
+ @private
+
+ Registers an event listener on the document. If the given event is
+ triggered, the provided event handler will be triggered on the target
+ view.
+
+ If the target view does not implement the event handler, or if the handler
+ returns false, the parent view will be called. The event will continue to
+ bubble to each successive parent view until it reaches the top.
+
+ For example, to have the `mouseDown` method called on the target view when
+ a `mousedown` event is received from the browser, do the following:
+
+ setupHandler('mousedown', 'mouseDown');
+
+ @param {String} event the browser-originated event to listen to
+ @param {String} eventName the name of the method to call on the view
+ */
+ setupHandler: function(rootElement, event, eventName) {
+ var self = this;
+
+ rootElement.delegate('.ember-view', event + '.ember', function(evt, triggeringManager) {
+
+ var view = Ember.View.views[this.id],
+ result = true, manager = null;
+
+ manager = self._findNearestEventManager(view,eventName);
+
+ if (manager && manager !== triggeringManager) {
+ result = self._dispatchEvent(manager, evt, eventName, view);
+ } else if (view) {
+ result = self._bubbleEvent(view,evt,eventName);
+ } else {
+ evt.stopPropagation();
+ }
+
+ return result;
+ });
+
+ rootElement.delegate('[data-ember-action]', event + '.ember', function(evt) {
+ var actionId = Ember.$(evt.currentTarget).attr('data-ember-action'),
+ action = Ember.Handlebars.ActionHelper.registeredActions[actionId],
+ handler = action.handler;
+
+ if (action.eventName === eventName) {
+ return handler(evt);
+ }
+ });
+ },
+
+ /** @private */
+ _findNearestEventManager: function(view, eventName) {
+ var manager = null;
+
+ while (view) {
+ manager = get(view, 'eventManager');
+ if (manager && manager[eventName]) { break; }
+
+ view = get(view, 'parentView');
+ }
+
+ return manager;
+ },
+
+ /** @private */
+ _dispatchEvent: function(object, evt, eventName, view) {
+ var result = true;
+
+ var handler = object[eventName];
+ if (Ember.typeOf(handler) === 'function') {
+ result = handler.call(object, evt, view);
+ // Do not preventDefault in eventManagers.
+ evt.stopPropagation();
+ }
+ else {
+ result = this._bubbleEvent(view, evt, eventName);
+ }
+
+ return result;
+ },
+
+ /** @private */
+ _bubbleEvent: function(view, evt, eventName) {
+ return Ember.run(function() {
+ return view.handleEvent(eventName, evt);
+ });
+ },
+
+ /** @private */
+ destroy: function() {
+ var rootElement = get(this, 'rootElement');
+ Ember.$(rootElement).undelegate('.ember').removeClass('ember-application');
+ return this._super();
+ }
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+// Add a new named queue for rendering views that happens
+// after bindings have synced.
+var queues = Ember.run.queues;
+queues.splice(Ember.$.inArray('actions', queues)+1, 0, 'render');
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set;
+
+Ember.ControllerMixin.reopen({
+
+ target: null,
+ controllers: null,
+ namespace: null,
+ view: null,
+
+ /**
+ `connectOutlet` creates a new instance of a provided view
+ class, wires it up to its associated controller, and
+ assigns the new view to a property on the current controller.
+
+ The purpose of this method is to enable views that use
+ outlets to quickly assign new views for a given outlet.
+
+ For example, an application view's template may look like
+ this:
+
+ <h1>My Blog</h1>
+ {{outlet}}
+
+ The view for this outlet is specified by assigning a
+ `view` property to the application's controller. The
+ following code will assign a new `App.PostsView` to
+ that outlet:
+
+ applicationController.connectOutlet('posts');
+
+ In general, you will also want to assign a controller
+ to the newly created view. By convention, a controller
+ named `postsController` will be assigned as the view's
+ controller.
+
+ In an application initialized using `app.initialize(router)`,
+ `connectOutlet` will look for `postsController` on the
+ router. The initialization process will automatically
+ create an instance of `App.PostsController` called
+ `postsController`, so you don't need to do anything
+ beyond `connectOutlet` to assign your view and wire it
+ up to its associated controller.
+
+ You can supply a `content` for the controller by supplying
+ a final argument after the view class:
+
+ applicationController.connectOutlet('posts', App.Post.find());
+
+ You can specify a particular outlet to use. For example, if your main
+ template looks like:
+
+ <h1>My Blog</h1>
+ {{outlet master}}
+ {{outlet detail}}
+
+ You can assign an `App.PostsView` to the master outlet:
+
+ applicationController.connectOutlet({
+ name: 'posts',
+ outletName: 'master',
+ context: App.Post.find()
+ });
+
+ You can write this as:
+
+ applicationController.connectOutlet('master', 'posts', App.Post.find());
+
+ @param {String} outletName a name for the outlet to set
+ @param {String} name a view/controller pair name
+ @param {Object} context a context object to assign to the
+ controller's `content` property, if a controller can be
+ found (optional)
+ */
+ connectOutlet: function(name, context) {
+ // Normalize arguments. Supported arguments:
+ //
+ // name
+ // name, context
+ // outletName, name
+ // outletName, name, context
+ // options
+ //
+ // The options hash has the following keys:
+ //
+ // name: the name of the controller and view
+ // to use. If this is passed, the name
+ // determines the view and controller.
+ // outletName: the name of the outlet to
+ // fill in. default: 'view'
+ // viewClass: the class of the view to instantiate
+ // controller: the controller instance to pass
+ // to the view
+ // context: an object that should become the
+ // controller's `content` and thus the
+ // template's context.
+
+ var outletName, viewClass, view, controller, options;
+
+ if (Ember.typeOf(context) === 'string') {
+ outletName = name;
+ name = context;
+ context = arguments[2];
+ }
+
+ if (arguments.length === 1) {
+ if (Ember.typeOf(name) === 'object') {
+ options = name;
+ outletName = options.outletName;
+ name = options.name;
+ viewClass = options.viewClass;
+ controller = options.controller;
+ context = options.context;
+ }
+ } else {
+ options = {};
+ }
+
+ outletName = outletName || 'view';
+
+ Ember.assert("You must supply a name or a view class to connectOutlets, but not both", (!!name && !viewClass && !controller) || (!name && !!viewClass));
+
+ if (name) {
+ var namespace = get(this, 'namespace'),
+ controllers = get(this, 'controllers');
+
+ var viewClassName = name.charAt(0).toUpperCase() + name.substr(1) + "View";
+ viewClass = get(namespace, viewClassName);
+ controller = get(controllers, name + 'Controller');
+
+ Ember.assert("The name you supplied " + name + " did not resolve to a view " + viewClassName, !!viewClass);
+ Ember.assert("The name you supplied " + name + " did not resolve to a controller " + name + 'Controller', (!!controller && !!context) || !context);
+ }
+
+ if (controller && context) { controller.set('content', context); }
+ view = viewClass.create();
+ if (controller) { set(view, 'controller', controller); }
+ set(this, outletName, view);
+
+ return view;
+ },
+
+ /**
+ Convenience method to connect controllers. This method makes other controllers
+ available on the controller the method was invoked on.
+
+ For example, to make the `personController` and the `postController` available
+ on the `overviewController`, you would call:
+
+ overviewController.connectControllers('person', 'post');
+
+ @param {String...} controllerNames the controllers to make available
+ */
+ connectControllers: function() {
+ var controllers = get(this, 'controllers'),
+ controllerNames = Array.prototype.slice.apply(arguments),
+ controllerName;
+
+ for (var i=0, l=controllerNames.length; i<l; i++) {
+ controllerName = controllerNames[i] + 'Controller';
+ set(this, controllerName, get(controllers, controllerName));
+ }
+ }
+});
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set, addObserver = Ember.addObserver;
+var meta = Ember.meta, fmt = Ember.String.fmt;
+var a_slice = [].slice;
+var a_forEach = Ember.EnumerableUtils.forEach;
+
+var childViewsProperty = Ember.computed(function() {
+ var childViews = this._childViews;
+
+ var ret = Ember.A();
+
+ a_forEach(childViews, function(view) {
+ if (view.isVirtual) {
+ ret.pushObjects(get(view, 'childViews'));
+ } else {
+ ret.push(view);
+ }
+ });
+
+ return ret;
+}).property().cacheable();
+
+var VIEW_PRESERVES_CONTEXT = Ember.VIEW_PRESERVES_CONTEXT;
+Ember.warn("The way that the {{view}} helper affects templates is about to change. Previously, templates inside child views would use the new view as the context. Soon, views will preserve their parent context when rendering their template. You can opt-in early to the new behavior by setting `ENV.VIEW_PRESERVES_CONTEXT = true`. For more information, see https://gist.github.com/2494968. You should update your templates as soon as possible; this default will change soon, and the option will be eliminated entirely before the 1.0 release.", VIEW_PRESERVES_CONTEXT);
+
+/**
+ @static
+
+ Global hash of shared templates. This will automatically be populated
+ by the build tools so that you can store your Handlebars templates in
+ separate files that get loaded into JavaScript at buildtime.
+
+ @type Hash
+*/
+Ember.TEMPLATES = {};
+
+var invokeForState = {
+ preRender: {},
+ inBuffer: {},
+ hasElement: {},
+ inDOM: {},
+ destroyed: {}
+};
+
+/**
+ @class
+
+ `Ember.View` is the class in Ember responsible for encapsulating templates of HTML
+ content, combining templates with data to render as sections of a page's DOM, and
+ registering and responding to user-initiated events.
+
+ ## HTML Tag
+ The default HTML tag name used for a view's DOM representation is `div`. This can be
+ customized by setting the `tagName` property. The following view class:
+
+ ParagraphView = Ember.View.extend({
+ tagName: 'em'
+ })
+
+ Would result in instances with the following HTML:
+
+ <em id="ember1" class="ember-view"></em>
+
+ ## HTML `class` Attribute
+ The HTML `class` attribute of a view's tag can be set by providing a `classNames` property
+ that is set to an array of strings:
+
+ MyView = Ember.View.extend({
+ classNames: ['my-class', 'my-other-class']
+ })
+
+ Will result in view instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view my-class my-other-class"></div>
+
+ `class` attribute values can also be set by providing a `classNameBindings` property
+ set to an array of properties names for the view. The return value of these properties
+ will be added as part of the value for the view's `class` attribute. These properties
+ can be computed properties:
+
+ MyView = Ember.View.extend({
+ classNameBindings: ['propertyA', 'propertyB'],
+ propertyA: 'from-a',
+ propertyB: function(){
+ if(someLogic){ return 'from-b'; }
+ }.property()
+ })
+
+ Will result in view instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view from-a from-b"></div>
+
+ If the value of a class name binding returns a boolean the property name itself
+ will be used as the class name if the property is true. The class name will
+ not be added if the value is `false` or `undefined`.
+
+ MyView = Ember.View.extend({
+ classNameBindings: ['hovered'],
+ hovered: true
+ })
+
+ Will result in view instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view hovered"></div>
+
+ When using boolean class name bindings you can supply a string value other than the
+ property name for use as the `class` HTML attribute by appending the preferred value after
+ a ":" character when defining the binding:
+
+ MyView = Ember.View.extend({
+ classNameBindings: ['awesome:so-very-cool'],
+ awesome: true
+ })
+
+ Will result in view instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view so-very-cool"></div>
+
+
+ Boolean value class name bindings whose property names are in a camelCase-style
+ format will be converted to a dasherized format:
+
+ MyView = Ember.View.extend({
+ classNameBindings: ['isUrgent'],
+ isUrgent: true
+ })
+
+ Will result in view instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view is-urgent"></div>
+
+
+ Class name bindings can also refer to object values that are found by
+ traversing a path relative to the view itself:
+
+ MyView = Ember.View.extend({
+ classNameBindings: ['messages.empty']
+ messages: Ember.Object.create({
+ empty: true
+ })
+ })
+
+ Will result in view instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view empty"></div>
+
+
+ If you want to add a class name for a property which evaluates to true and
+ and a different class name if it evaluates to false, you can pass a binding
+ like this:
+
+ // Applies 'enabled' class when isEnabled is true and 'disabled' when isEnabled is false
+ Ember.View.create({
+ classNameBindings: ['isEnabled:enabled:disabled']
+ isEnabled: true
+ });
+
+ Will result in view instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view enabled"></div>
+
+ When isEnabled is `false`, the resulting HTML reprensentation looks like this:
+
+ <div id="ember1" class="ember-view disabled"></div>
+
+ This syntax offers the convenience to add a class if a property is `false`:
+
+ // Applies no class when isEnabled is true and class 'disabled' when isEnabled is false
+ Ember.View.create({
+ classNameBindings: ['isEnabled::disabled']
+ isEnabled: true
+ });
+
+ Will result in view instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view"></div>
+
+ When the `isEnabled` property on the view is set to `false`, it will result
+ in view instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view disabled"></div>
+
+
+ Updates to the the value of a class name binding will result in automatic update
+ of the HTML `class` attribute in the view's rendered HTML representation.
+ If the value becomes `false` or `undefined` the class name will be removed.
+
+ Both `classNames` and `classNameBindings` are concatenated properties.
+ See `Ember.Object` documentation for more information about concatenated properties.
+
+ ## HTML Attributes
+ The HTML attribute section of a view's tag can be set by providing an `attributeBindings`
+ property set to an array of property names on the view. The return value of these properties
+ will be used as the value of the view's HTML associated attribute:
+
+ AnchorView = Ember.View.extend({
+ tagName: 'a',
+ attributeBindings: ['href'],
+ href: 'http://google.com'
+ })
+
+ Will result in view instances with an HTML representation of:
+
+ <a id="ember1" class="ember-view" href="http://google.com"></a>
+
+ If the return value of an `attributeBindings` monitored property is a boolean
+ the property will follow HTML's pattern of repeating the attribute's name as
+ its value:
+
+ MyTextInput = Ember.View.extend({
+ tagName: 'input',
+ attributeBindings: ['disabled'],
+ disabled: true
+ })
+
+ Will result in view instances with an HTML representation of:
+
+ <input id="ember1" class="ember-view" disabled="disabled" />
+
+ `attributeBindings` can refer to computed properties:
+
+ MyTextInput = Ember.View.extend({
+ tagName: 'input',
+ attributeBindings: ['disabled'],
+ disabled: function(){
+ if (someLogic) {
+ return true;
+ } else {
+ return false;
+ }
+ }.property()
+ })
+
+ Updates to the the property of an attribute binding will result in automatic update
+ of the HTML attribute in the view's rendered HTML representation.
+
+ `attributeBindings` is a concatenated property. See `Ember.Object` documentation
+ for more information about concatenated properties.
+
+ ## Templates
+ The HTML contents of a view's rendered representation are determined by its template.
+ Templates can be any function that accepts an optional context parameter and returns
+ a string of HTML that will be inserted within the view's tag. Most
+ typically in Ember this function will be a compiled Ember.Handlebars template.
+
+ AView = Ember.View.extend({
+ template: Ember.Handlebars.compile('I am the template')
+ })
+
+ Will result in view instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view">I am the template</div>
+
+ The default context of the compiled template will be the view instance itself:
+
+ AView = Ember.View.extend({
+ template: Ember.Handlebars.compile('Hello {{excitedGreeting}}')
+ })
+
+ aView = AView.create({
+ content: Ember.Object.create({
+ firstName: 'Barry'
+ })
+ excitedGreeting: function(){
+ return this.get("content.firstName") + "!!!"
+ }
+ })
+
+ Will result in an HTML representation of:
+
+ <div id="ember1" class="ember-view">Hello Barry!!!</div>
+
+ Within an Ember application is more common to define a Handlebars templates as
+ part of a page:
+
+ <script type='text/x-handlebars' data-template-name='some-template'>
+ Hello
+ </script>
+
+ And associate it by name using a view's `templateName` property:
+
+ AView = Ember.View.extend({
+ templateName: 'some-template'
+ })
+
+ Using a value for `templateName` that does not have a Handlebars template with a
+ matching `data-template-name` attribute will throw an error.
+
+ Assigning a value to both `template` and `templateName` properties will throw an error.
+
+ For views classes that may have a template later defined (e.g. as the block portion of a `{{view}}`
+ Handlebars helper call in another template or in a subclass), you can provide a `defaultTemplate`
+ property set to compiled template function. If a template is not later provided for the view
+ instance the `defaultTemplate` value will be used:
+
+ AView = Ember.View.extend({
+ defaultTemplate: Ember.Handlebars.compile('I was the default'),
+ template: null,
+ templateName: null
+ })
+
+ Will result in instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view">I was the default</div>
+
+ If a `template` or `templateName` is provided it will take precedence over `defaultTemplate`:
+
+ AView = Ember.View.extend({
+ defaultTemplate: Ember.Handlebars.compile('I was the default')
+ })
+
+ aView = AView.create({
+ template: Ember.Handlebars.compile('I was the template, not default')
+ })
+
+ Will result in the following HTML representation when rendered:
+
+ <div id="ember1" class="ember-view">I was the template, not default</div>
+
+ ## Layouts
+ Views can have a secondary template that wraps their main template. Like
+ primary templates, layouts can be any function that accepts an optional context
+ parameter and returns a string of HTML that will be inserted inside view's tag. Views whose HTML
+ element is self closing (e.g. `<input />`) cannot have a layout and this property will be ignored.
+
+ Most typically in Ember a layout will be a compiled Ember.Handlebars template.
+
+ A view's layout can be set directly with the `layout` property or reference an
+ existing Handlebars template by name with the `layoutName` property.
+
+ A template used as a layout must contain a single use of the Handlebars `{{yield}}`
+ helper. The HTML contents of a view's rendered `template` will be inserted at this location:
+
+ AViewWithLayout = Ember.View.extend({
+ layout: Ember.Handlebars.compile("<div class='my-decorative-class'>{{yield}}</div>")
+ template: Ember.Handlebars.compile("I got wrapped"),
+ })
+
+ Will result in view instances with an HTML representation of:
+
+ <div id="ember1" class="ember-view">
+ <div class="my-decorative-class">
+ I got wrapped
+ </div>
+ </div>
+
+ See `Handlebars.helpers.yield` for more information.
+
+ ## Responding to Browser Events
+ Views can respond to user-initiated events in one of three ways: method implementation,
+ through an event manager, and through `{{action}}` helper use in their template or layout.
+
+ ### Method Implementation
+ Views can respond to user-initiated events by implementing a method that matches the
+ event name. A `jQuery.Event` object will be passed as the argument to this method.
+
+ AView = Ember.View.extend({
+ click: function(event){
+ // will be called when when an instance's
+ // rendered element is clicked
+ }
+ })
+
+ ### Event Managers
+ Views can define an object as their `eventManager` property. This object can then
+ implement methods that match the desired event names. Matching events that occur
+ on the view's rendered HTML or the rendered HTML of any of its DOM descendants
+ will trigger this method. A `jQuery.Event` object will be passed as the first
+ argument to the method and an `Ember.View` object as the second. The `Ember.View`
+ will be the view whose rendered HTML was interacted with. This may be the view with
+ the `eventManager` property or one of its descendent views.
+
+ AView = Ember.View.extend({
+ eventManager: Ember.Object.create({
+ doubleClick: function(event, view){
+ // will be called when when an instance's
+ // rendered element or any rendering
+ // of this views's descendent
+ // elements is clicked
+ }
+ })
+ })
+
+
+ An event defined for an event manager takes precedence over events of the same
+ name handled through methods on the view.
+
+
+ AView = Ember.View.extend({
+ mouseEnter: function(event){
+ // will never trigger.
+ },
+ eventManager: Ember.Object.create({
+ mouseEnter: function(event, view){
+ // takes presedence over AView#mouseEnter
+ }
+ })
+ })
+
+ Similarly a view's event manager will take precedence for events of any views
+ rendered as a descendent. A method name that matches an event name will not be called
+ if the view instance was rendered inside the HTML representation of a view that has
+ an `eventManager` property defined that handles events of the name. Events not handled
+ by the event manager will still trigger method calls on the descendent.
+
+ OuterView = Ember.View.extend({
+ template: Ember.Handlebars.compile("outer {{#view InnerView}}inner{{/view}} outer"),
+ eventManager: Ember.Object.create({
+ mouseEnter: function(event, view){
+ // view might be instance of either
+ // OutsideView or InnerView depending on
+ // where on the page the user interaction occured
+ }
+ })
+ })
+
+ InnerView = Ember.View.extend({
+ click: function(event){
+ // will be called if rendered inside
+ // an OuterView because OuterView's
+ // eventManager doesn't handle click events
+ },
+ mouseEnter: function(event){
+ // will never be called if rendered inside
+ // an OuterView.
+ }
+ })
+
+ ### Handlebars `{{action}}` Helper
+ See `Handlebars.helpers.action`.
+
+ ### Event Names
+ Possible events names for any of the responding approaches described above are:
+
+ Touch events: 'touchStart', 'touchMove', 'touchEnd', 'touchCancel'
+
+ Keyboard events: 'keyDown', 'keyUp', 'keyPress'
+
+ Mouse events: 'mouseDown', 'mouseUp', 'contextMenu', 'click', 'doubleClick', 'mouseMove',
+ 'focusIn', 'focusOut', 'mouseEnter', 'mouseLeave'
+
+ Form events: 'submit', 'change', 'focusIn', 'focusOut', 'input'
+
+ HTML5 drag and drop events: 'dragStart', 'drag', 'dragEnter', 'dragLeave', 'drop', 'dragEnd'
+
+ ## Handlebars `{{view}}` Helper
+ Other `Ember.View` instances can be included as part of a view's template by using the `{{view}}`
+ Handlebars helper. See `Handlebars.helpers.view` for additional information.
+
+ @extends Ember.Object
+ @extends Ember.Evented
+*/
+Ember.View = Ember.Object.extend(Ember.Evented,
+/** @scope Ember.View.prototype */ {
+
+ /** @private */
+ concatenatedProperties: ['classNames', 'classNameBindings', 'attributeBindings'],
+
+ /**
+ @type Boolean
+ @default true
+ @constant
+ */
+ isView: true,
+
+ // ..........................................................
+ // TEMPLATE SUPPORT
+ //
+
+ /**
+ The name of the template to lookup if no template is provided.
+
+ Ember.View will look for a template with this name in this view's
+ `templates` object. By default, this will be a global object
+ shared in `Ember.TEMPLATES`.
+
+ @type String
+ @default null
+ */
+ templateName: null,
+
+ /**
+ The name of the layout to lookup if no layout is provided.
+
+ Ember.View will look for a template with this name in this view's
+ `templates` object. By default, this will be a global object
+ shared in `Ember.TEMPLATES`.
+
+ @type String
+ @default null
+ */
+ layoutName: null,
+
+ /**
+ The hash in which to look for `templateName`.
+
+ @type Ember.Object
+ @default Ember.TEMPLATES
+ */
+ templates: Ember.TEMPLATES,
+
+ /**
+ The template used to render the view. This should be a function that
+ accepts an optional context parameter and returns a string of HTML that
+ will be inserted into the DOM relative to its parent view.
+
+ In general, you should set the `templateName` property instead of setting
+ the template yourself.
+
+ @field
+ @type Function
+ */
+ template: Ember.computed(function(key, value) {
+ if (value !== undefined) { return value; }
+
+ var templateName = get(this, 'templateName'),
+ template = this.templateForName(templateName, 'template');
+
+ return template || get(this, 'defaultTemplate');
+ }).property('templateName').cacheable(),
+
+ /**
+ The controller managing this view. If this property is set, it will be
+ made available for use by the template.
+
+ @type Object
+ */
+ controller: Ember.computed(function(key, value) {
+ var parentView;
+
+ if (arguments.length === 2) {
+ return value;
+ } else {
+ parentView = get(this, 'parentView');
+ return parentView ? get(parentView, 'controller') : null;
+ }
+ }).property().cacheable(),
+
+ /**
+ A view may contain a layout. A layout is a regular template but
+ supersedes the `template` property during rendering. It is the
+ responsibility of the layout template to retrieve the `template`
+ property from the view (or alternatively, call `Handlebars.helpers.yield`,
+ `{{yield}}`) to render it in the correct location.
+
+ This is useful for a view that has a shared wrapper, but which delegates
+ the rendering of the contents of the wrapper to the `template` property
+ on a subclass.
+
+ @field
+ @type Function
+ */
+ layout: Ember.computed(function(key, value) {
+ if (arguments.length === 2) { return value; }
+
+ var layoutName = get(this, 'layoutName'),
+ layout = this.templateForName(layoutName, 'layout');
+
+ return layout || get(this, 'defaultLayout');
+ }).property('layoutName').cacheable(),
+
+ templateForName: function(name, type) {
+ if (!name) { return; }
+
+ var templates = get(this, 'templates'),
+ template = get(templates, name);
+
+ if (!template) {
+ throw new Ember.Error(fmt('%@ - Unable to find %@ "%@".', [this, type, name]));
+ }
+
+ return template;
+ },
+
+ /**
+ The object from which templates should access properties.
+
+ This object will be passed to the template function each time the render
+ method is called, but it is up to the individual function to decide what
+ to do with it.
+
+ By default, this will be the view itself.
+
+ @type Object
+ */
+ context: Ember.computed(function(key, value) {
+ if (arguments.length === 2) {
+ set(this, '_context', value);
+ return value;
+ } else {
+ return get(this, '_context');
+ }
+ }).cacheable(),
+
+ /**
+ @private
+
+ Private copy of the view's template context. This can be set directly
+ by Handlebars without triggering the observer that causes the view
+ to be re-rendered.
+
+ The context of a view is looked up as follows:
+
+ 1. Specified controller
+ 2. Supplied context (usually by Handlebars)
+ 3. `parentView`'s context (for a child of a ContainerView)
+
+ The code in Handlebars that overrides the `_context` property first
+ checks to see whether the view has a specified controller. This is
+ something of a hack and should be revisited.
+ */
+ _context: Ember.computed(function(key, value) {
+ var parentView, controller, context;
+
+ if (arguments.length === 2) {
+ return value;
+ }
+
+ if (VIEW_PRESERVES_CONTEXT) {
+ if (controller = get(this, 'controller')) {
+ return controller;
+ }
+
+ parentView = get(this, '_parentView');
+ if (parentView) {
+ return get(parentView, '_context');
+ }
+ }
+
+ return this;
+ }).cacheable(),
+
+ /**
+ If a value that affects template rendering changes, the view should be
+ re-rendered to reflect the new value.
+
+ @private
+ */
+ _displayPropertyDidChange: Ember.observer(function() {
+ this.rerender();
+ }, 'context', 'controller'),
+
+ /**
+ If the view is currently inserted into the DOM of a parent view, this
+ property will point to the parent of the view.
+
+ @type Ember.View
+ @default null
+ */
+ parentView: Ember.computed(function() {
+ var parent = get(this, '_parentView');
+
+ if (parent && parent.isVirtual) {
+ return get(parent, 'parentView');
+ } else {
+ return parent;
+ }
+ }).property('_parentView').volatile(),
+
+ _parentView: null,
+
+ // return the current view, not including virtual views
+ concreteView: Ember.computed(function() {
+ if (!this.isVirtual) { return this; }
+ else { return get(this, 'parentView'); }
+ }).property('_parentView').volatile(),
+
+ /**
+ If false, the view will appear hidden in DOM.
+
+ @type Boolean
+ @default null
+ */
+ isVisible: true,
+
+ /**
+ Array of child views. You should never edit this array directly.
+ Instead, use appendChild and removeFromParent.
+
+ @private
+ @type Array
+ @default []
+ */
+ childViews: childViewsProperty,
+
+ _childViews: [],
+
+ /**
+ When it's a virtual view, we need to notify the parent that their
+ childViews will change.
+ */
+ _childViewsWillChange: Ember.beforeObserver(function() {
+ if (this.isVirtual) {
+ var parentView = get(this, 'parentView');
+ if (parentView) { Ember.propertyWillChange(parentView, 'childViews'); }
+ }
+ }, 'childViews'),
+
+ /**
+ When it's a virtual view, we need to notify the parent that their
+ childViews did change.
+ */
+ _childViewsDidChange: Ember.observer(function() {
+ if (this.isVirtual) {
+ var parentView = get(this, 'parentView');
+ if (parentView) { Ember.propertyDidChange(parentView, 'childViews'); }
+ }
+ }, 'childViews'),
+
+ /**
+ Return the nearest ancestor that is an instance of the provided
+ class.
+
+ @param {Class} klass Subclass of Ember.View (or Ember.View itself)
+ @returns Ember.View
+ */
+ nearestInstanceOf: function(klass) {
+ var view = get(this, 'parentView');
+
+ while (view) {
+ if(view instanceof klass) { return view; }
+ view = get(view, 'parentView');
+ }
+ },
+
+ /**
+ Return the nearest ancestor that has a given property.
+
+ @param {String} property A property name
+ @returns Ember.View
+ */
+ nearestWithProperty: function(property) {
+ var view = get(this, 'parentView');
+
+ while (view) {
+ if (property in view) { return view; }
+ view = get(view, 'parentView');
+ }
+ },
+
+ /**
+ Return the nearest ancestor whose parent is an instance of
+ `klass`.
+
+ @param {Class} klass Subclass of Ember.View (or Ember.View itself)
+ @returns Ember.View
+ */
+ nearestChildOf: function(klass) {
+ var view = get(this, 'parentView');
+
+ while (view) {
+ if(get(view, 'parentView') instanceof klass) { return view; }
+ view = get(view, 'parentView');
+ }
+ },
+
+ /**
+ Return the nearest ancestor that is an Ember.CollectionView
+
+ @returns Ember.CollectionView
+ */
+ collectionView: Ember.computed(function() {
+ return this.nearestInstanceOf(Ember.CollectionView);
+ }).cacheable(),
+
+ /**
+ Return the nearest ancestor that is a direct child of
+ an Ember.CollectionView
+
+ @returns Ember.View
+ */
+ itemView: Ember.computed(function() {
+ return this.nearestChildOf(Ember.CollectionView);
+ }).cacheable(),
+
+ /**
+ Return the nearest ancestor that has the property
+ `content`.
+
+ @returns Ember.View
+ */
+ contentView: Ember.computed(function() {
+ return this.nearestWithProperty('content');
+ }).cacheable(),
+
+ /**
+ @private
+
+ When the parent view changes, recursively invalidate
+ collectionView, itemView, and contentView
+ */
+ _parentViewDidChange: Ember.observer(function() {
+ if (this.isDestroying) { return; }
+
+ this.invokeRecursively(function(view) {
+ view.propertyDidChange('collectionView');
+ view.propertyDidChange('itemView');
+ view.propertyDidChange('contentView');
+ });
+
+ if (get(this, 'parentView.controller') && !get(this, 'controller')) {
+ this.notifyPropertyChange('controller');
+ }
+ }, '_parentView'),
+
+ _controllerDidChange: Ember.observer(function() {
+ if (this.isDestroying) { return; }
+
+ this.forEachChildView(function(view) {
+ view.propertyDidChange('controller');
+ });
+ }, 'controller'),
+
+ cloneKeywords: function() {
+ var templateData = get(this, 'templateData');
+
+ var keywords = templateData ? Ember.copy(templateData.keywords) : {};
+ set(keywords, 'view', get(this, 'concreteView'));
+ set(keywords, 'controller', get(this, 'controller'));
+
+ return keywords;
+ },
+
+ /**
+ Called on your view when it should push strings of HTML into a
+ Ember.RenderBuffer. Most users will want to override the `template`
+ or `templateName` properties instead of this method.
+
+ By default, Ember.View will look for a function in the `template`
+ property and invoke it with the value of `context`. The value of
+ `context` will be the view's controller unless you override it.
+
+ @param {Ember.RenderBuffer} buffer The render buffer
+ */
+ render: function(buffer) {
+ // If this view has a layout, it is the responsibility of the
+ // the layout to render the view's template. Otherwise, render the template
+ // directly.
+ var template = get(this, 'layout') || get(this, 'template');
+
+ if (template) {
+ var context = get(this, '_context');
+ var keywords = this.cloneKeywords();
+
+ var data = {
+ view: this,
+ buffer: buffer,
+ isRenderData: true,
+ keywords: keywords
+ };
+
+ // Invoke the template with the provided template context, which
+ // is the view by default. A hash of data is also passed that provides
+ // the template with access to the view and render buffer.
+
+ Ember.assert('template must be a function. Did you mean to call Ember.Handlebars.compile("...") or specify templateName instead?', typeof template === 'function');
+ // The template should write directly to the render buffer instead
+ // of returning a string.
+ var output = template(context, { data: data });
+
+ // If the template returned a string instead of writing to the buffer,
+ // push the string onto the buffer.
+ if (output !== undefined) { buffer.push(output); }
+ }
+ },
+
+ invokeForState: function(name) {
+ var stateName = this.state, args, fn;
+
+ // try to find the function for the state in the cache
+ if (fn = invokeForState[stateName][name]) {
+ args = a_slice.call(arguments);
+ args[0] = this;
+
+ return fn.apply(this, args);
+ }
+
+ // otherwise, find and cache the function for this state
+ var parent = this, states = parent.states, state;
+
+ while (states) {
+ state = states[stateName];
+
+ while (state) {
+ fn = state[name];
+
+ if (fn) {
+ invokeForState[stateName][name] = fn;
+
+ args = a_slice.call(arguments, 1);
+ args.unshift(this);
+
+ return fn.apply(this, args);
+ }
+
+ state = state.parentState;
+ }
+
+ states = states.parent;
+ }
+ },
+
+ /**
+ Renders the view again. This will work regardless of whether the
+ view is already in the DOM or not. If the view is in the DOM, the
+ rendering process will be deferred to give bindings a chance
+ to synchronize.
+
+ If children were added during the rendering process using `appendChild`,
+ `rerender` will remove them, because they will be added again
+ if needed by the next `render`.
+
+ In general, if the display of your view changes, you should modify
+ the DOM element directly instead of manually calling `rerender`, which can
+ be slow.
+ */
+ rerender: function() {
+ return this.invokeForState('rerender');
+ },
+
+ clearRenderedChildren: function() {
+ var lengthBefore = this.lengthBeforeRender,
+ lengthAfter = this.lengthAfterRender;
+
+ // If there were child views created during the last call to render(),
+ // remove them under the assumption that they will be re-created when
+ // we re-render.
+
+ // VIEW-TODO: Unit test this path.
+ var childViews = this._childViews;
+ for (var i=lengthAfter-1; i>=lengthBefore; i--) {
+ if (childViews[i]) { childViews[i].destroy(); }
+ }
+ },
+
+ /**
+ @private
+
+ Iterates over the view's `classNameBindings` array, inserts the value
+ of the specified property into the `classNames` array, then creates an
+ observer to update the view's element if the bound property ever changes
+ in the future.
+ */
+ _applyClassNameBindings: function() {
+ var classBindings = get(this, 'classNameBindings'),
+ classNames = get(this, 'classNames'),
+ elem, newClass, dasherizedClass;
+
+ if (!classBindings) { return; }
+
+ // Loop through all of the configured bindings. These will be either
+ // property names ('isUrgent') or property paths relative to the view
+ // ('content.isUrgent')
+ a_forEach(classBindings, function(binding) {
+
+ // Variable in which the old class value is saved. The observer function
+ // closes over this variable, so it knows which string to remove when
+ // the property changes.
+ var oldClass;
+
+ // Set up an observer on the context. If the property changes, toggle the
+ // class name.
+ var observer = function() {
+ // Get the current value of the property
+ newClass = this._classStringForProperty(binding);
+ elem = this.$();
+
+ // If we had previously added a class to the element, remove it.
+ if (oldClass) {
+ elem.removeClass(oldClass);
+ // Also remove from classNames so that if the view gets rerendered,
+ // the class doesn't get added back to the DOM.
+ classNames.removeObject(oldClass);
+ }
+
+ // If necessary, add a new class. Make sure we keep track of it so
+ // it can be removed in the future.
+ if (newClass) {
+ elem.addClass(newClass);
+ oldClass = newClass;
+ } else {
+ oldClass = null;
+ }
+ };
+
+ // Get the class name for the property at its current value
+ dasherizedClass = this._classStringForProperty(binding);
+
+ if (dasherizedClass) {
+ // Ensure that it gets into the classNames array
+ // so it is displayed when we render.
+ classNames.push(dasherizedClass);
+
+ // Save a reference to the class name so we can remove it
+ // if the observer fires. Remember that this variable has
+ // been closed over by the observer.
+ oldClass = dasherizedClass;
+ }
+
+ // Extract just the property name from bindings like 'foo:bar'
+ var parsedPath = Ember.View._parsePropertyPath(binding);
+ addObserver(this, parsedPath.path, observer);
+ }, this);
+ },
+
+ /**
+ Iterates through the view's attribute bindings, sets up observers for each,
+ then applies the current value of the attributes to the passed render buffer.
+
+ @param {Ember.RenderBuffer} buffer
+ */
+ _applyAttributeBindings: function(buffer) {
+ var attributeBindings = get(this, 'attributeBindings'),
+ attributeValue, elem, type;
+
+ if (!attributeBindings) { return; }
+
+ a_forEach(attributeBindings, function(binding) {
+ var split = binding.split(':'),
+ property = split[0],
+ attributeName = split[1] || property;
+
+ // Create an observer to add/remove/change the attribute if the
+ // JavaScript property changes.
+ var observer = function() {
+ elem = this.$();
+ if (!elem) { return; }
+
+ attributeValue = get(this, property);
+
+ Ember.View.applyAttributeBindings(elem, attributeName, attributeValue);
+ };
+
+ addObserver(this, property, observer);
+
+ // Determine the current value and add it to the render buffer
+ // if necessary.
+ attributeValue = get(this, property);
+ Ember.View.applyAttributeBindings(buffer, attributeName, attributeValue);
+ }, this);
+ },
+
+ /**
+ @private
+
+ Given a property name, returns a dasherized version of that
+ property name if the property evaluates to a non-falsy value.
+
+ For example, if the view has property `isUrgent` that evaluates to true,
+ passing `isUrgent` to this method will return `"is-urgent"`.
+ */
+ _classStringForProperty: function(property) {
+ var parsedPath = Ember.View._parsePropertyPath(property);
+ var path = parsedPath.path;
+
+ var val = get(this, path);
+ if (val === undefined && Ember.isGlobalPath(path)) {
+ val = get(window, path);
+ }
+
+ return Ember.View._classStringForValue(path, val, parsedPath.className, parsedPath.falsyClassName);
+ },
+
+ // ..........................................................
+ // ELEMENT SUPPORT
+ //
+
+ /**
+ Returns the current DOM element for the view.
+
+ @field
+ @type DOMElement
+ */
+ element: Ember.computed(function(key, value) {
+ if (value !== undefined) {
+ return this.invokeForState('setElement', value);
+ } else {
+ return this.invokeForState('getElement');
+ }
+ }).property('_parentView').cacheable(),
+
+ /**
+ Returns a jQuery object for this view's element. If you pass in a selector
+ string, this method will return a jQuery object, using the current element
+ as its buffer.
+
+ For example, calling `view.$('li')` will return a jQuery object containing
+ all of the `li` elements inside the DOM element of this view.
+
+ @param {String} [selector] a jQuery-compatible selector string
+ @returns {Ember.CoreQuery} the CoreQuery object for the DOM node
+ */
+ $: function(sel) {
+ return this.invokeForState('$', sel);
+ },
+
+ /** @private */
+ mutateChildViews: function(callback) {
+ var childViews = this._childViews,
+ idx = childViews.length,
+ view;
+
+ while(--idx >= 0) {
+ view = childViews[idx];
+ callback.call(this, view, idx);
+ }
+
+ return this;
+ },
+
+ /** @private */
+ forEachChildView: function(callback) {
+ var childViews = this._childViews;
+
+ if (!childViews) { return this; }
+
+ var len = childViews.length,
+ view, idx;
+
+ for(idx = 0; idx < len; idx++) {
+ view = childViews[idx];
+ callback.call(this, view);
+ }
+
+ return this;
+ },
+
+ /**
+ Appends the view's element to the specified parent element.
+
+ If the view does not have an HTML representation yet, `createElement()`
+ will be called automatically.
+
+ Note that this method just schedules the view to be appended; the DOM
+ element will not be appended to the given element until all bindings have
+ finished synchronizing.
+
+ This is not typically a function that you will need to call directly
+ when building your application. You might consider using Ember.ContainerView
+ instead. If you do need to use appendTo, be sure that the target element you
+ are providing is associated with an Ember.Application and does not have an
+ ancestor element that is associated with an Ember view.
+
+ @param {String|DOMElement|jQuery} A selector, element, HTML string, or jQuery object
+ @returns {Ember.View} receiver
+ */
+ appendTo: function(target) {
+ // Schedule the DOM element to be created and appended to the given
+ // element after bindings have synchronized.
+ this._insertElementLater(function() {
+ Ember.assert("You cannot append to an existing Ember.View. Consider using Ember.ContainerView instead.", !Ember.$(target).is('.ember-view') && !Ember.$(target).parents().is('.ember-view'));
+ this.$().appendTo(target);
+ });
+
+ return this;
+ },
+
+ /**
+ Replaces the content of the specified parent element with this view's element.
+ If the view does not have an HTML representation yet, `createElement()`
+ will be called automatically.
+
+ Note that this method just schedules the view to be appended; the DOM
+ element will not be appended to the given element until all bindings have
+ finished synchronizing
+
+ @param {String|DOMElement|jQuery} A selector, element, HTML string, or jQuery object
+ @returns {Ember.View} received
+ */
+ replaceIn: function(target) {
+ Ember.assert("You cannot replace an existing Ember.View. Consider using Ember.ContainerView instead.", !Ember.$(target).is('.ember-view') && !Ember.$(target).parents().is('.ember-view'));
+
+ this._insertElementLater(function() {
+ Ember.$(target).empty();
+ this.$().appendTo(target);
+ });
+
+ return this;
+ },
+
+ /**
+ @private
+
+ Schedules a DOM operation to occur during the next render phase. This
+ ensures that all bindings have finished synchronizing before the view is
+ rendered.
+
+ To use, pass a function that performs a DOM operation..
+
+ Before your function is called, this view and all child views will receive
+ the `willInsertElement` event. After your function is invoked, this view
+ and all of its child views will receive the `didInsertElement` event.
+
+ view._insertElementLater(function() {
+ this.createElement();
+ this.$().appendTo('body');
+ });
+
+ @param {Function} fn the function that inserts the element into the DOM
+ */
+ _insertElementLater: function(fn) {
+ this._lastInsert = Ember.guidFor(fn);
+ Ember.run.schedule('render', this, this.invokeForState, 'insertElement', fn);
+ },
+
+ /**
+ Appends the view's element to the document body. If the view does
+ not have an HTML representation yet, `createElement()` will be called
+ automatically.
+
+ Note that this method just schedules the view to be appended; the DOM
+ element will not be appended to the document body until all bindings have
+ finished synchronizing.
+
+ @returns {Ember.View} receiver
+ */
+ append: function() {
+ return this.appendTo(document.body);
+ },
+
+ /**
+ Removes the view's element from the element to which it is attached.
+
+ @returns {Ember.View} receiver
+ */
+ remove: function() {
+ // What we should really do here is wait until the end of the run loop
+ // to determine if the element has been re-appended to a different
+ // element.
+ // In the interim, we will just re-render if that happens. It is more
+ // important than elements get garbage collected.
+ this.destroyElement();
+ this.invokeRecursively(function(view) {
+ view.clearRenderedChildren();
+ });
+ },
+
+ /**
+ The ID to use when trying to locate the element in the DOM. If you do not
+ set the elementId explicitly, then the view's GUID will be used instead.
+ This ID must be set at the time the view is created.
+
+ @type String
+ @readOnly
+ */
+ elementId: Ember.computed(function(key, value) {
+ return value !== undefined ? value : Ember.guidFor(this);
+ }).cacheable(),
+
+ /**
+ @private
+
+ TODO: Perhaps this should be removed from the production build somehow.
+ */
+ _elementIdDidChange: Ember.beforeObserver(function() {
+ throw "Changing a view's elementId after creation is not allowed.";
+ }, 'elementId'),
+
+ /**
+ Attempts to discover the element in the parent element. The default
+ implementation looks for an element with an ID of elementId (or the view's
+ guid if elementId is null). You can override this method to provide your
+ own form of lookup. For example, if you want to discover your element
+ using a CSS class name instead of an ID.
+
+ @param {DOMElement} parentElement The parent's DOM element
+ @returns {DOMElement} The discovered element
+ */
+ findElementInParentElement: function(parentElem) {
+ var id = "#" + get(this, 'elementId');
+ return Ember.$(id)[0] || Ember.$(id, parentElem)[0];
+ },
+
+ /**
+ Creates a new renderBuffer with the passed tagName. You can override this
+ method to provide further customization to the buffer if needed. Normally
+ you will not need to call or override this method.
+
+ @returns {Ember.RenderBuffer}
+ */
+ renderBuffer: function(tagName) {
+ tagName = tagName || get(this, 'tagName');
+
+ // Explicitly check for null or undefined, as tagName
+ // may be an empty string, which would evaluate to false.
+ if (tagName === null || tagName === undefined) {
+ tagName = 'div';
+ }
+
+ return Ember.RenderBuffer(tagName);
+ },
+
+ /**
+ Creates a DOM representation of the view and all of its
+ child views by recursively calling the `render()` method.
+
+ After the element has been created, `didInsertElement` will
+ be called on this view and all of its child views.
+
+ @returns {Ember.View} receiver
+ */
+ createElement: function() {
+ if (get(this, 'element')) { return this; }
+
+ var buffer = this.renderToBuffer();
+ set(this, 'element', buffer.element());
+
+ return this;
+ },
+
+ /**
+ Called when a view is going to insert an element into the DOM.
+ */
+ willInsertElement: Ember.K,
+
+ /**
+ Called when the element of the view has been inserted into the DOM.
+ Override this function to do any set up that requires an element in the
+ document body.
+ */
+ didInsertElement: Ember.K,
+
+ /**
+ Called when the view is about to rerender, but before anything has
+ been torn down. This is a good opportunity to tear down any manual
+ observers you have installed based on the DOM state
+ */
+ willRerender: Ember.K,
+
+ /**
+ Run this callback on the current view and recursively on child views.
+
+ @private
+ */
+ invokeRecursively: function(fn) {
+ fn.call(this, this);
+
+ this.forEachChildView(function(view) {
+ view.invokeRecursively(fn);
+ });
+ },
+
+ /**
+ Invalidates the cache for a property on all child views.
+ */
+ invalidateRecursively: function(key) {
+ this.forEachChildView(function(view) {
+ view.propertyDidChange(key);
+ });
+ },
+
+ /**
+ @private
+
+ Invokes the receiver's willInsertElement() method if it exists and then
+ invokes the same on all child views.
+
+ NOTE: In some cases this was called when the element existed. This no longer
+ works so we let people know. We can remove this warning code later.
+ */
+ _notifyWillInsertElement: function() {
+ this.invokeRecursively(function(view) {
+ view.trigger('willInsertElement');
+ });
+ },
+
+ /**
+ @private
+
+ Invokes the receiver's didInsertElement() method if it exists and then
+ invokes the same on all child views.
+ */
+ _notifyDidInsertElement: function() {
+ this.invokeRecursively(function(view) {
+ view.trigger('didInsertElement');
+ });
+ },
+
+ /**
+ @private
+
+ Invokes the receiver's willRerender() method if it exists and then
+ invokes the same on all child views.
+ */
+ _notifyWillRerender: function() {
+ this.invokeRecursively(function(view) {
+ view.trigger('willRerender');
+ });
+ },
+
+ /**
+ Destroys any existing element along with the element for any child views
+ as well. If the view does not currently have a element, then this method
+ will do nothing.
+
+ If you implement willDestroyElement() on your view, then this method will
+ be invoked on your view before your element is destroyed to give you a
+ chance to clean up any event handlers, etc.
+
+ If you write a willDestroyElement() handler, you can assume that your
+ didInsertElement() handler was called earlier for the same element.
+
+ Normally you will not call or override this method yourself, but you may
+ want to implement the above callbacks when it is run.
+
+ @returns {Ember.View} receiver
+ */
+ destroyElement: function() {
+ return this.invokeForState('destroyElement');
+ },
+
+ /**
+ Called when the element of the view is going to be destroyed. Override
+ this function to do any teardown that requires an element, like removing
+ event listeners.
+ */
+ willDestroyElement: function() {},
+
+ /**
+ @private
+
+ Invokes the `willDestroyElement` callback on the view and child views.
+ */
+ _notifyWillDestroyElement: function() {
+ this.invokeRecursively(function(view) {
+ view.trigger('willDestroyElement');
+ });
+ },
+
+ /** @private (nodoc) */
+ _elementWillChange: Ember.beforeObserver(function() {
+ this.forEachChildView(function(view) {
+ Ember.propertyWillChange(view, 'element');
+ });
+ }, 'element'),
+
+ /**
+ @private
+
+ If this view's element changes, we need to invalidate the caches of our
+ child views so that we do not retain references to DOM elements that are
+ no longer needed.
+
+ @observes element
+ */
+ _elementDidChange: Ember.observer(function() {
+ this.forEachChildView(function(view) {
+ Ember.propertyDidChange(view, 'element');
+ });
+ }, 'element'),
+
+ /**
+ Called when the parentView property has changed.
+
+ @function
+ */
+ parentViewDidChange: Ember.K,
+
+ /**
+ @private
+
+ Invoked by the view system when this view needs to produce an HTML
+ representation. This method will create a new render buffer, if needed,
+ then apply any default attributes, such as class names and visibility.
+ Finally, the `render()` method is invoked, which is responsible for
+ doing the bulk of the rendering.
+
+ You should not need to override this method; instead, implement the
+ `template` property, or if you need more control, override the `render`
+ method.
+
+ @param {Ember.RenderBuffer} buffer the render buffer. If no buffer is
+ passed, a default buffer, using the current view's `tagName`, will
+ be used.
+ */
+ renderToBuffer: function(parentBuffer, bufferOperation) {
+ var buffer;
+
+ Ember.run.sync();
+
+ // Determine where in the parent buffer to start the new buffer.
+ // By default, a new buffer will be appended to the parent buffer.
+ // The buffer operation may be changed if the child views array is
+ // mutated by Ember.ContainerView.
+ bufferOperation = bufferOperation || 'begin';
+
+ // If this is the top-most view, start a new buffer. Otherwise,
+ // create a new buffer relative to the original using the
+ // provided buffer operation (for example, `insertAfter` will
+ // insert a new buffer after the "parent buffer").
+ if (parentBuffer) {
+ var tagName = get(this, 'tagName');
+ if (tagName === null || tagName === undefined) {
+ tagName = 'div';
+ }
+
+ buffer = parentBuffer[bufferOperation](tagName);
+ } else {
+ buffer = this.renderBuffer();
+ }
+
+ this.buffer = buffer;
+ this.transitionTo('inBuffer', false);
+
+ this.lengthBeforeRender = this._childViews.length;
+
+ this.beforeRender(buffer);
+ this.render(buffer);
+ this.afterRender(buffer);
+
+ this.lengthAfterRender = this._childViews.length;
+
+ return buffer;
+ },
+
+ beforeRender: function(buffer) {
+ this.applyAttributesToBuffer(buffer);
+ },
+
+ afterRender: Ember.K,
+
+ /**
+ @private
+ */
+ applyAttributesToBuffer: function(buffer) {
+ // Creates observers for all registered class name and attribute bindings,
+ // then adds them to the element.
+ this._applyClassNameBindings();
+
+ // Pass the render buffer so the method can apply attributes directly.
+ // This isn't needed for class name bindings because they use the
+ // existing classNames infrastructure.
+ this._applyAttributeBindings(buffer);
+
+
+ a_forEach(get(this, 'classNames'), function(name){ buffer.addClass(name); });
+ buffer.id(get(this, 'elementId'));
+
+ var role = get(this, 'ariaRole');
+ if (role) {
+ buffer.attr('role', role);
+ }
+
+ if (get(this, 'isVisible') === false) {
+ buffer.style('display', 'none');
+ }
+ },
+
+ // ..........................................................
+ // STANDARD RENDER PROPERTIES
+ //
+
+ /**
+ Tag name for the view's outer element. The tag name is only used when
+ an element is first created. If you change the tagName for an element, you
+ must destroy and recreate the view element.
+
+ By default, the render buffer will use a `<div>` tag for views.
+
+ @type String
+ @default null
+ */
+
+ // We leave this null by default so we can tell the difference between
+ // the default case and a user-specified tag.
+ tagName: null,
+
+ /**
+ The WAI-ARIA role of the control represented by this view. For example, a
+ button may have a role of type 'button', or a pane may have a role of
+ type 'alertdialog'. This property is used by assistive software to help
+ visually challenged users navigate rich web applications.
+
+ The full list of valid WAI-ARIA roles is available at:
+ http://www.w3.org/TR/wai-aria/roles#roles_categorization
+
+ @type String
+ @default null
+ */
+ ariaRole: null,
+
+ /**
+ Standard CSS class names to apply to the view's outer element. This
+ property automatically inherits any class names defined by the view's
+ superclasses as well.
+
+ @type Array
+ @default ['ember-view']
+ */
+ classNames: ['ember-view'],
+
+ /**
+ A list of properties of the view to apply as class names. If the property
+ is a string value, the value of that string will be applied as a class
+ name.
+
+ // Applies the 'high' class to the view element
+ Ember.View.create({
+ classNameBindings: ['priority']
+ priority: 'high'
+ });
+
+ If the value of the property is a Boolean, the name of that property is
+ added as a dasherized class name.
+
+ // Applies the 'is-urgent' class to the view element
+ Ember.View.create({
+ classNameBindings: ['isUrgent']
+ isUrgent: true
+ });
+
+ If you would prefer to use a custom value instead of the dasherized
+ property name, you can pass a binding like this:
+
+ // Applies the 'urgent' class to the view element
+ Ember.View.create({
+ classNameBindings: ['isUrgent:urgent']
+ isUrgent: true
+ });
+
+ This list of properties is inherited from the view's superclasses as well.
+
+ @type Array
+ @default []
+ */
+ classNameBindings: [],
+
+ /**
+ A list of properties of the view to apply as attributes. If the property is
+ a string value, the value of that string will be applied as the attribute.
+
+ // Applies the type attribute to the element
+ // with the value "button", like <div type="button">
+ Ember.View.create({
+ attributeBindings: ['type'],
+ type: 'button'
+ });
+
+ If the value of the property is a Boolean, the name of that property is
+ added as an attribute.
+
+ // Renders something like <div enabled="enabled">
+ Ember.View.create({
+ attributeBindings: ['enabled'],
+ enabled: true
+ });
+ */
+ attributeBindings: [],
+
+ state: 'preRender',
+
+ // .......................................................
+ // CORE DISPLAY METHODS
+ //
+
+ /**
+ @private
+
+ Setup a view, but do not finish waking it up.
+ - configure childViews
+ - register the view with the global views hash, which is used for event
+ dispatch
+ */
+ init: function() {
+ this._super();
+
+ // Register the view for event handling. This hash is used by
+ // Ember.EventDispatcher to dispatch incoming events.
+ if (!this.isVirtual) Ember.View.views[get(this, 'elementId')] = this;
+
+ // setup child views. be sure to clone the child views array first
+ this._childViews = this._childViews.slice();
+
+ Ember.assert("Only arrays are allowed for 'classNameBindings'", Ember.typeOf(this.classNameBindings) === 'array');
+ this.classNameBindings = Ember.A(this.classNameBindings.slice());
+
+ Ember.assert("Only arrays are allowed for 'classNames'", Ember.typeOf(this.classNames) === 'array');
+ this.classNames = Ember.A(this.classNames.slice());
+
+ var viewController = get(this, 'viewController');
+ if (viewController) {
+ viewController = get(viewController);
+ if (viewController) {
+ set(viewController, 'view', this);
+ }
+ }
+ },
+
+ appendChild: function(view, options) {
+ return this.invokeForState('appendChild', view, options);
+ },
+
+ /**
+ Removes the child view from the parent view.
+
+ @param {Ember.View} view
+ @returns {Ember.View} receiver
+ */
+ removeChild: function(view) {
+ // If we're destroying, the entire subtree will be
+ // freed, and the DOM will be handled separately,
+ // so no need to mess with childViews.
+ if (this.isDestroying) { return; }
+
+ // update parent node
+ set(view, '_parentView', null);
+
+ // remove view from childViews array.
+ var childViews = this._childViews;
+
+ Ember.EnumerableUtils.removeObject(childViews, view);
+
+ this.propertyDidChange('childViews'); // HUH?! what happened to will change?
+
+ return this;
+ },
+
+ /**
+ Removes all children from the parentView.
+
+ @returns {Ember.View} receiver
+ */
+ removeAllChildren: function() {
+ return this.mutateChildViews(function(view) {
+ this.removeChild(view);
+ });
+ },
+
+ destroyAllChildren: function() {
+ return this.mutateChildViews(function(view) {
+ view.destroy();
+ });
+ },
+
+ /**
+ Removes the view from its parentView, if one is found. Otherwise
+ does nothing.
+
+ @returns {Ember.View} receiver
+ */
+ removeFromParent: function() {
+ var parent = get(this, '_parentView');
+
+ // Remove DOM element from parent
+ this.remove();
+
+ if (parent) { parent.removeChild(this); }
+ return this;
+ },
+
+ /**
+ You must call `destroy` on a view to destroy the view (and all of its
+ child views). This will remove the view from any parent node, then make
+ sure that the DOM element managed by the view can be released by the
+ memory manager.
+ */
+ willDestroy: function() {
+ // calling this._super() will nuke computed properties and observers,
+ // so collect any information we need before calling super.
+ var childViews = this._childViews,
+ parent = get(this, '_parentView'),
+ childLen;
+
+ // destroy the element -- this will avoid each child view destroying
+ // the element over and over again...
+ if (!this.removedFromDOM) { this.destroyElement(); }
+
+ // remove from non-virtual parent view if viewName was specified
+ if (this.viewName) {
+ var nonVirtualParentView = get(this, 'parentView');
+ if (nonVirtualParentView) {
+ set(nonVirtualParentView, this.viewName, null);
+ }
+ }
+
+ // remove from parent if found. Don't call removeFromParent,
+ // as removeFromParent will try to remove the element from
+ // the DOM again.
+ if (parent) { parent.removeChild(this); }
+
+ this.state = 'destroyed';
+
+ childLen = childViews.length;
+ for (var i=childLen-1; i>=0; i--) {
+ childViews[i].removedFromDOM = true;
+ childViews[i].destroy();
+ }
+
+ // next remove view from global hash
+ if (!this.isVirtual) delete Ember.View.views[get(this, 'elementId')];
+ },
+
+ /**
+ Instantiates a view to be added to the childViews array during view
+ initialization. You generally will not call this method directly unless
+ you are overriding createChildViews(). Note that this method will
+ automatically configure the correct settings on the new view instance to
+ act as a child of the parent.
+
+ @param {Class} viewClass
+ @param {Hash} [attrs] Attributes to add
+ @returns {Ember.View} new instance
+ @test in createChildViews
+ */
+ createChildView: function(view, attrs) {
+ if (Ember.View.detect(view)) {
+ attrs = attrs || {};
+ attrs._parentView = this;
+ attrs.templateData = attrs.templateData || get(this, 'templateData');
+
+ view = view.create(attrs);
+
+ // don't set the property on a virtual view, as they are invisible to
+ // consumers of the view API
+ if (view.viewName) { set(get(this, 'concreteView'), view.viewName, view); }
+ } else {
+ Ember.assert('You must pass instance or subclass of View', view instanceof Ember.View);
+ Ember.assert("You can only pass attributes when a class is provided", !attrs);
+
+ if (!get(view, 'templateData')) {
+ set(view, 'templateData', get(this, 'templateData'));
+ }
+
+ set(view, '_parentView', this);
+ }
+
+ return view;
+ },
+
+ becameVisible: Ember.K,
+ becameHidden: Ember.K,
+
+ /**
+ @private
+
+ When the view's `isVisible` property changes, toggle the visibility
+ element of the actual DOM element.
+ */
+ _isVisibleDidChange: Ember.observer(function() {
+ var $el = this.$();
+ if (!$el) { return; }
+
+ var isVisible = get(this, 'isVisible');
+
+ $el.toggle(isVisible);
+
+ if (this._isAncestorHidden()) { return; }
+
+ if (isVisible) {
+ this._notifyBecameVisible();
+ } else {
+ this._notifyBecameHidden();
+ }
+ }, 'isVisible'),
+
+ _notifyBecameVisible: function() {
+ this.trigger('becameVisible');
+
+ this.forEachChildView(function(view) {
+ var isVisible = get(view, 'isVisible');
+
+ if (isVisible || isVisible === null) {
+ view._notifyBecameVisible();
+ }
+ });
+ },
+
+ _notifyBecameHidden: function() {
+ this.trigger('becameHidden');
+ this.forEachChildView(function(view) {
+ var isVisible = get(view, 'isVisible');
+
+ if (isVisible || isVisible === null) {
+ view._notifyBecameHidden();
+ }
+ });
+ },
+
+ _isAncestorHidden: function() {
+ var parent = get(this, 'parentView');
+
+ while (parent) {
+ if (get(parent, 'isVisible') === false) { return true; }
+
+ parent = get(parent, 'parentView');
+ }
+
+ return false;
+ },
+
+ clearBuffer: function() {
+ this.invokeRecursively(function(view) {
+ this.buffer = null;
+ });
+ },
+
+ transitionTo: function(state, children) {
+ this.state = state;
+
+ if (children !== false) {
+ this.forEachChildView(function(view) {
+ view.transitionTo(state);
+ });
+ }
+ },
+
+ /**
+ @private
+
+ Override the default event firing from Ember.Evented to
+ also call methods with the given name.
+ */
+ trigger: function(name) {
+ this._super.apply(this, arguments);
+ var method = this[name];
+ if (method) {
+ var args = [], i, l;
+ for (i = 1, l = arguments.length; i < l; i++) {
+ args.push(arguments[i]);
+ }
+ return method.apply(this, args);
+ }
+ },
+
+ has: function(name) {
+ return Ember.typeOf(this[name]) === 'function' || this._super(name);
+ },
+
+ // .......................................................
+ // EVENT HANDLING
+ //
+
+ /**
+ @private
+
+ Handle events from `Ember.EventDispatcher`
+ */
+ handleEvent: function(eventName, evt) {
+ return this.invokeForState('handleEvent', eventName, evt);
+ }
+
+});
+
+/**
+ Describe how the specified actions should behave in the various
+ states that a view can exist in. Possible states:
+
+ * preRender: when a view is first instantiated, and after its
+ element was destroyed, it is in the preRender state
+ * inBuffer: once a view has been rendered, but before it has
+ been inserted into the DOM, it is in the inBuffer state
+ * inDOM: once a view has been inserted into the DOM it is in
+ the inDOM state. A view spends the vast majority of its
+ existence in this state.
+ * destroyed: once a view has been destroyed (using the destroy
+ method), it is in this state. No further actions can be invoked
+ on a destroyed view.
+*/
+
+ // in the destroyed state, everything is illegal
+
+ // before rendering has begun, all legal manipulations are noops.
+
+ // inside the buffer, legal manipulations are done on the buffer
+
+ // once the view has been inserted into the DOM, legal manipulations
+ // are done on the DOM element.
+
+/** @private */
+var DOMManager = {
+ prepend: function(view, childView) {
+ childView._insertElementLater(function() {
+ var element = view.$();
+ element.prepend(childView.$());
+ });
+ },
+
+ after: function(view, nextView) {
+ nextView._insertElementLater(function() {
+ var element = view.$();
+ element.after(nextView.$());
+ });
+ },
+
+ replace: function(view) {
+ var element = get(view, 'element');
+
+ set(view, 'element', null);
+
+ view._insertElementLater(function() {
+ Ember.$(element).replaceWith(get(view, 'element'));
+ });
+ },
+
+ remove: function(view) {
+ var elem = get(view, 'element');
+
+ set(view, 'element', null);
+ view._lastInsert = null;
+
+ Ember.$(elem).remove();
+ },
+
+ empty: function(view) {
+ view.$().empty();
+ }
+};
+
+Ember.View.reopen({
+ states: Ember.View.states,
+ domManager: DOMManager
+});
+
+Ember.View.reopenClass({
+
+ /**
+ @private
+
+ Parse a path and return an object which holds the parsed properties.
+
+ For example a path like "content.isEnabled:enabled:disabled" wil return the
+ following object:
+
+ {
+ path: "content.isEnabled",
+ className: "enabled",
+ falsyClassName: "disabled",
+ classNames: ":enabled:disabled"
+ }
+
+ */
+ _parsePropertyPath: function(path) {
+ var split = path.split(/:/),
+ propertyPath = split[0],
+ classNames = "",
+ className,
+ falsyClassName;
+
+ // check if the property is defined as prop:class or prop:trueClass:falseClass
+ if (split.length > 1) {
+ className = split[1];
+ if (split.length === 3) { falsyClassName = split[2]; }
+
+ classNames = ':' + className;
+ if (falsyClassName) { classNames += ":" + falsyClassName; }
+ }
+
+ return {
+ path: propertyPath,
+ classNames: classNames,
+ className: (className === '') ? undefined : className,
+ falsyClassName: falsyClassName
+ };
+ },
+
+ /**
+ @private
+
+ Get the class name for a given value, based on the path, optional className
+ and optional falsyClassName.
+
+ - if the value is truthy and a className is defined, the className is returned
+ - if the value is true, the dasherized last part of the supplied path is returned
+ - if the value is false and a falsyClassName is supplied, the falsyClassName is returned
+ - if the value is truthy, the value is returned
+ - if none of the above rules apply, null is returned
+
+ */
+ _classStringForValue: function(path, val, className, falsyClassName) {
+ // If the value is truthy and we're using the colon syntax,
+ // we should return the className directly
+ if (!!val && className) {
+ return className;
+
+ // If value is a Boolean and true, return the dasherized property
+ // name.
+ } else if (val === true) {
+ // catch syntax like isEnabled::not-enabled
+ if (val === true && !className && falsyClassName) { return null; }
+
+ // Normalize property path to be suitable for use
+ // as a class name. For exaple, content.foo.barBaz
+ // becomes bar-baz.
+ var parts = path.split('.');
+ return Ember.String.dasherize(parts[parts.length-1]);
+
+ // If the value is false and a falsyClassName is specified, return it
+ } else if (val === false && falsyClassName) {
+ return falsyClassName;
+
+ // If the value is not false, undefined, or null, return the current
+ // value of the property.
+ } else if (val !== false && val !== undefined && val !== null) {
+ return val;
+
+ // Nothing to display. Return null so that the old class is removed
+ // but no new class is added.
+ } else {
+ return null;
+ }
+ }
+});
+
+// Create a global view hash.
+Ember.View.views = {};
+
+// If someone overrides the child views computed property when
+// defining their class, we want to be able to process the user's
+// supplied childViews and then restore the original computed property
+// at view initialization time. This happens in Ember.ContainerView's init
+// method.
+Ember.View.childViewsProperty = childViewsProperty;
+
+Ember.View.applyAttributeBindings = function(elem, name, value) {
+ var type = Ember.typeOf(value);
+ var currentValue = elem.attr(name);
+
+ // if this changes, also change the logic in ember-handlebars/lib/helpers/binding.js
+ if ((type === 'string' || (type === 'number' && !isNaN(value))) && value !== currentValue) {
+ elem.attr(name, value);
+ } else if (value && type === 'boolean') {
+ elem.attr(name, name);
+ } else if (!value) {
+ elem.removeAttr(name);
+ }
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set;
+
+Ember.View.states = {
+ _default: {
+ // appendChild is only legal while rendering the buffer.
+ appendChild: function() {
+ throw "You can't use appendChild outside of the rendering process";
+ },
+
+ $: function() {
+ return undefined;
+ },
+
+ getElement: function() {
+ return null;
+ },
+
+ // Handle events from `Ember.EventDispatcher`
+ handleEvent: function() {
+ return true; // continue event propagation
+ },
+
+ destroyElement: function(view) {
+ set(view, 'element', null);
+ view._lastInsert = null;
+ return view;
+ }
+ }
+};
+
+Ember.View.reopen({
+ states: Ember.View.states
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+Ember.View.states.preRender = {
+ parentState: Ember.View.states._default,
+
+ // a view leaves the preRender state once its element has been
+ // created (createElement).
+ insertElement: function(view, fn) {
+ if (view._lastInsert !== Ember.guidFor(fn)){
+ return;
+ }
+ view.createElement();
+ view._notifyWillInsertElement();
+ // after createElement, the view will be in the hasElement state.
+ fn.call(view);
+ view.transitionTo('inDOM');
+ view._notifyDidInsertElement();
+ },
+
+ empty: Ember.K,
+
+ setElement: function(view, value) {
+ if (value !== null) {
+ view.transitionTo('hasElement');
+ }
+ return value;
+ }
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set, meta = Ember.meta;
+
+Ember.View.states.inBuffer = {
+ parentState: Ember.View.states._default,
+
+ $: function(view, sel) {
+ // if we don't have an element yet, someone calling this.$() is
+ // trying to update an element that isn't in the DOM. Instead,
+ // rerender the view to allow the render method to reflect the
+ // changes.
+ view.rerender();
+ return Ember.$();
+ },
+
+ // when a view is rendered in a buffer, rerendering it simply
+ // replaces the existing buffer with a new one
+ rerender: function(view) {
+ Ember.deprecate("Something you did caused a view to re-render after it rendered but before it was inserted into the DOM. Because this is avoidable and the cause of significant performance issues in applications, this behavior is deprecated. If you want to use the debugger to find out what caused this, you can set ENV.RAISE_ON_DEPRECATION to true.");
+
+ view._notifyWillRerender();
+
+ view.clearRenderedChildren();
+ view.renderToBuffer(view.buffer, 'replaceWith');
+ },
+
+ // when a view is rendered in a buffer, appending a child
+ // view will render that view and append the resulting
+ // buffer into its buffer.
+ appendChild: function(view, childView, options) {
+ var buffer = view.buffer;
+
+ childView = this.createChildView(childView, options);
+ view._childViews.push(childView);
+
+ childView.renderToBuffer(buffer);
+
+ view.propertyDidChange('childViews');
+
+ return childView;
+ },
+
+ // when a view is rendered in a buffer, destroying the
+ // element will simply destroy the buffer and put the
+ // state back into the preRender state.
+ destroyElement: function(view) {
+ view.clearBuffer();
+ view._notifyWillDestroyElement();
+ view.transitionTo('preRender');
+
+ return view;
+ },
+
+ empty: function() {
+ Ember.assert("Emptying a view in the inBuffer state is not allowed and should not happen under normal circumstances. Most likely there is a bug in your application. This may be due to excessive property change notifications.");
+ },
+
+ // It should be impossible for a rendered view to be scheduled for
+ // insertion.
+ insertElement: function() {
+ throw "You can't insert an element that has already been rendered";
+ },
+
+ setElement: function(view, value) {
+ if (value === null) {
+ view.transitionTo('preRender');
+ } else {
+ view.clearBuffer();
+ view.transitionTo('hasElement');
+ }
+
+ return value;
+ }
+};
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set, meta = Ember.meta;
+
+Ember.View.states.hasElement = {
+ parentState: Ember.View.states._default,
+
+ $: function(view, sel) {
+ var elem = get(view, 'element');
+ return sel ? Ember.$(sel, elem) : Ember.$(elem);
+ },
+
+ getElement: function(view) {
+ var parent = get(view, 'parentView');
+ if (parent) { parent = get(parent, 'element'); }
+ if (parent) { return view.findElementInParentElement(parent); }
+ return Ember.$("#" + get(view, 'elementId'))[0];
+ },
+
+ setElement: function(view, value) {
+ if (value === null) {
+ view.transitionTo('preRender');
+ } else {
+ throw "You cannot set an element to a non-null value when the element is already in the DOM.";
+ }
+
+ return value;
+ },
+
+ // once the view has been inserted into the DOM, rerendering is
+ // deferred to allow bindings to synchronize.
+ rerender: function(view) {
+ view._notifyWillRerender();
+
+ view.clearRenderedChildren();
+
+ view.domManager.replace(view);
+ return view;
+ },
+
+ // once the view is already in the DOM, destroying it removes it
+ // from the DOM, nukes its element, and puts it back into the
+ // preRender state if inDOM.
+
+ destroyElement: function(view) {
+ view._notifyWillDestroyElement();
+ view.domManager.remove(view);
+ return view;
+ },
+
+ empty: function(view) {
+ var _childViews = view._childViews, len, idx;
+ if (_childViews) {
+ len = _childViews.length;
+ for (idx = 0; idx < len; idx++) {
+ _childViews[idx]._notifyWillDestroyElement();
+ }
+ }
+ view.domManager.empty(view);
+ },
+
+ // Handle events from `Ember.EventDispatcher`
+ handleEvent: function(view, eventName, evt) {
+ if (view.has(eventName)) {
+ // Handler should be able to re-dispatch events, so we don't
+ // preventDefault or stopPropagation.
+ return view.trigger(eventName, evt);
+ } else {
+ return true; // continue event propagation
+ }
+ }
+};
+
+Ember.View.states.inDOM = {
+ parentState: Ember.View.states.hasElement,
+
+ insertElement: function(view, fn) {
+ if (view._lastInsert !== Ember.guidFor(fn)){
+ return;
+ }
+ throw "You can't insert an element into the DOM that has already been inserted";
+ }
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var destroyedError = "You can't call %@ on a destroyed view", fmt = Ember.String.fmt;
+
+Ember.View.states.destroyed = {
+ parentState: Ember.View.states._default,
+
+ appendChild: function() {
+ throw fmt(destroyedError, ['appendChild']);
+ },
+ rerender: function() {
+ throw fmt(destroyedError, ['rerender']);
+ },
+ destroyElement: function() {
+ throw fmt(destroyedError, ['destroyElement']);
+ },
+ empty: function() {
+ throw fmt(destroyedError, ['empty']);
+ },
+
+ setElement: function() {
+ throw fmt(destroyedError, ["set('element', ...)"]);
+ },
+
+ // Since element insertion is scheduled, don't do anything if
+ // the view has been destroyed between scheduling and execution
+ insertElement: Ember.K
+};
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set, meta = Ember.meta;
+var forEach = Ember.EnumerableUtils.forEach;
+
+var childViewsProperty = Ember.computed(function() {
+ return get(this, '_childViews');
+}).property('_childViews').cacheable();
+
+/**
+ @class
+
+ A `ContainerView` is an `Ember.View` subclass that allows for manual or programatic
+ management of a view's `childViews` array that will correctly update the `ContainerView`
+ instance's rendered DOM representation.
+
+ ## Setting Initial Child Views
+ The initial array of child views can be set in one of two ways. You can provide
+ a `childViews` property at creation time that contains instance of `Ember.View`:
+
+
+ aContainer = Ember.ContainerView.create({
+ childViews: [Ember.View.create(), Ember.View.create()]
+ })
+
+ You can also provide a list of property names whose values are instances of `Ember.View`:
+
+ aContainer = Ember.ContainerView.create({
+ childViews: ['aView', 'bView', 'cView'],
+ aView: Ember.View.create(),
+ bView: Ember.View.create()
+ cView: Ember.View.create()
+ })
+
+ The two strategies can be combined:
+
+ aContainer = Ember.ContainerView.create({
+ childViews: ['aView', Ember.View.create()],
+ aView: Ember.View.create()
+ })
+
+ Each child view's rendering will be inserted into the container's rendered HTML in the same
+ order as its position in the `childViews` property.
+
+ ## Adding and Removing Child Views
+ The views in a container's `childViews` array should be added and removed by manipulating
+ the `childViews` property directly.
+
+ To remove a view pass that view into a `removeObject` call on the container's `childViews` property.
+
+ Given an empty `<body>` the following code
+
+ aContainer = Ember.ContainerView.create({
+ classNames: ['the-container'],
+ childViews: ['aView', 'bView'],
+ aView: Ember.View.create({
+ template: Ember.Handlebars.compile("A")
+ }),
+ bView: Ember.View.create({
+ template: Ember.Handlebars.compile("B")
+ })
+ })
+
+ aContainer.appendTo('body')
+
+ Results in the HTML
+
+ <div class="ember-view the-container">
+ <div class="ember-view">A</div>
+ <div class="ember-view">B</div>
+ </div>
+
+ Removing a view
+
+ aContainer.get('childViews') // [aContainer.aView, aContainer.bView]
+ aContainer.get('childViews').removeObject(aContainer.get('bView'))
+ aContainer.get('childViews') // [aContainer.aView]
+
+ Will result in the following HTML
+
+ <div class="ember-view the-container">
+ <div class="ember-view">A</div>
+ </div>
+
+
+ Similarly, adding a child view is accomplished by adding `Ember.View` instances to the
+ container's `childViews` property.
+
+ Given an empty `<body>` the following code
+
+ aContainer = Ember.ContainerView.create({
+ classNames: ['the-container'],
+ childViews: ['aView', 'bView'],
+ aView: Ember.View.create({
+ template: Ember.Handlebars.compile("A")
+ }),
+ bView: Ember.View.create({
+ template: Ember.Handlebars.compile("B")
+ })
+ })
+
+ aContainer.appendTo('body')
+
+ Results in the HTML
+
+ <div class="ember-view the-container">
+ <div class="ember-view">A</div>
+ <div class="ember-view">B</div>
+ </div>
+
+ Adding a view
+
+ AnotherViewClass = Ember.View.extend({
+ template: Ember.Handlebars.compile("Another view")
+ })
+
+ aContainer.get('childViews') // [aContainer.aView, aContainer.bView]
+ aContainer.get('childViews').pushObject(AnotherViewClass.create())
+ aContainer.get('childViews') // [aContainer.aView, aContainer.bView, <AnotherViewClass instance>]
+
+ Will result in the following HTML
+
+ <div class="ember-view the-container">
+ <div class="ember-view">A</div>
+ <div class="ember-view">B</div>
+ <div class="ember-view">Another view</div>
+ </div>
+
+
+ Direct manipulation of childViews presence or absence in the DOM via calls to
+ `remove` or `removeFromParent` or calls to a container's `removeChild` may not behave
+ correctly.
+
+ Calling `remove()` on a child view will remove the view's HTML, but it will remain as part of its
+ container's `childView`s property.
+
+ Calling `removeChild()` on the container will remove the passed view instance from the container's
+ `childView`s but keep its HTML within the container's rendered view.
+
+ Calling `removeFromParent()` behaves as expected but should be avoided in favor of direct
+ manipulation of a container's `childViews` property.
+
+ aContainer = Ember.ContainerView.create({
+ classNames: ['the-container'],
+ childViews: ['aView', 'bView'],
+ aView: Ember.View.create({
+ template: Ember.Handlebars.compile("A")
+ }),
+ bView: Ember.View.create({
+ template: Ember.Handlebars.compile("B")
+ })
+ })
+
+ aContainer.appendTo('body')
+
+ Results in the HTML
+
+ <div class="ember-view the-container">
+ <div class="ember-view">A</div>
+ <div class="ember-view">B</div>
+ </div>
+
+ Calling `aContainer.get('aView').removeFromParent()` will result in the following HTML
+
+ <div class="ember-view the-container">
+ <div class="ember-view">B</div>
+ </div>
+
+ And the `Ember.View` instance stored in `aContainer.aView` will be removed from `aContainer`'s
+ `childViews` array.
+
+ ## Templates and Layout
+ A `template`, `templateName`, `defaultTemplate`, `layout`, `layoutName` or `defaultLayout`
+ property on a container view will not result in the template or layout being rendered.
+ The HTML contents of a `Ember.ContainerView`'s DOM representation will only be the rendered HTML
+ of its child views.
+
+ ## Binding a View to Display
+
+ If you would like to display a single view in your ContainerView, you can set its `currentView`
+ property. When the `currentView` property is set to a view instance, it will be added to the
+ ContainerView's `childViews` array. If the `currentView` property is later changed to a
+ different view, the new view will replace the old view. If `currentView` is set to `null`, the
+ last `currentView` will be removed.
+
+ This functionality is useful for cases where you want to bind the display of a ContainerView to
+ a controller or state manager. For example, you can bind the `currentView` of a container to
+ a controller like this:
+
+ // Controller
+ App.appController = Ember.Object.create({
+ view: Ember.View.create({
+ templateName: 'person_template'
+ })
+ });
+
+ // Handlebars template
+ {{view Ember.ContainerView currentViewBinding="App.appController.view"}}
+
+ @extends Ember.View
+*/
+
+Ember.ContainerView = Ember.View.extend({
+
+ init: function() {
+ this._super();
+
+ var childViews = get(this, 'childViews');
+ Ember.defineProperty(this, 'childViews', childViewsProperty);
+
+ var _childViews = this._childViews;
+
+ forEach(childViews, function(viewName, idx) {
+ var view;
+
+ if ('string' === typeof viewName) {
+ view = get(this, viewName);
+ view = this.createChildView(view);
+ set(this, viewName, view);
+ } else {
+ view = this.createChildView(viewName);
+ }
+
+ _childViews[idx] = view;
+ }, this);
+
+ var currentView = get(this, 'currentView');
+ if (currentView) _childViews.push(this.createChildView(currentView));
+
+ // Make the _childViews array observable
+ Ember.A(_childViews);
+
+ // Sets up an array observer on the child views array. This
+ // observer will detect when child views are added or removed
+ // and update the DOM to reflect the mutation.
+ get(this, 'childViews').addArrayObserver(this, {
+ willChange: 'childViewsWillChange',
+ didChange: 'childViewsDidChange'
+ });
+ },
+
+ /**
+ Instructs each child view to render to the passed render buffer.
+
+ @param {Ember.RenderBuffer} buffer the buffer to render to
+ @private
+ */
+ render: function(buffer) {
+ this.forEachChildView(function(view) {
+ view.renderToBuffer(buffer);
+ });
+ },
+
+ /**
+ When the container view is destroyed, tear down the child views
+ array observer.
+
+ @private
+ */
+ willDestroy: function() {
+ get(this, 'childViews').removeArrayObserver(this, {
+ willChange: 'childViewsWillChange',
+ didChange: 'childViewsDidChange'
+ });
+
+ this._super();
+ },
+
+ /**
+ When a child view is removed, destroy its element so that
+ it is removed from the DOM.
+
+ The array observer that triggers this action is set up in the
+ `renderToBuffer` method.
+
+ @private
+ @param {Ember.Array} views the child views array before mutation
+ @param {Number} start the start position of the mutation
+ @param {Number} removed the number of child views removed
+ **/
+ childViewsWillChange: function(views, start, removed) {
+ if (removed === 0) { return; }
+
+ var changedViews = views.slice(start, start+removed);
+ this.initializeViews(changedViews, null, null);
+
+ this.invokeForState('childViewsWillChange', views, start, removed);
+ },
+
+ /**
+ When a child view is added, make sure the DOM gets updated appropriately.
+
+ If the view has already rendered an element, we tell the child view to
+ create an element and insert it into the DOM. If the enclosing container view
+ has already written to a buffer, but not yet converted that buffer into an
+ element, we insert the string representation of the child into the appropriate
+ place in the buffer.
+
+ @private
+ @param {Ember.Array} views the array of child views afte the mutation has occurred
+ @param {Number} start the start position of the mutation
+ @param {Number} removed the number of child views removed
+ @param {Number} the number of child views added
+ */
+ childViewsDidChange: function(views, start, removed, added) {
+ var len = get(views, 'length');
+
+ // No new child views were added; bail out.
+ if (added === 0) return;
+
+ var changedViews = views.slice(start, start+added);
+ this.initializeViews(changedViews, this, get(this, 'templateData'));
+
+ // Let the current state handle the changes
+ this.invokeForState('childViewsDidChange', views, start, added);
+ },
+
+ initializeViews: function(views, parentView, templateData) {
+ forEach(views, function(view) {
+ set(view, '_parentView', parentView);
+
+ if (!get(view, 'templateData')) {
+ set(view, 'templateData', templateData);
+ }
+ });
+ },
+
+ /**
+ Schedules a child view to be inserted into the DOM after bindings have
+ finished syncing for this run loop.
+
+ @param {Ember.View} view the child view to insert
+ @param {Ember.View} prev the child view after which the specified view should
+ be inserted
+ @private
+ */
+ _scheduleInsertion: function(view, prev) {
+ if (prev) {
+ prev.domManager.after(prev, view);
+ } else {
+ this.domManager.prepend(this, view);
+ }
+ },
+
+ currentView: null,
+
+ _currentViewWillChange: Ember.beforeObserver(function() {
+ var childViews = get(this, 'childViews'),
+ currentView = get(this, 'currentView');
+
+ if (currentView) {
+ childViews.removeObject(currentView);
+ currentView.destroy();
+ }
+ }, 'currentView'),
+
+ _currentViewDidChange: Ember.observer(function() {
+ var childViews = get(this, 'childViews'),
+ currentView = get(this, 'currentView');
+
+ if (currentView) {
+ childViews.pushObject(currentView);
+ }
+ }, 'currentView')
+});
+
+// Ember.ContainerView extends the default view states to provide different
+// behavior for childViewsWillChange and childViewsDidChange.
+Ember.ContainerView.states = {
+ parent: Ember.View.states,
+
+ inBuffer: {
+ childViewsDidChange: function(parentView, views, start, added) {
+ var buffer = parentView.buffer,
+ startWith, prev, prevBuffer, view;
+
+ // Determine where to begin inserting the child view(s) in the
+ // render buffer.
+ if (start === 0) {
+ // If views were inserted at the beginning, prepend the first
+ // view to the render buffer, then begin inserting any
+ // additional views at the beginning.
+ view = views[start];
+ startWith = start + 1;
+ view.renderToBuffer(buffer, 'prepend');
+ } else {
+ // Otherwise, just insert them at the same place as the child
+ // views mutation.
+ view = views[start - 1];
+ startWith = start;
+ }
+
+ for (var i=startWith; i<start+added; i++) {
+ prev = view;
+ view = views[i];
+ prevBuffer = prev.buffer;
+ view.renderToBuffer(prevBuffer, 'insertAfter');
+ }
+ }
+ },
+
+ hasElement: {
+ childViewsWillChange: function(view, views, start, removed) {
+ for (var i=start; i<start+removed; i++) {
+ views[i].remove();
+ }
+ },
+
+ childViewsDidChange: function(view, views, start, added) {
+ // If the DOM element for this container view already exists,
+ // schedule each child view to insert its DOM representation after
+ // bindings have finished syncing.
+ var prev = start === 0 ? null : views[start-1];
+
+ for (var i=start; i<start+added; i++) {
+ view = views[i];
+ this._scheduleInsertion(view, prev);
+ prev = view;
+ }
+ }
+ }
+};
+
+Ember.ContainerView.states.inDOM = {
+ parentState: Ember.ContainerView.states.hasElement
+};
+
+Ember.ContainerView.reopen({
+ states: Ember.ContainerView.states
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set, fmt = Ember.String.fmt;
+
+/**
+ @class
+
+ `Ember.CollectionView` is an `Ember.View` descendent responsible for managing a
+ collection (an array or array-like object) by maintaing a child view object and
+ associated DOM representation for each item in the array and ensuring that child
+ views and their associated rendered HTML are updated when items in the array
+ are added, removed, or replaced.
+
+ ## Setting content
+ The managed collection of objects is referenced as the `Ember.CollectionView` instance's
+ `content` property.
+
+ someItemsView = Ember.CollectionView.create({
+ content: ['A', 'B','C']
+ })
+
+ The view for each item in the collection will have its `content` property set
+ to the item.
+
+ ## Specifying itemViewClass
+ By default the view class for each item in the managed collection will be an instance
+ of `Ember.View`. You can supply a different class by setting the `CollectionView`'s
+ `itemViewClass` property.
+
+ Given an empty `<body>` and the following code:
+
+
+ someItemsView = Ember.CollectionView.create({
+ classNames: ['a-collection'],
+ content: ['A','B','C'],
+ itemViewClass: Ember.View.extend({
+ template: Ember.Handlebars.compile("the letter: {{view.content}}")
+ })
+ })
+
+ someItemsView.appendTo('body')
+
+ Will result in the following HTML structure
+
+ <div class="ember-view a-collection">
+ <div class="ember-view">the letter: A</div>
+ <div class="ember-view">the letter: B</div>
+ <div class="ember-view">the letter: C</div>
+ </div>
+
+ ## Automatic matching of parent/child tagNames
+
+ Setting the `tagName` property of a `CollectionView` to any of
+ "ul", "ol", "table", "thead", "tbody", "tfoot", "tr", or "select" will result
+ in the item views receiving an appropriately matched `tagName` property.
+
+
+ Given an empty `<body>` and the following code:
+
+ anUndorderedListView = Ember.CollectionView.create({
+ tagName: 'ul',
+ content: ['A','B','C'],
+ itemViewClass: Ember.View.extend({
+ template: Ember.Handlebars.compile("the letter: {{view.content}}")
+ })
+ })
+
+ anUndorderedListView.appendTo('body')
+
+ Will result in the following HTML structure
+
+ <ul class="ember-view a-collection">
+ <li class="ember-view">the letter: A</li>
+ <li class="ember-view">the letter: B</li>
+ <li class="ember-view">the letter: C</li>
+ </ul>
+
+ Additional tagName pairs can be provided by adding to `Ember.CollectionView.CONTAINER_MAP `
+
+ Ember.CollectionView.CONTAINER_MAP['article'] = 'section'
+
+
+ ## Empty View
+ You can provide an `Ember.View` subclass to the `Ember.CollectionView` instance as its
+ `emptyView` property. If the `content` property of a `CollectionView` is set to `null`
+ or an empty array, an instance of this view will be the `CollectionView`s only child.
+
+ aListWithNothing = Ember.CollectionView.create({
+ classNames: ['nothing']
+ content: null,
+ emptyView: Ember.View.extend({
+ template: Ember.Handlebars.compile("The collection is empty")
+ })
+ })
+
+ aListWithNothing.appendTo('body')
+
+ Will result in the following HTML structure
+
+ <div class="ember-view nothing">
+ <div class="ember-view">
+ The collection is empty
+ </div>
+ </div>
+
+ ## Adding and Removing items
+ The `childViews` property of a `CollectionView` should not be directly manipulated. Instead,
+ add, remove, replace items from its `content` property. This will trigger
+ appropriate changes to its rendered HTML.
+
+ ## Use in templates via the `{{collection}}` Ember.Handlebars helper
+ Ember.Handlebars provides a helper specifically for adding `CollectionView`s to templates.
+ See `Ember.Handlebars.collection` for more details
+
+ @since Ember 0.9
+ @extends Ember.ContainerView
+*/
+Ember.CollectionView = Ember.ContainerView.extend(
+/** @scope Ember.CollectionView.prototype */ {
+
+ /**
+ A list of items to be displayed by the Ember.CollectionView.
+
+ @type Ember.Array
+ @default null
+ */
+ content: null,
+
+ /**
+ @private
+
+ This provides metadata about what kind of empty view class this
+ collection would like if it is being instantiated from another
+ system (like Handlebars)
+ */
+ emptyViewClass: Ember.View,
+
+ /**
+ An optional view to display if content is set to an empty array.
+
+ @type Ember.View
+ @default null
+ */
+ emptyView: null,
+
+ /**
+ @type Ember.View
+ @default Ember.View
+ */
+ itemViewClass: Ember.View,
+
+ /** @private */
+ init: function() {
+ var ret = this._super();
+ this._contentDidChange();
+ return ret;
+ },
+
+ _contentWillChange: Ember.beforeObserver(function() {
+ var content = this.get('content');
+
+ if (content) { content.removeArrayObserver(this); }
+ var len = content ? get(content, 'length') : 0;
+ this.arrayWillChange(content, 0, len);
+ }, 'content'),
+
+ /**
+ @private
+
+ Check to make sure that the content has changed, and if so,
+ update the children directly. This is always scheduled
+ asynchronously, to allow the element to be created before
+ bindings have synchronized and vice versa.
+ */
+ _contentDidChange: Ember.observer(function() {
+ var content = get(this, 'content');
+
+ if (content) {
+ Ember.assert(fmt("an Ember.CollectionView's content must implement Ember.Array. You passed %@", [content]), Ember.Array.detect(content));
+ content.addArrayObserver(this);
+ }
+
+ var len = content ? get(content, 'length') : 0;
+ this.arrayDidChange(content, 0, null, len);
+ }, 'content'),
+
+ willDestroy: function() {
+ var content = get(this, 'content');
+ if (content) { content.removeArrayObserver(this); }
+
+ this._super();
+ },
+
+ arrayWillChange: function(content, start, removedCount) {
+ // If the contents were empty before and this template collection has an
+ // empty view remove it now.
+ var emptyView = get(this, 'emptyView');
+ if (emptyView && emptyView instanceof Ember.View) {
+ emptyView.removeFromParent();
+ }
+
+ // Loop through child views that correspond with the removed items.
+ // Note that we loop from the end of the array to the beginning because
+ // we are mutating it as we go.
+ var childViews = get(this, 'childViews'), childView, idx, len;
+
+ len = get(childViews, 'length');
+
+ var removingAll = removedCount === len;
+
+ if (removingAll) {
+ this.invokeForState('empty');
+ }
+
+ for (idx = start + removedCount - 1; idx >= start; idx--) {
+ childView = childViews[idx];
+ if (removingAll) { childView.removedFromDOM = true; }
+ childView.destroy();
+ }
+ },
+
+ /**
+ Called when a mutation to the underlying content array occurs.
+
+ This method will replay that mutation against the views that compose the
+ Ember.CollectionView, ensuring that the view reflects the model.
+
+ This array observer is added in contentDidChange.
+
+ @param {Array} addedObjects
+ the objects that were added to the content
+
+ @param {Array} removedObjects
+ the objects that were removed from the content
+
+ @param {Number} changeIndex
+ the index at which the changes occurred
+ */
+ arrayDidChange: function(content, start, removed, added) {
+ var itemViewClass = get(this, 'itemViewClass'),
+ childViews = get(this, 'childViews'),
+ addedViews = [], view, item, idx, len, itemTagName;
+
+ if ('string' === typeof itemViewClass) {
+ itemViewClass = get(itemViewClass);
+ }
+
+ Ember.assert(fmt("itemViewClass must be a subclass of Ember.View, not %@", [itemViewClass]), Ember.View.detect(itemViewClass));
+
+ len = content ? get(content, 'length') : 0;
+ if (len) {
+ for (idx = start; idx < start+added; idx++) {
+ item = content.objectAt(idx);
+
+ view = this.createChildView(itemViewClass, {
+ content: item,
+ contentIndex: idx
+ });
+
+ addedViews.push(view);
+ }
+ } else {
+ var emptyView = get(this, 'emptyView');
+ if (!emptyView) { return; }
+
+ emptyView = this.createChildView(emptyView);
+ addedViews.push(emptyView);
+ set(this, 'emptyView', emptyView);
+ }
+ childViews.replace(start, 0, addedViews);
+ },
+
+ createChildView: function(view, attrs) {
+ view = this._super(view, attrs);
+
+ var itemTagName = get(view, 'tagName');
+ var tagName = (itemTagName === null || itemTagName === undefined) ? Ember.CollectionView.CONTAINER_MAP[get(this, 'tagName')] : itemTagName;
+
+ set(view, 'tagName', tagName);
+
+ return view;
+ }
+});
+
+/**
+ @static
+
+ A map of parent tags to their default child tags. You can add
+ additional parent tags if you want collection views that use
+ a particular parent tag to default to a child tag.
+
+ @type Hash
+ @constant
+*/
+Ember.CollectionView.CONTAINER_MAP = {
+ ul: 'li',
+ ol: 'li',
+ table: 'tr',
+ thead: 'tr',
+ tbody: 'tr',
+ tfoot: 'tr',
+ tr: 'td',
+ select: 'option'
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2006-2011 Strobe Inc. and contributors.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+/*globals jQuery*/
+
+})();
+
+(function() {
+var get = Ember.get, set = Ember.set;
+
+/**
+ @class
+
+ @extends Ember.Object
+*/
+Ember.State = Ember.Object.extend(Ember.Evented,
+/** @scope Ember.State.prototype */{
+ isState: true,
+
+ /**
+ A reference to the parent state.
+
+ @type Ember.State
+ */
+ parentState: null,
+ start: null,
+
+ /**
+ The name of this state.
+
+ @type String
+ */
+ name: null,
+
+ /**
+ The full path to this state.
+
+ @type String
+ @readOnly
+ */
+ path: Ember.computed(function() {
+ var parentPath = get(this, 'parentState.path'),
+ path = get(this, 'name');
+
+ if (parentPath) {
+ path = parentPath + '.' + path;
+ }
+
+ return path;
+ }).property().cacheable(),
+
+ /**
+ @private
+
+ Override the default event firing from Ember.Evented to
+ also call methods with the given name.
+ */
+ trigger: function(name) {
+ if (this[name]) {
+ this[name].apply(this, [].slice.call(arguments, 1));
+ }
+ this._super.apply(this, arguments);
+ },
+
+ /** @private */
+ init: function() {
+ var states = get(this, 'states'), foundStates;
+ set(this, 'childStates', Ember.A());
+ set(this, 'eventTransitions', get(this, 'eventTransitions') || {});
+
+ var name, value, transitionTarget;
+
+ // As a convenience, loop over the properties
+ // of this state and look for any that are other
+ // Ember.State instances or classes, and move them
+ // to the `states` hash. This avoids having to
+ // create an explicit separate hash.
+
+ if (!states) {
+ states = {};
+
+ for (name in this) {
+ if (name === "constructor") { continue; }
+
+ if (value = this[name]) {
+ if (transitionTarget = value.transitionTarget) {
+ this.eventTransitions[name] = transitionTarget;
+ }
+
+ this.setupChild(states, name, value);
+ }
+ }
+
+ set(this, 'states', states);
+ } else {
+ for (name in states) {
+ this.setupChild(states, name, states[name]);
+ }
+ }
+
+ set(this, 'pathsCache', {});
+ set(this, 'pathsCacheNoContext', {});
+ },
+
+ /** @private */
+ setupChild: function(states, name, value) {
+ if (!value) { return false; }
+
+ if (value.isState) {
+ set(value, 'name', name);
+ } else if (Ember.State.detect(value)) {
+ value = value.create({
+ name: name
+ });
+ }
+
+ if (value.isState) {
+ set(value, 'parentState', this);
+ get(this, 'childStates').pushObject(value);
+ states[name] = value;
+ }
+ },
+
+ lookupEventTransition: function(name) {
+ var path, state = this;
+
+ while(state && !path) {
+ path = state.eventTransitions[name];
+ state = state.get('parentState');
+ }
+
+ return path;
+ },
+
+ /**
+ A Boolean value indicating whether the state is a leaf state
+ in the state hierarchy. This is false if the state has child
+ states; otherwise it is true.
+
+ @type Boolean
+ */
+ isLeaf: Ember.computed(function() {
+ return !get(this, 'childStates').length;
+ }).cacheable(),
+
+ /**
+ A boolean value indicating whether the state takes a context.
+ By default we assume all states take contexts.
+ */
+ hasContext: true,
+
+ /**
+ This is the default transition event.
+
+ @event
+ @param {Ember.StateManager} manager
+ @param context
+ @see Ember.StateManager#transitionEvent
+ */
+ setup: Ember.K,
+
+ /**
+ This event fires when the state is entered.
+
+ @event
+ @param {Ember.StateManager} manager
+ */
+ enter: Ember.K,
+
+ /**
+ This event fires when the state is exited.
+
+ @event
+ @param {Ember.StateManager} manager
+ */
+ exit: Ember.K
+});
+
+var Event = Ember.$ && Ember.$.Event;
+
+Ember.State.reopenClass(
+/** @scope Ember.State */{
+
+ /**
+ @static
+
+ Creates an action function for transitioning to the named state while preserving context.
+
+ The following example StateManagers are equivalent:
+
+ aManager = Ember.StateManager.create({
+ stateOne: Ember.State.create({
+ changeToStateTwo: Ember.State.transitionTo('stateTwo')
+ }),
+ stateTwo: Ember.State.create({})
+ })
+
+ bManager = Ember.StateManager.create({
+ stateOne: Ember.State.create({
+ changeToStateTwo: function(manager, context){
+ manager.transitionTo('stateTwo', context)
+ }
+ }),
+ stateTwo: Ember.State.create({})
+ })
+
+ @param {String} target
+ */
+ transitionTo: function(target) {
+ var event = function(stateManager, context) {
+ if (Event && context instanceof Event) {
+ if (context.hasOwnProperty('context')) {
+ context = context.context;
+ } else {
+ // If we received an event and it doesn't contain
+ // a context, don't pass along a superfluous
+ // context to the target of the event.
+ return stateManager.transitionTo(target);
+ }
+ }
+
+ stateManager.transitionTo(target, context);
+ };
+
+ event.transitionTarget = target;
+
+ return event;
+ }
+});
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set, fmt = Ember.String.fmt;
+var arrayForEach = Ember.ArrayPolyfills.forEach;
+/**
+ @private
+
+ A Transition takes the enter, exit and resolve states and normalizes
+ them:
+
+ * takes any passed in contexts into consideration
+ * adds in `initialState`s
+*/
+var Transition = function(raw) {
+ this.enterStates = raw.enterStates.slice();
+ this.exitStates = raw.exitStates.slice();
+ this.resolveState = raw.resolveState;
+
+ this.finalState = raw.enterStates[raw.enterStates.length - 1] || raw.resolveState;
+};
+
+Transition.prototype = {
+ /**
+ @private
+
+ Normalize the passed in enter, exit and resolve states.
+
+ This process also adds `finalState` and `contexts` to the Transition object.
+
+ @param {Ember.StateManager} manager the state manager running the transition
+ @param {Array} contexts a list of contexts passed into `transitionTo`
+ */
+ normalize: function(manager, contexts) {
+ this.matchContextsToStates(contexts);
+ this.addInitialStates();
+ this.removeUnchangedContexts(manager);
+ return this;
+ },
+
+ /**
+ @private
+
+ Match each of the contexts passed to `transitionTo` to a state.
+ This process may also require adding additional enter and exit
+ states if there are more contexts than enter states.
+
+ @param {Array} contexts a list of contexts passed into `transitionTo`
+ */
+ matchContextsToStates: function(contexts) {
+ var stateIdx = this.enterStates.length - 1,
+ matchedContexts = [],
+ state,
+ context;
+
+ // Next, we will match the passed in contexts to the states they
+ // represent.
+ //
+ // First, assign a context to each enter state in reverse order. If
+ // any contexts are left, add a parent state to the list of states
+ // to enter and exit, and assign a context to the parent state.
+ //
+ // If there are still contexts left when the state manager is
+ // reached, raise an exception.
+ //
+ // This allows the following:
+ //
+ // |- root
+ // | |- post
+ // | | |- comments
+ // | |- about (* current state)
+ //
+ // For `transitionTo('post.comments', post, post.get('comments')`,
+ // the first context (`post`) will be assigned to `root.post`, and
+ // the second context (`post.get('comments')`) will be assigned
+ // to `root.post.comments`.
+ //
+ // For the following:
+ //
+ // |- root
+ // | |- post
+ // | | |- index (* current state)
+ // | | |- comments
+ //
+ // For `transitionTo('post.comments', otherPost, otherPost.get('comments')`,
+ // the `<root.post>` state will be added to the list of enter and exit
+ // states because its context has changed.
+
+ while (contexts.length > 0) {
+ if (stateIdx >= 0) {
+ state = this.enterStates[stateIdx--];
+ } else {
+ if (this.enterStates.length) {
+ state = get(this.enterStates[0], 'parentState');
+ if (!state) { throw "Cannot match all contexts to states"; }
+ } else {
+ // If re-entering the current state with a context, the resolve
+ // state will be the current state.
+ state = this.resolveState;
+ }
+
+ this.enterStates.unshift(state);
+ this.exitStates.unshift(state);
+ }
+
+ // in routers, only states with dynamic segments have a context
+ if (get(state, 'hasContext')) {
+ context = contexts.pop();
+ } else {
+ context = null;
+ }
+
+ matchedContexts.unshift(context);
+ }
+
+ this.contexts = matchedContexts;
+ },
+
+ /**
+ @private
+
+ Add any `initialState`s to the list of enter states.
+ */
+ addInitialStates: function() {
+ var finalState = this.finalState, initialState;
+
+ while(true) {
+ initialState = get(finalState, 'initialState') || 'start';
+ finalState = get(finalState, 'states.' + initialState);
+
+ if (!finalState) { break; }
+
+ this.finalState = finalState;
+ this.enterStates.push(finalState);
+ this.contexts.push(undefined);
+ }
+ },
+
+ /**
+ @private
+
+ Remove any states that were added because the number of contexts
+ exceeded the number of explicit enter states, but the context has
+ not changed since the last time the state was entered.
+
+ @param {Ember.StateManager} manager passed in to look up the last
+ context for a states
+ */
+ removeUnchangedContexts: function(manager) {
+ // Start from the beginning of the enter states. If the state was added
+ // to the list during the context matching phase, make sure the context
+ // has actually changed since the last time the state was entered.
+ while (this.enterStates.length > 0) {
+ if (this.enterStates[0] !== this.exitStates[0]) { break; }
+
+ if (this.enterStates.length === this.contexts.length) {
+ if (manager.getStateMeta(this.enterStates[0], 'context') !== this.contexts[0]) { break; }
+ this.contexts.shift();
+ }
+
+ this.resolveState = this.enterStates.shift();
+ this.exitStates.shift();
+ }
+ }
+};
+
+/**
+ @class
+
+ StateManager is part of Ember's implementation of a finite state machine. A StateManager
+ instance manages a number of properties that are instances of `Ember.State`,
+ tracks the current active state, and triggers callbacks when states have changed.
+
+ ## Defining States
+
+ The states of StateManager can be declared in one of two ways. First, you can define
+ a `states` property that contains all the states:
+
+ managerA = Ember.StateManager.create({
+ states: {
+ stateOne: Ember.State.create(),
+ stateTwo: Ember.State.create()
+ }
+ })
+
+ managerA.get('states')
+ // {
+ // stateOne: Ember.State.create(),
+ // stateTwo: Ember.State.create()
+ // }
+
+ You can also add instances of `Ember.State` (or an `Ember.State` subclass) directly as properties
+ of a StateManager. These states will be collected into the `states` property for you.
+
+ managerA = Ember.StateManager.create({
+ stateOne: Ember.State.create(),
+ stateTwo: Ember.State.create()
+ })
+
+ managerA.get('states')
+ // {
+ // stateOne: Ember.State.create(),
+ // stateTwo: Ember.State.create()
+ // }
+
+ ## The Initial State
+ When created a StateManager instance will immediately enter into the state
+ defined as its `start` property or the state referenced by name in its
+ `initialState` property:
+
+ managerA = Ember.StateManager.create({
+ start: Ember.State.create({})
+ })
+
+ managerA.get('currentState.name') // 'start'
+
+ managerB = Ember.StateManager.create({
+ initialState: 'beginHere',
+ beginHere: Ember.State.create({})
+ })
+
+ managerB.get('currentState.name') // 'beginHere'
+
+ Because it is a property you may also provide a computed function if you wish to derive
+ an `initialState` programmatically:
+
+ managerC = Ember.StateManager.create({
+ initialState: function(){
+ if (someLogic) {
+ return 'active';
+ } else {
+ return 'passive';
+ }
+ }.property(),
+ active: Ember.State.create({}),
+ passive: Ember.State.create({})
+ })
+
+ ## Moving Between States
+ A StateManager can have any number of Ember.State objects as properties
+ and can have a single one of these states as its current state.
+
+ Calling `transitionTo` transitions between states:
+
+ robotManager = Ember.StateManager.create({
+ initialState: 'poweredDown',
+ poweredDown: Ember.State.create({}),
+ poweredUp: Ember.State.create({})
+ })
+
+ robotManager.get('currentState.name') // 'poweredDown'
+ robotManager.transitionTo('poweredUp')
+ robotManager.get('currentState.name') // 'poweredUp'
+
+ Before transitioning into a new state the existing `currentState` will have its
+ `exit` method called with the StateManager instance as its first argument and
+ an object representing the transition as its second argument.
+
+ After transitioning into a new state the new `currentState` will have its
+ `enter` method called with the StateManager instance as its first argument and
+ an object representing the transition as its second argument.
+
+ robotManager = Ember.StateManager.create({
+ initialState: 'poweredDown',
+ poweredDown: Ember.State.create({
+ exit: function(stateManager){
+ console.log("exiting the poweredDown state")
+ }
+ }),
+ poweredUp: Ember.State.create({
+ enter: function(stateManager){
+ console.log("entering the poweredUp state. Destroy all humans.")
+ }
+ })
+ })
+
+ robotManager.get('currentState.name') // 'poweredDown'
+ robotManager.transitionTo('poweredUp')
+ // will log
+ // 'exiting the poweredDown state'
+ // 'entering the poweredUp state. Destroy all humans.'
+
+
+ Once a StateManager is already in a state, subsequent attempts to enter that state will
+ not trigger enter or exit method calls. Attempts to transition into a state that the
+ manager does not have will result in no changes in the StateManager's current state:
+
+ robotManager = Ember.StateManager.create({
+ initialState: 'poweredDown',
+ poweredDown: Ember.State.create({
+ exit: function(stateManager){
+ console.log("exiting the poweredDown state")
+ }
+ }),
+ poweredUp: Ember.State.create({
+ enter: function(stateManager){
+ console.log("entering the poweredUp state. Destroy all humans.")
+ }
+ })
+ })
+
+ robotManager.get('currentState.name') // 'poweredDown'
+ robotManager.transitionTo('poweredUp')
+ // will log
+ // 'exiting the poweredDown state'
+ // 'entering the poweredUp state. Destroy all humans.'
+ robotManager.transitionTo('poweredUp') // no logging, no state change
+
+ robotManager.transitionTo('someUnknownState') // silently fails
+ robotManager.get('currentState.name') // 'poweredUp'
+
+
+ Each state property may itself contain properties that are instances of Ember.State.
+ The StateManager can transition to specific sub-states in a series of transitionTo method calls or
+ via a single transitionTo with the full path to the specific state. The StateManager will also
+ keep track of the full path to its currentState
+
+ robotManager = Ember.StateManager.create({
+ initialState: 'poweredDown',
+ poweredDown: Ember.State.create({
+ charging: Ember.State.create(),
+ charged: Ember.State.create()
+ }),
+ poweredUp: Ember.State.create({
+ mobile: Ember.State.create(),
+ stationary: Ember.State.create()
+ })
+ })
+
+ robotManager.get('currentState.name') // 'poweredDown'
+
+ robotManager.transitionTo('poweredUp')
+ robotManager.get('currentState.name') // 'poweredUp'
+
+ robotManager.transitionTo('mobile')
+ robotManager.get('currentState.name') // 'mobile'
+
+ // transition via a state path
+ robotManager.transitionTo('poweredDown.charging')
+ robotManager.get('currentState.name') // 'charging'
+
+ robotManager.get('currentState.path') // 'poweredDown.charging'
+
+ Enter transition methods will be called for each state and nested child state in their
+ hierarchical order. Exit methods will be called for each state and its nested states in
+ reverse hierarchical order.
+
+ Exit transitions for a parent state are not called when entering into one of its child states,
+ only when transitioning to a new section of possible states in the hierarchy.
+
+ robotManager = Ember.StateManager.create({
+ initialState: 'poweredDown',
+ poweredDown: Ember.State.create({
+ enter: function(){},
+ exit: function(){
+ console.log("exited poweredDown state")
+ },
+ charging: Ember.State.create({
+ enter: function(){},
+ exit: function(){}
+ }),
+ charged: Ember.State.create({
+ enter: function(){
+ console.log("entered charged state")
+ },
+ exit: function(){
+ console.log("exited charged state")
+ }
+ })
+ }),
+ poweredUp: Ember.State.create({
+ enter: function(){
+ console.log("entered poweredUp state")
+ },
+ exit: function(){},
+ mobile: Ember.State.create({
+ enter: function(){
+ console.log("entered mobile state")
+ },
+ exit: function(){}
+ }),
+ stationary: Ember.State.create({
+ enter: function(){},
+ exit: function(){}
+ })
+ })
+ })
+
+
+ robotManager.get('currentState.path') // 'poweredDown'
+ robotManager.transitionTo('charged')
+ // logs 'entered charged state'
+ // but does *not* log 'exited poweredDown state'
+ robotManager.get('currentState.name') // 'charged
+
+ robotManager.transitionTo('poweredUp.mobile')
+ // logs
+ // 'exited charged state'
+ // 'exited poweredDown state'
+ // 'entered poweredUp state'
+ // 'entered mobile state'
+
+ During development you can set a StateManager's `enableLogging` property to `true` to
+ receive console messages of state transitions.
+
+ robotManager = Ember.StateManager.create({
+ enableLogging: true
+ })
+
+ ## Managing currentState with Actions
+ To control which transitions between states are possible for a given state, StateManager
+ can receive and route action messages to its states via the `send` method. Calling to `send` with
+ an action name will begin searching for a method with the same name starting at the current state
+ and moving up through the parent states in a state hierarchy until an appropriate method is found
+ or the StateManager instance itself is reached.
+
+ If an appropriately named method is found it will be called with the state manager as the first
+ argument and an optional `context` object as the second argument.
+
+ managerA = Ember.StateManager.create({
+ initialState: 'stateOne.substateOne.subsubstateOne',
+ stateOne: Ember.State.create({
+ substateOne: Ember.State.create({
+ anAction: function(manager, context){
+ console.log("an action was called")
+ },
+ subsubstateOne: Ember.State.create({})
+ })
+ })
+ })
+
+ managerA.get('currentState.name') // 'subsubstateOne'
+ managerA.send('anAction')
+ // 'stateOne.substateOne.subsubstateOne' has no anAction method
+ // so the 'anAction' method of 'stateOne.substateOne' is called
+ // and logs "an action was called"
+ // with managerA as the first argument
+ // and no second argument
+
+ someObject = {}
+ managerA.send('anAction', someObject)
+ // the 'anAction' method of 'stateOne.substateOne' is called again
+ // with managerA as the first argument and
+ // someObject as the second argument.
+
+
+ If the StateManager attempts to send an action but does not find an appropriately named
+ method in the current state or while moving upwards through the state hierarchy
+ it will throw a new Ember.Error. Action detection only moves upwards through the state hierarchy
+ from the current state. It does not search in other portions of the hierarchy.
+
+ managerB = Ember.StateManager.create({
+ initialState: 'stateOne.substateOne.subsubstateOne',
+ stateOne: Ember.State.create({
+ substateOne: Ember.State.create({
+ subsubstateOne: Ember.State.create({})
+ })
+ }),
+ stateTwo: Ember.State.create({
+ anAction: function(manager, context){
+ // will not be called below because it is
+ // not a parent of the current state
+ }
+ })
+ })
+
+ managerB.get('currentState.name') // 'subsubstateOne'
+ managerB.send('anAction')
+ // Error: <Ember.StateManager:ember132> could not
+ // respond to event anAction in state stateOne.substateOne.subsubstateOne.
+
+ Inside of an action method the given state should delegate `transitionTo` calls on its
+ StateManager.
+
+ robotManager = Ember.StateManager.create({
+ initialState: 'poweredDown.charging',
+ poweredDown: Ember.State.create({
+ charging: Ember.State.create({
+ chargeComplete: function(manager, context){
+ manager.transitionTo('charged')
+ }
+ }),
+ charged: Ember.State.create({
+ boot: function(manager, context){
+ manager.transitionTo('poweredUp')
+ }
+ })
+ }),
+ poweredUp: Ember.State.create({
+ beginExtermination: function(manager, context){
+ manager.transitionTo('rampaging')
+ },
+ rampaging: Ember.State.create()
+ })
+ })
+
+ robotManager.get('currentState.name') // 'charging'
+ robotManager.send('boot') // throws error, no boot action
+ // in current hierarchy
+ robotManager.get('currentState.name') // remains 'charging'
+
+ robotManager.send('beginExtermination') // throws error, no beginExtermination
+ // action in current hierarchy
+ robotManager.get('currentState.name') // remains 'charging'
+
+ robotManager.send('chargeComplete')
+ robotManager.get('currentState.name') // 'charged'
+
+ robotManager.send('boot')
+ robotManager.get('currentState.name') // 'poweredUp'
+
+ robotManager.send('beginExtermination', allHumans)
+ robotManager.get('currentState.name') // 'rampaging'
+
+ Transition actions can also be created using the `transitionTo` method of the Ember.State class. The
+ following example StateManagers are equivalent:
+
+ aManager = Ember.StateManager.create({
+ stateOne: Ember.State.create({
+ changeToStateTwo: Ember.State.transitionTo('stateTwo')
+ }),
+ stateTwo: Ember.State.create({})
+ })
+
+ bManager = Ember.StateManager.create({
+ stateOne: Ember.State.create({
+ changeToStateTwo: function(manager, context){
+ manager.transitionTo('stateTwo', context)
+ }
+ }),
+ stateTwo: Ember.State.create({})
+ })
+**/
+Ember.StateManager = Ember.State.extend(
+/** @scope Ember.StateManager.prototype */ {
+
+ /**
+ When creating a new statemanager, look for a default state to transition
+ into. This state can either be named `start`, or can be specified using the
+ `initialState` property.
+ */
+ init: function() {
+ this._super();
+
+ set(this, 'stateMeta', Ember.Map.create());
+
+ var initialState = get(this, 'initialState');
+
+ if (!initialState && get(this, 'states.start')) {
+ initialState = 'start';
+ }
+
+ if (initialState) {
+ this.transitionTo(initialState);
+ Ember.assert('Failed to transition to initial state "' + initialState + '"', !!get(this, 'currentState'));
+ }
+ },
+
+ stateMetaFor: function(state) {
+ var meta = get(this, 'stateMeta'),
+ stateMeta = meta.get(state);
+
+ if (!stateMeta) {
+ stateMeta = {};
+ meta.set(state, stateMeta);
+ }
+
+ return stateMeta;
+ },
+
+ setStateMeta: function(state, key, value) {
+ return set(this.stateMetaFor(state), key, value);
+ },
+
+ getStateMeta: function(state, key) {
+ return get(this.stateMetaFor(state), key);
+ },
+
+ /**
+ The current state from among the manager's possible states. This property should
+ not be set directly. Use `transitionTo` to move between states by name.
+
+ @type Ember.State
+ @readOnly
+ */
+ currentState: null,
+
+ /**
+ The name of transitionEvent that this stateManager will dispatch
+
+ @property {String}
+ @default 'setup'
+ */
+ transitionEvent: 'setup',
+
+ /**
+ If set to true, `errorOnUnhandledEvents` will cause an exception to be
+ raised if you attempt to send an event to a state manager that is not
+ handled by the current state or any of its parent states.
+
+ @type Boolean
+ @default true
+ */
+ errorOnUnhandledEvent: true,
+
+ send: function(event, context) {
+ Ember.assert('Cannot send event "' + event + '" while currentState is ' + get(this, 'currentState'), get(this, 'currentState'));
+ return this.sendRecursively(event, get(this, 'currentState'), context);
+ },
+
+ sendRecursively: function(event, currentState, context) {
+ var log = this.enableLogging,
+ action = currentState[event];
+
+ // Test to see if the action is a method that
+ // can be invoked. Don't blindly check just for
+ // existence, because it is possible the state
+ // manager has a child state of the given name,
+ // and we should still raise an exception in that
+ // case.
+ if (typeof action === 'function') {
+ if (log) { Ember.Logger.log(fmt("STATEMANAGER: Sending event '%@' to state %@.", [event, get(currentState, 'path')])); }
+ return action.call(currentState, this, context);
+ } else {
+ var parentState = get(currentState, 'parentState');
+ if (parentState) {
+ return this.sendRecursively(event, parentState, context);
+ } else if (get(this, 'errorOnUnhandledEvent')) {
+ throw new Ember.Error(this.toString() + " could not respond to event " + event + " in state " + get(this, 'currentState.path') + ".");
+ }
+ }
+ },
+
+ /**
+ Finds a state by its state path.
+
+ Example:
+
+ manager = Ember.StateManager.create({
+ root: Ember.State.create({
+ dashboard: Ember.State.create()
+ })
+ });
+
+ manager.getStateByPath(manager, "root.dashboard")
+
+ // returns the dashboard state
+
+ @param {Ember.State} root the state to start searching from
+ @param {String} path the state path to follow
+ @returns {Ember.State} the state at the end of the path
+ */
+ getStateByPath: function(root, path) {
+ var parts = path.split('.'),
+ state = root;
+
+ for (var i=0, l=parts.length; i<l; i++) {
+ state = get(get(state, 'states'), parts[i]);
+ if (!state) { break; }
+ }
+
+ return state;
+ },
+
+ findStateByPath: function(state, path) {
+ var possible;
+
+ while (!possible && state) {
+ possible = this.getStateByPath(state, path);
+ state = get(state, 'parentState');
+ }
+
+ return possible;
+ },
+
+ /**
+ @private
+
+ A state stores its child states in its `states` hash.
+ This code takes a path like `posts.show` and looks
+ up `origin.states.posts.states.show`.
+
+ It returns a list of all of the states from the
+ origin, which is the list of states to call `enter`
+ on.
+ */
+ findStatesByPath: function(origin, path) {
+ if (!path || path === "") { return undefined; }
+ var r = path.split('.'),
+ ret = [];
+
+ for (var i=0, len = r.length; i < len; i++) {
+ var states = get(origin, 'states');
+
+ if (!states) { return undefined; }
+
+ var s = get(states, r[i]);
+ if (s) { origin = s; ret.push(s); }
+ else { return undefined; }
+ }
+
+ return ret;
+ },
+
+ goToState: function() {
+ // not deprecating this yet so people don't constantly need to
+ // make trivial changes for little reason.
+ return this.transitionTo.apply(this, arguments);
+ },
+
+ transitionTo: function(path, context) {
+ // XXX When is transitionTo called with no path
+ if (Ember.empty(path)) { return; }
+
+ // The ES6 signature of this function is `path, ...contexts`
+ var contexts = context ? Array.prototype.slice.call(arguments, 1) : [],
+ currentState = get(this, 'currentState') || this;
+
+ // First, get the enter, exit and resolve states for the current state
+ // and specified path. If possible, use an existing cache.
+ var hash = this.contextFreeTransition(currentState, path);
+
+ // Next, process the raw state information for the contexts passed in.
+ var transition = new Transition(hash).normalize(this, contexts);
+
+ this.enterState(transition);
+ this.triggerSetupContext(transition);
+ },
+
+ contextFreeTransition: function(currentState, path) {
+ var cache = currentState.pathsCache[path];
+ if (cache) { return cache; }
+
+ var enterStates = this.findStatesByPath(currentState, path),
+ exitStates = [],
+ resolveState = currentState;
+
+ // Walk up the states. For each state, check whether a state matching
+ // the `path` is nested underneath. This will find the closest
+ // parent state containing `path`.
+ //
+ // This allows the user to pass in a relative path. For example, for
+ // the following state hierarchy:
+ //
+ // | |root
+ // | |- posts
+ // | | |- show (* current)
+ // | |- comments
+ // | | |- show
+ //
+ // If the current state is `<root.posts.show>`, an attempt to
+ // transition to `comments.show` will match `<root.comments.show>`.
+ //
+ // First, this code will look for root.posts.show.comments.show.
+ // Next, it will look for root.posts.comments.show. Finally,
+ // it will look for `root.comments.show`, and find the state.
+ //
+ // After this process, the following variables will exist:
+ //
+ // * resolveState: a common parent state between the current
+ // and target state. In the above example, `<root>` is the
+ // `resolveState`.
+ // * enterStates: a list of all of the states represented
+ // by the path from the `resolveState`. For example, for
+ // the path `root.comments.show`, `enterStates` would have
+ // `[<root.comments>, <root.comments.show>]`
+ // * exitStates: a list of all of the states from the
+ // `resolveState` to the `currentState`. In the above
+ // example, `exitStates` would have
+ // `[<root.posts>`, `<root.posts.show>]`.
+ while (resolveState && !enterStates) {
+ exitStates.unshift(resolveState);
+
+ resolveState = get(resolveState, 'parentState');
+ if (!resolveState) {
+ enterStates = this.findStatesByPath(this, path);
+ if (!enterStates) {
+ Ember.assert('Could not find state for path: "'+path+'"');
+ return;
+ }
+ }
+ enterStates = this.findStatesByPath(resolveState, path);
+ }
+
+ // If the path contains some states that are parents of both the
+ // current state and the target state, remove them.
+ //
+ // For example, in the following hierarchy:
+ //
+ // |- root
+ // | |- post
+ // | | |- index (* current)
+ // | | |- show
+ //
+ // If the `path` is `root.post.show`, the three variables will
+ // be:
+ //
+ // * resolveState: `<state manager>`
+ // * enterStates: `[<root>, <root.post>, <root.post.show>]`
+ // * exitStates: `[<root>, <root.post>, <root.post.index>]`
+ //
+ // The goal of this code is to remove the common states, so we
+ // have:
+ //
+ // * resolveState: `<root.post>`
+ // * enterStates: `[<root.post.show>]`
+ // * exitStates: `[<root.post.index>]`
+ //
+ // This avoid unnecessary calls to the enter and exit transitions.
+ while (enterStates.length > 0 && enterStates[0] === exitStates[0]) {
+ resolveState = enterStates.shift();
+ exitStates.shift();
+ }
+
+ // Cache the enterStates, exitStates, and resolveState for the
+ // current state and the `path`.
+ var transitions = currentState.pathsCache[path] = {
+ exitStates: exitStates,
+ enterStates: enterStates,
+ resolveState: resolveState
+ };
+
+ return transitions;
+ },
+
+ triggerSetupContext: function(transitions) {
+ var contexts = transitions.contexts,
+ offset = transitions.enterStates.length - contexts.length,
+ enterStates = transitions.enterStates,
+ transitionEvent = get(this, 'transitionEvent');
+
+ Ember.assert("More contexts provided than states", offset >= 0);
+
+ arrayForEach.call(enterStates, function(state, idx) {
+ state.trigger(transitionEvent, this, contexts[idx-offset]);
+ }, this);
+ },
+
+ getState: function(name) {
+ var state = get(this, name),
+ parentState = get(this, 'parentState');
+
+ if (state) {
+ return state;
+ } else if (parentState) {
+ return parentState.getState(name);
+ }
+ },
+
+ enterState: function(transition) {
+ var log = this.enableLogging;
+
+ var exitStates = transition.exitStates.slice(0).reverse();
+ arrayForEach.call(exitStates, function(state) {
+ state.trigger('exit', this);
+ }, this);
+
+ arrayForEach.call(transition.enterStates, function(state) {
+ if (log) { Ember.Logger.log("STATEMANAGER: Entering " + get(state, 'path')); }
+ state.trigger('enter', this);
+ }, this);
+
+ set(this, 'currentState', transition.finalState);
+ }
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Statecharts
+// Copyright: ©2011 Living Social Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+(function() {
+var get = Ember.get;
+
+Ember._ResolvedState = Ember.Object.extend({
+ manager: null,
+ state: null,
+ match: null,
+
+ object: Ember.computed(function(key, value) {
+ if (arguments.length === 2) {
+ this._object = value;
+ return value;
+ } else {
+ if (this._object) {
+ return this._object;
+ } else {
+ var state = get(this, 'state'),
+ match = get(this, 'match'),
+ manager = get(this, 'manager');
+ return state.deserialize(manager, match.hash);
+ }
+ }
+ }).property(),
+
+ hasPromise: Ember.computed(function() {
+ return Ember.canInvoke(get(this, 'object'), 'then');
+ }).property('object'),
+
+ promise: Ember.computed(function() {
+ var object = get(this, 'object');
+ if (Ember.canInvoke(object, 'then')) {
+ return object;
+ } else {
+ return {
+ then: function(success) { success(object); }
+ };
+ }
+ }).property('object'),
+
+ transition: function() {
+ var manager = get(this, 'manager'),
+ path = get(this, 'state.path'),
+ object = get(this, 'object');
+ manager.transitionTo(path, object);
+ }
+});
+
+})();
+
+
+
+(function() {
+var get = Ember.get;
+
+// The Ember Routable mixin assumes the existance of a simple
+// routing shim that supports the following three behaviors:
+//
+// * .getURL() - this is called when the page loads
+// * .setURL(newURL) - this is called from within the state
+// manager when the state changes to a routable state
+// * .onURLChange(callback) - this happens when the user presses
+// the back or forward button
+
+var paramForClass = function(classObject) {
+ var className = classObject.toString(),
+ parts = className.split("."),
+ last = parts[parts.length - 1];
+
+ return Ember.String.underscore(last) + "_id";
+};
+
+var merge = function(original, hash) {
+ for (var prop in hash) {
+ if (!hash.hasOwnProperty(prop)) { continue; }
+ if (original.hasOwnProperty(prop)) { continue; }
+
+ original[prop] = hash[prop];
+ }
+};
+
+/**
+ @class
+ @extends Ember.Mixin
+*/
+Ember.Routable = Ember.Mixin.create({
+ init: function() {
+ var redirection;
+ this.on('connectOutlets', this, this.stashContext);
+
+ if (redirection = get(this, 'redirectsTo')) {
+ Ember.assert("You cannot use `redirectsTo` if you already have a `connectOutlets` method", this.connectOutlets === Ember.K);
+
+ this.connectOutlets = function(router) {
+ router.transitionTo(redirection);
+ };
+ }
+
+ // normalize empty route to '/'
+ var route = get(this, 'route');
+ if (route === '') {
+ route = '/';
+ }
+
+ this._super();
+
+ Ember.assert("You cannot use `redirectsTo` on a state that has child states", !redirection || (!!redirection && !!get(this, 'isLeaf')));
+ },
+
+ /**
+ @private
+
+ Whenever a routable state is entered, the context it was entered with
+ is stashed so that we can regenerate the state's `absoluteURL` on
+ demand.
+ */
+ stashContext: function(manager, context) {
+ var serialized = this.serialize(manager, context);
+ Ember.assert('serialize must return a hash', !serialized || typeof serialized === 'object');
+
+ manager.setStateMeta(this, 'context', context);
+ manager.setStateMeta(this, 'serialized', serialized);
+
+ if (get(this, 'isRoutable') && !get(manager, 'isRouting')) {
+ this.updateRoute(manager, get(manager, 'location'));
+ }
+ },
+
+ /**
+ @private
+
+ Whenever a routable state is entered, the router's location object
+ is notified to set the URL to the current absolute path.
+
+ In general, this will update the browser's URL.
+ */
+ updateRoute: function(manager, location) {
+ if (get(this, 'isLeafRoute')) {
+ var path = this.absoluteRoute(manager);
+ location.setURL(path);
+ }
+ },
+
+ /**
+ @private
+
+ Get the absolute route for the current state and a given
+ hash.
+
+ This method is private, as it expects a serialized hash,
+ not the original context object.
+ */
+ absoluteRoute: function(manager, hash) {
+ var parentState = get(this, 'parentState');
+ var path = '', generated;
+
+ // If the parent state is routable, use its current path
+ // as this route's prefix.
+ if (get(parentState, 'isRoutable')) {
+ path = parentState.absoluteRoute(manager, hash);
+ }
+
+ var matcher = get(this, 'routeMatcher'),
+ serialized = manager.getStateMeta(this, 'serialized');
+
+ // merge the existing serialized object in with the passed
+ // in hash.
+ hash = hash || {};
+ merge(hash, serialized);
+
+ generated = matcher && matcher.generate(hash);
+
+ if (generated) {
+ path = path + '/' + generated;
+ }
+
+ return path;
+ },
+
+ /**
+ @private
+
+ At the moment, a state is routable if it has a string `route`
+ property. This heuristic may change.
+ */
+ isRoutable: Ember.computed(function() {
+ return typeof get(this, 'route') === 'string';
+ }).cacheable(),
+
+ /**
+ @private
+
+ Determine if this is the last routeable state
+ */
+ isLeafRoute: Ember.computed(function() {
+ if (get(this, 'isLeaf')) { return true; }
+ return !get(this, 'childStates').findProperty('isRoutable');
+ }).cacheable(),
+
+ /**
+ @private
+
+ A _RouteMatcher object generated from the current route's `route`
+ string property.
+ */
+ routeMatcher: Ember.computed(function() {
+ var route = get(this, 'route');
+ if (route) {
+ return Ember._RouteMatcher.create({ route: route });
+ }
+ }).cacheable(),
+
+ /**
+ @private
+
+ Check whether the route has dynamic segments and therefore takes
+ a context.
+ */
+ hasContext: Ember.computed(function() {
+ var routeMatcher = get(this, 'routeMatcher');
+ if (routeMatcher) {
+ return routeMatcher.identifiers.length > 0;
+ }
+ }).cacheable(),
+
+ /**
+ @private
+
+ The model class associated with the current state. This property
+ uses the `modelType` property, in order to allow it to be
+ specified as a String.
+ */
+ modelClass: Ember.computed(function() {
+ var modelType = get(this, 'modelType');
+
+ if (typeof modelType === 'string') {
+ return Ember.get(window, modelType);
+ } else {
+ return modelType;
+ }
+ }).cacheable(),
+
+ /**
+ @private
+
+ Get the model class for the state. The heuristic is:
+
+ * The state must have a single dynamic segment
+ * The dynamic segment must end in `_id`
+ * A dynamic segment like `blog_post_id` is converted into `BlogPost`
+ * The name is then looked up on the passed in namespace
+
+ The process of initializing an application with a router will
+ pass the application's namespace into the router, which will be
+ used here.
+ */
+ modelClassFor: function(namespace) {
+ var modelClass, routeMatcher, identifiers, match, className;
+
+ // if an explicit modelType was specified, use that
+ if (modelClass = get(this, 'modelClass')) { return modelClass; }
+
+ // if the router has no lookup namespace, we won't be able to guess
+ // the modelType
+ if (!namespace) { return; }
+
+ // make sure this state is actually a routable state
+ routeMatcher = get(this, 'routeMatcher');
+ if (!routeMatcher) { return; }
+
+ // only guess modelType for states with a single dynamic segment
+ // (no more, no fewer)
+ identifiers = routeMatcher.identifiers;
+ if (identifiers.length !== 2) { return; }
+
+ // extract the `_id` from the end of the dynamic segment; if the
+ // dynamic segment does not end in `_id`, we can't guess the
+ // modelType
+ match = identifiers[1].match(/^(.*)_id$/);
+ if (!match) { return; }
+
+ // convert the underscored type into a class form and look it up
+ // on the router's namespace
+ className = Ember.String.classify(match[1]);
+ return get(namespace, className);
+ },
+
+ /**
+ The default method that takes a `params` object and converts
+ it into an object.
+
+ By default, a params hash that looks like `{ post_id: 1 }`
+ will be looked up as `namespace.Post.find(1)`. This is
+ designed to work seamlessly with Ember Data, but will work
+ fine with any class that has a `find` method.
+ */
+ deserialize: function(manager, params) {
+ var modelClass, routeMatcher, param;
+
+ if (modelClass = this.modelClassFor(get(manager, 'namespace'))) {
+ Ember.assert("Expected "+modelClass.toString()+" to implement `find` for use in '"+this.get('path')+"' `deserialize`. Please implement the `find` method or overwrite `deserialize`.", modelClass.find);
+ return modelClass.find(params[paramForClass(modelClass)]);
+ }
+
+ return params;
+ },
+
+ /**
+ The default method that takes an object and converts it into
+ a params hash.
+
+ By default, if there is a single dynamic segment named
+ `blog_post_id` and the object is a `BlogPost` with an
+ `id` of `12`, the serialize method will produce:
+
+ { blog_post_id: 12 }
+ */
+ serialize: function(manager, context) {
+ var modelClass, routeMatcher, namespace, param, id;
+
+ if (Ember.empty(context)) { return ''; }
+
+ if (modelClass = this.modelClassFor(get(manager, 'namespace'))) {
+ param = paramForClass(modelClass);
+ id = get(context, 'id');
+ context = {};
+ context[param] = id;
+ }
+
+ return context;
+ },
+
+ /**
+ @private
+ */
+ resolvePath: function(manager, path) {
+ if (get(this, 'isLeafRoute')) { return Ember.A(); }
+
+ var childStates = get(this, 'childStates'), match;
+
+ childStates = Ember.A(childStates.filterProperty('isRoutable'));
+
+ childStates = childStates.sort(function(a, b) {
+ var aDynamicSegments = get(a, 'routeMatcher.identifiers.length'),
+ bDynamicSegments = get(b, 'routeMatcher.identifiers.length'),
+ aRoute = get(a, 'route'),
+ bRoute = get(b, 'route');
+
+ if (aRoute.indexOf(bRoute) === 0) {
+ return -1;
+ } else if (bRoute.indexOf(aRoute) === 0) {
+ return 1;
+ }
+
+ if (aDynamicSegments !== bDynamicSegments) {
+ return aDynamicSegments - bDynamicSegments;
+ }
+
+ return get(b, 'route.length') - get(a, 'route.length');
+ });
+
+ var state = childStates.find(function(state) {
+ var matcher = get(state, 'routeMatcher');
+ if (match = matcher.match(path)) { return true; }
+ });
+
+ Ember.assert("Could not find state for path " + path, !!state);
+
+ var resolvedState = Ember._ResolvedState.create({
+ manager: manager,
+ state: state,
+ match: match
+ });
+
+ var states = state.resolvePath(manager, match.remaining);
+
+ return Ember.A([resolvedState]).pushObjects(states);
+ },
+
+ /**
+ @private
+
+ Once `unroute` has finished unwinding, `routePath` will be called
+ with the remainder of the route.
+
+ For example, if you were in the /posts/1/comments state, and you
+ moved into the /posts/2/comments state, `routePath` will be called
+ on the state whose path is `/posts` with the path `/2/comments`.
+ */
+ routePath: function(manager, path) {
+ if (get(this, 'isLeafRoute')) { return; }
+
+ var resolvedStates = this.resolvePath(manager, path),
+ hasPromises = resolvedStates.some(function(s) { return get(s, 'hasPromise'); });
+
+ function runTransition() {
+ resolvedStates.forEach(function(rs) { rs.transition(); });
+ }
+
+ if (hasPromises) {
+ manager.transitionTo('loading');
+
+ Ember.assert('Loading state should be the child of a route', Ember.Routable.detect(get(manager, 'currentState.parentState')));
+ Ember.assert('Loading state should not be a route', !Ember.Routable.detect(get(manager, 'currentState')));
+
+ manager.handleStatePromises(resolvedStates, runTransition);
+ } else {
+ runTransition();
+ }
+ },
+
+ /**
+ @private
+
+ When you move to a new route by pressing the back
+ or forward button, this method is called first.
+
+ Its job is to move the state manager into a parent
+ state of the state it will eventually move into.
+ */
+ unroutePath: function(router, path) {
+ var parentState = get(this, 'parentState');
+
+ // If we're at the root state, we're done
+ if (parentState === router) {
+ return;
+ }
+
+ path = path.replace(/^(?=[^\/])/, "/");
+ var absolutePath = this.absoluteRoute(router);
+
+ var route = get(this, 'route');
+
+ // If the current path is empty, move up one state,
+ // because the index ('/') state must be a leaf node.
+ if (route !== '/') {
+ // If the current path is a prefix of the path we're trying
+ // to go to, we're done.
+ var index = path.indexOf(absolutePath),
+ next = path.charAt(absolutePath.length);
+
+ if (index === 0 && (next === "/" || next === "")) {
+ return;
+ }
+ }
+
+ // Transition to the parent and call unroute again.
+ router.enterState({
+ exitStates: [this],
+ enterStates: [],
+ finalState: parentState
+ });
+
+ router.send('unroutePath', path);
+ },
+
+ /**
+ The `connectOutlets` event will be triggered once a
+ state has been entered. It will be called with the
+ route's context.
+ */
+ connectOutlets: Ember.K,
+
+ /**
+ The `navigateAway` event will be triggered when the
+ URL changes due to the back/forward button
+ */
+ navigateAway: Ember.K
+});
+
+})();
+
+
+
+(function() {
+/**
+ @class
+ @extends Ember.Routable
+*/
+Ember.Route = Ember.State.extend(Ember.Routable);
+
+})();
+
+
+
+(function() {
+var escapeForRegex = function(text) {
+ return text.replace(/[\-\[\]{}()*+?.,\\\^\$|#\s]/g, "\\$&");
+};
+
+Ember._RouteMatcher = Ember.Object.extend({
+ state: null,
+
+ init: function() {
+ var route = this.route,
+ identifiers = [],
+ count = 1,
+ escaped;
+
+ // Strip off leading slash if present
+ if (route.charAt(0) === '/') {
+ route = this.route = route.substr(1);
+ }
+
+ escaped = escapeForRegex(route);
+
+ var regex = escaped.replace(/:([a-z_]+)(?=$|\/)/gi, function(match, id) {
+ identifiers[count++] = id;
+ return "([^/]+)";
+ });
+
+ this.identifiers = identifiers;
+ this.regex = new RegExp("^/?" + regex);
+ },
+
+ match: function(path) {
+ var match = path.match(this.regex);
+
+ if (match) {
+ var identifiers = this.identifiers,
+ hash = {};
+
+ for (var i=1, l=identifiers.length; i<l; i++) {
+ hash[identifiers[i]] = match[i];
+ }
+
+ return {
+ remaining: path.substr(match[0].length),
+ hash: identifiers.length > 0 ? hash : null
+ };
+ }
+ },
+
+ generate: function(hash) {
+ var identifiers = this.identifiers, route = this.route, id;
+ for (var i=1, l=identifiers.length; i<l; i++) {
+ id = identifiers[i];
+ route = route.replace(new RegExp(":" + id), hash[id]);
+ }
+ return route;
+ }
+});
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set;
+
+var merge = function(original, hash) {
+ for (var prop in hash) {
+ if (!hash.hasOwnProperty(prop)) { continue; }
+ if (original.hasOwnProperty(prop)) { continue; }
+
+ original[prop] = hash[prop];
+ }
+};
+
+/**
+ @class
+
+ `Ember.Router` is the subclass of `Ember.StateManager` responsible for providing URL-based
+ application state detection. The `Ember.Router` instance of an application detects the browser URL
+ at application load time and attempts to match it to a specific application state. Additionally
+ the router will update the URL to reflect an application's state changes over time.
+
+ ## Adding a Router Instance to Your Application
+ An instance of Ember.Router can be associated with an instance of Ember.Application in one of two ways:
+
+ You can provide a subclass of Ember.Router as the `Router` property of your application. An instance
+ of this Router class will be instantiated and route detection will be enabled when the application's
+ `initialize` method is called. The Router instance will be available as the `router` property
+ of the application:
+
+ App = Ember.Application.create({
+ Router: Ember.Router.extend({ ... })
+ });
+
+ App.initialize();
+ App.get('router') // an instance of App.Router
+
+ If you want to define a Router instance elsewhere, you can pass the instance to the application's
+ `initialize` method:
+
+ App = Ember.Application.create();
+ aRouter = Ember.Router.create({ ... });
+
+ App.initialize(aRouter);
+ App.get('router') // aRouter
+
+ ## Adding Routes to a Router
+ The `initialState` property of Ember.Router instances is named `root`. The state stored in this
+ property must be a subclass of Ember.Route. The `root` route acts as the container for the
+ set of routable states but is not routable itself. It should have states that are also subclasses
+ of Ember.Route which each have a `route` property describing the URL pattern you would like to detect.
+
+ App = Ember.Application.create({
+ Router: Ember.Router.extend({
+ root: Ember.Route.extend({
+ index: Ember.Route.extend({
+ route: '/'
+ }),
+ ... additional Ember.Routes ...
+ })
+ })
+ });
+ App.initialize();
+
+
+ When an application loads, Ember will parse the URL and attempt to find an Ember.Route within
+ the application's states that matches. (The example URL-matching below will use the default
+ 'hash syntax' provided by `Ember.HashLocation`.)
+
+ In the following route structure:
+
+ App = Ember.Application.create({
+ Router: Ember.Router.extend({
+ root: Ember.Route.extend({
+ aRoute: Ember.Route.extend({
+ route: '/'
+ }),
+ bRoute: Ember.Route.extend({
+ route: '/alphabeta'
+ })
+ })
+ })
+ });
+ App.initialize();
+
+ Loading the page at the URL '#/' will detect the route property of 'root.aRoute' ('/') and
+ transition the router first to the state named 'root' and then to the substate 'aRoute'.
+
+ Respectively, loading the page at the URL '#/alphabeta' would detect the route property of
+ 'root.bRoute' ('/alphabeta') and transition the router first to the state named 'root' and
+ then to the substate 'bRoute'.
+
+ ## Adding Nested Routes to a Router
+ Routes can contain nested subroutes each with their own `route` property describing the nested
+ portion of the URL they would like to detect and handle. Router, like all instances of StateManager,
+ cannot call `transitonTo` with an intermediary state. To avoid transitioning the Router into an
+ intermediary state when detecting URLs, a Route with nested routes must define both a base `route`
+ property for itself and a child Route with a `route` property of `'/'` which will be transitioned
+ to when the base route is detected in the URL:
+
+ Given the following application code:
+
+ App = Ember.Application.create({
+ Router: Ember.Router.extend({
+ root: Ember.Route.extend({
+ aRoute: Ember.Route.extend({
+ route: '/theBaseRouteForThisSet',
+
+ indexSubRoute: Ember.Route.extend({
+ route: '/',
+ }),
+
+ subRouteOne: Ember.Route.extend({
+ route: '/subroute1
+ }),
+
+ subRouteTwo: Ember.Route.extend({
+ route: '/subRoute2'
+ })
+
+ })
+ })
+ })
+ });
+ App.initialize();
+
+ When the application is loaded at '/theBaseRouteForThisSet' the Router will transition to the route
+ at path 'root.aRoute' and then transition to state 'indexSubRoute'.
+
+ When the application is loaded at '/theBaseRouteForThisSet/subRoute1' the Router will transition to
+ the route at path 'root.aRoute' and then transition to state 'subRouteOne'.
+
+ ## Route Transition Events
+ Transitioning between Ember.Route instances (including the transition into the detected
+ route when loading the application) triggers the same transition events as state transitions for
+ base `Ember.State`s. However, the default `setup` transition event is named `connectOutlets` on
+ Ember.Router instances (see 'Changing View Hierarchy in Response To State Change').
+
+ The following route structure when loaded with the URL "#/"
+
+ App = Ember.Application.create({
+ Router: Ember.Router.extend({
+ root: Ember.Route.extend({
+ aRoute: Ember.Route.extend({
+ route: '/',
+ enter: function(router) {
+ console.log("entering root.aRoute from", router.get('currentState.name'));
+ },
+ connectOutlets: function(router) {
+ console.log("entered root.aRoute, fully transitioned to", router.get('currentState.path'));
+ }
+ })
+ })
+ })
+ });
+ App.initialize();
+
+ Will result in console output of:
+
+ 'entering root.aRoute from root'
+ 'entered root.aRoute, fully transitioned to root.aRoute '
+
+ Ember.Route has two additional callbacks for handling URL serialization and deserialization. See
+ 'Serializing/Deserializing URLs'
+
+ ## Routes With Dynamic Segments
+ An Ember.Route's `route` property can reference dynamic sections of the URL by prefacing a URL segment
+ with the ':' character. The values of these dynamic segments will be passed as a hash to the
+ `deserialize` method of the matching Route (see 'Serializing/Deserializing URLs').
+
+ ## Serializing/Deserializing URLs
+ Ember.Route has two callbacks for associating a particular object context with a URL: `serialize`
+ for converting an object into a parameters hash to fill dynamic segments of a URL and `deserialize`
+ for converting a hash of dynamic segments from the URL into the appropriate object.
+
+ ### Deserializing A URL's Dynamic Segments
+ When an application is first loaded or the URL is changed manually (e.g. through the browser's
+ back button) the `deserialize` method of the URL's matching Ember.Route will be called with
+ the application's router as its first argument and a hash of the URLs dynamic segments and values
+ as its second argument.
+
+ The following route structure when loaded with the URL "#/fixed/thefirstvalue/anotherFixed/thesecondvalue":
+
+ App = Ember.Application.create({
+ Router: Ember.Router.extend({
+ root: Ember.Route.extend({
+ aRoute: Ember.Route.extend({
+ route: '/fixed/:dynamicSectionA/anotherFixed/:dynamicSectionB',
+ deserialize: function(router, params) {}
+ })
+ })
+ })
+ });
+ App.initialize();
+
+ Will call the 'deserialize' method of the Route instance at the path 'root.aRoute' with the
+ following hash as its second argument:
+
+ {
+ dynamicSectionA: 'thefirstvalue',
+ dynamicSectionB: 'thesecondvalue'
+ }
+
+ Within `deserialize` you should use this information to retrieve or create an appropriate context
+ object for the given URL (e.g. by loading from a remote API or accessing the browser's
+ `localStorage`). This object must be the `return` value of `deserialize` and will be
+ passed to the Route's `connectOutlets` and `serialize` methods.
+
+ When an application's state is changed from within the application itself, the context provided for
+ the transition will be passed and `deserialize` is not called (see 'Transitions Between States').
+
+ ### Serializing An Object For URLs with Dynamic Segments
+ When transitioning into a Route whose `route` property contains dynamic segments the Route's
+ `serialize` method is called with the Route's router as the first argument and the Route's
+ context as the second argument. The return value of `serialize` will be use to populate the
+ dynamic segments and should be a object with keys that match the names of the dynamic sections.
+
+ Given the following route structure:
+
+ App = Ember.Application.create({
+ Router: Ember.Router.extend({
+ root: Ember.Route.extend({
+ aRoute: Ember.Route.extend({
+ route: '/'
+ }),
+ bRoute: Ember.Route.extend({
+ route: '/staticSection/:someDynamicSegment',
+ serialize: function(router, context) {
+ return {
+ someDynamicSegment: context.get('name')
+ }
+ }
+ })
+ })
+ })
+ });
+ App.initialize();
+
+
+ Transitioning to "root.bRoute" with a context of `Object.create({name: 'Yehuda'})` will call
+ the Route's `serialize` method with the context as its second argument and update the URL to
+ '#/staticSection/Yehuda'.
+
+ ## Transitions Between States
+ Once a routed application has initialized its state based on the entry URL, subsequent transitions to other
+ states will update the URL if the entered Route has a `route` property. Given the following route structure
+ loaded at the URL '#/':
+
+ App = Ember.Application.create({
+ Router: Ember.Router.extend({
+ root: Ember.Route.extend({
+ aRoute: Ember.Route.extend({
+ route: '/',
+ moveElsewhere: Ember.Route.transitionTo('bRoute')
+ }),
+ bRoute: Ember.Route.extend({
+ route: '/someOtherLocation'
+ })
+ })
+ })
+ });
+ App.initialize();
+
+ And application code:
+
+ App.get('router').send('moveElsewhere');
+
+ Will transition the application's state to 'root.bRoute' and trigger an update of the URL to
+ '#/someOtherLocation'.
+
+ For URL patterns with dynamic segments a context can be supplied as the second argument to `send`.
+ The router will match dynamic segments names to keys on this object and fill in the URL with the
+ supplied values. Given the following state structure loaded at the URL '#/':
+
+ App = Ember.Application.create({
+ Router: Ember.Router.extend({
+ root: Ember.Route.extend({
+ aRoute: Ember.Route.extend({
+ route: '/',
+ moveElsewhere: Ember.Route.transitionTo('bRoute')
+ }),
+ bRoute: Ember.Route.extend({
+ route: '/a/route/:dynamicSection/:anotherDynamicSection',
+ connectOutlets: function(router, context) {},
+ })
+ })
+ })
+ });
+ App.initialize();
+
+ And application code:
+
+ App.get('router').send('moveElsewhere', {
+ dynamicSection: '42',
+ anotherDynamicSection: 'Life'
+ });
+
+ Will transition the application's state to 'root.bRoute' and trigger an update of the URL to
+ '#/a/route/42/Life'.
+
+ The context argument will also be passed as the second argument to the `serialize` method call.
+
+ ## Injection of Controller Singletons
+ During application initialization Ember will detect properties of the application ending in 'Controller',
+ create singleton instances of each class, and assign them as a properties on the router. The property name
+ will be the UpperCamel name converted to lowerCamel format. These controller classes should be subclasses
+ of Ember.ObjectController, Ember.ArrayController, Ember.Controller, or a custom Ember.Object that includes the
+ Ember.ControllerMixin mixin.
+
+ App = Ember.Application.create({
+ FooController: Ember.Object.create(Ember.ControllerMixin),
+ Router: Ember.Router.extend({ ... })
+ });
+
+ App.get('router.fooController'); // instance of App.FooController
+
+ The controller singletons will have their `namespace` property set to the application and their `target`
+ property set to the application's router singleton for easy integration with Ember's user event system.
+ See 'Changing View Hierarchy in Response To State Change' and 'Responding to User-initiated Events'
+
+ ## Responding to User-initiated Events
+ Controller instances injected into the router at application initialization have their `target` property
+ set to the application's router instance. These controllers will also be the default `context` for their
+ associated views. Uses of the `{{action}}` helper will automatically target the application's router.
+
+ Given the following application entered at the URL '#/':
+
+ App = Ember.Application.create({
+ Router: Ember.Router.extend({
+ root: Ember.Route.extend({
+ aRoute: Ember.Route.extend({
+ route: '/',
+ anActionOnTheRouter: function(router, context) {
+ router.transitionTo('anotherState', context);
+ }
+ })
+ anotherState: Ember.Route.extend({
+ route: '/differentUrl',
+ connectOutlets: function(router, context) {
+
+ }
+ })
+ })
+ })
+ });
+ App.initialize();
+
+ The following template:
+
+ <script type="text/x-handlebars" data-template-name="aView">
+ <h1><a {{action anActionOnTheRouter}}>{{title}}</a></h1>
+ </script>
+
+ Will delegate `click` events on the rendered `h1` to the application's router instance. In this case the
+ `anActionOnTheRouter` method of the state at 'root.aRoute' will be called with the view's controller
+ as the context argument. This context will be passed to the `connectOutlets` as its second argument.
+
+ Different `context` can be supplied from within the `{{action}}` helper, allowing specific context passing
+ between application states:
+
+ <script type="text/x-handlebars" data-template-name="photos">
+ {{#each photo in controller}}
+ <h1><a {{action showPhoto photo}}>{{title}}</a></h1>
+ {{/each}}
+ </script>
+
+ See Handlebars.helpers.action for additional usage examples.
+
+
+ ## Changing View Hierarchy in Response To State Change
+ Changes in application state that change the URL should be accompanied by associated changes in view
+ hierarchy. This can be accomplished by calling 'connectOutlet' on the injected controller singletons from
+ within the 'connectOutlets' event of an Ember.Route:
+
+ App = Ember.Application.create({
+ OneController: Ember.ObjectController.extend(),
+ OneView: Ember.View.extend(),
+
+ AnotherController: Ember.ObjectController.extend(),
+ AnotherView: Ember.View.extend(),
+
+ Router: Ember.Router.extend({
+ root: Ember.Route.extend({
+ aRoute: Ember.Route.extend({
+ route: '/',
+ connectOutlets: function(router, context) {
+ router.get('oneController').connectOutlet('another');
+ },
+ })
+ })
+ })
+ });
+ App.initialize();
+
+
+ This will detect the '{{outlet}}' portion of `oneController`'s view (an instance of `App.OneView`) and
+ fill it with a rendered instance of `App.AnotherView` whose `context` will be the single instance of
+ `App.AnotherController` stored on the router in the `anotherController` property.
+
+ For more information about Outlets, see `Ember.Handlebars.helpers.outlet`. For additional information on
+ the `connectOutlet` method, see `Ember.Controller.connectOutlet`. For more information on
+ controller injections, see `Ember.Application#initialize()`. For additional information about view context,
+ see `Ember.View`.
+
+ @extends Ember.StateManager
+*/
+Ember.Router = Ember.StateManager.extend(
+/** @scope Ember.Router.prototype */ {
+
+ /**
+ @property {String}
+ @default 'root'
+ */
+ initialState: 'root',
+
+ /**
+ The `Ember.Location` implementation to be used to manage the application
+ URL state. The following values are supported:
+
+ * 'hash': Uses URL fragment identifiers (like #/blog/1) for routing.
+ * 'none': Does not read or set the browser URL, but still allows for
+ routing to happen. Useful for testing.
+
+ @type String
+ @default 'hash'
+ */
+ location: 'hash',
+
+ /**
+ This is only used when a history location is used so that applications that
+ don't live at the root of the domain can append paths to their root.
+
+ @type String
+ @default '/'
+ */
+
+ rootURL: '/',
+
+ /**
+ On router, transitionEvent should be called connectOutlets
+
+ @property {String}
+ @default 'connectOutlets'
+ */
+ transitionEvent: 'connectOutlets',
+
+ transitionTo: function() {
+ this.abortRoutingPromises();
+ this._super.apply(this, arguments);
+ },
+
+ route: function(path) {
+ this.abortRoutingPromises();
+
+ set(this, 'isRouting', true);
+
+ var routableState;
+
+ try {
+ path = path.replace(/^(?=[^\/])/, "/");
+
+ this.send('navigateAway');
+ this.send('unroutePath', path);
+
+ routableState = get(this, 'currentState');
+ while (routableState && !routableState.get('isRoutable')) {
+ routableState = get(routableState, 'parentState');
+ }
+ var currentURL = routableState ? routableState.absoluteRoute(this) : '';
+ var rest = path.substr(currentURL.length);
+
+ this.send('routePath', rest);
+ } finally {
+ set(this, 'isRouting', false);
+ }
+
+ routableState = get(this, 'currentState');
+ while (routableState && !routableState.get('isRoutable')) {
+ routableState = get(routableState, 'parentState');
+ }
+
+ if (routableState) {
+ routableState.updateRoute(this, get(this, 'location'));
+ }
+ },
+
+ urlFor: function(path, hash) {
+ var currentState = get(this, 'currentState') || this,
+ state = this.findStateByPath(currentState, path);
+
+ Ember.assert(Ember.String.fmt("Could not find route with path '%@'", [path]), !!state);
+ Ember.assert("To get a URL for a state, it must have a `route` property.", !!get(state, 'routeMatcher'));
+
+ var location = get(this, 'location'),
+ absoluteRoute = state.absoluteRoute(this, hash);
+
+ return location.formatURL(absoluteRoute);
+ },
+
+ urlForEvent: function(eventName) {
+ var contexts = Array.prototype.slice.call(arguments, 1);
+ var currentState = get(this, 'currentState');
+ var targetStateName = currentState.lookupEventTransition(eventName);
+
+ Ember.assert(Ember.String.fmt("You must specify a target state for event '%@' in order to link to it in the current state '%@'.", [eventName, get(currentState, 'path')]), !!targetStateName);
+
+ var targetState = this.findStateByPath(currentState, targetStateName);
+
+ Ember.assert("Your target state name " + targetStateName + " for event " + eventName + " did not resolve to a state", !!targetState);
+
+ var hash = this.serializeRecursively(targetState, contexts, {});
+
+ return this.urlFor(targetStateName, hash);
+ },
+
+ /** @private */
+ serializeRecursively: function(state, contexts, hash) {
+ var parentState,
+ context = get(state, 'hasContext') ? contexts.pop() : null;
+ merge(hash, state.serialize(this, context));
+ parentState = state.get("parentState");
+ if (parentState && parentState instanceof Ember.Route) {
+ return this.serializeRecursively(parentState, contexts, hash);
+ } else {
+ return hash;
+ }
+ },
+
+ abortRoutingPromises: function() {
+ if (this._routingPromises) {
+ this._routingPromises.abort();
+ this._routingPromises = null;
+ }
+ },
+
+ /**
+ @private
+ */
+ handleStatePromises: function(states, complete) {
+ this.abortRoutingPromises();
+
+ this.set('isLocked', true);
+
+ var manager = this;
+
+ this._routingPromises = Ember._PromiseChain.create({
+ promises: states.slice(),
+
+ successCallback: function() {
+ manager.set('isLocked', false);
+ complete();
+ },
+
+ failureCallback: function() {
+ throw "Unable to load object";
+ },
+
+ promiseSuccessCallback: function(item, args) {
+ set(item, 'object', args[0]);
+ },
+
+ abortCallback: function() {
+ manager.set('isLocked', false);
+ }
+ }).start();
+ },
+
+ /** @private */
+ init: function() {
+ this._super();
+
+ var location = get(this, 'location'),
+ rootURL = get(this, 'rootURL');
+
+ if ('string' === typeof location) {
+ set(this, 'location', Ember.Location.create({
+ implementation: location,
+ rootURL: rootURL
+ }));
+ }
+ },
+
+ /** @private */
+ willDestroy: function() {
+ get(this, 'location').destroy();
+ }
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Routing
+// Copyright: ©2012 Tilde Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+(function() {
+var get = Ember.get;
+
+Ember.StateManager.reopen(
+/** @scope Ember.StateManager.prototype */ {
+
+ /**
+ If the current state is a view state or the descendent of a view state,
+ this property will be the view associated with it. If there is no
+ view state active in this state manager, this value will be null.
+
+ @type Ember.View
+ */
+ currentView: Ember.computed(function() {
+ var currentState = get(this, 'currentState'),
+ view;
+
+ while (currentState) {
+ // TODO: Remove this when view state is removed
+ if (get(currentState, 'isViewState')) {
+ view = get(currentState, 'view');
+ if (view) { return view; }
+ }
+
+ currentState = get(currentState, 'parentState');
+ }
+
+ return null;
+ }).property('currentState').cacheable()
+
+});
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set;
+/**
+ @class
+ @deprecated
+
+ Ember.ViewState extends Ember.State to control the presence of a childView within a
+ container based on the current state of the ViewState's StateManager.
+
+ ## Interactions with Ember's View System.
+ When combined with instances of `Ember.StateManager`, ViewState is designed to
+ interact with Ember's view system to control which views are added to
+ and removed from the DOM based on the manager's current state.
+
+ By default, a StateManager will manage views inside the 'body' element. This can be
+ customized by setting the `rootElement` property to a CSS selector of an existing
+ HTML element you would prefer to receive view rendering.
+
+
+ viewStates = Ember.StateManager.create({
+ rootElement: '#some-other-element'
+ })
+
+ You can also specify a particular instance of `Ember.ContainerView` you would like to receive
+ view rendering by setting the `rootView` property. You will be responsible for placing
+ this element into the DOM yourself.
+
+ aLayoutView = Ember.ContainerView.create()
+
+ // make sure this view instance is added to the browser
+ aLayoutView.appendTo('body')
+
+ App.viewStates = Ember.StateManager.create({
+ rootView: aLayoutView
+ })
+
+
+ Once you have an instance of StateManager controlling a view, you can provide states
+ that are instances of `Ember.ViewState`. When the StateManager enters a state
+ that is an instance of `Ember.ViewState` that `ViewState`'s `view` property will be
+ instantiated and inserted into the StateManager's `rootView` or `rootElement`.
+ When a state is exited, the `ViewState`'s view will be removed from the StateManager's
+ view.
+
+ ContactListView = Ember.View.extend({
+ classNames: ['my-contacts-css-class'],
+ template: Ember.Handlebars.compile('<h2>People</h2>')
+ })
+
+ PhotoListView = Ember.View.extend({
+ classNames: ['my-photos-css-class'],
+ template: Ember.Handlebars.compile('<h2>Photos</h2>')
+ })
+
+ viewStates = Ember.StateManager.create({
+ showingPeople: Ember.ViewState.create({
+ view: ContactListView
+ }),
+ showingPhotos: Ember.ViewState.create({
+ view: PhotoListView
+ })
+ })
+
+ viewStates.transitionTo('showingPeople')
+
+ The above code will change the rendered HTML from
+
+ <body></body>
+
+ to
+
+ <body>
+ <div id="ember1" class="ember-view my-contacts-css-class">
+ <h2>People</h2>
+ </div>
+ </body>
+
+ Changing the current state via `transitionTo` from `showingPeople` to
+ `showingPhotos` will remove the `showingPeople` view and add the `showingPhotos` view:
+
+ viewStates.transitionTo('showingPhotos')
+
+ will change the rendered HTML to
+
+ <body>
+ <div id="ember2" class="ember-view my-photos-css-class">
+ <h2>Photos</h2>
+ </div>
+ </body>
+
+
+ When entering nested `ViewState`s, each state's view will be draw into the the StateManager's
+ `rootView` or `rootElement` as siblings.
+
+
+ ContactListView = Ember.View.extend({
+ classNames: ['my-contacts-css-class'],
+ template: Ember.Handlebars.compile('<h2>People</h2>')
+ })
+
+ EditAContactView = Ember.View.extend({
+ classNames: ['editing-a-contact-css-class'],
+ template: Ember.Handlebars.compile('Editing...')
+ })
+
+ viewStates = Ember.StateManager.create({
+ showingPeople: Ember.ViewState.create({
+ view: ContactListView,
+
+ withEditingPanel: Ember.ViewState.create({
+ view: EditAContactView
+ })
+ })
+ })
+
+
+ viewStates.transitionTo('showingPeople.withEditingPanel')
+
+
+ Will result in the following rendered HTML:
+
+ <body>
+ <div id="ember2" class="ember-view my-contacts-css-class">
+ <h2>People</h2>
+ </div>
+
+ <div id="ember2" class="ember-view editing-a-contact-css-class">
+ Editing...
+ </div>
+ </body>
+
+
+ ViewState views are added and removed from their StateManager's view via their
+ `enter` and `exit` methods. If you need to override these methods, be sure to call
+ `_super` to maintain the adding and removing behavior:
+
+ viewStates = Ember.StateManager.create({
+ aState: Ember.ViewState.create({
+ view: Ember.View.extend({}),
+ enter: function(manager){
+ // calling _super ensures this view will be
+ // properly inserted
+ this._super(manager);
+
+ // now you can do other things
+ }
+ })
+ })
+
+ ## Managing Multiple Sections of A Page With States
+ Multiple StateManagers can be combined to control multiple areas of an application's rendered views.
+ Given the following HTML body:
+
+ <body>
+ <div id='sidebar-nav'>
+ </div>
+ <div id='content-area'>
+ </div>
+ </body>
+
+ You could separately manage view state for each section with two StateManagers
+
+ navigationStates = Ember.StateManager.create({
+ rootElement: '#sidebar-nav',
+ userAuthenticated: Em.ViewState.create({
+ view: Ember.View.extend({})
+ }),
+ userNotAuthenticated: Em.ViewState.create({
+ view: Ember.View.extend({})
+ })
+ })
+
+ contentStates = Ember.StateManager.create({
+ rootElement: '#content-area',
+ books: Em.ViewState.create({
+ view: Ember.View.extend({})
+ }),
+ music: Em.ViewState.create({
+ view: Ember.View.extend({})
+ })
+ })
+
+
+ If you prefer to start with an empty body and manage state programmatically you
+ can also take advantage of StateManager's `rootView` property and the ability of
+ `Ember.ContainerView`s to manually manage their child views.
+
+
+ dashboard = Ember.ContainerView.create({
+ childViews: ['navigationAreaView', 'contentAreaView'],
+ navigationAreaView: Ember.ContainerView.create({}),
+ contentAreaView: Ember.ContainerView.create({})
+ })
+
+ navigationStates = Ember.StateManager.create({
+ rootView: dashboard.get('navigationAreaView'),
+ userAuthenticated: Em.ViewState.create({
+ view: Ember.View.extend({})
+ }),
+ userNotAuthenticated: Em.ViewState.create({
+ view: Ember.View.extend({})
+ })
+ })
+
+ contentStates = Ember.StateManager.create({
+ rootView: dashboard.get('contentAreaView'),
+ books: Em.ViewState.create({
+ view: Ember.View.extend({})
+ }),
+ music: Em.ViewState.create({
+ view: Ember.View.extend({})
+ })
+ })
+
+ dashboard.appendTo('body')
+
+ ## User Manipulation of State via `{{action}}` Helpers
+ The Handlebars `{{action}}` helper is StateManager-aware and will use StateManager action sending
+ to connect user interaction to action-based state transitions.
+
+ Given the following body and handlebars template
+
+ <body>
+ <script type='text/x-handlebars'>
+ <a href="#" {{action "anAction" target="App.appStates"}}> Go </a>
+ </script>
+ </body>
+
+ And application code
+
+ App = Ember.Application.create()
+ App.appStates = Ember.StateManager.create({
+ initialState: 'aState',
+ aState: Ember.State.create({
+ anAction: function(manager, context){}
+ }),
+ bState: Ember.State.create({})
+ })
+
+ A user initiated click or touch event on "Go" will trigger the 'anAction' method of
+ `App.appStates.aState` with `App.appStates` as the first argument and a
+ `jQuery.Event` object as the second object. The `jQuery.Event` will include a property
+ `view` that references the `Ember.View` object that was interacted with.
+
+**/
+Ember.ViewState = Ember.State.extend(
+/** @scope Ember.ViewState.prototype */ {
+ isViewState: true,
+
+ init: function() {
+ Ember.deprecate("Ember.ViewState is deprecated and will be removed from future releases. Consider using the outlet pattern to display nested views instead. For more information, see http://emberjs.com/guides/outlets/.");
+ return this._super();
+ },
+
+ enter: function(stateManager) {
+ var view = get(this, 'view'), root, childViews;
+
+ if (view) {
+ if (Ember.View.detect(view)) {
+ view = view.create();
+ set(this, 'view', view);
+ }
+
+ Ember.assert('view must be an Ember.View', view instanceof Ember.View);
+
+ root = stateManager.get('rootView');
+
+ if (root) {
+ childViews = get(root, 'childViews');
+ childViews.pushObject(view);
+ } else {
+ root = stateManager.get('rootElement') || 'body';
+ view.appendTo(root);
+ }
+ }
+ },
+
+ exit: function(stateManager) {
+ var view = get(this, 'view');
+
+ if (view) {
+ // If the view has a parent view, then it is
+ // part of a view hierarchy and should be removed
+ // from its parent.
+ if (get(view, 'parentView')) {
+ view.removeFromParent();
+ } else {
+
+ // Otherwise, the view is a "root view" and
+ // was appended directly to the DOM.
+ view.remove();
+ }
+ }
+ }
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Statecharts
+// Copyright: ©2011 Living Social Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+(function() {
+// ==========================================================================
+// Project: metamorph
+// Copyright: ©2011 My Company Inc. All rights reserved.
+// ==========================================================================
+
+(function(window) {
+
+ var K = function(){},
+ guid = 0,
+ document = window.document,
+
+ // Feature-detect the W3C range API, the extended check is for IE9 which only partially supports ranges
+ supportsRange = ('createRange' in document) && (typeof Range !== 'undefined') && Range.prototype.createContextualFragment,
+
+ // Internet Explorer prior to 9 does not allow setting innerHTML if the first element
+ // is a "zero-scope" element. This problem can be worked around by making
+ // the first node an invisible text node. We, like Modernizr, use &shy;
+ needsShy = (function(){
+ var testEl = document.createElement('div');
+ testEl.innerHTML = "<div></div>";
+ testEl.firstChild.innerHTML = "<script></script>";
+ return testEl.firstChild.innerHTML === '';
+ })();
+
+ // Constructor that supports either Metamorph('foo') or new
+ // Metamorph('foo');
+ //
+ // Takes a string of HTML as the argument.
+
+ var Metamorph = function(html) {
+ var self;
+
+ if (this instanceof Metamorph) {
+ self = this;
+ } else {
+ self = new K();
+ }
+
+ self.innerHTML = html;
+ var myGuid = 'metamorph-'+(guid++);
+ self.start = myGuid + '-start';
+ self.end = myGuid + '-end';
+
+ return self;
+ };
+
+ K.prototype = Metamorph.prototype;
+
+ var rangeFor, htmlFunc, removeFunc, outerHTMLFunc, appendToFunc, afterFunc, prependFunc, startTagFunc, endTagFunc;
+
+ outerHTMLFunc = function() {
+ return this.startTag() + this.innerHTML + this.endTag();
+ };
+
+ startTagFunc = function() {
+ return "<script id='" + this.start + "' type='text/x-placeholder'></script>";
+ };
+
+ endTagFunc = function() {
+ return "<script id='" + this.end + "' type='text/x-placeholder'></script>";
+ };
+
+ // If we have the W3C range API, this process is relatively straight forward.
+ if (supportsRange) {
+
+ // Get a range for the current morph. Optionally include the starting and
+ // ending placeholders.
+ rangeFor = function(morph, outerToo) {
+ var range = document.createRange();
+ var before = document.getElementById(morph.start);
+ var after = document.getElementById(morph.end);
+
+ if (outerToo) {
+ range.setStartBefore(before);
+ range.setEndAfter(after);
+ } else {
+ range.setStartAfter(before);
+ range.setEndBefore(after);
+ }
+
+ return range;
+ };
+
+ htmlFunc = function(html, outerToo) {
+ // get a range for the current metamorph object
+ var range = rangeFor(this, outerToo);
+
+ // delete the contents of the range, which will be the
+ // nodes between the starting and ending placeholder.
+ range.deleteContents();
+
+ // create a new document fragment for the HTML
+ var fragment = range.createContextualFragment(html);
+
+ // insert the fragment into the range
+ range.insertNode(fragment);
+ };
+
+ removeFunc = function() {
+ // get a range for the current metamorph object including
+ // the starting and ending placeholders.
+ var range = rangeFor(this, true);
+
+ // delete the entire range.
+ range.deleteContents();
+ };
+
+ appendToFunc = function(node) {
+ var range = document.createRange();
+ range.setStart(node);
+ range.collapse(false);
+ var frag = range.createContextualFragment(this.outerHTML());
+ node.appendChild(frag);
+ };
+
+ afterFunc = function(html) {
+ var range = document.createRange();
+ var after = document.getElementById(this.end);
+
+ range.setStartAfter(after);
+ range.setEndAfter(after);
+
+ var fragment = range.createContextualFragment(html);
+ range.insertNode(fragment);
+ };
+
+ prependFunc = function(html) {
+ var range = document.createRange();
+ var start = document.getElementById(this.start);
+
+ range.setStartAfter(start);
+ range.setEndAfter(start);
+
+ var fragment = range.createContextualFragment(html);
+ range.insertNode(fragment);
+ };
+
+ } else {
+ /**
+ * This code is mostly taken from jQuery, with one exception. In jQuery's case, we
+ * have some HTML and we need to figure out how to convert it into some nodes.
+ *
+ * In this case, jQuery needs to scan the HTML looking for an opening tag and use
+ * that as the key for the wrap map. In our case, we know the parent node, and
+ * can use its type as the key for the wrap map.
+ **/
+ var wrapMap = {
+ select: [ 1, "<select multiple='multiple'>", "</select>" ],
+ fieldset: [ 1, "<fieldset>", "</fieldset>" ],
+ table: [ 1, "<table>", "</table>" ],
+ tbody: [ 2, "<table><tbody>", "</tbody></table>" ],
+ tr: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+ colgroup: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+ map: [ 1, "<map>", "</map>" ],
+ _default: [ 0, "", "" ]
+ };
+
+ /**
+ * Given a parent node and some HTML, generate a set of nodes. Return the first
+ * node, which will allow us to traverse the rest using nextSibling.
+ *
+ * We need to do this because innerHTML in IE does not really parse the nodes.
+ **/
+ var firstNodeFor = function(parentNode, html) {
+ var arr = wrapMap[parentNode.tagName.toLowerCase()] || wrapMap._default;
+ var depth = arr[0], start = arr[1], end = arr[2];
+
+ if (needsShy) { html = '&shy;'+html; }
+
+ var element = document.createElement('div');
+ element.innerHTML = start + html + end;
+
+ for (var i=0; i<=depth; i++) {
+ element = element.firstChild;
+ }
+
+ // Look for &shy; to remove it.
+ if (needsShy) {
+ var shyElement = element;
+
+ // Sometimes we get nameless elements with the shy inside
+ while (shyElement.nodeType === 1 && !shyElement.nodeName) {
+ shyElement = shyElement.firstChild;
+ }
+
+ // At this point it's the actual unicode character.
+ if (shyElement.nodeType === 3 && shyElement.nodeValue.charAt(0) === "\u00AD") {
+ shyElement.nodeValue = shyElement.nodeValue.slice(1);
+ }
+ }
+
+ return element;
+ };
+
+ /**
+ * In some cases, Internet Explorer can create an anonymous node in
+ * the hierarchy with no tagName. You can create this scenario via:
+ *
+ * div = document.createElement("div");
+ * div.innerHTML = "<table>&shy<script></script><tr><td>hi</td></tr></table>";
+ * div.firstChild.firstChild.tagName //=> ""
+ *
+ * If our script markers are inside such a node, we need to find that
+ * node and use *it* as the marker.
+ **/
+ var realNode = function(start) {
+ while (start.parentNode.tagName === "") {
+ start = start.parentNode;
+ }
+
+ return start;
+ };
+
+ /**
+ * When automatically adding a tbody, Internet Explorer inserts the
+ * tbody immediately before the first <tr>. Other browsers create it
+ * before the first node, no matter what.
+ *
+ * This means the the following code:
+ *
+ * div = document.createElement("div");
+ * div.innerHTML = "<table><script id='first'></script><tr><td>hi</td></tr><script id='last'></script></table>
+ *
+ * Generates the following DOM in IE:
+ *
+ * + div
+ * + table
+ * - script id='first'
+ * + tbody
+ * + tr
+ * + td
+ * - "hi"
+ * - script id='last'
+ *
+ * Which means that the two script tags, even though they were
+ * inserted at the same point in the hierarchy in the original
+ * HTML, now have different parents.
+ *
+ * This code reparents the first script tag by making it the tbody's
+ * first child.
+ **/
+ var fixParentage = function(start, end) {
+ if (start.parentNode !== end.parentNode) {
+ end.parentNode.insertBefore(start, end.parentNode.firstChild);
+ }
+ };
+
+ htmlFunc = function(html, outerToo) {
+ // get the real starting node. see realNode for details.
+ var start = realNode(document.getElementById(this.start));
+ var end = document.getElementById(this.end);
+ var parentNode = end.parentNode;
+ var node, nextSibling, last;
+
+ // make sure that the start and end nodes share the same
+ // parent. If not, fix it.
+ fixParentage(start, end);
+
+ // remove all of the nodes after the starting placeholder and
+ // before the ending placeholder.
+ node = start.nextSibling;
+ while (node) {
+ nextSibling = node.nextSibling;
+ last = node === end;
+
+ // if this is the last node, and we want to remove it as well,
+ // set the `end` node to the next sibling. This is because
+ // for the rest of the function, we insert the new nodes
+ // before the end (note that insertBefore(node, null) is
+ // the same as appendChild(node)).
+ //
+ // if we do not want to remove it, just break.
+ if (last) {
+ if (outerToo) { end = node.nextSibling; } else { break; }
+ }
+
+ node.parentNode.removeChild(node);
+
+ // if this is the last node and we didn't break before
+ // (because we wanted to remove the outer nodes), break
+ // now.
+ if (last) { break; }
+
+ node = nextSibling;
+ }
+
+ // get the first node for the HTML string, even in cases like
+ // tables and lists where a simple innerHTML on a div would
+ // swallow some of the content.
+ node = firstNodeFor(start.parentNode, html);
+
+ // copy the nodes for the HTML between the starting and ending
+ // placeholder.
+ while (node) {
+ nextSibling = node.nextSibling;
+ parentNode.insertBefore(node, end);
+ node = nextSibling;
+ }
+ };
+
+ // remove the nodes in the DOM representing this metamorph.
+ //
+ // this includes the starting and ending placeholders.
+ removeFunc = function() {
+ var start = realNode(document.getElementById(this.start));
+ var end = document.getElementById(this.end);
+
+ this.html('');
+ start.parentNode.removeChild(start);
+ end.parentNode.removeChild(end);
+ };
+
+ appendToFunc = function(parentNode) {
+ var node = firstNodeFor(parentNode, this.outerHTML());
+
+ while (node) {
+ nextSibling = node.nextSibling;
+ parentNode.appendChild(node);
+ node = nextSibling;
+ }
+ };
+
+ afterFunc = function(html) {
+ // get the real starting node. see realNode for details.
+ var end = document.getElementById(this.end);
+ var insertBefore = end.nextSibling;
+ var parentNode = end.parentNode;
+ var nextSibling;
+ var node;
+
+ // get the first node for the HTML string, even in cases like
+ // tables and lists where a simple innerHTML on a div would
+ // swallow some of the content.
+ node = firstNodeFor(parentNode, html);
+
+ // copy the nodes for the HTML between the starting and ending
+ // placeholder.
+ while (node) {
+ nextSibling = node.nextSibling;
+ parentNode.insertBefore(node, insertBefore);
+ node = nextSibling;
+ }
+ };
+
+ prependFunc = function(html) {
+ var start = document.getElementById(this.start);
+ var parentNode = start.parentNode;
+ var nextSibling;
+ var node;
+
+ node = firstNodeFor(parentNode, html);
+ var insertBefore = start.nextSibling;
+
+ while (node) {
+ nextSibling = node.nextSibling;
+ parentNode.insertBefore(node, insertBefore);
+ node = nextSibling;
+ }
+ }
+ }
+
+ Metamorph.prototype.html = function(html) {
+ this.checkRemoved();
+ if (html === undefined) { return this.innerHTML; }
+
+ htmlFunc.call(this, html);
+
+ this.innerHTML = html;
+ };
+
+ Metamorph.prototype.replaceWith = function(html) {
+ this.checkRemoved();
+ htmlFunc.call(this, html, true);
+ };
+
+ Metamorph.prototype.remove = removeFunc;
+ Metamorph.prototype.outerHTML = outerHTMLFunc;
+ Metamorph.prototype.appendTo = appendToFunc;
+ Metamorph.prototype.after = afterFunc;
+ Metamorph.prototype.prepend = prependFunc;
+ Metamorph.prototype.startTag = startTagFunc;
+ Metamorph.prototype.endTag = endTagFunc;
+
+ Metamorph.prototype.isRemoved = function() {
+ var before = document.getElementById(this.start);
+ var after = document.getElementById(this.end);
+
+ return !before || !after;
+ };
+
+ Metamorph.prototype.checkRemoved = function() {
+ if (this.isRemoved()) {
+ throw new Error("Cannot perform operations on a Metamorph that is not in the DOM.");
+ }
+ };
+
+ window.Metamorph = Metamorph;
+})(this);
+
+
+})();
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/*globals Handlebars */
+var objectCreate = Ember.create;
+
+/**
+ @namespace
+ @name Handlebars
+ @private
+*/
+
+/**
+ @namespace
+ @name Handlebars.helpers
+ @description Helpers for Handlebars templates
+*/
+
+Ember.assert("Ember Handlebars requires Handlebars 1.0.beta.5 or greater", window.Handlebars && window.Handlebars.VERSION.match(/^1\.0\.beta\.[56789]$|^1\.0\.rc\.[123456789]+/));
+
+/**
+ @class
+
+ Prepares the Handlebars templating library for use inside Ember's view
+ system.
+
+ The Ember.Handlebars object is the standard Handlebars library, extended to use
+ Ember's get() method instead of direct property access, which allows
+ computed properties to be used inside templates.
+
+ To create an Ember.Handlebars template, call Ember.Handlebars.compile(). This will
+ return a function that can be used by Ember.View for rendering.
+*/
+Ember.Handlebars = objectCreate(Handlebars);
+
+Ember.Handlebars.helpers = objectCreate(Handlebars.helpers);
+
+/**
+ Override the the opcode compiler and JavaScript compiler for Handlebars.
+ @private
+*/
+Ember.Handlebars.Compiler = function() {};
+Ember.Handlebars.Compiler.prototype = objectCreate(Handlebars.Compiler.prototype);
+Ember.Handlebars.Compiler.prototype.compiler = Ember.Handlebars.Compiler;
+
+/** @private */
+Ember.Handlebars.JavaScriptCompiler = function() {};
+Ember.Handlebars.JavaScriptCompiler.prototype = objectCreate(Handlebars.JavaScriptCompiler.prototype);
+Ember.Handlebars.JavaScriptCompiler.prototype.compiler = Ember.Handlebars.JavaScriptCompiler;
+Ember.Handlebars.JavaScriptCompiler.prototype.namespace = "Ember.Handlebars";
+
+
+Ember.Handlebars.JavaScriptCompiler.prototype.initializeBuffer = function() {
+ return "''";
+};
+
+/**
+ Override the default buffer for Ember Handlebars. By default, Handlebars creates
+ an empty String at the beginning of each invocation and appends to it. Ember's
+ Handlebars overrides this to append to a single shared buffer.
+
+ @private
+*/
+Ember.Handlebars.JavaScriptCompiler.prototype.appendToBuffer = function(string) {
+ return "data.buffer.push("+string+");";
+};
+
+/**
+ Rewrite simple mustaches from {{foo}} to {{bind "foo"}}. This means that all simple
+ mustaches in Ember's Handlebars will also set up an observer to keep the DOM
+ up to date when the underlying property changes.
+
+ @private
+*/
+Ember.Handlebars.Compiler.prototype.mustache = function(mustache) {
+ if (mustache.params.length || mustache.hash) {
+ return Handlebars.Compiler.prototype.mustache.call(this, mustache);
+ } else {
+ var id = new Handlebars.AST.IdNode(['_triageMustache']);
+
+ // Update the mustache node to include a hash value indicating whether the original node
+ // was escaped. This will allow us to properly escape values when the underlying value
+ // changes and we need to re-render the value.
+ if(!mustache.escaped) {
+ mustache.hash = mustache.hash || new Handlebars.AST.HashNode([]);
+ mustache.hash.pairs.push(["unescaped", new Handlebars.AST.StringNode("true")]);
+ }
+ mustache = new Handlebars.AST.MustacheNode([id].concat([mustache.id]), mustache.hash, !mustache.escaped);
+ return Handlebars.Compiler.prototype.mustache.call(this, mustache);
+ }
+};
+
+/**
+ Used for precompilation of Ember Handlebars templates. This will not be used during normal
+ app execution.
+
+ @param {String} string The template to precompile
+*/
+Ember.Handlebars.precompile = function(string) {
+ var ast = Handlebars.parse(string);
+
+ var options = {
+ knownHelpers: {
+ action: true,
+ unbound: true,
+ bindAttr: true,
+ template: true,
+ view: true,
+ _triageMustache: true
+ },
+ data: true,
+ stringParams: true
+ };
+
+ var environment = new Ember.Handlebars.Compiler().compile(ast, options);
+ return new Ember.Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true);
+};
+
+/**
+ The entry point for Ember Handlebars. This replaces the default Handlebars.compile and turns on
+ template-local data and String parameters.
+
+ @param {String} string The template to compile
+*/
+Ember.Handlebars.compile = function(string) {
+ var ast = Handlebars.parse(string);
+ var options = { data: true, stringParams: true };
+ var environment = new Ember.Handlebars.Compiler().compile(ast, options);
+ var templateSpec = new Ember.Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true);
+
+ return Handlebars.template(templateSpec);
+};
+
+/**
+ If a path starts with a reserved keyword, returns the root
+ that should be used.
+
+ @private
+*/
+var normalizePath = Ember.Handlebars.normalizePath = function(root, path, data) {
+ var keywords = (data && data.keywords) || {},
+ keyword, isKeyword;
+
+ // Get the first segment of the path. For example, if the
+ // path is "foo.bar.baz", returns "foo".
+ keyword = path.split('.', 1)[0];
+
+ // Test to see if the first path is a keyword that has been
+ // passed along in the view's data hash. If so, we will treat
+ // that object as the new root.
+ if (keywords.hasOwnProperty(keyword)) {
+ // Look up the value in the template's data hash.
+ root = keywords[keyword];
+ isKeyword = true;
+
+ // Handle cases where the entire path is the reserved
+ // word. In that case, return the object itself.
+ if (path === keyword) {
+ path = '';
+ } else {
+ // Strip the keyword from the path and look up
+ // the remainder from the newly found root.
+ path = path.substr(keyword.length+1);
+ }
+ }
+
+ return { root: root, path: path, isKeyword: isKeyword };
+};
+/**
+ Lookup both on root and on window. If the path starts with
+ a keyword, the corresponding object will be looked up in the
+ template's data hash and used to resolve the path.
+
+ @param {Object} root The object to look up the property on
+ @param {String} path The path to be lookedup
+ @param {Object} options The template's option hash
+*/
+
+Ember.Handlebars.getPath = function(root, path, options) {
+ var data = options && options.data,
+ normalizedPath = normalizePath(root, path, data),
+ value;
+
+ // In cases where the path begins with a keyword, change the
+ // root to the value represented by that keyword, and ensure
+ // the path is relative to it.
+ root = normalizedPath.root;
+ path = normalizedPath.path;
+
+ value = Ember.get(root, path);
+
+ if (value === undefined && root !== window && Ember.isGlobalPath(path)) {
+ value = Ember.get(window, path);
+ }
+ return value;
+};
+
+/**
+ Registers a helper in Handlebars that will be called if no property with the
+ given name can be found on the current context object, and no helper with
+ that name is registered.
+
+ This throws an exception with a more helpful error message so the user can
+ track down where the problem is happening.
+
+ @name Handlebars.helpers.helperMissing
+ @param {String} path
+ @param {Hash} options
+*/
+Ember.Handlebars.registerHelper('helperMissing', function(path, options) {
+ var error, view = "";
+
+ error = "%@ Handlebars error: Could not find property '%@' on object %@.";
+ if (options.data){
+ view = options.data.view;
+ }
+ throw new Ember.Error(Ember.String.fmt(error, [view, path, this]));
+});
+
+
+})();
+
+
+
+(function() {
+
+Ember.String.htmlSafe = function(str) {
+ return new Handlebars.SafeString(str);
+};
+
+var htmlSafe = Ember.String.htmlSafe;
+
+if (Ember.EXTEND_PROTOTYPES) {
+
+ /**
+ @see Ember.String.htmlSafe
+ */
+ String.prototype.htmlSafe = function() {
+ return htmlSafe(this);
+ };
+
+}
+
+})();
+
+
+
+(function() {
+/*jshint newcap:false*/
+var set = Ember.set, get = Ember.get;
+
+var DOMManager = {
+ remove: function(view) {
+ var morph = view.morph;
+ if (morph.isRemoved()) { return; }
+ set(view, 'element', null);
+ view._lastInsert = null;
+ morph.remove();
+ },
+
+ prepend: function(view, childView) {
+ childView._insertElementLater(function() {
+ var morph = view.morph;
+ morph.prepend(childView.outerHTML);
+ childView.outerHTML = null;
+ });
+ },
+
+ after: function(view, nextView) {
+ nextView._insertElementLater(function() {
+ var morph = view.morph;
+ morph.after(nextView.outerHTML);
+ nextView.outerHTML = null;
+ });
+ },
+
+ replace: function(view) {
+ var morph = view.morph;
+
+ view.transitionTo('preRender');
+ view.clearRenderedChildren();
+ var buffer = view.renderToBuffer();
+
+ Ember.run.schedule('render', this, function() {
+ if (get(view, 'isDestroyed')) { return; }
+ view.invalidateRecursively('element');
+ view._notifyWillInsertElement();
+ morph.replaceWith(buffer.string());
+ view.transitionTo('inDOM');
+ view._notifyDidInsertElement();
+ });
+ },
+
+ empty: function(view) {
+ view.morph.html("");
+ }
+};
+
+// The `morph` and `outerHTML` properties are internal only
+// and not observable.
+
+Ember._Metamorph = Ember.Mixin.create({
+ isVirtual: true,
+ tagName: '',
+
+ init: function() {
+ this._super();
+ this.morph = Metamorph();
+ },
+
+ beforeRender: function(buffer) {
+ buffer.push(this.morph.startTag());
+ },
+
+ afterRender: function(buffer) {
+ buffer.push(this.morph.endTag());
+ },
+
+ createElement: function() {
+ var buffer = this.renderToBuffer();
+ this.outerHTML = buffer.string();
+ this.clearBuffer();
+ },
+
+ domManager: DOMManager
+});
+
+Ember._MetamorphView = Ember.View.extend(Ember._Metamorph);
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/*globals Handlebars */
+
+var get = Ember.get, set = Ember.set, getPath = Ember.Handlebars.getPath;
+/**
+ @ignore
+ @private
+ @class
+
+ Ember._HandlebarsBoundView is a private view created by the Handlebars `{{bind}}`
+ helpers that is used to keep track of bound properties.
+
+ Every time a property is bound using a `{{mustache}}`, an anonymous subclass
+ of Ember._HandlebarsBoundView is created with the appropriate sub-template and
+ context set up. When the associated property changes, just the template for
+ this view will re-render.
+*/
+Ember._HandlebarsBoundView = Ember._MetamorphView.extend({
+/** @scope Ember._HandlebarsBoundView.prototype */
+
+ /**
+ The function used to determine if the `displayTemplate` or
+ `inverseTemplate` should be rendered. This should be a function that takes
+ a value and returns a Boolean.
+
+ @type Function
+ @default null
+ */
+ shouldDisplayFunc: null,
+
+ /**
+ Whether the template rendered by this view gets passed the context object
+ of its parent template, or gets passed the value of retrieving `path`
+ from the `pathRoot`.
+
+ For example, this is true when using the `{{#if}}` helper, because the
+ template inside the helper should look up properties relative to the same
+ object as outside the block. This would be false when used with `{{#with
+ foo}}` because the template should receive the object found by evaluating
+ `foo`.
+
+ @type Boolean
+ @default false
+ */
+ preserveContext: false,
+
+ /**
+ If `preserveContext` is true, this is the object that will be used
+ to render the template.
+
+ @type Object
+ */
+ previousContext: null,
+
+ /**
+ The template to render when `shouldDisplayFunc` evaluates to true.
+
+ @type Function
+ @default null
+ */
+ displayTemplate: null,
+
+ /**
+ The template to render when `shouldDisplayFunc` evaluates to false.
+
+ @type Function
+ @default null
+ */
+ inverseTemplate: null,
+
+
+ /**
+ The path to look up on `pathRoot` that is passed to
+ `shouldDisplayFunc` to determine which template to render.
+
+ In addition, if `preserveContext` is false, the object at this path will
+ be passed to the template when rendering.
+
+ @type String
+ @default null
+ */
+ path: null,
+
+ /**
+ The object from which the `path` will be looked up. Sometimes this is the
+ same as the `previousContext`, but in cases where this view has been generated
+ for paths that start with a keyword such as `view` or `controller`, the
+ path root will be that resolved object.
+
+ @type Object
+ */
+ pathRoot: null,
+
+ normalizedValue: Ember.computed(function() {
+ var path = get(this, 'path'),
+ pathRoot = get(this, 'pathRoot'),
+ valueNormalizer = get(this, 'valueNormalizerFunc'),
+ result, templateData;
+
+ // Use the pathRoot as the result if no path is provided. This
+ // happens if the path is `this`, which gets normalized into
+ // a `pathRoot` of the current Handlebars context and a path
+ // of `''`.
+ if (path === '') {
+ result = pathRoot;
+ } else {
+ templateData = get(this, 'templateData');
+ result = getPath(pathRoot, path, { data: templateData });
+ }
+
+ return valueNormalizer ? valueNormalizer(result) : result;
+ }).property('path', 'pathRoot', 'valueNormalizerFunc').volatile(),
+
+ rerenderIfNeeded: function() {
+ if (!get(this, 'isDestroyed') && get(this, 'normalizedValue') !== this._lastNormalizedValue) {
+ this.rerender();
+ }
+ },
+
+ /**
+ Determines which template to invoke, sets up the correct state based on
+ that logic, then invokes the default Ember.View `render` implementation.
+
+ This method will first look up the `path` key on `pathRoot`,
+ then pass that value to the `shouldDisplayFunc` function. If that returns
+ true, the `displayTemplate` function will be rendered to DOM. Otherwise,
+ `inverseTemplate`, if specified, will be rendered.
+
+ For example, if this Ember._HandlebarsBoundView represented the {{#with foo}}
+ helper, it would look up the `foo` property of its context, and
+ `shouldDisplayFunc` would always return true. The object found by looking
+ up `foo` would be passed to `displayTemplate`.
+
+ @param {Ember.RenderBuffer} buffer
+ */
+ render: function(buffer) {
+ // If not invoked via a triple-mustache ({{{foo}}}), escape
+ // the content of the template.
+ var escape = get(this, 'isEscaped');
+
+ var shouldDisplay = get(this, 'shouldDisplayFunc'),
+ preserveContext = get(this, 'preserveContext'),
+ context = get(this, 'previousContext');
+
+ var inverseTemplate = get(this, 'inverseTemplate'),
+ displayTemplate = get(this, 'displayTemplate');
+
+ var result = get(this, 'normalizedValue');
+ this._lastNormalizedValue = result;
+
+ // First, test the conditional to see if we should
+ // render the template or not.
+ if (shouldDisplay(result)) {
+ set(this, 'template', displayTemplate);
+
+ // If we are preserving the context (for example, if this
+ // is an #if block, call the template with the same object.
+ if (preserveContext) {
+ set(this, '_context', context);
+ } else {
+ // Otherwise, determine if this is a block bind or not.
+ // If so, pass the specified object to the template
+ if (displayTemplate) {
+ set(this, '_context', result);
+ } else {
+ // This is not a bind block, just push the result of the
+ // expression to the render context and return.
+ if (result === null || result === undefined) {
+ result = "";
+ } else if (!(result instanceof Handlebars.SafeString)) {
+ result = String(result);
+ }
+
+ if (escape) { result = Handlebars.Utils.escapeExpression(result); }
+ buffer.push(result);
+ return;
+ }
+ }
+ } else if (inverseTemplate) {
+ set(this, 'template', inverseTemplate);
+
+ if (preserveContext) {
+ set(this, '_context', context);
+ } else {
+ set(this, '_context', result);
+ }
+ } else {
+ set(this, 'template', function() { return ''; });
+ }
+
+ return this._super(buffer);
+ }
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set, fmt = Ember.String.fmt;
+var getPath = Ember.Handlebars.getPath, normalizePath = Ember.Handlebars.normalizePath;
+var forEach = Ember.ArrayPolyfills.forEach;
+
+var EmberHandlebars = Ember.Handlebars, helpers = EmberHandlebars.helpers;
+
+// Binds a property into the DOM. This will create a hook in DOM that the
+// KVO system will look for and update if the property changes.
+/** @private */
+function bind(property, options, preserveContext, shouldDisplay, valueNormalizer) {
+ var data = options.data,
+ fn = options.fn,
+ inverse = options.inverse,
+ view = data.view,
+ currentContext = this,
+ pathRoot, path, normalized;
+
+ normalized = normalizePath(currentContext, property, data);
+
+ pathRoot = normalized.root;
+ path = normalized.path;
+
+ // Set up observers for observable objects
+ if ('object' === typeof this) {
+ // Create the view that will wrap the output of this template/property
+ // and add it to the nearest view's childViews array.
+ // See the documentation of Ember._HandlebarsBoundView for more.
+ var bindView = view.createChildView(Ember._HandlebarsBoundView, {
+ preserveContext: preserveContext,
+ shouldDisplayFunc: shouldDisplay,
+ valueNormalizerFunc: valueNormalizer,
+ displayTemplate: fn,
+ inverseTemplate: inverse,
+ path: path,
+ pathRoot: pathRoot,
+ previousContext: currentContext,
+ isEscaped: !options.hash.unescaped,
+ templateData: options.data
+ });
+
+ view.appendChild(bindView);
+
+ /** @private */
+ var observer = function() {
+ Ember.run.once(bindView, 'rerenderIfNeeded');
+ };
+
+ // Observes the given property on the context and
+ // tells the Ember._HandlebarsBoundView to re-render. If property
+ // is an empty string, we are printing the current context
+ // object ({{this}}) so updating it is not our responsibility.
+ if (path !== '') {
+ Ember.addObserver(pathRoot, path, observer);
+ }
+ } else {
+ // The object is not observable, so just render it out and
+ // be done with it.
+ data.buffer.push(getPath(pathRoot, path, options));
+ }
+}
+
+/**
+ '_triageMustache' is used internally select between a binding and helper for
+ the given context. Until this point, it would be hard to determine if the
+ mustache is a property reference or a regular helper reference. This triage
+ helper resolves that.
+
+ This would not be typically invoked by directly.
+
+ @private
+ @name Handlebars.helpers._triageMustache
+ @param {String} property Property/helperID to triage
+ @param {Function} fn Context to provide for rendering
+ @returns {String} HTML string
+*/
+EmberHandlebars.registerHelper('_triageMustache', function(property, fn) {
+ Ember.assert("You cannot pass more than one argument to the _triageMustache helper", arguments.length <= 2);
+ if (helpers[property]) {
+ return helpers[property].call(this, fn);
+ }
+ else {
+ return helpers.bind.apply(this, arguments);
+ }
+});
+
+/**
+ `bind` can be used to display a value, then update that value if it
+ changes. For example, if you wanted to print the `title` property of
+ `content`:
+
+ {{bind "content.title"}}
+
+ This will return the `title` property as a string, then create a new
+ observer at the specified path. If it changes, it will update the value in
+ DOM. Note that if you need to support IE7 and IE8 you must modify the
+ model objects properties using Ember.get() and Ember.set() for this to work as
+ it relies on Ember's KVO system. For all other browsers this will be handled
+ for you automatically.
+
+ @private
+ @name Handlebars.helpers.bind
+ @param {String} property Property to bind
+ @param {Function} fn Context to provide for rendering
+ @returns {String} HTML string
+*/
+EmberHandlebars.registerHelper('bind', function(property, fn) {
+ Ember.assert("You cannot pass more than one argument to the bind helper", arguments.length <= 2);
+
+ var context = (fn.contexts && fn.contexts[0]) || this;
+
+ return bind.call(context, property, fn, false, function(result) {
+ return !Ember.none(result);
+ });
+});
+
+/**
+ Use the `boundIf` helper to create a conditional that re-evaluates
+ whenever the bound value changes.
+
+ {{#boundIf "content.shouldDisplayTitle"}}
+ {{content.title}}
+ {{/boundIf}}
+
+ @private
+ @name Handlebars.helpers.boundIf
+ @param {String} property Property to bind
+ @param {Function} fn Context to provide for rendering
+ @returns {String} HTML string
+*/
+EmberHandlebars.registerHelper('boundIf', function(property, fn) {
+ var context = (fn.contexts && fn.contexts[0]) || this;
+ var func = function(result) {
+ if (Ember.typeOf(result) === 'array') {
+ return get(result, 'length') !== 0;
+ } else {
+ return !!result;
+ }
+ };
+
+ return bind.call(context, property, fn, true, func, func);
+});
+
+/**
+ @name Handlebars.helpers.with
+ @param {Function} context
+ @param {Hash} options
+ @returns {String} HTML string
+*/
+EmberHandlebars.registerHelper('with', function(context, options) {
+ if (arguments.length === 4) {
+ var keywordName, path, rootPath, normalized;
+
+ Ember.assert("If you pass more than one argument to the with helper, it must be in the form #with foo as bar", arguments[1] === "as");
+ options = arguments[3];
+ keywordName = arguments[2];
+ path = arguments[0];
+
+ Ember.assert("You must pass a block to the with helper", options.fn && options.fn !== Handlebars.VM.noop);
+
+ if (Ember.isGlobalPath(path)) {
+ Ember.bind(options.data.keywords, keywordName, path);
+ } else {
+ normalized = normalizePath(this, path, options.data);
+ path = normalized.path;
+ rootPath = normalized.root;
+
+ // This is a workaround for the fact that you cannot bind separate objects
+ // together. When we implement that functionality, we should use it here.
+ var contextKey = Ember.$.expando + Ember.guidFor(rootPath);
+ options.data.keywords[contextKey] = rootPath;
+
+ // if the path is '' ("this"), just bind directly to the current context
+ var contextPath = path ? contextKey + '.' + path : contextKey;
+ Ember.bind(options.data.keywords, keywordName, contextPath);
+ }
+
+ return bind.call(this, path, options.fn, true, function(result) {
+ return !Ember.none(result);
+ });
+ } else {
+ Ember.assert("You must pass exactly one argument to the with helper", arguments.length === 2);
+ Ember.assert("You must pass a block to the with helper", options.fn && options.fn !== Handlebars.VM.noop);
+ return helpers.bind.call(options.contexts[0], context, options);
+ }
+});
+
+
+/**
+ @name Handlebars.helpers.if
+ @param {Function} context
+ @param {Hash} options
+ @returns {String} HTML string
+*/
+EmberHandlebars.registerHelper('if', function(context, options) {
+ Ember.assert("You must pass exactly one argument to the if helper", arguments.length === 2);
+ Ember.assert("You must pass a block to the if helper", options.fn && options.fn !== Handlebars.VM.noop);
+
+ return helpers.boundIf.call(options.contexts[0], context, options);
+});
+
+/**
+ @name Handlebars.helpers.unless
+ @param {Function} context
+ @param {Hash} options
+ @returns {String} HTML string
+*/
+EmberHandlebars.registerHelper('unless', function(context, options) {
+ Ember.assert("You must pass exactly one argument to the unless helper", arguments.length === 2);
+ Ember.assert("You must pass a block to the unless helper", options.fn && options.fn !== Handlebars.VM.noop);
+
+ var fn = options.fn, inverse = options.inverse;
+
+ options.fn = inverse;
+ options.inverse = fn;
+
+ return helpers.boundIf.call(options.contexts[0], context, options);
+});
+
+/**
+ `bindAttr` allows you to create a binding between DOM element attributes and
+ Ember objects. For example:
+
+ <img {{bindAttr src="imageUrl" alt="imageTitle"}}>
+
+ @name Handlebars.helpers.bindAttr
+ @param {Hash} options
+ @returns {String} HTML string
+*/
+EmberHandlebars.registerHelper('bindAttr', function(options) {
+
+ var attrs = options.hash;
+
+ Ember.assert("You must specify at least one hash argument to bindAttr", !!Ember.keys(attrs).length);
+
+ var view = options.data.view;
+ var ret = [];
+ var ctx = this;
+
+ // Generate a unique id for this element. This will be added as a
+ // data attribute to the element so it can be looked up when
+ // the bound property changes.
+ var dataId = ++Ember.$.uuid;
+
+ // Handle classes differently, as we can bind multiple classes
+ var classBindings = attrs['class'];
+ if (classBindings !== null && classBindings !== undefined) {
+ var classResults = EmberHandlebars.bindClasses(this, classBindings, view, dataId, options);
+ ret.push('class="' + Handlebars.Utils.escapeExpression(classResults.join(' ')) + '"');
+ delete attrs['class'];
+ }
+
+ var attrKeys = Ember.keys(attrs);
+
+ // For each attribute passed, create an observer and emit the
+ // current value of the property as an attribute.
+ forEach.call(attrKeys, function(attr) {
+ var path = attrs[attr],
+ pathRoot, normalized;
+
+ Ember.assert(fmt("You must provide a String for a bound attribute, not %@", [path]), typeof path === 'string');
+
+ normalized = normalizePath(ctx, path, options.data);
+
+ pathRoot = normalized.root;
+ path = normalized.path;
+
+ var value = (path === 'this') ? pathRoot : getPath(pathRoot, path, options),
+ type = Ember.typeOf(value);
+
+ Ember.assert(fmt("Attributes must be numbers, strings or booleans, not %@", [value]), value === null || value === undefined || type === 'number' || type === 'string' || type === 'boolean');
+
+ var observer, invoker;
+
+ /** @private */
+ observer = function observer() {
+ var result = getPath(pathRoot, path, options);
+
+ Ember.assert(fmt("Attributes must be numbers, strings or booleans, not %@", [result]), result === null || result === undefined || typeof result === 'number' || typeof result === 'string' || typeof result === 'boolean');
+
+ var elem = view.$("[data-bindattr-" + dataId + "='" + dataId + "']");
+
+ // If we aren't able to find the element, it means the element
+ // to which we were bound has been removed from the view.
+ // In that case, we can assume the template has been re-rendered
+ // and we need to clean up the observer.
+ if (elem.length === 0) {
+ Ember.removeObserver(pathRoot, path, invoker);
+ return;
+ }
+
+ Ember.View.applyAttributeBindings(elem, attr, result);
+ };
+
+ /** @private */
+ invoker = function() {
+ Ember.run.once(observer);
+ };
+
+ // Add an observer to the view for when the property changes.
+ // When the observer fires, find the element using the
+ // unique data id and update the attribute to the new value.
+ if (path !== 'this') {
+ Ember.addObserver(pathRoot, path, invoker);
+ }
+
+ // if this changes, also change the logic in ember-views/lib/views/view.js
+ if ((type === 'string' || (type === 'number' && !isNaN(value)))) {
+ ret.push(attr + '="' + Handlebars.Utils.escapeExpression(value) + '"');
+ } else if (value && type === 'boolean') {
+ // The developer controls the attr name, so it should always be safe
+ ret.push(attr + '="' + attr + '"');
+ }
+ }, this);
+
+ // Add the unique identifier
+ // NOTE: We use all lower-case since Firefox has problems with mixed case in SVG
+ ret.push('data-bindattr-' + dataId + '="' + dataId + '"');
+ return new EmberHandlebars.SafeString(ret.join(' '));
+});
+
+/**
+ Helper that, given a space-separated string of property paths and a context,
+ returns an array of class names. Calling this method also has the side
+ effect of setting up observers at those property paths, such that if they
+ change, the correct class name will be reapplied to the DOM element.
+
+ For example, if you pass the string "fooBar", it will first look up the
+ "fooBar" value of the context. If that value is true, it will add the
+ "foo-bar" class to the current element (i.e., the dasherized form of
+ "fooBar"). If the value is a string, it will add that string as the class.
+ Otherwise, it will not add any new class name.
+
+ @param {Ember.Object} context
+ The context from which to lookup properties
+
+ @param {String} classBindings
+ A string, space-separated, of class bindings to use
+
+ @param {Ember.View} view
+ The view in which observers should look for the element to update
+
+ @param {Srting} bindAttrId
+ Optional bindAttr id used to lookup elements
+
+ @returns {Array} An array of class names to add
+*/
+EmberHandlebars.bindClasses = function(context, classBindings, view, bindAttrId, options) {
+ var ret = [], newClass, value, elem;
+
+ // Helper method to retrieve the property from the context and
+ // determine which class string to return, based on whether it is
+ // a Boolean or not.
+ var classStringForPath = function(root, parsedPath, options) {
+ var val,
+ path = parsedPath.path;
+
+ if (path === 'this') {
+ val = root;
+ } else if (path === '') {
+ val = true;
+ } else {
+ val = getPath(root, path, options);
+ }
+
+ return Ember.View._classStringForValue(path, val, parsedPath.className, parsedPath.falsyClassName);
+ };
+
+ // For each property passed, loop through and setup
+ // an observer.
+ forEach.call(classBindings.split(' '), function(binding) {
+
+ // Variable in which the old class value is saved. The observer function
+ // closes over this variable, so it knows which string to remove when
+ // the property changes.
+ var oldClass;
+
+ var observer, invoker;
+
+ var parsedPath = Ember.View._parsePropertyPath(binding),
+ path = parsedPath.path,
+ pathRoot = context,
+ normalized;
+
+ if (path !== '' && path !== 'this') {
+ normalized = normalizePath(context, path, options.data);
+
+ pathRoot = normalized.root;
+ path = normalized.path;
+ }
+
+ // Set up an observer on the context. If the property changes, toggle the
+ // class name.
+ /** @private */
+ observer = function() {
+ // Get the current value of the property
+ newClass = classStringForPath(pathRoot, parsedPath, options);
+ elem = bindAttrId ? view.$("[data-bindattr-" + bindAttrId + "='" + bindAttrId + "']") : view.$();
+
+ // If we can't find the element anymore, a parent template has been
+ // re-rendered and we've been nuked. Remove the observer.
+ if (elem.length === 0) {
+ Ember.removeObserver(pathRoot, path, invoker);
+ } else {
+ // If we had previously added a class to the element, remove it.
+ if (oldClass) {
+ elem.removeClass(oldClass);
+ }
+
+ // If necessary, add a new class. Make sure we keep track of it so
+ // it can be removed in the future.
+ if (newClass) {
+ elem.addClass(newClass);
+ oldClass = newClass;
+ } else {
+ oldClass = null;
+ }
+ }
+ };
+
+ /** @private */
+ invoker = function() {
+ Ember.run.once(observer);
+ };
+
+ if (path !== '' && path !== 'this') {
+ Ember.addObserver(pathRoot, path, invoker);
+ }
+
+ // We've already setup the observer; now we just need to figure out the
+ // correct behavior right now on the first pass through.
+ value = classStringForPath(pathRoot, parsedPath, options);
+
+ if (value) {
+ ret.push(value);
+
+ // Make sure we save the current value so that it can be removed if the
+ // observer fires.
+ oldClass = value;
+ }
+ });
+
+ return ret;
+};
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/*globals Handlebars */
+
+// TODO: Don't require the entire module
+var get = Ember.get, set = Ember.set;
+var PARENT_VIEW_PATH = /^parentView\./;
+var EmberHandlebars = Ember.Handlebars;
+var VIEW_PRESERVES_CONTEXT = Ember.VIEW_PRESERVES_CONTEXT;
+
+/** @private */
+EmberHandlebars.ViewHelper = Ember.Object.create({
+
+ propertiesFromHTMLOptions: function(options, thisContext) {
+ var hash = options.hash, data = options.data;
+ var extensions = {},
+ classes = hash['class'],
+ dup = false;
+
+ if (hash.id) {
+ extensions.elementId = hash.id;
+ dup = true;
+ }
+
+ if (classes) {
+ classes = classes.split(' ');
+ extensions.classNames = classes;
+ dup = true;
+ }
+
+ if (hash.classBinding) {
+ extensions.classNameBindings = hash.classBinding.split(' ');
+ dup = true;
+ }
+
+ if (hash.classNameBindings) {
+ if (extensions.classNameBindings === undefined) extensions.classNameBindings = [];
+ extensions.classNameBindings = extensions.classNameBindings.concat(hash.classNameBindings.split(' '));
+ dup = true;
+ }
+
+ if (hash.attributeBindings) {
+ Ember.assert("Setting 'attributeBindings' via Handlebars is not allowed. Please subclass Ember.View and set it there instead.");
+ extensions.attributeBindings = null;
+ dup = true;
+ }
+
+ if (dup) {
+ hash = Ember.$.extend({}, hash);
+ delete hash.id;
+ delete hash['class'];
+ delete hash.classBinding;
+ }
+
+ // Set the proper context for all bindings passed to the helper. This applies to regular attribute bindings
+ // as well as class name bindings. If the bindings are local, make them relative to the current context
+ // instead of the view.
+ var path;
+
+ // Evaluate the context of regular attribute bindings:
+ for (var prop in hash) {
+ if (!hash.hasOwnProperty(prop)) { continue; }
+
+ // Test if the property ends in "Binding"
+ if (Ember.IS_BINDING.test(prop) && typeof hash[prop] === 'string') {
+ path = this.contextualizeBindingPath(hash[prop], data);
+ if (path) { hash[prop] = path; }
+ }
+ }
+
+ // Evaluate the context of class name bindings:
+ if (extensions.classNameBindings) {
+ for (var b in extensions.classNameBindings) {
+ var full = extensions.classNameBindings[b];
+ if (typeof full === 'string') {
+ // Contextualize the path of classNameBinding so this:
+ //
+ // classNameBinding="isGreen:green"
+ //
+ // is converted to this:
+ //
+ // classNameBinding="bindingContext.isGreen:green"
+ var parsedPath = Ember.View._parsePropertyPath(full);
+ path = this.contextualizeBindingPath(parsedPath.path, data);
+ if (path) { extensions.classNameBindings[b] = path + parsedPath.classNames; }
+ }
+ }
+ }
+
+ // Make the current template context available to the view
+ // for the bindings set up above.
+ extensions.bindingContext = thisContext;
+
+ return Ember.$.extend(hash, extensions);
+ },
+
+ // Transform bindings from the current context to a context that can be evaluated within the view.
+ // Returns null if the path shouldn't be changed.
+ //
+ // TODO: consider the addition of a prefix that would allow this method to return `path`.
+ contextualizeBindingPath: function(path, data) {
+ var normalized = Ember.Handlebars.normalizePath(null, path, data);
+ if (normalized.isKeyword) {
+ return 'templateData.keywords.' + path;
+ } else if (Ember.isGlobalPath(path)) {
+ return null;
+ } else if (path === 'this') {
+ return 'bindingContext';
+ } else {
+ return 'bindingContext.' + path;
+ }
+ },
+
+ helper: function(thisContext, path, options) {
+ var inverse = options.inverse,
+ data = options.data,
+ view = data.view,
+ fn = options.fn,
+ hash = options.hash,
+ newView;
+
+ if ('string' === typeof path) {
+ newView = EmberHandlebars.getPath(thisContext, path, options);
+ Ember.assert("Unable to find view at path '" + path + "'", !!newView);
+ } else {
+ newView = path;
+ }
+
+ Ember.assert(Ember.String.fmt('You must pass a view class to the #view helper, not %@ (%@)', [path, newView]), Ember.View.detect(newView));
+
+ var viewOptions = this.propertiesFromHTMLOptions(options, thisContext);
+ var currentView = data.view;
+ viewOptions.templateData = options.data;
+
+ if (fn) {
+ Ember.assert("You cannot provide a template block if you also specified a templateName", !get(viewOptions, 'templateName') && !get(newView.proto(), 'templateName'));
+ viewOptions.template = fn;
+ }
+
+ // We only want to override the `_context` computed property if there is
+ // no specified controller. See View#_context for more information.
+ if (VIEW_PRESERVES_CONTEXT && !newView.proto().controller && !newView.proto().controllerBinding && !viewOptions.controller && !viewOptions.controllerBinding) {
+ viewOptions._context = thisContext;
+ }
+
+ currentView.appendChild(newView, viewOptions);
+ }
+});
+
+/**
+ `{{view}}` inserts a new instance of `Ember.View` into a template passing its options
+ to the `Ember.View`'s `create` method and using the supplied block as the view's own template.
+
+ An empty `<body>` and the following template:
+
+ <script type="text/x-handlebars">
+ A span:
+ {{#view tagName="span"}}
+ hello.
+ {{/view}}
+ </script>
+
+ Will result in HTML structure:
+
+ <body>
+ <!-- Note: the handlebars template script
+ also results in a rendered Ember.View
+ which is the outer <div> here -->
+
+ <div class="ember-view">
+ A span:
+ <span id="ember1" class="ember-view">
+ Hello.
+ </span>
+ </div>
+ </body>
+
+ ### parentView setting
+
+ The `parentView` property of the new `Ember.View` instance created through `{{view}}`
+ will be set to the `Ember.View` instance of the template where `{{view}}` was called.
+
+ aView = Ember.View.create({
+ template: Ember.Handlebars.compile("{{#view}} my parent: {{parentView.elementId}} {{/view}}")
+ })
+
+ aView.appendTo('body')
+
+ Will result in HTML structure:
+
+ <div id="ember1" class="ember-view">
+ <div id="ember2" class="ember-view">
+ my parent: ember1
+ </div>
+ </div>
+
+ ### Setting CSS id and class attributes
+
+ The HTML `id` attribute can be set on the `{{view}}`'s resulting element with the `id` option.
+ This option will _not_ be passed to `Ember.View.create`.
+
+ <script type="text/x-handlebars">
+ {{#view tagName="span" id="a-custom-id"}}
+ hello.
+ {{/view}}
+ </script>
+
+ Results in the following HTML structure:
+
+ <div class="ember-view">
+ <span id="a-custom-id" class="ember-view">
+ hello.
+ </span>
+ </div>
+
+ The HTML `class` attribute can be set on the `{{view}}`'s resulting element with
+ the `class` or `classNameBindings` options. The `class` option
+ will directly set the CSS `class` attribute and will not be passed to
+ `Ember.View.create`. `classNameBindings` will be passed to `create` and use
+ `Ember.View`'s class name binding functionality:
+
+ <script type="text/x-handlebars">
+ {{#view tagName="span" class="a-custom-class"}}
+ hello.
+ {{/view}}
+ </script>
+
+ Results in the following HTML structure:
+
+ <div class="ember-view">
+ <span id="ember2" class="ember-view a-custom-class">
+ hello.
+ </span>
+ </div>
+
+ ### Supplying a different view class
+ `{{view}}` can take an optional first argument before its supplied options to specify a
+ path to a custom view class.
+
+ <script type="text/x-handlebars">
+ {{#view "MyApp.CustomView"}}
+ hello.
+ {{/view}}
+ </script>
+
+ The first argument can also be a relative path. Ember will search for the view class
+ starting at the `Ember.View` of the template where `{{view}}` was used as the root object:
+
+ MyApp = Ember.Application.create({})
+ MyApp.OuterView = Ember.View.extend({
+ innerViewClass: Ember.View.extend({
+ classNames: ['a-custom-view-class-as-property']
+ }),
+ template: Ember.Handlebars.compile('{{#view "innerViewClass"}} hi {{/view}}')
+ })
+
+ MyApp.OuterView.create().appendTo('body')
+
+Will result in the following HTML:
+
+ <div id="ember1" class="ember-view">
+ <div id="ember2" class="ember-view a-custom-view-class-as-property">
+ hi
+ </div>
+ </div>
+
+ ### Blockless use
+
+ If you supply a custom `Ember.View` subclass that specifies its own template
+ or provide a `templateName` option to `{{view}}` it can be used without supplying a block.
+ Attempts to use both a `templateName` option and supply a block will throw an error.
+
+ <script type="text/x-handlebars">
+ {{view "MyApp.ViewWithATemplateDefined"}}
+ </script>
+
+ ### viewName property
+
+ You can supply a `viewName` option to `{{view}}`. The `Ember.View` instance will
+ be referenced as a property of its parent view by this name.
+
+ aView = Ember.View.create({
+ template: Ember.Handlebars.compile('{{#view viewName="aChildByName"}} hi {{/view}}')
+ })
+
+ aView.appendTo('body')
+ aView.get('aChildByName') // the instance of Ember.View created by {{view}} helper
+
+ @name Handlebars.helpers.view
+ @param {String} path
+ @param {Hash} options
+ @returns {String} HTML string
+*/
+EmberHandlebars.registerHelper('view', function(path, options) {
+ Ember.assert("The view helper only takes a single argument", arguments.length <= 2);
+
+ // If no path is provided, treat path param as options.
+ if (path && path.data && path.data.isRenderData) {
+ options = path;
+ path = "Ember.View";
+ }
+
+ return EmberHandlebars.ViewHelper.helper(this, path, options);
+});
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/*globals Handlebars */
+
+// TODO: Don't require all of this module
+var get = Ember.get, getPath = Ember.Handlebars.getPath, fmt = Ember.String.fmt;
+
+/**
+ `{{collection}}` is a `Ember.Handlebars` helper for adding instances of
+ `Ember.CollectionView` to a template. See `Ember.CollectionView` for additional
+ information on how a `CollectionView` functions.
+
+ `{{collection}}`'s primary use is as a block helper with a `contentBinding` option
+ pointing towards an `Ember.Array`-compatible object. An `Ember.View` instance will
+ be created for each item in its `content` property. Each view will have its own
+ `content` property set to the appropriate item in the collection.
+
+ The provided block will be applied as the template for each item's view.
+
+ Given an empty `<body>` the following template:
+
+ <script type="text/x-handlebars">
+ {{#collection contentBinding="App.items"}}
+ Hi {{content.name}}
+ {{/collection}}
+ </script>
+
+ And the following application code
+
+ App = Ember.Application.create()
+ App.items = [
+ Ember.Object.create({name: 'Dave'}),
+ Ember.Object.create({name: 'Mary'}),
+ Ember.Object.create({name: 'Sara'})
+ ]
+
+ Will result in the HTML structure below
+
+ <div class="ember-view">
+ <div class="ember-view">Hi Dave</div>
+ <div class="ember-view">Hi Mary</div>
+ <div class="ember-view">Hi Sara</div>
+ </div>
+
+ ### Blockless Use
+ If you provide an `itemViewClass` option that has its own `template` you can omit
+ the block.
+
+ The following template:
+
+ <script type="text/x-handlebars">
+ {{collection contentBinding="App.items" itemViewClass="App.AnItemView"}}
+ </script>
+
+ And application code
+
+ App = Ember.Application.create()
+ App.items = [
+ Ember.Object.create({name: 'Dave'}),
+ Ember.Object.create({name: 'Mary'}),
+ Ember.Object.create({name: 'Sara'})
+ ]
+
+ App.AnItemView = Ember.View.extend({
+ template: Ember.Handlebars.compile("Greetings {{content.name}}")
+ })
+
+ Will result in the HTML structure below
+
+ <div class="ember-view">
+ <div class="ember-view">Greetings Dave</div>
+ <div class="ember-view">Greetings Mary</div>
+ <div class="ember-view">Greetings Sara</div>
+ </div>
+
+ ### Specifying a CollectionView subclass
+ By default the `{{collection}}` helper will create an instance of `Ember.CollectionView`.
+ You can supply a `Ember.CollectionView` subclass to the helper by passing it
+ as the first argument:
+
+ <script type="text/x-handlebars">
+ {{#collection App.MyCustomCollectionClass contentBinding="App.items"}}
+ Hi {{content.name}}
+ {{/collection}}
+ </script>
+
+
+ ### Forwarded `item.*`-named Options
+ As with the `{{view}}`, helper options passed to the `{{collection}}` will be set on
+ the resulting `Ember.CollectionView` as properties. Additionally, options prefixed with
+ `item` will be applied to the views rendered for each item (note the camelcasing):
+
+ <script type="text/x-handlebars">
+ {{#collection contentBinding="App.items"
+ itemTagName="p"
+ itemClassNames="greeting"}}
+ Howdy {{content.name}}
+ {{/collection}}
+ </script>
+
+ Will result in the following HTML structure:
+
+ <div class="ember-view">
+ <p class="ember-view greeting">Howdy Dave</p>
+ <p class="ember-view greeting">Howdy Mary</p>
+ <p class="ember-view greeting">Howdy Sara</p>
+ </div>
+
+ @name Handlebars.helpers.collection
+ @param {String} path
+ @param {Hash} options
+ @returns {String} HTML string
+*/
+Ember.Handlebars.registerHelper('collection', function(path, options) {
+ // If no path is provided, treat path param as options.
+ if (path && path.data && path.data.isRenderData) {
+ options = path;
+ path = undefined;
+ Ember.assert("You cannot pass more than one argument to the collection helper", arguments.length === 1);
+ } else {
+ Ember.assert("You cannot pass more than one argument to the collection helper", arguments.length === 2);
+ }
+
+ var fn = options.fn;
+ var data = options.data;
+ var inverse = options.inverse;
+
+ // If passed a path string, convert that into an object.
+ // Otherwise, just default to the standard class.
+ var collectionClass;
+ collectionClass = path ? getPath(this, path, options) : Ember.CollectionView;
+ Ember.assert(fmt("%@ #collection: Could not find collection class %@", [data.view, path]), !!collectionClass);
+
+ var hash = options.hash, itemHash = {}, match;
+
+ // Extract item view class if provided else default to the standard class
+ var itemViewClass, itemViewPath = hash.itemViewClass;
+ var collectionPrototype = collectionClass.proto();
+ delete hash.itemViewClass;
+ itemViewClass = itemViewPath ? getPath(collectionPrototype, itemViewPath, options) : collectionPrototype.itemViewClass;
+ Ember.assert(fmt("%@ #collection: Could not find itemViewClass %@", [data.view, itemViewPath]), !!itemViewClass);
+
+ // Go through options passed to the {{collection}} helper and extract options
+ // that configure item views instead of the collection itself.
+ for (var prop in hash) {
+ if (hash.hasOwnProperty(prop)) {
+ match = prop.match(/^item(.)(.*)$/);
+
+ if(match) {
+ // Convert itemShouldFoo -> shouldFoo
+ itemHash[match[1].toLowerCase() + match[2]] = hash[prop];
+ // Delete from hash as this will end up getting passed to the
+ // {{view}} helper method.
+ delete hash[prop];
+ }
+ }
+ }
+
+ var tagName = hash.tagName || collectionPrototype.tagName;
+
+ if (fn) {
+ itemHash.template = fn;
+ delete options.fn;
+ }
+
+ var emptyViewClass;
+ if (inverse && inverse !== Handlebars.VM.noop) {
+ emptyViewClass = get(collectionPrototype, 'emptyViewClass');
+ emptyViewClass = emptyViewClass.extend({
+ template: inverse,
+ tagName: itemHash.tagName
+ });
+ } else if (hash.emptyViewClass) {
+ emptyViewClass = getPath(this, hash.emptyViewClass, options);
+ }
+ hash.emptyView = emptyViewClass;
+
+ if (hash.eachHelper === 'each') {
+ itemHash._context = Ember.computed(function() {
+ return get(this, 'content');
+ }).property('content');
+ delete hash.eachHelper;
+ }
+
+ var viewOptions = Ember.Handlebars.ViewHelper.propertiesFromHTMLOptions({ data: data, hash: itemHash }, this);
+ hash.itemViewClass = itemViewClass.extend(viewOptions);
+
+ return Ember.Handlebars.helpers.view.call(this, collectionClass, options);
+});
+
+
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/*globals Handlebars */
+var getPath = Ember.Handlebars.getPath;
+
+/**
+ `unbound` allows you to output a property without binding. *Important:* The
+ output will not be updated if the property changes. Use with caution.
+
+ <div>{{unbound somePropertyThatDoesntChange}}</div>
+
+ @name Handlebars.helpers.unbound
+ @param {String} property
+ @returns {String} HTML string
+*/
+Ember.Handlebars.registerHelper('unbound', function(property, fn) {
+ var context = (fn.contexts && fn.contexts[0]) || this;
+ return getPath(context, property, fn);
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+/*jshint debug:true*/
+var getPath = Ember.Handlebars.getPath, normalizePath = Ember.Handlebars.normalizePath;
+
+/**
+ `log` allows you to output the value of a value in the current rendering
+ context.
+
+ {{log myVariable}}
+
+ @name Handlebars.helpers.log
+ @param {String} property
+*/
+Ember.Handlebars.registerHelper('log', function(property, options) {
+ var context = (options.contexts && options.contexts[0]) || this,
+ normalized = normalizePath(context, property, options.data),
+ pathRoot = normalized.root,
+ path = normalized.path,
+ value = (path === 'this') ? pathRoot : getPath(pathRoot, path, options);
+ Ember.Logger.log(value);
+});
+
+/**
+ The `debugger` helper executes the `debugger` statement in the current
+ context.
+
+ {{debugger}}
+
+ @name Handlebars.helpers.debugger
+ @param {String} property
+*/
+Ember.Handlebars.registerHelper('debugger', function() {
+ debugger;
+});
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set;
+
+Ember.Handlebars.EachView = Ember.CollectionView.extend(Ember._Metamorph, {
+ itemViewClass: Ember._MetamorphView,
+ emptyViewClass: Ember._MetamorphView,
+
+ createChildView: function(view, attrs) {
+ view = this._super(view, attrs);
+
+ // At the moment, if a container view subclass wants
+ // to insert keywords, it is responsible for cloning
+ // the keywords hash. This will be fixed momentarily.
+ var keyword = get(this, 'keyword');
+
+ if (keyword) {
+ var data = get(view, 'templateData');
+
+ data = Ember.copy(data);
+ data.keywords = view.cloneKeywords();
+ set(view, 'templateData', data);
+
+ var content = get(view, 'content');
+
+ // In this case, we do not bind, because the `content` of
+ // a #each item cannot change.
+ data.keywords[keyword] = content;
+ }
+
+ return view;
+ }
+});
+
+Ember.Handlebars.registerHelper('each', function(path, options) {
+ if (arguments.length === 4) {
+ Ember.assert("If you pass more than one argument to the each helper, it must be in the form #each foo in bar", arguments[1] === "in");
+
+ var keywordName = arguments[0];
+
+ options = arguments[3];
+ path = arguments[2];
+ if (path === '') { path = "this"; }
+
+ options.hash.keyword = keywordName;
+ } else {
+ options.hash.eachHelper = 'each';
+ }
+
+ Ember.assert("You must pass a block to the each helper", options.fn && options.fn !== Handlebars.VM.noop);
+
+ options.hash.contentBinding = path;
+ // Set up emptyView as a metamorph with no tag
+ //options.hash.emptyViewClass = Ember._MetamorphView;
+
+ return Ember.Handlebars.helpers.collection.call(this, 'Ember.Handlebars.EachView', options);
+});
+
+})();
+
+
+
+(function() {
+/**
+ `template` allows you to render a template from inside another template.
+ This allows you to re-use the same template in multiple places. For example:
+
+ <script type="text/x-handlebars">
+ {{#with loggedInUser}}
+ Last Login: {{lastLogin}}
+ User Info: {{template "user_info"}}
+ {{/with}}
+ </script>
+
+ <script type="text/x-handlebars" data-template-name="user_info">
+ Name: <em>{{name}}</em>
+ Karma: <em>{{karma}}</em>
+ </script>
+
+ This helper looks for templates in the global Ember.TEMPLATES hash. If you
+ add &lt;script&gt; tags to your page with the `data-template-name` attribute set,
+ they will be compiled and placed in this hash automatically.
+
+ You can also manually register templates by adding them to the hash:
+
+ Ember.TEMPLATES["my_cool_template"] = Ember.Handlebars.compile('<b>{{user}}</b>');
+
+ @name Handlebars.helpers.template
+ @param {String} templateName the template to render
+*/
+
+Ember.Handlebars.registerHelper('template', function(name, options) {
+ var template = Ember.TEMPLATES[name];
+
+ Ember.assert("Unable to find template with name '"+name+"'.", !!template);
+
+ Ember.TEMPLATES[name](this, { data: options.data });
+});
+
+})();
+
+
+
+(function() {
+var EmberHandlebars = Ember.Handlebars,
+ getPath = EmberHandlebars.getPath,
+ get = Ember.get,
+ a_slice = Array.prototype.slice;
+
+var ActionHelper = EmberHandlebars.ActionHelper = {
+ registeredActions: {}
+};
+
+ActionHelper.registerAction = function(actionName, options) {
+ var actionId = (++Ember.$.uuid).toString();
+
+ ActionHelper.registeredActions[actionId] = {
+ eventName: options.eventName,
+ handler: function(event) {
+ var modifier = event.shiftKey || event.metaKey || event.altKey || event.ctrlKey,
+ secondaryClick = event.which > 1, // IE9 may return undefined
+ nonStandard = modifier || secondaryClick;
+
+ if (options.link && nonStandard) {
+ // Allow the browser to handle special link clicks normally
+ return;
+ }
+
+ event.preventDefault();
+
+ event.view = options.view;
+
+ if (options.hasOwnProperty('context')) {
+ event.context = options.context;
+ }
+
+ if (options.hasOwnProperty('contexts')) {
+ event.contexts = options.contexts;
+ }
+
+ var target = options.target;
+
+ // Check for StateManager (or compatible object)
+ if (target.isState && typeof target.send === 'function') {
+ return target.send(actionName, event);
+ } else {
+ Ember.assert(Ember.String.fmt('Target %@ does not have action %@', [target, actionName]), target[actionName]);
+ return target[actionName].call(target, event);
+ }
+ }
+ };
+
+ options.view.on('willRerender', function() {
+ delete ActionHelper.registeredActions[actionId];
+ });
+
+ return actionId;
+};
+
+/**
+ The `{{action}}` helper registers an HTML element within a template for
+ DOM event handling and forwards that interaction to the Application's router,
+ the template's `Ember.View` instance, or supplied `target` option (see 'Specifiying a Target').
+
+ User interaction with that element will invoke the supplied action name on
+ the appropriate target.
+
+ Given the following Handlebars template on the page
+
+ <script type="text/x-handlebars" data-template-name='a-template'>
+ <div {{action anActionName}}>
+ click me
+ </div>
+ </script>
+
+ And application code
+
+ AView = Ember.View.extend({
+ templateName; 'a-template',
+ anActionName: function(event){}
+ });
+
+ aView = AView.create();
+ aView.appendTo('body');
+
+ Will results in the following rendered HTML
+
+ <div class="ember-view">
+ <div data-ember-action="1">
+ click me
+ </div>
+ </div>
+
+ Clicking "click me" will trigger the `anActionName` method of the `aView`
+ object with a `jQuery.Event` object as its argument. The `jQuery.Event`
+ object will be extended to include a `view` property that is set to the
+ original view interacted with (in this case the `aView` object).
+
+ ### Event Propagation
+
+ Events triggered through the action helper will automatically have
+ `.preventDefault()` called on them. You do not need to do so in your event
+ handlers. To stop propagation of the event, simply return `false` from your
+ handler.
+
+ If you need the default handler to trigger you should either register your
+ own event handler, or use event methods on your view class. See Ember.View
+ 'Responding to Browser Events' for more information.
+
+ ### Specifying DOM event type
+
+ By default the `{{action}}` helper registers for DOM `click` events. You can
+ supply an `on` option to the helper to specify a different DOM event name:
+
+ <script type="text/x-handlebars" data-template-name='a-template'>
+ <div {{action anActionName on="doubleClick"}}>
+ click me
+ </div>
+ </script>
+
+ See Ember.View 'Responding to Browser Events' for a list of
+ acceptable DOM event names.
+
+ Because `{{action}}` depends on Ember's event dispatch system it will only
+ function if an `Ember.EventDispatcher` instance is available. An
+ `Ember.EventDispatcher` instance will be created when a new
+ `Ember.Application` is created. Having an instance of `Ember.Application`
+ will satisfy this requirement.
+
+
+ ### Specifying a Target
+ There are several possible target objects for `{{action}}` helpers:
+
+ In a typical `Ember.Router`-backed Application where views are managed
+ through use of the `{{outlet}}` helper, actions will be forwarded to the
+ current state of the Applications's Router. See Ember.Router 'Responding
+ to User-initiated Events' for more information.
+
+ If you manaully set the `target` property on the controller of a template's
+ `Ember.View` instance, the specifed `controller.target` will become the target
+ for any actions. Likely custom values for a controller's `target` are the
+ controller itself or a StateManager other than the Application's Router.
+
+ If the templates's view lacks a controller property the view itself is the target.
+
+ Finally, a `target` option can be provided to the helper to change which object
+ will receive the method call. This option must be a string representing a
+ path to an object:
+
+ <script type="text/x-handlebars" data-template-name='a-template'>
+ <div {{action anActionName target="MyApplication.someObject"}}>
+ click me
+ </div>
+ </script>
+
+ Clicking "click me" in the rendered HTML of the above template will trigger
+ the `anActionName` method of the object at `MyApplication.someObject`.
+ The first argument to this method will be a `jQuery.Event` extended to
+ include a `view` property that is set to the original view interacted with.
+
+ A path relative to the template's `Ember.View` instance can also be used as
+ a target:
+
+ <script type="text/x-handlebars" data-template-name='a-template'>
+ <div {{action anActionName target="parentView"}}>
+ click me
+ </div>
+ </script>
+
+ Clicking "click me" in the rendered HTML of the above template will trigger
+ the `anActionName` method of the view's parent view.
+
+ The `{{action}}` helper is `Ember.StateManager` aware. If the target of the
+ action is an `Ember.StateManager` instance `{{action}}` will use the `send`
+ functionality of StateManagers. The documentation for `Ember.StateManager`
+ has additional information about this use.
+
+ If an action's target does not implement a method that matches the supplied
+ action name an error will be thrown.
+
+ <script type="text/x-handlebars" data-template-name='a-template'>
+ <div {{action aMethodNameThatIsMissing}}>
+ click me
+ </div>
+ </script>
+
+ With the following application code
+
+ AView = Ember.View.extend({
+ templateName; 'a-template',
+ // note: no method 'aMethodNameThatIsMissing'
+ anActionName: function(event){}
+ });
+
+ aView = AView.create();
+ aView.appendTo('body');
+
+ Will throw `Uncaught TypeError: Cannot call method 'call' of undefined` when
+ "click me" is clicked.
+
+ ### Specifying a context
+
+ By default the `{{action}}` helper passes the current Handlebars context
+ along in the `jQuery.Event` object. You may specify an alternate object to
+ pass as the context by providing a property path:
+
+ <script type="text/x-handlebars" data-template-name='a-template'>
+ {{#each person in people}}
+ <div {{action edit person}}>
+ click me
+ </div>
+ {{/each}}
+ </script>
+
+ @name Handlebars.helpers.action
+ @param {String} actionName
+ @param {Object...} contexts
+ @param {Hash} options
+*/
+EmberHandlebars.registerHelper('action', function(actionName) {
+ var options = arguments[arguments.length - 1],
+ contexts = a_slice.call(arguments, 1, -1);
+
+ var hash = options.hash,
+ view = options.data.view,
+ target, controller, link;
+
+ // create a hash to pass along to registerAction
+ var action = {
+ eventName: hash.on || "click"
+ };
+
+ action.view = view = get(view, 'concreteView');
+
+ if (hash.target) {
+ target = getPath(this, hash.target, options);
+ } else if (controller = options.data.keywords.controller) {
+ target = get(controller, 'target');
+ }
+
+ action.target = target = target || view;
+
+ if (contexts.length) {
+ action.contexts = contexts = Ember.EnumerableUtils.map(contexts, function(context) {
+ return getPath(this, context, options);
+ }, this);
+ action.context = contexts[0];
+ }
+
+ var output = [], url;
+
+ if (hash.href && target.urlForEvent) {
+ url = target.urlForEvent.apply(target, [actionName].concat(contexts));
+ output.push('href="' + url + '"');
+ action.link = true;
+ }
+
+ var actionId = ActionHelper.registerAction(actionName, action);
+ output.push('data-ember-action="' + actionId + '"');
+
+ return new EmberHandlebars.SafeString(output.join(" "));
+});
+
+})();
+
+
+
+(function() {
+var get = Ember.get, set = Ember.set;
+
+/**
+
+ When used in a Handlebars template that is assigned to an `Ember.View` instance's
+ `layout` property Ember will render the layout template first, inserting the view's
+ own rendered output at the `{{ yield }}` location.
+
+ An empty `<body>` and the following application code:
+
+ AView = Ember.View.extend({
+ classNames: ['a-view-with-layout'],
+ layout: Ember.Handlebars.compile('<div class="wrapper">{{ yield }}</div>'),
+ template: Ember.Handlebars.compile('<span>I am wrapped</span>')
+ })
+
+ aView = AView.create()
+ aView.appendTo('body')
+
+ Will result in the following HTML output:
+
+ <body>
+ <div class='ember-view a-view-with-layout'>
+ <div class="wrapper">
+ <span>I am wrapped</span>
+ </div>
+ </div>
+ </body>
+
+ The yield helper cannot be used outside of a template assigned to an `Ember.View`'s `layout` property
+ and will throw an error if attempted.
+
+ BView = Ember.View.extend({
+ classNames: ['a-view-with-layout'],
+ template: Ember.Handlebars.compile('{{yield}}')
+ })
+
+ bView = BView.create()
+ bView.appendTo('body')
+
+ // throws
+ // Uncaught Error: assertion failed: You called yield in a template that was not a layout
+
+ @name Handlebars.helpers.yield
+ @param {Hash} options
+ @returns {String} HTML string
+*/
+Ember.Handlebars.registerHelper('yield', function(options) {
+ var view = options.data.view, template;
+
+ while (view && !get(view, 'layout')) {
+ view = get(view, 'parentView');
+ }
+
+ Ember.assert("You called yield in a template that was not a layout", !!view);
+
+ template = get(view, 'template');
+
+ if (template) { template(this, options); }
+});
+
+})();
+
+
+
+(function() {
+/**
+ The `outlet` helper allows you to specify that the current
+ view's controller will fill in the view for a given area.
+
+ {{outlet}}
+
+ By default, when the the current controller's `view`
+ property changes, the outlet will replace its current
+ view with the new view.
+
+ controller.set('view', someView);
+
+ You can also specify a particular name, other than view:
+
+ {{outlet masterView}}
+ {{outlet detailView}}
+
+ Then, you can control several outlets from a single
+ controller:
+
+ controller.set('masterView', postsView);
+ controller.set('detailView', postView);
+
+ @name Handlebars.helpers.outlet
+ @param {String} property the property on the controller
+ that holds the view for this outlet
+*/
+Ember.Handlebars.registerHelper('outlet', function(property, options) {
+ if (property && property.data && property.data.isRenderData) {
+ options = property;
+ property = 'view';
+ }
+
+ options.hash.currentViewBinding = "controller." + property;
+
+ return Ember.Handlebars.helpers.view.call(this, Ember.ContainerView, options);
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var set = Ember.set, get = Ember.get;
+
+/**
+ @class
+
+ Creates an HTML input of type 'checkbox' with HTML related properties
+ applied directly to the input.
+
+ {{view Ember.Checkbox classNames="applicaton-specific-checkbox"}}
+
+ <input id="ember1" class="ember-view ember-checkbox applicaton-specific-checkbox" type="checkbox">
+
+ You can add a `label` tag yourself in the template where the Ember.Checkbox is being used.
+
+ <label>
+ Some Title
+ {{view Ember.Checkbox classNames="applicaton-specific-checkbox"}}
+ </label>
+
+
+ The `checked` attribute of an Ember.Checkbox object should always be set
+ through the Ember object or by interacting with its rendered element representation
+ via the mouse, keyboard, or touch. Updating the value of the checkbox via jQuery will
+ result in the checked value of the object and its element losing synchronization.
+
+ ## Layout and LayoutName properties
+ Because HTML `input` elements are self closing `layout` and `layoutName` properties will
+ not be applied. See `Ember.View`'s layout section for more information.
+
+ @extends Ember.View
+*/
+Ember.Checkbox = Ember.View.extend({
+ classNames: ['ember-checkbox'],
+
+ tagName: 'input',
+
+ attributeBindings: ['type', 'checked', 'disabled', 'tabindex'],
+
+ type: "checkbox",
+ checked: false,
+ disabled: false,
+
+ init: function() {
+ this._super();
+ this.on("change", this, this._updateElementValue);
+ },
+
+ /**
+ @private
+ */
+ _updateElementValue: function() {
+ set(this, 'checked', this.$().prop('checked'));
+ }
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set;
+
+/** @class */
+Ember.TextSupport = Ember.Mixin.create(
+/** @scope Ember.TextSupport.prototype */ {
+
+ value: "",
+
+ attributeBindings: ['placeholder', 'disabled', 'maxlength', 'tabindex'],
+ placeholder: null,
+ disabled: false,
+ maxlength: null,
+
+ insertNewline: Ember.K,
+ cancel: Ember.K,
+
+ /** @private */
+ init: function() {
+ this._super();
+ this.on("focusOut", this, this._elementValueDidChange);
+ this.on("change", this, this._elementValueDidChange);
+ this.on("keyUp", this, this.interpretKeyEvents);
+ },
+
+ /**
+ @private
+ */
+ interpretKeyEvents: function(event) {
+ var map = Ember.TextSupport.KEY_EVENTS;
+ var method = map[event.keyCode];
+
+ this._elementValueDidChange();
+ if (method) { return this[method](event); }
+ },
+
+ _elementValueDidChange: function() {
+ set(this, 'value', this.$().val());
+ }
+
+});
+
+Ember.TextSupport.KEY_EVENTS = {
+ 13: 'insertNewline',
+ 27: 'cancel'
+};
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set;
+
+/**
+ @class
+
+ The `Ember.TextField` view class renders a text
+ [input](https://developer.mozilla.org/en/HTML/Element/Input) element. It
+ allows for binding Ember properties to the text field contents (`value`),
+ live-updating as the user inputs text.
+
+ Example:
+
+ {{view Ember.TextField valueBinding="firstName"}}
+
+ ## Layout and LayoutName properties
+ Because HTML `input` elements are self closing `layout` and `layoutName` properties will
+ not be applied. See `Ember.View`'s layout section for more information.
+
+ @extends Ember.View
+ @extends Ember.TextSupport
+*/
+Ember.TextField = Ember.View.extend(Ember.TextSupport,
+ /** @scope Ember.TextField.prototype */ {
+
+ classNames: ['ember-text-field'],
+ tagName: "input",
+ attributeBindings: ['type', 'value', 'size'],
+
+ /**
+ The value attribute of the input element. As the user inputs text, this
+ property is updated live.
+
+ @type String
+ @default ""
+ */
+ value: "",
+
+ /**
+ The type attribute of the input element.
+
+ @type String
+ @default "text"
+ */
+ type: "text",
+
+ /**
+ The size of the text field in characters.
+
+ @type String
+ @default null
+ */
+ size: null
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set;
+
+Ember.Button = Ember.View.extend(Ember.TargetActionSupport, {
+ classNames: ['ember-button'],
+ classNameBindings: ['isActive'],
+
+ tagName: 'button',
+
+ propagateEvents: false,
+
+ attributeBindings: ['type', 'disabled', 'href', 'tabindex'],
+
+ /** @private
+ Overrides TargetActionSupport's targetObject computed
+ property to use Handlebars-specific path resolution.
+ */
+ targetObject: Ember.computed(function() {
+ var target = get(this, 'target'),
+ root = get(this, 'context'),
+ data = get(this, 'templateData');
+
+ if (typeof target !== 'string') { return target; }
+
+ return Ember.Handlebars.getPath(root, target, { data: data });
+ }).property('target').cacheable(),
+
+ // Defaults to 'button' if tagName is 'input' or 'button'
+ type: Ember.computed(function(key, value) {
+ var tagName = this.get('tagName');
+ if (value !== undefined) { this._type = value; }
+ if (this._type !== undefined) { return this._type; }
+ if (tagName === 'input' || tagName === 'button') { return 'button'; }
+ }).property('tagName').cacheable(),
+
+ disabled: false,
+
+ // Allow 'a' tags to act like buttons
+ href: Ember.computed(function() {
+ return this.get('tagName') === 'a' ? '#' : null;
+ }).property('tagName').cacheable(),
+
+ mouseDown: function() {
+ if (!get(this, 'disabled')) {
+ set(this, 'isActive', true);
+ this._mouseDown = true;
+ this._mouseEntered = true;
+ }
+ return get(this, 'propagateEvents');
+ },
+
+ mouseLeave: function() {
+ if (this._mouseDown) {
+ set(this, 'isActive', false);
+ this._mouseEntered = false;
+ }
+ },
+
+ mouseEnter: function() {
+ if (this._mouseDown) {
+ set(this, 'isActive', true);
+ this._mouseEntered = true;
+ }
+ },
+
+ mouseUp: function(event) {
+ if (get(this, 'isActive')) {
+ // Actually invoke the button's target and action.
+ // This method comes from the Ember.TargetActionSupport mixin.
+ this.triggerAction();
+ set(this, 'isActive', false);
+ }
+
+ this._mouseDown = false;
+ this._mouseEntered = false;
+ return get(this, 'propagateEvents');
+ },
+
+ keyDown: function(event) {
+ // Handle space or enter
+ if (event.keyCode === 13 || event.keyCode === 32) {
+ this.mouseDown();
+ }
+ },
+
+ keyUp: function(event) {
+ // Handle space or enter
+ if (event.keyCode === 13 || event.keyCode === 32) {
+ this.mouseUp();
+ }
+ },
+
+ // TODO: Handle proper touch behavior. Including should make inactive when
+ // finger moves more than 20x outside of the edge of the button (vs mouse
+ // which goes inactive as soon as mouse goes out of edges.)
+
+ touchStart: function(touch) {
+ return this.mouseDown(touch);
+ },
+
+ touchEnd: function(touch) {
+ return this.mouseUp(touch);
+ },
+
+ init: function() {
+ Ember.deprecate("Ember.Button is deprecated and will be removed from future releases. Consider using the `{{action}}` helper.");
+ this._super();
+ }
+});
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+var get = Ember.get, set = Ember.set;
+
+/**
+ @class
+
+ The `Ember.TextArea` view class renders a
+ [textarea](https://developer.mozilla.org/en/HTML/Element/textarea) element.
+ It allows for binding Ember properties to the text area contents (`value`),
+ live-updating as the user inputs text.
+
+ ## Layout and LayoutName properties
+
+ Because HTML `textarea` elements do not contain inner HTML the `layout` and `layoutName`
+ properties will not be applied. See `Ember.View`'s layout section for more information.
+
+ @extends Ember.View
+ @extends Ember.TextSupport
+*/
+Ember.TextArea = Ember.View.extend(Ember.TextSupport,
+/** @scope Ember.TextArea.prototype */ {
+
+ classNames: ['ember-text-area'],
+
+ tagName: "textarea",
+ attributeBindings: ['rows', 'cols'],
+ rows: null,
+ cols: null,
+
+ _updateElementValue: Ember.observer(function() {
+ // We do this check so cursor position doesn't get affected in IE
+ var value = get(this, 'value'),
+ $el = this.$();
+ if ($el && value !== $el.val()) {
+ $el.val(value);
+ }
+ }, 'value'),
+
+ /** @private */
+ init: function() {
+ this._super();
+ this.on("didInsertElement", this, this._updateElementValue);
+ }
+
+});
+
+})();
+
+
+
+(function() {
+Ember.TabContainerView = Ember.View.extend({
+ init: function() {
+ Ember.deprecate("Ember.TabContainerView is deprecated and will be removed from future releases.");
+ this._super();
+ }
+});
+
+})();
+
+
+
+(function() {
+var get = Ember.get;
+
+Ember.TabPaneView = Ember.View.extend({
+ tabsContainer: Ember.computed(function() {
+ return this.nearestInstanceOf(Ember.TabContainerView);
+ }).property().volatile(),
+
+ isVisible: Ember.computed(function() {
+ return get(this, 'viewName') === get(this, 'tabsContainer.currentView');
+ }).property('tabsContainer.currentView').volatile(),
+
+ init: function() {
+ Ember.deprecate("Ember.TabPaneView is deprecated and will be removed from future releases.");
+ this._super();
+ }
+});
+
+})();
+
+
+
+(function() {
+var get = Ember.get, setPath = Ember.setPath;
+
+Ember.TabView = Ember.View.extend({
+ tabsContainer: Ember.computed(function() {
+ return this.nearestInstanceOf(Ember.TabContainerView);
+ }).property().volatile(),
+
+ mouseUp: function() {
+ setPath(this, 'tabsContainer.currentView', get(this, 'value'));
+ },
+
+ init: function() {
+ Ember.deprecate("Ember.TabView is deprecated and will be removed from future releases.");
+ this._super();
+ }
+});
+
+})();
+
+
+
+(function() {
+
+})();
+
+
+
+(function() {
+/*jshint eqeqeq:false */
+
+var set = Ember.set, get = Ember.get;
+var indexOf = Ember.EnumerableUtils.indexOf, indexesOf = Ember.EnumerableUtils.indexesOf;
+
+/**
+ @class
+
+ The Ember.Select view class renders a
+ [select](https://developer.mozilla.org/en/HTML/Element/select) HTML element,
+ allowing the user to choose from a list of options. The selected option(s)
+ are updated live in the `selection` property, while the corresponding value
+ is updated in the `value` property.
+
+ ### Using Strings
+ The simplest version of an Ember.Select takes an array of strings for the options
+ of a select box and a valueBinding to set the value.
+
+ Example:
+
+ App.controller = Ember.Object.create({
+ selected: null,
+ content: [
+ "Yehuda",
+ "Tom"
+ ]
+ })
+
+ {{view Ember.Select
+ contentBinding="App.controller.content"
+ valueBinding="App.controller.selected"
+ }}
+
+ Would result in the following HTML:
+
+ <select class="ember-select">
+ <option value="Yehuda">Yehuda</option>
+ <option value="Tom">Tom</option>
+ </select>
+
+ Selecting Yehuda from the select box will set `App.controller.selected` to "Yehuda"
+
+ ### Using Objects
+ An Ember.Select can also take an array of JS or Ember objects.
+
+ When using objects you need to supply optionLabelPath and optionValuePath parameters
+ which will be used to get the label and value for each of the options.
+
+ Usually you will bind to either the selection or the value attribute of the select.
+
+ Use selectionBinding if you would like to set the whole object as a property on the target.
+ Use valueBinding if you would like to set just the value.
+
+ Example using selectionBinding:
+
+ App.controller = Ember.Object.create({
+ selectedPerson: null,
+ selectedPersonId: null,
+ content: [
+ Ember.Object.create({firstName: "Yehuda", id: 1}),
+ Ember.Object.create({firstName: "Tom", id: 2})
+ ]
+ })
+
+ {{view Ember.Select
+ contentBinding="App.controller.content"
+ optionLabelPath="content.firstName"
+ optionValuePath="content.id"
+ selectionBinding="App.controller.selectedPerson"
+ prompt="Please Select"}}
+
+ <select class="ember-select">
+ <option value>Please Select</option>
+ <option value="1">Yehuda</option>
+ <option value="2">Tom</option>
+ </select>
+
+ Selecting Yehuda here will set `App.controller.selectedPerson` to
+ the Yehuda object.
+
+ Example using valueBinding:
+
+ {{view Ember.Select
+ contentBinding="App.controller.content"
+ optionLabelPath="content.firstName"
+ optionValuePath="content.id"
+ valueBinding="App.controller.selectedPersonId"
+ prompt="Please Select"}}
+
+ Selecting Yehuda in this case will set `App.controller.selectedPersonId` to 1.
+
+ @extends Ember.View
+*/
+Ember.Select = Ember.View.extend(
+ /** @scope Ember.Select.prototype */ {
+
+ tagName: 'select',
+ classNames: ['ember-select'],
+ defaultTemplate: Ember.Handlebars.compile('{{#if view.prompt}}<option value>{{view.prompt}}</option>{{/if}}{{#each view.content}}{{view Ember.SelectOption contentBinding="this"}}{{/each}}'),
+ attributeBindings: ['multiple', 'tabindex'],
+
+ /**
+ The `multiple` attribute of the select element. Indicates whether multiple
+ options can be selected.
+
+ @type Boolean
+ @default false
+ */
+ multiple: false,
+
+ /**
+ The list of options.
+
+ If `optionLabelPath` and `optionValuePath` are not overridden, this should
+ be a list of strings, which will serve simultaneously as labels and values.
+
+ Otherwise, this should be a list of objects. For instance:
+
+ content: Ember.A([
+ { id: 1, firstName: 'Yehuda' },
+ { id: 2, firstName: 'Tom' }
+ ]),
+ optionLabelPath: 'content.firstName',
+ optionValuePath: 'content.id'
+
+ @type Array
+ @default null
+ */
+ content: null,
+
+ /**
+ When `multiple` is false, the element of `content` that is currently
+ selected, if any.
+
+ When `multiple` is true, an array of such elements.
+
+ @type Object or Array
+ @default null
+ */
+ selection: null,
+
+ /**
+ In single selection mode (when `multiple` is false), value can be used to get
+ the current selection's value or set the selection by it's value.
+
+ It is not currently supported in multiple selection mode.
+
+ @type String
+ @default null
+ */
+ value: Ember.computed(function(key, value) {
+ if (arguments.length === 2) { return value; }
+
+ var valuePath = get(this, 'optionValuePath').replace(/^content\.?/, '');
+ return valuePath ? get(this, 'selection.' + valuePath) : get(this, 'selection');
+ }).property('selection').cacheable(),
+
+ /**
+ If given, a top-most dummy option will be rendered to serve as a user
+ prompt.
+
+ @type String
+ @default null
+ */
+ prompt: null,
+
+ /**
+ The path of the option labels. See `content`.
+
+ @type String
+ @default 'content'
+ */
+ optionLabelPath: 'content',
+
+ /**
+ The path of the option values. See `content`.
+
+ @type String
+ @default 'content'
+ */
+ optionValuePath: 'content',
+
+ _change: function() {
+ if (get(this, 'multiple')) {
+ this._changeMultiple();
+ } else {
+ this._changeSingle();
+ }
+ },
+
+ selectionDidChange: Ember.observer(function() {
+ var selection = get(this, 'selection'),
+ isArray = Ember.isArray(selection);
+ if (get(this, 'multiple')) {
+ if (!isArray) {
+ set(this, 'selection', Ember.A([selection]));
+ return;
+ }
+ this._selectionDidChangeMultiple();
+ } else {
+ this._selectionDidChangeSingle();
+ }
+ }, 'selection'),
+
+ valueDidChange: Ember.observer(function() {
+ var content = get(this, 'content'),
+ value = get(this, 'value'),
+ valuePath = get(this, 'optionValuePath').replace(/^content\.?/, ''),
+ selectedValue = (valuePath ? get(this, 'selection.' + valuePath) : get(this, 'selection')),
+ selection;
+
+ if (value !== selectedValue) {
+ selection = content.find(function(obj) {
+ return value === (valuePath ? get(obj, valuePath) : obj);
+ });
+
+ this.set('selection', selection);
+ }
+ }, 'value'),
+
+
+ _triggerChange: function() {
+ var selection = get(this, 'selection');
+
+ if (selection) { this.selectionDidChange(); }
+
+ this._change();
+ },
+
+ _changeSingle: function() {
+ var selectedIndex = this.$()[0].selectedIndex,
+ content = get(this, 'content'),
+ prompt = get(this, 'prompt');
+
+ if (!content) { return; }
+ if (prompt && selectedIndex === 0) { set(this, 'selection', null); return; }
+
+ if (prompt) { selectedIndex -= 1; }
+ set(this, 'selection', content.objectAt(selectedIndex));
+ },
+
+ _changeMultiple: function() {
+ var options = this.$('option:selected'),
+ prompt = get(this, 'prompt'),
+ offset = prompt ? 1 : 0,
+ content = get(this, 'content');
+
+ if (!content){ return; }
+ if (options) {
+ var selectedIndexes = options.map(function(){
+ return this.index - offset;
+ }).toArray();
+ set(this, 'selection', content.objectsAt(selectedIndexes));
+ }
+ },
+
+ _selectionDidChangeSingle: function() {
+ var el = this.get('element');
+ if (!el) { return; }
+
+ var content = get(this, 'content'),
+ selection = get(this, 'selection'),
+ selectionIndex = content ? indexOf(content, selection) : -1,
+ prompt = get(this, 'prompt');
+
+ if (prompt) { selectionIndex += 1; }
+ if (el) { el.selectedIndex = selectionIndex; }
+ },
+
+ _selectionDidChangeMultiple: function() {
+ var content = get(this, 'content'),
+ selection = get(this, 'selection'),
+ selectedIndexes = content ? indexesOf(content, selection) : [-1],
+ prompt = get(this, 'prompt'),
+ offset = prompt ? 1 : 0,
+ options = this.$('option'),
+ adjusted;
+
+ if (options) {
+ options.each(function() {
+ adjusted = this.index > -1 ? this.index + offset : -1;
+ this.selected = indexOf(selectedIndexes, adjusted) > -1;
+ });
+ }
+ },
+
+ init: function() {
+ this._super();
+ this.on("didInsertElement", this, this._triggerChange);
+ this.on("change", this, this._change);
+ }
+});
+
+Ember.SelectOption = Ember.View.extend({
+ tagName: 'option',
+ attributeBindings: ['value', 'selected'],
+
+ defaultTemplate: function(context, options) {
+ options = { data: options.data, hash: {} };
+ Ember.Handlebars.helpers.bind.call(context, "view.label", options);
+ },
+
+ init: function() {
+ this.labelPathDidChange();
+ this.valuePathDidChange();
+
+ this._super();
+ },
+
+ selected: Ember.computed(function() {
+ var content = get(this, 'content'),
+ selection = get(this, 'parentView.selection');
+ if (get(this, 'parentView.multiple')) {
+ return selection && indexOf(selection, content) > -1;
+ } else {
+ // Primitives get passed through bindings as objects... since
+ // `new Number(4) !== 4`, we use `==` below
+ return content == selection;
+ }
+ }).property('content', 'parentView.selection').volatile(),
+
+ labelPathDidChange: Ember.observer(function() {
+ var labelPath = get(this, 'parentView.optionLabelPath');
+
+ if (!labelPath) { return; }
+
+ Ember.defineProperty(this, 'label', Ember.computed(function() {
+ return get(this, labelPath);
+ }).property(labelPath).cacheable());
+ }, 'parentView.optionLabelPath'),
+
+ valuePathDidChange: Ember.observer(function() {
+ var valuePath = get(this, 'parentView.optionValuePath');
+
+ if (!valuePath) { return; }
+
+ Ember.defineProperty(this, 'value', Ember.computed(function() {
+ return get(this, valuePath);
+ }).property(valuePath).cacheable());
+ }, 'parentView.optionValuePath')
+});
+
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+/*globals Handlebars */
+// Find templates stored in the head tag as script tags and make them available
+// to Ember.CoreView in the global Ember.TEMPLATES object. This will be run as as
+// jQuery DOM-ready callback.
+//
+// Script tags with "text/x-handlebars" will be compiled
+// with Ember's Handlebars and are suitable for use as a view's template.
+// Those with type="text/x-raw-handlebars" will be compiled with regular
+// Handlebars and are suitable for use in views' computed properties.
+Ember.Handlebars.bootstrap = function(ctx) {
+ var selectors = 'script[type="text/x-handlebars"], script[type="text/x-raw-handlebars"]';
+
+ Ember.$(selectors, ctx)
+ .each(function() {
+ // Get a reference to the script tag
+ var script = Ember.$(this),
+ type = script.attr('type');
+
+ var compile = (script.attr('type') === 'text/x-raw-handlebars') ?
+ Ember.$.proxy(Handlebars.compile, Handlebars) :
+ Ember.$.proxy(Ember.Handlebars.compile, Ember.Handlebars),
+ // Get the name of the script, used by Ember.View's templateName property.
+ // First look for data-template-name attribute, then fall back to its
+ // id if no name is found.
+ templateName = script.attr('data-template-name') || script.attr('id'),
+ template = compile(script.html()),
+ view, viewPath, elementId, options;
+
+ if (templateName) {
+ // For templates which have a name, we save them and then remove them from the DOM
+ Ember.TEMPLATES[templateName] = template;
+
+ // Remove script tag from DOM
+ script.remove();
+ } else {
+ if (script.parents('head').length !== 0) {
+ // don't allow inline templates in the head
+ throw new Ember.Error("Template found in <head> without a name specified. " +
+ "Please provide a data-template-name attribute.\n" +
+ script.html());
+ }
+
+ // For templates which will be evaluated inline in the HTML document, instantiates a new
+ // view, and replaces the script tag holding the template with the new
+ // view's DOM representation.
+ //
+ // Users can optionally specify a custom view subclass to use by setting the
+ // data-view attribute of the script tag.
+ viewPath = script.attr('data-view');
+ view = viewPath ? Ember.get(viewPath) : Ember.View;
+
+ // Get the id of the script, used by Ember.View's elementId property,
+ // Look for data-element-id attribute.
+ elementId = script.attr('data-element-id');
+
+ options = { template: template };
+ if (elementId) { options.elementId = elementId; }
+
+ view = view.create(options);
+
+ view._insertElementLater(function() {
+ script.replaceWith(this.$());
+
+ // Avoid memory leak in IE
+ script = null;
+ });
+ }
+ });
+};
+
+/** @private */
+function bootstrap() {
+ Ember.Handlebars.bootstrap( Ember.$(document) );
+}
+
+/*
+ We tie this to application.load to ensure that we've at least
+ attempted to bootstrap at the point that the application is loaded.
+
+ We also tie this to document ready since we're guaranteed that all
+ the inline templates are present at this point.
+
+ There's no harm to running this twice, since we remove the templates
+ from the DOM after processing.
+*/
+
+Ember.$(document).ready(bootstrap);
+Ember.onLoad('application', bootstrap);
+
+})();
+
+
+
+(function() {
+// ==========================================================================
+// Project: Ember Handlebars Views
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
+// Version: v1.0.pre
+// Last commit: 7955b85 (2012-08-03 14:50:17 -0700)
+
+
+(function() {
+// ==========================================================================
+// Project: Ember
+// Copyright: ©2011 Strobe Inc. and contributors.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+})();
+
diff --git a/SDL_Core/src/components/HMI/lib/ember-1.0.pre.min.js b/SDL_Core/src/components/HMI/lib/ember-1.0.pre.min.js
index 84ab0858f..73375a7d5 100755..100644
--- a/SDL_Core/src/components/HMI/lib/ember-1.0.pre.min.js
+++ b/SDL_Core/src/components/HMI/lib/ember-1.0.pre.min.js
@@ -1,18 +1,18 @@
-// ==========================================================================
-// Project: Ember - JavaScript Application Framework
-// Copyright: ©2011-2012 Tilde Inc. and contributors
-// Portions ©2006-2011 Strobe Inc.
-// Portions ©2008-2011 Apple Inc. All rights reserved.
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-
-
-// Version: v1.0.pre
-// Last commit: 7955b85 (2012-08-03 14:50:17 -0700)
-
-
-(function(){"undefined"==typeof Ember&&(Ember={}),"undefined"!=typeof window&&(window.Em=window.Ember=Em=Ember),Ember.isNamespace=!0,Ember.toString=function(){return"Ember"},Ember.VERSION="1.0.pre",Ember.ENV=Ember.ENV||("undefined"==typeof ENV?{}:ENV),Ember.config=Ember.config||{},Ember.EXTEND_PROTOTYPES=Ember.ENV.EXTEND_PROTOTYPES!==!1,Ember.LOG_STACKTRACE_ON_DEPRECATION=Ember.ENV.LOG_STACKTRACE_ON_DEPRECATION!==!1,Ember.SHIM_ES5=Ember.ENV.SHIM_ES5===!1?!1:Ember.EXTEND_PROTOTYPES,Ember.CP_DEFAULT_CACHEABLE=Ember.ENV.CP_DEFAULT_CACHEABLE!==!1,Ember.VIEW_PRESERVES_CONTEXT=Ember.ENV.VIEW_PRESERVES_CONTEXT!==!1,Ember.K=function(){return this},"undefined"==typeof Ember.assert&&(Ember.assert=Ember.K),"undefined"==typeof Ember.warn&&(Ember.warn=Ember.K),"undefined"==typeof Ember.deprecate&&(Ember.deprecate=Ember.K),"undefined"==typeof Ember.deprecateFunc&&(Ember.deprecateFunc=function(a,b){return b}),"undefined"==typeof ember_assert&&(window.ember_assert=Ember.K),"undefined"==typeof ember_warn&&(window.ember_warn=Ember.K),"undefined"==typeof ember_deprecate&&(window.ember_deprecate=Ember.K),"undefined"==typeof ember_deprecateFunc&&(window.ember_deprecateFunc=function(a,b){return b}),Ember.Logger=window.console||{log:Ember.K,warn:Ember.K,error:Ember.K,info:Ember.K,debug:Ember.K}})(),function(){var a=function(a){return a&&Function.prototype.toString.call(a).indexOf("[native code]")>-1},b=a(Array.prototype.map)?Array.prototype.map:function(a){if(this===void 0||this===null)throw new TypeError;var b=Object(this),c=b.length>>>0;if(typeof a!="function")throw new TypeError;var d=new Array(c),e=arguments[1];for(var f=0;f<c;f++)f in b&&(d[f]=a.call(e,b[f],f,b));return d},c=a(Array.prototype.forEach)?Array.prototype.forEach:function(a){if(this===void 0||this===null)throw new TypeError;var b=Object(this),c=b.length>>>0;if(typeof a!="function")throw new TypeError;var d=arguments[1];for(var e=0;e<c;e++)e in b&&a.call(d,b[e],e,b)},d=a(Array.prototype.indexOf)?Array.prototype.indexOf:function(a,b){b===null||b===undefined?b=0:b<0&&(b=Math.max(0,this.length+b));for(var c=b,d=this.length;c<d;c++)if(this[c]===a)return c;return-1};Ember.ArrayPolyfills={map:b,forEach:c,indexOf:d};var e=Ember.EnumerableUtils={map:function(a,c,d){return a.map?a.map.call(a,c,d):b.call(a,c,d)},forEach:function(a,b,d){return a.forEach?a.forEach.call(a,b,d):c.call(a,b,d)},indexOf:function(a,b,c){return a.indexOf?a.indexOf.call(a,b,c):d.call(a,b,c)},indexesOf:function(a,b){return b===undefined?[]:e.map(b,function(b){return e.indexOf(a,b)})},removeObject:function(a,b){var c=e.indexOf(a,b);c!==-1&&a.splice(c,1)}};Ember.SHIM_ES5&&(Array.prototype.map||(Array.prototype.map=b),Array.prototype.forEach||(Array.prototype.forEach=c),Array.prototype.indexOf||(Array.prototype.indexOf=d))}(),function(){var a=Ember.platform={};Ember.create=Object.create;if(!Ember.create){var b=function(){};Ember.create=function(a,c){b.prototype=a,a=new b;if(c){b.prototype=a;for(var d in c)b.prototype[d]=c[d].value;a=new b}return b.prototype=null,a},Ember.create.isSimulated=!0}var c=Object.defineProperty,d,e;if(c)try{c({},"a",{get:function(){}})}catch(f){c=null}c&&(d=function(){var a={};return c(a,"a",{configurable:!0,enumerable:!0,get:function(){},set:function(){}}),c(a,"a",{configurable:!0,enumerable:!0,writable:!0,value:!0}),a.a===!0}(),e=function(){try{return c(document.createElement("div"),"definePropertyOnDOM",{}),!0}catch(a){}return!1}(),d?e||(c=function(a,b,c){var d;return typeof Node=="object"?d=a instanceof Node:d=typeof a=="object"&&typeof a.nodeType=="number"&&typeof a.nodeName=="string",d?a[b]=c.value:Object.defineProperty(a,b,c)}):c=null),a.defineProperty=c,a.hasPropertyAccessors=!0,a.defineProperty||(a.hasPropertyAccessors=!1,a.defineProperty=function(a,b,c){c.get||(a[b]=c.value)},a.defineProperty.isSimulated=!0),Ember.ENV.MANDATORY_SETTER&&!a.hasPropertyAccessors&&(Ember.ENV.MANDATORY_SETTER=!1)}(),function(){function m(a){this.descs={},this.watching={},this.cache={},this.source=a}function n(a,b){return!!a&&typeof a[b]=="function"}var a=Ember.platform.defineProperty,b=Ember.create,c="__ember"+ +(new Date),d=0,e=[],f={},g=Ember.ENV.MANDATORY_SETTER;Ember.GUID_KEY=c;var h={writable:!1,configurable:!1,enumerable:!1,value:null};Ember.generateGuid=function(e,f){f||(f="ember");var g=f+d++;return e&&(h.value=g,a(e,c,h)),g},Ember.guidFor=function(g){if(g===undefined)return"(undefined)";if(g===null)return"(null)";var i,j,k=typeof g;switch(k){case"number":return j=e[g],j||(j=e[g]="nu"+g),j;case"string":return j=f[g],j||(j=f[g]="st"+d++),j;case"boolean":return g?"(true)":"(false)";default:if(g[c])return g[c];if(g===Object)return"(Object)";if(g===Array)return"(Array)";return j="ember"+d++,h.value=j,a(g,c,h),j}};var i={writable:!0,configurable:!1,enumerable:!1,value:null},j=Ember.GUID_KEY+"_meta";Ember.META_KEY=j;var k={descs:{},watching:{}};g&&(k.values={}),Ember.EMPTY_META=k,Object.freeze&&Object.freeze(k);var l=Ember.platform.defineProperty.isSimulated;l&&(m.prototype.__preventPlainObject__=!0),Ember.meta=function(d,e){var f=d[j];return e===!1?f||k:(f?f.source!==d&&(l||a(d,j,i),f=b(f),f.descs=b(f.descs),f.watching=b(f.watching),f.cache={},f.source=d,g&&(f.values=b(f.values)),d[j]=f):(l||a(d,j,i),f=new m(d),g&&(f.values={}),d[j]=f,f.descs.constructor=null),f)},Ember.getMeta=function(b,c){var d=Ember.meta(b,!1);return d[c]},Ember.setMeta=function(b,c,d){var e=Ember.meta(b,!0);return e[c]=d,d},Ember.metaPath=function(c,d,e){var f=Ember.meta(c,e),g,h;for(var i=0,j=d.length;i<j;i++){g=d[i],h=f[g];if(!h){if(!e)return undefined;h=f[g]={__ember_source__:c}}else if(h.__ember_source__!==c){if(!e)return undefined;h=f[g]=b(h),h.__ember_source__=c}f=h}return h},Ember.wrap=function(a,b){function c(){}var d=function(){var d,e=this._super;return this._super=b||c,d=a.apply(this,arguments),this._super=e,d};return d.base=a,d},Ember.isArray=function(a){return!a||a.setInterval?!1:Array.isArray&&Array.isArray(a)?!0:Ember.Array&&Ember.Array.detect(a)?!0:a.length!==undefined&&"object"==typeof a?!0:!1},Ember.makeArray=function(a){return a===null||a===undefined?[]:Ember.isArray(a)?a:[a]},Ember.canInvoke=n,Ember.tryInvoke=function(a,b,c){if(n(a,b))return a[b].apply(a,c)}}(),function(){var a=Ember.guidFor,b=Ember.ArrayPolyfills.indexOf,c=function(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b},d=function(a,b){var d=a.keys.copy(),e=c(a.values);return b.keys=d,b.values=e,b},e=Ember.OrderedSet=function(){this.clear()};e.create=function(){return new e},e.prototype={clear:function(){this.presenceSet={},this.list=[]},add:function(b){var c=a(b),d=this.presenceSet,e=this.list;if(c in d)return;d[c]=!0,e.push(b)},remove:function(c){var d=a(c),e=this.presenceSet,f=this.list;delete e[d];var g=b.call(f,c);g>-1&&f.splice(g,1)},isEmpty:function(){return this.list.length===0},forEach:function(a,b){var c=this.list.slice();for(var d=0,e=c.length;d<e;d++)a.call(b,c[d])},toArray:function(){return this.list.slice()},copy:function(){var a=new e;return a.presenceSet=c(this.presenceSet),a.list=this.list.slice(),a}};var f=Ember.Map=function(){this.keys=Ember.OrderedSet.create(),this.values={}};f.create=function(){return new f},f.prototype={get:function(b){var c=this.values,d=a(b);return c[d]},set:function(b,c){var d=this.keys,e=this.values,f=a(b);d.add(b),e[f]=c},remove:function(b){var c=this.keys,d=this.values,e=a(b),f;return d.hasOwnProperty(e)?(c.remove(b),f=d[e],delete d[e],!0):!1},has:function(b){var c=this.values,d=a(b);return c.hasOwnProperty(d)},forEach:function(b,c){var d=this.keys,e=this.values;d.forEach(function(d){var f=a(d);b.call(c,d,e[f])})},copy:function(){return d(this,new f)}};var g=Ember.MapWithDefault=function(a){f.call(this),this.defaultValue=a.defaultValue};g.create=function(a){return a?new g(a):new f},g.prototype=Ember.create(f.prototype),g.prototype.get=function(a){var b=this.has(a);if(b)return f.prototype.get.call(this,a);var c=this.defaultValue(a);return this.set(a,c),c},g.prototype.copy=function(){return d(this,new g({defaultValue:this.defaultValue}))}}(),function(){function i(a){return a.match(h)[0]}function j(a,c){var d=g.test(c),e=!d&&f.test(c),h;if(!a||e)a=window;d&&(c=c.slice(5)),a===window&&(h=i(c),a=b(a,h),c=c.slice(h.length+1));if(!c||c.length===0)throw new Error("Invalid Path");return[a,c]}function k(a,c){var d,e,f,h,i;if(a===null&&c.indexOf(".")===-1)return b(window,c);d=g.test(c);if(!a||d)f=j(a,c),a=f[0],c=f[1],f.length=0;e=c.split("."),i=e.length;for(h=0;a&&h<i;h++){a=b(a,e[h],!0);if(a&&a.isDestroyed)return undefined}return a}function l(a,b,d,e){var f;f=b.slice(b.lastIndexOf(".")+1),b=b.slice(0,b.length-(f.length+1)),b!=="this"&&(a=k(a,b));if(!f||f.length===0)throw new Error("You passed an empty path");if(!a){if(e)return;throw new Error("Object in path "+b+" could not be found or was destroyed.")}return c(a,f,d)}var a=Ember.META_KEY,b,c,d=Ember.ENV.MANDATORY_SETTER,e=/^([A-Z$]|([0-9][A-Z$]))/,f=/^([A-Z$]|([0-9][A-Z$])).*[\.\*]/,g=/^this[\.\*]/,h=/^([^\.\*]+)/;b=function(c,e){if(e==="")return c;!e&&"string"==typeof c&&(e=c,c=null);if(!c||e.indexOf(".")!==-1)return k(c,e);var f=c[a],g=f&&f.descs[e],h;return g?g.get(c,e):(d&&f&&f.watching[e]>0?h=f.values[e]:h=c[e],h!==undefined||"object"!=typeof c||e in c||"function"!=typeof c.unknownProperty?h:c.unknownProperty(e))},c=function(c,e,f,g){typeof c=="string"&&(f=e,e=c,c=null);if(!c||e.indexOf(".")!==-1)return l(c,e,f,g);var h=c[a],i=h&&h.descs[e],j,k;return i?i.set(c,e,f):(j="object"==typeof c&&!(e in c),j&&"function"==typeof c.setUnknownProperty?c.setUnknownProperty(e,f):h&&h.watching[e]>0?(d?k=h.values[e]:k=c[e],f!==k&&(Ember.propertyWillChange(c,e),d?k!==undefined||e in c?h.values[e]=f:Ember.defineProperty(c,e,null,f):c[e]=f,Ember.propertyDidChange(c,e))):c[e]=f),f},Ember.normalizeTuple=function(a,b){return j(a,b)},Ember.getWithDefault=function(a,c,d){var e=b(a,c);return e===undefined?d:e},Ember.get=b,Ember.getPath=Ember.deprecateFunc("getPath is deprecated since get now supports paths",Ember.get),Ember.set=c,Ember.setPath=Ember.deprecateFunc("setPath is deprecated since set now supports paths",Ember.set),Ember.trySet=function(a,b,d){return c(a,b,d,!0)},Ember.trySetPath=Ember.deprecateFunc("trySetPath has been renamed to trySet",Ember.trySet),Ember.isGlobalPath=function(a){return e.test(a)},Ember.config.overrideAccessors&&(Ember.config.overrideAccessors(),b=Ember.get,c=Ember.set)}(),function(){var a=Ember.GUID_KEY,b=Ember.META_KEY,c=Ember.EMPTY_META,d=Ember.meta,e=Ember.create,f=Ember.platform.defineProperty,g=Ember.ENV.MANDATORY_SETTER,h=Ember.Descriptor=function(){};Ember.defineProperty=function(a,c,e,h,i){var j,k,l,m;return i||(i=d(a)),j=i.descs,k=i.descs[c],l=i.watching[c]>0,k instanceof Ember.Descriptor&&k.teardown(a,c),e instanceof Ember.Descriptor?(m=e,j[c]=e,g&&l?f(a,c,{configurable:!0,enumerable:!0,writable:!0,value:undefined}):a[c]=undefined,e.setup(a,c)):(j[c]=undefined,e==null?(m=h,g&&l?(i.values[c]=h,f(a,c,{configurable:!0,enumerable:!0,set:function(){},get:function(){var a=this[b];return a&&a.values[c]}})):a[c]=h):(m=e,f(a,c,e))),l&&Ember.overrideChains(a,c,i),a.didDefineProperty&&a.didDefineProperty(a,c,m),this}}(),function(){function j(a,b,c,e){d&&!e?h.push(a,b,c):Ember.sendEvent(a,b,[a,c])}function k(){i.clear(),h.flush()}function l(b){return b+a}function m(a){return a+b}var a=":change",b=":before",c=Ember.guidFor,d=0,e=[].slice,f=function(){this.targetSet={}};f.prototype.add=function(a,b){var c=this.targetSet,d=Ember.guidFor(a),e=c[d];return e||(c[d]=e={}),e[b]?!1:e[b]=!0},f.prototype.clear=function(){this.targetSet={}};var g=function(){this.targetSet={},this.queue=[]};g.prototype.push=function(a,b,c){var d=this.targetSet,e=this.queue,f=Ember.guidFor(a),g=d[f],h;g||(d[f]=g={}),h=g[b],h===undefined?g[b]=e.push(Ember.deferEvent(a,b,[a,c]))-1:e[h]=Ember.deferEvent(a,b,[a,c])},g.prototype.flush=function(){var a=this.queue;this.queue=[],this.targetSet={};for(var b=0,c=a.length;b<c;++b)a[b]()};var h=new g,i=new f;Ember.beginPropertyChanges=function(){return d++,this},Ember.endPropertyChanges=function(){d--,d<=0&&k()},Ember.changeProperties=function(a,b){Ember.beginPropertyChanges();try{a.call(b)}finally{Ember.endPropertyChanges()}},Ember.setProperties=function(a,b){return Ember.changeProperties(function(){for(var c in b)b.hasOwnProperty(c)&&Ember.set(a,c,b[c])}),a},Ember.addObserver=function(a,b,c,d){return Ember.addListener(a,l(b),c,d),Ember.watch(a,b),this},Ember.observersFor=function(a,b){return Ember.listenersFor(a,l(b))},Ember.removeObserver=function(a,b,c,d){return Ember.unwatch(a,b),Ember.removeListener(a,l(b),c,d),this},Ember.addBeforeObserver=function(a,b,c,d){return Ember.addListener(a,m(b),c,d),Ember.watch(a,b),this},Ember._suspendBeforeObserver=function(a,b,c,d,e){return Ember._suspendListener(a,m(b),c,d,e)},Ember._suspendObserver=function(a,b,c,d,e){return Ember._suspendListener(a,l(b),c,d,e)},Ember.beforeObserversFor=function(a,b){return Ember.listenersFor(a,m(b))},Ember.removeBeforeObserver=function(a,b,c,d){return Ember.unwatch(a,b),Ember.removeListener(a,m(b),c,d),this},Ember.notifyObservers=function(a,b){if(a.isDestroying)return;j(a,l(b),b)},Ember.notifyBeforeObservers=function(a,b){if(a.isDestroying)return;var c,e,f=!1;if(d){if(!i.add(a,b))return;f=!0}j(a,m(b),b,f)}}(),function(){function n(a){return a.match(j)[0]}function o(a){return a==="*"||!k.test(a)}function q(b,c,d,e,f){var g=a(c);e[g]||(e[g]={});if(e[g][d])return;e[g][d]=!0;var h=f.deps;h=h&&h[d];if(h)for(var i in h){if(p[i])continue;b(c,i)}}function t(a,b,c){if(a.isDestroying)return;var d=r,e=!d;e&&(d=r={}),q(G,a,b,d,c),e&&(r=null)}function u(a,b,c){if(a.isDestroying)return;var d=s,e=!d;e&&(d=s={}),q(H,a,b,d,c),e&&(s=null)}function v(c,d,e){if(!c||"object"!=typeof c)return;var f=b(c),g=f.chainWatchers;if(!g||g.__emberproto__!==c)g=f.chainWatchers={__emberproto__:c};g[d]||(g[d]={}),g[d][a(e)]=e,Ember.watch(c,d)}function w(c,d,e){if(!c||"object"!=typeof c)return;var f=b(c,!1),g=f.chainWatchers;if(!g||g.__emberproto__!==c)return;g[d]&&delete g[d][a(e)],Ember.unwatch(c,d)}function y(){if(x.length===0)return;var a=x;x=[],i.call(a,function(a){a[0].add(a[1])})}function z(a){return b(a,!1).proto===a}function C(a){var c=b(a),d=c.chains;return d?d.value()!==a&&(d=c.chains=d.copy(a)):d=c.chains=new A(null,null,a),d}function D(a,b,c,d,e){var f=b.chainWatchers;if(!f||f.__emberproto__!==a)return;f=f[c];if(!f)return;for(var g in f){if(!f.hasOwnProperty(g))continue;f[g][d](e)}}function E(a,b,c){D(a,c,b,"willChange")}function F(a,b,c){D(a,c,b,"didChange")}function G(a,c,d){var e=b(a,!1),f=e.watching[c]>0||c==="length",g=e.proto,h=e.descs[c];if(!f)return;if(g===a)return;h&&h.willChange&&h.willChange(a,c),t(a,c,e),E(a,c,e),Ember.notifyBeforeObservers(a,c)}function H(a,c){var d=b(a,!1),e=d.watching[c]>0||c==="length",f=d.proto,g=d.descs[c];if(f===a)return;g&&g.didChange&&g.didChange(a,c);if(!e&&c!=="length")return;u(a,c,d),F(a,c,d),Ember.notifyObservers(a,c)}var a=Ember.guidFor,b=Ember.meta,c=Ember.get,d=Ember.set,e=Ember.normalizeTuple,f=Ember.GUID_KEY,g=Ember.META_KEY,h=Ember.notifyObservers,i=Ember.ArrayPolyfills.forEach,j=/^([^\.\*]+)/,k=/[\.\*]/,l=Ember.ENV.MANDATORY_SETTER,m=Ember.platform.defineProperty,p={__emberproto__:!0},r,s,x=[],A=function(a,b,c,d){var e;this._parent=a,this._key=b,this._watching=c===undefined,this._value=c,this._separator=d||".",this._paths={},this._watching&&(this._object=a.value(),this._object&&v(this._object,this._key,this)),this._parent&&this._parent._key==="@each"&&this.value()},B=A.prototype;B.value=function(){if(this._value===undefined&&this._watching){var a=this._parent.value();this._value=a&&!z(a)?c(a,this._key):undefined}return this._value},B.destroy=function(){if(this._watching){var a=this._object;a&&w(a,this._key,this),this._watching=!1}},B.copy=function(a){var b=new A(null,null,a,this._separator),c=this._paths,d;for(d in c){if(c[d]<=0)continue;b.add(d)}return b},B.add=function(a){var b,c,d,f,g,h;h=this._paths,h[a]=(h[a]||0)+1,b=this.value(),c=e(b,a);if(c[0]&&c[0]===b)a=c[1],d=n(a),a=a.slice(d.length+1);else{if(!c[0]){x.push([this,a]),c.length=0;return}f=c[0],d=a.slice(0,0-(c[1].length+1)),g=a.slice(d.length,d.length+1),a=c[1]}c.length=0,this.chain(d,a,f,g)},B.remove=function(a){var b,c,d,f,g;g=this._paths,g[a]>0&&g[a]--,b=this.value(),c=e(b,a),c[0]===b?(a=c[1],d=n(a),a=a.slice(d.length+1)):(f=c[0],d=a.slice(0,0-(c[1].length+1)),a=c[1]),c.length=0,this.unchain(d,a)},B.count=0,B.chain=function(a,b,c,d){var e=this._chains,f;e||(e=this._chains={}),f=e[a],f||(f=e[a]=new A(this,a,c,d)),f.count++,b&&b.length>0&&(a=n(b),b=b.slice(a.length+1),f.chain(a,b))},B.unchain=function(a,b){var c=this._chains,d=c[a];b&&b.length>1&&(a=n(b),b=b.slice(a.length+1),d.unchain(a,b)),d.count--,d.count<=0&&(delete c[d._key],d.destroy())},B.willChange=function(){var a=this._chains;if(a)for(var b in a){if(!a.hasOwnProperty(b))continue;a[b].willChange()}this._parent&&this._parent.chainWillChange(this,this._key,1)},B.chainWillChange=function(a,b,c){this._key&&(b=this._key+this._separator+b),this._parent?this._parent.chainWillChange(this,b,c+1):(c>1&&Ember.propertyWillChange(this.value(),b),b="this."+b,this._paths[b]>0&&Ember.propertyWillChange(this.value(),b))},B.chainDidChange=function(a,b,c){this._key&&(b=this._key+this._separator+b),this._parent?this._parent.chainDidChange(this,b,c+1):(c>1&&Ember.propertyDidChange(this.value(),b),b="this."+b,this._paths[b]>0&&Ember.propertyDidChange(this.value(),b))},B.didChange=function(a){if(this._watching){var b=this._parent.value();b!==this._object&&(w(this._object,this._key,this),this._object=b,v(b,this._key,this)),this._value=undefined,this._parent&&this._parent._key==="@each"&&this.value()}var c=this._chains;if(c)for(var d in c){if(!c.hasOwnProperty(d))continue;c[d].didChange(a)}if(a)return;this._parent&&this._parent.chainDidChange(this,this._key,1)},Ember.overrideChains=function(a,b,c){D(a,c,b,"didChange",!0)},Ember.watch=function(a,c){if(c==="length"&&Ember.typeOf(a)==="array")return this;var d=b(a),e=d.watching,f;return e[c]?e[c]=(e[c]||0)+1:(e[c]=1,o(c)?(f=d.descs[c],f&&f.willWatch&&f.willWatch(a,c),"function"==typeof a.willWatchProperty&&a.willWatchProperty(c),l&&c in a&&(d.values[c]=a[c],m(a,c,{configurable:!0,enumerable:!0,set:function(){},get:function(){var a=this[g];return a&&a.values[c]}}))):C(a).add(c)),this},Ember.isWatching=function(b,c){var d=b[g];return(d&&d.watching[c])>0},Ember.watch.flushPending=y,Ember.unwatch=function(a,c){if(c==="length"&&Ember.typeOf(a)==="array")return this;var d=b(a),e=d.watching,f;return e[c]===1?(e[c]=0,o(c)?(f=d.descs[c],f&&f.didUnwatch&&f.didUnwatch(a,c),"function"==typeof a.didUnwatchProperty&&a.didUnwatchProperty(c),l&&c in a&&(m(a,c,{configurable:!0,enumerable:!0,writable:!0,value:d.values[c]}),delete d.values[c])):C(a).remove(c)):e[c]>1&&e[c]--,this},Ember.rewatch=function(a){var c=b(a,!1),d=c.chains;return f in a&&!a.hasOwnProperty(f)&&Ember.generateGuid(a,"ember"),d&&d.value()!==a&&(c.chains=d.copy(a)),this},Ember.finishChains=function(a){var c=b(a,!1),d=c.chains;d&&(d.value()!==a&&(c.chains=d=d.copy(a)),d.didChange(!0))},Ember.propertyWillChange=G,Ember.propertyDidChange=H;var I=[];Ember.destroy=function(a){var b=a[g],c,d,e,f;if(b){a[g]=null,c=b.chains;if(c){I.push(c);while(I.length>0){c=I.pop(),d=c._chains;if(d)for(e in d)d.hasOwnProperty(e)&&I.push(d[e]);c._watching&&(f=c._object,f&&w(f,c._key,c))}}}}}(),function(){function i(a,b,c){var d=b[c];return d?d.__emberproto__!==a&&(d=b[c]=e(d),d.__emberproto__=a):d=b[c]={__emberproto__:a},d}function j(a,b){var c=b.deps;return c?c.__emberproto__!==a&&(c=b.deps=e(c),c.__emberproto__=a):c=b.deps={__emberproto__:a},c}function k(a,b,c,d){var e=a._dependentKeys,f,h,k,l,m;if(!e)return;f=j(b,d);for(h=0,k=e.length;h<k;h++)l=e[h],m=i(b,f,l),m[c]=(m[c]||0)+1,g(b,l)}function l(a,b,c,d){var e=a._dependentKeys,f,g,k,l,m;if(!e)return;f=j(b,d);for(g=0,k=e.length;g<k;g++)l=e[g],m=i(b,f,l),m[c]=(m[c]||0)-1,h(b,l)}function m(a,b){this.func=a,this._cacheable=b&&b.cacheable!==undefined?b.cacheable:Ember.CP_DEFAULT_CACHEABLE,this._dependentKeys=b&&b.dependentKeys}var a=Ember.get,b=Ember.meta,c=Ember.guidFor,d=[].slice,e=Ember.create,f=Ember.META_KEY,g=Ember.watch,h=Ember.unwatch;Ember.ComputedProperty=m,m.prototype=new Ember.Descriptor;var n=m.prototype;n.cacheable=function(a){return this._cacheable=a!==!1,this},n.volatile=function(){return this.cacheable(!1)},n.property=function(){var a=[];for(var b=0,c=arguments.length;b<c;b++)a.push(arguments[b]);return this._dependentKeys=a,this},n.meta=function(a){return arguments.length===0?this._meta||{}:(this._meta=a,this)},n.willWatch=function(a,b){var c=a[f];b in c.cache||k(this,a,b,c)},n.didUnwatch=function(a,b){var c=a[f];b in c.cache||l(this,a,b,c)},n.didChange=function(a,c){if(this._cacheable&&this._suspended!==a){var d=b(a);c in d.cache&&(delete d.cache[c],d.watching[c]||l(this,a,c,d))}},n.get=function(a,c){var d,e,f;if(this._cacheable){f=b(a),e=f.cache;if(c in e)return e[c];d=e[c]=this.func.call(a,c),f.watching[c]||k(this,a,c,f)}else d=this.func.call(a,c);return d},n.set=function(a,c,d){var e=this._cacheable,f=b(a,e),g=f.watching[c],h=this._suspended,i,j;return this._suspended=a,g&&Ember.propertyWillChange(a,c),e&&c in f.cache&&(delete f.cache[c],i=!0),j=this.func.call(a,c,d),e&&(!g&&!i&&k(this,a,c,f),f.cache[c]=j),g&&Ember.propertyDidChange(a,c),this._suspended=h,j},n.setup=function(a,c){var d=a[f];d&&d.watching[c]&&k(this,a,c,b(a))},n.teardown=function(a,c){var d=b(a);return(d.watching[c]||c in d.cache)&&l(this,a,c,d),this._cacheable&&delete d.cache[c],null},Ember.computed=function(a){var b;arguments.length>1&&(b=d.call(arguments,0,-1),a=d.call(arguments,-1)[0]);var c=new m(a);return b&&c.property.apply(c,b),c},Ember.cacheFor=function(c,d){var e=b(c,!1).cache;if(e&&d in e)return e[d]},Ember.computed.not=function(b){return Ember.computed(b,function(c){return!a(this,b)}).cacheable()},Ember.computed.empty=function(b){return Ember.computed(b,function(c){var d=a(this,b);return d===undefined||d===null||d===""||Ember.isArray(d)&&a(d,"length")===0}).cacheable()},Ember.computed.bool=function(b){return Ember.computed(b,function(c){return!!a(this,b)}).cacheable()}}(),function(){function f(a,b,e,f){return c(a,["listeners",b,d(e)],f)}function g(a,c){var d=b(a,!1).listeners;return d?d[c]||!1:!1}function i(a,b,c,d){var e=g(a,b);if(!e)return!1;for(var f in e){if(h[f])continue;var i=e[f];if(i)for(var j in i){if(h[j])continue;var k=i[j];if(k&&c(k,d,a)===!0)return!0}}return!1}function j(a,b,c){var d=a.method,e=a.target;e||(e=c),"string"==typeof d&&(d=e[d]),b?d.apply(e,b):d.apply(e)}function k(a,b,c,e){!e&&"function"==typeof c&&(e=c,c=null);var g=f(a,b,c,!0),h=d(e);g[h]||(g[h]={target:c,method:e}),"function"==typeof a.didAddListener&&a.didAddListener(b,c,e)}function l(a,b,c,e){!e&&"function"==typeof c&&(e=c,c=null);var g=f(a,b,c,!0),h=d(e);g&&g[h]&&(g[h]=null),"function"==typeof a.didRemoveListener&&a.didRemoveListener(b,c,e)}function m(a,b,c,e,g){!e&&"function"==typeof c&&(e=c,c=null);var h=f(a,b,c,!0),i=d(e),j=h&&h[i];h[i]=null;try{return g.call(c)}finally{h[i]=j}}function n(a){var c=b(a,!1).listeners,d=[];if(c)for(var e in c)!h[e]&&c[e]&&d.push(e);return d}function o(a,b,c){return a!==Ember&&"function"==typeof a.sendEvent&&a.sendEvent(b,c),i(a,b,j,c),!0}function p(a,b,c){var d=[];return i(a,b,function(a){d.push(a)}),function(){if(a.isDestroyed)return;a!==Ember&&"function"==typeof a.sendEvent&&a.sendEvent(b,c);for(var e=0,f=d.length;e<f;++e)j(d[e],c,a)}}function q(a,b){if(i(a,b,function(){return!0}))return!0;var d=c(a,["listeners"],!0);return d[b]=null,!1}function r(a,b){var c=[];return i(a,b,function(a){c.push([a.target,a.method])}),c}var a=Ember.create,b=Ember.meta,c=Ember.metaPath,d=Ember.guidFor,e=[].slice,h={__ember_source__:!0};Ember.addListener=k,Ember.removeListener=l,Ember._suspendListener=m,Ember.sendEvent=o,Ember.hasListeners=q,Ember.watchedEvents=n,Ember.listenersFor=r,Ember.deferEvent=p}(),function(){function c(b,c,d,e){c===undefined&&(c=b,b=undefined),"string"==typeof c&&(c=b[c]),d&&e>0&&(d=d.length>e?a.call(d,e):null);if("function"!=typeof Ember.onerror)return c.apply(b||this,d||[]);try{return c.apply(b||this,d||[])}catch(f){Ember.onerror(f)}}function h(){g=null,f.currentRunLoop&&f.end()}function k(){j=null;var a=+(new Date),b=-1;for(var d in i){if(!i.hasOwnProperty(d))continue;var e=i[d];if(e&&e.expires)if(a>=e.expires)delete i[d],c(e.target,e.method,e.args,2);else if(b<0||e.expires<b)b=e.expires}b>0&&(j=setTimeout(k,b- +(new Date)))}function l(a,b){b[this.tguid]&&delete b[this.tguid][this.mguid],i[a]&&c(this.target,this.method,this.args,2),delete i[a]}function n(){m=null;for(var a in i){if(!i.hasOwnProperty(a))continue;var b=i[a];b.next&&(delete i[a],c(b.target,b.method,b.args,2))}}var a=[].slice,b=Ember.ArrayPolyfills.forEach,d,e=function(a){this._prev=a||null,this.onceTimers={}};e.prototype={end:function(){this.flush()},prev:function(){return this._prev},schedule:function(b,c,d){var e=this._queues,f;e||(e=this._queues={}),f=e[b],f||(f=e[b]=[]);var g=arguments.length>3?a.call(arguments,3):null;return f.push({target:c,method:d,args:g}),this},flush:function(a){function j(a){c(a.target,a.method,a.args)}var e,f,g,h,i;if(!this._queues)return this;Ember.watch.flushPending();if(a)while(this._queues&&(h=this._queues[a])){this._queues[a]=null;if(a==="sync"){i=Ember.LOG_BINDINGS,i&&Ember.Logger.log("Begin: Flush Sync Queue"),Ember.beginPropertyChanges();try{b.call(h,j)}finally{Ember.endPropertyChanges()}i&&Ember.Logger.log("End: Flush Sync Queue")}else b.call(h,j)}else{e=Ember.run.queues,g=e.length,f=0;a:while(f<g){a=e[f],h=this._queues&&this._queues[a],delete this._queues[a];if(h)if(a==="sync"){i=Ember.LOG_BINDINGS,i&&Ember.Logger.log("Begin: Flush Sync Queue"),Ember.beginPropertyChanges();try{b.call(h,j)}finally{Ember.endPropertyChanges()}i&&Ember.Logger.log("End: Flush Sync Queue")}else b.call(h,j);for(var k=0;k<=f;k++)if(this._queues&&this._queues[e[k]]){f=k;continue a}f++}}return d=null,this}},Ember.RunLoop=e,Ember.run=function(a,b){var d,e;f.begin();try{if(a||b)d=c(a,b,arguments,2)}finally{f.end()}return d};var f=Ember.run;Ember.run.begin=function(){f.currentRunLoop=new e(f.currentRunLoop)},Ember.run.end=function(){try{f.currentRunLoop.end()}finally{f.currentRunLoop=f.currentRunLoop.prev()}},Ember.run.queues=["sync","actions","destroy","timers"],Ember.run.schedule=function(a,b,c){var d=f.autorun();d.schedule.apply(d,arguments)};var g;Ember.run.hasScheduledTimers=function(){return!!(g||j||m)},Ember.run.cancelTimers=function(){g&&(clearTimeout(g),g=null),j&&(clearTimeout(j),j=null),m&&(clearTimeout(m),m=null),i={}},Ember.run.autorun=function(){return f.currentRunLoop||(f.begin(),g||(g=setTimeout(h,1))),f.currentRunLoop},Ember.run.sync=function(){f.autorun(),f.currentRunLoop.flush("sync")};var i={},j;Ember.run.later=function(b,c){var d,e,g,h,j;return arguments.length===2&&"function"==typeof b?(j=c,c=b,b=undefined,d=[b,c]):(d=a.call(arguments),j=d.pop()),e=+(new Date)+j,g={target:b,method:c,expires:e,args:d},h=Ember.guidFor(g),i[h]=g,f.once(i,k),h},Ember.run.once=function(b,c){var d=Ember.guidFor(b),e=Ember.guidFor(c),g=f.autorun().onceTimers,h=g[d]&&g[d][e],j;return h&&i[h]?i[h].args=a.call(arguments):(j={target:b,method:c,args:a.call(arguments),tguid:d,mguid:e},h=Ember.guidFor(j),i[h]=j,g[d]||(g[d]={}),g[d][e]=h,f.schedule("actions",j,l,h,g)),h};var m;Ember.run.next=function(b,c){var d,e={target:b,method:c,args:a.call(arguments),next:!0};return d=Ember.guidFor(e),i[d]=e,m||(m=setTimeout(n,1)),d},Ember.run.cancel=function(a){delete i[a]}}(),function(){function e(b,c){return a(d(c)?window:b,c)}function g(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])}Ember.LOG_BINDINGS=!!Ember.ENV.LOG_BINDINGS;var a=Ember.get,b=Ember.set,c=Ember.guidFor,d=Ember.isGlobalPath,f=function(a,b){this._direction="fwd",this._from=b,this._to=a,this._directionMap=Ember.Map.create()};f.prototype={copy:function(){var a=new f(this._to,this._from);return this._oneWay&&(a._oneWay=!0),a},from:function(a){return this._from=a,this},to:function(a){return this._to=a,this},oneWay:function(){return this._oneWay=!0,this},toString:function(){var a=this._oneWay?"[oneWay]":"";return"Ember.Binding<"+c(this)+">("+this._from+" -> "+this._to+")"+a},connect:function(a){var b=this._from,c=this._to;return Ember.trySet(a,c,e(a,b)),Ember.addObserver(a,b,this,this.fromDidChange),this._oneWay||Ember.addObserver(a,c,this,this.toDidChange),this._readyToSync=!0,this},disconnect:function(a){var b=!this._oneWay;return Ember.removeObserver(a,this._from,this,this.fromDidChange),b&&Ember.removeObserver(a,this._to,this,this.toDidChange),this._readyToSync=!1,this},fromDidChange:function(a){this._scheduleSync(a,"fwd")},toDidChange:function(a){this._scheduleSync(a,"back")},_scheduleSync:function(a,b){var c=this._directionMap,d=c.get(a);d||(Ember.run.schedule("sync",this,this._sync,a),c.set(a,b)),d==="back"&&b==="fwd"&&c.set(a,"fwd")},_sync:function(b){var c=Ember.LOG_BINDINGS;if(b.isDestroyed||!this._readyToSync)return;var d=this._directionMap,f=d.get(b),g=this._from,h=this._to;d.remove(b);if(f==="fwd"){var i=e(b,this._from);c&&Ember.Logger.log(" ",this.toString(),"->",i,b),this._oneWay?Ember.trySet(b,h,i):Ember._suspendObserver(b,h,this,this.toDidChange,function(){Ember.trySet(b,h,i)})}else if(f==="back"){var j=a(b,this._to);c&&Ember.Logger.log(" ",this.toString(),"<-",j,b),Ember._suspendObserver(b,g,this,this.fromDidChange,function(){Ember.trySet(Ember.isGlobalPath(g)?window:b,g,j)})}}},g(f,{from:function(){var a=this,b=new a;return b.from.apply(b,arguments)},to:function(){var a=this,b=new a;return b.to.apply(b,arguments)},oneWay:function(a,b){var c=this,d=new c(null,a);return d.oneWay(b)}}),Ember.Binding=f,Ember.bind=function(a,b,c){return(new Ember.Binding(b,c)).connect(a)},Ember.oneWay=function(a,b,c){return(new Ember.Binding(b,c)).oneWay().connect(a)}}(),function(){function o(a){var b=Ember.meta(a,!0),c=b.mixins;return c?c.__emberproto__!==a&&(c=b.mixins=l(c),c.__emberproto__=a):c=b.mixins={__emberproto__:a},c}function p(b,c){return c&&c.length>0&&(b.mixins=f.call(c,function(b){if(b instanceof a)return b;var c=new a;return c.properties=b,c})),b}function q(a){return"function"==typeof a&&a.isMethod!==!1&&a!==Boolean&&a!==Object&&a!==Number&&a!==Array&&a!==Date&&a!==String}function r(c,d,e,f,i){function v(a){delete e[a],delete f[a]}var j=c.length,k,l,m,o,p,s,t,u;for(k=0;k<j;k++){l=c[k];if(l instanceof a){m=n(l);if(d[m])continue;d[m]=l,o=l.properties}else o=l;if(o){u=f.concatenatedProperties||i.concatenatedProperties,o.concatenatedProperties&&(u=u?u.concat(o.concatenatedProperties):o.concatenatedProperties);for(s in o){if(!o.hasOwnProperty(s))continue;p=o[s];if(p instanceof Ember.Descriptor){if(p===b&&e[s])continue;e[s]=p,f[s]=undefined}else{if(q(p)){t=e[s]===undefined&&f[s],t||(t=i[s]),"function"!=typeof t&&(t=null);if(t){var w=p.__ember_observes__,x=p.__ember_observesBefore__;p=Ember.wrap(p,t),p.__ember_observes__=w,p.__ember_observesBefore__=x}}else if(u&&g.call(u,s)>=0||s==="concatenatedProperties"){var y=f[s]||i[s];p=y?y.concat(p):Ember.makeArray(p)}e[s]=undefined,f[s]=p}}o.hasOwnProperty("toString")&&(i.toString=o.toString)}else l.mixins&&(r(l.mixins,d,e,f,i),l._without&&h.call(l._without,v))}}function s(a){var b=Ember.meta(a),c=b.required;if(!c||c.__emberproto__!==a)c=b.required=c?l(c):{__ember_count__:0},c.__emberproto__=a;return c}function u(a,b,c,d){if(t.test(b)){var e=d.bindings;e?e.__emberproto__!==a&&(e=d.bindings=l(d.bindings),e.__emberproto__=a):e=d.bindings={__emberproto__:a},e[b]=c}}function v(a,b){var c=b.bindings,d,e,f;if(c){for(d in c)e=d!=="__emberproto__"&&c[d],e&&(f=d.slice(0,-7),e instanceof Ember.Binding?(e=e.copy(),e.to(f)):e=new Ember.Binding(f,e),e.connect(a),a[d]=e);b.bindings={__emberproto__:a}}}function w(a,b){return v(a,b||Ember.meta(a)),a}function x(a,d,e){var f={},g={},h=Ember.meta(a),i=h.required,j,l,n,p,q,t,v;r(d,o(a),f,g,a);for(j in g){if(j==="contructor")continue;if(!g.hasOwnProperty(j))continue;n=f[j],l=g[j];if(n===b)j in a||(i=s(a),i.__ember_count__++,i[j]=!0);else{while(n&&n instanceof c){var x=n.methodName;f[x]||g[x]?(l=g[x],n=f[x]):h.descs[x]?(n=h.descs[x],l=undefined):(n=undefined,l=a[x])}if(n===undefined&&l===undefined)continue;p=a[j];if("function"==typeof p)if(q=p.__ember_observesBefore__){t=q.length;for(v=0;v<t;v++)Ember.removeBeforeObserver(a,q[v],null,j)}else if(q=p.__ember_observes__){t=q.length;for(v=0;v<t;v++)Ember.removeObserver(a,q[v],null,j)}u(a,j,l,h),m(a,j,n,l,h);if("function"==typeof l)if(q=l.__ember_observesBefore__){t=q.length;for(v=0;v<t;v++)Ember.addBeforeObserver(a,q[v],null,j)}else if(q=l.__ember_observes__){t=q.length;for(v=0;v<t;v++)Ember.addObserver(a,q[v],null,j)}i&&i[j]&&(i=s(a),i.__ember_count__--,i[j]=!1)}}e||w(a,h);if(!e&&i&&i.__ember_count__>0){var y=[];for(j in i){if(k[j])continue;y.push(j)}}return a
-}function z(a,b,c){var d=n(a);if(c[d])return!1;c[d]=!0;if(a===b)return!0;var e=a.mixins,f=e?e.length:0;while(--f>=0)if(z(e[f],b,c))return!0;return!1}function A(a,b,c){if(c[n(b)])return;c[n(b)]=!0;if(b.properties){var d=b.properties;for(var e in d)d.hasOwnProperty(e)&&(a[e]=!0)}else b.mixins&&h.call(b.mixins,function(b){A(a,b,c)})}function D(a,b,c){var e=a.length;for(var f in b){if(!b.hasOwnProperty||!b.hasOwnProperty(f))continue;var g=b[f];a[e]=f;if(g&&g.toString===d)g[B]=a.join(".");else if(g&&C(g,"isNamespace")){if(c[n(g)])continue;c[n(g)]=!0,D(a,g,c)}}a.length=e}function E(){var a=Ember.Namespace,b,c;if(a.PROCESSED)return;for(var d in window){if(d==="globalStorage"&&window.StorageList&&window.globalStorage instanceof window.StorageList)continue;if(window.hasOwnProperty&&!window.hasOwnProperty(d))continue;try{b=window[d],c=b&&C(b,"isNamespace")}catch(e){continue}c&&(b[B]=d)}}var a,b,c,d,e,f=Ember.ArrayPolyfills.map,g=Ember.ArrayPolyfills.indexOf,h=Ember.ArrayPolyfills.forEach,i=[].slice,j={},k={__emberproto__:!0,__ember_count__:!0},l=Ember.create,m=Ember.defineProperty,n=Ember.guidFor,t=Ember.IS_BINDING=/^.+Binding$/;Ember.mixin=function(a){var b=i.call(arguments,1);return x(a,b,!1),a},Ember.Mixin=function(){return p(this,arguments)},a=Ember.Mixin,a._apply=x,a.applyPartial=function(a){var b=i.call(arguments,1);return x(a,b,!0)},a.finishPartial=w,a.create=function(){d.processed=!1;var a=this;return p(new a,arguments)};var y=a.prototype;y.reopen=function(){var b,c;this.properties?(b=a.create(),b.properties=this.properties,delete this.properties,this.mixins=[b]):this.mixins||(this.mixins=[]);var d=arguments.length,e=this.mixins,f;for(f=0;f<d;f++)b=arguments[f],b instanceof a?e.push(b):(c=a.create(),c.properties=b,e.push(c));return this},y.apply=function(a){return x(a,[this],!1)},y.applyPartial=function(a){return x(a,[this],!0)},y.detect=function(b){if(!b)return!1;if(b instanceof a)return z(b,this,{});var c=Ember.meta(b,!1).mixins;return c?!!c[n(this)]:!1},y.without=function(){var b=new a(this);return b._without=i.call(arguments),b},y.keys=function(){var a={},b={},c=[];A(a,this,b);for(var d in a)a.hasOwnProperty(d)&&c.push(d);return c};var B=Ember.GUID_KEY+"_name",C=Ember.get;Ember.identifyNamespaces=E,e=function(a){var b=a.superclass;if(b)return b[B]?b[B]:e(b);return},d=function(){var a=Ember.Namespace,b;if(a&&!this[B]&&!d.processed){a.PROCESSED||(E(),a.PROCESSED=!0),d.processed=!0;var c=a.NAMESPACES;for(var f=0,g=c.length;f<g;f++)b=c[f],D([b.toString()],b,{})}if(this[B])return this[B];var h=e(this);return h?"(subclass of "+h+")":"(unknown mixin)"},y.toString=d,a.mixins=function(a){var b=[],c=Ember.meta(a,!1).mixins,d,e;if(c)for(d in c){if(k[d])continue;e=c[d],e.properties||b.push(c[d])}return b},b=new Ember.Descriptor,b.toString=function(){return"(Required Property)"},Ember.required=function(){return b},c=function(a){this.methodName=a},c.prototype=new Ember.Descriptor,Ember.alias=function(a){return new c(a)},Ember.observer=function(a){var b=i.call(arguments,1);return a.__ember_observes__=b,a},Ember.immediateObserver=function(){for(var a=0,b=arguments.length;a<b;a++)var c=arguments[a];return Ember.observer.apply(this,arguments)},Ember.beforeObserver=function(a){var b=i.call(arguments,1);return a.__ember_observesBefore__=b,a}}(),function(){}(),function(){}(),function(){function e(b,c,d,f){var g,h,i;if("object"!=typeof b||b===null)return b;if(c&&(h=a(d,b))>=0)return f[h];if(Ember.typeOf(b)==="array"){g=b.slice();if(c){h=g.length;while(--h>=0)g[h]=e(g[h],c,d,f)}}else if(Ember.Copyable&&Ember.Copyable.detect(b))g=b.copy(c,d,f);else{g={};for(i in b){if(!b.hasOwnProperty(i))continue;g[i]=c?e(b[i],c,d,f):b[i]}}return c&&(d.push(b),f.push(g)),g}var a=Ember.EnumerableUtils.indexOf,b={},c="Boolean Number String Function Array Date RegExp Object".split(" ");Ember.ArrayPolyfills.forEach.call(c,function(a){b["[object "+a+"]"]=a.toLowerCase()});var d=Object.prototype.toString;Ember.typeOf=function(a){var c;return c=a===null||a===undefined?String(a):b[d.call(a)]||"object",c==="function"?Ember.Object&&Ember.Object.detect(a)&&(c="class"):c==="object"&&(a instanceof Error?c="error":Ember.Object&&a instanceof Ember.Object?c="instance":c="object"),c},Ember.none=function(a){return a===null||a===undefined},Ember.empty=function(a){return a===null||a===undefined||a.length===0&&typeof a!="function"},Ember.compare=function f(a,b){if(a===b)return 0;var c=Ember.typeOf(a),d=Ember.typeOf(b),e=Ember.Comparable;if(e){if(c==="instance"&&e.detect(a.constructor))return a.constructor.compare(a,b);if(d==="instance"&&e.detect(b.constructor))return 1-b.constructor.compare(b,a)}var g=Ember.ORDER_DEFINITION_MAPPING;if(!g){var h=Ember.ORDER_DEFINITION;g=Ember.ORDER_DEFINITION_MAPPING={};var i,j;for(i=0,j=h.length;i<j;++i)g[h[i]]=i;delete Ember.ORDER_DEFINITION}var k=g[c],l=g[d];if(k<l)return-1;if(k>l)return 1;switch(c){case"boolean":case"number":if(a<b)return-1;if(a>b)return 1;return 0;case"string":var m=a.localeCompare(b);if(m<0)return-1;if(m>0)return 1;return 0;case"array":var n=a.length,o=b.length,p=Math.min(n,o),q=0,r=0;while(q===0&&r<p)q=f(a[r],b[r]),r++;if(q!==0)return q;if(n<o)return-1;if(n>o)return 1;return 0;case"instance":if(Ember.Comparable&&Ember.Comparable.detect(a))return a.compare(a,b);return 0;case"date":var s=a.getTime(),t=b.getTime();if(s<t)return-1;if(s>t)return 1;return 0;default:return 0}},Ember.copy=function(a,b){return"object"!=typeof a||a===null?a:Ember.Copyable&&Ember.Copyable.detect(a)?a.copy(b):e(a,b,b?[]:null,b?[]:null)},Ember.inspect=function(a){var b,c=[];for(var d in a)if(a.hasOwnProperty(d)){b=a[d];if(b==="toString")continue;Ember.typeOf(b)==="function"&&(b="function() { ... }"),c.push(d+": "+b)}return"{"+c.join(" , ")+"}"},Ember.isEqual=function(a,b){return a&&"function"==typeof a.isEqual?a.isEqual(b):a===b},Ember.ORDER_DEFINITION=Ember.ENV.ORDER_DEFINITION||["undefined","null","boolean","number","string","array","object","instance","function","class","date"],Ember.keys=Object.keys,Ember.keys||(Ember.keys=function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c);return b}),Ember.Error=function(){var a=Error.prototype.constructor.apply(this,arguments);for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);this.message=a.message},Ember.Error.prototype=Ember.create(Error.prototype)}(),function(){var a=/[ _]/g,b={},c=/([a-z])([A-Z])/g,d=/(\-|_|\s)+(.)?/g,e=/([a-z\d])([A-Z]+)/g,f=/\-|\s+/g;Ember.STRINGS={},Ember.String={fmt:function(a,b){var c=0;return a.replace(/%@([0-9]+)?/g,function(a,d){return d=d?parseInt(d,0)-1:c++,a=b[d],(a===null?"(null)":a===undefined?"":a).toString()})},loc:function(a,b){return a=Ember.STRINGS[a]||a,Ember.String.fmt(a,b)},w:function(a){return a.split(/\s+/)},decamelize:function(a){return a.replace(c,"$1_$2").toLowerCase()},dasherize:function(c){var d=b,e=d[c];return e?e:(e=Ember.String.decamelize(c).replace(a,"-"),d[c]=e,e)},camelize:function(a){return a.replace(d,function(a,b,c){return c?c.toUpperCase():""})},classify:function(a){var b=Ember.String.camelize(a);return b.charAt(0).toUpperCase()+b.substr(1)},underscore:function(a){return a.replace(e,"$1_$2").replace(f,"_").toLowerCase()}}}(),function(){var a=Ember.String.fmt,b=Ember.String.w,c=Ember.String.loc,d=Ember.String.camelize,e=Ember.String.decamelize,f=Ember.String.dasherize,g=Ember.String.underscore;Ember.EXTEND_PROTOTYPES&&(String.prototype.fmt=function(){return a(this,arguments)},String.prototype.w=function(){return b(this)},String.prototype.loc=function(){return c(this,arguments)},String.prototype.camelize=function(){return d(this)},String.prototype.decamelize=function(){return e(this)},String.prototype.dasherize=function(){return f(this)},String.prototype.underscore=function(){return g(this)})}(),function(){var a=Array.prototype.slice;Ember.EXTEND_PROTOTYPES&&(Function.prototype.property=function(){var a=Ember.computed(this);return a.property.apply(a,arguments)},Function.prototype.observes=function(){return this.__ember_observes__=a.call(arguments),this},Function.prototype.observesBefore=function(){return this.__ember_observesBefore__=a.call(arguments),this})}(),function(){}(),function(){function f(){return e.length===0?{}:e.pop()}function g(a){return e.push(a),null}function h(b,c){function e(e){var f=a(e,b);return d?c===f:!!f}var d=arguments.length===2;return e}var a=Ember.get,b=Ember.set,c=Array.prototype.slice,d=Ember.EnumerableUtils.indexOf,e=[];Ember.Enumerable=Ember.Mixin.create({isEnumerable:!0,nextObject:Ember.required(Function),firstObject:Ember.computed(function(){if(a(this,"length")===0)return undefined;var b=f(),c;return c=this.nextObject(0,null,b),g(b),c}).property("[]").cacheable(),lastObject:Ember.computed(function(){var b=a(this,"length");if(b===0)return undefined;var c=f(),d=0,e,h=null;do h=e,e=this.nextObject(d++,h,c);while(e!==undefined);return g(c),h}).property("[]").cacheable(),contains:function(a){return this.find(function(b){return b===a})!==undefined},forEach:function(b,c){if(typeof b!="function")throw new TypeError;var d=a(this,"length"),e=null,h=f();c===undefined&&(c=null);for(var i=0;i<d;i++){var j=this.nextObject(i,e,h);b.call(c,j,i,this),e=j}return e=null,h=g(h),this},getEach:function(a){return this.mapProperty(a)},setEach:function(a,c){return this.forEach(function(d){b(d,a,c)})},map:function(a,b){var c=[];return this.forEach(function(d,e,f){c[e]=a.call(b,d,e,f)}),c},mapProperty:function(b){return this.map(function(c){return a(c,b)})},filter:function(a,b){var c=[];return this.forEach(function(d,e,f){a.call(b,d,e,f)&&c.push(d)}),c},filterProperty:function(a,b){return this.filter(h.apply(this,arguments))},find:function(b,c){var d=a(this,"length");c===undefined&&(c=null);var e=null,h,i=!1,j,k=f();for(var l=0;l<d&&!i;l++){h=this.nextObject(l,e,k);if(i=b.call(c,h,l,this))j=h;e=h}return h=e=null,k=g(k),j},findProperty:function(a,b){return this.find(h.apply(this,arguments))},every:function(a,b){return!this.find(function(c,d,e){return!a.call(b,c,d,e)})},everyProperty:function(a,b){return this.every(h.apply(this,arguments))},some:function(a,b){return!!this.find(function(c,d,e){return!!a.call(b,c,d,e)})},someProperty:function(a,b){return this.some(h.apply(this,arguments))},reduce:function(a,b,c){if(typeof a!="function")throw new TypeError;var d=b;return this.forEach(function(b,e){d=a.call(null,d,b,e,this,c)},this),d},invoke:function(a){var b,d=[];return arguments.length>1&&(b=c.call(arguments,1)),this.forEach(function(c,e){var f=c&&c[a];"function"==typeof f&&(d[e]=b?f.apply(c,b):f.call(c))},this),d},toArray:function(){var a=[];return this.forEach(function(b,c){a[c]=b}),a},compact:function(){return this.without(null)},without:function(a){if(!this.contains(a))return this;var b=[];return this.forEach(function(c){c!==a&&(b[b.length]=c)}),b},uniq:function(){var a=[];return this.forEach(function(b){d(a,b)<0&&a.push(b)}),a},"[]":Ember.computed(function(a,b){return this}).property().cacheable(),addEnumerableObserver:function(b,c){var d=c&&c.willChange||"enumerableWillChange",e=c&&c.didChange||"enumerableDidChange",f=a(this,"hasEnumerableObservers");return f||Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.addListener(this,"@enumerable:before",b,d),Ember.addListener(this,"@enumerable:change",b,e),f||Ember.propertyDidChange(this,"hasEnumerableObservers"),this},removeEnumerableObserver:function(b,c){var d=c&&c.willChange||"enumerableWillChange",e=c&&c.didChange||"enumerableDidChange",f=a(this,"hasEnumerableObservers");return f&&Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.removeListener(this,"@enumerable:before",b,d),Ember.removeListener(this,"@enumerable:change",b,e),f&&Ember.propertyDidChange(this,"hasEnumerableObservers"),this},hasEnumerableObservers:Ember.computed(function(){return Ember.hasListeners(this,"@enumerable:change")||Ember.hasListeners(this,"@enumerable:before")}).property().cacheable(),enumerableContentWillChange:function(b,c){var d,e,f;return"number"==typeof b?d=b:b?d=a(b,"length"):d=b=-1,"number"==typeof c?e=c:c?e=a(c,"length"):e=c=-1,f=e<0||d<0||e-d!==0,b===-1&&(b=null),c===-1&&(c=null),Ember.propertyWillChange(this,"[]"),f&&Ember.propertyWillChange(this,"length"),Ember.sendEvent(this,"@enumerable:before",[this,b,c]),this},enumerableContentDidChange:function(b,c){var d=this.propertyDidChange,e,f,g;return"number"==typeof b?e=b:b?e=a(b,"length"):e=b=-1,"number"==typeof c?f=c:c?f=a(c,"length"):f=c=-1,g=f<0||e<0||f-e!==0,b===-1&&(b=null),c===-1&&(c=null),Ember.sendEvent(this,"@enumerable:change",[this,b,c]),g&&Ember.propertyDidChange(this,"length"),Ember.propertyDidChange(this,"[]"),this}})}(),function(){function f(a){return a===null||a===undefined}var a=Ember.get,b=Ember.set,c=Ember.meta,d=Ember.EnumerableUtils.map,e=Ember.cacheFor;Ember.Array=Ember.Mixin.create(Ember.Enumerable,{isSCArray:!0,length:Ember.required(),objectAt:function(b){return b<0||b>=a(this,"length")?undefined:a(this,b)},objectsAt:function(a){var b=this;return d(a,function(a){return b.objectAt(a)})},nextObject:function(a){return this.objectAt(a)},"[]":Ember.computed(function(b,c){return c!==undefined&&this.replace(0,a(this,"length"),c),this}).property().cacheable(),firstObject:Ember.computed(function(){return this.objectAt(0)}).property().cacheable(),lastObject:Ember.computed(function(){return this.objectAt(a(this,"length")-1)}).property().cacheable(),contains:function(a){return this.indexOf(a)>=0},slice:function(b,c){var d=[],e=a(this,"length");f(b)&&(b=0);if(f(c)||c>e)c=e;while(b<c)d[d.length]=this.objectAt(b++);return d},indexOf:function(b,c){var d,e=a(this,"length");c===undefined&&(c=0),c<0&&(c+=e);for(d=c;d<e;d++)if(this.objectAt(d,!0)===b)return d;return-1},lastIndexOf:function(b,c){var d,e=a(this,"length");if(c===undefined||c>=e)c=e-1;c<0&&(c+=e);for(d=c;d>=0;d--)if(this.objectAt(d)===b)return d;return-1},addArrayObserver:function(b,c){var d=c&&c.willChange||"arrayWillChange",e=c&&c.didChange||"arrayDidChange",f=a(this,"hasArrayObservers");return f||Ember.propertyWillChange(this,"hasArrayObservers"),Ember.addListener(this,"@array:before",b,d),Ember.addListener(this,"@array:change",b,e),f||Ember.propertyDidChange(this,"hasArrayObservers"),this},removeArrayObserver:function(b,c){var d=c&&c.willChange||"arrayWillChange",e=c&&c.didChange||"arrayDidChange",f=a(this,"hasArrayObservers");return f&&Ember.propertyWillChange(this,"hasArrayObservers"),Ember.removeListener(this,"@array:before",b,d),Ember.removeListener(this,"@array:change",b,e),f&&Ember.propertyDidChange(this,"hasArrayObservers"),this},hasArrayObservers:Ember.computed(function(){return Ember.hasListeners(this,"@array:change")||Ember.hasListeners(this,"@array:before")}).property().cacheable(),arrayContentWillChange:function(b,c,d){b===undefined?(b=0,c=d=-1):(c===undefined&&(c=-1),d===undefined&&(d=-1)),Ember.isWatching(this,"@each")&&a(this,"@each"),Ember.sendEvent(this,"@array:before",[this,b,c,d]);var e,f;if(b>=0&&c>=0&&a(this,"hasEnumerableObservers")){e=[],f=b+c;for(var g=b;g<f;g++)e.push(this.objectAt(g))}else e=c;return this.enumerableContentWillChange(e,d),this},arrayContentDidChange:function(b,c,d){b===undefined?(b=0,c=d=-1):(c===undefined&&(c=-1),d===undefined&&(d=-1));var f,g;if(b>=0&&d>=0&&a(this,"hasEnumerableObservers")){f=[],g=b+d;for(var h=b;h<g;h++)f.push(this.objectAt(h))}else f=d;this.enumerableContentDidChange(c,f),Ember.sendEvent(this,"@array:change",[this,b,c,d]);var i=a(this,"length"),j=e(this,"firstObject"),k=e(this,"lastObject");return this.objectAt(0)!==j&&(Ember.propertyWillChange(this,"firstObject"),Ember.propertyDidChange(this,"firstObject")),this.objectAt(i-1)!==k&&(Ember.propertyWillChange(this,"lastObject"),Ember.propertyDidChange(this,"lastObject")),this},"@each":Ember.computed(function(){return this.__each||(this.__each=new Ember.EachProxy(this)),this.__each}).property().cacheable()})}(),function(){Ember.Comparable=Ember.Mixin.create({isComparable:!0,compare:Ember.required(Function)})}(),function(){var a=Ember.get,b=Ember.set;Ember.Copyable=Ember.Mixin.create({copy:Ember.required(Function),frozenCopy:function(){if(Ember.Freezable&&Ember.Freezable.detect(this))return a(this,"isFrozen")?this:this.copy().freeze();throw new Error(Ember.String.fmt("%@ does not support freezing",[this]))}})}(),function(){var a=Ember.get,b=Ember.set;Ember.Freezable=Ember.Mixin.create({isFrozen:!1,freeze:function(){return a(this,"isFrozen")?this:(b(this,"isFrozen",!0),this)}}),Ember.FROZEN_ERROR="Frozen object cannot be modified."}(),function(){var a=Ember.EnumerableUtils.forEach;Ember.MutableEnumerable=Ember.Mixin.create(Ember.Enumerable,{addObject:Ember.required(Function),addObjects:function(b){return Ember.beginPropertyChanges(this),a(b,function(a){this.addObject(a)},this),Ember.endPropertyChanges(this),this},removeObject:Ember.required(Function),removeObjects:function(b){return Ember.beginPropertyChanges(this),a(b,function(a){this.removeObject(a)},this),Ember.endPropertyChanges(this),this}})}(),function(){var a="Index out of range",b=[],c=Ember.get,d=Ember.set,e=Ember.EnumerableUtils.forEach;Ember.MutableArray=Ember.Mixin.create(Ember.Array,Ember.MutableEnumerable,{replace:Ember.required(),clear:function(){var a=c(this,"length");return a===0?this:(this.replace(0,a,b),this)},insertAt:function(b,d){if(b>c(this,"length"))throw new Error(a);return this.replace(b,0,[d]),this},removeAt:function(d,e){var f=0;if("number"==typeof d){if(d<0||d>=c(this,"length"))throw new Error(a);e===undefined&&(e=1),this.replace(d,e,b)}return this},pushObject:function(a){return this.insertAt(c(this,"length"),a),a},pushObjects:function(a){return this.replace(c(this,"length"),0,a),this},popObject:function(){var a=c(this,"length");if(a===0)return null;var b=this.objectAt(a-1);return this.removeAt(a-1,1),b},shiftObject:function(){if(c(this,"length")===0)return null;var a=this.objectAt(0);return this.removeAt(0),a},unshiftObject:function(a){return this.insertAt(0,a),a},unshiftObjects:function(a){return this.replace(0,0,a),this},reverseObjects:function(){var a=c(this,"length");if(a===0)return this;var b=this.toArray().reverse();return this.replace(0,a,b),this},removeObject:function(a){var b=c(this,"length")||0;while(--b>=0){var d=this.objectAt(b);d===a&&this.removeAt(b)}return this},addObject:function(a){return this.contains(a)||this.pushObject(a),this}})}(),function(){var a=Ember.get,b=Ember.set,c=Ember.defineProperty;Ember.Observable=Ember.Mixin.create({isObserverable:!0,get:function(b){return a(this,b)},getProperties:function(){var b={},c=arguments;arguments.length===1&&Ember.typeOf(arguments[0])==="array"&&(c=arguments[0]);for(var d=0;d<c.length;d++)b[c[d]]=a(this,c[d]);return b},set:function(a,c){return b(this,a,c),this},setProperties:function(a){return Ember.setProperties(this,a)},beginPropertyChanges:function(){return Ember.beginPropertyChanges(),this},endPropertyChanges:function(){return Ember.endPropertyChanges(),this},propertyWillChange:function(a){return Ember.propertyWillChange(this,a),this},propertyDidChange:function(a){return Ember.propertyDidChange(this,a),this},notifyPropertyChange:function(a){return this.propertyWillChange(a),this.propertyDidChange(a),this},addBeforeObserver:function(a,b,c){Ember.addBeforeObserver(this,a,b,c)},addObserver:function(a,b,c){Ember.addObserver(this,a,b,c)},removeObserver:function(a,b,c){Ember.removeObserver(this,a,b,c)},hasObserverFor:function(a){return Ember.hasListeners(this,a+":change")},unknownProperty:function(a){return undefined},setUnknownProperty:function(a,d){c(this,a),b(this,a,d)},getPath:function(a){return this.get(a)},setPath:function(a,b){return this.set(a,b)},getWithDefault:function(a,b){return Ember.getWithDefault(this,a,b)},incrementProperty:function(c,d){return d||(d=1),b(this,c,(a(this,c)||0)+d),a(this,c)},decrementProperty:function(c,d){return d||(d=1),b(this,c,(a(this,c)||0)-d),a(this,c)},toggleProperty:function(c){return b(this,c,!a(this,c)),a(this,c)},cacheFor:function(a){return Ember.cacheFor(this,a)},observersForKey:function(a){return Ember.observersFor(this,a)}})}(),function(){var a=Ember.get,b=Ember.set;Ember.TargetActionSupport=Ember.Mixin.create({target:null,action:null,targetObject:Ember.computed(function(){var b=a(this,"target");if(Ember.typeOf(b)==="string"){var c=a(this,b);return c===undefined&&(c=a(window,b)),c}return b}).property("target").cacheable(),triggerAction:function(){var b=a(this,"action"),c=a(this,"targetObject");if(c&&b){var d;return typeof c.send=="function"?d=c.send(b,this):(typeof b=="string"&&(b=c[b]),d=b.call(c,this)),d!==!1&&(d=!0),d}return!1}})}(),function(){Ember.Evented=Ember.Mixin.create({on:function(a,b,c){Ember.addListener(this,a,b,c)},one:function(a,b,c){c||(c=b,b=null);var d=this,e=function(){Ember.removeListener(d,a,b,e),"string"==typeof c&&(c=this[c]),c.apply(this,arguments)};this.on(a,b,e)},trigger:function(a){var b=[],c,d;for(c=1,d=arguments.length;c<d;c++)b.push(arguments[c]);Ember.sendEvent(this,a,b)},fire:function(a){this.trigger.apply(this,arguments)},off:function(a,b,c){Ember.removeListener(this,a,b,c)},has:function(a){return Ember.hasListeners(this,a)}})}(),function(){}(),function(){function m(){var b=!1,c,d=function(){b||d.proto();var a=Ember.meta(this);a.proto=this,c&&(this.reopen.apply(this,c),c=null),e(this,Ember.GUID_KEY,l),e(this,"_super",l),j(this,a),delete a.proto,i(this),this.init.apply(this,arguments)};return d.toString=a,d.willReopen=function(){b&&(d.PrototypeMixin=Ember.Mixin.create(d.PrototypeMixin)),b=!1},d._initMixins=function(a){c=a},d.proto=function(){var a=d.superclass;return a&&a.proto(),b||(b=!0,d.PrototypeMixin.applyPartial(d.prototype),h(d.prototype)),this.prototype},d}var a=Ember.Mixin.prototype.toString,b=Ember.set,c=Ember.get,d=Ember.create,e=Ember.platform.defineProperty,f=Array.prototype.slice,g=Ember.meta,h=Ember.rewatch,i=Ember.finishChains,j=Ember.Mixin.finishPartial,k=Ember.Mixin.prototype.reopen,l={configurable:!0,writable:!0,enumerable:!1,value:undefined},n=m();n.PrototypeMixin=Ember.Mixin.create({reopen:function(){return Ember.Mixin._apply(this,arguments,!0),this},isInstance:!0,init:function(){},isDestroyed:!1,isDestroying:!1,destroy:function(){if(this.isDestroying)return;return this.isDestroying=!0,this.willDestroy&&this.willDestroy(),b(this,"isDestroyed",!0),Ember.run.schedule("destroy",this,this._scheduledDestroy),this},_scheduledDestroy:function(){Ember.destroy(this),this.didDestroy&&this.didDestroy()},bind:function(a,b){return b instanceof Ember.Binding||(b=Ember.Binding.from(b)),b.to(a).connect(this),b},toString:function(){return"<"+this.constructor.toString()+":"+Ember.guidFor(this)+">"}}),Ember.config.overridePrototypeMixin&&Ember.config.overridePrototypeMixin(n.PrototypeMixin),n.__super__=null;var o=Ember.Mixin.create({ClassMixin:Ember.required(),PrototypeMixin:Ember.required(),isClass:!0,isMethod:!1,extend:function(){var a=m(),b;return a.ClassMixin=Ember.Mixin.create(this.ClassMixin),a.PrototypeMixin=Ember.Mixin.create(this.PrototypeMixin),a.ClassMixin.ownerConstructor=a,a.PrototypeMixin.ownerConstructor=a,k.apply(a.PrototypeMixin,arguments),a.superclass=this,a.__super__=this.prototype,b=a.prototype=d(this.prototype),b.constructor=a,Ember.generateGuid(b,"ember"),g(b).proto=b,a.ClassMixin.apply(a),a},create:function(){var a=this;return arguments.length>0&&this._initMixins(arguments),new a},reopen:function(){return this.willReopen(),k.apply(this.PrototypeMixin,arguments),this},reopenClass:function(){return k.apply(this.ClassMixin,arguments),Ember.Mixin._apply(this,arguments,!1),this},detect:function(a){if("function"!=typeof a)return!1;while(a){if(a===this)return!0;a=a.superclass}return!1},detectInstance:function(a){return a instanceof this},metaForProperty:function(a){var b=g(this.proto(),!1).descs[a];return b._meta||{}},eachComputedProperty:function(a,b){var c=this.proto(),d=g(c).descs,e={},f;for(var h in d)f=d[h],f instanceof Ember.ComputedProperty&&a.call(b||this,h,f._meta||e)}});Ember.config.overrideClassMixin&&Ember.config.overrideClassMixin(o),n.ClassMixin=o,o.apply(n),Ember.CoreObject=n}(),function(){var a=Ember.get,b=Ember.set,c=Ember.guidFor,d=Ember.none;Ember.Set=Ember.CoreObject.extend(Ember.MutableEnumerable,Ember.Copyable,Ember.Freezable,{length:0,clear:function(){if(this.isFrozen)throw new Error(Ember.FROZEN_ERROR);var d=a(this,"length");if(d===0)return this;var e;this.enumerableContentWillChange(d,0),Ember.propertyWillChange(this,"firstObject"),Ember.propertyWillChange(this,"lastObject");for(var f=0;f<d;f++)e=c(this[f]),delete this[e],delete this[f];return b(this,"length",0),Ember.propertyDidChange(this,"firstObject"),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(d,0),this},isEqual:function(b){if(!Ember.Enumerable.detect(b))return!1;var c=a(this,"length");if(a(b,"length")!==c)return!1;while(--c>=0)if(!b.contains(this[c]))return!1;return!0},add:Ember.alias("addObject"),remove:Ember.alias("removeObject"),pop:function(){if(a(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);var b=this.length>0?this[this.length-1]:null;return this.remove(b),b},push:Ember.alias("addObject"),shift:Ember.alias("pop"),unshift:Ember.alias("push"),addEach:Ember.alias("addObjects"),removeEach:Ember.alias("removeObjects"),init:function(a){this._super(),a&&this.addObjects(a)},nextObject:function(a){return this[a]},firstObject:Ember.computed(function(){return this.length>0?this[0]:undefined}).property().cacheable(),lastObject:Ember.computed(function(){return this.length>0?this[this.length-1]:undefined}).property().cacheable(),addObject:function(e){if(a(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(d(e))return this;var f=c(e),g=this[f],h=a(this,"length"),i;return g>=0&&g<h&&this[g]===e?this:(i=[e],this.enumerableContentWillChange(null,i),Ember.propertyWillChange(this,"lastObject"),h=a(this,"length"),this[f]=h,this[h]=e,b(this,"length",h+1),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(null,i),this)},removeObject:function(e){if(a(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(d(e))return this;var f=c(e),g=this[f],h=a(this,"length"),i=g===0,j=g===h-1,k,l;return g>=0&&g<h&&this[g]===e&&(l=[e],this.enumerableContentWillChange(l,null),i&&Ember.propertyWillChange(this,"firstObject"),j&&Ember.propertyWillChange(this,"lastObject"),g<h-1&&(k=this[h-1],this[g]=k,this[c(k)]=g),delete this[f],delete this[h-1],b(this,"length",h-1),i&&Ember.propertyDidChange(this,"firstObject"),j&&Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(l,null)),this},contains:function(a){return this[c(a)]>=0},copy:function(){var d=this.constructor,e=new d,f=a(this,"length");b(e,"length",f);while(--f>=0)e[f]=this[f],e[c(this[f])]=f;return e},toString:function(){var a=this.length,b,c=[];for(b=0;b<a;b++)c[b]=this[b];return"Ember.Set<%@>".fmt(c.join(","))}})}(),function(){Ember.Object=Ember.CoreObject.extend(Ember.Observable)}(),function(){var a=Ember.ArrayPolyfills.indexOf;Ember.Namespace=Ember.Object.extend({isNamespace:!0,init:function(){Ember.Namespace.NAMESPACES.push(this),Ember.Namespace.PROCESSED=!1},toString:function(){return Ember.identifyNamespaces(),this[Ember.GUID_KEY+"_name"]},destroy:function(){var b=Ember.Namespace.NAMESPACES;window[this.toString()]=undefined,b.splice(a.call(b,this),1),this._super()}}),Ember.Namespace.NAMESPACES=[Ember],Ember.Namespace.PROCESSED=!1}(),function(){Ember.Application=Ember.Namespace.extend()}(),function(){var a=Ember.get,b=Ember.set;Ember.ArrayProxy=Ember.Object.extend(Ember.MutableArray,{content:null,arrangedContent:Ember.computed("content",function(){return a(this,"content")}).cacheable(),objectAtContent:function(b){return a(this,"arrangedContent").objectAt(b)},replaceContent:function(b,c,d){a(this,"arrangedContent").replace(b,c,d)},_contentWillChange:Ember.beforeObserver(function(){var b=a(this,"content");b&&b.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},"content"),contentArrayWillChange:Ember.K,contentArrayDidChange:Ember.K,_contentDidChange:Ember.observer(function(){var b=a(this,"content"),c=b?a(b,"length"):0;b&&b.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},"content"),_arrangedContentWillChange:Ember.beforeObserver(function(){var b=a(this,"arrangedContent"),c=b?a(b,"length"):0;this.arrangedContentArrayWillChange(this,0,c,undefined),b&&b.removeArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},"arrangedContent"),_arrangedContentDidChange:Ember.observer(function(){var b=a(this,"arrangedContent"),c=b?a(b,"length"):0;b&&b.addArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"}),this.arrangedContentArrayDidChange(this,0,undefined,c)},"arrangedContent"),objectAt:function(b){return a(this,"content")&&this.objectAtContent(b)},length:Ember.computed(function(){var b=a(this,"arrangedContent");return b?a(b,"length"):0}).property().cacheable(),replace:function(b,c,d){return a(this,"content")&&this.replaceContent(b,c,d),this},arrangedContentArrayWillChange:function(a,b,c,d){this.arrayContentWillChange(b,c,d)},arrangedContentArrayDidChange:function(a,b,c,d){this.arrayContentDidChange(b,c,d)},init:function(){this._super(),this._contentWillChange(),this._contentDidChange(),this._arrangedContentWillChange(),this._arrangedContentDidChange()}})}(),function(){function j(a,b){var c=b.slice(8);if(c in this)return;h(this,c)}function k(a,b){var c=b.slice(8);if(c in this)return;i(this,c)}var a=Ember.get,b=Ember.set,c=Ember.String.fmt,d=Ember.addBeforeObserver,e=Ember.addObserver,f=Ember.removeBeforeObserver,g=Ember.removeObserver,h=Ember.propertyWillChange,i=Ember.propertyDidChange;Ember.ObjectProxy=Ember.Object.extend({content:null,_contentDidChange:Ember.observer(function(){},"content"),willWatchProperty:function(a){var b="content."+a;d(this,b,null,j),e(this,b,null,k)},didUnwatchProperty:function(a){var b="content."+a;f(this,b,null,j),g(this,b,null,k)},unknownProperty:function(b){var c=a(this,"content");if(c)return a(c,b)},setUnknownProperty:function(c,d){var e=a(this,"content");return b(e,c,d)}})}(),function(){function g(a,b,d,e,f){var g=d._objects,h;g||(g=d._objects={});while(--f>=e){var i=a.objectAt(f);i&&(Ember.addBeforeObserver(i,b,d,"contentKeyWillChange"),Ember.addObserver(i,b,d,"contentKeyDidChange"),h=c(i),g[h]||(g[h]=[]),g[h].push(f))}}function h(a,b,d,e,f){var g=d._objects;g||(g=d._objects={});var h,i;while(--f>=e){var j=a.objectAt(f);j&&(Ember.removeBeforeObserver(j,b,d,"contentKeyWillChange"),Ember.removeObserver(j,b,d,"contentKeyDidChange"),i=c(j),h=g[i],h[h.indexOf(f)]=null)}}var a=Ember.set,b=Ember.get,c=Ember.guidFor,d=Ember.EnumerableUtils.forEach,e=Ember.Object.extend(Ember.Array,{init:function(a,b,c){this._super(),this._keyName=b,this._owner=c,this._content=a},objectAt:function(a){var c=this._content.objectAt(a);return c&&b(c,this._keyName)},length:Ember.computed(function(){var a=this._content;return a?b(a,"length"):0}).property().cacheable()}),f=/^.+:(before|change)$/;Ember.EachProxy=Ember.Object.extend({init:function(a){this._super(),this._content=a,a.addArrayObserver(this),d(Ember.watchedEvents(this),function(a){this.didAddListener(a)},this)},unknownProperty:function(a,b){var c;return c=new e(this._content,a,this),Ember.defineProperty(this,a,null,c),this.beginObservingContentKey(a),c},arrayWillChange:function(a,b,c,d){var e=this._keys,f,g,i;i=c>0?b+c:-1,Ember.beginPropertyChanges(this);for(f in e){if(!e.hasOwnProperty(f))continue;i>0&&h(a,f,this,b,i),Ember.propertyWillChange(this,f)}Ember.propertyWillChange(this._content,"@each"),Ember.endPropertyChanges(this)},arrayDidChange:function(a,b,c,d){var e=this._keys,f,h,i;i=d>0?b+d:-1,Ember.beginPropertyChanges(this);for(f in e){if(!e.hasOwnProperty(f))continue;i>0&&g(a,f,this,b,i),Ember.propertyDidChange(this,f)}Ember.propertyDidChange(this._content,"@each"),Ember.endPropertyChanges(this)},didAddListener:function(a){f.test(a)&&this.beginObservingContentKey(a.slice(0,-7))},didRemoveListener:function(a){f.test(a)&&this.stopObservingContentKey(a.slice(0,-7))},beginObservingContentKey:function(a){var c=this._keys;c||(c=this._keys={});if(!c[a]){c[a]=1;var d=this._content,e=b(d,"length");g(d,a,this,0,e)}else c[a]++},stopObservingContentKey:function(a){var c=this._keys;if(c&&c[a]>0&&--c[a]<=0){var d=this._content,e=b(d,"length");h(d,a,this,0,e)}},contentKeyWillChange:function(a,b){Ember.propertyWillChange(this,b)},contentKeyDidChange:function(a,b){Ember.propertyDidChange(this,b)}})}(),function(){var a=Ember.get,b=Ember.set,c=Ember.Mixin.create(Ember.MutableArray,Ember.Observable,Ember.Copyable,{get:function(a){return a==="length"?this.length:"number"==typeof a?this[a]:this._super(a)},objectAt:function(a){return this[a]},replace:function(b,c,d){if(this.isFrozen)throw Ember.FROZEN_ERROR;var e=
-d?a(d,"length"):0;this.arrayContentWillChange(b,c,e);if(!d||d.length===0)this.splice(b,c);else{var f=[b,c].concat(d);this.splice.apply(this,f)}return this.arrayContentDidChange(b,c,e),this},unknownProperty:function(a,b){var c;return b!==undefined&&c===undefined&&(c=this[a]=b),c},indexOf:function(a,b){var c,d=this.length;b===undefined?b=0:b=b<0?Math.ceil(b):Math.floor(b),b<0&&(b+=d);for(c=b;c<d;c++)if(this[c]===a)return c;return-1},lastIndexOf:function(a,b){var c,d=this.length;b===undefined?b=d-1:b=b<0?Math.ceil(b):Math.floor(b),b<0&&(b+=d);for(c=b;c>=0;c--)if(this[c]===a)return c;return-1},copy:function(){return this.slice()}}),d=["length"];Ember.EnumerableUtils.forEach(c.keys(),function(a){Array.prototype[a]&&d.push(a)}),d.length>0&&(c=c.without.apply(c,d)),Ember.NativeArray=c,Ember.A=function(a){return a===undefined&&(a=[]),Ember.NativeArray.apply(a)},Ember.NativeArray.activate=function(){c.apply(Array.prototype),Ember.A=function(a){return a||[]}},Ember.EXTEND_PROTOTYPES&&Ember.NativeArray.activate()}(),function(){var a=Ember.get,b=Ember.set;Ember._PromiseChain=Ember.Object.extend({promises:null,failureCallback:Ember.K,successCallback:Ember.K,abortCallback:Ember.K,promiseSuccessCallback:Ember.K,runNextPromise:function(){if(a(this,"isDestroyed"))return;var b=a(this,"promises").shiftObject();if(b){var c=a(b,"promise")||b,d=this,e=function(){d.promiseSuccessCallback.call(this,b,arguments),d.runNextPromise()},f=a(d,"failureCallback");c.then(e,f)}else this.successCallback()},start:function(){return this.runNextPromise(),this},abort:function(){this.abortCallback(),this.destroy()},init:function(){b(this,"promises",Ember.A(a(this,"promises"))),this._super()}})}(),function(){var a={},b={};Ember.onLoad=function(c,d){var e;a[c]=a[c]||Ember.A(),a[c].pushObject(d),(e=b[c])&&d(e)},Ember.runLoadHooks=function(c,d){var e;b[c]=d,(e=a[c])&&a[c].forEach(function(a){a(d)})}}(),function(){}(),function(){Ember.ControllerMixin=Ember.Mixin.create({target:null,store:null}),Ember.Controller=Ember.Object.extend(Ember.ControllerMixin)}(),function(){var a=Ember.get,b=Ember.set,c=Ember.EnumerableUtils.forEach;Ember.SortableMixin=Ember.Mixin.create(Ember.MutableEnumerable,{sortProperties:null,sortAscending:!0,addObject:function(b){var c=a(this,"content");c.pushObject(b)},removeObject:function(b){var c=a(this,"content");c.removeObject(b)},orderBy:function(b,d){var e=0,f=a(this,"sortProperties"),g=a(this,"sortAscending");return c(f,function(c){e===0&&(e=Ember.compare(a(b,c),a(d,c)),e!==0&&!g&&(e=-1*e))}),e},destroy:function(){var b=a(this,"content"),d=a(this,"sortProperties");return b&&d&&c(b,function(a){c(d,function(b){Ember.removeObserver(a,b,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},isSorted:Ember.computed("sortProperties",function(){return!!a(this,"sortProperties")}),arrangedContent:Ember.computed("content","sortProperties.@each",function(b,d){var e=a(this,"content"),f=a(this,"isSorted"),g=a(this,"sortProperties"),h=this;return e&&f?(e=e.slice(),e.sort(function(a,b){return h.orderBy(a,b)}),c(e,function(a){c(g,function(b){Ember.addObserver(a,b,this,"contentItemSortPropertyDidChange")},this)},this),Ember.A(e)):e}).cacheable(),_contentWillChange:Ember.beforeObserver(function(){var b=a(this,"content"),d=a(this,"sortProperties");b&&d&&c(b,function(a){c(d,function(b){Ember.removeObserver(a,b,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},"content"),sortAscendingWillChange:Ember.beforeObserver(function(){this._lastSortAscending=a(this,"sortAscending")},"sortAscending"),sortAscendingDidChange:Ember.observer(function(){if(a(this,"sortAscending")!==this._lastSortAscending){var b=a(this,"arrangedContent");b.reverseObjects()}},"sortAscending"),contentArrayWillChange:function(b,d,e,f){var g=a(this,"isSorted");if(g){var h=a(this,"arrangedContent"),i=b.slice(d,d+e),j=a(this,"sortProperties");c(i,function(a){h.removeObject(a),c(j,function(b){Ember.removeObserver(a,b,this,"contentItemSortPropertyDidChange")},this)})}return this._super(b,d,e,f)},contentArrayDidChange:function(b,d,e,f){var g=a(this,"isSorted"),h=a(this,"sortProperties");if(g){var i=b.slice(d,d+f),j=a(this,"arrangedContent");c(i,function(a){this.insertItemSorted(a),c(h,function(b){Ember.addObserver(a,b,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(b,d,e,f)},insertItemSorted:function(b){var c=a(this,"arrangedContent"),d=a(c,"length"),e=this._binarySearch(b,0,d);c.insertAt(e,b)},contentItemSortPropertyDidChange:function(b){var c=a(this,"arrangedContent"),d=c.indexOf(b);c.removeObject(b),this.insertItemSorted(b)},_binarySearch:function(b,c,d){var e,f,g,h;return c===d?c:(h=a(this,"arrangedContent"),e=c+Math.floor((d-c)/2),f=h.objectAt(e),g=this.orderBy(f,b),g<0?this._binarySearch(b,e+1,d):g>0?this._binarySearch(b,c,e):e)}})}(),function(){var a=Ember.get,b=Ember.set;Ember.ArrayController=Ember.ArrayProxy.extend(Ember.ControllerMixin,Ember.SortableMixin)}(),function(){Ember.ObjectController=Ember.ObjectProxy.extend(Ember.ControllerMixin)}(),function(){}(),function(){}(),function(){var a=Ember.get,b=Ember.set;Ember.Application=Ember.Namespace.extend({rootElement:"body",eventDispatcher:null,customEvents:null,init:function(){var c,d=a(this,"rootElement");this._super(),c=Ember.EventDispatcher.create({rootElement:d}),b(this,"eventDispatcher",c);if(Ember.$.isReady)Ember.run.once(this,this.didBecomeReady);else{var e=this;Ember.$(document).ready(function(){Ember.run.once(e,e.didBecomeReady)})}},initialize:function(c){var d=Ember.A(Ember.keys(this)),e=a(this.constructor,"injections"),f=this,g,h;!c&&Ember.Router.detect(f.Router)&&(c=f.Router.create(),this._createdRouter=c),c&&(b(this,"router",c),b(c,"namespace",this)),Ember.runLoadHooks("application",this),e.forEach(function(a){d.forEach(function(b){a[1](f,c,b)})}),c&&c instanceof Ember.Router&&this.startRouting(c)},didBecomeReady:function(){var b=a(this,"eventDispatcher"),c=a(this,"customEvents");b.setup(c),this.ready()},startRouting:function(b){var c=a(b,"location"),d=a(this,"rootElement"),e=a(b,"applicationController"),f=this.ApplicationView.create({controller:e});this._createdApplicationView=f,f.appendTo(d),b.route(c.getURL()),c.onUpdateURL(function(a){b.route(a)})},ready:Ember.K,willDestroy:function(){a(this,"eventDispatcher").destroy(),this._createdRouter&&this._createdRouter.destroy(),this._createdApplicationView&&this._createdApplicationView.destroy()},registerInjection:function(a){this.constructor.registerInjection(a)}}),Ember.Application.reopenClass({concatenatedProperties:["injections"],injections:Ember.A(),registerInjection:function(b){var c=a(this,"injections"),d=b.before,e=b.name,f=b.injection,g;d?(g=c.find(function(a){if(a[0]===d)return!0}),g=c.indexOf(g)):g=a(c,"length"),c.splice(g,0,[e,f])}}),Ember.Application.registerInjection({name:"controllers",injection:function(a,b,c){if(!/^[A-Z].*Controller$/.test(c))return;var d=c.charAt(0).toLowerCase()+c.substr(1),e=a[c].create();b.set(d,e),e.setProperties({target:b,controllers:b,namespace:a})}})}(),function(){var a=Ember.get,b=Ember.set;Ember.Location={create:function(a){var b=a&&a.implementation,c=this.implementations[b];return c.create.apply(c,arguments)},registerImplementation:function(a,b){this.implementations[a]=b},implementations:{}}}(),function(){var a=Ember.get,b=Ember.set;Ember.HashLocation=Ember.Object.extend({init:function(){b(this,"location",a(this,"location")||window.location)},getURL:function(){return a(this,"location").hash.substr(1)},setURL:function(c){a(this,"location").hash=c,b(this,"lastSetURL",c)},onUpdateURL:function(c){var d=this,e=Ember.guidFor(this);Ember.$(window).bind("hashchange.ember-location-"+e,function(){var e=location.hash.substr(1);if(a(d,"lastSetURL")===e)return;b(d,"lastSetURL",null),c(location.hash.substr(1))})},formatURL:function(a){return"#"+a},willDestroy:function(){var a=Ember.guidFor(this);Ember.$(window).unbind("hashchange.ember-location-"+a)}}),Ember.Location.registerImplementation("hash",Ember.HashLocation)}(),function(){var a=Ember.get,b=Ember.set;Ember.HistoryLocation=Ember.Object.extend({init:function(){b(this,"location",a(this,"location")||window.location),b(this,"_initialURL",a(this,"location").pathname)},rootURL:"/",_initialURL:null,getURL:function(){return a(this,"location").pathname},setURL:function(b){var c=window.history.state,d=a(this,"_initialURL");b=this.formatPath(b),(d!==b&&!c||c&&c.path!==b)&&window.history.pushState({path:b},null,b)},onUpdateURL:function(a){var b=Ember.guidFor(this);Ember.$(window).bind("popstate.ember-location-"+b,function(b){a(location.pathname)})},formatPath:function(b){var c=a(this,"rootURL");return b!==""&&(c=c.replace(/\/$/,"")),c+b},formatURL:function(a){return a},willDestroy:function(){var a=Ember.guidFor(this);Ember.$(window).unbind("popstate.ember-location-"+a)}}),Ember.Location.registerImplementation("history",Ember.HistoryLocation)}(),function(){var a=Ember.get,b=Ember.set;Ember.NoneLocation=Ember.Object.extend({path:"",getURL:function(){return a(this,"path")},setURL:function(a){b(this,"path",a)},onUpdateURL:function(a){},formatURL:function(a){return a}}),Ember.Location.registerImplementation("none",Ember.NoneLocation)}(),function(){}(),function(){}(),function(){Ember.$=window.jQuery}(),function(){var a=Ember.String.w("dragstart drag dragenter dragleave dragover drop dragend");Ember.EnumerableUtils.forEach(a,function(a){Ember.$.event.fixHooks[a]={props:["dataTransfer"]}})}(),function(){var a=Ember.get,b=Ember.set,c=Ember.ArrayPolyfills.indexOf,d=function(){this.seen={},this.list=[]};d.prototype={add:function(a){if(a in this.seen)return;this.seen[a]=!0,this.list.push(a)},toDOM:function(){return this.list.join(" ")}},Ember.RenderBuffer=function(a){return new Ember._RenderBuffer(a)},Ember._RenderBuffer=function(a){this.elementTag=a,this.childBuffers=[]},Ember._RenderBuffer.prototype={elementClasses:null,elementId:null,elementAttributes:null,elementTag:null,elementStyle:null,parentBuffer:null,push:function(a){return this.childBuffers.push(String(a)),this},addClass:function(a){var b=this.elementClasses=this.elementClasses||new d;return this.elementClasses.add(a),this},id:function(a){return this.elementId=a,this},attr:function(a,b){var c=this.elementAttributes=this.elementAttributes||{};return arguments.length===1?c[a]:(c[a]=b,this)},removeAttr:function(a){var b=this.elementAttributes;return b&&delete b[a],this},style:function(a,b){var c=this.elementStyle=this.elementStyle||{};return this.elementStyle[a]=b,this},newBuffer:function(a,b,c,d){var e=new Ember._RenderBuffer(a);return e.parentBuffer=b,d&&Ember.$.extend(e,d),c&&c.call(this,e),e},replaceWithBuffer:function(a){var b=this.parentBuffer;if(!b)return;var d=b.childBuffers,e=c.call(d,this);a?d.splice(e,1,a):d.splice(e,1)},begin:function(a){return this.newBuffer(a,this,function(a){this.childBuffers.push(a)})},prepend:function(a){return this.newBuffer(a,this,function(a){this.childBuffers.splice(0,0,a)})},replaceWith:function(a){var b=this.parentBuffer;return this.newBuffer(a,b,function(a){this.replaceWithBuffer(a)})},insertAfter:function(b){var d=a(this,"parentBuffer");return this.newBuffer(b,d,function(a){var b=d.childBuffers,e=c.call(b,this);b.splice(e+1,0,a)})},end:function(){var a=this.parentBuffer;return a||this},remove:function(){this.replaceWithBuffer(null)},element:function(){return Ember.$(this.string())[0]},string:function(){var a="",b=this.elementTag,c;if(b){var d=this.elementId,e=this.elementClasses,f=this.elementAttributes,g=this.elementStyle,h="",i;c=["<"+b],d&&c.push('id="'+this._escapeAttribute(d)+'"'),e&&c.push('class="'+this._escapeAttribute(e.toDOM())+'"');if(g){for(i in g)g.hasOwnProperty(i)&&(h+=i+":"+this._escapeAttribute(g[i])+";");c.push('style="'+h+'"')}if(f)for(i in f)f.hasOwnProperty(i)&&c.push(i+'="'+this._escapeAttribute(f[i])+'"');c=c.join(" ")+">"}var j=this.childBuffers;return Ember.ArrayPolyfills.forEach.call(j,function(b){var c=typeof b=="string";a+=c?b:b.string()}),b?c+a+"</"+b+">":a},_escapeAttribute:function(a){var b={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},c=/&(?!\w+;)|[<>"'`]/g,d=/[&<>"'`]/,e=function(a){return b[a]||"&amp;"},f=a.toString();return d.test(f)?f.replace(c,e):f}}}(),function(){var a=Ember.get,b=Ember.set,c=Ember.String.fmt;Ember.EventDispatcher=Ember.Object.extend({rootElement:"body",setup:function(b){var c,d={touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchcancel:"touchCancel",keydown:"keyDown",keyup:"keyUp",keypress:"keyPress",mousedown:"mouseDown",mouseup:"mouseUp",contextmenu:"contextMenu",click:"click",dblclick:"doubleClick",mousemove:"mouseMove",focusin:"focusIn",focusout:"focusOut",mouseenter:"mouseEnter",mouseleave:"mouseLeave",submit:"submit",input:"input",change:"change",dragstart:"dragStart",drag:"drag",dragenter:"dragEnter",dragleave:"dragLeave",dragover:"dragOver",drop:"drop",dragend:"dragEnd"};Ember.$.extend(d,b||{});var e=Ember.$(a(this,"rootElement"));e.addClass("ember-application");for(c in d)d.hasOwnProperty(c)&&this.setupHandler(e,c,d[c])},setupHandler:function(a,b,c){var d=this;a.delegate(".ember-view",b+".ember",function(a,b){var e=Ember.View.views[this.id],f=!0,g=null;return g=d._findNearestEventManager(e,c),g&&g!==b?f=d._dispatchEvent(g,a,c,e):e?f=d._bubbleEvent(e,a,c):a.stopPropagation(),f}),a.delegate("[data-ember-action]",b+".ember",function(a){var b=Ember.$(a.currentTarget).attr("data-ember-action"),d=Ember.Handlebars.ActionHelper.registeredActions[b],e=d.handler;if(d.eventName===c)return e(a)})},_findNearestEventManager:function(b,c){var d=null;while(b){d=a(b,"eventManager");if(d&&d[c])break;b=a(b,"parentView")}return d},_dispatchEvent:function(a,b,c,d){var e=!0,f=a[c];return Ember.typeOf(f)==="function"?(e=f.call(a,b,d),b.stopPropagation()):e=this._bubbleEvent(d,b,c),e},_bubbleEvent:function(a,b,c){return Ember.run(function(){return a.handleEvent(c,b)})},destroy:function(){var b=a(this,"rootElement");return Ember.$(b).undelegate(".ember").removeClass("ember-application"),this._super()}})}(),function(){var a=Ember.run.queues;a.splice(Ember.$.inArray("actions",a)+1,0,"render")}(),function(){var a=Ember.get,b=Ember.set;Ember.ControllerMixin.reopen({target:null,controllers:null,namespace:null,view:null,connectOutlet:function(c,d){var e,f,g,h,i;Ember.typeOf(d)==="string"&&(e=c,c=d,d=arguments[2]),arguments.length===1?Ember.typeOf(c)==="object"&&(i=c,e=i.outletName,c=i.name,f=i.viewClass,h=i.controller,d=i.context):i={},e=e||"view";if(c){var j=a(this,"namespace"),k=a(this,"controllers"),l=c.charAt(0).toUpperCase()+c.substr(1)+"View";f=a(j,l),h=a(k,c+"Controller")}return h&&d&&h.set("content",d),g=f.create(),h&&b(g,"controller",h),b(this,e,g),g},connectControllers:function(){var c=a(this,"controllers"),d=Array.prototype.slice.apply(arguments),e;for(var f=0,g=d.length;f<g;f++)e=d[f]+"Controller",b(this,e,a(c,e))}})}(),function(){}(),function(){var a=Ember.get,b=Ember.set,c=Ember.addObserver,d=Ember.meta,e=Ember.String.fmt,f=[].slice,g=Ember.EnumerableUtils.forEach,h=Ember.computed(function(){var b=this._childViews,c=Ember.A();return g(b,function(b){b.isVirtual?c.pushObjects(a(b,"childViews")):c.push(b)}),c}).property().cacheable(),i=Ember.VIEW_PRESERVES_CONTEXT;Ember.TEMPLATES={};var j={preRender:{},inBuffer:{},hasElement:{},inDOM:{},destroyed:{}};Ember.View=Ember.Object.extend(Ember.Evented,{concatenatedProperties:["classNames","classNameBindings","attributeBindings"],isView:!0,templateName:null,layoutName:null,templates:Ember.TEMPLATES,template:Ember.computed(function(b,c){if(c!==undefined)return c;var d=a(this,"templateName"),e=this.templateForName(d,"template");return e||a(this,"defaultTemplate")}).property("templateName").cacheable(),controller:Ember.computed(function(b,c){var d;return arguments.length===2?c:(d=a(this,"parentView"),d?a(d,"controller"):null)}).property().cacheable(),layout:Ember.computed(function(b,c){if(arguments.length===2)return c;var d=a(this,"layoutName"),e=this.templateForName(d,"layout");return e||a(this,"defaultLayout")}).property("layoutName").cacheable(),templateForName:function(b,c){if(!b)return;var d=a(this,"templates"),f=a(d,b);if(!f)throw new Ember.Error(e('%@ - Unable to find %@ "%@".',[this,c,b]));return f},context:Ember.computed(function(c,d){return arguments.length===2?(b(this,"_context",d),d):a(this,"_context")}).cacheable(),_context:Ember.computed(function(b,c){var d,e,f;if(arguments.length===2)return c;if(i){if(e=a(this,"controller"))return e;d=a(this,"_parentView");if(d)return a(d,"_context")}return this}).cacheable(),_displayPropertyDidChange:Ember.observer(function(){this.rerender()},"context","controller"),parentView:Ember.computed(function(){var b=a(this,"_parentView");return b&&b.isVirtual?a(b,"parentView"):b}).property("_parentView").volatile(),_parentView:null,concreteView:Ember.computed(function(){return this.isVirtual?a(this,"parentView"):this}).property("_parentView").volatile(),isVisible:!0,childViews:h,_childViews:[],_childViewsWillChange:Ember.beforeObserver(function(){if(this.isVirtual){var b=a(this,"parentView");b&&Ember.propertyWillChange(b,"childViews")}},"childViews"),_childViewsDidChange:Ember.observer(function(){if(this.isVirtual){var b=a(this,"parentView");b&&Ember.propertyDidChange(b,"childViews")}},"childViews"),nearestInstanceOf:function(b){var c=a(this,"parentView");while(c){if(c instanceof b)return c;c=a(c,"parentView")}},nearestWithProperty:function(b){var c=a(this,"parentView");while(c){if(b in c)return c;c=a(c,"parentView")}},nearestChildOf:function(b){var c=a(this,"parentView");while(c){if(a(c,"parentView")instanceof b)return c;c=a(c,"parentView")}},collectionView:Ember.computed(function(){return this.nearestInstanceOf(Ember.CollectionView)}).cacheable(),itemView:Ember.computed(function(){return this.nearestChildOf(Ember.CollectionView)}).cacheable(),contentView:Ember.computed(function(){return this.nearestWithProperty("content")}).cacheable(),_parentViewDidChange:Ember.observer(function(){if(this.isDestroying)return;this.invokeRecursively(function(a){a.propertyDidChange("collectionView"),a.propertyDidChange("itemView"),a.propertyDidChange("contentView")}),a(this,"parentView.controller")&&!a(this,"controller")&&this.notifyPropertyChange("controller")},"_parentView"),_controllerDidChange:Ember.observer(function(){if(this.isDestroying)return;this.forEachChildView(function(a){a.propertyDidChange("controller")})},"controller"),cloneKeywords:function(){var c=a(this,"templateData"),d=c?Ember.copy(c.keywords):{};return b(d,"view",a(this,"concreteView")),b(d,"controller",a(this,"controller")),d},render:function(b){var c=a(this,"layout")||a(this,"template");if(c){var d=a(this,"_context"),e=this.cloneKeywords(),f={view:this,buffer:b,isRenderData:!0,keywords:e},g=c(d,{data:f});g!==undefined&&b.push(g)}},invokeForState:function(a){var b=this.state,c,d;if(d=j[b][a])return c=f.call(arguments),c[0]=this,d.apply(this,c);var e=this,g=e.states,h;while(g){h=g[b];while(h){d=h[a];if(d)return j[b][a]=d,c=f.call(arguments,1),c.unshift(this),d.apply(this,c);h=h.parentState}g=g.parent}},rerender:function(){return this.invokeForState("rerender")},clearRenderedChildren:function(){var a=this.lengthBeforeRender,b=this.lengthAfterRender,c=this._childViews;for(var d=b-1;d>=a;d--)c[d]&&c[d].destroy()},_applyClassNameBindings:function(){var b=a(this,"classNameBindings"),d=a(this,"classNames"),e,f,h;if(!b)return;g(b,function(a){var b,g=function(){f=this._classStringForProperty(a),e=this.$(),b&&(e.removeClass(b),d.removeObject(b)),f?(e.addClass(f),b=f):b=null};h=this._classStringForProperty(a),h&&(d.push(h),b=h);var i=Ember.View._parsePropertyPath(a);c(this,i.path,g)},this)},_applyAttributeBindings:function(b){var d=a(this,"attributeBindings"),e,f,h;if(!d)return;g(d,function(d){var g=d.split(":"),h=g[0],i=g[1]||h,j=function(){f=this.$();if(!f)return;e=a(this,h),Ember.View.applyAttributeBindings(f,i,e)};c(this,h,j),e=a(this,h),Ember.View.applyAttributeBindings(b,i,e)},this)},_classStringForProperty:function(b){var c=Ember.View._parsePropertyPath(b),d=c.path,e=a(this,d);return e===undefined&&Ember.isGlobalPath(d)&&(e=a(window,d)),Ember.View._classStringForValue(d,e,c.className,c.falsyClassName)},element:Ember.computed(function(a,b){return b!==undefined?this.invokeForState("setElement",b):this.invokeForState("getElement")}).property("_parentView").cacheable(),$:function(a){return this.invokeForState("$",a)},mutateChildViews:function(a){var b=this._childViews,c=b.length,d;while(--c>=0)d=b[c],a.call(this,d,c);return this},forEachChildView:function(a){var b=this._childViews;if(!b)return this;var c=b.length,d,e;for(e=0;e<c;e++)d=b[e],a.call(this,d);return this},appendTo:function(a){return this._insertElementLater(function(){this.$().appendTo(a)}),this},replaceIn:function(a){return this._insertElementLater(function(){Ember.$(a).empty(),this.$().appendTo(a)}),this},_insertElementLater:function(a){this._lastInsert=Ember.guidFor(a),Ember.run.schedule("render",this,this.invokeForState,"insertElement",a)},append:function(){return this.appendTo(document.body)},remove:function(){this.destroyElement(),this.invokeRecursively(function(a){a.clearRenderedChildren()})},elementId:Ember.computed(function(a,b){return b!==undefined?b:Ember.guidFor(this)}).cacheable(),_elementIdDidChange:Ember.beforeObserver(function(){throw"Changing a view's elementId after creation is not allowed."},"elementId"),findElementInParentElement:function(b){var c="#"+a(this,"elementId");return Ember.$(c)[0]||Ember.$(c,b)[0]},renderBuffer:function(b){b=b||a(this,"tagName");if(b===null||b===undefined)b="div";return Ember.RenderBuffer(b)},createElement:function(){if(a(this,"element"))return this;var c=this.renderToBuffer();return b(this,"element",c.element()),this},willInsertElement:Ember.K,didInsertElement:Ember.K,willRerender:Ember.K,invokeRecursively:function(a){a.call(this,this),this.forEachChildView(function(b){b.invokeRecursively(a)})},invalidateRecursively:function(a){this.forEachChildView(function(b){b.propertyDidChange(a)})},_notifyWillInsertElement:function(){this.invokeRecursively(function(a){a.trigger("willInsertElement")})},_notifyDidInsertElement:function(){this.invokeRecursively(function(a){a.trigger("didInsertElement")})},_notifyWillRerender:function(){this.invokeRecursively(function(a){a.trigger("willRerender")})},destroyElement:function(){return this.invokeForState("destroyElement")},willDestroyElement:function(){},_notifyWillDestroyElement:function(){this.invokeRecursively(function(a){a.trigger("willDestroyElement")})},_elementWillChange:Ember.beforeObserver(function(){this.forEachChildView(function(a){Ember.propertyWillChange(a,"element")})},"element"),_elementDidChange:Ember.observer(function(){this.forEachChildView(function(a){Ember.propertyDidChange(a,"element")})},"element"),parentViewDidChange:Ember.K,renderToBuffer:function(b,c){var d;Ember.run.sync(),c=c||"begin";if(b){var e=a(this,"tagName");if(e===null||e===undefined)e="div";d=b[c](e)}else d=this.renderBuffer();return this.buffer=d,this.transitionTo("inBuffer",!1),this.lengthBeforeRender=this._childViews.length,this.beforeRender(d),this.render(d),this.afterRender(d),this.lengthAfterRender=this._childViews.length,d},beforeRender:function(a){this.applyAttributesToBuffer(a)},afterRender:Ember.K,applyAttributesToBuffer:function(b){this._applyClassNameBindings(),this._applyAttributeBindings(b),g(a(this,"classNames"),function(a){b.addClass(a)}),b.id(a(this,"elementId"));var c=a(this,"ariaRole");c&&b.attr("role",c),a(this,"isVisible")===!1&&b.style("display","none")},tagName:null,ariaRole:null,classNames:["ember-view"],classNameBindings:[],attributeBindings:[],state:"preRender",init:function(){this._super(),this.isVirtual||(Ember.View.views[a(this,"elementId")]=this),this._childViews=this._childViews.slice(),this.classNameBindings=Ember.A(this.classNameBindings.slice()),this.classNames=Ember.A(this.classNames.slice());var c=a(this,"viewController");c&&(c=a(c),c&&b(c,"view",this))},appendChild:function(a,b){return this.invokeForState("appendChild",a,b)},removeChild:function(a){if(this.isDestroying)return;b(a,"_parentView",null);var c=this._childViews;return Ember.EnumerableUtils.removeObject(c,a),this.propertyDidChange("childViews"),this},removeAllChildren:function(){return this.mutateChildViews(function(a){this.removeChild(a)})},destroyAllChildren:function(){return this.mutateChildViews(function(a){a.destroy()})},removeFromParent:function(){var b=a(this,"_parentView");return this.remove(),b&&b.removeChild(this),this},willDestroy:function(){var c=this._childViews,d=a(this,"_parentView"),e;this.removedFromDOM||this.destroyElement();if(this.viewName){var f=a(this,"parentView");f&&b(f,this.viewName,null)}d&&d.removeChild(this),this.state="destroyed",e=c.length;for(var g=e-1;g>=0;g--)c[g].removedFromDOM=!0,c[g].destroy();this.isVirtual||delete Ember.View.views[a(this,"elementId")]},createChildView:function(c,d){return Ember.View.detect(c)?(d=d||{},d._parentView=this,d.templateData=d.templateData||a(this,"templateData"),c=c.create(d),c.viewName&&b(a(this,"concreteView"),c.viewName,c)):(a(c,"templateData")||b(c,"templateData",a(this,"templateData")),b(c,"_parentView",this)),c},becameVisible:Ember.K,becameHidden:Ember.K,_isVisibleDidChange:Ember.observer(function(){var b=this.$();if(!b)return;var c=a(this,"isVisible");b.toggle(c);if(this._isAncestorHidden())return;c?this._notifyBecameVisible():this._notifyBecameHidden()},"isVisible"),_notifyBecameVisible:function(){this.trigger("becameVisible"),this.forEachChildView(function(b){var c=a(b,"isVisible");(c||c===null)&&b._notifyBecameVisible()})},_notifyBecameHidden:function(){this.trigger("becameHidden"),this.forEachChildView(function(b){var c=a(b,"isVisible");(c||c===null)&&b._notifyBecameHidden()})},_isAncestorHidden:function(){var b=a(this,"parentView");while(b){if(a(b,"isVisible")===!1)return!0;b=a(b,"parentView")}return!1},clearBuffer:function(){this.invokeRecursively(function(a){this.buffer=null})},transitionTo:function(a,b){this.state=a,b!==!1&&this.forEachChildView(function(b){b.transitionTo(a)})},trigger:function(a){this._super.apply(this,arguments);var b=this[a];if(b){var c=[],d,e;for(d=1,e=arguments.length;d<e;d++)c.push(arguments[d]);return b.apply(this,c)}},has:function(a){return Ember.typeOf(this[a])==="function"||this._super(a)},handleEvent:function(a,b){return this.invokeForState("handleEvent",a,b)}});var k={prepend:function(a,b){b._insertElementLater(function(){var c=a.$();c.prepend(b.$())})},after:function(a,b){b._insertElementLater(function(){var c=a.$();c.after(b.$())})},replace:function(c){var d=a(c,"element");b(c,"element",null),c._insertElementLater(function(){Ember.$(d).replaceWith(a(c,"element"))})},remove:function(c){var d=a(c,"element");b(c,"element",null),c._lastInsert=null,Ember.$(d).remove()},empty:function(a){a.$().empty()}};Ember.View.reopen({states:Ember.View.states,domManager:k}),Ember.View.reopenClass({_parsePropertyPath:function(a){var b=a.split(/:/),c=b[0],d="",e,f;return b.length>1&&(e=b[1],b.length===3&&(f=b[2]),d=":"+e,f&&(d+=":"+f)),{path:c,classNames:d,className:e===""?undefined:e,falsyClassName:f}},_classStringForValue:function(a,b,c,d){if(!!b&&c)return c;if(b===!0){if(b===!0&&!c&&d)return null;var e=a.split(".");return Ember.String.dasherize(e[e.length-1])}return b===!1&&d?d:b!==!1&&b!==undefined&&b!==null?b:null}}),Ember.View.views={},Ember.View.childViewsProperty=h,Ember.View.applyAttributeBindings=function(a,b,c){var d=Ember.typeOf(c),e=a.attr(b);(d==="string"||d==="number"&&!isNaN(c))&&c!==e?a.attr(b,c):c&&d==="boolean"?a.attr(b,b):c||a.removeAttr(b)}}(),function(){var a=Ember.get,b=Ember.set;Ember.View.states={_default:{appendChild:function(){throw"You can't use appendChild outside of the rendering process"},$:function(){return undefined},getElement:function(){return null},handleEvent:function(){return!0},destroyElement:function(a){return b(a,"element",null),a._lastInsert=null,a}}},Ember.View.reopen({states:Ember.View.states})}(),function(){Ember.View.states.preRender={parentState:Ember.View.states._default,insertElement:function(a,b){if(a._lastInsert!==Ember.guidFor(b))return;a.createElement(),a._notifyWillInsertElement(),b.call(a),a.transitionTo("inDOM"),a._notifyDidInsertElement()},empty:Ember.K,setElement:function(a,b){return b!==null&&a.transitionTo("hasElement"),b}}}(),function(){var a=Ember.get,b=Ember.set,c=Ember.meta;Ember.View.states.inBuffer={parentState:Ember.View.states._default,$:function(a,b){return a.rerender(),Ember.$()},rerender:function(a){a._notifyWillRerender(),a.clearRenderedChildren(),a.renderToBuffer(a.buffer,"replaceWith")},appendChild:function(a,b,c){var d=a.buffer;return b=this.createChildView(b,c),a._childViews.push(b),b.renderToBuffer(d),a.propertyDidChange("childViews"),b},destroyElement:function(a){return a.clearBuffer(),a._notifyWillDestroyElement(),a.transitionTo("preRender"),a},empty:function(){},insertElement:function(){throw"You can't insert an element that has already been rendered"},setElement:function(a,b){return b===null?a.transitionTo("preRender"):(a.clearBuffer(),a.transitionTo("hasElement")),b}}}(),function(){var a=Ember.get,b=Ember.set,c=Ember.meta;Ember.View.states.hasElement={parentState:Ember.View.states._default,$:function(b,c){var d=a(b,"element");return c?Ember.$(c,d):Ember.$(d)},getElement:function(b){var c=a(b,"parentView");return c&&(c=a(c,"element")),c?b.findElementInParentElement(c):Ember.$("#"+a(b,"elementId"))[0]},setElement:function(a,b){if(b!==null)throw"You cannot set an element to a non-null value when the element is already in the DOM.";return a.transitionTo("preRender"),b},rerender:function(a){return a._notifyWillRerender(),a.clearRenderedChildren(),a.domManager.replace(a),a},destroyElement:function(a){return a._notifyWillDestroyElement(),a.domManager.remove(a),a},empty:function(a){var b=a._childViews,c,d;if(b){c=b.length;for(d=0;d<c;d++)b[d]._notifyWillDestroyElement()}a.domManager.empty(a)},handleEvent:function(a,b,c){return a.has(b)?a.trigger(b,c):!0}},Ember.View.states.inDOM={parentState:Ember.View.states.hasElement,insertElement:function(a,b){if(a._lastInsert!==Ember.guidFor(b))return;throw"You can't insert an element into the DOM that has already been inserted"}}}(),function(){var a="You can't call %@ on a destroyed view",b=Ember.String.fmt;Ember.View.states.destroyed={parentState:Ember.View.states._default,appendChild:function(){throw b(a,["appendChild"])},rerender:function(){throw b(a,["rerender"])},destroyElement:function(){throw b(a,["destroyElement"])},empty:function(){throw b(a,["empty"])},setElement:function(){throw b(a,["set('element', ...)"])},insertElement:Ember.K}}(),function(){}(),function(){var a=Ember.get,b=Ember.set,c=Ember.meta,d=Ember.EnumerableUtils.forEach,e=Ember.computed(function(){return a(this,"_childViews")}).property("_childViews").cacheable();Ember.ContainerView=Ember.View.extend({init:function(){this._super();var c=a(this,"childViews");Ember.defineProperty(this,"childViews",e);var f=this._childViews;d(c,function(c,d){var e;"string"==typeof c?(e=a(this,c),e=this.createChildView(e),b(this,c,e)):e=this.createChildView(c),f[d]=e},this);var g=a(this,"currentView");g&&f.push(this.createChildView(g)),Ember.A(f),a(this,"childViews").addArrayObserver(this,{willChange:"childViewsWillChange",didChange:"childViewsDidChange"})},render:function(a){this.forEachChildView(function(b){b.renderToBuffer(a)})},willDestroy:function(){a(this,"childViews").removeArrayObserver(this,{willChange:"childViewsWillChange",didChange:"childViewsDidChange"}),this._super()},childViewsWillChange:function(a,b,c){if(c===0)return;var d=a.slice(b,b+c);this.initializeViews(d,null,null),this.invokeForState("childViewsWillChange",a,b,c)},childViewsDidChange:function(b,c,d,e){var f=a(b,"length");if(e===0)return;var g=b.slice(c,c+e);this.initializeViews(g,this,a(this,"templateData")),this.invokeForState("childViewsDidChange",b,c,e)},initializeViews:function(c,e,f){d(c,function(c){b(c,"_parentView",e),a(c,"templateData")||b(c,"templateData",f)})},_scheduleInsertion:function(a,b){b?b.domManager.after(b,a):this.domManager.prepend(this,a)},currentView:null,_currentViewWillChange:Ember.beforeObserver(function(){var b=a(this,"childViews"),c=a(this,"currentView");c&&(b.removeObject(c),c.destroy())},"currentView"),_currentViewDidChange:Ember.observer(function(){var b=a(this,"childViews"),c=a(this,"currentView");c&&b.pushObject(c)},"currentView")}),Ember.ContainerView.states={parent:Ember.View.states,inBuffer:{childViewsDidChange:function(a,b,c,d){var e=a.buffer,f,g,h,i;c===0?(i=b[c],f=c+1,i.renderToBuffer(e,"prepend")):(i=b[c-1],f=c);for(var j=f;j<c+d;j++)g=i,i=b[j],h=g.buffer,i.renderToBuffer(h,"insertAfter")}},hasElement:{childViewsWillChange:function(a,b,c,d){for(var e=c;e<c+d;e++)b[e].remove()},childViewsDidChange
-:function(a,b,c,d){var e=c===0?null:b[c-1];for(var f=c;f<c+d;f++)a=b[f],this._scheduleInsertion(a,e),e=a}}},Ember.ContainerView.states.inDOM={parentState:Ember.ContainerView.states.hasElement},Ember.ContainerView.reopen({states:Ember.ContainerView.states})}(),function(){var a=Ember.get,b=Ember.set,c=Ember.String.fmt;Ember.CollectionView=Ember.ContainerView.extend({content:null,emptyViewClass:Ember.View,emptyView:null,itemViewClass:Ember.View,init:function(){var a=this._super();return this._contentDidChange(),a},_contentWillChange:Ember.beforeObserver(function(){var b=this.get("content");b&&b.removeArrayObserver(this);var c=b?a(b,"length"):0;this.arrayWillChange(b,0,c)},"content"),_contentDidChange:Ember.observer(function(){var b=a(this,"content");b&&b.addArrayObserver(this);var c=b?a(b,"length"):0;this.arrayDidChange(b,0,null,c)},"content"),willDestroy:function(){var b=a(this,"content");b&&b.removeArrayObserver(this),this._super()},arrayWillChange:function(b,c,d){var e=a(this,"emptyView");e&&e instanceof Ember.View&&e.removeFromParent();var f=a(this,"childViews"),g,h,i;i=a(f,"length");var j=d===i;j&&this.invokeForState("empty");for(h=c+d-1;h>=c;h--)g=f[h],j&&(g.removedFromDOM=!0),g.destroy()},arrayDidChange:function(c,d,e,f){var g=a(this,"itemViewClass"),h=a(this,"childViews"),i=[],j,k,l,m,n;"string"==typeof g&&(g=a(g)),m=c?a(c,"length"):0;if(m)for(l=d;l<d+f;l++)k=c.objectAt(l),j=this.createChildView(g,{content:k,contentIndex:l}),i.push(j);else{var o=a(this,"emptyView");if(!o)return;o=this.createChildView(o),i.push(o),b(this,"emptyView",o)}h.replace(d,0,i)},createChildView:function(c,d){c=this._super(c,d);var e=a(c,"tagName"),f=e===null||e===undefined?Ember.CollectionView.CONTAINER_MAP[a(this,"tagName")]:e;return b(c,"tagName",f),c}}),Ember.CollectionView.CONTAINER_MAP={ul:"li",ol:"li",table:"tr",thead:"tr",tbody:"tr",tfoot:"tr",tr:"td",select:"option"}}(),function(){}(),function(){}(),function(){var a=Ember.get,b=Ember.set;Ember.State=Ember.Object.extend(Ember.Evented,{isState:!0,parentState:null,start:null,name:null,path:Ember.computed(function(){var b=a(this,"parentState.path"),c=a(this,"name");return b&&(c=b+"."+c),c}).property().cacheable(),trigger:function(a){this[a]&&this[a].apply(this,[].slice.call(arguments,1)),this._super.apply(this,arguments)},init:function(){var c=a(this,"states"),d;b(this,"childStates",Ember.A()),b(this,"eventTransitions",a(this,"eventTransitions")||{});var e,f,g;if(!c){c={};for(e in this){if(e==="constructor")continue;if(f=this[e]){if(g=f.transitionTarget)this.eventTransitions[e]=g;this.setupChild(c,e,f)}}b(this,"states",c)}else for(e in c)this.setupChild(c,e,c[e]);b(this,"pathsCache",{}),b(this,"pathsCacheNoContext",{})},setupChild:function(c,d,e){if(!e)return!1;e.isState?b(e,"name",d):Ember.State.detect(e)&&(e=e.create({name:d})),e.isState&&(b(e,"parentState",this),a(this,"childStates").pushObject(e),c[d]=e)},lookupEventTransition:function(a){var b,c=this;while(c&&!b)b=c.eventTransitions[a],c=c.get("parentState");return b},isLeaf:Ember.computed(function(){return!a(this,"childStates").length}).cacheable(),hasContext:!0,setup:Ember.K,enter:Ember.K,exit:Ember.K});var c=Ember.$&&Ember.$.Event;Ember.State.reopenClass({transitionTo:function(a){var b=function(b,d){if(c&&d instanceof c){if(!d.hasOwnProperty("context"))return b.transitionTo(a);d=d.context}b.transitionTo(a,d)};return b.transitionTarget=a,b}})}(),function(){var a=Ember.get,b=Ember.set,c=Ember.String.fmt,d=Ember.ArrayPolyfills.forEach,e=function(a){this.enterStates=a.enterStates.slice(),this.exitStates=a.exitStates.slice(),this.resolveState=a.resolveState,this.finalState=a.enterStates[a.enterStates.length-1]||a.resolveState};e.prototype={normalize:function(a,b){return this.matchContextsToStates(b),this.addInitialStates(),this.removeUnchangedContexts(a),this},matchContextsToStates:function(b){var c=this.enterStates.length-1,d=[],e,f;while(b.length>0){if(c>=0)e=this.enterStates[c--];else{if(this.enterStates.length){e=a(this.enterStates[0],"parentState");if(!e)throw"Cannot match all contexts to states"}else e=this.resolveState;this.enterStates.unshift(e),this.exitStates.unshift(e)}a(e,"hasContext")?f=b.pop():f=null,d.unshift(f)}this.contexts=d},addInitialStates:function(){var b=this.finalState,c;for(;;){c=a(b,"initialState")||"start",b=a(b,"states."+c);if(!b)break;this.finalState=b,this.enterStates.push(b),this.contexts.push(undefined)}},removeUnchangedContexts:function(a){while(this.enterStates.length>0){if(this.enterStates[0]!==this.exitStates[0])break;if(this.enterStates.length===this.contexts.length){if(a.getStateMeta(this.enterStates[0],"context")!==this.contexts[0])break;this.contexts.shift()}this.resolveState=this.enterStates.shift(),this.exitStates.shift()}}},Ember.StateManager=Ember.State.extend({init:function(){this._super(),b(this,"stateMeta",Ember.Map.create());var c=a(this,"initialState");!c&&a(this,"states.start")&&(c="start"),c&&this.transitionTo(c)},stateMetaFor:function(b){var c=a(this,"stateMeta"),d=c.get(b);return d||(d={},c.set(b,d)),d},setStateMeta:function(a,c,d){return b(this.stateMetaFor(a),c,d)},getStateMeta:function(b,c){return a(this.stateMetaFor(b),c)},currentState:null,transitionEvent:"setup",errorOnUnhandledEvent:!0,send:function(b,c){return this.sendRecursively(b,a(this,"currentState"),c)},sendRecursively:function(b,d,e){var f=this.enableLogging,g=d[b];if(typeof g=="function")return f&&Ember.Logger.log(c("STATEMANAGER: Sending event '%@' to state %@.",[b,a(d,"path")])),g.call(d,this,e);var h=a(d,"parentState");if(h)return this.sendRecursively(b,h,e);if(a(this,"errorOnUnhandledEvent"))throw new Ember.Error(this.toString()+" could not respond to event "+b+" in state "+a(this,"currentState.path")+".")},getStateByPath:function(b,c){var d=c.split("."),e=b;for(var f=0,g=d.length;f<g;f++){e=a(a(e,"states"),d[f]);if(!e)break}return e},findStateByPath:function(b,c){var d;while(!d&&b)d=this.getStateByPath(b,c),b=a(b,"parentState");return d},findStatesByPath:function(b,c){if(!c||c==="")return undefined;var d=c.split("."),e=[];for(var f=0,g=d.length;f<g;f++){var h=a(b,"states");if(!h)return undefined;var i=a(h,d[f]);if(!i)return undefined;b=i,e.push(i)}return e},goToState:function(){return this.transitionTo.apply(this,arguments)},transitionTo:function(b,c){if(Ember.empty(b))return;var d=c?Array.prototype.slice.call(arguments,1):[],f=a(this,"currentState")||this,g=this.contextFreeTransition(f,b),h=(new e(g)).normalize(this,d);this.enterState(h),this.triggerSetupContext(h)},contextFreeTransition:function(b,c){var d=b.pathsCache[c];if(d)return d;var e=this.findStatesByPath(b,c),f=[],g=b;while(g&&!e){f.unshift(g),g=a(g,"parentState");if(!g){e=this.findStatesByPath(this,c);if(!e)return}e=this.findStatesByPath(g,c)}while(e.length>0&&e[0]===f[0])g=e.shift(),f.shift();var h=b.pathsCache[c]={exitStates:f,enterStates:e,resolveState:g};return h},triggerSetupContext:function(b){var c=b.contexts,e=b.enterStates.length-c.length,f=b.enterStates,g=a(this,"transitionEvent");d.call(f,function(a,b){a.trigger(g,this,c[b-e])},this)},getState:function(b){var c=a(this,b),d=a(this,"parentState");if(c)return c;if(d)return d.getState(b)},enterState:function(c){var e=this.enableLogging,f=c.exitStates.slice(0).reverse();d.call(f,function(a){a.trigger("exit",this)},this),d.call(c.enterStates,function(b){e&&Ember.Logger.log("STATEMANAGER: Entering "+a(b,"path")),b.trigger("enter",this)},this),b(this,"currentState",c.finalState)}})}(),function(){}(),function(){var a=Ember.get;Ember._ResolvedState=Ember.Object.extend({manager:null,state:null,match:null,object:Ember.computed(function(b,c){if(arguments.length===2)return this._object=c,c;if(this._object)return this._object;var d=a(this,"state"),e=a(this,"match"),f=a(this,"manager");return d.deserialize(f,e.hash)}).property(),hasPromise:Ember.computed(function(){return Ember.canInvoke(a(this,"object"),"then")}).property("object"),promise:Ember.computed(function(){var b=a(this,"object");return Ember.canInvoke(b,"then")?b:{then:function(a){a(b)}}}).property("object"),transition:function(){var b=a(this,"manager"),c=a(this,"state.path"),d=a(this,"object");b.transitionTo(c,d)}})}(),function(){var a=Ember.get,b=function(a){var b=a.toString(),c=b.split("."),d=c[c.length-1];return Ember.String.underscore(d)+"_id"},c=function(a,b){for(var c in b){if(!b.hasOwnProperty(c))continue;if(a.hasOwnProperty(c))continue;a[c]=b[c]}};Ember.Routable=Ember.Mixin.create({init:function(){var b;this.on("connectOutlets",this,this.stashContext);if(b=a(this,"redirectsTo"))this.connectOutlets=function(a){a.transitionTo(b)};var c=a(this,"route");c===""&&(c="/"),this._super()},stashContext:function(b,c){var d=this.serialize(b,c);b.setStateMeta(this,"context",c),b.setStateMeta(this,"serialized",d),a(this,"isRoutable")&&!a(b,"isRouting")&&this.updateRoute(b,a(b,"location"))},updateRoute:function(b,c){if(a(this,"isLeafRoute")){var d=this.absoluteRoute(b);c.setURL(d)}},absoluteRoute:function(b,d){var e=a(this,"parentState"),f="",g;a(e,"isRoutable")&&(f=e.absoluteRoute(b,d));var h=a(this,"routeMatcher"),i=b.getStateMeta(this,"serialized");return d=d||{},c(d,i),g=h&&h.generate(d),g&&(f=f+"/"+g),f},isRoutable:Ember.computed(function(){return typeof a(this,"route")=="string"}).cacheable(),isLeafRoute:Ember.computed(function(){return a(this,"isLeaf")?!0:!a(this,"childStates").findProperty("isRoutable")}).cacheable(),routeMatcher:Ember.computed(function(){var b=a(this,"route");if(b)return Ember._RouteMatcher.create({route:b})}).cacheable(),hasContext:Ember.computed(function(){var b=a(this,"routeMatcher");if(b)return b.identifiers.length>0}).cacheable(),modelClass:Ember.computed(function(){var b=a(this,"modelType");return typeof b=="string"?Ember.get(window,b):b}).cacheable(),modelClassFor:function(b){var c,d,e,f,g;if(c=a(this,"modelClass"))return c;if(!b)return;d=a(this,"routeMatcher");if(!d)return;e=d.identifiers;if(e.length!==2)return;f=e[1].match(/^(.*)_id$/);if(!f)return;return g=Ember.String.classify(f[1]),a(b,g)},deserialize:function(c,d){var e,f,g;return(e=this.modelClassFor(a(c,"namespace")))?e.find(d[b(e)]):d},serialize:function(c,d){var e,f,g,h,i;if(Ember.empty(d))return"";if(e=this.modelClassFor(a(c,"namespace")))h=b(e),i=a(d,"id"),d={},d[h]=i;return d},resolvePath:function(b,c){if(a(this,"isLeafRoute"))return Ember.A();var d=a(this,"childStates"),e;d=Ember.A(d.filterProperty("isRoutable")),d=d.sort(function(b,c){var d=a(b,"routeMatcher.identifiers.length"),e=a(c,"routeMatcher.identifiers.length"),f=a(b,"route"),g=a(c,"route");return f.indexOf(g)===0?-1:g.indexOf(f)===0?1:d!==e?d-e:a(c,"route.length")-a(b,"route.length")});var f=d.find(function(b){var d=a(b,"routeMatcher");if(e=d.match(c))return!0}),g=Ember._ResolvedState.create({manager:b,state:f,match:e}),h=f.resolvePath(b,e.remaining);return Ember.A([g]).pushObjects(h)},routePath:function(b,c){function f(){d.forEach(function(a){a.transition()})}if(a(this,"isLeafRoute"))return;var d=this.resolvePath(b,c),e=d.some(function(b){return a(b,"hasPromise")});e?(b.transitionTo("loading"),b.handleStatePromises(d,f)):f()},unroutePath:function(b,c){var d=a(this,"parentState");if(d===b)return;c=c.replace(/^(?=[^\/])/,"/");var e=this.absoluteRoute(b),f=a(this,"route");if(f!=="/"){var g=c.indexOf(e),h=c.charAt(e.length);if(g===0&&(h==="/"||h===""))return}b.enterState({exitStates:[this],enterStates:[],finalState:d}),b.send("unroutePath",c)},connectOutlets:Ember.K,navigateAway:Ember.K})}(),function(){Ember.Route=Ember.State.extend(Ember.Routable)}(),function(){var a=function(a){return a.replace(/[\-\[\]{}()*+?.,\\\^\$|#\s]/g,"\\$&")};Ember._RouteMatcher=Ember.Object.extend({state:null,init:function(){var b=this.route,c=[],d=1,e;b.charAt(0)==="/"&&(b=this.route=b.substr(1)),e=a(b);var f=e.replace(/:([a-z_]+)(?=$|\/)/gi,function(a,b){return c[d++]=b,"([^/]+)"});this.identifiers=c,this.regex=new RegExp("^/?"+f)},match:function(a){var b=a.match(this.regex);if(b){var c=this.identifiers,d={};for(var e=1,f=c.length;e<f;e++)d[c[e]]=b[e];return{remaining:a.substr(b[0].length),hash:c.length>0?d:null}}},generate:function(a){var b=this.identifiers,c=this.route,d;for(var e=1,f=b.length;e<f;e++)d=b[e],c=c.replace(new RegExp(":"+d),a[d]);return c}})}(),function(){var a=Ember.get,b=Ember.set,c=function(a,b){for(var c in b){if(!b.hasOwnProperty(c))continue;if(a.hasOwnProperty(c))continue;a[c]=b[c]}};Ember.Router=Ember.StateManager.extend({initialState:"root",location:"hash",rootURL:"/",transitionEvent:"connectOutlets",transitionTo:function(){this.abortRoutingPromises(),this._super.apply(this,arguments)},route:function(c){this.abortRoutingPromises(),b(this,"isRouting",!0);var d;try{c=c.replace(/^(?=[^\/])/,"/"),this.send("navigateAway"),this.send("unroutePath",c),d=a(this,"currentState");while(d&&!d.get("isRoutable"))d=a(d,"parentState");var e=d?d.absoluteRoute(this):"",f=c.substr(e.length);this.send("routePath",f)}finally{b(this,"isRouting",!1)}d=a(this,"currentState");while(d&&!d.get("isRoutable"))d=a(d,"parentState");d&&d.updateRoute(this,a(this,"location"))},urlFor:function(b,c){var d=a(this,"currentState")||this,e=this.findStateByPath(d,b),f=a(this,"location"),g=e.absoluteRoute(this,c);return f.formatURL(g)},urlForEvent:function(b){var c=Array.prototype.slice.call(arguments,1),d=a(this,"currentState"),e=d.lookupEventTransition(b),f=this.findStateByPath(d,e),g=this.serializeRecursively(f,c,{});return this.urlFor(e,g)},serializeRecursively:function(b,d,e){var f,g=a(b,"hasContext")?d.pop():null;return c(e,b.serialize(this,g)),f=b.get("parentState"),f&&f instanceof Ember.Route?this.serializeRecursively(f,d,e):e},abortRoutingPromises:function(){this._routingPromises&&(this._routingPromises.abort(),this._routingPromises=null)},handleStatePromises:function(a,c){this.abortRoutingPromises(),this.set("isLocked",!0);var d=this;this._routingPromises=Ember._PromiseChain.create({promises:a.slice(),successCallback:function(){d.set("isLocked",!1),c()},failureCallback:function(){throw"Unable to load object"},promiseSuccessCallback:function(a,c){b(a,"object",c[0])},abortCallback:function(){d.set("isLocked",!1)}}).start()},init:function(){this._super();var c=a(this,"location"),d=a(this,"rootURL");"string"==typeof c&&b(this,"location",Ember.Location.create({implementation:c,rootURL:d}))},willDestroy:function(){a(this,"location").destroy()}})}(),function(){}(),function(){var a=Ember.get;Ember.StateManager.reopen({currentView:Ember.computed(function(){var b=a(this,"currentState"),c;while(b){if(a(b,"isViewState")){c=a(b,"view");if(c)return c}b=a(b,"parentState")}return null}).property("currentState").cacheable()})}(),function(){var a=Ember.get,b=Ember.set;Ember.ViewState=Ember.State.extend({isViewState:!0,init:function(){return this._super()},enter:function(c){var d=a(this,"view"),e,f;d&&(Ember.View.detect(d)&&(d=d.create(),b(this,"view",d)),e=c.get("rootView"),e?(f=a(e,"childViews"),f.pushObject(d)):(e=c.get("rootElement")||"body",d.appendTo(e)))},exit:function(b){var c=a(this,"view");c&&(a(c,"parentView")?c.removeFromParent():c.remove())}})}(),function(){}(),function(){(function(a){var b=function(){},c=0,d=a.document,e="createRange"in d&&typeof Range!="undefined"&&Range.prototype.createContextualFragment,f=function(){var a=d.createElement("div");return a.innerHTML="<div></div>",a.firstChild.innerHTML="<script></script>",a.firstChild.innerHTML===""}(),g=function(a){var d;this instanceof g?d=this:d=new b,d.innerHTML=a;var e="metamorph-"+c++;return d.start=e+"-start",d.end=e+"-end",d};b.prototype=g.prototype;var h,i,j,k,l,m,n,o,p;k=function(){return this.startTag()+this.innerHTML+this.endTag()},o=function(){return"<script id='"+this.start+"' type='text/x-placeholder'></script>"},p=function(){return"<script id='"+this.end+"' type='text/x-placeholder'></script>"};if(e)h=function(a,b){var c=d.createRange(),e=d.getElementById(a.start),f=d.getElementById(a.end);return b?(c.setStartBefore(e),c.setEndAfter(f)):(c.setStartAfter(e),c.setEndBefore(f)),c},i=function(a,b){var c=h(this,b);c.deleteContents();var d=c.createContextualFragment(a);c.insertNode(d)},j=function(){var a=h(this,!0);a.deleteContents()},l=function(a){var b=d.createRange();b.setStart(a),b.collapse(!1);var c=b.createContextualFragment(this.outerHTML());a.appendChild(c)},m=function(a){var b=d.createRange(),c=d.getElementById(this.end);b.setStartAfter(c),b.setEndAfter(c);var e=b.createContextualFragment(a);b.insertNode(e)},n=function(a){var b=d.createRange(),c=d.getElementById(this.start);b.setStartAfter(c),b.setEndAfter(c);var e=b.createContextualFragment(a);b.insertNode(e)};else{var q={select:[1,"<select multiple='multiple'>","</select>"],fieldset:[1,"<fieldset>","</fieldset>"],table:[1,"<table>","</table>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"],colgroup:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],map:[1,"<map>","</map>"],_default:[0,"",""]},r=function(a,b){var c=q[a.tagName.toLowerCase()]||q._default,e=c[0],g=c[1],h=c[2];f&&(b="&shy;"+b);var i=d.createElement("div");i.innerHTML=g+b+h;for(var j=0;j<=e;j++)i=i.firstChild;if(f){var k=i;while(k.nodeType===1&&!k.nodeName)k=k.firstChild;k.nodeType===3&&k.nodeValue.charAt(0)==="­"&&(k.nodeValue=k.nodeValue.slice(1))}return i},s=function(a){while(a.parentNode.tagName==="")a=a.parentNode;return a},t=function(a,b){a.parentNode!==b.parentNode&&b.parentNode.insertBefore(a,b.parentNode.firstChild)};i=function(a,b){var c=s(d.getElementById(this.start)),e=d.getElementById(this.end),f=e.parentNode,g,h,i;t(c,e),g=c.nextSibling;while(g){h=g.nextSibling,i=g===e;if(i){if(!b)break;e=g.nextSibling}g.parentNode.removeChild(g);if(i)break;g=h}g=r(c.parentNode,a);while(g)h=g.nextSibling,f.insertBefore(g,e),g=h},j=function(){var a=s(d.getElementById(this.start)),b=d.getElementById(this.end);this.html(""),a.parentNode.removeChild(a),b.parentNode.removeChild(b)},l=function(a){var b=r(a,this.outerHTML());while(b)nextSibling=b.nextSibling,a.appendChild(b),b=nextSibling},m=function(a){var b=d.getElementById(this.end),c=b.nextSibling,e=b.parentNode,f,g;g=r(e,a);while(g)f=g.nextSibling,e.insertBefore(g,c),g=f},n=function(a){var b=d.getElementById(this.start),c=b.parentNode,e,f;f=r(c,a);var g=b.nextSibling;while(f)e=f.nextSibling,c.insertBefore(f,g),f=e}}g.prototype.html=function(a){this.checkRemoved();if(a===undefined)return this.innerHTML;i.call(this,a),this.innerHTML=a},g.prototype.replaceWith=function(a){this.checkRemoved(),i.call(this,a,!0)},g.prototype.remove=j,g.prototype.outerHTML=k,g.prototype.appendTo=l,g.prototype.after=m,g.prototype.prepend=n,g.prototype.startTag=o,g.prototype.endTag=p,g.prototype.isRemoved=function(){var a=d.getElementById(this.start),b=d.getElementById(this.end);return!a||!b},g.prototype.checkRemoved=function(){if(this.isRemoved())throw new Error("Cannot perform operations on a Metamorph that is not in the DOM.")},a.Metamorph=g})(this)}(),function(){var a=Ember.create;Ember.Handlebars=a(Handlebars),Ember.Handlebars.helpers=a(Handlebars.helpers),Ember.Handlebars.Compiler=function(){},Ember.Handlebars.Compiler.prototype=a(Handlebars.Compiler.prototype),Ember.Handlebars.Compiler.prototype.compiler=Ember.Handlebars.Compiler,Ember.Handlebars.JavaScriptCompiler=function(){},Ember.Handlebars.JavaScriptCompiler.prototype=a(Handlebars.JavaScriptCompiler.prototype),Ember.Handlebars.JavaScriptCompiler.prototype.compiler=Ember.Handlebars.JavaScriptCompiler,Ember.Handlebars.JavaScriptCompiler.prototype.namespace="Ember.Handlebars",Ember.Handlebars.JavaScriptCompiler.prototype.initializeBuffer=function(){return"''"},Ember.Handlebars.JavaScriptCompiler.prototype.appendToBuffer=function(a){return"data.buffer.push("+a+");"},Ember.Handlebars.Compiler.prototype.mustache=function(a){if(a.params.length||a.hash)return Handlebars.Compiler.prototype.mustache.call(this,a);var b=new Handlebars.AST.IdNode(["_triageMustache"]);return a.escaped||(a.hash=a.hash||new Handlebars.AST.HashNode([]),a.hash.pairs.push(["unescaped",new Handlebars.AST.StringNode("true")])),a=new Handlebars.AST.MustacheNode([b].concat([a.id]),a.hash,!a.escaped),Handlebars.Compiler.prototype.mustache.call(this,a)},Ember.Handlebars.precompile=function(a){var b=Handlebars.parse(a),c={knownHelpers:{action:!0,unbound:!0,bindAttr:!0,template:!0,view:!0,_triageMustache:!0},data:!0,stringParams:!0},d=(new Ember.Handlebars.Compiler).compile(b,c);return(new Ember.Handlebars.JavaScriptCompiler).compile(d,c,undefined,!0)},Ember.Handlebars.compile=function(a){var b=Handlebars.parse(a),c={data:!0,stringParams:!0},d=(new Ember.Handlebars.Compiler).compile(b,c),e=(new Ember.Handlebars.JavaScriptCompiler).compile(d,c,undefined,!0);return Handlebars.template(e)};var b=Ember.Handlebars.normalizePath=function(a,b,c){var d=c&&c.keywords||{},e,f;return e=b.split(".",1)[0],d.hasOwnProperty(e)&&(a=d[e],f=!0,b===e?b="":b=b.substr(e.length+1)),{root:a,path:b,isKeyword:f}};Ember.Handlebars.getPath=function(a,c,d){var e=d&&d.data,f=b(a,c,e),g;return a=f.root,c=f.path,g=Ember.get(a,c),g===undefined&&a!==window&&Ember.isGlobalPath(c)&&(g=Ember.get(window,c)),g},Ember.Handlebars.registerHelper("helperMissing",function(a,b){var c,d="";throw c="%@ Handlebars error: Could not find property '%@' on object %@.",b.data&&(d=b.data.view),new Ember.Error(Ember.String.fmt(c,[d,a,this]))})}(),function(){Ember.String.htmlSafe=function(a){return new Handlebars.SafeString(a)};var a=Ember.String.htmlSafe;Ember.EXTEND_PROTOTYPES&&(String.prototype.htmlSafe=function(){return a(this)})}(),function(){var a=Ember.set,b=Ember.get,c={remove:function(b){var c=b.morph;if(c.isRemoved())return;a(b,"element",null),b._lastInsert=null,c.remove()},prepend:function(a,b){b._insertElementLater(function(){var c=a.morph;c.prepend(b.outerHTML),b.outerHTML=null})},after:function(a,b){b._insertElementLater(function(){var c=a.morph;c.after(b.outerHTML),b.outerHTML=null})},replace:function(a){var c=a.morph;a.transitionTo("preRender"),a.clearRenderedChildren();var d=a.renderToBuffer();Ember.run.schedule("render",this,function(){if(b(a,"isDestroyed"))return;a.invalidateRecursively("element"),a._notifyWillInsertElement(),c.replaceWith(d.string()),a.transitionTo("inDOM"),a._notifyDidInsertElement()})},empty:function(a){a.morph.html("")}};Ember._Metamorph=Ember.Mixin.create({isVirtual:!0,tagName:"",init:function(){this._super(),this.morph=Metamorph()},beforeRender:function(a){a.push(this.morph.startTag())},afterRender:function(a){a.push(this.morph.endTag())},createElement:function(){var a=this.renderToBuffer();this.outerHTML=a.string(),this.clearBuffer()},domManager:c}),Ember._MetamorphView=Ember.View.extend(Ember._Metamorph)}(),function(){var a=Ember.get,b=Ember.set,c=Ember.Handlebars.getPath;Ember._HandlebarsBoundView=Ember._MetamorphView.extend({shouldDisplayFunc:null,preserveContext:!1,previousContext:null,displayTemplate:null,inverseTemplate:null,path:null,pathRoot:null,normalizedValue:Ember.computed(function(){var b=a(this,"path"),d=a(this,"pathRoot"),e=a(this,"valueNormalizerFunc"),f,g;return b===""?f=d:(g=a(this,"templateData"),f=c(d,b,{data:g})),e?e(f):f}).property("path","pathRoot","valueNormalizerFunc").volatile(),rerenderIfNeeded:function(){!a(this,"isDestroyed")&&a(this,"normalizedValue")!==this._lastNormalizedValue&&this.rerender()},render:function(c){var d=a(this,"isEscaped"),e=a(this,"shouldDisplayFunc"),f=a(this,"preserveContext"),g=a(this,"previousContext"),h=a(this,"inverseTemplate"),i=a(this,"displayTemplate"),j=a(this,"normalizedValue");this._lastNormalizedValue=j;if(e(j)){b(this,"template",i);if(f)b(this,"_context",g);else{if(!i){j===null||j===undefined?j="":j instanceof Handlebars.SafeString||(j=String(j)),d&&(j=Handlebars.Utils.escapeExpression(j)),c.push(j);return}b(this,"_context",j)}}else h?(b(this,"template",h),f?b(this,"_context",g):b(this,"_context",j)):b(this,"template",function(){return""});return this._super(c)}})}(),function(){function i(a,b,c,f,g){var h=b.data,i=b.fn,j=b.inverse,k=h.view,l=this,m,n,o;o=e(l,a,h),m=o.root,n=o.path;if("object"==typeof this){var p=k.createChildView(Ember._HandlebarsBoundView,{preserveContext:c,shouldDisplayFunc:f,valueNormalizerFunc:g,displayTemplate:i,inverseTemplate:j,path:n,pathRoot:m,previousContext:l,isEscaped:!b.hash.unescaped,templateData:b.data});k.appendChild(p);var q=function(){Ember.run.once(p,"rerenderIfNeeded")};n!==""&&Ember.addObserver(m,n,q)}else h.buffer.push(d(m,n,b))}var a=Ember.get,b=Ember.set,c=Ember.String.fmt,d=Ember.Handlebars.getPath,e=Ember.Handlebars.normalizePath,f=Ember.ArrayPolyfills.forEach,g=Ember.Handlebars,h=g.helpers;g.registerHelper("_triageMustache",function(a,b){return h[a]?h[a].call(this,b):h.bind.apply(this,arguments)}),g.registerHelper("bind",function(a,b){var c=b.contexts&&b.contexts[0]||this;return i.call(c,a,b,!1,function(a){return!Ember.none(a)})}),g.registerHelper("boundIf",function(b,c){var d=c.contexts&&c.contexts[0]||this,e=function(b){return Ember.typeOf(b)==="array"?a(b,"length")!==0:!!b};return i.call(d,b,c,!0,e,e)}),g.registerHelper("with",function(a,b){if(arguments.length===4){var c,d,f,g;b=arguments[3],c=arguments[2],d=arguments[0];if(Ember.isGlobalPath(d))Ember.bind(b.data.keywords,c,d);else{g=e(this,d,b.data),d=g.path,f=g.root;var j=Ember.$.expando+Ember.guidFor(f);b.data.keywords[j]=f;var k=d?j+"."+d:j;Ember.bind(b.data.keywords,c,k)}return i.call(this,d,b.fn,!0,function(a){return!Ember.none(a)})}return h.bind.call(b.contexts[0],a,b)}),g.registerHelper("if",function(a,b){return h.boundIf.call(b.contexts[0],a,b)}),g.registerHelper("unless",function(a,b){var c=b.fn,d=b.inverse;return b.fn=d,b.inverse=c,h.boundIf.call(b.contexts[0],a,b)}),g.registerHelper("bindAttr",function(a){var b=a.hash,c=a.data.view,h=[],i=this,j=++Ember.$.uuid,k=b["class"];if(k!==null&&k!==undefined){var l=g.bindClasses(this,k,c,j,a);h.push('class="'+Handlebars.Utils.escapeExpression(l.join(" "))+'"'),delete b["class"]}var m=Ember.keys(b);return f.call(m,function(f){var g=b[f],k,l;l=e(i,g,a.data),k=l.root,g=l.path;var m=g==="this"?k:d(k,g,a),n=Ember.typeOf(m),o,p;o=function(){var e=d(k,g,a),h=c.$("[data-bindattr-"+j+"='"+j+"']");if(h.length===0){Ember.removeObserver(k,g,p);return}Ember.View.applyAttributeBindings(h,f,e)},p=function(){Ember.run.once(o)},g!=="this"&&Ember.addObserver(k,g,p),n==="string"||n==="number"&&!isNaN(m)?h.push(f+'="'+Handlebars.Utils.escapeExpression(m)+'"'):m&&n==="boolean"&&h.push(f+'="'+f+'"')},this),h.push("data-bindattr-"+j+'="'+j+'"'),new g.SafeString(h.join(" "))}),g.bindClasses=function(a,b,c,g,h){var i=[],j,k,l,m=function(a,b,c){var e,f=b.path;return f==="this"?e=a:f===""?e=!0:e=d(a,f,c),Ember.View._classStringForValue(f,e,b.className,b.falsyClassName)};return f.call(b.split(" "),function(b){var d,f,n,o=Ember.View._parsePropertyPath(b),p=o.path,q=a,r;p!==""&&p!=="this"&&(r=e(a,p,h.data),q=r.root,p=r.path),f=function(){j=m(q,o,h),l=g?c.$("[data-bindattr-"+g+"='"+g+"']"):c.$(),l.length===0?Ember.removeObserver(q,p,n):(d&&l.removeClass(d),j?(l.addClass(j),d=j):d=null)},n=function(){Ember.run.once(f)},p!==""&&p!=="this"&&Ember.addObserver(q,p,n),k=m(q,o,h),k&&(i.push(k),d=k)}),i}}(),function(){var a=Ember.get,b=Ember.set,c=/^parentView\./,d=Ember.Handlebars,e=Ember.VIEW_PRESERVES_CONTEXT;d.ViewHelper=Ember.Object.create({propertiesFromHTMLOptions:function(a,b){var c=a.hash,d=a.data,e={},f=c["class"],g=!1;c.id&&(e.elementId=c.id,g=!0),f&&(f=f.split(" "),e.classNames=f,g=!0),c.classBinding&&(e.classNameBindings=c.classBinding.split(" "),g=!0),c.classNameBindings&&(e.classNameBindings===undefined&&(e.classNameBindings=[]),e.classNameBindings=e.classNameBindings.concat(c.classNameBindings.split(" ")),g=!0),c.attributeBindings&&(e.attributeBindings=null,g=!0),g&&(c=Ember.$.extend({},c),delete c.id,delete c["class"],delete c.classBinding);var h;for(var i in c){if(!c.hasOwnProperty(i))continue;Ember.IS_BINDING.test(i)&&typeof c[i]=="string"&&(h=this.contextualizeBindingPath(c[i],d),h&&(c[i]=h))}if(e.classNameBindings)for(var j in e.classNameBindings){var k=e.classNameBindings[j];if(typeof k=="string"){var l=Ember.View._parsePropertyPath(k);h=this.contextualizeBindingPath(l.path,d),h&&(e.classNameBindings[j]=h+l.classNames)}}return e.bindingContext=b,Ember.$.extend(c,e)},contextualizeBindingPath:function(a,b){var c=Ember.Handlebars.normalizePath(null,a,b);return c.isKeyword?"templateData.keywords."+a:Ember.isGlobalPath(a)?null:a==="this"?"bindingContext":"bindingContext."+a},helper:function(a,b,c){var f=c.inverse,g=c.data,h=g.view,i=c.fn,j=c.hash,k;"string"==typeof b?k=d.getPath(a,b,c):k=b;var l=this.propertiesFromHTMLOptions(c,a),m=g.view;l.templateData=c.data,i&&(l.template=i),e&&!k.proto().controller&&!k.proto().controllerBinding&&!l.controller&&!l.controllerBinding&&(l._context=a),m.appendChild(k,l)}}),d.registerHelper("view",function(a,b){return a&&a.data&&a.data.isRenderData&&(b=a,a="Ember.View"),d.ViewHelper.helper(this,a,b)})}(),function(){var a=Ember.get,b=Ember.Handlebars.getPath,c=Ember.String.fmt;Ember.Handlebars.registerHelper("collection",function(c,d){c&&c.data&&c.data.isRenderData&&(d=c,c=undefined);var e=d.fn,f=d.data,g=d.inverse,h;h=c?b(this,c,d):Ember.CollectionView;var i=d.hash,j={},k,l,m=i.itemViewClass,n=h.proto();delete i.itemViewClass,l=m?b(n,m,d):n.itemViewClass;for(var o in i)i.hasOwnProperty(o)&&(k=o.match(/^item(.)(.*)$/),k&&(j[k[1].toLowerCase()+k[2]]=i[o],delete i[o]));var p=i.tagName||n.tagName;e&&(j.template=e,delete d.fn);var q;g&&g!==Handlebars.VM.noop?(q=a(n,"emptyViewClass"),q=q.extend({template:g,tagName:j.tagName})):i.emptyViewClass&&(q=b(this,i.emptyViewClass,d)),i.emptyView=q,i.eachHelper==="each"&&(j._context=Ember.computed(function(){return a(this,"content")}).property("content"),delete i.eachHelper);var r=Ember.Handlebars.ViewHelper.propertiesFromHTMLOptions({data:f,hash:j},this);return i.itemViewClass=l.extend(r),Ember.Handlebars.helpers.view.call(this,h,d)})}(),function(){var a=Ember.Handlebars.getPath;Ember.Handlebars.registerHelper("unbound",function(b,c){var d=c.contexts&&c.contexts[0]||this;return a(d,b,c)})}(),function(){var a=Ember.Handlebars.getPath,b=Ember.Handlebars.normalizePath;Ember.Handlebars.registerHelper("log",function(c,d){var e=d.contexts&&d.contexts[0]||this,f=b(e,c,d.data),g=f.root,h=f.path,i=h==="this"?g:a(g,h,d);Ember.Logger.log(i)}),Ember.Handlebars.registerHelper("debugger",function(){debugger})}(),function(){var a=Ember.get,b=Ember.set;Ember.Handlebars.EachView=Ember.CollectionView.extend(Ember._Metamorph,{itemViewClass:Ember._MetamorphView,emptyViewClass:Ember._MetamorphView,createChildView:function(c,d){c=this._super(c,d);var e=a(this,"keyword");if(e){var f=a(c,"templateData");f=Ember.copy(f),f.keywords=c.cloneKeywords(),b(c,"templateData",f);var g=a(c,"content");f.keywords[e]=g}return c}}),Ember.Handlebars.registerHelper("each",function(a,b){if(arguments.length===4){var c=arguments[0];b=arguments[3],a=arguments[2],a===""&&(a="this"),b.hash.keyword=c}else b.hash.eachHelper="each";return b.hash.contentBinding=a,Ember.Handlebars.helpers.collection.call(this,"Ember.Handlebars.EachView",b)})}(),function(){Ember.Handlebars.registerHelper("template",function(a,b){var c=Ember.TEMPLATES[a];Ember.TEMPLATES[a](this,{data:b.data})})}(),function(){var a=Ember.Handlebars,b=a.getPath,c=Ember.get,d=Array.prototype.slice,e=a.ActionHelper={registeredActions:{}};e.registerAction=function(a,b){var c=(++Ember.$.uuid).toString();return e.registeredActions[c]={eventName:b.eventName,handler:function(c){var d=c.shiftKey||c.metaKey||c.altKey||c.ctrlKey,e=c.which>1,f=d||e;if(b.link&&f)return;c.preventDefault(),c.view=b.view,b.hasOwnProperty("context")&&(c.context=b.context),b.hasOwnProperty("contexts")&&(c.contexts=b.contexts);var g=b.target;return g.isState&&typeof g.send=="function"?g.send(a,c):g[a].call(g,c)}},b.view.on("willRerender",function(){delete e.registeredActions[c]}),c},a.registerHelper("action",function(f){var g=arguments[arguments.length-1],h=d.call(arguments,1,-1),i=g.hash,j=g.data.view,k,l,m,n={eventName:i.on||"click"};n.view=j=c(j,"concreteView");if(i.target)k=b(this,i.target,g);else if(l=g.data.keywords.controller)k=c(l,"target");n.target=k=k||j,h.length&&(n.contexts=h=Ember.EnumerableUtils.map(h,function(a){return b(this,a,g)},this),n.context=h[0]);var o=[],p;i.href&&k.urlForEvent&&(p=k.urlForEvent.apply(k,[f].concat(h)),o.push('href="'+p+'"'),n.link=!0);var q=e.registerAction(f,n);return o.push('data-ember-action="'+q+'"'),new a.SafeString(o.join(" "))})}(),function(){var a=Ember.get,b=Ember.set;Ember.Handlebars.registerHelper("yield",function(b){var c=b.data.view,d;while(c&&!a(c,"layout"))c=a(c,"parentView");d=a(c,"template"),d&&d(this,b)})}(),function(){Ember.Handlebars.registerHelper("outlet",function(a,b){return a&&a.data&&a.data.isRenderData&&(b=a,a="view"),b.hash.currentViewBinding="controller."+a,Ember.Handlebars
+// ==========================================================================
+// Project: Ember - JavaScript Application Framework
+// Copyright: ©2011-2012 Tilde Inc. and contributors
+// Portions ©2006-2011 Strobe Inc.
+// Portions ©2008-2011 Apple Inc. All rights reserved.
+// License: Licensed under MIT license (see license.js)
+// ==========================================================================
+
+
+// Version: v1.0.pre
+// Last commit: 7955b85 (2012-08-03 14:50:17 -0700)
+
+
+(function(){"undefined"==typeof Ember&&(Ember={}),"undefined"!=typeof window&&(window.Em=window.Ember=Em=Ember),Ember.isNamespace=!0,Ember.toString=function(){return"Ember"},Ember.VERSION="1.0.pre",Ember.ENV=Ember.ENV||("undefined"==typeof ENV?{}:ENV),Ember.config=Ember.config||{},Ember.EXTEND_PROTOTYPES=Ember.ENV.EXTEND_PROTOTYPES!==!1,Ember.LOG_STACKTRACE_ON_DEPRECATION=Ember.ENV.LOG_STACKTRACE_ON_DEPRECATION!==!1,Ember.SHIM_ES5=Ember.ENV.SHIM_ES5===!1?!1:Ember.EXTEND_PROTOTYPES,Ember.CP_DEFAULT_CACHEABLE=Ember.ENV.CP_DEFAULT_CACHEABLE!==!1,Ember.VIEW_PRESERVES_CONTEXT=Ember.ENV.VIEW_PRESERVES_CONTEXT!==!1,Ember.K=function(){return this},"undefined"==typeof Ember.assert&&(Ember.assert=Ember.K),"undefined"==typeof Ember.warn&&(Ember.warn=Ember.K),"undefined"==typeof Ember.deprecate&&(Ember.deprecate=Ember.K),"undefined"==typeof Ember.deprecateFunc&&(Ember.deprecateFunc=function(a,b){return b}),"undefined"==typeof ember_assert&&(window.ember_assert=Ember.K),"undefined"==typeof ember_warn&&(window.ember_warn=Ember.K),"undefined"==typeof ember_deprecate&&(window.ember_deprecate=Ember.K),"undefined"==typeof ember_deprecateFunc&&(window.ember_deprecateFunc=function(a,b){return b}),Ember.Logger=window.console||{log:Ember.K,warn:Ember.K,error:Ember.K,info:Ember.K,debug:Ember.K}})(),function(){var a=function(a){return a&&Function.prototype.toString.call(a).indexOf("[native code]")>-1},b=a(Array.prototype.map)?Array.prototype.map:function(a){if(this===void 0||this===null)throw new TypeError;var b=Object(this),c=b.length>>>0;if(typeof a!="function")throw new TypeError;var d=new Array(c),e=arguments[1];for(var f=0;f<c;f++)f in b&&(d[f]=a.call(e,b[f],f,b));return d},c=a(Array.prototype.forEach)?Array.prototype.forEach:function(a){if(this===void 0||this===null)throw new TypeError;var b=Object(this),c=b.length>>>0;if(typeof a!="function")throw new TypeError;var d=arguments[1];for(var e=0;e<c;e++)e in b&&a.call(d,b[e],e,b)},d=a(Array.prototype.indexOf)?Array.prototype.indexOf:function(a,b){b===null||b===undefined?b=0:b<0&&(b=Math.max(0,this.length+b));for(var c=b,d=this.length;c<d;c++)if(this[c]===a)return c;return-1};Ember.ArrayPolyfills={map:b,forEach:c,indexOf:d};var e=Ember.EnumerableUtils={map:function(a,c,d){return a.map?a.map.call(a,c,d):b.call(a,c,d)},forEach:function(a,b,d){return a.forEach?a.forEach.call(a,b,d):c.call(a,b,d)},indexOf:function(a,b,c){return a.indexOf?a.indexOf.call(a,b,c):d.call(a,b,c)},indexesOf:function(a,b){return b===undefined?[]:e.map(b,function(b){return e.indexOf(a,b)})},removeObject:function(a,b){var c=e.indexOf(a,b);c!==-1&&a.splice(c,1)}};Ember.SHIM_ES5&&(Array.prototype.map||(Array.prototype.map=b),Array.prototype.forEach||(Array.prototype.forEach=c),Array.prototype.indexOf||(Array.prototype.indexOf=d))}(),function(){var a=Ember.platform={};Ember.create=Object.create;if(!Ember.create){var b=function(){};Ember.create=function(a,c){b.prototype=a,a=new b;if(c){b.prototype=a;for(var d in c)b.prototype[d]=c[d].value;a=new b}return b.prototype=null,a},Ember.create.isSimulated=!0}var c=Object.defineProperty,d,e;if(c)try{c({},"a",{get:function(){}})}catch(f){c=null}c&&(d=function(){var a={};return c(a,"a",{configurable:!0,enumerable:!0,get:function(){},set:function(){}}),c(a,"a",{configurable:!0,enumerable:!0,writable:!0,value:!0}),a.a===!0}(),e=function(){try{return c(document.createElement("div"),"definePropertyOnDOM",{}),!0}catch(a){}return!1}(),d?e||(c=function(a,b,c){var d;return typeof Node=="object"?d=a instanceof Node:d=typeof a=="object"&&typeof a.nodeType=="number"&&typeof a.nodeName=="string",d?a[b]=c.value:Object.defineProperty(a,b,c)}):c=null),a.defineProperty=c,a.hasPropertyAccessors=!0,a.defineProperty||(a.hasPropertyAccessors=!1,a.defineProperty=function(a,b,c){c.get||(a[b]=c.value)},a.defineProperty.isSimulated=!0),Ember.ENV.MANDATORY_SETTER&&!a.hasPropertyAccessors&&(Ember.ENV.MANDATORY_SETTER=!1)}(),function(){function m(a){this.descs={},this.watching={},this.cache={},this.source=a}function n(a,b){return!!a&&typeof a[b]=="function"}var a=Ember.platform.defineProperty,b=Ember.create,c="__ember"+ +(new Date),d=0,e=[],f={},g=Ember.ENV.MANDATORY_SETTER;Ember.GUID_KEY=c;var h={writable:!1,configurable:!1,enumerable:!1,value:null};Ember.generateGuid=function(e,f){f||(f="ember");var g=f+d++;return e&&(h.value=g,a(e,c,h)),g},Ember.guidFor=function(g){if(g===undefined)return"(undefined)";if(g===null)return"(null)";var i,j,k=typeof g;switch(k){case"number":return j=e[g],j||(j=e[g]="nu"+g),j;case"string":return j=f[g],j||(j=f[g]="st"+d++),j;case"boolean":return g?"(true)":"(false)";default:if(g[c])return g[c];if(g===Object)return"(Object)";if(g===Array)return"(Array)";return j="ember"+d++,h.value=j,a(g,c,h),j}};var i={writable:!0,configurable:!1,enumerable:!1,value:null},j=Ember.GUID_KEY+"_meta";Ember.META_KEY=j;var k={descs:{},watching:{}};g&&(k.values={}),Ember.EMPTY_META=k,Object.freeze&&Object.freeze(k);var l=Ember.platform.defineProperty.isSimulated;l&&(m.prototype.__preventPlainObject__=!0),Ember.meta=function(d,e){var f=d[j];return e===!1?f||k:(f?f.source!==d&&(l||a(d,j,i),f=b(f),f.descs=b(f.descs),f.watching=b(f.watching),f.cache={},f.source=d,g&&(f.values=b(f.values)),d[j]=f):(l||a(d,j,i),f=new m(d),g&&(f.values={}),d[j]=f,f.descs.constructor=null),f)},Ember.getMeta=function(b,c){var d=Ember.meta(b,!1);return d[c]},Ember.setMeta=function(b,c,d){var e=Ember.meta(b,!0);return e[c]=d,d},Ember.metaPath=function(c,d,e){var f=Ember.meta(c,e),g,h;for(var i=0,j=d.length;i<j;i++){g=d[i],h=f[g];if(!h){if(!e)return undefined;h=f[g]={__ember_source__:c}}else if(h.__ember_source__!==c){if(!e)return undefined;h=f[g]=b(h),h.__ember_source__=c}f=h}return h},Ember.wrap=function(a,b){function c(){}var d=function(){var d,e=this._super;return this._super=b||c,d=a.apply(this,arguments),this._super=e,d};return d.base=a,d},Ember.isArray=function(a){return!a||a.setInterval?!1:Array.isArray&&Array.isArray(a)?!0:Ember.Array&&Ember.Array.detect(a)?!0:a.length!==undefined&&"object"==typeof a?!0:!1},Ember.makeArray=function(a){return a===null||a===undefined?[]:Ember.isArray(a)?a:[a]},Ember.canInvoke=n,Ember.tryInvoke=function(a,b,c){if(n(a,b))return a[b].apply(a,c)}}(),function(){var a=Ember.guidFor,b=Ember.ArrayPolyfills.indexOf,c=function(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b},d=function(a,b){var d=a.keys.copy(),e=c(a.values);return b.keys=d,b.values=e,b},e=Ember.OrderedSet=function(){this.clear()};e.create=function(){return new e},e.prototype={clear:function(){this.presenceSet={},this.list=[]},add:function(b){var c=a(b),d=this.presenceSet,e=this.list;if(c in d)return;d[c]=!0,e.push(b)},remove:function(c){var d=a(c),e=this.presenceSet,f=this.list;delete e[d];var g=b.call(f,c);g>-1&&f.splice(g,1)},isEmpty:function(){return this.list.length===0},forEach:function(a,b){var c=this.list.slice();for(var d=0,e=c.length;d<e;d++)a.call(b,c[d])},toArray:function(){return this.list.slice()},copy:function(){var a=new e;return a.presenceSet=c(this.presenceSet),a.list=this.list.slice(),a}};var f=Ember.Map=function(){this.keys=Ember.OrderedSet.create(),this.values={}};f.create=function(){return new f},f.prototype={get:function(b){var c=this.values,d=a(b);return c[d]},set:function(b,c){var d=this.keys,e=this.values,f=a(b);d.add(b),e[f]=c},remove:function(b){var c=this.keys,d=this.values,e=a(b),f;return d.hasOwnProperty(e)?(c.remove(b),f=d[e],delete d[e],!0):!1},has:function(b){var c=this.values,d=a(b);return c.hasOwnProperty(d)},forEach:function(b,c){var d=this.keys,e=this.values;d.forEach(function(d){var f=a(d);b.call(c,d,e[f])})},copy:function(){return d(this,new f)}};var g=Ember.MapWithDefault=function(a){f.call(this),this.defaultValue=a.defaultValue};g.create=function(a){return a?new g(a):new f},g.prototype=Ember.create(f.prototype),g.prototype.get=function(a){var b=this.has(a);if(b)return f.prototype.get.call(this,a);var c=this.defaultValue(a);return this.set(a,c),c},g.prototype.copy=function(){return d(this,new g({defaultValue:this.defaultValue}))}}(),function(){function i(a){return a.match(h)[0]}function j(a,c){var d=g.test(c),e=!d&&f.test(c),h;if(!a||e)a=window;d&&(c=c.slice(5)),a===window&&(h=i(c),a=b(a,h),c=c.slice(h.length+1));if(!c||c.length===0)throw new Error("Invalid Path");return[a,c]}function k(a,c){var d,e,f,h,i;if(a===null&&c.indexOf(".")===-1)return b(window,c);d=g.test(c);if(!a||d)f=j(a,c),a=f[0],c=f[1],f.length=0;e=c.split("."),i=e.length;for(h=0;a&&h<i;h++){a=b(a,e[h],!0);if(a&&a.isDestroyed)return undefined}return a}function l(a,b,d,e){var f;f=b.slice(b.lastIndexOf(".")+1),b=b.slice(0,b.length-(f.length+1)),b!=="this"&&(a=k(a,b));if(!f||f.length===0)throw new Error("You passed an empty path");if(!a){if(e)return;throw new Error("Object in path "+b+" could not be found or was destroyed.")}return c(a,f,d)}var a=Ember.META_KEY,b,c,d=Ember.ENV.MANDATORY_SETTER,e=/^([A-Z$]|([0-9][A-Z$]))/,f=/^([A-Z$]|([0-9][A-Z$])).*[\.\*]/,g=/^this[\.\*]/,h=/^([^\.\*]+)/;b=function(c,e){if(e==="")return c;!e&&"string"==typeof c&&(e=c,c=null);if(!c||e.indexOf(".")!==-1)return k(c,e);var f=c[a],g=f&&f.descs[e],h;return g?g.get(c,e):(d&&f&&f.watching[e]>0?h=f.values[e]:h=c[e],h!==undefined||"object"!=typeof c||e in c||"function"!=typeof c.unknownProperty?h:c.unknownProperty(e))},c=function(c,e,f,g){typeof c=="string"&&(f=e,e=c,c=null);if(!c||e.indexOf(".")!==-1)return l(c,e,f,g);var h=c[a],i=h&&h.descs[e],j,k;return i?i.set(c,e,f):(j="object"==typeof c&&!(e in c),j&&"function"==typeof c.setUnknownProperty?c.setUnknownProperty(e,f):h&&h.watching[e]>0?(d?k=h.values[e]:k=c[e],f!==k&&(Ember.propertyWillChange(c,e),d?k!==undefined||e in c?h.values[e]=f:Ember.defineProperty(c,e,null,f):c[e]=f,Ember.propertyDidChange(c,e))):c[e]=f),f},Ember.normalizeTuple=function(a,b){return j(a,b)},Ember.getWithDefault=function(a,c,d){var e=b(a,c);return e===undefined?d:e},Ember.get=b,Ember.getPath=Ember.deprecateFunc("getPath is deprecated since get now supports paths",Ember.get),Ember.set=c,Ember.setPath=Ember.deprecateFunc("setPath is deprecated since set now supports paths",Ember.set),Ember.trySet=function(a,b,d){return c(a,b,d,!0)},Ember.trySetPath=Ember.deprecateFunc("trySetPath has been renamed to trySet",Ember.trySet),Ember.isGlobalPath=function(a){return e.test(a)},Ember.config.overrideAccessors&&(Ember.config.overrideAccessors(),b=Ember.get,c=Ember.set)}(),function(){var a=Ember.GUID_KEY,b=Ember.META_KEY,c=Ember.EMPTY_META,d=Ember.meta,e=Ember.create,f=Ember.platform.defineProperty,g=Ember.ENV.MANDATORY_SETTER,h=Ember.Descriptor=function(){};Ember.defineProperty=function(a,c,e,h,i){var j,k,l,m;return i||(i=d(a)),j=i.descs,k=i.descs[c],l=i.watching[c]>0,k instanceof Ember.Descriptor&&k.teardown(a,c),e instanceof Ember.Descriptor?(m=e,j[c]=e,g&&l?f(a,c,{configurable:!0,enumerable:!0,writable:!0,value:undefined}):a[c]=undefined,e.setup(a,c)):(j[c]=undefined,e==null?(m=h,g&&l?(i.values[c]=h,f(a,c,{configurable:!0,enumerable:!0,set:function(){},get:function(){var a=this[b];return a&&a.values[c]}})):a[c]=h):(m=e,f(a,c,e))),l&&Ember.overrideChains(a,c,i),a.didDefineProperty&&a.didDefineProperty(a,c,m),this}}(),function(){function j(a,b,c,e){d&&!e?h.push(a,b,c):Ember.sendEvent(a,b,[a,c])}function k(){i.clear(),h.flush()}function l(b){return b+a}function m(a){return a+b}var a=":change",b=":before",c=Ember.guidFor,d=0,e=[].slice,f=function(){this.targetSet={}};f.prototype.add=function(a,b){var c=this.targetSet,d=Ember.guidFor(a),e=c[d];return e||(c[d]=e={}),e[b]?!1:e[b]=!0},f.prototype.clear=function(){this.targetSet={}};var g=function(){this.targetSet={},this.queue=[]};g.prototype.push=function(a,b,c){var d=this.targetSet,e=this.queue,f=Ember.guidFor(a),g=d[f],h;g||(d[f]=g={}),h=g[b],h===undefined?g[b]=e.push(Ember.deferEvent(a,b,[a,c]))-1:e[h]=Ember.deferEvent(a,b,[a,c])},g.prototype.flush=function(){var a=this.queue;this.queue=[],this.targetSet={};for(var b=0,c=a.length;b<c;++b)a[b]()};var h=new g,i=new f;Ember.beginPropertyChanges=function(){return d++,this},Ember.endPropertyChanges=function(){d--,d<=0&&k()},Ember.changeProperties=function(a,b){Ember.beginPropertyChanges();try{a.call(b)}finally{Ember.endPropertyChanges()}},Ember.setProperties=function(a,b){return Ember.changeProperties(function(){for(var c in b)b.hasOwnProperty(c)&&Ember.set(a,c,b[c])}),a},Ember.addObserver=function(a,b,c,d){return Ember.addListener(a,l(b),c,d),Ember.watch(a,b),this},Ember.observersFor=function(a,b){return Ember.listenersFor(a,l(b))},Ember.removeObserver=function(a,b,c,d){return Ember.unwatch(a,b),Ember.removeListener(a,l(b),c,d),this},Ember.addBeforeObserver=function(a,b,c,d){return Ember.addListener(a,m(b),c,d),Ember.watch(a,b),this},Ember._suspendBeforeObserver=function(a,b,c,d,e){return Ember._suspendListener(a,m(b),c,d,e)},Ember._suspendObserver=function(a,b,c,d,e){return Ember._suspendListener(a,l(b),c,d,e)},Ember.beforeObserversFor=function(a,b){return Ember.listenersFor(a,m(b))},Ember.removeBeforeObserver=function(a,b,c,d){return Ember.unwatch(a,b),Ember.removeListener(a,m(b),c,d),this},Ember.notifyObservers=function(a,b){if(a.isDestroying)return;j(a,l(b),b)},Ember.notifyBeforeObservers=function(a,b){if(a.isDestroying)return;var c,e,f=!1;if(d){if(!i.add(a,b))return;f=!0}j(a,m(b),b,f)}}(),function(){function n(a){return a.match(j)[0]}function o(a){return a==="*"||!k.test(a)}function q(b,c,d,e,f){var g=a(c);e[g]||(e[g]={});if(e[g][d])return;e[g][d]=!0;var h=f.deps;h=h&&h[d];if(h)for(var i in h){if(p[i])continue;b(c,i)}}function t(a,b,c){if(a.isDestroying)return;var d=r,e=!d;e&&(d=r={}),q(G,a,b,d,c),e&&(r=null)}function u(a,b,c){if(a.isDestroying)return;var d=s,e=!d;e&&(d=s={}),q(H,a,b,d,c),e&&(s=null)}function v(c,d,e){if(!c||"object"!=typeof c)return;var f=b(c),g=f.chainWatchers;if(!g||g.__emberproto__!==c)g=f.chainWatchers={__emberproto__:c};g[d]||(g[d]={}),g[d][a(e)]=e,Ember.watch(c,d)}function w(c,d,e){if(!c||"object"!=typeof c)return;var f=b(c,!1),g=f.chainWatchers;if(!g||g.__emberproto__!==c)return;g[d]&&delete g[d][a(e)],Ember.unwatch(c,d)}function y(){if(x.length===0)return;var a=x;x=[],i.call(a,function(a){a[0].add(a[1])})}function z(a){return b(a,!1).proto===a}function C(a){var c=b(a),d=c.chains;return d?d.value()!==a&&(d=c.chains=d.copy(a)):d=c.chains=new A(null,null,a),d}function D(a,b,c,d,e){var f=b.chainWatchers;if(!f||f.__emberproto__!==a)return;f=f[c];if(!f)return;for(var g in f){if(!f.hasOwnProperty(g))continue;f[g][d](e)}}function E(a,b,c){D(a,c,b,"willChange")}function F(a,b,c){D(a,c,b,"didChange")}function G(a,c,d){var e=b(a,!1),f=e.watching[c]>0||c==="length",g=e.proto,h=e.descs[c];if(!f)return;if(g===a)return;h&&h.willChange&&h.willChange(a,c),t(a,c,e),E(a,c,e),Ember.notifyBeforeObservers(a,c)}function H(a,c){var d=b(a,!1),e=d.watching[c]>0||c==="length",f=d.proto,g=d.descs[c];if(f===a)return;g&&g.didChange&&g.didChange(a,c);if(!e&&c!=="length")return;u(a,c,d),F(a,c,d),Ember.notifyObservers(a,c)}var a=Ember.guidFor,b=Ember.meta,c=Ember.get,d=Ember.set,e=Ember.normalizeTuple,f=Ember.GUID_KEY,g=Ember.META_KEY,h=Ember.notifyObservers,i=Ember.ArrayPolyfills.forEach,j=/^([^\.\*]+)/,k=/[\.\*]/,l=Ember.ENV.MANDATORY_SETTER,m=Ember.platform.defineProperty,p={__emberproto__:!0},r,s,x=[],A=function(a,b,c,d){var e;this._parent=a,this._key=b,this._watching=c===undefined,this._value=c,this._separator=d||".",this._paths={},this._watching&&(this._object=a.value(),this._object&&v(this._object,this._key,this)),this._parent&&this._parent._key==="@each"&&this.value()},B=A.prototype;B.value=function(){if(this._value===undefined&&this._watching){var a=this._parent.value();this._value=a&&!z(a)?c(a,this._key):undefined}return this._value},B.destroy=function(){if(this._watching){var a=this._object;a&&w(a,this._key,this),this._watching=!1}},B.copy=function(a){var b=new A(null,null,a,this._separator),c=this._paths,d;for(d in c){if(c[d]<=0)continue;b.add(d)}return b},B.add=function(a){var b,c,d,f,g,h;h=this._paths,h[a]=(h[a]||0)+1,b=this.value(),c=e(b,a);if(c[0]&&c[0]===b)a=c[1],d=n(a),a=a.slice(d.length+1);else{if(!c[0]){x.push([this,a]),c.length=0;return}f=c[0],d=a.slice(0,0-(c[1].length+1)),g=a.slice(d.length,d.length+1),a=c[1]}c.length=0,this.chain(d,a,f,g)},B.remove=function(a){var b,c,d,f,g;g=this._paths,g[a]>0&&g[a]--,b=this.value(),c=e(b,a),c[0]===b?(a=c[1],d=n(a),a=a.slice(d.length+1)):(f=c[0],d=a.slice(0,0-(c[1].length+1)),a=c[1]),c.length=0,this.unchain(d,a)},B.count=0,B.chain=function(a,b,c,d){var e=this._chains,f;e||(e=this._chains={}),f=e[a],f||(f=e[a]=new A(this,a,c,d)),f.count++,b&&b.length>0&&(a=n(b),b=b.slice(a.length+1),f.chain(a,b))},B.unchain=function(a,b){var c=this._chains,d=c[a];b&&b.length>1&&(a=n(b),b=b.slice(a.length+1),d.unchain(a,b)),d.count--,d.count<=0&&(delete c[d._key],d.destroy())},B.willChange=function(){var a=this._chains;if(a)for(var b in a){if(!a.hasOwnProperty(b))continue;a[b].willChange()}this._parent&&this._parent.chainWillChange(this,this._key,1)},B.chainWillChange=function(a,b,c){this._key&&(b=this._key+this._separator+b),this._parent?this._parent.chainWillChange(this,b,c+1):(c>1&&Ember.propertyWillChange(this.value(),b),b="this."+b,this._paths[b]>0&&Ember.propertyWillChange(this.value(),b))},B.chainDidChange=function(a,b,c){this._key&&(b=this._key+this._separator+b),this._parent?this._parent.chainDidChange(this,b,c+1):(c>1&&Ember.propertyDidChange(this.value(),b),b="this."+b,this._paths[b]>0&&Ember.propertyDidChange(this.value(),b))},B.didChange=function(a){if(this._watching){var b=this._parent.value();b!==this._object&&(w(this._object,this._key,this),this._object=b,v(b,this._key,this)),this._value=undefined,this._parent&&this._parent._key==="@each"&&this.value()}var c=this._chains;if(c)for(var d in c){if(!c.hasOwnProperty(d))continue;c[d].didChange(a)}if(a)return;this._parent&&this._parent.chainDidChange(this,this._key,1)},Ember.overrideChains=function(a,b,c){D(a,c,b,"didChange",!0)},Ember.watch=function(a,c){if(c==="length"&&Ember.typeOf(a)==="array")return this;var d=b(a),e=d.watching,f;return e[c]?e[c]=(e[c]||0)+1:(e[c]=1,o(c)?(f=d.descs[c],f&&f.willWatch&&f.willWatch(a,c),"function"==typeof a.willWatchProperty&&a.willWatchProperty(c),l&&c in a&&(d.values[c]=a[c],m(a,c,{configurable:!0,enumerable:!0,set:function(){},get:function(){var a=this[g];return a&&a.values[c]}}))):C(a).add(c)),this},Ember.isWatching=function(b,c){var d=b[g];return(d&&d.watching[c])>0},Ember.watch.flushPending=y,Ember.unwatch=function(a,c){if(c==="length"&&Ember.typeOf(a)==="array")return this;var d=b(a),e=d.watching,f;return e[c]===1?(e[c]=0,o(c)?(f=d.descs[c],f&&f.didUnwatch&&f.didUnwatch(a,c),"function"==typeof a.didUnwatchProperty&&a.didUnwatchProperty(c),l&&c in a&&(m(a,c,{configurable:!0,enumerable:!0,writable:!0,value:d.values[c]}),delete d.values[c])):C(a).remove(c)):e[c]>1&&e[c]--,this},Ember.rewatch=function(a){var c=b(a,!1),d=c.chains;return f in a&&!a.hasOwnProperty(f)&&Ember.generateGuid(a,"ember"),d&&d.value()!==a&&(c.chains=d.copy(a)),this},Ember.finishChains=function(a){var c=b(a,!1),d=c.chains;d&&(d.value()!==a&&(c.chains=d=d.copy(a)),d.didChange(!0))},Ember.propertyWillChange=G,Ember.propertyDidChange=H;var I=[];Ember.destroy=function(a){var b=a[g],c,d,e,f;if(b){a[g]=null,c=b.chains;if(c){I.push(c);while(I.length>0){c=I.pop(),d=c._chains;if(d)for(e in d)d.hasOwnProperty(e)&&I.push(d[e]);c._watching&&(f=c._object,f&&w(f,c._key,c))}}}}}(),function(){function i(a,b,c){var d=b[c];return d?d.__emberproto__!==a&&(d=b[c]=e(d),d.__emberproto__=a):d=b[c]={__emberproto__:a},d}function j(a,b){var c=b.deps;return c?c.__emberproto__!==a&&(c=b.deps=e(c),c.__emberproto__=a):c=b.deps={__emberproto__:a},c}function k(a,b,c,d){var e=a._dependentKeys,f,h,k,l,m;if(!e)return;f=j(b,d);for(h=0,k=e.length;h<k;h++)l=e[h],m=i(b,f,l),m[c]=(m[c]||0)+1,g(b,l)}function l(a,b,c,d){var e=a._dependentKeys,f,g,k,l,m;if(!e)return;f=j(b,d);for(g=0,k=e.length;g<k;g++)l=e[g],m=i(b,f,l),m[c]=(m[c]||0)-1,h(b,l)}function m(a,b){this.func=a,this._cacheable=b&&b.cacheable!==undefined?b.cacheable:Ember.CP_DEFAULT_CACHEABLE,this._dependentKeys=b&&b.dependentKeys}var a=Ember.get,b=Ember.meta,c=Ember.guidFor,d=[].slice,e=Ember.create,f=Ember.META_KEY,g=Ember.watch,h=Ember.unwatch;Ember.ComputedProperty=m,m.prototype=new Ember.Descriptor;var n=m.prototype;n.cacheable=function(a){return this._cacheable=a!==!1,this},n.volatile=function(){return this.cacheable(!1)},n.property=function(){var a=[];for(var b=0,c=arguments.length;b<c;b++)a.push(arguments[b]);return this._dependentKeys=a,this},n.meta=function(a){return arguments.length===0?this._meta||{}:(this._meta=a,this)},n.willWatch=function(a,b){var c=a[f];b in c.cache||k(this,a,b,c)},n.didUnwatch=function(a,b){var c=a[f];b in c.cache||l(this,a,b,c)},n.didChange=function(a,c){if(this._cacheable&&this._suspended!==a){var d=b(a);c in d.cache&&(delete d.cache[c],d.watching[c]||l(this,a,c,d))}},n.get=function(a,c){var d,e,f;if(this._cacheable){f=b(a),e=f.cache;if(c in e)return e[c];d=e[c]=this.func.call(a,c),f.watching[c]||k(this,a,c,f)}else d=this.func.call(a,c);return d},n.set=function(a,c,d){var e=this._cacheable,f=b(a,e),g=f.watching[c],h=this._suspended,i,j;return this._suspended=a,g&&Ember.propertyWillChange(a,c),e&&c in f.cache&&(delete f.cache[c],i=!0),j=this.func.call(a,c,d),e&&(!g&&!i&&k(this,a,c,f),f.cache[c]=j),g&&Ember.propertyDidChange(a,c),this._suspended=h,j},n.setup=function(a,c){var d=a[f];d&&d.watching[c]&&k(this,a,c,b(a))},n.teardown=function(a,c){var d=b(a);return(d.watching[c]||c in d.cache)&&l(this,a,c,d),this._cacheable&&delete d.cache[c],null},Ember.computed=function(a){var b;arguments.length>1&&(b=d.call(arguments,0,-1),a=d.call(arguments,-1)[0]);var c=new m(a);return b&&c.property.apply(c,b),c},Ember.cacheFor=function(c,d){var e=b(c,!1).cache;if(e&&d in e)return e[d]},Ember.computed.not=function(b){return Ember.computed(b,function(c){return!a(this,b)}).cacheable()},Ember.computed.empty=function(b){return Ember.computed(b,function(c){var d=a(this,b);return d===undefined||d===null||d===""||Ember.isArray(d)&&a(d,"length")===0}).cacheable()},Ember.computed.bool=function(b){return Ember.computed(b,function(c){return!!a(this,b)}).cacheable()}}(),function(){function f(a,b,e,f){return c(a,["listeners",b,d(e)],f)}function g(a,c){var d=b(a,!1).listeners;return d?d[c]||!1:!1}function i(a,b,c,d){var e=g(a,b);if(!e)return!1;for(var f in e){if(h[f])continue;var i=e[f];if(i)for(var j in i){if(h[j])continue;var k=i[j];if(k&&c(k,d,a)===!0)return!0}}return!1}function j(a,b,c){var d=a.method,e=a.target;e||(e=c),"string"==typeof d&&(d=e[d]),b?d.apply(e,b):d.apply(e)}function k(a,b,c,e){!e&&"function"==typeof c&&(e=c,c=null);var g=f(a,b,c,!0),h=d(e);g[h]||(g[h]={target:c,method:e}),"function"==typeof a.didAddListener&&a.didAddListener(b,c,e)}function l(a,b,c,e){!e&&"function"==typeof c&&(e=c,c=null);var g=f(a,b,c,!0),h=d(e);g&&g[h]&&(g[h]=null),"function"==typeof a.didRemoveListener&&a.didRemoveListener(b,c,e)}function m(a,b,c,e,g){!e&&"function"==typeof c&&(e=c,c=null);var h=f(a,b,c,!0),i=d(e),j=h&&h[i];h[i]=null;try{return g.call(c)}finally{h[i]=j}}function n(a){var c=b(a,!1).listeners,d=[];if(c)for(var e in c)!h[e]&&c[e]&&d.push(e);return d}function o(a,b,c){return a!==Ember&&"function"==typeof a.sendEvent&&a.sendEvent(b,c),i(a,b,j,c),!0}function p(a,b,c){var d=[];return i(a,b,function(a){d.push(a)}),function(){if(a.isDestroyed)return;a!==Ember&&"function"==typeof a.sendEvent&&a.sendEvent(b,c);for(var e=0,f=d.length;e<f;++e)j(d[e],c,a)}}function q(a,b){if(i(a,b,function(){return!0}))return!0;var d=c(a,["listeners"],!0);return d[b]=null,!1}function r(a,b){var c=[];return i(a,b,function(a){c.push([a.target,a.method])}),c}var a=Ember.create,b=Ember.meta,c=Ember.metaPath,d=Ember.guidFor,e=[].slice,h={__ember_source__:!0};Ember.addListener=k,Ember.removeListener=l,Ember._suspendListener=m,Ember.sendEvent=o,Ember.hasListeners=q,Ember.watchedEvents=n,Ember.listenersFor=r,Ember.deferEvent=p}(),function(){function c(b,c,d,e){c===undefined&&(c=b,b=undefined),"string"==typeof c&&(c=b[c]),d&&e>0&&(d=d.length>e?a.call(d,e):null);if("function"!=typeof Ember.onerror)return c.apply(b||this,d||[]);try{return c.apply(b||this,d||[])}catch(f){Ember.onerror(f)}}function h(){g=null,f.currentRunLoop&&f.end()}function k(){j=null;var a=+(new Date),b=-1;for(var d in i){if(!i.hasOwnProperty(d))continue;var e=i[d];if(e&&e.expires)if(a>=e.expires)delete i[d],c(e.target,e.method,e.args,2);else if(b<0||e.expires<b)b=e.expires}b>0&&(j=setTimeout(k,b- +(new Date)))}function l(a,b){b[this.tguid]&&delete b[this.tguid][this.mguid],i[a]&&c(this.target,this.method,this.args,2),delete i[a]}function n(){m=null;for(var a in i){if(!i.hasOwnProperty(a))continue;var b=i[a];b.next&&(delete i[a],c(b.target,b.method,b.args,2))}}var a=[].slice,b=Ember.ArrayPolyfills.forEach,d,e=function(a){this._prev=a||null,this.onceTimers={}};e.prototype={end:function(){this.flush()},prev:function(){return this._prev},schedule:function(b,c,d){var e=this._queues,f;e||(e=this._queues={}),f=e[b],f||(f=e[b]=[]);var g=arguments.length>3?a.call(arguments,3):null;return f.push({target:c,method:d,args:g}),this},flush:function(a){function j(a){c(a.target,a.method,a.args)}var e,f,g,h,i;if(!this._queues)return this;Ember.watch.flushPending();if(a)while(this._queues&&(h=this._queues[a])){this._queues[a]=null;if(a==="sync"){i=Ember.LOG_BINDINGS,i&&Ember.Logger.log("Begin: Flush Sync Queue"),Ember.beginPropertyChanges();try{b.call(h,j)}finally{Ember.endPropertyChanges()}i&&Ember.Logger.log("End: Flush Sync Queue")}else b.call(h,j)}else{e=Ember.run.queues,g=e.length,f=0;a:while(f<g){a=e[f],h=this._queues&&this._queues[a],delete this._queues[a];if(h)if(a==="sync"){i=Ember.LOG_BINDINGS,i&&Ember.Logger.log("Begin: Flush Sync Queue"),Ember.beginPropertyChanges();try{b.call(h,j)}finally{Ember.endPropertyChanges()}i&&Ember.Logger.log("End: Flush Sync Queue")}else b.call(h,j);for(var k=0;k<=f;k++)if(this._queues&&this._queues[e[k]]){f=k;continue a}f++}}return d=null,this}},Ember.RunLoop=e,Ember.run=function(a,b){var d,e;f.begin();try{if(a||b)d=c(a,b,arguments,2)}finally{f.end()}return d};var f=Ember.run;Ember.run.begin=function(){f.currentRunLoop=new e(f.currentRunLoop)},Ember.run.end=function(){try{f.currentRunLoop.end()}finally{f.currentRunLoop=f.currentRunLoop.prev()}},Ember.run.queues=["sync","actions","destroy","timers"],Ember.run.schedule=function(a,b,c){var d=f.autorun();d.schedule.apply(d,arguments)};var g;Ember.run.hasScheduledTimers=function(){return!!(g||j||m)},Ember.run.cancelTimers=function(){g&&(clearTimeout(g),g=null),j&&(clearTimeout(j),j=null),m&&(clearTimeout(m),m=null),i={}},Ember.run.autorun=function(){return f.currentRunLoop||(f.begin(),g||(g=setTimeout(h,1))),f.currentRunLoop},Ember.run.sync=function(){f.autorun(),f.currentRunLoop.flush("sync")};var i={},j;Ember.run.later=function(b,c){var d,e,g,h,j;return arguments.length===2&&"function"==typeof b?(j=c,c=b,b=undefined,d=[b,c]):(d=a.call(arguments),j=d.pop()),e=+(new Date)+j,g={target:b,method:c,expires:e,args:d},h=Ember.guidFor(g),i[h]=g,f.once(i,k),h},Ember.run.once=function(b,c){var d=Ember.guidFor(b),e=Ember.guidFor(c),g=f.autorun().onceTimers,h=g[d]&&g[d][e],j;return h&&i[h]?i[h].args=a.call(arguments):(j={target:b,method:c,args:a.call(arguments),tguid:d,mguid:e},h=Ember.guidFor(j),i[h]=j,g[d]||(g[d]={}),g[d][e]=h,f.schedule("actions",j,l,h,g)),h};var m;Ember.run.next=function(b,c){var d,e={target:b,method:c,args:a.call(arguments),next:!0};return d=Ember.guidFor(e),i[d]=e,m||(m=setTimeout(n,1)),d},Ember.run.cancel=function(a){delete i[a]}}(),function(){function e(b,c){return a(d(c)?window:b,c)}function g(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])}Ember.LOG_BINDINGS=!!Ember.ENV.LOG_BINDINGS;var a=Ember.get,b=Ember.set,c=Ember.guidFor,d=Ember.isGlobalPath,f=function(a,b){this._direction="fwd",this._from=b,this._to=a,this._directionMap=Ember.Map.create()};f.prototype={copy:function(){var a=new f(this._to,this._from);return this._oneWay&&(a._oneWay=!0),a},from:function(a){return this._from=a,this},to:function(a){return this._to=a,this},oneWay:function(){return this._oneWay=!0,this},toString:function(){var a=this._oneWay?"[oneWay]":"";return"Ember.Binding<"+c(this)+">("+this._from+" -> "+this._to+")"+a},connect:function(a){var b=this._from,c=this._to;return Ember.trySet(a,c,e(a,b)),Ember.addObserver(a,b,this,this.fromDidChange),this._oneWay||Ember.addObserver(a,c,this,this.toDidChange),this._readyToSync=!0,this},disconnect:function(a){var b=!this._oneWay;return Ember.removeObserver(a,this._from,this,this.fromDidChange),b&&Ember.removeObserver(a,this._to,this,this.toDidChange),this._readyToSync=!1,this},fromDidChange:function(a){this._scheduleSync(a,"fwd")},toDidChange:function(a){this._scheduleSync(a,"back")},_scheduleSync:function(a,b){var c=this._directionMap,d=c.get(a);d||(Ember.run.schedule("sync",this,this._sync,a),c.set(a,b)),d==="back"&&b==="fwd"&&c.set(a,"fwd")},_sync:function(b){var c=Ember.LOG_BINDINGS;if(b.isDestroyed||!this._readyToSync)return;var d=this._directionMap,f=d.get(b),g=this._from,h=this._to;d.remove(b);if(f==="fwd"){var i=e(b,this._from);c&&Ember.Logger.log(" ",this.toString(),"->",i,b),this._oneWay?Ember.trySet(b,h,i):Ember._suspendObserver(b,h,this,this.toDidChange,function(){Ember.trySet(b,h,i)})}else if(f==="back"){var j=a(b,this._to);c&&Ember.Logger.log(" ",this.toString(),"<-",j,b),Ember._suspendObserver(b,g,this,this.fromDidChange,function(){Ember.trySet(Ember.isGlobalPath(g)?window:b,g,j)})}}},g(f,{from:function(){var a=this,b=new a;return b.from.apply(b,arguments)},to:function(){var a=this,b=new a;return b.to.apply(b,arguments)},oneWay:function(a,b){var c=this,d=new c(null,a);return d.oneWay(b)}}),Ember.Binding=f,Ember.bind=function(a,b,c){return(new Ember.Binding(b,c)).connect(a)},Ember.oneWay=function(a,b,c){return(new Ember.Binding(b,c)).oneWay().connect(a)}}(),function(){function o(a){var b=Ember.meta(a,!0),c=b.mixins;return c?c.__emberproto__!==a&&(c=b.mixins=l(c),c.__emberproto__=a):c=b.mixins={__emberproto__:a},c}function p(b,c){return c&&c.length>0&&(b.mixins=f.call(c,function(b){if(b instanceof a)return b;var c=new a;return c.properties=b,c})),b}function q(a){return"function"==typeof a&&a.isMethod!==!1&&a!==Boolean&&a!==Object&&a!==Number&&a!==Array&&a!==Date&&a!==String}function r(c,d,e,f,i){function v(a){delete e[a],delete f[a]}var j=c.length,k,l,m,o,p,s,t,u;for(k=0;k<j;k++){l=c[k];if(l instanceof a){m=n(l);if(d[m])continue;d[m]=l,o=l.properties}else o=l;if(o){u=f.concatenatedProperties||i.concatenatedProperties,o.concatenatedProperties&&(u=u?u.concat(o.concatenatedProperties):o.concatenatedProperties);for(s in o){if(!o.hasOwnProperty(s))continue;p=o[s];if(p instanceof Ember.Descriptor){if(p===b&&e[s])continue;e[s]=p,f[s]=undefined}else{if(q(p)){t=e[s]===undefined&&f[s],t||(t=i[s]),"function"!=typeof t&&(t=null);if(t){var w=p.__ember_observes__,x=p.__ember_observesBefore__;p=Ember.wrap(p,t),p.__ember_observes__=w,p.__ember_observesBefore__=x}}else if(u&&g.call(u,s)>=0||s==="concatenatedProperties"){var y=f[s]||i[s];p=y?y.concat(p):Ember.makeArray(p)}e[s]=undefined,f[s]=p}}o.hasOwnProperty("toString")&&(i.toString=o.toString)}else l.mixins&&(r(l.mixins,d,e,f,i),l._without&&h.call(l._without,v))}}function s(a){var b=Ember.meta(a),c=b.required;if(!c||c.__emberproto__!==a)c=b.required=c?l(c):{__ember_count__:0},c.__emberproto__=a;return c}function u(a,b,c,d){if(t.test(b)){var e=d.bindings;e?e.__emberproto__!==a&&(e=d.bindings=l(d.bindings),e.__emberproto__=a):e=d.bindings={__emberproto__:a},e[b]=c}}function v(a,b){var c=b.bindings,d,e,f;if(c){for(d in c)e=d!=="__emberproto__"&&c[d],e&&(f=d.slice(0,-7),e instanceof Ember.Binding?(e=e.copy(),e.to(f)):e=new Ember.Binding(f,e),e.connect(a),a[d]=e);b.bindings={__emberproto__:a}}}function w(a,b){return v(a,b||Ember.meta(a)),a}function x(a,d,e){var f={},g={},h=Ember.meta(a),i=h.required,j,l,n,p,q,t,v;r(d,o(a),f,g,a);for(j in g){if(j==="contructor")continue;if(!g.hasOwnProperty(j))continue;n=f[j],l=g[j];if(n===b)j in a||(i=s(a),i.__ember_count__++,i[j]=!0);else{while(n&&n instanceof c){var x=n.methodName;f[x]||g[x]?(l=g[x],n=f[x]):h.descs[x]?(n=h.descs[x],l=undefined):(n=undefined,l=a[x])}if(n===undefined&&l===undefined)continue;p=a[j];if("function"==typeof p)if(q=p.__ember_observesBefore__){t=q.length;for(v=0;v<t;v++)Ember.removeBeforeObserver(a,q[v],null,j)}else if(q=p.__ember_observes__){t=q.length;for(v=0;v<t;v++)Ember.removeObserver(a,q[v],null,j)}u(a,j,l,h),m(a,j,n,l,h);if("function"==typeof l)if(q=l.__ember_observesBefore__){t=q.length;for(v=0;v<t;v++)Ember.addBeforeObserver(a,q[v],null,j)}else if(q=l.__ember_observes__){t=q.length;for(v=0;v<t;v++)Ember.addObserver(a,q[v],null,j)}i&&i[j]&&(i=s(a),i.__ember_count__--,i[j]=!1)}}e||w(a,h);if(!e&&i&&i.__ember_count__>0){var y=[];for(j in i){if(k[j])continue;y.push(j)}}return a
+}function z(a,b,c){var d=n(a);if(c[d])return!1;c[d]=!0;if(a===b)return!0;var e=a.mixins,f=e?e.length:0;while(--f>=0)if(z(e[f],b,c))return!0;return!1}function A(a,b,c){if(c[n(b)])return;c[n(b)]=!0;if(b.properties){var d=b.properties;for(var e in d)d.hasOwnProperty(e)&&(a[e]=!0)}else b.mixins&&h.call(b.mixins,function(b){A(a,b,c)})}function D(a,b,c){var e=a.length;for(var f in b){if(!b.hasOwnProperty||!b.hasOwnProperty(f))continue;var g=b[f];a[e]=f;if(g&&g.toString===d)g[B]=a.join(".");else if(g&&C(g,"isNamespace")){if(c[n(g)])continue;c[n(g)]=!0,D(a,g,c)}}a.length=e}function E(){var a=Ember.Namespace,b,c;if(a.PROCESSED)return;for(var d in window){if(d==="globalStorage"&&window.StorageList&&window.globalStorage instanceof window.StorageList)continue;if(window.hasOwnProperty&&!window.hasOwnProperty(d))continue;try{b=window[d],c=b&&C(b,"isNamespace")}catch(e){continue}c&&(b[B]=d)}}var a,b,c,d,e,f=Ember.ArrayPolyfills.map,g=Ember.ArrayPolyfills.indexOf,h=Ember.ArrayPolyfills.forEach,i=[].slice,j={},k={__emberproto__:!0,__ember_count__:!0},l=Ember.create,m=Ember.defineProperty,n=Ember.guidFor,t=Ember.IS_BINDING=/^.+Binding$/;Ember.mixin=function(a){var b=i.call(arguments,1);return x(a,b,!1),a},Ember.Mixin=function(){return p(this,arguments)},a=Ember.Mixin,a._apply=x,a.applyPartial=function(a){var b=i.call(arguments,1);return x(a,b,!0)},a.finishPartial=w,a.create=function(){d.processed=!1;var a=this;return p(new a,arguments)};var y=a.prototype;y.reopen=function(){var b,c;this.properties?(b=a.create(),b.properties=this.properties,delete this.properties,this.mixins=[b]):this.mixins||(this.mixins=[]);var d=arguments.length,e=this.mixins,f;for(f=0;f<d;f++)b=arguments[f],b instanceof a?e.push(b):(c=a.create(),c.properties=b,e.push(c));return this},y.apply=function(a){return x(a,[this],!1)},y.applyPartial=function(a){return x(a,[this],!0)},y.detect=function(b){if(!b)return!1;if(b instanceof a)return z(b,this,{});var c=Ember.meta(b,!1).mixins;return c?!!c[n(this)]:!1},y.without=function(){var b=new a(this);return b._without=i.call(arguments),b},y.keys=function(){var a={},b={},c=[];A(a,this,b);for(var d in a)a.hasOwnProperty(d)&&c.push(d);return c};var B=Ember.GUID_KEY+"_name",C=Ember.get;Ember.identifyNamespaces=E,e=function(a){var b=a.superclass;if(b)return b[B]?b[B]:e(b);return},d=function(){var a=Ember.Namespace,b;if(a&&!this[B]&&!d.processed){a.PROCESSED||(E(),a.PROCESSED=!0),d.processed=!0;var c=a.NAMESPACES;for(var f=0,g=c.length;f<g;f++)b=c[f],D([b.toString()],b,{})}if(this[B])return this[B];var h=e(this);return h?"(subclass of "+h+")":"(unknown mixin)"},y.toString=d,a.mixins=function(a){var b=[],c=Ember.meta(a,!1).mixins,d,e;if(c)for(d in c){if(k[d])continue;e=c[d],e.properties||b.push(c[d])}return b},b=new Ember.Descriptor,b.toString=function(){return"(Required Property)"},Ember.required=function(){return b},c=function(a){this.methodName=a},c.prototype=new Ember.Descriptor,Ember.alias=function(a){return new c(a)},Ember.observer=function(a){var b=i.call(arguments,1);return a.__ember_observes__=b,a},Ember.immediateObserver=function(){for(var a=0,b=arguments.length;a<b;a++)var c=arguments[a];return Ember.observer.apply(this,arguments)},Ember.beforeObserver=function(a){var b=i.call(arguments,1);return a.__ember_observesBefore__=b,a}}(),function(){}(),function(){}(),function(){function e(b,c,d,f){var g,h,i;if("object"!=typeof b||b===null)return b;if(c&&(h=a(d,b))>=0)return f[h];if(Ember.typeOf(b)==="array"){g=b.slice();if(c){h=g.length;while(--h>=0)g[h]=e(g[h],c,d,f)}}else if(Ember.Copyable&&Ember.Copyable.detect(b))g=b.copy(c,d,f);else{g={};for(i in b){if(!b.hasOwnProperty(i))continue;g[i]=c?e(b[i],c,d,f):b[i]}}return c&&(d.push(b),f.push(g)),g}var a=Ember.EnumerableUtils.indexOf,b={},c="Boolean Number String Function Array Date RegExp Object".split(" ");Ember.ArrayPolyfills.forEach.call(c,function(a){b["[object "+a+"]"]=a.toLowerCase()});var d=Object.prototype.toString;Ember.typeOf=function(a){var c;return c=a===null||a===undefined?String(a):b[d.call(a)]||"object",c==="function"?Ember.Object&&Ember.Object.detect(a)&&(c="class"):c==="object"&&(a instanceof Error?c="error":Ember.Object&&a instanceof Ember.Object?c="instance":c="object"),c},Ember.none=function(a){return a===null||a===undefined},Ember.empty=function(a){return a===null||a===undefined||a.length===0&&typeof a!="function"},Ember.compare=function f(a,b){if(a===b)return 0;var c=Ember.typeOf(a),d=Ember.typeOf(b),e=Ember.Comparable;if(e){if(c==="instance"&&e.detect(a.constructor))return a.constructor.compare(a,b);if(d==="instance"&&e.detect(b.constructor))return 1-b.constructor.compare(b,a)}var g=Ember.ORDER_DEFINITION_MAPPING;if(!g){var h=Ember.ORDER_DEFINITION;g=Ember.ORDER_DEFINITION_MAPPING={};var i,j;for(i=0,j=h.length;i<j;++i)g[h[i]]=i;delete Ember.ORDER_DEFINITION}var k=g[c],l=g[d];if(k<l)return-1;if(k>l)return 1;switch(c){case"boolean":case"number":if(a<b)return-1;if(a>b)return 1;return 0;case"string":var m=a.localeCompare(b);if(m<0)return-1;if(m>0)return 1;return 0;case"array":var n=a.length,o=b.length,p=Math.min(n,o),q=0,r=0;while(q===0&&r<p)q=f(a[r],b[r]),r++;if(q!==0)return q;if(n<o)return-1;if(n>o)return 1;return 0;case"instance":if(Ember.Comparable&&Ember.Comparable.detect(a))return a.compare(a,b);return 0;case"date":var s=a.getTime(),t=b.getTime();if(s<t)return-1;if(s>t)return 1;return 0;default:return 0}},Ember.copy=function(a,b){return"object"!=typeof a||a===null?a:Ember.Copyable&&Ember.Copyable.detect(a)?a.copy(b):e(a,b,b?[]:null,b?[]:null)},Ember.inspect=function(a){var b,c=[];for(var d in a)if(a.hasOwnProperty(d)){b=a[d];if(b==="toString")continue;Ember.typeOf(b)==="function"&&(b="function() { ... }"),c.push(d+": "+b)}return"{"+c.join(" , ")+"}"},Ember.isEqual=function(a,b){return a&&"function"==typeof a.isEqual?a.isEqual(b):a===b},Ember.ORDER_DEFINITION=Ember.ENV.ORDER_DEFINITION||["undefined","null","boolean","number","string","array","object","instance","function","class","date"],Ember.keys=Object.keys,Ember.keys||(Ember.keys=function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c);return b}),Ember.Error=function(){var a=Error.prototype.constructor.apply(this,arguments);for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);this.message=a.message},Ember.Error.prototype=Ember.create(Error.prototype)}(),function(){var a=/[ _]/g,b={},c=/([a-z])([A-Z])/g,d=/(\-|_|\s)+(.)?/g,e=/([a-z\d])([A-Z]+)/g,f=/\-|\s+/g;Ember.STRINGS={},Ember.String={fmt:function(a,b){var c=0;return a.replace(/%@([0-9]+)?/g,function(a,d){return d=d?parseInt(d,0)-1:c++,a=b[d],(a===null?"(null)":a===undefined?"":a).toString()})},loc:function(a,b){return a=Ember.STRINGS[a]||a,Ember.String.fmt(a,b)},w:function(a){return a.split(/\s+/)},decamelize:function(a){return a.replace(c,"$1_$2").toLowerCase()},dasherize:function(c){var d=b,e=d[c];return e?e:(e=Ember.String.decamelize(c).replace(a,"-"),d[c]=e,e)},camelize:function(a){return a.replace(d,function(a,b,c){return c?c.toUpperCase():""})},classify:function(a){var b=Ember.String.camelize(a);return b.charAt(0).toUpperCase()+b.substr(1)},underscore:function(a){return a.replace(e,"$1_$2").replace(f,"_").toLowerCase()}}}(),function(){var a=Ember.String.fmt,b=Ember.String.w,c=Ember.String.loc,d=Ember.String.camelize,e=Ember.String.decamelize,f=Ember.String.dasherize,g=Ember.String.underscore;Ember.EXTEND_PROTOTYPES&&(String.prototype.fmt=function(){return a(this,arguments)},String.prototype.w=function(){return b(this)},String.prototype.loc=function(){return c(this,arguments)},String.prototype.camelize=function(){return d(this)},String.prototype.decamelize=function(){return e(this)},String.prototype.dasherize=function(){return f(this)},String.prototype.underscore=function(){return g(this)})}(),function(){var a=Array.prototype.slice;Ember.EXTEND_PROTOTYPES&&(Function.prototype.property=function(){var a=Ember.computed(this);return a.property.apply(a,arguments)},Function.prototype.observes=function(){return this.__ember_observes__=a.call(arguments),this},Function.prototype.observesBefore=function(){return this.__ember_observesBefore__=a.call(arguments),this})}(),function(){}(),function(){function f(){return e.length===0?{}:e.pop()}function g(a){return e.push(a),null}function h(b,c){function e(e){var f=a(e,b);return d?c===f:!!f}var d=arguments.length===2;return e}var a=Ember.get,b=Ember.set,c=Array.prototype.slice,d=Ember.EnumerableUtils.indexOf,e=[];Ember.Enumerable=Ember.Mixin.create({isEnumerable:!0,nextObject:Ember.required(Function),firstObject:Ember.computed(function(){if(a(this,"length")===0)return undefined;var b=f(),c;return c=this.nextObject(0,null,b),g(b),c}).property("[]").cacheable(),lastObject:Ember.computed(function(){var b=a(this,"length");if(b===0)return undefined;var c=f(),d=0,e,h=null;do h=e,e=this.nextObject(d++,h,c);while(e!==undefined);return g(c),h}).property("[]").cacheable(),contains:function(a){return this.find(function(b){return b===a})!==undefined},forEach:function(b,c){if(typeof b!="function")throw new TypeError;var d=a(this,"length"),e=null,h=f();c===undefined&&(c=null);for(var i=0;i<d;i++){var j=this.nextObject(i,e,h);b.call(c,j,i,this),e=j}return e=null,h=g(h),this},getEach:function(a){return this.mapProperty(a)},setEach:function(a,c){return this.forEach(function(d){b(d,a,c)})},map:function(a,b){var c=[];return this.forEach(function(d,e,f){c[e]=a.call(b,d,e,f)}),c},mapProperty:function(b){return this.map(function(c){return a(c,b)})},filter:function(a,b){var c=[];return this.forEach(function(d,e,f){a.call(b,d,e,f)&&c.push(d)}),c},filterProperty:function(a,b){return this.filter(h.apply(this,arguments))},find:function(b,c){var d=a(this,"length");c===undefined&&(c=null);var e=null,h,i=!1,j,k=f();for(var l=0;l<d&&!i;l++){h=this.nextObject(l,e,k);if(i=b.call(c,h,l,this))j=h;e=h}return h=e=null,k=g(k),j},findProperty:function(a,b){return this.find(h.apply(this,arguments))},every:function(a,b){return!this.find(function(c,d,e){return!a.call(b,c,d,e)})},everyProperty:function(a,b){return this.every(h.apply(this,arguments))},some:function(a,b){return!!this.find(function(c,d,e){return!!a.call(b,c,d,e)})},someProperty:function(a,b){return this.some(h.apply(this,arguments))},reduce:function(a,b,c){if(typeof a!="function")throw new TypeError;var d=b;return this.forEach(function(b,e){d=a.call(null,d,b,e,this,c)},this),d},invoke:function(a){var b,d=[];return arguments.length>1&&(b=c.call(arguments,1)),this.forEach(function(c,e){var f=c&&c[a];"function"==typeof f&&(d[e]=b?f.apply(c,b):f.call(c))},this),d},toArray:function(){var a=[];return this.forEach(function(b,c){a[c]=b}),a},compact:function(){return this.without(null)},without:function(a){if(!this.contains(a))return this;var b=[];return this.forEach(function(c){c!==a&&(b[b.length]=c)}),b},uniq:function(){var a=[];return this.forEach(function(b){d(a,b)<0&&a.push(b)}),a},"[]":Ember.computed(function(a,b){return this}).property().cacheable(),addEnumerableObserver:function(b,c){var d=c&&c.willChange||"enumerableWillChange",e=c&&c.didChange||"enumerableDidChange",f=a(this,"hasEnumerableObservers");return f||Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.addListener(this,"@enumerable:before",b,d),Ember.addListener(this,"@enumerable:change",b,e),f||Ember.propertyDidChange(this,"hasEnumerableObservers"),this},removeEnumerableObserver:function(b,c){var d=c&&c.willChange||"enumerableWillChange",e=c&&c.didChange||"enumerableDidChange",f=a(this,"hasEnumerableObservers");return f&&Ember.propertyWillChange(this,"hasEnumerableObservers"),Ember.removeListener(this,"@enumerable:before",b,d),Ember.removeListener(this,"@enumerable:change",b,e),f&&Ember.propertyDidChange(this,"hasEnumerableObservers"),this},hasEnumerableObservers:Ember.computed(function(){return Ember.hasListeners(this,"@enumerable:change")||Ember.hasListeners(this,"@enumerable:before")}).property().cacheable(),enumerableContentWillChange:function(b,c){var d,e,f;return"number"==typeof b?d=b:b?d=a(b,"length"):d=b=-1,"number"==typeof c?e=c:c?e=a(c,"length"):e=c=-1,f=e<0||d<0||e-d!==0,b===-1&&(b=null),c===-1&&(c=null),Ember.propertyWillChange(this,"[]"),f&&Ember.propertyWillChange(this,"length"),Ember.sendEvent(this,"@enumerable:before",[this,b,c]),this},enumerableContentDidChange:function(b,c){var d=this.propertyDidChange,e,f,g;return"number"==typeof b?e=b:b?e=a(b,"length"):e=b=-1,"number"==typeof c?f=c:c?f=a(c,"length"):f=c=-1,g=f<0||e<0||f-e!==0,b===-1&&(b=null),c===-1&&(c=null),Ember.sendEvent(this,"@enumerable:change",[this,b,c]),g&&Ember.propertyDidChange(this,"length"),Ember.propertyDidChange(this,"[]"),this}})}(),function(){function f(a){return a===null||a===undefined}var a=Ember.get,b=Ember.set,c=Ember.meta,d=Ember.EnumerableUtils.map,e=Ember.cacheFor;Ember.Array=Ember.Mixin.create(Ember.Enumerable,{isSCArray:!0,length:Ember.required(),objectAt:function(b){return b<0||b>=a(this,"length")?undefined:a(this,b)},objectsAt:function(a){var b=this;return d(a,function(a){return b.objectAt(a)})},nextObject:function(a){return this.objectAt(a)},"[]":Ember.computed(function(b,c){return c!==undefined&&this.replace(0,a(this,"length"),c),this}).property().cacheable(),firstObject:Ember.computed(function(){return this.objectAt(0)}).property().cacheable(),lastObject:Ember.computed(function(){return this.objectAt(a(this,"length")-1)}).property().cacheable(),contains:function(a){return this.indexOf(a)>=0},slice:function(b,c){var d=[],e=a(this,"length");f(b)&&(b=0);if(f(c)||c>e)c=e;while(b<c)d[d.length]=this.objectAt(b++);return d},indexOf:function(b,c){var d,e=a(this,"length");c===undefined&&(c=0),c<0&&(c+=e);for(d=c;d<e;d++)if(this.objectAt(d,!0)===b)return d;return-1},lastIndexOf:function(b,c){var d,e=a(this,"length");if(c===undefined||c>=e)c=e-1;c<0&&(c+=e);for(d=c;d>=0;d--)if(this.objectAt(d)===b)return d;return-1},addArrayObserver:function(b,c){var d=c&&c.willChange||"arrayWillChange",e=c&&c.didChange||"arrayDidChange",f=a(this,"hasArrayObservers");return f||Ember.propertyWillChange(this,"hasArrayObservers"),Ember.addListener(this,"@array:before",b,d),Ember.addListener(this,"@array:change",b,e),f||Ember.propertyDidChange(this,"hasArrayObservers"),this},removeArrayObserver:function(b,c){var d=c&&c.willChange||"arrayWillChange",e=c&&c.didChange||"arrayDidChange",f=a(this,"hasArrayObservers");return f&&Ember.propertyWillChange(this,"hasArrayObservers"),Ember.removeListener(this,"@array:before",b,d),Ember.removeListener(this,"@array:change",b,e),f&&Ember.propertyDidChange(this,"hasArrayObservers"),this},hasArrayObservers:Ember.computed(function(){return Ember.hasListeners(this,"@array:change")||Ember.hasListeners(this,"@array:before")}).property().cacheable(),arrayContentWillChange:function(b,c,d){b===undefined?(b=0,c=d=-1):(c===undefined&&(c=-1),d===undefined&&(d=-1)),Ember.isWatching(this,"@each")&&a(this,"@each"),Ember.sendEvent(this,"@array:before",[this,b,c,d]);var e,f;if(b>=0&&c>=0&&a(this,"hasEnumerableObservers")){e=[],f=b+c;for(var g=b;g<f;g++)e.push(this.objectAt(g))}else e=c;return this.enumerableContentWillChange(e,d),this},arrayContentDidChange:function(b,c,d){b===undefined?(b=0,c=d=-1):(c===undefined&&(c=-1),d===undefined&&(d=-1));var f,g;if(b>=0&&d>=0&&a(this,"hasEnumerableObservers")){f=[],g=b+d;for(var h=b;h<g;h++)f.push(this.objectAt(h))}else f=d;this.enumerableContentDidChange(c,f),Ember.sendEvent(this,"@array:change",[this,b,c,d]);var i=a(this,"length"),j=e(this,"firstObject"),k=e(this,"lastObject");return this.objectAt(0)!==j&&(Ember.propertyWillChange(this,"firstObject"),Ember.propertyDidChange(this,"firstObject")),this.objectAt(i-1)!==k&&(Ember.propertyWillChange(this,"lastObject"),Ember.propertyDidChange(this,"lastObject")),this},"@each":Ember.computed(function(){return this.__each||(this.__each=new Ember.EachProxy(this)),this.__each}).property().cacheable()})}(),function(){Ember.Comparable=Ember.Mixin.create({isComparable:!0,compare:Ember.required(Function)})}(),function(){var a=Ember.get,b=Ember.set;Ember.Copyable=Ember.Mixin.create({copy:Ember.required(Function),frozenCopy:function(){if(Ember.Freezable&&Ember.Freezable.detect(this))return a(this,"isFrozen")?this:this.copy().freeze();throw new Error(Ember.String.fmt("%@ does not support freezing",[this]))}})}(),function(){var a=Ember.get,b=Ember.set;Ember.Freezable=Ember.Mixin.create({isFrozen:!1,freeze:function(){return a(this,"isFrozen")?this:(b(this,"isFrozen",!0),this)}}),Ember.FROZEN_ERROR="Frozen object cannot be modified."}(),function(){var a=Ember.EnumerableUtils.forEach;Ember.MutableEnumerable=Ember.Mixin.create(Ember.Enumerable,{addObject:Ember.required(Function),addObjects:function(b){return Ember.beginPropertyChanges(this),a(b,function(a){this.addObject(a)},this),Ember.endPropertyChanges(this),this},removeObject:Ember.required(Function),removeObjects:function(b){return Ember.beginPropertyChanges(this),a(b,function(a){this.removeObject(a)},this),Ember.endPropertyChanges(this),this}})}(),function(){var a="Index out of range",b=[],c=Ember.get,d=Ember.set,e=Ember.EnumerableUtils.forEach;Ember.MutableArray=Ember.Mixin.create(Ember.Array,Ember.MutableEnumerable,{replace:Ember.required(),clear:function(){var a=c(this,"length");return a===0?this:(this.replace(0,a,b),this)},insertAt:function(b,d){if(b>c(this,"length"))throw new Error(a);return this.replace(b,0,[d]),this},removeAt:function(d,e){var f=0;if("number"==typeof d){if(d<0||d>=c(this,"length"))throw new Error(a);e===undefined&&(e=1),this.replace(d,e,b)}return this},pushObject:function(a){return this.insertAt(c(this,"length"),a),a},pushObjects:function(a){return this.replace(c(this,"length"),0,a),this},popObject:function(){var a=c(this,"length");if(a===0)return null;var b=this.objectAt(a-1);return this.removeAt(a-1,1),b},shiftObject:function(){if(c(this,"length")===0)return null;var a=this.objectAt(0);return this.removeAt(0),a},unshiftObject:function(a){return this.insertAt(0,a),a},unshiftObjects:function(a){return this.replace(0,0,a),this},reverseObjects:function(){var a=c(this,"length");if(a===0)return this;var b=this.toArray().reverse();return this.replace(0,a,b),this},removeObject:function(a){var b=c(this,"length")||0;while(--b>=0){var d=this.objectAt(b);d===a&&this.removeAt(b)}return this},addObject:function(a){return this.contains(a)||this.pushObject(a),this}})}(),function(){var a=Ember.get,b=Ember.set,c=Ember.defineProperty;Ember.Observable=Ember.Mixin.create({isObserverable:!0,get:function(b){return a(this,b)},getProperties:function(){var b={},c=arguments;arguments.length===1&&Ember.typeOf(arguments[0])==="array"&&(c=arguments[0]);for(var d=0;d<c.length;d++)b[c[d]]=a(this,c[d]);return b},set:function(a,c){return b(this,a,c),this},setProperties:function(a){return Ember.setProperties(this,a)},beginPropertyChanges:function(){return Ember.beginPropertyChanges(),this},endPropertyChanges:function(){return Ember.endPropertyChanges(),this},propertyWillChange:function(a){return Ember.propertyWillChange(this,a),this},propertyDidChange:function(a){return Ember.propertyDidChange(this,a),this},notifyPropertyChange:function(a){return this.propertyWillChange(a),this.propertyDidChange(a),this},addBeforeObserver:function(a,b,c){Ember.addBeforeObserver(this,a,b,c)},addObserver:function(a,b,c){Ember.addObserver(this,a,b,c)},removeObserver:function(a,b,c){Ember.removeObserver(this,a,b,c)},hasObserverFor:function(a){return Ember.hasListeners(this,a+":change")},unknownProperty:function(a){return undefined},setUnknownProperty:function(a,d){c(this,a),b(this,a,d)},getPath:function(a){return this.get(a)},setPath:function(a,b){return this.set(a,b)},getWithDefault:function(a,b){return Ember.getWithDefault(this,a,b)},incrementProperty:function(c,d){return d||(d=1),b(this,c,(a(this,c)||0)+d),a(this,c)},decrementProperty:function(c,d){return d||(d=1),b(this,c,(a(this,c)||0)-d),a(this,c)},toggleProperty:function(c){return b(this,c,!a(this,c)),a(this,c)},cacheFor:function(a){return Ember.cacheFor(this,a)},observersForKey:function(a){return Ember.observersFor(this,a)}})}(),function(){var a=Ember.get,b=Ember.set;Ember.TargetActionSupport=Ember.Mixin.create({target:null,action:null,targetObject:Ember.computed(function(){var b=a(this,"target");if(Ember.typeOf(b)==="string"){var c=a(this,b);return c===undefined&&(c=a(window,b)),c}return b}).property("target").cacheable(),triggerAction:function(){var b=a(this,"action"),c=a(this,"targetObject");if(c&&b){var d;return typeof c.send=="function"?d=c.send(b,this):(typeof b=="string"&&(b=c[b]),d=b.call(c,this)),d!==!1&&(d=!0),d}return!1}})}(),function(){Ember.Evented=Ember.Mixin.create({on:function(a,b,c){Ember.addListener(this,a,b,c)},one:function(a,b,c){c||(c=b,b=null);var d=this,e=function(){Ember.removeListener(d,a,b,e),"string"==typeof c&&(c=this[c]),c.apply(this,arguments)};this.on(a,b,e)},trigger:function(a){var b=[],c,d;for(c=1,d=arguments.length;c<d;c++)b.push(arguments[c]);Ember.sendEvent(this,a,b)},fire:function(a){this.trigger.apply(this,arguments)},off:function(a,b,c){Ember.removeListener(this,a,b,c)},has:function(a){return Ember.hasListeners(this,a)}})}(),function(){}(),function(){function m(){var b=!1,c,d=function(){b||d.proto();var a=Ember.meta(this);a.proto=this,c&&(this.reopen.apply(this,c),c=null),e(this,Ember.GUID_KEY,l),e(this,"_super",l),j(this,a),delete a.proto,i(this),this.init.apply(this,arguments)};return d.toString=a,d.willReopen=function(){b&&(d.PrototypeMixin=Ember.Mixin.create(d.PrototypeMixin)),b=!1},d._initMixins=function(a){c=a},d.proto=function(){var a=d.superclass;return a&&a.proto(),b||(b=!0,d.PrototypeMixin.applyPartial(d.prototype),h(d.prototype)),this.prototype},d}var a=Ember.Mixin.prototype.toString,b=Ember.set,c=Ember.get,d=Ember.create,e=Ember.platform.defineProperty,f=Array.prototype.slice,g=Ember.meta,h=Ember.rewatch,i=Ember.finishChains,j=Ember.Mixin.finishPartial,k=Ember.Mixin.prototype.reopen,l={configurable:!0,writable:!0,enumerable:!1,value:undefined},n=m();n.PrototypeMixin=Ember.Mixin.create({reopen:function(){return Ember.Mixin._apply(this,arguments,!0),this},isInstance:!0,init:function(){},isDestroyed:!1,isDestroying:!1,destroy:function(){if(this.isDestroying)return;return this.isDestroying=!0,this.willDestroy&&this.willDestroy(),b(this,"isDestroyed",!0),Ember.run.schedule("destroy",this,this._scheduledDestroy),this},_scheduledDestroy:function(){Ember.destroy(this),this.didDestroy&&this.didDestroy()},bind:function(a,b){return b instanceof Ember.Binding||(b=Ember.Binding.from(b)),b.to(a).connect(this),b},toString:function(){return"<"+this.constructor.toString()+":"+Ember.guidFor(this)+">"}}),Ember.config.overridePrototypeMixin&&Ember.config.overridePrototypeMixin(n.PrototypeMixin),n.__super__=null;var o=Ember.Mixin.create({ClassMixin:Ember.required(),PrototypeMixin:Ember.required(),isClass:!0,isMethod:!1,extend:function(){var a=m(),b;return a.ClassMixin=Ember.Mixin.create(this.ClassMixin),a.PrototypeMixin=Ember.Mixin.create(this.PrototypeMixin),a.ClassMixin.ownerConstructor=a,a.PrototypeMixin.ownerConstructor=a,k.apply(a.PrototypeMixin,arguments),a.superclass=this,a.__super__=this.prototype,b=a.prototype=d(this.prototype),b.constructor=a,Ember.generateGuid(b,"ember"),g(b).proto=b,a.ClassMixin.apply(a),a},create:function(){var a=this;return arguments.length>0&&this._initMixins(arguments),new a},reopen:function(){return this.willReopen(),k.apply(this.PrototypeMixin,arguments),this},reopenClass:function(){return k.apply(this.ClassMixin,arguments),Ember.Mixin._apply(this,arguments,!1),this},detect:function(a){if("function"!=typeof a)return!1;while(a){if(a===this)return!0;a=a.superclass}return!1},detectInstance:function(a){return a instanceof this},metaForProperty:function(a){var b=g(this.proto(),!1).descs[a];return b._meta||{}},eachComputedProperty:function(a,b){var c=this.proto(),d=g(c).descs,e={},f;for(var h in d)f=d[h],f instanceof Ember.ComputedProperty&&a.call(b||this,h,f._meta||e)}});Ember.config.overrideClassMixin&&Ember.config.overrideClassMixin(o),n.ClassMixin=o,o.apply(n),Ember.CoreObject=n}(),function(){var a=Ember.get,b=Ember.set,c=Ember.guidFor,d=Ember.none;Ember.Set=Ember.CoreObject.extend(Ember.MutableEnumerable,Ember.Copyable,Ember.Freezable,{length:0,clear:function(){if(this.isFrozen)throw new Error(Ember.FROZEN_ERROR);var d=a(this,"length");if(d===0)return this;var e;this.enumerableContentWillChange(d,0),Ember.propertyWillChange(this,"firstObject"),Ember.propertyWillChange(this,"lastObject");for(var f=0;f<d;f++)e=c(this[f]),delete this[e],delete this[f];return b(this,"length",0),Ember.propertyDidChange(this,"firstObject"),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(d,0),this},isEqual:function(b){if(!Ember.Enumerable.detect(b))return!1;var c=a(this,"length");if(a(b,"length")!==c)return!1;while(--c>=0)if(!b.contains(this[c]))return!1;return!0},add:Ember.alias("addObject"),remove:Ember.alias("removeObject"),pop:function(){if(a(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);var b=this.length>0?this[this.length-1]:null;return this.remove(b),b},push:Ember.alias("addObject"),shift:Ember.alias("pop"),unshift:Ember.alias("push"),addEach:Ember.alias("addObjects"),removeEach:Ember.alias("removeObjects"),init:function(a){this._super(),a&&this.addObjects(a)},nextObject:function(a){return this[a]},firstObject:Ember.computed(function(){return this.length>0?this[0]:undefined}).property().cacheable(),lastObject:Ember.computed(function(){return this.length>0?this[this.length-1]:undefined}).property().cacheable(),addObject:function(e){if(a(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(d(e))return this;var f=c(e),g=this[f],h=a(this,"length"),i;return g>=0&&g<h&&this[g]===e?this:(i=[e],this.enumerableContentWillChange(null,i),Ember.propertyWillChange(this,"lastObject"),h=a(this,"length"),this[f]=h,this[h]=e,b(this,"length",h+1),Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(null,i),this)},removeObject:function(e){if(a(this,"isFrozen"))throw new Error(Ember.FROZEN_ERROR);if(d(e))return this;var f=c(e),g=this[f],h=a(this,"length"),i=g===0,j=g===h-1,k,l;return g>=0&&g<h&&this[g]===e&&(l=[e],this.enumerableContentWillChange(l,null),i&&Ember.propertyWillChange(this,"firstObject"),j&&Ember.propertyWillChange(this,"lastObject"),g<h-1&&(k=this[h-1],this[g]=k,this[c(k)]=g),delete this[f],delete this[h-1],b(this,"length",h-1),i&&Ember.propertyDidChange(this,"firstObject"),j&&Ember.propertyDidChange(this,"lastObject"),this.enumerableContentDidChange(l,null)),this},contains:function(a){return this[c(a)]>=0},copy:function(){var d=this.constructor,e=new d,f=a(this,"length");b(e,"length",f);while(--f>=0)e[f]=this[f],e[c(this[f])]=f;return e},toString:function(){var a=this.length,b,c=[];for(b=0;b<a;b++)c[b]=this[b];return"Ember.Set<%@>".fmt(c.join(","))}})}(),function(){Ember.Object=Ember.CoreObject.extend(Ember.Observable)}(),function(){var a=Ember.ArrayPolyfills.indexOf;Ember.Namespace=Ember.Object.extend({isNamespace:!0,init:function(){Ember.Namespace.NAMESPACES.push(this),Ember.Namespace.PROCESSED=!1},toString:function(){return Ember.identifyNamespaces(),this[Ember.GUID_KEY+"_name"]},destroy:function(){var b=Ember.Namespace.NAMESPACES;window[this.toString()]=undefined,b.splice(a.call(b,this),1),this._super()}}),Ember.Namespace.NAMESPACES=[Ember],Ember.Namespace.PROCESSED=!1}(),function(){Ember.Application=Ember.Namespace.extend()}(),function(){var a=Ember.get,b=Ember.set;Ember.ArrayProxy=Ember.Object.extend(Ember.MutableArray,{content:null,arrangedContent:Ember.computed("content",function(){return a(this,"content")}).cacheable(),objectAtContent:function(b){return a(this,"arrangedContent").objectAt(b)},replaceContent:function(b,c,d){a(this,"arrangedContent").replace(b,c,d)},_contentWillChange:Ember.beforeObserver(function(){var b=a(this,"content");b&&b.removeArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},"content"),contentArrayWillChange:Ember.K,contentArrayDidChange:Ember.K,_contentDidChange:Ember.observer(function(){var b=a(this,"content"),c=b?a(b,"length"):0;b&&b.addArrayObserver(this,{willChange:"contentArrayWillChange",didChange:"contentArrayDidChange"})},"content"),_arrangedContentWillChange:Ember.beforeObserver(function(){var b=a(this,"arrangedContent"),c=b?a(b,"length"):0;this.arrangedContentArrayWillChange(this,0,c,undefined),b&&b.removeArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"})},"arrangedContent"),_arrangedContentDidChange:Ember.observer(function(){var b=a(this,"arrangedContent"),c=b?a(b,"length"):0;b&&b.addArrayObserver(this,{willChange:"arrangedContentArrayWillChange",didChange:"arrangedContentArrayDidChange"}),this.arrangedContentArrayDidChange(this,0,undefined,c)},"arrangedContent"),objectAt:function(b){return a(this,"content")&&this.objectAtContent(b)},length:Ember.computed(function(){var b=a(this,"arrangedContent");return b?a(b,"length"):0}).property().cacheable(),replace:function(b,c,d){return a(this,"content")&&this.replaceContent(b,c,d),this},arrangedContentArrayWillChange:function(a,b,c,d){this.arrayContentWillChange(b,c,d)},arrangedContentArrayDidChange:function(a,b,c,d){this.arrayContentDidChange(b,c,d)},init:function(){this._super(),this._contentWillChange(),this._contentDidChange(),this._arrangedContentWillChange(),this._arrangedContentDidChange()}})}(),function(){function j(a,b){var c=b.slice(8);if(c in this)return;h(this,c)}function k(a,b){var c=b.slice(8);if(c in this)return;i(this,c)}var a=Ember.get,b=Ember.set,c=Ember.String.fmt,d=Ember.addBeforeObserver,e=Ember.addObserver,f=Ember.removeBeforeObserver,g=Ember.removeObserver,h=Ember.propertyWillChange,i=Ember.propertyDidChange;Ember.ObjectProxy=Ember.Object.extend({content:null,_contentDidChange:Ember.observer(function(){},"content"),willWatchProperty:function(a){var b="content."+a;d(this,b,null,j),e(this,b,null,k)},didUnwatchProperty:function(a){var b="content."+a;f(this,b,null,j),g(this,b,null,k)},unknownProperty:function(b){var c=a(this,"content");if(c)return a(c,b)},setUnknownProperty:function(c,d){var e=a(this,"content");return b(e,c,d)}})}(),function(){function g(a,b,d,e,f){var g=d._objects,h;g||(g=d._objects={});while(--f>=e){var i=a.objectAt(f);i&&(Ember.addBeforeObserver(i,b,d,"contentKeyWillChange"),Ember.addObserver(i,b,d,"contentKeyDidChange"),h=c(i),g[h]||(g[h]=[]),g[h].push(f))}}function h(a,b,d,e,f){var g=d._objects;g||(g=d._objects={});var h,i;while(--f>=e){var j=a.objectAt(f);j&&(Ember.removeBeforeObserver(j,b,d,"contentKeyWillChange"),Ember.removeObserver(j,b,d,"contentKeyDidChange"),i=c(j),h=g[i],h[h.indexOf(f)]=null)}}var a=Ember.set,b=Ember.get,c=Ember.guidFor,d=Ember.EnumerableUtils.forEach,e=Ember.Object.extend(Ember.Array,{init:function(a,b,c){this._super(),this._keyName=b,this._owner=c,this._content=a},objectAt:function(a){var c=this._content.objectAt(a);return c&&b(c,this._keyName)},length:Ember.computed(function(){var a=this._content;return a?b(a,"length"):0}).property().cacheable()}),f=/^.+:(before|change)$/;Ember.EachProxy=Ember.Object.extend({init:function(a){this._super(),this._content=a,a.addArrayObserver(this),d(Ember.watchedEvents(this),function(a){this.didAddListener(a)},this)},unknownProperty:function(a,b){var c;return c=new e(this._content,a,this),Ember.defineProperty(this,a,null,c),this.beginObservingContentKey(a),c},arrayWillChange:function(a,b,c,d){var e=this._keys,f,g,i;i=c>0?b+c:-1,Ember.beginPropertyChanges(this);for(f in e){if(!e.hasOwnProperty(f))continue;i>0&&h(a,f,this,b,i),Ember.propertyWillChange(this,f)}Ember.propertyWillChange(this._content,"@each"),Ember.endPropertyChanges(this)},arrayDidChange:function(a,b,c,d){var e=this._keys,f,h,i;i=d>0?b+d:-1,Ember.beginPropertyChanges(this);for(f in e){if(!e.hasOwnProperty(f))continue;i>0&&g(a,f,this,b,i),Ember.propertyDidChange(this,f)}Ember.propertyDidChange(this._content,"@each"),Ember.endPropertyChanges(this)},didAddListener:function(a){f.test(a)&&this.beginObservingContentKey(a.slice(0,-7))},didRemoveListener:function(a){f.test(a)&&this.stopObservingContentKey(a.slice(0,-7))},beginObservingContentKey:function(a){var c=this._keys;c||(c=this._keys={});if(!c[a]){c[a]=1;var d=this._content,e=b(d,"length");g(d,a,this,0,e)}else c[a]++},stopObservingContentKey:function(a){var c=this._keys;if(c&&c[a]>0&&--c[a]<=0){var d=this._content,e=b(d,"length");h(d,a,this,0,e)}},contentKeyWillChange:function(a,b){Ember.propertyWillChange(this,b)},contentKeyDidChange:function(a,b){Ember.propertyDidChange(this,b)}})}(),function(){var a=Ember.get,b=Ember.set,c=Ember.Mixin.create(Ember.MutableArray,Ember.Observable,Ember.Copyable,{get:function(a){return a==="length"?this.length:"number"==typeof a?this[a]:this._super(a)},objectAt:function(a){return this[a]},replace:function(b,c,d){if(this.isFrozen)throw Ember.FROZEN_ERROR;var e=
+d?a(d,"length"):0;this.arrayContentWillChange(b,c,e);if(!d||d.length===0)this.splice(b,c);else{var f=[b,c].concat(d);this.splice.apply(this,f)}return this.arrayContentDidChange(b,c,e),this},unknownProperty:function(a,b){var c;return b!==undefined&&c===undefined&&(c=this[a]=b),c},indexOf:function(a,b){var c,d=this.length;b===undefined?b=0:b=b<0?Math.ceil(b):Math.floor(b),b<0&&(b+=d);for(c=b;c<d;c++)if(this[c]===a)return c;return-1},lastIndexOf:function(a,b){var c,d=this.length;b===undefined?b=d-1:b=b<0?Math.ceil(b):Math.floor(b),b<0&&(b+=d);for(c=b;c>=0;c--)if(this[c]===a)return c;return-1},copy:function(){return this.slice()}}),d=["length"];Ember.EnumerableUtils.forEach(c.keys(),function(a){Array.prototype[a]&&d.push(a)}),d.length>0&&(c=c.without.apply(c,d)),Ember.NativeArray=c,Ember.A=function(a){return a===undefined&&(a=[]),Ember.NativeArray.apply(a)},Ember.NativeArray.activate=function(){c.apply(Array.prototype),Ember.A=function(a){return a||[]}},Ember.EXTEND_PROTOTYPES&&Ember.NativeArray.activate()}(),function(){var a=Ember.get,b=Ember.set;Ember._PromiseChain=Ember.Object.extend({promises:null,failureCallback:Ember.K,successCallback:Ember.K,abortCallback:Ember.K,promiseSuccessCallback:Ember.K,runNextPromise:function(){if(a(this,"isDestroyed"))return;var b=a(this,"promises").shiftObject();if(b){var c=a(b,"promise")||b,d=this,e=function(){d.promiseSuccessCallback.call(this,b,arguments),d.runNextPromise()},f=a(d,"failureCallback");c.then(e,f)}else this.successCallback()},start:function(){return this.runNextPromise(),this},abort:function(){this.abortCallback(),this.destroy()},init:function(){b(this,"promises",Ember.A(a(this,"promises"))),this._super()}})}(),function(){var a={},b={};Ember.onLoad=function(c,d){var e;a[c]=a[c]||Ember.A(),a[c].pushObject(d),(e=b[c])&&d(e)},Ember.runLoadHooks=function(c,d){var e;b[c]=d,(e=a[c])&&a[c].forEach(function(a){a(d)})}}(),function(){}(),function(){Ember.ControllerMixin=Ember.Mixin.create({target:null,store:null}),Ember.Controller=Ember.Object.extend(Ember.ControllerMixin)}(),function(){var a=Ember.get,b=Ember.set,c=Ember.EnumerableUtils.forEach;Ember.SortableMixin=Ember.Mixin.create(Ember.MutableEnumerable,{sortProperties:null,sortAscending:!0,addObject:function(b){var c=a(this,"content");c.pushObject(b)},removeObject:function(b){var c=a(this,"content");c.removeObject(b)},orderBy:function(b,d){var e=0,f=a(this,"sortProperties"),g=a(this,"sortAscending");return c(f,function(c){e===0&&(e=Ember.compare(a(b,c),a(d,c)),e!==0&&!g&&(e=-1*e))}),e},destroy:function(){var b=a(this,"content"),d=a(this,"sortProperties");return b&&d&&c(b,function(a){c(d,function(b){Ember.removeObserver(a,b,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},isSorted:Ember.computed("sortProperties",function(){return!!a(this,"sortProperties")}),arrangedContent:Ember.computed("content","sortProperties.@each",function(b,d){var e=a(this,"content"),f=a(this,"isSorted"),g=a(this,"sortProperties"),h=this;return e&&f?(e=e.slice(),e.sort(function(a,b){return h.orderBy(a,b)}),c(e,function(a){c(g,function(b){Ember.addObserver(a,b,this,"contentItemSortPropertyDidChange")},this)},this),Ember.A(e)):e}).cacheable(),_contentWillChange:Ember.beforeObserver(function(){var b=a(this,"content"),d=a(this,"sortProperties");b&&d&&c(b,function(a){c(d,function(b){Ember.removeObserver(a,b,this,"contentItemSortPropertyDidChange")},this)},this),this._super()},"content"),sortAscendingWillChange:Ember.beforeObserver(function(){this._lastSortAscending=a(this,"sortAscending")},"sortAscending"),sortAscendingDidChange:Ember.observer(function(){if(a(this,"sortAscending")!==this._lastSortAscending){var b=a(this,"arrangedContent");b.reverseObjects()}},"sortAscending"),contentArrayWillChange:function(b,d,e,f){var g=a(this,"isSorted");if(g){var h=a(this,"arrangedContent"),i=b.slice(d,d+e),j=a(this,"sortProperties");c(i,function(a){h.removeObject(a),c(j,function(b){Ember.removeObserver(a,b,this,"contentItemSortPropertyDidChange")},this)})}return this._super(b,d,e,f)},contentArrayDidChange:function(b,d,e,f){var g=a(this,"isSorted"),h=a(this,"sortProperties");if(g){var i=b.slice(d,d+f),j=a(this,"arrangedContent");c(i,function(a){this.insertItemSorted(a),c(h,function(b){Ember.addObserver(a,b,this,"contentItemSortPropertyDidChange")},this)},this)}return this._super(b,d,e,f)},insertItemSorted:function(b){var c=a(this,"arrangedContent"),d=a(c,"length"),e=this._binarySearch(b,0,d);c.insertAt(e,b)},contentItemSortPropertyDidChange:function(b){var c=a(this,"arrangedContent"),d=c.indexOf(b);c.removeObject(b),this.insertItemSorted(b)},_binarySearch:function(b,c,d){var e,f,g,h;return c===d?c:(h=a(this,"arrangedContent"),e=c+Math.floor((d-c)/2),f=h.objectAt(e),g=this.orderBy(f,b),g<0?this._binarySearch(b,e+1,d):g>0?this._binarySearch(b,c,e):e)}})}(),function(){var a=Ember.get,b=Ember.set;Ember.ArrayController=Ember.ArrayProxy.extend(Ember.ControllerMixin,Ember.SortableMixin)}(),function(){Ember.ObjectController=Ember.ObjectProxy.extend(Ember.ControllerMixin)}(),function(){}(),function(){}(),function(){var a=Ember.get,b=Ember.set;Ember.Application=Ember.Namespace.extend({rootElement:"body",eventDispatcher:null,customEvents:null,init:function(){var c,d=a(this,"rootElement");this._super(),c=Ember.EventDispatcher.create({rootElement:d}),b(this,"eventDispatcher",c);if(Ember.$.isReady)Ember.run.once(this,this.didBecomeReady);else{var e=this;Ember.$(document).ready(function(){Ember.run.once(e,e.didBecomeReady)})}},initialize:function(c){var d=Ember.A(Ember.keys(this)),e=a(this.constructor,"injections"),f=this,g,h;!c&&Ember.Router.detect(f.Router)&&(c=f.Router.create(),this._createdRouter=c),c&&(b(this,"router",c),b(c,"namespace",this)),Ember.runLoadHooks("application",this),e.forEach(function(a){d.forEach(function(b){a[1](f,c,b)})}),c&&c instanceof Ember.Router&&this.startRouting(c)},didBecomeReady:function(){var b=a(this,"eventDispatcher"),c=a(this,"customEvents");b.setup(c),this.ready()},startRouting:function(b){var c=a(b,"location"),d=a(this,"rootElement"),e=a(b,"applicationController"),f=this.ApplicationView.create({controller:e});this._createdApplicationView=f,f.appendTo(d),b.route(c.getURL()),c.onUpdateURL(function(a){b.route(a)})},ready:Ember.K,willDestroy:function(){a(this,"eventDispatcher").destroy(),this._createdRouter&&this._createdRouter.destroy(),this._createdApplicationView&&this._createdApplicationView.destroy()},registerInjection:function(a){this.constructor.registerInjection(a)}}),Ember.Application.reopenClass({concatenatedProperties:["injections"],injections:Ember.A(),registerInjection:function(b){var c=a(this,"injections"),d=b.before,e=b.name,f=b.injection,g;d?(g=c.find(function(a){if(a[0]===d)return!0}),g=c.indexOf(g)):g=a(c,"length"),c.splice(g,0,[e,f])}}),Ember.Application.registerInjection({name:"controllers",injection:function(a,b,c){if(!/^[A-Z].*Controller$/.test(c))return;var d=c.charAt(0).toLowerCase()+c.substr(1),e=a[c].create();b.set(d,e),e.setProperties({target:b,controllers:b,namespace:a})}})}(),function(){var a=Ember.get,b=Ember.set;Ember.Location={create:function(a){var b=a&&a.implementation,c=this.implementations[b];return c.create.apply(c,arguments)},registerImplementation:function(a,b){this.implementations[a]=b},implementations:{}}}(),function(){var a=Ember.get,b=Ember.set;Ember.HashLocation=Ember.Object.extend({init:function(){b(this,"location",a(this,"location")||window.location)},getURL:function(){return a(this,"location").hash.substr(1)},setURL:function(c){a(this,"location").hash=c,b(this,"lastSetURL",c)},onUpdateURL:function(c){var d=this,e=Ember.guidFor(this);Ember.$(window).bind("hashchange.ember-location-"+e,function(){var e=location.hash.substr(1);if(a(d,"lastSetURL")===e)return;b(d,"lastSetURL",null),c(location.hash.substr(1))})},formatURL:function(a){return"#"+a},willDestroy:function(){var a=Ember.guidFor(this);Ember.$(window).unbind("hashchange.ember-location-"+a)}}),Ember.Location.registerImplementation("hash",Ember.HashLocation)}(),function(){var a=Ember.get,b=Ember.set;Ember.HistoryLocation=Ember.Object.extend({init:function(){b(this,"location",a(this,"location")||window.location),b(this,"_initialURL",a(this,"location").pathname)},rootURL:"/",_initialURL:null,getURL:function(){return a(this,"location").pathname},setURL:function(b){var c=window.history.state,d=a(this,"_initialURL");b=this.formatPath(b),(d!==b&&!c||c&&c.path!==b)&&window.history.pushState({path:b},null,b)},onUpdateURL:function(a){var b=Ember.guidFor(this);Ember.$(window).bind("popstate.ember-location-"+b,function(b){a(location.pathname)})},formatPath:function(b){var c=a(this,"rootURL");return b!==""&&(c=c.replace(/\/$/,"")),c+b},formatURL:function(a){return a},willDestroy:function(){var a=Ember.guidFor(this);Ember.$(window).unbind("popstate.ember-location-"+a)}}),Ember.Location.registerImplementation("history",Ember.HistoryLocation)}(),function(){var a=Ember.get,b=Ember.set;Ember.NoneLocation=Ember.Object.extend({path:"",getURL:function(){return a(this,"path")},setURL:function(a){b(this,"path",a)},onUpdateURL:function(a){},formatURL:function(a){return a}}),Ember.Location.registerImplementation("none",Ember.NoneLocation)}(),function(){}(),function(){}(),function(){Ember.$=window.jQuery}(),function(){var a=Ember.String.w("dragstart drag dragenter dragleave dragover drop dragend");Ember.EnumerableUtils.forEach(a,function(a){Ember.$.event.fixHooks[a]={props:["dataTransfer"]}})}(),function(){var a=Ember.get,b=Ember.set,c=Ember.ArrayPolyfills.indexOf,d=function(){this.seen={},this.list=[]};d.prototype={add:function(a){if(a in this.seen)return;this.seen[a]=!0,this.list.push(a)},toDOM:function(){return this.list.join(" ")}},Ember.RenderBuffer=function(a){return new Ember._RenderBuffer(a)},Ember._RenderBuffer=function(a){this.elementTag=a,this.childBuffers=[]},Ember._RenderBuffer.prototype={elementClasses:null,elementId:null,elementAttributes:null,elementTag:null,elementStyle:null,parentBuffer:null,push:function(a){return this.childBuffers.push(String(a)),this},addClass:function(a){var b=this.elementClasses=this.elementClasses||new d;return this.elementClasses.add(a),this},id:function(a){return this.elementId=a,this},attr:function(a,b){var c=this.elementAttributes=this.elementAttributes||{};return arguments.length===1?c[a]:(c[a]=b,this)},removeAttr:function(a){var b=this.elementAttributes;return b&&delete b[a],this},style:function(a,b){var c=this.elementStyle=this.elementStyle||{};return this.elementStyle[a]=b,this},newBuffer:function(a,b,c,d){var e=new Ember._RenderBuffer(a);return e.parentBuffer=b,d&&Ember.$.extend(e,d),c&&c.call(this,e),e},replaceWithBuffer:function(a){var b=this.parentBuffer;if(!b)return;var d=b.childBuffers,e=c.call(d,this);a?d.splice(e,1,a):d.splice(e,1)},begin:function(a){return this.newBuffer(a,this,function(a){this.childBuffers.push(a)})},prepend:function(a){return this.newBuffer(a,this,function(a){this.childBuffers.splice(0,0,a)})},replaceWith:function(a){var b=this.parentBuffer;return this.newBuffer(a,b,function(a){this.replaceWithBuffer(a)})},insertAfter:function(b){var d=a(this,"parentBuffer");return this.newBuffer(b,d,function(a){var b=d.childBuffers,e=c.call(b,this);b.splice(e+1,0,a)})},end:function(){var a=this.parentBuffer;return a||this},remove:function(){this.replaceWithBuffer(null)},element:function(){return Ember.$(this.string())[0]},string:function(){var a="",b=this.elementTag,c;if(b){var d=this.elementId,e=this.elementClasses,f=this.elementAttributes,g=this.elementStyle,h="",i;c=["<"+b],d&&c.push('id="'+this._escapeAttribute(d)+'"'),e&&c.push('class="'+this._escapeAttribute(e.toDOM())+'"');if(g){for(i in g)g.hasOwnProperty(i)&&(h+=i+":"+this._escapeAttribute(g[i])+";");c.push('style="'+h+'"')}if(f)for(i in f)f.hasOwnProperty(i)&&c.push(i+'="'+this._escapeAttribute(f[i])+'"');c=c.join(" ")+">"}var j=this.childBuffers;return Ember.ArrayPolyfills.forEach.call(j,function(b){var c=typeof b=="string";a+=c?b:b.string()}),b?c+a+"</"+b+">":a},_escapeAttribute:function(a){var b={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},c=/&(?!\w+;)|[<>"'`]/g,d=/[&<>"'`]/,e=function(a){return b[a]||"&amp;"},f=a.toString();return d.test(f)?f.replace(c,e):f}}}(),function(){var a=Ember.get,b=Ember.set,c=Ember.String.fmt;Ember.EventDispatcher=Ember.Object.extend({rootElement:"body",setup:function(b){var c,d={touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchcancel:"touchCancel",keydown:"keyDown",keyup:"keyUp",keypress:"keyPress",mousedown:"mouseDown",mouseup:"mouseUp",contextmenu:"contextMenu",click:"click",dblclick:"doubleClick",mousemove:"mouseMove",focusin:"focusIn",focusout:"focusOut",mouseenter:"mouseEnter",mouseleave:"mouseLeave",submit:"submit",input:"input",change:"change",dragstart:"dragStart",drag:"drag",dragenter:"dragEnter",dragleave:"dragLeave",dragover:"dragOver",drop:"drop",dragend:"dragEnd"};Ember.$.extend(d,b||{});var e=Ember.$(a(this,"rootElement"));e.addClass("ember-application");for(c in d)d.hasOwnProperty(c)&&this.setupHandler(e,c,d[c])},setupHandler:function(a,b,c){var d=this;a.delegate(".ember-view",b+".ember",function(a,b){var e=Ember.View.views[this.id],f=!0,g=null;return g=d._findNearestEventManager(e,c),g&&g!==b?f=d._dispatchEvent(g,a,c,e):e?f=d._bubbleEvent(e,a,c):a.stopPropagation(),f}),a.delegate("[data-ember-action]",b+".ember",function(a){var b=Ember.$(a.currentTarget).attr("data-ember-action"),d=Ember.Handlebars.ActionHelper.registeredActions[b],e=d.handler;if(d.eventName===c)return e(a)})},_findNearestEventManager:function(b,c){var d=null;while(b){d=a(b,"eventManager");if(d&&d[c])break;b=a(b,"parentView")}return d},_dispatchEvent:function(a,b,c,d){var e=!0,f=a[c];return Ember.typeOf(f)==="function"?(e=f.call(a,b,d),b.stopPropagation()):e=this._bubbleEvent(d,b,c),e},_bubbleEvent:function(a,b,c){return Ember.run(function(){return a.handleEvent(c,b)})},destroy:function(){var b=a(this,"rootElement");return Ember.$(b).undelegate(".ember").removeClass("ember-application"),this._super()}})}(),function(){var a=Ember.run.queues;a.splice(Ember.$.inArray("actions",a)+1,0,"render")}(),function(){var a=Ember.get,b=Ember.set;Ember.ControllerMixin.reopen({target:null,controllers:null,namespace:null,view:null,connectOutlet:function(c,d){var e,f,g,h,i;Ember.typeOf(d)==="string"&&(e=c,c=d,d=arguments[2]),arguments.length===1?Ember.typeOf(c)==="object"&&(i=c,e=i.outletName,c=i.name,f=i.viewClass,h=i.controller,d=i.context):i={},e=e||"view";if(c){var j=a(this,"namespace"),k=a(this,"controllers"),l=c.charAt(0).toUpperCase()+c.substr(1)+"View";f=a(j,l),h=a(k,c+"Controller")}return h&&d&&h.set("content",d),g=f.create(),h&&b(g,"controller",h),b(this,e,g),g},connectControllers:function(){var c=a(this,"controllers"),d=Array.prototype.slice.apply(arguments),e;for(var f=0,g=d.length;f<g;f++)e=d[f]+"Controller",b(this,e,a(c,e))}})}(),function(){}(),function(){var a=Ember.get,b=Ember.set,c=Ember.addObserver,d=Ember.meta,e=Ember.String.fmt,f=[].slice,g=Ember.EnumerableUtils.forEach,h=Ember.computed(function(){var b=this._childViews,c=Ember.A();return g(b,function(b){b.isVirtual?c.pushObjects(a(b,"childViews")):c.push(b)}),c}).property().cacheable(),i=Ember.VIEW_PRESERVES_CONTEXT;Ember.TEMPLATES={};var j={preRender:{},inBuffer:{},hasElement:{},inDOM:{},destroyed:{}};Ember.View=Ember.Object.extend(Ember.Evented,{concatenatedProperties:["classNames","classNameBindings","attributeBindings"],isView:!0,templateName:null,layoutName:null,templates:Ember.TEMPLATES,template:Ember.computed(function(b,c){if(c!==undefined)return c;var d=a(this,"templateName"),e=this.templateForName(d,"template");return e||a(this,"defaultTemplate")}).property("templateName").cacheable(),controller:Ember.computed(function(b,c){var d;return arguments.length===2?c:(d=a(this,"parentView"),d?a(d,"controller"):null)}).property().cacheable(),layout:Ember.computed(function(b,c){if(arguments.length===2)return c;var d=a(this,"layoutName"),e=this.templateForName(d,"layout");return e||a(this,"defaultLayout")}).property("layoutName").cacheable(),templateForName:function(b,c){if(!b)return;var d=a(this,"templates"),f=a(d,b);if(!f)throw new Ember.Error(e('%@ - Unable to find %@ "%@".',[this,c,b]));return f},context:Ember.computed(function(c,d){return arguments.length===2?(b(this,"_context",d),d):a(this,"_context")}).cacheable(),_context:Ember.computed(function(b,c){var d,e,f;if(arguments.length===2)return c;if(i){if(e=a(this,"controller"))return e;d=a(this,"_parentView");if(d)return a(d,"_context")}return this}).cacheable(),_displayPropertyDidChange:Ember.observer(function(){this.rerender()},"context","controller"),parentView:Ember.computed(function(){var b=a(this,"_parentView");return b&&b.isVirtual?a(b,"parentView"):b}).property("_parentView").volatile(),_parentView:null,concreteView:Ember.computed(function(){return this.isVirtual?a(this,"parentView"):this}).property("_parentView").volatile(),isVisible:!0,childViews:h,_childViews:[],_childViewsWillChange:Ember.beforeObserver(function(){if(this.isVirtual){var b=a(this,"parentView");b&&Ember.propertyWillChange(b,"childViews")}},"childViews"),_childViewsDidChange:Ember.observer(function(){if(this.isVirtual){var b=a(this,"parentView");b&&Ember.propertyDidChange(b,"childViews")}},"childViews"),nearestInstanceOf:function(b){var c=a(this,"parentView");while(c){if(c instanceof b)return c;c=a(c,"parentView")}},nearestWithProperty:function(b){var c=a(this,"parentView");while(c){if(b in c)return c;c=a(c,"parentView")}},nearestChildOf:function(b){var c=a(this,"parentView");while(c){if(a(c,"parentView")instanceof b)return c;c=a(c,"parentView")}},collectionView:Ember.computed(function(){return this.nearestInstanceOf(Ember.CollectionView)}).cacheable(),itemView:Ember.computed(function(){return this.nearestChildOf(Ember.CollectionView)}).cacheable(),contentView:Ember.computed(function(){return this.nearestWithProperty("content")}).cacheable(),_parentViewDidChange:Ember.observer(function(){if(this.isDestroying)return;this.invokeRecursively(function(a){a.propertyDidChange("collectionView"),a.propertyDidChange("itemView"),a.propertyDidChange("contentView")}),a(this,"parentView.controller")&&!a(this,"controller")&&this.notifyPropertyChange("controller")},"_parentView"),_controllerDidChange:Ember.observer(function(){if(this.isDestroying)return;this.forEachChildView(function(a){a.propertyDidChange("controller")})},"controller"),cloneKeywords:function(){var c=a(this,"templateData"),d=c?Ember.copy(c.keywords):{};return b(d,"view",a(this,"concreteView")),b(d,"controller",a(this,"controller")),d},render:function(b){var c=a(this,"layout")||a(this,"template");if(c){var d=a(this,"_context"),e=this.cloneKeywords(),f={view:this,buffer:b,isRenderData:!0,keywords:e},g=c(d,{data:f});g!==undefined&&b.push(g)}},invokeForState:function(a){var b=this.state,c,d;if(d=j[b][a])return c=f.call(arguments),c[0]=this,d.apply(this,c);var e=this,g=e.states,h;while(g){h=g[b];while(h){d=h[a];if(d)return j[b][a]=d,c=f.call(arguments,1),c.unshift(this),d.apply(this,c);h=h.parentState}g=g.parent}},rerender:function(){return this.invokeForState("rerender")},clearRenderedChildren:function(){var a=this.lengthBeforeRender,b=this.lengthAfterRender,c=this._childViews;for(var d=b-1;d>=a;d--)c[d]&&c[d].destroy()},_applyClassNameBindings:function(){var b=a(this,"classNameBindings"),d=a(this,"classNames"),e,f,h;if(!b)return;g(b,function(a){var b,g=function(){f=this._classStringForProperty(a),e=this.$(),b&&(e.removeClass(b),d.removeObject(b)),f?(e.addClass(f),b=f):b=null};h=this._classStringForProperty(a),h&&(d.push(h),b=h);var i=Ember.View._parsePropertyPath(a);c(this,i.path,g)},this)},_applyAttributeBindings:function(b){var d=a(this,"attributeBindings"),e,f,h;if(!d)return;g(d,function(d){var g=d.split(":"),h=g[0],i=g[1]||h,j=function(){f=this.$();if(!f)return;e=a(this,h),Ember.View.applyAttributeBindings(f,i,e)};c(this,h,j),e=a(this,h),Ember.View.applyAttributeBindings(b,i,e)},this)},_classStringForProperty:function(b){var c=Ember.View._parsePropertyPath(b),d=c.path,e=a(this,d);return e===undefined&&Ember.isGlobalPath(d)&&(e=a(window,d)),Ember.View._classStringForValue(d,e,c.className,c.falsyClassName)},element:Ember.computed(function(a,b){return b!==undefined?this.invokeForState("setElement",b):this.invokeForState("getElement")}).property("_parentView").cacheable(),$:function(a){return this.invokeForState("$",a)},mutateChildViews:function(a){var b=this._childViews,c=b.length,d;while(--c>=0)d=b[c],a.call(this,d,c);return this},forEachChildView:function(a){var b=this._childViews;if(!b)return this;var c=b.length,d,e;for(e=0;e<c;e++)d=b[e],a.call(this,d);return this},appendTo:function(a){return this._insertElementLater(function(){this.$().appendTo(a)}),this},replaceIn:function(a){return this._insertElementLater(function(){Ember.$(a).empty(),this.$().appendTo(a)}),this},_insertElementLater:function(a){this._lastInsert=Ember.guidFor(a),Ember.run.schedule("render",this,this.invokeForState,"insertElement",a)},append:function(){return this.appendTo(document.body)},remove:function(){this.destroyElement(),this.invokeRecursively(function(a){a.clearRenderedChildren()})},elementId:Ember.computed(function(a,b){return b!==undefined?b:Ember.guidFor(this)}).cacheable(),_elementIdDidChange:Ember.beforeObserver(function(){throw"Changing a view's elementId after creation is not allowed."},"elementId"),findElementInParentElement:function(b){var c="#"+a(this,"elementId");return Ember.$(c)[0]||Ember.$(c,b)[0]},renderBuffer:function(b){b=b||a(this,"tagName");if(b===null||b===undefined)b="div";return Ember.RenderBuffer(b)},createElement:function(){if(a(this,"element"))return this;var c=this.renderToBuffer();return b(this,"element",c.element()),this},willInsertElement:Ember.K,didInsertElement:Ember.K,willRerender:Ember.K,invokeRecursively:function(a){a.call(this,this),this.forEachChildView(function(b){b.invokeRecursively(a)})},invalidateRecursively:function(a){this.forEachChildView(function(b){b.propertyDidChange(a)})},_notifyWillInsertElement:function(){this.invokeRecursively(function(a){a.trigger("willInsertElement")})},_notifyDidInsertElement:function(){this.invokeRecursively(function(a){a.trigger("didInsertElement")})},_notifyWillRerender:function(){this.invokeRecursively(function(a){a.trigger("willRerender")})},destroyElement:function(){return this.invokeForState("destroyElement")},willDestroyElement:function(){},_notifyWillDestroyElement:function(){this.invokeRecursively(function(a){a.trigger("willDestroyElement")})},_elementWillChange:Ember.beforeObserver(function(){this.forEachChildView(function(a){Ember.propertyWillChange(a,"element")})},"element"),_elementDidChange:Ember.observer(function(){this.forEachChildView(function(a){Ember.propertyDidChange(a,"element")})},"element"),parentViewDidChange:Ember.K,renderToBuffer:function(b,c){var d;Ember.run.sync(),c=c||"begin";if(b){var e=a(this,"tagName");if(e===null||e===undefined)e="div";d=b[c](e)}else d=this.renderBuffer();return this.buffer=d,this.transitionTo("inBuffer",!1),this.lengthBeforeRender=this._childViews.length,this.beforeRender(d),this.render(d),this.afterRender(d),this.lengthAfterRender=this._childViews.length,d},beforeRender:function(a){this.applyAttributesToBuffer(a)},afterRender:Ember.K,applyAttributesToBuffer:function(b){this._applyClassNameBindings(),this._applyAttributeBindings(b),g(a(this,"classNames"),function(a){b.addClass(a)}),b.id(a(this,"elementId"));var c=a(this,"ariaRole");c&&b.attr("role",c),a(this,"isVisible")===!1&&b.style("display","none")},tagName:null,ariaRole:null,classNames:["ember-view"],classNameBindings:[],attributeBindings:[],state:"preRender",init:function(){this._super(),this.isVirtual||(Ember.View.views[a(this,"elementId")]=this),this._childViews=this._childViews.slice(),this.classNameBindings=Ember.A(this.classNameBindings.slice()),this.classNames=Ember.A(this.classNames.slice());var c=a(this,"viewController");c&&(c=a(c),c&&b(c,"view",this))},appendChild:function(a,b){return this.invokeForState("appendChild",a,b)},removeChild:function(a){if(this.isDestroying)return;b(a,"_parentView",null);var c=this._childViews;return Ember.EnumerableUtils.removeObject(c,a),this.propertyDidChange("childViews"),this},removeAllChildren:function(){return this.mutateChildViews(function(a){this.removeChild(a)})},destroyAllChildren:function(){return this.mutateChildViews(function(a){a.destroy()})},removeFromParent:function(){var b=a(this,"_parentView");return this.remove(),b&&b.removeChild(this),this},willDestroy:function(){var c=this._childViews,d=a(this,"_parentView"),e;this.removedFromDOM||this.destroyElement();if(this.viewName){var f=a(this,"parentView");f&&b(f,this.viewName,null)}d&&d.removeChild(this),this.state="destroyed",e=c.length;for(var g=e-1;g>=0;g--)c[g].removedFromDOM=!0,c[g].destroy();this.isVirtual||delete Ember.View.views[a(this,"elementId")]},createChildView:function(c,d){return Ember.View.detect(c)?(d=d||{},d._parentView=this,d.templateData=d.templateData||a(this,"templateData"),c=c.create(d),c.viewName&&b(a(this,"concreteView"),c.viewName,c)):(a(c,"templateData")||b(c,"templateData",a(this,"templateData")),b(c,"_parentView",this)),c},becameVisible:Ember.K,becameHidden:Ember.K,_isVisibleDidChange:Ember.observer(function(){var b=this.$();if(!b)return;var c=a(this,"isVisible");b.toggle(c);if(this._isAncestorHidden())return;c?this._notifyBecameVisible():this._notifyBecameHidden()},"isVisible"),_notifyBecameVisible:function(){this.trigger("becameVisible"),this.forEachChildView(function(b){var c=a(b,"isVisible");(c||c===null)&&b._notifyBecameVisible()})},_notifyBecameHidden:function(){this.trigger("becameHidden"),this.forEachChildView(function(b){var c=a(b,"isVisible");(c||c===null)&&b._notifyBecameHidden()})},_isAncestorHidden:function(){var b=a(this,"parentView");while(b){if(a(b,"isVisible")===!1)return!0;b=a(b,"parentView")}return!1},clearBuffer:function(){this.invokeRecursively(function(a){this.buffer=null})},transitionTo:function(a,b){this.state=a,b!==!1&&this.forEachChildView(function(b){b.transitionTo(a)})},trigger:function(a){this._super.apply(this,arguments);var b=this[a];if(b){var c=[],d,e;for(d=1,e=arguments.length;d<e;d++)c.push(arguments[d]);return b.apply(this,c)}},has:function(a){return Ember.typeOf(this[a])==="function"||this._super(a)},handleEvent:function(a,b){return this.invokeForState("handleEvent",a,b)}});var k={prepend:function(a,b){b._insertElementLater(function(){var c=a.$();c.prepend(b.$())})},after:function(a,b){b._insertElementLater(function(){var c=a.$();c.after(b.$())})},replace:function(c){var d=a(c,"element");b(c,"element",null),c._insertElementLater(function(){Ember.$(d).replaceWith(a(c,"element"))})},remove:function(c){var d=a(c,"element");b(c,"element",null),c._lastInsert=null,Ember.$(d).remove()},empty:function(a){a.$().empty()}};Ember.View.reopen({states:Ember.View.states,domManager:k}),Ember.View.reopenClass({_parsePropertyPath:function(a){var b=a.split(/:/),c=b[0],d="",e,f;return b.length>1&&(e=b[1],b.length===3&&(f=b[2]),d=":"+e,f&&(d+=":"+f)),{path:c,classNames:d,className:e===""?undefined:e,falsyClassName:f}},_classStringForValue:function(a,b,c,d){if(!!b&&c)return c;if(b===!0){if(b===!0&&!c&&d)return null;var e=a.split(".");return Ember.String.dasherize(e[e.length-1])}return b===!1&&d?d:b!==!1&&b!==undefined&&b!==null?b:null}}),Ember.View.views={},Ember.View.childViewsProperty=h,Ember.View.applyAttributeBindings=function(a,b,c){var d=Ember.typeOf(c),e=a.attr(b);(d==="string"||d==="number"&&!isNaN(c))&&c!==e?a.attr(b,c):c&&d==="boolean"?a.attr(b,b):c||a.removeAttr(b)}}(),function(){var a=Ember.get,b=Ember.set;Ember.View.states={_default:{appendChild:function(){throw"You can't use appendChild outside of the rendering process"},$:function(){return undefined},getElement:function(){return null},handleEvent:function(){return!0},destroyElement:function(a){return b(a,"element",null),a._lastInsert=null,a}}},Ember.View.reopen({states:Ember.View.states})}(),function(){Ember.View.states.preRender={parentState:Ember.View.states._default,insertElement:function(a,b){if(a._lastInsert!==Ember.guidFor(b))return;a.createElement(),a._notifyWillInsertElement(),b.call(a),a.transitionTo("inDOM"),a._notifyDidInsertElement()},empty:Ember.K,setElement:function(a,b){return b!==null&&a.transitionTo("hasElement"),b}}}(),function(){var a=Ember.get,b=Ember.set,c=Ember.meta;Ember.View.states.inBuffer={parentState:Ember.View.states._default,$:function(a,b){return a.rerender(),Ember.$()},rerender:function(a){a._notifyWillRerender(),a.clearRenderedChildren(),a.renderToBuffer(a.buffer,"replaceWith")},appendChild:function(a,b,c){var d=a.buffer;return b=this.createChildView(b,c),a._childViews.push(b),b.renderToBuffer(d),a.propertyDidChange("childViews"),b},destroyElement:function(a){return a.clearBuffer(),a._notifyWillDestroyElement(),a.transitionTo("preRender"),a},empty:function(){},insertElement:function(){throw"You can't insert an element that has already been rendered"},setElement:function(a,b){return b===null?a.transitionTo("preRender"):(a.clearBuffer(),a.transitionTo("hasElement")),b}}}(),function(){var a=Ember.get,b=Ember.set,c=Ember.meta;Ember.View.states.hasElement={parentState:Ember.View.states._default,$:function(b,c){var d=a(b,"element");return c?Ember.$(c,d):Ember.$(d)},getElement:function(b){var c=a(b,"parentView");return c&&(c=a(c,"element")),c?b.findElementInParentElement(c):Ember.$("#"+a(b,"elementId"))[0]},setElement:function(a,b){if(b!==null)throw"You cannot set an element to a non-null value when the element is already in the DOM.";return a.transitionTo("preRender"),b},rerender:function(a){return a._notifyWillRerender(),a.clearRenderedChildren(),a.domManager.replace(a),a},destroyElement:function(a){return a._notifyWillDestroyElement(),a.domManager.remove(a),a},empty:function(a){var b=a._childViews,c,d;if(b){c=b.length;for(d=0;d<c;d++)b[d]._notifyWillDestroyElement()}a.domManager.empty(a)},handleEvent:function(a,b,c){return a.has(b)?a.trigger(b,c):!0}},Ember.View.states.inDOM={parentState:Ember.View.states.hasElement,insertElement:function(a,b){if(a._lastInsert!==Ember.guidFor(b))return;throw"You can't insert an element into the DOM that has already been inserted"}}}(),function(){var a="You can't call %@ on a destroyed view",b=Ember.String.fmt;Ember.View.states.destroyed={parentState:Ember.View.states._default,appendChild:function(){throw b(a,["appendChild"])},rerender:function(){throw b(a,["rerender"])},destroyElement:function(){throw b(a,["destroyElement"])},empty:function(){throw b(a,["empty"])},setElement:function(){throw b(a,["set('element', ...)"])},insertElement:Ember.K}}(),function(){}(),function(){var a=Ember.get,b=Ember.set,c=Ember.meta,d=Ember.EnumerableUtils.forEach,e=Ember.computed(function(){return a(this,"_childViews")}).property("_childViews").cacheable();Ember.ContainerView=Ember.View.extend({init:function(){this._super();var c=a(this,"childViews");Ember.defineProperty(this,"childViews",e);var f=this._childViews;d(c,function(c,d){var e;"string"==typeof c?(e=a(this,c),e=this.createChildView(e),b(this,c,e)):e=this.createChildView(c),f[d]=e},this);var g=a(this,"currentView");g&&f.push(this.createChildView(g)),Ember.A(f),a(this,"childViews").addArrayObserver(this,{willChange:"childViewsWillChange",didChange:"childViewsDidChange"})},render:function(a){this.forEachChildView(function(b){b.renderToBuffer(a)})},willDestroy:function(){a(this,"childViews").removeArrayObserver(this,{willChange:"childViewsWillChange",didChange:"childViewsDidChange"}),this._super()},childViewsWillChange:function(a,b,c){if(c===0)return;var d=a.slice(b,b+c);this.initializeViews(d,null,null),this.invokeForState("childViewsWillChange",a,b,c)},childViewsDidChange:function(b,c,d,e){var f=a(b,"length");if(e===0)return;var g=b.slice(c,c+e);this.initializeViews(g,this,a(this,"templateData")),this.invokeForState("childViewsDidChange",b,c,e)},initializeViews:function(c,e,f){d(c,function(c){b(c,"_parentView",e),a(c,"templateData")||b(c,"templateData",f)})},_scheduleInsertion:function(a,b){b?b.domManager.after(b,a):this.domManager.prepend(this,a)},currentView:null,_currentViewWillChange:Ember.beforeObserver(function(){var b=a(this,"childViews"),c=a(this,"currentView");c&&(b.removeObject(c),c.destroy())},"currentView"),_currentViewDidChange:Ember.observer(function(){var b=a(this,"childViews"),c=a(this,"currentView");c&&b.pushObject(c)},"currentView")}),Ember.ContainerView.states={parent:Ember.View.states,inBuffer:{childViewsDidChange:function(a,b,c,d){var e=a.buffer,f,g,h,i;c===0?(i=b[c],f=c+1,i.renderToBuffer(e,"prepend")):(i=b[c-1],f=c);for(var j=f;j<c+d;j++)g=i,i=b[j],h=g.buffer,i.renderToBuffer(h,"insertAfter")}},hasElement:{childViewsWillChange:function(a,b,c,d){for(var e=c;e<c+d;e++)b[e].remove()},childViewsDidChange
+:function(a,b,c,d){var e=c===0?null:b[c-1];for(var f=c;f<c+d;f++)a=b[f],this._scheduleInsertion(a,e),e=a}}},Ember.ContainerView.states.inDOM={parentState:Ember.ContainerView.states.hasElement},Ember.ContainerView.reopen({states:Ember.ContainerView.states})}(),function(){var a=Ember.get,b=Ember.set,c=Ember.String.fmt;Ember.CollectionView=Ember.ContainerView.extend({content:null,emptyViewClass:Ember.View,emptyView:null,itemViewClass:Ember.View,init:function(){var a=this._super();return this._contentDidChange(),a},_contentWillChange:Ember.beforeObserver(function(){var b=this.get("content");b&&b.removeArrayObserver(this);var c=b?a(b,"length"):0;this.arrayWillChange(b,0,c)},"content"),_contentDidChange:Ember.observer(function(){var b=a(this,"content");b&&b.addArrayObserver(this);var c=b?a(b,"length"):0;this.arrayDidChange(b,0,null,c)},"content"),willDestroy:function(){var b=a(this,"content");b&&b.removeArrayObserver(this),this._super()},arrayWillChange:function(b,c,d){var e=a(this,"emptyView");e&&e instanceof Ember.View&&e.removeFromParent();var f=a(this,"childViews"),g,h,i;i=a(f,"length");var j=d===i;j&&this.invokeForState("empty");for(h=c+d-1;h>=c;h--)g=f[h],j&&(g.removedFromDOM=!0),g.destroy()},arrayDidChange:function(c,d,e,f){var g=a(this,"itemViewClass"),h=a(this,"childViews"),i=[],j,k,l,m,n;"string"==typeof g&&(g=a(g)),m=c?a(c,"length"):0;if(m)for(l=d;l<d+f;l++)k=c.objectAt(l),j=this.createChildView(g,{content:k,contentIndex:l}),i.push(j);else{var o=a(this,"emptyView");if(!o)return;o=this.createChildView(o),i.push(o),b(this,"emptyView",o)}h.replace(d,0,i)},createChildView:function(c,d){c=this._super(c,d);var e=a(c,"tagName"),f=e===null||e===undefined?Ember.CollectionView.CONTAINER_MAP[a(this,"tagName")]:e;return b(c,"tagName",f),c}}),Ember.CollectionView.CONTAINER_MAP={ul:"li",ol:"li",table:"tr",thead:"tr",tbody:"tr",tfoot:"tr",tr:"td",select:"option"}}(),function(){}(),function(){}(),function(){var a=Ember.get,b=Ember.set;Ember.State=Ember.Object.extend(Ember.Evented,{isState:!0,parentState:null,start:null,name:null,path:Ember.computed(function(){var b=a(this,"parentState.path"),c=a(this,"name");return b&&(c=b+"."+c),c}).property().cacheable(),trigger:function(a){this[a]&&this[a].apply(this,[].slice.call(arguments,1)),this._super.apply(this,arguments)},init:function(){var c=a(this,"states"),d;b(this,"childStates",Ember.A()),b(this,"eventTransitions",a(this,"eventTransitions")||{});var e,f,g;if(!c){c={};for(e in this){if(e==="constructor")continue;if(f=this[e]){if(g=f.transitionTarget)this.eventTransitions[e]=g;this.setupChild(c,e,f)}}b(this,"states",c)}else for(e in c)this.setupChild(c,e,c[e]);b(this,"pathsCache",{}),b(this,"pathsCacheNoContext",{})},setupChild:function(c,d,e){if(!e)return!1;e.isState?b(e,"name",d):Ember.State.detect(e)&&(e=e.create({name:d})),e.isState&&(b(e,"parentState",this),a(this,"childStates").pushObject(e),c[d]=e)},lookupEventTransition:function(a){var b,c=this;while(c&&!b)b=c.eventTransitions[a],c=c.get("parentState");return b},isLeaf:Ember.computed(function(){return!a(this,"childStates").length}).cacheable(),hasContext:!0,setup:Ember.K,enter:Ember.K,exit:Ember.K});var c=Ember.$&&Ember.$.Event;Ember.State.reopenClass({transitionTo:function(a){var b=function(b,d){if(c&&d instanceof c){if(!d.hasOwnProperty("context"))return b.transitionTo(a);d=d.context}b.transitionTo(a,d)};return b.transitionTarget=a,b}})}(),function(){var a=Ember.get,b=Ember.set,c=Ember.String.fmt,d=Ember.ArrayPolyfills.forEach,e=function(a){this.enterStates=a.enterStates.slice(),this.exitStates=a.exitStates.slice(),this.resolveState=a.resolveState,this.finalState=a.enterStates[a.enterStates.length-1]||a.resolveState};e.prototype={normalize:function(a,b){return this.matchContextsToStates(b),this.addInitialStates(),this.removeUnchangedContexts(a),this},matchContextsToStates:function(b){var c=this.enterStates.length-1,d=[],e,f;while(b.length>0){if(c>=0)e=this.enterStates[c--];else{if(this.enterStates.length){e=a(this.enterStates[0],"parentState");if(!e)throw"Cannot match all contexts to states"}else e=this.resolveState;this.enterStates.unshift(e),this.exitStates.unshift(e)}a(e,"hasContext")?f=b.pop():f=null,d.unshift(f)}this.contexts=d},addInitialStates:function(){var b=this.finalState,c;for(;;){c=a(b,"initialState")||"start",b=a(b,"states."+c);if(!b)break;this.finalState=b,this.enterStates.push(b),this.contexts.push(undefined)}},removeUnchangedContexts:function(a){while(this.enterStates.length>0){if(this.enterStates[0]!==this.exitStates[0])break;if(this.enterStates.length===this.contexts.length){if(a.getStateMeta(this.enterStates[0],"context")!==this.contexts[0])break;this.contexts.shift()}this.resolveState=this.enterStates.shift(),this.exitStates.shift()}}},Ember.StateManager=Ember.State.extend({init:function(){this._super(),b(this,"stateMeta",Ember.Map.create());var c=a(this,"initialState");!c&&a(this,"states.start")&&(c="start"),c&&this.transitionTo(c)},stateMetaFor:function(b){var c=a(this,"stateMeta"),d=c.get(b);return d||(d={},c.set(b,d)),d},setStateMeta:function(a,c,d){return b(this.stateMetaFor(a),c,d)},getStateMeta:function(b,c){return a(this.stateMetaFor(b),c)},currentState:null,transitionEvent:"setup",errorOnUnhandledEvent:!0,send:function(b,c){return this.sendRecursively(b,a(this,"currentState"),c)},sendRecursively:function(b,d,e){var f=this.enableLogging,g=d[b];if(typeof g=="function")return f&&Ember.Logger.log(c("STATEMANAGER: Sending event '%@' to state %@.",[b,a(d,"path")])),g.call(d,this,e);var h=a(d,"parentState");if(h)return this.sendRecursively(b,h,e);if(a(this,"errorOnUnhandledEvent"))throw new Ember.Error(this.toString()+" could not respond to event "+b+" in state "+a(this,"currentState.path")+".")},getStateByPath:function(b,c){var d=c.split("."),e=b;for(var f=0,g=d.length;f<g;f++){e=a(a(e,"states"),d[f]);if(!e)break}return e},findStateByPath:function(b,c){var d;while(!d&&b)d=this.getStateByPath(b,c),b=a(b,"parentState");return d},findStatesByPath:function(b,c){if(!c||c==="")return undefined;var d=c.split("."),e=[];for(var f=0,g=d.length;f<g;f++){var h=a(b,"states");if(!h)return undefined;var i=a(h,d[f]);if(!i)return undefined;b=i,e.push(i)}return e},goToState:function(){return this.transitionTo.apply(this,arguments)},transitionTo:function(b,c){if(Ember.empty(b))return;var d=c?Array.prototype.slice.call(arguments,1):[],f=a(this,"currentState")||this,g=this.contextFreeTransition(f,b),h=(new e(g)).normalize(this,d);this.enterState(h),this.triggerSetupContext(h)},contextFreeTransition:function(b,c){var d=b.pathsCache[c];if(d)return d;var e=this.findStatesByPath(b,c),f=[],g=b;while(g&&!e){f.unshift(g),g=a(g,"parentState");if(!g){e=this.findStatesByPath(this,c);if(!e)return}e=this.findStatesByPath(g,c)}while(e.length>0&&e[0]===f[0])g=e.shift(),f.shift();var h=b.pathsCache[c]={exitStates:f,enterStates:e,resolveState:g};return h},triggerSetupContext:function(b){var c=b.contexts,e=b.enterStates.length-c.length,f=b.enterStates,g=a(this,"transitionEvent");d.call(f,function(a,b){a.trigger(g,this,c[b-e])},this)},getState:function(b){var c=a(this,b),d=a(this,"parentState");if(c)return c;if(d)return d.getState(b)},enterState:function(c){var e=this.enableLogging,f=c.exitStates.slice(0).reverse();d.call(f,function(a){a.trigger("exit",this)},this),d.call(c.enterStates,function(b){e&&Ember.Logger.log("STATEMANAGER: Entering "+a(b,"path")),b.trigger("enter",this)},this),b(this,"currentState",c.finalState)}})}(),function(){}(),function(){var a=Ember.get;Ember._ResolvedState=Ember.Object.extend({manager:null,state:null,match:null,object:Ember.computed(function(b,c){if(arguments.length===2)return this._object=c,c;if(this._object)return this._object;var d=a(this,"state"),e=a(this,"match"),f=a(this,"manager");return d.deserialize(f,e.hash)}).property(),hasPromise:Ember.computed(function(){return Ember.canInvoke(a(this,"object"),"then")}).property("object"),promise:Ember.computed(function(){var b=a(this,"object");return Ember.canInvoke(b,"then")?b:{then:function(a){a(b)}}}).property("object"),transition:function(){var b=a(this,"manager"),c=a(this,"state.path"),d=a(this,"object");b.transitionTo(c,d)}})}(),function(){var a=Ember.get,b=function(a){var b=a.toString(),c=b.split("."),d=c[c.length-1];return Ember.String.underscore(d)+"_id"},c=function(a,b){for(var c in b){if(!b.hasOwnProperty(c))continue;if(a.hasOwnProperty(c))continue;a[c]=b[c]}};Ember.Routable=Ember.Mixin.create({init:function(){var b;this.on("connectOutlets",this,this.stashContext);if(b=a(this,"redirectsTo"))this.connectOutlets=function(a){a.transitionTo(b)};var c=a(this,"route");c===""&&(c="/"),this._super()},stashContext:function(b,c){var d=this.serialize(b,c);b.setStateMeta(this,"context",c),b.setStateMeta(this,"serialized",d),a(this,"isRoutable")&&!a(b,"isRouting")&&this.updateRoute(b,a(b,"location"))},updateRoute:function(b,c){if(a(this,"isLeafRoute")){var d=this.absoluteRoute(b);c.setURL(d)}},absoluteRoute:function(b,d){var e=a(this,"parentState"),f="",g;a(e,"isRoutable")&&(f=e.absoluteRoute(b,d));var h=a(this,"routeMatcher"),i=b.getStateMeta(this,"serialized");return d=d||{},c(d,i),g=h&&h.generate(d),g&&(f=f+"/"+g),f},isRoutable:Ember.computed(function(){return typeof a(this,"route")=="string"}).cacheable(),isLeafRoute:Ember.computed(function(){return a(this,"isLeaf")?!0:!a(this,"childStates").findProperty("isRoutable")}).cacheable(),routeMatcher:Ember.computed(function(){var b=a(this,"route");if(b)return Ember._RouteMatcher.create({route:b})}).cacheable(),hasContext:Ember.computed(function(){var b=a(this,"routeMatcher");if(b)return b.identifiers.length>0}).cacheable(),modelClass:Ember.computed(function(){var b=a(this,"modelType");return typeof b=="string"?Ember.get(window,b):b}).cacheable(),modelClassFor:function(b){var c,d,e,f,g;if(c=a(this,"modelClass"))return c;if(!b)return;d=a(this,"routeMatcher");if(!d)return;e=d.identifiers;if(e.length!==2)return;f=e[1].match(/^(.*)_id$/);if(!f)return;return g=Ember.String.classify(f[1]),a(b,g)},deserialize:function(c,d){var e,f,g;return(e=this.modelClassFor(a(c,"namespace")))?e.find(d[b(e)]):d},serialize:function(c,d){var e,f,g,h,i;if(Ember.empty(d))return"";if(e=this.modelClassFor(a(c,"namespace")))h=b(e),i=a(d,"id"),d={},d[h]=i;return d},resolvePath:function(b,c){if(a(this,"isLeafRoute"))return Ember.A();var d=a(this,"childStates"),e;d=Ember.A(d.filterProperty("isRoutable")),d=d.sort(function(b,c){var d=a(b,"routeMatcher.identifiers.length"),e=a(c,"routeMatcher.identifiers.length"),f=a(b,"route"),g=a(c,"route");return f.indexOf(g)===0?-1:g.indexOf(f)===0?1:d!==e?d-e:a(c,"route.length")-a(b,"route.length")});var f=d.find(function(b){var d=a(b,"routeMatcher");if(e=d.match(c))return!0}),g=Ember._ResolvedState.create({manager:b,state:f,match:e}),h=f.resolvePath(b,e.remaining);return Ember.A([g]).pushObjects(h)},routePath:function(b,c){function f(){d.forEach(function(a){a.transition()})}if(a(this,"isLeafRoute"))return;var d=this.resolvePath(b,c),e=d.some(function(b){return a(b,"hasPromise")});e?(b.transitionTo("loading"),b.handleStatePromises(d,f)):f()},unroutePath:function(b,c){var d=a(this,"parentState");if(d===b)return;c=c.replace(/^(?=[^\/])/,"/");var e=this.absoluteRoute(b),f=a(this,"route");if(f!=="/"){var g=c.indexOf(e),h=c.charAt(e.length);if(g===0&&(h==="/"||h===""))return}b.enterState({exitStates:[this],enterStates:[],finalState:d}),b.send("unroutePath",c)},connectOutlets:Ember.K,navigateAway:Ember.K})}(),function(){Ember.Route=Ember.State.extend(Ember.Routable)}(),function(){var a=function(a){return a.replace(/[\-\[\]{}()*+?.,\\\^\$|#\s]/g,"\\$&")};Ember._RouteMatcher=Ember.Object.extend({state:null,init:function(){var b=this.route,c=[],d=1,e;b.charAt(0)==="/"&&(b=this.route=b.substr(1)),e=a(b);var f=e.replace(/:([a-z_]+)(?=$|\/)/gi,function(a,b){return c[d++]=b,"([^/]+)"});this.identifiers=c,this.regex=new RegExp("^/?"+f)},match:function(a){var b=a.match(this.regex);if(b){var c=this.identifiers,d={};for(var e=1,f=c.length;e<f;e++)d[c[e]]=b[e];return{remaining:a.substr(b[0].length),hash:c.length>0?d:null}}},generate:function(a){var b=this.identifiers,c=this.route,d;for(var e=1,f=b.length;e<f;e++)d=b[e],c=c.replace(new RegExp(":"+d),a[d]);return c}})}(),function(){var a=Ember.get,b=Ember.set,c=function(a,b){for(var c in b){if(!b.hasOwnProperty(c))continue;if(a.hasOwnProperty(c))continue;a[c]=b[c]}};Ember.Router=Ember.StateManager.extend({initialState:"root",location:"hash",rootURL:"/",transitionEvent:"connectOutlets",transitionTo:function(){this.abortRoutingPromises(),this._super.apply(this,arguments)},route:function(c){this.abortRoutingPromises(),b(this,"isRouting",!0);var d;try{c=c.replace(/^(?=[^\/])/,"/"),this.send("navigateAway"),this.send("unroutePath",c),d=a(this,"currentState");while(d&&!d.get("isRoutable"))d=a(d,"parentState");var e=d?d.absoluteRoute(this):"",f=c.substr(e.length);this.send("routePath",f)}finally{b(this,"isRouting",!1)}d=a(this,"currentState");while(d&&!d.get("isRoutable"))d=a(d,"parentState");d&&d.updateRoute(this,a(this,"location"))},urlFor:function(b,c){var d=a(this,"currentState")||this,e=this.findStateByPath(d,b),f=a(this,"location"),g=e.absoluteRoute(this,c);return f.formatURL(g)},urlForEvent:function(b){var c=Array.prototype.slice.call(arguments,1),d=a(this,"currentState"),e=d.lookupEventTransition(b),f=this.findStateByPath(d,e),g=this.serializeRecursively(f,c,{});return this.urlFor(e,g)},serializeRecursively:function(b,d,e){var f,g=a(b,"hasContext")?d.pop():null;return c(e,b.serialize(this,g)),f=b.get("parentState"),f&&f instanceof Ember.Route?this.serializeRecursively(f,d,e):e},abortRoutingPromises:function(){this._routingPromises&&(this._routingPromises.abort(),this._routingPromises=null)},handleStatePromises:function(a,c){this.abortRoutingPromises(),this.set("isLocked",!0);var d=this;this._routingPromises=Ember._PromiseChain.create({promises:a.slice(),successCallback:function(){d.set("isLocked",!1),c()},failureCallback:function(){throw"Unable to load object"},promiseSuccessCallback:function(a,c){b(a,"object",c[0])},abortCallback:function(){d.set("isLocked",!1)}}).start()},init:function(){this._super();var c=a(this,"location"),d=a(this,"rootURL");"string"==typeof c&&b(this,"location",Ember.Location.create({implementation:c,rootURL:d}))},willDestroy:function(){a(this,"location").destroy()}})}(),function(){}(),function(){var a=Ember.get;Ember.StateManager.reopen({currentView:Ember.computed(function(){var b=a(this,"currentState"),c;while(b){if(a(b,"isViewState")){c=a(b,"view");if(c)return c}b=a(b,"parentState")}return null}).property("currentState").cacheable()})}(),function(){var a=Ember.get,b=Ember.set;Ember.ViewState=Ember.State.extend({isViewState:!0,init:function(){return this._super()},enter:function(c){var d=a(this,"view"),e,f;d&&(Ember.View.detect(d)&&(d=d.create(),b(this,"view",d)),e=c.get("rootView"),e?(f=a(e,"childViews"),f.pushObject(d)):(e=c.get("rootElement")||"body",d.appendTo(e)))},exit:function(b){var c=a(this,"view");c&&(a(c,"parentView")?c.removeFromParent():c.remove())}})}(),function(){}(),function(){(function(a){var b=function(){},c=0,d=a.document,e="createRange"in d&&typeof Range!="undefined"&&Range.prototype.createContextualFragment,f=function(){var a=d.createElement("div");return a.innerHTML="<div></div>",a.firstChild.innerHTML="<script></script>",a.firstChild.innerHTML===""}(),g=function(a){var d;this instanceof g?d=this:d=new b,d.innerHTML=a;var e="metamorph-"+c++;return d.start=e+"-start",d.end=e+"-end",d};b.prototype=g.prototype;var h,i,j,k,l,m,n,o,p;k=function(){return this.startTag()+this.innerHTML+this.endTag()},o=function(){return"<script id='"+this.start+"' type='text/x-placeholder'></script>"},p=function(){return"<script id='"+this.end+"' type='text/x-placeholder'></script>"};if(e)h=function(a,b){var c=d.createRange(),e=d.getElementById(a.start),f=d.getElementById(a.end);return b?(c.setStartBefore(e),c.setEndAfter(f)):(c.setStartAfter(e),c.setEndBefore(f)),c},i=function(a,b){var c=h(this,b);c.deleteContents();var d=c.createContextualFragment(a);c.insertNode(d)},j=function(){var a=h(this,!0);a.deleteContents()},l=function(a){var b=d.createRange();b.setStart(a),b.collapse(!1);var c=b.createContextualFragment(this.outerHTML());a.appendChild(c)},m=function(a){var b=d.createRange(),c=d.getElementById(this.end);b.setStartAfter(c),b.setEndAfter(c);var e=b.createContextualFragment(a);b.insertNode(e)},n=function(a){var b=d.createRange(),c=d.getElementById(this.start);b.setStartAfter(c),b.setEndAfter(c);var e=b.createContextualFragment(a);b.insertNode(e)};else{var q={select:[1,"<select multiple='multiple'>","</select>"],fieldset:[1,"<fieldset>","</fieldset>"],table:[1,"<table>","</table>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"],colgroup:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],map:[1,"<map>","</map>"],_default:[0,"",""]},r=function(a,b){var c=q[a.tagName.toLowerCase()]||q._default,e=c[0],g=c[1],h=c[2];f&&(b="&shy;"+b);var i=d.createElement("div");i.innerHTML=g+b+h;for(var j=0;j<=e;j++)i=i.firstChild;if(f){var k=i;while(k.nodeType===1&&!k.nodeName)k=k.firstChild;k.nodeType===3&&k.nodeValue.charAt(0)==="­"&&(k.nodeValue=k.nodeValue.slice(1))}return i},s=function(a){while(a.parentNode.tagName==="")a=a.parentNode;return a},t=function(a,b){a.parentNode!==b.parentNode&&b.parentNode.insertBefore(a,b.parentNode.firstChild)};i=function(a,b){var c=s(d.getElementById(this.start)),e=d.getElementById(this.end),f=e.parentNode,g,h,i;t(c,e),g=c.nextSibling;while(g){h=g.nextSibling,i=g===e;if(i){if(!b)break;e=g.nextSibling}g.parentNode.removeChild(g);if(i)break;g=h}g=r(c.parentNode,a);while(g)h=g.nextSibling,f.insertBefore(g,e),g=h},j=function(){var a=s(d.getElementById(this.start)),b=d.getElementById(this.end);this.html(""),a.parentNode.removeChild(a),b.parentNode.removeChild(b)},l=function(a){var b=r(a,this.outerHTML());while(b)nextSibling=b.nextSibling,a.appendChild(b),b=nextSibling},m=function(a){var b=d.getElementById(this.end),c=b.nextSibling,e=b.parentNode,f,g;g=r(e,a);while(g)f=g.nextSibling,e.insertBefore(g,c),g=f},n=function(a){var b=d.getElementById(this.start),c=b.parentNode,e,f;f=r(c,a);var g=b.nextSibling;while(f)e=f.nextSibling,c.insertBefore(f,g),f=e}}g.prototype.html=function(a){this.checkRemoved();if(a===undefined)return this.innerHTML;i.call(this,a),this.innerHTML=a},g.prototype.replaceWith=function(a){this.checkRemoved(),i.call(this,a,!0)},g.prototype.remove=j,g.prototype.outerHTML=k,g.prototype.appendTo=l,g.prototype.after=m,g.prototype.prepend=n,g.prototype.startTag=o,g.prototype.endTag=p,g.prototype.isRemoved=function(){var a=d.getElementById(this.start),b=d.getElementById(this.end);return!a||!b},g.prototype.checkRemoved=function(){if(this.isRemoved())throw new Error("Cannot perform operations on a Metamorph that is not in the DOM.")},a.Metamorph=g})(this)}(),function(){var a=Ember.create;Ember.Handlebars=a(Handlebars),Ember.Handlebars.helpers=a(Handlebars.helpers),Ember.Handlebars.Compiler=function(){},Ember.Handlebars.Compiler.prototype=a(Handlebars.Compiler.prototype),Ember.Handlebars.Compiler.prototype.compiler=Ember.Handlebars.Compiler,Ember.Handlebars.JavaScriptCompiler=function(){},Ember.Handlebars.JavaScriptCompiler.prototype=a(Handlebars.JavaScriptCompiler.prototype),Ember.Handlebars.JavaScriptCompiler.prototype.compiler=Ember.Handlebars.JavaScriptCompiler,Ember.Handlebars.JavaScriptCompiler.prototype.namespace="Ember.Handlebars",Ember.Handlebars.JavaScriptCompiler.prototype.initializeBuffer=function(){return"''"},Ember.Handlebars.JavaScriptCompiler.prototype.appendToBuffer=function(a){return"data.buffer.push("+a+");"},Ember.Handlebars.Compiler.prototype.mustache=function(a){if(a.params.length||a.hash)return Handlebars.Compiler.prototype.mustache.call(this,a);var b=new Handlebars.AST.IdNode(["_triageMustache"]);return a.escaped||(a.hash=a.hash||new Handlebars.AST.HashNode([]),a.hash.pairs.push(["unescaped",new Handlebars.AST.StringNode("true")])),a=new Handlebars.AST.MustacheNode([b].concat([a.id]),a.hash,!a.escaped),Handlebars.Compiler.prototype.mustache.call(this,a)},Ember.Handlebars.precompile=function(a){var b=Handlebars.parse(a),c={knownHelpers:{action:!0,unbound:!0,bindAttr:!0,template:!0,view:!0,_triageMustache:!0},data:!0,stringParams:!0},d=(new Ember.Handlebars.Compiler).compile(b,c);return(new Ember.Handlebars.JavaScriptCompiler).compile(d,c,undefined,!0)},Ember.Handlebars.compile=function(a){var b=Handlebars.parse(a),c={data:!0,stringParams:!0},d=(new Ember.Handlebars.Compiler).compile(b,c),e=(new Ember.Handlebars.JavaScriptCompiler).compile(d,c,undefined,!0);return Handlebars.template(e)};var b=Ember.Handlebars.normalizePath=function(a,b,c){var d=c&&c.keywords||{},e,f;return e=b.split(".",1)[0],d.hasOwnProperty(e)&&(a=d[e],f=!0,b===e?b="":b=b.substr(e.length+1)),{root:a,path:b,isKeyword:f}};Ember.Handlebars.getPath=function(a,c,d){var e=d&&d.data,f=b(a,c,e),g;return a=f.root,c=f.path,g=Ember.get(a,c),g===undefined&&a!==window&&Ember.isGlobalPath(c)&&(g=Ember.get(window,c)),g},Ember.Handlebars.registerHelper("helperMissing",function(a,b){var c,d="";throw c="%@ Handlebars error: Could not find property '%@' on object %@.",b.data&&(d=b.data.view),new Ember.Error(Ember.String.fmt(c,[d,a,this]))})}(),function(){Ember.String.htmlSafe=function(a){return new Handlebars.SafeString(a)};var a=Ember.String.htmlSafe;Ember.EXTEND_PROTOTYPES&&(String.prototype.htmlSafe=function(){return a(this)})}(),function(){var a=Ember.set,b=Ember.get,c={remove:function(b){var c=b.morph;if(c.isRemoved())return;a(b,"element",null),b._lastInsert=null,c.remove()},prepend:function(a,b){b._insertElementLater(function(){var c=a.morph;c.prepend(b.outerHTML),b.outerHTML=null})},after:function(a,b){b._insertElementLater(function(){var c=a.morph;c.after(b.outerHTML),b.outerHTML=null})},replace:function(a){var c=a.morph;a.transitionTo("preRender"),a.clearRenderedChildren();var d=a.renderToBuffer();Ember.run.schedule("render",this,function(){if(b(a,"isDestroyed"))return;a.invalidateRecursively("element"),a._notifyWillInsertElement(),c.replaceWith(d.string()),a.transitionTo("inDOM"),a._notifyDidInsertElement()})},empty:function(a){a.morph.html("")}};Ember._Metamorph=Ember.Mixin.create({isVirtual:!0,tagName:"",init:function(){this._super(),this.morph=Metamorph()},beforeRender:function(a){a.push(this.morph.startTag())},afterRender:function(a){a.push(this.morph.endTag())},createElement:function(){var a=this.renderToBuffer();this.outerHTML=a.string(),this.clearBuffer()},domManager:c}),Ember._MetamorphView=Ember.View.extend(Ember._Metamorph)}(),function(){var a=Ember.get,b=Ember.set,c=Ember.Handlebars.getPath;Ember._HandlebarsBoundView=Ember._MetamorphView.extend({shouldDisplayFunc:null,preserveContext:!1,previousContext:null,displayTemplate:null,inverseTemplate:null,path:null,pathRoot:null,normalizedValue:Ember.computed(function(){var b=a(this,"path"),d=a(this,"pathRoot"),e=a(this,"valueNormalizerFunc"),f,g;return b===""?f=d:(g=a(this,"templateData"),f=c(d,b,{data:g})),e?e(f):f}).property("path","pathRoot","valueNormalizerFunc").volatile(),rerenderIfNeeded:function(){!a(this,"isDestroyed")&&a(this,"normalizedValue")!==this._lastNormalizedValue&&this.rerender()},render:function(c){var d=a(this,"isEscaped"),e=a(this,"shouldDisplayFunc"),f=a(this,"preserveContext"),g=a(this,"previousContext"),h=a(this,"inverseTemplate"),i=a(this,"displayTemplate"),j=a(this,"normalizedValue");this._lastNormalizedValue=j;if(e(j)){b(this,"template",i);if(f)b(this,"_context",g);else{if(!i){j===null||j===undefined?j="":j instanceof Handlebars.SafeString||(j=String(j)),d&&(j=Handlebars.Utils.escapeExpression(j)),c.push(j);return}b(this,"_context",j)}}else h?(b(this,"template",h),f?b(this,"_context",g):b(this,"_context",j)):b(this,"template",function(){return""});return this._super(c)}})}(),function(){function i(a,b,c,f,g){var h=b.data,i=b.fn,j=b.inverse,k=h.view,l=this,m,n,o;o=e(l,a,h),m=o.root,n=o.path;if("object"==typeof this){var p=k.createChildView(Ember._HandlebarsBoundView,{preserveContext:c,shouldDisplayFunc:f,valueNormalizerFunc:g,displayTemplate:i,inverseTemplate:j,path:n,pathRoot:m,previousContext:l,isEscaped:!b.hash.unescaped,templateData:b.data});k.appendChild(p);var q=function(){Ember.run.once(p,"rerenderIfNeeded")};n!==""&&Ember.addObserver(m,n,q)}else h.buffer.push(d(m,n,b))}var a=Ember.get,b=Ember.set,c=Ember.String.fmt,d=Ember.Handlebars.getPath,e=Ember.Handlebars.normalizePath,f=Ember.ArrayPolyfills.forEach,g=Ember.Handlebars,h=g.helpers;g.registerHelper("_triageMustache",function(a,b){return h[a]?h[a].call(this,b):h.bind.apply(this,arguments)}),g.registerHelper("bind",function(a,b){var c=b.contexts&&b.contexts[0]||this;return i.call(c,a,b,!1,function(a){return!Ember.none(a)})}),g.registerHelper("boundIf",function(b,c){var d=c.contexts&&c.contexts[0]||this,e=function(b){return Ember.typeOf(b)==="array"?a(b,"length")!==0:!!b};return i.call(d,b,c,!0,e,e)}),g.registerHelper("with",function(a,b){if(arguments.length===4){var c,d,f,g;b=arguments[3],c=arguments[2],d=arguments[0];if(Ember.isGlobalPath(d))Ember.bind(b.data.keywords,c,d);else{g=e(this,d,b.data),d=g.path,f=g.root;var j=Ember.$.expando+Ember.guidFor(f);b.data.keywords[j]=f;var k=d?j+"."+d:j;Ember.bind(b.data.keywords,c,k)}return i.call(this,d,b.fn,!0,function(a){return!Ember.none(a)})}return h.bind.call(b.contexts[0],a,b)}),g.registerHelper("if",function(a,b){return h.boundIf.call(b.contexts[0],a,b)}),g.registerHelper("unless",function(a,b){var c=b.fn,d=b.inverse;return b.fn=d,b.inverse=c,h.boundIf.call(b.contexts[0],a,b)}),g.registerHelper("bindAttr",function(a){var b=a.hash,c=a.data.view,h=[],i=this,j=++Ember.$.uuid,k=b["class"];if(k!==null&&k!==undefined){var l=g.bindClasses(this,k,c,j,a);h.push('class="'+Handlebars.Utils.escapeExpression(l.join(" "))+'"'),delete b["class"]}var m=Ember.keys(b);return f.call(m,function(f){var g=b[f],k,l;l=e(i,g,a.data),k=l.root,g=l.path;var m=g==="this"?k:d(k,g,a),n=Ember.typeOf(m),o,p;o=function(){var e=d(k,g,a),h=c.$("[data-bindattr-"+j+"='"+j+"']");if(h.length===0){Ember.removeObserver(k,g,p);return}Ember.View.applyAttributeBindings(h,f,e)},p=function(){Ember.run.once(o)},g!=="this"&&Ember.addObserver(k,g,p),n==="string"||n==="number"&&!isNaN(m)?h.push(f+'="'+Handlebars.Utils.escapeExpression(m)+'"'):m&&n==="boolean"&&h.push(f+'="'+f+'"')},this),h.push("data-bindattr-"+j+'="'+j+'"'),new g.SafeString(h.join(" "))}),g.bindClasses=function(a,b,c,g,h){var i=[],j,k,l,m=function(a,b,c){var e,f=b.path;return f==="this"?e=a:f===""?e=!0:e=d(a,f,c),Ember.View._classStringForValue(f,e,b.className,b.falsyClassName)};return f.call(b.split(" "),function(b){var d,f,n,o=Ember.View._parsePropertyPath(b),p=o.path,q=a,r;p!==""&&p!=="this"&&(r=e(a,p,h.data),q=r.root,p=r.path),f=function(){j=m(q,o,h),l=g?c.$("[data-bindattr-"+g+"='"+g+"']"):c.$(),l.length===0?Ember.removeObserver(q,p,n):(d&&l.removeClass(d),j?(l.addClass(j),d=j):d=null)},n=function(){Ember.run.once(f)},p!==""&&p!=="this"&&Ember.addObserver(q,p,n),k=m(q,o,h),k&&(i.push(k),d=k)}),i}}(),function(){var a=Ember.get,b=Ember.set,c=/^parentView\./,d=Ember.Handlebars,e=Ember.VIEW_PRESERVES_CONTEXT;d.ViewHelper=Ember.Object.create({propertiesFromHTMLOptions:function(a,b){var c=a.hash,d=a.data,e={},f=c["class"],g=!1;c.id&&(e.elementId=c.id,g=!0),f&&(f=f.split(" "),e.classNames=f,g=!0),c.classBinding&&(e.classNameBindings=c.classBinding.split(" "),g=!0),c.classNameBindings&&(e.classNameBindings===undefined&&(e.classNameBindings=[]),e.classNameBindings=e.classNameBindings.concat(c.classNameBindings.split(" ")),g=!0),c.attributeBindings&&(e.attributeBindings=null,g=!0),g&&(c=Ember.$.extend({},c),delete c.id,delete c["class"],delete c.classBinding);var h;for(var i in c){if(!c.hasOwnProperty(i))continue;Ember.IS_BINDING.test(i)&&typeof c[i]=="string"&&(h=this.contextualizeBindingPath(c[i],d),h&&(c[i]=h))}if(e.classNameBindings)for(var j in e.classNameBindings){var k=e.classNameBindings[j];if(typeof k=="string"){var l=Ember.View._parsePropertyPath(k);h=this.contextualizeBindingPath(l.path,d),h&&(e.classNameBindings[j]=h+l.classNames)}}return e.bindingContext=b,Ember.$.extend(c,e)},contextualizeBindingPath:function(a,b){var c=Ember.Handlebars.normalizePath(null,a,b);return c.isKeyword?"templateData.keywords."+a:Ember.isGlobalPath(a)?null:a==="this"?"bindingContext":"bindingContext."+a},helper:function(a,b,c){var f=c.inverse,g=c.data,h=g.view,i=c.fn,j=c.hash,k;"string"==typeof b?k=d.getPath(a,b,c):k=b;var l=this.propertiesFromHTMLOptions(c,a),m=g.view;l.templateData=c.data,i&&(l.template=i),e&&!k.proto().controller&&!k.proto().controllerBinding&&!l.controller&&!l.controllerBinding&&(l._context=a),m.appendChild(k,l)}}),d.registerHelper("view",function(a,b){return a&&a.data&&a.data.isRenderData&&(b=a,a="Ember.View"),d.ViewHelper.helper(this,a,b)})}(),function(){var a=Ember.get,b=Ember.Handlebars.getPath,c=Ember.String.fmt;Ember.Handlebars.registerHelper("collection",function(c,d){c&&c.data&&c.data.isRenderData&&(d=c,c=undefined);var e=d.fn,f=d.data,g=d.inverse,h;h=c?b(this,c,d):Ember.CollectionView;var i=d.hash,j={},k,l,m=i.itemViewClass,n=h.proto();delete i.itemViewClass,l=m?b(n,m,d):n.itemViewClass;for(var o in i)i.hasOwnProperty(o)&&(k=o.match(/^item(.)(.*)$/),k&&(j[k[1].toLowerCase()+k[2]]=i[o],delete i[o]));var p=i.tagName||n.tagName;e&&(j.template=e,delete d.fn);var q;g&&g!==Handlebars.VM.noop?(q=a(n,"emptyViewClass"),q=q.extend({template:g,tagName:j.tagName})):i.emptyViewClass&&(q=b(this,i.emptyViewClass,d)),i.emptyView=q,i.eachHelper==="each"&&(j._context=Ember.computed(function(){return a(this,"content")}).property("content"),delete i.eachHelper);var r=Ember.Handlebars.ViewHelper.propertiesFromHTMLOptions({data:f,hash:j},this);return i.itemViewClass=l.extend(r),Ember.Handlebars.helpers.view.call(this,h,d)})}(),function(){var a=Ember.Handlebars.getPath;Ember.Handlebars.registerHelper("unbound",function(b,c){var d=c.contexts&&c.contexts[0]||this;return a(d,b,c)})}(),function(){var a=Ember.Handlebars.getPath,b=Ember.Handlebars.normalizePath;Ember.Handlebars.registerHelper("log",function(c,d){var e=d.contexts&&d.contexts[0]||this,f=b(e,c,d.data),g=f.root,h=f.path,i=h==="this"?g:a(g,h,d);Ember.Logger.log(i)}),Ember.Handlebars.registerHelper("debugger",function(){debugger})}(),function(){var a=Ember.get,b=Ember.set;Ember.Handlebars.EachView=Ember.CollectionView.extend(Ember._Metamorph,{itemViewClass:Ember._MetamorphView,emptyViewClass:Ember._MetamorphView,createChildView:function(c,d){c=this._super(c,d);var e=a(this,"keyword");if(e){var f=a(c,"templateData");f=Ember.copy(f),f.keywords=c.cloneKeywords(),b(c,"templateData",f);var g=a(c,"content");f.keywords[e]=g}return c}}),Ember.Handlebars.registerHelper("each",function(a,b){if(arguments.length===4){var c=arguments[0];b=arguments[3],a=arguments[2],a===""&&(a="this"),b.hash.keyword=c}else b.hash.eachHelper="each";return b.hash.contentBinding=a,Ember.Handlebars.helpers.collection.call(this,"Ember.Handlebars.EachView",b)})}(),function(){Ember.Handlebars.registerHelper("template",function(a,b){var c=Ember.TEMPLATES[a];Ember.TEMPLATES[a](this,{data:b.data})})}(),function(){var a=Ember.Handlebars,b=a.getPath,c=Ember.get,d=Array.prototype.slice,e=a.ActionHelper={registeredActions:{}};e.registerAction=function(a,b){var c=(++Ember.$.uuid).toString();return e.registeredActions[c]={eventName:b.eventName,handler:function(c){var d=c.shiftKey||c.metaKey||c.altKey||c.ctrlKey,e=c.which>1,f=d||e;if(b.link&&f)return;c.preventDefault(),c.view=b.view,b.hasOwnProperty("context")&&(c.context=b.context),b.hasOwnProperty("contexts")&&(c.contexts=b.contexts);var g=b.target;return g.isState&&typeof g.send=="function"?g.send(a,c):g[a].call(g,c)}},b.view.on("willRerender",function(){delete e.registeredActions[c]}),c},a.registerHelper("action",function(f){var g=arguments[arguments.length-1],h=d.call(arguments,1,-1),i=g.hash,j=g.data.view,k,l,m,n={eventName:i.on||"click"};n.view=j=c(j,"concreteView");if(i.target)k=b(this,i.target,g);else if(l=g.data.keywords.controller)k=c(l,"target");n.target=k=k||j,h.length&&(n.contexts=h=Ember.EnumerableUtils.map(h,function(a){return b(this,a,g)},this),n.context=h[0]);var o=[],p;i.href&&k.urlForEvent&&(p=k.urlForEvent.apply(k,[f].concat(h)),o.push('href="'+p+'"'),n.link=!0);var q=e.registerAction(f,n);return o.push('data-ember-action="'+q+'"'),new a.SafeString(o.join(" "))})}(),function(){var a=Ember.get,b=Ember.set;Ember.Handlebars.registerHelper("yield",function(b){var c=b.data.view,d;while(c&&!a(c,"layout"))c=a(c,"parentView");d=a(c,"template"),d&&d(this,b)})}(),function(){Ember.Handlebars.registerHelper("outlet",function(a,b){return a&&a.data&&a.data.isRenderData&&(b=a,a="view"),b.hash.currentViewBinding="controller."+a,Ember.Handlebars
.helpers.view.call(this,Ember.ContainerView,b)})}(),function(){}(),function(){}(),function(){var a=Ember.set,b=Ember.get;Ember.Checkbox=Ember.View.extend({classNames:["ember-checkbox"],tagName:"input",attributeBindings:["type","checked","disabled","tabindex"],type:"checkbox",checked:!1,disabled:!1,init:function(){this._super(),this.on("change",this,this._updateElementValue)},_updateElementValue:function(){a(this,"checked",this.$().prop("checked"))}})}(),function(){var a=Ember.get,b=Ember.set;Ember.TextSupport=Ember.Mixin.create({value:"",attributeBindings:["placeholder","disabled","maxlength","tabindex"],placeholder:null,disabled:!1,maxlength:null,insertNewline:Ember.K,cancel:Ember.K,init:function(){this._super(),this.on("focusOut",this,this._elementValueDidChange),this.on("change",this,this._elementValueDidChange),this.on("keyUp",this,this.interpretKeyEvents)},interpretKeyEvents:function(a){var b=Ember.TextSupport.KEY_EVENTS,c=b[a.keyCode];this._elementValueDidChange();if(c)return this[c](a)},_elementValueDidChange:function(){b(this,"value",this.$().val())}}),Ember.TextSupport.KEY_EVENTS={13:"insertNewline",27:"cancel"}}(),function(){var a=Ember.get,b=Ember.set;Ember.TextField=Ember.View.extend(Ember.TextSupport,{classNames:["ember-text-field"],tagName:"input",attributeBindings:["type","value","size"],value:"",type:"text",size:null})}(),function(){var a=Ember.get,b=Ember.set;Ember.Button=Ember.View.extend(Ember.TargetActionSupport,{classNames:["ember-button"],classNameBindings:["isActive"],tagName:"button",propagateEvents:!1,attributeBindings:["type","disabled","href","tabindex"],targetObject:Ember.computed(function(){var b=a(this,"target"),c=a(this,"context"),d=a(this,"templateData");return typeof b!="string"?b:Ember.Handlebars.getPath(c,b,{data:d})}).property("target").cacheable(),type:Ember.computed(function(a,b){var c=this.get("tagName");b!==undefined&&(this._type=b);if(this._type!==undefined)return this._type;if(c==="input"||c==="button")return"button"}).property("tagName").cacheable(),disabled:!1,href:Ember.computed(function(){return this.get("tagName")==="a"?"#":null}).property("tagName").cacheable(),mouseDown:function(){return a(this,"disabled")||(b(this,"isActive",!0),this._mouseDown=!0,this._mouseEntered=!0),a(this,"propagateEvents")},mouseLeave:function(){this._mouseDown&&(b(this,"isActive",!1),this._mouseEntered=!1)},mouseEnter:function(){this._mouseDown&&(b(this,"isActive",!0),this._mouseEntered=!0)},mouseUp:function(c){return a(this,"isActive")&&(this.triggerAction(),b(this,"isActive",!1)),this._mouseDown=!1,this._mouseEntered=!1,a(this,"propagateEvents")},keyDown:function(a){(a.keyCode===13||a.keyCode===32)&&this.mouseDown()},keyUp:function(a){(a.keyCode===13||a.keyCode===32)&&this.mouseUp()},touchStart:function(a){return this.mouseDown(a)},touchEnd:function(a){return this.mouseUp(a)},init:function(){this._super()}})}(),function(){var a=Ember.get,b=Ember.set;Ember.TextArea=Ember.View.extend(Ember.TextSupport,{classNames:["ember-text-area"],tagName:"textarea",attributeBindings:["rows","cols"],rows:null,cols:null,_updateElementValue:Ember.observer(function(){var b=a(this,"value"),c=this.$();c&&b!==c.val()&&c.val(b)},"value"),init:function(){this._super(),this.on("didInsertElement",this,this._updateElementValue)}})}(),function(){Ember.TabContainerView=Ember.View.extend({init:function(){this._super()}})}(),function(){var a=Ember.get;Ember.TabPaneView=Ember.View.extend({tabsContainer:Ember.computed(function(){return this.nearestInstanceOf(Ember.TabContainerView)}).property().volatile(),isVisible:Ember.computed(function(){return a(this,"viewName")===a(this,"tabsContainer.currentView")}).property("tabsContainer.currentView").volatile(),init:function(){this._super()}})}(),function(){var a=Ember.get,b=Ember.setPath;Ember.TabView=Ember.View.extend({tabsContainer:Ember.computed(function(){return this.nearestInstanceOf(Ember.TabContainerView)}).property().volatile(),mouseUp:function(){b(this,"tabsContainer.currentView",a(this,"value"))},init:function(){this._super()}})}(),function(){}(),function(){var a=Ember.set,b=Ember.get,c=Ember.EnumerableUtils.indexOf,d=Ember.EnumerableUtils.indexesOf;Ember.Select=Ember.View.extend({tagName:"select",classNames:["ember-select"],defaultTemplate:Ember.Handlebars.template(function(b,c,d,e,f){function q(a,b){var c="",e,f,g,h;return b.buffer.push("<option value>"),e=a,f="view.prompt",g={},h="true",g.escaped=h,h=d._triageMustache||a._triageMustache,k={},k.hash=g,k.contexts=[],k.contexts.push(e),k.data=b,typeof h===m?e=h.call(a,f,k):h===o?e=n.call(a,"_triageMustache",f,k):e=h,b.buffer.push(p(e)+"</option>"),c}function r(a,b){var c,e,f,g;c=a,e="Ember.SelectOption",f={},g="this",f.contentBinding=g,g=d.view||a.view,k={},k.hash=f,k.contexts=[],k.contexts.push(c),k.data=b,typeof g===m?c=g.call(a,e,k):g===o?c=n.call(a,"view",e,k):c=g,b.buffer.push(p(c))}d=d||Ember.Handlebars.helpers;var g="",h,i,j,k,l=this,m="function",n=d.helperMissing,o=void 0,p=this.escapeExpression;return h=c,i="view.prompt",j=d["if"],k=l.program(1,q,f),k.hash={},k.contexts=[],k.contexts.push(h),k.fn=k,k.inverse=l.noop,k.data=f,h=j.call(c,i,k),(h||h===0)&&f.buffer.push(h),h=c,i="view.content",j=d.each,k=l.program(3,r,f),k.hash={},k.contexts=[],k.contexts.push(h),k.fn=k,k.inverse=l.noop,k.data=f,h=j.call(c,i,k),(h||h===0)&&f.buffer.push(h),g}),attributeBindings:["multiple","tabindex"],multiple:!1,content:null,selection:null,value:Ember.computed(function(a,c){if(arguments.length===2)return c;var d=b(this,"optionValuePath").replace(/^content\.?/,"");return d?b(this,"selection."+d):b(this,"selection")}).property("selection").cacheable(),prompt:null,optionLabelPath:"content",optionValuePath:"content",_change:function(){b(this,"multiple")?this._changeMultiple():this._changeSingle()},selectionDidChange:Ember.observer(function(){var c=b(this,"selection"),d=Ember.isArray(c);if(b(this,"multiple")){if(!d){a(this,"selection",Ember.A([c]));return}this._selectionDidChangeMultiple()}else this._selectionDidChangeSingle()},"selection"),valueDidChange:Ember.observer(function(){var a=b(this,"content"),c=b(this,"value"),d=b(this,"optionValuePath").replace(/^content\.?/,""),e=d?b(this,"selection."+d):b(this,"selection"),f;c!==e&&(f=a.find(function(a){return c===(d?b(a,d):a)}),this.set("selection",f))},"value"),_triggerChange:function(){var a=b(this,"selection");a&&this.selectionDidChange(),this._change()},_changeSingle:function(){var c=this.$()[0].selectedIndex,d=b(this,"content"),e=b(this,"prompt");if(!d)return;if(e&&c===0){a(this,"selection",null);return}e&&(c-=1),a(this,"selection",d.objectAt(c))},_changeMultiple:function(){var c=this.$("option:selected"),d=b(this,"prompt"),e=d?1:0,f=b(this,"content");if(!f)return;if(c){var g=c.map(function(){return this.index-e}).toArray();a(this,"selection",f.objectsAt(g))}},_selectionDidChangeSingle:function(){var a=this.get("element");if(!a)return;var d=b(this,"content"),e=b(this,"selection"),f=d?c(d,e):-1,g=b(this,"prompt");g&&(f+=1),a&&(a.selectedIndex=f)},_selectionDidChangeMultiple:function(){var a=b(this,"content"),e=b(this,"selection"),f=a?d(a,e):[-1],g=b(this,"prompt"),h=g?1:0,i=this.$("option"),j;i&&i.each(function(){j=this.index>-1?this.index+h:-1,this.selected=c(f,j)>-1})},init:function(){this._super(),this.on("didInsertElement",this,this._triggerChange),this.on("change",this,this._change)}}),Ember.SelectOption=Ember.View.extend({tagName:"option",attributeBindings:["value","selected"],defaultTemplate:function(a,b){b={data:b.data,hash:{}},Ember.Handlebars.helpers.bind.call(a,"view.label",b)},init:function(){this.labelPathDidChange(),this.valuePathDidChange(),this._super()},selected:Ember.computed(function(){var a=b(this,"content"),d=b(this,"parentView.selection");return b(this,"parentView.multiple")?d&&c(d,a)>-1:a==d}).property("content","parentView.selection").volatile(),labelPathDidChange:Ember.observer(function(){var a=b(this,"parentView.optionLabelPath");if(!a)return;Ember.defineProperty(this,"label",Ember.computed(function(){return b(this,a)}).property(a).cacheable())},"parentView.optionLabelPath"),valuePathDidChange:Ember.observer(function(){var a=b(this,"parentView.optionValuePath");if(!a)return;Ember.defineProperty(this,"value",Ember.computed(function(){return b(this,a)}).property(a).cacheable())},"parentView.optionValuePath")})}(),function(){}(),function(){function a(){Ember.Handlebars.bootstrap(Ember.$(document))}Ember.Handlebars.bootstrap=function(a){var b='script[type="text/x-handlebars"], script[type="text/x-raw-handlebars"]';Ember.$(b,a).each(function(){var a=Ember.$(this),b=a.attr("type"),c=a.attr("type")==="text/x-raw-handlebars"?Ember.$.proxy(Handlebars.compile,Handlebars):Ember.$.proxy(Ember.Handlebars.compile,Ember.Handlebars),d=a.attr("data-template-name")||a.attr("id"),e=c(a.html()),f,g,h,i;if(d)Ember.TEMPLATES[d]=e,a.remove();else{if(a.parents("head").length!==0)throw new Ember.Error("Template found in <head> without a name specified. Please provide a data-template-name attribute.\n"+a.html());g=a.attr("data-view"),f=g?Ember.get(g):Ember.View,h=a.attr("data-element-id"),i={template:e},h&&(i.elementId=h),f=f.create(i),f._insertElementLater(function(){a.replaceWith(this.$()),a=null})}})},Ember.$(document).ready(a),Ember.onLoad("application",a)}(),function(){}(); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/lib/handlebars-1.0.0.beta.6.js b/SDL_Core/src/components/HMI/lib/handlebars-1.0.0.beta.6.js
index e8e01d487..70665b1c3 100755..100644
--- a/SDL_Core/src/components/HMI/lib/handlebars-1.0.0.beta.6.js
+++ b/SDL_Core/src/components/HMI/lib/handlebars-1.0.0.beta.6.js
@@ -1,1573 +1,1550 @@
-// ==========================================================================
-// Copyright: Copyright (C) 2011 by Yehuda Katz
-// License: Licensed under MIT license (see license.js)
-// ==========================================================================
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// ==========================================================================
-
-// lib/handlebars/base.js
-var Handlebars = {};
-
-Handlebars.VERSION = "1.0.beta.6";
-
-Handlebars.helpers = {};
-Handlebars.partials = {};
-
-Handlebars.registerHelper = function(name, fn, inverse) {
- if(inverse) { fn.not = inverse; }
- this.helpers[name] = fn;
-};
-
-Handlebars.registerPartial = function(name, str) {
- this.partials[name] = str;
-};
-
-Handlebars.registerHelper('helperMissing', function(arg) {
- if(arguments.length === 2) {
- return undefined;
- } else {
- throw new Error("Could not find property '" + arg + "'");
- }
-});
-
-var toString = Object.prototype.toString, functionType = "[object Function]";
-
-Handlebars.registerHelper('blockHelperMissing', function(context, options) {
- var inverse = options.inverse || function() {}, fn = options.fn;
-
-
- var ret = "";
- var type = toString.call(context);
-
- if(type === functionType) { context = context.call(this); }
-
- if(context === true) {
- return fn(this);
- } else if(context === false || context == null) {
- return inverse(this);
- } else if(type === "[object Array]") {
- if(context.length > 0) {
- for(var i=0, j=context.length; i<j; i++) {
- ret = ret + fn(context[i]);
- }
- } else {
- ret = inverse(this);
- }
- return ret;
- } else {
- return fn(context);
- }
-});
-
-Handlebars.registerHelper('each', function(context, options) {
- var fn = options.fn, inverse = options.inverse;
- var ret = "";
-
- if(context && context.length > 0) {
- for(var i=0, j=context.length; i<j; i++) {
- ret = ret + fn(context[i]);
- }
- } else {
- ret = inverse(this);
- }
- return ret;
-});
-
-Handlebars.registerHelper('if', function(context, options) {
- var type = toString.call(context);
- if(type === functionType) { context = context.call(this); }
-
- if(!context || Handlebars.Utils.isEmpty(context)) {
- return options.inverse(this);
- } else {
- return options.fn(this);
- }
-});
-
-Handlebars.registerHelper('unless', function(context, options) {
- var fn = options.fn, inverse = options.inverse;
- options.fn = inverse;
- options.inverse = fn;
-
- return Handlebars.helpers['if'].call(this, context, options);
-});
-
-Handlebars.registerHelper('with', function(context, options) {
- return options.fn(context);
-});
-
-Handlebars.registerHelper('log', function(context) {
- Handlebars.log(context);
-});
-;
-// lib/handlebars/compiler/parser.js
-/* Jison generated parser */
-var handlebars = (function(){
-
-var parser = {trace: function trace() { },
-yy: {},
-symbols_: {"error":2,"root":3,"program":4,"EOF":5,"statements":6,"simpleInverse":7,"statement":8,"openInverse":9,"closeBlock":10,"openBlock":11,"mustache":12,"partial":13,"CONTENT":14,"COMMENT":15,"OPEN_BLOCK":16,"inMustache":17,"CLOSE":18,"OPEN_INVERSE":19,"OPEN_ENDBLOCK":20,"path":21,"OPEN":22,"OPEN_UNESCAPED":23,"OPEN_PARTIAL":24,"params":25,"hash":26,"param":27,"STRING":28,"INTEGER":29,"BOOLEAN":30,"hashSegments":31,"hashSegment":32,"ID":33,"EQUALS":34,"pathSegments":35,"SEP":36,"$accept":0,"$end":1},
-terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"OPEN_PARTIAL",28:"STRING",29:"INTEGER",30:"BOOLEAN",33:"ID",34:"EQUALS",36:"SEP"},
-productions_: [0,[3,2],[4,3],[4,1],[4,0],[6,1],[6,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[7,2],[17,3],[17,2],[17,2],[17,1],[25,2],[25,1],[27,1],[27,1],[27,1],[27,1],[26,1],[31,2],[31,1],[32,3],[32,3],[32,3],[32,3],[21,1],[35,3],[35,1]],
-performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
-
-var $0 = $$.length - 1;
-switch (yystate) {
-case 1: return $$[$0-1]
-break;
-case 2: this.$ = new yy.ProgramNode($$[$0-2], $$[$0])
-break;
-case 3: this.$ = new yy.ProgramNode($$[$0])
-break;
-case 4: this.$ = new yy.ProgramNode([])
-break;
-case 5: this.$ = [$$[$0]]
-break;
-case 6: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]
-break;
-case 7: this.$ = new yy.InverseNode($$[$0-2], $$[$0-1], $$[$0])
-break;
-case 8: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0])
-break;
-case 9: this.$ = $$[$0]
-break;
-case 10: this.$ = $$[$0]
-break;
-case 11: this.$ = new yy.ContentNode($$[$0])
-break;
-case 12: this.$ = new yy.CommentNode($$[$0])
-break;
-case 13: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1])
-break;
-case 14: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1])
-break;
-case 15: this.$ = $$[$0-1]
-break;
-case 16: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1])
-break;
-case 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true)
-break;
-case 18: this.$ = new yy.PartialNode($$[$0-1])
-break;
-case 19: this.$ = new yy.PartialNode($$[$0-2], $$[$0-1])
-break;
-case 20:
-break;
-case 21: this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]]
-break;
-case 22: this.$ = [[$$[$0-1]].concat($$[$0]), null]
-break;
-case 23: this.$ = [[$$[$0-1]], $$[$0]]
-break;
-case 24: this.$ = [[$$[$0]], null]
-break;
-case 25: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
-break;
-case 26: this.$ = [$$[$0]]
-break;
-case 27: this.$ = $$[$0]
-break;
-case 28: this.$ = new yy.StringNode($$[$0])
-break;
-case 29: this.$ = new yy.IntegerNode($$[$0])
-break;
-case 30: this.$ = new yy.BooleanNode($$[$0])
-break;
-case 31: this.$ = new yy.HashNode($$[$0])
-break;
-case 32: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]
-break;
-case 33: this.$ = [$$[$0]]
-break;
-case 34: this.$ = [$$[$0-2], $$[$0]]
-break;
-case 35: this.$ = [$$[$0-2], new yy.StringNode($$[$0])]
-break;
-case 36: this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])]
-break;
-case 37: this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])]
-break;
-case 38: this.$ = new yy.IdNode($$[$0])
-break;
-case 39: $$[$0-2].push($$[$0]); this.$ = $$[$0-2];
-break;
-case 40: this.$ = [$$[$0]]
-break;
-}
-},
-table: [{3:1,4:2,5:[2,4],6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{1:[3]},{5:[1,16]},{5:[2,3],7:17,8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,19],20:[2,3],22:[1,13],23:[1,14],24:[1,15]},{5:[2,5],14:[2,5],15:[2,5],16:[2,5],19:[2,5],20:[2,5],22:[2,5],23:[2,5],24:[2,5]},{4:20,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{4:21,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],24:[2,9]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],24:[2,10]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],24:[2,11]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],24:[2,12]},{17:22,21:23,33:[1,25],35:24},{17:26,21:23,33:[1,25],35:24},{17:27,21:23,33:[1,25],35:24},{17:28,21:23,33:[1,25],35:24},{21:29,33:[1,25],35:24},{1:[2,1]},{6:30,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{5:[2,6],14:[2,6],15:[2,6],16:[2,6],19:[2,6],20:[2,6],22:[2,6],23:[2,6],24:[2,6]},{17:22,18:[1,31],21:23,33:[1,25],35:24},{10:32,20:[1,33]},{10:34,20:[1,33]},{18:[1,35]},{18:[2,24],21:40,25:36,26:37,27:38,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,38],28:[2,38],29:[2,38],30:[2,38],33:[2,38],36:[1,46]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],36:[2,40]},{18:[1,47]},{18:[1,48]},{18:[1,49]},{18:[1,50],21:51,33:[1,25],35:24},{5:[2,2],8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,2],22:[1,13],23:[1,14],24:[1,15]},{14:[2,20],15:[2,20],16:[2,20],19:[2,20],22:[2,20],23:[2,20],24:[2,20]},{5:[2,7],14:[2,7],15:[2,7],16:[2,7],19:[2,7],20:[2,7],22:[2,7],23:[2,7],24:[2,7]},{21:52,33:[1,25],35:24},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],24:[2,8]},{14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],24:[2,14]},{18:[2,22],21:40,26:53,27:54,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,23]},{18:[2,26],28:[2,26],29:[2,26],30:[2,26],33:[2,26]},{18:[2,31],32:55,33:[1,56]},{18:[2,27],28:[2,27],29:[2,27],30:[2,27],33:[2,27]},{18:[2,28],28:[2,28],29:[2,28],30:[2,28],33:[2,28]},{18:[2,29],28:[2,29],29:[2,29],30:[2,29],33:[2,29]},{18:[2,30],28:[2,30],29:[2,30],30:[2,30],33:[2,30]},{18:[2,33],33:[2,33]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],34:[1,57],36:[2,40]},{33:[1,58]},{14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],24:[2,13]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],24:[2,16]},{5:[2,17],14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],24:[2,17]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],24:[2,18]},{18:[1,59]},{18:[1,60]},{18:[2,21]},{18:[2,25],28:[2,25],29:[2,25],30:[2,25],33:[2,25]},{18:[2,32],33:[2,32]},{34:[1,57]},{21:61,28:[1,62],29:[1,63],30:[1,64],33:[1,25],35:24},{18:[2,39],28:[2,39],29:[2,39],30:[2,39],33:[2,39],36:[2,39]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],24:[2,19]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],24:[2,15]},{18:[2,34],33:[2,34]},{18:[2,35],33:[2,35]},{18:[2,36],33:[2,36]},{18:[2,37],33:[2,37]}],
-defaultActions: {16:[2,1],37:[2,23],53:[2,21]},
-parseError: function parseError(str, hash) {
- throw new Error(str);
-},
-parse: function parse(input) {
- var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
- this.lexer.setInput(input);
- this.lexer.yy = this.yy;
- this.yy.lexer = this.lexer;
- if (typeof this.lexer.yylloc == "undefined")
- this.lexer.yylloc = {};
- var yyloc = this.lexer.yylloc;
- lstack.push(yyloc);
- if (typeof this.yy.parseError === "function")
- this.parseError = this.yy.parseError;
- function popStack(n) {
- stack.length = stack.length - 2 * n;
- vstack.length = vstack.length - n;
- lstack.length = lstack.length - n;
- }
- function lex() {
- var token;
- token = self.lexer.lex() || 1;
- if (typeof token !== "number") {
- token = self.symbols_[token] || token;
- }
- return token;
- }
- var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state = stack[stack.length - 1];
- if (this.defaultActions[state]) {
- action = this.defaultActions[state];
- } else {
- if (symbol == null)
- symbol = lex();
- action = table[state] && table[state][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- if (!recovering) {
- expected = [];
- for (p in table[state])
- if (this.terminals_[p] && p > 2) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- var errStr = "";
- if (this.lexer.showPosition) {
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + this.terminals_[symbol] + "'";
- } else {
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
- }
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(this.lexer.yytext);
- lstack.push(this.lexer.yylloc);
- stack.push(action[1]);
- symbol = null;
- if (!preErrorSymbol) {
- yyleng = this.lexer.yyleng;
- yytext = this.lexer.yytext;
- yylineno = this.lexer.yylineno;
- yyloc = this.lexer.yylloc;
- if (recovering > 0)
- recovering--;
- } else {
- symbol = preErrorSymbol;
- preErrorSymbol = null;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};
- r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
- }
- return true;
-}
-};/* Jison generated lexer */
-var lexer = (function(){
-
-var lexer = ({EOF:1,
-parseError:function parseError(str, hash) {
- if (this.yy.parseError) {
- this.yy.parseError(str, hash);
- } else {
- throw new Error(str);
- }
- },
-setInput:function (input) {
- this._input = input;
- this._more = this._less = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = '';
- this.conditionStack = ['INITIAL'];
- this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
- return this;
- },
-input:function () {
- var ch = this._input[0];
- this.yytext+=ch;
- this.yyleng++;
- this.match+=ch;
- this.matched+=ch;
- var lines = ch.match(/\n/);
- if (lines) this.yylineno++;
- this._input = this._input.slice(1);
- return ch;
- },
-unput:function (ch) {
- this._input = ch + this._input;
- return this;
- },
-more:function () {
- this._more = true;
- return this;
- },
-pastInput:function () {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
- },
-upcomingInput:function () {
- var next = this.match;
- if (next.length < 20) {
- next += this._input.substr(0, 20-next.length);
- }
- return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
- },
-showPosition:function () {
- var pre = this.pastInput();
- var c = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c+"^";
- },
-next:function () {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) this.done = true;
-
- var token,
- match,
- col,
- lines;
- if (!this._more) {
- this.yytext = '';
- this.match = '';
- }
- var rules = this._currentRules();
- for (var i=0;i < rules.length; i++) {
- match = this._input.match(this.rules[rules[i]]);
- if (match) {
- lines = match[0].match(/\n.*/g);
- if (lines) this.yylineno += lines.length;
- this.yylloc = {first_line: this.yylloc.last_line,
- last_line: this.yylineno+1,
- first_column: this.yylloc.last_column,
- last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- this._more = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]);
- if (token) return token;
- else return;
- }
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
- {text: "", token: null, line: this.yylineno});
- }
- },
-lex:function lex() {
- var r = this.next();
- if (typeof r !== 'undefined') {
- return r;
- } else {
- return this.lex();
- }
- },
-begin:function begin(condition) {
- this.conditionStack.push(condition);
- },
-popState:function popState() {
- return this.conditionStack.pop();
- },
-_currentRules:function _currentRules() {
- return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
- },
-topState:function () {
- return this.conditionStack[this.conditionStack.length-2];
- },
-pushState:function begin(condition) {
- this.begin(condition);
- }});
-lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
-
-var YYSTATE=YY_START
-switch($avoiding_name_collisions) {
-case 0:
- if(yy_.yytext.slice(-1) !== "\\") this.begin("mu");
- if(yy_.yytext.slice(-1) === "\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin("emu");
- if(yy_.yytext) return 14;
-
-break;
-case 1: return 14;
-break;
-case 2: this.popState(); return 14;
-break;
-case 3: return 24;
-break;
-case 4: return 16;
-break;
-case 5: return 20;
-break;
-case 6: return 19;
-break;
-case 7: return 19;
-break;
-case 8: return 23;
-break;
-case 9: return 23;
-break;
-case 10: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15;
-break;
-case 11: return 22;
-break;
-case 12: return 34;
-break;
-case 13: return 33;
-break;
-case 14: return 33;
-break;
-case 15: return 36;
-break;
-case 16: /*ignore whitespace*/
-break;
-case 17: this.popState(); return 18;
-break;
-case 18: this.popState(); return 18;
-break;
-case 19: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return 28;
-break;
-case 20: return 30;
-break;
-case 21: return 30;
-break;
-case 22: return 29;
-break;
-case 23: return 33;
-break;
-case 24: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 33;
-break;
-case 25: return 'INVALID';
-break;
-case 26: return 5;
-break;
-}
-};
-lexer.rules = [/^[^\x00]*?(?=(\{\{))/,/^[^\x00]+/,/^[^\x00]{2,}?(?=(\{\{))/,/^\{\{>/,/^\{\{#/,/^\{\{\//,/^\{\{\^/,/^\{\{\s*else\b/,/^\{\{\{/,/^\{\{&/,/^\{\{![\s\S]*?\}\}/,/^\{\{/,/^=/,/^\.(?=[} ])/,/^\.\./,/^[\/.]/,/^\s+/,/^\}\}\}/,/^\}\}/,/^"(\\["]|[^"])*"/,/^true(?=[}\s])/,/^false(?=[}\s])/,/^[0-9]+(?=[}\s])/,/^[a-zA-Z0-9_$-]+(?=[=}\s\/.])/,/^\[[^\]]*\]/,/^./,/^$/];
-lexer.conditions = {"mu":{"rules":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"INITIAL":{"rules":[0,1,26],"inclusive":true}};return lexer;})()
-parser.lexer = lexer;
-return parser;
-})();
-if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
-exports.parser = handlebars;
-exports.parse = function () { return handlebars.parse.apply(handlebars, arguments); }
-exports.main = function commonjsMain(args) {
- if (!args[1])
- throw new Error('Usage: '+args[0]+' FILE');
- if (typeof process !== 'undefined') {
- var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8");
- } else {
- var cwd = require("file").path(require("file").cwd());
- var source = cwd.join(args[1]).read({charset: "utf-8"});
- }
- return exports.parser.parse(source);
-}
-if (typeof module !== 'undefined' && require.main === module) {
- exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args);
-}
-};
-;
-// lib/handlebars/compiler/base.js
-Handlebars.Parser = handlebars;
-
-Handlebars.parse = function(string) {
- Handlebars.Parser.yy = Handlebars.AST;
- return Handlebars.Parser.parse(string);
-};
-
-Handlebars.print = function(ast) {
- return new Handlebars.PrintVisitor().accept(ast);
-};
-
-Handlebars.logger = {
- DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
-
- // override in the host environment
- log: function(level, str) {}
-};
-
-Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); };
-;
-// lib/handlebars/compiler/ast.js
-(function() {
-
- Handlebars.AST = {};
-
- Handlebars.AST.ProgramNode = function(statements, inverse) {
- this.type = "program";
- this.statements = statements;
- if(inverse) { this.inverse = new Handlebars.AST.ProgramNode(inverse); }
- };
-
- Handlebars.AST.MustacheNode = function(params, hash, unescaped) {
- this.type = "mustache";
- this.id = params[0];
- this.params = params.slice(1);
- this.hash = hash;
- this.escaped = !unescaped;
- };
-
- Handlebars.AST.PartialNode = function(id, context) {
- this.type = "partial";
-
- // TODO: disallow complex IDs
-
- this.id = id;
- this.context = context;
- };
-
- var verifyMatch = function(open, close) {
- if(open.original !== close.original) {
- throw new Handlebars.Exception(open.original + " doesn't match " + close.original);
- }
- };
-
- Handlebars.AST.BlockNode = function(mustache, program, close) {
- verifyMatch(mustache.id, close);
- this.type = "block";
- this.mustache = mustache;
- this.program = program;
- };
-
- Handlebars.AST.InverseNode = function(mustache, program, close) {
- verifyMatch(mustache.id, close);
- this.type = "inverse";
- this.mustache = mustache;
- this.program = program;
- };
-
- Handlebars.AST.ContentNode = function(string) {
- this.type = "content";
- this.string = string;
- };
-
- Handlebars.AST.HashNode = function(pairs) {
- this.type = "hash";
- this.pairs = pairs;
- };
-
- Handlebars.AST.IdNode = function(parts) {
- this.type = "ID";
- this.original = parts.join(".");
-
- var dig = [], depth = 0;
-
- for(var i=0,l=parts.length; i<l; i++) {
- var part = parts[i];
-
- if(part === "..") { depth++; }
- else if(part === "." || part === "this") { this.isScoped = true; }
- else { dig.push(part); }
- }
-
- this.parts = dig;
- this.string = dig.join('.');
- this.depth = depth;
- this.isSimple = (dig.length === 1) && (depth === 0);
- };
-
- Handlebars.AST.StringNode = function(string) {
- this.type = "STRING";
- this.string = string;
- };
-
- Handlebars.AST.IntegerNode = function(integer) {
- this.type = "INTEGER";
- this.integer = integer;
- };
-
- Handlebars.AST.BooleanNode = function(bool) {
- this.type = "BOOLEAN";
- this.bool = bool;
- };
-
- Handlebars.AST.CommentNode = function(comment) {
- this.type = "comment";
- this.comment = comment;
- };
-
-})();;
-// lib/handlebars/utils.js
-Handlebars.Exception = function(message) {
- var tmp = Error.prototype.constructor.apply(this, arguments);
-
- for (var p in tmp) {
- if (tmp.hasOwnProperty(p)) { this[p] = tmp[p]; }
- }
-
- this.message = tmp.message;
-};
-Handlebars.Exception.prototype = new Error;
-
-// Build out our basic SafeString type
-Handlebars.SafeString = function(string) {
- this.string = string;
-};
-Handlebars.SafeString.prototype.toString = function() {
- return this.string.toString();
-};
-
-(function() {
- var escape = {
- "<": "&lt;",
- ">": "&gt;",
- '"': "&quot;",
- "'": "&#x27;",
- "`": "&#x60;"
- };
-
- var badChars = /&(?!\w+;)|[<>"'`]/g;
- var possible = /[&<>"'`]/;
-
- var escapeChar = function(chr) {
- return escape[chr] || "&amp;";
- };
-
- Handlebars.Utils = {
- escapeExpression: function(string) {
- // don't escape SafeStrings, since they're already safe
- if (string instanceof Handlebars.SafeString) {
- return string.toString();
- } else if (string == null || string === false) {
- return "";
- }
-
- if(!possible.test(string)) { return string; }
- return string.replace(badChars, escapeChar);
- },
-
- isEmpty: function(value) {
- if (typeof value === "undefined") {
- return true;
- } else if (value === null) {
- return true;
- } else if (value === false) {
- return true;
- } else if(Object.prototype.toString.call(value) === "[object Array]" && value.length === 0) {
- return true;
- } else {
- return false;
- }
- }
- };
-})();;
-// lib/handlebars/compiler/compiler.js
-Handlebars.Compiler = function() {};
-Handlebars.JavaScriptCompiler = function() {};
-
-(function(Compiler, JavaScriptCompiler) {
- Compiler.OPCODE_MAP = {
- appendContent: 1,
- getContext: 2,
- lookupWithHelpers: 3,
- lookup: 4,
- append: 5,
- invokeMustache: 6,
- appendEscaped: 7,
- pushString: 8,
- truthyOrFallback: 9,
- functionOrFallback: 10,
- invokeProgram: 11,
- invokePartial: 12,
- push: 13,
- assignToHash: 15,
- pushStringParam: 16
- };
-
- Compiler.MULTI_PARAM_OPCODES = {
- appendContent: 1,
- getContext: 1,
- lookupWithHelpers: 2,
- lookup: 1,
- invokeMustache: 3,
- pushString: 1,
- truthyOrFallback: 1,
- functionOrFallback: 1,
- invokeProgram: 3,
- invokePartial: 1,
- push: 1,
- assignToHash: 1,
- pushStringParam: 1
- };
-
- Compiler.DISASSEMBLE_MAP = {};
-
- for(var prop in Compiler.OPCODE_MAP) {
- var value = Compiler.OPCODE_MAP[prop];
- Compiler.DISASSEMBLE_MAP[value] = prop;
- }
-
- Compiler.multiParamSize = function(code) {
- return Compiler.MULTI_PARAM_OPCODES[Compiler.DISASSEMBLE_MAP[code]];
- };
-
- Compiler.prototype = {
- compiler: Compiler,
-
- disassemble: function() {
- var opcodes = this.opcodes, opcode, nextCode;
- var out = [], str, name, value;
-
- for(var i=0, l=opcodes.length; i<l; i++) {
- opcode = opcodes[i];
-
- if(opcode === 'DECLARE') {
- name = opcodes[++i];
- value = opcodes[++i];
- out.push("DECLARE " + name + " = " + value);
- } else {
- str = Compiler.DISASSEMBLE_MAP[opcode];
-
- var extraParams = Compiler.multiParamSize(opcode);
- var codes = [];
-
- for(var j=0; j<extraParams; j++) {
- nextCode = opcodes[++i];
-
- if(typeof nextCode === "string") {
- nextCode = "\"" + nextCode.replace("\n", "\\n") + "\"";
- }
-
- codes.push(nextCode);
- }
-
- str = str + " " + codes.join(" ");
-
- out.push(str);
- }
- }
-
- return out.join("\n");
- },
-
- guid: 0,
-
- compile: function(program, options) {
- this.children = [];
- this.depths = {list: []};
- this.options = options;
-
- // These changes will propagate to the other compiler components
- var knownHelpers = this.options.knownHelpers;
- this.options.knownHelpers = {
- 'helperMissing': true,
- 'blockHelperMissing': true,
- 'each': true,
- 'if': true,
- 'unless': true,
- 'with': true,
- 'log': true
- };
- if (knownHelpers) {
- for (var name in knownHelpers) {
- this.options.knownHelpers[name] = knownHelpers[name];
- }
- }
-
- return this.program(program);
- },
-
- accept: function(node) {
- return this[node.type](node);
- },
-
- program: function(program) {
- var statements = program.statements, statement;
- this.opcodes = [];
-
- for(var i=0, l=statements.length; i<l; i++) {
- statement = statements[i];
- this[statement.type](statement);
- }
- this.isSimple = l === 1;
-
- this.depths.list = this.depths.list.sort(function(a, b) {
- return a - b;
- });
-
- return this;
- },
-
- compileProgram: function(program) {
- var result = new this.compiler().compile(program, this.options);
- var guid = this.guid++;
-
- this.usePartial = this.usePartial || result.usePartial;
-
- this.children[guid] = result;
-
- for(var i=0, l=result.depths.list.length; i<l; i++) {
- depth = result.depths.list[i];
-
- if(depth < 2) { continue; }
- else { this.addDepth(depth - 1); }
- }
-
- return guid;
- },
-
- block: function(block) {
- var mustache = block.mustache;
- var depth, child, inverse, inverseGuid;
-
- var params = this.setupStackForMustache(mustache);
-
- var programGuid = this.compileProgram(block.program);
-
- if(block.program.inverse) {
- inverseGuid = this.compileProgram(block.program.inverse);
- this.declare('inverse', inverseGuid);
- }
-
- this.opcode('invokeProgram', programGuid, params.length, !!mustache.hash);
- this.declare('inverse', null);
- this.opcode('append');
- },
-
- inverse: function(block) {
- var params = this.setupStackForMustache(block.mustache);
-
- var programGuid = this.compileProgram(block.program);
-
- this.declare('inverse', programGuid);
-
- this.opcode('invokeProgram', null, params.length, !!block.mustache.hash);
- this.declare('inverse', null);
- this.opcode('append');
- },
-
- hash: function(hash) {
- var pairs = hash.pairs, pair, val;
-
- this.opcode('push', '{}');
-
- for(var i=0, l=pairs.length; i<l; i++) {
- pair = pairs[i];
- val = pair[1];
-
- this.accept(val);
- this.opcode('assignToHash', pair[0]);
- }
- },
-
- partial: function(partial) {
- var id = partial.id;
- this.usePartial = true;
-
- if(partial.context) {
- this.ID(partial.context);
- } else {
- this.opcode('push', 'depth0');
- }
-
- this.opcode('invokePartial', id.original);
- this.opcode('append');
- },
-
- content: function(content) {
- this.opcode('appendContent', content.string);
- },
-
- mustache: function(mustache) {
- var params = this.setupStackForMustache(mustache);
-
- this.opcode('invokeMustache', params.length, mustache.id.original, !!mustache.hash);
-
- if(mustache.escaped && !this.options.noEscape) {
- this.opcode('appendEscaped');
- } else {
- this.opcode('append');
- }
- },
-
- ID: function(id) {
- this.addDepth(id.depth);
-
- this.opcode('getContext', id.depth);
-
- this.opcode('lookupWithHelpers', id.parts[0] || null, id.isScoped || false);
-
- for(var i=1, l=id.parts.length; i<l; i++) {
- this.opcode('lookup', id.parts[i]);
- }
- },
-
- STRING: function(string) {
- this.opcode('pushString', string.string);
- },
-
- INTEGER: function(integer) {
- this.opcode('push', integer.integer);
- },
-
- BOOLEAN: function(bool) {
- this.opcode('push', bool.bool);
- },
-
- comment: function() {},
-
- // HELPERS
- pushParams: function(params) {
- var i = params.length, param;
-
- while(i--) {
- param = params[i];
-
- if(this.options.stringParams) {
- if(param.depth) {
- this.addDepth(param.depth);
- }
-
- this.opcode('getContext', param.depth || 0);
- this.opcode('pushStringParam', param.string);
- } else {
- this[param.type](param);
- }
- }
- },
-
- opcode: function(name, val1, val2, val3) {
- this.opcodes.push(Compiler.OPCODE_MAP[name]);
- if(val1 !== undefined) { this.opcodes.push(val1); }
- if(val2 !== undefined) { this.opcodes.push(val2); }
- if(val3 !== undefined) { this.opcodes.push(val3); }
- },
-
- declare: function(name, value) {
- this.opcodes.push('DECLARE');
- this.opcodes.push(name);
- this.opcodes.push(value);
- },
-
- addDepth: function(depth) {
- if(depth === 0) { return; }
-
- if(!this.depths[depth]) {
- this.depths[depth] = true;
- this.depths.list.push(depth);
- }
- },
-
- setupStackForMustache: function(mustache) {
- var params = mustache.params;
-
- this.pushParams(params);
-
- if(mustache.hash) {
- this.hash(mustache.hash);
- }
-
- this.ID(mustache.id);
-
- return params;
- }
- };
-
- JavaScriptCompiler.prototype = {
- // PUBLIC API: You can override these methods in a subclass to provide
- // alternative compiled forms for name lookup and buffering semantics
- nameLookup: function(parent, name, type) {
- if (/^[0-9]+$/.test(name)) {
- return parent + "[" + name + "]";
- } else if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
- return parent + "." + name;
- }
- else {
- return parent + "['" + name + "']";
- }
- },
-
- appendToBuffer: function(string) {
- if (this.environment.isSimple) {
- return "return " + string + ";";
- } else {
- return "buffer += " + string + ";";
- }
- },
-
- initializeBuffer: function() {
- return this.quotedString("");
- },
-
- namespace: "Handlebars",
- // END PUBLIC API
-
- compile: function(environment, options, context, asObject) {
- this.environment = environment;
- this.options = options || {};
-
- this.name = this.environment.name;
- this.isChild = !!context;
- this.context = context || {
- programs: [],
- aliases: { self: 'this' },
- registers: {list: []}
- };
-
- this.preamble();
-
- this.stackSlot = 0;
- this.stackVars = [];
-
- this.compileChildren(environment, options);
-
- var opcodes = environment.opcodes, opcode;
-
- this.i = 0;
-
- for(l=opcodes.length; this.i<l; this.i++) {
- opcode = this.nextOpcode(0);
-
- if(opcode[0] === 'DECLARE') {
- this.i = this.i + 2;
- this[opcode[1]] = opcode[2];
- } else {
- this.i = this.i + opcode[1].length;
- this[opcode[0]].apply(this, opcode[1]);
- }
- }
-
- return this.createFunctionContext(asObject);
- },
-
- nextOpcode: function(n) {
- var opcodes = this.environment.opcodes, opcode = opcodes[this.i + n], name, val;
- var extraParams, codes;
-
- if(opcode === 'DECLARE') {
- name = opcodes[this.i + 1];
- val = opcodes[this.i + 2];
- return ['DECLARE', name, val];
- } else {
- name = Compiler.DISASSEMBLE_MAP[opcode];
-
- extraParams = Compiler.multiParamSize(opcode);
- codes = [];
-
- for(var j=0; j<extraParams; j++) {
- codes.push(opcodes[this.i + j + 1 + n]);
- }
-
- return [name, codes];
- }
- },
-
- eat: function(opcode) {
- this.i = this.i + opcode.length;
- },
-
- preamble: function() {
- var out = [];
-
- // this register will disambiguate helper lookup from finding a function in
- // a context. This is necessary for mustache compatibility, which requires
- // that context functions in blocks are evaluated by blockHelperMissing, and
- // then proceed as if the resulting value was provided to blockHelperMissing.
- this.useRegister('foundHelper');
-
- if (!this.isChild) {
- var namespace = this.namespace;
- var copies = "helpers = helpers || " + namespace + ".helpers;";
- if(this.environment.usePartial) { copies = copies + " partials = partials || " + namespace + ".partials;"; }
- out.push(copies);
- } else {
- out.push('');
- }
-
- if (!this.environment.isSimple) {
- out.push(", buffer = " + this.initializeBuffer());
- } else {
- out.push("");
- }
-
- // track the last context pushed into place to allow skipping the
- // getContext opcode when it would be a noop
- this.lastContext = 0;
- this.source = out;
- },
-
- createFunctionContext: function(asObject) {
- var locals = this.stackVars;
- if (!this.isChild) {
- locals = locals.concat(this.context.registers.list);
- }
-
- if(locals.length > 0) {
- this.source[1] = this.source[1] + ", " + locals.join(", ");
- }
-
- // Generate minimizer alias mappings
- if (!this.isChild) {
- var aliases = []
- for (var alias in this.context.aliases) {
- this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];
- }
- }
-
- if (this.source[1]) {
- this.source[1] = "var " + this.source[1].substring(2) + ";";
- }
-
- // Merge children
- if (!this.isChild) {
- this.source[1] += '\n' + this.context.programs.join('\n') + '\n';
- }
-
- if (!this.environment.isSimple) {
- this.source.push("return buffer;");
- }
-
- var params = this.isChild ? ["depth0", "data"] : ["Handlebars", "depth0", "helpers", "partials", "data"];
-
- for(var i=0, l=this.environment.depths.list.length; i<l; i++) {
- params.push("depth" + this.environment.depths.list[i]);
- }
-
- if (asObject) {
- params.push(this.source.join("\n "));
-
- return Function.apply(this, params);
- } else {
- var functionSource = 'function ' + (this.name || '') + '(' + params.join(',') + ') {\n ' + this.source.join("\n ") + '}';
- Handlebars.log(Handlebars.logger.DEBUG, functionSource + "\n\n");
- return functionSource;
- }
- },
-
- appendContent: function(content) {
- this.source.push(this.appendToBuffer(this.quotedString(content)));
- },
-
- append: function() {
- var local = this.popStack();
- this.source.push("if(" + local + " || " + local + " === 0) { " + this.appendToBuffer(local) + " }");
- if (this.environment.isSimple) {
- this.source.push("else { " + this.appendToBuffer("''") + " }");
- }
- },
-
- appendEscaped: function() {
- var opcode = this.nextOpcode(1), extra = "";
- this.context.aliases.escapeExpression = 'this.escapeExpression';
-
- if(opcode[0] === 'appendContent') {
- extra = " + " + this.quotedString(opcode[1][0]);
- this.eat(opcode);
- }
-
- this.source.push(this.appendToBuffer("escapeExpression(" + this.popStack() + ")" + extra));
- },
-
- getContext: function(depth) {
- if(this.lastContext !== depth) {
- this.lastContext = depth;
- }
- },
-
- lookupWithHelpers: function(name, isScoped) {
- if(name) {
- var topStack = this.nextStack();
-
- this.usingKnownHelper = false;
-
- var toPush;
- if (!isScoped && this.options.knownHelpers[name]) {
- toPush = topStack + " = " + this.nameLookup('helpers', name, 'helper');
- this.usingKnownHelper = true;
- } else if (isScoped || this.options.knownHelpersOnly) {
- toPush = topStack + " = " + this.nameLookup('depth' + this.lastContext, name, 'context');
- } else {
- this.register('foundHelper', this.nameLookup('helpers', name, 'helper'));
- toPush = topStack + " = foundHelper || " + this.nameLookup('depth' + this.lastContext, name, 'context');
- }
-
- toPush += ';';
- this.source.push(toPush);
- } else {
- this.pushStack('depth' + this.lastContext);
- }
- },
-
- lookup: function(name) {
- var topStack = this.topStack();
- this.source.push(topStack + " = (" + topStack + " === null || " + topStack + " === undefined || " + topStack + " === false ? " +
- topStack + " : " + this.nameLookup(topStack, name, 'context') + ");");
- },
-
- pushStringParam: function(string) {
- this.pushStack('depth' + this.lastContext);
- this.pushString(string);
- },
-
- pushString: function(string) {
- this.pushStack(this.quotedString(string));
- },
-
- push: function(name) {
- this.pushStack(name);
- },
-
- invokeMustache: function(paramSize, original, hasHash) {
- this.populateParams(paramSize, this.quotedString(original), "{}", null, hasHash, function(nextStack, helperMissingString, id) {
- if (!this.usingKnownHelper) {
- this.context.aliases.helperMissing = 'helpers.helperMissing';
- this.context.aliases.undef = 'void 0';
- this.source.push("else if(" + id + "=== undef) { " + nextStack + " = helperMissing.call(" + helperMissingString + "); }");
- if (nextStack !== id) {
- this.source.push("else { " + nextStack + " = " + id + "; }");
- }
- }
- });
- },
-
- invokeProgram: function(guid, paramSize, hasHash) {
- var inverse = this.programExpression(this.inverse);
- var mainProgram = this.programExpression(guid);
-
- this.populateParams(paramSize, null, mainProgram, inverse, hasHash, function(nextStack, helperMissingString, id) {
- if (!this.usingKnownHelper) {
- this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
- this.source.push("else { " + nextStack + " = blockHelperMissing.call(" + helperMissingString + "); }");
- }
- });
- },
-
- populateParams: function(paramSize, helperId, program, inverse, hasHash, fn) {
- var needsRegister = hasHash || this.options.stringParams || inverse || this.options.data;
- var id = this.popStack(), nextStack;
- var params = [], param, stringParam, stringOptions;
-
- if (needsRegister) {
- this.register('tmp1', program);
- stringOptions = 'tmp1';
- } else {
- stringOptions = '{ hash: {} }';
- }
-
- if (needsRegister) {
- var hash = (hasHash ? this.popStack() : '{}');
- this.source.push('tmp1.hash = ' + hash + ';');
- }
-
- if(this.options.stringParams) {
- this.source.push('tmp1.contexts = [];');
- }
-
- for(var i=0; i<paramSize; i++) {
- param = this.popStack();
- params.push(param);
-
- if(this.options.stringParams) {
- this.source.push('tmp1.contexts.push(' + this.popStack() + ');');
- }
- }
-
- if(inverse) {
- this.source.push('tmp1.fn = tmp1;');
- this.source.push('tmp1.inverse = ' + inverse + ';');
- }
-
- if(this.options.data) {
- this.source.push('tmp1.data = data;');
- }
-
- params.push(stringOptions);
-
- this.populateCall(params, id, helperId || id, fn, program !== '{}');
- },
-
- populateCall: function(params, id, helperId, fn, program) {
- var paramString = ["depth0"].concat(params).join(", ");
- var helperMissingString = ["depth0"].concat(helperId).concat(params).join(", ");
-
- var nextStack = this.nextStack();
-
- if (this.usingKnownHelper) {
- this.source.push(nextStack + " = " + id + ".call(" + paramString + ");");
- } else {
- this.context.aliases.functionType = '"function"';
- var condition = program ? "foundHelper && " : ""
- this.source.push("if(" + condition + "typeof " + id + " === functionType) { " + nextStack + " = " + id + ".call(" + paramString + "); }");
- }
- fn.call(this, nextStack, helperMissingString, id);
- this.usingKnownHelper = false;
- },
-
- invokePartial: function(context) {
- params = [this.nameLookup('partials', context, 'partial'), "'" + context + "'", this.popStack(), "helpers", "partials"];
-
- if (this.options.data) {
- params.push("data");
- }
-
- this.pushStack("self.invokePartial(" + params.join(", ") + ");");
- },
-
- assignToHash: function(key) {
- var value = this.popStack();
- var hash = this.topStack();
-
- this.source.push(hash + "['" + key + "'] = " + value + ";");
- },
-
- // HELPERS
-
- compiler: JavaScriptCompiler,
-
- compileChildren: function(environment, options) {
- var children = environment.children, child, compiler;
-
- for(var i=0, l=children.length; i<l; i++) {
- child = children[i];
- compiler = new this.compiler();
-
- this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children
- var index = this.context.programs.length;
- child.index = index;
- child.name = 'program' + index;
- this.context.programs[index] = compiler.compile(child, options, this.context);
- }
- },
-
- programExpression: function(guid) {
- if(guid == null) { return "self.noop"; }
-
- var child = this.environment.children[guid],
- depths = child.depths.list;
- var programParams = [child.index, child.name, "data"];
-
- for(var i=0, l = depths.length; i<l; i++) {
- depth = depths[i];
-
- if(depth === 1) { programParams.push("depth0"); }
- else { programParams.push("depth" + (depth - 1)); }
- }
-
- if(depths.length === 0) {
- return "self.program(" + programParams.join(", ") + ")";
- } else {
- programParams.shift();
- return "self.programWithDepth(" + programParams.join(", ") + ")";
- }
- },
-
- register: function(name, val) {
- this.useRegister(name);
- this.source.push(name + " = " + val + ";");
- },
-
- useRegister: function(name) {
- if(!this.context.registers[name]) {
- this.context.registers[name] = true;
- this.context.registers.list.push(name);
- }
- },
-
- pushStack: function(item) {
- this.source.push(this.nextStack() + " = " + item + ";");
- return "stack" + this.stackSlot;
- },
-
- nextStack: function() {
- this.stackSlot++;
- if(this.stackSlot > this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); }
- return "stack" + this.stackSlot;
- },
-
- popStack: function() {
- return "stack" + this.stackSlot--;
- },
-
- topStack: function() {
- return "stack" + this.stackSlot;
- },
-
- quotedString: function(str) {
- return '"' + str
- .replace(/\\/g, '\\\\')
- .replace(/"/g, '\\"')
- .replace(/\n/g, '\\n')
- .replace(/\r/g, '\\r') + '"';
- }
- };
-
- var reservedWords = (
- "break else new var" +
- " case finally return void" +
- " catch for switch while" +
- " continue function this with" +
- " default if throw" +
- " delete in try" +
- " do instanceof typeof" +
- " abstract enum int short" +
- " boolean export interface static" +
- " byte extends long super" +
- " char final native synchronized" +
- " class float package throws" +
- " const goto private transient" +
- " debugger implements protected volatile" +
- " double import public let yield"
- ).split(" ");
-
- var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
-
- for(var i=0, l=reservedWords.length; i<l; i++) {
- compilerWords[reservedWords[i]] = true;
- }
-
- JavaScriptCompiler.isValidJavaScriptVariableName = function(name) {
- if(!JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(name)) {
- return true;
- }
- return false;
- }
-
-})(Handlebars.Compiler, Handlebars.JavaScriptCompiler);
-
-Handlebars.precompile = function(string, options) {
- options = options || {};
-
- var ast = Handlebars.parse(string);
- var environment = new Handlebars.Compiler().compile(ast, options);
- return new Handlebars.JavaScriptCompiler().compile(environment, options);
-};
-
-Handlebars.compile = function(string, options) {
- options = options || {};
-
- var compiled;
- function compile() {
- var ast = Handlebars.parse(string);
- var environment = new Handlebars.Compiler().compile(ast, options);
- var templateSpec = new Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true);
- return Handlebars.template(templateSpec);
- }
-
- // Template is only compiled on first use and cached after that point.
- return function(context, options) {
- if (!compiled) {
- compiled = compile();
- }
- return compiled.call(this, context, options);
- };
-};
-;
-// lib/handlebars/runtime.js
-Handlebars.VM = {
- template: function(templateSpec) {
- // Just add water
- var container = {
- escapeExpression: Handlebars.Utils.escapeExpression,
- invokePartial: Handlebars.VM.invokePartial,
- programs: [],
- program: function(i, fn, data) {
- var programWrapper = this.programs[i];
- if(data) {
- return Handlebars.VM.program(fn, data);
- } else if(programWrapper) {
- return programWrapper;
- } else {
- programWrapper = this.programs[i] = Handlebars.VM.program(fn);
- return programWrapper;
- }
- },
- programWithDepth: Handlebars.VM.programWithDepth,
- noop: Handlebars.VM.noop
- };
-
- return function(context, options) {
- options = options || {};
- return templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data);
- };
- },
-
- programWithDepth: function(fn, data, $depth) {
- var args = Array.prototype.slice.call(arguments, 2);
-
- return function(context, options) {
- options = options || {};
-
- return fn.apply(this, [context, options.data || data].concat(args));
- };
- },
- program: function(fn, data) {
- return function(context, options) {
- options = options || {};
-
- return fn(context, options.data || data);
- };
- },
- noop: function() { return ""; },
- invokePartial: function(partial, name, context, helpers, partials, data) {
- options = { helpers: helpers, partials: partials, data: data };
-
- if(partial === undefined) {
- throw new Handlebars.Exception("The partial " + name + " could not be found");
- } else if(partial instanceof Function) {
- return partial(context, options);
- } else if (!Handlebars.compile) {
- throw new Handlebars.Exception("The partial " + name + " could not be compiled when running in runtime-only mode");
- } else {
- partials[name] = Handlebars.compile(partial);
- return partials[name](context, options);
- }
- }
-};
-
-Handlebars.template = Handlebars.VM.template;
-;
+// lib/handlebars/base.js
+var Handlebars = {};
+
+Handlebars.VERSION = "1.0.beta.6";
+
+Handlebars.helpers = {};
+Handlebars.partials = {};
+
+Handlebars.registerHelper = function(name, fn, inverse) {
+ if(inverse) { fn.not = inverse; }
+ this.helpers[name] = fn;
+};
+
+Handlebars.registerPartial = function(name, str) {
+ this.partials[name] = str;
+};
+
+Handlebars.registerHelper('helperMissing', function(arg) {
+ if(arguments.length === 2) {
+ return undefined;
+ } else {
+ throw new Error("Could not find property '" + arg + "'");
+ }
+});
+
+var toString = Object.prototype.toString, functionType = "[object Function]";
+
+Handlebars.registerHelper('blockHelperMissing', function(context, options) {
+ var inverse = options.inverse || function() {}, fn = options.fn;
+
+
+ var ret = "";
+ var type = toString.call(context);
+
+ if(type === functionType) { context = context.call(this); }
+
+ if(context === true) {
+ return fn(this);
+ } else if(context === false || context == null) {
+ return inverse(this);
+ } else if(type === "[object Array]") {
+ if(context.length > 0) {
+ for(var i=0, j=context.length; i<j; i++) {
+ ret = ret + fn(context[i]);
+ }
+ } else {
+ ret = inverse(this);
+ }
+ return ret;
+ } else {
+ return fn(context);
+ }
+});
+
+Handlebars.registerHelper('each', function(context, options) {
+ var fn = options.fn, inverse = options.inverse;
+ var ret = "";
+
+ if(context && context.length > 0) {
+ for(var i=0, j=context.length; i<j; i++) {
+ ret = ret + fn(context[i]);
+ }
+ } else {
+ ret = inverse(this);
+ }
+ return ret;
+});
+
+Handlebars.registerHelper('if', function(context, options) {
+ var type = toString.call(context);
+ if(type === functionType) { context = context.call(this); }
+
+ if(!context || Handlebars.Utils.isEmpty(context)) {
+ return options.inverse(this);
+ } else {
+ return options.fn(this);
+ }
+});
+
+Handlebars.registerHelper('unless', function(context, options) {
+ var fn = options.fn, inverse = options.inverse;
+ options.fn = inverse;
+ options.inverse = fn;
+
+ return Handlebars.helpers['if'].call(this, context, options);
+});
+
+Handlebars.registerHelper('with', function(context, options) {
+ return options.fn(context);
+});
+
+Handlebars.registerHelper('log', function(context) {
+ Handlebars.log(context);
+});
+;
+// lib/handlebars/compiler/parser.js
+/* Jison generated parser */
+var handlebars = (function(){
+
+var parser = {trace: function trace() { },
+yy: {},
+symbols_: {"error":2,"root":3,"program":4,"EOF":5,"statements":6,"simpleInverse":7,"statement":8,"openInverse":9,"closeBlock":10,"openBlock":11,"mustache":12,"partial":13,"CONTENT":14,"COMMENT":15,"OPEN_BLOCK":16,"inMustache":17,"CLOSE":18,"OPEN_INVERSE":19,"OPEN_ENDBLOCK":20,"path":21,"OPEN":22,"OPEN_UNESCAPED":23,"OPEN_PARTIAL":24,"params":25,"hash":26,"param":27,"STRING":28,"INTEGER":29,"BOOLEAN":30,"hashSegments":31,"hashSegment":32,"ID":33,"EQUALS":34,"pathSegments":35,"SEP":36,"$accept":0,"$end":1},
+terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"OPEN_PARTIAL",28:"STRING",29:"INTEGER",30:"BOOLEAN",33:"ID",34:"EQUALS",36:"SEP"},
+productions_: [0,[3,2],[4,3],[4,1],[4,0],[6,1],[6,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[7,2],[17,3],[17,2],[17,2],[17,1],[25,2],[25,1],[27,1],[27,1],[27,1],[27,1],[26,1],[31,2],[31,1],[32,3],[32,3],[32,3],[32,3],[21,1],[35,3],[35,1]],
+performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
+
+var $0 = $$.length - 1;
+switch (yystate) {
+case 1: return $$[$0-1]
+break;
+case 2: this.$ = new yy.ProgramNode($$[$0-2], $$[$0])
+break;
+case 3: this.$ = new yy.ProgramNode($$[$0])
+break;
+case 4: this.$ = new yy.ProgramNode([])
+break;
+case 5: this.$ = [$$[$0]]
+break;
+case 6: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]
+break;
+case 7: this.$ = new yy.InverseNode($$[$0-2], $$[$0-1], $$[$0])
+break;
+case 8: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0])
+break;
+case 9: this.$ = $$[$0]
+break;
+case 10: this.$ = $$[$0]
+break;
+case 11: this.$ = new yy.ContentNode($$[$0])
+break;
+case 12: this.$ = new yy.CommentNode($$[$0])
+break;
+case 13: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1])
+break;
+case 14: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1])
+break;
+case 15: this.$ = $$[$0-1]
+break;
+case 16: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1])
+break;
+case 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true)
+break;
+case 18: this.$ = new yy.PartialNode($$[$0-1])
+break;
+case 19: this.$ = new yy.PartialNode($$[$0-2], $$[$0-1])
+break;
+case 20:
+break;
+case 21: this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]]
+break;
+case 22: this.$ = [[$$[$0-1]].concat($$[$0]), null]
+break;
+case 23: this.$ = [[$$[$0-1]], $$[$0]]
+break;
+case 24: this.$ = [[$$[$0]], null]
+break;
+case 25: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
+break;
+case 26: this.$ = [$$[$0]]
+break;
+case 27: this.$ = $$[$0]
+break;
+case 28: this.$ = new yy.StringNode($$[$0])
+break;
+case 29: this.$ = new yy.IntegerNode($$[$0])
+break;
+case 30: this.$ = new yy.BooleanNode($$[$0])
+break;
+case 31: this.$ = new yy.HashNode($$[$0])
+break;
+case 32: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]
+break;
+case 33: this.$ = [$$[$0]]
+break;
+case 34: this.$ = [$$[$0-2], $$[$0]]
+break;
+case 35: this.$ = [$$[$0-2], new yy.StringNode($$[$0])]
+break;
+case 36: this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])]
+break;
+case 37: this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])]
+break;
+case 38: this.$ = new yy.IdNode($$[$0])
+break;
+case 39: $$[$0-2].push($$[$0]); this.$ = $$[$0-2];
+break;
+case 40: this.$ = [$$[$0]]
+break;
+}
+},
+table: [{3:1,4:2,5:[2,4],6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{1:[3]},{5:[1,16]},{5:[2,3],7:17,8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,19],20:[2,3],22:[1,13],23:[1,14],24:[1,15]},{5:[2,5],14:[2,5],15:[2,5],16:[2,5],19:[2,5],20:[2,5],22:[2,5],23:[2,5],24:[2,5]},{4:20,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{4:21,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],24:[2,9]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],24:[2,10]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],24:[2,11]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],24:[2,12]},{17:22,21:23,33:[1,25],35:24},{17:26,21:23,33:[1,25],35:24},{17:27,21:23,33:[1,25],35:24},{17:28,21:23,33:[1,25],35:24},{21:29,33:[1,25],35:24},{1:[2,1]},{6:30,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{5:[2,6],14:[2,6],15:[2,6],16:[2,6],19:[2,6],20:[2,6],22:[2,6],23:[2,6],24:[2,6]},{17:22,18:[1,31],21:23,33:[1,25],35:24},{10:32,20:[1,33]},{10:34,20:[1,33]},{18:[1,35]},{18:[2,24],21:40,25:36,26:37,27:38,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,38],28:[2,38],29:[2,38],30:[2,38],33:[2,38],36:[1,46]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],36:[2,40]},{18:[1,47]},{18:[1,48]},{18:[1,49]},{18:[1,50],21:51,33:[1,25],35:24},{5:[2,2],8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,2],22:[1,13],23:[1,14],24:[1,15]},{14:[2,20],15:[2,20],16:[2,20],19:[2,20],22:[2,20],23:[2,20],24:[2,20]},{5:[2,7],14:[2,7],15:[2,7],16:[2,7],19:[2,7],20:[2,7],22:[2,7],23:[2,7],24:[2,7]},{21:52,33:[1,25],35:24},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],24:[2,8]},{14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],24:[2,14]},{18:[2,22],21:40,26:53,27:54,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,23]},{18:[2,26],28:[2,26],29:[2,26],30:[2,26],33:[2,26]},{18:[2,31],32:55,33:[1,56]},{18:[2,27],28:[2,27],29:[2,27],30:[2,27],33:[2,27]},{18:[2,28],28:[2,28],29:[2,28],30:[2,28],33:[2,28]},{18:[2,29],28:[2,29],29:[2,29],30:[2,29],33:[2,29]},{18:[2,30],28:[2,30],29:[2,30],30:[2,30],33:[2,30]},{18:[2,33],33:[2,33]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],34:[1,57],36:[2,40]},{33:[1,58]},{14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],24:[2,13]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],24:[2,16]},{5:[2,17],14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],24:[2,17]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],24:[2,18]},{18:[1,59]},{18:[1,60]},{18:[2,21]},{18:[2,25],28:[2,25],29:[2,25],30:[2,25],33:[2,25]},{18:[2,32],33:[2,32]},{34:[1,57]},{21:61,28:[1,62],29:[1,63],30:[1,64],33:[1,25],35:24},{18:[2,39],28:[2,39],29:[2,39],30:[2,39],33:[2,39],36:[2,39]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],24:[2,19]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],24:[2,15]},{18:[2,34],33:[2,34]},{18:[2,35],33:[2,35]},{18:[2,36],33:[2,36]},{18:[2,37],33:[2,37]}],
+defaultActions: {16:[2,1],37:[2,23],53:[2,21]},
+parseError: function parseError(str, hash) {
+ throw new Error(str);
+},
+parse: function parse(input) {
+ var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
+ this.lexer.setInput(input);
+ this.lexer.yy = this.yy;
+ this.yy.lexer = this.lexer;
+ if (typeof this.lexer.yylloc == "undefined")
+ this.lexer.yylloc = {};
+ var yyloc = this.lexer.yylloc;
+ lstack.push(yyloc);
+ if (typeof this.yy.parseError === "function")
+ this.parseError = this.yy.parseError;
+ function popStack(n) {
+ stack.length = stack.length - 2 * n;
+ vstack.length = vstack.length - n;
+ lstack.length = lstack.length - n;
+ }
+ function lex() {
+ var token;
+ token = self.lexer.lex() || 1;
+ if (typeof token !== "number") {
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol == null)
+ symbol = lex();
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ if (!recovering) {
+ expected = [];
+ for (p in table[state])
+ if (this.terminals_[p] && p > 2) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ var errStr = "";
+ if (this.lexer.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + this.terminals_[symbol] + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
+ }
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(this.lexer.yytext);
+ lstack.push(this.lexer.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = this.lexer.yyleng;
+ yytext = this.lexer.yytext;
+ yylineno = this.lexer.yylineno;
+ yyloc = this.lexer.yylloc;
+ if (recovering > 0)
+ recovering--;
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};
+ r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+}
+};/* Jison generated lexer */
+var lexer = (function(){
+
+var lexer = ({EOF:1,
+parseError:function parseError(str, hash) {
+ if (this.yy.parseError) {
+ this.yy.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+setInput:function (input) {
+ this._input = input;
+ this._more = this._less = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = '';
+ this.conditionStack = ['INITIAL'];
+ this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
+ return this;
+ },
+input:function () {
+ var ch = this._input[0];
+ this.yytext+=ch;
+ this.yyleng++;
+ this.match+=ch;
+ this.matched+=ch;
+ var lines = ch.match(/\n/);
+ if (lines) this.yylineno++;
+ this._input = this._input.slice(1);
+ return ch;
+ },
+unput:function (ch) {
+ this._input = ch + this._input;
+ return this;
+ },
+more:function () {
+ this._more = true;
+ return this;
+ },
+pastInput:function () {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
+ },
+upcomingInput:function () {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20-next.length);
+ }
+ return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
+ },
+showPosition:function () {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c+"^";
+ },
+next:function () {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) this.done = true;
+
+ var token,
+ match,
+ col,
+ lines;
+ if (!this._more) {
+ this.yytext = '';
+ this.match = '';
+ }
+ var rules = this._currentRules();
+ for (var i=0;i < rules.length; i++) {
+ match = this._input.match(this.rules[rules[i]]);
+ if (match) {
+ lines = match[0].match(/\n.*/g);
+ if (lines) this.yylineno += lines.length;
+ this.yylloc = {first_line: this.yylloc.last_line,
+ last_line: this.yylineno+1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ this._more = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]);
+ if (token) return token;
+ else return;
+ }
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
+ {text: "", token: null, line: this.yylineno});
+ }
+ },
+lex:function lex() {
+ var r = this.next();
+ if (typeof r !== 'undefined') {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+begin:function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+popState:function popState() {
+ return this.conditionStack.pop();
+ },
+_currentRules:function _currentRules() {
+ return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
+ },
+topState:function () {
+ return this.conditionStack[this.conditionStack.length-2];
+ },
+pushState:function begin(condition) {
+ this.begin(condition);
+ }});
+lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
+
+var YYSTATE=YY_START
+switch($avoiding_name_collisions) {
+case 0:
+ if(yy_.yytext.slice(-1) !== "\\") this.begin("mu");
+ if(yy_.yytext.slice(-1) === "\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin("emu");
+ if(yy_.yytext) return 14;
+
+break;
+case 1: return 14;
+break;
+case 2: this.popState(); return 14;
+break;
+case 3: return 24;
+break;
+case 4: return 16;
+break;
+case 5: return 20;
+break;
+case 6: return 19;
+break;
+case 7: return 19;
+break;
+case 8: return 23;
+break;
+case 9: return 23;
+break;
+case 10: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15;
+break;
+case 11: return 22;
+break;
+case 12: return 34;
+break;
+case 13: return 33;
+break;
+case 14: return 33;
+break;
+case 15: return 36;
+break;
+case 16: /*ignore whitespace*/
+break;
+case 17: this.popState(); return 18;
+break;
+case 18: this.popState(); return 18;
+break;
+case 19: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return 28;
+break;
+case 20: return 30;
+break;
+case 21: return 30;
+break;
+case 22: return 29;
+break;
+case 23: return 33;
+break;
+case 24: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 33;
+break;
+case 25: return 'INVALID';
+break;
+case 26: return 5;
+break;
+}
+};
+lexer.rules = [/^[^\x00]*?(?=(\{\{))/,/^[^\x00]+/,/^[^\x00]{2,}?(?=(\{\{))/,/^\{\{>/,/^\{\{#/,/^\{\{\//,/^\{\{\^/,/^\{\{\s*else\b/,/^\{\{\{/,/^\{\{&/,/^\{\{![\s\S]*?\}\}/,/^\{\{/,/^=/,/^\.(?=[} ])/,/^\.\./,/^[\/.]/,/^\s+/,/^\}\}\}/,/^\}\}/,/^"(\\["]|[^"])*"/,/^true(?=[}\s])/,/^false(?=[}\s])/,/^[0-9]+(?=[}\s])/,/^[a-zA-Z0-9_$-]+(?=[=}\s\/.])/,/^\[[^\]]*\]/,/^./,/^$/];
+lexer.conditions = {"mu":{"rules":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"INITIAL":{"rules":[0,1,26],"inclusive":true}};return lexer;})()
+parser.lexer = lexer;
+return parser;
+})();
+if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
+exports.parser = handlebars;
+exports.parse = function () { return handlebars.parse.apply(handlebars, arguments); }
+exports.main = function commonjsMain(args) {
+ if (!args[1])
+ throw new Error('Usage: '+args[0]+' FILE');
+ if (typeof process !== 'undefined') {
+ var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8");
+ } else {
+ var cwd = require("file").path(require("file").cwd());
+ var source = cwd.join(args[1]).read({charset: "utf-8"});
+ }
+ return exports.parser.parse(source);
+}
+if (typeof module !== 'undefined' && require.main === module) {
+ exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args);
+}
+};
+;
+// lib/handlebars/compiler/base.js
+Handlebars.Parser = handlebars;
+
+Handlebars.parse = function(string) {
+ Handlebars.Parser.yy = Handlebars.AST;
+ return Handlebars.Parser.parse(string);
+};
+
+Handlebars.print = function(ast) {
+ return new Handlebars.PrintVisitor().accept(ast);
+};
+
+Handlebars.logger = {
+ DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
+
+ // override in the host environment
+ log: function(level, str) {}
+};
+
+Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); };
+;
+// lib/handlebars/compiler/ast.js
+(function() {
+
+ Handlebars.AST = {};
+
+ Handlebars.AST.ProgramNode = function(statements, inverse) {
+ this.type = "program";
+ this.statements = statements;
+ if(inverse) { this.inverse = new Handlebars.AST.ProgramNode(inverse); }
+ };
+
+ Handlebars.AST.MustacheNode = function(params, hash, unescaped) {
+ this.type = "mustache";
+ this.id = params[0];
+ this.params = params.slice(1);
+ this.hash = hash;
+ this.escaped = !unescaped;
+ };
+
+ Handlebars.AST.PartialNode = function(id, context) {
+ this.type = "partial";
+
+ // TODO: disallow complex IDs
+
+ this.id = id;
+ this.context = context;
+ };
+
+ var verifyMatch = function(open, close) {
+ if(open.original !== close.original) {
+ throw new Handlebars.Exception(open.original + " doesn't match " + close.original);
+ }
+ };
+
+ Handlebars.AST.BlockNode = function(mustache, program, close) {
+ verifyMatch(mustache.id, close);
+ this.type = "block";
+ this.mustache = mustache;
+ this.program = program;
+ };
+
+ Handlebars.AST.InverseNode = function(mustache, program, close) {
+ verifyMatch(mustache.id, close);
+ this.type = "inverse";
+ this.mustache = mustache;
+ this.program = program;
+ };
+
+ Handlebars.AST.ContentNode = function(string) {
+ this.type = "content";
+ this.string = string;
+ };
+
+ Handlebars.AST.HashNode = function(pairs) {
+ this.type = "hash";
+ this.pairs = pairs;
+ };
+
+ Handlebars.AST.IdNode = function(parts) {
+ this.type = "ID";
+ this.original = parts.join(".");
+
+ var dig = [], depth = 0;
+
+ for(var i=0,l=parts.length; i<l; i++) {
+ var part = parts[i];
+
+ if(part === "..") { depth++; }
+ else if(part === "." || part === "this") { this.isScoped = true; }
+ else { dig.push(part); }
+ }
+
+ this.parts = dig;
+ this.string = dig.join('.');
+ this.depth = depth;
+ this.isSimple = (dig.length === 1) && (depth === 0);
+ };
+
+ Handlebars.AST.StringNode = function(string) {
+ this.type = "STRING";
+ this.string = string;
+ };
+
+ Handlebars.AST.IntegerNode = function(integer) {
+ this.type = "INTEGER";
+ this.integer = integer;
+ };
+
+ Handlebars.AST.BooleanNode = function(bool) {
+ this.type = "BOOLEAN";
+ this.bool = bool;
+ };
+
+ Handlebars.AST.CommentNode = function(comment) {
+ this.type = "comment";
+ this.comment = comment;
+ };
+
+})();;
+// lib/handlebars/utils.js
+Handlebars.Exception = function(message) {
+ var tmp = Error.prototype.constructor.apply(this, arguments);
+
+ for (var p in tmp) {
+ if (tmp.hasOwnProperty(p)) { this[p] = tmp[p]; }
+ }
+
+ this.message = tmp.message;
+};
+Handlebars.Exception.prototype = new Error;
+
+// Build out our basic SafeString type
+Handlebars.SafeString = function(string) {
+ this.string = string;
+};
+Handlebars.SafeString.prototype.toString = function() {
+ return this.string.toString();
+};
+
+(function() {
+ var escape = {
+ "<": "&lt;",
+ ">": "&gt;",
+ '"': "&quot;",
+ "'": "&#x27;",
+ "`": "&#x60;"
+ };
+
+ var badChars = /&(?!\w+;)|[<>"'`]/g;
+ var possible = /[&<>"'`]/;
+
+ var escapeChar = function(chr) {
+ return escape[chr] || "&amp;";
+ };
+
+ Handlebars.Utils = {
+ escapeExpression: function(string) {
+ // don't escape SafeStrings, since they're already safe
+ if (string instanceof Handlebars.SafeString) {
+ return string.toString();
+ } else if (string == null || string === false) {
+ return "";
+ }
+
+ if(!possible.test(string)) { return string; }
+ return string.replace(badChars, escapeChar);
+ },
+
+ isEmpty: function(value) {
+ if (typeof value === "undefined") {
+ return true;
+ } else if (value === null) {
+ return true;
+ } else if (value === false) {
+ return true;
+ } else if(Object.prototype.toString.call(value) === "[object Array]" && value.length === 0) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ };
+})();;
+// lib/handlebars/compiler/compiler.js
+Handlebars.Compiler = function() {};
+Handlebars.JavaScriptCompiler = function() {};
+
+(function(Compiler, JavaScriptCompiler) {
+ Compiler.OPCODE_MAP = {
+ appendContent: 1,
+ getContext: 2,
+ lookupWithHelpers: 3,
+ lookup: 4,
+ append: 5,
+ invokeMustache: 6,
+ appendEscaped: 7,
+ pushString: 8,
+ truthyOrFallback: 9,
+ functionOrFallback: 10,
+ invokeProgram: 11,
+ invokePartial: 12,
+ push: 13,
+ assignToHash: 15,
+ pushStringParam: 16
+ };
+
+ Compiler.MULTI_PARAM_OPCODES = {
+ appendContent: 1,
+ getContext: 1,
+ lookupWithHelpers: 2,
+ lookup: 1,
+ invokeMustache: 3,
+ pushString: 1,
+ truthyOrFallback: 1,
+ functionOrFallback: 1,
+ invokeProgram: 3,
+ invokePartial: 1,
+ push: 1,
+ assignToHash: 1,
+ pushStringParam: 1
+ };
+
+ Compiler.DISASSEMBLE_MAP = {};
+
+ for(var prop in Compiler.OPCODE_MAP) {
+ var value = Compiler.OPCODE_MAP[prop];
+ Compiler.DISASSEMBLE_MAP[value] = prop;
+ }
+
+ Compiler.multiParamSize = function(code) {
+ return Compiler.MULTI_PARAM_OPCODES[Compiler.DISASSEMBLE_MAP[code]];
+ };
+
+ Compiler.prototype = {
+ compiler: Compiler,
+
+ disassemble: function() {
+ var opcodes = this.opcodes, opcode, nextCode;
+ var out = [], str, name, value;
+
+ for(var i=0, l=opcodes.length; i<l; i++) {
+ opcode = opcodes[i];
+
+ if(opcode === 'DECLARE') {
+ name = opcodes[++i];
+ value = opcodes[++i];
+ out.push("DECLARE " + name + " = " + value);
+ } else {
+ str = Compiler.DISASSEMBLE_MAP[opcode];
+
+ var extraParams = Compiler.multiParamSize(opcode);
+ var codes = [];
+
+ for(var j=0; j<extraParams; j++) {
+ nextCode = opcodes[++i];
+
+ if(typeof nextCode === "string") {
+ nextCode = "\"" + nextCode.replace("\n", "\\n") + "\"";
+ }
+
+ codes.push(nextCode);
+ }
+
+ str = str + " " + codes.join(" ");
+
+ out.push(str);
+ }
+ }
+
+ return out.join("\n");
+ },
+
+ guid: 0,
+
+ compile: function(program, options) {
+ this.children = [];
+ this.depths = {list: []};
+ this.options = options;
+
+ // These changes will propagate to the other compiler components
+ var knownHelpers = this.options.knownHelpers;
+ this.options.knownHelpers = {
+ 'helperMissing': true,
+ 'blockHelperMissing': true,
+ 'each': true,
+ 'if': true,
+ 'unless': true,
+ 'with': true,
+ 'log': true
+ };
+ if (knownHelpers) {
+ for (var name in knownHelpers) {
+ this.options.knownHelpers[name] = knownHelpers[name];
+ }
+ }
+
+ return this.program(program);
+ },
+
+ accept: function(node) {
+ return this[node.type](node);
+ },
+
+ program: function(program) {
+ var statements = program.statements, statement;
+ this.opcodes = [];
+
+ for(var i=0, l=statements.length; i<l; i++) {
+ statement = statements[i];
+ this[statement.type](statement);
+ }
+ this.isSimple = l === 1;
+
+ this.depths.list = this.depths.list.sort(function(a, b) {
+ return a - b;
+ });
+
+ return this;
+ },
+
+ compileProgram: function(program) {
+ var result = new this.compiler().compile(program, this.options);
+ var guid = this.guid++;
+
+ this.usePartial = this.usePartial || result.usePartial;
+
+ this.children[guid] = result;
+
+ for(var i=0, l=result.depths.list.length; i<l; i++) {
+ depth = result.depths.list[i];
+
+ if(depth < 2) { continue; }
+ else { this.addDepth(depth - 1); }
+ }
+
+ return guid;
+ },
+
+ block: function(block) {
+ var mustache = block.mustache;
+ var depth, child, inverse, inverseGuid;
+
+ var params = this.setupStackForMustache(mustache);
+
+ var programGuid = this.compileProgram(block.program);
+
+ if(block.program.inverse) {
+ inverseGuid = this.compileProgram(block.program.inverse);
+ this.declare('inverse', inverseGuid);
+ }
+
+ this.opcode('invokeProgram', programGuid, params.length, !!mustache.hash);
+ this.declare('inverse', null);
+ this.opcode('append');
+ },
+
+ inverse: function(block) {
+ var params = this.setupStackForMustache(block.mustache);
+
+ var programGuid = this.compileProgram(block.program);
+
+ this.declare('inverse', programGuid);
+
+ this.opcode('invokeProgram', null, params.length, !!block.mustache.hash);
+ this.declare('inverse', null);
+ this.opcode('append');
+ },
+
+ hash: function(hash) {
+ var pairs = hash.pairs, pair, val;
+
+ this.opcode('push', '{}');
+
+ for(var i=0, l=pairs.length; i<l; i++) {
+ pair = pairs[i];
+ val = pair[1];
+
+ this.accept(val);
+ this.opcode('assignToHash', pair[0]);
+ }
+ },
+
+ partial: function(partial) {
+ var id = partial.id;
+ this.usePartial = true;
+
+ if(partial.context) {
+ this.ID(partial.context);
+ } else {
+ this.opcode('push', 'depth0');
+ }
+
+ this.opcode('invokePartial', id.original);
+ this.opcode('append');
+ },
+
+ content: function(content) {
+ this.opcode('appendContent', content.string);
+ },
+
+ mustache: function(mustache) {
+ var params = this.setupStackForMustache(mustache);
+
+ this.opcode('invokeMustache', params.length, mustache.id.original, !!mustache.hash);
+
+ if(mustache.escaped && !this.options.noEscape) {
+ this.opcode('appendEscaped');
+ } else {
+ this.opcode('append');
+ }
+ },
+
+ ID: function(id) {
+ this.addDepth(id.depth);
+
+ this.opcode('getContext', id.depth);
+
+ this.opcode('lookupWithHelpers', id.parts[0] || null, id.isScoped || false);
+
+ for(var i=1, l=id.parts.length; i<l; i++) {
+ this.opcode('lookup', id.parts[i]);
+ }
+ },
+
+ STRING: function(string) {
+ this.opcode('pushString', string.string);
+ },
+
+ INTEGER: function(integer) {
+ this.opcode('push', integer.integer);
+ },
+
+ BOOLEAN: function(bool) {
+ this.opcode('push', bool.bool);
+ },
+
+ comment: function() {},
+
+ // HELPERS
+ pushParams: function(params) {
+ var i = params.length, param;
+
+ while(i--) {
+ param = params[i];
+
+ if(this.options.stringParams) {
+ if(param.depth) {
+ this.addDepth(param.depth);
+ }
+
+ this.opcode('getContext', param.depth || 0);
+ this.opcode('pushStringParam', param.string);
+ } else {
+ this[param.type](param);
+ }
+ }
+ },
+
+ opcode: function(name, val1, val2, val3) {
+ this.opcodes.push(Compiler.OPCODE_MAP[name]);
+ if(val1 !== undefined) { this.opcodes.push(val1); }
+ if(val2 !== undefined) { this.opcodes.push(val2); }
+ if(val3 !== undefined) { this.opcodes.push(val3); }
+ },
+
+ declare: function(name, value) {
+ this.opcodes.push('DECLARE');
+ this.opcodes.push(name);
+ this.opcodes.push(value);
+ },
+
+ addDepth: function(depth) {
+ if(depth === 0) { return; }
+
+ if(!this.depths[depth]) {
+ this.depths[depth] = true;
+ this.depths.list.push(depth);
+ }
+ },
+
+ setupStackForMustache: function(mustache) {
+ var params = mustache.params;
+
+ this.pushParams(params);
+
+ if(mustache.hash) {
+ this.hash(mustache.hash);
+ }
+
+ this.ID(mustache.id);
+
+ return params;
+ }
+ };
+
+ JavaScriptCompiler.prototype = {
+ // PUBLIC API: You can override these methods in a subclass to provide
+ // alternative compiled forms for name lookup and buffering semantics
+ nameLookup: function(parent, name, type) {
+ if (/^[0-9]+$/.test(name)) {
+ return parent + "[" + name + "]";
+ } else if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
+ return parent + "." + name;
+ }
+ else {
+ return parent + "['" + name + "']";
+ }
+ },
+
+ appendToBuffer: function(string) {
+ if (this.environment.isSimple) {
+ return "return " + string + ";";
+ } else {
+ return "buffer += " + string + ";";
+ }
+ },
+
+ initializeBuffer: function() {
+ return this.quotedString("");
+ },
+
+ namespace: "Handlebars",
+ // END PUBLIC API
+
+ compile: function(environment, options, context, asObject) {
+ this.environment = environment;
+ this.options = options || {};
+
+ this.name = this.environment.name;
+ this.isChild = !!context;
+ this.context = context || {
+ programs: [],
+ aliases: { self: 'this' },
+ registers: {list: []}
+ };
+
+ this.preamble();
+
+ this.stackSlot = 0;
+ this.stackVars = [];
+
+ this.compileChildren(environment, options);
+
+ var opcodes = environment.opcodes, opcode;
+
+ this.i = 0;
+
+ for(l=opcodes.length; this.i<l; this.i++) {
+ opcode = this.nextOpcode(0);
+
+ if(opcode[0] === 'DECLARE') {
+ this.i = this.i + 2;
+ this[opcode[1]] = opcode[2];
+ } else {
+ this.i = this.i + opcode[1].length;
+ this[opcode[0]].apply(this, opcode[1]);
+ }
+ }
+
+ return this.createFunctionContext(asObject);
+ },
+
+ nextOpcode: function(n) {
+ var opcodes = this.environment.opcodes, opcode = opcodes[this.i + n], name, val;
+ var extraParams, codes;
+
+ if(opcode === 'DECLARE') {
+ name = opcodes[this.i + 1];
+ val = opcodes[this.i + 2];
+ return ['DECLARE', name, val];
+ } else {
+ name = Compiler.DISASSEMBLE_MAP[opcode];
+
+ extraParams = Compiler.multiParamSize(opcode);
+ codes = [];
+
+ for(var j=0; j<extraParams; j++) {
+ codes.push(opcodes[this.i + j + 1 + n]);
+ }
+
+ return [name, codes];
+ }
+ },
+
+ eat: function(opcode) {
+ this.i = this.i + opcode.length;
+ },
+
+ preamble: function() {
+ var out = [];
+
+ // this register will disambiguate helper lookup from finding a function in
+ // a context. This is necessary for mustache compatibility, which requires
+ // that context functions in blocks are evaluated by blockHelperMissing, and
+ // then proceed as if the resulting value was provided to blockHelperMissing.
+ this.useRegister('foundHelper');
+
+ if (!this.isChild) {
+ var namespace = this.namespace;
+ var copies = "helpers = helpers || " + namespace + ".helpers;";
+ if(this.environment.usePartial) { copies = copies + " partials = partials || " + namespace + ".partials;"; }
+ out.push(copies);
+ } else {
+ out.push('');
+ }
+
+ if (!this.environment.isSimple) {
+ out.push(", buffer = " + this.initializeBuffer());
+ } else {
+ out.push("");
+ }
+
+ // track the last context pushed into place to allow skipping the
+ // getContext opcode when it would be a noop
+ this.lastContext = 0;
+ this.source = out;
+ },
+
+ createFunctionContext: function(asObject) {
+ var locals = this.stackVars;
+ if (!this.isChild) {
+ locals = locals.concat(this.context.registers.list);
+ }
+
+ if(locals.length > 0) {
+ this.source[1] = this.source[1] + ", " + locals.join(", ");
+ }
+
+ // Generate minimizer alias mappings
+ if (!this.isChild) {
+ var aliases = []
+ for (var alias in this.context.aliases) {
+ this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];
+ }
+ }
+
+ if (this.source[1]) {
+ this.source[1] = "var " + this.source[1].substring(2) + ";";
+ }
+
+ // Merge children
+ if (!this.isChild) {
+ this.source[1] += '\n' + this.context.programs.join('\n') + '\n';
+ }
+
+ if (!this.environment.isSimple) {
+ this.source.push("return buffer;");
+ }
+
+ var params = this.isChild ? ["depth0", "data"] : ["Handlebars", "depth0", "helpers", "partials", "data"];
+
+ for(var i=0, l=this.environment.depths.list.length; i<l; i++) {
+ params.push("depth" + this.environment.depths.list[i]);
+ }
+
+ if (asObject) {
+ params.push(this.source.join("\n "));
+
+ return Function.apply(this, params);
+ } else {
+ var functionSource = 'function ' + (this.name || '') + '(' + params.join(',') + ') {\n ' + this.source.join("\n ") + '}';
+ Handlebars.log(Handlebars.logger.DEBUG, functionSource + "\n\n");
+ return functionSource;
+ }
+ },
+
+ appendContent: function(content) {
+ this.source.push(this.appendToBuffer(this.quotedString(content)));
+ },
+
+ append: function() {
+ var local = this.popStack();
+ this.source.push("if(" + local + " || " + local + " === 0) { " + this.appendToBuffer(local) + " }");
+ if (this.environment.isSimple) {
+ this.source.push("else { " + this.appendToBuffer("''") + " }");
+ }
+ },
+
+ appendEscaped: function() {
+ var opcode = this.nextOpcode(1), extra = "";
+ this.context.aliases.escapeExpression = 'this.escapeExpression';
+
+ if(opcode[0] === 'appendContent') {
+ extra = " + " + this.quotedString(opcode[1][0]);
+ this.eat(opcode);
+ }
+
+ this.source.push(this.appendToBuffer("escapeExpression(" + this.popStack() + ")" + extra));
+ },
+
+ getContext: function(depth) {
+ if(this.lastContext !== depth) {
+ this.lastContext = depth;
+ }
+ },
+
+ lookupWithHelpers: function(name, isScoped) {
+ if(name) {
+ var topStack = this.nextStack();
+
+ this.usingKnownHelper = false;
+
+ var toPush;
+ if (!isScoped && this.options.knownHelpers[name]) {
+ toPush = topStack + " = " + this.nameLookup('helpers', name, 'helper');
+ this.usingKnownHelper = true;
+ } else if (isScoped || this.options.knownHelpersOnly) {
+ toPush = topStack + " = " + this.nameLookup('depth' + this.lastContext, name, 'context');
+ } else {
+ this.register('foundHelper', this.nameLookup('helpers', name, 'helper'));
+ toPush = topStack + " = foundHelper || " + this.nameLookup('depth' + this.lastContext, name, 'context');
+ }
+
+ toPush += ';';
+ this.source.push(toPush);
+ } else {
+ this.pushStack('depth' + this.lastContext);
+ }
+ },
+
+ lookup: function(name) {
+ var topStack = this.topStack();
+ this.source.push(topStack + " = (" + topStack + " === null || " + topStack + " === undefined || " + topStack + " === false ? " +
+ topStack + " : " + this.nameLookup(topStack, name, 'context') + ");");
+ },
+
+ pushStringParam: function(string) {
+ this.pushStack('depth' + this.lastContext);
+ this.pushString(string);
+ },
+
+ pushString: function(string) {
+ this.pushStack(this.quotedString(string));
+ },
+
+ push: function(name) {
+ this.pushStack(name);
+ },
+
+ invokeMustache: function(paramSize, original, hasHash) {
+ this.populateParams(paramSize, this.quotedString(original), "{}", null, hasHash, function(nextStack, helperMissingString, id) {
+ if (!this.usingKnownHelper) {
+ this.context.aliases.helperMissing = 'helpers.helperMissing';
+ this.context.aliases.undef = 'void 0';
+ this.source.push("else if(" + id + "=== undef) { " + nextStack + " = helperMissing.call(" + helperMissingString + "); }");
+ if (nextStack !== id) {
+ this.source.push("else { " + nextStack + " = " + id + "; }");
+ }
+ }
+ });
+ },
+
+ invokeProgram: function(guid, paramSize, hasHash) {
+ var inverse = this.programExpression(this.inverse);
+ var mainProgram = this.programExpression(guid);
+
+ this.populateParams(paramSize, null, mainProgram, inverse, hasHash, function(nextStack, helperMissingString, id) {
+ if (!this.usingKnownHelper) {
+ this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
+ this.source.push("else { " + nextStack + " = blockHelperMissing.call(" + helperMissingString + "); }");
+ }
+ });
+ },
+
+ populateParams: function(paramSize, helperId, program, inverse, hasHash, fn) {
+ var needsRegister = hasHash || this.options.stringParams || inverse || this.options.data;
+ var id = this.popStack(), nextStack;
+ var params = [], param, stringParam, stringOptions;
+
+ if (needsRegister) {
+ this.register('tmp1', program);
+ stringOptions = 'tmp1';
+ } else {
+ stringOptions = '{ hash: {} }';
+ }
+
+ if (needsRegister) {
+ var hash = (hasHash ? this.popStack() : '{}');
+ this.source.push('tmp1.hash = ' + hash + ';');
+ }
+
+ if(this.options.stringParams) {
+ this.source.push('tmp1.contexts = [];');
+ }
+
+ for(var i=0; i<paramSize; i++) {
+ param = this.popStack();
+ params.push(param);
+
+ if(this.options.stringParams) {
+ this.source.push('tmp1.contexts.push(' + this.popStack() + ');');
+ }
+ }
+
+ if(inverse) {
+ this.source.push('tmp1.fn = tmp1;');
+ this.source.push('tmp1.inverse = ' + inverse + ';');
+ }
+
+ if(this.options.data) {
+ this.source.push('tmp1.data = data;');
+ }
+
+ params.push(stringOptions);
+
+ this.populateCall(params, id, helperId || id, fn, program !== '{}');
+ },
+
+ populateCall: function(params, id, helperId, fn, program) {
+ var paramString = ["depth0"].concat(params).join(", ");
+ var helperMissingString = ["depth0"].concat(helperId).concat(params).join(", ");
+
+ var nextStack = this.nextStack();
+
+ if (this.usingKnownHelper) {
+ this.source.push(nextStack + " = " + id + ".call(" + paramString + ");");
+ } else {
+ this.context.aliases.functionType = '"function"';
+ var condition = program ? "foundHelper && " : ""
+ this.source.push("if(" + condition + "typeof " + id + " === functionType) { " + nextStack + " = " + id + ".call(" + paramString + "); }");
+ }
+ fn.call(this, nextStack, helperMissingString, id);
+ this.usingKnownHelper = false;
+ },
+
+ invokePartial: function(context) {
+ params = [this.nameLookup('partials', context, 'partial'), "'" + context + "'", this.popStack(), "helpers", "partials"];
+
+ if (this.options.data) {
+ params.push("data");
+ }
+
+ this.pushStack("self.invokePartial(" + params.join(", ") + ");");
+ },
+
+ assignToHash: function(key) {
+ var value = this.popStack();
+ var hash = this.topStack();
+
+ this.source.push(hash + "['" + key + "'] = " + value + ";");
+ },
+
+ // HELPERS
+
+ compiler: JavaScriptCompiler,
+
+ compileChildren: function(environment, options) {
+ var children = environment.children, child, compiler;
+
+ for(var i=0, l=children.length; i<l; i++) {
+ child = children[i];
+ compiler = new this.compiler();
+
+ this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children
+ var index = this.context.programs.length;
+ child.index = index;
+ child.name = 'program' + index;
+ this.context.programs[index] = compiler.compile(child, options, this.context);
+ }
+ },
+
+ programExpression: function(guid) {
+ if(guid == null) { return "self.noop"; }
+
+ var child = this.environment.children[guid],
+ depths = child.depths.list;
+ var programParams = [child.index, child.name, "data"];
+
+ for(var i=0, l = depths.length; i<l; i++) {
+ depth = depths[i];
+
+ if(depth === 1) { programParams.push("depth0"); }
+ else { programParams.push("depth" + (depth - 1)); }
+ }
+
+ if(depths.length === 0) {
+ return "self.program(" + programParams.join(", ") + ")";
+ } else {
+ programParams.shift();
+ return "self.programWithDepth(" + programParams.join(", ") + ")";
+ }
+ },
+
+ register: function(name, val) {
+ this.useRegister(name);
+ this.source.push(name + " = " + val + ";");
+ },
+
+ useRegister: function(name) {
+ if(!this.context.registers[name]) {
+ this.context.registers[name] = true;
+ this.context.registers.list.push(name);
+ }
+ },
+
+ pushStack: function(item) {
+ this.source.push(this.nextStack() + " = " + item + ";");
+ return "stack" + this.stackSlot;
+ },
+
+ nextStack: function() {
+ this.stackSlot++;
+ if(this.stackSlot > this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); }
+ return "stack" + this.stackSlot;
+ },
+
+ popStack: function() {
+ return "stack" + this.stackSlot--;
+ },
+
+ topStack: function() {
+ return "stack" + this.stackSlot;
+ },
+
+ quotedString: function(str) {
+ return '"' + str
+ .replace(/\\/g, '\\\\')
+ .replace(/"/g, '\\"')
+ .replace(/\n/g, '\\n')
+ .replace(/\r/g, '\\r') + '"';
+ }
+ };
+
+ var reservedWords = (
+ "break else new var" +
+ " case finally return void" +
+ " catch for switch while" +
+ " continue function this with" +
+ " default if throw" +
+ " delete in try" +
+ " do instanceof typeof" +
+ " abstract enum int short" +
+ " boolean export interface static" +
+ " byte extends long super" +
+ " char final native synchronized" +
+ " class float package throws" +
+ " const goto private transient" +
+ " debugger implements protected volatile" +
+ " double import public let yield"
+ ).split(" ");
+
+ var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
+
+ for(var i=0, l=reservedWords.length; i<l; i++) {
+ compilerWords[reservedWords[i]] = true;
+ }
+
+ JavaScriptCompiler.isValidJavaScriptVariableName = function(name) {
+ if(!JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(name)) {
+ return true;
+ }
+ return false;
+ }
+
+})(Handlebars.Compiler, Handlebars.JavaScriptCompiler);
+
+Handlebars.precompile = function(string, options) {
+ options = options || {};
+
+ var ast = Handlebars.parse(string);
+ var environment = new Handlebars.Compiler().compile(ast, options);
+ return new Handlebars.JavaScriptCompiler().compile(environment, options);
+};
+
+Handlebars.compile = function(string, options) {
+ options = options || {};
+
+ var compiled;
+ function compile() {
+ var ast = Handlebars.parse(string);
+ var environment = new Handlebars.Compiler().compile(ast, options);
+ var templateSpec = new Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true);
+ return Handlebars.template(templateSpec);
+ }
+
+ // Template is only compiled on first use and cached after that point.
+ return function(context, options) {
+ if (!compiled) {
+ compiled = compile();
+ }
+ return compiled.call(this, context, options);
+ };
+};
+;
+// lib/handlebars/runtime.js
+Handlebars.VM = {
+ template: function(templateSpec) {
+ // Just add water
+ var container = {
+ escapeExpression: Handlebars.Utils.escapeExpression,
+ invokePartial: Handlebars.VM.invokePartial,
+ programs: [],
+ program: function(i, fn, data) {
+ var programWrapper = this.programs[i];
+ if(data) {
+ return Handlebars.VM.program(fn, data);
+ } else if(programWrapper) {
+ return programWrapper;
+ } else {
+ programWrapper = this.programs[i] = Handlebars.VM.program(fn);
+ return programWrapper;
+ }
+ },
+ programWithDepth: Handlebars.VM.programWithDepth,
+ noop: Handlebars.VM.noop
+ };
+
+ return function(context, options) {
+ options = options || {};
+ return templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data);
+ };
+ },
+
+ programWithDepth: function(fn, data, $depth) {
+ var args = Array.prototype.slice.call(arguments, 2);
+
+ return function(context, options) {
+ options = options || {};
+
+ return fn.apply(this, [context, options.data || data].concat(args));
+ };
+ },
+ program: function(fn, data) {
+ return function(context, options) {
+ options = options || {};
+
+ return fn(context, options.data || data);
+ };
+ },
+ noop: function() { return ""; },
+ invokePartial: function(partial, name, context, helpers, partials, data) {
+ options = { helpers: helpers, partials: partials, data: data };
+
+ if(partial === undefined) {
+ throw new Handlebars.Exception("The partial " + name + " could not be found");
+ } else if(partial instanceof Function) {
+ return partial(context, options);
+ } else if (!Handlebars.compile) {
+ throw new Handlebars.Exception("The partial " + name + " could not be compiled when running in runtime-only mode");
+ } else {
+ partials[name] = Handlebars.compile(partial);
+ return partials[name](context, options);
+ }
+ }
+};
+
+Handlebars.template = Handlebars.VM.template;
+;
diff --git a/SDL_Core/src/components/HMI/lib/iscroll-lite.js b/SDL_Core/src/components/HMI/lib/iscroll-lite.js
new file mode 100644
index 000000000..3a6cab7d2
--- /dev/null
+++ b/SDL_Core/src/components/HMI/lib/iscroll-lite.js
@@ -0,0 +1,594 @@
+/*!
+ * iScroll Lite base on iScroll v4.1.6 ~ Copyright (c) 2011 Matteo Spinelli, http://cubiq.org
+ * Released under MIT license, http://cubiq.org/license
+ */
+
+(function(){
+var m = Math,
+ mround = function (r) { return r >> 0; },
+ vendor = (/webkit/i).test(navigator.appVersion) ? 'webkit' :
+ (/firefox/i).test(navigator.userAgent) ? 'Moz' :
+ 'opera' in window ? 'O' : '',
+
+ // Browser capabilities
+ isAndroid = (/android/gi).test(navigator.appVersion),
+ isIDevice = (/iphone|ipad/gi).test(navigator.appVersion),
+ isPlaybook = (/playbook/gi).test(navigator.appVersion),
+ isTouchPad = (/hp-tablet/gi).test(navigator.appVersion),
+
+ has3d = 'WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix(),
+ hasTouch = 'ontouchstart' in window && !isTouchPad,
+ hasTransform = vendor + 'Transform' in document.documentElement.style,
+ hasTransitionEnd = isIDevice || isPlaybook,
+
+ nextFrame = (function() {
+ return window.requestAnimationFrame
+ || window.webkitRequestAnimationFrame
+ || window.mozRequestAnimationFrame
+ || window.oRequestAnimationFrame
+ || window.msRequestAnimationFrame
+ || function(callback) { return setTimeout(callback, 17); }
+ })(),
+ cancelFrame = (function () {
+ return window.cancelRequestAnimationFrame
+ || window.webkitCancelAnimationFrame
+ || window.webkitCancelRequestAnimationFrame
+ || window.mozCancelRequestAnimationFrame
+ || window.oCancelRequestAnimationFrame
+ || window.msCancelRequestAnimationFrame
+ || clearTimeout
+ })(),
+
+ // Events
+ RESIZE_EV = 'onorientationchange' in window ? 'orientationchange' : 'resize',
+ START_EV = hasTouch ? 'touchstart' : 'mousedown',
+ MOVE_EV = hasTouch ? 'touchmove' : 'mousemove',
+ END_EV = hasTouch ? 'touchend' : 'mouseup',
+ CANCEL_EV = hasTouch ? 'touchcancel' : 'mouseup',
+
+ // Helpers
+ trnOpen = 'translate' + (has3d ? '3d(' : '('),
+ trnClose = has3d ? ',0)' : ')',
+
+ // Constructor
+ iScroll = function (el, options) {
+ var that = this,
+ doc = document,
+ i;
+
+ that.wrapper = typeof el == 'object' ? el : doc.getElementById(el);
+ that.wrapper.style.overflow = 'hidden';
+ that.scroller = that.wrapper.children[0];
+
+ // Default options
+ that.options = {
+ hScroll: true,
+ vScroll: true,
+ x: 0,
+ y: 0,
+ bounce: true,
+ bounceLock: false,
+ momentum: true,
+ lockDirection: true,
+ useTransform: true,
+ useTransition: false,
+
+ // Events
+ onRefresh: null,
+ onBeforeScrollStart: function (e) { e.preventDefault(); },
+ onScrollStart: null,
+ onBeforeScrollMove: null,
+ onScrollMove: null,
+ onBeforeScrollEnd: null,
+ onScrollEnd: null,
+ onTouchEnd: null,
+ onDestroy: null
+ };
+
+ // User defined options
+ for (i in options) that.options[i] = options[i];
+
+ // Set starting position
+ that.x = that.options.x;
+ that.y = that.options.y;
+
+ // Normalize options
+ that.options.useTransform = hasTransform ? that.options.useTransform : false;
+ that.options.hScrollbar = that.options.hScroll && that.options.hScrollbar;
+ that.options.vScrollbar = that.options.vScroll && that.options.vScrollbar;
+ that.options.useTransition = hasTransitionEnd && that.options.useTransition;
+
+ // Set some default styles
+ that.scroller.style[vendor + 'TransitionProperty'] = that.options.useTransform ? '-' + vendor.toLowerCase() + '-transform' : 'top left';
+ that.scroller.style[vendor + 'TransitionDuration'] = '0';
+ that.scroller.style[vendor + 'TransformOrigin'] = '0 0';
+ if (that.options.useTransition) that.scroller.style[vendor + 'TransitionTimingFunction'] = 'cubic-bezier(0.33,0.66,0.66,1)';
+
+ if (that.options.useTransform) that.scroller.style[vendor + 'Transform'] = trnOpen + that.x + 'px,' + that.y + 'px' + trnClose;
+ else that.scroller.style.cssText += ';position:absolute;top:' + that.y + 'px;left:' + that.x + 'px';
+
+ that.refresh();
+
+ that._bind(RESIZE_EV, window);
+ that._bind(START_EV);
+ if (!hasTouch) that._bind('mouseout', that.wrapper);
+ };
+
+// Prototype
+iScroll.prototype = {
+ enabled: true,
+ x: 0,
+ y: 0,
+ steps: [],
+ scale: 1,
+
+ handleEvent: function (e) {
+ var that = this;
+ switch(e.type) {
+ case START_EV:
+ if (!hasTouch && e.button !== 0) return;
+ that._start(e);
+ break;
+ case MOVE_EV: that._move(e); break;
+ case END_EV:
+ case CANCEL_EV: that._end(e); break;
+ case RESIZE_EV: that._resize(); break;
+ case 'mouseout': that._mouseout(e); break;
+ case 'webkitTransitionEnd': that._transitionEnd(e); break;
+ }
+ },
+
+ _resize: function () {
+ this.refresh();
+ },
+
+ _pos: function (x, y) {
+ x = this.hScroll ? x : 0;
+ y = this.vScroll ? y : 0;
+
+ if (this.options.useTransform) {
+ this.scroller.style[vendor + 'Transform'] = trnOpen + x + 'px,' + y + 'px' + trnClose + ' scale(' + this.scale + ')';
+ } else {
+ x = mround(x);
+ y = mround(y);
+ this.scroller.style.left = x + 'px';
+ this.scroller.style.top = y + 'px';
+ }
+
+ this.x = x;
+ this.y = y;
+ },
+
+ _start: function (e) {
+ var that = this,
+ point = hasTouch ? e.touches[0] : e,
+ matrix, x, y;
+
+ if (!that.enabled) return;
+
+ if (that.options.onBeforeScrollStart) that.options.onBeforeScrollStart.call(that, e);
+
+ if (that.options.useTransition) that._transitionTime(0);
+
+ that.moved = false;
+ that.animating = false;
+ that.zoomed = false;
+ that.distX = 0;
+ that.distY = 0;
+ that.absDistX = 0;
+ that.absDistY = 0;
+ that.dirX = 0;
+ that.dirY = 0;
+
+ if (that.options.momentum) {
+ if (that.options.useTransform) {
+ // Very lame general purpose alternative to CSSMatrix
+ matrix = getComputedStyle(that.scroller, null)[vendor + 'Transform'].replace(/[^0-9-.,]/g, '').split(',');
+ x = matrix[4] * 1;
+ y = matrix[5] * 1;
+ } else {
+ x = getComputedStyle(that.scroller, null).left.replace(/[^0-9-]/g, '') * 1;
+ y = getComputedStyle(that.scroller, null).top.replace(/[^0-9-]/g, '') * 1;
+ }
+
+ if (x != that.x || y != that.y) {
+ if (that.options.useTransition) that._unbind('webkitTransitionEnd');
+ else cancelFrame(that.aniTime);
+ that.steps = [];
+ that._pos(x, y);
+ }
+ }
+
+ that.startX = that.x;
+ that.startY = that.y;
+ that.pointX = point.pageX;
+ that.pointY = point.pageY;
+
+ that.startTime = e.timeStamp || Date.now();
+
+ if (that.options.onScrollStart) that.options.onScrollStart.call(that, e);
+
+ that._bind(MOVE_EV);
+ that._bind(END_EV);
+ that._bind(CANCEL_EV);
+ },
+
+ _move: function (e) {
+ var that = this,
+ point = hasTouch ? e.touches[0] : e,
+ deltaX = point.pageX - that.pointX,
+ deltaY = point.pageY - that.pointY,
+ newX = that.x + deltaX,
+ newY = that.y + deltaY,
+ timestamp = e.timeStamp || Date.now();
+
+ if (that.options.onBeforeScrollMove) that.options.onBeforeScrollMove.call(that, e);
+
+ that.pointX = point.pageX;
+ that.pointY = point.pageY;
+
+ // Slow down if outside of the boundaries
+ if (newX > 0 || newX < that.maxScrollX) {
+ newX = that.options.bounce ? that.x + (deltaX / 2) : newX >= 0 || that.maxScrollX >= 0 ? 0 : that.maxScrollX;
+ }
+ if (newY > 0 || newY < that.maxScrollY) {
+ newY = that.options.bounce ? that.y + (deltaY / 2) : newY >= 0 || that.maxScrollY >= 0 ? 0 : that.maxScrollY;
+ }
+
+ that.distX += deltaX;
+ that.distY += deltaY;
+ that.absDistX = m.abs(that.distX);
+ that.absDistY = m.abs(that.distY);
+
+ if (that.absDistX < 6 && that.absDistY < 6) {
+ return;
+ }
+
+ // Lock direction
+ if (that.options.lockDirection) {
+ if (that.absDistX > that.absDistY + 5) {
+ newY = that.y;
+ deltaY = 0;
+ } else if (that.absDistY > that.absDistX + 5) {
+ newX = that.x;
+ deltaX = 0;
+ }
+ }
+
+ that.moved = true;
+ that._pos(newX, newY);
+ that.dirX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0;
+ that.dirY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0;
+
+ if (timestamp - that.startTime > 300) {
+ that.startTime = timestamp;
+ that.startX = that.x;
+ that.startY = that.y;
+ }
+
+ if (that.options.onScrollMove) that.options.onScrollMove.call(that, e);
+ },
+
+ _end: function (e) {
+ if (hasTouch && e.touches.length != 0) return;
+
+ var that = this,
+ point = hasTouch ? e.changedTouches[0] : e,
+ target, ev,
+ momentumX = { dist:0, time:0 },
+ momentumY = { dist:0, time:0 },
+ duration = (e.timeStamp || Date.now()) - that.startTime,
+ newPosX = that.x,
+ newPosY = that.y,
+ newDuration;
+
+ that._unbind(MOVE_EV);
+ that._unbind(END_EV);
+ that._unbind(CANCEL_EV);
+
+ if (that.options.onBeforeScrollEnd) that.options.onBeforeScrollEnd.call(that, e);
+
+ if (!that.moved) {
+ if (hasTouch) {
+ // Find the last touched element
+ target = point.target;
+ while (target.nodeType != 1) target = target.parentNode;
+
+ if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA') {
+ ev = document.createEvent('MouseEvents');
+ ev.initMouseEvent('click', true, true, e.view, 1,
+ point.screenX, point.screenY, point.clientX, point.clientY,
+ e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
+ 0, null);
+ ev._fake = true;
+ target.dispatchEvent(ev);
+ }
+ }
+
+ that._resetPos(200);
+
+ if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+ return;
+ }
+
+ if (duration < 300 && that.options.momentum) {
+ momentumX = newPosX ? that._momentum(newPosX - that.startX, duration, -that.x, that.scrollerW - that.wrapperW + that.x, that.options.bounce ? that.wrapperW : 0) : momentumX;
+ momentumY = newPosY ? that._momentum(newPosY - that.startY, duration, -that.y, (that.maxScrollY < 0 ? that.scrollerH - that.wrapperH + that.y : 0), that.options.bounce ? that.wrapperH : 0) : momentumY;
+
+ newPosX = that.x + momentumX.dist;
+ newPosY = that.y + momentumY.dist;
+
+ if ((that.x > 0 && newPosX > 0) || (that.x < that.maxScrollX && newPosX < that.maxScrollX)) momentumX = { dist:0, time:0 };
+ if ((that.y > 0 && newPosY > 0) || (that.y < that.maxScrollY && newPosY < that.maxScrollY)) momentumY = { dist:0, time:0 };
+ }
+
+ if (momentumX.dist || momentumY.dist) {
+ newDuration = m.max(m.max(momentumX.time, momentumY.time), 10);
+
+ that.scrollTo(mround(newPosX), mround(newPosY), newDuration);
+
+ if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+ return;
+ }
+
+ that._resetPos(200);
+ if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e);
+ },
+
+ _resetPos: function (time) {
+ var that = this,
+ resetX = that.x >= 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x,
+ resetY = that.y >= 0 || that.maxScrollY > 0 ? 0 : that.y < that.maxScrollY ? that.maxScrollY : that.y;
+
+ if (resetX == that.x && resetY == that.y) {
+ if (that.moved) {
+ if (that.options.onScrollEnd) that.options.onScrollEnd.call(that); // Execute custom code on scroll end
+ that.moved = false;
+ }
+
+ return;
+ }
+
+ that.scrollTo(resetX, resetY, time || 0);
+ },
+
+ _mouseout: function (e) {
+ var t = e.relatedTarget;
+
+ if (!t) {
+ this._end(e);
+ return;
+ }
+
+ while (t = t.parentNode) if (t == this.wrapper) return;
+
+ this._end(e);
+ },
+
+ _transitionEnd: function (e) {
+ var that = this;
+
+ if (e.target != that.scroller) return;
+
+ that._unbind('webkitTransitionEnd');
+
+ that._startAni();
+ },
+
+ /**
+ *
+ * Utilities
+ *
+ */
+ _startAni: function () {
+ var that = this,
+ startX = that.x, startY = that.y,
+ startTime = Date.now(),
+ step, easeOut,
+ animate;
+
+ if (that.animating) return;
+
+ if (!that.steps.length) {
+ that._resetPos(400);
+ return;
+ }
+
+ step = that.steps.shift();
+
+ if (step.x == startX && step.y == startY) step.time = 0;
+
+ that.animating = true;
+ that.moved = true;
+
+ if (that.options.useTransition) {
+ that._transitionTime(step.time);
+ that._pos(step.x, step.y);
+ that.animating = false;
+ if (step.time) that._bind('webkitTransitionEnd');
+ else that._resetPos(0);
+ return;
+ }
+
+ animate = function () {
+ var now = Date.now(),
+ newX, newY;
+
+ if (now >= startTime + step.time) {
+ that._pos(step.x, step.y);
+ that.animating = false;
+ if (that.options.onAnimationEnd) that.options.onAnimationEnd.call(that); // Execute custom code on animation end
+ that._startAni();
+ return;
+ }
+
+ now = (now - startTime) / step.time - 1;
+ easeOut = m.sqrt(1 - now * now);
+ newX = (step.x - startX) * easeOut + startX;
+ newY = (step.y - startY) * easeOut + startY;
+ that._pos(newX, newY);
+ if (that.animating) that.aniTime = nextFrame(animate);
+ };
+
+ animate();
+ },
+
+ _transitionTime: function (time) {
+ this.scroller.style[vendor + 'TransitionDuration'] = time + 'ms';
+ },
+
+ _momentum: function (dist, time, maxDistUpper, maxDistLower, size) {
+ var deceleration = 0.0006,
+ speed = m.abs(dist) / time,
+ newDist = (speed * speed) / (2 * deceleration),
+ newTime = 0, outsideDist = 0;
+
+ // Proportinally reduce speed if we are outside of the boundaries
+ if (dist > 0 && newDist > maxDistUpper) {
+ outsideDist = size / (6 / (newDist / speed * deceleration));
+ maxDistUpper = maxDistUpper + outsideDist;
+ speed = speed * maxDistUpper / newDist;
+ newDist = maxDistUpper;
+ } else if (dist < 0 && newDist > maxDistLower) {
+ outsideDist = size / (6 / (newDist / speed * deceleration));
+ maxDistLower = maxDistLower + outsideDist;
+ speed = speed * maxDistLower / newDist;
+ newDist = maxDistLower;
+ }
+
+ newDist = newDist * (dist < 0 ? -1 : 1);
+ newTime = speed / deceleration;
+
+ return { dist: newDist, time: mround(newTime) };
+ },
+
+ _offset: function (el) {
+ var left = -el.offsetLeft,
+ top = -el.offsetTop;
+
+ while (el = el.offsetParent) {
+ left -= el.offsetLeft;
+ top -= el.offsetTop;
+ }
+
+ return { left: left, top: top };
+ },
+
+ _bind: function (type, el, bubble) {
+ (el || this.scroller).addEventListener(type, this, !!bubble);
+ },
+
+ _unbind: function (type, el, bubble) {
+ (el || this.scroller).removeEventListener(type, this, !!bubble);
+ },
+
+
+ /**
+ *
+ * Public methods
+ *
+ */
+ destroy: function () {
+ var that = this;
+
+ that.scroller.style[vendor + 'Transform'] = '';
+
+ // Remove the event listeners
+ that._unbind(RESIZE_EV, window);
+ that._unbind(START_EV);
+ that._unbind(MOVE_EV);
+ that._unbind(END_EV);
+ that._unbind(CANCEL_EV);
+ that._unbind('mouseout', that.wrapper);
+ if (that.options.useTransition) that._unbind('webkitTransitionEnd');
+
+ if (that.options.onDestroy) that.options.onDestroy.call(that);
+ },
+
+ refresh: function () {
+ var that = this,
+ offset;
+
+ that.wrapperW = that.wrapper.clientWidth;
+ that.wrapperH = that.wrapper.clientHeight;
+
+ that.scrollerW = that.scroller.offsetWidth;
+ that.scrollerH = that.scroller.offsetHeight;
+ that.maxScrollX = that.wrapperW - that.scrollerW;
+ that.maxScrollY = that.wrapperH - that.scrollerH;
+ that.dirX = 0;
+ that.dirY = 0;
+
+ that.hScroll = that.options.hScroll && that.maxScrollX < 0;
+ that.vScroll = that.options.vScroll && (!that.options.bounceLock && !that.hScroll || that.scrollerH > that.wrapperH);
+
+ offset = that._offset(that.wrapper);
+ that.wrapperOffsetLeft = -offset.left;
+ that.wrapperOffsetTop = -offset.top;
+
+
+ that.scroller.style[vendor + 'TransitionDuration'] = '0';
+
+ that._resetPos(200);
+ },
+
+ scrollTo: function (x, y, time, relative) {
+ var that = this,
+ step = x,
+ i, l;
+
+ that.stop();
+
+ if (!step.length) step = [{ x: x, y: y, time: time, relative: relative }];
+
+ for (i=0, l=step.length; i<l; i++) {
+ if (step[i].relative) { step[i].x = that.x - step[i].x; step[i].y = that.y - step[i].y; }
+ that.steps.push({ x: step[i].x, y: step[i].y, time: step[i].time || 0 });
+ }
+
+ that._startAni();
+ },
+
+ scrollToElement: function (el, time) {
+ var that = this, pos;
+ el = el.nodeType ? el : that.scroller.querySelector(el);
+ if (!el) return;
+
+ pos = that._offset(el);
+ pos.left += that.wrapperOffsetLeft;
+ pos.top += that.wrapperOffsetTop;
+
+ pos.left = pos.left > 0 ? 0 : pos.left < that.maxScrollX ? that.maxScrollX : pos.left;
+ pos.top = pos.top > 0 ? 0 : pos.top < that.maxScrollY ? that.maxScrollY : pos.top;
+ time = time === undefined ? m.max(m.abs(pos.left)*2, m.abs(pos.top)*2) : time;
+
+ that.scrollTo(pos.left, pos.top, time);
+ },
+
+ disable: function () {
+ this.stop();
+ this._resetPos(0);
+ this.enabled = false;
+
+ // If disabled after touchstart we make sure that there are no left over events
+ this._unbind(MOVE_EV);
+ this._unbind(END_EV);
+ this._unbind(CANCEL_EV);
+ },
+
+ enable: function () {
+ this.enabled = true;
+ },
+
+ stop: function () {
+ cancelFrame(this.aniTime);
+ this.steps = [];
+ this.moved = false;
+ this.animating = false;
+ }
+};
+
+if (typeof exports !== 'undefined') exports.iScroll = iScroll;
+else window.iScroll = iScroll;
+
+})();
diff --git a/SDL_Core/src/components/HMI/lib/jquery-1.7.2.js b/SDL_Core/src/components/HMI/lib/jquery-1.7.2.js
index 3774ff986..0073dfc8c 100755..100644
--- a/SDL_Core/src/components/HMI/lib/jquery-1.7.2.js
+++ b/SDL_Core/src/components/HMI/lib/jquery-1.7.2.js
@@ -1,9404 +1,9404 @@
-/*!
- * jQuery JavaScript Library v1.7.2
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Wed Mar 21 12:46:34 2012 -0700
- */
-(function( window, undefined ) {
-
-// Use the correct document accordingly with window argument (sandbox)
-var document = window.document,
- navigator = window.navigator,
- location = window.location;
-var jQuery = (function() {
-
-// Define a local copy of jQuery
-var jQuery = function( selector, context ) {
- // The jQuery object is actually just the init constructor 'enhanced'
- return new jQuery.fn.init( selector, context, rootjQuery );
- },
-
- // Map over jQuery in case of overwrite
- _jQuery = window.jQuery,
-
- // Map over the $ in case of overwrite
- _$ = window.$,
-
- // A central reference to the root jQuery(document)
- rootjQuery,
-
- // A simple way to check for HTML strings or ID strings
- // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
- quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
-
- // Check if a string has a non-whitespace character in it
- rnotwhite = /\S/,
-
- // Used for trimming whitespace
- trimLeft = /^\s+/,
- trimRight = /\s+$/,
-
- // Match a standalone tag
- rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
-
- // JSON RegExp
- rvalidchars = /^[\],:{}\s]*$/,
- rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
- rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
- rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
-
- // Useragent RegExp
- rwebkit = /(webkit)[ \/]([\w.]+)/,
- ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
- rmsie = /(msie) ([\w.]+)/,
- rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
-
- // Matches dashed string for camelizing
- rdashAlpha = /-([a-z]|[0-9])/ig,
- rmsPrefix = /^-ms-/,
-
- // Used by jQuery.camelCase as callback to replace()
- fcamelCase = function( all, letter ) {
- return ( letter + "" ).toUpperCase();
- },
-
- // Keep a UserAgent string for use with jQuery.browser
- userAgent = navigator.userAgent,
-
- // For matching the engine and version of the browser
- browserMatch,
-
- // The deferred used on DOM ready
- readyList,
-
- // The ready event handler
- DOMContentLoaded,
-
- // Save a reference to some core methods
- toString = Object.prototype.toString,
- hasOwn = Object.prototype.hasOwnProperty,
- push = Array.prototype.push,
- slice = Array.prototype.slice,
- trim = String.prototype.trim,
- indexOf = Array.prototype.indexOf,
-
- // [[Class]] -> type pairs
- class2type = {};
-
-jQuery.fn = jQuery.prototype = {
- constructor: jQuery,
- init: function( selector, context, rootjQuery ) {
- var match, elem, ret, doc;
-
- // Handle $(""), $(null), or $(undefined)
- if ( !selector ) {
- return this;
- }
-
- // Handle $(DOMElement)
- if ( selector.nodeType ) {
- this.context = this[0] = selector;
- this.length = 1;
- return this;
- }
-
- // The body element only exists once, optimize finding it
- if ( selector === "body" && !context && document.body ) {
- this.context = document;
- this[0] = document.body;
- this.selector = selector;
- this.length = 1;
- return this;
- }
-
- // Handle HTML strings
- if ( typeof selector === "string" ) {
- // Are we dealing with HTML string or an ID?
- if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
- // Assume that strings that start and end with <> are HTML and skip the regex check
- match = [ null, selector, null ];
-
- } else {
- match = quickExpr.exec( selector );
- }
-
- // Verify a match, and that no context was specified for #id
- if ( match && (match[1] || !context) ) {
-
- // HANDLE: $(html) -> $(array)
- if ( match[1] ) {
- context = context instanceof jQuery ? context[0] : context;
- doc = ( context ? context.ownerDocument || context : document );
-
- // If a single string is passed in and it's a single tag
- // just do a createElement and skip the rest
- ret = rsingleTag.exec( selector );
-
- if ( ret ) {
- if ( jQuery.isPlainObject( context ) ) {
- selector = [ document.createElement( ret[1] ) ];
- jQuery.fn.attr.call( selector, context, true );
-
- } else {
- selector = [ doc.createElement( ret[1] ) ];
- }
-
- } else {
- ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
- selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes;
- }
-
- return jQuery.merge( this, selector );
-
- // HANDLE: $("#id")
- } else {
- elem = document.getElementById( match[2] );
-
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- if ( elem && elem.parentNode ) {
- // Handle the case where IE and Opera return items
- // by name instead of ID
- if ( elem.id !== match[2] ) {
- return rootjQuery.find( selector );
- }
-
- // Otherwise, we inject the element directly into the jQuery object
- this.length = 1;
- this[0] = elem;
- }
-
- this.context = document;
- this.selector = selector;
- return this;
- }
-
- // HANDLE: $(expr, $(...))
- } else if ( !context || context.jquery ) {
- return ( context || rootjQuery ).find( selector );
-
- // HANDLE: $(expr, context)
- // (which is just equivalent to: $(context).find(expr)
- } else {
- return this.constructor( context ).find( selector );
- }
-
- // HANDLE: $(function)
- // Shortcut for document ready
- } else if ( jQuery.isFunction( selector ) ) {
- return rootjQuery.ready( selector );
- }
-
- if ( selector.selector !== undefined ) {
- this.selector = selector.selector;
- this.context = selector.context;
- }
-
- return jQuery.makeArray( selector, this );
- },
-
- // Start with an empty selector
- selector: "",
-
- // The current version of jQuery being used
- jquery: "1.7.2",
-
- // The default length of a jQuery object is 0
- length: 0,
-
- // The number of elements contained in the matched element set
- size: function() {
- return this.length;
- },
-
- toArray: function() {
- return slice.call( this, 0 );
- },
-
- // Get the Nth element in the matched element set OR
- // Get the whole matched element set as a clean array
- get: function( num ) {
- return num == null ?
-
- // Return a 'clean' array
- this.toArray() :
-
- // Return just the object
- ( num < 0 ? this[ this.length + num ] : this[ num ] );
- },
-
- // Take an array of elements and push it onto the stack
- // (returning the new matched element set)
- pushStack: function( elems, name, selector ) {
- // Build a new jQuery matched element set
- var ret = this.constructor();
-
- if ( jQuery.isArray( elems ) ) {
- push.apply( ret, elems );
-
- } else {
- jQuery.merge( ret, elems );
- }
-
- // Add the old object onto the stack (as a reference)
- ret.prevObject = this;
-
- ret.context = this.context;
-
- if ( name === "find" ) {
- ret.selector = this.selector + ( this.selector ? " " : "" ) + selector;
- } else if ( name ) {
- ret.selector = this.selector + "." + name + "(" + selector + ")";
- }
-
- // Return the newly-formed element set
- return ret;
- },
-
- // Execute a callback for every element in the matched set.
- // (You can seed the arguments with an array of args, but this is
- // only used internally.)
- each: function( callback, args ) {
- return jQuery.each( this, callback, args );
- },
-
- ready: function( fn ) {
- // Attach the listeners
- jQuery.bindReady();
-
- // Add the callback
- readyList.add( fn );
-
- return this;
- },
-
- eq: function( i ) {
- i = +i;
- return i === -1 ?
- this.slice( i ) :
- this.slice( i, i + 1 );
- },
-
- first: function() {
- return this.eq( 0 );
- },
-
- last: function() {
- return this.eq( -1 );
- },
-
- slice: function() {
- return this.pushStack( slice.apply( this, arguments ),
- "slice", slice.call(arguments).join(",") );
- },
-
- map: function( callback ) {
- return this.pushStack( jQuery.map(this, function( elem, i ) {
- return callback.call( elem, i, elem );
- }));
- },
-
- end: function() {
- return this.prevObject || this.constructor(null);
- },
-
- // For internal use only.
- // Behaves like an Array's method, not like a jQuery method.
- push: push,
- sort: [].sort,
- splice: [].splice
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-jQuery.extend = jQuery.fn.extend = function() {
- var options, name, src, copy, copyIsArray, clone,
- target = arguments[0] || {},
- i = 1,
- length = arguments.length,
- deep = false;
-
- // Handle a deep copy situation
- if ( typeof target === "boolean" ) {
- deep = target;
- target = arguments[1] || {};
- // skip the boolean and the target
- i = 2;
- }
-
- // Handle case when target is a string or something (possible in deep copy)
- if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
- target = {};
- }
-
- // extend jQuery itself if only one argument is passed
- if ( length === i ) {
- target = this;
- --i;
- }
-
- for ( ; i < length; i++ ) {
- // Only deal with non-null/undefined values
- if ( (options = arguments[ i ]) != null ) {
- // Extend the base object
- for ( name in options ) {
- src = target[ name ];
- copy = options[ name ];
-
- // Prevent never-ending loop
- if ( target === copy ) {
- continue;
- }
-
- // Recurse if we're merging plain objects or arrays
- if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
- if ( copyIsArray ) {
- copyIsArray = false;
- clone = src && jQuery.isArray(src) ? src : [];
-
- } else {
- clone = src && jQuery.isPlainObject(src) ? src : {};
- }
-
- // Never move original objects, clone them
- target[ name ] = jQuery.extend( deep, clone, copy );
-
- // Don't bring in undefined values
- } else if ( copy !== undefined ) {
- target[ name ] = copy;
- }
- }
- }
- }
-
- // Return the modified object
- return target;
-};
-
-jQuery.extend({
- noConflict: function( deep ) {
- if ( window.$ === jQuery ) {
- window.$ = _$;
- }
-
- if ( deep && window.jQuery === jQuery ) {
- window.jQuery = _jQuery;
- }
-
- return jQuery;
- },
-
- // Is the DOM ready to be used? Set to true once it occurs.
- isReady: false,
-
- // A counter to track how many items to wait for before
- // the ready event fires. See #6781
- readyWait: 1,
-
- // Hold (or release) the ready event
- holdReady: function( hold ) {
- if ( hold ) {
- jQuery.readyWait++;
- } else {
- jQuery.ready( true );
- }
- },
-
- // Handle when the DOM is ready
- ready: function( wait ) {
- // Either a released hold or an DOMready/load event and not yet ready
- if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
- // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
- if ( !document.body ) {
- return setTimeout( jQuery.ready, 1 );
- }
-
- // Remember that the DOM is ready
- jQuery.isReady = true;
-
- // If a normal DOM Ready event fired, decrement, and wait if need be
- if ( wait !== true && --jQuery.readyWait > 0 ) {
- return;
- }
-
- // If there are functions bound, to execute
- readyList.fireWith( document, [ jQuery ] );
-
- // Trigger any bound ready events
- if ( jQuery.fn.trigger ) {
- jQuery( document ).trigger( "ready" ).off( "ready" );
- }
- }
- },
-
- bindReady: function() {
- if ( readyList ) {
- return;
- }
-
- readyList = jQuery.Callbacks( "once memory" );
-
- // Catch cases where $(document).ready() is called after the
- // browser event has already occurred.
- if ( document.readyState === "complete" ) {
- // Handle it asynchronously to allow scripts the opportunity to delay ready
- return setTimeout( jQuery.ready, 1 );
- }
-
- // Mozilla, Opera and webkit nightlies currently support this event
- if ( document.addEventListener ) {
- // Use the handy event callback
- document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-
- // A fallback to window.onload, that will always work
- window.addEventListener( "load", jQuery.ready, false );
-
- // If IE event model is used
- } else if ( document.attachEvent ) {
- // ensure firing before onload,
- // maybe late but safe also for iframes
- document.attachEvent( "onreadystatechange", DOMContentLoaded );
-
- // A fallback to window.onload, that will always work
- window.attachEvent( "onload", jQuery.ready );
-
- // If IE and not a frame
- // continually check to see if the document is ready
- var toplevel = false;
-
- try {
- toplevel = window.frameElement == null;
- } catch(e) {}
-
- if ( document.documentElement.doScroll && toplevel ) {
- doScrollCheck();
- }
- }
- },
-
- // See test/unit/core.js for details concerning isFunction.
- // Since version 1.3, DOM methods and functions like alert
- // aren't supported. They return false on IE (#2968).
- isFunction: function( obj ) {
- return jQuery.type(obj) === "function";
- },
-
- isArray: Array.isArray || function( obj ) {
- return jQuery.type(obj) === "array";
- },
-
- isWindow: function( obj ) {
- return obj != null && obj == obj.window;
- },
-
- isNumeric: function( obj ) {
- return !isNaN( parseFloat(obj) ) && isFinite( obj );
- },
-
- type: function( obj ) {
- return obj == null ?
- String( obj ) :
- class2type[ toString.call(obj) ] || "object";
- },
-
- isPlainObject: function( obj ) {
- // Must be an Object.
- // Because of IE, we also have to check the presence of the constructor property.
- // Make sure that DOM nodes and window objects don't pass through, as well
- if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
- return false;
- }
-
- try {
- // Not own constructor property must be Object
- if ( obj.constructor &&
- !hasOwn.call(obj, "constructor") &&
- !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
- return false;
- }
- } catch ( e ) {
- // IE8,9 Will throw exceptions on certain host objects #9897
- return false;
- }
-
- // Own properties are enumerated firstly, so to speed up,
- // if last one is own, then all properties are own.
-
- var key;
- for ( key in obj ) {}
-
- return key === undefined || hasOwn.call( obj, key );
- },
-
- isEmptyObject: function( obj ) {
- for ( var name in obj ) {
- return false;
- }
- return true;
- },
-
- error: function( msg ) {
- throw new Error( msg );
- },
-
- parseJSON: function( data ) {
- if ( typeof data !== "string" || !data ) {
- return null;
- }
-
- // Make sure leading/trailing whitespace is removed (IE can't handle it)
- data = jQuery.trim( data );
-
- // Attempt to parse using the native JSON parser first
- if ( window.JSON && window.JSON.parse ) {
- return window.JSON.parse( data );
- }
-
- // Make sure the incoming data is actual JSON
- // Logic borrowed from http://json.org/json2.js
- if ( rvalidchars.test( data.replace( rvalidescape, "@" )
- .replace( rvalidtokens, "]" )
- .replace( rvalidbraces, "")) ) {
-
- return ( new Function( "return " + data ) )();
-
- }
- jQuery.error( "Invalid JSON: " + data );
- },
-
- // Cross-browser xml parsing
- parseXML: function( data ) {
- if ( typeof data !== "string" || !data ) {
- return null;
- }
- var xml, tmp;
- try {
- if ( window.DOMParser ) { // Standard
- tmp = new DOMParser();
- xml = tmp.parseFromString( data , "text/xml" );
- } else { // IE
- xml = new ActiveXObject( "Microsoft.XMLDOM" );
- xml.async = "false";
- xml.loadXML( data );
- }
- } catch( e ) {
- xml = undefined;
- }
- if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
- jQuery.error( "Invalid XML: " + data );
- }
- return xml;
- },
-
- noop: function() {},
-
- // Evaluates a script in a global context
- // Workarounds based on findings by Jim Driscoll
- // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
- globalEval: function( data ) {
- if ( data && rnotwhite.test( data ) ) {
- // We use execScript on Internet Explorer
- // We use an anonymous function so that context is window
- // rather than jQuery in Firefox
- ( window.execScript || function( data ) {
- window[ "eval" ].call( window, data );
- } )( data );
- }
- },
-
- // Convert dashed to camelCase; used by the css and data modules
- // Microsoft forgot to hump their vendor prefix (#9572)
- camelCase: function( string ) {
- return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
- },
-
- nodeName: function( elem, name ) {
- return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
- },
-
- // args is for internal usage only
- each: function( object, callback, args ) {
- var name, i = 0,
- length = object.length,
- isObj = length === undefined || jQuery.isFunction( object );
-
- if ( args ) {
- if ( isObj ) {
- for ( name in object ) {
- if ( callback.apply( object[ name ], args ) === false ) {
- break;
- }
- }
- } else {
- for ( ; i < length; ) {
- if ( callback.apply( object[ i++ ], args ) === false ) {
- break;
- }
- }
- }
-
- // A special, fast, case for the most common use of each
- } else {
- if ( isObj ) {
- for ( name in object ) {
- if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
- break;
- }
- }
- } else {
- for ( ; i < length; ) {
- if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
- break;
- }
- }
- }
- }
-
- return object;
- },
-
- // Use native String.trim function wherever possible
- trim: trim ?
- function( text ) {
- return text == null ?
- "" :
- trim.call( text );
- } :
-
- // Otherwise use our own trimming functionality
- function( text ) {
- return text == null ?
- "" :
- text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
- },
-
- // results is for internal usage only
- makeArray: function( array, results ) {
- var ret = results || [];
-
- if ( array != null ) {
- // The window, strings (and functions) also have 'length'
- // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
- var type = jQuery.type( array );
-
- if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
- push.call( ret, array );
- } else {
- jQuery.merge( ret, array );
- }
- }
-
- return ret;
- },
-
- inArray: function( elem, array, i ) {
- var len;
-
- if ( array ) {
- if ( indexOf ) {
- return indexOf.call( array, elem, i );
- }
-
- len = array.length;
- i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
-
- for ( ; i < len; i++ ) {
- // Skip accessing in sparse arrays
- if ( i in array && array[ i ] === elem ) {
- return i;
- }
- }
- }
-
- return -1;
- },
-
- merge: function( first, second ) {
- var i = first.length,
- j = 0;
-
- if ( typeof second.length === "number" ) {
- for ( var l = second.length; j < l; j++ ) {
- first[ i++ ] = second[ j ];
- }
-
- } else {
- while ( second[j] !== undefined ) {
- first[ i++ ] = second[ j++ ];
- }
- }
-
- first.length = i;
-
- return first;
- },
-
- grep: function( elems, callback, inv ) {
- var ret = [], retVal;
- inv = !!inv;
-
- // Go through the array, only saving the items
- // that pass the validator function
- for ( var i = 0, length = elems.length; i < length; i++ ) {
- retVal = !!callback( elems[ i ], i );
- if ( inv !== retVal ) {
- ret.push( elems[ i ] );
- }
- }
-
- return ret;
- },
-
- // arg is for internal usage only
- map: function( elems, callback, arg ) {
- var value, key, ret = [],
- i = 0,
- length = elems.length,
- // jquery objects are treated as arrays
- isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
-
- // Go through the array, translating each of the items to their
- if ( isArray ) {
- for ( ; i < length; i++ ) {
- value = callback( elems[ i ], i, arg );
-
- if ( value != null ) {
- ret[ ret.length ] = value;
- }
- }
-
- // Go through every key on the object,
- } else {
- for ( key in elems ) {
- value = callback( elems[ key ], key, arg );
-
- if ( value != null ) {
- ret[ ret.length ] = value;
- }
- }
- }
-
- // Flatten any nested arrays
- return ret.concat.apply( [], ret );
- },
-
- // A global GUID counter for objects
- guid: 1,
-
- // Bind a function to a context, optionally partially applying any
- // arguments.
- proxy: function( fn, context ) {
- if ( typeof context === "string" ) {
- var tmp = fn[ context ];
- context = fn;
- fn = tmp;
- }
-
- // Quick check to determine if target is callable, in the spec
- // this throws a TypeError, but we will just return undefined.
- if ( !jQuery.isFunction( fn ) ) {
- return undefined;
- }
-
- // Simulated bind
- var args = slice.call( arguments, 2 ),
- proxy = function() {
- return fn.apply( context, args.concat( slice.call( arguments ) ) );
- };
-
- // Set the guid of unique handler to the same of original handler, so it can be removed
- proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
-
- return proxy;
- },
-
- // Mutifunctional method to get and set values to a collection
- // The value/s can optionally be executed if it's a function
- access: function( elems, fn, key, value, chainable, emptyGet, pass ) {
- var exec,
- bulk = key == null,
- i = 0,
- length = elems.length;
-
- // Sets many values
- if ( key && typeof key === "object" ) {
- for ( i in key ) {
- jQuery.access( elems, fn, i, key[i], 1, emptyGet, value );
- }
- chainable = 1;
-
- // Sets one value
- } else if ( value !== undefined ) {
- // Optionally, function values get executed if exec is true
- exec = pass === undefined && jQuery.isFunction( value );
-
- if ( bulk ) {
- // Bulk operations only iterate when executing function values
- if ( exec ) {
- exec = fn;
- fn = function( elem, key, value ) {
- return exec.call( jQuery( elem ), value );
- };
-
- // Otherwise they run against the entire set
- } else {
- fn.call( elems, value );
- fn = null;
- }
- }
-
- if ( fn ) {
- for (; i < length; i++ ) {
- fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
- }
- }
-
- chainable = 1;
- }
-
- return chainable ?
- elems :
-
- // Gets
- bulk ?
- fn.call( elems ) :
- length ? fn( elems[0], key ) : emptyGet;
- },
-
- now: function() {
- return ( new Date() ).getTime();
- },
-
- // Use of jQuery.browser is frowned upon.
- // More details: http://docs.jquery.com/Utilities/jQuery.browser
- uaMatch: function( ua ) {
- ua = ua.toLowerCase();
-
- var match = rwebkit.exec( ua ) ||
- ropera.exec( ua ) ||
- rmsie.exec( ua ) ||
- ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
- [];
-
- return { browser: match[1] || "", version: match[2] || "0" };
- },
-
- sub: function() {
- function jQuerySub( selector, context ) {
- return new jQuerySub.fn.init( selector, context );
- }
- jQuery.extend( true, jQuerySub, this );
- jQuerySub.superclass = this;
- jQuerySub.fn = jQuerySub.prototype = this();
- jQuerySub.fn.constructor = jQuerySub;
- jQuerySub.sub = this.sub;
- jQuerySub.fn.init = function init( selector, context ) {
- if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
- context = jQuerySub( context );
- }
-
- return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
- };
- jQuerySub.fn.init.prototype = jQuerySub.fn;
- var rootjQuerySub = jQuerySub(document);
- return jQuerySub;
- },
-
- browser: {}
-});
-
-// Populate the class2type map
-jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
- class2type[ "[object " + name + "]" ] = name.toLowerCase();
-});
-
-browserMatch = jQuery.uaMatch( userAgent );
-if ( browserMatch.browser ) {
- jQuery.browser[ browserMatch.browser ] = true;
- jQuery.browser.version = browserMatch.version;
-}
-
-// Deprecated, use jQuery.browser.webkit instead
-if ( jQuery.browser.webkit ) {
- jQuery.browser.safari = true;
-}
-
-// IE doesn't match non-breaking spaces with \s
-if ( rnotwhite.test( "\xA0" ) ) {
- trimLeft = /^[\s\xA0]+/;
- trimRight = /[\s\xA0]+$/;
-}
-
-// All jQuery objects should point back to these
-rootjQuery = jQuery(document);
-
-// Cleanup functions for the document ready method
-if ( document.addEventListener ) {
- DOMContentLoaded = function() {
- document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
- jQuery.ready();
- };
-
-} else if ( document.attachEvent ) {
- DOMContentLoaded = function() {
- // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
- if ( document.readyState === "complete" ) {
- document.detachEvent( "onreadystatechange", DOMContentLoaded );
- jQuery.ready();
- }
- };
-}
-
-// The DOM ready check for Internet Explorer
-function doScrollCheck() {
- if ( jQuery.isReady ) {
- return;
- }
-
- try {
- // If IE is used, use the trick by Diego Perini
- // http://javascript.nwbox.com/IEContentLoaded/
- document.documentElement.doScroll("left");
- } catch(e) {
- setTimeout( doScrollCheck, 1 );
- return;
- }
-
- // and execute any waiting functions
- jQuery.ready();
-}
-
-return jQuery;
-
-})();
-
-
-// String to Object flags format cache
-var flagsCache = {};
-
-// Convert String-formatted flags into Object-formatted ones and store in cache
-function createFlags( flags ) {
- var object = flagsCache[ flags ] = {},
- i, length;
- flags = flags.split( /\s+/ );
- for ( i = 0, length = flags.length; i < length; i++ ) {
- object[ flags[i] ] = true;
- }
- return object;
-}
-
-/*
- * Create a callback list using the following parameters:
- *
- * flags: an optional list of space-separated flags that will change how
- * the callback list behaves
- *
- * By default a callback list will act like an event callback list and can be
- * "fired" multiple times.
- *
- * Possible flags:
- *
- * once: will ensure the callback list can only be fired once (like a Deferred)
- *
- * memory: will keep track of previous values and will call any callback added
- * after the list has been fired right away with the latest "memorized"
- * values (like a Deferred)
- *
- * unique: will ensure a callback can only be added once (no duplicate in the list)
- *
- * stopOnFalse: interrupt callings when a callback returns false
- *
- */
-jQuery.Callbacks = function( flags ) {
-
- // Convert flags from String-formatted to Object-formatted
- // (we check in cache first)
- flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {};
-
- var // Actual callback list
- list = [],
- // Stack of fire calls for repeatable lists
- stack = [],
- // Last fire value (for non-forgettable lists)
- memory,
- // Flag to know if list was already fired
- fired,
- // Flag to know if list is currently firing
- firing,
- // First callback to fire (used internally by add and fireWith)
- firingStart,
- // End of the loop when firing
- firingLength,
- // Index of currently firing callback (modified by remove if needed)
- firingIndex,
- // Add one or several callbacks to the list
- add = function( args ) {
- var i,
- length,
- elem,
- type,
- actual;
- for ( i = 0, length = args.length; i < length; i++ ) {
- elem = args[ i ];
- type = jQuery.type( elem );
- if ( type === "array" ) {
- // Inspect recursively
- add( elem );
- } else if ( type === "function" ) {
- // Add if not in unique mode and callback is not in
- if ( !flags.unique || !self.has( elem ) ) {
- list.push( elem );
- }
- }
- }
- },
- // Fire callbacks
- fire = function( context, args ) {
- args = args || [];
- memory = !flags.memory || [ context, args ];
- fired = true;
- firing = true;
- firingIndex = firingStart || 0;
- firingStart = 0;
- firingLength = list.length;
- for ( ; list && firingIndex < firingLength; firingIndex++ ) {
- if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {
- memory = true; // Mark as halted
- break;
- }
- }
- firing = false;
- if ( list ) {
- if ( !flags.once ) {
- if ( stack && stack.length ) {
- memory = stack.shift();
- self.fireWith( memory[ 0 ], memory[ 1 ] );
- }
- } else if ( memory === true ) {
- self.disable();
- } else {
- list = [];
- }
- }
- },
- // Actual Callbacks object
- self = {
- // Add a callback or a collection of callbacks to the list
- add: function() {
- if ( list ) {
- var length = list.length;
- add( arguments );
- // Do we need to add the callbacks to the
- // current firing batch?
- if ( firing ) {
- firingLength = list.length;
- // With memory, if we're not firing then
- // we should call right away, unless previous
- // firing was halted (stopOnFalse)
- } else if ( memory && memory !== true ) {
- firingStart = length;
- fire( memory[ 0 ], memory[ 1 ] );
- }
- }
- return this;
- },
- // Remove a callback from the list
- remove: function() {
- if ( list ) {
- var args = arguments,
- argIndex = 0,
- argLength = args.length;
- for ( ; argIndex < argLength ; argIndex++ ) {
- for ( var i = 0; i < list.length; i++ ) {
- if ( args[ argIndex ] === list[ i ] ) {
- // Handle firingIndex and firingLength
- if ( firing ) {
- if ( i <= firingLength ) {
- firingLength--;
- if ( i <= firingIndex ) {
- firingIndex--;
- }
- }
- }
- // Remove the element
- list.splice( i--, 1 );
- // If we have some unicity property then
- // we only need to do this once
- if ( flags.unique ) {
- break;
- }
- }
- }
- }
- }
- return this;
- },
- // Control if a given callback is in the list
- has: function( fn ) {
- if ( list ) {
- var i = 0,
- length = list.length;
- for ( ; i < length; i++ ) {
- if ( fn === list[ i ] ) {
- return true;
- }
- }
- }
- return false;
- },
- // Remove all callbacks from the list
- empty: function() {
- list = [];
- return this;
- },
- // Have the list do nothing anymore
- disable: function() {
- list = stack = memory = undefined;
- return this;
- },
- // Is it disabled?
- disabled: function() {
- return !list;
- },
- // Lock the list in its current state
- lock: function() {
- stack = undefined;
- if ( !memory || memory === true ) {
- self.disable();
- }
- return this;
- },
- // Is it locked?
- locked: function() {
- return !stack;
- },
- // Call all callbacks with the given context and arguments
- fireWith: function( context, args ) {
- if ( stack ) {
- if ( firing ) {
- if ( !flags.once ) {
- stack.push( [ context, args ] );
- }
- } else if ( !( flags.once && memory ) ) {
- fire( context, args );
- }
- }
- return this;
- },
- // Call all the callbacks with the given arguments
- fire: function() {
- self.fireWith( this, arguments );
- return this;
- },
- // To know if the callbacks have already been called at least once
- fired: function() {
- return !!fired;
- }
- };
-
- return self;
-};
-
-
-
-
-var // Static reference to slice
- sliceDeferred = [].slice;
-
-jQuery.extend({
-
- Deferred: function( func ) {
- var doneList = jQuery.Callbacks( "once memory" ),
- failList = jQuery.Callbacks( "once memory" ),
- progressList = jQuery.Callbacks( "memory" ),
- state = "pending",
- lists = {
- resolve: doneList,
- reject: failList,
- notify: progressList
- },
- promise = {
- done: doneList.add,
- fail: failList.add,
- progress: progressList.add,
-
- state: function() {
- return state;
- },
-
- // Deprecated
- isResolved: doneList.fired,
- isRejected: failList.fired,
-
- then: function( doneCallbacks, failCallbacks, progressCallbacks ) {
- deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks );
- return this;
- },
- always: function() {
- deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
- return this;
- },
- pipe: function( fnDone, fnFail, fnProgress ) {
- return jQuery.Deferred(function( newDefer ) {
- jQuery.each( {
- done: [ fnDone, "resolve" ],
- fail: [ fnFail, "reject" ],
- progress: [ fnProgress, "notify" ]
- }, function( handler, data ) {
- var fn = data[ 0 ],
- action = data[ 1 ],
- returned;
- if ( jQuery.isFunction( fn ) ) {
- deferred[ handler ](function() {
- returned = fn.apply( this, arguments );
- if ( returned && jQuery.isFunction( returned.promise ) ) {
- returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify );
- } else {
- newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
- }
- });
- } else {
- deferred[ handler ]( newDefer[ action ] );
- }
- });
- }).promise();
- },
- // Get a promise for this deferred
- // If obj is provided, the promise aspect is added to the object
- promise: function( obj ) {
- if ( obj == null ) {
- obj = promise;
- } else {
- for ( var key in promise ) {
- obj[ key ] = promise[ key ];
- }
- }
- return obj;
- }
- },
- deferred = promise.promise({}),
- key;
-
- for ( key in lists ) {
- deferred[ key ] = lists[ key ].fire;
- deferred[ key + "With" ] = lists[ key ].fireWith;
- }
-
- // Handle state
- deferred.done( function() {
- state = "resolved";
- }, failList.disable, progressList.lock ).fail( function() {
- state = "rejected";
- }, doneList.disable, progressList.lock );
-
- // Call given func if any
- if ( func ) {
- func.call( deferred, deferred );
- }
-
- // All done!
- return deferred;
- },
-
- // Deferred helper
- when: function( firstParam ) {
- var args = sliceDeferred.call( arguments, 0 ),
- i = 0,
- length = args.length,
- pValues = new Array( length ),
- count = length,
- pCount = length,
- deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
- firstParam :
- jQuery.Deferred(),
- promise = deferred.promise();
- function resolveFunc( i ) {
- return function( value ) {
- args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
- if ( !( --count ) ) {
- deferred.resolveWith( deferred, args );
- }
- };
- }
- function progressFunc( i ) {
- return function( value ) {
- pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
- deferred.notifyWith( promise, pValues );
- };
- }
- if ( length > 1 ) {
- for ( ; i < length; i++ ) {
- if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) {
- args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) );
- } else {
- --count;
- }
- }
- if ( !count ) {
- deferred.resolveWith( deferred, args );
- }
- } else if ( deferred !== firstParam ) {
- deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
- }
- return promise;
- }
-});
-
-
-
-
-jQuery.support = (function() {
-
- var support,
- all,
- a,
- select,
- opt,
- input,
- fragment,
- tds,
- events,
- eventName,
- i,
- isSupported,
- div = document.createElement( "div" ),
- documentElement = document.documentElement;
-
- // Preliminary tests
- div.setAttribute("className", "t");
- div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
-
- all = div.getElementsByTagName( "*" );
- a = div.getElementsByTagName( "a" )[ 0 ];
-
- // Can't get basic test support
- if ( !all || !all.length || !a ) {
- return {};
- }
-
- // First batch of supports tests
- select = document.createElement( "select" );
- opt = select.appendChild( document.createElement("option") );
- input = div.getElementsByTagName( "input" )[ 0 ];
-
- support = {
- // IE strips leading whitespace when .innerHTML is used
- leadingWhitespace: ( div.firstChild.nodeType === 3 ),
-
- // Make sure that tbody elements aren't automatically inserted
- // IE will insert them into empty tables
- tbody: !div.getElementsByTagName("tbody").length,
-
- // Make sure that link elements get serialized correctly by innerHTML
- // This requires a wrapper element in IE
- htmlSerialize: !!div.getElementsByTagName("link").length,
-
- // Get the style information from getAttribute
- // (IE uses .cssText instead)
- style: /top/.test( a.getAttribute("style") ),
-
- // Make sure that URLs aren't manipulated
- // (IE normalizes it by default)
- hrefNormalized: ( a.getAttribute("href") === "/a" ),
-
- // Make sure that element opacity exists
- // (IE uses filter instead)
- // Use a regex to work around a WebKit issue. See #5145
- opacity: /^0.55/.test( a.style.opacity ),
-
- // Verify style float existence
- // (IE uses styleFloat instead of cssFloat)
- cssFloat: !!a.style.cssFloat,
-
- // Make sure that if no value is specified for a checkbox
- // that it defaults to "on".
- // (WebKit defaults to "" instead)
- checkOn: ( input.value === "on" ),
-
- // Make sure that a selected-by-default option has a working selected property.
- // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
- optSelected: opt.selected,
-
- // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
- getSetAttribute: div.className !== "t",
-
- // Tests for enctype support on a form(#6743)
- enctype: !!document.createElement("form").enctype,
-
- // Makes sure cloning an html5 element does not cause problems
- // Where outerHTML is undefined, this still works
- html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>",
-
- // Will be defined later
- submitBubbles: true,
- changeBubbles: true,
- focusinBubbles: false,
- deleteExpando: true,
- noCloneEvent: true,
- inlineBlockNeedsLayout: false,
- shrinkWrapBlocks: false,
- reliableMarginRight: true,
- pixelMargin: true
- };
-
- // jQuery.boxModel DEPRECATED in 1.3, use jQuery.support.boxModel instead
- jQuery.boxModel = support.boxModel = (document.compatMode === "CSS1Compat");
-
- // Make sure checked status is properly cloned
- input.checked = true;
- support.noCloneChecked = input.cloneNode( true ).checked;
-
- // Make sure that the options inside disabled selects aren't marked as disabled
- // (WebKit marks them as disabled)
- select.disabled = true;
- support.optDisabled = !opt.disabled;
-
- // Test to see if it's possible to delete an expando from an element
- // Fails in Internet Explorer
- try {
- delete div.test;
- } catch( e ) {
- support.deleteExpando = false;
- }
-
- if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
- div.attachEvent( "onclick", function() {
- // Cloning a node shouldn't copy over any
- // bound event handlers (IE does this)
- support.noCloneEvent = false;
- });
- div.cloneNode( true ).fireEvent( "onclick" );
- }
-
- // Check if a radio maintains its value
- // after being appended to the DOM
- input = document.createElement("input");
- input.value = "t";
- input.setAttribute("type", "radio");
- support.radioValue = input.value === "t";
-
- input.setAttribute("checked", "checked");
-
- // #11217 - WebKit loses check when the name is after the checked attribute
- input.setAttribute( "name", "t" );
-
- div.appendChild( input );
- fragment = document.createDocumentFragment();
- fragment.appendChild( div.lastChild );
-
- // WebKit doesn't clone checked state correctly in fragments
- support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
- // Check if a disconnected checkbox will retain its checked
- // value of true after appended to the DOM (IE6/7)
- support.appendChecked = input.checked;
-
- fragment.removeChild( input );
- fragment.appendChild( div );
-
- // Technique from Juriy Zaytsev
- // http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
- // We only care about the case where non-standard event systems
- // are used, namely in IE. Short-circuiting here helps us to
- // avoid an eval call (in setAttribute) which can cause CSP
- // to go haywire. See: https://developer.mozilla.org/en/Security/CSP
- if ( div.attachEvent ) {
- for ( i in {
- submit: 1,
- change: 1,
- focusin: 1
- }) {
- eventName = "on" + i;
- isSupported = ( eventName in div );
- if ( !isSupported ) {
- div.setAttribute( eventName, "return;" );
- isSupported = ( typeof div[ eventName ] === "function" );
- }
- support[ i + "Bubbles" ] = isSupported;
- }
- }
-
- fragment.removeChild( div );
-
- // Null elements to avoid leaks in IE
- fragment = select = opt = div = input = null;
-
- // Run tests that need a body at doc ready
- jQuery(function() {
- var container, outer, inner, table, td, offsetSupport,
- marginDiv, conMarginTop, style, html, positionTopLeftWidthHeight,
- paddingMarginBorderVisibility, paddingMarginBorder,
- body = document.getElementsByTagName("body")[0];
-
- if ( !body ) {
- // Return for frameset docs that don't have a body
- return;
- }
-
- conMarginTop = 1;
- paddingMarginBorder = "padding:0;margin:0;border:";
- positionTopLeftWidthHeight = "position:absolute;top:0;left:0;width:1px;height:1px;";
- paddingMarginBorderVisibility = paddingMarginBorder + "0;visibility:hidden;";
- style = "style='" + positionTopLeftWidthHeight + paddingMarginBorder + "5px solid #000;";
- html = "<div " + style + "display:block;'><div style='" + paddingMarginBorder + "0;display:block;overflow:hidden;'></div></div>" +
- "<table " + style + "' cellpadding='0' cellspacing='0'>" +
- "<tr><td></td></tr></table>";
-
- container = document.createElement("div");
- container.style.cssText = paddingMarginBorderVisibility + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px";
- body.insertBefore( container, body.firstChild );
-
- // Construct the test element
- div = document.createElement("div");
- container.appendChild( div );
-
- // Check if table cells still have offsetWidth/Height when they are set
- // to display:none and there are still other visible table cells in a
- // table row; if so, offsetWidth/Height are not reliable for use when
- // determining if an element has been hidden directly using
- // display:none (it is still safe to use offsets if a parent element is
- // hidden; don safety goggles and see bug #4512 for more information).
- // (only IE 8 fails this test)
- div.innerHTML = "<table><tr><td style='" + paddingMarginBorder + "0;display:none'></td><td>t</td></tr></table>";
- tds = div.getElementsByTagName( "td" );
- isSupported = ( tds[ 0 ].offsetHeight === 0 );
-
- tds[ 0 ].style.display = "";
- tds[ 1 ].style.display = "none";
-
- // Check if empty table cells still have offsetWidth/Height
- // (IE <= 8 fail this test)
- support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
-
- // Check if div with explicit width and no margin-right incorrectly
- // gets computed margin-right based on width of container. For more
- // info see bug #3333
- // Fails in WebKit before Feb 2011 nightlies
- // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
- if ( window.getComputedStyle ) {
- div.innerHTML = "";
- marginDiv = document.createElement( "div" );
- marginDiv.style.width = "0";
- marginDiv.style.marginRight = "0";
- div.style.width = "2px";
- div.appendChild( marginDiv );
- support.reliableMarginRight =
- ( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
- }
-
- if ( typeof div.style.zoom !== "undefined" ) {
- // Check if natively block-level elements act like inline-block
- // elements when setting their display to 'inline' and giving
- // them layout
- // (IE < 8 does this)
- div.innerHTML = "";
- div.style.width = div.style.padding = "1px";
- div.style.border = 0;
- div.style.overflow = "hidden";
- div.style.display = "inline";
- div.style.zoom = 1;
- support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
-
- // Check if elements with layout shrink-wrap their children
- // (IE 6 does this)
- div.style.display = "block";
- div.style.overflow = "visible";
- div.innerHTML = "<div style='width:5px;'></div>";
- support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
- }
-
- div.style.cssText = positionTopLeftWidthHeight + paddingMarginBorderVisibility;
- div.innerHTML = html;
-
- outer = div.firstChild;
- inner = outer.firstChild;
- td = outer.nextSibling.firstChild.firstChild;
-
- offsetSupport = {
- doesNotAddBorder: ( inner.offsetTop !== 5 ),
- doesAddBorderForTableAndCells: ( td.offsetTop === 5 )
- };
-
- inner.style.position = "fixed";
- inner.style.top = "20px";
-
- // safari subtracts parent border width here which is 5px
- offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 );
- inner.style.position = inner.style.top = "";
-
- outer.style.overflow = "hidden";
- outer.style.position = "relative";
-
- offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 );
- offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop );
-
- if ( window.getComputedStyle ) {
- div.style.marginTop = "1%";
- support.pixelMargin = ( window.getComputedStyle( div, null ) || { marginTop: 0 } ).marginTop !== "1%";
- }
-
- if ( typeof container.style.zoom !== "undefined" ) {
- container.style.zoom = 1;
- }
-
- body.removeChild( container );
- marginDiv = div = container = null;
-
- jQuery.extend( support, offsetSupport );
- });
-
- return support;
-})();
-
-
-
-
-var rbrace = /^(?:\{.*\}|\[.*\])$/,
- rmultiDash = /([A-Z])/g;
-
-jQuery.extend({
- cache: {},
-
- // Please use with caution
- uuid: 0,
-
- // Unique for each copy of jQuery on the page
- // Non-digits removed to match rinlinejQuery
- expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
-
- // The following elements throw uncatchable exceptions if you
- // attempt to add expando properties to them.
- noData: {
- "embed": true,
- // Ban all objects except for Flash (which handle expandos)
- "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
- "applet": true
- },
-
- hasData: function( elem ) {
- elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
- return !!elem && !isEmptyDataObject( elem );
- },
-
- data: function( elem, name, data, pvt /* Internal Use Only */ ) {
- if ( !jQuery.acceptData( elem ) ) {
- return;
- }
-
- var privateCache, thisCache, ret,
- internalKey = jQuery.expando,
- getByName = typeof name === "string",
-
- // We have to handle DOM nodes and JS objects differently because IE6-7
- // can't GC object references properly across the DOM-JS boundary
- isNode = elem.nodeType,
-
- // Only DOM nodes need the global jQuery cache; JS object data is
- // attached directly to the object so GC can occur automatically
- cache = isNode ? jQuery.cache : elem,
-
- // Only defining an ID for JS objects if its cache already exists allows
- // the code to shortcut on the same path as a DOM node with no cache
- id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey,
- isEvents = name === "events";
-
- // Avoid doing any more work than we need to when trying to get data on an
- // object that has no data at all
- if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) {
- return;
- }
-
- if ( !id ) {
- // Only DOM nodes need a new unique ID for each element since their data
- // ends up in the global cache
- if ( isNode ) {
- elem[ internalKey ] = id = ++jQuery.uuid;
- } else {
- id = internalKey;
- }
- }
-
- if ( !cache[ id ] ) {
- cache[ id ] = {};
-
- // Avoids exposing jQuery metadata on plain JS objects when the object
- // is serialized using JSON.stringify
- if ( !isNode ) {
- cache[ id ].toJSON = jQuery.noop;
- }
- }
-
- // An object can be passed to jQuery.data instead of a key/value pair; this gets
- // shallow copied over onto the existing cache
- if ( typeof name === "object" || typeof name === "function" ) {
- if ( pvt ) {
- cache[ id ] = jQuery.extend( cache[ id ], name );
- } else {
- cache[ id ].data = jQuery.extend( cache[ id ].data, name );
- }
- }
-
- privateCache = thisCache = cache[ id ];
-
- // jQuery data() is stored in a separate object inside the object's internal data
- // cache in order to avoid key collisions between internal data and user-defined
- // data.
- if ( !pvt ) {
- if ( !thisCache.data ) {
- thisCache.data = {};
- }
-
- thisCache = thisCache.data;
- }
-
- if ( data !== undefined ) {
- thisCache[ jQuery.camelCase( name ) ] = data;
- }
-
- // Users should not attempt to inspect the internal events object using jQuery.data,
- // it is undocumented and subject to change. But does anyone listen? No.
- if ( isEvents && !thisCache[ name ] ) {
- return privateCache.events;
- }
-
- // Check for both converted-to-camel and non-converted data property names
- // If a data property was specified
- if ( getByName ) {
-
- // First Try to find as-is property data
- ret = thisCache[ name ];
-
- // Test for null|undefined property data
- if ( ret == null ) {
-
- // Try to find the camelCased property
- ret = thisCache[ jQuery.camelCase( name ) ];
- }
- } else {
- ret = thisCache;
- }
-
- return ret;
- },
-
- removeData: function( elem, name, pvt /* Internal Use Only */ ) {
- if ( !jQuery.acceptData( elem ) ) {
- return;
- }
-
- var thisCache, i, l,
-
- // Reference to internal data cache key
- internalKey = jQuery.expando,
-
- isNode = elem.nodeType,
-
- // See jQuery.data for more information
- cache = isNode ? jQuery.cache : elem,
-
- // See jQuery.data for more information
- id = isNode ? elem[ internalKey ] : internalKey;
-
- // If there is already no cache entry for this object, there is no
- // purpose in continuing
- if ( !cache[ id ] ) {
- return;
- }
-
- if ( name ) {
-
- thisCache = pvt ? cache[ id ] : cache[ id ].data;
-
- if ( thisCache ) {
-
- // Support array or space separated string names for data keys
- if ( !jQuery.isArray( name ) ) {
-
- // try the string as a key before any manipulation
- if ( name in thisCache ) {
- name = [ name ];
- } else {
-
- // split the camel cased version by spaces unless a key with the spaces exists
- name = jQuery.camelCase( name );
- if ( name in thisCache ) {
- name = [ name ];
- } else {
- name = name.split( " " );
- }
- }
- }
-
- for ( i = 0, l = name.length; i < l; i++ ) {
- delete thisCache[ name[i] ];
- }
-
- // If there is no data left in the cache, we want to continue
- // and let the cache object itself get destroyed
- if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {
- return;
- }
- }
- }
-
- // See jQuery.data for more information
- if ( !pvt ) {
- delete cache[ id ].data;
-
- // Don't destroy the parent cache unless the internal data object
- // had been the only thing left in it
- if ( !isEmptyDataObject(cache[ id ]) ) {
- return;
- }
- }
-
- // Browsers that fail expando deletion also refuse to delete expandos on
- // the window, but it will allow it on all other JS objects; other browsers
- // don't care
- // Ensure that `cache` is not a window object #10080
- if ( jQuery.support.deleteExpando || !cache.setInterval ) {
- delete cache[ id ];
- } else {
- cache[ id ] = null;
- }
-
- // We destroyed the cache and need to eliminate the expando on the node to avoid
- // false lookups in the cache for entries that no longer exist
- if ( isNode ) {
- // IE does not allow us to delete expando properties from nodes,
- // nor does it have a removeAttribute function on Document nodes;
- // we must handle all of these cases
- if ( jQuery.support.deleteExpando ) {
- delete elem[ internalKey ];
- } else if ( elem.removeAttribute ) {
- elem.removeAttribute( internalKey );
- } else {
- elem[ internalKey ] = null;
- }
- }
- },
-
- // For internal use only.
- _data: function( elem, name, data ) {
- return jQuery.data( elem, name, data, true );
- },
-
- // A method for determining if a DOM node can handle the data expando
- acceptData: function( elem ) {
- if ( elem.nodeName ) {
- var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
-
- if ( match ) {
- return !(match === true || elem.getAttribute("classid") !== match);
- }
- }
-
- return true;
- }
-});
-
-jQuery.fn.extend({
- data: function( key, value ) {
- var parts, part, attr, name, l,
- elem = this[0],
- i = 0,
- data = null;
-
- // Gets all values
- if ( key === undefined ) {
- if ( this.length ) {
- data = jQuery.data( elem );
-
- if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
- attr = elem.attributes;
- for ( l = attr.length; i < l; i++ ) {
- name = attr[i].name;
-
- if ( name.indexOf( "data-" ) === 0 ) {
- name = jQuery.camelCase( name.substring(5) );
-
- dataAttr( elem, name, data[ name ] );
- }
- }
- jQuery._data( elem, "parsedAttrs", true );
- }
- }
-
- return data;
- }
-
- // Sets multiple values
- if ( typeof key === "object" ) {
- return this.each(function() {
- jQuery.data( this, key );
- });
- }
-
- parts = key.split( ".", 2 );
- parts[1] = parts[1] ? "." + parts[1] : "";
- part = parts[1] + "!";
-
- return jQuery.access( this, function( value ) {
-
- if ( value === undefined ) {
- data = this.triggerHandler( "getData" + part, [ parts[0] ] );
-
- // Try to fetch any internally stored data first
- if ( data === undefined && elem ) {
- data = jQuery.data( elem, key );
- data = dataAttr( elem, key, data );
- }
-
- return data === undefined && parts[1] ?
- this.data( parts[0] ) :
- data;
- }
-
- parts[1] = value;
- this.each(function() {
- var self = jQuery( this );
-
- self.triggerHandler( "setData" + part, parts );
- jQuery.data( this, key, value );
- self.triggerHandler( "changeData" + part, parts );
- });
- }, null, value, arguments.length > 1, null, false );
- },
-
- removeData: function( key ) {
- return this.each(function() {
- jQuery.removeData( this, key );
- });
- }
-});
-
-function dataAttr( elem, key, data ) {
- // If nothing was found internally, try to fetch any
- // data from the HTML5 data-* attribute
- if ( data === undefined && elem.nodeType === 1 ) {
-
- var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
-
- data = elem.getAttribute( name );
-
- if ( typeof data === "string" ) {
- try {
- data = data === "true" ? true :
- data === "false" ? false :
- data === "null" ? null :
- jQuery.isNumeric( data ) ? +data :
- rbrace.test( data ) ? jQuery.parseJSON( data ) :
- data;
- } catch( e ) {}
-
- // Make sure we set the data so it isn't changed later
- jQuery.data( elem, key, data );
-
- } else {
- data = undefined;
- }
- }
-
- return data;
-}
-
-// checks a cache object for emptiness
-function isEmptyDataObject( obj ) {
- for ( var name in obj ) {
-
- // if the public data object is empty, the private is still empty
- if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
- continue;
- }
- if ( name !== "toJSON" ) {
- return false;
- }
- }
-
- return true;
-}
-
-
-
-
-function handleQueueMarkDefer( elem, type, src ) {
- var deferDataKey = type + "defer",
- queueDataKey = type + "queue",
- markDataKey = type + "mark",
- defer = jQuery._data( elem, deferDataKey );
- if ( defer &&
- ( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&
- ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {
- // Give room for hard-coded callbacks to fire first
- // and eventually mark/queue something else on the element
- setTimeout( function() {
- if ( !jQuery._data( elem, queueDataKey ) &&
- !jQuery._data( elem, markDataKey ) ) {
- jQuery.removeData( elem, deferDataKey, true );
- defer.fire();
- }
- }, 0 );
- }
-}
-
-jQuery.extend({
-
- _mark: function( elem, type ) {
- if ( elem ) {
- type = ( type || "fx" ) + "mark";
- jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 );
- }
- },
-
- _unmark: function( force, elem, type ) {
- if ( force !== true ) {
- type = elem;
- elem = force;
- force = false;
- }
- if ( elem ) {
- type = type || "fx";
- var key = type + "mark",
- count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 );
- if ( count ) {
- jQuery._data( elem, key, count );
- } else {
- jQuery.removeData( elem, key, true );
- handleQueueMarkDefer( elem, type, "mark" );
- }
- }
- },
-
- queue: function( elem, type, data ) {
- var q;
- if ( elem ) {
- type = ( type || "fx" ) + "queue";
- q = jQuery._data( elem, type );
-
- // Speed up dequeue by getting out quickly if this is just a lookup
- if ( data ) {
- if ( !q || jQuery.isArray(data) ) {
- q = jQuery._data( elem, type, jQuery.makeArray(data) );
- } else {
- q.push( data );
- }
- }
- return q || [];
- }
- },
-
- dequeue: function( elem, type ) {
- type = type || "fx";
-
- var queue = jQuery.queue( elem, type ),
- fn = queue.shift(),
- hooks = {};
-
- // If the fx queue is dequeued, always remove the progress sentinel
- if ( fn === "inprogress" ) {
- fn = queue.shift();
- }
-
- if ( fn ) {
- // Add a progress sentinel to prevent the fx queue from being
- // automatically dequeued
- if ( type === "fx" ) {
- queue.unshift( "inprogress" );
- }
-
- jQuery._data( elem, type + ".run", hooks );
- fn.call( elem, function() {
- jQuery.dequeue( elem, type );
- }, hooks );
- }
-
- if ( !queue.length ) {
- jQuery.removeData( elem, type + "queue " + type + ".run", true );
- handleQueueMarkDefer( elem, type, "queue" );
- }
- }
-});
-
-jQuery.fn.extend({
- queue: function( type, data ) {
- var setter = 2;
-
- if ( typeof type !== "string" ) {
- data = type;
- type = "fx";
- setter--;
- }
-
- if ( arguments.length < setter ) {
- return jQuery.queue( this[0], type );
- }
-
- return data === undefined ?
- this :
- this.each(function() {
- var queue = jQuery.queue( this, type, data );
-
- if ( type === "fx" && queue[0] !== "inprogress" ) {
- jQuery.dequeue( this, type );
- }
- });
- },
- dequeue: function( type ) {
- return this.each(function() {
- jQuery.dequeue( this, type );
- });
- },
- // Based off of the plugin by Clint Helfers, with permission.
- // http://blindsignals.com/index.php/2009/07/jquery-delay/
- delay: function( time, type ) {
- time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
- type = type || "fx";
-
- return this.queue( type, function( next, hooks ) {
- var timeout = setTimeout( next, time );
- hooks.stop = function() {
- clearTimeout( timeout );
- };
- });
- },
- clearQueue: function( type ) {
- return this.queue( type || "fx", [] );
- },
- // Get a promise resolved when queues of a certain type
- // are emptied (fx is the type by default)
- promise: function( type, object ) {
- if ( typeof type !== "string" ) {
- object = type;
- type = undefined;
- }
- type = type || "fx";
- var defer = jQuery.Deferred(),
- elements = this,
- i = elements.length,
- count = 1,
- deferDataKey = type + "defer",
- queueDataKey = type + "queue",
- markDataKey = type + "mark",
- tmp;
- function resolve() {
- if ( !( --count ) ) {
- defer.resolveWith( elements, [ elements ] );
- }
- }
- while( i-- ) {
- if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
- ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
- jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
- jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {
- count++;
- tmp.add( resolve );
- }
- }
- resolve();
- return defer.promise( object );
- }
-});
-
-
-
-
-var rclass = /[\n\t\r]/g,
- rspace = /\s+/,
- rreturn = /\r/g,
- rtype = /^(?:button|input)$/i,
- rfocusable = /^(?:button|input|object|select|textarea)$/i,
- rclickable = /^a(?:rea)?$/i,
- rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
- getSetAttribute = jQuery.support.getSetAttribute,
- nodeHook, boolHook, fixSpecified;
-
-jQuery.fn.extend({
- attr: function( name, value ) {
- return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
- },
-
- removeAttr: function( name ) {
- return this.each(function() {
- jQuery.removeAttr( this, name );
- });
- },
-
- prop: function( name, value ) {
- return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );
- },
-
- removeProp: function( name ) {
- name = jQuery.propFix[ name ] || name;
- return this.each(function() {
- // try/catch handles cases where IE balks (such as removing a property on window)
- try {
- this[ name ] = undefined;
- delete this[ name ];
- } catch( e ) {}
- });
- },
-
- addClass: function( value ) {
- var classNames, i, l, elem,
- setClass, c, cl;
-
- if ( jQuery.isFunction( value ) ) {
- return this.each(function( j ) {
- jQuery( this ).addClass( value.call(this, j, this.className) );
- });
- }
-
- if ( value && typeof value === "string" ) {
- classNames = value.split( rspace );
-
- for ( i = 0, l = this.length; i < l; i++ ) {
- elem = this[ i ];
-
- if ( elem.nodeType === 1 ) {
- if ( !elem.className && classNames.length === 1 ) {
- elem.className = value;
-
- } else {
- setClass = " " + elem.className + " ";
-
- for ( c = 0, cl = classNames.length; c < cl; c++ ) {
- if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
- setClass += classNames[ c ] + " ";
- }
- }
- elem.className = jQuery.trim( setClass );
- }
- }
- }
- }
-
- return this;
- },
-
- removeClass: function( value ) {
- var classNames, i, l, elem, className, c, cl;
-
- if ( jQuery.isFunction( value ) ) {
- return this.each(function( j ) {
- jQuery( this ).removeClass( value.call(this, j, this.className) );
- });
- }
-
- if ( (value && typeof value === "string") || value === undefined ) {
- classNames = ( value || "" ).split( rspace );
-
- for ( i = 0, l = this.length; i < l; i++ ) {
- elem = this[ i ];
-
- if ( elem.nodeType === 1 && elem.className ) {
- if ( value ) {
- className = (" " + elem.className + " ").replace( rclass, " " );
- for ( c = 0, cl = classNames.length; c < cl; c++ ) {
- className = className.replace(" " + classNames[ c ] + " ", " ");
- }
- elem.className = jQuery.trim( className );
-
- } else {
- elem.className = "";
- }
- }
- }
- }
-
- return this;
- },
-
- toggleClass: function( value, stateVal ) {
- var type = typeof value,
- isBool = typeof stateVal === "boolean";
-
- if ( jQuery.isFunction( value ) ) {
- return this.each(function( i ) {
- jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
- });
- }
-
- return this.each(function() {
- if ( type === "string" ) {
- // toggle individual class names
- var className,
- i = 0,
- self = jQuery( this ),
- state = stateVal,
- classNames = value.split( rspace );
-
- while ( (className = classNames[ i++ ]) ) {
- // check each className given, space seperated list
- state = isBool ? state : !self.hasClass( className );
- self[ state ? "addClass" : "removeClass" ]( className );
- }
-
- } else if ( type === "undefined" || type === "boolean" ) {
- if ( this.className ) {
- // store className if set
- jQuery._data( this, "__className__", this.className );
- }
-
- // toggle whole className
- this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
- }
- });
- },
-
- hasClass: function( selector ) {
- var className = " " + selector + " ",
- i = 0,
- l = this.length;
- for ( ; i < l; i++ ) {
- if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
- return true;
- }
- }
-
- return false;
- },
-
- val: function( value ) {
- var hooks, ret, isFunction,
- elem = this[0];
-
- if ( !arguments.length ) {
- if ( elem ) {
- hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
-
- if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
- return ret;
- }
-
- ret = elem.value;
-
- return typeof ret === "string" ?
- // handle most common string cases
- ret.replace(rreturn, "") :
- // handle cases where value is null/undef or number
- ret == null ? "" : ret;
- }
-
- return;
- }
-
- isFunction = jQuery.isFunction( value );
-
- return this.each(function( i ) {
- var self = jQuery(this), val;
-
- if ( this.nodeType !== 1 ) {
- return;
- }
-
- if ( isFunction ) {
- val = value.call( this, i, self.val() );
- } else {
- val = value;
- }
-
- // Treat null/undefined as ""; convert numbers to string
- if ( val == null ) {
- val = "";
- } else if ( typeof val === "number" ) {
- val += "";
- } else if ( jQuery.isArray( val ) ) {
- val = jQuery.map(val, function ( value ) {
- return value == null ? "" : value + "";
- });
- }
-
- hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
-
- // If set returns undefined, fall back to normal setting
- if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
- this.value = val;
- }
- });
- }
-});
-
-jQuery.extend({
- valHooks: {
- option: {
- get: function( elem ) {
- // attributes.value is undefined in Blackberry 4.7 but
- // uses .value. See #6932
- var val = elem.attributes.value;
- return !val || val.specified ? elem.value : elem.text;
- }
- },
- select: {
- get: function( elem ) {
- var value, i, max, option,
- index = elem.selectedIndex,
- values = [],
- options = elem.options,
- one = elem.type === "select-one";
-
- // Nothing was selected
- if ( index < 0 ) {
- return null;
- }
-
- // Loop through all the selected options
- i = one ? index : 0;
- max = one ? index + 1 : options.length;
- for ( ; i < max; i++ ) {
- option = options[ i ];
-
- // Don't return options that are disabled or in a disabled optgroup
- if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
- (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
-
- // Get the specific value for the option
- value = jQuery( option ).val();
-
- // We don't need an array for one selects
- if ( one ) {
- return value;
- }
-
- // Multi-Selects return an array
- values.push( value );
- }
- }
-
- // Fixes Bug #2551 -- select.val() broken in IE after form.reset()
- if ( one && !values.length && options.length ) {
- return jQuery( options[ index ] ).val();
- }
-
- return values;
- },
-
- set: function( elem, value ) {
- var values = jQuery.makeArray( value );
-
- jQuery(elem).find("option").each(function() {
- this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
- });
-
- if ( !values.length ) {
- elem.selectedIndex = -1;
- }
- return values;
- }
- }
- },
-
- attrFn: {
- val: true,
- css: true,
- html: true,
- text: true,
- data: true,
- width: true,
- height: true,
- offset: true
- },
-
- attr: function( elem, name, value, pass ) {
- var ret, hooks, notxml,
- nType = elem.nodeType;
-
- // don't get/set attributes on text, comment and attribute nodes
- if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
- return;
- }
-
- if ( pass && name in jQuery.attrFn ) {
- return jQuery( elem )[ name ]( value );
- }
-
- // Fallback to prop when attributes are not supported
- if ( typeof elem.getAttribute === "undefined" ) {
- return jQuery.prop( elem, name, value );
- }
-
- notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
- // All attributes are lowercase
- // Grab necessary hook if one is defined
- if ( notxml ) {
- name = name.toLowerCase();
- hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );
- }
-
- if ( value !== undefined ) {
-
- if ( value === null ) {
- jQuery.removeAttr( elem, name );
- return;
-
- } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
- return ret;
-
- } else {
- elem.setAttribute( name, "" + value );
- return value;
- }
-
- } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
- return ret;
-
- } else {
-
- ret = elem.getAttribute( name );
-
- // Non-existent attributes return null, we normalize to undefined
- return ret === null ?
- undefined :
- ret;
- }
- },
-
- removeAttr: function( elem, value ) {
- var propName, attrNames, name, l, isBool,
- i = 0;
-
- if ( value && elem.nodeType === 1 ) {
- attrNames = value.toLowerCase().split( rspace );
- l = attrNames.length;
-
- for ( ; i < l; i++ ) {
- name = attrNames[ i ];
-
- if ( name ) {
- propName = jQuery.propFix[ name ] || name;
- isBool = rboolean.test( name );
-
- // See #9699 for explanation of this approach (setting first, then removal)
- // Do not do this for boolean attributes (see #10870)
- if ( !isBool ) {
- jQuery.attr( elem, name, "" );
- }
- elem.removeAttribute( getSetAttribute ? name : propName );
-
- // Set corresponding property to false for boolean attributes
- if ( isBool && propName in elem ) {
- elem[ propName ] = false;
- }
- }
- }
- }
- },
-
- attrHooks: {
- type: {
- set: function( elem, value ) {
- // We can't allow the type property to be changed (since it causes problems in IE)
- if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
- jQuery.error( "type property can't be changed" );
- } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
- // Setting the type on a radio button after the value resets the value in IE6-9
- // Reset value to it's default in case type is set after value
- // This is for element creation
- var val = elem.value;
- elem.setAttribute( "type", value );
- if ( val ) {
- elem.value = val;
- }
- return value;
- }
- }
- },
- // Use the value property for back compat
- // Use the nodeHook for button elements in IE6/7 (#1954)
- value: {
- get: function( elem, name ) {
- if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
- return nodeHook.get( elem, name );
- }
- return name in elem ?
- elem.value :
- null;
- },
- set: function( elem, value, name ) {
- if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
- return nodeHook.set( elem, value, name );
- }
- // Does not return so that setAttribute is also used
- elem.value = value;
- }
- }
- },
-
- propFix: {
- tabindex: "tabIndex",
- readonly: "readOnly",
- "for": "htmlFor",
- "class": "className",
- maxlength: "maxLength",
- cellspacing: "cellSpacing",
- cellpadding: "cellPadding",
- rowspan: "rowSpan",
- colspan: "colSpan",
- usemap: "useMap",
- frameborder: "frameBorder",
- contenteditable: "contentEditable"
- },
-
- prop: function( elem, name, value ) {
- var ret, hooks, notxml,
- nType = elem.nodeType;
-
- // don't get/set properties on text, comment and attribute nodes
- if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
- return;
- }
-
- notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
- if ( notxml ) {
- // Fix name and attach hooks
- name = jQuery.propFix[ name ] || name;
- hooks = jQuery.propHooks[ name ];
- }
-
- if ( value !== undefined ) {
- if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
- return ret;
-
- } else {
- return ( elem[ name ] = value );
- }
-
- } else {
- if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
- return ret;
-
- } else {
- return elem[ name ];
- }
- }
- },
-
- propHooks: {
- tabIndex: {
- get: function( elem ) {
- // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
- // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
- var attributeNode = elem.getAttributeNode("tabindex");
-
- return attributeNode && attributeNode.specified ?
- parseInt( attributeNode.value, 10 ) :
- rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
- 0 :
- undefined;
- }
- }
- }
-});
-
-// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional)
-jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex;
-
-// Hook for boolean attributes
-boolHook = {
- get: function( elem, name ) {
- // Align boolean attributes with corresponding properties
- // Fall back to attribute presence where some booleans are not supported
- var attrNode,
- property = jQuery.prop( elem, name );
- return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
- name.toLowerCase() :
- undefined;
- },
- set: function( elem, value, name ) {
- var propName;
- if ( value === false ) {
- // Remove boolean attributes when set to false
- jQuery.removeAttr( elem, name );
- } else {
- // value is true since we know at this point it's type boolean and not false
- // Set boolean attributes to the same name and set the DOM property
- propName = jQuery.propFix[ name ] || name;
- if ( propName in elem ) {
- // Only set the IDL specifically if it already exists on the element
- elem[ propName ] = true;
- }
-
- elem.setAttribute( name, name.toLowerCase() );
- }
- return name;
- }
-};
-
-// IE6/7 do not support getting/setting some attributes with get/setAttribute
-if ( !getSetAttribute ) {
-
- fixSpecified = {
- name: true,
- id: true,
- coords: true
- };
-
- // Use this for any attribute in IE6/7
- // This fixes almost every IE6/7 issue
- nodeHook = jQuery.valHooks.button = {
- get: function( elem, name ) {
- var ret;
- ret = elem.getAttributeNode( name );
- return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ?
- ret.nodeValue :
- undefined;
- },
- set: function( elem, value, name ) {
- // Set the existing or create a new attribute node
- var ret = elem.getAttributeNode( name );
- if ( !ret ) {
- ret = document.createAttribute( name );
- elem.setAttributeNode( ret );
- }
- return ( ret.nodeValue = value + "" );
- }
- };
-
- // Apply the nodeHook to tabindex
- jQuery.attrHooks.tabindex.set = nodeHook.set;
-
- // Set width and height to auto instead of 0 on empty string( Bug #8150 )
- // This is for removals
- jQuery.each([ "width", "height" ], function( i, name ) {
- jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
- set: function( elem, value ) {
- if ( value === "" ) {
- elem.setAttribute( name, "auto" );
- return value;
- }
- }
- });
- });
-
- // Set contenteditable to false on removals(#10429)
- // Setting to empty string throws an error as an invalid value
- jQuery.attrHooks.contenteditable = {
- get: nodeHook.get,
- set: function( elem, value, name ) {
- if ( value === "" ) {
- value = "false";
- }
- nodeHook.set( elem, value, name );
- }
- };
-}
-
-
-// Some attributes require a special call on IE
-if ( !jQuery.support.hrefNormalized ) {
- jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
- jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
- get: function( elem ) {
- var ret = elem.getAttribute( name, 2 );
- return ret === null ? undefined : ret;
- }
- });
- });
-}
-
-if ( !jQuery.support.style ) {
- jQuery.attrHooks.style = {
- get: function( elem ) {
- // Return undefined in the case of empty string
- // Normalize to lowercase since IE uppercases css property names
- return elem.style.cssText.toLowerCase() || undefined;
- },
- set: function( elem, value ) {
- return ( elem.style.cssText = "" + value );
- }
- };
-}
-
-// Safari mis-reports the default selected property of an option
-// Accessing the parent's selectedIndex property fixes it
-if ( !jQuery.support.optSelected ) {
- jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
- get: function( elem ) {
- var parent = elem.parentNode;
-
- if ( parent ) {
- parent.selectedIndex;
-
- // Make sure that it also works with optgroups, see #5701
- if ( parent.parentNode ) {
- parent.parentNode.selectedIndex;
- }
- }
- return null;
- }
- });
-}
-
-// IE6/7 call enctype encoding
-if ( !jQuery.support.enctype ) {
- jQuery.propFix.enctype = "encoding";
-}
-
-// Radios and checkboxes getter/setter
-if ( !jQuery.support.checkOn ) {
- jQuery.each([ "radio", "checkbox" ], function() {
- jQuery.valHooks[ this ] = {
- get: function( elem ) {
- // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
- return elem.getAttribute("value") === null ? "on" : elem.value;
- }
- };
- });
-}
-jQuery.each([ "radio", "checkbox" ], function() {
- jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
- set: function( elem, value ) {
- if ( jQuery.isArray( value ) ) {
- return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
- }
- }
- });
-});
-
-
-
-
-var rformElems = /^(?:textarea|input|select)$/i,
- rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/,
- rhoverHack = /(?:^|\s)hover(\.\S+)?\b/,
- rkeyEvent = /^key/,
- rmouseEvent = /^(?:mouse|contextmenu)|click/,
- rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
- rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,
- quickParse = function( selector ) {
- var quick = rquickIs.exec( selector );
- if ( quick ) {
- // 0 1 2 3
- // [ _, tag, id, class ]
- quick[1] = ( quick[1] || "" ).toLowerCase();
- quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" );
- }
- return quick;
- },
- quickIs = function( elem, m ) {
- var attrs = elem.attributes || {};
- return (
- (!m[1] || elem.nodeName.toLowerCase() === m[1]) &&
- (!m[2] || (attrs.id || {}).value === m[2]) &&
- (!m[3] || m[3].test( (attrs[ "class" ] || {}).value ))
- );
- },
- hoverHack = function( events ) {
- return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
- };
-
-/*
- * Helper functions for managing events -- not part of the public interface.
- * Props to Dean Edwards' addEvent library for many of the ideas.
- */
-jQuery.event = {
-
- add: function( elem, types, handler, data, selector ) {
-
- var elemData, eventHandle, events,
- t, tns, type, namespaces, handleObj,
- handleObjIn, quick, handlers, special;
-
- // Don't attach events to noData or text/comment nodes (allow plain objects tho)
- if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {
- return;
- }
-
- // Caller can pass in an object of custom data in lieu of the handler
- if ( handler.handler ) {
- handleObjIn = handler;
- handler = handleObjIn.handler;
- selector = handleObjIn.selector;
- }
-
- // Make sure that the handler has a unique ID, used to find/remove it later
- if ( !handler.guid ) {
- handler.guid = jQuery.guid++;
- }
-
- // Init the element's event structure and main handler, if this is the first
- events = elemData.events;
- if ( !events ) {
- elemData.events = events = {};
- }
- eventHandle = elemData.handle;
- if ( !eventHandle ) {
- elemData.handle = eventHandle = function( e ) {
- // Discard the second event of a jQuery.event.trigger() and
- // when an event is called after a page has unloaded
- return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
- jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
- undefined;
- };
- // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
- eventHandle.elem = elem;
- }
-
- // Handle multiple events separated by a space
- // jQuery(...).bind("mouseover mouseout", fn);
- types = jQuery.trim( hoverHack(types) ).split( " " );
- for ( t = 0; t < types.length; t++ ) {
-
- tns = rtypenamespace.exec( types[t] ) || [];
- type = tns[1];
- namespaces = ( tns[2] || "" ).split( "." ).sort();
-
- // If event changes its type, use the special event handlers for the changed type
- special = jQuery.event.special[ type ] || {};
-
- // If selector defined, determine special event api type, otherwise given type
- type = ( selector ? special.delegateType : special.bindType ) || type;
-
- // Update special based on newly reset type
- special = jQuery.event.special[ type ] || {};
-
- // handleObj is passed to all event handlers
- handleObj = jQuery.extend({
- type: type,
- origType: tns[1],
- data: data,
- handler: handler,
- guid: handler.guid,
- selector: selector,
- quick: selector && quickParse( selector ),
- namespace: namespaces.join(".")
- }, handleObjIn );
-
- // Init the event handler queue if we're the first
- handlers = events[ type ];
- if ( !handlers ) {
- handlers = events[ type ] = [];
- handlers.delegateCount = 0;
-
- // Only use addEventListener/attachEvent if the special events handler returns false
- if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
- // Bind the global event handler to the element
- if ( elem.addEventListener ) {
- elem.addEventListener( type, eventHandle, false );
-
- } else if ( elem.attachEvent ) {
- elem.attachEvent( "on" + type, eventHandle );
- }
- }
- }
-
- if ( special.add ) {
- special.add.call( elem, handleObj );
-
- if ( !handleObj.handler.guid ) {
- handleObj.handler.guid = handler.guid;
- }
- }
-
- // Add to the element's handler list, delegates in front
- if ( selector ) {
- handlers.splice( handlers.delegateCount++, 0, handleObj );
- } else {
- handlers.push( handleObj );
- }
-
- // Keep track of which events have ever been used, for event optimization
- jQuery.event.global[ type ] = true;
- }
-
- // Nullify elem to prevent memory leaks in IE
- elem = null;
- },
-
- global: {},
-
- // Detach an event or set of events from an element
- remove: function( elem, types, handler, selector, mappedTypes ) {
-
- var elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
- t, tns, type, origType, namespaces, origCount,
- j, events, special, handle, eventType, handleObj;
-
- if ( !elemData || !(events = elemData.events) ) {
- return;
- }
-
- // Once for each type.namespace in types; type may be omitted
- types = jQuery.trim( hoverHack( types || "" ) ).split(" ");
- for ( t = 0; t < types.length; t++ ) {
- tns = rtypenamespace.exec( types[t] ) || [];
- type = origType = tns[1];
- namespaces = tns[2];
-
- // Unbind all events (on this namespace, if provided) for the element
- if ( !type ) {
- for ( type in events ) {
- jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
- }
- continue;
- }
-
- special = jQuery.event.special[ type ] || {};
- type = ( selector? special.delegateType : special.bindType ) || type;
- eventType = events[ type ] || [];
- origCount = eventType.length;
- namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
-
- // Remove matching events
- for ( j = 0; j < eventType.length; j++ ) {
- handleObj = eventType[ j ];
-
- if ( ( mappedTypes || origType === handleObj.origType ) &&
- ( !handler || handler.guid === handleObj.guid ) &&
- ( !namespaces || namespaces.test( handleObj.namespace ) ) &&
- ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
- eventType.splice( j--, 1 );
-
- if ( handleObj.selector ) {
- eventType.delegateCount--;
- }
- if ( special.remove ) {
- special.remove.call( elem, handleObj );
- }
- }
- }
-
- // Remove generic event handler if we removed something and no more handlers exist
- // (avoids potential for endless recursion during removal of special event handlers)
- if ( eventType.length === 0 && origCount !== eventType.length ) {
- if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
- jQuery.removeEvent( elem, type, elemData.handle );
- }
-
- delete events[ type ];
- }
- }
-
- // Remove the expando if it's no longer used
- if ( jQuery.isEmptyObject( events ) ) {
- handle = elemData.handle;
- if ( handle ) {
- handle.elem = null;
- }
-
- // removeData also checks for emptiness and clears the expando if empty
- // so use it instead of delete
- jQuery.removeData( elem, [ "events", "handle" ], true );
- }
- },
-
- // Events that are safe to short-circuit if no handlers are attached.
- // Native DOM events should not be added, they may have inline handlers.
- customEvent: {
- "getData": true,
- "setData": true,
- "changeData": true
- },
-
- trigger: function( event, data, elem, onlyHandlers ) {
- // Don't do events on text and comment nodes
- if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {
- return;
- }
-
- // Event object or event type
- var type = event.type || event,
- namespaces = [],
- cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType;
-
- // focus/blur morphs to focusin/out; ensure we're not firing them right now
- if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
- return;
- }
-
- if ( type.indexOf( "!" ) >= 0 ) {
- // Exclusive events trigger only for the exact event (no namespaces)
- type = type.slice(0, -1);
- exclusive = true;
- }
-
- if ( type.indexOf( "." ) >= 0 ) {
- // Namespaced trigger; create a regexp to match event type in handle()
- namespaces = type.split(".");
- type = namespaces.shift();
- namespaces.sort();
- }
-
- if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
- // No jQuery handlers for this event type, and it can't have inline handlers
- return;
- }
-
- // Caller can pass in an Event, Object, or just an event type string
- event = typeof event === "object" ?
- // jQuery.Event object
- event[ jQuery.expando ] ? event :
- // Object literal
- new jQuery.Event( type, event ) :
- // Just the event type (string)
- new jQuery.Event( type );
-
- event.type = type;
- event.isTrigger = true;
- event.exclusive = exclusive;
- event.namespace = namespaces.join( "." );
- event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
- ontype = type.indexOf( ":" ) < 0 ? "on" + type : "";
-
- // Handle a global trigger
- if ( !elem ) {
-
- // TODO: Stop taunting the data cache; remove global events and always attach to document
- cache = jQuery.cache;
- for ( i in cache ) {
- if ( cache[ i ].events && cache[ i ].events[ type ] ) {
- jQuery.event.trigger( event, data, cache[ i ].handle.elem, true );
- }
- }
- return;
- }
-
- // Clean up the event in case it is being reused
- event.result = undefined;
- if ( !event.target ) {
- event.target = elem;
- }
-
- // Clone any incoming data and prepend the event, creating the handler arg list
- data = data != null ? jQuery.makeArray( data ) : [];
- data.unshift( event );
-
- // Allow special events to draw outside the lines
- special = jQuery.event.special[ type ] || {};
- if ( special.trigger && special.trigger.apply( elem, data ) === false ) {
- return;
- }
-
- // Determine event propagation path in advance, per W3C events spec (#9951)
- // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
- eventPath = [[ elem, special.bindType || type ]];
- if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
-
- bubbleType = special.delegateType || type;
- cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode;
- old = null;
- for ( ; cur; cur = cur.parentNode ) {
- eventPath.push([ cur, bubbleType ]);
- old = cur;
- }
-
- // Only add window if we got to document (e.g., not plain obj or detached DOM)
- if ( old && old === elem.ownerDocument ) {
- eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);
- }
- }
-
- // Fire handlers on the event path
- for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) {
-
- cur = eventPath[i][0];
- event.type = eventPath[i][1];
-
- handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
- if ( handle ) {
- handle.apply( cur, data );
- }
- // Note that this is a bare JS function and not a jQuery handler
- handle = ontype && cur[ ontype ];
- if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) {
- event.preventDefault();
- }
- }
- event.type = type;
-
- // If nobody prevented the default action, do it now
- if ( !onlyHandlers && !event.isDefaultPrevented() ) {
-
- if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) &&
- !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
-
- // Call a native DOM method on the target with the same name name as the event.
- // Can't use an .isFunction() check here because IE6/7 fails that test.
- // Don't do default actions on window, that's where global variables be (#6170)
- // IE<9 dies on focus/blur to hidden element (#1486)
- if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {
-
- // Don't re-trigger an onFOO event when we call its FOO() method
- old = elem[ ontype ];
-
- if ( old ) {
- elem[ ontype ] = null;
- }
-
- // Prevent re-triggering of the same event, since we already bubbled it above
- jQuery.event.triggered = type;
- elem[ type ]();
- jQuery.event.triggered = undefined;
-
- if ( old ) {
- elem[ ontype ] = old;
- }
- }
- }
- }
-
- return event.result;
- },
-
- dispatch: function( event ) {
-
- // Make a writable jQuery.Event from the native event object
- event = jQuery.event.fix( event || window.event );
-
- var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []),
- delegateCount = handlers.delegateCount,
- args = [].slice.call( arguments, 0 ),
- run_all = !event.exclusive && !event.namespace,
- special = jQuery.event.special[ event.type ] || {},
- handlerQueue = [],
- i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related;
-
- // Use the fix-ed jQuery.Event rather than the (read-only) native event
- args[0] = event;
- event.delegateTarget = this;
-
- // Call the preDispatch hook for the mapped type, and let it bail if desired
- if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
- return;
- }
-
- // Determine handlers that should run if there are delegated events
- // Avoid non-left-click bubbling in Firefox (#3861)
- if ( delegateCount && !(event.button && event.type === "click") ) {
-
- // Pregenerate a single jQuery object for reuse with .is()
- jqcur = jQuery(this);
- jqcur.context = this.ownerDocument || this;
-
- for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {
-
- // Don't process events on disabled elements (#6911, #8165)
- if ( cur.disabled !== true ) {
- selMatch = {};
- matches = [];
- jqcur[0] = cur;
- for ( i = 0; i < delegateCount; i++ ) {
- handleObj = handlers[ i ];
- sel = handleObj.selector;
-
- if ( selMatch[ sel ] === undefined ) {
- selMatch[ sel ] = (
- handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel )
- );
- }
- if ( selMatch[ sel ] ) {
- matches.push( handleObj );
- }
- }
- if ( matches.length ) {
- handlerQueue.push({ elem: cur, matches: matches });
- }
- }
- }
- }
-
- // Add the remaining (directly-bound) handlers
- if ( handlers.length > delegateCount ) {
- handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) });
- }
-
- // Run delegates first; they may want to stop propagation beneath us
- for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) {
- matched = handlerQueue[ i ];
- event.currentTarget = matched.elem;
-
- for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) {
- handleObj = matched.matches[ j ];
-
- // Triggered event must either 1) be non-exclusive and have no namespace, or
- // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
- if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {
-
- event.data = handleObj.data;
- event.handleObj = handleObj;
-
- ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
- .apply( matched.elem, args );
-
- if ( ret !== undefined ) {
- event.result = ret;
- if ( ret === false ) {
- event.preventDefault();
- event.stopPropagation();
- }
- }
- }
- }
- }
-
- // Call the postDispatch hook for the mapped type
- if ( special.postDispatch ) {
- special.postDispatch.call( this, event );
- }
-
- return event.result;
- },
-
- // Includes some event props shared by KeyEvent and MouseEvent
- // *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 ***
- props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
-
- fixHooks: {},
-
- keyHooks: {
- props: "char charCode key keyCode".split(" "),
- filter: function( event, original ) {
-
- // Add which for key events
- if ( event.which == null ) {
- event.which = original.charCode != null ? original.charCode : original.keyCode;
- }
-
- return event;
- }
- },
-
- mouseHooks: {
- props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
- filter: function( event, original ) {
- var eventDoc, doc, body,
- button = original.button,
- fromElement = original.fromElement;
-
- // Calculate pageX/Y if missing and clientX/Y available
- if ( event.pageX == null && original.clientX != null ) {
- eventDoc = event.target.ownerDocument || document;
- doc = eventDoc.documentElement;
- body = eventDoc.body;
-
- event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
- event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
- }
-
- // Add relatedTarget, if necessary
- if ( !event.relatedTarget && fromElement ) {
- event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
- }
-
- // Add which for click: 1 === left; 2 === middle; 3 === right
- // Note: button is not normalized, so don't use it
- if ( !event.which && button !== undefined ) {
- event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
- }
-
- return event;
- }
- },
-
- fix: function( event ) {
- if ( event[ jQuery.expando ] ) {
- return event;
- }
-
- // Create a writable copy of the event object and normalize some properties
- var i, prop,
- originalEvent = event,
- fixHook = jQuery.event.fixHooks[ event.type ] || {},
- copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
-
- event = jQuery.Event( originalEvent );
-
- for ( i = copy.length; i; ) {
- prop = copy[ --i ];
- event[ prop ] = originalEvent[ prop ];
- }
-
- // Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)
- if ( !event.target ) {
- event.target = originalEvent.srcElement || document;
- }
-
- // Target should not be a text node (#504, Safari)
- if ( event.target.nodeType === 3 ) {
- event.target = event.target.parentNode;
- }
-
- // For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8)
- if ( event.metaKey === undefined ) {
- event.metaKey = event.ctrlKey;
- }
-
- return fixHook.filter? fixHook.filter( event, originalEvent ) : event;
- },
-
- special: {
- ready: {
- // Make sure the ready event is setup
- setup: jQuery.bindReady
- },
-
- load: {
- // Prevent triggered image.load events from bubbling to window.load
- noBubble: true
- },
-
- focus: {
- delegateType: "focusin"
- },
- blur: {
- delegateType: "focusout"
- },
-
- beforeunload: {
- setup: function( data, namespaces, eventHandle ) {
- // We only want to do this special case on windows
- if ( jQuery.isWindow( this ) ) {
- this.onbeforeunload = eventHandle;
- }
- },
-
- teardown: function( namespaces, eventHandle ) {
- if ( this.onbeforeunload === eventHandle ) {
- this.onbeforeunload = null;
- }
- }
- }
- },
-
- simulate: function( type, elem, event, bubble ) {
- // Piggyback on a donor event to simulate a different one.
- // Fake originalEvent to avoid donor's stopPropagation, but if the
- // simulated event prevents default then we do the same on the donor.
- var e = jQuery.extend(
- new jQuery.Event(),
- event,
- { type: type,
- isSimulated: true,
- originalEvent: {}
- }
- );
- if ( bubble ) {
- jQuery.event.trigger( e, null, elem );
- } else {
- jQuery.event.dispatch.call( elem, e );
- }
- if ( e.isDefaultPrevented() ) {
- event.preventDefault();
- }
- }
-};
-
-// Some plugins are using, but it's undocumented/deprecated and will be removed.
-// The 1.7 special event interface should provide all the hooks needed now.
-jQuery.event.handle = jQuery.event.dispatch;
-
-jQuery.removeEvent = document.removeEventListener ?
- function( elem, type, handle ) {
- if ( elem.removeEventListener ) {
- elem.removeEventListener( type, handle, false );
- }
- } :
- function( elem, type, handle ) {
- if ( elem.detachEvent ) {
- elem.detachEvent( "on" + type, handle );
- }
- };
-
-jQuery.Event = function( src, props ) {
- // Allow instantiation without the 'new' keyword
- if ( !(this instanceof jQuery.Event) ) {
- return new jQuery.Event( src, props );
- }
-
- // Event object
- if ( src && src.type ) {
- this.originalEvent = src;
- this.type = src.type;
-
- // Events bubbling up the document may have been marked as prevented
- // by a handler lower down the tree; reflect the correct value.
- this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
- src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
-
- // Event type
- } else {
- this.type = src;
- }
-
- // Put explicitly provided properties onto the event object
- if ( props ) {
- jQuery.extend( this, props );
- }
-
- // Create a timestamp if incoming event doesn't have one
- this.timeStamp = src && src.timeStamp || jQuery.now();
-
- // Mark it as fixed
- this[ jQuery.expando ] = true;
-};
-
-function returnFalse() {
- return false;
-}
-function returnTrue() {
- return true;
-}
-
-// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
- preventDefault: function() {
- this.isDefaultPrevented = returnTrue;
-
- var e = this.originalEvent;
- if ( !e ) {
- return;
- }
-
- // if preventDefault exists run it on the original event
- if ( e.preventDefault ) {
- e.preventDefault();
-
- // otherwise set the returnValue property of the original event to false (IE)
- } else {
- e.returnValue = false;
- }
- },
- stopPropagation: function() {
- this.isPropagationStopped = returnTrue;
-
- var e = this.originalEvent;
- if ( !e ) {
- return;
- }
- // if stopPropagation exists run it on the original event
- if ( e.stopPropagation ) {
- e.stopPropagation();
- }
- // otherwise set the cancelBubble property of the original event to true (IE)
- e.cancelBubble = true;
- },
- stopImmediatePropagation: function() {
- this.isImmediatePropagationStopped = returnTrue;
- this.stopPropagation();
- },
- isDefaultPrevented: returnFalse,
- isPropagationStopped: returnFalse,
- isImmediatePropagationStopped: returnFalse
-};
-
-// Create mouseenter/leave events using mouseover/out and event-time checks
-jQuery.each({
- mouseenter: "mouseover",
- mouseleave: "mouseout"
-}, function( orig, fix ) {
- jQuery.event.special[ orig ] = {
- delegateType: fix,
- bindType: fix,
-
- handle: function( event ) {
- var target = this,
- related = event.relatedTarget,
- handleObj = event.handleObj,
- selector = handleObj.selector,
- ret;
-
- // For mousenter/leave call the handler if related is outside the target.
- // NB: No relatedTarget if the mouse left/entered the browser window
- if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
- event.type = handleObj.origType;
- ret = handleObj.handler.apply( this, arguments );
- event.type = fix;
- }
- return ret;
- }
- };
-});
-
-// IE submit delegation
-if ( !jQuery.support.submitBubbles ) {
-
- jQuery.event.special.submit = {
- setup: function() {
- // Only need this for delegated form submit events
- if ( jQuery.nodeName( this, "form" ) ) {
- return false;
- }
-
- // Lazy-add a submit handler when a descendant form may potentially be submitted
- jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
- // Node name check avoids a VML-related crash in IE (#9807)
- var elem = e.target,
- form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
- if ( form && !form._submit_attached ) {
- jQuery.event.add( form, "submit._submit", function( event ) {
- event._submit_bubble = true;
- });
- form._submit_attached = true;
- }
- });
- // return undefined since we don't need an event listener
- },
-
- postDispatch: function( event ) {
- // If form was submitted by the user, bubble the event up the tree
- if ( event._submit_bubble ) {
- delete event._submit_bubble;
- if ( this.parentNode && !event.isTrigger ) {
- jQuery.event.simulate( "submit", this.parentNode, event, true );
- }
- }
- },
-
- teardown: function() {
- // Only need this for delegated form submit events
- if ( jQuery.nodeName( this, "form" ) ) {
- return false;
- }
-
- // Remove delegated handlers; cleanData eventually reaps submit handlers attached above
- jQuery.event.remove( this, "._submit" );
- }
- };
-}
-
-// IE change delegation and checkbox/radio fix
-if ( !jQuery.support.changeBubbles ) {
-
- jQuery.event.special.change = {
-
- setup: function() {
-
- if ( rformElems.test( this.nodeName ) ) {
- // IE doesn't fire change on a check/radio until blur; trigger it on click
- // after a propertychange. Eat the blur-change in special.change.handle.
- // This still fires onchange a second time for check/radio after blur.
- if ( this.type === "checkbox" || this.type === "radio" ) {
- jQuery.event.add( this, "propertychange._change", function( event ) {
- if ( event.originalEvent.propertyName === "checked" ) {
- this._just_changed = true;
- }
- });
- jQuery.event.add( this, "click._change", function( event ) {
- if ( this._just_changed && !event.isTrigger ) {
- this._just_changed = false;
- jQuery.event.simulate( "change", this, event, true );
- }
- });
- }
- return false;
- }
- // Delegated event; lazy-add a change handler on descendant inputs
- jQuery.event.add( this, "beforeactivate._change", function( e ) {
- var elem = e.target;
-
- if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) {
- jQuery.event.add( elem, "change._change", function( event ) {
- if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
- jQuery.event.simulate( "change", this.parentNode, event, true );
- }
- });
- elem._change_attached = true;
- }
- });
- },
-
- handle: function( event ) {
- var elem = event.target;
-
- // Swallow native change events from checkbox/radio, we already triggered them above
- if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
- return event.handleObj.handler.apply( this, arguments );
- }
- },
-
- teardown: function() {
- jQuery.event.remove( this, "._change" );
-
- return rformElems.test( this.nodeName );
- }
- };
-}
-
-// Create "bubbling" focus and blur events
-if ( !jQuery.support.focusinBubbles ) {
- jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
-
- // Attach a single capturing handler while someone wants focusin/focusout
- var attaches = 0,
- handler = function( event ) {
- jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
- };
-
- jQuery.event.special[ fix ] = {
- setup: function() {
- if ( attaches++ === 0 ) {
- document.addEventListener( orig, handler, true );
- }
- },
- teardown: function() {
- if ( --attaches === 0 ) {
- document.removeEventListener( orig, handler, true );
- }
- }
- };
- });
-}
-
-jQuery.fn.extend({
-
- on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
- var origFn, type;
-
- // Types can be a map of types/handlers
- if ( typeof types === "object" ) {
- // ( types-Object, selector, data )
- if ( typeof selector !== "string" ) { // && selector != null
- // ( types-Object, data )
- data = data || selector;
- selector = undefined;
- }
- for ( type in types ) {
- this.on( type, selector, data, types[ type ], one );
- }
- return this;
- }
-
- if ( data == null && fn == null ) {
- // ( types, fn )
- fn = selector;
- data = selector = undefined;
- } else if ( fn == null ) {
- if ( typeof selector === "string" ) {
- // ( types, selector, fn )
- fn = data;
- data = undefined;
- } else {
- // ( types, data, fn )
- fn = data;
- data = selector;
- selector = undefined;
- }
- }
- if ( fn === false ) {
- fn = returnFalse;
- } else if ( !fn ) {
- return this;
- }
-
- if ( one === 1 ) {
- origFn = fn;
- fn = function( event ) {
- // Can use an empty set, since event contains the info
- jQuery().off( event );
- return origFn.apply( this, arguments );
- };
- // Use same guid so caller can remove using origFn
- fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
- }
- return this.each( function() {
- jQuery.event.add( this, types, fn, data, selector );
- });
- },
- one: function( types, selector, data, fn ) {
- return this.on( types, selector, data, fn, 1 );
- },
- off: function( types, selector, fn ) {
- if ( types && types.preventDefault && types.handleObj ) {
- // ( event ) dispatched jQuery.Event
- var handleObj = types.handleObj;
- jQuery( types.delegateTarget ).off(
- handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
- handleObj.selector,
- handleObj.handler
- );
- return this;
- }
- if ( typeof types === "object" ) {
- // ( types-object [, selector] )
- for ( var type in types ) {
- this.off( type, selector, types[ type ] );
- }
- return this;
- }
- if ( selector === false || typeof selector === "function" ) {
- // ( types [, fn] )
- fn = selector;
- selector = undefined;
- }
- if ( fn === false ) {
- fn = returnFalse;
- }
- return this.each(function() {
- jQuery.event.remove( this, types, fn, selector );
- });
- },
-
- bind: function( types, data, fn ) {
- return this.on( types, null, data, fn );
- },
- unbind: function( types, fn ) {
- return this.off( types, null, fn );
- },
-
- live: function( types, data, fn ) {
- jQuery( this.context ).on( types, this.selector, data, fn );
- return this;
- },
- die: function( types, fn ) {
- jQuery( this.context ).off( types, this.selector || "**", fn );
- return this;
- },
-
- delegate: function( selector, types, data, fn ) {
- return this.on( types, selector, data, fn );
- },
- undelegate: function( selector, types, fn ) {
- // ( namespace ) or ( selector, types [, fn] )
- return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn );
- },
-
- trigger: function( type, data ) {
- return this.each(function() {
- jQuery.event.trigger( type, data, this );
- });
- },
- triggerHandler: function( type, data ) {
- if ( this[0] ) {
- return jQuery.event.trigger( type, data, this[0], true );
- }
- },
-
- toggle: function( fn ) {
- // Save reference to arguments for access in closure
- var args = arguments,
- guid = fn.guid || jQuery.guid++,
- i = 0,
- toggler = function( event ) {
- // Figure out which function to execute
- var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
- jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
-
- // Make sure that clicks stop
- event.preventDefault();
-
- // and execute the function
- return args[ lastToggle ].apply( this, arguments ) || false;
- };
-
- // link all the functions, so any of them can unbind this click handler
- toggler.guid = guid;
- while ( i < args.length ) {
- args[ i++ ].guid = guid;
- }
-
- return this.click( toggler );
- },
-
- hover: function( fnOver, fnOut ) {
- return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
- }
-});
-
-jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
- "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
- "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
-
- // Handle event binding
- jQuery.fn[ name ] = function( data, fn ) {
- if ( fn == null ) {
- fn = data;
- data = null;
- }
-
- return arguments.length > 0 ?
- this.on( name, null, data, fn ) :
- this.trigger( name );
- };
-
- if ( jQuery.attrFn ) {
- jQuery.attrFn[ name ] = true;
- }
-
- if ( rkeyEvent.test( name ) ) {
- jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
- }
-
- if ( rmouseEvent.test( name ) ) {
- jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
- }
-});
-
-
-
-/*!
- * Sizzle CSS Selector Engine
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- * More information: http://sizzlejs.com/
- */
-(function(){
-
-var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
- expando = "sizcache" + (Math.random() + '').replace('.', ''),
- done = 0,
- toString = Object.prototype.toString,
- hasDuplicate = false,
- baseHasDuplicate = true,
- rBackslash = /\\/g,
- rReturn = /\r\n/g,
- rNonWord = /\W/;
-
-// Here we check if the JavaScript engine is using some sort of
-// optimization where it does not always call our comparision
-// function. If that is the case, discard the hasDuplicate value.
-// Thus far that includes Google Chrome.
-[0, 0].sort(function() {
- baseHasDuplicate = false;
- return 0;
-});
-
-var Sizzle = function( selector, context, results, seed ) {
- results = results || [];
- context = context || document;
-
- var origContext = context;
-
- if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
- return [];
- }
-
- if ( !selector || typeof selector !== "string" ) {
- return results;
- }
-
- var m, set, checkSet, extra, ret, cur, pop, i,
- prune = true,
- contextXML = Sizzle.isXML( context ),
- parts = [],
- soFar = selector;
-
- // Reset the position of the chunker regexp (start from head)
- do {
- chunker.exec( "" );
- m = chunker.exec( soFar );
-
- if ( m ) {
- soFar = m[3];
-
- parts.push( m[1] );
-
- if ( m[2] ) {
- extra = m[3];
- break;
- }
- }
- } while ( m );
-
- if ( parts.length > 1 && origPOS.exec( selector ) ) {
-
- if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
- set = posProcess( parts[0] + parts[1], context, seed );
-
- } else {
- set = Expr.relative[ parts[0] ] ?
- [ context ] :
- Sizzle( parts.shift(), context );
-
- while ( parts.length ) {
- selector = parts.shift();
-
- if ( Expr.relative[ selector ] ) {
- selector += parts.shift();
- }
-
- set = posProcess( selector, set, seed );
- }
- }
-
- } else {
- // Take a shortcut and set the context if the root selector is an ID
- // (but not if it'll be faster if the inner selector is an ID)
- if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
- Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
-
- ret = Sizzle.find( parts.shift(), context, contextXML );
- context = ret.expr ?
- Sizzle.filter( ret.expr, ret.set )[0] :
- ret.set[0];
- }
-
- if ( context ) {
- ret = seed ?
- { expr: parts.pop(), set: makeArray(seed) } :
- Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
-
- set = ret.expr ?
- Sizzle.filter( ret.expr, ret.set ) :
- ret.set;
-
- if ( parts.length > 0 ) {
- checkSet = makeArray( set );
-
- } else {
- prune = false;
- }
-
- while ( parts.length ) {
- cur = parts.pop();
- pop = cur;
-
- if ( !Expr.relative[ cur ] ) {
- cur = "";
- } else {
- pop = parts.pop();
- }
-
- if ( pop == null ) {
- pop = context;
- }
-
- Expr.relative[ cur ]( checkSet, pop, contextXML );
- }
-
- } else {
- checkSet = parts = [];
- }
- }
-
- if ( !checkSet ) {
- checkSet = set;
- }
-
- if ( !checkSet ) {
- Sizzle.error( cur || selector );
- }
-
- if ( toString.call(checkSet) === "[object Array]" ) {
- if ( !prune ) {
- results.push.apply( results, checkSet );
-
- } else if ( context && context.nodeType === 1 ) {
- for ( i = 0; checkSet[i] != null; i++ ) {
- if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
- results.push( set[i] );
- }
- }
-
- } else {
- for ( i = 0; checkSet[i] != null; i++ ) {
- if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
- results.push( set[i] );
- }
- }
- }
-
- } else {
- makeArray( checkSet, results );
- }
-
- if ( extra ) {
- Sizzle( extra, origContext, results, seed );
- Sizzle.uniqueSort( results );
- }
-
- return results;
-};
-
-Sizzle.uniqueSort = function( results ) {
- if ( sortOrder ) {
- hasDuplicate = baseHasDuplicate;
- results.sort( sortOrder );
-
- if ( hasDuplicate ) {
- for ( var i = 1; i < results.length; i++ ) {
- if ( results[i] === results[ i - 1 ] ) {
- results.splice( i--, 1 );
- }
- }
- }
- }
-
- return results;
-};
-
-Sizzle.matches = function( expr, set ) {
- return Sizzle( expr, null, null, set );
-};
-
-Sizzle.matchesSelector = function( node, expr ) {
- return Sizzle( expr, null, null, [node] ).length > 0;
-};
-
-Sizzle.find = function( expr, context, isXML ) {
- var set, i, len, match, type, left;
-
- if ( !expr ) {
- return [];
- }
-
- for ( i = 0, len = Expr.order.length; i < len; i++ ) {
- type = Expr.order[i];
-
- if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
- left = match[1];
- match.splice( 1, 1 );
-
- if ( left.substr( left.length - 1 ) !== "\\" ) {
- match[1] = (match[1] || "").replace( rBackslash, "" );
- set = Expr.find[ type ]( match, context, isXML );
-
- if ( set != null ) {
- expr = expr.replace( Expr.match[ type ], "" );
- break;
- }
- }
- }
- }
-
- if ( !set ) {
- set = typeof context.getElementsByTagName !== "undefined" ?
- context.getElementsByTagName( "*" ) :
- [];
- }
-
- return { set: set, expr: expr };
-};
-
-Sizzle.filter = function( expr, set, inplace, not ) {
- var match, anyFound,
- type, found, item, filter, left,
- i, pass,
- old = expr,
- result = [],
- curLoop = set,
- isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
-
- while ( expr && set.length ) {
- for ( type in Expr.filter ) {
- if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
- filter = Expr.filter[ type ];
- left = match[1];
-
- anyFound = false;
-
- match.splice(1,1);
-
- if ( left.substr( left.length - 1 ) === "\\" ) {
- continue;
- }
-
- if ( curLoop === result ) {
- result = [];
- }
-
- if ( Expr.preFilter[ type ] ) {
- match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
-
- if ( !match ) {
- anyFound = found = true;
-
- } else if ( match === true ) {
- continue;
- }
- }
-
- if ( match ) {
- for ( i = 0; (item = curLoop[i]) != null; i++ ) {
- if ( item ) {
- found = filter( item, match, i, curLoop );
- pass = not ^ found;
-
- if ( inplace && found != null ) {
- if ( pass ) {
- anyFound = true;
-
- } else {
- curLoop[i] = false;
- }
-
- } else if ( pass ) {
- result.push( item );
- anyFound = true;
- }
- }
- }
- }
-
- if ( found !== undefined ) {
- if ( !inplace ) {
- curLoop = result;
- }
-
- expr = expr.replace( Expr.match[ type ], "" );
-
- if ( !anyFound ) {
- return [];
- }
-
- break;
- }
- }
- }
-
- // Improper expression
- if ( expr === old ) {
- if ( anyFound == null ) {
- Sizzle.error( expr );
-
- } else {
- break;
- }
- }
-
- old = expr;
- }
-
- return curLoop;
-};
-
-Sizzle.error = function( msg ) {
- throw new Error( "Syntax error, unrecognized expression: " + msg );
-};
-
-/**
- * Utility function for retreiving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
-var getText = Sizzle.getText = function( elem ) {
- var i, node,
- nodeType = elem.nodeType,
- ret = "";
-
- if ( nodeType ) {
- if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
- // Use textContent || innerText for elements
- if ( typeof elem.textContent === 'string' ) {
- return elem.textContent;
- } else if ( typeof elem.innerText === 'string' ) {
- // Replace IE's carriage returns
- return elem.innerText.replace( rReturn, '' );
- } else {
- // Traverse it's children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling) {
- ret += getText( elem );
- }
- }
- } else if ( nodeType === 3 || nodeType === 4 ) {
- return elem.nodeValue;
- }
- } else {
-
- // If no nodeType, this is expected to be an array
- for ( i = 0; (node = elem[i]); i++ ) {
- // Do not traverse comment nodes
- if ( node.nodeType !== 8 ) {
- ret += getText( node );
- }
- }
- }
- return ret;
-};
-
-var Expr = Sizzle.selectors = {
- order: [ "ID", "NAME", "TAG" ],
-
- match: {
- ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
- CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
- NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
- ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
- TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
- CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
- POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
- PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
- },
-
- leftMatch: {},
-
- attrMap: {
- "class": "className",
- "for": "htmlFor"
- },
-
- attrHandle: {
- href: function( elem ) {
- return elem.getAttribute( "href" );
- },
- type: function( elem ) {
- return elem.getAttribute( "type" );
- }
- },
-
- relative: {
- "+": function(checkSet, part){
- var isPartStr = typeof part === "string",
- isTag = isPartStr && !rNonWord.test( part ),
- isPartStrNotTag = isPartStr && !isTag;
-
- if ( isTag ) {
- part = part.toLowerCase();
- }
-
- for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
- if ( (elem = checkSet[i]) ) {
- while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
-
- checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
- elem || false :
- elem === part;
- }
- }
-
- if ( isPartStrNotTag ) {
- Sizzle.filter( part, checkSet, true );
- }
- },
-
- ">": function( checkSet, part ) {
- var elem,
- isPartStr = typeof part === "string",
- i = 0,
- l = checkSet.length;
-
- if ( isPartStr && !rNonWord.test( part ) ) {
- part = part.toLowerCase();
-
- for ( ; i < l; i++ ) {
- elem = checkSet[i];
-
- if ( elem ) {
- var parent = elem.parentNode;
- checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
- }
- }
-
- } else {
- for ( ; i < l; i++ ) {
- elem = checkSet[i];
-
- if ( elem ) {
- checkSet[i] = isPartStr ?
- elem.parentNode :
- elem.parentNode === part;
- }
- }
-
- if ( isPartStr ) {
- Sizzle.filter( part, checkSet, true );
- }
- }
- },
-
- "": function(checkSet, part, isXML){
- var nodeCheck,
- doneName = done++,
- checkFn = dirCheck;
-
- if ( typeof part === "string" && !rNonWord.test( part ) ) {
- part = part.toLowerCase();
- nodeCheck = part;
- checkFn = dirNodeCheck;
- }
-
- checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
- },
-
- "~": function( checkSet, part, isXML ) {
- var nodeCheck,
- doneName = done++,
- checkFn = dirCheck;
-
- if ( typeof part === "string" && !rNonWord.test( part ) ) {
- part = part.toLowerCase();
- nodeCheck = part;
- checkFn = dirNodeCheck;
- }
-
- checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
- }
- },
-
- find: {
- ID: function( match, context, isXML ) {
- if ( typeof context.getElementById !== "undefined" && !isXML ) {
- var m = context.getElementById(match[1]);
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- return m && m.parentNode ? [m] : [];
- }
- },
-
- NAME: function( match, context ) {
- if ( typeof context.getElementsByName !== "undefined" ) {
- var ret = [],
- results = context.getElementsByName( match[1] );
-
- for ( var i = 0, l = results.length; i < l; i++ ) {
- if ( results[i].getAttribute("name") === match[1] ) {
- ret.push( results[i] );
- }
- }
-
- return ret.length === 0 ? null : ret;
- }
- },
-
- TAG: function( match, context ) {
- if ( typeof context.getElementsByTagName !== "undefined" ) {
- return context.getElementsByTagName( match[1] );
- }
- }
- },
- preFilter: {
- CLASS: function( match, curLoop, inplace, result, not, isXML ) {
- match = " " + match[1].replace( rBackslash, "" ) + " ";
-
- if ( isXML ) {
- return match;
- }
-
- for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
- if ( elem ) {
- if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
- if ( !inplace ) {
- result.push( elem );
- }
-
- } else if ( inplace ) {
- curLoop[i] = false;
- }
- }
- }
-
- return false;
- },
-
- ID: function( match ) {
- return match[1].replace( rBackslash, "" );
- },
-
- TAG: function( match, curLoop ) {
- return match[1].replace( rBackslash, "" ).toLowerCase();
- },
-
- CHILD: function( match ) {
- if ( match[1] === "nth" ) {
- if ( !match[2] ) {
- Sizzle.error( match[0] );
- }
-
- match[2] = match[2].replace(/^\+|\s*/g, '');
-
- // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
- var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
- match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
- !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
-
- // calculate the numbers (first)n+(last) including if they are negative
- match[2] = (test[1] + (test[2] || 1)) - 0;
- match[3] = test[3] - 0;
- }
- else if ( match[2] ) {
- Sizzle.error( match[0] );
- }
-
- // TODO: Move to normal caching system
- match[0] = done++;
-
- return match;
- },
-
- ATTR: function( match, curLoop, inplace, result, not, isXML ) {
- var name = match[1] = match[1].replace( rBackslash, "" );
-
- if ( !isXML && Expr.attrMap[name] ) {
- match[1] = Expr.attrMap[name];
- }
-
- // Handle if an un-quoted value was used
- match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
-
- if ( match[2] === "~=" ) {
- match[4] = " " + match[4] + " ";
- }
-
- return match;
- },
-
- PSEUDO: function( match, curLoop, inplace, result, not ) {
- if ( match[1] === "not" ) {
- // If we're dealing with a complex expression, or a simple one
- if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
- match[3] = Sizzle(match[3], null, null, curLoop);
-
- } else {
- var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
-
- if ( !inplace ) {
- result.push.apply( result, ret );
- }
-
- return false;
- }
-
- } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
- return true;
- }
-
- return match;
- },
-
- POS: function( match ) {
- match.unshift( true );
-
- return match;
- }
- },
-
- filters: {
- enabled: function( elem ) {
- return elem.disabled === false && elem.type !== "hidden";
- },
-
- disabled: function( elem ) {
- return elem.disabled === true;
- },
-
- checked: function( elem ) {
- return elem.checked === true;
- },
-
- selected: function( elem ) {
- // Accessing this property makes selected-by-default
- // options in Safari work properly
- if ( elem.parentNode ) {
- elem.parentNode.selectedIndex;
- }
-
- return elem.selected === true;
- },
-
- parent: function( elem ) {
- return !!elem.firstChild;
- },
-
- empty: function( elem ) {
- return !elem.firstChild;
- },
-
- has: function( elem, i, match ) {
- return !!Sizzle( match[3], elem ).length;
- },
-
- header: function( elem ) {
- return (/h\d/i).test( elem.nodeName );
- },
-
- text: function( elem ) {
- var attr = elem.getAttribute( "type" ), type = elem.type;
- // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
- // use getAttribute instead to test this case
- return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
- },
-
- radio: function( elem ) {
- return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
- },
-
- checkbox: function( elem ) {
- return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
- },
-
- file: function( elem ) {
- return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
- },
-
- password: function( elem ) {
- return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
- },
-
- submit: function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return (name === "input" || name === "button") && "submit" === elem.type;
- },
-
- image: function( elem ) {
- return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
- },
-
- reset: function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return (name === "input" || name === "button") && "reset" === elem.type;
- },
-
- button: function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && "button" === elem.type || name === "button";
- },
-
- input: function( elem ) {
- return (/input|select|textarea|button/i).test( elem.nodeName );
- },
-
- focus: function( elem ) {
- return elem === elem.ownerDocument.activeElement;
- }
- },
- setFilters: {
- first: function( elem, i ) {
- return i === 0;
- },
-
- last: function( elem, i, match, array ) {
- return i === array.length - 1;
- },
-
- even: function( elem, i ) {
- return i % 2 === 0;
- },
-
- odd: function( elem, i ) {
- return i % 2 === 1;
- },
-
- lt: function( elem, i, match ) {
- return i < match[3] - 0;
- },
-
- gt: function( elem, i, match ) {
- return i > match[3] - 0;
- },
-
- nth: function( elem, i, match ) {
- return match[3] - 0 === i;
- },
-
- eq: function( elem, i, match ) {
- return match[3] - 0 === i;
- }
- },
- filter: {
- PSEUDO: function( elem, match, i, array ) {
- var name = match[1],
- filter = Expr.filters[ name ];
-
- if ( filter ) {
- return filter( elem, i, match, array );
-
- } else if ( name === "contains" ) {
- return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0;
-
- } else if ( name === "not" ) {
- var not = match[3];
-
- for ( var j = 0, l = not.length; j < l; j++ ) {
- if ( not[j] === elem ) {
- return false;
- }
- }
-
- return true;
-
- } else {
- Sizzle.error( name );
- }
- },
-
- CHILD: function( elem, match ) {
- var first, last,
- doneName, parent, cache,
- count, diff,
- type = match[1],
- node = elem;
-
- switch ( type ) {
- case "only":
- case "first":
- while ( (node = node.previousSibling) ) {
- if ( node.nodeType === 1 ) {
- return false;
- }
- }
-
- if ( type === "first" ) {
- return true;
- }
-
- node = elem;
-
- /* falls through */
- case "last":
- while ( (node = node.nextSibling) ) {
- if ( node.nodeType === 1 ) {
- return false;
- }
- }
-
- return true;
-
- case "nth":
- first = match[2];
- last = match[3];
-
- if ( first === 1 && last === 0 ) {
- return true;
- }
-
- doneName = match[0];
- parent = elem.parentNode;
-
- if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) {
- count = 0;
-
- for ( node = parent.firstChild; node; node = node.nextSibling ) {
- if ( node.nodeType === 1 ) {
- node.nodeIndex = ++count;
- }
- }
-
- parent[ expando ] = doneName;
- }
-
- diff = elem.nodeIndex - last;
-
- if ( first === 0 ) {
- return diff === 0;
-
- } else {
- return ( diff % first === 0 && diff / first >= 0 );
- }
- }
- },
-
- ID: function( elem, match ) {
- return elem.nodeType === 1 && elem.getAttribute("id") === match;
- },
-
- TAG: function( elem, match ) {
- return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match;
- },
-
- CLASS: function( elem, match ) {
- return (" " + (elem.className || elem.getAttribute("class")) + " ")
- .indexOf( match ) > -1;
- },
-
- ATTR: function( elem, match ) {
- var name = match[1],
- result = Sizzle.attr ?
- Sizzle.attr( elem, name ) :
- Expr.attrHandle[ name ] ?
- Expr.attrHandle[ name ]( elem ) :
- elem[ name ] != null ?
- elem[ name ] :
- elem.getAttribute( name ),
- value = result + "",
- type = match[2],
- check = match[4];
-
- return result == null ?
- type === "!=" :
- !type && Sizzle.attr ?
- result != null :
- type === "=" ?
- value === check :
- type === "*=" ?
- value.indexOf(check) >= 0 :
- type === "~=" ?
- (" " + value + " ").indexOf(check) >= 0 :
- !check ?
- value && result !== false :
- type === "!=" ?
- value !== check :
- type === "^=" ?
- value.indexOf(check) === 0 :
- type === "$=" ?
- value.substr(value.length - check.length) === check :
- type === "|=" ?
- value === check || value.substr(0, check.length + 1) === check + "-" :
- false;
- },
-
- POS: function( elem, match, i, array ) {
- var name = match[2],
- filter = Expr.setFilters[ name ];
-
- if ( filter ) {
- return filter( elem, i, match, array );
- }
- }
- }
-};
-
-var origPOS = Expr.match.POS,
- fescape = function(all, num){
- return "\\" + (num - 0 + 1);
- };
-
-for ( var type in Expr.match ) {
- Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
- Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
-}
-// Expose origPOS
-// "global" as in regardless of relation to brackets/parens
-Expr.match.globalPOS = origPOS;
-
-var makeArray = function( array, results ) {
- array = Array.prototype.slice.call( array, 0 );
-
- if ( results ) {
- results.push.apply( results, array );
- return results;
- }
-
- return array;
-};
-
-// Perform a simple check to determine if the browser is capable of
-// converting a NodeList to an array using builtin methods.
-// Also verifies that the returned array holds DOM nodes
-// (which is not the case in the Blackberry browser)
-try {
- Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
-
-// Provide a fallback method if it does not work
-} catch( e ) {
- makeArray = function( array, results ) {
- var i = 0,
- ret = results || [];
-
- if ( toString.call(array) === "[object Array]" ) {
- Array.prototype.push.apply( ret, array );
-
- } else {
- if ( typeof array.length === "number" ) {
- for ( var l = array.length; i < l; i++ ) {
- ret.push( array[i] );
- }
-
- } else {
- for ( ; array[i]; i++ ) {
- ret.push( array[i] );
- }
- }
- }
-
- return ret;
- };
-}
-
-var sortOrder, siblingCheck;
-
-if ( document.documentElement.compareDocumentPosition ) {
- sortOrder = function( a, b ) {
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
-
- if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
- return a.compareDocumentPosition ? -1 : 1;
- }
-
- return a.compareDocumentPosition(b) & 4 ? -1 : 1;
- };
-
-} else {
- sortOrder = function( a, b ) {
- // The nodes are identical, we can exit early
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
-
- // Fallback to using sourceIndex (in IE) if it's available on both nodes
- } else if ( a.sourceIndex && b.sourceIndex ) {
- return a.sourceIndex - b.sourceIndex;
- }
-
- var al, bl,
- ap = [],
- bp = [],
- aup = a.parentNode,
- bup = b.parentNode,
- cur = aup;
-
- // If the nodes are siblings (or identical) we can do a quick check
- if ( aup === bup ) {
- return siblingCheck( a, b );
-
- // If no parents were found then the nodes are disconnected
- } else if ( !aup ) {
- return -1;
-
- } else if ( !bup ) {
- return 1;
- }
-
- // Otherwise they're somewhere else in the tree so we need
- // to build up a full list of the parentNodes for comparison
- while ( cur ) {
- ap.unshift( cur );
- cur = cur.parentNode;
- }
-
- cur = bup;
-
- while ( cur ) {
- bp.unshift( cur );
- cur = cur.parentNode;
- }
-
- al = ap.length;
- bl = bp.length;
-
- // Start walking down the tree looking for a discrepancy
- for ( var i = 0; i < al && i < bl; i++ ) {
- if ( ap[i] !== bp[i] ) {
- return siblingCheck( ap[i], bp[i] );
- }
- }
-
- // We ended someplace up the tree so do a sibling check
- return i === al ?
- siblingCheck( a, bp[i], -1 ) :
- siblingCheck( ap[i], b, 1 );
- };
-
- siblingCheck = function( a, b, ret ) {
- if ( a === b ) {
- return ret;
- }
-
- var cur = a.nextSibling;
-
- while ( cur ) {
- if ( cur === b ) {
- return -1;
- }
-
- cur = cur.nextSibling;
- }
-
- return 1;
- };
-}
-
-// Check to see if the browser returns elements by name when
-// querying by getElementById (and provide a workaround)
-(function(){
- // We're going to inject a fake input element with a specified name
- var form = document.createElement("div"),
- id = "script" + (new Date()).getTime(),
- root = document.documentElement;
-
- form.innerHTML = "<a name='" + id + "'/>";
-
- // Inject it into the root element, check its status, and remove it quickly
- root.insertBefore( form, root.firstChild );
-
- // The workaround has to do additional checks after a getElementById
- // Which slows things down for other browsers (hence the branching)
- if ( document.getElementById( id ) ) {
- Expr.find.ID = function( match, context, isXML ) {
- if ( typeof context.getElementById !== "undefined" && !isXML ) {
- var m = context.getElementById(match[1]);
-
- return m ?
- m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
- [m] :
- undefined :
- [];
- }
- };
-
- Expr.filter.ID = function( elem, match ) {
- var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
-
- return elem.nodeType === 1 && node && node.nodeValue === match;
- };
- }
-
- root.removeChild( form );
-
- // release memory in IE
- root = form = null;
-})();
-
-(function(){
- // Check to see if the browser returns only elements
- // when doing getElementsByTagName("*")
-
- // Create a fake element
- var div = document.createElement("div");
- div.appendChild( document.createComment("") );
-
- // Make sure no comments are found
- if ( div.getElementsByTagName("*").length > 0 ) {
- Expr.find.TAG = function( match, context ) {
- var results = context.getElementsByTagName( match[1] );
-
- // Filter out possible comments
- if ( match[1] === "*" ) {
- var tmp = [];
-
- for ( var i = 0; results[i]; i++ ) {
- if ( results[i].nodeType === 1 ) {
- tmp.push( results[i] );
- }
- }
-
- results = tmp;
- }
-
- return results;
- };
- }
-
- // Check to see if an attribute returns normalized href attributes
- div.innerHTML = "<a href='#'></a>";
-
- if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
- div.firstChild.getAttribute("href") !== "#" ) {
-
- Expr.attrHandle.href = function( elem ) {
- return elem.getAttribute( "href", 2 );
- };
- }
-
- // release memory in IE
- div = null;
-})();
-
-if ( document.querySelectorAll ) {
- (function(){
- var oldSizzle = Sizzle,
- div = document.createElement("div"),
- id = "__sizzle__";
-
- div.innerHTML = "<p class='TEST'></p>";
-
- // Safari can't handle uppercase or unicode characters when
- // in quirks mode.
- if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
- return;
- }
-
- Sizzle = function( query, context, extra, seed ) {
- context = context || document;
-
- // Only use querySelectorAll on non-XML documents
- // (ID selectors don't work in non-HTML documents)
- if ( !seed && !Sizzle.isXML(context) ) {
- // See if we find a selector to speed up
- var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
-
- if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
- // Speed-up: Sizzle("TAG")
- if ( match[1] ) {
- return makeArray( context.getElementsByTagName( query ), extra );
-
- // Speed-up: Sizzle(".CLASS")
- } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
- return makeArray( context.getElementsByClassName( match[2] ), extra );
- }
- }
-
- if ( context.nodeType === 9 ) {
- // Speed-up: Sizzle("body")
- // The body element only exists once, optimize finding it
- if ( query === "body" && context.body ) {
- return makeArray( [ context.body ], extra );
-
- // Speed-up: Sizzle("#ID")
- } else if ( match && match[3] ) {
- var elem = context.getElementById( match[3] );
-
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- if ( elem && elem.parentNode ) {
- // Handle the case where IE and Opera return items
- // by name instead of ID
- if ( elem.id === match[3] ) {
- return makeArray( [ elem ], extra );
- }
-
- } else {
- return makeArray( [], extra );
- }
- }
-
- try {
- return makeArray( context.querySelectorAll(query), extra );
- } catch(qsaError) {}
-
- // qSA works strangely on Element-rooted queries
- // We can work around this by specifying an extra ID on the root
- // and working up from there (Thanks to Andrew Dupont for the technique)
- // IE 8 doesn't work on object elements
- } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
- var oldContext = context,
- old = context.getAttribute( "id" ),
- nid = old || id,
- hasParent = context.parentNode,
- relativeHierarchySelector = /^\s*[+~]/.test( query );
-
- if ( !old ) {
- context.setAttribute( "id", nid );
- } else {
- nid = nid.replace( /'/g, "\\$&" );
- }
- if ( relativeHierarchySelector && hasParent ) {
- context = context.parentNode;
- }
-
- try {
- if ( !relativeHierarchySelector || hasParent ) {
- return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
- }
-
- } catch(pseudoError) {
- } finally {
- if ( !old ) {
- oldContext.removeAttribute( "id" );
- }
- }
- }
- }
-
- return oldSizzle(query, context, extra, seed);
- };
-
- for ( var prop in oldSizzle ) {
- Sizzle[ prop ] = oldSizzle[ prop ];
- }
-
- // release memory in IE
- div = null;
- })();
-}
-
-(function(){
- var html = document.documentElement,
- matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
-
- if ( matches ) {
- // Check to see if it's possible to do matchesSelector
- // on a disconnected node (IE 9 fails this)
- var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
- pseudoWorks = false;
-
- try {
- // This should fail with an exception
- // Gecko does not error, returns false instead
- matches.call( document.documentElement, "[test!='']:sizzle" );
-
- } catch( pseudoError ) {
- pseudoWorks = true;
- }
-
- Sizzle.matchesSelector = function( node, expr ) {
- // Make sure that attribute selectors are quoted
- expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
-
- if ( !Sizzle.isXML( node ) ) {
- try {
- if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
- var ret = matches.call( node, expr );
-
- // IE 9's matchesSelector returns false on disconnected nodes
- if ( ret || !disconnectedMatch ||
- // As well, disconnected nodes are said to be in a document
- // fragment in IE 9, so check for that
- node.document && node.document.nodeType !== 11 ) {
- return ret;
- }
- }
- } catch(e) {}
- }
-
- return Sizzle(expr, null, null, [node]).length > 0;
- };
- }
-})();
-
-(function(){
- var div = document.createElement("div");
-
- div.innerHTML = "<div class='test e'></div><div class='test'></div>";
-
- // Opera can't find a second classname (in 9.6)
- // Also, make sure that getElementsByClassName actually exists
- if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
- return;
- }
-
- // Safari caches class attributes, doesn't catch changes (in 3.2)
- div.lastChild.className = "e";
-
- if ( div.getElementsByClassName("e").length === 1 ) {
- return;
- }
-
- Expr.order.splice(1, 0, "CLASS");
- Expr.find.CLASS = function( match, context, isXML ) {
- if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
- return context.getElementsByClassName(match[1]);
- }
- };
-
- // release memory in IE
- div = null;
-})();
-
-function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
- for ( var i = 0, l = checkSet.length; i < l; i++ ) {
- var elem = checkSet[i];
-
- if ( elem ) {
- var match = false;
-
- elem = elem[dir];
-
- while ( elem ) {
- if ( elem[ expando ] === doneName ) {
- match = checkSet[elem.sizset];
- break;
- }
-
- if ( elem.nodeType === 1 && !isXML ){
- elem[ expando ] = doneName;
- elem.sizset = i;
- }
-
- if ( elem.nodeName.toLowerCase() === cur ) {
- match = elem;
- break;
- }
-
- elem = elem[dir];
- }
-
- checkSet[i] = match;
- }
- }
-}
-
-function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
- for ( var i = 0, l = checkSet.length; i < l; i++ ) {
- var elem = checkSet[i];
-
- if ( elem ) {
- var match = false;
-
- elem = elem[dir];
-
- while ( elem ) {
- if ( elem[ expando ] === doneName ) {
- match = checkSet[elem.sizset];
- break;
- }
-
- if ( elem.nodeType === 1 ) {
- if ( !isXML ) {
- elem[ expando ] = doneName;
- elem.sizset = i;
- }
-
- if ( typeof cur !== "string" ) {
- if ( elem === cur ) {
- match = true;
- break;
- }
-
- } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
- match = elem;
- break;
- }
- }
-
- elem = elem[dir];
- }
-
- checkSet[i] = match;
- }
- }
-}
-
-if ( document.documentElement.contains ) {
- Sizzle.contains = function( a, b ) {
- return a !== b && (a.contains ? a.contains(b) : true);
- };
-
-} else if ( document.documentElement.compareDocumentPosition ) {
- Sizzle.contains = function( a, b ) {
- return !!(a.compareDocumentPosition(b) & 16);
- };
-
-} else {
- Sizzle.contains = function() {
- return false;
- };
-}
-
-Sizzle.isXML = function( elem ) {
- // documentElement is verified for cases where it doesn't yet exist
- // (such as loading iframes in IE - #4833)
- var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
-
- return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-var posProcess = function( selector, context, seed ) {
- var match,
- tmpSet = [],
- later = "",
- root = context.nodeType ? [context] : context;
-
- // Position selectors must be done after the filter
- // And so must :not(positional) so we move all PSEUDOs to the end
- while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
- later += match[0];
- selector = selector.replace( Expr.match.PSEUDO, "" );
- }
-
- selector = Expr.relative[selector] ? selector + "*" : selector;
-
- for ( var i = 0, l = root.length; i < l; i++ ) {
- Sizzle( selector, root[i], tmpSet, seed );
- }
-
- return Sizzle.filter( later, tmpSet );
-};
-
-// EXPOSE
-// Override sizzle attribute retrieval
-Sizzle.attr = jQuery.attr;
-Sizzle.selectors.attrMap = {};
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.filters;
-jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-
-})();
-
-
-var runtil = /Until$/,
- rparentsprev = /^(?:parents|prevUntil|prevAll)/,
- // Note: This RegExp should be improved, or likely pulled from Sizzle
- rmultiselector = /,/,
- isSimple = /^.[^:#\[\.,]*$/,
- slice = Array.prototype.slice,
- POS = jQuery.expr.match.globalPOS,
- // methods guaranteed to produce a unique set when starting from a unique set
- guaranteedUnique = {
- children: true,
- contents: true,
- next: true,
- prev: true
- };
-
-jQuery.fn.extend({
- find: function( selector ) {
- var self = this,
- i, l;
-
- if ( typeof selector !== "string" ) {
- return jQuery( selector ).filter(function() {
- for ( i = 0, l = self.length; i < l; i++ ) {
- if ( jQuery.contains( self[ i ], this ) ) {
- return true;
- }
- }
- });
- }
-
- var ret = this.pushStack( "", "find", selector ),
- length, n, r;
-
- for ( i = 0, l = this.length; i < l; i++ ) {
- length = ret.length;
- jQuery.find( selector, this[i], ret );
-
- if ( i > 0 ) {
- // Make sure that the results are unique
- for ( n = length; n < ret.length; n++ ) {
- for ( r = 0; r < length; r++ ) {
- if ( ret[r] === ret[n] ) {
- ret.splice(n--, 1);
- break;
- }
- }
- }
- }
- }
-
- return ret;
- },
-
- has: function( target ) {
- var targets = jQuery( target );
- return this.filter(function() {
- for ( var i = 0, l = targets.length; i < l; i++ ) {
- if ( jQuery.contains( this, targets[i] ) ) {
- return true;
- }
- }
- });
- },
-
- not: function( selector ) {
- return this.pushStack( winnow(this, selector, false), "not", selector);
- },
-
- filter: function( selector ) {
- return this.pushStack( winnow(this, selector, true), "filter", selector );
- },
-
- is: function( selector ) {
- return !!selector && (
- typeof selector === "string" ?
- // If this is a positional selector, check membership in the returned set
- // so $("p:first").is("p:last") won't return true for a doc with two "p".
- POS.test( selector ) ?
- jQuery( selector, this.context ).index( this[0] ) >= 0 :
- jQuery.filter( selector, this ).length > 0 :
- this.filter( selector ).length > 0 );
- },
-
- closest: function( selectors, context ) {
- var ret = [], i, l, cur = this[0];
-
- // Array (deprecated as of jQuery 1.7)
- if ( jQuery.isArray( selectors ) ) {
- var level = 1;
-
- while ( cur && cur.ownerDocument && cur !== context ) {
- for ( i = 0; i < selectors.length; i++ ) {
-
- if ( jQuery( cur ).is( selectors[ i ] ) ) {
- ret.push({ selector: selectors[ i ], elem: cur, level: level });
- }
- }
-
- cur = cur.parentNode;
- level++;
- }
-
- return ret;
- }
-
- // String
- var pos = POS.test( selectors ) || typeof selectors !== "string" ?
- jQuery( selectors, context || this.context ) :
- 0;
-
- for ( i = 0, l = this.length; i < l; i++ ) {
- cur = this[i];
-
- while ( cur ) {
- if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
- ret.push( cur );
- break;
-
- } else {
- cur = cur.parentNode;
- if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
- break;
- }
- }
- }
- }
-
- ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
-
- return this.pushStack( ret, "closest", selectors );
- },
-
- // Determine the position of an element within
- // the matched set of elements
- index: function( elem ) {
-
- // No argument, return index in parent
- if ( !elem ) {
- return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
- }
-
- // index in selector
- if ( typeof elem === "string" ) {
- return jQuery.inArray( this[0], jQuery( elem ) );
- }
-
- // Locate the position of the desired element
- return jQuery.inArray(
- // If it receives a jQuery object, the first element is used
- elem.jquery ? elem[0] : elem, this );
- },
-
- add: function( selector, context ) {
- var set = typeof selector === "string" ?
- jQuery( selector, context ) :
- jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
- all = jQuery.merge( this.get(), set );
-
- return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
- all :
- jQuery.unique( all ) );
- },
-
- andSelf: function() {
- return this.add( this.prevObject );
- }
-});
-
-// A painfully simple check to see if an element is disconnected
-// from a document (should be improved, where feasible).
-function isDisconnected( node ) {
- return !node || !node.parentNode || node.parentNode.nodeType === 11;
-}
-
-jQuery.each({
- parent: function( elem ) {
- var parent = elem.parentNode;
- return parent && parent.nodeType !== 11 ? parent : null;
- },
- parents: function( elem ) {
- return jQuery.dir( elem, "parentNode" );
- },
- parentsUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "parentNode", until );
- },
- next: function( elem ) {
- return jQuery.nth( elem, 2, "nextSibling" );
- },
- prev: function( elem ) {
- return jQuery.nth( elem, 2, "previousSibling" );
- },
- nextAll: function( elem ) {
- return jQuery.dir( elem, "nextSibling" );
- },
- prevAll: function( elem ) {
- return jQuery.dir( elem, "previousSibling" );
- },
- nextUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "nextSibling", until );
- },
- prevUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "previousSibling", until );
- },
- siblings: function( elem ) {
- return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
- },
- children: function( elem ) {
- return jQuery.sibling( elem.firstChild );
- },
- contents: function( elem ) {
- return jQuery.nodeName( elem, "iframe" ) ?
- elem.contentDocument || elem.contentWindow.document :
- jQuery.makeArray( elem.childNodes );
- }
-}, function( name, fn ) {
- jQuery.fn[ name ] = function( until, selector ) {
- var ret = jQuery.map( this, fn, until );
-
- if ( !runtil.test( name ) ) {
- selector = until;
- }
-
- if ( selector && typeof selector === "string" ) {
- ret = jQuery.filter( selector, ret );
- }
-
- ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
-
- if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
- ret = ret.reverse();
- }
-
- return this.pushStack( ret, name, slice.call( arguments ).join(",") );
- };
-});
-
-jQuery.extend({
- filter: function( expr, elems, not ) {
- if ( not ) {
- expr = ":not(" + expr + ")";
- }
-
- return elems.length === 1 ?
- jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
- jQuery.find.matches(expr, elems);
- },
-
- dir: function( elem, dir, until ) {
- var matched = [],
- cur = elem[ dir ];
-
- while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
- if ( cur.nodeType === 1 ) {
- matched.push( cur );
- }
- cur = cur[dir];
- }
- return matched;
- },
-
- nth: function( cur, result, dir, elem ) {
- result = result || 1;
- var num = 0;
-
- for ( ; cur; cur = cur[dir] ) {
- if ( cur.nodeType === 1 && ++num === result ) {
- break;
- }
- }
-
- return cur;
- },
-
- sibling: function( n, elem ) {
- var r = [];
-
- for ( ; n; n = n.nextSibling ) {
- if ( n.nodeType === 1 && n !== elem ) {
- r.push( n );
- }
- }
-
- return r;
- }
-});
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, keep ) {
-
- // Can't pass null or undefined to indexOf in Firefox 4
- // Set to 0 to skip string check
- qualifier = qualifier || 0;
-
- if ( jQuery.isFunction( qualifier ) ) {
- return jQuery.grep(elements, function( elem, i ) {
- var retVal = !!qualifier.call( elem, i, elem );
- return retVal === keep;
- });
-
- } else if ( qualifier.nodeType ) {
- return jQuery.grep(elements, function( elem, i ) {
- return ( elem === qualifier ) === keep;
- });
-
- } else if ( typeof qualifier === "string" ) {
- var filtered = jQuery.grep(elements, function( elem ) {
- return elem.nodeType === 1;
- });
-
- if ( isSimple.test( qualifier ) ) {
- return jQuery.filter(qualifier, filtered, !keep);
- } else {
- qualifier = jQuery.filter( qualifier, filtered );
- }
- }
-
- return jQuery.grep(elements, function( elem, i ) {
- return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;
- });
-}
-
-
-
-
-function createSafeFragment( document ) {
- var list = nodeNames.split( "|" ),
- safeFrag = document.createDocumentFragment();
-
- if ( safeFrag.createElement ) {
- while ( list.length ) {
- safeFrag.createElement(
- list.pop()
- );
- }
- }
- return safeFrag;
-}
-
-var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
- "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
- rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
- rleadingWhitespace = /^\s+/,
- rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
- rtagName = /<([\w:]+)/,
- rtbody = /<tbody/i,
- rhtml = /<|&#?\w+;/,
- rnoInnerhtml = /<(?:script|style)/i,
- rnocache = /<(?:script|object|embed|option|style)/i,
- rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
- // checked="checked" or checked
- rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
- rscriptType = /\/(java|ecma)script/i,
- rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
- wrapMap = {
- option: [ 1, "<select multiple='multiple'>", "</select>" ],
- legend: [ 1, "<fieldset>", "</fieldset>" ],
- thead: [ 1, "<table>", "</table>" ],
- tr: [ 2, "<table><tbody>", "</tbody></table>" ],
- td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
- col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
- area: [ 1, "<map>", "</map>" ],
- _default: [ 0, "", "" ]
- },
- safeFragment = createSafeFragment( document );
-
-wrapMap.optgroup = wrapMap.option;
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-// IE can't serialize <link> and <script> tags normally
-if ( !jQuery.support.htmlSerialize ) {
- wrapMap._default = [ 1, "div<div>", "</div>" ];
-}
-
-jQuery.fn.extend({
- text: function( value ) {
- return jQuery.access( this, function( value ) {
- return value === undefined ?
- jQuery.text( this ) :
- this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
- }, null, value, arguments.length );
- },
-
- wrapAll: function( html ) {
- if ( jQuery.isFunction( html ) ) {
- return this.each(function(i) {
- jQuery(this).wrapAll( html.call(this, i) );
- });
- }
-
- if ( this[0] ) {
- // The elements to wrap the target around
- var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
-
- if ( this[0].parentNode ) {
- wrap.insertBefore( this[0] );
- }
-
- wrap.map(function() {
- var elem = this;
-
- while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
- elem = elem.firstChild;
- }
-
- return elem;
- }).append( this );
- }
-
- return this;
- },
-
- wrapInner: function( html ) {
- if ( jQuery.isFunction( html ) ) {
- return this.each(function(i) {
- jQuery(this).wrapInner( html.call(this, i) );
- });
- }
-
- return this.each(function() {
- var self = jQuery( this ),
- contents = self.contents();
-
- if ( contents.length ) {
- contents.wrapAll( html );
-
- } else {
- self.append( html );
- }
- });
- },
-
- wrap: function( html ) {
- var isFunction = jQuery.isFunction( html );
-
- return this.each(function(i) {
- jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
- });
- },
-
- unwrap: function() {
- return this.parent().each(function() {
- if ( !jQuery.nodeName( this, "body" ) ) {
- jQuery( this ).replaceWith( this.childNodes );
- }
- }).end();
- },
-
- append: function() {
- return this.domManip(arguments, true, function( elem ) {
- if ( this.nodeType === 1 ) {
- this.appendChild( elem );
- }
- });
- },
-
- prepend: function() {
- return this.domManip(arguments, true, function( elem ) {
- if ( this.nodeType === 1 ) {
- this.insertBefore( elem, this.firstChild );
- }
- });
- },
-
- before: function() {
- if ( this[0] && this[0].parentNode ) {
- return this.domManip(arguments, false, function( elem ) {
- this.parentNode.insertBefore( elem, this );
- });
- } else if ( arguments.length ) {
- var set = jQuery.clean( arguments );
- set.push.apply( set, this.toArray() );
- return this.pushStack( set, "before", arguments );
- }
- },
-
- after: function() {
- if ( this[0] && this[0].parentNode ) {
- return this.domManip(arguments, false, function( elem ) {
- this.parentNode.insertBefore( elem, this.nextSibling );
- });
- } else if ( arguments.length ) {
- var set = this.pushStack( this, "after", arguments );
- set.push.apply( set, jQuery.clean(arguments) );
- return set;
- }
- },
-
- // keepData is for internal use only--do not document
- remove: function( selector, keepData ) {
- for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
- if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
- if ( !keepData && elem.nodeType === 1 ) {
- jQuery.cleanData( elem.getElementsByTagName("*") );
- jQuery.cleanData( [ elem ] );
- }
-
- if ( elem.parentNode ) {
- elem.parentNode.removeChild( elem );
- }
- }
- }
-
- return this;
- },
-
- empty: function() {
- for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
- // Remove element nodes and prevent memory leaks
- if ( elem.nodeType === 1 ) {
- jQuery.cleanData( elem.getElementsByTagName("*") );
- }
-
- // Remove any remaining nodes
- while ( elem.firstChild ) {
- elem.removeChild( elem.firstChild );
- }
- }
-
- return this;
- },
-
- clone: function( dataAndEvents, deepDataAndEvents ) {
- dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
- deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
-
- return this.map( function () {
- return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
- });
- },
-
- html: function( value ) {
- return jQuery.access( this, function( value ) {
- var elem = this[0] || {},
- i = 0,
- l = this.length;
-
- if ( value === undefined ) {
- return elem.nodeType === 1 ?
- elem.innerHTML.replace( rinlinejQuery, "" ) :
- null;
- }
-
-
- if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
- ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
- !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
-
- value = value.replace( rxhtmlTag, "<$1></$2>" );
-
- try {
- for (; i < l; i++ ) {
- // Remove element nodes and prevent memory leaks
- elem = this[i] || {};
- if ( elem.nodeType === 1 ) {
- jQuery.cleanData( elem.getElementsByTagName( "*" ) );
- elem.innerHTML = value;
- }
- }
-
- elem = 0;
-
- // If using innerHTML throws an exception, use the fallback method
- } catch(e) {}
- }
-
- if ( elem ) {
- this.empty().append( value );
- }
- }, null, value, arguments.length );
- },
-
- replaceWith: function( value ) {
- if ( this[0] && this[0].parentNode ) {
- // Make sure that the elements are removed from the DOM before they are inserted
- // this can help fix replacing a parent with child elements
- if ( jQuery.isFunction( value ) ) {
- return this.each(function(i) {
- var self = jQuery(this), old = self.html();
- self.replaceWith( value.call( this, i, old ) );
- });
- }
-
- if ( typeof value !== "string" ) {
- value = jQuery( value ).detach();
- }
-
- return this.each(function() {
- var next = this.nextSibling,
- parent = this.parentNode;
-
- jQuery( this ).remove();
-
- if ( next ) {
- jQuery(next).before( value );
- } else {
- jQuery(parent).append( value );
- }
- });
- } else {
- return this.length ?
- this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
- this;
- }
- },
-
- detach: function( selector ) {
- return this.remove( selector, true );
- },
-
- domManip: function( args, table, callback ) {
- var results, first, fragment, parent,
- value = args[0],
- scripts = [];
-
- // We can't cloneNode fragments that contain checked, in WebKit
- if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
- return this.each(function() {
- jQuery(this).domManip( args, table, callback, true );
- });
- }
-
- if ( jQuery.isFunction(value) ) {
- return this.each(function(i) {
- var self = jQuery(this);
- args[0] = value.call(this, i, table ? self.html() : undefined);
- self.domManip( args, table, callback );
- });
- }
-
- if ( this[0] ) {
- parent = value && value.parentNode;
-
- // If we're in a fragment, just use that instead of building a new one
- if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
- results = { fragment: parent };
-
- } else {
- results = jQuery.buildFragment( args, this, scripts );
- }
-
- fragment = results.fragment;
-
- if ( fragment.childNodes.length === 1 ) {
- first = fragment = fragment.firstChild;
- } else {
- first = fragment.firstChild;
- }
-
- if ( first ) {
- table = table && jQuery.nodeName( first, "tr" );
-
- for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
- callback.call(
- table ?
- root(this[i], first) :
- this[i],
- // Make sure that we do not leak memory by inadvertently discarding
- // the original fragment (which might have attached data) instead of
- // using it; in addition, use the original fragment object for the last
- // item instead of first because it can end up being emptied incorrectly
- // in certain situations (Bug #8070).
- // Fragments from the fragment cache must always be cloned and never used
- // in place.
- results.cacheable || ( l > 1 && i < lastIndex ) ?
- jQuery.clone( fragment, true, true ) :
- fragment
- );
- }
- }
-
- if ( scripts.length ) {
- jQuery.each( scripts, function( i, elem ) {
- if ( elem.src ) {
- jQuery.ajax({
- type: "GET",
- global: false,
- url: elem.src,
- async: false,
- dataType: "script"
- });
- } else {
- jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
- }
-
- if ( elem.parentNode ) {
- elem.parentNode.removeChild( elem );
- }
- });
- }
- }
-
- return this;
- }
-});
-
-function root( elem, cur ) {
- return jQuery.nodeName(elem, "table") ?
- (elem.getElementsByTagName("tbody")[0] ||
- elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
- elem;
-}
-
-function cloneCopyEvent( src, dest ) {
-
- if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
- return;
- }
-
- var type, i, l,
- oldData = jQuery._data( src ),
- curData = jQuery._data( dest, oldData ),
- events = oldData.events;
-
- if ( events ) {
- delete curData.handle;
- curData.events = {};
-
- for ( type in events ) {
- for ( i = 0, l = events[ type ].length; i < l; i++ ) {
- jQuery.event.add( dest, type, events[ type ][ i ] );
- }
- }
- }
-
- // make the cloned public data object a copy from the original
- if ( curData.data ) {
- curData.data = jQuery.extend( {}, curData.data );
- }
-}
-
-function cloneFixAttributes( src, dest ) {
- var nodeName;
-
- // We do not need to do anything for non-Elements
- if ( dest.nodeType !== 1 ) {
- return;
- }
-
- // clearAttributes removes the attributes, which we don't want,
- // but also removes the attachEvent events, which we *do* want
- if ( dest.clearAttributes ) {
- dest.clearAttributes();
- }
-
- // mergeAttributes, in contrast, only merges back on the
- // original attributes, not the events
- if ( dest.mergeAttributes ) {
- dest.mergeAttributes( src );
- }
-
- nodeName = dest.nodeName.toLowerCase();
-
- // IE6-8 fail to clone children inside object elements that use
- // the proprietary classid attribute value (rather than the type
- // attribute) to identify the type of content to display
- if ( nodeName === "object" ) {
- dest.outerHTML = src.outerHTML;
-
- } else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
- // IE6-8 fails to persist the checked state of a cloned checkbox
- // or radio button. Worse, IE6-7 fail to give the cloned element
- // a checked appearance if the defaultChecked value isn't also set
- if ( src.checked ) {
- dest.defaultChecked = dest.checked = src.checked;
- }
-
- // IE6-7 get confused and end up setting the value of a cloned
- // checkbox/radio button to an empty string instead of "on"
- if ( dest.value !== src.value ) {
- dest.value = src.value;
- }
-
- // IE6-8 fails to return the selected option to the default selected
- // state when cloning options
- } else if ( nodeName === "option" ) {
- dest.selected = src.defaultSelected;
-
- // IE6-8 fails to set the defaultValue to the correct value when
- // cloning other types of input fields
- } else if ( nodeName === "input" || nodeName === "textarea" ) {
- dest.defaultValue = src.defaultValue;
-
- // IE blanks contents when cloning scripts
- } else if ( nodeName === "script" && dest.text !== src.text ) {
- dest.text = src.text;
- }
-
- // Event data gets referenced instead of copied if the expando
- // gets copied too
- dest.removeAttribute( jQuery.expando );
-
- // Clear flags for bubbling special change/submit events, they must
- // be reattached when the newly cloned events are first activated
- dest.removeAttribute( "_submit_attached" );
- dest.removeAttribute( "_change_attached" );
-}
-
-jQuery.buildFragment = function( args, nodes, scripts ) {
- var fragment, cacheable, cacheresults, doc,
- first = args[ 0 ];
-
- // nodes may contain either an explicit document object,
- // a jQuery collection or context object.
- // If nodes[0] contains a valid object to assign to doc
- if ( nodes && nodes[0] ) {
- doc = nodes[0].ownerDocument || nodes[0];
- }
-
- // Ensure that an attr object doesn't incorrectly stand in as a document object
- // Chrome and Firefox seem to allow this to occur and will throw exception
- // Fixes #8950
- if ( !doc.createDocumentFragment ) {
- doc = document;
- }
-
- // Only cache "small" (1/2 KB) HTML strings that are associated with the main document
- // Cloning options loses the selected state, so don't cache them
- // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
- // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
- // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501
- if ( args.length === 1 && typeof first === "string" && first.length < 512 && doc === document &&
- first.charAt(0) === "<" && !rnocache.test( first ) &&
- (jQuery.support.checkClone || !rchecked.test( first )) &&
- (jQuery.support.html5Clone || !rnoshimcache.test( first )) ) {
-
- cacheable = true;
-
- cacheresults = jQuery.fragments[ first ];
- if ( cacheresults && cacheresults !== 1 ) {
- fragment = cacheresults;
- }
- }
-
- if ( !fragment ) {
- fragment = doc.createDocumentFragment();
- jQuery.clean( args, doc, fragment, scripts );
- }
-
- if ( cacheable ) {
- jQuery.fragments[ first ] = cacheresults ? fragment : 1;
- }
-
- return { fragment: fragment, cacheable: cacheable };
-};
-
-jQuery.fragments = {};
-
-jQuery.each({
- appendTo: "append",
- prependTo: "prepend",
- insertBefore: "before",
- insertAfter: "after",
- replaceAll: "replaceWith"
-}, function( name, original ) {
- jQuery.fn[ name ] = function( selector ) {
- var ret = [],
- insert = jQuery( selector ),
- parent = this.length === 1 && this[0].parentNode;
-
- if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
- insert[ original ]( this[0] );
- return this;
-
- } else {
- for ( var i = 0, l = insert.length; i < l; i++ ) {
- var elems = ( i > 0 ? this.clone(true) : this ).get();
- jQuery( insert[i] )[ original ]( elems );
- ret = ret.concat( elems );
- }
-
- return this.pushStack( ret, name, insert.selector );
- }
- };
-});
-
-function getAll( elem ) {
- if ( typeof elem.getElementsByTagName !== "undefined" ) {
- return elem.getElementsByTagName( "*" );
-
- } else if ( typeof elem.querySelectorAll !== "undefined" ) {
- return elem.querySelectorAll( "*" );
-
- } else {
- return [];
- }
-}
-
-// Used in clean, fixes the defaultChecked property
-function fixDefaultChecked( elem ) {
- if ( elem.type === "checkbox" || elem.type === "radio" ) {
- elem.defaultChecked = elem.checked;
- }
-}
-// Finds all inputs and passes them to fixDefaultChecked
-function findInputs( elem ) {
- var nodeName = ( elem.nodeName || "" ).toLowerCase();
- if ( nodeName === "input" ) {
- fixDefaultChecked( elem );
- // Skip scripts, get other children
- } else if ( nodeName !== "script" && typeof elem.getElementsByTagName !== "undefined" ) {
- jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
- }
-}
-
-// Derived From: http://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js
-function shimCloneNode( elem ) {
- var div = document.createElement( "div" );
- safeFragment.appendChild( div );
-
- div.innerHTML = elem.outerHTML;
- return div.firstChild;
-}
-
-jQuery.extend({
- clone: function( elem, dataAndEvents, deepDataAndEvents ) {
- var srcElements,
- destElements,
- i,
- // IE<=8 does not properly clone detached, unknown element nodes
- clone = jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ?
- elem.cloneNode( true ) :
- shimCloneNode( elem );
-
- if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
- (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
- // IE copies events bound via attachEvent when using cloneNode.
- // Calling detachEvent on the clone will also remove the events
- // from the original. In order to get around this, we use some
- // proprietary methods to clear the events. Thanks to MooTools
- // guys for this hotness.
-
- cloneFixAttributes( elem, clone );
-
- // Using Sizzle here is crazy slow, so we use getElementsByTagName instead
- srcElements = getAll( elem );
- destElements = getAll( clone );
-
- // Weird iteration because IE will replace the length property
- // with an element if you are cloning the body and one of the
- // elements on the page has a name or id of "length"
- for ( i = 0; srcElements[i]; ++i ) {
- // Ensure that the destination node is not null; Fixes #9587
- if ( destElements[i] ) {
- cloneFixAttributes( srcElements[i], destElements[i] );
- }
- }
- }
-
- // Copy the events from the original to the clone
- if ( dataAndEvents ) {
- cloneCopyEvent( elem, clone );
-
- if ( deepDataAndEvents ) {
- srcElements = getAll( elem );
- destElements = getAll( clone );
-
- for ( i = 0; srcElements[i]; ++i ) {
- cloneCopyEvent( srcElements[i], destElements[i] );
- }
- }
- }
-
- srcElements = destElements = null;
-
- // Return the cloned set
- return clone;
- },
-
- clean: function( elems, context, fragment, scripts ) {
- var checkScriptType, script, j,
- ret = [];
-
- context = context || document;
-
- // !context.createElement fails in IE with an error but returns typeof 'object'
- if ( typeof context.createElement === "undefined" ) {
- context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
- }
-
- for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
- if ( typeof elem === "number" ) {
- elem += "";
- }
-
- if ( !elem ) {
- continue;
- }
-
- // Convert html string into DOM nodes
- if ( typeof elem === "string" ) {
- if ( !rhtml.test( elem ) ) {
- elem = context.createTextNode( elem );
- } else {
- // Fix "XHTML"-style tags in all browsers
- elem = elem.replace(rxhtmlTag, "<$1></$2>");
-
- // Trim whitespace, otherwise indexOf won't work as expected
- var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(),
- wrap = wrapMap[ tag ] || wrapMap._default,
- depth = wrap[0],
- div = context.createElement("div"),
- safeChildNodes = safeFragment.childNodes,
- remove;
-
- // Append wrapper element to unknown element safe doc fragment
- if ( context === document ) {
- // Use the fragment we've already created for this document
- safeFragment.appendChild( div );
- } else {
- // Use a fragment created with the owner document
- createSafeFragment( context ).appendChild( div );
- }
-
- // Go to html and back, then peel off extra wrappers
- div.innerHTML = wrap[1] + elem + wrap[2];
-
- // Move to the right depth
- while ( depth-- ) {
- div = div.lastChild;
- }
-
- // Remove IE's autoinserted <tbody> from table fragments
- if ( !jQuery.support.tbody ) {
-
- // String was a <table>, *may* have spurious <tbody>
- var hasBody = rtbody.test(elem),
- tbody = tag === "table" && !hasBody ?
- div.firstChild && div.firstChild.childNodes :
-
- // String was a bare <thead> or <tfoot>
- wrap[1] === "<table>" && !hasBody ?
- div.childNodes :
- [];
-
- for ( j = tbody.length - 1; j >= 0 ; --j ) {
- if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
- tbody[ j ].parentNode.removeChild( tbody[ j ] );
- }
- }
- }
-
- // IE completely kills leading whitespace when innerHTML is used
- if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
- div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
- }
-
- elem = div.childNodes;
-
- // Clear elements from DocumentFragment (safeFragment or otherwise)
- // to avoid hoarding elements. Fixes #11356
- if ( div ) {
- div.parentNode.removeChild( div );
-
- // Guard against -1 index exceptions in FF3.6
- if ( safeChildNodes.length > 0 ) {
- remove = safeChildNodes[ safeChildNodes.length - 1 ];
-
- if ( remove && remove.parentNode ) {
- remove.parentNode.removeChild( remove );
- }
- }
- }
- }
- }
-
- // Resets defaultChecked for any radios and checkboxes
- // about to be appended to the DOM in IE 6/7 (#8060)
- var len;
- if ( !jQuery.support.appendChecked ) {
- if ( elem[0] && typeof (len = elem.length) === "number" ) {
- for ( j = 0; j < len; j++ ) {
- findInputs( elem[j] );
- }
- } else {
- findInputs( elem );
- }
- }
-
- if ( elem.nodeType ) {
- ret.push( elem );
- } else {
- ret = jQuery.merge( ret, elem );
- }
- }
-
- if ( fragment ) {
- checkScriptType = function( elem ) {
- return !elem.type || rscriptType.test( elem.type );
- };
- for ( i = 0; ret[i]; i++ ) {
- script = ret[i];
- if ( scripts && jQuery.nodeName( script, "script" ) && (!script.type || rscriptType.test( script.type )) ) {
- scripts.push( script.parentNode ? script.parentNode.removeChild( script ) : script );
-
- } else {
- if ( script.nodeType === 1 ) {
- var jsTags = jQuery.grep( script.getElementsByTagName( "script" ), checkScriptType );
-
- ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
- }
- fragment.appendChild( script );
- }
- }
- }
-
- return ret;
- },
-
- cleanData: function( elems ) {
- var data, id,
- cache = jQuery.cache,
- special = jQuery.event.special,
- deleteExpando = jQuery.support.deleteExpando;
-
- for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
- if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
- continue;
- }
-
- id = elem[ jQuery.expando ];
-
- if ( id ) {
- data = cache[ id ];
-
- if ( data && data.events ) {
- for ( var type in data.events ) {
- if ( special[ type ] ) {
- jQuery.event.remove( elem, type );
-
- // This is a shortcut to avoid jQuery.event.remove's overhead
- } else {
- jQuery.removeEvent( elem, type, data.handle );
- }
- }
-
- // Null the DOM reference to avoid IE6/7/8 leak (#7054)
- if ( data.handle ) {
- data.handle.elem = null;
- }
- }
-
- if ( deleteExpando ) {
- delete elem[ jQuery.expando ];
-
- } else if ( elem.removeAttribute ) {
- elem.removeAttribute( jQuery.expando );
- }
-
- delete cache[ id ];
- }
- }
- }
-});
-
-
-
-
-var ralpha = /alpha\([^)]*\)/i,
- ropacity = /opacity=([^)]*)/,
- // fixed for IE9, see #8346
- rupper = /([A-Z]|^ms)/g,
- rnum = /^[\-+]?(?:\d*\.)?\d+$/i,
- rnumnonpx = /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,
- rrelNum = /^([\-+])=([\-+.\de]+)/,
- rmargin = /^margin/,
-
- cssShow = { position: "absolute", visibility: "hidden", display: "block" },
-
- // order is important!
- cssExpand = [ "Top", "Right", "Bottom", "Left" ],
-
- curCSS,
-
- getComputedStyle,
- currentStyle;
-
-jQuery.fn.css = function( name, value ) {
- return jQuery.access( this, function( elem, name, value ) {
- return value !== undefined ?
- jQuery.style( elem, name, value ) :
- jQuery.css( elem, name );
- }, name, value, arguments.length > 1 );
-};
-
-jQuery.extend({
- // Add in style property hooks for overriding the default
- // behavior of getting and setting a style property
- cssHooks: {
- opacity: {
- get: function( elem, computed ) {
- if ( computed ) {
- // We should always get a number back from opacity
- var ret = curCSS( elem, "opacity" );
- return ret === "" ? "1" : ret;
-
- } else {
- return elem.style.opacity;
- }
- }
- }
- },
-
- // Exclude the following css properties to add px
- cssNumber: {
- "fillOpacity": true,
- "fontWeight": true,
- "lineHeight": true,
- "opacity": true,
- "orphans": true,
- "widows": true,
- "zIndex": true,
- "zoom": true
- },
-
- // Add in properties whose names you wish to fix before
- // setting or getting the value
- cssProps: {
- // normalize float css property
- "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
- },
-
- // Get and set the style property on a DOM Node
- style: function( elem, name, value, extra ) {
- // Don't set styles on text and comment nodes
- if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
- return;
- }
-
- // Make sure that we're working with the right name
- var ret, type, origName = jQuery.camelCase( name ),
- style = elem.style, hooks = jQuery.cssHooks[ origName ];
-
- name = jQuery.cssProps[ origName ] || origName;
-
- // Check if we're setting a value
- if ( value !== undefined ) {
- type = typeof value;
-
- // convert relative number strings (+= or -=) to relative numbers. #7345
- if ( type === "string" && (ret = rrelNum.exec( value )) ) {
- value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) );
- // Fixes bug #9237
- type = "number";
- }
-
- // Make sure that NaN and null values aren't set. See: #7116
- if ( value == null || type === "number" && isNaN( value ) ) {
- return;
- }
-
- // If a number was passed in, add 'px' to the (except for certain CSS properties)
- if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
- value += "px";
- }
-
- // If a hook was provided, use that value, otherwise just set the specified value
- if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
- // Wrapped to prevent IE from throwing errors when 'invalid' values are provided
- // Fixes bug #5509
- try {
- style[ name ] = value;
- } catch(e) {}
- }
-
- } else {
- // If a hook was provided get the non-computed value from there
- if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
- return ret;
- }
-
- // Otherwise just get the value from the style object
- return style[ name ];
- }
- },
-
- css: function( elem, name, extra ) {
- var ret, hooks;
-
- // Make sure that we're working with the right name
- name = jQuery.camelCase( name );
- hooks = jQuery.cssHooks[ name ];
- name = jQuery.cssProps[ name ] || name;
-
- // cssFloat needs a special treatment
- if ( name === "cssFloat" ) {
- name = "float";
- }
-
- // If a hook was provided get the computed value from there
- if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
- return ret;
-
- // Otherwise, if a way to get the computed value exists, use that
- } else if ( curCSS ) {
- return curCSS( elem, name );
- }
- },
-
- // A method for quickly swapping in/out CSS properties to get correct calculations
- swap: function( elem, options, callback ) {
- var old = {},
- ret, name;
-
- // Remember the old values, and insert the new ones
- for ( name in options ) {
- old[ name ] = elem.style[ name ];
- elem.style[ name ] = options[ name ];
- }
-
- ret = callback.call( elem );
-
- // Revert the old values
- for ( name in options ) {
- elem.style[ name ] = old[ name ];
- }
-
- return ret;
- }
-});
-
-// DEPRECATED in 1.3, Use jQuery.css() instead
-jQuery.curCSS = jQuery.css;
-
-if ( document.defaultView && document.defaultView.getComputedStyle ) {
- getComputedStyle = function( elem, name ) {
- var ret, defaultView, computedStyle, width,
- style = elem.style;
-
- name = name.replace( rupper, "-$1" ).toLowerCase();
-
- if ( (defaultView = elem.ownerDocument.defaultView) &&
- (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
-
- ret = computedStyle.getPropertyValue( name );
- if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
- ret = jQuery.style( elem, name );
- }
- }
-
- // A tribute to the "awesome hack by Dean Edwards"
- // WebKit uses "computed value (percentage if specified)" instead of "used value" for margins
- // which is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
- if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) {
- width = style.width;
- style.width = ret;
- ret = computedStyle.width;
- style.width = width;
- }
-
- return ret;
- };
-}
-
-if ( document.documentElement.currentStyle ) {
- currentStyle = function( elem, name ) {
- var left, rsLeft, uncomputed,
- ret = elem.currentStyle && elem.currentStyle[ name ],
- style = elem.style;
-
- // Avoid setting ret to empty string here
- // so we don't default to auto
- if ( ret == null && style && (uncomputed = style[ name ]) ) {
- ret = uncomputed;
- }
-
- // From the awesome hack by Dean Edwards
- // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
- // If we're not dealing with a regular pixel number
- // but a number that has a weird ending, we need to convert it to pixels
- if ( rnumnonpx.test( ret ) ) {
-
- // Remember the original values
- left = style.left;
- rsLeft = elem.runtimeStyle && elem.runtimeStyle.left;
-
- // Put in the new values to get a computed value out
- if ( rsLeft ) {
- elem.runtimeStyle.left = elem.currentStyle.left;
- }
- style.left = name === "fontSize" ? "1em" : ret;
- ret = style.pixelLeft + "px";
-
- // Revert the changed values
- style.left = left;
- if ( rsLeft ) {
- elem.runtimeStyle.left = rsLeft;
- }
- }
-
- return ret === "" ? "auto" : ret;
- };
-}
-
-curCSS = getComputedStyle || currentStyle;
-
-function getWidthOrHeight( elem, name, extra ) {
-
- // Start with offset property
- var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
- i = name === "width" ? 1 : 0,
- len = 4;
-
- if ( val > 0 ) {
- if ( extra !== "border" ) {
- for ( ; i < len; i += 2 ) {
- if ( !extra ) {
- val -= parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0;
- }
- if ( extra === "margin" ) {
- val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ] ) ) || 0;
- } else {
- val -= parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
- }
- }
- }
-
- return val + "px";
- }
-
- // Fall back to computed then uncomputed css if necessary
- val = curCSS( elem, name );
- if ( val < 0 || val == null ) {
- val = elem.style[ name ];
- }
-
- // Computed unit is not pixels. Stop here and return.
- if ( rnumnonpx.test(val) ) {
- return val;
- }
-
- // Normalize "", auto, and prepare for extra
- val = parseFloat( val ) || 0;
-
- // Add padding, border, margin
- if ( extra ) {
- for ( ; i < len; i += 2 ) {
- val += parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0;
- if ( extra !== "padding" ) {
- val += parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
- }
- if ( extra === "margin" ) {
- val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ]) ) || 0;
- }
- }
- }
-
- return val + "px";
-}
-
-jQuery.each([ "height", "width" ], function( i, name ) {
- jQuery.cssHooks[ name ] = {
- get: function( elem, computed, extra ) {
- if ( computed ) {
- if ( elem.offsetWidth !== 0 ) {
- return getWidthOrHeight( elem, name, extra );
- } else {
- return jQuery.swap( elem, cssShow, function() {
- return getWidthOrHeight( elem, name, extra );
- });
- }
- }
- },
-
- set: function( elem, value ) {
- return rnum.test( value ) ?
- value + "px" :
- value;
- }
- };
-});
-
-if ( !jQuery.support.opacity ) {
- jQuery.cssHooks.opacity = {
- get: function( elem, computed ) {
- // IE uses filters for opacity
- return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
- ( parseFloat( RegExp.$1 ) / 100 ) + "" :
- computed ? "1" : "";
- },
-
- set: function( elem, value ) {
- var style = elem.style,
- currentStyle = elem.currentStyle,
- opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
- filter = currentStyle && currentStyle.filter || style.filter || "";
-
- // IE has trouble with opacity if it does not have layout
- // Force it by setting the zoom level
- style.zoom = 1;
-
- // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
- if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
-
- // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
- // if "filter:" is present at all, clearType is disabled, we want to avoid this
- // style.removeAttribute is IE Only, but so apparently is this code path...
- style.removeAttribute( "filter" );
-
- // if there there is no filter style applied in a css rule, we are done
- if ( currentStyle && !currentStyle.filter ) {
- return;
- }
- }
-
- // otherwise, set new filter values
- style.filter = ralpha.test( filter ) ?
- filter.replace( ralpha, opacity ) :
- filter + " " + opacity;
- }
- };
-}
-
-jQuery(function() {
- // This hook cannot be added until DOM ready because the support test
- // for it is not run until after DOM ready
- if ( !jQuery.support.reliableMarginRight ) {
- jQuery.cssHooks.marginRight = {
- get: function( elem, computed ) {
- // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
- // Work around by temporarily setting element display to inline-block
- return jQuery.swap( elem, { "display": "inline-block" }, function() {
- if ( computed ) {
- return curCSS( elem, "margin-right" );
- } else {
- return elem.style.marginRight;
- }
- });
- }
- };
- }
-});
-
-if ( jQuery.expr && jQuery.expr.filters ) {
- jQuery.expr.filters.hidden = function( elem ) {
- var width = elem.offsetWidth,
- height = elem.offsetHeight;
-
- return ( width === 0 && height === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
- };
-
- jQuery.expr.filters.visible = function( elem ) {
- return !jQuery.expr.filters.hidden( elem );
- };
-}
-
-// These hooks are used by animate to expand properties
-jQuery.each({
- margin: "",
- padding: "",
- border: "Width"
-}, function( prefix, suffix ) {
-
- jQuery.cssHooks[ prefix + suffix ] = {
- expand: function( value ) {
- var i,
-
- // assumes a single number if not a string
- parts = typeof value === "string" ? value.split(" ") : [ value ],
- expanded = {};
-
- for ( i = 0; i < 4; i++ ) {
- expanded[ prefix + cssExpand[ i ] + suffix ] =
- parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
- }
-
- return expanded;
- }
- };
-});
-
-
-
-
-var r20 = /%20/g,
- rbracket = /\[\]$/,
- rCRLF = /\r?\n/g,
- rhash = /#.*$/,
- rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
- rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
- // #7653, #8125, #8152: local protocol detection
- rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
- rnoContent = /^(?:GET|HEAD)$/,
- rprotocol = /^\/\//,
- rquery = /\?/,
- rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
- rselectTextarea = /^(?:select|textarea)/i,
- rspacesAjax = /\s+/,
- rts = /([?&])_=[^&]*/,
- rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
-
- // Keep a copy of the old load method
- _load = jQuery.fn.load,
-
- /* Prefilters
- * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
- * 2) These are called:
- * - BEFORE asking for a transport
- * - AFTER param serialization (s.data is a string if s.processData is true)
- * 3) key is the dataType
- * 4) the catchall symbol "*" can be used
- * 5) execution will start with transport dataType and THEN continue down to "*" if needed
- */
- prefilters = {},
-
- /* Transports bindings
- * 1) key is the dataType
- * 2) the catchall symbol "*" can be used
- * 3) selection will start with transport dataType and THEN go to "*" if needed
- */
- transports = {},
-
- // Document location
- ajaxLocation,
-
- // Document location segments
- ajaxLocParts,
-
- // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
- allTypes = ["*/"] + ["*"];
-
-// #8138, IE may throw an exception when accessing
-// a field from window.location if document.domain has been set
-try {
- ajaxLocation = location.href;
-} catch( e ) {
- // Use the href attribute of an A element
- // since IE will modify it given document.location
- ajaxLocation = document.createElement( "a" );
- ajaxLocation.href = "";
- ajaxLocation = ajaxLocation.href;
-}
-
-// Segment location into parts
-ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
-
-// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
-function addToPrefiltersOrTransports( structure ) {
-
- // dataTypeExpression is optional and defaults to "*"
- return function( dataTypeExpression, func ) {
-
- if ( typeof dataTypeExpression !== "string" ) {
- func = dataTypeExpression;
- dataTypeExpression = "*";
- }
-
- if ( jQuery.isFunction( func ) ) {
- var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
- i = 0,
- length = dataTypes.length,
- dataType,
- list,
- placeBefore;
-
- // For each dataType in the dataTypeExpression
- for ( ; i < length; i++ ) {
- dataType = dataTypes[ i ];
- // We control if we're asked to add before
- // any existing element
- placeBefore = /^\+/.test( dataType );
- if ( placeBefore ) {
- dataType = dataType.substr( 1 ) || "*";
- }
- list = structure[ dataType ] = structure[ dataType ] || [];
- // then we add to the structure accordingly
- list[ placeBefore ? "unshift" : "push" ]( func );
- }
- }
- };
-}
-
-// Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
- dataType /* internal */, inspected /* internal */ ) {
-
- dataType = dataType || options.dataTypes[ 0 ];
- inspected = inspected || {};
-
- inspected[ dataType ] = true;
-
- var list = structure[ dataType ],
- i = 0,
- length = list ? list.length : 0,
- executeOnly = ( structure === prefilters ),
- selection;
-
- for ( ; i < length && ( executeOnly || !selection ); i++ ) {
- selection = list[ i ]( options, originalOptions, jqXHR );
- // If we got redirected to another dataType
- // we try there if executing only and not done already
- if ( typeof selection === "string" ) {
- if ( !executeOnly || inspected[ selection ] ) {
- selection = undefined;
- } else {
- options.dataTypes.unshift( selection );
- selection = inspectPrefiltersOrTransports(
- structure, options, originalOptions, jqXHR, selection, inspected );
- }
- }
- }
- // If we're only executing or nothing was selected
- // we try the catchall dataType if not done already
- if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
- selection = inspectPrefiltersOrTransports(
- structure, options, originalOptions, jqXHR, "*", inspected );
- }
- // unnecessary when only executing (prefilters)
- // but it'll be ignored by the caller in that case
- return selection;
-}
-
-// A special extend for ajax options
-// that takes "flat" options (not to be deep extended)
-// Fixes #9887
-function ajaxExtend( target, src ) {
- var key, deep,
- flatOptions = jQuery.ajaxSettings.flatOptions || {};
- for ( key in src ) {
- if ( src[ key ] !== undefined ) {
- ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
- }
- }
- if ( deep ) {
- jQuery.extend( true, target, deep );
- }
-}
-
-jQuery.fn.extend({
- load: function( url, params, callback ) {
- if ( typeof url !== "string" && _load ) {
- return _load.apply( this, arguments );
-
- // Don't do a request if no elements are being requested
- } else if ( !this.length ) {
- return this;
- }
-
- var off = url.indexOf( " " );
- if ( off >= 0 ) {
- var selector = url.slice( off, url.length );
- url = url.slice( 0, off );
- }
-
- // Default to a GET request
- var type = "GET";
-
- // If the second parameter was provided
- if ( params ) {
- // If it's a function
- if ( jQuery.isFunction( params ) ) {
- // We assume that it's the callback
- callback = params;
- params = undefined;
-
- // Otherwise, build a param string
- } else if ( typeof params === "object" ) {
- params = jQuery.param( params, jQuery.ajaxSettings.traditional );
- type = "POST";
- }
- }
-
- var self = this;
-
- // Request the remote document
- jQuery.ajax({
- url: url,
- type: type,
- dataType: "html",
- data: params,
- // Complete callback (responseText is used internally)
- complete: function( jqXHR, status, responseText ) {
- // Store the response as specified by the jqXHR object
- responseText = jqXHR.responseText;
- // If successful, inject the HTML into all the matched elements
- if ( jqXHR.isResolved() ) {
- // #4825: Get the actual response in case
- // a dataFilter is present in ajaxSettings
- jqXHR.done(function( r ) {
- responseText = r;
- });
- // See if a selector was specified
- self.html( selector ?
- // Create a dummy div to hold the results
- jQuery("<div>")
- // inject the contents of the document in, removing the scripts
- // to avoid any 'Permission Denied' errors in IE
- .append(responseText.replace(rscript, ""))
-
- // Locate the specified elements
- .find(selector) :
-
- // If not, just inject the full result
- responseText );
- }
-
- if ( callback ) {
- self.each( callback, [ responseText, status, jqXHR ] );
- }
- }
- });
-
- return this;
- },
-
- serialize: function() {
- return jQuery.param( this.serializeArray() );
- },
-
- serializeArray: function() {
- return this.map(function(){
- return this.elements ? jQuery.makeArray( this.elements ) : this;
- })
- .filter(function(){
- return this.name && !this.disabled &&
- ( this.checked || rselectTextarea.test( this.nodeName ) ||
- rinput.test( this.type ) );
- })
- .map(function( i, elem ){
- var val = jQuery( this ).val();
-
- return val == null ?
- null :
- jQuery.isArray( val ) ?
- jQuery.map( val, function( val, i ){
- return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
- }) :
- { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
- }).get();
- }
-});
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
- jQuery.fn[ o ] = function( f ){
- return this.on( o, f );
- };
-});
-
-jQuery.each( [ "get", "post" ], function( i, method ) {
- jQuery[ method ] = function( url, data, callback, type ) {
- // shift arguments if data argument was omitted
- if ( jQuery.isFunction( data ) ) {
- type = type || callback;
- callback = data;
- data = undefined;
- }
-
- return jQuery.ajax({
- type: method,
- url: url,
- data: data,
- success: callback,
- dataType: type
- });
- };
-});
-
-jQuery.extend({
-
- getScript: function( url, callback ) {
- return jQuery.get( url, undefined, callback, "script" );
- },
-
- getJSON: function( url, data, callback ) {
- return jQuery.get( url, data, callback, "json" );
- },
-
- // Creates a full fledged settings object into target
- // with both ajaxSettings and settings fields.
- // If target is omitted, writes into ajaxSettings.
- ajaxSetup: function( target, settings ) {
- if ( settings ) {
- // Building a settings object
- ajaxExtend( target, jQuery.ajaxSettings );
- } else {
- // Extending ajaxSettings
- settings = target;
- target = jQuery.ajaxSettings;
- }
- ajaxExtend( target, settings );
- return target;
- },
-
- ajaxSettings: {
- url: ajaxLocation,
- isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
- global: true,
- type: "GET",
- contentType: "application/x-www-form-urlencoded; charset=UTF-8",
- processData: true,
- async: true,
- /*
- timeout: 0,
- data: null,
- dataType: null,
- username: null,
- password: null,
- cache: null,
- traditional: false,
- headers: {},
- */
-
- accepts: {
- xml: "application/xml, text/xml",
- html: "text/html",
- text: "text/plain",
- json: "application/json, text/javascript",
- "*": allTypes
- },
-
- contents: {
- xml: /xml/,
- html: /html/,
- json: /json/
- },
-
- responseFields: {
- xml: "responseXML",
- text: "responseText"
- },
-
- // List of data converters
- // 1) key format is "source_type destination_type" (a single space in-between)
- // 2) the catchall symbol "*" can be used for source_type
- converters: {
-
- // Convert anything to text
- "* text": window.String,
-
- // Text to html (true = no transformation)
- "text html": true,
-
- // Evaluate text as a json expression
- "text json": jQuery.parseJSON,
-
- // Parse text as xml
- "text xml": jQuery.parseXML
- },
-
- // For options that shouldn't be deep extended:
- // you can add your own custom options here if
- // and when you create one that shouldn't be
- // deep extended (see ajaxExtend)
- flatOptions: {
- context: true,
- url: true
- }
- },
-
- ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
- ajaxTransport: addToPrefiltersOrTransports( transports ),
-
- // Main method
- ajax: function( url, options ) {
-
- // If url is an object, simulate pre-1.5 signature
- if ( typeof url === "object" ) {
- options = url;
- url = undefined;
- }
-
- // Force options to be an object
- options = options || {};
-
- var // Create the final options object
- s = jQuery.ajaxSetup( {}, options ),
- // Callbacks context
- callbackContext = s.context || s,
- // Context for global events
- // It's the callbackContext if one was provided in the options
- // and if it's a DOM node or a jQuery collection
- globalEventContext = callbackContext !== s &&
- ( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
- jQuery( callbackContext ) : jQuery.event,
- // Deferreds
- deferred = jQuery.Deferred(),
- completeDeferred = jQuery.Callbacks( "once memory" ),
- // Status-dependent callbacks
- statusCode = s.statusCode || {},
- // ifModified key
- ifModifiedKey,
- // Headers (they are sent all at once)
- requestHeaders = {},
- requestHeadersNames = {},
- // Response headers
- responseHeadersString,
- responseHeaders,
- // transport
- transport,
- // timeout handle
- timeoutTimer,
- // Cross-domain detection vars
- parts,
- // The jqXHR state
- state = 0,
- // To know if global events are to be dispatched
- fireGlobals,
- // Loop variable
- i,
- // Fake xhr
- jqXHR = {
-
- readyState: 0,
-
- // Caches the header
- setRequestHeader: function( name, value ) {
- if ( !state ) {
- var lname = name.toLowerCase();
- name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
- requestHeaders[ name ] = value;
- }
- return this;
- },
-
- // Raw string
- getAllResponseHeaders: function() {
- return state === 2 ? responseHeadersString : null;
- },
-
- // Builds headers hashtable if needed
- getResponseHeader: function( key ) {
- var match;
- if ( state === 2 ) {
- if ( !responseHeaders ) {
- responseHeaders = {};
- while( ( match = rheaders.exec( responseHeadersString ) ) ) {
- responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
- }
- }
- match = responseHeaders[ key.toLowerCase() ];
- }
- return match === undefined ? null : match;
- },
-
- // Overrides response content-type header
- overrideMimeType: function( type ) {
- if ( !state ) {
- s.mimeType = type;
- }
- return this;
- },
-
- // Cancel the request
- abort: function( statusText ) {
- statusText = statusText || "abort";
- if ( transport ) {
- transport.abort( statusText );
- }
- done( 0, statusText );
- return this;
- }
- };
-
- // Callback for when everything is done
- // It is defined here because jslint complains if it is declared
- // at the end of the function (which would be more logical and readable)
- function done( status, nativeStatusText, responses, headers ) {
-
- // Called once
- if ( state === 2 ) {
- return;
- }
-
- // State is "done" now
- state = 2;
-
- // Clear timeout if it exists
- if ( timeoutTimer ) {
- clearTimeout( timeoutTimer );
- }
-
- // Dereference transport for early garbage collection
- // (no matter how long the jqXHR object will be used)
- transport = undefined;
-
- // Cache response headers
- responseHeadersString = headers || "";
-
- // Set readyState
- jqXHR.readyState = status > 0 ? 4 : 0;
-
- var isSuccess,
- success,
- error,
- statusText = nativeStatusText,
- response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
- lastModified,
- etag;
-
- // If successful, handle type chaining
- if ( status >= 200 && status < 300 || status === 304 ) {
-
- // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
- if ( s.ifModified ) {
-
- if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
- jQuery.lastModified[ ifModifiedKey ] = lastModified;
- }
- if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
- jQuery.etag[ ifModifiedKey ] = etag;
- }
- }
-
- // If not modified
- if ( status === 304 ) {
-
- statusText = "notmodified";
- isSuccess = true;
-
- // If we have data
- } else {
-
- try {
- success = ajaxConvert( s, response );
- statusText = "success";
- isSuccess = true;
- } catch(e) {
- // We have a parsererror
- statusText = "parsererror";
- error = e;
- }
- }
- } else {
- // We extract error from statusText
- // then normalize statusText and status for non-aborts
- error = statusText;
- if ( !statusText || status ) {
- statusText = "error";
- if ( status < 0 ) {
- status = 0;
- }
- }
- }
-
- // Set data for the fake xhr object
- jqXHR.status = status;
- jqXHR.statusText = "" + ( nativeStatusText || statusText );
-
- // Success/Error
- if ( isSuccess ) {
- deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
- } else {
- deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
- }
-
- // Status-dependent callbacks
- jqXHR.statusCode( statusCode );
- statusCode = undefined;
-
- if ( fireGlobals ) {
- globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
- [ jqXHR, s, isSuccess ? success : error ] );
- }
-
- // Complete
- completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
-
- if ( fireGlobals ) {
- globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
- // Handle the global AJAX counter
- if ( !( --jQuery.active ) ) {
- jQuery.event.trigger( "ajaxStop" );
- }
- }
- }
-
- // Attach deferreds
- deferred.promise( jqXHR );
- jqXHR.success = jqXHR.done;
- jqXHR.error = jqXHR.fail;
- jqXHR.complete = completeDeferred.add;
-
- // Status-dependent callbacks
- jqXHR.statusCode = function( map ) {
- if ( map ) {
- var tmp;
- if ( state < 2 ) {
- for ( tmp in map ) {
- statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
- }
- } else {
- tmp = map[ jqXHR.status ];
- jqXHR.then( tmp, tmp );
- }
- }
- return this;
- };
-
- // Remove hash character (#7531: and string promotion)
- // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
- // We also use the url parameter if available
- s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
-
- // Extract dataTypes list
- s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
-
- // Determine if a cross-domain request is in order
- if ( s.crossDomain == null ) {
- parts = rurl.exec( s.url.toLowerCase() );
- s.crossDomain = !!( parts &&
- ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
- ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
- ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
- );
- }
-
- // Convert data if not already a string
- if ( s.data && s.processData && typeof s.data !== "string" ) {
- s.data = jQuery.param( s.data, s.traditional );
- }
-
- // Apply prefilters
- inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
-
- // If request was aborted inside a prefilter, stop there
- if ( state === 2 ) {
- return false;
- }
-
- // We can fire global events as of now if asked to
- fireGlobals = s.global;
-
- // Uppercase the type
- s.type = s.type.toUpperCase();
-
- // Determine if request has content
- s.hasContent = !rnoContent.test( s.type );
-
- // Watch for a new set of requests
- if ( fireGlobals && jQuery.active++ === 0 ) {
- jQuery.event.trigger( "ajaxStart" );
- }
-
- // More options handling for requests with no content
- if ( !s.hasContent ) {
-
- // If data is available, append data to url
- if ( s.data ) {
- s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
- // #9682: remove data so that it's not used in an eventual retry
- delete s.data;
- }
-
- // Get ifModifiedKey before adding the anti-cache parameter
- ifModifiedKey = s.url;
-
- // Add anti-cache in url if needed
- if ( s.cache === false ) {
-
- var ts = jQuery.now(),
- // try replacing _= if it is there
- ret = s.url.replace( rts, "$1_=" + ts );
-
- // if nothing was replaced, add timestamp to the end
- s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
- }
- }
-
- // Set the correct header, if data is being sent
- if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
- jqXHR.setRequestHeader( "Content-Type", s.contentType );
- }
-
- // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
- if ( s.ifModified ) {
- ifModifiedKey = ifModifiedKey || s.url;
- if ( jQuery.lastModified[ ifModifiedKey ] ) {
- jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );
- }
- if ( jQuery.etag[ ifModifiedKey ] ) {
- jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );
- }
- }
-
- // Set the Accepts header for the server, depending on the dataType
- jqXHR.setRequestHeader(
- "Accept",
- s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
- s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
- s.accepts[ "*" ]
- );
-
- // Check for headers option
- for ( i in s.headers ) {
- jqXHR.setRequestHeader( i, s.headers[ i ] );
- }
-
- // Allow custom headers/mimetypes and early abort
- if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
- // Abort if not done already
- jqXHR.abort();
- return false;
-
- }
-
- // Install callbacks on deferreds
- for ( i in { success: 1, error: 1, complete: 1 } ) {
- jqXHR[ i ]( s[ i ] );
- }
-
- // Get transport
- transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
-
- // If no transport, we auto-abort
- if ( !transport ) {
- done( -1, "No Transport" );
- } else {
- jqXHR.readyState = 1;
- // Send global event
- if ( fireGlobals ) {
- globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
- }
- // Timeout
- if ( s.async && s.timeout > 0 ) {
- timeoutTimer = setTimeout( function(){
- jqXHR.abort( "timeout" );
- }, s.timeout );
- }
-
- try {
- state = 1;
- transport.send( requestHeaders, done );
- } catch (e) {
- // Propagate exception as error if not done
- if ( state < 2 ) {
- done( -1, e );
- // Simply rethrow otherwise
- } else {
- throw e;
- }
- }
- }
-
- return jqXHR;
- },
-
- // Serialize an array of form elements or a set of
- // key/values into a query string
- param: function( a, traditional ) {
- var s = [],
- add = function( key, value ) {
- // If value is a function, invoke it and return its value
- value = jQuery.isFunction( value ) ? value() : value;
- s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
- };
-
- // Set traditional to true for jQuery <= 1.3.2 behavior.
- if ( traditional === undefined ) {
- traditional = jQuery.ajaxSettings.traditional;
- }
-
- // If an array was passed in, assume that it is an array of form elements.
- if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
- // Serialize the form elements
- jQuery.each( a, function() {
- add( this.name, this.value );
- });
-
- } else {
- // If traditional, encode the "old" way (the way 1.3.2 or older
- // did it), otherwise encode params recursively.
- for ( var prefix in a ) {
- buildParams( prefix, a[ prefix ], traditional, add );
- }
- }
-
- // Return the resulting serialization
- return s.join( "&" ).replace( r20, "+" );
- }
-});
-
-function buildParams( prefix, obj, traditional, add ) {
- if ( jQuery.isArray( obj ) ) {
- // Serialize array item.
- jQuery.each( obj, function( i, v ) {
- if ( traditional || rbracket.test( prefix ) ) {
- // Treat each array item as a scalar.
- add( prefix, v );
-
- } else {
- // If array item is non-scalar (array or object), encode its
- // numeric index to resolve deserialization ambiguity issues.
- // Note that rack (as of 1.0.0) can't currently deserialize
- // nested arrays properly, and attempting to do so may cause
- // a server error. Possible fixes are to modify rack's
- // deserialization algorithm or to provide an option or flag
- // to force array serialization to be shallow.
- buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
- }
- });
-
- } else if ( !traditional && jQuery.type( obj ) === "object" ) {
- // Serialize object item.
- for ( var name in obj ) {
- buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
- }
-
- } else {
- // Serialize scalar item.
- add( prefix, obj );
- }
-}
-
-// This is still on the jQuery object... for now
-// Want to move this to jQuery.ajax some day
-jQuery.extend({
-
- // Counter for holding the number of active queries
- active: 0,
-
- // Last-Modified header cache for next request
- lastModified: {},
- etag: {}
-
-});
-
-/* Handles responses to an ajax request:
- * - sets all responseXXX fields accordingly
- * - finds the right dataType (mediates between content-type and expected dataType)
- * - returns the corresponding response
- */
-function ajaxHandleResponses( s, jqXHR, responses ) {
-
- var contents = s.contents,
- dataTypes = s.dataTypes,
- responseFields = s.responseFields,
- ct,
- type,
- finalDataType,
- firstDataType;
-
- // Fill responseXXX fields
- for ( type in responseFields ) {
- if ( type in responses ) {
- jqXHR[ responseFields[type] ] = responses[ type ];
- }
- }
-
- // Remove auto dataType and get content-type in the process
- while( dataTypes[ 0 ] === "*" ) {
- dataTypes.shift();
- if ( ct === undefined ) {
- ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
- }
- }
-
- // Check if we're dealing with a known content-type
- if ( ct ) {
- for ( type in contents ) {
- if ( contents[ type ] && contents[ type ].test( ct ) ) {
- dataTypes.unshift( type );
- break;
- }
- }
- }
-
- // Check to see if we have a response for the expected dataType
- if ( dataTypes[ 0 ] in responses ) {
- finalDataType = dataTypes[ 0 ];
- } else {
- // Try convertible dataTypes
- for ( type in responses ) {
- if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
- finalDataType = type;
- break;
- }
- if ( !firstDataType ) {
- firstDataType = type;
- }
- }
- // Or just use first one
- finalDataType = finalDataType || firstDataType;
- }
-
- // If we found a dataType
- // We add the dataType to the list if needed
- // and return the corresponding response
- if ( finalDataType ) {
- if ( finalDataType !== dataTypes[ 0 ] ) {
- dataTypes.unshift( finalDataType );
- }
- return responses[ finalDataType ];
- }
-}
-
-// Chain conversions given the request and the original response
-function ajaxConvert( s, response ) {
-
- // Apply the dataFilter if provided
- if ( s.dataFilter ) {
- response = s.dataFilter( response, s.dataType );
- }
-
- var dataTypes = s.dataTypes,
- converters = {},
- i,
- key,
- length = dataTypes.length,
- tmp,
- // Current and previous dataTypes
- current = dataTypes[ 0 ],
- prev,
- // Conversion expression
- conversion,
- // Conversion function
- conv,
- // Conversion functions (transitive conversion)
- conv1,
- conv2;
-
- // For each dataType in the chain
- for ( i = 1; i < length; i++ ) {
-
- // Create converters map
- // with lowercased keys
- if ( i === 1 ) {
- for ( key in s.converters ) {
- if ( typeof key === "string" ) {
- converters[ key.toLowerCase() ] = s.converters[ key ];
- }
- }
- }
-
- // Get the dataTypes
- prev = current;
- current = dataTypes[ i ];
-
- // If current is auto dataType, update it to prev
- if ( current === "*" ) {
- current = prev;
- // If no auto and dataTypes are actually different
- } else if ( prev !== "*" && prev !== current ) {
-
- // Get the converter
- conversion = prev + " " + current;
- conv = converters[ conversion ] || converters[ "* " + current ];
-
- // If there is no direct converter, search transitively
- if ( !conv ) {
- conv2 = undefined;
- for ( conv1 in converters ) {
- tmp = conv1.split( " " );
- if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
- conv2 = converters[ tmp[1] + " " + current ];
- if ( conv2 ) {
- conv1 = converters[ conv1 ];
- if ( conv1 === true ) {
- conv = conv2;
- } else if ( conv2 === true ) {
- conv = conv1;
- }
- break;
- }
- }
- }
- }
- // If we found no converter, dispatch an error
- if ( !( conv || conv2 ) ) {
- jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
- }
- // If found converter is not an equivalence
- if ( conv !== true ) {
- // Convert with 1 or 2 converters accordingly
- response = conv ? conv( response ) : conv2( conv1(response) );
- }
- }
- }
- return response;
-}
-
-
-
-
-var jsc = jQuery.now(),
- jsre = /(\=)\?(&|$)|\?\?/i;
-
-// Default jsonp settings
-jQuery.ajaxSetup({
- jsonp: "callback",
- jsonpCallback: function() {
- return jQuery.expando + "_" + ( jsc++ );
- }
-});
-
-// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
-
- var inspectData = ( typeof s.data === "string" ) && /^application\/x\-www\-form\-urlencoded/.test( s.contentType );
-
- if ( s.dataTypes[ 0 ] === "jsonp" ||
- s.jsonp !== false && ( jsre.test( s.url ) ||
- inspectData && jsre.test( s.data ) ) ) {
-
- var responseContainer,
- jsonpCallback = s.jsonpCallback =
- jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
- previous = window[ jsonpCallback ],
- url = s.url,
- data = s.data,
- replace = "$1" + jsonpCallback + "$2";
-
- if ( s.jsonp !== false ) {
- url = url.replace( jsre, replace );
- if ( s.url === url ) {
- if ( inspectData ) {
- data = data.replace( jsre, replace );
- }
- if ( s.data === data ) {
- // Add callback manually
- url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
- }
- }
- }
-
- s.url = url;
- s.data = data;
-
- // Install callback
- window[ jsonpCallback ] = function( response ) {
- responseContainer = [ response ];
- };
-
- // Clean-up function
- jqXHR.always(function() {
- // Set callback back to previous value
- window[ jsonpCallback ] = previous;
- // Call if it was a function and we have a response
- if ( responseContainer && jQuery.isFunction( previous ) ) {
- window[ jsonpCallback ]( responseContainer[ 0 ] );
- }
- });
-
- // Use data converter to retrieve json after script execution
- s.converters["script json"] = function() {
- if ( !responseContainer ) {
- jQuery.error( jsonpCallback + " was not called" );
- }
- return responseContainer[ 0 ];
- };
-
- // force json dataType
- s.dataTypes[ 0 ] = "json";
-
- // Delegate to script
- return "script";
- }
-});
-
-
-
-
-// Install script dataType
-jQuery.ajaxSetup({
- accepts: {
- script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
- },
- contents: {
- script: /javascript|ecmascript/
- },
- converters: {
- "text script": function( text ) {
- jQuery.globalEval( text );
- return text;
- }
- }
-});
-
-// Handle cache's special case and global
-jQuery.ajaxPrefilter( "script", function( s ) {
- if ( s.cache === undefined ) {
- s.cache = false;
- }
- if ( s.crossDomain ) {
- s.type = "GET";
- s.global = false;
- }
-});
-
-// Bind script tag hack transport
-jQuery.ajaxTransport( "script", function(s) {
-
- // This transport only deals with cross domain requests
- if ( s.crossDomain ) {
-
- var script,
- head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
-
- return {
-
- send: function( _, callback ) {
-
- script = document.createElement( "script" );
-
- script.async = "async";
-
- if ( s.scriptCharset ) {
- script.charset = s.scriptCharset;
- }
-
- script.src = s.url;
-
- // Attach handlers for all browsers
- script.onload = script.onreadystatechange = function( _, isAbort ) {
-
- if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
-
- // Handle memory leak in IE
- script.onload = script.onreadystatechange = null;
-
- // Remove the script
- if ( head && script.parentNode ) {
- head.removeChild( script );
- }
-
- // Dereference the script
- script = undefined;
-
- // Callback if not abort
- if ( !isAbort ) {
- callback( 200, "success" );
- }
- }
- };
- // Use insertBefore instead of appendChild to circumvent an IE6 bug.
- // This arises when a base node is used (#2709 and #4378).
- head.insertBefore( script, head.firstChild );
- },
-
- abort: function() {
- if ( script ) {
- script.onload( 0, 1 );
- }
- }
- };
- }
-});
-
-
-
-
-var // #5280: Internet Explorer will keep connections alive if we don't abort on unload
- xhrOnUnloadAbort = window.ActiveXObject ? function() {
- // Abort all pending requests
- for ( var key in xhrCallbacks ) {
- xhrCallbacks[ key ]( 0, 1 );
- }
- } : false,
- xhrId = 0,
- xhrCallbacks;
-
-// Functions to create xhrs
-function createStandardXHR() {
- try {
- return new window.XMLHttpRequest();
- } catch( e ) {}
-}
-
-function createActiveXHR() {
- try {
- return new window.ActiveXObject( "Microsoft.XMLHTTP" );
- } catch( e ) {}
-}
-
-// Create the request object
-// (This is still attached to ajaxSettings for backward compatibility)
-jQuery.ajaxSettings.xhr = window.ActiveXObject ?
- /* Microsoft failed to properly
- * implement the XMLHttpRequest in IE7 (can't request local files),
- * so we use the ActiveXObject when it is available
- * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
- * we need a fallback.
- */
- function() {
- return !this.isLocal && createStandardXHR() || createActiveXHR();
- } :
- // For all other browsers, use the standard XMLHttpRequest object
- createStandardXHR;
-
-// Determine support properties
-(function( xhr ) {
- jQuery.extend( jQuery.support, {
- ajax: !!xhr,
- cors: !!xhr && ( "withCredentials" in xhr )
- });
-})( jQuery.ajaxSettings.xhr() );
-
-// Create transport if the browser can provide an xhr
-if ( jQuery.support.ajax ) {
-
- jQuery.ajaxTransport(function( s ) {
- // Cross domain only allowed if supported through XMLHttpRequest
- if ( !s.crossDomain || jQuery.support.cors ) {
-
- var callback;
-
- return {
- send: function( headers, complete ) {
-
- // Get a new xhr
- var xhr = s.xhr(),
- handle,
- i;
-
- // Open the socket
- // Passing null username, generates a login popup on Opera (#2865)
- if ( s.username ) {
- xhr.open( s.type, s.url, s.async, s.username, s.password );
- } else {
- xhr.open( s.type, s.url, s.async );
- }
-
- // Apply custom fields if provided
- if ( s.xhrFields ) {
- for ( i in s.xhrFields ) {
- xhr[ i ] = s.xhrFields[ i ];
- }
- }
-
- // Override mime type if needed
- if ( s.mimeType && xhr.overrideMimeType ) {
- xhr.overrideMimeType( s.mimeType );
- }
-
- // X-Requested-With header
- // For cross-domain requests, seeing as conditions for a preflight are
- // akin to a jigsaw puzzle, we simply never set it to be sure.
- // (it can always be set on a per-request basis or even using ajaxSetup)
- // For same-domain requests, won't change header if already provided.
- if ( !s.crossDomain && !headers["X-Requested-With"] ) {
- headers[ "X-Requested-With" ] = "XMLHttpRequest";
- }
-
- // Need an extra try/catch for cross domain requests in Firefox 3
- try {
- for ( i in headers ) {
- xhr.setRequestHeader( i, headers[ i ] );
- }
- } catch( _ ) {}
-
- // Do send the request
- // This may raise an exception which is actually
- // handled in jQuery.ajax (so no try/catch here)
- xhr.send( ( s.hasContent && s.data ) || null );
-
- // Listener
- callback = function( _, isAbort ) {
-
- var status,
- statusText,
- responseHeaders,
- responses,
- xml;
-
- // Firefox throws exceptions when accessing properties
- // of an xhr when a network error occured
- // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
- try {
-
- // Was never called and is aborted or complete
- if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
-
- // Only called once
- callback = undefined;
-
- // Do not keep as active anymore
- if ( handle ) {
- xhr.onreadystatechange = jQuery.noop;
- if ( xhrOnUnloadAbort ) {
- delete xhrCallbacks[ handle ];
- }
- }
-
- // If it's an abort
- if ( isAbort ) {
- // Abort it manually if needed
- if ( xhr.readyState !== 4 ) {
- xhr.abort();
- }
- } else {
- status = xhr.status;
- responseHeaders = xhr.getAllResponseHeaders();
- responses = {};
- xml = xhr.responseXML;
-
- // Construct response list
- if ( xml && xml.documentElement /* #4958 */ ) {
- responses.xml = xml;
- }
-
- // When requesting binary data, IE6-9 will throw an exception
- // on any attempt to access responseText (#11426)
- try {
- responses.text = xhr.responseText;
- } catch( _ ) {
- }
-
- // Firefox throws an exception when accessing
- // statusText for faulty cross-domain requests
- try {
- statusText = xhr.statusText;
- } catch( e ) {
- // We normalize with Webkit giving an empty statusText
- statusText = "";
- }
-
- // Filter status for non standard behaviors
-
- // If the request is local and we have data: assume a success
- // (success with no data won't get notified, that's the best we
- // can do given current implementations)
- if ( !status && s.isLocal && !s.crossDomain ) {
- status = responses.text ? 200 : 404;
- // IE - #1450: sometimes returns 1223 when it should be 204
- } else if ( status === 1223 ) {
- status = 204;
- }
- }
- }
- } catch( firefoxAccessException ) {
- if ( !isAbort ) {
- complete( -1, firefoxAccessException );
- }
- }
-
- // Call complete if needed
- if ( responses ) {
- complete( status, statusText, responses, responseHeaders );
- }
- };
-
- // if we're in sync mode or it's in cache
- // and has been retrieved directly (IE6 & IE7)
- // we need to manually fire the callback
- if ( !s.async || xhr.readyState === 4 ) {
- callback();
- } else {
- handle = ++xhrId;
- if ( xhrOnUnloadAbort ) {
- // Create the active xhrs callbacks list if needed
- // and attach the unload handler
- if ( !xhrCallbacks ) {
- xhrCallbacks = {};
- jQuery( window ).unload( xhrOnUnloadAbort );
- }
- // Add to list of active xhrs callbacks
- xhrCallbacks[ handle ] = callback;
- }
- xhr.onreadystatechange = callback;
- }
- },
-
- abort: function() {
- if ( callback ) {
- callback(0,1);
- }
- }
- };
- }
- });
-}
-
-
-
-
-var elemdisplay = {},
- iframe, iframeDoc,
- rfxtypes = /^(?:toggle|show|hide)$/,
- rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
- timerId,
- fxAttrs = [
- // height animations
- [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
- // width animations
- [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
- // opacity animations
- [ "opacity" ]
- ],
- fxNow;
-
-jQuery.fn.extend({
- show: function( speed, easing, callback ) {
- var elem, display;
-
- if ( speed || speed === 0 ) {
- return this.animate( genFx("show", 3), speed, easing, callback );
-
- } else {
- for ( var i = 0, j = this.length; i < j; i++ ) {
- elem = this[ i ];
-
- if ( elem.style ) {
- display = elem.style.display;
-
- // Reset the inline display of this element to learn if it is
- // being hidden by cascaded rules or not
- if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
- display = elem.style.display = "";
- }
-
- // Set elements which have been overridden with display: none
- // in a stylesheet to whatever the default browser style is
- // for such an element
- if ( (display === "" && jQuery.css(elem, "display") === "none") ||
- !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
- jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
- }
- }
- }
-
- // Set the display of most of the elements in a second loop
- // to avoid the constant reflow
- for ( i = 0; i < j; i++ ) {
- elem = this[ i ];
-
- if ( elem.style ) {
- display = elem.style.display;
-
- if ( display === "" || display === "none" ) {
- elem.style.display = jQuery._data( elem, "olddisplay" ) || "";
- }
- }
- }
-
- return this;
- }
- },
-
- hide: function( speed, easing, callback ) {
- if ( speed || speed === 0 ) {
- return this.animate( genFx("hide", 3), speed, easing, callback);
-
- } else {
- var elem, display,
- i = 0,
- j = this.length;
-
- for ( ; i < j; i++ ) {
- elem = this[i];
- if ( elem.style ) {
- display = jQuery.css( elem, "display" );
-
- if ( display !== "none" && !jQuery._data( elem, "olddisplay" ) ) {
- jQuery._data( elem, "olddisplay", display );
- }
- }
- }
-
- // Set the display of the elements in a second loop
- // to avoid the constant reflow
- for ( i = 0; i < j; i++ ) {
- if ( this[i].style ) {
- this[i].style.display = "none";
- }
- }
-
- return this;
- }
- },
-
- // Save the old toggle function
- _toggle: jQuery.fn.toggle,
-
- toggle: function( fn, fn2, callback ) {
- var bool = typeof fn === "boolean";
-
- if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
- this._toggle.apply( this, arguments );
-
- } else if ( fn == null || bool ) {
- this.each(function() {
- var state = bool ? fn : jQuery(this).is(":hidden");
- jQuery(this)[ state ? "show" : "hide" ]();
- });
-
- } else {
- this.animate(genFx("toggle", 3), fn, fn2, callback);
- }
-
- return this;
- },
-
- fadeTo: function( speed, to, easing, callback ) {
- return this.filter(":hidden").css("opacity", 0).show().end()
- .animate({opacity: to}, speed, easing, callback);
- },
-
- animate: function( prop, speed, easing, callback ) {
- var optall = jQuery.speed( speed, easing, callback );
-
- if ( jQuery.isEmptyObject( prop ) ) {
- return this.each( optall.complete, [ false ] );
- }
-
- // Do not change referenced properties as per-property easing will be lost
- prop = jQuery.extend( {}, prop );
-
- function doAnimation() {
- // XXX 'this' does not always have a nodeName when running the
- // test suite
-
- if ( optall.queue === false ) {
- jQuery._mark( this );
- }
-
- var opt = jQuery.extend( {}, optall ),
- isElement = this.nodeType === 1,
- hidden = isElement && jQuery(this).is(":hidden"),
- name, val, p, e, hooks, replace,
- parts, start, end, unit,
- method;
-
- // will store per property easing and be used to determine when an animation is complete
- opt.animatedProperties = {};
-
- // first pass over propertys to expand / normalize
- for ( p in prop ) {
- name = jQuery.camelCase( p );
- if ( p !== name ) {
- prop[ name ] = prop[ p ];
- delete prop[ p ];
- }
-
- if ( ( hooks = jQuery.cssHooks[ name ] ) && "expand" in hooks ) {
- replace = hooks.expand( prop[ name ] );
- delete prop[ name ];
-
- // not quite $.extend, this wont overwrite keys already present.
- // also - reusing 'p' from above because we have the correct "name"
- for ( p in replace ) {
- if ( ! ( p in prop ) ) {
- prop[ p ] = replace[ p ];
- }
- }
- }
- }
-
- for ( name in prop ) {
- val = prop[ name ];
- // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
- if ( jQuery.isArray( val ) ) {
- opt.animatedProperties[ name ] = val[ 1 ];
- val = prop[ name ] = val[ 0 ];
- } else {
- opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing';
- }
-
- if ( val === "hide" && hidden || val === "show" && !hidden ) {
- return opt.complete.call( this );
- }
-
- if ( isElement && ( name === "height" || name === "width" ) ) {
- // Make sure that nothing sneaks out
- // Record all 3 overflow attributes because IE does not
- // change the overflow attribute when overflowX and
- // overflowY are set to the same value
- opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
-
- // Set display property to inline-block for height/width
- // animations on inline elements that are having width/height animated
- if ( jQuery.css( this, "display" ) === "inline" &&
- jQuery.css( this, "float" ) === "none" ) {
-
- // inline-level elements accept inline-block;
- // block-level elements need to be inline with layout
- if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) {
- this.style.display = "inline-block";
-
- } else {
- this.style.zoom = 1;
- }
- }
- }
- }
-
- if ( opt.overflow != null ) {
- this.style.overflow = "hidden";
- }
-
- for ( p in prop ) {
- e = new jQuery.fx( this, opt, p );
- val = prop[ p ];
-
- if ( rfxtypes.test( val ) ) {
-
- // Tracks whether to show or hide based on private
- // data attached to the element
- method = jQuery._data( this, "toggle" + p ) || ( val === "toggle" ? hidden ? "show" : "hide" : 0 );
- if ( method ) {
- jQuery._data( this, "toggle" + p, method === "show" ? "hide" : "show" );
- e[ method ]();
- } else {
- e[ val ]();
- }
-
- } else {
- parts = rfxnum.exec( val );
- start = e.cur();
-
- if ( parts ) {
- end = parseFloat( parts[2] );
- unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );
-
- // We need to compute starting value
- if ( unit !== "px" ) {
- jQuery.style( this, p, (end || 1) + unit);
- start = ( (end || 1) / e.cur() ) * start;
- jQuery.style( this, p, start + unit);
- }
-
- // If a +=/-= token was provided, we're doing a relative animation
- if ( parts[1] ) {
- end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start;
- }
-
- e.custom( start, end, unit );
-
- } else {
- e.custom( start, val, "" );
- }
- }
- }
-
- // For JS strict compliance
- return true;
- }
-
- return optall.queue === false ?
- this.each( doAnimation ) :
- this.queue( optall.queue, doAnimation );
- },
-
- stop: function( type, clearQueue, gotoEnd ) {
- if ( typeof type !== "string" ) {
- gotoEnd = clearQueue;
- clearQueue = type;
- type = undefined;
- }
- if ( clearQueue && type !== false ) {
- this.queue( type || "fx", [] );
- }
-
- return this.each(function() {
- var index,
- hadTimers = false,
- timers = jQuery.timers,
- data = jQuery._data( this );
-
- // clear marker counters if we know they won't be
- if ( !gotoEnd ) {
- jQuery._unmark( true, this );
- }
-
- function stopQueue( elem, data, index ) {
- var hooks = data[ index ];
- jQuery.removeData( elem, index, true );
- hooks.stop( gotoEnd );
- }
-
- if ( type == null ) {
- for ( index in data ) {
- if ( data[ index ] && data[ index ].stop && index.indexOf(".run") === index.length - 4 ) {
- stopQueue( this, data, index );
- }
- }
- } else if ( data[ index = type + ".run" ] && data[ index ].stop ){
- stopQueue( this, data, index );
- }
-
- for ( index = timers.length; index--; ) {
- if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
- if ( gotoEnd ) {
-
- // force the next step to be the last
- timers[ index ]( true );
- } else {
- timers[ index ].saveState();
- }
- hadTimers = true;
- timers.splice( index, 1 );
- }
- }
-
- // start the next in the queue if the last step wasn't forced
- // timers currently will call their complete callbacks, which will dequeue
- // but only if they were gotoEnd
- if ( !( gotoEnd && hadTimers ) ) {
- jQuery.dequeue( this, type );
- }
- });
- }
-
-});
-
-// Animations created synchronously will run synchronously
-function createFxNow() {
- setTimeout( clearFxNow, 0 );
- return ( fxNow = jQuery.now() );
-}
-
-function clearFxNow() {
- fxNow = undefined;
-}
-
-// Generate parameters to create a standard animation
-function genFx( type, num ) {
- var obj = {};
-
- jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice( 0, num )), function() {
- obj[ this ] = type;
- });
-
- return obj;
-}
-
-// Generate shortcuts for custom animations
-jQuery.each({
- slideDown: genFx( "show", 1 ),
- slideUp: genFx( "hide", 1 ),
- slideToggle: genFx( "toggle", 1 ),
- fadeIn: { opacity: "show" },
- fadeOut: { opacity: "hide" },
- fadeToggle: { opacity: "toggle" }
-}, function( name, props ) {
- jQuery.fn[ name ] = function( speed, easing, callback ) {
- return this.animate( props, speed, easing, callback );
- };
-});
-
-jQuery.extend({
- speed: function( speed, easing, fn ) {
- var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
- complete: fn || !fn && easing ||
- jQuery.isFunction( speed ) && speed,
- duration: speed,
- easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
- };
-
- opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
- opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
-
- // normalize opt.queue - true/undefined/null -> "fx"
- if ( opt.queue == null || opt.queue === true ) {
- opt.queue = "fx";
- }
-
- // Queueing
- opt.old = opt.complete;
-
- opt.complete = function( noUnmark ) {
- if ( jQuery.isFunction( opt.old ) ) {
- opt.old.call( this );
- }
-
- if ( opt.queue ) {
- jQuery.dequeue( this, opt.queue );
- } else if ( noUnmark !== false ) {
- jQuery._unmark( this );
- }
- };
-
- return opt;
- },
-
- easing: {
- linear: function( p ) {
- return p;
- },
- swing: function( p ) {
- return ( -Math.cos( p*Math.PI ) / 2 ) + 0.5;
- }
- },
-
- timers: [],
-
- fx: function( elem, options, prop ) {
- this.options = options;
- this.elem = elem;
- this.prop = prop;
-
- options.orig = options.orig || {};
- }
-
-});
-
-jQuery.fx.prototype = {
- // Simple function for setting a style value
- update: function() {
- if ( this.options.step ) {
- this.options.step.call( this.elem, this.now, this );
- }
-
- ( jQuery.fx.step[ this.prop ] || jQuery.fx.step._default )( this );
- },
-
- // Get the current size
- cur: function() {
- if ( this.elem[ this.prop ] != null && (!this.elem.style || this.elem.style[ this.prop ] == null) ) {
- return this.elem[ this.prop ];
- }
-
- var parsed,
- r = jQuery.css( this.elem, this.prop );
- // Empty strings, null, undefined and "auto" are converted to 0,
- // complex values such as "rotate(1rad)" are returned as is,
- // simple values such as "10px" are parsed to Float.
- return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
- },
-
- // Start an animation from one number to another
- custom: function( from, to, unit ) {
- var self = this,
- fx = jQuery.fx;
-
- this.startTime = fxNow || createFxNow();
- this.end = to;
- this.now = this.start = from;
- this.pos = this.state = 0;
- this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
-
- function t( gotoEnd ) {
- return self.step( gotoEnd );
- }
-
- t.queue = this.options.queue;
- t.elem = this.elem;
- t.saveState = function() {
- if ( jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) {
- if ( self.options.hide ) {
- jQuery._data( self.elem, "fxshow" + self.prop, self.start );
- } else if ( self.options.show ) {
- jQuery._data( self.elem, "fxshow" + self.prop, self.end );
- }
- }
- };
-
- if ( t() && jQuery.timers.push(t) && !timerId ) {
- timerId = setInterval( fx.tick, fx.interval );
- }
- },
-
- // Simple 'show' function
- show: function() {
- var dataShow = jQuery._data( this.elem, "fxshow" + this.prop );
-
- // Remember where we started, so that we can go back to it later
- this.options.orig[ this.prop ] = dataShow || jQuery.style( this.elem, this.prop );
- this.options.show = true;
-
- // Begin the animation
- // Make sure that we start at a small width/height to avoid any flash of content
- if ( dataShow !== undefined ) {
- // This show is picking up where a previous hide or show left off
- this.custom( this.cur(), dataShow );
- } else {
- this.custom( this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur() );
- }
-
- // Start by showing the element
- jQuery( this.elem ).show();
- },
-
- // Simple 'hide' function
- hide: function() {
- // Remember where we started, so that we can go back to it later
- this.options.orig[ this.prop ] = jQuery._data( this.elem, "fxshow" + this.prop ) || jQuery.style( this.elem, this.prop );
- this.options.hide = true;
-
- // Begin the animation
- this.custom( this.cur(), 0 );
- },
-
- // Each step of an animation
- step: function( gotoEnd ) {
- var p, n, complete,
- t = fxNow || createFxNow(),
- done = true,
- elem = this.elem,
- options = this.options;
-
- if ( gotoEnd || t >= options.duration + this.startTime ) {
- this.now = this.end;
- this.pos = this.state = 1;
- this.update();
-
- options.animatedProperties[ this.prop ] = true;
-
- for ( p in options.animatedProperties ) {
- if ( options.animatedProperties[ p ] !== true ) {
- done = false;
- }
- }
-
- if ( done ) {
- // Reset the overflow
- if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
-
- jQuery.each( [ "", "X", "Y" ], function( index, value ) {
- elem.style[ "overflow" + value ] = options.overflow[ index ];
- });
- }
-
- // Hide the element if the "hide" operation was done
- if ( options.hide ) {
- jQuery( elem ).hide();
- }
-
- // Reset the properties, if the item has been hidden or shown
- if ( options.hide || options.show ) {
- for ( p in options.animatedProperties ) {
- jQuery.style( elem, p, options.orig[ p ] );
- jQuery.removeData( elem, "fxshow" + p, true );
- // Toggle data is no longer needed
- jQuery.removeData( elem, "toggle" + p, true );
- }
- }
-
- // Execute the complete function
- // in the event that the complete function throws an exception
- // we must ensure it won't be called twice. #5684
-
- complete = options.complete;
- if ( complete ) {
-
- options.complete = false;
- complete.call( elem );
- }
- }
-
- return false;
-
- } else {
- // classical easing cannot be used with an Infinity duration
- if ( options.duration == Infinity ) {
- this.now = t;
- } else {
- n = t - this.startTime;
- this.state = n / options.duration;
-
- // Perform the easing function, defaults to swing
- this.pos = jQuery.easing[ options.animatedProperties[this.prop] ]( this.state, n, 0, 1, options.duration );
- this.now = this.start + ( (this.end - this.start) * this.pos );
- }
- // Perform the next step of the animation
- this.update();
- }
-
- return true;
- }
-};
-
-jQuery.extend( jQuery.fx, {
- tick: function() {
- var timer,
- timers = jQuery.timers,
- i = 0;
-
- for ( ; i < timers.length; i++ ) {
- timer = timers[ i ];
- // Checks the timer has not already been removed
- if ( !timer() && timers[ i ] === timer ) {
- timers.splice( i--, 1 );
- }
- }
-
- if ( !timers.length ) {
- jQuery.fx.stop();
- }
- },
-
- interval: 13,
-
- stop: function() {
- clearInterval( timerId );
- timerId = null;
- },
-
- speeds: {
- slow: 600,
- fast: 200,
- // Default speed
- _default: 400
- },
-
- step: {
- opacity: function( fx ) {
- jQuery.style( fx.elem, "opacity", fx.now );
- },
-
- _default: function( fx ) {
- if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
- fx.elem.style[ fx.prop ] = fx.now + fx.unit;
- } else {
- fx.elem[ fx.prop ] = fx.now;
- }
- }
- }
-});
-
-// Ensure props that can't be negative don't go there on undershoot easing
-jQuery.each( fxAttrs.concat.apply( [], fxAttrs ), function( i, prop ) {
- // exclude marginTop, marginLeft, marginBottom and marginRight from this list
- if ( prop.indexOf( "margin" ) ) {
- jQuery.fx.step[ prop ] = function( fx ) {
- jQuery.style( fx.elem, prop, Math.max(0, fx.now) + fx.unit );
- };
- }
-});
-
-if ( jQuery.expr && jQuery.expr.filters ) {
- jQuery.expr.filters.animated = function( elem ) {
- return jQuery.grep(jQuery.timers, function( fn ) {
- return elem === fn.elem;
- }).length;
- };
-}
-
-// Try to restore the default display value of an element
-function defaultDisplay( nodeName ) {
-
- if ( !elemdisplay[ nodeName ] ) {
-
- var body = document.body,
- elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
- display = elem.css( "display" );
- elem.remove();
-
- // If the simple way fails,
- // get element's real default display by attaching it to a temp iframe
- if ( display === "none" || display === "" ) {
- // No iframe to use yet, so create it
- if ( !iframe ) {
- iframe = document.createElement( "iframe" );
- iframe.frameBorder = iframe.width = iframe.height = 0;
- }
-
- body.appendChild( iframe );
-
- // Create a cacheable copy of the iframe document on first call.
- // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
- // document to it; WebKit & Firefox won't allow reusing the iframe document.
- if ( !iframeDoc || !iframe.createElement ) {
- iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
- iframeDoc.write( ( jQuery.support.boxModel ? "<!doctype html>" : "" ) + "<html><body>" );
- iframeDoc.close();
- }
-
- elem = iframeDoc.createElement( nodeName );
-
- iframeDoc.body.appendChild( elem );
-
- display = jQuery.css( elem, "display" );
- body.removeChild( iframe );
- }
-
- // Store the correct default display
- elemdisplay[ nodeName ] = display;
- }
-
- return elemdisplay[ nodeName ];
-}
-
-
-
-
-var getOffset,
- rtable = /^t(?:able|d|h)$/i,
- rroot = /^(?:body|html)$/i;
-
-if ( "getBoundingClientRect" in document.documentElement ) {
- getOffset = function( elem, doc, docElem, box ) {
- try {
- box = elem.getBoundingClientRect();
- } catch(e) {}
-
- // Make sure we're not dealing with a disconnected DOM node
- if ( !box || !jQuery.contains( docElem, elem ) ) {
- return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
- }
-
- var body = doc.body,
- win = getWindow( doc ),
- clientTop = docElem.clientTop || body.clientTop || 0,
- clientLeft = docElem.clientLeft || body.clientLeft || 0,
- scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop,
- scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
- top = box.top + scrollTop - clientTop,
- left = box.left + scrollLeft - clientLeft;
-
- return { top: top, left: left };
- };
-
-} else {
- getOffset = function( elem, doc, docElem ) {
- var computedStyle,
- offsetParent = elem.offsetParent,
- prevOffsetParent = elem,
- body = doc.body,
- defaultView = doc.defaultView,
- prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
- top = elem.offsetTop,
- left = elem.offsetLeft;
-
- while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
- if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
- break;
- }
-
- computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
- top -= elem.scrollTop;
- left -= elem.scrollLeft;
-
- if ( elem === offsetParent ) {
- top += elem.offsetTop;
- left += elem.offsetLeft;
-
- if ( jQuery.support.doesNotAddBorder && !(jQuery.support.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
- top += parseFloat( computedStyle.borderTopWidth ) || 0;
- left += parseFloat( computedStyle.borderLeftWidth ) || 0;
- }
-
- prevOffsetParent = offsetParent;
- offsetParent = elem.offsetParent;
- }
-
- if ( jQuery.support.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
- top += parseFloat( computedStyle.borderTopWidth ) || 0;
- left += parseFloat( computedStyle.borderLeftWidth ) || 0;
- }
-
- prevComputedStyle = computedStyle;
- }
-
- if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
- top += body.offsetTop;
- left += body.offsetLeft;
- }
-
- if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
- top += Math.max( docElem.scrollTop, body.scrollTop );
- left += Math.max( docElem.scrollLeft, body.scrollLeft );
- }
-
- return { top: top, left: left };
- };
-}
-
-jQuery.fn.offset = function( options ) {
- if ( arguments.length ) {
- return options === undefined ?
- this :
- this.each(function( i ) {
- jQuery.offset.setOffset( this, options, i );
- });
- }
-
- var elem = this[0],
- doc = elem && elem.ownerDocument;
-
- if ( !doc ) {
- return null;
- }
-
- if ( elem === doc.body ) {
- return jQuery.offset.bodyOffset( elem );
- }
-
- return getOffset( elem, doc, doc.documentElement );
-};
-
-jQuery.offset = {
-
- bodyOffset: function( body ) {
- var top = body.offsetTop,
- left = body.offsetLeft;
-
- if ( jQuery.support.doesNotIncludeMarginInBodyOffset ) {
- top += parseFloat( jQuery.css(body, "marginTop") ) || 0;
- left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
- }
-
- return { top: top, left: left };
- },
-
- setOffset: function( elem, options, i ) {
- var position = jQuery.css( elem, "position" );
-
- // set position first, in-case top/left are set even on static elem
- if ( position === "static" ) {
- elem.style.position = "relative";
- }
-
- var curElem = jQuery( elem ),
- curOffset = curElem.offset(),
- curCSSTop = jQuery.css( elem, "top" ),
- curCSSLeft = jQuery.css( elem, "left" ),
- calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
- props = {}, curPosition = {}, curTop, curLeft;
-
- // need to be able to calculate position if either top or left is auto and position is either absolute or fixed
- if ( calculatePosition ) {
- curPosition = curElem.position();
- curTop = curPosition.top;
- curLeft = curPosition.left;
- } else {
- curTop = parseFloat( curCSSTop ) || 0;
- curLeft = parseFloat( curCSSLeft ) || 0;
- }
-
- if ( jQuery.isFunction( options ) ) {
- options = options.call( elem, i, curOffset );
- }
-
- if ( options.top != null ) {
- props.top = ( options.top - curOffset.top ) + curTop;
- }
- if ( options.left != null ) {
- props.left = ( options.left - curOffset.left ) + curLeft;
- }
-
- if ( "using" in options ) {
- options.using.call( elem, props );
- } else {
- curElem.css( props );
- }
- }
-};
-
-
-jQuery.fn.extend({
-
- position: function() {
- if ( !this[0] ) {
- return null;
- }
-
- var elem = this[0],
-
- // Get *real* offsetParent
- offsetParent = this.offsetParent(),
-
- // Get correct offsets
- offset = this.offset(),
- parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
-
- // Subtract element margins
- // note: when an element has margin: auto the offsetLeft and marginLeft
- // are the same in Safari causing offset.left to incorrectly be 0
- offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
- offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
-
- // Add offsetParent borders
- parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
- parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
-
- // Subtract the two offsets
- return {
- top: offset.top - parentOffset.top,
- left: offset.left - parentOffset.left
- };
- },
-
- offsetParent: function() {
- return this.map(function() {
- var offsetParent = this.offsetParent || document.body;
- while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
- offsetParent = offsetParent.offsetParent;
- }
- return offsetParent;
- });
- }
-});
-
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
- var top = /Y/.test( prop );
-
- jQuery.fn[ method ] = function( val ) {
- return jQuery.access( this, function( elem, method, val ) {
- var win = getWindow( elem );
-
- if ( val === undefined ) {
- return win ? (prop in win) ? win[ prop ] :
- jQuery.support.boxModel && win.document.documentElement[ method ] ||
- win.document.body[ method ] :
- elem[ method ];
- }
-
- if ( win ) {
- win.scrollTo(
- !top ? val : jQuery( win ).scrollLeft(),
- top ? val : jQuery( win ).scrollTop()
- );
-
- } else {
- elem[ method ] = val;
- }
- }, method, val, arguments.length, null );
- };
-});
-
-function getWindow( elem ) {
- return jQuery.isWindow( elem ) ?
- elem :
- elem.nodeType === 9 ?
- elem.defaultView || elem.parentWindow :
- false;
-}
-
-
-
-
-// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
-jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
- var clientProp = "client" + name,
- scrollProp = "scroll" + name,
- offsetProp = "offset" + name;
-
- // innerHeight and innerWidth
- jQuery.fn[ "inner" + name ] = function() {
- var elem = this[0];
- return elem ?
- elem.style ?
- parseFloat( jQuery.css( elem, type, "padding" ) ) :
- this[ type ]() :
- null;
- };
-
- // outerHeight and outerWidth
- jQuery.fn[ "outer" + name ] = function( margin ) {
- var elem = this[0];
- return elem ?
- elem.style ?
- parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
- this[ type ]() :
- null;
- };
-
- jQuery.fn[ type ] = function( value ) {
- return jQuery.access( this, function( elem, type, value ) {
- var doc, docElemProp, orig, ret;
-
- if ( jQuery.isWindow( elem ) ) {
- // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
- doc = elem.document;
- docElemProp = doc.documentElement[ clientProp ];
- return jQuery.support.boxModel && docElemProp ||
- doc.body && doc.body[ clientProp ] || docElemProp;
- }
-
- // Get document width or height
- if ( elem.nodeType === 9 ) {
- // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
- doc = elem.documentElement;
-
- // when a window > document, IE6 reports a offset[Width/Height] > client[Width/Height]
- // so we can't use max, as it'll choose the incorrect offset[Width/Height]
- // instead we use the correct client[Width/Height]
- // support:IE6
- if ( doc[ clientProp ] >= doc[ scrollProp ] ) {
- return doc[ clientProp ];
- }
-
- return Math.max(
- elem.body[ scrollProp ], doc[ scrollProp ],
- elem.body[ offsetProp ], doc[ offsetProp ]
- );
- }
-
- // Get width or height on the element
- if ( value === undefined ) {
- orig = jQuery.css( elem, type );
- ret = parseFloat( orig );
- return jQuery.isNumeric( ret ) ? ret : orig;
- }
-
- // Set the width or height on the element
- jQuery( elem ).css( type, value );
- }, type, value, arguments.length, null );
- };
-});
-
-
-
-
-// Expose jQuery to the global object
-window.jQuery = window.$ = jQuery;
-
-// Expose jQuery as an AMD module, but only for AMD loaders that
-// understand the issues with loading multiple versions of jQuery
-// in a page that all might call define(). The loader will indicate
-// they have special allowances for multiple jQuery versions by
-// specifying define.amd.jQuery = true. Register as a named module,
-// since jQuery can be concatenated with other files that may use define,
-// but not use a proper concatenation script that understands anonymous
-// AMD modules. A named AMD is safest and most robust way to register.
-// Lowercase jquery is used because AMD module names are derived from
-// file names, and jQuery is normally delivered in a lowercase file name.
-// Do this after creating the global so that if an AMD module wants to call
-// noConflict to hide this version of jQuery, it will work.
-if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
- define( "jquery", [], function () { return jQuery; } );
-}
-
-
-
-})( window );
+/*!
+ * jQuery JavaScript Library v1.7.2
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Wed Mar 21 12:46:34 2012 -0700
+ */
+(function( window, undefined ) {
+
+// Use the correct document accordingly with window argument (sandbox)
+var document = window.document,
+ navigator = window.navigator,
+ location = window.location;
+var jQuery = (function() {
+
+// Define a local copy of jQuery
+var jQuery = function( selector, context ) {
+ // The jQuery object is actually just the init constructor 'enhanced'
+ return new jQuery.fn.init( selector, context, rootjQuery );
+ },
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$,
+
+ // A central reference to the root jQuery(document)
+ rootjQuery,
+
+ // A simple way to check for HTML strings or ID strings
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+ quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
+
+ // Check if a string has a non-whitespace character in it
+ rnotwhite = /\S/,
+
+ // Used for trimming whitespace
+ trimLeft = /^\s+/,
+ trimRight = /\s+$/,
+
+ // Match a standalone tag
+ rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+
+ // JSON RegExp
+ rvalidchars = /^[\],:{}\s]*$/,
+ rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+ rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+ rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+
+ // Useragent RegExp
+ rwebkit = /(webkit)[ \/]([\w.]+)/,
+ ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
+ rmsie = /(msie) ([\w.]+)/,
+ rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
+
+ // Matches dashed string for camelizing
+ rdashAlpha = /-([a-z]|[0-9])/ig,
+ rmsPrefix = /^-ms-/,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return ( letter + "" ).toUpperCase();
+ },
+
+ // Keep a UserAgent string for use with jQuery.browser
+ userAgent = navigator.userAgent,
+
+ // For matching the engine and version of the browser
+ browserMatch,
+
+ // The deferred used on DOM ready
+ readyList,
+
+ // The ready event handler
+ DOMContentLoaded,
+
+ // Save a reference to some core methods
+ toString = Object.prototype.toString,
+ hasOwn = Object.prototype.hasOwnProperty,
+ push = Array.prototype.push,
+ slice = Array.prototype.slice,
+ trim = String.prototype.trim,
+ indexOf = Array.prototype.indexOf,
+
+ // [[Class]] -> type pairs
+ class2type = {};
+
+jQuery.fn = jQuery.prototype = {
+ constructor: jQuery,
+ init: function( selector, context, rootjQuery ) {
+ var match, elem, ret, doc;
+
+ // Handle $(""), $(null), or $(undefined)
+ if ( !selector ) {
+ return this;
+ }
+
+ // Handle $(DOMElement)
+ if ( selector.nodeType ) {
+ this.context = this[0] = selector;
+ this.length = 1;
+ return this;
+ }
+
+ // The body element only exists once, optimize finding it
+ if ( selector === "body" && !context && document.body ) {
+ this.context = document;
+ this[0] = document.body;
+ this.selector = selector;
+ this.length = 1;
+ return this;
+ }
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ // Are we dealing with HTML string or an ID?
+ if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
+ // Assume that strings that start and end with <> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = quickExpr.exec( selector );
+ }
+
+ // Verify a match, and that no context was specified for #id
+ if ( match && (match[1] || !context) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[1] ) {
+ context = context instanceof jQuery ? context[0] : context;
+ doc = ( context ? context.ownerDocument || context : document );
+
+ // If a single string is passed in and it's a single tag
+ // just do a createElement and skip the rest
+ ret = rsingleTag.exec( selector );
+
+ if ( ret ) {
+ if ( jQuery.isPlainObject( context ) ) {
+ selector = [ document.createElement( ret[1] ) ];
+ jQuery.fn.attr.call( selector, context, true );
+
+ } else {
+ selector = [ doc.createElement( ret[1] ) ];
+ }
+
+ } else {
+ ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
+ selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes;
+ }
+
+ return jQuery.merge( this, selector );
+
+ // HANDLE: $("#id")
+ } else {
+ elem = document.getElementById( match[2] );
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id !== match[2] ) {
+ return rootjQuery.find( selector );
+ }
+
+ // Otherwise, we inject the element directly into the jQuery object
+ this.length = 1;
+ this[0] = elem;
+ }
+
+ this.context = document;
+ this.selector = selector;
+ return this;
+ }
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return ( context || rootjQuery ).find( selector );
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return this.constructor( context ).find( selector );
+ }
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return rootjQuery.ready( selector );
+ }
+
+ if ( selector.selector !== undefined ) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ return jQuery.makeArray( selector, this );
+ },
+
+ // Start with an empty selector
+ selector: "",
+
+ // The current version of jQuery being used
+ jquery: "1.7.2",
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ // The number of elements contained in the matched element set
+ size: function() {
+ return this.length;
+ },
+
+ toArray: function() {
+ return slice.call( this, 0 );
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+ return num == null ?
+
+ // Return a 'clean' array
+ this.toArray() :
+
+ // Return just the object
+ ( num < 0 ? this[ this.length + num ] : this[ num ] );
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems, name, selector ) {
+ // Build a new jQuery matched element set
+ var ret = this.constructor();
+
+ if ( jQuery.isArray( elems ) ) {
+ push.apply( ret, elems );
+
+ } else {
+ jQuery.merge( ret, elems );
+ }
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ ret.context = this.context;
+
+ if ( name === "find" ) {
+ ret.selector = this.selector + ( this.selector ? " " : "" ) + selector;
+ } else if ( name ) {
+ ret.selector = this.selector + "." + name + "(" + selector + ")";
+ }
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ // (You can seed the arguments with an array of args, but this is
+ // only used internally.)
+ each: function( callback, args ) {
+ return jQuery.each( this, callback, args );
+ },
+
+ ready: function( fn ) {
+ // Attach the listeners
+ jQuery.bindReady();
+
+ // Add the callback
+ readyList.add( fn );
+
+ return this;
+ },
+
+ eq: function( i ) {
+ i = +i;
+ return i === -1 ?
+ this.slice( i ) :
+ this.slice( i, i + 1 );
+ },
+
+ first: function() {
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ return this.eq( -1 );
+ },
+
+ slice: function() {
+ return this.pushStack( slice.apply( this, arguments ),
+ "slice", slice.call(arguments).join(",") );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map(this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ }));
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor(null);
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: [].sort,
+ splice: [].splice
+};
+
+// Give the init function the jQuery prototype for later instantiation
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[0] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+ target = arguments[1] || {};
+ // skip the boolean and the target
+ i = 2;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
+ target = {};
+ }
+
+ // extend jQuery itself if only one argument is passed
+ if ( length === i ) {
+ target = this;
+ --i;
+ }
+
+ for ( ; i < length; i++ ) {
+ // Only deal with non-null/undefined values
+ if ( (options = arguments[ i ]) != null ) {
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray(src) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject(src) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend({
+ noConflict: function( deep ) {
+ if ( window.$ === jQuery ) {
+ window.$ = _$;
+ }
+
+ if ( deep && window.jQuery === jQuery ) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+ },
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ // Handle when the DOM is ready
+ ready: function( wait ) {
+ // Either a released hold or an DOMready/load event and not yet ready
+ if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if ( !document.body ) {
+ return setTimeout( jQuery.ready, 1 );
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ readyList.fireWith( document, [ jQuery ] );
+
+ // Trigger any bound ready events
+ if ( jQuery.fn.trigger ) {
+ jQuery( document ).trigger( "ready" ).off( "ready" );
+ }
+ }
+ },
+
+ bindReady: function() {
+ if ( readyList ) {
+ return;
+ }
+
+ readyList = jQuery.Callbacks( "once memory" );
+
+ // Catch cases where $(document).ready() is called after the
+ // browser event has already occurred.
+ if ( document.readyState === "complete" ) {
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ return setTimeout( jQuery.ready, 1 );
+ }
+
+ // Mozilla, Opera and webkit nightlies currently support this event
+ if ( document.addEventListener ) {
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", jQuery.ready, false );
+
+ // If IE event model is used
+ } else if ( document.attachEvent ) {
+ // ensure firing before onload,
+ // maybe late but safe also for iframes
+ document.attachEvent( "onreadystatechange", DOMContentLoaded );
+
+ // A fallback to window.onload, that will always work
+ window.attachEvent( "onload", jQuery.ready );
+
+ // If IE and not a frame
+ // continually check to see if the document is ready
+ var toplevel = false;
+
+ try {
+ toplevel = window.frameElement == null;
+ } catch(e) {}
+
+ if ( document.documentElement.doScroll && toplevel ) {
+ doScrollCheck();
+ }
+ }
+ },
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function( obj ) {
+ return jQuery.type(obj) === "function";
+ },
+
+ isArray: Array.isArray || function( obj ) {
+ return jQuery.type(obj) === "array";
+ },
+
+ isWindow: function( obj ) {
+ return obj != null && obj == obj.window;
+ },
+
+ isNumeric: function( obj ) {
+ return !isNaN( parseFloat(obj) ) && isFinite( obj );
+ },
+
+ type: function( obj ) {
+ return obj == null ?
+ String( obj ) :
+ class2type[ toString.call(obj) ] || "object";
+ },
+
+ isPlainObject: function( obj ) {
+ // Must be an Object.
+ // Because of IE, we also have to check the presence of the constructor property.
+ // Make sure that DOM nodes and window objects don't pass through, as well
+ if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ try {
+ // Not own constructor property must be Object
+ if ( obj.constructor &&
+ !hasOwn.call(obj, "constructor") &&
+ !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
+ return false;
+ }
+ } catch ( e ) {
+ // IE8,9 Will throw exceptions on certain host objects #9897
+ return false;
+ }
+
+ // Own properties are enumerated firstly, so to speed up,
+ // if last one is own, then all properties are own.
+
+ var key;
+ for ( key in obj ) {}
+
+ return key === undefined || hasOwn.call( obj, key );
+ },
+
+ isEmptyObject: function( obj ) {
+ for ( var name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ error: function( msg ) {
+ throw new Error( msg );
+ },
+
+ parseJSON: function( data ) {
+ if ( typeof data !== "string" || !data ) {
+ return null;
+ }
+
+ // Make sure leading/trailing whitespace is removed (IE can't handle it)
+ data = jQuery.trim( data );
+
+ // Attempt to parse using the native JSON parser first
+ if ( window.JSON && window.JSON.parse ) {
+ return window.JSON.parse( data );
+ }
+
+ // Make sure the incoming data is actual JSON
+ // Logic borrowed from http://json.org/json2.js
+ if ( rvalidchars.test( data.replace( rvalidescape, "@" )
+ .replace( rvalidtokens, "]" )
+ .replace( rvalidbraces, "")) ) {
+
+ return ( new Function( "return " + data ) )();
+
+ }
+ jQuery.error( "Invalid JSON: " + data );
+ },
+
+ // Cross-browser xml parsing
+ parseXML: function( data ) {
+ if ( typeof data !== "string" || !data ) {
+ return null;
+ }
+ var xml, tmp;
+ try {
+ if ( window.DOMParser ) { // Standard
+ tmp = new DOMParser();
+ xml = tmp.parseFromString( data , "text/xml" );
+ } else { // IE
+ xml = new ActiveXObject( "Microsoft.XMLDOM" );
+ xml.async = "false";
+ xml.loadXML( data );
+ }
+ } catch( e ) {
+ xml = undefined;
+ }
+ if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
+ jQuery.error( "Invalid XML: " + data );
+ }
+ return xml;
+ },
+
+ noop: function() {},
+
+ // Evaluates a script in a global context
+ // Workarounds based on findings by Jim Driscoll
+ // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
+ globalEval: function( data ) {
+ if ( data && rnotwhite.test( data ) ) {
+ // We use execScript on Internet Explorer
+ // We use an anonymous function so that context is window
+ // rather than jQuery in Firefox
+ ( window.execScript || function( data ) {
+ window[ "eval" ].call( window, data );
+ } )( data );
+ }
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
+ },
+
+ // args is for internal usage only
+ each: function( object, callback, args ) {
+ var name, i = 0,
+ length = object.length,
+ isObj = length === undefined || jQuery.isFunction( object );
+
+ if ( args ) {
+ if ( isObj ) {
+ for ( name in object ) {
+ if ( callback.apply( object[ name ], args ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( ; i < length; ) {
+ if ( callback.apply( object[ i++ ], args ) === false ) {
+ break;
+ }
+ }
+ }
+
+ // A special, fast, case for the most common use of each
+ } else {
+ if ( isObj ) {
+ for ( name in object ) {
+ if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( ; i < length; ) {
+ if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
+ break;
+ }
+ }
+ }
+ }
+
+ return object;
+ },
+
+ // Use native String.trim function wherever possible
+ trim: trim ?
+ function( text ) {
+ return text == null ?
+ "" :
+ trim.call( text );
+ } :
+
+ // Otherwise use our own trimming functionality
+ function( text ) {
+ return text == null ?
+ "" :
+ text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( array, results ) {
+ var ret = results || [];
+
+ if ( array != null ) {
+ // The window, strings (and functions) also have 'length'
+ // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
+ var type = jQuery.type( array );
+
+ if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
+ push.call( ret, array );
+ } else {
+ jQuery.merge( ret, array );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, array, i ) {
+ var len;
+
+ if ( array ) {
+ if ( indexOf ) {
+ return indexOf.call( array, elem, i );
+ }
+
+ len = array.length;
+ i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
+
+ for ( ; i < len; i++ ) {
+ // Skip accessing in sparse arrays
+ if ( i in array && array[ i ] === elem ) {
+ return i;
+ }
+ }
+ }
+
+ return -1;
+ },
+
+ merge: function( first, second ) {
+ var i = first.length,
+ j = 0;
+
+ if ( typeof second.length === "number" ) {
+ for ( var l = second.length; j < l; j++ ) {
+ first[ i++ ] = second[ j ];
+ }
+
+ } else {
+ while ( second[j] !== undefined ) {
+ first[ i++ ] = second[ j++ ];
+ }
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, inv ) {
+ var ret = [], retVal;
+ inv = !!inv;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( var i = 0, length = elems.length; i < length; i++ ) {
+ retVal = !!callback( elems[ i ], i );
+ if ( inv !== retVal ) {
+ ret.push( elems[ i ] );
+ }
+ }
+
+ return ret;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var value, key, ret = [],
+ i = 0,
+ length = elems.length,
+ // jquery objects are treated as arrays
+ isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
+
+ // Go through the array, translating each of the items to their
+ if ( isArray ) {
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret[ ret.length ] = value;
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( key in elems ) {
+ value = callback( elems[ key ], key, arg );
+
+ if ( value != null ) {
+ ret[ ret.length ] = value;
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return ret.concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ if ( typeof context === "string" ) {
+ var tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ var args = slice.call( arguments, 2 ),
+ proxy = function() {
+ return fn.apply( context, args.concat( slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ // Mutifunctional method to get and set values to a collection
+ // The value/s can optionally be executed if it's a function
+ access: function( elems, fn, key, value, chainable, emptyGet, pass ) {
+ var exec,
+ bulk = key == null,
+ i = 0,
+ length = elems.length;
+
+ // Sets many values
+ if ( key && typeof key === "object" ) {
+ for ( i in key ) {
+ jQuery.access( elems, fn, i, key[i], 1, emptyGet, value );
+ }
+ chainable = 1;
+
+ // Sets one value
+ } else if ( value !== undefined ) {
+ // Optionally, function values get executed if exec is true
+ exec = pass === undefined && jQuery.isFunction( value );
+
+ if ( bulk ) {
+ // Bulk operations only iterate when executing function values
+ if ( exec ) {
+ exec = fn;
+ fn = function( elem, key, value ) {
+ return exec.call( jQuery( elem ), value );
+ };
+
+ // Otherwise they run against the entire set
+ } else {
+ fn.call( elems, value );
+ fn = null;
+ }
+ }
+
+ if ( fn ) {
+ for (; i < length; i++ ) {
+ fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
+ }
+ }
+
+ chainable = 1;
+ }
+
+ return chainable ?
+ elems :
+
+ // Gets
+ bulk ?
+ fn.call( elems ) :
+ length ? fn( elems[0], key ) : emptyGet;
+ },
+
+ now: function() {
+ return ( new Date() ).getTime();
+ },
+
+ // Use of jQuery.browser is frowned upon.
+ // More details: http://docs.jquery.com/Utilities/jQuery.browser
+ uaMatch: function( ua ) {
+ ua = ua.toLowerCase();
+
+ var match = rwebkit.exec( ua ) ||
+ ropera.exec( ua ) ||
+ rmsie.exec( ua ) ||
+ ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
+ [];
+
+ return { browser: match[1] || "", version: match[2] || "0" };
+ },
+
+ sub: function() {
+ function jQuerySub( selector, context ) {
+ return new jQuerySub.fn.init( selector, context );
+ }
+ jQuery.extend( true, jQuerySub, this );
+ jQuerySub.superclass = this;
+ jQuerySub.fn = jQuerySub.prototype = this();
+ jQuerySub.fn.constructor = jQuerySub;
+ jQuerySub.sub = this.sub;
+ jQuerySub.fn.init = function init( selector, context ) {
+ if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
+ context = jQuerySub( context );
+ }
+
+ return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
+ };
+ jQuerySub.fn.init.prototype = jQuerySub.fn;
+ var rootjQuerySub = jQuerySub(document);
+ return jQuerySub;
+ },
+
+ browser: {}
+});
+
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
+
+browserMatch = jQuery.uaMatch( userAgent );
+if ( browserMatch.browser ) {
+ jQuery.browser[ browserMatch.browser ] = true;
+ jQuery.browser.version = browserMatch.version;
+}
+
+// Deprecated, use jQuery.browser.webkit instead
+if ( jQuery.browser.webkit ) {
+ jQuery.browser.safari = true;
+}
+
+// IE doesn't match non-breaking spaces with \s
+if ( rnotwhite.test( "\xA0" ) ) {
+ trimLeft = /^[\s\xA0]+/;
+ trimRight = /[\s\xA0]+$/;
+}
+
+// All jQuery objects should point back to these
+rootjQuery = jQuery(document);
+
+// Cleanup functions for the document ready method
+if ( document.addEventListener ) {
+ DOMContentLoaded = function() {
+ document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+ jQuery.ready();
+ };
+
+} else if ( document.attachEvent ) {
+ DOMContentLoaded = function() {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if ( document.readyState === "complete" ) {
+ document.detachEvent( "onreadystatechange", DOMContentLoaded );
+ jQuery.ready();
+ }
+ };
+}
+
+// The DOM ready check for Internet Explorer
+function doScrollCheck() {
+ if ( jQuery.isReady ) {
+ return;
+ }
+
+ try {
+ // If IE is used, use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ document.documentElement.doScroll("left");
+ } catch(e) {
+ setTimeout( doScrollCheck, 1 );
+ return;
+ }
+
+ // and execute any waiting functions
+ jQuery.ready();
+}
+
+return jQuery;
+
+})();
+
+
+// String to Object flags format cache
+var flagsCache = {};
+
+// Convert String-formatted flags into Object-formatted ones and store in cache
+function createFlags( flags ) {
+ var object = flagsCache[ flags ] = {},
+ i, length;
+ flags = flags.split( /\s+/ );
+ for ( i = 0, length = flags.length; i < length; i++ ) {
+ object[ flags[i] ] = true;
+ }
+ return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ * flags: an optional list of space-separated flags that will change how
+ * the callback list behaves
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible flags:
+ *
+ * once: will ensure the callback list can only be fired once (like a Deferred)
+ *
+ * memory: will keep track of previous values and will call any callback added
+ * after the list has been fired right away with the latest "memorized"
+ * values (like a Deferred)
+ *
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
+ *
+ * stopOnFalse: interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( flags ) {
+
+ // Convert flags from String-formatted to Object-formatted
+ // (we check in cache first)
+ flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {};
+
+ var // Actual callback list
+ list = [],
+ // Stack of fire calls for repeatable lists
+ stack = [],
+ // Last fire value (for non-forgettable lists)
+ memory,
+ // Flag to know if list was already fired
+ fired,
+ // Flag to know if list is currently firing
+ firing,
+ // First callback to fire (used internally by add and fireWith)
+ firingStart,
+ // End of the loop when firing
+ firingLength,
+ // Index of currently firing callback (modified by remove if needed)
+ firingIndex,
+ // Add one or several callbacks to the list
+ add = function( args ) {
+ var i,
+ length,
+ elem,
+ type,
+ actual;
+ for ( i = 0, length = args.length; i < length; i++ ) {
+ elem = args[ i ];
+ type = jQuery.type( elem );
+ if ( type === "array" ) {
+ // Inspect recursively
+ add( elem );
+ } else if ( type === "function" ) {
+ // Add if not in unique mode and callback is not in
+ if ( !flags.unique || !self.has( elem ) ) {
+ list.push( elem );
+ }
+ }
+ }
+ },
+ // Fire callbacks
+ fire = function( context, args ) {
+ args = args || [];
+ memory = !flags.memory || [ context, args ];
+ fired = true;
+ firing = true;
+ firingIndex = firingStart || 0;
+ firingStart = 0;
+ firingLength = list.length;
+ for ( ; list && firingIndex < firingLength; firingIndex++ ) {
+ if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {
+ memory = true; // Mark as halted
+ break;
+ }
+ }
+ firing = false;
+ if ( list ) {
+ if ( !flags.once ) {
+ if ( stack && stack.length ) {
+ memory = stack.shift();
+ self.fireWith( memory[ 0 ], memory[ 1 ] );
+ }
+ } else if ( memory === true ) {
+ self.disable();
+ } else {
+ list = [];
+ }
+ }
+ },
+ // Actual Callbacks object
+ self = {
+ // Add a callback or a collection of callbacks to the list
+ add: function() {
+ if ( list ) {
+ var length = list.length;
+ add( arguments );
+ // Do we need to add the callbacks to the
+ // current firing batch?
+ if ( firing ) {
+ firingLength = list.length;
+ // With memory, if we're not firing then
+ // we should call right away, unless previous
+ // firing was halted (stopOnFalse)
+ } else if ( memory && memory !== true ) {
+ firingStart = length;
+ fire( memory[ 0 ], memory[ 1 ] );
+ }
+ }
+ return this;
+ },
+ // Remove a callback from the list
+ remove: function() {
+ if ( list ) {
+ var args = arguments,
+ argIndex = 0,
+ argLength = args.length;
+ for ( ; argIndex < argLength ; argIndex++ ) {
+ for ( var i = 0; i < list.length; i++ ) {
+ if ( args[ argIndex ] === list[ i ] ) {
+ // Handle firingIndex and firingLength
+ if ( firing ) {
+ if ( i <= firingLength ) {
+ firingLength--;
+ if ( i <= firingIndex ) {
+ firingIndex--;
+ }
+ }
+ }
+ // Remove the element
+ list.splice( i--, 1 );
+ // If we have some unicity property then
+ // we only need to do this once
+ if ( flags.unique ) {
+ break;
+ }
+ }
+ }
+ }
+ }
+ return this;
+ },
+ // Control if a given callback is in the list
+ has: function( fn ) {
+ if ( list ) {
+ var i = 0,
+ length = list.length;
+ for ( ; i < length; i++ ) {
+ if ( fn === list[ i ] ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ },
+ // Remove all callbacks from the list
+ empty: function() {
+ list = [];
+ return this;
+ },
+ // Have the list do nothing anymore
+ disable: function() {
+ list = stack = memory = undefined;
+ return this;
+ },
+ // Is it disabled?
+ disabled: function() {
+ return !list;
+ },
+ // Lock the list in its current state
+ lock: function() {
+ stack = undefined;
+ if ( !memory || memory === true ) {
+ self.disable();
+ }
+ return this;
+ },
+ // Is it locked?
+ locked: function() {
+ return !stack;
+ },
+ // Call all callbacks with the given context and arguments
+ fireWith: function( context, args ) {
+ if ( stack ) {
+ if ( firing ) {
+ if ( !flags.once ) {
+ stack.push( [ context, args ] );
+ }
+ } else if ( !( flags.once && memory ) ) {
+ fire( context, args );
+ }
+ }
+ return this;
+ },
+ // Call all the callbacks with the given arguments
+ fire: function() {
+ self.fireWith( this, arguments );
+ return this;
+ },
+ // To know if the callbacks have already been called at least once
+ fired: function() {
+ return !!fired;
+ }
+ };
+
+ return self;
+};
+
+
+
+
+var // Static reference to slice
+ sliceDeferred = [].slice;
+
+jQuery.extend({
+
+ Deferred: function( func ) {
+ var doneList = jQuery.Callbacks( "once memory" ),
+ failList = jQuery.Callbacks( "once memory" ),
+ progressList = jQuery.Callbacks( "memory" ),
+ state = "pending",
+ lists = {
+ resolve: doneList,
+ reject: failList,
+ notify: progressList
+ },
+ promise = {
+ done: doneList.add,
+ fail: failList.add,
+ progress: progressList.add,
+
+ state: function() {
+ return state;
+ },
+
+ // Deprecated
+ isResolved: doneList.fired,
+ isRejected: failList.fired,
+
+ then: function( doneCallbacks, failCallbacks, progressCallbacks ) {
+ deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks );
+ return this;
+ },
+ always: function() {
+ deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
+ return this;
+ },
+ pipe: function( fnDone, fnFail, fnProgress ) {
+ return jQuery.Deferred(function( newDefer ) {
+ jQuery.each( {
+ done: [ fnDone, "resolve" ],
+ fail: [ fnFail, "reject" ],
+ progress: [ fnProgress, "notify" ]
+ }, function( handler, data ) {
+ var fn = data[ 0 ],
+ action = data[ 1 ],
+ returned;
+ if ( jQuery.isFunction( fn ) ) {
+ deferred[ handler ](function() {
+ returned = fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify );
+ } else {
+ newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
+ }
+ });
+ } else {
+ deferred[ handler ]( newDefer[ action ] );
+ }
+ });
+ }).promise();
+ },
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj ) {
+ if ( obj == null ) {
+ obj = promise;
+ } else {
+ for ( var key in promise ) {
+ obj[ key ] = promise[ key ];
+ }
+ }
+ return obj;
+ }
+ },
+ deferred = promise.promise({}),
+ key;
+
+ for ( key in lists ) {
+ deferred[ key ] = lists[ key ].fire;
+ deferred[ key + "With" ] = lists[ key ].fireWith;
+ }
+
+ // Handle state
+ deferred.done( function() {
+ state = "resolved";
+ }, failList.disable, progressList.lock ).fail( function() {
+ state = "rejected";
+ }, doneList.disable, progressList.lock );
+
+ // Call given func if any
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+
+ // All done!
+ return deferred;
+ },
+
+ // Deferred helper
+ when: function( firstParam ) {
+ var args = sliceDeferred.call( arguments, 0 ),
+ i = 0,
+ length = args.length,
+ pValues = new Array( length ),
+ count = length,
+ pCount = length,
+ deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
+ firstParam :
+ jQuery.Deferred(),
+ promise = deferred.promise();
+ function resolveFunc( i ) {
+ return function( value ) {
+ args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+ if ( !( --count ) ) {
+ deferred.resolveWith( deferred, args );
+ }
+ };
+ }
+ function progressFunc( i ) {
+ return function( value ) {
+ pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+ deferred.notifyWith( promise, pValues );
+ };
+ }
+ if ( length > 1 ) {
+ for ( ; i < length; i++ ) {
+ if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) {
+ args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) );
+ } else {
+ --count;
+ }
+ }
+ if ( !count ) {
+ deferred.resolveWith( deferred, args );
+ }
+ } else if ( deferred !== firstParam ) {
+ deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
+ }
+ return promise;
+ }
+});
+
+
+
+
+jQuery.support = (function() {
+
+ var support,
+ all,
+ a,
+ select,
+ opt,
+ input,
+ fragment,
+ tds,
+ events,
+ eventName,
+ i,
+ isSupported,
+ div = document.createElement( "div" ),
+ documentElement = document.documentElement;
+
+ // Preliminary tests
+ div.setAttribute("className", "t");
+ div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
+
+ all = div.getElementsByTagName( "*" );
+ a = div.getElementsByTagName( "a" )[ 0 ];
+
+ // Can't get basic test support
+ if ( !all || !all.length || !a ) {
+ return {};
+ }
+
+ // First batch of supports tests
+ select = document.createElement( "select" );
+ opt = select.appendChild( document.createElement("option") );
+ input = div.getElementsByTagName( "input" )[ 0 ];
+
+ support = {
+ // IE strips leading whitespace when .innerHTML is used
+ leadingWhitespace: ( div.firstChild.nodeType === 3 ),
+
+ // Make sure that tbody elements aren't automatically inserted
+ // IE will insert them into empty tables
+ tbody: !div.getElementsByTagName("tbody").length,
+
+ // Make sure that link elements get serialized correctly by innerHTML
+ // This requires a wrapper element in IE
+ htmlSerialize: !!div.getElementsByTagName("link").length,
+
+ // Get the style information from getAttribute
+ // (IE uses .cssText instead)
+ style: /top/.test( a.getAttribute("style") ),
+
+ // Make sure that URLs aren't manipulated
+ // (IE normalizes it by default)
+ hrefNormalized: ( a.getAttribute("href") === "/a" ),
+
+ // Make sure that element opacity exists
+ // (IE uses filter instead)
+ // Use a regex to work around a WebKit issue. See #5145
+ opacity: /^0.55/.test( a.style.opacity ),
+
+ // Verify style float existence
+ // (IE uses styleFloat instead of cssFloat)
+ cssFloat: !!a.style.cssFloat,
+
+ // Make sure that if no value is specified for a checkbox
+ // that it defaults to "on".
+ // (WebKit defaults to "" instead)
+ checkOn: ( input.value === "on" ),
+
+ // Make sure that a selected-by-default option has a working selected property.
+ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+ optSelected: opt.selected,
+
+ // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
+ getSetAttribute: div.className !== "t",
+
+ // Tests for enctype support on a form(#6743)
+ enctype: !!document.createElement("form").enctype,
+
+ // Makes sure cloning an html5 element does not cause problems
+ // Where outerHTML is undefined, this still works
+ html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>",
+
+ // Will be defined later
+ submitBubbles: true,
+ changeBubbles: true,
+ focusinBubbles: false,
+ deleteExpando: true,
+ noCloneEvent: true,
+ inlineBlockNeedsLayout: false,
+ shrinkWrapBlocks: false,
+ reliableMarginRight: true,
+ pixelMargin: true
+ };
+
+ // jQuery.boxModel DEPRECATED in 1.3, use jQuery.support.boxModel instead
+ jQuery.boxModel = support.boxModel = (document.compatMode === "CSS1Compat");
+
+ // Make sure checked status is properly cloned
+ input.checked = true;
+ support.noCloneChecked = input.cloneNode( true ).checked;
+
+ // Make sure that the options inside disabled selects aren't marked as disabled
+ // (WebKit marks them as disabled)
+ select.disabled = true;
+ support.optDisabled = !opt.disabled;
+
+ // Test to see if it's possible to delete an expando from an element
+ // Fails in Internet Explorer
+ try {
+ delete div.test;
+ } catch( e ) {
+ support.deleteExpando = false;
+ }
+
+ if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
+ div.attachEvent( "onclick", function() {
+ // Cloning a node shouldn't copy over any
+ // bound event handlers (IE does this)
+ support.noCloneEvent = false;
+ });
+ div.cloneNode( true ).fireEvent( "onclick" );
+ }
+
+ // Check if a radio maintains its value
+ // after being appended to the DOM
+ input = document.createElement("input");
+ input.value = "t";
+ input.setAttribute("type", "radio");
+ support.radioValue = input.value === "t";
+
+ input.setAttribute("checked", "checked");
+
+ // #11217 - WebKit loses check when the name is after the checked attribute
+ input.setAttribute( "name", "t" );
+
+ div.appendChild( input );
+ fragment = document.createDocumentFragment();
+ fragment.appendChild( div.lastChild );
+
+ // WebKit doesn't clone checked state correctly in fragments
+ support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+ // Check if a disconnected checkbox will retain its checked
+ // value of true after appended to the DOM (IE6/7)
+ support.appendChecked = input.checked;
+
+ fragment.removeChild( input );
+ fragment.appendChild( div );
+
+ // Technique from Juriy Zaytsev
+ // http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
+ // We only care about the case where non-standard event systems
+ // are used, namely in IE. Short-circuiting here helps us to
+ // avoid an eval call (in setAttribute) which can cause CSP
+ // to go haywire. See: https://developer.mozilla.org/en/Security/CSP
+ if ( div.attachEvent ) {
+ for ( i in {
+ submit: 1,
+ change: 1,
+ focusin: 1
+ }) {
+ eventName = "on" + i;
+ isSupported = ( eventName in div );
+ if ( !isSupported ) {
+ div.setAttribute( eventName, "return;" );
+ isSupported = ( typeof div[ eventName ] === "function" );
+ }
+ support[ i + "Bubbles" ] = isSupported;
+ }
+ }
+
+ fragment.removeChild( div );
+
+ // Null elements to avoid leaks in IE
+ fragment = select = opt = div = input = null;
+
+ // Run tests that need a body at doc ready
+ jQuery(function() {
+ var container, outer, inner, table, td, offsetSupport,
+ marginDiv, conMarginTop, style, html, positionTopLeftWidthHeight,
+ paddingMarginBorderVisibility, paddingMarginBorder,
+ body = document.getElementsByTagName("body")[0];
+
+ if ( !body ) {
+ // Return for frameset docs that don't have a body
+ return;
+ }
+
+ conMarginTop = 1;
+ paddingMarginBorder = "padding:0;margin:0;border:";
+ positionTopLeftWidthHeight = "position:absolute;top:0;left:0;width:1px;height:1px;";
+ paddingMarginBorderVisibility = paddingMarginBorder + "0;visibility:hidden;";
+ style = "style='" + positionTopLeftWidthHeight + paddingMarginBorder + "5px solid #000;";
+ html = "<div " + style + "display:block;'><div style='" + paddingMarginBorder + "0;display:block;overflow:hidden;'></div></div>" +
+ "<table " + style + "' cellpadding='0' cellspacing='0'>" +
+ "<tr><td></td></tr></table>";
+
+ container = document.createElement("div");
+ container.style.cssText = paddingMarginBorderVisibility + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px";
+ body.insertBefore( container, body.firstChild );
+
+ // Construct the test element
+ div = document.createElement("div");
+ container.appendChild( div );
+
+ // Check if table cells still have offsetWidth/Height when they are set
+ // to display:none and there are still other visible table cells in a
+ // table row; if so, offsetWidth/Height are not reliable for use when
+ // determining if an element has been hidden directly using
+ // display:none (it is still safe to use offsets if a parent element is
+ // hidden; don safety goggles and see bug #4512 for more information).
+ // (only IE 8 fails this test)
+ div.innerHTML = "<table><tr><td style='" + paddingMarginBorder + "0;display:none'></td><td>t</td></tr></table>";
+ tds = div.getElementsByTagName( "td" );
+ isSupported = ( tds[ 0 ].offsetHeight === 0 );
+
+ tds[ 0 ].style.display = "";
+ tds[ 1 ].style.display = "none";
+
+ // Check if empty table cells still have offsetWidth/Height
+ // (IE <= 8 fail this test)
+ support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
+
+ // Check if div with explicit width and no margin-right incorrectly
+ // gets computed margin-right based on width of container. For more
+ // info see bug #3333
+ // Fails in WebKit before Feb 2011 nightlies
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ if ( window.getComputedStyle ) {
+ div.innerHTML = "";
+ marginDiv = document.createElement( "div" );
+ marginDiv.style.width = "0";
+ marginDiv.style.marginRight = "0";
+ div.style.width = "2px";
+ div.appendChild( marginDiv );
+ support.reliableMarginRight =
+ ( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
+ }
+
+ if ( typeof div.style.zoom !== "undefined" ) {
+ // Check if natively block-level elements act like inline-block
+ // elements when setting their display to 'inline' and giving
+ // them layout
+ // (IE < 8 does this)
+ div.innerHTML = "";
+ div.style.width = div.style.padding = "1px";
+ div.style.border = 0;
+ div.style.overflow = "hidden";
+ div.style.display = "inline";
+ div.style.zoom = 1;
+ support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
+
+ // Check if elements with layout shrink-wrap their children
+ // (IE 6 does this)
+ div.style.display = "block";
+ div.style.overflow = "visible";
+ div.innerHTML = "<div style='width:5px;'></div>";
+ support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
+ }
+
+ div.style.cssText = positionTopLeftWidthHeight + paddingMarginBorderVisibility;
+ div.innerHTML = html;
+
+ outer = div.firstChild;
+ inner = outer.firstChild;
+ td = outer.nextSibling.firstChild.firstChild;
+
+ offsetSupport = {
+ doesNotAddBorder: ( inner.offsetTop !== 5 ),
+ doesAddBorderForTableAndCells: ( td.offsetTop === 5 )
+ };
+
+ inner.style.position = "fixed";
+ inner.style.top = "20px";
+
+ // safari subtracts parent border width here which is 5px
+ offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 );
+ inner.style.position = inner.style.top = "";
+
+ outer.style.overflow = "hidden";
+ outer.style.position = "relative";
+
+ offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 );
+ offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop );
+
+ if ( window.getComputedStyle ) {
+ div.style.marginTop = "1%";
+ support.pixelMargin = ( window.getComputedStyle( div, null ) || { marginTop: 0 } ).marginTop !== "1%";
+ }
+
+ if ( typeof container.style.zoom !== "undefined" ) {
+ container.style.zoom = 1;
+ }
+
+ body.removeChild( container );
+ marginDiv = div = container = null;
+
+ jQuery.extend( support, offsetSupport );
+ });
+
+ return support;
+})();
+
+
+
+
+var rbrace = /^(?:\{.*\}|\[.*\])$/,
+ rmultiDash = /([A-Z])/g;
+
+jQuery.extend({
+ cache: {},
+
+ // Please use with caution
+ uuid: 0,
+
+ // Unique for each copy of jQuery on the page
+ // Non-digits removed to match rinlinejQuery
+ expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
+
+ // The following elements throw uncatchable exceptions if you
+ // attempt to add expando properties to them.
+ noData: {
+ "embed": true,
+ // Ban all objects except for Flash (which handle expandos)
+ "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
+ "applet": true
+ },
+
+ hasData: function( elem ) {
+ elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
+ return !!elem && !isEmptyDataObject( elem );
+ },
+
+ data: function( elem, name, data, pvt /* Internal Use Only */ ) {
+ if ( !jQuery.acceptData( elem ) ) {
+ return;
+ }
+
+ var privateCache, thisCache, ret,
+ internalKey = jQuery.expando,
+ getByName = typeof name === "string",
+
+ // We have to handle DOM nodes and JS objects differently because IE6-7
+ // can't GC object references properly across the DOM-JS boundary
+ isNode = elem.nodeType,
+
+ // Only DOM nodes need the global jQuery cache; JS object data is
+ // attached directly to the object so GC can occur automatically
+ cache = isNode ? jQuery.cache : elem,
+
+ // Only defining an ID for JS objects if its cache already exists allows
+ // the code to shortcut on the same path as a DOM node with no cache
+ id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey,
+ isEvents = name === "events";
+
+ // Avoid doing any more work than we need to when trying to get data on an
+ // object that has no data at all
+ if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) {
+ return;
+ }
+
+ if ( !id ) {
+ // Only DOM nodes need a new unique ID for each element since their data
+ // ends up in the global cache
+ if ( isNode ) {
+ elem[ internalKey ] = id = ++jQuery.uuid;
+ } else {
+ id = internalKey;
+ }
+ }
+
+ if ( !cache[ id ] ) {
+ cache[ id ] = {};
+
+ // Avoids exposing jQuery metadata on plain JS objects when the object
+ // is serialized using JSON.stringify
+ if ( !isNode ) {
+ cache[ id ].toJSON = jQuery.noop;
+ }
+ }
+
+ // An object can be passed to jQuery.data instead of a key/value pair; this gets
+ // shallow copied over onto the existing cache
+ if ( typeof name === "object" || typeof name === "function" ) {
+ if ( pvt ) {
+ cache[ id ] = jQuery.extend( cache[ id ], name );
+ } else {
+ cache[ id ].data = jQuery.extend( cache[ id ].data, name );
+ }
+ }
+
+ privateCache = thisCache = cache[ id ];
+
+ // jQuery data() is stored in a separate object inside the object's internal data
+ // cache in order to avoid key collisions between internal data and user-defined
+ // data.
+ if ( !pvt ) {
+ if ( !thisCache.data ) {
+ thisCache.data = {};
+ }
+
+ thisCache = thisCache.data;
+ }
+
+ if ( data !== undefined ) {
+ thisCache[ jQuery.camelCase( name ) ] = data;
+ }
+
+ // Users should not attempt to inspect the internal events object using jQuery.data,
+ // it is undocumented and subject to change. But does anyone listen? No.
+ if ( isEvents && !thisCache[ name ] ) {
+ return privateCache.events;
+ }
+
+ // Check for both converted-to-camel and non-converted data property names
+ // If a data property was specified
+ if ( getByName ) {
+
+ // First Try to find as-is property data
+ ret = thisCache[ name ];
+
+ // Test for null|undefined property data
+ if ( ret == null ) {
+
+ // Try to find the camelCased property
+ ret = thisCache[ jQuery.camelCase( name ) ];
+ }
+ } else {
+ ret = thisCache;
+ }
+
+ return ret;
+ },
+
+ removeData: function( elem, name, pvt /* Internal Use Only */ ) {
+ if ( !jQuery.acceptData( elem ) ) {
+ return;
+ }
+
+ var thisCache, i, l,
+
+ // Reference to internal data cache key
+ internalKey = jQuery.expando,
+
+ isNode = elem.nodeType,
+
+ // See jQuery.data for more information
+ cache = isNode ? jQuery.cache : elem,
+
+ // See jQuery.data for more information
+ id = isNode ? elem[ internalKey ] : internalKey;
+
+ // If there is already no cache entry for this object, there is no
+ // purpose in continuing
+ if ( !cache[ id ] ) {
+ return;
+ }
+
+ if ( name ) {
+
+ thisCache = pvt ? cache[ id ] : cache[ id ].data;
+
+ if ( thisCache ) {
+
+ // Support array or space separated string names for data keys
+ if ( !jQuery.isArray( name ) ) {
+
+ // try the string as a key before any manipulation
+ if ( name in thisCache ) {
+ name = [ name ];
+ } else {
+
+ // split the camel cased version by spaces unless a key with the spaces exists
+ name = jQuery.camelCase( name );
+ if ( name in thisCache ) {
+ name = [ name ];
+ } else {
+ name = name.split( " " );
+ }
+ }
+ }
+
+ for ( i = 0, l = name.length; i < l; i++ ) {
+ delete thisCache[ name[i] ];
+ }
+
+ // If there is no data left in the cache, we want to continue
+ // and let the cache object itself get destroyed
+ if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {
+ return;
+ }
+ }
+ }
+
+ // See jQuery.data for more information
+ if ( !pvt ) {
+ delete cache[ id ].data;
+
+ // Don't destroy the parent cache unless the internal data object
+ // had been the only thing left in it
+ if ( !isEmptyDataObject(cache[ id ]) ) {
+ return;
+ }
+ }
+
+ // Browsers that fail expando deletion also refuse to delete expandos on
+ // the window, but it will allow it on all other JS objects; other browsers
+ // don't care
+ // Ensure that `cache` is not a window object #10080
+ if ( jQuery.support.deleteExpando || !cache.setInterval ) {
+ delete cache[ id ];
+ } else {
+ cache[ id ] = null;
+ }
+
+ // We destroyed the cache and need to eliminate the expando on the node to avoid
+ // false lookups in the cache for entries that no longer exist
+ if ( isNode ) {
+ // IE does not allow us to delete expando properties from nodes,
+ // nor does it have a removeAttribute function on Document nodes;
+ // we must handle all of these cases
+ if ( jQuery.support.deleteExpando ) {
+ delete elem[ internalKey ];
+ } else if ( elem.removeAttribute ) {
+ elem.removeAttribute( internalKey );
+ } else {
+ elem[ internalKey ] = null;
+ }
+ }
+ },
+
+ // For internal use only.
+ _data: function( elem, name, data ) {
+ return jQuery.data( elem, name, data, true );
+ },
+
+ // A method for determining if a DOM node can handle the data expando
+ acceptData: function( elem ) {
+ if ( elem.nodeName ) {
+ var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
+
+ if ( match ) {
+ return !(match === true || elem.getAttribute("classid") !== match);
+ }
+ }
+
+ return true;
+ }
+});
+
+jQuery.fn.extend({
+ data: function( key, value ) {
+ var parts, part, attr, name, l,
+ elem = this[0],
+ i = 0,
+ data = null;
+
+ // Gets all values
+ if ( key === undefined ) {
+ if ( this.length ) {
+ data = jQuery.data( elem );
+
+ if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
+ attr = elem.attributes;
+ for ( l = attr.length; i < l; i++ ) {
+ name = attr[i].name;
+
+ if ( name.indexOf( "data-" ) === 0 ) {
+ name = jQuery.camelCase( name.substring(5) );
+
+ dataAttr( elem, name, data[ name ] );
+ }
+ }
+ jQuery._data( elem, "parsedAttrs", true );
+ }
+ }
+
+ return data;
+ }
+
+ // Sets multiple values
+ if ( typeof key === "object" ) {
+ return this.each(function() {
+ jQuery.data( this, key );
+ });
+ }
+
+ parts = key.split( ".", 2 );
+ parts[1] = parts[1] ? "." + parts[1] : "";
+ part = parts[1] + "!";
+
+ return jQuery.access( this, function( value ) {
+
+ if ( value === undefined ) {
+ data = this.triggerHandler( "getData" + part, [ parts[0] ] );
+
+ // Try to fetch any internally stored data first
+ if ( data === undefined && elem ) {
+ data = jQuery.data( elem, key );
+ data = dataAttr( elem, key, data );
+ }
+
+ return data === undefined && parts[1] ?
+ this.data( parts[0] ) :
+ data;
+ }
+
+ parts[1] = value;
+ this.each(function() {
+ var self = jQuery( this );
+
+ self.triggerHandler( "setData" + part, parts );
+ jQuery.data( this, key, value );
+ self.triggerHandler( "changeData" + part, parts );
+ });
+ }, null, value, arguments.length > 1, null, false );
+ },
+
+ removeData: function( key ) {
+ return this.each(function() {
+ jQuery.removeData( this, key );
+ });
+ }
+});
+
+function dataAttr( elem, key, data ) {
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if ( data === undefined && elem.nodeType === 1 ) {
+
+ var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+
+ data = elem.getAttribute( name );
+
+ if ( typeof data === "string" ) {
+ try {
+ data = data === "true" ? true :
+ data === "false" ? false :
+ data === "null" ? null :
+ jQuery.isNumeric( data ) ? +data :
+ rbrace.test( data ) ? jQuery.parseJSON( data ) :
+ data;
+ } catch( e ) {}
+
+ // Make sure we set the data so it isn't changed later
+ jQuery.data( elem, key, data );
+
+ } else {
+ data = undefined;
+ }
+ }
+
+ return data;
+}
+
+// checks a cache object for emptiness
+function isEmptyDataObject( obj ) {
+ for ( var name in obj ) {
+
+ // if the public data object is empty, the private is still empty
+ if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
+ continue;
+ }
+ if ( name !== "toJSON" ) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+
+
+
+function handleQueueMarkDefer( elem, type, src ) {
+ var deferDataKey = type + "defer",
+ queueDataKey = type + "queue",
+ markDataKey = type + "mark",
+ defer = jQuery._data( elem, deferDataKey );
+ if ( defer &&
+ ( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&
+ ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {
+ // Give room for hard-coded callbacks to fire first
+ // and eventually mark/queue something else on the element
+ setTimeout( function() {
+ if ( !jQuery._data( elem, queueDataKey ) &&
+ !jQuery._data( elem, markDataKey ) ) {
+ jQuery.removeData( elem, deferDataKey, true );
+ defer.fire();
+ }
+ }, 0 );
+ }
+}
+
+jQuery.extend({
+
+ _mark: function( elem, type ) {
+ if ( elem ) {
+ type = ( type || "fx" ) + "mark";
+ jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 );
+ }
+ },
+
+ _unmark: function( force, elem, type ) {
+ if ( force !== true ) {
+ type = elem;
+ elem = force;
+ force = false;
+ }
+ if ( elem ) {
+ type = type || "fx";
+ var key = type + "mark",
+ count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 );
+ if ( count ) {
+ jQuery._data( elem, key, count );
+ } else {
+ jQuery.removeData( elem, key, true );
+ handleQueueMarkDefer( elem, type, "mark" );
+ }
+ }
+ },
+
+ queue: function( elem, type, data ) {
+ var q;
+ if ( elem ) {
+ type = ( type || "fx" ) + "queue";
+ q = jQuery._data( elem, type );
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( data ) {
+ if ( !q || jQuery.isArray(data) ) {
+ q = jQuery._data( elem, type, jQuery.makeArray(data) );
+ } else {
+ q.push( data );
+ }
+ }
+ return q || [];
+ }
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ),
+ fn = queue.shift(),
+ hooks = {};
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ }
+
+ if ( fn ) {
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift( "inprogress" );
+ }
+
+ jQuery._data( elem, type + ".run", hooks );
+ fn.call( elem, function() {
+ jQuery.dequeue( elem, type );
+ }, hooks );
+ }
+
+ if ( !queue.length ) {
+ jQuery.removeData( elem, type + "queue " + type + ".run", true );
+ handleQueueMarkDefer( elem, type, "queue" );
+ }
+ }
+});
+
+jQuery.fn.extend({
+ queue: function( type, data ) {
+ var setter = 2;
+
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ setter--;
+ }
+
+ if ( arguments.length < setter ) {
+ return jQuery.queue( this[0], type );
+ }
+
+ return data === undefined ?
+ this :
+ this.each(function() {
+ var queue = jQuery.queue( this, type, data );
+
+ if ( type === "fx" && queue[0] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ });
+ },
+ dequeue: function( type ) {
+ return this.each(function() {
+ jQuery.dequeue( this, type );
+ });
+ },
+ // Based off of the plugin by Clint Helfers, with permission.
+ // http://blindsignals.com/index.php/2009/07/jquery-delay/
+ delay: function( time, type ) {
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+ type = type || "fx";
+
+ return this.queue( type, function( next, hooks ) {
+ var timeout = setTimeout( next, time );
+ hooks.stop = function() {
+ clearTimeout( timeout );
+ };
+ });
+ },
+ clearQueue: function( type ) {
+ return this.queue( type || "fx", [] );
+ },
+ // Get a promise resolved when queues of a certain type
+ // are emptied (fx is the type by default)
+ promise: function( type, object ) {
+ if ( typeof type !== "string" ) {
+ object = type;
+ type = undefined;
+ }
+ type = type || "fx";
+ var defer = jQuery.Deferred(),
+ elements = this,
+ i = elements.length,
+ count = 1,
+ deferDataKey = type + "defer",
+ queueDataKey = type + "queue",
+ markDataKey = type + "mark",
+ tmp;
+ function resolve() {
+ if ( !( --count ) ) {
+ defer.resolveWith( elements, [ elements ] );
+ }
+ }
+ while( i-- ) {
+ if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
+ ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
+ jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
+ jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {
+ count++;
+ tmp.add( resolve );
+ }
+ }
+ resolve();
+ return defer.promise( object );
+ }
+});
+
+
+
+
+var rclass = /[\n\t\r]/g,
+ rspace = /\s+/,
+ rreturn = /\r/g,
+ rtype = /^(?:button|input)$/i,
+ rfocusable = /^(?:button|input|object|select|textarea)$/i,
+ rclickable = /^a(?:rea)?$/i,
+ rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
+ getSetAttribute = jQuery.support.getSetAttribute,
+ nodeHook, boolHook, fixSpecified;
+
+jQuery.fn.extend({
+ attr: function( name, value ) {
+ return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
+ },
+
+ removeAttr: function( name ) {
+ return this.each(function() {
+ jQuery.removeAttr( this, name );
+ });
+ },
+
+ prop: function( name, value ) {
+ return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );
+ },
+
+ removeProp: function( name ) {
+ name = jQuery.propFix[ name ] || name;
+ return this.each(function() {
+ // try/catch handles cases where IE balks (such as removing a property on window)
+ try {
+ this[ name ] = undefined;
+ delete this[ name ];
+ } catch( e ) {}
+ });
+ },
+
+ addClass: function( value ) {
+ var classNames, i, l, elem,
+ setClass, c, cl;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( j ) {
+ jQuery( this ).addClass( value.call(this, j, this.className) );
+ });
+ }
+
+ if ( value && typeof value === "string" ) {
+ classNames = value.split( rspace );
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ elem = this[ i ];
+
+ if ( elem.nodeType === 1 ) {
+ if ( !elem.className && classNames.length === 1 ) {
+ elem.className = value;
+
+ } else {
+ setClass = " " + elem.className + " ";
+
+ for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+ if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
+ setClass += classNames[ c ] + " ";
+ }
+ }
+ elem.className = jQuery.trim( setClass );
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function( value ) {
+ var classNames, i, l, elem, className, c, cl;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( j ) {
+ jQuery( this ).removeClass( value.call(this, j, this.className) );
+ });
+ }
+
+ if ( (value && typeof value === "string") || value === undefined ) {
+ classNames = ( value || "" ).split( rspace );
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ elem = this[ i ];
+
+ if ( elem.nodeType === 1 && elem.className ) {
+ if ( value ) {
+ className = (" " + elem.className + " ").replace( rclass, " " );
+ for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+ className = className.replace(" " + classNames[ c ] + " ", " ");
+ }
+ elem.className = jQuery.trim( className );
+
+ } else {
+ elem.className = "";
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function( value, stateVal ) {
+ var type = typeof value,
+ isBool = typeof stateVal === "boolean";
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( i ) {
+ jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
+ });
+ }
+
+ return this.each(function() {
+ if ( type === "string" ) {
+ // toggle individual class names
+ var className,
+ i = 0,
+ self = jQuery( this ),
+ state = stateVal,
+ classNames = value.split( rspace );
+
+ while ( (className = classNames[ i++ ]) ) {
+ // check each className given, space seperated list
+ state = isBool ? state : !self.hasClass( className );
+ self[ state ? "addClass" : "removeClass" ]( className );
+ }
+
+ } else if ( type === "undefined" || type === "boolean" ) {
+ if ( this.className ) {
+ // store className if set
+ jQuery._data( this, "__className__", this.className );
+ }
+
+ // toggle whole className
+ this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
+ }
+ });
+ },
+
+ hasClass: function( selector ) {
+ var className = " " + selector + " ",
+ i = 0,
+ l = this.length;
+ for ( ; i < l; i++ ) {
+ if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ val: function( value ) {
+ var hooks, ret, isFunction,
+ elem = this[0];
+
+ if ( !arguments.length ) {
+ if ( elem ) {
+ hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
+ return ret;
+ }
+
+ ret = elem.value;
+
+ return typeof ret === "string" ?
+ // handle most common string cases
+ ret.replace(rreturn, "") :
+ // handle cases where value is null/undef or number
+ ret == null ? "" : ret;
+ }
+
+ return;
+ }
+
+ isFunction = jQuery.isFunction( value );
+
+ return this.each(function( i ) {
+ var self = jQuery(this), val;
+
+ if ( this.nodeType !== 1 ) {
+ return;
+ }
+
+ if ( isFunction ) {
+ val = value.call( this, i, self.val() );
+ } else {
+ val = value;
+ }
+
+ // Treat null/undefined as ""; convert numbers to string
+ if ( val == null ) {
+ val = "";
+ } else if ( typeof val === "number" ) {
+ val += "";
+ } else if ( jQuery.isArray( val ) ) {
+ val = jQuery.map(val, function ( value ) {
+ return value == null ? "" : value + "";
+ });
+ }
+
+ hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+ // If set returns undefined, fall back to normal setting
+ if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
+ this.value = val;
+ }
+ });
+ }
+});
+
+jQuery.extend({
+ valHooks: {
+ option: {
+ get: function( elem ) {
+ // attributes.value is undefined in Blackberry 4.7 but
+ // uses .value. See #6932
+ var val = elem.attributes.value;
+ return !val || val.specified ? elem.value : elem.text;
+ }
+ },
+ select: {
+ get: function( elem ) {
+ var value, i, max, option,
+ index = elem.selectedIndex,
+ values = [],
+ options = elem.options,
+ one = elem.type === "select-one";
+
+ // Nothing was selected
+ if ( index < 0 ) {
+ return null;
+ }
+
+ // Loop through all the selected options
+ i = one ? index : 0;
+ max = one ? index + 1 : options.length;
+ for ( ; i < max; i++ ) {
+ option = options[ i ];
+
+ // Don't return options that are disabled or in a disabled optgroup
+ if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
+ (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
+
+ // Get the specific value for the option
+ value = jQuery( option ).val();
+
+ // We don't need an array for one selects
+ if ( one ) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ // Fixes Bug #2551 -- select.val() broken in IE after form.reset()
+ if ( one && !values.length && options.length ) {
+ return jQuery( options[ index ] ).val();
+ }
+
+ return values;
+ },
+
+ set: function( elem, value ) {
+ var values = jQuery.makeArray( value );
+
+ jQuery(elem).find("option").each(function() {
+ this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
+ });
+
+ if ( !values.length ) {
+ elem.selectedIndex = -1;
+ }
+ return values;
+ }
+ }
+ },
+
+ attrFn: {
+ val: true,
+ css: true,
+ html: true,
+ text: true,
+ data: true,
+ width: true,
+ height: true,
+ offset: true
+ },
+
+ attr: function( elem, name, value, pass ) {
+ var ret, hooks, notxml,
+ nType = elem.nodeType;
+
+ // don't get/set attributes on text, comment and attribute nodes
+ if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ if ( pass && name in jQuery.attrFn ) {
+ return jQuery( elem )[ name ]( value );
+ }
+
+ // Fallback to prop when attributes are not supported
+ if ( typeof elem.getAttribute === "undefined" ) {
+ return jQuery.prop( elem, name, value );
+ }
+
+ notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+ // All attributes are lowercase
+ // Grab necessary hook if one is defined
+ if ( notxml ) {
+ name = name.toLowerCase();
+ hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );
+ }
+
+ if ( value !== undefined ) {
+
+ if ( value === null ) {
+ jQuery.removeAttr( elem, name );
+ return;
+
+ } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
+ return ret;
+
+ } else {
+ elem.setAttribute( name, "" + value );
+ return value;
+ }
+
+ } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
+ return ret;
+
+ } else {
+
+ ret = elem.getAttribute( name );
+
+ // Non-existent attributes return null, we normalize to undefined
+ return ret === null ?
+ undefined :
+ ret;
+ }
+ },
+
+ removeAttr: function( elem, value ) {
+ var propName, attrNames, name, l, isBool,
+ i = 0;
+
+ if ( value && elem.nodeType === 1 ) {
+ attrNames = value.toLowerCase().split( rspace );
+ l = attrNames.length;
+
+ for ( ; i < l; i++ ) {
+ name = attrNames[ i ];
+
+ if ( name ) {
+ propName = jQuery.propFix[ name ] || name;
+ isBool = rboolean.test( name );
+
+ // See #9699 for explanation of this approach (setting first, then removal)
+ // Do not do this for boolean attributes (see #10870)
+ if ( !isBool ) {
+ jQuery.attr( elem, name, "" );
+ }
+ elem.removeAttribute( getSetAttribute ? name : propName );
+
+ // Set corresponding property to false for boolean attributes
+ if ( isBool && propName in elem ) {
+ elem[ propName ] = false;
+ }
+ }
+ }
+ }
+ },
+
+ attrHooks: {
+ type: {
+ set: function( elem, value ) {
+ // We can't allow the type property to be changed (since it causes problems in IE)
+ if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
+ jQuery.error( "type property can't be changed" );
+ } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
+ // Setting the type on a radio button after the value resets the value in IE6-9
+ // Reset value to it's default in case type is set after value
+ // This is for element creation
+ var val = elem.value;
+ elem.setAttribute( "type", value );
+ if ( val ) {
+ elem.value = val;
+ }
+ return value;
+ }
+ }
+ },
+ // Use the value property for back compat
+ // Use the nodeHook for button elements in IE6/7 (#1954)
+ value: {
+ get: function( elem, name ) {
+ if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+ return nodeHook.get( elem, name );
+ }
+ return name in elem ?
+ elem.value :
+ null;
+ },
+ set: function( elem, value, name ) {
+ if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+ return nodeHook.set( elem, value, name );
+ }
+ // Does not return so that setAttribute is also used
+ elem.value = value;
+ }
+ }
+ },
+
+ propFix: {
+ tabindex: "tabIndex",
+ readonly: "readOnly",
+ "for": "htmlFor",
+ "class": "className",
+ maxlength: "maxLength",
+ cellspacing: "cellSpacing",
+ cellpadding: "cellPadding",
+ rowspan: "rowSpan",
+ colspan: "colSpan",
+ usemap: "useMap",
+ frameborder: "frameBorder",
+ contenteditable: "contentEditable"
+ },
+
+ prop: function( elem, name, value ) {
+ var ret, hooks, notxml,
+ nType = elem.nodeType;
+
+ // don't get/set properties on text, comment and attribute nodes
+ if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+ if ( notxml ) {
+ // Fix name and attach hooks
+ name = jQuery.propFix[ name ] || name;
+ hooks = jQuery.propHooks[ name ];
+ }
+
+ if ( value !== undefined ) {
+ if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
+ return ret;
+
+ } else {
+ return ( elem[ name ] = value );
+ }
+
+ } else {
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
+ return ret;
+
+ } else {
+ return elem[ name ];
+ }
+ }
+ },
+
+ propHooks: {
+ tabIndex: {
+ get: function( elem ) {
+ // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ var attributeNode = elem.getAttributeNode("tabindex");
+
+ return attributeNode && attributeNode.specified ?
+ parseInt( attributeNode.value, 10 ) :
+ rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
+ 0 :
+ undefined;
+ }
+ }
+ }
+});
+
+// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional)
+jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex;
+
+// Hook for boolean attributes
+boolHook = {
+ get: function( elem, name ) {
+ // Align boolean attributes with corresponding properties
+ // Fall back to attribute presence where some booleans are not supported
+ var attrNode,
+ property = jQuery.prop( elem, name );
+ return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
+ name.toLowerCase() :
+ undefined;
+ },
+ set: function( elem, value, name ) {
+ var propName;
+ if ( value === false ) {
+ // Remove boolean attributes when set to false
+ jQuery.removeAttr( elem, name );
+ } else {
+ // value is true since we know at this point it's type boolean and not false
+ // Set boolean attributes to the same name and set the DOM property
+ propName = jQuery.propFix[ name ] || name;
+ if ( propName in elem ) {
+ // Only set the IDL specifically if it already exists on the element
+ elem[ propName ] = true;
+ }
+
+ elem.setAttribute( name, name.toLowerCase() );
+ }
+ return name;
+ }
+};
+
+// IE6/7 do not support getting/setting some attributes with get/setAttribute
+if ( !getSetAttribute ) {
+
+ fixSpecified = {
+ name: true,
+ id: true,
+ coords: true
+ };
+
+ // Use this for any attribute in IE6/7
+ // This fixes almost every IE6/7 issue
+ nodeHook = jQuery.valHooks.button = {
+ get: function( elem, name ) {
+ var ret;
+ ret = elem.getAttributeNode( name );
+ return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ?
+ ret.nodeValue :
+ undefined;
+ },
+ set: function( elem, value, name ) {
+ // Set the existing or create a new attribute node
+ var ret = elem.getAttributeNode( name );
+ if ( !ret ) {
+ ret = document.createAttribute( name );
+ elem.setAttributeNode( ret );
+ }
+ return ( ret.nodeValue = value + "" );
+ }
+ };
+
+ // Apply the nodeHook to tabindex
+ jQuery.attrHooks.tabindex.set = nodeHook.set;
+
+ // Set width and height to auto instead of 0 on empty string( Bug #8150 )
+ // This is for removals
+ jQuery.each([ "width", "height" ], function( i, name ) {
+ jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+ set: function( elem, value ) {
+ if ( value === "" ) {
+ elem.setAttribute( name, "auto" );
+ return value;
+ }
+ }
+ });
+ });
+
+ // Set contenteditable to false on removals(#10429)
+ // Setting to empty string throws an error as an invalid value
+ jQuery.attrHooks.contenteditable = {
+ get: nodeHook.get,
+ set: function( elem, value, name ) {
+ if ( value === "" ) {
+ value = "false";
+ }
+ nodeHook.set( elem, value, name );
+ }
+ };
+}
+
+
+// Some attributes require a special call on IE
+if ( !jQuery.support.hrefNormalized ) {
+ jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
+ jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+ get: function( elem ) {
+ var ret = elem.getAttribute( name, 2 );
+ return ret === null ? undefined : ret;
+ }
+ });
+ });
+}
+
+if ( !jQuery.support.style ) {
+ jQuery.attrHooks.style = {
+ get: function( elem ) {
+ // Return undefined in the case of empty string
+ // Normalize to lowercase since IE uppercases css property names
+ return elem.style.cssText.toLowerCase() || undefined;
+ },
+ set: function( elem, value ) {
+ return ( elem.style.cssText = "" + value );
+ }
+ };
+}
+
+// Safari mis-reports the default selected property of an option
+// Accessing the parent's selectedIndex property fixes it
+if ( !jQuery.support.optSelected ) {
+ jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
+ get: function( elem ) {
+ var parent = elem.parentNode;
+
+ if ( parent ) {
+ parent.selectedIndex;
+
+ // Make sure that it also works with optgroups, see #5701
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ return null;
+ }
+ });
+}
+
+// IE6/7 call enctype encoding
+if ( !jQuery.support.enctype ) {
+ jQuery.propFix.enctype = "encoding";
+}
+
+// Radios and checkboxes getter/setter
+if ( !jQuery.support.checkOn ) {
+ jQuery.each([ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = {
+ get: function( elem ) {
+ // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
+ return elem.getAttribute("value") === null ? "on" : elem.value;
+ }
+ };
+ });
+}
+jQuery.each([ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
+ set: function( elem, value ) {
+ if ( jQuery.isArray( value ) ) {
+ return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
+ }
+ }
+ });
+});
+
+
+
+
+var rformElems = /^(?:textarea|input|select)$/i,
+ rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/,
+ rhoverHack = /(?:^|\s)hover(\.\S+)?\b/,
+ rkeyEvent = /^key/,
+ rmouseEvent = /^(?:mouse|contextmenu)|click/,
+ rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+ rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,
+ quickParse = function( selector ) {
+ var quick = rquickIs.exec( selector );
+ if ( quick ) {
+ // 0 1 2 3
+ // [ _, tag, id, class ]
+ quick[1] = ( quick[1] || "" ).toLowerCase();
+ quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" );
+ }
+ return quick;
+ },
+ quickIs = function( elem, m ) {
+ var attrs = elem.attributes || {};
+ return (
+ (!m[1] || elem.nodeName.toLowerCase() === m[1]) &&
+ (!m[2] || (attrs.id || {}).value === m[2]) &&
+ (!m[3] || m[3].test( (attrs[ "class" ] || {}).value ))
+ );
+ },
+ hoverHack = function( events ) {
+ return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
+ };
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+ add: function( elem, types, handler, data, selector ) {
+
+ var elemData, eventHandle, events,
+ t, tns, type, namespaces, handleObj,
+ handleObjIn, quick, handlers, special;
+
+ // Don't attach events to noData or text/comment nodes (allow plain objects tho)
+ if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {
+ return;
+ }
+
+ // Caller can pass in an object of custom data in lieu of the handler
+ if ( handler.handler ) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ selector = handleObjIn.selector;
+ }
+
+ // Make sure that the handler has a unique ID, used to find/remove it later
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure and main handler, if this is the first
+ events = elemData.events;
+ if ( !events ) {
+ elemData.events = events = {};
+ }
+ eventHandle = elemData.handle;
+ if ( !eventHandle ) {
+ elemData.handle = eventHandle = function( e ) {
+ // Discard the second event of a jQuery.event.trigger() and
+ // when an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
+ jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
+ undefined;
+ };
+ // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
+ eventHandle.elem = elem;
+ }
+
+ // Handle multiple events separated by a space
+ // jQuery(...).bind("mouseover mouseout", fn);
+ types = jQuery.trim( hoverHack(types) ).split( " " );
+ for ( t = 0; t < types.length; t++ ) {
+
+ tns = rtypenamespace.exec( types[t] ) || [];
+ type = tns[1];
+ namespaces = ( tns[2] || "" ).split( "." ).sort();
+
+ // If event changes its type, use the special event handlers for the changed type
+ special = jQuery.event.special[ type ] || {};
+
+ // If selector defined, determine special event api type, otherwise given type
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+
+ // Update special based on newly reset type
+ special = jQuery.event.special[ type ] || {};
+
+ // handleObj is passed to all event handlers
+ handleObj = jQuery.extend({
+ type: type,
+ origType: tns[1],
+ data: data,
+ handler: handler,
+ guid: handler.guid,
+ selector: selector,
+ quick: selector && quickParse( selector ),
+ namespace: namespaces.join(".")
+ }, handleObjIn );
+
+ // Init the event handler queue if we're the first
+ handlers = events[ type ];
+ if ( !handlers ) {
+ handlers = events[ type ] = [];
+ handlers.delegateCount = 0;
+
+ // Only use addEventListener/attachEvent if the special events handler returns false
+ if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+ // Bind the global event handler to the element
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, eventHandle, false );
+
+ } else if ( elem.attachEvent ) {
+ elem.attachEvent( "on" + type, eventHandle );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ special.add.call( elem, handleObj );
+
+ if ( !handleObj.handler.guid ) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add to the element's handler list, delegates in front
+ if ( selector ) {
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
+ } else {
+ handlers.push( handleObj );
+ }
+
+ // Keep track of which events have ever been used, for event optimization
+ jQuery.event.global[ type ] = true;
+ }
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ global: {},
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler, selector, mappedTypes ) {
+
+ var elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
+ t, tns, type, origType, namespaces, origCount,
+ j, events, special, handle, eventType, handleObj;
+
+ if ( !elemData || !(events = elemData.events) ) {
+ return;
+ }
+
+ // Once for each type.namespace in types; type may be omitted
+ types = jQuery.trim( hoverHack( types || "" ) ).split(" ");
+ for ( t = 0; t < types.length; t++ ) {
+ tns = rtypenamespace.exec( types[t] ) || [];
+ type = origType = tns[1];
+ namespaces = tns[2];
+
+ // Unbind all events (on this namespace, if provided) for the element
+ if ( !type ) {
+ for ( type in events ) {
+ jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+ }
+ continue;
+ }
+
+ special = jQuery.event.special[ type ] || {};
+ type = ( selector? special.delegateType : special.bindType ) || type;
+ eventType = events[ type ] || [];
+ origCount = eventType.length;
+ namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
+
+ // Remove matching events
+ for ( j = 0; j < eventType.length; j++ ) {
+ handleObj = eventType[ j ];
+
+ if ( ( mappedTypes || origType === handleObj.origType ) &&
+ ( !handler || handler.guid === handleObj.guid ) &&
+ ( !namespaces || namespaces.test( handleObj.namespace ) ) &&
+ ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
+ eventType.splice( j--, 1 );
+
+ if ( handleObj.selector ) {
+ eventType.delegateCount--;
+ }
+ if ( special.remove ) {
+ special.remove.call( elem, handleObj );
+ }
+ }
+ }
+
+ // Remove generic event handler if we removed something and no more handlers exist
+ // (avoids potential for endless recursion during removal of special event handlers)
+ if ( eventType.length === 0 && origCount !== eventType.length ) {
+ if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
+ jQuery.removeEvent( elem, type, elemData.handle );
+ }
+
+ delete events[ type ];
+ }
+ }
+
+ // Remove the expando if it's no longer used
+ if ( jQuery.isEmptyObject( events ) ) {
+ handle = elemData.handle;
+ if ( handle ) {
+ handle.elem = null;
+ }
+
+ // removeData also checks for emptiness and clears the expando if empty
+ // so use it instead of delete
+ jQuery.removeData( elem, [ "events", "handle" ], true );
+ }
+ },
+
+ // Events that are safe to short-circuit if no handlers are attached.
+ // Native DOM events should not be added, they may have inline handlers.
+ customEvent: {
+ "getData": true,
+ "setData": true,
+ "changeData": true
+ },
+
+ trigger: function( event, data, elem, onlyHandlers ) {
+ // Don't do events on text and comment nodes
+ if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {
+ return;
+ }
+
+ // Event object or event type
+ var type = event.type || event,
+ namespaces = [],
+ cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType;
+
+ // focus/blur morphs to focusin/out; ensure we're not firing them right now
+ if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+ return;
+ }
+
+ if ( type.indexOf( "!" ) >= 0 ) {
+ // Exclusive events trigger only for the exact event (no namespaces)
+ type = type.slice(0, -1);
+ exclusive = true;
+ }
+
+ if ( type.indexOf( "." ) >= 0 ) {
+ // Namespaced trigger; create a regexp to match event type in handle()
+ namespaces = type.split(".");
+ type = namespaces.shift();
+ namespaces.sort();
+ }
+
+ if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
+ // No jQuery handlers for this event type, and it can't have inline handlers
+ return;
+ }
+
+ // Caller can pass in an Event, Object, or just an event type string
+ event = typeof event === "object" ?
+ // jQuery.Event object
+ event[ jQuery.expando ] ? event :
+ // Object literal
+ new jQuery.Event( type, event ) :
+ // Just the event type (string)
+ new jQuery.Event( type );
+
+ event.type = type;
+ event.isTrigger = true;
+ event.exclusive = exclusive;
+ event.namespace = namespaces.join( "." );
+ event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
+ ontype = type.indexOf( ":" ) < 0 ? "on" + type : "";
+
+ // Handle a global trigger
+ if ( !elem ) {
+
+ // TODO: Stop taunting the data cache; remove global events and always attach to document
+ cache = jQuery.cache;
+ for ( i in cache ) {
+ if ( cache[ i ].events && cache[ i ].events[ type ] ) {
+ jQuery.event.trigger( event, data, cache[ i ].handle.elem, true );
+ }
+ }
+ return;
+ }
+
+ // Clean up the event in case it is being reused
+ event.result = undefined;
+ if ( !event.target ) {
+ event.target = elem;
+ }
+
+ // Clone any incoming data and prepend the event, creating the handler arg list
+ data = data != null ? jQuery.makeArray( data ) : [];
+ data.unshift( event );
+
+ // Allow special events to draw outside the lines
+ special = jQuery.event.special[ type ] || {};
+ if ( special.trigger && special.trigger.apply( elem, data ) === false ) {
+ return;
+ }
+
+ // Determine event propagation path in advance, per W3C events spec (#9951)
+ // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+ eventPath = [[ elem, special.bindType || type ]];
+ if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+ bubbleType = special.delegateType || type;
+ cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode;
+ old = null;
+ for ( ; cur; cur = cur.parentNode ) {
+ eventPath.push([ cur, bubbleType ]);
+ old = cur;
+ }
+
+ // Only add window if we got to document (e.g., not plain obj or detached DOM)
+ if ( old && old === elem.ownerDocument ) {
+ eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);
+ }
+ }
+
+ // Fire handlers on the event path
+ for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) {
+
+ cur = eventPath[i][0];
+ event.type = eventPath[i][1];
+
+ handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
+ if ( handle ) {
+ handle.apply( cur, data );
+ }
+ // Note that this is a bare JS function and not a jQuery handler
+ handle = ontype && cur[ ontype ];
+ if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) {
+ event.preventDefault();
+ }
+ }
+ event.type = type;
+
+ // If nobody prevented the default action, do it now
+ if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+ if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) &&
+ !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
+
+ // Call a native DOM method on the target with the same name name as the event.
+ // Can't use an .isFunction() check here because IE6/7 fails that test.
+ // Don't do default actions on window, that's where global variables be (#6170)
+ // IE<9 dies on focus/blur to hidden element (#1486)
+ if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {
+
+ // Don't re-trigger an onFOO event when we call its FOO() method
+ old = elem[ ontype ];
+
+ if ( old ) {
+ elem[ ontype ] = null;
+ }
+
+ // Prevent re-triggering of the same event, since we already bubbled it above
+ jQuery.event.triggered = type;
+ elem[ type ]();
+ jQuery.event.triggered = undefined;
+
+ if ( old ) {
+ elem[ ontype ] = old;
+ }
+ }
+ }
+ }
+
+ return event.result;
+ },
+
+ dispatch: function( event ) {
+
+ // Make a writable jQuery.Event from the native event object
+ event = jQuery.event.fix( event || window.event );
+
+ var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []),
+ delegateCount = handlers.delegateCount,
+ args = [].slice.call( arguments, 0 ),
+ run_all = !event.exclusive && !event.namespace,
+ special = jQuery.event.special[ event.type ] || {},
+ handlerQueue = [],
+ i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related;
+
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
+ args[0] = event;
+ event.delegateTarget = this;
+
+ // Call the preDispatch hook for the mapped type, and let it bail if desired
+ if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+ return;
+ }
+
+ // Determine handlers that should run if there are delegated events
+ // Avoid non-left-click bubbling in Firefox (#3861)
+ if ( delegateCount && !(event.button && event.type === "click") ) {
+
+ // Pregenerate a single jQuery object for reuse with .is()
+ jqcur = jQuery(this);
+ jqcur.context = this.ownerDocument || this;
+
+ for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {
+
+ // Don't process events on disabled elements (#6911, #8165)
+ if ( cur.disabled !== true ) {
+ selMatch = {};
+ matches = [];
+ jqcur[0] = cur;
+ for ( i = 0; i < delegateCount; i++ ) {
+ handleObj = handlers[ i ];
+ sel = handleObj.selector;
+
+ if ( selMatch[ sel ] === undefined ) {
+ selMatch[ sel ] = (
+ handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel )
+ );
+ }
+ if ( selMatch[ sel ] ) {
+ matches.push( handleObj );
+ }
+ }
+ if ( matches.length ) {
+ handlerQueue.push({ elem: cur, matches: matches });
+ }
+ }
+ }
+ }
+
+ // Add the remaining (directly-bound) handlers
+ if ( handlers.length > delegateCount ) {
+ handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) });
+ }
+
+ // Run delegates first; they may want to stop propagation beneath us
+ for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) {
+ matched = handlerQueue[ i ];
+ event.currentTarget = matched.elem;
+
+ for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) {
+ handleObj = matched.matches[ j ];
+
+ // Triggered event must either 1) be non-exclusive and have no namespace, or
+ // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
+ if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {
+
+ event.data = handleObj.data;
+ event.handleObj = handleObj;
+
+ ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
+ .apply( matched.elem, args );
+
+ if ( ret !== undefined ) {
+ event.result = ret;
+ if ( ret === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+ }
+ }
+ }
+
+ // Call the postDispatch hook for the mapped type
+ if ( special.postDispatch ) {
+ special.postDispatch.call( this, event );
+ }
+
+ return event.result;
+ },
+
+ // Includes some event props shared by KeyEvent and MouseEvent
+ // *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 ***
+ props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
+
+ fixHooks: {},
+
+ keyHooks: {
+ props: "char charCode key keyCode".split(" "),
+ filter: function( event, original ) {
+
+ // Add which for key events
+ if ( event.which == null ) {
+ event.which = original.charCode != null ? original.charCode : original.keyCode;
+ }
+
+ return event;
+ }
+ },
+
+ mouseHooks: {
+ props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
+ filter: function( event, original ) {
+ var eventDoc, doc, body,
+ button = original.button,
+ fromElement = original.fromElement;
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if ( event.pageX == null && original.clientX != null ) {
+ eventDoc = event.target.ownerDocument || document;
+ doc = eventDoc.documentElement;
+ body = eventDoc.body;
+
+ event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
+ event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
+ }
+
+ // Add relatedTarget, if necessary
+ if ( !event.relatedTarget && fromElement ) {
+ event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ // Note: button is not normalized, so don't use it
+ if ( !event.which && button !== undefined ) {
+ event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+ }
+
+ return event;
+ }
+ },
+
+ fix: function( event ) {
+ if ( event[ jQuery.expando ] ) {
+ return event;
+ }
+
+ // Create a writable copy of the event object and normalize some properties
+ var i, prop,
+ originalEvent = event,
+ fixHook = jQuery.event.fixHooks[ event.type ] || {},
+ copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+ event = jQuery.Event( originalEvent );
+
+ for ( i = copy.length; i; ) {
+ prop = copy[ --i ];
+ event[ prop ] = originalEvent[ prop ];
+ }
+
+ // Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)
+ if ( !event.target ) {
+ event.target = originalEvent.srcElement || document;
+ }
+
+ // Target should not be a text node (#504, Safari)
+ if ( event.target.nodeType === 3 ) {
+ event.target = event.target.parentNode;
+ }
+
+ // For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8)
+ if ( event.metaKey === undefined ) {
+ event.metaKey = event.ctrlKey;
+ }
+
+ return fixHook.filter? fixHook.filter( event, originalEvent ) : event;
+ },
+
+ special: {
+ ready: {
+ // Make sure the ready event is setup
+ setup: jQuery.bindReady
+ },
+
+ load: {
+ // Prevent triggered image.load events from bubbling to window.load
+ noBubble: true
+ },
+
+ focus: {
+ delegateType: "focusin"
+ },
+ blur: {
+ delegateType: "focusout"
+ },
+
+ beforeunload: {
+ setup: function( data, namespaces, eventHandle ) {
+ // We only want to do this special case on windows
+ if ( jQuery.isWindow( this ) ) {
+ this.onbeforeunload = eventHandle;
+ }
+ },
+
+ teardown: function( namespaces, eventHandle ) {
+ if ( this.onbeforeunload === eventHandle ) {
+ this.onbeforeunload = null;
+ }
+ }
+ }
+ },
+
+ simulate: function( type, elem, event, bubble ) {
+ // Piggyback on a donor event to simulate a different one.
+ // Fake originalEvent to avoid donor's stopPropagation, but if the
+ // simulated event prevents default then we do the same on the donor.
+ var e = jQuery.extend(
+ new jQuery.Event(),
+ event,
+ { type: type,
+ isSimulated: true,
+ originalEvent: {}
+ }
+ );
+ if ( bubble ) {
+ jQuery.event.trigger( e, null, elem );
+ } else {
+ jQuery.event.dispatch.call( elem, e );
+ }
+ if ( e.isDefaultPrevented() ) {
+ event.preventDefault();
+ }
+ }
+};
+
+// Some plugins are using, but it's undocumented/deprecated and will be removed.
+// The 1.7 special event interface should provide all the hooks needed now.
+jQuery.event.handle = jQuery.event.dispatch;
+
+jQuery.removeEvent = document.removeEventListener ?
+ function( elem, type, handle ) {
+ if ( elem.removeEventListener ) {
+ elem.removeEventListener( type, handle, false );
+ }
+ } :
+ function( elem, type, handle ) {
+ if ( elem.detachEvent ) {
+ elem.detachEvent( "on" + type, handle );
+ }
+ };
+
+jQuery.Event = function( src, props ) {
+ // Allow instantiation without the 'new' keyword
+ if ( !(this instanceof jQuery.Event) ) {
+ return new jQuery.Event( src, props );
+ }
+
+ // Event object
+ if ( src && src.type ) {
+ this.originalEvent = src;
+ this.type = src.type;
+
+ // Events bubbling up the document may have been marked as prevented
+ // by a handler lower down the tree; reflect the correct value.
+ this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
+ src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
+
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // Put explicitly provided properties onto the event object
+ if ( props ) {
+ jQuery.extend( this, props );
+ }
+
+ // Create a timestamp if incoming event doesn't have one
+ this.timeStamp = src && src.timeStamp || jQuery.now();
+
+ // Mark it as fixed
+ this[ jQuery.expando ] = true;
+};
+
+function returnFalse() {
+ return false;
+}
+function returnTrue() {
+ return true;
+}
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ preventDefault: function() {
+ this.isDefaultPrevented = returnTrue;
+
+ var e = this.originalEvent;
+ if ( !e ) {
+ return;
+ }
+
+ // if preventDefault exists run it on the original event
+ if ( e.preventDefault ) {
+ e.preventDefault();
+
+ // otherwise set the returnValue property of the original event to false (IE)
+ } else {
+ e.returnValue = false;
+ }
+ },
+ stopPropagation: function() {
+ this.isPropagationStopped = returnTrue;
+
+ var e = this.originalEvent;
+ if ( !e ) {
+ return;
+ }
+ // if stopPropagation exists run it on the original event
+ if ( e.stopPropagation ) {
+ e.stopPropagation();
+ }
+ // otherwise set the cancelBubble property of the original event to true (IE)
+ e.cancelBubble = true;
+ },
+ stopImmediatePropagation: function() {
+ this.isImmediatePropagationStopped = returnTrue;
+ this.stopPropagation();
+ },
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse
+};
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+jQuery.each({
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+}, function( orig, fix ) {
+ jQuery.event.special[ orig ] = {
+ delegateType: fix,
+ bindType: fix,
+
+ handle: function( event ) {
+ var target = this,
+ related = event.relatedTarget,
+ handleObj = event.handleObj,
+ selector = handleObj.selector,
+ ret;
+
+ // For mousenter/leave call the handler if related is outside the target.
+ // NB: No relatedTarget if the mouse left/entered the browser window
+ if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
+ event.type = handleObj.origType;
+ ret = handleObj.handler.apply( this, arguments );
+ event.type = fix;
+ }
+ return ret;
+ }
+ };
+});
+
+// IE submit delegation
+if ( !jQuery.support.submitBubbles ) {
+
+ jQuery.event.special.submit = {
+ setup: function() {
+ // Only need this for delegated form submit events
+ if ( jQuery.nodeName( this, "form" ) ) {
+ return false;
+ }
+
+ // Lazy-add a submit handler when a descendant form may potentially be submitted
+ jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
+ // Node name check avoids a VML-related crash in IE (#9807)
+ var elem = e.target,
+ form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
+ if ( form && !form._submit_attached ) {
+ jQuery.event.add( form, "submit._submit", function( event ) {
+ event._submit_bubble = true;
+ });
+ form._submit_attached = true;
+ }
+ });
+ // return undefined since we don't need an event listener
+ },
+
+ postDispatch: function( event ) {
+ // If form was submitted by the user, bubble the event up the tree
+ if ( event._submit_bubble ) {
+ delete event._submit_bubble;
+ if ( this.parentNode && !event.isTrigger ) {
+ jQuery.event.simulate( "submit", this.parentNode, event, true );
+ }
+ }
+ },
+
+ teardown: function() {
+ // Only need this for delegated form submit events
+ if ( jQuery.nodeName( this, "form" ) ) {
+ return false;
+ }
+
+ // Remove delegated handlers; cleanData eventually reaps submit handlers attached above
+ jQuery.event.remove( this, "._submit" );
+ }
+ };
+}
+
+// IE change delegation and checkbox/radio fix
+if ( !jQuery.support.changeBubbles ) {
+
+ jQuery.event.special.change = {
+
+ setup: function() {
+
+ if ( rformElems.test( this.nodeName ) ) {
+ // IE doesn't fire change on a check/radio until blur; trigger it on click
+ // after a propertychange. Eat the blur-change in special.change.handle.
+ // This still fires onchange a second time for check/radio after blur.
+ if ( this.type === "checkbox" || this.type === "radio" ) {
+ jQuery.event.add( this, "propertychange._change", function( event ) {
+ if ( event.originalEvent.propertyName === "checked" ) {
+ this._just_changed = true;
+ }
+ });
+ jQuery.event.add( this, "click._change", function( event ) {
+ if ( this._just_changed && !event.isTrigger ) {
+ this._just_changed = false;
+ jQuery.event.simulate( "change", this, event, true );
+ }
+ });
+ }
+ return false;
+ }
+ // Delegated event; lazy-add a change handler on descendant inputs
+ jQuery.event.add( this, "beforeactivate._change", function( e ) {
+ var elem = e.target;
+
+ if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) {
+ jQuery.event.add( elem, "change._change", function( event ) {
+ if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
+ jQuery.event.simulate( "change", this.parentNode, event, true );
+ }
+ });
+ elem._change_attached = true;
+ }
+ });
+ },
+
+ handle: function( event ) {
+ var elem = event.target;
+
+ // Swallow native change events from checkbox/radio, we already triggered them above
+ if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
+ return event.handleObj.handler.apply( this, arguments );
+ }
+ },
+
+ teardown: function() {
+ jQuery.event.remove( this, "._change" );
+
+ return rformElems.test( this.nodeName );
+ }
+ };
+}
+
+// Create "bubbling" focus and blur events
+if ( !jQuery.support.focusinBubbles ) {
+ jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+ // Attach a single capturing handler while someone wants focusin/focusout
+ var attaches = 0,
+ handler = function( event ) {
+ jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
+ };
+
+ jQuery.event.special[ fix ] = {
+ setup: function() {
+ if ( attaches++ === 0 ) {
+ document.addEventListener( orig, handler, true );
+ }
+ },
+ teardown: function() {
+ if ( --attaches === 0 ) {
+ document.removeEventListener( orig, handler, true );
+ }
+ }
+ };
+ });
+}
+
+jQuery.fn.extend({
+
+ on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
+ var origFn, type;
+
+ // Types can be a map of types/handlers
+ if ( typeof types === "object" ) {
+ // ( types-Object, selector, data )
+ if ( typeof selector !== "string" ) { // && selector != null
+ // ( types-Object, data )
+ data = data || selector;
+ selector = undefined;
+ }
+ for ( type in types ) {
+ this.on( type, selector, data, types[ type ], one );
+ }
+ return this;
+ }
+
+ if ( data == null && fn == null ) {
+ // ( types, fn )
+ fn = selector;
+ data = selector = undefined;
+ } else if ( fn == null ) {
+ if ( typeof selector === "string" ) {
+ // ( types, selector, fn )
+ fn = data;
+ data = undefined;
+ } else {
+ // ( types, data, fn )
+ fn = data;
+ data = selector;
+ selector = undefined;
+ }
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ } else if ( !fn ) {
+ return this;
+ }
+
+ if ( one === 1 ) {
+ origFn = fn;
+ fn = function( event ) {
+ // Can use an empty set, since event contains the info
+ jQuery().off( event );
+ return origFn.apply( this, arguments );
+ };
+ // Use same guid so caller can remove using origFn
+ fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+ }
+ return this.each( function() {
+ jQuery.event.add( this, types, fn, data, selector );
+ });
+ },
+ one: function( types, selector, data, fn ) {
+ return this.on( types, selector, data, fn, 1 );
+ },
+ off: function( types, selector, fn ) {
+ if ( types && types.preventDefault && types.handleObj ) {
+ // ( event ) dispatched jQuery.Event
+ var handleObj = types.handleObj;
+ jQuery( types.delegateTarget ).off(
+ handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
+ handleObj.selector,
+ handleObj.handler
+ );
+ return this;
+ }
+ if ( typeof types === "object" ) {
+ // ( types-object [, selector] )
+ for ( var type in types ) {
+ this.off( type, selector, types[ type ] );
+ }
+ return this;
+ }
+ if ( selector === false || typeof selector === "function" ) {
+ // ( types [, fn] )
+ fn = selector;
+ selector = undefined;
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ }
+ return this.each(function() {
+ jQuery.event.remove( this, types, fn, selector );
+ });
+ },
+
+ bind: function( types, data, fn ) {
+ return this.on( types, null, data, fn );
+ },
+ unbind: function( types, fn ) {
+ return this.off( types, null, fn );
+ },
+
+ live: function( types, data, fn ) {
+ jQuery( this.context ).on( types, this.selector, data, fn );
+ return this;
+ },
+ die: function( types, fn ) {
+ jQuery( this.context ).off( types, this.selector || "**", fn );
+ return this;
+ },
+
+ delegate: function( selector, types, data, fn ) {
+ return this.on( types, selector, data, fn );
+ },
+ undelegate: function( selector, types, fn ) {
+ // ( namespace ) or ( selector, types [, fn] )
+ return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn );
+ },
+
+ trigger: function( type, data ) {
+ return this.each(function() {
+ jQuery.event.trigger( type, data, this );
+ });
+ },
+ triggerHandler: function( type, data ) {
+ if ( this[0] ) {
+ return jQuery.event.trigger( type, data, this[0], true );
+ }
+ },
+
+ toggle: function( fn ) {
+ // Save reference to arguments for access in closure
+ var args = arguments,
+ guid = fn.guid || jQuery.guid++,
+ i = 0,
+ toggler = function( event ) {
+ // Figure out which function to execute
+ var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
+ jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
+
+ // Make sure that clicks stop
+ event.preventDefault();
+
+ // and execute the function
+ return args[ lastToggle ].apply( this, arguments ) || false;
+ };
+
+ // link all the functions, so any of them can unbind this click handler
+ toggler.guid = guid;
+ while ( i < args.length ) {
+ args[ i++ ].guid = guid;
+ }
+
+ return this.click( toggler );
+ },
+
+ hover: function( fnOver, fnOut ) {
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+ }
+});
+
+jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+ "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
+
+ // Handle event binding
+ jQuery.fn[ name ] = function( data, fn ) {
+ if ( fn == null ) {
+ fn = data;
+ data = null;
+ }
+
+ return arguments.length > 0 ?
+ this.on( name, null, data, fn ) :
+ this.trigger( name );
+ };
+
+ if ( jQuery.attrFn ) {
+ jQuery.attrFn[ name ] = true;
+ }
+
+ if ( rkeyEvent.test( name ) ) {
+ jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
+ }
+
+ if ( rmouseEvent.test( name ) ) {
+ jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
+ }
+});
+
+
+
+/*!
+ * Sizzle CSS Selector Engine
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+ expando = "sizcache" + (Math.random() + '').replace('.', ''),
+ done = 0,
+ toString = Object.prototype.toString,
+ hasDuplicate = false,
+ baseHasDuplicate = true,
+ rBackslash = /\\/g,
+ rReturn = /\r\n/g,
+ rNonWord = /\W/;
+
+// Here we check if the JavaScript engine is using some sort of
+// optimization where it does not always call our comparision
+// function. If that is the case, discard the hasDuplicate value.
+// Thus far that includes Google Chrome.
+[0, 0].sort(function() {
+ baseHasDuplicate = false;
+ return 0;
+});
+
+var Sizzle = function( selector, context, results, seed ) {
+ results = results || [];
+ context = context || document;
+
+ var origContext = context;
+
+ if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
+ return [];
+ }
+
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ var m, set, checkSet, extra, ret, cur, pop, i,
+ prune = true,
+ contextXML = Sizzle.isXML( context ),
+ parts = [],
+ soFar = selector;
+
+ // Reset the position of the chunker regexp (start from head)
+ do {
+ chunker.exec( "" );
+ m = chunker.exec( soFar );
+
+ if ( m ) {
+ soFar = m[3];
+
+ parts.push( m[1] );
+
+ if ( m[2] ) {
+ extra = m[3];
+ break;
+ }
+ }
+ } while ( m );
+
+ if ( parts.length > 1 && origPOS.exec( selector ) ) {
+
+ if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+ set = posProcess( parts[0] + parts[1], context, seed );
+
+ } else {
+ set = Expr.relative[ parts[0] ] ?
+ [ context ] :
+ Sizzle( parts.shift(), context );
+
+ while ( parts.length ) {
+ selector = parts.shift();
+
+ if ( Expr.relative[ selector ] ) {
+ selector += parts.shift();
+ }
+
+ set = posProcess( selector, set, seed );
+ }
+ }
+
+ } else {
+ // Take a shortcut and set the context if the root selector is an ID
+ // (but not if it'll be faster if the inner selector is an ID)
+ if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+ Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
+
+ ret = Sizzle.find( parts.shift(), context, contextXML );
+ context = ret.expr ?
+ Sizzle.filter( ret.expr, ret.set )[0] :
+ ret.set[0];
+ }
+
+ if ( context ) {
+ ret = seed ?
+ { expr: parts.pop(), set: makeArray(seed) } :
+ Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+
+ set = ret.expr ?
+ Sizzle.filter( ret.expr, ret.set ) :
+ ret.set;
+
+ if ( parts.length > 0 ) {
+ checkSet = makeArray( set );
+
+ } else {
+ prune = false;
+ }
+
+ while ( parts.length ) {
+ cur = parts.pop();
+ pop = cur;
+
+ if ( !Expr.relative[ cur ] ) {
+ cur = "";
+ } else {
+ pop = parts.pop();
+ }
+
+ if ( pop == null ) {
+ pop = context;
+ }
+
+ Expr.relative[ cur ]( checkSet, pop, contextXML );
+ }
+
+ } else {
+ checkSet = parts = [];
+ }
+ }
+
+ if ( !checkSet ) {
+ checkSet = set;
+ }
+
+ if ( !checkSet ) {
+ Sizzle.error( cur || selector );
+ }
+
+ if ( toString.call(checkSet) === "[object Array]" ) {
+ if ( !prune ) {
+ results.push.apply( results, checkSet );
+
+ } else if ( context && context.nodeType === 1 ) {
+ for ( i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
+ results.push( set[i] );
+ }
+ }
+
+ } else {
+ for ( i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+ results.push( set[i] );
+ }
+ }
+ }
+
+ } else {
+ makeArray( checkSet, results );
+ }
+
+ if ( extra ) {
+ Sizzle( extra, origContext, results, seed );
+ Sizzle.uniqueSort( results );
+ }
+
+ return results;
+};
+
+Sizzle.uniqueSort = function( results ) {
+ if ( sortOrder ) {
+ hasDuplicate = baseHasDuplicate;
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ for ( var i = 1; i < results.length; i++ ) {
+ if ( results[i] === results[ i - 1 ] ) {
+ results.splice( i--, 1 );
+ }
+ }
+ }
+ }
+
+ return results;
+};
+
+Sizzle.matches = function( expr, set ) {
+ return Sizzle( expr, null, null, set );
+};
+
+Sizzle.matchesSelector = function( node, expr ) {
+ return Sizzle( expr, null, null, [node] ).length > 0;
+};
+
+Sizzle.find = function( expr, context, isXML ) {
+ var set, i, len, match, type, left;
+
+ if ( !expr ) {
+ return [];
+ }
+
+ for ( i = 0, len = Expr.order.length; i < len; i++ ) {
+ type = Expr.order[i];
+
+ if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
+ left = match[1];
+ match.splice( 1, 1 );
+
+ if ( left.substr( left.length - 1 ) !== "\\" ) {
+ match[1] = (match[1] || "").replace( rBackslash, "" );
+ set = Expr.find[ type ]( match, context, isXML );
+
+ if ( set != null ) {
+ expr = expr.replace( Expr.match[ type ], "" );
+ break;
+ }
+ }
+ }
+ }
+
+ if ( !set ) {
+ set = typeof context.getElementsByTagName !== "undefined" ?
+ context.getElementsByTagName( "*" ) :
+ [];
+ }
+
+ return { set: set, expr: expr };
+};
+
+Sizzle.filter = function( expr, set, inplace, not ) {
+ var match, anyFound,
+ type, found, item, filter, left,
+ i, pass,
+ old = expr,
+ result = [],
+ curLoop = set,
+ isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
+
+ while ( expr && set.length ) {
+ for ( type in Expr.filter ) {
+ if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
+ filter = Expr.filter[ type ];
+ left = match[1];
+
+ anyFound = false;
+
+ match.splice(1,1);
+
+ if ( left.substr( left.length - 1 ) === "\\" ) {
+ continue;
+ }
+
+ if ( curLoop === result ) {
+ result = [];
+ }
+
+ if ( Expr.preFilter[ type ] ) {
+ match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+ if ( !match ) {
+ anyFound = found = true;
+
+ } else if ( match === true ) {
+ continue;
+ }
+ }
+
+ if ( match ) {
+ for ( i = 0; (item = curLoop[i]) != null; i++ ) {
+ if ( item ) {
+ found = filter( item, match, i, curLoop );
+ pass = not ^ found;
+
+ if ( inplace && found != null ) {
+ if ( pass ) {
+ anyFound = true;
+
+ } else {
+ curLoop[i] = false;
+ }
+
+ } else if ( pass ) {
+ result.push( item );
+ anyFound = true;
+ }
+ }
+ }
+ }
+
+ if ( found !== undefined ) {
+ if ( !inplace ) {
+ curLoop = result;
+ }
+
+ expr = expr.replace( Expr.match[ type ], "" );
+
+ if ( !anyFound ) {
+ return [];
+ }
+
+ break;
+ }
+ }
+ }
+
+ // Improper expression
+ if ( expr === old ) {
+ if ( anyFound == null ) {
+ Sizzle.error( expr );
+
+ } else {
+ break;
+ }
+ }
+
+ old = expr;
+ }
+
+ return curLoop;
+};
+
+Sizzle.error = function( msg ) {
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Utility function for retreiving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+var getText = Sizzle.getText = function( elem ) {
+ var i, node,
+ nodeType = elem.nodeType,
+ ret = "";
+
+ if ( nodeType ) {
+ if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+ // Use textContent || innerText for elements
+ if ( typeof elem.textContent === 'string' ) {
+ return elem.textContent;
+ } else if ( typeof elem.innerText === 'string' ) {
+ // Replace IE's carriage returns
+ return elem.innerText.replace( rReturn, '' );
+ } else {
+ // Traverse it's children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+ } else {
+
+ // If no nodeType, this is expected to be an array
+ for ( i = 0; (node = elem[i]); i++ ) {
+ // Do not traverse comment nodes
+ if ( node.nodeType !== 8 ) {
+ ret += getText( node );
+ }
+ }
+ }
+ return ret;
+};
+
+var Expr = Sizzle.selectors = {
+ order: [ "ID", "NAME", "TAG" ],
+
+ match: {
+ ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+ CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+ NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
+ ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
+ TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
+ CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
+ POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
+ PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+ },
+
+ leftMatch: {},
+
+ attrMap: {
+ "class": "className",
+ "for": "htmlFor"
+ },
+
+ attrHandle: {
+ href: function( elem ) {
+ return elem.getAttribute( "href" );
+ },
+ type: function( elem ) {
+ return elem.getAttribute( "type" );
+ }
+ },
+
+ relative: {
+ "+": function(checkSet, part){
+ var isPartStr = typeof part === "string",
+ isTag = isPartStr && !rNonWord.test( part ),
+ isPartStrNotTag = isPartStr && !isTag;
+
+ if ( isTag ) {
+ part = part.toLowerCase();
+ }
+
+ for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+ if ( (elem = checkSet[i]) ) {
+ while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+ checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
+ elem || false :
+ elem === part;
+ }
+ }
+
+ if ( isPartStrNotTag ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ },
+
+ ">": function( checkSet, part ) {
+ var elem,
+ isPartStr = typeof part === "string",
+ i = 0,
+ l = checkSet.length;
+
+ if ( isPartStr && !rNonWord.test( part ) ) {
+ part = part.toLowerCase();
+
+ for ( ; i < l; i++ ) {
+ elem = checkSet[i];
+
+ if ( elem ) {
+ var parent = elem.parentNode;
+ checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
+ }
+ }
+
+ } else {
+ for ( ; i < l; i++ ) {
+ elem = checkSet[i];
+
+ if ( elem ) {
+ checkSet[i] = isPartStr ?
+ elem.parentNode :
+ elem.parentNode === part;
+ }
+ }
+
+ if ( isPartStr ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ }
+ },
+
+ "": function(checkSet, part, isXML){
+ var nodeCheck,
+ doneName = done++,
+ checkFn = dirCheck;
+
+ if ( typeof part === "string" && !rNonWord.test( part ) ) {
+ part = part.toLowerCase();
+ nodeCheck = part;
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
+ },
+
+ "~": function( checkSet, part, isXML ) {
+ var nodeCheck,
+ doneName = done++,
+ checkFn = dirCheck;
+
+ if ( typeof part === "string" && !rNonWord.test( part ) ) {
+ part = part.toLowerCase();
+ nodeCheck = part;
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
+ }
+ },
+
+ find: {
+ ID: function( match, context, isXML ) {
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ return m && m.parentNode ? [m] : [];
+ }
+ },
+
+ NAME: function( match, context ) {
+ if ( typeof context.getElementsByName !== "undefined" ) {
+ var ret = [],
+ results = context.getElementsByName( match[1] );
+
+ for ( var i = 0, l = results.length; i < l; i++ ) {
+ if ( results[i].getAttribute("name") === match[1] ) {
+ ret.push( results[i] );
+ }
+ }
+
+ return ret.length === 0 ? null : ret;
+ }
+ },
+
+ TAG: function( match, context ) {
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ return context.getElementsByTagName( match[1] );
+ }
+ }
+ },
+ preFilter: {
+ CLASS: function( match, curLoop, inplace, result, not, isXML ) {
+ match = " " + match[1].replace( rBackslash, "" ) + " ";
+
+ if ( isXML ) {
+ return match;
+ }
+
+ for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+ if ( elem ) {
+ if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
+ if ( !inplace ) {
+ result.push( elem );
+ }
+
+ } else if ( inplace ) {
+ curLoop[i] = false;
+ }
+ }
+ }
+
+ return false;
+ },
+
+ ID: function( match ) {
+ return match[1].replace( rBackslash, "" );
+ },
+
+ TAG: function( match, curLoop ) {
+ return match[1].replace( rBackslash, "" ).toLowerCase();
+ },
+
+ CHILD: function( match ) {
+ if ( match[1] === "nth" ) {
+ if ( !match[2] ) {
+ Sizzle.error( match[0] );
+ }
+
+ match[2] = match[2].replace(/^\+|\s*/g, '');
+
+ // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+ var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
+ match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
+ !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+ // calculate the numbers (first)n+(last) including if they are negative
+ match[2] = (test[1] + (test[2] || 1)) - 0;
+ match[3] = test[3] - 0;
+ }
+ else if ( match[2] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // TODO: Move to normal caching system
+ match[0] = done++;
+
+ return match;
+ },
+
+ ATTR: function( match, curLoop, inplace, result, not, isXML ) {
+ var name = match[1] = match[1].replace( rBackslash, "" );
+
+ if ( !isXML && Expr.attrMap[name] ) {
+ match[1] = Expr.attrMap[name];
+ }
+
+ // Handle if an un-quoted value was used
+ match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
+
+ if ( match[2] === "~=" ) {
+ match[4] = " " + match[4] + " ";
+ }
+
+ return match;
+ },
+
+ PSEUDO: function( match, curLoop, inplace, result, not ) {
+ if ( match[1] === "not" ) {
+ // If we're dealing with a complex expression, or a simple one
+ if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
+ match[3] = Sizzle(match[3], null, null, curLoop);
+
+ } else {
+ var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+
+ if ( !inplace ) {
+ result.push.apply( result, ret );
+ }
+
+ return false;
+ }
+
+ } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+ return true;
+ }
+
+ return match;
+ },
+
+ POS: function( match ) {
+ match.unshift( true );
+
+ return match;
+ }
+ },
+
+ filters: {
+ enabled: function( elem ) {
+ return elem.disabled === false && elem.type !== "hidden";
+ },
+
+ disabled: function( elem ) {
+ return elem.disabled === true;
+ },
+
+ checked: function( elem ) {
+ return elem.checked === true;
+ },
+
+ selected: function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ parent: function( elem ) {
+ return !!elem.firstChild;
+ },
+
+ empty: function( elem ) {
+ return !elem.firstChild;
+ },
+
+ has: function( elem, i, match ) {
+ return !!Sizzle( match[3], elem ).length;
+ },
+
+ header: function( elem ) {
+ return (/h\d/i).test( elem.nodeName );
+ },
+
+ text: function( elem ) {
+ var attr = elem.getAttribute( "type" ), type = elem.type;
+ // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
+ // use getAttribute instead to test this case
+ return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
+ },
+
+ radio: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
+ },
+
+ checkbox: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
+ },
+
+ file: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
+ },
+
+ password: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
+ },
+
+ submit: function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && "submit" === elem.type;
+ },
+
+ image: function( elem ) {
+ return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
+ },
+
+ reset: function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && "reset" === elem.type;
+ },
+
+ button: function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && "button" === elem.type || name === "button";
+ },
+
+ input: function( elem ) {
+ return (/input|select|textarea|button/i).test( elem.nodeName );
+ },
+
+ focus: function( elem ) {
+ return elem === elem.ownerDocument.activeElement;
+ }
+ },
+ setFilters: {
+ first: function( elem, i ) {
+ return i === 0;
+ },
+
+ last: function( elem, i, match, array ) {
+ return i === array.length - 1;
+ },
+
+ even: function( elem, i ) {
+ return i % 2 === 0;
+ },
+
+ odd: function( elem, i ) {
+ return i % 2 === 1;
+ },
+
+ lt: function( elem, i, match ) {
+ return i < match[3] - 0;
+ },
+
+ gt: function( elem, i, match ) {
+ return i > match[3] - 0;
+ },
+
+ nth: function( elem, i, match ) {
+ return match[3] - 0 === i;
+ },
+
+ eq: function( elem, i, match ) {
+ return match[3] - 0 === i;
+ }
+ },
+ filter: {
+ PSEUDO: function( elem, match, i, array ) {
+ var name = match[1],
+ filter = Expr.filters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+
+ } else if ( name === "contains" ) {
+ return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0;
+
+ } else if ( name === "not" ) {
+ var not = match[3];
+
+ for ( var j = 0, l = not.length; j < l; j++ ) {
+ if ( not[j] === elem ) {
+ return false;
+ }
+ }
+
+ return true;
+
+ } else {
+ Sizzle.error( name );
+ }
+ },
+
+ CHILD: function( elem, match ) {
+ var first, last,
+ doneName, parent, cache,
+ count, diff,
+ type = match[1],
+ node = elem;
+
+ switch ( type ) {
+ case "only":
+ case "first":
+ while ( (node = node.previousSibling) ) {
+ if ( node.nodeType === 1 ) {
+ return false;
+ }
+ }
+
+ if ( type === "first" ) {
+ return true;
+ }
+
+ node = elem;
+
+ /* falls through */
+ case "last":
+ while ( (node = node.nextSibling) ) {
+ if ( node.nodeType === 1 ) {
+ return false;
+ }
+ }
+
+ return true;
+
+ case "nth":
+ first = match[2];
+ last = match[3];
+
+ if ( first === 1 && last === 0 ) {
+ return true;
+ }
+
+ doneName = match[0];
+ parent = elem.parentNode;
+
+ if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) {
+ count = 0;
+
+ for ( node = parent.firstChild; node; node = node.nextSibling ) {
+ if ( node.nodeType === 1 ) {
+ node.nodeIndex = ++count;
+ }
+ }
+
+ parent[ expando ] = doneName;
+ }
+
+ diff = elem.nodeIndex - last;
+
+ if ( first === 0 ) {
+ return diff === 0;
+
+ } else {
+ return ( diff % first === 0 && diff / first >= 0 );
+ }
+ }
+ },
+
+ ID: function( elem, match ) {
+ return elem.nodeType === 1 && elem.getAttribute("id") === match;
+ },
+
+ TAG: function( elem, match ) {
+ return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match;
+ },
+
+ CLASS: function( elem, match ) {
+ return (" " + (elem.className || elem.getAttribute("class")) + " ")
+ .indexOf( match ) > -1;
+ },
+
+ ATTR: function( elem, match ) {
+ var name = match[1],
+ result = Sizzle.attr ?
+ Sizzle.attr( elem, name ) :
+ Expr.attrHandle[ name ] ?
+ Expr.attrHandle[ name ]( elem ) :
+ elem[ name ] != null ?
+ elem[ name ] :
+ elem.getAttribute( name ),
+ value = result + "",
+ type = match[2],
+ check = match[4];
+
+ return result == null ?
+ type === "!=" :
+ !type && Sizzle.attr ?
+ result != null :
+ type === "=" ?
+ value === check :
+ type === "*=" ?
+ value.indexOf(check) >= 0 :
+ type === "~=" ?
+ (" " + value + " ").indexOf(check) >= 0 :
+ !check ?
+ value && result !== false :
+ type === "!=" ?
+ value !== check :
+ type === "^=" ?
+ value.indexOf(check) === 0 :
+ type === "$=" ?
+ value.substr(value.length - check.length) === check :
+ type === "|=" ?
+ value === check || value.substr(0, check.length + 1) === check + "-" :
+ false;
+ },
+
+ POS: function( elem, match, i, array ) {
+ var name = match[2],
+ filter = Expr.setFilters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ }
+ }
+ }
+};
+
+var origPOS = Expr.match.POS,
+ fescape = function(all, num){
+ return "\\" + (num - 0 + 1);
+ };
+
+for ( var type in Expr.match ) {
+ Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
+ Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
+}
+// Expose origPOS
+// "global" as in regardless of relation to brackets/parens
+Expr.match.globalPOS = origPOS;
+
+var makeArray = function( array, results ) {
+ array = Array.prototype.slice.call( array, 0 );
+
+ if ( results ) {
+ results.push.apply( results, array );
+ return results;
+ }
+
+ return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+// Also verifies that the returned array holds DOM nodes
+// (which is not the case in the Blackberry browser)
+try {
+ Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
+
+// Provide a fallback method if it does not work
+} catch( e ) {
+ makeArray = function( array, results ) {
+ var i = 0,
+ ret = results || [];
+
+ if ( toString.call(array) === "[object Array]" ) {
+ Array.prototype.push.apply( ret, array );
+
+ } else {
+ if ( typeof array.length === "number" ) {
+ for ( var l = array.length; i < l; i++ ) {
+ ret.push( array[i] );
+ }
+
+ } else {
+ for ( ; array[i]; i++ ) {
+ ret.push( array[i] );
+ }
+ }
+ }
+
+ return ret;
+ };
+}
+
+var sortOrder, siblingCheck;
+
+if ( document.documentElement.compareDocumentPosition ) {
+ sortOrder = function( a, b ) {
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+ return a.compareDocumentPosition ? -1 : 1;
+ }
+
+ return a.compareDocumentPosition(b) & 4 ? -1 : 1;
+ };
+
+} else {
+ sortOrder = function( a, b ) {
+ // The nodes are identical, we can exit early
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+
+ // Fallback to using sourceIndex (in IE) if it's available on both nodes
+ } else if ( a.sourceIndex && b.sourceIndex ) {
+ return a.sourceIndex - b.sourceIndex;
+ }
+
+ var al, bl,
+ ap = [],
+ bp = [],
+ aup = a.parentNode,
+ bup = b.parentNode,
+ cur = aup;
+
+ // If the nodes are siblings (or identical) we can do a quick check
+ if ( aup === bup ) {
+ return siblingCheck( a, b );
+
+ // If no parents were found then the nodes are disconnected
+ } else if ( !aup ) {
+ return -1;
+
+ } else if ( !bup ) {
+ return 1;
+ }
+
+ // Otherwise they're somewhere else in the tree so we need
+ // to build up a full list of the parentNodes for comparison
+ while ( cur ) {
+ ap.unshift( cur );
+ cur = cur.parentNode;
+ }
+
+ cur = bup;
+
+ while ( cur ) {
+ bp.unshift( cur );
+ cur = cur.parentNode;
+ }
+
+ al = ap.length;
+ bl = bp.length;
+
+ // Start walking down the tree looking for a discrepancy
+ for ( var i = 0; i < al && i < bl; i++ ) {
+ if ( ap[i] !== bp[i] ) {
+ return siblingCheck( ap[i], bp[i] );
+ }
+ }
+
+ // We ended someplace up the tree so do a sibling check
+ return i === al ?
+ siblingCheck( a, bp[i], -1 ) :
+ siblingCheck( ap[i], b, 1 );
+ };
+
+ siblingCheck = function( a, b, ret ) {
+ if ( a === b ) {
+ return ret;
+ }
+
+ var cur = a.nextSibling;
+
+ while ( cur ) {
+ if ( cur === b ) {
+ return -1;
+ }
+
+ cur = cur.nextSibling;
+ }
+
+ return 1;
+ };
+}
+
+// Check to see if the browser returns elements by name when
+// querying by getElementById (and provide a workaround)
+(function(){
+ // We're going to inject a fake input element with a specified name
+ var form = document.createElement("div"),
+ id = "script" + (new Date()).getTime(),
+ root = document.documentElement;
+
+ form.innerHTML = "<a name='" + id + "'/>";
+
+ // Inject it into the root element, check its status, and remove it quickly
+ root.insertBefore( form, root.firstChild );
+
+ // The workaround has to do additional checks after a getElementById
+ // Which slows things down for other browsers (hence the branching)
+ if ( document.getElementById( id ) ) {
+ Expr.find.ID = function( match, context, isXML ) {
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+
+ return m ?
+ m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
+ [m] :
+ undefined :
+ [];
+ }
+ };
+
+ Expr.filter.ID = function( elem, match ) {
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+
+ return elem.nodeType === 1 && node && node.nodeValue === match;
+ };
+ }
+
+ root.removeChild( form );
+
+ // release memory in IE
+ root = form = null;
+})();
+
+(function(){
+ // Check to see if the browser returns only elements
+ // when doing getElementsByTagName("*")
+
+ // Create a fake element
+ var div = document.createElement("div");
+ div.appendChild( document.createComment("") );
+
+ // Make sure no comments are found
+ if ( div.getElementsByTagName("*").length > 0 ) {
+ Expr.find.TAG = function( match, context ) {
+ var results = context.getElementsByTagName( match[1] );
+
+ // Filter out possible comments
+ if ( match[1] === "*" ) {
+ var tmp = [];
+
+ for ( var i = 0; results[i]; i++ ) {
+ if ( results[i].nodeType === 1 ) {
+ tmp.push( results[i] );
+ }
+ }
+
+ results = tmp;
+ }
+
+ return results;
+ };
+ }
+
+ // Check to see if an attribute returns normalized href attributes
+ div.innerHTML = "<a href='#'></a>";
+
+ if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+ div.firstChild.getAttribute("href") !== "#" ) {
+
+ Expr.attrHandle.href = function( elem ) {
+ return elem.getAttribute( "href", 2 );
+ };
+ }
+
+ // release memory in IE
+ div = null;
+})();
+
+if ( document.querySelectorAll ) {
+ (function(){
+ var oldSizzle = Sizzle,
+ div = document.createElement("div"),
+ id = "__sizzle__";
+
+ div.innerHTML = "<p class='TEST'></p>";
+
+ // Safari can't handle uppercase or unicode characters when
+ // in quirks mode.
+ if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+ return;
+ }
+
+ Sizzle = function( query, context, extra, seed ) {
+ context = context || document;
+
+ // Only use querySelectorAll on non-XML documents
+ // (ID selectors don't work in non-HTML documents)
+ if ( !seed && !Sizzle.isXML(context) ) {
+ // See if we find a selector to speed up
+ var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
+
+ if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
+ // Speed-up: Sizzle("TAG")
+ if ( match[1] ) {
+ return makeArray( context.getElementsByTagName( query ), extra );
+
+ // Speed-up: Sizzle(".CLASS")
+ } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
+ return makeArray( context.getElementsByClassName( match[2] ), extra );
+ }
+ }
+
+ if ( context.nodeType === 9 ) {
+ // Speed-up: Sizzle("body")
+ // The body element only exists once, optimize finding it
+ if ( query === "body" && context.body ) {
+ return makeArray( [ context.body ], extra );
+
+ // Speed-up: Sizzle("#ID")
+ } else if ( match && match[3] ) {
+ var elem = context.getElementById( match[3] );
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id === match[3] ) {
+ return makeArray( [ elem ], extra );
+ }
+
+ } else {
+ return makeArray( [], extra );
+ }
+ }
+
+ try {
+ return makeArray( context.querySelectorAll(query), extra );
+ } catch(qsaError) {}
+
+ // qSA works strangely on Element-rooted queries
+ // We can work around this by specifying an extra ID on the root
+ // and working up from there (Thanks to Andrew Dupont for the technique)
+ // IE 8 doesn't work on object elements
+ } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+ var oldContext = context,
+ old = context.getAttribute( "id" ),
+ nid = old || id,
+ hasParent = context.parentNode,
+ relativeHierarchySelector = /^\s*[+~]/.test( query );
+
+ if ( !old ) {
+ context.setAttribute( "id", nid );
+ } else {
+ nid = nid.replace( /'/g, "\\$&" );
+ }
+ if ( relativeHierarchySelector && hasParent ) {
+ context = context.parentNode;
+ }
+
+ try {
+ if ( !relativeHierarchySelector || hasParent ) {
+ return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
+ }
+
+ } catch(pseudoError) {
+ } finally {
+ if ( !old ) {
+ oldContext.removeAttribute( "id" );
+ }
+ }
+ }
+ }
+
+ return oldSizzle(query, context, extra, seed);
+ };
+
+ for ( var prop in oldSizzle ) {
+ Sizzle[ prop ] = oldSizzle[ prop ];
+ }
+
+ // release memory in IE
+ div = null;
+ })();
+}
+
+(function(){
+ var html = document.documentElement,
+ matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
+
+ if ( matches ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9 fails this)
+ var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
+ pseudoWorks = false;
+
+ try {
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( document.documentElement, "[test!='']:sizzle" );
+
+ } catch( pseudoError ) {
+ pseudoWorks = true;
+ }
+
+ Sizzle.matchesSelector = function( node, expr ) {
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+
+ if ( !Sizzle.isXML( node ) ) {
+ try {
+ if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
+ var ret = matches.call( node, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || !disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9, so check for that
+ node.document && node.document.nodeType !== 11 ) {
+ return ret;
+ }
+ }
+ } catch(e) {}
+ }
+
+ return Sizzle(expr, null, null, [node]).length > 0;
+ };
+ }
+})();
+
+(function(){
+ var div = document.createElement("div");
+
+ div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+ // Opera can't find a second classname (in 9.6)
+ // Also, make sure that getElementsByClassName actually exists
+ if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
+ return;
+ }
+
+ // Safari caches class attributes, doesn't catch changes (in 3.2)
+ div.lastChild.className = "e";
+
+ if ( div.getElementsByClassName("e").length === 1 ) {
+ return;
+ }
+
+ Expr.order.splice(1, 0, "CLASS");
+ Expr.find.CLASS = function( match, context, isXML ) {
+ if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+ return context.getElementsByClassName(match[1]);
+ }
+ };
+
+ // release memory in IE
+ div = null;
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+
+ if ( elem ) {
+ var match = false;
+
+ elem = elem[dir];
+
+ while ( elem ) {
+ if ( elem[ expando ] === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 && !isXML ){
+ elem[ expando ] = doneName;
+ elem.sizset = i;
+ }
+
+ if ( elem.nodeName.toLowerCase() === cur ) {
+ match = elem;
+ break;
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+
+ if ( elem ) {
+ var match = false;
+
+ elem = elem[dir];
+
+ while ( elem ) {
+ if ( elem[ expando ] === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 ) {
+ if ( !isXML ) {
+ elem[ expando ] = doneName;
+ elem.sizset = i;
+ }
+
+ if ( typeof cur !== "string" ) {
+ if ( elem === cur ) {
+ match = true;
+ break;
+ }
+
+ } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+ match = elem;
+ break;
+ }
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+if ( document.documentElement.contains ) {
+ Sizzle.contains = function( a, b ) {
+ return a !== b && (a.contains ? a.contains(b) : true);
+ };
+
+} else if ( document.documentElement.compareDocumentPosition ) {
+ Sizzle.contains = function( a, b ) {
+ return !!(a.compareDocumentPosition(b) & 16);
+ };
+
+} else {
+ Sizzle.contains = function() {
+ return false;
+ };
+}
+
+Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+var posProcess = function( selector, context, seed ) {
+ var match,
+ tmpSet = [],
+ later = "",
+ root = context.nodeType ? [context] : context;
+
+ // Position selectors must be done after the filter
+ // And so must :not(positional) so we move all PSEUDOs to the end
+ while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+ later += match[0];
+ selector = selector.replace( Expr.match.PSEUDO, "" );
+ }
+
+ selector = Expr.relative[selector] ? selector + "*" : selector;
+
+ for ( var i = 0, l = root.length; i < l; i++ ) {
+ Sizzle( selector, root[i], tmpSet, seed );
+ }
+
+ return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+// Override sizzle attribute retrieval
+Sizzle.attr = jQuery.attr;
+Sizzle.selectors.attrMap = {};
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.filters;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+})();
+
+
+var runtil = /Until$/,
+ rparentsprev = /^(?:parents|prevUntil|prevAll)/,
+ // Note: This RegExp should be improved, or likely pulled from Sizzle
+ rmultiselector = /,/,
+ isSimple = /^.[^:#\[\.,]*$/,
+ slice = Array.prototype.slice,
+ POS = jQuery.expr.match.globalPOS,
+ // methods guaranteed to produce a unique set when starting from a unique set
+ guaranteedUnique = {
+ children: true,
+ contents: true,
+ next: true,
+ prev: true
+ };
+
+jQuery.fn.extend({
+ find: function( selector ) {
+ var self = this,
+ i, l;
+
+ if ( typeof selector !== "string" ) {
+ return jQuery( selector ).filter(function() {
+ for ( i = 0, l = self.length; i < l; i++ ) {
+ if ( jQuery.contains( self[ i ], this ) ) {
+ return true;
+ }
+ }
+ });
+ }
+
+ var ret = this.pushStack( "", "find", selector ),
+ length, n, r;
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ length = ret.length;
+ jQuery.find( selector, this[i], ret );
+
+ if ( i > 0 ) {
+ // Make sure that the results are unique
+ for ( n = length; n < ret.length; n++ ) {
+ for ( r = 0; r < length; r++ ) {
+ if ( ret[r] === ret[n] ) {
+ ret.splice(n--, 1);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return ret;
+ },
+
+ has: function( target ) {
+ var targets = jQuery( target );
+ return this.filter(function() {
+ for ( var i = 0, l = targets.length; i < l; i++ ) {
+ if ( jQuery.contains( this, targets[i] ) ) {
+ return true;
+ }
+ }
+ });
+ },
+
+ not: function( selector ) {
+ return this.pushStack( winnow(this, selector, false), "not", selector);
+ },
+
+ filter: function( selector ) {
+ return this.pushStack( winnow(this, selector, true), "filter", selector );
+ },
+
+ is: function( selector ) {
+ return !!selector && (
+ typeof selector === "string" ?
+ // If this is a positional selector, check membership in the returned set
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
+ POS.test( selector ) ?
+ jQuery( selector, this.context ).index( this[0] ) >= 0 :
+ jQuery.filter( selector, this ).length > 0 :
+ this.filter( selector ).length > 0 );
+ },
+
+ closest: function( selectors, context ) {
+ var ret = [], i, l, cur = this[0];
+
+ // Array (deprecated as of jQuery 1.7)
+ if ( jQuery.isArray( selectors ) ) {
+ var level = 1;
+
+ while ( cur && cur.ownerDocument && cur !== context ) {
+ for ( i = 0; i < selectors.length; i++ ) {
+
+ if ( jQuery( cur ).is( selectors[ i ] ) ) {
+ ret.push({ selector: selectors[ i ], elem: cur, level: level });
+ }
+ }
+
+ cur = cur.parentNode;
+ level++;
+ }
+
+ return ret;
+ }
+
+ // String
+ var pos = POS.test( selectors ) || typeof selectors !== "string" ?
+ jQuery( selectors, context || this.context ) :
+ 0;
+
+ for ( i = 0, l = this.length; i < l; i++ ) {
+ cur = this[i];
+
+ while ( cur ) {
+ if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
+ ret.push( cur );
+ break;
+
+ } else {
+ cur = cur.parentNode;
+ if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
+ break;
+ }
+ }
+ }
+ }
+
+ ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
+
+ return this.pushStack( ret, "closest", selectors );
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function( elem ) {
+
+ // No argument, return index in parent
+ if ( !elem ) {
+ return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
+ }
+
+ // index in selector
+ if ( typeof elem === "string" ) {
+ return jQuery.inArray( this[0], jQuery( elem ) );
+ }
+
+ // Locate the position of the desired element
+ return jQuery.inArray(
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[0] : elem, this );
+ },
+
+ add: function( selector, context ) {
+ var set = typeof selector === "string" ?
+ jQuery( selector, context ) :
+ jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
+ all = jQuery.merge( this.get(), set );
+
+ return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
+ all :
+ jQuery.unique( all ) );
+ },
+
+ andSelf: function() {
+ return this.add( this.prevObject );
+ }
+});
+
+// A painfully simple check to see if an element is disconnected
+// from a document (should be improved, where feasible).
+function isDisconnected( node ) {
+ return !node || !node.parentNode || node.parentNode.nodeType === 11;
+}
+
+jQuery.each({
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return jQuery.dir( elem, "parentNode" );
+ },
+ parentsUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "parentNode", until );
+ },
+ next: function( elem ) {
+ return jQuery.nth( elem, 2, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return jQuery.nth( elem, 2, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return jQuery.dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return jQuery.dir( elem, "previousSibling" );
+ },
+ nextUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "nextSibling", until );
+ },
+ prevUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "previousSibling", until );
+ },
+ siblings: function( elem ) {
+ return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
+ },
+ children: function( elem ) {
+ return jQuery.sibling( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return jQuery.nodeName( elem, "iframe" ) ?
+ elem.contentDocument || elem.contentWindow.document :
+ jQuery.makeArray( elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var ret = jQuery.map( this, fn, until );
+
+ if ( !runtil.test( name ) ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ ret = jQuery.filter( selector, ret );
+ }
+
+ ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
+
+ if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
+ ret = ret.reverse();
+ }
+
+ return this.pushStack( ret, name, slice.call( arguments ).join(",") );
+ };
+});
+
+jQuery.extend({
+ filter: function( expr, elems, not ) {
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return elems.length === 1 ?
+ jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
+ jQuery.find.matches(expr, elems);
+ },
+
+ dir: function( elem, dir, until ) {
+ var matched = [],
+ cur = elem[ dir ];
+
+ while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
+ if ( cur.nodeType === 1 ) {
+ matched.push( cur );
+ }
+ cur = cur[dir];
+ }
+ return matched;
+ },
+
+ nth: function( cur, result, dir, elem ) {
+ result = result || 1;
+ var num = 0;
+
+ for ( ; cur; cur = cur[dir] ) {
+ if ( cur.nodeType === 1 && ++num === result ) {
+ break;
+ }
+ }
+
+ return cur;
+ },
+
+ sibling: function( n, elem ) {
+ var r = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ r.push( n );
+ }
+ }
+
+ return r;
+ }
+});
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, keep ) {
+
+ // Can't pass null or undefined to indexOf in Firefox 4
+ // Set to 0 to skip string check
+ qualifier = qualifier || 0;
+
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep(elements, function( elem, i ) {
+ var retVal = !!qualifier.call( elem, i, elem );
+ return retVal === keep;
+ });
+
+ } else if ( qualifier.nodeType ) {
+ return jQuery.grep(elements, function( elem, i ) {
+ return ( elem === qualifier ) === keep;
+ });
+
+ } else if ( typeof qualifier === "string" ) {
+ var filtered = jQuery.grep(elements, function( elem ) {
+ return elem.nodeType === 1;
+ });
+
+ if ( isSimple.test( qualifier ) ) {
+ return jQuery.filter(qualifier, filtered, !keep);
+ } else {
+ qualifier = jQuery.filter( qualifier, filtered );
+ }
+ }
+
+ return jQuery.grep(elements, function( elem, i ) {
+ return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;
+ });
+}
+
+
+
+
+function createSafeFragment( document ) {
+ var list = nodeNames.split( "|" ),
+ safeFrag = document.createDocumentFragment();
+
+ if ( safeFrag.createElement ) {
+ while ( list.length ) {
+ safeFrag.createElement(
+ list.pop()
+ );
+ }
+ }
+ return safeFrag;
+}
+
+var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
+ "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
+ rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
+ rleadingWhitespace = /^\s+/,
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
+ rtagName = /<([\w:]+)/,
+ rtbody = /<tbody/i,
+ rhtml = /<|&#?\w+;/,
+ rnoInnerhtml = /<(?:script|style)/i,
+ rnocache = /<(?:script|object|embed|option|style)/i,
+ rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
+ // checked="checked" or checked
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+ rscriptType = /\/(java|ecma)script/i,
+ rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
+ wrapMap = {
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
+ legend: [ 1, "<fieldset>", "</fieldset>" ],
+ thead: [ 1, "<table>", "</table>" ],
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+ col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+ area: [ 1, "<map>", "</map>" ],
+ _default: [ 0, "", "" ]
+ },
+ safeFragment = createSafeFragment( document );
+
+wrapMap.optgroup = wrapMap.option;
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+// IE can't serialize <link> and <script> tags normally
+if ( !jQuery.support.htmlSerialize ) {
+ wrapMap._default = [ 1, "div<div>", "</div>" ];
+}
+
+jQuery.fn.extend({
+ text: function( value ) {
+ return jQuery.access( this, function( value ) {
+ return value === undefined ?
+ jQuery.text( this ) :
+ this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
+ }, null, value, arguments.length );
+ },
+
+ wrapAll: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each(function(i) {
+ jQuery(this).wrapAll( html.call(this, i) );
+ });
+ }
+
+ if ( this[0] ) {
+ // The elements to wrap the target around
+ var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
+
+ if ( this[0].parentNode ) {
+ wrap.insertBefore( this[0] );
+ }
+
+ wrap.map(function() {
+ var elem = this;
+
+ while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
+ elem = elem.firstChild;
+ }
+
+ return elem;
+ }).append( this );
+ }
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each(function(i) {
+ jQuery(this).wrapInner( html.call(this, i) );
+ });
+ }
+
+ return this.each(function() {
+ var self = jQuery( this ),
+ contents = self.contents();
+
+ if ( contents.length ) {
+ contents.wrapAll( html );
+
+ } else {
+ self.append( html );
+ }
+ });
+ },
+
+ wrap: function( html ) {
+ var isFunction = jQuery.isFunction( html );
+
+ return this.each(function(i) {
+ jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
+ });
+ },
+
+ unwrap: function() {
+ return this.parent().each(function() {
+ if ( !jQuery.nodeName( this, "body" ) ) {
+ jQuery( this ).replaceWith( this.childNodes );
+ }
+ }).end();
+ },
+
+ append: function() {
+ return this.domManip(arguments, true, function( elem ) {
+ if ( this.nodeType === 1 ) {
+ this.appendChild( elem );
+ }
+ });
+ },
+
+ prepend: function() {
+ return this.domManip(arguments, true, function( elem ) {
+ if ( this.nodeType === 1 ) {
+ this.insertBefore( elem, this.firstChild );
+ }
+ });
+ },
+
+ before: function() {
+ if ( this[0] && this[0].parentNode ) {
+ return this.domManip(arguments, false, function( elem ) {
+ this.parentNode.insertBefore( elem, this );
+ });
+ } else if ( arguments.length ) {
+ var set = jQuery.clean( arguments );
+ set.push.apply( set, this.toArray() );
+ return this.pushStack( set, "before", arguments );
+ }
+ },
+
+ after: function() {
+ if ( this[0] && this[0].parentNode ) {
+ return this.domManip(arguments, false, function( elem ) {
+ this.parentNode.insertBefore( elem, this.nextSibling );
+ });
+ } else if ( arguments.length ) {
+ var set = this.pushStack( this, "after", arguments );
+ set.push.apply( set, jQuery.clean(arguments) );
+ return set;
+ }
+ },
+
+ // keepData is for internal use only--do not document
+ remove: function( selector, keepData ) {
+ for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+ if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
+ if ( !keepData && elem.nodeType === 1 ) {
+ jQuery.cleanData( elem.getElementsByTagName("*") );
+ jQuery.cleanData( [ elem ] );
+ }
+
+ if ( elem.parentNode ) {
+ elem.parentNode.removeChild( elem );
+ }
+ }
+ }
+
+ return this;
+ },
+
+ empty: function() {
+ for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+ // Remove element nodes and prevent memory leaks
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( elem.getElementsByTagName("*") );
+ }
+
+ // Remove any remaining nodes
+ while ( elem.firstChild ) {
+ elem.removeChild( elem.firstChild );
+ }
+ }
+
+ return this;
+ },
+
+ clone: function( dataAndEvents, deepDataAndEvents ) {
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+ return this.map( function () {
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+ });
+ },
+
+ html: function( value ) {
+ return jQuery.access( this, function( value ) {
+ var elem = this[0] || {},
+ i = 0,
+ l = this.length;
+
+ if ( value === undefined ) {
+ return elem.nodeType === 1 ?
+ elem.innerHTML.replace( rinlinejQuery, "" ) :
+ null;
+ }
+
+
+ if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+ ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
+ !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
+
+ value = value.replace( rxhtmlTag, "<$1></$2>" );
+
+ try {
+ for (; i < l; i++ ) {
+ // Remove element nodes and prevent memory leaks
+ elem = this[i] || {};
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( elem.getElementsByTagName( "*" ) );
+ elem.innerHTML = value;
+ }
+ }
+
+ elem = 0;
+
+ // If using innerHTML throws an exception, use the fallback method
+ } catch(e) {}
+ }
+
+ if ( elem ) {
+ this.empty().append( value );
+ }
+ }, null, value, arguments.length );
+ },
+
+ replaceWith: function( value ) {
+ if ( this[0] && this[0].parentNode ) {
+ // Make sure that the elements are removed from the DOM before they are inserted
+ // this can help fix replacing a parent with child elements
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function(i) {
+ var self = jQuery(this), old = self.html();
+ self.replaceWith( value.call( this, i, old ) );
+ });
+ }
+
+ if ( typeof value !== "string" ) {
+ value = jQuery( value ).detach();
+ }
+
+ return this.each(function() {
+ var next = this.nextSibling,
+ parent = this.parentNode;
+
+ jQuery( this ).remove();
+
+ if ( next ) {
+ jQuery(next).before( value );
+ } else {
+ jQuery(parent).append( value );
+ }
+ });
+ } else {
+ return this.length ?
+ this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
+ this;
+ }
+ },
+
+ detach: function( selector ) {
+ return this.remove( selector, true );
+ },
+
+ domManip: function( args, table, callback ) {
+ var results, first, fragment, parent,
+ value = args[0],
+ scripts = [];
+
+ // We can't cloneNode fragments that contain checked, in WebKit
+ if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
+ return this.each(function() {
+ jQuery(this).domManip( args, table, callback, true );
+ });
+ }
+
+ if ( jQuery.isFunction(value) ) {
+ return this.each(function(i) {
+ var self = jQuery(this);
+ args[0] = value.call(this, i, table ? self.html() : undefined);
+ self.domManip( args, table, callback );
+ });
+ }
+
+ if ( this[0] ) {
+ parent = value && value.parentNode;
+
+ // If we're in a fragment, just use that instead of building a new one
+ if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
+ results = { fragment: parent };
+
+ } else {
+ results = jQuery.buildFragment( args, this, scripts );
+ }
+
+ fragment = results.fragment;
+
+ if ( fragment.childNodes.length === 1 ) {
+ first = fragment = fragment.firstChild;
+ } else {
+ first = fragment.firstChild;
+ }
+
+ if ( first ) {
+ table = table && jQuery.nodeName( first, "tr" );
+
+ for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
+ callback.call(
+ table ?
+ root(this[i], first) :
+ this[i],
+ // Make sure that we do not leak memory by inadvertently discarding
+ // the original fragment (which might have attached data) instead of
+ // using it; in addition, use the original fragment object for the last
+ // item instead of first because it can end up being emptied incorrectly
+ // in certain situations (Bug #8070).
+ // Fragments from the fragment cache must always be cloned and never used
+ // in place.
+ results.cacheable || ( l > 1 && i < lastIndex ) ?
+ jQuery.clone( fragment, true, true ) :
+ fragment
+ );
+ }
+ }
+
+ if ( scripts.length ) {
+ jQuery.each( scripts, function( i, elem ) {
+ if ( elem.src ) {
+ jQuery.ajax({
+ type: "GET",
+ global: false,
+ url: elem.src,
+ async: false,
+ dataType: "script"
+ });
+ } else {
+ jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
+ }
+
+ if ( elem.parentNode ) {
+ elem.parentNode.removeChild( elem );
+ }
+ });
+ }
+ }
+
+ return this;
+ }
+});
+
+function root( elem, cur ) {
+ return jQuery.nodeName(elem, "table") ?
+ (elem.getElementsByTagName("tbody")[0] ||
+ elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
+ elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+
+ if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
+ return;
+ }
+
+ var type, i, l,
+ oldData = jQuery._data( src ),
+ curData = jQuery._data( dest, oldData ),
+ events = oldData.events;
+
+ if ( events ) {
+ delete curData.handle;
+ curData.events = {};
+
+ for ( type in events ) {
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+ jQuery.event.add( dest, type, events[ type ][ i ] );
+ }
+ }
+ }
+
+ // make the cloned public data object a copy from the original
+ if ( curData.data ) {
+ curData.data = jQuery.extend( {}, curData.data );
+ }
+}
+
+function cloneFixAttributes( src, dest ) {
+ var nodeName;
+
+ // We do not need to do anything for non-Elements
+ if ( dest.nodeType !== 1 ) {
+ return;
+ }
+
+ // clearAttributes removes the attributes, which we don't want,
+ // but also removes the attachEvent events, which we *do* want
+ if ( dest.clearAttributes ) {
+ dest.clearAttributes();
+ }
+
+ // mergeAttributes, in contrast, only merges back on the
+ // original attributes, not the events
+ if ( dest.mergeAttributes ) {
+ dest.mergeAttributes( src );
+ }
+
+ nodeName = dest.nodeName.toLowerCase();
+
+ // IE6-8 fail to clone children inside object elements that use
+ // the proprietary classid attribute value (rather than the type
+ // attribute) to identify the type of content to display
+ if ( nodeName === "object" ) {
+ dest.outerHTML = src.outerHTML;
+
+ } else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
+ // IE6-8 fails to persist the checked state of a cloned checkbox
+ // or radio button. Worse, IE6-7 fail to give the cloned element
+ // a checked appearance if the defaultChecked value isn't also set
+ if ( src.checked ) {
+ dest.defaultChecked = dest.checked = src.checked;
+ }
+
+ // IE6-7 get confused and end up setting the value of a cloned
+ // checkbox/radio button to an empty string instead of "on"
+ if ( dest.value !== src.value ) {
+ dest.value = src.value;
+ }
+
+ // IE6-8 fails to return the selected option to the default selected
+ // state when cloning options
+ } else if ( nodeName === "option" ) {
+ dest.selected = src.defaultSelected;
+
+ // IE6-8 fails to set the defaultValue to the correct value when
+ // cloning other types of input fields
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
+ dest.defaultValue = src.defaultValue;
+
+ // IE blanks contents when cloning scripts
+ } else if ( nodeName === "script" && dest.text !== src.text ) {
+ dest.text = src.text;
+ }
+
+ // Event data gets referenced instead of copied if the expando
+ // gets copied too
+ dest.removeAttribute( jQuery.expando );
+
+ // Clear flags for bubbling special change/submit events, they must
+ // be reattached when the newly cloned events are first activated
+ dest.removeAttribute( "_submit_attached" );
+ dest.removeAttribute( "_change_attached" );
+}
+
+jQuery.buildFragment = function( args, nodes, scripts ) {
+ var fragment, cacheable, cacheresults, doc,
+ first = args[ 0 ];
+
+ // nodes may contain either an explicit document object,
+ // a jQuery collection or context object.
+ // If nodes[0] contains a valid object to assign to doc
+ if ( nodes && nodes[0] ) {
+ doc = nodes[0].ownerDocument || nodes[0];
+ }
+
+ // Ensure that an attr object doesn't incorrectly stand in as a document object
+ // Chrome and Firefox seem to allow this to occur and will throw exception
+ // Fixes #8950
+ if ( !doc.createDocumentFragment ) {
+ doc = document;
+ }
+
+ // Only cache "small" (1/2 KB) HTML strings that are associated with the main document
+ // Cloning options loses the selected state, so don't cache them
+ // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
+ // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
+ // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501
+ if ( args.length === 1 && typeof first === "string" && first.length < 512 && doc === document &&
+ first.charAt(0) === "<" && !rnocache.test( first ) &&
+ (jQuery.support.checkClone || !rchecked.test( first )) &&
+ (jQuery.support.html5Clone || !rnoshimcache.test( first )) ) {
+
+ cacheable = true;
+
+ cacheresults = jQuery.fragments[ first ];
+ if ( cacheresults && cacheresults !== 1 ) {
+ fragment = cacheresults;
+ }
+ }
+
+ if ( !fragment ) {
+ fragment = doc.createDocumentFragment();
+ jQuery.clean( args, doc, fragment, scripts );
+ }
+
+ if ( cacheable ) {
+ jQuery.fragments[ first ] = cacheresults ? fragment : 1;
+ }
+
+ return { fragment: fragment, cacheable: cacheable };
+};
+
+jQuery.fragments = {};
+
+jQuery.each({
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+}, function( name, original ) {
+ jQuery.fn[ name ] = function( selector ) {
+ var ret = [],
+ insert = jQuery( selector ),
+ parent = this.length === 1 && this[0].parentNode;
+
+ if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
+ insert[ original ]( this[0] );
+ return this;
+
+ } else {
+ for ( var i = 0, l = insert.length; i < l; i++ ) {
+ var elems = ( i > 0 ? this.clone(true) : this ).get();
+ jQuery( insert[i] )[ original ]( elems );
+ ret = ret.concat( elems );
+ }
+
+ return this.pushStack( ret, name, insert.selector );
+ }
+ };
+});
+
+function getAll( elem ) {
+ if ( typeof elem.getElementsByTagName !== "undefined" ) {
+ return elem.getElementsByTagName( "*" );
+
+ } else if ( typeof elem.querySelectorAll !== "undefined" ) {
+ return elem.querySelectorAll( "*" );
+
+ } else {
+ return [];
+ }
+}
+
+// Used in clean, fixes the defaultChecked property
+function fixDefaultChecked( elem ) {
+ if ( elem.type === "checkbox" || elem.type === "radio" ) {
+ elem.defaultChecked = elem.checked;
+ }
+}
+// Finds all inputs and passes them to fixDefaultChecked
+function findInputs( elem ) {
+ var nodeName = ( elem.nodeName || "" ).toLowerCase();
+ if ( nodeName === "input" ) {
+ fixDefaultChecked( elem );
+ // Skip scripts, get other children
+ } else if ( nodeName !== "script" && typeof elem.getElementsByTagName !== "undefined" ) {
+ jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
+ }
+}
+
+// Derived From: http://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js
+function shimCloneNode( elem ) {
+ var div = document.createElement( "div" );
+ safeFragment.appendChild( div );
+
+ div.innerHTML = elem.outerHTML;
+ return div.firstChild;
+}
+
+jQuery.extend({
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+ var srcElements,
+ destElements,
+ i,
+ // IE<=8 does not properly clone detached, unknown element nodes
+ clone = jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ?
+ elem.cloneNode( true ) :
+ shimCloneNode( elem );
+
+ if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
+ (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
+ // IE copies events bound via attachEvent when using cloneNode.
+ // Calling detachEvent on the clone will also remove the events
+ // from the original. In order to get around this, we use some
+ // proprietary methods to clear the events. Thanks to MooTools
+ // guys for this hotness.
+
+ cloneFixAttributes( elem, clone );
+
+ // Using Sizzle here is crazy slow, so we use getElementsByTagName instead
+ srcElements = getAll( elem );
+ destElements = getAll( clone );
+
+ // Weird iteration because IE will replace the length property
+ // with an element if you are cloning the body and one of the
+ // elements on the page has a name or id of "length"
+ for ( i = 0; srcElements[i]; ++i ) {
+ // Ensure that the destination node is not null; Fixes #9587
+ if ( destElements[i] ) {
+ cloneFixAttributes( srcElements[i], destElements[i] );
+ }
+ }
+ }
+
+ // Copy the events from the original to the clone
+ if ( dataAndEvents ) {
+ cloneCopyEvent( elem, clone );
+
+ if ( deepDataAndEvents ) {
+ srcElements = getAll( elem );
+ destElements = getAll( clone );
+
+ for ( i = 0; srcElements[i]; ++i ) {
+ cloneCopyEvent( srcElements[i], destElements[i] );
+ }
+ }
+ }
+
+ srcElements = destElements = null;
+
+ // Return the cloned set
+ return clone;
+ },
+
+ clean: function( elems, context, fragment, scripts ) {
+ var checkScriptType, script, j,
+ ret = [];
+
+ context = context || document;
+
+ // !context.createElement fails in IE with an error but returns typeof 'object'
+ if ( typeof context.createElement === "undefined" ) {
+ context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
+ }
+
+ for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+ if ( typeof elem === "number" ) {
+ elem += "";
+ }
+
+ if ( !elem ) {
+ continue;
+ }
+
+ // Convert html string into DOM nodes
+ if ( typeof elem === "string" ) {
+ if ( !rhtml.test( elem ) ) {
+ elem = context.createTextNode( elem );
+ } else {
+ // Fix "XHTML"-style tags in all browsers
+ elem = elem.replace(rxhtmlTag, "<$1></$2>");
+
+ // Trim whitespace, otherwise indexOf won't work as expected
+ var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(),
+ wrap = wrapMap[ tag ] || wrapMap._default,
+ depth = wrap[0],
+ div = context.createElement("div"),
+ safeChildNodes = safeFragment.childNodes,
+ remove;
+
+ // Append wrapper element to unknown element safe doc fragment
+ if ( context === document ) {
+ // Use the fragment we've already created for this document
+ safeFragment.appendChild( div );
+ } else {
+ // Use a fragment created with the owner document
+ createSafeFragment( context ).appendChild( div );
+ }
+
+ // Go to html and back, then peel off extra wrappers
+ div.innerHTML = wrap[1] + elem + wrap[2];
+
+ // Move to the right depth
+ while ( depth-- ) {
+ div = div.lastChild;
+ }
+
+ // Remove IE's autoinserted <tbody> from table fragments
+ if ( !jQuery.support.tbody ) {
+
+ // String was a <table>, *may* have spurious <tbody>
+ var hasBody = rtbody.test(elem),
+ tbody = tag === "table" && !hasBody ?
+ div.firstChild && div.firstChild.childNodes :
+
+ // String was a bare <thead> or <tfoot>
+ wrap[1] === "<table>" && !hasBody ?
+ div.childNodes :
+ [];
+
+ for ( j = tbody.length - 1; j >= 0 ; --j ) {
+ if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
+ tbody[ j ].parentNode.removeChild( tbody[ j ] );
+ }
+ }
+ }
+
+ // IE completely kills leading whitespace when innerHTML is used
+ if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
+ div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
+ }
+
+ elem = div.childNodes;
+
+ // Clear elements from DocumentFragment (safeFragment or otherwise)
+ // to avoid hoarding elements. Fixes #11356
+ if ( div ) {
+ div.parentNode.removeChild( div );
+
+ // Guard against -1 index exceptions in FF3.6
+ if ( safeChildNodes.length > 0 ) {
+ remove = safeChildNodes[ safeChildNodes.length - 1 ];
+
+ if ( remove && remove.parentNode ) {
+ remove.parentNode.removeChild( remove );
+ }
+ }
+ }
+ }
+ }
+
+ // Resets defaultChecked for any radios and checkboxes
+ // about to be appended to the DOM in IE 6/7 (#8060)
+ var len;
+ if ( !jQuery.support.appendChecked ) {
+ if ( elem[0] && typeof (len = elem.length) === "number" ) {
+ for ( j = 0; j < len; j++ ) {
+ findInputs( elem[j] );
+ }
+ } else {
+ findInputs( elem );
+ }
+ }
+
+ if ( elem.nodeType ) {
+ ret.push( elem );
+ } else {
+ ret = jQuery.merge( ret, elem );
+ }
+ }
+
+ if ( fragment ) {
+ checkScriptType = function( elem ) {
+ return !elem.type || rscriptType.test( elem.type );
+ };
+ for ( i = 0; ret[i]; i++ ) {
+ script = ret[i];
+ if ( scripts && jQuery.nodeName( script, "script" ) && (!script.type || rscriptType.test( script.type )) ) {
+ scripts.push( script.parentNode ? script.parentNode.removeChild( script ) : script );
+
+ } else {
+ if ( script.nodeType === 1 ) {
+ var jsTags = jQuery.grep( script.getElementsByTagName( "script" ), checkScriptType );
+
+ ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
+ }
+ fragment.appendChild( script );
+ }
+ }
+ }
+
+ return ret;
+ },
+
+ cleanData: function( elems ) {
+ var data, id,
+ cache = jQuery.cache,
+ special = jQuery.event.special,
+ deleteExpando = jQuery.support.deleteExpando;
+
+ for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+ if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
+ continue;
+ }
+
+ id = elem[ jQuery.expando ];
+
+ if ( id ) {
+ data = cache[ id ];
+
+ if ( data && data.events ) {
+ for ( var type in data.events ) {
+ if ( special[ type ] ) {
+ jQuery.event.remove( elem, type );
+
+ // This is a shortcut to avoid jQuery.event.remove's overhead
+ } else {
+ jQuery.removeEvent( elem, type, data.handle );
+ }
+ }
+
+ // Null the DOM reference to avoid IE6/7/8 leak (#7054)
+ if ( data.handle ) {
+ data.handle.elem = null;
+ }
+ }
+
+ if ( deleteExpando ) {
+ delete elem[ jQuery.expando ];
+
+ } else if ( elem.removeAttribute ) {
+ elem.removeAttribute( jQuery.expando );
+ }
+
+ delete cache[ id ];
+ }
+ }
+ }
+});
+
+
+
+
+var ralpha = /alpha\([^)]*\)/i,
+ ropacity = /opacity=([^)]*)/,
+ // fixed for IE9, see #8346
+ rupper = /([A-Z]|^ms)/g,
+ rnum = /^[\-+]?(?:\d*\.)?\d+$/i,
+ rnumnonpx = /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,
+ rrelNum = /^([\-+])=([\-+.\de]+)/,
+ rmargin = /^margin/,
+
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+
+ // order is important!
+ cssExpand = [ "Top", "Right", "Bottom", "Left" ],
+
+ curCSS,
+
+ getComputedStyle,
+ currentStyle;
+
+jQuery.fn.css = function( name, value ) {
+ return jQuery.access( this, function( elem, name, value ) {
+ return value !== undefined ?
+ jQuery.style( elem, name, value ) :
+ jQuery.css( elem, name );
+ }, name, value, arguments.length > 1 );
+};
+
+jQuery.extend({
+ // Add in style property hooks for overriding the default
+ // behavior of getting and setting a style property
+ cssHooks: {
+ opacity: {
+ get: function( elem, computed ) {
+ if ( computed ) {
+ // We should always get a number back from opacity
+ var ret = curCSS( elem, "opacity" );
+ return ret === "" ? "1" : ret;
+
+ } else {
+ return elem.style.opacity;
+ }
+ }
+ }
+ },
+
+ // Exclude the following css properties to add px
+ cssNumber: {
+ "fillOpacity": true,
+ "fontWeight": true,
+ "lineHeight": true,
+ "opacity": true,
+ "orphans": true,
+ "widows": true,
+ "zIndex": true,
+ "zoom": true
+ },
+
+ // Add in properties whose names you wish to fix before
+ // setting or getting the value
+ cssProps: {
+ // normalize float css property
+ "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
+ },
+
+ // Get and set the style property on a DOM Node
+ style: function( elem, name, value, extra ) {
+ // Don't set styles on text and comment nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+ return;
+ }
+
+ // Make sure that we're working with the right name
+ var ret, type, origName = jQuery.camelCase( name ),
+ style = elem.style, hooks = jQuery.cssHooks[ origName ];
+
+ name = jQuery.cssProps[ origName ] || origName;
+
+ // Check if we're setting a value
+ if ( value !== undefined ) {
+ type = typeof value;
+
+ // convert relative number strings (+= or -=) to relative numbers. #7345
+ if ( type === "string" && (ret = rrelNum.exec( value )) ) {
+ value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) );
+ // Fixes bug #9237
+ type = "number";
+ }
+
+ // Make sure that NaN and null values aren't set. See: #7116
+ if ( value == null || type === "number" && isNaN( value ) ) {
+ return;
+ }
+
+ // If a number was passed in, add 'px' to the (except for certain CSS properties)
+ if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
+ value += "px";
+ }
+
+ // If a hook was provided, use that value, otherwise just set the specified value
+ if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
+ // Wrapped to prevent IE from throwing errors when 'invalid' values are provided
+ // Fixes bug #5509
+ try {
+ style[ name ] = value;
+ } catch(e) {}
+ }
+
+ } else {
+ // If a hook was provided get the non-computed value from there
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
+ return ret;
+ }
+
+ // Otherwise just get the value from the style object
+ return style[ name ];
+ }
+ },
+
+ css: function( elem, name, extra ) {
+ var ret, hooks;
+
+ // Make sure that we're working with the right name
+ name = jQuery.camelCase( name );
+ hooks = jQuery.cssHooks[ name ];
+ name = jQuery.cssProps[ name ] || name;
+
+ // cssFloat needs a special treatment
+ if ( name === "cssFloat" ) {
+ name = "float";
+ }
+
+ // If a hook was provided get the computed value from there
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
+ return ret;
+
+ // Otherwise, if a way to get the computed value exists, use that
+ } else if ( curCSS ) {
+ return curCSS( elem, name );
+ }
+ },
+
+ // A method for quickly swapping in/out CSS properties to get correct calculations
+ swap: function( elem, options, callback ) {
+ var old = {},
+ ret, name;
+
+ // Remember the old values, and insert the new ones
+ for ( name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ ret = callback.call( elem );
+
+ // Revert the old values
+ for ( name in options ) {
+ elem.style[ name ] = old[ name ];
+ }
+
+ return ret;
+ }
+});
+
+// DEPRECATED in 1.3, Use jQuery.css() instead
+jQuery.curCSS = jQuery.css;
+
+if ( document.defaultView && document.defaultView.getComputedStyle ) {
+ getComputedStyle = function( elem, name ) {
+ var ret, defaultView, computedStyle, width,
+ style = elem.style;
+
+ name = name.replace( rupper, "-$1" ).toLowerCase();
+
+ if ( (defaultView = elem.ownerDocument.defaultView) &&
+ (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
+
+ ret = computedStyle.getPropertyValue( name );
+ if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
+ ret = jQuery.style( elem, name );
+ }
+ }
+
+ // A tribute to the "awesome hack by Dean Edwards"
+ // WebKit uses "computed value (percentage if specified)" instead of "used value" for margins
+ // which is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
+ if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) {
+ width = style.width;
+ style.width = ret;
+ ret = computedStyle.width;
+ style.width = width;
+ }
+
+ return ret;
+ };
+}
+
+if ( document.documentElement.currentStyle ) {
+ currentStyle = function( elem, name ) {
+ var left, rsLeft, uncomputed,
+ ret = elem.currentStyle && elem.currentStyle[ name ],
+ style = elem.style;
+
+ // Avoid setting ret to empty string here
+ // so we don't default to auto
+ if ( ret == null && style && (uncomputed = style[ name ]) ) {
+ ret = uncomputed;
+ }
+
+ // From the awesome hack by Dean Edwards
+ // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+ // If we're not dealing with a regular pixel number
+ // but a number that has a weird ending, we need to convert it to pixels
+ if ( rnumnonpx.test( ret ) ) {
+
+ // Remember the original values
+ left = style.left;
+ rsLeft = elem.runtimeStyle && elem.runtimeStyle.left;
+
+ // Put in the new values to get a computed value out
+ if ( rsLeft ) {
+ elem.runtimeStyle.left = elem.currentStyle.left;
+ }
+ style.left = name === "fontSize" ? "1em" : ret;
+ ret = style.pixelLeft + "px";
+
+ // Revert the changed values
+ style.left = left;
+ if ( rsLeft ) {
+ elem.runtimeStyle.left = rsLeft;
+ }
+ }
+
+ return ret === "" ? "auto" : ret;
+ };
+}
+
+curCSS = getComputedStyle || currentStyle;
+
+function getWidthOrHeight( elem, name, extra ) {
+
+ // Start with offset property
+ var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+ i = name === "width" ? 1 : 0,
+ len = 4;
+
+ if ( val > 0 ) {
+ if ( extra !== "border" ) {
+ for ( ; i < len; i += 2 ) {
+ if ( !extra ) {
+ val -= parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0;
+ }
+ if ( extra === "margin" ) {
+ val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ] ) ) || 0;
+ } else {
+ val -= parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
+ }
+ }
+ }
+
+ return val + "px";
+ }
+
+ // Fall back to computed then uncomputed css if necessary
+ val = curCSS( elem, name );
+ if ( val < 0 || val == null ) {
+ val = elem.style[ name ];
+ }
+
+ // Computed unit is not pixels. Stop here and return.
+ if ( rnumnonpx.test(val) ) {
+ return val;
+ }
+
+ // Normalize "", auto, and prepare for extra
+ val = parseFloat( val ) || 0;
+
+ // Add padding, border, margin
+ if ( extra ) {
+ for ( ; i < len; i += 2 ) {
+ val += parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0;
+ if ( extra !== "padding" ) {
+ val += parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
+ }
+ if ( extra === "margin" ) {
+ val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ]) ) || 0;
+ }
+ }
+ }
+
+ return val + "px";
+}
+
+jQuery.each([ "height", "width" ], function( i, name ) {
+ jQuery.cssHooks[ name ] = {
+ get: function( elem, computed, extra ) {
+ if ( computed ) {
+ if ( elem.offsetWidth !== 0 ) {
+ return getWidthOrHeight( elem, name, extra );
+ } else {
+ return jQuery.swap( elem, cssShow, function() {
+ return getWidthOrHeight( elem, name, extra );
+ });
+ }
+ }
+ },
+
+ set: function( elem, value ) {
+ return rnum.test( value ) ?
+ value + "px" :
+ value;
+ }
+ };
+});
+
+if ( !jQuery.support.opacity ) {
+ jQuery.cssHooks.opacity = {
+ get: function( elem, computed ) {
+ // IE uses filters for opacity
+ return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
+ ( parseFloat( RegExp.$1 ) / 100 ) + "" :
+ computed ? "1" : "";
+ },
+
+ set: function( elem, value ) {
+ var style = elem.style,
+ currentStyle = elem.currentStyle,
+ opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
+ filter = currentStyle && currentStyle.filter || style.filter || "";
+
+ // IE has trouble with opacity if it does not have layout
+ // Force it by setting the zoom level
+ style.zoom = 1;
+
+ // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
+ if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
+
+ // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
+ // if "filter:" is present at all, clearType is disabled, we want to avoid this
+ // style.removeAttribute is IE Only, but so apparently is this code path...
+ style.removeAttribute( "filter" );
+
+ // if there there is no filter style applied in a css rule, we are done
+ if ( currentStyle && !currentStyle.filter ) {
+ return;
+ }
+ }
+
+ // otherwise, set new filter values
+ style.filter = ralpha.test( filter ) ?
+ filter.replace( ralpha, opacity ) :
+ filter + " " + opacity;
+ }
+ };
+}
+
+jQuery(function() {
+ // This hook cannot be added until DOM ready because the support test
+ // for it is not run until after DOM ready
+ if ( !jQuery.support.reliableMarginRight ) {
+ jQuery.cssHooks.marginRight = {
+ get: function( elem, computed ) {
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ // Work around by temporarily setting element display to inline-block
+ return jQuery.swap( elem, { "display": "inline-block" }, function() {
+ if ( computed ) {
+ return curCSS( elem, "margin-right" );
+ } else {
+ return elem.style.marginRight;
+ }
+ });
+ }
+ };
+ }
+});
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+ jQuery.expr.filters.hidden = function( elem ) {
+ var width = elem.offsetWidth,
+ height = elem.offsetHeight;
+
+ return ( width === 0 && height === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
+ };
+
+ jQuery.expr.filters.visible = function( elem ) {
+ return !jQuery.expr.filters.hidden( elem );
+ };
+}
+
+// These hooks are used by animate to expand properties
+jQuery.each({
+ margin: "",
+ padding: "",
+ border: "Width"
+}, function( prefix, suffix ) {
+
+ jQuery.cssHooks[ prefix + suffix ] = {
+ expand: function( value ) {
+ var i,
+
+ // assumes a single number if not a string
+ parts = typeof value === "string" ? value.split(" ") : [ value ],
+ expanded = {};
+
+ for ( i = 0; i < 4; i++ ) {
+ expanded[ prefix + cssExpand[ i ] + suffix ] =
+ parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+ }
+
+ return expanded;
+ }
+ };
+});
+
+
+
+
+var r20 = /%20/g,
+ rbracket = /\[\]$/,
+ rCRLF = /\r?\n/g,
+ rhash = /#.*$/,
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
+ rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
+ // #7653, #8125, #8152: local protocol detection
+ rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
+ rnoContent = /^(?:GET|HEAD)$/,
+ rprotocol = /^\/\//,
+ rquery = /\?/,
+ rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+ rselectTextarea = /^(?:select|textarea)/i,
+ rspacesAjax = /\s+/,
+ rts = /([?&])_=[^&]*/,
+ rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
+
+ // Keep a copy of the old load method
+ _load = jQuery.fn.load,
+
+ /* Prefilters
+ * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+ * 2) These are called:
+ * - BEFORE asking for a transport
+ * - AFTER param serialization (s.data is a string if s.processData is true)
+ * 3) key is the dataType
+ * 4) the catchall symbol "*" can be used
+ * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+ */
+ prefilters = {},
+
+ /* Transports bindings
+ * 1) key is the dataType
+ * 2) the catchall symbol "*" can be used
+ * 3) selection will start with transport dataType and THEN go to "*" if needed
+ */
+ transports = {},
+
+ // Document location
+ ajaxLocation,
+
+ // Document location segments
+ ajaxLocParts,
+
+ // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+ allTypes = ["*/"] + ["*"];
+
+// #8138, IE may throw an exception when accessing
+// a field from window.location if document.domain has been set
+try {
+ ajaxLocation = location.href;
+} catch( e ) {
+ // Use the href attribute of an A element
+ // since IE will modify it given document.location
+ ajaxLocation = document.createElement( "a" );
+ ajaxLocation.href = "";
+ ajaxLocation = ajaxLocation.href;
+}
+
+// Segment location into parts
+ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+ // dataTypeExpression is optional and defaults to "*"
+ return function( dataTypeExpression, func ) {
+
+ if ( typeof dataTypeExpression !== "string" ) {
+ func = dataTypeExpression;
+ dataTypeExpression = "*";
+ }
+
+ if ( jQuery.isFunction( func ) ) {
+ var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
+ i = 0,
+ length = dataTypes.length,
+ dataType,
+ list,
+ placeBefore;
+
+ // For each dataType in the dataTypeExpression
+ for ( ; i < length; i++ ) {
+ dataType = dataTypes[ i ];
+ // We control if we're asked to add before
+ // any existing element
+ placeBefore = /^\+/.test( dataType );
+ if ( placeBefore ) {
+ dataType = dataType.substr( 1 ) || "*";
+ }
+ list = structure[ dataType ] = structure[ dataType ] || [];
+ // then we add to the structure accordingly
+ list[ placeBefore ? "unshift" : "push" ]( func );
+ }
+ }
+ };
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
+ dataType /* internal */, inspected /* internal */ ) {
+
+ dataType = dataType || options.dataTypes[ 0 ];
+ inspected = inspected || {};
+
+ inspected[ dataType ] = true;
+
+ var list = structure[ dataType ],
+ i = 0,
+ length = list ? list.length : 0,
+ executeOnly = ( structure === prefilters ),
+ selection;
+
+ for ( ; i < length && ( executeOnly || !selection ); i++ ) {
+ selection = list[ i ]( options, originalOptions, jqXHR );
+ // If we got redirected to another dataType
+ // we try there if executing only and not done already
+ if ( typeof selection === "string" ) {
+ if ( !executeOnly || inspected[ selection ] ) {
+ selection = undefined;
+ } else {
+ options.dataTypes.unshift( selection );
+ selection = inspectPrefiltersOrTransports(
+ structure, options, originalOptions, jqXHR, selection, inspected );
+ }
+ }
+ }
+ // If we're only executing or nothing was selected
+ // we try the catchall dataType if not done already
+ if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
+ selection = inspectPrefiltersOrTransports(
+ structure, options, originalOptions, jqXHR, "*", inspected );
+ }
+ // unnecessary when only executing (prefilters)
+ // but it'll be ignored by the caller in that case
+ return selection;
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+ var key, deep,
+ flatOptions = jQuery.ajaxSettings.flatOptions || {};
+ for ( key in src ) {
+ if ( src[ key ] !== undefined ) {
+ ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+ }
+ }
+ if ( deep ) {
+ jQuery.extend( true, target, deep );
+ }
+}
+
+jQuery.fn.extend({
+ load: function( url, params, callback ) {
+ if ( typeof url !== "string" && _load ) {
+ return _load.apply( this, arguments );
+
+ // Don't do a request if no elements are being requested
+ } else if ( !this.length ) {
+ return this;
+ }
+
+ var off = url.indexOf( " " );
+ if ( off >= 0 ) {
+ var selector = url.slice( off, url.length );
+ url = url.slice( 0, off );
+ }
+
+ // Default to a GET request
+ var type = "GET";
+
+ // If the second parameter was provided
+ if ( params ) {
+ // If it's a function
+ if ( jQuery.isFunction( params ) ) {
+ // We assume that it's the callback
+ callback = params;
+ params = undefined;
+
+ // Otherwise, build a param string
+ } else if ( typeof params === "object" ) {
+ params = jQuery.param( params, jQuery.ajaxSettings.traditional );
+ type = "POST";
+ }
+ }
+
+ var self = this;
+
+ // Request the remote document
+ jQuery.ajax({
+ url: url,
+ type: type,
+ dataType: "html",
+ data: params,
+ // Complete callback (responseText is used internally)
+ complete: function( jqXHR, status, responseText ) {
+ // Store the response as specified by the jqXHR object
+ responseText = jqXHR.responseText;
+ // If successful, inject the HTML into all the matched elements
+ if ( jqXHR.isResolved() ) {
+ // #4825: Get the actual response in case
+ // a dataFilter is present in ajaxSettings
+ jqXHR.done(function( r ) {
+ responseText = r;
+ });
+ // See if a selector was specified
+ self.html( selector ?
+ // Create a dummy div to hold the results
+ jQuery("<div>")
+ // inject the contents of the document in, removing the scripts
+ // to avoid any 'Permission Denied' errors in IE
+ .append(responseText.replace(rscript, ""))
+
+ // Locate the specified elements
+ .find(selector) :
+
+ // If not, just inject the full result
+ responseText );
+ }
+
+ if ( callback ) {
+ self.each( callback, [ responseText, status, jqXHR ] );
+ }
+ }
+ });
+
+ return this;
+ },
+
+ serialize: function() {
+ return jQuery.param( this.serializeArray() );
+ },
+
+ serializeArray: function() {
+ return this.map(function(){
+ return this.elements ? jQuery.makeArray( this.elements ) : this;
+ })
+ .filter(function(){
+ return this.name && !this.disabled &&
+ ( this.checked || rselectTextarea.test( this.nodeName ) ||
+ rinput.test( this.type ) );
+ })
+ .map(function( i, elem ){
+ var val = jQuery( this ).val();
+
+ return val == null ?
+ null :
+ jQuery.isArray( val ) ?
+ jQuery.map( val, function( val, i ){
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ }) :
+ { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ }).get();
+ }
+});
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
+ jQuery.fn[ o ] = function( f ){
+ return this.on( o, f );
+ };
+});
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+ jQuery[ method ] = function( url, data, callback, type ) {
+ // shift arguments if data argument was omitted
+ if ( jQuery.isFunction( data ) ) {
+ type = type || callback;
+ callback = data;
+ data = undefined;
+ }
+
+ return jQuery.ajax({
+ type: method,
+ url: url,
+ data: data,
+ success: callback,
+ dataType: type
+ });
+ };
+});
+
+jQuery.extend({
+
+ getScript: function( url, callback ) {
+ return jQuery.get( url, undefined, callback, "script" );
+ },
+
+ getJSON: function( url, data, callback ) {
+ return jQuery.get( url, data, callback, "json" );
+ },
+
+ // Creates a full fledged settings object into target
+ // with both ajaxSettings and settings fields.
+ // If target is omitted, writes into ajaxSettings.
+ ajaxSetup: function( target, settings ) {
+ if ( settings ) {
+ // Building a settings object
+ ajaxExtend( target, jQuery.ajaxSettings );
+ } else {
+ // Extending ajaxSettings
+ settings = target;
+ target = jQuery.ajaxSettings;
+ }
+ ajaxExtend( target, settings );
+ return target;
+ },
+
+ ajaxSettings: {
+ url: ajaxLocation,
+ isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+ global: true,
+ type: "GET",
+ contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+ processData: true,
+ async: true,
+ /*
+ timeout: 0,
+ data: null,
+ dataType: null,
+ username: null,
+ password: null,
+ cache: null,
+ traditional: false,
+ headers: {},
+ */
+
+ accepts: {
+ xml: "application/xml, text/xml",
+ html: "text/html",
+ text: "text/plain",
+ json: "application/json, text/javascript",
+ "*": allTypes
+ },
+
+ contents: {
+ xml: /xml/,
+ html: /html/,
+ json: /json/
+ },
+
+ responseFields: {
+ xml: "responseXML",
+ text: "responseText"
+ },
+
+ // List of data converters
+ // 1) key format is "source_type destination_type" (a single space in-between)
+ // 2) the catchall symbol "*" can be used for source_type
+ converters: {
+
+ // Convert anything to text
+ "* text": window.String,
+
+ // Text to html (true = no transformation)
+ "text html": true,
+
+ // Evaluate text as a json expression
+ "text json": jQuery.parseJSON,
+
+ // Parse text as xml
+ "text xml": jQuery.parseXML
+ },
+
+ // For options that shouldn't be deep extended:
+ // you can add your own custom options here if
+ // and when you create one that shouldn't be
+ // deep extended (see ajaxExtend)
+ flatOptions: {
+ context: true,
+ url: true
+ }
+ },
+
+ ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+ ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+ // Main method
+ ajax: function( url, options ) {
+
+ // If url is an object, simulate pre-1.5 signature
+ if ( typeof url === "object" ) {
+ options = url;
+ url = undefined;
+ }
+
+ // Force options to be an object
+ options = options || {};
+
+ var // Create the final options object
+ s = jQuery.ajaxSetup( {}, options ),
+ // Callbacks context
+ callbackContext = s.context || s,
+ // Context for global events
+ // It's the callbackContext if one was provided in the options
+ // and if it's a DOM node or a jQuery collection
+ globalEventContext = callbackContext !== s &&
+ ( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
+ jQuery( callbackContext ) : jQuery.event,
+ // Deferreds
+ deferred = jQuery.Deferred(),
+ completeDeferred = jQuery.Callbacks( "once memory" ),
+ // Status-dependent callbacks
+ statusCode = s.statusCode || {},
+ // ifModified key
+ ifModifiedKey,
+ // Headers (they are sent all at once)
+ requestHeaders = {},
+ requestHeadersNames = {},
+ // Response headers
+ responseHeadersString,
+ responseHeaders,
+ // transport
+ transport,
+ // timeout handle
+ timeoutTimer,
+ // Cross-domain detection vars
+ parts,
+ // The jqXHR state
+ state = 0,
+ // To know if global events are to be dispatched
+ fireGlobals,
+ // Loop variable
+ i,
+ // Fake xhr
+ jqXHR = {
+
+ readyState: 0,
+
+ // Caches the header
+ setRequestHeader: function( name, value ) {
+ if ( !state ) {
+ var lname = name.toLowerCase();
+ name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+ requestHeaders[ name ] = value;
+ }
+ return this;
+ },
+
+ // Raw string
+ getAllResponseHeaders: function() {
+ return state === 2 ? responseHeadersString : null;
+ },
+
+ // Builds headers hashtable if needed
+ getResponseHeader: function( key ) {
+ var match;
+ if ( state === 2 ) {
+ if ( !responseHeaders ) {
+ responseHeaders = {};
+ while( ( match = rheaders.exec( responseHeadersString ) ) ) {
+ responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
+ }
+ }
+ match = responseHeaders[ key.toLowerCase() ];
+ }
+ return match === undefined ? null : match;
+ },
+
+ // Overrides response content-type header
+ overrideMimeType: function( type ) {
+ if ( !state ) {
+ s.mimeType = type;
+ }
+ return this;
+ },
+
+ // Cancel the request
+ abort: function( statusText ) {
+ statusText = statusText || "abort";
+ if ( transport ) {
+ transport.abort( statusText );
+ }
+ done( 0, statusText );
+ return this;
+ }
+ };
+
+ // Callback for when everything is done
+ // It is defined here because jslint complains if it is declared
+ // at the end of the function (which would be more logical and readable)
+ function done( status, nativeStatusText, responses, headers ) {
+
+ // Called once
+ if ( state === 2 ) {
+ return;
+ }
+
+ // State is "done" now
+ state = 2;
+
+ // Clear timeout if it exists
+ if ( timeoutTimer ) {
+ clearTimeout( timeoutTimer );
+ }
+
+ // Dereference transport for early garbage collection
+ // (no matter how long the jqXHR object will be used)
+ transport = undefined;
+
+ // Cache response headers
+ responseHeadersString = headers || "";
+
+ // Set readyState
+ jqXHR.readyState = status > 0 ? 4 : 0;
+
+ var isSuccess,
+ success,
+ error,
+ statusText = nativeStatusText,
+ response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
+ lastModified,
+ etag;
+
+ // If successful, handle type chaining
+ if ( status >= 200 && status < 300 || status === 304 ) {
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+
+ if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
+ jQuery.lastModified[ ifModifiedKey ] = lastModified;
+ }
+ if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
+ jQuery.etag[ ifModifiedKey ] = etag;
+ }
+ }
+
+ // If not modified
+ if ( status === 304 ) {
+
+ statusText = "notmodified";
+ isSuccess = true;
+
+ // If we have data
+ } else {
+
+ try {
+ success = ajaxConvert( s, response );
+ statusText = "success";
+ isSuccess = true;
+ } catch(e) {
+ // We have a parsererror
+ statusText = "parsererror";
+ error = e;
+ }
+ }
+ } else {
+ // We extract error from statusText
+ // then normalize statusText and status for non-aborts
+ error = statusText;
+ if ( !statusText || status ) {
+ statusText = "error";
+ if ( status < 0 ) {
+ status = 0;
+ }
+ }
+ }
+
+ // Set data for the fake xhr object
+ jqXHR.status = status;
+ jqXHR.statusText = "" + ( nativeStatusText || statusText );
+
+ // Success/Error
+ if ( isSuccess ) {
+ deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+ } else {
+ deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+ }
+
+ // Status-dependent callbacks
+ jqXHR.statusCode( statusCode );
+ statusCode = undefined;
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
+ [ jqXHR, s, isSuccess ? success : error ] );
+ }
+
+ // Complete
+ completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+ // Handle the global AJAX counter
+ if ( !( --jQuery.active ) ) {
+ jQuery.event.trigger( "ajaxStop" );
+ }
+ }
+ }
+
+ // Attach deferreds
+ deferred.promise( jqXHR );
+ jqXHR.success = jqXHR.done;
+ jqXHR.error = jqXHR.fail;
+ jqXHR.complete = completeDeferred.add;
+
+ // Status-dependent callbacks
+ jqXHR.statusCode = function( map ) {
+ if ( map ) {
+ var tmp;
+ if ( state < 2 ) {
+ for ( tmp in map ) {
+ statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
+ }
+ } else {
+ tmp = map[ jqXHR.status ];
+ jqXHR.then( tmp, tmp );
+ }
+ }
+ return this;
+ };
+
+ // Remove hash character (#7531: and string promotion)
+ // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
+ // We also use the url parameter if available
+ s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+ // Extract dataTypes list
+ s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
+
+ // Determine if a cross-domain request is in order
+ if ( s.crossDomain == null ) {
+ parts = rurl.exec( s.url.toLowerCase() );
+ s.crossDomain = !!( parts &&
+ ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
+ ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
+ ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
+ );
+ }
+
+ // Convert data if not already a string
+ if ( s.data && s.processData && typeof s.data !== "string" ) {
+ s.data = jQuery.param( s.data, s.traditional );
+ }
+
+ // Apply prefilters
+ inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+ // If request was aborted inside a prefilter, stop there
+ if ( state === 2 ) {
+ return false;
+ }
+
+ // We can fire global events as of now if asked to
+ fireGlobals = s.global;
+
+ // Uppercase the type
+ s.type = s.type.toUpperCase();
+
+ // Determine if request has content
+ s.hasContent = !rnoContent.test( s.type );
+
+ // Watch for a new set of requests
+ if ( fireGlobals && jQuery.active++ === 0 ) {
+ jQuery.event.trigger( "ajaxStart" );
+ }
+
+ // More options handling for requests with no content
+ if ( !s.hasContent ) {
+
+ // If data is available, append data to url
+ if ( s.data ) {
+ s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
+ // #9682: remove data so that it's not used in an eventual retry
+ delete s.data;
+ }
+
+ // Get ifModifiedKey before adding the anti-cache parameter
+ ifModifiedKey = s.url;
+
+ // Add anti-cache in url if needed
+ if ( s.cache === false ) {
+
+ var ts = jQuery.now(),
+ // try replacing _= if it is there
+ ret = s.url.replace( rts, "$1_=" + ts );
+
+ // if nothing was replaced, add timestamp to the end
+ s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
+ }
+ }
+
+ // Set the correct header, if data is being sent
+ if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+ jqXHR.setRequestHeader( "Content-Type", s.contentType );
+ }
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ ifModifiedKey = ifModifiedKey || s.url;
+ if ( jQuery.lastModified[ ifModifiedKey ] ) {
+ jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );
+ }
+ if ( jQuery.etag[ ifModifiedKey ] ) {
+ jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );
+ }
+ }
+
+ // Set the Accepts header for the server, depending on the dataType
+ jqXHR.setRequestHeader(
+ "Accept",
+ s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+ s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+ s.accepts[ "*" ]
+ );
+
+ // Check for headers option
+ for ( i in s.headers ) {
+ jqXHR.setRequestHeader( i, s.headers[ i ] );
+ }
+
+ // Allow custom headers/mimetypes and early abort
+ if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+ // Abort if not done already
+ jqXHR.abort();
+ return false;
+
+ }
+
+ // Install callbacks on deferreds
+ for ( i in { success: 1, error: 1, complete: 1 } ) {
+ jqXHR[ i ]( s[ i ] );
+ }
+
+ // Get transport
+ transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+ // If no transport, we auto-abort
+ if ( !transport ) {
+ done( -1, "No Transport" );
+ } else {
+ jqXHR.readyState = 1;
+ // Send global event
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+ }
+ // Timeout
+ if ( s.async && s.timeout > 0 ) {
+ timeoutTimer = setTimeout( function(){
+ jqXHR.abort( "timeout" );
+ }, s.timeout );
+ }
+
+ try {
+ state = 1;
+ transport.send( requestHeaders, done );
+ } catch (e) {
+ // Propagate exception as error if not done
+ if ( state < 2 ) {
+ done( -1, e );
+ // Simply rethrow otherwise
+ } else {
+ throw e;
+ }
+ }
+ }
+
+ return jqXHR;
+ },
+
+ // Serialize an array of form elements or a set of
+ // key/values into a query string
+ param: function( a, traditional ) {
+ var s = [],
+ add = function( key, value ) {
+ // If value is a function, invoke it and return its value
+ value = jQuery.isFunction( value ) ? value() : value;
+ s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+ };
+
+ // Set traditional to true for jQuery <= 1.3.2 behavior.
+ if ( traditional === undefined ) {
+ traditional = jQuery.ajaxSettings.traditional;
+ }
+
+ // If an array was passed in, assume that it is an array of form elements.
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+ // Serialize the form elements
+ jQuery.each( a, function() {
+ add( this.name, this.value );
+ });
+
+ } else {
+ // If traditional, encode the "old" way (the way 1.3.2 or older
+ // did it), otherwise encode params recursively.
+ for ( var prefix in a ) {
+ buildParams( prefix, a[ prefix ], traditional, add );
+ }
+ }
+
+ // Return the resulting serialization
+ return s.join( "&" ).replace( r20, "+" );
+ }
+});
+
+function buildParams( prefix, obj, traditional, add ) {
+ if ( jQuery.isArray( obj ) ) {
+ // Serialize array item.
+ jQuery.each( obj, function( i, v ) {
+ if ( traditional || rbracket.test( prefix ) ) {
+ // Treat each array item as a scalar.
+ add( prefix, v );
+
+ } else {
+ // If array item is non-scalar (array or object), encode its
+ // numeric index to resolve deserialization ambiguity issues.
+ // Note that rack (as of 1.0.0) can't currently deserialize
+ // nested arrays properly, and attempting to do so may cause
+ // a server error. Possible fixes are to modify rack's
+ // deserialization algorithm or to provide an option or flag
+ // to force array serialization to be shallow.
+ buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
+ }
+ });
+
+ } else if ( !traditional && jQuery.type( obj ) === "object" ) {
+ // Serialize object item.
+ for ( var name in obj ) {
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+ }
+
+ } else {
+ // Serialize scalar item.
+ add( prefix, obj );
+ }
+}
+
+// This is still on the jQuery object... for now
+// Want to move this to jQuery.ajax some day
+jQuery.extend({
+
+ // Counter for holding the number of active queries
+ active: 0,
+
+ // Last-Modified header cache for next request
+ lastModified: {},
+ etag: {}
+
+});
+
+/* Handles responses to an ajax request:
+ * - sets all responseXXX fields accordingly
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+ var contents = s.contents,
+ dataTypes = s.dataTypes,
+ responseFields = s.responseFields,
+ ct,
+ type,
+ finalDataType,
+ firstDataType;
+
+ // Fill responseXXX fields
+ for ( type in responseFields ) {
+ if ( type in responses ) {
+ jqXHR[ responseFields[type] ] = responses[ type ];
+ }
+ }
+
+ // Remove auto dataType and get content-type in the process
+ while( dataTypes[ 0 ] === "*" ) {
+ dataTypes.shift();
+ if ( ct === undefined ) {
+ ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
+ }
+ }
+
+ // Check if we're dealing with a known content-type
+ if ( ct ) {
+ for ( type in contents ) {
+ if ( contents[ type ] && contents[ type ].test( ct ) ) {
+ dataTypes.unshift( type );
+ break;
+ }
+ }
+ }
+
+ // Check to see if we have a response for the expected dataType
+ if ( dataTypes[ 0 ] in responses ) {
+ finalDataType = dataTypes[ 0 ];
+ } else {
+ // Try convertible dataTypes
+ for ( type in responses ) {
+ if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
+ finalDataType = type;
+ break;
+ }
+ if ( !firstDataType ) {
+ firstDataType = type;
+ }
+ }
+ // Or just use first one
+ finalDataType = finalDataType || firstDataType;
+ }
+
+ // If we found a dataType
+ // We add the dataType to the list if needed
+ // and return the corresponding response
+ if ( finalDataType ) {
+ if ( finalDataType !== dataTypes[ 0 ] ) {
+ dataTypes.unshift( finalDataType );
+ }
+ return responses[ finalDataType ];
+ }
+}
+
+// Chain conversions given the request and the original response
+function ajaxConvert( s, response ) {
+
+ // Apply the dataFilter if provided
+ if ( s.dataFilter ) {
+ response = s.dataFilter( response, s.dataType );
+ }
+
+ var dataTypes = s.dataTypes,
+ converters = {},
+ i,
+ key,
+ length = dataTypes.length,
+ tmp,
+ // Current and previous dataTypes
+ current = dataTypes[ 0 ],
+ prev,
+ // Conversion expression
+ conversion,
+ // Conversion function
+ conv,
+ // Conversion functions (transitive conversion)
+ conv1,
+ conv2;
+
+ // For each dataType in the chain
+ for ( i = 1; i < length; i++ ) {
+
+ // Create converters map
+ // with lowercased keys
+ if ( i === 1 ) {
+ for ( key in s.converters ) {
+ if ( typeof key === "string" ) {
+ converters[ key.toLowerCase() ] = s.converters[ key ];
+ }
+ }
+ }
+
+ // Get the dataTypes
+ prev = current;
+ current = dataTypes[ i ];
+
+ // If current is auto dataType, update it to prev
+ if ( current === "*" ) {
+ current = prev;
+ // If no auto and dataTypes are actually different
+ } else if ( prev !== "*" && prev !== current ) {
+
+ // Get the converter
+ conversion = prev + " " + current;
+ conv = converters[ conversion ] || converters[ "* " + current ];
+
+ // If there is no direct converter, search transitively
+ if ( !conv ) {
+ conv2 = undefined;
+ for ( conv1 in converters ) {
+ tmp = conv1.split( " " );
+ if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
+ conv2 = converters[ tmp[1] + " " + current ];
+ if ( conv2 ) {
+ conv1 = converters[ conv1 ];
+ if ( conv1 === true ) {
+ conv = conv2;
+ } else if ( conv2 === true ) {
+ conv = conv1;
+ }
+ break;
+ }
+ }
+ }
+ }
+ // If we found no converter, dispatch an error
+ if ( !( conv || conv2 ) ) {
+ jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
+ }
+ // If found converter is not an equivalence
+ if ( conv !== true ) {
+ // Convert with 1 or 2 converters accordingly
+ response = conv ? conv( response ) : conv2( conv1(response) );
+ }
+ }
+ }
+ return response;
+}
+
+
+
+
+var jsc = jQuery.now(),
+ jsre = /(\=)\?(&|$)|\?\?/i;
+
+// Default jsonp settings
+jQuery.ajaxSetup({
+ jsonp: "callback",
+ jsonpCallback: function() {
+ return jQuery.expando + "_" + ( jsc++ );
+ }
+});
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+ var inspectData = ( typeof s.data === "string" ) && /^application\/x\-www\-form\-urlencoded/.test( s.contentType );
+
+ if ( s.dataTypes[ 0 ] === "jsonp" ||
+ s.jsonp !== false && ( jsre.test( s.url ) ||
+ inspectData && jsre.test( s.data ) ) ) {
+
+ var responseContainer,
+ jsonpCallback = s.jsonpCallback =
+ jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
+ previous = window[ jsonpCallback ],
+ url = s.url,
+ data = s.data,
+ replace = "$1" + jsonpCallback + "$2";
+
+ if ( s.jsonp !== false ) {
+ url = url.replace( jsre, replace );
+ if ( s.url === url ) {
+ if ( inspectData ) {
+ data = data.replace( jsre, replace );
+ }
+ if ( s.data === data ) {
+ // Add callback manually
+ url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
+ }
+ }
+ }
+
+ s.url = url;
+ s.data = data;
+
+ // Install callback
+ window[ jsonpCallback ] = function( response ) {
+ responseContainer = [ response ];
+ };
+
+ // Clean-up function
+ jqXHR.always(function() {
+ // Set callback back to previous value
+ window[ jsonpCallback ] = previous;
+ // Call if it was a function and we have a response
+ if ( responseContainer && jQuery.isFunction( previous ) ) {
+ window[ jsonpCallback ]( responseContainer[ 0 ] );
+ }
+ });
+
+ // Use data converter to retrieve json after script execution
+ s.converters["script json"] = function() {
+ if ( !responseContainer ) {
+ jQuery.error( jsonpCallback + " was not called" );
+ }
+ return responseContainer[ 0 ];
+ };
+
+ // force json dataType
+ s.dataTypes[ 0 ] = "json";
+
+ // Delegate to script
+ return "script";
+ }
+});
+
+
+
+
+// Install script dataType
+jQuery.ajaxSetup({
+ accepts: {
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+ },
+ contents: {
+ script: /javascript|ecmascript/
+ },
+ converters: {
+ "text script": function( text ) {
+ jQuery.globalEval( text );
+ return text;
+ }
+ }
+});
+
+// Handle cache's special case and global
+jQuery.ajaxPrefilter( "script", function( s ) {
+ if ( s.cache === undefined ) {
+ s.cache = false;
+ }
+ if ( s.crossDomain ) {
+ s.type = "GET";
+ s.global = false;
+ }
+});
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function(s) {
+
+ // This transport only deals with cross domain requests
+ if ( s.crossDomain ) {
+
+ var script,
+ head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
+
+ return {
+
+ send: function( _, callback ) {
+
+ script = document.createElement( "script" );
+
+ script.async = "async";
+
+ if ( s.scriptCharset ) {
+ script.charset = s.scriptCharset;
+ }
+
+ script.src = s.url;
+
+ // Attach handlers for all browsers
+ script.onload = script.onreadystatechange = function( _, isAbort ) {
+
+ if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
+
+ // Handle memory leak in IE
+ script.onload = script.onreadystatechange = null;
+
+ // Remove the script
+ if ( head && script.parentNode ) {
+ head.removeChild( script );
+ }
+
+ // Dereference the script
+ script = undefined;
+
+ // Callback if not abort
+ if ( !isAbort ) {
+ callback( 200, "success" );
+ }
+ }
+ };
+ // Use insertBefore instead of appendChild to circumvent an IE6 bug.
+ // This arises when a base node is used (#2709 and #4378).
+ head.insertBefore( script, head.firstChild );
+ },
+
+ abort: function() {
+ if ( script ) {
+ script.onload( 0, 1 );
+ }
+ }
+ };
+ }
+});
+
+
+
+
+var // #5280: Internet Explorer will keep connections alive if we don't abort on unload
+ xhrOnUnloadAbort = window.ActiveXObject ? function() {
+ // Abort all pending requests
+ for ( var key in xhrCallbacks ) {
+ xhrCallbacks[ key ]( 0, 1 );
+ }
+ } : false,
+ xhrId = 0,
+ xhrCallbacks;
+
+// Functions to create xhrs
+function createStandardXHR() {
+ try {
+ return new window.XMLHttpRequest();
+ } catch( e ) {}
+}
+
+function createActiveXHR() {
+ try {
+ return new window.ActiveXObject( "Microsoft.XMLHTTP" );
+ } catch( e ) {}
+}
+
+// Create the request object
+// (This is still attached to ajaxSettings for backward compatibility)
+jQuery.ajaxSettings.xhr = window.ActiveXObject ?
+ /* Microsoft failed to properly
+ * implement the XMLHttpRequest in IE7 (can't request local files),
+ * so we use the ActiveXObject when it is available
+ * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+ * we need a fallback.
+ */
+ function() {
+ return !this.isLocal && createStandardXHR() || createActiveXHR();
+ } :
+ // For all other browsers, use the standard XMLHttpRequest object
+ createStandardXHR;
+
+// Determine support properties
+(function( xhr ) {
+ jQuery.extend( jQuery.support, {
+ ajax: !!xhr,
+ cors: !!xhr && ( "withCredentials" in xhr )
+ });
+})( jQuery.ajaxSettings.xhr() );
+
+// Create transport if the browser can provide an xhr
+if ( jQuery.support.ajax ) {
+
+ jQuery.ajaxTransport(function( s ) {
+ // Cross domain only allowed if supported through XMLHttpRequest
+ if ( !s.crossDomain || jQuery.support.cors ) {
+
+ var callback;
+
+ return {
+ send: function( headers, complete ) {
+
+ // Get a new xhr
+ var xhr = s.xhr(),
+ handle,
+ i;
+
+ // Open the socket
+ // Passing null username, generates a login popup on Opera (#2865)
+ if ( s.username ) {
+ xhr.open( s.type, s.url, s.async, s.username, s.password );
+ } else {
+ xhr.open( s.type, s.url, s.async );
+ }
+
+ // Apply custom fields if provided
+ if ( s.xhrFields ) {
+ for ( i in s.xhrFields ) {
+ xhr[ i ] = s.xhrFields[ i ];
+ }
+ }
+
+ // Override mime type if needed
+ if ( s.mimeType && xhr.overrideMimeType ) {
+ xhr.overrideMimeType( s.mimeType );
+ }
+
+ // X-Requested-With header
+ // For cross-domain requests, seeing as conditions for a preflight are
+ // akin to a jigsaw puzzle, we simply never set it to be sure.
+ // (it can always be set on a per-request basis or even using ajaxSetup)
+ // For same-domain requests, won't change header if already provided.
+ if ( !s.crossDomain && !headers["X-Requested-With"] ) {
+ headers[ "X-Requested-With" ] = "XMLHttpRequest";
+ }
+
+ // Need an extra try/catch for cross domain requests in Firefox 3
+ try {
+ for ( i in headers ) {
+ xhr.setRequestHeader( i, headers[ i ] );
+ }
+ } catch( _ ) {}
+
+ // Do send the request
+ // This may raise an exception which is actually
+ // handled in jQuery.ajax (so no try/catch here)
+ xhr.send( ( s.hasContent && s.data ) || null );
+
+ // Listener
+ callback = function( _, isAbort ) {
+
+ var status,
+ statusText,
+ responseHeaders,
+ responses,
+ xml;
+
+ // Firefox throws exceptions when accessing properties
+ // of an xhr when a network error occured
+ // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
+ try {
+
+ // Was never called and is aborted or complete
+ if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+ // Only called once
+ callback = undefined;
+
+ // Do not keep as active anymore
+ if ( handle ) {
+ xhr.onreadystatechange = jQuery.noop;
+ if ( xhrOnUnloadAbort ) {
+ delete xhrCallbacks[ handle ];
+ }
+ }
+
+ // If it's an abort
+ if ( isAbort ) {
+ // Abort it manually if needed
+ if ( xhr.readyState !== 4 ) {
+ xhr.abort();
+ }
+ } else {
+ status = xhr.status;
+ responseHeaders = xhr.getAllResponseHeaders();
+ responses = {};
+ xml = xhr.responseXML;
+
+ // Construct response list
+ if ( xml && xml.documentElement /* #4958 */ ) {
+ responses.xml = xml;
+ }
+
+ // When requesting binary data, IE6-9 will throw an exception
+ // on any attempt to access responseText (#11426)
+ try {
+ responses.text = xhr.responseText;
+ } catch( _ ) {
+ }
+
+ // Firefox throws an exception when accessing
+ // statusText for faulty cross-domain requests
+ try {
+ statusText = xhr.statusText;
+ } catch( e ) {
+ // We normalize with Webkit giving an empty statusText
+ statusText = "";
+ }
+
+ // Filter status for non standard behaviors
+
+ // If the request is local and we have data: assume a success
+ // (success with no data won't get notified, that's the best we
+ // can do given current implementations)
+ if ( !status && s.isLocal && !s.crossDomain ) {
+ status = responses.text ? 200 : 404;
+ // IE - #1450: sometimes returns 1223 when it should be 204
+ } else if ( status === 1223 ) {
+ status = 204;
+ }
+ }
+ }
+ } catch( firefoxAccessException ) {
+ if ( !isAbort ) {
+ complete( -1, firefoxAccessException );
+ }
+ }
+
+ // Call complete if needed
+ if ( responses ) {
+ complete( status, statusText, responses, responseHeaders );
+ }
+ };
+
+ // if we're in sync mode or it's in cache
+ // and has been retrieved directly (IE6 & IE7)
+ // we need to manually fire the callback
+ if ( !s.async || xhr.readyState === 4 ) {
+ callback();
+ } else {
+ handle = ++xhrId;
+ if ( xhrOnUnloadAbort ) {
+ // Create the active xhrs callbacks list if needed
+ // and attach the unload handler
+ if ( !xhrCallbacks ) {
+ xhrCallbacks = {};
+ jQuery( window ).unload( xhrOnUnloadAbort );
+ }
+ // Add to list of active xhrs callbacks
+ xhrCallbacks[ handle ] = callback;
+ }
+ xhr.onreadystatechange = callback;
+ }
+ },
+
+ abort: function() {
+ if ( callback ) {
+ callback(0,1);
+ }
+ }
+ };
+ }
+ });
+}
+
+
+
+
+var elemdisplay = {},
+ iframe, iframeDoc,
+ rfxtypes = /^(?:toggle|show|hide)$/,
+ rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
+ timerId,
+ fxAttrs = [
+ // height animations
+ [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
+ // width animations
+ [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
+ // opacity animations
+ [ "opacity" ]
+ ],
+ fxNow;
+
+jQuery.fn.extend({
+ show: function( speed, easing, callback ) {
+ var elem, display;
+
+ if ( speed || speed === 0 ) {
+ return this.animate( genFx("show", 3), speed, easing, callback );
+
+ } else {
+ for ( var i = 0, j = this.length; i < j; i++ ) {
+ elem = this[ i ];
+
+ if ( elem.style ) {
+ display = elem.style.display;
+
+ // Reset the inline display of this element to learn if it is
+ // being hidden by cascaded rules or not
+ if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
+ display = elem.style.display = "";
+ }
+
+ // Set elements which have been overridden with display: none
+ // in a stylesheet to whatever the default browser style is
+ // for such an element
+ if ( (display === "" && jQuery.css(elem, "display") === "none") ||
+ !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
+ jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
+ }
+ }
+ }
+
+ // Set the display of most of the elements in a second loop
+ // to avoid the constant reflow
+ for ( i = 0; i < j; i++ ) {
+ elem = this[ i ];
+
+ if ( elem.style ) {
+ display = elem.style.display;
+
+ if ( display === "" || display === "none" ) {
+ elem.style.display = jQuery._data( elem, "olddisplay" ) || "";
+ }
+ }
+ }
+
+ return this;
+ }
+ },
+
+ hide: function( speed, easing, callback ) {
+ if ( speed || speed === 0 ) {
+ return this.animate( genFx("hide", 3), speed, easing, callback);
+
+ } else {
+ var elem, display,
+ i = 0,
+ j = this.length;
+
+ for ( ; i < j; i++ ) {
+ elem = this[i];
+ if ( elem.style ) {
+ display = jQuery.css( elem, "display" );
+
+ if ( display !== "none" && !jQuery._data( elem, "olddisplay" ) ) {
+ jQuery._data( elem, "olddisplay", display );
+ }
+ }
+ }
+
+ // Set the display of the elements in a second loop
+ // to avoid the constant reflow
+ for ( i = 0; i < j; i++ ) {
+ if ( this[i].style ) {
+ this[i].style.display = "none";
+ }
+ }
+
+ return this;
+ }
+ },
+
+ // Save the old toggle function
+ _toggle: jQuery.fn.toggle,
+
+ toggle: function( fn, fn2, callback ) {
+ var bool = typeof fn === "boolean";
+
+ if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
+ this._toggle.apply( this, arguments );
+
+ } else if ( fn == null || bool ) {
+ this.each(function() {
+ var state = bool ? fn : jQuery(this).is(":hidden");
+ jQuery(this)[ state ? "show" : "hide" ]();
+ });
+
+ } else {
+ this.animate(genFx("toggle", 3), fn, fn2, callback);
+ }
+
+ return this;
+ },
+
+ fadeTo: function( speed, to, easing, callback ) {
+ return this.filter(":hidden").css("opacity", 0).show().end()
+ .animate({opacity: to}, speed, easing, callback);
+ },
+
+ animate: function( prop, speed, easing, callback ) {
+ var optall = jQuery.speed( speed, easing, callback );
+
+ if ( jQuery.isEmptyObject( prop ) ) {
+ return this.each( optall.complete, [ false ] );
+ }
+
+ // Do not change referenced properties as per-property easing will be lost
+ prop = jQuery.extend( {}, prop );
+
+ function doAnimation() {
+ // XXX 'this' does not always have a nodeName when running the
+ // test suite
+
+ if ( optall.queue === false ) {
+ jQuery._mark( this );
+ }
+
+ var opt = jQuery.extend( {}, optall ),
+ isElement = this.nodeType === 1,
+ hidden = isElement && jQuery(this).is(":hidden"),
+ name, val, p, e, hooks, replace,
+ parts, start, end, unit,
+ method;
+
+ // will store per property easing and be used to determine when an animation is complete
+ opt.animatedProperties = {};
+
+ // first pass over propertys to expand / normalize
+ for ( p in prop ) {
+ name = jQuery.camelCase( p );
+ if ( p !== name ) {
+ prop[ name ] = prop[ p ];
+ delete prop[ p ];
+ }
+
+ if ( ( hooks = jQuery.cssHooks[ name ] ) && "expand" in hooks ) {
+ replace = hooks.expand( prop[ name ] );
+ delete prop[ name ];
+
+ // not quite $.extend, this wont overwrite keys already present.
+ // also - reusing 'p' from above because we have the correct "name"
+ for ( p in replace ) {
+ if ( ! ( p in prop ) ) {
+ prop[ p ] = replace[ p ];
+ }
+ }
+ }
+ }
+
+ for ( name in prop ) {
+ val = prop[ name ];
+ // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
+ if ( jQuery.isArray( val ) ) {
+ opt.animatedProperties[ name ] = val[ 1 ];
+ val = prop[ name ] = val[ 0 ];
+ } else {
+ opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing';
+ }
+
+ if ( val === "hide" && hidden || val === "show" && !hidden ) {
+ return opt.complete.call( this );
+ }
+
+ if ( isElement && ( name === "height" || name === "width" ) ) {
+ // Make sure that nothing sneaks out
+ // Record all 3 overflow attributes because IE does not
+ // change the overflow attribute when overflowX and
+ // overflowY are set to the same value
+ opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
+
+ // Set display property to inline-block for height/width
+ // animations on inline elements that are having width/height animated
+ if ( jQuery.css( this, "display" ) === "inline" &&
+ jQuery.css( this, "float" ) === "none" ) {
+
+ // inline-level elements accept inline-block;
+ // block-level elements need to be inline with layout
+ if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) {
+ this.style.display = "inline-block";
+
+ } else {
+ this.style.zoom = 1;
+ }
+ }
+ }
+ }
+
+ if ( opt.overflow != null ) {
+ this.style.overflow = "hidden";
+ }
+
+ for ( p in prop ) {
+ e = new jQuery.fx( this, opt, p );
+ val = prop[ p ];
+
+ if ( rfxtypes.test( val ) ) {
+
+ // Tracks whether to show or hide based on private
+ // data attached to the element
+ method = jQuery._data( this, "toggle" + p ) || ( val === "toggle" ? hidden ? "show" : "hide" : 0 );
+ if ( method ) {
+ jQuery._data( this, "toggle" + p, method === "show" ? "hide" : "show" );
+ e[ method ]();
+ } else {
+ e[ val ]();
+ }
+
+ } else {
+ parts = rfxnum.exec( val );
+ start = e.cur();
+
+ if ( parts ) {
+ end = parseFloat( parts[2] );
+ unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );
+
+ // We need to compute starting value
+ if ( unit !== "px" ) {
+ jQuery.style( this, p, (end || 1) + unit);
+ start = ( (end || 1) / e.cur() ) * start;
+ jQuery.style( this, p, start + unit);
+ }
+
+ // If a +=/-= token was provided, we're doing a relative animation
+ if ( parts[1] ) {
+ end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start;
+ }
+
+ e.custom( start, end, unit );
+
+ } else {
+ e.custom( start, val, "" );
+ }
+ }
+ }
+
+ // For JS strict compliance
+ return true;
+ }
+
+ return optall.queue === false ?
+ this.each( doAnimation ) :
+ this.queue( optall.queue, doAnimation );
+ },
+
+ stop: function( type, clearQueue, gotoEnd ) {
+ if ( typeof type !== "string" ) {
+ gotoEnd = clearQueue;
+ clearQueue = type;
+ type = undefined;
+ }
+ if ( clearQueue && type !== false ) {
+ this.queue( type || "fx", [] );
+ }
+
+ return this.each(function() {
+ var index,
+ hadTimers = false,
+ timers = jQuery.timers,
+ data = jQuery._data( this );
+
+ // clear marker counters if we know they won't be
+ if ( !gotoEnd ) {
+ jQuery._unmark( true, this );
+ }
+
+ function stopQueue( elem, data, index ) {
+ var hooks = data[ index ];
+ jQuery.removeData( elem, index, true );
+ hooks.stop( gotoEnd );
+ }
+
+ if ( type == null ) {
+ for ( index in data ) {
+ if ( data[ index ] && data[ index ].stop && index.indexOf(".run") === index.length - 4 ) {
+ stopQueue( this, data, index );
+ }
+ }
+ } else if ( data[ index = type + ".run" ] && data[ index ].stop ){
+ stopQueue( this, data, index );
+ }
+
+ for ( index = timers.length; index--; ) {
+ if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
+ if ( gotoEnd ) {
+
+ // force the next step to be the last
+ timers[ index ]( true );
+ } else {
+ timers[ index ].saveState();
+ }
+ hadTimers = true;
+ timers.splice( index, 1 );
+ }
+ }
+
+ // start the next in the queue if the last step wasn't forced
+ // timers currently will call their complete callbacks, which will dequeue
+ // but only if they were gotoEnd
+ if ( !( gotoEnd && hadTimers ) ) {
+ jQuery.dequeue( this, type );
+ }
+ });
+ }
+
+});
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+ setTimeout( clearFxNow, 0 );
+ return ( fxNow = jQuery.now() );
+}
+
+function clearFxNow() {
+ fxNow = undefined;
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, num ) {
+ var obj = {};
+
+ jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice( 0, num )), function() {
+ obj[ this ] = type;
+ });
+
+ return obj;
+}
+
+// Generate shortcuts for custom animations
+jQuery.each({
+ slideDown: genFx( "show", 1 ),
+ slideUp: genFx( "hide", 1 ),
+ slideToggle: genFx( "toggle", 1 ),
+ fadeIn: { opacity: "show" },
+ fadeOut: { opacity: "hide" },
+ fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
+ return this.animate( props, speed, easing, callback );
+ };
+});
+
+jQuery.extend({
+ speed: function( speed, easing, fn ) {
+ var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+ complete: fn || !fn && easing ||
+ jQuery.isFunction( speed ) && speed,
+ duration: speed,
+ easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+ };
+
+ opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+ opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
+
+ // normalize opt.queue - true/undefined/null -> "fx"
+ if ( opt.queue == null || opt.queue === true ) {
+ opt.queue = "fx";
+ }
+
+ // Queueing
+ opt.old = opt.complete;
+
+ opt.complete = function( noUnmark ) {
+ if ( jQuery.isFunction( opt.old ) ) {
+ opt.old.call( this );
+ }
+
+ if ( opt.queue ) {
+ jQuery.dequeue( this, opt.queue );
+ } else if ( noUnmark !== false ) {
+ jQuery._unmark( this );
+ }
+ };
+
+ return opt;
+ },
+
+ easing: {
+ linear: function( p ) {
+ return p;
+ },
+ swing: function( p ) {
+ return ( -Math.cos( p*Math.PI ) / 2 ) + 0.5;
+ }
+ },
+
+ timers: [],
+
+ fx: function( elem, options, prop ) {
+ this.options = options;
+ this.elem = elem;
+ this.prop = prop;
+
+ options.orig = options.orig || {};
+ }
+
+});
+
+jQuery.fx.prototype = {
+ // Simple function for setting a style value
+ update: function() {
+ if ( this.options.step ) {
+ this.options.step.call( this.elem, this.now, this );
+ }
+
+ ( jQuery.fx.step[ this.prop ] || jQuery.fx.step._default )( this );
+ },
+
+ // Get the current size
+ cur: function() {
+ if ( this.elem[ this.prop ] != null && (!this.elem.style || this.elem.style[ this.prop ] == null) ) {
+ return this.elem[ this.prop ];
+ }
+
+ var parsed,
+ r = jQuery.css( this.elem, this.prop );
+ // Empty strings, null, undefined and "auto" are converted to 0,
+ // complex values such as "rotate(1rad)" are returned as is,
+ // simple values such as "10px" are parsed to Float.
+ return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
+ },
+
+ // Start an animation from one number to another
+ custom: function( from, to, unit ) {
+ var self = this,
+ fx = jQuery.fx;
+
+ this.startTime = fxNow || createFxNow();
+ this.end = to;
+ this.now = this.start = from;
+ this.pos = this.state = 0;
+ this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
+
+ function t( gotoEnd ) {
+ return self.step( gotoEnd );
+ }
+
+ t.queue = this.options.queue;
+ t.elem = this.elem;
+ t.saveState = function() {
+ if ( jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) {
+ if ( self.options.hide ) {
+ jQuery._data( self.elem, "fxshow" + self.prop, self.start );
+ } else if ( self.options.show ) {
+ jQuery._data( self.elem, "fxshow" + self.prop, self.end );
+ }
+ }
+ };
+
+ if ( t() && jQuery.timers.push(t) && !timerId ) {
+ timerId = setInterval( fx.tick, fx.interval );
+ }
+ },
+
+ // Simple 'show' function
+ show: function() {
+ var dataShow = jQuery._data( this.elem, "fxshow" + this.prop );
+
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[ this.prop ] = dataShow || jQuery.style( this.elem, this.prop );
+ this.options.show = true;
+
+ // Begin the animation
+ // Make sure that we start at a small width/height to avoid any flash of content
+ if ( dataShow !== undefined ) {
+ // This show is picking up where a previous hide or show left off
+ this.custom( this.cur(), dataShow );
+ } else {
+ this.custom( this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur() );
+ }
+
+ // Start by showing the element
+ jQuery( this.elem ).show();
+ },
+
+ // Simple 'hide' function
+ hide: function() {
+ // Remember where we started, so that we can go back to it later
+ this.options.orig[ this.prop ] = jQuery._data( this.elem, "fxshow" + this.prop ) || jQuery.style( this.elem, this.prop );
+ this.options.hide = true;
+
+ // Begin the animation
+ this.custom( this.cur(), 0 );
+ },
+
+ // Each step of an animation
+ step: function( gotoEnd ) {
+ var p, n, complete,
+ t = fxNow || createFxNow(),
+ done = true,
+ elem = this.elem,
+ options = this.options;
+
+ if ( gotoEnd || t >= options.duration + this.startTime ) {
+ this.now = this.end;
+ this.pos = this.state = 1;
+ this.update();
+
+ options.animatedProperties[ this.prop ] = true;
+
+ for ( p in options.animatedProperties ) {
+ if ( options.animatedProperties[ p ] !== true ) {
+ done = false;
+ }
+ }
+
+ if ( done ) {
+ // Reset the overflow
+ if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
+
+ jQuery.each( [ "", "X", "Y" ], function( index, value ) {
+ elem.style[ "overflow" + value ] = options.overflow[ index ];
+ });
+ }
+
+ // Hide the element if the "hide" operation was done
+ if ( options.hide ) {
+ jQuery( elem ).hide();
+ }
+
+ // Reset the properties, if the item has been hidden or shown
+ if ( options.hide || options.show ) {
+ for ( p in options.animatedProperties ) {
+ jQuery.style( elem, p, options.orig[ p ] );
+ jQuery.removeData( elem, "fxshow" + p, true );
+ // Toggle data is no longer needed
+ jQuery.removeData( elem, "toggle" + p, true );
+ }
+ }
+
+ // Execute the complete function
+ // in the event that the complete function throws an exception
+ // we must ensure it won't be called twice. #5684
+
+ complete = options.complete;
+ if ( complete ) {
+
+ options.complete = false;
+ complete.call( elem );
+ }
+ }
+
+ return false;
+
+ } else {
+ // classical easing cannot be used with an Infinity duration
+ if ( options.duration == Infinity ) {
+ this.now = t;
+ } else {
+ n = t - this.startTime;
+ this.state = n / options.duration;
+
+ // Perform the easing function, defaults to swing
+ this.pos = jQuery.easing[ options.animatedProperties[this.prop] ]( this.state, n, 0, 1, options.duration );
+ this.now = this.start + ( (this.end - this.start) * this.pos );
+ }
+ // Perform the next step of the animation
+ this.update();
+ }
+
+ return true;
+ }
+};
+
+jQuery.extend( jQuery.fx, {
+ tick: function() {
+ var timer,
+ timers = jQuery.timers,
+ i = 0;
+
+ for ( ; i < timers.length; i++ ) {
+ timer = timers[ i ];
+ // Checks the timer has not already been removed
+ if ( !timer() && timers[ i ] === timer ) {
+ timers.splice( i--, 1 );
+ }
+ }
+
+ if ( !timers.length ) {
+ jQuery.fx.stop();
+ }
+ },
+
+ interval: 13,
+
+ stop: function() {
+ clearInterval( timerId );
+ timerId = null;
+ },
+
+ speeds: {
+ slow: 600,
+ fast: 200,
+ // Default speed
+ _default: 400
+ },
+
+ step: {
+ opacity: function( fx ) {
+ jQuery.style( fx.elem, "opacity", fx.now );
+ },
+
+ _default: function( fx ) {
+ if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
+ fx.elem.style[ fx.prop ] = fx.now + fx.unit;
+ } else {
+ fx.elem[ fx.prop ] = fx.now;
+ }
+ }
+ }
+});
+
+// Ensure props that can't be negative don't go there on undershoot easing
+jQuery.each( fxAttrs.concat.apply( [], fxAttrs ), function( i, prop ) {
+ // exclude marginTop, marginLeft, marginBottom and marginRight from this list
+ if ( prop.indexOf( "margin" ) ) {
+ jQuery.fx.step[ prop ] = function( fx ) {
+ jQuery.style( fx.elem, prop, Math.max(0, fx.now) + fx.unit );
+ };
+ }
+});
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+ jQuery.expr.filters.animated = function( elem ) {
+ return jQuery.grep(jQuery.timers, function( fn ) {
+ return elem === fn.elem;
+ }).length;
+ };
+}
+
+// Try to restore the default display value of an element
+function defaultDisplay( nodeName ) {
+
+ if ( !elemdisplay[ nodeName ] ) {
+
+ var body = document.body,
+ elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
+ display = elem.css( "display" );
+ elem.remove();
+
+ // If the simple way fails,
+ // get element's real default display by attaching it to a temp iframe
+ if ( display === "none" || display === "" ) {
+ // No iframe to use yet, so create it
+ if ( !iframe ) {
+ iframe = document.createElement( "iframe" );
+ iframe.frameBorder = iframe.width = iframe.height = 0;
+ }
+
+ body.appendChild( iframe );
+
+ // Create a cacheable copy of the iframe document on first call.
+ // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
+ // document to it; WebKit & Firefox won't allow reusing the iframe document.
+ if ( !iframeDoc || !iframe.createElement ) {
+ iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
+ iframeDoc.write( ( jQuery.support.boxModel ? "<!doctype html>" : "" ) + "<html><body>" );
+ iframeDoc.close();
+ }
+
+ elem = iframeDoc.createElement( nodeName );
+
+ iframeDoc.body.appendChild( elem );
+
+ display = jQuery.css( elem, "display" );
+ body.removeChild( iframe );
+ }
+
+ // Store the correct default display
+ elemdisplay[ nodeName ] = display;
+ }
+
+ return elemdisplay[ nodeName ];
+}
+
+
+
+
+var getOffset,
+ rtable = /^t(?:able|d|h)$/i,
+ rroot = /^(?:body|html)$/i;
+
+if ( "getBoundingClientRect" in document.documentElement ) {
+ getOffset = function( elem, doc, docElem, box ) {
+ try {
+ box = elem.getBoundingClientRect();
+ } catch(e) {}
+
+ // Make sure we're not dealing with a disconnected DOM node
+ if ( !box || !jQuery.contains( docElem, elem ) ) {
+ return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
+ }
+
+ var body = doc.body,
+ win = getWindow( doc ),
+ clientTop = docElem.clientTop || body.clientTop || 0,
+ clientLeft = docElem.clientLeft || body.clientLeft || 0,
+ scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop,
+ scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
+ top = box.top + scrollTop - clientTop,
+ left = box.left + scrollLeft - clientLeft;
+
+ return { top: top, left: left };
+ };
+
+} else {
+ getOffset = function( elem, doc, docElem ) {
+ var computedStyle,
+ offsetParent = elem.offsetParent,
+ prevOffsetParent = elem,
+ body = doc.body,
+ defaultView = doc.defaultView,
+ prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
+ top = elem.offsetTop,
+ left = elem.offsetLeft;
+
+ while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
+ if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
+ break;
+ }
+
+ computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
+ top -= elem.scrollTop;
+ left -= elem.scrollLeft;
+
+ if ( elem === offsetParent ) {
+ top += elem.offsetTop;
+ left += elem.offsetLeft;
+
+ if ( jQuery.support.doesNotAddBorder && !(jQuery.support.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
+ top += parseFloat( computedStyle.borderTopWidth ) || 0;
+ left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+ }
+
+ prevOffsetParent = offsetParent;
+ offsetParent = elem.offsetParent;
+ }
+
+ if ( jQuery.support.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
+ top += parseFloat( computedStyle.borderTopWidth ) || 0;
+ left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+ }
+
+ prevComputedStyle = computedStyle;
+ }
+
+ if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
+ top += body.offsetTop;
+ left += body.offsetLeft;
+ }
+
+ if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
+ top += Math.max( docElem.scrollTop, body.scrollTop );
+ left += Math.max( docElem.scrollLeft, body.scrollLeft );
+ }
+
+ return { top: top, left: left };
+ };
+}
+
+jQuery.fn.offset = function( options ) {
+ if ( arguments.length ) {
+ return options === undefined ?
+ this :
+ this.each(function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ });
+ }
+
+ var elem = this[0],
+ doc = elem && elem.ownerDocument;
+
+ if ( !doc ) {
+ return null;
+ }
+
+ if ( elem === doc.body ) {
+ return jQuery.offset.bodyOffset( elem );
+ }
+
+ return getOffset( elem, doc, doc.documentElement );
+};
+
+jQuery.offset = {
+
+ bodyOffset: function( body ) {
+ var top = body.offsetTop,
+ left = body.offsetLeft;
+
+ if ( jQuery.support.doesNotIncludeMarginInBodyOffset ) {
+ top += parseFloat( jQuery.css(body, "marginTop") ) || 0;
+ left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
+ }
+
+ return { top: top, left: left };
+ },
+
+ setOffset: function( elem, options, i ) {
+ var position = jQuery.css( elem, "position" );
+
+ // set position first, in-case top/left are set even on static elem
+ if ( position === "static" ) {
+ elem.style.position = "relative";
+ }
+
+ var curElem = jQuery( elem ),
+ curOffset = curElem.offset(),
+ curCSSTop = jQuery.css( elem, "top" ),
+ curCSSLeft = jQuery.css( elem, "left" ),
+ calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
+ props = {}, curPosition = {}, curTop, curLeft;
+
+ // need to be able to calculate position if either top or left is auto and position is either absolute or fixed
+ if ( calculatePosition ) {
+ curPosition = curElem.position();
+ curTop = curPosition.top;
+ curLeft = curPosition.left;
+ } else {
+ curTop = parseFloat( curCSSTop ) || 0;
+ curLeft = parseFloat( curCSSLeft ) || 0;
+ }
+
+ if ( jQuery.isFunction( options ) ) {
+ options = options.call( elem, i, curOffset );
+ }
+
+ if ( options.top != null ) {
+ props.top = ( options.top - curOffset.top ) + curTop;
+ }
+ if ( options.left != null ) {
+ props.left = ( options.left - curOffset.left ) + curLeft;
+ }
+
+ if ( "using" in options ) {
+ options.using.call( elem, props );
+ } else {
+ curElem.css( props );
+ }
+ }
+};
+
+
+jQuery.fn.extend({
+
+ position: function() {
+ if ( !this[0] ) {
+ return null;
+ }
+
+ var elem = this[0],
+
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent(),
+
+ // Get correct offsets
+ offset = this.offset(),
+ parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
+
+ // Subtract element margins
+ // note: when an element has margin: auto the offsetLeft and marginLeft
+ // are the same in Safari causing offset.left to incorrectly be 0
+ offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
+ offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
+
+ // Add offsetParent borders
+ parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
+ parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
+
+ // Subtract the two offsets
+ return {
+ top: offset.top - parentOffset.top,
+ left: offset.left - parentOffset.left
+ };
+ },
+
+ offsetParent: function() {
+ return this.map(function() {
+ var offsetParent = this.offsetParent || document.body;
+ while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
+ offsetParent = offsetParent.offsetParent;
+ }
+ return offsetParent;
+ });
+ }
+});
+
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
+ var top = /Y/.test( prop );
+
+ jQuery.fn[ method ] = function( val ) {
+ return jQuery.access( this, function( elem, method, val ) {
+ var win = getWindow( elem );
+
+ if ( val === undefined ) {
+ return win ? (prop in win) ? win[ prop ] :
+ jQuery.support.boxModel && win.document.documentElement[ method ] ||
+ win.document.body[ method ] :
+ elem[ method ];
+ }
+
+ if ( win ) {
+ win.scrollTo(
+ !top ? val : jQuery( win ).scrollLeft(),
+ top ? val : jQuery( win ).scrollTop()
+ );
+
+ } else {
+ elem[ method ] = val;
+ }
+ }, method, val, arguments.length, null );
+ };
+});
+
+function getWindow( elem ) {
+ return jQuery.isWindow( elem ) ?
+ elem :
+ elem.nodeType === 9 ?
+ elem.defaultView || elem.parentWindow :
+ false;
+}
+
+
+
+
+// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+ var clientProp = "client" + name,
+ scrollProp = "scroll" + name,
+ offsetProp = "offset" + name;
+
+ // innerHeight and innerWidth
+ jQuery.fn[ "inner" + name ] = function() {
+ var elem = this[0];
+ return elem ?
+ elem.style ?
+ parseFloat( jQuery.css( elem, type, "padding" ) ) :
+ this[ type ]() :
+ null;
+ };
+
+ // outerHeight and outerWidth
+ jQuery.fn[ "outer" + name ] = function( margin ) {
+ var elem = this[0];
+ return elem ?
+ elem.style ?
+ parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
+ this[ type ]() :
+ null;
+ };
+
+ jQuery.fn[ type ] = function( value ) {
+ return jQuery.access( this, function( elem, type, value ) {
+ var doc, docElemProp, orig, ret;
+
+ if ( jQuery.isWindow( elem ) ) {
+ // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
+ doc = elem.document;
+ docElemProp = doc.documentElement[ clientProp ];
+ return jQuery.support.boxModel && docElemProp ||
+ doc.body && doc.body[ clientProp ] || docElemProp;
+ }
+
+ // Get document width or height
+ if ( elem.nodeType === 9 ) {
+ // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
+ doc = elem.documentElement;
+
+ // when a window > document, IE6 reports a offset[Width/Height] > client[Width/Height]
+ // so we can't use max, as it'll choose the incorrect offset[Width/Height]
+ // instead we use the correct client[Width/Height]
+ // support:IE6
+ if ( doc[ clientProp ] >= doc[ scrollProp ] ) {
+ return doc[ clientProp ];
+ }
+
+ return Math.max(
+ elem.body[ scrollProp ], doc[ scrollProp ],
+ elem.body[ offsetProp ], doc[ offsetProp ]
+ );
+ }
+
+ // Get width or height on the element
+ if ( value === undefined ) {
+ orig = jQuery.css( elem, type );
+ ret = parseFloat( orig );
+ return jQuery.isNumeric( ret ) ? ret : orig;
+ }
+
+ // Set the width or height on the element
+ jQuery( elem ).css( type, value );
+ }, type, value, arguments.length, null );
+ };
+});
+
+
+
+
+// Expose jQuery to the global object
+window.jQuery = window.$ = jQuery;
+
+// Expose jQuery as an AMD module, but only for AMD loaders that
+// understand the issues with loading multiple versions of jQuery
+// in a page that all might call define(). The loader will indicate
+// they have special allowances for multiple jQuery versions by
+// specifying define.amd.jQuery = true. Register as a named module,
+// since jQuery can be concatenated with other files that may use define,
+// but not use a proper concatenation script that understands anonymous
+// AMD modules. A named AMD is safest and most robust way to register.
+// Lowercase jquery is used because AMD module names are derived from
+// file names, and jQuery is normally delivered in a lowercase file name.
+// Do this after creating the global so that if an AMD module wants to call
+// noConflict to hide this version of jQuery, it will work.
+if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
+ define( "jquery", [], function () { return jQuery; } );
+}
+
+
+
+})( window );
diff --git a/SDL_Core/src/components/HMI/lib/jquery-1.7.2.min.js b/SDL_Core/src/components/HMI/lib/jquery-1.7.2.min.js
index 16ad06c5a..1775c9c03 100755..100644
--- a/SDL_Core/src/components/HMI/lib/jquery-1.7.2.min.js
+++ b/SDL_Core/src/components/HMI/lib/jquery-1.7.2.min.js
@@ -1,4 +1,4 @@
-/*! jQuery v1.7.2 jquery.com | jquery.org/license */
-(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"?c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr><td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(
-a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c);return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")[\\s/>]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f
+/*! jQuery v1.7.2 jquery.com | jquery.org/license */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"?c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr><td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(
+a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c);return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")[\\s/>]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f
.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(f.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(g){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,function(a,b){b.src?f.ajax({type:"GET",global:!1,url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1></$2>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]==="<table>"&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i<u;i++)bn(l[i]);else bn(l);l.nodeType?j.push(l):j=f.merge(j,l)}if(d){g=function(a){return!a.type||be.test(a.type)};for(k=0;j[k];k++){h=j[k];if(e&&f.nodeName(h,"script")&&(!h.type||be.test(h.type)))e.push(h.parentNode?h.parentNode.removeChild(h):h);else{if(h.nodeType===1){var v=f.grep(h.getElementsByTagName("script"),g);j.splice.apply(j,[k+1,0].concat(v))}d.appendChild(h)}}}return j},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bp=/alpha\([^)]*\)/i,bq=/opacity=([^)]*)/,br=/([A-Z]|^ms)/g,bs=/^[\-+]?(?:\d*\.)?\d+$/i,bt=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,bu=/^([\-+])=([\-+.\de]+)/,bv=/^margin/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Top","Right","Bottom","Left"],by,bz,bA;f.fn.css=function(a,c){return f.access(this,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)},a,c,arguments.length>1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),(e===""&&f.css(d,"display")==="none"||!f.contains(d.ownerDocument.documentElement,d))&&f._data(d,"olddisplay",cu(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ct("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(ct("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o,p,q;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]);if((k=f.cssHooks[g])&&"expand"in k){l=k.expand(a[g]),delete a[g];for(i in l)i in a||(a[i]=l[i])}}for(g in a){h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cu(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cm.test(h)?(q=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),q?(f._data(this,"toggle"+i,q==="show"?"hide":"show"),j[q]()):j[h]()):(m=cn.exec(h),n=j.cur(),m?(o=parseFloat(m[2]),p=m[3]||(f.cssNumber[i]?"":"px"),p!=="px"&&(f.style(this,i,(o||1)+p),n=(o||1)/j.cur()*n,f.style(this,i,n+p)),m[1]&&(o=(m[1]==="-="?-1:1)*o+n),j.custom(n,o,p)):j.custom(n,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:ct("show",1),slideUp:ct("hide",1),slideToggle:ct("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a){return a},swing:function(a){return-Math.cos(a*Math.PI)/2+.5}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cq||cr(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){f._data(e.elem,"fxshow"+e.prop)===b&&(e.options.hide?f._data(e.elem,"fxshow"+e.prop,e.start):e.options.show&&f._data(e.elem,"fxshow"+e.prop,e.end))},h()&&f.timers.push(h)&&!co&&(co=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cq||cr(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(cp.concat.apply([],cp),function(a,b){b.indexOf("margin")&&(f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)})}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cv,cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?cv=function(a,b,c,d){try{d=a.getBoundingClientRect()}catch(e){}if(!d||!f.contains(c,a))return d?{top:d.top,left:d.left}:{top:0,left:0};var g=b.body,h=cy(b),i=c.clientTop||g.clientTop||0,j=c.clientLeft||g.clientLeft||0,k=h.pageYOffset||f.support.boxModel&&c.scrollTop||g.scrollTop,l=h.pageXOffset||f.support.boxModel&&c.scrollLeft||g.scrollLeft,m=d.top+k-i,n=d.left+l-j;return{top:m,left:n}}:cv=function(a,b,c){var d,e=a.offsetParent,g=a,h=b.body,i=b.defaultView,j=i?i.getComputedStyle(a,null):a.currentStyle,k=a.offsetTop,l=a.offsetLeft;while((a=a.parentNode)&&a!==h&&a!==c){if(f.support.fixedPosition&&j.position==="fixed")break;d=i?i.getComputedStyle(a,null):a.currentStyle,k-=a.scrollTop,l-=a.scrollLeft,a===e&&(k+=a.offsetTop,l+=a.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(a.nodeName))&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),g=e,e=a.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),j=d}if(j.position==="relative"||j.position==="static")k+=h.offsetTop,l+=h.offsetLeft;f.support.fixedPosition&&j.position==="fixed"&&(k+=Math.max(c.scrollTop,h.scrollTop),l+=Math.max(c.scrollLeft,h.scrollLeft));return{top:k,left:l}},f.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){f.offset.setOffset(this,a,b)});var c=this[0],d=c&&c.ownerDocument;if(!d)return null;if(c===d.body)return f.offset.bodyOffset(c);return cv(c,d,d.documentElement)},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/locale/eng.js b/SDL_Core/src/components/HMI/locale/eng.js
index 37397dde4..75c7e200d 100755..100644
--- a/SDL_Core/src/components/HMI/locale/eng.js
+++ b/SDL_Core/src/components/HMI/locale/eng.js
@@ -1,1119 +1,62 @@
-SDL.eng = {
-
- view_warning: 'WARNING!',
- view_warning_paragraph1: 'This application is intended to be used as a demonstrative aid only, while the vehicle is parked. Don&apos;t use it while driving.',
- view_warning_paragraph2: 'Use extreme caution when using any device that takes your attention off the road. Ford recommends against the use of any hand-held device while driving and that you comply with all applicable laws. Your primary responsibility is the safe operation of the vehicle.',
-
- view_phone_popUp_callEnded: 'Call Ended',
-
- view_phone_phone: 'Phone',
- view_phone_quickdial: 'Quick Dial',
- view_phone_phonebook: 'Phonebook',
- view_phone_history: 'History',
- view_phone_messaging: 'Messaging',
- view_phone_settings: 'Settings',
- view_navigation_view: 'View',
- view_navigation_dest: 'Dest',
-
- view_navigation_freeway: 'No freeway exit POI information available Dearborn, MI',
-
- view_navigation_menu_title: 'Navigation Menu',
- view_navigation_menu_navigationSettings: 'Navigation Settings',
- view_navigation_menu_guidanceMute: 'Guidance Mute',
- view_navigation_menu_viewEdit: 'View / Edit',
- view_navigation_menu_siriusTravelL: 'SIRIUS Travel Link',
- view_navigation_menu_cancelRoute: 'Cancel Route',
- view_navigation_menu_close: 'Close ',
-
- view_navigation_view2_editTurnList: 'Edit Turn List',
-
- view_wigetPhone_label: 'Do Not Disturb',
- view_wigetPhone_phone: 'Paul’s Phone',
-
- view_statusPhone_phone: 'Phone',
- view_statusPhone_privacyMode: 'Privacy mode',
- view_statusPhone_microphoneMute: 'Microphone mute',
-
- view_statusNavigation_navigation: 'Navigation',
-
- view_statusClimate_climate: 'Climate',
-
- view_mediaStatus_entertainment: 'Entertainment',
- view_mediaStatus_bluetooth: 'Bluetooth',
- view_mediaStatus_avIn: 'AV In',
-
- view_phone_0: '0',
- view_phone_1: '1',
- view_phone_2: '2',
- view_phone_3: '3',
- view_phone_4: '4',
- view_phone_5: '5',
- view_phone_6: '6',
- view_phone_7: '7',
- view_phone_8: '8',
- view_phone_9: '9',
-
- view_phone_abc: 'ABC',
- view_phone_def: 'DEF',
- view_phone_ghi: 'GHI',
- view_phone_jkl: 'JKL',
- view_phone_mno: 'MNO',
- view_phone_pqrs: 'PQRS',
- view_phone_tuv: 'TUV',
- view_phone_wxyz: 'WXYZ',
-
- view_phone_plus: '+',
- view_phone_mtpl: '*',
- view_phone_dies: '#',
-
- view_phone_dial: 'Dial',
- view_phone_end: 'End',
- view_phone_privacy: 'Privacy',
- view_phone_hold: 'Hold',
- view_phone_mute: 'Mute',
- view_phone_join: 'Join',
-
- view_phone_quickDial_item1: 'Voice Mail',
- view_phone_quickDial_item2: 'Micky Marmaremmy',
- view_phone_quickDial_item3: 'Billy McTuff',
- view_phone_quickDial_item4: 'Hope Doferson',
- view_phone_quickDial_item5: 'Larry Pitterputz',
- view_phone_quickDial_item6: 'James Murly',
- view_phone_quickDial_item7: 'Wally Schultz',
- view_phone_quickDial_item8: 'Suzie McCozo',
- view_phone_quickDial_item9: 'Empty',
- view_phone_quickDial_item10: 'Empty',
-
- view_phone_phoneBook_aF: 'A - F',
- view_phone_phoneBook_gL: 'G - L',
- view_phone_phoneBook_mS: 'M - S',
- view_phone_phoneBook_tZ: 'T - Z',
- view_phone_phoneBook_other: 'Other',
- view_phone_phoneBook_item1: 'Micky Marmaremmy',
- view_phone_phoneBook_item2: 'Billy McTuff',
- view_phone_phoneBook_item3: 'Hope Doferson',
- view_phone_phoneBook_item4: 'Larry Pitterputz',
- view_phone_phoneBook_item5: 'Suzie McCozo',
- view_phone_phoneBook_item6: 'Suzie McCozo',
- view_phone_phoneBook_item7: 'Micky Marmaremmy',
- view_phone_phoneBook_item8: 'Billy McTuff',
- view_phone_phoneBook_item9: 'Hope Doferson',
-
- view_phone_history_all: 'All',
- view_phone_history_outgoing: 'Outgoing',
- view_phone_history_incoming: 'Incoming',
- view_phone_history_missed: 'Missed',
- view_phone_history_item1: 'Micky Marmaremmy',
- view_phone_history_item1_rightText: '1:28 pm',
- view_phone_history_item2: 'Billy McTuff',
- view_phone_history_item2_rightText: '12:03 pm',
- view_phone_history_item3: 'Hope Doferson',
- view_phone_history_item3_rightText: '11:35 am',
- view_phone_history_item4: 'Larry Pitterputz',
- view_phone_history_item4_rightText: '05/25/2011',
- view_phone_history_item5: 'Suzie McCozo',
- view_phone_history_item5_rightText: '05/26/2011',
- view_phone_history_item6: 'Suzie McCozo',
- view_phone_history_item6_rightText: '05/26/2011',
- view_phone_history_item7: 'Larry Pitterputz',
- view_phone_history_item7_rightText: '05/25/2011',
- view_phone_history_item8: 'Micky Marmaremmy',
- view_phone_history_item8_rightText: '1:28 pm',
- view_phone_history_item9: 'Billy McTuff',
- view_phone_history_item9_rightText: '12:03 pm',
- view_phone_history_item10: 'Hope Doferson',
- view_phone_history_item10_rightText: '11:35 am',
- view_phone_history_dial: 'Dial',
- view_phone_history_saveDial: 'Save Dial',
-
- view_phone_messaging_send: 'Send',
- view_phone_messaging_downloadNew: 'Download New',
- view_phone_messaging_deleteAll: 'Delete All',
- view_phone_messaging_item1: 'Suzie McCozo',
- view_phone_messaging_item2: 'Micky Marmaremmy',
- view_phone_messaging_item3: 'Billy McTuff',
- view_phone_messaging_delete: 'Delete',
-
- view_phone_settings_doNotDisturb: 'Do Not Disturb',
- view_phone_settings_bluetoothDevices: 'Bluetooth Devices',
- view_phone_settings_bluetooth: 'Bluetooth',
- view_phone_settings_911Assist: '911 Assist',
- view_phone_settings_phoneRinger: 'Phone Ringer',
- view_phone_settings_textMessageN: 'Text Message Notification',
- view_phone_settings_internetDataC: 'Internet Data Connection',
- view_phone_settings_managePhonebook: 'Manage Phonebook',
- view_phone_settings_roamingWarning: 'Roaming Warning',
- view_phone_settings_onOff:
- [
- 'On',
- 'Off'
- ],
-
- view_phone_phoneSettings_bluetoothDevices_title: 'Bluetooth Devices - Phone',
- view_phone_phoneSettings_bluetoothDevices_PaulPhone: "Paul's Phone",
- view_phone_phoneSettings_bluetoothDevices_TonyaCell: "Tonya's Cell",
- view_phone_phoneSettings_bluetoothDevices_addDevice: 'Add Device',
- view_phone_phoneSettings_bluetoothDevices_connect: 'Connect',
- view_phone_phoneSettings_bluetoothDevices_disconnect: 'Disconnect',
- view_phone_phoneSettings_bluetoothDevices_info: 'Info',
- view_phone_phoneSettings_bluetoothDevices_favorite: 'Favorite',
- view_phone_phoneSettings_bluetoothDevices_delete: 'Delete',
-
- view_phone_phoneSettings_phoneRinger_title: 'Select Phone Ringer',
- view_phone_phoneSettings_phoneRinger_ringer1: 'Ringer 1',
- view_phone_phoneSettings_phoneRinger_ringer2: 'Ringer 2',
- view_phone_phoneSettings_phoneRinger_ringer3: 'Ringer 3',
- view_phone_phoneSettings_phoneRinger_beep: 'Beep',
- view_phone_phoneSettings_phoneRinger_connectedPhone: 'Connected Phone Ringtone',
-
- view_phone_phoneSettings_textMessageNotification_title: 'Text Message Notification',
- view_phone_phoneSettings_textMessageNotification_alert1: 'Alert 1',
- view_phone_phoneSettings_textMessageNotification_alert2: 'Alert 2',
- view_phone_phoneSettings_textMessageNotification_alert3: 'Alert 3',
- view_phone_phoneSettings_textMessageNotification_textToSpeech: 'Text to Speech',
- view_phone_phoneSettings_textMessageNotification_silent: 'Silent',
-
- view_phone_phoneSettings_internetDataConnection_title: 'Internet Connection',
- view_phone_phoneSettings_internetDataConnection_PaulPhone: "Paul's Phone",
- view_phone_phoneSettings_internetDataConncetion_connectionProfile: 'Connection Profile',
- view_phone_phoneSettings_internetDataConncetion_DUNSettings: 'DUN Settings',
- view_phone_phoneSettings_internetDataConncetion_connectionToggle:
- [
- 'DUN',
- 'PAN',
- 'OFF'
- ],
- view_phone_phoneSettings_internetDataConncetion_queryOnConnect: 'Query on Connect',
- view_phone_phoneSettings_internetDataConncetion_queryToggle:
- [
- 'Always',
- 'Never',
- 'Roaming'
- ],
- view_phone_phoneSettings_internetDataConncetion_dataUsage: 'For setting up your phone as an Internet connection to SYNC, please see www.SyncMyRide.com details. Ford Motor Company is not respondible for added changes associated with your Data Plan usage.',
-
- view_phone_phoneSettings_managePhoneBook_title: 'Manage Phonebook',
- view_phone_phoneSettings_managePhoneBook_auto: 'Auto Phonebook Download',
- view_phone_phoneSettings_managePhoneBook_display: 'Display Photos from Phonebook',
- view_phone_phoneSettings_managePhoneBook_reDownload: 'Re-download Phonebook',
- view_phone_phoneSettings_managePhoneBook_download: 'Download',
- view_phone_phoneSettings_managePhoneBook_addContacts: 'Add Contacts from Phone',
- view_phone_phoneSettings_managePhoneBook_add: 'Add',
- view_phone_phoneSettings_managePhoneBook_deletePhonebook: 'Delete Phonebook',
- view_phone_phoneSettings_managePhoneBook_delete: 'Delete',
- view_phone_phoneSettings_managePhoneBook_onOf:
- [
- 'On',
- 'Off'
- ],
-
- view_navigation_distance: '0.25mi',
- view_navigation_position: 'Central Parkway',
- view_navigation_street: 'Main St',
-
- view_navigation_view: 'View',
-
- view_navigation_destination: 'Destination',
- view_navigation_destination_myHome: 'My Home',
- view_navigation_destination_favorites: 'Favorites',
- view_navigation_destination_previousDestinations: 'Previous Destinations',
- view_navigation_destination_POI: 'Point of Interests (POI)',
- view_navigation_destination_emergency: 'Emergency',
- view_navigation_destination_streetAddress: 'Street Address',
- view_navigation_destination_intersection: 'Intersection',
- view_navigation_destination_cityCenter: 'City Center',
- view_navigation_destination_map: 'Map',
- view_navigation_destination_editRouteCancelRoute: 'Edit Route',
- view_navigation_destination_CancelRoute: 'Cancel Route',
- view_navigation_destination_previousStartingsPoint: 'Previous Startings Point',
- view_navigation_destination_latitudeLongitude: 'Latitude / Longitude',
- view_navigation_destination_freewayEntranceExit: 'Freeway Entrance/ Exit',
-
- view_navi_destination_MyHome_set_a_dest: 'Set as Dest',
- view_navi_destination_MyHome_dest: 'Dest',
- view_navi_destination_MyHome_set_as_way: 'Set as Waypoint',
- view_navi_destination_MyHome_menu: 'Menu',
- view_navi_destination_MyHome_my_home: 'My Home',
- view_navi_destination_MyHome_rd: '720 Ford Rd Canton, MI 48187',
- view_navi_destination_MyHome_dial: 'Dial',
- view_navi_destination_MyHome_delete: 'Delete',
- view_navi_destination_MyHome_edit: 'Edit',
-
- view_navi_destination_favorites_header: 'Favorites',
- view_navi_destination_favorites_myhome: 'My Home',
- view_navi_destination_favorites_az: 'A-Z',
- view_navi_destination_favorites_date: 'Date',
- view_navi_destination_favorites_edit: 'Edit',
- view_navi_destination_favorites_delete: 'Delete',
- view_navi_destination_favorites_add: 'Add',
- view_navi_destination_favorites_sort: 'Sort By',
-
- view_navi_destination_previous_header: 'Previous Destination',
- view_navi_destination_previous_milerd: '20500 W 13 Mile Rd, Beverly Hills',
- view_navi_destination_previous_southfield: '18210 Evergreen Rd, Southfield',
- view_navi_destination_previous_delete: 'Delete',
- view_navi_destination_previous_date: 'Date',
- view_navi_destination_previous_city: 'City',
-
- view_navi_destination_poi_header: 'Point Of Interest (POI)',
- view_navi_destination_previous_sa: 'Search Area',
- view_navi_destination_previous_sbn: 'Search by Name',
- view_navi_destination_previous_sbp: 'Search by Phone number',
- view_navi_destination_previous_cat: 'Categories',
- view_navi_destination_previous_fav: 'Favorites',
- view_navi_destination_previous_all: 'All',
- view_navi_destination_previous_recent: 'Recent',
- view_navi_destination_previous_fs: 'Fuel Station',
- view_navi_destination_previous_fin: 'FINANCIAL',
- view_navi_destination_previous_ar: 'All Restaurants',
- view_navi_destination_previous_acc: 'Accommodations',
- view_navi_destination_previous_p: 'Parking',
- view_navi_destination_previous_edit: 'Edit',
-
- view_navigation_destination_previousStartingsPoints: 'Previous Starting Points',
- view_navigation_destination_previousStartingsPoint_Date: 'Date',
- view_navigation_destination_previousStartingsPoint_City: 'City',
- view_navigation_destination_previousStartingsPoint_SortBy: 'Sort by',
-
- view_navi_destination_streetAddress_number: 'Number',
- view_navi_destination_streetAddress_city: 'City',
- view_navi_destination_streetAddress_street: 'Street',
- view_navi_destination_streetAddress_de: 'DE',
- view_navi_destination_streetAddress_sp: 'State/Prov',
- view_navi_destination_streetAddress_mi: 'MI',
- view_navi_destination_streetAddress_abc: 'ABC',
- view_navi_destination_streetAddress_space: 'Space',
- view_navi_destination_streetAddress_ch: '!@#',
- view_navi_destination_streetAddress_q: 'Q',
- view_navi_destination_streetAddress_w: 'W',
- view_navi_destination_streetAddress_e: 'E',
- view_navi_destination_streetAddress_r: 'R',
- view_navi_destination_streetAddress_t: 'T',
- view_navi_destination_streetAddress_y: 'Y',
- view_navi_destination_streetAddress_u: 'U',
- view_navi_destination_streetAddress_i: 'I',
- view_navi_destination_streetAddress_o: 'O',
- view_navi_destination_streetAddress_p: 'P',
- view_navi_destination_streetAddress_a: 'A',
- view_navi_destination_streetAddress_s: 'S',
- view_navi_destination_streetAddress_d: 'D',
- view_navi_destination_streetAddress_f: 'F',
- view_navi_destination_streetAddress_g: 'G',
- view_navi_destination_streetAddress_h: 'H',
- view_navi_destination_streetAddress_j: 'J',
- view_navi_destination_streetAddress_k: 'K',
- view_navi_destination_streetAddress_l: 'L',
- view_navi_destination_streetAddress_z: 'Z',
- view_navi_destination_streetAddress_x: 'X',
- view_navi_destination_streetAddress_c: 'C',
- view_navi_destination_streetAddress_v: 'V',
- view_navi_destination_streetAddress_b: 'B',
- view_navi_destination_streetAddress_n: 'N',
- view_navi_destination_streetAddress_m: 'M',
- view_navi_destination_streetAddress_street1: 'Street 1',
- view_navi_destination_streetAddress_street2: 'Street 2',
-
- view_navi_destination_map_set_as_dest: 'Set as Dest',
- view_navi_destination_map_saw: 'Set as Waypoint',
- view_navi_destination_map_saf: 'Save to Favorites',
- view_navi_destination_map_poi: 'POI Icons Off',
- view_navi_destination_map_tf: 'Traffic List',
- view_navi_destination_map_menu: 'Menu',
- view_navi_destination_map_dest: 'Dest',
- view_navi_destination_map_chestnut: 'Chestnut St.',
-
- view_navi_destination_LatitudeLongitude_dd: 'DD',
- view_navi_destination_LatitudeLongitude_latitude: 'Latitude',
- view_navi_destination_LatitudeLongitude_longitude: 'Longitude',
- view_navi_destination_LatitudeLongitude_go: 'GO',
- view_navi_destination_LatitudeLongitude_e: 'E',
- view_navi_destination_LatitudeLongitude_n: 'N',
- view_navi_destination_LatitudeLongitude_s: 'S',
- view_navi_destination_LatitudeLongitude_w: 'W',
-
- view_navi_destination_Freeway_header: 'Freeway Entrance/Exit',
- view_navi_destination_Freeway_freeway: 'Freeway',
- view_navi_destination_Freeway_state: 'State/Prov',
- view_navi_destination_Freeway_mi: 'MI',
-
- view_navi_destination_emergency_header: 'Emergency',
- view_navi_destination_emergency_sa: 'Search Area',
- view_navi_destination_emergency_nearby: 'Nearby',
- view_navi_destination_emergency_hospital: 'Hospital',
- view_navi_destination_emergency_police: 'Police',
-
- view_media_popUp: 'Preset saved',
-
- view_media_directTune_enter: 'Enter',
-
- view_media_am: 'AM',
- view_media_am1: 'AM 1',
- view_media_amAst: 'AM AST',
-
- view_media_fm: 'FM',
- view_media_fm1: 'FM 1',
- view_media_fm2: 'FM 2',
- view_media_fmAst: 'FM AST',
-
- view_media_sirius: 'SIRIUS',
- view_media_cd: 'CD',
- view_media_usbHard: 'USB Hard',
- view_media_usbSD: 'USB SD D',
- view_media_bt: 'Paul\'s...',
- view_media_avi: 'AV In',
- view_media_hdradio: 'HD Radio',
- view_media_repeat: 'Repeat',
- view_media_shuffle: 'Shuffle',
- view_media_replay: 'Replay',
- view_media_similarMusic: 'Similar Music',
- view_media_scan: 'Scan',
- view_media_moreInfo: 'More Info',
- view_media_options: 'Options',
- view_media_presets: 'Presets',
- view_media_directTune: 'Direct Tune',
- view_media_browse: 'Browse',
-
- view_media_moreInfo_title: 'Song Information',
- view_media_moreInfo_whatIsPlaying: 'What\'s Playing',
-
- view_media_cd_playList_track1: {
- title: 'The Electric Broncos',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track2: {
- title: 'Track 2',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track3: {
- title: 'Track 3',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track4: {
- title: 'Track 4',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track5: {
- title: 'Track 5',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track6: {
- title: 'Track 6',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track7: {
- title: 'Track 7',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track8: {
- title: 'Track 8',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track9: {
- title: 'Track 9',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track10: {
- title: 'Track 10',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
-
- view_media_usb_playList_track1: {
- title: 'Track 1',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
- view_media_usb_playList_track2: {
- title: 'Track 2',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
- view_media_usb_playList_track3: {
- title: 'Track 3',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
- view_media_usb_playList_track4: {
- title: 'Track 4',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
- view_media_usb_playList_track5: {
- title: 'Track 5',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
- view_media_usb_playList_track6: {
- title: 'Track 6',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
-
- view_media_sd_playList_track1: {
- title: 'The Electric Broncos',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_sd_playList_track2: {
- title: 'Track 2',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_sd_playList_track3: {
- title: 'Track 3',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_sd_playList_track4: {
- title: 'Track 4',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_sd_playList_track5: {
- title: 'Track 5',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_sd_playList_track6: {
- title: 'Track 6',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
-
- view_media_amFm_options_title: 'Options',
- view_media_amFm_options_soundSettings: 'Sound Settings',
- view_media_amFm_options_setPTY: 'Set PTY for Seek / Scan',
- view_media_amFm_options_noProgram: 'No program type',
- view_media_amFm_options_RDS: 'RDS Text Display',
- view_media_amFm_options_onOff:
- [
- 'On',
- 'Off'
- ],
- view_media_amFm_options_autoset: 'Autoset Presets (AST)',
- view_media_amFm_options_refresh: 'Refresh / Store',
- view_media_amFm_options_TAG: 'TAG Button',
-
- view_media_cd_options_title: 'CD-MP3/WMA Options',
- view_media_cd_options_soundSettings: 'Sound Settings',
- view_media_cd_options_compression: 'Compression',
- view_media_cd_options_onOff:
- [
- 'On',
- 'Off'
- ],
-
- view_media_usb_options_title: 'Options',
- view_media_usb_options_soundSettings: 'Sound Settings',
- view_media_usb_options_mediaPlayerSettings: 'Media Player Settings',
- view_media_usb_options_compression_deviceInformation: 'Device Information',
- view_media_usb_options_compression_updateIndex: 'Update Media Index',
- view_media_usb_options_compression_start: 'Start',
-
- view_media_bt_options_title: 'Options',
- view_media_bt_options_soundSettings: 'Sound Settings',
- view_media_bt_options_mediaPlayerSettings: 'Media Player Settings',
- view_media_bt_options_deviceInformation: 'Device Information',
-
- view_media_sirius_options_title: 'SIRIUS Options',
- view_media_sirius_options_soundSettings: 'Sound Settings',
- view_media_sirius_options_setCategory: 'Set Category for Seek/Scan',
- view_media_sirius_options_allChannels: 'All Channels',
- view_media_sirius_options_parentalLockout: 'Parental Lockout',
- view_media_sirius_options_changePIN: 'Change PIN',
- view_media_sirius_options_alerts: 'Artist / Title / Team Alerts',
- view_media_sirius_options_OnOff:
- [
- 'On',
- 'Off'
- ],
- view_media_sirius_options_serialNumber: 'Electronic Serial Number (ESN) 034424346821',
-
- view_media_cd_browse_CDTrack: 'CD Track list',
-
- view_media_usb_browse_browseAvailable: 'Browse Available Sources',
- view_media_usb_browse_siriusChannel: 'SIRIUS Channel Guide',
- view_media_usb_browse_cdTrack: 'CD Track List',
- view_media_usb_browse_usbHard: 'USB Hard Disk Drive',
- view_media_usb_browse_usbSD: 'USB SD Disk Drive',
-
- view_media_usb_browse_browse: 'Browse',
- view_media_usb_browse_allSources: 'All Sources',
-
- view_media_usb_browse_USBHardDisk: 'USB Hard Disk Drive DSK5',
- view_media_usb_browse_music: 'Music',
- view_media_usb_browse_exploreDevice: 'Explore device',
-
- view_media_sd_browse_title: 'USB SD Drive DSK4',
- view_media_sd_browse_music: 'Music',
- view_media_sd_browse_exploreDevice: 'Explore device',
-
- view_media_sirius_alert: 'Alert',
- view_media_sirius_browse_title: 'SIRIUS Channel Guide',
- view_media_sirius_browse_AllChanels: 'All Chanels',
- view_media_sirius_browse_158: '158',
- view_media_sirius_browse_pop: 'Pop',
- view_media_sirius_browse_13: '13',
- view_media_sirius_browse_rock: 'Rock',
- view_media_sirius_browse_24: '24',
- view_media_sirius_browse_hipHop: 'Hip-Hop / R&B',
- view_media_sirius_browse_6: '6',
- view_media_sirius_browse_dance: 'Dance / Electrinic',
- view_media_sirius_browse_3: '3',
- view_media_sirius_browse_classic: 'Classic',
- view_media_sirius_browse_235: '235',
- view_media_sirius_browse_retro: 'Retro',
- view_media_sirius_browse_43: '43',
- view_media_sirius_browse_trance: 'Trance',
- view_media_sirius_browse_56: '56',
- view_media_sirius_browse_jazz: 'Jazz',
- view_media_sirius_browse_201: '201',
- view_media_sirius_browse_disco: 'Disco',
- view_media_sirius_browse_17: '17',
-
- view_climate_myTemp: 'My Temp',
- view_climate_dual: 'Dual',
- view_climate_auto: 'Auto',
- view_climate_ac: 'A/C',
- view_climate_maxAc: 'Max A/C',
- view_climate_rear: 'Rear',
- view_climate_rearControl: 'Rear Control',
- view_climate_rearClimate: 'Rear Climate',
- view_climate_rearClimateOn: 'Rear Climate On',
- view_climate_off: 'OFF',
- view_climate_myTempStored: 'My Temp Stored',
-
- view_settings_timeNum: '3:00',
- view_settings_timeZone: 'Eastern Time',
-
- view_settings_am: 'AM',
- view_settings_pm: 'PM',
-
- view_settings_clock: 'Clock',
- view_settings_display: 'Display',
- view_settings_sound: 'Sound',
- view_settings_vehicle: 'Vehicle',
- view_settings_settings: 'Settings',
- view_settings_help: 'Help',
-
- view_settings_clock_clokDisplay: 'Clock Display',
- view_settings_clock_clokDisplay_time: 'Time',
- view_settings_clock_clokDisplay_date: 'Date',
- view_settings_clock_outsideAirTemperature: 'Outside Air Temperature',
- view_settings_clock_outsideAirTemperature_on: 'On',
- view_settings_clock_outsideAirTemperature_off: 'Off',
- view_settings_clock_clockFormat: 'Clock Format',
- view_settings_clock_clockFormat_12Hour: '12 hour',
- view_settings_clock_clockFormat_24Hour: '24 hour',
- view_settings_clock_GPSTimeSynchronization: 'GPS Time Synchronization',
- view_settings_clock_autoTimeZoneUpdate: 'Auto Time Zone Update',
- view_settings_clock_OnOFF:
- [
- 'On',
- 'Off'
- ],
- view_settings_clock_timeDate:
- [
- 'Time',
- 'Date'
- ],
- view_settings_clock_hours:
- [
- '12 hour',
- '24 hour'
- ],
-
- view_settings_clock_GPSTimeSynchronization_off: 'Off',
-
- view_settings_sound_bass: 'Bass',
- view_settings_sound_midrage: 'Midrange',
- view_settings_sound_treble: 'Treble',
- view_settings_sound_setBalance: 'Set Balance and Fade',
- view_settings_sound_playTHX: 'Play THX Deep Note\u2122 Demo',
- view_settings_sound_dsp: 'DSP',
- view_settings_sound_stereoSurround:
- [
- 'Stereo',
- 'Surround'
- ],
- view_settings_sound_speed: 'Speed Compensated Volume',
- view_settings_sound_offtoSeven:
- [
- 'Off',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7'
- ],
-
- view_settings_display_brightness: 'Brightness',
- view_settings_display_on: 'On',
- view_settings_display_off: 'Off',
- view_settings_display_auto: 'Auto',
- view_settings_display_mode: 'Mode',
- view_settings_display_auto_dim: 'Auto DIM',
- view_settings_display_day: 'DAY',
- view_settings_display_night: 'NIGHT',
- view_settings_display_edit_wallpaper: 'Edit Wallpaper',
- view_settings_display_auto_offset: 'Auto Dim Manual Offset',
-
- view_settings_sound_bass: 'Bass',
- view_settings_sound_midrange: 'Midrange',
- view_settings_sound_treble: 'Treble',
- view_settings_sound_balance: 'Set Balance and Fade',
- view_settings_sound_dsp: 'DSP',
- view_settings_sound_stereo: 'Stereo',
- view_settings_sound_surround: 'Surround',
-
- view_settings_Sound_BalanceFader_header: 'Sound Balance / Fade',
- view_settings_Sound_BalanceFader_fade: 'Fade',
- view_settings_Sound_BalanceFader_balance: 'Balance',
- view_settings_Sound_BalanceFader_f: 'F',
- view_settings_Sound_BalanceFader_b: 'B',
- view_settings_Sound_BalanceFader_l: 'L',
- view_settings_Sound_BalanceFader_r: 'R',
-
- view_settings_vehicle_ambientLighting: 'Ambient Lighting',
- view_settings_vehicle_VehicleHealthReport: 'Vehicle Health Report',
- view_settings_vehicle_DoorKeypadCode: 'Edit Door Keypad Code',
- view_settings_vehicle_RearViewCamera: 'Rear Camera Settings',
- view_settings_vehicle_EnableValetMode: 'Enable Valet Mode',
- view_settings_vehicle_SeatComfort: 'Seat Comfort',
-
- view_settings_vehicle_EnableValetMode_enterPIN_enter4Digit: 'Enter 4-Digit PIN:',
- view_settings_vehicle_EnableValetMode_enterPIN_0: '0',
- view_settings_vehicle_EnableValetMode_enterPIN_1: '1',
- view_settings_vehicle_EnableValetMode_enterPIN_2: '2',
- view_settings_vehicle_EnableValetMode_enterPIN_3: '3',
- view_settings_vehicle_EnableValetMode_enterPIN_4: '4',
- view_settings_vehicle_EnableValetMode_enterPIN_5: '5',
- view_settings_vehicle_EnableValetMode_enterPIN_6: '6',
- view_settings_vehicle_EnableValetMode_enterPIN_7: '7',
- view_settings_vehicle_EnableValetMode_enterPIN_8: '8',
- view_settings_vehicle_EnableValetMode_enterPIN_9: '9',
- view_settings_vehicle_EnableValetMode_enterPIN_enter: 'Enter',
-
- view_settings_vehicle_VehicleHealthReport_ar: 'Automatic Reminders',
- view_settings_vehicle_VehicleHealthReport_mi: 'Mileage Interval (Miles)',
- view_settings_vehicle_VehicleHealthReport_on: 'On',
- view_settings_vehicle_VehicleHealthReport_off: 'Off',
- view_settings_vehicle_VehicleHealthReport_rvhrn: 'Run Vehicle Health Report Now',
- view_settings_vehicle_VehicleHealthReport_to_active: 'To activate, log onto www.SyncMyRide.com',
-
- view_settings_vehicle_DoorKeypadCode_factory: 'In order to edit the Keypad Code, first enter the Factory Code.',
- view_settings_vehicle_DoorKeypadCode_5digit: 'Enter 5-digit Factory Code:',
- view_settings_vehicle_DoorKeypadCode_enter: 'Enter',
-
- view_settings_vehicle_RearViewCamera_rcd: 'Rear Camera Delay',
- view_settings_vehicle_RearViewCamera_visualPark: 'Visual Park Aid Alert',
- view_settings_vehicle_RearViewCamera_guidelines: 'Guidelines',
- view_settings_vehicle_RearViewCamera_preview: 'Preview',
- view_settings_vehicle_RearViewCamera_on: 'On',
- view_settings_vehicle_RearViewCamera_off: 'Off',
-
- view_settings_vehicle_enableValetMode_enablingValetMode: 'Enabling Valet Mode will lock the system using a 4-digit PIN selected by the user.',
- view_settings_vehicle_enableValetMode_samePin: 'The same PIN must be entered again to disable Valet Mode and unlock the system.',
- view_settings_vehicle_enableValetMode_continue: 'Continue enabling Valet Mode?',
- view_settings_vehicle_enableValetMode_yes: 'Yes',
- view_settings_vehicle_enableValetMode_no: 'No',
-
- view_settings_vehicle_MultiContourSeat_Adjust_header: 'MCS',
-
- view_settings_settings_system: 'System',
- view_settings_settings_voiceControl: 'Voice Control',
- view_settings_settings_mediaPlayer: 'Media Player',
- view_settings_settings_navigation: 'Navigation',
- view_settings_settings_phone: 'Phone',
- view_settings_settings_wirelessInternet: 'Wireless & Internet',
-
- view_settings_settings_system_language: 'Language',
- view_settings_settings_system_language_engEspFr:
- [
- 'English',
- 'Español',
- 'Français'
- ],
- view_settings_settings_system_distance: 'Distance',
- view_settings_settings_system_distance_kmMi:
- [
- 'KM',
- 'MI'
- ],
- view_settings_settings_system_temperature: 'Temperature',
- view_settings_settings_system_temperature_frCel:
- [
- 'Fahrenheit',
- 'Celsius'
- ],
- view_settings_settings_system_systemPrompt: 'System Prompt Volume',
- view_settings_settings_system_touch: 'Touch Screen Button Beep',
- view_settings_settings_system_keyboardLayout: 'Keyboard Layout',
- view_settings_settings_system_installApplications: 'Install Applications',
- view_settings_settings_system_masterReset: 'Master Reset',
- view_settings_settings_system_onOff:
- [
- 'On',
- 'Off'
- ],
-
- view_settings_settings_system_keyboardLayout_ABC: 'ABC',
- view_settings_settings_system_keyboardLayout_QWERTY: 'QWERTY',
- view_settings_settings_system_keyboardLayout_ABCEurope: 'ABC + Europe',
- view_settings_settings_system_keyboardLayout_ABCFrench: 'ABC + French',
- view_settings_settings_system_keyboardLayout_ABCSpanish: 'ABC + Spanish',
- view_settings_settings_system_keyboardLayout_ABCPortuguese: 'ABC + Portuguese',
- view_settings_settings_system_keyboardLayout_ABCGerman: 'ABC + German',
- view_settings_settings_system_keyboardLayout_ABCItalian: 'ABC + Italian',
- view_settings_settings_system_keyboardLayout_ABCDutch: 'ABC + Dutch',
- view_settings_settings_system_keyboardLayout_ABCSwedish: 'ABC + Swedish',
- view_settings_settings_system_keyboardLayout_chinesePinYin: 'Chinese PinYin',
- view_settings_settings_system_keyboardLayout_chineseShouzimu: 'Chinese Shouzimu (PinYin Where not available )',
- view_settings_settings_system_keyboardLayout_russianCyrillic: '(Russian/Cyrillic)',
- view_settings_settings_system_keyboardLayout_arabic: '(Arabic)',
- view_settings_settings_system_keyboardLayout_greek: '(Greek)',
- view_settings_settings_system_keyboardLayout_polish: '(Polish)',
- view_settings_settings_system_keyboardLayout_turkish: '(Turkish)',
-
- view_settings_settings_system_installApplications_header: 'Install Applications/Updates',
- view_settings_settings_system_installApplications_BeginSoftware: 'Begin Software Installation',
- view_settings_settings_system_installApplications_ViewSoftware: 'View Software Licenses ',
-
- view_settings_settings_mediaPlayer_autoplay: 'Autoplay',
- view_settings_settings_mediaPlayer_bluetoothDevices: 'Bluetooth Devices',
- view_settings_settings_mediaPlayer_indexBluetooth: 'Index Bluetooth Audio Device',
- view_settings_settings_mediaPlayer_gracenote: 'Gracenote® Database Info',
- view_settings_settings_mediaPlayer_gracenoteMgmt: 'Gracenote® Mgmt',
- view_settings_settings_mediaPlayer_coverArtPriority: 'Cover Art Priority',
- view_settings_settings_mediaPlayer_coverArtPriorityTriger:
- [
- 'Media Player',
- 'Gracenote®'
- ],
-
- view_settings_settings_mediaPlayer_bluetoothDevices_title: 'Bluetooth App',
- view_settings_settings_mediaPlayer_bluetoothDevices_bluetoothDevices: 'Bluetooth Devices',
- view_settings_settings_mediaPlayer_bluetoothDevices_bluetooth: 'Bluetooth',
- view_settings_settings_mediaPlayer_bluetoothDevices_onOf:
- [
- 'On',
- 'Off'
- ],
- view_settings_settings_mediaPlayer_bluetoothDevices_InternetDataC: 'Internet Data Connections',
-
- view_settings_help_systemInformation_serialNumber: 'Serial Number: XMA41C7Q',
- view_settings_help_systemInformation_vehicleIdentification: 'Vehicle Identification Number (VIN):',
- view_settings_help_systemInformation_CCPU: 'CCPU S/W Version: 4.26.11346_PRODUCT',
- view_settings_help_systemInformation_navigationApplication: 'Navigation Application Version: 2.15.16',
- view_settings_help_systemInformation_mapDatabase: 'Map Database Version: B2',
- view_settings_help_systemInformation_siriusESN: 'Sirius ESN: 030891878010',
- view_settings_help_systemInformation_gracenote: 'Gracenote&reg; Database Information: 4255, Library 5.5.2.11',
-
- view_settings_settings_whereAmI: 'Where am I?',
- view_settings_settings_systemInformation: 'System Information',
- view_settings_settings_softwareLicenses: 'Software Licenses',
- view_settings_settings_drivingRestrictions: 'Driving Restrictions',
- view_settings_settings_911Assist: '911 Assist',
- view_settings_settings_voiceCommandList: 'Voice Command List',
- view_settings_settings_forHelp: 'For help contact SYNC Support 1-877-945-3648',
-
- view_settings_settings_VoiceControl_header: 'Voice Control',
- view_settings_settings_VoiceControl_im: 'Interaction Mode',
- view_settings_settings_VoiceControl_novice: 'Novice',
- view_settings_settings_VoiceControl_advance: 'Advanced',
- view_settings_settings_VoiceControl_confirmationPrompts: 'Confirmation Prompts',
- view_settings_settings_VoiceControl_mediaCandidateLists: 'Media Candidate Lists',
- view_settings_settings_VoiceControl_phoneCandidateLists: 'Phone Candidate Lists',
- view_settings_settings_VoiceControl_voiceControlVolume: 'Voice Control Volume',
- view_settings_settings_VoiceControl_on: 'On',
- view_settings_settings_VoiceControl_off: 'Off',
-
- view_settings_settings_WirelessInternet_header: 'Wireless Internet',
- view_settings_settings_WirelessInternet_wifi_settings: 'Wi-Fi Settings',
- view_settings_settings_WirelessInternet_usbmb: 'USB Mobile Broadband',
- view_settings_settings_WirelessInternet_bluetooth_settings: 'Bluetooth Settings',
- view_settings_settings_WirelessInternet_bluetooth_pcm: 'Prioritize Connection Methods',
- view_settings_settings_WirelessInternet_bluetooth_i: 'Internet',
- view_settings_settings_WirelessInternet_bluetooth_wifi: 'WiFi',
- view_settings_settings_WirelessInternet_bluetooth_wdp: 'Wireless Data Providers',
- view_settings_settings_WirelessInternet_bluetooth_cn: 'Cellular Networks',
-
- view_settings_settings_navigation_title: 'Navigation',
- view_settings_settings_navigation_mapPreferences: 'Map Preferences',
- view_settings_settings_navigation_routePreferences: 'Route Preferences',
- view_settings_settings_navigation_navigationPreferences: 'Navigation Preferences',
- view_settings_settings_navigation_trafficPreferences: 'Traffic Preferences',
- view_settings_settings_navigation_avoidAreas: 'Avoid Areas',
-
- view_settings_settings_navigation_mapPreferences_breadcrumbs: 'Breadcrumbs',
- view_settings_settings_navigation_mapPreferences_OnOFF:
- [
- 'ON',
- 'OFF'
- ],
- view_settings_settings_navigation_mapPreferences_turnList: 'Turn List Format',
- view_settings_settings_navigation_mapPreferences_breadcrumbs_TopBotttom:
- [
- 'Top to Bottom',
- 'Bottom to Top'
- ],
- view_settings_settings_navigation_mapPreferences_ParkingPOI: 'Parking POI Notification',
-
- view_settings_settings_navigation_routePreferences_preferred: 'Rreferred Route',
- view_settings_settings_navigation_routePreferences_SFE:
- [
- 'Shortest',
- 'Fastest',
- 'Ecological'
- ],
- view_settings_settings_navigation_routePreferences_avoidFreeways: 'Avoid Freeways',
- view_settings_settings_navigation_routePreferences_avoidTollroads: 'Avoid Tollroads',
- view_settings_settings_navigation_routePreferences_avoidFerriesCarTrains: 'Avoid Ferries / Car Trains',
- view_settings_settings_navigation_routePreferences_useHOVLanes: 'Use HOV Lanes',
- view_settings_settings_navigation_routePreferences_onOff:
- [
- 'ON',
- 'OFF'
- ],
-
- view_settings_settings_navigation_navigationPreferences_guidancePrompts: 'Guidance Prompts',
- view_settings_settings_navigation_navigationPreferences_voiceTone:
- [
- 'Voice & Tones',
- 'Tone Only'
- ],
- view_settings_settings_navigation_navigationPreferences_auto: 'Auto - Fill State/Province',
- view_settings_settings_navigation_navigationPreferences_onOff:
- [
- 'ON',
- 'OFF'
- ],
-
- view_settings_settings_navigation_trafficPreferences_avoidTrafficProblems: 'Avoid Traffic Problems',
- view_settings_settings_navigation_trafficPreferences_automaticManual:
- [
- 'Automatic',
- 'Manual'
- ],
- view_settings_settings_navigation_trafficPreferences_trafficAlertNotification: 'Traffic Alert Notification',
- view_settings_settings_navigation_trafficPreferences_onOff:
- [
- 'ON',
- 'OFF'
- ],
- view_settings_settings_navigation_trafficPreferences_accidentMapIcon: 'Accident Map Icon',
- view_settings_settings_navigation_trafficPreferences_trafficJamMapIcon: 'Traffic Jam Map icon',
- view_settings_settings_navigation_trafficPreferences_roadClosed: 'Road Closed',
- view_settings_settings_navigation_trafficPreferences_roadWorks: 'Road Works',
- view_settings_settings_navigation_trafficPreferences_incidentMapIcons: 'Incident Map Icons',
- view_settings_settings_navigation_trafficPreferences_difficultDrivingConditions: 'Difficult Driving Conditions',
- view_settings_settings_navigation_trafficPreferences_snowIce: 'Snow & Ice',
- view_settings_settings_navigation_trafficPreferences_smogAlerts: 'Smog Alerts',
- view_settings_settings_navigation_trafficPreferences_weatherWarning: 'Weather Warning',
- view_settings_settings_navigation_trafficPreferences_reducesVisibility: 'Reduces Visibility',
- view_settings_settings_navigation_trafficPreferences_turnOnYourRadio: 'Turn on Your Radio',
-
- view_settings_settings_navigation_avoidAreas_add: 'Add',
-
- view_settings_settings_WirelessWifiInternet_header: 'Wi-Fi Settings',
- view_settings_settings_WirelessWifiInternet_wifi_network: 'Wi-Fi Network (Client) Mode',
- view_settings_settings_WirelessWifiInternet_wifi_choose: 'Choose a Wireless Network',
- view_settings_settings_WirelessWifiInternet_wifi_gateway_mode: 'Gateway (Access Point) Mode',
- view_settings_settings_WirelessWifiInternet_wifi_gateway_settings: 'Gateway (Access Point) Settings',
- view_settings_settings_WirelessWifiInternet_wifi_gateway_list: 'Gateway (Access Point) Devices List',
- view_settings_settings_WirelessWifiInternet_wifi_search: 'Search for Wireless Networks',
- view_settings_settings_WirelessWifiInternet_wifi_on: 'On',
- view_settings_settings_WirelessWifiInternet_wifi_off: 'Off',
-
- view_settings_help_WhereAmI_header: 'Where Am I?',
- view_settings_help_WhereAmI_next_street: 'Next Street',
- view_settings_help_WhereAmI_villagerd: 'Village Rd',
- view_settings_help_WhereAmI_mi: '0.1 mi',
- view_settings_help_WhereAmI_current_street: 'Current Street',
- view_settings_help_WhereAmI_military_st: 'Military St',
- view_settings_help_WhereAmI_dearborn_dmi: 'Dearborn, MI',
- view_settings_help_WhereAmI_lat: 'Lat: 42.17.39N / Long: 83.14.08W',
- view_settings_help_WhereAmI_previous_street: 'Previous Street',
- view_settings_help_WhereAmI_west_rd: 'West Rd',
- view_settings_help_WhereAmI_west_ft: '400 ft',
-
- view_settings_help_softwareLicenses_titile: 'Software Licenses',
- view_settings_help_softwareLicenses_applicationName: 'Application Name',
- view_settings_help_softwareLicenses_expirationDate: 'Expiration Date',
- view_settings_help_softwareLicenses_remainingUses: 'Remaining Uses',
- view_settings_help_softwareLicenses_install: 'Install Updates',
- view_settings_help_softwareLicenses_navigation: 'Navigation North America',
- view_settings_help_softwareLicenses_none: 'None',
- view_settings_help_softwareLicenses_unlimited: 'Unlimited',
-
- view_settings_help_DrivingRestrictions_header: 'Driver Restrictions',
- view_settings_help_DrivingRestrictions_text: 'Due to driver distraction and safety concerns, certain features of SYNC are restricted from use while the vehicle is in motion.',
-
- view_settings_help_voiceCommandListView_header: 'List of Commands',
- view_settings_help_voiceCommandListView_audio: 'Audio',
- view_settings_help_voiceCommandListView_browse: 'Browse',
- view_settings_help_voiceCommandListView_climate: 'Climate',
- view_settings_help_voiceCommandListView_disc: 'Disc',
- view_settings_help_voiceCommandListView_globalCommands: 'Global Commands',
- view_settings_help_voiceCommandListView_media: 'Media',
- view_settings_help_voiceCommandListView_navigation: 'Navigation',
- view_settings_help_voiceCommandListView_otherCommands: 'Other Commands',
- view_settings_help_voiceCommandListView_phone: 'Phone',
- view_settings_help_voiceCommandListView_radio: 'Radio',
- view_settings_help_voiceCommandListView_sirius: 'Sirius',
- view_settings_help_voiceCommandListView_travelLink: 'Travel Link',
- view_settings_help_voiceCommandListView_voiceInteractions: 'Voice Interactions',
- view_settings_help_voiceCommandListView_voiceSettings: 'Voice Settings',
-
- view_info_leftmenu_services: 'Services',
- view_info_leftmenu_travelLink: 'Travel Link',
- view_info_leftmenu_alerts: 'Alerts',
- view_info_leftmenu_calendar: 'Calendar',
- view_info_leftmenu_apps: 'Apps',
-
- view_info_services_syncServices: 'SYNC Services',
- view_info_services_trafficDirectionsAndInformation: 'TRAFFIC, DIRECTIONS AND INFORMATION',
- view_info_services_getTheLatestTrafficRreport: 'Get the latest traffic report',
- view_info_services_findBusinessesAndDownloadSaved: 'Find Businesses and Download Saved ',
- view_info_services_Pts: 'Pts',
- view_info_services_hearPersonalizedInformationMore: 'Hear Personalized Information & More',
- view_info_services_connecttoServices: 'Connect to Services',
- view_info_services_toActivate: 'To activate, log onto www.SyncMyRide.com',
-
- view_info_travelLink_trafficOnRoute: 'Traffic on Route',
- view_info_travelLink_trafficNearby: 'Traffic Nearby',
- view_info_travelLink_fuelPrices: 'Fuel Prices',
- view_info_travelLink_movieListings: 'Movie Listings',
- view_info_travelLink_subscriptionInfo: 'Subscription Info',
- view_info_travelLink_weather: 'Weather',
- view_info_travelLink_sportsInfo: 'Sports Info',
- view_info_travelLink_skiConditions: 'Ski Conditions',
-
- view_info_alerts_sort: 'Sort By',
- view_info_alerts_dateIcon:
- [
- 'Date',
- 'Icon'
- ],
- view_info_alerts_911Assist: '911 Assist Set To OFF 2012',
- view_info_alerts_view: 'View',
- view_info_alerts_delete: 'Delete',
- view_info_alerts_deleteAll: 'Delete All',
-
- view_info_calendar_date: 'Jul, 2012',
- view_info_calendar_today: 'Go to Today',
- view_info_calendar_day1: 'SUN',
- view_info_calendar_day2: 'MON',
- view_info_calendar_day3: 'TUE',
- view_info_calendar_day4: 'WED',
- view_info_calendar_day5: 'THU',
- view_info_calendar_day6: 'FRI',
- view_info_calendar_day7: 'SAT',
-
- view_info_apps_911Assist: '911 Assist',
- view_info_apps_vehicle_VehicleHealthReport: 'Vehicle Health Report',
- view_info_apps_vehicle_InstallApplicationsUp: 'Install Applications/Up',
- view_info_apps_vehicle_FindNewApplications: 'Find New Apps',
- view_info_apps_vehicle_GetDeviceList: 'Change Devices',
- view_info_apps_911Assist_header: '911 Assist',
- view_info_apps_911Assist_incase: 'In Case of Emergency (ICE) Speed Dial',
- view_info_apps_911Assist_on: 'On',
- view_info_apps_911Assist_off: 'Off',
- view_info_apps_911Assist_edit: 'Edit',
- view_info_apps_911Assist_sarah: 'Sarah',
- view_info_apps_911Assist_john: 'John',
- view_info_apps_911Assist_reminder: '911 Assist Reminder',
- view_info_apps_911Assist_911: '911 Assist',
- view_info_apps_911Assist_911_connected: '911 Assist uses your connected mobile phone to dial 911 after a qualified crash event',
- view_info_apps_911Assist_vri: 'Vehicle Restart Instructions',
-
- view_faq_mftGuide: 'SDL Guide Welcome Orientation',
- view_faq_myFordTouch4: 'MyFord Touch 4 Corner Menu System',
- view_faq_customize: 'Customize Your MyFord Touch System',
- view_faq_useVoiceC: 'Use Voice Commands',
- view_faq_myFordTouchN: 'MyFord Touch Nav System',
- view_faq_pairYourP: 'Pair Your Phone and Make Hands-Free Calls',
- view_faq_multipleConnected: 'Multiple Connected Phones',
- view_faq_wifi: 'WiFi',
- view_faq_syncServices: 'SYNC Services',
- view_faq_wallpaper: 'Wallpaper',
- view_faq_forFurther: 'For further assistance about your in-vehicle MyFord Touch system, call 1-800-392-3673.',
- view_faq_selectOption: 'Select option 3 for an In-Vehicle Technology Team representative.'
-};
+SDL.eng = {
+
+ view_warning: 'WARNING!',
+ view_warning_paragraph1: 'This application is intended to be used as a demonstrative aid only, while the vehicle is parked. Don&apos;t use it while driving.',
+ view_warning_paragraph2: 'Use extreme caution when using any device that takes your attention off the road. Ford recommends against the use of any hand-held device while driving and that you comply with all applicable laws. Your primary responsibility is the safe operation of the vehicle.',
+
+ view_mediaStatus_entertainment: 'Entertainment',
+
+ view_info_alerts_sort: 'Sort By',
+
+ view_info_alerts_dateIcon: [
+ 'Date', 'Icon'
+ ],
+ view_info_alerts_911Assist: '911 Assist Set To OFF 2012',
+ view_info_alerts_view: 'View',
+ view_info_alerts_delete: 'Delete',
+ view_info_alerts_deleteAll: 'Delete All',
+ view_info_apps_911Assist: '911 Assist',
+ view_info_apps_vehicle_VehicleHealthReport: 'Vehicle Health Report',
+ view_info_apps_vehicle_InstallApplicationsUp: 'Install Applications/Up',
+ view_info_apps_vehicle_FindNewApplications: 'Find New Apps',
+ view_info_apps_vehicle_GetDeviceList: 'Change Devices',
+
+ view_info_calendar_date: 'Jul, 2012',
+ view_info_calendar_today: 'Go to Today',
+ view_info_calendar_day1: 'SUN',
+ view_info_calendar_day2: 'MON',
+ view_info_calendar_day3: 'TUE',
+ view_info_calendar_day4: 'WED',
+ view_info_calendar_day5: 'THU',
+ view_info_calendar_day6: 'FRI',
+ view_info_calendar_day7: 'SAT',
+
+ view_info_services_syncServices: 'SYNC Services',
+ view_info_services_trafficDirectionsAndInformation: 'TRAFFIC, DIRECTIONS AND INFORMATION',
+ view_info_services_getTheLatestTrafficRreport: 'Get the latest traffic report',
+ view_info_services_findBusinessesAndDownloadSaved: 'Find Businesses and Download Saved ',
+ view_info_services_hearPersonalizedInformationMore: 'Hear Personalized Information & More',
+ view_info_services_connecttoServices: 'Connect to Services',
+ view_info_services_toActivate: 'To activate, log onto www.SyncMyRide.com',
+
+ view_info_travelLink_trafficOnRoute: 'Traffic on Route',
+ view_info_travelLink_trafficNearby: 'Traffic Nearby',
+ view_info_travelLink_fuelPrices: 'Fuel Prices',
+ view_info_travelLink_movieListings: 'Movie Listings',
+ view_info_travelLink_subscriptionInfo: 'Subscription Info',
+ view_info_travelLink_weather: 'Weather',
+ view_info_travelLink_sportsInfo: 'Sports Info',
+ view_info_travelLink_skiConditions: 'Ski Conditions',
+
+ view_info_leftmenu_services: 'Services',
+ view_info_leftmenu_travelLink: 'Travel Link',
+ view_info_leftmenu_alerts: 'Alerts',
+ view_info_leftmenu_calendar: 'Calendar',
+ view_info_leftmenu_apps: 'Apps',
+
+ view_media_cd: 'CD',
+ view_phone_dial: 'Dial',
+ view_phone_end: 'End',
+ view_phone_phone: 'Phone',
+ view_phone_popUp_callEnded: 'Call Ended'
+}; \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/locale/fr.js b/SDL_Core/src/components/HMI/locale/fr.js
deleted file mode 100755
index 4bd39e3f9..000000000
--- a/SDL_Core/src/components/HMI/locale/fr.js
+++ /dev/null
@@ -1,1119 +0,0 @@
-SDL.fr = {
-
- view_warning: 'Avertissement!',
- view_warning_paragraph1: 'Cette application ne doit servir que d\'outil de d\émonstration, lorsque le véhicule est stationné. Ne l\'utilisez pas lorsque vous conduisez.',
- view_warning_paragraph2: 'Soyez très prudent lorsque vous utilisez un dispositif qui pourrait nuire à votre concentration. Ford vous recommande de ne pas utiliser d\'appareil portatif au volant et de vous conformer à toutes les lois applicables. Vous devez vous assurer de conduire votre véhicule de façon sécuritaire.',
-
- view_phone_popUp_callEnded: 'Appel terminé',
-
- view_phone_phone: 'Téléphone',
- view_phone_quickdial: 'Répert. tél.',
- view_phone_phonebook: 'Histor. appe',
- view_phone_history: 'Comp. rap.',
- view_phone_messaging: 'Messagerie',
- view_phone_settings: 'Réglages',
- view_navigation_view: 'View',
- view_navigation_dest: 'Dest',
-
- /* NO TRANSLATION */view_navigation_freeway: 'Aucune info disp. sur sortie autor. pour POI Dearborn, MI',
-
- view_navigation_menu_title: 'Menu de navigation',
- view_navigation_menu_navigationSettings: 'Réglages de navig.',
- view_navigation_menu_guidanceMute: 'Sourdine de guidage',
- view_navigation_menu_viewEdit: 'Visual / Rév',
- view_navigation_menu_siriusTravelL: 'Travel Link SIRIUS',
- view_navigation_menu_cancelRoute: 'Annuler itin.',
- view_navigation_menu_close: 'Fermer ',
-
- view_navigation_view2_editTurnList: 'Réviser la liste de virages',
-
- view_wigetPhone_label: 'Ne pas dérang.',
- /* NO TRANSLATION */view_wigetPhone_phone: 'Téléphone de Pierre',
-
- view_statusPhone_phone: 'Téléphone',
- view_statusPhone_privacyMode: 'Mode privé',
- view_statusPhone_microphoneMute: 'Microphone en sourdine',
-
- view_statusNavigation_navigation: 'Navigation',
-
- view_statusClimate_climate: 'Climatis',
-
- view_mediaStatus_entertainment: 'Divertissement',
- view_mediaStatus_bluetooth: 'Bluetooth',
- view_mediaStatus_avIn: 'Entrée de ligne AUX',
-
- view_phone_0: '0',
- view_phone_1: '1',
- view_phone_2: '2',
- view_phone_3: '3',
- view_phone_4: '4',
- view_phone_5: '5',
- view_phone_6: '6',
- view_phone_7: '7',
- view_phone_8: '8',
- view_phone_9: '9',
-
- view_phone_abc: 'ABC',
- view_phone_def: 'DEF',
- view_phone_ghi: 'GHI',
- view_phone_jkl: 'JKL',
- view_phone_mno: 'MNO',
- view_phone_pqrs: 'PQRS',
- view_phone_tuv: 'TUV',
- view_phone_wxyz: 'WXYZ',
-
- view_phone_plus: '+',
- view_phone_mtpl: '*',
- view_phone_dies: '#',
-
- view_phone_dial: 'Comp.',
- view_phone_end: 'Term.',
- view_phone_privacy: 'Privé',
- view_phone_hold: 'En attente',
- view_phone_mute: 'Discrétion',
- view_phone_join: 'Conférence',
-
- view_phone_quickDial_item1: 'Boîte vocale',
- /* NO TRANSLATION */view_phone_quickDial_item2: 'Micky Marmaremmy',
- view_phone_quickDial_item3: 'Billy McTuff',
- view_phone_quickDial_item4: 'Hope Doferson',
- view_phone_quickDial_item5: 'Larry Pitterputz',
- view_phone_quickDial_item6: 'James Murly',
- view_phone_quickDial_item7: 'Wally Schultz',
- view_phone_quickDial_item8: 'Suzie McCozo',
- view_phone_quickDial_item9: 'Vide',
- view_phone_quickDial_item10: 'Vide',
-
- view_phone_phoneBook_aF: 'A - F',
- view_phone_phoneBook_gL: 'G - L',
- view_phone_phoneBook_mS: 'M - S',
- view_phone_phoneBook_tZ: 'T - Z',
- /* NO TRANSLATION */view_phone_phoneBook_other: 'Autre',
- view_phone_phoneBook_item1: 'Micky Marmaremmy',
- view_phone_phoneBook_item2: 'Billy McTuff',
- view_phone_phoneBook_item3: 'Hope Doferson',
- view_phone_phoneBook_item4: 'Larry Pitterputz',
- view_phone_phoneBook_item5: 'Suzie McCozo',
- view_phone_phoneBook_item6: 'Suzie McCozo',
- view_phone_phoneBook_item7: 'Micky Marmaremmy',
- view_phone_phoneBook_item8: 'Billy McTuff',
- view_phone_phoneBook_item9: 'Hope Doferson',
-
- view_phone_history_all: 'Tout',
- view_phone_history_outgoing: 'Sortants',
- view_phone_history_incoming: 'Entrants',
- view_phone_history_missed: 'Manqués',
- view_phone_history_item1: 'Micky Marmaremmy',
- view_phone_history_item1_rightText: '1:28 pm',
- view_phone_history_item2: 'Billy McTuff',
- view_phone_history_item2_rightText: '12:03 pm',
- view_phone_history_item3: 'Hope Doferson',
- view_phone_history_item3_rightText: '11:35 am',
- view_phone_history_item4: 'Larry Pitterputz',
- view_phone_history_item4_rightText: '05/25/2011',
- view_phone_history_item5: 'Suzie McCozo',
- view_phone_history_item5_rightText: '05/26/2011',
- view_phone_history_item6: 'Suzie McCozo',
- view_phone_history_item6_rightText: '05/26/2011',
- view_phone_history_item7: 'Larry Pitterputz',
- view_phone_history_item7_rightText: '05/25/2011',
- view_phone_history_item8: 'Micky Marmaremmy',
- view_phone_history_item8_rightText: '1:28 pm',
- view_phone_history_item9: 'Billy McTuff',
- view_phone_history_item9_rightText: '12:03 pm',
- view_phone_history_item10: 'Hope Doferson',
- view_phone_history_item10_rightText: '11:35 am',
- view_phone_history_dial: 'Comp.',
- view_phone_history_saveDial: 'Sauv. sous',
-
- view_phone_messaging_send: 'Envoyer',
- view_phone_messaging_downloadNew: 'Téléch. nouv.',
- view_phone_messaging_deleteAll: 'Effacer tout',
- view_phone_messaging_item1: 'Suzie McCozo',
- view_phone_messaging_item2: 'Micky Marmaremmy',
- view_phone_messaging_item3: 'Billy McTuff',
- view_phone_messaging_delete: 'Supprimer',
-
- view_phone_settings_doNotDisturb: 'Ne pas déranger',
- view_phone_settings_bluetoothDevices: 'Appareils Bluetooth',
- view_phone_settings_bluetooth: 'Bluetooth',
- view_phone_settings_911Assist: 'Assistance 911',
- view_phone_settings_phoneRinger: 'Sonnerie du téléphone',
- view_phone_settings_textMessageN: 'Notification de message-texte',
- view_phone_settings_internetDataC: 'Connexion de données Internet',
- view_phone_settings_managePhonebook: 'Gérer le répertoire téléphonique',
- view_phone_settings_roamingWarning: 'Avertissement d\'itinérance',
- view_phone_settings_onOff:
- [
- 'Marche',
- 'Arrêt'
- ],
-
- view_phone_phoneSettings_bluetoothDevices_title: 'Appareils Bluetooth - Téléphone',
- view_phone_phoneSettings_bluetoothDevices_PaulPhone: 'Téléphone de Pierre',
- view_phone_phoneSettings_bluetoothDevices_TonyaCell: 'Cellulaire de Marie',
- view_phone_phoneSettings_bluetoothDevices_addDevice: 'Ajouter appareil',
- view_phone_phoneSettings_bluetoothDevices_connect: 'Connexion',
- view_phone_phoneSettings_bluetoothDevices_disconnect: 'Déconnexion',
- view_phone_phoneSettings_bluetoothDevices_info: 'Information',
- view_phone_phoneSettings_bluetoothDevices_favorite: 'Favoris',
- view_phone_phoneSettings_bluetoothDevices_delete: 'Supprimer',
-
- view_phone_phoneSettings_phoneRinger_title: 'Sélectionner une sonnerie',
- view_phone_phoneSettings_phoneRinger_ringer1: 'Sonnerie 1',
- view_phone_phoneSettings_phoneRinger_ringer2: 'Sonnerie 2',
- view_phone_phoneSettings_phoneRinger_ringer3: 'Sonnerie 3',
- view_phone_phoneSettings_phoneRinger_beep: 'Bip',
- view_phone_phoneSettings_phoneRinger_connectedPhone: 'Sonnerie du téléphone connecté',
-
- view_phone_phoneSettings_textMessageNotification_title: 'Notification de message-texte',
- view_phone_phoneSettings_textMessageNotification_alert1: 'Alerte 1',
- view_phone_phoneSettings_textMessageNotification_alert2: 'Alerte 2',
- view_phone_phoneSettings_textMessageNotification_alert3: 'Alerte 3',
- view_phone_phoneSettings_textMessageNotification_textToSpeech: 'Synthèse de la parole',
- view_phone_phoneSettings_textMessageNotification_silent: 'Mode silencieux',
-
- view_phone_phoneSettings_internetDataConnection_title: 'Connexion Internet',
- view_phone_phoneSettings_internetDataConnection_PaulPhone: 'Téléphone de Pierre',
- view_phone_phoneSettings_internetDataConncetion_connectionProfile: 'Profil de la connexion',
- view_phone_phoneSettings_internetDataConncetion_DUNSettings: 'Réglages DUN',
- view_phone_phoneSettings_internetDataConncetion_connectionToggle:
- [
- 'DUN',
- 'PAN',
- 'Désactivé'
- ],
- view_phone_phoneSettings_internetDataConncetion_queryOnConnect: 'Requête de connexion',
- view_phone_phoneSettings_internetDataConncetion_queryToggle:
- [
- 'Toujours',
- 'Jamais',
- 'Itinérance'
- ],
- view_phone_phoneSettings_internetDataConncetion_dataUsage: 'Pour obtenir une connexion Internet par l\'intermédiaire de votre téléphone pour utiliser le système SYNC, veuillez consulter les détails qui se trouvent sur le site Web www.syncmaroute.ca. Ford n\'est pas responsable des frais supplémentaires associés à l\'utilisation de votre forfait de données.',
-
- view_phone_phoneSettings_managePhoneBook_title: 'Gérer le répertoire',
- view_phone_phoneSettings_managePhoneBook_auto: 'Télécharger automatiquement le répertoire',
- view_phone_phoneSettings_managePhoneBook_display: 'Afficher les photos du répertoire',
- view_phone_phoneSettings_managePhoneBook_reDownload: 'Re-télécharger le répertoire',
- view_phone_phoneSettings_managePhoneBook_download: 'Télécharger',
- view_phone_phoneSettings_managePhoneBook_addContacts: 'Ajouter les contacts de votre téléphone',
- view_phone_phoneSettings_managePhoneBook_add: 'Ajout.',
- view_phone_phoneSettings_managePhoneBook_deletePhonebook: 'Supprimer le répertoire',
- view_phone_phoneSettings_managePhoneBook_delete: 'Supprimer',
- view_phone_phoneSettings_managePhoneBook_onOf:
- [
- 'Marche',
- 'Arrêt'
- ],
-
- view_navigation_distance: '0.25mi',
- view_navigation_position: 'Central Parkway',
- view_navigation_street: 'Main St',
-
- view_navigation_view: 'Afficher',
-
- view_navigation_destination: 'Destination',
- view_navigation_destination_myHome: 'Mon domicile',
- view_navigation_destination_favorites: 'Favoris',
- view_navigation_destination_previousDestinations: 'Destinations précédente',
- view_navigation_destination_POI: 'Point d\'intérêt',
- view_navigation_destination_emergency: 'Urgence',
- view_navigation_destination_streetAddress: 'Adresse',
- view_navigation_destination_intersection: 'Intersection',
- view_navigation_destination_cityCenter: 'Centre-ville',
- view_navigation_destination_map: 'Carte',
- view_navigation_destination_editRouteCancelRoute: 'Modifier l\'itinéraire',
- view_navigation_destination_CancelRoute: 'Annuler' + '\n' + 'cet itinéraire',
- view_navigation_destination_previousStartingsPoint: 'Point de départ précédent',
- view_navigation_destination_latitudeLongitude: 'Latitude / longitude',
- view_navigation_destination_freewayEntranceExit: 'Entrée/sortie d\'autoroute',
-
- view_navi_destination_MyHome_set_a_dest: 'Établir dest.',
- view_navi_destination_MyHome_dest: 'Dest',
- view_navi_destination_MyHome_set_as_way: 'Établir pt passage',
- view_navi_destination_MyHome_menu: 'Menu',
- view_navi_destination_MyHome_my_home: 'Mon domicile',
- view_navi_destination_MyHome_rd: '360, Rue de Champs de Mars',
- view_navi_destination_MyHome_dial: 'Comp',
- view_navi_destination_MyHome_delete: 'Supprimer',
- view_navi_destination_MyHome_edit: 'Modifier',
-
- view_navi_destination_favorites_header: 'Favoris',
- view_navi_destination_favorites_myhome: 'Mon domicile',
- view_navi_destination_favorites_az: 'A-Z',
- view_navi_destination_favorites_date: 'Date',
- view_navi_destination_favorites_edit: 'Réviser',
- view_navi_destination_favorites_delete: 'Supprimer',
- view_navi_destination_favorites_add: 'Ajouter',
- view_navi_destination_favorites_sort: 'Trier par',
-
- view_navi_destination_previous_header: 'Destinations précédentes',
- view_navi_destination_previous_milerd: '2310, Rue Saint-Louis, Gatineau, QC',
- view_navi_destination_previous_southfield: '4026, Rue Notre-Dame Est, Montréal QC',
- view_navi_destination_previous_delete: 'Supprimer',
- view_navi_destination_previous_date: 'Date',
- view_navi_destination_previous_city: 'Ville',
-
- view_navi_destination_poi_header: 'Point d\'intérêt',
- view_navi_destination_previous_sa: 'Zone de recherche',
- view_navi_destination_previous_sbn: 'Recherche par nom',
- view_navi_destination_previous_sbp: 'Recherche par numéro de téléphone',
- view_navi_destination_previous_cat: 'Catégories',
- view_navi_destination_previous_fav: 'Favoris',
- view_navi_destination_previous_all: 'Tous',
- view_navi_destination_previous_recent: 'Récents',
- view_navi_destination_previous_fs: 'Station-service',
- view_navi_destination_previous_fin: 'Finances',
- view_navi_destination_previous_ar: 'Tous les restaurants',
- view_navi_destination_previous_acc: 'Hébergement',
- view_navi_destination_previous_p: 'Stationnement',
- view_navi_destination_previous_edit: 'Modifier',
-
- view_navigation_destination_previousStartingsPoints: 'Point de départ précédent',
- view_navigation_destination_previousStartingsPoint_Date: 'Date',
- view_navigation_destination_previousStartingsPoint_City: 'Ville',
- view_navigation_destination_previousStartingsPoint_SortBy: 'Trier par',
-
- view_navi_destination_streetAddress_number: 'Numéro',
- view_navi_destination_streetAddress_city: 'Ville',
- view_navi_destination_streetAddress_street: 'Rue',
- /* NO TRANSLATION */view_navi_destination_streetAddress_de: 'DE',
- view_navi_destination_streetAddress_sp: 'État/Prov.',
- /* NO TRANSLATION */view_navi_destination_streetAddress_mi: 'MI',
- view_navi_destination_streetAddress_abc: 'ABC',
- view_navi_destination_streetAddress_space: 'Espace',
- view_navi_destination_streetAddress_ch: '!@#',
- view_navi_destination_streetAddress_q: 'Q',
- view_navi_destination_streetAddress_w: 'W',
- view_navi_destination_streetAddress_e: 'E',
- view_navi_destination_streetAddress_r: 'R',
- view_navi_destination_streetAddress_t: 'T',
- view_navi_destination_streetAddress_y: 'Y',
- view_navi_destination_streetAddress_u: 'U',
- view_navi_destination_streetAddress_i: 'I',
- view_navi_destination_streetAddress_o: 'O',
- view_navi_destination_streetAddress_p: 'P',
- view_navi_destination_streetAddress_a: 'A',
- view_navi_destination_streetAddress_s: 'S',
- view_navi_destination_streetAddress_d: 'D',
- view_navi_destination_streetAddress_f: 'F',
- view_navi_destination_streetAddress_g: 'G',
- view_navi_destination_streetAddress_h: 'H',
- view_navi_destination_streetAddress_j: 'J',
- view_navi_destination_streetAddress_k: 'K',
- view_navi_destination_streetAddress_l: 'L',
- view_navi_destination_streetAddress_z: 'Z',
- view_navi_destination_streetAddress_x: 'X',
- view_navi_destination_streetAddress_c: 'C',
- view_navi_destination_streetAddress_v: 'V',
- view_navi_destination_streetAddress_b: 'B',
- view_navi_destination_streetAddress_n: 'N',
- view_navi_destination_streetAddress_m: 'M',
- view_navi_destination_streetAddress_street1: 'Rue 1',
- view_navi_destination_streetAddress_street2: 'Rue 2',
-
- view_navi_destination_map_set_as_dest: 'Établir dest.',
- view_navi_destination_map_saw: 'Établir pt passage',
- view_navi_destination_map_saf: 'Sauvegarder favoris',
- view_navi_destination_map_poi: 'Icônes de points d\'intérêt désactivées',
- view_navi_destination_map_tf: 'Liste de circulation ',
- view_navi_destination_map_menu: 'Menu',
- view_navi_destination_map_dest: 'Dest',
- view_navi_destination_map_chestnut: 'Chestnut St.',
- // view_navi_destination_map_chestnut: 'Rue Notre Dame E.',
-
- view_navi_destination_LatitudeLongitude_dd: 'DD',
- view_navi_destination_LatitudeLongitude_latitude: 'Latitude',
- view_navi_destination_LatitudeLongitude_longitude: 'Longitude',
- view_navi_destination_LatitudeLongitude_go: 'GO',
- view_navi_destination_LatitudeLongitude_e: 'E',
- view_navi_destination_LatitudeLongitude_n: 'N',
- view_navi_destination_LatitudeLongitude_s: 'S',
- view_navi_destination_LatitudeLongitude_w: 'W',
-
- view_navi_destination_Freeway_header: 'Entrée/sortie d\'autoroute',
- view_navi_destination_Freeway_freeway: 'Autoroute',
- view_navi_destination_Freeway_state: 'État/Prov.',
- view_navi_destination_Freeway_mi: 'PQ',
-
- view_navi_destination_emergency_header: 'Urgence',
- view_navi_destination_emergency_sa: 'Zone de recherche',
- view_navi_destination_emergency_nearby: 'À proximité',
- view_navi_destination_emergency_hospital: 'Hôpital',
- view_navi_destination_emergency_police: 'Police',
-
- view_media_popUp: 'Préréglage sauvegardé',
-
- view_media_directTune_enter: 'Enter',
-
- view_media_am: 'AM',
- view_media_am1: 'AM 1',
- view_media_amAst: 'AM AST',
-
- view_media_fm: 'FM',
- view_media_fm1: 'FM 1',
- view_media_fm2: 'FM 2',
- view_media_fmAst: 'FM AST',
-
- view_media_sirius: 'SIRIUS',
- view_media_cd: 'CD',
- /* NO TRANSLATION */view_media_usbHard: 'USB Hard',
- view_media_usbSD: 'USB SD D',
- view_media_bt: 'Paul\'s...',
- view_media_avi: 'AV In',
- view_media_hdradio: 'Radio HD',
- view_media_repeat: 'Répéter',
- view_media_shuffle: 'Aléatoire',
- view_media_replay: 'Rejouer',
- view_media_similarMusic: 'Musique similaire',
- view_media_scan: 'Balayage',
- view_media_moreInfo: 'Plus d\'info.',
- view_media_options: 'Options',
- view_media_presets: 'Préréglag.',
- view_media_directTune: 'Synt directe',
- view_media_browse: 'Rech.',
-
- view_media_moreInfo_title: 'Info sur la chanson',
- view_media_moreInfo_whatIsPlaying: 'Qui joue?',
-
- view_media_cd_playList_track1: {
- title: 'The Electric Broncos',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track2: {
- title: 'Track 2',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track3: {
- title: 'Track 3',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track4: {
- title: 'Track 4',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track5: {
- title: 'Track 5',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track6: {
- title: 'Track 6',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track7: {
- title: 'Track 7',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track8: {
- title: 'Track 8',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track9: {
- title: 'Track 9',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_cd_playList_track10: {
- title: 'Track 10',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
-
- view_media_usb_playList_track1: {
- title: 'Track 1',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
- view_media_usb_playList_track2: {
- title: 'Track 2',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
- view_media_usb_playList_track3: {
- title: 'Track 3',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
- view_media_usb_playList_track4: {
- title: 'Track 4',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
- view_media_usb_playList_track5: {
- title: 'Track 5',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
- view_media_usb_playList_track6: {
- title: 'Track 6',
- album: 'Color of the Fall',
- artist: 'Luk Marko',
- genre: 'Rock',
- disk: 'Fall',
- duration: 123
- },
-
- view_media_sd_playList_track1: {
- title: 'The Electric Broncos',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_sd_playList_track2: {
- title: 'Track 2',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_sd_playList_track3: {
- title: 'Track 3',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_sd_playList_track4: {
- title: 'Track 4',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_sd_playList_track5: {
- title: 'Track 5',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
- view_media_sd_playList_track6: {
- title: 'Track 6',
- album: 'Love Bomb',
- artist: 'Epton Joe',
- genre: 'Electronic',
- disk: 'Lazerhorse',
- duration: 123
- },
-
- view_media_amFm_options_title: 'Options',
- view_media_amFm_options_soundSettings: 'Réglages de son',
- view_media_amFm_options_setPTY: 'Sélectionner le type de programme pour la recherche ou le balayage',
- view_media_amFm_options_noProgram: 'Aucun type de programme',
- view_media_amFm_options_RDS: 'Affichage du texte du système RDS',
- view_media_amFm_options_onOff:
- [
- 'Marche',
- 'Arrêt'
- ],
- view_media_amFm_options_autoset: 'Sauvegarde automatique préréglages',
- view_media_amFm_options_refresh: 'Actualiser/sauvegarder',
- view_media_amFm_options_TAG: 'Touche « marquage »',
-
- view_media_cd_options_title: 'CD-MP3/WMA Options',
- view_media_cd_options_soundSettings: 'Réglages de son',
- view_media_cd_options_compression: 'Compression',
- view_media_cd_options_onOff:
- [
- 'Marche',
- 'Arrêt'
- ],
-
- view_media_usb_options_title: 'Options',
- view_media_usb_options_soundSettings: 'Réglages de son',
- view_media_usb_options_mediaPlayerSettings: 'Réglages du lecteur multimédia',
- view_media_usb_options_compression_deviceInformation: 'Renseignements sur l\'appareil',
- view_media_usb_options_compression_updateIndex: 'Mettre à jour indexation du lecteur multimédia',
- view_media_usb_options_compression_start: 'Début',
-
- view_media_bt_options_title: 'Options',
- view_media_bt_options_soundSettings: 'Réglages de son',
- view_media_bt_options_mediaPlayerSettings: 'Réglages du lecteur multimédia',
- view_media_bt_options_deviceInformation: 'Réglages du lecteur multimédia',
-
- view_media_sirius_options_title: 'SIRIUS Options',
- view_media_sirius_options_soundSettings: 'Réglages de son',
- view_media_sirius_options_setCategory: 'Sélectionner la catégorie pour la recherche ou le balayage',
- view_media_sirius_options_allChannels: 'Toutes les stations',
- view_media_sirius_options_parentalLockout: 'Verrouillage parental',
- view_media_sirius_options_changePIN: 'Modifier le NIP',
- view_media_sirius_options_alerts: 'Alertes – artiste/titre/équipe sportive',
- view_media_sirius_options_OnOff:
- [
- 'Marche',
- 'Arrêt'
- ],
- view_media_sirius_options_serialNumber: 'Numéro de série électronique (NSE) 034424346821',
-
- view_media_cd_browse_CDTrack: 'Liste des pistes CD',
-
- view_media_usb_browse_browseAvailable: 'Nav. toutes les sources',
- view_media_usb_browse_siriusChannel: 'Guide des canaux SIRIUS',
- view_media_usb_browse_cdTrack: 'Liste des pistes CD',
- /* NO TRANSLATION */view_media_usb_browse_usbHard: 'USB Hard Disk Drive',
- /* NO TRANSLATION */view_media_usb_browse_usbSD: 'USB SD Disk Drive',
-
- /* NO TRANSLATION */view_media_usb_browse_USBHardDisk: 'USB Hard Disk Drive DSK5',
- view_media_usb_browse_music: 'Musique',
- /* NO TRANSLATION */view_media_usb_browse_exploreDevice: 'Explore device',
-
- view_media_usb_browse_browse: 'Rech. ttes',
- view_media_usb_browse_allSources: 'sources',
-
- view_media_sd_browse_title: 'USB SD Drive DSK4',
- view_media_sd_browse_music: 'Musique',
- /* NO TRANSLATION */view_media_sd_browse_exploreDevice: 'Explore device',
-
- view_media_sirius_alert: 'Alerte',
- view_media_sirius_browse_title: 'Guide des canaux SIRIUS',
- /* NO TRANSLATION */view_media_sirius_browse_AllChanels: 'All Chanels',
- view_media_sirius_browse_158: '158',
- view_media_sirius_browse_pop: 'Pop',
- view_media_sirius_browse_13: '13',
- view_media_sirius_browse_rock: 'Rock',
- view_media_sirius_browse_24: '24',
- /* NO TRANSLATION */view_media_sirius_browse_hipHop: 'Hip-Hop / R&B',
- view_media_sirius_browse_6: '6',
- /* NO TRANSLATION */view_media_sirius_browse_dance: 'Dance / Electrinic',
- view_media_sirius_browse_3: '3',
- view_media_sirius_browse_classic: 'Classique',
- view_media_sirius_browse_235: '235',
- /* NO TRANSLATION */view_media_sirius_browse_retro: 'Retro',
- view_media_sirius_browse_43: '43',
- /* NO TRANSLATION */view_media_sirius_browse_trance: 'Trance',
- view_media_sirius_browse_56: '56',
- view_media_sirius_browse_jazz: 'Jazz',
- view_media_sirius_browse_201: '201',
- /* NO TRANSLATION */view_media_sirius_browse_disco: 'Disco',
- view_media_sirius_browse_17: '17',
-
- view_climate_myTemp: 'Ma Temp',
- view_climate_dual: 'Zones',
- view_climate_auto: 'Auto',
- view_climate_ac: 'A/C',
- /* NO TRANSLATION */view_climate_maxAc: 'Max A/C',
- view_climate_rear: 'Arrière',
- view_climate_rearControl: 'Comm. arrière',
- view_climate_rearClimate: 'Climate. arrière',
- view_climate_rearClimateOn: 'Climate. arrière marche',
- view_climate_off: 'OFF',
- view_climate_myTempStored: 'Ma temp mémorisée',
-
- view_settings_timeNum: '3:00',
- view_settings_timeZone: 'Heure de l\'Est',
-
- view_settings_am: 'AM',
- view_settings_pm: 'PM',
-
- view_settings_clock: 'Horloge',
- view_settings_display: 'Affichage',
- view_settings_sound: 'Son',
- view_settings_vehicle: 'Véhicule',
- view_settings_settings: 'Réglages',
- view_settings_help: 'Aide',
-
- view_settings_clock_clokDisplay: 'Aff. Horlog',
- view_settings_clock_clokDisplay_time: 'Heure',
- view_settings_clock_clokDisplay_date: 'Date',
- view_settings_clock_outsideAirTemperature: 'Température extérieure',
- view_settings_clock_outsideAirTemperature_on: 'Marche',
- view_settings_clock_outsideAirTemperature_off: 'Arrêt',
- view_settings_clock_clockFormat: 'Format de l\'horloge',
- view_settings_clock_clockFormat_12Hour: '12 heure',
- view_settings_clock_clockFormat_24Hour: '24 heure',
- view_settings_clock_GPSTimeSynchronization: 'Synchronisation heure GPS',
- view_settings_clock_autoTimeZoneUpdate: 'Auto Time Zone Update',
- view_settings_clock_OnOFF:
- [
- 'Marche',
- 'Arrêt'
- ],
- view_settings_clock_timeDate:
- [
- 'Heure',
- 'Date'
- ],
- view_settings_clock_hours:
- [
- '12 heures',
- '24 heures'
- ],
-
- view_settings_clock_GPSTimeSynchronization_off: 'Arrêt',
-
- view_settings_sound_bass: 'Graves',
- view_settings_sound_midrage: 'Midrange',
- view_settings_sound_treble: 'Aigus',
- view_settings_sound_setBalance: 'Établir équilibre et atténuation',
- view_settings_sound_playTHX: 'Jouer la démo de THX Deep Note™',
- view_settings_sound_dsp: 'DSP',
- view_settings_sound_stereoSurround:
- [
- 'Stéréo',
- 'Surround'
- ],
- view_settings_sound_speed: 'Vol. asservi à la vitesse',
- view_settings_sound_offtoSeven:
- [
- 'Arrêt',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7'
- ],
-
- view_settings_display_brightness: 'Luminosité',
- view_settings_display_on: 'Marche',
- view_settings_display_off: 'Arrêt',
- view_settings_display_auto: 'Auto',
- view_settings_display_mode: 'Mode',
- view_settings_display_auto_dim: 'Auto-réduct. lum.',
- view_settings_display_day: 'Jour',
- view_settings_display_night: 'Nuit',
- view_settings_display_edit_wallpaper: 'Réviser le fond d\'écran',
- view_settings_display_auto_offset: 'Compensation Man.',
-
- view_settings_sound_bass: 'Graves',
- view_settings_sound_midrange: 'Midrange',
- view_settings_sound_treble: 'Aigus',
- view_settings_sound_balance: 'Établir équilibre et atténuation',
- view_settings_sound_dsp: 'DSP',
- view_settings_sound_stereo: 'Stéréo',
- view_settings_sound_surround: 'Ambiophonique',
-
- view_settings_Sound_BalanceFader_header: 'Équilibres gauche-droite et avant-arrière du son',
- view_settings_Sound_BalanceFader_fade: 'Équilibre avant-arrière',
- view_settings_Sound_BalanceFader_balance: 'Équilibre gauche-droite',
- view_settings_Sound_BalanceFader_f: 'F',
- view_settings_Sound_BalanceFader_b: 'B',
- view_settings_Sound_BalanceFader_l: 'L',
- view_settings_Sound_BalanceFader_r: 'R',
-
- view_settings_vehicle_ambientLighting: 'Éclairage ambiant',
- view_settings_vehicle_VehicleHealthReport: 'Bilan du véhicule',
- view_settings_vehicle_DoorKeypadCode: 'Rév. code clav.porte',
- view_settings_vehicle_RearViewCamera: 'Rév. code clav.porte',
- view_settings_vehicle_EnableValetMode: 'Activer le mode valet',
- /* NO TRANSLATION */view_settings_vehicle_SeatComfort: 'Seat Comfort',
-
- view_settings_vehicle_EnableValetMode_enterPIN_enter4Digit: 'Entrer NIP de 4 chiffres:',
- view_settings_vehicle_EnableValetMode_enterPIN_0: '0',
- view_settings_vehicle_EnableValetMode_enterPIN_1: '1',
- view_settings_vehicle_EnableValetMode_enterPIN_2: '2',
- view_settings_vehicle_EnableValetMode_enterPIN_3: '3',
- view_settings_vehicle_EnableValetMode_enterPIN_4: '4',
- view_settings_vehicle_EnableValetMode_enterPIN_5: '5',
- view_settings_vehicle_EnableValetMode_enterPIN_6: '6',
- view_settings_vehicle_EnableValetMode_enterPIN_7: '7',
- view_settings_vehicle_EnableValetMode_enterPIN_8: '8',
- view_settings_vehicle_EnableValetMode_enterPIN_9: '9',
- view_settings_vehicle_EnableValetMode_enterPIN_enter: 'Enter',
-
- view_settings_vehicle_VehicleHealthReport_ar: 'Rappels automatiques',
- view_settings_vehicle_VehicleHealthReport_mi: 'Intervalle (en milles)',
- view_settings_vehicle_VehicleHealthReport_on: 'Marche',
- view_settings_vehicle_VehicleHealthReport_off: 'Arrêt',
- view_settings_vehicle_VehicleHealthReport_rvhrn: 'Produire bilan du véhicule',
- view_settings_vehicle_VehicleHealthReport_to_active: 'Pour activer, allez sur syncmaroute.ca',
-
- view_settings_vehicle_DoorKeypadCode_factory: 'Afin de réviser le code de clavier vous devez d\'abord entrer le code établi à l\'usine',
- view_settings_vehicle_DoorKeypadCode_5digit: 'Code de Schiffres établi à l\'usine:',
- view_settings_vehicle_DoorKeypadCode_enter: 'Enter',
-
- view_settings_vehicle_RearViewCamera_rcd: 'Délai de la caméra arrière',
- view_settings_vehicle_RearViewCamera_visualPark: 'Alerte visuelle de stationnement',
- view_settings_vehicle_RearViewCamera_guidelines: 'Lignes guidage',
- view_settings_vehicle_RearViewCamera_preview: 'Prévisual.',
- view_settings_vehicle_RearViewCamera_on: 'Marche',
- view_settings_vehicle_RearViewCamera_off: 'Arrêt',
-
- view_settings_vehicle_enableValetMode_enablingValetMode: 'Activer le mode valet verrouille le systèm en utilisant un NIP de 4 chiffres sélectionné par l\'usager.',
- view_settings_vehicle_enableValetMode_samePin: 'Le même NIP deur a être entré pour désactiver le mode valet et déverrouiller le système.',
- view_settings_vehicle_enableValetMode_continue: 'Continuer avec l\'activation du mode valet?',
- view_settings_vehicle_enableValetMode_yes: 'Oui',
- view_settings_vehicle_enableValetMode_no: 'Non',
-
- view_settings_vehicle_MultiContourSeat_Adjust_header: 'MCS',
-
- view_settings_settings_system: 'Système',
- view_settings_settings_voiceControl: 'Contrôle de la voix',
- view_settings_settings_mediaPlayer: 'Lecteur Multimédia',
- view_settings_settings_navigation: 'Navigation',
- view_settings_settings_phone: 'Téléphone',
- view_settings_settings_wirelessInternet: 'Sans fil et Internet',
-
- view_settings_settings_system_language: 'Langue',
- view_settings_settings_system_language_engEspFr:
- [
- 'English',
- 'Español',
- 'Français'
- ],
- view_settings_settings_system_distance: 'Distance',
- view_settings_settings_system_distance_kmMi:
- [
- 'KM',
- 'MI'
- ],
- view_settings_settings_system_temperature: 'Température',
- view_settings_settings_system_temperature_frCel:
- [
- 'Fahrenheit',
- 'Celsius'
- ],
- view_settings_settings_system_systemPrompt: 'Volume de messages du système',
- view_settings_settings_system_touch: 'Bip de la touche tactile du panneau',
- view_settings_settings_system_keyboardLayout: 'Disposition du clavier',
- view_settings_settings_system_installApplications: 'Installer les applications',
- view_settings_settings_system_masterReset: 'Remise principale à 0',
- view_settings_settings_system_onOff:
- [
- 'Marche',
- 'Arrêt'
- ],
-
- view_settings_settings_system_keyboardLayout_ABC: 'ABC',
- view_settings_settings_system_keyboardLayout_QWERTY: 'QWERTY',
- view_settings_settings_system_keyboardLayout_ABCEurope: 'ABC + Europe',
- view_settings_settings_system_keyboardLayout_ABCFrench: 'ABC + Français',
- view_settings_settings_system_keyboardLayout_ABCSpanish: 'ABC + Espagnol',
- /* NO TRANSLATION */view_settings_settings_system_keyboardLayout_ABCPortuguese: 'ABC + Portuguese',
- view_settings_settings_system_keyboardLayout_ABCGerman: 'ABC + German',
- view_settings_settings_system_keyboardLayout_ABCItalian: 'ABC + Italian',
- view_settings_settings_system_keyboardLayout_ABCDutch: 'ABC + Dutch',
- view_settings_settings_system_keyboardLayout_ABCSwedish: 'ABC + Swedish',
- view_settings_settings_system_keyboardLayout_chinesePinYin: 'Chinese PinYin',
- view_settings_settings_system_keyboardLayout_chineseShouzimu: 'Chinese Shouzimu (PinYin Where not available )',
- view_settings_settings_system_keyboardLayout_russianCyrillic: '(Russian/Cyrillic)',
- view_settings_settings_system_keyboardLayout_arabic: '(Arabic)',
- view_settings_settings_system_keyboardLayout_greek: '(Greek)',
- view_settings_settings_system_keyboardLayout_polish: '(Polish)',
- view_settings_settings_system_keyboardLayout_turkish: '(Turkish)',
-
- view_settings_settings_system_installApplications_header: 'Mises à jour',
- view_settings_settings_system_installApplications_BeginSoftware: 'Commencer l\'installation des logiciels',
- view_settings_settings_system_installApplications_ViewSoftware: 'Visualiser les licences de logiciel',
-
- view_settings_settings_mediaPlayer_autoplay: 'Auto-lecture',
- view_settings_settings_mediaPlayer_bluetoothDevices: 'Appareils Bluetooth',
- view_settings_settings_mediaPlayer_indexBluetooth: 'Index. Appareil audio Bluetooth',
- view_settings_settings_mediaPlayer_gracenote: 'Info. De données Gracenote®',
- view_settings_settings_mediaPlayer_gracenoteMgmt: 'Gestion Gracenote®',
- view_settings_settings_mediaPlayer_coverArtPriority: 'Priorité art graphique (pochettes)',
- view_settings_settings_mediaPlayer_coverArtPriorityTriger:
- [
- 'Lec. multimédia',
- 'Gracenote®'
- ],
-
- view_settings_settings_mediaPlayer_bluetoothDevices_title: 'Aplications Bluetooth',
- view_settings_settings_mediaPlayer_bluetoothDevices_bluetoothDevices: 'Appareils Bluetooth',
- view_settings_settings_mediaPlayer_bluetoothDevices_bluetooth: 'Bluetooth',
- view_settings_settings_mediaPlayer_bluetoothDevices_onOf:
- [
- 'Marche',
- 'Arrêt'
- ],
- view_settings_settings_mediaPlayer_bluetoothDevices_InternetDataC: 'Connexion de données Internet',
-
- view_settings_help_systemInformation_serialNumber: 'Numéro de série: XMA41C7Q',
- view_settings_help_systemInformation_vehicleIdentification: 'Numéro d\'identification du véhicule (NIV): 2FMDK4AK1DBA00001',
- view_settings_help_systemInformation_CCPU: 'Version logicielle de CCPU: 4.26.11346_PRODUCT',
- view_settings_help_systemInformation_navigationApplication: 'Version de l\'application de navigation: 2.15.16',
- view_settings_help_systemInformation_mapDatabase: 'Version de la base de données de carte: B2',
- view_settings_help_systemInformation_siriusESN: 'ESN SIRIUS: 030891878010',
- view_settings_help_systemInformation_gracenote: 'Information de base de données Gracenote&reg: 4255, Library 5.5.2.11',
-
- view_settings_settings_whereAmI: 'Où suis-je?',
- view_settings_settings_systemInformation: 'Info. sur le système',
- view_settings_settings_softwareLicenses: 'Licences de logiciel',
- view_settings_settings_drivingRestrictions: 'Restrict. de conduite',
- view_settings_settings_911Assist: 'Assistance 911',
- view_settings_settings_voiceCommandList: 'Commandes vocales',
- view_settings_settings_forHelp: 'Pour de l\'aide, appelez le support SYNC: 1-877-945-3648',
-
- view_settings_settings_VoiceControl_header: 'Voice Control',
- view_settings_settings_VoiceControl_im: 'Mode d\'interaction',
- view_settings_settings_VoiceControl_novice: 'Novice',
- view_settings_settings_VoiceControl_advance: 'Avancée',
- view_settings_settings_VoiceControl_confirmationPrompts: 'Messages de confirmation',
- view_settings_settings_VoiceControl_mediaCandidateLists: 'Liste de descripteurs de média',
- view_settings_settings_VoiceControl_phoneCandidateLists: 'Liste descripteurs de téléphone',
- view_settings_settings_VoiceControl_voiceControlVolume: 'Voice Control Volume',
- view_settings_settings_VoiceControl_on: 'Marche',
- view_settings_settings_VoiceControl_off: 'Arrêt',
-
- view_settings_settings_WirelessInternet_header: 'Connexion sans fil à Internet',
- view_settings_settings_WirelessInternet_wifi_settings: 'Réglages Wi-Fi',
- view_settings_settings_WirelessInternet_usbmb: 'Large bande mobile USB',
- view_settings_settings_WirelessInternet_bluetooth_settings: 'Réglages Bluetooth',
- view_settings_settings_WirelessInternet_bluetooth_pcm: 'Prioriser la connexion',
- view_settings_settings_WirelessInternet_bluetooth_i: 'Internet',
- view_settings_settings_WirelessInternet_bluetooth_wifi: 'WiFi',
- view_settings_settings_WirelessInternet_bluetooth_wdp: 'Wireless Data Providers',
- view_settings_settings_WirelessInternet_bluetooth_cn: 'Cellular Networks',
-
- view_settings_settings_navigation_title: 'Navigation',
- view_settings_settings_navigation_mapPreferences: 'Préférences de carte',
- view_settings_settings_navigation_routePreferences: 'Préférences d\'itinéraire',
- view_settings_settings_navigation_navigationPreferences: 'Préférences de navigation',
- view_settings_settings_navigation_trafficPreferences: 'Préférences de circulation',
- view_settings_settings_navigation_avoidAreas: 'Éviter des zones',
-
- view_settings_settings_navigation_mapPreferences_breadcrumbs: 'Marques de navigation',
- view_settings_settings_navigation_mapPreferences_OnOFF:
- [
- 'MARCHE',
- 'ARRET'
- ],
- view_settings_settings_navigation_mapPreferences_turnList: 'Format de liste de virages',
- view_settings_settings_navigation_mapPreferences_breadcrumbs_TopBotttom:
- [
- 'Top to Bottom',
- 'Bottom to Top'
- ],
- view_settings_settings_navigation_mapPreferences_ParkingPOI: 'Notification de POI stationnement',
-
- view_settings_settings_navigation_routePreferences_preferred: 'Itinéraire préféré',
- view_settings_settings_navigation_routePreferences_SFE:
- [
- 'Plus court',
- 'Plus rapide',
- 'Écologique'
- ],
- view_settings_settings_navigation_routePreferences_avoidFreeways: 'Éviter les autoroutes',
- view_settings_settings_navigation_routePreferences_avoidTollroads: 'Éviter les routes à péage',
- view_settings_settings_navigation_routePreferences_avoidFerriesCarTrains: 'Éviter traversiers/trains-voit',
- view_settings_settings_navigation_routePreferences_useHOVLanes: 'Utilis. les voies multioccupants',
- view_settings_settings_navigation_routePreferences_onOff:
- [
- 'MARCHE',
- 'ARRET'
- ],
-
- view_settings_settings_navigation_navigationPreferences_guidancePrompts: 'Messages-guide de guidage',
- view_settings_settings_navigation_navigationPreferences_voiceTone:
- [
- 'Voix et tonalité',
- 'Voix et tonalité'
- ],
- view_settings_settings_navigation_navigationPreferences_auto: 'Auto-remplissage état/province',
- view_settings_settings_navigation_navigationPreferences_onOff:
- [
- 'MARCHE',
- 'ARRET'
- ],
-
- view_settings_settings_navigation_trafficPreferences_avoidTrafficProblems: 'Éviter les problèmes de circulation',
- view_settings_settings_navigation_trafficPreferences_automaticManual:
- [
- 'Automatic',
- 'Manuel'
- ],
- view_settings_settings_navigation_trafficPreferences_trafficAlertNotification: 'Notification d\'alerte circulation',
- view_settings_settings_navigation_trafficPreferences_onOff:
- [
- 'MARCHE',
- 'ARRET'
- ],
- view_settings_settings_navigation_trafficPreferences_accidentMapIcon: 'Icônes d\'accidents',
- view_settings_settings_navigation_trafficPreferences_trafficJamMapIcon: 'Icône d\'embouteillages',
- view_settings_settings_navigation_trafficPreferences_roadClosed: 'Route fermée',
- view_settings_settings_navigation_trafficPreferences_roadWorks: 'Travaux routiers',
- view_settings_settings_navigation_trafficPreferences_incidentMapIcons: 'Icônes d\'incidents',
- view_settings_settings_navigation_trafficPreferences_difficultDrivingConditions: 'Conditions conduite difficiles',
- view_settings_settings_navigation_trafficPreferences_snowIce: 'Neige et glace',
- view_settings_settings_navigation_trafficPreferences_smogAlerts: 'Alertes au smog',
- view_settings_settings_navigation_trafficPreferences_weatherWarning: 'Avertissement météo',
- view_settings_settings_navigation_trafficPreferences_reducesVisibility: 'Visibilité réduite',
- view_settings_settings_navigation_trafficPreferences_turnOnYourRadio: 'Allumez votre radio',
-
- view_settings_settings_navigation_avoidAreas_add: 'Ajout.',
-
- view_settings_settings_WirelessWifiInternet_header: 'Réglages Wi-Fi',
- view_settings_settings_WirelessWifiInternet_wifi_network: 'Mode réseau Wi-Fi (client)',
- view_settings_settings_WirelessWifiInternet_wifi_choose: 'Sélectionner un réseau sans fil',
- view_settings_settings_WirelessWifiInternet_wifi_gateway_mode: 'Mode de passerelle',
- view_settings_settings_WirelessWifiInternet_wifi_gateway_settings: 'Réglages de passerelle (point d\'accès)',
- view_settings_settings_WirelessWifiInternet_wifi_gateway_list: 'Liste des appareils de la passerelle (point d\'accès)',
- view_settings_settings_WirelessWifiInternet_wifi_search: 'Chercher des réseaux sans fil',
- view_settings_settings_WirelessWifiInternet_wifi_on: 'Marche',
- view_settings_settings_WirelessWifiInternet_wifi_off: 'Arrêt',
-
- view_settings_help_WhereAmI_header: 'Où suis-je?',
- view_settings_help_WhereAmI_next_street: 'Prochaine rue',
- view_settings_help_WhereAmI_villagerd: 'Place d’Youville',
- view_settings_help_WhereAmI_mi: '0.160 km',
- view_settings_help_WhereAmI_current_street: 'Rue actuelle',
- view_settings_help_WhereAmI_military_st: 'Rue de Champlain',
- view_settings_help_WhereAmI_dearborn_dmi: 'Montreal, PQ',
- view_settings_help_WhereAmI_lat: 'Lat: 42.17.39N / Long: 83.14.08W',
- view_settings_help_WhereAmI_previous_street: 'Rue la plus prochè',
- view_settings_help_WhereAmI_west_rd: 'Rue de la Commune',
- view_settings_help_WhereAmI_west_ft: '121.9 m',
-
- view_settings_help_softwareLicenses_titile: 'Licences de logiciel',
- view_settings_help_softwareLicenses_applicationName: 'Nom de l\'application',
- view_settings_help_softwareLicenses_expirationDate: 'Date d\'expiration',
- view_settings_help_softwareLicenses_remainingUses: 'Usages qui restent',
- view_settings_help_softwareLicenses_install: 'Installer mises à jr',
- view_settings_help_softwareLicenses_navigation: 'Navigation North Amer',
- view_settings_help_softwareLicenses_none: 'Aucune',
- view_settings_help_softwareLicenses_unlimited: 'Illimité',
-
- view_settings_help_DrivingRestrictions_header: 'Restrictions de conduite',
- view_settings_help_DrivingRestrictions_text: 'Pour ne pas distraire le conducteur et pour des motifs de sécurité. L\'utilisation de certaines caractéristiques de SYNC est limitée lorsque le véhicule est en mouv.',
-
- view_settings_help_voiceCommandListView_header: 'Liste de commandes',
- view_settings_help_voiceCommandListView_audio: 'Audio',
- view_settings_help_voiceCommandListView_browse: 'Rechercher',
- view_settings_help_voiceCommandListView_climate: 'Climatisation',
- view_settings_help_voiceCommandListView_disc: 'Disque',
- view_settings_help_voiceCommandListView_globalCommands: 'Commandes générales',
- view_settings_help_voiceCommandListView_media: 'Média',
- view_settings_help_voiceCommandListView_navigation: 'Navigation',
- view_settings_help_voiceCommandListView_otherCommands: 'Autres commandes',
- view_settings_help_voiceCommandListView_phone: 'Téléphone',
- view_settings_help_voiceCommandListView_radio: 'Radio',
- view_settings_help_voiceCommandListView_sirius: 'Sirius',
- view_settings_help_voiceCommandListView_travelLink: 'Travel Link',
- view_settings_help_voiceCommandListView_voiceInteractions: 'Directives vocales',
- view_settings_help_voiceCommandListView_voiceSettings: 'Réglages vocaux',
-
- view_info_leftmenu_services: 'Services',
- view_info_leftmenu_travelLink: 'Travel Link',
- view_info_leftmenu_alerts: 'Alertes',
- view_info_leftmenu_calendar: 'Calendrier',
- view_info_leftmenu_apps: 'Appl.',
-
- view_info_services_syncServices: 'Services SYNC',
- view_info_services_trafficDirectionsAndInformation: 'CIRCULATION ROUTIÈRE, INDICATIONS ET INFORMATIONS',
- view_info_services_getTheLatestTrafficRreport: 'Obtenir rapport de circulation',
- view_info_services_findBusinessesAndDownloadSaved: 'Trouver commerces & téléch. pts sauvegardé.',
- view_info_services_Pts: '',
- view_info_services_hearPersonalizedInformationMore: 'Entendre infos personnalisées & plus',
- view_info_services_connecttoServices: 'Connecter aux services',
- view_info_services_toActivate: 'Pour activer, allez à www.SyncMaRoute.ca.',
-
- view_info_travelLink_trafficOnRoute: 'Circulation pendant le trajet',
- view_info_travelLink_trafficNearby: 'Circulat. près d\'ici',
- view_info_travelLink_fuelPrices: 'Prix de l\'essence',
- view_info_travelLink_movieListings: 'Films à l\'affiche',
- view_info_travelLink_subscriptionInfo: 'Renseignements sur l\'abonnement',
- view_info_travelLink_weather: 'Conditions météorologiques',
- view_info_travelLink_sportsInfo: 'Information sport',
- view_info_travelLink_skiConditions: 'Conditions de ski',
-
- view_info_alerts_sort: 'Trier par',
- view_info_alerts_dateIcon:
- [
- 'Date',
- 'Icône'
- ],
- view_info_alerts_911Assist: 'Service Assistance 911 désactivé 2012',
- view_info_alerts_view: 'Afficher',
- view_info_alerts_delete: 'Supprimer',
- view_info_alerts_deleteAll: 'Suppr. tout',
-
- view_info_calendar_date: '2011, jul',
- view_info_calendar_today: 'Aujourd\'hui',
- view_info_calendar_day1: 'DIM',
- view_info_calendar_day2: 'LUN',
- view_info_calendar_day3: 'MAR',
- view_info_calendar_day4: 'MER',
- view_info_calendar_day5: 'JEU',
- view_info_calendar_day6: 'VEN',
- view_info_calendar_day7: 'SAM',
-
- view_info_apps_911Assist: 'Assistance 911',
- view_info_apps_vehicle_VehicleHealthReport: 'Bilan du véhicule',
- view_info_apps_vehicle_InstallApplicationsUp: 'Installation d\'applications et de',
- view_info_apps_911Assist_header: 'Assistance 911',
- view_info_apps_911Assist_incase: 'En cas d\'urgence (ECU), comp. rapide.',
- view_info_apps_911Assist_on: 'Marche',
- view_info_apps_911Assist_off: 'Arrêt',
- view_info_apps_911Assist_edit: 'Réviser',
- view_info_apps_911Assist_sarah: 'Marie',
- view_info_apps_911Assist_john: 'Pierre',
- view_info_apps_911Assist_911: 'Assistance 911',
- view_info_apps_911Assist_reminder: 'Rappel Assist. 911',
-
- view_info_apps_911Assist_911_connected: 'Assistance 911 utilise votre tél. cell. Connecté pour composer le 911 après un accident qualifié',
- view_info_apps_911Assist_vri: 'Directives pr redémarrer véh',
-
- /* NO TRANSLATION */view_faq_mftGuide: 'SDL Guide Welcome Orientation',
- view_faq_myFordTouch4: 'Menu MyFord Touch â 4 coins',
- view_faq_customize: 'Personnaliser MyFord Touch',
- view_faq_useVoiceC: 'Utiliser les commandes vocales',
- view_faq_myFordTouchN: 'Système navigation MyFord Touch',
- view_faq_pairYourP: 'Coupler téléphone et fair appels mains libres',
- view_faq_multipleConnected: 'Multiple Connected Phones',
- view_faq_wifi: 'WiFi',
- view_faq_syncServices: 'SYNC Services',
- view_faq_wallpaper: 'Fond d\'écran',
- /* NO TRANSLATION */view_faq_forFurther: 'For further assistance about your in-vehicle MyFord Touch system, call 1-800-392-3673.',
- view_faq_selectOption: 'Select option 3 for an In-Vehicle Technology Team representative.'
-};
diff --git a/SDL_Core/src/components/HMI/locale/locale.js b/SDL_Core/src/components/HMI/locale/locale.js
index f625fc10e..486fe7526 100755..100644
--- a/SDL_Core/src/components/HMI/locale/locale.js
+++ b/SDL_Core/src/components/HMI/locale/locale.js
@@ -1,42 +1,42 @@
-/*
- * Copyright (c) 2013, Ford Motor Company All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * · Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * · Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * · Neither the name of the Ford Motor Company nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/**
- * @name SDL.locale
- * @desc SDL localization object
- * @category Localization
- * @filesource locale/locale.js
- * @version 1.0
- */
-
-SDL.locale = Em.Object.create( {
-
- label: SDL[SDL.localization],
-
- setLang: function( lang ) {
- this.set( 'label', SDL[SDL.localization] );
- }.observes( 'SDL.localization' )
-} ); \ No newline at end of file
+/*
+ * Copyright (c) 2013, Ford Motor Company All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met: ·
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer. · Redistributions in binary
+ * form must reproduce the above copyright notice, this list of conditions and
+ * the following disclaimer in the documentation and/or other materials provided
+ * with the distribution. · Neither the name of the Ford Motor Company nor the
+ * names of its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/**
+ * @name SDL.locale
+ * @desc SDL localization object
+ * @category Localization
+ * @filesource locale/locale.js
+ * @version 1.0
+ */
+
+SDL.locale = Em.Object.create( {
+
+ label: SDL[SDL.localization],
+
+ setLang: function(lang) {
+
+ this.set('label', SDL[SDL.localization]);
+ }.observes('SDL.localization')
+}); \ No newline at end of file
diff --git a/SDL_Core/src/components/HMI/locale/rus.js b/SDL_Core/src/components/HMI/locale/rus.js
deleted file mode 100755
index 07240207c..000000000
--- a/SDL_Core/src/components/HMI/locale/rus.js
+++ /dev/null
@@ -1,11 +0,0 @@
-SDL.rus = {
- navigation: 'Навигация',
-
- phone: 'Звонить',
- quickdial: 'Набор',
- phonebook: 'Книжка',
- history: 'История',
- messaging: 'Сообщения',
- settings: 'Настройки',
- view: 'Вид'
-}; \ No newline at end of file
diff --git a/SDL_Core/src/components/Interfaces/HMI_API.xml b/SDL_Core/src/components/Interfaces/HMI_API.xml
new file mode 100644
index 000000000..a2dc68cd6
--- /dev/null
+++ b/SDL_Core/src/components/Interfaces/HMI_API.xml
@@ -0,0 +1,3347 @@
+<?xml version="1.0" standalone="yes"?>
+
+<!--
+* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE. -->
+
+
+<interfaces name="SmartDeviceLink HMI API">
+
+<interface name="Common" version="1.1" date="2013-10-02">
+
+<enum name="Result">
+ <element name="SUCCESS" value="0"/>
+ <element name="UNSUPPORTED_REQUEST" value="1"/>
+ <element name="UNSUPPORTED_RESOURCE" value="2"/>
+ <element name="DISALLOWED" value="3"/>
+ <element name="REJECTED" value="4"/>
+ <element name="ABORTED" value="5"/>
+ <element name="IGNORED" value="6"/>
+ <element name="RETRY" value="7"/>
+ <element name="IN_USE" value="8"/>
+ <element name="DATA_NOT_AVAILABLE" value="9"/>
+ <element name="TIMED_OUT" value="10"/>
+ <element name="INVALID_DATA" value="11"/>
+ <element name="CHAR_LIMIT_EXCEEDED" value="12"/>
+ <element name="INVALID_ID" value="13"/>
+ <element name="DUPLICATE_NAME" value="14"/>
+ <element name="APPLICATION_NOT_REGISTERED" value="15"/>
+ <element name="WRONG_LANGUAGE" value="16"/>
+ <element name="OUT_OF_MEMORY" value="17"/>
+ <element name="TOO_MANY_PENDING_REQUESTS" value="18"/>
+ <element name="NO_APPS_REGISTERED" value="19"/>
+ <element name="NO_DEVICES_CONNECTED" value="20"/>
+ <element name="WARNINGS" value="21"/>
+ <element name="GENERIC_ERROR" value="22"/>
+ <element name="USER_DISALLOWED" value="23"/>
+</enum>
+
+<enum name="ButtonName">
+ <description>Defines the hard (physical) and soft (touchscreen) buttons available from SYNC</description>
+ <element name="OK"/>
+ <element name="SEEKLEFT"/>
+ <element name="SEEKRIGHT"/>
+ <element name="TUNEUP"/>
+ <element name="TUNEDOWN"/>
+ <element name="PRESET_0"/>
+ <element name="PRESET_1"/>
+ <element name="PRESET_2"/>
+ <element name="PRESET_3"/>
+ <element name="PRESET_4"/>
+ <element name="PRESET_5"/>
+ <element name="PRESET_6"/>
+ <element name="PRESET_7"/>
+ <element name="PRESET_8"/>
+ <element name="PRESET_9"/>
+ <element name="CUSTOM_BUTTON"/>
+ <element name="SEARCH"/>
+</enum>
+
+<enum name="ButtonEventMode">
+ <element name="BUTTONUP">
+ <description>A button has been released up</description>
+ </element>
+ <element name="BUTTONDOWN">
+ <description>A button has been pressed down</description>
+ </element>
+</enum>
+
+<enum name="ButtonPressMode">
+ <element name="LONG">
+ <description>A button was released, after it was pressed for a long time. Actual timing is defined by head unit and may vary</description>
+ </element>
+ <element name="SHORT">
+ <description>A button was released, after it was pressed for a short time. Actual timing is defined by head unit and may vary</description>
+ </element>
+</enum>
+
+ <enum name="Language">
+ <element name="EN-US" internal_name="EN_US">
+ <description>English - US</description>
+ </element>
+ <element name="ES-MX" internal_name="ES_MX">
+ <description>Spanish - Mexico</description>
+ </element>
+ <element name="FR-CA" internal_name="FR_CA">
+ <description>French - Canada</description>
+ </element>
+ <element name="DE-DE" internal_name="DE_DE">
+ <description>German - Germany</description>
+ </element>
+ <element name="ES-ES" internal_name="ES_ES">
+ <description>Spanish - Spain</description>
+ </element>
+ <element name="EN-GB" internal_name="EN_GB">
+ <description>English - GB</description>
+ </element>
+ <element name="RU-RU" internal_name="RU_RU">
+ <description>Russian - Russia</description>
+ </element>
+ <element name="TR-TR" internal_name="TR_TR">
+ <description>Turkish - Turkey</description>
+ </element>
+ <element name="PL-PL" internal_name="PL_PL">
+ <description>Polish - Poland</description>
+ </element>
+ <element name="FR-FR" internal_name="FR_FR">
+ <description>French - France</description>
+ </element>
+ <element name="IT-IT" internal_name="IT_IT">
+ <description>Italian - Italy</description>
+ </element>
+ <element name="SV-SE" internal_name="SV_SE">
+ <description>Swedish - Sweden</description>
+ </element>
+ <element name="PT-PT" internal_name="PT_PT">
+ <description>Portuguese - Portugal</description>
+ </element>
+ <element name="NL-NL" internal_name="NL_NL">
+ <description>Dutch (Standard) - Netherlands</description>
+ </element>
+ <element name="EN-AU" internal_name="EN_AU">
+ <description>English - Australia</description>
+ </element>
+ <element name="ZH-CN" internal_name="ZH_CN">
+ <description>Mandarin - China</description>
+ </element>
+ <element name="ZH-TW" internal_name="ZH_TW">
+ <description>Mandarin - Taiwan</description>
+ </element>
+ <element name="JA-JP" internal_name="JA_JP">
+ <description>Japanese - Japan</description>
+ </element>
+ <element name="AR-SA" internal_name="AR_SA">
+ <description>Arabic - Saudi Arabia</description>
+ </element>
+ <element name="KO-KR" internal_name="KO_KR">
+ <description>Korean - South Korea</description>
+ </element>
+ <element name="PT-BR" internal_name="PT_BR">
+ <description>Portuguese - Brazil</description>
+ </element>
+ <element name="CS-CZ" internal_name="CS_CZ">
+ <description>Czech - Czech Republic</description>
+ </element>
+ <element name="DA-DK" internal_name="DA_DK">
+ <description>Danish - Denmark</description>
+ </element>
+ <element name="NO-NO" internal_name="NO_NO">
+ <description>Norwegian - Norway</description>
+ </element>
+</enum>
+
+<enum name="SoftButtonType">
+ <description>Contains information about the SoftButton capabilities.</description>
+ <element name="TEXT" internal_name="SBT_TEXT"/>
+ <element name="IMAGE" internal_name="SBT_IMAGE"/>
+ <element name="BOTH" internal_name="SBT_BOTH"/>
+</enum>
+
+<enum name="SystemAction">
+ <description>Enumeration that describes system actions that can be triggered.</description>
+ <element name="DEFAULT_ACTION">
+ <description>Default action occurs. Standard behavior (e.g. SoftButton clears overlay).</description>
+ </element>
+ <element name="STEAL_FOCUS">
+ <description>The calling app's dialog or related event should clear and the app should be brought into HMI_FULL.</description>
+ </element>
+ <element name="KEEP_CONTEXT">
+ <description>Current system context is maintained. An overlay is persisted even though a SoftButton has been pressed and the notification sent.</description>
+ </element>
+</enum>
+
+<enum name="AppHMIType">
+ <description>Enumeration listing possible app types.</description>
+ <element name="DEFAULT" />
+ <element name="COMMUNICATION" />
+ <element name="MEDIA" />
+ <element name="MESSAGING" />
+ <element name="NAVIGATION" />
+ <element name="INFORMATION" />
+ <element name="SOCIAL" />
+ <element name="BACKGROUND_PROCESS" />
+ <element name="TESTING" />
+ <element name="SYSTEM" />
+</enum>
+
+<enum name="LayoutMode">
+ <description>For touchscreen interactions, the mode of how the choices are presented.</description>
+ <element name="ICON_ONLY" />
+ <description>This mode causes the interaction to display the previous set of choices as icons.</description>
+ <element name="ICON_WITH_SEARCH" />
+ <description>This mode causes the interaction to display the previous set of choices as icons along with a search field in the HMI.</description>
+ <element name="LIST_ONLY" />
+ <description>This mode causes the interaction to display the previous set of choices as a list.</description>
+ <element name="LIST_WITH_SEARCH" />
+ <description>This mode causes the interaction to display the previous set of choices as a list along with a search field in the HMI.</description>
+ <element name="KEYBOARD" />
+ <description>This mode causes the interaction to immediately display a keyboard entry through the HMI.</description>
+</enum>
+
+<enum name="DeactivateReason">
+ <description>Specifies the functionality the User has switched to.</description>
+ <element name="AUDIO">
+ <description>Navigated to audio(radio, etc)</description>
+ </element>
+ <element name="PHONECALL">
+ <description>Navigated to make a call.</description>
+ </element>
+ <element name="NAVIGATIONMAP">
+ <description>Navigated to navigation screen.</description>
+ </element>
+ <element name="PHONEMENU">
+ <description>Navigated to phone menu.</description>
+ </element>
+ <element name="SYNCSETTINGS">
+ <description>Navigated to settings menu.</description>
+ </element>
+ <element name="GENERAL">
+ <description>Other screens navigation apart from other mobile app.</description>
+ </element>
+</enum>
+
+<enum name="ClockUpdateMode">
+ <description>Describes how the media clock timer should behave on the platform</description>
+ <element name="COUNTUP" />
+ <description>Starts the media clock timer counting upwards, as in time elapsed.</description>
+ <element name="COUNTDOWN" />
+ <description>Starts the media clock timer counting downwards, as in time remaining.</description>
+ <element name="PAUSE" />
+ <description>Pauses the media clock timer</description>
+ <element name="RESUME" />
+ <description>Resume the media clock timer</description>
+ <element name="CLEAR" />
+ <description>Clears the media clock timer (previously done through Show->mediaClock)</description>
+</enum>
+
+<enum name="SystemContext">
+ <description>Enumeration that describes possible contexts the application might be in on HU.</description>
+ <description>Communicated to whichever app is in HMI FULL, except Alert.</description>
+ <element name="MAIN" internal_name="SYSCTXT_MAIN">
+ <description>The app's persistent display (whether media/non-media/navigation) is fully visible onscreen.</description>
+ <description> There is currently no user interaction (user-initiated or app-initiated) with the head-unit</description>
+ </element>
+ <element name="VRSESSION" internal_name="SYSCTXT_VRSESSION">
+ <description>The system is currently in a VR session (with whatever dedicated VR screen being overlaid onscreen).</description>
+ </element>
+ <element name="MENU" internal_name="SYSCTXT_MENU">
+ <description>The system is currently displaying a system or in-App menu onscreen.</description>
+ </element>
+ <element name="HMI_OBSCURED" internal_name="SYSCTXT_HMI_OBSCURED">
+ <description>The app's display HMI is currently obscuring with either a system or other app's overlay (except of Alert element).</description>
+ </element>
+ <element name="ALERT" internal_name="SYSCTXT_ALERT">
+ <description>Broadcast only to whichever app has an alert currently being displayed.</description>
+ </element>
+</enum>
+
+<enum name="HmiZoneCapabilities">
+ <description>Contains information about the HMI zone capabilities.</description>
+ <description>For future use.</description>
+ <element name="FRONT" />
+ <element name="BACK" />
+</enum>
+
+<enum name="SpeechCapabilities">
+ <description>Contains information about the TTS capabilities.</description>
+ <element name="TEXT" internal_name="SC_TEXT" />
+ <element name="SAPI_PHONEMES" />
+ <element name="LHPLUS_PHONEMES" />
+ <element name="PRE_RECORDED" />
+ <element name="SILENCE" />
+</enum>
+
+<enum name="VrCapabilities">
+ <description>Contains information about the VR capabilities.</description>
+ <element name="TEXT" internal_name="VR_TEXT" />
+</enum>
+
+<enum name="PrerecordedSpeech">
+ <description>Contains a list of prerecorded speech items present on the platform.</description>
+ <element name="HELP_JINGLE" />
+ <element name="INITIAL_JINGLE" />
+ <element name="LISTEN_JINGLE" />
+ <element name="POSITIVE_JINGLE" />
+ <element name="NEGATIVE_JINGLE" />
+</enum>
+
+<enum name="TBTState">
+ <description>Enumeration that describes possible states of turn-by-turn client or SmartDeviceLink app.</description>
+ <element name="ROUTE_UPDATE_REQUEST" />
+ <element name="ROUTE_ACCEPTED" />
+ <element name="ROUTE_REFUSED" />
+ <element name="ROUTE_CANCELLED" />
+ <element name="ETA_REQUEST" />
+ <element name="NEXT_TURN_REQUEST" />
+ <element name="ROUTE_STATUS_REQUEST" />
+ <element name="ROUTE_SUMMARY_REQUEST" />
+ <element name="TRIP_STATUS_REQUEST" />
+ <element name="ROUTE_UPDATE_REQUEST_TIMEOUT" />
+</enum>
+
+<enum name="ApplicationsCloseReason">
+ <description>Describes the reasons for exiting all of applications.</description>
+ <element name="IGNITION_OFF" />
+ <element name="MASTER_RESET" />
+ <element name="FACTORY_DEFAULTS" />
+</enum>
+
+<enum name="DisplayType">
+ <description>The possible types of HU display.</description>
+ <element name="CID">
+ <description> A 2-line x 20 character "dot matrix" display </description>
+ </element>
+ <element name="TYPE2">
+ <description> 1 line older radio head unit.</description>
+ </element>
+ <element name="TYPE5">
+ <description> Old radio head unit.</description>
+ </element>
+ <element name="NGN">
+ <description> Next Generation Navigation display.</description>
+ </element>
+ <element name="GEN2_8_DMA">
+ <description> GEN-2, 8 inch display.</description>
+ </element>
+ <element name="GEN2_6_DMA">
+ <description> GEN-2, 6 inch display.</description>
+ </element>
+ <element name="MFD3">
+ <description> 3 inch GEN1.1 display </description>
+ </element>
+ <element name="MFD4">
+ <description> 4 inch GEN1.1 display </description>
+ </element>
+ <element name="MFD5">
+ <description> 5 inch GEN1.1 display </description>
+ </element>
+ <element name="GEN3_8-INCH" internal_name="GEN3_8_INCH" />
+ </enum>
+
+<enum name="ImageType">
+ <description>Contains information about the type of image.</description>
+ <element name="STATIC" />
+ <element name="DYNAMIC" />
+</enum>
+
+<enum name="TextFieldName">
+ <element name="mainField1">
+ <description>The first line of first set of main fields of the persistent display; applies to "Show"</description>
+ </element>
+ <element name="mainField2">
+ <description>The second line of first set of main fields of the persistent display; applies to "Show"</description>
+ </element>
+ <element name="mainField3">
+ <description>The first line of second set of main fields of persistent display; applies to "Show"</description>
+ </element>
+ <element name="mainField4">
+ <description>The second line of second set of main fields of the persistent display; applies to "Show"</description>
+ </element>
+ <element name="statusBar">
+ <description>The status bar on NGN; applies to "Show"</description>
+ </element>
+ <element name="mediaClock">
+ <description>Text value for MediaClock field; applies to "Show"</description>
+ </element>
+ <element name="mediaTrack">
+ <description>The track field of NGN and GEN1.1 MFD displays. This field is only available for media applications; applies to "Show"</description>
+ </element>
+ <element name="alertText1">
+ <description>The first line of the alert text field; applies to "Alert"</description>
+ </element>
+ <element name="alertText2">
+ <description>The second line of the alert text field; applies to "Alert"</description>
+ </element>
+ <element name="alertText3">
+ <description>The third line of the alert text field; applies to "Alert"</description>
+ </element>
+ <element name="scrollableMessageBody">
+ <description>Long form body of text that can include newlines and tabs; applies to "ScrollableMessage"</description>
+ </element>
+ <element name="initialInteractionText">
+ <description> First line suggestion for a user response (in the case of VR enabled interaction</description>
+ </element>
+ <element name="navigationText1">
+ <description> First line of navigation text</description>
+ </element>
+ <element name="navigationText2">
+ <description> Second line of navigation text</description>
+ </element>
+ <element name="ETA">
+ <description> Estimated Time of Arrival time for navigation</description>
+ </element>
+ <element name="totalDistance">
+ <description> Total distance to destination for navigation</description>
+ </element>
+ <element name="navigationText">
+ <description>Navigation text for UpdateTurnList.</description>
+ </element>
+ <element name="audioPassThruDisplayText1">
+ <description> First line of text for audio pass thru</description>
+ </element>
+ <element name="audioPassThruDisplayText2">
+ <description> Second line of text for audio pass thru</description>
+ </element>
+ <element name="sliderHeader">
+ <description> Header text for slider</description>
+ </element>
+ <element name="sliderFooter">
+ <description> Footer text for slider</description>
+ </element>
+ <element name="notificationText">
+ <description>Text of notification to be displayed on screen.</description>
+ </element>
+ <element name="menuName">
+ <description> Primary text for Choice</description>
+ </element>
+ <element name="secondaryText">
+ <description> Secondary text for Choice</description>
+ </element>
+ <element name="tertiaryText">
+ <description> Tertiary text for Choice</description>
+ </element>
+ <element name="timeToDestination"/>
+ <!-- TO DO to be removed -->
+ <element name="turnText"/>
+</enum>
+
+<enum name="ImageFieldName">
+ <element name="softButtonImage">
+ <description>The image field for SoftButton</description>
+ </element>
+ <element name="choiceImage">
+ <description>The first image field for Choice</description>
+ </element>
+ <element name="choiceSecondaryImage">
+ <description>The secondary image field for Choice</description>
+ </element>
+ <element name="vrHelpItem">
+ <description>The image field for vrHelpItem</description>
+ </element>
+ <element name="turnIcon">
+ <description>The image field for Turn</description>
+ </element>
+ <element name="menuIcon">
+ <description>The image field for the menu icon in SetGlobalProperties</description>
+ </element>
+ <element name="cmdIcon">
+ <description>The image field for AddCommand</description>
+ </element>
+ <element name="appIcon">
+ <description>The image field for the app icon (set by setAppIcon)</description>
+ </element>
+ <element name="graphic">
+ <description>The image field for Show</description>
+ </element>
+ <element name="showConstantTBTIcon">
+ <description>The primary image field for ShowConstantTBT</description>
+ </element>
+ <element name="showConstantTBTNextTurnIcon">
+ <description>The secondary image field for ShowConstantTBT</description>
+ </element>
+</enum>
+
+<enum name="TextAlignment">
+ <description>The list of possible alignments, left, right, or centered</description>
+ <element name="LEFT_ALIGNED" />
+ <element name="RIGHT_ALIGNED" />
+ <element name="CENTERED" />
+</enum>
+
+<enum name="DriverDistractionState">
+ <description>Enumeration that describes possible states of driver distraction.</description>
+ <element name="DD_ON" />
+ <element name="DD_OFF" />
+</enum>
+
+<enum name="MediaClockFormat">
+ <element name="CLOCK1">
+ <description>
+ minutesFieldWidth = 2;minutesFieldMax = 19;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 19;maxMinutes = 59;maxSeconds = 59;
+ Is used for Type II, NGN and CID head units.
+ </description>
+ </element>
+ <element name="CLOCK2">
+ <description>
+ minutesFieldWidth = 3;minutesFieldMax = 199;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 59;maxMinutes = 59;maxSeconds = 59;
+ Is used for Type V head units.
+ </description>
+ </element>
+ <element name="CLOCK3">
+ <description>
+ minutesFieldWidth = 2;minutesFieldMax = 59;secondsFieldWidth = 2;secondsFieldMax = 59;maxHours = 9;maxMinutes = 59;maxSeconds = 59;
+ Is used for GEN1.1 (i.e. MFD3/4/5) head units.
+ </description>
+ </element>
+ <element name="CLOCKTEXT1">
+ <description>
+ 5 characters possible
+ Format: 1|sp c :|sp c c
+ 1|sp : digit "1" or space
+ c : character out of following character set: sp|0-9|[letters
+ :|sp : colon or space
+ Is used for Type II head unit
+ </description>
+ </element>
+ <element name="CLOCKTEXT2">
+ <description>
+ 5 chars possible
+ Format: 1|sp c :|sp c c
+ 1|sp : digit "1" or space
+ c : character out of following character set: sp|0-9|[letters
+ :|sp : colon or space
+ Is used for CID and NGN head unit
+ </description>
+ </element>
+ <element name="CLOCKTEXT3">
+ <description>
+ 6 chars possible
+ Format: 1|sp c c :|sp c c
+ 1|sp : digit "1" or space
+ c : character out of following character set: sp|0-9|[letters
+ :|sp : colon or space
+ Is used for Type V head unit
+ </description>
+ </element>
+ <element name="CLOCKTEXT4">
+ <description>
+ 6 chars possible
+ Format: c :|sp c c : c c
+ :|sp : colon or space
+ c : character out of following character set: sp|0-9|[letters].
+ Is used for GEN1.1 (i.e. MFD3/4/5) head units
+ </description>
+ </element>
+</enum>
+
+<!--IVI part-->
+<enum name="ComponentVolumeStatus">
+ <description>The volume status of a vehicle component.</description>
+ <element name="UNKNOWN" internal_name="CVS_UNKNOWN">
+ <description> The data is unknown.</description>
+ </element>
+ <element name="NORMAL" internal_name="CVS_NORMAL">
+ <description> The volume is normal.</description>
+ </element>
+ <element name="LOW" internal_name="CVS_LOW">
+ <description> The volume is low.</description>
+ </element>
+ <element name="FAULT" internal_name="CVS_FAULT">
+ <description> The module/sensor is currently faulted. </description>
+ </element>
+ <element name="ALERT" internal_name="CVS_ALERT">
+ <description> The component`s volume is in critical level.</description>
+ </element>
+ <element name="NOT_SUPPORTED" internal_name="CVS_NOT_SUPPORTED">
+ <description> The data is not supported.</description>
+ </element>
+</enum>
+
+<enum name="PRNDL">
+ <description>The selected gear.</description>
+ <element name="PARK">
+ <description>Parking</description>
+ </element>
+ <element name="REVERSE">
+ <description>Reverse gear</description>
+ </element>
+ <element name="NEUTRAL">
+ <description>No gear</description>
+ </element>
+ <element name="DRIVE">
+ </element>
+ <element name="SPORT">
+ <description>Drive Sport mode</description>
+ </element>
+ <element name="LOWGEAR">
+ <description>1st gear hold</description>
+ </element>
+ <element name="FIRST">
+ </element>
+ <element name="SECOND">
+ </element>
+ <element name="THIRD">
+ </element>
+ <element name="FOURTH">
+ </element>
+ <element name="FIFTH">
+ </element>
+ <element name="SIXTH">
+ </element>
+ <element name="SEVENTH">
+ </element>
+ <element name="EIGHTH">
+ </element>
+ <element name="FAULT">
+ </element>
+</enum>
+
+<enum name="VehicleDataEventStatus">
+ <description>Reflects the status of a vehicle data event; e.g. a seat belt event status.</description>
+ <element name="NO_EVENT" internal_name="VDES_NO_EVENT">
+ <description> The system does not have the adequate information to send valid YES or NO states.</description>
+ </element>
+ <element name="NO" internal_name="VDES_NO">
+ <description> The requested event is in NO state.</description>
+ </element>
+ <element name="YES" internal_name="VDES_YES">
+ <description> The requested event is in YES state.</description>
+ </element>
+ <element name="NOT_SUPPORTED" internal_name="VDES_NOT_SUPPORTED">
+ <description> The requested data is not supported </description>
+ </element>
+ <element name="FAULT" internal_name="VDES_FAULT">
+ <description> The module/sensor is currently faulted.</description>
+ </element>
+</enum>
+
+<enum name="VehicleDataStatus">
+ <description>Reflects the status of a binary vehicle data item.</description>
+ <element name="NO_DATA_EXISTS" internal_name="VDS_NO_DATA_EXISTS">
+ </element>
+ <element name="OFF" internal_name="VDS_OFF">
+ </element>
+ <element name="ON" internal_name="VDS_ON">
+ </element>
+</enum>
+
+<enum name="IgnitionStableStatus">
+ <description>Reflects the ignition switch stability.</description>
+ <element name="IGNITION_SWITCH_NOT_STABLE">
+ </element>
+ <element name="IGNITION_SWITCH_STABLE">
+ </element>
+ <element name="MISSING_FROM_TRANSMITTER">
+ <description> Either the data is not accessible or the sensor is broken.</description>
+ </element>
+</enum>
+
+<enum name="IgnitionStatus">
+ <description>Reflects the status of ignition.</description>
+ <element name="UNKNOWN" internal_name="IS_UNKNOWN">
+ <description> The information is not acceptable. </description>
+ </element>
+ <element name="OFF" internal_name="IS_OFF">
+ <description> The ignition is off.</description>
+ </element>
+ <element name="ACCESSORY" internal_name="IS_ACCESSORY">
+ <description> The accessories are active (power windows, audio, display, etc.).</description>
+ </element>
+ <element name="RUN" internal_name="IS_RUN">
+ <description> Ignition is active.</description>
+ </element>
+ <element name="START" internal_name="IS_START">
+ <description> Starter is switched.</description>
+ </element>
+ <element name="INVALID" internal_name="IS_INVALID">
+ <description> The data is provided, but there is some sort of fault or problem.</description>
+ </element>
+</enum>
+
+<enum name="DeviceLevelStatus">
+ <description>Reflects the reported component status of the connected device, if reported.</description>
+ <element name="ZERO_LEVEL_BARS">
+ </element>
+ <element name="ONE_LEVEL_BARS">
+ </element>
+ <element name="TWO_LEVEL_BARS">
+ </element>
+ <element name="THREE_LEVEL_BARS">
+ </element>
+ <element name="FOUR_LEVEL_BARS">
+ </element>
+ <element name="NOT_PROVIDED">
+ </element>
+</enum>
+
+<enum name="PrimaryAudioSource">
+ <description>Reflects the current primary audio source (if selected).</description>
+ <element name="NO_SOURCE_SELECTED">
+ </element>
+ <element name="USB">
+ </element>
+ <element name="USB2">
+ </element>
+ <element name="BLUETOOTH_STEREO_BTST">
+ </element>
+ <element name="LINE_IN">
+ </element>
+ <element name="IPOD">
+ </element>
+ <element name="MOBILE_APP">
+ </element>
+</enum>
+
+<enum name="CompassDirection">
+ <description>The list of potential compass directions</description>
+ <element name="NORTH">
+ </element>
+ <element name="NORTHWEST">
+ </element>
+ <element name="WEST">
+ </element>
+ <element name="SOUTHWEST">
+ </element>
+ <element name="SOUTH">
+ </element>
+ <element name="SOUTHEAST">
+ </element>
+ <element name="EAST">
+ </element>
+ <element name="NORTHEAST">
+ </element>
+</enum>
+
+<enum name="Dimension">
+ <description>The supported dimensions of the GPS</description>
+ <element name="NO_FIX" internal_name="Dimension_NO_FIX">
+ <description>No GPS at all</description>
+ </element>
+ <element name="2D" internal_name="Dimension_2D">
+ <description>Longitude and lattitude</description>
+ </element>
+ <element name="3D" internal_name="Dimension_3D">
+ <description>Longitude and lattitude and altitude</description>
+ </element>
+</enum>
+
+<enum name="TouchType">
+ <element name="BEGIN"/>
+ <element name="MOVE"/>
+ <element name="END"/>
+</enum>
+
+<enum name="WarningLightStatus">
+ <description>Reflects the status of a cluster instrument warning light.</description>
+ <element name="OFF" internal_name="WLS_OFF">
+ </element>
+ <element name="ON" internal_name="WLS_ON">
+ </element>
+ <element name="FLASH" internal_name="WLS_FLASH">
+ </element>
+ <element name="NOT_USED" internal_name="WLS_NOT_USED">
+ </element>
+</enum>
+
+<enum name="VehicleDataResultCode">
+ <description>Enumeration that describes possible result codes of a vehicle data entry request.</description>
+ <element name="SUCCESS" internal_name="VDRC_SUCCESS"/>
+ <element name="TRUNCATED_DATA" internal_name="VDRC_TRUNCATED_DATA"/>
+ <element name="DISALLOWED" internal_name="VDRC_DISALLOWED"/>
+ <element name="USER_DISALLOWED" internal_name="VDRC_USER_DISALLOWED"/>
+ <element name="INVALID_ID" internal_name="VDRC_INVALID_ID"/>
+ <element name="VEHICLE_DATA_NOT_AVAILABLE" internal_name="VDRC_DATA_NOT_AVAILABLE"/>
+ <element name="DATA_ALREADY_SUBSCRIBED" internal_name="VDRC_DATA_ALREADY_SUBSCRIBED"/>
+ <element name="DATA_NOT_SUBSCRIBED" internal_name="VDRC_DATA_NOT_SUBSCRIBED"/>
+ <element name="IGNORED" internal_name="VDRC_IGNORED"/>
+</enum>
+
+<enum name="VehicleDataType">
+ <description>Defines the data types that can be published and subscribed to.</description>
+ <element name="VEHICLEDATA_GPS">
+ <description>Notifies GPSData may be subscribed</description>
+ </element>
+ <element name="VEHICLEDATA_SPEED" />
+ <element name="VEHICLEDATA_RPM" />
+ <element name="VEHICLEDATA_FUELLEVEL" />
+ <element name="VEHICLEDATA_FUELLEVEL_STATE" />
+ <element name="VEHICLEDATA_FUELCONSUMPTION" />
+ <element name="VEHICLEDATA_EXTERNTEMP" />
+ <element name="VEHICLEDATA_VIN" />
+ <element name="VEHICLEDATA_PRNDL" />
+ <element name="VEHICLEDATA_TIREPRESSURE" />
+ <element name="VEHICLEDATA_ODOMETER" />
+ <element name="VEHICLEDATA_BELTSTATUS" />
+ <element name="VEHICLEDATA_BODYINFO" />
+ <element name="VEHICLEDATA_DEVICESTATUS" />
+ <element name="VEHICLEDATA_ECALLINFO" />
+ <element name="VEHICLEDATA_AIRBAGSTATUS" />
+ <element name="VEHICLEDATA_EMERGENCYEVENT" />
+ <element name="VEHICLEDATA_CLUSTERMODESTATUS" />
+ <element name="VEHICLEDATA_MYKEY" />
+ <element name="VEHICLEDATA_BRAKING" />
+ <element name="VEHICLEDATA_WIPERSTATUS" />
+ <element name="VEHICLEDATA_HEADLAMPSTATUS" />
+ <element name="VEHICLEDATA_BATTVOLTAGE" />
+ <element name="VEHICLEDATA_ENGINETORQUE" />
+ <element name="VEHICLEDATA_ACCPEDAL" />
+ <element name="VEHICLEDATA_STEERINGWHEEL" />
+</enum>
+
+<enum name="WiperStatus">
+ <description>Reflects the status of the wipers.</description>
+ <element name="OFF">
+ <description> The wipers are off.</description>
+ </element>
+ <element name="AUTO_OFF">
+ <description> The wipers are automatically off </description>
+ </element>
+ <element name="OFF_MOVING">
+ <description> Means that though set to off, somehow the wipers have been engaged (physically moved enough to engage a wiping motion).</description>
+ </element>
+ <element name="MAN_INT_OFF">
+ <description> The wipers are manually off after having been working.</description>
+ </element>
+ <element name="MAN_INT_ON">
+ <description> The wipers are manually on.</description>
+ </element>
+ <element name="MAN_LOW">
+ <description> The wipers are manually set to low speed.</description>
+ </element>
+ <element name="MAN_HIGH">
+ <description> The wipers are manually set to high speed.</description>
+ </element>
+ <element name="MAN_FLICK">
+ <description> The wipers are manually set for doing a flick.</description>
+ </element>
+ <element name="WASH">
+ <description> The wipers are set to use the water from vehicle washer bottle for cleaning the windscreen.</description>
+ </element>
+ <element name="AUTO_LOW">
+ <description> The wipers are automatically set to low speed.</description>
+ </element>
+ <element name="AUTO_HIGH">
+ <description> The wipers are automatically set to high speed.</description>
+ </element>
+ <element name="COURTESYWIPE">
+ <description> This is for when a user has just initiated a WASH and several seconds later a secondary wipe is automatically initiated to clear remaining fluid.</description>
+ </element>
+ <element name="AUTO_ADJUST">
+ <description> This is set as the user moves between possible automatic wiper speeds.</description>
+ </element>
+ <element name="STALLED">
+ <description> The wiper is stalled to its place. </description>
+ </element>
+ <element name="NO_DATA_EXISTS">
+ <description> The sensor / module cannot provide any information for wiper.</description>
+ </element>
+</enum>
+
+<enum name="SamplingRate">
+ <description>Describes different sampling options for PerformAudioPassThru.</description>
+ <element name="8KHZ" internal_name="RATE_8KHZ"/>
+ <element name="16KHZ" internal_name="RATE_16KHZ"/>
+ <element name="22KHZ" internal_name="RATE_22KHZ"/>
+ <element name="44KHZ" internal_name="RATE_44KHZ"/>
+</enum>
+
+<enum name="BitsPerSample">
+ <description>Describes different quality options for PerformAudioPassThru.</description>
+ <element name="8_BIT" internal_name="RATE_8_BIT"/>
+ <element name="16_BIT" internal_name="RATE_16_BIT"/>
+</enum>
+
+<enum name="AudioType">
+ <description>Describes different audio type options for PerformAudioPassThru.</description>
+ <element name="PCM" />
+</enum>
+
+<enum name="KeyboardLayout">
+ <description>Enumeration listing possible keyboard layouts.</description>
+ <element name="QWERTY" />
+ <element name="QWERTZ" />
+ <element name="AZERTY" />
+</enum>
+
+<enum name="KeyboardEvent">
+ <description>Enumeration listing possible keyboard events.</description>
+ <element name="KEYPRESS" />
+ <element name="ENTRY_SUBMITTED" />
+ <element name="ENTRY_CANCELLED" />
+ <element name="ENTRY_ABORTED" />
+</enum>
+
+<enum name="KeypressMode">
+ <description>Enumeration listing possible keyboard events.</description>
+ <element name="SINGLE_KEYPRESS">
+ <description>Each keypress is individually sent as the user presses the keyboard keys.</description>
+ </element>
+ <element name="QUEUE_KEYPRESSES">
+ <description>The keypresses are queued and a string is eventually sent once the user chooses to submit their entry.</description>
+ </element>
+ <element name="RESEND_CURRENT_ENTRY">
+ <description>The keypresses are queue and a string is sent each time the user presses a keyboard key; the string contains the entire current entry.</description>
+ </element>
+</enum>
+
+<enum name="AmbientLightStatus">
+ <description>Reflects the status of the ambient light sensor.</description>
+ <element name="NIGHT" />
+ <element name="TWILIGHT_1" />
+ <element name="TWILIGHT_2" />
+ <element name="TWILIGHT_3" />
+ <element name="TWILIGHT_4" />
+ <element name="DAY" />
+ <element name="UNKNOWN" />
+ <element name="INVALID" />
+</enum>
+
+<enum name="FileType">
+ <description>Enumeration listing possible file types.</description>
+ <element name="GRAPHIC_BMP" />
+ <element name="GRAPHIC_JPEG" />
+ <element name="GRAPHIC_PNG" />
+ <element name="AUDIO_WAVE" />
+ <element name="AUDIO_MP3" />
+ <element name="AUDIO_AAC" />
+ <element name="BINARY" />
+ <element name="JSON" />
+</enum>
+
+<enum name="RequestType">
+ <description>Enumeration listing possible asynchronous requests.</description>
+ <element name="HTTP" />
+ <element name="FILE_RESUME" />
+ <element name="AUTH_REQUEST" />
+ <element name="AUTH_CHALLENGE" />
+ <element name="AUTH_ACK" />
+ </enum>
+
+<enum name="ECallConfirmationStatus">
+ <description>Reflects the status of the eCall Notification.</description>
+ <element name="NORMAL" internal_name="ECCS_NORMAL">
+ </element>
+ <element name="CALL_IN_PROGRESS" internal_name="ECCS_CALL_IN_PROGRESS">
+ </element>
+ <element name="CALL_CANCELLED" internal_name="ECCS_CALL_CANCELLED">
+ </element>
+ <element name="CALL_COMPLETED">
+ </element>
+ <element name="CALL_UNSUCCESSFUL" internal_name="ECCS_CALL_UNSUCCESSFUL">
+ </element>
+ <element name="ECALL_CONFIGURED_OFF" internal_name="ECCS_ECALL_CONFIGURED_OFF">
+ </element>
+ <element name="CALL_COMPLETE_DTMF_TIMEOUT" internal_name="ECCS_CALL_COMPLETE_DTMF_TIMEOUT">
+ </element>
+</enum>
+
+<enum name="VehicleDataNotificationStatus">
+ <description>Reflects the status of a vehicle data notification.</description>
+ <element name="NOT_SUPPORTED" internal_name="VDNS_NOT_SUPPORTED">
+ </element>
+ <element name="NORMAL" internal_name="VDNS_NORMAL">
+ </element>
+ <element name="ACTIVE" internal_name="VDNS_ACTIVE">
+ </element>
+ <element name="NOT_USED" internal_name="VDNS_NOT_USED">
+ </element>
+</enum>
+
+<enum name="EmergencyEventType">
+ <description>Reflects the emergency event status of the vehicle.</description>
+ <element name="NO_EVENT" internal_name="EET_NO_EVENT">
+ </element>
+ <element name="FRONTAL" internal_name="EET_FRONTAL">
+ </element>
+ <element name="SIDE" internal_name="EET_SIDE">
+ </element>
+ <element name="REAR" internal_name="EET_REAR">
+ </element>
+ <element name="ROLLOVER" internal_name="EET_ROLLOVER">
+ </element>
+ <element name="NOT_SUPPORTED" internal_name="EET_NOT_SUPPORTED">
+ </element>
+ <element name="FAULT" internal_name="EET_FAULT">
+ </element>
+</enum>
+
+<enum name="FuelCutoffStatus">
+ <description>Reflects the status of the RCM fuel cutoff.</description>
+ <element name="TERMINATE_FUEL" internal_name="FCS_TERMINATE_FUEL">
+ </element>
+ <element name="NORMAL_OPERATION" internal_name="FCS_NORMAL_OPERATION">
+ </element>
+ <element name="FAULT" internal_name="FCS_FAULT">
+ </element>
+</enum>
+
+<enum name="PowerModeQualificationStatus">
+ <description>Reflects the status of the current power mode qualification.</description>
+ <element name="POWER_MODE_UNDEFINED">
+ </element>
+ <element name="POWER_MODE_EVALUATION_IN_PROGRESS">
+ </element>
+ <element name="NOT_DEFINED">
+ </element>
+ <element name="POWER_MODE_OK">
+ </element>
+</enum>
+
+<enum name="CarModeStatus">
+ <description>Reflects the status of the current car mode.</description>
+ <element name="NORMAL" internal_name="CMS_NORMAL">
+ </element>
+ <element name="FACTORY" internal_name="CMS_FACTORY">
+ </element>
+ <element name="TRANSPORT" internal_name="CMS_TRANSPORT">
+ </element>
+ <element name="CRASH" internal_name="CMS_CRASH">
+ </element>
+</enum>
+
+<enum name="PowerModeStatus">
+ <description>Reflects the status of the current power mode.</description>
+ <element name="KEY_OUT">
+ </element>
+ <element name="KEY_RECENTLY_OUT">
+ </element>
+ <element name="KEY_APPROVED_0">
+ </element>
+ <element name="POST_ACCESORY_0">
+ </element>
+ <element name="ACCESORY_1">
+ </element>
+ <element name="POST_IGNITION_1">
+ </element>
+ <element name="IGNITION_ON_2">
+ </element>
+ <element name="RUNNING_2">
+ </element>
+ <element name="CRANK_3">
+ </element>
+</enum>
+
+<!-- End of IVI part-->
+
+<struct name="ButtonCapabilities">
+ <description>Contains the information about capabilities of a button.</description>
+ <param name="name" type="Common.ButtonName" mandatory="true">
+ <description>The name of the Button from the ButtonName enum</description>
+ </param>
+ <param name="shortPressAvailable" type="Boolean" mandatory="true">
+ <description>The button supports a short press. Whenever the button is pressed short, onButtonPressed(SHORT) should be invoked.</description>
+ </param>
+ <param name="longPressAvailable" type="Boolean" mandatory="true">
+ <description>The button supports a LONG press. Whenever the button is pressed long, onButtonPressed(LONG) should be invoked.</description>
+ </param>
+ <param name="upDownAvailable" type="Boolean" mandatory="true">
+ <description>The button supports "button down" and "button up". Whenever the button is pressed, onButtonEvent(DOWN) should be invoked. Whenever the button is released, onButtonEvent(UP) should be invoked.</description>
+ </param>
+</struct>
+
+<struct name="VehicleDataResult">
+ <description>Individual published data request result</description>
+ <param name="dataType" type="Common.VehicleDataType">
+ <description>Defined published data element type.</description>
+ </param>
+ <param name="resultCode" type="Common.VehicleDataResultCode">
+ <description>Published data result code.</description>
+ </param>
+</struct>
+
+<struct name="TouchCoord">
+ <param name="x" type="Integer" mandatory="true" minvalue="0" maxvalue="10000">
+ <description>The x coordinate of the touch.</description>
+ </param>
+ <param name="y" type="Integer" mandatory="true" minvalue="0" maxvalue="10000">
+ <description>The y coordinate of the touch.</description>
+ </param>
+</struct>
+
+<struct name="TouchEvent">
+ <param name="id" type="Integer" mandatory="true" minvalue="0" maxvalue="9">
+ <description>
+ A touch's unique identifier. The application can track the current touch events by id.
+ If a touch event has type begin, the id should be added to the set of touches.
+ If a touch event has type end, the id should be removed from the set of touches.
+ </description>
+ </param>
+ <param name="ts" type="Integer" mandatory="true" array="true" minvalue="0" maxvalue="2147483647" minsize="1" maxsize="1000">
+ <description>
+ The time that the touch was recorded. This number can the time since the beginning of the session or something else as long as the units are in milliseconds.
+ The timestamp is used to determined the rate of change of position of a touch.
+ The application also uses the time to verify whether two touches, with different ids, are part of a single action by the user.
+ If there is only a single timestamp in this array, it is the same for every coordinate in the coordinates array.
+ </description>
+ </param>
+ <param name="c" type="Common.TouchCoord" mandatory="true" array="true" minsize="1" maxsize="1000">
+ </param>
+</struct>
+
+<struct name="PresetBankCapabilities">
+ <description>Contains information about on-screen preset capabilities (whether the HW preset buttons could be duplicated with onscreen buttons).</description>
+ <param name="onScreenPresetsAvailable" type="Boolean" mandatory="true">
+ <description>Must be true if onscreen custom presets are available.</description>
+ </param>
+</struct>
+
+<struct name="Image">
+ <param name="value" maxlength="65535" type="String" mandatory="true">
+ <description>The path to the dynamic image stored on HU or the static binary image itself.</description>
+ </param>
+ <param name="imageType" type="Common.ImageType" mandatory="true">
+ <description>Describes, whether it is a static or dynamic image.</description>
+ </param>
+</struct>
+
+<struct name="SoftButton">
+ <param name="type" type="Common.SoftButtonType" mandatory="true">
+ <description>Describes, whether text, icon or both text and image should be displayed on the soft button. See softButtonType</description>
+ </param>
+ <param name="text" maxlength="500" type="String" mandatory="false">
+ <description>Optional text to be displayed (if defined as TEXT or BOTH)</description>
+ </param>
+ <param name="image" type="Common.Image" mandatory="false">
+ <description>Optional image struct for SoftButton (if defined as IMAGE or BOTH)</description>
+ </param>
+ <param name="isHighlighted" type="Boolean" mandatory="false">
+ <description>If true, must be highlighted</description>
+ <description>If false, must be not</description>
+ </param>
+ <param name="softButtonID" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Value which must be returned via OnButtonPress / OnButtonEvent</description>
+ </param>
+ <param name="systemAction" type="Common.SystemAction" mandatory="false">
+ <description>Parameter indicates whether clicking a SoftButton must call a specific system action. See SystemAction</description>
+ </param>
+ </struct>
+
+<struct name="TTSChunk">
+ <description>A TTS chunk, that consists of the text/phonemes to be spoken</description>
+ <param name="text" type="String" mandatory="true" maxlength="500">
+ <description>The text or phonemes to be spoken.</description>
+ </param>
+ <param name="type" type="Common.SpeechCapabilities" mandatory="true">
+ <description>Describes, whether it is text or a specific phoneme set. See SpeechCapabilities.</description>
+ </param>
+</struct>
+
+<struct name="HMIApplication">
+ <description>Data type containing information about application needed by HMI.</description>
+ <param name="appName" type="String" maxlength="100" mandatory="true">
+ <description>The mobile application name, e.g. "Ford Drive Green".</description>
+ </param>
+ <param name="ngnMediaScreenAppName" type="String" maxlength="100" mandatory="false">
+ <description>Provides an abbreviated version of the app name (if needed), that may be displayed on the NGN media screen.</description>
+ <description>If not provided, the appName should be used instead (and may be truncated if too long)</description>
+ </param>
+ <param name="icon" type="String" mandatory="false">
+ <description>Path to application icon stored on HU.</description>
+ </param>
+ <param name="deviceName" type="String" mandatory="true">
+ <description>The name of device which the provided application is running on.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>Unique (during ignition cycle) id of the application. To be used in all RPCs sent by both HU system and SDL</description>
+ </param>
+ <param name="hmiDisplayLanguageDesired" type="Common.Language" mandatory="true">
+ <description>The language the application intends to use on HU </description>
+ </param>
+ <param name="isMediaApplication" type="Boolean" mandatory="true">
+ <description>Indicates whether it is a media or a non-media application.</description>
+ </param>
+ <param name="appType" type="Common.AppHMIType" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>List of all applicable app types stating which classifications to be given to the app.</description>
+ <description>e.g. for platforms like GEN2, this determines which "corner(s)" the app can populate.</description>
+ </param>
+</struct>
+
+<struct name="MenuParams">
+ <param name="parentID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
+ <description>unique ID of the sub menu, the command must be added to.</description>
+ <description>If not provided, the command must be added to the top level of the in application menu.</description>
+ </param>
+ <param name="position" type="Integer" minvalue="0" maxvalue="1000" mandatory="false">
+ <description>Position within the items that are at the top level of the in application menu.</description>
+ <description>0 should insert at the front.</description>
+ <description>1 should insert at the second position.</description>
+ <description>if position is greater than or equal to the number of items on the top level, the the sub menu/command should be appended to the end.</description>
+ <description>If this param is omitted the entry should be added at the end.</description>
+ </param>
+ <param name="menuName" type="String" maxlength="500" mandatory="true">
+ <description>The name of the sub menu/command.</description>
+ </param>
+</struct>
+
+<struct name="Choice">
+ <description>A choice is an option given to the user which can be selected either by menu, or through voice recognition system.</description>
+ <param name="choiceID" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description> The unique within the concerned application identifier for this choice </description>
+ </param>
+ <param name="menuName" type="String" maxlength="500" mandatory="false">
+ <description> The name of the choice </description>
+ </param>
+ <param name="image" type="Common.Image" mandatory="false">
+ <description> The image for representing the choice </description>
+ </param>
+ <param name="secondaryText" maxlength="500" type="String" mandatory="false">
+ <description>Optional secondary text to display; e.g. address of POI in a search result entry</description>
+ </param>
+ <param name="tertiaryText" maxlength="500" type="String" mandatory="false">
+ <description>Optional tertiary text to display; e.g. distance to POI for a search result entry</description>
+ </param>
+ <param name="secondaryImage" type="Image" mandatory="false">
+ <description>Optional secondary image struct for choice</description>
+ </param>
+</struct>
+
+<struct name="VrHelpItem">
+ <param name="text" maxlength="500" type="String" mandatory="true">
+ <description>Text to display for VR Help item</description>
+ </param>
+ <param name="image" type="Common.Image" mandatory="false">
+ <description>Image struct for VR Help item</description>
+ </param>
+ <param name="position" type="Integer" minvalue="1" maxvalue="100" mandatory="true">
+ <description>Position to display item in VR Help list</description>
+ </param>
+</struct>
+
+<struct name="TimeFormat">
+ <param name="hours" type="Integer" minvalue="0" maxvalue="59" mandatory="true">
+ <description>The hour of the media clock.</description>
+ <description>Some units only support a max of 19 hours. If out of range, it should be rejected.</description>
+ </param>
+ <param name="minutes" type="Integer" minvalue="0" maxvalue="59" mandatory="true"/>
+ <param name="seconds" type="Integer" minvalue="0" maxvalue="59" mandatory="true"/>
+</struct>
+
+<struct name="TouchEventCapabilities">
+ <param name="pressAvailable" type="Boolean" mandatory="true">
+ </param>
+ <param name="multiTouchAvailable" type="Boolean" mandatory="true">
+ </param>
+ <param name="doublePressAvailable" type="Boolean" mandatory="true">
+ </param>
+</struct>
+
+<struct name="ImageResolution">
+ <param name="resolutionWidth" type="Integer" minvalue="1" maxvalue="10000" mandatory="true">
+ <description>The image resolution width.</description>
+ </param>
+ <param name="resolutionHeight" type="Integer" minvalue="1" maxvalue="10000" mandatory="true">
+ <description>The image resolution height.</description>
+ </param>
+</struct>
+
+<struct name="ScreenParams">
+ <param name="resolution" type="Common.ImageResolution" mandatory="true">
+ <description>The resolution of the prescribed screen area.</description>
+ </param>
+ <param name="touchEventAvailable" type="Common.TouchEventCapabilities" mandatory="false">
+ <description>Types of screen touch events available in screen area.</description>
+ </param>
+</struct>
+
+<struct name="ImageField">
+ <param name="name" type="Common.ImageFieldName" mandatory="true">
+ <description>The name that identifies the field. See ImageFieldName.</description>
+ </param>
+ <param name="imageTypeSupported" type="Common.FileType" maxsize="100" array="true" mandatory="false" minsize="1">
+ <description>The image types that are supported in this field. See FileType.</description>
+ </param>
+ <param name="imageResolution" type="Common.ImageResolution" mandatory="false">
+ <description>The image resolution of this field.</description>
+ </param>
+</struct>
+
+<struct name="DisplayCapabilities">
+ <description>Contains information about the display capabilities.</description>
+ <param name="displayType" type="Common.DisplayType" mandatory="true">
+ <description>The type of the display. See DisplayType</description>
+ </param>
+ <param name="textFields" type="Common.TextFieldName" minsize="0" maxsize="100" array="true" mandatory="true">
+ <description>A set of all fields for text displaying supported by HU. See TextFieldName.</description>
+ <description>If there are no textfields supported, the empty array must be returned</description>
+ </param>
+ <param name="imageFields" type="Common.ImageField" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>A set of all fields that support images. See ImageField</description>
+ </param>
+ <param name="mediaClockFormats" type="Common.MediaClockFormat" minsize="1" maxsize="100" array="true" mandatory="true">
+ <description>A set of all supported formats of the media clock. See MediaClockFormat</description>
+ </param>
+ <param name="imageCapabilities" type="Common.ImageType" array="true" minsize="0" maxsize="2" mandatory="false">
+ </param>
+ <param name="graphicSupported" type="Boolean" mandatory="true">
+ <description>The display's persistent screen supports referencing a static or dynamic image.</description>
+ </param>
+ <param name="templatesAvailable" type="String" minsize="0" maxsize="100" maxlength="100" array="true" mandatory="true">
+ <description>A set of all predefined persistent display templates available on headunit. To be referenced in SetDisplayLayout.</description>
+ </param>
+ <param name="screenParams" type="Common.ScreenParams" mandatory="false">
+ <description>A set of all parameters related to a prescribed screen area (e.g. for video / touch input).</description>
+ </param>
+ <param name="numCustomPresetsAvailable" type="Integer" minvalue="1" maxvalue="100" mandatory="false">
+ <description>The number of on-screen custom presets available (if any); otherwise omitted.</description>
+ </param>
+</struct>
+
+<struct name="SoftButtonCapabilities">
+ <description>Contains information about a SoftButton's capabilities.</description>
+ <param name="shortPressAvailable" type="Boolean" mandatory="true">
+ <description>The button supports a short press.</description>
+ <description>Whenever the button is pressed short, onButtonPressed( SHORT) must be invoked.</description>
+ </param>
+ <param name="longPressAvailable" type="Boolean" mandatory="true">
+ <description>The button supports a LONG press.</description>
+ <description>Whenever the button is pressed long, onButtonPressed( LONG) must be invoked.</description>
+ </param>
+ <param name="upDownAvailable" type="Boolean" mandatory="true">
+ <description>The button supports "button down" and "button up".</description>
+ <description>Whenever the button is pressed, onButtonEvent( DOWN) must be invoked.</description>
+ <description>Whenever the button is released, onButtonEvent( UP) must be invoked.</description>
+ </param>
+ <param name="imageSupported" type="Boolean" mandatory="true">
+ <description>Must be true if the button supports referencing a static or dynamic image.</description>
+ </param>
+</struct>
+
+<struct name="AudioPassThruCapabilities">
+ <description>
+ Describes different audio type configurations for PerformAudioPassThru.
+ e.g. 8kHz,8-bit,PCM
+ </description>
+ <param name="samplingRate" type="Common.SamplingRate" mandatory="true"/>
+ <param name="bitsPerSample" type="Common.BitsPerSample" mandatory="true"/>
+ <param name="audioType" type="Common.AudioType" mandatory="true"/>
+</struct>
+
+<struct name="Coordinate">
+ <param name="xCoord" type="Integer" mandatory="true">
+ </param>
+ <param name="yCoord" type="Integer" mandatory="true">
+ </param>
+</struct>
+
+<struct name="TextFieldStruct">
+ <param name="fieldName" type="Common.TextFieldName" mandatory="true">
+ <description>The name of the field for displaying the text.</description>
+ </param>
+ <param name="fieldText" type="String" maxlength="500" mandatory="true">
+ <description>The text itself.</description>
+ </param>
+</struct>
+
+<struct name="KeyboardProperties">
+ <description>Configuration of on-screen keyboard (if available).</description>
+ <param name="language" type="Common.Language" mandatory="false">
+ <description>The keyboard language.</description>
+ </param>
+ <param name="keyboardLayout" type="Common.KeyboardLayout" mandatory="false" >
+ <description>Desired keyboard layout.</description>
+ </param>
+ <param name="keypressMode" type="Common.KeypressMode" mandatory="false" >
+ <description>
+ Desired keypress mode.
+ If omitted, this value will be set to RESEND_CURRENT_ENTRY.
+ </description>
+ </param>
+ <param name="limitedCharacterList" type="String" maxlength="1" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Array of keyboard characters to enable.</description>
+ <description>All omitted characters will be greyed out (disabled) on the keyboard.</description>
+ <description>If omitted, the entire keyboard will be enabled.</description>
+ </param>
+ <param name="autoCompleteText" type="String" maxlength="1000" mandatory="false">
+ <description>Allows an app to prepopulate the text field with a suggested or completed entry as the user types</description>
+ </param>
+</struct>
+
+<struct name="Turn">
+ <param name="navigationText" type="Common.TextFieldStruct" mandatory="false">
+ <description>Uses navigationText from TextFieldStruct.</description>
+ </param>
+ <param name="turnIcon" type="Common.Image" mandatory="false">
+ </param>
+</struct>
+
+<struct name="VehicleType">
+ <param name="make" type="String" maxlength="500" mandatory="false">
+ <description>Make of the vehicle</description>
+ <description>e.g. Ford</description>
+ </param>
+ <param name="model" type="String" maxlength="500" mandatory="false">
+ <description>Model of the vehicle</description>
+ <description>e.g. Fiesta</description>
+ </param>
+ <param name="modelYear" type="String" maxlength="500" mandatory="false">
+ <description>Model Year of the vehicle</description>
+ <description>e.g. 2013</description>
+ </param>
+ <param name="trim" type="String" maxlength="500" mandatory="false">
+ <description>Trim of the vehicle</description>
+ <description>e.g. SE</description>
+ </param>
+</struct>
+
+<struct name="DeviceInfo">
+ <param name="name" type="String" mandatory="true">
+ <description>The name of the device connected.</description>
+ </param>
+ <param name="id" type="Integer" mandatory="true">
+ <description>The ID of the device connected</description>
+ </param>
+</struct>
+
+<!--IVI part-->
+<struct name="GPSData">
+ <description>Struct with the GPS data.</description>
+ <param name="longitudeDegrees" type="Float" minvalue="-180" maxvalue="180" mandatory="false">
+ </param>
+ <param name="latitudeDegrees" type="Float" minvalue="-90" maxvalue="90" mandatory="false">
+ </param>
+ <param name="utcYear" type="Integer" minvalue="2010" maxvalue="2100" mandatory="false">
+ <description>The current UTC year.</description>
+ </param>
+ <param name="utcMonth" type="Integer" minvalue="1" maxvalue="12" mandatory="false">
+ <description>The current UTC month.</description>
+ </param>
+ <param name="utcDay" type="Integer" minvalue="1" maxvalue="31" mandatory="false">
+ <description>The current UTC day.</description>
+ </param>
+ <param name="utcHours" type="Integer" minvalue="0" maxvalue="23" mandatory="false">
+ <description>The current UTC hour.</description>
+ </param>
+ <param name="utcMinutes" type="Integer" minvalue="0" maxvalue="59" mandatory="false">
+ <description>The current UTC minute.</description>
+ </param>
+ <param name="utcSeconds" type="Integer" minvalue="0" maxvalue="59" mandatory="false">
+ <description>The current UTC second.</description>
+ </param>
+ <param name="compassDirection" type="Common.CompassDirection" mandatory="false">
+ <description>See CompassDirection.</description>
+ </param>
+ <param name="pdop" type="Float" minvalue="0" maxvalue="10" mandatory="false">
+ <description>PDOP.</description>
+ </param>
+ <param name="hdop" type="Float" minvalue="0" maxvalue="10" mandatory="false">
+ <description>HDOP.</description>
+ </param>
+ <param name="vdop" type="Float" minvalue="0" maxvalue="10" mandatory="false">
+ <description>VDOP.</description>
+ </param>
+ <param name="actual" type="Boolean" mandatory="false">
+ <description>
+ True, if actual.
+ False, if infered.
+ </description>
+ </param>
+ <param name="satellites" type="Integer" minvalue="0" maxvalue="31" mandatory="false">
+ <description>Number of satellites in view</description>
+ </param>
+ <param name="dimension" type="Common.Dimension" mandatory="false">
+ <description>See Dimension</description>
+ </param>
+ <param name="altitude" type="Float" minvalue="-10000" maxvalue="10000" mandatory="false">
+ <description>Altitude in meters</description>
+ </param>
+ <param name="heading" type="Float" minvalue="0" maxvalue="359.99" mandatory="false">
+ <description>The heading. North is 0. Resolution is 0.01</description>
+ </param>
+ <param name="speed" type="Float" minvalue="0" maxvalue="500" mandatory="false">
+ <description>The speed in KPH</description>
+ </param>
+</struct>
+
+<struct name="SingleTireStatus">
+ <param name="status" type="Common.ComponentVolumeStatus" mandatory="true">
+ <description>The status of component volume. See ComponentVolumeStatus.</description>
+</param>
+</struct>
+
+<struct name="DIDResult">
+ <description>Individual requested DID result and data</description>
+ <param name="resultCode" type="Common.VehicleDataResultCode" mandatory="true">
+ <description>Individual DID result code.</description>
+ </param>
+ <param name="didLocation" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Location of raw data (the address from ReadDID request)</description>
+ </param>
+ <param name="data" type="String" maxlength="5000" mandatory="false">
+ <description>Raw DID-based data returned for requested element.</description>
+ </param>
+</struct>
+
+<struct name="HeadLampStatus">
+ <param name="lowBeamsOn" type="Boolean" mandatory="true">
+ <description>Status of the low beam lamps.</description>
+ </param>
+ <param name="highBeamsOn" type="Boolean" mandatory="true">
+ <description>Status of the high beam lamps.</description>
+ </param>
+ <param name="ambientLightSensorStatus" type="Common.AmbientLightStatus" mandatory="true">
+ <description>Status of the ambient light sensor.</description>
+ </param>
+</struct>
+
+<struct name="TireStatus">
+ <description>The status and pressure of the tires.</description>
+ <param name="pressureTelltale" type="Common.WarningLightStatus" mandatory="false">
+ <description>Status of the Tire Pressure Telltale. See WarningLightStatus.</description>
+ </param>
+ <param name="leftFront" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the left front tire.</description>
+ </param>
+ <param name="rightFront" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the right front tire.</description>
+ </param>
+ <param name="leftRear" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the left rear tire.</description>
+ </param>
+ <param name="rightRear" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the right rear tire.</description>
+ </param>
+ <param name="innerLeftRear" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the inner left rear.</description>
+ </param>
+ <param name="innerRightRear" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the inner right rear.</description>
+ </param>
+</struct>
+
+<struct name="BeltStatus">
+ <param name="driverBeltDeployed" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerBeltDeployed" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerBuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverBuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="leftRow2BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerChildDetected" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="rightRow2BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow2BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow3BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="leftRow3BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="rightRow3BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="leftRearInflatableBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="rightRearInflatableBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow1BeltDeployed" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow1BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+</struct>
+
+<struct name="BodyInformation">
+ <param name="parkBrakeActive" type="Boolean" mandatory="true">
+ <description>Must be true if the park brake is active</description>
+ </param>
+ <param name="ignitionStableStatus" type="Common.IgnitionStableStatus" mandatory="true">
+ <description>Information about the ignition switch. See IgnitionStableStatus.</description>
+ </param>
+ <param name="ignitionStatus" type="Common.IgnitionStatus" mandatory="true">
+ <description>The status of the ignition. See IgnitionStatus.</description>
+ </param>
+ <param name="driverDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatDrv_B_Actl".</description>
+ </param>
+ <param name="passengerDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatPsngr_B_Actl".</description>
+ </param>
+ <param name="rearLeftDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatRl_B_Actl".</description>
+ </param>
+ <param name="rearRightDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatRr_B_Actl".</description>
+ </param>
+</struct>
+
+<struct name="DeviceStatus">
+ <param name="voiceRecOn" type="Boolean" mandatory="false">
+ <description>Must be true if the voice recording is on.</description>
+ </param>
+ <param name="btIconOn" type="Boolean" mandatory="false">
+ <description>Must be true if Bluetooth icon is displayed.</description>
+ </param>
+ <param name="callActive" type="Boolean" mandatory="false">
+ <description>Must be true if there is an active call..</description>
+ </param>
+ <param name="phoneRoaming" type="Boolean" mandatory="false">
+ <description>Must be true if ther is a phone roaming.</description>
+ </param>
+ <param name="textMsgAvailable" type="Boolean" mandatory="false">
+ <description>Must be true if the text message is available.</description>
+ </param>
+ <param name="battLevelStatus" type="Common.DeviceLevelStatus" mandatory="false">
+ <description>Device battery level status. See DeviceLevelStatus.</description>
+ </param>
+ <param name="stereoAudioOutputMuted" type="Boolean" mandatory="false">
+ <description>Must be true if stereo audio output is muted.</description>
+ </param>
+ <param name="monoAudioOutputMuted" type="Boolean" mandatory="false">
+ <description>Must be true if mono audio output is muted.</description>
+ </param>
+ <param name="signalLevelStatus" type="Common.DeviceLevelStatus" mandatory="false">
+ <description>Device signal level status. See DeviceLevelStatus.</description>
+ </param>
+ <param name="primaryAudioSource" type="Common.PrimaryAudioSource" mandatory="false">
+ <description>See PrimaryAudioSource.</description>
+ </param>
+ <param name="eCallEventActive" type="Boolean" mandatory="false">
+ <description>Must be true if emergency call event is active.</description>
+ </param>
+</struct>
+
+<struct name="ECallInfo">
+ <param name="eCallNotificationStatus" type="Common.VehicleDataNotificationStatus">
+ <description>References signal "eCallNotification_4A". See VehicleDataNotificationStatus.</description>
+ </param>
+ <param name="auxECallNotificationStatus" type="Common.VehicleDataNotificationStatus">
+ <description>References signal "eCallNotification". See VehicleDataNotificationStatus.</description>
+ </param>
+ <param name="eCallConfirmationStatus" type="Common.ECallConfirmationStatus">
+ <description>References signal "eCallConfirmation". See ECallConfirmationStatus.</description>
+ </param>
+</struct>
+
+<struct name="AirbagStatus">
+ <param name="driverAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsDrvBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverSideAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsDrvSideBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverCurtainAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsDrvCrtnBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsPasBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerCurtainAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsPasCrtnBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverKneeAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsKneeDrvBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerSideAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsPasSideBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerKneeAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsKneePasBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+</struct>
+
+<struct name="EmergencyEvent">
+ <param name="emergencyEventType" type="Common.EmergencyEventType">
+ <description>References signal "VedsEvntType_D_Ltchd". See EmergencyEventType.</description>
+ </param>
+ <param name="fuelCutoffStatus" type="Common.FuelCutoffStatus">
+ <description>References signal "RCM_FuelCutoff". See FuelCutoffStatus.</description>
+ </param>
+ <param name="rolloverEvent" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsEvntRoll_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="maximumChangeVelocity" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsMaxDeltaV_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="multipleEvents" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsMultiEvnt_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+</struct>
+
+<struct name="ClusterModeStatus">
+ <param name="powerModeActive" type="Boolean">
+ <description>References signal "PowerMode_UB".</description>
+ </param>
+ <param name="powerModeQualificationStatus" type="Common.PowerModeQualificationStatus">
+ <description>References signal "PowerModeQF". See PowerModeQualificationStatus.</description>
+ </param>
+ <param name="carModeStatus" type="Common.CarModeStatus">
+ <description>References signal "CarMode". See CarMode.</description>
+ </param>
+ <param name="powerModeStatus" type="Common.PowerModeStatus">
+ <description>References signal "PowerMode". See PowerMode.</description>
+ </param>
+</struct>
+
+<struct name="MyKey">
+ <param name="e911Override" type="Common.VehicleDataStatus" mandatory="true">
+ <description>Indicates whether e911 override is on. See VehicleDataStatus.</description>
+ </param>
+</struct>
+<!--end of IVI part-->
+
+</interface>
+
+<interface name="Buttons" version="1.0" date="2013-04-12">
+ <function name="GetCapabilities" messagetype="request">
+ <description>Method is invoked at system start-up. SDL requests the information about all supported hardware buttons and their capabilities</description>
+ </function>
+ <function name="GetCapabilities" messagetype="response">
+ <param name="capabilities" type="Common.ButtonCapabilities" array="true" minsize="1" maxsize="100" mandatory="true">
+ <description>Response must provide the names of available buttons and their capabilities.See ButtonCapabilities</description>
+ </param>
+ <param name="presetBankCapabilities" type="Common.PresetBankCapabilities" mandatory="false">
+ <description>Must be returned if the platform supports custom on-screen Presets</description>
+ </param>
+ </function>
+ <function name="OnButtonEvent" messagetype="notification">
+ <description>HU system must notify about every UP/DOWN event for buttons</description>
+ <param name="name" type="Common.ButtonName" mandatory="true"/>
+ <param name="mode" type="Common.ButtonEventMode" mandatory="true">
+ <description>Indicates whether this is an UP or DOWN event.</description>
+ </param>
+ <param name="customButtonID" type="Integer" mandatory="false" minvalue="0" maxvalue="65536">
+ <description>Must be provided if ButtonName is CUSTOM_BUTTON, this references the integer ID passed by a custom button. (e.g. softButtonName)</description>
+ </param>
+ </function>
+ <function name="OnButtonPress" messagetype="notification">
+ <param name="name" type="Common.ButtonName" mandatory="true"/>
+ <param name="mode" type="Common.ButtonPressMode" mandatory="true">
+ <description>Indicates whether this is a LONG or SHORT button press event.</description>
+ </param>
+ <param name="customButtonID" type="Integer" mandatory="false" minvalue="0" maxvalue="65536">
+ <description>Must be returned if ButtonName is CUSTOM_BUTTON, this references the string passed by a custom button. (e.g. softButtonName)</description>
+ </param>
+ </function>
+</interface>
+
+<interface name="BasicCommunication" version="1.0" date="2013-04-12">
+ <function name="OnReady" messagetype="notification">
+ <description>HMI must notify SDL about its readiness to start communication. In fact, this has to be the first message between SDL and HMI.</description>
+ </function>
+ <function name="OnStartDeviceDiscovery" messagetype="notification">
+ <description>Initiated by HMI user for getting the list of connected devices.</description>
+ </function>
+ <function name="UpdateDeviceList" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to change device list.</description>
+ <param name="deviceList" type="Common.DeviceInfo" mandatory="true" array="true" minsize="0" maxsize="100">
+ <description>The array of names/IDs of connected devices</description>
+ </param>
+ </function>
+ <function name="UpdateDeviceList" messagetype="response">
+ </function>
+ <function name="OnUpdateDeviceList" messagetype="notification">
+ <description>Notification from HMI to SDL sent when HMI requires update of device list (i.e. when user clicks 'Change Device' button)</description>
+ </function>
+ <function name="AllowDeviceToConnect" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to get the permissions of new device connection.</description>
+ <param name="device" type="Common.DeviceInfo" mandatory="true"/>
+ </function>
+ <function name="AllowDeviceToConnect" messagetype="response">
+ <param name="allow" type="Boolean" mandatory="true"/>
+ </function>
+ <function name="OnDeviceChosen" messagetype="notification">
+ <description>Notification must be initiated by HMI on user selecting device in the list of devices.</description>
+ <param name="deviceInfo" type="Common.DeviceInfo" mandatory="true">
+ <description>The name and ID of the device chosen</description>
+ </param>
+ </function>
+ <function name="OnFindApplications" messagetype="notification">
+ <description>This method must be invoked by HMI to get list of registered apps.</description>
+ <param name="deviceInfo" type="Common.DeviceInfo" mandatory="false">
+ <description>The name and ID of the device the list of registered applications is required for.</description>
+ </param>
+ </function>
+ <function name="UpdateAppList" messagetype="request">
+ <description>Issued by SDL to notify HMI about new applications registered.</description>
+ <param name="applications" type="Common.HMIApplication" mandatory="true" array="true" minsize="1" maxsize="100"/>
+ </function>
+ <function name="UpdateAppList" messagetype="response">
+ </function>
+ <function name="ActivateApp" messagetype="request">
+ <description>Request from SDL to HMI to bring specified application to front on UI e.g make it HMI status 'FULL'.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of deactivated application.</description>
+ </param>
+ </function>
+ <function name="ActivateApp" messagetype="response">
+ </function>
+ <function name="OnAppActivated" messagetype="notification">
+ <description>Must be sent by HU system when the user clicks on app in the list of registered apps or on soft button with 'STEAL_FOCUS' action.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of selected application.</description>
+ </param>
+ </function>
+ <function name="OnAppDeactivated" messagetype="notification">
+ <description>Must be sent by HU system when the user switches to any functionality which is not other mobile application.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of deactivated application.</description>
+ </param>
+ <param name="reason" type="Common.DeactivateReason" mandatory="true">
+ <description>Specifies the functionality the user has switched to.</description>
+ </param>
+ </function>
+ <function name="OnAppRegistered" messagetype="notification">
+ <description>Issued by SDL to notify HMI about new application registered.</description>
+ <param name="application" type="Common.HMIApplication" mandatory="true">
+ <description>The information about application registered. See HMIApplication. </description>
+ </param>
+ <param name="ttsName" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
+ <description> TTS string for VR recognition of the mobile application name, e.g. "Ford Drive Green".Meant to overcome any failing on speech engine in properly pronouncing / understanding app name.
+ Needs to be unique over all applications.
+ May not be empty.
+ May not start with a new line character.
+ May not interfere with any name or synonym of previously registered applications and any predefined blacklist of words (global commands)
+ </description>
+ </param>
+ <param name="vrSynonyms" type="String" maxlength="40" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ Defines additional voice recognition commands.
+ May not interfere with any name or synonym of previously registered applications and any predefined blacklist of words (global commands)
+ </description>
+ </param>
+ </function>
+ <function name="OnAppUnregistered" messagetype="notification">
+ <description>Issued by SDL to notify HMI about application unregistered. Application then to be removed from application list; all data connected with application has to be cleared up.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of the application unregistered</description>
+ </param>
+ </function>
+ <function name="OnExitApplication" messagetype="notification">
+ <description>Must be sent by HMI when the User chooses to exit the application..</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of the application to be exited.</description>
+ </param>
+ </function>
+ <function name="OnExitAllApplications" messagetype="notification">
+ <description>Sent by HMI to SDL to close all registered applications.</description>
+ <param name="reason" type="Common.ApplicationsCloseReason" mandatory="true">
+ <description>Specifies reason for exiting all apllications.</description>
+ </param>
+ </function>
+ <function name="MixingAudioSupported" messagetype="request">
+ <description>Request from SDL to HMI to find out if the last one supports mixing audio (i.e. recording TTS command and playing audio).</description>
+ </function>
+ <function name="MixingAudioSupported" messagetype="response">
+ <description>If no response received SDL supposes that mixing audio is not supported</description>
+ <param name="attenuatedSupported" type="Boolean" mandatory="true">
+ <description>Must be true if supported</description>
+ </param>
+ </function>
+ <function name="PlayTone" messagetype="notification">
+ <description>Sent by SDL to HMI to notify that the tone should be played.</description>
+ </function>
+ <!-- Policies -->
+ <function name="AllowAllApps" messagetype="request">
+ <description>Initiated by SDL. Results by user/HMI allowing SDL functionality or disallowing access to all mobile apps.</description>
+ </function>
+ <function name="AllowAllApps" messagetype="response">
+ <param name="allowed" type="Boolean" mandatory="true">
+ <description>Must be true if allowed</description>
+ </param>
+ </function>
+ <function name="AllowApp" messagetype="request">
+ <description>Initiated by SDL for requesting the allowance for the application</description>
+ <param name="app" type="Common.HMIApplication" mandatory="true">
+ <description>Information about the application. See HMIApplication. </description>
+ </param>
+ <param name="appPermissions" type="String" array="true" minsize="1" maxsize="100" mandatory="false">
+ <description>List of permissions required by application.</description>
+ </param>
+ </function>
+ <function name="AllowApp" messagetype="response">
+ <param name="allowed" type="Boolean" mandatory="true">
+ <description>Must be true if allowed</description>
+ </param>
+ </function>
+ <function name="OnSystemRequest" messagetype="notification" >
+ <description>
+ An asynchronous request from the system for specific data from the device or the cloud or response to a request from the device or cloud
+ Binary data can be included in hybrid part of message for some requests (such as Authentication request responses)
+ </description>
+ <param name="requestType" type="Common.RequestType" mandatory="true">
+ <description>The type of system request.</description>
+ </param>
+ <param name="url" type="String" maxlength="1000" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Optional array of URL(s) for HTTP requests.</description>
+ </param>
+ <param name="fileType" type="Common.FileType" mandatory="false">
+ <description>Optional file type (meant for HTTP file requests).</description>
+ </param>
+ <param name="offset" type="Integer" minvalue="0" maxvalue="100000000000" mandatory="false">
+ <description>Optional offset in bytes for resuming partial data chunks</description>
+ </param>
+ <param name="length" type="Integer" minvalue="0" maxvalue="100000000000" mandatory="false">
+ <description>Optional length in bytes for resuming partial data chunks</description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="0" maxvalue="65535" mandatory="false">
+ </param>
+ </function>
+ <function name="OnSDLClose" messagetype="notification">
+ <description>SDL must notify HMI about finish working application</description>
+ </function>
+</interface>
+
+<interface name="VR" version="1.0" date="2013-04-17">
+ <function name="IsReady" messagetype="request">
+ <description>Method is invoked at system startup. Response provides information about presence of VR module and its readiness to cooperate with SDL.</description>
+ </function>
+ <function name="IsReady" messagetype="response">
+ <param name="available" type="Boolean" mandatory="true">
+ <description>Must be true if VR is present and ready to communicate with SDL.</description>
+ </param>
+ </function>
+ <function name="Started" messagetype="notification">
+ <description>Must be initiated by VR module to let SDL know that VR session has started.</description>
+ </function>
+ <function name="Stopped" messagetype="notification">
+ <description>Must be initiated by VR module to let SDL know that VR session has stopped.</description>
+ </function>
+ <function name="AddCommand" messagetype="request">
+ <description>Request from SDL to add a command(string with associated id) to VR.</description>
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true">
+ <description>ID of a command (further to be used in OnCommand notification).</description>
+ </param>
+ <param name="vrCommands" type="String" mandatory="true" maxlength="99" minsize="1" maxsize="100" array="true">
+ <description>List of strings to be used as VR commands.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="false">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="AddCommand" messagetype="response">
+ </function>
+ <function name="DeleteCommand" messagetype="request">
+ <description>Request from SDL to delete a command from VR.</description>
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true">
+ <description>Id of a command (list of strings), previously sent by AddCommand.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="DeleteCommand" messagetype="response">
+ </function>
+ <function name="OnCommand" messagetype="notification">
+ <description>Notifies SDL about command trigerred via VR</description>
+ <param name="cmdID" type="Integer" mandatory="true" minvalue="0" maxvalue="2000000000">
+ <description>ID of of the command (list of strings)</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="false">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="ChangeRegistration" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to change language of VR.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>The language application wants to switch to.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="ChangeRegistration" messagetype="response">
+ </function>
+ <function name="OnLanguageChange" messagetype="notification">
+ <description>Notification from HMI to SmartDeviceLink about change of language.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>Language VR has switched to.</description>
+ </param>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="request">
+ <description>Method is invoked at system start-up. Response must provide the information about VR supported languages.</description>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="response">
+ <param name="languages" type="Common.Language" mandatory="true" array="true" minsize="1" maxsize="100">
+ <description>List of languages supported in VR.</description>
+ </param>
+ </function>
+ <function name="GetLanguage" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to get currently active VR language</description>
+ </function>
+ <function name="GetLanguage" messagetype="response">
+ <param name="language" type="Common.Language" mandatory="true"/>
+ </function>
+ <function name="GetCapabilities" messagetype="request">
+ <description>Method is invoked at system startup by SDL to request information about VR capabilities of HMI.</description>
+ </function>
+ <function name="GetCapabilities" messagetype="response">
+ <param name="vrCapabilities" type="Common.VrCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Types of input recognized by VR module.</description>
+ </param>
+ </function>
+</interface>
+
+<interface name="TTS" version="1.0" date="2013-04-18">
+ <description>RPCs for communication between TTS and SDL.</description>
+ <function name="GetCapabilities" messagetype="request">
+ <description>Method is invoked at system start-up. SDL requests the information about all supported hardware and their capabilities</description>
+ </function>
+ <function name="GetCapabilities" messagetype="response">
+ <param name="speechCapabilities" type="Common.SpeechCapabilities" minsize="1" maxsize="5" array="true" mandatory="true">
+ <description>See SpeechCapabilities</description>
+ </param>
+ <param name="prerecordedSpeechCapabilities" type="Common.PrerecordedSpeech" minsize="1" maxsize="5" array="true" mandatory="true">
+ <description>See PrerecordedSpeech</description>
+ </param>
+ </function>
+ <function name="Started" messagetype="notification">
+ <description>Must be initiated by TTS module to let SDL know that TTS session has started.</description>
+ </function>
+ <function name="Stopped" messagetype="notification">
+ <description>Must be initiated by TTS module to let SDL know that TTS session has stopped.</description>
+ </function>
+ <function name="IsReady" messagetype="request">
+ <description>Method is invoked at system start-up. Response must provide the information about presence of TTS module and its readiness to cooperate with SDL.</description>
+ </function>
+ <function name="IsReady" messagetype="response">
+ <param name="available" type="Boolean" mandatory="true">
+ <description>Must be true if TTS is present and ready to communicate with SDL.</description>
+ </param>
+ </function>
+ <function name="PerformInteraction" messagetype="request">
+ <description>Sets some properties for the application initiated request.</description>
+ <param name="helpPrompt" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>The help prompt. An array of text chunks of type TTSChunk. See TTSChunk. The array must have at least one item.</description>
+ </param>
+ <param name="initialPrompt" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ This is the intial prompt spoken to the user at the start of an interaction.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+ <param name="timeoutPrompt" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Help text for a wait timeout. An array of text chunks of type TTSChunk. See TTSChunk. The array must have at least one item.</description>
+ </param>
+ <param name="timeout" type="Integer" mandatory="true">
+ <description>Timeout initiate timeoutPrompt</description>
+ </param>
+ </function>
+ <function name="PerformInteraction" messagetype="response">
+ </function>
+ <function name="Speak" messagetype="request">
+ <description>RPC from SDL to TTS for speaking the text.</description>
+ <param name="ttsChunks" type="Common.TTSChunk" mandatory="true" array="true" minsize="1" maxsize="100">
+ <description>List of strings to be spoken.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="Speak" messagetype="response">
+ <description>Provides information about success of operation.</description>
+ </function>
+ <function name="StopSpeaking" messagetype="request">
+ <description>Initiated by SDL to stop speaking the text.</description>
+ </function>
+ <function name="StopSpeaking" messagetype="response">
+ </function>
+ <function name="ChangeRegistration" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to change language of TTS.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>The language application wants to switch to.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="ChangeRegistration" messagetype="response">
+ </function>
+ <function name="OnLanguageChange" messagetype="notification">
+ <description>Notification from HMI to SmartDeviceLink about change of language.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>Language TTS has switched to.</description>
+ </param>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="request">
+ <description>Method is invoked at system start-up by SDL. Response must provide the information about TTS supported languages.</description>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="response">
+ <param name="languages" type="Common.Language" mandatory="true" array="true" minsize="1" maxsize="100">
+ <description>List of languages supported in TTS.</description>
+ </param>
+ </function>
+ <function name="GetLanguage" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to get currently active TTS language</description>
+ </function>
+ <function name="GetLanguage" messagetype="response">
+ <param name="language" type="Common.Language" mandatory="true"/>
+ </function>
+ <function name="SetGlobalProperties" messagetype="request">
+ <description>Sets some properties for the application initiated request.</description>
+ <param name="helpPrompt" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
+ <description>
+ The help prompt.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+ <param name="timeoutPrompt" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
+ <description>
+ Help text for a wait timeout.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="SetGlobalProperties" messagetype="response">
+ </function>
+</interface>
+
+<interface name="UI" version="1.0" date="2013-04-16">
+ <function name="Alert" messagetype="request">
+ <description>Request from SDL to show an alert message on the display.</description>
+ <param name="alertStrings" type="Common.TextFieldStruct" mandatory="true" array="true" minsize="0" maxsize="3">
+ <description>Array of lines of alert text fields. See TextFieldStruct. Uses alertText1, alertText2, alertText3.</description>
+ </param>
+ <param name="duration" type="Integer" mandatory="true" minvalue="3000" maxvalue="10000" defvalue="5000">
+ <description>Timeout in milliseconds.</description>
+ </param>
+ <param name="softButtons" type="Common.SoftButton" mandatory="false" minsize="0" maxsize="4" array="true">
+ <description>App defined SoftButtons</description>
+ </param>
+ <param name="progressIndicator" type="Boolean" mandatory="false">
+ <description>If supported on the given platform, the alert GUI will include some sort of animation indicating that loading of a feature is progressing. e.g. a spinning wheel or hourglass, etc.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="Alert" messagetype="response">
+ <param name="tryAgainTime" type="Integer" mandatory="false" minvalue="0" maxvalue="2000000000">
+ <description>Amount of time (in milliseconds) that SDL must wait before resending an alert. Must be provided if another system event or overlay currently has a higher priority than this alert.</description>
+ </param>
+ </function>
+ <function name="ShowNotification" messagetype="notification">
+ <description>Initiated by SDL in order to notify user about some actions, i.e. while waiting for updates from server etc.</description>
+ <param name="text" type="Common.TextFieldStruct" mandatory="true"/>
+ <param name="icon" type="Common.Image" mandatory="false"/>
+ <param name="timeout" type="Integer" mandatory="true">
+ <description>Pop-up is expected to be shown before time specified with timeout is up and then closed by HMI or closed upon ClosePopUp request from SDL.</description>
+ </param>
+ </function>
+ <function name="Show" messagetype="request">
+ <param name="showStrings" type="Common.TextFieldStruct" mandatory="true" array="true" minsize="0" maxsize="7">
+ <description>Array of lines of show text fields. See TextFieldStruct. Uses mainField1, mainField2, mainField3, mainField4. If some field is not set, the corresponding text should stay unchanged. If field's text is empty "", the field must be cleared.
+ mainField1: The text that should be displayed in a single or upper display line.
+ mainField2: The text that should be displayed on the second display line.
+ mainField3: The text that should be displayed on the second "page" first display line.
+ mainField4: The text that should be displayed on the second "page" second display line.
+ statusBar: statusBar.
+ mediaClock: Text value for MediaClock field.
+ mediaTrack: The text that should be displayed in the track field. This field is only valid for media applications on NGN type ACMs.
+ </description>
+ </param>
+ <param name="alignment" type="Common.TextAlignment" mandatory="false">
+ <description>Specifies how mainField1 and mainField2 texts should be aligned on the display.</description>
+ <description>If omitted, texts must be centered</description>
+ </param>
+ <param name="graphic" type="Common.Image" mandatory="false">
+ <description>Path to optional dynamic image or the static binary image itself. See Image. If omitted, the displayed graphic should not change.</description>
+ </param>
+ <param name="secondaryGraphic" type="Common.Image" mandatory="false">
+ <description>
+ Image struct determining whether static or dynamic secondary image to display in app.
+ If omitted on supported displays, the displayed secondary graphic shall not change.
+ </description>
+ </param>
+ <param name="softButtons" type="Common.SoftButton" minsize="0" maxsize="8" array="true" mandatory="false">
+ <description>App defined SoftButtons.</description>
+ <description>If omitted, the currently displayed SoftButton values should not change.</description>
+ </param>
+ <param name="customPresets" type="String" maxlength="500" minsize="0" maxsize="8" array="true" mandatory="false">
+ <description>App labeled on-screen presets (i.e. GEN3 media presets or dynamic search suggestions).</description>
+ <description>If omitted on supported displays, the presets will be shown as not defined.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>Id of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="Show" messagetype="response">
+ </function>
+ <function name="AddCommand" messagetype="request">
+ <description>Request from SDL to add a command to the application menu.</description>
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true">
+ <description>ID of the command to be added.</description>
+ </param>
+ <param name="menuParams" type="Common.MenuParams" mandatory="false">
+ <description>Optional sub value containing parameters of the command (position, name, etc.). See MenuParams. If omitted the command should be added to the end of the list of commands.</description>
+ </param>
+ <param name="cmdIcon" type="Common.Image" mandatory="false">
+ <description>Image to be displayed for representing the command. See Image.</description>
+ <description>If omitted, no (or the default if applicable) icon should be displayed.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="AddCommand" messagetype="response">
+ </function>
+ <function name="DeleteCommand" messagetype="request">
+ <description>Request from SDL to delete a command from the in-application menu with the specified command id.</description>
+ <param name="cmdID" type="Integer" mandatory="true" minvalue="0" maxvalue="2000000000">
+ <description>cmdId previously sent via AddCommand request - id of the command to be deleted.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="DeleteCommand" messagetype="response">
+ </function>
+ <function name="AddSubMenu" messagetype="request">
+ <description>Request from SDL to add a sub menu to the in-application menu.</description>
+ <param name="menuID" type="Integer" minvalue="1" maxvalue="2000000000" mandatory="true">
+ <description>ID of the sub menu to be added. Unique for the application.</description>
+ </param>
+ <param name="menuParams" type="Common.MenuParams" mandatory="true">
+ <description>Position and name of menu to be added. 'parent' field is omitted for this RPC. </description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="AddSubMenu" messagetype="response">
+ </function>
+ <function name="DeleteSubMenu" messagetype="request">
+ <description>Request from SDL to delete a submenu from the in-application menu.</description>
+ <param name="menuID" type="Integer" minvalue="1" maxvalue="2000000000" mandatory="true" >
+ <description>The "menuID" of the sub-menu to be deleted. (See addSubMenu.menuID)</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="DeleteSubMenu" messagetype="response">
+ </function>
+ <function name="PerformInteraction" messagetype="request">
+ <description>Request from SDL for triggering an interaction (e.g. "Permit GPS?" - Yes, no, Always Allow).</description>
+ <param name="initialText" type="Common.TextFieldStruct" mandatory="true">
+ <description>Uses initialInteractionText. See TextFieldStruct.</description>
+ </param>
+ <param name="choiceSet" type="Common.Choice" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>The list of choices to be used for the interaction with the user</description>
+ </param>
+ <param name="vrHelpTitle" type="String" maxlength="500" mandatory="false">
+ <description>VR Help Title text.</description>
+ <description>If omitted on supported displays, the default HU system help title should be used.</description>
+ </param>
+ <param name="vrHelp" type="Common.VrHelpItem" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>VR Help Items. If omitted on supported displays, the default HU system generated help items should be used.</description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="5000" maxvalue="100000" defvalue="10000" mandatory="true">
+ <description>Timeout in milliseconds.</description>
+ </param>
+ <param name="interactionLayout" type="Common.LayoutMode" mandatory="false">
+ <description>See LayoutMode.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="PerformInteraction" messagetype="response">
+ <param name="choiceID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
+ <description>ID of the choice that was selected in response to PerformInteraction.</description>
+ </param>
+ <param name="manualTextEntry" type="String" maxlength="500" mandatory="false">
+ <description>
+ Manually entered text selection, e.g. through keyboard
+ Can be returned in lieu of choiceID, depending on trigger source
+ </description>
+ </param>
+ </function>
+ <function name="SetMediaClockTimer" messagetype="request">
+ <description>Sets the initial media clock value and automatic update method.</description>
+ <param name="startTime" type="Common.TimeFormat" mandatory="false">
+ <description>startTime should be ignored for "PAUSE", "RESUME", and "CLEAR"</description>
+ </param>
+ <param name="endTime" type="Common.TimeFormat" mandatory="false">
+ <description>
+ See TimeFormat.
+ endTime can be provided for "COUNTUP" and "COUNTDOWN"; to be used to calculate any visual progress bar (if not provided, this feature is ignored)
+ If endTime is greater then startTime for COUNTDOWN or less than startTime for COUNTUP, then the request will return an INVALID_DATA.
+ endTime will be ignored for "PAUSE", "RESUME", and "CLEAR"
+ </description>
+ </param>
+ <param name="updateMode" type="Common.ClockUpdateMode" mandatory="true">
+ <description>The update method of the media clock.</description>
+ <description>In case of pause, resume, or clear, the start time value is ignored and shall be left out. For resume, the time continues with the same value as it was when paused.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SetMediaClockTimer" messagetype="response">
+ </function>
+ <function name="SetGlobalProperties" messagetype="request">
+ <description>Request from SDL to set some properties for VR help.</description>
+ <param name="vrHelpTitle" type="String" maxlength="500" mandatory="false">
+ <description>VR Help Title text.</description>
+ <description>If omitted on supported displays, the default HU system help title should be used.</description>
+ </param>
+ <param name="vrHelp" type="Common.VrHelpItem" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>VR Help Items. If omitted on supported displays, the default HU system generated help items should be used.</description>
+ </param>
+ <param name="menuTitle" maxlength="500" type="String" mandatory="false">
+ <description>Optional text to label an app menu button (for certain touchscreen platforms).</description>
+ </param>
+ <param name="menuIcon" type="Common.Image" mandatory="false">
+ <description>>Optional icon to draw on an app menu button (for certain touchscreen platforms).</description>
+ </param>
+ <param name="keyboardProperties" type="Common.KeyboardProperties" mandatory="false">
+ <description>On-screen keybaord configuration (if available).</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="SetGlobalProperties" messagetype="response">
+ </function>
+ <function name="OnCommand" messagetype="notification">
+ <description>Notification must be initiated by HMI on user choosing menu item.</description>
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true">
+ <description>Command ID, which is related to a specific menu entry (previously sent with AddCommand).</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that is related to this RPC.</description>
+ </param>
+ </function>
+ <function name="OnSystemContext" messagetype="notification">
+ <description>Notification must be initiated by HMI when the user changes the context of application: goes to menu (in-application menu or system menu); switches to VR; pop-up appears on screen etc.</description>
+ <param name="systemContext" type="Common.SystemContext" mandatory="true">
+ <description>The context the application is brought into.</description>
+ </param>
+ </function>
+ <function name="GetCapabilities" messagetype="request">
+ <description>Method is invoked at system startup by SDL to request information about UI capabilities of HMI.</description>
+ </function>
+ <function name="GetCapabilities" messagetype="response">
+ <param name="displayCapabilities" type="Common.DisplayCapabilities" mandatory="true">
+ <description>Information about the capabilities of the display: its type, text field supported, etc. See DisplayCapabilities. </description>
+ </param>
+ <param name="audioPassThruCapabilities" type="Common.AudioPassThruCapabilities" mandatory="true"/>
+ <param name="hmiZoneCapabilities" type="Common.HmiZoneCapabilities" mandatory="true"/>
+ <param name="softButtonCapabilities" type="Common.SoftButtonCapabilities" mandatory="false">
+ <description>Must be returned if the platform supports on-screen SoftButtons.</description>
+ </param>
+ </function>
+ <function name="ChangeRegistration" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to change language for app.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>The language application wants to switch to.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="ChangeRegistration" messagetype="response">
+ </function>
+ <function name="OnLanguageChange" messagetype="notification">
+ <description>Notification from HMI to SmartDeviceLink about change of language.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>Language UI has switched to.</description>
+ </param>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="request">
+ <description>Method should be invoked at system startup. Response provides information about UI supported languages.</description>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="response">
+ <param name="languages" type="Common.Language" mandatory="true" array="true" minsize="1" maxsize="100">
+ <description>List of languages supported in UI.</description>
+ </param>
+ </function>
+ <function name="GetLanguage" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to get currently active UI language</description>
+ </function>
+ <function name="GetLanguage" messagetype="response">
+ <param name="language" type="Common.Language" mandatory="true"/>
+ </function>
+ <function name="OnDriverDistraction" messagetype="notification">
+ <description>Notification must be sent from HMI to SDL when driver distraction state is changed. Driver distraction rules are defined by the platform.</description>
+ <param name="state" type="Common.DriverDistractionState" mandatory="true">
+ <description>See DriverDistractionState. </description>
+ </param>
+ </function>
+ <function name="SetAppIcon" messagetype="request">
+ <description>Used to set existing local file on SYNC as the app's icon.</description>
+ <param name="syncFileName" type="Common.Image" mandatory="true">
+ <description>Either the path to the dynamic image stored on HY or the static binary image itself. See Image</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="SetAppIcon" messagetype="response">
+ </function>
+ <function name="SetDisplayLayout" messagetype="request">
+ <param name="displayLayout" type="String" maxlength="500" mandatory="true">
+ <description>
+ Predefined or dynamically created screen layout.
+ Currently only predefined screen layouts are defined.
+ </description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="SetDisplayLayout" messagetype="response">
+ <param name="displayCapabilities" type="Common.DisplayCapabilities" mandatory="false">
+ <description>See DisplayCapabilities</description>
+ </param>
+ <param name="buttonCapabilities" type="Common.ButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>See ButtonCapabilities</description >
+ </param>
+ <param name="softButtonCapabilities" type="Common.SoftButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>If returned, the platform supports on-screen SoftButtons; see SoftButtonCapabilities.</description >
+ </param>
+ <param name="presetBankCapabilities" type="Common.PresetBankCapabilities" mandatory="false">
+ <description>If returned, the platform supports custom on-screen Presets; see PresetBankCapabilities.</description >
+ </param>
+ </function>
+ <function name="ShowCustomForm" messagetype="request">
+ <description>Used to show a custom form; it can be a parent or child screen. If no parent screen is designated, it is set as a parent screen.</description>
+ <param name="customFormID" type="String" maxlength="500" mandatory="true">
+ <description>
+ Predefined or dynamically created screen layout.
+ Currently only predefined forms are defined.
+ Predefined layouts include:
+ "DEFAULT" - Default media / non-media screen
+ "ONSCREEN_PRESETS" - Custom root media screen containing app-defined onscreen presets.
+ "KEYBOARD_SEARCH" - Custom template containing app-configured on-screen keyboard with active search updating; user also can trigger voice search.
+ "NAV_FULLSCREEN_MAP" - Custom root template screen containing full screen map with navigation controls.
+ "NAV_POI_MENU" - Custom template containing app-defined POI options.
+ "NAV_SEARCH_RESULTS" - Custom template containing a list of app-defined search results
+ "NAV_POI_INFO" - Custom template containing app-defined POI information (and potentially map data).
+ </description>
+ </param>
+ <param name="parentFormID" type="String" maxlength="500" defvalue="DEFAULT" mandatory="false">
+ <description>
+ Parent screen of predefined form to display.
+ Currently only predefined forms are defined.
+ If not provided, then set to "DEFAULT".
+ Predefined layouts include:
+ "DEFAULT" - Default media / non-media screen
+ "ONSCREEN_PRESETS" - Custom root media screen containing app-defined onscreen presets.
+ "NAV_FULLSCREEN_MAP" - Custom template containing full screen map with navigation controls.
+ </description>
+ </param>
+ </function>
+ <function name="ShowCustomForm" messagetype="response">
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="ShowKeyboard" messagetype="request">
+ <description>Configures and populates on-screen keyboard.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>The keyboard language.</description>
+ </param>
+ <param name="keyboardLayout" type="Common.KeyboardLayout" mandatory="true" >
+ <description>Desired keyboard layout.</description>
+ </param>
+ <param name="sendDynamicEntry" type="Boolean" mandatory="false">
+ <description>In this mode, all keypresses will be sent as they occur.</description>
+ <description>If disabled, entire string of text will be returned only once submitted by user.</description>
+ <description>If omitted, this value will be set to FALSE.</description>
+ </param>
+ <param name="limitedCharacterList" type="String" maxlength="1" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Array of keyboard characters to enable.</description>
+ <description>All omitted characters will be greyed out (disabled) on the keyboard.</description>
+ <description>If omitted, the entire keyboard will be enabled.</description>
+ </param>
+ <param name="autoCompleteText" type="String" maxlength="1000" mandatory="false">
+ <description>Allows an app to prepopulate the text field with a suggested or completed entry as the user types</description>
+ </param>
+ </function>
+ <function name="ShowKeyboard" messagetype="response">
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="OnKeyboardInput" messagetype="notification">
+ <description>On-screen keyboard event.</description>
+ <description>Can be full string or individual keypresses depending on keyboard mode.</description>
+ <param name="event" type="Common.KeyboardEvent" mandatory="true">
+ <description>On-screen keyboard input data.</description>
+ </param>
+ <param name="data" type="String" maxlength="500" mandatory="false">
+ <description>On-screen keyboard input data.</description>
+ <description>For dynamic keypress events, this will be the current compounded string of entry text.</description>
+ <description>For entry submission events, this will be the full text entry (this will always return regardless of the mode).</description>
+ <description>For entry cancelled and entry aborted events, this data param will be omitted.</description>
+ </param>
+ </function>
+ <function name="OnTouchEvent" messagetype="notification">
+ <description>Notifies about touch events on the screen's prescribed area</description>
+ <param name="type" type="Common.TouchType" mandatory="true">
+ <description>The type of touch event.</description>
+ </param>
+ <param name="event" type="Common.TouchEvent" mandatory="true" minsize="1" maxsize="10" array="true">
+ <description>List of all individual touches involved in this event.</description>
+ </param>
+ </function>
+ <function name="Slider" messagetype="request">
+ <description>Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider.</description>
+ <param name="numTicks" type="Integer" minvalue="2" maxvalue="26" mandatory="true">
+ <description>Number of selectable items on a horizontal axis</description>
+ </param>
+ <param name="position" type="Integer" minvalue="1" maxvalue="26" mandatory="true">
+ <description>Initial position of slider control (cannot exceed numTicks)</description>
+ </param>
+ <param name="sliderHeader" type="String" maxlength="500" mandatory="true">
+ <description>Text header to be displayed.</description>
+ </param>
+ <param name="sliderFooter" type="String" maxlength="500" minsize="1" maxsize="26" array="true" mandatory="false">
+ <description>Text footer to be displayed (meant to display min/max threshold descriptors).</description>
+ <description>For a static text footer, only one footer string shall be provided in the array.</description>
+ <description>For a dynamic text footer, the number of footer text string in the array must match the numTicks value.</description>
+ <description>For a dynamic text footer, text array string should correlate with potential slider position index.</description>
+ <description>If omitted on supported displays, no footer text shall be displayed.</description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="1000" maxvalue="65535" mandatory="true">
+ <description>Timeout. The slider should be displayed until the defined amount of time has elapsed. </description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="Slider" messagetype="response">
+ <param name="sliderPosition" type="Integer" minvalue="1" maxvalue="26" mandatory="false">
+ <description>Current slider position. Must be returned when the user has clicked the ‘Save’ or ‘Canceled’ button or by the timeout </description>
+ </param>
+ </function>
+ <function name="ScrollableMessage" messagetype="request">
+ <description>Creates a full screen overlay containing a large block of formatted text that can be scrolled with up to 8 SoftButtons defined</description>
+ <param name="messageText" type="Common.TextFieldStruct" mandatory="true">
+ <description>Body of text that can include newlines and tabs. Uses scrollableMessageBody.</description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="0" maxvalue="65535" defvalue="30000" mandatory="true">
+ <description>Timeout in milliseconds. The message should be displayed until the time defined is up.</description>
+ </param>
+ <param name="softButtons" type="Common.SoftButton" minsize="0" maxsize="8" array="true" mandatory="false">
+ <description>App defined SoftButtons.</description>
+ <description>If omitted on supported displays, only the system defined "Close" SoftButton should be displayed.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="ScrollableMessage" messagetype="response">
+ </function>
+ <function name="PerformAudioPassThru" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ <param name="audioPassThruDisplayTexts" type="Common.TextFieldStruct" mandatory="true" minsize="0" maxsize="2" array="true">
+ <description>Uses
+ audioPassThruDisplayText1: First line of text displayed during audio capture.
+ audioPassThruDisplayText2: Second line of text displayed during audio capture.</description>
+ </param>
+ <param name="maxDuration" type="Integer" minvalue="1" maxvalue="1000000" mandatory="true">
+ <description>The maximum duration of audio recording in milliseconds. If not provided, the recording should be performed until EndAudioPassThru arrives.</description>
+ </param>
+ </function>
+ <function name="PerformAudioPassThru" messagetype="response">
+ </function>
+ <function name="EndAudioPassThru" messagetype="request">
+ <description>Request is sent by SDL to stop the audio capturing.</description>
+ </function>
+ <function name="EndAudioPassThru" messagetype="response">
+ </function>
+ <function name="IsReady" messagetype="request">
+ <description>Method is invoked at system startup. Response provides information about presence of UI module and its readiness to cooperate with SDL.</description>
+ </function>
+ <function name="IsReady" messagetype="response">
+ <param name="available" type="Boolean" mandatory="true">
+ <description>Must be true if UI is present and ready to communicate with SDL.</description>
+ </param>
+ </function>
+ <function name="ClosePopUp" messagetype="request">
+ <description>Initiated by SDL to close currently active pop-up on HMI.</description>
+ <param name="methodName" type="String" mandatory="false">
+ <description>Method to be closed</description>
+ </param>
+ </function>
+ <function name="ClosePopUp" messagetype="response">
+ <description>Provides the result of operation.</description>
+ </function>
+ <function name="OnResetTimeout" messagetype="notification">
+ <description>HMI must provide SDL with notifications specific to the current Turn-By-Turn client status on the module</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>Id of application that invoked notifcation.</description>
+ </param>
+ <param name="methodName" type="String" mandatory="true">
+ <description>Currently used method name on which was triggered action</description>
+ </param>
+ </function>
+</interface>
+
+<interface name="Navigation" version="1.0" date="2013-05-22">
+ <function name="IsReady" messagetype="request">
+ <description>Method is invoked at system startup. Response must provide the information about presence of UI Navigation module and its readiness to cooperate with SDL.</description>
+ </function>
+ <function name="IsReady" messagetype="response">
+ <param name="available" type="Boolean" mandatory="true">
+ <description>Must be true if Navigation is present and ready to communicate with SDL.</description>
+ </param>
+ </function>
+ <function name="ShowConstantTBT" messagetype="request">
+ <description>Request from SmartDeviceLinkCore to HMI to show info about navigation.</description>
+ <param name="navigationTexts" type="Common.TextFieldStruct" mandatory="true" array="true" minsize="0" maxsize="5">
+ <description>See TextFieldStruct. Uses:
+ navigationText1
+ navigationText2
+ ETA
+ totalDistance
+ timeToDestination.
+ </description>
+ </param>
+ <param name="turnIcon" type="Common.Image" mandatory="false">
+ </param>
+ <param name="nextTurnIcon" type="Common.Image" mandatory="false">
+ </param>
+ <param name="distanceToManeuver" type="Float" minvalue="0" maxvalue="1000000000" mandatory="true">
+ <description>Fraction of distance till next maneuver (from previous maneuver).</description>
+ <description>May be used to calculate progress bar.</description>
+ </param>
+ <param name="distanceToManeuverScale" type="Float" minvalue="0" maxvalue="1000000000" mandatory="true">
+ <description>Fraction of distance till next maneuver (starting from when AlertManeuver is triggered).</description>
+ <description>May be used to calculate progress bar.</description>
+ </param>
+ <param name="maneuverComplete" type="Boolean" mandatory="false">
+ <description>If and when a maneuver has completed while an AlertManeuver is active, SDL will send this value set to TRUE in order to clear the AlertManeuver overlay.</description>
+ <description>If omitted the value should be assumed as FALSE.</description>
+ </param>
+ <param name="softButtons" type="Common.SoftButton" minsize="0" maxsize="3" array="true" mandatory="false">
+ <description>Three dynamic SoftButtons available</description>
+ <description>If omitted on supported displays, the currently displayed SoftButton values will not change.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="ShowConstantTBT" messagetype="response">
+ </function>
+ <function name="AlertManeuver" messagetype="request">
+ <description>Request from SmartDeviceLinkCore to HMI to announce navigation maneuver</description>
+ <param name="softButtons" type="Common.SoftButton" minsize="0" maxsize="3" array="true" mandatory="false">
+ <description>If omitted, only the system defined "Close" SoftButton should be displayed.</description>
+ </param>
+ </function>
+ <function name="AlertManeuver" messagetype="response">
+ </function>
+ <function name="UpdateTurnList" messagetype="request">
+ <description>Request from SmartDeviceLinkCore to HMI to update turn list.</description>
+ <param name="turnList" type="Common.Turn" minsize="1" maxsize="100" array="true" mandatory="true">
+ </param>
+ <param name="softButtons" type="Common.SoftButton" minsize="0" maxsize="1" array="true" mandatory="false">
+ <description>If omitted, app-defined SoftButton should be left blank.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="UpdateTurnList" messagetype="response">
+ </function>
+ <function name="OnTBTClientState" messagetype="notification">
+ <description>HMI must provide SDL with notifications specific to the current Turn-By-Turn client status on the module</description>
+ <param name="state" type="Common.TBTState" mandatory="true">
+ <description>Current State of TBT client</description>
+ </param>
+ </function>
+ <function name="StartStream" messagetype="request">
+ <description>Notification from SmartDeviceLinkCore to HMI to start playing video streaming.</description>
+ <param name="url" type="String" minlength="21" maxlength="500" mandatory="true">
+ <description>URL that HMI start playing.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="StartStream" messagetype="response">
+ </function>
+ <function name="StopStream" messagetype="request">
+ <description>Notification from SmartDeviceLinkCore to HMI to start playing video streaming.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="StopStream" messagetype="response">
+ </function>
+ <function name="StartAudioStream" messagetype="request">
+ <description>Notification from SmartDeviceLinkCore to HMI to start playing audio streaming.</description>
+ <param name="url" type="String" minlength="21" maxlength="500" mandatory="true">
+ <description>URL that HMI start playing.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="StartAudioStream" messagetype="response">
+ </function>
+ <function name="StopAudioStream" messagetype="request">
+ <description>Notification from SmartDeviceLinkCore to HMI to start playing audio streaming.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="StopAudioStream" messagetype="response">
+ </function>
+
+</interface>
+
+<interface name="VehicleInfo" version="1.0" date="2013-04-21">
+ <function name="IsReady" messagetype="request">
+ <description>Method is invoked at system startup. Response should provide information about presence of any of vehicle information modules (ECU, GPS, etc) and their readiness to cooperate with SDL.</description>
+ </function>
+ <function name="IsReady" messagetype="response">
+ <param name="available" type="Boolean" mandatory="true">
+ <description>Must be true if vehicle data modules are present and ready to communicate with SDL.</description>
+ </param>
+ </function>
+ <function name="GetVehicleType" messagetype="request">
+ <description>Request from SmartDeviceLinkCore to HMI to get info about the vehicle (type, model, etc.).</description>
+ </function>
+ <function name="GetVehicleType" messagetype="response">
+ <param name="vehicleType" type="Common.VehicleType" mandatory="true"/>
+ </function>
+ <function name="ReadDID" messagetype="request">
+ <description>Request from SDL for vehicle data reading.</description>
+ <param name="ecuName" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Name of ECU.</description>
+ </param>
+ <param name="didLocation" type="Integer" minvalue="0" maxvalue="65535" minsize="1" maxsize="1000" array="true" mandatory="true">
+ <description>Get raw data from vehicle data DID location(s).</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="ReadDID" messagetype="response">
+ <param name="didResult" type="Common.DIDResult" minsize="0" maxsize="1000" array="true" mandatory="false">
+ <description>Array of requested DID results (with data if available).</description>
+ </param>
+ </function>
+ <function name="GetDTCs" messagetype="request">
+ <description>Vehicle module diagnostic trouble code request.</description>
+ <param name="ecuName" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Name of ECU.</description>
+ </param>
+ <param name="dtcMask" type="Integer" minvalue="0" maxvalue="255" mandatory="false">
+ <description>DTC Mask Byte to be sent in diagnostic request to module .</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetDTCs" messagetype="response">
+ <param name="ecuHeader" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>2 byte ECU Header for DTC response (as defined in VHR_Layout_Specification_DTCs.pdf)</description>
+ </param>
+ <param name="dtc" type="String" mandatory="false" minsize="1" maxsize="15" maxlength="10" array="true">
+ <description>
+ Array of all reported DTCs on module. Each DTC is represented with 4 bytes:
+ 3 bytes for data
+ 1 byte for status
+ </description>
+ </param>
+ </function>
+ <function name="DiagnosticMessage" messagetype="request">
+ <description>Non periodic vehicle diagnostic request</description>
+ <param name="targetID" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Name of target ECU.</description>
+ </param>
+ <param name="messageLength" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Length of message (in bytes).</description>
+ </param>
+ <param name="messageData" type="Integer" minvalue="0" maxvalue="255" minsize="1" maxsize="65535" array="true" mandatory="true">
+ <description>
+ Array of bytes comprising CAN message.
+ </description>
+ </param>
+ </function>
+ <function name="DiagnosticMessage" messagetype="response">
+ <param name="messageDataResult" type="Integer" minvalue="0" maxvalue="255" minsize="1" maxsize="65535" array="true" mandatory="true">
+ <description>
+ Array of bytes comprising CAN message result.
+ </description>
+ </param>
+ </function>
+ <function name="SubscribeVehicleData" messagetype="request">
+ <description>
+ Subscribes for specific published data items.
+ The data will be only sent if it has changed.
+ The application will be notified by the onVehicleData notification whenever new data is available.
+ To unsubscribe the notifications, use unsubscribe with the same subscriptionType.
+ </description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ <param name="gps" type="Boolean" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Boolean" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Boolean" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Boolean" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="Boolean" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Boolean" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Boolean" mandatory="false">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ <param name="prndl" type="Boolean" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="Boolean" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Boolean" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="Boolean" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="Boolean" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="Boolean" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="Boolean" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="Boolean" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="Boolean" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Boolean" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Boolean" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Boolean" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+ <!-- Ford Specific Data Items -->
+ <param name="eCallInfo" type="Boolean" mandatory="false">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="Boolean" mandatory="false">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="Boolean" mandatory="false">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModeStatus" type="Boolean" mandatory="false">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="Boolean" mandatory="false">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ <!-- / Ford Specific Data Items -->
+ </function>
+ <function name="SubscribeVehicleData" messagetype="response">
+ <param name="gps" type="Common.VehicleDataResult" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Common.VehicleDataResult" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Common.VehicleDataResult" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Common.VehicleDataResult" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="Common.VehicleDataResult" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Common.VehicleDataResult" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Common.VehicleDataResult" mandatory="false">
+ <description>The external temperature in degrees celsius.</description>
+ </param>
+ <param name="prndl" type="Common.VehicleDataResult" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="Common.VehicleDataResult" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Common.VehicleDataResult" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="Common.VehicleDataResult" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="Common.VehicleDataResult" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="Common.VehicleDataResult" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="Common.VehicleDataResult" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="Common.VehicleDataResult" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="Common.VehicleDataResult" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Common.VehicleDataResult" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Common.VehicleDataResult" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Common.VehicleDataResult" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+ <!-- Ford Specific Data Items -->
+ <param name="eCallInfo" type="Common.VehicleDataResult" mandatory="false">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="Common.VehicleDataResult" mandatory="false">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="Common.VehicleDataResult" mandatory="false">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModes" type="Common.VehicleDataResult" mandatory="false">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="Common.VehicleDataResult" mandatory="false">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ <!-- / Ford Specific Data Items -->
+ </function>
+ <function name="UnsubscribeVehicleData" messagetype="request">
+ <description>
+ This function is used to unsubscribe the notifications from the subscribeVehicleData function.
+ </description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ <param name="gps" type="Boolean" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Boolean" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Boolean" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Boolean" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="Boolean" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Boolean" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Boolean" mandatory="false">
+ <description>The external temperature in degrees celsius.</description>
+ </param>
+ <param name="prndl" type="Boolean" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="Boolean" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Boolean" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="Boolean" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="Boolean" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="Boolean" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="Boolean" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="Boolean" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="Boolean" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Boolean" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Boolean" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Boolean" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+ <!-- Ford Specific Data Items -->
+ <param name="eCallInfo" type="Boolean" mandatory="false">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="Boolean" mandatory="false">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="Boolean" mandatory="false">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModeStatus" type="Boolean" mandatory="false">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="Boolean" mandatory="false">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ <!-- / Ford Specific Data Items -->
+ </function>
+ <function name="UnsubscribeVehicleData" messagetype="response">
+ <param name="gps" type="Common.VehicleDataResult" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Common.VehicleDataResult" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Common.VehicleDataResult" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Common.VehicleDataResult" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="Common.VehicleDataResult" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Common.VehicleDataResult" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Common.VehicleDataResult" mandatory="false">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ <param name="prndl" type="Common.VehicleDataResult" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="Common.VehicleDataResult" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Common.VehicleDataResult" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="Common.VehicleDataResult" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="Common.VehicleDataResult" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="Common.VehicleDataResult" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="Common.VehicleDataResult" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="Common.VehicleDataResult" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="Common.VehicleDataResult" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Common.VehicleDataResult" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Common.VehicleDataResult" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Common.VehicleDataResult" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+ <!-- Ford Specific Data Items -->
+ <param name="eCallInfo" type="Common.VehicleDataResult" mandatory="false">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="Common.VehicleDataResult" mandatory="false">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="Common.VehicleDataResult" mandatory="false">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModes" type="Common.VehicleDataResult" mandatory="false">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="Common.VehicleDataResult" mandatory="false">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ <!-- / Ford Specific Data Items -->
+ </function>
+ <function name="GetVehicleData" messagetype="request">
+ <description>Non periodic vehicle data read request.</description>
+ <param name="gps" type="Boolean" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Boolean" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Boolean" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Boolean" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="Boolean" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Boolean" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Boolean" mandatory="false">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ <param name="vin" type="Boolean" mandatory="false">
+ <description>Vehicle identification number</description>
+ </param>
+ <param name="prndl" type="Boolean" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="Boolean" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Boolean" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="Boolean" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="Boolean" mandatory="false">
+ <description>The body information including ignition status and internal temp</description>
+ </param>
+ <param name="deviceStatus" type="Boolean" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="Boolean" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="Boolean" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="Boolean" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Boolean" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Boolean" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Boolean" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+ <param name="eCallInfo" type="Common.ECallInfo" mandatory="false">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="Common.AirbagStatus" mandatory="false">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="Common.EmergencyEvent" mandatory="false">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModeStatus" type="Common.ClusterModeStatus" mandatory="false">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="Boolean" mandatory="false">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetVehicleData" messagetype="response">
+ <param name="gps" type="Common.GPSData" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Float" minvalue="0" maxvalue="700" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Integer" minvalue="0" maxvalue="20000" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Float" minvalue="-6" maxvalue="106" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="Common.ComponentVolumeStatus" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Float" minvalue="0" maxvalue="25575" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Float" minvalue="-40" maxvalue="100" mandatory="false">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ <param name="vin" type="String" maxlength="17" mandatory="false">
+ <description>Vehicle identification number</description>
+ </param>
+ <param name="prndl" type="Common.PRNDL" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="Common.TireStatus" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Integer" minvalue="0" maxvalue="17000000" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="Common.BeltStatus" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="Common.BodyInformation" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="Common.DeviceStatus" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="Common.WiperStatus" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="Common.HeadLampStatus" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Float" minvalue="-1000" maxvalue="2000" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Float" minvalue="0" maxvalue="100" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Float" minvalue="-2000" maxvalue="2000" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+ <param name="myKey" type="Common.MyKey" mandatory="false">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ </function>
+ <function name="OnVehicleData" messagetype="notification">
+ <description>Callback for the periodic and non periodic vehicle data read function.</description>
+ <param name="gps" type="Common.GPSData" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Float" minvalue="0" maxvalue="700" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Integer" minvalue="0" maxvalue="20000" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Float" minvalue="-6" maxvalue="106" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="Common.ComponentVolumeStatus" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Float" minvalue="0" maxvalue="25575" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Float" minvalue="-40" maxvalue="100" mandatory="false">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ <param name="vin" type="String" maxlength="17" mandatory="false">
+ <description>Vehicle identification number.</description>
+ </param>
+ <param name="prndl" type="Common.PRNDL" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="Common.TireStatus" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Integer" minvalue="0" maxvalue="17000000" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="Common.BeltStatus" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="Common.BodyInformation" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="Common.DeviceStatus" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="Common.WiperStatus" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="Common.HeadLampStatus" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Float" minvalue="-1000" maxvalue="2000" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Float" minvalue="0" maxvalue="100" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Float" minvalue="-2000" maxvalue="2000" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+ <param name="myKey" type="Common.MyKey" mandatory="false">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ </function>
+</interface>
+</interfaces>
diff --git a/SDL_Core/src/components/Interfaces/Json_HMI_message_specification.txt b/SDL_Core/src/components/Interfaces/Json_HMI_message_specification.txt
new file mode 100644
index 000000000..9f5b20a3c
--- /dev/null
+++ b/SDL_Core/src/components/Interfaces/Json_HMI_message_specification.txt
@@ -0,0 +1,317 @@
+/*
+* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+Version = 1.0
+
+This file describes message structure for communication between SDL and HMI.
+JSON RPC 2.0 format is taken as basis. Please refer to http://www.jsonrpc.org/specification. Additions to this format are marked as 'Additions' hereinafter. Blocks marked as 'Spec' are excerpt from oficial specification of JSON RPC 2.0. Samples are also provided.
+This document comes in pair with HMI_API.xml.
+
+#########################################################################################
+
+Notifications:
+
+/****
+
+ * Spec (from http://www.jsonrpc.org/specification):
+ A Notification is a Request object without an "id" member. A Request object that is a Notification signifies the Client's lack of interest in the corresponding Response object, and as such no Response object needs to be returned to the client. The Server MUST NOT reply to a Notification, including those that are within a batch request.
+***/
+
+//No params:
+{
+ "jsonrpc" : "2.0",
+ "method" : "UI.OnReady"
+}
+
+//With params:
+
+{
+ "jsonrpc" : "2.0",
+ "method" : "BasicCommunication.OnDeviceListUpdated",
+ "params" :
+ {
+ "deviceList" : [ "XT910", "GT-I9300", "HTC Explorer A310e" ]
+ }
+}
+
+{
+ "jsonrpc" : "2.0",
+ "method" : "Buttons.OnButtonPress",
+ "params" :
+ {
+ "mode" : "SHORT",
+ "name" : "OK"
+ }
+}
+
+#########################################################################################
+
+/*****
+ Request-response pairs
+
+ * Spec (from http://www.jsonrpc.org/specification):
+ Request object
+ A rpc call is represented by sending a Request object to a Server. The Request object has the following members:
+
+ jsonrpc
+ A String specifying the version of the JSON-RPC protocol. MUST be exactly "2.0".
+ method
+ A String containing the name of the method to be invoked. Method names that begin with the word rpc followed by a period character (U+002E or ASCII 46) are reserved for rpc-internal methods and extensions and MUST NOT be used for anything else.
+ params
+ A Structured value that holds the parameter values to be used during the invocation of the method. This member MAY be omitted.
+ id
+ An identifier established by the Client that MUST contain a String, Number, or NULL value if included. If it is not included it is assumed to be a notification. The value SHOULD normally not be Null and Numbers SHOULD NOT contain fractional parts
+*****/
+
+//Params in request
+{
+ "id" : 36,
+ "jsonrpc" : "2.0",
+ "method" : "UI.Alert",
+ "params" :
+ {
+ "alertText1" : "Alert Line 1",
+ "alertText2" : "Alert Line 2",
+ "alertText3" : "Alert Line 3",
+ "appId" : 65537,
+ "duration" : 5000,
+ "playTone" : true,
+ "ttsChunks" :
+ [
+
+ {
+ "text" : "Text to Speak"
+ }
+ ]
+ }
+}
+
+//No params in request
+{
+ "id" : 19,
+ "jsonrpc" : "2.0",
+ "method" : "Buttons.GetCapabilities"
+}
+
+/****
+ * Spec (from http://www.jsonrpc.org/specification):
+ Response object
+ When a rpc call is made, the Server MUST reply with a Response, except for in the case of Notifications. The Response is expressed as a single JSON Object, with the following members:
+
+ jsonrpc
+ A String specifying the version of the JSON-RPC protocol. MUST be exactly "2.0".
+ result
+ This member is REQUIRED on success.
+ This member MUST NOT exist if there was an error invoking the method.
+ The value of this member is determined by the method invoked on the Server.
+ error
+ This member is REQUIRED on error.
+ This member MUST NOT exist if there was no error triggered during invocation.
+ The value for this member MUST be an Object as defined below.
+ id
+ This member is REQUIRED.
+ It MUST be the same as the value of the id member in the Request Object.
+ If there was an error in detecting the id in the Request object (e.g. Parse error/Invalid Request), it MUST be Null.
+ * Additions:
+ result MUST contain 'method' which has to be the same as in 'request'.
+
+
+****/
+
+/****
+ * Error object
+ When a rpc call encounters an error, the Response Object MUST contain the error member with a value that is a Object with the following members:
+
+ code
+ A Number that indicates the error type that occurred.
+ This MUST be an integer.
+ message
+ A String providing a short description of the error.
+ The message SHOULD be limited to a concise single sentence.
+ data
+ A Primitive or Structured value that contains additional information about the error.
+ This may be omitted.
+ The value of this member is defined by the Server (e.g. detailed error information, nested errors etc.).
+
+
+ * Additions:
+ result along with error MUST contain 'code' which is value from Result enum provided in HMI_API.xml
+ error MUST contain 'method' which is the same as 'method' in request for this error in field 'data'.
+****/
+
+//Response with no params in it (code and method are necessary)
+{
+ "id" : 36,
+ "jsonrpc" : "2.0",
+ "result" :
+ {
+ "code" : 0,
+ "method": "UI.Alert"
+ }
+}
+
+// extra params in response
+{
+ "id" : 19,
+ "jsonrpc" : "2.0",
+ "result" :
+ {
+ "capabilities" :
+ [
+
+ {
+ "longPressAvailable" : true,
+ "name" : "PRESET_0",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "PRESET_1",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "PRESET_2",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "PRESET_3",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "PRESET_4",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "PRESET_5",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "PRESET_6",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "PRESET_7",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "PRESET_8",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "PRESET_9",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "OK",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "SEEKLEFT",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "SEEKRIGHT",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "TUNEUP",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ },
+
+ {
+ "longPressAvailable" : true,
+ "name" : "TUNEDOWN",
+ "shortPressAvailable" : true,
+ "upDownAvailable" : true
+ }
+ ],
+ "presetBankCapabilities" :
+ {
+ "onScreenPresetsAvailable" : true
+ },
+ "code" : 0,
+ "method" : "Buttons.GetCapabilities"
+ }
+}
+
+//Erroneous response
+{
+ "id" : 35,
+ "jsonrpc" : "2.0",
+ "error" :
+ {
+ "code" : 12,
+ "message" : "File with this name is not available",
+ "data" : {
+ "method" : "Buttons.GetCapabilities"
+ }
+ }
+}
diff --git a/SDL_Core/src/components/Interfaces/Json_Mobile_side_message_spec.txt b/SDL_Core/src/components/Interfaces/Json_Mobile_side_message_spec.txt
new file mode 100644
index 000000000..02d1233bb
--- /dev/null
+++ b/SDL_Core/src/components/Interfaces/Json_Mobile_side_message_spec.txt
@@ -0,0 +1,62 @@
+/*
+* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+Version = 1.0
+
+This file describes message structure for communication between SDL and Mobile SDK.
+
+Json string used for communication consists of parameter names and values which can be either objects, arrays or 'simple' values such as strings, numbers and boolean values.
+Example:
+{"syncFileName":"action.png","fileType":"GRAPHIC_PNG"}
+where
+- syncFileName - name of parameter with value of type string ("action.png")
+- fileType - name of parameter with value passed as type string ("GRAPHIC_PNG").
+{"resultCode" : "SUCCESS", "success" : true}
+- resultCode - name of parameter with value passed as type string("SUCCESS")
+- success - name of parameter with value of type boolean (true)
+
+Parameter names, types, fields of possible values are provided in specification stored in MOBILE_API.xml file.
+
+Each RPC described in this document can be represented in json format;
+RPC type (Request/Response/Notification) is passed in binary header which comes along with json string as well as ID representing particular RPC. For instance, according to MOBILE_API.xml PutFile RPC has functionID="PutFileID" which can be found in FunctionID enum with value equal to 32. Hence binary header for this RPC Request will contain RPC Type half-byte set to 0 (Request), RPC Function ID 3.5 bytes set to 32.
+PutFile RPC Request has mandatory params:
+syncFileName of type String
+fileType of enum type FileType
+and optional parameter:
+persistentFile of type Boolean.
+Hence with file name set to 'action.png' and file type to PNG, optional parameter ommited, json string of PutFile RPC Request will look like:
+{"syncFileName":"action.png","fileType":"GRAPHIC_PNG"}
+
+PutFile Response RPC as any other Response RPC in MOBILE_API.xml must have resultCode (with values from provided enum) and success (with value of type boolean) parameters and optional info parameter (with value of type string). PutFile Response RPC also has mandatory parameter spaceAvailable with value of type Integer in range from 0 to 2000000000.
+Hence, Json string for PutFile Response RPC can look like follows:
+{"resultCode":"SUCCESS","spaceAvailable":104845882,"success":true}
+for successful execution of RPC.
diff --git a/SDL_Core/src/components/Interfaces/MOBILE_API.xml b/SDL_Core/src/components/Interfaces/MOBILE_API.xml
new file mode 100644
index 000000000..78debb95e
--- /dev/null
+++ b/SDL_Core/src/components/Interfaces/MOBILE_API.xml
@@ -0,0 +1,4889 @@
+<?xml version="1.0" standalone="no"?>
+<?xml-stylesheet type="text/xml" href="protocol2html.xsl"?>
+
+<interface name="Ford Sync RAPI" version="2.1B" date="2013-05-30">
+
+ <enum name="Result" internal_scope="base">
+ <element name="SUCCESS">
+ <description>The request succeeded</description>
+ </element>
+ <element name="UNSUPPORTED_REQUEST">
+ <description>The request is not supported by Sync</description>
+ </element>
+ <element name="UNSUPPORTED_RESOURCE">
+ <description>
+ A button that was requested for subscription is not supported under the current system.
+ NOTE: could become a more generic UNSUPPORTED_RESOURCE by merging with VEHIVLE_DATA_NOT_AVAILABLE.
+ </description>
+ </element>
+ <element name="DISALLOWED">
+ <description>RPC is not authorized in local policy table.</description>
+ </element>
+ <element name="REJECTED">
+ <description>
+ The requested command was rejected, e.g. because mobile app is in background and cannot perform any HMI commands.
+ Or an HMI command (e.g. Speak) is rejected because a higher priority HMI command (e.g. Alert) is playing.
+ </description>
+ </element>
+ <element name="ABORTED">
+ <description>
+ A command was aborted, for example due to user interaction (e.g. user pressed button).
+ Or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested.
+ </description>
+ </element>
+ <element name="IGNORED">
+ <description>
+ A command was ignored, because the intended result is already in effect.
+ For example, SetMediaClockTimer was used to pause the media clock although the clock is paused already.
+ NOTE: potentially replaces SUBSCRIBED_ALREADY
+ </description>
+ </element>
+ <element name="RETRY">
+ <description>The user interrupted the RPC (e.g. PerformAudioPassThru) and indicated to start over. Note, the app must issue the new RPC.</description>
+ </element>
+ <element name="IN_USE">
+ <description>
+ The data may not be changed, because it is currently in use.
+ For example when trying to delete a command set that is currently involved in an interaction.
+ </description>
+ </element>
+ <element name="VEHICLE_DATA_NOT_AVAILABLE">
+ <description>The requested vehicle data is not available on this vehicle or is not published.</description>
+ </element>
+ <element name="TIMED_OUT">
+ <description>Overlay reached the maximum timeout and closed.</description>
+ </element>
+ <element name="INVALID_DATA">
+ <description>
+ The data sent is invalid. For example:
+ Invalid Json syntax
+ Parameters out of bounds (number or enum range)
+ Mandatory parameters not provided
+ Parameter provided with wrong type
+ Invalid characters
+ Empty string
+ </description>
+ </element>
+ <element name="CHAR_LIMIT_EXCEEDED"/>
+ <element name="INVALID_ID">
+ <description>
+ One of the provided IDs is not valid. For example
+ This applies to CorrelationID, SubscriptionID [@TODO if SubscriptionID is used], CommandID, MenuID, [@TODO: missed one?]
+ </description>
+ </element>
+ <element name="DUPLICATE_NAME">
+ <description>There was a conflict with an registered name (application or menu item) or vr command</description>
+ </element>
+ <element name="APPLICATION_NOT_REGISTERED">
+ <description>An command can not be executed because no application has been registered with RegisterApplication.</description>
+ </element>
+ <element name="WRONG_LANGUAGE">
+ <description>
+ The requested language is currently not supported.
+ Might be because of a mismatch of the currently active language on Sync and the requested language
+ </description>
+ </element>
+ <element name="OUT_OF_MEMORY">
+ <description>The system could not process the request because the necessary memory couldn't be allocated</description>
+ </element>
+ <element name="TOO_MANY_PENDING_REQUESTS">
+ <description>There are too many requests pending (means, that the response has not been delivered, yet).</description>
+ <designdescription>There may be a maximum of 1000 pending requests at a time.</designdescription>
+ </element>
+ <element name="TOO_MANY_APPLICATIONS">
+ <description>There are already too many registered applications</description>
+ </element>
+ <element name="APPLICATION_REGISTERED_ALREADY">
+ <description>RegisterApplication has been called again, after a RegisterApplication was successful before.</description>
+ </element>
+ <element name="WARNINGS">
+ <description>The RPC (e.g. SubscribeVehicleData) executed successfully but one or more items have a warning or failure.</description>
+ </element>
+ <element name="GENERIC_ERROR">
+ <description>Provided data is valid but something went wrong in the lower layers.</description>
+ </element>
+ <element name="USER_DISALLOWED">
+ <description>RPC is included in a functional group explicitly blocked by the user.</description>
+ </element>
+ <element name="UNSUPPORTED_VERSION">
+ <description>Sync doesn't support the protocol that is requested by the mobile application</description>
+ </element>
+ <element name="VEHICLE_DATA_NOT_ALLOWED">
+ <description>The user has turned off access to vehicle data, and it is globally unavailable to mobile applications.</description>
+ </element>
+ <element name="FILE_NOT_FOUND">
+ <description>A specified file could not be found on Sync.</description>
+ </element>
+ <element name="CANCEL_ROUTE">
+ <description>User selected to Cancel Route.</description>
+ </element>
+ <element name="TRUNCATED_DATA">
+ <description>The RPC (e.g. ReadDID) executed successfully but the data exceeded the platform maximum threshold and thus, only part of the data is available.</description>
+ </element>
+ <element name="SAVED">
+ <description>The RPC (e.g. Slider) executed successfully and the user elected to save the current position / value.</description>
+ </element>
+ <element name="INVALID_CERT">
+ <description>The certificate provided during authentication is invalid.</description>
+ </element>
+ <element name="EXPIRED_CERT">
+ <description>The certificate provided during authentication is expired.</description>
+ </element>
+ <element name="RESUME_FAILED">
+ <description>The provided hash ID does not match the hash of the current set of registered data or the core could not resume the previous data.</description>
+ </element>
+ </enum>
+
+ <enum name="ButtonPressMode">
+ <element name="LONG">
+ <description>
+ A button was released, after it was pressed for a long time
+ Actual timing is defined by Sync and may vary
+ </description>
+ </element>
+ <element name="SHORT">
+ <description>
+ A button was released, after it was pressed for a short time
+ Actual timing is defined by Sync and may vary
+ </description>
+ </element>
+ </enum>
+
+ <enum name="ButtonEventMode">
+ <element name="BUTTONUP">
+ <description>A button has been released up</description>
+ </element>
+ <element name="BUTTONDOWN">
+ <description>A button has been pressed down</description>
+ </element>
+ </enum>
+
+ <enum name="Language">
+ <element name="EN-US" internal_name="EN_US">
+ <description>English - US</description>
+ </element>
+ <element name="ES-MX" internal_name="ES_MX">
+ <description>Spanish - Mexico</description>
+ </element>
+ <element name="FR-CA" internal_name="FR_CA">
+ <description>French - Canada</description>
+ </element>
+ <element name="DE-DE" internal_name="DE_DE">
+ <description>German - Germany</description>
+ </element>
+ <element name="ES-ES" internal_name="ES_ES">
+ <description>Spanish - Spain</description>
+ </element>
+ <element name="EN-GB" internal_name="EN_GB">
+ <description>English - GB</description>
+ </element>
+ <element name="RU-RU" internal_name="RU_RU">
+ <description>Russian - Russia</description>
+ </element>
+ <element name="TR-TR" internal_name="TR_TR">
+ <description>Turkish - Turkey</description>
+ </element>
+ <element name="PL-PL" internal_name="PL_PL">
+ <description>Polish - Poland</description>
+ </element>
+ <element name="FR-FR" internal_name="FR_FR">
+ <description>French - France</description>
+ </element>
+ <element name="IT-IT" internal_name="IT_IT">
+ <description>Italian - Italy</description>
+ </element>
+ <element name="SV-SE" internal_name="SV_SE">
+ <description>Swedish - Sweden</description>
+ </element>
+ <element name="PT-PT" internal_name="PT_PT">
+ <description>Portuguese - Portugal</description>
+ </element>
+ <element name="NL-NL" internal_name="NL_NL">
+ <description>Dutch (Standard) - Netherlands</description>
+ </element>
+ <element name="EN-AU" internal_name="EN_AU">
+ <description>English - Australia</description>
+ </element>
+ <element name="ZH-CN" internal_name="ZH_CN">
+ <description>Mandarin - China</description>
+ </element>
+ <element name="ZH-TW" internal_name="ZH_TW">
+ <description>Mandarin - Taiwan</description>
+ </element>
+ <element name="JA-JP" internal_name="JA_JP">
+ <description>Japanese - Japan</description>
+ </element>
+ <element name="AR-SA" internal_name="AR_SA">
+ <description>Arabic - Saudi Arabia</description>
+ </element>
+ <element name="KO-KR" internal_name="KO_KR">
+ <description>Korean - South Korea</description>
+ </element>
+ <element name="PT-BR" internal_name="PT_BR">
+ <description>Portuguese - Brazil</description>
+ </element>
+ <element name="CS-CZ" internal_name="CS_CZ">
+ <description>Czech - Czech Republic</description>
+ </element>
+ <element name="DA-DK" internal_name="DA_DK">
+ <description>Danish - Denmark</description>
+ </element>
+ <element name="NO-NO" internal_name="NO_NO">
+ <description>Norwegian - Norway</description>
+ </element>
+</enum>
+
+ <enum name="UpdateMode">
+ <description>Describes how the media clock timer should behave on the platform</description>
+ <element name="COUNTUP" />
+ <description>Starts the media clock timer counting upwards, as in time elapsed.</description>
+ <element name="COUNTDOWN" />
+ <description>Starts the media clock timer counting downwards, as in time remaining.</description>
+ <element name="PAUSE" />
+ <description>Pauses the media clock timer</description>
+ <element name="RESUME" />
+ <description>Resume the media clock timer</description>
+ <element name="CLEAR" />
+ <description>Clears the media clock timer (previously done through Show->mediaClock)</description>
+ </enum>
+
+ <enum name="TimerMode">
+ <element name="UP" />
+ <description>Causes the media clock timer to update from 0:00 to a specified time</description>
+ <element name="DOWN" />
+ <description>Causes the media clock timer to update from a specified time to 0:00</description>
+ <element name="NONE" />
+ <description>Indicates to not use the media clock timer</description>
+ </enum>
+
+ <enum name="InteractionMode">
+ <description>For application-requested interactions, this mode indicates the method in which the user is notified and uses the interaction.</description>
+ <element name="MANUAL_ONLY" />
+ <description>
+ This mode causes the interaction to only occur on the display, meaning the choices are provided only via the display.
+ Selections are made with the OK and Seek Right and Left, Tune Up and Down buttons.
+ </description>
+ <element name="VR_ONLY" />
+ <description>
+ This mode causes the interaction to only occur using V4.
+ Selections are made by saying the command.
+ </description>
+ <element name="BOTH" />
+ <description>
+ This mode causes both a VR and display selection option for an interaction.
+ Selections can be made either from the menu display or by speaking the command.
+ </description>
+ </enum>
+
+ <enum name="LayoutMode">
+ <description>For touchscreen interactions, the mode of how the choices are presented.</description>
+ <element name="ICON_ONLY" />
+ <description>
+ This mode causes the interaction to display the previous set of choices as icons.
+ </description>
+ <element name="ICON_WITH_SEARCH" />
+ <description>
+ This mode causes the interaction to display the previous set of choices as icons along with a search field in the HMI.
+ </description>
+ <element name="LIST_ONLY" />
+ <description>
+ This mode causes the interaction to display the previous set of choices as a list.
+ </description>
+ <element name="LIST_WITH_SEARCH" />
+ <description>
+ This mode causes the interaction to display the previous set of choices as a list along with a search field in the HMI.
+ </description>
+ <element name="KEYBOARD" />
+ <description>
+ This mode causes the interaction to immediately display a keyboard entry through the HMI.
+ </description>
+ </enum>
+
+ <enum name="HMILevel">
+ <description>Enumeraction that describes current levels of HMI.</description>
+ <element name="FULL" internal_name="HMI_FULL" />
+ <element name="LIMITED" internal_name="HMI_LIMITED" />
+ <element name="BACKGROUND" internal_name="HMI_BACKGROUND" />
+ <element name="NONE" internal_name="HMI_NONE" />
+ </enum>
+
+ <enum name="AudioStreamingState">
+ <description>Enumeraction that describes possible states of audio streaming.</description>
+ <element name="AUDIBLE" />
+ <element name="ATTENUATED" />
+ <element name="NOT_AUDIBLE" />
+ </enum>
+
+ <enum name="SystemAction">
+ <description>Enumeration that describes system actions that can be triggered.</description>
+ <element name="DEFAULT_ACTION">
+ <description>Default action occurs. Standard behavior (e.g. SoftButton clears overlay).</description>
+ </element>
+ <element name="STEAL_FOCUS">
+ <description>App is brought into HMI_FULL.</description>
+ </element>
+ <element name="KEEP_CONTEXT">
+ <description>Current system context is maintained. An overlay is persisted even though a SoftButton has been pressed and the notification sent.</description>
+ </element>
+ </enum>
+
+ <enum name="SystemContext">
+ <description>Enumeration that describes possible contexts an app's HMI might be in.</description>
+ <description>Communicated to whichever app is in HMI FULL, except Alert.</description>
+ <element name="MAIN" internal_name="SYSCTXT_MAIN">
+ <description>The app's persistent display (whether media/non-media/navigation) is fully visible onscreen.</description>
+ </element>
+ <element name="VRSESSION" internal_name="SYSCTXT_VRSESSION">
+ <description>The system is currently in a VR session (with whatever dedicated VR screen being overlaid onscreen).</description>
+ </element>
+ <element name="MENU" internal_name="SYSCTXT_MENU">
+ <description>The system is currently displaying an in-App menu onscreen.</description>
+ </element>
+ <element name="HMI_OBSCURED" internal_name="SYSCTXT_HMI_OBSCURED">
+ <description>The app's display HMI is currently being obscured by either a system or other app's overlay.</description>
+ </element>
+ <element name="ALERT" internal_name="SYSCTXT_ALERT">
+ <description>Broadcast only to whichever app has an alert currently being displayed.</description>
+ </element>
+ </enum>
+
+ <enum name="SoftButtonType">
+ <description>Contains information about the SoftButton capabilities.</description>
+ <element name="TEXT" internal_name="SBT_TEXT"/>
+ <element name="IMAGE" internal_name="SBT_IMAGE"/>
+ <element name="BOTH" internal_name="SBT_BOTH"/>
+ </enum>
+
+ <enum name="AppInterfaceUnregisteredReason">
+ <description>Error code, which comes from sync side.</description>
+ <element name="USER_EXIT" />
+ <element name="IGNITION_OFF" />
+ <element name="BLUETOOTH_OFF" />
+ <element name="USB_DISCONNECTED" />
+ <element name="REQUEST_WHILE_IN_NONE_HMI_LEVEL" />
+ <element name="TOO_MANY_REQUESTS" />
+ <element name="DRIVER_DISTRACTION_VIOLATION" />
+ <element name="LANGUAGE_CHANGE" />
+ <element name="MASTER_RESET" />
+ <element name="FACTORY_DEFAULTS" />
+ <element name="APP_UNAUTHORIZED" />
+ </enum>
+
+ <enum name="TriggerSource">
+ <description>Indicates the source from where the command was triggered.</description>
+ <element name="MENU" internal_name="TS_MENU" />
+ <element name="VR" internal_name="TS_VR" />
+ <element name="KEYBOARD" internal_name="TS_KEYBOARD" />
+ </enum>
+
+ <enum name="HmiZoneCapabilities">
+ <description>Contains information about the HMI zone capabilities.</description>
+ <description>For future use.</description>
+ <element name="FRONT" />
+ <element name="BACK" />
+ </enum>
+
+ <enum name="SpeechCapabilities">
+ <description>Contains information about the TTS capabilities.</description>
+ <element name="TEXT" internal_name="SC_TEXT"/>
+ <element name="SAPI_PHONEMES" />
+ <element name="LHPLUS_PHONEMES" />
+ <element name="PRE_RECORDED" />
+ <element name="SILENCE" />
+ </enum>
+
+ <enum name="VrCapabilities">
+ <description>Contains information about the VR capabilities.</description>
+ <element name="TEXT" internal_name="VR_TEXT"/>
+ </enum>
+
+ <enum name="PrerecordedSpeech">
+ <description>Contains a list of prerecorded speech items present on the platform.</description>
+ <element name="HELP_JINGLE" />
+ <element name="INITIAL_JINGLE" />
+ <element name="LISTEN_JINGLE" />
+ <element name="POSITIVE_JINGLE" />
+ <element name="NEGATIVE_JINGLE" />
+ </enum>
+
+ <enum name="SamplingRate">
+ <description>Describes different sampling options for PerformAudioPassThru.</description>
+ <element name="8KHZ" internal_name="SamplingRate_8KHZ"/>
+ <element name="16KHZ" internal_name="SamplingRate_16KHZ"/>
+ <element name="22KHZ" internal_name="SamplingRate_22KHZ"/>
+ <element name="44KHZ" internal_name="SamplingRate_44KHZ"/>
+ </enum>
+
+ <enum name="BitsPerSample">
+ <description>Describes different quality options for PerformAudioPassThru.</description>
+ <element name="8_BIT" internal_name="BitsPerSample_8_BIT"/>
+ <element name="16_BIT" internal_name="BitsPerSample_16_BIT"/>
+ </enum>
+
+ <enum name="AudioType">
+ <description>Describes different audio type options for PerformAudioPassThru.</description>
+ <element name="PCM" />
+ </enum>
+
+ <struct name="AudioPassThruCapabilities">
+ <description>Describes different audio type configurations for PerformAudioPassThru.</description>
+ <description>e.g. {8kHz,8-bit,PCM}</description>
+ <param name="samplingRate" type="SamplingRate"/>
+ <param name="bitsPerSample" type="BitsPerSample"/>
+ <param name="audioType" type="AudioType"/>
+ </struct>
+
+ <enum name="VehicleDataType">
+ <description>Defines the data types that can be published and subscribed to.</description>
+ <element name="VEHICLEDATA_GPS">
+ <description>Notifies GPSData may be subscribed</description>
+ </element>
+ <element name="VEHICLEDATA_SPEED" />
+ <element name="VEHICLEDATA_RPM" />
+ <element name="VEHICLEDATA_FUELLEVEL" />
+ <element name="VEHICLEDATA_FUELLEVEL_STATE" />
+ <element name="VEHICLEDATA_FUELCONSUMPTION" />
+ <element name="VEHICLEDATA_EXTERNTEMP" />
+ <element name="VEHICLEDATA_VIN" />
+ <element name="VEHICLEDATA_PRNDL" />
+ <element name="VEHICLEDATA_TIREPRESSURE" />
+ <element name="VEHICLEDATA_ODOMETER" />
+ <element name="VEHICLEDATA_BELTSTATUS" />
+ <element name="VEHICLEDATA_BODYINFO" />
+ <element name="VEHICLEDATA_DEVICESTATUS" />
+ <element name="VEHICLEDATA_ECALLINFO" />
+ <element name="VEHICLEDATA_AIRBAGSTATUS" />
+ <element name="VEHICLEDATA_EMERGENCYEVENT" />
+ <element name="VEHICLEDATA_CLUSTERMODESTATUS" />
+ <element name="VEHICLEDATA_MYKEY" />
+ <element name="VEHICLEDATA_BRAKING" />
+ <element name="VEHICLEDATA_WIPERSTATUS" />
+ <element name="VEHICLEDATA_HEADLAMPSTATUS" />
+ <element name="VEHICLEDATA_BATTVOLTAGE" />
+ <element name="VEHICLEDATA_ENGINETORQUE" />
+ <element name="VEHICLEDATA_ACCPEDAL" />
+ <element name="VEHICLEDATA_STEERINGWHEEL" />
+ </enum>
+
+ <enum name="ButtonName">
+ <description>Defines the hard (physical) and soft (touchscreen) buttons available from SYNC</description>
+ <element name="OK" />
+ <element name="SEEKLEFT" />
+ <element name="SEEKRIGHT" />
+ <element name="TUNEUP" />
+ <element name="TUNEDOWN" />
+ <element name="PRESET_0" />
+ <element name="PRESET_1" />
+ <element name="PRESET_2" />
+ <element name="PRESET_3" />
+ <element name="PRESET_4" />
+ <element name="PRESET_5" />
+ <element name="PRESET_6" />
+ <element name="PRESET_7" />
+ <element name="PRESET_8" />
+ <element name="PRESET_9" />
+ <element name="CUSTOM_BUTTON" />
+ <element name="SEARCH" />
+ </enum>
+
+ <enum name="MediaClockFormat">
+ <element name="CLOCK1">
+ <description>
+ minutesFieldWidth = 2;minutesFieldMax = 19;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 19;maxMinutes = 59;maxSeconds = 59;
+ used for Type II and CID headunits
+ </description>
+ </element>
+ <element name="CLOCK2">
+ <description>
+ minutesFieldWidth = 3;minutesFieldMax = 199;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 59;maxMinutes = 59;maxSeconds = 59;
+ used for Type V headunit
+ </description>
+ </element>
+ <element name="CLOCK3">
+ <description>
+ minutesFieldWidth = 2;minutesFieldMax = 59;secondsFieldWidth = 2;secondsFieldMax = 59;maxHours = 9;maxMinutes = 59;maxSeconds = 59;
+ used for GEN1.1 MFD3/4/5 headunits
+ </description>
+ </element>
+ <element name="CLOCKTEXT1">
+ <description>
+ 5 characters possible
+ Format: 1|sp c :|sp c c
+ 1|sp : digit "1" or space
+ c : character out of following character set: sp|0-9|[letters, see TypeII column in XLS. See [@TODO: create file ref]]
+ :|sp : colon or space
+ used for Type II headunit
+ </description>
+ </element>
+ <element name="CLOCKTEXT2">
+ <description>
+ 5 chars possible
+ Format: 1|sp c :|sp c c
+ 1|sp : digit "1" or space
+ c : character out of following character set: sp|0-9|[letters, see CID column in XLS. See [@TODO: create file ref]]
+ :|sp : colon or space
+ used for CID headunit
+ NOTE: difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character set
+ </description>
+ </element>
+ <element name="CLOCKTEXT3">
+ <description>
+ 6 chars possible
+ Format: 1|sp c c :|sp c c
+ 1|sp : digit "1" or space
+ c : character out of following character set: sp|0-9|[letters, see Type 5 column in XLS]. See [@TODO: create file ref]
+ :|sp : colon or space
+ used for Type V headunit
+ </description>
+ </element>
+ <element name="CLOCKTEXT4">
+ <description>
+ 6 chars possible
+ Format: c :|sp c c : c c
+ :|sp : colon or space
+ c : character out of following character set: sp|0-9|[letters].
+ used for GEN1.1 MFD3/4/5 headunits
+ </description>
+ </element>
+ </enum>
+
+ <enum name="DisplayType">
+ <description>See DAES for further infos regarding the displays</description>
+ <element name="CID"/>
+ <element name="TYPE2" />
+ <element name="TYPE5" />
+ <element name="NGN" />
+ <element name="GEN2_8_DMA" />
+ <element name="GEN2_6_DMA" />
+ <element name="MFD3" />
+ <element name="MFD4" />
+ <element name="MFD5" />
+ <element name="GEN3_8-INCH" internal_name="GEN3_8_INCH" />
+ </enum>
+
+ <enum name="TextFieldName">
+ <element name="mainField1">
+ <description>The first line of first set of main fields of the persistent display; applies to "Show"</description>
+ </element>
+
+ <element name="mainField2">
+ <description>The second line of first set of main fields of the persistent display; applies to "Show"</description>
+ </element>
+
+ <element name="mainField3">
+ <description>The first line of second set of main fields of persistent display; applies to "Show"</description>
+ </element>
+
+ <element name="mainField4">
+ <description>The second line of second set of main fields of the persistent display; applies to "Show"</description>
+ </element>
+
+ <element name="statusBar">
+ <description>The status bar on NGN; applies to "Show"</description>
+ </element>
+
+ <element name="mediaClock">
+ <description>Text value for MediaClock field; applies to "Show"</description>
+ </element>
+
+ <element name="mediaTrack">
+ <description>The track field of NGN and GEN1.1 MFD displays. This field is only available for media applications; applies to "Show"</description>
+ </element>
+
+ <element name="alertText1">
+ <description>The first line of the alert text field; applies to "Alert"</description>
+ </element>
+
+ <element name="alertText2">
+ <description>The second line of the alert text field; applies to "Alert"</description>
+ </element>
+
+ <element name="alertText3">
+ <description>The third line of the alert text field; applies to "Alert"</description>
+ </element>
+
+ <element name="scrollableMessageBody">
+ <description>Long form body of text that can include newlines and tabs; applies to "ScrollableMessage"</description>
+ </element>
+
+ <element name="initialInteractionText">
+ <description> First line suggestion for a user response (in the case of VR enabled interaction)</description>
+ </element>
+
+ <element name="navigationText1">
+ <description> First line of navigation text</description>
+ </element>
+
+ <element name="navigationText2">
+ <description> Second line of navigation text</description>
+ </element>
+
+ <element name="ETA">
+ <description> Estimated Time of Arrival time for navigation</description>
+ </element>
+
+ <element name="totalDistance">
+ <description> Total distance to destination for navigation</description>
+ </element>
+
+ <element name="audioPassThruDisplayText1">
+ <description> First line of text for audio pass thru</description>
+ </element>
+
+ <element name="audioPassThruDisplayText2">
+ <description> Second line of text for audio pass thru</description>
+ </element>
+
+ <element name="sliderHeader">
+ <description> Header text for slider</description>
+ </element>
+
+ <element name="sliderFooter">
+ <description> Footer text for slider</description>
+ </element>
+
+ <element name="notificationText">
+ <description> Footer text for slider</description>
+ </element>
+
+ <element name="menuName">
+ <description> Primary text for Choice</description>
+ </element>
+
+ <element name="secondaryText">
+ <description> Secondary text for Choice</description>
+ </element>
+
+ <element name="tertiaryText">
+ <description> Tertiary text for Choice</description>
+ </element>
+
+ <element name="timeToDestination">
+ <description> Time to destination</description>
+ </element>
+
+ <element name="turnText">
+ <description> Turn text</description>
+ </element>
+
+ </enum>
+
+ <enum name="ImageFieldName">
+ <element name="softButtonImage">
+ <description>The image field for SoftButton</description>
+ </element>
+
+ <element name="choiceImage">
+ <description>The first image field for Choice</description>
+ </element>
+
+ <element name="choiceSecondaryImage">
+ <description>The secondary image field for Choice</description>
+ </element>
+
+ <element name="vrHelpItem">
+ <description>The image field for vrHelpItem</description>
+ </element>
+
+ <element name="turnIcon">
+ <description>The image field for Turn</description>
+ </element>
+
+ <element name="menuIcon">
+ <description>The image field for the menu icon in SetGlobalProperties</description>
+ </element>
+
+ <element name="cmdIcon">
+ <description>The image field for AddCommand</description>
+ </element>
+
+ <element name="appIcon">
+ <description>The image field for the app icon (set by setAppIcon)</description>
+ </element>
+
+ <element name="graphic">
+ <description>The image field for Show</description>
+ </element>
+
+ <element name="showConstantTBTIcon">
+ <description>The primary image field for ShowConstantTBT</description>
+ </element>
+
+ <element name="showConstantTBTNextTurnIcon">
+ <description>The secondary image field for ShowConstantTBT</description>
+ </element>
+ </enum>
+
+ <enum name="PredefinedLayout" platform="documentation">
+ <description>Predefined screen layout.</description>
+
+ <element name="DEFAULT" rootscreen="true">
+ <description>
+ Default media / non-media screen.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="MEDIA" rootscreen="true">
+ <description>
+ Default Media screen.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="NON_MEDIA" rootscreen="true">
+ <description>
+ Default Non-media screen.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="ONSCREEN_PRESETS" rootscreen="true">
+ <description>
+ Custom root media screen containing app-defined onscreen presets.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="NAV_FULLSCREEN_MAP" rootscreen="true" scope="partner">
+ <description>
+ Custom root template screen containing full screen map with navigation controls.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="NAV_LIST" rootscreen="true" scope="partner">
+ <description>
+ Custom root template screen containing video represented list.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="NAV_KEYBOARD" rootscreen="true" scope="partner">
+ <description>
+ Custom root template screen containing video represented keyboard.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="GRAPHIC_WITH_TEXT" rootscreen="true">
+ <description>
+ Custom root template screen containing half-screen graphic with lines of text.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="TEXT_WITH_GRAPHIC" rootscreen="true">
+ <description>
+ Custom root template screen containing lines of text with half-screen graphic.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="TILES_ONLY" rootscreen="true">
+ <description>
+ Custom root template screen containing only tiled SoftButtons.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="TEXTBUTTONS_ONLY" rootscreen="true">
+ <description>
+ Custom root template screen containing only text SoftButtons.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="GRAPHIC_WITH_TILES" rootscreen="true">
+ <description>
+ Custom root template screen containing half-screen graphic with tiled SoftButtons.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="TILES_WITH_GRAPHIC" rootscreen="true">
+ <description>
+ Custom root template screen containing tiled SoftButtons with half-screen graphic.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS" rootscreen="true">
+ <description>
+ Custom root template screen containing half-screen graphic with text and SoftButtons.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC" rootscreen="true">
+ <description>
+ Custom root template screen containing text and SoftButtons with half-screen graphic.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="GRAPHIC_WITH_TEXTBUTTONS" rootscreen="true">
+ <description>
+ Custom root template screen containing half-screen graphic with text only SoftButtons.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="TEXTBUTTONS_WITH_GRAPHIC" rootscreen="true">
+ <description>
+ Custom root template screen containing text only SoftButtons with half-screen graphic.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="LARGE_GRAPHIC_WITH_SOFTBUTTONS" rootscreen="true">
+ <description>
+ Custom root template screen containing a large graphic and SoftButtons.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="DOUBLE_GRAPHIC_WITH_SOFTBUTTONS" rootscreen="true">
+ <description>
+ Custom root template screen containing two graphics and SoftButtons.
+ Can be set as a root screen.
+ </description>
+ </element>
+ <element name="LARGE_GRAPHIC_ONLY" rootscreen="true">
+ <description>
+ Custom root template screen containing only a large graphic.
+ Can be set as a root screen.
+ </description>
+ </element>
+ </enum>
+
+ <enum name="CharacterSet">
+ <description>The list of potential character sets</description>
+ <element name="TYPE2SET">
+ <description>See [@TODO: create file ref]</description>
+ </element>
+ <element name="TYPE5SET">
+ <description>See [@TODO: create file ref]</description>
+ </element>
+ <element name="CID1SET">
+ <description>See [@TODO: create file ref]</description>
+ </element>
+ <element name="CID2SET">
+ <description>See [@TODO: create file ref]</description>
+ </element>
+ <issue creator="rs">Real sets have not been defined yet?</issue>
+ </enum>
+
+ <enum name="TextAlignment">
+ <description>The list of possible alignments, left, right, or centered</description>
+ <element name="LEFT_ALIGNED" />
+ <element name="RIGHT_ALIGNED" />
+ <element name="CENTERED" />
+ </enum>
+
+ <enum name="TBTState">
+ <description>Enumeration that describes possible states of turn-by-turn client or AppLink app.</description>
+ <element name="ROUTE_UPDATE_REQUEST" />
+ <element name="ROUTE_ACCEPTED" />
+ <element name="ROUTE_REFUSED" />
+ <element name="ROUTE_CANCELLED" />
+ <element name="ETA_REQUEST" />
+ <element name="NEXT_TURN_REQUEST" />
+ <element name="ROUTE_STATUS_REQUEST" />
+ <element name="ROUTE_SUMMARY_REQUEST" />
+ <element name="TRIP_STATUS_REQUEST" />
+ <element name="ROUTE_UPDATE_REQUEST_TIMEOUT" />
+ </enum>
+
+ <enum name="DriverDistractionState">
+ <description>Enumeration that describes possible states of driver distraction.</description>
+ <element name="DD_ON" />
+ <element name="DD_OFF" />
+ </enum>
+
+ <enum name="ImageType">
+ <description>Contains information about the type of image.</description>
+ <element name="STATIC" />
+ <element name="DYNAMIC" />
+ </enum>
+
+ <struct name="Image">
+ <param name="value" minlength="0" maxlength="65535" type="String">
+ <description>Either the static hex icon value or the binary image file name identifier (sent by PutFile).</description>
+ </param>
+ <param name="imageType" type="ImageType">
+ <description>Describes, whether it is a static or dynamic image.</description>
+ </param>
+ </struct>
+
+ <struct name="SoftButton">
+ <param name="type" type="SoftButtonType">
+ <description>Describes, whether it is text, highlighted text, icon, or dynamic image. See softButtonType</description>
+ </param>
+ <param name="text" minlength="0" maxlength="500" type="String" mandatory="false">
+ <description>Optional text to display (if defined as TEXT or BOTH)</description>
+ </param>
+ <param name="image" type="Image" mandatory="false">
+ <description>Optional image struct for SoftButton (if defined as IMAGE or BOTH)</description>
+ </param>
+ <param name="isHighlighted" type="Boolean" defvalue="false" mandatory="false">
+ <description>
+ True, if highlighted
+ False, if not highlighted
+ </description>
+ </param>
+ <param name="softButtonID" type="Integer" minvalue="0" maxvalue="65535">
+ <description>Value which is returned via OnButtonPress / OnButtonEvent</description>
+ </param>
+ <param name="systemAction" type="SystemAction" defvalue="DEFAULT_ACTION" mandatory="false">
+ <description>Parameter indicating whether selecting a SoftButton shall call a specific system action. This is intended to allow Notifications to bring the callee into full / focus; or in the case of persistent overlays, the overlay can persist when a SoftButton is pressed.</description>
+ </param>
+ </struct>
+
+ <struct name="Choice">
+ <description>A choice is an option given to the user, which can be selected either by menu, or through voice recognition system.</description>
+ <param name="choiceID" type="Integer" minvalue="0" maxvalue="65535" />
+ <param name="menuName" type="String" maxlength="500" />
+ <param name="vrCommands" type="String" minsize="1" maxsize="100" maxlength="99" array="true" />
+ <param name="image" type="Image" mandatory="false"/>
+ <param name="secondaryText" maxlength="500" type="String" mandatory="false" scope="partner">
+ <description>Optional secondary text to display; e.g. address of POI in a search result entry</description>
+ </param>
+ <param name="tertiaryText" maxlength="500" type="String" mandatory="false" scope="partner">
+ <description>Optional tertiary text to display; e.g. distance to POI for a search result entry</description>
+ </param>
+ <param name="secondaryImage" type="Image" mandatory="false" scope="partner">
+ <description>Optional secondary image struct for choice</description>
+ </param>
+ </struct>
+
+ <struct name="VrHelpItem">
+ <param name="text" maxlength="500" type="String">
+ <description>Text to display for VR Help item</description>
+ </param>
+ <param name="image" type="Image" mandatory="false">
+ <description>Image struct for VR Help item</description>
+ </param>
+ <param name="position" type="Integer" minvalue="1" maxvalue="100">
+ <description>Position to display item in VR Help list</description>
+ </param>
+ </struct>
+
+ <struct name="SyncMsgVersion">
+ <description>Specifies the version number of the SYNC V4 protocol, that is supported by the mobile application</description>
+
+ <param name="majorVersion" type="Integer" minvalue="1" maxvalue="10">
+ <description>The major version indicates versions that is not-compatible to previous versions.</description>
+ </param>
+ <param name="minorVersion" type="Integer" minvalue="0" maxvalue="1000">
+ <description>The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality)</description>
+ </param>
+ </struct>
+
+ <enum name="GlobalProperty">
+ <description>The different global properties.</description>
+ <element name="HELPPROMPT">
+ <description>The property helpPrompt of setGlobalProperties</description>
+ </element>
+ <element name="TIMEOUTPROMPT">
+ <description>The property timeoutPrompt of setGlobalProperties</description>
+ </element>
+ <element name="VRHELPTITLE">
+ <description>The property vrHelpTitle of setGlobalProperties</description>
+ </element>
+ <element name="VRHELPITEMS">
+ <description>The property array of vrHelp of setGlobalProperties</description>
+ </element>
+ <element name="MENUNAME" scope="partner">
+ <description>The property in-app menu name of setGlobalProperties</description>
+ </element>
+ <element name="MENUICON" scope="partner">
+ <description>The property in-app menu icon of setGlobalProperties</description>
+ </element>
+ <element name="KEYBOARDPROPERTIES" scope="partner">
+ <description>The on-screen keyboard configuration of setGlobalProperties</description>
+ </element>
+ </enum>
+
+ <enum name="CompassDirection">
+ <description>The list of potential compass directions</description>
+ <element name="NORTH">
+ </element>
+ <element name="NORTHWEST">
+ </element>
+ <element name="WEST">
+ </element>
+ <element name="SOUTHWEST">
+ </element>
+ <element name="SOUTH">
+ </element>
+ <element name="SOUTHEAST">
+ </element>
+ <element name="EAST">
+ </element>
+ <element name="NORTHEAST">
+ </element>
+ </enum>
+
+ <enum name="Dimension">
+ <description>The supported dimensions of the GPS</description>
+ <element name="NO_FIX" internal_name="Dimension_NO_FIX">
+ <description>No GPS at all</description>
+ </element>
+ <element name="2D" internal_name="Dimension_2D">
+ <description>Longitude and lattitude</description>
+ </element>
+ <element name="3D" internal_name="Dimension_3D">
+ <description>Longitude and lattitude and altitude</description>
+ </element>
+ </enum>
+
+ <enum name="PRNDL">
+ <description>The selected gear.</description>
+ <element name="PARK">
+ <description>Parking</description>
+ </element>
+ <element name="REVERSE">
+ <description>Reverse gear</description>
+ </element>
+ <element name="NEUTRAL">
+ <description>No gear</description>
+ </element>
+ <element name="DRIVE">
+ </element>
+ <element name="SPORT">
+ <description>Drive Sport mode</description>
+ </element>
+ <element name="LOWGEAR">
+ <description>1st gear hold</description>
+ </element>
+ <element name="FIRST">
+ </element>
+ <element name="SECOND">
+ </element>
+ <element name="THIRD">
+ </element>
+ <element name="FOURTH">
+ </element>
+ <element name="FIFTH">
+ </element>
+ <element name="SIXTH">
+ </element>
+ <element name="SEVENTH">
+ </element>
+ <element name="EIGHTH">
+ </element>
+ <element name="UNKNOWN">
+ </element>
+ <element name="FAULT">
+ </element>
+ </enum>
+
+ <enum name="ComponentVolumeStatus">
+ <description>The volume status of a vehicle component.</description>
+ <element name="UNKNOWN" internal_name="CVS_UNKNOWN">
+ </element>
+ <element name="NORMAL" internal_name="CVS_NORMAL">
+ </element>
+ <element name="LOW" internal_name="CVS_LOW">
+ </element>
+ <element name="FAULT" internal_name="CVS_FAULT">
+ </element>
+ <element name="ALERT" internal_name="CVS_ALERT">
+ </element>
+ <element name="NOT_SUPPORTED" internal_name="CVS_NOT_SUPPORTED">
+ </element>
+ </enum>
+
+ <struct name="SingleTireStatus">
+ <param name="status" type="ComponentVolumeStatus">
+ <description>See ComponentVolumeStatus.</description>
+ </param>
+ </struct>
+
+ <enum name="WarningLightStatus">
+ <description>Reflects the status of a cluster instrument warning light.</description>
+ <element name="OFF" internal_name="WLS_OFF">
+ </element>
+ <element name="ON" internal_name="WLS_ON">
+ </element>
+ <element name="FLASH" internal_name="WLS_FLASH">
+ </element>
+ <element name="NOT_USED" internal_name="WLS_NOT_USED">
+ </element>
+ </enum>
+
+ <enum name="VehicleDataNotificationStatus">
+ <description>Reflects the status of a vehicle data notification.</description>
+ <element name="NOT_SUPPORTED" internal_name="VDNS_NOT_SUPPORTED">
+ </element>
+ <element name="NORMAL" internal_name="VDNS_NORMAL">
+ </element>
+ <element name="ACTIVE" internal_name="VDNS_ACTIVE">
+ </element>
+ <element name="NOT_USED" internal_name="VDNS_NOT_USED">
+ </element>
+ </enum>
+
+ <enum name="IgnitionStableStatus">
+ <description>Reflects the ignition switch stability.</description>
+ <element name="IGNITION_SWITCH_NOT_STABLE">
+ </element>
+ <element name="IGNITION_SWITCH_STABLE">
+ </element>
+ <element name="MISSING_FROM_TRANSMITTER">
+ </element>
+ </enum>
+
+ <enum name="IgnitionStatus">
+ <description>Reflects the status of ignition.</description>
+ <element name="UNKNOWN" internal_name="IS_UNKNOWN">
+ </element>
+ <element name="OFF" internal_name="IS_OFF">
+ </element>
+ <element name="ACCESSORY" internal_name="IS_ACCESSORY">
+ </element>
+ <element name="RUN" internal_name="IS_RUN">
+ </element>
+ <element name="START" internal_name="IS_START">
+ </element>
+ <element name="INVALID" internal_name="IS_INVALID">
+ </element>
+ </enum>
+
+ <enum name="VehicleDataEventStatus">
+ <description>Reflects the status of a vehicle data event; e.g. a seat belt event status.</description>
+ <element name="NO_EVENT" internal_name="VDES_NO_EVENT">
+ </element>
+ <element name="NO" internal_name="VDES_NO">
+ </element>
+ <element name="YES" internal_name="VDES_YES">
+ </element>
+ <element name="NOT_SUPPORTED" internal_name="VDES_NOT_SUPPORTED">
+ </element>
+ <element name="FAULT" internal_name="VDES_FAULT">
+ </element>
+ </enum>
+
+ <enum name="DeviceLevelStatus">
+ <description>Reflects the reported battery status of the connected device, if reported.</description>
+ <element name="ZERO_LEVEL_BARS">
+ </element>
+ <element name="ONE_LEVEL_BARS">
+ </element>
+ <element name="TWO_LEVEL_BARS">
+ </element>
+ <element name="THREE_LEVEL_BARS">
+ </element>
+ <element name="FOUR_LEVEL_BARS">
+ </element>
+ <element name="NOT_PROVIDED">
+ </element>
+ </enum>
+
+ <enum name="PrimaryAudioSource">
+ <description>Reflects the current primary audio source (if selected).</description>
+ <element name="NO_SOURCE_SELECTED">
+ </element>
+ <element name="USB">
+ </element>
+ <element name="USB2">
+ </element>
+ <element name="BLUETOOTH_STEREO_BTST">
+ </element>
+ <element name="LINE_IN">
+ </element>
+ <element name="IPOD">
+ </element>
+ <element name="MOBILE_APP">
+ </element>
+ </enum>
+
+ <enum name="WiperStatus">
+ <description>Reflects the status of the wipers.</description>
+ <element name="OFF" />
+ <element name="AUTO_OFF" />
+ <element name="OFF_MOVING" />
+ <element name="MAN_INT_OFF" />
+ <element name="MAN_INT_ON" />
+ <element name="MAN_LOW" />
+ <element name="MAN_HIGH" />
+ <element name="MAN_FLICK" />
+ <element name="WASH" />
+ <element name="AUTO_LOW" />
+ <element name="AUTO_HIGH" />
+ <element name="COURTESYWIPE" />
+ <element name="AUTO_ADJUST" />
+ <element name="STALLED" />
+ <element name="NO_DATA_EXISTS" />
+ </enum>
+
+ <enum name="VehicleDataStatus">
+ <description>Reflects the status of a binary vehicle data item.</description>
+ <element name="NO_DATA_EXISTS" internal_name="VDS_NO_DATA_EXISTS">
+ </element>
+ <element name="OFF" internal_name="VDS_OFF">
+ </element>
+ <element name="ON" internal_name="VDS_ON">
+ </element>
+ </enum>
+
+ <enum name="MaintenanceModeStatus">
+ <description>Reflects the status of a vehicle maintenance mode.</description>
+ <element name="NORMAL" internal_name="MMS_NORMAL">
+ </element>
+ <element name="NEAR" internal_name="MMS_NEAR">
+ </element>
+ <element name="ACTIVE" internal_name="MMS_ACTIVE">
+ </element>
+ <element name="FEATURE_NOT_PRESENT" internal_name="MMS_FEATURE_NOT_PRESENT">
+ </element>
+ </enum>
+
+ <enum name="VehicleDataActiveStatus">
+ <description>Reflects the status of given vehicle component.</description>
+ <element name="INACTIVE_NOT_CONFIRMED" internal_name="VDAS_INACTIVE_NOT_CONFIRMED">
+ </element>
+ <element name="INACTIVE_CONFIRMED" internal_name="VDAS_INACTIVE_CONFIRMED">
+ </element>
+ <element name="ACTIVE_NOT_CONFIRMED" internal_name="VDAS_ACTIVE_NOT_CONFIRMED">
+ </element>
+ <element name="ACTIVE_CONFIRMED" internal_name="VDAS_ACTIVE_CONFIRMED">
+ </element>
+ <element name="FAULT" internal_name="VDAS_FAULT">
+ </element>
+ </enum>
+
+ <enum name="AmbientLightStatus">
+ <description>Reflects the status of the ambient light sensor.</description>
+ <element name="NIGHT" />
+ <element name="TWILIGHT_1" />
+ <element name="TWILIGHT_2" />
+ <element name="TWILIGHT_3" />
+ <element name="TWILIGHT_4" />
+ <element name="DAY" />
+ <element name="UNKNOWN" />
+ <element name="INVALID" />
+ </enum>
+
+ <struct name="BeltStatus">
+ <param name="driverBeltDeployed" type="VehicleDataEventStatus">
+ <description>References signal "VedsDrvBelt_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerBeltDeployed" type="VehicleDataEventStatus">
+ <description>References signal "VedsPasBelt_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerBuckleBelted" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw1PasBckl_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverBuckleBelted" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw1DrvBckl_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="leftRow2BuckleBelted" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw2lBckl_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerChildDetected" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw1PasChld_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="rightRow2BuckleBelted" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw2rBckl_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow2BuckleBelted" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw2mBckl_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow3BuckleBelted" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw3mBckl_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="leftRow3BuckleBelted" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw3lBckl_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="rightRow3BuckleBelted" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw3rBckl_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="leftRearInflatableBelted" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw2lRib_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="rightRearInflatableBelted" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw2rRib_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow1BeltDeployed" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw1mBelt_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow1BuckleBelted" type="VehicleDataEventStatus">
+ <description>References signal "VedsRw1mBckl_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ </struct>
+
+ <struct name="BodyInformation">
+ <param name="parkBrakeActive" type="Boolean">
+ <description>References signal "PrkBrkActv_B_Actl".</description>
+ </param>
+ <param name="ignitionStableStatus" type="IgnitionStableStatus">
+ <description>References signal "Ignition_Switch_Stable". See IgnitionStableStatus.</description>
+ </param>
+ <param name="ignitionStatus" type="IgnitionStatus">
+ <description>References signal "Ignition_status". See IgnitionStatus.</description>
+ </param>
+ <param name="driverDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatDrv_B_Actl".</description>
+ </param>
+ <param name="passengerDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatPsngr_B_Actl".</description>
+ </param>
+ <param name="rearLeftDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatRl_B_Actl".</description>
+ </param>
+ <param name="rearRightDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatRr_B_Actl".</description>
+ </param>
+ </struct>
+
+ <struct name="DeviceStatus">
+ <param name="voiceRecOn" type="Boolean">
+ <description>References signal "CPM_VoiceRec_STAT".</description>
+ </param>
+ <param name="btIconOn" type="Boolean">
+ <description>References signal "BT_ICON".</description>
+ </param>
+ <param name="callActive" type="Boolean">
+ <description>References signal "CPM_Call_Active_STAT".</description>
+ </param>
+ <param name="phoneRoaming" type="Boolean">
+ <description>References signal "CPM_Phone_Roaming_STAT".</description>
+ </param>
+ <param name="textMsgAvailable" type="Boolean">
+ <description>References signal "CPM_TextMsg_AVAL".</description>
+ </param>
+ <param name="battLevelStatus" type="DeviceLevelStatus">
+ <description>Device battery level status. References signal "CPM_Batt_Level_STAT". See DeviceLevelStatus.</description>
+ </param>
+ <param name="stereoAudioOutputMuted" type="Boolean">
+ <description>References signal "CPM_Stereo_Audio_Output".</description>
+ </param>
+ <param name="monoAudioOutputMuted" type="Boolean">
+ <description>References signal "CPM_Mono_Audio_Output".</description>
+ </param>
+ <param name="signalLevelStatus" type="DeviceLevelStatus">
+ <description>Device signal level status. References signal "CPM_Signal_Strength_STAT". See DeviceLevelStatus.</description>
+ </param>
+ <param name="primaryAudioSource" type="PrimaryAudioSource">
+ <description>References signal "CPM_Stereo_PAS_Source". See PrimaryAudioSource.</description>
+ </param>
+ <param name="eCallEventActive" type="Boolean">
+ <description>References signal "eCall_Event".</description>
+ </param>
+ </struct>
+
+ <struct name="HeadLampStatus">
+ <param name="lowBeamsOn" type="Boolean">
+ <description>Status of the low beam lamps. References signal "HeadLampLoActv_B_Stat".</description>
+ </param>
+ <param name="highBeamsOn" type="Boolean">
+ <description>Status of the high beam lamps. References signal "HeadLghtHiOn_B_Stat".</description>
+ </param>
+ <param name="ambientLightSensorStatus" type="AmbientLightStatus">
+ <description>Status of the ambient light sensor.</description>
+ </param>
+ </struct>
+
+ <struct name="engineInfo">
+ <param name="electricFuelConsumption" type="Float" minvalue="0" maxvalue="30000">
+ <description>
+ Indicates the electric fuel consumption in terms of gasoline equivalent volume to support fuel economy equivalent calculations.
+ Note:Plug-in vehicle use only!
+ References signal "ElFuelFlw_Vl_Dsply".
+ </description>
+ </param>
+ <param name="stateOfCharge" type="Float" minvalue="0" maxvalue="100">
+ <description>Percent state of charge for the high voltage battery. References signal "BattTracSoc_Pc_Dsply".</description>
+ </param>
+ <param name="fuelMaintenanceMode" type="MaintenanceModeStatus">
+ <description>Current status of fuel maintenance mode (if present on hybrid vehicles). References signal "FuelMaintMde_D_Dsply".</description>
+ </param>
+ <param name="distanceToEmpty" type="Float" minvalue="0" maxvalue="1000">
+ <description>
+ Electric range (DTE) in km. References signal "VehElRnge_L_Dsply".
+ 0xFFE = No Data Exists
+ 0xFFF = Fault
+ </description>
+ </param>
+ </struct>
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~ -->
+<!-- Ford Specific Data Items -->
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <enum name="FuelCutoffStatus" scope="internal">
+ <description>Reflects the status of the RCM fuel cutoff.</description>
+ <element name="TERMINATE_FUEL" internal_name="FCS_TERMINATE_FUEL">
+ </element>
+ <element name="NORMAL_OPERATION" internal_name="FCS_NORMAL_OPERATION">
+ </element>
+ <element name="FAULT" internal_name="FCS_FAULT">
+ </element>
+ </enum>
+
+ <enum name="EmergencyEventType" scope="internal">
+ <description>Reflects the emergency event status of the vehicle.</description>
+ <element name="NO_EVENT" internal_name="EET_NO_EVENT">
+ </element>
+ <element name="FRONTAL" internal_name="EET_FRONTAL">
+ </element>
+ <element name="SIDE" internal_name="EET_SIDE">
+ </element>
+ <element name="REAR" internal_name="EET_REAR">
+ </element>
+ <element name="ROLLOVER" internal_name="EET_ROLLOVER">
+ </element>
+ <element name="NOT_SUPPORTED" internal_name="EET_NOT_SUPPORTED">
+ </element>
+ <element name="FAULT" internal_name="EET_FAULT">
+ </element>
+ </enum>
+
+ <enum name="ECallConfirmationStatus" scope="internal">
+ <description>Reflects the status of the eCall Notification.</description>
+ <element name="NORMAL" internal_name="ECCS_NORMAL">
+ </element>
+ <element name="CALL_IN_PROGRESS" internal_name="ECCS_CALL_IN_PROGRESS">
+ </element>
+ <element name="CALL_CANCELLED" internal_name="ECCS_CALL_CANCELLED">
+ </element>
+ <element name="CALL_COMPLETED">
+ </element>
+ <element name="CALL_UNSUCCESSFUL" internal_name="ECCS_CALL_UNSUCCESSFUL">
+ </element>
+ <element name="ECALL_CONFIGURED_OFF" internal_name="ECCS_ECALL_CONFIGURED_OFF">
+ </element>
+ <element name="CALL_COMPLETE_DTMF_TIMEOUT" internal_name="ECCS_CALL_COMPLETE_DTMF_TIMEOUT">
+ </element>
+ </enum>
+
+ <enum name="FileType">
+ <description>Enumeration listing possible file types.</description>
+ <element name="GRAPHIC_BMP" />
+ <element name="GRAPHIC_JPEG" />
+ <element name="GRAPHIC_PNG" />
+ <element name="AUDIO_WAVE" />
+ <element name="AUDIO_MP3" />
+ <element name="AUDIO_AAC" />
+ <element name="BINARY" />
+ <element name="JSON" />
+ </enum>
+
+ <enum name="PowerModeQualificationStatus" scope="internal">
+ <description>Reflects the status of the current power mode qualification.</description>
+ <element name="POWER_MODE_UNDEFINED">
+ </element>
+ <element name="POWER_MODE_EVALUATION_IN_PROGRESS">
+ </element>
+ <element name="NOT_DEFINED">
+ </element>
+ <element name="POWER_MODE_OK">
+ </element>
+ </enum>
+
+ <enum name="PowerModeStatus" scope="internal">
+ <description>Reflects the status of the current power mode.</description>
+ <element name="KEY_OUT">
+ </element>
+ <element name="KEY_RECENTLY_OUT">
+ </element>
+ <element name="KEY_APPROVED_0">
+ </element>
+ <element name="POST_ACCESORY_0">
+ </element>
+ <element name="ACCESORY_1">
+ </element>
+ <element name="POST_IGNITION_1">
+ </element>
+ <element name="IGNITION_ON_2">
+ </element>
+ <element name="RUNNING_2">
+ </element>
+ <element name="CRANK_3">
+ </element>
+ </enum>
+
+ <enum name="CarModeStatus" scope="internal">
+ <description>Reflects the status of the current car mode.</description>
+ <element name="NORMAL" internal_name="CMS_NORMAL">
+ </element>
+ <element name="FACTORY" internal_name="CMS_FACTORY">
+ </element>
+ <element name="TRANSPORT" internal_name="CMS_TRANSPORT">
+ </element>
+ <element name="CRASH" internal_name="CMS_CRASH">
+ </element>
+ </enum>
+
+ <struct name="ECallInfo" scope="internal">
+ <param name="eCallNotificationStatus" type="VehicleDataNotificationStatus">
+ <description>References signal "eCallNotification_4A". See VehicleDataNotificationStatus.</description>
+ </param>
+ <param name="auxECallNotificationStatus" type="VehicleDataNotificationStatus">
+ <description>References signal "eCallNotification". See VehicleDataNotificationStatus.</description>
+ </param>
+ <param name="eCallConfirmationStatus" type="ECallConfirmationStatus">
+ <description>References signal "eCallConfirmation". See ECallConfirmationStatus.</description>
+ </param>
+ </struct>
+
+ <struct name="AirbagStatus" scope="internal">
+ <param name="driverAirbagDeployed" type="VehicleDataEventStatus">
+ <description>References signal "VedsDrvBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverSideAirbagDeployed" type="VehicleDataEventStatus">
+ <description>References signal "VedsDrvSideBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverCurtainAirbagDeployed" type="VehicleDataEventStatus">
+ <description>References signal "VedsDrvCrtnBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerAirbagDeployed" type="VehicleDataEventStatus">
+ <description>References signal "VedsPasBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerCurtainAirbagDeployed" type="VehicleDataEventStatus">
+ <description>References signal "VedsPasCrtnBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverKneeAirbagDeployed" type="VehicleDataEventStatus">
+ <description>References signal "VedsKneeDrvBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerSideAirbagDeployed" type="VehicleDataEventStatus">
+ <description>References signal "VedsPasSideBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerKneeAirbagDeployed" type="VehicleDataEventStatus">
+ <description>References signal "VedsKneePasBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ </struct>
+
+ <struct name="EmergencyEvent" scope="internal">
+ <param name="emergencyEventType" type="EmergencyEventType">
+ <description>References signal "VedsEvntType_D_Ltchd". See EmergencyEventType.</description>
+ </param>
+ <param name="fuelCutoffStatus" type="FuelCutoffStatus">
+ <description>References signal "RCM_FuelCutoff". See FuelCutoffStatus.</description>
+ </param>
+ <param name="rolloverEvent" type="VehicleDataEventStatus">
+ <description>References signal "VedsEvntRoll_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+
+ <param name="maximumChangeVelocity" type="Integer" minvalue="0" maxvalue="255">
+ <description>References signal "VedsMaxDeltaV_D_Ltchd". Change in velocity in KPH. Additional reserved values:
+ 0x00 No event
+ 0xFE Not supported
+ 0xFF Fault
+ </description>
+ </param>
+ <param name="multipleEvents" type="VehicleDataEventStatus">
+ <description>References signal "VedsMultiEvnt_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ </struct>
+
+ <struct name="ClusterModeStatus" scope="internal">
+ <param name="powerModeActive" type="Boolean">
+ <description>References signal "PowerMode_UB".</description>
+ </param>
+ <param name="powerModeQualificationStatus" type="PowerModeQualificationStatus">
+ <description>References signal "PowerModeQF". See PowerModeQualificationStatus.</description>
+ </param>
+ <param name="carModeStatus" type="CarModeStatus">
+ <description>References signal "CarMode". See CarMode.</description>
+ </param>
+ <param name="powerModeStatus" type="PowerModeStatus">
+ <description>References signal "PowerMode". See PowerMode.</description>
+ </param>
+ </struct>
+
+ <struct name="MyKey" scope="partner">
+ <param name="e911Override" type="VehicleDataStatus">
+ <description>Indicates whether e911 override is on. References signal "MyKey_e911Override_St". See VehicleDataStatus.</description>
+ </param>
+ </struct>
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+<!-- / Ford Specific Data Items -->
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <enum name="VehicleDataResultCode">
+ <description>Enumeration that describes possible result codes of a vehicle data entry request.</description>
+ <element name="SUCCESS" internal_name="VDRC_SUCCESS"/>
+ <element name="TRUNCATED_DATA" internal_name="VDRC_TRUNCATED_DATA"/>
+ <element name="DISALLOWED" internal_name="VDRC_DISALLOWED"/>
+ <element name="USER_DISALLOWED" internal_name="VDRC_USER_DISALLOWED"/>
+ <element name="INVALID_ID" internal_name="VDRC_INVALID_ID"/>
+ <element name="VEHICLE_DATA_NOT_AVAILABLE" internal_name="VDRC_DATA_NOT_AVAILABLE"/>
+ <element name="DATA_ALREADY_SUBSCRIBED" internal_name="VDRC_DATA_ALREADY_SUBSCRIBED"/>
+ <element name="DATA_NOT_SUBSCRIBED" internal_name="VDRC_DATA_NOT_SUBSCRIBED"/>
+ <element name="IGNORED" internal_name="VDRC_IGNORED"/>
+ </enum>
+
+ <struct name="TireStatus">
+ <description>The status and pressure of the tires.</description>
+
+ <param name="pressureTelltale" type="WarningLightStatus">
+ <description>Status of the Tire Pressure Telltale. See WarningLightStatus.</description>
+ </param>
+ <param name="leftFront" type="SingleTireStatus">
+ <description>The status of the left front tire.</description>
+ </param>
+ <param name="rightFront" type="SingleTireStatus">
+ <description>The status of the right front tire.</description>
+ </param>
+ <param name="leftRear" type="SingleTireStatus">
+ <description>The status of the left rear tire.</description>
+ </param>
+ <param name="rightRear" type="SingleTireStatus">
+ <description>The status of the right rear tire.</description>
+ </param>
+ <param name="innerLeftRear" type="SingleTireStatus">
+ <description>The status of the inner left rear.</description>
+ </param>
+ <param name="innerRightRear" type="SingleTireStatus">
+ <description>The status of the inner right rear.</description>
+ </param>
+ </struct>
+
+ <struct name="GPSData">
+ <description>Struct with the GPS data.</description>
+ <param name="longitudeDegrees" type="Float" minvalue="-180" maxvalue="180">
+ </param>
+ <param name="latitudeDegrees" type="Float" minvalue="-90" maxvalue="90">
+ </param>
+ <param name="utcYear" type="Integer" minvalue="2010" maxvalue="2100">
+ <description>The current UTC year.</description>
+ </param>
+ <param name="utcMonth" type="Integer" minvalue="1" maxvalue="12">
+ <description>The current UTC month.</description>
+ </param>
+ <param name="utcDay" type="Integer" minvalue="1" maxvalue="31">
+ <description>The current UTC day.</description>
+ </param>
+ <param name="utcHours" type="Integer" minvalue="0" maxvalue="23">
+ <description>The current UTC hour.</description>
+ </param>
+ <param name="utcMinutes" type="Integer" minvalue="0" maxvalue="59">
+ <description>The current UTC minute.</description>
+ </param>
+ <param name="utcSeconds" type="Integer" minvalue="0" maxvalue="59">
+ <description>The current UTC second.</description>
+ </param>
+ <param name="compassDirection" type="CompassDirection">
+ <description>See CompassDirection.</description>
+ </param>
+ <param name="pdop" type="Float" minvalue="0" maxvalue="10">
+ <description>PDOP.</description>
+ </param>
+ <param name="hdop" type="Float" minvalue="0" maxvalue="10">
+ <description>HDOP.</description>
+ </param>
+ <param name="vdop" type="Float" minvalue="0" maxvalue="10">
+ <description>VDOP.</description>
+ </param>
+ <param name="actual" type="Boolean">
+ <description>
+ True, if actual.
+ False, if infered.
+ </description>
+ </param>
+ <param name="satellites" type="Integer" minvalue="0" maxvalue="31">
+ <description>Number of satellites in view</description>
+ </param>
+ <param name="dimension" type="Dimension">
+ <description>See Dimension</description>
+ </param>
+ <param name="altitude" type="Float" minvalue="-10000" maxvalue="10000">
+ <description>Altitude in meters</description>
+ </param>
+ <param name="heading" type="Float" minvalue="0" maxvalue="359.99">
+ <description>The heading. North is 0. Resolution is 0.01</description>
+ </param>
+ <param name="speed" type="Float" minvalue="0" maxvalue="500">
+ <description>The speed in KPH</description>
+ </param>
+ </struct>
+
+ <struct name="VehicleDataResult">
+ <description>Individual published data request result</description>
+ <param name="dataType" type="VehicleDataType">
+ <description>Defined published data element type.</description>
+ </param>
+ <param name="resultCode" type="VehicleDataResultCode">
+ <description>Published data result code.</description>
+ </param>
+ </struct>
+
+ <struct name="DIDResult">
+ <description>Individual requested DID result and data</description>
+ <param name="resultCode" type="VehicleDataResultCode">
+ <description>Individual DID result code.</description>
+ </param>
+ <param name="didLocation" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Location of raw data from vehicle data DID</description>
+ </param>
+ <param name="data" type="String" maxlength="5000" mandatory="false">
+ <description>Raw DID-based data returned for requested element.</description>
+ </param>
+ </struct>
+
+ <struct name="StartTime">
+ <param name="hours" type="Integer" minvalue="0" maxvalue="59">
+ <description>
+ The hour of the media clock.
+ Some radios only support a max of 19 hours. If out of range, it will be rejected.
+ </description>
+ </param>
+ <param name="minutes" type="Integer" minvalue="0" maxvalue="59" />
+ <param name="seconds" type="Integer" minvalue="0" maxvalue="59" />
+ </struct>
+
+ <struct name="TextField">
+ <param name="name" type="TextFieldName">
+ <description>The name that identifies the field. See TextFieldName.</description>
+ </param>
+ <param name="characterSet" type="CharacterSet">
+ <description>The character set that is supported in this field. See CharacterSet.</description>
+ </param>
+ <param name="width" type="Integer" minvalue="1" maxvalue="500">
+ <description>The number of characters in one row of this field.</description>
+ </param>
+ <param name="rows" type="Integer" minvalue="1" maxvalue="3">
+ <description>The number of rows of this field.</description>
+ </param>
+ </struct>
+
+ <struct name="ImageResolution">
+ <param name="resolutionWidth" type="Integer" minvalue="1" maxvalue="10000">
+ <description>The image resolution width.</description>
+ </param>
+ <param name="resolutionHeight" type="Integer" minvalue="1" maxvalue="10000">
+ <description>The image resolution height.</description>
+ </param>
+ </struct>
+
+ <struct name="ImageField">
+ <param name="name" type="ImageFieldName">
+ <description>The name that identifies the field. See ImageFieldName.</description>
+ </param>
+ <param name="imageTypeSupported" type="FileType" array="true">
+ <description>The image types that are supported in this field. See FileType.</description>
+ </param>
+ <param name="imageResolution" type="ImageResolution">
+ <description>The image resolution of this field.</description>
+ </param>
+ </struct>
+
+ <struct name="TouchCoord">
+ <param name="x" type="Integer" mandatory="true" minvalue="0" maxvalue="10000">
+ <description>The x coordinate of the touch.</description>
+ </param>
+ <param name="y" type="Integer" mandatory="true" minvalue="0" maxvalue="10000">
+ <description>The y coordinate of the touch.</description>
+ </param>
+ </struct>
+
+ <enum name="TouchType">
+ <element name="BEGIN"/>
+ <element name="MOVE"/>
+ <element name="END"/>
+ </enum>
+
+ <struct name="TouchEvent">
+ <param name="id" type="Integer" mandatory="true" minvalue="0" maxvalue="9">
+ <description>
+ A touch's unique identifier. The application can track the current touch events by id.
+ If a touch event has type begin, the id should be added to the set of touches.
+ If a touch event has type end, the id should be removed from the set of touches.
+ </description>
+ </param>
+ <param name="ts" type="Integer" mandatory="true" array="true" minvalue="0" maxvalue="2147483647" minsize="1" maxsize="1000">
+ <description>
+ The time that the touch was recorded. This number can the time since the beginning of the session or something else as long as the units are in milliseconds.
+ The timestamp is used to determined the rate of change of position of a touch.
+ The application also uses the time to verify whether two touches, with different ids, are part of a single action by the user.
+ If there is only a single timestamp in this array, it is the same for every coordinate in the coordinates array.
+ </description>
+ </param>
+ <param name="c" type="TouchCoord" mandatory="true" array="true" minsize="1" maxsize="1000">
+ </param>
+ </struct>
+
+ <struct name="Coordinate">
+ <param name="xCoord" type="Integer" mandatory="true">
+ </param>
+ <param name="yCoord" type="Integer" mandatory="true">
+ </param>
+ </struct>
+
+ <struct name="TouchArea">
+ <param name="rotationAngle" type="Float" mandatory="false" minvalue="0" maxvalue="360">
+ </param>
+ <param name="radiusCoord" type="Coordinate" mandatory="true">
+ </param>
+ </struct>
+
+ <struct name="TouchEventCapabilities">
+ <param name="pressAvailable" type="Boolean" mandatory="true">
+ </param>
+ <param name="multiTouchAvailable" type="Boolean" mandatory="true">
+ </param>
+ <param name="doublePressAvailable" type="Boolean" mandatory="true">
+ </param>
+ </struct>
+
+ <struct name="ScreenParams" scope="partner">
+ <param name="resolution" type="ImageResolution" mandatory="true">
+ <description>The resolution of the prescribed screen area.</description>
+ </param>
+ <param name="touchEventAvailable" type="TouchEventCapabilities" mandatory="false">
+ <description>Types of screen touch events available in screen area.</description>
+ </param>
+ </struct>
+
+ <enum name="PermissionStatus">
+ <description>Enumeration that describes possible permission states of a policy table entry.</description>
+ <element name="ALLOWED" internal_name="PS_ALLOWED"/>
+ <element name="DISALLOWED" internal_name="PS_DISALLOWED"/>
+ <element name="USER_DISALLOWED" internal_name="PS_USER_DISALLOWED"/>
+ <element name="USER_CONSENT_PENDING" internal_name="PS_USER_CONSENT_PENDING"/>
+ </enum>
+
+ <struct name="HMIPermissions">
+ <param name="allowed" type="HMILevel" minsize="0" maxsize="100" array="true">
+ <description>A set of all HMI levels that are permitted for this given RPC.</description>
+ </param>
+ <param name="userDisallowed" type="HMILevel" minsize="0" maxsize="100" array="true">
+ <description>A set of all HMI levels that are prohibited for this given RPC.</description>
+ </param>
+ </struct>
+
+ <struct name="ParameterPermissions">
+ <param name="allowed" type="String" minsize="0" maxsize="100" maxlength = "100" array="true">
+ <description>A set of all parameters that are permitted for this given RPC.</description>
+ </param>
+ <param name="userDisallowed" type="String" minsize="0" maxsize="100" maxlength = "100" array="true">
+ <description>A set of all parameters that are prohibited for this given RPC.</description>
+ </param>
+ </struct>
+
+ <struct name="PermissionItem">
+ <param name="rpcName" type="String" maxlength="100">
+ <description>Name of the individual RPC in the policy table.</description>
+ </param>
+ <param name="hmiPermissions" type="HMIPermissions" />
+ <param name="parameterPermissions" type="ParameterPermissions" />
+ </struct>
+
+ <struct name="DisplayCapabilities">
+ <description>Contains information about the display capabilities.</description>
+ <param name="displayType" type="DisplayType">
+ <description>The type of the display. See DisplayType</description>
+ </param>
+ <param name="textFields" type="TextField" minsize="1" maxsize="100" array="true">
+ <description>A set of all fields that support text data. See TextField</description>
+ </param>
+ <param name="imageFields" type="ImageField" minsize="1" maxsize="100" array="true">
+ <description>A set of all fields that support images. See ImageField</description>
+ </param>
+ <param name="mediaClockFormats" type="MediaClockFormat" minsize="1" maxsize="100" array="true">
+ <description>A set of all supported formats of the media clock. See MediaClockFormat</description>
+ </param>
+ <param name="graphicSupported" type="Boolean">
+ <description>The display's persistent screen supports referencing a static or dynamic image.</description>
+ </param>
+ <param name="templatesAvailable" type="String" minsize="0" maxsize="100" maxlength="100" array="true" scope="partner">
+ <description>A set of all predefined persistent display templates available on headunit. To be referenced in SetDisplayLayout.</description>
+ </param>
+ <param name="screenParams" type="ScreenParams" mandatory="false">
+ <description>A set of all parameters related to a prescribed screen area (e.g. for video / touch input).</description>
+ </param>
+ <param name="numCustomPresetsAvailable" type="Integer" minvalue="1" maxvalue="100" mandatory="false">
+ <description>The number of on-screen custom presets available (if any); otherwise omitted.</description>
+ </param>
+ </struct>
+
+ <struct name="ButtonCapabilities">
+ <description>Contains information about a button's capabilities.</description>
+ <param name="name" type="ButtonName">
+ <description>The name of the button. See ButtonName.</description>
+ </param>
+ <param name="shortPressAvailable" type="Boolean">
+ <description>
+ The button supports a short press.
+ Whenever the button is pressed short, onButtonPressed( SHORT) will be invoked.
+ </description>
+ </param>
+ <param name="longPressAvailable" type="Boolean">
+ <description>
+ The button supports a LONG press.
+ Whenever the button is pressed long, onButtonPressed( LONG) will be invoked.
+ </description>
+ </param>
+ <param name="upDownAvailable" type="Boolean">
+ <description>
+ The button supports "button down" and "button up".
+ Whenever the button is pressed, onButtonEvent( DOWN) will be invoked.
+ Whenever the button is released, onButtonEvent( UP) will be invoked.
+ </description>
+ </param>
+ </struct>
+
+ <struct name="SoftButtonCapabilities">
+ <description>Contains information about a SoftButton's capabilities.</description>
+ <param name="shortPressAvailable" type="Boolean">
+ <description>
+ The button supports a short press.
+ Whenever the button is pressed short, onButtonPressed( SHORT) will be invoked.
+ </description>
+ </param>
+ <param name="longPressAvailable" type="Boolean">
+ <description>
+ The button supports a LONG press.
+ Whenever the button is pressed long, onButtonPressed( LONG) will be invoked.
+ </description>
+ </param>
+ <param name="upDownAvailable" type="Boolean">
+ <description>
+ The button supports "button down" and "button up".
+ Whenever the button is pressed, onButtonEvent( DOWN) will be invoked.
+ Whenever the button is released, onButtonEvent( UP) will be invoked.
+ </description>
+ </param>
+ <param name="imageSupported" type="Boolean">
+ <description>The button supports referencing a static or dynamic image.</description>
+ </param>
+ </struct>
+
+ <struct name="PresetBankCapabilities">
+ <description>Contains information about on-screen preset capabilities.</description>
+ <param name="onScreenPresetsAvailable" type="Boolean">
+ <description>Onscreen custom presets are available.</description>
+ </param>
+ </struct>
+
+ <struct name="MenuParams">
+ <param name="parentID" type="Integer" minvalue="0" maxvalue="2000000000" defvalue="0" mandatory="false">
+ <description>
+ unique ID of the sub menu, the command will be added to.
+ If not provided, it will be provided to the top level of the in application menu.
+ </description>
+ </param>
+
+ <param name="position" type="Integer" minvalue="0" maxvalue="1000" mandatory="false">
+ <description>
+ Position within the items that are are at top level of the in application menu.
+ 0 will insert at the front.
+ 1 will insert at the second position.
+ if position is greater or equal than the number of items on top level, the sub menu will be appended to the end.
+ If this param was omitted the entry will be added at the end.
+ </description>
+ </param>
+
+ <param name="menuName" type="String" maxlength="500">
+ <description>Text to show in the menu for this sub menu.</description>
+ </param>
+ </struct>
+
+ <struct name="TTSChunk">
+ <description>A TTS chunk, that consists of the text/phonemes to speak and the type (like text or SAPI)</description>
+ <param name="text" maxlength="500" type="String">
+ <description>
+ The text or phonemes to speak.
+ May not be empty.
+ </description>
+ </param>
+ <param name="type" type="SpeechCapabilities">
+ <description>Describes, whether it is text or a specific phoneme set. See SpeechCapabilities</description>
+ </param>
+ </struct>
+
+ <struct name="Turn">
+ <param name="navigationText" type="String" maxlength="500" mandatory="false">
+ </param>
+ <param name="turnIcon" type="Image" mandatory="false">
+ </param>
+ </struct>
+
+ <struct name="VehicleType">
+ <param name="make" type="String" maxlength="500" mandatory="false">
+ <description>Make of the vehicle, e.g. Ford</description>
+ </param>
+ <param name="model" type="String" maxlength="500" mandatory="false">
+ <description>Model of the vehicle, e.g. Fiesta</description>
+ </param>
+ <param name="modelYear" type="String" maxlength="500" mandatory="false">
+ <description>Model Year of the vehicle, e.g. 2013</description>
+ </param>
+ <param name="trim" type="String" maxlength="500" mandatory="false">
+ <description>Trim of the vehicle, e.g. SE</description>
+ </param>
+ </struct>
+
+ <enum name="KeyboardLayout" scope="partner">
+ <description>Enumeration listing possible keyboard layouts.</description>
+ <element name="QWERTY" />
+ <element name="QWERTZ" />
+ <element name="AZERTY" />
+ </enum>
+
+ <enum name="KeyboardEvent" platform="MobileNav">
+ <description>Enumeration listing possible keyboard events.</description>
+ <element name="KEYPRESS" />
+ <element name="ENTRY_SUBMITTED" />
+ <element name="ENTRY_CANCELLED" />
+ <element name="ENTRY_ABORTED" />
+ </enum>
+
+ <enum name="KeypressMode" scope="partner">
+ <description>Enumeration listing possible keyboard events.</description>
+ <element name="SINGLE_KEYPRESS">
+ <description>Each keypress is individually sent as the user presses the keyboard keys.</description>
+ </element>
+ <element name="QUEUE_KEYPRESSES">
+ <description>The keypresses are queued and a string is eventually sent once the user chooses to submit their entry.</description>
+ </element>
+ <element name="RESEND_CURRENT_ENTRY">
+ <description>The keypresses are queue and a string is sent each time the user presses a keyboard key; the string contains the entire current entry.</description>
+ </element>
+ </enum>
+
+ <struct name="KeyboardProperties">
+ <description>Configuration of on-screen keyboard (if available).</description>
+
+ <param name="language" type="Language" mandatory="false">
+ <description>The keyboard language.</description>
+ </param>
+
+ <param name="keyboardLayout" type="KeyboardLayout" mandatory="false" >
+ <description>Desired keyboard layout.</description>
+ </param>
+
+ <param name="keypressMode" type="KeypressMode" mandatory="false" >
+ <description>
+ Desired keypress mode.
+ If omitted, this value will be set to RESEND_CURRENT_ENTRY.
+ </description>
+ </param>
+
+ <param name="sendDynamicEntry" type="Boolean" mandatory="false">
+ <description>In this mode, all keypresses will be sent as they occur.</description>
+ <description>If disabled, entire string of text will be returned only once submitted by user.</description>
+ <description>If omitted, this value will be set to FALSE.</description>
+ </param>
+
+ <param name="limitedCharacterList" type="String" maxlength="1" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Array of keyboard characters to enable.</description>
+ <description>All omitted characters will be greyed out (disabled) on the keyboard.</description>
+ <description>If omitted, the entire keyboard will be enabled.</description>
+ </param>
+
+ <param name="autoCompleteText" type="String" maxlength="1000" mandatory="false">
+ <description>Allows an app to prepopulate the text field with a suggested or completed entry as the user types</description>
+ </param>
+ </struct>
+
+ <enum name="RequestType">
+ <description>Enumeration listing possible asynchronous requests.</description>
+ <element name="HTTP" />
+ <element name="FILE_RESUME" />
+ <element name="AUTH_REQUEST" />
+ <element name="AUTH_CHALLENGE" />
+ <element name="AUTH_ACK" />
+ </enum>
+
+ <enum name="AppHMIType">
+ <description>Enumeration listing possible app types.</description>
+ <element name="DEFAULT" />
+ <element name="COMMUNICATION" />
+ <element name="MEDIA" />
+ <element name="MESSAGING" />
+ <element name="NAVIGATION" />
+ <element name="INFORMATION" />
+ <element name="SOCIAL" />
+ <element name="BACKGROUND_PROCESS" />
+ <element name="TESTING" />
+ <element name="SYSTEM" />
+ </enum>
+
+ <enum name="FunctionID" internal_scope="base">
+ <description>Enumeration linking function names with function IDs in AppLink protocol.</description>
+ <description>Assumes enumeration starts at value 0.</description>
+ <element name="RESERVED" value="0" />
+<!--
+ Base Request / Response RPCs
+ Range = 0x 0000 0001 - 0x 0000 7FFF
+-->
+ <element name="RegisterAppInterfaceID" value="1" hexvalue="1" />
+ <element name="UnregisterAppInterfaceID" value="2" hexvalue="2" />
+ <element name="SetGlobalPropertiesID" value="3" hexvalue="3" />
+ <element name="ResetGlobalPropertiesID" value="4" hexvalue="4" />
+ <element name="AddCommandID" value="5" hexvalue="5" />
+ <element name="DeleteCommandID" value="6" hexvalue="6" />
+ <element name="AddSubMenuID" value="7" hexvalue="7" />
+ <element name="DeleteSubMenuID" value="8" hexvalue="8" />
+ <element name="CreateInteractionChoiceSetID" value="9" hexvalue="9" />
+ <element name="PerformInteractionID" value="10" hexvalue="A" />
+ <element name="DeleteInteractionChoiceSetID" value="11" hexvalue="B" />
+ <element name="AlertID" value="12" hexvalue="C" />
+ <element name="ShowID" value="13" hexvalue="D" />
+ <element name="SpeakID" value="14" hexvalue="E" />
+ <element name="SetMediaClockTimerID" value="15" hexvalue="F" />
+ <element name="PerformAudioPassThruID" value="16" hexvalue="10" />
+ <element name="EndAudioPassThruID" value="17" hexvalue="11" />
+ <element name="SubscribeButtonID" value="18" hexvalue="12" />
+ <element name="UnsubscribeButtonID" value="19" hexvalue="13" />
+ <element name="SubscribeVehicleDataID" value="20" hexvalue="14" />
+ <element name="UnsubscribeVehicleDataID" value="21" hexvalue="15" />
+ <element name="GetVehicleDataID" value="22" hexvalue="16" />
+ <element name="ReadDIDID" value="23" hexvalue="17" />
+ <element name="GetDTCsID" value="24" hexvalue="18" />
+ <element name="ScrollableMessageID" value="25" hexvalue="19" />
+ <element name="SliderID" value="26" hexvalue="1A" />
+ <element name="ShowConstantTBTID" value="27" hexvalue="1B" />
+ <element name="AlertManeuverID" value="28" hexvalue="1C" />
+ <element name="UpdateTurnListID" value="29" hexvalue="1D" />
+ <element name="ChangeRegistrationID" value="30" hexvalue="1E" />
+ <element name="GenericResponseID" value="31" hexvalue="1F" />
+ <element name="PutFileID" value="32" hexvalue="20" />
+ <element name="DeleteFileID" value="33" hexvalue="21" />
+ <element name="ListFilesID" value="34" hexvalue="22" />
+ <element name="SetAppIconID" value="35" hexvalue="23" />
+ <element name="SetDisplayLayoutID" value="36" hexvalue="24" />
+ <element name="DiagnosticMessageID" value="37" hexvalue="25" />
+ <element name="SystemRequestID" value="38" hexvalue="26" />
+
+
+
+<!--
+ Base Notifications
+ Range = 0x 0000 8000 - 0x 0000 FFFF
+-->
+
+ <element name="OnHMIStatusID" value="32768" hexvalue="8000" />
+ <element name="OnAppInterfaceUnregisteredID" value="32769" hexvalue="8001" />
+ <element name="OnButtonEventID" value="32770" hexvalue="8002" />
+ <element name="OnButtonPressID" value="32771" hexvalue="8003" />
+ <element name="OnVehicleDataID" value="32772" hexvalue="8004" />
+ <element name="OnCommandID" value="32773" hexvalue="8005" />
+ <element name="OnTBTClientStateID" value="32774" hexvalue="8006" />
+ <element name="OnDriverDistractionID" value="32775" hexvalue="8007" />
+ <element name="OnPermissionsChangeID" value="32776" hexvalue="8008" />
+ <element name="OnAudioPassThruID" value="32777" hexvalue="8009" />
+ <element name="OnLanguageChangeID" value="32778" hexvalue="800A" />
+ <element name="OnKeyboardInputID" value="32779" hexvalue="800B" />
+ <element name="OnTouchEventID" value="32780" hexvalue="800C" />
+ <element name="OnSystemRequestID" value="32781" hexvalue="800D" />
+ <element name="OnHashChangeID" value="32782" hexvalue="800E" />
+<!--
+ Ford Specific Request / Response RPCs
+ Range = 0x 0001 0000 - 0x 0001 7FFF
+-->
+
+ <element name="EncodedSyncPDataID" value="65536" hexvalue="10000" />
+ <element name="SyncPDataID" value="65537" hexvalue="10001" />
+
+
+<!--
+ Ford Specific Notifications
+ Range = 0x 0001 8000 - 0x 0001 FFFF
+-->
+
+ <element name="OnEncodedSyncPDataID" value="98304" hexvalue="18000" />
+ <element name="OnSyncPDataID" value="98305" hexvalue="18001" />
+
+ </enum>
+
+ <enum name="messageType">
+ <description>
+ Enumeration linking message types with function types in WiPro protocol.
+ Assumes enumeration starts at value 0.
+ </description>
+ <element name="request" value="0" />
+ <element name="response" value="1" />
+ <element name="notification" value="2" />
+ </enum>
+
+ <!-- Requests/Responses -->
+
+ <function name="RegisterAppInterface" functionID="RegisterAppInterfaceID" messagetype="request">
+ <description>
+ Establishes an interface with a mobile application.
+ Before registerAppInterface no other commands will be accepted/executed.
+ </description>
+
+ <param name="syncMsgVersion" type="SyncMsgVersion">
+ <description>See SyncMsgVersion</description>
+ </param>
+
+ <param name="appName" type="String" maxlength="100">
+ <description>
+ The mobile application name, e.g. "Ford Drive Green".
+ Needs to be unique over all applications.
+ May not be empty.
+ May not start with a new line character.
+ May not interfere with any name or synonym of previously registered applications and any predefined blacklist of words (global commands)
+ Needs to be unique over all applications. Applications with the same name will be rejected.
+ Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.
+ </description>
+ </param>
+
+ <param name="ttsName" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
+ <description>
+ TTS string for VR recognition of the mobile application name, e.g. "Ford Drive Green".
+ Meant to overcome any failing on speech engine in properly pronouncing / understanding app name.
+ Needs to be unique over all applications.
+ May not be empty.
+ May not start with a new line character.
+ May not interfere with any name or synonym of previously registered applications and any predefined blacklist of words (global commands)
+ Needs to be unique over all applications. Applications with the same name will be rejected.
+ Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.
+ </description>
+ </param>
+
+ <param name="ngnMediaScreenAppName" type="String" maxlength="100" mandatory="false">
+ <description>
+ Provides an abbreviated version of the app name (if needed), that will be displayed on the NGN media screen.
+ If not provided, the appName is used instead (and will be truncated if too long)
+ Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.
+ </description>
+ </param>
+
+ <param name="vrSynonyms" type="String" maxlength="40" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ Defines an additional voice recognition command.
+ May not interfere with any name or synonym of previously registered applications and any predefined blacklist of words (global commands)
+ Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.
+ </description>
+ </param>
+
+ <param name="isMediaApplication" type="Boolean">
+ <description>
+ Indicates if the application is a media or a non-media application.
+ Only media applications will be able to stream audio to Sync that is audible outside of the BT media source.
+ </description>
+ </param>
+ <param name="languageDesired" type="Language" mandatory="true">
+ <description>
+ See Language
+ Current app’s expected VR+TTS language
+ If there is a mismatch with SYNC, the app will be able to change this registration with changeRegistration prior to app being brought into focus.
+ </description>
+ </param>
+ <param name="hmiDisplayLanguageDesired" type="Language" mandatory="true">
+ <description>
+ See Language
+ Current app’s expected display language
+ If there is a mismatch with SYNC, the app will be able to change this registration with changeRegistration prior to app being brought into focus.
+ </description>
+ </param>
+ <param name="appHMIType" type="AppHMIType" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ See AppHMIType
+ List of all applicable app HMI types stating which HMI classifications to be given to the app.
+ e.g. for platforms like GEN2, this will determine which "corner(s)" the app can populate.
+ </description>
+ </param>
+ <param name="hashID" type="String" maxlength="100" mandatory="false">
+ <description>
+ ID used to uniquely identify current state of all app data that can persist through connection cycles (e.g. ignition cycles).
+ This registered data (commands, submenus, choice sets, etc.) can be reestablished without needing to explicitly reregister each piece.
+ If omitted, then the previous state of an app's commands, etc. will not be restored.
+ </description>
+ </param>
+ <param name="appID" type="String" maxlength="100" mandatory="true">
+ <description>ID used to validate app with policy table entries</description>
+ </param>
+ </function>
+
+ <function name="RegisterAppInterface" functionID="RegisterAppInterfaceID" messagetype="response">
+ <description>The response to registerAppInterface</description>
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="DUPLICATE_NAME"/>
+ <element name="TOO_MANY_APPLICATIONS"/>
+ <element name="APPLICATION_REGISTERED_ALREADY"/>
+ <element name="UNSUPPORTED_VERSION"/>
+ <element name="WRONG_LANGUAGE"/>
+ <element name="DISALLOWED"/>
+ <element name="WARNINGS"/>
+ <element name="RESUME_FAILED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ <param name="syncMsgVersion" type="SyncMsgVersion" mandatory="false">
+ <description>See SyncMsgVersion</description>
+ </param>
+
+ <param name="language" type="Language" mandatory="false">
+ <description>The currently active VR+TTS language on Sync. See "Language" for options.</description>
+ </param>
+
+ <param name="hmiDisplayLanguage" type="Language" mandatory="false">
+ <description>The currently active display language on Sync. See "Language" for options.</description>
+ </param>
+
+ <param name="displayCapabilities" type="DisplayCapabilities" mandatory="false">
+ <description>See DisplayCapabilities</description>
+ </param>
+
+ <param name="buttonCapabilities" type="ButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>See ButtonCapabilities</description >
+ </param>
+
+ <param name="softButtonCapabilities" type="SoftButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>If returned, the platform supports on-screen SoftButtons; see SoftButtonCapabilities.</description >
+ </param>
+
+ <param name="presetBankCapabilities" type="PresetBankCapabilities" mandatory="false">
+ <description>If returned, the platform supports custom on-screen Presets; see PresetBankCapabilities.</description >
+ </param>
+
+ <param name="hmiZoneCapabilities" type="HmiZoneCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <issue creator="rs">If not used yet => remove</issue>
+ <description>See HmiZoneCapabilities</description>
+ </param>
+
+ <param name="speechCapabilities" type="SpeechCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>See SpeechCapabilities</description>
+ </param>
+
+ <param name="vrCapabilities" type="VrCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>See VrCapabilities</description>
+ </param>
+
+ <param name="audioPassThruCapabilities" type="AudioPassThruCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>See AudioPassThruCapability</description>
+ </param>
+
+ <param name="vehicleType" type="VehicleType" mandatory="false">
+ <description>Specifies the vehicle's type. See VehicleType.</description>
+ </param>
+
+ <param name="prerecordedSpeech" type="PrerecordedSpeech" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>See PrerecordedSpeech</description>
+ </param>
+
+ <param name="supportedDiagModes" type="Integer" minvalue="0" maxvalue="255" array="true" minsize="1" maxsize="100" mandatory="false" scope="internal">
+ <description>
+ Specifies the white-list of supported diagnostic modes (0x00-0xFF) capable for DiagnosticMessage requests.
+ If a mode outside this list is requested, it will be rejected.
+ </description>
+ </param>
+
+ </function>
+
+ <function name="UnregisterAppInterface" functionID="UnregisterAppInterfaceID" messagetype="request">
+ <description>
+ Closes an interface from a mobile application.
+ After unregisterAppInterface, no commands other than registerAppInterface will be accepted/executed.
+ Will fail, if no registerAppInterface was completed successfully before.
+ </description>
+ </function>
+
+ <function name="UnregisterAppInterface" functionID="UnregisterAppInterfaceID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ </function>
+
+ <function name="SetGlobalProperties" functionID="SetGlobalPropertiesID" messagetype="request">
+ <description>Allows setting global properties.</description>
+
+ <param name="helpPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
+ <description>
+ The help prompt.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+
+ <param name="timeoutPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
+ <description>
+ Help text for a wait timeout.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+
+ <param name="vrHelpTitle" type="String" maxlength="500" mandatory="false">
+ <description>
+ VR Help Title text.
+ If omitted on supported displays, the default SYNC help title shall be used.
+ If omitted and one or more vrHelp items are provided, the request will be rejected.
+ </description>
+ </param>
+
+ <param name="vrHelp" type="VrHelpItem" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ VR Help Items.
+ If omitted on supported displays, the default AppLink VR help / What Can I Say? screen shall be used.
+ If the list of VR Help Items contains nonsequential positions (e.g. [1,2,4]), the RPC shall be rejected.
+ If omitted and a vrHelpTitle is provided, the request will be rejected.
+ </description>
+ </param>
+ <param name="menuTitle" maxlength="500" type="String" mandatory="false" scope="partner">
+ <description>Optional text to label an app menu button (for certain touchscreen platforms).</description>
+ </param>
+
+ <param name="menuIcon" type="Image" mandatory="false" scope="partner">
+ <description>>Optional icon to draw on an app menu button (for certain touchscreen platforms).</description>
+ </param>
+
+ <param name="keyboardProperties" type="KeyboardProperties" mandatory="false" scope="partner">
+ <description>On-screen keybaord configuration (if available).</description>
+ </param>
+ </function>
+
+ <function name="SetGlobalProperties" functionID="SetGlobalPropertiesID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="DISALLOWED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ </function>
+
+ <function name="ResetGlobalProperties" functionID="ResetGlobalPropertiesID" messagetype="request">
+ <description>Allows resetting global properties.</description>
+
+ <param name="properties" type="GlobalProperty" minsize="1" maxsize="100" array="true" >
+ <description>Contains the names of all global properties (like timeoutPrompt) that should be unset. Resetting means, that they have the same value as at start up (default)</description>
+ </param>
+ </function>
+
+ <function name="ResetGlobalProperties" functionID="ResetGlobalPropertiesID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="DISALLOWED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="AddCommand" functionID="AddCommandID" messagetype="request">
+ <description>
+ Adds a command to the in application menu.
+ Either menuParams or vrCommands must be provided.
+ </description>
+
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true">
+ <description>unique ID of the command to add.</description>
+ </param>
+
+ <param name="menuParams" type="MenuParams" mandatory="false">
+ <description>Optional sub value containing menu parameters</description>
+ </param>
+
+ <param name="vrCommands" type="String" minsize="1" maxsize="100" maxlength="99" array="true" mandatory="false">
+ <description>
+ An array of strings to be used as VR synonyms for this command.
+ If this array is provided, it may not be empty.
+ </description>
+ </param>
+
+ <param name="cmdIcon" type="Image" mandatory="false">
+ <description>
+ Image struct determining whether static or dynamic icon.
+ If omitted on supported displays, no (or the default if applicable) icon shall be displayed.
+ </description>
+ </param>
+
+ </function>
+
+ <function name="AddCommand" functionID="AddCommandID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="DUPLICATE_NAME"/>
+ <element name="UNSUPPORTED_RESOURCE"/>
+ <element name="DISALLOWED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ </function>
+
+ <function name="DeleteCommand" functionID="DeleteCommandID" messagetype="request">
+ <description>Deletes all commands from the in-application menu with the specified command id.</description>
+
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>ID of the command(s) to delete.</description>
+ </param>
+
+ </function>
+
+ <function name="DeleteCommand" functionID="DeleteCommandID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="IN_USE"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ </function>
+
+ <function name="AddSubMenu" functionID="AddSubMenuID" messagetype="request">
+ <description>Adds a sub menu to the in-application menu.</description>
+
+ <param name="menuID" type="Integer" minvalue="1" maxvalue="2000000000">
+ <description>unique ID of the sub menu to add.</description>
+ </param>
+
+ <param name="position" type="Integer" minvalue="0" maxvalue="1000" defvalue="1000" mandatory="false">
+ <description>
+ Position within the items that are are at top level of the in application menu.
+ 0 will insert at the front.
+ 1 will insert at the second position.
+ If position is greater or equal than the number of items on top level, the sub menu will be appended to the end.
+ Position of any submenu will always be located before the return and exit options
+ If this param was omitted the entry will be added at the end.
+ </description>
+ </param>
+
+ <param name="menuName" maxlength="500" type="String">
+ <description>Text to show in the menu for this sub menu.</description>
+ </param>
+ </function>
+
+ <function name="AddSubMenu" functionID="AddSubMenuID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="DUPLICATE_NAME"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="DeleteSubMenu" functionID="DeleteSubMenuID" messagetype="request">
+ <description>Deletes a submenu from the in-application menu.</description>
+
+ <param name="menuID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>The "menuID" of the submenu to delete. (See addSubMenu.menuID)</description>
+ </param>
+
+ </function>
+
+ <function name="DeleteSubMenu" functionID="DeleteSubMenuID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="IN_USE"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ </function>
+
+ <function name="CreateInteractionChoiceSet" functionID="CreateInteractionChoiceSetID" messagetype="request">
+ <description>creates interaction choice set to be used later by performInteraction</description>
+
+ <param name="interactionChoiceSetID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>Unique ID used for this interaction choice set.</description>
+ </param>
+
+ <param name="choiceSet" type="Choice" minsize="1" maxsize="100" array="true" />
+ </function>
+
+ <function name="CreateInteractionChoiceSet" functionID="CreateInteractionChoiceSetID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="DUPLICATE_NAME"/>
+ <element name="UNSUPPORTED_RESOURCE"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="PerformInteraction" functionID="PerformInteractionID" messagetype="request">
+ <description>Triggers an interaction (e.g. "Permit GPS?" - Yes, no, Always Allow).</description>
+
+ <param name="initialText" type="String" maxlength="500" >
+ <description>Text to be displayed first.</description>
+ </param>
+
+ <param name="initialPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true">
+ <description>
+ This is the intial prompt spoken to the user at the start of an interaction.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+
+ <param name="interactionMode" type="InteractionMode">
+ <description>See InteractionMode.</description>
+ </param>
+
+ <param name="interactionChoiceSetIDList" type="Integer" minsize="0" maxsize="100" minvalue="0" maxvalue="2000000000" array="true">
+ <description>List of interaction choice set IDs to use with an interaction.</description>
+ </param>
+
+ <param name="helpPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ Help text. This is the spoken string when a user speaks "help" when the interaction is occuring.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+
+ <param name="timeoutPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ Timeout text. This text is spoken when a VR interaction times out.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+
+ <param name="timeout" type="Integer" minvalue="5000" maxvalue="100000" defvalue="10000" mandatory="false">
+ <description>
+ Timeout in milliseconds.
+ If omitted a standard value of 10000 milliseconds is used.
+ Applies only to the menu portion of the interaction. The VR timeout will be handled by the platform.
+ </description>
+ </param>
+
+ <param name="vrHelp" type="VrHelpItem" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ Ability to send suggested VR Help Items to display on-screen during Perform Interaction.
+ If omitted on supported displays, the default SYNC generated list of suggested choices shall be displayed.
+ </description>
+ </param>
+
+ <param name="interactionLayout" type="LayoutMode" mandatory="false" scope="partner">
+ <description>See LayoutMode.</description>
+ </param>
+
+ </function>
+
+ <function name="PerformInteraction" functionID="PerformInteractionID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="DUPLICATE_NAME"/>
+ <element name="TIMED_OUT"/>
+ <element name="ABORTED"/>
+ <element name="UNSUPPORTED_RESOURCE"/>
+ <element name="WARNINGS"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ <param name="choiceID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
+ <description>
+ ID of the choice that was selected in response to PerformInteraction.
+ Only is valid if resultCode is SUCCESS.
+ </description>
+ </param>
+
+ <param name="manualTextEntry" type="String" maxlength="500" mandatory="false">
+ <description>
+ Manually entered text selection, e.g. through keyboard
+ Can be returned in lieu of choiceID, depending on trigger source
+ </description>
+ </param>
+
+ <param name="triggerSource" type="TriggerSource" mandatory="false">
+ <description>
+ See TriggerSource
+ Only is valid if resultCode is SUCCESS.
+ </description>
+ </param>
+
+ </function>
+
+ <function name="DeleteInteractionChoiceSet" functionID="DeleteInteractionChoiceSetID" messagetype="request">
+ <description>Deletes interaction choice set that has been created with "CreateInteractionChoiceSet".</description>
+ <description>The interaction may only be deleted when not currently in use by a "performInteraction".</description>
+
+ <param name="interactionChoiceSetID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>ID of the interaction choice set to delete.</description>
+ </param>
+ </function>
+
+ <function name="DeleteInteractionChoiceSet" functionID="DeleteInteractionChoiceSetID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="IN_USE"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="Alert" functionID="AlertID" messagetype="request">
+ <description>Shows an alert which typically consists of text-to-speech message and text on the display. At least either alertText1, alertText2 or TTSChunks need to be provided.</description>
+
+ <param name="alertText1" type="String" maxlength="500" mandatory="false">
+ <description>The first line of the alert text field</description>
+ </param>
+
+ <param name="alertText2" type="String" maxlength="500" mandatory="false">
+ <description>The second line of the alert text field</description>
+ </param>
+
+ <param name="alertText3" type="String" maxlength="500" mandatory="false">
+ <description>The optional third line of the alert text field</description>
+ </param>
+
+ <param name="ttsChunks" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+
+ <param name="duration" type="Integer" minvalue="3000" maxvalue="10000" defvalue="5000" mandatory="false">
+ <description>
+ Timeout in milliseconds.
+ Typical timeouts are 3-5 seconds.
+ If omitted, timeout is set to 5s.
+ </description>
+ </param>
+
+ <param name="playTone" type="Boolean" mandatory="false">
+ <description>
+ Defines if tone should be played. Tone is played before TTS.
+ If omitted, no tone is played.
+ </description>
+ </param>
+
+ <param name="progressIndicator" type="Boolean" mandatory="false" platform="MobileNav">
+ <description>
+ If supported on the given platform, the alert GUI will include some sort of animation indicating that loading of a feature is progressing. e.g. a spinning wheel or hourglass, etc.
+ </description>
+ </param>
+
+ <param name="softButtons" type="SoftButton" minsize="0" maxsize="4" array="true" mandatory="false">
+ <description>
+ App defined SoftButtons.
+ If omitted on supported displays, the displayed alert shall not have any SoftButtons.
+ </description>
+ </param>
+
+ </function>
+
+ <function name="Alert" functionID="AlertID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="ABORTED"/>
+ <element name="DISALLOWED"/>
+ <element name="USER_DISALLOWED"/>
+ <element name="UNSUPPORTED_RESOURCE"/>
+ <element name="WARNINGS"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ <param name="tryAgainTime" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
+ <description>
+ Amount of time (in seconds) that an app must wait before resending an alert.
+ If provided, another system event or overlay currently has a higher priority than this alert.
+ An app must not send an alert without waiting at least the amount of time dictated.
+ </description>
+ </param>
+
+ </function>
+
+ <function name="Show" functionID="ShowID" messagetype="request">
+ <description>Updates the persistent display. Supported fields depend on display capabilities.</description>
+
+ <param name="mainField1" type="String" minlength="0" maxlength="500" mandatory="false">
+ <description>
+ The text that should be displayed in a single or upper display line.
+ If this text is not set, the text of mainField1 stays unchanged.
+ If this text is empty "", the field will be cleared.
+ </description>
+ </param>
+
+ <param name="mainField2" type="String" minlength="0" maxlength="500" mandatory="false">
+ <description>
+ The text that should be displayed on the second display line.
+ If this text is not set, the text of mainField2 stays unchanged.
+ If this text is empty "", the field will be cleared.
+ </description>
+ </param>
+
+ <param name="mainField3" type="String" minlength="0" maxlength="500" mandatory="false">
+ <description>
+ The text that should be displayed on the second "page" first display line.
+ If this text is not set, the text of mainField3 stays unchanged.
+ If this text is empty "", the field will be cleared.
+ </description>
+ </param>
+
+ <param name="mainField4" type="String" minlength="0" maxlength="500" mandatory="false">
+ <description>
+ The text that should be displayed on the second "page" second display line.
+ If this text is not set, the text of mainField4 stays unchanged.
+ If this text is empty "", the field will be cleared.
+ </description>
+ </param>
+
+ <param name="alignment" type="TextAlignment" mandatory="false">
+ <description>
+ Specifies how mainField1 and mainField2 texts should be aligned on display.
+ If omitted, texts will be centered.
+ </description>
+ </param>
+
+ <param name="statusBar" type="String" minlength="0" maxlength="500" mandatory="false">
+ <description>Requires investigation regarding the nav display capabilities. Potentially lower lowerStatusBar, upperStatusBar, titleBar, etc.</description>
+ </param>
+
+ <param name="mediaClock" type="String" minlength="0" maxlength="500" mandatory="false">
+ <description>
+ Text value for MediaClock field. Has to be properly formatted by Mobile App according to Sync capabilities.
+ If this text is set, any automatic media clock updates previously set with SetMediaClockTimer will be stopped.
+ </description>
+ </param>
+
+ <param name="mediaTrack" type="String" minlength="0" maxlength="500" mandatory="false">
+ <description>
+ The text that should be displayed in the track field.
+ This field is only valid for media applications on NGN type ACMs.
+ If this text is not set, the text of mediaTrack stays unchanged.
+ If this text is empty "", the field will be cleared.
+ </description>
+ </param>
+
+ <param name="graphic" type="Image" mandatory="false">
+ <description>
+ Image struct determining whether static or dynamic image to display in app.
+ If omitted on supported displays, the displayed graphic shall not change.
+ </description>
+ </param>
+
+ <param name="secondaryGraphic" type="Image" mandatory="false">
+ <description>
+ Image struct determining whether static or dynamic secondary image to display in app.
+ If omitted on supported displays, the displayed secondary graphic shall not change.
+ </description>
+ </param>
+
+
+ <param name="softButtons" type="SoftButton" minsize="0" maxsize="8" array="true" mandatory="false">
+ <description>
+ App defined SoftButtons.
+ If omitted on supported displays, the currently displayed SoftButton values will not change.
+ </description>
+ </param>
+
+ <param name="customPresets" type="String" maxlength="500" minsize="0" maxsize="6" array="true" mandatory="false">
+ <description>
+ App labeled on-screen presets (i.e. GEN2).
+ If omitted on supported displays, the presets will be shown as not defined.
+ </description>
+ </param>
+
+ </function>
+
+ <function name="Show" functionID="ShowID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="DISALLOWED"/>
+ <element name="UNSUPPORTED_RESOURCE"/>
+ <element name="ABORTED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="Speak" functionID="SpeakID" messagetype="request">
+ <description>Speaks a text.</description>
+
+ <param name="ttsChunks" type="TTSChunk" minsize="1" maxsize="100" array="true">
+ <description>
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+
+ </function>
+
+ <function name="Speak" functionID="SpeakID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="DISALLOWED"/>
+ <element name="ABORTED"/>
+ <element name="WARNINGS"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ </function>
+
+ <function name="SetMediaClockTimer" functionID="SetMediaClockTimerID" messagetype="request">
+ <description>Sets the initial media clock value and automatic update method.</description>
+
+ <param name="startTime" type="StartTime" mandatory="false">
+ <description>
+ See StartTime.
+ startTime must be provided for "COUNTUP" and "COUNTDOWN".
+ startTime will be ignored for "PAUSE", "RESUME", and "CLEAR"
+ </description>
+ </param>
+
+ <param name="endTime" type="StartTime" mandatory="false">
+ <description>
+ See StartTime.
+ endTime can be provided for "COUNTUP" and "COUNTDOWN"; to be used to calculate any visual progress bar (if not provided, this feature is ignored)
+ If endTime is greater then startTime for COUNTDOWN or less than startTime for COUNTUP, then the request will return an INVALID_DATA.
+ endTime will be ignored for "PAUSE", "RESUME", and "CLEAR"
+ </description>
+ </param>
+
+ <param name="updateMode" type="UpdateMode" mandatory="true">
+ <description>
+ Enumeration to control the media clock.
+ In case of pause, resume, or clear, the start time value is ignored and shall be left out. For resume, the time continues with the same value as it was when paused.
+ </description>
+ </param>
+ </function>
+
+ <function name="SetMediaClockTimer" functionID="SetMediaClockTimerID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="IGNORED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="PerformAudioPassThru" functionID="PerformAudioPassThruID" messagetype="request">
+ <description>Starts audio pass thru session </description>
+ <param name="initialPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ SYNC will speak this prompt before opening the audio pass thru session.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ If omitted, then no initial prompt is spoken.
+ </description>
+ </param>
+ <param name="audioPassThruDisplayText1" type="String" mandatory="false" maxlength="500">
+ <description>First line of text displayed during audio capture.</description>
+ </param>
+ <param name="audioPassThruDisplayText2" type="String" mandatory="false" maxlength="500">
+ <description>Second line of text displayed during audio capture.</description>
+ </param>
+ <param name="samplingRate" type="SamplingRate" mandatory="true">
+ <description> This value shall be allowed at 8 khz or 16 or 22 or 44 khz.</description>
+ </param>
+ <param name="maxDuration" type="Integer" minvalue="1" maxvalue="1000000" mandatory="true">
+ <description>The maximum duration of audio recording in milliseconds. </description>
+ </param>
+ <param name="bitsPerSample" type="BitsPerSample" mandatory="true">
+ <description>Specifies the quality the audio is recorded. Currently 8 bit or 16 bit.</description>
+ </param>
+ <param name="audioType" type="AudioType" mandatory="true">
+ <description>Specifies the type of audio data being requested.</description>
+ </param>
+ <param name="muteAudio" type="Boolean" mandatory="false">
+ <description>
+ Defines if the current audio source should be muted during the APT session. If not, the audio source will play without interruption.
+ If omitted, the value is set to true.
+ </description>
+ </param>
+ </function>
+
+ <function name="PerformAudioPassThru" functionID="PerformAudioPassThruID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="DISALLOWED"/>
+ <element name="REJECTED"/>
+ <element name="ABORTED"/>
+ <element name="RETRY"/>
+ <element name="WARNINGS"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="EndAudioPassThru" functionID="EndAudioPassThruID" messagetype="request">
+ <description>When this request is invoked, the audio capture stops.</description>
+ </function>
+
+ <function name="EndAudioPassThru" functionID="EndAudioPassThruID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="DISALLOWED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="SubscribeButton" functionID="SubscribeButtonID" messagetype="request">
+ <description>
+ Subscribes to built-in HMI buttons.
+ The application will be notified by the OnButtonEvent and OnButtonPress.
+ To unsubscribe the notifications, use unsubscribeButton.
+ </description>
+
+ <param name="buttonName" type="ButtonName">
+ <description>Name of the button to subscribe.</description>
+ </param>
+ </function>
+
+ <function name="SubscribeButton" functionID="SubscribeButtonID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="UNSUPPORTED_RESOURCE" />
+ <element name="IGNORED" />
+ <element name="REJECTED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="UnsubscribeButton" functionID="UnsubscribeButtonID" messagetype="request">
+ <description>Unsubscribes from built-in HMI buttons.</description>
+
+ <param name="buttonName" type="ButtonName">
+ <description>Name of the button to unsubscribe.</description>
+ </param>
+ </function>
+
+ <function name="UnsubscribeButton" functionID="UnsubscribeButtonID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="UNSUPPORTED_RESOURCE" />
+ <element name="IGNORED" />
+ <element name="REJECTED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="SubscribeVehicleData" functionID="SubscribeVehicleDataID" messagetype="request">
+ <description>
+ Subscribes for specific published data items.
+ The data will be only sent if it has changed.
+ The application will be notified by the onVehicleData notification whenever new data is available.
+ To unsubscribe the notifications, use unsubscribe with the same subscriptionType.
+ </description>
+
+ <param name="gps" type="Boolean" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Boolean" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Boolean" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Boolean" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="Boolean" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Boolean" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Boolean" mandatory="false">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ <param name="prndl" type="Boolean" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="Boolean" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Boolean" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="Boolean" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="Boolean" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="Boolean" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="Boolean" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="Boolean" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="Boolean" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Boolean" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Boolean" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Boolean" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+
+ <!-- Ford Specific Data Items -->
+ <param name="eCallInfo" type="Boolean" mandatory="false" scope="internal">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="Boolean" mandatory="false" scope="internal">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="Boolean" mandatory="false" scope="internal">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModeStatus" type="Boolean" mandatory="false" scope="internal">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="Boolean" mandatory="false" scope="partner">
+ <description>Information related to the MyKey feature</description>
+ </param>
+
+ <!-- / Ford Specific Data Items -->
+
+ </function>
+
+ <function name="SubscribeVehicleData" functionID="SubscribeVehicleDataID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="WARNINGS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="IGNORED" />
+ <element name="DISALLOWED"/>
+ <element name="USER_DISALLOWED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ <param name="gps" type="VehicleDataResult" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="VehicleDataResult" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="VehicleDataResult" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="VehicleDataResult" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="VehicleDataResult" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="VehicleDataResult" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="VehicleDataResult" mandatory="false">
+ <description>The external temperature in degrees celsius.</description>
+ </param>
+ <param name="prndl" type="VehicleDataResult" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="VehicleDataResult" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="VehicleDataResult" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="VehicleDataResult" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="VehicleDataResult" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="VehicleDataResult" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="VehicleDataResult" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="VehicleDataResult" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="VehicleDataResult" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="VehicleDataResult" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="VehicleDataResult" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="VehicleDataResult" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+
+ <!-- Ford Specific Data Items -->
+ <param name="eCallInfo" type="VehicleDataResult" mandatory="false" scope="internal">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="VehicleDataResult" mandatory="false" scope="internal">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="VehicleDataResult" mandatory="false" scope="internal">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModes" type="VehicleDataResult" mandatory="false">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="VehicleDataResult" mandatory="false" scope="partner">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ <!-- / Ford Specific Data Items -->
+
+ </function>
+
+ <function name="UnsubscribeVehicleData" functionID="UnsubscribeVehicleDataID" messagetype="request">
+ <description>This function is used to unsubscribe the notifications from the subscribeVehicleData function.</description>
+
+ <param name="gps" type="Boolean" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Boolean" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Boolean" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Boolean" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="Boolean" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Boolean" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Boolean" mandatory="false">
+ <description>The external temperature in degrees celsius.</description>
+ </param>
+ <param name="prndl" type="Boolean" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="Boolean" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Boolean" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="Boolean" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="Boolean" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="Boolean" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="Boolean" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="Boolean" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="Boolean" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Boolean" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Boolean" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Boolean" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+
+ <!-- Ford Specific Data Items -->
+ <param name="eCallInfo" type="Boolean" mandatory="false" scope="internal">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="Boolean" mandatory="false" scope="internal">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="Boolean" mandatory="false" scope="internal">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModeStatus" type="Boolean" mandatory="false" scope="internal">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="Boolean" mandatory="false" scope="partner">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ <!-- / Ford Specific Data Items -->
+
+ </function>
+
+ <function name="UnsubscribeVehicleData" functionID="UnsubscribeVehicleDataID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="WARNINGS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="IGNORED" />
+ <element name="DISALLOWED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ <param name="gps" type="VehicleDataResult" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="VehicleDataResult" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="VehicleDataResult" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="VehicleDataResult" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="VehicleDataResult" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="VehicleDataResult" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="VehicleDataResult" mandatory="false">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ <param name="prndl" type="VehicleDataResult" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="VehicleDataResult" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="VehicleDataResult" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="VehicleDataResult" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="VehicleDataResult" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="VehicleDataResult" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="VehicleDataResult" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="VehicleDataResult" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="VehicleDataResult" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="VehicleDataResult" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="VehicleDataResult" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="VehicleDataResult" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+
+ <!-- Ford Specific Data Items -->
+ <param name="eCallInfo" type="VehicleDataResult" mandatory="false" scope="internal">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="Boolean" mandatory="false" scope="internal">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="VehicleDataResult" mandatory="false" scope="internal">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModes" type="VehicleDataResult" mandatory="false">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="VehicleDataResult" mandatory="false" scope="partner">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ <!-- / Ford Specific Data Items -->
+
+ </function>
+
+ <function name="GetVehicleData" functionID="GetVehicleDataID" messagetype="request">
+ <description>Non periodic vehicle data read request.</description>
+
+ <param name="gps" type="Boolean" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Boolean" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Boolean" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Boolean" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="Boolean" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Boolean" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Boolean" mandatory="false">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ <param name="vin" type="Boolean" mandatory="false">
+ <description>Vehicle identification number</description>
+ </param>
+ <param name="prndl" type="Boolean" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="Boolean" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Boolean" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="Boolean" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="Boolean" mandatory="false">
+ <description>The body information including ignition status and internal temp</description>
+ </param>
+ <param name="deviceStatus" type="Boolean" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="Boolean" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="Boolean" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="Boolean" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Boolean" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Boolean" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Boolean" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+
+ <!-- Ford Specific Data Items -->
+ <param name="eCallInfo" type="Boolean" mandatory="false" scope="internal">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="Boolean" mandatory="false" scope="internal">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="Boolean" mandatory="false" scope="internal">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModeStatus" type="Boolean" mandatory="false" scope="internal">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="Boolean" mandatory="false" scope="partner">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ <!-- / Ford Specific Data Items -->
+
+ </function>
+
+ <function name="GetVehicleData" functionID="GetVehicleDataID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="VEHICLE_DATA_NOT_ALLOWED"/>
+ <element name="VEHICLE_DATA_NOT_AVAILABLE"/>
+ <element name="USER_DISALLOWED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ <param name="gps" type="GPSData" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Float" minvalue="0" maxvalue="700" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Integer" minvalue="0" maxvalue="20000" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Float" minvalue="-6" maxvalue="106" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="ComponentVolumeStatus" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Float" minvalue="0" maxvalue="25575" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Float" minvalue="-40" maxvalue="100" mandatory="false">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ <param name="vin" type="String" maxlength="17" mandatory="false">
+ <description>Vehicle identification number</description>
+ </param>
+ <param name="prndl" type="PRNDL" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="TireStatus" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Integer" minvalue="0" maxvalue="17000000" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="BeltStatus" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="BodyInformation" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="DeviceStatus" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="VehicleDataEventStatus" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="WiperStatus" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="HeadLampStatus" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Float" minvalue="-1000" maxvalue="2000" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Float" minvalue="0" maxvalue="100" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Float" minvalue="-2000" maxvalue="2000" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+
+ <!-- Ford Specific Data Items -->
+ <param name="eCallInfo" type="ECallInfo" mandatory="false" scope="internal">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="AirbagStatus" mandatory="false" scope="internal">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="EmergencyEvent" mandatory="false" scope="internal">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModeStatus" type="ClusterModeStatus" mandatory="false" scope="internal">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="MyKey" mandatory="false" scope="partner">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ <!-- / Ford Specific Data Items -->
+
+ </function>
+
+ <function name="ReadDID" functionID="ReadDIDID" messagetype="request" scope="partner">
+ <description>Non periodic vehicle data read request</description>
+
+ <param name="ecuName" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Name of ECU.</description>
+ </param>
+ <param name="didLocation" type="Integer" minvalue="0" maxvalue="65535" minsize="1" maxsize="1000" array="true" mandatory="true">
+ <description>Get raw data from vehicle data DID location(s)</description>
+ </param>
+ </function>
+
+ <function name="ReadDID" functionID="ReadDIDID" messagetype="response" scope="partner">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="DISALLOWED"/>
+ <element name="USER_DISALLOWED"/>
+ <element name="TRUNCATED_DATA"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ <param name="didResult" type="DIDResult" minsize="0" maxsize="1000" array="true" mandatory="false">
+ <description>Array of requested DID results (with data if available).</description>
+ </param>
+
+ </function>
+
+ <function name="GetDTCs" functionID="GetDTCsID" messagetype="request">
+ <description>Vehicle module diagnostic trouble code request.</description>
+
+ <param name="ecuName" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Name of ECU.</description>
+ </param>
+
+ <param name="dtcMask" type="Integer" minvalue="0" maxvalue="255" mandatory="false">
+ <description>DTC Mask Byte to be sent in diagnostic request to module .</description>
+ </param>
+
+ </function>
+
+ <function name="GetDTCs" functionID="GetDTCsID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="DISALLOWED"/>
+ <element name="USER_DISALLOWED"/>
+ <element name="TRUNCATED_DATA"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ <param name="ecuHeader" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>2 byte ECU Header for DTC response (as defined in VHR_Layout_Specification_DTCs.pdf)</description>
+ </param>
+
+ <param name="dtc" type="String" mandatory="false" minsize="1" maxsize="15" maxlength="10" array="true">
+ <description>
+ Array of all reported DTCs on module (ecuHeader contains information if list is truncated).
+ Each DTC is represented by 4 bytes (3 bytes of data and 1 byte status as defined in VHR_Layout_Specification_DTCs.pdf).
+ </description>
+ </param>
+
+ </function>
+
+ <function name="DiagnosticMessage" functionID="DiagnosticMessageID" messagetype="request" scope="internal">
+ <description>Non periodic vehicle diagnostic request</description>
+
+ <param name="targetID" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Name of target ECU.</description>
+ </param>
+
+ <param name="messageLength" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Length of message (in bytes).</description>
+ </param>
+
+ <param name="messageData" type="Integer" minvalue="0" maxvalue="255" minsize="1" maxsize="65535" array="true" mandatory="true">
+ <description>
+ Array of bytes comprising CAN message.
+ </description>
+ </param>
+ </function>
+
+ <function name="DiagnosticMessage" functionID="DiagnosticMessageID" messagetype="response" scope="internal">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="DISALLOWED"/>
+ <element name="USER_DISALLOWED"/>
+ <element name="TRUNCATED_DATA"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ <param name="messageDataResult" type="Integer" minvalue="0" maxvalue="255" minsize="1" maxsize="65535" array="true" mandatory="true">
+ <description>
+ Array of bytes comprising CAN message result.
+ </description>
+ </param>
+
+ </function>
+
+ <function name="ScrollableMessage" functionID="ScrollableMessageID" messagetype="request">
+ <description>Creates a full screen overlay containing a large block of formatted text that can be scrolled with up to 8 SoftButtons defined</description>
+ <param name="scrollableMessageBody" type="String" maxlength="500">
+ <description>Body of text that can include newlines and tabs.</description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="1000" maxvalue="65535" defvalue="30000" mandatory="false">
+ <description>App defined timeout. Indicates how long of a timeout from the last action (i.e. scrolling message resets timeout).</description>
+ </param>
+ <param name="softButtons" type="SoftButton" minsize="0" maxsize="8" array="true" mandatory="false">
+ <description>
+ App defined SoftButtons.
+ If omitted on supported displays, only the system defined "Close" SoftButton will be displayed.
+ </description>
+ </param>
+ </function>
+
+ <function name="ScrollableMessage" functionID="ScrollableMessageID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="CHAR_LIMIT_EXCEEDED"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="DISALLOWED"/>
+ <element name="UNSUPPORTED_RESOURCE"/>
+ <element name="REJECTED"/>
+ <element name="ABORTED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ </function>
+
+ <function name="Slider" functionID="SliderID" messagetype="request">
+ <description>Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider.</description>
+ <param name="numTicks" type="Integer" minvalue="2" maxvalue="26" mandatory="true">
+ <description>Number of selectable items on a horizontal axis</description>
+ </param>
+ <param name="position" type="Integer" minvalue="1" maxvalue="26" mandatory="true">
+ <description>Initial position of slider control (cannot exceed numTicks)</description>
+ </param>
+ <param name="sliderHeader" type="String" maxlength="500" mandatory="true">
+ <description>Text header to display</description>
+ </param>
+ <param name="sliderFooter" type="String" maxlength="500" minsize="1" maxsize="26" array="true" mandatory="false">
+ <description>
+ Text footer to display (meant to display min/max threshold descriptors).
+ For a static text footer, only one footer string shall be provided in the array.
+ For a dynamic text footer, the number of footer text string in the array must match the numTicks value.
+ For a dynamic text footer, text array string should correlate with potential slider position index.
+ If omitted on supported displays, no footer text shall be displayed.
+ </description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="1000" maxvalue="65535" defvalue="10000" mandatory="false">
+ <description>
+ App defined timeout. Indicates how long of a timeout from the last action (i.e. sliding control resets timeout).
+ If omitted, the value is set to 10000.
+ </description>
+ </param>
+ </function>
+
+ <function name="Slider" functionID="SliderID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="SAVED"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="DISALLOWED"/>
+ <element name="UNSUPPORTED_RESOURCE"/>
+ <element name="REJECTED"/>
+ <element name="ABORTED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ <param name="sliderPosition" type="Integer" minvalue="1" maxvalue="26" mandatory="false">
+ <description>
+ Current slider value returned when saved or canceled (aborted)
+ This value is only returned for resultCodes "SAVED" or "ABORTED"
+ </description>
+ </param>
+ </function>
+
+ <function name="ShowConstantTBT" functionID="ShowConstantTBTID" messagetype="request">
+ <param name="navigationText1" type="String" minlength="0" maxlength="500" mandatory="false">
+ </param>
+ <param name="navigationText2" type="String" minlength="0" maxlength="500" mandatory="false">
+ </param>
+ <param name="eta" type="String" minlength="0" maxlength="500" mandatory="false">
+ </param>
+ <param name="timeToDestination" type="String" minlength="0" maxlength="500" mandatory="false" scope="partner">
+ </param>
+ <param name="totalDistance" type="String" minlength="0" maxlength="500" mandatory="false">
+ </param>
+ <param name="turnIcon" type="Image" mandatory="false">
+ </param>
+ <param name="nextTurnIcon" type="Image" mandatory="false">
+ </param>
+ <param name="distanceToManeuver" type="Float" minvalue="0" maxvalue="1000000000" mandatory="false">
+ <description>
+ Fraction of distance till next maneuver (starting from when AlertManeuver is triggered).
+ Used to calculate progress bar.
+ </description>
+ </param>
+ <param name="distanceToManeuverScale" type="Float" minvalue="0" maxvalue="1000000000" mandatory="false">
+ <description>
+ Distance till next maneuver (starting from) from previous maneuver.
+ Used to calculate progress bar.
+ </description>
+ </param>
+ <param name="maneuverComplete" type="Boolean" mandatory="false">
+ <description>
+ If and when a maneuver has completed while an AlertManeuver is active, the app must send this value set to TRUE in order to clear the AlertManeuver overlay.
+ If omitted the value will be assumed as FALSE.
+ </description>
+ </param>
+ <param name="softButtons" type="SoftButton" minsize="0" maxsize="3" array="true" mandatory="false">
+ <description>
+ Three dynamic SoftButtons available (first SoftButton is fixed to "Turns").
+ If omitted on supported displays, the currently displayed SoftButton values will not change.
+ </description>
+ </param>
+ </function>
+
+ <function name="ShowConstantTBT" functionID="ShowConstantTBTID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="DISALLOWED"/>
+ <element name="UNSUPPORTED_REQUEST"/>
+ <element name="UNSUPPORTED_RESOURCE"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="AlertManeuver" functionID="AlertManeuverID" messagetype="request">
+ <param name="ttsChunks" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
+ </param>
+ <param name="softButtons" type="SoftButton" minsize="0" maxsize="3" array="true" mandatory="false">
+ <description>If omitted on supported displays, only the system defined "Close" SoftButton shall be displayed.</description>
+ </param>
+ </function>
+
+ <function name="AlertManeuver" functionID="AlertManeuverID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="IGNORED"/>
+ <element name="DISALLOWED"/>
+ <element name="UNSUPPORTED_REQUEST"/>
+ <element name="UNSUPPORTED_RESOURCE"/>
+ <element name="ABORTED"/>
+ <element name="WARNINGS"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="UpdateTurnList" functionID="UpdateTurnListID" messagetype="request">
+ <param name="turnList" type="Turn" minsize="1" maxsize="100" array="true">
+ </param>
+ <param name="softButtons" type="SoftButton" minsize="0" maxsize="1" array="true">
+ <description>If omitted on supported displays, app-defined SoftButton will be left blank.</description>
+ </param>
+ </function>
+
+ <function name="UpdateTurnList" functionID="UpdateTurnListID" messagetype="response">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="DISALLOWED"/>
+ <element name="UNSUPPORTED_REQUEST"/>
+ <element name="UNSUPPORTED_RESOURCE"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="ChangeRegistration" functionID="ChangeRegistrationID" messagetype="request">
+ <param name="language" type="Language" mandatory="true">
+ <description>Requested SYNC voice engine (VR+TTS) language registration</description>
+ </param>
+ <param name="hmiDisplayLanguage" type="Language" mandatory="true">
+ <description>Request display language registration</description>
+ </param>
+ </function>
+
+ <function name="ChangeRegistration" functionID="ChangeRegistrationID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description>
+ true, if successful
+ false, if failed
+ </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="DISALLOWED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ </function>
+
+ <function name="GenericResponse" functionID="GenericResponseID" messagetype="response">
+ <description>
+ Generic Response is sent, when the name of a received msg cannot be retrieved. Only used in case of an error.
+ Currently, only resultCode INVALID_DATA is used.
+ </description>
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="INVALID_DATA"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="PutFile" functionID="PutFileID" messagetype="request">
+ <description>
+ Used to push a binary data onto the SYNC module from a mobile device, such as icons and album art
+ Not supported on first generation SYNC vehicles.
+ Binary data is in binary part of hybrid msg.
+ </description>
+
+ <param name="syncFileName" type="String" maxlength="255" mandatory="true">
+ <description>File reference name.</description>
+ </param>
+
+ <param name="fileType" type="FileType" mandatory="true">
+ <description>Selected file type.</description>
+ </param>
+
+ <param name="persistentFile" type="Boolean" defvalue="false" mandatory="false">
+ <description>
+ Indicates if the file is meant to persist between sessions / ignition cycles.
+ If set to TRUE, then the system will aim to persist this file through session / cycles.
+ While files with this designation will have priority over others, they are subject to deletion by the system at any time.
+ In the event of automatic deletion by the system, the app will receive a rejection and have to resend the file.
+ If omitted, the value will be set to false.
+ </description>
+ </param>
+
+ </function>
+
+ <function name="PutFile" functionID="PutFileID" messagetype="response">
+ <description>Response is sent, when the file data was copied (success case). Or when an error occured.</description>
+ <description>Not supported on First generation SYNC vehicles. </description>
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="UNSUPPORTED_REQUEST"/>
+ </param>
+
+ <param name="spaceAvailable" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>Provides the total local space available on SYNC for the registered app.</description>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="DeleteFile" functionID="DeleteFileID" messagetype="request">
+ <description>
+ Used to delete a file resident on the SYNC module in the app's local cache.
+ Not supported on first generation SYNC vehicles.
+ </description>
+
+ <param name="syncFileName" type="String" maxlength="255" mandatory="true">
+ <description>File reference name.</description>
+ </param>
+
+ </function>
+
+ <function name="DeleteFile" functionID="DeleteFileID" messagetype="response">
+ <description>
+ Response is sent, when the file data was deleted (success case). Or when an error occured.
+ Not supported on First generation SYNC vehicles.
+ </description>
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="UNSUPPORTED_REQUEST"/>
+ </param>
+
+ <param name="spaceAvailable" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>Provides the total local space available on SYNC for the registered app.</description>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="ListFiles" functionID="ListFilesID" messagetype="request">
+ <description>
+ Requests the current list of resident filenames for the registered app.
+ Not supported on first generation SYNC vehicles.
+ </description>
+ </function>
+
+ <function name="ListFiles" functionID="ListFilesID" messagetype="response">
+ <description>
+ Returns the current list of resident filenames for the registered app along with the current space available
+ Not supported on First generation SYNC vehicles.
+ </description>
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="UNSUPPORTED_REQUEST"/>
+ </param>
+
+ <param name="filenames" type="String" maxlength="500" minsize="0" maxsize="1000" array="true" mandatory="false">
+ <description>
+ An array of all filenames resident on SYNC for the given registered app.
+ If omitted, then no files currently reside on the system.
+ </description>
+ </param>
+
+ <param name="spaceAvailable" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>Provides the total local space available on SYNC for the registered app.</description>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="SetAppIcon" functionID="SetAppIconID" messagetype="request">
+ <description>
+ Used to set existing local file on SYNC as the app's icon
+ Not supported on first generation SYNC vehicles.
+ </description>
+
+ <param name="syncFileName" type="String" maxlength="255" mandatory="true">
+ <description>File reference name.</description>
+ </param>
+
+ </function>
+
+ <function name="SetAppIcon" functionID="SetAppIconID" messagetype="response">
+ <description>
+ Response is sent, when the file data was copied (success case). Or when an error occured.
+ Not supported on First generation SYNC vehicles.
+ </description>
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="UNSUPPORTED_REQUEST"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ </function>
+
+ <function name="SetDisplayLayout" functionID="SetDisplayLayoutID" messagetype="request">
+ <description>
+ Used to set an alternate display layout.
+ If not sent, default screen for given platform will be shown
+ </description>
+
+ <param name="displayLayout" type="String" maxlength="500" mandatory="true">
+ <description>
+ Predefined or dynamically created screen layout.
+ Currently only predefined screen layouts are defined.
+ </description>
+ </param>
+ </function>
+
+ <function name="OnHashChange" functionID="OnHashChangeID" messagetype="notification">
+ <description>
+ Notification containing an updated hashID which can be used over connection cycles (i.e. loss of connection, ignition cycles, etc.).
+ Sent after initial registration and subsequently after any change in the calculated hash of all persisted app data.
+ </description>
+
+ <param name="hashID" type="String" maxlength="100" mandatory="true">
+ <description>Calculated hash ID to be referenced during RegisterAppInterface.</description>
+ </param>
+ </function>
+
+ <function name="SetDisplayLayout" functionID="SetDisplayLayoutID" messagetype="response">
+
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="UNSUPPORTED_REQUEST"/>
+ </param>
+
+ <param name="displayCapabilities" type="DisplayCapabilities" mandatory="false">
+ <description>See DisplayCapabilities</description>
+ </param>
+
+ <param name="buttonCapabilities" type="ButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>See ButtonCapabilities</description >
+ </param>
+
+ <param name="softButtonCapabilities" type="SoftButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>If returned, the platform supports on-screen SoftButtons; see SoftButtonCapabilities.</description >
+ </param>
+
+ <param name="presetBankCapabilities" type="PresetBankCapabilities" mandatory="false">
+ <description>If returned, the platform supports custom on-screen Presets; see PresetBankCapabilities.</description >
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+
+ </function>
+
+ <function name="SystemRequest" functionID="SystemRequestID" messagetype="request" scope="partner">
+ <description>An asynchronous request from the device; binary data can be included in hybrid part of message for some requests (such as Authentication requests)</description>
+ <param name="requestType" type="RequestType" mandatory="true">
+ <description>The type of system request.</description>
+ </param>
+ </function>
+
+ <function name="SystemRequest" functionID="SystemRequestID" messagetype="response" scope="partner">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_CERT"/>
+ <element name="EXPIRED_CERT"/>
+ </param>
+ </function>
+
+
+ <!-- Notifications -->
+
+ <function name="OnHMIStatus" functionID="OnHMIStatusID" messagetype="notification">
+ <param name="hmiLevel" type="HMILevel">
+ <description>See HMILevel</description>
+ </param>
+
+ <param name="audioStreamingState" type="AudioStreamingState">
+ <description>See AudioStreamingState</description>
+ </param>
+
+ <param name="systemContext" type="SystemContext">
+ <description>See SystemContext</description>
+ </param>
+ </function>
+
+ <function name="OnAppInterfaceUnregistered" functionID="OnAppInterfaceUnregisteredID" messagetype="notification">
+ <param name="reason" type="AppInterfaceUnregisteredReason">
+ <description>See AppInterfaceUnregisteredReason</description>
+ </param>
+ </function>
+
+ <function name="OnButtonEvent" functionID="OnButtonEventID" messagetype="notification">
+ <description>Notifies application of UP/DOWN events for buttons to which the application is subscribed.</description>
+ <param name="buttonName" type="ButtonName"/>
+ <param name="buttonEventMode" type="ButtonEventMode">
+ <description>Indicates whether this is an UP or DOWN event.</description>
+ </param>
+ <param name="customButtonID" type="Integer" minvalue="0" maxvalue="65536" mandatory="false">
+ <description>If ButtonName is "CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButton ID)</description>
+ </param>
+ </function>
+
+ <function name="OnButtonPress" functionID="OnButtonPressID" messagetype="notification">
+ <description>Notifies application of LONG/SHORT press events for buttons to which the application is subscribed.</description>
+ <param name="buttonName" type="ButtonName"/>
+ <param name="buttonPressMode" type="ButtonPressMode">
+ <description>Indicates whether this is a LONG or SHORT button press event.</description>
+ </param>
+ <param name="customButtonID" type="Integer" minvalue="0" maxvalue="65536" mandatory="false">
+ <description>If ButtonName is "CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButton ID)</description>
+ </param>
+ </function>
+
+ <function name="OnVehicleData" functionID="OnVehicleDataID" messagetype="notification">
+ <description>Callback for the periodic and non periodic vehicle data read function.</description>
+ <param name="gps" type="GPSData" mandatory="false">
+ <description>See GPSData</description>
+ </param>
+ <param name="speed" type="Float" minvalue="0" maxvalue="700" mandatory="false">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ <param name="rpm" type="Integer" minvalue="0" maxvalue="20000" mandatory="false">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ <param name="fuelLevel" type="Float" minvalue="-6" maxvalue="106" mandatory="false">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ <param name="fuelLevel_State" type="ComponentVolumeStatus" mandatory="false">
+ <description>The fuel level state</description>
+ </param>
+ <param name="instantFuelConsumption" type="Float" minvalue="0" maxvalue="25575" mandatory="false">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ <param name="externalTemperature" type="Float" minvalue="-40" maxvalue="100" mandatory="false">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ <param name="vin" type="String" maxlength="17" mandatory="false">
+ <description>Vehicle identification number.</description>
+ </param>
+ <param name="prndl" type="PRNDL" mandatory="false">
+ <description>See PRNDL</description>
+ </param>
+ <param name="tirePressure" type="TireStatus" mandatory="false">
+ <description>See TireStatus</description>
+ </param>
+ <param name="odometer" type="Integer" minvalue="0" maxvalue="17000000" mandatory="false">
+ <description>Odometer in km</description>
+ </param>
+ <param name="beltStatus" type="BeltStatus" mandatory="false">
+ <description>The status of the seat belts</description>
+ </param>
+ <param name="bodyInformation" type="BodyInformation" mandatory="false">
+ <description>The body information including power modes</description>
+ </param>
+ <param name="deviceStatus" type="DeviceStatus" mandatory="false">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ <param name="driverBraking" type="VehicleDataEventStatus" mandatory="false">
+ <description>The status of the brake pedal</description>
+ </param>
+ <param name="wiperStatus" type="WiperStatus" mandatory="false">
+ <description>The status of the wipers</description>
+ </param>
+ <param name="headLampStatus" type="HeadLampStatus" mandatory="false">
+ <description>Status of the head lamps</description>
+ </param>
+ <param name="engineTorque" type="Float" minvalue="-1000" maxvalue="2000" mandatory="false">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ <param name="accPedalPosition" type="Float" minvalue="0" maxvalue="100" mandatory="false">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ <param name="steeringWheelAngle" type="Float" minvalue="-2000" maxvalue="2000" mandatory="false">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+
+ <!-- Ford Specific Vehicle Data -->
+ <param name="eCallInfo" type="ECallInfo" mandatory="false">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ <param name="airbagStatus" type="AirbagStatus" mandatory="false">
+ <description>The status of the air bags</description>
+ </param>
+ <param name="emergencyEvent" type="EmergencyEvent" mandatory="false">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ <param name="clusterModeStatus" type="ClusterModeStatus" mandatory="false">
+ <description>The status modes of the cluster</description>
+ </param>
+ <param name="myKey" type="MyKey" mandatory="false">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ <!-- / Ford Specific Vehicle Data -->
+
+ </function>
+
+ <function name="OnCommand" functionID="OnCommandID" messagetype="notification">
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>Command ID, which is related to a specific menu entry</description>
+ </param>
+
+ <param name="triggerSource" type="TriggerSource">
+ <description>See TriggerSource</description>
+ </param>
+ </function>
+
+ <function name="OnTBTClientState" functionID="OnTBTClientStateID" messagetype="notification" >
+ <description>Provides applications with notifications specific to the current TBT client status on the module</description>
+ <param name="state" type="TBTState">
+ <description>Current State of TBT client</description>
+ </param>
+ </function>
+
+ <function name="OnDriverDistraction" functionID="OnDriverDistractionID" messagetype="notification" >
+ <description>Provides driver distraction state to mobile applications</description>
+ <param name="state" type="DriverDistractionState">
+ <description>Current State of Driver Distraction</description>
+ </param>
+ </function>
+
+ <function name="OnPermissionsChange" functionID="OnPermissionsChangeID" messagetype="notification" >
+ <description>Provides update to app of which policy-table-enabled functions are available</description>
+ <param name="permissionItem" type="PermissionItem" minsize="0" maxsize="500" array="true">
+ <description>Change in permissions for a given set of RPCs</description>
+ </param>
+ </function>
+
+ <function name="OnAudioPassThru" functionID="OnAudioPassThruID" messagetype="notification">
+ <description>Binary data is in binary part of hybrid msg</description>
+ </function>
+
+ <function name="OnLanguageChange" functionID="OnLanguageChangeID" messagetype="notification">
+ <param name="language" type="Language">
+ <description>Current SYNC voice engine (VR+TTS) language</description>
+ </param>
+ <param name="hmiDisplayLanguage" type="Language">
+ <description>Current display language</description>
+ </param>
+ </function>
+
+ <function name="OnKeyboardInput" functionID="OnKeyboardInputID" messagetype="notification" platform="MobileNav">
+
+ <description>On-screen keyboard event.</description>
+ <description>Can be full string or individual keypresses depending on keyboard mode.</description>
+
+ <param name="event" type="KeyboardEvent" mandatory="true">
+ <description>On-screen keyboard input data.</description>
+ </param>
+
+ <param name="data" type="String" maxlength="500" mandatory="false">
+ <description>On-screen keyboard input data.</description>
+ <description>For dynamic keypress events, this will be the current compounded string of entry text.</description>
+ <description>For entry submission events, this will be the full text entry (this will always return regardless of the mode).</description>
+ <description>For entry cancelled and entry aborted events, this data param will be omitted.</description>
+ </param>
+
+ </function>
+
+
+ <function name="OnTouchEvent" functionID="OnTouchEventID" messagetype="notification" platform="MobileNav">
+ <description>Notifies about touch events on the screen's prescribed area</description>
+ <param name="type" type="TouchType" mandatory="true">
+ <description>The type of touch event.</description>
+ </param>
+ <param name="event" type="TouchEvent" mandatory="true" minsize="1" maxsize="10" array="true">
+ <description>List of all individual touches involved in this event.</description>
+ </param>
+ </function>
+
+ <function name="OnSystemRequest" functionID="OnSystemRequestID" messagetype="notification" scope="partner">
+ <description> An asynchronous request from the system for specific data from the device or the cloud or response to a request from the device or cloud Binary data can be included in hybrid part of message for some requests (such as Authentication request responses)
+ </description>
+ <param name="requestType" type="RequestType" mandatory="true">
+ <description>The type of system request.</description>
+ </param>
+ <param name="url" type="String" maxlength="1000" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Optional array of URL(s) for HTTP requests.
+ If blank, the binary data shall be forwarded to the app.
+ If not blank, the binary data shall be forwarded to the url(s) with a provided timeout in seconds.
+ </description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
+ <description>
+ Optional timeout for HTTP requests
+ Required if a URL is provided
+ </description>
+ </param>
+ <param name="fileType" type="FileType" mandatory="false">
+ <description>Optional file type (meant for HTTP file requests).</description>
+ </param>
+ <param name="offset" type="Integer" minvalue="0" maxvalue="100000000000" mandatory="false">
+ <description>Optional offset in bytes for resuming partial data chunks</description>
+ </param>
+ <param name="length" type="Integer" minvalue="0" maxvalue="100000000000" mandatory="false">
+ <description>Optional length in bytes for resuming partial data chunks</description>
+ </param>
+ </function>
+
+<!-- ~~~~~~~~~~~~~~~~~~ -->
+<!-- Ford Specific APIs -->
+<!-- ~~~~~~~~~~~~~~~~~~ -->
+
+ <function name="EncodedSyncPData" functionID="EncodedSyncPDataID" messagetype="request" scope="partner">
+ <description>
+ Allows encoded data in the form of SyncP packets to be sent to the SYNC module.
+ Legacy / v1 Protocol implementation; use SyncPData instead.
+ </description>
+
+ <param name="data" type="String" maxlength="1000000" minsize="1" maxsize="100" array="true" mandatory="true">
+ <description>Contains base64 encoded string of SyncP packets.</description>
+ <todo>What is the maxlength?</todo>
+ </param>
+ </function>
+
+ <function name="EncodedSyncPData" functionID="EncodedSyncPDataID" messagetype="response" scope="partner">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="SyncPData" functionID="SyncPDataID" messagetype="request" scope="partner">
+ <description>
+ Allows binary data in the form of SyncP packets to be sent to the SYNC module.
+ Binary data is in binary part of hybrid msg.
+ </description>
+
+ </function>
+
+ <function name="SyncPData" functionID="SyncPDataID" messagetype="response" scope="partner">
+ <param name="success" type="Boolean" platform="documentation">
+ <description> true, if successful; false, if failed </description>
+ </param>
+
+ <param name="resultCode" type="Result" platform="documentation">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ </param>
+
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+
+ <function name="OnEncodedSyncPData" functionID="OnEncodedSyncPDataID" messagetype="notification" scope="partner">
+ <description>
+ Callback including encoded data of any SyncP packets that SYNC needs to send back to the mobile device.
+ Legacy / v1 Protocol implementation; responds to EncodedSyncPData.
+ </description>
+ <param name="data" type="String" maxlength="1000000" minsize="1" maxsize="100" mandatory="true" array="true">
+ <description>Contains base64 encoded string of SyncP packets.</description>
+ </param>
+ <param name="URL" type="String" maxlength="1000" mandatory="false">
+ <description>
+ If blank, the SyncP data shall be forwarded to the app.
+ If not blank, the SyncP data shall be forwarded to the provided URL.
+ </description>
+ </param>
+ <param name="Timeout" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
+ <description>
+ If blank, the SyncP data shall be forwarded to the app.
+ If not blank, the SyncP data shall be forwarded with the provided timeout in seconds.
+ </description>
+ </param>
+ </function>
+
+ <function name="OnSyncPData" functionID="OnSyncPDataID" messagetype="notification" scope="partner">
+ <description>
+ Callback including binary data of any SyncP packets that SYNC needs to send back to the mobile device.
+ Responds to SyncPData.
+ Binary data is in binary part of hybrid msg.
+ </description>
+
+ <param name="URL" type="String" maxlength="1000" mandatory="false">
+ <description>
+ If blank, the SyncP data shall be forwarded to the app.
+ If not blank, the SyncP data shall be forwarded to the provided URL.
+ </description>
+ </param>
+ <param name="Timeout" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
+ <description>
+ If blank, the SyncP data shall be forwarded to the app.
+ If not blank, the SyncP data shall be forwarded with the provided timeout in seconds.
+ </description>
+ </param>
+
+ </function>
+
+ </interface>
diff --git a/SDL_Core/src/components/Interfaces/QT_HMI_API.xml b/SDL_Core/src/components/Interfaces/QT_HMI_API.xml
new file mode 100644
index 000000000..c3252f0e0
--- /dev/null
+++ b/SDL_Core/src/components/Interfaces/QT_HMI_API.xml
@@ -0,0 +1,3756 @@
+<?xml version="1.0" standalone="yes"?>
+
+<!--
+* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE. -->
+
+
+<interfaces name="SmartDeviceLink HMI API">
+
+<interface name="Common" version="1.1" date="2013-10-02">
+
+<enum name="Result">
+ <element name="SUCCESS" value="0"/>
+ <element name="UNSUPPORTED_REQUEST" value="1"/>
+ <element name="UNSUPPORTED_RESOURCE" value="2"/>
+ <element name="DISALLOWED" value="3"/>
+ <element name="REJECTED" value="4"/>
+ <element name="ABORTED" value="5"/>
+ <element name="IGNORED" value="6"/>
+ <element name="RETRY" value="7"/>
+ <element name="IN_USE" value="8"/>
+ <element name="DATA_NOT_AVAILABLE" value="9"/>
+ <element name="TIMED_OUT" value="10"/>
+ <element name="INVALID_DATA" value="11"/>
+ <element name="CHAR_LIMIT_EXCEEDED" value="12"/>
+ <element name="INVALID_ID" value="13"/>
+ <element name="DUPLICATE_NAME" value="14"/>
+ <element name="APPLICATION_NOT_REGISTERED" value="15"/>
+ <element name="WRONG_LANGUAGE" value="16"/>
+ <element name="OUT_OF_MEMORY" value="17"/>
+ <element name="TOO_MANY_PENDING_REQUESTS" value="18"/>
+ <element name="NO_APPS_REGISTERED" value="19"/>
+ <element name="NO_DEVICES_CONNECTED" value="20"/>
+ <element name="WARNINGS" value="21"/>
+ <element name="GENERIC_ERROR" value="22"/>
+ <element name="USER_DISALLOWED" value="23"/>
+</enum>
+
+<enum name="ButtonName">
+ <description>Defines the hard (physical) and soft (touchscreen) buttons available from SYNC</description>
+ <element name="OK"/>
+ <element name="SEEKLEFT"/>
+ <element name="SEEKRIGHT"/>
+ <element name="TUNEUP"/>
+ <element name="TUNEDOWN"/>
+ <element name="PRESET_0"/>
+ <element name="PRESET_1"/>
+ <element name="PRESET_2"/>
+ <element name="PRESET_3"/>
+ <element name="PRESET_4"/>
+ <element name="PRESET_5"/>
+ <element name="PRESET_6"/>
+ <element name="PRESET_7"/>
+ <element name="PRESET_8"/>
+ <element name="PRESET_9"/>
+ <element name="CUSTOM_BUTTON"/>
+ <element name="SEARCH"/>
+</enum>
+
+<enum name="ButtonEventMode">
+ <element name="BUTTONUP">
+ <description>A button has been released up</description>
+ </element>
+ <element name="BUTTONDOWN">
+ <description>A button has been pressed down</description>
+ </element>
+</enum>
+
+<enum name="ButtonPressMode">
+ <element name="LONG">
+ <description>A button was released, after it was pressed for a long time. Actual timing is defined by head unit and may vary</description>
+ </element>
+ <element name="SHORT">
+ <description>A button was released, after it was pressed for a short time. Actual timing is defined by head unit and may vary</description>
+ </element>
+</enum>
+
+ <enum name="Language">
+ <element name="EN-US" internal_name="EN_US">
+ <description>English - US</description>
+ </element>
+ <element name="ES-MX" internal_name="ES_MX">
+ <description>Spanish - Mexico</description>
+ </element>
+ <element name="FR-CA" internal_name="FR_CA">
+ <description>French - Canada</description>
+ </element>
+ <element name="DE-DE" internal_name="DE_DE">
+ <description>German - Germany</description>
+ </element>
+ <element name="ES-ES" internal_name="ES_ES">
+ <description>Spanish - Spain</description>
+ </element>
+ <element name="EN-GB" internal_name="EN_GB">
+ <description>English - GB</description>
+ </element>
+ <element name="RU-RU" internal_name="RU_RU">
+ <description>Russian - Russia</description>
+ </element>
+ <element name="TR-TR" internal_name="TR_TR">
+ <description>Turkish - Turkey</description>
+ </element>
+ <element name="PL-PL" internal_name="PL_PL">
+ <description>Polish - Poland</description>
+ </element>
+ <element name="FR-FR" internal_name="FR_FR">
+ <description>French - France</description>
+ </element>
+ <element name="IT-IT" internal_name="IT_IT">
+ <description>Italian - Italy</description>
+ </element>
+ <element name="SV-SE" internal_name="SV_SE">
+ <description>Swedish - Sweden</description>
+ </element>
+ <element name="PT-PT" internal_name="PT_PT">
+ <description>Portuguese - Portugal</description>
+ </element>
+ <element name="NL-NL" internal_name="NL_NL">
+ <description>Dutch (Standard) - Netherlands</description>
+ </element>
+ <element name="EN-AU" internal_name="EN_AU">
+ <description>English - Australia</description>
+ </element>
+ <element name="ZH-CN" internal_name="ZH_CN">
+ <description>Mandarin - China</description>
+ </element>
+ <element name="ZH-TW" internal_name="ZH_TW">
+ <description>Mandarin - Taiwan</description>
+ </element>
+ <element name="JA-JP" internal_name="JA_JP">
+ <description>Japanese - Japan</description>
+ </element>
+ <element name="AR-SA" internal_name="AR_SA">
+ <description>Arabic - Saudi Arabia</description>
+ </element>
+ <element name="KO-KR" internal_name="KO_KR">
+ <description>Korean - South Korea</description>
+ </element>
+ <element name="PT-BR" internal_name="PT_BR">
+ <description>Portuguese - Brazil</description>
+ </element>
+ <element name="CS-CZ" internal_name="CS_CZ">
+ <description>Czech - Czech Republic</description>
+ </element>
+ <element name="DA-DK" internal_name="DA_DK">
+ <description>Danish - Denmark</description>
+ </element>
+ <element name="NO-NO" internal_name="NO_NO">
+ <description>Norwegian - Norway</description>
+ </element>
+</enum>
+
+<enum name="SoftButtonType">
+ <description>Contains information about the SoftButton capabilities.</description>
+ <element name="TEXT" internal_name="SBT_TEXT"/>
+ <element name="IMAGE" internal_name="SBT_IMAGE"/>
+ <element name="BOTH" internal_name="SBT_BOTH"/>
+</enum>
+
+<enum name="SystemAction">
+ <description>Enumeration that describes system actions that can be triggered.</description>
+ <element name="DEFAULT_ACTION">
+ <description>Default action occurs. Standard behavior (e.g. SoftButton clears overlay).</description>
+ </element>
+ <element name="STEAL_FOCUS">
+ <description>The calling app's dialog or related event should clear and the app should be brought into HMI_FULL.</description>
+ </element>
+ <element name="KEEP_CONTEXT">
+ <description>Current system context is maintained. An overlay is persisted even though a SoftButton has been pressed and the notification sent.</description>
+ </element>
+</enum>
+
+<enum name="AppHMIType">
+ <description>Enumeration listing possible app types.</description>
+ <element name="DEFAULT" />
+ <element name="COMMUNICATION" />
+ <element name="MEDIA" />
+ <element name="MESSAGING" />
+ <element name="NAVIGATION" />
+ <element name="INFORMATION" />
+ <element name="SOCIAL" />
+ <element name="BACKGROUND_PROCESS" />
+ <element name="TESTING" />
+ <element name="SYSTEM" />
+</enum>
+
+<enum name="LayoutMode">
+ <description>For touchscreen interactions, the mode of how the choices are presented.</description>
+ <element name="ICON_ONLY" />
+ <description>This mode causes the interaction to display the previous set of choices as icons.</description>
+ <element name="ICON_WITH_SEARCH" />
+ <description>This mode causes the interaction to display the previous set of choices as icons along with a search field in the HMI.</description>
+ <element name="LIST_ONLY" />
+ <description>This mode causes the interaction to display the previous set of choices as a list.</description>
+ <element name="LIST_WITH_SEARCH" />
+ <description>This mode causes the interaction to display the previous set of choices as a list along with a search field in the HMI.</description>
+ <element name="KEYBOARD" />
+ <description>This mode causes the interaction to immediately display a keyboard entry through the HMI.</description>
+</enum>
+
+<enum name="DeactivateReason">
+ <description>Specifies the functionality the User has switched to.</description>
+ <element name="AUDIO">
+ <description>Navigated to audio(radio, etc)</description>
+ </element>
+ <element name="PHONECALL">
+ <description>Navigated to make a call.</description>
+ </element>
+ <element name="NAVIGATIONMAP">
+ <description>Navigated to navigation screen.</description>
+ </element>
+ <element name="PHONEMENU">
+ <description>Navigated to phone menu.</description>
+ </element>
+ <element name="SYNCSETTINGS">
+ <description>Navigated to settings menu.</description>
+ </element>
+ <element name="GENERAL">
+ <description>Other screens navigation apart from other mobile app.</description>
+ </element>
+</enum>
+
+<enum name="ClockUpdateMode">
+ <description>Describes how the media clock timer should behave on the platform</description>
+ <element name="COUNTUP" />
+ <description>Starts the media clock timer counting upwards, as in time elapsed.</description>
+ <element name="COUNTDOWN" />
+ <description>Starts the media clock timer counting downwards, as in time remaining.</description>
+ <element name="PAUSE" />
+ <description>Pauses the media clock timer</description>
+ <element name="RESUME" />
+ <description>Resume the media clock timer</description>
+ <element name="CLEAR" />
+ <description>Clears the media clock timer (previously done through Show->mediaClock)</description>
+</enum>
+
+<enum name="SystemContext">
+ <description>Enumeration that describes possible contexts the application might be in on HU.</description>
+ <description>Communicated to whichever app is in HMI FULL, except Alert.</description>
+ <element name="MAIN" internal_name="SYSCTXT_MAIN">
+ <description>The app's persistent display (whether media/non-media/navigation) is fully visible onscreen.</description>
+ <description> There is currently no user interaction (user-initiated or app-initiated) with the head-unit</description>
+ </element>
+ <element name="VRSESSION" internal_name="SYSCTXT_VRSESSION">
+ <description>The system is currently in a VR session (with whatever dedicated VR screen being overlaid onscreen).</description>
+ </element>
+ <element name="MENU" internal_name="SYSCTXT_MENU">
+ <description>The system is currently displaying a system or in-App menu onscreen.</description>
+ </element>
+ <element name="HMI_OBSCURED" internal_name="SYSCTXT_HMI_OBSCURED">
+ <description>The app's display HMI is currently obscuring with either a system or other app's overlay (except of Alert element).</description>
+ </element>
+ <element name="ALERT" internal_name="SYSCTXT_ALERT">
+ <description>Broadcast only to whichever app has an alert currently being displayed.</description>
+ </element>
+</enum>
+
+<enum name="HmiZoneCapabilities">
+ <description>Contains information about the HMI zone capabilities.</description>
+ <description>For future use.</description>
+ <element name="FRONT" />
+ <element name="BACK" />
+</enum>
+
+<enum name="SpeechCapabilities">
+ <description>Contains information about the TTS capabilities.</description>
+ <element name="TEXT" internal_name="SC_TEXT" />
+ <element name="SAPI_PHONEMES" />
+ <element name="LHPLUS_PHONEMES" />
+ <element name="PRE_RECORDED" />
+ <element name="SILENCE" />
+</enum>
+
+<enum name="VrCapabilities">
+ <description>Contains information about the VR capabilities.</description>
+ <element name="TEXT" internal_name="VR_TEXT" />
+</enum>
+
+<enum name="PrerecordedSpeech">
+ <description>Contains a list of prerecorded speech items present on the platform.</description>
+ <element name="HELP_JINGLE" />
+ <element name="INITIAL_JINGLE" />
+ <element name="LISTEN_JINGLE" />
+ <element name="POSITIVE_JINGLE" />
+ <element name="NEGATIVE_JINGLE" />
+</enum>
+
+<enum name="TBTState">
+ <description>Enumeration that describes possible states of turn-by-turn client or SmartDeviceLink app.</description>
+ <element name="ROUTE_UPDATE_REQUEST" />
+ <element name="ROUTE_ACCEPTED" />
+ <element name="ROUTE_REFUSED" />
+ <element name="ROUTE_CANCELLED" />
+ <element name="ETA_REQUEST" />
+ <element name="NEXT_TURN_REQUEST" />
+ <element name="ROUTE_STATUS_REQUEST" />
+ <element name="ROUTE_SUMMARY_REQUEST" />
+ <element name="TRIP_STATUS_REQUEST" />
+ <element name="ROUTE_UPDATE_REQUEST_TIMEOUT" />
+</enum>
+
+<enum name="ApplicationsCloseReason">
+ <description>Describes the reasons for exiting all of applications.</description>
+ <element name="IGNITION_OFF" />
+ <element name="MASTER_RESET" />
+ <element name="FACTORY_DEFAULTS" />
+</enum>
+
+<enum name="DisplayType">
+ <description>The possible types of HU display.</description>
+ <element name="CID">
+ <description> A 2-line x 20 character "dot matrix" display </description>
+ </element>
+ <element name="TYPE2">
+ <description> 1 line older radio head unit.</description>
+ </element>
+ <element name="TYPE5">
+ <description> Old radio head unit.</description>
+ </element>
+ <element name="NGN">
+ <description> Next Generation Navigation display.</description>
+ </element>
+ <element name="GEN2_8_DMA">
+ <description> GEN-2, 8 inch display.</description>
+ </element>
+ <element name="GEN2_6_DMA">
+ <description> GEN-2, 6 inch display.</description>
+ </element>
+ <element name="MFD3">
+ <description> 3 inch GEN1.1 display </description>
+ </element>
+ <element name="MFD4">
+ <description> 4 inch GEN1.1 display </description>
+ </element>
+ <element name="MFD5">
+ <description> 5 inch GEN1.1 display </description>
+ </element>
+ <element name="GEN3_8-INCH" internal_name="GEN3_8_INCH" />
+ </enum>
+
+<enum name="ImageType">
+ <description>Contains information about the type of image.</description>
+ <element name="STATIC" />
+ <element name="DYNAMIC" />
+</enum>
+
+<enum name="TextFieldName">
+ <element name="mainField1">
+ <description>The first line of first set of main fields of the persistent display; applies to "Show"</description>
+ </element>
+ <element name="mainField2">
+ <description>The second line of first set of main fields of the persistent display; applies to "Show"</description>
+ </element>
+ <element name="mainField3">
+ <description>The first line of second set of main fields of persistent display; applies to "Show"</description>
+ </element>
+ <element name="mainField4">
+ <description>The second line of second set of main fields of the persistent display; applies to "Show"</description>
+ </element>
+ <element name="statusBar">
+ <description>The status bar on NGN; applies to "Show"</description>
+ </element>
+ <element name="mediaClock">
+ <description>Text value for MediaClock field; applies to "Show"</description>
+ </element>
+ <element name="mediaTrack">
+ <description>The track field of NGN and GEN1.1 MFD displays. This field is only available for media applications; applies to "Show"</description>
+ </element>
+ <element name="alertText1">
+ <description>The first line of the alert text field; applies to "Alert"</description>
+ </element>
+ <element name="alertText2">
+ <description>The second line of the alert text field; applies to "Alert"</description>
+ </element>
+ <element name="alertText3">
+ <description>The third line of the alert text field; applies to "Alert"</description>
+ </element>
+ <element name="scrollableMessageBody">
+ <description>Long form body of text that can include newlines and tabs; applies to "ScrollableMessage"</description>
+ </element>
+ <element name="initialInteractionText">
+ <description> First line suggestion for a user response (in the case of VR enabled interaction</description>
+ </element>
+ <element name="navigationText1">
+ <description> First line of navigation text</description>
+ </element>
+ <element name="navigationText2">
+ <description> Second line of navigation text</description>
+ </element>
+ <element name="ETA">
+ <description> Estimated Time of Arrival time for navigation</description>
+ </element>
+ <element name="totalDistance">
+ <description> Total distance to destination for navigation</description>
+ </element>
+ <element name="navigationText">
+ <description>Navigation text for UpdateTurnList.</description>
+ </element>
+ <element name="audioPassThruDisplayText1">
+ <description> First line of text for audio pass thru</description>
+ </element>
+ <element name="audioPassThruDisplayText2">
+ <description> Second line of text for audio pass thru</description>
+ </element>
+ <element name="sliderHeader">
+ <description> Header text for slider</description>
+ </element>
+ <element name="sliderFooter">
+ <description> Footer text for slider</description>
+ </element>
+ <element name="notificationText">
+ <description>Text of notification to be displayed on screen.</description>
+ </element>
+ <element name="menuName">
+ <description> Primary text for Choice</description>
+ </element>
+ <element name="secondaryText">
+ <description> Secondary text for Choice</description>
+ </element>
+ <element name="tertiaryText">
+ <description> Tertiary text for Choice</description>
+ </element>
+ <element name="timeToDestination"/>
+ <!-- TO DO to be removed -->
+ <element name="turnText"/>
+</enum>
+
+<enum name="ImageFieldName">
+ <element name="softButtonImage">
+ <description>The image field for SoftButton</description>
+ </element>
+ <element name="choiceImage">
+ <description>The first image field for Choice</description>
+ </element>
+ <element name="choiceSecondaryImage">
+ <description>The secondary image field for Choice</description>
+ </element>
+ <element name="vrHelpItem">
+ <description>The image field for vrHelpItem</description>
+ </element>
+ <element name="turnIcon">
+ <description>The image field for Turn</description>
+ </element>
+ <element name="menuIcon">
+ <description>The image field for the menu icon in SetGlobalProperties</description>
+ </element>
+ <element name="cmdIcon">
+ <description>The image field for AddCommand</description>
+ </element>
+ <element name="appIcon">
+ <description>The image field for the app icon (set by setAppIcon)</description>
+ </element>
+ <element name="graphic">
+ <description>The image field for Show</description>
+ </element>
+ <element name="showConstantTBTIcon">
+ <description>The primary image field for ShowConstantTBT</description>
+ </element>
+ <element name="showConstantTBTNextTurnIcon">
+ <description>The secondary image field for ShowConstantTBT</description>
+ </element>
+</enum>
+
+<enum name="TextAlignment">
+ <description>The list of possible alignments, left, right, or centered</description>
+ <element name="LEFT_ALIGNED" />
+ <element name="RIGHT_ALIGNED" />
+ <element name="CENTERED" />
+</enum>
+
+<enum name="DriverDistractionState">
+ <description>Enumeration that describes possible states of driver distraction.</description>
+ <element name="DD_ON" />
+ <element name="DD_OFF" />
+</enum>
+
+<enum name="MediaClockFormat">
+ <element name="CLOCK1">
+ <description>
+ minutesFieldWidth = 2;minutesFieldMax = 19;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 19;maxMinutes = 59;maxSeconds = 59;
+ Is used for Type II, NGN and CID head units.
+ </description>
+ </element>
+ <element name="CLOCK2">
+ <description>
+ minutesFieldWidth = 3;minutesFieldMax = 199;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 59;maxMinutes = 59;maxSeconds = 59;
+ Is used for Type V head units.
+ </description>
+ </element>
+ <element name="CLOCK3">
+ <description>
+ minutesFieldWidth = 2;minutesFieldMax = 59;secondsFieldWidth = 2;secondsFieldMax = 59;maxHours = 9;maxMinutes = 59;maxSeconds = 59;
+ Is used for GEN1.1 (i.e. MFD3/4/5) head units.
+ </description>
+ </element>
+ <element name="CLOCKTEXT1">
+ <description>
+ 5 characters possible
+ Format: 1|sp c :|sp c c
+ 1|sp : digit "1" or space
+ c : character out of following character set: sp|0-9|[letters
+ :|sp : colon or space
+ Is used for Type II head unit
+ </description>
+ </element>
+ <element name="CLOCKTEXT2">
+ <description>
+ 5 chars possible
+ Format: 1|sp c :|sp c c
+ 1|sp : digit "1" or space
+ c : character out of following character set: sp|0-9|[letters
+ :|sp : colon or space
+ Is used for CID and NGN head unit
+ </description>
+ </element>
+ <element name="CLOCKTEXT3">
+ <description>
+ 6 chars possible
+ Format: 1|sp c c :|sp c c
+ 1|sp : digit "1" or space
+ c : character out of following character set: sp|0-9|[letters
+ :|sp : colon or space
+ Is used for Type V head unit
+ </description>
+ </element>
+ <element name="CLOCKTEXT4">
+ <description>
+ 6 chars possible
+ Format: c :|sp c c : c c
+ :|sp : colon or space
+ c : character out of following character set: sp|0-9|[letters].
+ Is used for GEN1.1 (i.e. MFD3/4/5) head units
+ </description>
+ </element>
+</enum>
+
+<!--IVI part-->
+<enum name="ComponentVolumeStatus">
+ <description>The volume status of a vehicle component.</description>
+ <element name="UNKNOWN" internal_name="CVS_UNKNOWN">
+ <description> The data is unknown.</description>
+ </element>
+ <element name="NORMAL" internal_name="CVS_NORMAL">
+ <description> The volume is normal.</description>
+ </element>
+ <element name="LOW" internal_name="CVS_LOW">
+ <description> The volume is low.</description>
+ </element>
+ <element name="FAULT" internal_name="CVS_FAULT">
+ <description> The module/sensor is currently faulted. </description>
+ </element>
+ <element name="ALERT" internal_name="CVS_ALERT">
+ <description> The component`s volume is in critical level.</description>
+ </element>
+ <element name="NOT_SUPPORTED" internal_name="CVS_NOT_SUPPORTED">
+ <description> The data is not supported.</description>
+ </element>
+</enum>
+
+<enum name="PRNDL">
+ <description>The selected gear.</description>
+ <element name="PARK">
+ <description>Parking</description>
+ </element>
+ <element name="REVERSE">
+ <description>Reverse gear</description>
+ </element>
+ <element name="NEUTRAL">
+ <description>No gear</description>
+ </element>
+ <element name="DRIVE">
+ </element>
+ <element name="SPORT">
+ <description>Drive Sport mode</description>
+ </element>
+ <element name="LOWGEAR">
+ <description>1st gear hold</description>
+ </element>
+ <element name="FIRST">
+ </element>
+ <element name="SECOND">
+ </element>
+ <element name="THIRD">
+ </element>
+ <element name="FOURTH">
+ </element>
+ <element name="FIFTH">
+ </element>
+ <element name="SIXTH">
+ </element>
+ <element name="SEVENTH">
+ </element>
+ <element name="EIGHTH">
+ </element>
+ <element name="FAULT">
+ </element>
+</enum>
+
+<enum name="VehicleDataEventStatus">
+ <description>Reflects the status of a vehicle data event; e.g. a seat belt event status.</description>
+ <element name="NO_EVENT" internal_name="VDES_NO_EVENT">
+ <description> The system does not have the adequate information to send valid YES or NO states.</description>
+ </element>
+ <element name="NO" internal_name="VDES_NO">
+ <description> The requested event is in NO state.</description>
+ </element>
+ <element name="YES" internal_name="VDES_YES">
+ <description> The requested event is in YES state.</description>
+ </element>
+ <element name="NOT_SUPPORTED" internal_name="VDES_NOT_SUPPORTED">
+ <description> The requested data is not supported </description>
+ </element>
+ <element name="FAULT" internal_name="VDES_FAULT">
+ <description> The module/sensor is currently faulted.</description>
+ </element>
+</enum>
+
+<enum name="VehicleDataStatus">
+ <description>Reflects the status of a binary vehicle data item.</description>
+ <element name="NO_DATA_EXISTS" internal_name="VDS_NO_DATA_EXISTS">
+ </element>
+ <element name="OFF" internal_name="VDS_OFF">
+ </element>
+ <element name="ON" internal_name="VDS_ON">
+ </element>
+</enum>
+
+<enum name="IgnitionStableStatus">
+ <description>Reflects the ignition switch stability.</description>
+ <element name="IGNITION_SWITCH_NOT_STABLE">
+ </element>
+ <element name="IGNITION_SWITCH_STABLE">
+ </element>
+ <element name="MISSING_FROM_TRANSMITTER">
+ <description> Either the data is not accessible or the sensor is broken.</description>
+ </element>
+</enum>
+
+<enum name="IgnitionStatus">
+ <description>Reflects the status of ignition.</description>
+ <element name="UNKNOWN" internal_name="IS_UNKNOWN">
+ <description> The information is not acceptable. </description>
+ </element>
+ <element name="OFF" internal_name="IS_OFF">
+ <description> The ignition is off.</description>
+ </element>
+ <element name="ACCESSORY" internal_name="IS_ACCESSORY">
+ <description> The accessories are active (power windows, audio, display, etc.).</description>
+ </element>
+ <element name="RUN" internal_name="IS_RUN">
+ <description> Ignition is active.</description>
+ </element>
+ <element name="START" internal_name="IS_START">
+ <description> Starter is switched.</description>
+ </element>
+ <element name="INVALID" internal_name="IS_INVALID">
+ <description> The data is provided, but there is some sort of fault or problem.</description>
+ </element>
+</enum>
+
+<enum name="DeviceLevelStatus">
+ <description>Reflects the reported component status of the connected device, if reported.</description>
+ <element name="ZERO_LEVEL_BARS">
+ </element>
+ <element name="ONE_LEVEL_BARS">
+ </element>
+ <element name="TWO_LEVEL_BARS">
+ </element>
+ <element name="THREE_LEVEL_BARS">
+ </element>
+ <element name="FOUR_LEVEL_BARS">
+ </element>
+ <element name="NOT_PROVIDED">
+ </element>
+</enum>
+
+<enum name="PrimaryAudioSource">
+ <description>Reflects the current primary audio source (if selected).</description>
+ <element name="NO_SOURCE_SELECTED">
+ </element>
+ <element name="USB">
+ </element>
+ <element name="USB2">
+ </element>
+ <element name="BLUETOOTH_STEREO_BTST">
+ </element>
+ <element name="LINE_IN">
+ </element>
+ <element name="IPOD">
+ </element>
+ <element name="MOBILE_APP">
+ </element>
+</enum>
+
+<enum name="CompassDirection">
+ <description>The list of potential compass directions</description>
+ <element name="NORTH">
+ </element>
+ <element name="NORTHWEST">
+ </element>
+ <element name="WEST">
+ </element>
+ <element name="SOUTHWEST">
+ </element>
+ <element name="SOUTH">
+ </element>
+ <element name="SOUTHEAST">
+ </element>
+ <element name="EAST">
+ </element>
+ <element name="NORTHEAST">
+ </element>
+</enum>
+
+<enum name="Dimension">
+ <description>The supported dimensions of the GPS</description>
+ <element name="NO_FIX" internal_name="Dimension_NO_FIX">
+ <description>No GPS at all</description>
+ </element>
+ <element name="2D" internal_name="Dimension_2D">
+ <description>Longitude and lattitude</description>
+ </element>
+ <element name="3D" internal_name="Dimension_3D">
+ <description>Longitude and lattitude and altitude</description>
+ </element>
+</enum>
+
+<enum name="TouchType">
+ <element name="BEGIN"/>
+ <element name="MOVE"/>
+ <element name="END"/>
+</enum>
+
+<enum name="WarningLightStatus">
+ <description>Reflects the status of a cluster instrument warning light.</description>
+ <element name="OFF" internal_name="WLS_OFF">
+ </element>
+ <element name="ON" internal_name="WLS_ON">
+ </element>
+ <element name="FLASH" internal_name="WLS_FLASH">
+ </element>
+ <element name="NOT_USED" internal_name="WLS_NOT_USED">
+ </element>
+</enum>
+
+<enum name="VehicleDataResultCode">
+ <description>Enumeration that describes possible result codes of a vehicle data entry request.</description>
+ <element name="SUCCESS" internal_name="VDRC_SUCCESS"/>
+ <element name="TRUNCATED_DATA" internal_name="VDRC_TRUNCATED_DATA"/>
+ <element name="DISALLOWED" internal_name="VDRC_DISALLOWED"/>
+ <element name="USER_DISALLOWED" internal_name="VDRC_USER_DISALLOWED"/>
+ <element name="INVALID_ID" internal_name="VDRC_INVALID_ID"/>
+ <element name="VEHICLE_DATA_NOT_AVAILABLE" internal_name="VDRC_DATA_NOT_AVAILABLE"/>
+ <element name="DATA_ALREADY_SUBSCRIBED" internal_name="VDRC_DATA_ALREADY_SUBSCRIBED"/>
+ <element name="DATA_NOT_SUBSCRIBED" internal_name="VDRC_DATA_NOT_SUBSCRIBED"/>
+ <element name="IGNORED" internal_name="VDRC_IGNORED"/>
+</enum>
+
+<enum name="VehicleDataType">
+ <description>Defines the data types that can be published and subscribed to.</description>
+ <element name="VEHICLEDATA_GPS">
+ <description>Notifies GPSData may be subscribed</description>
+ </element>
+ <element name="VEHICLEDATA_SPEED" />
+ <element name="VEHICLEDATA_RPM" />
+ <element name="VEHICLEDATA_FUELLEVEL" />
+ <element name="VEHICLEDATA_FUELLEVEL_STATE" />
+ <element name="VEHICLEDATA_FUELCONSUMPTION" />
+ <element name="VEHICLEDATA_EXTERNTEMP" />
+ <element name="VEHICLEDATA_VIN" />
+ <element name="VEHICLEDATA_PRNDL" />
+ <element name="VEHICLEDATA_TIREPRESSURE" />
+ <element name="VEHICLEDATA_ODOMETER" />
+ <element name="VEHICLEDATA_BELTSTATUS" />
+ <element name="VEHICLEDATA_BODYINFO" />
+ <element name="VEHICLEDATA_DEVICESTATUS" />
+ <element name="VEHICLEDATA_ECALLINFO" />
+ <element name="VEHICLEDATA_AIRBAGSTATUS" />
+ <element name="VEHICLEDATA_EMERGENCYEVENT" />
+ <element name="VEHICLEDATA_CLUSTERMODESTATUS" />
+ <element name="VEHICLEDATA_MYKEY" />
+ <element name="VEHICLEDATA_BRAKING" />
+ <element name="VEHICLEDATA_WIPERSTATUS" />
+ <element name="VEHICLEDATA_HEADLAMPSTATUS" />
+ <element name="VEHICLEDATA_BATTVOLTAGE" />
+ <element name="VEHICLEDATA_ENGINETORQUE" />
+ <element name="VEHICLEDATA_ACCPEDAL" />
+ <element name="VEHICLEDATA_STEERINGWHEEL" />
+</enum>
+
+<enum name="WiperStatus">
+ <description>Reflects the status of the wipers.</description>
+ <element name="OFF">
+ <description> The wipers are off.</description>
+ </element>
+ <element name="AUTO_OFF">
+ <description> The wipers are automatically off </description>
+ </element>
+ <element name="OFF_MOVING">
+ <description> Means that though set to off, somehow the wipers have been engaged (physically moved enough to engage a wiping motion).</description>
+ </element>
+ <element name="MAN_INT_OFF">
+ <description> The wipers are manually off after having been working.</description>
+ </element>
+ <element name="MAN_INT_ON">
+ <description> The wipers are manually on.</description>
+ </element>
+ <element name="MAN_LOW">
+ <description> The wipers are manually set to low speed.</description>
+ </element>
+ <element name="MAN_HIGH">
+ <description> The wipers are manually set to high speed.</description>
+ </element>
+ <element name="MAN_FLICK">
+ <description> The wipers are manually set for doing a flick.</description>
+ </element>
+ <element name="WASH">
+ <description> The wipers are set to use the water from vehicle washer bottle for cleaning the windscreen.</description>
+ </element>
+ <element name="AUTO_LOW">
+ <description> The wipers are automatically set to low speed.</description>
+ </element>
+ <element name="AUTO_HIGH">
+ <description> The wipers are automatically set to high speed.</description>
+ </element>
+ <element name="COURTESYWIPE">
+ <description> This is for when a user has just initiated a WASH and several seconds later a secondary wipe is automatically initiated to clear remaining fluid.</description>
+ </element>
+ <element name="AUTO_ADJUST">
+ <description> This is set as the user moves between possible automatic wiper speeds.</description>
+ </element>
+ <element name="STALLED">
+ <description> The wiper is stalled to its place. </description>
+ </element>
+ <element name="NO_DATA_EXISTS">
+ <description> The sensor / module cannot provide any information for wiper.</description>
+ </element>
+</enum>
+
+<enum name="SamplingRate">
+ <description>Describes different sampling options for PerformAudioPassThru.</description>
+ <element name="8KHZ" internal_name="RATE_8KHZ"/>
+ <element name="16KHZ" internal_name="RATE_16KHZ"/>
+ <element name="22KHZ" internal_name="RATE_22KHZ"/>
+ <element name="44KHZ" internal_name="RATE_44KHZ"/>
+</enum>
+
+<enum name="BitsPerSample">
+ <description>Describes different quality options for PerformAudioPassThru.</description>
+ <element name="8_BIT" internal_name="RATE_8_BIT"/>
+ <element name="16_BIT" internal_name="RATE_16_BIT"/>
+</enum>
+
+<enum name="AudioType">
+ <description>Describes different audio type options for PerformAudioPassThru.</description>
+ <element name="PCM" />
+</enum>
+
+<enum name="KeyboardLayout">
+ <description>Enumeration listing possible keyboard layouts.</description>
+ <element name="QWERTY" />
+ <element name="QWERTZ" />
+ <element name="AZERTY" />
+</enum>
+
+<enum name="KeyboardEvent">
+ <description>Enumeration listing possible keyboard events.</description>
+ <element name="KEYPRESS" />
+ <element name="ENTRY_SUBMITTED" />
+ <element name="ENTRY_CANCELLED" />
+ <element name="ENTRY_ABORTED" />
+</enum>
+
+<enum name="KeypressMode">
+ <description>Enumeration listing possible keyboard events.</description>
+ <element name="SINGLE_KEYPRESS">
+ <description>Each keypress is individually sent as the user presses the keyboard keys.</description>
+ </element>
+ <element name="QUEUE_KEYPRESSES">
+ <description>The keypresses are queued and a string is eventually sent once the user chooses to submit their entry.</description>
+ </element>
+ <element name="RESEND_CURRENT_ENTRY">
+ <description>The keypresses are queue and a string is sent each time the user presses a keyboard key; the string contains the entire current entry.</description>
+ </element>
+</enum>
+
+<enum name="AmbientLightStatus">
+ <description>Reflects the status of the ambient light sensor.</description>
+ <element name="NIGHT" />
+ <element name="TWILIGHT_1" />
+ <element name="TWILIGHT_2" />
+ <element name="TWILIGHT_3" />
+ <element name="TWILIGHT_4" />
+ <element name="DAY" />
+ <element name="UNKNOWN" />
+ <element name="INVALID" />
+</enum>
+
+<enum name="FileType">
+ <description>Enumeration listing possible file types.</description>
+ <element name="GRAPHIC_BMP" />
+ <element name="GRAPHIC_JPEG" />
+ <element name="GRAPHIC_PNG" />
+ <element name="AUDIO_WAVE" />
+ <element name="AUDIO_MP3" />
+ <element name="AUDIO_AAC" />
+ <element name="BINARY" />
+ <element name="JSON" />
+</enum>
+
+<enum name="RequestType">
+ <description>Enumeration listing possible asynchronous requests.</description>
+ <element name="HTTP" />
+ <element name="FILE_RESUME" />
+ <element name="AUTH_REQUEST" />
+ <element name="AUTH_CHALLENGE" />
+ <element name="AUTH_ACK" />
+ </enum>
+
+<enum name="ECallConfirmationStatus">
+ <description>Reflects the status of the eCall Notification.</description>
+ <element name="NORMAL" internal_name="ECCS_NORMAL">
+ </element>
+ <element name="CALL_IN_PROGRESS" internal_name="ECCS_CALL_IN_PROGRESS">
+ </element>
+ <element name="CALL_CANCELLED" internal_name="ECCS_CALL_CANCELLED">
+ </element>
+ <element name="CALL_COMPLETED">
+ </element>
+ <element name="CALL_UNSUCCESSFUL" internal_name="ECCS_CALL_UNSUCCESSFUL">
+ </element>
+ <element name="ECALL_CONFIGURED_OFF" internal_name="ECCS_ECALL_CONFIGURED_OFF">
+ </element>
+ <element name="CALL_COMPLETE_DTMF_TIMEOUT" internal_name="ECCS_CALL_COMPLETE_DTMF_TIMEOUT">
+ </element>
+</enum>
+
+<enum name="VehicleDataNotificationStatus">
+ <description>Reflects the status of a vehicle data notification.</description>
+ <element name="NOT_SUPPORTED" internal_name="VDNS_NOT_SUPPORTED">
+ </element>
+ <element name="NORMAL" internal_name="VDNS_NORMAL">
+ </element>
+ <element name="ACTIVE" internal_name="VDNS_ACTIVE">
+ </element>
+ <element name="NOT_USED" internal_name="VDNS_NOT_USED">
+ </element>
+</enum>
+
+<enum name="EmergencyEventType">
+ <description>Reflects the emergency event status of the vehicle.</description>
+ <element name="NO_EVENT" internal_name="EET_NO_EVENT">
+ </element>
+ <element name="FRONTAL" internal_name="EET_FRONTAL">
+ </element>
+ <element name="SIDE" internal_name="EET_SIDE">
+ </element>
+ <element name="REAR" internal_name="EET_REAR">
+ </element>
+ <element name="ROLLOVER" internal_name="EET_ROLLOVER">
+ </element>
+ <element name="NOT_SUPPORTED" internal_name="EET_NOT_SUPPORTED">
+ </element>
+ <element name="FAULT" internal_name="EET_FAULT">
+ </element>
+</enum>
+
+<enum name="FuelCutoffStatus">
+ <description>Reflects the status of the RCM fuel cutoff.</description>
+ <element name="TERMINATE_FUEL" internal_name="FCS_TERMINATE_FUEL">
+ </element>
+ <element name="NORMAL_OPERATION" internal_name="FCS_NORMAL_OPERATION">
+ </element>
+ <element name="FAULT" internal_name="FCS_FAULT">
+ </element>
+</enum>
+
+<enum name="PowerModeQualificationStatus">
+ <description>Reflects the status of the current power mode qualification.</description>
+ <element name="POWER_MODE_UNDEFINED">
+ </element>
+ <element name="POWER_MODE_EVALUATION_IN_PROGRESS">
+ </element>
+ <element name="NOT_DEFINED">
+ </element>
+ <element name="POWER_MODE_OK">
+ </element>
+</enum>
+
+<enum name="CarModeStatus">
+ <description>Reflects the status of the current car mode.</description>
+ <element name="NORMAL" internal_name="CMS_NORMAL">
+ </element>
+ <element name="FACTORY" internal_name="CMS_FACTORY">
+ </element>
+ <element name="TRANSPORT" internal_name="CMS_TRANSPORT">
+ </element>
+ <element name="CRASH" internal_name="CMS_CRASH">
+ </element>
+</enum>
+
+<enum name="PowerModeStatus">
+ <description>Reflects the status of the current power mode.</description>
+ <element name="KEY_OUT">
+ </element>
+ <element name="KEY_RECENTLY_OUT">
+ </element>
+ <element name="KEY_APPROVED_0">
+ </element>
+ <element name="POST_ACCESORY_0">
+ </element>
+ <element name="ACCESORY_1">
+ </element>
+ <element name="POST_IGNITION_1">
+ </element>
+ <element name="IGNITION_ON_2">
+ </element>
+ <element name="RUNNING_2">
+ </element>
+ <element name="CRANK_3">
+ </element>
+</enum>
+
+<!-- End of IVI part-->
+
+<struct name="ButtonCapabilities">
+ <description>Contains the information about capabilities of a button.</description>
+ <param name="name" type="Common.ButtonName" mandatory="true">
+ <description>The name of the Button from the ButtonName enum</description>
+ </param>
+ <param name="shortPressAvailable" type="Boolean" mandatory="true">
+ <description>The button supports a short press. Whenever the button is pressed short, onButtonPressed(SHORT) should be invoked.</description>
+ </param>
+ <param name="longPressAvailable" type="Boolean" mandatory="true">
+ <description>The button supports a LONG press. Whenever the button is pressed long, onButtonPressed(LONG) should be invoked.</description>
+ </param>
+ <param name="upDownAvailable" type="Boolean" mandatory="true">
+ <description>The button supports "button down" and "button up". Whenever the button is pressed, onButtonEvent(DOWN) should be invoked. Whenever the button is released, onButtonEvent(UP) should be invoked.</description>
+ </param>
+</struct>
+
+<struct name="VehicleDataResult">
+ <description>Individual published data request result</description>
+ <param name="dataType" type="Common.VehicleDataType">
+ <description>Defined published data element type.</description>
+ </param>
+ <param name="resultCode" type="Common.VehicleDataResultCode">
+ <description>Published data result code.</description>
+ </param>
+</struct>
+
+<struct name="TouchCoord">
+ <param name="x" type="Integer" mandatory="true" minvalue="0" maxvalue="10000">
+ <description>The x coordinate of the touch.</description>
+ </param>
+ <param name="y" type="Integer" mandatory="true" minvalue="0" maxvalue="10000">
+ <description>The y coordinate of the touch.</description>
+ </param>
+</struct>
+
+<struct name="TouchEvent">
+ <param name="id" type="Integer" mandatory="true" minvalue="0" maxvalue="9">
+ <description>
+ A touch's unique identifier. The application can track the current touch events by id.
+ If a touch event has type begin, the id should be added to the set of touches.
+ If a touch event has type end, the id should be removed from the set of touches.
+ </description>
+ </param>
+ <param name="ts" type="Integer" mandatory="true" array="true" minvalue="0" maxvalue="2147483647" minsize="1" maxsize="1000">
+ <description>
+ The time that the touch was recorded. This number can the time since the beginning of the session or something else as long as the units are in milliseconds.
+ The timestamp is used to determined the rate of change of position of a touch.
+ The application also uses the time to verify whether two touches, with different ids, are part of a single action by the user.
+ If there is only a single timestamp in this array, it is the same for every coordinate in the coordinates array.
+ </description>
+ </param>
+ <param name="c" type="Common.TouchCoord" mandatory="true" array="true" minsize="1" maxsize="1000">
+ </param>
+</struct>
+
+<struct name="PresetBankCapabilities">
+ <description>Contains information about on-screen preset capabilities (whether the HW preset buttons could be duplicated with onscreen buttons).</description>
+ <param name="onScreenPresetsAvailable" type="Boolean" mandatory="true">
+ <description>Must be true if onscreen custom presets are available.</description>
+ </param>
+</struct>
+
+<struct name="Image">
+ <param name="value" maxlength="65535" type="String" mandatory="true">
+ <description>The path to the dynamic image stored on HU or the static binary image itself.</description>
+ </param>
+ <param name="imageType" type="Common.ImageType" mandatory="true">
+ <description>Describes, whether it is a static or dynamic image.</description>
+ </param>
+</struct>
+
+<struct name="SoftButton">
+ <param name="type" type="Common.SoftButtonType" mandatory="true">
+ <description>Describes, whether text, icon or both text and image should be displayed on the soft button. See softButtonType</description>
+ </param>
+ <param name="text" maxlength="500" type="String" mandatory="false">
+ <description>Optional text to be displayed (if defined as TEXT or BOTH)</description>
+ </param>
+ <param name="image" type="Common.Image" mandatory="false">
+ <description>Optional image struct for SoftButton (if defined as IMAGE or BOTH)</description>
+ </param>
+ <param name="isHighlighted" type="Boolean" mandatory="false">
+ <description>If true, must be highlighted</description>
+ <description>If false, must be not</description>
+ </param>
+ <param name="softButtonID" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Value which must be returned via OnButtonPress / OnButtonEvent</description>
+ </param>
+ <param name="systemAction" type="Common.SystemAction" mandatory="false">
+ <description>Parameter indicates whether clicking a SoftButton must call a specific system action. See SystemAction</description>
+ </param>
+ </struct>
+
+<struct name="TTSChunk">
+ <description>A TTS chunk, that consists of the text/phonemes to be spoken</description>
+ <param name="text" type="String" mandatory="true" maxlength="500">
+ <description>The text or phonemes to be spoken.</description>
+ </param>
+ <param name="type" type="Common.SpeechCapabilities" mandatory="true">
+ <description>Describes, whether it is text or a specific phoneme set. See SpeechCapabilities.</description>
+ </param>
+</struct>
+
+<struct name="HMIApplication">
+ <description>Data type containing information about application needed by HMI.</description>
+ <param name="appName" type="String" maxlength="100" mandatory="true">
+ <description>The mobile application name, e.g. "Ford Drive Green".</description>
+ </param>
+ <param name="ngnMediaScreenAppName" type="String" maxlength="100" mandatory="false">
+ <description>Provides an abbreviated version of the app name (if needed), that may be displayed on the NGN media screen.</description>
+ <description>If not provided, the appName should be used instead (and may be truncated if too long)</description>
+ </param>
+ <param name="icon" type="String" mandatory="false">
+ <description>Path to application icon stored on HU.</description>
+ </param>
+ <param name="deviceName" type="String" mandatory="true">
+ <description>The name of device which the provided application is running on.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>Unique (during ignition cycle) id of the application. To be used in all RPCs sent by both HU system and SDL</description>
+ </param>
+ <param name="hmiDisplayLanguageDesired" type="Common.Language" mandatory="true">
+ <description>The language the application intends to use on HU </description>
+ </param>
+ <param name="isMediaApplication" type="Boolean" mandatory="true">
+ <description>Indicates whether it is a media or a non-media application.</description>
+ </param>
+ <param name="appType" type="Common.AppHMIType" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>List of all applicable app types stating which classifications to be given to the app.</description>
+ <description>e.g. for platforms like GEN2, this determines which "corner(s)" the app can populate.</description>
+ </param>
+</struct>
+
+<struct name="MenuParams">
+ <param name="parentID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
+ <description>unique ID of the sub menu, the command must be added to.</description>
+ <description>If not provided, the command must be added to the top level of the in application menu.</description>
+ </param>
+ <param name="position" type="Integer" minvalue="0" maxvalue="1000" mandatory="false">
+ <description>Position within the items that are at the top level of the in application menu.</description>
+ <description>0 should insert at the front.</description>
+ <description>1 should insert at the second position.</description>
+ <description>if position is greater than or equal to the number of items on the top level, the the sub menu/command should be appended to the end.</description>
+ <description>If this param is omitted the entry should be added at the end.</description>
+ </param>
+ <param name="menuName" type="String" maxlength="500" mandatory="true">
+ <description>The name of the sub menu/command.</description>
+ </param>
+</struct>
+
+<struct name="Choice">
+ <description>A choice is an option given to the user which can be selected either by menu, or through voice recognition system.</description>
+ <param name="choiceID" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description> The unique within the concerned application identifier for this choice </description>
+ </param>
+ <param name="menuName" type="String" maxlength="500" mandatory="false">
+ <description> The name of the choice </description>
+ </param>
+ <param name="image" type="Common.Image" mandatory="false">
+ <description> The image for representing the choice </description>
+ </param>
+ <param name="secondaryText" maxlength="500" type="String" mandatory="false">
+ <description>Optional secondary text to display; e.g. address of POI in a search result entry</description>
+ </param>
+ <param name="tertiaryText" maxlength="500" type="String" mandatory="false">
+ <description>Optional tertiary text to display; e.g. distance to POI for a search result entry</description>
+ </param>
+ <param name="secondaryImage" type="Image" mandatory="false">
+ <description>Optional secondary image struct for choice</description>
+ </param>
+</struct>
+
+<struct name="VrHelpItem">
+ <param name="text" maxlength="500" type="String" mandatory="true">
+ <description>Text to display for VR Help item</description>
+ </param>
+ <param name="image" type="Common.Image" mandatory="false">
+ <description>Image struct for VR Help item</description>
+ </param>
+ <param name="position" type="Integer" minvalue="1" maxvalue="100" mandatory="true">
+ <description>Position to display item in VR Help list</description>
+ </param>
+</struct>
+
+<struct name="TimeFormat">
+ <param name="hours" type="Integer" minvalue="0" maxvalue="59" mandatory="true">
+ <description>The hour of the media clock.</description>
+ <description>Some units only support a max of 19 hours. If out of range, it should be rejected.</description>
+ </param>
+ <param name="minutes" type="Integer" minvalue="0" maxvalue="59" mandatory="true"/>
+ <param name="seconds" type="Integer" minvalue="0" maxvalue="59" mandatory="true"/>
+</struct>
+
+<struct name="TouchEventCapabilities">
+ <param name="pressAvailable" type="Boolean" mandatory="true">
+ </param>
+ <param name="multiTouchAvailable" type="Boolean" mandatory="true">
+ </param>
+ <param name="doublePressAvailable" type="Boolean" mandatory="true">
+ </param>
+</struct>
+
+<struct name="ImageResolution">
+ <param name="resolutionWidth" type="Integer" minvalue="1" maxvalue="10000" mandatory="true">
+ <description>The image resolution width.</description>
+ </param>
+ <param name="resolutionHeight" type="Integer" minvalue="1" maxvalue="10000" mandatory="true">
+ <description>The image resolution height.</description>
+ </param>
+</struct>
+
+<struct name="ScreenParams">
+ <param name="resolution" type="Common.ImageResolution" mandatory="true">
+ <description>The resolution of the prescribed screen area.</description>
+ </param>
+ <param name="touchEventAvailable" type="Common.TouchEventCapabilities" mandatory="false">
+ <description>Types of screen touch events available in screen area.</description>
+ </param>
+</struct>
+
+<struct name="ImageField">
+ <param name="name" type="Common.ImageFieldName" mandatory="true">
+ <description>The name that identifies the field. See ImageFieldName.</description>
+ </param>
+ <param name="imageTypeSupported" type="Common.FileType" maxsize="100" array="true" mandatory="false" minsize="1">
+ <description>The image types that are supported in this field. See FileType.</description>
+ </param>
+ <param name="imageResolution" type="Common.ImageResolution" mandatory="false">
+ <description>The image resolution of this field.</description>
+ </param>
+</struct>
+
+<struct name="DisplayCapabilities">
+ <description>Contains information about the display capabilities.</description>
+ <param name="displayType" type="Common.DisplayType" mandatory="true">
+ <description>The type of the display. See DisplayType</description>
+ </param>
+ <param name="textFields" type="Common.TextFieldName" minsize="0" maxsize="100" array="true" mandatory="true">
+ <description>A set of all fields for text displaying supported by HU. See TextFieldName.</description>
+ <description>If there are no textfields supported, the empty array must be returned</description>
+ </param>
+ <param name="imageFields" type="Common.ImageField" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>A set of all fields that support images. See ImageField</description>
+ </param>
+ <param name="mediaClockFormats" type="Common.MediaClockFormat" minsize="1" maxsize="100" array="true" mandatory="true">
+ <description>A set of all supported formats of the media clock. See MediaClockFormat</description>
+ </param>
+ <param name="imageCapabilities" type="Common.ImageType" array="true" minsize="0" maxsize="2" mandatory="false">
+ </param>
+ <param name="graphicSupported" type="Boolean" mandatory="true">
+ <description>The display's persistent screen supports referencing a static or dynamic image.</description>
+ </param>
+ <param name="templatesAvailable" type="String" minsize="0" maxsize="100" maxlength="100" array="true" mandatory="true">
+ <description>A set of all predefined persistent display templates available on headunit. To be referenced in SetDisplayLayout.</description>
+ </param>
+ <param name="screenParams" type="Common.ScreenParams" mandatory="false">
+ <description>A set of all parameters related to a prescribed screen area (e.g. for video / touch input).</description>
+ </param>
+ <param name="numCustomPresetsAvailable" type="Integer" minvalue="1" maxvalue="100" mandatory="false">
+ <description>The number of on-screen custom presets available (if any); otherwise omitted.</description>
+ </param>
+</struct>
+
+<struct name="SoftButtonCapabilities">
+ <description>Contains information about a SoftButton's capabilities.</description>
+ <param name="shortPressAvailable" type="Boolean" mandatory="true">
+ <description>The button supports a short press.</description>
+ <description>Whenever the button is pressed short, onButtonPressed( SHORT) must be invoked.</description>
+ </param>
+ <param name="longPressAvailable" type="Boolean" mandatory="true">
+ <description>The button supports a LONG press.</description>
+ <description>Whenever the button is pressed long, onButtonPressed( LONG) must be invoked.</description>
+ </param>
+ <param name="upDownAvailable" type="Boolean" mandatory="true">
+ <description>The button supports "button down" and "button up".</description>
+ <description>Whenever the button is pressed, onButtonEvent( DOWN) must be invoked.</description>
+ <description>Whenever the button is released, onButtonEvent( UP) must be invoked.</description>
+ </param>
+ <param name="imageSupported" type="Boolean" mandatory="true">
+ <description>Must be true if the button supports referencing a static or dynamic image.</description>
+ </param>
+</struct>
+
+<struct name="AudioPassThruCapabilities">
+ <description>
+ Describes different audio type configurations for PerformAudioPassThru.
+ e.g. 8kHz,8-bit,PCM
+ </description>
+ <param name="samplingRate" type="Common.SamplingRate" mandatory="true"/>
+ <param name="bitsPerSample" type="Common.BitsPerSample" mandatory="true"/>
+ <param name="audioType" type="Common.AudioType" mandatory="true"/>
+</struct>
+
+<struct name="Coordinate">
+ <param name="xCoord" type="Integer" mandatory="true">
+ </param>
+ <param name="yCoord" type="Integer" mandatory="true">
+ </param>
+</struct>
+
+<struct name="TouchArea">
+ <param name="rotationAngle" type="Float" mandatory="false" minvalue="0" maxvalue="360">
+ </param>
+ <param name="radiusCoord" type="Common.Coordinate" mandatory="true">
+ </param>
+</struct>
+
+<struct name="TextFieldStruct">
+ <param name="fieldName" type="Common.TextFieldName" mandatory="true">
+ <description>The name of the field for displaying the text.</description>
+ </param>
+ <param name="fieldText" type="String" maxlength="500" mandatory="true">
+ <description>The text itself.</description>
+ </param>
+</struct>
+
+<struct name="KeyboardProperties">
+ <description>Configuration of on-screen keyboard (if available).</description>
+ <param name="language" type="Common.Language" mandatory="false">
+ <description>The keyboard language.</description>
+ </param>
+ <param name="keyboardLayout" type="Common.KeyboardLayout" mandatory="false" >
+ <description>Desired keyboard layout.</description>
+ </param>
+ <param name="keypressMode" type="Common.KeypressMode" mandatory="false" >
+ <description>
+ Desired keypress mode.
+ If omitted, this value will be set to RESEND_CURRENT_ENTRY.
+ </description>
+ </param>
+ <param name="limitedCharacterList" type="String" maxlength="1" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Array of keyboard characters to enable.</description>
+ <description>All omitted characters will be greyed out (disabled) on the keyboard.</description>
+ <description>If omitted, the entire keyboard will be enabled.</description>
+ </param>
+ <param name="autoCompleteText" type="String" maxlength="1000" mandatory="false">
+ <description>Allows an app to prepopulate the text field with a suggested or completed entry as the user types</description>
+ </param>
+</struct>
+
+<struct name="Turn">
+ <param name="navigationText" type="Common.TextFieldStruct" mandatory="false">
+ <description>Uses navigationText from TextFieldStruct.</description>
+ </param>
+ <param name="turnIcon" type="Common.Image" mandatory="false">
+ </param>
+</struct>
+
+<struct name="VehicleType">
+ <param name="make" type="String" maxlength="500" mandatory="false">
+ <description>Make of the vehicle</description>
+ <description>e.g. Ford</description>
+ </param>
+ <param name="model" type="String" maxlength="500" mandatory="false">
+ <description>Model of the vehicle</description>
+ <description>e.g. Fiesta</description>
+ </param>
+ <param name="modelYear" type="String" maxlength="500" mandatory="false">
+ <description>Model Year of the vehicle</description>
+ <description>e.g. 2013</description>
+ </param>
+ <param name="trim" type="String" maxlength="500" mandatory="false">
+ <description>Trim of the vehicle</description>
+ <description>e.g. SE</description>
+ </param>
+</struct>
+
+<struct name="DeviceInfo">
+ <param name="name" type="String" mandatory="true">
+ <description>The name of the device connected.</description>
+ </param>
+ <param name="id" type="Integer" mandatory="true">
+ <description>The ID of the device connected</description>
+ </param>
+</struct>
+
+<!--IVI part-->
+<struct name="GPSData">
+ <description>Struct with the GPS data.</description>
+ <param name="longitudeDegrees" type="Float" minvalue="-180" maxvalue="180" mandatory="false">
+ </param>
+ <param name="latitudeDegrees" type="Float" minvalue="-90" maxvalue="90" mandatory="false">
+ </param>
+ <param name="utcYear" type="Integer" minvalue="2010" maxvalue="2100" mandatory="false">
+ <description>The current UTC year.</description>
+ </param>
+ <param name="utcMonth" type="Integer" minvalue="1" maxvalue="12" mandatory="false">
+ <description>The current UTC month.</description>
+ </param>
+ <param name="utcDay" type="Integer" minvalue="1" maxvalue="31" mandatory="false">
+ <description>The current UTC day.</description>
+ </param>
+ <param name="utcHours" type="Integer" minvalue="0" maxvalue="23" mandatory="false">
+ <description>The current UTC hour.</description>
+ </param>
+ <param name="utcMinutes" type="Integer" minvalue="0" maxvalue="59" mandatory="false">
+ <description>The current UTC minute.</description>
+ </param>
+ <param name="utcSeconds" type="Integer" minvalue="0" maxvalue="59" mandatory="false">
+ <description>The current UTC second.</description>
+ </param>
+ <param name="compassDirection" type="Common.CompassDirection" mandatory="false">
+ <description>See CompassDirection.</description>
+ </param>
+ <param name="pdop" type="Float" minvalue="0" maxvalue="10" mandatory="false">
+ <description>PDOP.</description>
+ </param>
+ <param name="hdop" type="Float" minvalue="0" maxvalue="10" mandatory="false">
+ <description>HDOP.</description>
+ </param>
+ <param name="vdop" type="Float" minvalue="0" maxvalue="10" mandatory="false">
+ <description>VDOP.</description>
+ </param>
+ <param name="actual" type="Boolean" mandatory="false">
+ <description>
+ True, if actual.
+ False, if infered.
+ </description>
+ </param>
+ <param name="satellites" type="Integer" minvalue="0" maxvalue="31" mandatory="false">
+ <description>Number of satellites in view</description>
+ </param>
+ <param name="dimension" type="Common.Dimension" mandatory="false">
+ <description>See Dimension</description>
+ </param>
+ <param name="altitude" type="Float" minvalue="-10000" maxvalue="10000" mandatory="false">
+ <description>Altitude in meters</description>
+ </param>
+ <param name="heading" type="Float" minvalue="0" maxvalue="359.99" mandatory="false">
+ <description>The heading. North is 0. Resolution is 0.01</description>
+ </param>
+ <param name="speed" type="Float" minvalue="0" maxvalue="500" mandatory="false">
+ <description>The speed in KPH</description>
+ </param>
+</struct>
+
+<struct name="SingleTireStatus">
+ <param name="status" type="Common.ComponentVolumeStatus" mandatory="true">
+ <description>The status of component volume. See ComponentVolumeStatus.</description>
+</param>
+</struct>
+
+<struct name="DIDResult">
+ <description>Individual requested DID result and data</description>
+ <param name="resultCode" type="Common.VehicleDataResultCode" mandatory="true">
+ <description>Individual DID result code.</description>
+ </param>
+ <param name="didLocation" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Location of raw data (the address from ReadDID request)</description>
+ </param>
+ <param name="data" type="String" maxlength="5000" mandatory="false">
+ <description>Raw DID-based data returned for requested element.</description>
+ </param>
+</struct>
+
+<struct name="HeadLampStatus">
+ <param name="lowBeamsOn" type="Boolean" mandatory="true">
+ <description>Status of the low beam lamps.</description>
+ </param>
+ <param name="highBeamsOn" type="Boolean" mandatory="true">
+ <description>Status of the high beam lamps.</description>
+ </param>
+ <param name="ambientLightSensorStatus" type="Common.AmbientLightStatus" mandatory="true">
+ <description>Status of the ambient light sensor.</description>
+ </param>
+</struct>
+
+<struct name="TireStatus">
+ <description>The status and pressure of the tires.</description>
+ <param name="pressureTelltale" type="Common.WarningLightStatus" mandatory="false">
+ <description>Status of the Tire Pressure Telltale. See WarningLightStatus.</description>
+ </param>
+ <param name="leftFront" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the left front tire.</description>
+ </param>
+ <param name="rightFront" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the right front tire.</description>
+ </param>
+ <param name="leftRear" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the left rear tire.</description>
+ </param>
+ <param name="rightRear" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the right rear tire.</description>
+ </param>
+ <param name="innerLeftRear" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the inner left rear.</description>
+ </param>
+ <param name="innerRightRear" type="Common.SingleTireStatus" mandatory="false">
+ <description>The status of the inner right rear.</description>
+ </param>
+</struct>
+
+<struct name="BeltStatus">
+ <param name="driverBeltDeployed" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerBeltDeployed" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerBuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverBuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="leftRow2BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerChildDetected" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="rightRow2BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow2BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow3BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="leftRow3BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="rightRow3BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="leftRearInflatableBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="rightRearInflatableBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow1BeltDeployed" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+ <param name="middleRow1BuckleBelted" type="Common.VehicleDataEventStatus" mandatory="false">
+ <description>See VehicleDataEventStatus.</description>
+ </param>
+</struct>
+
+<struct name="BodyInformation">
+ <param name="parkBrakeActive" type="Boolean" mandatory="true">
+ <description>Must be true if the park brake is active</description>
+ </param>
+ <param name="ignitionStableStatus" type="Common.IgnitionStableStatus" mandatory="true">
+ <description>Information about the ignition switch. See IgnitionStableStatus.</description>
+ </param>
+ <param name="ignitionStatus" type="Common.IgnitionStatus" mandatory="true">
+ <description>The status of the ignition. See IgnitionStatus.</description>
+ </param>
+ <param name="driverDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatDrv_B_Actl".</description>
+ </param>
+ <param name="passengerDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatPsngr_B_Actl".</description>
+ </param>
+ <param name="rearLeftDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatRl_B_Actl".</description>
+ </param>
+ <param name="rearRightDoorAjar" type="Boolean" mandatory="false">
+ <description>References signal "DrStatRr_B_Actl".</description>
+ </param>
+</struct>
+
+<struct name="DeviceStatus">
+ <param name="voiceRecOn" type="Boolean" mandatory="false">
+ <description>Must be true if the voice recording is on.</description>
+ </param>
+ <param name="btIconOn" type="Boolean" mandatory="false">
+ <description>Must be true if Bluetooth icon is displayed.</description>
+ </param>
+ <param name="callActive" type="Boolean" mandatory="false">
+ <description>Must be true if there is an active call..</description>
+ </param>
+ <param name="phoneRoaming" type="Boolean" mandatory="false">
+ <description>Must be true if ther is a phone roaming.</description>
+ </param>
+ <param name="textMsgAvailable" type="Boolean" mandatory="false">
+ <description>Must be true if the text message is available.</description>
+ </param>
+ <param name="battLevelStatus" type="Common.DeviceLevelStatus" mandatory="false">
+ <description>Device battery level status. See DeviceLevelStatus.</description>
+ </param>
+ <param name="stereoAudioOutputMuted" type="Boolean" mandatory="false">
+ <description>Must be true if stereo audio output is muted.</description>
+ </param>
+ <param name="monoAudioOutputMuted" type="Boolean" mandatory="false">
+ <description>Must be true if mono audio output is muted.</description>
+ </param>
+ <param name="signalLevelStatus" type="Common.DeviceLevelStatus" mandatory="false">
+ <description>Device signal level status. See DeviceLevelStatus.</description>
+ </param>
+ <param name="primaryAudioSource" type="Common.PrimaryAudioSource" mandatory="false">
+ <description>See PrimaryAudioSource.</description>
+ </param>
+ <param name="eCallEventActive" type="Boolean" mandatory="false">
+ <description>Must be true if emergency call event is active.</description>
+ </param>
+</struct>
+
+<struct name="ECallInfo">
+ <param name="eCallNotificationStatus" type="Common.VehicleDataNotificationStatus">
+ <description>References signal "eCallNotification_4A". See VehicleDataNotificationStatus.</description>
+ </param>
+ <param name="auxECallNotificationStatus" type="Common.VehicleDataNotificationStatus">
+ <description>References signal "eCallNotification". See VehicleDataNotificationStatus.</description>
+ </param>
+ <param name="eCallConfirmationStatus" type="Common.ECallConfirmationStatus">
+ <description>References signal "eCallConfirmation". See ECallConfirmationStatus.</description>
+ </param>
+</struct>
+
+<struct name="AirbagStatus">
+ <param name="driverAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsDrvBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverSideAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsDrvSideBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverCurtainAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsDrvCrtnBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsPasBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerCurtainAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsPasCrtnBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="driverKneeAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsKneeDrvBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerSideAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsPasSideBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="passengerKneeAirbagDeployed" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsKneePasBag_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+</struct>
+
+<struct name="EmergencyEvent">
+ <param name="emergencyEventType" type="Common.EmergencyEventType">
+ <description>References signal "VedsEvntType_D_Ltchd". See EmergencyEventType.</description>
+ </param>
+ <param name="fuelCutoffStatus" type="Common.FuelCutoffStatus">
+ <description>References signal "RCM_FuelCutoff". See FuelCutoffStatus.</description>
+ </param>
+ <param name="rolloverEvent" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsEvntRoll_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="maximumChangeVelocity" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsMaxDeltaV_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+ <param name="multipleEvents" type="Common.VehicleDataEventStatus">
+ <description>References signal "VedsMultiEvnt_D_Ltchd". See VehicleDataEventStatus.</description>
+ </param>
+</struct>
+
+<struct name="ClusterModeStatus">
+ <param name="powerModeActive" type="Boolean">
+ <description>References signal "PowerMode_UB".</description>
+ </param>
+ <param name="powerModeQualificationStatus" type="Common.PowerModeQualificationStatus">
+ <description>References signal "PowerModeQF". See PowerModeQualificationStatus.</description>
+ </param>
+ <param name="carModeStatus" type="Common.CarModeStatus">
+ <description>References signal "CarMode". See CarMode.</description>
+ </param>
+ <param name="powerModeStatus" type="Common.PowerModeStatus">
+ <description>References signal "PowerMode". See PowerMode.</description>
+ </param>
+</struct>
+
+<struct name="MyKey">
+ <param name="e911Override" type="Common.VehicleDataStatus" mandatory="true">
+ <description>Indicates whether e911 override is on. See VehicleDataStatus.</description>
+ </param>
+</struct>
+<!--end of IVI part-->
+
+</interface>
+
+<interface name="Buttons" version="1.0" date="2013-04-12">
+ <function name="GetCapabilities" messagetype="request">
+ <description>Method is invoked at system start-up. SDL requests the information about all supported hardware buttons and their capabilities</description>
+ </function>
+ <function name="GetCapabilities" messagetype="response">
+ <param name="capabilities" type="Common.ButtonCapabilities" array="true" minsize="1" maxsize="100" mandatory="true">
+ <description>Response must provide the names of available buttons and their capabilities.See ButtonCapabilities</description>
+ </param>
+ <param name="presetBankCapabilities" type="Common.PresetBankCapabilities" mandatory="false">
+ <description>Must be returned if the platform supports custom on-screen Presets</description>
+ </param>
+ </function>
+ <function name="OnButtonEvent" messagetype="notification">
+ <description>HU system must notify about every UP/DOWN event for buttons</description>
+ <param name="name" type="Common.ButtonName" mandatory="true"/>
+ <param name="mode" type="Common.ButtonEventMode" mandatory="true">
+ <description>Indicates whether this is an UP or DOWN event.</description>
+ </param>
+ <param name="customButtonID" type="Integer" mandatory="false" minvalue="0" maxvalue="65536">
+ <description>Must be provided if ButtonName is CUSTOM_BUTTON, this references the integer ID passed by a custom button. (e.g. softButtonName)</description>
+ </param>
+ </function>
+ <function name="OnButtonPress" messagetype="notification">
+ <param name="name" type="Common.ButtonName" mandatory="true"/>
+ <param name="mode" type="Common.ButtonPressMode" mandatory="true">
+ <description>Indicates whether this is a LONG or SHORT button press event.</description>
+ </param>
+ <param name="customButtonID" type="Integer" mandatory="false" minvalue="0" maxvalue="65536">
+ <description>Must be returned if ButtonName is CUSTOM_BUTTON, this references the string passed by a custom button. (e.g. softButtonName)</description>
+ </param>
+ </function>
+</interface>
+
+<interface name="BasicCommunication" version="1.0" date="2013-04-12">
+ <function name="OnReady" messagetype="notification">
+ <description>HMI must notify SDL about its readiness to start communication. In fact, this has to be the first message between SDL and HMI.</description>
+ </function>
+ <function name="OnStartDeviceDiscovery" messagetype="notification">
+ <description>Initiated by HMI user for getting the list of connected devices.</description>
+ </function>
+ <function name="UpdateDeviceList" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to change device list.</description>
+ <param name="deviceList" type="Common.DeviceInfo" mandatory="true" array="true" minsize="0" maxsize="100">
+ <description>The array of names/IDs of connected devices</description>
+ </param>
+ </function>
+ <function name="UpdateDeviceList" messagetype="response">
+ </function>
+ <function name="OnUpdateDeviceList" messagetype="notification">
+ <description>Notification from HMI to SDL sent when HMI requires update of device list (i.e. when user clicks 'Change Device' button)</description>
+ </function>
+ <function name="AllowDeviceToConnect" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to get the permissions of new device connection.</description>
+ <param name="device" type="Common.DeviceInfo" mandatory="true"/>
+ </function>
+ <function name="AllowDeviceToConnect" messagetype="response">
+ <param name="allow" type="Boolean" mandatory="true"/>
+ </function>
+ <function name="OnDeviceChosen" messagetype="notification">
+ <description>Notification must be initiated by HMI on user selecting device in the list of devices.</description>
+ <param name="deviceInfo" type="Common.DeviceInfo" mandatory="true">
+ <description>The name and ID of the device chosen</description>
+ </param>
+ </function>
+ <function name="OnFindApplications" messagetype="notification">
+ <description>This method must be invoked by HMI to get list of registered apps.</description>
+ <param name="deviceInfo" type="Common.DeviceInfo" mandatory="false">
+ <description>The name and ID of the device the list of registered applications is required for.</description>
+ </param>
+ </function>
+ <function name="UpdateAppList" messagetype="request">
+ <description>Issued by SDL to notify HMI about new applications registered.</description>
+ <param name="applications" type="Common.HMIApplication" mandatory="true" array="true" minsize="1" maxsize="100"/>
+ </function>
+ <function name="UpdateAppList" messagetype="response">
+ </function>
+ <function name="ActivateApp" messagetype="request">
+ <description>Request from SDL to HMI to bring specified application to front on UI e.g make it HMI status 'FULL'.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of deactivated application.</description>
+ </param>
+ </function>
+ <function name="ActivateApp" messagetype="response">
+ </function>
+ <function name="OnAppActivated" messagetype="notification">
+ <description>Must be sent by HU system when the user clicks on app in the list of registered apps or on soft button with 'STEAL_FOCUS' action.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of selected application.</description>
+ </param>
+ </function>
+ <function name="OnAppDeactivated" messagetype="notification">
+ <description>Must be sent by HU system when the user switches to any functionality which is not other mobile application.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of deactivated application.</description>
+ </param>
+ <param name="reason" type="Common.DeactivateReason" mandatory="true">
+ <description>Specifies the functionality the user has switched to.</description>
+ </param>
+ </function>
+ <function name="OnAppRegistered" messagetype="notification">
+ <description>Issued by SDL to notify HMI about new application registered.</description>
+ <param name="application" type="Common.HMIApplication" mandatory="true">
+ <description>The information about application registered. See HMIApplication. </description>
+ </param>
+ <param name="ttsName" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
+ <description> TTS string for VR recognition of the mobile application name, e.g. "Ford Drive Green".Meant to overcome any failing on speech engine in properly pronouncing / understanding app name.
+ Needs to be unique over all applications.
+ May not be empty.
+ May not start with a new line character.
+ May not interfere with any name or synonym of previously registered applications and any predefined blacklist of words (global commands)
+ </description>
+ </param>
+ <param name="vrSynonyms" type="String" maxlength="40" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ Defines additional voice recognition commands.
+ May not interfere with any name or synonym of previously registered applications and any predefined blacklist of words (global commands)
+ </description>
+ </param>
+ </function>
+ <function name="OnAppUnregistered" messagetype="notification">
+ <description>Issued by SDL to notify HMI about application unregistered. Application then to be removed from application list; all data connected with application has to be cleared up.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of the application unregistered</description>
+ </param>
+ </function>
+ <function name="OnExitApplication" messagetype="notification">
+ <description>Must be sent by HMI when the User chooses to exit the application..</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of the application to be exited.</description>
+ </param>
+ </function>
+ <function name="OnExitAllApplications" messagetype="notification">
+ <description>Sent by HMI to SDL to close all registered applications.</description>
+ <param name="reason" type="Common.ApplicationsCloseReason" mandatory="true">
+ <description>Specifies reason for exiting all apllications.</description>
+ </param>
+ </function>
+ <function name="MixingAudioSupported" messagetype="request">
+ <description>Request from SDL to HMI to find out if the last one supports mixing audio (i.e. recording TTS command and playing audio).</description>
+ </function>
+ <function name="MixingAudioSupported" messagetype="response">
+ <description>If no response received SDL supposes that mixing audio is not supported</description>
+ <param name="attenuatedSupported" type="Boolean" mandatory="true">
+ <description>Must be true if supported</description>
+ </param>
+ </function>
+ <function name="PlayTone" messagetype="notification">
+ <description>Sent by SDL to HMI to notify that the tone should be played.</description>
+ </function>
+ <!-- Policies -->
+ <function name="AllowAllApps" messagetype="request">
+ <description>Initiated by SDL. Results by user/HMI allowing SDL functionality or disallowing access to all mobile apps.</description>
+ </function>
+ <function name="AllowAllApps" messagetype="response">
+ <param name="allowed" type="Boolean" mandatory="true">
+ <description>Must be true if allowed</description>
+ </param>
+ </function>
+ <function name="AllowApp" messagetype="request">
+ <description>Initiated by SDL for requesting the allowance for the application</description>
+ <param name="app" type="Common.HMIApplication" mandatory="true">
+ <description>Information about the application. See HMIApplication. </description>
+ </param>
+ <param name="appPermissions" type="String" array="true" minsize="1" maxsize="100" mandatory="false">
+ <description>List of permissions required by application.</description>
+ </param>
+ </function>
+ <function name="AllowApp" messagetype="response">
+ <param name="allowed" type="Boolean" mandatory="true">
+ <description>Must be true if allowed</description>
+ </param>
+ </function>
+ <function name="OnSystemRequest" messagetype="notification" >
+ <description>
+ An asynchronous request from the system for specific data from the device or the cloud or response to a request from the device or cloud
+ Binary data can be included in hybrid part of message for some requests (such as Authentication request responses)
+ </description>
+ <param name="requestType" type="Common.RequestType" mandatory="true">
+ <description>The type of system request.</description>
+ </param>
+ <param name="url" type="String" maxlength="1000" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Optional array of URL(s) for HTTP requests.</description>
+ </param>
+ <param name="fileType" type="Common.FileType" mandatory="false">
+ <description>Optional file type (meant for HTTP file requests).</description>
+ </param>
+ <param name="offset" type="Integer" minvalue="0" maxvalue="100000000000" mandatory="false">
+ <description>Optional offset in bytes for resuming partial data chunks</description>
+ </param>
+ <param name="length" type="Integer" minvalue="0" maxvalue="100000000000" mandatory="false">
+ <description>Optional length in bytes for resuming partial data chunks</description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="0" maxvalue="65535" mandatory="false">
+ </param>
+ </function>
+ <function name="OnSDLClose" messagetype="notification">
+ <description>SDL must notify HMI about finish working application</description>
+ </function>
+</interface>
+
+<interface name="VR" version="1.0" date="2013-04-17">
+ <function name="IsReady" messagetype="request">
+ <description>Method is invoked at system startup. Response provides information about presence of VR module and its readiness to cooperate with SDL.</description>
+ </function>
+ <function name="IsReady" messagetype="response">
+ <param name="available" type="Boolean" mandatory="true">
+ <description>Must be true if VR is present and ready to communicate with SDL.</description>
+ </param>
+ </function>
+ <function name="Started" messagetype="notification">
+ <description>Must be initiated by VR module to let SDL know that VR session has started.</description>
+ </function>
+ <function name="Stopped" messagetype="notification">
+ <description>Must be initiated by VR module to let SDL know that VR session has stopped.</description>
+ </function>
+ <function name="AddCommand" messagetype="request">
+ <description>Request from SDL to add a command(string with associated id) to VR.</description>
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true">
+ <description>ID of a command (further to be used in OnCommand notification).</description>
+ </param>
+ <param name="vrCommands" type="String" mandatory="true" maxlength="99" minsize="1" maxsize="100" array="true">
+ <description>List of strings to be used as VR commands.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="false">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="AddCommand" messagetype="response">
+ </function>
+ <function name="DeleteCommand" messagetype="request">
+ <description>Request from SDL to delete a command from VR.</description>
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true">
+ <description>Id of a command (list of strings), previously sent by AddCommand.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="DeleteCommand" messagetype="response">
+ </function>
+ <function name="OnCommand" messagetype="notification">
+ <description>Notifies SDL about command trigerred via VR</description>
+ <param name="cmdID" type="Integer" mandatory="true" minvalue="0" maxvalue="2000000000">
+ <description>ID of of the command (list of strings)</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="false">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="ChangeRegistration" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to change language of VR.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>The language application wants to switch to.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="ChangeRegistration" messagetype="response">
+ </function>
+ <function name="OnLanguageChange" messagetype="notification">
+ <description>Notification from HMI to SmartDeviceLink about change of language.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>Language VR has switched to.</description>
+ </param>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="request">
+ <description>Method is invoked at system start-up. Response must provide the information about VR supported languages.</description>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="response">
+ <param name="languages" type="Common.Language" mandatory="true" array="true" minsize="1" maxsize="100">
+ <description>List of languages supported in VR.</description>
+ </param>
+ </function>
+ <function name="GetLanguage" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to get currently active VR language</description>
+ </function>
+ <function name="GetLanguage" messagetype="response">
+ <param name="language" type="Common.Language" mandatory="true"/>
+ </function>
+ <function name="GetCapabilities" messagetype="request">
+ <description>Method is invoked at system startup by SDL to request information about VR capabilities of HMI.</description>
+ </function>
+ <function name="GetCapabilities" messagetype="response">
+ <param name="vrCapabilities" type="Common.VrCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Types of input recognized by VR module.</description>
+ </param>
+ </function>
+</interface>
+
+<interface name="TTS" version="1.0" date="2013-04-18">
+ <description>RPCs for communication between TTS and SDL.</description>
+ <function name="GetCapabilities" messagetype="request">
+ <description>Method is invoked at system start-up. SDL requests the information about all supported hardware and their capabilities</description>
+ </function>
+ <function name="GetCapabilities" messagetype="response">
+ <param name="speechCapabilities" type="Common.SpeechCapabilities" minsize="1" maxsize="5" array="true" mandatory="true">
+ <description>See SpeechCapabilities</description>
+ </param>
+ <param name="prerecordedSpeechCapabilities" type="Common.PrerecordedSpeech" minsize="1" maxsize="5" array="true" mandatory="true">
+ <description>See PrerecordedSpeech</description>
+ </param>
+ </function>
+ <function name="Started" messagetype="notification">
+ <description>Must be initiated by TTS module to let SDL know that TTS session has started.</description>
+ </function>
+ <function name="Stopped" messagetype="notification">
+ <description>Must be initiated by TTS module to let SDL know that TTS session has stopped.</description>
+ </function>
+ <function name="IsReady" messagetype="request">
+ <description>Method is invoked at system start-up. Response must provide the information about presence of TTS module and its readiness to cooperate with SDL.</description>
+ </function>
+ <function name="IsReady" messagetype="response">
+ <param name="available" type="Boolean" mandatory="true">
+ <description>Must be true if TTS is present and ready to communicate with SDL.</description>
+ </param>
+ </function>
+ <function name="PerformInteraction" messagetype="request">
+ <description>Sets some properties for the application initiated request.</description>
+ <param name="helpPrompt" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>The help prompt. An array of text chunks of type TTSChunk. See TTSChunk. The array must have at least one item.</description>
+ </param>
+ <param name="initialPrompt" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>
+ This is the intial prompt spoken to the user at the start of an interaction.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+ <param name="timeoutPrompt" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Help text for a wait timeout. An array of text chunks of type TTSChunk. See TTSChunk. The array must have at least one item.</description>
+ </param>
+ <param name="timeout" type="Integer" mandatory="true">
+ <description>Timeout initiate timeoutPrompt</description>
+ </param>
+ </function>
+ <function name="PerformInteraction" messagetype="response">
+ </function>
+ <function name="Speak" messagetype="request">
+ <description>RPC from SDL to TTS for speaking the text.</description>
+ <param name="ttsChunks" type="Common.TTSChunk" mandatory="true" array="true" minsize="1" maxsize="100">
+ <description>List of strings to be spoken.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="Speak" messagetype="response">
+ <description>Provides information about success of operation.</description>
+ </function>
+ <function name="StopSpeaking" messagetype="request">
+ <description>Initiated by SDL to stop speaking the text.</description>
+ </function>
+ <function name="StopSpeaking" messagetype="response">
+ </function>
+ <function name="ChangeRegistration" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to change language of TTS.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>The language application wants to switch to.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="ChangeRegistration" messagetype="response">
+ </function>
+ <function name="OnLanguageChange" messagetype="notification">
+ <description>Notification from HMI to SmartDeviceLink about change of language.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>Language TTS has switched to.</description>
+ </param>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="request">
+ <description>Method is invoked at system start-up by SDL. Response must provide the information about TTS supported languages.</description>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="response">
+ <param name="languages" type="Common.Language" mandatory="true" array="true" minsize="1" maxsize="100">
+ <description>List of languages supported in TTS.</description>
+ </param>
+ </function>
+ <function name="GetLanguage" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to get currently active TTS language</description>
+ </function>
+ <function name="GetLanguage" messagetype="response">
+ <param name="language" type="Common.Language" mandatory="true"/>
+ </function>
+ <function name="SetGlobalProperties" messagetype="request">
+ <description>Sets some properties for the application initiated request.</description>
+ <param name="helpPrompt" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
+ <description>
+ The help prompt.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+ <param name="timeoutPrompt" type="Common.TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
+ <description>
+ Help text for a wait timeout.
+ An array of text chunks of type TTSChunk. See TTSChunk.
+ The array must have at least one item.
+ </description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="SetGlobalProperties" messagetype="response">
+ </function>
+</interface>
+
+<interface name="UI" version="1.0" date="2013-04-16">
+ <function name="Alert" messagetype="request">
+ <description>Request from SDL to show an alert message on the display.</description>
+ <param name="alertStrings" type="Common.TextFieldStruct" mandatory="true" array="true" minsize="0" maxsize="3">
+ <description>Array of lines of alert text fields. See TextFieldStruct. Uses alertText1, alertText2, alertText3.</description>
+ </param>
+ <param name="duration" type="Integer" mandatory="true" minvalue="3000" maxvalue="10000" defvalue="5000">
+ <description>Timeout in milliseconds.</description>
+ </param>
+ <param name="softButtons" type="Common.SoftButton" mandatory="false" minsize="0" maxsize="4" array="true">
+ <description>App defined SoftButtons</description>
+ </param>
+ <param name="progressIndicator" type="Boolean" mandatory="false">
+ <description>If supported on the given platform, the alert GUI will include some sort of animation indicating that loading of a feature is progressing. e.g. a spinning wheel or hourglass, etc.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="Alert" messagetype="response">
+ <param name="tryAgainTime" type="Integer" mandatory="false" minvalue="0" maxvalue="2000000000">
+ <description>Amount of time (in milliseconds) that SDL must wait before resending an alert. Must be provided if another system event or overlay currently has a higher priority than this alert.</description>
+ </param>
+ </function>
+ <function name="ShowNotification" messagetype="notification">
+ <description>Initiated by SDL in order to notify user about some actions, i.e. while waiting for updates from server etc.</description>
+ <param name="text" type="Common.TextFieldStruct" mandatory="true"/>
+ <param name="icon" type="Common.Image" mandatory="false"/>
+ <param name="timeout" type="Integer" mandatory="true">
+ <description>Pop-up is expected to be shown before time specified with timeout is up and then closed by HMI or closed upon ClosePopUp request from SDL.</description>
+ </param>
+ </function>
+ <function name="Show" messagetype="request">
+ <param name="showStrings" type="Common.TextFieldStruct" mandatory="true" array="true" minsize="0" maxsize="7">
+ <description>Array of lines of show text fields. See TextFieldStruct. Uses mainField1, mainField2, mainField3, mainField4. If some field is not set, the corresponding text should stay unchanged. If field's text is empty "", the field must be cleared.
+ mainField1: The text that should be displayed in a single or upper display line.
+ mainField2: The text that should be displayed on the second display line.
+ mainField3: The text that should be displayed on the second "page" first display line.
+ mainField4: The text that should be displayed on the second "page" second display line.
+ statusBar: statusBar.
+ mediaClock: Text value for MediaClock field.
+ mediaTrack: The text that should be displayed in the track field. This field is only valid for media applications on NGN type ACMs.
+ </description>
+ </param>
+ <param name="alignment" type="Common.TextAlignment" mandatory="false">
+ <description>Specifies how mainField1 and mainField2 texts should be aligned on the display.</description>
+ <description>If omitted, texts must be centered</description>
+ </param>
+ <param name="graphic" type="Common.Image" mandatory="false">
+ <description>Path to optional dynamic image or the static binary image itself. See Image. If omitted, the displayed graphic should not change.</description>
+ </param>
+ <param name="secondaryGraphic" type="Common.Image" mandatory="false">
+ <description>
+ Image struct determining whether static or dynamic secondary image to display in app.
+ If omitted on supported displays, the displayed secondary graphic shall not change.
+ </description>
+ </param>
+ <param name="softButtons" type="Common.SoftButton" minsize="0" maxsize="8" array="true" mandatory="false">
+ <description>App defined SoftButtons.</description>
+ <description>If omitted, the currently displayed SoftButton values should not change.</description>
+ </param>
+ <param name="customPresets" type="String" maxlength="500" minsize="0" maxsize="8" array="true" mandatory="false">
+ <description>App labeled on-screen presets (i.e. GEN3 media presets or dynamic search suggestions).</description>
+ <description>If omitted on supported displays, the presets will be shown as not defined.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>Id of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="Show" messagetype="response">
+ </function>
+ <function name="AddCommand" messagetype="request">
+ <description>Request from SDL to add a command to the application menu.</description>
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true">
+ <description>ID of the command to be added.</description>
+ </param>
+ <param name="menuParams" type="Common.MenuParams" mandatory="false">
+ <description>Optional sub value containing parameters of the command (position, name, etc.). See MenuParams. If omitted the command should be added to the end of the list of commands.</description>
+ </param>
+ <param name="cmdIcon" type="Common.Image" mandatory="false">
+ <description>Image to be displayed for representing the command. See Image.</description>
+ <description>If omitted, no (or the default if applicable) icon should be displayed.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="AddCommand" messagetype="response">
+ </function>
+ <function name="DeleteCommand" messagetype="request">
+ <description>Request from SDL to delete a command from the in-application menu with the specified command id.</description>
+ <param name="cmdID" type="Integer" mandatory="true" minvalue="0" maxvalue="2000000000">
+ <description>cmdId previously sent via AddCommand request - id of the command to be deleted.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="DeleteCommand" messagetype="response">
+ </function>
+ <function name="AddSubMenu" messagetype="request">
+ <description>Request from SDL to add a sub menu to the in-application menu.</description>
+ <param name="menuID" type="Integer" minvalue="1" maxvalue="2000000000" mandatory="true">
+ <description>ID of the sub menu to be added. Unique for the application.</description>
+ </param>
+ <param name="menuParams" type="Common.MenuParams" mandatory="true">
+ <description>Position and name of menu to be added. 'parent' field is omitted for this RPC. </description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="AddSubMenu" messagetype="response">
+ </function>
+ <function name="DeleteSubMenu" messagetype="request">
+ <description>Request from SDL to delete a submenu from the in-application menu.</description>
+ <param name="menuID" type="Integer" minvalue="1" maxvalue="2000000000" mandatory="true" >
+ <description>The "menuID" of the sub-menu to be deleted. (See addSubMenu.menuID)</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="DeleteSubMenu" messagetype="response">
+ </function>
+ <function name="PerformInteraction" messagetype="request">
+ <description>Request from SDL for triggering an interaction (e.g. "Permit GPS?" - Yes, no, Always Allow).</description>
+ <param name="initialText" type="Common.TextFieldStruct" mandatory="true">
+ <description>Uses initialInteractionText. See TextFieldStruct.</description>
+ </param>
+ <param name="choiceSet" type="Common.Choice" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>The list of choices to be used for the interaction with the user</description>
+ </param>
+ <param name="vrHelpTitle" type="String" maxlength="500" mandatory="false">
+ <description>VR Help Title text.</description>
+ <description>If omitted on supported displays, the default HU system help title should be used.</description>
+ </param>
+ <param name="vrHelp" type="Common.VrHelpItem" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>VR Help Items. If omitted on supported displays, the default HU system generated help items should be used.</description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="5000" maxvalue="100000" defvalue="10000" mandatory="true">
+ <description>Timeout in milliseconds.</description>
+ </param>
+ <param name="interactionLayout" type="Common.LayoutMode" mandatory="false">
+ <description>See LayoutMode.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="PerformInteraction" messagetype="response">
+ <param name="choiceID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
+ <description>ID of the choice that was selected in response to PerformInteraction.</description>
+ </param>
+ <param name="manualTextEntry" type="String" maxlength="500" mandatory="false">
+ <description>
+ Manually entered text selection, e.g. through keyboard
+ Can be returned in lieu of choiceID, depending on trigger source
+ </description>
+ </param>
+ </function>
+ <function name="SetMediaClockTimer" messagetype="request">
+ <description>Sets the initial media clock value and automatic update method.</description>
+ <param name="startTime" type="Common.TimeFormat" mandatory="false">
+ <description>startTime should be ignored for "PAUSE", "RESUME", and "CLEAR"</description>
+ </param>
+ <param name="endTime" type="Common.TimeFormat" mandatory="false">
+ <description>
+ See TimeFormat.
+ endTime can be provided for "COUNTUP" and "COUNTDOWN"; to be used to calculate any visual progress bar (if not provided, this feature is ignored)
+ If endTime is greater then startTime for COUNTDOWN or less than startTime for COUNTUP, then the request will return an INVALID_DATA.
+ endTime will be ignored for "PAUSE", "RESUME", and "CLEAR"
+ </description>
+ </param>
+ <param name="updateMode" type="Common.ClockUpdateMode" mandatory="true">
+ <description>The update method of the media clock.</description>
+ <description>In case of pause, resume, or clear, the start time value is ignored and shall be left out. For resume, the time continues with the same value as it was when paused.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SetMediaClockTimer" messagetype="response">
+ </function>
+ <function name="SetGlobalProperties" messagetype="request">
+ <description>Request from SDL to set some properties for VR help.</description>
+ <param name="vrHelpTitle" type="String" maxlength="500" mandatory="false">
+ <description>VR Help Title text.</description>
+ <description>If omitted on supported displays, the default HU system help title should be used.</description>
+ </param>
+ <param name="vrHelp" type="Common.VrHelpItem" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>VR Help Items. If omitted on supported displays, the default HU system generated help items should be used.</description>
+ </param>
+ <param name="menuTitle" maxlength="500" type="String" mandatory="false">
+ <description>Optional text to label an app menu button (for certain touchscreen platforms).</description>
+ </param>
+ <param name="menuIcon" type="Common.Image" mandatory="false">
+ <description>>Optional icon to draw on an app menu button (for certain touchscreen platforms).</description>
+ </param>
+ <param name="keyboardProperties" type="Common.KeyboardProperties" mandatory="false">
+ <description>On-screen keybaord configuration (if available).</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="SetGlobalProperties" messagetype="response">
+ </function>
+ <function name="OnCommand" messagetype="notification">
+ <description>Notification must be initiated by HMI on user choosing menu item.</description>
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true">
+ <description>Command ID, which is related to a specific menu entry (previously sent with AddCommand).</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that is related to this RPC.</description>
+ </param>
+ </function>
+ <function name="OnSystemContext" messagetype="notification">
+ <description>Notification must be initiated by HMI when the user changes the context of application: goes to menu (in-application menu or system menu); switches to VR; pop-up appears on screen etc.</description>
+ <param name="systemContext" type="Common.SystemContext" mandatory="true">
+ <description>The context the application is brought into.</description>
+ </param>
+ </function>
+ <function name="GetCapabilities" messagetype="request">
+ <description>Method is invoked at system startup by SDL to request information about UI capabilities of HMI.</description>
+ </function>
+ <function name="GetCapabilities" messagetype="response">
+ <param name="displayCapabilities" type="Common.DisplayCapabilities" mandatory="true">
+ <description>Information about the capabilities of the display: its type, text field supported, etc. See DisplayCapabilities. </description>
+ </param>
+ <param name="audioPassThruCapabilities" type="Common.AudioPassThruCapabilities" mandatory="true"/>
+ <param name="hmiZoneCapabilities" type="Common.HmiZoneCapabilities" mandatory="true"/>
+ <param name="softButtonCapabilities" type="Common.SoftButtonCapabilities" mandatory="false">
+ <description>Must be returned if the platform supports on-screen SoftButtons.</description>
+ </param>
+ </function>
+ <function name="ChangeRegistration" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to change language for app.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>The language application wants to switch to.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="ChangeRegistration" messagetype="response">
+ </function>
+ <function name="OnLanguageChange" messagetype="notification">
+ <description>Notification from HMI to SmartDeviceLink about change of language.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>Language UI has switched to.</description>
+ </param>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="request">
+ <description>Method should be invoked at system startup. Response provides information about UI supported languages.</description>
+ </function>
+ <function name="GetSupportedLanguages" messagetype="response">
+ <param name="languages" type="Common.Language" mandatory="true" array="true" minsize="1" maxsize="100">
+ <description>List of languages supported in UI.</description>
+ </param>
+ </function>
+ <function name="GetLanguage" messagetype="request">
+ <description>Request from SmartDeviceLink to HMI to get currently active UI language</description>
+ </function>
+ <function name="GetLanguage" messagetype="response">
+ <param name="language" type="Common.Language" mandatory="true"/>
+ </function>
+ <function name="OnDriverDistraction" messagetype="notification">
+ <description>Notification must be sent from HMI to SDL when driver distraction state is changed. Driver distraction rules are defined by the platform.</description>
+ <param name="state" type="Common.DriverDistractionState" mandatory="true">
+ <description>See DriverDistractionState. </description>
+ </param>
+ </function>
+ <function name="SetAppIcon" messagetype="request">
+ <description>Used to set existing local file on SYNC as the app's icon.</description>
+ <param name="syncFileName" type="Common.Image" mandatory="true">
+ <description>Either the path to the dynamic image stored on HY or the static binary image itself. See Image</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="SetAppIcon" messagetype="response">
+ </function>
+ <function name="SetDisplayLayout" messagetype="request">
+ <param name="displayLayout" type="String" maxlength="500" mandatory="true">
+ <description>
+ Predefined or dynamically created screen layout.
+ Currently only predefined screen layouts are defined.
+ </description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="SetDisplayLayout" messagetype="response">
+ <param name="displayCapabilities" type="Common.DisplayCapabilities" mandatory="false">
+ <description>See DisplayCapabilities</description>
+ </param>
+ <param name="buttonCapabilities" type="Common.ButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>See ButtonCapabilities</description >
+ </param>
+ <param name="softButtonCapabilities" type="Common.SoftButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>If returned, the platform supports on-screen SoftButtons; see SoftButtonCapabilities.</description >
+ </param>
+ <param name="presetBankCapabilities" type="Common.PresetBankCapabilities" mandatory="false">
+ <description>If returned, the platform supports custom on-screen Presets; see PresetBankCapabilities.</description >
+ </param>
+ </function>
+ <function name="ShowCustomForm" messagetype="request">
+ <description>Used to show a custom form; it can be a parent or child screen. If no parent screen is designated, it is set as a parent screen.</description>
+ <param name="customFormID" type="String" maxlength="500" mandatory="true">
+ <description>
+ Predefined or dynamically created screen layout.
+ Currently only predefined forms are defined.
+ Predefined layouts include:
+ "DEFAULT" - Default media / non-media screen
+ "ONSCREEN_PRESETS" - Custom root media screen containing app-defined onscreen presets.
+ "KEYBOARD_SEARCH" - Custom template containing app-configured on-screen keyboard with active search updating; user also can trigger voice search.
+ "NAV_FULLSCREEN_MAP" - Custom root template screen containing full screen map with navigation controls.
+ "NAV_POI_MENU" - Custom template containing app-defined POI options.
+ "NAV_SEARCH_RESULTS" - Custom template containing a list of app-defined search results
+ "NAV_POI_INFO" - Custom template containing app-defined POI information (and potentially map data).
+ </description>
+ </param>
+ <param name="parentFormID" type="String" maxlength="500" defvalue="DEFAULT" mandatory="false">
+ <description>
+ Parent screen of predefined form to display.
+ Currently only predefined forms are defined.
+ If not provided, then set to "DEFAULT".
+ Predefined layouts include:
+ "DEFAULT" - Default media / non-media screen
+ "ONSCREEN_PRESETS" - Custom root media screen containing app-defined onscreen presets.
+ "NAV_FULLSCREEN_MAP" - Custom template containing full screen map with navigation controls.
+ </description>
+ </param>
+ </function>
+ <function name="ShowCustomForm" messagetype="response">
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="ShowKeyboard" messagetype="request">
+ <description>Configures and populates on-screen keyboard.</description>
+ <param name="language" type="Common.Language" mandatory="true">
+ <description>The keyboard language.</description>
+ </param>
+ <param name="keyboardLayout" type="Common.KeyboardLayout" mandatory="true" >
+ <description>Desired keyboard layout.</description>
+ </param>
+ <param name="sendDynamicEntry" type="Boolean" mandatory="false">
+ <description>In this mode, all keypresses will be sent as they occur.</description>
+ <description>If disabled, entire string of text will be returned only once submitted by user.</description>
+ <description>If omitted, this value will be set to FALSE.</description>
+ </param>
+ <param name="limitedCharacterList" type="String" maxlength="1" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Array of keyboard characters to enable.</description>
+ <description>All omitted characters will be greyed out (disabled) on the keyboard.</description>
+ <description>If omitted, the entire keyboard will be enabled.</description>
+ </param>
+ <param name="autoCompleteText" type="String" maxlength="1000" mandatory="false">
+ <description>Allows an app to prepopulate the text field with a suggested or completed entry as the user types</description>
+ </param>
+ </function>
+ <function name="ShowKeyboard" messagetype="response">
+ <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="OnKeyboardInput" messagetype="notification">
+ <description>On-screen keyboard event.</description>
+ <description>Can be full string or individual keypresses depending on keyboard mode.</description>
+ <param name="event" type="Common.KeyboardEvent" mandatory="true">
+ <description>On-screen keyboard input data.</description>
+ </param>
+ <param name="data" type="String" maxlength="500" mandatory="false">
+ <description>On-screen keyboard input data.</description>
+ <description>For dynamic keypress events, this will be the current compounded string of entry text.</description>
+ <description>For entry submission events, this will be the full text entry (this will always return regardless of the mode).</description>
+ <description>For entry cancelled and entry aborted events, this data param will be omitted.</description>
+ </param>
+ </function>
+ <function name="OnTouchEvent" messagetype="notification">
+ <description>Notifies about touch events on the screen's prescribed area</description>
+ <param name="type" type="Common.TouchType" mandatory="true">
+ <description>The type of touch event.</description>
+ </param>
+ <param name="event" type="Common.TouchEvent" mandatory="true" minsize="1" maxsize="10" array="true">
+ <description>List of all individual touches involved in this event.</description>
+ </param>
+ </function>
+ <function name="Slider" messagetype="request">
+ <description>Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider.</description>
+ <param name="numTicks" type="Integer" minvalue="2" maxvalue="26" mandatory="true">
+ <description>Number of selectable items on a horizontal axis</description>
+ </param>
+ <param name="position" type="Integer" minvalue="1" maxvalue="26" mandatory="true">
+ <description>Initial position of slider control (cannot exceed numTicks)</description>
+ </param>
+ <param name="sliderHeader" type="String" maxlength="500" mandatory="true">
+ <description>Text header to be displayed.</description>
+ </param>
+ <param name="sliderFooter" type="String" maxlength="500" minsize="1" maxsize="26" array="true" mandatory="false">
+ <description>Text footer to be displayed (meant to display min/max threshold descriptors).</description>
+ <description>For a static text footer, only one footer string shall be provided in the array.</description>
+ <description>For a dynamic text footer, the number of footer text string in the array must match the numTicks value.</description>
+ <description>For a dynamic text footer, text array string should correlate with potential slider position index.</description>
+ <description>If omitted on supported displays, no footer text shall be displayed.</description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="1000" maxvalue="65535" mandatory="true">
+ <description>Timeout. The slider should be displayed until the defined amount of time has elapsed. </description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that concerns this RPC.</description>
+ </param>
+ </function>
+ <function name="Slider" messagetype="response">
+ <param name="sliderPosition" type="Integer" minvalue="1" maxvalue="26" mandatory="false">
+ <description>Current slider position. Must be returned when the user has clicked the ‘Save’ or ‘Canceled’ button or by the timeout </description>
+ </param>
+ </function>
+ <function name="ScrollableMessage" messagetype="request">
+ <description>Creates a full screen overlay containing a large block of formatted text that can be scrolled with up to 8 SoftButtons defined</description>
+ <param name="messageText" type="Common.TextFieldStruct" mandatory="true">
+ <description>Body of text that can include newlines and tabs. Uses scrollableMessageBody.</description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="0" maxvalue="65535" defvalue="30000" mandatory="true">
+ <description>Timeout in milliseconds. The message should be displayed until the time defined is up.</description>
+ </param>
+ <param name="softButtons" type="Common.SoftButton" minsize="0" maxsize="8" array="true" mandatory="false">
+ <description>App defined SoftButtons.</description>
+ <description>If omitted on supported displays, only the system defined "Close" SoftButton should be displayed.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="ScrollableMessage" messagetype="response">
+ </function>
+ <function name="PerformAudioPassThru" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ <param name="audioPassThruDisplayTexts" type="Common.TextFieldStruct" mandatory="true" minsize="0" maxsize="2" array="true">
+ <description>Uses
+ audioPassThruDisplayText1: First line of text displayed during audio capture.
+ audioPassThruDisplayText2: Second line of text displayed during audio capture.</description>
+ </param>
+ <param name="maxDuration" type="Integer" minvalue="1" maxvalue="1000000" mandatory="true">
+ <description>The maximum duration of audio recording in milliseconds. If not provided, the recording should be performed until EndAudioPassThru arrives.</description>
+ </param>
+ </function>
+ <function name="PerformAudioPassThru" messagetype="response">
+ </function>
+ <function name="EndAudioPassThru" messagetype="request">
+ <description>Request is sent by SDL to stop the audio capturing.</description>
+ </function>
+ <function name="EndAudioPassThru" messagetype="response">
+ </function>
+ <function name="IsReady" messagetype="request">
+ <description>Method is invoked at system startup. Response provides information about presence of UI module and its readiness to cooperate with SDL.</description>
+ </function>
+ <function name="IsReady" messagetype="response">
+ <param name="available" type="Boolean" mandatory="true">
+ <description>Must be true if UI is present and ready to communicate with SDL.</description>
+ </param>
+ </function>
+ <function name="ClosePopUp" messagetype="request">
+ <description>Initiated by SDL to close currently active pop-up on HMI.</description>
+ <param name="methodName" type="String" mandatory="false">
+ <description>Method to be closed</description>
+ </param>
+ </function>
+ <function name="ClosePopUp" messagetype="response">
+ <description>Provides the result of operation.</description>
+ </function>
+ <function name="OnResetTimeout" messagetype="notification">
+ <description>HMI must provide SDL with notifications specific to the current Turn-By-Turn client status on the module</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>Id of application that invoked notifcation.</description>
+ </param>
+ <param name="methodName" type="String" mandatory="true">
+ <description>Currently used method name on which was triggered action</description>
+ </param>
+ </function>
+</interface>
+
+<interface name="Navigation" version="1.0" date="2013-05-22">
+ <function name="IsReady" messagetype="request">
+ <description>Method is invoked at system startup. Response must provide the information about presence of UI Navigation module and its readiness to cooperate with SDL.</description>
+ </function>
+ <function name="IsReady" messagetype="response">
+ <param name="available" type="Boolean" mandatory="true">
+ <description>Must be true if Navigation is present and ready to communicate with SDL.</description>
+ </param>
+ </function>
+ <function name="ShowConstantTBT" messagetype="request">
+ <description>Request from SmartDeviceLinkCore to HMI to show info about navigation.</description>
+ <param name="navigationTexts" type="Common.TextFieldStruct" mandatory="true" array="true" minsize="0" maxsize="5">
+ <description>See TextFieldStruct. Uses:
+ navigationText1
+ navigationText2
+ ETA
+ totalDistance
+ timeToDestination.
+ </description>
+ </param>
+ <param name="turnIcon" type="Common.Image" mandatory="false">
+ </param>
+ <param name="nextTurnIcon" type="Common.Image" mandatory="false">
+ </param>
+ <param name="distanceToManeuver" type="Float" minvalue="0" maxvalue="1000000000" mandatory="true">
+ <description>Fraction of distance till next maneuver (from previous maneuver).</description>
+ <description>May be used to calculate progress bar.</description>
+ </param>
+ <param name="distanceToManeuverScale" type="Float" minvalue="0" maxvalue="1000000000" mandatory="true">
+ <description>Fraction of distance till next maneuver (starting from when AlertManeuver is triggered).</description>
+ <description>May be used to calculate progress bar.</description>
+ </param>
+ <param name="maneuverComplete" type="Boolean" mandatory="false">
+ <description>If and when a maneuver has completed while an AlertManeuver is active, SDL will send this value set to TRUE in order to clear the AlertManeuver overlay.</description>
+ <description>If omitted the value should be assumed as FALSE.</description>
+ </param>
+ <param name="softButtons" type="Common.SoftButton" minsize="0" maxsize="3" array="true" mandatory="false">
+ <description>Three dynamic SoftButtons available</description>
+ <description>If omitted on supported displays, the currently displayed SoftButton values will not change.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="ShowConstantTBT" messagetype="response">
+ </function>
+ <function name="AlertManeuver" messagetype="request">
+ <description>Request from SmartDeviceLinkCore to HMI to announce navigation maneuver</description>
+ <param name="softButtons" type="Common.SoftButton" minsize="0" maxsize="3" array="true" mandatory="false">
+ <description>If omitted, only the system defined "Close" SoftButton should be displayed.</description>
+ </param>
+ </function>
+ <function name="AlertManeuver" messagetype="response">
+ </function>
+ <function name="UpdateTurnList" messagetype="request">
+ <description>Request from SmartDeviceLinkCore to HMI to update turn list.</description>
+ <param name="turnList" type="Common.Turn" minsize="1" maxsize="100" array="true" mandatory="true">
+ </param>
+ <param name="softButtons" type="Common.SoftButton" minsize="0" maxsize="1" array="true" mandatory="false">
+ <description>If omitted, app-defined SoftButton should be left blank.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="UpdateTurnList" messagetype="response">
+ </function>
+ <function name="OnTBTClientState" messagetype="notification">
+ <description>HMI must provide SDL with notifications specific to the current Turn-By-Turn client status on the module</description>
+ <param name="state" type="Common.TBTState" mandatory="true">
+ <description>Current State of TBT client</description>
+ </param>
+ </function>
+ <function name="StartStream" messagetype="request">
+ <description>Notification from SmartDeviceLinkCore to HMI to start playing video streaming.</description>
+ <param name="url" type="String" minlength="21" maxlength="500" mandatory="true">
+ <description>URL that HMI start playing.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="StartStream" messagetype="response">
+ </function>
+ <function name="StopStream" messagetype="request">
+ <description>Notification from SmartDeviceLinkCore to HMI to start playing video streaming.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="StopStream" messagetype="response">
+ </function>
+ <function name="StartAudioStream" messagetype="request">
+ <description>Notification from SmartDeviceLinkCore to HMI to start playing audio streaming.</description>
+ <param name="url" type="String" minlength="21" maxlength="500" mandatory="true">
+ <description>URL that HMI start playing.</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="StartAudioStream" messagetype="response">
+ </function>
+ <function name="StopAudioStream" messagetype="request">
+ <description>Notification from SmartDeviceLinkCore to HMI to start playing audio streaming.</description>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="StopAudioStream" messagetype="response">
+ </function>
+
+</interface>
+
+<interface name="VehicleInfo" version="1.0" date="2013-04-21">
+ <function name="IsReady" messagetype="request">
+ <description>Method is invoked at system startup. Response should provide information about presence of any of vehicle information modules (ECU, GPS, etc) and their readiness to cooperate with SDL.</description>
+ </function>
+ <function name="IsReady" messagetype="response">
+ <param name="available" type="Boolean" mandatory="true">
+ <description>Must be true if vehicle data modules are present and ready to communicate with SDL.</description>
+ </param>
+ </function>
+ <function name="GetVehicleType" messagetype="request">
+ <description>Request from SmartDeviceLinkCore to HMI to get info about the vehicle (type, model, etc.).</description>
+ </function>
+ <function name="GetVehicleType" messagetype="response">
+ <param name="vehicleType" type="Common.VehicleType" mandatory="true"/>
+ </function>
+ <function name="ReadDID" messagetype="request">
+ <description>Request from SDL for vehicle data reading.</description>
+ <param name="ecuName" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Name of ECU.</description>
+ </param>
+ <param name="didLocation" type="Integer" minvalue="0" maxvalue="65535" minsize="1" maxsize="1000" array="true" mandatory="true">
+ <description>Get raw data from vehicle data DID location(s).</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application related to this RPC.</description>
+ </param>
+ </function>
+ <function name="ReadDID" messagetype="response">
+ <param name="didResult" type="Common.DIDResult" minsize="0" maxsize="1000" array="true" mandatory="false">
+ <description>Array of requested DID results (with data if available).</description>
+ </param>
+ </function>
+ <function name="GetDTCs" messagetype="request">
+ <description>Vehicle module diagnostic trouble code request.</description>
+ <param name="ecuName" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Name of ECU.</description>
+ </param>
+ <param name="dtcMask" type="Integer" minvalue="0" maxvalue="255" mandatory="false">
+ <description>DTC Mask Byte to be sent in diagnostic request to module .</description>
+ </param>
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application that requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetDTCs" messagetype="response">
+ <param name="ecuHeader" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>2 byte ECU Header for DTC response (as defined in VHR_Layout_Specification_DTCs.pdf)</description>
+ </param>
+ <param name="dtc" type="String" mandatory="false" minsize="1" maxsize="15" maxlength="10" array="true">
+ <description>
+ Array of all reported DTCs on module. Each DTC is represented with 4 bytes:
+ 3 bytes for data
+ 1 byte for status
+ </description>
+ </param>
+ </function>
+ <function name="DiagnosticMessage" messagetype="request">
+ <description>Non periodic vehicle diagnostic request</description>
+ <param name="targetID" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Name of target ECU.</description>
+ </param>
+ <param name="messageLength" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
+ <description>Length of message (in bytes).</description>
+ </param>
+ <param name="messageData" type="Integer" minvalue="0" maxvalue="255" minsize="1" maxsize="65535" array="true" mandatory="true">
+ <description>
+ Array of bytes comprising CAN message.
+ </description>
+ </param>
+ </function>
+ <function name="DiagnosticMessage" messagetype="response">
+ <param name="messageDataResult" type="Integer" minvalue="0" maxvalue="255" minsize="1" maxsize="65535" array="true" mandatory="true">
+ <description>
+ Array of bytes comprising CAN message result.
+ </description>
+ </param>
+ </function>
+
+<!--Qt HMI version of GetVehicleData-->
+ <function name="GetGpsData" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetGpsData" messagetype="response">
+ <param name="gps" type="Common.GPSData" mandatory="true">
+ <description>See GPSData</description>
+ </param>
+ </function>
+
+ <function name="GetSpeed" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetSpeed" messagetype="response">
+ <param name="speed" type="Float" minvalue="0" maxvalue="700" mandatory="true">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ </function>
+
+ <function name="GetRpm" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetRpm" messagetype="response">
+ <param name="rpm" type="Integer" minvalue="0" maxvalue="20000" mandatory="true">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ </function>
+
+ <function name="GetFuelLevel" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetFuelLevel" messagetype="response">
+ <param name="fuelLevel" type="Float" minvalue="-6" maxvalue="106" mandatory="true">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ </function>
+
+ <function name="GetFuelLevelState" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetFuelLevelState" messagetype="response">
+ <param name="fuelLevel_State" type="Common.ComponentVolumeStatus" mandatory="true">
+ <description>The fuel level state</description>
+ </param>
+ </function>
+
+ <function name="GetInstantFuelConsumption" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetInstantFuelConsumption" messagetype="response">
+ <param name="instantFuelConsumption" type="Float" minvalue="0" maxvalue="25575" mandatory="true">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ </function>
+
+ <function name="GetExternalTemperature" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetExternalTemperature" messagetype="response">
+ <param name="externalTemperature" type="Float" minvalue="-40" maxvalue="100" mandatory="true">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ </function>
+
+ <function name="GetVin" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetVin" messagetype="response">
+ <param name="vin" type="String" maxlength="17" mandatory="true">
+ <description>Vehicle identification number</description>
+ </param>
+ </function>
+
+ <function name="GetPrndl" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetPrndl" messagetype="response">
+ <param name="prndl" type="Common.PRNDL" mandatory="true">
+ <description>See PRNDL</description>
+ </param>
+ </function>
+
+ <function name="GetTirePressure" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetTirePressure" messagetype="response">
+ <param name="tirePressure" type="Common.TireStatus" mandatory="true">
+ <description>See TireStatus</description>
+ </param>
+ </function>
+
+ <function name="GetOdometer" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetOdometer" messagetype="response">
+ <param name="odometer" type="Integer" minvalue="0" maxvalue="17000000" mandatory="true">
+ <description>Odometer in km</description>
+ </param>
+ </function>
+
+ <function name="GetBeltStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetBeltStatus" messagetype="response">
+ <param name="beltStatus" type="Common.BeltStatus" mandatory="true">
+ <description>The status of the seat belts</description>
+ </param>
+ </function>
+
+ <function name="GetBodyInformation" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetBodyInformation" messagetype="response">
+ <param name="bodyInformation" type="Common.BodyInformation" mandatory="true">
+ <description>The body information including power modes</description>
+ </param>
+ </function>
+
+ <function name="GetDeviceStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetDeviceStatus" messagetype="response">
+ <param name="deviceStatus" type="Common.DeviceStatus" mandatory="true">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ </function>
+
+ <function name="GetDriverBraking" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetDriverBraking" messagetype="response">
+ <param name="driverBraking" type="Common.VehicleDataEventStatus" mandatory="true">
+ <description>The status of the brake pedal</description>
+ </param>
+ </function>
+
+ <function name="GetWiperStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetWiperStatus" messagetype="response">
+ <param name="wiperStatus" type="Common.WiperStatus" mandatory="true">
+ <description>The status of the wipers</description>
+ </param>
+ </function>
+
+ <function name="GetHeadLampStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetHeadLampStatus" messagetype="response">
+ <param name="headLampStatus" type="Common.HeadLampStatus" mandatory="true">
+ <description>Status of the head lamps</description>
+ </param>
+ </function>
+
+ <function name="GetEngineTorque" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetEngineTorque" messagetype="response">
+ <param name="engineTorque" type="Float" minvalue="-1000" maxvalue="2000" mandatory="true">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ </function>
+
+ <function name="GetAccPedalPosition" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetAccPedalPosition" messagetype="response">
+ <param name="accPedalPosition" type="Float" minvalue="0" maxvalue="100" mandatory="true">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ </function>
+
+ <function name="GetSteeringWheelAngle" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetSteeringWheelAngle" messagetype="response">
+ <param name="steeringWheelAngle" type="Float" minvalue="-2000" maxvalue="2000" mandatory="true">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+ </function>
+
+ <function name="GetECallInfo" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetECallInfo" messagetype="response">
+ <param name="eCallInfo" type="Common.ECallInfo" mandatory="true">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ </function>
+
+ <function name="GetAirbagStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetAirbagStatus" messagetype="response">
+ <param name="airbagStatus" type="Common.AirbagStatus" mandatory="true">
+ <description>The status of the air bags</description>
+ </param>
+ </function>
+
+ <function name="GetEmergencyEvent" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetEmergencyEvent" messagetype="response">
+ <param name="emergencyEvent" type="Common.EmergencyEvent" mandatory="true">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ </function>
+
+ <function name="GetClusterModeStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetClusterModeStatus" messagetype="response">
+ <param name="clusterModeStatus" type="Common.ClusterModeStatus" mandatory="true">
+ <description>The status modes of the cluster</description>
+ </param>
+ </function>
+
+ <function name="GetMyKey" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="GetMyKey" messagetype="response">
+ <param name="myKey" type="Common.MyKey" mandatory="true">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ </function>
+<!--end Qt HMI version of GetVehicleData-->
+
+<!--Qt HMI version of OnVehicleData-->
+ <function name="OnGpsData" messagetype="notification">
+ <param name="gps" type="Common.GPSData" mandatory="true">
+ <description>See GPSData</description>
+ </param>
+ </function>
+
+ <function name="OnSpeed" messagetype="notification">
+ <param name="speed" type="Float" minvalue="0" maxvalue="700" mandatory="true">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ </function>
+
+ <function name="OnRpm" messagetype="notification">
+ <param name="rpm" type="Integer" minvalue="0" maxvalue="20000" mandatory="true">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ </function>
+
+ <function name="OnFuelLevel" messagetype="notification">
+ <param name="fuelLevel" type="Float" minvalue="-6" maxvalue="106" mandatory="true">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ </function>
+
+ <function name="OnFuelLevelState" messagetype="notification">
+ <param name="fuelLevel_State" type="Common.ComponentVolumeStatus" mandatory="true">
+ <description>The fuel level state</description>
+ </param>
+ </function>
+
+ <function name="OnInstantFuelConsumption" messagetype="notification">
+ <param name="instantFuelConsumption" type="Float" minvalue="0" maxvalue="25575" mandatory="true">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ </function>
+
+ <function name="OnExternalTemperature" messagetype="notification">
+ <param name="externalTemperature" type="Float" minvalue="-40" maxvalue="100" mandatory="true">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ </function>
+
+ <function name="OnVin" messagetype="notification">
+ <param name="vin" type="String" maxlength="17" mandatory="true">
+ <description>Vehicle identification number.</description>
+ </param>
+ </function>
+
+ <function name="OnPrndl" messagetype="notification">
+ <param name="prndl" type="Common.PRNDL" mandatory="true">
+ <description>See PRNDL</description>
+ </param>
+ </function>
+
+ <function name="OnTirePressure" messagetype="notification">
+ <param name="tirePressure" type="Common.TireStatus" mandatory="true">
+ <description>See TireStatus</description>
+ </param>
+ </function>
+
+ <function name="OnOdometer" messagetype="notification">
+ <param name="odometer" type="Integer" minvalue="0" maxvalue="17000000" mandatory="true">
+ <description>Odometer in km</description>
+ </param>
+ </function>
+
+ <function name="OnBeltStatus" messagetype="notification">
+ <param name="beltStatus" type="Common.BeltStatus" mandatory="true">
+ <description>The status of the seat belts</description>
+ </param>
+ </function>
+
+ <function name="OnBodyInformation" messagetype="notification">
+ <param name="bodyInformation" type="Common.BodyInformation" mandatory="true">
+ <description>The body information including power modes</description>
+ </param>
+ </function>
+
+ <function name="OnDeviceStatus" messagetype="notification">
+ <param name="deviceStatus" type="Common.DeviceStatus" mandatory="true">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ </function>
+
+ <function name="OnDriverBraking" messagetype="notification">
+ <param name="driverBraking" type="Common.VehicleDataEventStatus" mandatory="true">
+ <description>The status of the brake pedal</description>
+ </param>
+ </function>
+
+ <function name="OnWiperStatus" messagetype="notification">
+ <param name="wiperStatus" type="Common.WiperStatus" mandatory="true">
+ <description>The status of the wipers</description>
+ </param>
+ </function>
+
+ <function name="OnHeadLampStatus" messagetype="notification">
+ <param name="headLampStatus" type="Common.HeadLampStatus" mandatory="true">
+ <description>Status of the head lamps</description>
+ </param>
+ </function>
+
+ <function name="OnEngineTorque" messagetype="notification">
+ <param name="engineTorque" type="Float" minvalue="-1000" maxvalue="2000" mandatory="true">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ </function>
+
+ <function name="OnAccPedalPosition" messagetype="notification">
+ <param name="accPedalPosition" type="Float" minvalue="0" maxvalue="100" mandatory="true">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ </function>
+
+ <function name="OnSteeringWheelAngle" messagetype="notification">
+ <param name="steeringWheelAngle" type="Float" minvalue="-2000" maxvalue="2000" mandatory="true">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+ </function>
+
+ <function name="OnMyKey" messagetype="notification">
+ <param name="myKey" type="Common.MyKey" mandatory="true">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ </function>
+<!--end Qt HMI version of OnVehicleData-->
+
+<!--Qt HMI version of SubscribeVehicleData/UnsubscribeVehicleData-->
+ <function name="SubscribeGps" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeGps" messagetype="response">
+ <param name="gps" type="Common.VehicleDataResult" mandatory="true">
+ <description>See GPSData</description>
+ </param>
+ </function>
+ <function name="UnsubscribeGps" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeGps" messagetype="response">
+ <param name="gps" type="Common.VehicleDataResult" mandatory="true">
+ <description>See GPSData</description>
+ </param>
+ </function>
+
+ <function name="SubscribeSpeed" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeSpeed" messagetype="response">
+ <param name="speed" type="Common.VehicleDataResult" mandatory="true">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ </function>
+ <function name="UnsubscribeSpeed" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeSpeed" messagetype="response">
+ <param name="speed" type="Common.VehicleDataResult" mandatory="true">
+ <description>The vehicle speed in kilometers per hour</description>
+ </param>
+ </function>
+
+ <function name="SubscribeRpm" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeRpm" messagetype="response">
+ <param name="rpm" type="Common.VehicleDataResult" mandatory="true">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ </function>
+ <function name="UnsubscribeRpm" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeRpm" messagetype="response">
+ <param name="rpm" type="Common.VehicleDataResult" mandatory="true">
+ <description>The number of revolutions per minute of the engine</description>
+ </param>
+ </function>
+
+ <function name="SubscribeFuelLevel" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeFuelLevel" messagetype="response">
+ <param name="fuelLevel" type="Common.VehicleDataResult" mandatory="true">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ </function>
+ <function name="UnsubscribeFuelLevel" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeFuelLevel" messagetype="response">
+ <param name="fuelLevel" type="Common.VehicleDataResult" mandatory="true">
+ <description>The fuel level in the tank (percentage)</description>
+ </param>
+ </function>
+
+ <function name="SubscribeFuelLevel_State" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeFuelLevel_State" messagetype="response">
+ <param name="fuelLevel_State" type="Common.VehicleDataResult" mandatory="true">
+ <description>The fuel level state</description>
+ </param>
+ </function>
+ <function name="UnsubscribeFuelLevel_State" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeFuelLevel_State" messagetype="response">
+ <param name="fuelLevel_State" type="Common.VehicleDataResult" mandatory="true">
+ <description>The fuel level state</description>
+ </param>
+ </function>
+
+ <function name="SubscribeInstantFuelConsumption" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeInstantFuelConsumption" messagetype="response">
+ <param name="instantFuelConsumption" type="Common.VehicleDataResult" mandatory="true">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ </function>
+ <function name="UnsubscribeInstantFuelConsumption" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeInstantFuelConsumption" messagetype="response">
+ <param name="instantFuelConsumption" type="Common.VehicleDataResult" mandatory="true">
+ <description>The instantaneous fuel consumption in microlitres</description>
+ </param>
+ </function>
+
+ <function name="SubscribeExternalTemperature" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeExternalTemperature" messagetype="response">
+ <param name="externalTemperature" type="Common.VehicleDataResult" mandatory="true">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ </function>
+ <function name="UnsubscribeExternalTemperature" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeExternalTemperature" messagetype="response">
+ <param name="externalTemperature" type="Common.VehicleDataResult" mandatory="true">
+ <description>The external temperature in degrees celsius</description>
+ </param>
+ </function>
+
+ <function name="SubscribePrndl" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribePrndl" messagetype="response">
+ <param name="prndl" type="Common.VehicleDataResult" mandatory="true">
+ <description>See PRNDL</description>
+ </param>
+ </function>
+ <function name="UnsubscribePrndl" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribePrndl" messagetype="response">
+ <param name="prndl" type="Common.VehicleDataResult" mandatory="true">
+ <description>See PRNDL</description>
+ </param>
+ </function>
+
+ <function name="SubscribeVin" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeVin" messagetype="response">
+ <param name="vin" type="String" maxlength="17" mandatory="true">
+ <description>Vehicle identification number</description>
+ </param>
+ </function>
+ <function name="UnsubscribeVin" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeVin" messagetype="response">
+ <param name="vin" type="String" maxlength="17" mandatory="true">
+ <description>Vehicle identification number</description>
+ </param>
+ </function>
+
+ <function name="SubscribeTirePressure" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeTirePressure" messagetype="response">
+ <param name="tirePressure" type="Common.VehicleDataResult" mandatory="true">
+ <description>See TireStatus</description>
+ </param>
+ </function>
+ <function name="UnsubscribeTirePressure" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeTirePressure" messagetype="response">
+ <param name="tirePressure" type="Common.VehicleDataResult" mandatory="true">
+ <description>See TireStatus</description>
+ </param>
+ </function>
+
+ <function name="SubscribeOdometer" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeOdometer" messagetype="response">
+ <param name="odometer" type="Common.VehicleDataResult" mandatory="true">
+ <description>Odometer in km</description>
+ </param>
+ </function>
+ <function name="UnsubscribeOdometer" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeOdometer" messagetype="response">
+ <param name="odometer" type="Common.VehicleDataResult" mandatory="true">
+ <description>Odometer in km</description>
+ </param>
+ </function>
+
+ <function name="SubscribeBeltStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeBeltStatus" messagetype="response">
+ <param name="beltStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>The status of the seat belts</description>
+ </param>
+ </function>
+ <function name="UnsubscribeBeltStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeBeltStatus" messagetype="response">
+ <param name="beltStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>The status of the seat belts</description>
+ </param>
+ </function>
+
+ <function name="SubscribeBodyInformation" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeBodyInformation" messagetype="response">
+ <param name="bodyInformation" type="Common.VehicleDataResult" mandatory="true">
+ <description>The body information including power modes</description>
+ </param>
+ </function>
+ <function name="UnsubscribeBodyInformation" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeBodyInformation" messagetype="response">
+ <param name="bodyInformation" type="Common.VehicleDataResult" mandatory="true">
+ <description>The body information including power modes</description>
+ </param>
+ </function>
+
+ <function name="SubscribeDeviceStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeDeviceStatus" messagetype="response">
+ <param name="deviceStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ </function>
+ <function name="UnsubscribeDeviceStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeDeviceStatus" messagetype="response">
+ <param name="deviceStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>The device status including signal and battery strength</description>
+ </param>
+ </function>
+
+ <function name="SubscribeDriverBraking" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeDriverBraking" messagetype="response">
+ <param name="driverBraking" type="Common.VehicleDataResult" mandatory="true">
+ <description>The status of the brake pedal</description>
+ </param>
+ </function>
+ <function name="UnsubscribeDriverBraking" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeDriverBraking" messagetype="response">
+ <param name="driverBraking" type="Common.VehicleDataResult" mandatory="true">
+ <description>The status of the brake pedal</description>
+ </param>
+ </function>
+
+ <function name="SubscribeWiperStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeWiperStatus" messagetype="response">
+ <param name="wiperStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>The status of the wipers</description>
+ </param>
+ </function>
+ <function name="UnsubscribeWiperStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeWiperStatus" messagetype="response">
+ <param name="wiperStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>The status of the wipers</description>
+ </param>
+ </function>
+
+ <function name="SubscribeHeadLampStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeHeadLampStatus" messagetype="response">
+ <param name="headLampStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>Status of the head lamps</description>
+ </param>
+ </function>
+ <function name="UnsubscribeHeadLampStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeHeadLampStatus" messagetype="response">
+ <param name="headLampStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>Status of the head lamps</description>
+ </param>
+ </function>
+
+ <function name="SubscribeEngineTorque" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeEngineTorque" messagetype="response">
+ <param name="engineTorque" type="Common.VehicleDataResult" mandatory="true">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ </function>
+ <function name="UnsubscribeEngineTorque" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeEngineTorque" messagetype="response">
+ <param name="engineTorque" type="Common.VehicleDataResult" mandatory="true">
+ <description>Torque value for engine (in Nm) on non-diesel variants</description>
+ </param>
+ </function>
+
+ <function name="SubscribeAccPedalPosition" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeAccPedalPosition" messagetype="response">
+ <param name="accPedalPosition" type="Common.VehicleDataResult" mandatory="true">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ </function>
+ <function name="UnsubscribeAccPedalPosition" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeAccPedalPosition" messagetype="response">
+ <param name="accPedalPosition" type="Common.VehicleDataResult" mandatory="true">
+ <description>Accelerator pedal position (percentage depressed)</description>
+ </param>
+ </function>
+
+ <function name="SubscribeSteeringWheelAngle" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeSteeringWheelAngle" messagetype="response">
+ <param name="steeringWheelAngle" type="Common.VehicleDataResult" mandatory="true">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+ </function>
+ <function name="UnsubscribeSteeringWheelAngle" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeSteeringWheelAngle" messagetype="response">
+ <param name="steeringWheelAngle" type="Common.VehicleDataResult" mandatory="true">
+ <description>Current angle of the steering wheel (in deg)</description>
+ </param>
+ </function>
+
+ <function name="SubscribeECallInfo" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeECallInfo" messagetype="response">
+ <param name="eCallInfo" type="Common.VehicleDataResult" mandatory="true">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ </function>
+ <function name="UnsubscribeECallInfo" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeECallInfo" messagetype="response">
+ <param name="eCallInfo" type="Common.VehicleDataResult" mandatory="true">
+ <description>Emergency Call notification and confirmation data</description>
+ </param>
+ </function>
+
+ <function name="SubscribeAirbagStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeAirbagStatus" messagetype="response">
+ <param name="airbagStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>The status of the air bags</description>
+ </param>
+ </function>
+ <function name="UnsubscribeAirbagStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeAirbagStatus" messagetype="response">
+ <param name="airbagStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>The status of the air bags</description>
+ </param>
+ </function>
+
+ <function name="SubscribeEmergencyEvent" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeEmergencyEvent" messagetype="response">
+ <param name="emergencyEvent" type="Common.VehicleDataResult" mandatory="true">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ </function>
+ <function name="UnsubscribeEmergencyEvent" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeEmergencyEvent" messagetype="response">
+ <param name="emergencyEvent" type="Common.VehicleDataResult" mandatory="true">
+ <description>Information related to an emergency event (and if it occurred)</description>
+ </param>
+ </function>
+
+ <function name="SubscribeClusterModeStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeClusterModeStatus" messagetype="response">
+ <param name="clusterModeStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>The status modes of the cluster</description>
+ </param>
+ </function>
+ <function name="UnsubscribeClusterModeStatus" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeClusterModeStatus" messagetype="response">
+ <param name="clusterModeStatus" type="Common.VehicleDataResult" mandatory="true">
+ <description>The status modes of the cluster</description>
+ </param>
+ </function>
+
+ <function name="SubscribeMyKey" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="SubscribeMyKey" messagetype="response">
+ <param name="myKey" type="Common.VehicleDataResult" mandatory="true">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ </function>
+ <function name="UnsubscribeMyKey" messagetype="request">
+ <param name="appID" type="Integer" mandatory="true">
+ <description>ID of application requested this RPC.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeMyKey" messagetype="response">
+ <param name="myKey" type="Common.VehicleDataResult" mandatory="true">
+ <description>Information related to the MyKey feature</description>
+ </param>
+ </function>
+<!--end Qt HMI version of SubscribeVehicleData/UnsubscribeVehicleData-->
+
+</interface>
+</interfaces>
diff --git a/SDL_Core/src/components/Interfaces/RPC2Spec.idl b/SDL_Core/src/components/Interfaces/RPC2Spec.idl
deleted file mode 100644
index e376f7d21..000000000
--- a/SDL_Core/src/components/Interfaces/RPC2Spec.idl
+++ /dev/null
@@ -1,987 +0,0 @@
-/*
- *
- * @name RPC2Spec
- *
- * @desc UI, VR, TTS, Buttons, SmartDeviceLinkCore functionality
- *
- * @category HMI
- * @version 1.0
- *
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
- interface NsRPC2Communication::UI
- {
-
-version "1.2";
-
-/*
-all classes derived from xml searches in namespace xx.
-this directive is optional and may be overwriten by generator flag -n
-*/
-
-//using SmartDeviceLinkRPC;
-
-// all method names will be prefixed by 'test.', prefix append on wire only, not in C++ names
-// using of full power of c string notation possible, i.e. "some\tclass\b\x02#$#$\"\\" is valid prefix
-prefix "UI.";
-
-#if 0
-/*
- The only currently supported Json RPC version is 2.0
-*/
-
-envelope "JSON-RPC 2.0";
-
-// The following is for RPCBus controller:
-//serviceUrl "/localhost:6087";
-
-#endif
-
-/*
- * @descr
- * Show information in app window, in predefined positions
- *
- * @returns
- * result of command execution
- *
- */
-Show(string(500) * mainField1,
- string(500) * mainField2,
- string(500) * mainField3,
- string(500) * mainField4,
- TextAlignment * alignment, //data type from SmartDeviceLink protocol specification
- string(500) * statusBar,
- string(500) *mediaClock,
- string(500) *mediaTrack,
- Image * graphic, // Image struct determining whether static or dynamic image to display in app
- SoftButton * softButtons[0:8], // App defined SoftButtons
- string(500) * customPresets[0:6], // App labeled on-screen presets (i.e. GEN2)
- int appId
- -> ); // return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr
- * Show Alert to the user and play sound tone if necessary
- *
- * @returns
- * result of command execution
- *
- */
-Alert(
- string(500) * AlertText1,
- string(500) * AlertText2,
- string(500) * AlertText3,
- TTSChunk * ttsChunks[1:100],
- unsigned int(3000:10000) * duration,
- bool * playTone,
- SoftButton * softButtons[0:4], // App defined SoftButtons
- int appId
- ->
- unsigned int (2000000000) * tryAgainTime // Amount of time (in seconds) that an app must wait before resending an alert.
-); // return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr
- * add new command to UI
- *
- * @returns
- * result code
- */
-AddCommand(
- unsigned int (2000000000) cmdId, // cmdID from addCommand request in SmartDeviceLink protocol
- MenuParams menuParams, //data type from SmartDeviceLink protocol specification
- Image * cmdIcon, // Image struct determining whether static or dynamic icon
- int appId
- -> ); // return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr
- * add new command to UI
- *
- * @returns
- * result code
- */
-DeleteCommand(
- unsigned int (2000000000) cmdId, // cmdID from addCommand request in SmartDeviceLink protocol
- int appId
- -> ); // return value is provided in corresponding response object, id of request and response should be equal
-
-
-/*
- * @descr
- * add sub menu
- * parameters are copied from AddSubMenu in SmartDeviceLink protocol
- *
- * @returns
- * result code
- */
-AddSubMenu(
- unsigned int (2000000000) menuId,
- unsigned int (1000) * position,
- string(500) menuName,
- int appId
- -> ); // return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr
- * delete sub menu
- * parameters are copied from DeleteSubMenu in SmartDeviceLink protocol
- *
- * @returns
- * result code
- */
-DeleteSubMenu(
- unsigned int (2000000000) menuId,
- int appId
- -> ); //// return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr
- * create new interaction choice set
- * parameters are copied from CreateInteractionChoiceSet in SmartDeviceLink protocol
- * // TODO: clarify if it is correct approach
- *
- * @returns
- * result code
- */
-CreateInteractionChoiceSet(
- unsigned int (2000000000) interactionChoiceSetID,
- Choice choiceSet[1:100], // data type from SmartDeviceLink protocol specification
- int appId
- -> ); // return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr
- * delete new interaction choice set
- * parameters are copied from DeleteInteractionChoiceSet in SmartDeviceLink protocol
- * // TODO: clarify if it is correct approach
- *
- * @returns
- * result code
- */
-DeleteInteractionChoiceSet(
- unsigned int(2000000000) interactionChoiceSetID,
- int appId
- -> ); // return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr
- * Triggers an interaction (e.g. "Permit GPS?" - Yes, no, Always Allow
- * parameters are copied from PerformInteraction in SmartDeviceLink protocol
- *
- * // TODO: clarify if it is correct approach
- *
- * @returns
- * result code
- */
-PerformInteraction(
- string(500) initialText,
- TTSChunk initialPrompt[1:100], //data type from SmartDeviceLink protocol specification
- InteractionMode interactionMode, // data type from SmartDeviceLink protocol specification
- unsigned int (2000000000) interactionChoiceSetIDList[1:100],// List of interaction choice set IDs to use with an interaction
- TTSChunk * helpPrompt[1:100], //data type from SmartDeviceLink protocol specification
- TTSChunk * timeoutPrompt[1:100], // data type from SmartDeviceLink protocol specification
- unsigned int (5000:100000) * timeout, //in milliseconds
- VrHelpItem * vrHelp[1:100], // Ability to send suggested VR Help Items to display on-screen during Perform Interaction
- int appId
- ->
- unsigned int (2000000000) * choiceID, // ID of the choice that was selected in response to PerformInteraction
- TriggerSource * triggerSource //data type from SmartDeviceLink protocol specification
- );
-
-/*
- * @descr
- * start media clock timer
- * parameters are copied from SetMediaClockTimer in SmartDeviceLink protocol
- *
- * // TODO: clarify if it is correct approach
- *
- * @returns
- * result code
- */
-SetMediaClockTimer(
- StartTime * startTime, // data type from SmartDeviceLink protocol specification
- UpdateMode updateMode, // data type from SmartDeviceLink protocol specification
- int appId
- -> );// return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr
- * set global properties for timeout prompt and help prompt
- * parameters are copied from SetGlobalProperties in SmartDeviceLink protocol
- *
- * // TODO: clarify if it is correct approach
- *
- * @returns
- * result code
- */
-SetGlobalProperties(
- TTSChunk * helpPrompt[1:100], // data type from SmartDeviceLink protocol specification
- TTSChunk * timeoutPrompt[1:100], // data type from SmartDeviceLink protocol specification
- string(500) * vrHelpTitle, // VR Help Title text
- VrHelpItem * vrHelp[1:100], // VR Help Items
- int appId
- -> ); // return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr
- * reset global properties for timeout prompt and help prompt
- * parameters are copied from SetGlobalProperties in SmartDeviceLink protocol
- *
- * // TODO: clarify if it is correct approach
- *
- * @returns
- * result code
- */
-ResetGlobalProperties(
- GlobalProperty properties[1:100], // enum, data type from SmartDeviceLink protocol specification
- int appId
- -> ); // return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr Notifies SmartDeviceLink core about command trigerred by UI
- */
-notification OnCommand (
- unsigned int (2000000000) commandId, // id of triggered command
- int appId
- );
-
-
-// TODO: not sure if it is correct place for this method
- // TODO: what's about VR session in progress?
- /*
- * @descr Notifies if system context is changed
- */
-notification OnSystemContext(
- SystemContext systemContext
- );
-
-/*
- * @descr
- * method should be invoked at system startup
- * provides information about UI capabilities
- *
- * @returns
- * UI Display capabilites
- */
-GetCapabilities(
- ->
- DisplayCapabilities displayCapabilities, // data type from SmartDeviceLink protocol specification
- HmiZoneCapabilities hmiZoneCapabilities[1:100], // data type from SmartDeviceLink protocol specification
- SoftButtonCapabilities * softButtonCapabilities[1:100] // If returned, the platform supports on-screen SoftButtons
- );
-
-/*
- * @descr
- * method should be invoked at system startup
- * provides information about UI supported languages
- * @returns
- * UI supported languages
- */
-GetSupportedLanguages(
- ->
- Language languages[1:100]
-);
-
-/*
- * @descr
- * Notification is sent from HMI to AppManager on showing warning
- * to user.
- *
- */
-notification OnDriverDistraction(
- DriverDistractionState state // data type from SmartDeviceLink protocol specification
- );
-
-/*
- * @descr
- * HMI notifies AppManager about its readiness.
- * to user.
- *
- */
-notification OnReady(
-);
-
-/*
- * @descr
- * Request from SmartDeviceLink to HMI to change display language for app.
- * to user.
- *
- */
-ChangeRegistration(
- Language hmiDisplayLanguage, // data type from SmartDeviceLink protocol specification
- int appId
- ->
-);
-
-/*
- * @descr
- * Request from SmartDeviceLink to HMI to get the currently active UI language
- *
- */
-GetLanguage(
- ->
- Language hmiDisplayLanguage
-);
-/*
- * @descr
- * Used to set existing local file on SYNC as the app's icon.
- *
- */
-SetAppIcon(
- string(500) syncFileName, // path to file to be used as app icon
- int appId
- ->
-);
-
-/*
- * @descr
- * Notification from HMI to SmartDeviceLink about change of display language for app.
- * to user.
- *
- */
-notification OnLanguageChange(
- Language hmiDisplayLanguage // data type from SmartDeviceLink protocol specification
-);
-
-/*
- * @descr
- * Notification from HMI to SmartDeviceLink when user chooses device
- *
- */
-notification OnDeviceChosen(
- string deviceName
-);
-
-/*
- * @descr
- * Request from SmartDeviceLink to HMI to show slider. Returns position.
- *
- */
-Slider(
- unsigned int (2:26) numTicks,
- unsigned int (1:16) position,
- string (500) sliderHeader,
- string (500) * sliderFooter[1:26],
- unsigned int (65535) timeout,
- int appId
- ->
- unsigned int (1:26) sliderPosition
-);
-
-/*
- * @descr
- * Request from SmartDeviceLink to HMI:
- * Creates a full screen overlay containing a large block of
- * formatted text that can be scrolled with up to 8 SoftButtons defined
- */
-ScrollableMessage(
- string(500) scrollableMessageBody,
- unsigned int (65535) * timeout,
- SoftButton * softButtons[0:8],
- int appId
- -> // return value is provided in corresponding response object, id of request and response should be equal
-);
-
-/*
- * @descr
- * Request from SmartDeviceLink to HMI:
- * Used to set an alternate display layou
- * If not sent, default screen for given platform will be shown
- */
-SetDisplayLayout(
- string displayLayout, //Predefined or dynamically created screen layout, Currently only predefined screen layouts are defined: ONSCREEN_PRESETS
- int appId
- -> // return value is provided in corresponding response object, id of request and response should be equal
-);
-
-/*
- * @descr
- * Request from SmartDeviceLink to HMI to start audio pass through session
- * to user.
- *
- */
-PerformAudioPassThru(
- TTSChunk initialPrompt[1:100], //SYNC will speak this prompt before opening the audio pass thru sessio
- string(500) * audioPassThruDisplayText1, //Line of text displayed during audio capture
- string(500) * audioPassThruDisplayText2, //Line of text displayed during audio capture
- SamplingRate samplingRate, //This value shall be allowed at 8 khz or 16 or 22 or 44 khz.
- unsigned int(1000000) maxDuration, //The maximum duration of audio recording in milliseconds
- AudioCaptureQuality bitsPerSample, //Specifies the quality the audio is recorded. Currently 8 bit or 16 bit
- AudioType audioType, //Specifies the type of audio data being requested
- int appId
- ->// return value is provided in corresponding response object, id of request and response should be equal
-);
-
-/*
- * @descr
- * Request from SmartDeviceLink to HMI: when this request is invoked, the audio capture stops
- * to user.
- *
- */
-EndAudioPassThru(
- int appId
- -> // return value is provided in corresponding response object, id of request and response should be equal
-);
-
-/*
- * @descr Request from SmartDeviceLinkCore to HMI to show info about navigation.
- */
-ShowConstantTBT(
- string (500) * navigationText1,
- string (500) * navigationText2,
- string (500) * eta,
- string (500) * totalDistance,
- Image turnIcon,
- float (0:1000000000) distanceToManeuver,
- float (0:1000000000) distanceToManeuverScale,
- bool * maneuverComplete,
- SoftButton softButtons[0:3],
- int appId
- -> //return value is provided in corresponding response object, id of request and response should be equal
-);
-
-/*
- * @descr Request from SmartDeviceLinkCore to HMI to announce navigation maneuver
- */
-AlertManeuver(
- TTSChunk ttsChunks[1:100],
- SoftButton softButtons[0:3],
- int appId
- -> //return value is provided in corresponding response object, id of request and response should be equal
-);
-
-/*
- * @descr Request from SmartDeviceLinkCore to HMI to update turn list.
- */
-UpdateTurnList(
- Turn turnList[1:100],
- SoftButton softButtons[0:1],
- int appId
- -> //return value is provided in corresponding response object, id of request and response should be equal
-);
-
-/*
- * @descr Notification from HMI to SmartDeviceLinkCore
- * Provides applications with notifications specific to the current TBT client status on the module
- */
-notification OnTBTClientState(
- TBTState state,
- int appId
-);
-
-/*
- * @descr Request from SmartDeviceLinkCore to HMI to make a call.
- */
-DialNumber(
- string(500) number, //Phone number is a string consisting of only the digits and "+", which can be up to 40 chars
- int appId
- -> //return value is provided in corresponding response object, id of request and response should be equal
-);
-
-}
-
-
- interface NsRPC2Communication::VR
- {
-
- version "1.2";
-
-// using SmartDeviceLinkRPC;
-
-prefix "VR.";
-
-#if 0
-/*
- The only currently supported Json RPC version is 2.0
-*/
-
-envelope "JSON-RPC 2.0";
-
-// The following is for RPCBus controller:
-//serviceUrl "/localhost:6087";
-
-#endif
-
-/*
- * @descr
- * method should be invoked at system startup
- * provides information about voice recognition capabilities
- *
- * @returns
- * VR capabilites
- */
-GetCapabilities(
- ->
- VrCapabilities capabilities[1:100] // data type from SmartDeviceLink protocol specification
-);
-
-/*
- * @descr
- * add new command to VR
- *
- * @returns
- * result code
- */
-AddCommand(
- unsigned int (2000000000) cmdId, // cmdID from addCommand request in SmartDeviceLink protocol
- string (99) vrCommands [1:100], //An array of strings to be used as VR sysnonyms for this command
- int appId
- -> ); // return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr
- * delete commands from VR
- *
- * @returns
- * result code
- */
-DeleteCommand(
- unsigned int (2000000000) cmdId, // cmdID from addCommand request in SmartDeviceLink protocol
- int appId
- -> ); // return value is provided in corresponding response object, id of request and response should be equal
-
-/*
- * @descr Notifies SmartDeviceLink core about command trigerred by VR
- */
-notification OnCommand(
- unsigned int (2000000000) cmdID, // id of triggered command
- int appId
- );
-
- /*
- * @descr
- * Request from SmartDeviceLink to HMI to change language for app.
- * to user.
- *
- */
-ChangeRegistration(
- Language language, // data type from SmartDeviceLink protocol specification
- int appId
- ->
-);
-/*
- * @descr
- * Notification from HMI to SmartDeviceLink about change of language for app.
- * to user.
- *
- */
-notification OnLanguageChange(
- Language language // data type from SmartDeviceLink protocol specification
-);
-
-/*
- * @descr
- * method should be invoked at system startup
- * provides information about VR supported languages
- * @returns
- * VR supported languages
- */
-GetSupportedLanguages(
- ->
- Language languages [1:100]
-);
-
-/*
- * @descr
- * Request from SmartDeviceLink to HMI to get currently active VR language
- *
- */
-GetLanguage(
- ->
- Language language
-);
-}
-
-
-interface NsRPC2Communication::TTS
-{
-
-version "1.2";
-
-//using SmartDeviceLinkRPC;
-
-prefix "TTS.";
-
-#if 0
-/*
- The only currently supported Json RPC version is 2.0
-*/
-
-envelope "JSON-RPC 2.0";
-
-// The following is for RPCBus controller:
-//serviceUrl "/localhost:6087";
-
-#endif
-
-/*
- * @descr
- * method should be invoked at application registration
- * provides information about TTS capabilities
- *
- * @returns
- * TTS capabilites
- */
-GetCapabilities(
- ->
- SpeechCapabilities capabilities[1:100] // data type from SmartDeviceLink protocol specification
- );
-
-/*
- * @descr
- * method should be invoked to perform text to speech
- *
- * @returns
- * result code of execution
- */
-Speak(
- TTSChunk ttsChunks [1:100], // data type from SmartDeviceLink protocol specification
- int appId
- -> ); // return value is provided in corresponding response object, id of request and response should be equal
-
- /*
- * @descr
- * Request from SmartDeviceLink to HMI to change language for app.
- * to user.
- *
- */
-ChangeRegistration(
- Language language, // data type from SmartDeviceLink protocol specification
- int appId
- -> // return value is provided in corresponding response object, id of request and response should be equal
-);
-/*
- * @descr
- * Notification from HMI to SmartDeviceLink about change of language for app.
- * to user.
- *
- */
-notification OnLanguageChange(
- Language language // data type from SmartDeviceLink protocol specification
-);
-
-/*
- * @descr
- * Request from SmartDeviceLink to HMI to get currently active TTS language
- *
- */
-GetLanguage(
- ->
- Language language
-);
-
-/*
- * @descr
- * method should be invoked at system startup
- * provides information about TTS supported languages
- * @returns
- * TTS supported languages
- */
-GetSupportedLanguages(
- ->
- Language languages [1:100]
-);
-
-}
-
-
-interface NsRPC2Communication::Buttons
-{
-
-version "1.2";
-
-//using SmartDeviceLinkRPC;
-
-prefix "Buttons.";
-
-#if 0
-/*
- The only currently supported Json RPC version is 2.0
-*/
-
-envelope "JSON-RPC 2.0";
-
-// The following is for RPCBus controller:
-//serviceUrl "/localhost:6087";
-
-#endif
-
-/*
- * @descr
- * method should be invoked at system startup
- * provides information about all supported hardware buttons and their capabilites
- *
- * @returns
- * button capabilites
- * array of supported buttons
- */
-GetCapabilities(
- ->
- ButtonCapabilities capabilities[1:100], // data type from SmartDeviceLink protocol specification
- PresetBankCapabilities * presetBankCapabilities // If returned, the platform supports custom on-screen Presets
-);
-
-/*
- * @descr Notifies application of UP/DOWN events for buttons
- */
-notification OnButtonEvent(
- ButtonName name, // data type from SmartDeviceLink protocol specification
- ButtonEventMode mode, // data type from SmartDeviceLink protocol specification
- unsigned int (65536) * customButtonID // If ButtonName is “CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButtonName)
-);
-
-/*
- * @descr Notifies application of LONG/SHORT press events for buttons
- */
-notification OnButtonPress(
- ButtonName name, // data type from SmartDeviceLink protocol specification
- ButtonPressMode mode, // data type from SmartDeviceLink protocol specification
- unsigned int (65536) * customButtonID // If ButtonName is “CUSTOM_BUTTON", this references the string passed by a custom button. (e.g. softButtonName)
-);
-}
-
- interface NsRPC2Communication::SmartDeviceLinkCore
- {
-
-version "1.2";
-
-//using SmartDeviceLinkRPC;
-
-prefix "SmartDeviceLinkCore.";
-
-#if 0
-/*
- The only currently supported Json RPC version is 2.0
-*/
-
-envelope "JSON-RPC 2.0";
-
-// The following is for RPCBus controller:
-//serviceUrl "/localhost:6087";
-
-#endif
-
-/*
- * @descr
- * this methos is usually invoked by HMI to get list of registered apps
- *
- *
- * @returns
- * the array of rehgistered apps
- *
- */
-GetAppList(
- ->
- HMIApplication appList [] // data specific for RPCBus communication.
- );
-
- /*
- * @descr
- * Request from HMI to SmartDeviceLink to get the list of devices.
- *
- */
-GetDeviceList(
- ->
- string * deviceList [1:100]
-);
-
-/*
- * @descr
- * Notification from SmartDeviceLink to HMI about changes in device list.
- *
- */
-notification OnDeviceListUpdated(
- string * deviceList [1:100]
-);
-
-/*
- * @descr
- * Activate app
- * Usually invoked by UI component when user click on app in the list of registered apps
- *
- * @returns
- * result
- *
- */
-ActivateApp(
- string(100) appName,
- int appId
- -> // return value is provided in corresponding response object, id of request and response should be equal
-);
-
-/*
- * @descr
- * Deactivate app
- * Usually invoked by UI component when user chooses non-mobile application on HMI
- *
- * @returns
- * result
- *
- */
-notification OnAppDeactivated(
- string(100) appName,
- DeactivateReason reason, //DeactivateReason : audio, Phone Call, Navigation map, Phone Menu, Sync settings, general
- int appId
-);
-
-/*
- * @descr
- * Send some data from HMI to AppManager.
- *
- * @returns
- * result
- *
- */
-SendData(
- string data[1:100],
- string(1000) * url,
- int (-2000000000:2000000000) * timeout
- -> //return value is provided in corresponding response object, id of request and response should be equal
-);
-
-/*
- * @descr Notifies if new application is registered
- */
-notification OnAppRegistered(
- HMIApplication application
-);
-
-/*
- * @descr Notifies if application is unregistered
- */
-notification OnAppUnregistered(
- string(100) appName,
- AppInterfaceUnregisteredReason * reason, // data type from SmartDeviceLink protocol specification
- int appId
-);
-}
-
-interface NsRPC2Communication::VehicleInfo
-{
-version "1.2";
-
-//using SmartDeviceLinkRPC;
-
-prefix "VehicleInfo.";
- /*
- * @descr Request from SmartDeviceLinkCore to HMI to get info about the vehicle.
- */
-GetVehicleType(
- ->
- VehicleType vehicleType // manufacturer, model, year etc of the vehicle.
- );
-
-
-/*
- * @descr Request from SmartDeviceLinkCore to HMI
- * Non periodic vehicle data read request
- */
-GetVehicleData(
- VehicleDataType dataType,
- int appId
- ->
- GPSData * gps,
- float(-100:500) * speed,
- unsigned int(20000) * rpm, // The number of revolutions per minute of the engine
- float(0:100) * fuelLevel,
- float(0:7000) * avgFuelEconomy, //The average fuel economy in litres/100km
- float(0:26) * batteryVoltage,
- float(-40:100) * externalTemperature, //The external temperature in degrees celsius.
- string(17) * vin, // Vehicle identification number
- PRNDL * prndl,
- TireStatus * tirePressure,
- float(-1000:1000) * batteryPackVoltage,
- float(-1000:1000) * batteryPackCurrent,
- int (-50:250) * batteryPackTemperature,
- int(-10000:55000) * engineTorque,
- unsigned int (2000000) * odometer,
- unsigned int (2000000) * tripOdometer,
- string(500) * satRadioESN //The hexadecimal ESN of the satellite radio (if supported).
-);
-
-/*
- * @descr Notification from HMI to SmartDeviceLink
- * Callback for the periodic and non periodic vehicle data read function.
- */
-notification OnVehicleData(
- GPSData * gps,
- float(-100:500) * speed,
- unsigned int (20000) * rpm,
- float (0:100) * fuelLevel,
- float (0:7000) * avgFuelEconomy, // The average fuel economy in litres/100km
- float (0:26) * batteryVoltage,
- float (-40:100) * externalTemperature,
- string(17) * vin,
- PRNDL * prndl,
- TireStatus * tirePressure,
- float (-1000:1000) * batteryPackVoltage,
- float (-1000:1000) * batteryPackCurrent,
- int (-50:250) * batteryPackTemperature,
- int (-10000:55000) * engineTorque,
- unsigned int (2000000) * odometer,
- unsigned int (2000000) * tripOdometer,
- string (500) * genericbinary
-);
-
-/*
- * @descr Request from SmartDeviceLinkCore to HMI
- * Non periodic vehicle data read request
- */
-ReadDID(
- unsigned int (65535) ecuName,
- unsigned int (65535) didLocation[0:1000],
- bool * encrypted,
- int appId
- ->
- VehicleDataResultCode * dataResult[0:1000], //Permission status of data element
- string(5000) * data[0:1000] //Raw DID-based data returned for requested element
-);
-
-/*
- * @descr Request from SmartDeviceLinkCore to HMI
- * Vehicle module diagnostic trouble code request.
- */
-GetDTCs(
- unsigned int (65535) ecuName,
- bool * encrypted,
- int appId
- ->
- DTC * dtcList[1:100]
-);
-
-}
-
- /*
-"id": "integer" //REQUIRED for request methods. NOT to be used for notifications
-*/
diff --git a/SDL_Core/src/components/Interfaces/v4_protocol_v1_2_no_extra.xml b/SDL_Core/src/components/Interfaces/v4_protocol_v1_2_no_extra.xml
new file mode 100755
index 000000000..ead8596ee
--- /dev/null
+++ b/SDL_Core/src/components/Interfaces/v4_protocol_v1_2_no_extra.xml
@@ -0,0 +1,1153 @@
+<?xml version="1.0" standalone="no"?>
+<!-- edited with XMLSpy v2011 rel. 3 sp1 (x64) (http://www.altova.com) by Olesksandr Leshchenko (HP) -->
+<?xml-stylesheet type="text/xml" href="protocol2html.xsl"?>
+<interface name="Ford Sync RAPI" version="1.2" date="2011-05-17">
+ <enum name="Result">
+ <element name="SUCCESS">
+ <description>The request succeeded</description>
+ </element>
+ <element name="INVALID_DATA">
+ <description>The data sent is invalid. For example</description>
+ <description>Invalid Json syntax</description>
+ <description>Parameters out of bounds (number or enum range)</description>
+ <description>Mandatory parameters not provided</description>
+ <description>Parameter provided with wrong type</description>
+ <description>Invalid characters</description>
+ <description>Empty string</description>
+ </element>
+ <element name="UNSUPPORTED_REQUEST">
+ <description>The request is not supported by Sync</description>
+ </element>
+ <element name="OUT_OF_MEMORY">
+ <description>The system could not process the request because the necessary memory couldn't be allocated</description>
+ </element>
+ <element name="TOO_MANY_PENDING_REQUESTS">
+ <description>There are too many requests pending (means, that the response has not been delivered, yet).</description>
+ <designdescription>There may be a maximum of 1000 pending requests at a time.</designdescription>
+ </element>
+ <element name="INVALID_ID">
+ <description>One of the provided IDs is not valid. For example</description>
+ <description>This applies to CorrelationID, SubscriptionID [@TODO if SubscriptionID is used], CommandID, MenuID, [@TODO: missed one?]</description>
+ </element>
+ <element name="DUPLICATE_NAME">
+ <description>There was a conflict with an registered name (application or menu item) or vr command</description>
+ </element>
+ <element name="TOO_MANY_APPLICATIONS">
+ <description>There are already too many registered applications</description>
+ </element>
+ <element name="APPLICATION_REGISTERED_ALREADY">
+ <description>RegisterApplication has been called again, after a RegisterApplication was successful before.</description>
+ </element>
+ <element name="UNSUPPORTED_VERSION">
+ <description>Sync doesn't support the protocol that is requested by the mobile application</description>
+ </element>
+ <element name="WRONG_LANGUAGE">
+ <description>The requested language is currently not supported.</description>
+ <description>Might be because of a mismatch of the currently active language on Sync and the requested language</description>
+ </element>
+ <element name="APPLICATION_NOT_REGISTERED">
+ <description>An command can not be executed because no application has been registered with RegisterApplication.</description>
+ </element>
+ <element name="IN_USE">
+ <description>The data may not be changed, because it is currently in use.</description>
+ <description>For example when trying to delete a command set that is currently involved in an interaction.</description>
+ </element>
+ <element name="SUBSCRIBED_ALREADY">
+ <description>The item to subscribe to is already subscribed to.</description>
+ </element>
+ <element name="REJECTED">
+ <description>The requested command was rejected, e.g. because mobile app is in background and cannot perform any HMI commands.</description>
+ <description>Or an HMI command (e.g. Speak) is rejected because a higher priority HMI command (e.g. Alert) is playing.</description>
+ </element>
+ <element name="ABORTED">
+ <description>A command was aborted, for example due to user interaction (e.g. user pressed button).</description>
+ <description>Or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested.</description>
+ </element>
+ <element name="IGNORED">
+ <description>A command was ignored, because the intended result is already in effect.</description>
+ <description>For example, SetMediaClockTimer was used to pause the media clock although the clock is paused already.</description>
+ <description>NOTE: potentially replaces SUBSCRIBED_ALREADY</description>
+ </element>
+ <element name="UNSUPPORTED_BUTTON">
+ <description>A button that was requested for subscription is not supported under the current system.</description>
+ <description>NOTE: could become a more generic UNSUPPORTED_RESOURCE by merging with VEHIVLE_DATA_NOT_AVAILABLE.</description>
+ </element>
+ <element name="FILE_NOT_FOUND">
+ <description>A specified file could not be found on Sync.</description>
+ </element>
+ <element name="GENERIC_ERROR">
+ <description>Provided data is valid but something went wrong in the lower layers.</description>
+ </element>
+ </enum>
+ <enum name="ButtonPressMode">
+ <element name="LONG">
+ <description>A button was released, after it was pressed for a long time</description>
+ <description>Actual timing is defined by Sync and may vary</description>
+ </element>
+ <element name="SHORT">
+ <description>A button was released, after it was pressed for a short time</description>
+ <description>Actual timing is defined by Sync and may vary</description>
+ </element>
+ </enum>
+ <enum name="ButtonEventMode">
+ <element name="BUTTONUP">
+ <description>A button has been released up</description>
+ </element>
+ <element name="BUTTONDOWN">
+ <description>A button has been pressed down</description>
+ </element>
+ </enum>
+ <enum name="Language">
+ <description>The set of potential languages</description>
+ <element name="EN-US" internal_name="EN_US">
+ <description>US English</description>
+ </element>
+ <element name="ES-MX" internal_name="ES_MX">
+ <description>Mexican Spanish</description>
+ </element>
+ <element name="FR-CA" internal_name="FR_CA">
+ <description>Canadian French</description>
+ </element>
+ </enum>
+ <enum name="UpdateMode">
+ <description>Describes how the media clock timer should behave on the platform</description>
+ <element name="COUNTUP"/>
+ <description>Starts the media clock timer counting upwards, as in time elapsed.</description>
+ <element name="COUNTDOWN"/>
+ <description>Starts the media clock timer counting downwards, as in time remaining.</description>
+ <element name="PAUSE"/>
+ <description>Pauses the media clock timer</description>
+ <element name="RESUME"/>
+ <description>Resume the media clock timer</description>
+ </enum>
+ <enum name="InteractionMode">
+ <description>For application-requested interactions, this mode indicates the method in which the user is notified and uses the interaction.</description>
+ <element name="MANUAL_ONLY"/>
+ <description>This mode causes the interaction to only occur on the display, meaning the choices are provided only via the display.</description>
+ <description>Selections are made with the OK and Seek Right and Left, Tune Up and Down buttons.</description>
+ <element name="VR_ONLY"/>
+ <description>This mode causes the interaction to only occur using V4.</description>
+ <description>Selections are made by saying the command.</description>
+ <element name="BOTH"/>
+ <description>This mode causes both a VR and display selection option for an interaction.</description>
+ <description>Selections can be made either from the menu display or by speaking the command.</description>
+ </enum>
+ <enum name="HMILevel">
+ <description>Enumeraction that describes current levels of HMI.</description>
+ <element name="FULL" internal_name="HMI_FULL"/>
+ <element name="LIMITED" internal_name="HMI_LIMITED"/>
+ <element name="BACKGROUND" internal_name="HMI_BACKGROUND"/>
+ <element name="NONE" internal_name="HMI_NONE"/>
+ </enum>
+ <enum name="AudioStreamingState">
+ <description>Enumeraction that describes possible states of audio streaming.</description>
+ <element name="AUDIBLE"/>
+ <element name="NOT_AUDIBLE"/>
+ </enum>
+ <enum name="SystemContext">
+ <description>Enumeraction that describes possible contexts and app's HMI might be in.</description>
+ <element name="MAIN" internal_name="SYSCTXT_MAIN"/>
+ <element name="VRSESSION" internal_name="SYSCTXT_VRSESSION"/>
+ <element name="MENU" internal_name="SYSCTXT_MENU"/>
+ </enum>
+ <enum name="AppInterfaceUnregisteredReason">
+ <description>Error code, which comes from sync side.</description>
+ <element name="USER_EXIT"/>
+ <element name="IGNITION_OFF"/>
+ <element name="BLUETOOTH_OFF"/>
+ <element name="USB_DISCONNECTED"/>
+ <element name="REQUEST_WHILE_IN_NONE_HMI_LEVEL"/>
+ <element name="TOO_MANY_REQUESTS"/>
+ <element name="DRIVER_DISTRACTION_VIOLATION"/>
+ <element name="LANGUAGE_CHANGE"/>
+ <element name="MASTER_RESET"/>
+ <element name="FACTORY_DEFAULTS"/>
+ </enum>
+ <enum name="TriggerSource">
+ <description>Indicates the source from where the command was triggered.</description>
+ <element name="MENU" internal_name="TS_MENU"/>
+ <element name="VR" internal_name="TS_VR"/>
+ </enum>
+ <enum name="HmiZoneCapabilities">
+ <description>Contains information about the HMI zone capabilities.</description>
+ <description>For future use.</description>
+ <element name="FRONT"/>
+ <element name="BACK"/>
+ </enum>
+ <enum name="SpeechCapabilities">
+ <description>Contains information about the TTS capabilities.</description>
+ <element name="TEXT"/>
+ <element name="SAPI_PHONEMES"/>
+ <element name="LHPLUS_PHONEMES"/>
+ <element name="PRE_RECORDED"/>
+ <element name="SILENCE"/>
+ </enum>
+ <enum name="VrCapabilities">
+ <description>Contains information about the VR capabilities.</description>
+ <element name="Text"/>
+ </enum>
+ <enum name="AudioCaptureQuality" platform="pending">
+ <description>Describes different quality options for PerformAudioCapture.</description>
+ <element name="8KHZ" internal_name="QUALITY_8KHZ"/>
+ <element name="16KHZ" internal_name="QUALITY_16KHZ"/>
+ </enum>
+ <enum name="ButtonName">
+ <description>Defines the hard (physical) and soft (touchscreen) buttons available from SYNC</description>
+ <element name="OK"/>
+ <element name="SEEKLEFT"/>
+ <element name="SEEKRIGHT"/>
+ <element name="TUNEUP"/>
+ <element name="TUNEDOWN"/>
+ <element name="PRESET_0"/>
+ <element name="PRESET_1"/>
+ <element name="PRESET_2"/>
+ <element name="PRESET_3"/>
+ <element name="PRESET_4"/>
+ <element name="PRESET_5"/>
+ <element name="PRESET_6"/>
+ <element name="PRESET_7"/>
+ <element name="PRESET_8"/>
+ <element name="PRESET_9"/>
+ <issue creator="rs">Are these all supported buttons?</issue>
+ </enum>
+ <enum name="MediaClockFormat">
+ <element name="CLOCK1">
+ <description>minutesFieldWidth = 2;minutesFieldMax = 19;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 19;maxMinutes = 59;maxSeconds = 59;</description>
+ <description>used for Type II and CID headunits</description>
+ </element>
+ <element name="CLOCK2">
+ <description>minutesFieldWidth = 3;minutesFieldMax = 199;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 59;maxMinutes = 59;maxSeconds = 59;</description>
+ <description>used for Type V headunit</description>
+ </element>
+ <element name="CLOCKTEXT1">
+ <description>5 characters possible</description>
+ <description>Format: 1|sp c :|sp c c</description>
+ <description>1|sp : digit "1" or space</description>
+ <description>c : character out of following character set: sp|0-9|[letters, see TypeII column in XLS. See [@TODO: create file ref]]</description>
+ <description>:|sp : colon or space</description>
+ <description>used for Type II headunit</description>
+ </element>
+ <element name="CLOCKTEXT2">
+ <description>5 chars possible</description>
+ <description>Format: 1|sp c :|sp c c</description>
+ <description>1|sp : digit "1" or space</description>
+ <description>c : character out of following character set: sp|0-9|[letters, see CID column in XLS. See [@TODO: create file ref]]</description>
+ <description>:|sp : colon or space</description>
+ <description>used for CID headunit</description>
+ <description>NOTE: difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character set</description>
+ </element>
+ <element name="CLOCKTEXT3">
+ <description>6 chars possible</description>
+ <description>Format: 1|sp c c :|sp c c</description>
+ <description>1|sp : digit "1" or space</description>
+ <description>c : character out of following character set: sp|0-9|[letters, see Type 5 column in XLS]. See [@TODO: create file ref]</description>
+ <description>:|sp : colon or space</description>
+ <description>used for Type V headunit</description>
+ </element>
+ <issue creator="mf">First complete values draft. Review needed.</issue>
+ </enum>
+ <enum name="DisplayType">
+ <description>See DAES for further infos regarding the displays]</description>
+ <issue creator="rs">Meaningful description is missing</issue>
+ <element name="CID"/>
+ <element name="TYPE2"/>
+ <element name="TYPE5"/>
+ <element name="NGN"/>
+ <element name="GEN2_8_DMA"/>
+ <element name="GEN2_6_DMA"/>
+ <element name="MFD3"/>
+ <element name="MFD4"/>
+ <element name="MFD5"/>
+ </enum>
+ <enum name="TextFieldName">
+ <element name="mainField1">
+ <description>The first line of the main field of persistent display</description>
+ <description>Applies to "Show"</description>
+ </element>
+ <element name="mainField2">
+ <description>The second line of the main field of persistent display</description>
+ <description>Applies to "Show"</description>
+ </element>
+ <element name="statusBar">
+ <description>The status bar on Nav</description>
+ <description>Applies to "Show"</description>
+ </element>
+ <element name="mediaClock">
+ <description>Text value for MediaClock field. Has to be properly formatted by Mobile App according to Sync capabilities.</description>
+ <description>Applies to "Show"</description>
+ </element>
+ <element name="mediaTrack">
+ <description>The track field of NGN type ACMs.</description>
+ <description>This field is only available for media applications.</description>
+ <description>Applies to "Show"</description>
+ </element>
+ <element name="alertText1">
+ <description>The first line of the alert text field</description>
+ <description>Applies to "Alert"</description>
+ </element>
+ <element name="alertText2">
+ <description>The second line of the alert text field</description>
+ <description>Applies to "Alert"</description>
+ </element>
+ </enum>
+ <enum name="CharacterSet">
+ <description>The list of potential character sets</description>
+ <element name="TYPE2SET">
+ <description>See [@TODO: create file ref]</description>
+ </element>
+ <element name="TYPE5SET">
+ <description>See [@TODO: create file ref]</description>
+ </element>
+ <element name="CID1SET">
+ <description>See [@TODO: create file ref]</description>
+ </element>
+ <element name="CID2SET">
+ <description>See [@TODO: create file ref]</description>
+ </element>
+ <issue creator="rs">Real sets have not been defined yet?</issue>
+ </enum>
+ <enum name="TextAlignment">
+ <description>The list of possible alignments, left, right, or centered</description>
+ <element name="LEFT_ALIGNED"/>
+ <element name="RIGHT_ALIGNED"/>
+ <element name="CENTERED"/>
+ </enum>
+ <enum name="TBTState">
+ <description>Enumeration that describes possible states of turn-by-turn module.</description>
+ <element name="ROUTE_UPDATE_REQUEST"/>
+ <element name="ROUTE_ACCEPTED"/>
+ <element name="ROUTE_REFUSED"/>
+ <element name="ROUTE_CANCELLED"/>
+ </enum>
+ <enum name="DriverDistractionState">
+ <description>Enumeration that describes possible states of driver distraction.</description>
+ <element name="DD_ON"/>
+ <element name="DD_OFF"/>
+ </enum>
+ <struct name="Choice">
+ <description>A choice is an option given to the user, which can be selected either by menu, or through voice recognition system.</description>
+ <param name="choiceID" type="Integer" minvalue="0" maxvalue="65535"/>
+ <param name="menuName" type="String" maxlength="500"/>
+ <param name="vrCommands" type="String" minsize="1" maxsize="100" maxlength="99" array="true"/>
+ </struct>
+ <struct name="SyncMsgVersion">
+ <description>Specifies the version number of the SYNC V4 protocol, that is supported by the mobile application</description>
+ <param name="majorVersion" type="Integer" minvalue="1" maxvalue="1">
+ <description>The major version indicates versions that is not-compatible to previous versions.</description>
+ </param>
+ <param name="minorVersion" type="Integer" minvalue="0" maxvalue="1000">
+ <description>The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality)</description>
+ </param>
+ </struct>
+ <enum name="GlobalProperty">
+ <description>The different global properties.</description>
+ <element name="HELPPROMPT">
+ <description>The property helpPrompt of setGlobalProperties</description>
+ </element>
+ <element name="TIMEOUTPROMPT">
+ <description>The property timeoutPrompt of setGlobalProperties</description>
+ </element>
+ </enum>
+ <struct name="StartTime">
+ <param name="hours" type="Integer" minvalue="0" maxvalue="59">
+ <description>The hour of the media clock.</description>
+ <description>Some radios only support a max of 19 hours. If out of range, it will be rejected.</description>
+ </param>
+ <param name="minutes" type="Integer" minvalue="0" maxvalue="59"/>
+ <param name="seconds" type="Integer" minvalue="0" maxvalue="59"/>
+ </struct>
+ <struct name="TextField">
+ <param name="name" type="TextFieldName">
+ <description>The name that identifies the field. See TextFieldName.</description>
+ </param>
+ <param name="characterSet" type="CharacterSet">
+ <description>The character set that is supported in this field. See CharacterSet.</description>
+ </param>
+ <param name="width" type="Integer" minvalue="1" maxvalue="40">
+ <description>The number of characters in one row of this field.</description>
+ </param>
+ <param name="rows" type="Integer" minvalue="1" maxvalue="3">
+ <description>The number of rows of this field.</description>
+ </param>
+ </struct>
+ <struct name="DisplayCapabilities">
+ <description>Contains information about the display capabilities.</description>
+ <param name="displayType" type="DisplayType">
+ <description>The type of the display. See DisplayType</description>
+ </param>
+ <param name="textFields" type="TextField" minsize="1" maxsize="100" array="true">
+ <description>A set of all fields that support text data. See TextField</description>
+ </param>
+ <param name="mediaClockFormats" type="MediaClockFormat" minsize="1" maxsize="100" array="true">
+ <description>A set of all supported formats of the media clock. See MediaClockFormat</description>
+ </param>
+ </struct>
+ <struct name="ButtonCapabilities">
+ <description>Contains information about a buttons capabilities.</description>
+ <param name="name" type="ButtonName">
+ <description>The name of the button. See ButtonName.</description>
+ </param>
+ <param name="shortPressAvailable" type="Boolean">
+ <description>The button supports a short press.</description>
+ <description>Whenever the button is pressed short, onButtonPressed( SHORT) will be invoked.</description>
+ </param>
+ <param name="longPressAvailable" type="Boolean">
+ <description>The button supports a LONG press.</description>
+ <description>Whenever the button is pressed long, onButtonPressed( LONG) will be invoked.</description>
+ </param>
+ <param name="upDownAvailable" type="Boolean">
+ <description>The button supports "button down" and "button up".</description>
+ <description>Whenever the button is pressed, onButtonEvent( DOWN) will be invoked.</description>
+ <description>Whenever the button is released, onButtonEvent( UP) will be invoked.</description>
+ </param>
+ </struct>
+ <struct name="MenuParams">
+ <param name="parentID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
+ <description>unique ID of the sub menu, the command will be added to.</description>
+ <description>If not provided, it will be provided to the top level of the in application menu.</description>
+ </param>
+ <param name="position" type="Integer" minvalue="0" maxvalue="1000" mandatory="false">
+ <description>Position within the items that are are at top level of the in application menu.</description>
+ <description>0 will insert at the front.</description>
+ <description>1 will insert at the second position.</description>
+ <description>if position is greater or equal than the number of items on top level, the sub menu will be appended to the end.</description>
+ <description>If this param was omitted the entry will be added at the end.</description>
+ </param>
+ <param name="menuName" type="String" maxlength="500">
+ <description>Text to show in the menu for this sub menu.</description>
+ </param>
+ </struct>
+ <struct name="TTSChunk">
+ <description>A TTS chunk, that consists of the text/phonemes to speak and the type (like text or SAPI)</description>
+ <param name="text" maxlength="500" type="String">
+ <description>The text or phonemes to speak.</description>
+ <description>May not be empty.</description>
+ </param>
+ <param name="type" type="SpeechCapabilities">
+ <description>Describes, whether it is text or a specific phoneme set. See SpeechCapabilities</description>
+ </param>
+ </struct>
+ <!-- Requests/Responses -->
+ <function name="RegisterAppInterface" messagetype="request">
+ <description>Establishes an interface with a mobile application.</description>
+ <description>Before registerAppInterface no other commands will be accepted/executed.</description>
+ <param name="syncMsgVersion" type="SyncMsgVersion">
+ <description>See SyncMsgVersion</description>
+ </param>
+ <param name="appName" type="String" maxlength="100">
+ <description>The mobile application name, e.g. "Ford Drive Green".</description>
+ <description>Needs to be unique over all applications.</description>
+ <description>May not be empty.</description>
+ <description>May not start with a new line character.</description>
+ <description>May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)</description>
+ <description>Needs to be unique over all applications. Applications with the same name will be rejected.</description>
+ <description>Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.</description>
+ </param>
+ <param name="ngnMediaScreenAppName" type="String" maxlength="100" mandatory="false">
+ <description>Provides an abbreviated version of the app name (if needed), that will be displayed on the NGN media screen.</description>
+ <description>If not provided, the appName is used instead (and will be truncated if too long)</description>
+ <description>Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.</description>
+ </param>
+ <param name="vrSynonyms" type="String" maxlength="40" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Defines an additional voice recognition command.</description>
+ <description>May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)</description>
+ <description>Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.</description>
+ </param>
+ <param name="usesVehicleData" type="Boolean" platform="pending" mandatory="false">
+ <description>If not provided, the default is equal to False"</description>
+ <description>Indicates if the mobile application wants to use vehicle data like GPS or speed.</description>
+ </param>
+ <param name="isMediaApplication" type="Boolean">
+ <description>Indicates if the application is a media or a non-media application.</description>
+ <description>Only media applications will be able to stream audio to Sync that is audible outside of the BT media source.</description>
+ </param>
+ <param name="languageDesired" type="Language">
+ <description>See Language</description>
+ <description>If the language doesn't match the active language on Sync, it will be rejected.</description>
+ <description>If the language is changed, while an app is registered, it will get disconnected.</description>
+ </param>
+ <param name="autoActivateID" type="String" maxlength="16" mandatory="false">
+ <description>Used to support auto activation after an initial successful registerAppInterface (for example after an ignition cycle).</description>
+ <description>The app should always provide the id that was provided by the most recent registerAppInterface response.</description>
+ <description>If this is the first call to registerAppInterface, then do not provide this parameter at all.</description>
+ <description>If not provided or not matching with the id of the last registerAppInterface response, the app will not be automatically put into foreground on startup.</description>
+ </param>
+ </function>
+ <function name="RegisterAppInterface" messagetype="response">
+ <description>The response to registerAppInterface</description>
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="DUPLICATE_NAME"/>
+ <element name="TOO_MANY_APPLICATIONS"/>
+ <element name="APPLICATION_REGISTERED_ALREADY"/>
+ <element name="UNSUPPORTED_VERSION"/>
+ <element name="WRONG_LANGUAGE"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ <param name="syncMsgVersion" type="SyncMsgVersion" mandatory="false">
+ <description>See SyncMsgVersion</description>
+ </param>
+ <param name="autoActivateID" type="String" maxlength="16" mandatory="false">
+ <description>Provides an id that the app may use on a subsequent registerAppInterface to allow for auto activation (for example after an ignition cycle).</description>
+ </param>
+ <param name="language" type="Language" mandatory="false">
+ <description>The currently active language on Sync. See "Language" for options.</description>
+ </param>
+ <param name="displayCapabilities" type="DisplayCapabilities" mandatory="false">
+ <description>See DisplayCapabilities</description>
+ </param>
+ <param name="buttonCapabilities" type="ButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>See ButtonCapabilities</description>
+ </param>
+ <param name="hmiZoneCapabilities" type="HmiZoneCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <issue creator="rs">If not used yet => remove</issue>
+ <description>See HmiZoneCapabilities</description>
+ </param>
+ <param name="speechCapabilities" type="SpeechCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>See SpeechCapabilities</description>
+ </param>
+ <param name="vrCapabilities" type="VrCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>See VrCapabilities</description>
+ </param>
+ </function>
+ <function name="UnregisterAppInterface" messagetype="request">
+ <description>Closes an interface from a mobile application.</description>
+ <description>After unregisterAppInterface, no commands other than registerAppInterface will be accepted/executed.</description>
+ <description>Will fail, if no registerAppInterface was completed successfully before.</description>
+ </function>
+ <function name="UnregisterAppInterface" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="SetGlobalProperties" messagetype="request">
+ <description>Allows setting global properties.</description>
+ <param name="helpPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>The help prompt.</description>
+ <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
+ <description>The array must have at least one item</description>
+ </param>
+ <param name="timeoutPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Help text for a wait timeout.</description>
+ <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
+ <description>The array must have at least one item</description>
+ </param>
+ <issue creator="rs">Do we want to add VR threshold params?</issue>
+ </function>
+ <function name="SetGlobalProperties" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="ResetGlobalProperties" messagetype="request">
+ <description>Allows resetting global properties.</description>
+ <param name="properties" type="GlobalProperty" minsize="1" maxsize="100" array="true">
+ <description>Contains the names of all global properties (like timeoutPrompt) that should be unset. Resetting means, that they have the same value as at start up (default)</description>
+ </param>
+ </function>
+ <function name="ResetGlobalProperties" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="AddCommand" messagetype="request">
+ <description>Adds a command to the in application menu.</description>
+ <description>Either menuParams or vrCommands must be provided.</description>
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>unique ID of the command to add.</description>
+ </param>
+ <param name="menuParams" type="MenuParams" mandatory="false">
+ <description>Optional sub value containing menu parameters</description>
+ </param>
+ <param name="vrCommands" type="String" minsize="1" maxsize="100" maxlength="99" array="true" mandatory="false">
+ <description>An array of strings to be used as VR sysnonyms for this command.</description>
+ <description>If this array is provided, it may not be empty.</description>
+ </param>
+ </function>
+ <function name="AddCommand" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="DUPLICATE_NAME"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="DeleteCommand" messagetype="request">
+ <description>Deletes all commands from the in-application menu with the specified command id.</description>
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>ID of the command(s) to delete.</description>
+ </param>
+ </function>
+ <function name="DeleteCommand" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="IN_USE"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="AddSubMenu" messagetype="request">
+ <description>Adds a sub menu to the in-application menu.</description>
+ <param name="menuID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>unique ID of the sub menu to add.</description>
+ </param>
+ <param name="position" type="Integer" minvalue="0" maxvalue="1000" mandatory="false">
+ <description>Position within the items that are are at top level of the in application menu.</description>
+ <description>0 will insert at the front.</description>
+ <description>1 will insert at the second position.</description>
+ <description>If position is greater or equal than the number of items on top level, the sub menu will be appended to the end.</description>
+ <description>Position of any submenu will always be located before the return and exit options</description>
+ <description>If this param was omitted the entry will be added at the end.</description>
+ </param>
+ <param name="menuName" maxlength="500" type="String">
+ <description>Text to show in the menu for this sub menu.</description>
+ </param>
+ </function>
+ <function name="AddSubMenu" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="DUPLICATE_NAME"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="DeleteSubMenu" messagetype="request">
+ <description>Deletes a submenu from the in-application menu.</description>
+ <param name="menuID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>The "menuID" of the submenu to delete. (See addSubMenu.menuID)</description>
+ </param>
+ </function>
+ <function name="DeleteSubMenu" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="IN_USE"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="CreateInteractionChoiceSet" messagetype="request">
+ <description>creates interaction choice set to be used later by performInteraction</description>
+ <param name="interactionChoiceSetID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>Unique ID used for this interaction choice set.</description>
+ </param>
+ <param name="choiceSet" type="Choice" minsize="1" maxsize="100" array="true"/>
+ </function>
+ <function name="CreateInteractionChoiceSet" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="DUPLICATE_NAME"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="PerformInteraction" messagetype="request">
+ <description>Triggers an interaction (e.g. "Permit GPS?" - Yes, no, Always Allow).</description>
+ <param name="initialText" type="String" maxlength="500">
+ <description>Text to be displayed first.</description>
+ </param>
+ <param name="initialPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true">
+ <description>This is the intial prompt spoken to the user at the start of an interaction</description>
+ <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
+ <description>The array must have at least one item</description>
+ </param>
+ <param name="interactionMode" type="InteractionMode">
+ <description>See InteractionMode.</description>
+ </param>
+ <param name="interactionChoiceSetIDList" type="Integer" minsize="1" maxsize="100" minvalue="0" maxvalue="2000000000" array="true">
+ <description>List of interaction choice set IDs to use with an interaction.</description>
+ </param>
+ <param name="helpPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Help text. This is the spoken string when a user speaks "help" when the interaction is occuring.</description>
+ <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
+ <description>The array must have at least one item</description>
+ </param>
+ <param name="timeoutPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>Timeout text. This text is spoken when a VR interaction times out.</description>
+ <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
+ <description>The array must have at least one item</description>
+ </param>
+ <param name="timeout" type="Integer" minvalue="5000" maxvalue="100000" mandatory="false">
+ <description>Timeout in milliseconds.</description>
+ <description>If omitted a standard value of 10000 milliseconds is used.</description>
+ </param>
+ </function>
+ <function name="PerformInteraction" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="DUPLICATE_NAME"/>
+ <element name="ABORTED"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ <param name="choiceID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
+ <description>ID of the choice that was selected in response to PerformInteraction.</description>
+ </param>
+ <param name="triggerSource" type="TriggerSource" mandatory="false">
+ <description>See TriggerSource</description>
+ </param>
+ </function>
+ <function name="DeleteInteractionChoiceSet" messagetype="request">
+ <description>Deletes interaction choice set that has been created with "CreateInteractionChoiceSet".</description>
+ <description>The interaction may only be deleted when not currently in use by a "performInteraction".</description>
+ <param name="interactionChoiceSetID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>ID of the interaction choice set to delete.</description>
+ </param>
+ </function>
+ <function name="DeleteInteractionChoiceSet" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="INVALID_ID"/>
+ <element name="IN_USE"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="Alert" messagetype="request">
+ <description>Shows an alert which typically consists of text-to-speech message and text on the display. At least either alertText1, alertText2 or TTSChunks need to be provided.</description>
+ <param name="alertText1" type="String" maxlength="500" mandatory="false">
+ <description>The first line of the alert text field</description>
+ </param>
+ <param name="alertText2" type="String" maxlength="500" mandatory="false">
+ <description>The second line of the alert text field</description>
+ </param>
+ <param name="ttsChunks" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
+ <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
+ <description>The array must have at least one item</description>
+ </param>
+ <param name="duration" type="Integer" minvalue="3000" maxvalue="10000" mandatory="false">
+ <description>Timeout in milliseconds.</description>
+ <description>Typical timeouts are 3-5 seconds</description>
+ <description>If omitted, timeout is set to 5s.</description>
+ </param>
+ <param name="playTone" type="Boolean" mandatory="false">
+ <description>Defines if tone should be played. Tone is played before TTS.</description>
+ <description>If omitted, no tone is played.</description>
+ </param>
+ </function>
+ <function name="Alert" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="ABORTED"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="Show" messagetype="request">
+ <description>Updates the persistent display. Supported fields depend on display capabilities.</description>
+ <param name="mainField1" type="String" maxlength="500" mandatory="false">
+ <description>The text that should be displayed in a single or upper display line.</description>
+ <description>If this text is not set, the text of mainField1 stays unchanged.</description>
+ <description>If this text is empty "", the field will be cleared.</description>
+ </param>
+ <param name="mainField2" type="String" maxlength="500" mandatory="false">
+ <description>The text that should be displayed on the second dispay line.</description>
+ <description>If this text is not set, the text of mainField2 stays unchanged.</description>
+ <description>If this text is empty "", the field will be cleared.</description>
+ </param>
+ <param name="alignment" type="TextAlignment" mandatory="false">
+ <description>Specifies how mainField1 and mainField2 texts should be aligned on display.</description>
+ <description>If omitted, texts will be centered</description>
+ </param>
+ <param name="statusBar" type="String" maxlength="500" mandatory="false">
+ <description>Requires investigation regarding the nav display capabilities. Potentially lower lowerStatusBar, upperStatusBar, titleBar, etc.</description>
+ </param>
+ <param name="mediaClock" type="String" maxlength="500" mandatory="false">
+ <description>Text value for MediaClock field. Has to be properly formatted by Mobile App according to Sync capabilities.</description>
+ <description>If this text is set, any automatic media clock updates previously set with SetMediaClockTimer will be stopped.</description>
+ </param>
+ <param name="mediaTrack" type="String" maxlength="500" mandatory="false">
+ <description>The text that should be displayed in the track field.</description>
+ <description>This field is only valid for media applications on NGN type ACMs.</description>
+ <description>If this text is not set, the text of mediaTrack stays unchanged.</description>
+ <description>If this text is empty "", the field will be cleared.</description>
+ </param>
+ </function>
+ <function name="Show" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="Speak" messagetype="request">
+ <description>Speaks a text.</description>
+ <param name="ttsChunks" type="TTSChunk" minsize="1" maxsize="100" array="true">
+ <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
+ <description>The array must have at least one item</description>
+ </param>
+ </function>
+ <function name="Speak" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="ABORTED"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="SetMediaClockTimer" messagetype="request">
+ <description>Sets the initial media clock value and automatic update method.</description>
+ <param name="startTime" type="StartTime" mandatory="false">
+ <description>See StartTime</description>
+ <description>startTime must be provided for "run"</description>
+ <description>startTime will be ignored for "pause" and "resum"</description>
+ </param>
+ <param name="updateMode" type="UpdateMode">
+ <description>Enumeration to control the media clock.</description>
+ <description>In case of pause or resume, the start time value is ignored and shall be left out. For resume, the time continues with the same value as it was when paused.</description>
+ </param>
+ </function>
+ <function name="SetMediaClockTimer" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ <element name="IGNORED"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="EncodedSyncPData" messagetype="request">
+ <description>Allows encoded data in the form of SyncP packets to be sent to the SYNC module</description>
+ <param name="data" type="String" maxlength="10000" minsize="1" maxsize="100" array="true" mandatory="true">
+ <description>Contains base64 encoded string of SyncP packets.</description>
+ <todo>What is the maxlength</todo>
+ </param>
+ </function>
+ <function name="EncodedSyncPData" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="REJECTED"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="SubscribeButton" messagetype="request">
+ <description>Subscribes to built-in HMI buttons.</description>
+ <description>The application will be notified by the OnButtonEvent and OnButtonPress.</description>
+ <description>To unsubscribe the notifications, use unsubscribeButton.</description>
+ <param name="buttonName" type="ButtonName">
+ <description>Name of the button to subscribe.</description>
+ </param>
+ </function>
+ <function name="SubscribeButton" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="UNSUPPORTED_BUTTON"/>
+ <element name="IGNORED"/>
+ <element name="REJECTED"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeButton" messagetype="request">
+ <description>Unsubscribes from built-in HMI buttons.</description>
+ <param name="buttonName" type="ButtonName">
+ <description>Name of the button to unsubscribe.</description>
+ </param>
+ </function>
+ <function name="UnsubscribeButton" messagetype="response">
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="SUCCESS"/>
+ <element name="INVALID_DATA"/>
+ <element name="OUT_OF_MEMORY"/>
+ <element name="TOO_MANY_PENDING_REQUESTS"/>
+ <element name="APPLICATION_NOT_REGISTERED"/>
+ <element name="GENERIC_ERROR"/>
+ <element name="UNSUPPORTED_BUTTON"/>
+ <element name="IGNORED"/>
+ <element name="REJECTED"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <function name="GenericResponse" messagetype="response">
+ <description>Generic Response is sent, when the name of a received msg cannot be retrieved. Only used in case of an error.</description>
+ <description>Currently, only resultCode INVALID_DATA is used.</description>
+ <param name="success" type="Boolean">
+ <description>true, if successful</description>
+ <description>false, if failed</description>
+ </param>
+ <param name="resultCode" type="Result">
+ <description>See Result</description>
+ <element name="INVALID_DATA"/>
+ </param>
+ <param name="info" type="String" maxlength="1000" mandatory="false">
+ <description>Provides additional human readable info regarding the result.</description>
+ </param>
+ </function>
+ <!-- Notifications -->
+ <function name="OnHMIStatus" messagetype="notification">
+ <param name="hmiLevel" type="HMILevel">
+ <description>See HMILevel</description>
+ </param>
+ <param name="audioStreamingState" type="AudioStreamingState">
+ <description>See AudioStreamingState</description>
+ </param>
+ <param name="systemContext" type="SystemContext">
+ <description>See SystemContext</description>
+ </param>
+ </function>
+ <function name="OnAppInterfaceUnregistered" messagetype="notification">
+ <param name="reason" type="AppInterfaceUnregisteredReason">
+ <description>See AppInterfaceUnregisteredReason</description>
+ </param>
+ </function>
+ <function name="OnButtonEvent" messagetype="notification">
+ <description>Notifies application of UP/DOWN events for buttons to which the application is subscribed.</description>
+ <param name="buttonName" type="ButtonName"/>
+ <param name="buttonEventMode" type="ButtonEventMode">
+ <description>Indicates whether this is an UP or DOWN event.</description>
+ </param>
+ </function>
+ <function name="OnButtonPress" messagetype="notification">
+ <description>Notifies application of LONG/SHORT press events for buttons to which the application is subscribed.</description>
+ <param name="buttonName" type="ButtonName"/>
+ <param name="buttonPressMode" type="ButtonPressMode">
+ <description>Indicates whether this is a LONG or SHORT button press event.</description>
+ </param>
+ </function>
+ <function name="OnCommand" messagetype="notification">
+ <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000">
+ <description>Command ID, which is related to a specific menu entry.</description>
+ </param>
+ <param name="triggerSource" type="TriggerSource">
+ <description>See TriggerSource</description>
+ </param>
+ </function>
+ <function name="OnEncodedSyncPData" messagetype="notification">
+ <description>Callback including encoded data of any SyncP packets that SYNC needs to send back to the mobile device.</description>
+ <param name="data" type="String" maxlength="10000" minsize="1" maxsize="100" mandatory="true" array="true">
+ <description>Contains base64 encoded string of SyncP packets.</description>
+ </param>
+ </function>
+ <function name="OnTBTClientState" messagetype="notification">
+ <description>Provides applications with notifications specific to the current TBT client status on the module</description>
+ <param name="state" type="TBTState">
+ <description>Current State of TBT client</description>
+ </param>
+ </function>
+ <function name="OnDriverDistraction" messagetype="notification">
+ <description>Provides driver distraction state to mobile applications</description>
+ <param name="state" type="DriverDistractionState">
+ <description>Current State of Driver Distraction</description>
+ </param>
+ </function>
+
+
+</interface>
diff --git a/SDL_Core/src/components/JSONHandler/CMakeLists.txt b/SDL_Core/src/components/JSONHandler/CMakeLists.txt
deleted file mode 100644
index 4dd5bb15d..000000000
--- a/SDL_Core/src/components/JSONHandler/CMakeLists.txt
+++ /dev/null
@@ -1,672 +0,0 @@
-include_directories (
- ./include/
- ../TransportManager/include/
- ../ProtocolHandler/include/
- ../Utils/include/
- ../../thirdPartyLibs/jsoncpp/include/
- ../../thirdPartyLibs/MessageBroker/include
- ../../thirdPartyLibs/logger/include
- ../../thirdPartyLibs/logger/log4cplus-1.1.0/include
- ${CMAKE_BINARY_DIR}/src/thirdPartyLibs/logger/log4cplus-1.1.0/include
-)
-
-set (GENERATED_SOURCES1
-
-)
-set (GENERATED_SOURCES2
-./src/SDLRPCObjectsImpl/V1/Result.cpp
-./src/SDLRPCObjectsImpl/V1/AddCommand_request.cpp
-./src/SDLRPCObjectsImpl/V1/AddCommand_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/AddCommand_response.cpp
-./src/SDLRPCObjectsImpl/V1/AddCommand_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/AddSubMenu_request.cpp
-./src/SDLRPCObjectsImpl/V1/AddSubMenu_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/AddSubMenu_response.cpp
-./src/SDLRPCObjectsImpl/V1/AddSubMenu_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/Alert_request.cpp
-./src/SDLRPCObjectsImpl/V1/Alert_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/Alert_response.cpp
-./src/SDLRPCObjectsImpl/V1/Alert_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/ButtonCapabilities.cpp
-./src/SDLRPCObjectsImpl/V1/ButtonCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/Choice.cpp
-./src/SDLRPCObjectsImpl/V1/ChoiceMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_request.cpp
-./src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_response.cpp
-./src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteCommand_request.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteCommand_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteCommand_response.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteCommand_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_request.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_response.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteSubMenu_request.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteSubMenu_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteSubMenu_response.cpp
-./src/SDLRPCObjectsImpl/V1/DeleteSubMenu_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/EncodedSyncPData_request.cpp
-./src/SDLRPCObjectsImpl/V1/EncodedSyncPData_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/EncodedSyncPData_response.cpp
-./src/SDLRPCObjectsImpl/V1/EncodedSyncPData_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/HMIApplication.cpp
-./src/SDLRPCObjectsImpl/V2/HMIApplicationMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/OnEncodedSyncPData.cpp
-./src/SDLRPCObjectsImpl/V1/OnEncodedSyncPDataMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/OnHMIStatus.cpp
-./src/SDLRPCObjectsImpl/V1/OnHMIStatusMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/PerformInteraction_request.cpp
-./src/SDLRPCObjectsImpl/V1/PerformInteraction_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/PerformInteraction_response.cpp
-./src/SDLRPCObjectsImpl/V1/PerformInteraction_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/RegisterAppInterface_request.cpp
-./src/SDLRPCObjectsImpl/V1/RegisterAppInterface_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/RegisterAppInterface_response.cpp
-./src/SDLRPCObjectsImpl/V1/RegisterAppInterface_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_request.cpp
-./src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_response.cpp
-./src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/ResultMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/SetGlobalProperties_request.cpp
-./src/SDLRPCObjectsImpl/V1/SetGlobalProperties_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/SetGlobalProperties_response.cpp
-./src/SDLRPCObjectsImpl/V1/SetGlobalProperties_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_request.cpp
-./src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_response.cpp
-./src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/Show_request.cpp
-./src/SDLRPCObjectsImpl/V1/Show_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/Show_response.cpp
-./src/SDLRPCObjectsImpl/V1/Show_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/Speak_request.cpp
-./src/SDLRPCObjectsImpl/V1/Speak_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/Speak_response.cpp
-./src/SDLRPCObjectsImpl/V1/Speak_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/StartTime.cpp
-./src/SDLRPCObjectsImpl/V1/StartTimeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/SubscribeButton_request.cpp
-./src/SDLRPCObjectsImpl/V1/SubscribeButton_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/SubscribeButton_response.cpp
-./src/SDLRPCObjectsImpl/V1/SubscribeButton_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/SyncMsgVersion.cpp
-./src/SDLRPCObjectsImpl/V1/SyncMsgVersionMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/TextField.cpp
-./src/SDLRPCObjectsImpl/V1/TextFieldMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/TTSChunk.cpp
-./src/SDLRPCObjectsImpl/V1/TTSChunkMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_request.cpp
-./src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_response.cpp
-./src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/UnsubscribeButton_request.cpp
-./src/SDLRPCObjectsImpl/V1/UnsubscribeButton_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/UnsubscribeButton_response.cpp
-./src/SDLRPCObjectsImpl/V1/UnsubscribeButton_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.cpp
-)
-set (GENERATED_SOURCES3
-)
-set (GENERATED_SOURCES6
-
-
-)
-set (GENERATED_SOURCES4
-./src/SDLRPCObjectsImpl/V2/Result.cpp
-./src/SDLRPCObjectsImpl/V2/AddCommand_request.cpp
-./src/SDLRPCObjectsImpl/V2/AddCommand_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/AddCommand_response.cpp
-./src/SDLRPCObjectsImpl/V2/AddCommand_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/AddSubMenu_request.cpp
-./src/SDLRPCObjectsImpl/V2/AddSubMenu_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/AddSubMenu_response.cpp
-./src/SDLRPCObjectsImpl/V2/AddSubMenu_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/AlertManeuver_request.cpp
-./src/SDLRPCObjectsImpl/V2/AlertManeuver_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/AlertManeuver_response.cpp
-./src/SDLRPCObjectsImpl/V2/AlertManeuver_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Alert_request.cpp
-./src/SDLRPCObjectsImpl/V2/Alert_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Alert_response.cpp
-./src/SDLRPCObjectsImpl/V2/Alert_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ButtonCapabilities.cpp
-./src/SDLRPCObjectsImpl/V2/ButtonCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ChangeRegistration_request.cpp
-./src/SDLRPCObjectsImpl/V2/ChangeRegistration_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ChangeRegistration_response.cpp
-./src/SDLRPCObjectsImpl/V2/ChangeRegistration_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Choice.cpp
-./src/SDLRPCObjectsImpl/V2/ChoiceMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_request.cpp
-./src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_response.cpp
-./src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteCommand_request.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteCommand_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteCommand_response.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteCommand_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteFile_request.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteFile_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteFile_response.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteFile_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_request.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_response.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteSubMenu_request.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteSubMenu_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteSubMenu_response.cpp
-./src/SDLRPCObjectsImpl/V2/DeleteSubMenu_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DialNumber_request.cpp
-./src/SDLRPCObjectsImpl/V2/DialNumber_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DialNumber_response.cpp
-./src/SDLRPCObjectsImpl/V2/DialNumber_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DimensionMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DTC.cpp
-./src/SDLRPCObjectsImpl/V2/DTCMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/EncodedSyncPData_request.cpp
-./src/SDLRPCObjectsImpl/V2/EncodedSyncPData_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/EncodedSyncPData_response.cpp
-./src/SDLRPCObjectsImpl/V2/EncodedSyncPData_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/EndAudioPassThru_request.cpp
-./src/SDLRPCObjectsImpl/V2/EndAudioPassThru_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/EndAudioPassThru_response.cpp
-./src/SDLRPCObjectsImpl/V2/EndAudioPassThru_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/GetDTCs_request.cpp
-./src/SDLRPCObjectsImpl/V2/GetDTCs_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/GetDTCs_response.cpp
-./src/SDLRPCObjectsImpl/V2/GetDTCs_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/GetVehicleData_request.cpp
-./src/SDLRPCObjectsImpl/V2/GetVehicleData_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/GetVehicleData_response.cpp
-./src/SDLRPCObjectsImpl/V2/GetVehicleData_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/GPSData.cpp
-./src/SDLRPCObjectsImpl/V2/GPSDataMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/HMIPermissions.cpp
-./src/SDLRPCObjectsImpl/V2/HMIPermissionsMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Image.cpp
-./src/SDLRPCObjectsImpl/V2/ImageMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ListFiles_request.cpp
-./src/SDLRPCObjectsImpl/V2/ListFiles_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ListFiles_response.cpp
-./src/SDLRPCObjectsImpl/V2/ListFiles_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/OnEncodedSyncPData.cpp
-./src/SDLRPCObjectsImpl/V2/OnEncodedSyncPDataMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/OnHMIStatus.cpp
-./src/SDLRPCObjectsImpl/V2/OnHMIStatusMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/OnPermissionsChange.cpp
-./src/SDLRPCObjectsImpl/V2/OnPermissionsChangeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ParameterPermissions.cpp
-./src/SDLRPCObjectsImpl/V2/ParameterPermissionsMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_request.cpp
-./src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_response.cpp
-./src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/PerformInteraction_request.cpp
-./src/SDLRPCObjectsImpl/V2/PerformInteraction_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/PerformInteraction_response.cpp
-./src/SDLRPCObjectsImpl/V2/PerformInteraction_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/PermissionItem.cpp
-./src/SDLRPCObjectsImpl/V2/PermissionItemMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/PresetBankCapabilities.cpp
-./src/SDLRPCObjectsImpl/V2/PresetBankCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/PutFile_request.cpp
-./src/SDLRPCObjectsImpl/V2/PutFile_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/PutFile_response.cpp
-./src/SDLRPCObjectsImpl/V2/PutFile_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ReadDID_request.cpp
-./src/SDLRPCObjectsImpl/V2/ReadDID_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ReadDID_response.cpp
-./src/SDLRPCObjectsImpl/V2/ReadDID_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/RegisterAppInterface_request.cpp
-./src/SDLRPCObjectsImpl/V2/RegisterAppInterface_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/RegisterAppInterface_response.cpp
-./src/SDLRPCObjectsImpl/V2/RegisterAppInterface_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_request.cpp
-./src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_response.cpp
-./src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ResultMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ScrollableMessage_request.cpp
-./src/SDLRPCObjectsImpl/V2/ScrollableMessage_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ScrollableMessage_response.cpp
-./src/SDLRPCObjectsImpl/V2/ScrollableMessage_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SetAppIcon_request.cpp
-./src/SDLRPCObjectsImpl/V2/SetAppIcon_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SetAppIcon_response.cpp
-./src/SDLRPCObjectsImpl/V2/SetAppIcon_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SetDisplayLayout_request.cpp
-./src/SDLRPCObjectsImpl/V2/SetDisplayLayout_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SetDisplayLayout_response.cpp
-./src/SDLRPCObjectsImpl/V2/SetDisplayLayout_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SetGlobalProperties_request.cpp
-./src/SDLRPCObjectsImpl/V2/SetGlobalProperties_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SetGlobalProperties_response.cpp
-./src/SDLRPCObjectsImpl/V2/SetGlobalProperties_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_request.cpp
-./src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_response.cpp
-./src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ShowConstantTBT_request.cpp
-./src/SDLRPCObjectsImpl/V2/ShowConstantTBT_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/ShowConstantTBT_response.cpp
-./src/SDLRPCObjectsImpl/V2/ShowConstantTBT_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Show_request.cpp
-./src/SDLRPCObjectsImpl/V2/Show_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Show_response.cpp
-./src/SDLRPCObjectsImpl/V2/Show_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SingleTireStatus.cpp
-./src/SDLRPCObjectsImpl/V2/SingleTireStatusMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Slider_request.cpp
-./src/SDLRPCObjectsImpl/V2/Slider_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Slider_response.cpp
-./src/SDLRPCObjectsImpl/V2/Slider_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SoftButtonCapabilities.cpp
-./src/SDLRPCObjectsImpl/V2/SoftButtonCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SoftButton.cpp
-./src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Speak_request.cpp
-./src/SDLRPCObjectsImpl/V2/Speak_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Speak_response.cpp
-./src/SDLRPCObjectsImpl/V2/Speak_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/StartTime.cpp
-./src/SDLRPCObjectsImpl/V2/StartTimeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SubscribeButton_request.cpp
-./src/SDLRPCObjectsImpl/V2/SubscribeButton_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SubscribeButton_response.cpp
-./src/SDLRPCObjectsImpl/V2/SubscribeButton_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_request.cpp
-./src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_response.cpp
-./src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SyncMsgVersion.cpp
-./src/SDLRPCObjectsImpl/V2/SyncMsgVersionMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/TextField.cpp
-./src/SDLRPCObjectsImpl/V2/TextFieldMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/TireStatus.cpp
-./src/SDLRPCObjectsImpl/V2/TireStatusMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/TTSChunk.cpp
-./src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Turn.cpp
-./src/SDLRPCObjectsImpl/V2/TurnMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_request.cpp
-./src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_response.cpp
-./src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/UnsubscribeButton_request.cpp
-./src/SDLRPCObjectsImpl/V2/UnsubscribeButton_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/UnsubscribeButton_response.cpp
-./src/SDLRPCObjectsImpl/V2/UnsubscribeButton_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_request.cpp
-./src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_response.cpp
-./src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/UpdateTurnList_request.cpp
-./src/SDLRPCObjectsImpl/V2/UpdateTurnList_requestMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/UpdateTurnList_response.cpp
-./src/SDLRPCObjectsImpl/V2/UpdateTurnList_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/VehicleDataResult.cpp
-./src/SDLRPCObjectsImpl/V2/VehicleDataResultMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/VehicleType.cpp
-./src/SDLRPCObjectsImpl/V2/VehicleTypeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/VrHelpItem.cpp
-./src/SDLRPCObjectsImpl/V2/VrHelpItemMarshaller.cpp
-)
-set (GENERATED_SOURCES5
-)
-
-set (GENERATED_SOURCES7
-)
-
-set (GENERATED_RPC_SOURCES
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenu.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/Alert.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistration.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguages.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguages.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguages.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSet.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommand.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSet.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenu.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilities.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguage.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommand.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommandMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosen.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosenMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistraction.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistractionMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChange.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChangeMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReady.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReadyMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContext.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContextMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteraction.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalProperties.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessage.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIcon.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayout.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalProperties.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimer.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/Show.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/Slider.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistration.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThru.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThru.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilities.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguage.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChange.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChangeMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/Speak.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateApp.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivated.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppList.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceList.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegistered.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegisteredMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregistered.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregisteredMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdatedMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendData.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilities.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEvent.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEventMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPress.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPressMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommand.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistration.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommand.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilities.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguage.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommand.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommandMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChange.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChangeMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCs.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleData.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleType.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleData.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleDataMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDID.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumber.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuver.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientState.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientStateMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBT.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponseMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnList.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponseMarshaller.cpp
-)
-
-
-set (SOURCES
- ./src/JSONHandler.cpp
- ./src/JSONRPC2Handler.cpp
- ./src/SDLRPCMessage.cpp
- ./src/SDLRPCNotification.cpp
- ./src/SDLRPCRequest.cpp
- ./src/SDLRPCResponse.cpp
- ./src/RPC2Command.cpp
- ./src/RPC2Notification.cpp
- ./src/RPC2Request.cpp
- ./src/RPC2Response.cpp
- ./src/RPC2Error.cpp
- ./src/RPC2ErrorMarshaller.cpp
-)
-
-add_library("JSONHandler" ${SOURCES}
- ${GENERATED_SOURCES2}
- ${GENERATED_SOURCES4}
- ${GENERATED_RPC_SOURCES}
-./src/SDLRPCObjectsImpl/V2/OnDriverDistraction.cpp
-./src/SDLRPCObjectsImpl/V2/OnDriverDistractionMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/OnCommand.cpp
-./src/SDLRPCObjectsImpl/V2/OnCommandMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/OnLanguageChange.cpp
-./src/SDLRPCObjectsImpl/V2/OnLanguageChangeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/GenericResponse_response.cpp
-./src/SDLRPCObjectsImpl/V2/GenericResponse_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/DisplayCapabilities.cpp
-./src/SDLRPCObjectsImpl/V2/DisplayCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/LanguageMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/LanguageMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregistered.cpp
-./src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregisteredMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/MenuParams.cpp
-./src/SDLRPCObjectsImpl/V2/MenuParamsMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/OnButtonEvent.cpp
-./src/SDLRPCObjectsImpl/V2/OnButtonEventMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/OnButtonPress.cpp
-./src/SDLRPCObjectsImpl/V2/OnButtonPressMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/OnAudioPassThru.cpp
-./src/SDLRPCObjectsImpl/V2/OnAudioPassThruMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/OnVehicleData.cpp
-./src/SDLRPCObjectsImpl/V2/OnVehicleDataMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregistered.cpp
-./src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregisteredMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/MenuParams.cpp
-./src/SDLRPCObjectsImpl/V1/MenuParamsMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/GenericResponse_response.cpp
-./src/SDLRPCObjectsImpl/V1/GenericResponse_responseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/OnButtonEvent.cpp
-./src/SDLRPCObjectsImpl/V1/OnButtonEventMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/OnButtonPress.cpp
-./src/SDLRPCObjectsImpl/V1/OnButtonPressMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/OnCommand.cpp
-./src/SDLRPCObjectsImpl/V1/OnCommandMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/OnDriverDistraction.cpp
-./src/SDLRPCObjectsImpl/V1/OnDriverDistractionMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/DisplayCapabilities.cpp
-./src/SDLRPCObjectsImpl/V1/DisplayCapabilitiesMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommand.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/OnTBTClientState.cpp
-./src/SDLRPCObjectsImpl/V1/OnTBTClientStateMarshaller.cpp
-./src/SDLRPCObjectsImpl/V2/OnTBTClientState.cpp
-./src/SDLRPCObjectsImpl/V2/OnTBTClientStateMarshaller.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponse.cpp
-./src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponseMarshaller.cpp
-./src/SDLRPCObjectsImpl/V1/Marshaller.cpp
-./src/SDLRPCObjectsImpl/V2/Marshaller.cpp
-./src/RPC2ObjectsImpl/Marshaller.cpp)
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/IJSONRPC2Handler.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/IJSONRPC2Handler.h
deleted file mode 100644
index f231edda9..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/IJSONRPC2Handler.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
-* \file IJSONRPC2Handler.h
-* \brief IJSONRPC2Handler class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef IJSONRPC2HANDLER_INCLUDE
-#define IJSONRPC2HANDLER_INCLUDE
-
-#include "JSONHandler/IRPC2CommandsObserver.h"
-#include "JSONHandler/RPC2Notification.h"
-#include "JSONHandler/RPC2Response.h"
-#include "JSONHandler/RPC2Request.h"
-/**
- * \class IJSONRPC2Handler
- * \brief Interface for making a bridge between Application Manager
- * and RPCBus (HMI).
-*/
-class IJSONRPC2Handler
-{
-public:
- /**
- * \brief Destructor
- */
- virtual ~IJSONRPC2Handler() {}
-
- /**
- * \brief Notifies RPCBus of the will to receive specific notifications.
- */
- virtual void subscribeToNotifications( ) = 0;
-
- /**
- * \brief Sets pointer to instance of the class implementing RPC handling (App Manager).
- * \param commandsObserver Pointer to implementation of IRPC2CommandsObserver.
- * \sa IRPC2CommandsObserver.
- */
- virtual void setRPC2CommandsObserver( IRPC2CommandsObserver * commandsObserver ) = 0;
-
- /**
- * \brief Sends notification to RPCBus.
- * \param command Json RPC2 notification to be sent to RPCBus.
- */
- virtual void sendNotification( const NsRPC2Communication::RPC2Notification * command ) = 0;
-
- /**
- * \brief Sends response to RPCBus.
- * \param command Json RPC2 response to be sent to RPCBus.
- */
- virtual void sendResponse( const NsRPC2Communication::RPC2Response * command ) = 0;
-
- /**
- * \brief Sends request to RPCBus.
- * \param command Json RPC2 request to be sent to RPCBus.
- */
- virtual void sendRequest( const NsRPC2Communication::RPC2Request * command ) = 0;
-};
-
-#endif // IJSONRPC2HANDLER_INCLUDE
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/IJsonHandler.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/IJsonHandler.h
deleted file mode 100644
index 8f249db32..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/IJsonHandler.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
-* \file IJsonHandler.h
-* \brief IJsonHandler class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef IJSONHANDLER_INCLUDE
-#define IJSONHANDLER_INCLUDE
-
-#include "ProtocolHandler/ProtocolHandler.h"
-
-/**
- * \class IJsonHandler
- * \brief Interface for making a bridge between
- * ProtocolHandler and Application Manager.
-*/
-class IJsonHandler
-{
-public:
- /**
- * \brief Destructor
- */
- virtual ~IJsonHandler() {}
- /**
- * \brief Sets pointer for Protocol layer handler for message exchange.
- * \param protocolHandler Pointer to Protocol layer handler.
- */
- virtual void setProtocolHandler( NsProtocolHandler::ProtocolHandler * protocolHandler ) = 0;
-
- /**
- * \brief Sets pointer to instance of the class implementing RPC handling (Application Manager).
- * \param messagesObserver Pointer to object of the class implementing IRPCMessagesObserver
- * \sa IRPCMessagesObserver
- */
- virtual void setRPCMessagesObserver( IRPCMessagesObserver * messagesObserver ) = 0;
-
- /**
- * \brief Method for sending message to Mobile Application.
- * \param message Pointer to base class of SmartDeviceLink Json object
- * to be serialized to Json message and sent to mobile App.
- * \param sessionId ID of the session the message was received within.
- */
- virtual void sendRPCMessage( const NsSmartDeviceLinkRPC::SDLRPCMessage * message, int connectionKey ) = 0;
-
-};
-
-#endif // IJSONHANDLER_INCLUDE
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/IRPC2CommandsObserver.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/IRPC2CommandsObserver.h
deleted file mode 100644
index 304b8c28a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/IRPC2CommandsObserver.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
-* \file IRPC2CommandsObserver.hpp
-* \brief Abstract class IRPC2CommandsObserver header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef IRPC2COMMANDS_OBSERVER_CLASS
-#define IRPC2COMMANDS_OBSERVER_CLASS
-
-#include "JSONHandler/RPC2Command.h"
-
-/**
- * \class IRPC2CommandsObserver
- * \brief Abstract class for communication with RPC2Bus.
- * Descendant class has to implement onCommandReceivedCallback
- * \sa onCommandReceivedCallback
-*/
-class IRPC2CommandsObserver
-{
-public:
- /**
- * \brief Callback function which is called by JSONRPC2Handler
- * when new RPC2Bus Json message is received from HMI.
- * \param command RPC2Bus Json message
- */
- virtual void onCommandReceivedCallback( NsRPC2Communication::RPC2Command * command ) = 0;
-
-protected:
- /**
- * \brief Destructor
- */
- virtual ~IRPC2CommandsObserver(){};
-
-};
-
-#endif // IRPC2COMMANDS_OBSERVER_CLASS
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/IRPCMessagesObserver.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/IRPCMessagesObserver.h
deleted file mode 100644
index 54dc7f728..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/IRPCMessagesObserver.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
-* \file IRPCMessagesObserver.hpp
-* \brief Abstract class IRPCMessagesObserver header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef IRPCMESSAGES_OBSERVER_CLASS
-#define IRPCMESSAGES_OBSERVER_CLASS
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-/**
- * \class IRPCMessagesObserver
- * \brief Abstract class for communication with Protocol layer.
- * Descendant class has to implement onMessageReceivedCallback
- * \sa onMessageReceivedCallback
-*/
-class IRPCMessagesObserver
-{
-public:
- /**
- * \brief Callback function which is called by JSONHandler
- * when new SmartDeviceLink Json message is received from Mobile Application.
- * \param message SmartDeviceLink Json message
- */
- virtual void onMessageReceivedCallback( NsSmartDeviceLinkRPC::SDLRPCMessage * message, int connectionKey ) = 0;
-
-protected:
- /**
- * \brief Destructor
- */
- virtual ~IRPCMessagesObserver() {};
-
-};
-
-#endif // IRPCMESSAGES_OBSERVER_CLASS
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/JSONHandler.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/JSONHandler.h
deleted file mode 100644
index cd7c71a1c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/JSONHandler.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/**
-* \file JSONHandler.hpp
-* \brief JSONHandler class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef JSONHANDLER_CLASS
-#define JSONHANDLER_CLASS
-
-#include "Logger.hpp"
-#include "JSONHandler/MessageQueue.h"
-#include "JSONHandler/SDLRPCMessage.h"
-#include "JSONHandler/IRPCMessagesObserver.h"
-#include "JSONHandler/IJsonHandler.h"
-#include "ProtocolHandler/SmartDeviceLinkRawMessage.h"
-#include "ProtocolHandler/IProtocolObserver.h"
-#include "ProtocolHandler/ProtocolHandler.h"
-
-const unsigned char RPC_REQUEST = 0x0;
-const unsigned char RPC_RESPONSE = 0x1;
-const unsigned char RPC_NOTIFICATION = 0x2;
-const unsigned char RPC_UNKNOWN = 0xF;
-
-/**
- * \class JSONHandler
- * \brief Class for handling message exchange between protocol layer and Application Manager.
- * Receives SmartDeviceLink Json message from Protocol layer, creates corresponding object and sends it to Application Manager.
- * Receives SmartDeviceLink message object from Application manager, serializes it into Json string and sends to Protocol Layer.
-*/
-class JSONHandler : public IJsonHandler, public NsProtocolHandler::IProtocolObserver
-{
-public:
- /**
- * \brief Constructor
- * \param protocolHandler Pointer to Protocol Layer handler for message exchange.
- */
- JSONHandler( NsProtocolHandler::ProtocolHandler * protocolHandler = 0 );
-
- /**
- * \brief Destructor
- */
- virtual ~JSONHandler();
-
- /*Methods from IProtocolObserver*/
- /**
- * \brief Sets pointer for Protocol layer handler for message exchange.
- * \param protocolHandler Pointer to Protocol layer handler.
- */
- void setProtocolHandler( NsProtocolHandler::ProtocolHandler * protocolHandler );
-
- /**
- * \brief Callback for Protocol layer handler to notify of message received.
- * \param message Object containing received data, size of it and connection key.
- */
- void onDataReceivedCallback( const NsProtocolHandler::SmartDeviceLinkRawMessage * message );
- /*end of methods from IProtocolObserver*/
-
- /*Methods for IRPCMessagesObserver*/
- /**
- * \brief Sets pointer to instance of the class implementing RPC handling (Application Manager).
- * \param messagesObserver Pointer to object of the class implementing IRPCMessagesObserver
- * \sa IRPCMessagesObserver
- */
- void setRPCMessagesObserver( IRPCMessagesObserver * messagesObserver );
-
- /**
- * \brief Method for sending message to Mobile Application.
- * \param message Pointer to base class of SmartDeviceLink Json object
- * to be serialized to Json message and sent to mobile App.
- * \param sessionId ID of the session the message was received within.
- */
- void sendRPCMessage( const NsSmartDeviceLinkRPC::SDLRPCMessage * message, int connectionKey );
- /*End of methods for IRPCMessagesObserver*/
-
-protected:
- /**
- * \brief Static method for handling messages from Mobile application.
- * \param params Pointer to JSONHandler instance.
- */
- static void * waitForIncomingMessages( void * params );
-
- /**
- * \brief Static method for handling messages to Mobile application.
- * \param params Pointer to JSONHandler instance.
- */
- static void * waitForOutgoingMessages( void * params );
-
- /**
- * \brief Helper method for clearing Json message from empty spaces
- * in order for it to be parsed correctly by Json library.
- * \param input Json string.
- * \return Json string cleared from empty spaces.
- */
- std::string clearEmptySpaces( const std::string & input );
-
- NsSmartDeviceLinkRPC::SDLRPCMessage * handleIncomingMessageProtocolV1(
- const NsProtocolHandler::SmartDeviceLinkRawMessage * message );
-
- NsSmartDeviceLinkRPC::SDLRPCMessage * handleIncomingMessageProtocolV2(
- const NsProtocolHandler::SmartDeviceLinkRawMessage * message );
-
- NsProtocolHandler::SmartDeviceLinkRawMessage * handleOutgoingMessageProtocolV1(
- int connectionKey, const NsSmartDeviceLinkRPC::SDLRPCMessage * message );
-
- NsProtocolHandler::SmartDeviceLinkRawMessage * handleOutgoingMessageProtocolV2(
- int connectionKey, const NsSmartDeviceLinkRPC::SDLRPCMessage * message );
-
-private:
- /**
- *\brief For logging.
- */
- static log4cplus::Logger mLogger;
-
- /**
- *\brief Points on instance of class implementing RPC handling (Application Manager).
- */
- IRPCMessagesObserver * mMessagesObserver;
-
- /* Data for IProtocolObserver */
- /**
- *\brief Points on instance of Protocol layer handler for message exchange.
- */
- NsProtocolHandler::ProtocolHandler * mProtocolHandler;
-
- /* End IProtocolObserver data */
-
- /**
- *\brief Queue of messages from Mobile Application.
- *\sa MessageQueue
- */
- MessageQueue<const NsProtocolHandler::SmartDeviceLinkRawMessage*> mIncomingMessages;
-
- /**
- *\brief Thread for handling messages from Mobile Application.
- */
- pthread_t mWaitForIncomingMessagesThread;
-
- /**
- *\brief Queue of messages to Mobile Application.
- *\sa MessageQueue
- */
- MessageQueue<std::pair<int,const NsSmartDeviceLinkRPC::SDLRPCMessage*>> mOutgoingMessages;
-
- /**
- *\brief Thread for handling messages to Mobile Application.
- */
- pthread_t mWaitForOutgoingMessagesThread;
-
-};
-
-#endif // JSONHANDLER_CLASS
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/JSONRPC2Handler.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/JSONRPC2Handler.h
deleted file mode 100644
index 6c452430d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/JSONRPC2Handler.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/**
-* \file JSONRPC2Handler.hpp
-* \brief JSONRPC2Handler class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef JSONRPC2HANDLER_CLASS
-#define JSONRPC2HANDLER_CLASS
-
-
-#include <json/value.h>
-#include "mb_controller.hpp"
-#include "Logger.hpp"
-#include "JSONHandler/IJSONRPC2Handler.h"
-#include "JSONHandler/IRPC2CommandsObserver.h"
-#include "JSONHandler/RPC2Command.h"
-#include "JSONHandler/RPC2Notification.h"
-#include "JSONHandler/RPC2Response.h"
-#include "JSONHandler/RPC2Request.h"
-#include "JSONHandler/MessageQueue.h"
-
-/**
- * \class JSONRPC2Handler
- * \brief Class for handling message exchange between RPCBus and Application Manager.
- * Receives RPC2 Json message from RPCBus (HMI), creates corresponding object and sends it to Application Manager.
- * Receives RPC2 message object from Application manager, serializes it into Json object and sends to RPCBus (HMI).
-*/
-class JSONRPC2Handler : public IJSONRPC2Handler, public NsMessageBroker::CMessageBrokerController
-{
-public:
- /**
- * \brief Constructor
- * \param address Address of Message Broker (RPCBus) server.
- * \param port Port of Message Broker (RPCBus) server.
- */
- JSONRPC2Handler( const std::string& address, uint16_t port );
-
- /**
- * \brief Destructor
- */
- virtual ~JSONRPC2Handler();
-
- /*Methods from CMessageBrokerController*/
- /**
- * \brief Called on receiving response message from RPCBus.
- * \param method Name of corresponding request method that was sent previously to RPCBus.
- * \param root Received Json object.
- */
- void processResponse(std::string method, Json::Value& root);
-
- /**
- * \brief Called on receiving request message from RPCBus.
- * \param root Received Json object.
- */
- void processRequest(Json::Value& root);
-
- /**
- * \brief Called on receiving notification message from RPCBus.
- * \param root Received Json object.
- */
- void processNotification(Json::Value& root);
-
- /**
- * \brief Notifies RPCBus of the will to receive specific notifications.
- */
- void subscribeToNotifications( );
- /*End of ethods from CMessageBrokerController*/
-
- /*Methods for IRPC2CommandsObserver*/
- /**
- * \brief Sets pointer to instance of the class implementing RPC handling (App Manager).
- * \param commandsObserver Pointer to implementation of IRPC2CommandsObserver.
- * \sa IRPC2CommandsObserver.
- */
- void setRPC2CommandsObserver( IRPC2CommandsObserver * commandsObserver );
-
- /**
- * \brief Sends notification to RPCBus.
- * \param command Json RPC2 notification to be sent to RPCBus.
- */
- void sendNotification( const NsRPC2Communication::RPC2Notification * command );
-
- /**
- * \brief Sends response to RPCBus.
- * \param command Json RPC2 response to be sent to RPCBus.
- */
- void sendResponse( const NsRPC2Communication::RPC2Response * command );
-
- /**
- * \brief Sends request to RPCBus.
- * \param command Json RPC2 request to be sent to RPCBus.
- */
- void sendRequest( const NsRPC2Communication::RPC2Request * command );
- /*End of methods for IRPC2CommandsObserver*/
-
-private:
- /**
- * \brief Static method for handling requests & notifications from RPCBus.
- * \param params Pointer to JSONRPC2Handler instance.
- */
- static void * waitForCommandsFromHMI( void * params );
-
- /**
- * \brief Static method for handling responses from RPCBus.
- * \param params Pointer to JSONRPC2Handler instance.
- */
- static void * waitForResponsesFromHMI( void * params );
-
- /**
- * \brief Static method for handling responses to RPCBus.
- * \param params Pointer to JSONRPC2Handler instance.
- */
- static void * waitForResponsesToHMI( void * params );
-
- /**
- * \brief Static method for handling requests to RPCBus.
- * \param params Pointer to JSONRPC2Handler instance.
- */
- static void * waitForRequestsToHMI( void * params );
-
- /**
- * \brief Static method for handling notifications to RPCBus.
- * \param params Pointer to JSONRPC2Handler instance.
- */
- static void * waitForNotificationsToHMI( void * params );
-
-private:
- /**
- *\brief For logging.
- */
- static log4cplus::Logger mLogger;
-
- /**
- * \struct ResponseContainer
- * \brief Used for associating request method name to corresponding response.
- * TODO - not needed with latest version of code generator?
- */
- struct ResponseContainer
- {
- /**
- *\brief Request method name.
- */
- std::string methodName;
-
- /**
- *\brief Response.
- */
- Json::Value response;
- };
-
- /**
- *\brief Points on instance of class implementing RPC handling (Application Manager).
- */
- IRPC2CommandsObserver * mCommandsObserver;
-
- /**
- *\brief Queue of requests & notifications from RPCBus.
- *\sa MessageQueue
- */
- MessageQueue<Json::Value> mCommandsFromHMI;
-
- /**
- *\brief Thread for handling requests & notifications from HMI.
- */
- pthread_t mWaitForCommandsFromHMI;
-
- /**
- *\brief Thread for handling responses from HMI.
- */
- pthread_t mWaitForResponsesFromHMI;
-
- /**
- *\brief Queue of responses from HMI.
- * \sa MessageQueue
- */
- MessageQueue<ResponseContainer> mResponsesFromHMI;
-
- /**
- *\brief Queue of requests to HMI.
- * \sa MessageQueue
- */
- MessageQueue<const NsRPC2Communication::RPC2Request*> mRequestsToHMI;
-
- /**
- *\brief Queue of responses to HMI.
- * \sa MessageQueue
- */
- MessageQueue<const NsRPC2Communication::RPC2Response*> mResponsesToHMI;
-
- /**
- *\brief Queue of notifications to HMI.
- * \sa MessageQueue
- */
- MessageQueue<const NsRPC2Communication::RPC2Notification*> mNotificationsToHMI;
-
- /**
- *\brief Thread for handling requests to HMI.
- */
- pthread_t mWaitForRequestsToHMI;
-
- /**
- *\brief Thread for handling responses to HMI.
- */
- pthread_t mWaitForResponsesToHMI;
-
- /**
- *\brief Thread for handling notifications to HMI.
- */
- pthread_t mWaitForNotificationsToHMI;
-};
-
-#endif // JSONRPC2HANDLER_CLASS
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/MessageQueue.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/MessageQueue.h
deleted file mode 100644
index eeffc1097..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/MessageQueue.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/**
-* \file MessageQueue.hpp
-* \brief Template MessageQueue class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef MESSAGE_QUEUE_CLASS
-#define MESSAGE_QUEUE_CLASS
-
-
-#include <pthread.h>
-#include <queue>
-
-/**
- * \class MessageQueue
- * \brief Wrapper for multithreading queue.
-*/
-template <typename T> class MessageQueue
-{
-public:
- /**
- * \brief Default constructor
- */
- MessageQueue();
-
- /**
- * \brief Constructor
- * \param queue Existing queue.
- */
- explicit MessageQueue( std::queue<T> queue );
-
- /**
- * \brief Destructor
- */
- ~MessageQueue();
-
- /**
- * \brief Returns size of the queue.
- * \return Size of the queue.
- */
- int size() const;
-
- /**
- * \brief If queue is empty.
- * \return Is queue empty.
- */
- bool empty() const;
-
- /**
- * \brief Adds element to the queue.
- * \param element Element to be added to the queue.n
- */
- void push( const T & element );
-
- /**
- * \brief Removes element from the queue and returns it.
- * \return To element of the queue.
- */
- T pop();
-
- /**
- * \brief Conditional wait.
- */
- void wait();
-
-private:
- /**
- *\brief Queue
- */
- std::queue<T> mQueue;
- /**
- *\brief Mutex for queue locking.
- */
- mutable pthread_mutex_t mMutex;
- /**
- *\brief Condition for waiting.
- */
- pthread_cond_t mCond;
- /**
- *\brief Bool condition for waiting.
- */
- bool mIsUp;
-};
-
-template <typename T> MessageQueue<T>::MessageQueue()
-:mMutex( PTHREAD_MUTEX_INITIALIZER )
-,mCond( PTHREAD_COND_INITIALIZER )
-,mIsUp( false )
-{
- pthread_mutex_init( &mMutex, NULL );
- pthread_cond_init( &mCond, NULL );
-}
-
-template <typename T> MessageQueue<T>::MessageQueue( std::queue<T> queue )
-{
- pthread_mutex_init( &mMutex, NULL );
- pthread_cond_init( &mCond, NULL );
- pthread_mutex_lock( &mMutex );
- mQueue = std::queue<T>( queue );
- pthread_mutex_unlock( &mMutex );
-}
-
-template <typename T> MessageQueue<T>::~MessageQueue()
-{
- pthread_cond_destroy( &mCond );
- pthread_mutex_destroy( &mMutex );
-}
-
-template<typename T> void MessageQueue<T>::wait()
-{
- pthread_mutex_lock( &mMutex );
- while ( !mIsUp )
- {
- pthread_cond_wait( &mCond, &mMutex );
- }
- mIsUp = false;
- pthread_mutex_unlock( &mMutex );
-}
-
-template <typename T> int MessageQueue<T>::size() const
-{
- int result = 0;
- pthread_mutex_lock( &mMutex );
- result = mQueue.size();
- pthread_mutex_unlock( &mMutex );
- return result;
-}
-
-template <typename T> bool MessageQueue<T>::empty() const
-{
- bool result = true;
- pthread_mutex_lock( &mMutex );
- result = mQueue.empty();
- pthread_mutex_unlock( &mMutex );
- return result;
-}
-
-template <typename T> void MessageQueue<T>::push( const T & element )
-{
- pthread_mutex_lock( &mMutex );
- mQueue.push( element );
-
- pthread_cond_signal( &mCond );
- mIsUp = true;
-
- pthread_mutex_unlock( &mMutex );
-}
-
-template <typename T> T MessageQueue<T>::pop( )
-{
- pthread_mutex_lock( &mMutex );
- if ( mQueue.empty() )
- {
- //error, TRACE
- }
-
- T result = mQueue.front();
- mQueue.pop();
-
- pthread_mutex_unlock( &mMutex );
- return result;
-}
-
-#endif // MESSAGE_QUEUE_CLASS
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Command.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Command.h
deleted file mode 100644
index aa2f7cabf..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Command.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/**
-* \file RPC2Command.hpp
-* \brief RPC2Command class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef RPC2COMMAND_CLASS
-#define RPC2COMMAND_CLASS
-
-/**
- *\namespace NsRPC2Communication
- *\brief Namespace for communication with HMI.
-*/
-namespace NsRPC2Communication
-{
- /**
- * \class RPC2Command
- * \brief Base class for objects generated from Json RPC2
- */
- class RPC2Command
- {
- public:
- /**
- * \enum CommandType
- * \brief RPC2 message types.
- */
- enum CommandType { REQUEST = 0x0, RESPONSE = 0x1, NOTIFICATION = 0x2, ERROR = 0x3, UNDEFINED };
- public:
- /**
- * \brief Constructor
- */
- RPC2Command( );
-
- /**
- * \brief Constructor
- * \param type RPC2 type
- * \sa CommandType
- */
- RPC2Command( CommandType type );
-
- /**
- * \brief Constructor
- * \param type RPC2 type
- * \sa CommandType
- * \param method ID of the method.
- */
- RPC2Command( CommandType type, int method );
-
- /**
- * \brief Destructor
- */
- virtual ~RPC2Command();
-
- /**
- * \brief Getter for message type.
- * \return Type of Json RPC2 message.
- * \sa CommandType.
- */
- virtual CommandType getCommandType( ) const;
-
- /**
- * \brief Setter for message type.
- * \param commandType Type of Json RPC2 message.
- */
- virtual void setCommandType( CommandType commandType );
-
- /**
- * \brief Getter for method id
- * \return Id of the method in message.
- */
- virtual int getMethod() const;
-
- /**
- * \brief Setter for method id.
- * \param method Id of method in message.
- */
- virtual void setMethod( int method );
-
- protected:
- /**
- *\brief Type of Json RPC2 message.
- */
- CommandType mCommandType;
-
- /**
- *\brief Id of method in message.
- */
- int mMethod;
- };
-
-}
-
-#endif // RPC2COMMAND_CLASS
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Error.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Error.h
deleted file mode 100644
index 0bd2fdcb3..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Error.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/**
-* \file RPC2Error.hpp
-* \brief RPC2Error class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef RPC2COMMUNICATION_RPC2ERROR
-#define RPC2COMMUNICATION_RPC2ERROR
-
-#include <string>
-#include "RPC2Command.h"
-
-/**
- *\namespace NsRPC2Communication
- *\brief Namespace for communication with HMI.
-*/
-namespace NsRPC2Communication
-{
- /**
- * \class RPC2Error
- * \brief Base class for erros in Json RPC2
- */
- class RPC2Error : public RPC2Command
- {
- public:
- /**
- * \enum Codes
- * \brief Error codes.
- */
- enum Codes
- {
- INVALID_REQUEST=-32600,
- METHOD_NOT_FOUND=-32601,
- INVALID_PARAMS=-32602,
- INTERNAL_ERROR=-32603
- };
-
- /**
- * \brief Constructor
- */
- RPC2Error(void);
-
- /**
- * \brief Copy Constructor
- * \param err RPC2Error instance.
- */
- RPC2Error(const RPC2Error& err);
-
- /**
- * \brief Constructor
- * \param code Error code from
- * \sa Codes
- * \param message Error message
- * \param id Method id.
- */
- RPC2Error(int code, const std::string& message,int id);
-
- /**
- * \brief Constructor
- * \param code Error code from
- * \sa Codes
- * \param message Error message.
- */
- RPC2Error(int code, const std::string& message);
-
- /**
- * \brief Destructor
- */
- virtual ~RPC2Error();
-
- /**
- * \brief Getter of id of the message.
- * \return Id of the message.
- */
- int getId() const;
-
- /**
- * \brief Setter of id of the message.
- * \param id Id of the message.
- * \return type description
- */
- void setId(const int id);
-
- /**
- * \brief Resets id of the message.
- * TODO why do we need this?
- */
- void resetId(void);
-
- /**
- * \brief Getter for error code.
- * \return Error code
- * \sa Cods
- */
- int getErrorCode(void) const;
-
- /**
- * \brief Setter of error code.
- * \param code Error code
- * \sa Cods.
- */
- void setErrorCode(int code);
-
- /**
- * \brief Getter of error string
- * \return Error string
- */
- const std::string& getErrorString(void) const;
-
- /**
- * \brief Setter of error string
- * \param message Error string.
- */
- void setErrorString(const std::string& message);
-
- private:
- /**
- *\brief Id of message
- * //! setting mId to 0 will be result of "resetting", in such packets id passed as null (error only)
- */
- int mId;
-
- /**
- *\brief Error code
- */
- int mCode;
-
- /**
- *\brief Error string
- */
- std::string mMessage;
-
- friend class RPC2ErrorMarshaller;
- };
-}
-
-#endif // RPC2COMMUNICATION_RPC2ERROR
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2ErrorMarshaller.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2ErrorMarshaller.h
deleted file mode 100644
index b16a863c5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2ErrorMarshaller.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
-* \file RPC2ErrorMarshaller.hpp
-* \brief RPC2ErrorMarshaller class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef RPC2ERRORMARSHALLER_INCLUDE
-#define RPC2ERRORMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-#include "RPC2Error.h"
-
-/**
- *\namespace NsRPC2Communication
- *\brief Namespace for communication with HMI.
-*/
-namespace NsRPC2Communication
-{
- /**
- * \class RPC2ErrorMarshaller
- * \brief For serializing/deserializing of error messages.
- */
- struct RPC2ErrorMarshaller
- {
- /**
- * \brief Deserialized object form string.
- * \param s Json string
- * \param e Output: deserialized object.
- * \return Whether deserialization was successful.
- */
- static bool fromString(const std::string& s,RPC2Error& e);
-
- /**
- * \brief Serializes object to string.
- * \param e Error object to be serialized.
- * \return Json string.
- */
- static const std::string toString(const RPC2Error& e);
-
- /**
- * \brief Deserialized object from Json
- * \param s Json string
- * \param e Output: deserialized object.
- * \return Whether deserialization was successful.
- */
- static bool fromJSON(const Json::Value& s,RPC2Error& e);
-
- /**
- * \brief Serializes object to Json.
- * \param e Error object to be serialized.
- * \return Json value.
- */
- static Json::Value toJSON(const RPC2Error& e);
- };
-}
-
-
-#endif // RPC2ERRORMARSHALLER_INCLUDE
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Notification.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Notification.h
deleted file mode 100644
index ba286cd2e..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Notification.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
-* \file RPC2Notification.hpp
-* \brief RPC2Notification class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef RPCS2_NOTIFICATION_CLASS
-#define RPCS2_NOTIFICATION_CLASS
-
-#include "RPC2Command.h"
-
-/**
- *\namespace NsRPC2Communication
- *\brief Namespace for communication with HMI.
-*/
-namespace NsRPC2Communication
-{
- /**
- * \class RPC2Notification
- * \brief Base class for notifications generated from Json RPC2
- */
- class RPC2Notification : public RPC2Command
- {
- public:
- /**
- * \brief Default Constructor
- */
- RPC2Notification( );
-
- /**
- * \brief Constructor
- * \param method Method Id.
- */
- RPC2Notification( int method );
-
- /**
- * \brief Destructor
- */
- ~RPC2Notification();
- };
-}
-
-#endif // RPCS2_NOTIFICATION_CLASS
-
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/Marshaller.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/Marshaller.h
deleted file mode 100644
index 24db51feb..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/Marshaller.h
+++ /dev/null
@@ -1,1645 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef MARSHALLER_INCLUDE
-#define MARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "JSONHandler/RPC2Error.h"
-#include "JSONHandler/RPC2Notification.h"
-#include "JSONHandler/RPC2Request.h"
-#include "JSONHandler/RPC2Response.h"
-
-#include "JSONHandler/RPC2ErrorMarshaller.h"
-
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/ActivateAppMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/ActivateAppResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/GetAppListMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/GetAppListResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/GetDeviceListMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/GetDeviceListResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/OnAppDeactivatedMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/OnAppRegisteredMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/OnAppUnregisteredMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/OnDeviceListUpdatedMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/SendDataMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/SendDataResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/Buttons/GetCapabilitiesMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/Buttons/GetCapabilitiesResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/Buttons/OnButtonEventMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/Buttons/OnButtonPressMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/ChangeRegistrationMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/ChangeRegistrationResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetCapabilitiesMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetCapabilitiesResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetLanguageMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetLanguageResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetSupportedLanguagesMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetSupportedLanguagesResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/OnLanguageChangeMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/SpeakMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/SpeakResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AddCommandMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AddCommandResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AddSubMenuMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AddSubMenuResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AlertMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AlertResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AlertManeuverMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AlertManeuverResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ChangeRegistrationMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ChangeRegistrationResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/CreateInteractionChoiceSetMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/CreateInteractionChoiceSetResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteCommandMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteCommandResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteInteractionChoiceSetMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteInteractionChoiceSetResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteSubMenuMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteSubMenuResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DialNumberMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DialNumberResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/EndAudioPassThruMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/EndAudioPassThruResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetCapabilitiesMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetCapabilitiesResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetLanguageMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetLanguageResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetSupportedLanguagesMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetSupportedLanguagesResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnCommandMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnDeviceChosenMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnDriverDistractionMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnLanguageChangeMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnReadyMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnSystemContextMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnTBTClientStateMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/PerformAudioPassThruMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/PerformAudioPassThruResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/PerformInteractionMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/PerformInteractionResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ResetGlobalPropertiesMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ResetGlobalPropertiesResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ScrollableMessageMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ScrollableMessageResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetAppIconMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetAppIconResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetDisplayLayoutMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetDisplayLayoutResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetGlobalPropertiesMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetGlobalPropertiesResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetMediaClockTimerMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetMediaClockTimerResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ShowMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ShowResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ShowConstantTBTMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ShowConstantTBTResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SliderMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SliderResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/UpdateTurnListMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/UpdateTurnListResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/AddCommandMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/AddCommandResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/ChangeRegistrationMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/ChangeRegistrationResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/DeleteCommandMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/DeleteCommandResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetCapabilitiesMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetCapabilitiesResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetLanguageMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetLanguageResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetSupportedLanguagesMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetSupportedLanguagesResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/OnCommandMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/OnLanguageChangeMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetDTCsMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetDTCsResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetVehicleDataMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetVehicleDataResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetVehicleTypeMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetVehicleTypeResponseMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/OnVehicleDataMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/ReadDIDMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/ReadDIDResponseMarshaller.h"
-
-/*
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-namespace NsRPC2Communication
-{
-
-class Marshaller
-{
-public:
-
- enum Methods
- {
- METHOD_INVALID=-1,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ACTIVATEAPP,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ACTIVATEAPPRESPONSE,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETAPPLIST,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETAPPLISTRESPONSE,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETDEVICELIST,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETDEVICELISTRESPONSE,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPDEACTIVATED,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPDEACTIVATEDRESPONSE,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPREGISTERED,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPUNREGISTERED,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONDEVICELISTUPDATED,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__SENDDATA,
- METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__SENDDATARESPONSE,
- METHOD_NSRPC2COMMUNICATION_BUTTONS__GETCAPABILITIES,
- METHOD_NSRPC2COMMUNICATION_BUTTONS__GETCAPABILITIESRESPONSE,
- METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONEVENT,
- METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONPRESS,
- METHOD_NSRPC2COMMUNICATION_TTS__CHANGEREGISTRATION,
- METHOD_NSRPC2COMMUNICATION_TTS__CHANGEREGISTRATIONRESPONSE,
- METHOD_NSRPC2COMMUNICATION_TTS__GETCAPABILITIES,
- METHOD_NSRPC2COMMUNICATION_TTS__GETCAPABILITIESRESPONSE,
- METHOD_NSRPC2COMMUNICATION_TTS__GETLANGUAGE,
- METHOD_NSRPC2COMMUNICATION_TTS__GETLANGUAGERESPONSE,
- METHOD_NSRPC2COMMUNICATION_TTS__GETSUPPORTEDLANGUAGES,
- METHOD_NSRPC2COMMUNICATION_TTS__GETSUPPORTEDLANGUAGESRESPONSE,
- METHOD_NSRPC2COMMUNICATION_TTS__ONLANGUAGECHANGE,
- METHOD_NSRPC2COMMUNICATION_TTS__SPEAK,
- METHOD_NSRPC2COMMUNICATION_TTS__SPEAKRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__ADDCOMMAND,
- METHOD_NSRPC2COMMUNICATION_UI__ADDCOMMANDRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__ADDSUBMENU,
- METHOD_NSRPC2COMMUNICATION_UI__ADDSUBMENURESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__ALERT,
- METHOD_NSRPC2COMMUNICATION_UI__ALERTRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__ALERTMANEUVER,
- METHOD_NSRPC2COMMUNICATION_UI__ALERTMANEUVERRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__CHANGEREGISTRATION,
- METHOD_NSRPC2COMMUNICATION_UI__CHANGEREGISTRATIONRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__CREATEINTERACTIONCHOICESET,
- METHOD_NSRPC2COMMUNICATION_UI__CREATEINTERACTIONCHOICESETRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__DELETECOMMAND,
- METHOD_NSRPC2COMMUNICATION_UI__DELETECOMMANDRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__DELETEINTERACTIONCHOICESET,
- METHOD_NSRPC2COMMUNICATION_UI__DELETEINTERACTIONCHOICESETRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__DELETESUBMENU,
- METHOD_NSRPC2COMMUNICATION_UI__DELETESUBMENURESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__DIALNUMBER,
- METHOD_NSRPC2COMMUNICATION_UI__DIALNUMBERRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__ENDAUDIOPASSTHRU,
- METHOD_NSRPC2COMMUNICATION_UI__ENDAUDIOPASSTHRURESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__GETCAPABILITIES,
- METHOD_NSRPC2COMMUNICATION_UI__GETCAPABILITIESRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__GETLANGUAGE,
- METHOD_NSRPC2COMMUNICATION_UI__GETLANGUAGERESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__GETSUPPORTEDLANGUAGES,
- METHOD_NSRPC2COMMUNICATION_UI__GETSUPPORTEDLANGUAGESRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__ONCOMMAND,
- METHOD_NSRPC2COMMUNICATION_UI__ONDEVICECHOSEN,
- METHOD_NSRPC2COMMUNICATION_UI__ONDRIVERDISTRACTION,
- METHOD_NSRPC2COMMUNICATION_UI__ONLANGUAGECHANGE,
- METHOD_NSRPC2COMMUNICATION_UI__ONREADY,
- METHOD_NSRPC2COMMUNICATION_UI__ONSYSTEMCONTEXT,
- METHOD_NSRPC2COMMUNICATION_UI__ONTBTCLIENTSTATE,
- METHOD_NSRPC2COMMUNICATION_UI__PERFORMAUDIOPASSTHRU,
- METHOD_NSRPC2COMMUNICATION_UI__PERFORMAUDIOPASSTHRURESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__PERFORMINTERACTION,
- METHOD_NSRPC2COMMUNICATION_UI__PERFORMINTERACTIONRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__RESETGLOBALPROPERTIES,
- METHOD_NSRPC2COMMUNICATION_UI__RESETGLOBALPROPERTIESRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__SCROLLABLEMESSAGE,
- METHOD_NSRPC2COMMUNICATION_UI__SCROLLABLEMESSAGERESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__SETAPPICON,
- METHOD_NSRPC2COMMUNICATION_UI__SETAPPICONRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__SETDISPLAYLAYOUT,
- METHOD_NSRPC2COMMUNICATION_UI__SETDISPLAYLAYOUTRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__SETGLOBALPROPERTIES,
- METHOD_NSRPC2COMMUNICATION_UI__SETGLOBALPROPERTIESRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__SETMEDIACLOCKTIMER,
- METHOD_NSRPC2COMMUNICATION_UI__SETMEDIACLOCKTIMERRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__SHOW,
- METHOD_NSRPC2COMMUNICATION_UI__SHOWRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__SHOWCONSTANTTBT,
- METHOD_NSRPC2COMMUNICATION_UI__SHOWCONSTANTTBTRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__SLIDER,
- METHOD_NSRPC2COMMUNICATION_UI__SLIDERRESPONSE,
- METHOD_NSRPC2COMMUNICATION_UI__UPDATETURNLIST,
- METHOD_NSRPC2COMMUNICATION_UI__UPDATETURNLISTRESPONSE,
- METHOD_NSRPC2COMMUNICATION_VR__ADDCOMMAND,
- METHOD_NSRPC2COMMUNICATION_VR__ADDCOMMANDRESPONSE,
- METHOD_NSRPC2COMMUNICATION_VR__CHANGEREGISTRATION,
- METHOD_NSRPC2COMMUNICATION_VR__CHANGEREGISTRATIONRESPONSE,
- METHOD_NSRPC2COMMUNICATION_VR__DELETECOMMAND,
- METHOD_NSRPC2COMMUNICATION_VR__DELETECOMMANDRESPONSE,
- METHOD_NSRPC2COMMUNICATION_VR__GETCAPABILITIES,
- METHOD_NSRPC2COMMUNICATION_VR__GETCAPABILITIESRESPONSE,
- METHOD_NSRPC2COMMUNICATION_VR__GETLANGUAGE,
- METHOD_NSRPC2COMMUNICATION_VR__GETLANGUAGERESPONSE,
- METHOD_NSRPC2COMMUNICATION_VR__GETSUPPORTEDLANGUAGES,
- METHOD_NSRPC2COMMUNICATION_VR__GETSUPPORTEDLANGUAGESRESPONSE,
- METHOD_NSRPC2COMMUNICATION_VR__ONCOMMAND,
- METHOD_NSRPC2COMMUNICATION_VR__ONLANGUAGECHANGE,
- METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETDTCS,
- METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETDTCSRESPONSE,
- METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLEDATA,
- METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLEDATARESPONSE,
- METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLETYPE,
- METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLETYPERESPONSE,
- METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__ONVEHICLEDATA,
- METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__READDID,
- METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__READDIDRESPONSE
- };
-
-
- Marshaller() {}
- ~Marshaller() {}
-
- static ::NsRPC2Communication::RPC2Command* fromString(const std::string&);
- static std::string toString(const ::NsRPC2Communication::RPC2Command* msg);
-
- static ::NsRPC2Communication::RPC2Command* fromJSON(const Json::Value&);
- static Json::Value toJSON(const ::NsRPC2Communication::RPC2Command* msg);
-
-protected:
-
-// NsRPC2Communication::BasicCommunication::ActivateApp
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::ActivateApp& res)
- {
- return mNsRPC2Communication_BasicCommunication__ActivateApp.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::ActivateApp& res)
- {
- return mNsRPC2Communication_BasicCommunication__ActivateApp.toString(res);
- }
-
-// NsRPC2Communication::BasicCommunication::ActivateAppResponse
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::ActivateAppResponse& res)
- {
- return mNsRPC2Communication_BasicCommunication__ActivateAppResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::ActivateAppResponse& res)
- {
- return mNsRPC2Communication_BasicCommunication__ActivateAppResponse.toString(res);
- }
-
-// NsRPC2Communication::BasicCommunication::GetAppList
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::GetAppList& res)
- {
- return mNsRPC2Communication_BasicCommunication__GetAppList.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::GetAppList& res)
- {
- return mNsRPC2Communication_BasicCommunication__GetAppList.toString(res);
- }
-
-// NsRPC2Communication::BasicCommunication::GetAppListResponse
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::GetAppListResponse& res)
- {
- return mNsRPC2Communication_BasicCommunication__GetAppListResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::GetAppListResponse& res)
- {
- return mNsRPC2Communication_BasicCommunication__GetAppListResponse.toString(res);
- }
-
-// NsRPC2Communication::BasicCommunication::GetDeviceList
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::GetDeviceList& res)
- {
- return mNsRPC2Communication_BasicCommunication__GetDeviceList.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::GetDeviceList& res)
- {
- return mNsRPC2Communication_BasicCommunication__GetDeviceList.toString(res);
- }
-
-// NsRPC2Communication::BasicCommunication::GetDeviceListResponse
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::GetDeviceListResponse& res)
- {
- return mNsRPC2Communication_BasicCommunication__GetDeviceListResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::GetDeviceListResponse& res)
- {
- return mNsRPC2Communication_BasicCommunication__GetDeviceListResponse.toString(res);
- }
-
-// NsRPC2Communication::BasicCommunication::OnAppDeactivated
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::OnAppDeactivated& res)
- {
- return mNsRPC2Communication_BasicCommunication__OnAppDeactivated.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::OnAppDeactivated& res)
- {
- return mNsRPC2Communication_BasicCommunication__OnAppDeactivated.toString(res);
- }
-
-// NsRPC2Communication::BasicCommunication::OnAppDeactivatedResponse
- /*static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::OnAppDeactivatedResponse& res)
- {
- return mNsRPC2Communication_BasicCommunication__OnAppDeactivatedResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::OnAppDeactivatedResponse& res)
- {
- return mNsRPC2Communication_BasicCommunication__OnAppDeactivatedResponse.toString(res);
- }*/
-
-// NsRPC2Communication::BasicCommunication::OnAppRegistered
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::OnAppRegistered& res)
- {
- return mNsRPC2Communication_BasicCommunication__OnAppRegistered.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::OnAppRegistered& res)
- {
- return mNsRPC2Communication_BasicCommunication__OnAppRegistered.toString(res);
- }
-
-// NsRPC2Communication::BasicCommunication::OnAppUnregistered
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::OnAppUnregistered& res)
- {
- return mNsRPC2Communication_BasicCommunication__OnAppUnregistered.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::OnAppUnregistered& res)
- {
- return mNsRPC2Communication_BasicCommunication__OnAppUnregistered.toString(res);
- }
-
-// NsRPC2Communication::BasicCommunication::OnDeviceListUpdated
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::OnDeviceListUpdated& res)
- {
- return mNsRPC2Communication_BasicCommunication__OnDeviceListUpdated.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::OnDeviceListUpdated& res)
- {
- return mNsRPC2Communication_BasicCommunication__OnDeviceListUpdated.toString(res);
- }
-
-// NsRPC2Communication::BasicCommunication::SendData
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::SendData& res)
- {
- return mNsRPC2Communication_BasicCommunication__SendData.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::SendData& res)
- {
- return mNsRPC2Communication_BasicCommunication__SendData.toString(res);
- }
-
-// NsRPC2Communication::BasicCommunication::SendDataResponse
- static bool fromString(const std::string& str, NsRPC2Communication::BasicCommunication::SendDataResponse& res)
- {
- return mNsRPC2Communication_BasicCommunication__SendDataResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::BasicCommunication::SendDataResponse& res)
- {
- return mNsRPC2Communication_BasicCommunication__SendDataResponse.toString(res);
- }
-
-// NsRPC2Communication::Buttons::GetCapabilities
- static bool fromString(const std::string& str, NsRPC2Communication::Buttons::GetCapabilities& res)
- {
- return mNsRPC2Communication_Buttons__GetCapabilities.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::Buttons::GetCapabilities& res)
- {
- return mNsRPC2Communication_Buttons__GetCapabilities.toString(res);
- }
-
-// NsRPC2Communication::Buttons::GetCapabilitiesResponse
- static bool fromString(const std::string& str, NsRPC2Communication::Buttons::GetCapabilitiesResponse& res)
- {
- return mNsRPC2Communication_Buttons__GetCapabilitiesResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::Buttons::GetCapabilitiesResponse& res)
- {
- return mNsRPC2Communication_Buttons__GetCapabilitiesResponse.toString(res);
- }
-
-// NsRPC2Communication::Buttons::OnButtonEvent
- static bool fromString(const std::string& str, NsRPC2Communication::Buttons::OnButtonEvent& res)
- {
- return mNsRPC2Communication_Buttons__OnButtonEvent.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::Buttons::OnButtonEvent& res)
- {
- return mNsRPC2Communication_Buttons__OnButtonEvent.toString(res);
- }
-
-// NsRPC2Communication::Buttons::OnButtonPress
- static bool fromString(const std::string& str, NsRPC2Communication::Buttons::OnButtonPress& res)
- {
- return mNsRPC2Communication_Buttons__OnButtonPress.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::Buttons::OnButtonPress& res)
- {
- return mNsRPC2Communication_Buttons__OnButtonPress.toString(res);
- }
-
-// NsRPC2Communication::TTS::ChangeRegistration
- static bool fromString(const std::string& str, NsRPC2Communication::TTS::ChangeRegistration& res)
- {
- return mNsRPC2Communication_TTS__ChangeRegistration.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::TTS::ChangeRegistration& res)
- {
- return mNsRPC2Communication_TTS__ChangeRegistration.toString(res);
- }
-
-// NsRPC2Communication::TTS::ChangeRegistrationResponse
- static bool fromString(const std::string& str, NsRPC2Communication::TTS::ChangeRegistrationResponse& res)
- {
- return mNsRPC2Communication_TTS__ChangeRegistrationResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::TTS::ChangeRegistrationResponse& res)
- {
- return mNsRPC2Communication_TTS__ChangeRegistrationResponse.toString(res);
- }
-
-// NsRPC2Communication::TTS::GetCapabilities
- static bool fromString(const std::string& str, NsRPC2Communication::TTS::GetCapabilities& res)
- {
- return mNsRPC2Communication_TTS__GetCapabilities.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::TTS::GetCapabilities& res)
- {
- return mNsRPC2Communication_TTS__GetCapabilities.toString(res);
- }
-
-// NsRPC2Communication::TTS::GetCapabilitiesResponse
- static bool fromString(const std::string& str, NsRPC2Communication::TTS::GetCapabilitiesResponse& res)
- {
- return mNsRPC2Communication_TTS__GetCapabilitiesResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::TTS::GetCapabilitiesResponse& res)
- {
- return mNsRPC2Communication_TTS__GetCapabilitiesResponse.toString(res);
- }
-
-// NsRPC2Communication::TTS::GetLanguage
- static bool fromString(const std::string& str, NsRPC2Communication::TTS::GetLanguage& res)
- {
- return mNsRPC2Communication_TTS__GetLanguage.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::TTS::GetLanguage& res)
- {
- return mNsRPC2Communication_TTS__GetLanguage.toString(res);
- }
-
-// NsRPC2Communication::TTS::GetLanguageResponse
- static bool fromString(const std::string& str, NsRPC2Communication::TTS::GetLanguageResponse& res)
- {
- return mNsRPC2Communication_TTS__GetLanguageResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::TTS::GetLanguageResponse& res)
- {
- return mNsRPC2Communication_TTS__GetLanguageResponse.toString(res);
- }
-
-// NsRPC2Communication::TTS::GetSupportedLanguages
- static bool fromString(const std::string& str, NsRPC2Communication::TTS::GetSupportedLanguages& res)
- {
- return mNsRPC2Communication_TTS__GetSupportedLanguages.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::TTS::GetSupportedLanguages& res)
- {
- return mNsRPC2Communication_TTS__GetSupportedLanguages.toString(res);
- }
-
-// NsRPC2Communication::TTS::GetSupportedLanguagesResponse
- static bool fromString(const std::string& str, NsRPC2Communication::TTS::GetSupportedLanguagesResponse& res)
- {
- return mNsRPC2Communication_TTS__GetSupportedLanguagesResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::TTS::GetSupportedLanguagesResponse& res)
- {
- return mNsRPC2Communication_TTS__GetSupportedLanguagesResponse.toString(res);
- }
-
-// NsRPC2Communication::TTS::OnLanguageChange
- static bool fromString(const std::string& str, NsRPC2Communication::TTS::OnLanguageChange& res)
- {
- return mNsRPC2Communication_TTS__OnLanguageChange.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::TTS::OnLanguageChange& res)
- {
- return mNsRPC2Communication_TTS__OnLanguageChange.toString(res);
- }
-
-// NsRPC2Communication::TTS::Speak
- static bool fromString(const std::string& str, NsRPC2Communication::TTS::Speak& res)
- {
- return mNsRPC2Communication_TTS__Speak.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::TTS::Speak& res)
- {
- return mNsRPC2Communication_TTS__Speak.toString(res);
- }
-
-// NsRPC2Communication::TTS::SpeakResponse
- static bool fromString(const std::string& str, NsRPC2Communication::TTS::SpeakResponse& res)
- {
- return mNsRPC2Communication_TTS__SpeakResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::TTS::SpeakResponse& res)
- {
- return mNsRPC2Communication_TTS__SpeakResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::AddCommand
- static bool fromString(const std::string& str, NsRPC2Communication::UI::AddCommand& res)
- {
- return mNsRPC2Communication_UI__AddCommand.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::AddCommand& res)
- {
- return mNsRPC2Communication_UI__AddCommand.toString(res);
- }
-
-// NsRPC2Communication::UI::AddCommandResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::AddCommandResponse& res)
- {
- return mNsRPC2Communication_UI__AddCommandResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::AddCommandResponse& res)
- {
- return mNsRPC2Communication_UI__AddCommandResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::AddSubMenu
- static bool fromString(const std::string& str, NsRPC2Communication::UI::AddSubMenu& res)
- {
- return mNsRPC2Communication_UI__AddSubMenu.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::AddSubMenu& res)
- {
- return mNsRPC2Communication_UI__AddSubMenu.toString(res);
- }
-
-// NsRPC2Communication::UI::AddSubMenuResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::AddSubMenuResponse& res)
- {
- return mNsRPC2Communication_UI__AddSubMenuResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::AddSubMenuResponse& res)
- {
- return mNsRPC2Communication_UI__AddSubMenuResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::Alert
- static bool fromString(const std::string& str, NsRPC2Communication::UI::Alert& res)
- {
- return mNsRPC2Communication_UI__Alert.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::Alert& res)
- {
- return mNsRPC2Communication_UI__Alert.toString(res);
- }
-
-// NsRPC2Communication::UI::AlertResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::AlertResponse& res)
- {
- return mNsRPC2Communication_UI__AlertResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::AlertResponse& res)
- {
- return mNsRPC2Communication_UI__AlertResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::AlertManeuver
- static bool fromString(const std::string& str, NsRPC2Communication::UI::AlertManeuver& res)
- {
- return mNsRPC2Communication_UI__AlertManeuver.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::AlertManeuver& res)
- {
- return mNsRPC2Communication_UI__AlertManeuver.toString(res);
- }
-
-// NsRPC2Communication::UI::AlertManeuverResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::AlertManeuverResponse& res)
- {
- return mNsRPC2Communication_UI__AlertManeuverResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::AlertManeuverResponse& res)
- {
- return mNsRPC2Communication_UI__AlertManeuverResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::ChangeRegistration
- static bool fromString(const std::string& str, NsRPC2Communication::UI::ChangeRegistration& res)
- {
- return mNsRPC2Communication_UI__ChangeRegistration.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::ChangeRegistration& res)
- {
- return mNsRPC2Communication_UI__ChangeRegistration.toString(res);
- }
-
-// NsRPC2Communication::UI::ChangeRegistrationResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::ChangeRegistrationResponse& res)
- {
- return mNsRPC2Communication_UI__ChangeRegistrationResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::ChangeRegistrationResponse& res)
- {
- return mNsRPC2Communication_UI__ChangeRegistrationResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::CreateInteractionChoiceSet
- static bool fromString(const std::string& str, NsRPC2Communication::UI::CreateInteractionChoiceSet& res)
- {
- return mNsRPC2Communication_UI__CreateInteractionChoiceSet.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::CreateInteractionChoiceSet& res)
- {
- return mNsRPC2Communication_UI__CreateInteractionChoiceSet.toString(res);
- }
-
-// NsRPC2Communication::UI::CreateInteractionChoiceSetResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::CreateInteractionChoiceSetResponse& res)
- {
- return mNsRPC2Communication_UI__CreateInteractionChoiceSetResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::CreateInteractionChoiceSetResponse& res)
- {
- return mNsRPC2Communication_UI__CreateInteractionChoiceSetResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::DeleteCommand
- static bool fromString(const std::string& str, NsRPC2Communication::UI::DeleteCommand& res)
- {
- return mNsRPC2Communication_UI__DeleteCommand.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::DeleteCommand& res)
- {
- return mNsRPC2Communication_UI__DeleteCommand.toString(res);
- }
-
-// NsRPC2Communication::UI::DeleteCommandResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::DeleteCommandResponse& res)
- {
- return mNsRPC2Communication_UI__DeleteCommandResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::DeleteCommandResponse& res)
- {
- return mNsRPC2Communication_UI__DeleteCommandResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::DeleteInteractionChoiceSet
- static bool fromString(const std::string& str, NsRPC2Communication::UI::DeleteInteractionChoiceSet& res)
- {
- return mNsRPC2Communication_UI__DeleteInteractionChoiceSet.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::DeleteInteractionChoiceSet& res)
- {
- return mNsRPC2Communication_UI__DeleteInteractionChoiceSet.toString(res);
- }
-
-// NsRPC2Communication::UI::DeleteInteractionChoiceSetResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::DeleteInteractionChoiceSetResponse& res)
- {
- return mNsRPC2Communication_UI__DeleteInteractionChoiceSetResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::DeleteInteractionChoiceSetResponse& res)
- {
- return mNsRPC2Communication_UI__DeleteInteractionChoiceSetResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::DeleteSubMenu
- static bool fromString(const std::string& str, NsRPC2Communication::UI::DeleteSubMenu& res)
- {
- return mNsRPC2Communication_UI__DeleteSubMenu.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::DeleteSubMenu& res)
- {
- return mNsRPC2Communication_UI__DeleteSubMenu.toString(res);
- }
-
-// NsRPC2Communication::UI::DeleteSubMenuResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::DeleteSubMenuResponse& res)
- {
- return mNsRPC2Communication_UI__DeleteSubMenuResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::DeleteSubMenuResponse& res)
- {
- return mNsRPC2Communication_UI__DeleteSubMenuResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::DialNumber
- static bool fromString(const std::string& str, NsRPC2Communication::UI::DialNumber& res)
- {
- return mNsRPC2Communication_UI__DialNumber.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::DialNumber& res)
- {
- return mNsRPC2Communication_UI__DialNumber.toString(res);
- }
-
-// NsRPC2Communication::UI::DialNumberResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::DialNumberResponse& res)
- {
- return mNsRPC2Communication_UI__DialNumberResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::DialNumberResponse& res)
- {
- return mNsRPC2Communication_UI__DialNumberResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::EndAudioPassThru
- static bool fromString(const std::string& str, NsRPC2Communication::UI::EndAudioPassThru& res)
- {
- return mNsRPC2Communication_UI__EndAudioPassThru.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::EndAudioPassThru& res)
- {
- return mNsRPC2Communication_UI__EndAudioPassThru.toString(res);
- }
-
-// NsRPC2Communication::UI::EndAudioPassThruResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::EndAudioPassThruResponse& res)
- {
- return mNsRPC2Communication_UI__EndAudioPassThruResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::EndAudioPassThruResponse& res)
- {
- return mNsRPC2Communication_UI__EndAudioPassThruResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::GetCapabilities
- static bool fromString(const std::string& str, NsRPC2Communication::UI::GetCapabilities& res)
- {
- return mNsRPC2Communication_UI__GetCapabilities.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::GetCapabilities& res)
- {
- return mNsRPC2Communication_UI__GetCapabilities.toString(res);
- }
-
-// NsRPC2Communication::UI::GetCapabilitiesResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::GetCapabilitiesResponse& res)
- {
- return mNsRPC2Communication_UI__GetCapabilitiesResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::GetCapabilitiesResponse& res)
- {
- return mNsRPC2Communication_UI__GetCapabilitiesResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::GetLanguage
- static bool fromString(const std::string& str, NsRPC2Communication::UI::GetLanguage& res)
- {
- return mNsRPC2Communication_UI__GetLanguage.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::GetLanguage& res)
- {
- return mNsRPC2Communication_UI__GetLanguage.toString(res);
- }
-
-// NsRPC2Communication::UI::GetLanguageResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::GetLanguageResponse& res)
- {
- return mNsRPC2Communication_UI__GetLanguageResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::GetLanguageResponse& res)
- {
- return mNsRPC2Communication_UI__GetLanguageResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::GetSupportedLanguages
- static bool fromString(const std::string& str, NsRPC2Communication::UI::GetSupportedLanguages& res)
- {
- return mNsRPC2Communication_UI__GetSupportedLanguages.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::GetSupportedLanguages& res)
- {
- return mNsRPC2Communication_UI__GetSupportedLanguages.toString(res);
- }
-
-// NsRPC2Communication::UI::GetSupportedLanguagesResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::GetSupportedLanguagesResponse& res)
- {
- return mNsRPC2Communication_UI__GetSupportedLanguagesResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::GetSupportedLanguagesResponse& res)
- {
- return mNsRPC2Communication_UI__GetSupportedLanguagesResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::OnCommand
- static bool fromString(const std::string& str, NsRPC2Communication::UI::OnCommand& res)
- {
- return mNsRPC2Communication_UI__OnCommand.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::OnCommand& res)
- {
- return mNsRPC2Communication_UI__OnCommand.toString(res);
- }
-
-// NsRPC2Communication::UI::OnDeviceChosen
- static bool fromString(const std::string& str, NsRPC2Communication::UI::OnDeviceChosen& res)
- {
- return mNsRPC2Communication_UI__OnDeviceChosen.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::OnDeviceChosen& res)
- {
- return mNsRPC2Communication_UI__OnDeviceChosen.toString(res);
- }
-
-// NsRPC2Communication::UI::OnDriverDistraction
- static bool fromString(const std::string& str, NsRPC2Communication::UI::OnDriverDistraction& res)
- {
- return mNsRPC2Communication_UI__OnDriverDistraction.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::OnDriverDistraction& res)
- {
- return mNsRPC2Communication_UI__OnDriverDistraction.toString(res);
- }
-
-// NsRPC2Communication::UI::OnLanguageChange
- static bool fromString(const std::string& str, NsRPC2Communication::UI::OnLanguageChange& res)
- {
- return mNsRPC2Communication_UI__OnLanguageChange.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::OnLanguageChange& res)
- {
- return mNsRPC2Communication_UI__OnLanguageChange.toString(res);
- }
-
-// NsRPC2Communication::UI::OnReady
- static bool fromString(const std::string& str, NsRPC2Communication::UI::OnReady& res)
- {
- return mNsRPC2Communication_UI__OnReady.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::OnReady& res)
- {
- return mNsRPC2Communication_UI__OnReady.toString(res);
- }
-
-// NsRPC2Communication::UI::OnSystemContext
- static bool fromString(const std::string& str, NsRPC2Communication::UI::OnSystemContext& res)
- {
- return mNsRPC2Communication_UI__OnSystemContext.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::OnSystemContext& res)
- {
- return mNsRPC2Communication_UI__OnSystemContext.toString(res);
- }
-
-// NsRPC2Communication::UI::OnTBTClientState
- static bool fromString(const std::string& str, NsRPC2Communication::UI::OnTBTClientState& res)
- {
- return mNsRPC2Communication_UI__OnTBTClientState.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::OnTBTClientState& res)
- {
- return mNsRPC2Communication_UI__OnTBTClientState.toString(res);
- }
-
-// NsRPC2Communication::UI::PerformAudioPassThru
- static bool fromString(const std::string& str, NsRPC2Communication::UI::PerformAudioPassThru& res)
- {
- return mNsRPC2Communication_UI__PerformAudioPassThru.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::PerformAudioPassThru& res)
- {
- return mNsRPC2Communication_UI__PerformAudioPassThru.toString(res);
- }
-
-// NsRPC2Communication::UI::PerformAudioPassThruResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::PerformAudioPassThruResponse& res)
- {
- return mNsRPC2Communication_UI__PerformAudioPassThruResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::PerformAudioPassThruResponse& res)
- {
- return mNsRPC2Communication_UI__PerformAudioPassThruResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::PerformInteraction
- static bool fromString(const std::string& str, NsRPC2Communication::UI::PerformInteraction& res)
- {
- return mNsRPC2Communication_UI__PerformInteraction.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::PerformInteraction& res)
- {
- return mNsRPC2Communication_UI__PerformInteraction.toString(res);
- }
-
-// NsRPC2Communication::UI::PerformInteractionResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::PerformInteractionResponse& res)
- {
- return mNsRPC2Communication_UI__PerformInteractionResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::PerformInteractionResponse& res)
- {
- return mNsRPC2Communication_UI__PerformInteractionResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::ResetGlobalProperties
- static bool fromString(const std::string& str, NsRPC2Communication::UI::ResetGlobalProperties& res)
- {
- return mNsRPC2Communication_UI__ResetGlobalProperties.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::ResetGlobalProperties& res)
- {
- return mNsRPC2Communication_UI__ResetGlobalProperties.toString(res);
- }
-
-// NsRPC2Communication::UI::ResetGlobalPropertiesResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::ResetGlobalPropertiesResponse& res)
- {
- return mNsRPC2Communication_UI__ResetGlobalPropertiesResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::ResetGlobalPropertiesResponse& res)
- {
- return mNsRPC2Communication_UI__ResetGlobalPropertiesResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::ScrollableMessage
- static bool fromString(const std::string& str, NsRPC2Communication::UI::ScrollableMessage& res)
- {
- return mNsRPC2Communication_UI__ScrollableMessage.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::ScrollableMessage& res)
- {
- return mNsRPC2Communication_UI__ScrollableMessage.toString(res);
- }
-
-// NsRPC2Communication::UI::ScrollableMessageResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::ScrollableMessageResponse& res)
- {
- return mNsRPC2Communication_UI__ScrollableMessageResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::ScrollableMessageResponse& res)
- {
- return mNsRPC2Communication_UI__ScrollableMessageResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::SetAppIcon
- static bool fromString(const std::string& str, NsRPC2Communication::UI::SetAppIcon& res)
- {
- return mNsRPC2Communication_UI__SetAppIcon.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::SetAppIcon& res)
- {
- return mNsRPC2Communication_UI__SetAppIcon.toString(res);
- }
-
-// NsRPC2Communication::UI::SetAppIconResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::SetAppIconResponse& res)
- {
- return mNsRPC2Communication_UI__SetAppIconResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::SetAppIconResponse& res)
- {
- return mNsRPC2Communication_UI__SetAppIconResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::SetDisplayLayout
- static bool fromString(const std::string& str, NsRPC2Communication::UI::SetDisplayLayout& res)
- {
- return mNsRPC2Communication_UI__SetDisplayLayout.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::SetDisplayLayout& res)
- {
- return mNsRPC2Communication_UI__SetDisplayLayout.toString(res);
- }
-
-// NsRPC2Communication::UI::SetDisplayLayoutResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::SetDisplayLayoutResponse& res)
- {
- return mNsRPC2Communication_UI__SetDisplayLayoutResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::SetDisplayLayoutResponse& res)
- {
- return mNsRPC2Communication_UI__SetDisplayLayoutResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::SetGlobalProperties
- static bool fromString(const std::string& str, NsRPC2Communication::UI::SetGlobalProperties& res)
- {
- return mNsRPC2Communication_UI__SetGlobalProperties.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::SetGlobalProperties& res)
- {
- return mNsRPC2Communication_UI__SetGlobalProperties.toString(res);
- }
-
-// NsRPC2Communication::UI::SetGlobalPropertiesResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::SetGlobalPropertiesResponse& res)
- {
- return mNsRPC2Communication_UI__SetGlobalPropertiesResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::SetGlobalPropertiesResponse& res)
- {
- return mNsRPC2Communication_UI__SetGlobalPropertiesResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::SetMediaClockTimer
- static bool fromString(const std::string& str, NsRPC2Communication::UI::SetMediaClockTimer& res)
- {
- return mNsRPC2Communication_UI__SetMediaClockTimer.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::SetMediaClockTimer& res)
- {
- return mNsRPC2Communication_UI__SetMediaClockTimer.toString(res);
- }
-
-// NsRPC2Communication::UI::SetMediaClockTimerResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::SetMediaClockTimerResponse& res)
- {
- return mNsRPC2Communication_UI__SetMediaClockTimerResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::SetMediaClockTimerResponse& res)
- {
- return mNsRPC2Communication_UI__SetMediaClockTimerResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::Show
- static bool fromString(const std::string& str, NsRPC2Communication::UI::Show& res)
- {
- return mNsRPC2Communication_UI__Show.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::Show& res)
- {
- return mNsRPC2Communication_UI__Show.toString(res);
- }
-
-// NsRPC2Communication::UI::ShowResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::ShowResponse& res)
- {
- return mNsRPC2Communication_UI__ShowResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::ShowResponse& res)
- {
- return mNsRPC2Communication_UI__ShowResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::ShowConstantTBT
- static bool fromString(const std::string& str, NsRPC2Communication::UI::ShowConstantTBT& res)
- {
- return mNsRPC2Communication_UI__ShowConstantTBT.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::ShowConstantTBT& res)
- {
- return mNsRPC2Communication_UI__ShowConstantTBT.toString(res);
- }
-
-// NsRPC2Communication::UI::ShowConstantTBTResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::ShowConstantTBTResponse& res)
- {
- return mNsRPC2Communication_UI__ShowConstantTBTResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::ShowConstantTBTResponse& res)
- {
- return mNsRPC2Communication_UI__ShowConstantTBTResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::Slider
- static bool fromString(const std::string& str, NsRPC2Communication::UI::Slider& res)
- {
- return mNsRPC2Communication_UI__Slider.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::Slider& res)
- {
- return mNsRPC2Communication_UI__Slider.toString(res);
- }
-
-// NsRPC2Communication::UI::SliderResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::SliderResponse& res)
- {
- return mNsRPC2Communication_UI__SliderResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::SliderResponse& res)
- {
- return mNsRPC2Communication_UI__SliderResponse.toString(res);
- }
-
-// NsRPC2Communication::UI::UpdateTurnList
- static bool fromString(const std::string& str, NsRPC2Communication::UI::UpdateTurnList& res)
- {
- return mNsRPC2Communication_UI__UpdateTurnList.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::UpdateTurnList& res)
- {
- return mNsRPC2Communication_UI__UpdateTurnList.toString(res);
- }
-
-// NsRPC2Communication::UI::UpdateTurnListResponse
- static bool fromString(const std::string& str, NsRPC2Communication::UI::UpdateTurnListResponse& res)
- {
- return mNsRPC2Communication_UI__UpdateTurnListResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::UI::UpdateTurnListResponse& res)
- {
- return mNsRPC2Communication_UI__UpdateTurnListResponse.toString(res);
- }
-
-// NsRPC2Communication::VR::AddCommand
- static bool fromString(const std::string& str, NsRPC2Communication::VR::AddCommand& res)
- {
- return mNsRPC2Communication_VR__AddCommand.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::AddCommand& res)
- {
- return mNsRPC2Communication_VR__AddCommand.toString(res);
- }
-
-// NsRPC2Communication::VR::AddCommandResponse
- static bool fromString(const std::string& str, NsRPC2Communication::VR::AddCommandResponse& res)
- {
- return mNsRPC2Communication_VR__AddCommandResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::AddCommandResponse& res)
- {
- return mNsRPC2Communication_VR__AddCommandResponse.toString(res);
- }
-
-// NsRPC2Communication::VR::ChangeRegistration
- static bool fromString(const std::string& str, NsRPC2Communication::VR::ChangeRegistration& res)
- {
- return mNsRPC2Communication_VR__ChangeRegistration.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::ChangeRegistration& res)
- {
- return mNsRPC2Communication_VR__ChangeRegistration.toString(res);
- }
-
-// NsRPC2Communication::VR::ChangeRegistrationResponse
- static bool fromString(const std::string& str, NsRPC2Communication::VR::ChangeRegistrationResponse& res)
- {
- return mNsRPC2Communication_VR__ChangeRegistrationResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::ChangeRegistrationResponse& res)
- {
- return mNsRPC2Communication_VR__ChangeRegistrationResponse.toString(res);
- }
-
-// NsRPC2Communication::VR::DeleteCommand
- static bool fromString(const std::string& str, NsRPC2Communication::VR::DeleteCommand& res)
- {
- return mNsRPC2Communication_VR__DeleteCommand.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::DeleteCommand& res)
- {
- return mNsRPC2Communication_VR__DeleteCommand.toString(res);
- }
-
-// NsRPC2Communication::VR::DeleteCommandResponse
- static bool fromString(const std::string& str, NsRPC2Communication::VR::DeleteCommandResponse& res)
- {
- return mNsRPC2Communication_VR__DeleteCommandResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::DeleteCommandResponse& res)
- {
- return mNsRPC2Communication_VR__DeleteCommandResponse.toString(res);
- }
-
-// NsRPC2Communication::VR::GetCapabilities
- static bool fromString(const std::string& str, NsRPC2Communication::VR::GetCapabilities& res)
- {
- return mNsRPC2Communication_VR__GetCapabilities.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::GetCapabilities& res)
- {
- return mNsRPC2Communication_VR__GetCapabilities.toString(res);
- }
-
-// NsRPC2Communication::VR::GetCapabilitiesResponse
- static bool fromString(const std::string& str, NsRPC2Communication::VR::GetCapabilitiesResponse& res)
- {
- return mNsRPC2Communication_VR__GetCapabilitiesResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::GetCapabilitiesResponse& res)
- {
- return mNsRPC2Communication_VR__GetCapabilitiesResponse.toString(res);
- }
-
-// NsRPC2Communication::VR::GetLanguage
- static bool fromString(const std::string& str, NsRPC2Communication::VR::GetLanguage& res)
- {
- return mNsRPC2Communication_VR__GetLanguage.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::GetLanguage& res)
- {
- return mNsRPC2Communication_VR__GetLanguage.toString(res);
- }
-
-// NsRPC2Communication::VR::GetLanguageResponse
- static bool fromString(const std::string& str, NsRPC2Communication::VR::GetLanguageResponse& res)
- {
- return mNsRPC2Communication_VR__GetLanguageResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::GetLanguageResponse& res)
- {
- return mNsRPC2Communication_VR__GetLanguageResponse.toString(res);
- }
-
-// NsRPC2Communication::VR::GetSupportedLanguages
- static bool fromString(const std::string& str, NsRPC2Communication::VR::GetSupportedLanguages& res)
- {
- return mNsRPC2Communication_VR__GetSupportedLanguages.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::GetSupportedLanguages& res)
- {
- return mNsRPC2Communication_VR__GetSupportedLanguages.toString(res);
- }
-
-// NsRPC2Communication::VR::GetSupportedLanguagesResponse
- static bool fromString(const std::string& str, NsRPC2Communication::VR::GetSupportedLanguagesResponse& res)
- {
- return mNsRPC2Communication_VR__GetSupportedLanguagesResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::GetSupportedLanguagesResponse& res)
- {
- return mNsRPC2Communication_VR__GetSupportedLanguagesResponse.toString(res);
- }
-
-// NsRPC2Communication::VR::OnCommand
- static bool fromString(const std::string& str, NsRPC2Communication::VR::OnCommand& res)
- {
- return mNsRPC2Communication_VR__OnCommand.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::OnCommand& res)
- {
- return mNsRPC2Communication_VR__OnCommand.toString(res);
- }
-
-// NsRPC2Communication::VR::OnLanguageChange
- static bool fromString(const std::string& str, NsRPC2Communication::VR::OnLanguageChange& res)
- {
- return mNsRPC2Communication_VR__OnLanguageChange.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VR::OnLanguageChange& res)
- {
- return mNsRPC2Communication_VR__OnLanguageChange.toString(res);
- }
-
-// NsRPC2Communication::VehicleInfo::GetDTCs
- static bool fromString(const std::string& str, NsRPC2Communication::VehicleInfo::GetDTCs& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetDTCs.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VehicleInfo::GetDTCs& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetDTCs.toString(res);
- }
-
-// NsRPC2Communication::VehicleInfo::GetDTCsResponse
- static bool fromString(const std::string& str, NsRPC2Communication::VehicleInfo::GetDTCsResponse& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetDTCsResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VehicleInfo::GetDTCsResponse& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetDTCsResponse.toString(res);
- }
-
-// NsRPC2Communication::VehicleInfo::GetVehicleData
- static bool fromString(const std::string& str, NsRPC2Communication::VehicleInfo::GetVehicleData& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetVehicleData.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VehicleInfo::GetVehicleData& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetVehicleData.toString(res);
- }
-
-// NsRPC2Communication::VehicleInfo::GetVehicleDataResponse
- static bool fromString(const std::string& str, NsRPC2Communication::VehicleInfo::GetVehicleDataResponse& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetVehicleDataResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VehicleInfo::GetVehicleDataResponse& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetVehicleDataResponse.toString(res);
- }
-
-// NsRPC2Communication::VehicleInfo::GetVehicleType
- static bool fromString(const std::string& str, NsRPC2Communication::VehicleInfo::GetVehicleType& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetVehicleType.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VehicleInfo::GetVehicleType& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetVehicleType.toString(res);
- }
-
-// NsRPC2Communication::VehicleInfo::GetVehicleTypeResponse
- static bool fromString(const std::string& str, NsRPC2Communication::VehicleInfo::GetVehicleTypeResponse& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetVehicleTypeResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VehicleInfo::GetVehicleTypeResponse& res)
- {
- return mNsRPC2Communication_VehicleInfo__GetVehicleTypeResponse.toString(res);
- }
-
-// NsRPC2Communication::VehicleInfo::OnVehicleData
- static bool fromString(const std::string& str, NsRPC2Communication::VehicleInfo::OnVehicleData& res)
- {
- return mNsRPC2Communication_VehicleInfo__OnVehicleData.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VehicleInfo::OnVehicleData& res)
- {
- return mNsRPC2Communication_VehicleInfo__OnVehicleData.toString(res);
- }
-
-// NsRPC2Communication::VehicleInfo::ReadDID
- static bool fromString(const std::string& str, NsRPC2Communication::VehicleInfo::ReadDID& res)
- {
- return mNsRPC2Communication_VehicleInfo__ReadDID.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VehicleInfo::ReadDID& res)
- {
- return mNsRPC2Communication_VehicleInfo__ReadDID.toString(res);
- }
-
-// NsRPC2Communication::VehicleInfo::ReadDIDResponse
- static bool fromString(const std::string& str, NsRPC2Communication::VehicleInfo::ReadDIDResponse& res)
- {
- return mNsRPC2Communication_VehicleInfo__ReadDIDResponse.fromString(str, res);
- }
-
- static std::string toString(const NsRPC2Communication::VehicleInfo::ReadDIDResponse& res)
- {
- return mNsRPC2Communication_VehicleInfo__ReadDIDResponse.toString(res);
- }
-
-
- struct localHash
- {
- const char *name;
- unsigned int idx;
- void* marshaller; // Bingo!!! old good plain C with direct casting!!!
- };
-
-private:
-
- static Json::Value Request2JSON(const ::NsRPC2Communication::RPC2Request* msg);
- static Json::Value Response2JSON(const ::NsRPC2Communication::RPC2Response* msg);
- static Json::Value Notification2JSON(const ::NsRPC2Communication::RPC2Notification* msg);
-
- static const char* getName(Methods e)
- {
- return (e>=0 && e<110) ? mHashTable[e].name : NULL;
- }
-
- static const Methods getIndex(const char* s);
-
- static const localHash mHashTable[110];
- friend class Marshaller_intHash;
-
- static ::NsRPC2Communication::RPC2ErrorMarshaller mRPC2ErrorInternal;
-
- static NsRPC2Communication::BasicCommunication::ActivateAppMarshaller mNsRPC2Communication_BasicCommunication__ActivateApp;
- static NsRPC2Communication::BasicCommunication::ActivateAppResponseMarshaller mNsRPC2Communication_BasicCommunication__ActivateAppResponse;
- static NsRPC2Communication::BasicCommunication::GetAppListMarshaller mNsRPC2Communication_BasicCommunication__GetAppList;
- static NsRPC2Communication::BasicCommunication::GetAppListResponseMarshaller mNsRPC2Communication_BasicCommunication__GetAppListResponse;
- static NsRPC2Communication::BasicCommunication::GetDeviceListMarshaller mNsRPC2Communication_BasicCommunication__GetDeviceList;
- static NsRPC2Communication::BasicCommunication::GetDeviceListResponseMarshaller mNsRPC2Communication_BasicCommunication__GetDeviceListResponse;
- static NsRPC2Communication::BasicCommunication::OnAppDeactivatedMarshaller mNsRPC2Communication_BasicCommunication__OnAppDeactivated;
- //static NsRPC2Communication::BasicCommunication::OnAppDeactivatedResponseMarshaller mNsRPC2Communication_BasicCommunication__OnAppDeactivatedResponse;
- static NsRPC2Communication::BasicCommunication::OnAppRegisteredMarshaller mNsRPC2Communication_BasicCommunication__OnAppRegistered;
- static NsRPC2Communication::BasicCommunication::OnAppUnregisteredMarshaller mNsRPC2Communication_BasicCommunication__OnAppUnregistered;
- static NsRPC2Communication::BasicCommunication::OnDeviceListUpdatedMarshaller mNsRPC2Communication_BasicCommunication__OnDeviceListUpdated;
- static NsRPC2Communication::BasicCommunication::SendDataMarshaller mNsRPC2Communication_BasicCommunication__SendData;
- static NsRPC2Communication::BasicCommunication::SendDataResponseMarshaller mNsRPC2Communication_BasicCommunication__SendDataResponse;
- static NsRPC2Communication::Buttons::GetCapabilitiesMarshaller mNsRPC2Communication_Buttons__GetCapabilities;
- static NsRPC2Communication::Buttons::GetCapabilitiesResponseMarshaller mNsRPC2Communication_Buttons__GetCapabilitiesResponse;
- static NsRPC2Communication::Buttons::OnButtonEventMarshaller mNsRPC2Communication_Buttons__OnButtonEvent;
- static NsRPC2Communication::Buttons::OnButtonPressMarshaller mNsRPC2Communication_Buttons__OnButtonPress;
- static NsRPC2Communication::TTS::ChangeRegistrationMarshaller mNsRPC2Communication_TTS__ChangeRegistration;
- static NsRPC2Communication::TTS::ChangeRegistrationResponseMarshaller mNsRPC2Communication_TTS__ChangeRegistrationResponse;
- static NsRPC2Communication::TTS::GetCapabilitiesMarshaller mNsRPC2Communication_TTS__GetCapabilities;
- static NsRPC2Communication::TTS::GetCapabilitiesResponseMarshaller mNsRPC2Communication_TTS__GetCapabilitiesResponse;
- static NsRPC2Communication::TTS::GetLanguageMarshaller mNsRPC2Communication_TTS__GetLanguage;
- static NsRPC2Communication::TTS::GetLanguageResponseMarshaller mNsRPC2Communication_TTS__GetLanguageResponse;
- static NsRPC2Communication::TTS::GetSupportedLanguagesMarshaller mNsRPC2Communication_TTS__GetSupportedLanguages;
- static NsRPC2Communication::TTS::GetSupportedLanguagesResponseMarshaller mNsRPC2Communication_TTS__GetSupportedLanguagesResponse;
- static NsRPC2Communication::TTS::OnLanguageChangeMarshaller mNsRPC2Communication_TTS__OnLanguageChange;
- static NsRPC2Communication::TTS::SpeakMarshaller mNsRPC2Communication_TTS__Speak;
- static NsRPC2Communication::TTS::SpeakResponseMarshaller mNsRPC2Communication_TTS__SpeakResponse;
- static NsRPC2Communication::UI::AddCommandMarshaller mNsRPC2Communication_UI__AddCommand;
- static NsRPC2Communication::UI::AddCommandResponseMarshaller mNsRPC2Communication_UI__AddCommandResponse;
- static NsRPC2Communication::UI::AddSubMenuMarshaller mNsRPC2Communication_UI__AddSubMenu;
- static NsRPC2Communication::UI::AddSubMenuResponseMarshaller mNsRPC2Communication_UI__AddSubMenuResponse;
- static NsRPC2Communication::UI::AlertMarshaller mNsRPC2Communication_UI__Alert;
- static NsRPC2Communication::UI::AlertResponseMarshaller mNsRPC2Communication_UI__AlertResponse;
- static NsRPC2Communication::UI::AlertManeuverMarshaller mNsRPC2Communication_UI__AlertManeuver;
- static NsRPC2Communication::UI::AlertManeuverResponseMarshaller mNsRPC2Communication_UI__AlertManeuverResponse;
- static NsRPC2Communication::UI::ChangeRegistrationMarshaller mNsRPC2Communication_UI__ChangeRegistration;
- static NsRPC2Communication::UI::ChangeRegistrationResponseMarshaller mNsRPC2Communication_UI__ChangeRegistrationResponse;
- static NsRPC2Communication::UI::CreateInteractionChoiceSetMarshaller mNsRPC2Communication_UI__CreateInteractionChoiceSet;
- static NsRPC2Communication::UI::CreateInteractionChoiceSetResponseMarshaller mNsRPC2Communication_UI__CreateInteractionChoiceSetResponse;
- static NsRPC2Communication::UI::DeleteCommandMarshaller mNsRPC2Communication_UI__DeleteCommand;
- static NsRPC2Communication::UI::DeleteCommandResponseMarshaller mNsRPC2Communication_UI__DeleteCommandResponse;
- static NsRPC2Communication::UI::DeleteInteractionChoiceSetMarshaller mNsRPC2Communication_UI__DeleteInteractionChoiceSet;
- static NsRPC2Communication::UI::DeleteInteractionChoiceSetResponseMarshaller mNsRPC2Communication_UI__DeleteInteractionChoiceSetResponse;
- static NsRPC2Communication::UI::DeleteSubMenuMarshaller mNsRPC2Communication_UI__DeleteSubMenu;
- static NsRPC2Communication::UI::DeleteSubMenuResponseMarshaller mNsRPC2Communication_UI__DeleteSubMenuResponse;
- static NsRPC2Communication::UI::DialNumberMarshaller mNsRPC2Communication_UI__DialNumber;
- static NsRPC2Communication::UI::DialNumberResponseMarshaller mNsRPC2Communication_UI__DialNumberResponse;
- static NsRPC2Communication::UI::EndAudioPassThruMarshaller mNsRPC2Communication_UI__EndAudioPassThru;
- static NsRPC2Communication::UI::EndAudioPassThruResponseMarshaller mNsRPC2Communication_UI__EndAudioPassThruResponse;
- static NsRPC2Communication::UI::GetCapabilitiesMarshaller mNsRPC2Communication_UI__GetCapabilities;
- static NsRPC2Communication::UI::GetCapabilitiesResponseMarshaller mNsRPC2Communication_UI__GetCapabilitiesResponse;
- static NsRPC2Communication::UI::GetLanguageMarshaller mNsRPC2Communication_UI__GetLanguage;
- static NsRPC2Communication::UI::GetLanguageResponseMarshaller mNsRPC2Communication_UI__GetLanguageResponse;
- static NsRPC2Communication::UI::GetSupportedLanguagesMarshaller mNsRPC2Communication_UI__GetSupportedLanguages;
- static NsRPC2Communication::UI::GetSupportedLanguagesResponseMarshaller mNsRPC2Communication_UI__GetSupportedLanguagesResponse;
- static NsRPC2Communication::UI::OnCommandMarshaller mNsRPC2Communication_UI__OnCommand;
- static NsRPC2Communication::UI::OnDeviceChosenMarshaller mNsRPC2Communication_UI__OnDeviceChosen;
- static NsRPC2Communication::UI::OnDriverDistractionMarshaller mNsRPC2Communication_UI__OnDriverDistraction;
- static NsRPC2Communication::UI::OnLanguageChangeMarshaller mNsRPC2Communication_UI__OnLanguageChange;
- static NsRPC2Communication::UI::OnReadyMarshaller mNsRPC2Communication_UI__OnReady;
- static NsRPC2Communication::UI::OnSystemContextMarshaller mNsRPC2Communication_UI__OnSystemContext;
- static NsRPC2Communication::UI::OnTBTClientStateMarshaller mNsRPC2Communication_UI__OnTBTClientState;
- static NsRPC2Communication::UI::PerformAudioPassThruMarshaller mNsRPC2Communication_UI__PerformAudioPassThru;
- static NsRPC2Communication::UI::PerformAudioPassThruResponseMarshaller mNsRPC2Communication_UI__PerformAudioPassThruResponse;
- static NsRPC2Communication::UI::PerformInteractionMarshaller mNsRPC2Communication_UI__PerformInteraction;
- static NsRPC2Communication::UI::PerformInteractionResponseMarshaller mNsRPC2Communication_UI__PerformInteractionResponse;
- static NsRPC2Communication::UI::ResetGlobalPropertiesMarshaller mNsRPC2Communication_UI__ResetGlobalProperties;
- static NsRPC2Communication::UI::ResetGlobalPropertiesResponseMarshaller mNsRPC2Communication_UI__ResetGlobalPropertiesResponse;
- static NsRPC2Communication::UI::ScrollableMessageMarshaller mNsRPC2Communication_UI__ScrollableMessage;
- static NsRPC2Communication::UI::ScrollableMessageResponseMarshaller mNsRPC2Communication_UI__ScrollableMessageResponse;
- static NsRPC2Communication::UI::SetAppIconMarshaller mNsRPC2Communication_UI__SetAppIcon;
- static NsRPC2Communication::UI::SetAppIconResponseMarshaller mNsRPC2Communication_UI__SetAppIconResponse;
- static NsRPC2Communication::UI::SetDisplayLayoutMarshaller mNsRPC2Communication_UI__SetDisplayLayout;
- static NsRPC2Communication::UI::SetDisplayLayoutResponseMarshaller mNsRPC2Communication_UI__SetDisplayLayoutResponse;
- static NsRPC2Communication::UI::SetGlobalPropertiesMarshaller mNsRPC2Communication_UI__SetGlobalProperties;
- static NsRPC2Communication::UI::SetGlobalPropertiesResponseMarshaller mNsRPC2Communication_UI__SetGlobalPropertiesResponse;
- static NsRPC2Communication::UI::SetMediaClockTimerMarshaller mNsRPC2Communication_UI__SetMediaClockTimer;
- static NsRPC2Communication::UI::SetMediaClockTimerResponseMarshaller mNsRPC2Communication_UI__SetMediaClockTimerResponse;
- static NsRPC2Communication::UI::ShowMarshaller mNsRPC2Communication_UI__Show;
- static NsRPC2Communication::UI::ShowResponseMarshaller mNsRPC2Communication_UI__ShowResponse;
- static NsRPC2Communication::UI::ShowConstantTBTMarshaller mNsRPC2Communication_UI__ShowConstantTBT;
- static NsRPC2Communication::UI::ShowConstantTBTResponseMarshaller mNsRPC2Communication_UI__ShowConstantTBTResponse;
- static NsRPC2Communication::UI::SliderMarshaller mNsRPC2Communication_UI__Slider;
- static NsRPC2Communication::UI::SliderResponseMarshaller mNsRPC2Communication_UI__SliderResponse;
- static NsRPC2Communication::UI::UpdateTurnListMarshaller mNsRPC2Communication_UI__UpdateTurnList;
- static NsRPC2Communication::UI::UpdateTurnListResponseMarshaller mNsRPC2Communication_UI__UpdateTurnListResponse;
- static NsRPC2Communication::VR::AddCommandMarshaller mNsRPC2Communication_VR__AddCommand;
- static NsRPC2Communication::VR::AddCommandResponseMarshaller mNsRPC2Communication_VR__AddCommandResponse;
- static NsRPC2Communication::VR::ChangeRegistrationMarshaller mNsRPC2Communication_VR__ChangeRegistration;
- static NsRPC2Communication::VR::ChangeRegistrationResponseMarshaller mNsRPC2Communication_VR__ChangeRegistrationResponse;
- static NsRPC2Communication::VR::DeleteCommandMarshaller mNsRPC2Communication_VR__DeleteCommand;
- static NsRPC2Communication::VR::DeleteCommandResponseMarshaller mNsRPC2Communication_VR__DeleteCommandResponse;
- static NsRPC2Communication::VR::GetCapabilitiesMarshaller mNsRPC2Communication_VR__GetCapabilities;
- static NsRPC2Communication::VR::GetCapabilitiesResponseMarshaller mNsRPC2Communication_VR__GetCapabilitiesResponse;
- static NsRPC2Communication::VR::GetLanguageMarshaller mNsRPC2Communication_VR__GetLanguage;
- static NsRPC2Communication::VR::GetLanguageResponseMarshaller mNsRPC2Communication_VR__GetLanguageResponse;
- static NsRPC2Communication::VR::GetSupportedLanguagesMarshaller mNsRPC2Communication_VR__GetSupportedLanguages;
- static NsRPC2Communication::VR::GetSupportedLanguagesResponseMarshaller mNsRPC2Communication_VR__GetSupportedLanguagesResponse;
- static NsRPC2Communication::VR::OnCommandMarshaller mNsRPC2Communication_VR__OnCommand;
- static NsRPC2Communication::VR::OnLanguageChangeMarshaller mNsRPC2Communication_VR__OnLanguageChange;
- static NsRPC2Communication::VehicleInfo::GetDTCsMarshaller mNsRPC2Communication_VehicleInfo__GetDTCs;
- static NsRPC2Communication::VehicleInfo::GetDTCsResponseMarshaller mNsRPC2Communication_VehicleInfo__GetDTCsResponse;
- static NsRPC2Communication::VehicleInfo::GetVehicleDataMarshaller mNsRPC2Communication_VehicleInfo__GetVehicleData;
- static NsRPC2Communication::VehicleInfo::GetVehicleDataResponseMarshaller mNsRPC2Communication_VehicleInfo__GetVehicleDataResponse;
- static NsRPC2Communication::VehicleInfo::GetVehicleTypeMarshaller mNsRPC2Communication_VehicleInfo__GetVehicleType;
- static NsRPC2Communication::VehicleInfo::GetVehicleTypeResponseMarshaller mNsRPC2Communication_VehicleInfo__GetVehicleTypeResponse;
- static NsRPC2Communication::VehicleInfo::OnVehicleDataMarshaller mNsRPC2Communication_VehicleInfo__OnVehicleData;
- static NsRPC2Communication::VehicleInfo::ReadDIDMarshaller mNsRPC2Communication_VehicleInfo__ReadDID;
- static NsRPC2Communication::VehicleInfo::ReadDIDResponseMarshaller mNsRPC2Communication_VehicleInfo__ReadDIDResponse;
-
-};
-}
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateApp.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateApp.h
deleted file mode 100644
index d109d08b1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateApp.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ACTIVATEAPP_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ACTIVATEAPP_INCLUDE
-
-#include <string>
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class ActivateApp : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- ActivateApp(const ActivateApp& c);
- ActivateApp(void);
-
- ActivateApp& operator =(const ActivateApp&);
-
- virtual ~ActivateApp(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string& get_appName(void);
-
- int get_appId(void);
-
-
-// setters
-/// appName <= 100
- bool set_appName(const std::string& appName);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class ActivateAppMarshaller;
-
- std::string appName;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateAppResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateAppResponse.h
deleted file mode 100644
index 6114e9beb..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateAppResponse.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ACTIVATEAPPRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ACTIVATEAPPRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class ActivateAppResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- ActivateAppResponse(const ActivateAppResponse& c);
- ActivateAppResponse(void);
-
- ActivateAppResponse& operator =(const ActivateAppResponse&);
-
- virtual ~ActivateAppResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class ActivateAppResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppList.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppList.h
deleted file mode 100644
index 6072f4d4d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppList.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETAPPLIST_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETAPPLIST_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class GetAppList : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetAppList(const GetAppList& c);
- GetAppList(void);
-
- GetAppList& operator =(const GetAppList&);
-
- virtual ~GetAppList(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetAppListMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppListResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppListResponse.h
deleted file mode 100644
index a6295ae54..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppListResponse.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETAPPLISTRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETAPPLISTRESPONSE_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/HMIApplication.h"
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class GetAppListResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetAppListResponse(const GetAppListResponse& c);
- GetAppListResponse(void);
-
- GetAppListResponse& operator =(const GetAppListResponse&);
-
- virtual ~GetAppListResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::HMIApplication>& get_appList(void);
-
-
-// setters
- bool set_appList(const std::vector< NsSmartDeviceLinkRPCV2::HMIApplication>& appList);
-
-
- private:
-
- friend class GetAppListResponseMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::HMIApplication> appList;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceList.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceList.h
deleted file mode 100644
index 32e02d0a7..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceList.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETDEVICELIST_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETDEVICELIST_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class GetDeviceList : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetDeviceList(const GetDeviceList& c);
- GetDeviceList(void);
-
- GetDeviceList& operator =(const GetDeviceList&);
-
- virtual ~GetDeviceList(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetDeviceListMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.h
deleted file mode 100644
index dcca95313..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETDEVICELISTRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETDEVICELISTRESPONSE_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class GetDeviceListResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetDeviceListResponse(const GetDeviceListResponse& c);
- GetDeviceListResponse(void);
-
- GetDeviceListResponse& operator =(const GetDeviceListResponse&);
-
- virtual ~GetDeviceListResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< std::string>* get_deviceList(void);
-
-// setters
-/// 1 <= size <= 100
- bool set_deviceList(const std::vector< std::string>& deviceList);
-
- void reset_deviceList(void);
-
-
- private:
-
- friend class GetDeviceListResponseMarshaller;
-
- std::vector< std::string>* deviceList;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivated.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivated.h
deleted file mode 100644
index ee6ef2566..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivated.h
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPDEACTIVATED_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPDEACTIVATED_INCLUDE
-
-#include <string>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeactivateReason.h"
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class OnAppDeactivated : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- OnAppDeactivated(const OnAppDeactivated& c);
- OnAppDeactivated(void);
-
- OnAppDeactivated& operator =(const OnAppDeactivated&);
-
- virtual ~OnAppDeactivated(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string& get_appName(void);
-
- const NsSmartDeviceLinkRPCV2::DeactivateReason& get_reason(void);
-
- int get_appId(void);
-
-
-// setters
-/// appName <= 100
- bool set_appName(const std::string& appName);
-
- bool set_reason(const NsSmartDeviceLinkRPCV2::DeactivateReason& reason);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class OnAppDeactivatedMarshaller;
-
- std::string appName;
- NsSmartDeviceLinkRPCV2::DeactivateReason reason;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.h
deleted file mode 100644
index c09ccbc02..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPDEACTIVATEDRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPDEACTIVATEDRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class OnAppDeactivatedResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- OnAppDeactivatedResponse(const OnAppDeactivatedResponse& c);
- OnAppDeactivatedResponse(void);
-
- OnAppDeactivatedResponse& operator =(const OnAppDeactivatedResponse&);
-
- virtual ~OnAppDeactivatedResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class OnAppDeactivatedResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppRegistered.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppRegistered.h
deleted file mode 100644
index 9829ae87c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppRegistered.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPREGISTERED_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPREGISTERED_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/HMIApplication.h"
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class OnAppRegistered : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnAppRegistered(const OnAppRegistered& c);
- OnAppRegistered(void);
-
- OnAppRegistered& operator =(const OnAppRegistered&);
-
- virtual ~OnAppRegistered(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::HMIApplication& get_application(void);
-
-
-// setters
- bool set_application(const NsSmartDeviceLinkRPCV2::HMIApplication& application);
-
-
- private:
-
- friend class OnAppRegisteredMarshaller;
-
- NsSmartDeviceLinkRPCV2::HMIApplication application;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppUnregistered.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppUnregistered.h
deleted file mode 100644
index 2ffc0d767..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppUnregistered.h
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPUNREGISTERED_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPUNREGISTERED_INCLUDE
-
-#include <string>
-#include "JSONHandler/RPC2Notification.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AppInterfaceUnregisteredReason.h"
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class OnAppUnregistered : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnAppUnregistered(const OnAppUnregistered& c);
- OnAppUnregistered(void);
-
- OnAppUnregistered& operator =(const OnAppUnregistered&);
-
- virtual ~OnAppUnregistered(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string& get_appName(void);
-
- const NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason* get_reason(void);
- int get_appId(void);
-
-
-// setters
-/// appName <= 100
- bool set_appName(const std::string& appName);
-
- bool set_reason(const NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason& reason);
-
- void reset_reason(void);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class OnAppUnregisteredMarshaller;
-
- std::string appName;
- NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason* reason;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.h
deleted file mode 100644
index 2b6161800..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONDEVICELISTUPDATED_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONDEVICELISTUPDATED_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Notification.h"
-
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class OnDeviceListUpdated : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnDeviceListUpdated(const OnDeviceListUpdated& c);
- OnDeviceListUpdated(void);
-
- OnDeviceListUpdated& operator =(const OnDeviceListUpdated&);
-
- virtual ~OnDeviceListUpdated(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< std::string>* get_deviceList(void);
-
-// setters
-/// 1 <= size <= 100
- bool set_deviceList(const std::vector< std::string>& deviceList);
-
- void reset_deviceList(void);
-
-
- private:
-
- friend class OnDeviceListUpdatedMarshaller;
-
- std::vector< std::string>* deviceList;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/RPC2.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/RPC2.h
deleted file mode 100644
index d120fed0d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/RPC2.h
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_RPC2_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_RPC2_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/ActivateApp.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/ActivateAppResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/GetAppList.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/GetAppListResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/GetDeviceList.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/GetDeviceListResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/OnAppDeactivated.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/OnAppRegistered.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/OnAppUnregistered.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/SendData.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/SendDataResponse.h"
-
-#include "../src/../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendData.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendData.h
deleted file mode 100644
index 34173190b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendData.h
+++ /dev/null
@@ -1,99 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_SENDDATA_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_SENDDATA_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class SendData : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- SendData(const SendData& c);
- SendData(void);
-
- SendData& operator =(const SendData&);
-
- virtual ~SendData(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< std::string>& get_data(void);
-
- const std::string* get_url(void);
- const int* get_timeout(void);
-
-// setters
-/// 1 <= size <= 100
- bool set_data(const std::vector< std::string>& data);
-
-/// url <= 1000
- bool set_url(const std::string& url);
-
- void reset_url(void);
-
-/// -2000000000 <= timeout <= 2000000000
- bool set_timeout(const int& timeout);
-
- void reset_timeout(void);
-
-
- private:
-
- friend class SendDataMarshaller;
-
- std::vector< std::string> data;
- std::string* url;
- int* timeout;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendDataResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendDataResponse.h
deleted file mode 100644
index 40dbe89e3..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendDataResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_SENDDATARESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_SENDDATARESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- class SendDataResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- SendDataResponse(const SendDataResponse& c);
- SendDataResponse(void);
-
- SendDataResponse& operator =(const SendDataResponse&);
-
- virtual ~SendDataResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class SendDataResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilities.h
deleted file mode 100644
index d70fd8a59..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilities.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_BUTTONS_GETCAPABILITIES_INCLUDE
-#define NSRPC2COMMUNICATION_BUTTONS_GETCAPABILITIES_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace Buttons
- {
-
- class GetCapabilities : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetCapabilities(const GetCapabilities& c);
- GetCapabilities(void);
-
- GetCapabilities& operator =(const GetCapabilities&);
-
- virtual ~GetCapabilities(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetCapabilitiesMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilitiesResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilitiesResponse.h
deleted file mode 100644
index 36f708386..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilitiesResponse.h
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_BUTTONS_GETCAPABILITIESRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_BUTTONS_GETCAPABILITIESRESPONSE_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonCapabilities.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/PresetBankCapabilities.h"
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace Buttons
- {
-
- class GetCapabilitiesResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetCapabilitiesResponse(const GetCapabilitiesResponse& c);
- GetCapabilitiesResponse(void);
-
- GetCapabilitiesResponse& operator =(const GetCapabilitiesResponse&);
-
- virtual ~GetCapabilitiesResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::ButtonCapabilities>& get_capabilities(void);
-
- const NsSmartDeviceLinkRPCV2::PresetBankCapabilities* get_presetBankCapabilities(void);
-
-// setters
-/// 1 <= size <= 100
- bool set_capabilities(const std::vector< NsSmartDeviceLinkRPCV2::ButtonCapabilities>& capabilities);
-
- bool set_presetBankCapabilities(const NsSmartDeviceLinkRPCV2::PresetBankCapabilities& presetBankCapabilities);
-
- void reset_presetBankCapabilities(void);
-
-
- private:
-
- friend class GetCapabilitiesResponseMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::ButtonCapabilities> capabilities;
- NsSmartDeviceLinkRPCV2::PresetBankCapabilities* presetBankCapabilities;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonEvent.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonEvent.h
deleted file mode 100644
index 0961d6e87..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonEvent.h
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_BUTTONS_ONBUTTONEVENT_INCLUDE
-#define NSRPC2COMMUNICATION_BUTTONS_ONBUTTONEVENT_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonName.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonEventMode.h"
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace Buttons
- {
-
- class OnButtonEvent : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnButtonEvent(const OnButtonEvent& c);
- OnButtonEvent(void);
-
- OnButtonEvent& operator =(const OnButtonEvent&);
-
- virtual ~OnButtonEvent(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::ButtonName& get_name(void);
-
- const NsSmartDeviceLinkRPCV2::ButtonEventMode& get_mode(void);
-
- const unsigned int* get_customButtonID(void);
-
-// setters
- bool set_name(const NsSmartDeviceLinkRPCV2::ButtonName& name);
-
- bool set_mode(const NsSmartDeviceLinkRPCV2::ButtonEventMode& mode);
-
-/// customButtonID <= 65536
- bool set_customButtonID(const unsigned int& customButtonID);
-
- void reset_customButtonID(void);
-
-
- private:
-
- friend class OnButtonEventMarshaller;
-
- NsSmartDeviceLinkRPCV2::ButtonName name;
- NsSmartDeviceLinkRPCV2::ButtonEventMode mode;
- unsigned int* customButtonID;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonPress.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonPress.h
deleted file mode 100644
index 92d315a41..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonPress.h
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_BUTTONS_ONBUTTONPRESS_INCLUDE
-#define NSRPC2COMMUNICATION_BUTTONS_ONBUTTONPRESS_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonName.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonPressMode.h"
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace Buttons
- {
-
- class OnButtonPress : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnButtonPress(const OnButtonPress& c);
- OnButtonPress(void);
-
- OnButtonPress& operator =(const OnButtonPress&);
-
- virtual ~OnButtonPress(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::ButtonName& get_name(void);
-
- const NsSmartDeviceLinkRPCV2::ButtonPressMode& get_mode(void);
-
- const unsigned int* get_customButtonID(void);
-
-// setters
- bool set_name(const NsSmartDeviceLinkRPCV2::ButtonName& name);
-
- bool set_mode(const NsSmartDeviceLinkRPCV2::ButtonPressMode& mode);
-
-/// customButtonID <= 65536
- bool set_customButtonID(const unsigned int& customButtonID);
-
- void reset_customButtonID(void);
-
-
- private:
-
- friend class OnButtonPressMarshaller;
-
- NsSmartDeviceLinkRPCV2::ButtonName name;
- NsSmartDeviceLinkRPCV2::ButtonPressMode mode;
- unsigned int* customButtonID;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/RPC2.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/RPC2.h
deleted file mode 100644
index cb7eea258..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/RPC2.h
+++ /dev/null
@@ -1,55 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_BUTTONS_RPC2_INCLUDE
-#define NSRPC2COMMUNICATION_BUTTONS_RPC2_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/Buttons/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/Buttons/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/Buttons/OnButtonEvent.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/Buttons/OnButtonPress.h"
-
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistration.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistration.h
deleted file mode 100644
index e37587be4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistration.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_CHANGEREGISTRATION_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_CHANGEREGISTRATION_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- class ChangeRegistration : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- ChangeRegistration(const ChangeRegistration& c);
- ChangeRegistration(void);
-
- ChangeRegistration& operator =(const ChangeRegistration&);
-
- virtual ~ChangeRegistration(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::Language& get_language(void);
-
- int get_appId(void);
-
-
-// setters
- bool set_language(const NsSmartDeviceLinkRPCV2::Language& language);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class ChangeRegistrationMarshaller;
-
- NsSmartDeviceLinkRPCV2::Language language;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistrationResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistrationResponse.h
deleted file mode 100644
index c2afcebb3..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistrationResponse.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_CHANGEREGISTRATIONRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_CHANGEREGISTRATIONRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- class ChangeRegistrationResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- ChangeRegistrationResponse(const ChangeRegistrationResponse& c);
- ChangeRegistrationResponse(void);
-
- ChangeRegistrationResponse& operator =(const ChangeRegistrationResponse&);
-
- virtual ~ChangeRegistrationResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class ChangeRegistrationResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilities.h
deleted file mode 100644
index 1dd3d363e..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilities.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETCAPABILITIES_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETCAPABILITIES_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- class GetCapabilities : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetCapabilities(const GetCapabilities& c);
- GetCapabilities(void);
-
- GetCapabilities& operator =(const GetCapabilities&);
-
- virtual ~GetCapabilities(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetCapabilitiesMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilitiesResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilitiesResponse.h
deleted file mode 100644
index 69c9d1469..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilitiesResponse.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETCAPABILITIESRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETCAPABILITIESRESPONSE_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SpeechCapabilities.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- class GetCapabilitiesResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetCapabilitiesResponse(const GetCapabilitiesResponse& c);
- GetCapabilitiesResponse(void);
-
- GetCapabilitiesResponse& operator =(const GetCapabilitiesResponse&);
-
- virtual ~GetCapabilitiesResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::SpeechCapabilities>& get_capabilities(void);
-
-
-// setters
-/// 1 <= size <= 100
- bool set_capabilities(const std::vector< NsSmartDeviceLinkRPCV2::SpeechCapabilities>& capabilities);
-
-
- private:
-
- friend class GetCapabilitiesResponseMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::SpeechCapabilities> capabilities;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguage.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguage.h
deleted file mode 100644
index 49a650d77..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguage.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETLANGUAGE_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETLANGUAGE_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- class GetLanguage : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetLanguage(const GetLanguage& c);
- GetLanguage(void);
-
- GetLanguage& operator =(const GetLanguage&);
-
- virtual ~GetLanguage(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetLanguageMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguageResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguageResponse.h
deleted file mode 100644
index 00e579168..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguageResponse.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETLANGUAGERESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETLANGUAGERESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- class GetLanguageResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetLanguageResponse(const GetLanguageResponse& c);
- GetLanguageResponse(void);
-
- GetLanguageResponse& operator =(const GetLanguageResponse&);
-
- virtual ~GetLanguageResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::Language& get_language(void);
-
-
-// setters
- bool set_language(const NsSmartDeviceLinkRPCV2::Language& language);
-
-
- private:
-
- friend class GetLanguageResponseMarshaller;
-
- NsSmartDeviceLinkRPCV2::Language language;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguages.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguages.h
deleted file mode 100644
index 70e7051d1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguages.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETSUPPORTEDLANGUAGES_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETSUPPORTEDLANGUAGES_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- class GetSupportedLanguages : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetSupportedLanguages(const GetSupportedLanguages& c);
- GetSupportedLanguages(void);
-
- GetSupportedLanguages& operator =(const GetSupportedLanguages&);
-
- virtual ~GetSupportedLanguages(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetSupportedLanguagesMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.h
deleted file mode 100644
index 96beb4d03..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETSUPPORTEDLANGUAGESRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETSUPPORTEDLANGUAGESRESPONSE_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- class GetSupportedLanguagesResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetSupportedLanguagesResponse(const GetSupportedLanguagesResponse& c);
- GetSupportedLanguagesResponse(void);
-
- GetSupportedLanguagesResponse& operator =(const GetSupportedLanguagesResponse&);
-
- virtual ~GetSupportedLanguagesResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::Language>& get_languages(void);
-
-
-// setters
-/// 1 <= size <= 100
- bool set_languages(const std::vector< NsSmartDeviceLinkRPCV2::Language>& languages);
-
-
- private:
-
- friend class GetSupportedLanguagesResponseMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::Language> languages;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/OnLanguageChange.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/OnLanguageChange.h
deleted file mode 100644
index 7c2e15c24..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/OnLanguageChange.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_ONLANGUAGECHANGE_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_ONLANGUAGECHANGE_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- class OnLanguageChange : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnLanguageChange(const OnLanguageChange& c);
- OnLanguageChange(void);
-
- OnLanguageChange& operator =(const OnLanguageChange&);
-
- virtual ~OnLanguageChange(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::Language& get_language(void);
-
-
-// setters
- bool set_language(const NsSmartDeviceLinkRPCV2::Language& language);
-
-
- private:
-
- friend class OnLanguageChangeMarshaller;
-
- NsSmartDeviceLinkRPCV2::Language language;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/RPC2.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/RPC2.h
deleted file mode 100644
index 836b5e776..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/RPC2.h
+++ /dev/null
@@ -1,62 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_RPC2_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_RPC2_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/ChangeRegistration.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/ChangeRegistrationResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetLanguage.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetLanguageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetSupportedLanguages.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetSupportedLanguagesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/OnLanguageChange.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/Speak.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/SpeakResponse.h"
-
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/Speak.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/Speak.h
deleted file mode 100644
index 3e9b6297d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/Speak.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_SPEAK_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_SPEAK_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- class Speak : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- Speak(const Speak& c);
- Speak(void);
-
- Speak& operator =(const Speak&);
-
- virtual ~Speak(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& get_ttsChunks(void);
-
- int get_appId(void);
-
-
-// setters
-/// 1 <= size <= 100
- bool set_ttsChunks(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& ttsChunks);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class SpeakMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::TTSChunk> ttsChunks;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/SpeakResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/SpeakResponse.h
deleted file mode 100644
index 2e616bb57..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/SpeakResponse.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_SPEAKRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_SPEAKRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- class SpeakResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- SpeakResponse(const SpeakResponse& c);
- SpeakResponse(void);
-
- SpeakResponse& operator =(const SpeakResponse&);
-
- virtual ~SpeakResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class SpeakResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommand.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommand.h
deleted file mode 100644
index 53d1d6b4e..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommand.h
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ADDCOMMAND_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ADDCOMMAND_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/MenuParams.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Image.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class AddCommand : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- AddCommand(const AddCommand& c);
- AddCommand(void);
-
- AddCommand& operator =(const AddCommand&);
-
- virtual ~AddCommand(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_cmdId(void);
-
- const NsSmartDeviceLinkRPCV2::MenuParams& get_menuParams(void);
-
- const NsSmartDeviceLinkRPCV2::Image* get_cmdIcon(void);
- int get_appId(void);
-
-
-// setters
-/// cmdId <= 2000000000
- bool set_cmdId(unsigned int cmdId);
-
- bool set_menuParams(const NsSmartDeviceLinkRPCV2::MenuParams& menuParams);
-
- bool set_cmdIcon(const NsSmartDeviceLinkRPCV2::Image& cmdIcon);
-
- void reset_cmdIcon(void);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class AddCommandMarshaller;
-
- unsigned int cmdId;
- NsSmartDeviceLinkRPCV2::MenuParams menuParams;
- NsSmartDeviceLinkRPCV2::Image* cmdIcon;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommandResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommandResponse.h
deleted file mode 100644
index 89af58f84..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommandResponse.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ADDCOMMANDRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ADDCOMMANDRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class AddCommandResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- AddCommandResponse(const AddCommandResponse& c);
- AddCommandResponse(void);
-
- AddCommandResponse& operator =(const AddCommandResponse&);
-
- virtual ~AddCommandResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class AddCommandResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenu.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenu.h
deleted file mode 100644
index 5cc437cd0..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenu.h
+++ /dev/null
@@ -1,102 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ADDSUBMENU_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ADDSUBMENU_INCLUDE
-
-#include <string>
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class AddSubMenu : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- AddSubMenu(const AddSubMenu& c);
- AddSubMenu(void);
-
- AddSubMenu& operator =(const AddSubMenu&);
-
- virtual ~AddSubMenu(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_menuId(void);
-
- const unsigned int* get_position(void);
- const std::string& get_menuName(void);
-
- int get_appId(void);
-
-
-// setters
-/// menuId <= 2000000000
- bool set_menuId(unsigned int menuId);
-
-/// position <= 1000
- bool set_position(const unsigned int& position);
-
- void reset_position(void);
-
-/// menuName <= 500
- bool set_menuName(const std::string& menuName);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class AddSubMenuMarshaller;
-
- unsigned int menuId;
- unsigned int* position;
- std::string menuName;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenuResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenuResponse.h
deleted file mode 100644
index cf9ff2752..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenuResponse.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ADDSUBMENURESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ADDSUBMENURESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class AddSubMenuResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- AddSubMenuResponse(const AddSubMenuResponse& c);
- AddSubMenuResponse(void);
-
- AddSubMenuResponse& operator =(const AddSubMenuResponse&);
-
- virtual ~AddSubMenuResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class AddSubMenuResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Alert.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Alert.h
deleted file mode 100644
index 67c3de943..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Alert.h
+++ /dev/null
@@ -1,134 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ALERT_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ALERT_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButton.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class Alert : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- Alert(const Alert& c);
- Alert(void);
-
- Alert& operator =(const Alert&);
-
- virtual ~Alert(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string* get_AlertText1(void);
- const std::string* get_AlertText2(void);
- const std::string* get_AlertText3(void);
- const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* get_ttsChunks(void);
- const unsigned int* get_duration(void);
- const bool* get_playTone(void);
- const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>* get_softButtons(void);
- int get_appId(void);
-
-
-// setters
-/// AlertText1 <= 500
- bool set_AlertText1(const std::string& AlertText1);
-
- void reset_AlertText1(void);
-
-/// AlertText2 <= 500
- bool set_AlertText2(const std::string& AlertText2);
-
- void reset_AlertText2(void);
-
-/// AlertText3 <= 500
- bool set_AlertText3(const std::string& AlertText3);
-
- void reset_AlertText3(void);
-
-/// 1 <= size <= 100
- bool set_ttsChunks(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& ttsChunks);
-
- void reset_ttsChunks(void);
-
-/// 3000 <= duration <= 10000
- bool set_duration(const unsigned int& duration);
-
- void reset_duration(void);
-
- bool set_playTone(const bool& playTone);
-
- void reset_playTone(void);
-
-/// 0 <= size <= 4
- bool set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons);
-
- void reset_softButtons(void);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class AlertMarshaller;
-
- std::string* AlertText1;
- std::string* AlertText2;
- std::string* AlertText3;
- std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* ttsChunks;
- unsigned int* duration;
- bool* playTone;
- std::vector< NsSmartDeviceLinkRPCV2::SoftButton>* softButtons;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuver.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuver.h
deleted file mode 100644
index 7cd19df2c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuver.h
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ALERTMANEUVER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ALERTMANEUVER_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButton.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class AlertManeuver : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- AlertManeuver(const AlertManeuver& c);
- AlertManeuver(void);
-
- AlertManeuver& operator =(const AlertManeuver&);
-
- virtual ~AlertManeuver(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& get_ttsChunks(void);
-
- const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& get_softButtons(void);
-
- int get_appId(void);
-
-
-// setters
-/// 1 <= size <= 100
- bool set_ttsChunks(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& ttsChunks);
-
-/// 0 <= size <= 3
- bool set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class AlertManeuverMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::TTSChunk> ttsChunks;
- std::vector< NsSmartDeviceLinkRPCV2::SoftButton> softButtons;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuverResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuverResponse.h
deleted file mode 100644
index e116ac580..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuverResponse.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ALERTMANEUVERRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ALERTMANEUVERRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class AlertManeuverResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- AlertManeuverResponse(const AlertManeuverResponse& c);
- AlertManeuverResponse(void);
-
- AlertManeuverResponse& operator =(const AlertManeuverResponse&);
-
- virtual ~AlertManeuverResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class AlertManeuverResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertResponse.h
deleted file mode 100644
index 55d8bfa1f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertResponse.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ALERTRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ALERTRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class AlertResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- AlertResponse(const AlertResponse& c);
- AlertResponse(void);
-
- AlertResponse& operator =(const AlertResponse&);
-
- virtual ~AlertResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const unsigned int* get_tryAgainTime(void);
-
-// setters
-/// tryAgainTime <= 2000000000
- bool set_tryAgainTime(const unsigned int& tryAgainTime);
-
- void reset_tryAgainTime(void);
-
-
- private:
-
- friend class AlertResponseMarshaller;
-
- unsigned int* tryAgainTime;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistration.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistration.h
deleted file mode 100644
index 304f12a95..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistration.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_CHANGEREGISTRATION_INCLUDE
-#define NSRPC2COMMUNICATION_UI_CHANGEREGISTRATION_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class ChangeRegistration : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- ChangeRegistration(const ChangeRegistration& c);
- ChangeRegistration(void);
-
- ChangeRegistration& operator =(const ChangeRegistration&);
-
- virtual ~ChangeRegistration(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::Language& get_hmiDisplayLanguage(void);
-
- int get_appId(void);
-
-
-// setters
- bool set_hmiDisplayLanguage(const NsSmartDeviceLinkRPCV2::Language& hmiDisplayLanguage);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class ChangeRegistrationMarshaller;
-
- NsSmartDeviceLinkRPCV2::Language hmiDisplayLanguage;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistrationResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistrationResponse.h
deleted file mode 100644
index 87565dfcd..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistrationResponse.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_CHANGEREGISTRATIONRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_CHANGEREGISTRATIONRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class ChangeRegistrationResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- ChangeRegistrationResponse(const ChangeRegistrationResponse& c);
- ChangeRegistrationResponse(void);
-
- ChangeRegistrationResponse& operator =(const ChangeRegistrationResponse&);
-
- virtual ~ChangeRegistrationResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class ChangeRegistrationResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSet.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSet.h
deleted file mode 100644
index 1eb4aacad..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSet.h
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_CREATEINTERACTIONCHOICESET_INCLUDE
-#define NSRPC2COMMUNICATION_UI_CREATEINTERACTIONCHOICESET_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Choice.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class CreateInteractionChoiceSet : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- CreateInteractionChoiceSet(const CreateInteractionChoiceSet& c);
- CreateInteractionChoiceSet(void);
-
- CreateInteractionChoiceSet& operator =(const CreateInteractionChoiceSet&);
-
- virtual ~CreateInteractionChoiceSet(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_interactionChoiceSetID(void);
-
- const std::vector< NsSmartDeviceLinkRPCV2::Choice>& get_choiceSet(void);
-
- int get_appId(void);
-
-
-// setters
-/// interactionChoiceSetID <= 2000000000
- bool set_interactionChoiceSetID(unsigned int interactionChoiceSetID);
-
-/// 1 <= size <= 100
- bool set_choiceSet(const std::vector< NsSmartDeviceLinkRPCV2::Choice>& choiceSet);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class CreateInteractionChoiceSetMarshaller;
-
- unsigned int interactionChoiceSetID;
- std::vector< NsSmartDeviceLinkRPCV2::Choice> choiceSet;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.h
deleted file mode 100644
index 406ba5e0c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_CREATEINTERACTIONCHOICESETRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_CREATEINTERACTIONCHOICESETRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class CreateInteractionChoiceSetResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- CreateInteractionChoiceSetResponse(const CreateInteractionChoiceSetResponse& c);
- CreateInteractionChoiceSetResponse(void);
-
- CreateInteractionChoiceSetResponse& operator =(const CreateInteractionChoiceSetResponse&);
-
- virtual ~CreateInteractionChoiceSetResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class CreateInteractionChoiceSetResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommand.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommand.h
deleted file mode 100644
index f71d6f4d3..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommand.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETECOMMAND_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETECOMMAND_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class DeleteCommand : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- DeleteCommand(const DeleteCommand& c);
- DeleteCommand(void);
-
- DeleteCommand& operator =(const DeleteCommand&);
-
- virtual ~DeleteCommand(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_cmdId(void);
-
- int get_appId(void);
-
-
-// setters
-/// cmdId <= 2000000000
- bool set_cmdId(unsigned int cmdId);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class DeleteCommandMarshaller;
-
- unsigned int cmdId;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommandResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommandResponse.h
deleted file mode 100644
index b5cf749c8..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommandResponse.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETECOMMANDRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETECOMMANDRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class DeleteCommandResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- DeleteCommandResponse(const DeleteCommandResponse& c);
- DeleteCommandResponse(void);
-
- DeleteCommandResponse& operator =(const DeleteCommandResponse&);
-
- virtual ~DeleteCommandResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class DeleteCommandResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSet.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSet.h
deleted file mode 100644
index d1cde5163..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSet.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETEINTERACTIONCHOICESET_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETEINTERACTIONCHOICESET_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class DeleteInteractionChoiceSet : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- DeleteInteractionChoiceSet(const DeleteInteractionChoiceSet& c);
- DeleteInteractionChoiceSet(void);
-
- DeleteInteractionChoiceSet& operator =(const DeleteInteractionChoiceSet&);
-
- virtual ~DeleteInteractionChoiceSet(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_interactionChoiceSetID(void);
-
- int get_appId(void);
-
-
-// setters
-/// interactionChoiceSetID <= 2000000000
- bool set_interactionChoiceSetID(unsigned int interactionChoiceSetID);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class DeleteInteractionChoiceSetMarshaller;
-
- unsigned int interactionChoiceSetID;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.h
deleted file mode 100644
index fbc5ee0b2..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETEINTERACTIONCHOICESETRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETEINTERACTIONCHOICESETRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class DeleteInteractionChoiceSetResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- DeleteInteractionChoiceSetResponse(const DeleteInteractionChoiceSetResponse& c);
- DeleteInteractionChoiceSetResponse(void);
-
- DeleteInteractionChoiceSetResponse& operator =(const DeleteInteractionChoiceSetResponse&);
-
- virtual ~DeleteInteractionChoiceSetResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class DeleteInteractionChoiceSetResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenu.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenu.h
deleted file mode 100644
index ef258893c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenu.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETESUBMENU_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETESUBMENU_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class DeleteSubMenu : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- DeleteSubMenu(const DeleteSubMenu& c);
- DeleteSubMenu(void);
-
- DeleteSubMenu& operator =(const DeleteSubMenu&);
-
- virtual ~DeleteSubMenu(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_menuId(void);
-
- int get_appId(void);
-
-
-// setters
-/// menuId <= 2000000000
- bool set_menuId(unsigned int menuId);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class DeleteSubMenuMarshaller;
-
- unsigned int menuId;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenuResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenuResponse.h
deleted file mode 100644
index 670d52db4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenuResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETESUBMENURESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETESUBMENURESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class DeleteSubMenuResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- DeleteSubMenuResponse(const DeleteSubMenuResponse& c);
- DeleteSubMenuResponse(void);
-
- DeleteSubMenuResponse& operator =(const DeleteSubMenuResponse&);
-
- virtual ~DeleteSubMenuResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class DeleteSubMenuResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumber.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumber.h
deleted file mode 100644
index 04ee84c0f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumber.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DIALNUMBER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DIALNUMBER_INCLUDE
-
-#include <string>
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class DialNumber : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- DialNumber(const DialNumber& c);
- DialNumber(void);
-
- DialNumber& operator =(const DialNumber&);
-
- virtual ~DialNumber(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string& get_number(void);
-
- int get_appId(void);
-
-
-// setters
-/// number <= 500
- bool set_number(const std::string& number);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class DialNumberMarshaller;
-
- std::string number;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumberResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumberResponse.h
deleted file mode 100644
index 6dc53db5b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumberResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DIALNUMBERRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DIALNUMBERRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class DialNumberResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- DialNumberResponse(const DialNumberResponse& c);
- DialNumberResponse(void);
-
- DialNumberResponse& operator =(const DialNumberResponse&);
-
- virtual ~DialNumberResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class DialNumberResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThru.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThru.h
deleted file mode 100644
index 89cf43623..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThru.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ENDAUDIOPASSTHRU_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ENDAUDIOPASSTHRU_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class EndAudioPassThru : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- EndAudioPassThru(const EndAudioPassThru& c);
- EndAudioPassThru(void);
-
- EndAudioPassThru& operator =(const EndAudioPassThru&);
-
- virtual ~EndAudioPassThru(void);
-
- bool checkIntegrity(void);
-
-// getters
- int get_appId(void);
-
-
-// setters
- bool set_appId(int appId);
-
-
- private:
-
- friend class EndAudioPassThruMarshaller;
-
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThruResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThruResponse.h
deleted file mode 100644
index 665dff35a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThruResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ENDAUDIOPASSTHRURESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ENDAUDIOPASSTHRURESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class EndAudioPassThruResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- EndAudioPassThruResponse(const EndAudioPassThruResponse& c);
- EndAudioPassThruResponse(void);
-
- EndAudioPassThruResponse& operator =(const EndAudioPassThruResponse&);
-
- virtual ~EndAudioPassThruResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class EndAudioPassThruResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilities.h
deleted file mode 100644
index 7eb81ce29..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilities.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETCAPABILITIES_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETCAPABILITIES_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class GetCapabilities : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetCapabilities(const GetCapabilities& c);
- GetCapabilities(void);
-
- GetCapabilities& operator =(const GetCapabilities&);
-
- virtual ~GetCapabilities(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetCapabilitiesMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilitiesResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilitiesResponse.h
deleted file mode 100644
index 5d5b3b4a4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilitiesResponse.h
+++ /dev/null
@@ -1,100 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETCAPABILITIESRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETCAPABILITIESRESPONSE_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DisplayCapabilities.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/HmiZoneCapabilities.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButtonCapabilities.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class GetCapabilitiesResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetCapabilitiesResponse(const GetCapabilitiesResponse& c);
- GetCapabilitiesResponse(void);
-
- GetCapabilitiesResponse& operator =(const GetCapabilitiesResponse&);
-
- virtual ~GetCapabilitiesResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::DisplayCapabilities& get_displayCapabilities(void);
-
- const std::vector< NsSmartDeviceLinkRPCV2::HmiZoneCapabilities>& get_hmiZoneCapabilities(void);
-
- const std::vector< NsSmartDeviceLinkRPCV2::SoftButtonCapabilities>* get_softButtonCapabilities(void);
-
-// setters
- bool set_displayCapabilities(const NsSmartDeviceLinkRPCV2::DisplayCapabilities& displayCapabilities);
-
-/// 1 <= size <= 100
- bool set_hmiZoneCapabilities(const std::vector< NsSmartDeviceLinkRPCV2::HmiZoneCapabilities>& hmiZoneCapabilities);
-
-/// 1 <= size <= 100
- bool set_softButtonCapabilities(const std::vector< NsSmartDeviceLinkRPCV2::SoftButtonCapabilities>& softButtonCapabilities);
-
- void reset_softButtonCapabilities(void);
-
-
- private:
-
- friend class GetCapabilitiesResponseMarshaller;
-
- NsSmartDeviceLinkRPCV2::DisplayCapabilities displayCapabilities;
- std::vector< NsSmartDeviceLinkRPCV2::HmiZoneCapabilities> hmiZoneCapabilities;
- std::vector< NsSmartDeviceLinkRPCV2::SoftButtonCapabilities>* softButtonCapabilities;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguage.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguage.h
deleted file mode 100644
index d350718c1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguage.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETLANGUAGE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETLANGUAGE_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class GetLanguage : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetLanguage(const GetLanguage& c);
- GetLanguage(void);
-
- GetLanguage& operator =(const GetLanguage&);
-
- virtual ~GetLanguage(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetLanguageMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguageResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguageResponse.h
deleted file mode 100644
index 7e7d1f8a1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguageResponse.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETLANGUAGERESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETLANGUAGERESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class GetLanguageResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetLanguageResponse(const GetLanguageResponse& c);
- GetLanguageResponse(void);
-
- GetLanguageResponse& operator =(const GetLanguageResponse&);
-
- virtual ~GetLanguageResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::Language& get_hmiDisplayLanguage(void);
-
-
-// setters
- bool set_hmiDisplayLanguage(const NsSmartDeviceLinkRPCV2::Language& hmiDisplayLanguage);
-
-
- private:
-
- friend class GetLanguageResponseMarshaller;
-
- NsSmartDeviceLinkRPCV2::Language hmiDisplayLanguage;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguages.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguages.h
deleted file mode 100644
index 67419088b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguages.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETSUPPORTEDLANGUAGES_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETSUPPORTEDLANGUAGES_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class GetSupportedLanguages : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetSupportedLanguages(const GetSupportedLanguages& c);
- GetSupportedLanguages(void);
-
- GetSupportedLanguages& operator =(const GetSupportedLanguages&);
-
- virtual ~GetSupportedLanguages(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetSupportedLanguagesMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguagesResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguagesResponse.h
deleted file mode 100644
index 3f0230642..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguagesResponse.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETSUPPORTEDLANGUAGESRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETSUPPORTEDLANGUAGESRESPONSE_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class GetSupportedLanguagesResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetSupportedLanguagesResponse(const GetSupportedLanguagesResponse& c);
- GetSupportedLanguagesResponse(void);
-
- GetSupportedLanguagesResponse& operator =(const GetSupportedLanguagesResponse&);
-
- virtual ~GetSupportedLanguagesResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::Language>& get_languages(void);
-
-
-// setters
-/// 1 <= size <= 100
- bool set_languages(const std::vector< NsSmartDeviceLinkRPCV2::Language>& languages);
-
-
- private:
-
- friend class GetSupportedLanguagesResponseMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::Language> languages;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnCommand.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnCommand.h
deleted file mode 100644
index df733754a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnCommand.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONCOMMAND_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONCOMMAND_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class OnCommand : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnCommand(const OnCommand& c);
- OnCommand(void);
-
- OnCommand& operator =(const OnCommand&);
-
- virtual ~OnCommand(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_commandId(void);
-
- int get_appId(void);
-
-
-// setters
-/// commandId <= 2000000000
- bool set_commandId(unsigned int commandId);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class OnCommandMarshaller;
-
- unsigned int commandId;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDeviceChosen.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDeviceChosen.h
deleted file mode 100644
index d453732fe..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDeviceChosen.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONDEVICECHOSEN_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONDEVICECHOSEN_INCLUDE
-
-#include <string>
-#include "JSONHandler/RPC2Notification.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class OnDeviceChosen : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnDeviceChosen(const OnDeviceChosen& c);
- OnDeviceChosen(void);
-
- OnDeviceChosen& operator =(const OnDeviceChosen&);
-
- virtual ~OnDeviceChosen(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string& get_deviceName(void);
-
-
-// setters
- bool set_deviceName(const std::string& deviceName);
-
-
- private:
-
- friend class OnDeviceChosenMarshaller;
-
- std::string deviceName;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDriverDistraction.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDriverDistraction.h
deleted file mode 100644
index d4cf376fe..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDriverDistraction.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONDRIVERDISTRACTION_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONDRIVERDISTRACTION_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DriverDistractionState.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class OnDriverDistraction : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnDriverDistraction(const OnDriverDistraction& c);
- OnDriverDistraction(void);
-
- OnDriverDistraction& operator =(const OnDriverDistraction&);
-
- virtual ~OnDriverDistraction(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::DriverDistractionState& get_state(void);
-
-
-// setters
- bool set_state(const NsSmartDeviceLinkRPCV2::DriverDistractionState& state);
-
-
- private:
-
- friend class OnDriverDistractionMarshaller;
-
- NsSmartDeviceLinkRPCV2::DriverDistractionState state;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnLanguageChange.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnLanguageChange.h
deleted file mode 100644
index ab7782c21..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnLanguageChange.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONLANGUAGECHANGE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONLANGUAGECHANGE_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class OnLanguageChange : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnLanguageChange(const OnLanguageChange& c);
- OnLanguageChange(void);
-
- OnLanguageChange& operator =(const OnLanguageChange&);
-
- virtual ~OnLanguageChange(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::Language& get_hmiDisplayLanguage(void);
-
-
-// setters
- bool set_hmiDisplayLanguage(const NsSmartDeviceLinkRPCV2::Language& hmiDisplayLanguage);
-
-
- private:
-
- friend class OnLanguageChangeMarshaller;
-
- NsSmartDeviceLinkRPCV2::Language hmiDisplayLanguage;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnReady.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnReady.h
deleted file mode 100644
index 84b6a5110..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnReady.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONREADY_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONREADY_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class OnReady : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnReady(const OnReady& c);
- OnReady(void);
-
- OnReady& operator =(const OnReady&);
-
- virtual ~OnReady(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class OnReadyMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnSystemContext.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnSystemContext.h
deleted file mode 100644
index 932b74b5a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnSystemContext.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONSYSTEMCONTEXT_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONSYSTEMCONTEXT_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SystemContext.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class OnSystemContext : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnSystemContext(const OnSystemContext& c);
- OnSystemContext(void);
-
- OnSystemContext& operator =(const OnSystemContext&);
-
- virtual ~OnSystemContext(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::SystemContext& get_systemContext(void);
-
-
-// setters
- bool set_systemContext(const NsSmartDeviceLinkRPCV2::SystemContext& systemContext);
-
-
- private:
-
- friend class OnSystemContextMarshaller;
-
- NsSmartDeviceLinkRPCV2::SystemContext systemContext;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnTBTClientState.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnTBTClientState.h
deleted file mode 100644
index 84c0bcda4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnTBTClientState.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONTBTCLIENTSTATE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONTBTCLIENTSTATE_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TBTState.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class OnTBTClientState : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnTBTClientState(const OnTBTClientState& c);
- OnTBTClientState(void);
-
- OnTBTClientState& operator =(const OnTBTClientState&);
-
- virtual ~OnTBTClientState(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::TBTState& get_state(void);
- int get_appId(void);
-
-// setters
- bool set_state(const NsSmartDeviceLinkRPCV2::TBTState& state);
- bool set_appId(int appId);
-
- private:
- friend class OnTBTClientStateMarshaller;
-
- NsSmartDeviceLinkRPCV2::TBTState state;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThru.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThru.h
deleted file mode 100644
index 25b510747..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThru.h
+++ /dev/null
@@ -1,130 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_PERFORMAUDIOPASSTHRU_INCLUDE
-#define NSRPC2COMMUNICATION_UI_PERFORMAUDIOPASSTHRU_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SamplingRate.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/AudioCaptureQuality.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/AudioType.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class PerformAudioPassThru : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- PerformAudioPassThru(const PerformAudioPassThru& c);
- PerformAudioPassThru(void);
-
- PerformAudioPassThru& operator =(const PerformAudioPassThru&);
-
- virtual ~PerformAudioPassThru(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& get_initialPrompt(void);
-
- const std::string* get_audioPassThruDisplayText1(void);
- const std::string* get_audioPassThruDisplayText2(void);
- const NsSmartDeviceLinkRPCV2::SamplingRate& get_samplingRate(void);
-
- unsigned int get_maxDuration(void);
-
- const NsSmartDeviceLinkRPCV2::AudioCaptureQuality& get_bitsPerSample(void);
-
- const NsSmartDeviceLinkRPCV2::AudioType& get_audioType(void);
-
- int get_appId(void);
-
-
-// setters
-/// 1 <= size <= 100
- bool set_initialPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& initialPrompt);
-
-/// audioPassThruDisplayText1 <= 500
- bool set_audioPassThruDisplayText1(const std::string& audioPassThruDisplayText1);
-
- void reset_audioPassThruDisplayText1(void);
-
-/// audioPassThruDisplayText2 <= 500
- bool set_audioPassThruDisplayText2(const std::string& audioPassThruDisplayText2);
-
- void reset_audioPassThruDisplayText2(void);
-
- bool set_samplingRate(const NsSmartDeviceLinkRPCV2::SamplingRate& samplingRate);
-
-/// maxDuration <= 1000000
- bool set_maxDuration(unsigned int maxDuration);
-
- bool set_bitsPerSample(const NsSmartDeviceLinkRPCV2::AudioCaptureQuality& bitsPerSample);
-
- bool set_audioType(const NsSmartDeviceLinkRPCV2::AudioType& audioType);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class PerformAudioPassThruMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::TTSChunk> initialPrompt;
- std::string* audioPassThruDisplayText1;
- std::string* audioPassThruDisplayText2;
- NsSmartDeviceLinkRPCV2::SamplingRate samplingRate;
- unsigned int maxDuration;
- NsSmartDeviceLinkRPCV2::AudioCaptureQuality bitsPerSample;
- NsSmartDeviceLinkRPCV2::AudioType audioType;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThruResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThruResponse.h
deleted file mode 100644
index 112ccc655..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThruResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_PERFORMAUDIOPASSTHRURESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_PERFORMAUDIOPASSTHRURESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class PerformAudioPassThruResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- PerformAudioPassThruResponse(const PerformAudioPassThruResponse& c);
- PerformAudioPassThruResponse(void);
-
- PerformAudioPassThruResponse& operator =(const PerformAudioPassThruResponse&);
-
- virtual ~PerformAudioPassThruResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class PerformAudioPassThruResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteraction.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteraction.h
deleted file mode 100644
index 796d2d010..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteraction.h
+++ /dev/null
@@ -1,141 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_PERFORMINTERACTION_INCLUDE
-#define NSRPC2COMMUNICATION_UI_PERFORMINTERACTION_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/InteractionMode.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/VrHelpItem.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class PerformInteraction : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- PerformInteraction(const PerformInteraction& c);
- PerformInteraction(void);
-
- PerformInteraction& operator =(const PerformInteraction&);
-
- virtual ~PerformInteraction(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string& get_initialText(void);
-
- const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& get_initialPrompt(void);
-
- const NsSmartDeviceLinkRPCV2::InteractionMode& get_interactionMode(void);
-
- const std::vector< unsigned int>& get_interactionChoiceSetIDList(void);
-
- const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* get_helpPrompt(void);
- const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* get_timeoutPrompt(void);
- const unsigned int* get_timeout(void);
- const std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>* get_vrHelp(void);
- int get_appId(void);
-
-
-// setters
-/// initialText <= 500
- bool set_initialText(const std::string& initialText);
-
-/// 1 <= size <= 100
- bool set_initialPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& initialPrompt);
-
- bool set_interactionMode(const NsSmartDeviceLinkRPCV2::InteractionMode& interactionMode);
-
-/// interactionChoiceSetIDList[] <= 2000000000 ; 1 <= size <= 100
- bool set_interactionChoiceSetIDList(const std::vector< unsigned int>& interactionChoiceSetIDList);
-
-/// 1 <= size <= 100
- bool set_helpPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& helpPrompt);
-
- void reset_helpPrompt(void);
-
-/// 1 <= size <= 100
- bool set_timeoutPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& timeoutPrompt);
-
- void reset_timeoutPrompt(void);
-
-/// 5000 <= timeout <= 100000
- bool set_timeout(const unsigned int& timeout);
-
- void reset_timeout(void);
-
-/// 1 <= size <= 100
- bool set_vrHelp(const std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>& vrHelp);
-
- void reset_vrHelp(void);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class PerformInteractionMarshaller;
-
- std::string initialText;
- std::vector< NsSmartDeviceLinkRPCV2::TTSChunk> initialPrompt;
- NsSmartDeviceLinkRPCV2::InteractionMode interactionMode;
- std::vector< unsigned int> interactionChoiceSetIDList;
- std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* helpPrompt;
- std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* timeoutPrompt;
- unsigned int* timeout;
- std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>* vrHelp;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteractionResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteractionResponse.h
deleted file mode 100644
index fc28c4a73..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteractionResponse.h
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_PERFORMINTERACTIONRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_PERFORMINTERACTIONRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TriggerSource.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class PerformInteractionResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- PerformInteractionResponse(const PerformInteractionResponse& c);
- PerformInteractionResponse(void);
-
- PerformInteractionResponse& operator =(const PerformInteractionResponse&);
-
- virtual ~PerformInteractionResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const unsigned int* get_choiceID(void);
- const NsSmartDeviceLinkRPCV2::TriggerSource* get_triggerSource(void);
-
-// setters
-/// choiceID <= 2000000000
- bool set_choiceID(const unsigned int& choiceID);
-
- void reset_choiceID(void);
-
- bool set_triggerSource(const NsSmartDeviceLinkRPCV2::TriggerSource& triggerSource);
-
- void reset_triggerSource(void);
-
-
- private:
-
- friend class PerformInteractionResponseMarshaller;
-
- unsigned int* choiceID;
- NsSmartDeviceLinkRPCV2::TriggerSource* triggerSource;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/RPC2.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/RPC2.h
deleted file mode 100644
index 088cd9cd3..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/RPC2.h
+++ /dev/null
@@ -1,111 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_RPC2_INCLUDE
-#define NSRPC2COMMUNICATION_UI_RPC2_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AddCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AddCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AddSubMenu.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AddSubMenuResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/Alert.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AlertResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AlertManeuver.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AlertManeuverResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ChangeRegistration.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ChangeRegistrationResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/CreateInteractionChoiceSet.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteInteractionChoiceSet.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteSubMenu.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteSubMenuResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DialNumber.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DialNumberResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/EndAudioPassThru.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/EndAudioPassThruResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetLanguage.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetLanguageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetSupportedLanguages.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetSupportedLanguagesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnDeviceChosen.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnDriverDistraction.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnLanguageChange.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnReady.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnSystemContext.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnTBTClientState.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/PerformAudioPassThru.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/PerformAudioPassThruResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/PerformInteraction.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/PerformInteractionResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ResetGlobalProperties.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ResetGlobalPropertiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ScrollableMessage.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ScrollableMessageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetAppIcon.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetAppIconResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetDisplayLayout.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetDisplayLayoutResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetGlobalProperties.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetGlobalPropertiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetMediaClockTimer.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetMediaClockTimerResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/Show.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ShowResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ShowConstantTBT.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ShowConstantTBTResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/Slider.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SliderResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/UpdateTurnList.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/UpdateTurnListResponse.h"
-
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalProperties.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalProperties.h
deleted file mode 100644
index affb93756..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalProperties.h
+++ /dev/null
@@ -1,91 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_RESETGLOBALPROPERTIES_INCLUDE
-#define NSRPC2COMMUNICATION_UI_RESETGLOBALPROPERTIES_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GlobalProperty.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class ResetGlobalProperties : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- ResetGlobalProperties(const ResetGlobalProperties& c);
- ResetGlobalProperties(void);
-
- ResetGlobalProperties& operator =(const ResetGlobalProperties&);
-
- virtual ~ResetGlobalProperties(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::GlobalProperty>& get_properties(void);
-
- int get_appId(void);
-
-
-// setters
-/// 1 <= size <= 100
- bool set_properties(const std::vector< NsSmartDeviceLinkRPCV2::GlobalProperty>& properties);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class ResetGlobalPropertiesMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::GlobalProperty> properties;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.h
deleted file mode 100644
index 84cc644f5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_RESETGLOBALPROPERTIESRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_RESETGLOBALPROPERTIESRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class ResetGlobalPropertiesResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- ResetGlobalPropertiesResponse(const ResetGlobalPropertiesResponse& c);
- ResetGlobalPropertiesResponse(void);
-
- ResetGlobalPropertiesResponse& operator =(const ResetGlobalPropertiesResponse&);
-
- virtual ~ResetGlobalPropertiesResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class ResetGlobalPropertiesResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessage.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessage.h
deleted file mode 100644
index d39f88d59..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessage.h
+++ /dev/null
@@ -1,106 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SCROLLABLEMESSAGE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SCROLLABLEMESSAGE_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButton.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class ScrollableMessage : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- ScrollableMessage(const ScrollableMessage& c);
- ScrollableMessage(void);
-
- ScrollableMessage& operator =(const ScrollableMessage&);
-
- virtual ~ScrollableMessage(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string& get_scrollableMessageBody(void);
-
- const unsigned int* get_timeout(void);
- const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>* get_softButtons(void);
- int get_appId(void);
-
-
-// setters
-/// scrollableMessageBody <= 500
- bool set_scrollableMessageBody(const std::string& scrollableMessageBody);
-
-/// timeout <= 65535
- bool set_timeout(const unsigned int& timeout);
-
- void reset_timeout(void);
-
-/// 0 <= size <= 8
- bool set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons);
-
- void reset_softButtons(void);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class ScrollableMessageMarshaller;
-
- std::string scrollableMessageBody;
- unsigned int* timeout;
- std::vector< NsSmartDeviceLinkRPCV2::SoftButton>* softButtons;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessageResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessageResponse.h
deleted file mode 100644
index d98d2965b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessageResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SCROLLABLEMESSAGERESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SCROLLABLEMESSAGERESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class ScrollableMessageResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- ScrollableMessageResponse(const ScrollableMessageResponse& c);
- ScrollableMessageResponse(void);
-
- ScrollableMessageResponse& operator =(const ScrollableMessageResponse&);
-
- virtual ~ScrollableMessageResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class ScrollableMessageResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIcon.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIcon.h
deleted file mode 100644
index 9b3d4ad38..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIcon.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETAPPICON_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETAPPICON_INCLUDE
-
-#include <string>
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class SetAppIcon : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- SetAppIcon(const SetAppIcon& c);
- SetAppIcon(void);
-
- SetAppIcon& operator =(const SetAppIcon&);
-
- virtual ~SetAppIcon(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string& get_syncFileName(void);
-
- int get_appId(void);
-
-
-// setters
-/// syncFileName <= 500
- bool set_syncFileName(const std::string& syncFileName);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class SetAppIconMarshaller;
-
- std::string syncFileName;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIconResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIconResponse.h
deleted file mode 100644
index 356075324..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIconResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETAPPICONRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETAPPICONRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class SetAppIconResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- SetAppIconResponse(const SetAppIconResponse& c);
- SetAppIconResponse(void);
-
- SetAppIconResponse& operator =(const SetAppIconResponse&);
-
- virtual ~SetAppIconResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class SetAppIconResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayout.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayout.h
deleted file mode 100644
index 7d49f4114..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayout.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETDISPLAYLAYOUT_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETDISPLAYLAYOUT_INCLUDE
-
-#include <string>
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class SetDisplayLayout : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- SetDisplayLayout(const SetDisplayLayout& c);
- SetDisplayLayout(void);
-
- SetDisplayLayout& operator =(const SetDisplayLayout&);
-
- virtual ~SetDisplayLayout(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string& get_displayLayout(void);
-
- int get_appId(void);
-
-
-// setters
- bool set_displayLayout(const std::string& displayLayout);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class SetDisplayLayoutMarshaller;
-
- std::string displayLayout;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayoutResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayoutResponse.h
deleted file mode 100644
index cadf33614..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayoutResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETDISPLAYLAYOUTRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETDISPLAYLAYOUTRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class SetDisplayLayoutResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- SetDisplayLayoutResponse(const SetDisplayLayoutResponse& c);
- SetDisplayLayoutResponse(void);
-
- SetDisplayLayoutResponse& operator =(const SetDisplayLayoutResponse&);
-
- virtual ~SetDisplayLayoutResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class SetDisplayLayoutResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalProperties.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalProperties.h
deleted file mode 100644
index e428498f7..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalProperties.h
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETGLOBALPROPERTIES_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETGLOBALPROPERTIES_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/VrHelpItem.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class SetGlobalProperties : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- SetGlobalProperties(const SetGlobalProperties& c);
- SetGlobalProperties(void);
-
- SetGlobalProperties& operator =(const SetGlobalProperties&);
-
- virtual ~SetGlobalProperties(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* get_helpPrompt(void);
- const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* get_timeoutPrompt(void);
- const std::string* get_vrHelpTitle(void);
- const std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>* get_vrHelp(void);
- int get_appId(void);
-
-
-// setters
-/// 1 <= size <= 100
- bool set_helpPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& helpPrompt);
-
- void reset_helpPrompt(void);
-
-/// 1 <= size <= 100
- bool set_timeoutPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& timeoutPrompt);
-
- void reset_timeoutPrompt(void);
-
-/// vrHelpTitle <= 500
- bool set_vrHelpTitle(const std::string& vrHelpTitle);
-
- void reset_vrHelpTitle(void);
-
-/// 1 <= size <= 100
- bool set_vrHelp(const std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>& vrHelp);
-
- void reset_vrHelp(void);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class SetGlobalPropertiesMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* helpPrompt;
- std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* timeoutPrompt;
- std::string* vrHelpTitle;
- std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>* vrHelp;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalPropertiesResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalPropertiesResponse.h
deleted file mode 100644
index 3f83e18e4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalPropertiesResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETGLOBALPROPERTIESRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETGLOBALPROPERTIESRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class SetGlobalPropertiesResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- SetGlobalPropertiesResponse(const SetGlobalPropertiesResponse& c);
- SetGlobalPropertiesResponse(void);
-
- SetGlobalPropertiesResponse& operator =(const SetGlobalPropertiesResponse&);
-
- virtual ~SetGlobalPropertiesResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class SetGlobalPropertiesResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimer.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimer.h
deleted file mode 100644
index 011d7a21d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimer.h
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETMEDIACLOCKTIMER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETMEDIACLOCKTIMER_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/StartTime.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/UpdateMode.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class SetMediaClockTimer : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- SetMediaClockTimer(const SetMediaClockTimer& c);
- SetMediaClockTimer(void);
-
- SetMediaClockTimer& operator =(const SetMediaClockTimer&);
-
- virtual ~SetMediaClockTimer(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::StartTime* get_startTime(void);
- const NsSmartDeviceLinkRPCV2::UpdateMode& get_updateMode(void);
-
- int get_appId(void);
-
-
-// setters
- bool set_startTime(const NsSmartDeviceLinkRPCV2::StartTime& startTime);
-
- void reset_startTime(void);
-
- bool set_updateMode(const NsSmartDeviceLinkRPCV2::UpdateMode& updateMode);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class SetMediaClockTimerMarshaller;
-
- NsSmartDeviceLinkRPCV2::StartTime* startTime;
- NsSmartDeviceLinkRPCV2::UpdateMode updateMode;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimerResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimerResponse.h
deleted file mode 100644
index 8b5aa5b2b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimerResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETMEDIACLOCKTIMERRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETMEDIACLOCKTIMERRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class SetMediaClockTimerResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- SetMediaClockTimerResponse(const SetMediaClockTimerResponse& c);
- SetMediaClockTimerResponse(void);
-
- SetMediaClockTimerResponse& operator =(const SetMediaClockTimerResponse&);
-
- virtual ~SetMediaClockTimerResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class SetMediaClockTimerResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Show.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Show.h
deleted file mode 100644
index 01f733106..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Show.h
+++ /dev/null
@@ -1,163 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SHOW_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SHOW_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TextAlignment.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Image.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButton.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class Show : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- Show(const Show& c);
- Show(void);
-
- Show& operator =(const Show&);
-
- virtual ~Show(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string* get_mainField1(void);
- const std::string* get_mainField2(void);
- const std::string* get_mainField3(void);
- const std::string* get_mainField4(void);
- const NsSmartDeviceLinkRPCV2::TextAlignment* get_alignment(void);
- const std::string* get_statusBar(void);
- const std::string* get_mediaClock(void);
- const std::string* get_mediaTrack(void);
- const NsSmartDeviceLinkRPCV2::Image* get_graphic(void);
- const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>* get_softButtons(void);
- const std::vector< std::string>* get_customPresets(void);
- int get_appId(void);
-
-
-// setters
-/// mainField1 <= 500
- bool set_mainField1(const std::string& mainField1);
-
- void reset_mainField1(void);
-
-/// mainField2 <= 500
- bool set_mainField2(const std::string& mainField2);
-
- void reset_mainField2(void);
-
-/// mainField3 <= 500
- bool set_mainField3(const std::string& mainField3);
-
- void reset_mainField3(void);
-
-/// mainField4 <= 500
- bool set_mainField4(const std::string& mainField4);
-
- void reset_mainField4(void);
-
- bool set_alignment(const NsSmartDeviceLinkRPCV2::TextAlignment& alignment);
-
- void reset_alignment(void);
-
-/// statusBar <= 500
- bool set_statusBar(const std::string& statusBar);
-
- void reset_statusBar(void);
-
-/// mediaClock <= 500
- bool set_mediaClock(const std::string& mediaClock);
-
- void reset_mediaClock(void);
-
-/// mediaTrack <= 500
- bool set_mediaTrack(const std::string& mediaTrack);
-
- void reset_mediaTrack(void);
-
- bool set_graphic(const NsSmartDeviceLinkRPCV2::Image& graphic);
-
- void reset_graphic(void);
-
-/// 0 <= size <= 8
- bool set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons);
-
- void reset_softButtons(void);
-
-/// customPresets[] <= 500 ; 0 <= size <= 6
- bool set_customPresets(const std::vector< std::string>& customPresets);
-
- void reset_customPresets(void);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class ShowMarshaller;
-
- std::string* mainField1;
- std::string* mainField2;
- std::string* mainField3;
- std::string* mainField4;
- NsSmartDeviceLinkRPCV2::TextAlignment* alignment;
- std::string* statusBar;
- std::string* mediaClock;
- std::string* mediaTrack;
- NsSmartDeviceLinkRPCV2::Image* graphic;
- std::vector< NsSmartDeviceLinkRPCV2::SoftButton>* softButtons;
- std::vector< std::string>* customPresets;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBT.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBT.h
deleted file mode 100644
index b761d1a37..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBT.h
+++ /dev/null
@@ -1,144 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SHOWCONSTANTTBT_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SHOWCONSTANTTBT_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Image.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButton.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class ShowConstantTBT : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- ShowConstantTBT(const ShowConstantTBT& c);
- ShowConstantTBT(void);
-
- ShowConstantTBT& operator =(const ShowConstantTBT&);
-
- virtual ~ShowConstantTBT(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::string* get_navigationText1(void);
- const std::string* get_navigationText2(void);
- const std::string* get_eta(void);
- const std::string* get_totalDistance(void);
- const NsSmartDeviceLinkRPCV2::Image& get_turnIcon(void);
-
- float get_distanceToManeuver(void);
-
- float get_distanceToManeuverScale(void);
-
- const bool* get_maneuverComplete(void);
- const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& get_softButtons(void);
-
- int get_appId(void);
-
-
-// setters
-/// navigationText1 <= 500
- bool set_navigationText1(const std::string& navigationText1);
-
- void reset_navigationText1(void);
-
-/// navigationText2 <= 500
- bool set_navigationText2(const std::string& navigationText2);
-
- void reset_navigationText2(void);
-
-/// eta <= 500
- bool set_eta(const std::string& eta);
-
- void reset_eta(void);
-
-/// totalDistance <= 500
- bool set_totalDistance(const std::string& totalDistance);
-
- void reset_totalDistance(void);
-
- bool set_turnIcon(const NsSmartDeviceLinkRPCV2::Image& turnIcon);
-
-/// 0 <= distanceToManeuver <= 1000000000
- bool set_distanceToManeuver(float distanceToManeuver);
-
-/// 0 <= distanceToManeuverScale <= 1000000000
- bool set_distanceToManeuverScale(float distanceToManeuverScale);
-
- bool set_maneuverComplete(const bool& maneuverComplete);
-
- void reset_maneuverComplete(void);
-
-/// 0 <= size <= 3
- bool set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class ShowConstantTBTMarshaller;
-
- std::string* navigationText1;
- std::string* navigationText2;
- std::string* eta;
- std::string* totalDistance;
- NsSmartDeviceLinkRPCV2::Image turnIcon;
- float distanceToManeuver;
- float distanceToManeuverScale;
- bool* maneuverComplete;
- std::vector< NsSmartDeviceLinkRPCV2::SoftButton> softButtons;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBTResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBTResponse.h
deleted file mode 100644
index fc4f4930e..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBTResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SHOWCONSTANTTBTRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SHOWCONSTANTTBTRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class ShowConstantTBTResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- ShowConstantTBTResponse(const ShowConstantTBTResponse& c);
- ShowConstantTBTResponse(void);
-
- ShowConstantTBTResponse& operator =(const ShowConstantTBTResponse&);
-
- virtual ~ShowConstantTBTResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class ShowConstantTBTResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowResponse.h
deleted file mode 100644
index eb05ecf66..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SHOWRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SHOWRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class ShowResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- ShowResponse(const ShowResponse& c);
- ShowResponse(void);
-
- ShowResponse& operator =(const ShowResponse&);
-
- virtual ~ShowResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class ShowResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Slider.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Slider.h
deleted file mode 100644
index 2421bb870..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Slider.h
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SLIDER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SLIDER_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class Slider : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- Slider(const Slider& c);
- Slider(void);
-
- Slider& operator =(const Slider&);
-
- virtual ~Slider(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_numTicks(void);
-
- unsigned int get_position(void);
-
- const std::string& get_sliderHeader(void);
-
- const std::vector< std::string>* get_sliderFooter(void);
- unsigned int get_timeout(void);
-
- int get_appId(void);
-
-
-// setters
-/// 2 <= numTicks <= 26
- bool set_numTicks(unsigned int numTicks);
-
-/// 1 <= position <= 16
- bool set_position(unsigned int position);
-
-/// sliderHeader <= 500
- bool set_sliderHeader(const std::string& sliderHeader);
-
-/// sliderFooter[] <= 500 ; 1 <= size <= 26
- bool set_sliderFooter(const std::vector< std::string>& sliderFooter);
-
- void reset_sliderFooter(void);
-
-/// timeout <= 65535
- bool set_timeout(unsigned int timeout);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class SliderMarshaller;
-
- unsigned int numTicks;
- unsigned int position;
- std::string sliderHeader;
- std::vector< std::string>* sliderFooter;
- unsigned int timeout;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SliderResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SliderResponse.h
deleted file mode 100644
index f7828c125..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SliderResponse.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SLIDERRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SLIDERRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class SliderResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- SliderResponse(const SliderResponse& c);
- SliderResponse(void);
-
- SliderResponse& operator =(const SliderResponse&);
-
- virtual ~SliderResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_sliderPosition(void);
-
-
-// setters
-/// 1 <= sliderPosition <= 26
- bool set_sliderPosition(unsigned int sliderPosition);
-
-
- private:
-
- friend class SliderResponseMarshaller;
-
- unsigned int sliderPosition;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnList.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnList.h
deleted file mode 100644
index 0bac9c820..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnList.h
+++ /dev/null
@@ -1,98 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_UPDATETURNLIST_INCLUDE
-#define NSRPC2COMMUNICATION_UI_UPDATETURNLIST_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Turn.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButton.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class UpdateTurnList : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- UpdateTurnList(const UpdateTurnList& c);
- UpdateTurnList(void);
-
- UpdateTurnList& operator =(const UpdateTurnList&);
-
- virtual ~UpdateTurnList(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::Turn>& get_turnList(void);
-
- const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& get_softButtons(void);
-
- int get_appId(void);
-
-
-// setters
-/// 1 <= size <= 100
- bool set_turnList(const std::vector< NsSmartDeviceLinkRPCV2::Turn>& turnList);
-
-/// 0 <= size <= 1
- bool set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class UpdateTurnListMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::Turn> turnList;
- std::vector< NsSmartDeviceLinkRPCV2::SoftButton> softButtons;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnListResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnListResponse.h
deleted file mode 100644
index d6cef5d31..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnListResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_UPDATETURNLISTRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_UI_UPDATETURNLISTRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- class UpdateTurnListResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- UpdateTurnListResponse(const UpdateTurnListResponse& c);
- UpdateTurnListResponse(void);
-
- UpdateTurnListResponse& operator =(const UpdateTurnListResponse&);
-
- virtual ~UpdateTurnListResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class UpdateTurnListResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommand.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommand.h
deleted file mode 100644
index be4373577..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommand.h
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_ADDCOMMAND_INCLUDE
-#define NSRPC2COMMUNICATION_VR_ADDCOMMAND_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class AddCommand : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- AddCommand(const AddCommand& c);
- AddCommand(void);
-
- AddCommand& operator =(const AddCommand&);
-
- virtual ~AddCommand(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_cmdId(void);
-
- const std::vector< std::string>& get_vrCommands(void);
-
- int get_appId(void);
-
-
-// setters
-/// cmdId <= 2000000000
- bool set_cmdId(unsigned int cmdId);
-
-/// vrCommands[] <= 99 ; 1 <= size <= 100
- bool set_vrCommands(const std::vector< std::string>& vrCommands);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class AddCommandMarshaller;
-
- unsigned int cmdId;
- std::vector< std::string> vrCommands;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommandResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommandResponse.h
deleted file mode 100644
index ee135f4e6..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommandResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_ADDCOMMANDRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_VR_ADDCOMMANDRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class AddCommandResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- AddCommandResponse(const AddCommandResponse& c);
- AddCommandResponse(void);
-
- AddCommandResponse& operator =(const AddCommandResponse&);
-
- virtual ~AddCommandResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class AddCommandResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistration.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistration.h
deleted file mode 100644
index 58f18caa9..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistration.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_CHANGEREGISTRATION_INCLUDE
-#define NSRPC2COMMUNICATION_VR_CHANGEREGISTRATION_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class ChangeRegistration : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- ChangeRegistration(const ChangeRegistration& c);
- ChangeRegistration(void);
-
- ChangeRegistration& operator =(const ChangeRegistration&);
-
- virtual ~ChangeRegistration(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::Language& get_language(void);
-
- int get_appId(void);
-
-
-// setters
- bool set_language(const NsSmartDeviceLinkRPCV2::Language& language);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class ChangeRegistrationMarshaller;
-
- NsSmartDeviceLinkRPCV2::Language language;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistrationResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistrationResponse.h
deleted file mode 100644
index 8d8e7b206..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistrationResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_CHANGEREGISTRATIONRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_VR_CHANGEREGISTRATIONRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class ChangeRegistrationResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- ChangeRegistrationResponse(const ChangeRegistrationResponse& c);
- ChangeRegistrationResponse(void);
-
- ChangeRegistrationResponse& operator =(const ChangeRegistrationResponse&);
-
- virtual ~ChangeRegistrationResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class ChangeRegistrationResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommand.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommand.h
deleted file mode 100644
index 8c8d39936..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommand.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_DELETECOMMAND_INCLUDE
-#define NSRPC2COMMUNICATION_VR_DELETECOMMAND_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class DeleteCommand : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- DeleteCommand(const DeleteCommand& c);
- DeleteCommand(void);
-
- DeleteCommand& operator =(const DeleteCommand&);
-
- virtual ~DeleteCommand(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_cmdId(void);
-
- int get_appId(void);
-
-
-// setters
-/// cmdId <= 2000000000
- bool set_cmdId(unsigned int cmdId);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class DeleteCommandMarshaller;
-
- unsigned int cmdId;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommandResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommandResponse.h
deleted file mode 100644
index 717b8fda0..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommandResponse.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_DELETECOMMANDRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_VR_DELETECOMMANDRESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class DeleteCommandResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- DeleteCommandResponse(const DeleteCommandResponse& c);
- DeleteCommandResponse(void);
-
- DeleteCommandResponse& operator =(const DeleteCommandResponse&);
-
- virtual ~DeleteCommandResponse(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class DeleteCommandResponseMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilities.h
deleted file mode 100644
index ca03cfa8c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilities.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETCAPABILITIES_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETCAPABILITIES_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class GetCapabilities : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetCapabilities(const GetCapabilities& c);
- GetCapabilities(void);
-
- GetCapabilities& operator =(const GetCapabilities&);
-
- virtual ~GetCapabilities(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetCapabilitiesMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilitiesResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilitiesResponse.h
deleted file mode 100644
index aee9be237..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilitiesResponse.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETCAPABILITIESRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETCAPABILITIESRESPONSE_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VrCapabilities.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class GetCapabilitiesResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetCapabilitiesResponse(const GetCapabilitiesResponse& c);
- GetCapabilitiesResponse(void);
-
- GetCapabilitiesResponse& operator =(const GetCapabilitiesResponse&);
-
- virtual ~GetCapabilitiesResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::VrCapabilities>& get_capabilities(void);
-
-
-// setters
-/// 1 <= size <= 100
- bool set_capabilities(const std::vector< NsSmartDeviceLinkRPCV2::VrCapabilities>& capabilities);
-
-
- private:
-
- friend class GetCapabilitiesResponseMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::VrCapabilities> capabilities;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguage.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguage.h
deleted file mode 100644
index fa3459ad1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguage.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETLANGUAGE_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETLANGUAGE_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class GetLanguage : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetLanguage(const GetLanguage& c);
- GetLanguage(void);
-
- GetLanguage& operator =(const GetLanguage&);
-
- virtual ~GetLanguage(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetLanguageMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguageResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguageResponse.h
deleted file mode 100644
index 08b0e143b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguageResponse.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETLANGUAGERESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETLANGUAGERESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class GetLanguageResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetLanguageResponse(const GetLanguageResponse& c);
- GetLanguageResponse(void);
-
- GetLanguageResponse& operator =(const GetLanguageResponse&);
-
- virtual ~GetLanguageResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::Language& get_language(void);
-
-
-// setters
- bool set_language(const NsSmartDeviceLinkRPCV2::Language& language);
-
-
- private:
-
- friend class GetLanguageResponseMarshaller;
-
- NsSmartDeviceLinkRPCV2::Language language;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguages.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguages.h
deleted file mode 100644
index 7a2b9866c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguages.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETSUPPORTEDLANGUAGES_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETSUPPORTEDLANGUAGES_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class GetSupportedLanguages : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetSupportedLanguages(const GetSupportedLanguages& c);
- GetSupportedLanguages(void);
-
- GetSupportedLanguages& operator =(const GetSupportedLanguages&);
-
- virtual ~GetSupportedLanguages(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetSupportedLanguagesMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguagesResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguagesResponse.h
deleted file mode 100644
index 3e0c3d52d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguagesResponse.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETSUPPORTEDLANGUAGESRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETSUPPORTEDLANGUAGESRESPONSE_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class GetSupportedLanguagesResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetSupportedLanguagesResponse(const GetSupportedLanguagesResponse& c);
- GetSupportedLanguagesResponse(void);
-
- GetSupportedLanguagesResponse& operator =(const GetSupportedLanguagesResponse&);
-
- virtual ~GetSupportedLanguagesResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::Language>& get_languages(void);
-
-
-// setters
-/// 1 <= size <= 100
- bool set_languages(const std::vector< NsSmartDeviceLinkRPCV2::Language>& languages);
-
-
- private:
-
- friend class GetSupportedLanguagesResponseMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::Language> languages;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnCommand.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnCommand.h
deleted file mode 100644
index 9d0bf0c5c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnCommand.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_ONCOMMAND_INCLUDE
-#define NSRPC2COMMUNICATION_VR_ONCOMMAND_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class OnCommand : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnCommand(const OnCommand& c);
- OnCommand(void);
-
- OnCommand& operator =(const OnCommand&);
-
- virtual ~OnCommand(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_cmdID(void);
-
- int get_appId(void);
-
-
-// setters
-/// cmdID <= 2000000000
- bool set_cmdID(unsigned int cmdID);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class OnCommandMarshaller;
-
- unsigned int cmdID;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnLanguageChange.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnLanguageChange.h
deleted file mode 100644
index 8da1b2b74..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnLanguageChange.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_ONLANGUAGECHANGE_INCLUDE
-#define NSRPC2COMMUNICATION_VR_ONLANGUAGECHANGE_INCLUDE
-
-#include "JSONHandler/RPC2Notification.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- class OnLanguageChange : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnLanguageChange(const OnLanguageChange& c);
- OnLanguageChange(void);
-
- OnLanguageChange& operator =(const OnLanguageChange&);
-
- virtual ~OnLanguageChange(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::Language& get_language(void);
-
-
-// setters
- bool set_language(const NsSmartDeviceLinkRPCV2::Language& language);
-
-
- private:
-
- friend class OnLanguageChangeMarshaller;
-
- NsSmartDeviceLinkRPCV2::Language language;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/RPC2.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/RPC2.h
deleted file mode 100644
index 175d7a1d6..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/RPC2.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_RPC2_INCLUDE
-#define NSRPC2COMMUNICATION_VR_RPC2_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/AddCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/AddCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/ChangeRegistration.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/ChangeRegistrationResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/DeleteCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/DeleteCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetLanguage.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetLanguageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetSupportedLanguages.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetSupportedLanguagesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/OnCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/OnLanguageChange.h"
-
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCs.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCs.h
deleted file mode 100644
index 2d0995875..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCs.h
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETDTCS_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETDTCS_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- class GetDTCs : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetDTCs(const GetDTCs& c);
- GetDTCs(void);
-
- GetDTCs& operator =(const GetDTCs&);
-
- virtual ~GetDTCs(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_ecuName(void);
-
- const bool* get_encrypted(void);
- int get_appId(void);
-
-
-// setters
-/// ecuName <= 65535
- bool set_ecuName(unsigned int ecuName);
-
- bool set_encrypted(const bool& encrypted);
-
- void reset_encrypted(void);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class GetDTCsMarshaller;
-
- unsigned int ecuName;
- bool* encrypted;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCsResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCsResponse.h
deleted file mode 100644
index 90e77bac9..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCsResponse.h
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETDTCSRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETDTCSRESPONSE_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DTC.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- class GetDTCsResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetDTCsResponse(const GetDTCsResponse& c);
- GetDTCsResponse(void);
-
- GetDTCsResponse& operator =(const GetDTCsResponse&);
-
- virtual ~GetDTCsResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::DTC>* get_dtcList(void);
-
-// setters
-/// 1 <= size <= 100
- bool set_dtcList(const std::vector< NsSmartDeviceLinkRPCV2::DTC>& dtcList);
-
- void reset_dtcList(void);
-
-
- private:
-
- friend class GetDTCsResponseMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::DTC>* dtcList;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleData.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleData.h
deleted file mode 100644
index 4f340faf7..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleData.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLEDATA_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLEDATA_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleDataType.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- class GetVehicleData : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetVehicleData(const GetVehicleData& c);
- GetVehicleData(void);
-
- GetVehicleData& operator =(const GetVehicleData&);
-
- virtual ~GetVehicleData(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::VehicleDataType& get_dataType(void);
-
- int get_appId(void);
-
-
-// setters
- bool set_dataType(const NsSmartDeviceLinkRPCV2::VehicleDataType& dataType);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class GetVehicleDataMarshaller;
-
- NsSmartDeviceLinkRPCV2::VehicleDataType dataType;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.h
deleted file mode 100644
index 3b638a466..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.h
+++ /dev/null
@@ -1,198 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLEDATARESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLEDATARESPONSE_INCLUDE
-
-#include <string>
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GPSData.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/PRNDL.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/TireStatus.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- class GetVehicleDataResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetVehicleDataResponse(const GetVehicleDataResponse& c);
- GetVehicleDataResponse(void);
-
- GetVehicleDataResponse& operator =(const GetVehicleDataResponse&);
-
- virtual ~GetVehicleDataResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::GPSData* get_gps(void);
- const float* get_speed(void);
- const unsigned int* get_rpm(void);
- const float* get_fuelLevel(void);
- const float* get_avgFuelEconomy(void);
- const float* get_batteryVoltage(void);
- const float* get_externalTemperature(void);
- const std::string* get_vin(void);
- const NsSmartDeviceLinkRPCV2::PRNDL* get_prndl(void);
- const NsSmartDeviceLinkRPCV2::TireStatus* get_tirePressure(void);
- const float* get_batteryPackVoltage(void);
- const float* get_batteryPackCurrent(void);
- const int* get_batteryPackTemperature(void);
- const int* get_engineTorque(void);
- const unsigned int* get_odometer(void);
- const unsigned int* get_tripOdometer(void);
- const std::string* get_satRadioESN(void);
-
-// setters
- bool set_gps(const NsSmartDeviceLinkRPCV2::GPSData& gps);
-
- void reset_gps(void);
-
-/// -100 <= speed <= 500
- bool set_speed(const float& speed);
-
- void reset_speed(void);
-
-/// rpm <= 20000
- bool set_rpm(const unsigned int& rpm);
-
- void reset_rpm(void);
-
-/// 0 <= fuelLevel <= 100
- bool set_fuelLevel(const float& fuelLevel);
-
- void reset_fuelLevel(void);
-
-/// 0 <= avgFuelEconomy <= 7000
- bool set_avgFuelEconomy(const float& avgFuelEconomy);
-
- void reset_avgFuelEconomy(void);
-
-/// 0 <= batteryVoltage <= 26
- bool set_batteryVoltage(const float& batteryVoltage);
-
- void reset_batteryVoltage(void);
-
-/// -40 <= externalTemperature <= 100
- bool set_externalTemperature(const float& externalTemperature);
-
- void reset_externalTemperature(void);
-
-/// vin <= 17
- bool set_vin(const std::string& vin);
-
- void reset_vin(void);
-
- bool set_prndl(const NsSmartDeviceLinkRPCV2::PRNDL& prndl);
-
- void reset_prndl(void);
-
- bool set_tirePressure(const NsSmartDeviceLinkRPCV2::TireStatus& tirePressure);
-
- void reset_tirePressure(void);
-
-/// -1000 <= batteryPackVoltage <= 1000
- bool set_batteryPackVoltage(const float& batteryPackVoltage);
-
- void reset_batteryPackVoltage(void);
-
-/// -1000 <= batteryPackCurrent <= 1000
- bool set_batteryPackCurrent(const float& batteryPackCurrent);
-
- void reset_batteryPackCurrent(void);
-
-/// -50 <= batteryPackTemperature <= 250
- bool set_batteryPackTemperature(const int& batteryPackTemperature);
-
- void reset_batteryPackTemperature(void);
-
-/// -10000 <= engineTorque <= 55000
- bool set_engineTorque(const int& engineTorque);
-
- void reset_engineTorque(void);
-
-/// odometer <= 2000000
- bool set_odometer(const unsigned int& odometer);
-
- void reset_odometer(void);
-
-/// tripOdometer <= 2000000
- bool set_tripOdometer(const unsigned int& tripOdometer);
-
- void reset_tripOdometer(void);
-
-/// satRadioESN <= 500
- bool set_satRadioESN(const std::string& satRadioESN);
-
- void reset_satRadioESN(void);
-
-
- private:
-
- friend class GetVehicleDataResponseMarshaller;
-
- NsSmartDeviceLinkRPCV2::GPSData* gps;
- float* speed;
- unsigned int* rpm;
- float* fuelLevel;
- float* avgFuelEconomy;
- float* batteryVoltage;
- float* externalTemperature;
- std::string* vin;
- NsSmartDeviceLinkRPCV2::PRNDL* prndl;
- NsSmartDeviceLinkRPCV2::TireStatus* tirePressure;
- float* batteryPackVoltage;
- float* batteryPackCurrent;
- int* batteryPackTemperature;
- int* engineTorque;
- unsigned int* odometer;
- unsigned int* tripOdometer;
- std::string* satRadioESN;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleType.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleType.h
deleted file mode 100644
index 8162d4c00..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleType.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLETYPE_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLETYPE_INCLUDE
-
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- class GetVehicleType : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- GetVehicleType(const GetVehicleType& c);
- GetVehicleType(void);
-
- GetVehicleType& operator =(const GetVehicleType&);
-
- virtual ~GetVehicleType(void);
-
- bool checkIntegrity(void);
-
-
- private:
-
- friend class GetVehicleTypeMarshaller;
-
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.h
deleted file mode 100644
index 32293a341..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLETYPERESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLETYPERESPONSE_INCLUDE
-
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleType.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- class GetVehicleTypeResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- GetVehicleTypeResponse(const GetVehicleTypeResponse& c);
- GetVehicleTypeResponse(void);
-
- GetVehicleTypeResponse& operator =(const GetVehicleTypeResponse&);
-
- virtual ~GetVehicleTypeResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::VehicleType& get_vehicleType(void);
-
-
-// setters
- bool set_vehicleType(const NsSmartDeviceLinkRPCV2::VehicleType& vehicleType);
-
-
- private:
-
- friend class GetVehicleTypeResponseMarshaller;
-
- NsSmartDeviceLinkRPCV2::VehicleType vehicleType;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/OnVehicleData.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/OnVehicleData.h
deleted file mode 100644
index bff4fd304..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/OnVehicleData.h
+++ /dev/null
@@ -1,198 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_ONVEHICLEDATA_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_ONVEHICLEDATA_INCLUDE
-
-#include <string>
-#include "JSONHandler/RPC2Notification.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GPSData.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/PRNDL.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/TireStatus.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- class OnVehicleData : public ::NsRPC2Communication::RPC2Notification
- {
- public:
-
- OnVehicleData(const OnVehicleData& c);
- OnVehicleData(void);
-
- OnVehicleData& operator =(const OnVehicleData&);
-
- virtual ~OnVehicleData(void);
-
- bool checkIntegrity(void);
-
-// getters
- const NsSmartDeviceLinkRPCV2::GPSData* get_gps(void);
- const float* get_speed(void);
- const unsigned int* get_rpm(void);
- const float* get_fuelLevel(void);
- const float* get_avgFuelEconomy(void);
- const float* get_batteryVoltage(void);
- const float* get_externalTemperature(void);
- const std::string* get_vin(void);
- const NsSmartDeviceLinkRPCV2::PRNDL* get_prndl(void);
- const NsSmartDeviceLinkRPCV2::TireStatus* get_tirePressure(void);
- const float* get_batteryPackVoltage(void);
- const float* get_batteryPackCurrent(void);
- const int* get_batteryPackTemperature(void);
- const int* get_engineTorque(void);
- const unsigned int* get_odometer(void);
- const unsigned int* get_tripOdometer(void);
- const std::string* get_genericbinary(void);
-
-// setters
- bool set_gps(const NsSmartDeviceLinkRPCV2::GPSData& gps);
-
- void reset_gps(void);
-
-/// -100 <= speed <= 500
- bool set_speed(const float& speed);
-
- void reset_speed(void);
-
-/// rpm <= 20000
- bool set_rpm(const unsigned int& rpm);
-
- void reset_rpm(void);
-
-/// 0 <= fuelLevel <= 100
- bool set_fuelLevel(const float& fuelLevel);
-
- void reset_fuelLevel(void);
-
-/// 0 <= avgFuelEconomy <= 7000
- bool set_avgFuelEconomy(const float& avgFuelEconomy);
-
- void reset_avgFuelEconomy(void);
-
-/// 0 <= batteryVoltage <= 26
- bool set_batteryVoltage(const float& batteryVoltage);
-
- void reset_batteryVoltage(void);
-
-/// -40 <= externalTemperature <= 100
- bool set_externalTemperature(const float& externalTemperature);
-
- void reset_externalTemperature(void);
-
-/// vin <= 17
- bool set_vin(const std::string& vin);
-
- void reset_vin(void);
-
- bool set_prndl(const NsSmartDeviceLinkRPCV2::PRNDL& prndl);
-
- void reset_prndl(void);
-
- bool set_tirePressure(const NsSmartDeviceLinkRPCV2::TireStatus& tirePressure);
-
- void reset_tirePressure(void);
-
-/// -1000 <= batteryPackVoltage <= 1000
- bool set_batteryPackVoltage(const float& batteryPackVoltage);
-
- void reset_batteryPackVoltage(void);
-
-/// -1000 <= batteryPackCurrent <= 1000
- bool set_batteryPackCurrent(const float& batteryPackCurrent);
-
- void reset_batteryPackCurrent(void);
-
-/// -50 <= batteryPackTemperature <= 250
- bool set_batteryPackTemperature(const int& batteryPackTemperature);
-
- void reset_batteryPackTemperature(void);
-
-/// -10000 <= engineTorque <= 55000
- bool set_engineTorque(const int& engineTorque);
-
- void reset_engineTorque(void);
-
-/// odometer <= 2000000
- bool set_odometer(const unsigned int& odometer);
-
- void reset_odometer(void);
-
-/// tripOdometer <= 2000000
- bool set_tripOdometer(const unsigned int& tripOdometer);
-
- void reset_tripOdometer(void);
-
-/// genericbinary <= 500
- bool set_genericbinary(const std::string& genericbinary);
-
- void reset_genericbinary(void);
-
-
- private:
-
- friend class OnVehicleDataMarshaller;
-
- NsSmartDeviceLinkRPCV2::GPSData* gps;
- float* speed;
- unsigned int* rpm;
- float* fuelLevel;
- float* avgFuelEconomy;
- float* batteryVoltage;
- float* externalTemperature;
- std::string* vin;
- NsSmartDeviceLinkRPCV2::PRNDL* prndl;
- NsSmartDeviceLinkRPCV2::TireStatus* tirePressure;
- float* batteryPackVoltage;
- float* batteryPackCurrent;
- int* batteryPackTemperature;
- int* engineTorque;
- unsigned int* odometer;
- unsigned int* tripOdometer;
- std::string* genericbinary;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/RPC2.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/RPC2.h
deleted file mode 100644
index 63fb0bc48..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/RPC2.h
+++ /dev/null
@@ -1,61 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_RPC2_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_RPC2_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetDTCs.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetDTCsResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetVehicleData.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetVehicleType.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/OnVehicleData.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/ReadDID.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/ReadDIDResponse.h"
-
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDID.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDID.h
deleted file mode 100644
index dd5c6a2c0..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDID.h
+++ /dev/null
@@ -1,102 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_READDID_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_READDID_INCLUDE
-
-#include <vector>
-#include "JSONHandler/RPC2Request.h"
-
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- class ReadDID : public ::NsRPC2Communication::RPC2Request
- {
- public:
-
- ReadDID(const ReadDID& c);
- ReadDID(void);
-
- ReadDID& operator =(const ReadDID&);
-
- virtual ~ReadDID(void);
-
- bool checkIntegrity(void);
-
-// getters
- unsigned int get_ecuName(void);
-
- const std::vector< unsigned int>& get_didLocation(void);
-
- const bool* get_encrypted(void);
- int get_appId(void);
-
-
-// setters
-/// ecuName <= 65535
- bool set_ecuName(unsigned int ecuName);
-
-/// didLocation[] <= 65535 ; 0 <= size <= 1000
- bool set_didLocation(const std::vector< unsigned int>& didLocation);
-
- bool set_encrypted(const bool& encrypted);
-
- void reset_encrypted(void);
-
- bool set_appId(int appId);
-
-
- private:
-
- friend class ReadDIDMarshaller;
-
- unsigned int ecuName;
- std::vector< unsigned int> didLocation;
- bool* encrypted;
- int appId;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDIDResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDIDResponse.h
deleted file mode 100644
index 23ff4d6e4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDIDResponse.h
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_READDIDRESPONSE_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_READDIDRESPONSE_INCLUDE
-
-#include <string>
-#include <vector>
-#include "JSONHandler/RPC2Response.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleDataResultCode.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- class ReadDIDResponse : public ::NsRPC2Communication::RPC2Response
- {
- public:
-
- ReadDIDResponse(const ReadDIDResponse& c);
- ReadDIDResponse(void);
-
- ReadDIDResponse& operator =(const ReadDIDResponse&);
-
- virtual ~ReadDIDResponse(void);
-
- bool checkIntegrity(void);
-
-// getters
- const std::vector< NsSmartDeviceLinkRPCV2::VehicleDataResultCode>* get_dataResult(void);
- const std::vector< std::string>* get_data(void);
-
-// setters
-/// 0 <= size <= 1000
- bool set_dataResult(const std::vector< NsSmartDeviceLinkRPCV2::VehicleDataResultCode>& dataResult);
-
- void reset_dataResult(void);
-
-/// data[] <= 5000 ; 0 <= size <= 1000
- bool set_data(const std::vector< std::string>& data);
-
- void reset_data(void);
-
-
- private:
-
- friend class ReadDIDResponseMarshaller;
-
- std::vector< NsSmartDeviceLinkRPCV2::VehicleDataResultCode>* dataResult;
- std::vector< std::string>* data;
-
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Request.h
deleted file mode 100644
index f68eae6f4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Request.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
-* \file RPC2Request.hpp
-* \brief RPC2Request class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef RPC2_REQUEST_CLASS
-#define RPC2_REQUEST_CLASS
-
-#include "RPC2Command.h"
-
-/**
- *\namespace NsRPC2Communication
- *\brief Namespace for communication with HMI.
-*/
-namespace NsRPC2Communication
-{
- /**
- * \class RPC2Request
- * \brief Base class for requests generated from Json RPC2
- */
- class RPC2Request : public RPC2Command
- {
- public:
- /**
- * \brief Default Constructor
- */
- RPC2Request( );
-
- /**
- * \brief Constructor
- * \param method Method Id.
- */
- RPC2Request( int method );
-
- /**
- * \brief Constructor
- * \param method Method Id.
- * \param id Message id.
- */
- RPC2Request( int method ,unsigned int id);
-
- /**
- * \brief Destructor
- */
- virtual ~RPC2Request();
-
- /**
- * \brief Getter of message id.
- * \return Message id.
- */
- virtual unsigned int getId() const;
-
- /**
- * \brief Setter of message id.
- * \param id Message id.
- */
- virtual void setId(unsigned int id);
-
- private:
- /**
- *\brief Message id
- * //! mId should be >0
- */
- unsigned int mId;
-
- };
-
-}
-
-#endif // RPC2_REQUEST_CLASS
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Response.h
deleted file mode 100644
index 7d3bb66e9..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/RPC2Response.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
-* \file RPC2Response.hpp
-* \brief RPC2Response class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef RPC2_RESPONSE_CLASS
-#define RPC2_RESPONSE_CLASS
-
-#include "RPC2Command.h"
-
-/**
- *\namespace NsRPC2Communication
- *\brief Namespace for communication with HMI.
-*/
-namespace NsRPC2Communication
-{
- /**
- * \class RPC2Response
- * \brief Base class for responses generated from Json RPC2
- */
- class RPC2Response : public RPC2Command
- {
- public:
- /**
- * \brief Default Constructor
- */
- RPC2Response( );
-
- /**
- * \brief Constructor
- * \param method Method Id.
- */
- RPC2Response(int method);
-
- /**
- * \brief Constructor
- * \param method Method Id.
- * \param id Message id.
- */
- RPC2Response(int method ,unsigned int id);
-
- /**
- * \brief Constructor
- * \param method Method Id.
- * \param id Message id.
- * \param res Result code.
- */
- RPC2Response(int method ,unsigned int id,int res);
-
- /**
- * \brief Destructor
- */
- virtual ~RPC2Response();
-
- /**
- * \brief Getter of Message id.
- * \return Message id.
- */
- virtual unsigned int getId() const;
-
- /**
- * \brief Setter of Message id.
- * \param id Message id.
- */
- virtual void setId(unsigned int id);
-
- /**
- * \brief Getter of Result.
- * \return Result code.
- */
- virtual int getResult() const;
-
- /**
- * \brief Setter of Result.
- * \param r Result code.
- */
- virtual void setResult(int r);
-
-
- private:
- /**
- *\brief Message id
- */
- unsigned int mId;
-
- /**
- *\brief Result code
- */
- int mResultCode;
-
- };
-}
-
-#endif // RPC2_RESPONSE_CLASS
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCMessage.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCMessage.h
deleted file mode 100644
index 52d46c19f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCMessage.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
-* \file SDLRPCMessage.hpp
-* \brief SDLRPCMessage class header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef ALRPCMESSAGE_INCLUDE
-#define ALRPCMESSAGE_INCLUDE
-
-#include <vector>
-
-/**
- *\namespace NsSmartDeviceLinkRPC
- *\brief Namespace for SmartDeviceLink JSON protocol related functionality.
-*/
-namespace NsSmartDeviceLinkRPC
-{
- /**
- * \class SDLRPCMessage
- * \brief Base class for SmartDeviceLink Json messages classes.
- */
- class SDLRPCMessage
- {
- public:
- /**
- *\enum MessageType
- *\brief SmartDeviceLink message types.
- */
- enum MessageType { REQUEST = 0x0, RESPONSE = 0x1, NOTIFICATION = 0x2, UNDEFINED };
-
- public:
- /**
- * \brief Constructor
- * \param protocolVersion Version of SmartDeviceLink protocol (currently 1,2)
- * \param messageType Type of SmartDeviceLink message
- */
- SDLRPCMessage(unsigned int protocolVersion, MessageType messageType = UNDEFINED);
-
- /**
- * \brief Constructor
- * \param protocolVersion Version of SmartDeviceLink protocol (currently 1,2).
- * \param messageType Type of SmartDeviceLink message.
- * \param methodID ID of RPC in message.
- */
- SDLRPCMessage(unsigned int protocolVersion, MessageType messageType, int methodID);
- /**
- * \brief Destructor
- */
- virtual ~SDLRPCMessage();
-
- /**
- * \brief Getter for protocol version.
- */
- virtual unsigned int getProtocolVersion() const;
-
- /**
- * \brief Getter for type of message.
- */
- virtual MessageType getMessageType() const;
-
- /**
- * \brief Getter for id of RPC.
- */
- virtual int getMethodId() const;
-
- /**
- * \breif Setter for protocol version.
- */
- virtual void setProtocolVersion(unsigned int protocolVersion);
-
- /**
- * \brief setter for type of message.
- */
- virtual void setMessageType(MessageType messageType);
-
- /**
- * \brief setter for id of RPC.
- */
- virtual void setMethodId(int packetID);
-
- /**
- * \brief setter of binary data
- * \param binaryData Vector of binary.
- */
- virtual void setBinaryData(const std::vector<unsigned char>& binaryData);
-
- /**
- * \brief Getter of binary data
- * \return Pointer to binary data or NULL if doesn't exist.
- */
- virtual const std::vector<unsigned char>* getBinaryData() const;
-
- /**
- * \brief Getter for correlation id of JSON message.
- * TODO (PV) it is not supposed to be in base class.
- * \return correlation id of JSON message.
- */
- virtual unsigned int getCorrelationID() const;
-
- /**
- * \brief Setter for correlation id of JSON message.
- * TODO (PV) it is not supposed to be in base class.
- * \param correlationID Correlation ID of JSON message.
- * \return type description
- */
- virtual void setCorrelationID(unsigned int correlationID);
- private:
- /**
- * \brief SmartDeviceLink protocol version (currently 1,2)
- */
- unsigned int mProtocolVersion;
-
- /**
- * \brief Type of Message
- * \sa enum MessageType
- */
- MessageType mMessageType;
-
- /**
- * \brief Id of RPC called in message
- * function name + "_" + MessageType+ "Id"
- */
- int mMethodId;
-
- /**
- *\brief Array of binary data if it exists
- */
- std::vector<unsigned char>* mBinaryData;
-
- /**
- *\brief Correlation id of JSON message
- * TODO not supposed to be in base class.
- */
- unsigned int mCorrelationID;
- };
-
-}
-
-#endif // ALRPCMESSAGE_INCLUDE
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCNotification.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCNotification.h
deleted file mode 100644
index 3a72160f4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCNotification.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
-* \file SDLRPCNotification.hpp
-* \brief Class SDLRPCNotification header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef ALRPCNOTIFICATION_INCLUDE
-#define ALRPCNOTIFICATION_INCLUDE
-
-#include "SDLRPCMessage.h"
-
-/**
- * \namespace NsSmartDeviceLinkRPC
- * \brief Namespace for SmartDeviceLink JSON protocol related functionality.
-*/
-namespace NsSmartDeviceLinkRPC
-{
- /**
- * \class SDLRPCNotification
- * \brief Base class for SmartDeviceLink Json notification messages.
- */
- class SDLRPCNotification : public SDLRPCMessage
- {
- public:
- /**
- * \brief Constructor
- * \param protocolVersion Version of protocol (currently 1,2)
- */
- SDLRPCNotification( unsigned int protocolVersion );
-
- /**
- * \brief Constructor
- * \param protocolVersion Version of protocol (currently 1,2).
- * \param methodID ID of RPC called by message.
- */
- SDLRPCNotification( unsigned int protocolVersion, int methodID);
-
- /**
- * \brief Default Constructor
- */
- SDLRPCNotification(void);
-
- /**
- * \brief Destructor
- */
- virtual ~SDLRPCNotification();
-
- };
-
-}
-
-#endif // ALRPCNOTIFICATION_INCLUDE
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddCommand_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddCommand_request.h
deleted file mode 100644
index 3f24c6a96..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddCommand_request.h
+++ /dev/null
@@ -1,103 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ADDCOMMAND_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKRPC_ADDCOMMAND_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "MenuParams.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/**
- Adds a command to the in application menu.
- Either menuParams or vrCommands must be provided.
-*/
-
- class AddCommand_request : public SDLRPCRequest
- {
- public:
-
- AddCommand_request(const AddCommand_request& c);
- AddCommand_request(void);
-
- virtual ~AddCommand_request(void);
-
- AddCommand_request& operator =(const AddCommand_request&);
-
- bool checkIntegrity(void);
-
- unsigned int get_cmdID(void) const;
- const MenuParams* get_menuParams(void) const;
- const std::vector<std::string>* get_vrCommands(void) const;
-
- bool set_cmdID(unsigned int cmdID_);
- void reset_menuParams(void);
- bool set_menuParams(const MenuParams& menuParams_);
- void reset_vrCommands(void);
- bool set_vrCommands(const std::vector<std::string>& vrCommands_);
-
- private:
-
- friend class AddCommand_requestMarshaller;
-
-
-/// unique ID of the command to add.
- unsigned int cmdID; //!< (0,2000000000)
-
-/// Optional sub value containing menu parameters
- MenuParams* menuParams;
-
-/**
- An array of strings to be used as VR sysnonyms for this command.
- If this array is provided, it may not be empty.
-*/
- std::vector<std::string>* vrCommands; //!< [%s..%s] (99)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddCommand_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddCommand_response.h
deleted file mode 100644
index 3ce8c6551..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddCommand_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ADDCOMMAND_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKRPC_ADDCOMMAND_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class AddCommand_response : public SDLRPCResponse
- {
- public:
- AddCommand_response(const AddCommand_response& c);
- AddCommand_response(void);
-
- virtual ~AddCommand_response(void);
-
- AddCommand_response& operator =(const AddCommand_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class AddCommand_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_request.h
deleted file mode 100644
index 71f5f30f5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_request.h
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ADDSUBMENU_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKRPC_ADDSUBMENU_REQUEST_INCLUDE
-
-#include <string>
-
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Adds a sub menu to the in-application menu.
-
- class AddSubMenu_request : public SDLRPCRequest
- {
- public:
-
- AddSubMenu_request(const AddSubMenu_request& c);
- AddSubMenu_request(void);
-
- virtual ~AddSubMenu_request(void);
-
- AddSubMenu_request& operator =(const AddSubMenu_request&);
-
- bool checkIntegrity(void);
-
- unsigned int get_menuID(void) const;
- const unsigned int* get_position(void) const;
- const std::string& get_menuName(void) const;
-
- bool set_menuID(unsigned int menuID_);
- void reset_position(void);
- bool set_position(unsigned int position_);
- bool set_menuName(const std::string& menuName_);
-
- private:
-
- friend class AddSubMenu_requestMarshaller;
-
-
-/// unique ID of the sub menu to add.
- unsigned int menuID; //!< (0,2000000000)
-
-/**
- Position within the items that are are at top level of the in application menu.
- 0 will insert at the front.
- 1 will insert at the second position.
- If position is greater or equal than the number of items on top level, the sub menu will be appended to the end.
- Position of any submenu will always be located before the return and exit options
- If this param was omitted the entry will be added at the end.
-*/
- unsigned int* position; //!< (0,1000)
-
-/// Text to show in the menu for this sub menu.
- std::string menuName; //!< (500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_response.h
deleted file mode 100644
index f5a1e88a6..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ADDSUBMENU_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ADDSUBMENU_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class AddSubMenu_response : public SDLRPCResponse
- {
- public:
- AddSubMenu_response(const AddSubMenu_response& c);
- AddSubMenu_response(void);
-
- virtual ~AddSubMenu_response(void);
-
- AddSubMenu_response& operator =(const AddSubMenu_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class AddSubMenu_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Alert_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Alert_request.h
deleted file mode 100644
index 064a19171..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Alert_request.h
+++ /dev/null
@@ -1,120 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ALERT_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ALERT_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "TTSChunk.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Shows an alert which typically consists of text-to-speech message and text on the display. At least either alertText1, alertText2 or TTSChunks need to be provided.
-
- class Alert_request : public SDLRPCRequest
- {
- public:
-
- Alert_request(const Alert_request& c);
- Alert_request(void);
-
- virtual ~Alert_request(void);
-
- Alert_request& operator =(const Alert_request&);
-
- bool checkIntegrity(void);
-
- const std::string* get_alertText1(void) const;
- const std::string* get_alertText2(void) const;
- const std::vector<TTSChunk>* get_ttsChunks(void) const;
- const unsigned int* get_duration(void) const;
- const bool* get_playTone(void) const;
-
- void reset_alertText1(void);
- bool set_alertText1(const std::string& alertText1_);
- void reset_alertText2(void);
- bool set_alertText2(const std::string& alertText2_);
- void reset_ttsChunks(void);
- bool set_ttsChunks(const std::vector<TTSChunk>& ttsChunks_);
- void reset_duration(void);
- bool set_duration(unsigned int duration_);
- void reset_playTone(void);
- bool set_playTone(bool playTone_);
-
- private:
-
- friend class Alert_requestMarshaller;
-
-
-/// The first line of the alert text field
- std::string* alertText1; //!< (500)
-
-/// The second line of the alert text field
- std::string* alertText2; //!< (500)
-
-/**
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk>* ttsChunks; //!< [%s..%s]
-
-/**
- Timeout in milliseconds.
- Typical timeouts are 3-5 seconds
- If omitted, timeout is set to 5s.
-*/
- unsigned int* duration; //!< (3000,10000)
-
-/**
- Defines if tone should be played. Tone is played before TTS.
- If omitted, no tone is played.
-*/
- bool* playTone;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Alert_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Alert_response.h
deleted file mode 100644
index 5ae8c40cf..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Alert_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ALERT_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ALERT_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class Alert_response : public SDLRPCResponse
- {
- public:
- Alert_response(const Alert_response& c);
- Alert_response(void);
-
- virtual ~Alert_response(void);
-
- Alert_response& operator =(const Alert_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class Alert_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AppInterfaceUnregisteredReason.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AppInterfaceUnregisteredReason.h
deleted file mode 100644
index 49c1010a8..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AppInterfaceUnregisteredReason.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_APPINTERFACEUNREGISTEREDREASON_INCLUDE
-#define NSSMARTDEVICELINKKRPC_APPINTERFACEUNREGISTEREDREASON_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Error code, which comes from sync side.
-
- class AppInterfaceUnregisteredReason
- {
- public:
- enum AppInterfaceUnregisteredReasonInternal
- {
- INVALID_ENUM=-1,
- USER_EXIT=0,
- IGNITION_OFF=1,
- BLUETOOTH_OFF=2,
- USB_DISCONNECTED=3,
- REQUEST_WHILE_IN_NONE_HMI_LEVEL=4,
- TOO_MANY_REQUESTS=5,
- DRIVER_DISTRACTION_VIOLATION=6,
- LANGUAGE_CHANGE=7,
- MASTER_RESET=8,
- FACTORY_DEFAULTS=9
- };
-
- AppInterfaceUnregisteredReason() : mInternal(INVALID_ENUM) {}
- AppInterfaceUnregisteredReason(AppInterfaceUnregisteredReasonInternal e) : mInternal(e) {}
-
- AppInterfaceUnregisteredReasonInternal get(void) const { return mInternal; }
- void set(AppInterfaceUnregisteredReasonInternal e) { mInternal=e; }
-
- private:
- AppInterfaceUnregisteredReasonInternal mInternal;
- friend class AppInterfaceUnregisteredReasonMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AudioCaptureQuality.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AudioCaptureQuality.h
deleted file mode 100644
index 1bcdb2e67..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AudioCaptureQuality.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_AUDIOCAPTUREQUALITY_INCLUDE
-#define NSSMARTDEVICELINKKRPC_AUDIOCAPTUREQUALITY_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Describes different quality options for PerformAudioCapture.
-
- class AudioCaptureQuality
- {
- public:
- enum AudioCaptureQualityInternal
- {
- INVALID_ENUM=-1,
- FIX_8KHZ=0,
- FIX_16KHZ=1
- };
-
- AudioCaptureQuality() : mInternal(INVALID_ENUM) {}
- AudioCaptureQuality(AudioCaptureQualityInternal e) : mInternal(e) {}
-
- AudioCaptureQualityInternal get(void) const { return mInternal; }
- void set(AudioCaptureQualityInternal e) { mInternal=e; }
-
- private:
- AudioCaptureQualityInternal mInternal;
- friend class AudioCaptureQualityMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AudioStreamingState.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AudioStreamingState.h
deleted file mode 100644
index a646fc412..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/AudioStreamingState.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_AUDIOSTREAMINGSTATE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_AUDIOSTREAMINGSTATE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Enumeraction that describes possible states of audio streaming.
-
- class AudioStreamingState
- {
- public:
- enum AudioStreamingStateInternal
- {
- INVALID_ENUM=-1,
- AUDIBLE=0,
- NOT_AUDIBLE=1
- };
-
- AudioStreamingState() : mInternal(INVALID_ENUM) {}
- AudioStreamingState(AudioStreamingStateInternal e) : mInternal(e) {}
-
- AudioStreamingStateInternal get(void) const { return mInternal; }
- void set(AudioStreamingStateInternal e) { mInternal=e; }
-
- private:
- AudioStreamingStateInternal mInternal;
- friend class AudioStreamingStateMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonCapabilities.h
deleted file mode 100644
index e0922ef34..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonCapabilities.h
+++ /dev/null
@@ -1,107 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_BUTTONCAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPC_BUTTONCAPABILITIES_INCLUDE
-
-
-#include "ButtonName.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Contains information about a buttons capabilities.
-
- class ButtonCapabilities
- {
- public:
-
- ButtonCapabilities(const ButtonCapabilities& c);
- ButtonCapabilities(void);
-
- bool checkIntegrity(void);
- // getters
-
- bool get_longPressAvailable(void) const;
- const ButtonName& get_name(void) const;
- bool get_shortPressAvailable(void) const;
- bool get_upDownAvailable(void) const;
-
-// setters
-
- bool set_longPressAvailable(bool longPressAvailable_);
- bool set_name(const ButtonName& name_);
- bool set_shortPressAvailable(bool shortPressAvailable_);
- bool set_upDownAvailable(bool upDownAvailable_);
-
- private:
-
- friend class ButtonCapabilitiesMarshaller;
-
-
-/**
- The button supports a LONG press.
- Whenever the button is pressed long, onButtonPressed( LONG) will be invoked.
-*/
- bool longPressAvailable;
-
-/// The name of the button. See ButtonName.
- ButtonName name;
-
-/**
- The button supports a short press.
- Whenever the button is pressed short, onButtonPressed( SHORT) will be invoked.
-*/
- bool shortPressAvailable;
-
-/**
- The button supports "button down" and "button up".
- Whenever the button is pressed, onButtonEvent( DOWN) will be invoked.
- Whenever the button is released, onButtonEvent( UP) will be invoked.
-*/
- bool upDownAvailable;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonEventMode.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonEventMode.h
deleted file mode 100644
index 2244bd7a5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonEventMode.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_BUTTONEVENTMODE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_BUTTONEVENTMODE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- class ButtonEventMode
- {
- public:
- enum ButtonEventModeInternal
- {
- INVALID_ENUM=-1,
-
-/// A button has been released up
- BUTTONUP=0,
-
-/// A button has been pressed down
- BUTTONDOWN=1
- };
-
- ButtonEventMode() : mInternal(INVALID_ENUM) {}
- ButtonEventMode(ButtonEventModeInternal e) : mInternal(e) {}
-
- ButtonEventModeInternal get(void) const { return mInternal; }
- void set(ButtonEventModeInternal e) { mInternal=e; }
-
- private:
- ButtonEventModeInternal mInternal;
- friend class ButtonEventModeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonName.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonName.h
deleted file mode 100644
index 0f7fc41a9..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonName.h
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_BUTTONNAME_INCLUDE
-#define NSSMARTDEVICELINKKRPC_BUTTONNAME_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Defines the hard (physical) and soft (touchscreen) buttons available from SYNC
-
- class ButtonName
- {
- public:
- enum ButtonNameInternal
- {
- INVALID_ENUM=-1,
- OK=0,
- SEEKLEFT=1,
- SEEKRIGHT=2,
- TUNEUP=3,
- TUNEDOWN=4,
- PRESET_0=5,
- PRESET_1=6,
- PRESET_2=7,
- PRESET_3=8,
- PRESET_4=9,
- PRESET_5=10,
- PRESET_6=11,
- PRESET_7=12,
- PRESET_8=13,
- PRESET_9=14
- };
-
- ButtonName() : mInternal(INVALID_ENUM) {}
- ButtonName(ButtonNameInternal e) : mInternal(e) {}
-
- ButtonNameInternal get(void) const { return mInternal; }
- void set(ButtonNameInternal e) { mInternal=e; }
-
- private:
- ButtonNameInternal mInternal;
- friend class ButtonNameMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonPressMode.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonPressMode.h
deleted file mode 100644
index d39c5db2b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ButtonPressMode.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_BUTTONPRESSMODE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_BUTTONPRESSMODE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- class ButtonPressMode
- {
- public:
- enum ButtonPressModeInternal
- {
- INVALID_ENUM=-1,
-
-/**
- A button was released, after it was pressed for a long time
- Actual timing is defined by Sync and may vary
-*/
- LONG=0,
-
-/**
- A button was released, after it was pressed for a short time
- Actual timing is defined by Sync and may vary
-*/
- SHORT=1
- };
-
- ButtonPressMode() : mInternal(INVALID_ENUM) {}
- ButtonPressMode(ButtonPressModeInternal e) : mInternal(e) {}
-
- ButtonPressModeInternal get(void) const { return mInternal; }
- void set(ButtonPressModeInternal e) { mInternal=e; }
-
- private:
- ButtonPressModeInternal mInternal;
- friend class ButtonPressModeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CharacterSet.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CharacterSet.h
deleted file mode 100644
index f2c202eac..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CharacterSet.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_CHARACTERSET_INCLUDE
-#define NSSMARTDEVICELINKKRPC_CHARACTERSET_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// The list of potential character sets
-
- class CharacterSet
- {
- public:
- enum CharacterSetInternal
- {
- INVALID_ENUM=-1,
-
-/// See [@TODO: create file ref]
- TYPE2SET=0,
-
-/// See [@TODO: create file ref]
- TYPE5SET=1,
-
-/// See [@TODO: create file ref]
- CID1SET=2,
-
-/// See [@TODO: create file ref]
- CID2SET=3
- };
-
- CharacterSet() : mInternal(INVALID_ENUM) {}
- CharacterSet(CharacterSetInternal e) : mInternal(e) {}
-
- CharacterSetInternal get(void) const { return mInternal; }
- void set(CharacterSetInternal e) { mInternal=e; }
-
- private:
- CharacterSetInternal mInternal;
- friend class CharacterSetMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Choice.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Choice.h
deleted file mode 100644
index 1ff1921c3..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Choice.h
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_CHOICE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_CHOICE_INCLUDE
-
-#include <string>
-#include <vector>
-
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// A choice is an option given to the user, which can be selected either by menu, or through voice recognition system.
-
- class Choice
- {
- public:
-
- Choice(const Choice& c);
- Choice(void);
-
- bool checkIntegrity(void);
- // getters
-
- unsigned int get_choiceID(void) const;
- const std::string& get_menuName(void) const;
- const std::vector<std::string>& get_vrCommands(void) const;
-
-// setters
-
- bool set_choiceID(unsigned int choiceID_);
- bool set_menuName(const std::string& menuName_);
- bool set_vrCommands(const std::vector<std::string>& vrCommands_);
-
- private:
-
- friend class ChoiceMarshaller;
-
- unsigned int choiceID; //!< (0,65535)
- std::string menuName; //!< (500)
- std::vector<std::string> vrCommands; //!< [%s..%s] (99)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_request.h
deleted file mode 100644
index 1021f0e01..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_request.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_CREATEINTERACTIONCHOICESET_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_CREATEINTERACTIONCHOICESET_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "Choice.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// creates interaction choice set to be used later by performInteraction
-
- class CreateInteractionChoiceSet_request : public SDLRPCRequest
- {
- public:
-
- CreateInteractionChoiceSet_request(const CreateInteractionChoiceSet_request& c);
- CreateInteractionChoiceSet_request(void);
-
- virtual ~CreateInteractionChoiceSet_request(void);
-
- bool checkIntegrity(void);
-
- unsigned int get_interactionChoiceSetID(void) const;
- const std::vector<Choice>& get_choiceSet(void) const;
-
- bool set_interactionChoiceSetID(unsigned int interactionChoiceSetID_);
- bool set_choiceSet(const std::vector<Choice>& choiceSet_);
-
- private:
-
- friend class CreateInteractionChoiceSet_requestMarshaller;
-
-
-/// Unique ID used for this interaction choice set.
- unsigned int interactionChoiceSetID; //!< (0,2000000000)
- std::vector<Choice> choiceSet; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_response.h
deleted file mode 100644
index 3fa301a03..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_CREATEINTERACTIONCHOICESET_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_CREATEINTERACTIONCHOICESET_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class CreateInteractionChoiceSet_response : public SDLRPCResponse
- {
- public:
- CreateInteractionChoiceSet_response(const CreateInteractionChoiceSet_response& c);
- CreateInteractionChoiceSet_response(void);
-
- virtual ~CreateInteractionChoiceSet_response(void);
-
- CreateInteractionChoiceSet_response& operator =(const CreateInteractionChoiceSet_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class CreateInteractionChoiceSet_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_request.h
deleted file mode 100644
index 7426e69cb..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_request.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_DELETECOMMAND_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_DELETECOMMAND_REQUEST_INCLUDE
-
-
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Deletes all commands from the in-application menu with the specified command id.
-
- class DeleteCommand_request : public SDLRPCRequest
- {
- public:
-
- DeleteCommand_request(const DeleteCommand_request& c);
- DeleteCommand_request(void);
-
- virtual ~DeleteCommand_request(void);
-
- bool checkIntegrity(void);
-
- unsigned int get_cmdID(void) const;
-
- bool set_cmdID(unsigned int cmdID_);
-
- private:
-
- friend class DeleteCommand_requestMarshaller;
-
-
-/// ID of the command(s) to delete.
- unsigned int cmdID; //!< (0,2000000000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_response.h
deleted file mode 100644
index 3188e337b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_DELETECOMMAND_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_DELETECOMMAND_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class DeleteCommand_response : public SDLRPCResponse
- {
- public:
- DeleteCommand_response(const DeleteCommand_response& c);
- DeleteCommand_response(void);
-
- virtual ~DeleteCommand_response(void);
-
- DeleteCommand_response& operator =(const DeleteCommand_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class DeleteCommand_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_request.h
deleted file mode 100644
index 01d83f3e0..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_request.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_DELETEINTERACTIONCHOICESET_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_DELETEINTERACTIONCHOICESET_REQUEST_INCLUDE
-
-
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/**
- Deletes interaction choice set that has been created with "CreateInteractionChoiceSet".
- The interaction may only be deleted when not currently in use by a "performInteraction".
-*/
-
- class DeleteInteractionChoiceSet_request : public SDLRPCRequest
- {
- public:
-
- DeleteInteractionChoiceSet_request(const DeleteInteractionChoiceSet_request& c);
- DeleteInteractionChoiceSet_request(void);
-
- virtual ~DeleteInteractionChoiceSet_request(void);
-
- bool checkIntegrity(void);
-
- unsigned int get_interactionChoiceSetID(void) const;
-
- bool set_interactionChoiceSetID(unsigned int interactionChoiceSetID_);
-
- private:
-
- friend class DeleteInteractionChoiceSet_requestMarshaller;
-
-
-/// ID of the interaction choice set to delete.
- unsigned int interactionChoiceSetID; //!< (0,2000000000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_response.h
deleted file mode 100644
index 81286dc13..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_DELETEINTERACTIONCHOICESET_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_DELETEINTERACTIONCHOICESET_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class DeleteInteractionChoiceSet_response : public SDLRPCResponse
- {
- public:
- DeleteInteractionChoiceSet_response(const DeleteInteractionChoiceSet_response& c);
- DeleteInteractionChoiceSet_response(void);
-
- virtual ~DeleteInteractionChoiceSet_response(void);
-
- DeleteInteractionChoiceSet_response& operator =(const DeleteInteractionChoiceSet_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class DeleteInteractionChoiceSet_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_request.h
deleted file mode 100644
index 00a3893be..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_request.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_DELETESUBMENU_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_DELETESUBMENU_REQUEST_INCLUDE
-
-
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Deletes a submenu from the in-application menu.
-
- class DeleteSubMenu_request : public SDLRPCRequest
- {
- public:
-
- DeleteSubMenu_request(const DeleteSubMenu_request& c);
- DeleteSubMenu_request(void);
-
- virtual ~DeleteSubMenu_request(void);
-
- bool checkIntegrity(void);
-
- unsigned int get_menuID(void) const;
-
- bool set_menuID(unsigned int menuID_);
-
- private:
-
- friend class DeleteSubMenu_requestMarshaller;
-
-
-/// The "menuID" of the submenu to delete. (See addSubMenu.menuID)
- unsigned int menuID; //!< (0,2000000000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_response.h
deleted file mode 100644
index c9bbe84a4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_DELETESUBMENU_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_DELETESUBMENU_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class DeleteSubMenu_response : public SDLRPCResponse
- {
- public:
- DeleteSubMenu_response(const DeleteSubMenu_response& c);
- DeleteSubMenu_response(void);
-
- virtual ~DeleteSubMenu_response(void);
-
- DeleteSubMenu_response& operator =(const DeleteSubMenu_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class DeleteSubMenu_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DisplayCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DisplayCapabilities.h
deleted file mode 100644
index 1b5274370..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DisplayCapabilities.h
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_DISPLAYCAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPC_DISPLAYCAPABILITIES_INCLUDE
-
-#include <vector>
-
-#include "DisplayType.h"
-#include "MediaClockFormat.h"
-#include "TextField.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Contains information about the display capabilities.
-
- class DisplayCapabilities
- {
- public:
-
- DisplayCapabilities(const DisplayCapabilities& c);
- DisplayCapabilities(void);
-
- bool checkIntegrity(void);
- // getters
-
- const DisplayType& get_displayType(void) const;
- const std::vector<MediaClockFormat>& get_mediaClockFormats(void) const;
- const std::vector<TextField>& get_textFields(void) const;
-
-// setters
-
- bool set_displayType(const DisplayType& displayType_);
- bool set_mediaClockFormats(const std::vector<MediaClockFormat>& mediaClockFormats_);
- bool set_textFields(const std::vector<TextField>& textFields_);
-
- private:
-
- friend class DisplayCapabilitiesMarshaller;
-
-
-/// The type of the display. See DisplayType
- DisplayType displayType;
-
-/// A set of all supported formats of the media clock. See MediaClockFormat
- std::vector<MediaClockFormat> mediaClockFormats; //!< [%s..%s]
-
-/// A set of all fields that support text data. See TextField
- std::vector<TextField> textFields; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DisplayType.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DisplayType.h
deleted file mode 100644
index d9ec435f1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DisplayType.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_DISPLAYTYPE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_DISPLAYTYPE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// See DAES for further infos regarding the displays]
-
- class DisplayType
- {
- public:
- enum DisplayTypeInternal
- {
- INVALID_ENUM=-1,
- CID=0,
- TYPE2=1,
- TYPE5=2,
- NGN=3,
- GEN2_8_DMA=4,
- GEN2_6_DMA=5,
- MFD3=6,
- MFD4=7,
- MFD5=8
- };
-
- DisplayType() : mInternal(INVALID_ENUM) {}
- DisplayType(DisplayTypeInternal e) : mInternal(e) {}
-
- DisplayTypeInternal get(void) const { return mInternal; }
- void set(DisplayTypeInternal e) { mInternal=e; }
-
- private:
- DisplayTypeInternal mInternal;
- friend class DisplayTypeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DriverDistractionState.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DriverDistractionState.h
deleted file mode 100644
index 60f1c05fc..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/DriverDistractionState.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_DRIVERDISTRACTIONSTATE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_DRIVERDISTRACTIONSTATE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Enumeration that describes possible states of driver distraction.
-
- class DriverDistractionState
- {
- public:
- enum DriverDistractionStateInternal
- {
- INVALID_ENUM=-1,
- DD_ON=0,
- DD_OFF=1
- };
-
- DriverDistractionState() : mInternal(INVALID_ENUM) {}
- DriverDistractionState(DriverDistractionStateInternal e) : mInternal(e) {}
-
- DriverDistractionStateInternal get(void) const { return mInternal; }
- void set(DriverDistractionStateInternal e) { mInternal=e; }
-
- private:
- DriverDistractionStateInternal mInternal;
- friend class DriverDistractionStateMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_request.h
deleted file mode 100644
index f95493e9e..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_request.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ENCODEDSYNCPDATA_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ENCODEDSYNCPDATA_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Allows encoded data in the form of SyncP packets to be sent to the SYNC module
-
- class EncodedSyncPData_request : public SDLRPCRequest
- {
- public:
-
- EncodedSyncPData_request(const EncodedSyncPData_request& c);
- EncodedSyncPData_request(void);
-
- virtual ~EncodedSyncPData_request(void);
-
- EncodedSyncPData_request& operator =(const EncodedSyncPData_request&);
-
- bool checkIntegrity(void);
-
- const std::vector<std::string>* get_data(void) const;
-
- void reset_data(void);
- bool set_data(const std::vector<std::string>& data_);
-
- private:
-
- friend class EncodedSyncPData_requestMarshaller;
-
-
-/// Contains base64 encoded string of SyncP packets.
- std::vector<std::string>* data; //!< [%s..%s] (10000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_response.h
deleted file mode 100644
index 01e78d403..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ENCODEDSYNCPDATA_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ENCODEDSYNCPDATA_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class EncodedSyncPData_response : public SDLRPCResponse
- {
- public:
- EncodedSyncPData_response(const EncodedSyncPData_response& c);
- EncodedSyncPData_response(void);
-
- virtual ~EncodedSyncPData_response(void);
-
- EncodedSyncPData_response& operator =(const EncodedSyncPData_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class EncodedSyncPData_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/GenericResponse_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/GenericResponse_response.h
deleted file mode 100644
index 337180bcb..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/GenericResponse_response.h
+++ /dev/null
@@ -1,70 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_GENERICRESPONSE_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_GENERICRESPONSE_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- /**
- Generic Response is sent, when the name of a received msg cannot be retrieved. Only used in case of an error.
- Currently, only resultCode INVALID_DATA is used.
- */
- class GenericResponse_response : public SDLRPCResponse
- {
- public:
- GenericResponse_response(const GenericResponse_response& c);
- GenericResponse_response(void);
-
- virtual ~GenericResponse_response(void);
-
- GenericResponse_response& operator =(const GenericResponse_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class GenericResponse_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/GlobalProperty.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/GlobalProperty.h
deleted file mode 100644
index 0f5dbee8b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/GlobalProperty.h
+++ /dev/null
@@ -1,78 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_GLOBALPROPERTY_INCLUDE
-#define NSSMARTDEVICELINKKRPC_GLOBALPROPERTY_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// The different global properties.
-
- class GlobalProperty
- {
- public:
- enum GlobalPropertyInternal
- {
- INVALID_ENUM=-1,
-
-/// The property helpPrompt of setGlobalProperties
- HELPPROMPT=0,
-
-/// The property timeoutPrompt of setGlobalProperties
- TIMEOUTPROMPT=1
- };
-
- GlobalProperty() : mInternal(INVALID_ENUM) {}
- GlobalProperty(GlobalPropertyInternal e) : mInternal(e) {}
-
- GlobalPropertyInternal get(void) const { return mInternal; }
- void set(GlobalPropertyInternal e) { mInternal=e; }
-
- private:
- GlobalPropertyInternal mInternal;
- friend class GlobalPropertyMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/HMILevel.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/HMILevel.h
deleted file mode 100644
index da0dc36d3..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/HMILevel.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_HMILEVEL_INCLUDE
-#define NSSMARTDEVICELINKKRPC_HMILEVEL_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Enumeraction that describes current levels of HMI.
-
- class HMILevel
- {
- public:
- enum HMILevelInternal
- {
- INVALID_ENUM=-1,
- HMI_FULL=0,
- HMI_LIMITED=1,
- HMI_BACKGROUND=2,
- HMI_NONE=3
- };
-
- HMILevel() : mInternal(INVALID_ENUM) {}
- HMILevel(HMILevelInternal e) : mInternal(e) {}
-
- HMILevelInternal get(void) const { return mInternal; }
- void set(HMILevelInternal e) { mInternal=e; }
-
- private:
- HMILevelInternal mInternal;
- friend class HMILevelMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/HmiZoneCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/HmiZoneCapabilities.h
deleted file mode 100644
index 057ecb499..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/HmiZoneCapabilities.h
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_HMIZONECAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPC_HMIZONECAPABILITIES_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/**
- Contains information about the HMI zone capabilities.
- For future use.
-*/
-
- class HmiZoneCapabilities
- {
- public:
- enum HmiZoneCapabilitiesInternal
- {
- INVALID_ENUM=-1,
- FRONT=0,
- BACK=1
- };
-
- HmiZoneCapabilities() : mInternal(INVALID_ENUM) {}
- HmiZoneCapabilities(HmiZoneCapabilitiesInternal e) : mInternal(e) {}
-
- HmiZoneCapabilitiesInternal get(void) const { return mInternal; }
- void set(HmiZoneCapabilitiesInternal e) { mInternal=e; }
-
- private:
- HmiZoneCapabilitiesInternal mInternal;
- friend class HmiZoneCapabilitiesMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/InteractionMode.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/InteractionMode.h
deleted file mode 100644
index cfcb114a3..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/InteractionMode.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_INTERACTIONMODE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_INTERACTIONMODE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/**
- For application-requested interactions, this mode indicates the method in which the user is notified and uses the interaction.
- This mode causes the interaction to only occur on the display, meaning the choices are provided only via the display.
- Selections are made with the OK and Seek Right and Left, Tune Up and Down buttons.
- This mode causes the interaction to only occur using V4.
- Selections are made by saying the command.
- This mode causes both a VR and display selection option for an interaction.
- Selections can be made either from the menu display or by speaking the command.
-*/
-
- class InteractionMode
- {
- public:
- enum InteractionModeInternal
- {
- INVALID_ENUM=-1,
- MANUAL_ONLY=0,
- VR_ONLY=1,
- BOTH=2
- };
-
- InteractionMode() : mInternal(INVALID_ENUM) {}
- InteractionMode(InteractionModeInternal e) : mInternal(e) {}
-
- InteractionModeInternal get(void) const { return mInternal; }
- void set(InteractionModeInternal e) { mInternal=e; }
-
- private:
- InteractionModeInternal mInternal;
- friend class InteractionModeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Language.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Language.h
deleted file mode 100644
index 13bd80bbf..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Language.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_LANGUAGE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_LANGUAGE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// The set of potential languages
-
- class Language
- {
- public:
- enum LanguageInternal
- {
- INVALID_ENUM=-1,
-
-/// US English
- EN_US=0,
-
-/// Mexican Spanish
- ES_MX=1,
-
-/// Canadian French
- FR_CA=2
- };
-
- Language() : mInternal(INVALID_ENUM) {}
- Language(LanguageInternal e) : mInternal(e) {}
-
- LanguageInternal get(void) const { return mInternal; }
- void set(LanguageInternal e) { mInternal=e; }
-
- private:
- LanguageInternal mInternal;
- friend class LanguageMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Marshaller.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Marshaller.h
deleted file mode 100644
index 085a41c4b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Marshaller.h
+++ /dev/null
@@ -1,728 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_MARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKKRPC_MARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/SDLRPCObjectsImpl/V1/RegisterAppInterface_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/RegisterAppInterface_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/SetGlobalProperties_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/SetGlobalProperties_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/AddCommand_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/AddCommand_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/DeleteCommand_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/DeleteCommand_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/AddSubMenu_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/AddSubMenu_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/DeleteSubMenu_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/DeleteSubMenu_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/PerformInteraction_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/PerformInteraction_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/Alert_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/Alert_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/Show_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/Show_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/Speak_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/Speak_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/EncodedSyncPData_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/EncodedSyncPData_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/SubscribeButton_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/SubscribeButton_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/UnsubscribeButton_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/UnsubscribeButton_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/GenericResponse_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/OnHMIStatusMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregisteredMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/OnButtonEventMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/OnButtonPressMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/OnCommandMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/OnEncodedSyncPDataMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/OnTBTClientStateMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V1/OnDriverDistractionMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class Marshaller
- {
- public:
-
- enum Methods
- {
- METHOD_INVALID=-1,
- METHOD_REGISTERAPPINTERFACE_REQUEST=0,
- METHOD_REGISTERAPPINTERFACE_RESPONSE=1,
- METHOD_UNREGISTERAPPINTERFACE_REQUEST=2,
- METHOD_UNREGISTERAPPINTERFACE_RESPONSE=3,
- METHOD_SETGLOBALPROPERTIES_REQUEST=4,
- METHOD_SETGLOBALPROPERTIES_RESPONSE=5,
- METHOD_RESETGLOBALPROPERTIES_REQUEST=6,
- METHOD_RESETGLOBALPROPERTIES_RESPONSE=7,
- METHOD_ADDCOMMAND_REQUEST=8,
- METHOD_ADDCOMMAND_RESPONSE=9,
- METHOD_DELETECOMMAND_REQUEST=10,
- METHOD_DELETECOMMAND_RESPONSE=11,
- METHOD_ADDSUBMENU_REQUEST=12,
- METHOD_ADDSUBMENU_RESPONSE=13,
- METHOD_DELETESUBMENU_REQUEST=14,
- METHOD_DELETESUBMENU_RESPONSE=15,
- METHOD_CREATEINTERACTIONCHOICESET_REQUEST=16,
- METHOD_CREATEINTERACTIONCHOICESET_RESPONSE=17,
- METHOD_PERFORMINTERACTION_REQUEST=18,
- METHOD_PERFORMINTERACTION_RESPONSE=19,
- METHOD_DELETEINTERACTIONCHOICESET_REQUEST=20,
- METHOD_DELETEINTERACTIONCHOICESET_RESPONSE=21,
- METHOD_ALERT_REQUEST=22,
- METHOD_ALERT_RESPONSE=23,
- METHOD_SHOW_REQUEST=24,
- METHOD_SHOW_RESPONSE=25,
- METHOD_SPEAK_REQUEST=26,
- METHOD_SPEAK_RESPONSE=27,
- METHOD_SETMEDIACLOCKTIMER_REQUEST=28,
- METHOD_SETMEDIACLOCKTIMER_RESPONSE=29,
- METHOD_ENCODEDSYNCPDATA_REQUEST=30,
- METHOD_ENCODEDSYNCPDATA_RESPONSE=31,
- METHOD_SUBSCRIBEBUTTON_REQUEST=32,
- METHOD_SUBSCRIBEBUTTON_RESPONSE=33,
- METHOD_UNSUBSCRIBEBUTTON_REQUEST=34,
- METHOD_UNSUBSCRIBEBUTTON_RESPONSE=35,
- METHOD_GENERICRESPONSE_RESPONSE=36,
- METHOD_ONHMISTATUS=37,
- METHOD_ONAPPINTERFACEUNREGISTERED=38,
- METHOD_ONBUTTONEVENT=39,
- METHOD_ONBUTTONPRESS=40,
- METHOD_ONCOMMAND=41,
- METHOD_ONENCODEDSYNCPDATA=42,
- METHOD_ONTBTCLIENTSTATE=43,
- METHOD_ONDRIVERDISTRACTION=44
- };
-
- Marshaller() {}
- ~Marshaller() {}
-
-
- static SDLRPCMessage* fromString(const std::string&);
- static std::string toString(const SDLRPCMessage* msg);
-
- static SDLRPCMessage* fromJSON(const Json::Value&);
- static Json::Value toJSON(const SDLRPCMessage* msg);
-
- protected:
-
-
-// RegisterAppInterface_request
- static bool fromString(const std::string& str, RegisterAppInterface_request& res)
- {
- return mRegisterAppInterface_request.fromString(str, res);
- }
-
- static std::string toString(const RegisterAppInterface_request& res)
- {
- return mRegisterAppInterface_request.toString(res);
- }
-
-// RegisterAppInterface_response
- static bool fromString(const std::string& str, RegisterAppInterface_response& res)
- {
- return mRegisterAppInterface_response.fromString(str, res);
- }
-
- static std::string toString(const RegisterAppInterface_response& res)
- {
- return mRegisterAppInterface_response.toString(res);
- }
-
-// UnregisterAppInterface_request
- static bool fromString(const std::string& str, UnregisterAppInterface_request& res)
- {
- return mUnregisterAppInterface_request.fromString(str, res);
- }
-
- static std::string toString(const UnregisterAppInterface_request& res)
- {
- return mUnregisterAppInterface_request.toString(res);
- }
-
-// UnregisterAppInterface_response
- static bool fromString(const std::string& str, UnregisterAppInterface_response& res)
- {
- return mUnregisterAppInterface_response.fromString(str, res);
- }
-
- static std::string toString(const UnregisterAppInterface_response& res)
- {
- return mUnregisterAppInterface_response.toString(res);
- }
-
-// SetGlobalProperties_request
- static bool fromString(const std::string& str, SetGlobalProperties_request& res)
- {
- return mSetGlobalProperties_request.fromString(str, res);
- }
-
- static std::string toString(const SetGlobalProperties_request& res)
- {
- return mSetGlobalProperties_request.toString(res);
- }
-
-// SetGlobalProperties_response
- static bool fromString(const std::string& str, SetGlobalProperties_response& res)
- {
- return mSetGlobalProperties_response.fromString(str, res);
- }
-
- static std::string toString(const SetGlobalProperties_response& res)
- {
- return mSetGlobalProperties_response.toString(res);
- }
-
-// ResetGlobalProperties_request
- static bool fromString(const std::string& str, ResetGlobalProperties_request& res)
- {
- return mResetGlobalProperties_request.fromString(str, res);
- }
-
- static std::string toString(const ResetGlobalProperties_request& res)
- {
- return mResetGlobalProperties_request.toString(res);
- }
-
-// ResetGlobalProperties_response
- static bool fromString(const std::string& str, ResetGlobalProperties_response& res)
- {
- return mResetGlobalProperties_response.fromString(str, res);
- }
-
- static std::string toString(const ResetGlobalProperties_response& res)
- {
- return mResetGlobalProperties_response.toString(res);
- }
-
-// AddCommand_request
- static bool fromString(const std::string& str, AddCommand_request& res)
- {
- return mAddCommand_request.fromString(str, res);
- }
-
- static std::string toString(const AddCommand_request& res)
- {
- return mAddCommand_request.toString(res);
- }
-
-// AddCommand_response
- static bool fromString(const std::string& str, AddCommand_response& res)
- {
- return mAddCommand_response.fromString(str, res);
- }
-
- static std::string toString(const AddCommand_response& res)
- {
- return mAddCommand_response.toString(res);
- }
-
-// DeleteCommand_request
- static bool fromString(const std::string& str, DeleteCommand_request& res)
- {
- return mDeleteCommand_request.fromString(str, res);
- }
-
- static std::string toString(const DeleteCommand_request& res)
- {
- return mDeleteCommand_request.toString(res);
- }
-
-// DeleteCommand_response
- static bool fromString(const std::string& str, DeleteCommand_response& res)
- {
- return mDeleteCommand_response.fromString(str, res);
- }
-
- static std::string toString(const DeleteCommand_response& res)
- {
- return mDeleteCommand_response.toString(res);
- }
-
-// AddSubMenu_request
- static bool fromString(const std::string& str, AddSubMenu_request& res)
- {
- return mAddSubMenu_request.fromString(str, res);
- }
-
- static std::string toString(const AddSubMenu_request& res)
- {
- return mAddSubMenu_request.toString(res);
- }
-
-// AddSubMenu_response
- static bool fromString(const std::string& str, AddSubMenu_response& res)
- {
- return mAddSubMenu_response.fromString(str, res);
- }
-
- static std::string toString(const AddSubMenu_response& res)
- {
- return mAddSubMenu_response.toString(res);
- }
-
-// DeleteSubMenu_request
- static bool fromString(const std::string& str, DeleteSubMenu_request& res)
- {
- return mDeleteSubMenu_request.fromString(str, res);
- }
-
- static std::string toString(const DeleteSubMenu_request& res)
- {
- return mDeleteSubMenu_request.toString(res);
- }
-
-// DeleteSubMenu_response
- static bool fromString(const std::string& str, DeleteSubMenu_response& res)
- {
- return mDeleteSubMenu_response.fromString(str, res);
- }
-
- static std::string toString(const DeleteSubMenu_response& res)
- {
- return mDeleteSubMenu_response.toString(res);
- }
-
-// CreateInteractionChoiceSet_request
- static bool fromString(const std::string& str, CreateInteractionChoiceSet_request& res)
- {
- return mCreateInteractionChoiceSet_request.fromString(str, res);
- }
-
- static std::string toString(const CreateInteractionChoiceSet_request& res)
- {
- return mCreateInteractionChoiceSet_request.toString(res);
- }
-
-// CreateInteractionChoiceSet_response
- static bool fromString(const std::string& str, CreateInteractionChoiceSet_response& res)
- {
- return mCreateInteractionChoiceSet_response.fromString(str, res);
- }
-
- static std::string toString(const CreateInteractionChoiceSet_response& res)
- {
- return mCreateInteractionChoiceSet_response.toString(res);
- }
-
-// PerformInteraction_request
- static bool fromString(const std::string& str, PerformInteraction_request& res)
- {
- return mPerformInteraction_request.fromString(str, res);
- }
-
- static std::string toString(const PerformInteraction_request& res)
- {
- return mPerformInteraction_request.toString(res);
- }
-
-// PerformInteraction_response
- static bool fromString(const std::string& str, PerformInteraction_response& res)
- {
- return mPerformInteraction_response.fromString(str, res);
- }
-
- static std::string toString(const PerformInteraction_response& res)
- {
- return mPerformInteraction_response.toString(res);
- }
-
-// DeleteInteractionChoiceSet_request
- static bool fromString(const std::string& str, DeleteInteractionChoiceSet_request& res)
- {
- return mDeleteInteractionChoiceSet_request.fromString(str, res);
- }
-
- static std::string toString(const DeleteInteractionChoiceSet_request& res)
- {
- return mDeleteInteractionChoiceSet_request.toString(res);
- }
-
-// DeleteInteractionChoiceSet_response
- static bool fromString(const std::string& str, DeleteInteractionChoiceSet_response& res)
- {
- return mDeleteInteractionChoiceSet_response.fromString(str, res);
- }
-
- static std::string toString(const DeleteInteractionChoiceSet_response& res)
- {
- return mDeleteInteractionChoiceSet_response.toString(res);
- }
-
-// Alert_request
- static bool fromString(const std::string& str, Alert_request& res)
- {
- return mAlert_request.fromString(str, res);
- }
-
- static std::string toString(const Alert_request& res)
- {
- return mAlert_request.toString(res);
- }
-
-// Alert_response
- static bool fromString(const std::string& str, Alert_response& res)
- {
- return mAlert_response.fromString(str, res);
- }
-
- static std::string toString(const Alert_response& res)
- {
- return mAlert_response.toString(res);
- }
-
-// Show_request
- static bool fromString(const std::string& str, Show_request& res)
- {
- return mShow_request.fromString(str, res);
- }
-
- static std::string toString(const Show_request& res)
- {
- return mShow_request.toString(res);
- }
-
-// Show_response
- static bool fromString(const std::string& str, Show_response& res)
- {
- return mShow_response.fromString(str, res);
- }
-
- static std::string toString(const Show_response& res)
- {
- return mShow_response.toString(res);
- }
-
-// Speak_request
- static bool fromString(const std::string& str, Speak_request& res)
- {
- return mSpeak_request.fromString(str, res);
- }
-
- static std::string toString(const Speak_request& res)
- {
- return mSpeak_request.toString(res);
- }
-
-// Speak_response
- static bool fromString(const std::string& str, Speak_response& res)
- {
- return mSpeak_response.fromString(str, res);
- }
-
- static std::string toString(const Speak_response& res)
- {
- return mSpeak_response.toString(res);
- }
-
-// SetMediaClockTimer_request
- static bool fromString(const std::string& str, SetMediaClockTimer_request& res)
- {
- return mSetMediaClockTimer_request.fromString(str, res);
- }
-
- static std::string toString(const SetMediaClockTimer_request& res)
- {
- return mSetMediaClockTimer_request.toString(res);
- }
-
-// SetMediaClockTimer_response
- static bool fromString(const std::string& str, SetMediaClockTimer_response& res)
- {
- return mSetMediaClockTimer_response.fromString(str, res);
- }
-
- static std::string toString(const SetMediaClockTimer_response& res)
- {
- return mSetMediaClockTimer_response.toString(res);
- }
-
-// EncodedSyncPData_request
- static bool fromString(const std::string& str, EncodedSyncPData_request& res)
- {
- return mEncodedSyncPData_request.fromString(str, res);
- }
-
- static std::string toString(const EncodedSyncPData_request& res)
- {
- return mEncodedSyncPData_request.toString(res);
- }
-
-// EncodedSyncPData_response
- static bool fromString(const std::string& str, EncodedSyncPData_response& res)
- {
- return mEncodedSyncPData_response.fromString(str, res);
- }
-
- static std::string toString(const EncodedSyncPData_response& res)
- {
- return mEncodedSyncPData_response.toString(res);
- }
-
-// SubscribeButton_request
- static bool fromString(const std::string& str, SubscribeButton_request& res)
- {
- return mSubscribeButton_request.fromString(str, res);
- }
-
- static std::string toString(const SubscribeButton_request& res)
- {
- return mSubscribeButton_request.toString(res);
- }
-
-// SubscribeButton_response
- static bool fromString(const std::string& str, SubscribeButton_response& res)
- {
- return mSubscribeButton_response.fromString(str, res);
- }
-
- static std::string toString(const SubscribeButton_response& res)
- {
- return mSubscribeButton_response.toString(res);
- }
-
-// UnsubscribeButton_request
- static bool fromString(const std::string& str, UnsubscribeButton_request& res)
- {
- return mUnsubscribeButton_request.fromString(str, res);
- }
-
- static std::string toString(const UnsubscribeButton_request& res)
- {
- return mUnsubscribeButton_request.toString(res);
- }
-
-// UnsubscribeButton_response
- static bool fromString(const std::string& str, UnsubscribeButton_response& res)
- {
- return mUnsubscribeButton_response.fromString(str, res);
- }
-
- static std::string toString(const UnsubscribeButton_response& res)
- {
- return mUnsubscribeButton_response.toString(res);
- }
-
-// GenericResponse_response
- static bool fromString(const std::string& str, GenericResponse_response& res)
- {
- return mGenericResponse_response.fromString(str, res);
- }
-
- static std::string toString(const GenericResponse_response& res)
- {
- return mGenericResponse_response.toString(res);
- }
-
-// OnHMIStatus
- static bool fromString(const std::string& str, OnHMIStatus& res)
- {
- return mOnHMIStatus.fromString(str, res);
- }
-
- static std::string toString(const OnHMIStatus& res)
- {
- return mOnHMIStatus.toString(res);
- }
-
-// OnAppInterfaceUnregistered
- static bool fromString(const std::string& str, OnAppInterfaceUnregistered& res)
- {
- return mOnAppInterfaceUnregistered.fromString(str, res);
- }
-
- static std::string toString(const OnAppInterfaceUnregistered& res)
- {
- return mOnAppInterfaceUnregistered.toString(res);
- }
-
-// OnButtonEvent
- static bool fromString(const std::string& str, OnButtonEvent& res)
- {
- return mOnButtonEvent.fromString(str, res);
- }
-
- static std::string toString(const OnButtonEvent& res)
- {
- return mOnButtonEvent.toString(res);
- }
-
-// OnButtonPress
- static bool fromString(const std::string& str, OnButtonPress& res)
- {
- return mOnButtonPress.fromString(str, res);
- }
-
- static std::string toString(const OnButtonPress& res)
- {
- return mOnButtonPress.toString(res);
- }
-
-// OnCommand
- static bool fromString(const std::string& str, OnCommand& res)
- {
- return mOnCommand.fromString(str, res);
- }
-
- static std::string toString(const OnCommand& res)
- {
- return mOnCommand.toString(res);
- }
-
-// OnEncodedSyncPData
- static bool fromString(const std::string& str, OnEncodedSyncPData& res)
- {
- return mOnEncodedSyncPData.fromString(str, res);
- }
-
- static std::string toString(const OnEncodedSyncPData& res)
- {
- return mOnEncodedSyncPData.toString(res);
- }
-
-// OnTBTClientState
- static bool fromString(const std::string& str, OnTBTClientState& res)
- {
- return mOnTBTClientState.fromString(str, res);
- }
-
- static std::string toString(const OnTBTClientState& res)
- {
- return mOnTBTClientState.toString(res);
- }
-
-// OnDriverDistraction
- static bool fromString(const std::string& str, OnDriverDistraction& res)
- {
- return mOnDriverDistraction.fromString(str, res);
- }
-
- static std::string toString(const OnDriverDistraction& res)
- {
- return mOnDriverDistraction.toString(res);
- }
-
- struct localHash
- {
- const char *name;
- unsigned int idx;
- void* marshaller; // Bingo!!! old good plain C with direct casting!!!
- };
-
- private:
-
- static RegisterAppInterface_requestMarshaller mRegisterAppInterface_request;
- static RegisterAppInterface_responseMarshaller mRegisterAppInterface_response;
- static UnregisterAppInterface_requestMarshaller mUnregisterAppInterface_request;
- static UnregisterAppInterface_responseMarshaller mUnregisterAppInterface_response;
- static SetGlobalProperties_requestMarshaller mSetGlobalProperties_request;
- static SetGlobalProperties_responseMarshaller mSetGlobalProperties_response;
- static ResetGlobalProperties_requestMarshaller mResetGlobalProperties_request;
- static ResetGlobalProperties_responseMarshaller mResetGlobalProperties_response;
- static AddCommand_requestMarshaller mAddCommand_request;
- static AddCommand_responseMarshaller mAddCommand_response;
- static DeleteCommand_requestMarshaller mDeleteCommand_request;
- static DeleteCommand_responseMarshaller mDeleteCommand_response;
- static AddSubMenu_requestMarshaller mAddSubMenu_request;
- static AddSubMenu_responseMarshaller mAddSubMenu_response;
- static DeleteSubMenu_requestMarshaller mDeleteSubMenu_request;
- static DeleteSubMenu_responseMarshaller mDeleteSubMenu_response;
- static CreateInteractionChoiceSet_requestMarshaller mCreateInteractionChoiceSet_request;
- static CreateInteractionChoiceSet_responseMarshaller mCreateInteractionChoiceSet_response;
- static PerformInteraction_requestMarshaller mPerformInteraction_request;
- static PerformInteraction_responseMarshaller mPerformInteraction_response;
- static DeleteInteractionChoiceSet_requestMarshaller mDeleteInteractionChoiceSet_request;
- static DeleteInteractionChoiceSet_responseMarshaller mDeleteInteractionChoiceSet_response;
- static Alert_requestMarshaller mAlert_request;
- static Alert_responseMarshaller mAlert_response;
- static Show_requestMarshaller mShow_request;
- static Show_responseMarshaller mShow_response;
- static Speak_requestMarshaller mSpeak_request;
- static Speak_responseMarshaller mSpeak_response;
- static SetMediaClockTimer_requestMarshaller mSetMediaClockTimer_request;
- static SetMediaClockTimer_responseMarshaller mSetMediaClockTimer_response;
- static EncodedSyncPData_requestMarshaller mEncodedSyncPData_request;
- static EncodedSyncPData_responseMarshaller mEncodedSyncPData_response;
- static SubscribeButton_requestMarshaller mSubscribeButton_request;
- static SubscribeButton_responseMarshaller mSubscribeButton_response;
- static UnsubscribeButton_requestMarshaller mUnsubscribeButton_request;
- static UnsubscribeButton_responseMarshaller mUnsubscribeButton_response;
- static GenericResponse_responseMarshaller mGenericResponse_response;
- static OnHMIStatusMarshaller mOnHMIStatus;
- static OnAppInterfaceUnregisteredMarshaller mOnAppInterfaceUnregistered;
- static OnButtonEventMarshaller mOnButtonEvent;
- static OnButtonPressMarshaller mOnButtonPress;
- static OnCommandMarshaller mOnCommand;
- static OnEncodedSyncPDataMarshaller mOnEncodedSyncPData;
- static OnTBTClientStateMarshaller mOnTBTClientState;
- static OnDriverDistractionMarshaller mOnDriverDistraction;
-
- static const char* getName(Methods e)
- {
- return (e>=0 && e<45) ? mHashTable[e].name : NULL;
- }
-
- static const Methods getIndex(const char* s);
-
- static const localHash mHashTable[45];
-
- friend class Marshaller_intHash;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/MediaClockFormat.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/MediaClockFormat.h
deleted file mode 100644
index 96ae8668d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/MediaClockFormat.h
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_MEDIACLOCKFORMAT_INCLUDE
-#define NSSMARTDEVICELINKKRPC_MEDIACLOCKFORMAT_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- class MediaClockFormat
- {
- public:
- enum MediaClockFormatInternal
- {
- INVALID_ENUM=-1,
-
-/**
- minutesFieldWidth = 2;minutesFieldMax = 19;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 19;maxMinutes = 59;maxSeconds = 59;
- used for Type II and CID headunits
-*/
- CLOCK1=0,
-
-/**
- minutesFieldWidth = 3;minutesFieldMax = 199;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 59;maxMinutes = 59;maxSeconds = 59;
- used for Type V headunit
-*/
- CLOCK2=1,
-
-/**
- 5 characters possible
- Format: 1|sp c :|sp c c
- 1|sp : digit "1" or space
- c : character out of following character set: sp|0-9|[letters, see TypeII column in XLS. See [@TODO: create file ref]]
- :|sp : colon or space
- used for Type II headunit
-*/
- CLOCKTEXT1=2,
-
-/**
- 5 chars possible
- Format: 1|sp c :|sp c c
- 1|sp : digit "1" or space
- c : character out of following character set: sp|0-9|[letters, see CID column in XLS. See [@TODO: create file ref]]
- :|sp : colon or space
- used for CID headunit
- NOTE: difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character set
-*/
- CLOCKTEXT2=3,
-
-/**
- 6 chars possible
- Format: 1|sp c c :|sp c c
- 1|sp : digit "1" or space
- c : character out of following character set: sp|0-9|[letters, see Type 5 column in XLS]. See [@TODO: create file ref]
- :|sp : colon or space
- used for Type V headunit
-*/
- CLOCKTEXT3=4
- };
-
- MediaClockFormat() : mInternal(INVALID_ENUM) {}
- MediaClockFormat(MediaClockFormatInternal e) : mInternal(e) {}
-
- MediaClockFormatInternal get(void) const { return mInternal; }
- void set(MediaClockFormatInternal e) { mInternal=e; }
-
- private:
- MediaClockFormatInternal mInternal;
- friend class MediaClockFormatMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/MenuParams.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/MenuParams.h
deleted file mode 100644
index dea4c0bc8..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/MenuParams.h
+++ /dev/null
@@ -1,105 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_MENUPARAMS_INCLUDE
-#define NSSMARTDEVICELINKKRPC_MENUPARAMS_INCLUDE
-
-#include <string>
-
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPC
-{
-
- class MenuParams
- {
- public:
-
- MenuParams(const MenuParams& c);
- MenuParams(void);
-
- bool checkIntegrity(void);
-
- ~MenuParams(void);
- MenuParams& operator =(const MenuParams&);
-
-// getters
-
- const std::string& get_menuName(void) const;
- const unsigned int* get_parentID(void) const;
- const unsigned int* get_position(void) const;
-
-// setters
-
- bool set_menuName(const std::string& menuName_);
- void reset_parentID(void);
- bool set_parentID(unsigned int parentID_);
- void reset_position(void);
- bool set_position(unsigned int position_);
-
- private:
-
- friend class MenuParamsMarshaller;
-
-
-/// Text to show in the menu for this sub menu.
- std::string menuName; //!< (500)
-
-/**
- unique ID of the sub menu, the command will be added to.
- If not provided, it will be provided to the top level of the in application menu.
-*/
- unsigned int* parentID; //!< (0,2000000000)
-
-/**
- Position within the items that are are at top level of the in application menu.
- 0 will insert at the front.
- 1 will insert at the second position.
- if position is greater or equal than the number of items on top level, the sub menu will be appended to the end.
- If this param was omitted the entry will be added at the end.
-*/
- unsigned int* position; //!< (0,1000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnAppInterfaceUnregistered.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnAppInterfaceUnregistered.h
deleted file mode 100644
index d2228ff2f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnAppInterfaceUnregistered.h
+++ /dev/null
@@ -1,79 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ONAPPINTERFACEUNREGISTERED_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ONAPPINTERFACEUNREGISTERED_INCLUDE
-
-
-#include "AppInterfaceUnregisteredReason.h"
-#include "JSONHandler/SDLRPCNotification.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- class OnAppInterfaceUnregistered : public SDLRPCNotification
- {
- public:
-
- OnAppInterfaceUnregistered(const OnAppInterfaceUnregistered& c);
- OnAppInterfaceUnregistered(void);
-
- virtual ~OnAppInterfaceUnregistered(void);
-
- bool checkIntegrity(void);
-
- const AppInterfaceUnregisteredReason& get_reason(void) const;
-
- bool set_reason(const AppInterfaceUnregisteredReason& reason_);
-
- private:
-
- friend class OnAppInterfaceUnregisteredMarshaller;
-
-
-/// See AppInterfaceUnregisteredReason
- AppInterfaceUnregisteredReason reason;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnButtonEvent.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnButtonEvent.h
deleted file mode 100644
index 8e96d75e6..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnButtonEvent.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ONBUTTONEVENT_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ONBUTTONEVENT_INCLUDE
-
-
-#include "ButtonEventMode.h"
-#include "ButtonName.h"
-#include "JSONHandler/SDLRPCNotification.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Notifies application of UP/DOWN events for buttons to which the application is subscribed.
-
- class OnButtonEvent : public SDLRPCNotification
- {
- public:
-
- OnButtonEvent(const OnButtonEvent& c);
- OnButtonEvent(void);
-
- virtual ~OnButtonEvent(void);
-
- bool checkIntegrity(void);
-
- const ButtonName& get_buttonName(void) const;
- const ButtonEventMode& get_buttonEventMode(void) const;
-
- bool set_buttonName(const ButtonName& buttonName_);
- bool set_buttonEventMode(const ButtonEventMode& buttonEventMode_);
-
- private:
-
- friend class OnButtonEventMarshaller;
-
- ButtonName buttonName;
-
-/// Indicates whether this is an UP or DOWN event.
- ButtonEventMode buttonEventMode;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnButtonPress.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnButtonPress.h
deleted file mode 100644
index 8d6838493..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnButtonPress.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ONBUTTONPRESS_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ONBUTTONPRESS_INCLUDE
-
-
-#include "ButtonName.h"
-#include "ButtonPressMode.h"
-#include "JSONHandler/SDLRPCNotification.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Notifies application of LONG/SHORT press events for buttons to which the application is subscribed.
-
- class OnButtonPress : public SDLRPCNotification
- {
- public:
-
- OnButtonPress(const OnButtonPress& c);
- OnButtonPress(void);
-
- virtual ~OnButtonPress(void);
-
- bool checkIntegrity(void);
-
- const ButtonName& get_buttonName(void) const;
- const ButtonPressMode& get_buttonPressMode(void) const;
-
- bool set_buttonName(const ButtonName& buttonName_);
- bool set_buttonPressMode(const ButtonPressMode& buttonPressMode_);
-
- private:
-
- friend class OnButtonPressMarshaller;
-
- ButtonName buttonName;
-
-/// Indicates whether this is a LONG or SHORT button press event.
- ButtonPressMode buttonPressMode;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnCommand.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnCommand.h
deleted file mode 100644
index e7be89195..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnCommand.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ONCOMMAND_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ONCOMMAND_INCLUDE
-
-
-#include "TriggerSource.h"
-#include "JSONHandler/SDLRPCNotification.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- class OnCommand : public SDLRPCNotification
- {
- public:
-
- OnCommand(const OnCommand& c);
- OnCommand(void);
-
- virtual ~OnCommand(void);
-
- bool checkIntegrity(void);
-
- unsigned int get_cmdID(void) const;
- const TriggerSource& get_triggerSource(void) const;
-
- bool set_cmdID(unsigned int cmdID_);
- bool set_triggerSource(const TriggerSource& triggerSource_);
-
- private:
-
- friend class OnCommandMarshaller;
-
-
-/// Command ID, which is related to a specific menu entry.
- unsigned int cmdID; //!< (0,2000000000)
-
-/// See TriggerSource
- TriggerSource triggerSource;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnDriverDistraction.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnDriverDistraction.h
deleted file mode 100644
index c01a8cb04..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnDriverDistraction.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ONDRIVERDISTRACTION_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ONDRIVERDISTRACTION_INCLUDE
-
-
-#include "DriverDistractionState.h"
-#include "JSONHandler/SDLRPCNotification.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Provides driver distraction state to mobile applications
-
- class OnDriverDistraction : public SDLRPCNotification
- {
- public:
-
- OnDriverDistraction(const OnDriverDistraction& c);
- OnDriverDistraction(void);
-
- virtual ~OnDriverDistraction(void);
-
- bool checkIntegrity(void);
-
- const DriverDistractionState& get_state(void) const;
-
- bool set_state(const DriverDistractionState& state_);
-
- private:
-
- friend class OnDriverDistractionMarshaller;
-
-
-/// Current State of Driver Distraction
- DriverDistractionState state;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnEncodedSyncPData.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnEncodedSyncPData.h
deleted file mode 100644
index f7a8e64f2..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnEncodedSyncPData.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ONENCODEDSYNCPDATA_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ONENCODEDSYNCPDATA_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "JSONHandler/SDLRPCNotification.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Callback including encoded data of any SyncP packets that SYNC needs to send back to the mobile device.
-
- class OnEncodedSyncPData : public SDLRPCNotification
- {
- public:
-
- OnEncodedSyncPData(const OnEncodedSyncPData& c);
- OnEncodedSyncPData(void);
-
- virtual ~OnEncodedSyncPData(void);
-
- OnEncodedSyncPData& operator =(const OnEncodedSyncPData&);
-
- bool checkIntegrity(void);
-
- const std::vector<std::string>* get_data(void) const;
-
- void reset_data(void);
- bool set_data(const std::vector<std::string>& data_);
-
- private:
-
- friend class OnEncodedSyncPDataMarshaller;
-
-
-/// Contains base64 encoded string of SyncP packets.
- std::vector<std::string>* data; //!< [%s..%s] (10000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnHMIStatus.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnHMIStatus.h
deleted file mode 100644
index 00c202b2d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnHMIStatus.h
+++ /dev/null
@@ -1,91 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ONHMISTATUS_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ONHMISTATUS_INCLUDE
-
-
-#include "AudioStreamingState.h"
-#include "HMILevel.h"
-#include "SystemContext.h"
-#include "JSONHandler/SDLRPCNotification.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- class OnHMIStatus : public SDLRPCNotification
- {
- public:
-
- OnHMIStatus(const OnHMIStatus& c);
- OnHMIStatus(void);
-
- virtual ~OnHMIStatus(void);
-
- bool checkIntegrity(void);
-
- const HMILevel& get_hmiLevel(void) const;
- const AudioStreamingState& get_audioStreamingState(void) const;
- const SystemContext& get_systemContext(void) const;
-
- bool set_hmiLevel(const HMILevel& hmiLevel_);
- bool set_audioStreamingState(const AudioStreamingState& audioStreamingState_);
- bool set_systemContext(const SystemContext& systemContext_);
-
- private:
-
- friend class OnHMIStatusMarshaller;
-
-
-/// See HMILevel
- HMILevel hmiLevel;
-
-/// See AudioStreamingState
- AudioStreamingState audioStreamingState;
-
-/// See SystemContext
- SystemContext systemContext;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnTBTClientState.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnTBTClientState.h
deleted file mode 100644
index 8b1e98531..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/OnTBTClientState.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_ONTBTCLIENTSTATE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_ONTBTCLIENTSTATE_INCLUDE
-
-
-#include "TBTState.h"
-#include "JSONHandler/SDLRPCNotification.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Provides applications with notifications specific to the current TBT client status on the module
-
- class OnTBTClientState : public SDLRPCNotification
- {
- public:
-
- OnTBTClientState(const OnTBTClientState& c);
- OnTBTClientState(void);
-
- virtual ~OnTBTClientState(void);
-
- bool checkIntegrity(void);
-
- const TBTState& get_state(void) const;
-
- bool set_state(const TBTState& state_);
-
- private:
-
- friend class OnTBTClientStateMarshaller;
-
-
-/// Current State of TBT client
- TBTState state;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_request.h
deleted file mode 100644
index e7a9a294b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_request.h
+++ /dev/null
@@ -1,134 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_PERFORMINTERACTION_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_PERFORMINTERACTION_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "InteractionMode.h"
-#include "TTSChunk.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Triggers an interaction (e.g. "Permit GPS?" - Yes, no, Always Allow).
-
- class PerformInteraction_request : public SDLRPCRequest
- {
- public:
-
- PerformInteraction_request(const PerformInteraction_request& c);
- PerformInteraction_request(void);
-
- virtual ~PerformInteraction_request(void);
-
- PerformInteraction_request& operator =(const PerformInteraction_request&);
-
- bool checkIntegrity(void);
-
- const std::string& get_initialText(void) const;
- const std::vector<TTSChunk>& get_initialPrompt(void) const;
- const InteractionMode& get_interactionMode(void) const;
- const std::vector<unsigned int>& get_interactionChoiceSetIDList(void) const;
- const std::vector<TTSChunk>* get_helpPrompt(void) const;
- const std::vector<TTSChunk>* get_timeoutPrompt(void) const;
- const unsigned int* get_timeout(void) const;
-
- bool set_initialText(const std::string& initialText_);
- bool set_initialPrompt(const std::vector<TTSChunk>& initialPrompt_);
- bool set_interactionMode(const InteractionMode& interactionMode_);
- bool set_interactionChoiceSetIDList(const std::vector<unsigned int>& interactionChoiceSetIDList_);
- void reset_helpPrompt(void);
- bool set_helpPrompt(const std::vector<TTSChunk>& helpPrompt_);
- void reset_timeoutPrompt(void);
- bool set_timeoutPrompt(const std::vector<TTSChunk>& timeoutPrompt_);
- void reset_timeout(void);
- bool set_timeout(unsigned int timeout_);
-
- private:
-
- friend class PerformInteraction_requestMarshaller;
-
-
-/// Text to be displayed first.
- std::string initialText; //!< (500)
-
-/**
- This is the intial prompt spoken to the user at the start of an interaction
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk> initialPrompt; //!< [%s..%s]
-
-/// See InteractionMode.
- InteractionMode interactionMode;
-
-/// List of interaction choice set IDs to use with an interaction.
- std::vector<unsigned int> interactionChoiceSetIDList; //!< [%s..%s] (0,2000000000)
-
-/**
- Help text. This is the spoken string when a user speaks "help" when the interaction is occuring.
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk>* helpPrompt; //!< [%s..%s]
-
-/**
- Timeout text. This text is spoken when a VR interaction times out.
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk>* timeoutPrompt; //!< [%s..%s]
-
-/**
- Timeout in milliseconds.
- If omitted a standard value of 10000 milliseconds is used.
-*/
- unsigned int* timeout; //!< (5000,100000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_response.h
deleted file mode 100644
index ae7c5eed8..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_response.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_PERFORMINTERACTION_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_PERFORMINTERACTION_RESPONSE_INCLUDE
-
-#include "TriggerSource.h"
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class PerformInteraction_response : public SDLRPCResponse
- {
- public:
- PerformInteraction_response(const PerformInteraction_response& c);
- PerformInteraction_response(void);
-
- virtual ~PerformInteraction_response(void);
-
- PerformInteraction_response& operator =(const PerformInteraction_response&);
-
- bool checkIntegrity(void);
-
- const unsigned int* get_choiceID(void) const;
- const TriggerSource* get_triggerSource(void) const;
-
- void reset_choiceID(void);
- bool set_choiceID(unsigned int choiceID_);
- void reset_triggerSource(void);
- bool set_triggerSource(const TriggerSource& triggerSource_);
-
- private:
- friend class PerformInteraction_responseMarshaller;
-
- /// ID of the choice that was selected in response to PerformInteraction.
- unsigned int* choiceID; //!< (0,2000000000)
-
- /// See TriggerSource
- TriggerSource* triggerSource;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RPC.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RPC.h
deleted file mode 100644
index 57f2a2cd9..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RPC.h
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_RPC_INCLUDE
-#define NSSMARTDEVICELINKKRPC_RPC_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "AppInterfaceUnregisteredReason.h"
-#include "AudioCaptureQuality.h"
-#include "AudioStreamingState.h"
-#include "ButtonCapabilities.h"
-#include "ButtonEventMode.h"
-#include "ButtonName.h"
-#include "ButtonPressMode.h"
-#include "CharacterSet.h"
-#include "Choice.h"
-#include "DisplayCapabilities.h"
-#include "DisplayType.h"
-#include "DriverDistractionState.h"
-#include "GlobalProperty.h"
-#include "HMILevel.h"
-#include "HmiZoneCapabilities.h"
-#include "InteractionMode.h"
-#include "Language.h"
-#include "MediaClockFormat.h"
-#include "MenuParams.h"
-#include "Result.h"
-#include "SpeechCapabilities.h"
-#include "StartTime.h"
-#include "SyncMsgVersion.h"
-#include "SystemContext.h"
-#include "TBTState.h"
-#include "TTSChunk.h"
-#include "TextAlignment.h"
-#include "TextField.h"
-#include "TextFieldName.h"
-#include "TriggerSource.h"
-#include "UpdateMode.h"
-#include "VrCapabilities.h"
-#include "RegisterAppInterface_request.h"
-#include "RegisterAppInterface_response.h"
-#include "UnregisterAppInterface_request.h"
-#include "UnregisterAppInterface_response.h"
-#include "SetGlobalProperties_request.h"
-#include "SetGlobalProperties_response.h"
-#include "ResetGlobalProperties_request.h"
-#include "ResetGlobalProperties_response.h"
-#include "AddCommand_request.h"
-#include "AddCommand_response.h"
-#include "DeleteCommand_request.h"
-#include "DeleteCommand_response.h"
-#include "AddSubMenu_request.h"
-#include "AddSubMenu_response.h"
-#include "DeleteSubMenu_request.h"
-#include "DeleteSubMenu_response.h"
-#include "CreateInteractionChoiceSet_request.h"
-#include "CreateInteractionChoiceSet_response.h"
-#include "PerformInteraction_request.h"
-#include "PerformInteraction_response.h"
-#include "DeleteInteractionChoiceSet_request.h"
-#include "DeleteInteractionChoiceSet_response.h"
-#include "Alert_request.h"
-#include "Alert_response.h"
-#include "Show_request.h"
-#include "Show_response.h"
-#include "Speak_request.h"
-#include "Speak_response.h"
-#include "SetMediaClockTimer_request.h"
-#include "SetMediaClockTimer_response.h"
-#include "EncodedSyncPData_request.h"
-#include "EncodedSyncPData_response.h"
-#include "SubscribeButton_request.h"
-#include "SubscribeButton_response.h"
-#include "UnsubscribeButton_request.h"
-#include "UnsubscribeButton_response.h"
-#include "GenericResponse_response.h"
-#include "OnHMIStatus.h"
-#include "OnAppInterfaceUnregistered.h"
-#include "OnButtonEvent.h"
-#include "OnButtonPress.h"
-#include "OnCommand.h"
-#include "OnEncodedSyncPData.h"
-#include "OnTBTClientState.h"
-#include "OnDriverDistraction.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_request.h
deleted file mode 100644
index 2d96f5b3b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_request.h
+++ /dev/null
@@ -1,159 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_REGISTERAPPINTERFACE_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_REGISTERAPPINTERFACE_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "Language.h"
-#include "SyncMsgVersion.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/**
- Establishes an interface with a mobile application.
- Before registerAppInterface no other commands will be accepted/executed.
-*/
-
- class RegisterAppInterface_request : public SDLRPCRequest
- {
- public:
-
- RegisterAppInterface_request(const RegisterAppInterface_request& c);
- RegisterAppInterface_request(void);
-
- virtual ~RegisterAppInterface_request(void);
-
- RegisterAppInterface_request& operator =(const RegisterAppInterface_request&);
-
- bool checkIntegrity(void);
-
- const SyncMsgVersion& get_syncMsgVersion(void) const;
- const std::string& get_appName(void) const;
- const std::string* get_ngnMediaScreenAppName(void) const;
- const std::vector<std::string>* get_vrSynonyms(void) const;
- const bool* get_usesVehicleData(void) const;
- bool get_isMediaApplication(void) const;
- const Language& get_languageDesired(void) const;
- const std::string* get_autoActivateID(void) const;
-
- bool set_syncMsgVersion(const SyncMsgVersion& syncMsgVersion_);
- bool set_appName(const std::string& appName_);
- void reset_ngnMediaScreenAppName(void);
- bool set_ngnMediaScreenAppName(const std::string& ngnMediaScreenAppName_);
- void reset_vrSynonyms(void);
- bool set_vrSynonyms(const std::vector<std::string>& vrSynonyms_);
- void reset_usesVehicleData(void);
- bool set_usesVehicleData(bool usesVehicleData_);
- bool set_isMediaApplication(bool isMediaApplication_);
- bool set_languageDesired(const Language& languageDesired_);
- void reset_autoActivateID(void);
- bool set_autoActivateID(const std::string& autoActivateID_);
-
- private:
-
- friend class RegisterAppInterface_requestMarshaller;
-
-
-/// See SyncMsgVersion
- SyncMsgVersion syncMsgVersion;
-
-/**
- The mobile application name, e.g. "Ford Drive Green".
- Needs to be unique over all applications.
- May not be empty.
- May not start with a new line character.
- May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)
- Needs to be unique over all applications. Applications with the same name will be rejected.
- Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.
-*/
- std::string appName; //!< (100)
-
-/**
- Provides an abbreviated version of the app name (if needed), that will be displayed on the NGN media screen.
- If not provided, the appName is used instead (and will be truncated if too long)
- Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.
-*/
- std::string* ngnMediaScreenAppName; //!< (100)
-
-/**
- Defines an additional voice recognition command.
- May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)
- Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.
-*/
- std::vector<std::string>* vrSynonyms; //!< [%s..%s] (40)
-
-/**
- If not provided, the default is equal to False"
- Indicates if the mobile application wants to use vehicle data like GPS or speed.
-*/
- bool* usesVehicleData;
-
-/**
- Indicates if the application is a media or a non-media application.
- Only media applications will be able to stream audio to Sync that is audible outside of the BT media source.
-*/
- bool isMediaApplication;
-
-/**
- See Language
- If the language doesn't match the active language on Sync, it will be rejected.
- If the language is changed, while an app is registered, it will get disconnected.
-*/
- Language languageDesired;
-
-/**
- Used to support auto activation after an initial successful registerAppInterface (for example after an ignition cycle).
- The app should always provide the id that was provided by the most recent registerAppInterface response.
- If this is the first call to registerAppInterface, then do not provide this parameter at all.
- If not provided or not matching with the id of the last registerAppInterface response, the app will not be automatically put into foreground on startup.
-*/
- std::string* autoActivateID; //!< (16)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_response.h
deleted file mode 100644
index 7987777f3..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_response.h
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_REGISTERAPPINTERFACE_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_REGISTERAPPINTERFACE_RESPONSE_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "ButtonCapabilities.h"
-#include "DisplayCapabilities.h"
-#include "HmiZoneCapabilities.h"
-#include "Language.h"
-#include "SpeechCapabilities.h"
-#include "SyncMsgVersion.h"
-#include "VrCapabilities.h"
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- /// The response to registerAppInterface
- class RegisterAppInterface_response : public SDLRPCResponse
- {
- public:
- RegisterAppInterface_response(const RegisterAppInterface_response& c);
- RegisterAppInterface_response(void);
-
- virtual ~RegisterAppInterface_response(void);
-
- RegisterAppInterface_response& operator =(const RegisterAppInterface_response&);
-
- bool checkIntegrity(void);
-
- const SyncMsgVersion* get_syncMsgVersion(void) const;
- const std::string* get_autoActivateID(void) const;
- const Language* get_language(void) const;
- const DisplayCapabilities* get_displayCapabilities(void) const;
- const std::vector<ButtonCapabilities>* get_buttonCapabilities(void) const;
- const std::vector<HmiZoneCapabilities>* get_hmiZoneCapabilities(void) const;
- const std::vector<SpeechCapabilities>* get_speechCapabilities(void) const;
- const std::vector<VrCapabilities>* get_vrCapabilities(void) const;
-
- void reset_syncMsgVersion(void);
- bool set_syncMsgVersion(const SyncMsgVersion& syncMsgVersion_);
- void reset_autoActivateID(void);
- bool set_autoActivateID(const std::string& autoActivateID_);
- void reset_language(void);
- bool set_language(const Language& language_);
- void reset_displayCapabilities(void);
- bool set_displayCapabilities(const DisplayCapabilities& displayCapabilities_);
- void reset_buttonCapabilities(void);
- bool set_buttonCapabilities(const std::vector<ButtonCapabilities>& buttonCapabilities_);
- void reset_hmiZoneCapabilities(void);
- bool set_hmiZoneCapabilities(const std::vector<HmiZoneCapabilities>& hmiZoneCapabilities_);
- void reset_speechCapabilities(void);
- bool set_speechCapabilities(const std::vector<SpeechCapabilities>& speechCapabilities_);
- void reset_vrCapabilities(void);
- bool set_vrCapabilities(const std::vector<VrCapabilities>& vrCapabilities_);
-
- private:
- friend class RegisterAppInterface_responseMarshaller;
-
- /// See SyncMsgVersion
- SyncMsgVersion* syncMsgVersion;
-
- /// Provides an id that the app may use on a subsequent registerAppInterface to
- /// allow for auto activation (for example after an ignition cycle).
- std::string* autoActivateID; //!< (16)
-
- /// The currently active language on Sync. See "Language" for options.
- Language* language;
-
- /// See DisplayCapabilities
- DisplayCapabilities* displayCapabilities;
-
- /// See ButtonCapabilities
- std::vector<ButtonCapabilities>* buttonCapabilities; //!< [%s..%s]
-
- /// See HmiZoneCapabilities
- std::vector<HmiZoneCapabilities>* hmiZoneCapabilities; //!< [%s..%s]
-
- /// See SpeechCapabilities
- std::vector<SpeechCapabilities>* speechCapabilities; //!< [%s..%s]
-
- /// See VrCapabilities
- std::vector<VrCapabilities>* vrCapabilities; //!< [%s..%s]
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_request.h
deleted file mode 100644
index aa8522b1a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_request.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_RESETGLOBALPROPERTIES_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_RESETGLOBALPROPERTIES_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "GlobalProperty.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Allows resetting global properties.
-
- class ResetGlobalProperties_request : public SDLRPCRequest
- {
- public:
-
- ResetGlobalProperties_request(const ResetGlobalProperties_request& c);
- ResetGlobalProperties_request(void);
-
- virtual ~ResetGlobalProperties_request(void);
-
- bool checkIntegrity(void);
-
- const std::vector<GlobalProperty>& get_properties(void) const;
-
- bool set_properties(const std::vector<GlobalProperty>& properties_);
-
- private:
-
- friend class ResetGlobalProperties_requestMarshaller;
-
-
-/// Contains the names of all global properties (like timeoutPrompt) that should be unset. Resetting means, that they have the same value as at start up (default)
- std::vector<GlobalProperty> properties; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_response.h
deleted file mode 100644
index 58915443b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_RESETGLOBALPROPERTIES_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_RESETGLOBALPROPERTIES_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class ResetGlobalProperties_response : public SDLRPCResponse
- {
- public:
- ResetGlobalProperties_response(const ResetGlobalProperties_response& c);
- ResetGlobalProperties_response(void);
-
- virtual ~ResetGlobalProperties_response(void);
-
- ResetGlobalProperties_response& operator =(const ResetGlobalProperties_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class ResetGlobalProperties_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Result.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Result.h
deleted file mode 100644
index 2dd1bbecc..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Result.h
+++ /dev/null
@@ -1,169 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_RESULT_INCLUDE
-#define NSSMARTDEVICELINKKRPC_RESULT_INCLUDE
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class Result;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- class Result
- {
- public:
- enum ResultInternal
- {
- INVALID_ENUM = -1,
-
- /// The request succeeded
- SUCCESS = 0,
-
- /**
- The data sent is invalid. For example
- Invalid Json syntax
- Parameters out of bounds (number or enum range)
- Mandatory parameters not provided
- Parameter provided with wrong type
- Invalid characters
- Empty string
- */
- INVALID_DATA = 1,
-
- /// The request is not supported by Sync
- UNSUPPORTED_REQUEST = 2,
-
- /// The system could not process the request because the necessary memory couldn't be allocated
- OUT_OF_MEMORY = 3,
-
- /// There are too many requests pending (means, that the response has not been delivered, yet).
- TOO_MANY_PENDING_REQUESTS = 4,
-
- /**
- One of the provided IDs is not valid. For example
- This applies to CorrelationID, SubscriptionID [@TODO if SubscriptionID is used], CommandID, MenuID, [@TODO: missed one?]
- */
- INVALID_ID = 5,
-
- /// There was a conflict with an registered name (application or menu item) or vr command
- DUPLICATE_NAME = 6,
-
- /// There are already too many registered applications
- TOO_MANY_APPLICATIONS = 7,
-
- /// RegisterApplication has been called again, after a RegisterApplication was successful before.
- APPLICATION_REGISTERED_ALREADY = 8,
-
- /// Sync doesn't support the protocol that is requested by the mobile application
- UNSUPPORTED_VERSION = 9,
-
- /**
- The requested language is currently not supported.
- Might be because of a mismatch of the currently active language on Sync and the requested language
- */
- WRONG_LANGUAGE = 10,
-
- /// An command can not be executed because no application has been registered with RegisterApplication.
- APPLICATION_NOT_REGISTERED = 11,
-
- /**
- The data may not be changed, because it is currently in use.
- For example when trying to delete a command set that is currently involved in an interaction.
- */
- IN_USE = 12,
-
- /// The item to subscribe to is already subscribed to.
- SUBSCRIBED_ALREADY = 13,
-
- /**
- The requested command was rejected, e.g. because mobile app is in background and cannot perform any HMI commands.
- Or an HMI command (e.g. Speak) is rejected because a higher priority HMI command (e.g. Alert) is playing.
- */
- REJECTED = 14,
-
- /**
- A command was aborted, for example due to user interaction (e.g. user pressed button).
- Or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested.
- */
- ABORTED = 15,
-
- /**
- A command was ignored, because the intended result is already in effect.
- For example, SetMediaClockTimer was used to pause the media clock although the clock is paused already.
- NOTE: potentially replaces SUBSCRIBED_ALREADY
- */
- IGNORED = 16,
-
- /**
- A button that was requested for subscription is not supported under the current system.
- NOTE: could become a more generic UNSUPPORTED_RESOURCE by merging with VEHIVLE_DATA_NOT_AVAILABLE.
- */
- UNSUPPORTED_BUTTON = 17,
-
- /// A specified file could not be found on Sync.
- FILE_NOT_FOUND = 18,
-
- /// Provided data is valid but something went wrong in the lower layers.
- GENERIC_ERROR = 19
- };
-
- Result();
- Result(ResultInternal e);
- Result(const Result& result);
-
- ResultInternal get(void) const;
- void set(ResultInternal e);
-
- // TODO(AK): remove this after new code generation
- operator NsSmartDeviceLinkRPCV2::Result();
- Result& operator= (const Result& result);
-
- private:
- ResultInternal mInternal;
- friend class ResultMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_request.h
deleted file mode 100644
index e519bd8d1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_request.h
+++ /dev/null
@@ -1,99 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SETGLOBALPROPERTIES_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SETGLOBALPROPERTIES_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "TTSChunk.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Allows setting global properties.
-
- class SetGlobalProperties_request : public SDLRPCRequest
- {
- public:
-
- SetGlobalProperties_request(const SetGlobalProperties_request& c);
- SetGlobalProperties_request(void);
-
- virtual ~SetGlobalProperties_request(void);
-
- SetGlobalProperties_request& operator =(const SetGlobalProperties_request&);
-
- bool checkIntegrity(void);
-
- const std::vector<TTSChunk>* get_helpPrompt(void) const;
- const std::vector<TTSChunk>* get_timeoutPrompt(void) const;
-
- void reset_helpPrompt(void);
- bool set_helpPrompt(const std::vector<TTSChunk>& helpPrompt_);
- void reset_timeoutPrompt(void);
- bool set_timeoutPrompt(const std::vector<TTSChunk>& timeoutPrompt_);
-
- private:
-
- friend class SetGlobalProperties_requestMarshaller;
-
-
-/**
- The help prompt.
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk>* helpPrompt; //!< [%s..%s]
-
-/**
- Help text for a wait timeout.
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk>* timeoutPrompt; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_response.h
deleted file mode 100644
index d38596c31..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SETGLOBALPROPERTIES_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SETGLOBALPROPERTIES_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class SetGlobalProperties_response : public SDLRPCResponse
- {
- public:
- SetGlobalProperties_response(const SetGlobalProperties_response& c);
- SetGlobalProperties_response(void);
-
- virtual ~SetGlobalProperties_response(void);
-
- SetGlobalProperties_response& operator =(const SetGlobalProperties_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class SetGlobalProperties_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_request.h
deleted file mode 100644
index 7b7abca82..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_request.h
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SETMEDIACLOCKTIMER_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SETMEDIACLOCKTIMER_REQUEST_INCLUDE
-
-
-#include "StartTime.h"
-#include "UpdateMode.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Sets the initial media clock value and automatic update method.
-
- class SetMediaClockTimer_request : public SDLRPCRequest
- {
- public:
-
- SetMediaClockTimer_request(const SetMediaClockTimer_request& c);
- SetMediaClockTimer_request(void);
-
- virtual ~SetMediaClockTimer_request(void);
-
- SetMediaClockTimer_request& operator =(const SetMediaClockTimer_request&);
-
- bool checkIntegrity(void);
-
- const StartTime* get_startTime(void) const;
- const UpdateMode& get_updateMode(void) const;
-
- void reset_startTime(void);
- bool set_startTime(const StartTime& startTime_);
- bool set_updateMode(const UpdateMode& updateMode_);
-
- private:
-
- friend class SetMediaClockTimer_requestMarshaller;
-
-
-/**
- See StartTime
- startTime must be provided for "run"
- startTime will be ignored for "pause" and "resum"
-*/
- StartTime* startTime;
-
-/**
- Enumeration to control the media clock.
- In case of pause or resume, the start time value is ignored and shall be left out. For resume, the time continues with the same value as it was when paused.
-*/
- UpdateMode updateMode;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_response.h
deleted file mode 100644
index 21829b3b7..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SETMEDIACLOCKTIMER_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SETMEDIACLOCKTIMER_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class SetMediaClockTimer_response : public SDLRPCResponse
- {
- public:
- SetMediaClockTimer_response(const SetMediaClockTimer_response& c);
- SetMediaClockTimer_response(void);
-
- virtual ~SetMediaClockTimer_response(void);
-
- SetMediaClockTimer_response& operator =(const SetMediaClockTimer_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class SetMediaClockTimer_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Show_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Show_request.h
deleted file mode 100644
index 121cf9aab..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Show_request.h
+++ /dev/null
@@ -1,134 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SHOW_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SHOW_REQUEST_INCLUDE
-
-#include <string>
-
-#include "TextAlignment.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Updates the persistent display. Supported fields depend on display capabilities.
-
- class Show_request : public SDLRPCRequest
- {
- public:
-
- Show_request(const Show_request& c);
- Show_request(void);
-
- virtual ~Show_request(void);
-
- Show_request& operator =(const Show_request&);
-
- bool checkIntegrity(void);
-
- const std::string* get_mainField1(void) const;
- const std::string* get_mainField2(void) const;
- const TextAlignment* get_alignment(void) const;
- const std::string* get_statusBar(void) const;
- const std::string* get_mediaClock(void) const;
- const std::string* get_mediaTrack(void) const;
-
- void reset_mainField1(void);
- bool set_mainField1(const std::string& mainField1_);
- void reset_mainField2(void);
- bool set_mainField2(const std::string& mainField2_);
- void reset_alignment(void);
- bool set_alignment(const TextAlignment& alignment_);
- void reset_statusBar(void);
- bool set_statusBar(const std::string& statusBar_);
- void reset_mediaClock(void);
- bool set_mediaClock(const std::string& mediaClock_);
- void reset_mediaTrack(void);
- bool set_mediaTrack(const std::string& mediaTrack_);
-
- private:
-
- friend class Show_requestMarshaller;
-
-
-/**
- The text that should be displayed in a single or upper display line.
- If this text is not set, the text of mainField1 stays unchanged.
- If this text is empty "", the field will be cleared.
-*/
- std::string* mainField1; //!< (500)
-
-/**
- The text that should be displayed on the second dispay line.
- If this text is not set, the text of mainField2 stays unchanged.
- If this text is empty "", the field will be cleared.
-*/
- std::string* mainField2; //!< (500)
-
-/**
- Specifies how mainField1 and mainField2 texts should be aligned on display.
- If omitted, texts will be centered
-*/
- TextAlignment* alignment;
-
-/// Requires investigation regarding the nav display capabilities. Potentially lower lowerStatusBar, upperStatusBar, titleBar, etc.
- std::string* statusBar; //!< (500)
-
-/**
- Text value for MediaClock field. Has to be properly formatted by Mobile App according to Sync capabilities.
- If this text is set, any automatic media clock updates previously set with SetMediaClockTimer will be stopped.
-*/
- std::string* mediaClock; //!< (500)
-
-/**
- The text that should be displayed in the track field.
- This field is only valid for media applications on NGN type ACMs.
- If this text is not set, the text of mediaTrack stays unchanged.
- If this text is empty "", the field will be cleared.
-*/
- std::string* mediaTrack; //!< (500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Show_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Show_response.h
deleted file mode 100644
index 0a53eaf6e..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Show_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SHOW_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SHOW_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class Show_response : public SDLRPCResponse
- {
- public:
- Show_response(const Show_response& c);
- Show_response(void);
-
- virtual ~Show_response(void);
-
- Show_response& operator =(const Show_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class Show_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Speak_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Speak_request.h
deleted file mode 100644
index 6d8a928cd..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Speak_request.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SPEAK_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SPEAK_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "TTSChunk.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Speaks a text.
-
- class Speak_request : public SDLRPCRequest
- {
- public:
-
- Speak_request(const Speak_request& c);
- Speak_request(void);
-
- virtual ~Speak_request(void);
-
- bool checkIntegrity(void);
-
- const std::vector<TTSChunk>& get_ttsChunks(void) const;
-
- bool set_ttsChunks(const std::vector<TTSChunk>& ttsChunks_);
-
- private:
-
- friend class Speak_requestMarshaller;
-
-
-/**
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk> ttsChunks; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Speak_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Speak_response.h
deleted file mode 100644
index 046ab07cd..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/Speak_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SPEAK_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SPEAK_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class Speak_response : public SDLRPCResponse
- {
- public:
- Speak_response(const Speak_response& c);
- Speak_response(void);
-
- virtual ~Speak_response(void);
-
- Speak_response& operator =(const Speak_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class Speak_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SpeechCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SpeechCapabilities.h
deleted file mode 100644
index bf2e6e9dd..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SpeechCapabilities.h
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SPEECHCAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SPEECHCAPABILITIES_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Contains information about the TTS capabilities.
-
- class SpeechCapabilities
- {
- public:
- enum SpeechCapabilitiesInternal
- {
- INVALID_ENUM=-1,
- TEXT=0,
- SAPI_PHONEMES=1,
- LHPLUS_PHONEMES=2,
- PRE_RECORDED=3,
- SILENCE=4
- };
-
- SpeechCapabilities() : mInternal(INVALID_ENUM) {}
- SpeechCapabilities(SpeechCapabilitiesInternal e) : mInternal(e) {}
-
- SpeechCapabilitiesInternal get(void) const { return mInternal; }
- void set(SpeechCapabilitiesInternal e) { mInternal=e; }
-
- private:
- SpeechCapabilitiesInternal mInternal;
- friend class SpeechCapabilitiesMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/StartTime.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/StartTime.h
deleted file mode 100644
index cad404060..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/StartTime.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_STARTTIME_INCLUDE
-#define NSSMARTDEVICELINKKRPC_STARTTIME_INCLUDE
-
-
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPC
-{
-
- class StartTime
- {
- public:
-
- StartTime(const StartTime& c);
- StartTime(void);
-
- bool checkIntegrity(void);
- // getters
-
- unsigned int get_hours(void) const;
- unsigned int get_minutes(void) const;
- unsigned int get_seconds(void) const;
-
-// setters
-
- bool set_hours(unsigned int hours_);
- bool set_minutes(unsigned int minutes_);
- bool set_seconds(unsigned int seconds_);
-
- private:
-
- friend class StartTimeMarshaller;
-
-
-/**
- The hour of the media clock.
- Some radios only support a max of 19 hours. If out of range, it will be rejected.
-*/
- unsigned int hours; //!< (0,59)
- unsigned int minutes; //!< (0,59)
- unsigned int seconds; //!< (0,59)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_request.h
deleted file mode 100644
index 0e2b0464c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_request.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SUBSCRIBEBUTTON_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SUBSCRIBEBUTTON_REQUEST_INCLUDE
-
-
-#include "ButtonName.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/**
- Subscribes to built-in HMI buttons.
- The application will be notified by the OnButtonEvent and OnButtonPress.
- To unsubscribe the notifications, use unsubscribeButton.
-*/
-
- class SubscribeButton_request : public SDLRPCRequest
- {
- public:
-
- SubscribeButton_request(const SubscribeButton_request& c);
- SubscribeButton_request(void);
-
- virtual ~SubscribeButton_request(void);
-
- bool checkIntegrity(void);
-
- const ButtonName& get_buttonName(void) const;
-
- bool set_buttonName(const ButtonName& buttonName_);
-
- private:
-
- friend class SubscribeButton_requestMarshaller;
-
-
-/// Name of the button to subscribe.
- ButtonName buttonName;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_response.h
deleted file mode 100644
index 0fd7f7336..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SUBSCRIBEBUTTON_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SUBSCRIBEBUTTON_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class SubscribeButton_response : public SDLRPCResponse
- {
- public:
- SubscribeButton_response(const SubscribeButton_response& c);
- SubscribeButton_response(void);
-
- virtual ~SubscribeButton_response(void);
-
- SubscribeButton_response& operator =(const SubscribeButton_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class SubscribeButton_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SyncMsgVersion.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SyncMsgVersion.h
deleted file mode 100644
index 6b0b9bdc7..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SyncMsgVersion.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SYNCMSGVERSION_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SYNCMSGVERSION_INCLUDE
-
-
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Specifies the version number of the SYNC V4 protocol, that is supported by the mobile application
-
- class SyncMsgVersion
- {
- public:
-
- SyncMsgVersion(const SyncMsgVersion& c);
- SyncMsgVersion(void);
-
- bool checkIntegrity(void);
- // getters
-
- unsigned int get_majorVersion(void) const;
- unsigned int get_minorVersion(void) const;
-
-// setters
-
- bool set_majorVersion(unsigned int majorVersion_);
- bool set_minorVersion(unsigned int minorVersion_);
-
- private:
-
- friend class SyncMsgVersionMarshaller;
-
-
-/// The major version indicates versions that is not-compatible to previous versions.
- unsigned int majorVersion; //!< (1,1)
-
-/// The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality)
- unsigned int minorVersion; //!< (0,1000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SystemContext.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SystemContext.h
deleted file mode 100644
index 7777667ba..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/SystemContext.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_SYSTEMCONTEXT_INCLUDE
-#define NSSMARTDEVICELINKKRPC_SYSTEMCONTEXT_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Enumeraction that describes possible contexts and app's HMI might be in.
-
- class SystemContext
- {
- public:
- enum SystemContextInternal
- {
- INVALID_ENUM=-1,
- SYSCTXT_MAIN=0,
- SYSCTXT_VRSESSION=1,
- SYSCTXT_MENU=2
- };
-
- SystemContext() : mInternal(INVALID_ENUM) {}
- SystemContext(SystemContextInternal e) : mInternal(e) {}
-
- SystemContextInternal get(void) const { return mInternal; }
- void set(SystemContextInternal e) { mInternal=e; }
-
- private:
- SystemContextInternal mInternal;
- friend class SystemContextMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TBTState.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TBTState.h
deleted file mode 100644
index 50549bf7d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TBTState.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_TBTSTATE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_TBTSTATE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Enumeration that describes possible states of turn-by-turn module.
-
- class TBTState
- {
- public:
- enum TBTStateInternal
- {
- INVALID_ENUM=-1,
- ROUTE_UPDATE_REQUEST=0,
- ROUTE_ACCEPTED=1,
- ROUTE_REFUSED=2,
- ROUTE_CANCELLED=3
- };
-
- TBTState() : mInternal(INVALID_ENUM) {}
- TBTState(TBTStateInternal e) : mInternal(e) {}
-
- TBTStateInternal get(void) const { return mInternal; }
- void set(TBTStateInternal e) { mInternal=e; }
-
- private:
- TBTStateInternal mInternal;
- friend class TBTStateMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TTSChunk.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TTSChunk.h
deleted file mode 100644
index 1addf3df5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TTSChunk.h
+++ /dev/null
@@ -1,91 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_TTSCHUNK_INCLUDE
-#define NSSMARTDEVICELINKKRPC_TTSCHUNK_INCLUDE
-
-#include <string>
-
-#include "SpeechCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// A TTS chunk, that consists of the text/phonemes to speak and the type (like text or SAPI)
-
- class TTSChunk
- {
- public:
-
- TTSChunk(const TTSChunk& c);
- TTSChunk(void);
-
- bool checkIntegrity(void);
- // getters
-
- const std::string& get_text(void) const;
- const SpeechCapabilities& get_type(void) const;
-
-// setters
-
- bool set_text(const std::string& text_);
- bool set_type(const SpeechCapabilities& type_);
-
- private:
-
- friend class TTSChunkMarshaller;
-
-
-/**
- The text or phonemes to speak.
- May not be empty.
-*/
- std::string text; //!< (500)
-
-/// Describes, whether it is text or a specific phoneme set. See SpeechCapabilities
- SpeechCapabilities type;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextAlignment.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextAlignment.h
deleted file mode 100644
index 52f51d66f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextAlignment.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_TEXTALIGNMENT_INCLUDE
-#define NSSMARTDEVICELINKKRPC_TEXTALIGNMENT_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// The list of possible alignments, left, right, or centered
-
- class TextAlignment
- {
- public:
- enum TextAlignmentInternal
- {
- INVALID_ENUM=-1,
- LEFT_ALIGNED=0,
- RIGHT_ALIGNED=1,
- CENTERED=2
- };
-
- TextAlignment() : mInternal(INVALID_ENUM) {}
- TextAlignment(TextAlignmentInternal e) : mInternal(e) {}
-
- TextAlignmentInternal get(void) const { return mInternal; }
- void set(TextAlignmentInternal e) { mInternal=e; }
-
- private:
- TextAlignmentInternal mInternal;
- friend class TextAlignmentMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextField.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextField.h
deleted file mode 100644
index 421f7af70..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextField.h
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_TEXTFIELD_INCLUDE
-#define NSSMARTDEVICELINKKRPC_TEXTFIELD_INCLUDE
-
-
-#include "CharacterSet.h"
-#include "TextFieldName.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPC
-{
-
- class TextField
- {
- public:
-
- TextField(const TextField& c);
- TextField(void);
-
- bool checkIntegrity(void);
- // getters
-
- const CharacterSet& get_characterSet(void) const;
- const TextFieldName& get_name(void) const;
- unsigned int get_rows(void) const;
- unsigned int get_width(void) const;
-
-// setters
-
- bool set_characterSet(const CharacterSet& characterSet_);
- bool set_name(const TextFieldName& name_);
- bool set_rows(unsigned int rows_);
- bool set_width(unsigned int width_);
-
- private:
-
- friend class TextFieldMarshaller;
-
-
-/// The character set that is supported in this field. See CharacterSet.
- CharacterSet characterSet;
-
-/// The name that identifies the field. See TextFieldName.
- TextFieldName name;
-
-/// The number of rows of this field.
- unsigned int rows; //!< (1,3)
-
-/// The number of characters in one row of this field.
- unsigned int width; //!< (1,40)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextFieldName.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextFieldName.h
deleted file mode 100644
index b49c4bdde..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TextFieldName.h
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_TEXTFIELDNAME_INCLUDE
-#define NSSMARTDEVICELINKKRPC_TEXTFIELDNAME_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- class TextFieldName
- {
- public:
- enum TextFieldNameInternal
- {
- INVALID_ENUM=-1,
-
-/**
- The first line of the main field of persistent display
- Applies to "Show"
-*/
- mainField1=0,
-
-/**
- The second line of the main field of persistent display
- Applies to "Show"
-*/
- mainField2=1,
-
-/**
- The status bar on Nav
- Applies to "Show"
-*/
- statusBar=2,
-
-/**
- Text value for MediaClock field. Has to be properly formatted by Mobile App according to Sync capabilities.
- Applies to "Show"
-*/
- mediaClock=3,
-
-/**
- The track field of NGN type ACMs.
- This field is only available for media applications.
- Applies to "Show"
-*/
- mediaTrack=4,
-
-/**
- The first line of the alert text field
- Applies to "Alert"
-*/
- alertText1=5,
-
-/**
- The second line of the alert text field
- Applies to "Alert"
-*/
- alertText2=6
- };
-
- TextFieldName() : mInternal(INVALID_ENUM) {}
- TextFieldName(TextFieldNameInternal e) : mInternal(e) {}
-
- TextFieldNameInternal get(void) const { return mInternal; }
- void set(TextFieldNameInternal e) { mInternal=e; }
-
- private:
- TextFieldNameInternal mInternal;
- friend class TextFieldNameMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TriggerSource.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TriggerSource.h
deleted file mode 100644
index a90107570..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/TriggerSource.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_TRIGGERSOURCE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_TRIGGERSOURCE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Indicates the source from where the command was triggered.
-
- class TriggerSource
- {
- public:
- enum TriggerSourceInternal
- {
- INVALID_ENUM=-1,
- TS_MENU=0,
- TS_VR=1
- };
-
- TriggerSource() : mInternal(INVALID_ENUM) {}
- TriggerSource(TriggerSourceInternal e) : mInternal(e) {}
-
- TriggerSourceInternal get(void) const { return mInternal; }
- void set(TriggerSourceInternal e) { mInternal=e; }
-
- private:
- TriggerSourceInternal mInternal;
- friend class TriggerSourceMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_request.h
deleted file mode 100644
index 4fba9f498..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_request.h
+++ /dev/null
@@ -1,79 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_UNREGISTERAPPINTERFACE_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_UNREGISTERAPPINTERFACE_REQUEST_INCLUDE
-
-
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/**
- Closes an interface from a mobile application.
- After unregisterAppInterface, no commands other than registerAppInterface will be accepted/executed.
- Will fail, if no registerAppInterface was completed successfully before.
-*/
-
- class UnregisterAppInterface_request : public SDLRPCRequest
- {
- public:
-
- UnregisterAppInterface_request(const UnregisterAppInterface_request& c);
- UnregisterAppInterface_request(void);
-
- virtual ~UnregisterAppInterface_request(void);
-
- bool checkIntegrity(void);
-
-
-
- private:
-
- friend class UnregisterAppInterface_requestMarshaller;
-
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_response.h
deleted file mode 100644
index 2d2ebde54..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_UNREGISTERAPPINTERFACE_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_UNREGISTERAPPINTERFACE_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class UnregisterAppInterface_response : public SDLRPCResponse
- {
- public:
- UnregisterAppInterface_response(const UnregisterAppInterface_response& c);
- UnregisterAppInterface_response(void);
-
- virtual ~UnregisterAppInterface_response(void);
-
- UnregisterAppInterface_response& operator =(const UnregisterAppInterface_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class UnregisterAppInterface_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_request.h
deleted file mode 100644
index 4c718d75a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_request.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_UNSUBSCRIBEBUTTON_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPC_UNSUBSCRIBEBUTTON_REQUEST_INCLUDE
-
-
-#include "ButtonName.h"
-#include "JSONHandler/SDLRPCRequest.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Unsubscribes from built-in HMI buttons.
-
- class UnsubscribeButton_request : public SDLRPCRequest
- {
- public:
-
- UnsubscribeButton_request(const UnsubscribeButton_request& c);
- UnsubscribeButton_request(void);
-
- virtual ~UnsubscribeButton_request(void);
-
- bool checkIntegrity(void);
-
- const ButtonName& get_buttonName(void) const;
-
- bool set_buttonName(const ButtonName& buttonName_);
-
- private:
-
- friend class UnsubscribeButton_requestMarshaller;
-
-
-/// Name of the button to unsubscribe.
- ButtonName buttonName;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_response.h
deleted file mode 100644
index 9b221371a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_UNSUBSCRIBEBUTTON_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_UNSUBSCRIBEBUTTON_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
- class UnsubscribeButton_response : public SDLRPCResponse
- {
- public:
- UnsubscribeButton_response(const UnsubscribeButton_response& c);
- UnsubscribeButton_response(void);
-
- virtual ~UnsubscribeButton_response(void);
-
- UnsubscribeButton_response& operator =(const UnsubscribeButton_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class UnsubscribeButton_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UpdateMode.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UpdateMode.h
deleted file mode 100644
index 8ee65d9a7..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/UpdateMode.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_UPDATEMODE_INCLUDE
-#define NSSMARTDEVICELINKKRPC_UPDATEMODE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/**
- Describes how the media clock timer should behave on the platform
- Starts the media clock timer counting upwards, as in time elapsed.
- Starts the media clock timer counting downwards, as in time remaining.
- Pauses the media clock timer
- Resume the media clock timer
-*/
-
- class UpdateMode
- {
- public:
- enum UpdateModeInternal
- {
- INVALID_ENUM=-1,
- COUNTUP=0,
- COUNTDOWN=1,
- PAUSE=2,
- RESUME=3
- };
-
- UpdateMode() : mInternal(INVALID_ENUM) {}
- UpdateMode(UpdateModeInternal e) : mInternal(e) {}
-
- UpdateModeInternal get(void) const { return mInternal; }
- void set(UpdateModeInternal e) { mInternal=e; }
-
- private:
- UpdateModeInternal mInternal;
- friend class UpdateModeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/VrCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/VrCapabilities.h
deleted file mode 100644
index d4ebdd12f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V1/VrCapabilities.h
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPC_VRCAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPC_VRCAPABILITIES_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-/// Contains information about the VR capabilities.
-
- class VrCapabilities
- {
- public:
- enum VrCapabilitiesInternal
- {
- INVALID_ENUM=-1,
- Text=0
- };
-
- VrCapabilities() : mInternal(INVALID_ENUM) {}
- VrCapabilities(VrCapabilitiesInternal e) : mInternal(e) {}
-
- VrCapabilitiesInternal get(void) const { return mInternal; }
- void set(VrCapabilitiesInternal e) { mInternal=e; }
-
- private:
- VrCapabilitiesInternal mInternal;
- friend class VrCapabilitiesMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddCommand_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddCommand_request.h
deleted file mode 100644
index ed961bfdb..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddCommand_request.h
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ADDCOMMAND_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ADDCOMMAND_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "Image.h"
-#include "MenuParams.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Adds a command to the in application menu.
- Either menuParams or vrCommands must be provided.
-*/
-
- class AddCommand_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- AddCommand_request(const AddCommand_request& c);
- AddCommand_request(void);
-
- virtual ~AddCommand_request(void);
-
- AddCommand_request& operator =(const AddCommand_request&);
-
- bool checkIntegrity(void);
-
- unsigned int get_cmdID(void) const;
- const MenuParams* get_menuParams(void) const;
- const std::vector<std::string>* get_vrCommands(void) const;
- const Image* get_cmdIcon(void) const;
-
- bool set_cmdID(unsigned int cmdID_);
- void reset_menuParams(void);
- bool set_menuParams(const MenuParams& menuParams_);
- void reset_vrCommands(void);
- bool set_vrCommands(const std::vector<std::string>& vrCommands_);
- void reset_cmdIcon(void);
- bool set_cmdIcon(const Image& cmdIcon_);
-
- private:
-
- friend class AddCommand_requestMarshaller;
-
-
-/// unique ID of the command to add.
- unsigned int cmdID; //!< (0,2000000000)
-
-/// Optional sub value containing menu parameters
- MenuParams* menuParams;
-
-/**
- An array of strings to be used as VR synonyms for this command.
- If this array is provided, it may not be empty.
-*/
- std::vector<std::string>* vrCommands; //!< [%s..%s] (99)
-
-/**
- Image struct determining whether static or dynamic icon.
- If omitted on supported displays, no (or the default if applicable) icon shall be displayed.
-*/
- Image* cmdIcon;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddCommand_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddCommand_response.h
deleted file mode 100644
index 7742971f1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddCommand_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ADDCOMMAND_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ADDCOMMAND_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class AddCommand_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- AddCommand_response(const AddCommand_response& c);
- AddCommand_response(void);
-
- virtual ~AddCommand_response(void);
-
- AddCommand_response& operator =(const AddCommand_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class AddCommand_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_request.h
deleted file mode 100644
index 1b98b766f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_request.h
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ADDSUBMENU_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ADDSUBMENU_REQUEST_INCLUDE
-
-#include <string>
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Adds a sub menu to the in-application menu.
-
- class AddSubMenu_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- AddSubMenu_request(const AddSubMenu_request& c);
- AddSubMenu_request(void);
-
- virtual ~AddSubMenu_request(void);
-
- AddSubMenu_request& operator =(const AddSubMenu_request&);
-
- bool checkIntegrity(void);
-
- unsigned int get_menuID(void) const;
- const unsigned int* get_position(void) const;
- const std::string& get_menuName(void) const;
-
- bool set_menuID(unsigned int menuID_);
- void reset_position(void);
- bool set_position(unsigned int position_);
- bool set_menuName(const std::string& menuName_);
-
- private:
-
- friend class AddSubMenu_requestMarshaller;
-
-
-/// unique ID of the sub menu to add.
- unsigned int menuID; //!< (0,2000000000)
-
-/**
- Position within the items that are are at top level of the in application menu.
- 0 will insert at the front.
- 1 will insert at the second position.
- If position is greater or equal than the number of items on top level, the sub menu will be appended to the end.
- Position of any submenu will always be located before the return and exit options
- If this param was omitted the entry will be added at the end.
-*/
- unsigned int* position; //!< (0,1000)
-
-/// Text to show in the menu for this sub menu.
- std::string menuName; //!< (500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_response.h
deleted file mode 100644
index 9fae3f7e9..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_response.h
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ADDSUBMENU_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ADDSUBMENU_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class AddSubMenu_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- AddSubMenu_response(const AddSubMenu_response& c);
- AddSubMenu_response(void);
-
- virtual ~AddSubMenu_response(void);
-
- AddSubMenu_response& operator =(const AddSubMenu_response&);
-
- bool checkIntegrity(void);
- private:
- friend class AddSubMenu_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_request.h
deleted file mode 100644
index b90a77f4c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_request.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ALERTMANEUVER_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ALERTMANEUVER_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "SoftButton.h"
-#include "TTSChunk.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class AlertManeuver_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- AlertManeuver_request(const AlertManeuver_request& c);
- AlertManeuver_request(void);
-
- virtual ~AlertManeuver_request(void);
-
- bool checkIntegrity(void);
-
- const std::vector<TTSChunk>& get_ttsChunks(void) const;
- const std::vector<SoftButton>& get_softButtons(void) const;
-
- bool set_ttsChunks(const std::vector<TTSChunk>& ttsChunks_);
- bool set_softButtons(const std::vector<SoftButton>& softButtons_);
-
- private:
-
- friend class AlertManeuver_requestMarshaller;
-
-
-/// An array of text chunks of type TTSChunk. See TTSChunk
- std::vector<TTSChunk> ttsChunks; //!< [%s..%s]
-
-/// If omitted on supported displays, only the system defined "Close" SoftButton shall be displayed.
- std::vector<SoftButton> softButtons; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_response.h
deleted file mode 100644
index cbcfbecd6..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ALERTMANEUVER_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ALERTMANEUVER_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class AlertManeuver_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- AlertManeuver_response(const AlertManeuver_response& c);
- AlertManeuver_response(void);
-
- virtual ~AlertManeuver_response(void);
-
- AlertManeuver_response& operator =(const AlertManeuver_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class AlertManeuver_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Alert_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Alert_request.h
deleted file mode 100644
index fe622c808..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Alert_request.h
+++ /dev/null
@@ -1,136 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ALERT_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ALERT_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "SoftButton.h"
-#include "TTSChunk.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Shows an alert which typically consists of text-to-speech message and text on the display. At least either alertText1, alertText2 or TTSChunks need to be provided.
-
- class Alert_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- Alert_request(const Alert_request& c);
- Alert_request(void);
-
- virtual ~Alert_request(void);
-
- Alert_request& operator =(const Alert_request&);
-
- bool checkIntegrity(void);
-
- const std::string* get_alertText1(void) const;
- const std::string* get_alertText2(void) const;
- const std::string* get_alertText3(void) const;
- const std::vector<TTSChunk>* get_ttsChunks(void) const;
- const unsigned int* get_duration(void) const;
- const bool* get_playTone(void) const;
- const std::vector<SoftButton>* get_softButtons(void) const;
-
- void reset_alertText1(void);
- bool set_alertText1(const std::string& alertText1_);
- void reset_alertText2(void);
- bool set_alertText2(const std::string& alertText2_);
- void reset_alertText3(void);
- bool set_alertText3(const std::string& alertText3_);
- void reset_ttsChunks(void);
- bool set_ttsChunks(const std::vector<TTSChunk>& ttsChunks_);
- void reset_duration(void);
- bool set_duration(unsigned int duration_);
- void reset_playTone(void);
- bool set_playTone(bool playTone_);
- void reset_softButtons(void);
- bool set_softButtons(const std::vector<SoftButton>& softButtons_);
-
- private:
-
- friend class Alert_requestMarshaller;
-
-
-/// The first line of the alert text field
- std::string* alertText1; //!< (500)
-
-/// The second line of the alert text field
- std::string* alertText2; //!< (500)
-
-/// The optional third line of the alert text field
- std::string* alertText3; //!< (500)
-
-/**
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk>* ttsChunks; //!< [%s..%s]
-
-/**
- Timeout in milliseconds.
- Typical timeouts are 3-5 seconds
- If omitted, timeout is set to 5s.
-*/
- unsigned int* duration; //!< (3000,10000)
-
-/**
- Defines if tone should be played. Tone is played before TTS.
- If omitted, no tone is played.
-*/
- bool* playTone;
-
-/**
- App defined SoftButtons.
- If omitted on supported displays, the displayed alert shall not have any SoftButtons.
-*/
- std::vector<SoftButton>* softButtons; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Alert_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Alert_response.h
deleted file mode 100644
index 4f21d4dd7..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Alert_response.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ALERT_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ALERT_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class Alert_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- Alert_response(const Alert_response& c);
- Alert_response(void);
-
- virtual ~Alert_response(void);
-
- Alert_response& operator =(const Alert_response&);
-
- bool checkIntegrity(void);
-
- unsigned int get_tryAgainTime(void) const;
- bool set_tryAgainTime(unsigned int tryAgainTime_);
-
- private:
- friend class Alert_responseMarshaller;
-
- /**
- Amount of time (in seconds) that an app must wait before resending an alert.
- If provided, another system event or overlay currently has a higher priority than this alert.
- An app must not send an alert without waiting at least the amount of time dictated.
- */
- unsigned int tryAgainTime; //!< (0,2000000000)
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AppInterfaceUnregisteredReason.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AppInterfaceUnregisteredReason.h
deleted file mode 100644
index 2c41d2976..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AppInterfaceUnregisteredReason.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_APPINTERFACEUNREGISTEREDREASON_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_APPINTERFACEUNREGISTEREDREASON_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Error code, which comes from sync side.
-
- class AppInterfaceUnregisteredReason
- {
- public:
- enum AppInterfaceUnregisteredReasonInternal
- {
- INVALID_ENUM=-1,
- USER_EXIT=0,
- IGNITION_OFF=1,
- BLUETOOTH_OFF=2,
- USB_DISCONNECTED=3,
- REQUEST_WHILE_IN_NONE_HMI_LEVEL=4,
- TOO_MANY_REQUESTS=5,
- DRIVER_DISTRACTION_VIOLATION=6,
- LANGUAGE_CHANGE=7,
- MASTER_RESET=8,
- FACTORY_DEFAULTS=9,
- APP_UNAUTHORIZED=10
- };
-
- AppInterfaceUnregisteredReason() : mInternal(INVALID_ENUM) {}
- AppInterfaceUnregisteredReason(AppInterfaceUnregisteredReasonInternal e) : mInternal(e) {}
-
- AppInterfaceUnregisteredReasonInternal get(void) const { return mInternal; }
- void set(AppInterfaceUnregisteredReasonInternal e) { mInternal=e; }
-
- private:
- AppInterfaceUnregisteredReasonInternal mInternal;
- friend class AppInterfaceUnregisteredReasonMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AppType.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AppType.h
deleted file mode 100644
index e2ad534fc..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AppType.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_APPTYPE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_APPTYPE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Enumeration listing possible app types.
-
- class AppType
- {
- public:
- enum AppTypeInternal
- {
- INVALID_ENUM=-1,
- DEFAULT=0,
- COMMUNICATION=1,
- MEDIA=2,
- MESSAGING=3,
- NAVIGATION=4,
- INFORMATION=5,
- SOCIAL=6,
- BACKGROUND_PROCESS=7,
- TESTING=8,
- SYSTEM=9
- };
-
- AppType() : mInternal(INVALID_ENUM) {}
- AppType(AppTypeInternal e) : mInternal(e) {}
-
- AppTypeInternal get(void) const { return mInternal; }
- void set(AppTypeInternal e) { mInternal=e; }
-
- private:
- AppTypeInternal mInternal;
- friend class AppTypeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioCaptureQuality.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioCaptureQuality.h
deleted file mode 100644
index d0f450b5a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioCaptureQuality.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_AUDIOCAPTUREQUALITY_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_AUDIOCAPTUREQUALITY_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Describes different quality options for PerformAudioPassThru.
-
- class AudioCaptureQuality
- {
- public:
- enum AudioCaptureQualityInternal
- {
- INVALID_ENUM=-1,
- FIX_8_BIT=0,
- FIX_16_BIT=1
- };
-
- AudioCaptureQuality() : mInternal(INVALID_ENUM) {}
- AudioCaptureQuality(AudioCaptureQualityInternal e) : mInternal(e) {}
-
- AudioCaptureQualityInternal get(void) const { return mInternal; }
- void set(AudioCaptureQualityInternal e) { mInternal=e; }
-
- private:
- AudioCaptureQualityInternal mInternal;
- friend class AudioCaptureQualityMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioStreamingState.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioStreamingState.h
deleted file mode 100644
index ea38725f8..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioStreamingState.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_AUDIOSTREAMINGSTATE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_AUDIOSTREAMINGSTATE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Enumeraction that describes possible states of audio streaming.
-
- class AudioStreamingState
- {
- public:
- enum AudioStreamingStateInternal
- {
- INVALID_ENUM=-1,
- AUDIBLE=0,
- NOT_AUDIBLE=1,
- ATTENUATED=2
- };
-
- AudioStreamingState() : mInternal(INVALID_ENUM) {}
- AudioStreamingState(AudioStreamingStateInternal e) : mInternal(e) {}
-
- AudioStreamingStateInternal get(void) const { return mInternal; }
- void set(AudioStreamingStateInternal e) { mInternal=e; }
-
- private:
- AudioStreamingStateInternal mInternal;
- friend class AudioStreamingStateMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioType.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioType.h
deleted file mode 100644
index af491c9a2..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/AudioType.h
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_AUDIOTYPE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_AUDIOTYPE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Describes different audio type options for PerformAudioPassThru.
-
- class AudioType
- {
- public:
- enum AudioTypeInternal
- {
- INVALID_ENUM=-1,
- PCM=0
- };
-
- AudioType() : mInternal(INVALID_ENUM) {}
- AudioType(AudioTypeInternal e) : mInternal(e) {}
-
- AudioTypeInternal get(void) const { return mInternal; }
- void set(AudioTypeInternal e) { mInternal=e; }
-
- private:
- AudioTypeInternal mInternal;
- friend class AudioTypeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonCapabilities.h
deleted file mode 100644
index b586a534f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonCapabilities.h
+++ /dev/null
@@ -1,107 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_BUTTONCAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_BUTTONCAPABILITIES_INCLUDE
-
-
-#include "ButtonName.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Contains information about a button's capabilities.
-
- class ButtonCapabilities
- {
- public:
-
- ButtonCapabilities(const ButtonCapabilities& c);
- ButtonCapabilities(void);
-
- bool checkIntegrity(void);
- // getters
-
- bool get_longPressAvailable(void) const;
- const ButtonName& get_name(void) const;
- bool get_shortPressAvailable(void) const;
- bool get_upDownAvailable(void) const;
-
-// setters
-
- bool set_longPressAvailable(bool longPressAvailable_);
- bool set_name(const ButtonName& name_);
- bool set_shortPressAvailable(bool shortPressAvailable_);
- bool set_upDownAvailable(bool upDownAvailable_);
-
- private:
-
- friend class ButtonCapabilitiesMarshaller;
-
-
-/**
- The button supports a LONG press.
- Whenever the button is pressed long, onButtonPressed( LONG) will be invoked.
-*/
- bool longPressAvailable;
-
-/// The name of the button. See ButtonName.
- ButtonName name;
-
-/**
- The button supports a short press.
- Whenever the button is pressed short, onButtonPressed( SHORT) will be invoked.
-*/
- bool shortPressAvailable;
-
-/**
- The button supports "button down" and "button up".
- Whenever the button is pressed, onButtonEvent( DOWN) will be invoked.
- Whenever the button is released, onButtonEvent( UP) will be invoked.
-*/
- bool upDownAvailable;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonEventMode.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonEventMode.h
deleted file mode 100644
index 6be407921..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonEventMode.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_BUTTONEVENTMODE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_BUTTONEVENTMODE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class ButtonEventMode
- {
- public:
- enum ButtonEventModeInternal
- {
- INVALID_ENUM=-1,
-
-/// A button has been released up
- BUTTONUP=0,
-
-/// A button has been pressed down
- BUTTONDOWN=1
- };
-
- ButtonEventMode() : mInternal(INVALID_ENUM) {}
- ButtonEventMode(ButtonEventModeInternal e) : mInternal(e) {}
-
- ButtonEventModeInternal get(void) const { return mInternal; }
- void set(ButtonEventModeInternal e) { mInternal=e; }
-
- private:
- ButtonEventModeInternal mInternal;
- friend class ButtonEventModeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonName.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonName.h
deleted file mode 100644
index 457a1fc43..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonName.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_BUTTONNAME_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_BUTTONNAME_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Defines the hard (physical) and soft (touchscreen) buttons available from SYNC
-
- class ButtonName
- {
- public:
- enum ButtonNameInternal
- {
- INVALID_ENUM=-1,
- OK=0,
- SEEKLEFT=1,
- SEEKRIGHT=2,
- TUNEUP=3,
- TUNEDOWN=4,
- PRESET_0=5,
- PRESET_1=6,
- PRESET_2=7,
- PRESET_3=8,
- PRESET_4=9,
- PRESET_5=10,
- PRESET_6=11,
- PRESET_7=12,
- PRESET_8=13,
- PRESET_9=14,
- CUSTOM_BUTTON=15
- };
-
- ButtonName() : mInternal(INVALID_ENUM) {}
- ButtonName(ButtonNameInternal e) : mInternal(e) {}
-
- ButtonNameInternal get(void) const { return mInternal; }
- void set(ButtonNameInternal e) { mInternal=e; }
-
- private:
- ButtonNameInternal mInternal;
- friend class ButtonNameMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonPressMode.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonPressMode.h
deleted file mode 100644
index cbafb96b1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ButtonPressMode.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_BUTTONPRESSMODE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_BUTTONPRESSMODE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class ButtonPressMode
- {
- public:
- enum ButtonPressModeInternal
- {
- INVALID_ENUM=-1,
-
-/**
- A button was released, after it was pressed for a long time
- Actual timing is defined by Sync and may vary
-*/
- LONG=0,
-
-/**
- A button was released, after it was pressed for a short time
- Actual timing is defined by Sync and may vary
-*/
- SHORT=1
- };
-
- ButtonPressMode() : mInternal(INVALID_ENUM) {}
- ButtonPressMode(ButtonPressModeInternal e) : mInternal(e) {}
-
- ButtonPressModeInternal get(void) const { return mInternal; }
- void set(ButtonPressModeInternal e) { mInternal=e; }
-
- private:
- ButtonPressModeInternal mInternal;
- friend class ButtonPressModeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_request.h
deleted file mode 100644
index 820e1bedc..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_request.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_CHANGEREGISTRATION_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_CHANGEREGISTRATION_REQUEST_INCLUDE
-
-
-#include "Language.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class ChangeRegistration_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- ChangeRegistration_request(const ChangeRegistration_request& c);
- ChangeRegistration_request(void);
-
- virtual ~ChangeRegistration_request(void);
-
- bool checkIntegrity(void);
-
- const Language& get_language(void) const;
- const Language& get_hmiDisplayLanguage(void) const;
-
- bool set_language(const Language& language_);
- bool set_hmiDisplayLanguage(const Language& hmiDisplayLanguage_);
-
- private:
-
- friend class ChangeRegistration_requestMarshaller;
-
-
-/// Requested SYNC voice engine (VR+TTS) language registration
- Language language;
-
-/// Request display language registration
- Language hmiDisplayLanguage;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_response.h
deleted file mode 100644
index 42f2596fd..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_CHANGEREGISTRATION_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_CHANGEREGISTRATION_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class ChangeRegistration_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- ChangeRegistration_response(const ChangeRegistration_response& c);
- ChangeRegistration_response(void);
-
- virtual ~ChangeRegistration_response(void);
-
- ChangeRegistration_response& operator =(const ChangeRegistration_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class ChangeRegistration_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CharacterSet.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CharacterSet.h
deleted file mode 100644
index 8d3f54424..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CharacterSet.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_CHARACTERSET_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_CHARACTERSET_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// The list of potential character sets
-
- class CharacterSet
- {
- public:
- enum CharacterSetInternal
- {
- INVALID_ENUM=-1,
-
-/// See [@TODO: create file ref]
- TYPE2SET=0,
-
-/// See [@TODO: create file ref]
- TYPE5SET=1,
-
-/// See [@TODO: create file ref]
- CID1SET=2,
-
-/// See [@TODO: create file ref]
- CID2SET=3
- };
-
- CharacterSet() : mInternal(INVALID_ENUM) {}
- CharacterSet(CharacterSetInternal e) : mInternal(e) {}
-
- CharacterSetInternal get(void) const { return mInternal; }
- void set(CharacterSetInternal e) { mInternal=e; }
-
- private:
- CharacterSetInternal mInternal;
- friend class CharacterSetMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Choice.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Choice.h
deleted file mode 100644
index cb3121398..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Choice.h
+++ /dev/null
@@ -1,91 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_CHOICE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_CHOICE_INCLUDE
-
-#include <string>
-#include <vector>
-
-#include "Image.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// A choice is an option given to the user, which can be selected either by menu, or through voice recognition system.
-
- class Choice
- {
- public:
-
- Choice(const Choice& c);
- Choice(void);
-
- bool checkIntegrity(void);
- // getters
-
- unsigned int get_choiceID(void) const;
- const Image& get_image(void) const;
- const std::string& get_menuName(void) const;
- const std::vector<std::string>& get_vrCommands(void) const;
-
-// setters
-
- bool set_choiceID(unsigned int choiceID_);
- bool set_image(const Image& image_);
- bool set_menuName(const std::string& menuName_);
- bool set_vrCommands(const std::vector<std::string>& vrCommands_);
-
- private:
-
- friend class ChoiceMarshaller;
-
- unsigned int choiceID; //!< (0,65535)
- Image image;
- std::string menuName; //!< (500)
- std::vector<std::string> vrCommands; //!< [%s..%s] (99)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CompassDirection.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CompassDirection.h
deleted file mode 100644
index f420da0fe..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CompassDirection.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_COMPASSDIRECTION_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_COMPASSDIRECTION_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// The list of potential compass directions
-
- class CompassDirection
- {
- public:
- enum CompassDirectionInternal
- {
- INVALID_ENUM=-1,
- NORTH=0,
- NORTHWEST=1,
- WEST=2,
- SOUTHWEST=3,
- SOUTH=4,
- SOUTHEAST=5,
- EAST=6,
- NORTHEAST=7
- };
-
- CompassDirection() : mInternal(INVALID_ENUM) {}
- CompassDirection(CompassDirectionInternal e) : mInternal(e) {}
-
- CompassDirectionInternal get(void) const { return mInternal; }
- void set(CompassDirectionInternal e) { mInternal=e; }
-
- private:
- CompassDirectionInternal mInternal;
- friend class CompassDirectionMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_request.h
deleted file mode 100644
index 2a50bb47f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_request.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_CREATEINTERACTIONCHOICESET_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_CREATEINTERACTIONCHOICESET_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "Choice.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// creates interaction choice set to be used later by performInteraction
-
- class CreateInteractionChoiceSet_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- CreateInteractionChoiceSet_request(const CreateInteractionChoiceSet_request& c);
- CreateInteractionChoiceSet_request(void);
-
- virtual ~CreateInteractionChoiceSet_request(void);
-
- bool checkIntegrity(void);
-
- unsigned int get_interactionChoiceSetID(void) const;
- const std::vector<Choice>& get_choiceSet(void) const;
-
- bool set_interactionChoiceSetID(unsigned int interactionChoiceSetID_);
- bool set_choiceSet(const std::vector<Choice>& choiceSet_);
-
- private:
-
- friend class CreateInteractionChoiceSet_requestMarshaller;
-
-
-/// Unique ID used for this interaction choice set.
- unsigned int interactionChoiceSetID; //!< (0,2000000000)
- std::vector<Choice> choiceSet; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_response.h
deleted file mode 100644
index 0ff5edb1d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_CREATEINTERACTIONCHOICESET_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_CREATEINTERACTIONCHOICESET_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class CreateInteractionChoiceSet_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- CreateInteractionChoiceSet_response(const CreateInteractionChoiceSet_response& c);
- CreateInteractionChoiceSet_response(void);
-
- virtual ~CreateInteractionChoiceSet_response(void);
-
- CreateInteractionChoiceSet_response& operator =(const CreateInteractionChoiceSet_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class CreateInteractionChoiceSet_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DTC.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DTC.h
deleted file mode 100644
index 6f9a6f84b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DTC.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DTC_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DTC_INCLUDE
-
-#include <string>
-
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class DTC
- {
- public:
-
- DTC(const DTC& c);
- DTC(void);
-
- bool checkIntegrity(void);
- // getters
-
- const std::string& get_identifier(void) const;
- const std::string& get_statusByte(void) const;
-
-// setters
-
- bool set_identifier(const std::string& identifier_);
- bool set_statusByte(const std::string& statusByte_);
-
- private:
-
- friend class DTCMarshaller;
-
-
-/// String containing hexadecimal identifier as well as other common names.
- std::string identifier; //!< (500)
-
-/// Hexadecimal byte string.
- std::string statusByte; //!< (500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeactivateReason.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeactivateReason.h
deleted file mode 100644
index 37e975ffb..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeactivateReason.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DEACTIVATEREASON_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DEACTIVATEREASON_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Enum of reasons of user navigating from application used by HMI.
-
- class DeactivateReason
- {
- public:
- enum DeactivateReasonInternal
- {
- INVALID_ENUM=-1,
-
-/// Navigated to audio(radio, etc)
- AUDIO=0,
-
-/// Navigated to make a call.
- PHONECALL=1,
-
-/// Navigated to navigation screen.
- NAVIGATIONMAP=2,
-
-/// Navigated to phone menu.
- PHONEMENU=3,
-
-/// Navigated to settings menu.
- SYNCSETTINGS=4,
-
-/// Other screens navigation apart from other mobile app.
- GENERAL=5
- };
-
- DeactivateReason() : mInternal(INVALID_ENUM) {}
- DeactivateReason(DeactivateReasonInternal e) : mInternal(e) {}
-
- DeactivateReasonInternal get(void) const { return mInternal; }
- void set(DeactivateReasonInternal e) { mInternal=e; }
-
- private:
- DeactivateReasonInternal mInternal;
- friend class DeactivateReasonMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_request.h
deleted file mode 100644
index 78b64d36f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_request.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DELETECOMMAND_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DELETECOMMAND_REQUEST_INCLUDE
-
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Deletes all commands from the in-application menu with the specified command id.
-
- class DeleteCommand_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- DeleteCommand_request(const DeleteCommand_request& c);
- DeleteCommand_request(void);
-
- virtual ~DeleteCommand_request(void);
-
- bool checkIntegrity(void);
-
- unsigned int get_cmdID(void) const;
-
- bool set_cmdID(unsigned int cmdID_);
-
- private:
-
- friend class DeleteCommand_requestMarshaller;
-
-
-/// ID of the command(s) to delete.
- unsigned int cmdID; //!< (0,2000000000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_response.h
deleted file mode 100644
index ba703bac8..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DELETECOMMAND_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DELETECOMMAND_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class DeleteCommand_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- DeleteCommand_response(const DeleteCommand_response& c);
- DeleteCommand_response(void);
-
- virtual ~DeleteCommand_response(void);
-
- DeleteCommand_response& operator =(const DeleteCommand_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class DeleteCommand_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteFile_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteFile_request.h
deleted file mode 100644
index 3d5f55f57..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteFile_request.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DELETEFILE_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DELETEFILE_REQUEST_INCLUDE
-
-#include <string>
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Used to delete a file resident on the SYNC module in the app's local cache.
- Not supported on first generation SYNC vehicles.
-*/
-
- class DeleteFile_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- DeleteFile_request(const DeleteFile_request& c);
- DeleteFile_request(void);
-
- virtual ~DeleteFile_request(void);
-
- bool checkIntegrity(void);
-
- const std::string& get_syncFileName(void) const;
-
- bool set_syncFileName(const std::string& syncFileName_);
-
- private:
-
- friend class DeleteFile_requestMarshaller;
-
-
-/// File reference name.
- std::string syncFileName; //!< (500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteFile_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteFile_response.h
deleted file mode 100644
index 3cd08d818..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteFile_response.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DELETEFILE_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DELETEFILE_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- /**
- Response is sent, when the file data was deleted (success case). Or when an error occured.
- Not supported on First generation SYNC vehicles.
- */
- class DeleteFile_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- DeleteFile_response(const DeleteFile_response& c);
- DeleteFile_response(void);
-
- virtual ~DeleteFile_response(void);
-
- DeleteFile_response& operator =(const DeleteFile_response&);
-
- bool checkIntegrity(void);
-
- unsigned int get_spaceAvailable(void) const;
- bool set_spaceAvailable(unsigned int spaceAvailable_);
-
- private:
- friend class DeleteFile_responseMarshaller;
-
- /// Provides the total local space available on SYNC for the registered app.
- unsigned int spaceAvailable; //!< (0,2000000000)
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_request.h
deleted file mode 100644
index a94379166..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_request.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DELETEINTERACTIONCHOICESET_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DELETEINTERACTIONCHOICESET_REQUEST_INCLUDE
-
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Deletes interaction choice set that has been created with "CreateInteractionChoiceSet".
- The interaction may only be deleted when not currently in use by a "performInteraction".
-*/
-
- class DeleteInteractionChoiceSet_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- DeleteInteractionChoiceSet_request(const DeleteInteractionChoiceSet_request& c);
- DeleteInteractionChoiceSet_request(void);
-
- virtual ~DeleteInteractionChoiceSet_request(void);
-
- bool checkIntegrity(void);
-
- unsigned int get_interactionChoiceSetID(void) const;
-
- bool set_interactionChoiceSetID(unsigned int interactionChoiceSetID_);
-
- private:
-
- friend class DeleteInteractionChoiceSet_requestMarshaller;
-
-
-/// ID of the interaction choice set to delete.
- unsigned int interactionChoiceSetID; //!< (0,2000000000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_response.h
deleted file mode 100644
index 814b34139..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DELETEINTERACTIONCHOICESET_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DELETEINTERACTIONCHOICESET_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class DeleteInteractionChoiceSet_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- DeleteInteractionChoiceSet_response(const DeleteInteractionChoiceSet_response& c);
- DeleteInteractionChoiceSet_response(void);
-
- virtual ~DeleteInteractionChoiceSet_response(void);
-
- DeleteInteractionChoiceSet_response& operator =(const DeleteInteractionChoiceSet_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class DeleteInteractionChoiceSet_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_request.h
deleted file mode 100644
index 4cca49b0a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_request.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DELETESUBMENU_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DELETESUBMENU_REQUEST_INCLUDE
-
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Deletes a submenu from the in-application menu.
-
- class DeleteSubMenu_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- DeleteSubMenu_request(const DeleteSubMenu_request& c);
- DeleteSubMenu_request(void);
-
- virtual ~DeleteSubMenu_request(void);
-
- bool checkIntegrity(void);
-
- unsigned int get_menuID(void) const;
-
- bool set_menuID(unsigned int menuID_);
-
- private:
-
- friend class DeleteSubMenu_requestMarshaller;
-
-
-/// The "menuID" of the submenu to delete. (See addSubMenu.menuID)
- unsigned int menuID; //!< (0,2000000000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_response.h
deleted file mode 100644
index 585da435a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DELETESUBMENU_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DELETESUBMENU_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class DeleteSubMenu_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- DeleteSubMenu_response(const DeleteSubMenu_response& c);
- DeleteSubMenu_response(void);
-
- virtual ~DeleteSubMenu_response(void);
-
- DeleteSubMenu_response& operator =(const DeleteSubMenu_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class DeleteSubMenu_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DialNumber_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DialNumber_request.h
deleted file mode 100644
index 329369979..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DialNumber_request.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DIALNUMBER_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DIALNUMBER_REQUEST_INCLUDE
-
-#include <string>
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Dials a phone number and switches to phone application.
-
- class DialNumber_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- DialNumber_request(const DialNumber_request& c);
- DialNumber_request(void);
-
- virtual ~DialNumber_request(void);
-
- bool checkIntegrity(void);
-
- const std::string& get_number(void) const;
-
- bool set_number(const std::string& number_);
-
- private:
-
- friend class DialNumber_requestMarshaller;
-
-
-/// Phone number is a string consisting of only the digits and "+", which can be up to 40 chars.
- std::string number; //!< (500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DialNumber_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DialNumber_response.h
deleted file mode 100644
index 30f9756d4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DialNumber_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DIALNUMBER_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DIALNUMBER_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class DialNumber_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- DialNumber_response(const DialNumber_response& c);
- DialNumber_response(void);
-
- virtual ~DialNumber_response(void);
-
- DialNumber_response& operator =(const DialNumber_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class DialNumber_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Dimension.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Dimension.h
deleted file mode 100644
index 6780ae042..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Dimension.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DIMENSION_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DIMENSION_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// The supported dimensions of the GPS
-
- class Dimension
- {
- public:
- enum DimensionInternal
- {
- INVALID_ENUM=-1,
-
-/// No GPS at all
- NO_FIX=0,
-
-/// Longitude and lattitude
- FIX_2D=1,
-
-/// Longitude and lattitude and altitude
- FIX_3D=2
- };
-
- Dimension() : mInternal(INVALID_ENUM) {}
- Dimension(DimensionInternal e) : mInternal(e) {}
-
- DimensionInternal get(void) const { return mInternal; }
- void set(DimensionInternal e) { mInternal=e; }
-
- private:
- DimensionInternal mInternal;
- friend class DimensionMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DisplayCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DisplayCapabilities.h
deleted file mode 100644
index 65864a766..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DisplayCapabilities.h
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DISPLAYCAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DISPLAYCAPABILITIES_INCLUDE
-
-#include <vector>
-
-#include "DisplayType.h"
-#include "MediaClockFormat.h"
-#include "TextField.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Contains information about the display capabilities.
-
- class DisplayCapabilities
- {
- public:
-
- DisplayCapabilities(const DisplayCapabilities& c);
- DisplayCapabilities(void);
-
- bool checkIntegrity(void);
- // getters
-
- const DisplayType& get_displayType(void) const;
- const std::vector<MediaClockFormat>& get_mediaClockFormats(void) const;
- const std::vector<TextField>& get_textFields(void) const;
-
-// setters
-
- bool set_displayType(const DisplayType& displayType_);
- bool set_mediaClockFormats(const std::vector<MediaClockFormat>& mediaClockFormats_);
- bool set_textFields(const std::vector<TextField>& textFields_);
-
- private:
-
- friend class DisplayCapabilitiesMarshaller;
-
-
-/// The type of the display. See DisplayType
- DisplayType displayType;
-
-/// A set of all supported formats of the media clock. See MediaClockFormat
- std::vector<MediaClockFormat> mediaClockFormats; //!< [%s..%s]
-
-/// A set of all fields that support text data. See TextField
- std::vector<TextField> textFields; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DisplayType.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DisplayType.h
deleted file mode 100644
index fd5578e8c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DisplayType.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DISPLAYTYPE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DISPLAYTYPE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// See DAES for further infos regarding the displays
-
- class DisplayType
- {
- public:
- enum DisplayTypeInternal
- {
- INVALID_ENUM=-1,
- CID=0,
- TYPE2=1,
- TYPE5=2,
- NGN=3,
- GEN2_8_DMA=4,
- GEN2_6_DMA=5,
- MFD3=6,
- MFD4=7,
- MFD5=8
- };
-
- DisplayType() : mInternal(INVALID_ENUM) {}
- DisplayType(DisplayTypeInternal e) : mInternal(e) {}
-
- DisplayTypeInternal get(void) const { return mInternal; }
- void set(DisplayTypeInternal e) { mInternal=e; }
-
- private:
- DisplayTypeInternal mInternal;
- friend class DisplayTypeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DriverDistractionState.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DriverDistractionState.h
deleted file mode 100644
index 6f399db6f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/DriverDistractionState.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_DRIVERDISTRACTIONSTATE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_DRIVERDISTRACTIONSTATE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Enumeration that describes possible states of driver distraction.
-
- class DriverDistractionState
- {
- public:
- enum DriverDistractionStateInternal
- {
- INVALID_ENUM=-1,
- DD_ON=0,
- DD_OFF=1
- };
-
- DriverDistractionState() : mInternal(INVALID_ENUM) {}
- DriverDistractionState(DriverDistractionStateInternal e) : mInternal(e) {}
-
- DriverDistractionStateInternal get(void) const { return mInternal; }
- void set(DriverDistractionStateInternal e) { mInternal=e; }
-
- private:
- DriverDistractionStateInternal mInternal;
- friend class DriverDistractionStateMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_request.h
deleted file mode 100644
index 895e91505..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_request.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ENCODEDSYNCPDATA_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ENCODEDSYNCPDATA_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Allows encoded data in the form of SyncP packets to be sent to the SYNC module
-
- class EncodedSyncPData_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- EncodedSyncPData_request(const EncodedSyncPData_request& c);
- EncodedSyncPData_request(void);
-
- virtual ~EncodedSyncPData_request(void);
-
- bool checkIntegrity(void);
-
- const std::vector<std::string>& get_data(void) const;
-
- bool set_data(const std::vector<std::string>& data_);
-
- private:
-
- friend class EncodedSyncPData_requestMarshaller;
-
-
-/// Contains base64 encoded string of SyncP packets.
- std::vector<std::string> data; //!< [%s..%s] (10000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_response.h
deleted file mode 100644
index a305c30e9..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ENCODEDSYNCPDATA_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ENCODEDSYNCPDATA_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class EncodedSyncPData_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- EncodedSyncPData_response(const EncodedSyncPData_response& c);
- EncodedSyncPData_response(void);
-
- virtual ~EncodedSyncPData_response(void);
-
- EncodedSyncPData_response& operator =(const EncodedSyncPData_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class EncodedSyncPData_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_request.h
deleted file mode 100644
index 4c66659ef..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_request.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ENDAUDIOPASSTHRU_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ENDAUDIOPASSTHRU_REQUEST_INCLUDE
-
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// When this request is invoked, the audio capture stops.
-
- class EndAudioPassThru_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- EndAudioPassThru_request(const EndAudioPassThru_request& c);
- EndAudioPassThru_request(void);
-
- virtual ~EndAudioPassThru_request(void);
-
- bool checkIntegrity(void);
-
-
-
- private:
-
- friend class EndAudioPassThru_requestMarshaller;
-
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_response.h
deleted file mode 100644
index 59cab5d4d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ENDAUDIOPASSTHRU_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ENDAUDIOPASSTHRU_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class EndAudioPassThru_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- EndAudioPassThru_response(const EndAudioPassThru_response& c);
- EndAudioPassThru_response(void);
-
- virtual ~EndAudioPassThru_response(void);
-
- EndAudioPassThru_response& operator =(const EndAudioPassThru_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class EndAudioPassThru_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/FileType.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/FileType.h
deleted file mode 100644
index c03a36273..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/FileType.h
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_FILETYPE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_FILETYPE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Enumeration listing possible file types.
-
- class FileType
- {
- public:
- enum FileTypeInternal
- {
- INVALID_ENUM=-1,
- GRAPHIC_BMP=0,
- GRAPHIC_JPEG=1,
- GRAPHIC_PNG=2,
- AUDIO_WAVE=3,
- AUDIO_MP3=4
- };
-
- FileType() : mInternal(INVALID_ENUM) {}
- FileType(FileTypeInternal e) : mInternal(e) {}
-
- FileTypeInternal get(void) const { return mInternal; }
- void set(FileTypeInternal e) { mInternal=e; }
-
- private:
- FileTypeInternal mInternal;
- friend class FileTypeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/FunctionID.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/FunctionID.h
deleted file mode 100644
index c10a23942..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/FunctionID.h
+++ /dev/null
@@ -1,126 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_FUNCTIONID_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_FUNCTIONID_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Enumeration linking function names with function IDs in WiPro protocol.
- Assumes enumeration starts at value 0.
-*/
-
- class FunctionID
- {
- public:
- enum FunctionIDInternal
- {
- INVALID_ENUM=-1,
- RESERVED=0,
- RegisterAppInterfaceID=1,
- UnregisterAppInterfaceID=2,
- SetGlobalPropertiesID=3,
- ResetGlobalPropertiesID=4,
- AddCommandID=5,
- DeleteCommandID=6,
- AddSubMenuID=7,
- DeleteSubMenuID=8,
- CreateInteractionChoiceSetID=9,
- PerformInteractionID=10,
- DeleteInteractionChoiceSetID=11,
- AlertID=12,
- ShowID=13,
- SpeakID=14,
- SetMediaClockTimerID=15,
- EncodedSyncPDataID=16,
- DialNumberID=17,
- PerformAudioPassThruID=18,
- EndAudioPassThruID=19,
- SubscribeButtonID=20,
- UnsubscribeButtonID=21,
- SubscribeVehicleDataID=22,
- UnsubscribeVehicleDataID=23,
- GetVehicleDataID=24,
- ReadDIDID=25,
- GetDTCsID=26,
- ScrollableMessageID=27,
- SliderID=28,
- ShowConstantTBTID=29,
- AlertManeuverID=30,
- UpdateTurnListID=31,
- ChangeRegistrationID=32,
- GenericResponseID=33,
- PutFileID=34,
- DeleteFileID=35,
- ListFilesID=36,
- SetAppIconID=37,
- SetDisplayLayoutID=38,
- OnHMIStatusID=39,
- OnAppInterfaceUnregisteredID=40,
- OnButtonEventID=41,
- OnButtonPressID=42,
- OnVehicleDataID=43,
- OnCommandID=44,
- OnEncodedSyncPDataID=45,
- OnTBTClientStateID=46,
- OnDriverDistractionID=47,
- OnPermissionsChangeID=48,
- OnAudioPassThruID=49,
- OnLanguageChangeID=50
- };
-
- FunctionID() : mInternal(INVALID_ENUM) {}
- FunctionID(FunctionIDInternal e) : mInternal(e) {}
-
- FunctionIDInternal get(void) const { return mInternal; }
- void set(FunctionIDInternal e) { mInternal=e; }
-
- private:
- FunctionIDInternal mInternal;
- friend class FunctionIDMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GPSData.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GPSData.h
deleted file mode 100644
index 6540b05eb..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GPSData.h
+++ /dev/null
@@ -1,167 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_GPSDATA_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_GPSDATA_INCLUDE
-
-
-#include "CompassDirection.h"
-#include "Dimension.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Struct with the GPS data.
-
- class GPSData
- {
- public:
-
- GPSData(const GPSData& c);
- GPSData(void);
-
- bool checkIntegrity(void);
- // getters
-
- bool get_actual(void) const;
- int get_altitude(void) const;
- const CompassDirection& get_compassDirection(void) const;
- const Dimension& get_dimension(void) const;
- unsigned int get_hdop(void) const;
- unsigned int get_heading(void) const;
- int get_latitudeDegrees(void) const;
- int get_longitudeDegrees(void) const;
- unsigned int get_pdop(void) const;
- unsigned int get_satellites(void) const;
- unsigned int get_speed(void) const;
- unsigned int get_utcDay(void) const;
- unsigned int get_utcHours(void) const;
- unsigned int get_utcMinutes(void) const;
- unsigned int get_utcMonth(void) const;
- unsigned int get_utcSeconds(void) const;
- unsigned int get_utcYear(void) const;
- unsigned int get_vdop(void) const;
-
-// setters
-
- bool set_actual(bool actual_);
- bool set_altitude(int altitude_);
- bool set_compassDirection(const CompassDirection& compassDirection_);
- bool set_dimension(const Dimension& dimension_);
- bool set_hdop(unsigned int hdop_);
- bool set_heading(unsigned int heading_);
- bool set_latitudeDegrees(int latitudeDegrees_);
- bool set_longitudeDegrees(int longitudeDegrees_);
- bool set_pdop(unsigned int pdop_);
- bool set_satellites(unsigned int satellites_);
- bool set_speed(unsigned int speed_);
- bool set_utcDay(unsigned int utcDay_);
- bool set_utcHours(unsigned int utcHours_);
- bool set_utcMinutes(unsigned int utcMinutes_);
- bool set_utcMonth(unsigned int utcMonth_);
- bool set_utcSeconds(unsigned int utcSeconds_);
- bool set_utcYear(unsigned int utcYear_);
- bool set_vdop(unsigned int vdop_);
-
- private:
-
- friend class GPSDataMarshaller;
-
-
-/**
- True, if actual.
- False, if infered.
-*/
- bool actual;
-
-/// Altitude in meters
- int altitude; //!< (-10000,10000)
-
-/// See CompassDirection.
- CompassDirection compassDirection;
-
-/// See Dimension
- Dimension dimension;
-
-/// HDOP.
- unsigned int hdop; //!< (0,31)
-
-/// The heading. North is 0
- unsigned int heading; //!< (0,360)
- int latitudeDegrees; //!< (-1000000000,1000000000)
- int longitudeDegrees; //!< (-1000000000,1000000000)
-
-/// PDOP.
- unsigned int pdop; //!< (0,31)
-
-/// Number of satellites in view
- unsigned int satellites; //!< (0,31)
-
-/// The speed in KPH
- unsigned int speed; //!< (0,400)
-
-/// The current UTC day.
- unsigned int utcDay; //!< (1,31)
-
-/// The current UTC hour.
- unsigned int utcHours; //!< (0,23)
-
-/// The current UTC minute.
- unsigned int utcMinutes; //!< (0,59)
-
-/// The current UTC month.
- unsigned int utcMonth; //!< (1,12)
-
-/// The current UTC second.
- unsigned int utcSeconds; //!< (0,59)
-
-/// The current UTC year.
- unsigned int utcYear; //!< (2010,2100)
-
-/// VDOP.
- unsigned int vdop; //!< (0,31)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GenericResponse_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GenericResponse_response.h
deleted file mode 100644
index ed58236d2..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GenericResponse_response.h
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_GENERICRESPONSE_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_GENERICRESPONSE_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- /**
- Generic Response is sent, when the name of a received msg cannot be retrieved. Only used in case of an error.
- Currently, only resultCode INVALID_DATA is used.
- */
- class GenericResponse_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- GenericResponse_response(const GenericResponse_response& c);
- GenericResponse_response(void);
-
- virtual ~GenericResponse_response(void);
-
- GenericResponse_response& operator =(const GenericResponse_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class GenericResponse_responseMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetDTCs_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetDTCs_request.h
deleted file mode 100644
index 895dbc7b2..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetDTCs_request.h
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_GETDTCS_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_GETDTCS_REQUEST_INCLUDE
-
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Vehicle module diagnostic trouble code request.
-
- class GetDTCs_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- GetDTCs_request(const GetDTCs_request& c);
- GetDTCs_request(void);
-
- virtual ~GetDTCs_request(void);
-
- GetDTCs_request& operator =(const GetDTCs_request&);
-
- bool checkIntegrity(void);
-
- unsigned int get_ecuName(void) const;
- const bool* get_encrypted(void) const;
-
- bool set_ecuName(unsigned int ecuName_);
- void reset_encrypted(void);
- bool set_encrypted(bool encrypted_);
-
- private:
-
- friend class GetDTCs_requestMarshaller;
-
-
-/// Name of ECU.
- unsigned int ecuName; //!< (0,65535)
-
-/**
- If not provided, the default is equal to False"
- Indicates if the DTC data requested should be returned as encrypted through an OnEncodedSYNCPData response.
- If set to true, the data will return instead through OnEncodedSYNCPData and be passed through the proxy to the designated server URL.
-*/
- bool* encrypted;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetDTCs_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetDTCs_response.h
deleted file mode 100644
index 8034f82d5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetDTCs_response.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_GETDTCS_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_GETDTCS_RESPONSE_INCLUDE
-
-#include <vector>
-
-#include "DTC.h"
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class GetDTCs_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- GetDTCs_response(const GetDTCs_response& c);
- GetDTCs_response(void);
-
- virtual ~GetDTCs_response(void);
-
- GetDTCs_response& operator =(const GetDTCs_response&);
-
- bool checkIntegrity(void);
-
- const std::vector<DTC>* get_dtcList(void) const;
- void reset_dtcList(void);
- bool set_dtcList(const std::vector<DTC>& dtcList_);
-
- private:
- friend class GetDTCs_responseMarshaller;
-
- /// Array of all reported DTCs on module.
- std::vector<DTC>* dtcList; //!< [%s..%s]
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_request.h
deleted file mode 100644
index e1d8598a5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_request.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_GETVEHICLEDATA_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_GETVEHICLEDATA_REQUEST_INCLUDE
-
-
-#include "VehicleDataType.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Non periodic vehicle data read request.
-
- class GetVehicleData_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- GetVehicleData_request(const GetVehicleData_request& c);
- GetVehicleData_request(void);
-
- virtual ~GetVehicleData_request(void);
-
- bool checkIntegrity(void);
-
- const VehicleDataType& get_dataType(void) const;
-
- bool set_dataType(const VehicleDataType& dataType_);
-
- private:
-
- friend class GetVehicleData_requestMarshaller;
-
-
-/// Complex signals like "GPS" should not be transferred as separate notifications, but all together in one notification.
- VehicleDataType dataType;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_response.h
deleted file mode 100644
index 90a8747cf..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_response.h
+++ /dev/null
@@ -1,193 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_GETVEHICLEDATA_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_GETVEHICLEDATA_RESPONSE_INCLUDE
-
-#include <string>
-
-#include "GPSData.h"
-#include "PRNDL.h"
-#include "TireStatus.h"
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class GetVehicleData_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- GetVehicleData_response(const GetVehicleData_response& c);
- GetVehicleData_response(void);
-
- virtual ~GetVehicleData_response(void);
-
- GetVehicleData_response& operator =(const GetVehicleData_response&);
-
- bool checkIntegrity(void);
-
- const GPSData* get_gps(void) const;
- const float* get_speed(void) const;
- const unsigned int* get_rpm(void) const;
- const float* get_fuelLevel(void) const;
- const float* get_avgFuelEconomy(void) const;
- const float* get_batteryVoltage(void) const;
- const float* get_externalTemperature(void) const;
- const std::string* get_vin(void) const;
- const PRNDL* get_prndl(void) const;
- const TireStatus* get_tirePressure(void) const;
- const float* get_batteryPackVoltage(void) const;
- const float* get_batteryPackCurrent(void) const;
- const int* get_batteryPackTemperature(void) const;
- const int* get_engineTorque(void) const;
- const unsigned int* get_odometer(void) const;
- const unsigned int* get_tripOdometer(void) const;
- const std::string* get_satRadioESN(void) const;
-
- void reset_gps(void);
- bool set_gps(const GPSData& gps_);
- void reset_speed(void);
- bool set_speed(float speed_);
- void reset_rpm(void);
- bool set_rpm(unsigned int rpm_);
- void reset_fuelLevel(void);
- bool set_fuelLevel(float fuelLevel_);
- void reset_avgFuelEconomy(void);
- bool set_avgFuelEconomy(float avgFuelEconomy_);
- void reset_batteryVoltage(void);
- bool set_batteryVoltage(float batteryVoltage_);
- void reset_externalTemperature(void);
- bool set_externalTemperature(float externalTemperature_);
- void reset_vin(void);
- bool set_vin(const std::string& vin_);
- void reset_prndl(void);
- bool set_prndl(const PRNDL& prndl_);
- void reset_tirePressure(void);
- bool set_tirePressure(const TireStatus& tirePressure_);
- void reset_batteryPackVoltage(void);
- bool set_batteryPackVoltage(float batteryPackVoltage_);
- void reset_batteryPackCurrent(void);
- bool set_batteryPackCurrent(float batteryPackCurrent_);
- void reset_batteryPackTemperature(void);
- bool set_batteryPackTemperature(int batteryPackTemperature_);
- void reset_engineTorque(void);
- bool set_engineTorque(int engineTorque_);
- void reset_odometer(void);
- bool set_odometer(unsigned int odometer_);
- void reset_tripOdometer(void);
- bool set_tripOdometer(unsigned int tripOdometer_);
- void reset_satRadioESN(void);
- bool set_satRadioESN(const std::string& satRadioESN_);
-
- private:
- friend class GetVehicleData_responseMarshaller;
-
- /**
- See GPSData
- Subscribable
- */
- GPSData* gps;
-
- /**
- The vehicle speed in kilometers per hour
- Subscribable
- */
- float* speed; //!< (-100,500)
-
- /**
- The number of revolutions per minute of the engine
- Subscribable
- */
- unsigned int* rpm; //!< (0,20000)
-
- /// The fuel level
- float* fuelLevel; //!< (0,100)
-
- /// The average fuel economy in litres/100km
- float* avgFuelEconomy; //!< (0,7000)
-
- /// The voltage in Volts
- float* batteryVoltage; //!< (0,26)
-
- /// The external temperature in degrees celsius.
- float* externalTemperature; //!< (-40,100)
-
- /// Vehicle identification number.
- std::string* vin; //!< (17)
-
- /**
- See PRNDL.
- Subscribable
- */
- PRNDL* prndl;
-
- /**
- See TireStatus.
- Subscribable
- */
- TireStatus* tirePressure;
-
- /// Battery pack voltage of hybrid and electrical vehicles in volts
- float* batteryPackVoltage; //!< (-1000,1000)
-
- /// Battery current of hybrid and electrical vehicles in amperes
- float* batteryPackCurrent; //!< (-1000,1000)
-
- /// Battery temperature of hybrid and electrical vehicles in degrees celsius
- int* batteryPackTemperature; //!< (-50,250)
-
- /**
- Engine torque in Nm
- Subscribable
- */
- int* engineTorque; //!< (-10000,55000)
-
- /// Odometer in km
- unsigned int* odometer; //!< (0,2000000)
-
- /// Odometer of trip in km
- unsigned int* tripOdometer; //!< (0,2000000)
-
- /// The hexadecimal ESN of the satellite radio (if supported).
- std::string* satRadioESN; //!< (500)
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GlobalProperty.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GlobalProperty.h
deleted file mode 100644
index 2d61c2105..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/GlobalProperty.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_GLOBALPROPERTY_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_GLOBALPROPERTY_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// The different global properties.
-
- class GlobalProperty
- {
- public:
- enum GlobalPropertyInternal
- {
- INVALID_ENUM=-1,
-
-/// The property helpPrompt of setGlobalProperties
- HELPPROMPT=0,
-
-/// The property timeoutPrompt of setGlobalProperties
- TIMEOUTPROMPT=1,
-
-/// The property vrHelpTitle of setGlobalProperties
- VRHELPTITLE=2,
-
-/// The property array of vrHelp of setGlobalProperties
- VRHELPITEMS=3
- };
-
- GlobalProperty() : mInternal(INVALID_ENUM) {}
- GlobalProperty(GlobalPropertyInternal e) : mInternal(e) {}
-
- GlobalPropertyInternal get(void) const { return mInternal; }
- void set(GlobalPropertyInternal e) { mInternal=e; }
-
- private:
- GlobalPropertyInternal mInternal;
- friend class GlobalPropertyMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMIApplication.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMIApplication.h
deleted file mode 100644
index 455d6eb19..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMIApplication.h
+++ /dev/null
@@ -1,124 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_HMIAPPLICATION_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_HMIAPPLICATION_INCLUDE
-
-#include <string>
-#include <vector>
-
-#include "AppType.h"
-#include "Language.h"
-#include "Language.h"
-#include "TTSChunk.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Data type containing information about application needed by HMI.
-
- class HMIApplication
- {
- public:
-
- HMIApplication(const HMIApplication& c);
- HMIApplication(void);
-
- bool checkIntegrity(void);
-
- ~HMIApplication(void);
- HMIApplication& operator =(const HMIApplication&);
-
-// getters
-
- int get_appId(void) const;
- const std::string& get_appName(void) const;
- const std::vector<AppType>* get_appType(void) const;
- const std::string& get_deviceName(void) const;
- const Language& get_hmiDisplayLanguageDesired(void) const;
- const std::string* get_icon(void) const;
- bool get_isMediaApplication(void) const;
- const Language& get_languageDesired(void) const;
- const std::string* get_ngnMediaScreenAppName(void) const;
- const std::vector<TTSChunk>* get_ttsName(void) const;
- const std::vector<std::string>* get_vrSynonyms(void) const;
-
-// setters
-
- bool set_appId(int appId_);
- bool set_appName(const std::string& appName_);
- void reset_appType(void);
- bool set_appType(const std::vector<AppType>& appType_);
- bool set_deviceName(const std::string& deviceName_);
- bool set_hmiDisplayLanguageDesired(const Language& hmiDisplayLanguageDesired_);
- void reset_icon(void);
- bool set_icon(const std::string& icon_);
- bool set_isMediaApplication(bool isMediaApplication_);
- bool set_languageDesired(const Language& languageDesired_);
- void reset_ngnMediaScreenAppName(void);
- bool set_ngnMediaScreenAppName(const std::string& ngnMediaScreenAppName_);
- void reset_ttsName(void);
- bool set_ttsName(const std::vector<TTSChunk>& ttsName_);
- void reset_vrSynonyms(void);
- bool set_vrSynonyms(const std::vector<std::string>& vrSynonyms_);
-
- private:
-
- friend class HMIApplicationMarshaller;
-
- int appId;
- std::string appName; //!< (100)
- std::vector<AppType>* appType; //!< [%s..%s]
- std::string deviceName;
- Language hmiDisplayLanguageDesired;
- std::string* icon;
- bool isMediaApplication;
- Language languageDesired;
- std::string* ngnMediaScreenAppName; //!< (100)
- std::vector<TTSChunk>* ttsName; //!< [%s..%s]
- std::vector<std::string>* vrSynonyms; //!< [%s..%s] (40)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMILevel.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMILevel.h
deleted file mode 100644
index 1ce22f15e..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMILevel.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_HMILEVEL_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_HMILEVEL_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Enumeraction that describes current levels of HMI.
-
- class HMILevel
- {
- public:
- enum HMILevelInternal
- {
- INVALID_ENUM=-1,
- HMI_FULL=0,
- HMI_LIMITED=1,
- HMI_BACKGROUND=2,
- HMI_NONE=3
- };
-
- HMILevel() : mInternal(INVALID_ENUM) {}
- HMILevel(HMILevelInternal e) : mInternal(e) {}
-
- HMILevelInternal get(void) const { return mInternal; }
- void set(HMILevelInternal e) { mInternal=e; }
-
- private:
- HMILevelInternal mInternal;
- friend class HMILevelMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMIPermissions.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMIPermissions.h
deleted file mode 100644
index 4726b4e9e..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HMIPermissions.h
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_HMIPERMISSIONS_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_HMIPERMISSIONS_INCLUDE
-
-#include <vector>
-
-#include "HMILevel.h"
-#include "HMILevel.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class HMIPermissions
- {
- public:
-
- HMIPermissions(const HMIPermissions& c);
- HMIPermissions(void);
-
- bool checkIntegrity(void);
- // getters
-
- const std::vector<HMILevel>& get_allowed(void) const;
- const std::vector<HMILevel>& get_userDisallowed(void) const;
-
-// setters
-
- bool set_allowed(const std::vector<HMILevel>& allowed_);
- bool set_userDisallowed(const std::vector<HMILevel>& userDisallowed_);
-
- private:
-
- friend class HMIPermissionsMarshaller;
-
-
-/// A set of all HMI levels that are permitted for this given RPC.
- std::vector<HMILevel> allowed; //!< [%s..%s]
-
-/// A set of all HMI levels that are prohibited for this given RPC.
- std::vector<HMILevel> userDisallowed; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HmiZoneCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HmiZoneCapabilities.h
deleted file mode 100644
index d297ba5ff..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/HmiZoneCapabilities.h
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_HMIZONECAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_HMIZONECAPABILITIES_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Contains information about the HMI zone capabilities.
- For future use.
-*/
-
- class HmiZoneCapabilities
- {
- public:
- enum HmiZoneCapabilitiesInternal
- {
- INVALID_ENUM=-1,
- FRONT=0,
- BACK=1
- };
-
- HmiZoneCapabilities() : mInternal(INVALID_ENUM) {}
- HmiZoneCapabilities(HmiZoneCapabilitiesInternal e) : mInternal(e) {}
-
- HmiZoneCapabilitiesInternal get(void) const { return mInternal; }
- void set(HmiZoneCapabilitiesInternal e) { mInternal=e; }
-
- private:
- HmiZoneCapabilitiesInternal mInternal;
- friend class HmiZoneCapabilitiesMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Image.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Image.h
deleted file mode 100644
index 36b112480..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Image.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_IMAGE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_IMAGE_INCLUDE
-
-#include <string>
-
-#include "ImageType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class Image
- {
- public:
-
- Image(const Image& c);
- Image(void);
-
- bool checkIntegrity(void);
- // getters
-
- const ImageType& get_imageType(void) const;
- const std::string& get_value(void) const;
-
-// setters
-
- bool set_imageType(const ImageType& imageType_);
- bool set_value(const std::string& value_);
-
- private:
-
- friend class ImageMarshaller;
-
-
-/// Describes, whether it is a static or dynamic image.
- ImageType imageType;
-
-/// Either the static hex icon value or the binary image file name identifier (sent by PutFile).
- std::string value; //!< (65535)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ImageType.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ImageType.h
deleted file mode 100644
index b82242c61..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ImageType.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_IMAGETYPE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_IMAGETYPE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Contains information about the type of image.
-
- class ImageType
- {
- public:
- enum ImageTypeInternal
- {
- INVALID_ENUM=-1,
- STATIC=0,
- DYNAMIC=1
- };
-
- ImageType() : mInternal(INVALID_ENUM) {}
- ImageType(ImageTypeInternal e) : mInternal(e) {}
-
- ImageTypeInternal get(void) const { return mInternal; }
- void set(ImageTypeInternal e) { mInternal=e; }
-
- private:
- ImageTypeInternal mInternal;
- friend class ImageTypeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/InteractionMode.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/InteractionMode.h
deleted file mode 100644
index 38f0d9b0e..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/InteractionMode.h
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_INTERACTIONMODE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_INTERACTIONMODE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- For application-requested interactions, this mode indicates the method in which the user is notified and uses the interaction.
- This mode causes the interaction to only occur on the display, meaning the choices are provided only via the display.
- Selections are made with the OK and Seek Right and Left, Tune Up and Down buttons.
- This mode causes the interaction to only occur using V4.
- Selections are made by saying the command.
- This mode causes both a VR and display selection option for an interaction.
- Selections can be made either from the menu display or by speaking the command.
-*/
-
- class InteractionMode
- {
- public:
- enum InteractionModeInternal
- {
- INVALID_ENUM=-1,
- MANUAL_ONLY=0,
- VR_ONLY=1,
- BOTH=2
- };
-
- InteractionMode() : mInternal(INVALID_ENUM) {}
- InteractionMode(InteractionModeInternal e) : mInternal(e) {}
-
- InteractionModeInternal get(void) const { return mInternal; }
- void set(InteractionModeInternal e) { mInternal=e; }
-
- private:
- InteractionModeInternal mInternal;
- friend class InteractionModeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Language.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Language.h
deleted file mode 100644
index 629cee579..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Language.h
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_LANGUAGE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_LANGUAGE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class Language
- {
- public:
- enum LanguageInternal
- {
- INVALID_ENUM=-1,
-
-/// US English
- EN_US=0,
-
-/// Mexican Spanish
- ES_MX=1,
-
-/// Canadian French
- FR_CA=2,
-
-/// EU German
- DE_EU=3,
-
-/// EU Spanish
- ES_EU=4,
-
-/// UK English
- EN_EU=5,
-
-/// Russian
- RU_RU=6,
-
-/// Turkish
- TR_TR=7,
-
-/// EU Polish
- PL_EU=8,
-
-/// French
- FR_EU=9,
-
-/// Italian
- IT_EU=10,
-
-/// Swedish
- SV_EU=11,
-
-/// Portuguese
- PT_EU=12,
-
-/// Dutch (Standard)
- NL_EU=13,
-
-/// Australian English
- EN_AU=14,
-
-/// Chinese (Mandarin)
- ZH_CN=15,
-
-/// Taiwanese (Mandarin)
- ZH_TW=16,
-
-/// Japanese
- JA_JP=17,
-
-/// Arabic
- AR=18,
-
-/// Korean
- KO_KR=19
- };
-
- Language() : mInternal(INVALID_ENUM) {}
- Language(LanguageInternal e) : mInternal(e) {}
- Language& operator=(const Language& lng) { set(lng.get()); return *this; }
-
- bool operator== (const Language& lng) { return mInternal == lng.get(); }
-
- LanguageInternal get(void) const { return mInternal; }
- void set(LanguageInternal e) { mInternal=e; }
-
- private:
- LanguageInternal mInternal;
- friend class LanguageMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ListFiles_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ListFiles_request.h
deleted file mode 100644
index 821366603..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ListFiles_request.h
+++ /dev/null
@@ -1,78 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_LISTFILES_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_LISTFILES_REQUEST_INCLUDE
-
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Requests the current list of resident filenames for the registered app
- Not supported on first generation SYNC vehicles.
-*/
-
- class ListFiles_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- ListFiles_request(const ListFiles_request& c);
- ListFiles_request(void);
-
- virtual ~ListFiles_request(void);
-
- bool checkIntegrity(void);
-
-
-
- private:
-
- friend class ListFiles_requestMarshaller;
-
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ListFiles_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ListFiles_response.h
deleted file mode 100644
index 92ee97a8a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ListFiles_response.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_LISTFILES_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_LISTFILES_RESPONSE_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- /**
- Returns the current list of resident filenames for the registered app along with the current space available
- Not supported on First generation SYNC vehicles.
- */
- class ListFiles_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- ListFiles_response(const ListFiles_response& c);
- ListFiles_response(void);
-
- virtual ~ListFiles_response(void);
-
- ListFiles_response& operator =(const ListFiles_response&);
-
- bool checkIntegrity(void);
-
- const std::vector<std::string>* get_filenames(void) const;
- unsigned int get_spaceAvailable(void) const;
-
- void reset_filenames(void);
- bool set_filenames(const std::vector<std::string>& filenames_);
- bool set_spaceAvailable(unsigned int spaceAvailable_);
-
- private:
- friend class ListFiles_responseMarshaller;
-
- /**
- An array of all filenames resident on SYNC for the given registered app.
- If omitted, then no files currently reside on the system.
- */
- std::vector<std::string>* filenames; //!< [%s..%s] (500)
-
- /// Provides the total local space available on SYNC for the registered app.
- unsigned int spaceAvailable; //!< (0,2000000000)
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Marshaller.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Marshaller.h
deleted file mode 100644
index 9a8d62819..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Marshaller.h
+++ /dev/null
@@ -1,1211 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_MARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_MARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "FunctionID.h"
-#include "messageType.h"
-
-#include "JSONHandler/SDLRPCMessage.h"
-#include "../src/SDLRPCObjectsImpl/V2/RegisterAppInterface_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/RegisterAppInterface_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SetGlobalProperties_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SetGlobalProperties_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/AddCommand_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/AddCommand_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/DeleteCommand_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/DeleteCommand_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/AddSubMenu_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/AddSubMenu_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/DeleteSubMenu_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/DeleteSubMenu_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/PerformInteraction_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/PerformInteraction_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/Alert_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/Alert_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/Show_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/Show_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/Speak_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/Speak_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/EncodedSyncPData_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/EncodedSyncPData_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/DialNumber_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/DialNumber_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/EndAudioPassThru_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/EndAudioPassThru_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SubscribeButton_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SubscribeButton_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/UnsubscribeButton_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/UnsubscribeButton_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/GetVehicleData_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/GetVehicleData_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ReadDID_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ReadDID_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/GetDTCs_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/GetDTCs_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ScrollableMessage_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ScrollableMessage_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/Slider_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/Slider_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ShowConstantTBT_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ShowConstantTBT_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/AlertManeuver_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/AlertManeuver_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/UpdateTurnList_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/UpdateTurnList_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ChangeRegistration_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ChangeRegistration_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/GenericResponse_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/PutFile_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/PutFile_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/DeleteFile_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/DeleteFile_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ListFiles_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ListFiles_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SetAppIcon_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SetAppIcon_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SetDisplayLayout_requestMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SetDisplayLayout_responseMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnHMIStatusMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregisteredMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnButtonEventMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnButtonPressMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnVehicleDataMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnCommandMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnEncodedSyncPDataMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnTBTClientStateMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnDriverDistractionMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnPermissionsChangeMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnAudioPassThruMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/OnLanguageChangeMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class Marshaller
- {
- public:
-
- Marshaller() {}
- ~Marshaller() {}
-
- static NsSmartDeviceLinkRPC::SDLRPCMessage* fromString(const std::string&,FunctionID::FunctionIDInternal fid, messageType::messageTypeInternal mt);
- static std::string toString(const NsSmartDeviceLinkRPC::SDLRPCMessage* msg,FunctionID::FunctionIDInternal fid, messageType::messageTypeInternal mt);
-
- static NsSmartDeviceLinkRPC::SDLRPCMessage* fromJSON(const Json::Value&,FunctionID::FunctionIDInternal fid, messageType::messageTypeInternal mt);
- static Json::Value toJSON(const NsSmartDeviceLinkRPC::SDLRPCMessage* msg,FunctionID::FunctionIDInternal fid, messageType::messageTypeInternal mt);
-
- protected:
-
-
-// RegisterAppInterface_request
- static bool fromString(const std::string& str, RegisterAppInterface_request& res)
- {
- return mRegisterAppInterface_request.fromString(str, res);
- }
-
- static std::string toString(const RegisterAppInterface_request& res)
- {
- return mRegisterAppInterface_request.toString(res);
- }
-
-// RegisterAppInterface_response
- static bool fromString(const std::string& str, RegisterAppInterface_response& res)
- {
- return mRegisterAppInterface_response.fromString(str, res);
- }
-
- static std::string toString(const RegisterAppInterface_response& res)
- {
- return mRegisterAppInterface_response.toString(res);
- }
-
-// UnregisterAppInterface_request
- static bool fromString(const std::string& str, UnregisterAppInterface_request& res)
- {
- return mUnregisterAppInterface_request.fromString(str, res);
- }
-
- static std::string toString(const UnregisterAppInterface_request& res)
- {
- return mUnregisterAppInterface_request.toString(res);
- }
-
-// UnregisterAppInterface_response
- static bool fromString(const std::string& str, UnregisterAppInterface_response& res)
- {
- return mUnregisterAppInterface_response.fromString(str, res);
- }
-
- static std::string toString(const UnregisterAppInterface_response& res)
- {
- return mUnregisterAppInterface_response.toString(res);
- }
-
-// SetGlobalProperties_request
- static bool fromString(const std::string& str, SetGlobalProperties_request& res)
- {
- return mSetGlobalProperties_request.fromString(str, res);
- }
-
- static std::string toString(const SetGlobalProperties_request& res)
- {
- return mSetGlobalProperties_request.toString(res);
- }
-
-// SetGlobalProperties_response
- static bool fromString(const std::string& str, SetGlobalProperties_response& res)
- {
- return mSetGlobalProperties_response.fromString(str, res);
- }
-
- static std::string toString(const SetGlobalProperties_response& res)
- {
- return mSetGlobalProperties_response.toString(res);
- }
-
-// ResetGlobalProperties_request
- static bool fromString(const std::string& str, ResetGlobalProperties_request& res)
- {
- return mResetGlobalProperties_request.fromString(str, res);
- }
-
- static std::string toString(const ResetGlobalProperties_request& res)
- {
- return mResetGlobalProperties_request.toString(res);
- }
-
-// ResetGlobalProperties_response
- static bool fromString(const std::string& str, ResetGlobalProperties_response& res)
- {
- return mResetGlobalProperties_response.fromString(str, res);
- }
-
- static std::string toString(const ResetGlobalProperties_response& res)
- {
- return mResetGlobalProperties_response.toString(res);
- }
-
-// AddCommand_request
- static bool fromString(const std::string& str, AddCommand_request& res)
- {
- return mAddCommand_request.fromString(str, res);
- }
-
- static std::string toString(const AddCommand_request& res)
- {
- return mAddCommand_request.toString(res);
- }
-
-// AddCommand_response
- static bool fromString(const std::string& str, AddCommand_response& res)
- {
- return mAddCommand_response.fromString(str, res);
- }
-
- static std::string toString(const AddCommand_response& res)
- {
- return mAddCommand_response.toString(res);
- }
-
-// DeleteCommand_request
- static bool fromString(const std::string& str, DeleteCommand_request& res)
- {
- return mDeleteCommand_request.fromString(str, res);
- }
-
- static std::string toString(const DeleteCommand_request& res)
- {
- return mDeleteCommand_request.toString(res);
- }
-
-// DeleteCommand_response
- static bool fromString(const std::string& str, DeleteCommand_response& res)
- {
- return mDeleteCommand_response.fromString(str, res);
- }
-
- static std::string toString(const DeleteCommand_response& res)
- {
- return mDeleteCommand_response.toString(res);
- }
-
-// AddSubMenu_request
- static bool fromString(const std::string& str, AddSubMenu_request& res)
- {
- return mAddSubMenu_request.fromString(str, res);
- }
-
- static std::string toString(const AddSubMenu_request& res)
- {
- return mAddSubMenu_request.toString(res);
- }
-
-// AddSubMenu_response
- static bool fromString(const std::string& str, AddSubMenu_response& res)
- {
- return mAddSubMenu_response.fromString(str, res);
- }
-
- static std::string toString(const AddSubMenu_response& res)
- {
- return mAddSubMenu_response.toString(res);
- }
-
-// DeleteSubMenu_request
- static bool fromString(const std::string& str, DeleteSubMenu_request& res)
- {
- return mDeleteSubMenu_request.fromString(str, res);
- }
-
- static std::string toString(const DeleteSubMenu_request& res)
- {
- return mDeleteSubMenu_request.toString(res);
- }
-
-// DeleteSubMenu_response
- static bool fromString(const std::string& str, DeleteSubMenu_response& res)
- {
- return mDeleteSubMenu_response.fromString(str, res);
- }
-
- static std::string toString(const DeleteSubMenu_response& res)
- {
- return mDeleteSubMenu_response.toString(res);
- }
-
-// CreateInteractionChoiceSet_request
- static bool fromString(const std::string& str, CreateInteractionChoiceSet_request& res)
- {
- return mCreateInteractionChoiceSet_request.fromString(str, res);
- }
-
- static std::string toString(const CreateInteractionChoiceSet_request& res)
- {
- return mCreateInteractionChoiceSet_request.toString(res);
- }
-
-// CreateInteractionChoiceSet_response
- static bool fromString(const std::string& str, CreateInteractionChoiceSet_response& res)
- {
- return mCreateInteractionChoiceSet_response.fromString(str, res);
- }
-
- static std::string toString(const CreateInteractionChoiceSet_response& res)
- {
- return mCreateInteractionChoiceSet_response.toString(res);
- }
-
-// PerformInteraction_request
- static bool fromString(const std::string& str, PerformInteraction_request& res)
- {
- return mPerformInteraction_request.fromString(str, res);
- }
-
- static std::string toString(const PerformInteraction_request& res)
- {
- return mPerformInteraction_request.toString(res);
- }
-
-// PerformInteraction_response
- static bool fromString(const std::string& str, PerformInteraction_response& res)
- {
- return mPerformInteraction_response.fromString(str, res);
- }
-
- static std::string toString(const PerformInteraction_response& res)
- {
- return mPerformInteraction_response.toString(res);
- }
-
-// DeleteInteractionChoiceSet_request
- static bool fromString(const std::string& str, DeleteInteractionChoiceSet_request& res)
- {
- return mDeleteInteractionChoiceSet_request.fromString(str, res);
- }
-
- static std::string toString(const DeleteInteractionChoiceSet_request& res)
- {
- return mDeleteInteractionChoiceSet_request.toString(res);
- }
-
-// DeleteInteractionChoiceSet_response
- static bool fromString(const std::string& str, DeleteInteractionChoiceSet_response& res)
- {
- return mDeleteInteractionChoiceSet_response.fromString(str, res);
- }
-
- static std::string toString(const DeleteInteractionChoiceSet_response& res)
- {
- return mDeleteInteractionChoiceSet_response.toString(res);
- }
-
-// Alert_request
- static bool fromString(const std::string& str, Alert_request& res)
- {
- return mAlert_request.fromString(str, res);
- }
-
- static std::string toString(const Alert_request& res)
- {
- return mAlert_request.toString(res);
- }
-
-// Alert_response
- static bool fromString(const std::string& str, Alert_response& res)
- {
- return mAlert_response.fromString(str, res);
- }
-
- static std::string toString(const Alert_response& res)
- {
- return mAlert_response.toString(res);
- }
-
-// Show_request
- static bool fromString(const std::string& str, Show_request& res)
- {
- return mShow_request.fromString(str, res);
- }
-
- static std::string toString(const Show_request& res)
- {
- return mShow_request.toString(res);
- }
-
-// Show_response
- static bool fromString(const std::string& str, Show_response& res)
- {
- return mShow_response.fromString(str, res);
- }
-
- static std::string toString(const Show_response& res)
- {
- return mShow_response.toString(res);
- }
-
-// Speak_request
- static bool fromString(const std::string& str, Speak_request& res)
- {
- return mSpeak_request.fromString(str, res);
- }
-
- static std::string toString(const Speak_request& res)
- {
- return mSpeak_request.toString(res);
- }
-
-// Speak_response
- static bool fromString(const std::string& str, Speak_response& res)
- {
- return mSpeak_response.fromString(str, res);
- }
-
- static std::string toString(const Speak_response& res)
- {
- return mSpeak_response.toString(res);
- }
-
-// SetMediaClockTimer_request
- static bool fromString(const std::string& str, SetMediaClockTimer_request& res)
- {
- return mSetMediaClockTimer_request.fromString(str, res);
- }
-
- static std::string toString(const SetMediaClockTimer_request& res)
- {
- return mSetMediaClockTimer_request.toString(res);
- }
-
-// SetMediaClockTimer_response
- static bool fromString(const std::string& str, SetMediaClockTimer_response& res)
- {
- return mSetMediaClockTimer_response.fromString(str, res);
- }
-
- static std::string toString(const SetMediaClockTimer_response& res)
- {
- return mSetMediaClockTimer_response.toString(res);
- }
-
-// EncodedSyncPData_request
- static bool fromString(const std::string& str, EncodedSyncPData_request& res)
- {
- return mEncodedSyncPData_request.fromString(str, res);
- }
-
- static std::string toString(const EncodedSyncPData_request& res)
- {
- return mEncodedSyncPData_request.toString(res);
- }
-
-// EncodedSyncPData_response
- static bool fromString(const std::string& str, EncodedSyncPData_response& res)
- {
- return mEncodedSyncPData_response.fromString(str, res);
- }
-
- static std::string toString(const EncodedSyncPData_response& res)
- {
- return mEncodedSyncPData_response.toString(res);
- }
-
-// DialNumber_request
- static bool fromString(const std::string& str, DialNumber_request& res)
- {
- return mDialNumber_request.fromString(str, res);
- }
-
- static std::string toString(const DialNumber_request& res)
- {
- return mDialNumber_request.toString(res);
- }
-
-// DialNumber_response
- static bool fromString(const std::string& str, DialNumber_response& res)
- {
- return mDialNumber_response.fromString(str, res);
- }
-
- static std::string toString(const DialNumber_response& res)
- {
- return mDialNumber_response.toString(res);
- }
-
-// PerformAudioPassThru_request
- static bool fromString(const std::string& str, PerformAudioPassThru_request& res)
- {
- return mPerformAudioPassThru_request.fromString(str, res);
- }
-
- static std::string toString(const PerformAudioPassThru_request& res)
- {
- return mPerformAudioPassThru_request.toString(res);
- }
-
-// PerformAudioPassThru_response
- static bool fromString(const std::string& str, PerformAudioPassThru_response& res)
- {
- return mPerformAudioPassThru_response.fromString(str, res);
- }
-
- static std::string toString(const PerformAudioPassThru_response& res)
- {
- return mPerformAudioPassThru_response.toString(res);
- }
-
-// EndAudioPassThru_request
- static bool fromString(const std::string& str, EndAudioPassThru_request& res)
- {
- return mEndAudioPassThru_request.fromString(str, res);
- }
-
- static std::string toString(const EndAudioPassThru_request& res)
- {
- return mEndAudioPassThru_request.toString(res);
- }
-
-// EndAudioPassThru_response
- static bool fromString(const std::string& str, EndAudioPassThru_response& res)
- {
- return mEndAudioPassThru_response.fromString(str, res);
- }
-
- static std::string toString(const EndAudioPassThru_response& res)
- {
- return mEndAudioPassThru_response.toString(res);
- }
-
-// SubscribeButton_request
- static bool fromString(const std::string& str, SubscribeButton_request& res)
- {
- return mSubscribeButton_request.fromString(str, res);
- }
-
- static std::string toString(const SubscribeButton_request& res)
- {
- return mSubscribeButton_request.toString(res);
- }
-
-// SubscribeButton_response
- static bool fromString(const std::string& str, SubscribeButton_response& res)
- {
- return mSubscribeButton_response.fromString(str, res);
- }
-
- static std::string toString(const SubscribeButton_response& res)
- {
- return mSubscribeButton_response.toString(res);
- }
-
-// UnsubscribeButton_request
- static bool fromString(const std::string& str, UnsubscribeButton_request& res)
- {
- return mUnsubscribeButton_request.fromString(str, res);
- }
-
- static std::string toString(const UnsubscribeButton_request& res)
- {
- return mUnsubscribeButton_request.toString(res);
- }
-
-// UnsubscribeButton_response
- static bool fromString(const std::string& str, UnsubscribeButton_response& res)
- {
- return mUnsubscribeButton_response.fromString(str, res);
- }
-
- static std::string toString(const UnsubscribeButton_response& res)
- {
- return mUnsubscribeButton_response.toString(res);
- }
-
-// SubscribeVehicleData_request
- static bool fromString(const std::string& str, SubscribeVehicleData_request& res)
- {
- return mSubscribeVehicleData_request.fromString(str, res);
- }
-
- static std::string toString(const SubscribeVehicleData_request& res)
- {
- return mSubscribeVehicleData_request.toString(res);
- }
-
-// SubscribeVehicleData_response
- static bool fromString(const std::string& str, SubscribeVehicleData_response& res)
- {
- return mSubscribeVehicleData_response.fromString(str, res);
- }
-
- static std::string toString(const SubscribeVehicleData_response& res)
- {
- return mSubscribeVehicleData_response.toString(res);
- }
-
-// UnsubscribeVehicleData_request
- static bool fromString(const std::string& str, UnsubscribeVehicleData_request& res)
- {
- return mUnsubscribeVehicleData_request.fromString(str, res);
- }
-
- static std::string toString(const UnsubscribeVehicleData_request& res)
- {
- return mUnsubscribeVehicleData_request.toString(res);
- }
-
-// UnsubscribeVehicleData_response
- static bool fromString(const std::string& str, UnsubscribeVehicleData_response& res)
- {
- return mUnsubscribeVehicleData_response.fromString(str, res);
- }
-
- static std::string toString(const UnsubscribeVehicleData_response& res)
- {
- return mUnsubscribeVehicleData_response.toString(res);
- }
-
-// GetVehicleData_request
- static bool fromString(const std::string& str, GetVehicleData_request& res)
- {
- return mGetVehicleData_request.fromString(str, res);
- }
-
- static std::string toString(const GetVehicleData_request& res)
- {
- return mGetVehicleData_request.toString(res);
- }
-
-// GetVehicleData_response
- static bool fromString(const std::string& str, GetVehicleData_response& res)
- {
- return mGetVehicleData_response.fromString(str, res);
- }
-
- static std::string toString(const GetVehicleData_response& res)
- {
- return mGetVehicleData_response.toString(res);
- }
-
-// ReadDID_request
- static bool fromString(const std::string& str, ReadDID_request& res)
- {
- return mReadDID_request.fromString(str, res);
- }
-
- static std::string toString(const ReadDID_request& res)
- {
- return mReadDID_request.toString(res);
- }
-
-// ReadDID_response
- static bool fromString(const std::string& str, ReadDID_response& res)
- {
- return mReadDID_response.fromString(str, res);
- }
-
- static std::string toString(const ReadDID_response& res)
- {
- return mReadDID_response.toString(res);
- }
-
-// GetDTCs_request
- static bool fromString(const std::string& str, GetDTCs_request& res)
- {
- return mGetDTCs_request.fromString(str, res);
- }
-
- static std::string toString(const GetDTCs_request& res)
- {
- return mGetDTCs_request.toString(res);
- }
-
-// GetDTCs_response
- static bool fromString(const std::string& str, GetDTCs_response& res)
- {
- return mGetDTCs_response.fromString(str, res);
- }
-
- static std::string toString(const GetDTCs_response& res)
- {
- return mGetDTCs_response.toString(res);
- }
-
-// ScrollableMessage_request
- static bool fromString(const std::string& str, ScrollableMessage_request& res)
- {
- return mScrollableMessage_request.fromString(str, res);
- }
-
- static std::string toString(const ScrollableMessage_request& res)
- {
- return mScrollableMessage_request.toString(res);
- }
-
-// ScrollableMessage_response
- static bool fromString(const std::string& str, ScrollableMessage_response& res)
- {
- return mScrollableMessage_response.fromString(str, res);
- }
-
- static std::string toString(const ScrollableMessage_response& res)
- {
- return mScrollableMessage_response.toString(res);
- }
-
-// Slider_request
- static bool fromString(const std::string& str, Slider_request& res)
- {
- return mSlider_request.fromString(str, res);
- }
-
- static std::string toString(const Slider_request& res)
- {
- return mSlider_request.toString(res);
- }
-
-// Slider_response
- static bool fromString(const std::string& str, Slider_response& res)
- {
- return mSlider_response.fromString(str, res);
- }
-
- static std::string toString(const Slider_response& res)
- {
- return mSlider_response.toString(res);
- }
-
-// ShowConstantTBT_request
- static bool fromString(const std::string& str, ShowConstantTBT_request& res)
- {
- return mShowConstantTBT_request.fromString(str, res);
- }
-
- static std::string toString(const ShowConstantTBT_request& res)
- {
- return mShowConstantTBT_request.toString(res);
- }
-
-// ShowConstantTBT_response
- static bool fromString(const std::string& str, ShowConstantTBT_response& res)
- {
- return mShowConstantTBT_response.fromString(str, res);
- }
-
- static std::string toString(const ShowConstantTBT_response& res)
- {
- return mShowConstantTBT_response.toString(res);
- }
-
-// AlertManeuver_request
- static bool fromString(const std::string& str, AlertManeuver_request& res)
- {
- return mAlertManeuver_request.fromString(str, res);
- }
-
- static std::string toString(const AlertManeuver_request& res)
- {
- return mAlertManeuver_request.toString(res);
- }
-
-// AlertManeuver_response
- static bool fromString(const std::string& str, AlertManeuver_response& res)
- {
- return mAlertManeuver_response.fromString(str, res);
- }
-
- static std::string toString(const AlertManeuver_response& res)
- {
- return mAlertManeuver_response.toString(res);
- }
-
-// UpdateTurnList_request
- static bool fromString(const std::string& str, UpdateTurnList_request& res)
- {
- return mUpdateTurnList_request.fromString(str, res);
- }
-
- static std::string toString(const UpdateTurnList_request& res)
- {
- return mUpdateTurnList_request.toString(res);
- }
-
-// UpdateTurnList_response
- static bool fromString(const std::string& str, UpdateTurnList_response& res)
- {
- return mUpdateTurnList_response.fromString(str, res);
- }
-
- static std::string toString(const UpdateTurnList_response& res)
- {
- return mUpdateTurnList_response.toString(res);
- }
-
-// ChangeRegistration_request
- static bool fromString(const std::string& str, ChangeRegistration_request& res)
- {
- return mChangeRegistration_request.fromString(str, res);
- }
-
- static std::string toString(const ChangeRegistration_request& res)
- {
- return mChangeRegistration_request.toString(res);
- }
-
-// ChangeRegistration_response
- static bool fromString(const std::string& str, ChangeRegistration_response& res)
- {
- return mChangeRegistration_response.fromString(str, res);
- }
-
- static std::string toString(const ChangeRegistration_response& res)
- {
- return mChangeRegistration_response.toString(res);
- }
-
-// GenericResponse_response
- static bool fromString(const std::string& str, GenericResponse_response& res)
- {
- return mGenericResponse_response.fromString(str, res);
- }
-
- static std::string toString(const GenericResponse_response& res)
- {
- return mGenericResponse_response.toString(res);
- }
-
-// PutFile_request
- static bool fromString(const std::string& str, PutFile_request& res)
- {
- return mPutFile_request.fromString(str, res);
- }
-
- static std::string toString(const PutFile_request& res)
- {
- return mPutFile_request.toString(res);
- }
-
-// PutFile_response
- static bool fromString(const std::string& str, PutFile_response& res)
- {
- return mPutFile_response.fromString(str, res);
- }
-
- static std::string toString(const PutFile_response& res)
- {
- return mPutFile_response.toString(res);
- }
-
-// DeleteFile_request
- static bool fromString(const std::string& str, DeleteFile_request& res)
- {
- return mDeleteFile_request.fromString(str, res);
- }
-
- static std::string toString(const DeleteFile_request& res)
- {
- return mDeleteFile_request.toString(res);
- }
-
-// DeleteFile_response
- static bool fromString(const std::string& str, DeleteFile_response& res)
- {
- return mDeleteFile_response.fromString(str, res);
- }
-
- static std::string toString(const DeleteFile_response& res)
- {
- return mDeleteFile_response.toString(res);
- }
-
-// ListFiles_request
- static bool fromString(const std::string& str, ListFiles_request& res)
- {
- return mListFiles_request.fromString(str, res);
- }
-
- static std::string toString(const ListFiles_request& res)
- {
- return mListFiles_request.toString(res);
- }
-
-// ListFiles_response
- static bool fromString(const std::string& str, ListFiles_response& res)
- {
- return mListFiles_response.fromString(str, res);
- }
-
- static std::string toString(const ListFiles_response& res)
- {
- return mListFiles_response.toString(res);
- }
-
-// SetAppIcon_request
- static bool fromString(const std::string& str, SetAppIcon_request& res)
- {
- return mSetAppIcon_request.fromString(str, res);
- }
-
- static std::string toString(const SetAppIcon_request& res)
- {
- return mSetAppIcon_request.toString(res);
- }
-
-// SetAppIcon_response
- static bool fromString(const std::string& str, SetAppIcon_response& res)
- {
- return mSetAppIcon_response.fromString(str, res);
- }
-
- static std::string toString(const SetAppIcon_response& res)
- {
- return mSetAppIcon_response.toString(res);
- }
-
-// SetDisplayLayout_request
- static bool fromString(const std::string& str, SetDisplayLayout_request& res)
- {
- return mSetDisplayLayout_request.fromString(str, res);
- }
-
- static std::string toString(const SetDisplayLayout_request& res)
- {
- return mSetDisplayLayout_request.toString(res);
- }
-
-// SetDisplayLayout_response
- static bool fromString(const std::string& str, SetDisplayLayout_response& res)
- {
- return mSetDisplayLayout_response.fromString(str, res);
- }
-
- static std::string toString(const SetDisplayLayout_response& res)
- {
- return mSetDisplayLayout_response.toString(res);
- }
-
-// OnHMIStatus
- static bool fromString(const std::string& str, OnHMIStatus& res)
- {
- return mOnHMIStatus.fromString(str, res);
- }
-
- static std::string toString(const OnHMIStatus& res)
- {
- return mOnHMIStatus.toString(res);
- }
-
-// OnAppInterfaceUnregistered
- static bool fromString(const std::string& str, OnAppInterfaceUnregistered& res)
- {
- return mOnAppInterfaceUnregistered.fromString(str, res);
- }
-
- static std::string toString(const OnAppInterfaceUnregistered& res)
- {
- return mOnAppInterfaceUnregistered.toString(res);
- }
-
-// OnButtonEvent
- static bool fromString(const std::string& str, OnButtonEvent& res)
- {
- return mOnButtonEvent.fromString(str, res);
- }
-
- static std::string toString(const OnButtonEvent& res)
- {
- return mOnButtonEvent.toString(res);
- }
-
-// OnButtonPress
- static bool fromString(const std::string& str, OnButtonPress& res)
- {
- return mOnButtonPress.fromString(str, res);
- }
-
- static std::string toString(const OnButtonPress& res)
- {
- return mOnButtonPress.toString(res);
- }
-
-// OnVehicleData
- static bool fromString(const std::string& str, OnVehicleData& res)
- {
- return mOnVehicleData.fromString(str, res);
- }
-
- static std::string toString(const OnVehicleData& res)
- {
- return mOnVehicleData.toString(res);
- }
-
-// OnCommand
- static bool fromString(const std::string& str, OnCommand& res)
- {
- return mOnCommand.fromString(str, res);
- }
-
- static std::string toString(const OnCommand& res)
- {
- return mOnCommand.toString(res);
- }
-
-// OnEncodedSyncPData
- static bool fromString(const std::string& str, OnEncodedSyncPData& res)
- {
- return mOnEncodedSyncPData.fromString(str, res);
- }
-
- static std::string toString(const OnEncodedSyncPData& res)
- {
- return mOnEncodedSyncPData.toString(res);
- }
-
-// OnTBTClientState
- static bool fromString(const std::string& str, OnTBTClientState& res)
- {
- return mOnTBTClientState.fromString(str, res);
- }
-
- static std::string toString(const OnTBTClientState& res)
- {
- return mOnTBTClientState.toString(res);
- }
-
-// OnDriverDistraction
- static bool fromString(const std::string& str, OnDriverDistraction& res)
- {
- return mOnDriverDistraction.fromString(str, res);
- }
-
- static std::string toString(const OnDriverDistraction& res)
- {
- return mOnDriverDistraction.toString(res);
- }
-
-// OnPermissionsChange
- static bool fromString(const std::string& str, OnPermissionsChange& res)
- {
- return mOnPermissionsChange.fromString(str, res);
- }
-
- static std::string toString(const OnPermissionsChange& res)
- {
- return mOnPermissionsChange.toString(res);
- }
-
-// OnAudioPassThru
- static bool fromString(const std::string& str, OnAudioPassThru& res)
- {
- return mOnAudioPassThru.fromString(str, res);
- }
-
- static std::string toString(const OnAudioPassThru& res)
- {
- return mOnAudioPassThru.toString(res);
- }
-
-// OnLanguageChange
- static bool fromString(const std::string& str, OnLanguageChange& res)
- {
- return mOnLanguageChange.fromString(str, res);
- }
-
- static std::string toString(const OnLanguageChange& res)
- {
- return mOnLanguageChange.toString(res);
- }
-
- static RegisterAppInterface_requestMarshaller mRegisterAppInterface_request;
- static RegisterAppInterface_responseMarshaller mRegisterAppInterface_response;
- static UnregisterAppInterface_requestMarshaller mUnregisterAppInterface_request;
- static UnregisterAppInterface_responseMarshaller mUnregisterAppInterface_response;
- static SetGlobalProperties_requestMarshaller mSetGlobalProperties_request;
- static SetGlobalProperties_responseMarshaller mSetGlobalProperties_response;
- static ResetGlobalProperties_requestMarshaller mResetGlobalProperties_request;
- static ResetGlobalProperties_responseMarshaller mResetGlobalProperties_response;
- static AddCommand_requestMarshaller mAddCommand_request;
- static AddCommand_responseMarshaller mAddCommand_response;
- static DeleteCommand_requestMarshaller mDeleteCommand_request;
- static DeleteCommand_responseMarshaller mDeleteCommand_response;
- static AddSubMenu_requestMarshaller mAddSubMenu_request;
- static AddSubMenu_responseMarshaller mAddSubMenu_response;
- static DeleteSubMenu_requestMarshaller mDeleteSubMenu_request;
- static DeleteSubMenu_responseMarshaller mDeleteSubMenu_response;
- static CreateInteractionChoiceSet_requestMarshaller mCreateInteractionChoiceSet_request;
- static CreateInteractionChoiceSet_responseMarshaller mCreateInteractionChoiceSet_response;
- static PerformInteraction_requestMarshaller mPerformInteraction_request;
- static PerformInteraction_responseMarshaller mPerformInteraction_response;
- static DeleteInteractionChoiceSet_requestMarshaller mDeleteInteractionChoiceSet_request;
- static DeleteInteractionChoiceSet_responseMarshaller mDeleteInteractionChoiceSet_response;
- static Alert_requestMarshaller mAlert_request;
- static Alert_responseMarshaller mAlert_response;
- static Show_requestMarshaller mShow_request;
- static Show_responseMarshaller mShow_response;
- static Speak_requestMarshaller mSpeak_request;
- static Speak_responseMarshaller mSpeak_response;
- static SetMediaClockTimer_requestMarshaller mSetMediaClockTimer_request;
- static SetMediaClockTimer_responseMarshaller mSetMediaClockTimer_response;
- static EncodedSyncPData_requestMarshaller mEncodedSyncPData_request;
- static EncodedSyncPData_responseMarshaller mEncodedSyncPData_response;
- static DialNumber_requestMarshaller mDialNumber_request;
- static DialNumber_responseMarshaller mDialNumber_response;
- static PerformAudioPassThru_requestMarshaller mPerformAudioPassThru_request;
- static PerformAudioPassThru_responseMarshaller mPerformAudioPassThru_response;
- static EndAudioPassThru_requestMarshaller mEndAudioPassThru_request;
- static EndAudioPassThru_responseMarshaller mEndAudioPassThru_response;
- static SubscribeButton_requestMarshaller mSubscribeButton_request;
- static SubscribeButton_responseMarshaller mSubscribeButton_response;
- static UnsubscribeButton_requestMarshaller mUnsubscribeButton_request;
- static UnsubscribeButton_responseMarshaller mUnsubscribeButton_response;
- static SubscribeVehicleData_requestMarshaller mSubscribeVehicleData_request;
- static SubscribeVehicleData_responseMarshaller mSubscribeVehicleData_response;
- static UnsubscribeVehicleData_requestMarshaller mUnsubscribeVehicleData_request;
- static UnsubscribeVehicleData_responseMarshaller mUnsubscribeVehicleData_response;
- static GetVehicleData_requestMarshaller mGetVehicleData_request;
- static GetVehicleData_responseMarshaller mGetVehicleData_response;
- static ReadDID_requestMarshaller mReadDID_request;
- static ReadDID_responseMarshaller mReadDID_response;
- static GetDTCs_requestMarshaller mGetDTCs_request;
- static GetDTCs_responseMarshaller mGetDTCs_response;
- static ScrollableMessage_requestMarshaller mScrollableMessage_request;
- static ScrollableMessage_responseMarshaller mScrollableMessage_response;
- static Slider_requestMarshaller mSlider_request;
- static Slider_responseMarshaller mSlider_response;
- static ShowConstantTBT_requestMarshaller mShowConstantTBT_request;
- static ShowConstantTBT_responseMarshaller mShowConstantTBT_response;
- static AlertManeuver_requestMarshaller mAlertManeuver_request;
- static AlertManeuver_responseMarshaller mAlertManeuver_response;
- static UpdateTurnList_requestMarshaller mUpdateTurnList_request;
- static UpdateTurnList_responseMarshaller mUpdateTurnList_response;
- static ChangeRegistration_requestMarshaller mChangeRegistration_request;
- static ChangeRegistration_responseMarshaller mChangeRegistration_response;
- static GenericResponse_responseMarshaller mGenericResponse_response;
- static PutFile_requestMarshaller mPutFile_request;
- static PutFile_responseMarshaller mPutFile_response;
- static DeleteFile_requestMarshaller mDeleteFile_request;
- static DeleteFile_responseMarshaller mDeleteFile_response;
- static ListFiles_requestMarshaller mListFiles_request;
- static ListFiles_responseMarshaller mListFiles_response;
- static SetAppIcon_requestMarshaller mSetAppIcon_request;
- static SetAppIcon_responseMarshaller mSetAppIcon_response;
- static SetDisplayLayout_requestMarshaller mSetDisplayLayout_request;
- static SetDisplayLayout_responseMarshaller mSetDisplayLayout_response;
- static OnHMIStatusMarshaller mOnHMIStatus;
- static OnAppInterfaceUnregisteredMarshaller mOnAppInterfaceUnregistered;
- static OnButtonEventMarshaller mOnButtonEvent;
- static OnButtonPressMarshaller mOnButtonPress;
- static OnVehicleDataMarshaller mOnVehicleData;
- static OnCommandMarshaller mOnCommand;
- static OnEncodedSyncPDataMarshaller mOnEncodedSyncPData;
- static OnTBTClientStateMarshaller mOnTBTClientState;
- static OnDriverDistractionMarshaller mOnDriverDistraction;
- static OnPermissionsChangeMarshaller mOnPermissionsChange;
- static OnAudioPassThruMarshaller mOnAudioPassThru;
- static OnLanguageChangeMarshaller mOnLanguageChange;
-
-private:
-
- static Json::Value toJSONparam(const NsSmartDeviceLinkRPC::SDLRPCMessage* msg,FunctionID::FunctionIDInternal fid, messageType::messageTypeInternal mt);
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/MediaClockFormat.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/MediaClockFormat.h
deleted file mode 100644
index 895208e2e..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/MediaClockFormat.h
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_MEDIACLOCKFORMAT_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_MEDIACLOCKFORMAT_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class MediaClockFormat
- {
- public:
- enum MediaClockFormatInternal
- {
- INVALID_ENUM=-1,
-
-/**
- minutesFieldWidth = 2;minutesFieldMax = 19;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 19;maxMinutes = 59;maxSeconds = 59;
- used for Type II and CID headunits
-*/
- CLOCK1=0,
-
-/**
- minutesFieldWidth = 3;minutesFieldMax = 199;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 59;maxMinutes = 59;maxSeconds = 59;
- used for Type V headunit
-*/
- CLOCK2=1,
-
-/**
- 5 characters possible
- Format: 1|sp c :|sp c c
- 1|sp : digit "1" or space
- c : character out of following character set: sp|0-9|[letters, see TypeII column in XLS. See [@TODO: create file ref]]
- :|sp : colon or space
- used for Type II headunit
-*/
- CLOCKTEXT1=2,
-
-/**
- 5 chars possible
- Format: 1|sp c :|sp c c
- 1|sp : digit "1" or space
- c : character out of following character set: sp|0-9|[letters, see CID column in XLS. See [@TODO: create file ref]]
- :|sp : colon or space
- used for CID headunit
- NOTE: difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character set
-*/
- CLOCKTEXT2=3,
-
-/**
- 6 chars possible
- Format: 1|sp c c :|sp c c
- 1|sp : digit "1" or space
- c : character out of following character set: sp|0-9|[letters, see Type 5 column in XLS]. See [@TODO: create file ref]
- :|sp : colon or space
- used for Type V headunit
-*/
- CLOCKTEXT3=4
- };
-
- MediaClockFormat() : mInternal(INVALID_ENUM) {}
- MediaClockFormat(MediaClockFormatInternal e) : mInternal(e) {}
-
- MediaClockFormatInternal get(void) const { return mInternal; }
- void set(MediaClockFormatInternal e) { mInternal=e; }
-
- private:
- MediaClockFormatInternal mInternal;
- friend class MediaClockFormatMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/MenuParams.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/MenuParams.h
deleted file mode 100644
index ae9e24688..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/MenuParams.h
+++ /dev/null
@@ -1,105 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_MENUPARAMS_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_MENUPARAMS_INCLUDE
-
-#include <string>
-
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class MenuParams
- {
- public:
-
- MenuParams(const MenuParams& c);
- MenuParams(void);
-
- bool checkIntegrity(void);
-
- ~MenuParams(void);
- MenuParams& operator =(const MenuParams&);
-
-// getters
-
- const std::string& get_menuName(void) const;
- const unsigned int* get_parentID(void) const;
- const unsigned int* get_position(void) const;
-
-// setters
-
- bool set_menuName(const std::string& menuName_);
- void reset_parentID(void);
- bool set_parentID(unsigned int parentID_);
- void reset_position(void);
- bool set_position(unsigned int position_);
-
- private:
-
- friend class MenuParamsMarshaller;
-
-
-/// Text to show in the menu for this sub menu.
- std::string menuName; //!< (500)
-
-/**
- unique ID of the sub menu, the command will be added to.
- If not provided, it will be provided to the top level of the in application menu.
-*/
- unsigned int* parentID; //!< (0,2000000000)
-
-/**
- Position within the items that are are at top level of the in application menu.
- 0 will insert at the front.
- 1 will insert at the second position.
- if position is greater or equal than the number of items on top level, the sub menu will be appended to the end.
- If this param was omitted the entry will be added at the end.
-*/
- unsigned int* position; //!< (0,1000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnAppInterfaceUnregistered.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnAppInterfaceUnregistered.h
deleted file mode 100644
index 51b2f1650..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnAppInterfaceUnregistered.h
+++ /dev/null
@@ -1,79 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONAPPINTERFACEUNREGISTERED_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONAPPINTERFACEUNREGISTERED_INCLUDE
-
-
-#include "AppInterfaceUnregisteredReason.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class OnAppInterfaceUnregistered : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnAppInterfaceUnregistered(const OnAppInterfaceUnregistered& c);
- OnAppInterfaceUnregistered(void);
-
- virtual ~OnAppInterfaceUnregistered(void);
-
- bool checkIntegrity(void);
-
- const AppInterfaceUnregisteredReason& get_reason(void) const;
-
- bool set_reason(const AppInterfaceUnregisteredReason& reason_);
-
- private:
-
- friend class OnAppInterfaceUnregisteredMarshaller;
-
-
-/// See AppInterfaceUnregisteredReason
- AppInterfaceUnregisteredReason reason;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnAudioPassThru.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnAudioPassThru.h
deleted file mode 100644
index 536ea98b0..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnAudioPassThru.h
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONAUDIOPASSTHRU_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONAUDIOPASSTHRU_INCLUDE
-
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class OnAudioPassThru : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnAudioPassThru(const OnAudioPassThru& c);
- OnAudioPassThru(void);
-
- virtual ~OnAudioPassThru(void);
-
- bool checkIntegrity(void);
-
-
-
- private:
-
- friend class OnAudioPassThruMarshaller;
-
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnButtonEvent.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnButtonEvent.h
deleted file mode 100644
index 74405a312..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnButtonEvent.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONBUTTONEVENT_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONBUTTONEVENT_INCLUDE
-
-
-#include "ButtonEventMode.h"
-#include "ButtonName.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Notifies application of UP/DOWN events for buttons to which the application is subscribed.
-
- class OnButtonEvent : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnButtonEvent(const OnButtonEvent& c);
- OnButtonEvent(void);
-
- virtual ~OnButtonEvent(void);
-
- bool checkIntegrity(void);
-
- const ButtonName& get_buttonName(void) const;
- const ButtonEventMode& get_buttonEventMode(void) const;
- unsigned int get_customButtonID(void) const;
-
- bool set_buttonName(const ButtonName& buttonName_);
- bool set_buttonEventMode(const ButtonEventMode& buttonEventMode_);
- bool set_customButtonID(unsigned int customButtonID_);
-
- private:
-
- friend class OnButtonEventMarshaller;
-
- ButtonName buttonName;
-
-/// Indicates whether this is an UP or DOWN event.
- ButtonEventMode buttonEventMode;
-
-/// If ButtonName is “CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButton ID)
- unsigned int customButtonID; //!< (0,65536)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnButtonPress.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnButtonPress.h
deleted file mode 100644
index ff79e2bdd..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnButtonPress.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONBUTTONPRESS_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONBUTTONPRESS_INCLUDE
-
-
-#include "ButtonName.h"
-#include "ButtonPressMode.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Notifies application of LONG/SHORT press events for buttons to which the application is subscribed.
-
- class OnButtonPress : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnButtonPress(const OnButtonPress& c);
- OnButtonPress(void);
-
- virtual ~OnButtonPress(void);
-
- bool checkIntegrity(void);
-
- const ButtonName& get_buttonName(void) const;
- const ButtonPressMode& get_buttonPressMode(void) const;
- unsigned int get_customButtonID(void) const;
-
- bool set_buttonName(const ButtonName& buttonName_);
- bool set_buttonPressMode(const ButtonPressMode& buttonPressMode_);
- bool set_customButtonID(unsigned int customButtonID_);
-
- private:
-
- friend class OnButtonPressMarshaller;
-
- ButtonName buttonName;
-
-/// Indicates whether this is a LONG or SHORT button press event.
- ButtonPressMode buttonPressMode;
-
-/// If ButtonName is “CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButton ID)
- unsigned int customButtonID; //!< (0,65536)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnCommand.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnCommand.h
deleted file mode 100644
index 884933325..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnCommand.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONCOMMAND_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONCOMMAND_INCLUDE
-
-
-#include "TriggerSource.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class OnCommand : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnCommand(const OnCommand& c);
- OnCommand(void);
-
- virtual ~OnCommand(void);
-
- bool checkIntegrity(void);
-
- unsigned int get_cmdID(void) const;
- const TriggerSource& get_triggerSource(void) const;
-
- bool set_cmdID(unsigned int cmdID_);
- bool set_triggerSource(const TriggerSource& triggerSource_);
-
- private:
-
- friend class OnCommandMarshaller;
-
-
-/// Command ID, which is related to a specific menu entry.
- unsigned int cmdID; //!< (0,2000000000)
-
-/// See TriggerSource
- TriggerSource triggerSource;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnDriverDistraction.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnDriverDistraction.h
deleted file mode 100644
index ecb09bd3f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnDriverDistraction.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONDRIVERDISTRACTION_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONDRIVERDISTRACTION_INCLUDE
-
-
-#include "DriverDistractionState.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Provides driver distraction state to mobile applications
-
- class OnDriverDistraction : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnDriverDistraction(const OnDriverDistraction& c);
- OnDriverDistraction(void);
-
- virtual ~OnDriverDistraction(void);
-
- bool checkIntegrity(void);
-
- const DriverDistractionState& get_state(void) const;
-
- bool set_state(const DriverDistractionState& state_);
-
- private:
-
- friend class OnDriverDistractionMarshaller;
-
-
-/// Current State of Driver Distraction
- DriverDistractionState state;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnEncodedSyncPData.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnEncodedSyncPData.h
deleted file mode 100644
index 0669b2eb5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnEncodedSyncPData.h
+++ /dev/null
@@ -1,102 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONENCODEDSYNCPDATA_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONENCODEDSYNCPDATA_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Callback including encoded data of any SyncP packets that SYNC needs to send back to the mobile device.
-
- class OnEncodedSyncPData : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnEncodedSyncPData(const OnEncodedSyncPData& c);
- OnEncodedSyncPData(void);
-
- virtual ~OnEncodedSyncPData(void);
-
- OnEncodedSyncPData& operator =(const OnEncodedSyncPData&);
-
- bool checkIntegrity(void);
-
- const std::vector<std::string>& get_data(void) const;
- const std::string* get_URL(void) const;
- const int* get_Timeout(void) const;
-
- bool set_data(const std::vector<std::string>& data_);
- void reset_URL(void);
- bool set_URL(const std::string& URL_);
- void reset_Timeout(void);
- bool set_Timeout(int Timeout_);
-
- private:
-
- friend class OnEncodedSyncPDataMarshaller;
-
-
-/// Contains base64 encoded string of SyncP packets.
- std::vector<std::string> data; //!< [%s..%s] (10000)
-
-/**
- If blank, the SyncP data shall be forwarded to the app.
- If not blank, the SyncP data shall be forwarded to the provided URL.
-*/
- std::string* URL; //!< (1000)
-
-/**
- If blank, the SyncP data shall be forwarded to the app.
- If not blank, the SyncP data shall be forwarded with the provided timeout in seconds.
-*/
- int* Timeout; //!< (-2000000000,2000000000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnHMIStatus.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnHMIStatus.h
deleted file mode 100644
index 7ae9c4369..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnHMIStatus.h
+++ /dev/null
@@ -1,91 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONHMISTATUS_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONHMISTATUS_INCLUDE
-
-
-#include "AudioStreamingState.h"
-#include "HMILevel.h"
-#include "SystemContext.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class OnHMIStatus : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnHMIStatus(const OnHMIStatus& c);
- OnHMIStatus(void);
-
- virtual ~OnHMIStatus(void);
-
- bool checkIntegrity(void);
-
- const HMILevel& get_hmiLevel(void) const;
- const AudioStreamingState& get_audioStreamingState(void) const;
- const SystemContext& get_systemContext(void) const;
-
- bool set_hmiLevel(const HMILevel& hmiLevel_);
- bool set_audioStreamingState(const AudioStreamingState& audioStreamingState_);
- bool set_systemContext(const SystemContext& systemContext_);
-
- private:
-
- friend class OnHMIStatusMarshaller;
-
-
-/// See HMILevel
- HMILevel hmiLevel;
-
-/// See AudioStreamingState
- AudioStreamingState audioStreamingState;
-
-/// See SystemContext
- SystemContext systemContext;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnLanguageChange.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnLanguageChange.h
deleted file mode 100644
index 3b51b5df7..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnLanguageChange.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONLANGUAGECHANGE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONLANGUAGECHANGE_INCLUDE
-
-
-#include "Language.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class OnLanguageChange : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnLanguageChange(const OnLanguageChange& c);
- OnLanguageChange(void);
-
- virtual ~OnLanguageChange(void);
-
- bool checkIntegrity(void);
-
- const Language& get_language(void) const;
- const Language& get_hmiDisplayLanguage(void) const;
-
- bool set_language(const Language& language_);
- bool set_hmiDisplayLanguage(const Language& hmiDisplayLanguage_);
-
- private:
-
- friend class OnLanguageChangeMarshaller;
-
-
-/// Current SYNC voice engine (VR+TTS) language
- Language language;
-
-/// Current display language
- Language hmiDisplayLanguage;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnPermissionsChange.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnPermissionsChange.h
deleted file mode 100644
index 57d0f0d10..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnPermissionsChange.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONPERMISSIONSCHANGE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONPERMISSIONSCHANGE_INCLUDE
-
-#include <vector>
-
-#include "PermissionItem.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Provides update to app of which policy-table-enabled functions are available
-
- class OnPermissionsChange : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnPermissionsChange(const OnPermissionsChange& c);
- OnPermissionsChange(void);
-
- virtual ~OnPermissionsChange(void);
-
- bool checkIntegrity(void);
-
- const std::vector<PermissionItem>& get_permissionItem(void) const;
-
- bool set_permissionItem(const std::vector<PermissionItem>& permissionItem_);
-
- private:
-
- friend class OnPermissionsChangeMarshaller;
-
-
-/// Change in permissions for a given set of RPCs.
- std::vector<PermissionItem> permissionItem; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnTBTClientState.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnTBTClientState.h
deleted file mode 100644
index 7e7b87788..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnTBTClientState.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONTBTCLIENTSTATE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONTBTCLIENTSTATE_INCLUDE
-
-
-#include "TBTState.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Provides applications with notifications specific to the current TBT client status on the module
-
- class OnTBTClientState : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnTBTClientState(const OnTBTClientState& c);
- OnTBTClientState(void);
-
- virtual ~OnTBTClientState(void);
-
- bool checkIntegrity(void);
-
- const TBTState& get_state(void) const;
-
- bool set_state(const TBTState& state_);
-
- private:
-
- friend class OnTBTClientStateMarshaller;
-
-
-/// Current State of TBT client
- TBTState state;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnVehicleData.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnVehicleData.h
deleted file mode 100644
index 3be2abed0..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/OnVehicleData.h
+++ /dev/null
@@ -1,201 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_ONVEHICLEDATA_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_ONVEHICLEDATA_INCLUDE
-
-#include <string>
-
-#include "GPSData.h"
-#include "PRNDL.h"
-#include "TireStatus.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Callback for the periodic and non periodic vehicle data read function.
-
- class OnVehicleData : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- OnVehicleData(const OnVehicleData& c);
- OnVehicleData(void);
-
- virtual ~OnVehicleData(void);
-
- OnVehicleData& operator =(const OnVehicleData&);
-
- bool checkIntegrity(void);
-
- const GPSData* get_gps(void) const;
- const float* get_speed(void) const;
- const unsigned int* get_rpm(void) const;
- const float* get_fuelLevel(void) const;
- const float* get_avgFuelEconomy(void) const;
- const float* get_batteryVoltage(void) const;
- const float* get_externalTemperature(void) const;
- const std::string* get_vin(void) const;
- const PRNDL* get_prndl(void) const;
- const TireStatus* get_tirePressure(void) const;
- const float* get_batteryPackVoltage(void) const;
- const float* get_batteryPackCurrent(void) const;
- const int* get_batteryPackTemperature(void) const;
- const int* get_engineTorque(void) const;
- const unsigned int* get_odometer(void) const;
- const unsigned int* get_tripOdometer(void) const;
- const std::string* get_genericbinary(void) const;
-
- void reset_gps(void);
- bool set_gps(const GPSData& gps_);
- void reset_speed(void);
- bool set_speed(float speed_);
- void reset_rpm(void);
- bool set_rpm(unsigned int rpm_);
- void reset_fuelLevel(void);
- bool set_fuelLevel(float fuelLevel_);
- void reset_avgFuelEconomy(void);
- bool set_avgFuelEconomy(float avgFuelEconomy_);
- void reset_batteryVoltage(void);
- bool set_batteryVoltage(float batteryVoltage_);
- void reset_externalTemperature(void);
- bool set_externalTemperature(float externalTemperature_);
- void reset_vin(void);
- bool set_vin(const std::string& vin_);
- void reset_prndl(void);
- bool set_prndl(const PRNDL& prndl_);
- void reset_tirePressure(void);
- bool set_tirePressure(const TireStatus& tirePressure_);
- void reset_batteryPackVoltage(void);
- bool set_batteryPackVoltage(float batteryPackVoltage_);
- void reset_batteryPackCurrent(void);
- bool set_batteryPackCurrent(float batteryPackCurrent_);
- void reset_batteryPackTemperature(void);
- bool set_batteryPackTemperature(int batteryPackTemperature_);
- void reset_engineTorque(void);
- bool set_engineTorque(int engineTorque_);
- void reset_odometer(void);
- bool set_odometer(unsigned int odometer_);
- void reset_tripOdometer(void);
- bool set_tripOdometer(unsigned int tripOdometer_);
- void reset_genericbinary(void);
- bool set_genericbinary(const std::string& genericbinary_);
-
- private:
-
- friend class OnVehicleDataMarshaller;
-
-
-/**
- See GPSData
- Subscribable
-*/
- GPSData* gps;
-
-/**
- The vehicle speed in kilometers per hour
- Subscribable
-*/
- float* speed; //!< (-100,500)
-
-/**
- The number of revolutions per minute of the engine
- Subscribable
-*/
- unsigned int* rpm; //!< (0,20000)
-
-/// The fuel level
- float* fuelLevel; //!< (0,100)
-
-/// The average fuel economy in litres/100km
- float* avgFuelEconomy; //!< (0,7000)
-
-/// The voltage in Volts
- float* batteryVoltage; //!< (0,26)
-
-/// The external temperature in degrees celsius.
- float* externalTemperature; //!< (-40,100)
-
-/// Vehicle identification number.
- std::string* vin; //!< (17)
-
-/**
- See PRNDL.
- Subscribable
-*/
- PRNDL* prndl;
-
-/**
- See TireStatus.
- Subscribable
-*/
- TireStatus* tirePressure;
-
-/// Battery pack voltage of hybrid and electrical vehicles in volts
- float* batteryPackVoltage; //!< (-1000,1000)
-
-/// Battery current of hybrid and electrical vehicles in amperes
- float* batteryPackCurrent; //!< (-1000,1000)
-
-/// Battery temperature of hybrid and electrical vehicles in degrees celsius
- int* batteryPackTemperature; //!< (-50,250)
-
-/**
- Engine torque in Nm
- Subscribable
-*/
- int* engineTorque; //!< (-10000,55000)
-
-/// Odometer in km
- unsigned int* odometer; //!< (0,2000000)
-
-/// Odometer of trip in km
- unsigned int* tripOdometer; //!< (0,2000000)
-
-/// The hex value string is a string of hexadecimal chars, for example "FE12" or "1234ABCD".
- std::string* genericbinary; //!< (500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PRNDL.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PRNDL.h
deleted file mode 100644
index dfad49589..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PRNDL.h
+++ /dev/null
@@ -1,100 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_PRNDL_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_PRNDL_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// The selected gear.
-
- class PRNDL
- {
- public:
- enum PRNDLInternal
- {
- INVALID_ENUM=-1,
-
-/// Parking
- PARK=0,
-
-/// Reverse gear
- REVERSE=1,
-
-/// No gear
- NEUTRAL=2,
-
-/// 1st gear hold
- LOWGEAR=3,
- FORWARD_DRIVE_2=4,
- FORWARD_DRIVE_3=5,
-
-/// Or Overdrive
- FORWARD_DRIVE_4=6,
-
-/// Or Overdrive
- FORWARD_DRIVE_5=7,
-
-/// Or Overdrive
- FORWARD_DRIVE_6=8,
- SECOND_GEAR_HOLD=9,
- THIRD_GEAR_HOLD=10,
- FOURTH_GEAR_HOLD=11,
- FIFTH_GEAR_HOLD=12,
- SIXTH_GEAR_HOLD=13
- };
-
- PRNDL() : mInternal(INVALID_ENUM) {}
- PRNDL(PRNDLInternal e) : mInternal(e) {}
-
- PRNDLInternal get(void) const { return mInternal; }
- void set(PRNDLInternal e) { mInternal=e; }
-
- private:
- PRNDLInternal mInternal;
- friend class PRNDLMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ParameterPermissions.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ParameterPermissions.h
deleted file mode 100644
index 1c9ca9927..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ParameterPermissions.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_PARAMETERPERMISSIONS_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_PARAMETERPERMISSIONS_INCLUDE
-
-#include <string>
-#include <vector>
-
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class ParameterPermissions
- {
- public:
-
- ParameterPermissions(const ParameterPermissions& c);
- ParameterPermissions(void);
-
- bool checkIntegrity(void);
- // getters
-
- const std::vector<std::string>& get_allowed(void) const;
- const std::vector<std::string>& get_userDisallowed(void) const;
-
-// setters
-
- bool set_allowed(const std::vector<std::string>& allowed_);
- bool set_userDisallowed(const std::vector<std::string>& userDisallowed_);
-
- private:
-
- friend class ParameterPermissionsMarshaller;
-
-
-/// A set of all parameters that are permitted for this given RPC.
- std::vector<std::string> allowed; //!< [%s..%s] (100)
-
-/// A set of all parameters that are prohibited for this given RPC.
- std::vector<std::string> userDisallowed; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_request.h
deleted file mode 100644
index 1505da6a5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_request.h
+++ /dev/null
@@ -1,124 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_PERFORMAUDIOPASSTHRU_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_PERFORMAUDIOPASSTHRU_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "AudioCaptureQuality.h"
-#include "AudioType.h"
-#include "SamplingRate.h"
-#include "TTSChunk.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Starts audio pass thru session
-
- class PerformAudioPassThru_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- PerformAudioPassThru_request(const PerformAudioPassThru_request& c);
- PerformAudioPassThru_request(void);
-
- virtual ~PerformAudioPassThru_request(void);
-
- PerformAudioPassThru_request& operator =(const PerformAudioPassThru_request&);
-
- bool checkIntegrity(void);
-
- const std::vector<TTSChunk>& get_initialPrompt(void) const;
- const std::string* get_audioPassThruDisplayText1(void) const;
- const std::string* get_audioPassThruDisplayText2(void) const;
- const SamplingRate& get_samplingRate(void) const;
- unsigned int get_maxDuration(void) const;
- const AudioCaptureQuality& get_bitsPerSample(void) const;
- const AudioType& get_audioType(void) const;
-
- bool set_initialPrompt(const std::vector<TTSChunk>& initialPrompt_);
- void reset_audioPassThruDisplayText1(void);
- bool set_audioPassThruDisplayText1(const std::string& audioPassThruDisplayText1_);
- void reset_audioPassThruDisplayText2(void);
- bool set_audioPassThruDisplayText2(const std::string& audioPassThruDisplayText2_);
- bool set_samplingRate(const SamplingRate& samplingRate_);
- bool set_maxDuration(unsigned int maxDuration_);
- bool set_bitsPerSample(const AudioCaptureQuality& bitsPerSample_);
- bool set_audioType(const AudioType& audioType_);
-
- private:
-
- friend class PerformAudioPassThru_requestMarshaller;
-
-
-/**
- SYNC will speak this prompt before opening the audio pass thru session
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk> initialPrompt; //!< [%s..%s]
-
-/// First line of text displayed during audio capture.
- std::string* audioPassThruDisplayText1; //!< (500)
-
-/// Second line of text displayed during audio capture.
- std::string* audioPassThruDisplayText2; //!< (500)
-
-/// This value shall be allowed at 8 khz or 16 or 22 or 44 khz.
- SamplingRate samplingRate;
-
-/// The maximum duration of audio recording in milliseconds.
- unsigned int maxDuration; //!< (0,1000000)
-
-/// Specifies the quality the audio is recorded. Currently 8 bit or 16 bit.
- AudioCaptureQuality bitsPerSample;
-
-/// Specifies the type of audio data being requested.
- AudioType audioType;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_response.h
deleted file mode 100644
index 802e54ff4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_PERFORMAUDIOPASSTHRU_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_PERFORMAUDIOPASSTHRU_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class PerformAudioPassThru_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- PerformAudioPassThru_response(const PerformAudioPassThru_response& c);
- PerformAudioPassThru_response(void);
-
- virtual ~PerformAudioPassThru_response(void);
-
- PerformAudioPassThru_response& operator =(const PerformAudioPassThru_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class PerformAudioPassThru_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_request.h
deleted file mode 100644
index a44bf50f4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_request.h
+++ /dev/null
@@ -1,144 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_PERFORMINTERACTION_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_PERFORMINTERACTION_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "InteractionMode.h"
-#include "TTSChunk.h"
-#include "VrHelpItem.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Triggers an interaction (e.g. "Permit GPS?" - Yes, no, Always Allow).
-
- class PerformInteraction_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- PerformInteraction_request(const PerformInteraction_request& c);
- PerformInteraction_request(void);
-
- virtual ~PerformInteraction_request(void);
-
- PerformInteraction_request& operator =(const PerformInteraction_request&);
-
- bool checkIntegrity(void);
-
- const std::string& get_initialText(void) const;
- const std::vector<TTSChunk>& get_initialPrompt(void) const;
- const InteractionMode& get_interactionMode(void) const;
- const std::vector<unsigned int>& get_interactionChoiceSetIDList(void) const;
- const std::vector<TTSChunk>* get_helpPrompt(void) const;
- const std::vector<TTSChunk>* get_timeoutPrompt(void) const;
- const unsigned int* get_timeout(void) const;
- const std::vector<VrHelpItem>* get_vrHelp(void) const;
-
- bool set_initialText(const std::string& initialText_);
- bool set_initialPrompt(const std::vector<TTSChunk>& initialPrompt_);
- bool set_interactionMode(const InteractionMode& interactionMode_);
- bool set_interactionChoiceSetIDList(const std::vector<unsigned int>& interactionChoiceSetIDList_);
- void reset_helpPrompt(void);
- bool set_helpPrompt(const std::vector<TTSChunk>& helpPrompt_);
- void reset_timeoutPrompt(void);
- bool set_timeoutPrompt(const std::vector<TTSChunk>& timeoutPrompt_);
- void reset_timeout(void);
- bool set_timeout(unsigned int timeout_);
- void reset_vrHelp(void);
- bool set_vrHelp(const std::vector<VrHelpItem>& vrHelp_);
-
- private:
-
- friend class PerformInteraction_requestMarshaller;
-
-
-/// Text to be displayed first.
- std::string initialText; //!< (500)
-
-/**
- This is the intial prompt spoken to the user at the start of an interaction
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk> initialPrompt; //!< [%s..%s]
-
-/// See InteractionMode.
- InteractionMode interactionMode;
-
-/// List of interaction choice set IDs to use with an interaction.
- std::vector<unsigned int> interactionChoiceSetIDList; //!< [%s..%s] (0,2000000000)
-
-/**
- Help text. This is the spoken string when a user speaks "help" when the interaction is occuring.
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk>* helpPrompt; //!< [%s..%s]
-
-/**
- Timeout text. This text is spoken when a VR interaction times out.
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk>* timeoutPrompt; //!< [%s..%s]
-
-/**
- Timeout in milliseconds.
- If omitted a standard value of 10000 milliseconds is used.
-*/
- unsigned int* timeout; //!< (5000,100000)
-
-/**
- Ability to send suggested VR Help Items to display on-screen during Perform Interaction.
- If omitted on supported displays, the default SYNC generated list of suggested choices shall be displayed.
-*/
- std::vector<VrHelpItem>* vrHelp; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_response.h
deleted file mode 100644
index dedbcd738..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_response.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_PERFORMINTERACTION_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_PERFORMINTERACTION_RESPONSE_INCLUDE
-
-#include "TriggerSource.h"
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class PerformInteraction_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- PerformInteraction_response(const PerformInteraction_response& c);
- PerformInteraction_response(void);
-
- virtual ~PerformInteraction_response(void);
-
- PerformInteraction_response& operator =(const PerformInteraction_response&);
-
- bool checkIntegrity(void);
-
- const unsigned int* get_choiceID(void) const;
- const TriggerSource* get_triggerSource(void) const;
-
- void reset_choiceID(void);
- bool set_choiceID(unsigned int choiceID_);
- void reset_triggerSource(void);
- bool set_triggerSource(const TriggerSource& triggerSource_);
-
- private:
- friend class PerformInteraction_responseMarshaller;
-
- /// ID of the choice that was selected in response to PerformInteraction.
- unsigned int* choiceID; //!< (0,2000000000)
-
- /// See TriggerSource
- TriggerSource* triggerSource;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PermissionItem.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PermissionItem.h
deleted file mode 100644
index 9dc9634e2..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PermissionItem.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_PERMISSIONITEM_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_PERMISSIONITEM_INCLUDE
-
-#include <string>
-
-#include "HMIPermissions.h"
-#include "ParameterPermissions.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class PermissionItem
- {
- public:
-
- PermissionItem(const PermissionItem& c);
- PermissionItem(void);
-
- bool checkIntegrity(void);
- // getters
-
- const HMIPermissions& get_hmiPermissions(void) const;
- const ParameterPermissions& get_parameterPermissions(void) const;
- const std::string& get_rpcName(void) const;
-
-// setters
-
- bool set_hmiPermissions(const HMIPermissions& hmiPermissions_);
- bool set_parameterPermissions(const ParameterPermissions& parameterPermissions_);
- bool set_rpcName(const std::string& rpcName_);
-
- private:
-
- friend class PermissionItemMarshaller;
-
- HMIPermissions hmiPermissions;
- ParameterPermissions parameterPermissions;
-
-/// Name of the individual RPC in the policy table.
- std::string rpcName; //!< (100)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PermissionStatus.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PermissionStatus.h
deleted file mode 100644
index bf2106b80..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PermissionStatus.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_PERMISSIONSTATUS_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_PERMISSIONSTATUS_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Enumeration that describes possible permission states of a policy table entry.
-
- class PermissionStatus
- {
- public:
- enum PermissionStatusInternal
- {
- INVALID_ENUM=-1,
- PS_ALLOWED=0,
- PS_DISALLOWED=1,
- PS_USER_DISALLOWED=2,
- PS_USER_CONSENT_PENDING=3
- };
-
- PermissionStatus() : mInternal(INVALID_ENUM) {}
- PermissionStatus(PermissionStatusInternal e) : mInternal(e) {}
-
- PermissionStatusInternal get(void) const { return mInternal; }
- void set(PermissionStatusInternal e) { mInternal=e; }
-
- private:
- PermissionStatusInternal mInternal;
- friend class PermissionStatusMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PresetBankCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PresetBankCapabilities.h
deleted file mode 100644
index e03c772fd..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PresetBankCapabilities.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_PRESETBANKCAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_PRESETBANKCAPABILITIES_INCLUDE
-
-
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Contains information about on-screen preset capabilities.
-
- class PresetBankCapabilities
- {
- public:
-
- PresetBankCapabilities(const PresetBankCapabilities& c);
- PresetBankCapabilities(void);
-
- bool checkIntegrity(void);
- // getters
-
- bool get_onScreenPresetsAvailable(void) const;
-
-// setters
-
- bool set_onScreenPresetsAvailable(bool onScreenPresetsAvailable_);
-
- private:
-
- friend class PresetBankCapabilitiesMarshaller;
-
-
-/// Onscreen custom presets are available.
- bool onScreenPresetsAvailable;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PutFile_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PutFile_request.h
deleted file mode 100644
index 3e5894778..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PutFile_request.h
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_PUTFILE_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_PUTFILE_REQUEST_INCLUDE
-
-#include <string>
-
-#include "FileType.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Used to push a binary data onto the SYNC module from a mobile device, such as icons and album art
- Not supported on first generation SYNC vehicles.
-*/
-
- class PutFile_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- PutFile_request(const PutFile_request& c);
- PutFile_request(void);
-
- virtual ~PutFile_request(void);
-
- PutFile_request& operator =(const PutFile_request&);
-
- bool checkIntegrity(void);
-
- const std::string& get_syncFileName(void) const;
- const FileType& get_fileType(void) const;
- const bool* get_persistentFile(void) const;
- const std::string* get_fileData(void) const;
-
- bool set_syncFileName(const std::string& syncFileName_);
- bool set_fileType(const FileType& fileType_);
- void reset_persistentFile(void);
- bool set_persistentFile(bool persistentFile_);
- void reset_fileData(void);
- bool set_fileData(const std::string& fileData_);
-
- private:
-
- friend class PutFile_requestMarshaller;
-
-
-/// File reference name.
- std::string syncFileName; //!< (500)
-
-/// Selected file type.
- FileType fileType;
-
-/**
- Indicates if the file is meant to persist between sessions / ignition cycles.
- If set to TRUE, then the system will aim to persist this file through session / cycles.
- While files with this designation will have priority over others, they are subject to deletion by the system at any time.
- In the event of automatic deletion by the system, the app will receive a rejection and have to resend the file.
- If omitted, the value will be set to false.
-*/
- bool* persistentFile;
-
-/// Binary data.
- std::string* fileData;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PutFile_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PutFile_response.h
deleted file mode 100644
index 3f3750574..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/PutFile_response.h
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_PUTFILE_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_PUTFILE_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- /**
- Response is sent, when the file data was copied (success case). Or when an error occured.
- Not supported on First generation SYNC vehicles.
- */
-
- class PutFile_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- PutFile_response(const PutFile_response& c);
- PutFile_response(void);
-
- virtual ~PutFile_response(void);
-
- PutFile_response& operator =(const PutFile_response&);
-
- bool checkIntegrity(void);
-
- unsigned int get_spaceAvailable(void) const;
- bool set_spaceAvailable(unsigned int spaceAvailable_);
-
- private:
- friend class PutFile_responseMarshaller;
-
- /// Provides the total local space available on SYNC for the registered app.
- unsigned int spaceAvailable; //!< (0,2000000000)
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RPC.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RPC.h
deleted file mode 100644
index 77c7b73f5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RPC.h
+++ /dev/null
@@ -1,206 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_RPC_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_RPC_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "AppInterfaceUnregisteredReason.h"
-#include "AppType.h"
-#include "AudioCaptureQuality.h"
-#include "AudioStreamingState.h"
-#include "AudioType.h"
-#include "ButtonCapabilities.h"
-#include "ButtonEventMode.h"
-#include "ButtonName.h"
-#include "ButtonPressMode.h"
-#include "CharacterSet.h"
-#include "Choice.h"
-#include "CompassDirection.h"
-#include "DTC.h"
-#include "DeactivateReason.h"
-#include "Dimension.h"
-#include "DisplayCapabilities.h"
-#include "DisplayType.h"
-#include "DriverDistractionState.h"
-#include "FileType.h"
-#include "FunctionID.h"
-#include "GPSData.h"
-#include "GlobalProperty.h"
-#include "HMIApplication.h"
-#include "HMILevel.h"
-#include "HMIPermissions.h"
-#include "HmiZoneCapabilities.h"
-#include "Image.h"
-#include "ImageType.h"
-#include "InteractionMode.h"
-#include "Language.h"
-#include "MediaClockFormat.h"
-#include "MenuParams.h"
-#include "PRNDL.h"
-#include "ParameterPermissions.h"
-#include "PermissionItem.h"
-#include "PermissionStatus.h"
-#include "PresetBankCapabilities.h"
-#include "Result.h"
-#include "SamplingRate.h"
-#include "SingleTirePressureStatus.h"
-#include "SingleTireStatus.h"
-#include "SoftButton.h"
-#include "SoftButtonCapabilities.h"
-#include "SoftButtonType.h"
-#include "SpeechCapabilities.h"
-#include "StartTime.h"
-#include "SyncMsgVersion.h"
-#include "SystemAction.h"
-#include "SystemContext.h"
-#include "TBTState.h"
-#include "TTSChunk.h"
-#include "TextAlignment.h"
-#include "TextField.h"
-#include "TextFieldName.h"
-#include "TimerMode.h"
-#include "TirePressureTellTale.h"
-#include "TireStatus.h"
-#include "TriggerSource.h"
-#include "Turn.h"
-#include "UpdateMode.h"
-#include "VehicleDataResult.h"
-#include "VehicleDataResultCode.h"
-#include "VehicleDataType.h"
-#include "VehicleType.h"
-#include "VrCapabilities.h"
-#include "VrHelpItem.h"
-#include "messageType.h"
-#include "RegisterAppInterface_request.h"
-#include "RegisterAppInterface_response.h"
-#include "UnregisterAppInterface_request.h"
-#include "UnregisterAppInterface_response.h"
-#include "SetGlobalProperties_request.h"
-#include "SetGlobalProperties_response.h"
-#include "ResetGlobalProperties_request.h"
-#include "ResetGlobalProperties_response.h"
-#include "AddCommand_request.h"
-#include "AddCommand_response.h"
-#include "DeleteCommand_request.h"
-#include "DeleteCommand_response.h"
-#include "AddSubMenu_request.h"
-#include "AddSubMenu_response.h"
-#include "DeleteSubMenu_request.h"
-#include "DeleteSubMenu_response.h"
-#include "CreateInteractionChoiceSet_request.h"
-#include "CreateInteractionChoiceSet_response.h"
-#include "PerformInteraction_request.h"
-#include "PerformInteraction_response.h"
-#include "DeleteInteractionChoiceSet_request.h"
-#include "DeleteInteractionChoiceSet_response.h"
-#include "Alert_request.h"
-#include "Alert_response.h"
-#include "Show_request.h"
-#include "Show_response.h"
-#include "Speak_request.h"
-#include "Speak_response.h"
-#include "SetMediaClockTimer_request.h"
-#include "SetMediaClockTimer_response.h"
-#include "EncodedSyncPData_request.h"
-#include "EncodedSyncPData_response.h"
-#include "DialNumber_request.h"
-#include "DialNumber_response.h"
-#include "PerformAudioPassThru_request.h"
-#include "PerformAudioPassThru_response.h"
-#include "EndAudioPassThru_request.h"
-#include "EndAudioPassThru_response.h"
-#include "SubscribeButton_request.h"
-#include "SubscribeButton_response.h"
-#include "UnsubscribeButton_request.h"
-#include "UnsubscribeButton_response.h"
-#include "SubscribeVehicleData_request.h"
-#include "SubscribeVehicleData_response.h"
-#include "UnsubscribeVehicleData_request.h"
-#include "UnsubscribeVehicleData_response.h"
-#include "GetVehicleData_request.h"
-#include "GetVehicleData_response.h"
-#include "ReadDID_request.h"
-#include "ReadDID_response.h"
-#include "GetDTCs_request.h"
-#include "GetDTCs_response.h"
-#include "ScrollableMessage_request.h"
-#include "ScrollableMessage_response.h"
-#include "Slider_request.h"
-#include "Slider_response.h"
-#include "ShowConstantTBT_request.h"
-#include "ShowConstantTBT_response.h"
-#include "AlertManeuver_request.h"
-#include "AlertManeuver_response.h"
-#include "UpdateTurnList_request.h"
-#include "UpdateTurnList_response.h"
-#include "ChangeRegistration_request.h"
-#include "ChangeRegistration_response.h"
-#include "GenericResponse_response.h"
-#include "PutFile_request.h"
-#include "PutFile_response.h"
-#include "DeleteFile_request.h"
-#include "DeleteFile_response.h"
-#include "ListFiles_request.h"
-#include "ListFiles_response.h"
-#include "SetAppIcon_request.h"
-#include "SetAppIcon_response.h"
-#include "SetDisplayLayout_request.h"
-#include "SetDisplayLayout_response.h"
-#include "OnHMIStatus.h"
-#include "OnAppInterfaceUnregistered.h"
-#include "OnButtonEvent.h"
-#include "OnButtonPress.h"
-#include "OnVehicleData.h"
-#include "OnCommand.h"
-#include "OnEncodedSyncPData.h"
-#include "OnTBTClientState.h"
-#include "OnDriverDistraction.h"
-#include "OnPermissionsChange.h"
-#include "OnAudioPassThru.h"
-#include "OnLanguageChange.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ReadDID_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ReadDID_request.h
deleted file mode 100644
index 3ef61d928..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ReadDID_request.h
+++ /dev/null
@@ -1,98 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_READDID_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_READDID_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Non periodic vehicle data read request.
-
- class ReadDID_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- ReadDID_request(const ReadDID_request& c);
- ReadDID_request(void);
-
- virtual ~ReadDID_request(void);
-
- ReadDID_request& operator =(const ReadDID_request&);
-
- bool checkIntegrity(void);
-
- unsigned int get_ecuName(void) const;
- const std::vector<unsigned int>& get_didLocation(void) const;
- const bool* get_encrypted(void) const;
-
- bool set_ecuName(unsigned int ecuName_);
- bool set_didLocation(const std::vector<unsigned int>& didLocation_);
- void reset_encrypted(void);
- bool set_encrypted(bool encrypted_);
-
- private:
-
- friend class ReadDID_requestMarshaller;
-
-
-/// Name of ECU.
- unsigned int ecuName; //!< (0,65535)
-
-/// Get raw data from vehicle data DID location(s).
- std::vector<unsigned int> didLocation; //!< [%s..%s] (0,65535)
-
-/**
- If not provided, the default is equal to False"
- Indicates if the DID data requested should be returned as encrypted through an OnEncodedSYNCPData response.
- If set to true, the data will return instead through OnEncodedSYNCPData and be passed through the proxy to the designated server URL.
-*/
- bool* encrypted;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ReadDID_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ReadDID_response.h
deleted file mode 100644
index db7dc33f6..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ReadDID_response.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_READDID_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_READDID_RESPONSE_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "VehicleDataResultCode.h"
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class ReadDID_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- ReadDID_response(const ReadDID_response& c);
- ReadDID_response(void);
-
- virtual ~ReadDID_response(void);
-
- ReadDID_response& operator =(const ReadDID_response&);
-
- bool checkIntegrity(void);
-
- const std::vector<VehicleDataResultCode>* get_dataResult(void) const;
- const std::vector<std::string>* get_data(void) const;
-
- void reset_dataResult(void);
- bool set_dataResult(const std::vector<VehicleDataResultCode>& dataResult_);
- void reset_data(void);
- bool set_data(const std::vector<std::string>& data_);
-
- private:
- friend class ReadDID_responseMarshaller;
-
- /// Permission status of data element.
- std::vector<VehicleDataResultCode>* dataResult; //!< [%s..%s]
-
- /// Raw DID-based data returned for requested element.
- std::vector<std::string>* data; //!< [%s..%s] (5000)
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_request.h
deleted file mode 100644
index 931b5f2dc..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_request.h
+++ /dev/null
@@ -1,180 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_REGISTERAPPINTERFACE_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_REGISTERAPPINTERFACE_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "AppType.h"
-#include "Language.h"
-#include "SyncMsgVersion.h"
-#include "TTSChunk.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Establishes an interface with a mobile application.
- Before registerAppInterface no other commands will be accepted/executed.
-*/
-
- class RegisterAppInterface_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- RegisterAppInterface_request(const RegisterAppInterface_request& c);
- RegisterAppInterface_request(void);
-
- virtual ~RegisterAppInterface_request(void);
-
- RegisterAppInterface_request& operator =(const RegisterAppInterface_request&);
-
- bool checkIntegrity(void);
-
- const SyncMsgVersion& get_syncMsgVersion(void) const;
- const std::string& get_appName(void) const;
- const std::vector<TTSChunk>* get_ttsName(void) const;
- const std::string* get_ngnMediaScreenAppName(void) const;
- const std::vector<std::string>* get_vrSynonyms(void) const;
- bool get_isMediaApplication(void) const;
- const Language& get_languageDesired(void) const;
- const Language& get_hmiDisplayLanguageDesired(void) const;
- const std::vector<AppType>* get_appType(void) const;
- const std::string& get_appID(void) const;
-
- bool set_syncMsgVersion(const SyncMsgVersion& syncMsgVersion_);
- bool set_appName(const std::string& appName_);
- void reset_ttsName(void);
- bool set_ttsName(const std::vector<TTSChunk>& ttsName_);
- void reset_ngnMediaScreenAppName(void);
- bool set_ngnMediaScreenAppName(const std::string& ngnMediaScreenAppName_);
- void reset_vrSynonyms(void);
- bool set_vrSynonyms(const std::vector<std::string>& vrSynonyms_);
- bool set_isMediaApplication(bool isMediaApplication_);
- bool set_languageDesired(const Language& languageDesired_);
- bool set_hmiDisplayLanguageDesired(const Language& hmiDisplayLanguageDesired_);
- void reset_appType(void);
- bool set_appType(const std::vector<AppType>& appType_);
- bool set_appID(const std::string& appID_);
-
- private:
-
- friend class RegisterAppInterface_requestMarshaller;
-
-
-/// See SyncMsgVersion
- SyncMsgVersion syncMsgVersion;
-
-/**
- The mobile application name, e.g. "Ford Drive Green".
- Needs to be unique over all applications.
- May not be empty.
- May not start with a new line character.
- May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)
- Needs to be unique over all applications. Applications with the same name will be rejected.
- Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.
-*/
- std::string appName; //!< (100)
-
-/**
- TTS string for VR recognition of the mobile application name, e.g. "Ford Drive Green".
- Meant to overcome any failing on speech engine in properly pronouncing / understanding app name.
- Needs to be unique over all applications.
- May not be empty.
- May not start with a new line character.
- May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)
- Needs to be unique over all applications. Applications with the same name will be rejected.
- Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.
-*/
- std::vector<TTSChunk>* ttsName; //!< [%s..%s]
-
-/**
- Provides an abbreviated version of the app name (if needed), that will be displayed on the NGN media screen.
- If not provided, the appName is used instead (and will be truncated if too long)
- Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.
-*/
- std::string* ngnMediaScreenAppName; //!< (100)
-
-/**
- Defines an additional voice recognition command.
- May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)
- Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.
-*/
- std::vector<std::string>* vrSynonyms; //!< [%s..%s] (40)
-
-/**
- Indicates if the application is a media or a non-media application.
- Only media applications will be able to stream audio to Sync that is audible outside of the BT media source.
-*/
- bool isMediaApplication;
-
-/**
- See Language
- Current app’s expected VR+TTS language
- If there is a mismatch with SYNC, the app will be able to change this registration with changeRegistration prior to app being brought into focus.
-*/
- Language languageDesired;
-
-/**
- See Language
- Current app’s expected display language
- If there is a mismatch with SYNC, the app will be able to change this registration with changeRegistration prior to app being brought into focus.
-*/
- Language hmiDisplayLanguageDesired;
-
-/**
- See AppType
- List of all applicable app types stating which classifications to be given to the app.
- e.g. for platforms like GEN2, this will determine which "corner(s)" the app can populate.
-*/
- std::vector<AppType>* appType; //!< [%s..%s]
-
-/// ID used to validate app with policy table entries
- std::string appID; //!< (100)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_response.h
deleted file mode 100644
index a2d310528..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_response.h
+++ /dev/null
@@ -1,154 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_REGISTERAPPINTERFACE_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_REGISTERAPPINTERFACE_RESPONSE_INCLUDE
-
-#include <vector>
-
-#include "ButtonCapabilities.h"
-#include "DisplayCapabilities.h"
-#include "HmiZoneCapabilities.h"
-#include "Language.h"
-#include "PresetBankCapabilities.h"
-#include "SoftButtonCapabilities.h"
-#include "SpeechCapabilities.h"
-#include "SyncMsgVersion.h"
-#include "VehicleType.h"
-#include "VrCapabilities.h"
-#include "JSONHandler/SDLRPCResponse.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- /// The response to registerAppInterface
- class RegisterAppInterface_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- RegisterAppInterface_response(const RegisterAppInterface_response& c);
- RegisterAppInterface_response(void);
-
- virtual ~RegisterAppInterface_response(void);
-
- RegisterAppInterface_response& operator =(const RegisterAppInterface_response&);
-
- bool checkIntegrity(void);
-
- const SyncMsgVersion* get_syncMsgVersion(void) const;
- const Language* get_language(void) const;
- const Language* get_hmiDisplayLanguage(void) const;
- const DisplayCapabilities* get_displayCapabilities(void) const;
- const std::vector<ButtonCapabilities>* get_buttonCapabilities(void) const;
- const std::vector<SoftButtonCapabilities>* get_softButtonCapabilities(void) const;
- const PresetBankCapabilities* get_presetBankCapabilities(void) const;
- const std::vector<HmiZoneCapabilities>* get_hmiZoneCapabilities(void) const;
- const std::vector<SpeechCapabilities>* get_speechCapabilities(void) const;
- const std::vector<VrCapabilities>* get_vrCapabilities(void) const;
- const VehicleType* get_vehicleType(void) const;
-
- void reset_syncMsgVersion(void);
- bool set_syncMsgVersion(const SyncMsgVersion& syncMsgVersion_);
- void reset_language(void);
- bool set_language(const Language& language_);
- void reset_hmiDisplayLanguage(void);
- bool set_hmiDisplayLanguage(const Language& hmiDisplayLanguage_);
- void reset_displayCapabilities(void);
- bool set_displayCapabilities(const DisplayCapabilities& displayCapabilities_);
- void reset_buttonCapabilities(void);
- bool set_buttonCapabilities(const std::vector<ButtonCapabilities>& buttonCapabilities_);
- void reset_softButtonCapabilities(void);
- bool set_softButtonCapabilities(const std::vector<SoftButtonCapabilities>& softButtonCapabilities_);
- void reset_presetBankCapabilities(void);
- bool set_presetBankCapabilities(const PresetBankCapabilities& presetBankCapabilities_);
- void reset_hmiZoneCapabilities(void);
- bool set_hmiZoneCapabilities(const std::vector<HmiZoneCapabilities>& hmiZoneCapabilities_);
- void reset_speechCapabilities(void);
- bool set_speechCapabilities(const std::vector<SpeechCapabilities>& speechCapabilities_);
- void reset_vrCapabilities(void);
- bool set_vrCapabilities(const std::vector<VrCapabilities>& vrCapabilities_);
- void reset_vehicleType(void);
- bool set_vehicleType(const VehicleType& vehicleType_);
-
- private:
- friend class RegisterAppInterface_responseMarshaller;
-
- /// See SyncMsgVersion
- SyncMsgVersion* syncMsgVersion;
-
- /// The currently active VR+TTS language on Sync. See "Language" for options.
- Language* language;
-
- /// The currently active display language on Sync. See "Language" for options.
- Language* hmiDisplayLanguage;
-
- /// See DisplayCapabilities
- DisplayCapabilities* displayCapabilities;
-
- /// See ButtonCapabilities
- std::vector<ButtonCapabilities>* buttonCapabilities; //!< [%s..%s]
-
- /**
- If returned, the platform supports on-screen SoftButtons.
- See SoftButtonCapabilities
- */
- std::vector<SoftButtonCapabilities>* softButtonCapabilities; //!< [%s..%s]
-
- /**
- If returned, the platform supports custom on-screen Presets.
- See PresetBankCapabilities
- */
- PresetBankCapabilities* presetBankCapabilities;
-
- /// See HmiZoneCapabilities
- std::vector<HmiZoneCapabilities>* hmiZoneCapabilities; //!< [%s..%s]
-
- /// See SpeechCapabilities
- std::vector<SpeechCapabilities>* speechCapabilities; //!< [%s..%s]
-
- /// See VrCapabilities
- std::vector<VrCapabilities>* vrCapabilities; //!< [%s..%s]
-
- /// Specifies the vehicle's type. See VehicleType.
- VehicleType* vehicleType;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_request.h
deleted file mode 100644
index 5e42e66c4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_request.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_RESETGLOBALPROPERTIES_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_RESETGLOBALPROPERTIES_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "GlobalProperty.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Allows resetting global properties.
-
- class ResetGlobalProperties_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- ResetGlobalProperties_request(const ResetGlobalProperties_request& c);
- ResetGlobalProperties_request(void);
-
- virtual ~ResetGlobalProperties_request(void);
-
- bool checkIntegrity(void);
-
- const std::vector<GlobalProperty>& get_properties(void) const;
-
- bool set_properties(const std::vector<GlobalProperty>& properties_);
-
- private:
-
- friend class ResetGlobalProperties_requestMarshaller;
-
-
-/// Contains the names of all global properties (like timeoutPrompt) that should be unset. Resetting means, that they have the same value as at start up (default)
- std::vector<GlobalProperty> properties; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_response.h
deleted file mode 100644
index a38d6d262..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_RESETGLOBALPROPERTIES_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_RESETGLOBALPROPERTIES_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class ResetGlobalProperties_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- ResetGlobalProperties_response(const ResetGlobalProperties_response& c);
- ResetGlobalProperties_response(void);
-
- virtual ~ResetGlobalProperties_response(void);
-
- ResetGlobalProperties_response& operator =(const ResetGlobalProperties_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class ResetGlobalProperties_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Result.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Result.h
deleted file mode 100644
index 2f2f2e8b9..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Result.h
+++ /dev/null
@@ -1,201 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_RESULT_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_RESULT_INCLUDE
-
-namespace NsSmartDeviceLinkRPC
-{
- class Result;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class Result
- {
- public:
- enum ResultInternal
- {
- INVALID_ENUM = -1,
-
- /// The request succeeded
- SUCCESS = 0,
-
- /**
- The data sent is invalid. For example
- Invalid Json syntax
- Parameters out of bounds (number or enum range)
- Mandatory parameters not provided
- Parameter provided with wrong type
- Invalid characters
- Empty string
- */
- INVALID_DATA = 1,
-
- /// The request is not supported by Sync
- UNSUPPORTED_REQUEST = 2,
-
- /// The system could not process the request because the necessary memory couldn't be allocated
- OUT_OF_MEMORY = 3,
-
- /// There are too many requests pending (means, that the response has not been delivered, yet).
- TOO_MANY_PENDING_REQUESTS = 4,
-
- /**
- One of the provided IDs is not valid. For example
- This applies to CorrelationID, SubscriptionID [@TODO if SubscriptionID is used], CommandID, MenuID, [@TODO: missed one?]
- */
- INVALID_ID = 5,
-
- /// There was a conflict with an registered name (application or menu item) or vr command
- DUPLICATE_NAME = 6,
-
- /// There are already too many registered applications
- TOO_MANY_APPLICATIONS = 7,
-
- /// RegisterApplication has been called again, after a RegisterApplication was successful before.
- APPLICATION_REGISTERED_ALREADY = 8,
-
- /// Sync doesn't support the protocol that is requested by the mobile application
- UNSUPPORTED_VERSION = 9,
-
- /**
- The requested language is currently not supported.
- Might be because of a mismatch of the currently active language on Sync and the requested language
- */
- WRONG_LANGUAGE = 10,
-
- /// An command can not be executed because no application has been registered with RegisterApplication.
- APPLICATION_NOT_REGISTERED = 11,
-
- /**
- The data may not be changed, because it is currently in use.
- For example when trying to delete a command set that is currently involved in an interaction.
- */
- IN_USE = 12,
-
- /// The item to subscribe to is already subscribed to.
- SUBSCRIBED_ALREADY = 13,
-
- /**
- The requested command was rejected, e.g. because mobile app is in background and cannot perform any HMI commands.
- Or an HMI command (e.g. Speak) is rejected because a higher priority HMI command (e.g. Alert) is playing.
- */
- REJECTED = 14,
-
- /**
- A command was aborted, for example due to user interaction (e.g. user pressed button).
- Or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested.
- */
- ABORTED = 15,
-
- /**
- A command was ignored, because the intended result is already in effect.
- For example, SetMediaClockTimer was used to pause the media clock although the clock is paused already.
- NOTE: potentially replaces SUBSCRIBED_ALREADY
- */
- IGNORED = 16,
-
- /**
- A button that was requested for subscription is not supported under the current system.
- NOTE: could become a more generic UNSUPPORTED_RESOURCE by merging with VEHIVLE_DATA_NOT_AVAILABLE.
- */
- UNSUPPORTED_BUTTON = 17,
-
- /// A specified file could not be found on Sync.
- FILE_NOT_FOUND = 18,
-
- /// Provided data is valid but something went wrong in the lower layers.
- GENERIC_ERROR = 19,
-
- /// The user has turned off access to vehicle data, and it is globally unavailable to mobile applications.
- VEHICLE_DATA_NOT_ALLOWED = 20,
-
- /// The requested vehicle data is not available on this vehicle or is not published.
- VEHICLE_DATA_NOT_AVAILABLE = 21,
-
- /// RPC is not authorized in local policy table.
- DISALLOWED = 22,
-
- /// RPC is included in a functional group explicitly blocked by the user.
- USER_DISALLOWED = 23,
-
- /// Overlay reached the maximum timeout and closed.
- TIMED_OUT = 24,
-
- /// User selected to Cancel Route.
- CANCEL_ROUTE = 25,
-
- /// User chose a Close command for the overlay.
- CLOSED = 26,
-
- /**
- The data is being returned through an OnEncodedSYNCPData notification.
- The data is intended to be passed by the proxy to the designated server URL.
- */
- ENCRYPTED = 27,
-
- /// The RPC (e.g. SubscribeVehicleData) executed successfully but one or more items have a warning or failure.
- WARNINGS = 28,
-
- RETRY = 29 // PerformAudioPassThru
- };
-
- Result();
- Result(ResultInternal e);
- Result(const Result& r);
-
- ResultInternal get(void) const;
- void set(ResultInternal e);
-
- // TODO(AK): remove this after new code generation
- operator NsSmartDeviceLinkRPC::Result();
- Result& operator= (const Result& result);
-
- private:
- ResultInternal mInternal;
- friend class ResultMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SamplingRate.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SamplingRate.h
deleted file mode 100644
index e01cd2891..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SamplingRate.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SAMPLINGRATE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SAMPLINGRATE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Describes different sampling options for PerformAudioPassThru.
-
- class SamplingRate
- {
- public:
- enum SamplingRateInternal
- {
- INVALID_ENUM=-1,
- FIX_8KHZ=0,
- FIX_16KHZ=1,
- FIX_22KHZ=2,
- FIX_44KHZ=3
- };
-
- SamplingRate() : mInternal(INVALID_ENUM) {}
- SamplingRate(SamplingRateInternal e) : mInternal(e) {}
-
- SamplingRateInternal get(void) const { return mInternal; }
- void set(SamplingRateInternal e) { mInternal=e; }
-
- private:
- SamplingRateInternal mInternal;
- friend class SamplingRateMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_request.h
deleted file mode 100644
index b2b33f80f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_request.h
+++ /dev/null
@@ -1,100 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SCROLLABLEMESSAGE_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SCROLLABLEMESSAGE_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "SoftButton.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Creates a full screen overlay containing a large block of formatted text that can be scrolled with up to 8 SoftButtons defined
-
- class ScrollableMessage_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- ScrollableMessage_request(const ScrollableMessage_request& c);
- ScrollableMessage_request(void);
-
- virtual ~ScrollableMessage_request(void);
-
- ScrollableMessage_request& operator =(const ScrollableMessage_request&);
-
- bool checkIntegrity(void);
-
- const std::string& get_scrollableMessageBody(void) const;
- const unsigned int* get_timeout(void) const;
- const std::vector<SoftButton>* get_softButtons(void) const;
-
- bool set_scrollableMessageBody(const std::string& scrollableMessageBody_);
- void reset_timeout(void);
- bool set_timeout(unsigned int timeout_);
- void reset_softButtons(void);
- bool set_softButtons(const std::vector<SoftButton>& softButtons_);
-
- private:
-
- friend class ScrollableMessage_requestMarshaller;
-
-
-/// Body of text that can include newlines and tabs.
- std::string scrollableMessageBody; //!< (500)
-
-/// App defined timeout.
- unsigned int* timeout; //!< (0,65535)
-
-/**
- App defined SoftButtons.
- If omitted on supported displays, only the system defined "Close" SoftButton will be displayed.
-*/
- std::vector<SoftButton>* softButtons; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_response.h
deleted file mode 100644
index 643be3761..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SCROLLABLEMESSAGE_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SCROLLABLEMESSAGE_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class ScrollableMessage_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- ScrollableMessage_response(const ScrollableMessage_response& c);
- ScrollableMessage_response(void);
-
- virtual ~ScrollableMessage_response(void);
-
- ScrollableMessage_response& operator =(const ScrollableMessage_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class ScrollableMessage_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_request.h
deleted file mode 100644
index c1838018f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_request.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SETAPPICON_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SETAPPICON_REQUEST_INCLUDE
-
-#include <string>
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Used to set existing local file on SYNC as the app's icon
- Not supported on first generation SYNC vehicles.
-*/
-
- class SetAppIcon_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- SetAppIcon_request(const SetAppIcon_request& c);
- SetAppIcon_request(void);
-
- virtual ~SetAppIcon_request(void);
-
- bool checkIntegrity(void);
-
- const std::string& get_syncFileName(void) const;
-
- bool set_syncFileName(const std::string& syncFileName_);
-
- private:
-
- friend class SetAppIcon_requestMarshaller;
-
-
-/// File reference name.
- std::string syncFileName; //!< (500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_response.h
deleted file mode 100644
index a31c4705a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_response.h
+++ /dev/null
@@ -1,72 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SETAPPICON_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SETAPPICON_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- /**
- Response is sent, when the file data was copied (success case). Or when an error occured.
- Not supported on First generation SYNC vehicles.
- Response is sent, when the file data was copied (success case). Or when an error occured.
- Not supported on First generation SYNC vehicles.
- */
- class SetAppIcon_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- SetAppIcon_response(const SetAppIcon_response& c);
- SetAppIcon_response(void);
-
- virtual ~SetAppIcon_response(void);
-
- SetAppIcon_response& operator =(const SetAppIcon_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class SetAppIcon_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_request.h
deleted file mode 100644
index 2fbb4190a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_request.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SETDISPLAYLAYOUT_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SETDISPLAYLAYOUT_REQUEST_INCLUDE
-
-#include <string>
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Used to set an alternate display layout.
- If not sent, default screen for given platform will be shown.
-*/
-
- class SetDisplayLayout_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- SetDisplayLayout_request(const SetDisplayLayout_request& c);
- SetDisplayLayout_request(void);
-
- virtual ~SetDisplayLayout_request(void);
-
- bool checkIntegrity(void);
-
- const std::string& get_displayLayout(void) const;
-
- bool set_displayLayout(const std::string& displayLayout_);
-
- private:
-
- friend class SetDisplayLayout_requestMarshaller;
-
-
-/**
- Predefined or dynamically created screen layout.
- Currently only predefined screen layouts are defined.
- Predefined layouts include:
- "ONSCREEN_PRESETS"
- Custom screen containing app-defined onscreen presets. Currently defined for GEN2.
-*/
- std::string displayLayout;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_response.h
deleted file mode 100644
index 137687cc5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SETDISPLAYLAYOUT_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SETDISPLAYLAYOUT_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class SetDisplayLayout_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- SetDisplayLayout_response(const SetDisplayLayout_response& c);
- SetDisplayLayout_response(void);
-
- virtual ~SetDisplayLayout_response(void);
-
- SetDisplayLayout_response& operator =(const SetDisplayLayout_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class SetDisplayLayout_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_request.h
deleted file mode 100644
index bf87ef030..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_request.h
+++ /dev/null
@@ -1,120 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SETGLOBALPROPERTIES_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SETGLOBALPROPERTIES_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "TTSChunk.h"
-#include "VrHelpItem.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Allows setting global properties.
-
- class SetGlobalProperties_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- SetGlobalProperties_request(const SetGlobalProperties_request& c);
- SetGlobalProperties_request(void);
-
- virtual ~SetGlobalProperties_request(void);
-
- SetGlobalProperties_request& operator =(const SetGlobalProperties_request&);
-
- bool checkIntegrity(void);
-
- const std::vector<TTSChunk>* get_helpPrompt(void) const;
- const std::vector<TTSChunk>* get_timeoutPrompt(void) const;
- const std::string* get_vrHelpTitle(void) const;
- const std::vector<VrHelpItem>* get_vrHelp(void) const;
-
- void reset_helpPrompt(void);
- bool set_helpPrompt(const std::vector<TTSChunk>& helpPrompt_);
- void reset_timeoutPrompt(void);
- bool set_timeoutPrompt(const std::vector<TTSChunk>& timeoutPrompt_);
- void reset_vrHelpTitle(void);
- bool set_vrHelpTitle(const std::string& vrHelpTitle_);
- void reset_vrHelp(void);
- bool set_vrHelp(const std::vector<VrHelpItem>& vrHelp_);
-
- private:
-
- friend class SetGlobalProperties_requestMarshaller;
-
-
-/**
- The help prompt.
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk>* helpPrompt; //!< [%s..%s]
-
-/**
- Help text for a wait timeout.
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk>* timeoutPrompt; //!< [%s..%s]
-
-/**
- VR Help Title text.
- If omitted on supported displays, the default SYNC help title shall be used.
-*/
- std::string* vrHelpTitle; //!< (500)
-
-/**
- VR Help Items.
- If omitted on supported displays, the default SYNC generated help items shall be used.
- If the list of VR Help Items contains nonsequential positions (e.g. [1,2,4]), the RPC shall be rejected.
-*/
- std::vector<VrHelpItem>* vrHelp; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_response.h
deleted file mode 100644
index fcaafff97..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SETGLOBALPROPERTIES_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SETGLOBALPROPERTIES_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class SetGlobalProperties_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- SetGlobalProperties_response(const SetGlobalProperties_response& c);
- SetGlobalProperties_response(void);
-
- virtual ~SetGlobalProperties_response(void);
-
- SetGlobalProperties_response& operator =(const SetGlobalProperties_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class SetGlobalProperties_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_request.h
deleted file mode 100644
index 4f126a4f8..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_request.h
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SETMEDIACLOCKTIMER_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SETMEDIACLOCKTIMER_REQUEST_INCLUDE
-
-
-#include "StartTime.h"
-#include "UpdateMode.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Sets the initial media clock value and automatic update method.
-
- class SetMediaClockTimer_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- SetMediaClockTimer_request(const SetMediaClockTimer_request& c);
- SetMediaClockTimer_request(void);
-
- virtual ~SetMediaClockTimer_request(void);
-
- SetMediaClockTimer_request& operator =(const SetMediaClockTimer_request&);
-
- bool checkIntegrity(void);
-
- const StartTime* get_startTime(void) const;
- const UpdateMode& get_updateMode(void) const;
-
- void reset_startTime(void);
- bool set_startTime(const StartTime& startTime_);
- bool set_updateMode(const UpdateMode& updateMode_);
-
- private:
-
- friend class SetMediaClockTimer_requestMarshaller;
-
-
-/**
- See StartTime
- startTime must be provided for "COUNTUP" and "COUNTDOWN"
- startTime will be ignored for "PAUSE", "RESUME", and "CLEAR"
-*/
- StartTime* startTime;
-
-/**
- Enumeration to control the media clock.
- In case of pause, resume, or clear, the start time value is ignored and shall be left out. For resume, the time continues with the same value as it was when paused.
-*/
- UpdateMode updateMode;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_response.h
deleted file mode 100644
index 9058c2a56..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SETMEDIACLOCKTIMER_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SETMEDIACLOCKTIMER_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class SetMediaClockTimer_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- SetMediaClockTimer_response(const SetMediaClockTimer_response& c);
- SetMediaClockTimer_response(void);
-
- virtual ~SetMediaClockTimer_response(void);
-
- SetMediaClockTimer_response& operator =(const SetMediaClockTimer_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class SetMediaClockTimer_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_request.h
deleted file mode 100644
index 6ac2e6961..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_request.h
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SHOWCONSTANTTBT_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SHOWCONSTANTTBT_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "Image.h"
-#include "SoftButton.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class ShowConstantTBT_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- ShowConstantTBT_request(const ShowConstantTBT_request& c);
- ShowConstantTBT_request(void);
-
- virtual ~ShowConstantTBT_request(void);
-
- ShowConstantTBT_request& operator =(const ShowConstantTBT_request&);
-
- bool checkIntegrity(void);
-
- const std::string* get_navigationText1(void) const;
- const std::string* get_navigationText2(void) const;
- const std::string* get_eta(void) const;
- const std::string* get_totalDistance(void) const;
- const Image& get_turnIcon(void) const;
- float get_distanceToManeuver(void) const;
- float get_distanceToManeuverScale(void) const;
- const bool* get_maneuverComplete(void) const;
- const std::vector<SoftButton>& get_softButtons(void) const;
-
- void reset_navigationText1(void);
- bool set_navigationText1(const std::string& navigationText1_);
- void reset_navigationText2(void);
- bool set_navigationText2(const std::string& navigationText2_);
- void reset_eta(void);
- bool set_eta(const std::string& eta_);
- void reset_totalDistance(void);
- bool set_totalDistance(const std::string& totalDistance_);
- bool set_turnIcon(const Image& turnIcon_);
- bool set_distanceToManeuver(float distanceToManeuver_);
- bool set_distanceToManeuverScale(float distanceToManeuverScale_);
- void reset_maneuverComplete(void);
- bool set_maneuverComplete(bool maneuverComplete_);
- bool set_softButtons(const std::vector<SoftButton>& softButtons_);
-
- private:
-
- friend class ShowConstantTBT_requestMarshaller;
-
- std::string* navigationText1; //!< (500)
- std::string* navigationText2; //!< (500)
- std::string* eta; //!< (500)
- std::string* totalDistance; //!< (500)
- Image turnIcon;
-
-/**
- Distance till next maneuver (starting from) from previous maneuver.
- Used to calculate progress bar.
-*/
- float distanceToManeuver; //!< (0,1000000000)
-
-/**
- Fraction of distance till next maneuver (starting from when AlertManeuver is triggered).
- Used to calculate progress bar.
-*/
- float distanceToManeuverScale; //!< (0,1000000000)
-
-/**
- If and when a maneuver has completed while an AlertManeuver is active, the app must send this value set to TRUE in order to clear the AlertManeuver overlay.
- If omitted the value will be assumed as FALSE.
-*/
- bool* maneuverComplete;
-
-/**
- Three dynamic SoftButtons available (second SoftButton is fixed to "Turns").
- If omitted on supported displays, the currently displayed SoftButton values will not change.
-*/
- std::vector<SoftButton> softButtons; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_response.h
deleted file mode 100644
index eb9b342ed..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SHOWCONSTANTTBT_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SHOWCONSTANTTBT_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class ShowConstantTBT_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- ShowConstantTBT_response(const ShowConstantTBT_response& c);
- ShowConstantTBT_response(void);
-
- virtual ~ShowConstantTBT_response(void);
-
- ShowConstantTBT_response& operator =(const ShowConstantTBT_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class ShowConstantTBT_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Show_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Show_request.h
deleted file mode 100644
index 2126485e0..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Show_request.h
+++ /dev/null
@@ -1,184 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SHOW_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SHOW_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "Image.h"
-#include "SoftButton.h"
-#include "TextAlignment.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Updates the persistent display. Supported fields depend on display capabilities.
-
- class Show_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- Show_request(const Show_request& c);
- Show_request(void);
-
- virtual ~Show_request(void);
-
- Show_request& operator =(const Show_request&);
-
- bool checkIntegrity(void);
-
- const std::string* get_mainField1(void) const;
- const std::string* get_mainField2(void) const;
- const std::string* get_mainField3(void) const;
- const std::string* get_mainField4(void) const;
- const TextAlignment* get_alignment(void) const;
- const std::string* get_statusBar(void) const;
- const std::string* get_mediaClock(void) const;
- const std::string* get_mediaTrack(void) const;
- const Image* get_graphic(void) const;
- const std::vector<SoftButton>* get_softButtons(void) const;
- const std::vector<std::string>* get_customPresets(void) const;
-
- void reset_mainField1(void);
- bool set_mainField1(const std::string& mainField1_);
- void reset_mainField2(void);
- bool set_mainField2(const std::string& mainField2_);
- void reset_mainField3(void);
- bool set_mainField3(const std::string& mainField3_);
- void reset_mainField4(void);
- bool set_mainField4(const std::string& mainField4_);
- void reset_alignment(void);
- bool set_alignment(const TextAlignment& alignment_);
- void reset_statusBar(void);
- bool set_statusBar(const std::string& statusBar_);
- void reset_mediaClock(void);
- bool set_mediaClock(const std::string& mediaClock_);
- void reset_mediaTrack(void);
- bool set_mediaTrack(const std::string& mediaTrack_);
- void reset_graphic(void);
- bool set_graphic(const Image& graphic_);
- void reset_softButtons(void);
- bool set_softButtons(const std::vector<SoftButton>& softButtons_);
- void reset_customPresets(void);
- bool set_customPresets(const std::vector<std::string>& customPresets_);
-
- private:
-
- friend class Show_requestMarshaller;
-
-
-/**
- The text that should be displayed in a single or upper display line.
- If this text is not set, the text of mainField1 stays unchanged.
- If this text is empty "", the field will be cleared.
-*/
- std::string* mainField1; //!< (500)
-
-/**
- The text that should be displayed on the second display line.
- If this text is not set, the text of mainField2 stays unchanged.
- If this text is empty "", the field will be cleared.
-*/
- std::string* mainField2; //!< (500)
-
-/**
- The text that should be displayed on the second "page" first display line.
- If this text is not set, the text of mainField3 stays unchanged.
- If this text is empty "", the field will be cleared.
-*/
- std::string* mainField3; //!< (500)
-
-/**
- The text that should be displayed on the second "page" second display line.
- If this text is not set, the text of mainField4 stays unchanged.
- If this text is empty "", the field will be cleared.
-*/
- std::string* mainField4; //!< (500)
-
-/**
- Specifies how mainField1 and mainField2 texts should be aligned on display.
- If omitted, texts will be centered
-*/
- TextAlignment* alignment;
-
-/// Requires investigation regarding the nav display capabilities. Potentially lower lowerStatusBar, upperStatusBar, titleBar, etc.
- std::string* statusBar; //!< (500)
-
-/**
- Text value for MediaClock field. Has to be properly formatted by Mobile App according to Sync capabilities.
- If this text is set, any automatic media clock updates previously set with SetMediaClockTimer will be stopped.
-*/
- std::string* mediaClock; //!< (500)
-
-/**
- The text that should be displayed in the track field.
- This field is only valid for media applications on NGN type ACMs.
- If this text is not set, the text of mediaTrack stays unchanged.
- If this text is empty "", the field will be cleared.
-*/
- std::string* mediaTrack; //!< (500)
-
-/**
- Image struct determining whether static or dynamic image to display in app.
- If omitted on supported displays, the displayed graphic shall not change.
-*/
- Image* graphic;
-
-/**
- App defined SoftButtons.
- If omitted on supported displays, the currently displayed SoftButton values will not change.
-*/
- std::vector<SoftButton>* softButtons; //!< [%s..%s]
-
-/**
- App labeled on-screen presets (i.e. GEN2).
- If omitted on supported displays, the presets will be shown as not defined.
-*/
- std::vector<std::string>* customPresets; //!< [%s..%s] (500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Show_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Show_response.h
deleted file mode 100644
index 8c44b8d5c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Show_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SHOW_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SHOW_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class Show_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- Show_response(const Show_response& c);
- Show_response(void);
-
- virtual ~Show_response(void);
-
- Show_response& operator =(const Show_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class Show_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SingleTirePressureStatus.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SingleTirePressureStatus.h
deleted file mode 100644
index 435a56bf5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SingleTirePressureStatus.h
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SINGLETIREPRESSURESTATUS_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SINGLETIREPRESSURESTATUS_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// The pressure status of a tire.
-
- class SingleTirePressureStatus
- {
- public:
- enum SingleTirePressureStatusInternal
- {
- INVALID_ENUM=-1,
- UNKNOWN=0,
- NORMAL=1,
- LOW=2,
- FAULT=3,
- NOT_SUPPORTED=4
- };
-
- SingleTirePressureStatus() : mInternal(INVALID_ENUM) {}
- SingleTirePressureStatus(SingleTirePressureStatusInternal e) : mInternal(e) {}
-
- SingleTirePressureStatusInternal get(void) const { return mInternal; }
- void set(SingleTirePressureStatusInternal e) { mInternal=e; }
-
- private:
- SingleTirePressureStatusInternal mInternal;
- friend class SingleTirePressureStatusMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SingleTireStatus.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SingleTireStatus.h
deleted file mode 100644
index df99ace19..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SingleTireStatus.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SINGLETIRESTATUS_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SINGLETIRESTATUS_INCLUDE
-
-
-#include "SingleTirePressureStatus.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class SingleTireStatus
- {
- public:
-
- SingleTireStatus(const SingleTireStatus& c);
- SingleTireStatus(void);
-
- bool checkIntegrity(void);
- // getters
-
- unsigned int get_pressure(void) const;
- const SingleTirePressureStatus& get_status(void) const;
-
-// setters
-
- bool set_pressure(unsigned int pressure_);
- bool set_status(const SingleTirePressureStatus& status_);
-
- private:
-
- friend class SingleTireStatusMarshaller;
-
-
-/// The tire pressure in PSI.
- unsigned int pressure; //!< (0,255)
-
-/// See SingleTirePressureStatus.
- SingleTirePressureStatus status;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Slider_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Slider_request.h
deleted file mode 100644
index 3e7716d1d..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Slider_request.h
+++ /dev/null
@@ -1,111 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SLIDER_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SLIDER_REQUEST_INCLUDE
-
-#include <vector>
-#include <string>
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider.
-
- class Slider_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- Slider_request(const Slider_request& c);
- Slider_request(void);
-
- virtual ~Slider_request(void);
-
- Slider_request& operator =(const Slider_request&);
-
- bool checkIntegrity(void);
-
- unsigned int get_numTicks(void) const;
- unsigned int get_position(void) const;
- const std::string& get_sliderHeader(void) const;
- const std::vector<std::string>* get_sliderFooter(void) const;
- unsigned int get_timeout(void) const;
-
- bool set_numTicks(unsigned int numTicks_);
- bool set_position(unsigned int position_);
- bool set_sliderHeader(const std::string& sliderHeader_);
- void reset_sliderFooter(void);
- bool set_sliderFooter(const std::vector<std::string>& sliderFooter_);
- bool set_timeout(unsigned int timeout_);
-
- private:
-
- friend class Slider_requestMarshaller;
-
-
-/// Number of selectable items on a horizontal axis
- unsigned int numTicks; //!< (2,26)
-
-/// Initial position of slider control (cannot exceed numTicks)
- unsigned int position; //!< (1,26)
-
-/// Text header to display
- std::string sliderHeader; //!< (500)
-
-/**
- Text footer to display (meant to display min/max threshold descriptors).
- For a static text footer, only one footer string shall be provided in the array.
- For a dynamic text footer, the number of footer text string in the array must match the numTicks value.
- For a dynamic text footer, text array string should correlate with potential slider position index.
- If omitted on supported displays, no footer text shall be displayed.
-*/
- std::vector<std::string>* sliderFooter; //!< [%s..%s] (500)
-
-/// App defined timeout.
- unsigned int timeout; //!< (0,65535)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Slider_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Slider_response.h
deleted file mode 100644
index e89602372..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Slider_response.h
+++ /dev/null
@@ -1,72 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SLIDER_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SLIDER_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class Slider_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- Slider_response(const Slider_response& c);
- Slider_response(void);
-
- virtual ~Slider_response(void);
-
- Slider_response& operator =(const Slider_response& c);
-
- bool checkIntegrity(void);
-
- unsigned int get_sliderPosition(void) const;
- bool set_sliderPosition(unsigned int sliderPosition_);
-
- private:
- friend class Slider_responseMarshaller;
-
- /// Current slider value returned when saved or canceled
- unsigned int sliderPosition; //!< (1,26)
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButton.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButton.h
deleted file mode 100644
index 385ebe717..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButton.h
+++ /dev/null
@@ -1,117 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SOFTBUTTON_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SOFTBUTTON_INCLUDE
-
-#include <string>
-
-#include "Image.h"
-#include "SystemAction.h"
-#include "SoftButtonType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class SoftButton
- {
- public:
-
- SoftButton(const SoftButton& c);
- SoftButton(void);
-
- bool checkIntegrity(void);
-
- ~SoftButton(void);
- SoftButton& operator =(const SoftButton&);
-
-// getters
-
- const Image* get_image(void) const;
- bool get_isHighlighted(void) const;
- unsigned int get_softButtonID(void) const;
- const SystemAction& get_systemAction(void) const;
- const std::string* get_text(void) const;
- const SoftButtonType& get_type(void) const;
-
-// setters
-
- void reset_image(void);
- bool set_image(const Image& image_);
- bool set_isHighlighted(bool isHighlighted_);
- bool set_softButtonID(unsigned int softButtonID_);
- bool set_systemAction(const SystemAction& systemAction_);
- void reset_text(void);
- bool set_text(const std::string& text_);
- bool set_type(const SoftButtonType& type_);
-
- private:
-
- friend class SoftButtonMarshaller;
-
-
-/// Optional image struct for SoftButton (if defined as IMAGE or BOTH)
- Image* image;
-
-/**
- True, if highlighted
- False, if not highlighted
-*/
- bool isHighlighted;
-
-/// Value which is returned via OnButtonPress / OnButtonEvent
- unsigned int softButtonID; //!< (0,65536)
-
-/// Parameter indicating whether selecting a SoftButton shall call a specific system action. This is intended to allow Notifications to bring the callee into full / focus; or in the case of persistent overlays, the overlay can persist when a SoftButton is pressed.
- SystemAction systemAction;
-
-/// Optional text to display (if defined as TEXT or BOTH)
- std::string* text; //!< (500)
-
-/// Describes, whether it is text, highlighted text, icon, or dynamic image. See softButtonType
- SoftButtonType type;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButtonCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButtonCapabilities.h
deleted file mode 100644
index 241fccb47..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButtonCapabilities.h
+++ /dev/null
@@ -1,106 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SOFTBUTTONCAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SOFTBUTTONCAPABILITIES_INCLUDE
-
-
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Contains information about a SoftButton's capabilities.
-
- class SoftButtonCapabilities
- {
- public:
-
- SoftButtonCapabilities(const SoftButtonCapabilities& c);
- SoftButtonCapabilities(void);
-
- bool checkIntegrity(void);
- // getters
-
- bool get_imageSupported(void) const;
- bool get_longPressAvailable(void) const;
- bool get_shortPressAvailable(void) const;
- bool get_upDownAvailable(void) const;
-
-// setters
-
- bool set_imageSupported(bool imageSupported_);
- bool set_longPressAvailable(bool longPressAvailable_);
- bool set_shortPressAvailable(bool shortPressAvailable_);
- bool set_upDownAvailable(bool upDownAvailable_);
-
- private:
-
- friend class SoftButtonCapabilitiesMarshaller;
-
-
-/// The button supports referencing a static or dynamic image.
- bool imageSupported;
-
-/**
- The button supports a LONG press.
- Whenever the button is pressed long, onButtonPressed( LONG) will be invoked.
-*/
- bool longPressAvailable;
-
-/**
- The button supports a short press.
- Whenever the button is pressed short, onButtonPressed( SHORT) will be invoked.
-*/
- bool shortPressAvailable;
-
-/**
- The button supports "button down" and "button up".
- Whenever the button is pressed, onButtonEvent( DOWN) will be invoked.
- Whenever the button is released, onButtonEvent( UP) will be invoked.
-*/
- bool upDownAvailable;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButtonType.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButtonType.h
deleted file mode 100644
index 06843f8f3..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SoftButtonType.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SOFTBUTTONTYPE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SOFTBUTTONTYPE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Contains information about the SoftButton capabilities.
-
- class SoftButtonType
- {
- public:
- enum SoftButtonTypeInternal
- {
- INVALID_ENUM=-1,
- SBT_TEXT=0,
- SBT_IMAGE=1,
- SBT_BOTH=2
- };
-
- SoftButtonType() : mInternal(INVALID_ENUM) {}
- SoftButtonType(SoftButtonTypeInternal e) : mInternal(e) {}
-
- SoftButtonTypeInternal get(void) const { return mInternal; }
- void set(SoftButtonTypeInternal e) { mInternal=e; }
-
- private:
- SoftButtonTypeInternal mInternal;
- friend class SoftButtonTypeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Speak_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Speak_request.h
deleted file mode 100644
index 71859f874..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Speak_request.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SPEAK_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SPEAK_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "TTSChunk.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Speaks a text.
-
- class Speak_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- Speak_request(const Speak_request& c);
- Speak_request(void);
-
- virtual ~Speak_request(void);
-
- bool checkIntegrity(void);
-
- const std::vector<TTSChunk>& get_ttsChunks(void) const;
-
- bool set_ttsChunks(const std::vector<TTSChunk>& ttsChunks_);
-
- private:
-
- friend class Speak_requestMarshaller;
-
-
-/**
- An array of text chunks of type TTSChunk. See TTSChunk
- The array must have at least one item
-*/
- std::vector<TTSChunk> ttsChunks; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Speak_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Speak_response.h
deleted file mode 100644
index 055a65f68..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Speak_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SPEAK_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SPEAK_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class Speak_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- Speak_response(const Speak_response& c);
- Speak_response(void);
-
- virtual ~Speak_response(void);
-
- Speak_response& operator =(const Speak_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class Speak_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SpeechCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SpeechCapabilities.h
deleted file mode 100644
index ce2de5e03..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SpeechCapabilities.h
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SPEECHCAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SPEECHCAPABILITIES_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Contains information about the TTS capabilities.
-
- class SpeechCapabilities
- {
- public:
- enum SpeechCapabilitiesInternal
- {
- INVALID_ENUM=-1,
- SC_TEXT=0,
- SAPI_PHONEMES=1,
- LHPLUS_PHONEMES=2,
- PRE_RECORDED=3,
- SILENCE=4
- };
-
- SpeechCapabilities() : mInternal(INVALID_ENUM) {}
- SpeechCapabilities(SpeechCapabilitiesInternal e) : mInternal(e) {}
-
- SpeechCapabilitiesInternal get(void) const { return mInternal; }
- void set(SpeechCapabilitiesInternal e) { mInternal=e; }
-
- private:
- SpeechCapabilitiesInternal mInternal;
- friend class SpeechCapabilitiesMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/StartTime.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/StartTime.h
deleted file mode 100644
index 34b36e17f..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/StartTime.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_STARTTIME_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_STARTTIME_INCLUDE
-
-
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class StartTime
- {
- public:
-
- StartTime(const StartTime& c);
- StartTime(void);
-
- bool checkIntegrity(void);
- // getters
-
- unsigned int get_hours(void) const;
- unsigned int get_minutes(void) const;
- unsigned int get_seconds(void) const;
-
-// setters
-
- bool set_hours(unsigned int hours_);
- bool set_minutes(unsigned int minutes_);
- bool set_seconds(unsigned int seconds_);
-
- private:
-
- friend class StartTimeMarshaller;
-
-
-/**
- The hour of the media clock.
- Some radios only support a max of 19 hours. If out of range, it will be rejected.
-*/
- unsigned int hours; //!< (0,59)
- unsigned int minutes; //!< (0,59)
- unsigned int seconds; //!< (0,59)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_request.h
deleted file mode 100644
index 4135977c0..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_request.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SUBSCRIBEBUTTON_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SUBSCRIBEBUTTON_REQUEST_INCLUDE
-
-
-#include "ButtonName.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Subscribes to built-in HMI buttons.
- The application will be notified by the OnButtonEvent and OnButtonPress.
- To unsubscribe the notifications, use unsubscribeButton.
-*/
-
- class SubscribeButton_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- SubscribeButton_request(const SubscribeButton_request& c);
- SubscribeButton_request(void);
-
- virtual ~SubscribeButton_request(void);
-
- bool checkIntegrity(void);
-
- const ButtonName& get_buttonName(void) const;
-
- bool set_buttonName(const ButtonName& buttonName_);
-
- private:
-
- friend class SubscribeButton_requestMarshaller;
-
-
-/// Name of the button to subscribe.
- ButtonName buttonName;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_response.h
deleted file mode 100644
index 9b90948de..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SUBSCRIBEBUTTON_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SUBSCRIBEBUTTON_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class SubscribeButton_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- SubscribeButton_response(const SubscribeButton_response& c);
- SubscribeButton_response(void);
-
- virtual ~SubscribeButton_response(void);
-
- SubscribeButton_response& operator =(const SubscribeButton_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class SubscribeButton_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_request.h
deleted file mode 100644
index 1f6357440..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_request.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SUBSCRIBEVEHICLEDATA_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SUBSCRIBEVEHICLEDATA_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "VehicleDataType.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Subscribes for specific published data items.
- The data will be only sent if it has changed.
- The application will be notified by the onVehicleData notification whenever new data is available.
- To unsubscribe the notifications, use unsubscribe with the same subscriptionType.
-*/
-
- class SubscribeVehicleData_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- SubscribeVehicleData_request(const SubscribeVehicleData_request& c);
- SubscribeVehicleData_request(void);
-
- virtual ~SubscribeVehicleData_request(void);
-
- bool checkIntegrity(void);
-
- const std::vector<VehicleDataType>& get_dataType(void) const;
-
- bool set_dataType(const std::vector<VehicleDataType>& dataType_);
-
- private:
-
- friend class SubscribeVehicleData_requestMarshaller;
-
-
-/**
- List of defined vehicle data elements.
- See VehicleDataType
-*/
- std::vector<VehicleDataType> dataType; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_response.h
deleted file mode 100644
index 7ed881c86..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_response.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SUBSCRIBEVEHICLEDATA_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SUBSCRIBEVEHICLEDATA_RESPONSE_INCLUDE
-
-#include <vector>
-
-#include "VehicleDataResult.h"
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class SubscribeVehicleData_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- SubscribeVehicleData_response(const SubscribeVehicleData_response& c);
- SubscribeVehicleData_response(void);
-
- virtual ~SubscribeVehicleData_response(void);
-
- SubscribeVehicleData_response& operator =(const SubscribeVehicleData_response&);
-
- bool checkIntegrity(void);
-
- const std::vector<VehicleDataResult>* get_dataResult(void) const;
- void reset_dataResult(void);
- bool set_dataResult(const std::vector<VehicleDataResult>& dataResult_);
-
- private:
- friend class SubscribeVehicleData_responseMarshaller;
-
- /// Permission status of vehicle data element.
- std::vector<VehicleDataResult>* dataResult; //!< [%s..%s]
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SyncMsgVersion.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SyncMsgVersion.h
deleted file mode 100644
index 92b5c8ced..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SyncMsgVersion.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SYNCMSGVERSION_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SYNCMSGVERSION_INCLUDE
-
-
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Specifies the version number of the SYNC V4 protocol, that is supported by the mobile application
-
- class SyncMsgVersion
- {
- public:
-
- SyncMsgVersion(const SyncMsgVersion& c);
- SyncMsgVersion(void);
-
- bool checkIntegrity(void);
- // getters
-
- unsigned int get_majorVersion(void) const;
- unsigned int get_minorVersion(void) const;
-
-// setters
-
- bool set_majorVersion(unsigned int majorVersion_);
- bool set_minorVersion(unsigned int minorVersion_);
-
- private:
-
- friend class SyncMsgVersionMarshaller;
-
-
-/// The major version indicates versions that is not-compatible to previous versions.
- unsigned int majorVersion; //!< (1,10)
-
-/// The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality)
- unsigned int minorVersion; //!< (0,1000)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SystemAction.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SystemAction.h
deleted file mode 100644
index c5a8aece2..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SystemAction.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SYSTEMACTION_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SYSTEMACTION_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Enumeration that describes system actions that can be triggered.
-
- class SystemAction
- {
- public:
- enum SystemActionInternal
- {
- INVALID_ENUM=-1,
-
-/// Default action occurs. Standard behavior (e.g. SoftButton clears overlay).
- DEFAULT_ACTION=0,
-
-/// App is brought into HMI_FULL.
- STEAL_FOCUS=1,
-
-/// Current system context is maintained. An overlay is persisted even though a SoftButton has been pressed and the notification sent.
- KEEP_CONTEXT=2
- };
-
- SystemAction() : mInternal(INVALID_ENUM) {}
- SystemAction(SystemActionInternal e) : mInternal(e) {}
-
- SystemActionInternal get(void) const { return mInternal; }
- void set(SystemActionInternal e) { mInternal=e; }
-
- private:
- SystemActionInternal mInternal;
- friend class SystemActionMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SystemContext.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SystemContext.h
deleted file mode 100644
index 0316dbaba..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/SystemContext.h
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_SYSTEMCONTEXT_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_SYSTEMCONTEXT_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Enumeration that describes possible contexts an app's HMI might be in.
- Communicated to whichever app is in HMI FULL, except Alert.
-*/
-
- class SystemContext
- {
- public:
- enum SystemContextInternal
- {
- INVALID_ENUM=-1,
-
-/// The app's persistent display (whether media/non-media/navigation) is fully visible onscreen.
- SYSCTXT_MAIN=0,
-
-/// The system is currently in a VR session (with whatever dedicated VR screen being overlaid onscreen).
- SYSCTXT_VRSESSION=1,
-
-/// The system is currently displaying a system or in-App menu onscreen.
- SYSCTXT_MENU=2,
-
-/// The app's display HMI is currently being obscured by either a system or other app's overlay.
- SYSCTXT_HMI_OBSCURED=3,
-
-/// Broadcast only to whichever app has an alert currently being displayed.
- SYSCTXT_ALERT=4,
- NOT_AUDIBLE=5,
- AUDIBLE=6
- };
-
- SystemContext() : mInternal(INVALID_ENUM) {}
- SystemContext(SystemContextInternal e) : mInternal(e) {}
-
- SystemContextInternal get(void) const { return mInternal; }
- void set(SystemContextInternal e) { mInternal=e; }
-
- private:
- SystemContextInternal mInternal;
- friend class SystemContextMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TBTState.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TBTState.h
deleted file mode 100644
index d0127c36b..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TBTState.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_TBTSTATE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_TBTSTATE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Enumeration that describes possible states of turn-by-turn client or SmartDeviceLink app.
-
- class TBTState
- {
- public:
- enum TBTStateInternal
- {
- INVALID_ENUM=-1,
- ROUTE_UPDATE_REQUEST=0,
- ROUTE_ACCEPTED=1,
- ROUTE_REFUSED=2,
- ROUTE_CANCELLED=3,
- ETA_REQUEST=4,
- NEXT_TURN_REQUEST=5,
- ROUTE_STATUS_REQUEST=6,
- ROUTE_SUMMARY_REQUEST=7,
- TRIP_STATUS_REQUEST=8,
- ROUTE_UPDATE_REQUEST_TIMEOUT=9
- };
-
- TBTState() : mInternal(INVALID_ENUM) {}
- TBTState(TBTStateInternal e) : mInternal(e) {}
-
- TBTStateInternal get(void) const { return mInternal; }
- void set(TBTStateInternal e) { mInternal=e; }
-
- private:
- TBTStateInternal mInternal;
- friend class TBTStateMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h
deleted file mode 100644
index d07f1ad53..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h
+++ /dev/null
@@ -1,91 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_TTSCHUNK_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_TTSCHUNK_INCLUDE
-
-#include <string>
-
-#include "SpeechCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// A TTS chunk, that consists of the text/phonemes to speak and the type (like text or SAPI)
-
- class TTSChunk
- {
- public:
-
- TTSChunk(const TTSChunk& c);
- TTSChunk(void);
-
- bool checkIntegrity(void);
- // getters
-
- const std::string& get_text(void) const;
- const SpeechCapabilities& get_type(void) const;
-
-// setters
-
- bool set_text(const std::string& text_);
- bool set_type(const SpeechCapabilities& type_);
-
- private:
-
- friend class TTSChunkMarshaller;
-
-
-/**
- The text or phonemes to speak.
- May not be empty.
-*/
- std::string text; //!< (500)
-
-/// Describes, whether it is text or a specific phoneme set. See SpeechCapabilities
- SpeechCapabilities type;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextAlignment.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextAlignment.h
deleted file mode 100644
index a530de074..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextAlignment.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_TEXTALIGNMENT_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_TEXTALIGNMENT_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// The list of possible alignments, left, right, or centered
-
- class TextAlignment
- {
- public:
- enum TextAlignmentInternal
- {
- INVALID_ENUM=-1,
- LEFT_ALIGNED=0,
- RIGHT_ALIGNED=1,
- CENTERED=2
- };
-
- TextAlignment() : mInternal(INVALID_ENUM) {}
- TextAlignment(TextAlignmentInternal e) : mInternal(e) {}
-
- TextAlignmentInternal get(void) const { return mInternal; }
- void set(TextAlignmentInternal e) { mInternal=e; }
-
- private:
- TextAlignmentInternal mInternal;
- friend class TextAlignmentMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextField.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextField.h
deleted file mode 100644
index 1c5ce12c6..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextField.h
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_TEXTFIELD_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_TEXTFIELD_INCLUDE
-
-
-#include "CharacterSet.h"
-#include "TextFieldName.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class TextField
- {
- public:
-
- TextField(const TextField& c);
- TextField(void);
-
- bool checkIntegrity(void);
- // getters
-
- const CharacterSet& get_characterSet(void) const;
- const TextFieldName& get_name(void) const;
- unsigned int get_rows(void) const;
- unsigned int get_width(void) const;
-
-// setters
-
- bool set_characterSet(const CharacterSet& characterSet_);
- bool set_name(const TextFieldName& name_);
- bool set_rows(unsigned int rows_);
- bool set_width(unsigned int width_);
-
- private:
-
- friend class TextFieldMarshaller;
-
-
-/// The character set that is supported in this field. See CharacterSet.
- CharacterSet characterSet;
-
-/// The name that identifies the field. See TextFieldName.
- TextFieldName name;
-
-/// The number of rows of this field.
- unsigned int rows; //!< (1,3)
-
-/// The number of characters in one row of this field.
- unsigned int width; //!< (1,500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextFieldName.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextFieldName.h
deleted file mode 100644
index eac2142e3..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TextFieldName.h
+++ /dev/null
@@ -1,164 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_TEXTFIELDNAME_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_TEXTFIELDNAME_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class TextFieldName
- {
- public:
- enum TextFieldNameInternal
- {
- INVALID_ENUM=-1,
-
-/**
- The first line of first set of main fields of the persistent display
- Applies to "Show"
-*/
- mainField1=0,
-
-/**
- The second line of first set of main fields of the persistent display
- Applies to "Show"
-*/
- mainField2=1,
-
-/**
- The first line of second set of main fields of persistent display
- Applies to "Show"
-*/
- mainField3=2,
-
-/**
- The second line of second set of main fields of the persistent display
- Applies to "Show"
-*/
- mainField4=3,
-
-/**
- The status bar on Nav
- Applies to "Show"
-*/
- statusBar=4,
-
-/**
- Text value for MediaClock field.
- Applies to "Show"
-*/
- mediaClock=5,
-
-/**
- The track field of NGN type ACMs.
- This field is only available for media applications.
- Applies to "Show"
-*/
- mediaTrack=6,
-
-/**
- The first line of the alert text field
- Applies to "Alert"
-*/
- alertText1=7,
-
-/**
- The second line of the alert text field
- Applies to "Alert"
-*/
- alertText2=8,
-
-/**
- The third line of the alert text field
- Applies to "Alert"
-*/
- alertText3=9,
-
-/**
- Long form body of text that can include newlines and tabs.
- Applies to "ScrollableMessage"
-*/
- scrollableMessageBody=10,
-
-/// First line suggestion for a user response (in the case of VR enabled interaction
- initialInteractionText=11,
-
-/// First line of navigation text
- navigationText1=12,
-
-/// Second line of navigation text
- navigationText2=13,
-
-/// Estimated Time of Arrival time for navigation
- ETA=14,
-
-/// Total distance to destination for navigation
- totalDistance=15,
-
-/// First line of text for audio pass thru
- audioPassThruDisplayText1=16,
-
-/// Second line of text for audio pass thru
- audioPassThruDisplayText2=17,
-
-/// Header text for slider
- sliderHeader=18,
-
-/// Footer text for slider
- sliderFooter=19
- };
-
- TextFieldName() : mInternal(INVALID_ENUM) {}
- TextFieldName(TextFieldNameInternal e) : mInternal(e) {}
-
- TextFieldNameInternal get(void) const { return mInternal; }
- void set(TextFieldNameInternal e) { mInternal=e; }
-
- private:
- TextFieldNameInternal mInternal;
- friend class TextFieldNameMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TimerMode.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TimerMode.h
deleted file mode 100644
index edfe14190..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TimerMode.h
+++ /dev/null
@@ -1,79 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_TIMERMODE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_TIMERMODE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Causes the media clock timer to update from 0:00 to a specified time
- Causes the media clock timer to update from a specified time to 0:00
- Indicates to not use the media clock timer
-*/
-
- class TimerMode
- {
- public:
- enum TimerModeInternal
- {
- INVALID_ENUM=-1,
- UP=0,
- DOWN=1,
- NONE=2
- };
-
- TimerMode() : mInternal(INVALID_ENUM) {}
- TimerMode(TimerModeInternal e) : mInternal(e) {}
-
- TimerModeInternal get(void) const { return mInternal; }
- void set(TimerModeInternal e) { mInternal=e; }
-
- private:
- TimerModeInternal mInternal;
- friend class TimerModeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TirePressureTellTale.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TirePressureTellTale.h
deleted file mode 100644
index 4a358edd5..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TirePressureTellTale.h
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_TIREPRESSURETELLTALE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_TIREPRESSURETELLTALE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Reflects the status of the cluster instrument warning light.
-
- class TirePressureTellTale
- {
- public:
- enum TirePressureTellTaleInternal
- {
- INVALID_ENUM=-1,
- OFF=0,
- ON=1,
- FLASH=2
- };
-
- TirePressureTellTale() : mInternal(INVALID_ENUM) {}
- TirePressureTellTale(TirePressureTellTaleInternal e) : mInternal(e) {}
-
- TirePressureTellTaleInternal get(void) const { return mInternal; }
- void set(TirePressureTellTaleInternal e) { mInternal=e; }
-
- private:
- TirePressureTellTaleInternal mInternal;
- friend class TirePressureTellTaleMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TireStatus.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TireStatus.h
deleted file mode 100644
index f07dc6f11..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TireStatus.h
+++ /dev/null
@@ -1,118 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_TIRESTATUS_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_TIRESTATUS_INCLUDE
-
-
-#include "SingleTireStatus.h"
-#include "SingleTireStatus.h"
-#include "SingleTireStatus.h"
-#include "SingleTireStatus.h"
-#include "TirePressureTellTale.h"
-#include "SingleTireStatus.h"
-#include "SingleTireStatus.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// The status and pressure of the tires.
-
- class TireStatus
- {
- public:
-
- TireStatus(const TireStatus& c);
- TireStatus(void);
-
- bool checkIntegrity(void);
- // getters
-
- const SingleTireStatus& get_innerLeftRear(void) const;
- const SingleTireStatus& get_innerRightRear(void) const;
- const SingleTireStatus& get_leftFront(void) const;
- const SingleTireStatus& get_leftRear(void) const;
- const TirePressureTellTale& get_pressureTellTale(void) const;
- const SingleTireStatus& get_rightFront(void) const;
- const SingleTireStatus& get_rightRear(void) const;
-
-// setters
-
- bool set_innerLeftRear(const SingleTireStatus& innerLeftRear_);
- bool set_innerRightRear(const SingleTireStatus& innerRightRear_);
- bool set_leftFront(const SingleTireStatus& leftFront_);
- bool set_leftRear(const SingleTireStatus& leftRear_);
- bool set_pressureTellTale(const TirePressureTellTale& pressureTellTale_);
- bool set_rightFront(const SingleTireStatus& rightFront_);
- bool set_rightRear(const SingleTireStatus& rightRear_);
-
- private:
-
- friend class TireStatusMarshaller;
-
-
-/// The status of the inner left rear.
- SingleTireStatus innerLeftRear;
-
-/// The status of the inner right rear.
- SingleTireStatus innerRightRear;
-
-/// The status of the left front tire.
- SingleTireStatus leftFront;
-
-/// The status of the left rear tire.
- SingleTireStatus leftRear;
-
-/// See TirePressureTellTale.
- TirePressureTellTale pressureTellTale;
-
-/// The status of the right front tire.
- SingleTireStatus rightFront;
-
-/// The status of the right rear tire.
- SingleTireStatus rightRear;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TriggerSource.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TriggerSource.h
deleted file mode 100644
index 55dfaa9bf..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/TriggerSource.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_TRIGGERSOURCE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_TRIGGERSOURCE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Indicates the source from where the command was triggered.
-
- class TriggerSource
- {
- public:
- enum TriggerSourceInternal
- {
- INVALID_ENUM=-1,
- TS_MENU=0,
- TS_VR=1
- };
-
- TriggerSource() : mInternal(INVALID_ENUM) {}
- TriggerSource(TriggerSourceInternal e) : mInternal(e) {}
-
- TriggerSourceInternal get(void) const { return mInternal; }
- void set(TriggerSourceInternal e) { mInternal=e; }
-
- private:
- TriggerSourceInternal mInternal;
- friend class TriggerSourceMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Turn.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Turn.h
deleted file mode 100644
index 175989086..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/Turn.h
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_TURN_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_TURN_INCLUDE
-
-#include <string>
-
-#include "Image.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class Turn
- {
- public:
-
- Turn(const Turn& c);
- Turn(void);
-
- bool checkIntegrity(void);
-
- ~Turn(void);
- Turn& operator =(const Turn&);
-
-// getters
-
- const std::string* get_navigationText(void) const;
- const Image& get_turnIcon(void) const;
-
-// setters
-
- void reset_navigationText(void);
- bool set_navigationText(const std::string& navigationText_);
- bool set_turnIcon(const Image& turnIcon_);
-
- private:
-
- friend class TurnMarshaller;
-
- std::string* navigationText; //!< (500)
- Image turnIcon;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_request.h
deleted file mode 100644
index e2db1562a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_request.h
+++ /dev/null
@@ -1,79 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_UNREGISTERAPPINTERFACE_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_UNREGISTERAPPINTERFACE_REQUEST_INCLUDE
-
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Closes an interface from a mobile application.
- After unregisterAppInterface, no commands other than registerAppInterface will be accepted/executed.
- Will fail, if no registerAppInterface was completed successfully before.
-*/
-
- class UnregisterAppInterface_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- UnregisterAppInterface_request(const UnregisterAppInterface_request& c);
- UnregisterAppInterface_request(void);
-
- virtual ~UnregisterAppInterface_request(void);
-
- bool checkIntegrity(void);
-
-
-
- private:
-
- friend class UnregisterAppInterface_requestMarshaller;
-
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_response.h
deleted file mode 100644
index 93bb3b4b7..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_UNREGISTERAPPINTERFACE_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_UNREGISTERAPPINTERFACE_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class UnregisterAppInterface_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- UnregisterAppInterface_response(const UnregisterAppInterface_response& c);
- UnregisterAppInterface_response(void);
-
- virtual ~UnregisterAppInterface_response(void);
-
- UnregisterAppInterface_response& operator =(const UnregisterAppInterface_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class UnregisterAppInterface_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_request.h
deleted file mode 100644
index 526d5f4a1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_request.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_UNSUBSCRIBEBUTTON_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_UNSUBSCRIBEBUTTON_REQUEST_INCLUDE
-
-
-#include "ButtonName.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Unsubscribes from built-in HMI buttons.
-
- class UnsubscribeButton_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- UnsubscribeButton_request(const UnsubscribeButton_request& c);
- UnsubscribeButton_request(void);
-
- virtual ~UnsubscribeButton_request(void);
-
- bool checkIntegrity(void);
-
- const ButtonName& get_buttonName(void) const;
-
- bool set_buttonName(const ButtonName& buttonName_);
-
- private:
-
- friend class UnsubscribeButton_requestMarshaller;
-
-
-/// Name of the button to unsubscribe.
- ButtonName buttonName;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_response.h
deleted file mode 100644
index 77acbd6df..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_UNSUBSCRIBEBUTTON_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_UNSUBSCRIBEBUTTON_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class UnsubscribeButton_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- UnsubscribeButton_response(const UnsubscribeButton_response& c);
- UnsubscribeButton_response(void);
-
- virtual ~UnsubscribeButton_response(void);
-
- UnsubscribeButton_response& operator =(const UnsubscribeButton_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class UnsubscribeButton_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_request.h
deleted file mode 100644
index 0c015589c..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_request.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_UNSUBSCRIBEVEHICLEDATA_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_UNSUBSCRIBEVEHICLEDATA_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "VehicleDataType.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// This function is used to unsubscribe the notifications from the subscribeVehicleData function.
-
- class UnsubscribeVehicleData_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- UnsubscribeVehicleData_request(const UnsubscribeVehicleData_request& c);
- UnsubscribeVehicleData_request(void);
-
- virtual ~UnsubscribeVehicleData_request(void);
-
- bool checkIntegrity(void);
-
- const std::vector<VehicleDataType>& get_dataType(void) const;
-
- bool set_dataType(const std::vector<VehicleDataType>& dataType_);
-
- private:
-
- friend class UnsubscribeVehicleData_requestMarshaller;
-
-
-/**
- Refers to the vehicle data elements specified by subscribeVehicleData.
- See VehicleDataType
-*/
- std::vector<VehicleDataType> dataType; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_response.h
deleted file mode 100644
index e572a03c6..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_response.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_UNSUBSCRIBEVEHICLEDATA_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_UNSUBSCRIBEVEHICLEDATA_RESPONSE_INCLUDE
-
-#include <vector>
-
-#include "VehicleDataResult.h"
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class UnsubscribeVehicleData_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- UnsubscribeVehicleData_response(const UnsubscribeVehicleData_response& c);
- UnsubscribeVehicleData_response(void);
-
- virtual ~UnsubscribeVehicleData_response(void);
-
- UnsubscribeVehicleData_response& operator =(const UnsubscribeVehicleData_response&);
-
- bool checkIntegrity(void);
-
- const std::vector<VehicleDataResult>* get_dataResult(void) const;
- void reset_dataResult(void);
- bool set_dataResult(const std::vector<VehicleDataResult>& dataResult_);
-
- private:
- friend class UnsubscribeVehicleData_responseMarshaller;
-
- /// Permission status of vehicle data element.
- std::vector<VehicleDataResult>* dataResult; //!< [%s..%s]
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateMode.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateMode.h
deleted file mode 100644
index 36cff01fd..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateMode.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_UPDATEMODE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_UPDATEMODE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Describes how the media clock timer should behave on the platform
- Starts the media clock timer counting upwards, as in time elapsed.
- Starts the media clock timer counting downwards, as in time remaining.
- Pauses the media clock timer
- Resume the media clock timer
- Clears the media clock timer (previously done through Show->mediaClock)
-*/
-
- class UpdateMode
- {
- public:
- enum UpdateModeInternal
- {
- INVALID_ENUM=-1,
- COUNTUP=0,
- COUNTDOWN=1,
- PAUSE=2,
- RESUME=3,
- CLEAR=4
- };
-
- UpdateMode() : mInternal(INVALID_ENUM) {}
- UpdateMode(UpdateModeInternal e) : mInternal(e) {}
-
- UpdateModeInternal get(void) const { return mInternal; }
- void set(UpdateModeInternal e) { mInternal=e; }
-
- private:
- UpdateModeInternal mInternal;
- friend class UpdateModeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_request.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_request.h
deleted file mode 100644
index ee77b9e84..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_request.h
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_UPDATETURNLIST_REQUEST_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_UPDATETURNLIST_REQUEST_INCLUDE
-
-#include <vector>
-
-#include "SoftButton.h"
-#include "Turn.h"
-#include "JSONHandler/SDLRPCMessage.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class UpdateTurnList_request : public NsSmartDeviceLinkRPC::SDLRPCMessage
- {
- public:
-
- UpdateTurnList_request(const UpdateTurnList_request& c);
- UpdateTurnList_request(void);
-
- virtual ~UpdateTurnList_request(void);
-
- bool checkIntegrity(void);
-
- const std::vector<Turn>& get_turnList(void) const;
- const std::vector<SoftButton>& get_softButtons(void) const;
-
- bool set_turnList(const std::vector<Turn>& turnList_);
- bool set_softButtons(const std::vector<SoftButton>& softButtons_);
-
- private:
-
- friend class UpdateTurnList_requestMarshaller;
-
- std::vector<Turn> turnList; //!< [%s..%s]
-
-/// If omitted on supported displays, app-defined SoftButton will be left blank.
- std::vector<SoftButton> softButtons; //!< [%s..%s]
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_response.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_response.h
deleted file mode 100644
index c4afa90b1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_response.h
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_UPDATETURNLIST_RESPONSE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_UPDATETURNLIST_RESPONSE_INCLUDE
-
-#include "JSONHandler/SDLRPCResponse.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
- class UpdateTurnList_response : public NsSmartDeviceLinkRPC::SDLRPCResponse
- {
- public:
- UpdateTurnList_response(const UpdateTurnList_response& c);
- UpdateTurnList_response(void);
-
- virtual ~UpdateTurnList_response(void);
-
- UpdateTurnList_response& operator =(const UpdateTurnList_response&);
-
- bool checkIntegrity(void);
-
- private:
- friend class UpdateTurnList_responseMarshaller;
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataResult.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataResult.h
deleted file mode 100644
index e88e99ae1..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataResult.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_VEHICLEDATARESULT_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_VEHICLEDATARESULT_INCLUDE
-
-
-#include "VehicleDataType.h"
-#include "VehicleDataResultCode.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Individual published data request result
-
- class VehicleDataResult
- {
- public:
-
- VehicleDataResult(const VehicleDataResult& c);
- VehicleDataResult(void);
-
- bool checkIntegrity(void);
- // getters
-
- const VehicleDataType& get_dataType(void) const;
- const VehicleDataResultCode& get_resultCode(void) const;
-
-// setters
-
- bool set_dataType(const VehicleDataType& dataType_);
- bool set_resultCode(const VehicleDataResultCode& resultCode_);
-
- private:
-
- friend class VehicleDataResultMarshaller;
-
-
-/// Defined published data element type.
- VehicleDataType dataType;
-
-/// Published data result code.
- VehicleDataResultCode resultCode;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataResultCode.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataResultCode.h
deleted file mode 100644
index d07a6abd0..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataResultCode.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_VEHICLEDATARESULTCODE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_VEHICLEDATARESULTCODE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Enumeration that describes possible result codes of a vehicle data entry request.
-
- class VehicleDataResultCode
- {
- public:
- enum VehicleDataResultCodeInternal
- {
- INVALID_ENUM=-1,
- VDRC_SUCCESS=0,
- VDRC_DISALLOWED=1,
- VDRC_USER_DISALLOWED=2,
- VDRC_INVALID_ID=3,
- VDRC_DATA_NOT_AVAILABLE=4,
- VDRC_DATA_ALREADY_SUBSCRIBED=5,
- VDRC_DATA_NOT_SUBSCRIBED=6,
- VDRC_IGNORED=7
- };
-
- VehicleDataResultCode() : mInternal(INVALID_ENUM) {}
- VehicleDataResultCode(VehicleDataResultCodeInternal e) : mInternal(e) {}
-
- VehicleDataResultCodeInternal get(void) const { return mInternal; }
- void set(VehicleDataResultCodeInternal e) { mInternal=e; }
-
- private:
- VehicleDataResultCodeInternal mInternal;
- friend class VehicleDataResultCodeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataType.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataType.h
deleted file mode 100644
index f99d291c4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleDataType.h
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_VEHICLEDATATYPE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_VEHICLEDATATYPE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Defines the data types that can be published and subscribed to.
-
- class VehicleDataType
- {
- public:
- enum VehicleDataTypeInternal
- {
- INVALID_ENUM=-1,
-
-/**
- Notifies GPSData
- may be subscribed
-*/
- VEHICLEDATA_GPS=0,
- VEHICLEDATA_SPEED=1,
- VEHICLEDATA_FUELLEVEL=2,
- VEHICLEDATA_FUELECONOMY=3,
- VEHICLEDATA_ENGINERPM=4,
- VEHICLEDATA_BATTVOLTS=5,
- VEHICLEDATA_RAINSENSOR=6,
- VEHICLEDATA_ODOMETER=7,
- VEHICLEDATA_VIN=8,
- VEHICLEDATA_EXTERNTEMP=9,
- VEHICLEDATA_PRNDLSTATUS=10,
- VEHICLEDATA_TIREPRESSURE=11,
-
-/// Battery pack voltage of hybrid and electrical vehicles
- VEHICLEDATA_BATTERYPACKVOLTAGE=12,
-
-/// Battery current of hybrid and electrical vehicles
- VEHICLEDATA_BATTERYCURRENT=13,
-
-/// Battery temperature of hybrid and electrical vehicles
- VEHICLEDATA_BATTERYTEMPERATURE=14,
-
-/// Satellite radio serial number (ESN)
- VEHICLEDATA_SATESN=15
- };
-
- VehicleDataType() : mInternal(INVALID_ENUM) {}
- VehicleDataType(VehicleDataTypeInternal e) : mInternal(e) {}
-
- VehicleDataTypeInternal get(void) const { return mInternal; }
- void set(VehicleDataTypeInternal e) { mInternal=e; }
-
- private:
- VehicleDataTypeInternal mInternal;
- friend class VehicleDataTypeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleType.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleType.h
deleted file mode 100644
index 56f133ff4..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VehicleType.h
+++ /dev/null
@@ -1,115 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_VEHICLETYPE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_VEHICLETYPE_INCLUDE
-
-#include <string>
-
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class VehicleType
- {
- public:
-
- VehicleType(const VehicleType& c);
- VehicleType(void);
-
- bool checkIntegrity(void);
-
- ~VehicleType(void);
- VehicleType& operator =(const VehicleType&);
-
-// getters
-
- const std::string* get_make(void) const;
- const std::string* get_model(void) const;
- const std::string* get_modelYear(void) const;
- const std::string* get_trim(void) const;
-
-// setters
-
- void reset_make(void);
- bool set_make(const std::string& make_);
- void reset_model(void);
- bool set_model(const std::string& model_);
- void reset_modelYear(void);
- bool set_modelYear(const std::string& modelYear_);
- void reset_trim(void);
- bool set_trim(const std::string& trim_);
-
- private:
-
- friend class VehicleTypeMarshaller;
-
-
-/**
- Make of the vehicle
- e.g. Ford
-*/
- std::string* make; //!< (500)
-
-/**
- Model of the vehicle
- e.g. Fiesta
-*/
- std::string* model; //!< (500)
-
-/**
- Model Year of the vehicle
- e.g. 2013
-*/
- std::string* modelYear; //!< (500)
-
-/**
- Trim of the vehicle
- e.g. SE
-*/
- std::string* trim; //!< (500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VrCapabilities.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VrCapabilities.h
deleted file mode 100644
index 9d4b9bc8a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VrCapabilities.h
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_VRCAPABILITIES_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_VRCAPABILITIES_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/// Contains information about the VR capabilities.
-
- class VrCapabilities
- {
- public:
- enum VrCapabilitiesInternal
- {
- INVALID_ENUM=-1,
- VR_TEXT=0
- };
-
- VrCapabilities() : mInternal(INVALID_ENUM) {}
- VrCapabilities(VrCapabilitiesInternal e) : mInternal(e) {}
-
- VrCapabilitiesInternal get(void) const { return mInternal; }
- void set(VrCapabilitiesInternal e) { mInternal=e; }
-
- private:
- VrCapabilitiesInternal mInternal;
- friend class VrCapabilitiesMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VrHelpItem.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VrHelpItem.h
deleted file mode 100644
index 8050e5289..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/VrHelpItem.h
+++ /dev/null
@@ -1,91 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_VRHELPITEM_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_VRHELPITEM_INCLUDE
-
-#include <string>
-
-#include "Image.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- class VrHelpItem
- {
- public:
-
- VrHelpItem(const VrHelpItem& c);
- VrHelpItem(void);
-
- bool checkIntegrity(void);
- // getters
-
- const Image& get_image(void) const;
- unsigned int get_position(void) const;
- const std::string& get_text(void) const;
-
-// setters
-
- bool set_image(const Image& image_);
- bool set_position(unsigned int position_);
- bool set_text(const std::string& text_);
-
- private:
-
- friend class VrHelpItemMarshaller;
-
-
-/// Image struct for VR Help item
- Image image;
-
-/// Position to display item in VR Help list
- unsigned int position; //!< (1,8)
-
-/// Text to display for VR Help item
- std::string text; //!< (500)
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/messageType.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/messageType.h
deleted file mode 100644
index 0cdc7c6ef..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCObjects/V2/messageType.h
+++ /dev/null
@@ -1,78 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKKRPCV2_MESSAGETYPE_INCLUDE
-#define NSSMARTDEVICELINKKRPCV2_MESSAGETYPE_INCLUDE
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-/**
- Enumeration linking message types with function types in WiPro protocol.
- Assumes enumeration starts at value 0.
-*/
-
- class messageType
- {
- public:
- enum messageTypeInternal
- {
- INVALID_ENUM=-1,
- request=0,
- response=1,
- notification=2
- };
-
- messageType() : mInternal(INVALID_ENUM) {}
- messageType(messageTypeInternal e) : mInternal(e) {}
-
- messageTypeInternal get(void) const { return mInternal; }
- void set(messageTypeInternal e) { mInternal=e; }
-
- private:
- messageTypeInternal mInternal;
- friend class messageTypeMarshaller;
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCRequest.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCRequest.h
deleted file mode 100644
index 085eee34a..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCRequest.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
-* \file SDLRPCRequest.hpp
-* \brief Class SDLRPCRequest header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef ALRPCREQUEST_INCLUDE
-#define ALRPCREQUEST_INCLUDE
-
-#include "SDLRPCMessage.h"
-
-/**
- *\namespace NsSmartDeviceLinkRPC
- *\brief Namespace for SmartDeviceLink JSON protocol related functionality.
-*/
-namespace NsSmartDeviceLinkRPC
-{
- /**
- * \class SDLRPCRequest
- * \brief Base class for SmartDeviceLink Json request messages.
- */
- class SDLRPCRequest : public SDLRPCMessage
- {
- public:
- /**
- * \brief Constructor
- * \param protocolVersion Version of protocol (currently 1,2)
- */
- SDLRPCRequest( unsigned int protocolVersion );
-
- /**
- * \brief Constructor
- * \param protocolVersion Version of protocol (currently 1,2)
- * \param methodID Id of RPC called by message
- */
- SDLRPCRequest( unsigned int protocolVersion, int methodId);
-
- /**
- * \brief Default Constructor
- */
- SDLRPCRequest(void);
-
- /**
- * \brief Destructor
- */
- virtual ~SDLRPCRequest();
-
- /**
- * \brief Getter for correlation id of JSON message.
- * \return correlation id of JSON message.
- */
- virtual unsigned int getCorrelationID() const;
-
- /**
- * \brief Setter for correlation id of JSON message.
- * \param correlationID Correlation ID of JSON message.
- * \return type description
- */
- virtual void setCorrelationID( unsigned int correlationID );
-
- private:
- /**
- *\brief Correlation id of JSON message.
- */
- unsigned int mCorrelationID;
-
- };
-
-}
-
-#endif // ALRPCREQUEST_INCLUDE
diff --git a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCResponse.h b/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCResponse.h
deleted file mode 100644
index ec6f195de..000000000
--- a/SDL_Core/src/components/JSONHandler/include/JSONHandler/SDLRPCResponse.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
-* \file SDLRPCResponse.h
-* \brief Class SDLRPCResponse header.
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef ALRPCRESPONSE_INCLUDE
-#define ALRPCRESPONSE_INCLUDE
-
-#include <string>
-#include "SDLRPCMessage.h"
-#include "JSONHandler/SDLRPCObjects/V2/Result.h"
-
-/**
- *\namespace NsSmartDeviceLinkRPC
- *\brief Namespace for SmartDeviceLink JSON protocol related functionality.
-*/
-namespace NsSmartDeviceLinkRPC
-{
- /**
- * \class SDLRPCResponse
- * \brief Base class for SmartDeviceLink Json response message classes.
- */
- class SDLRPCResponse : public SDLRPCMessage
- {
- public:
- /**
- * \brief Constructor
- * \param protocolVersion Version of protocol in message.
- */
- SDLRPCResponse(unsigned int protocolVersion);
-
- /**
- * \brief Constructor
- * \param protocolVersion Version of protocol in message.
- * \param methodID ID of RPC called by message.
- */
- SDLRPCResponse(unsigned int protocolVersion, int methodID);
-
- /**
- * \brief Default Constructor
- */
- SDLRPCResponse(void);
-
- /**
- * \brief Destructor
- */
- virtual ~SDLRPCResponse();
-
- /**
- * \brief Getter for correlation id.
- * \return Correlation ID of Json Message
- */
- virtual unsigned int getCorrelationID() const;
-
- /**
- * \brief Setter for correlation id.
- * \param correlationID Correlation ID of Json message
- */
- virtual void setCorrelationID(unsigned int correlationID);
-
- bool get_success(void) const;
- const NsSmartDeviceLinkRPCV2::Result& get_resultCode(void) const;
- const std::string* get_info(void) const;
-
- bool set_success(bool success_);
- bool set_resultCode(const NsSmartDeviceLinkRPCV2::Result& resultCode_);
-
- void reset_info(void);
- bool set_info(const std::string& info_);
-
- protected:
- /**
- *\brief Correlation Id of Json message.
- */
- unsigned int mCorrelationID;
-
- /**
- true, if successful
- false, if failed
- */
- bool success;
-
- /// See Result
- NsSmartDeviceLinkRPCV2::Result resultCode;
-
- /// Provides additional human readable info regarding the result.
- std::string* info; //!< (1000)
- };
-}
-
-#endif // ALRPCRESPONSE_INCLUDE
diff --git a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/convertGpRPC.sh b/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/convertGpRPC.sh
deleted file mode 100755
index bec91390d..000000000
--- a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/convertGpRPC.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-x=`ls ../src/RPC2ObjectsImpl/*.gp`
-echo $x
-for fx in $x
-do
- filename="${fx%.*}"
- echo $filename
- gperf $fx --output-file=$filename.inc
-done
diff --git a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/convertGpSDLink.sh b/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/convertGpSDLink.sh
deleted file mode 100755
index 59451bb1d..000000000
--- a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/convertGpSDLink.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-x=`ls ../src/SDLRPCObjectsImpl/V2/*.gp`
-echo $x
-for fx in $x
-do
- filename="${fx%.*}"
- echo $filename
- gperf $fx --output-file=$filename.inc
-done
diff --git a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/idlgen.yp b/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/idlgen.yp
deleted file mode 100755
index a1faaee8c..000000000
--- a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/idlgen.yp
+++ /dev/null
@@ -1,1652 +0,0 @@
-#!/usr/bin/yapp
-# $Id$
-
-%{
- use IO::Handle;
- use Data::Dumper;
- use File::Spec;
- use Cwd;
-
- sub lex_open;
- sub lex_close;
- sub lex_next;
-
-%}
-# _number _ident raw comment
-%%
-
-
-all: interface { [$_[1]];}
-| all interface { push @{$_[1]},$_[2]; $_[1]; }
-;
-
-interface: 'interface' namespace '{' prefix_section main_section '}' { { 'name' => $_[2], 'defs' => $_[4], 'data' => $_[5]}; }
-;
-
-prefix_section: prefix_section_item { [$_[1]]; }
-| prefix_section prefix_section_item { push @{$_[1]},$_[2]; $_[1]; }
-;
-
-prefix_section_item: 'version' _string ';' { [$_[1],$_[2]];}
-| 'prefix' _string ';' { [$_[1],$_[2]];}
-;
-
-namespace: _ident { $_[1];}
-| namespace '::' _ident { sprintf "%s::%s",$_[1],$_[3]; }
-;
-
-main_section: definition { [$_[1]]; }
-| main_section definition { push @{$_[1]},$_[2]; $_[1]; }
-;
-
-definition: notword _ident '(' arglist2 ')' ';' { ['method',0, $_[2], $_[4]]; }
-| _ident '(' arglist2 ')' ';' { ['method',1, $_[1], $_[3], []]; }
-| _ident '(' arglist2 delim arglist2 ')' ';' { ['method',1, $_[1], $_[3], $_[5]]; }
-;
-
-
-notword: 'oneway'
-| 'notification'
-;
-
-delim: '->' | ';'
-;
-
-
-arglist2: { [];}
-| arglist { $_[1]; }
-;
-
-arglist: arg { [$_[1]];}
-| arglist ',' arg { push @{$_[1]},$_[3];$_[1];}
-;
-
-arg: type constraint pointer _ident array { [$_[1],$_[2],$_[3],$_[4],$_[5]];}
-;
-
-
-type: 'bool' { 'b'; }
-| 'unsigned' 'int' { 'u' }
-| 'int' { 'i' }
-| 'string' { 's';}
-| 'float' { 'f'; }
-| _ident { [$_[1]]; }
-;
-
-constraint: { [undef,undef]; }
-| '(' _number cd _number ')' { [$_[2],$_[4]]; }
-| '(' cd _number ')' { [undef,$_[3]]; }
-| '(' _number cd ')' { [$_[2],undef]; }
-| '(' _number ')' { [undef,$_[2]]; }
-;
-
-
-cd: ':' { $_[1]; }
-| '~' { $_[1]; }
-;
-
-pointer: { ''; }
-| '*' { '*'; }
-;
-
-array: { ''; }
-| '[' ']' { [0,undef]; }
-| '[' _number cd _number ']' { [$_[2],$_[4]]; }
-| '[' cd _number ']' { [undef,$_[3]]; }
-| '[' _number cd ']' { [$_[2],undef]; }
-| '[' _number ']' { [undef,$_[2]]; }
-;
-
-%%
-
-
-use strict;
-
-sub lex_open
-{
- my $fn=shift;
-
-my $lx=
-{
- 'keywords'=> [
- '(::|;|-\>|\[|\]|\)|\(|\*|:|,|\{|\})',
- '(interface)',
- '(int)',
- '(unsigned)',
- '(bool)',
- '(float)',
- '(string)',
- '(version)',
-# '(using)',
- '(prefix)',
- '(notification)',
- '(oneway)'
- ],
- 'tokens'=> {
-# _number => '(\-?\d+)',
-# _dnumber => '(\-?((\d+\.\d*)|(\.\d+))([eE]\-?\d+)?)',
- _number => #'(\-?((\d+\.\d*)|(\.\d+))([eE]\-?\d+)?)',
- '(\-?((\d+\.\d*)|(\.\d+)|(\d+))([eE]\-?\d+)?)',
- _ident => '([a-zA-Z][a-zA-Z_0-9]*)',
-# _inumber => '(\-?\d+)',
-# _pinumber => '(\d+)',
- _string =>"\"(([^\\\\\"]|(\\\\(([abfnrtvUEu'\"?\\\\])|([0-7]{1,3})|(x[0-9a-fA-F]+))))*?)\""
- },
-
- 'file' => $fn,
- 'cfile'=> $fn,
- 'line' => 0,
- 'input' => ''
-};
-
- $lx->{'fh'}=IO::Handle->new();
-# open($lx->{'fh'},'<',$lx->{'file'}) or die "Can't open file ".$lx->{'file'};
- open($lx->{'fh'},'-|',sprintf('cpp %s',$lx->{'file'})) or die "Can't open file ".$lx->{'file'};
- return $lx;
-}
-
-
-sub lex_close
-{
- my $lx=shift;
-
- die if not ref $lx;
- close $lx->{'fh'};
-}
-
-
-sub lex_next
-{
- my $lx=shift;
-
- while(1)
- {
- if(not $lx->{'input'})
- {
- my $f=$lx->{'fh'};
- do
- {
- $lx->{'input'}=<$f>;
- $lx->{'line'}++;
- return undef if not defined $lx->{'input'};
- if($lx->{'input'}=~/^#\s+(\d+)\s+"(.+)"/)
- {
- $lx->{'cfile'}=$2;
- $lx->{'line'}=$1;
- $lx->{'input'}='';
- redo;
- }
-
- $lx->{'input'}=~s/^\s+//;
- $lx->{'input'}=~s/\n+$//gs;
- } while($lx->{'input'}=~/^\s*$/);
- }
-
- my $k;
- for $k (@{$lx->{'keywords'}})
- {
- return ($1,$1) if($lx->{input}=~s/^\s*$k$//);
- return ($1,$1) if($lx->{input}=~s/^\s*$k\s+//);
- return ($1,$1) if($lx->{input}=~s/^\s*$k\b//);
-# return ($1,$1) if($lx->{input}=~s/^\s*$k//);
- return ($1,$1) if($lx->{input}=~s/^\s*$k(\W)/$2/);
- }
-
- for $k (sort keys %{$lx->{'tokens'}})
- {
- my $v=$lx->{'tokens'}->{$k};
- return ($k,$1) if($lx->{input}=~s/^\s*$v\s*//);
- }
- die sprintf "lexer error at %s:%u\n>>>%s",$lx->{'cfile'},$lx->{'line'},$lx->{'input'};
- }
-}
-
-
-
-sub _Error {
- my $self=shift;
-=pod=
- exists $self->YYData->{'ERRMSG'}
- and do {
- print $self->YYData->{'ERRMSG'};
- delete $self->YYData->{'ERRMSG'};
- return;
- };
-=cut=
- die sprintf "Syntax error in %s:%u\nCurtok:\t'%s':\nCurval:\t'%s':\nExpected:\t'%s':\n",
- $self->YYData->{'DATA'}[0]->{'cfile'},
- $self->YYData->{'DATA'}[0]->{'line'},
- ($self->YYCurtok),($self->YYCurval),($self->YYExpect);
-
-# printf STDERR "File:%s\nLine:%s\n",$self->YYData->{DATA}[0]->{'curfilename'},
-# $self->YYData->{DATA}[0]->{'curline'};
-# die Dumper($self->YYCurtok,$self->YYCurval,$self->YYExpect,$self->YYData->{DATA}[0]);
-}
-
-sub _Lexer {
- my($parser)=shift;
- return lex_next($parser->YYData->{'DATA'}[0]);
-}
-
-sub Run {
- my($self)=shift;
- my $fname=shift;
- my $lx=lex_open($fname);
-
-
- $self->YYData->{'DATA'}=[$lx];
- my $rv=$self->YYParse( 'yylex' => \&_Lexer, 'yyerror' => \&_Error
-# ,yydebug => 0x1f
- );
- lex_close($lx);
- return $rv;
-}
-
-package main;
-use Data::Dumper;
-
-
-my %config;
-
-# args parse
-sub args_parse
-{
- my @args=@ARGV;
- my $t;
- while($t=shift @args)
- {
- if($t eq '-i') { $config{'idl'}=shift @args; next; }
- if($t eq '-o') { $config{'gen'}=shift @args; $config{'pimpl'}=shift @args; $config{'lib'}=shift @args; next; }
- if($t eq '-f') { $config{'alrpc'}=shift @args; $config{'aimpl'}=shift @args; next; }
- if($t eq '-b') { $config{'base'}=shift @args; next; }
-
- if($t eq '-n') { $config{'ns'}=shift @args; next; }
- if($t eq '-fn') { $config{'nsa'}=shift @args; next; }
- if($t eq '-g') { $config{'pragma'}=1; next; }
- if($t eq '-s') { $config{'style'}=shift @args; next; }
- if($t eq '-sh') { $config{'sh'}=shift @args; next; }
- if($t eq '-sc') { $config{'sc'}=shift @args; next; }
- if($t eq '-ee') { $config{'ee'}=1; next; }
-# if($t eq '-a') { $config{'abs'}=1; next; }
- if($t eq '-m') { $config{'mk'}=shift @args; next; }
-
- die 'unknown in command line '.$t;
- }
-}
-
-args_parse();
-
-die 'no input' if not exists $config{'idl'};
-die sprintf "cant open input idl %s",$config{'idl'} if not -e $config{'idl'};
-
-die 'path not defined' if $config{'lib'} eq '';
-
-$config{'base'}='rpc2' if not exists $config{'base'};
-$config{'gen'}='include' if not exists $config{'gen'};
-$config{'pimpl'}='src' if not exists $config{'pimpl'};
-
-
-my $parser=new idlgen;
-
-my $list=$parser->Run($config{'idl'});
-
-# .o files dependencies
-my $mkdep=[];
-# all files with path
-my $mklist=[];
-
-my %data;
-my %global;
-my %funcs;
-my %wire;
-
-foreach(@$list)
-{
- die sprintf "duplicate interface name %s in idl",$_->{'name'} if exists $data{$_->{'name'}};
- my $p=$_;
- $data{$p->{'name'}}={};
-
- if(exists $p->{'defs'})
- {
- foreach(@{$p->{'defs'}})
- {
- printf STDERR "warning, %s redefined to %s in interface %s\n",$_->[0],$_->[1],$p->{'name'} if exists $data{$p->{'name'}}->{$_->[0]};
- $data{$p->{'name'}}->{$_->[0]}=$_->[1];
- }
- }
- else
- {
- $data{$p->{'name'}}->{'version'}='not defined';
- $data{$p->{'name'}}->{'prefix'}='';
- }
- $data{$p->{'name'}}->{'funcs'}={};
-
- if(not exists $p->{'data'} or @{$p->{'data'}}==0)
- {
- printf STDERR "warning, no methods defined in interface %s\n",$p->{'name'};
- next;
- }
- foreach(@{$p->{'data'}})
- {
- my $t=$_;
- shift @$t;
- die sprintf "method %s defined twice at interface %s",$t->[1],$p->{'name'} if exists $data{$p->{'name'}}->{'funcs'}->{$t->[1]};
- my $fqn=sprintf "%s%s",$data{$p->{'name'}}->{'prefix'},$t->[1];
- printf STDERR "methods %s and %s in interfaces %s and %s have same wire name %s",$t->[1],$wire{$fqn}->[1],$p->{'name'},$wire{$fqn}->[0],$fqn
- if exists $wire{$fqn};
- $wire{$fqn}=[$p->{'name'},$t->[1]];
- $data{$p->{'name'}}->{'funcs'}->{$t->[1]}=$t;
- }
-}
-
-sub interface;
-
-
-my ($path,$pimpl,$lib,$p2i,$i2p,$i2l,$i2a,$p2a,$p2p,$p2m);
-
-my ($ns,$nsa,$timemod,$pragma);
-
-my $sh=exists $config{'sh'} ? $config{'sh'} : 'hh';
-my $sc=exists $config{'sc'} ? $config{'sc'} : 'cc';
-my $timestamp=gmtime(time());
-
-$pragma = sprintf "#pragma GCC dependency \"%s\"\n\n",Cwd::realpath($config{'idl'}) if exists $config{'pragma'};
-
-{
- my @a=stat $config{'idl'};
- $timemod=gmtime(@a[9]);
- undef @a;
-}
-
-sub getfort
-{
- my $x=`fortune -s`;
-
- $x=~s/\*\//* \//gs;
- $x=~s/\/\*/\/ \*/gs;
- return $x eq '' ? '' : sprintf "/*\n%s*/\n\n",$x;
-}
-
-my $dd=`ddate`;
-$dd=~s/\n/ /gs;
-
-my $lib=$config{'lib'};
-$lib ='lib' if $lib eq '';
-$lib=~s/\/$//;
-$lib.='/';
-
-my $base=$config{'base'};
-$base=~s/\/\//\//;
-$base=~s/\/$//;
-$base.='/';
-
-$p2m=sprintf "%s/%s/",$config{'base'},$config{'gen'};
-$p2m=~s/\/\//\//;$p2m=~s/\/$//;$p2m.='/';
-
-my %json=(
- 'f' => 'Double',
- 'i' => 'Int',
- 'u' => 'Int',
- 'b' => 'Bool',
- 's' => 'String'
-);
-
-my %json2=(
- 'f' => 'Numeric',
- 'i' => 'Int',
- 'u' => 'Int',
- 'b' => 'Bool',
- 's' => 'String'
-);
-
-my @gclasses;
-my @gnclasses;
-
-foreach(sort keys %data)
-{
- my $p=$_;
- undef %funcs;
- undef %global;
- %funcs=%{$data{$p}->{'funcs'}};
- $global{'interface'}=$p;
- $global{'version'}=$data{$p}->{'version'};
- $global{'prefix'}=$data{$p}->{'prefix'};
-
- my $t=$p;
- $t=~s/::/\//g;
-
- $path=sprintf "%s/%s/%s",$config{'base'},$config{'gen'},$t;
- $path=~s/\/\//\//;
- $path=~s/\/$//;
- $path.='/';
-
- $pimpl=sprintf "%s/%s/%s",$config{'base'},$config{'pimpl'},$t;
- $pimpl=~s/\/\//\//;
- $pimpl=~s/\/$//;
- $pimpl.='/';
-
-=pod=
- $p2i=File::Spec->abs2rel($path,$pimpl);
- $i2p=File::Spec->abs2rel($pimpl,$path);
- $i2l=File::Spec->abs2rel($lib,$path);
-
-# $p2m=File::Spec->abs2rel(sprintf "%s/%s",$config{'base'},$config{'gen'},$pimpl) if not exists $config{'abs'};
-
- $i2a=File::Spec->abs2rel($config{'alrpc'},$path);
- $p2a=File::Spec->abs2rel($config{'alrpc'},$pimpl);
- $p2p=File::Spec->abs2rel($config{'aimpl'},$pimpl);
-
- $p2i=$path if exists $config{'abs'};
- $i2p=$pimpl if exists $config{'abs'};
- $i2l=$lib if exists $config{'abs'};
-
- $i2a=$config{'alrpc'} if exists $config{'abs'};
- $p2a=$config{'alrpc'} if exists $config{'abs'};
- $p2p=$config{'aimpl'} if exists $config{'abs'};
-=cut=
-
-# $p2m=File::Spec->abs2rel(sprintf "%s/%s",$config{'base'},$config{'gen'},$pimpl) if not exists $config{'abs'};
-
- $p2i=$path;
- $i2p=$pimpl;
- $i2l=$lib;
- $i2a=$config{'alrpc'};
- $p2a=$config{'alrpc'};
- $p2p=$config{'aimpl'};
-
-
- $p2i=~s/\/$//;$p2i=~s/\/\//\//;
- $i2p=~s/\/$//;$i2p=~s/\/\//\//;
- $i2l=~s/\/$//;$i2l=~s/\/\//\//;
- $i2a=~s/\/$//;$i2a=~s/\/\//\//;
- $p2a=~s/\/$//;$p2a=~s/\/\//\//;
- $p2p=~s/\/$//;$p2p=~s/\/\//\//;
- $p2m=~s/\/$//;$p2m=~s/\/\//\//;
-
- interface($p);
-}
-
-
-
-# code let's rock!
-# generation block!
-# :L
-
-
-
-sub mkpath
-{
- my $x=shift;
- my $s=shift;
-# $x=$path.'/'.$x.'.'.$s;
- $x.='.'.$s;
- push @$mklist,$x;
- push @$mkdep,$x if $s eq $sc;
- return '>'.$x if not exists $config{'style'};
- return sprintf "| %s > %s",$config{'style'},$x;
-}
-
-sub printhat
-{
- my $n=shift;
- my $p=shift;
- return sprintf "#ifndef %s%s_INCLUDE\n#define %s%s_INCLUDE\n\n%s",$p,uc $n,$p,uc $n,$pragma;
-}
-
-sub check
-{
- my $z=$_;
-# die Dumper($z);
-# my $isarr= ref $z->[4];
-# my $isstr= $z->[0] eq 's';
-# my $isint= not ref $z->[0];
-# my $isopt= $z->[2] eq '*';
-
- return '' if not ref $z->[0] and not ref $z->[4] and not defined $z->[1]->[0] and not defined $z->[1]->[1];
- return '' if not ref $z->[0] and ref $z->[4] and not defined $z->[4]->[0] and not defined $z->[4]->[1]
- and not defined $z->[1]->[0] and not defined $z->[1]->[1];
-
-
- my $n=$z->[3];
- my $n2=$n.( $z->[2] eq '*' ? '[0]' : '');
- my $n3=$n2.(ref $z->[4] ? '[i]' : '');
- my $tp= ref $z->[0] ? $z->[0]->[0] : $z->[0];
- my $c;
-
- if(ref $z->[1] and (defined $z->[1]->[0] or defined $z->[1]->[1]))
- {
- my $c2= $z->[0] eq 's' ? '.length()' : '';
- if(defined $z->[1]->[0] and defined $z->[1]->[1])
- {
- $c=sprintf "s.#iname#%s<%s || s.#iname#%s>%s",$c2,$z->[1]->[0],$c2,$z->[1]->[1];
- }
- else
- {
- $c=sprintf "s.#iname#%s<%s",$c2,$z->[1]->[0] if defined $z->[1]->[0];
- $c=sprintf "s.#iname#%s>%s",$c2,$z->[1]->[1] if defined $z->[1]->[1];
- }
- }
-
- $c='!#type#Marshaller::checkIntegrityConst(s.#iname#)' if ref $z->[0];
-
- if($c ne '' or ref $z->[4])
- {
- if(ref $z->[4])
- {
- my $q;
- $q=" if(s.#name#)\n" if $z->[2] eq '*';
- $q.=" {\n unsigned int i=s.#pname#.size();\n";
- $q.=sprintf " if(i<%s) return false;\n",$z->[4]->[0] if defined $z->[4]->[0];
- $q.=sprintf " if(i>%s) return false;\n",$z->[4]->[1] if defined $z->[4]->[1];
- if(defined $z->[1]->[0] or defined $z->[1]->[1])
- {
- $q.=" while(i--)\n {\n";
- $q.=" if($c) return false;\n";
- $q.=" }\n";
- }
- $q.=" }\n";
- $c=$q;
- }
- else
- {
- $c= $z->[2] eq '*' ? sprintf " if(s.#name# && (%s)) return false;\n",$c
- : sprintf " if(%s) return false;\n",$c;
- }
- }
-
- $c=~s/#pname#/$n2/gs;
- $c=~s/#iname#/$n3/gs;
- $c=~s/#name#/$n/gs;
- my $tp2=ref $z->[0] ? $nsa.'::'.$tp :$tp;
- $c=~s/#type#/$tp2/gs;
-
- return $c ? "$c\n" : '';
-}
-
-
-sub interface
-{
-
- my $iface=shift;
-
-#print "global settings:\n",Dumper(\%global);
-#print "methods:\n",Dumper(\%funcs);
-
-my $using0;
-
-$ns=$config{'ns'};
-$nsa=$config{'nsa'};
-
-
-`mkdir -p $path`;
-`mkdir -p $pimpl`;
-
-
-my $hat=sprintf "\n/*\n interface\t%s\n version\t%s\n generated at\t%s\n source stamp\t%s\n author\tRC\n*/\n\n",
- $global{'interface'},$global{'version'},$timestamp,$timemod;
-
-$hat= sprintf "\n// %s%s",$dd,$hat if exists $config{'ee'} and $dd ne '';
-
-
-my @nss=split('::',$global{'interface'});
-unshift @nss,split('::',$ns) if $ns ne '';
-
-my $nsbra='';
-my $nsket='';
-
-if(@nss)
-{
- my $i='';
- foreach(@nss)
- {
- $nsbra.=sprintf "%snamespace %s\n%s{\n",$i,$_,$i;
- $nsket=sprintf "%s}\n%s",$i,$nsket;
- $i.=' ';
- }
-}
-
-#my $ind= @nss ? (' ' x scalar @nss) : '';
-my $ind= @nss ? ' ' x @nss : '';
-my $using; #="using namespace NsRPC2Communication;\n";
-#$using.=sprintf "using namespace %s;\n",$nsa if $nsa ne '';
-$using.=sprintf "using namespace %s;\n",join('::',@nss) if @nss;
-
-my $using2; #="using namespace NsRPC2Communication;\n";
-$using2.=sprintf "using namespace %s;\n",join('::',@nss) if @nss;
-
-my $nsap='';
-$nsap=$nsa.'::' if $nsa;
-
-my $prefix=@nss ? uc join('_',@nss) : '';
-$prefix.='_' if @nss;
-
-
-my @classes;
-foreach(sort keys %funcs)
-{
- push @classes,$_;
- push @classes,$_."Response" if $funcs{$_}->[0]==1;
- my $g=[];
- @$g=split('::',$iface);
- push @gclasses,[$iface,$_,$g,$global{'prefix'}];
- push @gclasses,[$iface,$_."Response",$g,$global{'prefix'}] if $funcs{$_}->[0]==1;
-}
-
-open(FO,mkpath($path.'RPC2',$sh)) or die;
-print FO printhat('RPC2',$prefix);
-#printf FO "#ifndef %s%s_INCLUDE\n#define %sRPC2_INCLUDE\n\n%s",$prefix,$prefix,$pragma;
-print FO "#include <string>\n#include <json/json.h>\n\n";
-printf FO "#include \"%s%s.%s\"\n",$path,$_,$sh foreach @classes;
-printf FO "\n#include \"%s/Marshaller.%s\"\n\n",$p2m,$sh;
-
-print FO $hat;
-print FO "\n#endif\n";
-close FO;
-
-my @nclasses;
-foreach(sort keys %funcs)
-{
- my $d=$_;
- if($funcs{$d}->[0]==0)
- {
- my $r=[$d,$d,0,0,0,[]]; # method name, class name, type, hasstr,hasarr, list of external entities from SmartDeviceLink
-
- foreach(@{$funcs{$d}->[2]})
- {
- $r->[3]=1 if $_->[0] eq 's';
- $r->[4]=1 if ref $_->[4];
- push @{$r->[5]},$_->[0]->[0] if ref $_->[0];
- }
- push @nclasses,$r;
- my $r2=[$iface];
- push @$r2,@$r;
- push @gnclasses,$r2;
- next;
- }
- my $r=[$d,$d,1,0,0,[]];
- my $r2=[$iface];
- foreach(@{$funcs{$d}->[2]})
- {
- $r->[3]=1 if $_->[0] eq 's';
- $r->[4]=1 if ref $_->[4];
- push @{$r->[5]},$_->[0]->[0] if ref $_->[0];
- }
- push @$r2,@$r;
- push @gnclasses,$r2;
- push @nclasses,$r;
-
- $r=[$d,$d.'Response',2,0,0,[]];
- $r2=[$iface];
-
- foreach(@{$funcs{$d}->[3]})
- {
- $r->[3]=1 if $_->[0] eq 's';
- $r->[4]=1 if ref $_->[4];
- push @{$r->[5]},$_->[0]->[0] if ref $_->[0];
- }
- push @$r2,@$r;
- push @gnclasses,$r2;
- push @nclasses,$r;
-}
-
-my @tp=qw{RPC2Notification RPC2Request RPC2Response};
-
-my %tps=
-(
- 'b' => 'bool',
- 'i' => 'int',
- 'u' => 'unsigned int',
- 's' => 'std::string',
- 'f' => 'float'
-);
-
-my $useext=0;
-
-# !!! check moved
-
-foreach(@nclasses)
-{
- my $f=$_;
- my $n=$f->[1];
- my $base=@tp[$f->[2]];
- my @args;
- {
- my $n=2;
- $n=3 if $f->[2]==2;
- @args=@{$funcs{$f->[0]}->[$n]};
- }
-
- my $mname=sprintf 'METHOD_%s__%s',uc join('_',split('::',$iface)),uc $n;
-
- open(FO,mkpath($path.$n,$sh)) or die;
- print FO printhat ($n,$prefix);
-# check vector/string
- print FO "#include <string>\n" if $f->[3]==1;
- print FO "#include <vector>\n" if $f->[4]==1;
-
- printf FO qq!#include "%s/%s.h"\n!,$i2l,$base;
-
- print FO "\n";
-# check foreign classes
- printf FO qq!#include "%s/%s.%s"\n!,$i2a,$_,$sh foreach @{$f->[5]};
-
- print FO $hat;
- print FO $nsbra;
-
- my $t=qq!\nclass #name# : public ::NsRPC2Communication::#base#\n{\npublic:\n\n #name#(const #name#& c);\n #name#(void);\n\n!.
- qq! #name#& operator =(const #name#&);\n\n virtual ~#name#(void);\n\n bool checkIntegrity(void);\n!;
-
-
- $t=~s/\n/\n$ind/gs;
- $t=~s/#name#/$n/gs;
- $t=~s/#base#/$base/gs;
-
- print FO $t."\n";
-
-# gettes/setters
-
- my $g;
- my $s;
- my $p;
-
- foreach(@args)
- {
- my $z=$_;
-# die Dumper($z);
-# my $isarr= ref $z->[4];
-# my $isstr= $z->[0] eq 's';
-# my $isint= not ref $z->[0];
-# my $isopt= $z->[2] eq '*';
-
- my $nm=$z->[3];
- my $tp= ref $z->[0] ? $z->[0]->[0] : exists $tps{$z->[0]} ? $tps{$z->[0]} : $z->[0];
- $tp=$nsa.'::'.$tp if ref $z->[0];
-# $tp='::'.$tp if ref $z->[0];
- $tp=sprintf("std::vector< %s>",$tp) if ref $z->[4];
-
- my $r;
- my $u;
-# constraints in comments
-
- my $cmt;
- {
- my $l;
- my $r;
- my $m;
- $l=sprintf "%s <= ",$z->[1]->[0] if ref $z->[1] and defined $z->[1]->[0];
- $r=sprintf " <= %s",$z->[1]->[1] if ref $z->[1] and defined $z->[1]->[1];
-
- if($l or $r)
- {
- $cmt=$nm;
- $cmt.='[]' if ref $z->[4];
- $cmt=$l.$cmt if $l;
- $cmt.=$r if $r;
- }
-
- if(ref $z->[4] and defined $z->[4]->[0] and defined $z->[4]->[1]) # array
- {
- $cmt.=" ; " if $cmt;
- $cmt.=sprintf "%s <= ",$z->[4]->[0] if defined $z->[4]->[0];
- $cmt.="size";
- $cmt.=sprintf " <= %s",$z->[4]->[1] if defined $z->[4]->[1];
- }
- }
- $cmt=sprintf "/// %s\n",$cmt if $cmt;
-
-# printf FO Dumper($z);
- $u.=$cmt;
- if($z->[2] eq '*')
- {
- $r=sprintf " %sconst %s* get_%s(void);\n",$ind,$tp,$nm;
-
- $u.=sprintf " %sbool set_%s(const %s& %s);\n\n",$ind,$nm,$tp,$nm;
- $u.=sprintf " %svoid reset_%s(void);\n\n",$ind,$nm;
- $p.=sprintf " %s%s* %s;\n",$ind,$tp,$nm;
- }
- elsif((not ref $z->[0]) and $z->[0] ne 's' and not ref $z->[4])
- {
- $r=sprintf " %s%s get_%s(void);\n\n",$ind,$tp,$nm;
- $u.=sprintf " %sbool set_%s(%s %s);\n\n",$ind,$nm,$tp,$nm;
- $p.=sprintf " %s%s %s;\n",$ind,$tp,$nm;
- }
- else
- {
- $r=sprintf " %sconst %s& get_%s(void);\n\n",$ind,$tp,$nm;
- $u.=sprintf " %sbool set_%s(const %s& %s);\n\n",$ind,$nm,$tp,$nm;
- $p.=sprintf " %s%s %s;\n",$ind,$tp,$nm;
- }
-
-=pod=
-reserve space for future bug fixing
-:-)
-=cut=
- $g.=$r;
- $s.=$u;
- }
-
- print FO "// getters\n" if $g ne '';
- print FO $g;
- print FO "\n// setters\n" if $s ne '';
- print FO $s;
-
- printf FO qq!\n%sprivate:\n\n%s friend class %sMarshaller;\n\n!,$ind,$ind,$n;
-
- print FO $p;
-
-
- printf FO "\n%s};\n",$ind;
-
- print FO $nsket;
- print FO "\n#endif\n";
- close FO;
-
-# implementations, ooh
-
- open(FO,mkpath($pimpl.$n.'Marshaller',$sh)) or die;
- print FO printhat($n.'Marshaller',$prefix);
-
- print FO "#include <string>\n#include <json/json.h>\n\n";
- printf FO qq!#include "%s/%s.%s"\n!,$p2i,$n,$sh;
-
- print FO "\n".$nsbra;
- my $z=qq!\nstruct #Marshaller\n{\n static bool checkIntegrity(#& e);\n!.
-qq! static bool checkIntegrityConst(const #& e);\n\n static bool fromString(const std::string& s,#& e);\n!.
-qq! static const std::string toString(const #& e);\n\n static bool fromJSON(const Json::Value& s,#& e);\n!.
-qq! static Json::Value toJSON(const #& e);!;
-
- $z=~s/\n/\n$ind/gs;
- $z=~s/#/$n/gs;
-
- print FO $z;
-
- printf FO "\n%s};\n",$ind;
-
- print FO $nsket;
- print FO "\n#endif\n";
- close FO;
-
-# *Marshaller.cc
-
- open(FO,mkpath($pimpl.$n.'Marshaller',$sc)) or die;
- print FO $pragma;
-
- printf FO qq!#include "%s/%s.%s"\n!,$p2i,$n,$sh;
-
- printf FO qq!#include "%s/%sMarshaller.%s"\n!,$p2p,$_,$sh foreach @{$f->[5]};
- printf FO qq!#include "%s/ResultMarshaller.%s"\n!,$p2p,$sh;
-# printf FO qq!#include "%s/Marshaller.%s"\n!,$i2a,$sh;
-
- printf FO qq!#include "%s%sMarshaller.%s"\n!,$pimpl,$n,$sh;
- print FO $hat;
-
- {
- my $o=getfort();
- print FO $o if exists $config{'ee'} and $o ne '';
- }
-
-
- my $jf='params';
- $jf='result' if $f->[2]==2;
-
- {
- my $t='';
-# $t=1 if $f->[2] == 2;
- foreach(@args)
- {
- $t=1 if ref $_->[0];
- }
- $using0= $t ? $using : $using2;
- $useext=1 if $t==1;
- }
-# print FO $using0;
- print FO $using;
-
- $z=qq~\nbool #Marshaller::checkIntegrity(#& s)\n{\n return checkIntegrityConst(s);\n}\n\n\nbool #Marshaller::fromString(const std::string& s,#& e)\n~.
- qq~{\n try\n {\n Json::Reader reader;\n Json::Value json;\n if(!reader.parse(s,json,false)) return false;\n~.
- qq~ if(!fromJSON(json,e)) return false;\n }\n catch(...)\n {\n return false;\n }\n return true;\n}\n\n\n~.
- qq~const std::string #Marshaller::toString(const #& e)\n{\n Json::FastWriter writer;\n return checkIntegrityConst(e) ? writer.write(toJSON(e)) : ~.
- qq~"";\n}\n\n\nbool #Marshaller::checkIntegrityConst(const #& s)\n{\n~;
-
- $z=~s/#/$n/gs;
- print FO $z;
-
-# there are 12 cases. try to pack them, MDL rulezzz!
- print FO check($_) foreach @args;
-
- print FO qq! return true;\n}\n\n\n!;
-
- printf FO qq~Json::Value %sMarshaller::toJSON(const %s& e)\n{\n Json::Value json(Json::objectValue);\n~.
-qq~ if(!checkIntegrityConst(e))\n return Json::Value(Json::nullValue);\n\n~,$n,$n;
-
- my $pr;
- $pr=qq~ json["params"]=Json::Value(Json::objectValue);\n~ if @args;
-
- printf FO qq~ json["jsonrpc"]=Json::Value("2.0");\n json["method"]=Json::Value("%s%s");\n%s\n~,
- $global{'prefix'},$n,$pr if $f->[2] == 0;
- printf FO qq~ json["jsonrpc"]=Json::Value("2.0");\n json["method"]=Json::Value("%s%s");\n\n~.
-qq~ json["id"]=Json::Value(e.getId());\n%s~,$global{'prefix'},$n,$pr if $f->[2] == 1;
- printf FO qq~ json["jsonrpc"]=Json::Value("2.0");\n json["id"]=Json::Value(e.getId());\n json["result"]=Json::Value(Json::objectValue);\n~.
-qq~ ~.$nsap.qq~Result r(static_cast<~.$nsap.qq~Result::ResultInternal>(e.getResult()));\n json["result"]["resultCode"]=~.$nsap.qq~ResultMarshaller::toJSON(r);\n~.
-qq~ json["result"]["method"]=Json::Value("%s%s");\n\n~,$global{'prefix'},$n if $f->[2] == 2;
-
- foreach(@args)
- {
- my $z=$_;
- my $q; $q='[0]' if $z->[2] eq '*';
- printf FO " if(e.%s)\n",$z->[3] if $z->[2] eq '*';
-
- my $u='Json::Value';
- $u=sprintf '%s::%sMarshaller::toJSON',$nsa,$z->[0]->[0] if ref $z->[0];
-
- if(ref $z->[4])
- {
- printf FO qq~ {\n unsigned int i=e.%s%s.size();\n Json::Value j=Json::Value(Json::arrayValue);\n~.
-qq~ j.resize(i);\n while(i--)\n j[i]=%s(e.%s%s[i]);\n\n json["%s"]["%s"]=j;\n }\n~,$z->[3],$q,$u,$z->[3],$q,$jf,$z->[3];
-
- }
- else
- {
- print FO ' ' if $q;
- printf FO qq~ json["%s"]["%s"]=%s(e.%s%s);;\n~,$jf,$z->[3],$u,$z->[3],$q;
- }
-
- }
-
- print FO " return json;\n}\n\n\n";
-
- printf FO qq~bool %sMarshaller::fromJSON(const Json::Value& json,%s& c)\n{\n try\n {\n if(!json.isObject()) return false;\n~.
-qq~ if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;\n~,$n,$n;
-
-
- if($f->[2]==0) #notify
- {
- printf FO qq~ if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("%s%s")) return false;\n~,$global{'prefix'},$n;
- print FO
-qq~ if(!json.isMember("params")) return false;\n\n Json::Value js=json["params"];\n if(!js.isObject()) return false;\n\n~ if @args;
-
- }
- elsif($f->[2]==1) #request
- {
- printf FO qq~ if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("%s%s")) return false;\n~.
-qq~ if(!json.isMember("id") || !json["id"].isInt()) return false;\n c.setId(json["id"].asInt());\n\n~,$global{'prefix'},$n;
- print FO
-qq~ if(!json.isMember("params")) return false;\n\n Json::Value js=json["params"];\n if(!js.isObject()) return false;\n~ if @args;
-
- }
- elsif($f->[2]==2) #response
- {
- printf FO qq~ if(!json.isMember("id") || !json["id"].isInt()) return false;\n c.setId(json["id"].asInt());\n\n~.
-qq~ if(!json.isMember("result")) return false;\n\n Json::Value js=json["result"];\n~.
-qq~ if(!js.isObject()) return false;\n\n ~.$nsap.qq~Result r;\n if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;\n~.
-qq~ if(!js.isMember("method") || !js["method"].isString()) return false;\n if(js["method"].asString().compare("%s%s")) return false;\n\n~.
-qq~ if(!~.$nsap.qq~ResultMarshaller::fromJSON(js["resultCode"],r)) return false;\n c.setResult(r.get());\n~,$global{'prefix'},$n;
-
- }
- else
- {
- die 'something wrong in our kingdom';
- }
-# deep deep tree :-)
-
- foreach(@args)
- {
- my $z=$_;
- my $l;
-
- my $ct;
- if(ref $z->[1] and (defined $z->[1]->[0] or defined $z->[1]->[1]))
- {
- my $c2= $z->[0] eq 's' ? '.length()' : '';
- if(defined $z->[1]->[0] and defined $z->[1]->[1])
- {
- $ct=sprintf "#aname#%s<%s || #aname#%s>%s",$c2,$z->[1]->[0],$c2,$z->[1]->[1];
- }
- else
- {
- $ct=sprintf "#aname#%s<%s",$c2,$z->[1]->[0] if defined $z->[1]->[0];
- $ct=sprintf "#aname#%s>%s",$c2,$z->[1]->[1] if defined $z->[1]->[1];
- }
- $ct=sprintf "if(%s) return false;\n",$ct if $ct;
- my $f=$z->[3];
- $f.='[0]' if $z->[2] eq '*';
- if(ref $z->[4])
- {
- $f.='[i]';
- }
- $ct=~s/#aname#/c.$f/gs if $ct;
- }
-
-
- if(ref $z->[4]) #array
- {
- my $ca;
-
- $ca.=sprintf " if(i<%s) return false;\n",$z->[4]->[0] if defined $z->[4]->[0];
- $ca.=sprintf " if(i>%s) return false;\n",$z->[4]->[1] if defined $z->[4]->[1];
-
- if($z->[2] eq '*') #array optional
- {
- if(ref $z->[0]) #array optional not simple type
- {
-$l=qq~ if(c.#name#) delete c.#name#;\n c.#name#=0;\n~.
- qq~ if(js.isMember("#name#"))\n {\n if(!js["#name#"].isArray()) return false;\n~.
- qq~ unsigned int i=js["#name#"].size();\n~.$ca.
- qq~\n c.#name#=new std::vector<#type#>();\n~.
- qq~ c.#name#->resize(js["#name#"].size());\n\n while(i--)\n~.
- qq~ if(!#type#Marshaller::fromJSON(js["#name#"][i],c.#name#[0][i])) return false;\n }\n\n~;
-
- }
- else #array optional simple type
- {
-$l=sprintf
- qq~ if(c.#name#) delete c.#name#;\n c.#name#=0;\n~.
- qq~ if(js.isMember("#name#"))\n {\n if(!js["#name#"].isArray()) return false;\n~.
- qq~ unsigned int i=js["#name#"].size();\n~.$ca."\n".
- qq~ c.#name#=new std::vector<#type#>();\n~.
- qq~ c.#name#->resize(js["#name#"].size());\n\n while(i--)\n {\n~.
- qq~ if(!js["#name#"][i].is%s())\n return false;\n\n c.#name#[0][i]=js["#name#"][i].as%s();\n ~.$ct.
- qq~ }\n }\n\n~,$json2{$z->[0]},$json{$z->[0]};
- }
- }
- else #array not optional
- {
- if(ref $z->[0]) #array not optional not simple type
- {
-
-#$l=qq~ if(!js.isMember("#name#") || !js["#name#"].isArray()) return false;\n~.
-# qq~ {\n unsigned int i=js["#name#"].size();\n~.$ca.qq~ std::vector<#type#> z(i);\n while(i--)\n~.
-# qq~ if(!#type#Marshaller::fromJSON(js["#name#"][i],c.#name#[i])) return false;\n c.#name#=z;\n }\n~;
-
-$l=qq~ if(!js.isMember("#name#") || !js["#name#"].isArray()) return false;\n~.
- qq~ {\n unsigned int i=js["#name#"].size();\n~.$ca.qq~ c.#name#.resize(i);\n while(i--)\n {\n #type# t;\n~.
- qq~ if(!#type#Marshaller::fromJSON(js["#name#"][i],t))\n return false;\n c.#name#[i]=t;\n }\n }\n~;
-
- }
- else #array not optional simple type
- {
-$l=sprintf
- qq~ if(!js.isMember("#name#") || !js["#name#"].isArray())\n return false;\n {\n~.
- qq~ c.#name#.clear();\n unsigned int i=js["#name#"].size();\n~.$ca.
- qq~ c.#name#.resize(i);\n while(i--)\n~.
- qq~ {\n if(!js["#name#"][i].is%s())\n return false;\n c.#name#[i]=js["#name#"][i].as%s();\n ~.$ct.
- qq~\n }\n }\n\n~,$json2{$z->[0]},$json{$z->[0]};
-
-
- }
- }
- }
- else # not array
- {
- if($z->[2] eq '*') #not array optional
- {
- if(ref $z->[0]) #not array optional not simple type
- {
-$l=qq~ if(c.#name#) delete c.#name#;\n c.#name#=0;\n~.
- qq~ if(js.isMember("#name#"))\n {\n c.#name#=new #type#();\n~.
- qq~ if(!#type#Marshaller::fromJSON(js["#name#"],c.#name#[0])) return false;\n }\n~;
- }
- else #not array optional simple type
- {
-$l=sprintf
- qq~ if(c.#name#) delete c.#name#;\n c.#name#=0;\n~.
- qq~ if(js.isMember("#name#"))\n {\n if(!js["#name#"].is%s()) return false;\n c.#name#=new #type#();\n~.
- qq~ c.#name#[0]=js["#name#"].as%s();\n ~.$ct."\n }\n",
- $json2{$z->[0]},$json{$z->[0]};
- }
- }
- else #not array not optional
- {
- if(ref $z->[0]) #not array not optional not simple type
- {
-$l.=qq~ if(!js.isMember("#name#") || !#type#Marshaller::fromJSON(js["#name#"],c.#name#)) return false;\n~;
- }
- else #not array not optional simple type
- {
-$l=sprintf
- qq~ if(!js.isMember("#name#") || !js["#name#"].is%s()) return false;\n~.
- qq~ c.#name#=js["#name#"].as%s();\n ~.$ct,
- $json2{$z->[0]},$json{$z->[0]};
- }
- }
- }
- my $n=$z->[3];
- my $t=$tps{$z->[0]};
- $t=$nsa.'::'.$z->[0]->[0] if ref $z->[0];
- $l=~s/#name#/$n/gs;
- $l=~s/#type#/$t/gs;
- $l.="\n";
- print FO $l;
- }
- print FO qq~ }\n catch(...)\n {\n return false;\n }\n return checkIntegrity(c);\n}\n~;
-
- close FO;
-
-# *.cc
-
-# oops, those getters...
-# many dumb works only for stupid C++ common rules...
-# i think i should kill Stroustrup
-
- open(FO,mkpath($pimpl.$n,$sc)) or die;
- print FO $pragma;
-
- printf FO qq!#include "%s/%s.%s"\n!,$p2i,$n,$sh;
- printf FO qq!#include "%s/Marshaller.%s"\n!,$p2m,$sh;
- print FO $hat;
-
- {
- my $o=getfort();
- print FO $o if exists $config{'ee'} and $o ne '';
- }
-
-
- print FO $using0;
-
- printf FO "\n\n%s& %s::operator =(const %s& c)\n{\n",$n,$n,$n;
-
- foreach (@args)
- {
- my $z=$_;
- my $l;
- if($z->[2] eq '*')
- {
- $l=sprintf " if(%s) delete %s;\n",$z->[3],$z->[3];
- if(ref $z->[4])
- {
- $l.=sprintf " %s= c.%s ? new std::vector<%s>(c.%s[0]) : 0;\n",$z->[3],$z->[3],
- (ref $z->[0] ? $nsa.'::'.$z->[0]->[0] : $tps{$z->[0]}),$z->[3];
- }
- else
- {
- $l.=sprintf " %s= c.%s ? new %s(c.%s[0]) : 0;\n",$z->[3],$z->[3],
- (ref $z->[0] ? $nsa.'::'.$z->[0]->[0] : $tps{$z->[0]}),$z->[3];
- }
- }
- else
- {
- $l=sprintf " %s=c.%s;\n",$z->[3],$z->[3];
- }
- print FO $l;
- }
-
- printf FO " return *this;\n}\n\n\n%s::~%s(void)\n{\n",$n,$n;
-
- foreach(@args)
- {
- printf FO " if(%s) delete %s;\n",$_->[3],$_->[3] if $_->[2] eq '*';
- }
-
- print FO "}\n\n\n";
-
-# two constructors
-# my $l1=sprintf "%s::%s(void) : \n %s(Marshaller::METHOD_%s)",$n,$n,@tp[$f->[2]],uc $n;
-# my $l2=sprintf "%s::%s(const %s& c) : %s(Marshaller::METHOD_%s",$n,$n,$n,@tp[$f->[2]],uc $n;
- my $l1=sprintf "%s::%s(void) : \n %s(Marshaller::%s)",$n,$n,@tp[$f->[2]],$mname;
- my $l2=sprintf "%s::%s(const %s& c) : %s(Marshaller::%s",$n,$n,$n,@tp[$f->[2]],$mname;
-
- foreach(@args)
- {
- my $z=$_;
- $l1.=sprintf ",\n %s(0)",$z->[3] if $z->[2] eq '*';
- }
-
- $l1.="\n{\n}\n\n\n";
-
- if($f->[2]==0) # notification
- {
- $l2.=')';
- }
- elsif($f->[2]==1) # request
- {
- $l2.=',c.getId())'
-
- }
- elsif($f->[2]==2) # response
- {
- $l2.=',c.getId(),c.getResult())';
- }
- else
- {
- die "oops!";
- }
-
- $l2.="\n{\n *this=c;\n}\n\n\n";
-
- print FO $l1;
- print FO $l2;
-
-# getters and setters
-
- my $g;
- my $s;
- foreach(@args)
- {
- my $z=$_;
- my $nm=$z->[3];
- my $tp= ref $z->[0] ? $nsa.'::'.$z->[0]->[0] : exists $tps{$z->[0]} ? $tps{$z->[0]} : $z->[0];
- $tp=sprintf("std::vector< %s>",$tp) if ref $z->[4];
-
- $g=$s='';
- my $p=sprintf "%s::",$n;
- if($z->[2] eq '*')
- {
- $g=sprintf "const %s* %s::get_%s(void)\n{\n return %s;\n}\n\n",$tp,$n,$nm,$nm;
-# $s=sprintf "bool %s::set_%s(%s* %s_)\n{\n if(%s) delete %s;\n %s=%s_;\n return true;\n}\n\n",$n,$nm,$tp,$nm,$nm,$nm,$nm,$nm;
-
- $s=sprintf "bool %s::set_%s(const %s& %s_)\n{\n if(%s) delete %s;\n %s=new %s(%s_);\n return true;\n}\n\n",$n,$nm,$tp,$nm,$nm,$nm,$nm,$tp,$nm;
- $s.=sprintf "void %s::reset_%s(void)\n{\n if(%s) delete %s;\n %s=0;\n}\n\n",$n,$nm,$nm,$nm,$nm;
- }
- elsif((not ref $z->[0]) and $z->[0] ne 's' and not ref $z->[4])
- {
- $g=sprintf "%s %s::get_%s(void)\n{\n return %s;\n}\n\n",$tp,$n,$nm,$nm;
- $s=sprintf "bool %s::set_%s(%s %s_)\n{\n %s=%s_;\n return true;\n}\n\n",$n,$nm,$tp,$nm,$nm,$nm;
- }
- else
- {
- $g=sprintf "const %s& %s::get_%s(void)\n{\n return %s;\n}\n\n",$tp,$n,$nm,$nm;
- $s=sprintf "bool %s::set_%s(const %s& %s_)\n{\n %s=%s_;\n return true;\n}\n\n",$n,$nm,$tp,$nm,$nm,$nm;
- }
- printf FO $g;
- printf FO $s;
- }
-
- printf FO "bool %s::checkIntegrity(void)\n{\n return %sMarshaller::checkIntegrity(*this);\n}\n",$n,$n;
- close FO;
-}
-
-
-}
-
-#################################################################### code common for all interfaces
-
-$ns=$config{'ns'};
-
-my $nsbra='';
-my $nsket='';
-
-my @nss2;
-@nss2=split('::',$ns) if $ns ne '';
-
-if(@nss2)
-{
- my $i='';
- foreach(@nss2)
- {
- $nsbra.=sprintf "%snamespace %s\n%s{\n",$i,$_,$i;
- $nsket=sprintf "%s}\n%s",$i,$nsket;
- $i.=' ';
- }
-}
-
-my $ind= @nss2 ? ' ' x @nss2 : '';
-
-
-my $hat=sprintf "\n/*\n generated at\t%s\n source stamp\t%s\n author\tRC\n*/\n\n",$timestamp,$timemod;
-
-$hat= sprintf "\n// %s%s",$dd,$hat if exists $config{'ee'} and $dd ne '';
-
-sub printhat2
-{
- my $n=shift;
- my $p;
- $p.=join('_',@nss2);
- $p.= $p eq '' ? '' : '_';
- return sprintf "#ifndef %sMARSHALLER_INCLUDE\n#define %sMARSHALLER_INCLUDE\n\n%s",uc $p,uc $p,$pragma;
-}
-
-$path=sprintf "%s/%s",$config{'base'},$config{'gen'};
-$pimpl=sprintf "%s/%s",$config{'base'},$config{'pimpl'};
-
-$path=~s/\/\//\//g;$path=~s/\/$//g;$path.='/';
-$pimpl=~s/\/\//\//g;$pimpl=~s/\/$//g;$pimpl.='/';
-
-open(FO,mkpath($path.'Marshaller',$sh)) or die;
-print FO printhat2 'Marshaller';
-#printf FO "#ifndef %sRPC2_INCLUDE\n#define %sRPC2_INCLUDE\n\n%s",$prefix,$prefix,$pragma;
-print FO "#include <string>\n#include <json/json.h>\n\n";
-
-my $t=qq!#include "RPC2Error.h"\n#include "RPC2Notification.h"\n#include "RPC2Request.h"\n#include "RPC2Response.h"\n!.
- qq!\n#include "RPC2ErrorMarshaller.h"\n\n!;
-
-
-my $i2l=File::Spec->abs2rel($lib,$base);
-$i2l=$lib;
-$i2l=~s/\/$//;$i2l=~s/\/\//\//;
-
-$t=~s/ "/ "$i2l\//gs;
-
-print FO $t;
-
-foreach(@gclasses)
-{
- my $pth=join('/',@{$_->[2]});
- $pth=sprintf "%s/%s/%s",$base,$config{'pimpl'},$pth;
-# $pth=File::Spec->abs2rel($pth,$base) if not exists $config{'abs'};
- $pth=~s/\/$//;$pth=~s/\/\//\//;
-
- printf FO "#include \"%s/%sMarshaller.%s\"\n",$pth,$_->[1],$sh;
-}
-
-print FO $hat;
-
-print FO $nsbra;
-
-my $t=qq!\nclass Marshaller\n{\npublic:\n\n enum Methods\n {\n METHOD_INVALID=-1,!;
-$t=~s/\n/\n$ind/gs;
-
-print FO $t;
-
-$t=join(",\n" ,map { sprintf '#METHOD_%s__%s',uc join('_',@{$_->[2]}),uc $_->[1] } @gclasses);
-
-$t=~s/#/$ind /g;
-
-printf FO "\n%s\n %s};\n\n",$t,$ind;
-
-#my @classes;
-
-$t=qq!\nMarshaller()\t\t\t{}\n~Marshaller()\t\t\t{}\n\nstatic ::NsRPC2Communication::RPC2Command* fromString(const std::string&);\n!.
- qq!static std::string toString(const ::NsRPC2Communication::RPC2Command* msg);\n\n!.
- qq!static ::NsRPC2Communication::RPC2Command* fromJSON(const Json::Value&);\nstatic Json::Value toJSON(const ::NsRPC2Communication::RPC2Command* msg);!.
- qq!\n\nprotected:!;
-
-# qq!static std::string toString(const ::NsRPC2Communication::RPC2Command* msg);\n\nprotected:\n\n!.
-# qq!static ::NsRPC2Communication::RPC2Command* fromJSON(const Json::Value&);\nstatic Json::Value toJSON(const ::NsRPC2Communication::RPC2Command* msg);!;
-
-$t=~s/\n/\n$ind /gs;
-$t=~s/ protected:/protected:/g;
-
-print FO $t;
-print FO "\n\n";
-
-
-foreach(@gclasses)
-{
- my $n=sprintf "%s::%s",$_->[0],$_->[1];
- my $x=sprintf "%s__%s",join('_',@{$_->[2]}),$_->[1];
- my $t= "// #type#\nstatic bool fromString(const std::string& str, #type#& res)\n{\n return m#name#.fromString(str, res);\n}\n\n".
- "static std::string toString(const #type#& res)\n{\n return m#name#.toString(res);\n}";
-
- $t=~s/#type#/$n/gs;
- $t=~s/#name#/$x/gs;
- $t=~s/\n/\n$ind /gs;
- print FO $t;
- print FO "\n\n";
-}
-
-
-$t=qq~\nstruct localHash\n{\n const char *name;\n unsigned int idx;\n void* marshaller;\t\t\t\t\t// Bingo!!! old good plain C with direct casting!!!\n~.
- qq!};\n\nprivate:\n\nstatic Json::Value Request2JSON(const ::NsRPC2Communication::RPC2Request* msg);\n!.
- qq!static Json::Value Response2JSON(const ::NsRPC2Communication::RPC2Response* msg);\n!.
- qq!static Json::Value Notification2JSON(const ::NsRPC2Communication::RPC2Notification* msg);\n\n!.
- qq!static const char* getName(Methods e)\n{\n!.
- qq! return (e>=0 && e<#) ? mHashTable[e].name : NULL;\n}\n\nstatic const Methods getIndex(const char* s);\n\n!.
- qq!static const localHash mHashTable[#];\nfriend class Marshaller_intHash;\n\n!.
- qq!static ::NsRPC2Communication::RPC2ErrorMarshaller mRPC2ErrorInternal;!;
-
-$t=~s/\n/\n$ind /gs;
-$t=~s/ private:/private:/gs;
-my $z=scalar(@gclasses);
-$t=~s/#/$z/gs;
-print FO $t;
-print FO "\n\n";
-
-foreach(@gclasses)
-{
- my $n=sprintf "%s::%s",$_->[0],$_->[1];
- my $x=sprintf "%s__%s",join('_',@{$_->[2]}),$_->[1];
-
- printf FO "%s static %sMarshaller m%s;\n",$ind,$n,$x;
-}
-
-printf FO "\n%s};\n",$ind;
-
-print FO $nsket;
-
-print FO "\n#endif\n";
-close FO;
-
-open(FO,'>',$pimpl.'/Marshaller.gp') or die;
-print FO qq!%language=C++\n%struct-type\n%define lookup-function-name getPointer\n%define class-name Marshaller_intHash\n!.
- qq!%omit-struct-type\n%readonly-tables\n%compare-strncmp\n%compare-lengths\n\nstruct Marshaller::localHash\n{\n!.
- qq! const char *name;\n unsigned int idx;\n void* method;\n};\n\n%%\n!;
-
-my $z;
-
-
-for($z=0;$z<@gclasses;$z++)
-{
- my $q=join('_',@{@gclasses[$z]->[2]});
- printf FO "%s%s,%u,&Marshaller::m%s__%s\n",@gclasses[$z]->[3],@gclasses[$z]->[1],$z,$q,@gclasses[$z]->[1];
-}
-close FO;
-
-
-#** my @g=split('::',$iface);
-#** push @gclasses,[$iface,$_,\@g,$global{$prefix}];
-
- open(FO,mkpath($pimpl.'Marshaller',$sc)) or die;
- print FO $pragma;
-# print FO printhat $n;
-# check vector/string
- print FO "#include <cstring>\n";
-
- printf FO qq!#include "%sMarshaller.%s"\n!,$path,$sh;
-
- print FO "\n";
-
-# printf FO qq!#include "%s/%s.%s"\n!,$p2i,$_,$sh foreach @classes;
-
-foreach(@gclasses)
-{
- my $pth=join('/',@{$_->[2]});
- $pth=sprintf "%s/%s/%s",$base,$config{'gen'},$pth;
-# $pth=File::Spec->abs2rel($pth,$base) if not exists $config{'abs'};
- $pth=~s/\/$//;$pth=~s/\/\//\//;
-
- printf FO "#include \"%s/%s.%s\"\n",$pth,$_->[1],$sh;
-}
-
-
- print FO "\n";
- print FO $nsbra;
- printf FO qq!#include "%sMarshaller.inc"\n!,$pimpl;
- print FO $nsket;
-
- print FO $hat;
-
- {
- my $o=getfort();
- print FO $o if exists $config{'ee'} and $o ne '';
- }
-
- print FO "using namespace NsRPC2Communication;\n";
- printf FO "using namespace %s;\n",$config{'ns'} if $config{'ns'} ne '';
-
-
-
- print FO qq#\n\nconst Marshaller::Methods Marshaller::getIndex(const char* s)\n{\n if(!s)\n return METHOD_INVALID;#.
-qq# const struct localHash* p=Marshaller_intHash::getPointer(s,strlen(s));\n#.
-qq# return p ? static_cast<Methods>(p->idx) : METHOD_INVALID;\n}\n\nRPC2Command* Marshaller::fromString(const std::string& s)\n#.
-qq#{\n RPC2Command* rv=0;\n try\n {\n Json::Reader reader;\n Json::Value json;\n\n if(!reader.parse(s,json,false)) return 0;#.
-qq# if(!(rv=fromJSON(json))) return 0;\n }\n catch(...)\n {\n return 0;\n }\n return rv;\n}\n\n#.
-qq#std::string Marshaller::toString(const RPC2Command* msg)\n{\n if(!msg) return "";\n\n Json::Value json=toJSON(msg);\n\n#.
-qq# if(json.isNull()) return "";\n\n Json::FastWriter writer;\n std::string rv;\n return writer.write(json);\n}\n\n#.
-qq#RPC2Command* Marshaller::fromJSON(const Json::Value& json)\n{\n if(!json.isObject()) return 0;\n#.
-qq# if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return 0;\n\n#.
-qq# if(json.isMember("error")) // error\n {\n RPC2Error rv;\n if(!RPC2ErrorMarshaller::fromJSON(json,rv)) return 0;\n\n#.
-qq# return new RPC2Error(rv);\n }\n\n if(!json.isMember("id")) // notification\n {\n#.
-qq# if(!json.isMember("method") || !json["method"].isString()) return 0;\n\n Methods m=getIndex(json["method"].asString().c_str());\n\n#.
-qq# switch(m)\n {\n#;
-
- my @tx;
- my @rx;
-# notification
-# my $r=[$d,$d,0,0,0,[]]; # method name, class name, type, hasstr,hasarr, list of external entities from SmartDeviceLink
-
- foreach(@gnclasses)
- {
- my $f=$_;
- my $u=shift @$f;
-
- my $n=$f->[1];
- my $z=qq! case METHOD_#IF#__#NAME#:\n {\n #if#::#name# *rv=new #if#::#name#;\n return #if#::#name#Marshaller::fromJSON(json,*rv) ? rv : 0;\n }\n!;
- $z=~s/#name#/$n/gs;
- $z=~s/#if#/$u/gs;
- my $t=uc $n;
- my $t2=uc $u;$t2=~s/::/_/g;
- $z=~s/#NAME#/$t/gs;
- $z=~s/#IF#/$t2/gs;
- @tx[$f->[2]].=$z;
- $z=qq~ case METHOD_#IF#__#NAME#:\n return #if#::#name#Marshaller::toJSON(*static_cast<const #if#::#name#*>(msg));\n~;
- $z=~s/#name#/$n/gs;
- $z=~s/#NAME#/$t/gs;
- $z=~s/#IF#/$t2/gs;
- $z=~s/#if#/$u/gs;
- @rx[$f->[2]].=$z;
- }
-
- print FO @tx[0];
- print FO qq# default:\n return 0;\n }\n return 0;\n }\n\n#.
-qq# if(json.isMember("method")) // request\n {\n if(!json["id"].isInt()) return 0;\n\n#.
-qq# Methods m=getIndex(json["method"].asString().c_str());\n switch(m)\n {\n#;
-
- print FO @tx[1];
-
-
- print FO qq# default:\n return 0;\n }\n return 0;\n }\n#.
-qq# // response\n#.
-qq# if(!json.isMember("result")) return 0;\n\n if(!json["id"].isInt()) return 0;\n\n#.
-qq#// here is extension of protocol, two fields added: _Result and _Method\n#.
-qq# if(!json["result"].isMember("resultCode") || !json["result"]["resultCode"].isString()) return 0;\n#.
-qq# if(!json["result"].isMember("method") || !json["result"]["method"].isString()) return 0;\n\n#.
-qq# Methods m=getIndex(json["result"]["method"].asString().c_str());\n\n switch(m)\n {\n#;
-
- @tx[2]=~s/\n /\n/gs;
- @tx[2]=~s/^ //gs;
- print FO @tx[2];
-
- print FO qq# default:\n return 0;\n }\n\n return 0;\n}\n\n\n#.
-qq#Json::Value Marshaller::Notification2JSON(const NsRPC2Communication::RPC2Notification* msg)\n{\n#.
-qq# Json::Value j=Json::Value(Json::nullValue);\n if(!msg) return j;\n\n switch(msg->getMethod())\n {\n#;
-
- print FO @rx[0];
-
- print FO qq# default:\n return j;\n }\n}\n\n\n#.
-qq#Json::Value Marshaller::Request2JSON(const NsRPC2Communication::RPC2Request* msg)\n{\n#.
-qq# Json::Value j=Json::Value(Json::nullValue);\n if(!msg) return j;\n switch(msg->getMethod())\n {\n#;
-
- print FO @rx[1];
-
- print FO qq# default:\n return j;\n }\n}\n\n\n#.
-qq#Json::Value Marshaller::Response2JSON(const NsRPC2Communication::RPC2Response* msg)\n{\n#.
-qq# Json::Value j=Json::Value(Json::nullValue);\n if(!msg) return j;\n switch(msg->getMethod())\n {\n#;
-
- print FO @rx[2];
-
-# my $z=join('::',@nss);
-# $z.='::' if $z;
-
- print FO qq# default:\n return j;\n }\n}\n\n\nJson::Value Marshaller::toJSON(const RPC2Command* msg)\n{\n#.
-qq# Json::Value j=Json::Value(Json::nullValue);\n if(!msg) return j;\n\n switch(msg->getCommandType())\n {\n#.
-qq# case RPC2Command::REQUEST:\n return Request2JSON(static_cast<const RPC2Request*>(msg));\n case RPC2Command::RESPONSE:\n#.
-qq# return Response2JSON(static_cast<const RPC2Response*>(msg));\n case RPC2Command::NOTIFICATION:\n#.
-qq# return Notification2JSON(static_cast<const RPC2Notification*>(msg));\n\n case RPC2Command::ERROR:\n#.
-qq# return RPC2ErrorMarshaller::toJSON(*static_cast<const RPC2Error*>(msg));\n\n case RPC2Command::UNDEFINED:\n#.
-qq# default:\n return j;\n }\n}\n\n\nconst Marshaller::localHash Marshaller::mHashTable[#.@gclasses.
-qq#]=\n{\n#;
-
- my $i;
- my @tmp;
- for($i=0;$i<@gclasses;$i++)
- {
- my $q=join('_',@{@gclasses[$i]->[2]});
- push @tmp,sprintf ' {"%s%s",%u,&Marshaller::m%s__%s}',@gclasses[$i]->[3],@gclasses[$i]->[1],$i,$q,@gclasses[$i]->[1];
- }
-
- print FO join(",\n",@tmp);
- print FO "\n\n};\n\nNsRPC2Communication::RPC2ErrorMarshaller Marshaller::mRPC2ErrorInternal;\n\n";
-
-foreach(@gclasses)
-{
-# my $n=sprintf "%s::%s::%s",$config{'ns'},$_->[0],$_->[1];
- my $n=sprintf "%s::%s",$_->[0],$_->[1];
- my $x=sprintf "%s__%s",join('_',@{$_->[2]}),$_->[1];
-
- printf FO "%sMarshaller Marshaller::m%s;\n",$n,$x;
-}
-
-close FO;
-
-sub fold
-{
- my $t=shift;
-#rewrite, fold is buggy
-# $t=`echo "$t" | fold -s -w 80`;
- my @x=split(/\s+/s,$t);
- my $r;
- my $a='';
- my $len=60;
- foreach(@x)
- {
- my $z=$_;
- if(length($a)>=$len)
- {
- $r.=$a." \\\n ";
- $a=$z;
- next;
- }
- $a.=' '.$z;
- }
- $r=sprintf "%s %s\n\n",$r,$a;
- $r=~s/ */ /gs;
- $r=~s/^ */ /g;
- $r=~s/^ +//;
- return $r;
-}
-
-if(exists $config{'mk'})
-{
- open(FO,'>',$config{'mk'}) or die "cant create mk file ".$config{'mk'};
- my $prefix='XX';
- my $t=sprintf "%s_SRC=",$prefix;
- $t.="$_ " foreach @$mkdep;
- print FO fold $t;
-
- my $idl=$config{'idl'};
-
- $t='#p#_OBJ=$(#p#_SRC:.#s#=.o)'."\n#p#_GP=#b#Marshaller.gp\n#p#_LIB=#b##p#.a\n#p#_INC=".'$'."(#p#_GP:.gp=.inc)\nIDL=#i#\n\n#p#_all: ".'$'."(#p#_OBJ)\n\n";
- $t.='#p#_lib: $(#p#_LIB)'."\n\n";
-
- $t.='$(#p#_LIB): (#p#_OBJ)'."\n\t".'ar rcsu $@ $^'."\n\n";
- $t=~s/#p#/$prefix/gs;
- $t=~s/#i#/$idl/gs;
- $t=~s/#b#/$base/gs;
- $t=~s/#s#/$sc/gs;
- print FO $t;
-
- $t=sprintf "%sMarshaller.gp %s : %s",$base,join(' ',@$mklist),$idl;
- print FO fold $t;
- print FO "\n";
- printf FO "%sMarshaller.inc : %sMarshaller.gp\n\tgperf %s --output-file=%s\n\n",$base,$base,'$<','$@';
-
-
- $t='';
-# $t.=`g++ -MM -MG -I. $_ `."\n\n" foreach @$mkdep;
- my @deps;
- foreach(@$mkdep)
- {
- my $p=$_;
- my $o=$p;$o=~s/.$sc$/.o/;
- my $d; (undef,$d,undef)=File::Spec->splitpath($p);
- push @deps,[$d,scalar `g++ -MM -MG -MQ $o -I. $p `];
- }
-
- print FO join("\n\n",map { $_->[1] } @deps);
-
- close FO;
-}
-
-print "done\n";
-
-1;
diff --git a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/pr0tojoin.pl b/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/pr0tojoin.pl
deleted file mode 100755
index afd7216e4..000000000
--- a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/pr0tojoin.pl
+++ /dev/null
@@ -1,493 +0,0 @@
-#!/usr/bin/perl
-
-# modified Wed Oct 24 10:49:58 EEST 2012
-
-use FileHandle;
-use File::Slurp;
-use File::Temp;
-use XML::Simple;
-use Sort::Topological qw(toposort);
-use JSON::XS;
-use Data::Dumper;
-use File::Spec;
-use Cwd;
-use Data::Compare;
-
-use strict;
-
-
-my %config;
-
-# args parse
-sub args_parse
-{
- my @args=@ARGV;
- my $t;
- while($t=shift @args)
- {
- if($t eq '-1') { $config{'xml1'}=shift @args; next; }
- if($t eq '-2') { $config{'xml2'}=shift @args; next; }
-# if($t eq '-n1') { $config{'ns1'}=shift @args; next; }
-# if($t eq '-n2') { $config{'ns2'}=shift @args; next; }
-# if($t eq '-p') { $config{'path'}=shift @args; $config{'pimpl'}=shift @args; next; }
- die 'unknown in command line '.$t;
- }
-}
-
-args_parse();
-
-die 'no input' if not exists $config{'xml1'};
-die 'no input' if not exists $config{'xml2'};
-
-$config{'path'}='include' if not exists $config{'path'};
-$config{'pimpl'}='src' if not exists $config{'pimpl'};
-
-$config{'ns1'}='NsSmartDeviceLinkRPCV1' if not exists $config{'ns1'};
-$config{'ns2'}='NsSmartDeviceLinkRPCV2' if not exists $config{'ns2'};
-
-my %itypes= map { $_ => 1} qw(Boolean Integer String Float);
-
-sub load
-{
- my $xn=shift;
-
- my $xml=XMLin($xn,ContentKey => '__content', KeyAttr => [], ForceArray =>1, KeepRoot => 1);
- die sprintf 'cant parse xml %s',$xn if not ref $xml;
- die sprintf "interface section not found in xml %s",$xn if not exists $xml->{'interface'};
-
- $xml=$xml->{'interface'}->[0];
-
- my @table;
- my %types;
- my %exts;
- my %dmt;
- my %rdmt;
- my %dmm;
-
- foreach(qw(name date version))
- {
- die "$_ attribute found in tags" if ref $xml->{$_};
- $exts{$_}=$xml->{$_} or die "$_ attribute not specified";
- }
-
- push @table,[$_->{'name'},$_->{'messagetype'},$_->{'param'},$_->{'description'}] foreach @{$xml->{'function'}};
-
- for(my $i=0;$i<@table;$i++)
- {
- my $k=@table[$i];
- my $n=$k->[0];
- my $s=sprintf "%s : %s",$n,$k->[1];
- $dmm{$s}={};
- foreach(@{$k->[2]})
- {
- $dmm{$s}->{$_->{'type'}}=1 if not exists $itypes{$_->{'type'}};
- }
- }
-
-#die Dumper $xml->{'enum'};
-
- foreach(@{$xml->{'enum'}})
- {
- my $k=$_;
- die sprintf "duplicate definition %s",$k->{'name'} if exists $types{$k->{'name'}};
- $types{$k->{'name'}}->{'list'}=[];
- $types{$k->{'name'}}->{'ldesc'}=[];
- $types{$k->{'name'}}->{'iname'}=[];
-
- $types{$k->{'name'}}->{'type'}='enum';
- push @{$types{$k->{'name'}}->{'list'}}, map { $_->{'name'} } @{$k->{'element'}};
- push @{$types{$k->{'name'}}->{'ldesc'}}, map { $_->{'description'} } @{$k->{'element'}};
- push @{$types{$k->{'name'}}->{'iname'}}, map { $_->{'internal_name'} } @{$k->{'element'}};
-
- for(my $i=0;$i<@{$types{$k->{'name'}}->{'list'}};$i++)
- {
- $types{$k->{'name'}}->{'iname'}->[$i]=$types{$k->{'name'}}->{'list'}->[$i] if not defined $types{$k->{'name'}}->{'iname'}->[$i];
- if($types{$k->{'name'}}->{'iname'}->[$i]!~/^[a-zA-Z]/)
- {
- printf STDERR "ill-defined enum value %s in enum %s, fixing...\n",$types{$k->{'name'}}->{'iname'}->[$i],$k->{'name'};
- $types{$k->{'name'}}->{'iname'}->[$i]="FIX_".$types{$k->{'name'}}->{'iname'}->[$i];
- }
- }
-
- $types{$k->{'name'}}->{'descr'}=$k->{'description'} if exists $k->{'description'};
- }
-
- foreach(@{$xml->{'struct'}})
- {
- my $k=$_;
- die sprintf "duplicate definition %s",$k->{'name'} if exists $types{$k->{'name'}};
- $types{$k->{'name'}}->{'list'}={};
- $types{$k->{'name'}}->{'type'}='struct';
- %{$types{$k->{'name'}}->{'list'}}= map { $_->{'name'} , $_ } @{$k->{'param'}};
- $types{$k->{'name'}}->{'descr'}=$k->{'description'} if exists $k->{'description'};
- }
-
- foreach(@{$xml->{'variant'}})
- {
- my $k=$_;
- die sprintf "duplicate definition %s",$k->{'name'} if exists $types{$k->{'name'}};
- $types{$k->{'name'}}->{'list'}={};
- $types{$k->{'name'}}->{'type'}='variant';
-# die Dumper $k->{'element'};
- %{$types{$k->{'name'}}->{'list'}}= map { $_->{'name'} , $_ } @{$k->{'param'}};
- $types{$k->{'name'}}->{'descr'}=$k->{'description'} if exists $k->{'description'};
-
- $types{$k->{'name'}}->{'list'}->{$_}->{'ename'}= $types{$k->{'name'}}->{'list'}->{$_}->{'name'}
- foreach keys %{$types{$k->{'name'}}->{'list'}};
-
- $types{$k->{'name'}}->{'ldesc'}=[];
- push @{$types{$k->{'name'}}->{'ldesc'}}, map { $_->{'description'} } @{$k->{'param'}};
- }
-
-#fixing conflicts
-
- {
- my %tmp;
- foreach(sort keys %types)
- {
- my $n=$_;
- if($types{$n}->{'type'} eq 'enum')
- {
- $tmp{$_}=['enum',$n,$_] foreach @{$types{$n}->{'iname'}};
- next;
- }
-
- if($types{$n}->{'type'} eq 'variant')
- {
-# $tmp{$_}++ foreach @{$types{$n}->{'iname'}};
- $tmp{$types{$n}->{'list'}->{$_}->{'ename'}}=['variant',$n,$_] foreach keys %{$types{$n}->{'list'}};
- next;
- }
- }
-# die Dumper \%tmp;
-
- foreach(sort keys %types)
- {
- my $n=$_;
- next if not exists $tmp{$n};
- printf STDERR "naming conflict for %s class/enumerator: %s, not fixable\n",$n,Dumper $tmp{$n};
- die Dumper $types{$tmp{$n}->[1]}->{'list'};
- }
- }
-
- undef $xml;
-
- foreach(sort keys %types)
- {
- $dmt{$_}={};
- next if $types{$_}->{'type'} eq 'enum';
- my $n=$_;
-
- foreach(values %{$types{$n}->{'list'}})
- {
- next if exists $itypes{$_->{'type'}};
- my $k=$_;
- die sprintf "unknown type in structure definition %s:%s %s",$n,$k->{'name'},$k->{'type'} if not exists $types{$k->{'type'}};
- $dmt{$n}->{$k->{'type'}}=1;
- $rdmt{$k->{'type'}}=[] if not exists $rdmt{$k->{'type'}};
- push @{$rdmt{$k->{'type'}}},$n;
- }
- }
-
- foreach(keys %dmm)
- {
- my $k=$_;
- my $v=$dmm{$_};
- foreach(keys %$v)
- {
- die sprintf "type '%s' not found in method %s",$_,$k if not exists $types{$_};
- }
- }
-
-#die Dumper %types;
-
- my $rv=[{},{},[],{},{},{}];
- %{$rv->[0]}=%exts;
- %{$rv->[1]}=%types;
- @{$rv->[2]}=@table;
- %{$rv->[3]}=%dmt;
- %{$rv->[4]}=%dmm;
- %{$rv->[5]}=%rdmt;
-
- return $rv;
-}
-
-
-my $t1=load($config{'xml1'});
-my $t2=load($config{'xml2'});
-
-
-my @table=@{$t1->[2]};
-my %types=%{$t1->[1]};
-my %exts=%{$t1->[0]};
-my %dmt=%{$t1->[3]};
-my %dmm=%{$t1->[4]};
-
-#die Dumper \%dmt;
-
-foreach (sort keys %{$t2->[0]})
-{
- if(not exists $exts{$_})
- {
- $exts{$_}=$t2->[0]->{$_};
- next;
- }
- next if $exts{$_} eq $t2->[0]->{$_};
- $exts{$_}.=' / '.$t2->[0]->{$_};
-}
-
-
-my %mod;
-
-my @l=sort keys %{$t2->[1]};
-
-my @order=qw(a b c d e f);
-
-my %horder=map { my $t=[]; push @$t,keys %{$t2->[3]{$_}}; $_ => $t } sort keys %{$t2->[3]};
-
-sub topo_children { @{$horder{$_[0]} || []}; }
-my @ts=reverse toposort(\&topo_children,\@l);
-
-#die Dumper(\@ts);
-
-sub genfix
-{
- my $x=shift;
- $x.='_fix';
- $x.='_fix' while exists $types{$x};
- return $x;
-}
-
-
-foreach (@ts)
-{
- my $k=$_;
- my $s=$k;
- $k=$mod{$k} while exists $mod{$k};
- my $v=$t2->[1]->{$s};
-
- if(exists $mod{$s})
- {
- foreach(@{$t2->[5]->{$s}})
- {
- my $z=$_;
- next if exists $mod{$z};
- $mod{$z}=genfix($z);
- }
- }
-
- if($v->{'type'} ne 'enum')
- {
- foreach(keys %{$v->{'list'}})
- {
- my $n=$_;
- my $vn=$v->{'list'}->{$n};
- next if exists $itypes{$v->{'list'}->{$n}->{'type'}};
-
- my $z=$v->{'list'}->{$n}->{'type'};
- $z=$mod{$z}
- while exists $mod{$z};# and $mod{$z}->[0]!=1;
- $v->{'list'}->{$n}->{'type'}=$z;
- }
- }
-
- if(not exists $types{$k})
- {
- $types{$k}=$v;
-# delete $t2->[1]->{$k}; #='moved';
-#todo: add namespace
-
- next;
- }
-
- my $v0=$types{$k};
- if($v0->{'type'} ne $v->{'type'})
- {
-fix:
- printf STDERR "fixing type conflict for %s -> %s_fix\n",$k,$k;
- my $nk=genfix($k);
-
- $mod{$s}=$nk;
- $types{$nk}=$v;
-
- next if not exists $t2->[5]->{$s};
-
- my @l=@{$t2->[5]->{$s}};
-
- foreach(@{$t2->[5]->{$s}})
- {
- my $z=$_;
- next if exists $mod{$z};
- $mod{$z}=genfix($z);
- }
-
-# $mov{$nk}=$nk;
- next;
- }
-
-# struct -> list ->
-# variant -> list ->
-
- if($v->{'type'} eq 'enum')
- {
- goto fix if @{$v->{'list'}}!=@{$v0->{'list'}} or @{$v->{'iname'}}!=@{$v0->{'iname'}};
- for(my $t=0;$t<@{$v->{'list'}};$t++)
- {
- goto fix if $v->{'list'}->[$t] ne $v0->{'list'}->[$t];
- }
-
- for(my $t=0;$t<@{$v->{'iname'}};$t++)
- {
- goto fix if $v->{'iname'}->[$t] ne $v0->{'iname'}->[$t];
- }
- next;
- }
-
-# printf "0 %s\n",scalar keys %{$v->{'list'}};
-# print Dumper($v->{'list'});
- foreach(keys %{$v->{'list'}})
- {
- my $n=$_;
- my $vn=$v->{'list'}->{$n};
- next if exists $itypes{$v->{'list'}->{$n}->{'type'}};
-
- my $z=$v->{'list'}->{$n}->{'type'};
- $z=$mod{$z}
- while exists $mod{$z};# and $mod{$z}->[0]!=1;
- $v->{'list'}->{$n}->{'type'}=$z;
- }
-
-# if $s eq 'VehicleType';
-
- goto fix if Compare($v->{'list'},$v0->{'list'},{ ignore_hash_keys => ['description','platform','element','issue'] });
- printf STDERR "duplicate structures %s, no fixing required, simple skipped\n",$k;
-
-}
-
-#die Dumper \%types;
-
-#foreach(keys %mod)
-
-
-my %q0=map { sprintf("%s : %s",$_->[0],$_->[1]) => $_ } @{$t1->[2]};
-my %q=map { sprintf("%s : %s",$_->[0],$_->[1]) => $_ } @{$t2->[2]};
-
-my %fixed;
-
-foreach(sort keys %q)
-{
- my $k=$_;
- my $v=$q{$k};
- for(my $i=0;$i<@{$v->[2]};$i++)
- {
- my $t=$v->[2]->[$i]->{'type'};
- next if exists $itypes{$t};
- next if not exists $mod{$t};
- $t=$mod{$t} while exists $mod{$t};
- $v->[2]->[$i]->{'type'}=$t;
- }
-}
-
-foreach(sort %q)
-{
- my $k=$_;
- my $v=$q{$k};
-
- my $nk=$v->[0];
- $nk=$k.'_fix';
-
- next if not exists $q0{$k};
- my $v0=$q0{$k};
-
- if($v->[0] ne $v0->[0]) #or $v->[1] ne $v0->[1])
- {
-fix:
- printf STDERR "fixing method conflict for %s -> %s\n",$k,$nk;
- $fixed{$v->[0]}=$nk;
- next;
- }
-
- goto fix if not Compare($v->[2],$v0->[2],{ ignore_hash_keys => ['description','platform','element'] });
- printf STDERR "duplicate method %s\n",$k;
-}
-
-#die Dumper \@table;
-
-foreach(sort keys %q)
-{
- my $k=$_;
- my $v=$q{$k};
-
- $v->[0].='_fix' if exists $fixed{$v->[0]};
- push @table,$v;
-}
-
-my %res;
-$res{'interface'}=[{}];
-my $r=$res{'interface'}->[0];
-
-%$r=%exts;
-
-$r->{'function'}=[];
-
-foreach(@table)
-{
- my $k=$_;
- my $x={};
- $x->{'name'}=$k->[0];
- $x->{'messagetype'}=$k->[1];
- $x->{'param'}=$k->[2];
- $x->{'description'}=$k->[3];
- push @{$r->{'function'}},$x;
-}
-
-$r->{'enum'}=[];
-$r->{'variant'}=[];
-$r->{'struct'}=[];
-
-foreach(sort keys %types)
-{
- my $k=$_;
- my $v=$types{$k};
-
- my $x={};
-
- $x->{'name'}=$k;
- $x->{'description'}=[];
- $x->{'description'}=$v->{'descr'} if exists $v->{'descr'};
-
- if($v->{'type'} eq 'enum')
- {
- $x->{'element'}=[];
- for(my $i=0;$i<@{$v->{'list'}};$i++)
- {
- my $z={};
- $z->{'name'}=$v->{'list'}->[$i];
- $z->{'internal_name'}=$v->{'iname'}->[$i];
- $z->{'description'}=$v->{'ldesc'}->[$i] if defined $v->{'ldesc'}->[$i];
- push @{$x->{'element'}},$z;
- }
- }
- elsif($v->{'type'} eq 'struct')
- {
- $x->{'param'}=[];
- push @{$x->{'param'}},$v->{'list'}->{$_} foreach sort keys %{$v->{'list'}};
- }
- else # variant, not deep tested yet
- {
- $x->{'param'}=[];
- push @{$x->{'param'}},$v->{'list'}->{$_} foreach sort keys %{$v->{'list'}};
- }
-
- push @{$r->{$v->{'type'}}},$x;
-}
-
-
-#die Dumper \@table;
-print XMLout(\%res,'KeepRoot' => 1);
-
-print STDERR "done\n";
-#die Dumper \%types;
-exit 0;
-
-
diff --git a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/robok0der.pl b/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/robok0der.pl
deleted file mode 100755
index ddc38ed55..000000000
--- a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/scripts/robok0der.pl
+++ /dev/null
@@ -1,2775 +0,0 @@
-#!/usr/bin/perl
-
-# modified Wed Oct 24 10:49:58 EEST 2012
-
-use FileHandle;
-use File::Slurp;
-use File::Temp;
-use XML::Simple;
-#use Sort::Topological qw(toposort);
-use JSON::XS;
-use Data::Dumper;
-use File::Spec;
-use Cwd;
-
-use strict;
-
-#$SIG{PIPE} = 'IGNORE';
-
-
-my %config;
-
-# args parse
-sub args_parse
-{
- my @args=@ARGV;
- my $t;
- while($t=shift @args)
- {
- if($t eq '-i') { $config{'xml'}=shift @args; next; }
- if($t eq '-r') { $config{'random'}=shift @args; next; }
- if($t eq '-c') { $config{'loops'}=shift @args; next; }
- if($t eq '-log') { $config{'log'}=shift @args; next; }
- if($t eq '-lib') { $config{'lib'}=shift @args; next; }
- if($t eq '-n') { $config{'ns'}=shift @args; next; }
- if($t eq '-s') { $config{'style'}=shift @args; next; }
- if($t eq '-sh') { $config{'sh'}=shift @args; next; }
- if($t eq '-sc') { $config{'sc'}=shift @args; next; }
- if($t eq '-ee') { $config{'ee'}=1; next; }
- if($t eq '-p') { $config{'pver'}=shift @args; next; }
- if($t eq '-g') { $config{'pragma'}=1; next; }
- if($t eq '-a') { $config{'abs'}=1; next; }
-
- if($t eq '-md') { $config{'dryrun'}=shift @args; $config{'mode'}='dryrun'; next; }
- if($t eq '-mf') { $config{'fuzzer'}=shift @args; $config{'mode'}='fuzzer'; next; }
- if($t eq '-mg') { $config{'generate'}=shift @args; $config{'pimpl'}=shift @args; $config{'mode'}='generate'; next; }
-
- die 'unknown in command line '.$t;
- }
-}
-
-args_parse();
-
-die 'no input' if not exists $config{'xml'};
-die 'nothing to do' if not exists $config{'mode'};
-die sprintf "cant open input xml %s",$config{'xml'} if not -e $config{'xml'};
-
-# parse xml
-my $xml=XMLin($config{'xml'},ContentKey => '__content', KeyAttr => [], ForceArray =>1, KeepRoot => 1);
-die 'cant parse xml' if not ref $xml;
-
-die "interface section not found in xml" if not exists $xml->{'interface'};
-
-$xml=$xml->{'interface'}->[0];
-
-my @table;
-my %types;
-my %exts;
-
-
-foreach(qw(name date version))
-{
- die "$_ attribute found in tags" if ref $xml->{$_};
- $exts{$_}=$xml->{$_} or die "$_ attribute not specified";
-}
-
-my %json=(
- 'Float' => 'Double',
- 'Integer' => 'Int',
- 'Boolean' => 'Bool',
- 'String' => 'String'
-);
-
-my %json2=(
- 'Float' => 'Numeric',
- 'Integer' => 'Int',
- 'Boolean' => 'Bool',
- 'String' => 'String'
-);
-
-
-push @table,[$_->{'name'},$_->{'messagetype'},$_->{'param'},$_->{'description'}] foreach @{$xml->{'function'}};
-
-
-foreach(@{$xml->{'enum'}})
-{
- my $k=$_;
- die sprintf "duplicate definition %s",$k->{'name'} if exists $types{$k->{'name'}};
- $types{$k->{'name'}}->{'list'}=[];
- $types{$k->{'name'}}->{'ldesc'}=[];
- $types{$k->{'name'}}->{'iname'}=[];
-
- $types{$k->{'name'}}->{'type'}='enum';
- push @{$types{$k->{'name'}}->{'list'}}, map { $_->{'name'} } @{$k->{'element'}};
- push @{$types{$k->{'name'}}->{'ldesc'}}, map { $_->{'description'} } @{$k->{'element'}};
- push @{$types{$k->{'name'}}->{'iname'}}, map { $_->{'internal_name'} } @{$k->{'element'}};
-
- for(my $i=0;$i<@{$types{$k->{'name'}}->{'list'}};$i++)
- {
- $types{$k->{'name'}}->{'iname'}->[$i]=$types{$k->{'name'}}->{'list'}->[$i] if not defined $types{$k->{'name'}}->{'iname'}->[$i];
- if($types{$k->{'name'}}->{'iname'}->[$i]!~/^[a-zA-Z]/)
- {
- printf STDERR "ill-defined enum value %s in enum %s, fixing...\n",$types{$k->{'name'}}->{'iname'}->[$i],$k->{'name'};
- $types{$k->{'name'}}->{'iname'}->[$i]="FIX_".$types{$k->{'name'}}->{'iname'}->[$i];
- }
- }
-
- $types{$k->{'name'}}->{'descr'}=$k->{'description'} if exists $k->{'description'};
-}
-
-
-foreach(@{$xml->{'struct'}})
-{
- my $k=$_;
- die sprintf "duplicate definition %s",$k->{'name'} if exists $types{$k->{'name'}};
- $types{$k->{'name'}}->{'list'}={};
- $types{$k->{'name'}}->{'type'}='struct';
- %{$types{$k->{'name'}}->{'list'}}= map { $_->{'name'} , $_ } @{$k->{'param'}};
- $types{$k->{'name'}}->{'descr'}=$k->{'description'} if exists $k->{'description'};
-}
-
-foreach(@{$xml->{'variant'}})
-{
- my $k=$_;
- die sprintf "duplicate definition %s",$k->{'name'} if exists $types{$k->{'name'}};
- $types{$k->{'name'}}->{'list'}={};
- $types{$k->{'name'}}->{'type'}='variant';
-# die Dumper $k->{'element'};
- %{$types{$k->{'name'}}->{'list'}}= map { $_->{'name'} , $_ } @{$k->{'param'}};
- $types{$k->{'name'}}->{'descr'}=$k->{'description'} if exists $k->{'description'};
-
- $types{$k->{'name'}}->{'list'}->{$_}->{'ename'}= $types{$k->{'name'}}->{'list'}->{$_}->{'name'}
- foreach keys %{$types{$k->{'name'}}->{'list'}};
-
- $types{$k->{'name'}}->{'ldesc'}=[];
- push @{$types{$k->{'name'}}->{'ldesc'}}, map { $_->{'description'} } @{$k->{'param'}};
-}
-
-#fixing conflicts
-
-{
- my %tmp;
- foreach(sort keys %types)
- {
- my $n=$_;
- if($types{$n}->{'type'} eq 'enum')
- {
- $tmp{$_}=['enum',$n,$_] foreach @{$types{$n}->{'iname'}};
- next;
- }
-
- if($types{$n}->{'type'} eq 'variant')
- {
-# $tmp{$_}++ foreach @{$types{$n}->{'iname'}};
- $tmp{$types{$n}->{'list'}->{$_}->{'ename'}}=['variant',$n,$_] foreach keys %{$types{$n}->{'list'}};
- next;
- }
- }
-# die Dumper \%tmp;
-
- foreach(sort keys %types)
- {
- my $n=$_;
- next if not exists $tmp{$n};
- printf STDERR "naming conflict for %s class/enumerator: %s, not fixable\n",$n,Dumper $tmp{$n};
- die Dumper $types{$tmp{$n}->[1]}->{'list'};
- }
-}
-
-undef $xml;
-
-
-my $rnd= exists $config{'random'} ? $config{'random'} : $$ ^ time;
-
-
-goto generate if $config{'mode'} eq 'generate';
-
-
-printf STDERR "random is %u\n",$rnd;
-srand($rnd);
-
-
-my $maxstring=10;
-my $maxarray=10;
-
-sub generate_type_valid
-{
- my $p=shift;
- return undef if($p->{'mandatory'} eq 'false' and (int rand 2)==0);
-
- if($p->{'array'} eq 'true')
- {
- my $minsize=0;
- my $maxsize=$maxarray;
-
- $minsize=$p->{'minsize'} if exists $p->{'minsize'};
- $maxsize=$p->{'maxsize'} if exists $p->{'maxsize'};
- my $size= $minsize+ int rand ($maxsize-$minsize);
- my $rv=[];
-
- my $tp= {%$p};
- $tp->{'array'}='false';
- $tp->{'mandatory'}='true';
-
- push @$rv,generate_type_valid($tp) while $size--;
- return $rv;
- }
-
- return (JSON::XS::false,JSON::XS::true)[int rand 2] if $p->{'type'} eq 'Boolean';
- if($p->{'type'} eq 'Float')
- {
- my $minsize=0;
- my $maxsize=100;
-
- $minsize=$p->{'minvalue'} if exists $p->{'minvalue'};
- $maxsize=$p->{'maxvalue'} if exists $p->{'maxvalue'};
- return ($minsize+ rand ($maxsize-$minsize));
- }
-
- if($p->{'type'} eq 'Integer')
- {
- my $minsize=0;
- my $maxsize=100;
-
- $minsize=$p->{'minvalue'} if exists $p->{'minvalue'};
- $maxsize=$p->{'maxvalue'} if exists $p->{'maxvalue'};
-
- return ($minsize+ int rand ($maxsize-$minsize));
- }
-
- if($p->{'type'} eq 'String')
- {
- my $maxl=$maxstring;
- $maxl= $p->{'maxlength'} if exists $p->{'maxlength'};
- return chr(1+int rand 127) x int rand $maxl;
-# return chr(int rand 256) x int rand $maxl;
- }
-
- die "not defined type: ".Dumper $p if not exists $types{$p->{'type'}};
-
- if($types{$p->{'type'}}->{'type'} eq 'enum')
- {
- return $types{$p->{'type'}}->{'list'}->[int rand @{$types{$p->{'type'}}->{'list'}}]
- }
-
- if($types{$p->{'type'}}->{'type'} eq 'variant')
- {
- my @z=sort keys %{$types{$p->{'type'}}->{'list'}};
- my $q=@z[int rand @z];
- return { $q => generate_type_valid($types{$p->{'type'}}->{'list'}->{$q}) };
- }
-
-
- if($types{$p->{'type'}}->{'type'} eq 'struct')
- {
- my $q={};
- foreach(sort keys %{$types{$p->{'type'}}->{'list'}})
- {
- my $t=$_;
- $types{$p->{'type'}}->{'list'}->{$t};
- my $z=generate_type_valid($types{$p->{'type'}}->{'list'}->{$t});
- $q->{$t}=$z if defined $z;
- }
- return $q;
- }
-
- die 'unknown tag: '.Dumper $p->{'type'};
-}
-
-sub generate_valid
-{
- my $method=@table[int rand @table];
- my $rv={};
-
-
- foreach(@{$method->[2]})
- {
- next if exists $_->{'mandatory'} and (int rand 2)==0;
- my $t=generate_type_valid($_);
- $rv->{$_->{'name'}} = $t if defined $t;
- }
-
- return { $method->[1] => { 'name' => $method->[0] , 'correlationID' => int rand 100000, 'parameters' => $rv}};
-}
-
-my $iters=$config{'loops'};
-
-$iters+=0;
-$iters=10 if $iters==0;
-
-goto dryrun if $config{'mode'} eq 'dryrun';
-
-my $log=$config{'log'};
-$log='fuzzer.log' if $log eq '';
-unlink $log;
-
-my $name=tmpnam();
-
-`date >>$log`;
-`ddate >>$log`;
-#`echo $rnd >>$log`;
-
-open(LOG,'>>',$log) or die;
-LOG->autoflush(1);
-printf LOG "random base %s\n",$rnd;
-
-my $json;
-my $err=0;
-my $cnt=0;
-
-my $json_xs=JSON::XS->new->utf8;
-
-my $tpath=$config{'fuzzer'};
-
-while($iters--)
-{
- printf STDERR "%u remaining\n",$iters;
- open(FO, "|valgrind --tool=memcheck --leak-check=full --num-callers=24 --show-reachable=yes --track-fds=yes $tpath/alrpctest 2>&1 | grep -v DWARF >$name ; echo \"--finish--\" >>$name" )
- or die "cant open";
- FO->autoflush(1);
- $cnt++;
-# $json_xs->encode($perl_data);
-# $json=encode_json(generate_valid());
- $json=$json_xs->encode(generate_valid());
- printf FO "%s\n",$json;
- close FO;
- my $res;
- do
- {
- $res=read_file($name);
- } unless($res=~/--finish--$/s);
-
-#'ERROR SUMMARY: 0 errors from 0 contexts'
-#'--error--'
- if($res=~/\n--error--\n/s or $res!~/ERROR SUMMARY: 0 errors from 0 contexts/s)
- {
- $err++;
- printf LOG "::SENT\n%s\n",$json;
- printf LOG "::RECEIVED\n%s\n",$res;
- }
-}
-
-printf LOG "\n\ntotal runs %u, errors %u, random base %u\n\n",$cnt,$err,$rnd;
-close LOG;
-
-unlink $name;
-
-printf STDERR "total runs %u, errors %u, random base %u\n\n",$cnt,$err,$rnd;
-
-exit 0;
-
-dryrun:
-
-$log=$config{'dryrun'};
-
-my $json_xs=JSON::XS->new->utf8;
-
-open(FO, '>', $log) or die "cant open";
-FO->autoflush(1);
-
-printf FO "%s\n",$json_xs->encode(generate_valid()) while $iters--;
-close FO;
-
-exit 0;
-
-generate:
-
-# dependencies checking
-# i think it will be safer skip dependency checking. may be later when Moon moved in other constellation. today is bad time, really. :-)
-
-
-# preparing
-
-my $path=$config{'generate'};
-$path=~s/\/$//;
-$path.='/';
-
-my $pver=exists $config{'pver'} ? $config{'pver'} : 1;
-my $pimpl=$config{'pimpl'};
-$pimpl=~s/\/$//;
-$pimpl.='/';
-
-my $lib=$config{'lib'};
-$lib ='lib' if $lib eq '';
-$lib=~s/\/$//;
-$lib.='/';
-
-my $p2i=File::Spec->abs2rel($path,$pimpl);
-my $i2p=File::Spec->abs2rel($pimpl,$path);
-my $i2l=File::Spec->abs2rel($lib,$path);
-
-$p2i=$path if exists $config{'abs'};
-$i2p=$pimpl if exists $config{'abs'};
-$i2l=$lib if exists $config{'abs'};
-
-$p2i=~s/\/$//;
-$i2p=~s/\/$//;
-$i2l=~s/\/$//;
-
-
-my $ns=$config{'ns'};
-my $ind= $ns eq '' ? '' : ' ';
-
-my $sh=exists $config{'sh'} ? $config{'sh'} : 'hh';
-my $sc=exists $config{'sc'} ? $config{'sc'} : 'cc';
-
-`mkdir -p $path`;
-`mkdir -p $pimpl`;
-
-my $timestamp=gmtime(time());
-
-my $pragma='';
-#$pragma = sprintf "#pragma GCC dependency \"%s\"\n\n",File::Spec->canonpath($config{'xml'}) if exists $config{'pragma'};
-$pragma = sprintf "#pragma GCC dependency \"%s\"\n\n",Cwd::realpath($config{'xml'}) if exists $config{'pragma'};
-
-my $timemod;
-
-{
- my @a=stat $config{'xml'};
- $timemod=gmtime(@a[9]);
- undef @a;
-}
-
-sub getfort
-{
- my $x=`fortune -s`;
-
- $x=~s/\*\//* \//gs;
- $x=~s/\/\*/\/ \*/gs;
- return sprintf "/*\n%s*/\n",$x;
-}
-
-my $hat=sprintf "\n/*\n interface\t%s\n version\t%s\n date\t\t%s\n generated at\t%s\n source stamp\t%s\n author\tRC\n*/\n\n",
- $exts{'name'},$exts{'version'},$exts{'date'},$timestamp,$timemod;
-
-my $dd=`ddate`;
-$dd=~s/\n/ /gs;
-$hat= sprintf "// %s%s",$dd,$hat if exists $config{'ee'};
-
-my $prefix=$ns eq '' ? "" : sprintf "%s_",uc $ns;
-
-
-sub header_h
-{
- my $name=shift;
-
- return sprintf "%s#ifndef %s%s_INCLUDE\n#define %s%s_INCLUDE\n\n",
- $pragma,
- $prefix,uc $name,$prefix,uc $name;
-}
-
-
-sub comment2
-{
- my $x=shift;
- return '' if $x eq '';
- return sprintf "\n/// %s\n",$x if not ref $x;
- return sprintf "\n/// %s\n",$x->[0] if @$x==1;
- return sprintf "\n/**\n %s\n*/\n",join("\n ",@$x);
-}
-
-sub comment
-{
- my $x=shift;
- return '' if not ref $x;
- return '' if not exists $x->{'descr'};
- my $d=join("\n ",@{$x->{'descr'}});
- return @{$x->{'descr'}}>1 ? sprintf "\n/**\n %s\n*/\n",$d : sprintf "\n/// %s\n",$d;
-}
-
-sub mkpath
-{
- my $x=shift;
- my $s=shift;
-# $x=$path.'/'.$x.'.'.$s;
- $x.='.'.$s;
- return '>'.$x if not exists $config{'style'};
- return sprintf "| %s > %s",$config{'style'},$x;
-}
-
-open(FO,mkpath($pimpl.'PerfectHashTable',$sh)) or die;
-print FO "#ifndef PERFECTHASHTABLE_INCLUDE\n#define PERFECTHASHTABLE_INCLUDE\n\n";
-
-print FO "struct PerfectHashTable\n{\n const char *name;\n unsigned int idx;\n};\n" if $ns eq '';
-printf FO "namespace %s\n{\n struct PerfectHashTable\n {\n const char *name;\n unsigned int idx;\n };\n}",$ns if $ns ne '';
-
-print FO "\n#endif\n";
-close FO;
-
-# enums processing, 4 files per type produced.
-foreach(sort keys %types)
-{
- my $k=$_;
- next if $types{$k}->{'type'} ne 'enum';
- my $cmt=comment($types{$k});
-
- open(FO,mkpath($path.$k,$sh)) or die;
- print FO header_h($k);
- print FO $hat;
-
- my $templ_enum='
-class #name#
-{
-public:
- enum #name#Internal
- {
- INVALID_ENUM=-1'
-;
-# EN_US=0,
- my $templ_enum2='
- };
-
- #name#() : mInternal(INVALID_ENUM) {}
- #name#(#name#Internal e) : mInternal(e) {}
-
- #name#Internal get(void) const { return mInternal; }
- void set(#name#Internal e) { mInternal=e; }
-
-private:
- #name#Internal mInternal;
- friend class #name#Marshaller;
-};
-';
- printf FO "namespace %s\n{\n",$ns if $ns ne '';
- print FO $cmt;
- my $t=$templ_enum;
- $t=~s/\n/\n /gs if $ns ne '';
- $t=~s/#name#/$k/gs;
- print FO $t;
-
-# die Dumper($types{$k}) if $k eq 'Language';
-
- for(my $i=0;$i<@{$types{$k}->{'list'}};$i++)
- {
- my $c='';
- $c=comment2($types{$k}->{'ldesc'}->[$i]) if defined $types{$k}->{'ldesc'}->[$i];
- printf FO ",\n";
- printf FO $c if $c ne '';
- my $t= defined $types{$k}->{'iname'}->[$i] ? $types{$k}->{'iname'}->[$i] : $types{$k}->{'list'}->[$i];
- printf FO " %s%s=%u",$ind,$t,$i;
- }
- $t=$templ_enum2;
- $t=~s/\n/\n /gs if $ns ne '';
- $t=~s/#name#/$k/gs;
- print FO $t;
- print FO "\n}\n" if $ns ne '';
- print FO "\n#endif\n";
- close FO;
-
- open(FO,'>',sprintf "%s%sMarshaller.gp",$pimpl,$k) or die;
-
- print FO "%language=C++\n%struct-type\n%define lookup-function-name getPointer\n%define class-name ".$k."_intHash\n%omit-struct-type\n";
- print FO "%readonly-tables\n%compare-strncmp\n%compare-lengths\n\nstruct ";
- printf FO "%s::",$ns if $ns ne '';
- print FO "PerfectHashTable\n{\n const char *name;\n unsigned int idx;\n};\n\n%%\n";
-
- for(my $i=0;$i<@{$types{$k}->{'list'}};$i++)
- {
- printf FO "%s,%u\n",$types{$k}->{'list'}->[$i],$i;
- }
-
- close FO;
-
- open(FO,mkpath(sprintf('%s%sMarshaller',$pimpl,$k),$sh)) or die;
- print FO header_h($k.'Marshaller');
-
-# printf FO "#include <string>\n#include <json/json.h>\n\n#include \"PerfectHashTable.%s\"\n\n#include \"../%s.%s\"\n\n",$sh,$k,$sh;
- printf FO "#include <string>\n#include <json/json.h>\n\n#include \"PerfectHashTable.%s\"\n\n#include \"%s/%s.%s\"\n\n",$sh,$p2i,$k,$sh;
-
- print FO $hat;
- printf FO "namespace %s\n{\n",$ns if $ns ne '';
-
- printf FO "\n//! marshalling class for %s\n",$k;
-
- my $templ='
-class #name#Marshaller
-{
-public:
-
- static std::string toName(const #name#& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(#name#& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=#name#::INVALID_ENUM;
- }
-
- static bool checkIntegrity(#name#& e) { return e.mInternal!=#name#::INVALID_ENUM; }
- static bool checkIntegrityConst(const #name#& e) { return e.mInternal!=#name#::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,#name#& e);
- static const std::string toString(const #name#& e);
-
- static bool fromJSON(const Json::Value& s,#name#& e);
- static Json::Value toJSON(const #name#& e);
-
- static const char* getName(#name#::#name#Internal e)
- {
- return (e>=0 && e<#num#) ? mHashTable[e].name : NULL;
- }
-
- static const #name#::#name#Internal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[#num#];
-};
-';
- my $z=$templ;
- $z=~s/\n/\n /gs if $ns ne '';
- $z=~s/#name#/$k/gs;
- my $t=@{$types{$k}->{'list'}};
- $z=~s/#num#/$t/gs;
-
- print FO $z;
-
- print FO "\n}\n" if $ns ne '';
-
- print FO "\n#endif\n";
- close FO;
-
-# enumerator marshaller cc file
-
- open(FO,mkpath(sprintf('%s%sMarshaller',$pimpl,$k),$sc)) or die;
- print FO $pragma;
- my $nsc= $ns eq '' ? '' : "using namespace $ns;\n";
- my $hhat=$hat;
- {
- if(exists $config{'ee'})
- {
- $hhat=~s/^\/\/.*?\n//s;
- $hhat=getfort().$hhat;
- }
- }
-
-
-$templ='#include <cstring>
-#include "#p2i#/#name#.#sh#"
-#include "#name#Marshaller.#sh#"
-#include "#name#Marshaller.inc"
-
-'.$hhat.$nsc.'
-
-const #name#::#name#Internal #name#Marshaller::getIndex(const char* s)
-{
- if(!s)
- return #name#::INVALID_ENUM;
- const struct PerfectHashTable* p=#name#_intHash::getPointer(s,strlen(s));
- return p ? static_cast<#name#::#name#Internal>(p->idx) : #name#::INVALID_ENUM;
-}
-
-
-bool #name#Marshaller::fromJSON(const Json::Value& s,#name#& e)
-{
- e.mInternal=#name#::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=#name#::INVALID_ENUM);
-}
-
-
-Json::Value #name#Marshaller::toJSON(const #name#& e)
-{
- if(e.mInternal==#name#::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool #name#Marshaller::fromString(const std::string& s,#name#& e)
-{
- e.mInternal=#name#::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string #name#Marshaller::toString(const #name#& e)
-{
- Json::FastWriter writer;
- return e.mInternal==#name#::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable #name#Marshaller::mHashTable[#num#]=
-{
-';
-
- $z=$templ;
- $z=~s/#name#/$k/gs;
- $z=~s/#num#/$t/gs;
- $z=~s/#sh#/$sh/gs;
- $z=~s/#p2i#/$p2i/gs;
-
- print FO $z;
-
- my @r;
- for(my $i=0;$i<@{$types{$k}->{'list'}};$i++)
- {
- push @r,sprintf " {\"%s\",%u}",$types{$k}->{'list'}->[$i],$i;
- }
-
- print FO join(",\n",@r);
-
- print FO "\n};\n";
- close FO;
-}
-
-# ooh, enums processed, going to variants. it's more complex.
-# some stuff
-
-sub prepare_field
-{
- my $n=shift;
- my $v=shift;
-
- my $r={ 'name' => $n, 'type' => $v->{'type'}};
- $r->{'ename'}= $v->{'ename'} if exists $v->{'ename'};
- $r->{'descr'}= $v->{'description'} if exists $v->{'description'};
-
- if(exists $v->{'array'})
- {
- $r->{'array'}=[];
- $r->{'array'}->[0]=$v->{'minsize'} if exists $v->{'minsize'};
- $r->{'array'}->[1]=$v->{'maxsize'} if exists $v->{'maxsize'};
- }
- $r->{'opt'}=1 if exists $v->{'mandatory'};
-
- if($v->{'type'} eq 'String')
- {
- $r->{'ctype'}='std::string';
- $r->{'ref'}=1;
- $r->{'max'}=$v->{'maxLength'} if exists $v->{'maxLength'};
- $r->{'max'}=$v->{'maxlength'} if exists $v->{'maxlength'};
- return $r;
- }
- if($v->{'type'} eq 'Float')
- {
- $r->{'ctype'}='float';
- $r->{'ref'}=0;
- $r->{'max'}=$v->{'maxvalue'} if exists $v->{'maxvalue'};
- $r->{'min'}=$v->{'minvalue'} if exists $v->{'minvalue'};
- return $r;
- }
- if($v->{'type'} eq 'Boolean')
- {
- $r->{'ctype'}='bool';
- $r->{'ref'}=0;
- return $r;
- }
-
- if($v->{'type'} eq 'Integer')
- {
- $r->{'ref'}=0;
- $r->{'max'}=$v->{'maxvalue'} if exists $v->{'maxvalue'};
- $r->{'min'}=$v->{'minvalue'} if exists $v->{'minvalue'};
- $r->{'ctype'}=( exists $r->{'min'} and $r->{'min'}>=0) ? 'unsigned int' : 'int';
- return $r;
- }
-
-# die sprintf "unknown type found in %s : %s",$k,$v->{'type'} if not exists $types{$v->{'type'}};
- return undef if not exists $types{$v->{'type'}};
- $r->{'ctype'}=$v->{'type'};
- $r->{'ref'}=1;
- return $r;
-}
-
-# 1. field list preparing
-sub prepare_fields
-{
- my $k=shift;
- my $rv=[[],0,0];
-
- foreach(sort keys %{$types{$k}->{'list'}})
- {
- my $n=$_;
- my $v=$types{$k}->{'list'}->{$n};
-
- my $z=prepare_field($n,$v);
- die sprintf "unknown type found in %s : %s",$k,$v->{'type'} if not defined $z;
- push @{$rv->[0]},prepare_field($n,$v);
- $rv->[2]=1 if exists $v->{'array'};
- $rv->[1]=1 if $v->{'type'} eq 'String';
- }
-
- return $rv;
-}
-
-
-sub declare_field
-{
- my $r=shift;
- my $rv='';
-
- my $o= exists $r->{'opt'} ? '*' : '';
-
- $rv= exists $r->{'array'} ? sprintf "std::vector<%s>%s %s;",$r->{'ctype'},$o,$r->{'name'} : sprintf "%s%s %s;",$r->{'ctype'},$o,$r->{'name'};
-
- my $cms='';
-
-
- $cms.=" [%s..%s] ",$r->{'array'}->[0],$r->{'array'}->[1] if exists $r->{'array'};
-
- $cms.=sprintf "(%s)",$r->{'max'} if $r->{'ctype'} eq 'std::string' and exists $r->{'max'};
- if($r->{'type'} eq 'Float' or $r->{'type'} eq 'Integer')
- {
- my $min;$min=$r->{'min'} if exists $r->{'min'};
- my $max;$max=$r->{'max'} if exists $r->{'max'};
- $cms.=sprintf " (%s,%s)",$min,$max if $max ne '' and $min ne '';
- }
-
- $rv.="\t//!< ".$cms if $cms ne '';
-
- return $rv;
-}
-
-sub declare_field2
-{
- my $r=shift;
- my $rv=declare_field($r);
- my $c='';
- $c=comment2($r->{'descr'}) if exists $r->{'descr'};
-# print Dumper($c.$rv,$r);
- return $c.$rv;
-}
-
-sub declare_setter
-{
- my $r=shift;
- my $rv='';
-
- return sprintf "bool set_%s(%s %s_);",$r->{'name'},$r->{'ctype'},$r->{'name'}
- if(($r->{'type'} eq 'Float' or $r->{'type'} eq 'Integer' or $r->{'type'} eq 'Boolean') and not exists $r->{'array'});
-
- $rv= exists $r->{'array'} ? sprintf "std::vector<%s>",$r->{'ctype'} : $r->{'ctype'};
-
- return sprintf "bool set_%s(const %s& %s_);",$r->{'name'},$rv,$r->{'name'};
-}
-
-
-sub define_setter
-{
- my $n=shift;
- my $p=shift; # parent name
- my $t=shift; # 0 for variants and 1 for structs
-
- my $rv=declare_setter($n);
- $rv=~s/^bool //s;
- $rv=~s/;$//s;
- $rv=sprintf "bool %s::%s\n{\n",$p,$rv;
-
- my $f= $t==1 ? $n->{'name'} : ('mInternal.'.$n->{'name'});
-
- my $tp= exists $n->{'array'} ? sprintf "std::vector<%s>",$n->{'ctype'} : $n->{'ctype'};
-
-# check constraints
-
- if(defined $n->{'array'})
- {
- $rv.= sprintf " unsigned int i=%s_.size();\n",$n->{'name'};
- if(defined $n->{'array'}->[0] and defined $n->{'array'}->[1])
- {
- $rv.= sprintf " if(i>%s || i<%s) return false;\n",$n->{'array'}->[1],$n->{'array'}->[0];
- }
- else
- {
- $rv.= sprintf " if(i<%s) return false;\n",$n->{'array'}->[0] if defined $n->{'array'}->[0];
- $rv.= sprintf " if(i>%s) return false;\n",$n->{'array'}->[1] if defined $n->{'array'}->[1];
- }
-
- $rv.=" while(i--)\n {\n" if $n->{'type'} ne 'Boolean';
-
- if($n->{'type'} eq 'String')
- {
- $rv.=sprintf " if(%s_[i].length()>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- }
- elsif($n->{'type'} eq 'Integer')
- {
- $rv.=sprintf " if(%s_[i]>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- $rv.=sprintf " if(%s_[i]<%s) return false;\n",$n->{'name'},$n->{'min'} if exists $n->{'min'} and $n->{'ctype'} eq 'unsigned int' and $n->{'min'}>0;
- }
- elsif($n->{'type'} eq 'Float')
- {
- $rv.=sprintf " if(%s_[i]>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- $rv.=sprintf " if(%s_[i]<%s) return false;\n",$n->{'name'},$n->{'min'} if exists $n->{'min'};
- }
- elsif($n->{'type'} ne 'Boolean')
- {
- $rv.=sprintf " if(!%sMarshaller::checkIntegrityConst(%s_[i])) return false;\n",$n->{'ctype'},$n->{'name'};
- }
- $rv.=" }\n" if $n->{'type'} ne 'Boolean';
- }
- else
- {
- if($n->{'type'} eq 'String')
- {
- $rv.=sprintf " if(%s_.length()>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- }
- elsif($n->{'type'} eq 'Integer')
- {
- $rv.=sprintf " if(%s_>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- $rv.=sprintf " if(%s_<%s) return false;\n",$n->{'name'},$n->{'min'} if exists $n->{'min'} and $n->{'ctype'} eq 'unsigned int' and $n->{'min'}>0;
- }
- elsif($n->{'type'} eq 'Float')
- {
- $rv.=sprintf " if(%s_>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- $rv.=sprintf " if(%s_<%s) return false;\n",$n->{'name'},$n->{'min'} if exists $n->{'min'};
- }
- elsif($n->{'type'} ne 'Boolean')
- {
- $rv.=sprintf " if(!%sMarshaller::checkIntegrityConst(%s_)) return false;\n",$n->{'ctype'},$n->{'name'};
- }
- }
-
- if(exists $n->{'opt'})
- {
- $rv.=sprintf " delete %s;\n %s=0;\n\n %s=new %s(%s_);\n",$f,$f,$f,$tp,$n->{'name'};
- }
- else
- {
- $rv.=sprintf " mInternal.mDiscriminator=%s;\n", $n->{'ename'} if $t==0;
-
- if(exists $n->{'opt'})
- {
- $rv.=sprintf " %s=new %s(%s_);\n",$f,$tp,$n->{'name'};
- }
- else
- {
- $rv.=sprintf " %s=%s_;\n",$f,$n->{'name'};
- }
- }
-
- $rv.=" return true;\n}\n\n";
-
- return $rv;
-}
-
-
-# variants
-
-
-foreach(sort keys %types)
-{
- my $k=$_;
- next if $types{$k}->{'type'} ne 'variant';
-
- my $cmt=comment($types{$k});
-
- open(FO,mkpath($path.$k,$sh)) or die;
- print FO header_h($k);
-
- my $t=0+keys %{$types{$k}->{'list'}};
-
- my $fields=prepare_fields($k);
- my @tp=@{$fields->[0]};
- my $isstr=$fields->[1];
- my $isarr=$fields->[2];
-
- print FO "#include <string>\n\n" if $isstr==1;
- print FO "#include <vector>\n\n" if $isarr==1;
-
- foreach(@tp)
- {
- next if $_->{'ref'}==0;
- next if $_->{'ctype'} eq 'std::string';
- printf FO "#include \"%s.%s\"\n",$_->{'ctype'},$sh;
- }
-
- print FO "\n",$hat;
- print FO "\n";
- printf FO "namespace %s\n{\n",$ns if $ns ne '';
- print FO $cmt;
-
- my $tmpl=sprintf "class %s\n{\npublic:\n\n enum eDiscriminator\n {\n INVALID_ENUM=-1",$k;
- $tmpl=~s/\n/\n /gs if $ns ne '';
- printf FO $tmpl;
-
- for(my $i=0;$i<@tp;$i++)
- {
- printf FO ",\n %s%s=%u",$ind, @tp[$i]->{'ename'},$i;
- }
- printf FO "\n %s};\n\n %sstruct tUnion\n%s {\n%s eDiscriminator mDiscriminator;\n",$ind,$ind,$ind,$ind;
-
- foreach(@tp)
- {
- my $n=$_;
- my $c='';
- $c=comment2($n->{'descr'}) if exists $n->{'descr'};
-# printf FO "%s%s %s\n",$c,$ind,declare_field($_) foreach @tp;
- printf FO "%s%s %s\n",$c,$ind,declare_field($n);
- }
-
- printf FO "%s };\n",$ind;
-
- my $tmpl='
- #name#(const #name#& c);
- #name#(void);
-
- ~#name#(void);
-
-//! return true if all constraints valid
- bool checkIntegrity(void);
-
-// getters
- eDiscriminator getType(void);
- eDiscriminator get_All(tUnion& t);
-//setters
-
-';
- $tmpl=~s/#name#/$k/gs;
- $tmpl=~s/\n /\n /gs if $ns ne '';
- print FO $tmpl;
-
- foreach(@tp)
- {
- printf FO "%s %s\n",$ind,declare_setter($_);
- }
-
- $tmpl="\n bool set_All(const tUnion& t);\n\nprivate:\n tUnion mInternal;\n\n friend class #name#Marshaller;\n";
- $tmpl=~s/#name#/$k/gs;
- $tmpl=~s/\n /\n /gs if $ns ne '';
- print FO $tmpl;
-
-
- printf FO "%s};\n",$ind;
- print FO "\n}\n" if $ns ne '';
- print FO "\n#endif\n";
- close FO;
-
- open(FO,'>',sprintf "%s%sMarshaller.gp",$pimpl,$k) or die;
- print FO "%language=C++\n%struct-type\n%define lookup-function-name getPointer\n%define class-name ".$k."_intHash\n%omit-struct-type\n";
- print FO "%readonly-tables\n%compare-strncmp\n%compare-lengths\n\nstruct ";
- printf FO "%s::",$ns if $ns ne '';
- print FO "PerfectHashTable\n{\n const char *name;\n unsigned int idx;\n};\n\n%%\n";
-
- for(my $i=0;$i<@tp;$i++)
- {
- printf FO "%s,%u\n", @tp[$i]->{'ename'},$i;
- }
-
- close FO;
-
- open(FO,mkpath($pimpl.$k,$sc)) or die;
- print FO $pragma;
- print FO "#include <cstring>\n\n";
- printf FO "#include \"%s/%s.%s\"\n",$p2i,$k,$sh;
-
- {
- my %h = map { $_->{'ctype'} ,1} grep { $_->{'ref'}==1 and $_->{'ctype'} ne 'std::string' } @tp;
- print FO join("\n",map { sprintf '#include "%sMarshaller.%s"',$_,$sh } sort keys %h);
- }
-
- printf FO "\n#include \"%sMarshaller.%s\"\n\n",$k,$sh;
-
- {
- my $h=$hat;
- if(exists $config{'ee'})
- {
- $h=~s/^\/\/.*?\n//s;
- $h=getfort().$h;
- }
- print FO $h;
- }
-
- printf FO "using namespace %s;\n",$ns if $ns ne '';
-
- $tmpl='
-#name#::~#name#(void)
-{
-}
-
-#name#::#name#(const #name#& c)
-{
- *this=c;
-}
-
-#name#::#name#(void)
-{
- mInternal.mDiscriminator=INVALID_ENUM;
-}
-
-
-bool #name#::checkIntegrity(void)
-{
- return #name#Marshaller::checkIntegrity(*this);
-}
-
-#name#::eDiscriminator #name#::getType(void)
-{
- return mInternal.mDiscriminator;
-}
-
-#name#::eDiscriminator #name#::get_All(tUnion& t)
-{
- t=mInternal;
- return mInternal.mDiscriminator;
-}
-
-bool #name#::set_All(const tUnion& t)
-{
- mInternal=t;
- return checkIntegrity();
-}
-';
-
- my $z=$tmpl;
- $z=~s/#name#/$k/gs;
- print FO $z;
-
-# variant setters
- print FO define_setter($_,$k,0) foreach @tp;
-
- close FO;
-
-# marshaller hh
-
- open(FO,mkpath(sprintf('%s%sMarshaller',$pimpl,$k),$sh)) or die;
-
- print FO header_h($k.'Marshaller');
-
- printf FO "#include <string>\n#include <json/json.h>\n\n#include \"PerfectHashTable.%s\"\n#include \"%s/%s.%s\"\n\n",
- $sh,$p2i,$k,$sh;
-
- print FO $hat;
-
- printf FO "namespace %s\n{\n",$ns if $ns ne '';
-
- $tmpl='
-struct #name#Marshaller
-{
- static std::string toName(const #name#& e) { return getName(e.mInternal.mDiscriminator) ?: ""; }
-
- static bool fromName(#name#::eDiscriminator& e,const std::string& s)
- {
- return (e=getIndex(s.c_str()))!=#name#::INVALID_ENUM;
- }
-
- static bool checkIntegrity(#name#& e);
- static bool checkIntegrityConst(const #name#& e);
-
- static bool fromString(const std::string& s,#name#& e);
- static const std::string toString(const #name#& e);
-
- static bool fromJSON(const Json::Value& s,#name#& e);
- static Json::Value toJSON(const #name#& e);
-
-
- static const char* getName(#name#::eDiscriminator e)
- {
- return (e>=0 && e<#num#) ? mHashTable[e].name : NULL;
- }
-
- static const #name#::eDiscriminator getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[#num#];
-};';
-
- my $z=$tmpl;
- $z=~s/\n/\n /gs if $ns ne '';
- $z=~s/#name#/$k/gs;
- my $t=scalar keys %{$types{$k}->{'list'}};
- $z=~s/#num#/$t/gs;
- print FO $z;
-
- printf FO "\n}\n" if $ns ne '';
- print FO "\n#endif\n";
-
- close FO;
-
-# long way to finish, i want COFFEE!!!
-# but last variant file must be done before..
-
- open(FO,mkpath(sprintf('%s%sMarshaller',$pimpl,$k),$sc)) or die;
- print FO $pragma;
-
- my $nsc= $ns eq '' ? '' : "using namespace $ns;\n\n";
- my $hhat=$hat;
- {
- if(exists $config{'ee'})
- {
- $hhat=~s/^\/\/.*?\n//s;
- $hhat=getfort().$hhat;
- }
- }
-
- print FO "#include <cstring>\n\n";
-
- printf FO "#include \"%s/%s.%s\"\n",$p2i,$k,$sh;
-
- {
- my %h = map { $_->{'ctype'} ,1} grep { $_->{'ref'}==1 and $_->{'ctype'} ne 'std::string' } @tp;
- print FO join("\n",map { sprintf '#include "%sMarshaller.%s"',$_,$sh } sort keys %h);
- }
-
- printf FO "\n\n#include \"%sMarshaller.%s\"\n#include \"%sMarshaller.inc\"\n\n",$k,$sh,$k;
-
- print FO $hhat;
-
- print FO $nsc;
-
- $tmpl='bool #name#Marshaller::checkIntegrity(#name#& s)
-{
- return checkIntegrityConst(s);
-}
-
-const #name#::eDiscriminator #name#Marshaller::getIndex(const char* s)
-{
- if(!s)
- return #name#::INVALID_ENUM;
- const struct PerfectHashTable* p=#name#_intHash::getPointer(s,strlen(s));
- return p ? static_cast<#name#::eDiscriminator>(p->idx) : #name#::INVALID_ENUM;
-}
-
-
-bool #name#Marshaller::fromString(const std::string& s,#name#& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string #name#Marshaller::toString(const #name#& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-';
-
- $tmpl=~s/#name#/$k/gs;
- print FO $tmpl;
-
-# and there are four untemplated methods.
-# my coffee wait me
-
- printf FO "\nbool %sMarshaller::checkIntegrityConst(const %s& s)\n{\n switch(s.mInternal.mDiscriminator)\n {\n".
- " case %s::INVALID_ENUM:\n return false;\n",$k,$k,$k;
-
- foreach(@tp)
- {
- my $n=$_;
- printf FO " case %s::%s:\n",$k, $n->{'ename'};
-
- if(defined $n->{'array'})
- {
- printf FO " {\n unsigned int i=s.mInternal.%s.size();\n",$n->{'name'};
- if(defined $n->{'array'}->[0] and defined $n->{'array'}->[1])
- {
- printf FO " if(i>%s || i<%s) return false;\n",$n->{'array'}->[1],$n->{'array'}->[0];
- }
- else
- {
- printf FO " if(i<%s) return false;\n",$n->{'array'}->[0] if defined $n->{'array'}->[0];
- printf FO " if(i>%s) return false;\n",$n->{'array'}->[1] if defined $n->{'array'}->[1];
- }
-
- print FO " while(i--)\n {\n";
-
- if($n->{'type'} eq 'String')
- {
- printf FO " if(s.mInternal.%s[i].length()>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- }
- elsif($n->{'type'} eq 'Integer')
- {
- printf FO " if(s.mInternal.%s[i]>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- printf FO " if(s.mInternal.%s[i]<%s) return false;\n",$n->{'name'},$n->{'min'} if exists $n->{'min'} and $n->{'ctype'} eq 'unsigned int' and $n->{'min'}>0;
- }
- elsif($n->{'type'} eq 'Float')
- {
- printf FO " if(s.mInternal.%s[i]>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- printf FO " if(s.mInternal.%s[i]<%s) return false;\n",$n->{'name'},$n->{'min'} if exists $n->{'min'};
- }
- elsif($n->{'type'} ne 'Boolean')
- {
- printf FO " if(!%sMarshaller::checkIntegrityConst(s.mInternal.%s[i])) return false;\n",$n->{'ctype'},$n->{'name'};
- }
- printf FO " }\n return true;\n";
- }
- else
- {
- if($n->{'type'} eq 'String')
- {
- printf FO " if(s.mInternal.%s.length()>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- }
- elsif($n->{'type'} eq 'Integer')
- {
- printf FO " if(s.mInternal.%s>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- printf FO " if(s.mInternal.%s<%s) return false;\n",$n->{'name'},$n->{'min'} if exists $n->{'min'} and $n->{'ctype'} eq 'unsigned int' and $n->{'min'}>0;
- }
- elsif($n->{'type'} eq 'Float')
- {
- printf FO " if(s.mInternal.%s>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- printf FO " if(s.mInternal.%s<%s) return false;\n",$n->{'name'},$n->{'min'} if exists $n->{'min'};
- }
- elsif($n->{'type'} ne 'Boolean')
- {
- printf FO " return %sMarshaller::checkIntegrityConst(s.mInternal.%s);\n",$n->{'ctype'},$n->{'name'};
- next;
- }
- printf FO " return true;\n";
- }
-
- }
-
- printf FO " }\n return false;\n}\n";
-
- printf FO "\nJson::Value %sMarshaller::toJSON(const %s& e)\n{\n Json::Value json(Json::objectValue);\n ".
- "if(!checkIntegrityConst(e))\n return Json::Value(Json::nullValue);\n\n switch(e.mInternal.mDiscriminator)\n ".
- "{\n case %s::INVALID_ENUM:\n break;\n\n",$k,$k,$k;
-
-
- foreach (@tp)
- {
- my $n=$_;
- printf FO " case %s::%s:\n",$k,$n->{'ename'};
- if(defined $n->{'array'})
- {
- printf FO " json[\"%s\"]=Json::Value(Json::arrayValue);\n json[\"%s\"].resize(e.mInternal.%s.size());\n",
- $n->{'name'},$n->{'name'},$n->{'name'};
- printf FO " for(unsigned int i=0;i<e.mInternal.%s.size();i++)\n json[\"%s\"][i]=",$n->{'name'},$n->{'name'};
- if($n->{'type'} eq 'Boolean' or $n->{'type'} eq 'Float' or $n->{'type'} eq 'Integer' or $n->{'type'} eq 'String')
- {
- printf FO "Json::Value(e.mInternal.%s[i]);\n",$n->{'name'};
- }
- else
- {
- printf FO "%sMarshaller::toJSON(e.mInternal.%s[i]);\n",$n->{'type'},$n->{'name'};
- }
- print FO " break;\n";
- next;
- }
-
- printf FO " json[\"%s\"]=",$n->{'name'};
-
- if($n->{'type'} eq 'Boolean' or $n->{'type'} eq 'Float' or $n->{'type'} eq 'Integer' or $n->{'type'} eq 'String')
- {
- printf FO "Json::Value(e.mInternal.%s);\n",$n->{'name'};
- }
- else
- {
- printf FO "%sMarshaller::toJSON(e.mInternal.%s);\n",$n->{'type'},$n->{'name'};
- }
- print FO " break;\n";
- }
-
- print FO " }\n\n return json;\n}\n\n";
-
- printf FO "bool %sMarshaller::fromJSON(const Json::Value& json,%s& c)\n{\n c.mInternal.mDiscriminator=%s::INVALID_ENUM;\n\n".
- " try\n {\n if(!json.isObject()) return false;\n\n",$k,$k,$k;
-
-
- foreach(@tp)
- {
- my $n=$_;
- printf FO " if(json.isMember(\"%s\"))\n {\n",$n->{'name'};
- if(exists $n->{'array'})
- {
- printf FO " const Json::Value& j=json[\"%s\"];\n",$n->{'name'};
- printf FO " if(!j.isArray()) return false;\n";
- printf FO " c.mInternal.%s.resize(j.size());\n",$n->{'name'};
- printf FO " for(unsigned int i=0;i<j.size();i++)\n";
-
- if(exists $json{$n->{'type'}})
- {
- printf FO " if(!j[i].is%s())\n",$json2{$n->{'type'}};
- printf FO " return false;\n";
- printf FO " else\n";
- printf FO " c.mInternal.%s[i]=j[i].as%s();\n",$n->{'name'},$json{$n->{'type'}};
- }
- else
- {
- printf FO " {\n";
- printf FO " %s t;\n",$n->{'type'};
- printf FO " if(!%sMarshaller::fromJSON(j[i],t))\n",$n->{'type'};
- printf FO " return false;\n";
- printf FO " c.mInternal.%s[i]=t;\n",$n->{'name'};
- printf FO " }\n";
- }
-
- printf FO " c.mInternal.mDiscriminator=%s::%s;\n goto leave;\n }\n",$k,$n->{'ename'};
- next;
- }
- else
- {
- printf FO " const Json::Value& j=json[\"%s\"];\n",$n->{'name'};
- if(exists $json{$n->{'type'}})
- {
- printf FO " if(!j.is%s()) return false;\n",$json2{$n->{'type'}};
- printf FO " c.mInternal.%s=j.as%s();\n",$n->{'name'},$json{$n->{'type'}};
- }
- else
- {
- printf FO " if(!%sMarshaller::fromJSON(j,c.mInternal.%s))\n",$n->{'type'},$n->{'name'};
- printf FO " return false;\n";
- }
- printf FO " c.mInternal.mDiscriminator=%s::%s;\n",$k, $n->{'ename'};
- printf FO " goto leave;\n }\n";
- }
- }
-
- printf FO "\n }\n catch(...)\n {\n c.mInternal.mDiscriminator=%s::INVALID_ENUM;\n return false;\n }\n".
- " c.mInternal.mDiscriminator=%s::INVALID_ENUM;\n return false;\nleave:\n return checkIntegrity(c);\n}\n\n",$k,$k;
-
-
- printf FO "const PerfectHashTable %sMarshaller::mHashTable[%u]=\n{\n",$k,$t;
-
- my @r;
- for(my $i=0;$i<@tp;$i++)
- {
- push @r,sprintf " {\"%s\",%u}", @tp[$i]->{'ename'},$i;
- }
-
- print FO join(",\n",@r);
-
- printf FO "\n};\n";
-
- close FO;
-}
-
-# my coffee ready...
-
-# rock'n'roll!! structures!!!
-# i hope interpreter not understood my comments :-)
-
-sub declare_check
-{
- my $n=shift;
- my $rv;
-
- my $w=$n->{'name'};
- $w.='[0]' if exists $n->{'opt'};
-
- if(defined $n->{'array'})
- {
- $rv.=sprintf " if(s.%s)\n",$n->{'name'} if exists $n->{'opt'};
- $rv.=sprintf " {\n unsigned int i=s.%s.size();\n",$w;
- if(defined $n->{'array'}->[0] and defined $n->{'array'}->[1])
- {
- $rv.=sprintf " if(i>%s || i<%s) return false;\n",$n->{'array'}->[1],$n->{'array'}->[0];
- }
- else
- {
- $rv.=sprintf " if(i<%s) return false;\n",$n->{'array'}->[0] if defined $n->{'array'}->[0];
- $rv.=sprintf " if(i>%s) return false;\n",$n->{'array'}->[1] if defined $n->{'array'}->[1];
- }
-
- $rv.=" while(i--)\n {\n";
-
- if($n->{'type'} eq 'String')
- {
- $rv.=sprintf " if(s.%s[i].length()>%s) return false;\n",$w,$n->{'max'} if exists $n->{'max'};
- }
- elsif($n->{'type'} eq 'Integer')
- {
- $rv.=sprintf " if(s.%s[i]>%s) return false;\n",$w,$n->{'max'} if exists $n->{'max'};
- $rv.=sprintf " if(s.%s[i]<%s) return false;\n",$w,$n->{'min'} if exists $n->{'min'} and $n->{'ctype'} eq 'unsigned int' and $n->{'min'}>0;
- }
- elsif($n->{'type'} eq 'Float')
- {
- $rv.=sprintf " if(s.%s[i]>%s) return false;\n",$w,$n->{'max'} if exists $n->{'max'};
- $rv.=sprintf " if(s.%s[i]<%s) return false;\n",$w,$n->{'min'} if exists $n->{'min'};
- }
- elsif($n->{'type'} ne 'Boolean')
- {
- $rv.=sprintf " if(!%sMarshaller::checkIntegrityConst(s.%s[i])) return false;\n",$n->{'ctype'},$w;
- }
- $rv.=sprintf " }\n }\n";
- }
- else
- {
- if($n->{'type'} eq 'String')
- {
- if(exists $n->{'opt'})
- {
- $rv.=sprintf " if(s.%s && s.%s->length()>%s) return false;\n",$n->{'name'},$n->{'name'},$n->{'max'} if exists $n->{'max'};
- }
- else
- {
- $rv.=sprintf " if(s.%s.length()>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- }
- }
- elsif($n->{'type'} eq 'Integer')
- {
- if(exists $n->{'opt'})
- {
- $rv.=sprintf " if(s.%s && *s.%s>%s) return false;\n",$n->{'name'},$n->{'name'},$n->{'max'} if exists $n->{'max'};
- $rv.=sprintf " if(s.%s && *s.%s<%s) return false;\n",$n->{'name'},$n->{'name'},$n->{'min'} if exists $n->{'min'} and ($n->{'ctype'} ne 'unsigned int' or $n->{'min'}>0);
- }
- else
- {
- $rv.=sprintf " if(s.%s>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- $rv.=sprintf " if(s.%s<%s) return false;\n",$n->{'name'},$n->{'min'} if exists $n->{'min'} and ($n->{'ctype'} ne 'unsigned int' or $n->{'min'}>0);
- }
- }
- elsif($n->{'type'} eq 'Float')
- {
- if(exists $n->{'opt'})
- {
- $rv.=sprintf " if(s.%s && *s.%s>%s) return false;\n",$n->{'name'},$n->{'name'},$n->{'max'} if exists $n->{'max'};
- $rv.=sprintf " if(s.%s && *s.%s<%s) return false;\n",$n->{'name'},$n->{'name'},$n->{'min'} if exists $n->{'min'};
- }
- else
- {
- $rv.=sprintf " if(s.%s>%s) return false;\n",$n->{'name'},$n->{'max'} if exists $n->{'max'};
- $rv.=sprintf " if(s.%s<%s) return false;\n",$n->{'name'},$n->{'min'} if exists $n->{'min'};
- }
- }
- elsif($n->{'type'} ne 'Boolean')
- {
- if(exists $n->{'opt'})
- {
- $rv.=sprintf " if(s.%s && !%sMarshaller::checkIntegrityConst(*s.%s)) return false;\n",$n->{'name'},$n->{'ctype'},$n->{'name'};
- }
- else
- {
- $rv.=sprintf " if(!%sMarshaller::checkIntegrityConst(s.%s)) return false;\n",$n->{'ctype'},$n->{'name'};
- }
- }
- }
- return $rv;
-}
-
-sub declare_serialize
-{
- my $n=shift;
- my $rv;
-
- if(defined $n->{'array'})
- {
- if(exists $n->{'opt'})
- {
- my $w=" if(e.#)\n {\n unsigned int sz=e.#->size();\n json[\"#\"]=Json::Value(Json::arrayValue);\n json[\"#\"].resize(sz);\n".
- " for(unsigned int i=0;i<sz;i++)\n json[\"#\"][i]=";
-
- if(exists $json{$n->{'type'}})
- {
- $w.="Json::Value(e.#[0][i]);\n }\n";
- }
- else
- {
- $w.="#type#Marshaller::toJSON(e.#[0][i]);\n }\n"
- }
-
- my $z=$n->{'type'};
- $w=~s/#type#/$z/gs;
- my $z=$n->{'name'};
- $w=~s/#/$z/gs;
- $rv.=$w;
- }
- else
- {
- $rv.=sprintf " json[\"%s\"]=Json::Value(Json::arrayValue);\n json[\"%s\"].resize(e.%s.size());\n",
- $n->{'name'},$n->{'name'},$n->{'name'};
- $rv.=sprintf " for(unsigned int i=0;i<e.%s.size();i++)\n json[\"%s\"][i]=",$n->{'name'},$n->{'name'};
- if($n->{'type'} eq 'Boolean' or $n->{'type'} eq 'Float' or $n->{'type'} eq 'Integer' or $n->{'type'} eq 'String')
- {
- $rv.=sprintf "Json::Value(e.%s[i]);\n",$n->{'name'};
- }
- else
- {
- $rv.=sprintf "%sMarshaller::toJSON(e.%s[i]);\n",$n->{'type'},$n->{'name'};
- }
- }
- return $rv;
- }
-
- if(exists $n->{'opt'})
- {
- $rv.=sprintf " if(e.%s)\n",$n->{'name'};
- $rv.=sprintf " json[\"%s\"]=",$n->{'name'};
-
- if($n->{'type'} eq 'Boolean' or $n->{'type'} eq 'Float' or $n->{'type'} eq 'Integer' or $n->{'type'} eq 'String')
- {
- $rv.=sprintf "Json::Value(*e.%s);\n",$n->{'name'};
- }
- else
- {
- $rv.=sprintf "%sMarshaller::toJSON(*e.%s);\n",$n->{'type'},$n->{'name'};
- }
- }
- else
- {
- $rv.=sprintf " json[\"%s\"]=",$n->{'name'};
-
- if($n->{'type'} eq 'Boolean' or $n->{'type'} eq 'Float' or $n->{'type'} eq 'Integer' or $n->{'type'} eq 'String')
- {
- $rv.=sprintf "Json::Value(e.%s);\n",$n->{'name'};
- }
- else
- {
- $rv.=sprintf "%sMarshaller::toJSON(e.%s);\n",$n->{'type'},$n->{'name'};
- }
- }
- return $rv;
-}
-
-sub declare_deserialize
-{
- my $n=shift;
- my $rv;
-
- if(exists $n->{'opt'})
- {
- $rv.=sprintf " if(json.isMember(\"%s\"))\n {\n",$n->{'name'};
-
- if(exists $n->{'array'})
- {
- $rv.=sprintf " const Json::Value& j=json[\"%s\"];\n",$n->{'name'};
- $rv.=sprintf " if(!j.isArray()) return false;\n";
- $rv.=sprintf " c.%s=new std::vector<%s>();\n",$n->{'name'},$n->{'ctype'};
- $rv.=sprintf " c.%s->resize(j.size());\n",$n->{'name'};
- $rv.=sprintf " for(unsigned int i=0;i<j.size();i++)\n";
-
- if(exists $json{$n->{'type'}})
- {
- $rv.=sprintf " if(!j[i].is%s())\n",$json2{$n->{'type'}};
- $rv.=sprintf " return false;\n";
- $rv.=sprintf " else\n";
- $rv.=sprintf " c.%s[0][i]=j[i].as%s();\n",$n->{'name'},$json{$n->{'type'}};
- }
- else
- {
- $rv.=sprintf " {\n";
- $rv.=sprintf " %s t;\n",$n->{'type'};
- $rv.=sprintf " if(!%sMarshaller::fromJSON(j[i],t))\n",$n->{'type'};
- $rv.=sprintf " return false;\n";
- $rv.=sprintf " c.%s[0][i]=t;\n",$n->{'name'};
- $rv.=sprintf " }\n\n";
- }
- $rv.=" }\n";
- return $rv;
- }
- else
- {
- $rv.=sprintf " const Json::Value& j=json[\"%s\"];\n",$n->{'name'};
- if(exists $json{$n->{'type'}})
- {
- $rv.=sprintf " if(!j.is%s()) return false;\n",$json2{$n->{'type'}};
- $rv.=sprintf " c.%s=new %s(j.as%s());\n",$n->{'name'},$n->{'ctype'},$json{$n->{'type'}};
- }
- else
- {
- $rv.=sprintf " c.%s=new %s();\n",$n->{'name'},$n->{'ctype'};
- $rv.=sprintf " if(!%sMarshaller::fromJSON(j,c.%s[0]))\n",$n->{'type'},$n->{'name'};
- $rv.=sprintf " return false;\n";
- }
- }
-
- $rv.=sprintf " }\n",$n->{'name'};
- }
- else
- {
- $rv.=sprintf " if(!json.isMember(\"%s\")) return false;\n",$n->{'name'};
- if(exists $n->{'array'})
- {
- $rv.=sprintf " {\n const Json::Value& j=json[\"%s\"];\n",$n->{'name'};
- $rv.=sprintf " if(!j.isArray()) return false;\n";
- $rv.=sprintf " c.%s.resize(j.size());\n",$n->{'name'};
- $rv.=sprintf " for(unsigned int i=0;i<j.size();i++)\n";
-
- if(exists $json{$n->{'type'}})
- {
- $rv.=sprintf " if(!j[i].is%s())\n",$json2{$n->{'type'}};
- $rv.=sprintf " return false;\n";
- $rv.=sprintf " else\n";
- $rv.=sprintf " c.%s[i]=j[i].as%s();\n",$n->{'name'},$json{$n->{'type'}};
- }
- else
- {
- $rv.=sprintf " {\n";
- $rv.=sprintf " %s t;\n",$n->{'type'};
- $rv.=sprintf " if(!%sMarshaller::fromJSON(j[i],t))\n",$n->{'type'};
- $rv.=sprintf " return false;\n";
- $rv.=sprintf " c.%s[i]=t;\n",$n->{'name'};
- $rv.=sprintf " }\n\n";
- }
- $rv.=" }\n";
- return $rv;
- }
- else
- {
- $rv.=sprintf " {\n const Json::Value& j=json[\"%s\"];\n",$n->{'name'};
- if(exists $json{$n->{'type'}})
- {
- $rv.=sprintf " if(!j.is%s()) return false;\n",$json2{$n->{'type'}};
- $rv.=sprintf " c.%s=j.as%s();\n",$n->{'name'},$json{$n->{'type'}};
- }
- else
- {
- $rv.=sprintf " if(!%sMarshaller::fromJSON(j,c.%s))\n",$n->{'type'},$n->{'name'};
- $rv.=sprintf " return false;\n";
- }
- $rv.=" }\n";
- }
- }
-
- return $rv;
-}
-
-foreach(sort keys %types)
-{
- my $k=$_;
- next if $types{$k}->{'type'} ne 'struct';
-
- my $cmt=comment($types{$k});
-
- open(FO,mkpath($path.$k,$sh)) or die;
- print FO header_h($k);
-
- my $t=0+keys %{$types{$k}->{'list'}};
-
- my $fields=prepare_fields($k);
- my @tp=@{$fields->[0]};
- my $isstr=$fields->[1];
- my $isarr=$fields->[2];
-
- print FO "#include <string>\n" if $isstr==1;
- print FO "#include <vector>\n" if $isarr==1;
- print FO "\n";
-
- foreach(@tp)
- {
- next if $_->{'ref'}==0;
- next if $_->{'ctype'} eq 'std::string';
- printf FO "#include \"%s.%s\"\n",$_->{'ctype'},$sh;
- }
-
- print FO "\n",$hat;
- print FO "\n";
- printf FO "namespace %s\n{\n",$ns if $ns ne '';
- print FO $cmt;
-
- my $tmpl=sprintf "\nclass %s\n{\npublic:\n\n %s(const %s& c);\n %s(void);\n\n".
- " bool checkIntegrity(void);\n",$k,$k,$k,$k;
-
-
- $tmpl=~s/\n/\n /gs if $ns ne '';
- printf FO $tmpl;
-
- my $isopt=0;
- foreach(@tp)
- {
- $isopt=1 if exists $_->{'opt'};
- }
-
- printf FO "\n%s ~%s(void);\n%s %s& operator =(const %s&);\n\n",$ind,$k,$ind,$k,$k if $isopt==1;
-
- print FO "// getters\n\n";
-
- foreach(@tp)
- {
- my $n=$_;
- if($n->{'ref'}==0 and $n->{'array'}==0)
- {
- printf FO "%s %s%s%s get_%s(void) const;\n",$ind,(exists $n->{'opt'} ? 'const ' : ''),$n->{'ctype'},(exists $n->{'opt'} ? '*' : ''),$n->{'name'};
- }
- else
- {
- if($n->{'array'}==0)
- {
- printf FO "%s const %s%s get_%s(void) const;\n",$ind,$n->{'ctype'},(exists $n->{'opt'} ? '*' : '&'),$n->{'name'};
- }
- else
- {
- printf FO "%s const std::vector<%s>%s get_%s(void) const;\n",$ind,$n->{'ctype'},(exists $n->{'opt'} ? '*' : '&'),$n->{'name'};
- }
- }
- }
-
- print FO "\n// setters\n\n";
-
- foreach(@tp)
- {
- my $n=$_;
- printf FO "%s void reset_%s(void);\n",$ind,$n->{'name'} if exists $n->{'opt'};
-
- printf FO "%s %s\n",$ind,declare_setter($n);
-
- }
-
- printf FO "\n%sprivate:\n\n%s friend class %sMarshaller;\n\n",$ind,$ind,$k;
-
- foreach(@tp)
- {
-# printf FO "%s %s\n",$ind,declare_field($_);
- my $n=$_;
- my $c='';
- $c=comment2($n->{'descr'}) if exists $n->{'descr'};
- printf FO "%s%s %s\n",$c,$ind,declare_field($n);
- }
-
- printf FO "%s};\n",$ind;
- print FO "\n}\n" if $ns ne '';
-
- print FO "\n#endif\n";
- close FO;
-
- open(FO,mkpath($pimpl.$k,$sc)) or die;
- print FO $pragma;
-
- my $nsc= $ns eq '' ? '' : "using namespace $ns;\n\n";
- my $hhat=$hat;
- {
- if(exists $config{'ee'})
- {
- $hhat=~s/^\/\/.*?\n//s;
- $hhat=getfort().$hhat;
- }
- }
-
-
- printf FO "#include \"%s/%s.%s\"\n",$p2i,$k,$sh;
- printf FO "#include \"%sMarshaller.%s\"\n",$k,$sh;
-
- {
- my %h = map { $_->{'ctype'} ,1} grep { $_->{'ref'}==1 and $_->{'ctype'} ne 'std::string' } @tp;
- print FO join("\n",map { sprintf '#include "%sMarshaller.%s"',$_,$sh } sort keys %h);
- }
-
- print FO $hhat;
-
- print FO "\n\n";
- print FO $nsc;
-
- if($isopt==1)
- {
- printf FO "%s& %s::operator =(const %s& c)\n{\n",$k,$k,$k;
-
- foreach(@tp)
- {
- my $n=$_;
- my $ct=exists $n->{'array'} ? sprintf "std::vector<%s>",$n->{'ctype'} : $n->{'ctype'};
- if(exists $n->{'opt'})
- {
- printf FO " %s=c.%s ? new %s(c.%s[0]) : 0;\n",$n->{'name'},$n->{'name'},$ct,$n->{'name'};
- }
- else
- {
- printf FO " %s=c.%s;\n",$n->{'name'},$n->{'name'};
- }
- }
- print FO "\n return *this;\n";
- printf FO "}\n\n\n%s::~%s(void)\n{\n",$k,$k;
- foreach(@tp)
- {
- my $n=$_;
- next if not exists $n->{'opt'};
- printf FO " if(%s)\n delete %s;\n",$n->{'name'},$n->{'name'};
- }
- printf FO "}\n\n\n";
- }
-
- my $tmpl="#name#::#name#(const #name#& c)\n{\n *this=c;\n}\n\n\nbool #name#::checkIntegrity(void)\n{\n return #name#Marshaller::checkIntegrity(*this);\n".
- "}\n\n\n#name#::#name#(void)";
- $tmpl=~s/#name#/$k/gs;
- print FO $tmpl;
-
- if($isopt==1)
- {
- print FO " :\n";
- my @r;
- foreach(@tp)
- {
- next if not exists $_->{'opt'};
- push @r,sprintf " %s(0)",$_->{'name'};
- }
- print FO join(",\n",@r);
- }
-
- print FO "\n{\n}\n";
-
-# setters
- print FO "\n\n\n";
- foreach(@tp)
- {
- my $n=$_;
- printf FO "%s",define_setter($n,$k,1);
-# reset
- next if not exists $n->{'opt'};
-
- printf FO "void %s::reset_%s(void)\n{\n if(%s)\n delete %s;\n %s=0;\n}\n\n",$k,$n->{'name'},$n->{'name'},$n->{'name'},$n->{'name'};
- }
-
-# getters
-
- print FO "\n\n\n";
- foreach(@tp)
- {
- my $n=$_;
- if(not exists $n->{'array'} and not exists $n->{'opt'} and $n->{'ref'}==0)
- {
- printf FO "%s %s::get_%s(void) const",$n->{'ctype'},$k,$n->{'name'};
- goto nxt;
- }
- my $z=$n->{'ctype'};
- $z=sprintf "std::vector<%s>",$z if exists $n->{'array'};
- printf FO "const %s%s %s::get_%s(void) const ",$z,(exists $n->{'opt'} ? '*' : '&'),$k,$n->{'name'};
-nxt:
- printf FO "\n{\n return %s;\n}\n\n\n",$n->{'name'};
- }
-
- close FO;
-
- open(FO,mkpath(sprintf('%s%sMarshaller',$pimpl,$k),$sh)) or die;
-
- print FO header_h($k.'Marshaller');
-
- printf FO "#include <string>\n#include <json/json.h>\n\n#include \"%s/%s.%s\"\n\n",
- $p2i,$k,$sh;
-
- print FO $hat;
-
- printf FO "namespace %s\n{\n",$ns if $ns ne '';
-
- $tmpl='
-struct #name#Marshaller
-{
- static bool checkIntegrity(#name#& e);
- static bool checkIntegrityConst(const #name#& e);
-
- static bool fromString(const std::string& s,#name#& e);
- static const std::string toString(const #name#& e);
-
- static bool fromJSON(const Json::Value& s,#name#& e);
- static Json::Value toJSON(const #name#& e);
-};';
-
- $tmpl=~s/#name#/$k/gs;
- $tmpl=~s/\n/\n /gs if $ns ne '';
- print FO $tmpl;
-# printf FO "%s};\n",$ind;
- print FO "\n}\n" if $ns ne '';
-
- print FO "\n#endif\n";
- close FO;
-
- open(FO,mkpath(sprintf('%s%sMarshaller',$pimpl,$k),$sc)) or die;
- print FO $pragma;
-
- my $nsc= $ns eq '' ? '' : "using namespace $ns;\n\n";
- my $hhat=$hat;
- {
- if(exists $config{'ee'})
- {
- $hhat=~s/^\/\/.*?\n//s;
- $hhat=getfort().$hhat;
- }
- }
-
- printf FO "#include \"%s/%s.%s\"\n",$p2i,$k,$sh;
-
- {
- my %h = map { $_->{'ctype'} ,1} grep { $_->{'ref'}==1 and $_->{'ctype'} ne 'std::string' } @tp;
- print FO join("\n",map { sprintf '#include "%sMarshaller.%s"',$_,$sh } sort keys %h);
- }
-
- printf FO "\n\n#include \"%sMarshaller.%s\"\n\n",$k,$sh,$k;
-
- print FO $hhat;
-
- print FO $nsc;
-
- $tmpl='
-bool #name#Marshaller::checkIntegrity(#name#& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool #name#Marshaller::fromString(const std::string& s,#name#& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string #name#Marshaller::toString(const #name#& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-';
- $tmpl=~s/#name#/$k/gs;
- print FO $tmpl;
-
- printf FO "\nbool %sMarshaller::checkIntegrityConst(const %s& s)\n{\n",$k,$k;
-
- printf FO "%s",declare_check($_) foreach @tp;
-
- printf FO " return true;\n}\n";
-
-
- printf FO "\nJson::Value %sMarshaller::toJSON(const %s& e)\n{\n Json::Value json(Json::objectValue);\n ".
- "if(!checkIntegrityConst(e))\n return Json::Value(Json::nullValue);\n\n",$k,$k;
-
-
- printf FO "%s\n",declare_serialize($_) foreach @tp;
-
- print FO "\n return json;\n}\n\n\n";
-
-# from json
-
- printf FO "bool %sMarshaller::fromJSON(const Json::Value& json,%s& c)\n{\n",$k,$k;
- foreach(@tp)
- {
- next if not exists $_->{'opt'};
- printf FO " if(c.%s) delete c.%s;\n c.%s=0;\n\n",$_->{'name'},$_->{'name'},$_->{'name'};
- }
-
- printf FO " try\n {\n if(!json.isObject()) return false;\n\n",$k,$k;
-
- print FO declare_deserialize($_) foreach @tp;
-
- printf FO "\n }\n catch(...)\n {\n return false;\n }\n".
- " return checkIntegrity(c);\n}\n\n",$k,$k;
-
- close FO;
-
-}
-
-
-# methods. i want sleep, really :-)
-
-my $nsw;
-$nsw=$ns.'::' if $ns ne '';
-
-open(FO,'>',sprintf "%sMarshaller.gp",$pimpl) or die;
-print FO '%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name Marshaller_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct '.$nsw.'Marshaller::localHash
-{
- const char *name;
- unsigned int idx;
- void* method;
-};
-
-%%
-';
-
-for(my $i=0;$i<@table;$i++)
-{
- printf FO "%s_%s,%u,&%sMarshaller::m%s%s\n",@table[$i]->[0],@table[$i]->[1],$i,$nsw,@table[$i]->[0],
- (@table[$i]->[1] eq 'notification' ? '' : ('_'.@table[$i]->[1]));
-}
-close FO;
-
-#my $libs= exists $config{'lib'} ? $config{'lib'} : '../lib/';
-
-
-for(my $i=0;$i<@table;$i++)
-{
- my $k=@table[$i]->[0];
- $k.='_'.@table[$i]->[1] if @table[$i]->[1] ne 'notification';
-
- my $ls=@table[$i]->[2];
-
- my @tp;
-
- $ls=[] if not ref $ls;
- foreach(@$ls)
- {
- my $v=$_;
- my $z=prepare_field($v->{'name'},$v);
- die sprintf "unknown type %s in %s",$v->{'name'},$k if not defined $z;
- $z->{'desc'}=$v->{'description'} if exists $v->{'description'};
- push @tp,$z;
- }
- my %tps;
- my $isstr=0;
- my $isarr=0;
- my $isopt=0;
-
- foreach(@$ls)
- {
- $tps{$_->{'type'}}=1 if not exists $json{$_->{'type'}};
- $isstr=1 if $_->{'type'} eq 'String';
- $isarr=1 if exists $_->{'array'};
- $isopt=1 if exists $_->{'mandatory'};
- }
-
- my $mt= 'ALRPC'. ucfirst @table[$i]->[1];
-
- open(FO,mkpath($path.$k,$sh)) or die;
- print FO header_h($k);
-
-# headers
-
- printf FO "#include <vector>\n" if $isarr!=0;
- printf FO "#include <string>\n" if $isstr!=0;
-
- printf FO "\n";
-
- printf FO "#include \"%s.%s\"\n",$_,$sh foreach sort keys %tps;
-
-# printf FO "#include \"%s%s.hh\"\n\n",$libs,$mt;
- printf FO "#include \"%s/%s.h\"\n\n",$i2l,$mt;
-
- print FO $hat;
-
- printf FO "namespace %s\n{\n",$ns if $ns ne '';
- print FO comment2(@table[$i]->[3]) if defined @table[$i]->[3];
-
- my $tmpl1='';
- $tmpl1="\n #name#& operator =(const #name#&);\n" if $isopt==1;
-
- my $tmpl='
-class #name# : public #base#
-{
-public:
-
- #name#(const #name#& c);
- #name#(void);
-
- virtual ~#name#(void);
-'.$tmpl1.'
- bool checkIntegrity(void);';
-
- $tmpl=~s/#name#/$k/gs;
- $tmpl=~s/#base#/$mt/gs;
- $tmpl=~s/\n/\n /gs if $ns ne '';
-
- print FO $tmpl;
- print FO "\n\n";
-
- foreach(@tp)
- {
- my $n=$_;
- if($n->{'ref'}==0 and $n->{'array'}==0)
- {
- printf FO "%s %s%s%s get_%s(void) const;\n",$ind,(exists $n->{'opt'} ? 'const ' : ''),$n->{'ctype'},(exists $n->{'opt'} ? '*' : ''),$n->{'name'};
- }
- else
- {
- if($n->{'array'}==0)
- {
- printf FO "%s const %s%s get_%s(void) const;\n",$ind,$n->{'ctype'},(exists $n->{'opt'} ? '*' : '&'),$n->{'name'};
- }
- else
- {
- printf FO "%s const std::vector<%s>%s get_%s(void) const;\n",$ind,$n->{'ctype'},(exists $n->{'opt'} ? '*' : '&'),$n->{'name'};
- }
- }
- }
- printf FO "\n";
-
- foreach(@tp)
- {
- my $n=$_;
- printf FO "%s void reset_%s(void);\n",$ind,$n->{'name'} if exists $n->{'opt'};
- printf FO "%s %s\n",$ind,declare_setter($n);
- }
-
- $tmpl=sprintf "\nprivate:\n\n friend class %sMarshaller;",$k;
- $tmpl=~s/\n/\n /gs if $ns ne '';
- $tmpl.="\n\n";
-
- print FO $tmpl;
-
-# printf FO "%s %s\n",$ind,declare_field($_) foreach @tp;
-
- foreach(@tp)
- {
- my $n=$_;
- my $c='';
- $c=comment2($n->{'descr'}) if exists $n->{'descr'};
- printf FO "%s%s %s\n",$c,$ind,declare_field($n);
- }
-
-
- printf FO "%s};\n",$ind;
- print FO "\n}\n" if $ns ne '';
- print FO "\n#endif\n";
- close FO;
-
- open(FO,mkpath($pimpl.$k,$sc)) or die;
- print FO $pragma;
-
- my $nsc= $ns eq '' ? '' : "using namespace $ns;\n";
- my $hhat=$hat;
-
- if(exists $config{'ee'})
- {
- $hhat=~s/^\/\/.*?\n//s;
- $hhat=getfort().$hhat;
- }
-
- printf FO "#include \"%s/%s.%s\"\n#include \"%sMarshaller.%s\"\n",$p2i,$k,$sh,$k,$sh;
- printf FO "#include \"%s/Marshaller.%s\"\n",$p2i,$sh;
- printf FO "#include \"%sMarshaller.%s\"\n",$_,$sh foreach sort keys %tps;
-
- printf FO "\n#define PROTOCOL_VERSION\t%u\n\n",$pver;
-
- print FO $hhat;
- print FO $nsc if $ns ne '';
-
- if($isopt==1)
- {
- printf FO "%s& %s::operator =(const %s& c)\n{\n",$k,$k,$k;
-
- foreach(@tp)
- {
- my $n=$_;
- my $ct=exists $n->{'array'} ? sprintf "std::vector<%s>",$n->{'ctype'} : $n->{'ctype'};
- if(exists $n->{'opt'})
- {
- printf FO " %s= c.%s ? new %s(c.%s[0]) : 0;\n",$n->{'name'},$n->{'name'},$ct,$n->{'name'};
- }
- else
- {
- printf FO " %s= c.%s;\n",$n->{'name'},$n->{'name'};
- }
- }
- print FO "\n return *this;}\n\n"
- }
-
- printf FO "\n%s::~%s(void)\n{\n",$k,$k;
- foreach(@tp)
- {
- my $n=$_;
- next if not exists $n->{'opt'};
- printf FO " if(%s)\n delete %s;\n",$n->{'name'},$n->{'name'};
- }
-
- printf FO "}\n\n\n";
- my $tmpl="#name#::#name#(const #name#& c)\n{\n *this=c;\n}\n\n\nbool #name#::checkIntegrity(void)\n{\n return #name#Marshaller::checkIntegrity(*this);\n".
- "}\n\n\n#name#::#name#(void) : #base#(PROTOCOL_VERSION,Marshaller::METHOD_#NAME#)";
- $tmpl=~s/#name#/$k/gs;
- my $z=uc $k;
- $tmpl=~s/#NAME#/$z/gs;
- $tmpl=~s/#base#/$mt/gs;
-
-# $z=uc @table[$i]->[1];
-# $tmpl=~s/#func#/$z/gs;
- print FO $tmpl;
-
- if($isopt==1)
- {
- print FO ",\n ";
- my @r;
- foreach(@tp)
- {
- next if not exists $_->{'opt'};
- push @r,sprintf " %s(0)",$_->{'name'};
- }
- print FO join(",\n",@r);
- }
-
- print FO "\n{\n}\n";
-
-# setters
- print FO "\n\n\n";
- foreach(@tp)
- {
- my $n=$_;
- printf FO "%s",define_setter($n,$k,1);
-# reset
- next if not exists $n->{'opt'};
-
- printf FO "void %s::reset_%s(void)\n{\n if(%s)\n delete %s;\n %s=0;\n}\n\n",$k,$n->{'name'},$n->{'name'},$n->{'name'},$n->{'name'};
- }
-
-# getters
-
- print FO "\n\n\n";
- foreach(@tp)
- {
- my $n=$_;
- if(not exists $n->{'array'} and not exists $n->{'opt'} and $n->{'ref'}==0)
- {
- printf FO "%s %s::get_%s(void) const",$n->{'ctype'},$k,$n->{'name'};
- goto nxt;
- }
- my $z=$n->{'ctype'};
- $z=sprintf "std::vector<%s>",$z if exists $n->{'array'};
- printf FO "const %s%s %s::get_%s(void) const ",$z,(exists $n->{'opt'} ? '*' : '&'),$k,$n->{'name'};
-nxt:
- printf FO "\n{\n return %s;\n}\n\n",$n->{'name'};
- }
-
- close FO;
-
- open(FO,mkpath(sprintf('%s%sMarshaller',$pimpl,$k),$sh)) or die;
-
- print FO header_h($k.'Marshaller');
-
- printf FO "#include <string>\n#include <json/json.h>\n\n#include \"%s/%s.%s\"\n\n",
- $p2i,$k,$sh;
-
- print FO $hat;
-
- printf FO "namespace %s\n{\n",$ns if $ns ne '';
-
- $tmpl='
-struct #name#Marshaller
-{
- static bool checkIntegrity(#name#& e);
- static bool checkIntegrityConst(const #name#& e);
-
- static bool fromString(const std::string& s,#name#& e);
- static const std::string toString(const #name#& e);
-
- static bool fromJSON(const Json::Value& s,#name#& e);
- static Json::Value toJSON(const #name#& e);
-};';
-
- $tmpl=~s/#name#/$k/gs;
- $tmpl=~s/\n/\n /gs if $ns ne '';
- print FO $tmpl;
-# printf FO "%s};\n",$ind;
- print FO "\n}\n" if $ns ne '';
-
- print FO "\n#endif\n";
- close FO;
-
- open(FO,mkpath(sprintf('%s%sMarshaller',$pimpl,$k),$sc)) or die;
- print FO $pragma;
-
- my $nsc= $ns eq '' ? '' : "using namespace $ns;\n\n";
- my $hhat=$hat;
- {
- if(exists $config{'ee'})
- {
- $hhat=~s/^\/\/.*?\n//s;
- $hhat=getfort().$hhat;
- }
- }
-
- printf FO "#include \"%s/%s.%s\"\n",$p2i,$k,$sh;
-
- {
- my %h = map { $_->{'ctype'} ,1} grep { $_->{'ref'}==1 and $_->{'ctype'} ne 'std::string' } @tp;
- print FO join("\n",map { sprintf '#include "%sMarshaller.%s"',$_,$sh } sort keys %h);
- }
-
- printf FO "\n\n#include \"%sMarshaller.%s\"\n\n",$k,$sh,$k;
-
- print FO $hhat;
-
- print FO $nsc;
-
- $tmpl='
-bool #name#Marshaller::checkIntegrity(#name#& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool #name#Marshaller::fromString(const std::string& s,#name#& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string #name#Marshaller::toString(const #name#& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-';
- $tmpl=~s/#name#/$k/gs;
- print FO $tmpl;
-
- printf FO "\nbool %sMarshaller::checkIntegrityConst(const %s& s)\n{\n",$k,$k;
-
- printf FO "%s",declare_check($_) foreach @tp;
-
- printf FO " return true;\n}\n";
-
-
- printf FO "\nJson::Value %sMarshaller::toJSON(const %s& e)\n{\n Json::Value json(Json::objectValue);\n ".
- "if(!checkIntegrityConst(e))\n return Json::Value(Json::nullValue);\n\n",$k,$k;
-
-
- $tmpl=' json["#meth#"]=Json::Value(Json::objectValue);
- json["#meth#"]["name"]=Json::Value("#name#");
-'. (@table[$i]->[1] eq 'notification' ? '' : ' json["#meth#"]["correlationID"]=Json::Value(e.getCorrelationID());
-').'
- Json::Value j=Json::Value(Json::objectValue);
-
-';
-
- $z=@table[$i]->[1];
- $tmpl=~s/#meth#/$z/gs;
- $z=@table[$i]->[0];
- $tmpl=~s/#name#/$z/gs;
-
- print FO $tmpl;
-
- foreach(@tp)
- {
- $z=declare_serialize($_);
- $z=~s/json\[/j[/gs;
- printf FO "%s\n",$z;
- }
- printf FO ' json["%s"]["parameters"]=j;',@table[$i]->[1];
-
- print FO "\n return json;\n}\n\n\n";
-
- printf FO "bool %sMarshaller::fromJSON(const Json::Value& js,%s& c)\n{\n",$k,$k;
- foreach(@tp)
- {
- next if not exists $_->{'opt'};
- printf FO " if(c.%s) delete c.%s;\n c.%s=0;\n\n",$_->{'name'},$_->{'name'},$_->{'name'};
- }
-
- printf FO " try\n {\n if(!js.isObject()) return false;\n\n",$k,$k;
-
- my $tmpl2;
- $tmpl2=' if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-' if @table[$i]->[1] ne 'notification';
-
- $tmpl=' if(!js.isMember("#type#")) return false;
-
- if(!js["#type#"].isObject()) return false;
- const Json::Value& j2=js["#type#"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("#name#")) return false;
-'.$tmpl2.'
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
-';
-
- $z=@table[$i]->[1];
- $tmpl=~s/#type#/$z/gs;
- $z=@table[$i]->[0];
- $tmpl=~s/#name#/$z/gs;
- print FO $tmpl;
- print FO declare_deserialize($_) foreach @tp;
-
- printf FO "\n }\n catch(...)\n {\n return false;\n }\n".
- " return checkIntegrity(c);\n}\n\n",$k,$k;
-
- close FO;
-}
-
-# Marshaller cc/hh
-# last touch
-
-sub mkfuncname
-{
- my $t=shift;
- return $_->[1] eq 'notification' ? $_->[0] : sprintf "%s_%s",$_->[0],$_->[1];
-}
-
-open(FO,mkpath($path.'Marshaller',$sh)) or die;
-print FO header_h('Marshaller');
-print FO "#include <string>\n#include <json/json.h>\n\n";
-
-foreach(@table)
-{
- my $z=$_->[1] eq 'notification' ? $_->[0] : sprintf "%s_%s",$_->[0],$_->[1];
- printf FO "#include \"%s/%sMarshaller.%s\"\n",$i2p,$z,$sh;
-}
-
-print FO "\n";
-print FO $hat;
-
-printf FO "namespace %s\n{\n",$ns if $ns ne '';
-
-my $tmpl="#class Marshaller\n#{\n#public:\n\n# enum Methods\n# {\n# METHOD_INVALID=-1";
-
-$tmpl=~s/#/$ind/gs;
-
-print FO $tmpl;
-
-my $z;
-
-my @lc=map { uc mkfuncname $_ } @table;
-for(my $i=0;$i<@lc;$i++)
-{
- printf FO ",\n %sMETHOD_%s=%u",$ind,@lc[$i],$i;
-}
-printf FO "\n %s};\n",$ind;
-
-
-$tmpl='
- Marshaller() {}
- ~Marshaller() {}
-
-
- static ALRPCMessage* fromString(const std::string&);
- static std::string toString(const ALRPCMessage* msg);
-
-protected:
- static ALRPCMessage* fromJSON(const Json::Value&);
- static Json::Value toJSON(const ALRPCMessage* msg);';
-
-$tmpl=~s/\n/\n /gs if $ns ne '';
-
-print FO $tmpl;
-print FO "\n";
-
-foreach(@table)
-{
- my $k=$_;
- my $n=mkfuncname($k);
- printf FO "\n// %s\n",$n;
- $tmpl="# static bool fromString(const std::string& str, #name#& res)\n# {\n# return m#name#.fromString(str, res);\n# }\n\n# ".
- "static std::string toString(const #name#& res)\n# {\n# return m#name#.toString(res);\n# }\n";
- $tmpl=~s/#name#/$n/gs;
- $tmpl=~s/#/$ind/gs;
- print FO $tmpl;
-}
-
-$tmpl='
- struct localHash
- {
- const char *name;
- unsigned int idx;
- void* marshaller; // Bingo!!! old good plain C with direct casting!!!
- };
-
-private:';
-
-$tmpl=~s/\n/\n /gs if $ns ne '';
-
-print FO $tmpl;
-print FO "\n\n";
-
-printf FO "%s static %sMarshaller m%s;\n",$ind,mkfuncname($_),mkfuncname($_) foreach @table;
-
-$tmpl=sprintf '
- static const char* getName(Methods e)
- {
- return (e>=0 && e<%u) ? mHashTable[e].name : NULL;
- }
-
- static const Methods getIndex(const char* s);
-
- static const localHash mHashTable[%u];
-
- friend class Marshaller_intHash;',scalar @table,scalar @table; #,($ns eq '' ? '' : $ns.'::');
-
-$tmpl=~s/\n/\n /gs if $ns ne '';
-print FO $tmpl;
-
-printf FO "\n%s};\n",$ind;
-print FO "\n}\n" if $ns ne '';
-
-print FO "\n#endif\n";
-close FO;
-
-
-open(FO,mkpath($pimpl.'Marshaller',$sc)) or die;
-print FO $pragma;
-
-my $nsc= $ns eq '' ? '' : "using namespace $ns;\n\n";
-my $hhat=$hat;
-{
- if(exists $config{'ee'})
- {
- $hhat=~s/^\/\/.*?\n//s;
- $hhat=getfort().$hhat;
- }
-}
-
-printf FO "#include <cstring>\n\n#include \"%s/Marshaller.%s\"\n",$p2i,$sh;
-printf FO "#include \"%s/%s.%s\"\n",$p2i,mkfuncname($_),$sh foreach @table;
-
-printf FO "namespace %s\n{",$ns if $ns ne '';
-print FO "\n#include \"Marshaller.inc\"\n";
-print FO "}\n" if $ns ne '';
-
-print FO "\n";
-
-print FO $hhat;
-
-print FO $nsc;
-
-print FO '
-const Marshaller::Methods Marshaller::getIndex(const char* s)
-{
- if(!s)
- return METHOD_INVALID;
- const struct localHash* p=Marshaller_intHash::getPointer(s,strlen(s));
- return p ? static_cast<Methods>(p->idx) : METHOD_INVALID;
-}
-
-
-ALRPCMessage* Marshaller::fromString(const std::string& s)
-{
- ALRPCMessage* rv=0;
- try
- {
- Json::Reader reader;
- Json::Value json;
-
- if(!reader.parse(s,json,false)) return 0;
- if(!(rv=fromJSON(json))) return 0;
- }
- catch(...)
- {
- return 0;
- }
- return rv;
-}
-
-std::string Marshaller::toString(const ALRPCMessage* msg)
-{
- if(!msg) return "";
-
- Json::Value json=toJSON(msg);
-
- if(json.isNull()) return "";
-
- Json::FastWriter writer;
- std::string rv;
- return writer.write(json);
-}
-
-
-ALRPCMessage* Marshaller::fromJSON(const Json::Value& json)
-{
- if(!json.isObject()) return NULL;
- Json::Value j=Json::Value(Json::nullValue);
-
- std::string tp;
- if(json.isMember("notification")) j=json[tp="notification"];
-
- if(json.isMember("request")) j=json[tp="request"];
- if(json.isMember("response")) j=json[tp="response"];
-
- if(!j.isObject()) return NULL;
- if(!j.isMember("name") || !j["name"].isString()) return NULL;
-
- std::string ts=j["name"].asString()+"_"+tp;
-
- Methods m=getIndex(ts.c_str());
- switch(m) // let'."'".'s rock, china style
- {
- case METHOD_INVALID:
- return NULL;
-';
-
-foreach(@table)
-{
- my $n=$_;
- my $t='
- case METHOD_#NAME#:
- {
- #name#* rv=new #name#;
- if(#name#Marshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-';
- my $z=mkfuncname($n);
- $t=~s/#name#/$z/gs;
- $z=uc $z;
- $t=~s/#NAME#/$z/gs;
- print FO $t;
-}
-print FO " }\n\n return NULL;\n}\n\n";
-
-print FO 'Json::Value Marshaller::toJSON(const ALRPCMessage* msg)
-{
- Json::Value j=Json::Value(Json::nullValue);
-
- if(!msg) return j;
- Methods m=static_cast<Methods>(msg->getMethodId());
-
- switch(m)
- {';
-
-foreach(@table)
-{
- my $n=$_;
- my $t='
- case METHOD_#NAME#:
- return #name#Marshaller::toJSON(* static_cast<const #name#*>(msg));
-';
- my $z=mkfuncname($n);
- $t=~s/#name#/$z/gs;
- $z=uc $z;
- $t=~s/#NAME#/$z/gs;
- print FO $t;
-}
-
-print FO "\n case METHOD_INVALID:\n default:\n return j;\n }\n\n return j;\n}\n\n";
-
-
-printf FO "%sMarshaller Marshaller::m%s;\n",mkfuncname($_),mkfuncname($_) foreach @table;
-
-printf FO "\nconst Marshaller::localHash Marshaller::mHashTable[%u]=\n{\n",scalar @table;
-
-my @lc;
-@lc= map { sprintf ' {"%s_%s",METHOD_%s,&Marshaller::m%s}',$_->[0],$_->[1],uc mkfuncname($_),mkfuncname($_) } @table;
-
-
-print FO join(",\n",@lc);
-
-print FO "\n};\n";
-
-close FO;
-
-
-open(FO,mkpath($path.'RPC',$sh)) or die;
-print FO header_h('RPC');
-print FO "#include <string>\n#include <json/json.h>\n\n";
-
-printf FO "#include \"%s.%s\"\n",$_,$sh foreach sort keys %types;
-
-printf FO "#include \"%s.%s\"\n",mkfuncname($_),$sh foreach @table;
-
-
-print FO "\n";
-print FO $hat;
-
-print FO "\n\n#endif\n";
-
-print STDERR "done\n";
-#die Dumper \%types;
-exit 0;
-
diff --git a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/v4_protocol_v1_2_no_extra.xml b/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/v4_protocol_v1_2_no_extra.xml
deleted file mode 100755
index b2d42aa7e..000000000
--- a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/v4_protocol_v1_2_no_extra.xml
+++ /dev/null
@@ -1,1154 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!-- edited with XMLSpy v2011 rel. 3 sp1 (x64) (http://www.altova.com) by Olesksandr Leshchenko (HP) -->
-<?xml-stylesheet type="text/xml" href="protocol2html.xsl"?>
-<interface name="Ford Sync RAPI" version="1.2" date="2011-05-17">
- <enum name="Result">
- <element name="SUCCESS">
- <description>The request succeeded</description>
- </element>
- <element name="INVALID_DATA">
- <description>The data sent is invalid. For example</description>
- <description>Invalid Json syntax</description>
- <description>Parameters out of bounds (number or enum range)</description>
- <description>Mandatory parameters not provided</description>
- <description>Parameter provided with wrong type</description>
- <description>Invalid characters</description>
- <description>Empty string</description>
- </element>
- <element name="UNSUPPORTED_REQUEST">
- <description>The request is not supported by Sync</description>
- </element>
- <element name="OUT_OF_MEMORY">
- <description>The system could not process the request because the necessary memory couldn't be allocated</description>
- </element>
- <element name="TOO_MANY_PENDING_REQUESTS">
- <description>There are too many requests pending (means, that the response has not been delivered, yet).</description>
- <designdescription>There may be a maximum of 1000 pending requests at a time.</designdescription>
- </element>
- <element name="INVALID_ID">
- <description>One of the provided IDs is not valid. For example</description>
- <description>This applies to CorrelationID, SubscriptionID [@TODO if SubscriptionID is used], CommandID, MenuID, [@TODO: missed one?]</description>
- </element>
- <element name="DUPLICATE_NAME">
- <description>There was a conflict with an registered name (application or menu item) or vr command</description>
- </element>
- <element name="TOO_MANY_APPLICATIONS">
- <description>There are already too many registered applications</description>
- </element>
- <element name="APPLICATION_REGISTERED_ALREADY">
- <description>RegisterApplication has been called again, after a RegisterApplication was successful before.</description>
- </element>
- <element name="UNSUPPORTED_VERSION">
- <description>Sync doesn't support the protocol that is requested by the mobile application</description>
- </element>
- <element name="WRONG_LANGUAGE">
- <description>The requested language is currently not supported.</description>
- <description>Might be because of a mismatch of the currently active language on Sync and the requested language</description>
- </element>
- <element name="APPLICATION_NOT_REGISTERED">
- <description>An command can not be executed because no application has been registered with RegisterApplication.</description>
- </element>
- <element name="IN_USE">
- <description>The data may not be changed, because it is currently in use.</description>
- <description>For example when trying to delete a command set that is currently involved in an interaction.</description>
- </element>
- <element name="SUBSCRIBED_ALREADY">
- <description>The item to subscribe to is already subscribed to.</description>
- </element>
- <element name="REJECTED">
- <description>The requested command was rejected, e.g. because mobile app is in background and cannot perform any HMI commands.</description>
- <description>Or an HMI command (e.g. Speak) is rejected because a higher priority HMI command (e.g. Alert) is playing.</description>
- </element>
- <element name="ABORTED">
- <description>A command was aborted, for example due to user interaction (e.g. user pressed button).</description>
- <description>Or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested.</description>
- </element>
- <element name="IGNORED">
- <description>A command was ignored, because the intended result is already in effect.</description>
- <description>For example, SetMediaClockTimer was used to pause the media clock although the clock is paused already.</description>
- <description>NOTE: potentially replaces SUBSCRIBED_ALREADY</description>
- </element>
- <element name="UNSUPPORTED_BUTTON">
- <description>A button that was requested for subscription is not supported under the current system.</description>
- <description>NOTE: could become a more generic UNSUPPORTED_RESOURCE by merging with VEHIVLE_DATA_NOT_AVAILABLE.</description>
- </element>
- <element name="FILE_NOT_FOUND">
- <description>A specified file could not be found on Sync.</description>
- </element>
- <element name="GENERIC_ERROR">
- <description>Provided data is valid but something went wrong in the lower layers.</description>
- </element>
- </enum>
- <enum name="ButtonPressMode">
- <element name="LONG">
- <description>A button was released, after it was pressed for a long time</description>
- <description>Actual timing is defined by Sync and may vary</description>
- </element>
- <element name="SHORT">
- <description>A button was released, after it was pressed for a short time</description>
- <description>Actual timing is defined by Sync and may vary</description>
- </element>
- </enum>
- <enum name="ButtonEventMode">
- <element name="BUTTONUP">
- <description>A button has been released up</description>
- </element>
- <element name="BUTTONDOWN">
- <description>A button has been pressed down</description>
- </element>
- </enum>
- <enum name="Language">
- <description>The set of potential languages</description>
- <element name="EN-US" internal_name="EN_US">
- <description>US English</description>
- </element>
- <element name="ES-MX" internal_name="ES_MX">
- <description>Mexican Spanish</description>
- </element>
- <element name="FR-CA" internal_name="FR_CA">
- <description>Canadian French</description>
- </element>
- </enum>
- <enum name="UpdateMode">
- <description>Describes how the media clock timer should behave on the platform</description>
- <element name="COUNTUP"/>
- <description>Starts the media clock timer counting upwards, as in time elapsed.</description>
- <element name="COUNTDOWN"/>
- <description>Starts the media clock timer counting downwards, as in time remaining.</description>
- <element name="PAUSE"/>
- <description>Pauses the media clock timer</description>
- <element name="RESUME"/>
- <description>Resume the media clock timer</description>
- </enum>
- <enum name="InteractionMode">
- <description>For application-requested interactions, this mode indicates the method in which the user is notified and uses the interaction.</description>
- <element name="MANUAL_ONLY"/>
- <description>This mode causes the interaction to only occur on the display, meaning the choices are provided only via the display.</description>
- <description>Selections are made with the OK and Seek Right and Left, Tune Up and Down buttons.</description>
- <element name="VR_ONLY"/>
- <description>This mode causes the interaction to only occur using V4.</description>
- <description>Selections are made by saying the command.</description>
- <element name="BOTH"/>
- <description>This mode causes both a VR and display selection option for an interaction.</description>
- <description>Selections can be made either from the menu display or by speaking the command.</description>
- </enum>
- <enum name="HMILevel">
- <description>Enumeraction that describes current levels of HMI.</description>
- <element name="FULL" internal_name="HMI_FULL"/>
- <element name="LIMITED" internal_name="HMI_LIMITED"/>
- <element name="BACKGROUND" internal_name="HMI_BACKGROUND"/>
- <element name="NONE" internal_name="HMI_NONE"/>
- </enum>
- <enum name="AudioStreamingState">
- <description>Enumeraction that describes possible states of audio streaming.</description>
- <element name="AUDIBLE"/>
- <element name="NOT_AUDIBLE"/>
- </enum>
- <enum name="SystemContext">
- <description>Enumeraction that describes possible contexts and app's HMI might be in.</description>
- <element name="MAIN" internal_name="SYSCTXT_MAIN"/>
- <element name="VRSESSION" internal_name="SYSCTXT_VRSESSION"/>
- <element name="MENU" internal_name="SYSCTXT_MENU"/>
- </enum>
- <enum name="AppInterfaceUnregisteredReason">
- <description>Error code, which comes from sync side.</description>
- <element name="USER_EXIT"/>
- <element name="IGNITION_OFF"/>
- <element name="BLUETOOTH_OFF"/>
- <element name="USB_DISCONNECTED"/>
- <element name="REQUEST_WHILE_IN_NONE_HMI_LEVEL"/>
- <element name="TOO_MANY_REQUESTS"/>
- <element name="DRIVER_DISTRACTION_VIOLATION"/>
- <element name="LANGUAGE_CHANGE"/>
- <element name="MASTER_RESET"/>
- <element name="FACTORY_DEFAULTS"/>
- </enum>
- <enum name="TriggerSource">
- <description>Indicates the source from where the command was triggered.</description>
- <element name="MENU" internal_name="TS_MENU"/>
- <element name="VR" internal_name="TS_VR"/>
- </enum>
- <enum name="HmiZoneCapabilities">
- <description>Contains information about the HMI zone capabilities.</description>
- <description>For future use.</description>
- <element name="FRONT"/>
- <element name="BACK"/>
- </enum>
- <enum name="SpeechCapabilities">
- <description>Contains information about the TTS capabilities.</description>
- <element name="TEXT"/>
- <element name="SAPI_PHONEMES"/>
- <element name="LHPLUS_PHONEMES"/>
- <element name="PRE_RECORDED"/>
- <element name="SILENCE"/>
- </enum>
- <enum name="VrCapabilities">
- <description>Contains information about the VR capabilities.</description>
- <element name="Text"/>
- </enum>
- <enum name="AudioCaptureQuality" platform="pending">
- <description>Describes different quality options for PerformAudioCapture.</description>
- <element name="8KHZ"/>
- <element name="16KHZ"/>
- </enum>
- <enum name="ButtonName">
- <description>Defines the hard (physical) and soft (touchscreen) buttons available from SYNC</description>
- <element name="OK"/>
- <element name="SEEKLEFT"/>
- <element name="SEEKRIGHT"/>
- <element name="TUNEUP"/>
- <element name="TUNEDOWN"/>
- <element name="PRESET_0"/>
- <element name="PRESET_1"/>
- <element name="PRESET_2"/>
- <element name="PRESET_3"/>
- <element name="PRESET_4"/>
- <element name="PRESET_5"/>
- <element name="PRESET_6"/>
- <element name="PRESET_7"/>
- <element name="PRESET_8"/>
- <element name="PRESET_9"/>
- <issue creator="rs">Are these all supported buttons?</issue>
- </enum>
- <enum name="MediaClockFormat">
- <element name="CLOCK1">
- <description>minutesFieldWidth = 2;minutesFieldMax = 19;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 19;maxMinutes = 59;maxSeconds = 59;</description>
- <description>used for Type II and CID headunits</description>
- </element>
- <element name="CLOCK2">
- <description>minutesFieldWidth = 3;minutesFieldMax = 199;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 59;maxMinutes = 59;maxSeconds = 59;</description>
- <description>used for Type V headunit</description>
- </element>
- <element name="CLOCKTEXT1">
- <description>5 characters possible</description>
- <description>Format: 1|sp c :|sp c c</description>
- <description>1|sp : digit "1" or space</description>
- <description>c : character out of following character set: sp|0-9|[letters, see TypeII column in XLS. See [@TODO: create file ref]]</description>
- <description>:|sp : colon or space</description>
- <description>used for Type II headunit</description>
- </element>
- <element name="CLOCKTEXT2">
- <description>5 chars possible</description>
- <description>Format: 1|sp c :|sp c c</description>
- <description>1|sp : digit "1" or space</description>
- <description>c : character out of following character set: sp|0-9|[letters, see CID column in XLS. See [@TODO: create file ref]]</description>
- <description>:|sp : colon or space</description>
- <description>used for CID headunit</description>
- <description>NOTE: difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character set</description>
- </element>
- <element name="CLOCKTEXT3">
- <description>6 chars possible</description>
- <description>Format: 1|sp c c :|sp c c</description>
- <description>1|sp : digit "1" or space</description>
- <description>c : character out of following character set: sp|0-9|[letters, see Type 5 column in XLS]. See [@TODO: create file ref]</description>
- <description>:|sp : colon or space</description>
- <description>used for Type V headunit</description>
- </element>
- <issue creator="mf">First complete values draft. Review needed.</issue>
- </enum>
- <enum name="DisplayType">
- <description>See DAES for further infos regarding the displays]</description>
- <issue creator="rs">Meaningful description is missing</issue>
- <element name="CID"/>
- <element name="TYPE2"/>
- <element name="TYPE5"/>
- <element name="NGN"/>
- <element name="GEN2_8_DMA"/>
- <element name="GEN2_6_DMA"/>
- <element name="MFD3"/>
- <element name="MFD4"/>
- <element name="MFD5"/>
- </enum>
- <enum name="TextFieldName">
- <element name="mainField1">
- <description>The first line of the main field of persistent display</description>
- <description>Applies to "Show"</description>
- </element>
- <element name="mainField2">
- <description>The second line of the main field of persistent display</description>
- <description>Applies to "Show"</description>
- </element>
- <element name="statusBar">
- <description>The status bar on Nav</description>
- <description>Applies to "Show"</description>
- </element>
- <element name="mediaClock">
- <description>Text value for MediaClock field. Has to be properly formatted by Mobile App according to Sync capabilities.</description>
- <description>Applies to "Show"</description>
- </element>
- <element name="mediaTrack">
- <description>The track field of NGN type ACMs.</description>
- <description>This field is only available for media applications.</description>
- <description>Applies to "Show"</description>
- </element>
- <element name="alertText1">
- <description>The first line of the alert text field</description>
- <description>Applies to "Alert"</description>
- </element>
- <element name="alertText2">
- <description>The second line of the alert text field</description>
- <description>Applies to "Alert"</description>
- </element>
- </enum>
- <enum name="CharacterSet">
- <description>The list of potential character sets</description>
- <element name="TYPE2SET">
- <description>See [@TODO: create file ref]</description>
- </element>
- <element name="TYPE5SET">
- <description>See [@TODO: create file ref]</description>
- </element>
- <element name="CID1SET">
- <description>See [@TODO: create file ref]</description>
- </element>
- <element name="CID2SET">
- <description>See [@TODO: create file ref]</description>
- </element>
- <issue creator="rs">Real sets have not been defined yet?</issue>
- </enum>
- <enum name="TextAlignment">
- <description>The list of possible alignments, left, right, or centered</description>
- <element name="LEFT_ALIGNED"/>
- <element name="RIGHT_ALIGNED"/>
- <element name="CENTERED"/>
- </enum>
- <enum name="TBTState">
- <description>Enumeration that describes possible states of turn-by-turn module.</description>
- <element name="ROUTE_UPDATE_REQUEST"/>
- <element name="ROUTE_ACCEPTED"/>
- <element name="ROUTE_REFUSED"/>
- <element name="ROUTE_CANCELLED"/>
- </enum>
- <enum name="DriverDistractionState">
- <description>Enumeration that describes possible states of driver distraction.</description>
- <element name="DD_ON"/>
- <element name="DD_OFF"/>
- </enum>
- <struct name="Choice">
- <description>A choice is an option given to the user, which can be selected either by menu, or through voice recognition system.</description>
- <param name="choiceID" type="Integer" minvalue="0" maxvalue="65535"/>
- <param name="menuName" type="String" maxlength="500"/>
- <param name="vrCommands" type="String" minsize="1" maxsize="100" maxlength="99" array="true"/>
- </struct>
- <struct name="SyncMsgVersion">
- <description>Specifies the version number of the SYNC V4 protocol, that is supported by the mobile application</description>
- <param name="majorVersion" type="Integer" minvalue="1" maxvalue="1">
- <description>The major version indicates versions that is not-compatible to previous versions.</description>
- </param>
- <param name="minorVersion" type="Integer" minvalue="0" maxvalue="1000">
- <description>The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality)</description>
- </param>
- </struct>
- <enum name="GlobalProperty">
- <description>The different global properties.</description>
- <element name="HELPPROMPT">
- <description>The property helpPrompt of setGlobalProperties</description>
- </element>
- <element name="TIMEOUTPROMPT">
- <description>The property timeoutPrompt of setGlobalProperties</description>
- </element>
- </enum>
- <struct name="StartTime">
- <param name="hours" type="Integer" minvalue="0" maxvalue="59">
- <description>The hour of the media clock.</description>
- <description>Some radios only support a max of 19 hours. If out of range, it will be rejected.</description>
- </param>
- <param name="minutes" type="Integer" minvalue="0" maxvalue="59"/>
- <param name="seconds" type="Integer" minvalue="0" maxvalue="59"/>
- </struct>
- <struct name="TextField">
- <param name="name" type="TextFieldName">
- <description>The name that identifies the field. See TextFieldName.</description>
- </param>
- <param name="characterSet" type="CharacterSet">
- <description>The character set that is supported in this field. See CharacterSet.</description>
- </param>
- <param name="width" type="Integer" minvalue="1" maxvalue="40">
- <description>The number of characters in one row of this field.</description>
- </param>
- <param name="rows" type="Integer" minvalue="1" maxvalue="3">
- <description>The number of rows of this field.</description>
- </param>
- </struct>
- <struct name="DisplayCapabilities">
- <description>Contains information about the display capabilities.</description>
- <param name="displayType" type="DisplayType">
- <description>The type of the display. See DisplayType</description>
- </param>
- <param name="textFields" type="TextField" minsize="1" maxsize="100" array="true">
- <description>A set of all fields that support text data. See TextField</description>
- </param>
- <param name="mediaClockFormats" type="MediaClockFormat" minsize="1" maxsize="100" array="true">
- <description>A set of all supported formats of the media clock. See MediaClockFormat</description>
- </param>
- </struct>
- <struct name="ButtonCapabilities">
- <description>Contains information about a buttons capabilities.</description>
- <param name="name" type="ButtonName">
- <description>The name of the button. See ButtonName.</description>
- </param>
- <param name="shortPressAvailable" type="Boolean">
- <description>The button supports a short press.</description>
- <description>Whenever the button is pressed short, onButtonPressed( SHORT) will be invoked.</description>
- </param>
- <param name="longPressAvailable" type="Boolean">
- <description>The button supports a LONG press.</description>
- <description>Whenever the button is pressed long, onButtonPressed( LONG) will be invoked.</description>
- </param>
- <param name="upDownAvailable" type="Boolean">
- <description>The button supports "button down" and "button up".</description>
- <description>Whenever the button is pressed, onButtonEvent( DOWN) will be invoked.</description>
- <description>Whenever the button is released, onButtonEvent( UP) will be invoked.</description>
- </param>
- </struct>
- <struct name="MenuParams">
- <param name="parentID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
- <description>unique ID of the sub menu, the command will be added to.</description>
- <description>If not provided, it will be provided to the top level of the in application menu.</description>
- </param>
- <param name="position" type="Integer" minvalue="0" maxvalue="1000" mandatory="false">
- <description>Position within the items that are are at top level of the in application menu.</description>
- <description>0 will insert at the front.</description>
- <description>1 will insert at the second position.</description>
- <description>if position is greater or equal than the number of items on top level, the sub menu will be appended to the end.</description>
- <description>If this param was omitted the entry will be added at the end.</description>
- </param>
- <param name="menuName" type="String" maxlength="500">
- <description>Text to show in the menu for this sub menu.</description>
- </param>
- </struct>
- <struct name="TTSChunk">
- <description>A TTS chunk, that consists of the text/phonemes to speak and the type (like text or SAPI)</description>
- <param name="text" maxlength="500" type="String">
- <description>The text or phonemes to speak.</description>
- <description>May not be empty.</description>
- </param>
- <param name="type" type="SpeechCapabilities">
- <description>Describes, whether it is text or a specific phoneme set. See SpeechCapabilities</description>
- </param>
- </struct>
- <!-- Requests/Responses -->
- <function name="RegisterAppInterface" messagetype="request">
- <description>Establishes an interface with a mobile application.</description>
- <description>Before registerAppInterface no other commands will be accepted/executed.</description>
- <param name="syncMsgVersion" type="SyncMsgVersion">
- <description>See SyncMsgVersion</description>
- </param>
- <param name="appName" type="String" maxlength="100">
- <description>The mobile application name, e.g. "Ford Drive Green".</description>
- <description>Needs to be unique over all applications.</description>
- <description>May not be empty.</description>
- <description>May not start with a new line character.</description>
- <description>May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)</description>
- <description>Needs to be unique over all applications. Applications with the same name will be rejected.</description>
- <description>Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.</description>
- </param>
- <param name="ngnMediaScreenAppName" type="String" maxlength="100" mandatory="false">
- <description>Provides an abbreviated version of the app name (if needed), that will be displayed on the NGN media screen.</description>
- <description>If not provided, the appName is used instead (and will be truncated if too long)</description>
- <description>Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.</description>
- </param>
- <param name="vrSynonyms" type="String" maxlength="40" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>Defines an additional voice recognition command.</description>
- <description>May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)</description>
- <description>Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.</description>
- </param>
- <param name="usesVehicleData" type="Boolean" platform="pending" mandatory="false">
- <description>If not provided, the default is equal to False"</description>
- <description>Indicates if the mobile application wants to use vehicle data like GPS or speed.</description>
- </param>
- <param name="isMediaApplication" type="Boolean">
- <description>Indicates if the application is a media or a non-media application.</description>
- <description>Only media applications will be able to stream audio to Sync that is audible outside of the BT media source.</description>
- </param>
- <param name="languageDesired" type="Language">
- <description>See Language</description>
- <description>If the language doesn't match the active language on Sync, it will be rejected.</description>
- <description>If the language is changed, while an app is registered, it will get disconnected.</description>
- </param>
- <param name="autoActivateID" type="String" maxlength="16" mandatory="false">
- <description>Used to support auto activation after an initial successful registerAppInterface (for example after an ignition cycle).</description>
- <description>The app should always provide the id that was provided by the most recent registerAppInterface response.</description>
- <description>If this is the first call to registerAppInterface, then do not provide this parameter at all.</description>
- <description>If not provided or not matching with the id of the last registerAppInterface response, the app will not be automatically put into foreground on startup.</description>
- </param>
- </function>
- <function name="RegisterAppInterface" messagetype="response">
- <description>The response to registerAppInterface</description>
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="GENERIC_ERROR"/>
- <element name="DUPLICATE_NAME"/>
- <element name="TOO_MANY_APPLICATIONS"/>
- <element name="APPLICATION_REGISTERED_ALREADY"/>
- <element name="UNSUPPORTED_VERSION"/>
- <element name="WRONG_LANGUAGE"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- <param name="syncMsgVersion" type="SyncMsgVersion" mandatory="false">
- <description>See SyncMsgVersion</description>
- </param>
- <param name="autoActivateID" type="String" maxlength="16" mandatory="false">
- <description>Provides an id that the app may use on a subsequent registerAppInterface to allow for auto activation (for example after an ignition cycle).</description>
- </param>
- <param name="language" type="Language" mandatory="false">
- <description>The currently active language on Sync. See "Language" for options.</description>
- </param>
- <param name="displayCapabilities" type="DisplayCapabilities" mandatory="false">
- <description>See DisplayCapabilities</description>
- </param>
- <param name="buttonCapabilities" type="ButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>See ButtonCapabilities</description>
- </param>
- <param name="hmiZoneCapabilities" type="HmiZoneCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
- <issue creator="rs">If not used yet => remove</issue>
- <description>See HmiZoneCapabilities</description>
- </param>
- <param name="speechCapabilities" type="SpeechCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>See SpeechCapabilities</description>
- </param>
- <param name="vrCapabilities" type="VrCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>See VrCapabilities</description>
- </param>
- </function>
- <function name="UnregisterAppInterface" messagetype="request">
- <description>Closes an interface from a mobile application.</description>
- <description>After unregisterAppInterface, no commands other than registerAppInterface will be accepted/executed.</description>
- <description>Will fail, if no registerAppInterface was completed successfully before.</description>
- </function>
- <function name="UnregisterAppInterface" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="SetGlobalProperties" messagetype="request">
- <description>Allows setting global properties.</description>
- <param name="helpPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>The help prompt.</description>
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
- <param name="timeoutPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>Help text for a wait timeout.</description>
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
- <issue creator="rs">Do we want to add VR threshold params?</issue>
- </function>
- <function name="SetGlobalProperties" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="ResetGlobalProperties" messagetype="request">
- <description>Allows resetting global properties.</description>
- <param name="properties" type="GlobalProperty" minsize="1" maxsize="100" array="true">
- <description>Contains the names of all global properties (like timeoutPrompt) that should be unset. Resetting means, that they have the same value as at start up (default)</description>
- </param>
- </function>
- <function name="ResetGlobalProperties" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="AddCommand" messagetype="request">
- <description>Adds a command to the in application menu.</description>
- <description>Either menuParams or vrCommands must be provided.</description>
- <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>unique ID of the command to add.</description>
- </param>
- <param name="menuParams" type="MenuParams" mandatory="false">
- <description>Optional sub value containing menu parameters</description>
- </param>
- <param name="vrCommands" type="String" minsize="1" maxsize="100" maxlength="99" array="true" mandatory="false">
- <description>An array of strings to be used as VR sysnonyms for this command.</description>
- <description>If this array is provided, it may not be empty.</description>
- </param>
- </function>
- <function name="AddCommand" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="DUPLICATE_NAME"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="DeleteCommand" messagetype="request">
- <description>Deletes all commands from the in-application menu with the specified command id.</description>
- <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>ID of the command(s) to delete.</description>
- </param>
- </function>
- <function name="DeleteCommand" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="IN_USE"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="AddSubMenu" messagetype="request">
- <description>Adds a sub menu to the in-application menu.</description>
- <param name="menuID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>unique ID of the sub menu to add.</description>
- </param>
- <param name="position" type="Integer" minvalue="0" maxvalue="1000" mandatory="false">
- <description>Position within the items that are are at top level of the in application menu.</description>
- <description>0 will insert at the front.</description>
- <description>1 will insert at the second position.</description>
- <description>If position is greater or equal than the number of items on top level, the sub menu will be appended to the end.</description>
- <description>Position of any submenu will always be located before the return and exit options</description>
- <description>If this param was omitted the entry will be added at the end.</description>
- </param>
- <param name="menuName" maxlength="500" type="String">
- <description>Text to show in the menu for this sub menu.</description>
- </param>
- </function>
- <function name="AddSubMenu" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="DUPLICATE_NAME"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="DeleteSubMenu" messagetype="request">
- <description>Deletes a submenu from the in-application menu.</description>
- <param name="menuID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>The "menuID" of the submenu to delete. (See addSubMenu.menuID)</description>
- </param>
- </function>
- <function name="DeleteSubMenu" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="IN_USE"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="CreateInteractionChoiceSet" messagetype="request">
- <description>creates interaction choice set to be used later by performInteraction</description>
- <param name="interactionChoiceSetID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>Unique ID used for this interaction choice set.</description>
- </param>
- <param name="choiceSet" type="Choice" minsize="1" maxsize="100" array="true"/>
- </function>
- <function name="CreateInteractionChoiceSet" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="DUPLICATE_NAME"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="PerformInteraction" messagetype="request">
- <description>Triggers an interaction (e.g. "Permit GPS?" - Yes, no, Always Allow).</description>
- <param name="initialText" type="String" maxlength="500">
- <description>Text to be displayed first.</description>
- </param>
- <param name="initialPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true">
- <description>This is the intial prompt spoken to the user at the start of an interaction</description>
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
- <param name="interactionMode" type="InteractionMode">
- <description>See InteractionMode.</description>
- </param>
- <param name="interactionChoiceSetIDList" type="Integer" minsize="1" maxsize="100" minvalue="0" maxvalue="2000000000" array="true">
- <description>List of interaction choice set IDs to use with an interaction.</description>
- </param>
- <param name="helpPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>Help text. This is the spoken string when a user speaks "help" when the interaction is occuring.</description>
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
- <param name="timeoutPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>Timeout text. This text is spoken when a VR interaction times out.</description>
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
- <param name="timeout" type="Integer" minvalue="5000" maxvalue="100000" mandatory="false">
- <description>Timeout in milliseconds.</description>
- <description>If omitted a standard value of 10000 milliseconds is used.</description>
- </param>
- </function>
- <function name="PerformInteraction" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="DUPLICATE_NAME"/>
- <element name="REJECTED"/>
- <element name="ABORTED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- <param name="choiceID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
- <description>ID of the choice that was selected in response to PerformInteraction.</description>
- </param>
- <param name="triggerSource" type="TriggerSource" mandatory="false">
- <description>See TriggerSource</description>
- </param>
- </function>
- <function name="DeleteInteractionChoiceSet" messagetype="request">
- <description>Deletes interaction choice set that has been created with "CreateInteractionChoiceSet".</description>
- <description>The interaction may only be deleted when not currently in use by a "performInteraction".</description>
- <param name="interactionChoiceSetID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>ID of the interaction choice set to delete.</description>
- </param>
- </function>
- <function name="DeleteInteractionChoiceSet" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="IN_USE"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="Alert" messagetype="request">
- <description>Shows an alert which typically consists of text-to-speech message and text on the display. At least either alertText1, alertText2 or TTSChunks need to be provided.</description>
- <param name="alertText1" type="String" maxlength="500" mandatory="false">
- <description>The first line of the alert text field</description>
- </param>
- <param name="alertText2" type="String" maxlength="500" mandatory="false">
- <description>The second line of the alert text field</description>
- </param>
- <param name="ttsChunks" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
- <param name="duration" type="Integer" minvalue="3000" maxvalue="10000" mandatory="false">
- <description>Timeout in milliseconds.</description>
- <description>Typical timeouts are 3-5 seconds</description>
- <description>If omitted, timeout is set to 5s.</description>
- </param>
- <param name="playTone" type="Boolean" mandatory="false">
- <description>Defines if tone should be played. Tone is played before TTS.</description>
- <description>If omitted, no tone is played.</description>
- </param>
- </function>
- <function name="Alert" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="ABORTED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="Show" messagetype="request">
- <description>Updates the persistent display. Supported fields depend on display capabilities.</description>
- <param name="mainField1" type="String" maxlength="500" mandatory="false">
- <description>The text that should be displayed in a single or upper display line.</description>
- <description>If this text is not set, the text of mainField1 stays unchanged.</description>
- <description>If this text is empty "", the field will be cleared.</description>
- </param>
- <param name="mainField2" type="String" maxlength="500" mandatory="false">
- <description>The text that should be displayed on the second dispay line.</description>
- <description>If this text is not set, the text of mainField2 stays unchanged.</description>
- <description>If this text is empty "", the field will be cleared.</description>
- </param>
- <param name="alignment" type="TextAlignment" mandatory="false">
- <description>Specifies how mainField1 and mainField2 texts should be aligned on display.</description>
- <description>If omitted, texts will be centered</description>
- </param>
- <param name="statusBar" type="String" maxlength="500" mandatory="false">
- <description>Requires investigation regarding the nav display capabilities. Potentially lower lowerStatusBar, upperStatusBar, titleBar, etc.</description>
- </param>
- <param name="mediaClock" type="String" maxlength="500" mandatory="false">
- <description>Text value for MediaClock field. Has to be properly formatted by Mobile App according to Sync capabilities.</description>
- <description>If this text is set, any automatic media clock updates previously set with SetMediaClockTimer will be stopped.</description>
- </param>
- <param name="mediaTrack" type="String" maxlength="500" mandatory="false">
- <description>The text that should be displayed in the track field.</description>
- <description>This field is only valid for media applications on NGN type ACMs.</description>
- <description>If this text is not set, the text of mediaTrack stays unchanged.</description>
- <description>If this text is empty "", the field will be cleared.</description>
- </param>
- </function>
- <function name="Show" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="Speak" messagetype="request">
- <description>Speaks a text.</description>
- <param name="ttsChunks" type="TTSChunk" minsize="1" maxsize="100" array="true">
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
- </function>
- <function name="Speak" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="ABORTED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="SetMediaClockTimer" messagetype="request">
- <description>Sets the initial media clock value and automatic update method.</description>
- <param name="startTime" type="StartTime" mandatory="false">
- <description>See StartTime</description>
- <description>startTime must be provided for "run"</description>
- <description>startTime will be ignored for "pause" and "resum"</description>
- </param>
- <param name="updateMode" type="UpdateMode">
- <description>Enumeration to control the media clock.</description>
- <description>In case of pause or resume, the start time value is ignored and shall be left out. For resume, the time continues with the same value as it was when paused.</description>
- </param>
- </function>
- <function name="SetMediaClockTimer" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="IGNORED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="EncodedSyncPData" messagetype="request">
- <description>Allows encoded data in the form of SyncP packets to be sent to the SYNC module</description>
- <param name="data" type="String" maxlength="10000" minsize="1" maxsize="100" array="true" mandatory="true">
- <description>Contains base64 encoded string of SyncP packets.</description>
- <todo>What is the maxlength</todo>
- </param>
- </function>
- <function name="EncodedSyncPData" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="SubscribeButton" messagetype="request">
- <description>Subscribes to built-in HMI buttons.</description>
- <description>The application will be notified by the OnButtonEvent and OnButtonPress.</description>
- <description>To unsubscribe the notifications, use unsubscribeButton.</description>
- <param name="buttonName" type="ButtonName">
- <description>Name of the button to subscribe.</description>
- </param>
- </function>
- <function name="SubscribeButton" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="UNSUPPORTED_BUTTON"/>
- <element name="IGNORED"/>
- <element name="REJECTED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="UnsubscribeButton" messagetype="request">
- <description>Unsubscribes from built-in HMI buttons.</description>
- <param name="buttonName" type="ButtonName">
- <description>Name of the button to unsubscribe.</description>
- </param>
- </function>
- <function name="UnsubscribeButton" messagetype="response">
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="UNSUPPORTED_BUTTON"/>
- <element name="IGNORED"/>
- <element name="REJECTED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <function name="GenericResponse" messagetype="response">
- <description>Generic Response is sent, when the name of a received msg cannot be retrieved. Only used in case of an error.</description>
- <description>Currently, only resultCode INVALID_DATA is used.</description>
- <param name="success" type="Boolean">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result">
- <description>See Result</description>
- <element name="INVALID_DATA"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
- <!-- Notifications -->
- <function name="OnHMIStatus" messagetype="notification">
- <param name="hmiLevel" type="HMILevel">
- <description>See HMILevel</description>
- </param>
- <param name="audioStreamingState" type="AudioStreamingState">
- <description>See AudioStreamingState</description>
- </param>
- <param name="systemContext" type="SystemContext">
- <description>See SystemContext</description>
- </param>
- </function>
- <function name="OnAppInterfaceUnregistered" messagetype="notification">
- <param name="reason" type="AppInterfaceUnregisteredReason">
- <description>See AppInterfaceUnregisteredReason</description>
- </param>
- </function>
- <function name="OnButtonEvent" messagetype="notification">
- <description>Notifies application of UP/DOWN events for buttons to which the application is subscribed.</description>
- <param name="buttonName" type="ButtonName"/>
- <param name="buttonEventMode" type="ButtonEventMode">
- <description>Indicates whether this is an UP or DOWN event.</description>
- </param>
- </function>
- <function name="OnButtonPress" messagetype="notification">
- <description>Notifies application of LONG/SHORT press events for buttons to which the application is subscribed.</description>
- <param name="buttonName" type="ButtonName"/>
- <param name="buttonPressMode" type="ButtonPressMode">
- <description>Indicates whether this is a LONG or SHORT button press event.</description>
- </param>
- </function>
- <function name="OnCommand" messagetype="notification">
- <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>Command ID, which is related to a specific menu entry.</description>
- </param>
- <param name="triggerSource" type="TriggerSource">
- <description>See TriggerSource</description>
- </param>
- </function>
- <function name="OnEncodedSyncPData" messagetype="notification">
- <description>Callback including encoded data of any SyncP packets that SYNC needs to send back to the mobile device.</description>
- <param name="data" type="String" maxlength="10000" minsize="1" maxsize="100" mandatory="true" array="true">
- <description>Contains base64 encoded string of SyncP packets.</description>
- </param>
- </function>
- <function name="OnTBTClientState" messagetype="notification">
- <description>Provides applications with notifications specific to the current TBT client status on the module</description>
- <param name="state" type="TBTState">
- <description>Current State of TBT client</description>
- </param>
- </function>
- <function name="OnDriverDistraction" messagetype="notification">
- <description>Provides driver distraction state to mobile applications</description>
- <param name="state" type="DriverDistractionState">
- <description>Current State of Driver Distraction</description>
- </param>
- </function>
-
-
-</interface>
diff --git a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/v4_protocol_v2_0_revP.xml b/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/v4_protocol_v2_0_revP.xml
deleted file mode 100755
index 2f7fd7460..000000000
--- a/SDL_Core/src/components/JSONHandler/sdlinkObjGenerator/v4_protocol_v2_0_revP.xml
+++ /dev/null
@@ -1,3174 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<?xml-stylesheet type="text/xml" href="protocol2html.xsl"?>
-
-<interface name="Ford Sync RAPI" version="2.0O" date="2012-11-02">
-
- <enum name="Result" internal_scope="base">
- <element name="SUCCESS">
- <description>The request succeeded</description>
- </element>
- <element name="INVALID_DATA">
- <description>The data sent is invalid. For example</description>
- <description>Invalid Json syntax</description>
- <description>Parameters out of bounds (number or enum range)</description>
- <description>Mandatory parameters not provided</description>
- <description>Parameter provided with wrong type</description>
- <description>Invalid characters</description>
- <description>Empty string</description>
- </element>
- <element name="UNSUPPORTED_REQUEST">
- <description>The request is not supported by Sync</description>
- </element>
- <element name="OUT_OF_MEMORY">
- <description>The system could not process the request because the necessary memory couldn't be allocated</description>
- </element>
- <element name="TOO_MANY_PENDING_REQUESTS">
- <description>There are too many requests pending (means, that the response has not been delivered, yet).</description>
- <designdescription>There may be a maximum of 1000 pending requests at a time.</designdescription>
- </element>
- <element name="INVALID_ID">
- <description>One of the provided IDs is not valid. For example</description>
- <description>This applies to CorrelationID, SubscriptionID [@TODO if SubscriptionID is used], CommandID, MenuID, [@TODO: missed one?]</description>
- </element>
- <element name="DUPLICATE_NAME">
- <description>There was a conflict with an registered name (application or menu item) or vr command</description>
- </element>
- <element name="TOO_MANY_APPLICATIONS">
- <description>There are already too many registered applications</description>
- </element>
- <element name="APPLICATION_REGISTERED_ALREADY">
- <description>RegisterApplication has been called again, after a RegisterApplication was successful before.</description>
- </element>
- <element name="UNSUPPORTED_VERSION">
- <description>Sync doesn't support the protocol that is requested by the mobile application</description>
- </element>
- <element name="WRONG_LANGUAGE">
- <description>The requested language is currently not supported.</description>
- <description>Might be because of a mismatch of the currently active language on Sync and the requested language</description>
- </element>
- <element name="APPLICATION_NOT_REGISTERED">
- <description>An command can not be executed because no application has been registered with RegisterApplication.</description>
- </element>
- <element name="IN_USE">
- <description>The data may not be changed, because it is currently in use.</description>
- <description>For example when trying to delete a command set that is currently involved in an interaction.</description>
- </element>
- <element name="SUBSCRIBED_ALREADY">
- <description>The item to subscribe to is already subscribed to.</description>
- </element>
- <element name="VEHICLE_DATA_NOT_ALLOWED">
- <description>The user has turned off access to vehicle data, and it is globally unavailable to mobile applications.</description>
- </element>
- <element name="VEHICLE_DATA_NOT_AVAILABLE">
- <description>The requested vehicle data is not available on this vehicle or is not published.</description>
- </element>
- <element name="REJECTED">
- <description>The requested command was rejected, e.g. because mobile app is in background and cannot perform any HMI commands.</description>
- <description>Or an HMI command (e.g. Speak) is rejected because a higher priority HMI command (e.g. Alert) is playing.</description>
- </element>
- <element name="ABORTED">
- <description>A command was aborted, for example due to user interaction (e.g. user pressed button).</description>
- <description>Or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested.</description>
- </element>
- <element name="IGNORED">
- <description>A command was ignored, because the intended result is already in effect.</description>
- <description>For example, SetMediaClockTimer was used to pause the media clock although the clock is paused already.</description>
- <description>NOTE: potentially replaces SUBSCRIBED_ALREADY</description>
- </element>
- <element name="UNSUPPORTED_BUTTON">
- <description>A button that was requested for subscription is not supported under the current system.</description>
- <description>NOTE: could become a more generic UNSUPPORTED_RESOURCE by merging with VEHIVLE_DATA_NOT_AVAILABLE.</description>
- </element>
- <element name="FILE_NOT_FOUND">
- <description>A specified file could not be found on Sync.</description>
- </element>
- <element name="GENERIC_ERROR">
- <description>Provided data is valid but something went wrong in the lower layers.</description>
- </element>
- <element name="DISALLOWED">
- <description>RPC is not authorized in local policy table.</description>
- </element>
- <element name="USER_DISALLOWED">
- <description>RPC is included in a functional group explicitly blocked by the user.</description>
- </element>
- <element name="TIMED_OUT">
- <description>Overlay reached the maximum timeout and closed.</description>
- </element>
- <element name="CANCEL_ROUTE">
- <description>User selected to Cancel Route.</description>
- </element>
- <element name="CLOSED">
- <description>User chose a Close command for the overlay.</description>
- </element>
- <element name="ENCRYPTED">
- <description>The data is being returned through an OnEncodedSYNCPData notification.</description>
- <description>The data is intended to be passed by the proxy to the designated server URL.</description>
- </element>
- <element name="WARNINGS">
- <description>The RPC (e.g. SubscribeVehicleData) executed successfully but one or more items have a warning or failure.</description>
- </element>
- </enum>
-
- <enum name="ButtonPressMode">
- <element name="LONG">
- <description>A button was released, after it was pressed for a long time</description>
- <description>Actual timing is defined by Sync and may vary</description>
- </element>
- <element name="SHORT">
- <description>A button was released, after it was pressed for a short time</description>
- <description>Actual timing is defined by Sync and may vary</description>
- </element>
- </enum>
-
- <enum name="ButtonEventMode">
- <element name="BUTTONUP">
- <description>A button has been released up</description>
- </element>
- <element name="BUTTONDOWN">
- <description>A button has been pressed down</description>
- </element>
- </enum>
-
- <enum name="Language">
- <element name="EN-US" internal_name="EN_US">
- <description>US English</description>
- </element>
- <element name="ES-MX" internal_name="ES_MX">
- <description>Mexican Spanish</description>
- </element>
- <element name="FR-CA" internal_name="FR_CA">
- <description>Canadian French</description>
- </element>
- <element name="DE-EU" internal_name="DE_EU">
- <description>EU German</description>
- </element>
- <element name="ES-EU" internal_name="ES_EU">
- <description>EU Spanish</description>
- </element>
- <element name="EN-EU" internal_name="EN_EU">
- <description>UK English</description>
- </element>
- <element name="RU-RU" internal_name="RU_RU">
- <description>Russian</description>
- </element>
- <element name="TR-TR" internal_name="TR_TR">
- <description>Turkish</description>
- </element>
- <element name="PL-EU" internal_name="PL_EU">
- <description>EU Polish</description>
- </element>
- <element name="FR-EU" internal_name="FR_EU">
- <description>French</description>
- </element>
- <element name="IT-EU" internal_name="IT_EU">
- <description>Italian</description>
- </element>
- <element name="SV-EU" internal_name="SV_EU">
- <description>Swedish</description>
- </element>
- <element name="PT-EU" internal_name="PT_EU">
- <description>Portuguese</description>
- </element>
- <element name="NL-EU" internal_name="NL_EU">
- <description>Dutch (Standard)</description>
- </element>
- <element name="EN-AU" internal_name="EN_AU">
- <description>Australian English</description>
- </element>
- <element name="ZH-CN" internal_name="ZH_CN">
- <description>Chinese (Mandarin)</description>
- </element>
- <element name="ZH-TW" internal_name="ZH_TW">
- <description>Taiwanese (Mandarin)</description>
- </element>
- <element name="JA-JP" internal_name="JA_JP">
- <description>Japanese</description>
- </element>
- <element name="AR" internal_name="AR">
- <description>Arabic</description>
- </element>
- <element name="KO-KR" internal_name="KO_KR">
- <description>Korean</description>
- </element>
-</enum>
-
- <enum name="UpdateMode">
- <description>Describes how the media clock timer should behave on the platform</description>
- <element name="COUNTUP" />
- <description>Starts the media clock timer counting upwards, as in time elapsed.</description>
- <element name="COUNTDOWN" />
- <description>Starts the media clock timer counting downwards, as in time remaining.</description>
- <element name="PAUSE" />
- <description>Pauses the media clock timer</description>
- <element name="RESUME" />
- <description>Resume the media clock timer</description>
- <element name="CLEAR" />
- <description>Clears the media clock timer (previously done through Show->mediaClock)</description>
- </enum>
-
- <enum name="TimerMode">
- <element name="UP" />
- <description>Causes the media clock timer to update from 0:00 to a specified time</description>
- <element name="DOWN" />
- <description>Causes the media clock timer to update from a specified time to 0:00</description>
- <element name="NONE" />
- <description>Indicates to not use the media clock timer</description>
- </enum>
-
- <enum name="InteractionMode">
- <description>For application-requested interactions, this mode indicates the method in which the user is notified and uses the interaction.</description>
- <element name="MANUAL_ONLY" />
- <description>This mode causes the interaction to only occur on the display, meaning the choices are provided only via the display.</description>
- <description>Selections are made with the OK and Seek Right and Left, Tune Up and Down buttons.</description>
- <element name="VR_ONLY" />
- <description>This mode causes the interaction to only occur using V4.</description>
- <description>Selections are made by saying the command.</description>
- <element name="BOTH" />
- <description>This mode causes both a VR and display selection option for an interaction.</description>
- <description>Selections can be made either from the menu display or by speaking the command.</description>
- </enum>
-
- <enum name="HMILevel">
- <description>Enumeraction that describes current levels of HMI.</description>
- <element name="FULL" internal_name="HMI_FULL" />
- <element name="LIMITED" internal_name="HMI_LIMITED" />
- <element name="BACKGROUND" internal_name="HMI_BACKGROUND" />
- <element name="NONE" internal_name="HMI_NONE" />
- </enum>
-
- <enum name="AudioStreamingState">
- <description>Enumeraction that describes possible states of audio streaming.</description>
- <element name="AUDIBLE" />
- <element name="ATTENUATED" />
- <element name="NOT_AUDIBLE" />
- </enum>
-
- <enum name="SystemAction">
- <description>Enumeration that describes system actions that can be triggered.</description>
- <element name="DEFAULT_ACTION">
- <description>Default action occurs. Standard behavior (e.g. SoftButton clears overlay).</description>
- </element>
- <element name="STEAL_FOCUS">
- <description>App is brought into HMI_FULL.</description>
- </element>
- <element name="KEEP_CONTEXT">
- <description>Current system context is maintained. An overlay is persisted even though a SoftButton has been pressed and the notification sent.</description>
- </element>
- </enum>
-
- <enum name="SystemContext">
- <description>Enumeration that describes possible contexts an app's HMI might be in.</description>
- <description>Communicated to whichever app is in HMI FULL, except Alert.</description>
- <element name="MAIN" internal_name="SYSCTXT_MAIN">
- <description>The app's persistent display (whether media/non-media/navigation) is fully visible onscreen.</description>
- </element>
- <element name="VRSESSION" internal_name="SYSCTXT_VRSESSION">
- <description>The system is currently in a VR session (with whatever dedicated VR screen being overlaid onscreen).</description>
- </element>
- <element name="MENU" internal_name="SYSCTXT_MENU">
- <description>The system is currently displaying a system or in-App menu onscreen.</description>
- </element>
- <element name="HMI_OBSCURED" internal_name="SYSCTXT_HMI_OBSCURED">
- <description>The app's display HMI is currently being obscured by either a system or other app's overlay.</description>
- </element>
- <element name="ALERT" internal_name="SYSCTXT_ALERT">
- <description>Broadcast only to whichever app has an alert currently being displayed.</description>
- </element>
- </enum>
-
- <enum name="SoftButtonType">
- <description>Contains information about the SoftButton capabilities.</description>
- <element name="TEXT" internal_name="SBT_TEXT"/>
- <element name="IMAGE" internal_name="SBT_IMAGE"/>
- <element name="BOTH" internal_name="SBT_BOTH"/>
- </enum>
-
- <enum name="AppInterfaceUnregisteredReason">
- <description>Error code, which comes from sync side.</description>
- <element name="USER_EXIT" />
- <element name="IGNITION_OFF" />
- <element name="BLUETOOTH_OFF" />
- <element name="USB_DISCONNECTED" />
- <element name="REQUEST_WHILE_IN_NONE_HMI_LEVEL" />
- <element name="TOO_MANY_REQUESTS" />
- <element name="DRIVER_DISTRACTION_VIOLATION" />
- <element name="LANGUAGE_CHANGE" />
- <element name="MASTER_RESET" />
- <element name="FACTORY_DEFAULTS" />
- <element name="APP_UNAUTHORIZED" />
- </enum>
-
- <enum name="TriggerSource">
- <description>Indicates the source from where the command was triggered.</description>
- <element name="MENU" internal_name="TS_MENU" />
- <element name="VR" internal_name="TS_VR" />
- </enum>
-
- <enum name="HmiZoneCapabilities">
- <description>Contains information about the HMI zone capabilities.</description>
- <description>For future use.</description>
- <element name="FRONT" />
- <element name="BACK" />
- </enum>
-
- <enum name="SpeechCapabilities">
- <description>Contains information about the TTS capabilities.</description>
- <element name="TEXT" internal_name="SC_TEXT"/>
- <element name="SAPI_PHONEMES" />
- <element name="LHPLUS_PHONEMES" />
- <element name="PRE_RECORDED" />
- <element name="SILENCE" />
- </enum>
-
- <enum name="VrCapabilities">
- <description>Contains information about the VR capabilities.</description>
- <element name="TEXT" internal_name="VR_TEXT"/>
- </enum>
-
- <enum name="SamplingRate">
- <description>Describes different sampling options for PerformAudioPassThru.</description>
- <element name="8KHZ" />
- <element name="16KHZ" />
- <element name="22KHZ" />
- <element name="44KHZ" />
- </enum>
-
- <enum name="AudioCaptureQuality">
- <description>Describes different quality options for PerformAudioPassThru.</description>
- <element name="8_BIT" />
- <element name="16_BIT" />
- </enum>
-
- <enum name="AudioType">
- <description>Describes different audio type options for PerformAudioPassThru.</description>
- <element name="PCM" />
-<!-- TODO: remove?
- <element name="MP3" />
- <element name="WAV" />
--->
- </enum>
-
- <enum name="VehicleDataType">
- <description>Defines the data types that can be published and subscribed to.</description>
- <element name="VEHICLEDATA_GPS">
- <description>Notifies GPSData</description>
- <description>may be subscribed</description>
- </element>
- <element name="VEHICLEDATA_SPEED" />
- <element name="VEHICLEDATA_FUELLEVEL" />
- <element name="VEHICLEDATA_FUELECONOMY" />
- <element name="VEHICLEDATA_ENGINERPM" />
- <element name="VEHICLEDATA_BATTVOLTS" />
- <element name="VEHICLEDATA_RAINSENSOR">
- <issue creator="rs">Cansignals not identified yet</issue>
- </element>
- <element name="VEHICLEDATA_ODOMETER" />
- <element name="VEHICLEDATA_VIN" />
- <element name="VEHICLEDATA_EXTERNTEMP" />
- <element name="VEHICLEDATA_PRNDLSTATUS" />
- <element name="VEHICLEDATA_TIREPRESSURE" />
- <element name="VEHICLEDATA_BATTERYPACKVOLTAGE">
- <description>Battery pack voltage of hybrid and electrical vehicles</description>
- </element>
- <element name="VEHICLEDATA_BATTERYCURRENT">
- <description>Battery current of hybrid and electrical vehicles</description>
- </element>
- <element name="VEHICLEDATA_BATTERYTEMPERATURE">
- <description>Battery temperature of hybrid and electrical vehicles</description>
- </element>
- <element name="VEHICLEDATA_SATESN">
- <description>Satellite radio serial number (ESN)</description>
- </element>
-
- </enum>
-
- <enum name="ButtonName">
- <description>Defines the hard (physical) and soft (touchscreen) buttons available from SYNC</description>
- <element name="OK" />
- <element name="SEEKLEFT" />
- <element name="SEEKRIGHT" />
- <element name="TUNEUP" />
- <element name="TUNEDOWN" />
- <element name="PRESET_0" />
- <element name="PRESET_1" />
- <element name="PRESET_2" />
- <element name="PRESET_3" />
- <element name="PRESET_4" />
- <element name="PRESET_5" />
- <element name="PRESET_6" />
- <element name="PRESET_7" />
- <element name="PRESET_8" />
- <element name="PRESET_9" />
- <element name="CUSTOM_BUTTON" />
- </enum>
-
- <enum name="MediaClockFormat">
- <element name="CLOCK1">
- <description>minutesFieldWidth = 2;minutesFieldMax = 19;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 19;maxMinutes = 59;maxSeconds = 59;</description>
- <description>used for Type II and CID headunits</description>
- </element>
- <element name="CLOCK2">
- <description>minutesFieldWidth = 3;minutesFieldMax = 199;secondsFieldWidth = 2;secondsFieldMax = 99;maxHours = 59;maxMinutes = 59;maxSeconds = 59;</description>
- <description>used for Type V headunit</description>
- </element>
- <element name="CLOCKTEXT1">
- <description>5 characters possible</description>
- <description>Format: 1|sp c :|sp c c</description>
- <description>1|sp : digit "1" or space</description>
- <description>c : character out of following character set: sp|0-9|[letters, see TypeII column in XLS. See [@TODO: create file ref]]</description>
- <description>:|sp : colon or space</description>
- <description>used for Type II headunit</description>
- </element>
- <element name="CLOCKTEXT2">
- <description>5 chars possible</description>
- <description>Format: 1|sp c :|sp c c</description>
- <description>1|sp : digit "1" or space</description>
- <description>c : character out of following character set: sp|0-9|[letters, see CID column in XLS. See [@TODO: create file ref]]</description>
- <description>:|sp : colon or space</description>
- <description>used for CID headunit</description>
- <description>NOTE: difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character set</description>
- </element>
- <element name="CLOCKTEXT3">
- <description>6 chars possible</description>
- <description>Format: 1|sp c c :|sp c c</description>
- <description>1|sp : digit "1" or space</description>
- <description>c : character out of following character set: sp|0-9|[letters, see Type 5 column in XLS]. See [@TODO: create file ref]</description>
- <description>:|sp : colon or space</description>
- <description>used for Type V headunit</description>
- </element>
- <issue creator="mf">First complete values draft. Review needed.</issue>
- </enum>
-
- <enum name="DisplayType">
- <description>See DAES for further infos regarding the displays</description>
- <element name="CID"/>
- <element name="TYPE2" />
- <element name="TYPE5" />
- <element name="NGN" />
- <element name="GEN2_8_DMA" />
- <element name="GEN2_6_DMA" />
- <element name="MFD3" />
- <element name="MFD4" />
- <element name="MFD5" />
- </enum>
-
- <enum name="TextFieldName">
- <element name="mainField1">
- <description>The first line of first set of main fields of the persistent display</description>
- <description>Applies to "Show"</description>
- </element>
-
- <element name="mainField2">
- <description>The second line of first set of main fields of the persistent display</description>
- <description>Applies to "Show"</description>
- </element>
-
- <element name="mainField3">
- <description>The first line of second set of main fields of persistent display</description>
- <description>Applies to "Show"</description>
- </element>
-
- <element name="mainField4">
- <description>The second line of second set of main fields of the persistent display</description>
- <description>Applies to "Show"</description>
- </element>
-
- <element name="statusBar">
- <description>The status bar on Nav</description>
- <description>Applies to "Show"</description>
- </element>
-
- <element name="mediaClock">
- <description>Text value for MediaClock field.</description>
- <description>Applies to "Show"</description>
- </element>
-
- <element name="mediaTrack">
- <description>The track field of NGN type ACMs.</description>
- <description>This field is only available for media applications.</description>
- <description>Applies to "Show"</description>
- </element>
-
- <element name="alertText1">
- <description>The first line of the alert text field</description>
- <description>Applies to "Alert"</description>
- </element>
-
- <element name="alertText2">
- <description>The second line of the alert text field</description>
- <description>Applies to "Alert"</description>
- </element>
-
- <element name="alertText3">
- <description>The third line of the alert text field</description>
- <description>Applies to "Alert"</description>
- </element>
-
- <element name="scrollableMessageBody">
- <description> Long form body of text that can include newlines and tabs.</description>
- <description>Applies to "ScrollableMessage"</description>
- </element>
-
- <element name="initialInteractionText">
- <description> First line suggestion for a user response (in the case of VR enabled interaction</description>
- </element>
-
- <element name="navigationText1">
- <description> First line of navigation text</description>
- </element>
-
- <element name="navigationText2">
- <description> Second line of navigation text</description>
- </element>
-
- <element name="ETA">
- <description> Estimated Time of Arrival time for navigation</description>
- </element>
-
- <element name="totalDistance">
- <description> Total distance to destination for navigation</description>
- </element>
-
- <element name="audioPassThruDisplayText1">
- <description> First line of text for audio pass thru</description>
- </element>
-
- <element name="audioPassThruDisplayText2">
- <description> Second line of text for audio pass thru</description>
- </element>
-
- <element name="sliderHeader">
- <description> Header text for slider</description>
- </element>
-
- <element name="sliderFooter">
- <description> Footer text for slider</description>
- </element>
-
- </enum>
-
- <enum name="CharacterSet">
- <description>The list of potential character sets</description>
- <element name="TYPE2SET">
- <description>See [@TODO: create file ref]</description>
- </element>
- <element name="TYPE5SET">
- <description>See [@TODO: create file ref]</description>
- </element>
- <element name="CID1SET">
- <description>See [@TODO: create file ref]</description>
- </element>
- <element name="CID2SET">
- <description>See [@TODO: create file ref]</description>
- </element>
- <issue creator="rs">Real sets have not been defined yet?</issue>
- </enum>
-
- <enum name="TextAlignment">
- <description>The list of possible alignments, left, right, or centered</description>
- <element name="LEFT_ALIGNED" />
- <element name="RIGHT_ALIGNED" />
- <element name="CENTERED" />
- </enum>
-
- <enum name="TBTState">
- <description>Enumeration that describes possible states of turn-by-turn client or SmartDeviceLink app.</description>
- <element name="ROUTE_UPDATE_REQUEST" />
- <element name="ROUTE_ACCEPTED" />
- <element name="ROUTE_REFUSED" />
- <element name="ROUTE_CANCELLED" />
- <element name="ETA_REQUEST" />
- <element name="NEXT_TURN_REQUEST" />
- <element name="ROUTE_STATUS_REQUEST" />
- <element name="ROUTE_SUMMARY_REQUEST" />
- <element name="TRIP_STATUS_REQUEST" />
- <element name="ROUTE_UPDATE_REQUEST_TIMEOUT" />
- </enum>
-
- <enum name="DriverDistractionState">
- <description>Enumeration that describes possible states of driver distraction.</description>
- <element name="DD_ON" />
- <element name="DD_OFF" />
- </enum>
-
-<!-- TODO: REMOVE
- <enum name="DataType">
- <description>Contains information about the type of data.</description>
- <element name="HEX" />
- <element name="BINARY" />
- </enum>
--->
-
- <enum name="ImageType">
- <description>Contains information about the type of image.</description>
- <element name="STATIC" />
- <element name="DYNAMIC" />
- </enum>
-
- <struct name="Image">
- <param name="value" maxlength="65535" type="String">
- <description>Either the static hex icon value or the binary image file name identifier (sent by PutFile).</description>
- </param>
- <param name="imageType" type="ImageType">
- <description>Describes, whether it is a static or dynamic image.</description>
- </param>
- </struct>
-
- <struct name="SoftButton">
- <param name="type" type="SoftButtonType">
- <description>Describes, whether it is text, highlighted text, icon, or dynamic image. See softButtonType</description>
- </param>
- <param name="text" maxlength="500" type="String" mandatory="false">
- <description>Optional text to display (if defined as TEXT or BOTH)</description>
- </param>
- <param name="image" type="Image" mandatory="false">
- <description>Optional image struct for SoftButton (if defined as IMAGE or BOTH)</description>
- </param>
- <param name="isHighlighted" type="Boolean">
- <description>True, if highlighted</description>
- <description>False, if not highlighted</description>
- </param>
- <param name="softButtonID" type="Integer" minvalue="0" maxvalue="65536">
- <description>Value which is returned via OnButtonPress / OnButtonEvent</description>
- </param>
- <param name="systemAction" type="SystemAction">
- <description>Parameter indicating whether selecting a SoftButton shall call a specific system action. This is intended to allow Notifications to bring the callee into full / focus; or in the case of persistent overlays, the overlay can persist when a SoftButton is pressed.</description>
- </param>
- </struct>
-
- <struct name="Choice">
- <description>A choice is an option given to the user, which can be selected either by menu, or through voice recognition system.</description>
- <param name="choiceID" type="Integer" minvalue="0" maxvalue="65535" />
- <param name="menuName" type="String" maxlength="500" />
- <param name="vrCommands" type="String" minsize="1" maxsize="100" maxlength="99" array="true" />
- <param name="image" type="Image"/>
- </struct>
-
- <struct name="VrHelpItem">
- <param name="text" maxlength="500" type="String">
- <description>Text to display for VR Help item</description>
- </param>
- <param name="image" type="Image">
- <description>Image struct for VR Help item</description>
- </param>
- <param name="position" type="Integer" minvalue="1" maxvalue="8">
- <description>Position to display item in VR Help list</description>
-
- </param>
- </struct>
-
- <struct name="SyncMsgVersion">
- <description>Specifies the version number of the SYNC V4 protocol, that is supported by the mobile application</description>
-
- <param name="majorVersion" type="Integer" minvalue="1" maxvalue="10">
- <description>The major version indicates versions that is not-compatible to previous versions.</description>
- </param>
- <param name="minorVersion" type="Integer" minvalue="0" maxvalue="1000">
- <description>The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality)</description>
- </param>
- </struct>
-
- <enum name="GlobalProperty">
- <description>The different global properties.</description>
- <element name="HELPPROMPT">
- <description>The property helpPrompt of setGlobalProperties</description>
- </element>
- <element name="TIMEOUTPROMPT">
- <description>The property timeoutPrompt of setGlobalProperties</description>
- </element>
- <element name="VRHELPTITLE">
- <description>The property vrHelpTitle of setGlobalProperties</description>
- </element>
- <element name="VRHELPITEMS">
- <description>The property array of vrHelp of setGlobalProperties</description>
- </element>
- </enum>
-
- <enum name="CompassDirection">
- <description>The list of potential compass directions</description>
- <element name="NORTH">
- </element>
- <element name="NORTHWEST">
- </element>
- <element name="WEST">
- </element>
- <element name="SOUTHWEST">
- </element>
- <element name="SOUTH">
- </element>
- <element name="SOUTHEAST">
- </element>
- <element name="EAST">
- </element>
- <element name="NORTHEAST">
- </element>
- </enum>
-
- <enum name="Dimension">
- <description>The supported dimensions of the GPS</description>
- <element name="NO_FIX">
- <description>No GPS at all</description>
- </element>
- <element name="2D">
- <description>Longitude and lattitude</description>
- </element>
- <element name="3D">
- <description>Longitude and lattitude and altitude</description>
- </element>
- </enum>
-
- <enum name="PRNDL">
- <description>The selected gear.</description>
- <element name="PARK">
- <description>Parking</description>
- </element>
- <element name="REVERSE">
- <description>Reverse gear</description>
- </element>
- <element name="NEUTRAL">
- <description>No gear</description>
- </element>
- <element name="LOWGEAR">
- <description>1st gear hold</description>
- </element>
- <element name="FORWARD_DRIVE_2">
- </element>
- <element name="FORWARD_DRIVE_3">
- </element>
- <element name="FORWARD_DRIVE_4">
- <description>Or Overdrive</description>
- </element>
- <element name="FORWARD_DRIVE_5">
- <description>Or Overdrive</description>
- </element>
- <element name="FORWARD_DRIVE_6">
- <description>Or Overdrive</description>
- </element>
- <element name="SECOND_GEAR_HOLD">
- </element>
- <element name="THIRD_GEAR_HOLD">
- </element>
- <element name="FOURTH_GEAR_HOLD">
- </element>
- <element name="FIFTH_GEAR_HOLD">
- </element>
- <element name="SIXTH_GEAR_HOLD">
- </element>
- </enum>
-
- <enum name="SingleTirePressureStatus">
- <description>The pressure status of a tire.</description>
- <element name="UNKNOWN">
- </element>
- <element name="NORMAL">
- </element>
- <element name="LOW">
- </element>
- <element name="FAULT">
- </element>
- <element name="NOT_SUPPORTED">
- </element>
- </enum>
-
- <struct name="SingleTireStatus">
- <param name="status" type="SingleTirePressureStatus">
- <description>See SingleTirePressureStatus.</description>
- </param>
- <param name="pressure" type="Integer" minvalue="0" maxvalue="255">
- <description>The tire pressure in PSI.</description>
- </param>
- </struct>
-
- <enum name="TirePressureTellTale">
- <description>Reflects the status of the cluster instrument warning light.</description>
- <element name="OFF">
- </element>
- <element name="ON">
- </element>
- <element name="FLASH">
- </element>
- </enum>
-
- <enum name="VehicleDataResultCode">
- <description>Enumeration that describes possible result codes of a vehicle data entry request.</description>
- <element name="SUCCESS" internal_name="VDRC_SUCCESS"/>
- <element name="DISALLOWED" internal_name="VDRC_DISALLOWED"/>
- <element name="USER_DISALLOWED" internal_name="VDRC_USER_DISALLOWED"/>
- <element name="INVALID_ID" internal_name="VDRC_INVALID_ID"/>
- <element name="VEHICLE_DATA_NOT_AVAILABLE" internal_name="VDRC_DATA_NOT_AVAILABLE"/>
- <element name="DATA_ALREADY_SUBSCRIBED" internal_name="VDRC_DATA_ALREADY_SUBSCRIBED"/>
- <element name="DATA_NOT_SUBSCRIBED" internal_name="VDRC_DATA_NOT_SUBSCRIBED"/>
- <element name="IGNORED" internal_name="VDRC_IGNORED"/>
- </enum>
-
- <struct name="TireStatus">
- <description>The status and pressure of the tires.</description>
-
- <param name="pressureTellTale" type="TirePressureTellTale">
- <description>See TirePressureTellTale.</description>
- </param>
- <param name="leftFront" type="SingleTireStatus">
- <description>The status of the left front tire.</description>
- </param>
- <param name="rightFront" type="SingleTireStatus">
- <description>The status of the right front tire.</description>
- </param>
- <param name="leftRear" type="SingleTireStatus">
- <description>The status of the left rear tire.</description>
- </param>
- <param name="rightRear" type="SingleTireStatus">
- <description>The status of the right rear tire.</description>
- </param>
- <param name="innerLeftRear" type="SingleTireStatus">
- <description>The status of the inner left rear.</description>
- </param>
- <param name="innerRightRear" type="SingleTireStatus">
- <description>The status of the inner right rear.</description>
- </param>
- </struct>
-
- <struct name="GPSData">
- <description>Struct with the GPS data.</description>
- <issue creator="rs">Ford to define, which values are really needed. For efficiency it might make sense to support a basic and extended data type</issue>
- <param name="longitudeDegrees" type="Integer" minvalue="-1000000000" maxvalue="1000000000">
- <issue creator="rs">Format needs to be defined explicitely.</issue>
- </param>
- <param name="latitudeDegrees" type="Integer" minvalue="-1000000000" maxvalue="1000000000">
- <issue creator="rs">Format needs to be defined explicitely.</issue>
- </param>
- <param name="utcYear" type="Integer" minvalue="2010" maxvalue="2100">
- <description>The current UTC year.</description>
- </param>
- <param name="utcMonth" type="Integer" minvalue="1" maxvalue="12">
- <description>The current UTC month.</description>
- </param>
- <param name="utcDay" type="Integer" minvalue="1" maxvalue="31">
- <description>The current UTC day.</description>
- </param>
- <param name="utcHours" type="Integer" minvalue="0" maxvalue="23">
- <description>The current UTC hour.</description>
- </param>
- <param name="utcMinutes" type="Integer" minvalue="0" maxvalue="59">
- <description>The current UTC minute.</description>
- </param>
- <param name="utcSeconds" type="Integer" minvalue="0" maxvalue="59">
- <description>The current UTC second.</description>
- </param>
- <param name="compassDirection" type="CompassDirection">
- <description>See CompassDirection.</description>
- </param>
- <param name="pdop" type="Integer" minvalue="0" maxvalue="31">
- <description>PDOP.</description>
- </param>
- <param name="hdop" type="Integer" minvalue="0" maxvalue="31">
- <description>HDOP.</description>
- </param>
- <param name="vdop" type="Integer" minvalue="0" maxvalue="31">
- <description>VDOP.</description>
- </param>
- <param name="actual" type="Boolean">
- <description>True, if actual.</description>
- <description>False, if infered.</description>
- </param>
- <param name="satellites" type="Integer" minvalue="0" maxvalue="31">
- <description>Number of satellites in view</description>
- </param>
- <param name="dimension" type="Dimension">
- <description>See Dimension</description>
- </param>
- <param name="altitude" type="Integer" minvalue="-10000" maxvalue="10000">
- <description>Altitude in meters</description>
- </param>
- <param name="heading" type="Integer" minvalue="0" maxvalue="360">
- <description>The heading. North is 0</description>
- </param>
- <param name="speed" type="Integer" minvalue="0" maxvalue="400">
- <description>The speed in KPH</description>
- </param>
- </struct>
-
- <struct name="VehicleDataResult">
- <description>Individual published data request result</description>
- <param name="dataType" type="VehicleDataType">
- <description>Defined published data element type.</description>
- </param>
- <param name="resultCode" type="VehicleDataResultCode">
- <description>Published data result code.</description>
- </param>
- </struct>
-
- <struct name="StartTime">
- <param name="hours" type="Integer" minvalue="0" maxvalue="59">
- <description>The hour of the media clock.</description>
- <description>Some radios only support a max of 19 hours. If out of range, it will be rejected.</description>
- </param>
- <param name="minutes" type="Integer" minvalue="0" maxvalue="59" />
- <param name="seconds" type="Integer" minvalue="0" maxvalue="59" />
- </struct>
-
- <struct name="TextField">
- <param name="name" type="TextFieldName">
- <description>The name that identifies the field. See TextFieldName.</description>
- </param>
- <param name="characterSet" type="CharacterSet">
- <description>The character set that is supported in this field. See CharacterSet.</description>
- </param>
- <param name="width" type="Integer" minvalue="1" maxvalue="500">
- <description>The number of characters in one row of this field.</description>
- </param>
- <param name="rows" type="Integer" minvalue="1" maxvalue="3">
- <description>The number of rows of this field.</description>
- </param>
- </struct>
-
- <enum name="PermissionStatus">
- <description>Enumeration that describes possible permission states of a policy table entry.</description>
- <element name="ALLOWED" internal_name="PS_ALLOWED"/>
- <element name="DISALLOWED" internal_name="PS_DISALLOWED"/>
- <element name="USER_DISALLOWED" internal_name="PS_USER_DISALLOWED"/>
- <element name="USER_CONSENT_PENDING" internal_name="PS_USER_CONSENT_PENDING"/>
- </enum>
-
- <struct name="HMIPermissions">
- <param name="allowed" type="HMILevel" minsize="0" maxsize="100" array="true">
- <description>A set of all HMI levels that are permitted for this given RPC.</description>
- </param>
- <param name="userDisallowed" type="HMILevel" minsize="0" maxsize="100" array="true">
- <description>A set of all HMI levels that are prohibited for this given RPC.</description>
- </param>
- </struct>
-
- <struct name="ParameterPermissions">
- <param name="allowed" type="String" minsize="0" maxsize="100" maxlength = "100" array="true">
- <description>A set of all parameters that are permitted for this given RPC.</description>
- </param>
- <param name="userDisallowed" type="String" minsize="0" maxsize="100" array="true">
- <description>A set of all parameters that are prohibited for this given RPC.</description>
- </param>
- </struct>
-
- <struct name="PermissionItem">
- <param name="rpcName" type="String" maxlength="100">
- <description>Name of the individual RPC in the policy table.</description>
- </param>
- <param name="hmiPermissions" type="HMIPermissions" />
- <param name="parameterPermissions" type="ParameterPermissions" />
- </struct>
-
- <struct name="DisplayCapabilities">
- <description>Contains information about the display capabilities.</description>
- <param name="displayType" type="DisplayType">
- <description>The type of the display. See DisplayType</description>
- </param>
- <param name="textFields" type="TextField" minsize="1" maxsize="100" array="true">
- <description>A set of all fields that support text data. See TextField</description>
- </param>
- <param name="mediaClockFormats" type="MediaClockFormat" minsize="1" maxsize="100" array="true">
- <description>A set of all supported formats of the media clock. See MediaClockFormat</description>
- </param>
- </struct>
-
- <struct name="ButtonCapabilities">
- <description>Contains information about a button's capabilities.</description>
- <param name="name" type="ButtonName">
- <description>The name of the button. See ButtonName.</description>
- </param>
- <param name="shortPressAvailable" type="Boolean">
- <description>The button supports a short press.</description>
- <description>Whenever the button is pressed short, onButtonPressed( SHORT) will be invoked.</description>
- </param>
- <param name="longPressAvailable" type="Boolean">
- <description>The button supports a LONG press.</description>
- <description>Whenever the button is pressed long, onButtonPressed( LONG) will be invoked.</description>
- </param>
- <param name="upDownAvailable" type="Boolean">
- <description>The button supports "button down" and "button up".</description>
- <description>Whenever the button is pressed, onButtonEvent( DOWN) will be invoked.</description>
- <description>Whenever the button is released, onButtonEvent( UP) will be invoked.</description>
- </param>
- </struct>
-
- <struct name="SoftButtonCapabilities">
- <description>Contains information about a SoftButton's capabilities.</description>
- <param name="shortPressAvailable" type="Boolean">
- <description>The button supports a short press.</description>
- <description>Whenever the button is pressed short, onButtonPressed( SHORT) will be invoked.</description>
- </param>
- <param name="longPressAvailable" type="Boolean">
- <description>The button supports a LONG press.</description>
- <description>Whenever the button is pressed long, onButtonPressed( LONG) will be invoked.</description>
- </param>
- <param name="upDownAvailable" type="Boolean">
- <description>The button supports "button down" and "button up".</description>
- <description>Whenever the button is pressed, onButtonEvent( DOWN) will be invoked.</description>
- <description>Whenever the button is released, onButtonEvent( UP) will be invoked.</description>
- </param>
- <param name="imageSupported" type="Boolean">
- <description>The button supports referencing a static or dynamic image.</description>
- </param>
- </struct>
-
- <struct name="PresetBankCapabilities">
- <description>Contains information about on-screen preset capabilities.</description>
- <param name="onScreenPresetsAvailable" type="Boolean">
- <description>Onscreen custom presets are available.</description>
- </param>
- </struct>
-
-<!-- TODO: REMOVE
- <enum name="DisplayLayout">
- <description>Dynamic enumeration that contains predefined alternate screen layouts as well as app-defined layouts.</description>
- <issue creator="sb">Can an enumeration be dynamically changed (custom elements added by an app at runtime?)</issue>
- <element name="ONSCREEN_PRESETS">
- <description>Custom screen containing app-defined onscreen presets. Currently defined for GEN2.</description>
- </element>
- </enum>
--->
-
- <struct name="MenuParams">
- <param name="parentID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
- <description>unique ID of the sub menu, the command will be added to.</description>
- <description>If not provided, it will be provided to the top level of the in application menu.</description>
- </param>
-
- <param name="position" type="Integer" minvalue="0" maxvalue="1000" mandatory="false">
- <description>Position within the items that are are at top level of the in application menu.</description>
- <description>0 will insert at the front.</description>
- <description>1 will insert at the second position.</description>
- <description>if position is greater or equal than the number of items on top level, the sub menu will be appended to the end.</description>
- <description>If this param was omitted the entry will be added at the end.</description>
- </param>
-
- <param name="menuName" type="String" maxlength="500">
- <description>Text to show in the menu for this sub menu.</description>
- </param>
- </struct>
-
- <struct name="TTSChunk">
- <description>A TTS chunk, that consists of the text/phonemes to speak and the type (like text or SAPI)</description>
- <param name="text" maxlength="500" type="String">
- <description>The text or phonemes to speak.</description>
- <description>May not be empty.</description>
- </param>
- <param name="type" type="SpeechCapabilities">
- <description>Describes, whether it is text or a specific phoneme set. See SpeechCapabilities</description>
- </param>
- </struct>
-
- <struct name="DTC">
- <param name="identifier" type="String" maxlength="500">
- <description>String containing hexadecimal identifier as well as other common names.</description>
- </param>
- <param name="statusByte" type="String" maxlength="500">
- <description>Hexadecimal byte string.</description>
- </param>
- </struct>
-
- <struct name="Turn">
- <param name="navigationText" type="String" maxlength="500" mandatory="false">
- </param>
- <param name="turnIcon" type="Image">
- </param>
- </struct>
-
- <struct name="VehicleType">
- <param name="make" type="String" maxlength="500" mandatory="false">
- <description>Make of the vehicle</description>
- <description>e.g. Ford</description>
- </param>
- <param name="model" type="String" maxlength="500" mandatory="false">
- <description>Model of the vehicle</description>
- <description>e.g. Fiesta</description>
- </param>
- <param name="modelYear" type="String" maxlength="500" mandatory="false">
- <description>Model Year of the vehicle</description>
- <description>e.g. 2013</description>
- </param>
- <param name="trim" type="String" maxlength="500" mandatory="false">
- <description>Trim of the vehicle</description>
- <description>e.g. SE</description>
- </param>
-
- </struct>
-
- <enum name="FileType">
- <description>Enumeration listing possible file types.</description>
- <element name="GRAPHIC_BMP" />
- <element name="GRAPHIC_JPEG" />
- <element name="GRAPHIC_PNG" />
- <element name="AUDIO_WAVE" />
- <element name="AUDIO_MP3" />
- </enum>
-
- <enum name="AppType">
- <description>Enumeration listing possible app types.</description>
- <element name="DEFAULT" />
- <element name="COMMUNICATION" />
- <element name="MEDIA" />
- <element name="MESSAGING" />
- <element name="NAVIGATION" />
- <element name="INFORMATION" />
- <element name="SOCIAL" />
- <element name="BACKGROUND_PROCESS" />
- <element name="TESTING" />
- <element name="SYSTEM" />
- </enum>
-
- <enum name="FunctionID">
- <description>Enumeration linking function names with function IDs in WiPro protocol.</description>
- <description>Assumes enumeration starts at value 0.</description>
- <element name="RESERVED" value="0" />
- <element name="RegisterAppInterfaceID" value="1" />
- <element name="UnregisterAppInterfaceID" value="2" />
- <element name="SetGlobalPropertiesID" value="3" />
- <element name="ResetGlobalPropertiesID" value="4" />
- <element name="AddCommandID" value="5" />
- <element name="DeleteCommandID" value="6" />
- <element name="AddSubMenuID" value="7" />
- <element name="DeleteSubMenuID" value="8" />
- <element name="CreateInteractionChoiceSetID" value="9" />
- <element name="PerformInteractionID" value="10" />
- <element name="DeleteInteractionChoiceSetID" value="11" />
- <element name="AlertID" value="12" />
- <element name="ShowID" value="13" />
- <element name="SpeakID" value="14" />
- <element name="SetMediaClockTimerID" value="15" />
- <element name="EncodedSyncPDataID" value="16" />
- <element name="DialNumberID" value="17" />
- <element name="PerformAudioPassThruID" value="18" />
- <element name="EndAudioPassThruID" value="19" />
- <element name="SubscribeButtonID" value="20" />
- <element name="UnsubscribeButtonID" value="21" />
- <element name="SubscribeVehicleDataID" value="22" />
- <element name="UnsubscribeVehicleDataID" value="23" />
- <element name="GetVehicleDataID" value="24" />
- <element name="ReadDIDID" value="25" />
- <element name="GetDTCsID" value="26" />
- <element name="ScrollableMessageID" value="27" />
- <element name="SliderID" value="28" />
- <element name="ShowConstantTBTID" value="29" />
- <element name="AlertManeuverID" value="30" />
- <element name="UpdateTurnListID" value="31" />
- <element name="ChangeRegistrationID" value="32" />
- <element name="GenericResponseID" value="33" />
- <element name="PutFileID" value="34" />
- <element name="DeleteFileID" value="35" />
- <element name="ListFilesID" value="36" />
- <element name="SetAppIconID" value="37" />
- <element name="SetDisplayLayoutID" value="38" />
- <element name="OnHMIStatusID" value="39" />
- <element name="OnAppInterfaceUnregisteredID" value="40" />
- <element name="OnButtonEventID" value="41" />
- <element name="OnButtonPressID" value="42" />
- <element name="OnVehicleDataID" value="43" />
- <element name="OnCommandID" value="44" />
- <element name="OnEncodedSyncPDataID" value="45" />
- <element name="OnTBTClientStateID" value="46" />
- <element name="OnDriverDistractionID" value="47" />
- <element name="OnPermissionsChangeID" value="48" />
- <element name="OnAudioPassThruID" value="49" />
- <element name="OnLanguageChangeID" value="50" />
- </enum>
-
- <enum name="messageType">
- <description>Enumeration linking message types with function types in WiPro protocol.</description>
- <description>Assumes enumeration starts at value 0.</description>
- <element name="request" value="0" />
- <element name="response" value="1" />
- <element name="notification" value="2" />
- </enum>
-
- <!-- Requests/Responses -->
-
- <function name="RegisterAppInterface" functionID="RegisterAppInterfaceID" messagetype="request">
- <description>Establishes an interface with a mobile application.</description>
- <description>Before registerAppInterface no other commands will be accepted/executed.</description>
- <param name="syncMsgVersion" type="SyncMsgVersion">
- <description>See SyncMsgVersion</description>
- </param>
- <param name="appName" type="String" maxlength="100">
- <description>The mobile application name, e.g. "Ford Drive Green".</description>
- <description>Needs to be unique over all applications.</description>
- <description>May not be empty.</description>
- <description>May not start with a new line character.</description>
- <description>May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)</description>
- <description>Needs to be unique over all applications. Applications with the same name will be rejected.</description>
- <description>Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.</description>
- </param>
-
- <param name="ttsName" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
- <description>TTS string for VR recognition of the mobile application name, e.g. "Ford Drive Green".</description>
- <description>Meant to overcome any failing on speech engine in properly pronouncing / understanding app name.</description>
- <description>Needs to be unique over all applications.</description>
- <description>May not be empty.</description>
- <description>May not start with a new line character.</description>
- <description>May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)</description>
- <description>Needs to be unique over all applications. Applications with the same name will be rejected.</description>
- <description>Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.</description>
- </param>
-
- <param name="ngnMediaScreenAppName" type="String" maxlength="100" mandatory="false">
- <description>Provides an abbreviated version of the app name (if needed), that will be displayed on the NGN media screen.</description>
- <description>If not provided, the appName is used instead (and will be truncated if too long)</description>
- <description>Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.</description>
- </param>
-
- <param name="vrSynonyms" type="String" maxlength="40" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>Defines an additional voice recognition command.</description>
- <description>May not interfere with any name or synonym of previously registered applications and the following list of words @TODO: Create list(global commands)</description>
- <description>Only characters from char set [@TODO: Create char set (character/hex value) for each ACM and refer to] are supported.</description>
- </param>
-<!-- deprecating
- <param name="usesVehicleData" type="Boolean" defvalue="false" mandatory="false">
- <description>If not provided, the default is equal to False"</description>
- <description>Indicates if the mobile application wants to use vehicle data like GPS or speed.</description>
- </param>
--->
- <param name="isMediaApplication" type="Boolean">
- <description>Indicates if the application is a media or a non-media application.</description>
- <description>Only media applications will be able to stream audio to Sync that is audible outside of the BT media source.</description>
- </param>
- <param name="languageDesired" type="Language" mandatory="true">
- <description>See Language</description>
- <description>Current app’s expected VR+TTS language</description>
- <description>If there is a mismatch with SYNC, the app will be able to change this registration with changeRegistration prior to app being brought into focus.</description>
- </param>
- <param name="hmiDisplayLanguageDesired" type="Language" mandatory="true">
- <description>See Language</description>
- <description>Current app’s expected display language</description>
- <description>If there is a mismatch with SYNC, the app will be able to change this registration with changeRegistration prior to app being brought into focus.</description>
- </param>
-<!-- deprecating
- <param name="autoActivateID" type="String" maxlength="16" mandatory="false">
- <description>Used to support auto activation after an initial successful registerAppInterface (for example after an ignition cycle).</description>
- <description>The app should always provide the id that was provided by the most recent registerAppInterface response.</description>
- <description>If this is the first call to registerAppInterface, then do not provide this parameter at all.</description>
- <description>If not provided or not matching with the id of the last registerAppInterface response, the app will not be automatically put into foreground on startup.</description>
- </param>
--->
- <param name="appType" type="AppType" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>See AppType</description>
- <description>List of all applicable app types stating which classifications to be given to the app.</description>
- <description>e.g. for platforms like GEN2, this will determine which "corner(s)" the app can populate.</description>
- </param>
- <param name="appID" type="String" maxlength="100" mandatory="true">
- <description>ID used to validate app with policy table entries</description>
- </param>
- </function>
-
- <function name="RegisterAppInterface" functionID="RegisterAppInterfaceID" messagetype="response">
- <description>The response to registerAppInterface</description>
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="GENERIC_ERROR"/>
- <element name="DUPLICATE_NAME"/>
- <element name="TOO_MANY_APPLICATIONS"/>
- <element name="APPLICATION_REGISTERED_ALREADY"/>
- <element name="UNSUPPORTED_VERSION"/>
- <element name="WRONG_LANGUAGE"/>
- <element name="DISALLOWED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- <param name="syncMsgVersion" type="SyncMsgVersion" mandatory="false">
- <description>See SyncMsgVersion</description>
- </param>
-
-<!-- deprecating
- <param name="autoActivateID" type="String" maxlength="16" mandatory="false">
- <description>Provides an id that the app may use on a subsequent registerAppInterface to allow for auto activation (for example after an ignition cycle).</description>
- </param>
--->
-
- <param name="language" type="Language" mandatory="false">
- <description>The currently active VR+TTS language on Sync. See "Language" for options.</description>
- </param>
-
- <param name="hmiDisplayLanguage" type="Language" mandatory="false">
- <description>The currently active display language on Sync. See "Language" for options.</description>
- </param>
-
- <param name="displayCapabilities" type="DisplayCapabilities" mandatory="false">
- <description>See DisplayCapabilities</description>
- </param>
-
- <param name="buttonCapabilities" type="ButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>See ButtonCapabilities</description >
- </param>
-
- <param name="softButtonCapabilities" type="SoftButtonCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>If returned, the platform supports on-screen SoftButtons.</description>
- <description>See SoftButtonCapabilities</description >
- </param>
-
- <param name="presetBankCapabilities" type="PresetBankCapabilities" mandatory="false">
- <description>If returned, the platform supports custom on-screen Presets.</description>
- <description>See PresetBankCapabilities</description >
- </param>
-
- <param name="hmiZoneCapabilities" type="HmiZoneCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
- <issue creator="rs">If not used yet => remove</issue>
- <description>See HmiZoneCapabilities</description>
- </param>
-
- <param name="speechCapabilities" type="SpeechCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>See SpeechCapabilities</description>
- </param>
-
- <param name="vrCapabilities" type="VrCapabilities" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>See VrCapabilities</description>
- </param>
-
- <param name="vehicleType" type="VehicleType" mandatory="false">
- <description>Specifies the vehicle's type. See VehicleType.</description>
- </param>
-
- </function>
-
- <function name="UnregisterAppInterface" functionID="UnregisterAppInterfaceID" messagetype="request">
- <description>Closes an interface from a mobile application.</description>
- <description>After unregisterAppInterface, no commands other than registerAppInterface will be accepted/executed.</description>
- <description>Will fail, if no registerAppInterface was completed successfully before.</description>
- </function>
-
- <function name="UnregisterAppInterface" functionID="UnregisterAppInterfaceID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- </function>
-
- <function name="SetGlobalProperties" functionID="SetGlobalPropertiesID" messagetype="request">
- <description>Allows setting global properties.</description>
-
- <param name="helpPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
- <description>The help prompt.</description>
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
-
- <param name="timeoutPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false" >
- <description>Help text for a wait timeout.</description>
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
-
- <param name="vrHelpTitle" type="String" maxlength="500" mandatory="false">
- <description>VR Help Title text.</description>
- <description>If omitted on supported displays, the default SYNC help title shall be used.</description>
- </param>
-
- <param name="vrHelp" type="VrHelpItem" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>VR Help Items.</description>
- <description>If omitted on supported displays, the default SYNC generated help items shall be used.</description>
- <description>If the list of VR Help Items contains nonsequential positions (e.g. [1,2,4]), the RPC shall be rejected.</description>
- </param>
-
- </function>
-
- <function name="SetGlobalProperties" functionID="SetGlobalPropertiesID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="DISALLOWED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- </function>
-
- <function name="ResetGlobalProperties" functionID="ResetGlobalPropertiesID" messagetype="request">
- <description>Allows resetting global properties.</description>
-
- <param name="properties" type="GlobalProperty" minsize="1" maxsize="100" array="true" >
- <description>Contains the names of all global properties (like timeoutPrompt) that should be unset. Resetting means, that they have the same value as at start up (default)</description>
- </param>
- </function>
-
- <function name="ResetGlobalProperties" functionID="ResetGlobalPropertiesID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="DISALLOWED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="AddCommand" functionID="AddCommandID" messagetype="request">
- <description>Adds a command to the in application menu.</description>
- <description>Either menuParams or vrCommands must be provided.</description>
-
- <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true">
- <description>unique ID of the command to add.</description>
- </param>
-
- <param name="menuParams" type="MenuParams" mandatory="false">
- <description>Optional sub value containing menu parameters</description>
- </param>
-
- <param name="vrCommands" type="String" minsize="1" maxsize="100" maxlength="99" array="true" mandatory="false">
- <description>An array of strings to be used as VR synonyms for this command.</description>
- <description>If this array is provided, it may not be empty.</description>
- </param>
-
- <param name="cmdIcon" type="Image" mandatory="false">
- <description>Image struct determining whether static or dynamic icon.</description>
- <description>If omitted on supported displays, no (or the default if applicable) icon shall be displayed.</description>
- </param>
-
- </function>
-
- <function name="AddCommand" functionID="AddCommandID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="DUPLICATE_NAME"/>
- <element name="DISALLOWED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- </function>
-
- <function name="DeleteCommand" functionID="DeleteCommandID" messagetype="request">
- <description>Deletes all commands from the in-application menu with the specified command id.</description>
-
- <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>ID of the command(s) to delete.</description>
- </param>
-
- </function>
-
- <function name="DeleteCommand" functionID="DeleteCommandID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="IN_USE"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- </function>
-
- <function name="AddSubMenu" functionID="AddSubMenuID" messagetype="request">
- <description>Adds a sub menu to the in-application menu.</description>
-
- <param name="menuID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>unique ID of the sub menu to add.</description>
- </param>
-
- <param name="position" type="Integer" minvalue="0" maxvalue="1000" defvalue="1000" mandatory="false">
- <description>Position within the items that are are at top level of the in application menu.</description>
- <description>0 will insert at the front.</description>
- <description>1 will insert at the second position.</description>
- <description>If position is greater or equal than the number of items on top level, the sub menu will be appended to the end.</description>
- <description>Position of any submenu will always be located before the return and exit options</description>
- <description>If this param was omitted the entry will be added at the end.</description>
- </param>
-
- <param name="menuName" maxlength="500" type="String">
- <description>Text to show in the menu for this sub menu.</description>
- </param>
- </function>
-
- <function name="AddSubMenu" functionID="AddSubMenuID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="DUPLICATE_NAME"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="DeleteSubMenu" functionID="DeleteSubMenuID" messagetype="request">
- <description>Deletes a submenu from the in-application menu.</description>
-
- <param name="menuID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>The "menuID" of the submenu to delete. (See addSubMenu.menuID)</description>
- </param>
-
- </function>
-
- <function name="DeleteSubMenu" functionID="DeleteSubMenuID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="IN_USE"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- </function>
-
- <function name="CreateInteractionChoiceSet" functionID="CreateInteractionChoiceSetID" messagetype="request">
- <description>creates interaction choice set to be used later by performInteraction</description>
-
- <param name="interactionChoiceSetID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>Unique ID used for this interaction choice set.</description>
- </param>
-
- <param name="choiceSet" type="Choice" minsize="1" maxsize="100" array="true" />
- </function>
-
- <function name="CreateInteractionChoiceSet" functionID="CreateInteractionChoiceSetID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="DUPLICATE_NAME"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="PerformInteraction" functionID="PerformInteractionID" messagetype="request">
- <description>Triggers an interaction (e.g. "Permit GPS?" - Yes, no, Always Allow).</description>
-
- <param name="initialText" type="String" maxlength="500" >
- <description>Text to be displayed first.</description>
- </param>
-
- <param name="initialPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true">
- <description>This is the intial prompt spoken to the user at the start of an interaction</description>
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
-
- <param name="interactionMode" type="InteractionMode">
- <description>See InteractionMode.</description>
- </param>
-
- <param name="interactionChoiceSetIDList" type="Integer" minsize="1" maxsize="100" minvalue="0" maxvalue="2000000000" array="true">
- <description>List of interaction choice set IDs to use with an interaction.</description>
- </param>
-
- <param name="helpPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>Help text. This is the spoken string when a user speaks "help" when the interaction is occuring.</description>
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
-
- <param name="timeoutPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>Timeout text. This text is spoken when a VR interaction times out.</description>
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
-
- <param name="timeout" type="Integer" minvalue="5000" maxvalue="100000" defvalue="10000" mandatory="false">
- <description>Timeout in milliseconds.</description>
- <description>If omitted a standard value of 10000 milliseconds is used.</description>
- </param>
-
- <param name="vrHelp" type="VrHelpItem" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>Ability to send suggested VR Help Items to display on-screen during Perform Interaction.</description>
- <description>If omitted on supported displays, the default SYNC generated list of suggested choices shall be displayed.</description>
- </param>
-
- </function>
-
- <function name="PerformInteraction" functionID="PerformInteractionID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="DUPLICATE_NAME"/>
- <element name="TIMED_OUT"/>
- <element name="ABORTED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- <param name="choiceID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="false">
- <description>ID of the choice that was selected in response to PerformInteraction.</description>
- </param>
-
- <param name="triggerSource" type="TriggerSource" mandatory="false">
- <description>See TriggerSource</description>
- </param>
-
- </function>
-
- <function name="DeleteInteractionChoiceSet" functionID="DeleteInteractionChoiceSetID" messagetype="request">
- <description>Deletes interaction choice set that has been created with "CreateInteractionChoiceSet".</description>
- <description>The interaction may only be deleted when not currently in use by a "performInteraction".</description>
-
- <param name="interactionChoiceSetID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>ID of the interaction choice set to delete.</description>
- </param>
- </function>
-
- <function name="DeleteInteractionChoiceSet" functionID="DeleteInteractionChoiceSetID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="INVALID_ID"/>
- <element name="IN_USE"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="Alert" functionID="AlertID" messagetype="request">
- <description>Shows an alert which typically consists of text-to-speech message and text on the display. At least either alertText1, alertText2 or TTSChunks need to be provided.</description>
-
- <param name="alertText1" type="String" maxlength="500" mandatory="false">
- <description>The first line of the alert text field</description>
- </param>
-
- <param name="alertText2" type="String" maxlength="500" mandatory="false">
- <description>The second line of the alert text field</description>
- </param>
-
- <param name="alertText3" type="String" maxlength="500" mandatory="false">
- <description>The optional third line of the alert text field</description>
- </param>
-
- <param name="ttsChunks" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false">
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
-
- <param name="duration" type="Integer" minvalue="3000" maxvalue="10000" defvalue="5000" mandatory="false">
- <description>Timeout in milliseconds.</description>
- <description>Typical timeouts are 3-5 seconds</description>
- <description>If omitted, timeout is set to 5s.</description>
- </param>
-
- <param name="playTone" type="Boolean" mandatory="false">
- <description>Defines if tone should be played. Tone is played before TTS.</description>
- <description>If omitted, no tone is played.</description>
- </param>
-
- <param name="softButtons" type="SoftButton" minsize="0" maxsize="4" array="true" mandatory="false">
- <description>App defined SoftButtons.</description>
- <description>If omitted on supported displays, the displayed alert shall not have any SoftButtons.</description>
- </param>
-
- </function>
-
- <function name="Alert" functionID="AlertID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="ABORTED"/>
- <element name="DISALLOWED"/>
- <element name="USER_DISALLOWED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- <param name="tryAgainTime" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>Amount of time (in seconds) that an app must wait before resending an alert.</description>
- <description>If provided, another system event or overlay currently has a higher priority than this alert.</description>
- <description>An app must not send an alert without waiting at least the amount of time dictated.</description>
- </param>
-
- </function>
-
- <function name="Show" functionID="ShowID" messagetype="request">
- <description>Updates the persistent display. Supported fields depend on display capabilities.</description>
-
- <param name="mainField1" type="String" maxlength="500" mandatory="false">
- <description>The text that should be displayed in a single or upper display line.</description>
- <description>If this text is not set, the text of mainField1 stays unchanged.</description>
- <description>If this text is empty "", the field will be cleared.</description>
- </param>
-
- <param name="mainField2" type="String" maxlength="500" mandatory="false">
- <description>The text that should be displayed on the second display line.</description>
- <description>If this text is not set, the text of mainField2 stays unchanged.</description>
- <description>If this text is empty "", the field will be cleared.</description>
- </param>
-
- <param name="mainField3" type="String" maxlength="500" mandatory="false">
- <description>The text that should be displayed on the second "page" first display line.</description>
- <description>If this text is not set, the text of mainField3 stays unchanged.</description>
- <description>If this text is empty "", the field will be cleared.</description>
- </param>
-
- <param name="mainField4" type="String" maxlength="500" mandatory="false">
- <description>The text that should be displayed on the second "page" second display line.</description>
- <description>If this text is not set, the text of mainField4 stays unchanged.</description>
- <description>If this text is empty "", the field will be cleared.</description>
- </param>
-
- <param name="alignment" type="TextAlignment" mandatory="false">
- <description>Specifies how mainField1 and mainField2 texts should be aligned on display.</description>
- <description>If omitted, texts will be centered</description>
- </param>
-
- <param name="statusBar" type="String" maxlength="500" mandatory="false">
- <description>Requires investigation regarding the nav display capabilities. Potentially lower lowerStatusBar, upperStatusBar, titleBar, etc.</description>
- </param>
-
- <param name="mediaClock" type="String" maxlength="500" mandatory="false">
- <description>Text value for MediaClock field. Has to be properly formatted by Mobile App according to Sync capabilities.</description>
- <description>If this text is set, any automatic media clock updates previously set with SetMediaClockTimer will be stopped.</description>
- <issue creator="rs">To be deprecated (Clearing should be done in SetMediaClockTimer)</issue>
- </param>
-
- <param name="mediaTrack" type="String" maxlength="500" mandatory="false">
- <description>The text that should be displayed in the track field.</description>
- <description>This field is only valid for media applications on NGN type ACMs.</description>
- <description>If this text is not set, the text of mediaTrack stays unchanged.</description>
- <description>If this text is empty "", the field will be cleared.</description>
- </param>
-
- <param name="graphic" type="Image" mandatory="false">
- <description>Image struct determining whether static or dynamic image to display in app.</description>
- <description>If omitted on supported displays, the displayed graphic shall not change.</description>
- </param>
-
- <param name="softButtons" type="SoftButton" minsize="0" maxsize="8" array="true" mandatory="false">
- <description>App defined SoftButtons.</description>
- <description>If omitted on supported displays, the currently displayed SoftButton values will not change.</description>
- </param>
-
- <param name="customPresets" type="String" maxlength="500" minsize="0" maxsize="6" array="true" mandatory="false">
- <description>App labeled on-screen presets (i.e. GEN2).</description>
- <description>If omitted on supported displays, the presets will be shown as not defined.</description>
- </param>
-
- </function>
-
- <function name="Show" functionID="ShowID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="DISALLOWED"/>
- <element name="ABORTED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="Speak" functionID="SpeakID" messagetype="request">
- <description>Speaks a text.</description>
-
- <param name="ttsChunks" type="TTSChunk" minsize="1" maxsize="100" array="true">
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
-
- </function>
-
- <function name="Speak" functionID="SpeakID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="DISALLOWED"/>
- <element name="ABORTED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- </function>
-
- <function name="SetMediaClockTimer" functionID="SetMediaClockTimerID" messagetype="request">
- <description>Sets the initial media clock value and automatic update method.</description>
-
- <param name="startTime" type="StartTime" mandatory="false">
- <description>See StartTime</description>
- <description>startTime must be provided for "COUNTUP" and "COUNTDOWN"</description>
- <description>startTime will be ignored for "PAUSE", "RESUME", and "CLEAR"</description>
- </param>
-
- <param name="updateMode" type="UpdateMode" mandatory="true">
- <description>Enumeration to control the media clock.</description>
- <description>In case of pause, resume, or clear, the start time value is ignored and shall be left out. For resume, the time continues with the same value as it was when paused.</description>
- </param>
- </function>
-
- <function name="SetMediaClockTimer" functionID="SetMediaClockTimerID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="IGNORED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="EncodedSyncPData" functionID="EncodedSyncPDataID" messagetype="request">
- <description>Allows encoded data in the form of SyncP packets to be sent to the SYNC module</description>
-
- <param name="data" type="String" maxlength="10000" minsize="1" maxsize="100" array="true" mandatory="true">
- <description>Contains base64 encoded string of SyncP packets.</description>
- <todo>What is the maxlength</todo>
- </param>
- </function>
-
- <function name="EncodedSyncPData" functionID="EncodedSyncPDataID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="DialNumber" functionID="DialNumberID" messagetype="request">
- <description>Dials a phone number and switches to phone application.</description>
-
- <param name="number" type="String" maxlength="500">
- <issue creator="rs">Should it really be a simple string?</issue>
- <description>Phone number is a string consisting of only the digits and "+", which can be up to 40 chars.</description>
- </param>
- </function>
-
- <function name="DialNumber" functionID="DialNumberID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="PerformAudioPassThru" functionID="PerformAudioPassThruID" messagetype="request">
- <description>Starts audio pass thru session </description>
- <param name="initialPrompt" type="TTSChunk" minsize="1" maxsize="100" array="true">
- <description>SYNC will speak this prompt before opening the audio pass thru session</description>
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- <description>The array must have at least one item</description>
- </param>
- <param name="audioPassThruDisplayText1" type="String" mandatory="false" maxlength="500">
- <description>First line of text displayed during audio capture.</description>
- </param>
- <param name="audioPassThruDisplayText2" type="String" mandatory="false" maxlength="500">
- <description>Second line of text displayed during audio capture.</description>
- </param>
- <param name="samplingRate" type="SamplingRate" mandatory="true">
- <description> This value shall be allowed at 8 khz or 16 or 22 or 44 khz.</description>
- </param>
- <param name="maxDuration" type="Integer" minvalue="0" maxvalue="1000000" mandatory="true">
- <description>The maximum duration of audio recording in milliseconds. </description>
- </param>
- <param name="bitsPerSample" type="AudioCaptureQuality" mandatory="true">
- <description>Specifies the quality the audio is recorded. Currently 8 bit or 16 bit.</description>
- </param>
- <param name="audioType" type="AudioType" mandatory="true">
- <description>Specifies the type of audio data being requested.</description>
- </param>
- </function>
-
- <function name="PerformAudioPassThru" functionID="PerformAudioPassThruID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="DISALLOWED"/>
- <element name="REJECTED"/>
- <element name="ABORTED"/>
- <element name="RETRY"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="EndAudioPassThru" functionID="EndAudioPassThruID" messagetype="request">
- <description>When this request is invoked, the audio capture stops.</description>
- </function>
-
- <function name="EndAudioPassThru" functionID="EndAudioPassThruID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="DISALLOWED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="SubscribeButton" functionID="SubscribeButtonID" messagetype="request">
- <description>Subscribes to built-in HMI buttons.</description>
- <description>The application will be notified by the OnButtonEvent and OnButtonPress.</description>
- <description>To unsubscribe the notifications, use unsubscribeButton.</description>
-
- <param name="buttonName" type="ButtonName">
- <description>Name of the button to subscribe.</description>
- </param>
- </function>
-
- <function name="SubscribeButton" functionID="SubscribeButtonID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="UNSUPPORTED_BUTTON" />
- <element name="IGNORED" />
- <element name="REJECTED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="UnsubscribeButton" functionID="UnsubscribeButtonID" messagetype="request">
- <description>Unsubscribes from built-in HMI buttons.</description>
-
- <param name="buttonName" type="ButtonName">
- <description>Name of the button to unsubscribe.</description>
- </param>
- </function>
-
- <function name="UnsubscribeButton" functionID="UnsubscribeButtonID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="UNSUPPORTED_BUTTON" />
- <element name="IGNORED" />
- <element name="REJECTED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="SubscribeVehicleData" functionID="SubscribeVehicleDataID" messagetype="request">
- <description>Subscribes for specific published data items.</description>
- <description>The data will be only sent if it has changed.</description>
- <description>The application will be notified by the onVehicleData notification whenever new data is available.</description>
- <description>To unsubscribe the notifications, use unsubscribe with the same subscriptionType.</description>
-
- <param name="dataType" type="VehicleDataType" array="true" mandatory="true" minsize="1" maxsize="100">
- <description>List of defined vehicle data elements.</description>
- <description>See VehicleDataType</description>
- </param>
-
- </function>
-
- <function name="SubscribeVehicleData" functionID="SubscribeVehicleDataID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="WARNINGS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="IGNORED" />
- <element name="DISALLOWED"/>
- <element name="USER_DISALLOWED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- <param name="dataResult" type="VehicleDataResult" mandatory="false" array="true" minsize="1" maxsize="100">
- <description>Permission status of vehicle data element.</description>
- </param>
-
- </function>
-
- <function name="UnsubscribeVehicleData" functionID="UnsubscribeVehicleDataID" messagetype="request">
- <description>This function is used to unsubscribe the notifications from the subscribeVehicleData function.</description>
-
- <param name="dataType" type="VehicleDataType" array="true" mandatory="true" minsize="1" maxsize="100">
- <description>Refers to the vehicle data elements specified by subscribeVehicleData.</description>
- <description>See VehicleDataType</description>
- </param>
- </function>
-
- <function name="UnsubscribeVehicleData" functionID="UnsubscribeVehicleDataID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="WARNINGS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="IGNORED" />
- <element name="DISALLOWED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- <param name="dataResult" type="VehicleDataResult" mandatory="false" array="true" minsize="1" maxsize="100">
- <description>Permission status of vehicle data element.</description>
- </param>
-
- </function>
-
- <function name="GetVehicleData" functionID="GetVehicleDataID" messagetype="request">
- <description>Non periodic vehicle data read request.</description>
-
- <param name="dataType" type="VehicleDataType">
- <description>Complex signals like "GPS" should not be transferred as separate notifications, but all together in one notification.</description>
- </param>
- </function>
-
- <function name="GetVehicleData" functionID="GetVehicleDataID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="VEHICLE_DATA_NOT_ALLOWED"/>
- <element name="VEHICLE_DATA_NOT_AVAILABLE"/>
- <element name="USER_DISALLOWED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- <param name="gps" type="GPSData" mandatory="false">
- <description>See GPSData</description>
- <description>Subscribable</description>
- </param>
- <param name="speed" type="Float" minvalue="-100" maxvalue="500" mandatory="false">
- <description>The vehicle speed in kilometers per hour</description>
- <description>Subscribable</description>
- </param>
- <param name="rpm" type="Integer" minvalue="0" maxvalue="20000" mandatory="false">
- <description>The number of revolutions per minute of the engine</description>
- <description>Subscribable</description>
- </param>
- <param name="fuelLevel" type="Float" minvalue="0" maxvalue="100" mandatory="false">
- <description>The fuel level</description>
- </param>
- <param name="avgFuelEconomy" type="Float" minvalue="0" maxvalue="7000" mandatory="false">
- <description>The average fuel economy in litres/100km</description>
- </param>
- <param name="batteryVoltage" type="Float" minvalue="0" maxvalue="26" mandatory="false">
- <description>The voltage in Volts</description>
- </param>
- <param name="externalTemperature" type="Float" minvalue="-40" maxvalue="100" mandatory="false">
- <description>The external temperature in degrees celsius.</description>
- </param>
- <param name="vin" type="String" maxlength="17" mandatory="false">
- <description>Vehicle identification number.</description>
- </param>
- <param name="prndl" type="PRNDL" mandatory="false">
- <description>See PRNDL.</description>
- <description>Subscribable</description>
- <issue creator="rs">Is this a good name? Wouldn't be selectedGear better?</issue>
- </param>
- <param name="tirePressure" type="TireStatus" mandatory="false">
- <description>See TireStatus.</description>
- <description>Subscribable</description>
- </param>
- <param name="batteryPackVoltage" type="Float" minvalue="-1000" maxvalue="1000" mandatory="false">
- <description>Battery pack voltage of hybrid and electrical vehicles in volts</description>
- </param>
- <param name="batteryPackCurrent" type="Float" minvalue="-1000" maxvalue="1000" mandatory="false">
- <description>Battery current of hybrid and electrical vehicles in amperes</description>
- </param>
- <param name="batteryPackTemperature" type="Integer" minvalue="-50" maxvalue="250" mandatory="false">
- <description>Battery temperature of hybrid and electrical vehicles in degrees celsius</description>
- </param>
- <param name="engineTorque" type="Integer" minvalue="-10000" maxvalue="55000" mandatory="false">
- <description>Engine torque in Nm</description>
- <description>Subscribable</description>
- </param>
- <param name="odometer" type="Integer" minvalue="0" maxvalue="2000000" mandatory="false">
- <description>Odometer in km</description>
- </param>
- <param name="tripOdometer" type="Integer" minvalue="0" maxvalue="2000000" mandatory="false">
- <description>Odometer of trip in km</description>
- <issue creator="rs">This mixes up "Trip A" and "Total distance during this trip". Shall we seperate these two instead</issue>
- </param>
- <param name="satRadioESN" type="String" maxlength="500" mandatory="false">
- <description>The hexadecimal ESN of the satellite radio (if supported).</description>
- </param>
-
- </function>
-
- <function name="ReadDID" functionID="ReadDIDID" messagetype="request">
- <description>Non periodic vehicle data read request.</description>
-
- <param name="ecuName" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
- <description>Name of ECU.</description>
- </param>
- <param name="didLocation" type="Integer" minvalue="0" maxvalue="65535" minsize="0" maxsize="1000" array="true" mandatory="true">
- <description>Get raw data from vehicle data DID location(s).</description>
- </param>
- <param name="encrypted" type="Boolean" mandatory="false">
- <description>If not provided, the default is equal to False"</description>
- <description>Indicates if the DID data requested should be returned as encrypted through an OnEncodedSYNCPData response.</description>
- <description>If set to true, the data will return instead through OnEncodedSYNCPData and be passed through the proxy to the designated server URL.</description>
- </param>
-
- </function>
-
- <function name="ReadDID" functionID="ReadDIDID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="DISALLOWED"/>
- <element name="ENCRYPTED"/>
- <element name="USER_DISALLOWED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- <param name="dataResult" type="VehicleDataResultCode" minsize="0" maxsize="1000" array="true" mandatory="false">
- <description>Permission status of data element.</description>
- </param>
-
- <param name="data" type="String" maxlength="5000" minsize="0" maxsize="1000" array="true" mandatory="false">
- <description>Raw DID-based data returned for requested element.</description>
- </param>
-
- </function>
-
- <function name="GetDTCs" functionID="GetDTCsID" messagetype="request">
- <description>Vehicle module diagnostic trouble code request.</description>
-
- <param name="ecuName" type="Integer" minvalue="0" maxvalue="65535" mandatory="true">
- <description>Name of ECU.</description>
- </param>
-
- <param name="encrypted" type="Boolean" defvalue="false" mandatory="false">
- <description>If not provided, the default is equal to False"</description>
- <description>Indicates if the DTC data requested should be returned as encrypted through an OnEncodedSYNCPData response.</description>
- <description>If set to true, the data will return instead through OnEncodedSYNCPData and be passed through the proxy to the designated server URL.</description>
- </param>
-
- </function>
-
- <function name="GetDTCs" functionID="GetDTCsID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="DISALLOWED"/>
- <element name="USER_DISALLOWED"/>
- <element name="ENCRYPTED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- <param name="dtcList" type="DTC" mandatory="false" array="true" minsize="1" maxsize="100">
- <description>Array of all reported DTCs on module.</description>
- </param>
-
- </function>
-
- <function name="ScrollableMessage" functionID="ScrollableMessageID" messagetype="request">
- <description>Creates a full screen overlay containing a large block of formatted text that can be scrolled with up to 8 SoftButtons defined</description>
- <param name="scrollableMessageBody" type="String" maxlength="500">
- <description>Body of text that can include newlines and tabs.</description>
- </param>
- <param name="timeout" type="Integer" minvalue="0" maxvalue="65535" defvalue="30000" mandatory="false">
- <description>App defined timeout.</description>
- </param>
- <param name="softButtons" type="SoftButton" minsize="0" maxsize="8" array="true" mandatory="false">
- <description>App defined SoftButtons.</description>
- <description>If omitted on supported displays, only the system defined "Close" SoftButton will be displayed.</description>
- </param>
- </function>
-
- <function name="ScrollableMessage" functionID="ScrollableMessageID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="CHAR_LIMIT_EXCEEDED"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="DISALLOWED"/>
- <element name="REJECTED"/>
- <element name="ABORTED"/>
- </param>
- </function>
-
- <function name="Slider" functionID="SliderID" messagetype="request">
- <description>Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider.</description>
- <param name="numTicks" type="Integer" minvalue="2" maxvalue="26" mandatory="true">
- <description>Number of selectable items on a horizontal axis</description>
- </param>
- <param name="position" type="Integer" minvalue="1" maxvalue="26" madatory="true">
- <description>Initial position of slider control (cannot exceed numTicks)</description>
- </param>
- <param name="sliderHeader" type="String" maxlength="500" mandatory="true">
- <description>Text header to display</description>
- </param>
- <param name="sliderFooter" type="String" maxlength="500" minsize="1" maxsize="26" array="true" mandatory="false">
- <description>Text footer to display (meant to display min/max threshold descriptors).</description>
- <description>For a static text footer, only one footer string shall be provided in the array.</description>
- <description>For a dynamic text footer, the number of footer text string in the array must match the numTicks value.</description>
- <description>For a dynamic text footer, text array string should correlate with potential slider position index.</description>
- <description>If omitted on supported displays, no footer text shall be displayed.</description>
- </param>
- <param name="timeout" type="Integer" minvalue="0" maxvalue="65535" defvalue="10000">
- <description>App defined timeout.</description>
- </param>
- </function>
-
- <function name="Slider" functionID="SliderID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SAVED"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="DISALLOWED"/>
- <element name="REJECTED"/>
- <element name="ABORTED"/>
- </param>
- <param name="sliderPosition" type="Integer" minvalue="1" maxvalue="26">
- <description>Current slider value returned when saved or canceled</description>
- </param>
- </function>
-
- <function name="ShowConstantTBT" functionID="ShowConstantTBTID" messagetype="request">
- <param name="navigationText1" type="String" maxlength="500" mandatory="false">
- </param>
- <param name="navigationText2" type="String" maxlength="500" mandatory="false">
- </param>
- <param name="eta" type="String" maxlength="500" mandatory="false">
- </param>
- <param name="totalDistance" type="String" maxlength="500" mandatory="false">
- </param>
- <param name="turnIcon" type="Image">
- </param>
- <param name="distanceToManeuver" type="Float" minvalue="0" maxvalue="1000000000">
- <description>Distance till next maneuver (starting from) from previous maneuver.</description>
- <description>Used to calculate progress bar.</description>
- </param>
- <param name="distanceToManeuverScale" type="Float" minvalue="0" maxvalue="1000000000">
- <description>Fraction of distance till next maneuver (starting from when AlertManeuver is triggered).</description>
- <description>Used to calculate progress bar.</description>
- </param>
- <param name="maneuverComplete" type="Boolean" mandatory="false">
- <description>If and when a maneuver has completed while an AlertManeuver is active, the app must send this value set to TRUE in order to clear the AlertManeuver overlay.</description>
- <description>If omitted the value will be assumed as FALSE.</description>
- </param>
- <param name="softButtons" type="SoftButton" minsize="0" maxsize="3" array="true">
- <description>Three dynamic SoftButtons available (second SoftButton is fixed to "Turns").</description>
- <description>If omitted on supported displays, the currently displayed SoftButton values will not change.</description>
- </param>
- </function>
-
- <function name="ShowConstantTBT" functionID="ShowConstantTBTID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="DISALLOWED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="AlertManeuver" functionID="AlertManeuverID" messagetype="request">
- <param name="ttsChunks" type="TTSChunk" minsize="1" maxsize="100" array="true">
- <description>An array of text chunks of type TTSChunk. See TTSChunk</description>
- </param>
- <param name="softButtons" type="SoftButton" minsize="0" maxsize="3" array="true">
- <description>If omitted on supported displays, only the system defined "Close" SoftButton shall be displayed.</description>
- </param>
- </function>
-
- <function name="AlertManeuver" functionID="AlertManeuverID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="IGNORED"/>
- <element name="DISALLOWED"/>
- <element name="ABORTED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="UpdateTurnList" functionID="UpdateTurnListID" messagetype="request">
- <param name="turnList" type="Turn" minsize="1" maxsize="100" array="true">
- </param>
- <param name="softButtons" type="SoftButton" minsize="0" maxsize="1" array="true">
- <description>If omitted on supported displays, app-defined SoftButton will be left blank.</description>
- </param>
- </function>
-
- <function name="UpdateTurnList" functionID="UpdateTurnListID" messagetype="response">
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="DISALLOWED"/>
- </param>
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="ChangeRegistration" functionID="ChangeRegistrationID" messagetype="request">
- <param name="language" type="Language" mandatory="true">
- <description>Requested SYNC voice engine (VR+TTS) language registration</description>
- </param>
- <param name="hmiDisplayLanguage" type="Language" mandatory="true">
- <description>Request display language registration</description>
- </param>
- </function>
-
- <function name="ChangeRegistration" functionID="ChangeRegistrationID" messagetype="response">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="DISALLOWED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- </function>
-
- <function name="GenericResponse" functionID="GenericResponseID" messagetype="response">
- <description>Generic Response is sent, when the name of a received msg cannot be retrieved. Only used in case of an error.</description>
- <description>Currently, only resultCode INVALID_DATA is used.</description>
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="INVALID_DATA"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
-<!--
- <function name="GetFile" messagetype="request">
- <param name="syncFileName" type="String" >
- <description>File source on sync.</description>
- </param>
-
- </function>
--->
-<!--
- <function name="GetFile" messagetype="response">
- <description>Response is sent, when the file data was copied (success case). Or when an error occured.</description>
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- <element name="FILE_NOT_FOUND"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
--->
-
- <function name="PutFile" functionID="PutFileID" messagetype="request" platform="gen2">
- <description>Used to push a binary data onto the SYNC module from a mobile device, such as icons and album art</description>
- <description>Not supported on first generation SYNC vehicles. </description>
-
- <param name="syncFileName" type="String" maxlength="500" mandatory="true">
- <description>File reference name.</description>
- </param>
-
- <param name="fileType" type="FileType">
- <description>Selected file type.</description>
- </param>
-
- <param name="persistentFile" type="Boolean" defvalue="false" mandatory="false">
- <description>Indicates if the file is meant to persist between sessions / ignition cycles.</description>
- <description>If set to TRUE, then the system will aim to persist this file through session / cycles.</description>
- <description>While files with this designation will have priority over others, they are subject to deletion by the system at any time.</description>
- <description>In the event of automatic deletion by the system, the app will receive a rejection and have to resend the file.</description>
- <description>If omitted, the value will be set to false.</description>
- </param>
-
- <param name="fileData" type="String" mandatory="false" >
- <description>Binary data.</description>
- </param>
- </function>
-
- <function name="PutFile" functionID="PutFileID" messagetype="response" platform="gen2">
- <description>Response is sent, when the file data was copied (success case). Or when an error occured.</description>
- <description>Not supported on First generation SYNC vehicles. </description>
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- </param>
-
- <param name="spaceAvailable" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>Provides the total local space available on SYNC for the registered app.</description>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="DeleteFile" functionID="DeleteFileID" messagetype="request" platform="gen2">
- <description>Used to delete a file resident on the SYNC module in the app's local cache.</description>
- <description>Not supported on first generation SYNC vehicles. </description>
-
- <param name="syncFileName" type="String" maxlength="500" mandatory="true">
- <description>File reference name.</description>
- </param>
-
- </function>
-
- <function name="DeleteFile" functionID="DeleteFileID" messagetype="response" platform="gen2">
- <description>Response is sent, when the file data was deleted (success case). Or when an error occured.</description>
- <description>Not supported on First generation SYNC vehicles. </description>
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- </param>
-
- <param name="spaceAvailable" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>Provides the total local space available on SYNC for the registered app.</description>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="ListFiles" functionID="ListFilesID" messagetype="request" platform="gen2">
- <description>Requests the current list of resident filenames for the registered app</description>
- <description>Not supported on first generation SYNC vehicles. </description>
- </function>
-
- <function name="ListFiles" functionID="ListFilesID" messagetype="response" platform="gen2">
- <description>Returns the current list of resident filenames for the registered app along with the current space available</description>
- <description>Not supported on First generation SYNC vehicles. </description>
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- </param>
-
- <param name="filenames" type="String" maxlength="500" minsize="0" maxsize="1000" array="true" mandatory="false">
- <description>An array of all filenames resident on SYNC for the given registered app.</description>
- <description>If omitted, then no files currently reside on the system.</description>
- </param>
-
- <param name="spaceAvailable" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>Provides the total local space available on SYNC for the registered app.</description>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
- </function>
-
- <function name="SetAppIcon" functionID="SetAppIconID" messagetype="request" platform="gen2">
- <description>Used to set existing local file on SYNC as the app's icon</description>
- <description>Not supported on first generation SYNC vehicles. </description>
-
- <param name="syncFileName" type="String" maxlength="500" mandatory="true">
- <description>File reference name.</description>
- </param>
-
- </function>
-
- <function name="SetAppIcon" functionID="SetAppIconID" messagetype="response" platform="gen2">
- <description>Response is sent, when the file data was copied (success case). Or when an error occured.</description>
- <description>Not supported on First generation SYNC vehicles. </description>
- <description>Response is sent, when the file data was copied (success case). Or when an error occured.</description>
- <description>Not supported on First generation SYNC vehicles. </description>
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- </function>
-
- <function name="SetDisplayLayout" functionID="SetDisplayLayoutID" messagetype="request" platform="gen2">
- <description>Used to set an alternate display layout.</description>
- <description>If not sent, default screen for given platform will be shown.</description>
-
- <param name="displayLayout" type="String" mandatory="true">
- <description>Predefined or dynamically created screen layout.</description>
- <description>Currently only predefined screen layouts are defined.</description>
- <description>Predefined layouts include:</description>
- <description> "ONSCREEN_PRESETS"</description>
- <description> Custom screen containing app-defined onscreen presets. Currently defined for GEN2.</description>
- </param>
-
- </function>
-
- <function name="SetDisplayLayout" functionID="SetDisplayLayoutID" messagetype="response" platform="gen2">
-
- <param name="success" type="Boolean" platform="documentation">
- <description>true, if successful</description>
- <description>false, if failed</description>
- </param>
-
- <param name="resultCode" type="Result" platform="documentation">
- <description>See Result</description>
- <element name="SUCCESS"/>
- <element name="INVALID_DATA"/>
- <element name="OUT_OF_MEMORY"/>
- <element name="TOO_MANY_PENDING_REQUESTS"/>
- <element name="APPLICATION_NOT_REGISTERED"/>
- <element name="GENERIC_ERROR"/>
- <element name="REJECTED"/>
- </param>
-
- <param name="info" type="String" maxlength="1000" mandatory="false" platform="documentation">
- <description>Provides additional human readable info regarding the result.</description>
- </param>
-
- </function>
-
- <!-- Notifications -->
-
- <function name="OnHMIStatus" functionID="OnHMIStatusID" messagetype="notification">
- <param name="hmiLevel" type="HMILevel">
- <description>See HMILevel</description>
- </param>
-
- <param name="audioStreamingState" type="AudioStreamingState">
- <description>See AudioStreamingState</description>
- </param>
-
- <param name="systemContext" type="SystemContext">
- <description>See SystemContext</description>
- </param>
- </function>
-
- <function name="OnAppInterfaceUnregistered" functionID="OnAppInterfaceUnregisteredID" messagetype="notification">
- <param name="reason" type="AppInterfaceUnregisteredReason">
- <description>See AppInterfaceUnregisteredReason</description>
- </param>
- </function>
-
- <function name="OnButtonEvent" functionID="OnButtonEventID" messagetype="notification">
- <description>Notifies application of UP/DOWN events for buttons to which the application is subscribed.</description>
- <param name="buttonName" type="ButtonName"/>
- <param name="buttonEventMode" type="ButtonEventMode">
- <description>Indicates whether this is an UP or DOWN event.</description>
- </param>
- <param name="customButtonID" type="Integer" minvalue="0" maxvalue="65536">
- <description>If ButtonName is “CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButton ID)</description>
- </param>
- </function>
-
- <function name="OnButtonPress" functionID="OnButtonPressID" messagetype="notification">
- <description>Notifies application of LONG/SHORT press events for buttons to which the application is subscribed.</description>
- <param name="buttonName" type="ButtonName"/>
- <param name="buttonPressMode" type="ButtonPressMode">
- <description>Indicates whether this is a LONG or SHORT button press event.</description>
- </param>
- <param name="customButtonID" type="Integer" minvalue="0" maxvalue="65536">
- <description>If ButtonName is “CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButton ID)</description>
- </param>
- </function>
-
- <function name="OnVehicleData" functionID="OnVehicleDataID" messagetype="notification">
- <description>Callback for the periodic and non periodic vehicle data read function.</description>
- <param name="gps" type="GPSData" mandatory="false">
- <description>See GPSData</description>
- <description>Subscribable</description>
- </param>
- <param name="speed" type="Float" minvalue="-100" maxvalue="500" mandatory="false">
- <description>The vehicle speed in kilometers per hour</description>
- <description>Subscribable</description>
- </param>
- <param name="rpm" type="Integer" minvalue="0" maxvalue="20000" mandatory="false">
- <description>The number of revolutions per minute of the engine</description>
- <description>Subscribable</description>
- </param>
- <param name="fuelLevel" type="Float" minvalue="0" maxvalue="100" mandatory="false">
- <description>The fuel level</description>
- </param>
- <param name="avgFuelEconomy" type="Float" minvalue="0" maxvalue="7000" mandatory="false">
- <description>The average fuel economy in litres/100km</description>
- </param>
- <param name="batteryVoltage" type="Float" minvalue="0" maxvalue="26" mandatory="false">
- <description>The voltage in Volts</description>
- </param>
- <param name="externalTemperature" type="Float" minvalue="-40" maxvalue="100" mandatory="false">
- <description>The external temperature in degrees celsius.</description>
- </param>
- <param name="vin" type="String" maxlength="17" mandatory="false">
- <description>Vehicle identification number.</description>
- </param>
- <param name="prndl" type="PRNDL" mandatory="false">
- <description>See PRNDL.</description>
- <description>Subscribable</description>
- <issue creator="rs">Is this a good name? Wouldn't be selectedGear better?</issue>
- </param>
- <param name="tirePressure" type="TireStatus" mandatory="false">
- <description>See TireStatus.</description>
- <description>Subscribable</description>
- </param>
- <param name="batteryPackVoltage" type="Float" minvalue="-1000" maxvalue="1000" mandatory="false">
- <description>Battery pack voltage of hybrid and electrical vehicles in volts</description>
- </param>
- <param name="batteryPackCurrent" type="Float" minvalue="-1000" maxvalue="1000" mandatory="false">
- <description>Battery current of hybrid and electrical vehicles in amperes</description>
- </param>
- <param name="batteryPackTemperature" type="Integer" minvalue="-50" maxvalue="250" mandatory="false">
- <description>Battery temperature of hybrid and electrical vehicles in degrees celsius</description>
- </param>
- <param name="engineTorque" type="Integer" minvalue="-10000" maxvalue="55000" mandatory="false">
- <description>Engine torque in Nm</description>
- <description>Subscribable</description>
- </param>
- <param name="odometer" type="Integer" minvalue="0" maxvalue="2000000" mandatory="false">
- <description>Odometer in km</description>
- </param>
- <param name="tripOdometer" type="Integer" minvalue="0" maxvalue="2000000" mandatory="false">
- <description>Odometer of trip in km</description>
- <issue creator="rs">This mixes up "Trip A" and "Total distance during this trip". Shall we seperate these two instead</issue>
- </param>
- <param name="genericbinary" type="String" maxlength="500" mandatory="false">
- <description>The hex value string is a string of hexadecimal chars, for example "FE12" or "1234ABCD".</description>
- </param>
- </function>
-
- <function name="OnCommand" functionID="OnCommandID" messagetype="notification">
- <param name="cmdID" type="Integer" minvalue="0" maxvalue="2000000000">
- <description>Command ID, which is related to a specific menu entry.</description>
- </param>
-
- <param name="triggerSource" type="TriggerSource">
- <description>See TriggerSource</description>
- </param>
- </function>
-
- <function name="OnEncodedSyncPData" functionID="OnEncodedSyncPDataID" messagetype="notification">
- <description>Callback including encoded data of any SyncP packets that SYNC needs to send back to the mobile device.</description>
- <param name="data" type="String" maxlength="10000" minsize="1" maxsize="100" mandatory="true" array="true">
- <description>Contains base64 encoded string of SyncP packets.</description>
- </param>
- <param name="URL" type="String" maxlength="1000" mandatory="false">
- <description>If blank, the SyncP data shall be forwarded to the app.</description>
- <description>If not blank, the SyncP data shall be forwarded to the provided URL.</description>
- </param>
- <param name="Timeout" type="Integer" minvalue="-2000000000" maxvalue="2000000000" mandatory="false">
- <description>If blank, the SyncP data shall be forwarded to the app.</description>
- <description>If not blank, the SyncP data shall be forwarded with the provided timeout in seconds.</description>
- </param>
- </function>
-
- <function name="OnTBTClientState" functionID="OnTBTClientStateID" messagetype="notification" >
- <description>Provides applications with notifications specific to the current TBT client status on the module</description>
- <param name="state" type="TBTState">
- <description>Current State of TBT client</description>
- </param>
- </function>
-
- <function name="OnDriverDistraction" functionID="OnDriverDistractionID" messagetype="notification" >
- <description>Provides driver distraction state to mobile applications</description>
- <param name="state" type="DriverDistractionState">
- <description>Current State of Driver Distraction</description>
- </param>
- </function>
-
- <function name="OnPermissionsChange" functionID="OnPermissionsChangeID" messagetype="notification" >
- <description>Provides update to app of which policy-table-enabled functions are available</description>
- <param name="permissionItem" type="PermissionItem" minsize="1" maxsize="100" array="true">
- <description>Change in permissions for a given set of RPCs.</description>
- </param>
- </function>
-
- <function name="OnAudioPassThru" functionID="OnAudioPassThruID" messagetype="notification">
-<!-- TODO: REMOVE
- <param name="audioPacket" type="DataType">
- <description>Binary packet of APT data.</description>
- </param>
--->
- </function>
-
- <function name="OnLanguageChange" functionID="OnLanguageChangeID" messagetype="notification">
- <param name="language" type="Language">
- <description>Current SYNC voice engine (VR+TTS) language</description>
- </param>
- <param name="hmiDisplayLanguage" type="Language">
- <description>Current display language</description>
- </param>
- </function>
-
-
- <struct name="HMIApplication">
- <description>Data type containing information about application needed by HMI.</description>
- <param name="appName" type="String" maxlength="100"/>
- <param name="ngnMediaScreenAppName" type="String" maxlength="100" mandatory="false"/>
- <param name="icon" type="String" mandatory="false"/>
- <param name="deviceName" type="String"/>
- <param name="vrSynonyms" type="String" array="true" minsize="1" maxsize="100" maxlength="40" mandatory="false"/>
- <param name="appId" type="Integer"/>
- <param name="languageDesired" type="Language"/>
- <param name="hmiDisplayLanguageDesired" type="Language"/>
- <param name="ttsName" type="TTSChunk" minsize="1" maxsize="100" array="true" mandatory="false"/>
- <param name="isMediaApplication" type="Boolean"/>
- <param name="appType" type="AppType" minsize="1" maxsize="100" array="true" mandatory="false"/>
-</struct>
-<enum name="DeactivateReason">
- <description>Enum of reasons of user navigating from application used by HMI.</description>
- <element name="AUDIO">
- <description>Navigated to audio(radio, etc)</description>
- </element>
- <element name="PHONECALL">
- <description>Navigated to make a call.</description>
- </element>
- <element name="NAVIGATIONMAP">
- <description>Navigated to navigation screen.</description>
- </element>
- <element name="PHONEMENU">
- <description>Navigated to phone menu.</description>
- </element>
- <element name="SYNCSETTINGS">
- <description>Navigated to settings menu.</description>
- </element>
- <element name="GENERAL">
- <description>Other screens navigation apart from other mobile app.</description>
- </element>
-</enum>
-
- </interface>
diff --git a/SDL_Core/src/components/JSONHandler/src/JSONHandler.cpp b/SDL_Core/src/components/JSONHandler/src/JSONHandler.cpp
deleted file mode 100644
index 9fc11422b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/JSONHandler.cpp
+++ /dev/null
@@ -1,704 +0,0 @@
-/**
-* \file JSONHandler.cpp
-* \brief JSONHandler class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <stdio.h>
-#include <algorithm>
-#include <string.h>
-#include <pthread.h>
-#include <signal.h>
-#include <json/reader.h>
-#include <json/writer.h>
-#include "JSONHandler/JSONHandler.h"
-#include "JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-namespace
-{
- enum ProtocolVersion
- {
- INVALID_PROTOCOL = 0,
- V1 = 1,
- V2 = 2
- };
-
- // TODO(AK): Remove this after new code generation.
- class InvalidResponseFactory
- {
- public:
- typedef std::map<std::string, NsSmartDeviceLinkRPC::Marshaller::Methods> Responses;
-
- typedef NsSmartDeviceLinkRPCV2::FunctionID::FunctionIDInternal FunctionID;
- typedef NsSmartDeviceLinkRPC::Marshaller::Methods Methods;
-
- static NsSmartDeviceLinkRPC::SDLRPCResponse* getResponse(FunctionID functionId,
- int correlationId)
- {
- NsSmartDeviceLinkRPC::SDLRPCResponse* response = NULL;
-
- switch (functionId)
- {
- case FunctionID::AlertID:
- response = new NsSmartDeviceLinkRPCV2::Alert_response();
- break;
- case FunctionID::DeleteFileID:
- response = new NsSmartDeviceLinkRPCV2::DeleteFile_response();
- break;
- case FunctionID::GetDTCsID:
- response = new NsSmartDeviceLinkRPCV2::GetDTCs_response();
- break;
- case FunctionID::GetVehicleDataID:
- response = new NsSmartDeviceLinkRPCV2::GetVehicleData_response();
- break;
- case FunctionID::ListFilesID:
- response = new NsSmartDeviceLinkRPCV2::ListFiles_response();
- break;
- case FunctionID::PerformInteractionID:
- response = new NsSmartDeviceLinkRPCV2::PerformInteraction_response();
- break;
- case FunctionID::PutFileID:
- response = new NsSmartDeviceLinkRPCV2::PutFile_response();
- break;
- case FunctionID::ReadDIDID:
- response = new NsSmartDeviceLinkRPCV2::ReadDID_response();
- break;
- case FunctionID::RegisterAppInterfaceID:
- response = new NsSmartDeviceLinkRPCV2::RegisterAppInterface_response();
- break;
- case FunctionID::SliderID:
- response = new NsSmartDeviceLinkRPCV2::Slider_response();
- break;
- case FunctionID::SubscribeVehicleDataID:
- response = new NsSmartDeviceLinkRPCV2::SubscribeVehicleData_response();
- break;
- case FunctionID::UnsubscribeVehicleDataID:
- response = new NsSmartDeviceLinkRPCV2::UnsubscribeVehicleData_response();
- break;
- default:
- response = new NsSmartDeviceLinkRPC::SDLRPCResponse(V2, functionId);
- break;
- }
-
- response->setMethodId(static_cast<FunctionID>(functionId));
- response->setCorrelationID(correlationId);
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- return response;
- }
-
- static NsSmartDeviceLinkRPC::SDLRPCResponse* getResponse(const std::string& jsonString)
- {
- Responses responses;
- responses.insert(std::make_pair("PerformInteraction", Methods::METHOD_PERFORMINTERACTION_RESPONSE));
- responses.insert(std::make_pair("RegisterAppInterface", Methods::METHOD_REGISTERAPPINTERFACE_RESPONSE));
-
- std::string methodName;
- int correlationID = -1;
-
- try
- {
- Json::Reader reader;
- Json::Value json;
- if (!reader.parse(jsonString, json, false) ||
- !json.isObject() ||
- !json.isMember("request") ||
- !json["request"].isObject())
- {
- return NULL;
- }
-
- const Json::Value& jsonResponse = json["request"];
-
- if (!jsonResponse.isMember("name") || !jsonResponse["name"].isString())
- {
- return NULL;
- }
- methodName = jsonResponse["name"].asString();
-
- if (!jsonResponse.isMember("correlationID") || !jsonResponse["correlationID"].isInt())
- {
- return NULL;
- }
- correlationID = jsonResponse["correlationID"].asInt();
- }
- catch (...)
- {
- return NULL;
- }
-
- Methods methodId = Methods::METHOD_INVALID;
- Responses::const_iterator item = responses.find(methodName);
- if (item != responses.end())
- {
- methodId = item->second;
- }
-
- NsSmartDeviceLinkRPC::SDLRPCResponse* response = NULL;
- switch (methodId)
- {
- case Methods::METHOD_PERFORMINTERACTION_RESPONSE:
- response = new NsSmartDeviceLinkRPC::PerformInteraction_response();
- break;
- case Methods::METHOD_REGISTERAPPINTERFACE_RESPONSE:
- response = new NsSmartDeviceLinkRPC::RegisterAppInterface_response();
- break;
- default:
- response = new NsSmartDeviceLinkRPC::SDLRPCResponse(V1, methodId);
- break;
- }
-
- response->set_success(false);
- response->set_resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_DATA);
- response->setCorrelationID(correlationID);
- return response;
- }
-
- private:
- InvalidResponseFactory();
- ~InvalidResponseFactory();
- };
-}
-
-
-log4cplus::Logger JSONHandler::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("JSONHandler"));
-
-JSONHandler::JSONHandler(NsProtocolHandler::ProtocolHandler* protocolHandler) :
- mProtocolHandler(protocolHandler)
-{
- pthread_create(&mWaitForIncomingMessagesThread, NULL, &JSONHandler::waitForIncomingMessages, (void*)this);
- pthread_create(&mWaitForOutgoingMessagesThread, NULL, &JSONHandler::waitForOutgoingMessages, (void*)this);
-}
-
-JSONHandler::~JSONHandler()
-{
- pthread_kill(mWaitForIncomingMessagesThread, 1);
- pthread_kill(mWaitForOutgoingMessagesThread, 1);
- mProtocolHandler = 0;
- mMessagesObserver = 0;
-}
-
-/*Methods for IRPCMessagesObserver*/
-void JSONHandler::setRPCMessagesObserver(IRPCMessagesObserver* messagesObserver)
-{
- if (!messagesObserver)
- {
- LOG4CPLUS_ERROR(mLogger, "Invalid (null) pointer to IRPCMessagesObserver.");
- }
- mMessagesObserver = messagesObserver;
-}
-
-void JSONHandler::sendRPCMessage(const NsSmartDeviceLinkRPC::SDLRPCMessage* message, int connectionKey)
-{
- LOG4CPLUS_INFO(mLogger, "An outgoing message has been received");
- if (message)
- {
- mOutgoingMessages.push(std::make_pair(connectionKey, message));
- }
-}
-/*End of methods for IRPCMessagesObserver*/
-void JSONHandler::setProtocolHandler(NsProtocolHandler::ProtocolHandler* protocolHandler)
-{
- if (!protocolHandler)
- {
- LOG4CPLUS_ERROR(mLogger, "Invalid (null) pointer to ProtocolHandler.");
- return;
- }
- mProtocolHandler = protocolHandler;
-}
-
-void JSONHandler::onDataReceivedCallback(const NsProtocolHandler::SmartDeviceLinkRawMessage* message)
-{
- if (!message)
- {
- LOG4CPLUS_ERROR(mLogger, "Received invalid message from ProtocolHandler.");
- return;
- }
-
- LOG4CPLUS_INFO(mLogger, "Received message from mobile App: " << message->getData()
- << " of size " << message->getDataSize());
-
- mIncomingMessages.push(message);
-}
-/*end of methods from IProtocolObserver*/
-
-std::string JSONHandler::clearEmptySpaces(const std::string& input)
-{
- std::string str = input;
- str.erase(std::remove(str.begin(), str.end(), '\n'), str.end());
- return str;
-}
-
-void* JSONHandler::waitForIncomingMessages(void* params)
-{
- JSONHandler* handler = static_cast<JSONHandler*>(params);
- if (!handler)
- {
- pthread_exit(0);
- }
-
- while (1)
- {
- while (! handler -> mIncomingMessages.empty())
- {
- LOG4CPLUS_INFO(mLogger, "Incoming mobile message received.");
- const NsProtocolHandler::SmartDeviceLinkRawMessage* message = handler -> mIncomingMessages.pop();
-
- NsSmartDeviceLinkRPC::SDLRPCMessage* currentMessage = 0;
-
- LOG4CPLUS_INFO_EXT(mLogger, "Message of protocol version " << message -> getProtocolVersion());
-
- if (message -> getProtocolVersion() == 1)
- {
- currentMessage = handler -> handleIncomingMessageProtocolV1(message);
- }
- else if (message -> getProtocolVersion() == 2)
- {
- currentMessage = handler -> handleIncomingMessageProtocolV2(message);
- }
- else
- {
- LOG4CPLUS_WARN(mLogger, "Message of wrong protocol version received.");
- continue;
- }
-
- if (!currentMessage)
- {
- LOG4CPLUS_ERROR(mLogger, "Invalid mobile message received.");
- continue;
- }
-
- currentMessage -> setProtocolVersion(message -> getProtocolVersion());
-
- if (!handler -> mMessagesObserver)
- {
- LOG4CPLUS_ERROR(mLogger, "Cannot handle mobile message: MessageObserver doesn't exist.");
- pthread_exit(0);
- }
-
- handler -> mMessagesObserver -> onMessageReceivedCallback(currentMessage, message -> getConnectionKey());
-
- LOG4CPLUS_INFO(mLogger, "Incoming mobile message handled.");
- }
- handler -> mIncomingMessages.wait();
- }
-}
-
-NsSmartDeviceLinkRPC::SDLRPCMessage* JSONHandler::handleIncomingMessageProtocolV1(
- const NsProtocolHandler::SmartDeviceLinkRawMessage* message)
-{
- std::string jsonMessage = std::string((const char*)message->getData(), message->getDataSize());
-
- if (jsonMessage.length() == 0)
- {
- LOG4CPLUS_ERROR(mLogger, "Received invalid json packet.");
- return 0;
- }
-
- std::string jsonCleanMessage = clearEmptySpaces(jsonMessage);
-
- NsSmartDeviceLinkRPC::SDLRPCMessage* messageObject = NsSmartDeviceLinkRPC::Marshaller::fromString(jsonCleanMessage);
- LOG4CPLUS_INFO_EXT(mLogger, "Received a message from mobile side: "
- << std::endl << NsSmartDeviceLinkRPC::Marshaller::toJSON(messageObject));
-
- if (!messageObject)
- {
- LOG4CPLUS_WARN(mLogger, "Invalid mobile message received.");
-
- NsSmartDeviceLinkRPC::SDLRPCResponse* response = InvalidResponseFactory::getResponse(jsonMessage);
- if (!response)
- {
- LOG4CPLUS_ERROR(mLogger, "new NsSmartDeviceLinkRPC::ALRPCMessage failed...");
- return NULL;
- }
-
- sendRPCMessage(response, message->getConnectionKey());
- return NULL;
- }
-
- return messageObject;
-}
-
-NsSmartDeviceLinkRPC::SDLRPCMessage* JSONHandler::handleIncomingMessageProtocolV2(
- const NsProtocolHandler::SmartDeviceLinkRawMessage* message)
-{
- unsigned char* receivedData = message->getData();
- unsigned char offset = 0;
- unsigned char firstByte = receivedData[offset++];
-
- int rpcType = -1;
- unsigned char rpcTypeFlag = firstByte >> 4u;
- switch (rpcTypeFlag)
- {
- case RPC_REQUEST:
- rpcType = 0;
- break;
- case RPC_RESPONSE:
- rpcType = 1;
- break;
- case RPC_NOTIFICATION:
- rpcType = 2;
- break;
- }
- LOG4CPLUS_INFO_EXT(mLogger, "RPC Type of the message is " << rpcType << " from flag " << rpcTypeFlag);
-
- unsigned int functionId = firstByte >> 8u;
-
- functionId <<= 24u;
- functionId |= receivedData[offset++] << 16u;
- functionId |= receivedData[offset++] << 8u;
- functionId |= receivedData[offset++];
-
- LOG4CPLUS_INFO_EXT(mLogger, "FunctionId is " << functionId);
-
- unsigned int correlationId = receivedData[offset++] << 24u;
- correlationId |= receivedData[offset++] << 16u;
- correlationId |= receivedData[offset++] << 8u;
- correlationId |= receivedData[offset++];
-
- LOG4CPLUS_INFO_EXT(mLogger, "\t\t\tCorrelation id " << correlationId);
-
- unsigned int jsonSize = receivedData[offset++] << 24u;
- jsonSize |= receivedData[offset++] << 16u;
- jsonSize |= receivedData[offset++] << 8u;
- jsonSize |= receivedData[offset++];
-
- LOG4CPLUS_INFO_EXT(mLogger, "Json size is " << jsonSize);
-
- if (jsonSize > message->getDataSize())
- {
- LOG4CPLUS_ERROR(mLogger, "Received invalid json packet header.");
- return 0;
- }
-
- std::string jsonMessage = std::string((const char*)receivedData + offset, jsonSize);
- if (jsonMessage.length() == 0)
- {
- LOG4CPLUS_ERROR(mLogger, "Received invalid json packet.");
- return 0;
- }
-
- std::string jsonCleanMessage = clearEmptySpaces(jsonMessage);
-
- Json::Reader reader;
- Json::Value json;
-
- if (!reader.parse(jsonCleanMessage, json, false))
- {
- LOG4CPLUS_ERROR(mLogger, "Received invalid json string.");
- return 0;
- }
- //TODO (PV): temporary solution, will be fixed after changes to codegeneration
- LOG4CPLUS_INFO_EXT(mLogger, "Received from mobile side: " << std::endl << json);
-
- Json::Value tempSolution;
- tempSolution["parameters"] = json;
-
- LOG4CPLUS_INFO_EXT(mLogger, "Added params: " << std::endl << tempSolution);
-
- /*NsSmartDeviceLinkRPC::SDLRPCMessage * messageObject = NsSmartDeviceLinkRPCV2::Marshaller::fromString(
- jsonCleanMessage,
- static_cast<NsSmartDeviceLinkRPCV2::FunctionID::FunctionIDInternal>(functionId),
- static_cast<NsSmartDeviceLinkRPCV2::messageType::messageTypeInternal>(rpcType) );*/
-
- NsSmartDeviceLinkRPC::SDLRPCMessage* messageObject = NsSmartDeviceLinkRPCV2::Marshaller::fromJSON(
- tempSolution,
- static_cast<NsSmartDeviceLinkRPCV2::FunctionID::FunctionIDInternal>(functionId),
- static_cast<NsSmartDeviceLinkRPCV2::messageType::messageTypeInternal>(rpcType));
-
- //LOG4CPLUS_INFO_EXT(mLogger, "Received a message from mobile side: " <<
- // std::endl << NsSmartDeviceLinkRPCV2::Marshaller::toJSON(
- // messageObject, static_cast<NsSmartDeviceLinkRPCV2::FunctionID::FunctionIDInternal>(functionId),
- // static_cast<NsSmartDeviceLinkRPCV2::messageType::messageTypeInternal>(rpcType)));
-
- if (message -> getDataSize() > offset + jsonSize)
- {
- // unsigned int binarySize = message->getDataSize() - offset - jsonSize;
- std::vector<unsigned char> binaryData(receivedData + offset + jsonSize,
- receivedData + message->getDataSize());
- LOG4CPLUS_INFO_EXT(mLogger, "Binary data is present in message.");
- messageObject -> setBinaryData(binaryData);
- }
-
- if (!messageObject)
- {
- LOG4CPLUS_WARN(mLogger, "Invalid mobile message received.");
- NsSmartDeviceLinkRPC::SDLRPCResponse* response = InvalidResponseFactory::getResponse(
- static_cast<NsSmartDeviceLinkRPCV2::FunctionID::FunctionIDInternal>(functionId), correlationId);
- if (!response)
- {
- LOG4CPLUS_ERROR(mLogger, "new NsSmartDeviceLinkRPC::ALRPCMessage failed...");
- return NULL;
- }
-
- sendRPCMessage(response, message->getConnectionKey());
- return NULL;
- }
- else
- {
- messageObject->setMethodId(functionId);
- }
-
- if (RPC_REQUEST == rpcTypeFlag || RPC_RESPONSE == rpcTypeFlag)
- {
- messageObject->setCorrelationID(correlationId);
- }
-
- return messageObject;
-}
-
-void* JSONHandler::waitForOutgoingMessages(void* params)
-{
- JSONHandler* handler = static_cast<JSONHandler*>(params);
- if (!handler)
- {
- pthread_exit(0);
- }
- while (1)
- {
- while (! handler -> mOutgoingMessages.empty())
- {
- std::pair<int, const NsSmartDeviceLinkRPC::SDLRPCMessage*> messagePair = handler -> mOutgoingMessages.pop();
- const NsSmartDeviceLinkRPC::SDLRPCMessage* message = messagePair.second;
- LOG4CPLUS_INFO(mLogger, "Outgoing mobile message " << message->getMethodId() << " received.");
-
- NsProtocolHandler::SmartDeviceLinkRawMessage* msgToProtocolHandler = 0;
- if (message -> getProtocolVersion() == 1)
- {
- msgToProtocolHandler = handler -> handleOutgoingMessageProtocolV1(messagePair.first, message);
- }
- else if (message -> getProtocolVersion() == 2)
- {
- LOG4CPLUS_INFO_EXT(mLogger, "method id "
- << static_cast<NsSmartDeviceLinkRPCV2::FunctionID::FunctionIDInternal>(message -> getMethodId())
- << "; message type "
- << static_cast<NsSmartDeviceLinkRPCV2::messageType::messageTypeInternal>(message -> getMessageType()));
-
- msgToProtocolHandler = handler -> handleOutgoingMessageProtocolV2(messagePair.first, message);
- }
-
- if (!msgToProtocolHandler)
- {
- LOG4CPLUS_ERROR(mLogger, "Faile to create message string.");
- continue;
- }
-
- if (!handler -> mProtocolHandler)
- {
- LOG4CPLUS_ERROR(mLogger, "Cannot handle mobile message: ProtocolHandler doesn't exist.");
- pthread_exit(0);
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, "Sending to ProtocolHandler: " << msgToProtocolHandler->getData()
- << " of size " << msgToProtocolHandler->getDataSize());
- handler -> mProtocolHandler -> sendData(msgToProtocolHandler);
-
- delete message;
- LOG4CPLUS_INFO(mLogger, "Outgoing mobile message handled.");
- }
- handler -> mOutgoingMessages.wait();
- }
-}
-
-NsProtocolHandler::SmartDeviceLinkRawMessage* JSONHandler::handleOutgoingMessageProtocolV1(int connectionKey,
- const NsSmartDeviceLinkRPC::SDLRPCMessage* message)
-{
- LOG4CPLUS_INFO_EXT(mLogger, "handling a message " << message->getMethodId() << " protocol 1");
- LOG4CPLUS_INFO_EXT(mLogger, "message text: " << std::endl << NsSmartDeviceLinkRPC::Marshaller::toJSON(message));
- std::string messageString = NsSmartDeviceLinkRPC::Marshaller::toString(message);
-
- if (messageString.length() == 0)
- {
- LOG4CPLUS_ERROR(mLogger, "Failed to serialize ALRPCMessage object version 1.");
- return 0;
- }
-
- unsigned char* rawMessage = new unsigned char[messageString.length() + 1];
- memcpy(rawMessage, messageString.c_str(), messageString.length() + 1);
-
- NsProtocolHandler::SmartDeviceLinkRawMessage* msgToProtocolHandler = new NsProtocolHandler::SmartDeviceLinkRawMessage(
- connectionKey,
- 1,
- rawMessage,
- messageString.length() + 1);
-
- return msgToProtocolHandler;
-}
-
-NsProtocolHandler::SmartDeviceLinkRawMessage* JSONHandler::handleOutgoingMessageProtocolV2(int connectionKey,
- const NsSmartDeviceLinkRPC::SDLRPCMessage* message)
-{
- LOG4CPLUS_INFO_EXT(mLogger, "handling a message " << message->getMethodId() << " protocol 2");
- Json::Value json = NsSmartDeviceLinkRPCV2::Marshaller::toJSON(message,
- static_cast<NsSmartDeviceLinkRPCV2::FunctionID::FunctionIDInternal>(message -> getMethodId()),
- static_cast<NsSmartDeviceLinkRPCV2::messageType::messageTypeInternal>(message -> getMessageType()));
-
- if (json.isNull())
- {
- if (NsSmartDeviceLinkRPCV2::FunctionID::FunctionIDInternal::OnAudioPassThruID == message->getMethodId())
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Handling OnAudioPassThru message with 0 length!");
- // akara
- // Workaround to have no JSON string in OnAudioPassThru notification
- // This notification contains audio data only.
- const uint MAX_HEADER_SIZE = 12;
- unsigned int jsonSize = 0;
- unsigned int binarySize = 0;
- if (message->getBinaryData())
- {
- binarySize = message->getBinaryData()->size();
- }
- unsigned char* dataForSending = new unsigned char[MAX_HEADER_SIZE + jsonSize + binarySize];
- unsigned char offset = 0;
-
- unsigned char rpcTypeFlag = RPC_NOTIFICATION;
-
- unsigned int functionId = message->getMethodId();
- dataForSending[offset++] = ((rpcTypeFlag << 4) & 0xF0) | (functionId >> 24);
- dataForSending[offset++] = functionId >> 16;
- dataForSending[offset++] = functionId >> 8;
- dataForSending[offset++] = functionId;
-
- unsigned int correlationId = message->getCorrelationID();
- LOG4CPLUS_INFO_EXT(mLogger, "\t\t\tCorrelation ID is " << correlationId);
- dataForSending[offset++] = correlationId >> 24;
- dataForSending[offset++] = correlationId >> 16;
- dataForSending[offset++] = correlationId >> 8;
- dataForSending[offset++] = correlationId;
-
- dataForSending[offset++] = jsonSize >> 24;
- dataForSending[offset++] = jsonSize >> 16;
- dataForSending[offset++] = jsonSize >> 8;
- dataForSending[offset++] = jsonSize;
-
- if (message->getBinaryData())
- {
- const std::vector<unsigned char>& binaryData = *(message->getBinaryData());
- unsigned char* currentPointer = dataForSending + offset + jsonSize;
- for (unsigned int i = 0; i < binarySize; ++i)
- {
- currentPointer[i] = binaryData[i];
- }
- }
-
- NsProtocolHandler::SmartDeviceLinkRawMessage* msgToProtocolHandler = new NsProtocolHandler::SmartDeviceLinkRawMessage(
- connectionKey,
- 2,
- dataForSending,
- MAX_HEADER_SIZE + jsonSize + binarySize);
-
- return msgToProtocolHandler;
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Failed to serialize ALRPCMessage object version 2.");
- return 0;
- }
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, "Message to be sent to mobile app \n" << json["parameters"]);
-
- //TODO (PV): temporary solution, will be fixed after changes to codegeneration
- Json::FastWriter writer;
- std::string messageString = writer.write(json["parameters"]);/*NsSmartDeviceLinkRPCV2::Marshaller::toString( message,
- static_cast<NsSmartDeviceLinkRPCV2::FunctionID::FunctionIDInternal>(message -> getMethodId()),
- static_cast<NsSmartDeviceLinkRPCV2::messageType::messageTypeInternal>(message -> getMessageType()) );*/
-
- //LOG4CPLUS_INFO_EXT(mLogger, "message text: " << std::endl << json );
- if (messageString.length() == 0)
- {
- LOG4CPLUS_ERROR(mLogger, "Failed to serialize ALRPCMessage object version 2.");
- return 0;
- }
-
- const uint MAX_HEADER_SIZE = 12;
- unsigned int jsonSize = messageString.length() + 1;
- unsigned int binarySize = 0;
- if (message->getBinaryData())
- {
- binarySize = message->getBinaryData()->size();
- }
- unsigned char* dataForSending = new unsigned char[MAX_HEADER_SIZE + jsonSize + binarySize];
- unsigned char offset = 0;
-
- unsigned char rpcTypeFlag = 0;
- switch (message->getMessageType())
- {
- case 0:
- rpcTypeFlag = RPC_REQUEST;
- break;
- case 1:
- rpcTypeFlag = RPC_RESPONSE;
- break;
- case 2:
- rpcTypeFlag = RPC_NOTIFICATION;
- break;
- }
-
- unsigned int functionId = message->getMethodId();
- dataForSending[offset++] = ((rpcTypeFlag << 4) & 0xF0) | (functionId >> 24);
- dataForSending[offset++] = functionId >> 16;
- dataForSending[offset++] = functionId >> 8;
- dataForSending[offset++] = functionId;
-
- unsigned int correlationId = message->getCorrelationID();
- LOG4CPLUS_INFO_EXT(mLogger, "\t\t\tCorrelation ID is " << correlationId);
- dataForSending[offset++] = correlationId >> 24;
- dataForSending[offset++] = correlationId >> 16;
- dataForSending[offset++] = correlationId >> 8;
- dataForSending[offset++] = correlationId;
-
- dataForSending[offset++] = jsonSize >> 24;
- dataForSending[offset++] = jsonSize >> 16;
- dataForSending[offset++] = jsonSize >> 8;
- dataForSending[offset++] = jsonSize;
-
- memcpy(dataForSending + offset, messageString.c_str(), jsonSize);
-
- if (message->getBinaryData())
- {
- const std::vector<unsigned char>& binaryData = *(message->getBinaryData());
- unsigned char* currentPointer = dataForSending + offset + jsonSize;
- for (unsigned int i = 0; i < binarySize; ++i)
- {
- currentPointer[i] = binaryData[i];
- }
- }
-
- NsProtocolHandler::SmartDeviceLinkRawMessage* msgToProtocolHandler = new NsProtocolHandler::SmartDeviceLinkRawMessage(
- connectionKey,
- 2,
- dataForSending,
- MAX_HEADER_SIZE + jsonSize + binarySize);
-
- return msgToProtocolHandler;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/JSONRPC2Handler.cpp b/SDL_Core/src/components/JSONHandler/src/JSONRPC2Handler.cpp
deleted file mode 100644
index 47a0de19a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/JSONRPC2Handler.cpp
+++ /dev/null
@@ -1,287 +0,0 @@
-/**
-* \file JSONRPC2Handler.cpp
-* \brief JSONRPC2Handler class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "JSONHandler/JSONRPC2Handler.h"
-#include "JSONHandler/RPC2Objects/Marshaller.h"
-
-log4cplus::Logger JSONRPC2Handler::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("JSONRPC2Handler"));
-
-JSONRPC2Handler::JSONRPC2Handler( const std::string& address, uint16_t port ) :
-NsMessageBroker::CMessageBrokerController( address, port, "BasicCommunication" )
-{
- pthread_create( &mWaitForCommandsFromHMI, NULL, &JSONRPC2Handler::waitForCommandsFromHMI, (void *)this );
- pthread_create( &mWaitForRequestsToHMI, NULL, &JSONRPC2Handler::waitForRequestsToHMI, (void *)this );
- pthread_create( &mWaitForResponsesToHMI, NULL, &JSONRPC2Handler::waitForResponsesToHMI, (void *)this );
- pthread_create( &mWaitForNotificationsToHMI, NULL, &JSONRPC2Handler::waitForNotificationsToHMI, (void *)this );
- pthread_create( &mWaitForResponsesFromHMI, NULL, &JSONRPC2Handler::waitForResponsesFromHMI, (void *)this );
-}
-
-JSONRPC2Handler::~JSONRPC2Handler()
-{
-}
-
-void JSONRPC2Handler::processResponse(std::string method, Json::Value& root)
-{
- LOG4CPLUS_INFO_EXT( mLogger, "Received response from RPCBus" );
- ResponseContainer response;
- response.methodName = method;
- response.response = root;
- mResponsesFromHMI.push( response );
-}
-
-void JSONRPC2Handler::processRequest(Json::Value& root)
-{
- LOG4CPLUS_INFO_EXT(mLogger, "Received request from RPCBus");
- mCommandsFromHMI.push( root );
-}
-
-void JSONRPC2Handler::processNotification(Json::Value& root)
-{
- LOG4CPLUS_INFO_EXT( mLogger, "Received notification from RPCBus." );
- mCommandsFromHMI.push( root );
-}
-
-void JSONRPC2Handler::subscribeToNotifications()
-{
- subscribeTo( "Buttons.OnButtonEvent" );
- subscribeTo( "Buttons.OnButtonPress" );
- subscribeTo( "UI.OnCommand" );
- subscribeTo( "VR.OnCommand" );
- subscribeTo( "UI.OnReady" );
- subscribeTo( "UI.OnDriverDistraction" );
- subscribeTo( "UI.OnSystemContext" );
- subscribeTo( "UI.OnAppActivated" );
- subscribeTo( "BasicCommunication.OnAppDeactivated" );
- subscribeTo( "UI.OnDeviceChosen");
- subscribeTo( "UI.OnLanguageChange" );
- subscribeTo( "VR.OnLanguageChange" );
- subscribeTo( "TTS.OnLanguageChange" );
- subscribeTo( "VehicleInfo.OnVehicleData" );
- subscribeTo( "UI.OnTBTClientState" );
-}
-
-void JSONRPC2Handler::setRPC2CommandsObserver(
- IRPC2CommandsObserver * commandsObserver )
-{
- mCommandsObserver = commandsObserver;
-}
-
-void JSONRPC2Handler::sendNotification( const NsRPC2Communication::RPC2Notification * command )
-{
- mNotificationsToHMI.push( command );
-}
-
-void JSONRPC2Handler::sendResponse( const NsRPC2Communication::RPC2Response * command )
-{
- mResponsesToHMI.push( command );
-}
-
-void JSONRPC2Handler::sendRequest( const NsRPC2Communication::RPC2Request * command )
-{
- mRequestsToHMI.push( command );
-}
-
-void * JSONRPC2Handler::waitForCommandsFromHMI( void * params )
-{
- JSONRPC2Handler * handler = static_cast<JSONRPC2Handler*>( params );
- if ( !handler )
- {
- pthread_exit( 0 );
- }
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForCommandsFromHMI");
- while ( 1 )
- {
- while ( !handler -> mCommandsFromHMI.empty() )
- {
- Json::Value jsonMessage = handler -> mCommandsFromHMI.pop();
- LOG4CPLUS_INFO_EXT(mLogger, "JSONRPC2Handler::waitForCommandsFromHMI: received command: " << jsonMessage);
- NsRPC2Communication::RPC2Command * currentCommand = NsRPC2Communication::Marshaller::fromJSON( jsonMessage );
-
- if ( !currentCommand )
- {
- LOG4CPLUS_ERROR( mLogger, "Invalid RPCBus message received." );
- continue;
- }
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForCommandsFromHMI: handle command" );
-
- if ( !handler -> mCommandsObserver )
- {
- LOG4CPLUS_ERROR( mLogger, "Cannot handle RPCBus message: CommandsObserver doesn't exist." );
- pthread_exit( 0 );
- }
- handler -> mCommandsObserver -> onCommandReceivedCallback( currentCommand );
- }
- handler -> mCommandsFromHMI.wait();
- }
-
- return 0;
-}
-
-void * JSONRPC2Handler::waitForResponsesFromHMI( void * params )
-{
- JSONRPC2Handler * handler = static_cast<JSONRPC2Handler*>( params );
- if ( !handler )
- {
- pthread_exit( 0 );
- }
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForResponsesFromHMI\n");
- while ( 1 )
- {
- while ( !handler -> mResponsesFromHMI.empty() )
- {
- ResponseContainer response = handler -> mResponsesFromHMI.pop();
- LOG4CPLUS_INFO_EXT(mLogger, "JSONRPC2Handler::waitForResponsesFromHMI: received response to a method " << response.methodName << std::endl << response.response );
- NsRPC2Communication::RPC2Command * currentCommand = NsRPC2Communication::Marshaller::fromJSON( response.response );
-
- if ( !currentCommand )
- {
- LOG4CPLUS_ERROR( mLogger, "Invalid RPCBus message received." );
- continue;
- }
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForResponsesFromHMI: handle response");
- if ( !handler -> mCommandsObserver )
- {
- LOG4CPLUS_ERROR( mLogger, "Cannot handle RPCBus message: CommandsObserver doesn't exist." );
- pthread_exit( 0 );
- }
- handler -> mCommandsObserver -> onCommandReceivedCallback( currentCommand );
- }
- handler -> mResponsesFromHMI.wait();
- }
-
- return 0;
-}
-
-void * JSONRPC2Handler::waitForResponsesToHMI( void * params )
-{
- JSONRPC2Handler * handler = static_cast<JSONRPC2Handler*>( params );
- if ( !handler )
- {
- pthread_exit( 0 );
- }
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForResponsesToHMI");
- while ( 1 )
- {
- while ( !handler -> mResponsesToHMI.empty() )
- {
- const NsRPC2Communication::RPC2Response * command = handler -> mResponsesToHMI.pop();
-
- Json::Value commandJson = NsRPC2Communication::Marshaller::toJSON( command );
- LOG4CPLUS_INFO_EXT(mLogger, "JSONRPC2Handler::waitForResponsesToHMI: received response " << command->getId() << commandJson);
-
- if ( commandJson.isNull() )
- {
- LOG4CPLUS_ERROR( mLogger, "Invalid RPCBus message received." );
- continue;
- }
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForResponsesToHMI: processed command" );
-
- //handler -> prepareMessage( commandJson );
- handler -> sendJsonMessage( commandJson );
-
- delete command;
- }
- handler -> mResponsesToHMI.wait();
- }
-
- return 0;
-}
-
-void * JSONRPC2Handler::waitForRequestsToHMI( void * params )
-{
- JSONRPC2Handler * handler = static_cast<JSONRPC2Handler*>( params );
- if ( !handler )
- {
- pthread_exit( 0 );
- }
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForRequestsToHMI");
- while ( 1 )
- {
- while ( !handler -> mRequestsToHMI.empty() )
- {
- const NsRPC2Communication::RPC2Command * command = handler -> mRequestsToHMI.pop();
- Json::Value commandJson = NsRPC2Communication::Marshaller::toJSON( command );
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForRequestsToHMI: received request " << commandJson);
-
- if ( commandJson.isNull() )
- {
- LOG4CPLUS_ERROR( mLogger, "Invalid RPCBus message received." );
- continue;
- }
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForRequestsToHMI: processed command" );
-
- //handler -> prepareMessage( commandJson );
- handler -> sendJsonMessage( commandJson );
-
- delete command;
- }
- handler -> mRequestsToHMI.wait();
- }
-
- return 0;
-}
-
-void * JSONRPC2Handler::waitForNotificationsToHMI( void * params )
-{
- JSONRPC2Handler * handler = static_cast<JSONRPC2Handler*>( params );
- if ( !handler )
- {
- pthread_exit( 0 );
- }
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForNotificationsToHMI");
- while ( 1 )
- {
- while ( !handler -> mNotificationsToHMI.empty() )
- {
- const NsRPC2Communication::RPC2Command * command = handler -> mNotificationsToHMI.pop();
- Json::Value commandJson = NsRPC2Communication::Marshaller::toJSON( command );
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForNotificationsToHMI: received notification " << commandJson);
-
- if ( commandJson.isNull() )
- {
- LOG4CPLUS_ERROR( mLogger, "Invalid RPCBus message received." );
- continue;
- }
- LOG4CPLUS_INFO(mLogger, "JSONRPC2Handler::waitForNotificationsToHMI: processed command" );
-
- handler -> sendJsonMessage( commandJson );
-
- delete command;
- }
- handler -> mNotificationsToHMI.wait();
- }
-
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2Command.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2Command.cpp
deleted file mode 100644
index baf9dab25..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2Command.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
-* \file RPC2Command.cpp
-* \brief RPC2Command class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "JSONHandler/RPC2Command.h"
-
-using namespace NsRPC2Communication;
-
-RPC2Command::RPC2Command( ) :
-mCommandType(UNDEFINED)
-, mMethod(-1)
-{
-}
-
-RPC2Command::RPC2Command( CommandType type ) :
-mCommandType(type)
-, mMethod(-1)
-{
-}
-
-RPC2Command::RPC2Command( CommandType type, int method ) :
-mCommandType(type)
-, mMethod( method )
-{}
-
-RPC2Command::~RPC2Command()
-{
-}
-
-
-void RPC2Command::setCommandType( CommandType commandType )
-{
- mCommandType=commandType;
-}
-
-RPC2Command::CommandType RPC2Command::getCommandType( ) const
-{
- return mCommandType;
-}
-
-int RPC2Command::getMethod() const
-{
- return mMethod;
-}
-
-void RPC2Command::setMethod(int method)
-{
- mMethod=method;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2Error.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2Error.cpp
deleted file mode 100644
index 7b389430c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2Error.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
-* \file RPC2Error.cpp
-* \brief RPC2Error class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "JSONHandler/RPC2Error.h"
-
-using namespace NsRPC2Communication;
-
-RPC2Error::RPC2Error(void) :
-RPC2Command(ERROR)
-, mId(0)
-, mCode(0)
-, mMessage("")
-{
-}
-
-RPC2Error::RPC2Error(int code, const std::string& message,int id ) :
-RPC2Command(ERROR)
-, mId(id)
-, mCode(code)
-, mMessage(message)
-{
-}
-
-RPC2Error::RPC2Error(int code, const std::string& message) :
-RPC2Command(ERROR)
-, mId(0)
-, mCode(code)
-, mMessage(message)
-{
-}
-
-RPC2Error::~RPC2Error()
-{
-}
-
-RPC2Error::RPC2Error(const RPC2Error& r) :
-RPC2Command(ERROR)
-{
- *this=r;
-}
-
-void RPC2Error::setId(int id)
-{
- mId=id;
-}
-
-void RPC2Error::resetId(void)
-{
- mId=0;
-}
-
-int RPC2Error::getId() const
-{
- return mId;
-}
-
-int RPC2Error::getErrorCode() const
-{
- return mCode;
-}
-
-void RPC2Error::setErrorCode(int code)
-{
- mCode=code;
-}
-
-
-const std::string& RPC2Error::getErrorString() const
-{
- return mMessage;
-}
-
-void RPC2Error::setErrorString(const std::string& message)
-{
- mMessage=message;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ErrorMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ErrorMarshaller.cpp
deleted file mode 100644
index 7fc718b73..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ErrorMarshaller.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-/**
-* \file RPC2ErrorMarshaller.cpp
-* \brief RPC2ErrorMarshaller class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include <cstdlib>
-#include <cstring>
-#include "JSONHandler/RPC2ErrorMarshaller.h"
-
-using namespace NsRPC2Communication;
-
-
-bool RPC2ErrorMarshaller::fromString(const std::string& s,RPC2Error& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string RPC2ErrorMarshaller::toString(const RPC2Error& e)
-{
- Json::FastWriter writer;
- return writer.write(toJSON(e));
-}
-
-
-Json::Value RPC2ErrorMarshaller::toJSON(const RPC2Error& e)
-{
- Json::Value json(Json::objectValue);
-
- json["jsonrpc"]=Json::Value("2.0");
-
- json["id"]= e.mId ? Json::Value(e.mId) : Json::Value(Json::nullValue);
-
- json["error"]=Json::Value(Json::objectValue);
-
- json["error"]["code"]=Json::Value(e.mCode);
- json["error"]["message"]=Json::Value(e.mMessage);
-
- return json;
-}
-
-
-bool RPC2ErrorMarshaller::fromJSON(const Json::Value& json,RPC2Error& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("error")) return false;
- Json::Value js=json["error"];
-
- if(json.isMember("id") && !json["id"].isNull())
- {
- if(!json["id"].isInt())
- return false;
- c.mId=json["id"].asInt();
- }
- else
- c.mId=0;
-
- if(!js.isObject()) return false;
- if(!js.isMember("code")) return false;
- if(!js.isMember("message")) return false;
- if(!js["code"].isInt()) return false;
- if(!js["message"].isString()) return false;
-
- c.mCode=js["code"].asInt();
- c.mMessage=js["message"].asString();
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2Notification.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2Notification.cpp
deleted file mode 100644
index 8bb7e9553..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2Notification.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
-* \file RPC2Notification.cpp
-* \brief RPC2Notification class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "JSONHandler/RPC2Notification.h"
-
-using namespace NsRPC2Communication;
-
-RPC2Notification::RPC2Notification(void) :
-RPC2Command(NOTIFICATION)
-{
-}
-
-RPC2Notification::RPC2Notification(int method) :
-RPC2Command(NOTIFICATION, method)
-{
-}
-
-
-RPC2Notification::~RPC2Notification()
-{
-}
-
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.cpp
deleted file mode 100644
index 3b1b7aff0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.cpp
+++ /dev/null
@@ -1,1304 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/ActivateApp.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/ActivateAppResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/GetAppList.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/GetAppListResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/GetDeviceList.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/GetDeviceListResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/OnAppDeactivated.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/OnAppRegistered.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/OnAppUnregistered.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/SendData.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/BasicCommunication/SendDataResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/Buttons/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/Buttons/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/Buttons/OnButtonEvent.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/Buttons/OnButtonPress.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/ChangeRegistration.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/ChangeRegistrationResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetLanguage.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetLanguageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetSupportedLanguages.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/GetSupportedLanguagesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/OnLanguageChange.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/Speak.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/TTS/SpeakResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AddCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AddCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AddSubMenu.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AddSubMenuResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/Alert.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AlertResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AlertManeuver.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/AlertManeuverResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ChangeRegistration.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ChangeRegistrationResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/CreateInteractionChoiceSet.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteInteractionChoiceSet.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteSubMenu.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DeleteSubMenuResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DialNumber.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/DialNumberResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/EndAudioPassThru.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/EndAudioPassThruResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetLanguage.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetLanguageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetSupportedLanguages.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/GetSupportedLanguagesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnDeviceChosen.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnDriverDistraction.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnLanguageChange.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnReady.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnSystemContext.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/OnTBTClientState.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/PerformAudioPassThru.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/PerformAudioPassThruResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/PerformInteraction.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/PerformInteractionResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ResetGlobalProperties.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ResetGlobalPropertiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ScrollableMessage.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ScrollableMessageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetAppIcon.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetAppIconResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetDisplayLayout.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetDisplayLayoutResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetGlobalProperties.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetGlobalPropertiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetMediaClockTimer.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SetMediaClockTimerResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/Show.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ShowResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ShowConstantTBT.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/ShowConstantTBTResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/Slider.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/SliderResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/UpdateTurnList.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/UI/UpdateTurnListResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/AddCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/AddCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/ChangeRegistration.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/ChangeRegistrationResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/DeleteCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/DeleteCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetLanguage.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetLanguageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetSupportedLanguages.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/GetSupportedLanguagesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/OnCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VR/OnLanguageChange.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetDTCs.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetDTCsResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetVehicleData.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetVehicleType.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/OnVehicleData.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/ReadDID.h"
-#include "../src/../include/JSONHandler/RPC2Objects//NsRPC2Communication/VehicleInfo/ReadDIDResponse.h"
-
-#include "../src/../src/RPC2ObjectsImpl/Marshaller.inc"
-
-/*
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication;
-
-
-const Marshaller::Methods Marshaller::getIndex(const char* s)
-{
- if(!s)
- return METHOD_INVALID; const struct localHash* p=Marshaller_intHash::getPointer(s,strlen(s));
- return p ? static_cast<Methods>(p->idx) : METHOD_INVALID;
-}
-
-RPC2Command* Marshaller::fromString(const std::string& s)
-{
- RPC2Command* rv=0;
- try
- {
- Json::Reader reader;
- Json::Value json;
-
- if(!reader.parse(s,json,false)) return 0; if(!(rv=fromJSON(json))) return 0;
- }
- catch(...)
- {
- return 0;
- }
- return rv;
-}
-
-std::string Marshaller::toString(const RPC2Command* msg)
-{
- if(!msg) return "";
-
- Json::Value json=toJSON(msg);
-
- if(json.isNull()) return "";
-
- Json::FastWriter writer;
- std::string rv;
- return writer.write(json);
-}
-
-RPC2Command* Marshaller::fromJSON(const Json::Value& json)
-{
- if(!json.isObject()) return 0;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return 0;
-
- if(json.isMember("error")) // error
- {
- RPC2Error rv;
- if(!RPC2ErrorMarshaller::fromJSON(json,rv)) return 0;
-
- return new RPC2Error(rv);
- }
-
- if(!json.isMember("id")) // notification
- {
- if(!json.isMember("method") || !json["method"].isString()) return 0;
-
- Methods m=getIndex(json["method"].asString().c_str());
-
- switch(m)
- {
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPDEACTIVATED:
- {
- NsRPC2Communication::BasicCommunication::OnAppDeactivated *rv=new NsRPC2Communication::BasicCommunication::OnAppDeactivated;
- return NsRPC2Communication::BasicCommunication::OnAppDeactivatedMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPREGISTERED:
- {
- NsRPC2Communication::BasicCommunication::OnAppRegistered *rv=new NsRPC2Communication::BasicCommunication::OnAppRegistered;
- return NsRPC2Communication::BasicCommunication::OnAppRegisteredMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPUNREGISTERED:
- {
- NsRPC2Communication::BasicCommunication::OnAppUnregistered *rv=new NsRPC2Communication::BasicCommunication::OnAppUnregistered;
- return NsRPC2Communication::BasicCommunication::OnAppUnregisteredMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONDEVICELISTUPDATED:
- {
- NsRPC2Communication::BasicCommunication::OnDeviceListUpdated *rv=new NsRPC2Communication::BasicCommunication::OnDeviceListUpdated;
- return NsRPC2Communication::BasicCommunication::OnDeviceListUpdatedMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONEVENT:
- {
- NsRPC2Communication::Buttons::OnButtonEvent *rv=new NsRPC2Communication::Buttons::OnButtonEvent;
- return NsRPC2Communication::Buttons::OnButtonEventMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONPRESS:
- {
- NsRPC2Communication::Buttons::OnButtonPress *rv=new NsRPC2Communication::Buttons::OnButtonPress;
- return NsRPC2Communication::Buttons::OnButtonPressMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_TTS__ONLANGUAGECHANGE:
- {
- NsRPC2Communication::TTS::OnLanguageChange *rv=new NsRPC2Communication::TTS::OnLanguageChange;
- return NsRPC2Communication::TTS::OnLanguageChangeMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ONCOMMAND:
- {
- NsRPC2Communication::UI::OnCommand *rv=new NsRPC2Communication::UI::OnCommand;
- return NsRPC2Communication::UI::OnCommandMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ONDEVICECHOSEN:
- {
- NsRPC2Communication::UI::OnDeviceChosen *rv=new NsRPC2Communication::UI::OnDeviceChosen;
- return NsRPC2Communication::UI::OnDeviceChosenMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ONDRIVERDISTRACTION:
- {
- NsRPC2Communication::UI::OnDriverDistraction *rv=new NsRPC2Communication::UI::OnDriverDistraction;
- return NsRPC2Communication::UI::OnDriverDistractionMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ONLANGUAGECHANGE:
- {
- NsRPC2Communication::UI::OnLanguageChange *rv=new NsRPC2Communication::UI::OnLanguageChange;
- return NsRPC2Communication::UI::OnLanguageChangeMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ONREADY:
- {
- NsRPC2Communication::UI::OnReady *rv=new NsRPC2Communication::UI::OnReady;
- return NsRPC2Communication::UI::OnReadyMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ONSYSTEMCONTEXT:
- {
- NsRPC2Communication::UI::OnSystemContext *rv=new NsRPC2Communication::UI::OnSystemContext;
- return NsRPC2Communication::UI::OnSystemContextMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ONTBTCLIENTSTATE:
- {
- NsRPC2Communication::UI::OnTBTClientState *rv=new NsRPC2Communication::UI::OnTBTClientState;
- return NsRPC2Communication::UI::OnTBTClientStateMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__ONCOMMAND:
- {
- NsRPC2Communication::VR::OnCommand *rv=new NsRPC2Communication::VR::OnCommand;
- return NsRPC2Communication::VR::OnCommandMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__ONLANGUAGECHANGE:
- {
- NsRPC2Communication::VR::OnLanguageChange *rv=new NsRPC2Communication::VR::OnLanguageChange;
- return NsRPC2Communication::VR::OnLanguageChangeMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__ONVEHICLEDATA:
- {
- NsRPC2Communication::VehicleInfo::OnVehicleData *rv=new NsRPC2Communication::VehicleInfo::OnVehicleData;
- return NsRPC2Communication::VehicleInfo::OnVehicleDataMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- default:
- return 0;
- }
- return 0;
- }
-
- if(json.isMember("method")) // request
- {
- if(!json["id"].isInt()) return 0;
-
- Methods m=getIndex(json["method"].asString().c_str());
- switch(m)
- {
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ACTIVATEAPP:
- {
- NsRPC2Communication::BasicCommunication::ActivateApp *rv=new NsRPC2Communication::BasicCommunication::ActivateApp;
- return NsRPC2Communication::BasicCommunication::ActivateAppMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETAPPLIST:
- {
- NsRPC2Communication::BasicCommunication::GetAppList *rv=new NsRPC2Communication::BasicCommunication::GetAppList;
- return NsRPC2Communication::BasicCommunication::GetAppListMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETDEVICELIST:
- {
- NsRPC2Communication::BasicCommunication::GetDeviceList *rv=new NsRPC2Communication::BasicCommunication::GetDeviceList;
- return NsRPC2Communication::BasicCommunication::GetDeviceListMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
-
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__SENDDATA:
- {
- NsRPC2Communication::BasicCommunication::SendData *rv=new NsRPC2Communication::BasicCommunication::SendData;
- return NsRPC2Communication::BasicCommunication::SendDataMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BUTTONS__GETCAPABILITIES:
- {
- NsRPC2Communication::Buttons::GetCapabilities *rv=new NsRPC2Communication::Buttons::GetCapabilities;
- return NsRPC2Communication::Buttons::GetCapabilitiesMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_TTS__CHANGEREGISTRATION:
- {
- NsRPC2Communication::TTS::ChangeRegistration *rv=new NsRPC2Communication::TTS::ChangeRegistration;
- return NsRPC2Communication::TTS::ChangeRegistrationMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_TTS__GETCAPABILITIES:
- {
- NsRPC2Communication::TTS::GetCapabilities *rv=new NsRPC2Communication::TTS::GetCapabilities;
- return NsRPC2Communication::TTS::GetCapabilitiesMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_TTS__GETLANGUAGE:
- {
- NsRPC2Communication::TTS::GetLanguage *rv=new NsRPC2Communication::TTS::GetLanguage;
- return NsRPC2Communication::TTS::GetLanguageMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_TTS__GETSUPPORTEDLANGUAGES:
- {
- NsRPC2Communication::TTS::GetSupportedLanguages *rv=new NsRPC2Communication::TTS::GetSupportedLanguages;
- return NsRPC2Communication::TTS::GetSupportedLanguagesMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_TTS__SPEAK:
- {
- NsRPC2Communication::TTS::Speak *rv=new NsRPC2Communication::TTS::Speak;
- return NsRPC2Communication::TTS::SpeakMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ADDCOMMAND:
- {
- NsRPC2Communication::UI::AddCommand *rv=new NsRPC2Communication::UI::AddCommand;
- return NsRPC2Communication::UI::AddCommandMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ADDSUBMENU:
- {
- NsRPC2Communication::UI::AddSubMenu *rv=new NsRPC2Communication::UI::AddSubMenu;
- return NsRPC2Communication::UI::AddSubMenuMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ALERT:
- {
- NsRPC2Communication::UI::Alert *rv=new NsRPC2Communication::UI::Alert;
- return NsRPC2Communication::UI::AlertMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ALERTMANEUVER:
- {
- NsRPC2Communication::UI::AlertManeuver *rv=new NsRPC2Communication::UI::AlertManeuver;
- return NsRPC2Communication::UI::AlertManeuverMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__CHANGEREGISTRATION:
- {
- NsRPC2Communication::UI::ChangeRegistration *rv=new NsRPC2Communication::UI::ChangeRegistration;
- return NsRPC2Communication::UI::ChangeRegistrationMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__CREATEINTERACTIONCHOICESET:
- {
- NsRPC2Communication::UI::CreateInteractionChoiceSet *rv=new NsRPC2Communication::UI::CreateInteractionChoiceSet;
- return NsRPC2Communication::UI::CreateInteractionChoiceSetMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__DELETECOMMAND:
- {
- NsRPC2Communication::UI::DeleteCommand *rv=new NsRPC2Communication::UI::DeleteCommand;
- return NsRPC2Communication::UI::DeleteCommandMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__DELETEINTERACTIONCHOICESET:
- {
- NsRPC2Communication::UI::DeleteInteractionChoiceSet *rv=new NsRPC2Communication::UI::DeleteInteractionChoiceSet;
- return NsRPC2Communication::UI::DeleteInteractionChoiceSetMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__DELETESUBMENU:
- {
- NsRPC2Communication::UI::DeleteSubMenu *rv=new NsRPC2Communication::UI::DeleteSubMenu;
- return NsRPC2Communication::UI::DeleteSubMenuMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__DIALNUMBER:
- {
- NsRPC2Communication::UI::DialNumber *rv=new NsRPC2Communication::UI::DialNumber;
- return NsRPC2Communication::UI::DialNumberMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ENDAUDIOPASSTHRU:
- {
- NsRPC2Communication::UI::EndAudioPassThru *rv=new NsRPC2Communication::UI::EndAudioPassThru;
- return NsRPC2Communication::UI::EndAudioPassThruMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__GETCAPABILITIES:
- {
- NsRPC2Communication::UI::GetCapabilities *rv=new NsRPC2Communication::UI::GetCapabilities;
- return NsRPC2Communication::UI::GetCapabilitiesMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__GETLANGUAGE:
- {
- NsRPC2Communication::UI::GetLanguage *rv=new NsRPC2Communication::UI::GetLanguage;
- return NsRPC2Communication::UI::GetLanguageMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__GETSUPPORTEDLANGUAGES:
- {
- NsRPC2Communication::UI::GetSupportedLanguages *rv=new NsRPC2Communication::UI::GetSupportedLanguages;
- return NsRPC2Communication::UI::GetSupportedLanguagesMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__PERFORMAUDIOPASSTHRU:
- {
- NsRPC2Communication::UI::PerformAudioPassThru *rv=new NsRPC2Communication::UI::PerformAudioPassThru;
- return NsRPC2Communication::UI::PerformAudioPassThruMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__PERFORMINTERACTION:
- {
- NsRPC2Communication::UI::PerformInteraction *rv=new NsRPC2Communication::UI::PerformInteraction;
- return NsRPC2Communication::UI::PerformInteractionMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__RESETGLOBALPROPERTIES:
- {
- NsRPC2Communication::UI::ResetGlobalProperties *rv=new NsRPC2Communication::UI::ResetGlobalProperties;
- return NsRPC2Communication::UI::ResetGlobalPropertiesMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SCROLLABLEMESSAGE:
- {
- NsRPC2Communication::UI::ScrollableMessage *rv=new NsRPC2Communication::UI::ScrollableMessage;
- return NsRPC2Communication::UI::ScrollableMessageMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SETAPPICON:
- {
- NsRPC2Communication::UI::SetAppIcon *rv=new NsRPC2Communication::UI::SetAppIcon;
- return NsRPC2Communication::UI::SetAppIconMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SETDISPLAYLAYOUT:
- {
- NsRPC2Communication::UI::SetDisplayLayout *rv=new NsRPC2Communication::UI::SetDisplayLayout;
- return NsRPC2Communication::UI::SetDisplayLayoutMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SETGLOBALPROPERTIES:
- {
- NsRPC2Communication::UI::SetGlobalProperties *rv=new NsRPC2Communication::UI::SetGlobalProperties;
- return NsRPC2Communication::UI::SetGlobalPropertiesMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SETMEDIACLOCKTIMER:
- {
- NsRPC2Communication::UI::SetMediaClockTimer *rv=new NsRPC2Communication::UI::SetMediaClockTimer;
- return NsRPC2Communication::UI::SetMediaClockTimerMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SHOW:
- {
- NsRPC2Communication::UI::Show *rv=new NsRPC2Communication::UI::Show;
- return NsRPC2Communication::UI::ShowMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SHOWCONSTANTTBT:
- {
- NsRPC2Communication::UI::ShowConstantTBT *rv=new NsRPC2Communication::UI::ShowConstantTBT;
- return NsRPC2Communication::UI::ShowConstantTBTMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SLIDER:
- {
- NsRPC2Communication::UI::Slider *rv=new NsRPC2Communication::UI::Slider;
- return NsRPC2Communication::UI::SliderMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__UPDATETURNLIST:
- {
- NsRPC2Communication::UI::UpdateTurnList *rv=new NsRPC2Communication::UI::UpdateTurnList;
- return NsRPC2Communication::UI::UpdateTurnListMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__ADDCOMMAND:
- {
- NsRPC2Communication::VR::AddCommand *rv=new NsRPC2Communication::VR::AddCommand;
- return NsRPC2Communication::VR::AddCommandMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__CHANGEREGISTRATION:
- {
- NsRPC2Communication::VR::ChangeRegistration *rv=new NsRPC2Communication::VR::ChangeRegistration;
- return NsRPC2Communication::VR::ChangeRegistrationMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__DELETECOMMAND:
- {
- NsRPC2Communication::VR::DeleteCommand *rv=new NsRPC2Communication::VR::DeleteCommand;
- return NsRPC2Communication::VR::DeleteCommandMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__GETCAPABILITIES:
- {
- NsRPC2Communication::VR::GetCapabilities *rv=new NsRPC2Communication::VR::GetCapabilities;
- return NsRPC2Communication::VR::GetCapabilitiesMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__GETLANGUAGE:
- {
- NsRPC2Communication::VR::GetLanguage *rv=new NsRPC2Communication::VR::GetLanguage;
- return NsRPC2Communication::VR::GetLanguageMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__GETSUPPORTEDLANGUAGES:
- {
- NsRPC2Communication::VR::GetSupportedLanguages *rv=new NsRPC2Communication::VR::GetSupportedLanguages;
- return NsRPC2Communication::VR::GetSupportedLanguagesMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETDTCS:
- {
- NsRPC2Communication::VehicleInfo::GetDTCs *rv=new NsRPC2Communication::VehicleInfo::GetDTCs;
- return NsRPC2Communication::VehicleInfo::GetDTCsMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLEDATA:
- {
- NsRPC2Communication::VehicleInfo::GetVehicleData *rv=new NsRPC2Communication::VehicleInfo::GetVehicleData;
- return NsRPC2Communication::VehicleInfo::GetVehicleDataMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLETYPE:
- {
- NsRPC2Communication::VehicleInfo::GetVehicleType *rv=new NsRPC2Communication::VehicleInfo::GetVehicleType;
- return NsRPC2Communication::VehicleInfo::GetVehicleTypeMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__READDID:
- {
- NsRPC2Communication::VehicleInfo::ReadDID *rv=new NsRPC2Communication::VehicleInfo::ReadDID;
- return NsRPC2Communication::VehicleInfo::ReadDIDMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- default:
- return 0;
- }
- return 0;
- }
- // response
- if(!json.isMember("result")) return 0;
-
- if(!json["id"].isInt()) return 0;
-
-// here is extension of protocol, two fields added: _Result and _Method
- if(!json["result"].isMember("resultCode") || !json["result"]["resultCode"].isString()) return 0;
- if(!json["result"].isMember("method") || !json["result"]["method"].isString()) return 0;
-
- Methods m=getIndex(json["result"]["method"].asString().c_str());
-
- switch(m)
- {
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ACTIVATEAPPRESPONSE:
- {
- NsRPC2Communication::BasicCommunication::ActivateAppResponse *rv=new NsRPC2Communication::BasicCommunication::ActivateAppResponse;
- return NsRPC2Communication::BasicCommunication::ActivateAppResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETAPPLISTRESPONSE:
- {
- NsRPC2Communication::BasicCommunication::GetAppListResponse *rv=new NsRPC2Communication::BasicCommunication::GetAppListResponse;
- return NsRPC2Communication::BasicCommunication::GetAppListResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETDEVICELISTRESPONSE:
- {
- NsRPC2Communication::BasicCommunication::GetDeviceListResponse *rv=new NsRPC2Communication::BasicCommunication::GetDeviceListResponse;
- return NsRPC2Communication::BasicCommunication::GetDeviceListResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__SENDDATARESPONSE:
- {
- NsRPC2Communication::BasicCommunication::SendDataResponse *rv=new NsRPC2Communication::BasicCommunication::SendDataResponse;
- return NsRPC2Communication::BasicCommunication::SendDataResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_BUTTONS__GETCAPABILITIESRESPONSE:
- {
- NsRPC2Communication::Buttons::GetCapabilitiesResponse *rv=new NsRPC2Communication::Buttons::GetCapabilitiesResponse;
- return NsRPC2Communication::Buttons::GetCapabilitiesResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_TTS__CHANGEREGISTRATIONRESPONSE:
- {
- NsRPC2Communication::TTS::ChangeRegistrationResponse *rv=new NsRPC2Communication::TTS::ChangeRegistrationResponse;
- return NsRPC2Communication::TTS::ChangeRegistrationResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_TTS__GETCAPABILITIESRESPONSE:
- {
- NsRPC2Communication::TTS::GetCapabilitiesResponse *rv=new NsRPC2Communication::TTS::GetCapabilitiesResponse;
- return NsRPC2Communication::TTS::GetCapabilitiesResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_TTS__GETLANGUAGERESPONSE:
- {
- NsRPC2Communication::TTS::GetLanguageResponse *rv=new NsRPC2Communication::TTS::GetLanguageResponse;
- return NsRPC2Communication::TTS::GetLanguageResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_TTS__GETSUPPORTEDLANGUAGESRESPONSE:
- {
- NsRPC2Communication::TTS::GetSupportedLanguagesResponse *rv=new NsRPC2Communication::TTS::GetSupportedLanguagesResponse;
- return NsRPC2Communication::TTS::GetSupportedLanguagesResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_TTS__SPEAKRESPONSE:
- {
- NsRPC2Communication::TTS::SpeakResponse *rv=new NsRPC2Communication::TTS::SpeakResponse;
- return NsRPC2Communication::TTS::SpeakResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ADDCOMMANDRESPONSE:
- {
- NsRPC2Communication::UI::AddCommandResponse *rv=new NsRPC2Communication::UI::AddCommandResponse;
- return NsRPC2Communication::UI::AddCommandResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ADDSUBMENURESPONSE:
- {
- NsRPC2Communication::UI::AddSubMenuResponse *rv=new NsRPC2Communication::UI::AddSubMenuResponse;
- return NsRPC2Communication::UI::AddSubMenuResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ALERTRESPONSE:
- {
- NsRPC2Communication::UI::AlertResponse *rv=new NsRPC2Communication::UI::AlertResponse;
- return NsRPC2Communication::UI::AlertResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ALERTMANEUVERRESPONSE:
- {
- NsRPC2Communication::UI::AlertManeuverResponse *rv=new NsRPC2Communication::UI::AlertManeuverResponse;
- return NsRPC2Communication::UI::AlertManeuverResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__CHANGEREGISTRATIONRESPONSE:
- {
- NsRPC2Communication::UI::ChangeRegistrationResponse *rv=new NsRPC2Communication::UI::ChangeRegistrationResponse;
- return NsRPC2Communication::UI::ChangeRegistrationResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__CREATEINTERACTIONCHOICESETRESPONSE:
- {
- NsRPC2Communication::UI::CreateInteractionChoiceSetResponse *rv=new NsRPC2Communication::UI::CreateInteractionChoiceSetResponse;
- return NsRPC2Communication::UI::CreateInteractionChoiceSetResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__DELETECOMMANDRESPONSE:
- {
- NsRPC2Communication::UI::DeleteCommandResponse *rv=new NsRPC2Communication::UI::DeleteCommandResponse;
- return NsRPC2Communication::UI::DeleteCommandResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__DELETEINTERACTIONCHOICESETRESPONSE:
- {
- NsRPC2Communication::UI::DeleteInteractionChoiceSetResponse *rv=new NsRPC2Communication::UI::DeleteInteractionChoiceSetResponse;
- return NsRPC2Communication::UI::DeleteInteractionChoiceSetResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__DELETESUBMENURESPONSE:
- {
- NsRPC2Communication::UI::DeleteSubMenuResponse *rv=new NsRPC2Communication::UI::DeleteSubMenuResponse;
- return NsRPC2Communication::UI::DeleteSubMenuResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__DIALNUMBERRESPONSE:
- {
- NsRPC2Communication::UI::DialNumberResponse *rv=new NsRPC2Communication::UI::DialNumberResponse;
- return NsRPC2Communication::UI::DialNumberResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__ENDAUDIOPASSTHRURESPONSE:
- {
- NsRPC2Communication::UI::EndAudioPassThruResponse *rv=new NsRPC2Communication::UI::EndAudioPassThruResponse;
- return NsRPC2Communication::UI::EndAudioPassThruResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__GETCAPABILITIESRESPONSE:
- {
- NsRPC2Communication::UI::GetCapabilitiesResponse *rv=new NsRPC2Communication::UI::GetCapabilitiesResponse;
- return NsRPC2Communication::UI::GetCapabilitiesResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__GETLANGUAGERESPONSE:
- {
- NsRPC2Communication::UI::GetLanguageResponse *rv=new NsRPC2Communication::UI::GetLanguageResponse;
- return NsRPC2Communication::UI::GetLanguageResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__GETSUPPORTEDLANGUAGESRESPONSE:
- {
- NsRPC2Communication::UI::GetSupportedLanguagesResponse *rv=new NsRPC2Communication::UI::GetSupportedLanguagesResponse;
- return NsRPC2Communication::UI::GetSupportedLanguagesResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__PERFORMAUDIOPASSTHRURESPONSE:
- {
- NsRPC2Communication::UI::PerformAudioPassThruResponse *rv=new NsRPC2Communication::UI::PerformAudioPassThruResponse;
- return NsRPC2Communication::UI::PerformAudioPassThruResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__PERFORMINTERACTIONRESPONSE:
- {
- NsRPC2Communication::UI::PerformInteractionResponse *rv=new NsRPC2Communication::UI::PerformInteractionResponse;
- return NsRPC2Communication::UI::PerformInteractionResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__RESETGLOBALPROPERTIESRESPONSE:
- {
- NsRPC2Communication::UI::ResetGlobalPropertiesResponse *rv=new NsRPC2Communication::UI::ResetGlobalPropertiesResponse;
- return NsRPC2Communication::UI::ResetGlobalPropertiesResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SCROLLABLEMESSAGERESPONSE:
- {
- NsRPC2Communication::UI::ScrollableMessageResponse *rv=new NsRPC2Communication::UI::ScrollableMessageResponse;
- return NsRPC2Communication::UI::ScrollableMessageResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SETAPPICONRESPONSE:
- {
- NsRPC2Communication::UI::SetAppIconResponse *rv=new NsRPC2Communication::UI::SetAppIconResponse;
- return NsRPC2Communication::UI::SetAppIconResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SETDISPLAYLAYOUTRESPONSE:
- {
- NsRPC2Communication::UI::SetDisplayLayoutResponse *rv=new NsRPC2Communication::UI::SetDisplayLayoutResponse;
- return NsRPC2Communication::UI::SetDisplayLayoutResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SETGLOBALPROPERTIESRESPONSE:
- {
- NsRPC2Communication::UI::SetGlobalPropertiesResponse *rv=new NsRPC2Communication::UI::SetGlobalPropertiesResponse;
- return NsRPC2Communication::UI::SetGlobalPropertiesResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SETMEDIACLOCKTIMERRESPONSE:
- {
- NsRPC2Communication::UI::SetMediaClockTimerResponse *rv=new NsRPC2Communication::UI::SetMediaClockTimerResponse;
- return NsRPC2Communication::UI::SetMediaClockTimerResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SHOWRESPONSE:
- {
- NsRPC2Communication::UI::ShowResponse *rv=new NsRPC2Communication::UI::ShowResponse;
- return NsRPC2Communication::UI::ShowResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SHOWCONSTANTTBTRESPONSE:
- {
- NsRPC2Communication::UI::ShowConstantTBTResponse *rv=new NsRPC2Communication::UI::ShowConstantTBTResponse;
- return NsRPC2Communication::UI::ShowConstantTBTResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__SLIDERRESPONSE:
- {
- NsRPC2Communication::UI::SliderResponse *rv=new NsRPC2Communication::UI::SliderResponse;
- return NsRPC2Communication::UI::SliderResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_UI__UPDATETURNLISTRESPONSE:
- {
- NsRPC2Communication::UI::UpdateTurnListResponse *rv=new NsRPC2Communication::UI::UpdateTurnListResponse;
- return NsRPC2Communication::UI::UpdateTurnListResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__ADDCOMMANDRESPONSE:
- {
- NsRPC2Communication::VR::AddCommandResponse *rv=new NsRPC2Communication::VR::AddCommandResponse;
- return NsRPC2Communication::VR::AddCommandResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__CHANGEREGISTRATIONRESPONSE:
- {
- NsRPC2Communication::VR::ChangeRegistrationResponse *rv=new NsRPC2Communication::VR::ChangeRegistrationResponse;
- return NsRPC2Communication::VR::ChangeRegistrationResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__DELETECOMMANDRESPONSE:
- {
- NsRPC2Communication::VR::DeleteCommandResponse *rv=new NsRPC2Communication::VR::DeleteCommandResponse;
- return NsRPC2Communication::VR::DeleteCommandResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__GETCAPABILITIESRESPONSE:
- {
- NsRPC2Communication::VR::GetCapabilitiesResponse *rv=new NsRPC2Communication::VR::GetCapabilitiesResponse;
- return NsRPC2Communication::VR::GetCapabilitiesResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__GETLANGUAGERESPONSE:
- {
- NsRPC2Communication::VR::GetLanguageResponse *rv=new NsRPC2Communication::VR::GetLanguageResponse;
- return NsRPC2Communication::VR::GetLanguageResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VR__GETSUPPORTEDLANGUAGESRESPONSE:
- {
- NsRPC2Communication::VR::GetSupportedLanguagesResponse *rv=new NsRPC2Communication::VR::GetSupportedLanguagesResponse;
- return NsRPC2Communication::VR::GetSupportedLanguagesResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETDTCSRESPONSE:
- {
- NsRPC2Communication::VehicleInfo::GetDTCsResponse *rv=new NsRPC2Communication::VehicleInfo::GetDTCsResponse;
- return NsRPC2Communication::VehicleInfo::GetDTCsResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLEDATARESPONSE:
- {
- NsRPC2Communication::VehicleInfo::GetVehicleDataResponse *rv=new NsRPC2Communication::VehicleInfo::GetVehicleDataResponse;
- return NsRPC2Communication::VehicleInfo::GetVehicleDataResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLETYPERESPONSE:
- {
- NsRPC2Communication::VehicleInfo::GetVehicleTypeResponse *rv=new NsRPC2Communication::VehicleInfo::GetVehicleTypeResponse;
- return NsRPC2Communication::VehicleInfo::GetVehicleTypeResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__READDIDRESPONSE:
- {
- NsRPC2Communication::VehicleInfo::ReadDIDResponse *rv=new NsRPC2Communication::VehicleInfo::ReadDIDResponse;
- return NsRPC2Communication::VehicleInfo::ReadDIDResponseMarshaller::fromJSON(json,*rv) ? rv : 0;
- }
- default:
- return 0;
- }
-
- return 0;
-}
-
-
-Json::Value Marshaller::Notification2JSON(const NsRPC2Communication::RPC2Notification* msg)
-{
- Json::Value j=Json::Value(Json::nullValue);
- if(!msg) return j;
-
- switch(msg->getMethod())
- {
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPREGISTERED:
- return NsRPC2Communication::BasicCommunication::OnAppRegisteredMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::OnAppRegistered*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPUNREGISTERED:
- return NsRPC2Communication::BasicCommunication::OnAppUnregisteredMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::OnAppUnregistered*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONDEVICELISTUPDATED:
- return NsRPC2Communication::BasicCommunication::OnDeviceListUpdatedMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::OnDeviceListUpdated*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONEVENT:
- return NsRPC2Communication::Buttons::OnButtonEventMarshaller::toJSON(*static_cast<const NsRPC2Communication::Buttons::OnButtonEvent*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONPRESS:
- return NsRPC2Communication::Buttons::OnButtonPressMarshaller::toJSON(*static_cast<const NsRPC2Communication::Buttons::OnButtonPress*>(msg));
- case METHOD_NSRPC2COMMUNICATION_TTS__ONLANGUAGECHANGE:
- return NsRPC2Communication::TTS::OnLanguageChangeMarshaller::toJSON(*static_cast<const NsRPC2Communication::TTS::OnLanguageChange*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ONCOMMAND:
- return NsRPC2Communication::UI::OnCommandMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::OnCommand*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ONDEVICECHOSEN:
- return NsRPC2Communication::UI::OnDeviceChosenMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::OnDeviceChosen*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ONDRIVERDISTRACTION:
- return NsRPC2Communication::UI::OnDriverDistractionMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::OnDriverDistraction*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ONLANGUAGECHANGE:
- return NsRPC2Communication::UI::OnLanguageChangeMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::OnLanguageChange*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ONREADY:
- return NsRPC2Communication::UI::OnReadyMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::OnReady*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ONSYSTEMCONTEXT:
- return NsRPC2Communication::UI::OnSystemContextMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::OnSystemContext*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ONTBTCLIENTSTATE:
- return NsRPC2Communication::UI::OnTBTClientStateMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::OnTBTClientState*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__ONCOMMAND:
- return NsRPC2Communication::VR::OnCommandMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::OnCommand*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__ONLANGUAGECHANGE:
- return NsRPC2Communication::VR::OnLanguageChangeMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::OnLanguageChange*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__ONVEHICLEDATA:
- return NsRPC2Communication::VehicleInfo::OnVehicleDataMarshaller::toJSON(*static_cast<const NsRPC2Communication::VehicleInfo::OnVehicleData*>(msg));
- default:
- return j;
- }
-}
-
-
-Json::Value Marshaller::Request2JSON(const NsRPC2Communication::RPC2Request* msg)
-{
- Json::Value j=Json::Value(Json::nullValue);
- if(!msg) return j;
- switch(msg->getMethod())
- {
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ACTIVATEAPP:
- return NsRPC2Communication::BasicCommunication::ActivateAppMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::ActivateApp*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETAPPLIST:
- return NsRPC2Communication::BasicCommunication::GetAppListMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::GetAppList*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETDEVICELIST:
- return NsRPC2Communication::BasicCommunication::GetDeviceListMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::GetDeviceList*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPDEACTIVATED:
- return NsRPC2Communication::BasicCommunication::OnAppDeactivatedMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::OnAppDeactivated*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__SENDDATA:
- return NsRPC2Communication::BasicCommunication::SendDataMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::SendData*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BUTTONS__GETCAPABILITIES:
- return NsRPC2Communication::Buttons::GetCapabilitiesMarshaller::toJSON(*static_cast<const NsRPC2Communication::Buttons::GetCapabilities*>(msg));
- case METHOD_NSRPC2COMMUNICATION_TTS__CHANGEREGISTRATION:
- return NsRPC2Communication::TTS::ChangeRegistrationMarshaller::toJSON(*static_cast<const NsRPC2Communication::TTS::ChangeRegistration*>(msg));
- case METHOD_NSRPC2COMMUNICATION_TTS__GETCAPABILITIES:
- return NsRPC2Communication::TTS::GetCapabilitiesMarshaller::toJSON(*static_cast<const NsRPC2Communication::TTS::GetCapabilities*>(msg));
- case METHOD_NSRPC2COMMUNICATION_TTS__GETLANGUAGE:
- return NsRPC2Communication::TTS::GetLanguageMarshaller::toJSON(*static_cast<const NsRPC2Communication::TTS::GetLanguage*>(msg));
- case METHOD_NSRPC2COMMUNICATION_TTS__GETSUPPORTEDLANGUAGES:
- return NsRPC2Communication::TTS::GetSupportedLanguagesMarshaller::toJSON(*static_cast<const NsRPC2Communication::TTS::GetSupportedLanguages*>(msg));
- case METHOD_NSRPC2COMMUNICATION_TTS__SPEAK:
- return NsRPC2Communication::TTS::SpeakMarshaller::toJSON(*static_cast<const NsRPC2Communication::TTS::Speak*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ADDCOMMAND:
- return NsRPC2Communication::UI::AddCommandMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::AddCommand*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ADDSUBMENU:
- return NsRPC2Communication::UI::AddSubMenuMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::AddSubMenu*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ALERT:
- return NsRPC2Communication::UI::AlertMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::Alert*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ALERTMANEUVER:
- return NsRPC2Communication::UI::AlertManeuverMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::AlertManeuver*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__CHANGEREGISTRATION:
- return NsRPC2Communication::UI::ChangeRegistrationMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::ChangeRegistration*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__CREATEINTERACTIONCHOICESET:
- return NsRPC2Communication::UI::CreateInteractionChoiceSetMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::CreateInteractionChoiceSet*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__DELETECOMMAND:
- return NsRPC2Communication::UI::DeleteCommandMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::DeleteCommand*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__DELETEINTERACTIONCHOICESET:
- return NsRPC2Communication::UI::DeleteInteractionChoiceSetMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::DeleteInteractionChoiceSet*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__DELETESUBMENU:
- return NsRPC2Communication::UI::DeleteSubMenuMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::DeleteSubMenu*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__DIALNUMBER:
- return NsRPC2Communication::UI::DialNumberMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::DialNumber*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ENDAUDIOPASSTHRU:
- return NsRPC2Communication::UI::EndAudioPassThruMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::EndAudioPassThru*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__GETCAPABILITIES:
- return NsRPC2Communication::UI::GetCapabilitiesMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::GetCapabilities*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__GETLANGUAGE:
- return NsRPC2Communication::UI::GetLanguageMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::GetLanguage*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__GETSUPPORTEDLANGUAGES:
- return NsRPC2Communication::UI::GetSupportedLanguagesMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::GetSupportedLanguages*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__PERFORMAUDIOPASSTHRU:
- return NsRPC2Communication::UI::PerformAudioPassThruMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::PerformAudioPassThru*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__PERFORMINTERACTION:
- return NsRPC2Communication::UI::PerformInteractionMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::PerformInteraction*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__RESETGLOBALPROPERTIES:
- return NsRPC2Communication::UI::ResetGlobalPropertiesMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::ResetGlobalProperties*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SCROLLABLEMESSAGE:
- return NsRPC2Communication::UI::ScrollableMessageMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::ScrollableMessage*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SETAPPICON:
- return NsRPC2Communication::UI::SetAppIconMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::SetAppIcon*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SETDISPLAYLAYOUT:
- return NsRPC2Communication::UI::SetDisplayLayoutMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::SetDisplayLayout*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SETGLOBALPROPERTIES:
- return NsRPC2Communication::UI::SetGlobalPropertiesMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::SetGlobalProperties*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SETMEDIACLOCKTIMER:
- return NsRPC2Communication::UI::SetMediaClockTimerMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::SetMediaClockTimer*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SHOW:
- return NsRPC2Communication::UI::ShowMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::Show*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SHOWCONSTANTTBT:
- return NsRPC2Communication::UI::ShowConstantTBTMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::ShowConstantTBT*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SLIDER:
- return NsRPC2Communication::UI::SliderMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::Slider*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__UPDATETURNLIST:
- return NsRPC2Communication::UI::UpdateTurnListMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::UpdateTurnList*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__ADDCOMMAND:
- return NsRPC2Communication::VR::AddCommandMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::AddCommand*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__CHANGEREGISTRATION:
- return NsRPC2Communication::VR::ChangeRegistrationMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::ChangeRegistration*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__DELETECOMMAND:
- return NsRPC2Communication::VR::DeleteCommandMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::DeleteCommand*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__GETCAPABILITIES:
- return NsRPC2Communication::VR::GetCapabilitiesMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::GetCapabilities*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__GETLANGUAGE:
- return NsRPC2Communication::VR::GetLanguageMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::GetLanguage*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__GETSUPPORTEDLANGUAGES:
- return NsRPC2Communication::VR::GetSupportedLanguagesMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::GetSupportedLanguages*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETDTCS:
- return NsRPC2Communication::VehicleInfo::GetDTCsMarshaller::toJSON(*static_cast<const NsRPC2Communication::VehicleInfo::GetDTCs*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLEDATA:
- return NsRPC2Communication::VehicleInfo::GetVehicleDataMarshaller::toJSON(*static_cast<const NsRPC2Communication::VehicleInfo::GetVehicleData*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLETYPE:
- return NsRPC2Communication::VehicleInfo::GetVehicleTypeMarshaller::toJSON(*static_cast<const NsRPC2Communication::VehicleInfo::GetVehicleType*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__READDID:
- return NsRPC2Communication::VehicleInfo::ReadDIDMarshaller::toJSON(*static_cast<const NsRPC2Communication::VehicleInfo::ReadDID*>(msg));
- default:
- return j;
- }
-}
-
-
-Json::Value Marshaller::Response2JSON(const NsRPC2Communication::RPC2Response* msg)
-{
- Json::Value j=Json::Value(Json::nullValue);
- if(!msg) return j;
- switch(msg->getMethod())
- {
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ACTIVATEAPPRESPONSE:
- return NsRPC2Communication::BasicCommunication::ActivateAppResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::ActivateAppResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETAPPLISTRESPONSE:
- return NsRPC2Communication::BasicCommunication::GetAppListResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::GetAppListResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETDEVICELISTRESPONSE:
- return NsRPC2Communication::BasicCommunication::GetDeviceListResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::GetDeviceListResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__SENDDATARESPONSE:
- return NsRPC2Communication::BasicCommunication::SendDataResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::BasicCommunication::SendDataResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_BUTTONS__GETCAPABILITIESRESPONSE:
- return NsRPC2Communication::Buttons::GetCapabilitiesResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::Buttons::GetCapabilitiesResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_TTS__CHANGEREGISTRATIONRESPONSE:
- return NsRPC2Communication::TTS::ChangeRegistrationResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::TTS::ChangeRegistrationResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_TTS__GETCAPABILITIESRESPONSE:
- return NsRPC2Communication::TTS::GetCapabilitiesResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::TTS::GetCapabilitiesResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_TTS__GETLANGUAGERESPONSE:
- return NsRPC2Communication::TTS::GetLanguageResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::TTS::GetLanguageResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_TTS__GETSUPPORTEDLANGUAGESRESPONSE:
- return NsRPC2Communication::TTS::GetSupportedLanguagesResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::TTS::GetSupportedLanguagesResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_TTS__SPEAKRESPONSE:
- return NsRPC2Communication::TTS::SpeakResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::TTS::SpeakResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ADDCOMMANDRESPONSE:
- return NsRPC2Communication::UI::AddCommandResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::AddCommandResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ADDSUBMENURESPONSE:
- return NsRPC2Communication::UI::AddSubMenuResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::AddSubMenuResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ALERTRESPONSE:
- return NsRPC2Communication::UI::AlertResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::AlertResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ALERTMANEUVERRESPONSE:
- return NsRPC2Communication::UI::AlertManeuverResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::AlertManeuverResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__CHANGEREGISTRATIONRESPONSE:
- return NsRPC2Communication::UI::ChangeRegistrationResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::ChangeRegistrationResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__CREATEINTERACTIONCHOICESETRESPONSE:
- return NsRPC2Communication::UI::CreateInteractionChoiceSetResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::CreateInteractionChoiceSetResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__DELETECOMMANDRESPONSE:
- return NsRPC2Communication::UI::DeleteCommandResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::DeleteCommandResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__DELETEINTERACTIONCHOICESETRESPONSE:
- return NsRPC2Communication::UI::DeleteInteractionChoiceSetResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::DeleteInteractionChoiceSetResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__DELETESUBMENURESPONSE:
- return NsRPC2Communication::UI::DeleteSubMenuResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::DeleteSubMenuResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__DIALNUMBERRESPONSE:
- return NsRPC2Communication::UI::DialNumberResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::DialNumberResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__ENDAUDIOPASSTHRURESPONSE:
- return NsRPC2Communication::UI::EndAudioPassThruResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::EndAudioPassThruResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__GETCAPABILITIESRESPONSE:
- return NsRPC2Communication::UI::GetCapabilitiesResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::GetCapabilitiesResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__GETLANGUAGERESPONSE:
- return NsRPC2Communication::UI::GetLanguageResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::GetLanguageResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__GETSUPPORTEDLANGUAGESRESPONSE:
- return NsRPC2Communication::UI::GetSupportedLanguagesResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::GetSupportedLanguagesResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__PERFORMAUDIOPASSTHRURESPONSE:
- return NsRPC2Communication::UI::PerformAudioPassThruResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::PerformAudioPassThruResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__PERFORMINTERACTIONRESPONSE:
- return NsRPC2Communication::UI::PerformInteractionResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::PerformInteractionResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__RESETGLOBALPROPERTIESRESPONSE:
- return NsRPC2Communication::UI::ResetGlobalPropertiesResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::ResetGlobalPropertiesResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SCROLLABLEMESSAGERESPONSE:
- return NsRPC2Communication::UI::ScrollableMessageResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::ScrollableMessageResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SETAPPICONRESPONSE:
- return NsRPC2Communication::UI::SetAppIconResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::SetAppIconResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SETDISPLAYLAYOUTRESPONSE:
- return NsRPC2Communication::UI::SetDisplayLayoutResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::SetDisplayLayoutResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SETGLOBALPROPERTIESRESPONSE:
- return NsRPC2Communication::UI::SetGlobalPropertiesResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::SetGlobalPropertiesResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SETMEDIACLOCKTIMERRESPONSE:
- return NsRPC2Communication::UI::SetMediaClockTimerResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::SetMediaClockTimerResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SHOWRESPONSE:
- return NsRPC2Communication::UI::ShowResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::ShowResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SHOWCONSTANTTBTRESPONSE:
- return NsRPC2Communication::UI::ShowConstantTBTResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::ShowConstantTBTResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__SLIDERRESPONSE:
- return NsRPC2Communication::UI::SliderResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::SliderResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_UI__UPDATETURNLISTRESPONSE:
- return NsRPC2Communication::UI::UpdateTurnListResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::UI::UpdateTurnListResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__ADDCOMMANDRESPONSE:
- return NsRPC2Communication::VR::AddCommandResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::AddCommandResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__CHANGEREGISTRATIONRESPONSE:
- return NsRPC2Communication::VR::ChangeRegistrationResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::ChangeRegistrationResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__DELETECOMMANDRESPONSE:
- return NsRPC2Communication::VR::DeleteCommandResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::DeleteCommandResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__GETCAPABILITIESRESPONSE:
- return NsRPC2Communication::VR::GetCapabilitiesResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::GetCapabilitiesResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__GETLANGUAGERESPONSE:
- return NsRPC2Communication::VR::GetLanguageResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::GetLanguageResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VR__GETSUPPORTEDLANGUAGESRESPONSE:
- return NsRPC2Communication::VR::GetSupportedLanguagesResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::VR::GetSupportedLanguagesResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETDTCSRESPONSE:
- return NsRPC2Communication::VehicleInfo::GetDTCsResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::VehicleInfo::GetDTCsResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLEDATARESPONSE:
- return NsRPC2Communication::VehicleInfo::GetVehicleDataResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::VehicleInfo::GetVehicleDataResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLETYPERESPONSE:
- return NsRPC2Communication::VehicleInfo::GetVehicleTypeResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::VehicleInfo::GetVehicleTypeResponse*>(msg));
- case METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__READDIDRESPONSE:
- return NsRPC2Communication::VehicleInfo::ReadDIDResponseMarshaller::toJSON(*static_cast<const NsRPC2Communication::VehicleInfo::ReadDIDResponse*>(msg));
- default:
- return j;
- }
-}
-
-
-Json::Value Marshaller::toJSON(const RPC2Command* msg)
-{
- Json::Value j=Json::Value(Json::nullValue);
- if(!msg) return j;
-
- switch(msg->getCommandType())
- {
- case RPC2Command::REQUEST:
- return Request2JSON(static_cast<const RPC2Request*>(msg));
- case RPC2Command::RESPONSE:
- return Response2JSON(static_cast<const RPC2Response*>(msg));
- case RPC2Command::NOTIFICATION:
- return Notification2JSON(static_cast<const RPC2Notification*>(msg));
-
- case RPC2Command::ERROR:
- return RPC2ErrorMarshaller::toJSON(*static_cast<const RPC2Error*>(msg));
-
- case RPC2Command::UNDEFINED:
- default:
- return j;
- }
-}
-
-
-const Marshaller::localHash Marshaller::mHashTable[110]=
-{
- {"BasicCommunication.ActivateApp",0,&Marshaller::mNsRPC2Communication_BasicCommunication__ActivateApp},
- {"BasicCommunication.ActivateAppResponse",1,&Marshaller::mNsRPC2Communication_BasicCommunication__ActivateAppResponse},
- {"BasicCommunication.GetAppList",2,&Marshaller::mNsRPC2Communication_BasicCommunication__GetAppList},
- {"BasicCommunication.GetAppListResponse",3,&Marshaller::mNsRPC2Communication_BasicCommunication__GetAppListResponse},
- {"BasicCommunication.GetDeviceList",4,&Marshaller::mNsRPC2Communication_BasicCommunication__GetDeviceList},
- {"BasicCommunication.GetDeviceListResponse",5,&Marshaller::mNsRPC2Communication_BasicCommunication__GetDeviceListResponse},
- {"BasicCommunication.OnAppDeactivated",6,&Marshaller::mNsRPC2Communication_BasicCommunication__OnAppDeactivated},
- {"BasicCommunication.OnAppDeactivatedResponse",7,&Marshaller::mNsRPC2Communication_BasicCommunication__OnAppDeactivated},
- {"BasicCommunication.OnAppRegistered",8,&Marshaller::mNsRPC2Communication_BasicCommunication__OnAppRegistered},
- {"BasicCommunication.OnAppUnregistered",9,&Marshaller::mNsRPC2Communication_BasicCommunication__OnAppUnregistered},
- {"BasicCommunication.OnDeviceListUpdated",10,&Marshaller::mNsRPC2Communication_BasicCommunication__OnDeviceListUpdated},
- {"BasicCommunication.SendData",11,&Marshaller::mNsRPC2Communication_BasicCommunication__SendData},
- {"BasicCommunication.SendDataResponse",12,&Marshaller::mNsRPC2Communication_BasicCommunication__SendDataResponse},
- {"Buttons.GetCapabilities",13,&Marshaller::mNsRPC2Communication_Buttons__GetCapabilities},
- {"Buttons.GetCapabilitiesResponse",14,&Marshaller::mNsRPC2Communication_Buttons__GetCapabilitiesResponse},
- {"Buttons.OnButtonEvent",15,&Marshaller::mNsRPC2Communication_Buttons__OnButtonEvent},
- {"Buttons.OnButtonPress",16,&Marshaller::mNsRPC2Communication_Buttons__OnButtonPress},
- {"TTS.ChangeRegistration",17,&Marshaller::mNsRPC2Communication_TTS__ChangeRegistration},
- {"TTS.ChangeRegistrationResponse",18,&Marshaller::mNsRPC2Communication_TTS__ChangeRegistrationResponse},
- {"TTS.GetCapabilities",19,&Marshaller::mNsRPC2Communication_TTS__GetCapabilities},
- {"TTS.GetCapabilitiesResponse",20,&Marshaller::mNsRPC2Communication_TTS__GetCapabilitiesResponse},
- {"TTS.GetLanguage",21,&Marshaller::mNsRPC2Communication_TTS__GetLanguage},
- {"TTS.GetLanguageResponse",22,&Marshaller::mNsRPC2Communication_TTS__GetLanguageResponse},
- {"TTS.GetSupportedLanguages",23,&Marshaller::mNsRPC2Communication_TTS__GetSupportedLanguages},
- {"TTS.GetSupportedLanguagesResponse",24,&Marshaller::mNsRPC2Communication_TTS__GetSupportedLanguagesResponse},
- {"TTS.OnLanguageChange",25,&Marshaller::mNsRPC2Communication_TTS__OnLanguageChange},
- {"TTS.Speak",26,&Marshaller::mNsRPC2Communication_TTS__Speak},
- {"TTS.SpeakResponse",27,&Marshaller::mNsRPC2Communication_TTS__SpeakResponse},
- {"UI.AddCommand",28,&Marshaller::mNsRPC2Communication_UI__AddCommand},
- {"UI.AddCommandResponse",29,&Marshaller::mNsRPC2Communication_UI__AddCommandResponse},
- {"UI.AddSubMenu",30,&Marshaller::mNsRPC2Communication_UI__AddSubMenu},
- {"UI.AddSubMenuResponse",31,&Marshaller::mNsRPC2Communication_UI__AddSubMenuResponse},
- {"UI.Alert",32,&Marshaller::mNsRPC2Communication_UI__Alert},
- {"UI.AlertResponse",33,&Marshaller::mNsRPC2Communication_UI__AlertResponse},
- {"UI.AlertManeuver",34,&Marshaller::mNsRPC2Communication_UI__AlertManeuver},
- {"UI.AlertManeuverResponse",35,&Marshaller::mNsRPC2Communication_UI__AlertManeuverResponse},
- {"UI.ChangeRegistration",36,&Marshaller::mNsRPC2Communication_UI__ChangeRegistration},
- {"UI.ChangeRegistrationResponse",37,&Marshaller::mNsRPC2Communication_UI__ChangeRegistrationResponse},
- {"UI.CreateInteractionChoiceSet",38,&Marshaller::mNsRPC2Communication_UI__CreateInteractionChoiceSet},
- {"UI.CreateInteractionChoiceSetResponse",39,&Marshaller::mNsRPC2Communication_UI__CreateInteractionChoiceSetResponse},
- {"UI.DeleteCommand",40,&Marshaller::mNsRPC2Communication_UI__DeleteCommand},
- {"UI.DeleteCommandResponse",41,&Marshaller::mNsRPC2Communication_UI__DeleteCommandResponse},
- {"UI.DeleteInteractionChoiceSet",42,&Marshaller::mNsRPC2Communication_UI__DeleteInteractionChoiceSet},
- {"UI.DeleteInteractionChoiceSetResponse",43,&Marshaller::mNsRPC2Communication_UI__DeleteInteractionChoiceSetResponse},
- {"UI.DeleteSubMenu",44,&Marshaller::mNsRPC2Communication_UI__DeleteSubMenu},
- {"UI.DeleteSubMenuResponse",45,&Marshaller::mNsRPC2Communication_UI__DeleteSubMenuResponse},
- {"UI.DialNumber",46,&Marshaller::mNsRPC2Communication_UI__DialNumber},
- {"UI.DialNumberResponse",47,&Marshaller::mNsRPC2Communication_UI__DialNumberResponse},
- {"UI.EndAudioPassThru",48,&Marshaller::mNsRPC2Communication_UI__EndAudioPassThru},
- {"UI.EndAudioPassThruResponse",49,&Marshaller::mNsRPC2Communication_UI__EndAudioPassThruResponse},
- {"UI.GetCapabilities",50,&Marshaller::mNsRPC2Communication_UI__GetCapabilities},
- {"UI.GetCapabilitiesResponse",51,&Marshaller::mNsRPC2Communication_UI__GetCapabilitiesResponse},
- {"UI.GetLanguage",52,&Marshaller::mNsRPC2Communication_UI__GetLanguage},
- {"UI.GetLanguageResponse",53,&Marshaller::mNsRPC2Communication_UI__GetLanguageResponse},
- {"UI.GetSupportedLanguages",54,&Marshaller::mNsRPC2Communication_UI__GetSupportedLanguages},
- {"UI.GetSupportedLanguagesResponse",55,&Marshaller::mNsRPC2Communication_UI__GetSupportedLanguagesResponse},
- {"UI.OnCommand",56,&Marshaller::mNsRPC2Communication_UI__OnCommand},
- {"UI.OnDeviceChosen",57,&Marshaller::mNsRPC2Communication_UI__OnDeviceChosen},
- {"UI.OnDriverDistraction",58,&Marshaller::mNsRPC2Communication_UI__OnDriverDistraction},
- {"UI.OnLanguageChange",59,&Marshaller::mNsRPC2Communication_UI__OnLanguageChange},
- {"UI.OnReady",60,&Marshaller::mNsRPC2Communication_UI__OnReady},
- {"UI.OnSystemContext",61,&Marshaller::mNsRPC2Communication_UI__OnSystemContext},
- {"UI.OnTBTClientState",62,&Marshaller::mNsRPC2Communication_UI__OnTBTClientState},
- {"UI.PerformAudioPassThru",63,&Marshaller::mNsRPC2Communication_UI__PerformAudioPassThru},
- {"UI.PerformAudioPassThruResponse",64,&Marshaller::mNsRPC2Communication_UI__PerformAudioPassThruResponse},
- {"UI.PerformInteraction",65,&Marshaller::mNsRPC2Communication_UI__PerformInteraction},
- {"UI.PerformInteractionResponse",66,&Marshaller::mNsRPC2Communication_UI__PerformInteractionResponse},
- {"UI.ResetGlobalProperties",67,&Marshaller::mNsRPC2Communication_UI__ResetGlobalProperties},
- {"UI.ResetGlobalPropertiesResponse",68,&Marshaller::mNsRPC2Communication_UI__ResetGlobalPropertiesResponse},
- {"UI.ScrollableMessage",69,&Marshaller::mNsRPC2Communication_UI__ScrollableMessage},
- {"UI.ScrollableMessageResponse",70,&Marshaller::mNsRPC2Communication_UI__ScrollableMessageResponse},
- {"UI.SetAppIcon",71,&Marshaller::mNsRPC2Communication_UI__SetAppIcon},
- {"UI.SetAppIconResponse",72,&Marshaller::mNsRPC2Communication_UI__SetAppIconResponse},
- {"UI.SetDisplayLayout",73,&Marshaller::mNsRPC2Communication_UI__SetDisplayLayout},
- {"UI.SetDisplayLayoutResponse",74,&Marshaller::mNsRPC2Communication_UI__SetDisplayLayoutResponse},
- {"UI.SetGlobalProperties",75,&Marshaller::mNsRPC2Communication_UI__SetGlobalProperties},
- {"UI.SetGlobalPropertiesResponse",76,&Marshaller::mNsRPC2Communication_UI__SetGlobalPropertiesResponse},
- {"UI.SetMediaClockTimer",77,&Marshaller::mNsRPC2Communication_UI__SetMediaClockTimer},
- {"UI.SetMediaClockTimerResponse",78,&Marshaller::mNsRPC2Communication_UI__SetMediaClockTimerResponse},
- {"UI.Show",79,&Marshaller::mNsRPC2Communication_UI__Show},
- {"UI.ShowResponse",80,&Marshaller::mNsRPC2Communication_UI__ShowResponse},
- {"UI.ShowConstantTBT",81,&Marshaller::mNsRPC2Communication_UI__ShowConstantTBT},
- {"UI.ShowConstantTBTResponse",82,&Marshaller::mNsRPC2Communication_UI__ShowConstantTBTResponse},
- {"UI.Slider",83,&Marshaller::mNsRPC2Communication_UI__Slider},
- {"UI.SliderResponse",84,&Marshaller::mNsRPC2Communication_UI__SliderResponse},
- {"UI.UpdateTurnList",85,&Marshaller::mNsRPC2Communication_UI__UpdateTurnList},
- {"UI.UpdateTurnListResponse",86,&Marshaller::mNsRPC2Communication_UI__UpdateTurnListResponse},
- {"VR.AddCommand",87,&Marshaller::mNsRPC2Communication_VR__AddCommand},
- {"VR.AddCommandResponse",88,&Marshaller::mNsRPC2Communication_VR__AddCommandResponse},
- {"VR.ChangeRegistration",89,&Marshaller::mNsRPC2Communication_VR__ChangeRegistration},
- {"VR.ChangeRegistrationResponse",90,&Marshaller::mNsRPC2Communication_VR__ChangeRegistrationResponse},
- {"VR.DeleteCommand",91,&Marshaller::mNsRPC2Communication_VR__DeleteCommand},
- {"VR.DeleteCommandResponse",92,&Marshaller::mNsRPC2Communication_VR__DeleteCommandResponse},
- {"VR.GetCapabilities",93,&Marshaller::mNsRPC2Communication_VR__GetCapabilities},
- {"VR.GetCapabilitiesResponse",94,&Marshaller::mNsRPC2Communication_VR__GetCapabilitiesResponse},
- {"VR.GetLanguage",95,&Marshaller::mNsRPC2Communication_VR__GetLanguage},
- {"VR.GetLanguageResponse",96,&Marshaller::mNsRPC2Communication_VR__GetLanguageResponse},
- {"VR.GetSupportedLanguages",97,&Marshaller::mNsRPC2Communication_VR__GetSupportedLanguages},
- {"VR.GetSupportedLanguagesResponse",98,&Marshaller::mNsRPC2Communication_VR__GetSupportedLanguagesResponse},
- {"VR.OnCommand",99,&Marshaller::mNsRPC2Communication_VR__OnCommand},
- {"VR.OnLanguageChange",100,&Marshaller::mNsRPC2Communication_VR__OnLanguageChange},
- {"VehicleInfo.GetDTCs",101,&Marshaller::mNsRPC2Communication_VehicleInfo__GetDTCs},
- {"VehicleInfo.GetDTCsResponse",102,&Marshaller::mNsRPC2Communication_VehicleInfo__GetDTCsResponse},
- {"VehicleInfo.GetVehicleData",103,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleData},
- {"VehicleInfo.GetVehicleDataResponse",104,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleDataResponse},
- {"VehicleInfo.GetVehicleType",105,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleType},
- {"VehicleInfo.GetVehicleTypeResponse",106,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleTypeResponse},
- {"VehicleInfo.OnVehicleData",107,&Marshaller::mNsRPC2Communication_VehicleInfo__OnVehicleData},
- {"VehicleInfo.ReadDID",108,&Marshaller::mNsRPC2Communication_VehicleInfo__ReadDID},
- {"VehicleInfo.ReadDIDResponse",109,&Marshaller::mNsRPC2Communication_VehicleInfo__ReadDIDResponse}
-
-};
-
-NsRPC2Communication::RPC2ErrorMarshaller Marshaller::mRPC2ErrorInternal;
-
-NsRPC2Communication::BasicCommunication::ActivateAppMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__ActivateApp;
-NsRPC2Communication::BasicCommunication::ActivateAppResponseMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__ActivateAppResponse;
-NsRPC2Communication::BasicCommunication::GetAppListMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__GetAppList;
-NsRPC2Communication::BasicCommunication::GetAppListResponseMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__GetAppListResponse;
-NsRPC2Communication::BasicCommunication::GetDeviceListMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__GetDeviceList;
-NsRPC2Communication::BasicCommunication::GetDeviceListResponseMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__GetDeviceListResponse;
-NsRPC2Communication::BasicCommunication::OnAppDeactivatedMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__OnAppDeactivated;
-NsRPC2Communication::BasicCommunication::OnAppRegisteredMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__OnAppRegistered;
-NsRPC2Communication::BasicCommunication::OnAppUnregisteredMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__OnAppUnregistered;
-NsRPC2Communication::BasicCommunication::OnDeviceListUpdatedMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__OnDeviceListUpdated;
-NsRPC2Communication::BasicCommunication::SendDataMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__SendData;
-NsRPC2Communication::BasicCommunication::SendDataResponseMarshaller Marshaller::mNsRPC2Communication_BasicCommunication__SendDataResponse;
-NsRPC2Communication::Buttons::GetCapabilitiesMarshaller Marshaller::mNsRPC2Communication_Buttons__GetCapabilities;
-NsRPC2Communication::Buttons::GetCapabilitiesResponseMarshaller Marshaller::mNsRPC2Communication_Buttons__GetCapabilitiesResponse;
-NsRPC2Communication::Buttons::OnButtonEventMarshaller Marshaller::mNsRPC2Communication_Buttons__OnButtonEvent;
-NsRPC2Communication::Buttons::OnButtonPressMarshaller Marshaller::mNsRPC2Communication_Buttons__OnButtonPress;
-NsRPC2Communication::TTS::ChangeRegistrationMarshaller Marshaller::mNsRPC2Communication_TTS__ChangeRegistration;
-NsRPC2Communication::TTS::ChangeRegistrationResponseMarshaller Marshaller::mNsRPC2Communication_TTS__ChangeRegistrationResponse;
-NsRPC2Communication::TTS::GetCapabilitiesMarshaller Marshaller::mNsRPC2Communication_TTS__GetCapabilities;
-NsRPC2Communication::TTS::GetCapabilitiesResponseMarshaller Marshaller::mNsRPC2Communication_TTS__GetCapabilitiesResponse;
-NsRPC2Communication::TTS::GetLanguageMarshaller Marshaller::mNsRPC2Communication_TTS__GetLanguage;
-NsRPC2Communication::TTS::GetLanguageResponseMarshaller Marshaller::mNsRPC2Communication_TTS__GetLanguageResponse;
-NsRPC2Communication::TTS::GetSupportedLanguagesMarshaller Marshaller::mNsRPC2Communication_TTS__GetSupportedLanguages;
-NsRPC2Communication::TTS::GetSupportedLanguagesResponseMarshaller Marshaller::mNsRPC2Communication_TTS__GetSupportedLanguagesResponse;
-NsRPC2Communication::TTS::OnLanguageChangeMarshaller Marshaller::mNsRPC2Communication_TTS__OnLanguageChange;
-NsRPC2Communication::TTS::SpeakMarshaller Marshaller::mNsRPC2Communication_TTS__Speak;
-NsRPC2Communication::TTS::SpeakResponseMarshaller Marshaller::mNsRPC2Communication_TTS__SpeakResponse;
-NsRPC2Communication::UI::AddCommandMarshaller Marshaller::mNsRPC2Communication_UI__AddCommand;
-NsRPC2Communication::UI::AddCommandResponseMarshaller Marshaller::mNsRPC2Communication_UI__AddCommandResponse;
-NsRPC2Communication::UI::AddSubMenuMarshaller Marshaller::mNsRPC2Communication_UI__AddSubMenu;
-NsRPC2Communication::UI::AddSubMenuResponseMarshaller Marshaller::mNsRPC2Communication_UI__AddSubMenuResponse;
-NsRPC2Communication::UI::AlertMarshaller Marshaller::mNsRPC2Communication_UI__Alert;
-NsRPC2Communication::UI::AlertResponseMarshaller Marshaller::mNsRPC2Communication_UI__AlertResponse;
-NsRPC2Communication::UI::AlertManeuverMarshaller Marshaller::mNsRPC2Communication_UI__AlertManeuver;
-NsRPC2Communication::UI::AlertManeuverResponseMarshaller Marshaller::mNsRPC2Communication_UI__AlertManeuverResponse;
-NsRPC2Communication::UI::ChangeRegistrationMarshaller Marshaller::mNsRPC2Communication_UI__ChangeRegistration;
-NsRPC2Communication::UI::ChangeRegistrationResponseMarshaller Marshaller::mNsRPC2Communication_UI__ChangeRegistrationResponse;
-NsRPC2Communication::UI::CreateInteractionChoiceSetMarshaller Marshaller::mNsRPC2Communication_UI__CreateInteractionChoiceSet;
-NsRPC2Communication::UI::CreateInteractionChoiceSetResponseMarshaller Marshaller::mNsRPC2Communication_UI__CreateInteractionChoiceSetResponse;
-NsRPC2Communication::UI::DeleteCommandMarshaller Marshaller::mNsRPC2Communication_UI__DeleteCommand;
-NsRPC2Communication::UI::DeleteCommandResponseMarshaller Marshaller::mNsRPC2Communication_UI__DeleteCommandResponse;
-NsRPC2Communication::UI::DeleteInteractionChoiceSetMarshaller Marshaller::mNsRPC2Communication_UI__DeleteInteractionChoiceSet;
-NsRPC2Communication::UI::DeleteInteractionChoiceSetResponseMarshaller Marshaller::mNsRPC2Communication_UI__DeleteInteractionChoiceSetResponse;
-NsRPC2Communication::UI::DeleteSubMenuMarshaller Marshaller::mNsRPC2Communication_UI__DeleteSubMenu;
-NsRPC2Communication::UI::DeleteSubMenuResponseMarshaller Marshaller::mNsRPC2Communication_UI__DeleteSubMenuResponse;
-NsRPC2Communication::UI::DialNumberMarshaller Marshaller::mNsRPC2Communication_UI__DialNumber;
-NsRPC2Communication::UI::DialNumberResponseMarshaller Marshaller::mNsRPC2Communication_UI__DialNumberResponse;
-NsRPC2Communication::UI::EndAudioPassThruMarshaller Marshaller::mNsRPC2Communication_UI__EndAudioPassThru;
-NsRPC2Communication::UI::EndAudioPassThruResponseMarshaller Marshaller::mNsRPC2Communication_UI__EndAudioPassThruResponse;
-NsRPC2Communication::UI::GetCapabilitiesMarshaller Marshaller::mNsRPC2Communication_UI__GetCapabilities;
-NsRPC2Communication::UI::GetCapabilitiesResponseMarshaller Marshaller::mNsRPC2Communication_UI__GetCapabilitiesResponse;
-NsRPC2Communication::UI::GetLanguageMarshaller Marshaller::mNsRPC2Communication_UI__GetLanguage;
-NsRPC2Communication::UI::GetLanguageResponseMarshaller Marshaller::mNsRPC2Communication_UI__GetLanguageResponse;
-NsRPC2Communication::UI::GetSupportedLanguagesMarshaller Marshaller::mNsRPC2Communication_UI__GetSupportedLanguages;
-NsRPC2Communication::UI::GetSupportedLanguagesResponseMarshaller Marshaller::mNsRPC2Communication_UI__GetSupportedLanguagesResponse;
-NsRPC2Communication::UI::OnCommandMarshaller Marshaller::mNsRPC2Communication_UI__OnCommand;
-NsRPC2Communication::UI::OnDeviceChosenMarshaller Marshaller::mNsRPC2Communication_UI__OnDeviceChosen;
-NsRPC2Communication::UI::OnDriverDistractionMarshaller Marshaller::mNsRPC2Communication_UI__OnDriverDistraction;
-NsRPC2Communication::UI::OnLanguageChangeMarshaller Marshaller::mNsRPC2Communication_UI__OnLanguageChange;
-NsRPC2Communication::UI::OnReadyMarshaller Marshaller::mNsRPC2Communication_UI__OnReady;
-NsRPC2Communication::UI::OnSystemContextMarshaller Marshaller::mNsRPC2Communication_UI__OnSystemContext;
-NsRPC2Communication::UI::OnTBTClientStateMarshaller Marshaller::mNsRPC2Communication_UI__OnTBTClientState;
-NsRPC2Communication::UI::PerformAudioPassThruMarshaller Marshaller::mNsRPC2Communication_UI__PerformAudioPassThru;
-NsRPC2Communication::UI::PerformAudioPassThruResponseMarshaller Marshaller::mNsRPC2Communication_UI__PerformAudioPassThruResponse;
-NsRPC2Communication::UI::PerformInteractionMarshaller Marshaller::mNsRPC2Communication_UI__PerformInteraction;
-NsRPC2Communication::UI::PerformInteractionResponseMarshaller Marshaller::mNsRPC2Communication_UI__PerformInteractionResponse;
-NsRPC2Communication::UI::ResetGlobalPropertiesMarshaller Marshaller::mNsRPC2Communication_UI__ResetGlobalProperties;
-NsRPC2Communication::UI::ResetGlobalPropertiesResponseMarshaller Marshaller::mNsRPC2Communication_UI__ResetGlobalPropertiesResponse;
-NsRPC2Communication::UI::ScrollableMessageMarshaller Marshaller::mNsRPC2Communication_UI__ScrollableMessage;
-NsRPC2Communication::UI::ScrollableMessageResponseMarshaller Marshaller::mNsRPC2Communication_UI__ScrollableMessageResponse;
-NsRPC2Communication::UI::SetAppIconMarshaller Marshaller::mNsRPC2Communication_UI__SetAppIcon;
-NsRPC2Communication::UI::SetAppIconResponseMarshaller Marshaller::mNsRPC2Communication_UI__SetAppIconResponse;
-NsRPC2Communication::UI::SetDisplayLayoutMarshaller Marshaller::mNsRPC2Communication_UI__SetDisplayLayout;
-NsRPC2Communication::UI::SetDisplayLayoutResponseMarshaller Marshaller::mNsRPC2Communication_UI__SetDisplayLayoutResponse;
-NsRPC2Communication::UI::SetGlobalPropertiesMarshaller Marshaller::mNsRPC2Communication_UI__SetGlobalProperties;
-NsRPC2Communication::UI::SetGlobalPropertiesResponseMarshaller Marshaller::mNsRPC2Communication_UI__SetGlobalPropertiesResponse;
-NsRPC2Communication::UI::SetMediaClockTimerMarshaller Marshaller::mNsRPC2Communication_UI__SetMediaClockTimer;
-NsRPC2Communication::UI::SetMediaClockTimerResponseMarshaller Marshaller::mNsRPC2Communication_UI__SetMediaClockTimerResponse;
-NsRPC2Communication::UI::ShowMarshaller Marshaller::mNsRPC2Communication_UI__Show;
-NsRPC2Communication::UI::ShowResponseMarshaller Marshaller::mNsRPC2Communication_UI__ShowResponse;
-NsRPC2Communication::UI::ShowConstantTBTMarshaller Marshaller::mNsRPC2Communication_UI__ShowConstantTBT;
-NsRPC2Communication::UI::ShowConstantTBTResponseMarshaller Marshaller::mNsRPC2Communication_UI__ShowConstantTBTResponse;
-NsRPC2Communication::UI::SliderMarshaller Marshaller::mNsRPC2Communication_UI__Slider;
-NsRPC2Communication::UI::SliderResponseMarshaller Marshaller::mNsRPC2Communication_UI__SliderResponse;
-NsRPC2Communication::UI::UpdateTurnListMarshaller Marshaller::mNsRPC2Communication_UI__UpdateTurnList;
-NsRPC2Communication::UI::UpdateTurnListResponseMarshaller Marshaller::mNsRPC2Communication_UI__UpdateTurnListResponse;
-NsRPC2Communication::VR::AddCommandMarshaller Marshaller::mNsRPC2Communication_VR__AddCommand;
-NsRPC2Communication::VR::AddCommandResponseMarshaller Marshaller::mNsRPC2Communication_VR__AddCommandResponse;
-NsRPC2Communication::VR::ChangeRegistrationMarshaller Marshaller::mNsRPC2Communication_VR__ChangeRegistration;
-NsRPC2Communication::VR::ChangeRegistrationResponseMarshaller Marshaller::mNsRPC2Communication_VR__ChangeRegistrationResponse;
-NsRPC2Communication::VR::DeleteCommandMarshaller Marshaller::mNsRPC2Communication_VR__DeleteCommand;
-NsRPC2Communication::VR::DeleteCommandResponseMarshaller Marshaller::mNsRPC2Communication_VR__DeleteCommandResponse;
-NsRPC2Communication::VR::GetCapabilitiesMarshaller Marshaller::mNsRPC2Communication_VR__GetCapabilities;
-NsRPC2Communication::VR::GetCapabilitiesResponseMarshaller Marshaller::mNsRPC2Communication_VR__GetCapabilitiesResponse;
-NsRPC2Communication::VR::GetLanguageMarshaller Marshaller::mNsRPC2Communication_VR__GetLanguage;
-NsRPC2Communication::VR::GetLanguageResponseMarshaller Marshaller::mNsRPC2Communication_VR__GetLanguageResponse;
-NsRPC2Communication::VR::GetSupportedLanguagesMarshaller Marshaller::mNsRPC2Communication_VR__GetSupportedLanguages;
-NsRPC2Communication::VR::GetSupportedLanguagesResponseMarshaller Marshaller::mNsRPC2Communication_VR__GetSupportedLanguagesResponse;
-NsRPC2Communication::VR::OnCommandMarshaller Marshaller::mNsRPC2Communication_VR__OnCommand;
-NsRPC2Communication::VR::OnLanguageChangeMarshaller Marshaller::mNsRPC2Communication_VR__OnLanguageChange;
-NsRPC2Communication::VehicleInfo::GetDTCsMarshaller Marshaller::mNsRPC2Communication_VehicleInfo__GetDTCs;
-NsRPC2Communication::VehicleInfo::GetDTCsResponseMarshaller Marshaller::mNsRPC2Communication_VehicleInfo__GetDTCsResponse;
-NsRPC2Communication::VehicleInfo::GetVehicleDataMarshaller Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleData;
-NsRPC2Communication::VehicleInfo::GetVehicleDataResponseMarshaller Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleDataResponse;
-NsRPC2Communication::VehicleInfo::GetVehicleTypeMarshaller Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleType;
-NsRPC2Communication::VehicleInfo::GetVehicleTypeResponseMarshaller Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleTypeResponse;
-NsRPC2Communication::VehicleInfo::OnVehicleDataMarshaller Marshaller::mNsRPC2Communication_VehicleInfo__OnVehicleData;
-NsRPC2Communication::VehicleInfo::ReadDIDMarshaller Marshaller::mNsRPC2Communication_VehicleInfo__ReadDID;
-NsRPC2Communication::VehicleInfo::ReadDIDResponseMarshaller Marshaller::mNsRPC2Communication_VehicleInfo__ReadDIDResponse;
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp
deleted file mode 100644
index 24f3b5115..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp
+++ /dev/null
@@ -1,127 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name Marshaller_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct Marshaller::localHash
-{
- const char *name;
- unsigned int idx;
- void* method;
-};
-
-%%
-BasicCommunication.ActivateApp,0,&Marshaller::mNsRPC2Communication_BasicCommunication__ActivateApp
-BasicCommunication.ActivateAppResponse,1,&Marshaller::mNsRPC2Communication_BasicCommunication__ActivateAppResponse
-BasicCommunication.GetAppList,2,&Marshaller::mNsRPC2Communication_BasicCommunication__GetAppList
-BasicCommunication.GetAppListResponse,3,&Marshaller::mNsRPC2Communication_BasicCommunication__GetAppListResponse
-BasicCommunication.GetDeviceList,4,&Marshaller::mNsRPC2Communication_BasicCommunication__GetDeviceList
-BasicCommunication.GetDeviceListResponse,5,&Marshaller::mNsRPC2Communication_BasicCommunication__GetDeviceListResponse
-BasicCommunication.OnAppDeactivated,6,&Marshaller::mNsRPC2Communication_BasicCommunication__OnAppDeactivated
-BasicCommunication.OnAppDeactivatedResponse,7,&Marshaller::mNsRPC2Communication_BasicCommunication__OnAppDeactivatedResponse
-BasicCommunication.OnAppRegistered,8,&Marshaller::mNsRPC2Communication_BasicCommunication__OnAppRegistered
-BasicCommunication.OnAppUnregistered,9,&Marshaller::mNsRPC2Communication_BasicCommunication__OnAppUnregistered
-BasicCommunication.OnDeviceListUpdated,10,&Marshaller::mNsRPC2Communication_BasicCommunication__OnDeviceListUpdated
-BasicCommunication.SendData,11,&Marshaller::mNsRPC2Communication_BasicCommunication__SendData
-BasicCommunication.SendDataResponse,12,&Marshaller::mNsRPC2Communication_BasicCommunication__SendDataResponse
-Buttons.GetCapabilities,13,&Marshaller::mNsRPC2Communication_Buttons__GetCapabilities
-Buttons.GetCapabilitiesResponse,14,&Marshaller::mNsRPC2Communication_Buttons__GetCapabilitiesResponse
-Buttons.OnButtonEvent,15,&Marshaller::mNsRPC2Communication_Buttons__OnButtonEvent
-Buttons.OnButtonPress,16,&Marshaller::mNsRPC2Communication_Buttons__OnButtonPress
-TTS.ChangeRegistration,17,&Marshaller::mNsRPC2Communication_TTS__ChangeRegistration
-TTS.ChangeRegistrationResponse,18,&Marshaller::mNsRPC2Communication_TTS__ChangeRegistrationResponse
-TTS.GetCapabilities,19,&Marshaller::mNsRPC2Communication_TTS__GetCapabilities
-TTS.GetCapabilitiesResponse,20,&Marshaller::mNsRPC2Communication_TTS__GetCapabilitiesResponse
-TTS.GetLanguage,21,&Marshaller::mNsRPC2Communication_TTS__GetLanguage
-TTS.GetLanguageResponse,22,&Marshaller::mNsRPC2Communication_TTS__GetLanguageResponse
-TTS.GetSupportedLanguages,23,&Marshaller::mNsRPC2Communication_TTS__GetSupportedLanguages
-TTS.GetSupportedLanguagesResponse,24,&Marshaller::mNsRPC2Communication_TTS__GetSupportedLanguagesResponse
-TTS.OnLanguageChange,25,&Marshaller::mNsRPC2Communication_TTS__OnLanguageChange
-TTS.Speak,26,&Marshaller::mNsRPC2Communication_TTS__Speak
-TTS.SpeakResponse,27,&Marshaller::mNsRPC2Communication_TTS__SpeakResponse
-UI.AddCommand,28,&Marshaller::mNsRPC2Communication_UI__AddCommand
-UI.AddCommandResponse,29,&Marshaller::mNsRPC2Communication_UI__AddCommandResponse
-UI.AddSubMenu,30,&Marshaller::mNsRPC2Communication_UI__AddSubMenu
-UI.AddSubMenuResponse,31,&Marshaller::mNsRPC2Communication_UI__AddSubMenuResponse
-UI.Alert,32,&Marshaller::mNsRPC2Communication_UI__Alert
-UI.AlertResponse,33,&Marshaller::mNsRPC2Communication_UI__AlertResponse
-UI.AlertManeuver,34,&Marshaller::mNsRPC2Communication_UI__AlertManeuver
-UI.AlertManeuverResponse,35,&Marshaller::mNsRPC2Communication_UI__AlertManeuverResponse
-UI.ChangeRegistration,36,&Marshaller::mNsRPC2Communication_UI__ChangeRegistration
-UI.ChangeRegistrationResponse,37,&Marshaller::mNsRPC2Communication_UI__ChangeRegistrationResponse
-UI.CreateInteractionChoiceSet,38,&Marshaller::mNsRPC2Communication_UI__CreateInteractionChoiceSet
-UI.CreateInteractionChoiceSetResponse,39,&Marshaller::mNsRPC2Communication_UI__CreateInteractionChoiceSetResponse
-UI.DeleteCommand,40,&Marshaller::mNsRPC2Communication_UI__DeleteCommand
-UI.DeleteCommandResponse,41,&Marshaller::mNsRPC2Communication_UI__DeleteCommandResponse
-UI.DeleteInteractionChoiceSet,42,&Marshaller::mNsRPC2Communication_UI__DeleteInteractionChoiceSet
-UI.DeleteInteractionChoiceSetResponse,43,&Marshaller::mNsRPC2Communication_UI__DeleteInteractionChoiceSetResponse
-UI.DeleteSubMenu,44,&Marshaller::mNsRPC2Communication_UI__DeleteSubMenu
-UI.DeleteSubMenuResponse,45,&Marshaller::mNsRPC2Communication_UI__DeleteSubMenuResponse
-UI.DialNumber,46,&Marshaller::mNsRPC2Communication_UI__DialNumber
-UI.DialNumberResponse,47,&Marshaller::mNsRPC2Communication_UI__DialNumberResponse
-UI.EndAudioPassThru,48,&Marshaller::mNsRPC2Communication_UI__EndAudioPassThru
-UI.EndAudioPassThruResponse,49,&Marshaller::mNsRPC2Communication_UI__EndAudioPassThruResponse
-UI.GetCapabilities,50,&Marshaller::mNsRPC2Communication_UI__GetCapabilities
-UI.GetCapabilitiesResponse,51,&Marshaller::mNsRPC2Communication_UI__GetCapabilitiesResponse
-UI.GetLanguage,52,&Marshaller::mNsRPC2Communication_UI__GetLanguage
-UI.GetLanguageResponse,53,&Marshaller::mNsRPC2Communication_UI__GetLanguageResponse
-UI.GetSupportedLanguages,54,&Marshaller::mNsRPC2Communication_UI__GetSupportedLanguages
-UI.GetSupportedLanguagesResponse,55,&Marshaller::mNsRPC2Communication_UI__GetSupportedLanguagesResponse
-UI.OnCommand,56,&Marshaller::mNsRPC2Communication_UI__OnCommand
-UI.OnDeviceChosen,57,&Marshaller::mNsRPC2Communication_UI__OnDeviceChosen
-UI.OnDriverDistraction,58,&Marshaller::mNsRPC2Communication_UI__OnDriverDistraction
-UI.OnLanguageChange,59,&Marshaller::mNsRPC2Communication_UI__OnLanguageChange
-UI.OnReady,60,&Marshaller::mNsRPC2Communication_UI__OnReady
-UI.OnSystemContext,61,&Marshaller::mNsRPC2Communication_UI__OnSystemContext
-UI.OnTBTClientState,62,&Marshaller::mNsRPC2Communication_UI__OnTBTClientState
-UI.PerformAudioPassThru,63,&Marshaller::mNsRPC2Communication_UI__PerformAudioPassThru
-UI.PerformAudioPassThruResponse,64,&Marshaller::mNsRPC2Communication_UI__PerformAudioPassThruResponse
-UI.PerformInteraction,65,&Marshaller::mNsRPC2Communication_UI__PerformInteraction
-UI.PerformInteractionResponse,66,&Marshaller::mNsRPC2Communication_UI__PerformInteractionResponse
-UI.ResetGlobalProperties,67,&Marshaller::mNsRPC2Communication_UI__ResetGlobalProperties
-UI.ResetGlobalPropertiesResponse,68,&Marshaller::mNsRPC2Communication_UI__ResetGlobalPropertiesResponse
-UI.ScrollableMessage,69,&Marshaller::mNsRPC2Communication_UI__ScrollableMessage
-UI.ScrollableMessageResponse,70,&Marshaller::mNsRPC2Communication_UI__ScrollableMessageResponse
-UI.SetAppIcon,71,&Marshaller::mNsRPC2Communication_UI__SetAppIcon
-UI.SetAppIconResponse,72,&Marshaller::mNsRPC2Communication_UI__SetAppIconResponse
-UI.SetDisplayLayout,73,&Marshaller::mNsRPC2Communication_UI__SetDisplayLayout
-UI.SetDisplayLayoutResponse,74,&Marshaller::mNsRPC2Communication_UI__SetDisplayLayoutResponse
-UI.SetGlobalProperties,75,&Marshaller::mNsRPC2Communication_UI__SetGlobalProperties
-UI.SetGlobalPropertiesResponse,76,&Marshaller::mNsRPC2Communication_UI__SetGlobalPropertiesResponse
-UI.SetMediaClockTimer,77,&Marshaller::mNsRPC2Communication_UI__SetMediaClockTimer
-UI.SetMediaClockTimerResponse,78,&Marshaller::mNsRPC2Communication_UI__SetMediaClockTimerResponse
-UI.Show,79,&Marshaller::mNsRPC2Communication_UI__Show
-UI.ShowResponse,80,&Marshaller::mNsRPC2Communication_UI__ShowResponse
-UI.ShowConstantTBT,81,&Marshaller::mNsRPC2Communication_UI__ShowConstantTBT
-UI.ShowConstantTBTResponse,82,&Marshaller::mNsRPC2Communication_UI__ShowConstantTBTResponse
-UI.Slider,83,&Marshaller::mNsRPC2Communication_UI__Slider
-UI.SliderResponse,84,&Marshaller::mNsRPC2Communication_UI__SliderResponse
-UI.UpdateTurnList,85,&Marshaller::mNsRPC2Communication_UI__UpdateTurnList
-UI.UpdateTurnListResponse,86,&Marshaller::mNsRPC2Communication_UI__UpdateTurnListResponse
-VR.AddCommand,87,&Marshaller::mNsRPC2Communication_VR__AddCommand
-VR.AddCommandResponse,88,&Marshaller::mNsRPC2Communication_VR__AddCommandResponse
-VR.ChangeRegistration,89,&Marshaller::mNsRPC2Communication_VR__ChangeRegistration
-VR.ChangeRegistrationResponse,90,&Marshaller::mNsRPC2Communication_VR__ChangeRegistrationResponse
-VR.DeleteCommand,91,&Marshaller::mNsRPC2Communication_VR__DeleteCommand
-VR.DeleteCommandResponse,92,&Marshaller::mNsRPC2Communication_VR__DeleteCommandResponse
-VR.GetCapabilities,93,&Marshaller::mNsRPC2Communication_VR__GetCapabilities
-VR.GetCapabilitiesResponse,94,&Marshaller::mNsRPC2Communication_VR__GetCapabilitiesResponse
-VR.GetLanguage,95,&Marshaller::mNsRPC2Communication_VR__GetLanguage
-VR.GetLanguageResponse,96,&Marshaller::mNsRPC2Communication_VR__GetLanguageResponse
-VR.GetSupportedLanguages,97,&Marshaller::mNsRPC2Communication_VR__GetSupportedLanguages
-VR.GetSupportedLanguagesResponse,98,&Marshaller::mNsRPC2Communication_VR__GetSupportedLanguagesResponse
-VR.OnCommand,99,&Marshaller::mNsRPC2Communication_VR__OnCommand
-VR.OnLanguageChange,100,&Marshaller::mNsRPC2Communication_VR__OnLanguageChange
-VehicleInfo.GetDTCs,101,&Marshaller::mNsRPC2Communication_VehicleInfo__GetDTCs
-VehicleInfo.GetDTCsResponse,102,&Marshaller::mNsRPC2Communication_VehicleInfo__GetDTCsResponse
-VehicleInfo.GetVehicleData,103,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleData
-VehicleInfo.GetVehicleDataResponse,104,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleDataResponse
-VehicleInfo.GetVehicleType,105,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleType
-VehicleInfo.GetVehicleTypeResponse,106,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleTypeResponse
-VehicleInfo.OnVehicleData,107,&Marshaller::mNsRPC2Communication_VehicleInfo__OnVehicleData
-VehicleInfo.ReadDID,108,&Marshaller::mNsRPC2Communication_VehicleInfo__ReadDID
-VehicleInfo.ReadDIDResponse,109,&Marshaller::mNsRPC2Communication_VehicleInfo__ReadDIDResponse
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.inc b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.inc
deleted file mode 100644
index 230e0a14e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.inc
+++ /dev/null
@@ -1,425 +0,0 @@
-/* Copyright (c) 2013 Ford Motor Company */
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.inc ./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp */
-/* Computed positions: -k'1,7,13,23,$' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 110
-#define MIN_WORD_LENGTH 7
-#define MAX_WORD_LENGTH 43
-#define MIN_HASH_VALUE 17
-#define MAX_HASH_VALUE 208
-/* maximum key range = 192, duplicates = 0 */
-
-namespace NsRPC2Communication {
-
-class Marshaller_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct Marshaller::localHash *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-Marshaller_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 80, 0, 30, 40, 209,
- 209, 10, 209, 209, 209, 209, 90, 122, 209, 5,
- 0, 209, 70, 25, 65, 0, 40, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 5, 209, 15,
- 0, 0, 85, 0, 55, 20, 209, 0, 25, 115,
- 0, 5, 5, 209, 25, 0, 5, 50, 209, 70,
- 209, 95, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[22]];
- /*FALLTHROUGH*/
- case 22:
- case 21:
- case 20:
- case 19:
- case 18:
- case 17:
- case 16:
- case 15:
- case 14:
- case 13:
- hval += asso_values[(unsigned char)str[12]];
- /*FALLTHROUGH*/
- case 12:
- case 11:
- case 10:
- case 9:
- case 8:
- case 7:
- hval += asso_values[(unsigned char)str[6]];
- /*FALLTHROUGH*/
- case 6:
- case 5:
- case 4:
- case 3:
- case 2:
- case 1:
- hval += asso_values[(unsigned char)str[0]];
- break;
- }
- return hval + asso_values[(unsigned char)str[len - 1]];
-}
-
-const struct Marshaller::localHash *
-Marshaller_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 12, 0, 19, 0, 0, 17, 0, 19, 20, 21, 17,
- 23, 24, 25, 21, 22, 28, 9, 0, 31, 32, 8, 29, 0, 21,
- 37, 13, 29, 0, 16, 37, 0, 29, 0, 21, 27, 0, 24, 35,
- 0, 12, 38, 34, 35, 36, 32, 0, 19, 0, 0, 22, 43, 19,
- 0, 21, 17, 18, 9, 30, 0, 0, 38, 0, 25, 21, 27, 13,
- 0, 15, 26, 17, 13, 29, 15, 21, 22, 13, 24, 0, 21, 32,
- 23, 24, 40, 21, 32, 0, 14, 10, 26, 0, 0, 19, 30, 21,
- 22, 18, 0, 0, 16, 27, 0, 29, 25, 26, 27, 18, 34, 0,
- 26, 0, 33, 0, 0, 16, 0, 0, 29, 0, 0, 37, 13, 24,
- 0, 26, 27, 0, 14, 0, 24, 7, 0, 34, 0, 0, 22, 0,
- 19, 0, 0, 0, 18, 19, 0, 0, 0, 0, 0, 0, 31, 27,
- 0, 19, 30, 16, 0, 0, 0, 20, 29, 0, 0, 24, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 21, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23
- };
- static const struct Marshaller::localHash wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 74 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.OnCommand",56,&Marshaller::mNsRPC2Communication_UI__OnCommand},
- {""},
-#line 80 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.OnTBTClientState",62,&Marshaller::mNsRPC2Communication_UI__OnTBTClientState},
- {""}, {""},
-#line 102 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.SliderResponse",84,&Marshaller::mNsRPC2Communication_UI__SliderResponse},
- {""},
-#line 77 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.OnLanguageChange",59,&Marshaller::mNsRPC2Communication_UI__OnLanguageChange},
-#line 87 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.ScrollableMessage",69,&Marshaller::mNsRPC2Communication_UI__ScrollableMessage},
-#line 34 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"Buttons.OnButtonPress",16,&Marshaller::mNsRPC2Communication_Buttons__OnButtonPress},
-#line 103 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.UpdateTurnList",85,&Marshaller::mNsRPC2Communication_UI__UpdateTurnList},
-#line 31 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"Buttons.GetCapabilities",13,&Marshaller::mNsRPC2Communication_Buttons__GetCapabilities},
-#line 85 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.ResetGlobalProperties",67,&Marshaller::mNsRPC2Communication_UI__ResetGlobalProperties},
-#line 104 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.UpdateTurnListResponse",86,&Marshaller::mNsRPC2Communication_UI__UpdateTurnListResponse},
-#line 33 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"Buttons.OnButtonEvent",15,&Marshaller::mNsRPC2Communication_Buttons__OnButtonEvent},
-#line 93 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.SetGlobalProperties",75,&Marshaller::mNsRPC2Communication_UI__SetGlobalProperties},
-#line 88 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.ScrollableMessageResponse",70,&Marshaller::mNsRPC2Communication_UI__ScrollableMessageResponse},
-#line 101 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.Slider",83,&Marshaller::mNsRPC2Communication_UI__Slider},
- {""},
-#line 32 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"Buttons.GetCapabilitiesResponse",14,&Marshaller::mNsRPC2Communication_Buttons__GetCapabilitiesResponse},
-#line 86 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.ResetGlobalPropertiesResponse",68,&Marshaller::mNsRPC2Communication_UI__ResetGlobalPropertiesResponse},
-#line 50 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.Alert",32,&Marshaller::mNsRPC2Communication_UI__Alert},
-#line 60 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.DeleteInteractionChoiceSet",42,&Marshaller::mNsRPC2Communication_UI__DeleteInteractionChoiceSet},
- {""},
-#line 54 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.ChangeRegistration",36,&Marshaller::mNsRPC2Communication_UI__ChangeRegistration},
-#line 61 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.DeleteInteractionChoiceSetResponse",43,&Marshaller::mNsRPC2Communication_UI__DeleteInteractionChoiceSetResponse},
-#line 46 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.AddCommand",28,&Marshaller::mNsRPC2Communication_UI__AddCommand},
-#line 56 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.CreateInteractionChoiceSet",38,&Marshaller::mNsRPC2Communication_UI__CreateInteractionChoiceSet},
- {""},
-#line 51 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.AlertResponse",33,&Marshaller::mNsRPC2Communication_UI__AlertResponse},
-#line 57 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.CreateInteractionChoiceSetResponse",39,&Marshaller::mNsRPC2Communication_UI__CreateInteractionChoiceSetResponse},
- {""},
-#line 55 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.ChangeRegistrationResponse",37,&Marshaller::mNsRPC2Communication_UI__ChangeRegistrationResponse},
- {""},
-#line 47 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.AddCommandResponse",29,&Marshaller::mNsRPC2Communication_UI__AddCommandResponse},
-#line 29 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.SendData",11,&Marshaller::mNsRPC2Communication_BasicCommunication__SendData},
- {""},
-#line 72 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.GetSupportedLanguages",54,&Marshaller::mNsRPC2Communication_UI__GetSupportedLanguages},
-#line 30 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.SendDataResponse",12,&Marshaller::mNsRPC2Communication_BasicCommunication__SendDataResponse},
- {""},
-#line 117 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.OnCommand",99,&Marshaller::mNsRPC2Communication_VR__OnCommand},
-#line 28 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.OnDeviceListUpdated",10,&Marshaller::mNsRPC2Communication_BasicCommunication__OnDeviceListUpdated},
-#line 26 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.OnAppRegistered",8,&Marshaller::mNsRPC2Communication_BasicCommunication__OnAppRegistered},
-#line 24 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.OnAppDeactivated",6,&Marshaller::mNsRPC2Communication_BasicCommunication__OnAppDeactivated},
-#line 27 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.OnAppUnregistered",9,&Marshaller::mNsRPC2Communication_BasicCommunication__OnAppUnregistered},
-#line 73 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.GetSupportedLanguagesResponse",55,&Marshaller::mNsRPC2Communication_UI__GetSupportedLanguagesResponse},
- {""},
-#line 118 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.OnLanguageChange",100,&Marshaller::mNsRPC2Communication_VR__OnLanguageChange},
- {""}, {""},
-#line 76 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.OnDriverDistraction",58,&Marshaller::mNsRPC2Communication_UI__OnDriverDistraction},
-#line 25 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.OnAppDeactivatedResponse",7,&Marshaller::mNsRPC2Communication_UI__OnDriverDistraction}, // TODO(AK): remove in new code generation
-#line 119 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VehicleInfo.GetDTCs",101,&Marshaller::mNsRPC2Communication_VehicleInfo__GetDTCs},
- {""},
-#line 65 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.DialNumberResponse",47,&Marshaller::mNsRPC2Communication_UI__DialNumberResponse},
-#line 75 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.OnDeviceChosen",57,&Marshaller::mNsRPC2Communication_UI__OnDeviceChosen},
-#line 68 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.GetCapabilities",50,&Marshaller::mNsRPC2Communication_UI__GetCapabilities},
-#line 44 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"TTS.Speak",26,&Marshaller::mNsRPC2Communication_TTS__Speak},
-#line 18 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.ActivateApp",0,&Marshaller::mNsRPC2Communication_BasicCommunication__ActivateApp},
- {""}, {""},
-#line 19 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.ActivateAppResponse",1,&Marshaller::mNsRPC2Communication_BasicCommunication__ActivateAppResponse},
- {""},
-#line 125 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VehicleInfo.OnVehicleData",107,&Marshaller::mNsRPC2Communication_VehicleInfo__OnVehicleData},
-#line 107 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.ChangeRegistration",89,&Marshaller::mNsRPC2Communication_VR__ChangeRegistration},
-#line 120 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VehicleInfo.GetDTCsResponse",102,&Marshaller::mNsRPC2Communication_VehicleInfo__GetDTCsResponse},
-#line 105 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.AddCommand",87,&Marshaller::mNsRPC2Communication_VR__AddCommand},
- {""},
-#line 98 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.ShowResponse",80,&Marshaller::mNsRPC2Communication_UI__ShowResponse},
-#line 69 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.GetCapabilitiesResponse",51,&Marshaller::mNsRPC2Communication_UI__GetCapabilitiesResponse},
-#line 45 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"TTS.SpeakResponse",27,&Marshaller::mNsRPC2Communication_TTS__SpeakResponse},
-#line 64 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.DialNumber",46,&Marshaller::mNsRPC2Communication_UI__DialNumber},
-#line 108 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.ChangeRegistrationResponse",90,&Marshaller::mNsRPC2Communication_VR__ChangeRegistrationResponse},
-#line 39 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"TTS.GetLanguage",21,&Marshaller::mNsRPC2Communication_TTS__GetLanguage},
-#line 106 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.AddCommandResponse",88,&Marshaller::mNsRPC2Communication_VR__AddCommandResponse},
-#line 35 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"TTS.ChangeRegistration",17,&Marshaller::mNsRPC2Communication_TTS__ChangeRegistration},
-#line 89 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.SetAppIcon",71,&Marshaller::mNsRPC2Communication_UI__SetAppIcon},
-#line 115 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.GetSupportedLanguages",97,&Marshaller::mNsRPC2Communication_VR__GetSupportedLanguages},
- {""},
-#line 49 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.AddSubMenuResponse",31,&Marshaller::mNsRPC2Communication_UI__AddSubMenuResponse},
-#line 22 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.GetDeviceList",4,&Marshaller::mNsRPC2Communication_BasicCommunication__GetDeviceList},
-#line 40 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"TTS.GetLanguageResponse",22,&Marshaller::mNsRPC2Communication_TTS__GetLanguageResponse},
-#line 53 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.AlertManeuverResponse",35,&Marshaller::mNsRPC2Communication_UI__AlertManeuverResponse},
-#line 23 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.GetDeviceListResponse",5,&Marshaller::mNsRPC2Communication_BasicCommunication__GetDeviceListResponse},
-#line 90 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.SetAppIconResponse",72,&Marshaller::mNsRPC2Communication_UI__SetAppIconResponse},
-#line 116 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.GetSupportedLanguagesResponse",98,&Marshaller::mNsRPC2Communication_VR__GetSupportedLanguagesResponse},
- {""},
-#line 70 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.GetLanguage",52,&Marshaller::mNsRPC2Communication_UI__GetLanguage},
-#line 78 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.OnReady",60,&Marshaller::mNsRPC2Communication_UI__OnReady},
-#line 100 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.ShowConstantTBTResponse",82,&Marshaller::mNsRPC2Communication_UI__ShowConstantTBTResponse},
- {""}, {""},
-#line 37 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"TTS.GetCapabilities",19,&Marshaller::mNsRPC2Communication_TTS__GetCapabilities},
-#line 94 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.SetGlobalPropertiesResponse",76,&Marshaller::mNsRPC2Communication_UI__SetGlobalPropertiesResponse},
-#line 83 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.PerformInteraction",65,&Marshaller::mNsRPC2Communication_UI__PerformInteraction},
-#line 71 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.GetLanguageResponse",53,&Marshaller::mNsRPC2Communication_UI__GetLanguageResponse},
-#line 111 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.GetCapabilities",93,&Marshaller::mNsRPC2Communication_VR__GetCapabilities},
- {""}, {""},
-#line 52 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.AlertManeuver",34,&Marshaller::mNsRPC2Communication_UI__AlertManeuver},
-#line 67 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.EndAudioPassThruResponse",49,&Marshaller::mNsRPC2Communication_UI__EndAudioPassThruResponse},
- {""},
-#line 84 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.PerformInteractionResponse",66,&Marshaller::mNsRPC2Communication_UI__PerformInteractionResponse},
-#line 41 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"TTS.GetSupportedLanguages",23,&Marshaller::mNsRPC2Communication_TTS__GetSupportedLanguages},
-#line 121 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VehicleInfo.GetVehicleData",103,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleData},
-#line 38 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"TTS.GetCapabilitiesResponse",20,&Marshaller::mNsRPC2Communication_TTS__GetCapabilitiesResponse},
-#line 79 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.OnSystemContext",61,&Marshaller::mNsRPC2Communication_UI__OnSystemContext},
-#line 122 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VehicleInfo.GetVehicleDataResponse",104,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleDataResponse},
- {""},
-#line 112 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.GetCapabilitiesResponse",94,&Marshaller::mNsRPC2Communication_VR__GetCapabilitiesResponse},
- {""},
-#line 42 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"TTS.GetSupportedLanguagesResponse",24,&Marshaller::mNsRPC2Communication_TTS__GetSupportedLanguagesResponse},
- {""}, {""},
-#line 58 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.DeleteCommand",40,&Marshaller::mNsRPC2Communication_UI__DeleteCommand},
- {""}, {""},
-#line 20 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.GetAppList",2,&Marshaller::mNsRPC2Communication_BasicCommunication__GetAppList},
- {""}, {""},
-#line 21 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"BasicCommunication.GetAppListResponse",3,&Marshaller::mNsRPC2Communication_BasicCommunication__GetAppListResponse},
-#line 48 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.AddSubMenu",30,&Marshaller::mNsRPC2Communication_UI__AddSubMenu},
-#line 59 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.DeleteCommandResponse",41,&Marshaller::mNsRPC2Communication_UI__DeleteCommandResponse},
- {""},
-#line 123 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VehicleInfo.GetVehicleType",105,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleType},
-#line 127 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VehicleInfo.ReadDIDResponse",109,&Marshaller::mNsRPC2Communication_VehicleInfo__ReadDIDResponse},
- {""},
-#line 113 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.GetLanguage",95,&Marshaller::mNsRPC2Communication_VR__GetLanguage},
- {""},
-#line 63 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.DeleteSubMenuResponse",45,&Marshaller::mNsRPC2Communication_UI__DeleteSubMenuResponse},
-#line 97 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.Show",79,&Marshaller::mNsRPC2Communication_UI__Show},
- {""},
-#line 124 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VehicleInfo.GetVehicleTypeResponse",106,&Marshaller::mNsRPC2Communication_VehicleInfo__GetVehicleTypeResponse},
- {""}, {""},
-#line 114 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.GetLanguageResponse",96,&Marshaller::mNsRPC2Communication_VR__GetLanguageResponse},
- {""},
-#line 66 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.EndAudioPassThru",48,&Marshaller::mNsRPC2Communication_UI__EndAudioPassThru},
- {""}, {""}, {""},
-#line 99 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.ShowConstantTBT",81,&Marshaller::mNsRPC2Communication_UI__ShowConstantTBT},
-#line 91 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.SetDisplayLayout",73,&Marshaller::mNsRPC2Communication_UI__SetDisplayLayout},
- {""}, {""}, {""}, {""}, {""}, {""},
-#line 82 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.PerformAudioPassThruResponse",64,&Marshaller::mNsRPC2Communication_UI__PerformAudioPassThruResponse},
-#line 92 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.SetDisplayLayoutResponse",74,&Marshaller::mNsRPC2Communication_UI__SetDisplayLayoutResponse},
- {""},
-#line 126 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VehicleInfo.ReadDID",108,&Marshaller::mNsRPC2Communication_VehicleInfo__ReadDID},
-#line 36 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"TTS.ChangeRegistrationResponse",18,&Marshaller::mNsRPC2Communication_TTS__ChangeRegistrationResponse},
-#line 109 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.DeleteCommand",91,&Marshaller::mNsRPC2Communication_VR__DeleteCommand},
- {""}, {""}, {""},
-#line 43 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"TTS.OnLanguageChange",25,&Marshaller::mNsRPC2Communication_TTS__OnLanguageChange},
-#line 96 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.SetMediaClockTimerResponse",78,&Marshaller::mNsRPC2Communication_UI__SetMediaClockTimerResponse},
- {""}, {""},
-#line 110 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"VR.DeleteCommandResponse",92,&Marshaller::mNsRPC2Communication_VR__DeleteCommandResponse},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 62 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.DeleteSubMenu",44,&Marshaller::mNsRPC2Communication_UI__DeleteSubMenu},
- {""}, {""}, {""}, {""},
-#line 95 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.SetMediaClockTimer",77,&Marshaller::mNsRPC2Communication_UI__SetMediaClockTimer},
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""},
-#line 81 "./src/components/JSONHandler/src/RPC2ObjectsImpl/Marshaller.gp"
- {"UI.PerformAudioPassThru",63,&Marshaller::mNsRPC2Communication_UI__PerformAudioPassThru}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateApp.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateApp.cpp
deleted file mode 100644
index 4335f508b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateApp.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateApp.h"
-#include "../src/../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::SmartDeviceLinkCore
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-ActivateApp& ActivateApp::operator =(const ActivateApp& c)
-{
- appName=c.appName;
- appId=c.appId;
- return *this;
-}
-
-
-ActivateApp::~ActivateApp(void)
-{
-}
-
-
-ActivateApp::ActivateApp(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ACTIVATEAPP)
-{
-}
-
-
-ActivateApp::ActivateApp(const ActivateApp& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ACTIVATEAPP,c.getId())
-{
- *this=c;
-}
-
-
-const std::string& ActivateApp::get_appName(void)
-{
- return appName;
-}
-
-bool ActivateApp::set_appName(const std::string& appName_)
-{
- appName=appName_;
- return true;
-}
-
-int ActivateApp::get_appId(void)
-{
- return appId;
-}
-
-bool ActivateApp::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool ActivateApp::checkIntegrity(void)
-{
- return ActivateAppMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppMarshaller.cpp
deleted file mode 100644
index 7dea99072..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateApp.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool ActivateAppMarshaller::checkIntegrity(ActivateApp& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ActivateAppMarshaller::fromString(const std::string& s,ActivateApp& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ActivateAppMarshaller::toString(const ActivateApp& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ActivateAppMarshaller::checkIntegrityConst(const ActivateApp& s)
-{
- if(s.appName.length()>100) return false;
-
- return true;
-}
-
-
-Json::Value ActivateAppMarshaller::toJSON(const ActivateApp& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("BasicCommunication.ActivateApp");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["appName"]=Json::Value(e.appName);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool ActivateAppMarshaller::fromJSON(const Json::Value& json,ActivateApp& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("BasicCommunication.ActivateApp")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("appName") || !js["appName"].isString()) return false;
- c.appName=js["appName"].asString();
- if(c.appName.length()>100) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppMarshaller.h
deleted file mode 100644
index 0cc715cfc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ACTIVATEAPPMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ACTIVATEAPPMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateApp.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct ActivateAppMarshaller
- {
- static bool checkIntegrity(ActivateApp& e);
- static bool checkIntegrityConst(const ActivateApp& e);
-
- static bool fromString(const std::string& s,ActivateApp& e);
- static const std::string toString(const ActivateApp& e);
-
- static bool fromJSON(const Json::Value& s,ActivateApp& e);
- static Json::Value toJSON(const ActivateApp& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponse.cpp
deleted file mode 100644
index d499fbc78..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateAppResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunicationication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-ActivateAppResponse& ActivateAppResponse::operator =(const ActivateAppResponse& c)
-{
- return *this;
-}
-
-
-ActivateAppResponse::~ActivateAppResponse(void)
-{
-}
-
-
-ActivateAppResponse::ActivateAppResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ACTIVATEAPPRESPONSE)
-{
-}
-
-
-ActivateAppResponse::ActivateAppResponse(const ActivateAppResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ACTIVATEAPPRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool ActivateAppResponse::checkIntegrity(void)
-{
- return ActivateAppResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponseMarshaller.cpp
deleted file mode 100644
index 047b05ce0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateAppResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/ActivateAppResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool ActivateAppResponseMarshaller::checkIntegrity(ActivateAppResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ActivateAppResponseMarshaller::fromString(const std::string& s,ActivateAppResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ActivateAppResponseMarshaller::toString(const ActivateAppResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ActivateAppResponseMarshaller::checkIntegrityConst(const ActivateAppResponse& s)
-{
- return true;
-}
-
-
-Json::Value ActivateAppResponseMarshaller::toJSON(const ActivateAppResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("BasicCommunication.ActivateAppResponse");
-
- return json;
-}
-
-
-bool ActivateAppResponseMarshaller::fromJSON(const Json::Value& json,ActivateAppResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("BasicCommunication.ActivateAppResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponseMarshaller.h
deleted file mode 100644
index 7d7ab0615..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/ActivateAppResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ACTIVATEAPPRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ACTIVATEAPPRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/ActivateAppResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct ActivateAppResponseMarshaller
- {
- static bool checkIntegrity(ActivateAppResponse& e);
- static bool checkIntegrityConst(const ActivateAppResponse& e);
-
- static bool fromString(const std::string& s,ActivateAppResponse& e);
- static const std::string toString(const ActivateAppResponse& e);
-
- static bool fromJSON(const Json::Value& s,ActivateAppResponse& e);
- static Json::Value toJSON(const ActivateAppResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppList.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppList.cpp
deleted file mode 100644
index c14852243..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppList.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppList.h"
-#include "../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-GetAppList& GetAppList::operator =(const GetAppList& c)
-{
- return *this;
-}
-
-
-GetAppList::~GetAppList(void)
-{
-}
-
-
-GetAppList::GetAppList(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETAPPLIST)
-{
-}
-
-
-GetAppList::GetAppList(const GetAppList& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETAPPLIST,c.getId())
-{
- *this=c;
-}
-
-
-bool GetAppList::checkIntegrity(void)
-{
- return GetAppListMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListMarshaller.cpp
deleted file mode 100644
index d2f2cd302..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppList.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/GetAppListMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool GetAppListMarshaller::checkIntegrity(GetAppList& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetAppListMarshaller::fromString(const std::string& s,GetAppList& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetAppListMarshaller::toString(const GetAppList& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetAppListMarshaller::checkIntegrityConst(const GetAppList& s)
-{
- return true;
-}
-
-
-Json::Value GetAppListMarshaller::toJSON(const GetAppList& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("BasicCommunication.GetAppList");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetAppListMarshaller::fromJSON(const Json::Value& json,GetAppList& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("BasicCommunication.GetAppList")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListMarshaller.h
deleted file mode 100644
index 5fe06a127..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETAPPLISTMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETAPPLISTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppList.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct GetAppListMarshaller
- {
- static bool checkIntegrity(GetAppList& e);
- static bool checkIntegrityConst(const GetAppList& e);
-
- static bool fromString(const std::string& s,GetAppList& e);
- static const std::string toString(const GetAppList& e);
-
- static bool fromJSON(const Json::Value& s,GetAppList& e);
- static Json::Value toJSON(const GetAppList& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponse.cpp
deleted file mode 100644
index 4e778f4e4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponse.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppListResponse.h"
-#include "../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-GetAppListResponse& GetAppListResponse::operator =(const GetAppListResponse& c)
-{
- appList=c.appList;
- return *this;
-}
-
-
-GetAppListResponse::~GetAppListResponse(void)
-{
-}
-
-
-GetAppListResponse::GetAppListResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETAPPLISTRESPONSE)
-{
-}
-
-
-GetAppListResponse::GetAppListResponse(const GetAppListResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETAPPLISTRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::HMIApplication>& GetAppListResponse::get_appList(void)
-{
- return appList;
-}
-
-bool GetAppListResponse::set_appList(const std::vector< NsSmartDeviceLinkRPCV2::HMIApplication>& appList_)
-{
- appList=appList_;
- return true;
-}
-
-bool GetAppListResponse::checkIntegrity(void)
-{
- return GetAppListResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponseMarshaller.cpp
deleted file mode 100644
index 66c05d426..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponseMarshaller.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppListResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/HMIApplicationMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/GetAppListResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool GetAppListResponseMarshaller::checkIntegrity(GetAppListResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetAppListResponseMarshaller::fromString(const std::string& s,GetAppListResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetAppListResponseMarshaller::toString(const GetAppListResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetAppListResponseMarshaller::checkIntegrityConst(const GetAppListResponse& s)
-{
- {
- unsigned int i=s.appList.size();
- if(i<0) return false;
- }
-
- return true;
-}
-
-
-Json::Value GetAppListResponseMarshaller::toJSON(const GetAppListResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("BasicCommunication.GetAppListResponse");
-
- {
- unsigned int i=e.appList.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::HMIApplicationMarshaller::toJSON(e.appList[i]);
-
- json["result"]["appList"]=j;
- }
- return json;
-}
-
-
-bool GetAppListResponseMarshaller::fromJSON(const Json::Value& json,GetAppListResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("BasicCommunication.GetAppListResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("appList") || !js["appList"].isArray()) return false;
- {
- unsigned int i=js["appList"].size();
- if(i<0) return false;
- c.appList.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::HMIApplication t;
- if(!NsSmartDeviceLinkRPCV2::HMIApplicationMarshaller::fromJSON(js["appList"][i],t))
- return false;
- c.appList[i]=t;
- }
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponseMarshaller.h
deleted file mode 100644
index e037e81bf..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetAppListResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETAPPLISTRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETAPPLISTRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetAppListResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct GetAppListResponseMarshaller
- {
- static bool checkIntegrity(GetAppListResponse& e);
- static bool checkIntegrityConst(const GetAppListResponse& e);
-
- static bool fromString(const std::string& s,GetAppListResponse& e);
- static const std::string toString(const GetAppListResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetAppListResponse& e);
- static Json::Value toJSON(const GetAppListResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceList.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceList.cpp
deleted file mode 100644
index 38a3eb208..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceList.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceList.h"
-#include "../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-GetDeviceList& GetDeviceList::operator =(const GetDeviceList& c)
-{
- return *this;
-}
-
-
-GetDeviceList::~GetDeviceList(void)
-{
-}
-
-
-GetDeviceList::GetDeviceList(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETDEVICELIST)
-{
-}
-
-
-GetDeviceList::GetDeviceList(const GetDeviceList& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETDEVICELIST,c.getId())
-{
- *this=c;
-}
-
-
-bool GetDeviceList::checkIntegrity(void)
-{
- return GetDeviceListMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListMarshaller.cpp
deleted file mode 100644
index ad213e0e1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceList.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/GetDeviceListMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool GetDeviceListMarshaller::checkIntegrity(GetDeviceList& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetDeviceListMarshaller::fromString(const std::string& s,GetDeviceList& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetDeviceListMarshaller::toString(const GetDeviceList& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetDeviceListMarshaller::checkIntegrityConst(const GetDeviceList& s)
-{
- return true;
-}
-
-
-Json::Value GetDeviceListMarshaller::toJSON(const GetDeviceList& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("BasicCommunication.GetDeviceList");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetDeviceListMarshaller::fromJSON(const Json::Value& json,GetDeviceList& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("BasicCommunication.GetDeviceList")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListMarshaller.h
deleted file mode 100644
index e189a62f9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETDEVICELISTMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETDEVICELISTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceList.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct GetDeviceListMarshaller
- {
- static bool checkIntegrity(GetDeviceList& e);
- static bool checkIntegrityConst(const GetDeviceList& e);
-
- static bool fromString(const std::string& s,GetDeviceList& e);
- static const std::string toString(const GetDeviceList& e);
-
- static bool fromJSON(const Json::Value& s,GetDeviceList& e);
- static Json::Value toJSON(const GetDeviceList& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.cpp
deleted file mode 100644
index 5b55b63c1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.h"
-#include "../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-GetDeviceListResponse& GetDeviceListResponse::operator =(const GetDeviceListResponse& c)
-{
- if(deviceList) delete deviceList;
- deviceList= c.deviceList ? new std::vector<std::string>(c.deviceList[0]) : 0;
- return *this;
-}
-
-
-GetDeviceListResponse::~GetDeviceListResponse(void)
-{
- if(deviceList) delete deviceList;
-}
-
-
-GetDeviceListResponse::GetDeviceListResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETDEVICELISTRESPONSE),
- deviceList(0)
-{
-}
-
-
-GetDeviceListResponse::GetDeviceListResponse(const GetDeviceListResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__GETDEVICELISTRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const std::vector< std::string>* GetDeviceListResponse::get_deviceList(void)
-{
- return deviceList;
-}
-
-bool GetDeviceListResponse::set_deviceList(const std::vector< std::string>& deviceList_)
-{
- if(deviceList) delete deviceList;
- deviceList=new std::vector< std::string>(deviceList_);
- return true;
-}
-
-void GetDeviceListResponse::reset_deviceList(void)
-{
- if(deviceList) delete deviceList;
- deviceList=0;
-}
-
-bool GetDeviceListResponse::checkIntegrity(void)
-{
- return GetDeviceListResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponseMarshaller.cpp
deleted file mode 100644
index 8a98df3a0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponseMarshaller.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/GetDeviceListResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool GetDeviceListResponseMarshaller::checkIntegrity(GetDeviceListResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetDeviceListResponseMarshaller::fromString(const std::string& s,GetDeviceListResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetDeviceListResponseMarshaller::toString(const GetDeviceListResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetDeviceListResponseMarshaller::checkIntegrityConst(const GetDeviceListResponse& s)
-{
- if(s.deviceList)
- {
- unsigned int i=s.deviceList[0].size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value GetDeviceListResponseMarshaller::toJSON(const GetDeviceListResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("BasicCommunication.GetDeviceListResponse");
-
- if(e.deviceList)
- {
- unsigned int i=e.deviceList[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=Json::Value(e.deviceList[0][i]);
-
- json["result"]["deviceList"]=j;
- }
- return json;
-}
-
-
-bool GetDeviceListResponseMarshaller::fromJSON(const Json::Value& json,GetDeviceListResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("BasicCommunication.GetDeviceListResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(c.deviceList) delete c.deviceList;
- c.deviceList=0;
- if(js.isMember("deviceList"))
- {
- if(!js["deviceList"].isArray()) return false;
- unsigned int i=js["deviceList"].size();
- if(i<1) return false;
- if(i>100) return false;
-
- c.deviceList=new std::vector<std::string>();
- c.deviceList->resize(js["deviceList"].size());
-
- while(i--)
- {
- if(!js["deviceList"][i].isString())
- return false;
-
- c.deviceList[0][i]=js["deviceList"][i].asString();
- }
- }
-
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponseMarshaller.h
deleted file mode 100644
index 1528dd1a4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/GetDeviceListResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETDEVICELISTRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_GETDEVICELISTRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/GetDeviceListResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct GetDeviceListResponseMarshaller
- {
- static bool checkIntegrity(GetDeviceListResponse& e);
- static bool checkIntegrityConst(const GetDeviceListResponse& e);
-
- static bool fromString(const std::string& s,GetDeviceListResponse& e);
- static const std::string toString(const GetDeviceListResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetDeviceListResponse& e);
- static Json::Value toJSON(const GetDeviceListResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivated.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivated.cpp
deleted file mode 100644
index d1233987d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivated.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivated.h"
-#include "../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-OnAppDeactivated& OnAppDeactivated::operator =(const OnAppDeactivated& c)
-{
- appName=c.appName;
- reason=c.reason;
- appId=c.appId;
- return *this;
-}
-
-
-OnAppDeactivated::~OnAppDeactivated(void)
-{
-}
-
-
-OnAppDeactivated::OnAppDeactivated(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPDEACTIVATED)
-{
-}
-
-
-OnAppDeactivated::OnAppDeactivated(const OnAppDeactivated& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPDEACTIVATED,c.getId())
-{
- *this=c;
-}
-
-
-const std::string& OnAppDeactivated::get_appName(void)
-{
- return appName;
-}
-
-bool OnAppDeactivated::set_appName(const std::string& appName_)
-{
- appName=appName_;
- return true;
-}
-
-const NsSmartDeviceLinkRPCV2::DeactivateReason& OnAppDeactivated::get_reason(void)
-{
- return reason;
-}
-
-bool OnAppDeactivated::set_reason(const NsSmartDeviceLinkRPCV2::DeactivateReason& reason_)
-{
- reason=reason_;
- return true;
-}
-
-int OnAppDeactivated::get_appId(void)
-{
- return appId;
-}
-
-bool OnAppDeactivated::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool OnAppDeactivated::checkIntegrity(void)
-{
- return OnAppDeactivatedMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedMarshaller.cpp
deleted file mode 100644
index 89a0d8423..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedMarshaller.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivated.h"
-#include "../src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/OnAppDeactivatedMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool OnAppDeactivatedMarshaller::checkIntegrity(OnAppDeactivated& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnAppDeactivatedMarshaller::fromString(const std::string& s,OnAppDeactivated& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnAppDeactivatedMarshaller::toString(const OnAppDeactivated& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnAppDeactivatedMarshaller::checkIntegrityConst(const OnAppDeactivated& s)
-{
- if(s.appName.length()>100) return false;
-
- if(!NsSmartDeviceLinkRPCV2::DeactivateReasonMarshaller::checkIntegrityConst(s.reason)) return false;
-
- return true;
-}
-
-
-Json::Value OnAppDeactivatedMarshaller::toJSON(const OnAppDeactivated& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("BasicCommunication.OnAppDeactivated");
-
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["appName"]=Json::Value(e.appName);;
- json["params"]["reason"]=NsSmartDeviceLinkRPCV2::DeactivateReasonMarshaller::toJSON(e.reason);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool OnAppDeactivatedMarshaller::fromJSON(const Json::Value& json,OnAppDeactivated& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("BasicCommunication.OnAppDeactivated")) return false;
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("appName") || !js["appName"].isString()) return false;
- c.appName=js["appName"].asString();
- if(c.appName.length()>100) return false;
- if(!js.isMember("reason") || !NsSmartDeviceLinkRPCV2::DeactivateReasonMarshaller::fromJSON(js["reason"],c.reason)) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedMarshaller.h
deleted file mode 100644
index bcd82d730..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPDEACTIVATEDMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPDEACTIVATEDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivated.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct OnAppDeactivatedMarshaller
- {
- static bool checkIntegrity(OnAppDeactivated& e);
- static bool checkIntegrityConst(const OnAppDeactivated& e);
-
- static bool fromString(const std::string& s,OnAppDeactivated& e);
- static const std::string toString(const OnAppDeactivated& e);
-
- static bool fromJSON(const Json::Value& s,OnAppDeactivated& e);
- static Json::Value toJSON(const OnAppDeactivated& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.cpp
deleted file mode 100644
index 67d305c85..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-OnAppDeactivatedResponse& OnAppDeactivatedResponse::operator =(const OnAppDeactivatedResponse& c)
-{
- return *this;
-}
-
-
-OnAppDeactivatedResponse::~OnAppDeactivatedResponse(void)
-{
-}
-
-
-OnAppDeactivatedResponse::OnAppDeactivatedResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPDEACTIVATEDRESPONSE)
-{
-}
-
-
-OnAppDeactivatedResponse::OnAppDeactivatedResponse(const OnAppDeactivatedResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPDEACTIVATEDRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool OnAppDeactivatedResponse::checkIntegrity(void)
-{
- return OnAppDeactivatedResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponseMarshaller.cpp
deleted file mode 100644
index d35e19839..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool OnAppDeactivatedResponseMarshaller::checkIntegrity(OnAppDeactivatedResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnAppDeactivatedResponseMarshaller::fromString(const std::string& s,OnAppDeactivatedResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnAppDeactivatedResponseMarshaller::toString(const OnAppDeactivatedResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnAppDeactivatedResponseMarshaller::checkIntegrityConst(const OnAppDeactivatedResponse& s)
-{
- return true;
-}
-
-
-Json::Value OnAppDeactivatedResponseMarshaller::toJSON(const OnAppDeactivatedResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("BasicCommunication.OnAppDeactivatedResponse");
-
- return json;
-}
-
-
-bool OnAppDeactivatedResponseMarshaller::fromJSON(const Json::Value& json,OnAppDeactivatedResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("BasicCommunication.OnAppDeactivatedResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponseMarshaller.h
deleted file mode 100644
index 28c4da454..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPDEACTIVATEDRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPDEACTIVATEDRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppDeactivatedResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct OnAppDeactivatedResponseMarshaller
- {
- static bool checkIntegrity(OnAppDeactivatedResponse& e);
- static bool checkIntegrityConst(const OnAppDeactivatedResponse& e);
-
- static bool fromString(const std::string& s,OnAppDeactivatedResponse& e);
- static const std::string toString(const OnAppDeactivatedResponse& e);
-
- static bool fromJSON(const Json::Value& s,OnAppDeactivatedResponse& e);
- static Json::Value toJSON(const OnAppDeactivatedResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegistered.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegistered.cpp
deleted file mode 100644
index 9c78cbd3d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegistered.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppRegistered.h"
-#include "../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-OnAppRegistered& OnAppRegistered::operator =(const OnAppRegistered& c)
-{
- application=c.application;
- return *this;
-}
-
-
-OnAppRegistered::~OnAppRegistered(void)
-{
-}
-
-
-OnAppRegistered::OnAppRegistered(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPREGISTERED)
-{
-}
-
-
-OnAppRegistered::OnAppRegistered(const OnAppRegistered& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPREGISTERED)
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::HMIApplication& OnAppRegistered::get_application(void)
-{
- return application;
-}
-
-bool OnAppRegistered::set_application(const NsSmartDeviceLinkRPCV2::HMIApplication& application_)
-{
- application=application_;
- return true;
-}
-
-bool OnAppRegistered::checkIntegrity(void)
-{
- return OnAppRegisteredMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegisteredMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegisteredMarshaller.cpp
deleted file mode 100644
index 7036d1568..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegisteredMarshaller.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppRegistered.h"
-#include "../src/SDLRPCObjectsImpl/V2/HMIApplicationMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/OnAppRegisteredMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool OnAppRegisteredMarshaller::checkIntegrity(OnAppRegistered& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnAppRegisteredMarshaller::fromString(const std::string& s,OnAppRegistered& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnAppRegisteredMarshaller::toString(const OnAppRegistered& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnAppRegisteredMarshaller::checkIntegrityConst(const OnAppRegistered& s)
-{
- if(!NsSmartDeviceLinkRPCV2::HMIApplicationMarshaller::checkIntegrityConst(s.application)) return false;
-
- return true;
-}
-
-
-Json::Value OnAppRegisteredMarshaller::toJSON(const OnAppRegistered& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("BasicCommunication.OnAppRegistered");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["application"]=NsSmartDeviceLinkRPCV2::HMIApplicationMarshaller::toJSON(e.application);;
- return json;
-}
-
-
-bool OnAppRegisteredMarshaller::fromJSON(const Json::Value& json,OnAppRegistered& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("BasicCommunication.OnAppRegistered")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("application") || !NsSmartDeviceLinkRPCV2::HMIApplicationMarshaller::fromJSON(js["application"],c.application)) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegisteredMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegisteredMarshaller.h
deleted file mode 100644
index 6c919bffd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppRegisteredMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPREGISTEREDMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPREGISTEREDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppRegistered.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct OnAppRegisteredMarshaller
- {
- static bool checkIntegrity(OnAppRegistered& e);
- static bool checkIntegrityConst(const OnAppRegistered& e);
-
- static bool fromString(const std::string& s,OnAppRegistered& e);
- static const std::string toString(const OnAppRegistered& e);
-
- static bool fromJSON(const Json::Value& s,OnAppRegistered& e);
- static Json::Value toJSON(const OnAppRegistered& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregistered.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregistered.cpp
deleted file mode 100644
index f7e7e4a5a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregistered.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppUnregistered.h"
-#include "../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-OnAppUnregistered& OnAppUnregistered::operator =(const OnAppUnregistered& c)
-{
- appName=c.appName;
- if(reason) delete reason;
- reason= c.reason ? new NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason(c.reason[0]) : 0;
- appId=c.appId;
- return *this;
-}
-
-
-OnAppUnregistered::~OnAppUnregistered(void)
-{
- if(reason) delete reason;
-}
-
-
-OnAppUnregistered::OnAppUnregistered(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPUNREGISTERED),
- reason(0)
-{
-}
-
-
-OnAppUnregistered::OnAppUnregistered(const OnAppUnregistered& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONAPPUNREGISTERED)
-{
- *this=c;
-}
-
-
-const std::string& OnAppUnregistered::get_appName(void)
-{
- return appName;
-}
-
-bool OnAppUnregistered::set_appName(const std::string& appName_)
-{
- appName=appName_;
- return true;
-}
-
-const NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason* OnAppUnregistered::get_reason(void)
-{
- return reason;
-}
-
-bool OnAppUnregistered::set_reason(const NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason& reason_)
-{
- if(reason) delete reason;
- reason=new NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason(reason_);
- return true;
-}
-
-void OnAppUnregistered::reset_reason(void)
-{
- if(reason) delete reason;
- reason=0;
-}
-
-int OnAppUnregistered::get_appId(void)
-{
- return appId;
-}
-
-bool OnAppUnregistered::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool OnAppUnregistered::checkIntegrity(void)
-{
- return OnAppUnregisteredMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregisteredMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregisteredMarshaller.cpp
deleted file mode 100644
index 0ecb87e64..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregisteredMarshaller.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppUnregistered.h"
-#include "../src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/OnAppUnregisteredMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool OnAppUnregisteredMarshaller::checkIntegrity(OnAppUnregistered& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnAppUnregisteredMarshaller::fromString(const std::string& s,OnAppUnregistered& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnAppUnregisteredMarshaller::toString(const OnAppUnregistered& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnAppUnregisteredMarshaller::checkIntegrityConst(const OnAppUnregistered& s)
-{
- if(s.appName.length()>100) return false;
-
- if(s.reason && (!NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReasonMarshaller::checkIntegrityConst(s.reason[0]))) return false;
-
- return true;
-}
-
-
-Json::Value OnAppUnregisteredMarshaller::toJSON(const OnAppUnregistered& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("BasicCommunication.OnAppUnregistered");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["appName"]=Json::Value(e.appName);;
- if(e.reason)
- json["params"]["reason"]=NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReasonMarshaller::toJSON(e.reason[0]);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool OnAppUnregisteredMarshaller::fromJSON(const Json::Value& json,OnAppUnregistered& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("BasicCommunication.OnAppUnregistered")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("appName") || !js["appName"].isString()) return false;
- c.appName=js["appName"].asString();
- if(c.appName.length()>100) return false;
-
- if(c.reason) delete c.reason;
- c.reason=0;
- if(js.isMember("reason"))
- {
- c.reason=new NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReason();
- if(!NsSmartDeviceLinkRPCV2::AppInterfaceUnregisteredReasonMarshaller::fromJSON(js["reason"],c.reason[0])) return false;
- }
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregisteredMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregisteredMarshaller.h
deleted file mode 100644
index 91b171826..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnAppUnregisteredMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPUNREGISTEREDMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONAPPUNREGISTEREDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnAppUnregistered.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct OnAppUnregisteredMarshaller
- {
- static bool checkIntegrity(OnAppUnregistered& e);
- static bool checkIntegrityConst(const OnAppUnregistered& e);
-
- static bool fromString(const std::string& s,OnAppUnregistered& e);
- static const std::string toString(const OnAppUnregistered& e);
-
- static bool fromJSON(const Json::Value& s,OnAppUnregistered& e);
- static Json::Value toJSON(const OnAppUnregistered& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.cpp
deleted file mode 100644
index 2691690f1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.h"
-#include "../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-OnDeviceListUpdated& OnDeviceListUpdated::operator =(const OnDeviceListUpdated& c)
-{
- if(deviceList) delete deviceList;
- deviceList= c.deviceList ? new std::vector<std::string>(c.deviceList[0]) : 0;
- return *this;
-}
-
-
-OnDeviceListUpdated::~OnDeviceListUpdated(void)
-{
- if(deviceList) delete deviceList;
-}
-
-
-OnDeviceListUpdated::OnDeviceListUpdated(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONDEVICELISTUPDATED),
- deviceList(0)
-{
-}
-
-
-OnDeviceListUpdated::OnDeviceListUpdated(const OnDeviceListUpdated& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__ONDEVICELISTUPDATED)
-{
- *this=c;
-}
-
-
-const std::vector< std::string>* OnDeviceListUpdated::get_deviceList(void)
-{
- return deviceList;
-}
-
-bool OnDeviceListUpdated::set_deviceList(const std::vector< std::string>& deviceList_)
-{
- if(deviceList) delete deviceList;
- deviceList=new std::vector< std::string>(deviceList_);
- return true;
-}
-
-void OnDeviceListUpdated::reset_deviceList(void)
-{
- if(deviceList) delete deviceList;
- deviceList=0;
-}
-
-bool OnDeviceListUpdated::checkIntegrity(void)
-{
- return OnDeviceListUpdatedMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdatedMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdatedMarshaller.cpp
deleted file mode 100644
index 90c0182bb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdatedMarshaller.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/OnDeviceListUpdatedMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool OnDeviceListUpdatedMarshaller::checkIntegrity(OnDeviceListUpdated& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnDeviceListUpdatedMarshaller::fromString(const std::string& s,OnDeviceListUpdated& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnDeviceListUpdatedMarshaller::toString(const OnDeviceListUpdated& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnDeviceListUpdatedMarshaller::checkIntegrityConst(const OnDeviceListUpdated& s)
-{
- if(s.deviceList)
- {
- unsigned int i=s.deviceList[0].size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value OnDeviceListUpdatedMarshaller::toJSON(const OnDeviceListUpdated& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("BasicCommunication.OnDeviceListUpdated");
- json["params"]=Json::Value(Json::objectValue);
-
- if(e.deviceList)
- {
- unsigned int i=e.deviceList[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=Json::Value(e.deviceList[0][i]);
-
- json["params"]["deviceList"]=j;
- }
- return json;
-}
-
-
-bool OnDeviceListUpdatedMarshaller::fromJSON(const Json::Value& json,OnDeviceListUpdated& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("BasicCommunication.OnDeviceListUpdated")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(c.deviceList) delete c.deviceList;
- c.deviceList=0;
- if(js.isMember("deviceList"))
- {
- if(!js["deviceList"].isArray()) return false;
- unsigned int i=js["deviceList"].size();
- if(i<1) return false;
- if(i>100) return false;
-
- c.deviceList=new std::vector<std::string>();
- c.deviceList->resize(js["deviceList"].size());
-
- while(i--)
- {
- if(!js["deviceList"][i].isString())
- return false;
-
- c.deviceList[0][i]=js["deviceList"][i].asString();
- }
- }
-
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdatedMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdatedMarshaller.h
deleted file mode 100644
index ad26e005e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/OnDeviceListUpdatedMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONDEVICELISTUPDATEDMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_ONDEVICELISTUPDATEDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/OnDeviceListUpdated.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct OnDeviceListUpdatedMarshaller
- {
- static bool checkIntegrity(OnDeviceListUpdated& e);
- static bool checkIntegrityConst(const OnDeviceListUpdated& e);
-
- static bool fromString(const std::string& s,OnDeviceListUpdated& e);
- static const std::string toString(const OnDeviceListUpdated& e);
-
- static bool fromJSON(const Json::Value& s,OnDeviceListUpdated& e);
- static Json::Value toJSON(const OnDeviceListUpdated& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendData.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendData.cpp
deleted file mode 100644
index 6584873bc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendData.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendData.h"
-#include "../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-SendData& SendData::operator =(const SendData& c)
-{
- data=c.data;
- if(url) delete url;
- url= c.url ? new std::string(c.url[0]) : 0;
- if(timeout) delete timeout;
- timeout= c.timeout ? new int(c.timeout[0]) : 0;
- return *this;
-}
-
-
-SendData::~SendData(void)
-{
- if(url) delete url;
- if(timeout) delete timeout;
-}
-
-
-SendData::SendData(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__SENDDATA),
- url(0),
- timeout(0)
-{
-}
-
-
-SendData::SendData(const SendData& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__SENDDATA,c.getId())
-{
- *this=c;
-}
-
-
-const std::vector< std::string>& SendData::get_data(void)
-{
- return data;
-}
-
-bool SendData::set_data(const std::vector< std::string>& data_)
-{
- data=data_;
- return true;
-}
-
-const std::string* SendData::get_url(void)
-{
- return url;
-}
-
-bool SendData::set_url(const std::string& url_)
-{
- if(url) delete url;
- url=new std::string(url_);
- return true;
-}
-
-void SendData::reset_url(void)
-{
- if(url) delete url;
- url=0;
-}
-
-const int* SendData::get_timeout(void)
-{
- return timeout;
-}
-
-bool SendData::set_timeout(const int& timeout_)
-{
- if(timeout) delete timeout;
- timeout=new int(timeout_);
- return true;
-}
-
-void SendData::reset_timeout(void)
-{
- if(timeout) delete timeout;
- timeout=0;
-}
-
-bool SendData::checkIntegrity(void)
-{
- return SendDataMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataMarshaller.cpp
deleted file mode 100644
index 8f737acae..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataMarshaller.cpp
+++ /dev/null
@@ -1,181 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendData.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/SendDataMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool SendDataMarshaller::checkIntegrity(SendData& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SendDataMarshaller::fromString(const std::string& s,SendData& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SendDataMarshaller::toString(const SendData& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SendDataMarshaller::checkIntegrityConst(const SendData& s)
-{
- {
- unsigned int i=s.data.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- if(s.url && (s.url[0].length()>1000)) return false;
-
- if(s.timeout && (s.timeout[0]<-2000000000 || s.timeout[0]>2000000000)) return false;
-
- return true;
-}
-
-
-Json::Value SendDataMarshaller::toJSON(const SendData& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("BasicCommunication.SendData");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- {
- unsigned int i=e.data.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=Json::Value(e.data[i]);
-
- json["params"]["data"]=j;
- }
- if(e.url)
- json["params"]["url"]=Json::Value(e.url[0]);;
- if(e.timeout)
- json["params"]["timeout"]=Json::Value(e.timeout[0]);;
- return json;
-}
-
-
-bool SendDataMarshaller::fromJSON(const Json::Value& json,SendData& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("BasicCommunication.SendData")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("data") || !js["data"].isArray())
- return false;
- {
- c.data.clear();
- unsigned int i=js["data"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.data.resize(i);
- while(i--)
- {
- if(!js["data"][i].isString())
- return false;
- c.data[i]=js["data"][i].asString();
-
- }
- }
-
-
- if(c.url) delete c.url;
- c.url=0;
- if(js.isMember("url"))
- {
- if(!js["url"].isString()) return false;
- c.url=new std::string();
- c.url[0]=js["url"].asString();
- if(c.url[0].length()>1000) return false;
-
- }
-
- if(c.timeout) delete c.timeout;
- c.timeout=0;
- if(js.isMember("timeout"))
- {
- if(!js["timeout"].isInt()) return false;
- c.timeout=new int();
- c.timeout[0]=js["timeout"].asInt();
- if(c.timeout[0]<-2000000000 || c.timeout[0]>2000000000) return false;
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataMarshaller.h
deleted file mode 100644
index f20fbeb5a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_SENDDATAMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_SENDDATAMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendData.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct SendDataMarshaller
- {
- static bool checkIntegrity(SendData& e);
- static bool checkIntegrityConst(const SendData& e);
-
- static bool fromString(const std::string& s,SendData& e);
- static const std::string toString(const SendData& e);
-
- static bool fromJSON(const Json::Value& s,SendData& e);
- static Json::Value toJSON(const SendData& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponse.cpp
deleted file mode 100644
index db77e7e39..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendDataResponse.h"
-#include "../include/JSONHandler/RPC2Objects//Marshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-
-SendDataResponse& SendDataResponse::operator =(const SendDataResponse& c)
-{
- return *this;
-}
-
-
-SendDataResponse::~SendDataResponse(void)
-{
-}
-
-
-SendDataResponse::SendDataResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__SENDDATARESPONSE)
-{
-}
-
-
-SendDataResponse::SendDataResponse(const SendDataResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BASICCOMMUNICATION__SENDDATARESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool SendDataResponse::checkIntegrity(void)
-{
- return SendDataResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponseMarshaller.cpp
deleted file mode 100644
index 8a494799a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendDataResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/RPC2ObjectsImpl//NsRPC2Communication/BasicCommunication/SendDataResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::BasicCommunication
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::BasicCommunication;
-
-bool SendDataResponseMarshaller::checkIntegrity(SendDataResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SendDataResponseMarshaller::fromString(const std::string& s,SendDataResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SendDataResponseMarshaller::toString(const SendDataResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SendDataResponseMarshaller::checkIntegrityConst(const SendDataResponse& s)
-{
- return true;
-}
-
-
-Json::Value SendDataResponseMarshaller::toJSON(const SendDataResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("BasicCommunication.SendDataResponse");
-
- return json;
-}
-
-
-bool SendDataResponseMarshaller::fromJSON(const Json::Value& json,SendDataResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("BasicCommunication.SendDataResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponseMarshaller.h
deleted file mode 100644
index 94974d99c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/BasicCommunication/SendDataResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_SENDDATARESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_SMARTDEVICELINKCORE_SENDDATARESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/BasicCommunication/SendDataResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace BasicCommunication
- {
-
- struct SendDataResponseMarshaller
- {
- static bool checkIntegrity(SendDataResponse& e);
- static bool checkIntegrityConst(const SendDataResponse& e);
-
- static bool fromString(const std::string& s,SendDataResponse& e);
- static const std::string toString(const SendDataResponse& e);
-
- static bool fromJSON(const Json::Value& s,SendDataResponse& e);
- static Json::Value toJSON(const SendDataResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilities.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilities.cpp
deleted file mode 100644
index 4a90e5e58..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilities.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::Buttons;
-
-
-GetCapabilities& GetCapabilities::operator =(const GetCapabilities& c)
-{
- return *this;
-}
-
-
-GetCapabilities::~GetCapabilities(void)
-{
-}
-
-
-GetCapabilities::GetCapabilities(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BUTTONS__GETCAPABILITIES)
-{
-}
-
-
-GetCapabilities::GetCapabilities(const GetCapabilities& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_BUTTONS__GETCAPABILITIES,c.getId())
-{
- *this=c;
-}
-
-
-bool GetCapabilities::checkIntegrity(void)
-{
- return GetCapabilitiesMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesMarshaller.cpp
deleted file mode 100644
index d1d22df2d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilities.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/Buttons/GetCapabilitiesMarshaller.h"
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::Buttons;
-
-bool GetCapabilitiesMarshaller::checkIntegrity(GetCapabilities& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetCapabilitiesMarshaller::fromString(const std::string& s,GetCapabilities& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetCapabilitiesMarshaller::toString(const GetCapabilities& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetCapabilitiesMarshaller::checkIntegrityConst(const GetCapabilities& s)
-{
- return true;
-}
-
-
-Json::Value GetCapabilitiesMarshaller::toJSON(const GetCapabilities& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("Buttons.GetCapabilities");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetCapabilitiesMarshaller::fromJSON(const Json::Value& json,GetCapabilities& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("Buttons.GetCapabilities")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesMarshaller.h
deleted file mode 100644
index 3d5104802..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_BUTTONS_GETCAPABILITIESMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_BUTTONS_GETCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilities.h"
-
-namespace NsRPC2Communication
-{
- namespace Buttons
- {
-
- struct GetCapabilitiesMarshaller
- {
- static bool checkIntegrity(GetCapabilities& e);
- static bool checkIntegrityConst(const GetCapabilities& e);
-
- static bool fromString(const std::string& s,GetCapabilities& e);
- static const std::string toString(const GetCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,GetCapabilities& e);
- static Json::Value toJSON(const GetCapabilities& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponse.cpp
deleted file mode 100644
index f6f3b7467..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponse.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::Buttons;
-
-
-GetCapabilitiesResponse& GetCapabilitiesResponse::operator =(const GetCapabilitiesResponse& c)
-{
- capabilities=c.capabilities;
- if(presetBankCapabilities) delete presetBankCapabilities;
- presetBankCapabilities= c.presetBankCapabilities ? new NsSmartDeviceLinkRPCV2::PresetBankCapabilities(c.presetBankCapabilities[0]) : 0;
- return *this;
-}
-
-
-GetCapabilitiesResponse::~GetCapabilitiesResponse(void)
-{
- if(presetBankCapabilities) delete presetBankCapabilities;
-}
-
-
-GetCapabilitiesResponse::GetCapabilitiesResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BUTTONS__GETCAPABILITIESRESPONSE),
- presetBankCapabilities(0)
-{
-}
-
-
-GetCapabilitiesResponse::GetCapabilitiesResponse(const GetCapabilitiesResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_BUTTONS__GETCAPABILITIESRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::ButtonCapabilities>& GetCapabilitiesResponse::get_capabilities(void)
-{
- return capabilities;
-}
-
-bool GetCapabilitiesResponse::set_capabilities(const std::vector< NsSmartDeviceLinkRPCV2::ButtonCapabilities>& capabilities_)
-{
- capabilities=capabilities_;
- return true;
-}
-
-const NsSmartDeviceLinkRPCV2::PresetBankCapabilities* GetCapabilitiesResponse::get_presetBankCapabilities(void)
-{
- return presetBankCapabilities;
-}
-
-bool GetCapabilitiesResponse::set_presetBankCapabilities(const NsSmartDeviceLinkRPCV2::PresetBankCapabilities& presetBankCapabilities_)
-{
- if(presetBankCapabilities) delete presetBankCapabilities;
- presetBankCapabilities=new NsSmartDeviceLinkRPCV2::PresetBankCapabilities(presetBankCapabilities_);
- return true;
-}
-
-void GetCapabilitiesResponse::reset_presetBankCapabilities(void)
-{
- if(presetBankCapabilities) delete presetBankCapabilities;
- presetBankCapabilities=0;
-}
-
-bool GetCapabilitiesResponse::checkIntegrity(void)
-{
- return GetCapabilitiesResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponseMarshaller.cpp
deleted file mode 100644
index 840da1191..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponseMarshaller.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilitiesResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ButtonCapabilitiesMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/PresetBankCapabilitiesMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/Buttons/GetCapabilitiesResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::Buttons;
-
-bool GetCapabilitiesResponseMarshaller::checkIntegrity(GetCapabilitiesResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetCapabilitiesResponseMarshaller::fromString(const std::string& s,GetCapabilitiesResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetCapabilitiesResponseMarshaller::toString(const GetCapabilitiesResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetCapabilitiesResponseMarshaller::checkIntegrityConst(const GetCapabilitiesResponse& s)
-{
- {
- unsigned int i=s.capabilities.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- if(s.presetBankCapabilities && (!NsSmartDeviceLinkRPCV2::PresetBankCapabilitiesMarshaller::checkIntegrityConst(s.presetBankCapabilities[0]))) return false;
-
- return true;
-}
-
-
-Json::Value GetCapabilitiesResponseMarshaller::toJSON(const GetCapabilitiesResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("Buttons.GetCapabilitiesResponse");
-
- {
- unsigned int i=e.capabilities.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::ButtonCapabilitiesMarshaller::toJSON(e.capabilities[i]);
-
- json["result"]["capabilities"]=j;
- }
- if(e.presetBankCapabilities)
- json["result"]["presetBankCapabilities"]=NsSmartDeviceLinkRPCV2::PresetBankCapabilitiesMarshaller::toJSON(e.presetBankCapabilities[0]);;
- return json;
-}
-
-
-bool GetCapabilitiesResponseMarshaller::fromJSON(const Json::Value& json,GetCapabilitiesResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("Buttons.GetCapabilitiesResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("capabilities") || !js["capabilities"].isArray()) return false;
- {
- unsigned int i=js["capabilities"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.capabilities.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::ButtonCapabilities t;
- if(!NsSmartDeviceLinkRPCV2::ButtonCapabilitiesMarshaller::fromJSON(js["capabilities"][i],t))
- return false;
- c.capabilities[i]=t;
- }
- }
-
- if(c.presetBankCapabilities) delete c.presetBankCapabilities;
- c.presetBankCapabilities=0;
- if(js.isMember("presetBankCapabilities"))
- {
- c.presetBankCapabilities=new NsSmartDeviceLinkRPCV2::PresetBankCapabilities();
- if(!NsSmartDeviceLinkRPCV2::PresetBankCapabilitiesMarshaller::fromJSON(js["presetBankCapabilities"],c.presetBankCapabilities[0])) return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponseMarshaller.h
deleted file mode 100644
index ec0f76042..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/GetCapabilitiesResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_BUTTONS_GETCAPABILITIESRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_BUTTONS_GETCAPABILITIESRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/GetCapabilitiesResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace Buttons
- {
-
- struct GetCapabilitiesResponseMarshaller
- {
- static bool checkIntegrity(GetCapabilitiesResponse& e);
- static bool checkIntegrityConst(const GetCapabilitiesResponse& e);
-
- static bool fromString(const std::string& s,GetCapabilitiesResponse& e);
- static const std::string toString(const GetCapabilitiesResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetCapabilitiesResponse& e);
- static Json::Value toJSON(const GetCapabilitiesResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEvent.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEvent.cpp
deleted file mode 100644
index 9a5d976e2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEvent.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonEvent.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::Buttons;
-
-
-OnButtonEvent& OnButtonEvent::operator =(const OnButtonEvent& c)
-{
- name=c.name;
- mode=c.mode;
- if(customButtonID) delete customButtonID;
- customButtonID= c.customButtonID ? new unsigned int(c.customButtonID[0]) : 0;
- return *this;
-}
-
-
-OnButtonEvent::~OnButtonEvent(void)
-{
- if(customButtonID) delete customButtonID;
-}
-
-
-OnButtonEvent::OnButtonEvent(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONEVENT),
- customButtonID(0)
-{
-}
-
-
-OnButtonEvent::OnButtonEvent(const OnButtonEvent& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONEVENT)
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::ButtonName& OnButtonEvent::get_name(void)
-{
- return name;
-}
-
-bool OnButtonEvent::set_name(const NsSmartDeviceLinkRPCV2::ButtonName& name_)
-{
- name=name_;
- return true;
-}
-
-const NsSmartDeviceLinkRPCV2::ButtonEventMode& OnButtonEvent::get_mode(void)
-{
- return mode;
-}
-
-bool OnButtonEvent::set_mode(const NsSmartDeviceLinkRPCV2::ButtonEventMode& mode_)
-{
- mode=mode_;
- return true;
-}
-
-const unsigned int* OnButtonEvent::get_customButtonID(void)
-{
- return customButtonID;
-}
-
-bool OnButtonEvent::set_customButtonID(const unsigned int& customButtonID_)
-{
- if(customButtonID) delete customButtonID;
- customButtonID=new unsigned int(customButtonID_);
- return true;
-}
-
-void OnButtonEvent::reset_customButtonID(void)
-{
- if(customButtonID) delete customButtonID;
- customButtonID=0;
-}
-
-bool OnButtonEvent::checkIntegrity(void)
-{
- return OnButtonEventMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEventMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEventMarshaller.cpp
deleted file mode 100644
index 3de10cfbf..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEventMarshaller.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonEvent.h"
-#include "../src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/Buttons/OnButtonEventMarshaller.h"
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::Buttons;
-
-bool OnButtonEventMarshaller::checkIntegrity(OnButtonEvent& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnButtonEventMarshaller::fromString(const std::string& s,OnButtonEvent& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnButtonEventMarshaller::toString(const OnButtonEvent& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnButtonEventMarshaller::checkIntegrityConst(const OnButtonEvent& s)
-{
- if(!NsSmartDeviceLinkRPCV2::ButtonNameMarshaller::checkIntegrityConst(s.name)) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ButtonEventModeMarshaller::checkIntegrityConst(s.mode)) return false;
-
- if(s.customButtonID && (s.customButtonID[0]>65536)) return false;
-
- return true;
-}
-
-
-Json::Value OnButtonEventMarshaller::toJSON(const OnButtonEvent& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("Buttons.OnButtonEvent");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["name"]=NsSmartDeviceLinkRPCV2::ButtonNameMarshaller::toJSON(e.name);;
- json["params"]["mode"]=NsSmartDeviceLinkRPCV2::ButtonEventModeMarshaller::toJSON(e.mode);;
- if(e.customButtonID)
- json["params"]["customButtonID"]=Json::Value(e.customButtonID[0]);;
- return json;
-}
-
-
-bool OnButtonEventMarshaller::fromJSON(const Json::Value& json,OnButtonEvent& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("Buttons.OnButtonEvent")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("name") || !NsSmartDeviceLinkRPCV2::ButtonNameMarshaller::fromJSON(js["name"],c.name)) return false;
-
- if(!js.isMember("mode") || !NsSmartDeviceLinkRPCV2::ButtonEventModeMarshaller::fromJSON(js["mode"],c.mode)) return false;
-
- if(c.customButtonID) delete c.customButtonID;
- c.customButtonID=0;
- if(js.isMember("customButtonID"))
- {
- if(!js["customButtonID"].isInt()) return false;
- c.customButtonID=new unsigned int();
- c.customButtonID[0]=js["customButtonID"].asInt();
- if(c.customButtonID[0]>65536) return false;
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEventMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEventMarshaller.h
deleted file mode 100644
index 993bf2858..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonEventMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_BUTTONS_ONBUTTONEVENTMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_BUTTONS_ONBUTTONEVENTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonEvent.h"
-
-namespace NsRPC2Communication
-{
- namespace Buttons
- {
-
- struct OnButtonEventMarshaller
- {
- static bool checkIntegrity(OnButtonEvent& e);
- static bool checkIntegrityConst(const OnButtonEvent& e);
-
- static bool fromString(const std::string& s,OnButtonEvent& e);
- static const std::string toString(const OnButtonEvent& e);
-
- static bool fromJSON(const Json::Value& s,OnButtonEvent& e);
- static Json::Value toJSON(const OnButtonEvent& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPress.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPress.cpp
deleted file mode 100644
index 41d06216e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPress.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonPress.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::Buttons;
-
-
-OnButtonPress& OnButtonPress::operator =(const OnButtonPress& c)
-{
- name=c.name;
- mode=c.mode;
- if(customButtonID) delete customButtonID;
- customButtonID= c.customButtonID ? new unsigned int(c.customButtonID[0]) : 0;
- return *this;
-}
-
-
-OnButtonPress::~OnButtonPress(void)
-{
- if(customButtonID) delete customButtonID;
-}
-
-
-OnButtonPress::OnButtonPress(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONPRESS),
- customButtonID(0)
-{
-}
-
-
-OnButtonPress::OnButtonPress(const OnButtonPress& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_BUTTONS__ONBUTTONPRESS)
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::ButtonName& OnButtonPress::get_name(void)
-{
- return name;
-}
-
-bool OnButtonPress::set_name(const NsSmartDeviceLinkRPCV2::ButtonName& name_)
-{
- name=name_;
- return true;
-}
-
-const NsSmartDeviceLinkRPCV2::ButtonPressMode& OnButtonPress::get_mode(void)
-{
- return mode;
-}
-
-bool OnButtonPress::set_mode(const NsSmartDeviceLinkRPCV2::ButtonPressMode& mode_)
-{
- mode=mode_;
- return true;
-}
-
-const unsigned int* OnButtonPress::get_customButtonID(void)
-{
- return customButtonID;
-}
-
-bool OnButtonPress::set_customButtonID(const unsigned int& customButtonID_)
-{
- if(customButtonID) delete customButtonID;
- customButtonID=new unsigned int(customButtonID_);
- return true;
-}
-
-void OnButtonPress::reset_customButtonID(void)
-{
- if(customButtonID) delete customButtonID;
- customButtonID=0;
-}
-
-bool OnButtonPress::checkIntegrity(void)
-{
- return OnButtonPressMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPressMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPressMarshaller.cpp
deleted file mode 100644
index 0f6406656..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPressMarshaller.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonPress.h"
-#include "../src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/Buttons/OnButtonPressMarshaller.h"
-
-/*
- interface NsRPC2Communication::Buttons
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::Buttons;
-
-bool OnButtonPressMarshaller::checkIntegrity(OnButtonPress& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnButtonPressMarshaller::fromString(const std::string& s,OnButtonPress& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnButtonPressMarshaller::toString(const OnButtonPress& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnButtonPressMarshaller::checkIntegrityConst(const OnButtonPress& s)
-{
- if(!NsSmartDeviceLinkRPCV2::ButtonNameMarshaller::checkIntegrityConst(s.name)) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ButtonPressModeMarshaller::checkIntegrityConst(s.mode)) return false;
-
- if(s.customButtonID && (s.customButtonID[0]>65536)) return false;
-
- return true;
-}
-
-
-Json::Value OnButtonPressMarshaller::toJSON(const OnButtonPress& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("Buttons.OnButtonPress");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["name"]=NsSmartDeviceLinkRPCV2::ButtonNameMarshaller::toJSON(e.name);;
- json["params"]["mode"]=NsSmartDeviceLinkRPCV2::ButtonPressModeMarshaller::toJSON(e.mode);;
- if(e.customButtonID)
- json["params"]["customButtonID"]=Json::Value(e.customButtonID[0]);;
- return json;
-}
-
-
-bool OnButtonPressMarshaller::fromJSON(const Json::Value& json,OnButtonPress& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("Buttons.OnButtonPress")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("name") || !NsSmartDeviceLinkRPCV2::ButtonNameMarshaller::fromJSON(js["name"],c.name)) return false;
-
- if(!js.isMember("mode") || !NsSmartDeviceLinkRPCV2::ButtonPressModeMarshaller::fromJSON(js["mode"],c.mode)) return false;
-
- if(c.customButtonID) delete c.customButtonID;
- c.customButtonID=0;
- if(js.isMember("customButtonID"))
- {
- if(!js["customButtonID"].isInt()) return false;
- c.customButtonID=new unsigned int();
- c.customButtonID[0]=js["customButtonID"].asInt();
- if(c.customButtonID[0]>65536) return false;
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPressMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPressMarshaller.h
deleted file mode 100644
index 56d99c1e1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/Buttons/OnButtonPressMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_BUTTONS_ONBUTTONPRESSMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_BUTTONS_ONBUTTONPRESSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/Buttons/OnButtonPress.h"
-
-namespace NsRPC2Communication
-{
- namespace Buttons
- {
-
- struct OnButtonPressMarshaller
- {
- static bool checkIntegrity(OnButtonPress& e);
- static bool checkIntegrityConst(const OnButtonPress& e);
-
- static bool fromString(const std::string& s,OnButtonPress& e);
- static const std::string toString(const OnButtonPress& e);
-
- static bool fromJSON(const Json::Value& s,OnButtonPress& e);
- static Json::Value toJSON(const OnButtonPress& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistration.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistration.cpp
deleted file mode 100644
index 677b85010..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistration.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistration.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-
-ChangeRegistration& ChangeRegistration::operator =(const ChangeRegistration& c)
-{
- language=c.language;
- appId=c.appId;
- return *this;
-}
-
-
-ChangeRegistration::~ChangeRegistration(void)
-{
-}
-
-
-ChangeRegistration::ChangeRegistration(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__CHANGEREGISTRATION)
-{
-}
-
-
-ChangeRegistration::ChangeRegistration(const ChangeRegistration& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__CHANGEREGISTRATION,c.getId())
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::Language& ChangeRegistration::get_language(void)
-{
- return language;
-}
-
-bool ChangeRegistration::set_language(const NsSmartDeviceLinkRPCV2::Language& language_)
-{
- language=language_;
- return true;
-}
-
-int ChangeRegistration::get_appId(void)
-{
- return appId;
-}
-
-bool ChangeRegistration::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool ChangeRegistration::checkIntegrity(void)
-{
- return ChangeRegistrationMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationMarshaller.cpp
deleted file mode 100644
index 8caea11e6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationMarshaller.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistration.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/ChangeRegistrationMarshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-bool ChangeRegistrationMarshaller::checkIntegrity(ChangeRegistration& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ChangeRegistrationMarshaller::fromString(const std::string& s,ChangeRegistration& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ChangeRegistrationMarshaller::toString(const ChangeRegistration& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ChangeRegistrationMarshaller::checkIntegrityConst(const ChangeRegistration& s)
-{
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::checkIntegrityConst(s.language)) return false;
-
- return true;
-}
-
-
-Json::Value ChangeRegistrationMarshaller::toJSON(const ChangeRegistration& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("TTS.ChangeRegistration");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["language"]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.language);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool ChangeRegistrationMarshaller::fromJSON(const Json::Value& json,ChangeRegistration& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("TTS.ChangeRegistration")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("language") || !NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["language"],c.language)) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationMarshaller.h
deleted file mode 100644
index 4dea50265..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_CHANGEREGISTRATIONMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_CHANGEREGISTRATIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistration.h"
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- struct ChangeRegistrationMarshaller
- {
- static bool checkIntegrity(ChangeRegistration& e);
- static bool checkIntegrityConst(const ChangeRegistration& e);
-
- static bool fromString(const std::string& s,ChangeRegistration& e);
- static const std::string toString(const ChangeRegistration& e);
-
- static bool fromJSON(const Json::Value& s,ChangeRegistration& e);
- static Json::Value toJSON(const ChangeRegistration& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponse.cpp
deleted file mode 100644
index ac9e9e605..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistrationResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-
-ChangeRegistrationResponse& ChangeRegistrationResponse::operator =(const ChangeRegistrationResponse& c)
-{
- return *this;
-}
-
-
-ChangeRegistrationResponse::~ChangeRegistrationResponse(void)
-{
-}
-
-
-ChangeRegistrationResponse::ChangeRegistrationResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__CHANGEREGISTRATIONRESPONSE)
-{
-}
-
-
-ChangeRegistrationResponse::ChangeRegistrationResponse(const ChangeRegistrationResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__CHANGEREGISTRATIONRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool ChangeRegistrationResponse::checkIntegrity(void)
-{
- return ChangeRegistrationResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponseMarshaller.cpp
deleted file mode 100644
index dc3906a48..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistrationResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/ChangeRegistrationResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-bool ChangeRegistrationResponseMarshaller::checkIntegrity(ChangeRegistrationResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ChangeRegistrationResponseMarshaller::fromString(const std::string& s,ChangeRegistrationResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ChangeRegistrationResponseMarshaller::toString(const ChangeRegistrationResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ChangeRegistrationResponseMarshaller::checkIntegrityConst(const ChangeRegistrationResponse& s)
-{
- return true;
-}
-
-
-Json::Value ChangeRegistrationResponseMarshaller::toJSON(const ChangeRegistrationResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("TTS.ChangeRegistrationResponse");
-
- return json;
-}
-
-
-bool ChangeRegistrationResponseMarshaller::fromJSON(const Json::Value& json,ChangeRegistrationResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("TTS.ChangeRegistrationResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponseMarshaller.h
deleted file mode 100644
index 1e2827c6c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/ChangeRegistrationResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_CHANGEREGISTRATIONRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_CHANGEREGISTRATIONRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/ChangeRegistrationResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- struct ChangeRegistrationResponseMarshaller
- {
- static bool checkIntegrity(ChangeRegistrationResponse& e);
- static bool checkIntegrityConst(const ChangeRegistrationResponse& e);
-
- static bool fromString(const std::string& s,ChangeRegistrationResponse& e);
- static const std::string toString(const ChangeRegistrationResponse& e);
-
- static bool fromJSON(const Json::Value& s,ChangeRegistrationResponse& e);
- static Json::Value toJSON(const ChangeRegistrationResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilities.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilities.cpp
deleted file mode 100644
index 2d795d56b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilities.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-
-GetCapabilities& GetCapabilities::operator =(const GetCapabilities& c)
-{
- return *this;
-}
-
-
-GetCapabilities::~GetCapabilities(void)
-{
-}
-
-
-GetCapabilities::GetCapabilities(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETCAPABILITIES)
-{
-}
-
-
-GetCapabilities::GetCapabilities(const GetCapabilities& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETCAPABILITIES,c.getId())
-{
- *this=c;
-}
-
-
-bool GetCapabilities::checkIntegrity(void)
-{
- return GetCapabilitiesMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesMarshaller.cpp
deleted file mode 100644
index 53f80bf36..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilities.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetCapabilitiesMarshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-bool GetCapabilitiesMarshaller::checkIntegrity(GetCapabilities& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetCapabilitiesMarshaller::fromString(const std::string& s,GetCapabilities& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetCapabilitiesMarshaller::toString(const GetCapabilities& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetCapabilitiesMarshaller::checkIntegrityConst(const GetCapabilities& s)
-{
- return true;
-}
-
-
-Json::Value GetCapabilitiesMarshaller::toJSON(const GetCapabilities& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("TTS.GetCapabilities");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetCapabilitiesMarshaller::fromJSON(const Json::Value& json,GetCapabilities& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("TTS.GetCapabilities")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesMarshaller.h
deleted file mode 100644
index a51b33f6e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETCAPABILITIESMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilities.h"
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- struct GetCapabilitiesMarshaller
- {
- static bool checkIntegrity(GetCapabilities& e);
- static bool checkIntegrityConst(const GetCapabilities& e);
-
- static bool fromString(const std::string& s,GetCapabilities& e);
- static const std::string toString(const GetCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,GetCapabilities& e);
- static Json::Value toJSON(const GetCapabilities& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponse.cpp
deleted file mode 100644
index c89469c1d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponse.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-
-GetCapabilitiesResponse& GetCapabilitiesResponse::operator =(const GetCapabilitiesResponse& c)
-{
- capabilities=c.capabilities;
- return *this;
-}
-
-
-GetCapabilitiesResponse::~GetCapabilitiesResponse(void)
-{
-}
-
-
-GetCapabilitiesResponse::GetCapabilitiesResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETCAPABILITIESRESPONSE)
-{
-}
-
-
-GetCapabilitiesResponse::GetCapabilitiesResponse(const GetCapabilitiesResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETCAPABILITIESRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::SpeechCapabilities>& GetCapabilitiesResponse::get_capabilities(void)
-{
- return capabilities;
-}
-
-bool GetCapabilitiesResponse::set_capabilities(const std::vector< NsSmartDeviceLinkRPCV2::SpeechCapabilities>& capabilities_)
-{
- capabilities=capabilities_;
- return true;
-}
-
-bool GetCapabilitiesResponse::checkIntegrity(void)
-{
- return GetCapabilitiesResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponseMarshaller.cpp
deleted file mode 100644
index 33f5c88ca..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponseMarshaller.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilitiesResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetCapabilitiesResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-bool GetCapabilitiesResponseMarshaller::checkIntegrity(GetCapabilitiesResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetCapabilitiesResponseMarshaller::fromString(const std::string& s,GetCapabilitiesResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetCapabilitiesResponseMarshaller::toString(const GetCapabilitiesResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetCapabilitiesResponseMarshaller::checkIntegrityConst(const GetCapabilitiesResponse& s)
-{
- {
- unsigned int i=s.capabilities.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value GetCapabilitiesResponseMarshaller::toJSON(const GetCapabilitiesResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("TTS.GetCapabilitiesResponse");
-
- {
- unsigned int i=e.capabilities.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::SpeechCapabilitiesMarshaller::toJSON(e.capabilities[i]);
-
- json["result"]["capabilities"]=j;
- }
- return json;
-}
-
-
-bool GetCapabilitiesResponseMarshaller::fromJSON(const Json::Value& json,GetCapabilitiesResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("TTS.GetCapabilitiesResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("capabilities") || !js["capabilities"].isArray()) return false;
- {
- unsigned int i=js["capabilities"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.capabilities.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::SpeechCapabilities t;
- if(!NsSmartDeviceLinkRPCV2::SpeechCapabilitiesMarshaller::fromJSON(js["capabilities"][i],t))
- return false;
- c.capabilities[i]=t;
- }
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponseMarshaller.h
deleted file mode 100644
index 312fb9d61..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetCapabilitiesResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETCAPABILITIESRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETCAPABILITIESRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetCapabilitiesResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- struct GetCapabilitiesResponseMarshaller
- {
- static bool checkIntegrity(GetCapabilitiesResponse& e);
- static bool checkIntegrityConst(const GetCapabilitiesResponse& e);
-
- static bool fromString(const std::string& s,GetCapabilitiesResponse& e);
- static const std::string toString(const GetCapabilitiesResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetCapabilitiesResponse& e);
- static Json::Value toJSON(const GetCapabilitiesResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguage.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguage.cpp
deleted file mode 100644
index aa76e3acd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguage.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguage.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-
-GetLanguage& GetLanguage::operator =(const GetLanguage& c)
-{
- return *this;
-}
-
-
-GetLanguage::~GetLanguage(void)
-{
-}
-
-
-GetLanguage::GetLanguage(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETLANGUAGE)
-{
-}
-
-
-GetLanguage::GetLanguage(const GetLanguage& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETLANGUAGE,c.getId())
-{
- *this=c;
-}
-
-
-bool GetLanguage::checkIntegrity(void)
-{
- return GetLanguageMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageMarshaller.cpp
deleted file mode 100644
index c6f3b9405..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguage.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetLanguageMarshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-bool GetLanguageMarshaller::checkIntegrity(GetLanguage& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetLanguageMarshaller::fromString(const std::string& s,GetLanguage& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetLanguageMarshaller::toString(const GetLanguage& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetLanguageMarshaller::checkIntegrityConst(const GetLanguage& s)
-{
- return true;
-}
-
-
-Json::Value GetLanguageMarshaller::toJSON(const GetLanguage& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("TTS.GetLanguage");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetLanguageMarshaller::fromJSON(const Json::Value& json,GetLanguage& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("TTS.GetLanguage")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageMarshaller.h
deleted file mode 100644
index 2ec47e7d5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETLANGUAGEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETLANGUAGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguage.h"
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- struct GetLanguageMarshaller
- {
- static bool checkIntegrity(GetLanguage& e);
- static bool checkIntegrityConst(const GetLanguage& e);
-
- static bool fromString(const std::string& s,GetLanguage& e);
- static const std::string toString(const GetLanguage& e);
-
- static bool fromJSON(const Json::Value& s,GetLanguage& e);
- static Json::Value toJSON(const GetLanguage& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponse.cpp
deleted file mode 100644
index 388dc5b2a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponse.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-
-GetLanguageResponse& GetLanguageResponse::operator =(const GetLanguageResponse& c)
-{
- language=c.language;
- return *this;
-}
-
-
-GetLanguageResponse::~GetLanguageResponse(void)
-{
-}
-
-
-GetLanguageResponse::GetLanguageResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETLANGUAGERESPONSE)
-{
-}
-
-
-GetLanguageResponse::GetLanguageResponse(const GetLanguageResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETLANGUAGERESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::Language& GetLanguageResponse::get_language(void)
-{
- return language;
-}
-
-bool GetLanguageResponse::set_language(const NsSmartDeviceLinkRPCV2::Language& language_)
-{
- language=language_;
- return true;
-}
-
-bool GetLanguageResponse::checkIntegrity(void)
-{
- return GetLanguageResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponseMarshaller.cpp
deleted file mode 100644
index 072c870b2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponseMarshaller.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguageResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetLanguageResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-bool GetLanguageResponseMarshaller::checkIntegrity(GetLanguageResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetLanguageResponseMarshaller::fromString(const std::string& s,GetLanguageResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetLanguageResponseMarshaller::toString(const GetLanguageResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetLanguageResponseMarshaller::checkIntegrityConst(const GetLanguageResponse& s)
-{
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::checkIntegrityConst(s.language)) return false;
-
- return true;
-}
-
-
-Json::Value GetLanguageResponseMarshaller::toJSON(const GetLanguageResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("TTS.GetLanguageResponse");
-
- json["result"]["language"]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.language);;
- return json;
-}
-
-
-bool GetLanguageResponseMarshaller::fromJSON(const Json::Value& json,GetLanguageResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("TTS.GetLanguageResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("language") || !NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["language"],c.language)) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponseMarshaller.h
deleted file mode 100644
index e8cddbb1c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetLanguageResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETLANGUAGERESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETLANGUAGERESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetLanguageResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- struct GetLanguageResponseMarshaller
- {
- static bool checkIntegrity(GetLanguageResponse& e);
- static bool checkIntegrityConst(const GetLanguageResponse& e);
-
- static bool fromString(const std::string& s,GetLanguageResponse& e);
- static const std::string toString(const GetLanguageResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetLanguageResponse& e);
- static Json::Value toJSON(const GetLanguageResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguages.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguages.cpp
deleted file mode 100644
index 6e866e448..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguages.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguages.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-
-GetSupportedLanguages& GetSupportedLanguages::operator =(const GetSupportedLanguages& c)
-{
- return *this;
-}
-
-
-GetSupportedLanguages::~GetSupportedLanguages(void)
-{
-}
-
-
-GetSupportedLanguages::GetSupportedLanguages(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETSUPPORTEDLANGUAGES)
-{
-}
-
-
-GetSupportedLanguages::GetSupportedLanguages(const GetSupportedLanguages& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETSUPPORTEDLANGUAGES,c.getId())
-{
- *this=c;
-}
-
-
-bool GetSupportedLanguages::checkIntegrity(void)
-{
- return GetSupportedLanguagesMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesMarshaller.cpp
deleted file mode 100644
index 032c44710..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguages.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetSupportedLanguagesMarshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-bool GetSupportedLanguagesMarshaller::checkIntegrity(GetSupportedLanguages& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetSupportedLanguagesMarshaller::fromString(const std::string& s,GetSupportedLanguages& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetSupportedLanguagesMarshaller::toString(const GetSupportedLanguages& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetSupportedLanguagesMarshaller::checkIntegrityConst(const GetSupportedLanguages& s)
-{
- return true;
-}
-
-
-Json::Value GetSupportedLanguagesMarshaller::toJSON(const GetSupportedLanguages& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("TTS.GetSupportedLanguages");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetSupportedLanguagesMarshaller::fromJSON(const Json::Value& json,GetSupportedLanguages& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("TTS.GetSupportedLanguages")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesMarshaller.h
deleted file mode 100644
index 6c1cac285..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETSUPPORTEDLANGUAGESMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETSUPPORTEDLANGUAGESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguages.h"
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- struct GetSupportedLanguagesMarshaller
- {
- static bool checkIntegrity(GetSupportedLanguages& e);
- static bool checkIntegrityConst(const GetSupportedLanguages& e);
-
- static bool fromString(const std::string& s,GetSupportedLanguages& e);
- static const std::string toString(const GetSupportedLanguages& e);
-
- static bool fromJSON(const Json::Value& s,GetSupportedLanguages& e);
- static Json::Value toJSON(const GetSupportedLanguages& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.cpp
deleted file mode 100644
index cc2034235..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-
-GetSupportedLanguagesResponse& GetSupportedLanguagesResponse::operator =(const GetSupportedLanguagesResponse& c)
-{
- languages=c.languages;
- return *this;
-}
-
-
-GetSupportedLanguagesResponse::~GetSupportedLanguagesResponse(void)
-{
-}
-
-
-GetSupportedLanguagesResponse::GetSupportedLanguagesResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETSUPPORTEDLANGUAGESRESPONSE)
-{
-}
-
-
-GetSupportedLanguagesResponse::GetSupportedLanguagesResponse(const GetSupportedLanguagesResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__GETSUPPORTEDLANGUAGESRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::Language>& GetSupportedLanguagesResponse::get_languages(void)
-{
- return languages;
-}
-
-bool GetSupportedLanguagesResponse::set_languages(const std::vector< NsSmartDeviceLinkRPCV2::Language>& languages_)
-{
- languages=languages_;
- return true;
-}
-
-bool GetSupportedLanguagesResponse::checkIntegrity(void)
-{
- return GetSupportedLanguagesResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponseMarshaller.cpp
deleted file mode 100644
index 950fccce3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponseMarshaller.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/GetSupportedLanguagesResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-bool GetSupportedLanguagesResponseMarshaller::checkIntegrity(GetSupportedLanguagesResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetSupportedLanguagesResponseMarshaller::fromString(const std::string& s,GetSupportedLanguagesResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetSupportedLanguagesResponseMarshaller::toString(const GetSupportedLanguagesResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetSupportedLanguagesResponseMarshaller::checkIntegrityConst(const GetSupportedLanguagesResponse& s)
-{
- {
- unsigned int i=s.languages.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value GetSupportedLanguagesResponseMarshaller::toJSON(const GetSupportedLanguagesResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("TTS.GetSupportedLanguagesResponse");
-
- {
- unsigned int i=e.languages.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.languages[i]);
-
- json["result"]["languages"]=j;
- }
- return json;
-}
-
-
-bool GetSupportedLanguagesResponseMarshaller::fromJSON(const Json::Value& json,GetSupportedLanguagesResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("TTS.GetSupportedLanguagesResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("languages") || !js["languages"].isArray()) return false;
- {
- unsigned int i=js["languages"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.languages.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::Language t;
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["languages"][i],t))
- return false;
- c.languages[i]=t;
- }
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponseMarshaller.h
deleted file mode 100644
index f47d3e77e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/GetSupportedLanguagesResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_GETSUPPORTEDLANGUAGESRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_GETSUPPORTEDLANGUAGESRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/GetSupportedLanguagesResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- struct GetSupportedLanguagesResponseMarshaller
- {
- static bool checkIntegrity(GetSupportedLanguagesResponse& e);
- static bool checkIntegrityConst(const GetSupportedLanguagesResponse& e);
-
- static bool fromString(const std::string& s,GetSupportedLanguagesResponse& e);
- static const std::string toString(const GetSupportedLanguagesResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetSupportedLanguagesResponse& e);
- static Json::Value toJSON(const GetSupportedLanguagesResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChange.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChange.cpp
deleted file mode 100644
index 085226645..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChange.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/OnLanguageChange.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-
-OnLanguageChange& OnLanguageChange::operator =(const OnLanguageChange& c)
-{
- language=c.language;
- return *this;
-}
-
-
-OnLanguageChange::~OnLanguageChange(void)
-{
-}
-
-
-OnLanguageChange::OnLanguageChange(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__ONLANGUAGECHANGE)
-{
-}
-
-
-OnLanguageChange::OnLanguageChange(const OnLanguageChange& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__ONLANGUAGECHANGE)
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::Language& OnLanguageChange::get_language(void)
-{
- return language;
-}
-
-bool OnLanguageChange::set_language(const NsSmartDeviceLinkRPCV2::Language& language_)
-{
- language=language_;
- return true;
-}
-
-bool OnLanguageChange::checkIntegrity(void)
-{
- return OnLanguageChangeMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChangeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChangeMarshaller.cpp
deleted file mode 100644
index 950bb3602..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChangeMarshaller.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/OnLanguageChange.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/OnLanguageChangeMarshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-bool OnLanguageChangeMarshaller::checkIntegrity(OnLanguageChange& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnLanguageChangeMarshaller::fromString(const std::string& s,OnLanguageChange& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnLanguageChangeMarshaller::toString(const OnLanguageChange& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnLanguageChangeMarshaller::checkIntegrityConst(const OnLanguageChange& s)
-{
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::checkIntegrityConst(s.language)) return false;
-
- return true;
-}
-
-
-Json::Value OnLanguageChangeMarshaller::toJSON(const OnLanguageChange& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("TTS.OnLanguageChange");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["language"]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.language);;
- return json;
-}
-
-
-bool OnLanguageChangeMarshaller::fromJSON(const Json::Value& json,OnLanguageChange& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("TTS.OnLanguageChange")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("language") || !NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["language"],c.language)) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChangeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChangeMarshaller.h
deleted file mode 100644
index 69273ac53..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/OnLanguageChangeMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_ONLANGUAGECHANGEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_ONLANGUAGECHANGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/OnLanguageChange.h"
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- struct OnLanguageChangeMarshaller
- {
- static bool checkIntegrity(OnLanguageChange& e);
- static bool checkIntegrityConst(const OnLanguageChange& e);
-
- static bool fromString(const std::string& s,OnLanguageChange& e);
- static const std::string toString(const OnLanguageChange& e);
-
- static bool fromJSON(const Json::Value& s,OnLanguageChange& e);
- static Json::Value toJSON(const OnLanguageChange& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/Speak.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/Speak.cpp
deleted file mode 100644
index 1c40aae0c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/Speak.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/Speak.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-
-Speak& Speak::operator =(const Speak& c)
-{
- ttsChunks=c.ttsChunks;
- appId=c.appId;
- return *this;
-}
-
-
-Speak::~Speak(void)
-{
-}
-
-
-Speak::Speak(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__SPEAK)
-{
-}
-
-
-Speak::Speak(const Speak& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__SPEAK,c.getId())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& Speak::get_ttsChunks(void)
-{
- return ttsChunks;
-}
-
-bool Speak::set_ttsChunks(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& ttsChunks_)
-{
- ttsChunks=ttsChunks_;
- return true;
-}
-
-int Speak::get_appId(void)
-{
- return appId;
-}
-
-bool Speak::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool Speak::checkIntegrity(void)
-{
- return SpeakMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakMarshaller.cpp
deleted file mode 100644
index 38003bc7a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakMarshaller.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/Speak.h"
-#include "../src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/SpeakMarshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-bool SpeakMarshaller::checkIntegrity(Speak& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SpeakMarshaller::fromString(const std::string& s,Speak& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SpeakMarshaller::toString(const Speak& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SpeakMarshaller::checkIntegrityConst(const Speak& s)
-{
- {
- unsigned int i=s.ttsChunks.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value SpeakMarshaller::toJSON(const Speak& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("TTS.Speak");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- {
- unsigned int i=e.ttsChunks.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::toJSON(e.ttsChunks[i]);
-
- json["params"]["ttsChunks"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool SpeakMarshaller::fromJSON(const Json::Value& json,Speak& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("TTS.Speak")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("ttsChunks") || !js["ttsChunks"].isArray()) return false;
- {
- unsigned int i=js["ttsChunks"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.ttsChunks.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::TTSChunk t;
- if(!NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::fromJSON(js["ttsChunks"][i],t))
- return false;
- c.ttsChunks[i]=t;
- }
- }
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakMarshaller.h
deleted file mode 100644
index 9a1b602f4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_SPEAKMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_SPEAKMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/Speak.h"
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- struct SpeakMarshaller
- {
- static bool checkIntegrity(Speak& e);
- static bool checkIntegrityConst(const Speak& e);
-
- static bool fromString(const std::string& s,Speak& e);
- static const std::string toString(const Speak& e);
-
- static bool fromJSON(const Json::Value& s,Speak& e);
- static Json::Value toJSON(const Speak& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponse.cpp
deleted file mode 100644
index c75c589c9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/SpeakResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-
-SpeakResponse& SpeakResponse::operator =(const SpeakResponse& c)
-{
- return *this;
-}
-
-
-SpeakResponse::~SpeakResponse(void)
-{
-}
-
-
-SpeakResponse::SpeakResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__SPEAKRESPONSE)
-{
-}
-
-
-SpeakResponse::SpeakResponse(const SpeakResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_TTS__SPEAKRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool SpeakResponse::checkIntegrity(void)
-{
- return SpeakResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponseMarshaller.cpp
deleted file mode 100644
index ff0c51db3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/SpeakResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/TTS/SpeakResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::TTS
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::TTS;
-
-bool SpeakResponseMarshaller::checkIntegrity(SpeakResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SpeakResponseMarshaller::fromString(const std::string& s,SpeakResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SpeakResponseMarshaller::toString(const SpeakResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SpeakResponseMarshaller::checkIntegrityConst(const SpeakResponse& s)
-{
- return true;
-}
-
-
-Json::Value SpeakResponseMarshaller::toJSON(const SpeakResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("TTS.SpeakResponse");
-
- return json;
-}
-
-
-bool SpeakResponseMarshaller::fromJSON(const Json::Value& json,SpeakResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("TTS.SpeakResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponseMarshaller.h
deleted file mode 100644
index c8929c25f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/TTS/SpeakResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_TTS_SPEAKRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_TTS_SPEAKRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/TTS/SpeakResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace TTS
- {
-
- struct SpeakResponseMarshaller
- {
- static bool checkIntegrity(SpeakResponse& e);
- static bool checkIntegrityConst(const SpeakResponse& e);
-
- static bool fromString(const std::string& s,SpeakResponse& e);
- static const std::string toString(const SpeakResponse& e);
-
- static bool fromJSON(const Json::Value& s,SpeakResponse& e);
- static Json::Value toJSON(const SpeakResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommand.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommand.cpp
deleted file mode 100644
index 26b38541c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommand.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-AddCommand& AddCommand::operator =(const AddCommand& c)
-{
- cmdId=c.cmdId;
- menuParams=c.menuParams;
- if(cmdIcon) delete cmdIcon;
- cmdIcon= c.cmdIcon ? new NsSmartDeviceLinkRPCV2::Image(c.cmdIcon[0]) : 0;
- appId=c.appId;
- return *this;
-}
-
-
-AddCommand::~AddCommand(void)
-{
- if(cmdIcon) delete cmdIcon;
-}
-
-
-AddCommand::AddCommand(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ADDCOMMAND),
- cmdIcon(0)
-{
-}
-
-
-AddCommand::AddCommand(const AddCommand& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ADDCOMMAND,c.getId())
-{
- *this=c;
-}
-
-
-unsigned int AddCommand::get_cmdId(void)
-{
- return cmdId;
-}
-
-bool AddCommand::set_cmdId(unsigned int cmdId_)
-{
- cmdId=cmdId_;
- return true;
-}
-
-const NsSmartDeviceLinkRPCV2::MenuParams& AddCommand::get_menuParams(void)
-{
- return menuParams;
-}
-
-bool AddCommand::set_menuParams(const NsSmartDeviceLinkRPCV2::MenuParams& menuParams_)
-{
- menuParams=menuParams_;
- return true;
-}
-
-const NsSmartDeviceLinkRPCV2::Image* AddCommand::get_cmdIcon(void)
-{
- return cmdIcon;
-}
-
-bool AddCommand::set_cmdIcon(const NsSmartDeviceLinkRPCV2::Image& cmdIcon_)
-{
- if(cmdIcon) delete cmdIcon;
- cmdIcon=new NsSmartDeviceLinkRPCV2::Image(cmdIcon_);
- return true;
-}
-
-void AddCommand::reset_cmdIcon(void)
-{
- if(cmdIcon) delete cmdIcon;
- cmdIcon=0;
-}
-
-int AddCommand::get_appId(void)
-{
- return appId;
-}
-
-bool AddCommand::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool AddCommand::checkIntegrity(void)
-{
- return AddCommandMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandMarshaller.cpp
deleted file mode 100644
index 3f91cbf9c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandMarshaller.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommand.h"
-#include "../src/SDLRPCObjectsImpl/V2/MenuParamsMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ImageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AddCommandMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool AddCommandMarshaller::checkIntegrity(AddCommand& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddCommandMarshaller::fromString(const std::string& s,AddCommand& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddCommandMarshaller::toString(const AddCommand& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddCommandMarshaller::checkIntegrityConst(const AddCommand& s)
-{
- if(s.cmdId>2000000000) return false;
-
- if(!NsSmartDeviceLinkRPCV2::MenuParamsMarshaller::checkIntegrityConst(s.menuParams)) return false;
-
- if(s.cmdIcon && (!NsSmartDeviceLinkRPCV2::ImageMarshaller::checkIntegrityConst(s.cmdIcon[0]))) return false;
-
- return true;
-}
-
-
-Json::Value AddCommandMarshaller::toJSON(const AddCommand& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.AddCommand");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["cmdId"]=Json::Value(e.cmdId);;
- json["params"]["menuParams"]=NsSmartDeviceLinkRPCV2::MenuParamsMarshaller::toJSON(e.menuParams);;
- if(e.cmdIcon)
- json["params"]["cmdIcon"]=NsSmartDeviceLinkRPCV2::ImageMarshaller::toJSON(e.cmdIcon[0]);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool AddCommandMarshaller::fromJSON(const Json::Value& json,AddCommand& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.AddCommand")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("cmdId") || !js["cmdId"].isInt()) return false;
- c.cmdId=js["cmdId"].asInt();
- if(c.cmdId>2000000000) return false;
-
- if(!js.isMember("menuParams") || !NsSmartDeviceLinkRPCV2::MenuParamsMarshaller::fromJSON(js["menuParams"],c.menuParams)) return false;
-
- if(c.cmdIcon) delete c.cmdIcon;
- c.cmdIcon=0;
- if(js.isMember("cmdIcon"))
- {
- c.cmdIcon=new NsSmartDeviceLinkRPCV2::Image();
- if(!NsSmartDeviceLinkRPCV2::ImageMarshaller::fromJSON(js["cmdIcon"],c.cmdIcon[0])) return false;
- }
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandMarshaller.h
deleted file mode 100644
index 1548cc356..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ADDCOMMANDMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ADDCOMMANDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommand.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct AddCommandMarshaller
- {
- static bool checkIntegrity(AddCommand& e);
- static bool checkIntegrityConst(const AddCommand& e);
-
- static bool fromString(const std::string& s,AddCommand& e);
- static const std::string toString(const AddCommand& e);
-
- static bool fromJSON(const Json::Value& s,AddCommand& e);
- static Json::Value toJSON(const AddCommand& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponse.cpp
deleted file mode 100644
index cf40a9e31..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-AddCommandResponse& AddCommandResponse::operator =(const AddCommandResponse& c)
-{
- return *this;
-}
-
-
-AddCommandResponse::~AddCommandResponse(void)
-{
-}
-
-
-AddCommandResponse::AddCommandResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ADDCOMMANDRESPONSE)
-{
-}
-
-
-AddCommandResponse::AddCommandResponse(const AddCommandResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ADDCOMMANDRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool AddCommandResponse::checkIntegrity(void)
-{
- return AddCommandResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponseMarshaller.cpp
deleted file mode 100644
index d23e3c1b0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommandResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AddCommandResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool AddCommandResponseMarshaller::checkIntegrity(AddCommandResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddCommandResponseMarshaller::fromString(const std::string& s,AddCommandResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddCommandResponseMarshaller::toString(const AddCommandResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddCommandResponseMarshaller::checkIntegrityConst(const AddCommandResponse& s)
-{
- return true;
-}
-
-
-Json::Value AddCommandResponseMarshaller::toJSON(const AddCommandResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.AddCommandResponse");
-
- return json;
-}
-
-
-bool AddCommandResponseMarshaller::fromJSON(const Json::Value& json,AddCommandResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.AddCommandResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponseMarshaller.h
deleted file mode 100644
index 5d4845e41..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddCommandResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ADDCOMMANDRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ADDCOMMANDRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommandResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct AddCommandResponseMarshaller
- {
- static bool checkIntegrity(AddCommandResponse& e);
- static bool checkIntegrityConst(const AddCommandResponse& e);
-
- static bool fromString(const std::string& s,AddCommandResponse& e);
- static const std::string toString(const AddCommandResponse& e);
-
- static bool fromJSON(const Json::Value& s,AddCommandResponse& e);
- static Json::Value toJSON(const AddCommandResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenu.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenu.cpp
deleted file mode 100644
index 77a87d230..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenu.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenu.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-AddSubMenu& AddSubMenu::operator =(const AddSubMenu& c)
-{
- menuId=c.menuId;
- if(position) delete position;
- position= c.position ? new unsigned int(c.position[0]) : 0;
- menuName=c.menuName;
- appId=c.appId;
- return *this;
-}
-
-
-AddSubMenu::~AddSubMenu(void)
-{
- if(position) delete position;
-}
-
-
-AddSubMenu::AddSubMenu(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ADDSUBMENU),
- position(0)
-{
-}
-
-
-AddSubMenu::AddSubMenu(const AddSubMenu& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ADDSUBMENU,c.getId())
-{
- *this=c;
-}
-
-
-unsigned int AddSubMenu::get_menuId(void)
-{
- return menuId;
-}
-
-bool AddSubMenu::set_menuId(unsigned int menuId_)
-{
- menuId=menuId_;
- return true;
-}
-
-const unsigned int* AddSubMenu::get_position(void)
-{
- return position;
-}
-
-bool AddSubMenu::set_position(const unsigned int& position_)
-{
- if(position) delete position;
- position=new unsigned int(position_);
- return true;
-}
-
-void AddSubMenu::reset_position(void)
-{
- if(position) delete position;
- position=0;
-}
-
-const std::string& AddSubMenu::get_menuName(void)
-{
- return menuName;
-}
-
-bool AddSubMenu::set_menuName(const std::string& menuName_)
-{
- menuName=menuName_;
- return true;
-}
-
-int AddSubMenu::get_appId(void)
-{
- return appId;
-}
-
-bool AddSubMenu::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool AddSubMenu::checkIntegrity(void)
-{
- return AddSubMenuMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuMarshaller.cpp
deleted file mode 100644
index 0a17ac478..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuMarshaller.cpp
+++ /dev/null
@@ -1,151 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenu.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AddSubMenuMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool AddSubMenuMarshaller::checkIntegrity(AddSubMenu& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddSubMenuMarshaller::fromString(const std::string& s,AddSubMenu& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddSubMenuMarshaller::toString(const AddSubMenu& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddSubMenuMarshaller::checkIntegrityConst(const AddSubMenu& s)
-{
- if(s.menuId>2000000000) return false;
-
- if(s.position && (s.position[0]>1000)) return false;
-
- if(s.menuName.length()>500) return false;
-
- return true;
-}
-
-
-Json::Value AddSubMenuMarshaller::toJSON(const AddSubMenu& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.AddSubMenu");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["menuId"]=Json::Value(e.menuId);;
- if(e.position)
- json["params"]["position"]=Json::Value(e.position[0]);;
- json["params"]["menuName"]=Json::Value(e.menuName);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool AddSubMenuMarshaller::fromJSON(const Json::Value& json,AddSubMenu& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.AddSubMenu")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("menuId") || !js["menuId"].isInt()) return false;
- c.menuId=js["menuId"].asInt();
- if(c.menuId>2000000000) return false;
-
- if(c.position) delete c.position;
- c.position=0;
- if(js.isMember("position"))
- {
- if(!js["position"].isInt()) return false;
- c.position=new unsigned int();
- c.position[0]=js["position"].asInt();
- if(c.position[0]>1000) return false;
-
- }
-
- if(!js.isMember("menuName") || !js["menuName"].isString()) return false;
- c.menuName=js["menuName"].asString();
- if(c.menuName.length()>500) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuMarshaller.h
deleted file mode 100644
index bb48df5d0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ADDSUBMENUMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ADDSUBMENUMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenu.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct AddSubMenuMarshaller
- {
- static bool checkIntegrity(AddSubMenu& e);
- static bool checkIntegrityConst(const AddSubMenu& e);
-
- static bool fromString(const std::string& s,AddSubMenu& e);
- static const std::string toString(const AddSubMenu& e);
-
- static bool fromJSON(const Json::Value& s,AddSubMenu& e);
- static Json::Value toJSON(const AddSubMenu& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponse.cpp
deleted file mode 100644
index 213f08085..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenuResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-AddSubMenuResponse& AddSubMenuResponse::operator =(const AddSubMenuResponse& c)
-{
- return *this;
-}
-
-
-AddSubMenuResponse::~AddSubMenuResponse(void)
-{
-}
-
-
-AddSubMenuResponse::AddSubMenuResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ADDSUBMENURESPONSE)
-{
-}
-
-
-AddSubMenuResponse::AddSubMenuResponse(const AddSubMenuResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ADDSUBMENURESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool AddSubMenuResponse::checkIntegrity(void)
-{
- return AddSubMenuResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponseMarshaller.cpp
deleted file mode 100644
index 4a6f7c872..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenuResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AddSubMenuResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool AddSubMenuResponseMarshaller::checkIntegrity(AddSubMenuResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddSubMenuResponseMarshaller::fromString(const std::string& s,AddSubMenuResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddSubMenuResponseMarshaller::toString(const AddSubMenuResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddSubMenuResponseMarshaller::checkIntegrityConst(const AddSubMenuResponse& s)
-{
- return true;
-}
-
-
-Json::Value AddSubMenuResponseMarshaller::toJSON(const AddSubMenuResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.AddSubMenuResponse");
-
- return json;
-}
-
-
-bool AddSubMenuResponseMarshaller::fromJSON(const Json::Value& json,AddSubMenuResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.AddSubMenuResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponseMarshaller.h
deleted file mode 100644
index 40f5d2e1b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AddSubMenuResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ADDSUBMENURESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ADDSUBMENURESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddSubMenuResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct AddSubMenuResponseMarshaller
- {
- static bool checkIntegrity(AddSubMenuResponse& e);
- static bool checkIntegrityConst(const AddSubMenuResponse& e);
-
- static bool fromString(const std::string& s,AddSubMenuResponse& e);
- static const std::string toString(const AddSubMenuResponse& e);
-
- static bool fromJSON(const Json::Value& s,AddSubMenuResponse& e);
- static Json::Value toJSON(const AddSubMenuResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Alert.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Alert.cpp
deleted file mode 100644
index 000ff4dec..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Alert.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Alert.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-Alert& Alert::operator =(const Alert& c)
-{
- if(AlertText1) delete AlertText1;
- AlertText1= c.AlertText1 ? new std::string(c.AlertText1[0]) : 0;
- if(AlertText2) delete AlertText2;
- AlertText2= c.AlertText2 ? new std::string(c.AlertText2[0]) : 0;
- if(AlertText3) delete AlertText3;
- AlertText3= c.AlertText3 ? new std::string(c.AlertText3[0]) : 0;
- if(ttsChunks) delete ttsChunks;
- ttsChunks= c.ttsChunks ? new std::vector<NsSmartDeviceLinkRPCV2::TTSChunk>(c.ttsChunks[0]) : 0;
- if(duration) delete duration;
- duration= c.duration ? new unsigned int(c.duration[0]) : 0;
- if(playTone) delete playTone;
- playTone= c.playTone ? new bool(c.playTone[0]) : 0;
- if(softButtons) delete softButtons;
- softButtons= c.softButtons ? new std::vector<NsSmartDeviceLinkRPCV2::SoftButton>(c.softButtons[0]) : 0;
- appId=c.appId;
- return *this;
-}
-
-
-Alert::~Alert(void)
-{
- if(AlertText1) delete AlertText1;
- if(AlertText2) delete AlertText2;
- if(AlertText3) delete AlertText3;
- if(ttsChunks) delete ttsChunks;
- if(duration) delete duration;
- if(playTone) delete playTone;
- if(softButtons) delete softButtons;
-}
-
-
-Alert::Alert(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ALERT),
- AlertText1(0),
- AlertText2(0),
- AlertText3(0),
- ttsChunks(0),
- duration(0),
- playTone(0),
- softButtons(0)
-{
-}
-
-
-Alert::Alert(const Alert& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ALERT,c.getId())
-{
- *this=c;
-}
-
-
-const std::string* Alert::get_AlertText1(void)
-{
- return AlertText1;
-}
-
-bool Alert::set_AlertText1(const std::string& AlertText1_)
-{
- if(AlertText1) delete AlertText1;
- AlertText1=new std::string(AlertText1_);
- return true;
-}
-
-void Alert::reset_AlertText1(void)
-{
- if(AlertText1) delete AlertText1;
- AlertText1=0;
-}
-
-const std::string* Alert::get_AlertText2(void)
-{
- return AlertText2;
-}
-
-bool Alert::set_AlertText2(const std::string& AlertText2_)
-{
- if(AlertText2) delete AlertText2;
- AlertText2=new std::string(AlertText2_);
- return true;
-}
-
-void Alert::reset_AlertText2(void)
-{
- if(AlertText2) delete AlertText2;
- AlertText2=0;
-}
-
-const std::string* Alert::get_AlertText3(void)
-{
- return AlertText3;
-}
-
-bool Alert::set_AlertText3(const std::string& AlertText3_)
-{
- if(AlertText3) delete AlertText3;
- AlertText3=new std::string(AlertText3_);
- return true;
-}
-
-void Alert::reset_AlertText3(void)
-{
- if(AlertText3) delete AlertText3;
- AlertText3=0;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* Alert::get_ttsChunks(void)
-{
- return ttsChunks;
-}
-
-bool Alert::set_ttsChunks(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& ttsChunks_)
-{
- if(ttsChunks) delete ttsChunks;
- ttsChunks=new std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>(ttsChunks_);
- return true;
-}
-
-void Alert::reset_ttsChunks(void)
-{
- if(ttsChunks) delete ttsChunks;
- ttsChunks=0;
-}
-
-const unsigned int* Alert::get_duration(void)
-{
- return duration;
-}
-
-bool Alert::set_duration(const unsigned int& duration_)
-{
- if(duration) delete duration;
- duration=new unsigned int(duration_);
- return true;
-}
-
-void Alert::reset_duration(void)
-{
- if(duration) delete duration;
- duration=0;
-}
-
-const bool* Alert::get_playTone(void)
-{
- return playTone;
-}
-
-bool Alert::set_playTone(const bool& playTone_)
-{
- if(playTone) delete playTone;
- playTone=new bool(playTone_);
- return true;
-}
-
-void Alert::reset_playTone(void)
-{
- if(playTone) delete playTone;
- playTone=0;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>* Alert::get_softButtons(void)
-{
- return softButtons;
-}
-
-bool Alert::set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons_)
-{
- if(softButtons) delete softButtons;
- softButtons=new std::vector< NsSmartDeviceLinkRPCV2::SoftButton>(softButtons_);
- return true;
-}
-
-void Alert::reset_softButtons(void)
-{
- if(softButtons) delete softButtons;
- softButtons=0;
-}
-
-int Alert::get_appId(void)
-{
- return appId;
-}
-
-bool Alert::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool Alert::checkIntegrity(void)
-{
- return AlertMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuver.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuver.cpp
deleted file mode 100644
index 834fdebd3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuver.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuver.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-AlertManeuver& AlertManeuver::operator =(const AlertManeuver& c)
-{
- ttsChunks=c.ttsChunks;
- softButtons=c.softButtons;
- appId=c.appId;
- return *this;
-}
-
-
-AlertManeuver::~AlertManeuver(void)
-{
-}
-
-
-AlertManeuver::AlertManeuver(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ALERTMANEUVER)
-{
-}
-
-
-AlertManeuver::AlertManeuver(const AlertManeuver& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ALERTMANEUVER,c.getId())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& AlertManeuver::get_ttsChunks(void)
-{
- return ttsChunks;
-}
-
-bool AlertManeuver::set_ttsChunks(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& ttsChunks_)
-{
- ttsChunks=ttsChunks_;
- return true;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& AlertManeuver::get_softButtons(void)
-{
- return softButtons;
-}
-
-bool AlertManeuver::set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons_)
-{
- softButtons=softButtons_;
- return true;
-}
-
-int AlertManeuver::get_appId(void)
-{
- return appId;
-}
-
-bool AlertManeuver::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool AlertManeuver::checkIntegrity(void)
-{
- return AlertManeuverMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverMarshaller.cpp
deleted file mode 100644
index 377012d59..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverMarshaller.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuver.h"
-#include "../src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AlertManeuverMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool AlertManeuverMarshaller::checkIntegrity(AlertManeuver& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AlertManeuverMarshaller::fromString(const std::string& s,AlertManeuver& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AlertManeuverMarshaller::toString(const AlertManeuver& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AlertManeuverMarshaller::checkIntegrityConst(const AlertManeuver& s)
-{
- {
- unsigned int i=s.ttsChunks.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- {
- unsigned int i=s.softButtons.size();
- if(i<0) return false;
- if(i>3) return false;
- }
-
- return true;
-}
-
-
-Json::Value AlertManeuverMarshaller::toJSON(const AlertManeuver& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.AlertManeuver");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- {
- unsigned int i=e.ttsChunks.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::toJSON(e.ttsChunks[i]);
-
- json["params"]["ttsChunks"]=j;
- }
- {
- unsigned int i=e.softButtons.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::toJSON(e.softButtons[i]);
-
- json["params"]["softButtons"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool AlertManeuverMarshaller::fromJSON(const Json::Value& json,AlertManeuver& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.AlertManeuver")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("ttsChunks") || !js["ttsChunks"].isArray()) return false;
- {
- unsigned int i=js["ttsChunks"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.ttsChunks.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::TTSChunk t;
- if(!NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::fromJSON(js["ttsChunks"][i],t))
- return false;
- c.ttsChunks[i]=t;
- }
- }
-
- if(!js.isMember("softButtons") || !js["softButtons"].isArray()) return false;
- {
- unsigned int i=js["softButtons"].size();
- if(i<0) return false;
- if(i>3) return false;
- c.softButtons.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::SoftButton t;
- if(!NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::fromJSON(js["softButtons"][i],t))
- return false;
- c.softButtons[i]=t;
- }
- }
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverMarshaller.h
deleted file mode 100644
index 79b357cbe..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ALERTMANEUVERMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ALERTMANEUVERMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuver.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct AlertManeuverMarshaller
- {
- static bool checkIntegrity(AlertManeuver& e);
- static bool checkIntegrityConst(const AlertManeuver& e);
-
- static bool fromString(const std::string& s,AlertManeuver& e);
- static const std::string toString(const AlertManeuver& e);
-
- static bool fromJSON(const Json::Value& s,AlertManeuver& e);
- static Json::Value toJSON(const AlertManeuver& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponse.cpp
deleted file mode 100644
index 98128676b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuverResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-AlertManeuverResponse& AlertManeuverResponse::operator =(const AlertManeuverResponse& c)
-{
- return *this;
-}
-
-
-AlertManeuverResponse::~AlertManeuverResponse(void)
-{
-}
-
-
-AlertManeuverResponse::AlertManeuverResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ALERTMANEUVERRESPONSE)
-{
-}
-
-
-AlertManeuverResponse::AlertManeuverResponse(const AlertManeuverResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ALERTMANEUVERRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool AlertManeuverResponse::checkIntegrity(void)
-{
- return AlertManeuverResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponseMarshaller.cpp
deleted file mode 100644
index c55f9122c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuverResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AlertManeuverResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool AlertManeuverResponseMarshaller::checkIntegrity(AlertManeuverResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AlertManeuverResponseMarshaller::fromString(const std::string& s,AlertManeuverResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AlertManeuverResponseMarshaller::toString(const AlertManeuverResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AlertManeuverResponseMarshaller::checkIntegrityConst(const AlertManeuverResponse& s)
-{
- return true;
-}
-
-
-Json::Value AlertManeuverResponseMarshaller::toJSON(const AlertManeuverResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.AlertManeuverResponse");
-
- return json;
-}
-
-
-bool AlertManeuverResponseMarshaller::fromJSON(const Json::Value& json,AlertManeuverResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.AlertManeuverResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponseMarshaller.h
deleted file mode 100644
index 08c41d425..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertManeuverResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ALERTMANEUVERRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ALERTMANEUVERRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertManeuverResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct AlertManeuverResponseMarshaller
- {
- static bool checkIntegrity(AlertManeuverResponse& e);
- static bool checkIntegrityConst(const AlertManeuverResponse& e);
-
- static bool fromString(const std::string& s,AlertManeuverResponse& e);
- static const std::string toString(const AlertManeuverResponse& e);
-
- static bool fromJSON(const Json::Value& s,AlertManeuverResponse& e);
- static Json::Value toJSON(const AlertManeuverResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertMarshaller.cpp
deleted file mode 100644
index ab2b1607e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertMarshaller.cpp
+++ /dev/null
@@ -1,264 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Alert.h"
-#include "../src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AlertMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool AlertMarshaller::checkIntegrity(Alert& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AlertMarshaller::fromString(const std::string& s,Alert& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AlertMarshaller::toString(const Alert& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AlertMarshaller::checkIntegrityConst(const Alert& s)
-{
- if(s.AlertText1 && (s.AlertText1[0].length()>500)) return false;
-
- if(s.AlertText2 && (s.AlertText2[0].length()>500)) return false;
-
- if(s.AlertText3 && (s.AlertText3[0].length()>500)) return false;
-
- if(s.ttsChunks)
- {
- unsigned int i=s.ttsChunks[0].size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- if(s.duration && (s.duration[0]<3000 || s.duration[0]>10000)) return false;
-
- if(s.softButtons)
- {
- unsigned int i=s.softButtons[0].size();
- if(i<0) return false;
- if(i>4) return false;
- }
-
- return true;
-}
-
-
-Json::Value AlertMarshaller::toJSON(const Alert& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.Alert");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- if(e.AlertText1)
- json["params"]["AlertText1"]=Json::Value(e.AlertText1[0]);;
- if(e.AlertText2)
- json["params"]["AlertText2"]=Json::Value(e.AlertText2[0]);;
- if(e.AlertText3)
- json["params"]["AlertText3"]=Json::Value(e.AlertText3[0]);;
- if(e.ttsChunks)
- {
- unsigned int i=e.ttsChunks[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::toJSON(e.ttsChunks[0][i]);
-
- json["params"]["ttsChunks"]=j;
- }
- if(e.duration)
- json["params"]["duration"]=Json::Value(e.duration[0]);;
- if(e.playTone)
- json["params"]["playTone"]=Json::Value(e.playTone[0]);;
- if(e.softButtons)
- {
- unsigned int i=e.softButtons[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::toJSON(e.softButtons[0][i]);
-
- json["params"]["softButtons"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool AlertMarshaller::fromJSON(const Json::Value& json,Alert& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.Alert")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(c.AlertText1) delete c.AlertText1;
- c.AlertText1=0;
- if(js.isMember("AlertText1"))
- {
- if(!js["AlertText1"].isString()) return false;
- c.AlertText1=new std::string();
- c.AlertText1[0]=js["AlertText1"].asString();
- if(c.AlertText1[0].length()>500) return false;
-
- }
-
- if(c.AlertText2) delete c.AlertText2;
- c.AlertText2=0;
- if(js.isMember("AlertText2"))
- {
- if(!js["AlertText2"].isString()) return false;
- c.AlertText2=new std::string();
- c.AlertText2[0]=js["AlertText2"].asString();
- if(c.AlertText2[0].length()>500) return false;
-
- }
-
- if(c.AlertText3) delete c.AlertText3;
- c.AlertText3=0;
- if(js.isMember("AlertText3"))
- {
- if(!js["AlertText3"].isString()) return false;
- c.AlertText3=new std::string();
- c.AlertText3[0]=js["AlertText3"].asString();
- if(c.AlertText3[0].length()>500) return false;
-
- }
-
- if(c.ttsChunks) delete c.ttsChunks;
- c.ttsChunks=0;
- if(js.isMember("ttsChunks"))
- {
- if(!js["ttsChunks"].isArray()) return false;
- unsigned int i=js["ttsChunks"].size();
- if(i<1) return false;
- if(i>100) return false;
-
- c.ttsChunks=new std::vector<NsSmartDeviceLinkRPCV2::TTSChunk>();
- c.ttsChunks->resize(js["ttsChunks"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::fromJSON(js["ttsChunks"][i],c.ttsChunks[0][i])) return false;
- }
-
-
- if(c.duration) delete c.duration;
- c.duration=0;
- if(js.isMember("duration"))
- {
- if(!js["duration"].isInt()) return false;
- c.duration=new unsigned int();
- c.duration[0]=js["duration"].asInt();
- if(c.duration[0]<3000 || c.duration[0]>10000) return false;
-
- }
-
- if(c.playTone) delete c.playTone;
- c.playTone=0;
- if(js.isMember("playTone"))
- {
- if(!js["playTone"].isBool()) return false;
- c.playTone=new bool();
- c.playTone[0]=js["playTone"].asBool();
-
- }
-
- if(c.softButtons) delete c.softButtons;
- c.softButtons=0;
- if(js.isMember("softButtons"))
- {
- if(!js["softButtons"].isArray()) return false;
- unsigned int i=js["softButtons"].size();
- if(i<0) return false;
- if(i>4) return false;
-
- c.softButtons=new std::vector<NsSmartDeviceLinkRPCV2::SoftButton>();
- c.softButtons->resize(js["softButtons"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::fromJSON(js["softButtons"][i],c.softButtons[0][i])) return false;
- }
-
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertMarshaller.h
deleted file mode 100644
index bc88d7eb6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ALERTMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ALERTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Alert.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct AlertMarshaller
- {
- static bool checkIntegrity(Alert& e);
- static bool checkIntegrityConst(const Alert& e);
-
- static bool fromString(const std::string& s,Alert& e);
- static const std::string toString(const Alert& e);
-
- static bool fromJSON(const Json::Value& s,Alert& e);
- static Json::Value toJSON(const Alert& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponse.cpp
deleted file mode 100644
index 212651c2a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponse.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-AlertResponse& AlertResponse::operator =(const AlertResponse& c)
-{
- if(tryAgainTime) delete tryAgainTime;
- tryAgainTime= c.tryAgainTime ? new unsigned int(c.tryAgainTime[0]) : 0;
- return *this;
-}
-
-
-AlertResponse::~AlertResponse(void)
-{
- if(tryAgainTime) delete tryAgainTime;
-}
-
-
-AlertResponse::AlertResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ALERTRESPONSE),
- tryAgainTime(0)
-{
-}
-
-
-AlertResponse::AlertResponse(const AlertResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ALERTRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const unsigned int* AlertResponse::get_tryAgainTime(void)
-{
- return tryAgainTime;
-}
-
-bool AlertResponse::set_tryAgainTime(const unsigned int& tryAgainTime_)
-{
- if(tryAgainTime) delete tryAgainTime;
- tryAgainTime=new unsigned int(tryAgainTime_);
- return true;
-}
-
-void AlertResponse::reset_tryAgainTime(void)
-{
- if(tryAgainTime) delete tryAgainTime;
- tryAgainTime=0;
-}
-
-bool AlertResponse::checkIntegrity(void)
-{
- return AlertResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponseMarshaller.cpp
deleted file mode 100644
index 82e6454bc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponseMarshaller.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AlertResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool AlertResponseMarshaller::checkIntegrity(AlertResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AlertResponseMarshaller::fromString(const std::string& s,AlertResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AlertResponseMarshaller::toString(const AlertResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AlertResponseMarshaller::checkIntegrityConst(const AlertResponse& s)
-{
- if(s.tryAgainTime && (s.tryAgainTime[0]>2000000000)) return false;
-
- return true;
-}
-
-
-Json::Value AlertResponseMarshaller::toJSON(const AlertResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.AlertResponse");
-
- if(e.tryAgainTime)
- json["result"]["tryAgainTime"]=Json::Value(e.tryAgainTime[0]);;
- return json;
-}
-
-
-bool AlertResponseMarshaller::fromJSON(const Json::Value& json,AlertResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.AlertResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(c.tryAgainTime) delete c.tryAgainTime;
- c.tryAgainTime=0;
- if(js.isMember("tryAgainTime"))
- {
- if(!js["tryAgainTime"].isInt()) return false;
- c.tryAgainTime=new unsigned int();
- c.tryAgainTime[0]=js["tryAgainTime"].asInt();
- if(c.tryAgainTime[0]>2000000000) return false;
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponseMarshaller.h
deleted file mode 100644
index b8675ff0f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/AlertResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ALERTRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ALERTRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AlertResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct AlertResponseMarshaller
- {
- static bool checkIntegrity(AlertResponse& e);
- static bool checkIntegrityConst(const AlertResponse& e);
-
- static bool fromString(const std::string& s,AlertResponse& e);
- static const std::string toString(const AlertResponse& e);
-
- static bool fromJSON(const Json::Value& s,AlertResponse& e);
- static Json::Value toJSON(const AlertResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistration.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistration.cpp
deleted file mode 100644
index e388d44bb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistration.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistration.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-ChangeRegistration& ChangeRegistration::operator =(const ChangeRegistration& c)
-{
- hmiDisplayLanguage=c.hmiDisplayLanguage;
- appId=c.appId;
- return *this;
-}
-
-
-ChangeRegistration::~ChangeRegistration(void)
-{
-}
-
-
-ChangeRegistration::ChangeRegistration(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__CHANGEREGISTRATION)
-{
-}
-
-
-ChangeRegistration::ChangeRegistration(const ChangeRegistration& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__CHANGEREGISTRATION,c.getId())
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::Language& ChangeRegistration::get_hmiDisplayLanguage(void)
-{
- return hmiDisplayLanguage;
-}
-
-bool ChangeRegistration::set_hmiDisplayLanguage(const NsSmartDeviceLinkRPCV2::Language& hmiDisplayLanguage_)
-{
- hmiDisplayLanguage=hmiDisplayLanguage_;
- return true;
-}
-
-int ChangeRegistration::get_appId(void)
-{
- return appId;
-}
-
-bool ChangeRegistration::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool ChangeRegistration::checkIntegrity(void)
-{
- return ChangeRegistrationMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationMarshaller.cpp
deleted file mode 100644
index bd918ce48..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationMarshaller.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistration.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ChangeRegistrationMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool ChangeRegistrationMarshaller::checkIntegrity(ChangeRegistration& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ChangeRegistrationMarshaller::fromString(const std::string& s,ChangeRegistration& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ChangeRegistrationMarshaller::toString(const ChangeRegistration& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ChangeRegistrationMarshaller::checkIntegrityConst(const ChangeRegistration& s)
-{
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::checkIntegrityConst(s.hmiDisplayLanguage)) return false;
-
- return true;
-}
-
-
-Json::Value ChangeRegistrationMarshaller::toJSON(const ChangeRegistration& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.ChangeRegistration");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["hmiDisplayLanguage"]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.hmiDisplayLanguage);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool ChangeRegistrationMarshaller::fromJSON(const Json::Value& json,ChangeRegistration& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.ChangeRegistration")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("hmiDisplayLanguage") || !NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["hmiDisplayLanguage"],c.hmiDisplayLanguage)) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationMarshaller.h
deleted file mode 100644
index 56bb52b0c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_CHANGEREGISTRATIONMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_CHANGEREGISTRATIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistration.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct ChangeRegistrationMarshaller
- {
- static bool checkIntegrity(ChangeRegistration& e);
- static bool checkIntegrityConst(const ChangeRegistration& e);
-
- static bool fromString(const std::string& s,ChangeRegistration& e);
- static const std::string toString(const ChangeRegistration& e);
-
- static bool fromJSON(const Json::Value& s,ChangeRegistration& e);
- static Json::Value toJSON(const ChangeRegistration& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponse.cpp
deleted file mode 100644
index ba7203fc3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistrationResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-ChangeRegistrationResponse& ChangeRegistrationResponse::operator =(const ChangeRegistrationResponse& c)
-{
- return *this;
-}
-
-
-ChangeRegistrationResponse::~ChangeRegistrationResponse(void)
-{
-}
-
-
-ChangeRegistrationResponse::ChangeRegistrationResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__CHANGEREGISTRATIONRESPONSE)
-{
-}
-
-
-ChangeRegistrationResponse::ChangeRegistrationResponse(const ChangeRegistrationResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__CHANGEREGISTRATIONRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool ChangeRegistrationResponse::checkIntegrity(void)
-{
- return ChangeRegistrationResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponseMarshaller.cpp
deleted file mode 100644
index 8f04e5d7d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistrationResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ChangeRegistrationResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool ChangeRegistrationResponseMarshaller::checkIntegrity(ChangeRegistrationResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ChangeRegistrationResponseMarshaller::fromString(const std::string& s,ChangeRegistrationResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ChangeRegistrationResponseMarshaller::toString(const ChangeRegistrationResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ChangeRegistrationResponseMarshaller::checkIntegrityConst(const ChangeRegistrationResponse& s)
-{
- return true;
-}
-
-
-Json::Value ChangeRegistrationResponseMarshaller::toJSON(const ChangeRegistrationResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.ChangeRegistrationResponse");
-
- return json;
-}
-
-
-bool ChangeRegistrationResponseMarshaller::fromJSON(const Json::Value& json,ChangeRegistrationResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.ChangeRegistrationResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponseMarshaller.h
deleted file mode 100644
index f7848921d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ChangeRegistrationResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_CHANGEREGISTRATIONRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_CHANGEREGISTRATIONRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ChangeRegistrationResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct ChangeRegistrationResponseMarshaller
- {
- static bool checkIntegrity(ChangeRegistrationResponse& e);
- static bool checkIntegrityConst(const ChangeRegistrationResponse& e);
-
- static bool fromString(const std::string& s,ChangeRegistrationResponse& e);
- static const std::string toString(const ChangeRegistrationResponse& e);
-
- static bool fromJSON(const Json::Value& s,ChangeRegistrationResponse& e);
- static Json::Value toJSON(const ChangeRegistrationResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSet.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSet.cpp
deleted file mode 100644
index ca1b1ce4b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSet.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSet.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-CreateInteractionChoiceSet& CreateInteractionChoiceSet::operator =(const CreateInteractionChoiceSet& c)
-{
- interactionChoiceSetID=c.interactionChoiceSetID;
- choiceSet=c.choiceSet;
- appId=c.appId;
- return *this;
-}
-
-
-CreateInteractionChoiceSet::~CreateInteractionChoiceSet(void)
-{
-}
-
-
-CreateInteractionChoiceSet::CreateInteractionChoiceSet(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__CREATEINTERACTIONCHOICESET)
-{
-}
-
-
-CreateInteractionChoiceSet::CreateInteractionChoiceSet(const CreateInteractionChoiceSet& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__CREATEINTERACTIONCHOICESET,c.getId())
-{
- *this=c;
-}
-
-
-unsigned int CreateInteractionChoiceSet::get_interactionChoiceSetID(void)
-{
- return interactionChoiceSetID;
-}
-
-bool CreateInteractionChoiceSet::set_interactionChoiceSetID(unsigned int interactionChoiceSetID_)
-{
- interactionChoiceSetID=interactionChoiceSetID_;
- return true;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::Choice>& CreateInteractionChoiceSet::get_choiceSet(void)
-{
- return choiceSet;
-}
-
-bool CreateInteractionChoiceSet::set_choiceSet(const std::vector< NsSmartDeviceLinkRPCV2::Choice>& choiceSet_)
-{
- choiceSet=choiceSet_;
- return true;
-}
-
-int CreateInteractionChoiceSet::get_appId(void)
-{
- return appId;
-}
-
-bool CreateInteractionChoiceSet::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool CreateInteractionChoiceSet::checkIntegrity(void)
-{
- return CreateInteractionChoiceSetMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetMarshaller.cpp
deleted file mode 100644
index 680b2785e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetMarshaller.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSet.h"
-#include "../src/SDLRPCObjectsImpl/V2/ChoiceMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/CreateInteractionChoiceSetMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool CreateInteractionChoiceSetMarshaller::checkIntegrity(CreateInteractionChoiceSet& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool CreateInteractionChoiceSetMarshaller::fromString(const std::string& s,CreateInteractionChoiceSet& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string CreateInteractionChoiceSetMarshaller::toString(const CreateInteractionChoiceSet& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool CreateInteractionChoiceSetMarshaller::checkIntegrityConst(const CreateInteractionChoiceSet& s)
-{
- if(s.interactionChoiceSetID>2000000000) return false;
-
- {
- unsigned int i=s.choiceSet.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value CreateInteractionChoiceSetMarshaller::toJSON(const CreateInteractionChoiceSet& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.CreateInteractionChoiceSet");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["interactionChoiceSetID"]=Json::Value(e.interactionChoiceSetID);;
- {
- unsigned int i=e.choiceSet.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::ChoiceMarshaller::toJSON(e.choiceSet[i]);
-
- json["params"]["choiceSet"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool CreateInteractionChoiceSetMarshaller::fromJSON(const Json::Value& json,CreateInteractionChoiceSet& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.CreateInteractionChoiceSet")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("interactionChoiceSetID") || !js["interactionChoiceSetID"].isInt()) return false;
- c.interactionChoiceSetID=js["interactionChoiceSetID"].asInt();
- if(c.interactionChoiceSetID>2000000000) return false;
-
- if(!js.isMember("choiceSet") || !js["choiceSet"].isArray()) return false;
- {
- unsigned int i=js["choiceSet"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.choiceSet.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::Choice t;
- if(!NsSmartDeviceLinkRPCV2::ChoiceMarshaller::fromJSON(js["choiceSet"][i],t))
- return false;
- c.choiceSet[i]=t;
- }
- }
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetMarshaller.h
deleted file mode 100644
index d087969d2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_CREATEINTERACTIONCHOICESETMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_CREATEINTERACTIONCHOICESETMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSet.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct CreateInteractionChoiceSetMarshaller
- {
- static bool checkIntegrity(CreateInteractionChoiceSet& e);
- static bool checkIntegrityConst(const CreateInteractionChoiceSet& e);
-
- static bool fromString(const std::string& s,CreateInteractionChoiceSet& e);
- static const std::string toString(const CreateInteractionChoiceSet& e);
-
- static bool fromJSON(const Json::Value& s,CreateInteractionChoiceSet& e);
- static Json::Value toJSON(const CreateInteractionChoiceSet& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.cpp
deleted file mode 100644
index 282b3bdc5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-CreateInteractionChoiceSetResponse& CreateInteractionChoiceSetResponse::operator =(const CreateInteractionChoiceSetResponse& c)
-{
- return *this;
-}
-
-
-CreateInteractionChoiceSetResponse::~CreateInteractionChoiceSetResponse(void)
-{
-}
-
-
-CreateInteractionChoiceSetResponse::CreateInteractionChoiceSetResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__CREATEINTERACTIONCHOICESETRESPONSE)
-{
-}
-
-
-CreateInteractionChoiceSetResponse::CreateInteractionChoiceSetResponse(const CreateInteractionChoiceSetResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__CREATEINTERACTIONCHOICESETRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool CreateInteractionChoiceSetResponse::checkIntegrity(void)
-{
- return CreateInteractionChoiceSetResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponseMarshaller.cpp
deleted file mode 100644
index 84f492f9f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/CreateInteractionChoiceSetResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool CreateInteractionChoiceSetResponseMarshaller::checkIntegrity(CreateInteractionChoiceSetResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool CreateInteractionChoiceSetResponseMarshaller::fromString(const std::string& s,CreateInteractionChoiceSetResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string CreateInteractionChoiceSetResponseMarshaller::toString(const CreateInteractionChoiceSetResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool CreateInteractionChoiceSetResponseMarshaller::checkIntegrityConst(const CreateInteractionChoiceSetResponse& s)
-{
- return true;
-}
-
-
-Json::Value CreateInteractionChoiceSetResponseMarshaller::toJSON(const CreateInteractionChoiceSetResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.CreateInteractionChoiceSetResponse");
-
- return json;
-}
-
-
-bool CreateInteractionChoiceSetResponseMarshaller::fromJSON(const Json::Value& json,CreateInteractionChoiceSetResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.CreateInteractionChoiceSetResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponseMarshaller.h
deleted file mode 100644
index 33348682d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/CreateInteractionChoiceSetResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_CREATEINTERACTIONCHOICESETRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_CREATEINTERACTIONCHOICESETRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/CreateInteractionChoiceSetResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct CreateInteractionChoiceSetResponseMarshaller
- {
- static bool checkIntegrity(CreateInteractionChoiceSetResponse& e);
- static bool checkIntegrityConst(const CreateInteractionChoiceSetResponse& e);
-
- static bool fromString(const std::string& s,CreateInteractionChoiceSetResponse& e);
- static const std::string toString(const CreateInteractionChoiceSetResponse& e);
-
- static bool fromJSON(const Json::Value& s,CreateInteractionChoiceSetResponse& e);
- static Json::Value toJSON(const CreateInteractionChoiceSetResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommand.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommand.cpp
deleted file mode 100644
index 54eab8d85..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommand.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-DeleteCommand& DeleteCommand::operator =(const DeleteCommand& c)
-{
- cmdId=c.cmdId;
- appId=c.appId;
- return *this;
-}
-
-
-DeleteCommand::~DeleteCommand(void)
-{
-}
-
-
-DeleteCommand::DeleteCommand(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETECOMMAND)
-{
-}
-
-
-DeleteCommand::DeleteCommand(const DeleteCommand& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETECOMMAND,c.getId())
-{
- *this=c;
-}
-
-
-unsigned int DeleteCommand::get_cmdId(void)
-{
- return cmdId;
-}
-
-bool DeleteCommand::set_cmdId(unsigned int cmdId_)
-{
- cmdId=cmdId_;
- return true;
-}
-
-int DeleteCommand::get_appId(void)
-{
- return appId;
-}
-
-bool DeleteCommand::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool DeleteCommand::checkIntegrity(void)
-{
- return DeleteCommandMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandMarshaller.cpp
deleted file mode 100644
index 5ea174123..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommand.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteCommandMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool DeleteCommandMarshaller::checkIntegrity(DeleteCommand& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteCommandMarshaller::fromString(const std::string& s,DeleteCommand& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteCommandMarshaller::toString(const DeleteCommand& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteCommandMarshaller::checkIntegrityConst(const DeleteCommand& s)
-{
- if(s.cmdId>2000000000) return false;
-
- return true;
-}
-
-
-Json::Value DeleteCommandMarshaller::toJSON(const DeleteCommand& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.DeleteCommand");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["cmdId"]=Json::Value(e.cmdId);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool DeleteCommandMarshaller::fromJSON(const Json::Value& json,DeleteCommand& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.DeleteCommand")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("cmdId") || !js["cmdId"].isInt()) return false;
- c.cmdId=js["cmdId"].asInt();
- if(c.cmdId>2000000000) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandMarshaller.h
deleted file mode 100644
index 7ce55f67f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETECOMMANDMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETECOMMANDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommand.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct DeleteCommandMarshaller
- {
- static bool checkIntegrity(DeleteCommand& e);
- static bool checkIntegrityConst(const DeleteCommand& e);
-
- static bool fromString(const std::string& s,DeleteCommand& e);
- static const std::string toString(const DeleteCommand& e);
-
- static bool fromJSON(const Json::Value& s,DeleteCommand& e);
- static Json::Value toJSON(const DeleteCommand& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponse.cpp
deleted file mode 100644
index e1dff2f5e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-DeleteCommandResponse& DeleteCommandResponse::operator =(const DeleteCommandResponse& c)
-{
- return *this;
-}
-
-
-DeleteCommandResponse::~DeleteCommandResponse(void)
-{
-}
-
-
-DeleteCommandResponse::DeleteCommandResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETECOMMANDRESPONSE)
-{
-}
-
-
-DeleteCommandResponse::DeleteCommandResponse(const DeleteCommandResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETECOMMANDRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool DeleteCommandResponse::checkIntegrity(void)
-{
- return DeleteCommandResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponseMarshaller.cpp
deleted file mode 100644
index a1c4962c9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommandResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteCommandResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool DeleteCommandResponseMarshaller::checkIntegrity(DeleteCommandResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteCommandResponseMarshaller::fromString(const std::string& s,DeleteCommandResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteCommandResponseMarshaller::toString(const DeleteCommandResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteCommandResponseMarshaller::checkIntegrityConst(const DeleteCommandResponse& s)
-{
- return true;
-}
-
-
-Json::Value DeleteCommandResponseMarshaller::toJSON(const DeleteCommandResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.DeleteCommandResponse");
-
- return json;
-}
-
-
-bool DeleteCommandResponseMarshaller::fromJSON(const Json::Value& json,DeleteCommandResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.DeleteCommandResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponseMarshaller.h
deleted file mode 100644
index 5555926d7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteCommandResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETECOMMANDRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETECOMMANDRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteCommandResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct DeleteCommandResponseMarshaller
- {
- static bool checkIntegrity(DeleteCommandResponse& e);
- static bool checkIntegrityConst(const DeleteCommandResponse& e);
-
- static bool fromString(const std::string& s,DeleteCommandResponse& e);
- static const std::string toString(const DeleteCommandResponse& e);
-
- static bool fromJSON(const Json::Value& s,DeleteCommandResponse& e);
- static Json::Value toJSON(const DeleteCommandResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSet.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSet.cpp
deleted file mode 100644
index fb0659300..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSet.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSet.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-DeleteInteractionChoiceSet& DeleteInteractionChoiceSet::operator =(const DeleteInteractionChoiceSet& c)
-{
- interactionChoiceSetID=c.interactionChoiceSetID;
- appId=c.appId;
- return *this;
-}
-
-
-DeleteInteractionChoiceSet::~DeleteInteractionChoiceSet(void)
-{
-}
-
-
-DeleteInteractionChoiceSet::DeleteInteractionChoiceSet(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETEINTERACTIONCHOICESET)
-{
-}
-
-
-DeleteInteractionChoiceSet::DeleteInteractionChoiceSet(const DeleteInteractionChoiceSet& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETEINTERACTIONCHOICESET,c.getId())
-{
- *this=c;
-}
-
-
-unsigned int DeleteInteractionChoiceSet::get_interactionChoiceSetID(void)
-{
- return interactionChoiceSetID;
-}
-
-bool DeleteInteractionChoiceSet::set_interactionChoiceSetID(unsigned int interactionChoiceSetID_)
-{
- interactionChoiceSetID=interactionChoiceSetID_;
- return true;
-}
-
-int DeleteInteractionChoiceSet::get_appId(void)
-{
- return appId;
-}
-
-bool DeleteInteractionChoiceSet::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool DeleteInteractionChoiceSet::checkIntegrity(void)
-{
- return DeleteInteractionChoiceSetMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetMarshaller.cpp
deleted file mode 100644
index 02beef484..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSet.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteInteractionChoiceSetMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool DeleteInteractionChoiceSetMarshaller::checkIntegrity(DeleteInteractionChoiceSet& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteInteractionChoiceSetMarshaller::fromString(const std::string& s,DeleteInteractionChoiceSet& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteInteractionChoiceSetMarshaller::toString(const DeleteInteractionChoiceSet& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteInteractionChoiceSetMarshaller::checkIntegrityConst(const DeleteInteractionChoiceSet& s)
-{
- if(s.interactionChoiceSetID>2000000000) return false;
-
- return true;
-}
-
-
-Json::Value DeleteInteractionChoiceSetMarshaller::toJSON(const DeleteInteractionChoiceSet& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.DeleteInteractionChoiceSet");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["interactionChoiceSetID"]=Json::Value(e.interactionChoiceSetID);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool DeleteInteractionChoiceSetMarshaller::fromJSON(const Json::Value& json,DeleteInteractionChoiceSet& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.DeleteInteractionChoiceSet")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("interactionChoiceSetID") || !js["interactionChoiceSetID"].isInt()) return false;
- c.interactionChoiceSetID=js["interactionChoiceSetID"].asInt();
- if(c.interactionChoiceSetID>2000000000) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetMarshaller.h
deleted file mode 100644
index 79c27127b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETEINTERACTIONCHOICESETMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETEINTERACTIONCHOICESETMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSet.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct DeleteInteractionChoiceSetMarshaller
- {
- static bool checkIntegrity(DeleteInteractionChoiceSet& e);
- static bool checkIntegrityConst(const DeleteInteractionChoiceSet& e);
-
- static bool fromString(const std::string& s,DeleteInteractionChoiceSet& e);
- static const std::string toString(const DeleteInteractionChoiceSet& e);
-
- static bool fromJSON(const Json::Value& s,DeleteInteractionChoiceSet& e);
- static Json::Value toJSON(const DeleteInteractionChoiceSet& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.cpp
deleted file mode 100644
index d5d3d6b16..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-DeleteInteractionChoiceSetResponse& DeleteInteractionChoiceSetResponse::operator =(const DeleteInteractionChoiceSetResponse& c)
-{
- return *this;
-}
-
-
-DeleteInteractionChoiceSetResponse::~DeleteInteractionChoiceSetResponse(void)
-{
-}
-
-
-DeleteInteractionChoiceSetResponse::DeleteInteractionChoiceSetResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETEINTERACTIONCHOICESETRESPONSE)
-{
-}
-
-
-DeleteInteractionChoiceSetResponse::DeleteInteractionChoiceSetResponse(const DeleteInteractionChoiceSetResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETEINTERACTIONCHOICESETRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool DeleteInteractionChoiceSetResponse::checkIntegrity(void)
-{
- return DeleteInteractionChoiceSetResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponseMarshaller.cpp
deleted file mode 100644
index 568cfe8fd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteInteractionChoiceSetResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool DeleteInteractionChoiceSetResponseMarshaller::checkIntegrity(DeleteInteractionChoiceSetResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteInteractionChoiceSetResponseMarshaller::fromString(const std::string& s,DeleteInteractionChoiceSetResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteInteractionChoiceSetResponseMarshaller::toString(const DeleteInteractionChoiceSetResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteInteractionChoiceSetResponseMarshaller::checkIntegrityConst(const DeleteInteractionChoiceSetResponse& s)
-{
- return true;
-}
-
-
-Json::Value DeleteInteractionChoiceSetResponseMarshaller::toJSON(const DeleteInteractionChoiceSetResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.DeleteInteractionChoiceSetResponse");
-
- return json;
-}
-
-
-bool DeleteInteractionChoiceSetResponseMarshaller::fromJSON(const Json::Value& json,DeleteInteractionChoiceSetResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.DeleteInteractionChoiceSetResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponseMarshaller.h
deleted file mode 100644
index 2cf4fca55..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETEINTERACTIONCHOICESETRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETEINTERACTIONCHOICESETRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteInteractionChoiceSetResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct DeleteInteractionChoiceSetResponseMarshaller
- {
- static bool checkIntegrity(DeleteInteractionChoiceSetResponse& e);
- static bool checkIntegrityConst(const DeleteInteractionChoiceSetResponse& e);
-
- static bool fromString(const std::string& s,DeleteInteractionChoiceSetResponse& e);
- static const std::string toString(const DeleteInteractionChoiceSetResponse& e);
-
- static bool fromJSON(const Json::Value& s,DeleteInteractionChoiceSetResponse& e);
- static Json::Value toJSON(const DeleteInteractionChoiceSetResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenu.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenu.cpp
deleted file mode 100644
index 99f1bb0c3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenu.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenu.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-DeleteSubMenu& DeleteSubMenu::operator =(const DeleteSubMenu& c)
-{
- menuId=c.menuId;
- appId=c.appId;
- return *this;
-}
-
-
-DeleteSubMenu::~DeleteSubMenu(void)
-{
-}
-
-
-DeleteSubMenu::DeleteSubMenu(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETESUBMENU)
-{
-}
-
-
-DeleteSubMenu::DeleteSubMenu(const DeleteSubMenu& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETESUBMENU,c.getId())
-{
- *this=c;
-}
-
-
-unsigned int DeleteSubMenu::get_menuId(void)
-{
- return menuId;
-}
-
-bool DeleteSubMenu::set_menuId(unsigned int menuId_)
-{
- menuId=menuId_;
- return true;
-}
-
-int DeleteSubMenu::get_appId(void)
-{
- return appId;
-}
-
-bool DeleteSubMenu::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool DeleteSubMenu::checkIntegrity(void)
-{
- return DeleteSubMenuMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuMarshaller.cpp
deleted file mode 100644
index 564d0902e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenu.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteSubMenuMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool DeleteSubMenuMarshaller::checkIntegrity(DeleteSubMenu& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteSubMenuMarshaller::fromString(const std::string& s,DeleteSubMenu& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteSubMenuMarshaller::toString(const DeleteSubMenu& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteSubMenuMarshaller::checkIntegrityConst(const DeleteSubMenu& s)
-{
- if(s.menuId>2000000000) return false;
-
- return true;
-}
-
-
-Json::Value DeleteSubMenuMarshaller::toJSON(const DeleteSubMenu& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.DeleteSubMenu");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["menuId"]=Json::Value(e.menuId);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool DeleteSubMenuMarshaller::fromJSON(const Json::Value& json,DeleteSubMenu& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.DeleteSubMenu")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("menuId") || !js["menuId"].isInt()) return false;
- c.menuId=js["menuId"].asInt();
- if(c.menuId>2000000000) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuMarshaller.h
deleted file mode 100644
index 348720175..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETESUBMENUMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETESUBMENUMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenu.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct DeleteSubMenuMarshaller
- {
- static bool checkIntegrity(DeleteSubMenu& e);
- static bool checkIntegrityConst(const DeleteSubMenu& e);
-
- static bool fromString(const std::string& s,DeleteSubMenu& e);
- static const std::string toString(const DeleteSubMenu& e);
-
- static bool fromJSON(const Json::Value& s,DeleteSubMenu& e);
- static Json::Value toJSON(const DeleteSubMenu& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponse.cpp
deleted file mode 100644
index 818e52032..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenuResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-DeleteSubMenuResponse& DeleteSubMenuResponse::operator =(const DeleteSubMenuResponse& c)
-{
- return *this;
-}
-
-
-DeleteSubMenuResponse::~DeleteSubMenuResponse(void)
-{
-}
-
-
-DeleteSubMenuResponse::DeleteSubMenuResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETESUBMENURESPONSE)
-{
-}
-
-
-DeleteSubMenuResponse::DeleteSubMenuResponse(const DeleteSubMenuResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DELETESUBMENURESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool DeleteSubMenuResponse::checkIntegrity(void)
-{
- return DeleteSubMenuResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponseMarshaller.cpp
deleted file mode 100644
index acc82de87..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenuResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DeleteSubMenuResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool DeleteSubMenuResponseMarshaller::checkIntegrity(DeleteSubMenuResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteSubMenuResponseMarshaller::fromString(const std::string& s,DeleteSubMenuResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteSubMenuResponseMarshaller::toString(const DeleteSubMenuResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteSubMenuResponseMarshaller::checkIntegrityConst(const DeleteSubMenuResponse& s)
-{
- return true;
-}
-
-
-Json::Value DeleteSubMenuResponseMarshaller::toJSON(const DeleteSubMenuResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.DeleteSubMenuResponse");
-
- return json;
-}
-
-
-bool DeleteSubMenuResponseMarshaller::fromJSON(const Json::Value& json,DeleteSubMenuResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.DeleteSubMenuResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponseMarshaller.h
deleted file mode 100644
index 52ea48acb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DeleteSubMenuResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DELETESUBMENURESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DELETESUBMENURESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DeleteSubMenuResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct DeleteSubMenuResponseMarshaller
- {
- static bool checkIntegrity(DeleteSubMenuResponse& e);
- static bool checkIntegrityConst(const DeleteSubMenuResponse& e);
-
- static bool fromString(const std::string& s,DeleteSubMenuResponse& e);
- static const std::string toString(const DeleteSubMenuResponse& e);
-
- static bool fromJSON(const Json::Value& s,DeleteSubMenuResponse& e);
- static Json::Value toJSON(const DeleteSubMenuResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumber.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumber.cpp
deleted file mode 100644
index a897f23d0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumber.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumber.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-DialNumber& DialNumber::operator =(const DialNumber& c)
-{
- number=c.number;
- appId=c.appId;
- return *this;
-}
-
-
-DialNumber::~DialNumber(void)
-{
-}
-
-
-DialNumber::DialNumber(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DIALNUMBER)
-{
-}
-
-
-DialNumber::DialNumber(const DialNumber& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DIALNUMBER,c.getId())
-{
- *this=c;
-}
-
-
-const std::string& DialNumber::get_number(void)
-{
- return number;
-}
-
-bool DialNumber::set_number(const std::string& number_)
-{
- number=number_;
- return true;
-}
-
-int DialNumber::get_appId(void)
-{
- return appId;
-}
-
-bool DialNumber::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool DialNumber::checkIntegrity(void)
-{
- return DialNumberMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberMarshaller.cpp
deleted file mode 100644
index 409658320..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumber.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DialNumberMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool DialNumberMarshaller::checkIntegrity(DialNumber& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DialNumberMarshaller::fromString(const std::string& s,DialNumber& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DialNumberMarshaller::toString(const DialNumber& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DialNumberMarshaller::checkIntegrityConst(const DialNumber& s)
-{
- if(s.number.length()>500) return false;
-
- return true;
-}
-
-
-Json::Value DialNumberMarshaller::toJSON(const DialNumber& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.DialNumber");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["number"]=Json::Value(e.number);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool DialNumberMarshaller::fromJSON(const Json::Value& json,DialNumber& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.DialNumber")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("number") || !js["number"].isString()) return false;
- c.number=js["number"].asString();
- if(c.number.length()>500) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberMarshaller.h
deleted file mode 100644
index 58ae4033b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DIALNUMBERMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DIALNUMBERMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumber.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct DialNumberMarshaller
- {
- static bool checkIntegrity(DialNumber& e);
- static bool checkIntegrityConst(const DialNumber& e);
-
- static bool fromString(const std::string& s,DialNumber& e);
- static const std::string toString(const DialNumber& e);
-
- static bool fromJSON(const Json::Value& s,DialNumber& e);
- static Json::Value toJSON(const DialNumber& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponse.cpp
deleted file mode 100644
index fe6963ce3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumberResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-DialNumberResponse& DialNumberResponse::operator =(const DialNumberResponse& c)
-{
- return *this;
-}
-
-
-DialNumberResponse::~DialNumberResponse(void)
-{
-}
-
-
-DialNumberResponse::DialNumberResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DIALNUMBERRESPONSE)
-{
-}
-
-
-DialNumberResponse::DialNumberResponse(const DialNumberResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__DIALNUMBERRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool DialNumberResponse::checkIntegrity(void)
-{
- return DialNumberResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponseMarshaller.cpp
deleted file mode 100644
index 062df7e7a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumberResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/DialNumberResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool DialNumberResponseMarshaller::checkIntegrity(DialNumberResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DialNumberResponseMarshaller::fromString(const std::string& s,DialNumberResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DialNumberResponseMarshaller::toString(const DialNumberResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DialNumberResponseMarshaller::checkIntegrityConst(const DialNumberResponse& s)
-{
- return true;
-}
-
-
-Json::Value DialNumberResponseMarshaller::toJSON(const DialNumberResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.DialNumberResponse");
-
- return json;
-}
-
-
-bool DialNumberResponseMarshaller::fromJSON(const Json::Value& json,DialNumberResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.DialNumberResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponseMarshaller.h
deleted file mode 100644
index df442bd4e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/DialNumberResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_DIALNUMBERRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_DIALNUMBERRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/DialNumberResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct DialNumberResponseMarshaller
- {
- static bool checkIntegrity(DialNumberResponse& e);
- static bool checkIntegrityConst(const DialNumberResponse& e);
-
- static bool fromString(const std::string& s,DialNumberResponse& e);
- static const std::string toString(const DialNumberResponse& e);
-
- static bool fromJSON(const Json::Value& s,DialNumberResponse& e);
- static Json::Value toJSON(const DialNumberResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThru.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThru.cpp
deleted file mode 100644
index 6da0b38d5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThru.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThru.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-EndAudioPassThru& EndAudioPassThru::operator =(const EndAudioPassThru& c)
-{
- appId=c.appId;
- return *this;
-}
-
-
-EndAudioPassThru::~EndAudioPassThru(void)
-{
-}
-
-
-EndAudioPassThru::EndAudioPassThru(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ENDAUDIOPASSTHRU)
-{
-}
-
-
-EndAudioPassThru::EndAudioPassThru(const EndAudioPassThru& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ENDAUDIOPASSTHRU,c.getId())
-{
- *this=c;
-}
-
-
-int EndAudioPassThru::get_appId(void)
-{
- return appId;
-}
-
-bool EndAudioPassThru::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool EndAudioPassThru::checkIntegrity(void)
-{
- return EndAudioPassThruMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruMarshaller.cpp
deleted file mode 100644
index 23495dde7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruMarshaller.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThru.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/EndAudioPassThruMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool EndAudioPassThruMarshaller::checkIntegrity(EndAudioPassThru& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool EndAudioPassThruMarshaller::fromString(const std::string& s,EndAudioPassThru& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string EndAudioPassThruMarshaller::toString(const EndAudioPassThru& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool EndAudioPassThruMarshaller::checkIntegrityConst(const EndAudioPassThru& s)
-{
- return true;
-}
-
-
-Json::Value EndAudioPassThruMarshaller::toJSON(const EndAudioPassThru& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.EndAudioPassThru");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool EndAudioPassThruMarshaller::fromJSON(const Json::Value& json,EndAudioPassThru& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.EndAudioPassThru")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruMarshaller.h
deleted file mode 100644
index 5c1649272..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ENDAUDIOPASSTHRUMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ENDAUDIOPASSTHRUMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThru.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct EndAudioPassThruMarshaller
- {
- static bool checkIntegrity(EndAudioPassThru& e);
- static bool checkIntegrityConst(const EndAudioPassThru& e);
-
- static bool fromString(const std::string& s,EndAudioPassThru& e);
- static const std::string toString(const EndAudioPassThru& e);
-
- static bool fromJSON(const Json::Value& s,EndAudioPassThru& e);
- static Json::Value toJSON(const EndAudioPassThru& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponse.cpp
deleted file mode 100644
index 82d04ef74..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThruResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-EndAudioPassThruResponse& EndAudioPassThruResponse::operator =(const EndAudioPassThruResponse& c)
-{
- return *this;
-}
-
-
-EndAudioPassThruResponse::~EndAudioPassThruResponse(void)
-{
-}
-
-
-EndAudioPassThruResponse::EndAudioPassThruResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ENDAUDIOPASSTHRURESPONSE)
-{
-}
-
-
-EndAudioPassThruResponse::EndAudioPassThruResponse(const EndAudioPassThruResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ENDAUDIOPASSTHRURESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool EndAudioPassThruResponse::checkIntegrity(void)
-{
- return EndAudioPassThruResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponseMarshaller.cpp
deleted file mode 100644
index dd5399fc5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThruResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/EndAudioPassThruResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool EndAudioPassThruResponseMarshaller::checkIntegrity(EndAudioPassThruResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool EndAudioPassThruResponseMarshaller::fromString(const std::string& s,EndAudioPassThruResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string EndAudioPassThruResponseMarshaller::toString(const EndAudioPassThruResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool EndAudioPassThruResponseMarshaller::checkIntegrityConst(const EndAudioPassThruResponse& s)
-{
- return true;
-}
-
-
-Json::Value EndAudioPassThruResponseMarshaller::toJSON(const EndAudioPassThruResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.EndAudioPassThruResponse");
-
- return json;
-}
-
-
-bool EndAudioPassThruResponseMarshaller::fromJSON(const Json::Value& json,EndAudioPassThruResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.EndAudioPassThruResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponseMarshaller.h
deleted file mode 100644
index f4990c054..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/EndAudioPassThruResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ENDAUDIOPASSTHRURESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ENDAUDIOPASSTHRURESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/EndAudioPassThruResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct EndAudioPassThruResponseMarshaller
- {
- static bool checkIntegrity(EndAudioPassThruResponse& e);
- static bool checkIntegrityConst(const EndAudioPassThruResponse& e);
-
- static bool fromString(const std::string& s,EndAudioPassThruResponse& e);
- static const std::string toString(const EndAudioPassThruResponse& e);
-
- static bool fromJSON(const Json::Value& s,EndAudioPassThruResponse& e);
- static Json::Value toJSON(const EndAudioPassThruResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilities.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilities.cpp
deleted file mode 100644
index ed2176a3a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilities.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-GetCapabilities& GetCapabilities::operator =(const GetCapabilities& c)
-{
- return *this;
-}
-
-
-GetCapabilities::~GetCapabilities(void)
-{
-}
-
-
-GetCapabilities::GetCapabilities(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETCAPABILITIES)
-{
-}
-
-
-GetCapabilities::GetCapabilities(const GetCapabilities& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETCAPABILITIES,c.getId())
-{
- *this=c;
-}
-
-
-bool GetCapabilities::checkIntegrity(void)
-{
- return GetCapabilitiesMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesMarshaller.cpp
deleted file mode 100644
index 9a19ca9c2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilities.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetCapabilitiesMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool GetCapabilitiesMarshaller::checkIntegrity(GetCapabilities& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetCapabilitiesMarshaller::fromString(const std::string& s,GetCapabilities& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetCapabilitiesMarshaller::toString(const GetCapabilities& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetCapabilitiesMarshaller::checkIntegrityConst(const GetCapabilities& s)
-{
- return true;
-}
-
-
-Json::Value GetCapabilitiesMarshaller::toJSON(const GetCapabilities& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.GetCapabilities");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetCapabilitiesMarshaller::fromJSON(const Json::Value& json,GetCapabilities& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.GetCapabilities")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesMarshaller.h
deleted file mode 100644
index 390510e68..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETCAPABILITIESMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilities.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct GetCapabilitiesMarshaller
- {
- static bool checkIntegrity(GetCapabilities& e);
- static bool checkIntegrityConst(const GetCapabilities& e);
-
- static bool fromString(const std::string& s,GetCapabilities& e);
- static const std::string toString(const GetCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,GetCapabilities& e);
- static Json::Value toJSON(const GetCapabilities& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponse.cpp
deleted file mode 100644
index 204f6450a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponse.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-GetCapabilitiesResponse& GetCapabilitiesResponse::operator =(const GetCapabilitiesResponse& c)
-{
- displayCapabilities=c.displayCapabilities;
- hmiZoneCapabilities=c.hmiZoneCapabilities;
- if(softButtonCapabilities) delete softButtonCapabilities;
- softButtonCapabilities= c.softButtonCapabilities ? new std::vector<NsSmartDeviceLinkRPCV2::SoftButtonCapabilities>(c.softButtonCapabilities[0]) : 0;
- return *this;
-}
-
-
-GetCapabilitiesResponse::~GetCapabilitiesResponse(void)
-{
- if(softButtonCapabilities) delete softButtonCapabilities;
-}
-
-
-GetCapabilitiesResponse::GetCapabilitiesResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETCAPABILITIESRESPONSE),
- softButtonCapabilities(0)
-{
-}
-
-
-GetCapabilitiesResponse::GetCapabilitiesResponse(const GetCapabilitiesResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETCAPABILITIESRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::DisplayCapabilities& GetCapabilitiesResponse::get_displayCapabilities(void)
-{
- return displayCapabilities;
-}
-
-bool GetCapabilitiesResponse::set_displayCapabilities(const NsSmartDeviceLinkRPCV2::DisplayCapabilities& displayCapabilities_)
-{
- displayCapabilities=displayCapabilities_;
- return true;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::HmiZoneCapabilities>& GetCapabilitiesResponse::get_hmiZoneCapabilities(void)
-{
- return hmiZoneCapabilities;
-}
-
-bool GetCapabilitiesResponse::set_hmiZoneCapabilities(const std::vector< NsSmartDeviceLinkRPCV2::HmiZoneCapabilities>& hmiZoneCapabilities_)
-{
- hmiZoneCapabilities=hmiZoneCapabilities_;
- return true;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::SoftButtonCapabilities>* GetCapabilitiesResponse::get_softButtonCapabilities(void)
-{
- return softButtonCapabilities;
-}
-
-bool GetCapabilitiesResponse::set_softButtonCapabilities(const std::vector< NsSmartDeviceLinkRPCV2::SoftButtonCapabilities>& softButtonCapabilities_)
-{
- if(softButtonCapabilities) delete softButtonCapabilities;
- softButtonCapabilities=new std::vector< NsSmartDeviceLinkRPCV2::SoftButtonCapabilities>(softButtonCapabilities_);
- return true;
-}
-
-void GetCapabilitiesResponse::reset_softButtonCapabilities(void)
-{
- if(softButtonCapabilities) delete softButtonCapabilities;
- softButtonCapabilities=0;
-}
-
-bool GetCapabilitiesResponse::checkIntegrity(void)
-{
- return GetCapabilitiesResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponseMarshaller.cpp
deleted file mode 100644
index c6ee9c41e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponseMarshaller.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilitiesResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/DisplayCapabilitiesMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SoftButtonCapabilitiesMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetCapabilitiesResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool GetCapabilitiesResponseMarshaller::checkIntegrity(GetCapabilitiesResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetCapabilitiesResponseMarshaller::fromString(const std::string& s,GetCapabilitiesResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetCapabilitiesResponseMarshaller::toString(const GetCapabilitiesResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetCapabilitiesResponseMarshaller::checkIntegrityConst(const GetCapabilitiesResponse& s)
-{
- if(!NsSmartDeviceLinkRPCV2::DisplayCapabilitiesMarshaller::checkIntegrityConst(s.displayCapabilities)) return false;
-
- {
- unsigned int i=s.hmiZoneCapabilities.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- if(s.softButtonCapabilities)
- {
- unsigned int i=s.softButtonCapabilities[0].size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value GetCapabilitiesResponseMarshaller::toJSON(const GetCapabilitiesResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.GetCapabilitiesResponse");
-
- json["result"]["displayCapabilities"]=NsSmartDeviceLinkRPCV2::DisplayCapabilitiesMarshaller::toJSON(e.displayCapabilities);;
- {
- unsigned int i=e.hmiZoneCapabilities.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::HmiZoneCapabilitiesMarshaller::toJSON(e.hmiZoneCapabilities[i]);
-
- json["result"]["hmiZoneCapabilities"]=j;
- }
- if(e.softButtonCapabilities)
- {
- unsigned int i=e.softButtonCapabilities[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::SoftButtonCapabilitiesMarshaller::toJSON(e.softButtonCapabilities[0][i]);
-
- json["result"]["softButtonCapabilities"]=j;
- }
- return json;
-}
-
-
-bool GetCapabilitiesResponseMarshaller::fromJSON(const Json::Value& json,GetCapabilitiesResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.GetCapabilitiesResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("displayCapabilities") || !NsSmartDeviceLinkRPCV2::DisplayCapabilitiesMarshaller::fromJSON(js["displayCapabilities"],c.displayCapabilities)) return false;
-
- if(!js.isMember("hmiZoneCapabilities") || !js["hmiZoneCapabilities"].isArray()) return false;
- {
- unsigned int i=js["hmiZoneCapabilities"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.hmiZoneCapabilities.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::HmiZoneCapabilities t;
- if(!NsSmartDeviceLinkRPCV2::HmiZoneCapabilitiesMarshaller::fromJSON(js["hmiZoneCapabilities"][i],t))
- return false;
- c.hmiZoneCapabilities[i]=t;
- }
- }
-
- if(c.softButtonCapabilities) delete c.softButtonCapabilities;
- c.softButtonCapabilities=0;
- if(js.isMember("softButtonCapabilities"))
- {
- if(!js["softButtonCapabilities"].isArray()) return false;
- unsigned int i=js["softButtonCapabilities"].size();
- if(i<1) return false;
- if(i>100) return false;
-
- c.softButtonCapabilities=new std::vector<NsSmartDeviceLinkRPCV2::SoftButtonCapabilities>();
- c.softButtonCapabilities->resize(js["softButtonCapabilities"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::SoftButtonCapabilitiesMarshaller::fromJSON(js["softButtonCapabilities"][i],c.softButtonCapabilities[0][i])) return false;
- }
-
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponseMarshaller.h
deleted file mode 100644
index 1eeeaf76f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetCapabilitiesResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETCAPABILITIESRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETCAPABILITIESRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetCapabilitiesResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct GetCapabilitiesResponseMarshaller
- {
- static bool checkIntegrity(GetCapabilitiesResponse& e);
- static bool checkIntegrityConst(const GetCapabilitiesResponse& e);
-
- static bool fromString(const std::string& s,GetCapabilitiesResponse& e);
- static const std::string toString(const GetCapabilitiesResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetCapabilitiesResponse& e);
- static Json::Value toJSON(const GetCapabilitiesResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguage.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguage.cpp
deleted file mode 100644
index 36e740f20..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguage.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguage.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-GetLanguage& GetLanguage::operator =(const GetLanguage& c)
-{
- return *this;
-}
-
-
-GetLanguage::~GetLanguage(void)
-{
-}
-
-
-GetLanguage::GetLanguage(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETLANGUAGE)
-{
-}
-
-
-GetLanguage::GetLanguage(const GetLanguage& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETLANGUAGE,c.getId())
-{
- *this=c;
-}
-
-
-bool GetLanguage::checkIntegrity(void)
-{
- return GetLanguageMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageMarshaller.cpp
deleted file mode 100644
index 1310baef3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguage.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetLanguageMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool GetLanguageMarshaller::checkIntegrity(GetLanguage& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetLanguageMarshaller::fromString(const std::string& s,GetLanguage& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetLanguageMarshaller::toString(const GetLanguage& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetLanguageMarshaller::checkIntegrityConst(const GetLanguage& s)
-{
- return true;
-}
-
-
-Json::Value GetLanguageMarshaller::toJSON(const GetLanguage& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.GetLanguage");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetLanguageMarshaller::fromJSON(const Json::Value& json,GetLanguage& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.GetLanguage")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageMarshaller.h
deleted file mode 100644
index 03ed2fded..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETLANGUAGEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETLANGUAGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguage.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct GetLanguageMarshaller
- {
- static bool checkIntegrity(GetLanguage& e);
- static bool checkIntegrityConst(const GetLanguage& e);
-
- static bool fromString(const std::string& s,GetLanguage& e);
- static const std::string toString(const GetLanguage& e);
-
- static bool fromJSON(const Json::Value& s,GetLanguage& e);
- static Json::Value toJSON(const GetLanguage& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponse.cpp
deleted file mode 100644
index 72e118ac9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponse.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-GetLanguageResponse& GetLanguageResponse::operator =(const GetLanguageResponse& c)
-{
- hmiDisplayLanguage=c.hmiDisplayLanguage;
- return *this;
-}
-
-
-GetLanguageResponse::~GetLanguageResponse(void)
-{
-}
-
-
-GetLanguageResponse::GetLanguageResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETLANGUAGERESPONSE)
-{
-}
-
-
-GetLanguageResponse::GetLanguageResponse(const GetLanguageResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETLANGUAGERESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::Language& GetLanguageResponse::get_hmiDisplayLanguage(void)
-{
- return hmiDisplayLanguage;
-}
-
-bool GetLanguageResponse::set_hmiDisplayLanguage(const NsSmartDeviceLinkRPCV2::Language& hmiDisplayLanguage_)
-{
- hmiDisplayLanguage=hmiDisplayLanguage_;
- return true;
-}
-
-bool GetLanguageResponse::checkIntegrity(void)
-{
- return GetLanguageResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponseMarshaller.cpp
deleted file mode 100644
index e4f04dfa1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponseMarshaller.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguageResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetLanguageResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool GetLanguageResponseMarshaller::checkIntegrity(GetLanguageResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetLanguageResponseMarshaller::fromString(const std::string& s,GetLanguageResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetLanguageResponseMarshaller::toString(const GetLanguageResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetLanguageResponseMarshaller::checkIntegrityConst(const GetLanguageResponse& s)
-{
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::checkIntegrityConst(s.hmiDisplayLanguage)) return false;
-
- return true;
-}
-
-
-Json::Value GetLanguageResponseMarshaller::toJSON(const GetLanguageResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.GetLanguageResponse");
-
- json["result"]["hmiDisplayLanguage"]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.hmiDisplayLanguage);;
- return json;
-}
-
-
-bool GetLanguageResponseMarshaller::fromJSON(const Json::Value& json,GetLanguageResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.GetLanguageResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("hmiDisplayLanguage") || !NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["hmiDisplayLanguage"],c.hmiDisplayLanguage)) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponseMarshaller.h
deleted file mode 100644
index 01e9fada2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetLanguageResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETLANGUAGERESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETLANGUAGERESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetLanguageResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct GetLanguageResponseMarshaller
- {
- static bool checkIntegrity(GetLanguageResponse& e);
- static bool checkIntegrityConst(const GetLanguageResponse& e);
-
- static bool fromString(const std::string& s,GetLanguageResponse& e);
- static const std::string toString(const GetLanguageResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetLanguageResponse& e);
- static Json::Value toJSON(const GetLanguageResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguages.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguages.cpp
deleted file mode 100644
index b68b5462e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguages.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguages.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-GetSupportedLanguages& GetSupportedLanguages::operator =(const GetSupportedLanguages& c)
-{
- return *this;
-}
-
-
-GetSupportedLanguages::~GetSupportedLanguages(void)
-{
-}
-
-
-GetSupportedLanguages::GetSupportedLanguages(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETSUPPORTEDLANGUAGES)
-{
-}
-
-
-GetSupportedLanguages::GetSupportedLanguages(const GetSupportedLanguages& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETSUPPORTEDLANGUAGES,c.getId())
-{
- *this=c;
-}
-
-
-bool GetSupportedLanguages::checkIntegrity(void)
-{
- return GetSupportedLanguagesMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesMarshaller.cpp
deleted file mode 100644
index 1aa123469..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguages.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetSupportedLanguagesMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool GetSupportedLanguagesMarshaller::checkIntegrity(GetSupportedLanguages& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetSupportedLanguagesMarshaller::fromString(const std::string& s,GetSupportedLanguages& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetSupportedLanguagesMarshaller::toString(const GetSupportedLanguages& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetSupportedLanguagesMarshaller::checkIntegrityConst(const GetSupportedLanguages& s)
-{
- return true;
-}
-
-
-Json::Value GetSupportedLanguagesMarshaller::toJSON(const GetSupportedLanguages& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.GetSupportedLanguages");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetSupportedLanguagesMarshaller::fromJSON(const Json::Value& json,GetSupportedLanguages& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.GetSupportedLanguages")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesMarshaller.h
deleted file mode 100644
index e518431b4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETSUPPORTEDLANGUAGESMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETSUPPORTEDLANGUAGESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguages.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct GetSupportedLanguagesMarshaller
- {
- static bool checkIntegrity(GetSupportedLanguages& e);
- static bool checkIntegrityConst(const GetSupportedLanguages& e);
-
- static bool fromString(const std::string& s,GetSupportedLanguages& e);
- static const std::string toString(const GetSupportedLanguages& e);
-
- static bool fromJSON(const Json::Value& s,GetSupportedLanguages& e);
- static Json::Value toJSON(const GetSupportedLanguages& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponse.cpp
deleted file mode 100644
index 3ead1761c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponse.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguagesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-GetSupportedLanguagesResponse& GetSupportedLanguagesResponse::operator =(const GetSupportedLanguagesResponse& c)
-{
- languages=c.languages;
- return *this;
-}
-
-
-GetSupportedLanguagesResponse::~GetSupportedLanguagesResponse(void)
-{
-}
-
-
-GetSupportedLanguagesResponse::GetSupportedLanguagesResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETSUPPORTEDLANGUAGESRESPONSE)
-{
-}
-
-
-GetSupportedLanguagesResponse::GetSupportedLanguagesResponse(const GetSupportedLanguagesResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__GETSUPPORTEDLANGUAGESRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::Language>& GetSupportedLanguagesResponse::get_languages(void)
-{
- return languages;
-}
-
-bool GetSupportedLanguagesResponse::set_languages(const std::vector< NsSmartDeviceLinkRPCV2::Language>& languages_)
-{
- languages=languages_;
- return true;
-}
-
-bool GetSupportedLanguagesResponse::checkIntegrity(void)
-{
- return GetSupportedLanguagesResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponseMarshaller.cpp
deleted file mode 100644
index 6c947feb1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponseMarshaller.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguagesResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/GetSupportedLanguagesResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool GetSupportedLanguagesResponseMarshaller::checkIntegrity(GetSupportedLanguagesResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetSupportedLanguagesResponseMarshaller::fromString(const std::string& s,GetSupportedLanguagesResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetSupportedLanguagesResponseMarshaller::toString(const GetSupportedLanguagesResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetSupportedLanguagesResponseMarshaller::checkIntegrityConst(const GetSupportedLanguagesResponse& s)
-{
- {
- unsigned int i=s.languages.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value GetSupportedLanguagesResponseMarshaller::toJSON(const GetSupportedLanguagesResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.GetSupportedLanguagesResponse");
-
- {
- unsigned int i=e.languages.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.languages[i]);
-
- json["result"]["languages"]=j;
- }
- return json;
-}
-
-
-bool GetSupportedLanguagesResponseMarshaller::fromJSON(const Json::Value& json,GetSupportedLanguagesResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.GetSupportedLanguagesResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("languages") || !js["languages"].isArray()) return false;
- {
- unsigned int i=js["languages"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.languages.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::Language t;
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["languages"][i],t))
- return false;
- c.languages[i]=t;
- }
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponseMarshaller.h
deleted file mode 100644
index f0d17f125..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/GetSupportedLanguagesResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_GETSUPPORTEDLANGUAGESRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_GETSUPPORTEDLANGUAGESRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/GetSupportedLanguagesResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct GetSupportedLanguagesResponseMarshaller
- {
- static bool checkIntegrity(GetSupportedLanguagesResponse& e);
- static bool checkIntegrityConst(const GetSupportedLanguagesResponse& e);
-
- static bool fromString(const std::string& s,GetSupportedLanguagesResponse& e);
- static const std::string toString(const GetSupportedLanguagesResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetSupportedLanguagesResponse& e);
- static Json::Value toJSON(const GetSupportedLanguagesResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommand.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommand.cpp
deleted file mode 100644
index 07fb31b9b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommand.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-OnCommand& OnCommand::operator =(const OnCommand& c)
-{
- commandId=c.commandId;
- appId=c.appId;
- return *this;
-}
-
-
-OnCommand::~OnCommand(void)
-{
-}
-
-
-OnCommand::OnCommand(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONCOMMAND)
-{
-}
-
-
-OnCommand::OnCommand(const OnCommand& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONCOMMAND)
-{
- *this=c;
-}
-
-
-unsigned int OnCommand::get_commandId(void)
-{
- return commandId;
-}
-
-bool OnCommand::set_commandId(unsigned int commandId_)
-{
- commandId=commandId_;
- return true;
-}
-
-int OnCommand::get_appId(void)
-{
- return appId;
-}
-
-bool OnCommand::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool OnCommand::checkIntegrity(void)
-{
- return OnCommandMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommandMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommandMarshaller.cpp
deleted file mode 100644
index a9cddfd63..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommandMarshaller.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnCommand.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnCommandMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool OnCommandMarshaller::checkIntegrity(OnCommand& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnCommandMarshaller::fromString(const std::string& s,OnCommand& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnCommandMarshaller::toString(const OnCommand& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnCommandMarshaller::checkIntegrityConst(const OnCommand& s)
-{
- if(s.commandId>2000000000) return false;
-
- return true;
-}
-
-
-Json::Value OnCommandMarshaller::toJSON(const OnCommand& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.OnCommand");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["commandId"]=Json::Value(e.commandId);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool OnCommandMarshaller::fromJSON(const Json::Value& json,OnCommand& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.OnCommand")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("commandId") || !js["commandId"].isInt()) return false;
- c.commandId=js["commandId"].asInt();
- if(c.commandId>2000000000) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommandMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommandMarshaller.h
deleted file mode 100644
index 452bc9023..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnCommandMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONCOMMANDMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONCOMMANDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnCommand.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct OnCommandMarshaller
- {
- static bool checkIntegrity(OnCommand& e);
- static bool checkIntegrityConst(const OnCommand& e);
-
- static bool fromString(const std::string& s,OnCommand& e);
- static const std::string toString(const OnCommand& e);
-
- static bool fromJSON(const Json::Value& s,OnCommand& e);
- static Json::Value toJSON(const OnCommand& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosen.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosen.cpp
deleted file mode 100644
index 64030c3ef..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosen.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDeviceChosen.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-OnDeviceChosen& OnDeviceChosen::operator =(const OnDeviceChosen& c)
-{
- deviceName=c.deviceName;
- return *this;
-}
-
-
-OnDeviceChosen::~OnDeviceChosen(void)
-{
-}
-
-
-OnDeviceChosen::OnDeviceChosen(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONDEVICECHOSEN)
-{
-}
-
-
-OnDeviceChosen::OnDeviceChosen(const OnDeviceChosen& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONDEVICECHOSEN)
-{
- *this=c;
-}
-
-
-const std::string& OnDeviceChosen::get_deviceName(void)
-{
- return deviceName;
-}
-
-bool OnDeviceChosen::set_deviceName(const std::string& deviceName_)
-{
- deviceName=deviceName_;
- return true;
-}
-
-bool OnDeviceChosen::checkIntegrity(void)
-{
- return OnDeviceChosenMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosenMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosenMarshaller.cpp
deleted file mode 100644
index b9ce689ec..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosenMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDeviceChosen.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnDeviceChosenMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool OnDeviceChosenMarshaller::checkIntegrity(OnDeviceChosen& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnDeviceChosenMarshaller::fromString(const std::string& s,OnDeviceChosen& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnDeviceChosenMarshaller::toString(const OnDeviceChosen& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnDeviceChosenMarshaller::checkIntegrityConst(const OnDeviceChosen& s)
-{
- return true;
-}
-
-
-Json::Value OnDeviceChosenMarshaller::toJSON(const OnDeviceChosen& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.OnDeviceChosen");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["deviceName"]=Json::Value(e.deviceName);;
- return json;
-}
-
-
-bool OnDeviceChosenMarshaller::fromJSON(const Json::Value& json,OnDeviceChosen& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.OnDeviceChosen")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("deviceName") || !js["deviceName"].isString()) return false;
- c.deviceName=js["deviceName"].asString();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosenMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosenMarshaller.h
deleted file mode 100644
index eeb41cbad..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDeviceChosenMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONDEVICECHOSENMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONDEVICECHOSENMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDeviceChosen.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct OnDeviceChosenMarshaller
- {
- static bool checkIntegrity(OnDeviceChosen& e);
- static bool checkIntegrityConst(const OnDeviceChosen& e);
-
- static bool fromString(const std::string& s,OnDeviceChosen& e);
- static const std::string toString(const OnDeviceChosen& e);
-
- static bool fromJSON(const Json::Value& s,OnDeviceChosen& e);
- static Json::Value toJSON(const OnDeviceChosen& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistraction.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistraction.cpp
deleted file mode 100644
index 68cf2740d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistraction.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDriverDistraction.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-OnDriverDistraction& OnDriverDistraction::operator =(const OnDriverDistraction& c)
-{
- state=c.state;
- return *this;
-}
-
-
-OnDriverDistraction::~OnDriverDistraction(void)
-{
-}
-
-
-OnDriverDistraction::OnDriverDistraction(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONDRIVERDISTRACTION)
-{
-}
-
-
-OnDriverDistraction::OnDriverDistraction(const OnDriverDistraction& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONDRIVERDISTRACTION)
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::DriverDistractionState& OnDriverDistraction::get_state(void)
-{
- return state;
-}
-
-bool OnDriverDistraction::set_state(const NsSmartDeviceLinkRPCV2::DriverDistractionState& state_)
-{
- state=state_;
- return true;
-}
-
-bool OnDriverDistraction::checkIntegrity(void)
-{
- return OnDriverDistractionMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistractionMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistractionMarshaller.cpp
deleted file mode 100644
index c62901454..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistractionMarshaller.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDriverDistraction.h"
-#include "../src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnDriverDistractionMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool OnDriverDistractionMarshaller::checkIntegrity(OnDriverDistraction& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnDriverDistractionMarshaller::fromString(const std::string& s,OnDriverDistraction& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnDriverDistractionMarshaller::toString(const OnDriverDistraction& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnDriverDistractionMarshaller::checkIntegrityConst(const OnDriverDistraction& s)
-{
- if(!NsSmartDeviceLinkRPCV2::DriverDistractionStateMarshaller::checkIntegrityConst(s.state)) return false;
-
- return true;
-}
-
-
-Json::Value OnDriverDistractionMarshaller::toJSON(const OnDriverDistraction& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.OnDriverDistraction");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["state"]=NsSmartDeviceLinkRPCV2::DriverDistractionStateMarshaller::toJSON(e.state);;
- return json;
-}
-
-
-bool OnDriverDistractionMarshaller::fromJSON(const Json::Value& json,OnDriverDistraction& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.OnDriverDistraction")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("state") || !NsSmartDeviceLinkRPCV2::DriverDistractionStateMarshaller::fromJSON(js["state"],c.state)) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistractionMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistractionMarshaller.h
deleted file mode 100644
index 470fe089d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnDriverDistractionMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONDRIVERDISTRACTIONMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONDRIVERDISTRACTIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnDriverDistraction.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct OnDriverDistractionMarshaller
- {
- static bool checkIntegrity(OnDriverDistraction& e);
- static bool checkIntegrityConst(const OnDriverDistraction& e);
-
- static bool fromString(const std::string& s,OnDriverDistraction& e);
- static const std::string toString(const OnDriverDistraction& e);
-
- static bool fromJSON(const Json::Value& s,OnDriverDistraction& e);
- static Json::Value toJSON(const OnDriverDistraction& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChange.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChange.cpp
deleted file mode 100644
index 0418a8f33..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChange.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnLanguageChange.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-OnLanguageChange& OnLanguageChange::operator =(const OnLanguageChange& c)
-{
- hmiDisplayLanguage=c.hmiDisplayLanguage;
- return *this;
-}
-
-
-OnLanguageChange::~OnLanguageChange(void)
-{
-}
-
-
-OnLanguageChange::OnLanguageChange(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONLANGUAGECHANGE)
-{
-}
-
-
-OnLanguageChange::OnLanguageChange(const OnLanguageChange& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONLANGUAGECHANGE)
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::Language& OnLanguageChange::get_hmiDisplayLanguage(void)
-{
- return hmiDisplayLanguage;
-}
-
-bool OnLanguageChange::set_hmiDisplayLanguage(const NsSmartDeviceLinkRPCV2::Language& hmiDisplayLanguage_)
-{
- hmiDisplayLanguage=hmiDisplayLanguage_;
- return true;
-}
-
-bool OnLanguageChange::checkIntegrity(void)
-{
- return OnLanguageChangeMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChangeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChangeMarshaller.cpp
deleted file mode 100644
index 57e0b8c10..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChangeMarshaller.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnLanguageChange.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnLanguageChangeMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool OnLanguageChangeMarshaller::checkIntegrity(OnLanguageChange& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnLanguageChangeMarshaller::fromString(const std::string& s,OnLanguageChange& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnLanguageChangeMarshaller::toString(const OnLanguageChange& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnLanguageChangeMarshaller::checkIntegrityConst(const OnLanguageChange& s)
-{
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::checkIntegrityConst(s.hmiDisplayLanguage)) return false;
-
- return true;
-}
-
-
-Json::Value OnLanguageChangeMarshaller::toJSON(const OnLanguageChange& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.OnLanguageChange");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["hmiDisplayLanguage"]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.hmiDisplayLanguage);;
- return json;
-}
-
-
-bool OnLanguageChangeMarshaller::fromJSON(const Json::Value& json,OnLanguageChange& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.OnLanguageChange")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("hmiDisplayLanguage") || !NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["hmiDisplayLanguage"],c.hmiDisplayLanguage)) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChangeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChangeMarshaller.h
deleted file mode 100644
index 286ae7eb9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnLanguageChangeMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONLANGUAGECHANGEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONLANGUAGECHANGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnLanguageChange.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct OnLanguageChangeMarshaller
- {
- static bool checkIntegrity(OnLanguageChange& e);
- static bool checkIntegrityConst(const OnLanguageChange& e);
-
- static bool fromString(const std::string& s,OnLanguageChange& e);
- static const std::string toString(const OnLanguageChange& e);
-
- static bool fromJSON(const Json::Value& s,OnLanguageChange& e);
- static Json::Value toJSON(const OnLanguageChange& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReady.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReady.cpp
deleted file mode 100644
index af4d65a2f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReady.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnReady.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-OnReady& OnReady::operator =(const OnReady& c)
-{
- return *this;
-}
-
-
-OnReady::~OnReady(void)
-{
-}
-
-
-OnReady::OnReady(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONREADY)
-{
-}
-
-
-OnReady::OnReady(const OnReady& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONREADY)
-{
- *this=c;
-}
-
-
-bool OnReady::checkIntegrity(void)
-{
- return OnReadyMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReadyMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReadyMarshaller.cpp
deleted file mode 100644
index 5fc0178cc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReadyMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnReady.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnReadyMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool OnReadyMarshaller::checkIntegrity(OnReady& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnReadyMarshaller::fromString(const std::string& s,OnReady& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnReadyMarshaller::toString(const OnReady& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnReadyMarshaller::checkIntegrityConst(const OnReady& s)
-{
- return true;
-}
-
-
-Json::Value OnReadyMarshaller::toJSON(const OnReady& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.OnReady");
-
- return json;
-}
-
-
-bool OnReadyMarshaller::fromJSON(const Json::Value& json,OnReady& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.OnReady")) return false;
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReadyMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReadyMarshaller.h
deleted file mode 100644
index f96808e44..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnReadyMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONREADYMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONREADYMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnReady.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct OnReadyMarshaller
- {
- static bool checkIntegrity(OnReady& e);
- static bool checkIntegrityConst(const OnReady& e);
-
- static bool fromString(const std::string& s,OnReady& e);
- static const std::string toString(const OnReady& e);
-
- static bool fromJSON(const Json::Value& s,OnReady& e);
- static Json::Value toJSON(const OnReady& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContext.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContext.cpp
deleted file mode 100644
index 1b87a26be..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContext.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnSystemContext.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-OnSystemContext& OnSystemContext::operator =(const OnSystemContext& c)
-{
- systemContext=c.systemContext;
- return *this;
-}
-
-
-OnSystemContext::~OnSystemContext(void)
-{
-}
-
-
-OnSystemContext::OnSystemContext(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONSYSTEMCONTEXT)
-{
-}
-
-
-OnSystemContext::OnSystemContext(const OnSystemContext& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONSYSTEMCONTEXT)
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::SystemContext& OnSystemContext::get_systemContext(void)
-{
- return systemContext;
-}
-
-bool OnSystemContext::set_systemContext(const NsSmartDeviceLinkRPCV2::SystemContext& systemContext_)
-{
- systemContext=systemContext_;
- return true;
-}
-
-bool OnSystemContext::checkIntegrity(void)
-{
- return OnSystemContextMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContextMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContextMarshaller.cpp
deleted file mode 100644
index 471b5330d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContextMarshaller.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnSystemContext.h"
-#include "../src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnSystemContextMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool OnSystemContextMarshaller::checkIntegrity(OnSystemContext& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnSystemContextMarshaller::fromString(const std::string& s,OnSystemContext& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnSystemContextMarshaller::toString(const OnSystemContext& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnSystemContextMarshaller::checkIntegrityConst(const OnSystemContext& s)
-{
- if(!NsSmartDeviceLinkRPCV2::SystemContextMarshaller::checkIntegrityConst(s.systemContext)) return false;
-
- return true;
-}
-
-
-Json::Value OnSystemContextMarshaller::toJSON(const OnSystemContext& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.OnSystemContext");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["systemContext"]=NsSmartDeviceLinkRPCV2::SystemContextMarshaller::toJSON(e.systemContext);;
- return json;
-}
-
-
-bool OnSystemContextMarshaller::fromJSON(const Json::Value& json,OnSystemContext& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.OnSystemContext")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("systemContext") || !NsSmartDeviceLinkRPCV2::SystemContextMarshaller::fromJSON(js["systemContext"],c.systemContext)) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContextMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContextMarshaller.h
deleted file mode 100644
index e9cece0ac..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnSystemContextMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONSYSTEMCONTEXTMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONSYSTEMCONTEXTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnSystemContext.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct OnSystemContextMarshaller
- {
- static bool checkIntegrity(OnSystemContext& e);
- static bool checkIntegrityConst(const OnSystemContext& e);
-
- static bool fromString(const std::string& s,OnSystemContext& e);
- static const std::string toString(const OnSystemContext& e);
-
- static bool fromJSON(const Json::Value& s,OnSystemContext& e);
- static Json::Value toJSON(const OnSystemContext& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientState.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientState.cpp
deleted file mode 100644
index f1dce8016..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientState.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnTBTClientState.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-OnTBTClientState& OnTBTClientState::operator =(const OnTBTClientState& c)
-{
- state=c.state;
- return *this;
-}
-
-
-OnTBTClientState::~OnTBTClientState(void)
-{
-}
-
-
-OnTBTClientState::OnTBTClientState(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONTBTCLIENTSTATE)
-{
-}
-
-
-OnTBTClientState::OnTBTClientState(const OnTBTClientState& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__ONTBTCLIENTSTATE)
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::TBTState& OnTBTClientState::get_state(void)
-{
- return state;
-}
-
-bool OnTBTClientState::set_state(const NsSmartDeviceLinkRPCV2::TBTState& state_)
-{
- state=state_;
- return true;
-}
-
-int OnTBTClientState::get_appId(void)
-{
- return appId;
-}
-
-bool OnTBTClientState::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool OnTBTClientState::checkIntegrity(void)
-{
- return OnTBTClientStateMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientStateMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientStateMarshaller.cpp
deleted file mode 100644
index 891112e8e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientStateMarshaller.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnTBTClientState.h"
-#include "../src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/OnTBTClientStateMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool OnTBTClientStateMarshaller::checkIntegrity(OnTBTClientState& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnTBTClientStateMarshaller::fromString(const std::string& s,OnTBTClientState& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnTBTClientStateMarshaller::toString(const OnTBTClientState& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnTBTClientStateMarshaller::checkIntegrityConst(const OnTBTClientState& s)
-{
- if(!NsSmartDeviceLinkRPCV2::TBTStateMarshaller::checkIntegrityConst(s.state)) return false;
-
- return true;
-}
-
-
-Json::Value OnTBTClientStateMarshaller::toJSON(const OnTBTClientState& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.OnTBTClientState");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["state"]=NsSmartDeviceLinkRPCV2::TBTStateMarshaller::toJSON(e.state);
- json["params"]["appId"]=Json::Value(e.appId);
- return json;
-}
-
-
-bool OnTBTClientStateMarshaller::fromJSON(const Json::Value& json,OnTBTClientState& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.OnTBTClientState")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("state") || !NsSmartDeviceLinkRPCV2::TBTStateMarshaller::fromJSON(js["state"],c.state)) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientStateMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientStateMarshaller.h
deleted file mode 100644
index a78e8025f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/OnTBTClientStateMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_ONTBTCLIENTSTATEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_ONTBTCLIENTSTATEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/OnTBTClientState.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct OnTBTClientStateMarshaller
- {
- static bool checkIntegrity(OnTBTClientState& e);
- static bool checkIntegrityConst(const OnTBTClientState& e);
-
- static bool fromString(const std::string& s,OnTBTClientState& e);
- static const std::string toString(const OnTBTClientState& e);
-
- static bool fromJSON(const Json::Value& s,OnTBTClientState& e);
- static Json::Value toJSON(const OnTBTClientState& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThru.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThru.cpp
deleted file mode 100644
index 8365563d3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThru.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThru.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-PerformAudioPassThru& PerformAudioPassThru::operator =(const PerformAudioPassThru& c)
-{
- initialPrompt=c.initialPrompt;
- if(audioPassThruDisplayText1) delete audioPassThruDisplayText1;
- audioPassThruDisplayText1= c.audioPassThruDisplayText1 ? new std::string(c.audioPassThruDisplayText1[0]) : 0;
- if(audioPassThruDisplayText2) delete audioPassThruDisplayText2;
- audioPassThruDisplayText2= c.audioPassThruDisplayText2 ? new std::string(c.audioPassThruDisplayText2[0]) : 0;
- samplingRate=c.samplingRate;
- maxDuration=c.maxDuration;
- bitsPerSample=c.bitsPerSample;
- audioType=c.audioType;
- appId=c.appId;
- return *this;
-}
-
-
-PerformAudioPassThru::~PerformAudioPassThru(void)
-{
- if(audioPassThruDisplayText1) delete audioPassThruDisplayText1;
- if(audioPassThruDisplayText2) delete audioPassThruDisplayText2;
-}
-
-
-PerformAudioPassThru::PerformAudioPassThru(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__PERFORMAUDIOPASSTHRU),
- audioPassThruDisplayText1(0),
- audioPassThruDisplayText2(0)
-{
-}
-
-
-PerformAudioPassThru::PerformAudioPassThru(const PerformAudioPassThru& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__PERFORMAUDIOPASSTHRU,c.getId())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& PerformAudioPassThru::get_initialPrompt(void)
-{
- return initialPrompt;
-}
-
-bool PerformAudioPassThru::set_initialPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& initialPrompt_)
-{
- initialPrompt=initialPrompt_;
- return true;
-}
-
-const std::string* PerformAudioPassThru::get_audioPassThruDisplayText1(void)
-{
- return audioPassThruDisplayText1;
-}
-
-bool PerformAudioPassThru::set_audioPassThruDisplayText1(const std::string& audioPassThruDisplayText1_)
-{
- if(audioPassThruDisplayText1) delete audioPassThruDisplayText1;
- audioPassThruDisplayText1=new std::string(audioPassThruDisplayText1_);
- return true;
-}
-
-void PerformAudioPassThru::reset_audioPassThruDisplayText1(void)
-{
- if(audioPassThruDisplayText1) delete audioPassThruDisplayText1;
- audioPassThruDisplayText1=0;
-}
-
-const std::string* PerformAudioPassThru::get_audioPassThruDisplayText2(void)
-{
- return audioPassThruDisplayText2;
-}
-
-bool PerformAudioPassThru::set_audioPassThruDisplayText2(const std::string& audioPassThruDisplayText2_)
-{
- if(audioPassThruDisplayText2) delete audioPassThruDisplayText2;
- audioPassThruDisplayText2=new std::string(audioPassThruDisplayText2_);
- return true;
-}
-
-void PerformAudioPassThru::reset_audioPassThruDisplayText2(void)
-{
- if(audioPassThruDisplayText2) delete audioPassThruDisplayText2;
- audioPassThruDisplayText2=0;
-}
-
-const NsSmartDeviceLinkRPCV2::SamplingRate& PerformAudioPassThru::get_samplingRate(void)
-{
- return samplingRate;
-}
-
-bool PerformAudioPassThru::set_samplingRate(const NsSmartDeviceLinkRPCV2::SamplingRate& samplingRate_)
-{
- samplingRate=samplingRate_;
- return true;
-}
-
-unsigned int PerformAudioPassThru::get_maxDuration(void)
-{
- return maxDuration;
-}
-
-bool PerformAudioPassThru::set_maxDuration(unsigned int maxDuration_)
-{
- maxDuration=maxDuration_;
- return true;
-}
-
-const NsSmartDeviceLinkRPCV2::AudioCaptureQuality& PerformAudioPassThru::get_bitsPerSample(void)
-{
- return bitsPerSample;
-}
-
-bool PerformAudioPassThru::set_bitsPerSample(const NsSmartDeviceLinkRPCV2::AudioCaptureQuality& bitsPerSample_)
-{
- bitsPerSample=bitsPerSample_;
- return true;
-}
-
-const NsSmartDeviceLinkRPCV2::AudioType& PerformAudioPassThru::get_audioType(void)
-{
- return audioType;
-}
-
-bool PerformAudioPassThru::set_audioType(const NsSmartDeviceLinkRPCV2::AudioType& audioType_)
-{
- audioType=audioType_;
- return true;
-}
-
-int PerformAudioPassThru::get_appId(void)
-{
- return appId;
-}
-
-bool PerformAudioPassThru::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool PerformAudioPassThru::checkIntegrity(void)
-{
- return PerformAudioPassThruMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruMarshaller.cpp
deleted file mode 100644
index bda449899..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruMarshaller.cpp
+++ /dev/null
@@ -1,208 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThru.h"
-#include "../src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/PerformAudioPassThruMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool PerformAudioPassThruMarshaller::checkIntegrity(PerformAudioPassThru& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PerformAudioPassThruMarshaller::fromString(const std::string& s,PerformAudioPassThru& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PerformAudioPassThruMarshaller::toString(const PerformAudioPassThru& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PerformAudioPassThruMarshaller::checkIntegrityConst(const PerformAudioPassThru& s)
-{
- {
- unsigned int i=s.initialPrompt.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- if(s.audioPassThruDisplayText1 && (s.audioPassThruDisplayText1[0].length()>500)) return false;
-
- if(s.audioPassThruDisplayText2 && (s.audioPassThruDisplayText2[0].length()>500)) return false;
-
- if(!NsSmartDeviceLinkRPCV2::SamplingRateMarshaller::checkIntegrityConst(s.samplingRate)) return false;
-
- if(s.maxDuration>1000000) return false;
-
- if(!NsSmartDeviceLinkRPCV2::AudioCaptureQualityMarshaller::checkIntegrityConst(s.bitsPerSample)) return false;
-
- if(!NsSmartDeviceLinkRPCV2::AudioTypeMarshaller::checkIntegrityConst(s.audioType)) return false;
-
- return true;
-}
-
-
-Json::Value PerformAudioPassThruMarshaller::toJSON(const PerformAudioPassThru& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.PerformAudioPassThru");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- {
- unsigned int i=e.initialPrompt.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::toJSON(e.initialPrompt[i]);
-
- json["params"]["initialPrompt"]=j;
- }
- if(e.audioPassThruDisplayText1)
- json["params"]["audioPassThruDisplayText1"]=Json::Value(e.audioPassThruDisplayText1[0]);;
- if(e.audioPassThruDisplayText2)
- json["params"]["audioPassThruDisplayText2"]=Json::Value(e.audioPassThruDisplayText2[0]);;
- json["params"]["samplingRate"]=NsSmartDeviceLinkRPCV2::SamplingRateMarshaller::toJSON(e.samplingRate);;
- json["params"]["maxDuration"]=Json::Value(e.maxDuration);;
- json["params"]["bitsPerSample"]=NsSmartDeviceLinkRPCV2::AudioCaptureQualityMarshaller::toJSON(e.bitsPerSample);;
- json["params"]["audioType"]=NsSmartDeviceLinkRPCV2::AudioTypeMarshaller::toJSON(e.audioType);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool PerformAudioPassThruMarshaller::fromJSON(const Json::Value& json,PerformAudioPassThru& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.PerformAudioPassThru")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("initialPrompt") || !js["initialPrompt"].isArray()) return false;
- {
- unsigned int i=js["initialPrompt"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.initialPrompt.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::TTSChunk t;
- if(!NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::fromJSON(js["initialPrompt"][i],t))
- return false;
- c.initialPrompt[i]=t;
- }
- }
-
- if(c.audioPassThruDisplayText1) delete c.audioPassThruDisplayText1;
- c.audioPassThruDisplayText1=0;
- if(js.isMember("audioPassThruDisplayText1"))
- {
- if(!js["audioPassThruDisplayText1"].isString()) return false;
- c.audioPassThruDisplayText1=new std::string();
- c.audioPassThruDisplayText1[0]=js["audioPassThruDisplayText1"].asString();
- if(c.audioPassThruDisplayText1[0].length()>500) return false;
-
- }
-
- if(c.audioPassThruDisplayText2) delete c.audioPassThruDisplayText2;
- c.audioPassThruDisplayText2=0;
- if(js.isMember("audioPassThruDisplayText2"))
- {
- if(!js["audioPassThruDisplayText2"].isString()) return false;
- c.audioPassThruDisplayText2=new std::string();
- c.audioPassThruDisplayText2[0]=js["audioPassThruDisplayText2"].asString();
- if(c.audioPassThruDisplayText2[0].length()>500) return false;
-
- }
-
- if(!js.isMember("samplingRate") || !NsSmartDeviceLinkRPCV2::SamplingRateMarshaller::fromJSON(js["samplingRate"],c.samplingRate)) return false;
-
- if(!js.isMember("maxDuration") || !js["maxDuration"].isInt()) return false;
- c.maxDuration=js["maxDuration"].asInt();
- if(c.maxDuration>1000000) return false;
-
- if(!js.isMember("bitsPerSample") || !NsSmartDeviceLinkRPCV2::AudioCaptureQualityMarshaller::fromJSON(js["bitsPerSample"],c.bitsPerSample)) return false;
-
- if(!js.isMember("audioType") || !NsSmartDeviceLinkRPCV2::AudioTypeMarshaller::fromJSON(js["audioType"],c.audioType)) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruMarshaller.h
deleted file mode 100644
index 76b662ff5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_PERFORMAUDIOPASSTHRUMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_PERFORMAUDIOPASSTHRUMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThru.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct PerformAudioPassThruMarshaller
- {
- static bool checkIntegrity(PerformAudioPassThru& e);
- static bool checkIntegrityConst(const PerformAudioPassThru& e);
-
- static bool fromString(const std::string& s,PerformAudioPassThru& e);
- static const std::string toString(const PerformAudioPassThru& e);
-
- static bool fromJSON(const Json::Value& s,PerformAudioPassThru& e);
- static Json::Value toJSON(const PerformAudioPassThru& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponse.cpp
deleted file mode 100644
index a622237d9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThruResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-PerformAudioPassThruResponse& PerformAudioPassThruResponse::operator =(const PerformAudioPassThruResponse& c)
-{
- return *this;
-}
-
-
-PerformAudioPassThruResponse::~PerformAudioPassThruResponse(void)
-{
-}
-
-
-PerformAudioPassThruResponse::PerformAudioPassThruResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__PERFORMAUDIOPASSTHRURESPONSE)
-{
-}
-
-
-PerformAudioPassThruResponse::PerformAudioPassThruResponse(const PerformAudioPassThruResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__PERFORMAUDIOPASSTHRURESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool PerformAudioPassThruResponse::checkIntegrity(void)
-{
- return PerformAudioPassThruResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponseMarshaller.cpp
deleted file mode 100644
index fef6ca726..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThruResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/PerformAudioPassThruResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool PerformAudioPassThruResponseMarshaller::checkIntegrity(PerformAudioPassThruResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PerformAudioPassThruResponseMarshaller::fromString(const std::string& s,PerformAudioPassThruResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PerformAudioPassThruResponseMarshaller::toString(const PerformAudioPassThruResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PerformAudioPassThruResponseMarshaller::checkIntegrityConst(const PerformAudioPassThruResponse& s)
-{
- return true;
-}
-
-
-Json::Value PerformAudioPassThruResponseMarshaller::toJSON(const PerformAudioPassThruResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.PerformAudioPassThruResponse");
-
- return json;
-}
-
-
-bool PerformAudioPassThruResponseMarshaller::fromJSON(const Json::Value& json,PerformAudioPassThruResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.PerformAudioPassThruResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponseMarshaller.h
deleted file mode 100644
index 45127eadb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformAudioPassThruResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_PERFORMAUDIOPASSTHRURESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_PERFORMAUDIOPASSTHRURESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformAudioPassThruResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct PerformAudioPassThruResponseMarshaller
- {
- static bool checkIntegrity(PerformAudioPassThruResponse& e);
- static bool checkIntegrityConst(const PerformAudioPassThruResponse& e);
-
- static bool fromString(const std::string& s,PerformAudioPassThruResponse& e);
- static const std::string toString(const PerformAudioPassThruResponse& e);
-
- static bool fromJSON(const Json::Value& s,PerformAudioPassThruResponse& e);
- static Json::Value toJSON(const PerformAudioPassThruResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteraction.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteraction.cpp
deleted file mode 100644
index afd958da5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteraction.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteraction.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-PerformInteraction& PerformInteraction::operator =(const PerformInteraction& c)
-{
- initialText=c.initialText;
- initialPrompt=c.initialPrompt;
- interactionMode=c.interactionMode;
- interactionChoiceSetIDList=c.interactionChoiceSetIDList;
- if(helpPrompt) delete helpPrompt;
- helpPrompt= c.helpPrompt ? new std::vector<NsSmartDeviceLinkRPCV2::TTSChunk>(c.helpPrompt[0]) : 0;
- if(timeoutPrompt) delete timeoutPrompt;
- timeoutPrompt= c.timeoutPrompt ? new std::vector<NsSmartDeviceLinkRPCV2::TTSChunk>(c.timeoutPrompt[0]) : 0;
- if(timeout) delete timeout;
- timeout= c.timeout ? new unsigned int(c.timeout[0]) : 0;
- if(vrHelp) delete vrHelp;
- vrHelp= c.vrHelp ? new std::vector<NsSmartDeviceLinkRPCV2::VrHelpItem>(c.vrHelp[0]) : 0;
- appId=c.appId;
- return *this;
-}
-
-
-PerformInteraction::~PerformInteraction(void)
-{
- if(helpPrompt) delete helpPrompt;
- if(timeoutPrompt) delete timeoutPrompt;
- if(timeout) delete timeout;
- if(vrHelp) delete vrHelp;
-}
-
-
-PerformInteraction::PerformInteraction(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__PERFORMINTERACTION),
- helpPrompt(0),
- timeoutPrompt(0),
- timeout(0),
- vrHelp(0)
-{
-}
-
-
-PerformInteraction::PerformInteraction(const PerformInteraction& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__PERFORMINTERACTION,c.getId())
-{
- *this=c;
-}
-
-
-const std::string& PerformInteraction::get_initialText(void)
-{
- return initialText;
-}
-
-bool PerformInteraction::set_initialText(const std::string& initialText_)
-{
- initialText=initialText_;
- return true;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& PerformInteraction::get_initialPrompt(void)
-{
- return initialPrompt;
-}
-
-bool PerformInteraction::set_initialPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& initialPrompt_)
-{
- initialPrompt=initialPrompt_;
- return true;
-}
-
-const NsSmartDeviceLinkRPCV2::InteractionMode& PerformInteraction::get_interactionMode(void)
-{
- return interactionMode;
-}
-
-bool PerformInteraction::set_interactionMode(const NsSmartDeviceLinkRPCV2::InteractionMode& interactionMode_)
-{
- interactionMode=interactionMode_;
- return true;
-}
-
-const std::vector< unsigned int>& PerformInteraction::get_interactionChoiceSetIDList(void)
-{
- return interactionChoiceSetIDList;
-}
-
-bool PerformInteraction::set_interactionChoiceSetIDList(const std::vector< unsigned int>& interactionChoiceSetIDList_)
-{
- interactionChoiceSetIDList=interactionChoiceSetIDList_;
- return true;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* PerformInteraction::get_helpPrompt(void)
-{
- return helpPrompt;
-}
-
-bool PerformInteraction::set_helpPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& helpPrompt_)
-{
- if(helpPrompt) delete helpPrompt;
- helpPrompt=new std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>(helpPrompt_);
- return true;
-}
-
-void PerformInteraction::reset_helpPrompt(void)
-{
- if(helpPrompt) delete helpPrompt;
- helpPrompt=0;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* PerformInteraction::get_timeoutPrompt(void)
-{
- return timeoutPrompt;
-}
-
-bool PerformInteraction::set_timeoutPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& timeoutPrompt_)
-{
- if(timeoutPrompt) delete timeoutPrompt;
- timeoutPrompt=new std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>(timeoutPrompt_);
- return true;
-}
-
-void PerformInteraction::reset_timeoutPrompt(void)
-{
- if(timeoutPrompt) delete timeoutPrompt;
- timeoutPrompt=0;
-}
-
-const unsigned int* PerformInteraction::get_timeout(void)
-{
- return timeout;
-}
-
-bool PerformInteraction::set_timeout(const unsigned int& timeout_)
-{
- if(timeout) delete timeout;
- timeout=new unsigned int(timeout_);
- return true;
-}
-
-void PerformInteraction::reset_timeout(void)
-{
- if(timeout) delete timeout;
- timeout=0;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>* PerformInteraction::get_vrHelp(void)
-{
- return vrHelp;
-}
-
-bool PerformInteraction::set_vrHelp(const std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>& vrHelp_)
-{
- if(vrHelp) delete vrHelp;
- vrHelp=new std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>(vrHelp_);
- return true;
-}
-
-void PerformInteraction::reset_vrHelp(void)
-{
- if(vrHelp) delete vrHelp;
- vrHelp=0;
-}
-
-int PerformInteraction::get_appId(void)
-{
- return appId;
-}
-
-bool PerformInteraction::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool PerformInteraction::checkIntegrity(void)
-{
- return PerformInteractionMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionMarshaller.cpp
deleted file mode 100644
index 52b49e374..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionMarshaller.cpp
+++ /dev/null
@@ -1,324 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteraction.h"
-#include "../src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/VrHelpItemMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/PerformInteractionMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool PerformInteractionMarshaller::checkIntegrity(PerformInteraction& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PerformInteractionMarshaller::fromString(const std::string& s,PerformInteraction& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PerformInteractionMarshaller::toString(const PerformInteraction& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PerformInteractionMarshaller::checkIntegrityConst(const PerformInteraction& s)
-{
- if(s.initialText.length()>500) return false;
-
- {
- unsigned int i=s.initialPrompt.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- if(!NsSmartDeviceLinkRPCV2::InteractionModeMarshaller::checkIntegrityConst(s.interactionMode)) return false;
-
- {
- unsigned int i=s.interactionChoiceSetIDList.size();
- if(i<1) return false;
- if(i>100) return false;
- while(i--)
- {
- if(s.interactionChoiceSetIDList[i]>2000000000) return false;
- }
- }
-
- if(s.helpPrompt)
- {
- unsigned int i=s.helpPrompt[0].size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- if(s.timeoutPrompt)
- {
- unsigned int i=s.timeoutPrompt[0].size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- if(s.timeout && (s.timeout[0]<5000 || s.timeout[0]>100000)) return false;
-
- if(s.vrHelp)
- {
- unsigned int i=s.vrHelp[0].size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value PerformInteractionMarshaller::toJSON(const PerformInteraction& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.PerformInteraction");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["initialText"]=Json::Value(e.initialText);;
- {
- unsigned int i=e.initialPrompt.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::toJSON(e.initialPrompt[i]);
-
- json["params"]["initialPrompt"]=j;
- }
- json["params"]["interactionMode"]=NsSmartDeviceLinkRPCV2::InteractionModeMarshaller::toJSON(e.interactionMode);;
- {
- unsigned int i=e.interactionChoiceSetIDList.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=Json::Value(e.interactionChoiceSetIDList[i]);
-
- json["params"]["interactionChoiceSetIDList"]=j;
- }
- if(e.helpPrompt)
- {
- unsigned int i=e.helpPrompt[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::toJSON(e.helpPrompt[0][i]);
-
- json["params"]["helpPrompt"]=j;
- }
- if(e.timeoutPrompt)
- {
- unsigned int i=e.timeoutPrompt[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::toJSON(e.timeoutPrompt[0][i]);
-
- json["params"]["timeoutPrompt"]=j;
- }
- if(e.timeout)
- json["params"]["timeout"]=Json::Value(e.timeout[0]);;
- if(e.vrHelp)
- {
- unsigned int i=e.vrHelp[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::VrHelpItemMarshaller::toJSON(e.vrHelp[0][i]);
-
- json["params"]["vrHelp"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool PerformInteractionMarshaller::fromJSON(const Json::Value& json,PerformInteraction& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.PerformInteraction")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("initialText") || !js["initialText"].isString()) return false;
- c.initialText=js["initialText"].asString();
- if(c.initialText.length()>500) return false;
-
- if(!js.isMember("initialPrompt") || !js["initialPrompt"].isArray()) return false;
- {
- unsigned int i=js["initialPrompt"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.initialPrompt.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::TTSChunk t;
- if(!NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::fromJSON(js["initialPrompt"][i],t))
- return false;
- c.initialPrompt[i]=t;
- }
- }
-
- if(!js.isMember("interactionMode") || !NsSmartDeviceLinkRPCV2::InteractionModeMarshaller::fromJSON(js["interactionMode"],c.interactionMode)) return false;
-
- if(!js.isMember("interactionChoiceSetIDList") || !js["interactionChoiceSetIDList"].isArray())
- return false;
- {
- c.interactionChoiceSetIDList.clear();
- unsigned int i=js["interactionChoiceSetIDList"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.interactionChoiceSetIDList.resize(i);
- while(i--)
- {
- if(!js["interactionChoiceSetIDList"][i].isInt())
- return false;
- c.interactionChoiceSetIDList[i]=js["interactionChoiceSetIDList"][i].asInt();
- if(c.interactionChoiceSetIDList[i]>2000000000) return false;
-
- }
- }
-
-
- if(c.helpPrompt) delete c.helpPrompt;
- c.helpPrompt=0;
- if(js.isMember("helpPrompt"))
- {
- if(!js["helpPrompt"].isArray()) return false;
- unsigned int i=js["helpPrompt"].size();
- if(i<1) return false;
- if(i>100) return false;
-
- c.helpPrompt=new std::vector<NsSmartDeviceLinkRPCV2::TTSChunk>();
- c.helpPrompt->resize(js["helpPrompt"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::fromJSON(js["helpPrompt"][i],c.helpPrompt[0][i])) return false;
- }
-
-
- if(c.timeoutPrompt) delete c.timeoutPrompt;
- c.timeoutPrompt=0;
- if(js.isMember("timeoutPrompt"))
- {
- if(!js["timeoutPrompt"].isArray()) return false;
- unsigned int i=js["timeoutPrompt"].size();
- if(i<1) return false;
- if(i>100) return false;
-
- c.timeoutPrompt=new std::vector<NsSmartDeviceLinkRPCV2::TTSChunk>();
- c.timeoutPrompt->resize(js["timeoutPrompt"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::fromJSON(js["timeoutPrompt"][i],c.timeoutPrompt[0][i])) return false;
- }
-
-
- if(c.timeout) delete c.timeout;
- c.timeout=0;
- if(js.isMember("timeout"))
- {
- if(!js["timeout"].isInt()) return false;
- c.timeout=new unsigned int();
- c.timeout[0]=js["timeout"].asInt();
- if(c.timeout[0]<5000 || c.timeout[0]>100000) return false;
-
- }
-
- if(c.vrHelp) delete c.vrHelp;
- c.vrHelp=0;
- if(js.isMember("vrHelp"))
- {
- if(!js["vrHelp"].isArray()) return false;
- unsigned int i=js["vrHelp"].size();
- if(i<1) return false;
- if(i>100) return false;
-
- c.vrHelp=new std::vector<NsSmartDeviceLinkRPCV2::VrHelpItem>();
- c.vrHelp->resize(js["vrHelp"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::VrHelpItemMarshaller::fromJSON(js["vrHelp"][i],c.vrHelp[0][i])) return false;
- }
-
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionMarshaller.h
deleted file mode 100644
index 32abde5e3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_PERFORMINTERACTIONMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_PERFORMINTERACTIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteraction.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct PerformInteractionMarshaller
- {
- static bool checkIntegrity(PerformInteraction& e);
- static bool checkIntegrityConst(const PerformInteraction& e);
-
- static bool fromString(const std::string& s,PerformInteraction& e);
- static const std::string toString(const PerformInteraction& e);
-
- static bool fromJSON(const Json::Value& s,PerformInteraction& e);
- static Json::Value toJSON(const PerformInteraction& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponse.cpp
deleted file mode 100644
index b357352ba..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponse.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteractionResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-PerformInteractionResponse& PerformInteractionResponse::operator =(const PerformInteractionResponse& c)
-{
- if(choiceID) delete choiceID;
- choiceID= c.choiceID ? new unsigned int(c.choiceID[0]) : 0;
- if(triggerSource) delete triggerSource;
- triggerSource= c.triggerSource ? new NsSmartDeviceLinkRPCV2::TriggerSource(c.triggerSource[0]) : 0;
- return *this;
-}
-
-
-PerformInteractionResponse::~PerformInteractionResponse(void)
-{
- if(choiceID) delete choiceID;
- if(triggerSource) delete triggerSource;
-}
-
-
-PerformInteractionResponse::PerformInteractionResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__PERFORMINTERACTIONRESPONSE),
- choiceID(0),
- triggerSource(0)
-{
-}
-
-
-PerformInteractionResponse::PerformInteractionResponse(const PerformInteractionResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__PERFORMINTERACTIONRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const unsigned int* PerformInteractionResponse::get_choiceID(void)
-{
- return choiceID;
-}
-
-bool PerformInteractionResponse::set_choiceID(const unsigned int& choiceID_)
-{
- if(choiceID) delete choiceID;
- choiceID=new unsigned int(choiceID_);
- return true;
-}
-
-void PerformInteractionResponse::reset_choiceID(void)
-{
- if(choiceID) delete choiceID;
- choiceID=0;
-}
-
-const NsSmartDeviceLinkRPCV2::TriggerSource* PerformInteractionResponse::get_triggerSource(void)
-{
- return triggerSource;
-}
-
-bool PerformInteractionResponse::set_triggerSource(const NsSmartDeviceLinkRPCV2::TriggerSource& triggerSource_)
-{
- if(triggerSource) delete triggerSource;
- triggerSource=new NsSmartDeviceLinkRPCV2::TriggerSource(triggerSource_);
- return true;
-}
-
-void PerformInteractionResponse::reset_triggerSource(void)
-{
- if(triggerSource) delete triggerSource;
- triggerSource=0;
-}
-
-bool PerformInteractionResponse::checkIntegrity(void)
-{
- return PerformInteractionResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponseMarshaller.cpp
deleted file mode 100644
index 884377fe3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponseMarshaller.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteractionResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/PerformInteractionResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool PerformInteractionResponseMarshaller::checkIntegrity(PerformInteractionResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PerformInteractionResponseMarshaller::fromString(const std::string& s,PerformInteractionResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PerformInteractionResponseMarshaller::toString(const PerformInteractionResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PerformInteractionResponseMarshaller::checkIntegrityConst(const PerformInteractionResponse& s)
-{
- if(s.choiceID && (s.choiceID[0]>2000000000)) return false;
-
- if(s.triggerSource && (!NsSmartDeviceLinkRPCV2::TriggerSourceMarshaller::checkIntegrityConst(s.triggerSource[0]))) return false;
-
- return true;
-}
-
-
-Json::Value PerformInteractionResponseMarshaller::toJSON(const PerformInteractionResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.PerformInteractionResponse");
-
- if(e.choiceID)
- json["result"]["choiceID"]=Json::Value(e.choiceID[0]);;
- if(e.triggerSource)
- json["result"]["triggerSource"]=NsSmartDeviceLinkRPCV2::TriggerSourceMarshaller::toJSON(e.triggerSource[0]);;
- return json;
-}
-
-
-bool PerformInteractionResponseMarshaller::fromJSON(const Json::Value& json,PerformInteractionResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.PerformInteractionResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(c.choiceID) delete c.choiceID;
- c.choiceID=0;
- if(js.isMember("choiceID"))
- {
- if(!js["choiceID"].isInt()) return false;
- c.choiceID=new unsigned int();
- c.choiceID[0]=js["choiceID"].asInt();
- if(c.choiceID[0]>2000000000) return false;
-
- }
-
- if(c.triggerSource) delete c.triggerSource;
- c.triggerSource=0;
- if(js.isMember("triggerSource"))
- {
- c.triggerSource=new NsSmartDeviceLinkRPCV2::TriggerSource();
- if(!NsSmartDeviceLinkRPCV2::TriggerSourceMarshaller::fromJSON(js["triggerSource"],c.triggerSource[0])) return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponseMarshaller.h
deleted file mode 100644
index 19ff0387b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/PerformInteractionResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_PERFORMINTERACTIONRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_PERFORMINTERACTIONRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/PerformInteractionResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct PerformInteractionResponseMarshaller
- {
- static bool checkIntegrity(PerformInteractionResponse& e);
- static bool checkIntegrityConst(const PerformInteractionResponse& e);
-
- static bool fromString(const std::string& s,PerformInteractionResponse& e);
- static const std::string toString(const PerformInteractionResponse& e);
-
- static bool fromJSON(const Json::Value& s,PerformInteractionResponse& e);
- static Json::Value toJSON(const PerformInteractionResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalProperties.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalProperties.cpp
deleted file mode 100644
index 01ee3bf89..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalProperties.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalProperties.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-ResetGlobalProperties& ResetGlobalProperties::operator =(const ResetGlobalProperties& c)
-{
- properties=c.properties;
- appId=c.appId;
- return *this;
-}
-
-
-ResetGlobalProperties::~ResetGlobalProperties(void)
-{
-}
-
-
-ResetGlobalProperties::ResetGlobalProperties(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__RESETGLOBALPROPERTIES)
-{
-}
-
-
-ResetGlobalProperties::ResetGlobalProperties(const ResetGlobalProperties& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__RESETGLOBALPROPERTIES,c.getId())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::GlobalProperty>& ResetGlobalProperties::get_properties(void)
-{
- return properties;
-}
-
-bool ResetGlobalProperties::set_properties(const std::vector< NsSmartDeviceLinkRPCV2::GlobalProperty>& properties_)
-{
- properties=properties_;
- return true;
-}
-
-int ResetGlobalProperties::get_appId(void)
-{
- return appId;
-}
-
-bool ResetGlobalProperties::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool ResetGlobalProperties::checkIntegrity(void)
-{
- return ResetGlobalPropertiesMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesMarshaller.cpp
deleted file mode 100644
index c66462c58..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesMarshaller.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalProperties.h"
-#include "../src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ResetGlobalPropertiesMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool ResetGlobalPropertiesMarshaller::checkIntegrity(ResetGlobalProperties& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ResetGlobalPropertiesMarshaller::fromString(const std::string& s,ResetGlobalProperties& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ResetGlobalPropertiesMarshaller::toString(const ResetGlobalProperties& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ResetGlobalPropertiesMarshaller::checkIntegrityConst(const ResetGlobalProperties& s)
-{
- {
- unsigned int i=s.properties.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value ResetGlobalPropertiesMarshaller::toJSON(const ResetGlobalProperties& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.ResetGlobalProperties");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- {
- unsigned int i=e.properties.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::GlobalPropertyMarshaller::toJSON(e.properties[i]);
-
- json["params"]["properties"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool ResetGlobalPropertiesMarshaller::fromJSON(const Json::Value& json,ResetGlobalProperties& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.ResetGlobalProperties")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("properties") || !js["properties"].isArray()) return false;
- {
- unsigned int i=js["properties"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.properties.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::GlobalProperty t;
- if(!NsSmartDeviceLinkRPCV2::GlobalPropertyMarshaller::fromJSON(js["properties"][i],t))
- return false;
- c.properties[i]=t;
- }
- }
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesMarshaller.h
deleted file mode 100644
index 4f0f41aee..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_RESETGLOBALPROPERTIESMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_RESETGLOBALPROPERTIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalProperties.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct ResetGlobalPropertiesMarshaller
- {
- static bool checkIntegrity(ResetGlobalProperties& e);
- static bool checkIntegrityConst(const ResetGlobalProperties& e);
-
- static bool fromString(const std::string& s,ResetGlobalProperties& e);
- static const std::string toString(const ResetGlobalProperties& e);
-
- static bool fromJSON(const Json::Value& s,ResetGlobalProperties& e);
- static Json::Value toJSON(const ResetGlobalProperties& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.cpp
deleted file mode 100644
index 4321d5c84..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-ResetGlobalPropertiesResponse& ResetGlobalPropertiesResponse::operator =(const ResetGlobalPropertiesResponse& c)
-{
- return *this;
-}
-
-
-ResetGlobalPropertiesResponse::~ResetGlobalPropertiesResponse(void)
-{
-}
-
-
-ResetGlobalPropertiesResponse::ResetGlobalPropertiesResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__RESETGLOBALPROPERTIESRESPONSE)
-{
-}
-
-
-ResetGlobalPropertiesResponse::ResetGlobalPropertiesResponse(const ResetGlobalPropertiesResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__RESETGLOBALPROPERTIESRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool ResetGlobalPropertiesResponse::checkIntegrity(void)
-{
- return ResetGlobalPropertiesResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponseMarshaller.cpp
deleted file mode 100644
index a15c932d1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ResetGlobalPropertiesResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool ResetGlobalPropertiesResponseMarshaller::checkIntegrity(ResetGlobalPropertiesResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ResetGlobalPropertiesResponseMarshaller::fromString(const std::string& s,ResetGlobalPropertiesResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ResetGlobalPropertiesResponseMarshaller::toString(const ResetGlobalPropertiesResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ResetGlobalPropertiesResponseMarshaller::checkIntegrityConst(const ResetGlobalPropertiesResponse& s)
-{
- return true;
-}
-
-
-Json::Value ResetGlobalPropertiesResponseMarshaller::toJSON(const ResetGlobalPropertiesResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.ResetGlobalPropertiesResponse");
-
- return json;
-}
-
-
-bool ResetGlobalPropertiesResponseMarshaller::fromJSON(const Json::Value& json,ResetGlobalPropertiesResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.ResetGlobalPropertiesResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponseMarshaller.h
deleted file mode 100644
index ade01a3ab..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ResetGlobalPropertiesResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_RESETGLOBALPROPERTIESRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_RESETGLOBALPROPERTIESRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ResetGlobalPropertiesResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct ResetGlobalPropertiesResponseMarshaller
- {
- static bool checkIntegrity(ResetGlobalPropertiesResponse& e);
- static bool checkIntegrityConst(const ResetGlobalPropertiesResponse& e);
-
- static bool fromString(const std::string& s,ResetGlobalPropertiesResponse& e);
- static const std::string toString(const ResetGlobalPropertiesResponse& e);
-
- static bool fromJSON(const Json::Value& s,ResetGlobalPropertiesResponse& e);
- static Json::Value toJSON(const ResetGlobalPropertiesResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessage.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessage.cpp
deleted file mode 100644
index 47bffe006..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessage.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessage.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-ScrollableMessage& ScrollableMessage::operator =(const ScrollableMessage& c)
-{
- scrollableMessageBody=c.scrollableMessageBody;
- if(timeout) delete timeout;
- timeout= c.timeout ? new unsigned int(c.timeout[0]) : 0;
- if(softButtons) delete softButtons;
- softButtons= c.softButtons ? new std::vector<NsSmartDeviceLinkRPCV2::SoftButton>(c.softButtons[0]) : 0;
- appId=c.appId;
- return *this;
-}
-
-
-ScrollableMessage::~ScrollableMessage(void)
-{
- if(timeout) delete timeout;
- if(softButtons) delete softButtons;
-}
-
-
-ScrollableMessage::ScrollableMessage(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SCROLLABLEMESSAGE),
- timeout(0),
- softButtons(0)
-{
-}
-
-
-ScrollableMessage::ScrollableMessage(const ScrollableMessage& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SCROLLABLEMESSAGE,c.getId())
-{
- *this=c;
-}
-
-
-const std::string& ScrollableMessage::get_scrollableMessageBody(void)
-{
- return scrollableMessageBody;
-}
-
-bool ScrollableMessage::set_scrollableMessageBody(const std::string& scrollableMessageBody_)
-{
- scrollableMessageBody=scrollableMessageBody_;
- return true;
-}
-
-const unsigned int* ScrollableMessage::get_timeout(void)
-{
- return timeout;
-}
-
-bool ScrollableMessage::set_timeout(const unsigned int& timeout_)
-{
- if(timeout) delete timeout;
- timeout=new unsigned int(timeout_);
- return true;
-}
-
-void ScrollableMessage::reset_timeout(void)
-{
- if(timeout) delete timeout;
- timeout=0;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>* ScrollableMessage::get_softButtons(void)
-{
- return softButtons;
-}
-
-bool ScrollableMessage::set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons_)
-{
- if(softButtons) delete softButtons;
- softButtons=new std::vector< NsSmartDeviceLinkRPCV2::SoftButton>(softButtons_);
- return true;
-}
-
-void ScrollableMessage::reset_softButtons(void)
-{
- if(softButtons) delete softButtons;
- softButtons=0;
-}
-
-int ScrollableMessage::get_appId(void)
-{
- return appId;
-}
-
-bool ScrollableMessage::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool ScrollableMessage::checkIntegrity(void)
-{
- return ScrollableMessageMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageMarshaller.cpp
deleted file mode 100644
index b37f75f2f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageMarshaller.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessage.h"
-#include "../src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ScrollableMessageMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool ScrollableMessageMarshaller::checkIntegrity(ScrollableMessage& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ScrollableMessageMarshaller::fromString(const std::string& s,ScrollableMessage& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ScrollableMessageMarshaller::toString(const ScrollableMessage& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ScrollableMessageMarshaller::checkIntegrityConst(const ScrollableMessage& s)
-{
- if(s.scrollableMessageBody.length()>500) return false;
-
- if(s.timeout && (s.timeout[0]>65535)) return false;
-
- if(s.softButtons)
- {
- unsigned int i=s.softButtons[0].size();
- if(i<0) return false;
- if(i>8) return false;
- }
-
- return true;
-}
-
-
-Json::Value ScrollableMessageMarshaller::toJSON(const ScrollableMessage& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.ScrollableMessage");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["scrollableMessageBody"]=Json::Value(e.scrollableMessageBody);;
- if(e.timeout)
- json["params"]["timeout"]=Json::Value(e.timeout[0]);;
- if(e.softButtons)
- {
- unsigned int i=e.softButtons[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::toJSON(e.softButtons[0][i]);
-
- json["params"]["softButtons"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool ScrollableMessageMarshaller::fromJSON(const Json::Value& json,ScrollableMessage& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.ScrollableMessage")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("scrollableMessageBody") || !js["scrollableMessageBody"].isString()) return false;
- c.scrollableMessageBody=js["scrollableMessageBody"].asString();
- if(c.scrollableMessageBody.length()>500) return false;
-
- if(c.timeout) delete c.timeout;
- c.timeout=0;
- if(js.isMember("timeout"))
- {
- if(!js["timeout"].isInt()) return false;
- c.timeout=new unsigned int();
- c.timeout[0]=js["timeout"].asInt();
- if(c.timeout[0]>65535) return false;
-
- }
-
- if(c.softButtons) delete c.softButtons;
- c.softButtons=0;
- if(js.isMember("softButtons"))
- {
- if(!js["softButtons"].isArray()) return false;
- unsigned int i=js["softButtons"].size();
- if(i<0) return false;
- if(i>8) return false;
-
- c.softButtons=new std::vector<NsSmartDeviceLinkRPCV2::SoftButton>();
- c.softButtons->resize(js["softButtons"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::fromJSON(js["softButtons"][i],c.softButtons[0][i])) return false;
- }
-
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageMarshaller.h
deleted file mode 100644
index 9c5893b6a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SCROLLABLEMESSAGEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SCROLLABLEMESSAGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessage.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct ScrollableMessageMarshaller
- {
- static bool checkIntegrity(ScrollableMessage& e);
- static bool checkIntegrityConst(const ScrollableMessage& e);
-
- static bool fromString(const std::string& s,ScrollableMessage& e);
- static const std::string toString(const ScrollableMessage& e);
-
- static bool fromJSON(const Json::Value& s,ScrollableMessage& e);
- static Json::Value toJSON(const ScrollableMessage& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponse.cpp
deleted file mode 100644
index f624f26c4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-ScrollableMessageResponse& ScrollableMessageResponse::operator =(const ScrollableMessageResponse& c)
-{
- return *this;
-}
-
-
-ScrollableMessageResponse::~ScrollableMessageResponse(void)
-{
-}
-
-
-ScrollableMessageResponse::ScrollableMessageResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SCROLLABLEMESSAGERESPONSE)
-{
-}
-
-
-ScrollableMessageResponse::ScrollableMessageResponse(const ScrollableMessageResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SCROLLABLEMESSAGERESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool ScrollableMessageResponse::checkIntegrity(void)
-{
- return ScrollableMessageResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponseMarshaller.cpp
deleted file mode 100644
index 805c766c5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessageResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ScrollableMessageResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool ScrollableMessageResponseMarshaller::checkIntegrity(ScrollableMessageResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ScrollableMessageResponseMarshaller::fromString(const std::string& s,ScrollableMessageResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ScrollableMessageResponseMarshaller::toString(const ScrollableMessageResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ScrollableMessageResponseMarshaller::checkIntegrityConst(const ScrollableMessageResponse& s)
-{
- return true;
-}
-
-
-Json::Value ScrollableMessageResponseMarshaller::toJSON(const ScrollableMessageResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.ScrollableMessageResponse");
-
- return json;
-}
-
-
-bool ScrollableMessageResponseMarshaller::fromJSON(const Json::Value& json,ScrollableMessageResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.ScrollableMessageResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponseMarshaller.h
deleted file mode 100644
index 8b24f7e9a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ScrollableMessageResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SCROLLABLEMESSAGERESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SCROLLABLEMESSAGERESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ScrollableMessageResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct ScrollableMessageResponseMarshaller
- {
- static bool checkIntegrity(ScrollableMessageResponse& e);
- static bool checkIntegrityConst(const ScrollableMessageResponse& e);
-
- static bool fromString(const std::string& s,ScrollableMessageResponse& e);
- static const std::string toString(const ScrollableMessageResponse& e);
-
- static bool fromJSON(const Json::Value& s,ScrollableMessageResponse& e);
- static Json::Value toJSON(const ScrollableMessageResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIcon.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIcon.cpp
deleted file mode 100644
index 980d22391..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIcon.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIcon.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-SetAppIcon& SetAppIcon::operator =(const SetAppIcon& c)
-{
- syncFileName=c.syncFileName;
- appId=c.appId;
- return *this;
-}
-
-
-SetAppIcon::~SetAppIcon(void)
-{
-}
-
-
-SetAppIcon::SetAppIcon(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETAPPICON)
-{
-}
-
-
-SetAppIcon::SetAppIcon(const SetAppIcon& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETAPPICON,c.getId())
-{
- *this=c;
-}
-
-
-const std::string& SetAppIcon::get_syncFileName(void)
-{
- return syncFileName;
-}
-
-bool SetAppIcon::set_syncFileName(const std::string& syncFileName_)
-{
- syncFileName=syncFileName_;
- return true;
-}
-
-int SetAppIcon::get_appId(void)
-{
- return appId;
-}
-
-bool SetAppIcon::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool SetAppIcon::checkIntegrity(void)
-{
- return SetAppIconMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconMarshaller.cpp
deleted file mode 100644
index 42d468572..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIcon.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetAppIconMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool SetAppIconMarshaller::checkIntegrity(SetAppIcon& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetAppIconMarshaller::fromString(const std::string& s,SetAppIcon& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetAppIconMarshaller::toString(const SetAppIcon& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetAppIconMarshaller::checkIntegrityConst(const SetAppIcon& s)
-{
- if(s.syncFileName.length()>500) return false;
-
- return true;
-}
-
-
-Json::Value SetAppIconMarshaller::toJSON(const SetAppIcon& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.SetAppIcon");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["syncFileName"]=Json::Value(e.syncFileName);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool SetAppIconMarshaller::fromJSON(const Json::Value& json,SetAppIcon& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.SetAppIcon")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("syncFileName") || !js["syncFileName"].isString()) return false;
- c.syncFileName=js["syncFileName"].asString();
- if(c.syncFileName.length()>500) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconMarshaller.h
deleted file mode 100644
index 65f722b11..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETAPPICONMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETAPPICONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIcon.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct SetAppIconMarshaller
- {
- static bool checkIntegrity(SetAppIcon& e);
- static bool checkIntegrityConst(const SetAppIcon& e);
-
- static bool fromString(const std::string& s,SetAppIcon& e);
- static const std::string toString(const SetAppIcon& e);
-
- static bool fromJSON(const Json::Value& s,SetAppIcon& e);
- static Json::Value toJSON(const SetAppIcon& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponse.cpp
deleted file mode 100644
index b0c0297c3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIconResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-SetAppIconResponse& SetAppIconResponse::operator =(const SetAppIconResponse& c)
-{
- return *this;
-}
-
-
-SetAppIconResponse::~SetAppIconResponse(void)
-{
-}
-
-
-SetAppIconResponse::SetAppIconResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETAPPICONRESPONSE)
-{
-}
-
-
-SetAppIconResponse::SetAppIconResponse(const SetAppIconResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETAPPICONRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool SetAppIconResponse::checkIntegrity(void)
-{
- return SetAppIconResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponseMarshaller.cpp
deleted file mode 100644
index fdb121213..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIconResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetAppIconResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool SetAppIconResponseMarshaller::checkIntegrity(SetAppIconResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetAppIconResponseMarshaller::fromString(const std::string& s,SetAppIconResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetAppIconResponseMarshaller::toString(const SetAppIconResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetAppIconResponseMarshaller::checkIntegrityConst(const SetAppIconResponse& s)
-{
- return true;
-}
-
-
-Json::Value SetAppIconResponseMarshaller::toJSON(const SetAppIconResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.SetAppIconResponse");
-
- return json;
-}
-
-
-bool SetAppIconResponseMarshaller::fromJSON(const Json::Value& json,SetAppIconResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.SetAppIconResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponseMarshaller.h
deleted file mode 100644
index e749198f4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetAppIconResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETAPPICONRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETAPPICONRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetAppIconResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct SetAppIconResponseMarshaller
- {
- static bool checkIntegrity(SetAppIconResponse& e);
- static bool checkIntegrityConst(const SetAppIconResponse& e);
-
- static bool fromString(const std::string& s,SetAppIconResponse& e);
- static const std::string toString(const SetAppIconResponse& e);
-
- static bool fromJSON(const Json::Value& s,SetAppIconResponse& e);
- static Json::Value toJSON(const SetAppIconResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayout.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayout.cpp
deleted file mode 100644
index 898414601..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayout.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayout.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-SetDisplayLayout& SetDisplayLayout::operator =(const SetDisplayLayout& c)
-{
- displayLayout=c.displayLayout;
- appId=c.appId;
- return *this;
-}
-
-
-SetDisplayLayout::~SetDisplayLayout(void)
-{
-}
-
-
-SetDisplayLayout::SetDisplayLayout(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETDISPLAYLAYOUT)
-{
-}
-
-
-SetDisplayLayout::SetDisplayLayout(const SetDisplayLayout& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETDISPLAYLAYOUT,c.getId())
-{
- *this=c;
-}
-
-
-const std::string& SetDisplayLayout::get_displayLayout(void)
-{
- return displayLayout;
-}
-
-bool SetDisplayLayout::set_displayLayout(const std::string& displayLayout_)
-{
- displayLayout=displayLayout_;
- return true;
-}
-
-int SetDisplayLayout::get_appId(void)
-{
- return appId;
-}
-
-bool SetDisplayLayout::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool SetDisplayLayout::checkIntegrity(void)
-{
- return SetDisplayLayoutMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutMarshaller.cpp
deleted file mode 100644
index 7a23e0e03..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutMarshaller.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayout.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetDisplayLayoutMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool SetDisplayLayoutMarshaller::checkIntegrity(SetDisplayLayout& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetDisplayLayoutMarshaller::fromString(const std::string& s,SetDisplayLayout& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetDisplayLayoutMarshaller::toString(const SetDisplayLayout& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetDisplayLayoutMarshaller::checkIntegrityConst(const SetDisplayLayout& s)
-{
- return true;
-}
-
-
-Json::Value SetDisplayLayoutMarshaller::toJSON(const SetDisplayLayout& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.SetDisplayLayout");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["displayLayout"]=Json::Value(e.displayLayout);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool SetDisplayLayoutMarshaller::fromJSON(const Json::Value& json,SetDisplayLayout& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.SetDisplayLayout")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("displayLayout") || !js["displayLayout"].isString()) return false;
- c.displayLayout=js["displayLayout"].asString();
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutMarshaller.h
deleted file mode 100644
index 40d879096..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETDISPLAYLAYOUTMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETDISPLAYLAYOUTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayout.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct SetDisplayLayoutMarshaller
- {
- static bool checkIntegrity(SetDisplayLayout& e);
- static bool checkIntegrityConst(const SetDisplayLayout& e);
-
- static bool fromString(const std::string& s,SetDisplayLayout& e);
- static const std::string toString(const SetDisplayLayout& e);
-
- static bool fromJSON(const Json::Value& s,SetDisplayLayout& e);
- static Json::Value toJSON(const SetDisplayLayout& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponse.cpp
deleted file mode 100644
index 79b35a1d2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayoutResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-SetDisplayLayoutResponse& SetDisplayLayoutResponse::operator =(const SetDisplayLayoutResponse& c)
-{
- return *this;
-}
-
-
-SetDisplayLayoutResponse::~SetDisplayLayoutResponse(void)
-{
-}
-
-
-SetDisplayLayoutResponse::SetDisplayLayoutResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETDISPLAYLAYOUTRESPONSE)
-{
-}
-
-
-SetDisplayLayoutResponse::SetDisplayLayoutResponse(const SetDisplayLayoutResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETDISPLAYLAYOUTRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool SetDisplayLayoutResponse::checkIntegrity(void)
-{
- return SetDisplayLayoutResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponseMarshaller.cpp
deleted file mode 100644
index dd52e08f7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayoutResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetDisplayLayoutResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool SetDisplayLayoutResponseMarshaller::checkIntegrity(SetDisplayLayoutResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetDisplayLayoutResponseMarshaller::fromString(const std::string& s,SetDisplayLayoutResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetDisplayLayoutResponseMarshaller::toString(const SetDisplayLayoutResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetDisplayLayoutResponseMarshaller::checkIntegrityConst(const SetDisplayLayoutResponse& s)
-{
- return true;
-}
-
-
-Json::Value SetDisplayLayoutResponseMarshaller::toJSON(const SetDisplayLayoutResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.SetDisplayLayoutResponse");
-
- return json;
-}
-
-
-bool SetDisplayLayoutResponseMarshaller::fromJSON(const Json::Value& json,SetDisplayLayoutResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.SetDisplayLayoutResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponseMarshaller.h
deleted file mode 100644
index 9e8e25a92..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetDisplayLayoutResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETDISPLAYLAYOUTRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETDISPLAYLAYOUTRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetDisplayLayoutResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct SetDisplayLayoutResponseMarshaller
- {
- static bool checkIntegrity(SetDisplayLayoutResponse& e);
- static bool checkIntegrityConst(const SetDisplayLayoutResponse& e);
-
- static bool fromString(const std::string& s,SetDisplayLayoutResponse& e);
- static const std::string toString(const SetDisplayLayoutResponse& e);
-
- static bool fromJSON(const Json::Value& s,SetDisplayLayoutResponse& e);
- static Json::Value toJSON(const SetDisplayLayoutResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalProperties.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalProperties.cpp
deleted file mode 100644
index ed014c13e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalProperties.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalProperties.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-SetGlobalProperties& SetGlobalProperties::operator =(const SetGlobalProperties& c)
-{
- if(helpPrompt) delete helpPrompt;
- helpPrompt= c.helpPrompt ? new std::vector<NsSmartDeviceLinkRPCV2::TTSChunk>(c.helpPrompt[0]) : 0;
- if(timeoutPrompt) delete timeoutPrompt;
- timeoutPrompt= c.timeoutPrompt ? new std::vector<NsSmartDeviceLinkRPCV2::TTSChunk>(c.timeoutPrompt[0]) : 0;
- if(vrHelpTitle) delete vrHelpTitle;
- vrHelpTitle= c.vrHelpTitle ? new std::string(c.vrHelpTitle[0]) : 0;
- if(vrHelp) delete vrHelp;
- vrHelp= c.vrHelp ? new std::vector<NsSmartDeviceLinkRPCV2::VrHelpItem>(c.vrHelp[0]) : 0;
- appId=c.appId;
- return *this;
-}
-
-
-SetGlobalProperties::~SetGlobalProperties(void)
-{
- if(helpPrompt) delete helpPrompt;
- if(timeoutPrompt) delete timeoutPrompt;
- if(vrHelpTitle) delete vrHelpTitle;
- if(vrHelp) delete vrHelp;
-}
-
-
-SetGlobalProperties::SetGlobalProperties(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETGLOBALPROPERTIES),
- helpPrompt(0),
- timeoutPrompt(0),
- vrHelpTitle(0),
- vrHelp(0)
-{
-}
-
-
-SetGlobalProperties::SetGlobalProperties(const SetGlobalProperties& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETGLOBALPROPERTIES,c.getId())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* SetGlobalProperties::get_helpPrompt(void)
-{
- return helpPrompt;
-}
-
-bool SetGlobalProperties::set_helpPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& helpPrompt_)
-{
- if(helpPrompt) delete helpPrompt;
- helpPrompt=new std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>(helpPrompt_);
- return true;
-}
-
-void SetGlobalProperties::reset_helpPrompt(void)
-{
- if(helpPrompt) delete helpPrompt;
- helpPrompt=0;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>* SetGlobalProperties::get_timeoutPrompt(void)
-{
- return timeoutPrompt;
-}
-
-bool SetGlobalProperties::set_timeoutPrompt(const std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>& timeoutPrompt_)
-{
- if(timeoutPrompt) delete timeoutPrompt;
- timeoutPrompt=new std::vector< NsSmartDeviceLinkRPCV2::TTSChunk>(timeoutPrompt_);
- return true;
-}
-
-void SetGlobalProperties::reset_timeoutPrompt(void)
-{
- if(timeoutPrompt) delete timeoutPrompt;
- timeoutPrompt=0;
-}
-
-const std::string* SetGlobalProperties::get_vrHelpTitle(void)
-{
- return vrHelpTitle;
-}
-
-bool SetGlobalProperties::set_vrHelpTitle(const std::string& vrHelpTitle_)
-{
- if(vrHelpTitle) delete vrHelpTitle;
- vrHelpTitle=new std::string(vrHelpTitle_);
- return true;
-}
-
-void SetGlobalProperties::reset_vrHelpTitle(void)
-{
- if(vrHelpTitle) delete vrHelpTitle;
- vrHelpTitle=0;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>* SetGlobalProperties::get_vrHelp(void)
-{
- return vrHelp;
-}
-
-bool SetGlobalProperties::set_vrHelp(const std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>& vrHelp_)
-{
- if(vrHelp) delete vrHelp;
- vrHelp=new std::vector< NsSmartDeviceLinkRPCV2::VrHelpItem>(vrHelp_);
- return true;
-}
-
-void SetGlobalProperties::reset_vrHelp(void)
-{
- if(vrHelp) delete vrHelp;
- vrHelp=0;
-}
-
-int SetGlobalProperties::get_appId(void)
-{
- return appId;
-}
-
-bool SetGlobalProperties::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool SetGlobalProperties::checkIntegrity(void)
-{
- return SetGlobalPropertiesMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesMarshaller.cpp
deleted file mode 100644
index 49e0df40a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesMarshaller.cpp
+++ /dev/null
@@ -1,242 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalProperties.h"
-#include "../src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/VrHelpItemMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetGlobalPropertiesMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool SetGlobalPropertiesMarshaller::checkIntegrity(SetGlobalProperties& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetGlobalPropertiesMarshaller::fromString(const std::string& s,SetGlobalProperties& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetGlobalPropertiesMarshaller::toString(const SetGlobalProperties& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetGlobalPropertiesMarshaller::checkIntegrityConst(const SetGlobalProperties& s)
-{
- if(s.helpPrompt)
- {
- unsigned int i=s.helpPrompt[0].size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- if(s.timeoutPrompt)
- {
- unsigned int i=s.timeoutPrompt[0].size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- if(s.vrHelpTitle && (s.vrHelpTitle[0].length()>500)) return false;
-
- if(s.vrHelp)
- {
- unsigned int i=s.vrHelp[0].size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value SetGlobalPropertiesMarshaller::toJSON(const SetGlobalProperties& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.SetGlobalProperties");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- if(e.helpPrompt)
- {
- unsigned int i=e.helpPrompt[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::toJSON(e.helpPrompt[0][i]);
-
- json["params"]["helpPrompt"]=j;
- }
- if(e.timeoutPrompt)
- {
- unsigned int i=e.timeoutPrompt[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::toJSON(e.timeoutPrompt[0][i]);
-
- json["params"]["timeoutPrompt"]=j;
- }
- if(e.vrHelpTitle)
- json["params"]["vrHelpTitle"]=Json::Value(e.vrHelpTitle[0]);;
- if(e.vrHelp)
- {
- unsigned int i=e.vrHelp[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::VrHelpItemMarshaller::toJSON(e.vrHelp[0][i]);
-
- json["params"]["vrHelp"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool SetGlobalPropertiesMarshaller::fromJSON(const Json::Value& json,SetGlobalProperties& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.SetGlobalProperties")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(c.helpPrompt) delete c.helpPrompt;
- c.helpPrompt=0;
- if(js.isMember("helpPrompt"))
- {
- if(!js["helpPrompt"].isArray()) return false;
- unsigned int i=js["helpPrompt"].size();
- if(i<1) return false;
- if(i>100) return false;
-
- c.helpPrompt=new std::vector<NsSmartDeviceLinkRPCV2::TTSChunk>();
- c.helpPrompt->resize(js["helpPrompt"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::fromJSON(js["helpPrompt"][i],c.helpPrompt[0][i])) return false;
- }
-
-
- if(c.timeoutPrompt) delete c.timeoutPrompt;
- c.timeoutPrompt=0;
- if(js.isMember("timeoutPrompt"))
- {
- if(!js["timeoutPrompt"].isArray()) return false;
- unsigned int i=js["timeoutPrompt"].size();
- if(i<1) return false;
- if(i>100) return false;
-
- c.timeoutPrompt=new std::vector<NsSmartDeviceLinkRPCV2::TTSChunk>();
- c.timeoutPrompt->resize(js["timeoutPrompt"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::TTSChunkMarshaller::fromJSON(js["timeoutPrompt"][i],c.timeoutPrompt[0][i])) return false;
- }
-
-
- if(c.vrHelpTitle) delete c.vrHelpTitle;
- c.vrHelpTitle=0;
- if(js.isMember("vrHelpTitle"))
- {
- if(!js["vrHelpTitle"].isString()) return false;
- c.vrHelpTitle=new std::string();
- c.vrHelpTitle[0]=js["vrHelpTitle"].asString();
- if(c.vrHelpTitle[0].length()>500) return false;
-
- }
-
- if(c.vrHelp) delete c.vrHelp;
- c.vrHelp=0;
- if(js.isMember("vrHelp"))
- {
- if(!js["vrHelp"].isArray()) return false;
- unsigned int i=js["vrHelp"].size();
- if(i<1) return false;
- if(i>100) return false;
-
- c.vrHelp=new std::vector<NsSmartDeviceLinkRPCV2::VrHelpItem>();
- c.vrHelp->resize(js["vrHelp"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::VrHelpItemMarshaller::fromJSON(js["vrHelp"][i],c.vrHelp[0][i])) return false;
- }
-
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesMarshaller.h
deleted file mode 100644
index f61f004ad..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETGLOBALPROPERTIESMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETGLOBALPROPERTIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalProperties.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct SetGlobalPropertiesMarshaller
- {
- static bool checkIntegrity(SetGlobalProperties& e);
- static bool checkIntegrityConst(const SetGlobalProperties& e);
-
- static bool fromString(const std::string& s,SetGlobalProperties& e);
- static const std::string toString(const SetGlobalProperties& e);
-
- static bool fromJSON(const Json::Value& s,SetGlobalProperties& e);
- static Json::Value toJSON(const SetGlobalProperties& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponse.cpp
deleted file mode 100644
index 302d7b667..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalPropertiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-SetGlobalPropertiesResponse& SetGlobalPropertiesResponse::operator =(const SetGlobalPropertiesResponse& c)
-{
- return *this;
-}
-
-
-SetGlobalPropertiesResponse::~SetGlobalPropertiesResponse(void)
-{
-}
-
-
-SetGlobalPropertiesResponse::SetGlobalPropertiesResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETGLOBALPROPERTIESRESPONSE)
-{
-}
-
-
-SetGlobalPropertiesResponse::SetGlobalPropertiesResponse(const SetGlobalPropertiesResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETGLOBALPROPERTIESRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool SetGlobalPropertiesResponse::checkIntegrity(void)
-{
- return SetGlobalPropertiesResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponseMarshaller.cpp
deleted file mode 100644
index 653429e20..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalPropertiesResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetGlobalPropertiesResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool SetGlobalPropertiesResponseMarshaller::checkIntegrity(SetGlobalPropertiesResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetGlobalPropertiesResponseMarshaller::fromString(const std::string& s,SetGlobalPropertiesResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetGlobalPropertiesResponseMarshaller::toString(const SetGlobalPropertiesResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetGlobalPropertiesResponseMarshaller::checkIntegrityConst(const SetGlobalPropertiesResponse& s)
-{
- return true;
-}
-
-
-Json::Value SetGlobalPropertiesResponseMarshaller::toJSON(const SetGlobalPropertiesResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.SetGlobalPropertiesResponse");
-
- return json;
-}
-
-
-bool SetGlobalPropertiesResponseMarshaller::fromJSON(const Json::Value& json,SetGlobalPropertiesResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.SetGlobalPropertiesResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponseMarshaller.h
deleted file mode 100644
index 5c0828dad..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetGlobalPropertiesResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETGLOBALPROPERTIESRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETGLOBALPROPERTIESRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetGlobalPropertiesResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct SetGlobalPropertiesResponseMarshaller
- {
- static bool checkIntegrity(SetGlobalPropertiesResponse& e);
- static bool checkIntegrityConst(const SetGlobalPropertiesResponse& e);
-
- static bool fromString(const std::string& s,SetGlobalPropertiesResponse& e);
- static const std::string toString(const SetGlobalPropertiesResponse& e);
-
- static bool fromJSON(const Json::Value& s,SetGlobalPropertiesResponse& e);
- static Json::Value toJSON(const SetGlobalPropertiesResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimer.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimer.cpp
deleted file mode 100644
index 4c51da9af..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimer.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimer.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-SetMediaClockTimer& SetMediaClockTimer::operator =(const SetMediaClockTimer& c)
-{
- if(startTime) delete startTime;
- startTime= c.startTime ? new NsSmartDeviceLinkRPCV2::StartTime(c.startTime[0]) : 0;
- updateMode=c.updateMode;
- appId=c.appId;
- return *this;
-}
-
-
-SetMediaClockTimer::~SetMediaClockTimer(void)
-{
- if(startTime) delete startTime;
-}
-
-
-SetMediaClockTimer::SetMediaClockTimer(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETMEDIACLOCKTIMER),
- startTime(0)
-{
-}
-
-
-SetMediaClockTimer::SetMediaClockTimer(const SetMediaClockTimer& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETMEDIACLOCKTIMER,c.getId())
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::StartTime* SetMediaClockTimer::get_startTime(void)
-{
- return startTime;
-}
-
-bool SetMediaClockTimer::set_startTime(const NsSmartDeviceLinkRPCV2::StartTime& startTime_)
-{
- if(startTime) delete startTime;
- startTime=new NsSmartDeviceLinkRPCV2::StartTime(startTime_);
- return true;
-}
-
-void SetMediaClockTimer::reset_startTime(void)
-{
- if(startTime) delete startTime;
- startTime=0;
-}
-
-const NsSmartDeviceLinkRPCV2::UpdateMode& SetMediaClockTimer::get_updateMode(void)
-{
- return updateMode;
-}
-
-bool SetMediaClockTimer::set_updateMode(const NsSmartDeviceLinkRPCV2::UpdateMode& updateMode_)
-{
- updateMode=updateMode_;
- return true;
-}
-
-int SetMediaClockTimer::get_appId(void)
-{
- return appId;
-}
-
-bool SetMediaClockTimer::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool SetMediaClockTimer::checkIntegrity(void)
-{
- return SetMediaClockTimerMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerMarshaller.cpp
deleted file mode 100644
index 08c6b4c5d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerMarshaller.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimer.h"
-#include "../src/SDLRPCObjectsImpl/V2/StartTimeMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetMediaClockTimerMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool SetMediaClockTimerMarshaller::checkIntegrity(SetMediaClockTimer& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetMediaClockTimerMarshaller::fromString(const std::string& s,SetMediaClockTimer& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetMediaClockTimerMarshaller::toString(const SetMediaClockTimer& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetMediaClockTimerMarshaller::checkIntegrityConst(const SetMediaClockTimer& s)
-{
- if(s.startTime && (!NsSmartDeviceLinkRPCV2::StartTimeMarshaller::checkIntegrityConst(s.startTime[0]))) return false;
-
- if(!NsSmartDeviceLinkRPCV2::UpdateModeMarshaller::checkIntegrityConst(s.updateMode)) return false;
-
- return true;
-}
-
-
-Json::Value SetMediaClockTimerMarshaller::toJSON(const SetMediaClockTimer& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.SetMediaClockTimer");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- if(e.startTime)
- json["params"]["startTime"]=NsSmartDeviceLinkRPCV2::StartTimeMarshaller::toJSON(e.startTime[0]);;
- json["params"]["updateMode"]=NsSmartDeviceLinkRPCV2::UpdateModeMarshaller::toJSON(e.updateMode);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool SetMediaClockTimerMarshaller::fromJSON(const Json::Value& json,SetMediaClockTimer& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.SetMediaClockTimer")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(c.startTime) delete c.startTime;
- c.startTime=0;
- if(js.isMember("startTime"))
- {
- c.startTime=new NsSmartDeviceLinkRPCV2::StartTime();
- if(!NsSmartDeviceLinkRPCV2::StartTimeMarshaller::fromJSON(js["startTime"],c.startTime[0])) return false;
- }
-
- if(!js.isMember("updateMode") || !NsSmartDeviceLinkRPCV2::UpdateModeMarshaller::fromJSON(js["updateMode"],c.updateMode)) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerMarshaller.h
deleted file mode 100644
index b6efc75da..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETMEDIACLOCKTIMERMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETMEDIACLOCKTIMERMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimer.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct SetMediaClockTimerMarshaller
- {
- static bool checkIntegrity(SetMediaClockTimer& e);
- static bool checkIntegrityConst(const SetMediaClockTimer& e);
-
- static bool fromString(const std::string& s,SetMediaClockTimer& e);
- static const std::string toString(const SetMediaClockTimer& e);
-
- static bool fromJSON(const Json::Value& s,SetMediaClockTimer& e);
- static Json::Value toJSON(const SetMediaClockTimer& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponse.cpp
deleted file mode 100644
index 7f3a4504b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimerResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-SetMediaClockTimerResponse& SetMediaClockTimerResponse::operator =(const SetMediaClockTimerResponse& c)
-{
- return *this;
-}
-
-
-SetMediaClockTimerResponse::~SetMediaClockTimerResponse(void)
-{
-}
-
-
-SetMediaClockTimerResponse::SetMediaClockTimerResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETMEDIACLOCKTIMERRESPONSE)
-{
-}
-
-
-SetMediaClockTimerResponse::SetMediaClockTimerResponse(const SetMediaClockTimerResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SETMEDIACLOCKTIMERRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool SetMediaClockTimerResponse::checkIntegrity(void)
-{
- return SetMediaClockTimerResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponseMarshaller.cpp
deleted file mode 100644
index 9ab8aa7ea..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimerResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SetMediaClockTimerResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool SetMediaClockTimerResponseMarshaller::checkIntegrity(SetMediaClockTimerResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetMediaClockTimerResponseMarshaller::fromString(const std::string& s,SetMediaClockTimerResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetMediaClockTimerResponseMarshaller::toString(const SetMediaClockTimerResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetMediaClockTimerResponseMarshaller::checkIntegrityConst(const SetMediaClockTimerResponse& s)
-{
- return true;
-}
-
-
-Json::Value SetMediaClockTimerResponseMarshaller::toJSON(const SetMediaClockTimerResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.SetMediaClockTimerResponse");
-
- return json;
-}
-
-
-bool SetMediaClockTimerResponseMarshaller::fromJSON(const Json::Value& json,SetMediaClockTimerResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.SetMediaClockTimerResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponseMarshaller.h
deleted file mode 100644
index 16a912e29..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SetMediaClockTimerResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SETMEDIACLOCKTIMERRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SETMEDIACLOCKTIMERRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SetMediaClockTimerResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct SetMediaClockTimerResponseMarshaller
- {
- static bool checkIntegrity(SetMediaClockTimerResponse& e);
- static bool checkIntegrityConst(const SetMediaClockTimerResponse& e);
-
- static bool fromString(const std::string& s,SetMediaClockTimerResponse& e);
- static const std::string toString(const SetMediaClockTimerResponse& e);
-
- static bool fromJSON(const Json::Value& s,SetMediaClockTimerResponse& e);
- static Json::Value toJSON(const SetMediaClockTimerResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Show.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Show.cpp
deleted file mode 100644
index d518a8af5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Show.cpp
+++ /dev/null
@@ -1,327 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Show.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-Show& Show::operator =(const Show& c)
-{
- if(mainField1) delete mainField1;
- mainField1= c.mainField1 ? new std::string(c.mainField1[0]) : 0;
- if(mainField2) delete mainField2;
- mainField2= c.mainField2 ? new std::string(c.mainField2[0]) : 0;
- if(mainField3) delete mainField3;
- mainField3= c.mainField3 ? new std::string(c.mainField3[0]) : 0;
- if(mainField4) delete mainField4;
- mainField4= c.mainField4 ? new std::string(c.mainField4[0]) : 0;
- if(alignment) delete alignment;
- alignment= c.alignment ? new NsSmartDeviceLinkRPCV2::TextAlignment(c.alignment[0]) : 0;
- if(statusBar) delete statusBar;
- statusBar= c.statusBar ? new std::string(c.statusBar[0]) : 0;
- if(mediaClock) delete mediaClock;
- mediaClock= c.mediaClock ? new std::string(c.mediaClock[0]) : 0;
- if(mediaTrack) delete mediaTrack;
- mediaTrack= c.mediaTrack ? new std::string(c.mediaTrack[0]) : 0;
- if(graphic) delete graphic;
- graphic= c.graphic ? new NsSmartDeviceLinkRPCV2::Image(c.graphic[0]) : 0;
- if(softButtons) delete softButtons;
- softButtons= c.softButtons ? new std::vector<NsSmartDeviceLinkRPCV2::SoftButton>(c.softButtons[0]) : 0;
- if(customPresets) delete customPresets;
- customPresets= c.customPresets ? new std::vector<std::string>(c.customPresets[0]) : 0;
- appId=c.appId;
- return *this;
-}
-
-
-Show::~Show(void)
-{
- if(mainField1) delete mainField1;
- if(mainField2) delete mainField2;
- if(mainField3) delete mainField3;
- if(mainField4) delete mainField4;
- if(alignment) delete alignment;
- if(statusBar) delete statusBar;
- if(mediaClock) delete mediaClock;
- if(mediaTrack) delete mediaTrack;
- if(graphic) delete graphic;
- if(softButtons) delete softButtons;
- if(customPresets) delete customPresets;
-}
-
-
-Show::Show(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SHOW),
- mainField1(0),
- mainField2(0),
- mainField3(0),
- mainField4(0),
- alignment(0),
- statusBar(0),
- mediaClock(0),
- mediaTrack(0),
- graphic(0),
- softButtons(0),
- customPresets(0)
-{
-}
-
-
-Show::Show(const Show& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SHOW,c.getId())
-{
- *this=c;
-}
-
-
-const std::string* Show::get_mainField1(void)
-{
- return mainField1;
-}
-
-bool Show::set_mainField1(const std::string& mainField1_)
-{
- if(mainField1) delete mainField1;
- mainField1=new std::string(mainField1_);
- return true;
-}
-
-void Show::reset_mainField1(void)
-{
- if(mainField1) delete mainField1;
- mainField1=0;
-}
-
-const std::string* Show::get_mainField2(void)
-{
- return mainField2;
-}
-
-bool Show::set_mainField2(const std::string& mainField2_)
-{
- if(mainField2) delete mainField2;
- mainField2=new std::string(mainField2_);
- return true;
-}
-
-void Show::reset_mainField2(void)
-{
- if(mainField2) delete mainField2;
- mainField2=0;
-}
-
-const std::string* Show::get_mainField3(void)
-{
- return mainField3;
-}
-
-bool Show::set_mainField3(const std::string& mainField3_)
-{
- if(mainField3) delete mainField3;
- mainField3=new std::string(mainField3_);
- return true;
-}
-
-void Show::reset_mainField3(void)
-{
- if(mainField3) delete mainField3;
- mainField3=0;
-}
-
-const std::string* Show::get_mainField4(void)
-{
- return mainField4;
-}
-
-bool Show::set_mainField4(const std::string& mainField4_)
-{
- if(mainField4) delete mainField4;
- mainField4=new std::string(mainField4_);
- return true;
-}
-
-void Show::reset_mainField4(void)
-{
- if(mainField4) delete mainField4;
- mainField4=0;
-}
-
-const NsSmartDeviceLinkRPCV2::TextAlignment* Show::get_alignment(void)
-{
- return alignment;
-}
-
-bool Show::set_alignment(const NsSmartDeviceLinkRPCV2::TextAlignment& alignment_)
-{
- if(alignment) delete alignment;
- alignment=new NsSmartDeviceLinkRPCV2::TextAlignment(alignment_);
- return true;
-}
-
-void Show::reset_alignment(void)
-{
- if(alignment) delete alignment;
- alignment=0;
-}
-
-const std::string* Show::get_statusBar(void)
-{
- return statusBar;
-}
-
-bool Show::set_statusBar(const std::string& statusBar_)
-{
- if(statusBar) delete statusBar;
- statusBar=new std::string(statusBar_);
- return true;
-}
-
-void Show::reset_statusBar(void)
-{
- if(statusBar) delete statusBar;
- statusBar=0;
-}
-
-const std::string* Show::get_mediaClock(void)
-{
- return mediaClock;
-}
-
-bool Show::set_mediaClock(const std::string& mediaClock_)
-{
- if(mediaClock) delete mediaClock;
- mediaClock=new std::string(mediaClock_);
- return true;
-}
-
-void Show::reset_mediaClock(void)
-{
- if(mediaClock) delete mediaClock;
- mediaClock=0;
-}
-
-const std::string* Show::get_mediaTrack(void)
-{
- return mediaTrack;
-}
-
-bool Show::set_mediaTrack(const std::string& mediaTrack_)
-{
- if(mediaTrack) delete mediaTrack;
- mediaTrack=new std::string(mediaTrack_);
- return true;
-}
-
-void Show::reset_mediaTrack(void)
-{
- if(mediaTrack) delete mediaTrack;
- mediaTrack=0;
-}
-
-const NsSmartDeviceLinkRPCV2::Image* Show::get_graphic(void)
-{
- return graphic;
-}
-
-bool Show::set_graphic(const NsSmartDeviceLinkRPCV2::Image& graphic_)
-{
- if(graphic) delete graphic;
- graphic=new NsSmartDeviceLinkRPCV2::Image(graphic_);
- return true;
-}
-
-void Show::reset_graphic(void)
-{
- if(graphic) delete graphic;
- graphic=0;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>* Show::get_softButtons(void)
-{
- return softButtons;
-}
-
-bool Show::set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons_)
-{
- if(softButtons) delete softButtons;
- softButtons=new std::vector< NsSmartDeviceLinkRPCV2::SoftButton>(softButtons_);
- return true;
-}
-
-void Show::reset_softButtons(void)
-{
- if(softButtons) delete softButtons;
- softButtons=0;
-}
-
-const std::vector< std::string>* Show::get_customPresets(void)
-{
- return customPresets;
-}
-
-bool Show::set_customPresets(const std::vector< std::string>& customPresets_)
-{
- if(customPresets) delete customPresets;
- customPresets=new std::vector< std::string>(customPresets_);
- return true;
-}
-
-void Show::reset_customPresets(void)
-{
- if(customPresets) delete customPresets;
- customPresets=0;
-}
-
-int Show::get_appId(void)
-{
- return appId;
-}
-
-bool Show::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool Show::checkIntegrity(void)
-{
- return ShowMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBT.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBT.cpp
deleted file mode 100644
index 255f1e16d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBT.cpp
+++ /dev/null
@@ -1,243 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBT.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-ShowConstantTBT& ShowConstantTBT::operator =(const ShowConstantTBT& c)
-{
- if(navigationText1) delete navigationText1;
- navigationText1= c.navigationText1 ? new std::string(c.navigationText1[0]) : 0;
- if(navigationText2) delete navigationText2;
- navigationText2= c.navigationText2 ? new std::string(c.navigationText2[0]) : 0;
- if(eta) delete eta;
- eta= c.eta ? new std::string(c.eta[0]) : 0;
- if(totalDistance) delete totalDistance;
- totalDistance= c.totalDistance ? new std::string(c.totalDistance[0]) : 0;
- turnIcon=c.turnIcon;
- distanceToManeuver=c.distanceToManeuver;
- distanceToManeuverScale=c.distanceToManeuverScale;
- if(maneuverComplete) delete maneuverComplete;
- maneuverComplete= c.maneuverComplete ? new bool(c.maneuverComplete[0]) : 0;
- softButtons=c.softButtons;
- appId=c.appId;
- return *this;
-}
-
-
-ShowConstantTBT::~ShowConstantTBT(void)
-{
- if(navigationText1) delete navigationText1;
- if(navigationText2) delete navigationText2;
- if(eta) delete eta;
- if(totalDistance) delete totalDistance;
- if(maneuverComplete) delete maneuverComplete;
-}
-
-
-ShowConstantTBT::ShowConstantTBT(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SHOWCONSTANTTBT),
- navigationText1(0),
- navigationText2(0),
- eta(0),
- totalDistance(0),
- maneuverComplete(0)
-{
-}
-
-
-ShowConstantTBT::ShowConstantTBT(const ShowConstantTBT& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SHOWCONSTANTTBT,c.getId())
-{
- *this=c;
-}
-
-
-const std::string* ShowConstantTBT::get_navigationText1(void)
-{
- return navigationText1;
-}
-
-bool ShowConstantTBT::set_navigationText1(const std::string& navigationText1_)
-{
- if(navigationText1) delete navigationText1;
- navigationText1=new std::string(navigationText1_);
- return true;
-}
-
-void ShowConstantTBT::reset_navigationText1(void)
-{
- if(navigationText1) delete navigationText1;
- navigationText1=0;
-}
-
-const std::string* ShowConstantTBT::get_navigationText2(void)
-{
- return navigationText2;
-}
-
-bool ShowConstantTBT::set_navigationText2(const std::string& navigationText2_)
-{
- if(navigationText2) delete navigationText2;
- navigationText2=new std::string(navigationText2_);
- return true;
-}
-
-void ShowConstantTBT::reset_navigationText2(void)
-{
- if(navigationText2) delete navigationText2;
- navigationText2=0;
-}
-
-const std::string* ShowConstantTBT::get_eta(void)
-{
- return eta;
-}
-
-bool ShowConstantTBT::set_eta(const std::string& eta_)
-{
- if(eta) delete eta;
- eta=new std::string(eta_);
- return true;
-}
-
-void ShowConstantTBT::reset_eta(void)
-{
- if(eta) delete eta;
- eta=0;
-}
-
-const std::string* ShowConstantTBT::get_totalDistance(void)
-{
- return totalDistance;
-}
-
-bool ShowConstantTBT::set_totalDistance(const std::string& totalDistance_)
-{
- if(totalDistance) delete totalDistance;
- totalDistance=new std::string(totalDistance_);
- return true;
-}
-
-void ShowConstantTBT::reset_totalDistance(void)
-{
- if(totalDistance) delete totalDistance;
- totalDistance=0;
-}
-
-const NsSmartDeviceLinkRPCV2::Image& ShowConstantTBT::get_turnIcon(void)
-{
- return turnIcon;
-}
-
-bool ShowConstantTBT::set_turnIcon(const NsSmartDeviceLinkRPCV2::Image& turnIcon_)
-{
- turnIcon=turnIcon_;
- return true;
-}
-
-float ShowConstantTBT::get_distanceToManeuver(void)
-{
- return distanceToManeuver;
-}
-
-bool ShowConstantTBT::set_distanceToManeuver(float distanceToManeuver_)
-{
- distanceToManeuver=distanceToManeuver_;
- return true;
-}
-
-float ShowConstantTBT::get_distanceToManeuverScale(void)
-{
- return distanceToManeuverScale;
-}
-
-bool ShowConstantTBT::set_distanceToManeuverScale(float distanceToManeuverScale_)
-{
- distanceToManeuverScale=distanceToManeuverScale_;
- return true;
-}
-
-const bool* ShowConstantTBT::get_maneuverComplete(void)
-{
- return maneuverComplete;
-}
-
-bool ShowConstantTBT::set_maneuverComplete(const bool& maneuverComplete_)
-{
- if(maneuverComplete) delete maneuverComplete;
- maneuverComplete=new bool(maneuverComplete_);
- return true;
-}
-
-void ShowConstantTBT::reset_maneuverComplete(void)
-{
- if(maneuverComplete) delete maneuverComplete;
- maneuverComplete=0;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& ShowConstantTBT::get_softButtons(void)
-{
- return softButtons;
-}
-
-bool ShowConstantTBT::set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons_)
-{
- softButtons=softButtons_;
- return true;
-}
-
-int ShowConstantTBT::get_appId(void)
-{
- return appId;
-}
-
-bool ShowConstantTBT::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool ShowConstantTBT::checkIntegrity(void)
-{
- return ShowConstantTBTMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTMarshaller.cpp
deleted file mode 100644
index f4e509c08..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTMarshaller.cpp
+++ /dev/null
@@ -1,245 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBT.h"
-#include "../src/SDLRPCObjectsImpl/V2/ImageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ShowConstantTBTMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool ShowConstantTBTMarshaller::checkIntegrity(ShowConstantTBT& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ShowConstantTBTMarshaller::fromString(const std::string& s,ShowConstantTBT& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ShowConstantTBTMarshaller::toString(const ShowConstantTBT& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ShowConstantTBTMarshaller::checkIntegrityConst(const ShowConstantTBT& s)
-{
- if(s.navigationText1 && (s.navigationText1[0].length()>500)) return false;
-
- if(s.navigationText2 && (s.navigationText2[0].length()>500)) return false;
-
- if(s.eta && (s.eta[0].length()>500)) return false;
-
- if(s.totalDistance && (s.totalDistance[0].length()>500)) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ImageMarshaller::checkIntegrityConst(s.turnIcon)) return false;
-
- if(s.distanceToManeuver<0 || s.distanceToManeuver>1000000000) return false;
-
- if(s.distanceToManeuverScale<0 || s.distanceToManeuverScale>1000000000) return false;
-
- {
- unsigned int i=s.softButtons.size();
- if(i<0) return false;
- if(i>3) return false;
- }
-
- return true;
-}
-
-
-Json::Value ShowConstantTBTMarshaller::toJSON(const ShowConstantTBT& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.ShowConstantTBT");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- if(e.navigationText1)
- json["params"]["navigationText1"]=Json::Value(e.navigationText1[0]);;
- if(e.navigationText2)
- json["params"]["navigationText2"]=Json::Value(e.navigationText2[0]);;
- if(e.eta)
- json["params"]["eta"]=Json::Value(e.eta[0]);;
- if(e.totalDistance)
- json["params"]["totalDistance"]=Json::Value(e.totalDistance[0]);;
- json["params"]["turnIcon"]=NsSmartDeviceLinkRPCV2::ImageMarshaller::toJSON(e.turnIcon);;
- json["params"]["distanceToManeuver"]=Json::Value(e.distanceToManeuver);;
- json["params"]["distanceToManeuverScale"]=Json::Value(e.distanceToManeuverScale);;
- if(e.maneuverComplete)
- json["params"]["maneuverComplete"]=Json::Value(e.maneuverComplete[0]);;
- {
- unsigned int i=e.softButtons.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::toJSON(e.softButtons[i]);
-
- json["params"]["softButtons"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool ShowConstantTBTMarshaller::fromJSON(const Json::Value& json,ShowConstantTBT& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.ShowConstantTBT")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(c.navigationText1) delete c.navigationText1;
- c.navigationText1=0;
- if(js.isMember("navigationText1"))
- {
- if(!js["navigationText1"].isString()) return false;
- c.navigationText1=new std::string();
- c.navigationText1[0]=js["navigationText1"].asString();
- if(c.navigationText1[0].length()>500) return false;
-
- }
-
- if(c.navigationText2) delete c.navigationText2;
- c.navigationText2=0;
- if(js.isMember("navigationText2"))
- {
- if(!js["navigationText2"].isString()) return false;
- c.navigationText2=new std::string();
- c.navigationText2[0]=js["navigationText2"].asString();
- if(c.navigationText2[0].length()>500) return false;
-
- }
-
- if(c.eta) delete c.eta;
- c.eta=0;
- if(js.isMember("eta"))
- {
- if(!js["eta"].isString()) return false;
- c.eta=new std::string();
- c.eta[0]=js["eta"].asString();
- if(c.eta[0].length()>500) return false;
-
- }
-
- if(c.totalDistance) delete c.totalDistance;
- c.totalDistance=0;
- if(js.isMember("totalDistance"))
- {
- if(!js["totalDistance"].isString()) return false;
- c.totalDistance=new std::string();
- c.totalDistance[0]=js["totalDistance"].asString();
- if(c.totalDistance[0].length()>500) return false;
-
- }
-
- if(!js.isMember("turnIcon") || !NsSmartDeviceLinkRPCV2::ImageMarshaller::fromJSON(js["turnIcon"],c.turnIcon)) return false;
-
- if(!js.isMember("distanceToManeuver") || !js["distanceToManeuver"].isNumeric()) return false;
- c.distanceToManeuver=js["distanceToManeuver"].asDouble();
- if(c.distanceToManeuver<0 || c.distanceToManeuver>1000000000) return false;
-
- if(!js.isMember("distanceToManeuverScale") || !js["distanceToManeuverScale"].isNumeric()) return false;
- c.distanceToManeuverScale=js["distanceToManeuverScale"].asDouble();
- if(c.distanceToManeuverScale<0 || c.distanceToManeuverScale>1000000000) return false;
-
- if(c.maneuverComplete) delete c.maneuverComplete;
- c.maneuverComplete=0;
- if(js.isMember("maneuverComplete"))
- {
- if(!js["maneuverComplete"].isBool()) return false;
- c.maneuverComplete=new bool();
- c.maneuverComplete[0]=js["maneuverComplete"].asBool();
-
- }
-
- if(!js.isMember("softButtons") || !js["softButtons"].isArray()) return false;
- {
- unsigned int i=js["softButtons"].size();
- if(i<0) return false;
- if(i>3) return false;
- c.softButtons.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::SoftButton t;
- if(!NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::fromJSON(js["softButtons"][i],t))
- return false;
- c.softButtons[i]=t;
- }
- }
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTMarshaller.h
deleted file mode 100644
index dfeef7eef..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SHOWCONSTANTTBTMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SHOWCONSTANTTBTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBT.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct ShowConstantTBTMarshaller
- {
- static bool checkIntegrity(ShowConstantTBT& e);
- static bool checkIntegrityConst(const ShowConstantTBT& e);
-
- static bool fromString(const std::string& s,ShowConstantTBT& e);
- static const std::string toString(const ShowConstantTBT& e);
-
- static bool fromJSON(const Json::Value& s,ShowConstantTBT& e);
- static Json::Value toJSON(const ShowConstantTBT& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponse.cpp
deleted file mode 100644
index 2db452e5d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBTResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-ShowConstantTBTResponse& ShowConstantTBTResponse::operator =(const ShowConstantTBTResponse& c)
-{
- return *this;
-}
-
-
-ShowConstantTBTResponse::~ShowConstantTBTResponse(void)
-{
-}
-
-
-ShowConstantTBTResponse::ShowConstantTBTResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SHOWCONSTANTTBTRESPONSE)
-{
-}
-
-
-ShowConstantTBTResponse::ShowConstantTBTResponse(const ShowConstantTBTResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SHOWCONSTANTTBTRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool ShowConstantTBTResponse::checkIntegrity(void)
-{
- return ShowConstantTBTResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponseMarshaller.cpp
deleted file mode 100644
index e74ea5850..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBTResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ShowConstantTBTResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool ShowConstantTBTResponseMarshaller::checkIntegrity(ShowConstantTBTResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ShowConstantTBTResponseMarshaller::fromString(const std::string& s,ShowConstantTBTResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ShowConstantTBTResponseMarshaller::toString(const ShowConstantTBTResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ShowConstantTBTResponseMarshaller::checkIntegrityConst(const ShowConstantTBTResponse& s)
-{
- return true;
-}
-
-
-Json::Value ShowConstantTBTResponseMarshaller::toJSON(const ShowConstantTBTResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.ShowConstantTBTResponse");
-
- return json;
-}
-
-
-bool ShowConstantTBTResponseMarshaller::fromJSON(const Json::Value& json,ShowConstantTBTResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.ShowConstantTBTResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponseMarshaller.h
deleted file mode 100644
index 9205828d6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowConstantTBTResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SHOWCONSTANTTBTRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SHOWCONSTANTTBTRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowConstantTBTResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct ShowConstantTBTResponseMarshaller
- {
- static bool checkIntegrity(ShowConstantTBTResponse& e);
- static bool checkIntegrityConst(const ShowConstantTBTResponse& e);
-
- static bool fromString(const std::string& s,ShowConstantTBTResponse& e);
- static const std::string toString(const ShowConstantTBTResponse& e);
-
- static bool fromJSON(const Json::Value& s,ShowConstantTBTResponse& e);
- static Json::Value toJSON(const ShowConstantTBTResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowMarshaller.cpp
deleted file mode 100644
index 6b273bcab..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowMarshaller.cpp
+++ /dev/null
@@ -1,332 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Show.h"
-#include "../src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ImageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ShowMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool ShowMarshaller::checkIntegrity(Show& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ShowMarshaller::fromString(const std::string& s,Show& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ShowMarshaller::toString(const Show& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ShowMarshaller::checkIntegrityConst(const Show& s)
-{
- if(s.mainField1 && (s.mainField1[0].length()>500)) return false;
-
- if(s.mainField2 && (s.mainField2[0].length()>500)) return false;
-
- if(s.mainField3 && (s.mainField3[0].length()>500)) return false;
-
- if(s.mainField4 && (s.mainField4[0].length()>500)) return false;
-
- if(s.alignment && (!NsSmartDeviceLinkRPCV2::TextAlignmentMarshaller::checkIntegrityConst(s.alignment[0]))) return false;
-
- if(s.statusBar && (s.statusBar[0].length()>500)) return false;
-
- if(s.mediaClock && (s.mediaClock[0].length()>500)) return false;
-
- if(s.mediaTrack && (s.mediaTrack[0].length()>500)) return false;
-
- if(s.graphic && (!NsSmartDeviceLinkRPCV2::ImageMarshaller::checkIntegrityConst(s.graphic[0]))) return false;
-
- if(s.softButtons)
- {
- unsigned int i=s.softButtons[0].size();
- if(i<0) return false;
- if(i>8) return false;
- }
-
- if(s.customPresets)
- {
- unsigned int i=s.customPresets[0].size();
- if(i<0) return false;
- if(i>6) return false;
- while(i--)
- {
- if(s.customPresets[0][i].length()>500) return false;
- }
- }
-
- return true;
-}
-
-
-Json::Value ShowMarshaller::toJSON(const Show& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.Show");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- if(e.mainField1)
- json["params"]["mainField1"]=Json::Value(e.mainField1[0]);;
- if(e.mainField2)
- json["params"]["mainField2"]=Json::Value(e.mainField2[0]);;
- if(e.mainField3)
- json["params"]["mainField3"]=Json::Value(e.mainField3[0]);;
- if(e.mainField4)
- json["params"]["mainField4"]=Json::Value(e.mainField4[0]);;
- if(e.alignment)
- json["params"]["alignment"]=NsSmartDeviceLinkRPCV2::TextAlignmentMarshaller::toJSON(e.alignment[0]);;
- if(e.statusBar)
- json["params"]["statusBar"]=Json::Value(e.statusBar[0]);;
- if(e.mediaClock)
- json["params"]["mediaClock"]=Json::Value(e.mediaClock[0]);;
- if(e.mediaTrack)
- json["params"]["mediaTrack"]=Json::Value(e.mediaTrack[0]);;
- if(e.graphic)
- json["params"]["graphic"]=NsSmartDeviceLinkRPCV2::ImageMarshaller::toJSON(e.graphic[0]);;
- if(e.softButtons)
- {
- unsigned int i=e.softButtons[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::toJSON(e.softButtons[0][i]);
-
- json["params"]["softButtons"]=j;
- }
- if(e.customPresets)
- {
- unsigned int i=e.customPresets[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=Json::Value(e.customPresets[0][i]);
-
- json["params"]["customPresets"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool ShowMarshaller::fromJSON(const Json::Value& json,Show& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.Show")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(c.mainField1) delete c.mainField1;
- c.mainField1=0;
- if(js.isMember("mainField1"))
- {
- if(!js["mainField1"].isString()) return false;
- c.mainField1=new std::string();
- c.mainField1[0]=js["mainField1"].asString();
- if(c.mainField1[0].length()>500) return false;
-
- }
-
- if(c.mainField2) delete c.mainField2;
- c.mainField2=0;
- if(js.isMember("mainField2"))
- {
- if(!js["mainField2"].isString()) return false;
- c.mainField2=new std::string();
- c.mainField2[0]=js["mainField2"].asString();
- if(c.mainField2[0].length()>500) return false;
-
- }
-
- if(c.mainField3) delete c.mainField3;
- c.mainField3=0;
- if(js.isMember("mainField3"))
- {
- if(!js["mainField3"].isString()) return false;
- c.mainField3=new std::string();
- c.mainField3[0]=js["mainField3"].asString();
- if(c.mainField3[0].length()>500) return false;
-
- }
-
- if(c.mainField4) delete c.mainField4;
- c.mainField4=0;
- if(js.isMember("mainField4"))
- {
- if(!js["mainField4"].isString()) return false;
- c.mainField4=new std::string();
- c.mainField4[0]=js["mainField4"].asString();
- if(c.mainField4[0].length()>500) return false;
-
- }
-
- if(c.alignment) delete c.alignment;
- c.alignment=0;
- if(js.isMember("alignment"))
- {
- c.alignment=new NsSmartDeviceLinkRPCV2::TextAlignment();
- if(!NsSmartDeviceLinkRPCV2::TextAlignmentMarshaller::fromJSON(js["alignment"],c.alignment[0])) return false;
- }
-
- if(c.statusBar) delete c.statusBar;
- c.statusBar=0;
- if(js.isMember("statusBar"))
- {
- if(!js["statusBar"].isString()) return false;
- c.statusBar=new std::string();
- c.statusBar[0]=js["statusBar"].asString();
- if(c.statusBar[0].length()>500) return false;
-
- }
-
- if(c.mediaClock) delete c.mediaClock;
- c.mediaClock=0;
- if(js.isMember("mediaClock"))
- {
- if(!js["mediaClock"].isString()) return false;
- c.mediaClock=new std::string();
- c.mediaClock[0]=js["mediaClock"].asString();
- if(c.mediaClock[0].length()>500) return false;
-
- }
-
- if(c.mediaTrack) delete c.mediaTrack;
- c.mediaTrack=0;
- if(js.isMember("mediaTrack"))
- {
- if(!js["mediaTrack"].isString()) return false;
- c.mediaTrack=new std::string();
- c.mediaTrack[0]=js["mediaTrack"].asString();
- if(c.mediaTrack[0].length()>500) return false;
-
- }
-
- if(c.graphic) delete c.graphic;
- c.graphic=0;
- if(js.isMember("graphic"))
- {
- c.graphic=new NsSmartDeviceLinkRPCV2::Image();
- if(!NsSmartDeviceLinkRPCV2::ImageMarshaller::fromJSON(js["graphic"],c.graphic[0])) return false;
- }
-
- if(c.softButtons) delete c.softButtons;
- c.softButtons=0;
- if(js.isMember("softButtons"))
- {
- if(!js["softButtons"].isArray()) return false;
- unsigned int i=js["softButtons"].size();
- if(i<0) return false;
- if(i>8) return false;
-
- c.softButtons=new std::vector<NsSmartDeviceLinkRPCV2::SoftButton>();
- c.softButtons->resize(js["softButtons"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::fromJSON(js["softButtons"][i],c.softButtons[0][i])) return false;
- }
-
-
- if(c.customPresets) delete c.customPresets;
- c.customPresets=0;
- if(js.isMember("customPresets"))
- {
- if(!js["customPresets"].isArray()) return false;
- unsigned int i=js["customPresets"].size();
- if(i<0) return false;
- if(i>6) return false;
-
- c.customPresets=new std::vector<std::string>();
- c.customPresets->resize(js["customPresets"].size());
-
- while(i--)
- {
- if(!js["customPresets"][i].isString())
- return false;
-
- c.customPresets[0][i]=js["customPresets"][i].asString();
- if(c.customPresets[0][i].length()>500) return false;
- }
- }
-
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowMarshaller.h
deleted file mode 100644
index 1b41e6683..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SHOWMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SHOWMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Show.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct ShowMarshaller
- {
- static bool checkIntegrity(Show& e);
- static bool checkIntegrityConst(const Show& e);
-
- static bool fromString(const std::string& s,Show& e);
- static const std::string toString(const Show& e);
-
- static bool fromJSON(const Json::Value& s,Show& e);
- static Json::Value toJSON(const Show& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponse.cpp
deleted file mode 100644
index c129bdc39..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-ShowResponse& ShowResponse::operator =(const ShowResponse& c)
-{
- return *this;
-}
-
-
-ShowResponse::~ShowResponse(void)
-{
-}
-
-
-ShowResponse::ShowResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SHOWRESPONSE)
-{
-}
-
-
-ShowResponse::ShowResponse(const ShowResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SHOWRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool ShowResponse::checkIntegrity(void)
-{
- return ShowResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponseMarshaller.cpp
deleted file mode 100644
index ebd723ca7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/ShowResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool ShowResponseMarshaller::checkIntegrity(ShowResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ShowResponseMarshaller::fromString(const std::string& s,ShowResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ShowResponseMarshaller::toString(const ShowResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ShowResponseMarshaller::checkIntegrityConst(const ShowResponse& s)
-{
- return true;
-}
-
-
-Json::Value ShowResponseMarshaller::toJSON(const ShowResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.ShowResponse");
-
- return json;
-}
-
-
-bool ShowResponseMarshaller::fromJSON(const Json::Value& json,ShowResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.ShowResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponseMarshaller.h
deleted file mode 100644
index aa5f288bd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/ShowResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SHOWRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SHOWRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/ShowResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct ShowResponseMarshaller
- {
- static bool checkIntegrity(ShowResponse& e);
- static bool checkIntegrityConst(const ShowResponse& e);
-
- static bool fromString(const std::string& s,ShowResponse& e);
- static const std::string toString(const ShowResponse& e);
-
- static bool fromJSON(const Json::Value& s,ShowResponse& e);
- static Json::Value toJSON(const ShowResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Slider.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Slider.cpp
deleted file mode 100644
index f50aed3c5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/Slider.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Slider.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-Slider& Slider::operator =(const Slider& c)
-{
- numTicks=c.numTicks;
- position=c.position;
- sliderHeader=c.sliderHeader;
- if(sliderFooter) delete sliderFooter;
- sliderFooter= c.sliderFooter ? new std::vector<std::string>(c.sliderFooter[0]) : 0;
- timeout=c.timeout;
- appId=c.appId;
- return *this;
-}
-
-
-Slider::~Slider(void)
-{
- if(sliderFooter) delete sliderFooter;
-}
-
-
-Slider::Slider(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SLIDER),
- sliderFooter(0)
-{
-}
-
-
-Slider::Slider(const Slider& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SLIDER,c.getId())
-{
- *this=c;
-}
-
-
-unsigned int Slider::get_numTicks(void)
-{
- return numTicks;
-}
-
-bool Slider::set_numTicks(unsigned int numTicks_)
-{
- numTicks=numTicks_;
- return true;
-}
-
-unsigned int Slider::get_position(void)
-{
- return position;
-}
-
-bool Slider::set_position(unsigned int position_)
-{
- position=position_;
- return true;
-}
-
-const std::string& Slider::get_sliderHeader(void)
-{
- return sliderHeader;
-}
-
-bool Slider::set_sliderHeader(const std::string& sliderHeader_)
-{
- sliderHeader=sliderHeader_;
- return true;
-}
-
-const std::vector< std::string>* Slider::get_sliderFooter(void)
-{
- return sliderFooter;
-}
-
-bool Slider::set_sliderFooter(const std::vector< std::string>& sliderFooter_)
-{
- if(sliderFooter) delete sliderFooter;
- sliderFooter=new std::vector< std::string>(sliderFooter_);
- return true;
-}
-
-void Slider::reset_sliderFooter(void)
-{
- if(sliderFooter) delete sliderFooter;
- sliderFooter=0;
-}
-
-unsigned int Slider::get_timeout(void)
-{
- return timeout;
-}
-
-bool Slider::set_timeout(unsigned int timeout_)
-{
- timeout=timeout_;
- return true;
-}
-
-int Slider::get_appId(void)
-{
- return appId;
-}
-
-bool Slider::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool Slider::checkIntegrity(void)
-{
- return SliderMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderMarshaller.cpp
deleted file mode 100644
index 2bcbddfc9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderMarshaller.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Slider.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SliderMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool SliderMarshaller::checkIntegrity(Slider& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SliderMarshaller::fromString(const std::string& s,Slider& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SliderMarshaller::toString(const Slider& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SliderMarshaller::checkIntegrityConst(const Slider& s)
-{
- if(s.numTicks<2 || s.numTicks>26) return false;
-
- if(s.position<1 || s.position>26) return false;
-
- if(s.sliderHeader.length()>500) return false;
-
- if(s.sliderFooter)
- {
- unsigned int i=s.sliderFooter[0].size();
- if(i<1) return false;
- if(i>26) return false;
- while(i--)
- {
- if(s.sliderFooter[0][i].length()>500) return false;
- }
- }
-
- if(s.timeout>65535) return false;
-
- return true;
-}
-
-
-Json::Value SliderMarshaller::toJSON(const Slider& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.Slider");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["numTicks"]=Json::Value(e.numTicks);;
- json["params"]["position"]=Json::Value(e.position);;
- json["params"]["sliderHeader"]=Json::Value(e.sliderHeader);;
- if(e.sliderFooter)
- {
- unsigned int i=e.sliderFooter[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=Json::Value(e.sliderFooter[0][i]);
-
- json["params"]["sliderFooter"]=j;
- }
- json["params"]["timeout"]=Json::Value(e.timeout);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool SliderMarshaller::fromJSON(const Json::Value& json,Slider& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.Slider")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("numTicks") || !js["numTicks"].isInt()) return false;
- c.numTicks=js["numTicks"].asInt();
- if(c.numTicks<2 || c.numTicks>26) return false;
-
- if(!js.isMember("position") || !js["position"].isInt()) return false;
- c.position=js["position"].asInt();
- if(c.position<1 || c.position>16) return false;
-
- if(!js.isMember("sliderHeader") || !js["sliderHeader"].isString()) return false;
- c.sliderHeader=js["sliderHeader"].asString();
- if(c.sliderHeader.length()>500) return false;
-
- if(c.sliderFooter) delete c.sliderFooter;
- c.sliderFooter=0;
- if(js.isMember("sliderFooter"))
- {
- if(!js["sliderFooter"].isArray()) return false;
- unsigned int i=js["sliderFooter"].size();
- if(i<1) return false;
- if(i>26) return false;
-
- c.sliderFooter=new std::vector<std::string>();
- c.sliderFooter->resize(js["sliderFooter"].size());
-
- while(i--)
- {
- if(!js["sliderFooter"][i].isString())
- return false;
-
- c.sliderFooter[0][i]=js["sliderFooter"][i].asString();
- if(c.sliderFooter[0][i].length()>500) return false;
- }
- }
-
-
- if(!js.isMember("timeout") || !js["timeout"].isInt()) return false;
- c.timeout=js["timeout"].asInt();
- if(c.timeout>65535) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderMarshaller.h
deleted file mode 100644
index 62087dad0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SLIDERMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SLIDERMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/Slider.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct SliderMarshaller
- {
- static bool checkIntegrity(Slider& e);
- static bool checkIntegrityConst(const Slider& e);
-
- static bool fromString(const std::string& s,Slider& e);
- static const std::string toString(const Slider& e);
-
- static bool fromJSON(const Json::Value& s,Slider& e);
- static Json::Value toJSON(const Slider& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponse.cpp
deleted file mode 100644
index 3350ef5c1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponse.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SliderResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-SliderResponse& SliderResponse::operator =(const SliderResponse& c)
-{
- sliderPosition=c.sliderPosition;
- return *this;
-}
-
-
-SliderResponse::~SliderResponse(void)
-{
-}
-
-
-SliderResponse::SliderResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SLIDERRESPONSE)
-{
-}
-
-
-SliderResponse::SliderResponse(const SliderResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__SLIDERRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-unsigned int SliderResponse::get_sliderPosition(void)
-{
- return sliderPosition;
-}
-
-bool SliderResponse::set_sliderPosition(unsigned int sliderPosition_)
-{
- sliderPosition=sliderPosition_;
- return true;
-}
-
-bool SliderResponse::checkIntegrity(void)
-{
- return SliderResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponseMarshaller.cpp
deleted file mode 100644
index 2cac2cacb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponseMarshaller.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SliderResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/SliderResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool SliderResponseMarshaller::checkIntegrity(SliderResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SliderResponseMarshaller::fromString(const std::string& s,SliderResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SliderResponseMarshaller::toString(const SliderResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SliderResponseMarshaller::checkIntegrityConst(const SliderResponse& s)
-{
- if(s.sliderPosition<1 || s.sliderPosition>26) return false;
-
- return true;
-}
-
-
-Json::Value SliderResponseMarshaller::toJSON(const SliderResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.SliderResponse");
-
- json["result"]["sliderPosition"]=Json::Value(e.sliderPosition);;
- return json;
-}
-
-
-bool SliderResponseMarshaller::fromJSON(const Json::Value& json,SliderResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.SliderResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("sliderPosition") || !js["sliderPosition"].isInt()) return false;
- c.sliderPosition=js["sliderPosition"].asInt();
- if(c.sliderPosition<1 || c.sliderPosition>26) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponseMarshaller.h
deleted file mode 100644
index f162ec300..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/SliderResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_SLIDERRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_SLIDERRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/SliderResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct SliderResponseMarshaller
- {
- static bool checkIntegrity(SliderResponse& e);
- static bool checkIntegrityConst(const SliderResponse& e);
-
- static bool fromString(const std::string& s,SliderResponse& e);
- static const std::string toString(const SliderResponse& e);
-
- static bool fromJSON(const Json::Value& s,SliderResponse& e);
- static Json::Value toJSON(const SliderResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnList.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnList.cpp
deleted file mode 100644
index 9b4dbc25e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnList.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnList.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-UpdateTurnList& UpdateTurnList::operator =(const UpdateTurnList& c)
-{
- turnList=c.turnList;
- softButtons=c.softButtons;
- appId=c.appId;
- return *this;
-}
-
-
-UpdateTurnList::~UpdateTurnList(void)
-{
-}
-
-
-UpdateTurnList::UpdateTurnList(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__UPDATETURNLIST)
-{
-}
-
-
-UpdateTurnList::UpdateTurnList(const UpdateTurnList& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__UPDATETURNLIST,c.getId())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::Turn>& UpdateTurnList::get_turnList(void)
-{
- return turnList;
-}
-
-bool UpdateTurnList::set_turnList(const std::vector< NsSmartDeviceLinkRPCV2::Turn>& turnList_)
-{
- turnList=turnList_;
- return true;
-}
-
-const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& UpdateTurnList::get_softButtons(void)
-{
- return softButtons;
-}
-
-bool UpdateTurnList::set_softButtons(const std::vector< NsSmartDeviceLinkRPCV2::SoftButton>& softButtons_)
-{
- softButtons=softButtons_;
- return true;
-}
-
-int UpdateTurnList::get_appId(void)
-{
- return appId;
-}
-
-bool UpdateTurnList::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool UpdateTurnList::checkIntegrity(void)
-{
- return UpdateTurnListMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListMarshaller.cpp
deleted file mode 100644
index 2ced1056f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListMarshaller.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnList.h"
-#include "../src/SDLRPCObjectsImpl/V2/TurnMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/UpdateTurnListMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool UpdateTurnListMarshaller::checkIntegrity(UpdateTurnList& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UpdateTurnListMarshaller::fromString(const std::string& s,UpdateTurnList& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UpdateTurnListMarshaller::toString(const UpdateTurnList& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UpdateTurnListMarshaller::checkIntegrityConst(const UpdateTurnList& s)
-{
- {
- unsigned int i=s.turnList.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- {
- unsigned int i=s.softButtons.size();
- if(i<0) return false;
- if(i>1) return false;
- }
-
- return true;
-}
-
-
-Json::Value UpdateTurnListMarshaller::toJSON(const UpdateTurnList& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("UI.UpdateTurnList");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- {
- unsigned int i=e.turnList.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::TurnMarshaller::toJSON(e.turnList[i]);
-
- json["params"]["turnList"]=j;
- }
- {
- unsigned int i=e.softButtons.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::toJSON(e.softButtons[i]);
-
- json["params"]["softButtons"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool UpdateTurnListMarshaller::fromJSON(const Json::Value& json,UpdateTurnList& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("UI.UpdateTurnList")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("turnList") || !js["turnList"].isArray()) return false;
- {
- unsigned int i=js["turnList"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.turnList.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::Turn t;
- if(!NsSmartDeviceLinkRPCV2::TurnMarshaller::fromJSON(js["turnList"][i],t))
- return false;
- c.turnList[i]=t;
- }
- }
-
- if(!js.isMember("softButtons") || !js["softButtons"].isArray()) return false;
- {
- unsigned int i=js["softButtons"].size();
- if(i<0) return false;
- if(i>1) return false;
- c.softButtons.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::SoftButton t;
- if(!NsSmartDeviceLinkRPCV2::SoftButtonMarshaller::fromJSON(js["softButtons"][i],t))
- return false;
- c.softButtons[i]=t;
- }
- }
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListMarshaller.h
deleted file mode 100644
index 28e3dcbb7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_UPDATETURNLISTMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_UPDATETURNLISTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnList.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct UpdateTurnListMarshaller
- {
- static bool checkIntegrity(UpdateTurnList& e);
- static bool checkIntegrityConst(const UpdateTurnList& e);
-
- static bool fromString(const std::string& s,UpdateTurnList& e);
- static const std::string toString(const UpdateTurnList& e);
-
- static bool fromJSON(const Json::Value& s,UpdateTurnList& e);
- static Json::Value toJSON(const UpdateTurnList& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponse.cpp
deleted file mode 100644
index c54fe06de..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnListResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-
-UpdateTurnListResponse& UpdateTurnListResponse::operator =(const UpdateTurnListResponse& c)
-{
- return *this;
-}
-
-
-UpdateTurnListResponse::~UpdateTurnListResponse(void)
-{
-}
-
-
-UpdateTurnListResponse::UpdateTurnListResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__UPDATETURNLISTRESPONSE)
-{
-}
-
-
-UpdateTurnListResponse::UpdateTurnListResponse(const UpdateTurnListResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_UI__UPDATETURNLISTRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool UpdateTurnListResponse::checkIntegrity(void)
-{
- return UpdateTurnListResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponseMarshaller.cpp
deleted file mode 100644
index 752f82916..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnListResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/UpdateTurnListResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::UI
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::UI;
-
-bool UpdateTurnListResponseMarshaller::checkIntegrity(UpdateTurnListResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UpdateTurnListResponseMarshaller::fromString(const std::string& s,UpdateTurnListResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UpdateTurnListResponseMarshaller::toString(const UpdateTurnListResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UpdateTurnListResponseMarshaller::checkIntegrityConst(const UpdateTurnListResponse& s)
-{
- return true;
-}
-
-
-Json::Value UpdateTurnListResponseMarshaller::toJSON(const UpdateTurnListResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("UI.UpdateTurnListResponse");
-
- return json;
-}
-
-
-bool UpdateTurnListResponseMarshaller::fromJSON(const Json::Value& json,UpdateTurnListResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("UI.UpdateTurnListResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponseMarshaller.h
deleted file mode 100644
index 00b514874..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/UI/UpdateTurnListResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_UI_UPDATETURNLISTRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_UI_UPDATETURNLISTRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/UpdateTurnListResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace UI
- {
-
- struct UpdateTurnListResponseMarshaller
- {
- static bool checkIntegrity(UpdateTurnListResponse& e);
- static bool checkIntegrityConst(const UpdateTurnListResponse& e);
-
- static bool fromString(const std::string& s,UpdateTurnListResponse& e);
- static const std::string toString(const UpdateTurnListResponse& e);
-
- static bool fromJSON(const Json::Value& s,UpdateTurnListResponse& e);
- static Json::Value toJSON(const UpdateTurnListResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommand.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommand.cpp
deleted file mode 100644
index 654b41e3d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommand.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-AddCommand& AddCommand::operator =(const AddCommand& c)
-{
- cmdId=c.cmdId;
- vrCommands=c.vrCommands;
- appId=c.appId;
- return *this;
-}
-
-
-AddCommand::~AddCommand(void)
-{
-}
-
-
-AddCommand::AddCommand(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__ADDCOMMAND)
-{
-}
-
-
-AddCommand::AddCommand(const AddCommand& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__ADDCOMMAND,c.getId())
-{
- *this=c;
-}
-
-
-unsigned int AddCommand::get_cmdId(void)
-{
- return cmdId;
-}
-
-bool AddCommand::set_cmdId(unsigned int cmdId_)
-{
- cmdId=cmdId_;
- return true;
-}
-
-const std::vector< std::string>& AddCommand::get_vrCommands(void)
-{
- return vrCommands;
-}
-
-bool AddCommand::set_vrCommands(const std::vector< std::string>& vrCommands_)
-{
- vrCommands=vrCommands_;
- return true;
-}
-
-int AddCommand::get_appId(void)
-{
- return appId;
-}
-
-bool AddCommand::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool AddCommand::checkIntegrity(void)
-{
- return AddCommandMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandMarshaller.cpp
deleted file mode 100644
index 8732d1e64..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandMarshaller.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommand.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/AddCommandMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool AddCommandMarshaller::checkIntegrity(AddCommand& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddCommandMarshaller::fromString(const std::string& s,AddCommand& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddCommandMarshaller::toString(const AddCommand& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddCommandMarshaller::checkIntegrityConst(const AddCommand& s)
-{
- if(s.cmdId>2000000000) return false;
-
- {
- unsigned int i=s.vrCommands.size();
- if(i<1) return false;
- if(i>100) return false;
- while(i--)
- {
- if(s.vrCommands[i].length()>99) return false;
- }
- }
-
- return true;
-}
-
-
-Json::Value AddCommandMarshaller::toJSON(const AddCommand& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VR.AddCommand");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["cmdId"]=Json::Value(e.cmdId);;
- {
- unsigned int i=e.vrCommands.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=Json::Value(e.vrCommands[i]);
-
- json["params"]["vrCommands"]=j;
- }
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool AddCommandMarshaller::fromJSON(const Json::Value& json,AddCommand& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VR.AddCommand")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("cmdId") || !js["cmdId"].isInt()) return false;
- c.cmdId=js["cmdId"].asInt();
- if(c.cmdId>2000000000) return false;
-
- if(!js.isMember("vrCommands") || !js["vrCommands"].isArray())
- return false;
- {
- c.vrCommands.clear();
- unsigned int i=js["vrCommands"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.vrCommands.resize(i);
- while(i--)
- {
- if(!js["vrCommands"][i].isString())
- return false;
- c.vrCommands[i]=js["vrCommands"][i].asString();
- if(c.vrCommands[i].length()>99) return false;
-
- }
- }
-
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandMarshaller.h
deleted file mode 100644
index 7ba2de53a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_ADDCOMMANDMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_ADDCOMMANDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommand.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct AddCommandMarshaller
- {
- static bool checkIntegrity(AddCommand& e);
- static bool checkIntegrityConst(const AddCommand& e);
-
- static bool fromString(const std::string& s,AddCommand& e);
- static const std::string toString(const AddCommand& e);
-
- static bool fromJSON(const Json::Value& s,AddCommand& e);
- static Json::Value toJSON(const AddCommand& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponse.cpp
deleted file mode 100644
index 96bcf628e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-AddCommandResponse& AddCommandResponse::operator =(const AddCommandResponse& c)
-{
- return *this;
-}
-
-
-AddCommandResponse::~AddCommandResponse(void)
-{
-}
-
-
-AddCommandResponse::AddCommandResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__ADDCOMMANDRESPONSE)
-{
-}
-
-
-AddCommandResponse::AddCommandResponse(const AddCommandResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__ADDCOMMANDRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool AddCommandResponse::checkIntegrity(void)
-{
- return AddCommandResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponseMarshaller.cpp
deleted file mode 100644
index a640a3139..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommandResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/AddCommandResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool AddCommandResponseMarshaller::checkIntegrity(AddCommandResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddCommandResponseMarshaller::fromString(const std::string& s,AddCommandResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddCommandResponseMarshaller::toString(const AddCommandResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddCommandResponseMarshaller::checkIntegrityConst(const AddCommandResponse& s)
-{
- return true;
-}
-
-
-Json::Value AddCommandResponseMarshaller::toJSON(const AddCommandResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("VR.AddCommandResponse");
-
- return json;
-}
-
-
-bool AddCommandResponseMarshaller::fromJSON(const Json::Value& json,AddCommandResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("VR.AddCommandResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponseMarshaller.h
deleted file mode 100644
index caae5f540..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/AddCommandResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_ADDCOMMANDRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_ADDCOMMANDRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/AddCommandResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct AddCommandResponseMarshaller
- {
- static bool checkIntegrity(AddCommandResponse& e);
- static bool checkIntegrityConst(const AddCommandResponse& e);
-
- static bool fromString(const std::string& s,AddCommandResponse& e);
- static const std::string toString(const AddCommandResponse& e);
-
- static bool fromJSON(const Json::Value& s,AddCommandResponse& e);
- static Json::Value toJSON(const AddCommandResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistration.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistration.cpp
deleted file mode 100644
index c07053b9b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistration.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistration.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-ChangeRegistration& ChangeRegistration::operator =(const ChangeRegistration& c)
-{
- language=c.language;
- appId=c.appId;
- return *this;
-}
-
-
-ChangeRegistration::~ChangeRegistration(void)
-{
-}
-
-
-ChangeRegistration::ChangeRegistration(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__CHANGEREGISTRATION)
-{
-}
-
-
-ChangeRegistration::ChangeRegistration(const ChangeRegistration& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__CHANGEREGISTRATION,c.getId())
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::Language& ChangeRegistration::get_language(void)
-{
- return language;
-}
-
-bool ChangeRegistration::set_language(const NsSmartDeviceLinkRPCV2::Language& language_)
-{
- language=language_;
- return true;
-}
-
-int ChangeRegistration::get_appId(void)
-{
- return appId;
-}
-
-bool ChangeRegistration::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool ChangeRegistration::checkIntegrity(void)
-{
- return ChangeRegistrationMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationMarshaller.cpp
deleted file mode 100644
index 57c3f2dd0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationMarshaller.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistration.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/ChangeRegistrationMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool ChangeRegistrationMarshaller::checkIntegrity(ChangeRegistration& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ChangeRegistrationMarshaller::fromString(const std::string& s,ChangeRegistration& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ChangeRegistrationMarshaller::toString(const ChangeRegistration& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ChangeRegistrationMarshaller::checkIntegrityConst(const ChangeRegistration& s)
-{
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::checkIntegrityConst(s.language)) return false;
-
- return true;
-}
-
-
-Json::Value ChangeRegistrationMarshaller::toJSON(const ChangeRegistration& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VR.ChangeRegistration");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["language"]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.language);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool ChangeRegistrationMarshaller::fromJSON(const Json::Value& json,ChangeRegistration& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VR.ChangeRegistration")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("language") || !NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["language"],c.language)) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationMarshaller.h
deleted file mode 100644
index faa5a8d8a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_CHANGEREGISTRATIONMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_CHANGEREGISTRATIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistration.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct ChangeRegistrationMarshaller
- {
- static bool checkIntegrity(ChangeRegistration& e);
- static bool checkIntegrityConst(const ChangeRegistration& e);
-
- static bool fromString(const std::string& s,ChangeRegistration& e);
- static const std::string toString(const ChangeRegistration& e);
-
- static bool fromJSON(const Json::Value& s,ChangeRegistration& e);
- static Json::Value toJSON(const ChangeRegistration& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponse.cpp
deleted file mode 100644
index ac09f306f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistrationResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-ChangeRegistrationResponse& ChangeRegistrationResponse::operator =(const ChangeRegistrationResponse& c)
-{
- return *this;
-}
-
-
-ChangeRegistrationResponse::~ChangeRegistrationResponse(void)
-{
-}
-
-
-ChangeRegistrationResponse::ChangeRegistrationResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__CHANGEREGISTRATIONRESPONSE)
-{
-}
-
-
-ChangeRegistrationResponse::ChangeRegistrationResponse(const ChangeRegistrationResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__CHANGEREGISTRATIONRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool ChangeRegistrationResponse::checkIntegrity(void)
-{
- return ChangeRegistrationResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponseMarshaller.cpp
deleted file mode 100644
index 6e724f0d8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistrationResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/ChangeRegistrationResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool ChangeRegistrationResponseMarshaller::checkIntegrity(ChangeRegistrationResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ChangeRegistrationResponseMarshaller::fromString(const std::string& s,ChangeRegistrationResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ChangeRegistrationResponseMarshaller::toString(const ChangeRegistrationResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ChangeRegistrationResponseMarshaller::checkIntegrityConst(const ChangeRegistrationResponse& s)
-{
- return true;
-}
-
-
-Json::Value ChangeRegistrationResponseMarshaller::toJSON(const ChangeRegistrationResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("VR.ChangeRegistrationResponse");
-
- return json;
-}
-
-
-bool ChangeRegistrationResponseMarshaller::fromJSON(const Json::Value& json,ChangeRegistrationResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("VR.ChangeRegistrationResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponseMarshaller.h
deleted file mode 100644
index 631a4636d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/ChangeRegistrationResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_CHANGEREGISTRATIONRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_CHANGEREGISTRATIONRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/ChangeRegistrationResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct ChangeRegistrationResponseMarshaller
- {
- static bool checkIntegrity(ChangeRegistrationResponse& e);
- static bool checkIntegrityConst(const ChangeRegistrationResponse& e);
-
- static bool fromString(const std::string& s,ChangeRegistrationResponse& e);
- static const std::string toString(const ChangeRegistrationResponse& e);
-
- static bool fromJSON(const Json::Value& s,ChangeRegistrationResponse& e);
- static Json::Value toJSON(const ChangeRegistrationResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommand.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommand.cpp
deleted file mode 100644
index c7a1eb60f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommand.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-DeleteCommand& DeleteCommand::operator =(const DeleteCommand& c)
-{
- cmdId=c.cmdId;
- appId=c.appId;
- return *this;
-}
-
-
-DeleteCommand::~DeleteCommand(void)
-{
-}
-
-
-DeleteCommand::DeleteCommand(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__DELETECOMMAND)
-{
-}
-
-
-DeleteCommand::DeleteCommand(const DeleteCommand& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__DELETECOMMAND,c.getId())
-{
- *this=c;
-}
-
-
-unsigned int DeleteCommand::get_cmdId(void)
-{
- return cmdId;
-}
-
-bool DeleteCommand::set_cmdId(unsigned int cmdId_)
-{
- cmdId=cmdId_;
- return true;
-}
-
-int DeleteCommand::get_appId(void)
-{
- return appId;
-}
-
-bool DeleteCommand::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool DeleteCommand::checkIntegrity(void)
-{
- return DeleteCommandMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandMarshaller.cpp
deleted file mode 100644
index f640777cb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommand.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/DeleteCommandMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool DeleteCommandMarshaller::checkIntegrity(DeleteCommand& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteCommandMarshaller::fromString(const std::string& s,DeleteCommand& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteCommandMarshaller::toString(const DeleteCommand& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteCommandMarshaller::checkIntegrityConst(const DeleteCommand& s)
-{
- if(s.cmdId>2000000000) return false;
-
- return true;
-}
-
-
-Json::Value DeleteCommandMarshaller::toJSON(const DeleteCommand& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VR.DeleteCommand");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["cmdId"]=Json::Value(e.cmdId);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool DeleteCommandMarshaller::fromJSON(const Json::Value& json,DeleteCommand& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VR.DeleteCommand")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("cmdId") || !js["cmdId"].isInt()) return false;
- c.cmdId=js["cmdId"].asInt();
- if(c.cmdId>2000000000) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandMarshaller.h
deleted file mode 100644
index e3d2e9394..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_DELETECOMMANDMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_DELETECOMMANDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommand.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct DeleteCommandMarshaller
- {
- static bool checkIntegrity(DeleteCommand& e);
- static bool checkIntegrityConst(const DeleteCommand& e);
-
- static bool fromString(const std::string& s,DeleteCommand& e);
- static const std::string toString(const DeleteCommand& e);
-
- static bool fromJSON(const Json::Value& s,DeleteCommand& e);
- static Json::Value toJSON(const DeleteCommand& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponse.cpp
deleted file mode 100644
index 58ec913c3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponse.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommandResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-DeleteCommandResponse& DeleteCommandResponse::operator =(const DeleteCommandResponse& c)
-{
- return *this;
-}
-
-
-DeleteCommandResponse::~DeleteCommandResponse(void)
-{
-}
-
-
-DeleteCommandResponse::DeleteCommandResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__DELETECOMMANDRESPONSE)
-{
-}
-
-
-DeleteCommandResponse::DeleteCommandResponse(const DeleteCommandResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__DELETECOMMANDRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-bool DeleteCommandResponse::checkIntegrity(void)
-{
- return DeleteCommandResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponseMarshaller.cpp
deleted file mode 100644
index 9cc603e86..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommandResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/DeleteCommandResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool DeleteCommandResponseMarshaller::checkIntegrity(DeleteCommandResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteCommandResponseMarshaller::fromString(const std::string& s,DeleteCommandResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteCommandResponseMarshaller::toString(const DeleteCommandResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteCommandResponseMarshaller::checkIntegrityConst(const DeleteCommandResponse& s)
-{
- return true;
-}
-
-
-Json::Value DeleteCommandResponseMarshaller::toJSON(const DeleteCommandResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("VR.DeleteCommandResponse");
-
- return json;
-}
-
-
-bool DeleteCommandResponseMarshaller::fromJSON(const Json::Value& json,DeleteCommandResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("VR.DeleteCommandResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponseMarshaller.h
deleted file mode 100644
index 1cd11b9b0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/DeleteCommandResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_DELETECOMMANDRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_DELETECOMMANDRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/DeleteCommandResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct DeleteCommandResponseMarshaller
- {
- static bool checkIntegrity(DeleteCommandResponse& e);
- static bool checkIntegrityConst(const DeleteCommandResponse& e);
-
- static bool fromString(const std::string& s,DeleteCommandResponse& e);
- static const std::string toString(const DeleteCommandResponse& e);
-
- static bool fromJSON(const Json::Value& s,DeleteCommandResponse& e);
- static Json::Value toJSON(const DeleteCommandResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilities.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilities.cpp
deleted file mode 100644
index 94737ac60..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilities.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilities.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-GetCapabilities& GetCapabilities::operator =(const GetCapabilities& c)
-{
- return *this;
-}
-
-
-GetCapabilities::~GetCapabilities(void)
-{
-}
-
-
-GetCapabilities::GetCapabilities(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETCAPABILITIES)
-{
-}
-
-
-GetCapabilities::GetCapabilities(const GetCapabilities& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETCAPABILITIES,c.getId())
-{
- *this=c;
-}
-
-
-bool GetCapabilities::checkIntegrity(void)
-{
- return GetCapabilitiesMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesMarshaller.cpp
deleted file mode 100644
index b22296f50..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilities.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetCapabilitiesMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool GetCapabilitiesMarshaller::checkIntegrity(GetCapabilities& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetCapabilitiesMarshaller::fromString(const std::string& s,GetCapabilities& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetCapabilitiesMarshaller::toString(const GetCapabilities& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetCapabilitiesMarshaller::checkIntegrityConst(const GetCapabilities& s)
-{
- return true;
-}
-
-
-Json::Value GetCapabilitiesMarshaller::toJSON(const GetCapabilities& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VR.GetCapabilities");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetCapabilitiesMarshaller::fromJSON(const Json::Value& json,GetCapabilities& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VR.GetCapabilities")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesMarshaller.h
deleted file mode 100644
index 1136747da..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETCAPABILITIESMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilities.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct GetCapabilitiesMarshaller
- {
- static bool checkIntegrity(GetCapabilities& e);
- static bool checkIntegrityConst(const GetCapabilities& e);
-
- static bool fromString(const std::string& s,GetCapabilities& e);
- static const std::string toString(const GetCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,GetCapabilities& e);
- static Json::Value toJSON(const GetCapabilities& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponse.cpp
deleted file mode 100644
index 2fdc952ae..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponse.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilitiesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-GetCapabilitiesResponse& GetCapabilitiesResponse::operator =(const GetCapabilitiesResponse& c)
-{
- capabilities=c.capabilities;
- return *this;
-}
-
-
-GetCapabilitiesResponse::~GetCapabilitiesResponse(void)
-{
-}
-
-
-GetCapabilitiesResponse::GetCapabilitiesResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETCAPABILITIESRESPONSE)
-{
-}
-
-
-GetCapabilitiesResponse::GetCapabilitiesResponse(const GetCapabilitiesResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETCAPABILITIESRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::VrCapabilities>& GetCapabilitiesResponse::get_capabilities(void)
-{
- return capabilities;
-}
-
-bool GetCapabilitiesResponse::set_capabilities(const std::vector< NsSmartDeviceLinkRPCV2::VrCapabilities>& capabilities_)
-{
- capabilities=capabilities_;
- return true;
-}
-
-bool GetCapabilitiesResponse::checkIntegrity(void)
-{
- return GetCapabilitiesResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponseMarshaller.cpp
deleted file mode 100644
index b8aeace1f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponseMarshaller.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilitiesResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetCapabilitiesResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool GetCapabilitiesResponseMarshaller::checkIntegrity(GetCapabilitiesResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetCapabilitiesResponseMarshaller::fromString(const std::string& s,GetCapabilitiesResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetCapabilitiesResponseMarshaller::toString(const GetCapabilitiesResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetCapabilitiesResponseMarshaller::checkIntegrityConst(const GetCapabilitiesResponse& s)
-{
- {
- unsigned int i=s.capabilities.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value GetCapabilitiesResponseMarshaller::toJSON(const GetCapabilitiesResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("VR.GetCapabilitiesResponse");
-
- {
- unsigned int i=e.capabilities.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::VrCapabilitiesMarshaller::toJSON(e.capabilities[i]);
-
- json["result"]["capabilities"]=j;
- }
- return json;
-}
-
-
-bool GetCapabilitiesResponseMarshaller::fromJSON(const Json::Value& json,GetCapabilitiesResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("VR.GetCapabilitiesResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("capabilities") || !js["capabilities"].isArray()) return false;
- {
- unsigned int i=js["capabilities"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.capabilities.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::VrCapabilities t;
- if(!NsSmartDeviceLinkRPCV2::VrCapabilitiesMarshaller::fromJSON(js["capabilities"][i],t))
- return false;
- c.capabilities[i]=t;
- }
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponseMarshaller.h
deleted file mode 100644
index 243c1c48b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetCapabilitiesResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETCAPABILITIESRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETCAPABILITIESRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetCapabilitiesResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct GetCapabilitiesResponseMarshaller
- {
- static bool checkIntegrity(GetCapabilitiesResponse& e);
- static bool checkIntegrityConst(const GetCapabilitiesResponse& e);
-
- static bool fromString(const std::string& s,GetCapabilitiesResponse& e);
- static const std::string toString(const GetCapabilitiesResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetCapabilitiesResponse& e);
- static Json::Value toJSON(const GetCapabilitiesResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguage.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguage.cpp
deleted file mode 100644
index c7282c494..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguage.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguage.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-GetLanguage& GetLanguage::operator =(const GetLanguage& c)
-{
- return *this;
-}
-
-
-GetLanguage::~GetLanguage(void)
-{
-}
-
-
-GetLanguage::GetLanguage(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETLANGUAGE)
-{
-}
-
-
-GetLanguage::GetLanguage(const GetLanguage& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETLANGUAGE,c.getId())
-{
- *this=c;
-}
-
-
-bool GetLanguage::checkIntegrity(void)
-{
- return GetLanguageMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageMarshaller.cpp
deleted file mode 100644
index cf84bb503..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguage.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetLanguageMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool GetLanguageMarshaller::checkIntegrity(GetLanguage& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetLanguageMarshaller::fromString(const std::string& s,GetLanguage& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetLanguageMarshaller::toString(const GetLanguage& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetLanguageMarshaller::checkIntegrityConst(const GetLanguage& s)
-{
- return true;
-}
-
-
-Json::Value GetLanguageMarshaller::toJSON(const GetLanguage& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VR.GetLanguage");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetLanguageMarshaller::fromJSON(const Json::Value& json,GetLanguage& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VR.GetLanguage")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageMarshaller.h
deleted file mode 100644
index 58456a6bc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETLANGUAGEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETLANGUAGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguage.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct GetLanguageMarshaller
- {
- static bool checkIntegrity(GetLanguage& e);
- static bool checkIntegrityConst(const GetLanguage& e);
-
- static bool fromString(const std::string& s,GetLanguage& e);
- static const std::string toString(const GetLanguage& e);
-
- static bool fromJSON(const Json::Value& s,GetLanguage& e);
- static Json::Value toJSON(const GetLanguage& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponse.cpp
deleted file mode 100644
index 09542f5e8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponse.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguageResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-GetLanguageResponse& GetLanguageResponse::operator =(const GetLanguageResponse& c)
-{
- language=c.language;
- return *this;
-}
-
-
-GetLanguageResponse::~GetLanguageResponse(void)
-{
-}
-
-
-GetLanguageResponse::GetLanguageResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETLANGUAGERESPONSE)
-{
-}
-
-
-GetLanguageResponse::GetLanguageResponse(const GetLanguageResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETLANGUAGERESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::Language& GetLanguageResponse::get_language(void)
-{
- return language;
-}
-
-bool GetLanguageResponse::set_language(const NsSmartDeviceLinkRPCV2::Language& language_)
-{
- language=language_;
- return true;
-}
-
-bool GetLanguageResponse::checkIntegrity(void)
-{
- return GetLanguageResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponseMarshaller.cpp
deleted file mode 100644
index 6ccd0ac06..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponseMarshaller.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguageResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetLanguageResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool GetLanguageResponseMarshaller::checkIntegrity(GetLanguageResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetLanguageResponseMarshaller::fromString(const std::string& s,GetLanguageResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetLanguageResponseMarshaller::toString(const GetLanguageResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetLanguageResponseMarshaller::checkIntegrityConst(const GetLanguageResponse& s)
-{
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::checkIntegrityConst(s.language)) return false;
-
- return true;
-}
-
-
-Json::Value GetLanguageResponseMarshaller::toJSON(const GetLanguageResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("VR.GetLanguageResponse");
-
- json["result"]["language"]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.language);;
- return json;
-}
-
-
-bool GetLanguageResponseMarshaller::fromJSON(const Json::Value& json,GetLanguageResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("VR.GetLanguageResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("language") || !NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["language"],c.language)) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponseMarshaller.h
deleted file mode 100644
index 50f3610b1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetLanguageResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETLANGUAGERESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETLANGUAGERESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetLanguageResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct GetLanguageResponseMarshaller
- {
- static bool checkIntegrity(GetLanguageResponse& e);
- static bool checkIntegrityConst(const GetLanguageResponse& e);
-
- static bool fromString(const std::string& s,GetLanguageResponse& e);
- static const std::string toString(const GetLanguageResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetLanguageResponse& e);
- static Json::Value toJSON(const GetLanguageResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguages.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguages.cpp
deleted file mode 100644
index bd9c31219..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguages.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguages.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-GetSupportedLanguages& GetSupportedLanguages::operator =(const GetSupportedLanguages& c)
-{
- return *this;
-}
-
-
-GetSupportedLanguages::~GetSupportedLanguages(void)
-{
-}
-
-
-GetSupportedLanguages::GetSupportedLanguages(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETSUPPORTEDLANGUAGES)
-{
-}
-
-
-GetSupportedLanguages::GetSupportedLanguages(const GetSupportedLanguages& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETSUPPORTEDLANGUAGES,c.getId())
-{
- *this=c;
-}
-
-
-bool GetSupportedLanguages::checkIntegrity(void)
-{
- return GetSupportedLanguagesMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesMarshaller.cpp
deleted file mode 100644
index 7d7862d78..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguages.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetSupportedLanguagesMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool GetSupportedLanguagesMarshaller::checkIntegrity(GetSupportedLanguages& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetSupportedLanguagesMarshaller::fromString(const std::string& s,GetSupportedLanguages& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetSupportedLanguagesMarshaller::toString(const GetSupportedLanguages& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetSupportedLanguagesMarshaller::checkIntegrityConst(const GetSupportedLanguages& s)
-{
- return true;
-}
-
-
-Json::Value GetSupportedLanguagesMarshaller::toJSON(const GetSupportedLanguages& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VR.GetSupportedLanguages");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetSupportedLanguagesMarshaller::fromJSON(const Json::Value& json,GetSupportedLanguages& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VR.GetSupportedLanguages")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesMarshaller.h
deleted file mode 100644
index a18a11f5a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETSUPPORTEDLANGUAGESMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETSUPPORTEDLANGUAGESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguages.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct GetSupportedLanguagesMarshaller
- {
- static bool checkIntegrity(GetSupportedLanguages& e);
- static bool checkIntegrityConst(const GetSupportedLanguages& e);
-
- static bool fromString(const std::string& s,GetSupportedLanguages& e);
- static const std::string toString(const GetSupportedLanguages& e);
-
- static bool fromJSON(const Json::Value& s,GetSupportedLanguages& e);
- static Json::Value toJSON(const GetSupportedLanguages& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponse.cpp
deleted file mode 100644
index fb9aea6ec..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponse.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguagesResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-GetSupportedLanguagesResponse& GetSupportedLanguagesResponse::operator =(const GetSupportedLanguagesResponse& c)
-{
- languages=c.languages;
- return *this;
-}
-
-
-GetSupportedLanguagesResponse::~GetSupportedLanguagesResponse(void)
-{
-}
-
-
-GetSupportedLanguagesResponse::GetSupportedLanguagesResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETSUPPORTEDLANGUAGESRESPONSE)
-{
-}
-
-
-GetSupportedLanguagesResponse::GetSupportedLanguagesResponse(const GetSupportedLanguagesResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__GETSUPPORTEDLANGUAGESRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::Language>& GetSupportedLanguagesResponse::get_languages(void)
-{
- return languages;
-}
-
-bool GetSupportedLanguagesResponse::set_languages(const std::vector< NsSmartDeviceLinkRPCV2::Language>& languages_)
-{
- languages=languages_;
- return true;
-}
-
-bool GetSupportedLanguagesResponse::checkIntegrity(void)
-{
- return GetSupportedLanguagesResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponseMarshaller.cpp
deleted file mode 100644
index 4c43853e3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponseMarshaller.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguagesResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/GetSupportedLanguagesResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool GetSupportedLanguagesResponseMarshaller::checkIntegrity(GetSupportedLanguagesResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetSupportedLanguagesResponseMarshaller::fromString(const std::string& s,GetSupportedLanguagesResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetSupportedLanguagesResponseMarshaller::toString(const GetSupportedLanguagesResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetSupportedLanguagesResponseMarshaller::checkIntegrityConst(const GetSupportedLanguagesResponse& s)
-{
- {
- unsigned int i=s.languages.size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value GetSupportedLanguagesResponseMarshaller::toJSON(const GetSupportedLanguagesResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("VR.GetSupportedLanguagesResponse");
-
- {
- unsigned int i=e.languages.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.languages[i]);
-
- json["result"]["languages"]=j;
- }
- return json;
-}
-
-
-bool GetSupportedLanguagesResponseMarshaller::fromJSON(const Json::Value& json,GetSupportedLanguagesResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("VR.GetSupportedLanguagesResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("languages") || !js["languages"].isArray()) return false;
- {
- unsigned int i=js["languages"].size();
- if(i<1) return false;
- if(i>100) return false;
- c.languages.resize(i);
- while(i--)
- {
- NsSmartDeviceLinkRPCV2::Language t;
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["languages"][i],t))
- return false;
- c.languages[i]=t;
- }
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponseMarshaller.h
deleted file mode 100644
index 998a5c093..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/GetSupportedLanguagesResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_GETSUPPORTEDLANGUAGESRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_GETSUPPORTEDLANGUAGESRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/GetSupportedLanguagesResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct GetSupportedLanguagesResponseMarshaller
- {
- static bool checkIntegrity(GetSupportedLanguagesResponse& e);
- static bool checkIntegrityConst(const GetSupportedLanguagesResponse& e);
-
- static bool fromString(const std::string& s,GetSupportedLanguagesResponse& e);
- static const std::string toString(const GetSupportedLanguagesResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetSupportedLanguagesResponse& e);
- static Json::Value toJSON(const GetSupportedLanguagesResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommand.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommand.cpp
deleted file mode 100644
index b40b2b0ac..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommand.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnCommand.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-OnCommand& OnCommand::operator =(const OnCommand& c)
-{
- cmdID=c.cmdID;
- appId=c.appId;
- return *this;
-}
-
-
-OnCommand::~OnCommand(void)
-{
-}
-
-
-OnCommand::OnCommand(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__ONCOMMAND)
-{
-}
-
-
-OnCommand::OnCommand(const OnCommand& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__ONCOMMAND)
-{
- *this=c;
-}
-
-
-unsigned int OnCommand::get_cmdID(void)
-{
- return cmdID;
-}
-
-bool OnCommand::set_cmdID(unsigned int cmdID_)
-{
- cmdID=cmdID_;
- return true;
-}
-
-int OnCommand::get_appId(void)
-{
- return appId;
-}
-
-bool OnCommand::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool OnCommand::checkIntegrity(void)
-{
- return OnCommandMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommandMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommandMarshaller.cpp
deleted file mode 100644
index dac3df5aa..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommandMarshaller.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnCommand.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/OnCommandMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool OnCommandMarshaller::checkIntegrity(OnCommand& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnCommandMarshaller::fromString(const std::string& s,OnCommand& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnCommandMarshaller::toString(const OnCommand& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnCommandMarshaller::checkIntegrityConst(const OnCommand& s)
-{
- if(s.cmdID>2000000000) return false;
-
- return true;
-}
-
-
-Json::Value OnCommandMarshaller::toJSON(const OnCommand& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VR.OnCommand");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["cmdID"]=Json::Value(e.cmdID);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool OnCommandMarshaller::fromJSON(const Json::Value& json,OnCommand& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VR.OnCommand")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("cmdID") || !js["cmdID"].isInt()) return false;
- c.cmdID=js["cmdID"].asInt();
- if(c.cmdID>2000000000) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommandMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommandMarshaller.h
deleted file mode 100644
index 0e523d280..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnCommandMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_ONCOMMANDMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_ONCOMMANDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnCommand.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct OnCommandMarshaller
- {
- static bool checkIntegrity(OnCommand& e);
- static bool checkIntegrityConst(const OnCommand& e);
-
- static bool fromString(const std::string& s,OnCommand& e);
- static const std::string toString(const OnCommand& e);
-
- static bool fromJSON(const Json::Value& s,OnCommand& e);
- static Json::Value toJSON(const OnCommand& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChange.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChange.cpp
deleted file mode 100644
index 4f7b7605d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChange.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnLanguageChange.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-
-OnLanguageChange& OnLanguageChange::operator =(const OnLanguageChange& c)
-{
- language=c.language;
- return *this;
-}
-
-
-OnLanguageChange::~OnLanguageChange(void)
-{
-}
-
-
-OnLanguageChange::OnLanguageChange(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__ONLANGUAGECHANGE)
-{
-}
-
-
-OnLanguageChange::OnLanguageChange(const OnLanguageChange& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_VR__ONLANGUAGECHANGE)
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::Language& OnLanguageChange::get_language(void)
-{
- return language;
-}
-
-bool OnLanguageChange::set_language(const NsSmartDeviceLinkRPCV2::Language& language_)
-{
- language=language_;
- return true;
-}
-
-bool OnLanguageChange::checkIntegrity(void)
-{
- return OnLanguageChangeMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChangeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChangeMarshaller.cpp
deleted file mode 100644
index 34d9ab363..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChangeMarshaller.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnLanguageChange.h"
-#include "../src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VR/OnLanguageChangeMarshaller.h"
-
-/*
- interface NsRPC2Communication::VR
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VR;
-
-bool OnLanguageChangeMarshaller::checkIntegrity(OnLanguageChange& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnLanguageChangeMarshaller::fromString(const std::string& s,OnLanguageChange& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnLanguageChangeMarshaller::toString(const OnLanguageChange& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnLanguageChangeMarshaller::checkIntegrityConst(const OnLanguageChange& s)
-{
- if(!NsSmartDeviceLinkRPCV2::LanguageMarshaller::checkIntegrityConst(s.language)) return false;
-
- return true;
-}
-
-
-Json::Value OnLanguageChangeMarshaller::toJSON(const OnLanguageChange& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VR.OnLanguageChange");
- json["params"]=Json::Value(Json::objectValue);
-
- json["params"]["language"]=NsSmartDeviceLinkRPCV2::LanguageMarshaller::toJSON(e.language);;
- return json;
-}
-
-
-bool OnLanguageChangeMarshaller::fromJSON(const Json::Value& json,OnLanguageChange& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VR.OnLanguageChange")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(!js.isMember("language") || !NsSmartDeviceLinkRPCV2::LanguageMarshaller::fromJSON(js["language"],c.language)) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChangeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChangeMarshaller.h
deleted file mode 100644
index b80d7b952..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VR/OnLanguageChangeMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VR_ONLANGUAGECHANGEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VR_ONLANGUAGECHANGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VR/OnLanguageChange.h"
-
-namespace NsRPC2Communication
-{
- namespace VR
- {
-
- struct OnLanguageChangeMarshaller
- {
- static bool checkIntegrity(OnLanguageChange& e);
- static bool checkIntegrityConst(const OnLanguageChange& e);
-
- static bool fromString(const std::string& s,OnLanguageChange& e);
- static const std::string toString(const OnLanguageChange& e);
-
- static bool fromJSON(const Json::Value& s,OnLanguageChange& e);
- static Json::Value toJSON(const OnLanguageChange& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCs.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCs.cpp
deleted file mode 100644
index a3c87aca2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCs.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCs.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-
-GetDTCs& GetDTCs::operator =(const GetDTCs& c)
-{
- ecuName=c.ecuName;
- if(encrypted) delete encrypted;
- encrypted= c.encrypted ? new bool(c.encrypted[0]) : 0;
- appId=c.appId;
- return *this;
-}
-
-
-GetDTCs::~GetDTCs(void)
-{
- if(encrypted) delete encrypted;
-}
-
-
-GetDTCs::GetDTCs(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETDTCS),
- encrypted(0)
-{
-}
-
-
-GetDTCs::GetDTCs(const GetDTCs& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETDTCS,c.getId())
-{
- *this=c;
-}
-
-
-unsigned int GetDTCs::get_ecuName(void)
-{
- return ecuName;
-}
-
-bool GetDTCs::set_ecuName(unsigned int ecuName_)
-{
- ecuName=ecuName_;
- return true;
-}
-
-const bool* GetDTCs::get_encrypted(void)
-{
- return encrypted;
-}
-
-bool GetDTCs::set_encrypted(const bool& encrypted_)
-{
- if(encrypted) delete encrypted;
- encrypted=new bool(encrypted_);
- return true;
-}
-
-void GetDTCs::reset_encrypted(void)
-{
- if(encrypted) delete encrypted;
- encrypted=0;
-}
-
-int GetDTCs::get_appId(void)
-{
- return appId;
-}
-
-bool GetDTCs::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool GetDTCs::checkIntegrity(void)
-{
- return GetDTCsMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsMarshaller.cpp
deleted file mode 100644
index f02c40215..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsMarshaller.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCs.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetDTCsMarshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-bool GetDTCsMarshaller::checkIntegrity(GetDTCs& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetDTCsMarshaller::fromString(const std::string& s,GetDTCs& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetDTCsMarshaller::toString(const GetDTCs& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetDTCsMarshaller::checkIntegrityConst(const GetDTCs& s)
-{
- if(s.ecuName>65535) return false;
-
- return true;
-}
-
-
-Json::Value GetDTCsMarshaller::toJSON(const GetDTCs& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VehicleInfo.GetDTCs");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["ecuName"]=Json::Value(e.ecuName);;
- if(e.encrypted)
- json["params"]["encrypted"]=Json::Value(e.encrypted[0]);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool GetDTCsMarshaller::fromJSON(const Json::Value& json,GetDTCs& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VehicleInfo.GetDTCs")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("ecuName") || !js["ecuName"].isInt()) return false;
- c.ecuName=js["ecuName"].asInt();
- if(c.ecuName>65535) return false;
-
- if(c.encrypted) delete c.encrypted;
- c.encrypted=0;
- if(js.isMember("encrypted"))
- {
- if(!js["encrypted"].isBool()) return false;
- c.encrypted=new bool();
- c.encrypted[0]=js["encrypted"].asBool();
-
- }
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsMarshaller.h
deleted file mode 100644
index aae1bde8d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETDTCSMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETDTCSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCs.h"
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- struct GetDTCsMarshaller
- {
- static bool checkIntegrity(GetDTCs& e);
- static bool checkIntegrityConst(const GetDTCs& e);
-
- static bool fromString(const std::string& s,GetDTCs& e);
- static const std::string toString(const GetDTCs& e);
-
- static bool fromJSON(const Json::Value& s,GetDTCs& e);
- static Json::Value toJSON(const GetDTCs& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponse.cpp
deleted file mode 100644
index 04d170d97..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponse.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCsResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-
-GetDTCsResponse& GetDTCsResponse::operator =(const GetDTCsResponse& c)
-{
- if(dtcList) delete dtcList;
- dtcList= c.dtcList ? new std::vector<NsSmartDeviceLinkRPCV2::DTC>(c.dtcList[0]) : 0;
- return *this;
-}
-
-
-GetDTCsResponse::~GetDTCsResponse(void)
-{
- if(dtcList) delete dtcList;
-}
-
-
-GetDTCsResponse::GetDTCsResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETDTCSRESPONSE),
- dtcList(0)
-{
-}
-
-
-GetDTCsResponse::GetDTCsResponse(const GetDTCsResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETDTCSRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::DTC>* GetDTCsResponse::get_dtcList(void)
-{
- return dtcList;
-}
-
-bool GetDTCsResponse::set_dtcList(const std::vector< NsSmartDeviceLinkRPCV2::DTC>& dtcList_)
-{
- if(dtcList) delete dtcList;
- dtcList=new std::vector< NsSmartDeviceLinkRPCV2::DTC>(dtcList_);
- return true;
-}
-
-void GetDTCsResponse::reset_dtcList(void)
-{
- if(dtcList) delete dtcList;
- dtcList=0;
-}
-
-bool GetDTCsResponse::checkIntegrity(void)
-{
- return GetDTCsResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponseMarshaller.cpp
deleted file mode 100644
index c2cd4ec6c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponseMarshaller.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCsResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/DTCMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetDTCsResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-bool GetDTCsResponseMarshaller::checkIntegrity(GetDTCsResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetDTCsResponseMarshaller::fromString(const std::string& s,GetDTCsResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetDTCsResponseMarshaller::toString(const GetDTCsResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetDTCsResponseMarshaller::checkIntegrityConst(const GetDTCsResponse& s)
-{
- if(s.dtcList)
- {
- unsigned int i=s.dtcList[0].size();
- if(i<1) return false;
- if(i>100) return false;
- }
-
- return true;
-}
-
-
-Json::Value GetDTCsResponseMarshaller::toJSON(const GetDTCsResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("VehicleInfo.GetDTCsResponse");
-
- if(e.dtcList)
- {
- unsigned int i=e.dtcList[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::DTCMarshaller::toJSON(e.dtcList[0][i]);
-
- json["result"]["dtcList"]=j;
- }
- return json;
-}
-
-
-bool GetDTCsResponseMarshaller::fromJSON(const Json::Value& json,GetDTCsResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("VehicleInfo.GetDTCsResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(c.dtcList) delete c.dtcList;
- c.dtcList=0;
- if(js.isMember("dtcList"))
- {
- if(!js["dtcList"].isArray()) return false;
- unsigned int i=js["dtcList"].size();
- if(i<1) return false;
- if(i>100) return false;
-
- c.dtcList=new std::vector<NsSmartDeviceLinkRPCV2::DTC>();
- c.dtcList->resize(js["dtcList"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::DTCMarshaller::fromJSON(js["dtcList"][i],c.dtcList[0][i])) return false;
- }
-
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponseMarshaller.h
deleted file mode 100644
index 9737b7f96..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetDTCsResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETDTCSRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETDTCSRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetDTCsResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- struct GetDTCsResponseMarshaller
- {
- static bool checkIntegrity(GetDTCsResponse& e);
- static bool checkIntegrityConst(const GetDTCsResponse& e);
-
- static bool fromString(const std::string& s,GetDTCsResponse& e);
- static const std::string toString(const GetDTCsResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetDTCsResponse& e);
- static Json::Value toJSON(const GetDTCsResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleData.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleData.cpp
deleted file mode 100644
index 89ea015b3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleData.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleData.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-
-GetVehicleData& GetVehicleData::operator =(const GetVehicleData& c)
-{
- dataType=c.dataType;
- appId=c.appId;
- return *this;
-}
-
-
-GetVehicleData::~GetVehicleData(void)
-{
-}
-
-
-GetVehicleData::GetVehicleData(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLEDATA)
-{
-}
-
-
-GetVehicleData::GetVehicleData(const GetVehicleData& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLEDATA,c.getId())
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::VehicleDataType& GetVehicleData::get_dataType(void)
-{
- return dataType;
-}
-
-bool GetVehicleData::set_dataType(const NsSmartDeviceLinkRPCV2::VehicleDataType& dataType_)
-{
- dataType=dataType_;
- return true;
-}
-
-int GetVehicleData::get_appId(void)
-{
- return appId;
-}
-
-bool GetVehicleData::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool GetVehicleData::checkIntegrity(void)
-{
- return GetVehicleDataMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataMarshaller.cpp
deleted file mode 100644
index 338a3852c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataMarshaller.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleData.h"
-#include "../src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetVehicleDataMarshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-bool GetVehicleDataMarshaller::checkIntegrity(GetVehicleData& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetVehicleDataMarshaller::fromString(const std::string& s,GetVehicleData& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetVehicleDataMarshaller::toString(const GetVehicleData& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetVehicleDataMarshaller::checkIntegrityConst(const GetVehicleData& s)
-{
- if(!NsSmartDeviceLinkRPCV2::VehicleDataTypeMarshaller::checkIntegrityConst(s.dataType)) return false;
-
- return true;
-}
-
-
-Json::Value GetVehicleDataMarshaller::toJSON(const GetVehicleData& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VehicleInfo.GetVehicleData");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["dataType"]=NsSmartDeviceLinkRPCV2::VehicleDataTypeMarshaller::toJSON(e.dataType);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool GetVehicleDataMarshaller::fromJSON(const Json::Value& json,GetVehicleData& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VehicleInfo.GetVehicleData")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("dataType") || !NsSmartDeviceLinkRPCV2::VehicleDataTypeMarshaller::fromJSON(js["dataType"],c.dataType)) return false;
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataMarshaller.h
deleted file mode 100644
index d5137291a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLEDATAMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLEDATAMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleData.h"
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- struct GetVehicleDataMarshaller
- {
- static bool checkIntegrity(GetVehicleData& e);
- static bool checkIntegrityConst(const GetVehicleData& e);
-
- static bool fromString(const std::string& s,GetVehicleData& e);
- static const std::string toString(const GetVehicleData& e);
-
- static bool fromJSON(const Json::Value& s,GetVehicleData& e);
- static Json::Value toJSON(const GetVehicleData& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.cpp
deleted file mode 100644
index 0f26b8428..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.cpp
+++ /dev/null
@@ -1,447 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-
-GetVehicleDataResponse& GetVehicleDataResponse::operator =(const GetVehicleDataResponse& c)
-{
- if(gps) delete gps;
- gps= c.gps ? new NsSmartDeviceLinkRPCV2::GPSData(c.gps[0]) : 0;
- if(speed) delete speed;
- speed= c.speed ? new float(c.speed[0]) : 0;
- if(rpm) delete rpm;
- rpm= c.rpm ? new unsigned int(c.rpm[0]) : 0;
- if(fuelLevel) delete fuelLevel;
- fuelLevel= c.fuelLevel ? new float(c.fuelLevel[0]) : 0;
- if(avgFuelEconomy) delete avgFuelEconomy;
- avgFuelEconomy= c.avgFuelEconomy ? new float(c.avgFuelEconomy[0]) : 0;
- if(batteryVoltage) delete batteryVoltage;
- batteryVoltage= c.batteryVoltage ? new float(c.batteryVoltage[0]) : 0;
- if(externalTemperature) delete externalTemperature;
- externalTemperature= c.externalTemperature ? new float(c.externalTemperature[0]) : 0;
- if(vin) delete vin;
- vin= c.vin ? new std::string(c.vin[0]) : 0;
- if(prndl) delete prndl;
- prndl= c.prndl ? new NsSmartDeviceLinkRPCV2::PRNDL(c.prndl[0]) : 0;
- if(tirePressure) delete tirePressure;
- tirePressure= c.tirePressure ? new NsSmartDeviceLinkRPCV2::TireStatus(c.tirePressure[0]) : 0;
- if(batteryPackVoltage) delete batteryPackVoltage;
- batteryPackVoltage= c.batteryPackVoltage ? new float(c.batteryPackVoltage[0]) : 0;
- if(batteryPackCurrent) delete batteryPackCurrent;
- batteryPackCurrent= c.batteryPackCurrent ? new float(c.batteryPackCurrent[0]) : 0;
- if(batteryPackTemperature) delete batteryPackTemperature;
- batteryPackTemperature= c.batteryPackTemperature ? new int(c.batteryPackTemperature[0]) : 0;
- if(engineTorque) delete engineTorque;
- engineTorque= c.engineTorque ? new int(c.engineTorque[0]) : 0;
- if(odometer) delete odometer;
- odometer= c.odometer ? new unsigned int(c.odometer[0]) : 0;
- if(tripOdometer) delete tripOdometer;
- tripOdometer= c.tripOdometer ? new unsigned int(c.tripOdometer[0]) : 0;
- if(satRadioESN) delete satRadioESN;
- satRadioESN= c.satRadioESN ? new std::string(c.satRadioESN[0]) : 0;
- return *this;
-}
-
-
-GetVehicleDataResponse::~GetVehicleDataResponse(void)
-{
- if(gps) delete gps;
- if(speed) delete speed;
- if(rpm) delete rpm;
- if(fuelLevel) delete fuelLevel;
- if(avgFuelEconomy) delete avgFuelEconomy;
- if(batteryVoltage) delete batteryVoltage;
- if(externalTemperature) delete externalTemperature;
- if(vin) delete vin;
- if(prndl) delete prndl;
- if(tirePressure) delete tirePressure;
- if(batteryPackVoltage) delete batteryPackVoltage;
- if(batteryPackCurrent) delete batteryPackCurrent;
- if(batteryPackTemperature) delete batteryPackTemperature;
- if(engineTorque) delete engineTorque;
- if(odometer) delete odometer;
- if(tripOdometer) delete tripOdometer;
- if(satRadioESN) delete satRadioESN;
-}
-
-
-GetVehicleDataResponse::GetVehicleDataResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLEDATARESPONSE),
- gps(0),
- speed(0),
- rpm(0),
- fuelLevel(0),
- avgFuelEconomy(0),
- batteryVoltage(0),
- externalTemperature(0),
- vin(0),
- prndl(0),
- tirePressure(0),
- batteryPackVoltage(0),
- batteryPackCurrent(0),
- batteryPackTemperature(0),
- engineTorque(0),
- odometer(0),
- tripOdometer(0),
- satRadioESN(0)
-{
-}
-
-
-GetVehicleDataResponse::GetVehicleDataResponse(const GetVehicleDataResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLEDATARESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::GPSData* GetVehicleDataResponse::get_gps(void)
-{
- return gps;
-}
-
-bool GetVehicleDataResponse::set_gps(const NsSmartDeviceLinkRPCV2::GPSData& gps_)
-{
- if(gps) delete gps;
- gps=new NsSmartDeviceLinkRPCV2::GPSData(gps_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_gps(void)
-{
- if(gps) delete gps;
- gps=0;
-}
-
-const float* GetVehicleDataResponse::get_speed(void)
-{
- return speed;
-}
-
-bool GetVehicleDataResponse::set_speed(const float& speed_)
-{
- if(speed) delete speed;
- speed=new float(speed_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_speed(void)
-{
- if(speed) delete speed;
- speed=0;
-}
-
-const unsigned int* GetVehicleDataResponse::get_rpm(void)
-{
- return rpm;
-}
-
-bool GetVehicleDataResponse::set_rpm(const unsigned int& rpm_)
-{
- if(rpm) delete rpm;
- rpm=new unsigned int(rpm_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_rpm(void)
-{
- if(rpm) delete rpm;
- rpm=0;
-}
-
-const float* GetVehicleDataResponse::get_fuelLevel(void)
-{
- return fuelLevel;
-}
-
-bool GetVehicleDataResponse::set_fuelLevel(const float& fuelLevel_)
-{
- if(fuelLevel) delete fuelLevel;
- fuelLevel=new float(fuelLevel_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_fuelLevel(void)
-{
- if(fuelLevel) delete fuelLevel;
- fuelLevel=0;
-}
-
-const float* GetVehicleDataResponse::get_avgFuelEconomy(void)
-{
- return avgFuelEconomy;
-}
-
-bool GetVehicleDataResponse::set_avgFuelEconomy(const float& avgFuelEconomy_)
-{
- if(avgFuelEconomy) delete avgFuelEconomy;
- avgFuelEconomy=new float(avgFuelEconomy_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_avgFuelEconomy(void)
-{
- if(avgFuelEconomy) delete avgFuelEconomy;
- avgFuelEconomy=0;
-}
-
-const float* GetVehicleDataResponse::get_batteryVoltage(void)
-{
- return batteryVoltage;
-}
-
-bool GetVehicleDataResponse::set_batteryVoltage(const float& batteryVoltage_)
-{
- if(batteryVoltage) delete batteryVoltage;
- batteryVoltage=new float(batteryVoltage_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_batteryVoltage(void)
-{
- if(batteryVoltage) delete batteryVoltage;
- batteryVoltage=0;
-}
-
-const float* GetVehicleDataResponse::get_externalTemperature(void)
-{
- return externalTemperature;
-}
-
-bool GetVehicleDataResponse::set_externalTemperature(const float& externalTemperature_)
-{
- if(externalTemperature) delete externalTemperature;
- externalTemperature=new float(externalTemperature_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_externalTemperature(void)
-{
- if(externalTemperature) delete externalTemperature;
- externalTemperature=0;
-}
-
-const std::string* GetVehicleDataResponse::get_vin(void)
-{
- return vin;
-}
-
-bool GetVehicleDataResponse::set_vin(const std::string& vin_)
-{
- if(vin) delete vin;
- vin=new std::string(vin_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_vin(void)
-{
- if(vin) delete vin;
- vin=0;
-}
-
-const NsSmartDeviceLinkRPCV2::PRNDL* GetVehicleDataResponse::get_prndl(void)
-{
- return prndl;
-}
-
-bool GetVehicleDataResponse::set_prndl(const NsSmartDeviceLinkRPCV2::PRNDL& prndl_)
-{
- if(prndl) delete prndl;
- prndl=new NsSmartDeviceLinkRPCV2::PRNDL(prndl_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_prndl(void)
-{
- if(prndl) delete prndl;
- prndl=0;
-}
-
-const NsSmartDeviceLinkRPCV2::TireStatus* GetVehicleDataResponse::get_tirePressure(void)
-{
- return tirePressure;
-}
-
-bool GetVehicleDataResponse::set_tirePressure(const NsSmartDeviceLinkRPCV2::TireStatus& tirePressure_)
-{
- if(tirePressure) delete tirePressure;
- tirePressure=new NsSmartDeviceLinkRPCV2::TireStatus(tirePressure_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_tirePressure(void)
-{
- if(tirePressure) delete tirePressure;
- tirePressure=0;
-}
-
-const float* GetVehicleDataResponse::get_batteryPackVoltage(void)
-{
- return batteryPackVoltage;
-}
-
-bool GetVehicleDataResponse::set_batteryPackVoltage(const float& batteryPackVoltage_)
-{
- if(batteryPackVoltage) delete batteryPackVoltage;
- batteryPackVoltage=new float(batteryPackVoltage_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_batteryPackVoltage(void)
-{
- if(batteryPackVoltage) delete batteryPackVoltage;
- batteryPackVoltage=0;
-}
-
-const float* GetVehicleDataResponse::get_batteryPackCurrent(void)
-{
- return batteryPackCurrent;
-}
-
-bool GetVehicleDataResponse::set_batteryPackCurrent(const float& batteryPackCurrent_)
-{
- if(batteryPackCurrent) delete batteryPackCurrent;
- batteryPackCurrent=new float(batteryPackCurrent_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_batteryPackCurrent(void)
-{
- if(batteryPackCurrent) delete batteryPackCurrent;
- batteryPackCurrent=0;
-}
-
-const int* GetVehicleDataResponse::get_batteryPackTemperature(void)
-{
- return batteryPackTemperature;
-}
-
-bool GetVehicleDataResponse::set_batteryPackTemperature(const int& batteryPackTemperature_)
-{
- if(batteryPackTemperature) delete batteryPackTemperature;
- batteryPackTemperature=new int(batteryPackTemperature_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_batteryPackTemperature(void)
-{
- if(batteryPackTemperature) delete batteryPackTemperature;
- batteryPackTemperature=0;
-}
-
-const int* GetVehicleDataResponse::get_engineTorque(void)
-{
- return engineTorque;
-}
-
-bool GetVehicleDataResponse::set_engineTorque(const int& engineTorque_)
-{
- if(engineTorque) delete engineTorque;
- engineTorque=new int(engineTorque_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_engineTorque(void)
-{
- if(engineTorque) delete engineTorque;
- engineTorque=0;
-}
-
-const unsigned int* GetVehicleDataResponse::get_odometer(void)
-{
- return odometer;
-}
-
-bool GetVehicleDataResponse::set_odometer(const unsigned int& odometer_)
-{
- if(odometer) delete odometer;
- odometer=new unsigned int(odometer_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_odometer(void)
-{
- if(odometer) delete odometer;
- odometer=0;
-}
-
-const unsigned int* GetVehicleDataResponse::get_tripOdometer(void)
-{
- return tripOdometer;
-}
-
-bool GetVehicleDataResponse::set_tripOdometer(const unsigned int& tripOdometer_)
-{
- if(tripOdometer) delete tripOdometer;
- tripOdometer=new unsigned int(tripOdometer_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_tripOdometer(void)
-{
- if(tripOdometer) delete tripOdometer;
- tripOdometer=0;
-}
-
-const std::string* GetVehicleDataResponse::get_satRadioESN(void)
-{
- return satRadioESN;
-}
-
-bool GetVehicleDataResponse::set_satRadioESN(const std::string& satRadioESN_)
-{
- if(satRadioESN) delete satRadioESN;
- satRadioESN=new std::string(satRadioESN_);
- return true;
-}
-
-void GetVehicleDataResponse::reset_satRadioESN(void)
-{
- if(satRadioESN) delete satRadioESN;
- satRadioESN=0;
-}
-
-bool GetVehicleDataResponse::checkIntegrity(void)
-{
- return GetVehicleDataResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponseMarshaller.cpp
deleted file mode 100644
index b6179c15f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponseMarshaller.cpp
+++ /dev/null
@@ -1,376 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/GPSDataMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/TireStatusMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetVehicleDataResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-bool GetVehicleDataResponseMarshaller::checkIntegrity(GetVehicleDataResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetVehicleDataResponseMarshaller::fromString(const std::string& s,GetVehicleDataResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetVehicleDataResponseMarshaller::toString(const GetVehicleDataResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetVehicleDataResponseMarshaller::checkIntegrityConst(const GetVehicleDataResponse& s)
-{
- if(s.gps && (!NsSmartDeviceLinkRPCV2::GPSDataMarshaller::checkIntegrityConst(s.gps[0]))) return false;
-
- if(s.speed && (s.speed[0]<-100 || s.speed[0]>500)) return false;
-
- if(s.rpm && (s.rpm[0]>20000)) return false;
-
- if(s.fuelLevel && (s.fuelLevel[0]<0 || s.fuelLevel[0]>100)) return false;
-
- if(s.avgFuelEconomy && (s.avgFuelEconomy[0]<0 || s.avgFuelEconomy[0]>7000)) return false;
-
- if(s.batteryVoltage && (s.batteryVoltage[0]<0 || s.batteryVoltage[0]>26)) return false;
-
- if(s.externalTemperature && (s.externalTemperature[0]<-40 || s.externalTemperature[0]>100)) return false;
-
- if(s.vin && (s.vin[0].length()>17)) return false;
-
- if(s.prndl && (!NsSmartDeviceLinkRPCV2::PRNDLMarshaller::checkIntegrityConst(s.prndl[0]))) return false;
-
- if(s.tirePressure && (!NsSmartDeviceLinkRPCV2::TireStatusMarshaller::checkIntegrityConst(s.tirePressure[0]))) return false;
-
- if(s.batteryPackVoltage && (s.batteryPackVoltage[0]<-1000 || s.batteryPackVoltage[0]>1000)) return false;
-
- if(s.batteryPackCurrent && (s.batteryPackCurrent[0]<-1000 || s.batteryPackCurrent[0]>1000)) return false;
-
- if(s.batteryPackTemperature && (s.batteryPackTemperature[0]<-50 || s.batteryPackTemperature[0]>250)) return false;
-
- if(s.engineTorque && (s.engineTorque[0]<-10000 || s.engineTorque[0]>55000)) return false;
-
- if(s.odometer && (s.odometer[0]>2000000)) return false;
-
- if(s.tripOdometer && (s.tripOdometer[0]>2000000)) return false;
-
- if(s.satRadioESN && (s.satRadioESN[0].length()>500)) return false;
-
- return true;
-}
-
-
-Json::Value GetVehicleDataResponseMarshaller::toJSON(const GetVehicleDataResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("VehicleInfo.GetVehicleDataResponse");
-
- if(e.gps)
- json["result"]["gps"]=NsSmartDeviceLinkRPCV2::GPSDataMarshaller::toJSON(e.gps[0]);;
- if(e.speed)
- json["result"]["speed"]=Json::Value(e.speed[0]);;
- if(e.rpm)
- json["result"]["rpm"]=Json::Value(e.rpm[0]);;
- if(e.fuelLevel)
- json["result"]["fuelLevel"]=Json::Value(e.fuelLevel[0]);;
- if(e.avgFuelEconomy)
- json["result"]["avgFuelEconomy"]=Json::Value(e.avgFuelEconomy[0]);;
- if(e.batteryVoltage)
- json["result"]["batteryVoltage"]=Json::Value(e.batteryVoltage[0]);;
- if(e.externalTemperature)
- json["result"]["externalTemperature"]=Json::Value(e.externalTemperature[0]);;
- if(e.vin)
- json["result"]["vin"]=Json::Value(e.vin[0]);;
- if(e.prndl)
- json["result"]["prndl"]=NsSmartDeviceLinkRPCV2::PRNDLMarshaller::toJSON(e.prndl[0]);;
- if(e.tirePressure)
- json["result"]["tirePressure"]=NsSmartDeviceLinkRPCV2::TireStatusMarshaller::toJSON(e.tirePressure[0]);;
- if(e.batteryPackVoltage)
- json["result"]["batteryPackVoltage"]=Json::Value(e.batteryPackVoltage[0]);;
- if(e.batteryPackCurrent)
- json["result"]["batteryPackCurrent"]=Json::Value(e.batteryPackCurrent[0]);;
- if(e.batteryPackTemperature)
- json["result"]["batteryPackTemperature"]=Json::Value(e.batteryPackTemperature[0]);;
- if(e.engineTorque)
- json["result"]["engineTorque"]=Json::Value(e.engineTorque[0]);;
- if(e.odometer)
- json["result"]["odometer"]=Json::Value(e.odometer[0]);;
- if(e.tripOdometer)
- json["result"]["tripOdometer"]=Json::Value(e.tripOdometer[0]);;
- if(e.satRadioESN)
- json["result"]["satRadioESN"]=Json::Value(e.satRadioESN[0]);;
- return json;
-}
-
-
-bool GetVehicleDataResponseMarshaller::fromJSON(const Json::Value& json,GetVehicleDataResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("VehicleInfo.GetVehicleDataResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(c.gps) delete c.gps;
- c.gps=0;
- if(js.isMember("gps"))
- {
- c.gps=new NsSmartDeviceLinkRPCV2::GPSData();
- if(!NsSmartDeviceLinkRPCV2::GPSDataMarshaller::fromJSON(js["gps"],c.gps[0])) return false;
- }
-
- if(c.speed) delete c.speed;
- c.speed=0;
- if(js.isMember("speed"))
- {
- if(!js["speed"].isNumeric()) return false;
- c.speed=new float();
- c.speed[0]=js["speed"].asDouble();
- if(c.speed[0]<-100 || c.speed[0]>500) return false;
-
- }
-
- if(c.rpm) delete c.rpm;
- c.rpm=0;
- if(js.isMember("rpm"))
- {
- if(!js["rpm"].isInt()) return false;
- c.rpm=new unsigned int();
- c.rpm[0]=js["rpm"].asInt();
- if(c.rpm[0]>20000) return false;
-
- }
-
- if(c.fuelLevel) delete c.fuelLevel;
- c.fuelLevel=0;
- if(js.isMember("fuelLevel"))
- {
- if(!js["fuelLevel"].isNumeric()) return false;
- c.fuelLevel=new float();
- c.fuelLevel[0]=js["fuelLevel"].asDouble();
- if(c.fuelLevel[0]<0 || c.fuelLevel[0]>100) return false;
-
- }
-
- if(c.avgFuelEconomy) delete c.avgFuelEconomy;
- c.avgFuelEconomy=0;
- if(js.isMember("avgFuelEconomy"))
- {
- if(!js["avgFuelEconomy"].isNumeric()) return false;
- c.avgFuelEconomy=new float();
- c.avgFuelEconomy[0]=js["avgFuelEconomy"].asDouble();
- if(c.avgFuelEconomy[0]<0 || c.avgFuelEconomy[0]>7000) return false;
-
- }
-
- if(c.batteryVoltage) delete c.batteryVoltage;
- c.batteryVoltage=0;
- if(js.isMember("batteryVoltage"))
- {
- if(!js["batteryVoltage"].isNumeric()) return false;
- c.batteryVoltage=new float();
- c.batteryVoltage[0]=js["batteryVoltage"].asDouble();
- if(c.batteryVoltage[0]<0 || c.batteryVoltage[0]>26) return false;
-
- }
-
- if(c.externalTemperature) delete c.externalTemperature;
- c.externalTemperature=0;
- if(js.isMember("externalTemperature"))
- {
- if(!js["externalTemperature"].isNumeric()) return false;
- c.externalTemperature=new float();
- c.externalTemperature[0]=js["externalTemperature"].asDouble();
- if(c.externalTemperature[0]<-40 || c.externalTemperature[0]>100) return false;
-
- }
-
- if(c.vin) delete c.vin;
- c.vin=0;
- if(js.isMember("vin"))
- {
- if(!js["vin"].isString()) return false;
- c.vin=new std::string();
- c.vin[0]=js["vin"].asString();
- if(c.vin[0].length()>17) return false;
-
- }
-
- if(c.prndl) delete c.prndl;
- c.prndl=0;
- if(js.isMember("prndl"))
- {
- c.prndl=new NsSmartDeviceLinkRPCV2::PRNDL();
- if(!NsSmartDeviceLinkRPCV2::PRNDLMarshaller::fromJSON(js["prndl"],c.prndl[0])) return false;
- }
-
- if(c.tirePressure) delete c.tirePressure;
- c.tirePressure=0;
- if(js.isMember("tirePressure"))
- {
- c.tirePressure=new NsSmartDeviceLinkRPCV2::TireStatus();
- if(!NsSmartDeviceLinkRPCV2::TireStatusMarshaller::fromJSON(js["tirePressure"],c.tirePressure[0])) return false;
- }
-
- if(c.batteryPackVoltage) delete c.batteryPackVoltage;
- c.batteryPackVoltage=0;
- if(js.isMember("batteryPackVoltage"))
- {
- if(!js["batteryPackVoltage"].isNumeric()) return false;
- c.batteryPackVoltage=new float();
- c.batteryPackVoltage[0]=js["batteryPackVoltage"].asDouble();
- if(c.batteryPackVoltage[0]<-1000 || c.batteryPackVoltage[0]>1000) return false;
-
- }
-
- if(c.batteryPackCurrent) delete c.batteryPackCurrent;
- c.batteryPackCurrent=0;
- if(js.isMember("batteryPackCurrent"))
- {
- if(!js["batteryPackCurrent"].isNumeric()) return false;
- c.batteryPackCurrent=new float();
- c.batteryPackCurrent[0]=js["batteryPackCurrent"].asDouble();
- if(c.batteryPackCurrent[0]<-1000 || c.batteryPackCurrent[0]>1000) return false;
-
- }
-
- if(c.batteryPackTemperature) delete c.batteryPackTemperature;
- c.batteryPackTemperature=0;
- if(js.isMember("batteryPackTemperature"))
- {
- if(!js["batteryPackTemperature"].isInt()) return false;
- c.batteryPackTemperature=new int();
- c.batteryPackTemperature[0]=js["batteryPackTemperature"].asInt();
- if(c.batteryPackTemperature[0]<-50 || c.batteryPackTemperature[0]>250) return false;
-
- }
-
- if(c.engineTorque) delete c.engineTorque;
- c.engineTorque=0;
- if(js.isMember("engineTorque"))
- {
- if(!js["engineTorque"].isInt()) return false;
- c.engineTorque=new int();
- c.engineTorque[0]=js["engineTorque"].asInt();
- if(c.engineTorque[0]<-10000 || c.engineTorque[0]>55000) return false;
-
- }
-
- if(c.odometer) delete c.odometer;
- c.odometer=0;
- if(js.isMember("odometer"))
- {
- if(!js["odometer"].isInt()) return false;
- c.odometer=new unsigned int();
- c.odometer[0]=js["odometer"].asInt();
- if(c.odometer[0]>2000000) return false;
-
- }
-
- if(c.tripOdometer) delete c.tripOdometer;
- c.tripOdometer=0;
- if(js.isMember("tripOdometer"))
- {
- if(!js["tripOdometer"].isInt()) return false;
- c.tripOdometer=new unsigned int();
- c.tripOdometer[0]=js["tripOdometer"].asInt();
- if(c.tripOdometer[0]>2000000) return false;
-
- }
-
- if(c.satRadioESN) delete c.satRadioESN;
- c.satRadioESN=0;
- if(js.isMember("satRadioESN"))
- {
- if(!js["satRadioESN"].isString()) return false;
- c.satRadioESN=new std::string();
- c.satRadioESN[0]=js["satRadioESN"].asString();
- if(c.satRadioESN[0].length()>500) return false;
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponseMarshaller.h
deleted file mode 100644
index becf1489a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleDataResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLEDATARESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLEDATARESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleDataResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- struct GetVehicleDataResponseMarshaller
- {
- static bool checkIntegrity(GetVehicleDataResponse& e);
- static bool checkIntegrityConst(const GetVehicleDataResponse& e);
-
- static bool fromString(const std::string& s,GetVehicleDataResponse& e);
- static const std::string toString(const GetVehicleDataResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetVehicleDataResponse& e);
- static Json::Value toJSON(const GetVehicleDataResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleType.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleType.cpp
deleted file mode 100644
index 0530d3d7e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleType.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleType.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-
-GetVehicleType& GetVehicleType::operator =(const GetVehicleType& c)
-{
- return *this;
-}
-
-
-GetVehicleType::~GetVehicleType(void)
-{
-}
-
-
-GetVehicleType::GetVehicleType(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLETYPE)
-{
-}
-
-
-GetVehicleType::GetVehicleType(const GetVehicleType& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLETYPE,c.getId())
-{
- *this=c;
-}
-
-
-bool GetVehicleType::checkIntegrity(void)
-{
- return GetVehicleTypeMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeMarshaller.cpp
deleted file mode 100644
index 86ed85b95..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleType.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetVehicleTypeMarshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-bool GetVehicleTypeMarshaller::checkIntegrity(GetVehicleType& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetVehicleTypeMarshaller::fromString(const std::string& s,GetVehicleType& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetVehicleTypeMarshaller::toString(const GetVehicleType& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetVehicleTypeMarshaller::checkIntegrityConst(const GetVehicleType& s)
-{
- return true;
-}
-
-
-Json::Value GetVehicleTypeMarshaller::toJSON(const GetVehicleType& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VehicleInfo.GetVehicleType");
-
- json["id"]=Json::Value(e.getId());
- return json;
-}
-
-
-bool GetVehicleTypeMarshaller::fromJSON(const Json::Value& json,GetVehicleType& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VehicleInfo.GetVehicleType")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeMarshaller.h
deleted file mode 100644
index f70919c4b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLETYPEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLETYPEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleType.h"
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- struct GetVehicleTypeMarshaller
- {
- static bool checkIntegrity(GetVehicleType& e);
- static bool checkIntegrityConst(const GetVehicleType& e);
-
- static bool fromString(const std::string& s,GetVehicleType& e);
- static const std::string toString(const GetVehicleType& e);
-
- static bool fromJSON(const Json::Value& s,GetVehicleType& e);
- static Json::Value toJSON(const GetVehicleType& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.cpp
deleted file mode 100644
index edd196ab1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-
-GetVehicleTypeResponse& GetVehicleTypeResponse::operator =(const GetVehicleTypeResponse& c)
-{
- vehicleType=c.vehicleType;
- return *this;
-}
-
-
-GetVehicleTypeResponse::~GetVehicleTypeResponse(void)
-{
-}
-
-
-GetVehicleTypeResponse::GetVehicleTypeResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLETYPERESPONSE)
-{
-}
-
-
-GetVehicleTypeResponse::GetVehicleTypeResponse(const GetVehicleTypeResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__GETVEHICLETYPERESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::VehicleType& GetVehicleTypeResponse::get_vehicleType(void)
-{
- return vehicleType;
-}
-
-bool GetVehicleTypeResponse::set_vehicleType(const NsSmartDeviceLinkRPCV2::VehicleType& vehicleType_)
-{
- vehicleType=vehicleType_;
- return true;
-}
-
-bool GetVehicleTypeResponse::checkIntegrity(void)
-{
- return GetVehicleTypeResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponseMarshaller.cpp
deleted file mode 100644
index aca11b6b4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponseMarshaller.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/VehicleTypeMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/GetVehicleTypeResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-bool GetVehicleTypeResponseMarshaller::checkIntegrity(GetVehicleTypeResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetVehicleTypeResponseMarshaller::fromString(const std::string& s,GetVehicleTypeResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetVehicleTypeResponseMarshaller::toString(const GetVehicleTypeResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetVehicleTypeResponseMarshaller::checkIntegrityConst(const GetVehicleTypeResponse& s)
-{
- if(!NsSmartDeviceLinkRPCV2::VehicleTypeMarshaller::checkIntegrityConst(s.vehicleType)) return false;
-
- return true;
-}
-
-
-Json::Value GetVehicleTypeResponseMarshaller::toJSON(const GetVehicleTypeResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("VehicleInfo.GetVehicleTypeResponse");
-
- json["result"]["vehicleType"]=NsSmartDeviceLinkRPCV2::VehicleTypeMarshaller::toJSON(e.vehicleType);;
- return json;
-}
-
-
-bool GetVehicleTypeResponseMarshaller::fromJSON(const Json::Value& json,GetVehicleTypeResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("VehicleInfo.GetVehicleTypeResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(!js.isMember("vehicleType") || !NsSmartDeviceLinkRPCV2::VehicleTypeMarshaller::fromJSON(js["vehicleType"],c.vehicleType)) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponseMarshaller.h
deleted file mode 100644
index 5bf7d997e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLETYPERESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_GETVEHICLETYPERESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/GetVehicleTypeResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- struct GetVehicleTypeResponseMarshaller
- {
- static bool checkIntegrity(GetVehicleTypeResponse& e);
- static bool checkIntegrityConst(const GetVehicleTypeResponse& e);
-
- static bool fromString(const std::string& s,GetVehicleTypeResponse& e);
- static const std::string toString(const GetVehicleTypeResponse& e);
-
- static bool fromJSON(const Json::Value& s,GetVehicleTypeResponse& e);
- static Json::Value toJSON(const GetVehicleTypeResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleData.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleData.cpp
deleted file mode 100644
index 966f64c20..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleData.cpp
+++ /dev/null
@@ -1,447 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/OnVehicleData.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-
-OnVehicleData& OnVehicleData::operator =(const OnVehicleData& c)
-{
- if(gps) delete gps;
- gps= c.gps ? new NsSmartDeviceLinkRPCV2::GPSData(c.gps[0]) : 0;
- if(speed) delete speed;
- speed= c.speed ? new float(c.speed[0]) : 0;
- if(rpm) delete rpm;
- rpm= c.rpm ? new unsigned int(c.rpm[0]) : 0;
- if(fuelLevel) delete fuelLevel;
- fuelLevel= c.fuelLevel ? new float(c.fuelLevel[0]) : 0;
- if(avgFuelEconomy) delete avgFuelEconomy;
- avgFuelEconomy= c.avgFuelEconomy ? new float(c.avgFuelEconomy[0]) : 0;
- if(batteryVoltage) delete batteryVoltage;
- batteryVoltage= c.batteryVoltage ? new float(c.batteryVoltage[0]) : 0;
- if(externalTemperature) delete externalTemperature;
- externalTemperature= c.externalTemperature ? new float(c.externalTemperature[0]) : 0;
- if(vin) delete vin;
- vin= c.vin ? new std::string(c.vin[0]) : 0;
- if(prndl) delete prndl;
- prndl= c.prndl ? new NsSmartDeviceLinkRPCV2::PRNDL(c.prndl[0]) : 0;
- if(tirePressure) delete tirePressure;
- tirePressure= c.tirePressure ? new NsSmartDeviceLinkRPCV2::TireStatus(c.tirePressure[0]) : 0;
- if(batteryPackVoltage) delete batteryPackVoltage;
- batteryPackVoltage= c.batteryPackVoltage ? new float(c.batteryPackVoltage[0]) : 0;
- if(batteryPackCurrent) delete batteryPackCurrent;
- batteryPackCurrent= c.batteryPackCurrent ? new float(c.batteryPackCurrent[0]) : 0;
- if(batteryPackTemperature) delete batteryPackTemperature;
- batteryPackTemperature= c.batteryPackTemperature ? new int(c.batteryPackTemperature[0]) : 0;
- if(engineTorque) delete engineTorque;
- engineTorque= c.engineTorque ? new int(c.engineTorque[0]) : 0;
- if(odometer) delete odometer;
- odometer= c.odometer ? new unsigned int(c.odometer[0]) : 0;
- if(tripOdometer) delete tripOdometer;
- tripOdometer= c.tripOdometer ? new unsigned int(c.tripOdometer[0]) : 0;
- if(genericbinary) delete genericbinary;
- genericbinary= c.genericbinary ? new std::string(c.genericbinary[0]) : 0;
- return *this;
-}
-
-
-OnVehicleData::~OnVehicleData(void)
-{
- if(gps) delete gps;
- if(speed) delete speed;
- if(rpm) delete rpm;
- if(fuelLevel) delete fuelLevel;
- if(avgFuelEconomy) delete avgFuelEconomy;
- if(batteryVoltage) delete batteryVoltage;
- if(externalTemperature) delete externalTemperature;
- if(vin) delete vin;
- if(prndl) delete prndl;
- if(tirePressure) delete tirePressure;
- if(batteryPackVoltage) delete batteryPackVoltage;
- if(batteryPackCurrent) delete batteryPackCurrent;
- if(batteryPackTemperature) delete batteryPackTemperature;
- if(engineTorque) delete engineTorque;
- if(odometer) delete odometer;
- if(tripOdometer) delete tripOdometer;
- if(genericbinary) delete genericbinary;
-}
-
-
-OnVehicleData::OnVehicleData(void) :
- RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__ONVEHICLEDATA),
- gps(0),
- speed(0),
- rpm(0),
- fuelLevel(0),
- avgFuelEconomy(0),
- batteryVoltage(0),
- externalTemperature(0),
- vin(0),
- prndl(0),
- tirePressure(0),
- batteryPackVoltage(0),
- batteryPackCurrent(0),
- batteryPackTemperature(0),
- engineTorque(0),
- odometer(0),
- tripOdometer(0),
- genericbinary(0)
-{
-}
-
-
-OnVehicleData::OnVehicleData(const OnVehicleData& c) : RPC2Notification(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__ONVEHICLEDATA)
-{
- *this=c;
-}
-
-
-const NsSmartDeviceLinkRPCV2::GPSData* OnVehicleData::get_gps(void)
-{
- return gps;
-}
-
-bool OnVehicleData::set_gps(const NsSmartDeviceLinkRPCV2::GPSData& gps_)
-{
- if(gps) delete gps;
- gps=new NsSmartDeviceLinkRPCV2::GPSData(gps_);
- return true;
-}
-
-void OnVehicleData::reset_gps(void)
-{
- if(gps) delete gps;
- gps=0;
-}
-
-const float* OnVehicleData::get_speed(void)
-{
- return speed;
-}
-
-bool OnVehicleData::set_speed(const float& speed_)
-{
- if(speed) delete speed;
- speed=new float(speed_);
- return true;
-}
-
-void OnVehicleData::reset_speed(void)
-{
- if(speed) delete speed;
- speed=0;
-}
-
-const unsigned int* OnVehicleData::get_rpm(void)
-{
- return rpm;
-}
-
-bool OnVehicleData::set_rpm(const unsigned int& rpm_)
-{
- if(rpm) delete rpm;
- rpm=new unsigned int(rpm_);
- return true;
-}
-
-void OnVehicleData::reset_rpm(void)
-{
- if(rpm) delete rpm;
- rpm=0;
-}
-
-const float* OnVehicleData::get_fuelLevel(void)
-{
- return fuelLevel;
-}
-
-bool OnVehicleData::set_fuelLevel(const float& fuelLevel_)
-{
- if(fuelLevel) delete fuelLevel;
- fuelLevel=new float(fuelLevel_);
- return true;
-}
-
-void OnVehicleData::reset_fuelLevel(void)
-{
- if(fuelLevel) delete fuelLevel;
- fuelLevel=0;
-}
-
-const float* OnVehicleData::get_avgFuelEconomy(void)
-{
- return avgFuelEconomy;
-}
-
-bool OnVehicleData::set_avgFuelEconomy(const float& avgFuelEconomy_)
-{
- if(avgFuelEconomy) delete avgFuelEconomy;
- avgFuelEconomy=new float(avgFuelEconomy_);
- return true;
-}
-
-void OnVehicleData::reset_avgFuelEconomy(void)
-{
- if(avgFuelEconomy) delete avgFuelEconomy;
- avgFuelEconomy=0;
-}
-
-const float* OnVehicleData::get_batteryVoltage(void)
-{
- return batteryVoltage;
-}
-
-bool OnVehicleData::set_batteryVoltage(const float& batteryVoltage_)
-{
- if(batteryVoltage) delete batteryVoltage;
- batteryVoltage=new float(batteryVoltage_);
- return true;
-}
-
-void OnVehicleData::reset_batteryVoltage(void)
-{
- if(batteryVoltage) delete batteryVoltage;
- batteryVoltage=0;
-}
-
-const float* OnVehicleData::get_externalTemperature(void)
-{
- return externalTemperature;
-}
-
-bool OnVehicleData::set_externalTemperature(const float& externalTemperature_)
-{
- if(externalTemperature) delete externalTemperature;
- externalTemperature=new float(externalTemperature_);
- return true;
-}
-
-void OnVehicleData::reset_externalTemperature(void)
-{
- if(externalTemperature) delete externalTemperature;
- externalTemperature=0;
-}
-
-const std::string* OnVehicleData::get_vin(void)
-{
- return vin;
-}
-
-bool OnVehicleData::set_vin(const std::string& vin_)
-{
- if(vin) delete vin;
- vin=new std::string(vin_);
- return true;
-}
-
-void OnVehicleData::reset_vin(void)
-{
- if(vin) delete vin;
- vin=0;
-}
-
-const NsSmartDeviceLinkRPCV2::PRNDL* OnVehicleData::get_prndl(void)
-{
- return prndl;
-}
-
-bool OnVehicleData::set_prndl(const NsSmartDeviceLinkRPCV2::PRNDL& prndl_)
-{
- if(prndl) delete prndl;
- prndl=new NsSmartDeviceLinkRPCV2::PRNDL(prndl_);
- return true;
-}
-
-void OnVehicleData::reset_prndl(void)
-{
- if(prndl) delete prndl;
- prndl=0;
-}
-
-const NsSmartDeviceLinkRPCV2::TireStatus* OnVehicleData::get_tirePressure(void)
-{
- return tirePressure;
-}
-
-bool OnVehicleData::set_tirePressure(const NsSmartDeviceLinkRPCV2::TireStatus& tirePressure_)
-{
- if(tirePressure) delete tirePressure;
- tirePressure=new NsSmartDeviceLinkRPCV2::TireStatus(tirePressure_);
- return true;
-}
-
-void OnVehicleData::reset_tirePressure(void)
-{
- if(tirePressure) delete tirePressure;
- tirePressure=0;
-}
-
-const float* OnVehicleData::get_batteryPackVoltage(void)
-{
- return batteryPackVoltage;
-}
-
-bool OnVehicleData::set_batteryPackVoltage(const float& batteryPackVoltage_)
-{
- if(batteryPackVoltage) delete batteryPackVoltage;
- batteryPackVoltage=new float(batteryPackVoltage_);
- return true;
-}
-
-void OnVehicleData::reset_batteryPackVoltage(void)
-{
- if(batteryPackVoltage) delete batteryPackVoltage;
- batteryPackVoltage=0;
-}
-
-const float* OnVehicleData::get_batteryPackCurrent(void)
-{
- return batteryPackCurrent;
-}
-
-bool OnVehicleData::set_batteryPackCurrent(const float& batteryPackCurrent_)
-{
- if(batteryPackCurrent) delete batteryPackCurrent;
- batteryPackCurrent=new float(batteryPackCurrent_);
- return true;
-}
-
-void OnVehicleData::reset_batteryPackCurrent(void)
-{
- if(batteryPackCurrent) delete batteryPackCurrent;
- batteryPackCurrent=0;
-}
-
-const int* OnVehicleData::get_batteryPackTemperature(void)
-{
- return batteryPackTemperature;
-}
-
-bool OnVehicleData::set_batteryPackTemperature(const int& batteryPackTemperature_)
-{
- if(batteryPackTemperature) delete batteryPackTemperature;
- batteryPackTemperature=new int(batteryPackTemperature_);
- return true;
-}
-
-void OnVehicleData::reset_batteryPackTemperature(void)
-{
- if(batteryPackTemperature) delete batteryPackTemperature;
- batteryPackTemperature=0;
-}
-
-const int* OnVehicleData::get_engineTorque(void)
-{
- return engineTorque;
-}
-
-bool OnVehicleData::set_engineTorque(const int& engineTorque_)
-{
- if(engineTorque) delete engineTorque;
- engineTorque=new int(engineTorque_);
- return true;
-}
-
-void OnVehicleData::reset_engineTorque(void)
-{
- if(engineTorque) delete engineTorque;
- engineTorque=0;
-}
-
-const unsigned int* OnVehicleData::get_odometer(void)
-{
- return odometer;
-}
-
-bool OnVehicleData::set_odometer(const unsigned int& odometer_)
-{
- if(odometer) delete odometer;
- odometer=new unsigned int(odometer_);
- return true;
-}
-
-void OnVehicleData::reset_odometer(void)
-{
- if(odometer) delete odometer;
- odometer=0;
-}
-
-const unsigned int* OnVehicleData::get_tripOdometer(void)
-{
- return tripOdometer;
-}
-
-bool OnVehicleData::set_tripOdometer(const unsigned int& tripOdometer_)
-{
- if(tripOdometer) delete tripOdometer;
- tripOdometer=new unsigned int(tripOdometer_);
- return true;
-}
-
-void OnVehicleData::reset_tripOdometer(void)
-{
- if(tripOdometer) delete tripOdometer;
- tripOdometer=0;
-}
-
-const std::string* OnVehicleData::get_genericbinary(void)
-{
- return genericbinary;
-}
-
-bool OnVehicleData::set_genericbinary(const std::string& genericbinary_)
-{
- if(genericbinary) delete genericbinary;
- genericbinary=new std::string(genericbinary_);
- return true;
-}
-
-void OnVehicleData::reset_genericbinary(void)
-{
- if(genericbinary) delete genericbinary;
- genericbinary=0;
-}
-
-bool OnVehicleData::checkIntegrity(void)
-{
- return OnVehicleDataMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleDataMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleDataMarshaller.cpp
deleted file mode 100644
index cf8a85b3a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleDataMarshaller.cpp
+++ /dev/null
@@ -1,364 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/OnVehicleData.h"
-#include "../src/SDLRPCObjectsImpl/V2/GPSDataMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/TireStatusMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/OnVehicleDataMarshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-bool OnVehicleDataMarshaller::checkIntegrity(OnVehicleData& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnVehicleDataMarshaller::fromString(const std::string& s,OnVehicleData& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnVehicleDataMarshaller::toString(const OnVehicleData& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnVehicleDataMarshaller::checkIntegrityConst(const OnVehicleData& s)
-{
- if(s.gps && (!NsSmartDeviceLinkRPCV2::GPSDataMarshaller::checkIntegrityConst(s.gps[0]))) return false;
-
- if(s.speed && (s.speed[0]<-100 || s.speed[0]>500)) return false;
-
- if(s.rpm && (s.rpm[0]>20000)) return false;
-
- if(s.fuelLevel && (s.fuelLevel[0]<0 || s.fuelLevel[0]>100)) return false;
-
- if(s.avgFuelEconomy && (s.avgFuelEconomy[0]<0 || s.avgFuelEconomy[0]>7000)) return false;
-
- if(s.batteryVoltage && (s.batteryVoltage[0]<0 || s.batteryVoltage[0]>26)) return false;
-
- if(s.externalTemperature && (s.externalTemperature[0]<-40 || s.externalTemperature[0]>100)) return false;
-
- if(s.vin && (s.vin[0].length()>17)) return false;
-
- if(s.prndl && (!NsSmartDeviceLinkRPCV2::PRNDLMarshaller::checkIntegrityConst(s.prndl[0]))) return false;
-
- if(s.tirePressure && (!NsSmartDeviceLinkRPCV2::TireStatusMarshaller::checkIntegrityConst(s.tirePressure[0]))) return false;
-
- if(s.batteryPackVoltage && (s.batteryPackVoltage[0]<-1000 || s.batteryPackVoltage[0]>1000)) return false;
-
- if(s.batteryPackCurrent && (s.batteryPackCurrent[0]<-1000 || s.batteryPackCurrent[0]>1000)) return false;
-
- if(s.batteryPackTemperature && (s.batteryPackTemperature[0]<-50 || s.batteryPackTemperature[0]>250)) return false;
-
- if(s.engineTorque && (s.engineTorque[0]<-10000 || s.engineTorque[0]>55000)) return false;
-
- if(s.odometer && (s.odometer[0]>2000000)) return false;
-
- if(s.tripOdometer && (s.tripOdometer[0]>2000000)) return false;
-
- if(s.genericbinary && (s.genericbinary[0].length()>500)) return false;
-
- return true;
-}
-
-
-Json::Value OnVehicleDataMarshaller::toJSON(const OnVehicleData& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VehicleInfo.OnVehicleData");
- json["params"]=Json::Value(Json::objectValue);
-
- if(e.gps)
- json["params"]["gps"]=NsSmartDeviceLinkRPCV2::GPSDataMarshaller::toJSON(e.gps[0]);;
- if(e.speed)
- json["params"]["speed"]=Json::Value(e.speed[0]);;
- if(e.rpm)
- json["params"]["rpm"]=Json::Value(e.rpm[0]);;
- if(e.fuelLevel)
- json["params"]["fuelLevel"]=Json::Value(e.fuelLevel[0]);;
- if(e.avgFuelEconomy)
- json["params"]["avgFuelEconomy"]=Json::Value(e.avgFuelEconomy[0]);;
- if(e.batteryVoltage)
- json["params"]["batteryVoltage"]=Json::Value(e.batteryVoltage[0]);;
- if(e.externalTemperature)
- json["params"]["externalTemperature"]=Json::Value(e.externalTemperature[0]);;
- if(e.vin)
- json["params"]["vin"]=Json::Value(e.vin[0]);;
- if(e.prndl)
- json["params"]["prndl"]=NsSmartDeviceLinkRPCV2::PRNDLMarshaller::toJSON(e.prndl[0]);;
- if(e.tirePressure)
- json["params"]["tirePressure"]=NsSmartDeviceLinkRPCV2::TireStatusMarshaller::toJSON(e.tirePressure[0]);;
- if(e.batteryPackVoltage)
- json["params"]["batteryPackVoltage"]=Json::Value(e.batteryPackVoltage[0]);;
- if(e.batteryPackCurrent)
- json["params"]["batteryPackCurrent"]=Json::Value(e.batteryPackCurrent[0]);;
- if(e.batteryPackTemperature)
- json["params"]["batteryPackTemperature"]=Json::Value(e.batteryPackTemperature[0]);;
- if(e.engineTorque)
- json["params"]["engineTorque"]=Json::Value(e.engineTorque[0]);;
- if(e.odometer)
- json["params"]["odometer"]=Json::Value(e.odometer[0]);;
- if(e.tripOdometer)
- json["params"]["tripOdometer"]=Json::Value(e.tripOdometer[0]);;
- if(e.genericbinary)
- json["params"]["genericbinary"]=Json::Value(e.genericbinary[0]);;
- return json;
-}
-
-
-bool OnVehicleDataMarshaller::fromJSON(const Json::Value& json,OnVehicleData& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VehicleInfo.OnVehicleData")) return false;
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
-
- if(c.gps) delete c.gps;
- c.gps=0;
- if(js.isMember("gps"))
- {
- c.gps=new NsSmartDeviceLinkRPCV2::GPSData();
- if(!NsSmartDeviceLinkRPCV2::GPSDataMarshaller::fromJSON(js["gps"],c.gps[0])) return false;
- }
-
- if(c.speed) delete c.speed;
- c.speed=0;
- if(js.isMember("speed"))
- {
- if(!js["speed"].isNumeric()) return false;
- c.speed=new float();
- c.speed[0]=js["speed"].asDouble();
- if(c.speed[0]<-100 || c.speed[0]>500) return false;
-
- }
-
- if(c.rpm) delete c.rpm;
- c.rpm=0;
- if(js.isMember("rpm"))
- {
- if(!js["rpm"].isInt()) return false;
- c.rpm=new unsigned int();
- c.rpm[0]=js["rpm"].asInt();
- if(c.rpm[0]>20000) return false;
-
- }
-
- if(c.fuelLevel) delete c.fuelLevel;
- c.fuelLevel=0;
- if(js.isMember("fuelLevel"))
- {
- if(!js["fuelLevel"].isNumeric()) return false;
- c.fuelLevel=new float();
- c.fuelLevel[0]=js["fuelLevel"].asDouble();
- if(c.fuelLevel[0]<0 || c.fuelLevel[0]>100) return false;
-
- }
-
- if(c.avgFuelEconomy) delete c.avgFuelEconomy;
- c.avgFuelEconomy=0;
- if(js.isMember("avgFuelEconomy"))
- {
- if(!js["avgFuelEconomy"].isNumeric()) return false;
- c.avgFuelEconomy=new float();
- c.avgFuelEconomy[0]=js["avgFuelEconomy"].asDouble();
- if(c.avgFuelEconomy[0]<0 || c.avgFuelEconomy[0]>7000) return false;
-
- }
-
- if(c.batteryVoltage) delete c.batteryVoltage;
- c.batteryVoltage=0;
- if(js.isMember("batteryVoltage"))
- {
- if(!js["batteryVoltage"].isNumeric()) return false;
- c.batteryVoltage=new float();
- c.batteryVoltage[0]=js["batteryVoltage"].asDouble();
- if(c.batteryVoltage[0]<0 || c.batteryVoltage[0]>26) return false;
-
- }
-
- if(c.externalTemperature) delete c.externalTemperature;
- c.externalTemperature=0;
- if(js.isMember("externalTemperature"))
- {
- if(!js["externalTemperature"].isNumeric()) return false;
- c.externalTemperature=new float();
- c.externalTemperature[0]=js["externalTemperature"].asDouble();
- if(c.externalTemperature[0]<-40 || c.externalTemperature[0]>100) return false;
-
- }
-
- if(c.vin) delete c.vin;
- c.vin=0;
- if(js.isMember("vin"))
- {
- if(!js["vin"].isString()) return false;
- c.vin=new std::string();
- c.vin[0]=js["vin"].asString();
- if(c.vin[0].length()>17) return false;
-
- }
-
- if(c.prndl) delete c.prndl;
- c.prndl=0;
- if(js.isMember("prndl"))
- {
- c.prndl=new NsSmartDeviceLinkRPCV2::PRNDL();
- if(!NsSmartDeviceLinkRPCV2::PRNDLMarshaller::fromJSON(js["prndl"],c.prndl[0])) return false;
- }
-
- if(c.tirePressure) delete c.tirePressure;
- c.tirePressure=0;
- if(js.isMember("tirePressure"))
- {
- c.tirePressure=new NsSmartDeviceLinkRPCV2::TireStatus();
- if(!NsSmartDeviceLinkRPCV2::TireStatusMarshaller::fromJSON(js["tirePressure"],c.tirePressure[0])) return false;
- }
-
- if(c.batteryPackVoltage) delete c.batteryPackVoltage;
- c.batteryPackVoltage=0;
- if(js.isMember("batteryPackVoltage"))
- {
- if(!js["batteryPackVoltage"].isNumeric()) return false;
- c.batteryPackVoltage=new float();
- c.batteryPackVoltage[0]=js["batteryPackVoltage"].asDouble();
- if(c.batteryPackVoltage[0]<-1000 || c.batteryPackVoltage[0]>1000) return false;
-
- }
-
- if(c.batteryPackCurrent) delete c.batteryPackCurrent;
- c.batteryPackCurrent=0;
- if(js.isMember("batteryPackCurrent"))
- {
- if(!js["batteryPackCurrent"].isNumeric()) return false;
- c.batteryPackCurrent=new float();
- c.batteryPackCurrent[0]=js["batteryPackCurrent"].asDouble();
- if(c.batteryPackCurrent[0]<-1000 || c.batteryPackCurrent[0]>1000) return false;
-
- }
-
- if(c.batteryPackTemperature) delete c.batteryPackTemperature;
- c.batteryPackTemperature=0;
- if(js.isMember("batteryPackTemperature"))
- {
- if(!js["batteryPackTemperature"].isInt()) return false;
- c.batteryPackTemperature=new int();
- c.batteryPackTemperature[0]=js["batteryPackTemperature"].asInt();
- if(c.batteryPackTemperature[0]<-50 || c.batteryPackTemperature[0]>250) return false;
-
- }
-
- if(c.engineTorque) delete c.engineTorque;
- c.engineTorque=0;
- if(js.isMember("engineTorque"))
- {
- if(!js["engineTorque"].isInt()) return false;
- c.engineTorque=new int();
- c.engineTorque[0]=js["engineTorque"].asInt();
- if(c.engineTorque[0]<-10000 || c.engineTorque[0]>55000) return false;
-
- }
-
- if(c.odometer) delete c.odometer;
- c.odometer=0;
- if(js.isMember("odometer"))
- {
- if(!js["odometer"].isInt()) return false;
- c.odometer=new unsigned int();
- c.odometer[0]=js["odometer"].asInt();
- if(c.odometer[0]>2000000) return false;
-
- }
-
- if(c.tripOdometer) delete c.tripOdometer;
- c.tripOdometer=0;
- if(js.isMember("tripOdometer"))
- {
- if(!js["tripOdometer"].isInt()) return false;
- c.tripOdometer=new unsigned int();
- c.tripOdometer[0]=js["tripOdometer"].asInt();
- if(c.tripOdometer[0]>2000000) return false;
-
- }
-
- if(c.genericbinary) delete c.genericbinary;
- c.genericbinary=0;
- if(js.isMember("genericbinary"))
- {
- if(!js["genericbinary"].isString()) return false;
- c.genericbinary=new std::string();
- c.genericbinary[0]=js["genericbinary"].asString();
- if(c.genericbinary[0].length()>500) return false;
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleDataMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleDataMarshaller.h
deleted file mode 100644
index 912f4c6a4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/OnVehicleDataMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_ONVEHICLEDATAMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_ONVEHICLEDATAMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/OnVehicleData.h"
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- struct OnVehicleDataMarshaller
- {
- static bool checkIntegrity(OnVehicleData& e);
- static bool checkIntegrityConst(const OnVehicleData& e);
-
- static bool fromString(const std::string& s,OnVehicleData& e);
- static const std::string toString(const OnVehicleData& e);
-
- static bool fromJSON(const Json::Value& s,OnVehicleData& e);
- static Json::Value toJSON(const OnVehicleData& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDID.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDID.cpp
deleted file mode 100644
index a860aa8b9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDID.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDID.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-
-ReadDID& ReadDID::operator =(const ReadDID& c)
-{
- ecuName=c.ecuName;
- didLocation=c.didLocation;
- if(encrypted) delete encrypted;
- encrypted= c.encrypted ? new bool(c.encrypted[0]) : 0;
- appId=c.appId;
- return *this;
-}
-
-
-ReadDID::~ReadDID(void)
-{
- if(encrypted) delete encrypted;
-}
-
-
-ReadDID::ReadDID(void) :
- RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__READDID),
- encrypted(0)
-{
-}
-
-
-ReadDID::ReadDID(const ReadDID& c) : RPC2Request(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__READDID,c.getId())
-{
- *this=c;
-}
-
-
-unsigned int ReadDID::get_ecuName(void)
-{
- return ecuName;
-}
-
-bool ReadDID::set_ecuName(unsigned int ecuName_)
-{
- ecuName=ecuName_;
- return true;
-}
-
-const std::vector< unsigned int>& ReadDID::get_didLocation(void)
-{
- return didLocation;
-}
-
-bool ReadDID::set_didLocation(const std::vector< unsigned int>& didLocation_)
-{
- didLocation=didLocation_;
- return true;
-}
-
-const bool* ReadDID::get_encrypted(void)
-{
- return encrypted;
-}
-
-bool ReadDID::set_encrypted(const bool& encrypted_)
-{
- if(encrypted) delete encrypted;
- encrypted=new bool(encrypted_);
- return true;
-}
-
-void ReadDID::reset_encrypted(void)
-{
- if(encrypted) delete encrypted;
- encrypted=0;
-}
-
-int ReadDID::get_appId(void)
-{
- return appId;
-}
-
-bool ReadDID::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool ReadDID::checkIntegrity(void)
-{
- return ReadDIDMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDMarshaller.cpp
deleted file mode 100644
index 3d0eb43eb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDMarshaller.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDID.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/ReadDIDMarshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-bool ReadDIDMarshaller::checkIntegrity(ReadDID& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ReadDIDMarshaller::fromString(const std::string& s,ReadDID& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ReadDIDMarshaller::toString(const ReadDID& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ReadDIDMarshaller::checkIntegrityConst(const ReadDID& s)
-{
- if(s.ecuName>65535) return false;
-
- {
- unsigned int i=s.didLocation.size();
- if(i<0) return false;
- if(i>1000) return false;
- while(i--)
- {
- if(s.didLocation[i]>65535) return false;
- }
- }
-
- return true;
-}
-
-
-Json::Value ReadDIDMarshaller::toJSON(const ReadDID& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["method"]=Json::Value("VehicleInfo.ReadDID");
-
- json["id"]=Json::Value(e.getId());
- json["params"]=Json::Value(Json::objectValue);
- json["params"]["ecuName"]=Json::Value(e.ecuName);;
- {
- unsigned int i=e.didLocation.size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=Json::Value(e.didLocation[i]);
-
- json["params"]["didLocation"]=j;
- }
- if(e.encrypted)
- json["params"]["encrypted"]=Json::Value(e.encrypted[0]);;
- json["params"]["appId"]=Json::Value(e.appId);;
- return json;
-}
-
-
-bool ReadDIDMarshaller::fromJSON(const Json::Value& json,ReadDID& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("method") || !json["method"].isString() || json["method"].asString().compare("VehicleInfo.ReadDID")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("params")) return false;
-
- Json::Value js=json["params"];
- if(!js.isObject()) return false;
- if(!js.isMember("ecuName") || !js["ecuName"].isInt()) return false;
- c.ecuName=js["ecuName"].asInt();
- if(c.ecuName>65535) return false;
-
- if(!js.isMember("didLocation") || !js["didLocation"].isArray())
- return false;
- {
- c.didLocation.clear();
- unsigned int i=js["didLocation"].size();
- if(i<0) return false;
- if(i>1000) return false;
- c.didLocation.resize(i);
- while(i--)
- {
- if(!js["didLocation"][i].isInt())
- return false;
- c.didLocation[i]=js["didLocation"][i].asInt();
- if(c.didLocation[i]>65535) return false;
-
- }
- }
-
-
- if(c.encrypted) delete c.encrypted;
- c.encrypted=0;
- if(js.isMember("encrypted"))
- {
- if(!js["encrypted"].isBool()) return false;
- c.encrypted=new bool();
- c.encrypted[0]=js["encrypted"].asBool();
-
- }
-
- if(!js.isMember("appId") || !js["appId"].isInt()) return false;
- c.appId=js["appId"].asInt();
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDMarshaller.h
deleted file mode 100644
index 3d5b431ff..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_READDIDMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_READDIDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDID.h"
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- struct ReadDIDMarshaller
- {
- static bool checkIntegrity(ReadDID& e);
- static bool checkIntegrityConst(const ReadDID& e);
-
- static bool fromString(const std::string& s,ReadDID& e);
- static const std::string toString(const ReadDID& e);
-
- static bool fromJSON(const Json::Value& s,ReadDID& e);
- static Json::Value toJSON(const ReadDID& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponse.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponse.cpp
deleted file mode 100644
index 010903695..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponse.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDIDResponse.h"
-#include "../src/../include/JSONHandler/RPC2Objects/Marshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-
-ReadDIDResponse& ReadDIDResponse::operator =(const ReadDIDResponse& c)
-{
- if(dataResult) delete dataResult;
- dataResult= c.dataResult ? new std::vector<NsSmartDeviceLinkRPCV2::VehicleDataResultCode>(c.dataResult[0]) : 0;
- if(data) delete data;
- data= c.data ? new std::vector<std::string>(c.data[0]) : 0;
- return *this;
-}
-
-
-ReadDIDResponse::~ReadDIDResponse(void)
-{
- if(dataResult) delete dataResult;
- if(data) delete data;
-}
-
-
-ReadDIDResponse::ReadDIDResponse(void) :
- RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__READDIDRESPONSE),
- dataResult(0),
- data(0)
-{
-}
-
-
-ReadDIDResponse::ReadDIDResponse(const ReadDIDResponse& c) : RPC2Response(Marshaller::METHOD_NSRPC2COMMUNICATION_VEHICLEINFO__READDIDRESPONSE,c.getId(),c.getResult())
-{
- *this=c;
-}
-
-
-const std::vector< NsSmartDeviceLinkRPCV2::VehicleDataResultCode>* ReadDIDResponse::get_dataResult(void)
-{
- return dataResult;
-}
-
-bool ReadDIDResponse::set_dataResult(const std::vector< NsSmartDeviceLinkRPCV2::VehicleDataResultCode>& dataResult_)
-{
- if(dataResult) delete dataResult;
- dataResult=new std::vector< NsSmartDeviceLinkRPCV2::VehicleDataResultCode>(dataResult_);
- return true;
-}
-
-void ReadDIDResponse::reset_dataResult(void)
-{
- if(dataResult) delete dataResult;
- dataResult=0;
-}
-
-const std::vector< std::string>* ReadDIDResponse::get_data(void)
-{
- return data;
-}
-
-bool ReadDIDResponse::set_data(const std::vector< std::string>& data_)
-{
- if(data) delete data;
- data=new std::vector< std::string>(data_);
- return true;
-}
-
-void ReadDIDResponse::reset_data(void)
-{
- if(data) delete data;
- data=0;
-}
-
-bool ReadDIDResponse::checkIntegrity(void)
-{
- return ReadDIDResponseMarshaller::checkIntegrity(*this);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponseMarshaller.cpp
deleted file mode 100644
index 618c98f11..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponseMarshaller.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDIDResponse.h"
-#include "../src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.h"
-#include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
-#include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/VehicleInfo/ReadDIDResponseMarshaller.h"
-
-/*
- interface NsRPC2Communication::VehicleInfo
- version 1.2
- generated at Thu Jan 24 06:41:15 2013
- source stamp Wed Jan 23 13:56:28 2013
- author RC
-*/
-
-using namespace NsRPC2Communication::VehicleInfo;
-
-bool ReadDIDResponseMarshaller::checkIntegrity(ReadDIDResponse& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ReadDIDResponseMarshaller::fromString(const std::string& s,ReadDIDResponse& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ReadDIDResponseMarshaller::toString(const ReadDIDResponse& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ReadDIDResponseMarshaller::checkIntegrityConst(const ReadDIDResponse& s)
-{
- if(s.dataResult)
- {
- unsigned int i=s.dataResult[0].size();
- if(i<0) return false;
- if(i>1000) return false;
- }
-
- if(s.data)
- {
- unsigned int i=s.data[0].size();
- if(i<0) return false;
- if(i>1000) return false;
- while(i--)
- {
- if(s.data[0][i].length()>5000) return false;
- }
- }
-
- return true;
-}
-
-
-Json::Value ReadDIDResponseMarshaller::toJSON(const ReadDIDResponse& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["jsonrpc"]=Json::Value("2.0");
- json["id"]=Json::Value(e.getId());
- json["result"]=Json::Value(Json::objectValue);
- NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
- json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
- json["result"]["method"]=Json::Value("VehicleInfo.ReadDIDResponse");
-
- if(e.dataResult)
- {
- unsigned int i=e.dataResult[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=NsSmartDeviceLinkRPCV2::VehicleDataResultCodeMarshaller::toJSON(e.dataResult[0][i]);
-
- json["result"]["dataResult"]=j;
- }
- if(e.data)
- {
- unsigned int i=e.data[0].size();
- Json::Value j=Json::Value(Json::arrayValue);
- j.resize(i);
- while(i--)
- j[i]=Json::Value(e.data[0][i]);
-
- json["result"]["data"]=j;
- }
- return json;
-}
-
-
-bool ReadDIDResponseMarshaller::fromJSON(const Json::Value& json,ReadDIDResponse& c)
-{
- try
- {
- if(!json.isObject()) return false;
- if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0")) return false;
- if(!json.isMember("id") || !json["id"].isInt()) return false;
- c.setId(json["id"].asInt());
-
- if(!json.isMember("result")) return false;
-
- Json::Value js=json["result"];
- if(!js.isObject()) return false;
-
- NsSmartDeviceLinkRPCV2::Result r;
- if(!js.isMember("resultCode") || !js["resultCode"].isString()) return false;
- if(!js.isMember("method") || !js["method"].isString()) return false;
- if(js["method"].asString().compare("VehicleInfo.ReadDIDResponse")) return false;
-
- if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r)) return false;
- c.setResult(r.get());
- if(c.dataResult) delete c.dataResult;
- c.dataResult=0;
- if(js.isMember("dataResult"))
- {
- if(!js["dataResult"].isArray()) return false;
- unsigned int i=js["dataResult"].size();
- if(i<0) return false;
- if(i>1000) return false;
-
- c.dataResult=new std::vector<NsSmartDeviceLinkRPCV2::VehicleDataResultCode>();
- c.dataResult->resize(js["dataResult"].size());
-
- while(i--)
- if(!NsSmartDeviceLinkRPCV2::VehicleDataResultCodeMarshaller::fromJSON(js["dataResult"][i],c.dataResult[0][i])) return false;
- }
-
-
- if(c.data) delete c.data;
- c.data=0;
- if(js.isMember("data"))
- {
- if(!js["data"].isArray()) return false;
- unsigned int i=js["data"].size();
- if(i<0) return false;
- if(i>1000) return false;
-
- c.data=new std::vector<std::string>();
- c.data->resize(js["data"].size());
-
- while(i--)
- {
- if(!js["data"][i].isString())
- return false;
-
- c.data[0][i]=js["data"][i].asString();
- if(c.data[0][i].length()>5000) return false;
- }
- }
-
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponseMarshaller.h
deleted file mode 100644
index 597656970..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2ObjectsImpl/NsRPC2Communication/VehicleInfo/ReadDIDResponseMarshaller.h
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSRPC2COMMUNICATION_VEHICLEINFO_READDIDRESPONSEMARSHALLER_INCLUDE
-#define NSRPC2COMMUNICATION_VEHICLEINFO_READDIDRESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/VehicleInfo/ReadDIDResponse.h"
-
-namespace NsRPC2Communication
-{
- namespace VehicleInfo
- {
-
- struct ReadDIDResponseMarshaller
- {
- static bool checkIntegrity(ReadDIDResponse& e);
- static bool checkIntegrityConst(const ReadDIDResponse& e);
-
- static bool fromString(const std::string& s,ReadDIDResponse& e);
- static const std::string toString(const ReadDIDResponse& e);
-
- static bool fromJSON(const Json::Value& s,ReadDIDResponse& e);
- static Json::Value toJSON(const ReadDIDResponse& e);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2Request.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2Request.cpp
deleted file mode 100644
index 66ace9032..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2Request.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
-* \file RPC2Request.cpp
-* \brief RPC2Request class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "JSONHandler/RPC2Request.h"
-
-using namespace NsRPC2Communication;
-
-
-RPC2Request::RPC2Request() :
-RPC2Command(REQUEST)
-, mId(0)
-{
-}
-
-RPC2Request::RPC2Request(int method) :
-RPC2Command(REQUEST, method)
-, mId(0)
-{
-}
-
-RPC2Request::RPC2Request(int method,unsigned int id) :
-RPC2Command(REQUEST, method)
-, mId(id)
-{
-}
-
-RPC2Request::~RPC2Request()
-{
-}
-
-void RPC2Request::setId(unsigned int id)
-{
- mId=id;
-}
-
-unsigned int RPC2Request::getId() const
-{
- return mId;
-}
-
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/RPC2Response.cpp b/SDL_Core/src/components/JSONHandler/src/RPC2Response.cpp
deleted file mode 100644
index 1b343ebf0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/RPC2Response.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
-* \file RPC2Response.cpp
-* \brief RPC2Response class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "JSONHandler/RPC2Response.h"
-
-using namespace NsRPC2Communication;
-
-
-RPC2Response::RPC2Response() :
-RPC2Command(RESPONSE)
-, mId(0)
-, mResultCode(-1)
-{
-}
-
-RPC2Response::RPC2Response(int method) :
-RPC2Command(RESPONSE, method)
-, mId(0)
-, mResultCode(-1)
-{
-}
-
-
-RPC2Response::RPC2Response(int method,unsigned int id) :
-RPC2Command(RESPONSE, method)
-, mId(id)
-, mResultCode(-1)
-{
-}
-
-
-RPC2Response::RPC2Response(int method,unsigned int id,int res) :
-RPC2Command(RESPONSE, method)
-, mId(id)
-, mResultCode(res)
-{
-}
-
-
-RPC2Response::~RPC2Response()
-{
-}
-
-void RPC2Response::setId(unsigned int id)
-{
- mId=id;
-}
-
-unsigned int RPC2Response::getId() const
-{
- return mId;
-}
-
-
-int RPC2Response::getResult() const
-{
- return mResultCode;
-}
-
-void RPC2Response::setResult(int r)
-{
- mResultCode=r;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCMessage.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCMessage.cpp
deleted file mode 100644
index accb6325f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCMessage.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-/**
-* \file SDLRPCMessage.cpp
-* \brief SDLRPCMessage class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "JSONHandler/SDLRPCMessage.h"
-
-using namespace NsSmartDeviceLinkRPC;
-
-SDLRPCMessage::SDLRPCMessage( unsigned int protocolVersion, MessageType messageType )
-:mProtocolVersion( protocolVersion)
-,mMessageType( messageType )
-,mMethodId(1)
-,mBinaryData( 0 )
-,mCorrelationID( 0 )
-{
-}
-
-SDLRPCMessage::SDLRPCMessage( unsigned int protocolVersion, MessageType messageType, int methodId )
-:mProtocolVersion( protocolVersion )
-,mMessageType( messageType )
-,mMethodId( methodId )
-,mBinaryData( 0 )
-,mCorrelationID( 0 )
-{}
-
-SDLRPCMessage::~SDLRPCMessage()
-{
- if ( mBinaryData )
- {
- delete mBinaryData;
- mBinaryData = 0;
- }
-}
-
-unsigned int SDLRPCMessage::getProtocolVersion() const
-{
- return mProtocolVersion;
-}
-
-SDLRPCMessage::MessageType SDLRPCMessage::getMessageType() const
-{
- return mMessageType;
-}
-
-int SDLRPCMessage::getMethodId() const
-{
- return mMethodId;
-}
-
-void SDLRPCMessage::setProtocolVersion( unsigned int protocolVersion )
-{
- mProtocolVersion = protocolVersion;
-}
-
-void SDLRPCMessage::setMessageType( SDLRPCMessage::MessageType messageType )
-{
- mMessageType = messageType;
-}
-
-void SDLRPCMessage::setMethodId( int methodId )
-{
- mMethodId = methodId;
-}
-
-void SDLRPCMessage::setBinaryData( const std::vector<unsigned char> & binaryData )
-{
- if ( mBinaryData )
- {
- delete mBinaryData;
- }
- mBinaryData = new std::vector<unsigned char> (binaryData);
-}
-
-const std::vector<unsigned char> * SDLRPCMessage::getBinaryData() const
-{
- return mBinaryData;
-}
-
-unsigned int SDLRPCMessage::getCorrelationID() const
-{
- return mCorrelationID;
-}
-
-void SDLRPCMessage::setCorrelationID( unsigned int correlationID )
-{
- mCorrelationID = correlationID;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCNotification.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCNotification.cpp
deleted file mode 100644
index 3b69fa951..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCNotification.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
-* \file SDLRPCNotification.cpp
-* \brief SDLRPCNotification class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "JSONHandler/SDLRPCNotification.h"
-
-using namespace NsSmartDeviceLinkRPC;
-
-SDLRPCNotification::SDLRPCNotification(void) :
-SDLRPCMessage(0,NOTIFICATION)
-{
-}
-
-
-SDLRPCNotification::SDLRPCNotification( unsigned int protocolVersion) :
-SDLRPCMessage(protocolVersion,NOTIFICATION)
-{
-}
-
-SDLRPCNotification::SDLRPCNotification( unsigned int protocolVersion, int methodId ) :
-SDLRPCMessage(protocolVersion,NOTIFICATION, methodId)
-{
-}
-
-
-SDLRPCNotification::~SDLRPCNotification()
-{
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_request.cpp
deleted file mode 100644
index 954282cb2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_request.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddCommand_request.h"
-#include "AddCommand_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "MenuParamsMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-AddCommand_request& AddCommand_request::operator =(const AddCommand_request& c)
-{
- cmdID= c.cmdID;
- menuParams= c.menuParams ? new MenuParams(c.menuParams[0]) : 0;
- vrCommands= c.vrCommands ? new std::vector<std::string>(c.vrCommands[0]) : 0;
-
- return *this;}
-
-
-AddCommand_request::~AddCommand_request(void)
-{
- if(menuParams)
- delete menuParams;
- if(vrCommands)
- delete vrCommands;
-}
-
-
-AddCommand_request::AddCommand_request(const AddCommand_request& c)
-{
- *this=c;
-}
-
-
-bool AddCommand_request::checkIntegrity(void)
-{
- return AddCommand_requestMarshaller::checkIntegrity(*this);
-}
-
-
-AddCommand_request::AddCommand_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_ADDCOMMAND_REQUEST),
- menuParams(0),
- vrCommands(0)
-{
-}
-
-
-
-bool AddCommand_request::set_cmdID(unsigned int cmdID_)
-{
- if(cmdID_>2000000000) return false;
- cmdID=cmdID_;
- return true;
-}
-
-bool AddCommand_request::set_menuParams(const MenuParams& menuParams_)
-{
- if(!MenuParamsMarshaller::checkIntegrityConst(menuParams_)) return false;
- delete menuParams;
- menuParams=0;
-
- menuParams=new MenuParams(menuParams_);
- return true;
-}
-
-void AddCommand_request::reset_menuParams(void)
-{
- if(menuParams)
- delete menuParams;
- menuParams=0;
-}
-
-bool AddCommand_request::set_vrCommands(const std::vector<std::string>& vrCommands_)
-{
- unsigned int i=vrCommands_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(vrCommands_[i].length()>99) return false;
- }
- delete vrCommands;
- vrCommands=0;
-
- vrCommands=new std::vector<std::string>(vrCommands_);
- return true;
-}
-
-void AddCommand_request::reset_vrCommands(void)
-{
- if(vrCommands)
- delete vrCommands;
- vrCommands=0;
-}
-
-
-
-
-unsigned int AddCommand_request::get_cmdID(void) const
-{
- return cmdID;
-}
-
-const MenuParams* AddCommand_request::get_menuParams(void) const
-{
- return menuParams;
-}
-
-const std::vector<std::string>* AddCommand_request::get_vrCommands(void) const
-{
- return vrCommands;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_requestMarshaller.cpp
deleted file mode 100644
index 673614e65..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_requestMarshaller.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddCommand_request.h"
-#include "MenuParamsMarshaller.h"
-
-#include "AddCommand_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool AddCommand_requestMarshaller::checkIntegrity(AddCommand_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddCommand_requestMarshaller::fromString(const std::string& s,AddCommand_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddCommand_requestMarshaller::toString(const AddCommand_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddCommand_requestMarshaller::checkIntegrityConst(const AddCommand_request& s)
-{
- if(s.cmdID>2000000000) return false;
- if(s.menuParams && !MenuParamsMarshaller::checkIntegrityConst(*s.menuParams)) return false;
- if(s.vrCommands)
- {
- unsigned int i=s.vrCommands[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.vrCommands[0][i].length()>99) return false;
- }
- }
- return true;
-}
-
-Json::Value AddCommand_requestMarshaller::toJSON(const AddCommand_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("AddCommand");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["cmdID"]=Json::Value(e.cmdID);
-
- if(e.menuParams)
- j["menuParams"]=MenuParamsMarshaller::toJSON(*e.menuParams);
-
- if(e.vrCommands)
- {
- unsigned int sz=e.vrCommands->size();
- j["vrCommands"]=Json::Value(Json::arrayValue);
- j["vrCommands"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["vrCommands"][i]=Json::Value(e.vrCommands[0][i]);
- }
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool AddCommand_requestMarshaller::fromJSON(const Json::Value& js,AddCommand_request& c)
-{
- if(c.menuParams) delete c.menuParams;
- c.menuParams=0;
-
- if(c.vrCommands) delete c.vrCommands;
- c.vrCommands=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("AddCommand")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("cmdID")) return false;
- {
- const Json::Value& j=json["cmdID"];
- if(!j.isInt()) return false;
- c.cmdID=j.asInt();
- }
- if(json.isMember("menuParams"))
- {
- const Json::Value& j=json["menuParams"];
- c.menuParams=new MenuParams();
- if(!MenuParamsMarshaller::fromJSON(j,c.menuParams[0]))
- return false;
- }
- if(json.isMember("vrCommands"))
- {
- const Json::Value& j=json["vrCommands"];
- if(!j.isArray()) return false;
- c.vrCommands=new std::vector<std::string>();
- c.vrCommands->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.vrCommands[0][i]=j[i].asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_requestMarshaller.h
deleted file mode 100644
index 3807438a5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ADDCOMMAND_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ADDCOMMAND_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddCommand_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct AddCommand_requestMarshaller
- {
- static bool checkIntegrity(AddCommand_request& e);
- static bool checkIntegrityConst(const AddCommand_request& e);
-
- static bool fromString(const std::string& s,AddCommand_request& e);
- static const std::string toString(const AddCommand_request& e);
-
- static bool fromJSON(const Json::Value& s,AddCommand_request& e);
- static Json::Value toJSON(const AddCommand_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_response.cpp
deleted file mode 100644
index da044e6ca..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddCommand_response.h"
-#include "AddCommand_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-AddCommand_response& AddCommand_response::operator =(const AddCommand_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-AddCommand_response::~AddCommand_response(void)
-{}
-
-AddCommand_response::AddCommand_response(const AddCommand_response& c)
-{
- *this = c;
-}
-
-bool AddCommand_response::checkIntegrity(void)
-{
- return AddCommand_responseMarshaller::checkIntegrity(*this);
-}
-
-AddCommand_response::AddCommand_response(void) : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_ADDCOMMAND_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_responseMarshaller.cpp
deleted file mode 100644
index 181a34869..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddCommand_response.h"
-#include "ResultMarshaller.h"
-
-#include "AddCommand_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool AddCommand_responseMarshaller::checkIntegrity(AddCommand_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddCommand_responseMarshaller::fromString(const std::string& s,AddCommand_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddCommand_responseMarshaller::toString(const AddCommand_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddCommand_responseMarshaller::checkIntegrityConst(const AddCommand_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value AddCommand_responseMarshaller::toJSON(const AddCommand_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("AddCommand");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool AddCommand_responseMarshaller::fromJSON(const Json::Value& js,AddCommand_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("AddCommand")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_responseMarshaller.h
deleted file mode 100644
index 1041b70b5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddCommand_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ADDCOMMAND_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ADDCOMMAND_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddCommand_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct AddCommand_responseMarshaller
- {
- static bool checkIntegrity(AddCommand_response& e);
- static bool checkIntegrityConst(const AddCommand_response& e);
-
- static bool fromString(const std::string& s,AddCommand_response& e);
- static const std::string toString(const AddCommand_response& e);
-
- static bool fromJSON(const Json::Value& s,AddCommand_response& e);
- static Json::Value toJSON(const AddCommand_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_request.cpp
deleted file mode 100644
index 80f3e2ce5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_request.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_request.h"
-#include "AddSubMenu_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-AddSubMenu_request& AddSubMenu_request::operator =(const AddSubMenu_request& c)
-{
- menuID= c.menuID;
- position= c.position ? new unsigned int(c.position[0]) : 0;
- menuName= c.menuName;
-
- return *this;}
-
-
-AddSubMenu_request::~AddSubMenu_request(void)
-{
- if(position)
- delete position;
-}
-
-
-AddSubMenu_request::AddSubMenu_request(const AddSubMenu_request& c)
-{
- *this=c;
-}
-
-
-bool AddSubMenu_request::checkIntegrity(void)
-{
- return AddSubMenu_requestMarshaller::checkIntegrity(*this);
-}
-
-
-AddSubMenu_request::AddSubMenu_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_ADDSUBMENU_REQUEST),
- position(0)
-{
-}
-
-
-
-bool AddSubMenu_request::set_menuID(unsigned int menuID_)
-{
- if(menuID_>2000000000) return false;
- menuID=menuID_;
- return true;
-}
-
-bool AddSubMenu_request::set_position(unsigned int position_)
-{
- if(position_>1000) return false;
- delete position;
- position=0;
-
- position=new unsigned int(position_);
- return true;
-}
-
-void AddSubMenu_request::reset_position(void)
-{
- if(position)
- delete position;
- position=0;
-}
-
-bool AddSubMenu_request::set_menuName(const std::string& menuName_)
-{
- if(menuName_.length()>500) return false;
- menuName=menuName_;
- return true;
-}
-
-
-
-
-unsigned int AddSubMenu_request::get_menuID(void) const
-{
- return menuID;
-}
-
-const unsigned int* AddSubMenu_request::get_position(void) const
-{
- return position;
-}
-
-const std::string& AddSubMenu_request::get_menuName(void) const
-{
- return menuName;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_requestMarshaller.cpp
deleted file mode 100644
index d4e7542df..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_requestMarshaller.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_request.h"
-
-
-#include "AddSubMenu_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool AddSubMenu_requestMarshaller::checkIntegrity(AddSubMenu_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddSubMenu_requestMarshaller::fromString(const std::string& s,AddSubMenu_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddSubMenu_requestMarshaller::toString(const AddSubMenu_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddSubMenu_requestMarshaller::checkIntegrityConst(const AddSubMenu_request& s)
-{
- if(s.menuID>2000000000) return false;
- if(s.position && *s.position>1000) return false;
- if(s.menuName.length()>500) return false;
- return true;
-}
-
-Json::Value AddSubMenu_requestMarshaller::toJSON(const AddSubMenu_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("AddSubMenu");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["menuID"]=Json::Value(e.menuID);
-
- if(e.position)
- j["position"]=Json::Value(*e.position);
-
- j["menuName"]=Json::Value(e.menuName);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool AddSubMenu_requestMarshaller::fromJSON(const Json::Value& js,AddSubMenu_request& c)
-{
- if(c.position) delete c.position;
- c.position=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("AddSubMenu")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("menuID")) return false;
- {
- const Json::Value& j=json["menuID"];
- if(!j.isInt()) return false;
- c.menuID=j.asInt();
- }
- if(json.isMember("position"))
- {
- const Json::Value& j=json["position"];
- if(!j.isInt()) return false;
- c.position=new unsigned int(j.asInt());
- }
- if(!json.isMember("menuName")) return false;
- {
- const Json::Value& j=json["menuName"];
- if(!j.isString()) return false;
- c.menuName=j.asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_requestMarshaller.h
deleted file mode 100644
index 91e0a3a08..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ADDSUBMENU_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ADDSUBMENU_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct AddSubMenu_requestMarshaller
- {
- static bool checkIntegrity(AddSubMenu_request& e);
- static bool checkIntegrityConst(const AddSubMenu_request& e);
-
- static bool fromString(const std::string& s,AddSubMenu_request& e);
- static const std::string toString(const AddSubMenu_request& e);
-
- static bool fromJSON(const Json::Value& s,AddSubMenu_request& e);
- static Json::Value toJSON(const AddSubMenu_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_response.cpp
deleted file mode 100644
index 69f00033f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_response.h"
-#include "AddSubMenu_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-AddSubMenu_response& AddSubMenu_response::operator =(const AddSubMenu_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-AddSubMenu_response::~AddSubMenu_response(void)
-{}
-
-AddSubMenu_response::AddSubMenu_response(const AddSubMenu_response& c)
-{
- *this = c;
-}
-
-bool AddSubMenu_response::checkIntegrity(void)
-{
- return AddSubMenu_responseMarshaller::checkIntegrity(*this);
-}
-
-AddSubMenu_response::AddSubMenu_response(void) : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_ADDSUBMENU_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_responseMarshaller.cpp
deleted file mode 100644
index 7ea547541..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_response.h"
-#include "ResultMarshaller.h"
-
-#include "AddSubMenu_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool AddSubMenu_responseMarshaller::checkIntegrity(AddSubMenu_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddSubMenu_responseMarshaller::fromString(const std::string& s,AddSubMenu_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddSubMenu_responseMarshaller::toString(const AddSubMenu_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddSubMenu_responseMarshaller::checkIntegrityConst(const AddSubMenu_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value AddSubMenu_responseMarshaller::toJSON(const AddSubMenu_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("AddSubMenu");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool AddSubMenu_responseMarshaller::fromJSON(const Json::Value& js,AddSubMenu_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("AddSubMenu")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_responseMarshaller.h
deleted file mode 100644
index 83be341dd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AddSubMenu_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ADDSUBMENU_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ADDSUBMENU_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct AddSubMenu_responseMarshaller
- {
- static bool checkIntegrity(AddSubMenu_response& e);
- static bool checkIntegrityConst(const AddSubMenu_response& e);
-
- static bool fromString(const std::string& s,AddSubMenu_response& e);
- static const std::string toString(const AddSubMenu_response& e);
-
- static bool fromJSON(const Json::Value& s,AddSubMenu_response& e);
- static Json::Value toJSON(const AddSubMenu_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_request.cpp
deleted file mode 100644
index 96917aeea..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_request.cpp
+++ /dev/null
@@ -1,217 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Alert_request.h"
-#include "Alert_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-Alert_request& Alert_request::operator =(const Alert_request& c)
-{
- alertText1= c.alertText1 ? new std::string(c.alertText1[0]) : 0;
- alertText2= c.alertText2 ? new std::string(c.alertText2[0]) : 0;
- ttsChunks= c.ttsChunks ? new std::vector<TTSChunk>(c.ttsChunks[0]) : 0;
- duration= c.duration ? new unsigned int(c.duration[0]) : 0;
- playTone= c.playTone ? new bool(c.playTone[0]) : 0;
-
- return *this;}
-
-
-Alert_request::~Alert_request(void)
-{
- if(alertText1)
- delete alertText1;
- if(alertText2)
- delete alertText2;
- if(ttsChunks)
- delete ttsChunks;
- if(duration)
- delete duration;
- if(playTone)
- delete playTone;
-}
-
-
-Alert_request::Alert_request(const Alert_request& c)
-{
- *this=c;
-}
-
-
-bool Alert_request::checkIntegrity(void)
-{
- return Alert_requestMarshaller::checkIntegrity(*this);
-}
-
-
-Alert_request::Alert_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_ALERT_REQUEST),
- alertText1(0),
- alertText2(0),
- ttsChunks(0),
- duration(0),
- playTone(0)
-{
-}
-
-
-
-bool Alert_request::set_alertText1(const std::string& alertText1_)
-{
- if(alertText1_.length()>500) return false;
- delete alertText1;
- alertText1=0;
-
- alertText1=new std::string(alertText1_);
- return true;
-}
-
-void Alert_request::reset_alertText1(void)
-{
- if(alertText1)
- delete alertText1;
- alertText1=0;
-}
-
-bool Alert_request::set_alertText2(const std::string& alertText2_)
-{
- if(alertText2_.length()>500) return false;
- delete alertText2;
- alertText2=0;
-
- alertText2=new std::string(alertText2_);
- return true;
-}
-
-void Alert_request::reset_alertText2(void)
-{
- if(alertText2)
- delete alertText2;
- alertText2=0;
-}
-
-bool Alert_request::set_ttsChunks(const std::vector<TTSChunk>& ttsChunks_)
-{
- unsigned int i=ttsChunks_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(ttsChunks_[i])) return false;
- }
- delete ttsChunks;
- ttsChunks=0;
-
- ttsChunks=new std::vector<TTSChunk>(ttsChunks_);
- return true;
-}
-
-void Alert_request::reset_ttsChunks(void)
-{
- if(ttsChunks)
- delete ttsChunks;
- ttsChunks=0;
-}
-
-bool Alert_request::set_duration(unsigned int duration_)
-{
- if(duration_>10000) return false;
- if(duration_<3000) return false;
- delete duration;
- duration=0;
-
- duration=new unsigned int(duration_);
- return true;
-}
-
-void Alert_request::reset_duration(void)
-{
- if(duration)
- delete duration;
- duration=0;
-}
-
-bool Alert_request::set_playTone(bool playTone_)
-{
- delete playTone;
- playTone=0;
-
- playTone=new bool(playTone_);
- return true;
-}
-
-void Alert_request::reset_playTone(void)
-{
- if(playTone)
- delete playTone;
- playTone=0;
-}
-
-
-
-
-const std::string* Alert_request::get_alertText1(void) const
-{
- return alertText1;
-}
-
-const std::string* Alert_request::get_alertText2(void) const
-{
- return alertText2;
-}
-
-const std::vector<TTSChunk>* Alert_request::get_ttsChunks(void) const
-{
- return ttsChunks;
-}
-
-const unsigned int* Alert_request::get_duration(void) const
-{
- return duration;
-}
-
-const bool* Alert_request::get_playTone(void) const
-{
- return playTone;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_requestMarshaller.cpp
deleted file mode 100644
index 96190c021..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_requestMarshaller.cpp
+++ /dev/null
@@ -1,217 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Alert_request.h"
-#include "TTSChunkMarshaller.h"
-
-#include "Alert_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool Alert_requestMarshaller::checkIntegrity(Alert_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Alert_requestMarshaller::fromString(const std::string& s,Alert_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Alert_requestMarshaller::toString(const Alert_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Alert_requestMarshaller::checkIntegrityConst(const Alert_request& s)
-{
- if(s.alertText1 && s.alertText1->length()>500) return false;
- if(s.alertText2 && s.alertText2->length()>500) return false;
- if(s.ttsChunks)
- {
- unsigned int i=s.ttsChunks[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.ttsChunks[0][i])) return false;
- }
- }
- if(s.duration && *s.duration>10000) return false;
- if(s.duration && *s.duration<3000) return false;
- return true;
-}
-
-Json::Value Alert_requestMarshaller::toJSON(const Alert_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("Alert");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- if(e.alertText1)
- j["alertText1"]=Json::Value(*e.alertText1);
-
- if(e.alertText2)
- j["alertText2"]=Json::Value(*e.alertText2);
-
- if(e.ttsChunks)
- {
- unsigned int sz=e.ttsChunks->size();
- j["ttsChunks"]=Json::Value(Json::arrayValue);
- j["ttsChunks"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["ttsChunks"][i]=TTSChunkMarshaller::toJSON(e.ttsChunks[0][i]);
- }
-
- if(e.duration)
- j["duration"]=Json::Value(*e.duration);
-
- if(e.playTone)
- j["playTone"]=Json::Value(*e.playTone);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool Alert_requestMarshaller::fromJSON(const Json::Value& js,Alert_request& c)
-{
- if(c.alertText1) delete c.alertText1;
- c.alertText1=0;
-
- if(c.alertText2) delete c.alertText2;
- c.alertText2=0;
-
- if(c.ttsChunks) delete c.ttsChunks;
- c.ttsChunks=0;
-
- if(c.duration) delete c.duration;
- c.duration=0;
-
- if(c.playTone) delete c.playTone;
- c.playTone=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("Alert")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(json.isMember("alertText1"))
- {
- const Json::Value& j=json["alertText1"];
- if(!j.isString()) return false;
- c.alertText1=new std::string(j.asString());
- }
- if(json.isMember("alertText2"))
- {
- const Json::Value& j=json["alertText2"];
- if(!j.isString()) return false;
- c.alertText2=new std::string(j.asString());
- }
- if(json.isMember("ttsChunks"))
- {
- const Json::Value& j=json["ttsChunks"];
- if(!j.isArray()) return false;
- c.ttsChunks=new std::vector<TTSChunk>();
- c.ttsChunks->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.ttsChunks[0][i]=t;
- }
-
- }
- if(json.isMember("duration"))
- {
- const Json::Value& j=json["duration"];
- if(!j.isInt()) return false;
- c.duration=new unsigned int(j.asInt());
- }
- if(json.isMember("playTone"))
- {
- const Json::Value& j=json["playTone"];
- if(!j.isBool()) return false;
- c.playTone=new bool(j.asBool());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_requestMarshaller.h
deleted file mode 100644
index 5479976ea..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ALERT_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ALERT_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Alert_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct Alert_requestMarshaller
- {
- static bool checkIntegrity(Alert_request& e);
- static bool checkIntegrityConst(const Alert_request& e);
-
- static bool fromString(const std::string& s,Alert_request& e);
- static const std::string toString(const Alert_request& e);
-
- static bool fromJSON(const Json::Value& s,Alert_request& e);
- static Json::Value toJSON(const Alert_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_response.cpp
deleted file mode 100644
index 8888fad26..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Alert_response.h"
-#include "Alert_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-Alert_response& Alert_response::operator =(const Alert_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-Alert_response::~Alert_response(void)
-{}
-
-Alert_response::Alert_response(const Alert_response& c)
-{
- *this = c;
-}
-
-bool Alert_response::checkIntegrity(void)
-{
- return Alert_responseMarshaller::checkIntegrity(*this);
-}
-
-Alert_response::Alert_response(void) : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_ALERT_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_responseMarshaller.cpp
deleted file mode 100644
index 9d6abdf7a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Alert_response.h"
-#include "ResultMarshaller.h"
-
-#include "Alert_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool Alert_responseMarshaller::checkIntegrity(Alert_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Alert_responseMarshaller::fromString(const std::string& s,Alert_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Alert_responseMarshaller::toString(const Alert_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Alert_responseMarshaller::checkIntegrityConst(const Alert_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value Alert_responseMarshaller::toJSON(const Alert_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("Alert");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool Alert_responseMarshaller::fromJSON(const Json::Value& js,Alert_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("Alert")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_responseMarshaller.h
deleted file mode 100644
index 8be945c23..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Alert_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ALERT_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ALERT_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Alert_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct Alert_responseMarshaller
- {
- static bool checkIntegrity(Alert_response& e);
- static bool checkIntegrityConst(const Alert_response& e);
-
- static bool fromString(const std::string& s,Alert_response& e);
- static const std::string toString(const Alert_response& e);
-
- static bool fromJSON(const Json::Value& s,Alert_response& e);
- static Json::Value toJSON(const Alert_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.cpp
deleted file mode 100644
index d72172a1a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/AppInterfaceUnregisteredReason.h"
-#include "AppInterfaceUnregisteredReasonMarshaller.h"
-#include "AppInterfaceUnregisteredReasonMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const AppInterfaceUnregisteredReason::AppInterfaceUnregisteredReasonInternal AppInterfaceUnregisteredReasonMarshaller::getIndex(const char* s)
-{
- if(!s)
- return AppInterfaceUnregisteredReason::INVALID_ENUM;
- const struct PerfectHashTable* p=AppInterfaceUnregisteredReason_intHash::getPointer(s,strlen(s));
- return p ? static_cast<AppInterfaceUnregisteredReason::AppInterfaceUnregisteredReasonInternal>(p->idx) : AppInterfaceUnregisteredReason::INVALID_ENUM;
-}
-
-
-bool AppInterfaceUnregisteredReasonMarshaller::fromJSON(const Json::Value& s,AppInterfaceUnregisteredReason& e)
-{
- e.mInternal=AppInterfaceUnregisteredReason::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=AppInterfaceUnregisteredReason::INVALID_ENUM);
-}
-
-
-Json::Value AppInterfaceUnregisteredReasonMarshaller::toJSON(const AppInterfaceUnregisteredReason& e)
-{
- if(e.mInternal==AppInterfaceUnregisteredReason::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool AppInterfaceUnregisteredReasonMarshaller::fromString(const std::string& s,AppInterfaceUnregisteredReason& e)
-{
- e.mInternal=AppInterfaceUnregisteredReason::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string AppInterfaceUnregisteredReasonMarshaller::toString(const AppInterfaceUnregisteredReason& e)
-{
- Json::FastWriter writer;
- return e.mInternal==AppInterfaceUnregisteredReason::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable AppInterfaceUnregisteredReasonMarshaller::mHashTable[10]=
-{
- {"USER_EXIT",0},
- {"IGNITION_OFF",1},
- {"BLUETOOTH_OFF",2},
- {"USB_DISCONNECTED",3},
- {"REQUEST_WHILE_IN_NONE_HMI_LEVEL",4},
- {"TOO_MANY_REQUESTS",5},
- {"DRIVER_DISTRACTION_VIOLATION",6},
- {"LANGUAGE_CHANGE",7},
- {"MASTER_RESET",8},
- {"FACTORY_DEFAULTS",9}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp
deleted file mode 100644
index 2f0c1d160..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp
+++ /dev/null
@@ -1,26 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name AppInterfaceUnregisteredReason_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-USER_EXIT,0
-IGNITION_OFF,1
-BLUETOOTH_OFF,2
-USB_DISCONNECTED,3
-REQUEST_WHILE_IN_NONE_HMI_LEVEL,4
-TOO_MANY_REQUESTS,5
-DRIVER_DISTRACTION_VIOLATION,6
-LANGUAGE_CHANGE,7
-MASTER_RESET,8
-FACTORY_DEFAULTS,9
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.h
deleted file mode 100644
index ada5bbb86..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_APPINTERFACEUNREGISTEREDREASONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_APPINTERFACEUNREGISTEREDREASONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AppInterfaceUnregisteredReason.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for AppInterfaceUnregisteredReason
-
- class AppInterfaceUnregisteredReasonMarshaller
- {
- public:
-
- static std::string toName(const AppInterfaceUnregisteredReason& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(AppInterfaceUnregisteredReason& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=AppInterfaceUnregisteredReason::INVALID_ENUM;
- }
-
- static bool checkIntegrity(AppInterfaceUnregisteredReason& e) { return e.mInternal!=AppInterfaceUnregisteredReason::INVALID_ENUM; }
- static bool checkIntegrityConst(const AppInterfaceUnregisteredReason& e) { return e.mInternal!=AppInterfaceUnregisteredReason::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,AppInterfaceUnregisteredReason& e);
- static const std::string toString(const AppInterfaceUnregisteredReason& e);
-
- static bool fromJSON(const Json::Value& s,AppInterfaceUnregisteredReason& e);
- static Json::Value toJSON(const AppInterfaceUnregisteredReason& e);
-
- static const char* getName(AppInterfaceUnregisteredReason::AppInterfaceUnregisteredReasonInternal e)
- {
- return (e>=0 && e<10) ? mHashTable[e].name : NULL;
- }
-
- static const AppInterfaceUnregisteredReason::AppInterfaceUnregisteredReasonInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[10];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.inc
deleted file mode 100644
index 555530c25..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.inc
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp */
-/* Computed positions: -k'1' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 10
-#define MIN_WORD_LENGTH 9
-#define MAX_WORD_LENGTH 31
-#define MIN_HASH_VALUE 9
-#define MAX_HASH_VALUE 31
-/* maximum key range = 23, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPC {
-
-class AppInterfaceUnregisteredReason_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-AppInterfaceUnregisteredReason_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 0, 32, 0, 32,
- 5, 32, 32, 10, 32, 32, 0, 0, 32, 32,
- 32, 32, 0, 32, 0, 0, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32
- };
- return len + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-AppInterfaceUnregisteredReason_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 13,
- 0, 15, 16, 17, 0, 0, 0, 16, 12, 0, 0, 0, 0, 0,
- 28, 0, 0, 31
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"USER_EXIT",0},
- {""}, {""},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"MASTER_RESET",8},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"BLUETOOTH_OFF",2},
- {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"LANGUAGE_CHANGE",7},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"USB_DISCONNECTED",3},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"TOO_MANY_REQUESTS",5},
- {""}, {""}, {""},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"FACTORY_DEFAULTS",9},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"IGNITION_OFF",1},
- {""}, {""}, {""}, {""}, {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"DRIVER_DISTRACTION_VIOLATION",6},
- {""}, {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"REQUEST_WHILE_IN_NONE_HMI_LEVEL",4}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.cpp
deleted file mode 100644
index f7fa2f7fb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/AudioCaptureQuality.h"
-#include "AudioCaptureQualityMarshaller.h"
-#include "AudioCaptureQualityMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const AudioCaptureQuality::AudioCaptureQualityInternal AudioCaptureQualityMarshaller::getIndex(const char* s)
-{
- if(!s)
- return AudioCaptureQuality::INVALID_ENUM;
- const struct PerfectHashTable* p=AudioCaptureQuality_intHash::getPointer(s,strlen(s));
- return p ? static_cast<AudioCaptureQuality::AudioCaptureQualityInternal>(p->idx) : AudioCaptureQuality::INVALID_ENUM;
-}
-
-
-bool AudioCaptureQualityMarshaller::fromJSON(const Json::Value& s,AudioCaptureQuality& e)
-{
- e.mInternal=AudioCaptureQuality::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=AudioCaptureQuality::INVALID_ENUM);
-}
-
-
-Json::Value AudioCaptureQualityMarshaller::toJSON(const AudioCaptureQuality& e)
-{
- if(e.mInternal==AudioCaptureQuality::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool AudioCaptureQualityMarshaller::fromString(const std::string& s,AudioCaptureQuality& e)
-{
- e.mInternal=AudioCaptureQuality::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string AudioCaptureQualityMarshaller::toString(const AudioCaptureQuality& e)
-{
- Json::FastWriter writer;
- return e.mInternal==AudioCaptureQuality::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable AudioCaptureQualityMarshaller::mHashTable[2]=
-{
- {"8KHZ",0},
- {"16KHZ",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.gp
deleted file mode 100644
index d0d094502..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name AudioCaptureQuality_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-8KHZ,0
-16KHZ,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.h
deleted file mode 100644
index c5f12dacb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_AUDIOCAPTUREQUALITYMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_AUDIOCAPTUREQUALITYMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AudioCaptureQuality.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for AudioCaptureQuality
-
- class AudioCaptureQualityMarshaller
- {
- public:
-
- static std::string toName(const AudioCaptureQuality& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(AudioCaptureQuality& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=AudioCaptureQuality::INVALID_ENUM;
- }
-
- static bool checkIntegrity(AudioCaptureQuality& e) { return e.mInternal!=AudioCaptureQuality::INVALID_ENUM; }
- static bool checkIntegrityConst(const AudioCaptureQuality& e) { return e.mInternal!=AudioCaptureQuality::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,AudioCaptureQuality& e);
- static const std::string toString(const AudioCaptureQuality& e);
-
- static bool fromJSON(const Json::Value& s,AudioCaptureQuality& e);
- static Json::Value toJSON(const AudioCaptureQuality& e);
-
- static const char* getName(AudioCaptureQuality::AudioCaptureQualityInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const AudioCaptureQuality::AudioCaptureQualityInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.inc
deleted file mode 100644
index c3d8a7c33..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.inc
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 5
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 5
-/* maximum key range = 2, duplicates = 0 */
-
-class AudioCaptureQuality_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-AudioCaptureQuality_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-AudioCaptureQuality_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 5
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.gp"
- {"8KHZ",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioCaptureQualityMarshaller.gp"
- {"16KHZ",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.cpp
deleted file mode 100644
index 8c9b4f09c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/AudioStreamingState.h"
-#include "AudioStreamingStateMarshaller.h"
-#include "AudioStreamingStateMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const AudioStreamingState::AudioStreamingStateInternal AudioStreamingStateMarshaller::getIndex(const char* s)
-{
- if(!s)
- return AudioStreamingState::INVALID_ENUM;
- const struct PerfectHashTable* p=AudioStreamingState_intHash::getPointer(s,strlen(s));
- return p ? static_cast<AudioStreamingState::AudioStreamingStateInternal>(p->idx) : AudioStreamingState::INVALID_ENUM;
-}
-
-
-bool AudioStreamingStateMarshaller::fromJSON(const Json::Value& s,AudioStreamingState& e)
-{
- e.mInternal=AudioStreamingState::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=AudioStreamingState::INVALID_ENUM);
-}
-
-
-Json::Value AudioStreamingStateMarshaller::toJSON(const AudioStreamingState& e)
-{
- if(e.mInternal==AudioStreamingState::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool AudioStreamingStateMarshaller::fromString(const std::string& s,AudioStreamingState& e)
-{
- e.mInternal=AudioStreamingState::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string AudioStreamingStateMarshaller::toString(const AudioStreamingState& e)
-{
- Json::FastWriter writer;
- return e.mInternal==AudioStreamingState::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable AudioStreamingStateMarshaller::mHashTable[2]=
-{
- {"AUDIBLE",0},
- {"NOT_AUDIBLE",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.gp
deleted file mode 100644
index 233ca9401..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name AudioStreamingState_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-AUDIBLE,0
-NOT_AUDIBLE,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.h
deleted file mode 100644
index 62c7e6b31..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_AUDIOSTREAMINGSTATEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_AUDIOSTREAMINGSTATEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/AudioStreamingState.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for AudioStreamingState
-
- class AudioStreamingStateMarshaller
- {
- public:
-
- static std::string toName(const AudioStreamingState& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(AudioStreamingState& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=AudioStreamingState::INVALID_ENUM;
- }
-
- static bool checkIntegrity(AudioStreamingState& e) { return e.mInternal!=AudioStreamingState::INVALID_ENUM; }
- static bool checkIntegrityConst(const AudioStreamingState& e) { return e.mInternal!=AudioStreamingState::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,AudioStreamingState& e);
- static const std::string toString(const AudioStreamingState& e);
-
- static bool fromJSON(const Json::Value& s,AudioStreamingState& e);
- static Json::Value toJSON(const AudioStreamingState& e);
-
- static const char* getName(AudioStreamingState::AudioStreamingStateInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const AudioStreamingState::AudioStreamingStateInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.inc
deleted file mode 100644
index 232669a7f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.inc
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 7
-#define MAX_WORD_LENGTH 11
-#define MIN_HASH_VALUE 7
-#define MAX_HASH_VALUE 11
-/* maximum key range = 5, duplicates = 0 */
-
-class AudioStreamingState_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-AudioStreamingState_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-AudioStreamingState_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 11
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.gp"
- {"AUDIBLE",0},
- {""}, {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/AudioStreamingStateMarshaller.gp"
- {"NOT_AUDIBLE",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilities.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilities.cpp
deleted file mode 100644
index a31417866..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilities.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ButtonCapabilities.h"
-#include "ButtonCapabilitiesMarshaller.h"
-#include "ButtonNameMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPC;
-
-ButtonCapabilities::ButtonCapabilities(const ButtonCapabilities& c)
-{
- *this=c;
-}
-
-
-bool ButtonCapabilities::checkIntegrity(void)
-{
- return ButtonCapabilitiesMarshaller::checkIntegrity(*this);
-}
-
-
-ButtonCapabilities::ButtonCapabilities(void)
-{
-}
-
-
-
-bool ButtonCapabilities::set_longPressAvailable(bool longPressAvailable_)
-{
- longPressAvailable=longPressAvailable_;
- return true;
-}
-
-bool ButtonCapabilities::set_name(const ButtonName& name_)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(name_)) return false;
- name=name_;
- return true;
-}
-
-bool ButtonCapabilities::set_shortPressAvailable(bool shortPressAvailable_)
-{
- shortPressAvailable=shortPressAvailable_;
- return true;
-}
-
-bool ButtonCapabilities::set_upDownAvailable(bool upDownAvailable_)
-{
- upDownAvailable=upDownAvailable_;
- return true;
-}
-
-
-
-
-bool ButtonCapabilities::get_longPressAvailable(void) const
-{
- return longPressAvailable;
-}
-
-
-const ButtonName& ButtonCapabilities::get_name(void) const
-{
- return name;
-}
-
-
-bool ButtonCapabilities::get_shortPressAvailable(void) const
-{
- return shortPressAvailable;
-}
-
-
-bool ButtonCapabilities::get_upDownAvailable(void) const
-{
- return upDownAvailable;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilitiesMarshaller.cpp
deleted file mode 100644
index 1c72e6b25..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ButtonCapabilities.h"
-#include "ButtonNameMarshaller.h"
-
-#include "ButtonCapabilitiesMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool ButtonCapabilitiesMarshaller::checkIntegrity(ButtonCapabilities& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ButtonCapabilitiesMarshaller::fromString(const std::string& s,ButtonCapabilities& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ButtonCapabilitiesMarshaller::toString(const ButtonCapabilities& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ButtonCapabilitiesMarshaller::checkIntegrityConst(const ButtonCapabilities& s)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(s.name)) return false;
- return true;
-}
-
-Json::Value ButtonCapabilitiesMarshaller::toJSON(const ButtonCapabilities& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["longPressAvailable"]=Json::Value(e.longPressAvailable);
-
- json["name"]=ButtonNameMarshaller::toJSON(e.name);
-
- json["shortPressAvailable"]=Json::Value(e.shortPressAvailable);
-
- json["upDownAvailable"]=Json::Value(e.upDownAvailable);
-
-
- return json;
-}
-
-
-bool ButtonCapabilitiesMarshaller::fromJSON(const Json::Value& json,ButtonCapabilities& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("longPressAvailable")) return false;
- {
- const Json::Value& j=json["longPressAvailable"];
- if(!j.isBool()) return false;
- c.longPressAvailable=j.asBool();
- }
- if(!json.isMember("name")) return false;
- {
- const Json::Value& j=json["name"];
- if(!ButtonNameMarshaller::fromJSON(j,c.name))
- return false;
- }
- if(!json.isMember("shortPressAvailable")) return false;
- {
- const Json::Value& j=json["shortPressAvailable"];
- if(!j.isBool()) return false;
- c.shortPressAvailable=j.asBool();
- }
- if(!json.isMember("upDownAvailable")) return false;
- {
- const Json::Value& j=json["upDownAvailable"];
- if(!j.isBool()) return false;
- c.upDownAvailable=j.asBool();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilitiesMarshaller.h
deleted file mode 100644
index 9a01a8177..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_BUTTONCAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_BUTTONCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ButtonCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct ButtonCapabilitiesMarshaller
- {
- static bool checkIntegrity(ButtonCapabilities& e);
- static bool checkIntegrityConst(const ButtonCapabilities& e);
-
- static bool fromString(const std::string& s,ButtonCapabilities& e);
- static const std::string toString(const ButtonCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,ButtonCapabilities& e);
- static Json::Value toJSON(const ButtonCapabilities& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.cpp
deleted file mode 100644
index 2074e960b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/ButtonEventMode.h"
-#include "ButtonEventModeMarshaller.h"
-#include "ButtonEventModeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const ButtonEventMode::ButtonEventModeInternal ButtonEventModeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return ButtonEventMode::INVALID_ENUM;
- const struct PerfectHashTable* p=ButtonEventMode_intHash::getPointer(s,strlen(s));
- return p ? static_cast<ButtonEventMode::ButtonEventModeInternal>(p->idx) : ButtonEventMode::INVALID_ENUM;
-}
-
-
-bool ButtonEventModeMarshaller::fromJSON(const Json::Value& s,ButtonEventMode& e)
-{
- e.mInternal=ButtonEventMode::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=ButtonEventMode::INVALID_ENUM);
-}
-
-
-Json::Value ButtonEventModeMarshaller::toJSON(const ButtonEventMode& e)
-{
- if(e.mInternal==ButtonEventMode::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool ButtonEventModeMarshaller::fromString(const std::string& s,ButtonEventMode& e)
-{
- e.mInternal=ButtonEventMode::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string ButtonEventModeMarshaller::toString(const ButtonEventMode& e)
-{
- Json::FastWriter writer;
- return e.mInternal==ButtonEventMode::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable ButtonEventModeMarshaller::mHashTable[2]=
-{
- {"BUTTONUP",0},
- {"BUTTONDOWN",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.gp
deleted file mode 100644
index b9f1d7d57..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name ButtonEventMode_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-BUTTONUP,0
-BUTTONDOWN,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.h
deleted file mode 100644
index 011c59fa3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_BUTTONEVENTMODEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_BUTTONEVENTMODEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ButtonEventMode.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for ButtonEventMode
-
- class ButtonEventModeMarshaller
- {
- public:
-
- static std::string toName(const ButtonEventMode& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(ButtonEventMode& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=ButtonEventMode::INVALID_ENUM;
- }
-
- static bool checkIntegrity(ButtonEventMode& e) { return e.mInternal!=ButtonEventMode::INVALID_ENUM; }
- static bool checkIntegrityConst(const ButtonEventMode& e) { return e.mInternal!=ButtonEventMode::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,ButtonEventMode& e);
- static const std::string toString(const ButtonEventMode& e);
-
- static bool fromJSON(const Json::Value& s,ButtonEventMode& e);
- static Json::Value toJSON(const ButtonEventMode& e);
-
- static const char* getName(ButtonEventMode::ButtonEventModeInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const ButtonEventMode::ButtonEventModeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.inc
deleted file mode 100644
index 8b9045d59..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.inc
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 8
-#define MAX_WORD_LENGTH 10
-#define MIN_HASH_VALUE 8
-#define MAX_HASH_VALUE 10
-/* maximum key range = 3, duplicates = 0 */
-
-class ButtonEventMode_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-ButtonEventMode_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-ButtonEventMode_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 10
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.gp"
- {"BUTTONUP",0},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonEventModeMarshaller.gp"
- {"BUTTONDOWN",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.cpp
deleted file mode 100644
index 4fc06ce7e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/ButtonName.h"
-#include "ButtonNameMarshaller.h"
-#include "ButtonNameMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const ButtonName::ButtonNameInternal ButtonNameMarshaller::getIndex(const char* s)
-{
- if(!s)
- return ButtonName::INVALID_ENUM;
- const struct PerfectHashTable* p=ButtonName_intHash::getPointer(s,strlen(s));
- return p ? static_cast<ButtonName::ButtonNameInternal>(p->idx) : ButtonName::INVALID_ENUM;
-}
-
-
-bool ButtonNameMarshaller::fromJSON(const Json::Value& s,ButtonName& e)
-{
- e.mInternal=ButtonName::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=ButtonName::INVALID_ENUM);
-}
-
-
-Json::Value ButtonNameMarshaller::toJSON(const ButtonName& e)
-{
- if(e.mInternal==ButtonName::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool ButtonNameMarshaller::fromString(const std::string& s,ButtonName& e)
-{
- e.mInternal=ButtonName::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string ButtonNameMarshaller::toString(const ButtonName& e)
-{
- Json::FastWriter writer;
- return e.mInternal==ButtonName::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable ButtonNameMarshaller::mHashTable[15]=
-{
- {"OK",0},
- {"SEEKLEFT",1},
- {"SEEKRIGHT",2},
- {"TUNEUP",3},
- {"TUNEDOWN",4},
- {"PRESET_0",5},
- {"PRESET_1",6},
- {"PRESET_2",7},
- {"PRESET_3",8},
- {"PRESET_4",9},
- {"PRESET_5",10},
- {"PRESET_6",11},
- {"PRESET_7",12},
- {"PRESET_8",13},
- {"PRESET_9",14}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp
deleted file mode 100644
index a7c5a08b0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp
+++ /dev/null
@@ -1,31 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name ButtonName_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-OK,0
-SEEKLEFT,1
-SEEKRIGHT,2
-TUNEUP,3
-TUNEDOWN,4
-PRESET_0,5
-PRESET_1,6
-PRESET_2,7
-PRESET_3,8
-PRESET_4,9
-PRESET_5,10
-PRESET_6,11
-PRESET_7,12
-PRESET_8,13
-PRESET_9,14
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.h
deleted file mode 100644
index 25cdcfc96..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_BUTTONNAMEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_BUTTONNAMEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ButtonName.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for ButtonName
-
- class ButtonNameMarshaller
- {
- public:
-
- static std::string toName(const ButtonName& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(ButtonName& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=ButtonName::INVALID_ENUM;
- }
-
- static bool checkIntegrity(ButtonName& e) { return e.mInternal!=ButtonName::INVALID_ENUM; }
- static bool checkIntegrityConst(const ButtonName& e) { return e.mInternal!=ButtonName::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,ButtonName& e);
- static const std::string toString(const ButtonName& e);
-
- static bool fromJSON(const Json::Value& s,ButtonName& e);
- static Json::Value toJSON(const ButtonName& e);
-
- static const char* getName(ButtonName::ButtonNameInternal e)
- {
- return (e>=0 && e<15) ? mHashTable[e].name : NULL;
- }
-
- static const ButtonName::ButtonNameInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[15];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.inc
deleted file mode 100644
index 307db7040..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.inc
+++ /dev/null
@@ -1,191 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp */
-/* Computed positions: -k'8' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 15
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 9
-#define MIN_HASH_VALUE 2
-#define MAX_HASH_VALUE 23
-/* maximum key range = 22, duplicates = 0 */
-
-class ButtonName_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-ButtonName_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 7, 2,
- 13, 8, 3, 14, 9, 4, 15, 10, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 0, 24, 24, 24, 24, 24, 5, 24,
- 24, 24, 24, 24, 0, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[7]];
- /*FALLTHROUGH*/
- case 7:
- case 6:
- case 5:
- case 4:
- case 3:
- case 2:
- break;
- }
- return hval;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-ButtonName_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 2, 0, 0, 0, 6, 0, 8, 9, 8, 8, 8, 8,
- 0, 8, 8, 8, 8, 0, 0, 8, 8, 8
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"OK",0},
- {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"TUNEUP",3},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"SEEKLEFT",1},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"SEEKRIGHT",2},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"PRESET_1",6},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"PRESET_4",9},
-#line 29 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"PRESET_7",12},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"TUNEDOWN",4},
- {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"PRESET_0",5},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"PRESET_3",8},
-#line 28 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"PRESET_6",11},
-#line 31 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"PRESET_9",14},
- {""}, {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"PRESET_2",7},
-#line 27 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"PRESET_5",10},
-#line 30 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonNameMarshaller.gp"
- {"PRESET_8",13}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.cpp
deleted file mode 100644
index d4a55c0a1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/ButtonPressMode.h"
-#include "ButtonPressModeMarshaller.h"
-#include "ButtonPressModeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const ButtonPressMode::ButtonPressModeInternal ButtonPressModeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return ButtonPressMode::INVALID_ENUM;
- const struct PerfectHashTable* p=ButtonPressMode_intHash::getPointer(s,strlen(s));
- return p ? static_cast<ButtonPressMode::ButtonPressModeInternal>(p->idx) : ButtonPressMode::INVALID_ENUM;
-}
-
-
-bool ButtonPressModeMarshaller::fromJSON(const Json::Value& s,ButtonPressMode& e)
-{
- e.mInternal=ButtonPressMode::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=ButtonPressMode::INVALID_ENUM);
-}
-
-
-Json::Value ButtonPressModeMarshaller::toJSON(const ButtonPressMode& e)
-{
- if(e.mInternal==ButtonPressMode::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool ButtonPressModeMarshaller::fromString(const std::string& s,ButtonPressMode& e)
-{
- e.mInternal=ButtonPressMode::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string ButtonPressModeMarshaller::toString(const ButtonPressMode& e)
-{
- Json::FastWriter writer;
- return e.mInternal==ButtonPressMode::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable ButtonPressModeMarshaller::mHashTable[2]=
-{
- {"LONG",0},
- {"SHORT",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.gp
deleted file mode 100644
index e6482dc86..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name ButtonPressMode_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-LONG,0
-SHORT,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.h
deleted file mode 100644
index ce359e9e0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_BUTTONPRESSMODEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_BUTTONPRESSMODEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ButtonPressMode.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for ButtonPressMode
-
- class ButtonPressModeMarshaller
- {
- public:
-
- static std::string toName(const ButtonPressMode& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(ButtonPressMode& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=ButtonPressMode::INVALID_ENUM;
- }
-
- static bool checkIntegrity(ButtonPressMode& e) { return e.mInternal!=ButtonPressMode::INVALID_ENUM; }
- static bool checkIntegrityConst(const ButtonPressMode& e) { return e.mInternal!=ButtonPressMode::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,ButtonPressMode& e);
- static const std::string toString(const ButtonPressMode& e);
-
- static bool fromJSON(const Json::Value& s,ButtonPressMode& e);
- static Json::Value toJSON(const ButtonPressMode& e);
-
- static const char* getName(ButtonPressMode::ButtonPressModeInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const ButtonPressMode::ButtonPressModeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.inc
deleted file mode 100644
index ff3313482..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.inc
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 5
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 5
-/* maximum key range = 2, duplicates = 0 */
-
-class ButtonPressMode_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-ButtonPressMode_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-ButtonPressMode_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 5
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.gp"
- {"LONG",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ButtonPressModeMarshaller.gp"
- {"SHORT",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.cpp
deleted file mode 100644
index 186640026..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/CharacterSet.h"
-#include "CharacterSetMarshaller.h"
-#include "CharacterSetMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const CharacterSet::CharacterSetInternal CharacterSetMarshaller::getIndex(const char* s)
-{
- if(!s)
- return CharacterSet::INVALID_ENUM;
- const struct PerfectHashTable* p=CharacterSet_intHash::getPointer(s,strlen(s));
- return p ? static_cast<CharacterSet::CharacterSetInternal>(p->idx) : CharacterSet::INVALID_ENUM;
-}
-
-
-bool CharacterSetMarshaller::fromJSON(const Json::Value& s,CharacterSet& e)
-{
- e.mInternal=CharacterSet::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=CharacterSet::INVALID_ENUM);
-}
-
-
-Json::Value CharacterSetMarshaller::toJSON(const CharacterSet& e)
-{
- if(e.mInternal==CharacterSet::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool CharacterSetMarshaller::fromString(const std::string& s,CharacterSet& e)
-{
- e.mInternal=CharacterSet::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string CharacterSetMarshaller::toString(const CharacterSet& e)
-{
- Json::FastWriter writer;
- return e.mInternal==CharacterSet::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable CharacterSetMarshaller::mHashTable[4]=
-{
- {"TYPE2SET",0},
- {"TYPE5SET",1},
- {"CID1SET",2},
- {"CID2SET",3}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.gp
deleted file mode 100644
index f39607ce7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.gp
+++ /dev/null
@@ -1,20 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name CharacterSet_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-TYPE2SET,0
-TYPE5SET,1
-CID1SET,2
-CID2SET,3
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.h
deleted file mode 100644
index 61d453051..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_CHARACTERSETMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_CHARACTERSETMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/CharacterSet.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for CharacterSet
-
- class CharacterSetMarshaller
- {
- public:
-
- static std::string toName(const CharacterSet& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(CharacterSet& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=CharacterSet::INVALID_ENUM;
- }
-
- static bool checkIntegrity(CharacterSet& e) { return e.mInternal!=CharacterSet::INVALID_ENUM; }
- static bool checkIntegrityConst(const CharacterSet& e) { return e.mInternal!=CharacterSet::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,CharacterSet& e);
- static const std::string toString(const CharacterSet& e);
-
- static bool fromJSON(const Json::Value& s,CharacterSet& e);
- static Json::Value toJSON(const CharacterSet& e);
-
- static const char* getName(CharacterSet::CharacterSetInternal e)
- {
- return (e>=0 && e<4) ? mHashTable[e].name : NULL;
- }
-
- static const CharacterSet::CharacterSetInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[4];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.inc
deleted file mode 100644
index 09970013a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.inc
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.gp */
-/* Computed positions: -k'4-5' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 4
-#define MIN_WORD_LENGTH 7
-#define MAX_WORD_LENGTH 8
-#define MIN_HASH_VALUE 7
-#define MAX_HASH_VALUE 13
-/* maximum key range = 7, duplicates = 0 */
-
-class CharacterSet_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-CharacterSet_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
- 5, 14, 14, 0, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 0, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14
- };
- return len + asso_values[(unsigned char)str[4]] + asso_values[(unsigned char)str[3]];
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-CharacterSet_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 7, 8, 0, 0, 0, 7, 8
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.gp"
- {"CID1SET",2},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.gp"
- {"TYPE5SET",1},
- {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.gp"
- {"CID2SET",3},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CharacterSetMarshaller.gp"
- {"TYPE2SET",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Choice.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Choice.cpp
deleted file mode 100644
index 6063c44f8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Choice.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Choice.h"
-#include "ChoiceMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPC;
-
-Choice::Choice(const Choice& c)
-{
- *this=c;
-}
-
-
-bool Choice::checkIntegrity(void)
-{
- return ChoiceMarshaller::checkIntegrity(*this);
-}
-
-
-Choice::Choice(void)
-{
-}
-
-
-
-bool Choice::set_choiceID(unsigned int choiceID_)
-{
- if(choiceID_>65535) return false;
- choiceID=choiceID_;
- return true;
-}
-
-bool Choice::set_menuName(const std::string& menuName_)
-{
- if(menuName_.length()>500) return false;
- menuName=menuName_;
- return true;
-}
-
-bool Choice::set_vrCommands(const std::vector<std::string>& vrCommands_)
-{
- unsigned int i=vrCommands_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(vrCommands_[i].length()>99) return false;
- }
- vrCommands=vrCommands_;
- return true;
-}
-
-
-
-
-unsigned int Choice::get_choiceID(void) const
-{
- return choiceID;
-}
-
-
-const std::string& Choice::get_menuName(void) const
-{
- return menuName;
-}
-
-
-const std::vector<std::string>& Choice::get_vrCommands(void) const
-{
- return vrCommands;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ChoiceMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ChoiceMarshaller.cpp
deleted file mode 100644
index 1970e06b8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ChoiceMarshaller.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Choice.h"
-
-
-#include "ChoiceMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool ChoiceMarshaller::checkIntegrity(Choice& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ChoiceMarshaller::fromString(const std::string& s,Choice& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ChoiceMarshaller::toString(const Choice& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ChoiceMarshaller::checkIntegrityConst(const Choice& s)
-{
- if(s.choiceID>65535) return false;
- if(s.menuName.length()>500) return false;
- {
- unsigned int i=s.vrCommands.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.vrCommands[i].length()>99) return false;
- }
- }
- return true;
-}
-
-Json::Value ChoiceMarshaller::toJSON(const Choice& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["choiceID"]=Json::Value(e.choiceID);
-
- json["menuName"]=Json::Value(e.menuName);
-
- json["vrCommands"]=Json::Value(Json::arrayValue);
- json["vrCommands"].resize(e.vrCommands.size());
- for(unsigned int i=0;i<e.vrCommands.size();i++)
- json["vrCommands"][i]=Json::Value(e.vrCommands[i]);
-
-
- return json;
-}
-
-
-bool ChoiceMarshaller::fromJSON(const Json::Value& json,Choice& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("choiceID")) return false;
- {
- const Json::Value& j=json["choiceID"];
- if(!j.isInt()) return false;
- c.choiceID=j.asInt();
- }
- if(!json.isMember("menuName")) return false;
- {
- const Json::Value& j=json["menuName"];
- if(!j.isString()) return false;
- c.menuName=j.asString();
- }
- if(!json.isMember("vrCommands")) return false;
- {
- const Json::Value& j=json["vrCommands"];
- if(!j.isArray()) return false;
- c.vrCommands.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.vrCommands[i]=j[i].asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ChoiceMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ChoiceMarshaller.h
deleted file mode 100644
index 89332849e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ChoiceMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_CHOICEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_CHOICEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Choice.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct ChoiceMarshaller
- {
- static bool checkIntegrity(Choice& e);
- static bool checkIntegrityConst(const Choice& e);
-
- static bool fromString(const std::string& s,Choice& e);
- static const std::string toString(const Choice& e);
-
- static bool fromJSON(const Json::Value& s,Choice& e);
- static Json::Value toJSON(const Choice& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_request.cpp
deleted file mode 100644
index 2dbffb617..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_request.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_request.h"
-#include "CreateInteractionChoiceSet_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "ChoiceMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-CreateInteractionChoiceSet_request::~CreateInteractionChoiceSet_request(void)
-{
-}
-
-
-CreateInteractionChoiceSet_request::CreateInteractionChoiceSet_request(const CreateInteractionChoiceSet_request& c)
-{
- *this=c;
-}
-
-
-bool CreateInteractionChoiceSet_request::checkIntegrity(void)
-{
- return CreateInteractionChoiceSet_requestMarshaller::checkIntegrity(*this);
-}
-
-
-CreateInteractionChoiceSet_request::CreateInteractionChoiceSet_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_CREATEINTERACTIONCHOICESET_REQUEST)
-{
-}
-
-
-
-bool CreateInteractionChoiceSet_request::set_interactionChoiceSetID(unsigned int interactionChoiceSetID_)
-{
- if(interactionChoiceSetID_>2000000000) return false;
- interactionChoiceSetID=interactionChoiceSetID_;
- return true;
-}
-
-bool CreateInteractionChoiceSet_request::set_choiceSet(const std::vector<Choice>& choiceSet_)
-{
- unsigned int i=choiceSet_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!ChoiceMarshaller::checkIntegrityConst(choiceSet_[i])) return false;
- }
- choiceSet=choiceSet_;
- return true;
-}
-
-
-
-
-unsigned int CreateInteractionChoiceSet_request::get_interactionChoiceSetID(void) const
-{
- return interactionChoiceSetID;
-}
-
-const std::vector<Choice>& CreateInteractionChoiceSet_request::get_choiceSet(void) const
-{
- return choiceSet;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_requestMarshaller.cpp
deleted file mode 100644
index 85f551daf..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_requestMarshaller.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_request.h"
-#include "ChoiceMarshaller.h"
-
-#include "CreateInteractionChoiceSet_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool CreateInteractionChoiceSet_requestMarshaller::checkIntegrity(CreateInteractionChoiceSet_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool CreateInteractionChoiceSet_requestMarshaller::fromString(const std::string& s,CreateInteractionChoiceSet_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string CreateInteractionChoiceSet_requestMarshaller::toString(const CreateInteractionChoiceSet_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool CreateInteractionChoiceSet_requestMarshaller::checkIntegrityConst(const CreateInteractionChoiceSet_request& s)
-{
- if(s.interactionChoiceSetID>2000000000) return false;
- {
- unsigned int i=s.choiceSet.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!ChoiceMarshaller::checkIntegrityConst(s.choiceSet[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value CreateInteractionChoiceSet_requestMarshaller::toJSON(const CreateInteractionChoiceSet_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("CreateInteractionChoiceSet");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["interactionChoiceSetID"]=Json::Value(e.interactionChoiceSetID);
-
- j["choiceSet"]=Json::Value(Json::arrayValue);
- j["choiceSet"].resize(e.choiceSet.size());
- for(unsigned int i=0;i<e.choiceSet.size();i++)
- j["choiceSet"][i]=ChoiceMarshaller::toJSON(e.choiceSet[i]);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool CreateInteractionChoiceSet_requestMarshaller::fromJSON(const Json::Value& js,CreateInteractionChoiceSet_request& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("CreateInteractionChoiceSet")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("interactionChoiceSetID")) return false;
- {
- const Json::Value& j=json["interactionChoiceSetID"];
- if(!j.isInt()) return false;
- c.interactionChoiceSetID=j.asInt();
- }
- if(!json.isMember("choiceSet")) return false;
- {
- const Json::Value& j=json["choiceSet"];
- if(!j.isArray()) return false;
- c.choiceSet.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- Choice t;
- if(!ChoiceMarshaller::fromJSON(j[i],t))
- return false;
- c.choiceSet[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_requestMarshaller.h
deleted file mode 100644
index 54cfe9700..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_CREATEINTERACTIONCHOICESET_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_CREATEINTERACTIONCHOICESET_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct CreateInteractionChoiceSet_requestMarshaller
- {
- static bool checkIntegrity(CreateInteractionChoiceSet_request& e);
- static bool checkIntegrityConst(const CreateInteractionChoiceSet_request& e);
-
- static bool fromString(const std::string& s,CreateInteractionChoiceSet_request& e);
- static const std::string toString(const CreateInteractionChoiceSet_request& e);
-
- static bool fromJSON(const Json::Value& s,CreateInteractionChoiceSet_request& e);
- static Json::Value toJSON(const CreateInteractionChoiceSet_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_response.cpp
deleted file mode 100644
index b10cf8871..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_response.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_response.h"
-#include "CreateInteractionChoiceSet_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-CreateInteractionChoiceSet_response& CreateInteractionChoiceSet_response::operator =(
- const CreateInteractionChoiceSet_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-CreateInteractionChoiceSet_response::~CreateInteractionChoiceSet_response(void)
-{}
-
-CreateInteractionChoiceSet_response::CreateInteractionChoiceSet_response(const CreateInteractionChoiceSet_response& c)
-{
- *this = c;
-}
-
-bool CreateInteractionChoiceSet_response::checkIntegrity(void)
-{
- return CreateInteractionChoiceSet_responseMarshaller::checkIntegrity(*this);
-}
-
-
-CreateInteractionChoiceSet_response::CreateInteractionChoiceSet_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_CREATEINTERACTIONCHOICESET_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_responseMarshaller.cpp
deleted file mode 100644
index 24516347a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_response.h"
-#include "ResultMarshaller.h"
-
-#include "CreateInteractionChoiceSet_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool CreateInteractionChoiceSet_responseMarshaller::checkIntegrity(CreateInteractionChoiceSet_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool CreateInteractionChoiceSet_responseMarshaller::fromString(const std::string& s,CreateInteractionChoiceSet_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string CreateInteractionChoiceSet_responseMarshaller::toString(const CreateInteractionChoiceSet_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool CreateInteractionChoiceSet_responseMarshaller::checkIntegrityConst(const CreateInteractionChoiceSet_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value CreateInteractionChoiceSet_responseMarshaller::toJSON(const CreateInteractionChoiceSet_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("CreateInteractionChoiceSet");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool CreateInteractionChoiceSet_responseMarshaller::fromJSON(const Json::Value& js,CreateInteractionChoiceSet_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("CreateInteractionChoiceSet")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_responseMarshaller.h
deleted file mode 100644
index 48f660cfc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/CreateInteractionChoiceSet_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_CREATEINTERACTIONCHOICESET_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_CREATEINTERACTIONCHOICESET_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct CreateInteractionChoiceSet_responseMarshaller
- {
- static bool checkIntegrity(CreateInteractionChoiceSet_response& e);
- static bool checkIntegrityConst(const CreateInteractionChoiceSet_response& e);
-
- static bool fromString(const std::string& s,CreateInteractionChoiceSet_response& e);
- static const std::string toString(const CreateInteractionChoiceSet_response& e);
-
- static bool fromJSON(const Json::Value& s,CreateInteractionChoiceSet_response& e);
- static Json::Value toJSON(const CreateInteractionChoiceSet_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_request.cpp
deleted file mode 100644
index 68515991d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_request.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_request.h"
-#include "DeleteCommand_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-DeleteCommand_request::~DeleteCommand_request(void)
-{
-}
-
-
-DeleteCommand_request::DeleteCommand_request(const DeleteCommand_request& c)
-{
- *this=c;
-}
-
-
-bool DeleteCommand_request::checkIntegrity(void)
-{
- return DeleteCommand_requestMarshaller::checkIntegrity(*this);
-}
-
-
-DeleteCommand_request::DeleteCommand_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_DELETECOMMAND_REQUEST)
-{
-}
-
-
-
-bool DeleteCommand_request::set_cmdID(unsigned int cmdID_)
-{
- if(cmdID_>2000000000) return false;
- cmdID=cmdID_;
- return true;
-}
-
-
-
-
-unsigned int DeleteCommand_request::get_cmdID(void) const
-{
- return cmdID;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_requestMarshaller.cpp
deleted file mode 100644
index 81544db69..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_requestMarshaller.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_request.h"
-
-
-#include "DeleteCommand_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool DeleteCommand_requestMarshaller::checkIntegrity(DeleteCommand_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteCommand_requestMarshaller::fromString(const std::string& s,DeleteCommand_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteCommand_requestMarshaller::toString(const DeleteCommand_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteCommand_requestMarshaller::checkIntegrityConst(const DeleteCommand_request& s)
-{
- if(s.cmdID>2000000000) return false;
- return true;
-}
-
-Json::Value DeleteCommand_requestMarshaller::toJSON(const DeleteCommand_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("DeleteCommand");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["cmdID"]=Json::Value(e.cmdID);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool DeleteCommand_requestMarshaller::fromJSON(const Json::Value& js,DeleteCommand_request& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("DeleteCommand")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("cmdID")) return false;
- {
- const Json::Value& j=json["cmdID"];
- if(!j.isInt()) return false;
- c.cmdID=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_requestMarshaller.h
deleted file mode 100644
index 9ae921f1b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_DELETECOMMAND_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_DELETECOMMAND_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct DeleteCommand_requestMarshaller
- {
- static bool checkIntegrity(DeleteCommand_request& e);
- static bool checkIntegrityConst(const DeleteCommand_request& e);
-
- static bool fromString(const std::string& s,DeleteCommand_request& e);
- static const std::string toString(const DeleteCommand_request& e);
-
- static bool fromJSON(const Json::Value& s,DeleteCommand_request& e);
- static Json::Value toJSON(const DeleteCommand_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_response.cpp
deleted file mode 100644
index e16f993aa..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_response.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_response.h"
-#include "DeleteCommand_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-DeleteCommand_response& DeleteCommand_response::operator =(const DeleteCommand_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-DeleteCommand_response::~DeleteCommand_response(void)
-{}
-
-DeleteCommand_response::DeleteCommand_response(const DeleteCommand_response& c)
-{
- *this = c;
-}
-
-bool DeleteCommand_response::checkIntegrity(void)
-{
- return DeleteCommand_responseMarshaller::checkIntegrity(*this);
-}
-
-DeleteCommand_response::DeleteCommand_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_DELETECOMMAND_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_responseMarshaller.cpp
deleted file mode 100644
index 00fc9d26e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_response.h"
-#include "ResultMarshaller.h"
-
-#include "DeleteCommand_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool DeleteCommand_responseMarshaller::checkIntegrity(DeleteCommand_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteCommand_responseMarshaller::fromString(const std::string& s,DeleteCommand_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteCommand_responseMarshaller::toString(const DeleteCommand_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteCommand_responseMarshaller::checkIntegrityConst(const DeleteCommand_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value DeleteCommand_responseMarshaller::toJSON(const DeleteCommand_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("DeleteCommand");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool DeleteCommand_responseMarshaller::fromJSON(const Json::Value& js,DeleteCommand_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("DeleteCommand")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_responseMarshaller.h
deleted file mode 100644
index 58285f6a0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteCommand_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_DELETECOMMAND_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_DELETECOMMAND_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct DeleteCommand_responseMarshaller
- {
- static bool checkIntegrity(DeleteCommand_response& e);
- static bool checkIntegrityConst(const DeleteCommand_response& e);
-
- static bool fromString(const std::string& s,DeleteCommand_response& e);
- static const std::string toString(const DeleteCommand_response& e);
-
- static bool fromJSON(const Json::Value& s,DeleteCommand_response& e);
- static Json::Value toJSON(const DeleteCommand_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_request.cpp
deleted file mode 100644
index 520dbd928..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_request.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_request.h"
-#include "DeleteInteractionChoiceSet_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-DeleteInteractionChoiceSet_request::~DeleteInteractionChoiceSet_request(void)
-{
-}
-
-
-DeleteInteractionChoiceSet_request::DeleteInteractionChoiceSet_request(const DeleteInteractionChoiceSet_request& c)
-{
- *this=c;
-}
-
-
-bool DeleteInteractionChoiceSet_request::checkIntegrity(void)
-{
- return DeleteInteractionChoiceSet_requestMarshaller::checkIntegrity(*this);
-}
-
-
-DeleteInteractionChoiceSet_request::DeleteInteractionChoiceSet_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_DELETEINTERACTIONCHOICESET_REQUEST)
-{
-}
-
-
-
-bool DeleteInteractionChoiceSet_request::set_interactionChoiceSetID(unsigned int interactionChoiceSetID_)
-{
- if(interactionChoiceSetID_>2000000000) return false;
- interactionChoiceSetID=interactionChoiceSetID_;
- return true;
-}
-
-
-
-
-unsigned int DeleteInteractionChoiceSet_request::get_interactionChoiceSetID(void) const
-{
- return interactionChoiceSetID;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_requestMarshaller.cpp
deleted file mode 100644
index 2adb1109e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_requestMarshaller.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_request.h"
-
-
-#include "DeleteInteractionChoiceSet_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool DeleteInteractionChoiceSet_requestMarshaller::checkIntegrity(DeleteInteractionChoiceSet_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteInteractionChoiceSet_requestMarshaller::fromString(const std::string& s,DeleteInteractionChoiceSet_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteInteractionChoiceSet_requestMarshaller::toString(const DeleteInteractionChoiceSet_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteInteractionChoiceSet_requestMarshaller::checkIntegrityConst(const DeleteInteractionChoiceSet_request& s)
-{
- if(s.interactionChoiceSetID>2000000000) return false;
- return true;
-}
-
-Json::Value DeleteInteractionChoiceSet_requestMarshaller::toJSON(const DeleteInteractionChoiceSet_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("DeleteInteractionChoiceSet");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["interactionChoiceSetID"]=Json::Value(e.interactionChoiceSetID);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool DeleteInteractionChoiceSet_requestMarshaller::fromJSON(const Json::Value& js,DeleteInteractionChoiceSet_request& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("DeleteInteractionChoiceSet")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("interactionChoiceSetID")) return false;
- {
- const Json::Value& j=json["interactionChoiceSetID"];
- if(!j.isInt()) return false;
- c.interactionChoiceSetID=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_requestMarshaller.h
deleted file mode 100644
index 0a97a00e6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_DELETEINTERACTIONCHOICESET_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_DELETEINTERACTIONCHOICESET_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct DeleteInteractionChoiceSet_requestMarshaller
- {
- static bool checkIntegrity(DeleteInteractionChoiceSet_request& e);
- static bool checkIntegrityConst(const DeleteInteractionChoiceSet_request& e);
-
- static bool fromString(const std::string& s,DeleteInteractionChoiceSet_request& e);
- static const std::string toString(const DeleteInteractionChoiceSet_request& e);
-
- static bool fromJSON(const Json::Value& s,DeleteInteractionChoiceSet_request& e);
- static Json::Value toJSON(const DeleteInteractionChoiceSet_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_response.cpp
deleted file mode 100644
index dc5f09cf7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_response.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_response.h"
-#include "DeleteInteractionChoiceSet_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-DeleteInteractionChoiceSet_response& DeleteInteractionChoiceSet_response::operator =(
- const DeleteInteractionChoiceSet_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-
-DeleteInteractionChoiceSet_response::~DeleteInteractionChoiceSet_response(void)
-{
- if (info)
- {
- delete info;
- }
-}
-
-
-DeleteInteractionChoiceSet_response::DeleteInteractionChoiceSet_response(const DeleteInteractionChoiceSet_response& c)
-{
- *this = c;
-}
-
-
-bool DeleteInteractionChoiceSet_response::checkIntegrity(void)
-{
- return DeleteInteractionChoiceSet_responseMarshaller::checkIntegrity(*this);
-}
-
-
-DeleteInteractionChoiceSet_response::DeleteInteractionChoiceSet_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_DELETEINTERACTIONCHOICESET_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_responseMarshaller.cpp
deleted file mode 100644
index 43e370181..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_response.h"
-#include "ResultMarshaller.h"
-
-#include "DeleteInteractionChoiceSet_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool DeleteInteractionChoiceSet_responseMarshaller::checkIntegrity(DeleteInteractionChoiceSet_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteInteractionChoiceSet_responseMarshaller::fromString(const std::string& s,DeleteInteractionChoiceSet_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteInteractionChoiceSet_responseMarshaller::toString(const DeleteInteractionChoiceSet_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteInteractionChoiceSet_responseMarshaller::checkIntegrityConst(const DeleteInteractionChoiceSet_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value DeleteInteractionChoiceSet_responseMarshaller::toJSON(const DeleteInteractionChoiceSet_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("DeleteInteractionChoiceSet");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool DeleteInteractionChoiceSet_responseMarshaller::fromJSON(const Json::Value& js,DeleteInteractionChoiceSet_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("DeleteInteractionChoiceSet")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_responseMarshaller.h
deleted file mode 100644
index 62e8f5c6c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteInteractionChoiceSet_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_DELETEINTERACTIONCHOICESET_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_DELETEINTERACTIONCHOICESET_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct DeleteInteractionChoiceSet_responseMarshaller
- {
- static bool checkIntegrity(DeleteInteractionChoiceSet_response& e);
- static bool checkIntegrityConst(const DeleteInteractionChoiceSet_response& e);
-
- static bool fromString(const std::string& s,DeleteInteractionChoiceSet_response& e);
- static const std::string toString(const DeleteInteractionChoiceSet_response& e);
-
- static bool fromJSON(const Json::Value& s,DeleteInteractionChoiceSet_response& e);
- static Json::Value toJSON(const DeleteInteractionChoiceSet_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_request.cpp
deleted file mode 100644
index 74004227f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_request.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_request.h"
-#include "DeleteSubMenu_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-DeleteSubMenu_request::~DeleteSubMenu_request(void)
-{
-}
-
-
-DeleteSubMenu_request::DeleteSubMenu_request(const DeleteSubMenu_request& c)
-{
- *this=c;
-}
-
-
-bool DeleteSubMenu_request::checkIntegrity(void)
-{
- return DeleteSubMenu_requestMarshaller::checkIntegrity(*this);
-}
-
-
-DeleteSubMenu_request::DeleteSubMenu_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_DELETESUBMENU_REQUEST)
-{
-}
-
-
-
-bool DeleteSubMenu_request::set_menuID(unsigned int menuID_)
-{
- if(menuID_>2000000000) return false;
- menuID=menuID_;
- return true;
-}
-
-
-
-
-unsigned int DeleteSubMenu_request::get_menuID(void) const
-{
- return menuID;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_requestMarshaller.cpp
deleted file mode 100644
index 83756354d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_requestMarshaller.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_request.h"
-
-
-#include "DeleteSubMenu_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool DeleteSubMenu_requestMarshaller::checkIntegrity(DeleteSubMenu_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteSubMenu_requestMarshaller::fromString(const std::string& s,DeleteSubMenu_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteSubMenu_requestMarshaller::toString(const DeleteSubMenu_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteSubMenu_requestMarshaller::checkIntegrityConst(const DeleteSubMenu_request& s)
-{
- if(s.menuID>2000000000) return false;
- return true;
-}
-
-Json::Value DeleteSubMenu_requestMarshaller::toJSON(const DeleteSubMenu_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("DeleteSubMenu");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["menuID"]=Json::Value(e.menuID);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool DeleteSubMenu_requestMarshaller::fromJSON(const Json::Value& js,DeleteSubMenu_request& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("DeleteSubMenu")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("menuID")) return false;
- {
- const Json::Value& j=json["menuID"];
- if(!j.isInt()) return false;
- c.menuID=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_requestMarshaller.h
deleted file mode 100644
index 6e0bcd216..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_DELETESUBMENU_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_DELETESUBMENU_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct DeleteSubMenu_requestMarshaller
- {
- static bool checkIntegrity(DeleteSubMenu_request& e);
- static bool checkIntegrityConst(const DeleteSubMenu_request& e);
-
- static bool fromString(const std::string& s,DeleteSubMenu_request& e);
- static const std::string toString(const DeleteSubMenu_request& e);
-
- static bool fromJSON(const Json::Value& s,DeleteSubMenu_request& e);
- static Json::Value toJSON(const DeleteSubMenu_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_response.cpp
deleted file mode 100644
index ef99e4031..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_response.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_response.h"
-#include "DeleteSubMenu_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-DeleteSubMenu_response& DeleteSubMenu_response::operator =(const DeleteSubMenu_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-DeleteSubMenu_response::~DeleteSubMenu_response(void)
-{}
-
-DeleteSubMenu_response::DeleteSubMenu_response(const DeleteSubMenu_response& c)
-{
- *this = c;
-}
-
-bool DeleteSubMenu_response::checkIntegrity(void)
-{
- return DeleteSubMenu_responseMarshaller::checkIntegrity(*this);
-}
-
-DeleteSubMenu_response::DeleteSubMenu_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_DELETESUBMENU_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_responseMarshaller.cpp
deleted file mode 100644
index 430e995f0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_response.h"
-#include "ResultMarshaller.h"
-
-#include "DeleteSubMenu_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool DeleteSubMenu_responseMarshaller::checkIntegrity(DeleteSubMenu_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteSubMenu_responseMarshaller::fromString(const std::string& s,DeleteSubMenu_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteSubMenu_responseMarshaller::toString(const DeleteSubMenu_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteSubMenu_responseMarshaller::checkIntegrityConst(const DeleteSubMenu_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value DeleteSubMenu_responseMarshaller::toJSON(const DeleteSubMenu_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("DeleteSubMenu");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool DeleteSubMenu_responseMarshaller::fromJSON(const Json::Value& js,DeleteSubMenu_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("DeleteSubMenu")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_responseMarshaller.h
deleted file mode 100644
index 211c8c8ed..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DeleteSubMenu_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_DELETESUBMENU_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_DELETESUBMENU_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct DeleteSubMenu_responseMarshaller
- {
- static bool checkIntegrity(DeleteSubMenu_response& e);
- static bool checkIntegrityConst(const DeleteSubMenu_response& e);
-
- static bool fromString(const std::string& s,DeleteSubMenu_response& e);
- static const std::string toString(const DeleteSubMenu_response& e);
-
- static bool fromJSON(const Json::Value& s,DeleteSubMenu_response& e);
- static Json::Value toJSON(const DeleteSubMenu_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilities.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilities.cpp
deleted file mode 100644
index e8c5a7835..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilities.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DisplayCapabilities.h"
-#include "DisplayCapabilitiesMarshaller.h"
-#include "DisplayTypeMarshaller.h"
-#include "MediaClockFormatMarshaller.h"
-#include "TextFieldMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPC;
-
-DisplayCapabilities::DisplayCapabilities(const DisplayCapabilities& c)
-{
- *this=c;
-}
-
-
-bool DisplayCapabilities::checkIntegrity(void)
-{
- return DisplayCapabilitiesMarshaller::checkIntegrity(*this);
-}
-
-
-DisplayCapabilities::DisplayCapabilities(void)
-{
-}
-
-
-
-bool DisplayCapabilities::set_displayType(const DisplayType& displayType_)
-{
- if(!DisplayTypeMarshaller::checkIntegrityConst(displayType_)) return false;
- displayType=displayType_;
- return true;
-}
-
-bool DisplayCapabilities::set_mediaClockFormats(const std::vector<MediaClockFormat>& mediaClockFormats_)
-{
- unsigned int i=mediaClockFormats_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!MediaClockFormatMarshaller::checkIntegrityConst(mediaClockFormats_[i])) return false;
- }
- mediaClockFormats=mediaClockFormats_;
- return true;
-}
-
-bool DisplayCapabilities::set_textFields(const std::vector<TextField>& textFields_)
-{
- unsigned int i=textFields_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TextFieldMarshaller::checkIntegrityConst(textFields_[i])) return false;
- }
- textFields=textFields_;
- return true;
-}
-
-
-
-
-const DisplayType& DisplayCapabilities::get_displayType(void) const
-{
- return displayType;
-}
-
-
-const std::vector<MediaClockFormat>& DisplayCapabilities::get_mediaClockFormats(void) const
-{
- return mediaClockFormats;
-}
-
-
-const std::vector<TextField>& DisplayCapabilities::get_textFields(void) const
-{
- return textFields;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilitiesMarshaller.cpp
deleted file mode 100644
index 897ecbb5d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DisplayCapabilities.h"
-#include "DisplayTypeMarshaller.h"
-#include "MediaClockFormatMarshaller.h"
-#include "TextFieldMarshaller.h"
-
-#include "DisplayCapabilitiesMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool DisplayCapabilitiesMarshaller::checkIntegrity(DisplayCapabilities& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DisplayCapabilitiesMarshaller::fromString(const std::string& s,DisplayCapabilities& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DisplayCapabilitiesMarshaller::toString(const DisplayCapabilities& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DisplayCapabilitiesMarshaller::checkIntegrityConst(const DisplayCapabilities& s)
-{
- if(!DisplayTypeMarshaller::checkIntegrityConst(s.displayType)) return false;
- {
- unsigned int i=s.mediaClockFormats.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!MediaClockFormatMarshaller::checkIntegrityConst(s.mediaClockFormats[i])) return false;
- }
- }
- {
- unsigned int i=s.textFields.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TextFieldMarshaller::checkIntegrityConst(s.textFields[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value DisplayCapabilitiesMarshaller::toJSON(const DisplayCapabilities& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["displayType"]=DisplayTypeMarshaller::toJSON(e.displayType);
-
- json["mediaClockFormats"]=Json::Value(Json::arrayValue);
- json["mediaClockFormats"].resize(e.mediaClockFormats.size());
- for(unsigned int i=0;i<e.mediaClockFormats.size();i++)
- json["mediaClockFormats"][i]=MediaClockFormatMarshaller::toJSON(e.mediaClockFormats[i]);
-
- json["textFields"]=Json::Value(Json::arrayValue);
- json["textFields"].resize(e.textFields.size());
- for(unsigned int i=0;i<e.textFields.size();i++)
- json["textFields"][i]=TextFieldMarshaller::toJSON(e.textFields[i]);
-
-
- return json;
-}
-
-
-bool DisplayCapabilitiesMarshaller::fromJSON(const Json::Value& json,DisplayCapabilities& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("displayType")) return false;
- {
- const Json::Value& j=json["displayType"];
- if(!DisplayTypeMarshaller::fromJSON(j,c.displayType))
- return false;
- }
- if(!json.isMember("mediaClockFormats")) return false;
- {
- const Json::Value& j=json["mediaClockFormats"];
- if(!j.isArray()) return false;
- c.mediaClockFormats.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- MediaClockFormat t;
- if(!MediaClockFormatMarshaller::fromJSON(j[i],t))
- return false;
- c.mediaClockFormats[i]=t;
- }
-
- }
- if(!json.isMember("textFields")) return false;
- {
- const Json::Value& j=json["textFields"];
- if(!j.isArray()) return false;
- c.textFields.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TextField t;
- if(!TextFieldMarshaller::fromJSON(j[i],t))
- return false;
- c.textFields[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilitiesMarshaller.h
deleted file mode 100644
index 387918234..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_DISPLAYCAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_DISPLAYCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DisplayCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct DisplayCapabilitiesMarshaller
- {
- static bool checkIntegrity(DisplayCapabilities& e);
- static bool checkIntegrityConst(const DisplayCapabilities& e);
-
- static bool fromString(const std::string& s,DisplayCapabilities& e);
- static const std::string toString(const DisplayCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,DisplayCapabilities& e);
- static Json::Value toJSON(const DisplayCapabilities& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.cpp
deleted file mode 100644
index b75161e7a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/DisplayType.h"
-#include "DisplayTypeMarshaller.h"
-#include "DisplayTypeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const DisplayType::DisplayTypeInternal DisplayTypeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return DisplayType::INVALID_ENUM;
- const struct PerfectHashTable* p=DisplayType_intHash::getPointer(s,strlen(s));
- return p ? static_cast<DisplayType::DisplayTypeInternal>(p->idx) : DisplayType::INVALID_ENUM;
-}
-
-
-bool DisplayTypeMarshaller::fromJSON(const Json::Value& s,DisplayType& e)
-{
- e.mInternal=DisplayType::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=DisplayType::INVALID_ENUM);
-}
-
-
-Json::Value DisplayTypeMarshaller::toJSON(const DisplayType& e)
-{
- if(e.mInternal==DisplayType::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool DisplayTypeMarshaller::fromString(const std::string& s,DisplayType& e)
-{
- e.mInternal=DisplayType::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string DisplayTypeMarshaller::toString(const DisplayType& e)
-{
- Json::FastWriter writer;
- return e.mInternal==DisplayType::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable DisplayTypeMarshaller::mHashTable[9]=
-{
- {"CID",0},
- {"TYPE2",1},
- {"TYPE5",2},
- {"NGN",3},
- {"GEN2_8_DMA",4},
- {"GEN2_6_DMA",5},
- {"MFD3",6},
- {"MFD4",7},
- {"MFD5",8}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp
deleted file mode 100644
index ea34d6f9d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp
+++ /dev/null
@@ -1,25 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name DisplayType_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-CID,0
-TYPE2,1
-TYPE5,2
-NGN,3
-GEN2_8_DMA,4
-GEN2_6_DMA,5
-MFD3,6
-MFD4,7
-MFD5,8
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.h
deleted file mode 100644
index 8eb9ecacb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_DISPLAYTYPEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_DISPLAYTYPEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DisplayType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for DisplayType
-
- class DisplayTypeMarshaller
- {
- public:
-
- static std::string toName(const DisplayType& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(DisplayType& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=DisplayType::INVALID_ENUM;
- }
-
- static bool checkIntegrity(DisplayType& e) { return e.mInternal!=DisplayType::INVALID_ENUM; }
- static bool checkIntegrityConst(const DisplayType& e) { return e.mInternal!=DisplayType::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,DisplayType& e);
- static const std::string toString(const DisplayType& e);
-
- static bool fromJSON(const Json::Value& s,DisplayType& e);
- static Json::Value toJSON(const DisplayType& e);
-
- static const char* getName(DisplayType::DisplayTypeInternal e)
- {
- return (e>=0 && e<9) ? mHashTable[e].name : NULL;
- }
-
- static const DisplayType::DisplayTypeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[9];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.inc
deleted file mode 100644
index 62d29cff1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.inc
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp */
-/* Computed positions: -k'6,$' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 9
-#define MIN_WORD_LENGTH 3
-#define MAX_WORD_LENGTH 10
-#define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 20
-/* maximum key range = 18, duplicates = 0 */
-
-class DisplayType_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-DisplayType_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 15, 10, 5, 0, 5, 21, 0, 21, 21, 21,
- 21, 21, 21, 21, 21, 0, 21, 21, 5, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 0, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[5]];
- /*FALLTHROUGH*/
- case 5:
- case 4:
- case 3:
- break;
- }
- return hval + asso_values[(unsigned char)str[len - 1]];
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-DisplayType_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 3, 4, 5, 0, 0, 3, 4, 10, 0, 0, 0,
- 4, 10, 0, 0, 0, 0, 5
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp"
- {"NGN",3},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp"
- {"MFD5",8},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp"
- {"TYPE5",2},
- {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp"
- {"CID",0},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp"
- {"MFD4",7},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp"
- {"GEN2_8_DMA",4},
- {""}, {""}, {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp"
- {"MFD3",6},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp"
- {"GEN2_6_DMA",5},
- {""}, {""}, {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DisplayTypeMarshaller.gp"
- {"TYPE2",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.cpp
deleted file mode 100644
index 904196923..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/DriverDistractionState.h"
-#include "DriverDistractionStateMarshaller.h"
-#include "DriverDistractionStateMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const DriverDistractionState::DriverDistractionStateInternal DriverDistractionStateMarshaller::getIndex(const char* s)
-{
- if(!s)
- return DriverDistractionState::INVALID_ENUM;
- const struct PerfectHashTable* p=DriverDistractionState_intHash::getPointer(s,strlen(s));
- return p ? static_cast<DriverDistractionState::DriverDistractionStateInternal>(p->idx) : DriverDistractionState::INVALID_ENUM;
-}
-
-
-bool DriverDistractionStateMarshaller::fromJSON(const Json::Value& s,DriverDistractionState& e)
-{
- e.mInternal=DriverDistractionState::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=DriverDistractionState::INVALID_ENUM);
-}
-
-
-Json::Value DriverDistractionStateMarshaller::toJSON(const DriverDistractionState& e)
-{
- if(e.mInternal==DriverDistractionState::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool DriverDistractionStateMarshaller::fromString(const std::string& s,DriverDistractionState& e)
-{
- e.mInternal=DriverDistractionState::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string DriverDistractionStateMarshaller::toString(const DriverDistractionState& e)
-{
- Json::FastWriter writer;
- return e.mInternal==DriverDistractionState::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable DriverDistractionStateMarshaller::mHashTable[2]=
-{
- {"DD_ON",0},
- {"DD_OFF",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.gp
deleted file mode 100644
index 7e98b5c15..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name DriverDistractionState_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-DD_ON,0
-DD_OFF,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.h
deleted file mode 100644
index b9cbfd9b3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_DRIVERDISTRACTIONSTATEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_DRIVERDISTRACTIONSTATEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/DriverDistractionState.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for DriverDistractionState
-
- class DriverDistractionStateMarshaller
- {
- public:
-
- static std::string toName(const DriverDistractionState& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(DriverDistractionState& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=DriverDistractionState::INVALID_ENUM;
- }
-
- static bool checkIntegrity(DriverDistractionState& e) { return e.mInternal!=DriverDistractionState::INVALID_ENUM; }
- static bool checkIntegrityConst(const DriverDistractionState& e) { return e.mInternal!=DriverDistractionState::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,DriverDistractionState& e);
- static const std::string toString(const DriverDistractionState& e);
-
- static bool fromJSON(const Json::Value& s,DriverDistractionState& e);
- static Json::Value toJSON(const DriverDistractionState& e);
-
- static const char* getName(DriverDistractionState::DriverDistractionStateInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const DriverDistractionState::DriverDistractionStateInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.inc
deleted file mode 100644
index a82b29bac..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.inc
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 5
-#define MAX_WORD_LENGTH 6
-#define MIN_HASH_VALUE 5
-#define MAX_HASH_VALUE 6
-/* maximum key range = 2, duplicates = 0 */
-
-class DriverDistractionState_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-DriverDistractionState_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-DriverDistractionState_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 5, 6
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.gp"
- {"DD_ON",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/DriverDistractionStateMarshaller.gp"
- {"DD_OFF",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_request.cpp
deleted file mode 100644
index 476267107..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_request.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_request.h"
-#include "EncodedSyncPData_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-EncodedSyncPData_request& EncodedSyncPData_request::operator =(const EncodedSyncPData_request& c)
-{
- data= c.data ? new std::vector<std::string>(c.data[0]) : 0;
-
- return *this;}
-
-
-EncodedSyncPData_request::~EncodedSyncPData_request(void)
-{
- if(data)
- delete data;
-}
-
-
-EncodedSyncPData_request::EncodedSyncPData_request(const EncodedSyncPData_request& c)
-{
- *this=c;
-}
-
-
-bool EncodedSyncPData_request::checkIntegrity(void)
-{
- return EncodedSyncPData_requestMarshaller::checkIntegrity(*this);
-}
-
-
-EncodedSyncPData_request::EncodedSyncPData_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_ENCODEDSYNCPDATA_REQUEST),
- data(0)
-{
-}
-
-
-
-bool EncodedSyncPData_request::set_data(const std::vector<std::string>& data_)
-{
- unsigned int i=data_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(data_[i].length()>10000) return false;
- }
- delete data;
- data=0;
-
- data=new std::vector<std::string>(data_);
- return true;
-}
-
-void EncodedSyncPData_request::reset_data(void)
-{
- if(data)
- delete data;
- data=0;
-}
-
-
-
-
-const std::vector<std::string>* EncodedSyncPData_request::get_data(void) const
-{
- return data;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_requestMarshaller.cpp
deleted file mode 100644
index bdb5006ac..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_requestMarshaller.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_request.h"
-
-
-#include "EncodedSyncPData_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool EncodedSyncPData_requestMarshaller::checkIntegrity(EncodedSyncPData_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool EncodedSyncPData_requestMarshaller::fromString(const std::string& s,EncodedSyncPData_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string EncodedSyncPData_requestMarshaller::toString(const EncodedSyncPData_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool EncodedSyncPData_requestMarshaller::checkIntegrityConst(const EncodedSyncPData_request& s)
-{
- if(s.data)
- {
- unsigned int i=s.data[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.data[0][i].length()>10000) return false;
- }
- }
- return true;
-}
-
-Json::Value EncodedSyncPData_requestMarshaller::toJSON(const EncodedSyncPData_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("EncodedSyncPData");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- if(e.data)
- {
- unsigned int sz=e.data->size();
- j["data"]=Json::Value(Json::arrayValue);
- j["data"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["data"][i]=Json::Value(e.data[0][i]);
- }
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool EncodedSyncPData_requestMarshaller::fromJSON(const Json::Value& js,EncodedSyncPData_request& c)
-{
- if(c.data) delete c.data;
- c.data=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("EncodedSyncPData")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(json.isMember("data"))
- {
- const Json::Value& j=json["data"];
- if(!j.isArray()) return false;
- c.data=new std::vector<std::string>();
- c.data->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.data[0][i]=j[i].asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_requestMarshaller.h
deleted file mode 100644
index dddf12b16..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ENCODEDSYNCPDATA_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ENCODEDSYNCPDATA_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct EncodedSyncPData_requestMarshaller
- {
- static bool checkIntegrity(EncodedSyncPData_request& e);
- static bool checkIntegrityConst(const EncodedSyncPData_request& e);
-
- static bool fromString(const std::string& s,EncodedSyncPData_request& e);
- static const std::string toString(const EncodedSyncPData_request& e);
-
- static bool fromJSON(const Json::Value& s,EncodedSyncPData_request& e);
- static Json::Value toJSON(const EncodedSyncPData_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_response.cpp
deleted file mode 100644
index f28df3670..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_response.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_response.h"
-#include "EncodedSyncPData_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-EncodedSyncPData_response& EncodedSyncPData_response::operator =(const EncodedSyncPData_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-EncodedSyncPData_response::~EncodedSyncPData_response(void)
-{}
-
-EncodedSyncPData_response::EncodedSyncPData_response(const EncodedSyncPData_response& c)
-{
- *this = c;
-}
-
-bool EncodedSyncPData_response::checkIntegrity(void)
-{
- return EncodedSyncPData_responseMarshaller::checkIntegrity(*this);
-}
-
-EncodedSyncPData_response::EncodedSyncPData_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_ENCODEDSYNCPDATA_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_responseMarshaller.cpp
deleted file mode 100644
index e3c9b8e9b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_response.h"
-#include "ResultMarshaller.h"
-
-#include "EncodedSyncPData_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool EncodedSyncPData_responseMarshaller::checkIntegrity(EncodedSyncPData_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool EncodedSyncPData_responseMarshaller::fromString(const std::string& s,EncodedSyncPData_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string EncodedSyncPData_responseMarshaller::toString(const EncodedSyncPData_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool EncodedSyncPData_responseMarshaller::checkIntegrityConst(const EncodedSyncPData_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value EncodedSyncPData_responseMarshaller::toJSON(const EncodedSyncPData_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("EncodedSyncPData");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool EncodedSyncPData_responseMarshaller::fromJSON(const Json::Value& js,EncodedSyncPData_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("EncodedSyncPData")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_responseMarshaller.h
deleted file mode 100644
index 903d9ff35..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/EncodedSyncPData_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ENCODEDSYNCPDATA_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ENCODEDSYNCPDATA_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct EncodedSyncPData_responseMarshaller
- {
- static bool checkIntegrity(EncodedSyncPData_response& e);
- static bool checkIntegrityConst(const EncodedSyncPData_response& e);
-
- static bool fromString(const std::string& s,EncodedSyncPData_response& e);
- static const std::string toString(const EncodedSyncPData_response& e);
-
- static bool fromJSON(const Json::Value& s,EncodedSyncPData_response& e);
- static Json::Value toJSON(const EncodedSyncPData_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_response.cpp
deleted file mode 100644
index f17773497..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_response.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/GenericResponse_response.h"
-#include "GenericResponse_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-GenericResponse_response& GenericResponse_response::operator =(const GenericResponse_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-GenericResponse_response::~GenericResponse_response(void)
-{}
-
-GenericResponse_response::GenericResponse_response(const GenericResponse_response& c)
-{
- *this = c;
-}
-
-bool GenericResponse_response::checkIntegrity(void)
-{
- return GenericResponse_responseMarshaller::checkIntegrity(*this);
-}
-
-GenericResponse_response::GenericResponse_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_GENERICRESPONSE_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_responseMarshaller.cpp
deleted file mode 100644
index 7f30f6c3f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/GenericResponse_response.h"
-#include "ResultMarshaller.h"
-
-#include "GenericResponse_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool GenericResponse_responseMarshaller::checkIntegrity(GenericResponse_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GenericResponse_responseMarshaller::fromString(const std::string& s,GenericResponse_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GenericResponse_responseMarshaller::toString(const GenericResponse_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GenericResponse_responseMarshaller::checkIntegrityConst(const GenericResponse_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value GenericResponse_responseMarshaller::toJSON(const GenericResponse_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("GenericResponse");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool GenericResponse_responseMarshaller::fromJSON(const Json::Value& js,GenericResponse_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("GenericResponse")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_responseMarshaller.h
deleted file mode 100644
index 555bc7b3f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GenericResponse_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_GENERICRESPONSE_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_GENERICRESPONSE_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/GenericResponse_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct GenericResponse_responseMarshaller
- {
- static bool checkIntegrity(GenericResponse_response& e);
- static bool checkIntegrityConst(const GenericResponse_response& e);
-
- static bool fromString(const std::string& s,GenericResponse_response& e);
- static const std::string toString(const GenericResponse_response& e);
-
- static bool fromJSON(const Json::Value& s,GenericResponse_response& e);
- static Json::Value toJSON(const GenericResponse_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.cpp
deleted file mode 100644
index 04c31edc3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/GlobalProperty.h"
-#include "GlobalPropertyMarshaller.h"
-#include "GlobalPropertyMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const GlobalProperty::GlobalPropertyInternal GlobalPropertyMarshaller::getIndex(const char* s)
-{
- if(!s)
- return GlobalProperty::INVALID_ENUM;
- const struct PerfectHashTable* p=GlobalProperty_intHash::getPointer(s,strlen(s));
- return p ? static_cast<GlobalProperty::GlobalPropertyInternal>(p->idx) : GlobalProperty::INVALID_ENUM;
-}
-
-
-bool GlobalPropertyMarshaller::fromJSON(const Json::Value& s,GlobalProperty& e)
-{
- e.mInternal=GlobalProperty::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=GlobalProperty::INVALID_ENUM);
-}
-
-
-Json::Value GlobalPropertyMarshaller::toJSON(const GlobalProperty& e)
-{
- if(e.mInternal==GlobalProperty::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool GlobalPropertyMarshaller::fromString(const std::string& s,GlobalProperty& e)
-{
- e.mInternal=GlobalProperty::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string GlobalPropertyMarshaller::toString(const GlobalProperty& e)
-{
- Json::FastWriter writer;
- return e.mInternal==GlobalProperty::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable GlobalPropertyMarshaller::mHashTable[2]=
-{
- {"HELPPROMPT",0},
- {"TIMEOUTPROMPT",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.gp
deleted file mode 100644
index 99a3d1076..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name GlobalProperty_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-HELPPROMPT,0
-TIMEOUTPROMPT,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.h
deleted file mode 100644
index f9b555446..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_GLOBALPROPERTYMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_GLOBALPROPERTYMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/GlobalProperty.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for GlobalProperty
-
- class GlobalPropertyMarshaller
- {
- public:
-
- static std::string toName(const GlobalProperty& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(GlobalProperty& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=GlobalProperty::INVALID_ENUM;
- }
-
- static bool checkIntegrity(GlobalProperty& e) { return e.mInternal!=GlobalProperty::INVALID_ENUM; }
- static bool checkIntegrityConst(const GlobalProperty& e) { return e.mInternal!=GlobalProperty::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,GlobalProperty& e);
- static const std::string toString(const GlobalProperty& e);
-
- static bool fromJSON(const Json::Value& s,GlobalProperty& e);
- static Json::Value toJSON(const GlobalProperty& e);
-
- static const char* getName(GlobalProperty::GlobalPropertyInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const GlobalProperty::GlobalPropertyInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.inc
deleted file mode 100644
index c4cb253af..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.inc
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 10
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 10
-#define MAX_HASH_VALUE 13
-/* maximum key range = 4, duplicates = 0 */
-
-class GlobalProperty_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-GlobalProperty_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-GlobalProperty_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.gp"
- {"HELPPROMPT",0},
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/GlobalPropertyMarshaller.gp"
- {"TIMEOUTPROMPT",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.cpp
deleted file mode 100644
index a887ba550..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/HMILevel.h"
-#include "HMILevelMarshaller.h"
-#include "HMILevelMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const HMILevel::HMILevelInternal HMILevelMarshaller::getIndex(const char* s)
-{
- if(!s)
- return HMILevel::INVALID_ENUM;
- const struct PerfectHashTable* p=HMILevel_intHash::getPointer(s,strlen(s));
- return p ? static_cast<HMILevel::HMILevelInternal>(p->idx) : HMILevel::INVALID_ENUM;
-}
-
-
-bool HMILevelMarshaller::fromJSON(const Json::Value& s,HMILevel& e)
-{
- e.mInternal=HMILevel::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=HMILevel::INVALID_ENUM);
-}
-
-
-Json::Value HMILevelMarshaller::toJSON(const HMILevel& e)
-{
- if(e.mInternal==HMILevel::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool HMILevelMarshaller::fromString(const std::string& s,HMILevel& e)
-{
- e.mInternal=HMILevel::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string HMILevelMarshaller::toString(const HMILevel& e)
-{
- Json::FastWriter writer;
- return e.mInternal==HMILevel::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable HMILevelMarshaller::mHashTable[4]=
-{
- {"FULL",0},
- {"LIMITED",1},
- {"BACKGROUND",2},
- {"NONE",3}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.gp
deleted file mode 100644
index 640060844..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.gp
+++ /dev/null
@@ -1,20 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name HMILevel_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-FULL,0
-LIMITED,1
-BACKGROUND,2
-NONE,3
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.h
deleted file mode 100644
index 372e394b5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_HMILEVELMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_HMILEVELMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/HMILevel.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for HMILevel
-
- class HMILevelMarshaller
- {
- public:
-
- static std::string toName(const HMILevel& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(HMILevel& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=HMILevel::INVALID_ENUM;
- }
-
- static bool checkIntegrity(HMILevel& e) { return e.mInternal!=HMILevel::INVALID_ENUM; }
- static bool checkIntegrityConst(const HMILevel& e) { return e.mInternal!=HMILevel::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,HMILevel& e);
- static const std::string toString(const HMILevel& e);
-
- static bool fromJSON(const Json::Value& s,HMILevel& e);
- static Json::Value toJSON(const HMILevel& e);
-
- static const char* getName(HMILevel::HMILevelInternal e)
- {
- return (e>=0 && e<4) ? mHashTable[e].name : NULL;
- }
-
- static const HMILevel::HMILevelInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[4];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.inc
deleted file mode 100644
index 8d9728feb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.inc
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright (c) 2013 Ford Motor Company */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.gp */
-/* Computed positions: -k'1' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 4
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 10
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 10
-/* maximum key range = 7, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPC {
-
-class HMILevel_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-HMILevel_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 0, 11, 11, 11,
- 5, 11, 11, 11, 11, 11, 0, 11, 0, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11
- };
- return len + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-HMILevel_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 0, 0, 7, 0, 4, 10
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.gp"
- {"NONE",3},
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.gp"
- {"LIMITED",1},
- {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.gp"
- {"FULL",0},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HMILevelMarshaller.gp"
- {"BACKGROUND",2}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-} \ No newline at end of file
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.cpp
deleted file mode 100644
index 1c940d491..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/HmiZoneCapabilities.h"
-#include "HmiZoneCapabilitiesMarshaller.h"
-#include "HmiZoneCapabilitiesMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const HmiZoneCapabilities::HmiZoneCapabilitiesInternal HmiZoneCapabilitiesMarshaller::getIndex(const char* s)
-{
- if(!s)
- return HmiZoneCapabilities::INVALID_ENUM;
- const struct PerfectHashTable* p=HmiZoneCapabilities_intHash::getPointer(s,strlen(s));
- return p ? static_cast<HmiZoneCapabilities::HmiZoneCapabilitiesInternal>(p->idx) : HmiZoneCapabilities::INVALID_ENUM;
-}
-
-
-bool HmiZoneCapabilitiesMarshaller::fromJSON(const Json::Value& s,HmiZoneCapabilities& e)
-{
- e.mInternal=HmiZoneCapabilities::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=HmiZoneCapabilities::INVALID_ENUM);
-}
-
-
-Json::Value HmiZoneCapabilitiesMarshaller::toJSON(const HmiZoneCapabilities& e)
-{
- if(e.mInternal==HmiZoneCapabilities::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool HmiZoneCapabilitiesMarshaller::fromString(const std::string& s,HmiZoneCapabilities& e)
-{
- e.mInternal=HmiZoneCapabilities::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string HmiZoneCapabilitiesMarshaller::toString(const HmiZoneCapabilities& e)
-{
- Json::FastWriter writer;
- return e.mInternal==HmiZoneCapabilities::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable HmiZoneCapabilitiesMarshaller::mHashTable[2]=
-{
- {"FRONT",0},
- {"BACK",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.gp
deleted file mode 100644
index 40d272c87..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name HmiZoneCapabilities_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-FRONT,0
-BACK,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.h
deleted file mode 100644
index d05988a59..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_HMIZONECAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_HMIZONECAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/HmiZoneCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for HmiZoneCapabilities
-
- class HmiZoneCapabilitiesMarshaller
- {
- public:
-
- static std::string toName(const HmiZoneCapabilities& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(HmiZoneCapabilities& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=HmiZoneCapabilities::INVALID_ENUM;
- }
-
- static bool checkIntegrity(HmiZoneCapabilities& e) { return e.mInternal!=HmiZoneCapabilities::INVALID_ENUM; }
- static bool checkIntegrityConst(const HmiZoneCapabilities& e) { return e.mInternal!=HmiZoneCapabilities::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,HmiZoneCapabilities& e);
- static const std::string toString(const HmiZoneCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,HmiZoneCapabilities& e);
- static Json::Value toJSON(const HmiZoneCapabilities& e);
-
- static const char* getName(HmiZoneCapabilities::HmiZoneCapabilitiesInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const HmiZoneCapabilities::HmiZoneCapabilitiesInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.inc
deleted file mode 100644
index 1d8e37870..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.inc
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 5
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 5
-/* maximum key range = 2, duplicates = 0 */
-
-class HmiZoneCapabilities_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-HmiZoneCapabilities_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-HmiZoneCapabilities_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 5
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.gp"
- {"BACK",1},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/HmiZoneCapabilitiesMarshaller.gp"
- {"FRONT",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.cpp
deleted file mode 100644
index 98ba5a0da..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/InteractionMode.h"
-#include "InteractionModeMarshaller.h"
-#include "InteractionModeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const InteractionMode::InteractionModeInternal InteractionModeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return InteractionMode::INVALID_ENUM;
- const struct PerfectHashTable* p=InteractionMode_intHash::getPointer(s,strlen(s));
- return p ? static_cast<InteractionMode::InteractionModeInternal>(p->idx) : InteractionMode::INVALID_ENUM;
-}
-
-
-bool InteractionModeMarshaller::fromJSON(const Json::Value& s,InteractionMode& e)
-{
- e.mInternal=InteractionMode::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=InteractionMode::INVALID_ENUM);
-}
-
-
-Json::Value InteractionModeMarshaller::toJSON(const InteractionMode& e)
-{
- if(e.mInternal==InteractionMode::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool InteractionModeMarshaller::fromString(const std::string& s,InteractionMode& e)
-{
- e.mInternal=InteractionMode::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string InteractionModeMarshaller::toString(const InteractionMode& e)
-{
- Json::FastWriter writer;
- return e.mInternal==InteractionMode::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable InteractionModeMarshaller::mHashTable[3]=
-{
- {"MANUAL_ONLY",0},
- {"VR_ONLY",1},
- {"BOTH",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.gp
deleted file mode 100644
index 256bee809..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name InteractionMode_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-MANUAL_ONLY,0
-VR_ONLY,1
-BOTH,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.h
deleted file mode 100644
index ef1229d91..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_INTERACTIONMODEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_INTERACTIONMODEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/InteractionMode.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for InteractionMode
-
- class InteractionModeMarshaller
- {
- public:
-
- static std::string toName(const InteractionMode& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(InteractionMode& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=InteractionMode::INVALID_ENUM;
- }
-
- static bool checkIntegrity(InteractionMode& e) { return e.mInternal!=InteractionMode::INVALID_ENUM; }
- static bool checkIntegrityConst(const InteractionMode& e) { return e.mInternal!=InteractionMode::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,InteractionMode& e);
- static const std::string toString(const InteractionMode& e);
-
- static bool fromJSON(const Json::Value& s,InteractionMode& e);
- static Json::Value toJSON(const InteractionMode& e);
-
- static const char* getName(InteractionMode::InteractionModeInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const InteractionMode::InteractionModeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.inc
deleted file mode 100644
index f01669d29..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.inc
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 11
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 11
-/* maximum key range = 8, duplicates = 0 */
-
-class InteractionMode_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-InteractionMode_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-InteractionMode_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 0, 0, 7, 0, 0, 0, 11
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.gp"
- {"BOTH",2},
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.gp"
- {"VR_ONLY",1},
- {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/InteractionModeMarshaller.gp"
- {"MANUAL_ONLY",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.cpp
deleted file mode 100644
index 6e916f276..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/Language.h"
-#include "LanguageMarshaller.h"
-#include "LanguageMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const Language::LanguageInternal LanguageMarshaller::getIndex(const char* s)
-{
- if(!s)
- return Language::INVALID_ENUM;
- const struct PerfectHashTable* p=Language_intHash::getPointer(s,strlen(s));
- return p ? static_cast<Language::LanguageInternal>(p->idx) : Language::INVALID_ENUM;
-}
-
-
-bool LanguageMarshaller::fromJSON(const Json::Value& s,Language& e)
-{
- e.mInternal=Language::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=Language::INVALID_ENUM);
-}
-
-
-Json::Value LanguageMarshaller::toJSON(const Language& e)
-{
- if(e.mInternal==Language::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool LanguageMarshaller::fromString(const std::string& s,Language& e)
-{
- e.mInternal=Language::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string LanguageMarshaller::toString(const Language& e)
-{
- Json::FastWriter writer;
- return e.mInternal==Language::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable LanguageMarshaller::mHashTable[3]=
-{
- {"EN-US",0},
- {"ES-MX",1},
- {"FR-CA",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.gp
deleted file mode 100644
index 34331fc4d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name Language_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-EN-US,0
-ES-MX,1
-FR-CA,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.h
deleted file mode 100644
index d77fe6db6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_LANGUAGEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_LANGUAGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Language.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for Language
-
- class LanguageMarshaller
- {
- public:
-
- static std::string toName(const Language& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(Language& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=Language::INVALID_ENUM;
- }
-
- static bool checkIntegrity(Language& e) { return e.mInternal!=Language::INVALID_ENUM; }
- static bool checkIntegrityConst(const Language& e) { return e.mInternal!=Language::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,Language& e);
- static const std::string toString(const Language& e);
-
- static bool fromJSON(const Json::Value& s,Language& e);
- static Json::Value toJSON(const Language& e);
-
- static const char* getName(Language::LanguageInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const Language::LanguageInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.inc
deleted file mode 100644
index 4c947e038..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.inc
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.gp */
-/* Computed positions: -k'2' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 5
-#define MAX_WORD_LENGTH 5
-#define MIN_HASH_VALUE 5
-#define MAX_HASH_VALUE 7
-/* maximum key range = 3, duplicates = 0 */
-
-class Language_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-Language_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 2, 8,
- 8, 8, 1, 0, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8
- };
- return len + asso_values[(unsigned char)str[1]];
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-Language_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 5, 5, 5
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.gp"
- {"ES-MX",1},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.gp"
- {"FR-CA",2},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/LanguageMarshaller.gp"
- {"EN-US",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.cpp
deleted file mode 100644
index 79a508129..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.cpp
+++ /dev/null
@@ -1,816 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddCommand_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddCommand_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteCommand_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/AddSubMenu_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteSubMenu_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/CreateInteractionChoiceSet_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/DeleteInteractionChoiceSet_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Alert_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Alert_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Show_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Show_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Speak_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Speak_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/EncodedSyncPData_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/GenericResponse_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnHMIStatus.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnAppInterfaceUnregistered.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnButtonEvent.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnButtonPress.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnCommand.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnEncodedSyncPData.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnTBTClientState.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnDriverDistraction.h"
-namespace NsSmartDeviceLinkRPC
-{
-#include "Marshaller.inc"
-}
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const Marshaller::Methods Marshaller::getIndex(const char* s)
-{
- if(!s)
- return METHOD_INVALID;
- const struct localHash* p=Marshaller_intHash::getPointer(s,strlen(s));
- return p ? static_cast<Methods>(p->idx) : METHOD_INVALID;
-}
-
-
-SDLRPCMessage* Marshaller::fromString(const std::string& s)
-{
- SDLRPCMessage* rv=0;
- try
- {
- Json::Reader reader;
- Json::Value json;
-
- if(!reader.parse(s,json,false)) return 0;
- if(!(rv=fromJSON(json))) return 0;
- }
- catch(...)
- {
- return 0;
- }
- return rv;
-}
-
-std::string Marshaller::toString(const SDLRPCMessage* msg)
-{
- if(!msg) return "";
-
- Json::Value json=toJSON(msg);
-
- if(json.isNull()) return "";
-
- Json::FastWriter writer;
- std::string rv;
- return writer.write(json);
-}
-
-
-SDLRPCMessage* Marshaller::fromJSON(const Json::Value& json)
-{
- if(!json.isObject()) return NULL;
- Json::Value j=Json::Value(Json::nullValue);
-
- std::string tp;
- if(json.isMember("notification")) j=json[tp="notification"];
-
- if(json.isMember("request")) j=json[tp="request"];
- if(json.isMember("response")) j=json[tp="response"];
-
- if(!j.isObject()) return NULL;
- if(!j.isMember("name") || !j["name"].isString()) return NULL;
-
- std::string ts=j["name"].asString()+"_"+tp;
-
- Methods m=getIndex(ts.c_str());
- switch(m) // let's rock, china style
- {
- case METHOD_INVALID:
- return NULL;
-
- case METHOD_REGISTERAPPINTERFACE_REQUEST:
- {
- RegisterAppInterface_request* rv=new RegisterAppInterface_request;
- if(RegisterAppInterface_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_REGISTERAPPINTERFACE_RESPONSE:
- {
- RegisterAppInterface_response* rv=new RegisterAppInterface_response;
- if(RegisterAppInterface_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_UNREGISTERAPPINTERFACE_REQUEST:
- {
- UnregisterAppInterface_request* rv=new UnregisterAppInterface_request;
- if(UnregisterAppInterface_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_UNREGISTERAPPINTERFACE_RESPONSE:
- {
- UnregisterAppInterface_response* rv=new UnregisterAppInterface_response;
- if(UnregisterAppInterface_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_SETGLOBALPROPERTIES_REQUEST:
- {
- SetGlobalProperties_request* rv=new SetGlobalProperties_request;
- if(SetGlobalProperties_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_SETGLOBALPROPERTIES_RESPONSE:
- {
- SetGlobalProperties_response* rv=new SetGlobalProperties_response;
- if(SetGlobalProperties_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_RESETGLOBALPROPERTIES_REQUEST:
- {
- ResetGlobalProperties_request* rv=new ResetGlobalProperties_request;
- if(ResetGlobalProperties_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_RESETGLOBALPROPERTIES_RESPONSE:
- {
- ResetGlobalProperties_response* rv=new ResetGlobalProperties_response;
- if(ResetGlobalProperties_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ADDCOMMAND_REQUEST:
- {
- AddCommand_request* rv=new AddCommand_request;
- if(AddCommand_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ADDCOMMAND_RESPONSE:
- {
- AddCommand_response* rv=new AddCommand_response;
- if(AddCommand_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_DELETECOMMAND_REQUEST:
- {
- DeleteCommand_request* rv=new DeleteCommand_request;
- if(DeleteCommand_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_DELETECOMMAND_RESPONSE:
- {
- DeleteCommand_response* rv=new DeleteCommand_response;
- if(DeleteCommand_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ADDSUBMENU_REQUEST:
- {
- AddSubMenu_request* rv=new AddSubMenu_request;
- if(AddSubMenu_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ADDSUBMENU_RESPONSE:
- {
- AddSubMenu_response* rv=new AddSubMenu_response;
- if(AddSubMenu_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_DELETESUBMENU_REQUEST:
- {
- DeleteSubMenu_request* rv=new DeleteSubMenu_request;
- if(DeleteSubMenu_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_DELETESUBMENU_RESPONSE:
- {
- DeleteSubMenu_response* rv=new DeleteSubMenu_response;
- if(DeleteSubMenu_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_CREATEINTERACTIONCHOICESET_REQUEST:
- {
- CreateInteractionChoiceSet_request* rv=new CreateInteractionChoiceSet_request;
- if(CreateInteractionChoiceSet_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_CREATEINTERACTIONCHOICESET_RESPONSE:
- {
- CreateInteractionChoiceSet_response* rv=new CreateInteractionChoiceSet_response;
- if(CreateInteractionChoiceSet_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_PERFORMINTERACTION_REQUEST:
- {
- PerformInteraction_request* rv=new PerformInteraction_request;
- if(PerformInteraction_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_PERFORMINTERACTION_RESPONSE:
- {
- PerformInteraction_response* rv=new PerformInteraction_response;
- if(PerformInteraction_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_DELETEINTERACTIONCHOICESET_REQUEST:
- {
- DeleteInteractionChoiceSet_request* rv=new DeleteInteractionChoiceSet_request;
- if(DeleteInteractionChoiceSet_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_DELETEINTERACTIONCHOICESET_RESPONSE:
- {
- DeleteInteractionChoiceSet_response* rv=new DeleteInteractionChoiceSet_response;
- if(DeleteInteractionChoiceSet_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ALERT_REQUEST:
- {
- Alert_request* rv=new Alert_request;
- if(Alert_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ALERT_RESPONSE:
- {
- Alert_response* rv=new Alert_response;
- if(Alert_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_SHOW_REQUEST:
- {
- Show_request* rv=new Show_request;
- if(Show_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_SHOW_RESPONSE:
- {
- Show_response* rv=new Show_response;
- if(Show_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_SPEAK_REQUEST:
- {
- Speak_request* rv=new Speak_request;
- if(Speak_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_SPEAK_RESPONSE:
- {
- Speak_response* rv=new Speak_response;
- if(Speak_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_SETMEDIACLOCKTIMER_REQUEST:
- {
- SetMediaClockTimer_request* rv=new SetMediaClockTimer_request;
- if(SetMediaClockTimer_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_SETMEDIACLOCKTIMER_RESPONSE:
- {
- SetMediaClockTimer_response* rv=new SetMediaClockTimer_response;
- if(SetMediaClockTimer_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ENCODEDSYNCPDATA_REQUEST:
- {
- EncodedSyncPData_request* rv=new EncodedSyncPData_request;
- if(EncodedSyncPData_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ENCODEDSYNCPDATA_RESPONSE:
- {
- EncodedSyncPData_response* rv=new EncodedSyncPData_response;
- if(EncodedSyncPData_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_SUBSCRIBEBUTTON_REQUEST:
- {
- SubscribeButton_request* rv=new SubscribeButton_request;
- if(SubscribeButton_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_SUBSCRIBEBUTTON_RESPONSE:
- {
- SubscribeButton_response* rv=new SubscribeButton_response;
- if(SubscribeButton_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_UNSUBSCRIBEBUTTON_REQUEST:
- {
- UnsubscribeButton_request* rv=new UnsubscribeButton_request;
- if(UnsubscribeButton_requestMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_UNSUBSCRIBEBUTTON_RESPONSE:
- {
- UnsubscribeButton_response* rv=new UnsubscribeButton_response;
- if(UnsubscribeButton_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_GENERICRESPONSE_RESPONSE:
- {
- GenericResponse_response* rv=new GenericResponse_response;
- if(GenericResponse_responseMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ONHMISTATUS:
- {
- OnHMIStatus* rv=new OnHMIStatus;
- if(OnHMIStatusMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ONAPPINTERFACEUNREGISTERED:
- {
- OnAppInterfaceUnregistered* rv=new OnAppInterfaceUnregistered;
- if(OnAppInterfaceUnregisteredMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ONBUTTONEVENT:
- {
- OnButtonEvent* rv=new OnButtonEvent;
- if(OnButtonEventMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ONBUTTONPRESS:
- {
- OnButtonPress* rv=new OnButtonPress;
- if(OnButtonPressMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ONCOMMAND:
- {
- OnCommand* rv=new OnCommand;
- if(OnCommandMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ONENCODEDSYNCPDATA:
- {
- OnEncodedSyncPData* rv=new OnEncodedSyncPData;
- if(OnEncodedSyncPDataMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ONTBTCLIENTSTATE:
- {
- OnTBTClientState* rv=new OnTBTClientState;
- if(OnTBTClientStateMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- case METHOD_ONDRIVERDISTRACTION:
- {
- OnDriverDistraction* rv=new OnDriverDistraction;
- if(OnDriverDistractionMarshaller::fromJSON(json,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- }
-
- return NULL;
-}
-
-Json::Value Marshaller::toJSON(const SDLRPCMessage* msg)
-{
- Json::Value j=Json::Value(Json::nullValue);
-
- if(!msg) return j;
- Methods m=static_cast<Methods>(msg->getMethodId());
-
- switch(m)
- {
- case METHOD_REGISTERAPPINTERFACE_REQUEST:
- return RegisterAppInterface_requestMarshaller::toJSON(* static_cast<const RegisterAppInterface_request*>(msg));
-
- case METHOD_REGISTERAPPINTERFACE_RESPONSE:
- return RegisterAppInterface_responseMarshaller::toJSON(* static_cast<const RegisterAppInterface_response*>(msg));
-
- case METHOD_UNREGISTERAPPINTERFACE_REQUEST:
- return UnregisterAppInterface_requestMarshaller::toJSON(* static_cast<const UnregisterAppInterface_request*>(msg));
-
- case METHOD_UNREGISTERAPPINTERFACE_RESPONSE:
- return UnregisterAppInterface_responseMarshaller::toJSON(* static_cast<const UnregisterAppInterface_response*>(msg));
-
- case METHOD_SETGLOBALPROPERTIES_REQUEST:
- return SetGlobalProperties_requestMarshaller::toJSON(* static_cast<const SetGlobalProperties_request*>(msg));
-
- case METHOD_SETGLOBALPROPERTIES_RESPONSE:
- return SetGlobalProperties_responseMarshaller::toJSON(* static_cast<const SetGlobalProperties_response*>(msg));
-
- case METHOD_RESETGLOBALPROPERTIES_REQUEST:
- return ResetGlobalProperties_requestMarshaller::toJSON(* static_cast<const ResetGlobalProperties_request*>(msg));
-
- case METHOD_RESETGLOBALPROPERTIES_RESPONSE:
- return ResetGlobalProperties_responseMarshaller::toJSON(* static_cast<const ResetGlobalProperties_response*>(msg));
-
- case METHOD_ADDCOMMAND_REQUEST:
- return AddCommand_requestMarshaller::toJSON(* static_cast<const AddCommand_request*>(msg));
-
- case METHOD_ADDCOMMAND_RESPONSE:
- return AddCommand_responseMarshaller::toJSON(* static_cast<const AddCommand_response*>(msg));
-
- case METHOD_DELETECOMMAND_REQUEST:
- return DeleteCommand_requestMarshaller::toJSON(* static_cast<const DeleteCommand_request*>(msg));
-
- case METHOD_DELETECOMMAND_RESPONSE:
- return DeleteCommand_responseMarshaller::toJSON(* static_cast<const DeleteCommand_response*>(msg));
-
- case METHOD_ADDSUBMENU_REQUEST:
- return AddSubMenu_requestMarshaller::toJSON(* static_cast<const AddSubMenu_request*>(msg));
-
- case METHOD_ADDSUBMENU_RESPONSE:
- return AddSubMenu_responseMarshaller::toJSON(* static_cast<const AddSubMenu_response*>(msg));
-
- case METHOD_DELETESUBMENU_REQUEST:
- return DeleteSubMenu_requestMarshaller::toJSON(* static_cast<const DeleteSubMenu_request*>(msg));
-
- case METHOD_DELETESUBMENU_RESPONSE:
- return DeleteSubMenu_responseMarshaller::toJSON(* static_cast<const DeleteSubMenu_response*>(msg));
-
- case METHOD_CREATEINTERACTIONCHOICESET_REQUEST:
- return CreateInteractionChoiceSet_requestMarshaller::toJSON(* static_cast<const CreateInteractionChoiceSet_request*>(msg));
-
- case METHOD_CREATEINTERACTIONCHOICESET_RESPONSE:
- return CreateInteractionChoiceSet_responseMarshaller::toJSON(* static_cast<const CreateInteractionChoiceSet_response*>(msg));
-
- case METHOD_PERFORMINTERACTION_REQUEST:
- return PerformInteraction_requestMarshaller::toJSON(* static_cast<const PerformInteraction_request*>(msg));
-
- case METHOD_PERFORMINTERACTION_RESPONSE:
- return PerformInteraction_responseMarshaller::toJSON(* static_cast<const PerformInteraction_response*>(msg));
-
- case METHOD_DELETEINTERACTIONCHOICESET_REQUEST:
- return DeleteInteractionChoiceSet_requestMarshaller::toJSON(* static_cast<const DeleteInteractionChoiceSet_request*>(msg));
-
- case METHOD_DELETEINTERACTIONCHOICESET_RESPONSE:
- return DeleteInteractionChoiceSet_responseMarshaller::toJSON(* static_cast<const DeleteInteractionChoiceSet_response*>(msg));
-
- case METHOD_ALERT_REQUEST:
- return Alert_requestMarshaller::toJSON(* static_cast<const Alert_request*>(msg));
-
- case METHOD_ALERT_RESPONSE:
- return Alert_responseMarshaller::toJSON(* static_cast<const Alert_response*>(msg));
-
- case METHOD_SHOW_REQUEST:
- return Show_requestMarshaller::toJSON(* static_cast<const Show_request*>(msg));
-
- case METHOD_SHOW_RESPONSE:
- return Show_responseMarshaller::toJSON(* static_cast<const Show_response*>(msg));
-
- case METHOD_SPEAK_REQUEST:
- return Speak_requestMarshaller::toJSON(* static_cast<const Speak_request*>(msg));
-
- case METHOD_SPEAK_RESPONSE:
- return Speak_responseMarshaller::toJSON(* static_cast<const Speak_response*>(msg));
-
- case METHOD_SETMEDIACLOCKTIMER_REQUEST:
- return SetMediaClockTimer_requestMarshaller::toJSON(* static_cast<const SetMediaClockTimer_request*>(msg));
-
- case METHOD_SETMEDIACLOCKTIMER_RESPONSE:
- return SetMediaClockTimer_responseMarshaller::toJSON(* static_cast<const SetMediaClockTimer_response*>(msg));
-
- case METHOD_ENCODEDSYNCPDATA_REQUEST:
- return EncodedSyncPData_requestMarshaller::toJSON(* static_cast<const EncodedSyncPData_request*>(msg));
-
- case METHOD_ENCODEDSYNCPDATA_RESPONSE:
- return EncodedSyncPData_responseMarshaller::toJSON(* static_cast<const EncodedSyncPData_response*>(msg));
-
- case METHOD_SUBSCRIBEBUTTON_REQUEST:
- return SubscribeButton_requestMarshaller::toJSON(* static_cast<const SubscribeButton_request*>(msg));
-
- case METHOD_SUBSCRIBEBUTTON_RESPONSE:
- return SubscribeButton_responseMarshaller::toJSON(* static_cast<const SubscribeButton_response*>(msg));
-
- case METHOD_UNSUBSCRIBEBUTTON_REQUEST:
- return UnsubscribeButton_requestMarshaller::toJSON(* static_cast<const UnsubscribeButton_request*>(msg));
-
- case METHOD_UNSUBSCRIBEBUTTON_RESPONSE:
- return UnsubscribeButton_responseMarshaller::toJSON(* static_cast<const UnsubscribeButton_response*>(msg));
-
- case METHOD_GENERICRESPONSE_RESPONSE:
- return GenericResponse_responseMarshaller::toJSON(* static_cast<const GenericResponse_response*>(msg));
-
- case METHOD_ONHMISTATUS:
- return OnHMIStatusMarshaller::toJSON(* static_cast<const OnHMIStatus*>(msg));
-
- case METHOD_ONAPPINTERFACEUNREGISTERED:
- return OnAppInterfaceUnregisteredMarshaller::toJSON(* static_cast<const OnAppInterfaceUnregistered*>(msg));
-
- case METHOD_ONBUTTONEVENT:
- return OnButtonEventMarshaller::toJSON(* static_cast<const OnButtonEvent*>(msg));
-
- case METHOD_ONBUTTONPRESS:
- return OnButtonPressMarshaller::toJSON(* static_cast<const OnButtonPress*>(msg));
-
- case METHOD_ONCOMMAND:
- return OnCommandMarshaller::toJSON(* static_cast<const OnCommand*>(msg));
-
- case METHOD_ONENCODEDSYNCPDATA:
- return OnEncodedSyncPDataMarshaller::toJSON(* static_cast<const OnEncodedSyncPData*>(msg));
-
- case METHOD_ONTBTCLIENTSTATE:
- return OnTBTClientStateMarshaller::toJSON(* static_cast<const OnTBTClientState*>(msg));
-
- case METHOD_ONDRIVERDISTRACTION:
- return OnDriverDistractionMarshaller::toJSON(* static_cast<const OnDriverDistraction*>(msg));
-
- case METHOD_INVALID:
- default:
- return j;
- }
-
- return j;
-}
-
-RegisterAppInterface_requestMarshaller Marshaller::mRegisterAppInterface_request;
-RegisterAppInterface_responseMarshaller Marshaller::mRegisterAppInterface_response;
-UnregisterAppInterface_requestMarshaller Marshaller::mUnregisterAppInterface_request;
-UnregisterAppInterface_responseMarshaller Marshaller::mUnregisterAppInterface_response;
-SetGlobalProperties_requestMarshaller Marshaller::mSetGlobalProperties_request;
-SetGlobalProperties_responseMarshaller Marshaller::mSetGlobalProperties_response;
-ResetGlobalProperties_requestMarshaller Marshaller::mResetGlobalProperties_request;
-ResetGlobalProperties_responseMarshaller Marshaller::mResetGlobalProperties_response;
-AddCommand_requestMarshaller Marshaller::mAddCommand_request;
-AddCommand_responseMarshaller Marshaller::mAddCommand_response;
-DeleteCommand_requestMarshaller Marshaller::mDeleteCommand_request;
-DeleteCommand_responseMarshaller Marshaller::mDeleteCommand_response;
-AddSubMenu_requestMarshaller Marshaller::mAddSubMenu_request;
-AddSubMenu_responseMarshaller Marshaller::mAddSubMenu_response;
-DeleteSubMenu_requestMarshaller Marshaller::mDeleteSubMenu_request;
-DeleteSubMenu_responseMarshaller Marshaller::mDeleteSubMenu_response;
-CreateInteractionChoiceSet_requestMarshaller Marshaller::mCreateInteractionChoiceSet_request;
-CreateInteractionChoiceSet_responseMarshaller Marshaller::mCreateInteractionChoiceSet_response;
-PerformInteraction_requestMarshaller Marshaller::mPerformInteraction_request;
-PerformInteraction_responseMarshaller Marshaller::mPerformInteraction_response;
-DeleteInteractionChoiceSet_requestMarshaller Marshaller::mDeleteInteractionChoiceSet_request;
-DeleteInteractionChoiceSet_responseMarshaller Marshaller::mDeleteInteractionChoiceSet_response;
-Alert_requestMarshaller Marshaller::mAlert_request;
-Alert_responseMarshaller Marshaller::mAlert_response;
-Show_requestMarshaller Marshaller::mShow_request;
-Show_responseMarshaller Marshaller::mShow_response;
-Speak_requestMarshaller Marshaller::mSpeak_request;
-Speak_responseMarshaller Marshaller::mSpeak_response;
-SetMediaClockTimer_requestMarshaller Marshaller::mSetMediaClockTimer_request;
-SetMediaClockTimer_responseMarshaller Marshaller::mSetMediaClockTimer_response;
-EncodedSyncPData_requestMarshaller Marshaller::mEncodedSyncPData_request;
-EncodedSyncPData_responseMarshaller Marshaller::mEncodedSyncPData_response;
-SubscribeButton_requestMarshaller Marshaller::mSubscribeButton_request;
-SubscribeButton_responseMarshaller Marshaller::mSubscribeButton_response;
-UnsubscribeButton_requestMarshaller Marshaller::mUnsubscribeButton_request;
-UnsubscribeButton_responseMarshaller Marshaller::mUnsubscribeButton_response;
-GenericResponse_responseMarshaller Marshaller::mGenericResponse_response;
-OnHMIStatusMarshaller Marshaller::mOnHMIStatus;
-OnAppInterfaceUnregisteredMarshaller Marshaller::mOnAppInterfaceUnregistered;
-OnButtonEventMarshaller Marshaller::mOnButtonEvent;
-OnButtonPressMarshaller Marshaller::mOnButtonPress;
-OnCommandMarshaller Marshaller::mOnCommand;
-OnEncodedSyncPDataMarshaller Marshaller::mOnEncodedSyncPData;
-OnTBTClientStateMarshaller Marshaller::mOnTBTClientState;
-OnDriverDistractionMarshaller Marshaller::mOnDriverDistraction;
-
-const Marshaller::localHash Marshaller::mHashTable[45]=
-{
- {"RegisterAppInterface_request",METHOD_REGISTERAPPINTERFACE_REQUEST,&Marshaller::mRegisterAppInterface_request},
- {"RegisterAppInterface_response",METHOD_REGISTERAPPINTERFACE_RESPONSE,&Marshaller::mRegisterAppInterface_response},
- {"UnregisterAppInterface_request",METHOD_UNREGISTERAPPINTERFACE_REQUEST,&Marshaller::mUnregisterAppInterface_request},
- {"UnregisterAppInterface_response",METHOD_UNREGISTERAPPINTERFACE_RESPONSE,&Marshaller::mUnregisterAppInterface_response},
- {"SetGlobalProperties_request",METHOD_SETGLOBALPROPERTIES_REQUEST,&Marshaller::mSetGlobalProperties_request},
- {"SetGlobalProperties_response",METHOD_SETGLOBALPROPERTIES_RESPONSE,&Marshaller::mSetGlobalProperties_response},
- {"ResetGlobalProperties_request",METHOD_RESETGLOBALPROPERTIES_REQUEST,&Marshaller::mResetGlobalProperties_request},
- {"ResetGlobalProperties_response",METHOD_RESETGLOBALPROPERTIES_RESPONSE,&Marshaller::mResetGlobalProperties_response},
- {"AddCommand_request",METHOD_ADDCOMMAND_REQUEST,&Marshaller::mAddCommand_request},
- {"AddCommand_response",METHOD_ADDCOMMAND_RESPONSE,&Marshaller::mAddCommand_response},
- {"DeleteCommand_request",METHOD_DELETECOMMAND_REQUEST,&Marshaller::mDeleteCommand_request},
- {"DeleteCommand_response",METHOD_DELETECOMMAND_RESPONSE,&Marshaller::mDeleteCommand_response},
- {"AddSubMenu_request",METHOD_ADDSUBMENU_REQUEST,&Marshaller::mAddSubMenu_request},
- {"AddSubMenu_response",METHOD_ADDSUBMENU_RESPONSE,&Marshaller::mAddSubMenu_response},
- {"DeleteSubMenu_request",METHOD_DELETESUBMENU_REQUEST,&Marshaller::mDeleteSubMenu_request},
- {"DeleteSubMenu_response",METHOD_DELETESUBMENU_RESPONSE,&Marshaller::mDeleteSubMenu_response},
- {"CreateInteractionChoiceSet_request",METHOD_CREATEINTERACTIONCHOICESET_REQUEST,&Marshaller::mCreateInteractionChoiceSet_request},
- {"CreateInteractionChoiceSet_response",METHOD_CREATEINTERACTIONCHOICESET_RESPONSE,&Marshaller::mCreateInteractionChoiceSet_response},
- {"PerformInteraction_request",METHOD_PERFORMINTERACTION_REQUEST,&Marshaller::mPerformInteraction_request},
- {"PerformInteraction_response",METHOD_PERFORMINTERACTION_RESPONSE,&Marshaller::mPerformInteraction_response},
- {"DeleteInteractionChoiceSet_request",METHOD_DELETEINTERACTIONCHOICESET_REQUEST,&Marshaller::mDeleteInteractionChoiceSet_request},
- {"DeleteInteractionChoiceSet_response",METHOD_DELETEINTERACTIONCHOICESET_RESPONSE,&Marshaller::mDeleteInteractionChoiceSet_response},
- {"Alert_request",METHOD_ALERT_REQUEST,&Marshaller::mAlert_request},
- {"Alert_response",METHOD_ALERT_RESPONSE,&Marshaller::mAlert_response},
- {"Show_request",METHOD_SHOW_REQUEST,&Marshaller::mShow_request},
- {"Show_response",METHOD_SHOW_RESPONSE,&Marshaller::mShow_response},
- {"Speak_request",METHOD_SPEAK_REQUEST,&Marshaller::mSpeak_request},
- {"Speak_response",METHOD_SPEAK_RESPONSE,&Marshaller::mSpeak_response},
- {"SetMediaClockTimer_request",METHOD_SETMEDIACLOCKTIMER_REQUEST,&Marshaller::mSetMediaClockTimer_request},
- {"SetMediaClockTimer_response",METHOD_SETMEDIACLOCKTIMER_RESPONSE,&Marshaller::mSetMediaClockTimer_response},
- {"EncodedSyncPData_request",METHOD_ENCODEDSYNCPDATA_REQUEST,&Marshaller::mEncodedSyncPData_request},
- {"EncodedSyncPData_response",METHOD_ENCODEDSYNCPDATA_RESPONSE,&Marshaller::mEncodedSyncPData_response},
- {"SubscribeButton_request",METHOD_SUBSCRIBEBUTTON_REQUEST,&Marshaller::mSubscribeButton_request},
- {"SubscribeButton_response",METHOD_SUBSCRIBEBUTTON_RESPONSE,&Marshaller::mSubscribeButton_response},
- {"UnsubscribeButton_request",METHOD_UNSUBSCRIBEBUTTON_REQUEST,&Marshaller::mUnsubscribeButton_request},
- {"UnsubscribeButton_response",METHOD_UNSUBSCRIBEBUTTON_RESPONSE,&Marshaller::mUnsubscribeButton_response},
- {"GenericResponse_response",METHOD_GENERICRESPONSE_RESPONSE,&Marshaller::mGenericResponse_response},
- {"OnHMIStatus_notification",METHOD_ONHMISTATUS,&Marshaller::mOnHMIStatus},
- {"OnAppInterfaceUnregistered_notification",METHOD_ONAPPINTERFACEUNREGISTERED,&Marshaller::mOnAppInterfaceUnregistered},
- {"OnButtonEvent_notification",METHOD_ONBUTTONEVENT,&Marshaller::mOnButtonEvent},
- {"OnButtonPress_notification",METHOD_ONBUTTONPRESS,&Marshaller::mOnButtonPress},
- {"OnCommand_notification",METHOD_ONCOMMAND,&Marshaller::mOnCommand},
- {"OnEncodedSyncPData_notification",METHOD_ONENCODEDSYNCPDATA,&Marshaller::mOnEncodedSyncPData},
- {"OnTBTClientState_notification",METHOD_ONTBTCLIENTSTATE,&Marshaller::mOnTBTClientState},
- {"OnDriverDistraction_notification",METHOD_ONDRIVERDISTRACTION,&Marshaller::mOnDriverDistraction}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp
deleted file mode 100644
index 7ea826391..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp
+++ /dev/null
@@ -1,62 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name Marshaller_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::Marshaller::localHash
-{
- const char *name;
- unsigned int idx;
- void* method;
-};
-
-%%
-RegisterAppInterface_request,0,&NsSmartDeviceLinkRPC::Marshaller::mRegisterAppInterface_request
-RegisterAppInterface_response,1,&NsSmartDeviceLinkRPC::Marshaller::mRegisterAppInterface_response
-UnregisterAppInterface_request,2,&NsSmartDeviceLinkRPC::Marshaller::mUnregisterAppInterface_request
-UnregisterAppInterface_response,3,&NsSmartDeviceLinkRPC::Marshaller::mUnregisterAppInterface_response
-SetGlobalProperties_request,4,&NsSmartDeviceLinkRPC::Marshaller::mSetGlobalProperties_request
-SetGlobalProperties_response,5,&NsSmartDeviceLinkRPC::Marshaller::mSetGlobalProperties_response
-ResetGlobalProperties_request,6,&NsSmartDeviceLinkRPC::Marshaller::mResetGlobalProperties_request
-ResetGlobalProperties_response,7,&NsSmartDeviceLinkRPC::Marshaller::mResetGlobalProperties_response
-AddCommand_request,8,&NsSmartDeviceLinkRPC::Marshaller::mAddCommand_request
-AddCommand_response,9,&NsSmartDeviceLinkRPC::Marshaller::mAddCommand_response
-DeleteCommand_request,10,&NsSmartDeviceLinkRPC::Marshaller::mDeleteCommand_request
-DeleteCommand_response,11,&NsSmartDeviceLinkRPC::Marshaller::mDeleteCommand_response
-AddSubMenu_request,12,&NsSmartDeviceLinkRPC::Marshaller::mAddSubMenu_request
-AddSubMenu_response,13,&NsSmartDeviceLinkRPC::Marshaller::mAddSubMenu_response
-DeleteSubMenu_request,14,&NsSmartDeviceLinkRPC::Marshaller::mDeleteSubMenu_request
-DeleteSubMenu_response,15,&NsSmartDeviceLinkRPC::Marshaller::mDeleteSubMenu_response
-CreateInteractionChoiceSet_request,16,&NsSmartDeviceLinkRPC::Marshaller::mCreateInteractionChoiceSet_request
-CreateInteractionChoiceSet_response,17,&NsSmartDeviceLinkRPC::Marshaller::mCreateInteractionChoiceSet_response
-PerformInteraction_request,18,&NsSmartDeviceLinkRPC::Marshaller::mPerformInteraction_request
-PerformInteraction_response,19,&NsSmartDeviceLinkRPC::Marshaller::mPerformInteraction_response
-DeleteInteractionChoiceSet_request,20,&NsSmartDeviceLinkRPC::Marshaller::mDeleteInteractionChoiceSet_request
-DeleteInteractionChoiceSet_response,21,&NsSmartDeviceLinkRPC::Marshaller::mDeleteInteractionChoiceSet_response
-Alert_request,22,&NsSmartDeviceLinkRPC::Marshaller::mAlert_request
-Alert_response,23,&NsSmartDeviceLinkRPC::Marshaller::mAlert_response
-Show_request,24,&NsSmartDeviceLinkRPC::Marshaller::mShow_request
-Show_response,25,&NsSmartDeviceLinkRPC::Marshaller::mShow_response
-Speak_request,26,&NsSmartDeviceLinkRPC::Marshaller::mSpeak_request
-Speak_response,27,&NsSmartDeviceLinkRPC::Marshaller::mSpeak_response
-SetMediaClockTimer_request,28,&NsSmartDeviceLinkRPC::Marshaller::mSetMediaClockTimer_request
-SetMediaClockTimer_response,29,&NsSmartDeviceLinkRPC::Marshaller::mSetMediaClockTimer_response
-EncodedSyncPData_request,30,&NsSmartDeviceLinkRPC::Marshaller::mEncodedSyncPData_request
-EncodedSyncPData_response,31,&NsSmartDeviceLinkRPC::Marshaller::mEncodedSyncPData_response
-SubscribeButton_request,32,&NsSmartDeviceLinkRPC::Marshaller::mSubscribeButton_request
-SubscribeButton_response,33,&NsSmartDeviceLinkRPC::Marshaller::mSubscribeButton_response
-UnsubscribeButton_request,34,&NsSmartDeviceLinkRPC::Marshaller::mUnsubscribeButton_request
-UnsubscribeButton_response,35,&NsSmartDeviceLinkRPC::Marshaller::mUnsubscribeButton_response
-GenericResponse_response,36,&NsSmartDeviceLinkRPC::Marshaller::mGenericResponse_response
-OnHMIStatus_notification,37,&NsSmartDeviceLinkRPC::Marshaller::mOnHMIStatus
-OnAppInterfaceUnregistered_notification,38,&NsSmartDeviceLinkRPC::Marshaller::mOnAppInterfaceUnregistered
-OnButtonEvent_notification,39,&NsSmartDeviceLinkRPC::Marshaller::mOnButtonEvent
-OnButtonPress_notification,40,&NsSmartDeviceLinkRPC::Marshaller::mOnButtonPress
-OnCommand_notification,41,&NsSmartDeviceLinkRPC::Marshaller::mOnCommand
-OnEncodedSyncPData_notification,42,&NsSmartDeviceLinkRPC::Marshaller::mOnEncodedSyncPData
-OnTBTClientState_notification,43,&NsSmartDeviceLinkRPC::Marshaller::mOnTBTClientState
-OnDriverDistraction_notification,44,&NsSmartDeviceLinkRPC::Marshaller::mOnDriverDistraction
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.inc
deleted file mode 100644
index a465a4be0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.inc
+++ /dev/null
@@ -1,250 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp */
-/* Computed positions: -k'1,10' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 45
-#define MIN_WORD_LENGTH 12
-#define MAX_WORD_LENGTH 39
-#define MIN_HASH_VALUE 12
-#define MAX_HASH_VALUE 79
-/* maximum key range = 68, duplicates = 0 */
-
-class Marshaller_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::Marshaller::localHash *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-Marshaller_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 5, 50, 35, 0, 25,
- 80, 30, 80, 80, 80, 80, 80, 40, 80, 5,
- 0, 80, 15, 0, 80, 10, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 15, 80, 15, 20, 80,
- 15, 0, 80, 80, 80, 0, 80, 80, 20, 0,
- 15, 20, 0, 80, 10, 25, 5, 0, 35, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80
- };
- return len + asso_values[(unsigned char)str[9]] + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPC::Marshaller::localHash *
-Marshaller_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
- 14, 0, 0, 0, 13, 14, 0, 21, 22, 18, 19, 0, 0, 27,
- 28, 24, 0, 26, 27, 13, 34, 35, 31, 32, 18, 19, 0, 26,
- 22, 28, 29, 0, 26, 27, 0, 29, 30, 31, 0, 0, 39, 25,
- 26, 0, 0, 29, 30, 21, 22, 0, 24, 25, 26, 0, 0, 34,
- 35, 0, 0, 23, 24, 0, 0, 0, 0, 24
- };
- static const struct NsSmartDeviceLinkRPC::Marshaller::localHash wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""},
-#line 42 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"Show_request",24,&NsSmartDeviceLinkRPC::Marshaller::mShow_request},
-#line 44 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"Speak_request",26,&NsSmartDeviceLinkRPC::Marshaller::mSpeak_request},
-#line 45 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"Speak_response",27,&NsSmartDeviceLinkRPC::Marshaller::mSpeak_response},
- {""}, {""}, {""},
-#line 40 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"Alert_request",22,&NsSmartDeviceLinkRPC::Marshaller::mAlert_request},
-#line 41 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"Alert_response",23,&NsSmartDeviceLinkRPC::Marshaller::mAlert_response},
- {""},
-#line 28 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"DeleteCommand_request",10,&NsSmartDeviceLinkRPC::Marshaller::mDeleteCommand_request},
-#line 29 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"DeleteCommand_response",11,&NsSmartDeviceLinkRPC::Marshaller::mDeleteCommand_response},
-#line 30 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"AddSubMenu_request",12,&NsSmartDeviceLinkRPC::Marshaller::mAddSubMenu_request},
-#line 31 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"AddSubMenu_response",13,&NsSmartDeviceLinkRPC::Marshaller::mAddSubMenu_response},
- {""}, {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"SetGlobalProperties_request",4,&NsSmartDeviceLinkRPC::Marshaller::mSetGlobalProperties_request},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"SetGlobalProperties_response",5,&NsSmartDeviceLinkRPC::Marshaller::mSetGlobalProperties_response},
-#line 55 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"OnHMIStatus_notification",37,&NsSmartDeviceLinkRPC::Marshaller::mOnHMIStatus},
- {""},
-#line 36 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"PerformInteraction_request",18,&NsSmartDeviceLinkRPC::Marshaller::mPerformInteraction_request},
-#line 37 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"PerformInteraction_response",19,&NsSmartDeviceLinkRPC::Marshaller::mPerformInteraction_response},
-#line 43 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"Show_response",25,&NsSmartDeviceLinkRPC::Marshaller::mShow_response},
-#line 38 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"DeleteInteractionChoiceSet_request",20,&NsSmartDeviceLinkRPC::Marshaller::mDeleteInteractionChoiceSet_request},
-#line 39 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"DeleteInteractionChoiceSet_response",21,&NsSmartDeviceLinkRPC::Marshaller::mDeleteInteractionChoiceSet_response},
-#line 60 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"OnEncodedSyncPData_notification",42,&NsSmartDeviceLinkRPC::Marshaller::mOnEncodedSyncPData},
-#line 62 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"OnDriverDistraction_notification",44,&NsSmartDeviceLinkRPC::Marshaller::mOnDriverDistraction},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"AddCommand_request",8,&NsSmartDeviceLinkRPC::Marshaller::mAddCommand_request},
-#line 27 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"AddCommand_response",9,&NsSmartDeviceLinkRPC::Marshaller::mAddCommand_response},
- {""},
-#line 58 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"OnButtonPress_notification",40,&NsSmartDeviceLinkRPC::Marshaller::mOnButtonPress},
-#line 59 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"OnCommand_notification",41,&NsSmartDeviceLinkRPC::Marshaller::mOnCommand},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"RegisterAppInterface_request",0,&NsSmartDeviceLinkRPC::Marshaller::mRegisterAppInterface_request},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"RegisterAppInterface_response",1,&NsSmartDeviceLinkRPC::Marshaller::mRegisterAppInterface_response},
- {""},
-#line 46 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"SetMediaClockTimer_request",28,&NsSmartDeviceLinkRPC::Marshaller::mSetMediaClockTimer_request},
-#line 47 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"SetMediaClockTimer_response",29,&NsSmartDeviceLinkRPC::Marshaller::mSetMediaClockTimer_response},
- {""},
-#line 61 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"OnTBTClientState_notification",43,&NsSmartDeviceLinkRPC::Marshaller::mOnTBTClientState},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"UnregisterAppInterface_request",2,&NsSmartDeviceLinkRPC::Marshaller::mUnregisterAppInterface_request},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"UnregisterAppInterface_response",3,&NsSmartDeviceLinkRPC::Marshaller::mUnregisterAppInterface_response},
- {""}, {""},
-#line 56 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"OnAppInterfaceUnregistered_notification",38,&NsSmartDeviceLinkRPC::Marshaller::mOnAppInterfaceUnregistered},
-#line 52 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"UnsubscribeButton_request",34,&NsSmartDeviceLinkRPC::Marshaller::mUnsubscribeButton_request},
-#line 53 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"UnsubscribeButton_response",35,&NsSmartDeviceLinkRPC::Marshaller::mUnsubscribeButton_response},
- {""}, {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"ResetGlobalProperties_request",6,&NsSmartDeviceLinkRPC::Marshaller::mResetGlobalProperties_request},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"ResetGlobalProperties_response",7,&NsSmartDeviceLinkRPC::Marshaller::mResetGlobalProperties_response},
-#line 32 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"DeleteSubMenu_request",14,&NsSmartDeviceLinkRPC::Marshaller::mDeleteSubMenu_request},
-#line 33 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"DeleteSubMenu_response",15,&NsSmartDeviceLinkRPC::Marshaller::mDeleteSubMenu_response},
- {""},
-#line 48 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"EncodedSyncPData_request",30,&NsSmartDeviceLinkRPC::Marshaller::mEncodedSyncPData_request},
-#line 49 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"EncodedSyncPData_response",31,&NsSmartDeviceLinkRPC::Marshaller::mEncodedSyncPData_response},
-#line 57 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"OnButtonEvent_notification",39,&NsSmartDeviceLinkRPC::Marshaller::mOnButtonEvent},
- {""}, {""},
-#line 34 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"CreateInteractionChoiceSet_request",16,&NsSmartDeviceLinkRPC::Marshaller::mCreateInteractionChoiceSet_request},
-#line 35 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"CreateInteractionChoiceSet_response",17,&NsSmartDeviceLinkRPC::Marshaller::mCreateInteractionChoiceSet_response},
- {""}, {""},
-#line 50 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"SubscribeButton_request",32,&NsSmartDeviceLinkRPC::Marshaller::mSubscribeButton_request},
-#line 51 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"SubscribeButton_response",33,&NsSmartDeviceLinkRPC::Marshaller::mSubscribeButton_response},
- {""}, {""}, {""}, {""},
-#line 54 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Marshaller.gp"
- {"GenericResponse_response",36,&NsSmartDeviceLinkRPC::Marshaller::mGenericResponse_response}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.cpp
deleted file mode 100644
index d3a80afa7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/MediaClockFormat.h"
-#include "MediaClockFormatMarshaller.h"
-#include "MediaClockFormatMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const MediaClockFormat::MediaClockFormatInternal MediaClockFormatMarshaller::getIndex(const char* s)
-{
- if(!s)
- return MediaClockFormat::INVALID_ENUM;
- const struct PerfectHashTable* p=MediaClockFormat_intHash::getPointer(s,strlen(s));
- return p ? static_cast<MediaClockFormat::MediaClockFormatInternal>(p->idx) : MediaClockFormat::INVALID_ENUM;
-}
-
-
-bool MediaClockFormatMarshaller::fromJSON(const Json::Value& s,MediaClockFormat& e)
-{
- e.mInternal=MediaClockFormat::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=MediaClockFormat::INVALID_ENUM);
-}
-
-
-Json::Value MediaClockFormatMarshaller::toJSON(const MediaClockFormat& e)
-{
- if(e.mInternal==MediaClockFormat::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool MediaClockFormatMarshaller::fromString(const std::string& s,MediaClockFormat& e)
-{
- e.mInternal=MediaClockFormat::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string MediaClockFormatMarshaller::toString(const MediaClockFormat& e)
-{
- Json::FastWriter writer;
- return e.mInternal==MediaClockFormat::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable MediaClockFormatMarshaller::mHashTable[5]=
-{
- {"CLOCK1",0},
- {"CLOCK2",1},
- {"CLOCKTEXT1",2},
- {"CLOCKTEXT2",3},
- {"CLOCKTEXT3",4}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.gp
deleted file mode 100644
index 3b13495cd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.gp
+++ /dev/null
@@ -1,21 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name MediaClockFormat_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-CLOCK1,0
-CLOCK2,1
-CLOCKTEXT1,2
-CLOCKTEXT2,3
-CLOCKTEXT3,4
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.h
deleted file mode 100644
index bc5bfea77..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_MEDIACLOCKFORMATMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_MEDIACLOCKFORMATMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/MediaClockFormat.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for MediaClockFormat
-
- class MediaClockFormatMarshaller
- {
- public:
-
- static std::string toName(const MediaClockFormat& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(MediaClockFormat& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=MediaClockFormat::INVALID_ENUM;
- }
-
- static bool checkIntegrity(MediaClockFormat& e) { return e.mInternal!=MediaClockFormat::INVALID_ENUM; }
- static bool checkIntegrityConst(const MediaClockFormat& e) { return e.mInternal!=MediaClockFormat::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,MediaClockFormat& e);
- static const std::string toString(const MediaClockFormat& e);
-
- static bool fromJSON(const Json::Value& s,MediaClockFormat& e);
- static Json::Value toJSON(const MediaClockFormat& e);
-
- static const char* getName(MediaClockFormat::MediaClockFormatInternal e)
- {
- return (e>=0 && e<5) ? mHashTable[e].name : NULL;
- }
-
- static const MediaClockFormat::MediaClockFormatInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[5];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.inc
deleted file mode 100644
index 926a346db..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.inc
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.gp */
-/* Computed positions: -k'$' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 5
-#define MIN_WORD_LENGTH 6
-#define MAX_WORD_LENGTH 10
-#define MIN_HASH_VALUE 6
-#define MAX_HASH_VALUE 15
-/* maximum key range = 10, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPC {
-
-class MediaClockFormat_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-MediaClockFormat_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 5,
- 0, 2, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16
- };
- return len + asso_values[(unsigned char)str[len - 1]];
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-MediaClockFormat_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 10, 6, 10, 0,
- 0, 10
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.gp"
- {"CLOCK2",1},
- {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.gp"
- {"CLOCKTEXT2",3},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.gp"
- {"CLOCK1",0},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.gp"
- {"CLOCKTEXT3",4},
- {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MediaClockFormatMarshaller.gp"
- {"CLOCKTEXT1",2}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParams.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParams.cpp
deleted file mode 100644
index ce0169fc2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParams.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/MenuParams.h"
-#include "MenuParamsMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPC;
-
-MenuParams& MenuParams::operator =(const MenuParams& c)
-{
- menuName=c.menuName;
- parentID=c.parentID ? new unsigned int(c.parentID[0]) : 0;
- position=c.position ? new unsigned int(c.position[0]) : 0;
-
- return *this;
-}
-
-
-MenuParams::~MenuParams(void)
-{
- if(parentID)
- delete parentID;
- if(position)
- delete position;
-}
-
-
-MenuParams::MenuParams(const MenuParams& c)
-{
- *this=c;
-}
-
-
-bool MenuParams::checkIntegrity(void)
-{
- return MenuParamsMarshaller::checkIntegrity(*this);
-}
-
-
-MenuParams::MenuParams(void) :
- parentID(0),
- position(0)
-{
-}
-
-
-
-bool MenuParams::set_menuName(const std::string& menuName_)
-{
- if(menuName_.length()>500) return false;
- menuName=menuName_;
- return true;
-}
-
-bool MenuParams::set_parentID(unsigned int parentID_)
-{
- if(parentID_>2000000000) return false;
- delete parentID;
- parentID=0;
-
- parentID=new unsigned int(parentID_);
- return true;
-}
-
-void MenuParams::reset_parentID(void)
-{
- if(parentID)
- delete parentID;
- parentID=0;
-}
-
-bool MenuParams::set_position(unsigned int position_)
-{
- if(position_>1000) return false;
- delete position;
- position=0;
-
- position=new unsigned int(position_);
- return true;
-}
-
-void MenuParams::reset_position(void)
-{
- if(position)
- delete position;
- position=0;
-}
-
-
-
-
-const std::string& MenuParams::get_menuName(void) const
-{
- return menuName;
-}
-
-
-const unsigned int* MenuParams::get_parentID(void) const
-{
- return parentID;
-}
-
-
-const unsigned int* MenuParams::get_position(void) const
-{
- return position;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParamsMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParamsMarshaller.cpp
deleted file mode 100644
index d90f153f4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParamsMarshaller.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/MenuParams.h"
-
-
-#include "MenuParamsMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool MenuParamsMarshaller::checkIntegrity(MenuParams& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool MenuParamsMarshaller::fromString(const std::string& s,MenuParams& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string MenuParamsMarshaller::toString(const MenuParams& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool MenuParamsMarshaller::checkIntegrityConst(const MenuParams& s)
-{
- if(s.menuName.length()>500) return false;
- if(s.parentID && *s.parentID>2000000000) return false;
- if(s.position && *s.position>1000) return false;
- return true;
-}
-
-Json::Value MenuParamsMarshaller::toJSON(const MenuParams& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["menuName"]=Json::Value(e.menuName);
-
- if(e.parentID)
- json["parentID"]=Json::Value(*e.parentID);
-
- if(e.position)
- json["position"]=Json::Value(*e.position);
-
-
- return json;
-}
-
-
-bool MenuParamsMarshaller::fromJSON(const Json::Value& json,MenuParams& c)
-{
- if(c.parentID) delete c.parentID;
- c.parentID=0;
-
- if(c.position) delete c.position;
- c.position=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("menuName")) return false;
- {
- const Json::Value& j=json["menuName"];
- if(!j.isString()) return false;
- c.menuName=j.asString();
- }
- if(json.isMember("parentID"))
- {
- const Json::Value& j=json["parentID"];
- if(!j.isInt()) return false;
- c.parentID=new unsigned int(j.asInt());
- }
- if(json.isMember("position"))
- {
- const Json::Value& j=json["position"];
- if(!j.isInt()) return false;
- c.position=new unsigned int(j.asInt());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParamsMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParamsMarshaller.h
deleted file mode 100644
index 4a1f85169..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/MenuParamsMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_MENUPARAMSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_MENUPARAMSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/MenuParams.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct MenuParamsMarshaller
- {
- static bool checkIntegrity(MenuParams& e);
- static bool checkIntegrityConst(const MenuParams& e);
-
- static bool fromString(const std::string& s,MenuParams& e);
- static const std::string toString(const MenuParams& e);
-
- static bool fromJSON(const Json::Value& s,MenuParams& e);
- static Json::Value toJSON(const MenuParams& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregistered.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregistered.cpp
deleted file mode 100644
index b426003ef..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregistered.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnAppInterfaceUnregistered.h"
-#include "OnAppInterfaceUnregisteredMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "AppInterfaceUnregisteredReasonMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-OnAppInterfaceUnregistered::~OnAppInterfaceUnregistered(void)
-{
-}
-
-
-OnAppInterfaceUnregistered::OnAppInterfaceUnregistered(const OnAppInterfaceUnregistered& c)
-{
- *this=c;
-}
-
-
-bool OnAppInterfaceUnregistered::checkIntegrity(void)
-{
- return OnAppInterfaceUnregisteredMarshaller::checkIntegrity(*this);
-}
-
-
-OnAppInterfaceUnregistered::OnAppInterfaceUnregistered(void) : SDLRPCNotification(PROTOCOL_VERSION,Marshaller::METHOD_ONAPPINTERFACEUNREGISTERED)
-{
-}
-
-
-
-bool OnAppInterfaceUnregistered::set_reason(const AppInterfaceUnregisteredReason& reason_)
-{
- if(!AppInterfaceUnregisteredReasonMarshaller::checkIntegrityConst(reason_)) return false;
- reason=reason_;
- return true;
-}
-
-
-
-
-const AppInterfaceUnregisteredReason& OnAppInterfaceUnregistered::get_reason(void) const
-{
- return reason;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregisteredMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregisteredMarshaller.cpp
deleted file mode 100644
index 1241d1a37..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregisteredMarshaller.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnAppInterfaceUnregistered.h"
-#include "AppInterfaceUnregisteredReasonMarshaller.h"
-
-#include "OnAppInterfaceUnregisteredMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool OnAppInterfaceUnregisteredMarshaller::checkIntegrity(OnAppInterfaceUnregistered& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnAppInterfaceUnregisteredMarshaller::fromString(const std::string& s,OnAppInterfaceUnregistered& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnAppInterfaceUnregisteredMarshaller::toString(const OnAppInterfaceUnregistered& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnAppInterfaceUnregisteredMarshaller::checkIntegrityConst(const OnAppInterfaceUnregistered& s)
-{
- if(!AppInterfaceUnregisteredReasonMarshaller::checkIntegrityConst(s.reason)) return false;
- return true;
-}
-
-Json::Value OnAppInterfaceUnregisteredMarshaller::toJSON(const OnAppInterfaceUnregistered& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["notification"]=Json::Value(Json::objectValue);
- json["notification"]["name"]=Json::Value("OnAppInterfaceUnregistered");
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["reason"]=AppInterfaceUnregisteredReasonMarshaller::toJSON(e.reason);
-
- json["notification"]["parameters"]=j;
- return json;
-}
-
-
-bool OnAppInterfaceUnregisteredMarshaller::fromJSON(const Json::Value& js,OnAppInterfaceUnregistered& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("notification")) return false;
-
- if(!js["notification"].isObject()) return false;
- const Json::Value& j2=js["notification"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("OnAppInterfaceUnregistered")) return false;
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("reason")) return false;
- {
- const Json::Value& j=json["reason"];
- if(!AppInterfaceUnregisteredReasonMarshaller::fromJSON(j,c.reason))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregisteredMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregisteredMarshaller.h
deleted file mode 100644
index 1be620084..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnAppInterfaceUnregisteredMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ONAPPINTERFACEUNREGISTEREDMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ONAPPINTERFACEUNREGISTEREDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnAppInterfaceUnregistered.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct OnAppInterfaceUnregisteredMarshaller
- {
- static bool checkIntegrity(OnAppInterfaceUnregistered& e);
- static bool checkIntegrityConst(const OnAppInterfaceUnregistered& e);
-
- static bool fromString(const std::string& s,OnAppInterfaceUnregistered& e);
- static const std::string toString(const OnAppInterfaceUnregistered& e);
-
- static bool fromJSON(const Json::Value& s,OnAppInterfaceUnregistered& e);
- static Json::Value toJSON(const OnAppInterfaceUnregistered& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEvent.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEvent.cpp
deleted file mode 100644
index eabaeec79..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEvent.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnButtonEvent.h"
-#include "OnButtonEventMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "ButtonEventModeMarshaller.h"
-#include "ButtonNameMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-OnButtonEvent::~OnButtonEvent(void)
-{
-}
-
-
-OnButtonEvent::OnButtonEvent(const OnButtonEvent& c)
-{
- *this=c;
-}
-
-
-bool OnButtonEvent::checkIntegrity(void)
-{
- return OnButtonEventMarshaller::checkIntegrity(*this);
-}
-
-
-OnButtonEvent::OnButtonEvent(void) : SDLRPCNotification(PROTOCOL_VERSION,Marshaller::METHOD_ONBUTTONEVENT)
-{
-}
-
-
-
-bool OnButtonEvent::set_buttonName(const ButtonName& buttonName_)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(buttonName_)) return false;
- buttonName=buttonName_;
- return true;
-}
-
-bool OnButtonEvent::set_buttonEventMode(const ButtonEventMode& buttonEventMode_)
-{
- if(!ButtonEventModeMarshaller::checkIntegrityConst(buttonEventMode_)) return false;
- buttonEventMode=buttonEventMode_;
- return true;
-}
-
-
-
-
-const ButtonName& OnButtonEvent::get_buttonName(void) const
-{
- return buttonName;
-}
-
-const ButtonEventMode& OnButtonEvent::get_buttonEventMode(void) const
-{
- return buttonEventMode;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEventMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEventMarshaller.cpp
deleted file mode 100644
index 4f2bd6e42..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEventMarshaller.cpp
+++ /dev/null
@@ -1,145 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnButtonEvent.h"
-#include "ButtonEventModeMarshaller.h"
-#include "ButtonNameMarshaller.h"
-
-#include "OnButtonEventMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool OnButtonEventMarshaller::checkIntegrity(OnButtonEvent& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnButtonEventMarshaller::fromString(const std::string& s,OnButtonEvent& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnButtonEventMarshaller::toString(const OnButtonEvent& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnButtonEventMarshaller::checkIntegrityConst(const OnButtonEvent& s)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(s.buttonName)) return false;
- if(!ButtonEventModeMarshaller::checkIntegrityConst(s.buttonEventMode)) return false;
- return true;
-}
-
-Json::Value OnButtonEventMarshaller::toJSON(const OnButtonEvent& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["notification"]=Json::Value(Json::objectValue);
- json["notification"]["name"]=Json::Value("OnButtonEvent");
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["buttonName"]=ButtonNameMarshaller::toJSON(e.buttonName);
-
- j["buttonEventMode"]=ButtonEventModeMarshaller::toJSON(e.buttonEventMode);
-
- json["notification"]["parameters"]=j;
- return json;
-}
-
-
-bool OnButtonEventMarshaller::fromJSON(const Json::Value& js,OnButtonEvent& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("notification")) return false;
-
- if(!js["notification"].isObject()) return false;
- const Json::Value& j2=js["notification"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("OnButtonEvent")) return false;
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("buttonName")) return false;
- {
- const Json::Value& j=json["buttonName"];
- if(!ButtonNameMarshaller::fromJSON(j,c.buttonName))
- return false;
- }
- if(!json.isMember("buttonEventMode")) return false;
- {
- const Json::Value& j=json["buttonEventMode"];
- if(!ButtonEventModeMarshaller::fromJSON(j,c.buttonEventMode))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEventMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEventMarshaller.h
deleted file mode 100644
index a58d1e2cc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonEventMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ONBUTTONEVENTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ONBUTTONEVENTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnButtonEvent.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct OnButtonEventMarshaller
- {
- static bool checkIntegrity(OnButtonEvent& e);
- static bool checkIntegrityConst(const OnButtonEvent& e);
-
- static bool fromString(const std::string& s,OnButtonEvent& e);
- static const std::string toString(const OnButtonEvent& e);
-
- static bool fromJSON(const Json::Value& s,OnButtonEvent& e);
- static Json::Value toJSON(const OnButtonEvent& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPress.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPress.cpp
deleted file mode 100644
index 7db8e1354..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPress.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnButtonPress.h"
-#include "OnButtonPressMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "ButtonNameMarshaller.h"
-#include "ButtonPressModeMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-OnButtonPress::~OnButtonPress(void)
-{
-}
-
-
-OnButtonPress::OnButtonPress(const OnButtonPress& c)
-{
- *this=c;
-}
-
-
-bool OnButtonPress::checkIntegrity(void)
-{
- return OnButtonPressMarshaller::checkIntegrity(*this);
-}
-
-
-OnButtonPress::OnButtonPress(void) : SDLRPCNotification(PROTOCOL_VERSION,Marshaller::METHOD_ONBUTTONPRESS)
-{
-}
-
-
-
-bool OnButtonPress::set_buttonName(const ButtonName& buttonName_)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(buttonName_)) return false;
- buttonName=buttonName_;
- return true;
-}
-
-bool OnButtonPress::set_buttonPressMode(const ButtonPressMode& buttonPressMode_)
-{
- if(!ButtonPressModeMarshaller::checkIntegrityConst(buttonPressMode_)) return false;
- buttonPressMode=buttonPressMode_;
- return true;
-}
-
-
-
-
-const ButtonName& OnButtonPress::get_buttonName(void) const
-{
- return buttonName;
-}
-
-const ButtonPressMode& OnButtonPress::get_buttonPressMode(void) const
-{
- return buttonPressMode;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPressMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPressMarshaller.cpp
deleted file mode 100644
index a46515328..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPressMarshaller.cpp
+++ /dev/null
@@ -1,145 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnButtonPress.h"
-#include "ButtonNameMarshaller.h"
-#include "ButtonPressModeMarshaller.h"
-
-#include "OnButtonPressMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool OnButtonPressMarshaller::checkIntegrity(OnButtonPress& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnButtonPressMarshaller::fromString(const std::string& s,OnButtonPress& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnButtonPressMarshaller::toString(const OnButtonPress& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnButtonPressMarshaller::checkIntegrityConst(const OnButtonPress& s)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(s.buttonName)) return false;
- if(!ButtonPressModeMarshaller::checkIntegrityConst(s.buttonPressMode)) return false;
- return true;
-}
-
-Json::Value OnButtonPressMarshaller::toJSON(const OnButtonPress& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["notification"]=Json::Value(Json::objectValue);
- json["notification"]["name"]=Json::Value("OnButtonPress");
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["buttonName"]=ButtonNameMarshaller::toJSON(e.buttonName);
-
- j["buttonPressMode"]=ButtonPressModeMarshaller::toJSON(e.buttonPressMode);
-
- json["notification"]["parameters"]=j;
- return json;
-}
-
-
-bool OnButtonPressMarshaller::fromJSON(const Json::Value& js,OnButtonPress& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("notification")) return false;
-
- if(!js["notification"].isObject()) return false;
- const Json::Value& j2=js["notification"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("OnButtonPress")) return false;
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("buttonName")) return false;
- {
- const Json::Value& j=json["buttonName"];
- if(!ButtonNameMarshaller::fromJSON(j,c.buttonName))
- return false;
- }
- if(!json.isMember("buttonPressMode")) return false;
- {
- const Json::Value& j=json["buttonPressMode"];
- if(!ButtonPressModeMarshaller::fromJSON(j,c.buttonPressMode))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPressMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPressMarshaller.h
deleted file mode 100644
index 766cd8c3e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnButtonPressMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ONBUTTONPRESSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ONBUTTONPRESSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnButtonPress.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct OnButtonPressMarshaller
- {
- static bool checkIntegrity(OnButtonPress& e);
- static bool checkIntegrityConst(const OnButtonPress& e);
-
- static bool fromString(const std::string& s,OnButtonPress& e);
- static const std::string toString(const OnButtonPress& e);
-
- static bool fromJSON(const Json::Value& s,OnButtonPress& e);
- static Json::Value toJSON(const OnButtonPress& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommand.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommand.cpp
deleted file mode 100644
index 650f9b108..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommand.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnCommand.h"
-#include "OnCommandMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "TriggerSourceMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-OnCommand::~OnCommand(void)
-{
-}
-
-
-OnCommand::OnCommand(const OnCommand& c)
-{
- *this=c;
-}
-
-
-bool OnCommand::checkIntegrity(void)
-{
- return OnCommandMarshaller::checkIntegrity(*this);
-}
-
-
-OnCommand::OnCommand(void) : SDLRPCNotification(PROTOCOL_VERSION,Marshaller::METHOD_ONCOMMAND)
-{
-}
-
-
-
-bool OnCommand::set_cmdID(unsigned int cmdID_)
-{
- if(cmdID_>2000000000) return false;
- cmdID=cmdID_;
- return true;
-}
-
-bool OnCommand::set_triggerSource(const TriggerSource& triggerSource_)
-{
- if(!TriggerSourceMarshaller::checkIntegrityConst(triggerSource_)) return false;
- triggerSource=triggerSource_;
- return true;
-}
-
-
-
-
-unsigned int OnCommand::get_cmdID(void) const
-{
- return cmdID;
-}
-
-const TriggerSource& OnCommand::get_triggerSource(void) const
-{
- return triggerSource;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommandMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommandMarshaller.cpp
deleted file mode 100644
index 83bac74cc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommandMarshaller.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnCommand.h"
-#include "TriggerSourceMarshaller.h"
-
-#include "OnCommandMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool OnCommandMarshaller::checkIntegrity(OnCommand& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnCommandMarshaller::fromString(const std::string& s,OnCommand& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnCommandMarshaller::toString(const OnCommand& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnCommandMarshaller::checkIntegrityConst(const OnCommand& s)
-{
- if(s.cmdID>2000000000) return false;
- if(!TriggerSourceMarshaller::checkIntegrityConst(s.triggerSource)) return false;
- return true;
-}
-
-Json::Value OnCommandMarshaller::toJSON(const OnCommand& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["notification"]=Json::Value(Json::objectValue);
- json["notification"]["name"]=Json::Value("OnCommand");
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["cmdID"]=Json::Value(e.cmdID);
-
- j["triggerSource"]=TriggerSourceMarshaller::toJSON(e.triggerSource);
-
- json["notification"]["parameters"]=j;
- return json;
-}
-
-
-bool OnCommandMarshaller::fromJSON(const Json::Value& js,OnCommand& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("notification")) return false;
-
- if(!js["notification"].isObject()) return false;
- const Json::Value& j2=js["notification"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("OnCommand")) return false;
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("cmdID")) return false;
- {
- const Json::Value& j=json["cmdID"];
- if(!j.isInt()) return false;
- c.cmdID=j.asInt();
- }
- if(!json.isMember("triggerSource")) return false;
- {
- const Json::Value& j=json["triggerSource"];
- if(!TriggerSourceMarshaller::fromJSON(j,c.triggerSource))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommandMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommandMarshaller.h
deleted file mode 100644
index f39f9d2e8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnCommandMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ONCOMMANDMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ONCOMMANDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnCommand.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct OnCommandMarshaller
- {
- static bool checkIntegrity(OnCommand& e);
- static bool checkIntegrityConst(const OnCommand& e);
-
- static bool fromString(const std::string& s,OnCommand& e);
- static const std::string toString(const OnCommand& e);
-
- static bool fromJSON(const Json::Value& s,OnCommand& e);
- static Json::Value toJSON(const OnCommand& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistraction.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistraction.cpp
deleted file mode 100644
index 3db16b972..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistraction.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnDriverDistraction.h"
-#include "OnDriverDistractionMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "DriverDistractionStateMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-OnDriverDistraction::~OnDriverDistraction(void)
-{
-}
-
-
-OnDriverDistraction::OnDriverDistraction(const OnDriverDistraction& c)
-{
- *this=c;
-}
-
-
-bool OnDriverDistraction::checkIntegrity(void)
-{
- return OnDriverDistractionMarshaller::checkIntegrity(*this);
-}
-
-
-OnDriverDistraction::OnDriverDistraction(void) : SDLRPCNotification(PROTOCOL_VERSION,Marshaller::METHOD_ONDRIVERDISTRACTION)
-{
-}
-
-
-
-bool OnDriverDistraction::set_state(const DriverDistractionState& state_)
-{
- if(!DriverDistractionStateMarshaller::checkIntegrityConst(state_)) return false;
- state=state_;
- return true;
-}
-
-
-
-
-const DriverDistractionState& OnDriverDistraction::get_state(void) const
-{
- return state;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistractionMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistractionMarshaller.cpp
deleted file mode 100644
index eb3602be5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistractionMarshaller.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnDriverDistraction.h"
-#include "DriverDistractionStateMarshaller.h"
-
-#include "OnDriverDistractionMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool OnDriverDistractionMarshaller::checkIntegrity(OnDriverDistraction& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnDriverDistractionMarshaller::fromString(const std::string& s,OnDriverDistraction& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnDriverDistractionMarshaller::toString(const OnDriverDistraction& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnDriverDistractionMarshaller::checkIntegrityConst(const OnDriverDistraction& s)
-{
- if(!DriverDistractionStateMarshaller::checkIntegrityConst(s.state)) return false;
- return true;
-}
-
-Json::Value OnDriverDistractionMarshaller::toJSON(const OnDriverDistraction& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["notification"]=Json::Value(Json::objectValue);
- json["notification"]["name"]=Json::Value("OnDriverDistraction");
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["state"]=DriverDistractionStateMarshaller::toJSON(e.state);
-
- json["notification"]["parameters"]=j;
- return json;
-}
-
-
-bool OnDriverDistractionMarshaller::fromJSON(const Json::Value& js,OnDriverDistraction& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("notification")) return false;
-
- if(!js["notification"].isObject()) return false;
- const Json::Value& j2=js["notification"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("OnDriverDistraction")) return false;
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("state")) return false;
- {
- const Json::Value& j=json["state"];
- if(!DriverDistractionStateMarshaller::fromJSON(j,c.state))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistractionMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistractionMarshaller.h
deleted file mode 100644
index 5fac52c56..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnDriverDistractionMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ONDRIVERDISTRACTIONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ONDRIVERDISTRACTIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnDriverDistraction.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct OnDriverDistractionMarshaller
- {
- static bool checkIntegrity(OnDriverDistraction& e);
- static bool checkIntegrityConst(const OnDriverDistraction& e);
-
- static bool fromString(const std::string& s,OnDriverDistraction& e);
- static const std::string toString(const OnDriverDistraction& e);
-
- static bool fromJSON(const Json::Value& s,OnDriverDistraction& e);
- static Json::Value toJSON(const OnDriverDistraction& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPData.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPData.cpp
deleted file mode 100644
index 68614ffaa..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPData.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnEncodedSyncPData.h"
-#include "OnEncodedSyncPDataMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-OnEncodedSyncPData& OnEncodedSyncPData::operator =(const OnEncodedSyncPData& c)
-{
- data= c.data ? new std::vector<std::string>(c.data[0]) : 0;
-
- return *this;}
-
-
-OnEncodedSyncPData::~OnEncodedSyncPData(void)
-{
- if(data)
- delete data;
-}
-
-
-OnEncodedSyncPData::OnEncodedSyncPData(const OnEncodedSyncPData& c)
-{
- *this=c;
-}
-
-
-bool OnEncodedSyncPData::checkIntegrity(void)
-{
- return OnEncodedSyncPDataMarshaller::checkIntegrity(*this);
-}
-
-
-OnEncodedSyncPData::OnEncodedSyncPData(void) : SDLRPCNotification(PROTOCOL_VERSION,Marshaller::METHOD_ONENCODEDSYNCPDATA),
- data(0)
-{
-}
-
-
-
-bool OnEncodedSyncPData::set_data(const std::vector<std::string>& data_)
-{
- unsigned int i=data_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(data_[i].length()>10000) return false;
- }
- delete data;
- data=0;
-
- data=new std::vector<std::string>(data_);
- return true;
-}
-
-void OnEncodedSyncPData::reset_data(void)
-{
- if(data)
- delete data;
- data=0;
-}
-
-
-
-
-const std::vector<std::string>* OnEncodedSyncPData::get_data(void) const
-{
- return data;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPDataMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPDataMarshaller.cpp
deleted file mode 100644
index f8a7fc097..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPDataMarshaller.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnEncodedSyncPData.h"
-
-
-#include "OnEncodedSyncPDataMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool OnEncodedSyncPDataMarshaller::checkIntegrity(OnEncodedSyncPData& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnEncodedSyncPDataMarshaller::fromString(const std::string& s,OnEncodedSyncPData& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnEncodedSyncPDataMarshaller::toString(const OnEncodedSyncPData& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnEncodedSyncPDataMarshaller::checkIntegrityConst(const OnEncodedSyncPData& s)
-{
- if(s.data)
- {
- unsigned int i=s.data[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.data[0][i].length()>10000) return false;
- }
- }
- return true;
-}
-
-Json::Value OnEncodedSyncPDataMarshaller::toJSON(const OnEncodedSyncPData& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["notification"]=Json::Value(Json::objectValue);
- json["notification"]["name"]=Json::Value("OnEncodedSyncPData");
-
- Json::Value j=Json::Value(Json::objectValue);
-
- if(e.data)
- {
- unsigned int sz=e.data->size();
- j["data"]=Json::Value(Json::arrayValue);
- j["data"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["data"][i]=Json::Value(e.data[0][i]);
- }
-
- json["notification"]["parameters"]=j;
- return json;
-}
-
-
-bool OnEncodedSyncPDataMarshaller::fromJSON(const Json::Value& js,OnEncodedSyncPData& c)
-{
- if(c.data) delete c.data;
- c.data=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("notification")) return false;
-
- if(!js["notification"].isObject()) return false;
- const Json::Value& j2=js["notification"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("OnEncodedSyncPData")) return false;
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(json.isMember("data"))
- {
- const Json::Value& j=json["data"];
- if(!j.isArray()) return false;
- c.data=new std::vector<std::string>();
- c.data->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.data[0][i]=j[i].asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPDataMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPDataMarshaller.h
deleted file mode 100644
index a06aa4ccf..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnEncodedSyncPDataMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ONENCODEDSYNCPDATAMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ONENCODEDSYNCPDATAMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnEncodedSyncPData.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct OnEncodedSyncPDataMarshaller
- {
- static bool checkIntegrity(OnEncodedSyncPData& e);
- static bool checkIntegrityConst(const OnEncodedSyncPData& e);
-
- static bool fromString(const std::string& s,OnEncodedSyncPData& e);
- static const std::string toString(const OnEncodedSyncPData& e);
-
- static bool fromJSON(const Json::Value& s,OnEncodedSyncPData& e);
- static Json::Value toJSON(const OnEncodedSyncPData& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatus.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatus.cpp
deleted file mode 100644
index 0c723c517..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatus.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnHMIStatus.h"
-#include "OnHMIStatusMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "AudioStreamingStateMarshaller.h"
-#include "HMILevelMarshaller.h"
-#include "SystemContextMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-OnHMIStatus::~OnHMIStatus(void)
-{
-}
-
-
-OnHMIStatus::OnHMIStatus(const OnHMIStatus& c)
-{
- *this=c;
-}
-
-
-bool OnHMIStatus::checkIntegrity(void)
-{
- return OnHMIStatusMarshaller::checkIntegrity(*this);
-}
-
-
-OnHMIStatus::OnHMIStatus(void) : SDLRPCNotification(PROTOCOL_VERSION,Marshaller::METHOD_ONHMISTATUS)
-{
-}
-
-
-
-bool OnHMIStatus::set_hmiLevel(const HMILevel& hmiLevel_)
-{
- if(!HMILevelMarshaller::checkIntegrityConst(hmiLevel_)) return false;
- hmiLevel=hmiLevel_;
- return true;
-}
-
-bool OnHMIStatus::set_audioStreamingState(const AudioStreamingState& audioStreamingState_)
-{
- if(!AudioStreamingStateMarshaller::checkIntegrityConst(audioStreamingState_)) return false;
- audioStreamingState=audioStreamingState_;
- return true;
-}
-
-bool OnHMIStatus::set_systemContext(const SystemContext& systemContext_)
-{
- if(!SystemContextMarshaller::checkIntegrityConst(systemContext_)) return false;
- systemContext=systemContext_;
- return true;
-}
-
-
-
-
-const HMILevel& OnHMIStatus::get_hmiLevel(void) const
-{
- return hmiLevel;
-}
-
-const AudioStreamingState& OnHMIStatus::get_audioStreamingState(void) const
-{
- return audioStreamingState;
-}
-
-const SystemContext& OnHMIStatus::get_systemContext(void) const
-{
- return systemContext;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatusMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatusMarshaller.cpp
deleted file mode 100644
index d8cbe828e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatusMarshaller.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnHMIStatus.h"
-#include "AudioStreamingStateMarshaller.h"
-#include "HMILevelMarshaller.h"
-#include "SystemContextMarshaller.h"
-
-#include "OnHMIStatusMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool OnHMIStatusMarshaller::checkIntegrity(OnHMIStatus& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnHMIStatusMarshaller::fromString(const std::string& s,OnHMIStatus& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnHMIStatusMarshaller::toString(const OnHMIStatus& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnHMIStatusMarshaller::checkIntegrityConst(const OnHMIStatus& s)
-{
- if(!HMILevelMarshaller::checkIntegrityConst(s.hmiLevel)) return false;
- if(!AudioStreamingStateMarshaller::checkIntegrityConst(s.audioStreamingState)) return false;
- if(!SystemContextMarshaller::checkIntegrityConst(s.systemContext)) return false;
- return true;
-}
-
-Json::Value OnHMIStatusMarshaller::toJSON(const OnHMIStatus& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["notification"]=Json::Value(Json::objectValue);
- json["notification"]["name"]=Json::Value("OnHMIStatus");
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["hmiLevel"]=HMILevelMarshaller::toJSON(e.hmiLevel);
-
- j["audioStreamingState"]=AudioStreamingStateMarshaller::toJSON(e.audioStreamingState);
-
- j["systemContext"]=SystemContextMarshaller::toJSON(e.systemContext);
-
- json["notification"]["parameters"]=j;
- return json;
-}
-
-
-bool OnHMIStatusMarshaller::fromJSON(const Json::Value& js,OnHMIStatus& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("notification")) return false;
-
- if(!js["notification"].isObject()) return false;
- const Json::Value& j2=js["notification"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("OnHMIStatus")) return false;
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("hmiLevel")) return false;
- {
- const Json::Value& j=json["hmiLevel"];
- if(!HMILevelMarshaller::fromJSON(j,c.hmiLevel))
- return false;
- }
- if(!json.isMember("audioStreamingState")) return false;
- {
- const Json::Value& j=json["audioStreamingState"];
- if(!AudioStreamingStateMarshaller::fromJSON(j,c.audioStreamingState))
- return false;
- }
- if(!json.isMember("systemContext")) return false;
- {
- const Json::Value& j=json["systemContext"];
- if(!SystemContextMarshaller::fromJSON(j,c.systemContext))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatusMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatusMarshaller.h
deleted file mode 100644
index 3eae53291..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnHMIStatusMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ONHMISTATUSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ONHMISTATUSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnHMIStatus.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct OnHMIStatusMarshaller
- {
- static bool checkIntegrity(OnHMIStatus& e);
- static bool checkIntegrityConst(const OnHMIStatus& e);
-
- static bool fromString(const std::string& s,OnHMIStatus& e);
- static const std::string toString(const OnHMIStatus& e);
-
- static bool fromJSON(const Json::Value& s,OnHMIStatus& e);
- static Json::Value toJSON(const OnHMIStatus& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientState.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientState.cpp
deleted file mode 100644
index 63e1a38b7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientState.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnTBTClientState.h"
-#include "OnTBTClientStateMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "TBTStateMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-OnTBTClientState::~OnTBTClientState(void)
-{
-}
-
-
-OnTBTClientState::OnTBTClientState(const OnTBTClientState& c)
-{
- *this=c;
-}
-
-
-bool OnTBTClientState::checkIntegrity(void)
-{
- return OnTBTClientStateMarshaller::checkIntegrity(*this);
-}
-
-
-OnTBTClientState::OnTBTClientState(void) : SDLRPCNotification(PROTOCOL_VERSION,Marshaller::METHOD_ONTBTCLIENTSTATE)
-{
-}
-
-
-
-bool OnTBTClientState::set_state(const TBTState& state_)
-{
- if(!TBTStateMarshaller::checkIntegrityConst(state_)) return false;
- state=state_;
- return true;
-}
-
-
-
-
-const TBTState& OnTBTClientState::get_state(void) const
-{
- return state;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientStateMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientStateMarshaller.cpp
deleted file mode 100644
index 2bb137a3c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientStateMarshaller.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnTBTClientState.h"
-#include "TBTStateMarshaller.h"
-
-#include "OnTBTClientStateMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool OnTBTClientStateMarshaller::checkIntegrity(OnTBTClientState& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnTBTClientStateMarshaller::fromString(const std::string& s,OnTBTClientState& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnTBTClientStateMarshaller::toString(const OnTBTClientState& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnTBTClientStateMarshaller::checkIntegrityConst(const OnTBTClientState& s)
-{
- if(!TBTStateMarshaller::checkIntegrityConst(s.state)) return false;
- return true;
-}
-
-Json::Value OnTBTClientStateMarshaller::toJSON(const OnTBTClientState& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["notification"]=Json::Value(Json::objectValue);
- json["notification"]["name"]=Json::Value("OnTBTClientState");
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["state"]=TBTStateMarshaller::toJSON(e.state);
-
- json["notification"]["parameters"]=j;
- return json;
-}
-
-
-bool OnTBTClientStateMarshaller::fromJSON(const Json::Value& js,OnTBTClientState& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("notification")) return false;
-
- if(!js["notification"].isObject()) return false;
- const Json::Value& j2=js["notification"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("OnTBTClientState")) return false;
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("state")) return false;
- {
- const Json::Value& j=json["state"];
- if(!TBTStateMarshaller::fromJSON(j,c.state))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientStateMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientStateMarshaller.h
deleted file mode 100644
index bae0c0461..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/OnTBTClientStateMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_ONTBTCLIENTSTATEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_ONTBTCLIENTSTATEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/OnTBTClientState.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct OnTBTClientStateMarshaller
- {
- static bool checkIntegrity(OnTBTClientState& e);
- static bool checkIntegrityConst(const OnTBTClientState& e);
-
- static bool fromString(const std::string& s,OnTBTClientState& e);
- static const std::string toString(const OnTBTClientState& e);
-
- static bool fromJSON(const Json::Value& s,OnTBTClientState& e);
- static Json::Value toJSON(const OnTBTClientState& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerfectHashTable.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerfectHashTable.h
deleted file mode 100644
index d0da6d495..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerfectHashTable.h
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef PERFECTHASHTABLE_INCLUDE
-#define PERFECTHASHTABLE_INCLUDE
-
-namespace NsSmartDeviceLinkRPC
-{
- struct PerfectHashTable
- {
- const char *name;
- unsigned int idx;
- };
-}
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_request.cpp
deleted file mode 100644
index 95249b10f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_request.cpp
+++ /dev/null
@@ -1,234 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_request.h"
-#include "PerformInteraction_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "InteractionModeMarshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-PerformInteraction_request& PerformInteraction_request::operator =(const PerformInteraction_request& c)
-{
- initialText= c.initialText;
- initialPrompt= c.initialPrompt;
- interactionMode= c.interactionMode;
- interactionChoiceSetIDList= c.interactionChoiceSetIDList;
- helpPrompt= c.helpPrompt ? new std::vector<TTSChunk>(c.helpPrompt[0]) : 0;
- timeoutPrompt= c.timeoutPrompt ? new std::vector<TTSChunk>(c.timeoutPrompt[0]) : 0;
- timeout= c.timeout ? new unsigned int(c.timeout[0]) : 0;
-
- return *this;}
-
-
-PerformInteraction_request::~PerformInteraction_request(void)
-{
- if(helpPrompt)
- delete helpPrompt;
- if(timeoutPrompt)
- delete timeoutPrompt;
- if(timeout)
- delete timeout;
-}
-
-
-PerformInteraction_request::PerformInteraction_request(const PerformInteraction_request& c)
-{
- *this=c;
-}
-
-
-bool PerformInteraction_request::checkIntegrity(void)
-{
- return PerformInteraction_requestMarshaller::checkIntegrity(*this);
-}
-
-
-PerformInteraction_request::PerformInteraction_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_PERFORMINTERACTION_REQUEST),
- helpPrompt(0),
- timeoutPrompt(0),
- timeout(0)
-{
-}
-
-
-
-bool PerformInteraction_request::set_initialText(const std::string& initialText_)
-{
- if(initialText_.length()>500) return false;
- initialText=initialText_;
- return true;
-}
-
-bool PerformInteraction_request::set_initialPrompt(const std::vector<TTSChunk>& initialPrompt_)
-{
- unsigned int i=initialPrompt_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(initialPrompt_[i])) return false;
- }
- initialPrompt=initialPrompt_;
- return true;
-}
-
-bool PerformInteraction_request::set_interactionMode(const InteractionMode& interactionMode_)
-{
- if(!InteractionModeMarshaller::checkIntegrityConst(interactionMode_)) return false;
- interactionMode=interactionMode_;
- return true;
-}
-
-bool PerformInteraction_request::set_interactionChoiceSetIDList(const std::vector<unsigned int>& interactionChoiceSetIDList_)
-{
- unsigned int i=interactionChoiceSetIDList_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(interactionChoiceSetIDList_[i]>2000000000) return false;
- }
- interactionChoiceSetIDList=interactionChoiceSetIDList_;
- return true;
-}
-
-bool PerformInteraction_request::set_helpPrompt(const std::vector<TTSChunk>& helpPrompt_)
-{
- unsigned int i=helpPrompt_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(helpPrompt_[i])) return false;
- }
- delete helpPrompt;
- helpPrompt=0;
-
- helpPrompt=new std::vector<TTSChunk>(helpPrompt_);
- return true;
-}
-
-void PerformInteraction_request::reset_helpPrompt(void)
-{
- if(helpPrompt)
- delete helpPrompt;
- helpPrompt=0;
-}
-
-bool PerformInteraction_request::set_timeoutPrompt(const std::vector<TTSChunk>& timeoutPrompt_)
-{
- unsigned int i=timeoutPrompt_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(timeoutPrompt_[i])) return false;
- }
- delete timeoutPrompt;
- timeoutPrompt=0;
-
- timeoutPrompt=new std::vector<TTSChunk>(timeoutPrompt_);
- return true;
-}
-
-void PerformInteraction_request::reset_timeoutPrompt(void)
-{
- if(timeoutPrompt)
- delete timeoutPrompt;
- timeoutPrompt=0;
-}
-
-bool PerformInteraction_request::set_timeout(unsigned int timeout_)
-{
- if(timeout_>100000) return false;
- if(timeout_<5000) return false;
- delete timeout;
- timeout=0;
-
- timeout=new unsigned int(timeout_);
- return true;
-}
-
-void PerformInteraction_request::reset_timeout(void)
-{
- if(timeout)
- delete timeout;
- timeout=0;
-}
-
-
-
-
-const std::string& PerformInteraction_request::get_initialText(void) const
-{
- return initialText;
-}
-
-const std::vector<TTSChunk>& PerformInteraction_request::get_initialPrompt(void) const
-{
- return initialPrompt;
-}
-
-const InteractionMode& PerformInteraction_request::get_interactionMode(void) const
-{
- return interactionMode;
-}
-
-const std::vector<unsigned int>& PerformInteraction_request::get_interactionChoiceSetIDList(void) const
-{
- return interactionChoiceSetIDList;
-}
-
-const std::vector<TTSChunk>* PerformInteraction_request::get_helpPrompt(void) const
-{
- return helpPrompt;
-}
-
-const std::vector<TTSChunk>* PerformInteraction_request::get_timeoutPrompt(void) const
-{
- return timeoutPrompt;
-}
-
-const unsigned int* PerformInteraction_request::get_timeout(void) const
-{
- return timeout;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_requestMarshaller.cpp
deleted file mode 100644
index a5d8b86ce..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_requestMarshaller.cpp
+++ /dev/null
@@ -1,285 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_request.h"
-#include "InteractionModeMarshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#include "PerformInteraction_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool PerformInteraction_requestMarshaller::checkIntegrity(PerformInteraction_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PerformInteraction_requestMarshaller::fromString(const std::string& s,PerformInteraction_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PerformInteraction_requestMarshaller::toString(const PerformInteraction_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PerformInteraction_requestMarshaller::checkIntegrityConst(const PerformInteraction_request& s)
-{
- if(s.initialText.length()>500) return false;
- {
- unsigned int i=s.initialPrompt.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.initialPrompt[i])) return false;
- }
- }
- if(!InteractionModeMarshaller::checkIntegrityConst(s.interactionMode)) return false;
- {
- unsigned int i=s.interactionChoiceSetIDList.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.interactionChoiceSetIDList[i]>2000000000) return false;
- }
- }
- if(s.helpPrompt)
- {
- unsigned int i=s.helpPrompt[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.helpPrompt[0][i])) return false;
- }
- }
- if(s.timeoutPrompt)
- {
- unsigned int i=s.timeoutPrompt[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.timeoutPrompt[0][i])) return false;
- }
- }
- if(s.timeout && *s.timeout>100000) return false;
- if(s.timeout && *s.timeout<5000) return false;
- return true;
-}
-
-Json::Value PerformInteraction_requestMarshaller::toJSON(const PerformInteraction_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("PerformInteraction");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["initialText"]=Json::Value(e.initialText);
-
- j["initialPrompt"]=Json::Value(Json::arrayValue);
- j["initialPrompt"].resize(e.initialPrompt.size());
- for(unsigned int i=0;i<e.initialPrompt.size();i++)
- j["initialPrompt"][i]=TTSChunkMarshaller::toJSON(e.initialPrompt[i]);
-
- j["interactionMode"]=InteractionModeMarshaller::toJSON(e.interactionMode);
-
- j["interactionChoiceSetIDList"]=Json::Value(Json::arrayValue);
- j["interactionChoiceSetIDList"].resize(e.interactionChoiceSetIDList.size());
- for(unsigned int i=0;i<e.interactionChoiceSetIDList.size();i++)
- j["interactionChoiceSetIDList"][i]=Json::Value(e.interactionChoiceSetIDList[i]);
-
- if(e.helpPrompt)
- {
- unsigned int sz=e.helpPrompt->size();
- j["helpPrompt"]=Json::Value(Json::arrayValue);
- j["helpPrompt"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["helpPrompt"][i]=TTSChunkMarshaller::toJSON(e.helpPrompt[0][i]);
- }
-
- if(e.timeoutPrompt)
- {
- unsigned int sz=e.timeoutPrompt->size();
- j["timeoutPrompt"]=Json::Value(Json::arrayValue);
- j["timeoutPrompt"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["timeoutPrompt"][i]=TTSChunkMarshaller::toJSON(e.timeoutPrompt[0][i]);
- }
-
- if(e.timeout)
- j["timeout"]=Json::Value(*e.timeout);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool PerformInteraction_requestMarshaller::fromJSON(const Json::Value& js,PerformInteraction_request& c)
-{
- if(c.helpPrompt) delete c.helpPrompt;
- c.helpPrompt=0;
-
- if(c.timeoutPrompt) delete c.timeoutPrompt;
- c.timeoutPrompt=0;
-
- if(c.timeout) delete c.timeout;
- c.timeout=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("PerformInteraction")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("initialText")) return false;
- {
- const Json::Value& j=json["initialText"];
- if(!j.isString()) return false;
- c.initialText=j.asString();
- }
- if(!json.isMember("initialPrompt")) return false;
- {
- const Json::Value& j=json["initialPrompt"];
- if(!j.isArray()) return false;
- c.initialPrompt.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.initialPrompt[i]=t;
- }
-
- }
- if(!json.isMember("interactionMode")) return false;
- {
- const Json::Value& j=json["interactionMode"];
- if(!InteractionModeMarshaller::fromJSON(j,c.interactionMode))
- return false;
- }
- if(!json.isMember("interactionChoiceSetIDList")) return false;
- {
- const Json::Value& j=json["interactionChoiceSetIDList"];
- if(!j.isArray()) return false;
- c.interactionChoiceSetIDList.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isInt())
- return false;
- else
- c.interactionChoiceSetIDList[i]=j[i].asInt();
- }
- if(json.isMember("helpPrompt"))
- {
- const Json::Value& j=json["helpPrompt"];
- if(!j.isArray()) return false;
- c.helpPrompt=new std::vector<TTSChunk>();
- c.helpPrompt->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.helpPrompt[0][i]=t;
- }
-
- }
- if(json.isMember("timeoutPrompt"))
- {
- const Json::Value& j=json["timeoutPrompt"];
- if(!j.isArray()) return false;
- c.timeoutPrompt=new std::vector<TTSChunk>();
- c.timeoutPrompt->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.timeoutPrompt[0][i]=t;
- }
-
- }
- if(json.isMember("timeout"))
- {
- const Json::Value& j=json["timeout"];
- if(!j.isInt()) return false;
- c.timeout=new unsigned int(j.asInt());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_requestMarshaller.h
deleted file mode 100644
index 2eebc438f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_PERFORMINTERACTION_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_PERFORMINTERACTION_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct PerformInteraction_requestMarshaller
- {
- static bool checkIntegrity(PerformInteraction_request& e);
- static bool checkIntegrityConst(const PerformInteraction_request& e);
-
- static bool fromString(const std::string& s,PerformInteraction_request& e);
- static const std::string toString(const PerformInteraction_request& e);
-
- static bool fromJSON(const Json::Value& s,PerformInteraction_request& e);
- static Json::Value toJSON(const PerformInteraction_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_response.cpp
deleted file mode 100644
index 22bbc055c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_response.cpp
+++ /dev/null
@@ -1,145 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_response.h"
-#include "PerformInteraction_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "TriggerSourceMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-PerformInteraction_response& PerformInteraction_response::operator =(const PerformInteraction_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
- choiceID = c.choiceID ? new unsigned int(c.choiceID[0]) : 0;
- triggerSource = c.triggerSource ? new TriggerSource(c.triggerSource[0]) : 0;
-
- return *this;
-}
-
-PerformInteraction_response::~PerformInteraction_response(void)
-{
- if (choiceID)
- {
- delete choiceID;
- }
- if (triggerSource)
- {
- delete triggerSource;
- }
-}
-
-PerformInteraction_response::PerformInteraction_response(const PerformInteraction_response& c)
-{
- *this = c;
-}
-
-bool PerformInteraction_response::checkIntegrity(void)
-{
- return PerformInteraction_responseMarshaller::checkIntegrity(*this);
-}
-
-PerformInteraction_response::PerformInteraction_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_PERFORMINTERACTION_RESPONSE),
- choiceID(0),
- triggerSource(0)
-{}
-
-bool PerformInteraction_response::set_choiceID(unsigned int choiceID_)
-{
- if (choiceID_ > 2000000000)
- {
- return false;
- }
- delete choiceID;
- choiceID = 0;
-
- choiceID = new unsigned int(choiceID_);
- return true;
-}
-
-void PerformInteraction_response::reset_choiceID(void)
-{
- if (choiceID)
- {
- delete choiceID;
- }
- choiceID = 0;
-}
-
-bool PerformInteraction_response::set_triggerSource(const TriggerSource& triggerSource_)
-{
- if (!TriggerSourceMarshaller::checkIntegrityConst(triggerSource_))
- {
- return false;
- }
- delete triggerSource;
- triggerSource = 0;
-
- triggerSource = new TriggerSource(triggerSource_);
- return true;
-}
-
-void PerformInteraction_response::reset_triggerSource(void)
-{
- if (triggerSource)
- {
- delete triggerSource;
- }
- triggerSource = 0;
-}
-
-const unsigned int* PerformInteraction_response::get_choiceID(void) const
-{
- return choiceID;
-}
-
-const TriggerSource* PerformInteraction_response::get_triggerSource(void) const
-{
- return triggerSource;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_responseMarshaller.cpp
deleted file mode 100644
index 332809b77..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_responseMarshaller.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_response.h"
-#include "ResultMarshaller.h"
-#include "TriggerSourceMarshaller.h"
-
-#include "PerformInteraction_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool PerformInteraction_responseMarshaller::checkIntegrity(PerformInteraction_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PerformInteraction_responseMarshaller::fromString(const std::string& s,PerformInteraction_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PerformInteraction_responseMarshaller::toString(const PerformInteraction_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PerformInteraction_responseMarshaller::checkIntegrityConst(const PerformInteraction_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- if(s.choiceID && *s.choiceID>2000000000) return false;
- if(s.triggerSource && !TriggerSourceMarshaller::checkIntegrityConst(*s.triggerSource)) return false;
- return true;
-}
-
-Json::Value PerformInteraction_responseMarshaller::toJSON(const PerformInteraction_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("PerformInteraction");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- if(e.choiceID)
- j["choiceID"]=Json::Value(*e.choiceID);
-
- if(e.triggerSource)
- j["triggerSource"]=TriggerSourceMarshaller::toJSON(*e.triggerSource);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool PerformInteraction_responseMarshaller::fromJSON(const Json::Value& js,PerformInteraction_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- if(c.choiceID) delete c.choiceID;
- c.choiceID=0;
-
- if(c.triggerSource) delete c.triggerSource;
- c.triggerSource=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("PerformInteraction")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
- if(json.isMember("choiceID"))
- {
- const Json::Value& j=json["choiceID"];
- if(!j.isInt()) return false;
- c.choiceID=new unsigned int(j.asInt());
- }
- if(json.isMember("triggerSource"))
- {
- const Json::Value& j=json["triggerSource"];
- c.triggerSource=new TriggerSource();
- if(!TriggerSourceMarshaller::fromJSON(j,c.triggerSource[0]))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_responseMarshaller.h
deleted file mode 100644
index 54f3517fc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/PerformInteraction_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_PERFORMINTERACTION_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_PERFORMINTERACTION_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/PerformInteraction_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct PerformInteraction_responseMarshaller
- {
- static bool checkIntegrity(PerformInteraction_response& e);
- static bool checkIntegrityConst(const PerformInteraction_response& e);
-
- static bool fromString(const std::string& s,PerformInteraction_response& e);
- static const std::string toString(const PerformInteraction_response& e);
-
- static bool fromJSON(const Json::Value& s,PerformInteraction_response& e);
- static Json::Value toJSON(const PerformInteraction_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_request.cpp
deleted file mode 100644
index 4ac0d7981..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_request.cpp
+++ /dev/null
@@ -1,242 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_request.h"
-#include "RegisterAppInterface_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "LanguageMarshaller.h"
-#include "SyncMsgVersionMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-RegisterAppInterface_request& RegisterAppInterface_request::operator =(const RegisterAppInterface_request& c)
-{
- syncMsgVersion= c.syncMsgVersion;
- appName= c.appName;
- ngnMediaScreenAppName= c.ngnMediaScreenAppName ? new std::string(c.ngnMediaScreenAppName[0]) : 0;
- vrSynonyms= c.vrSynonyms ? new std::vector<std::string>(c.vrSynonyms[0]) : 0;
- usesVehicleData= c.usesVehicleData ? new bool(c.usesVehicleData[0]) : 0;
- isMediaApplication= c.isMediaApplication;
- languageDesired= c.languageDesired;
- autoActivateID= c.autoActivateID ? new std::string(c.autoActivateID[0]) : 0;
-
- return *this;}
-
-
-RegisterAppInterface_request::~RegisterAppInterface_request(void)
-{
- if(ngnMediaScreenAppName)
- delete ngnMediaScreenAppName;
- if(vrSynonyms)
- delete vrSynonyms;
- if(usesVehicleData)
- delete usesVehicleData;
- if(autoActivateID)
- delete autoActivateID;
-}
-
-
-RegisterAppInterface_request::RegisterAppInterface_request(const RegisterAppInterface_request& c)
-{
- *this=c;
-}
-
-
-bool RegisterAppInterface_request::checkIntegrity(void)
-{
- return RegisterAppInterface_requestMarshaller::checkIntegrity(*this);
-}
-
-
-RegisterAppInterface_request::RegisterAppInterface_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_REGISTERAPPINTERFACE_REQUEST),
- ngnMediaScreenAppName(0),
- vrSynonyms(0),
- usesVehicleData(0),
- autoActivateID(0)
-{
-}
-
-
-
-bool RegisterAppInterface_request::set_syncMsgVersion(const SyncMsgVersion& syncMsgVersion_)
-{
- if(!SyncMsgVersionMarshaller::checkIntegrityConst(syncMsgVersion_)) return false;
- syncMsgVersion=syncMsgVersion_;
- return true;
-}
-
-bool RegisterAppInterface_request::set_appName(const std::string& appName_)
-{
- if(appName_.length()>100) return false;
- appName=appName_;
- return true;
-}
-
-bool RegisterAppInterface_request::set_ngnMediaScreenAppName(const std::string& ngnMediaScreenAppName_)
-{
- if(ngnMediaScreenAppName_.length()>100) return false;
- delete ngnMediaScreenAppName;
- ngnMediaScreenAppName=0;
-
- ngnMediaScreenAppName=new std::string(ngnMediaScreenAppName_);
- return true;
-}
-
-void RegisterAppInterface_request::reset_ngnMediaScreenAppName(void)
-{
- if(ngnMediaScreenAppName)
- delete ngnMediaScreenAppName;
- ngnMediaScreenAppName=0;
-}
-
-bool RegisterAppInterface_request::set_vrSynonyms(const std::vector<std::string>& vrSynonyms_)
-{
- unsigned int i=vrSynonyms_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(vrSynonyms_[i].length()>40) return false;
- }
- delete vrSynonyms;
- vrSynonyms=0;
-
- vrSynonyms=new std::vector<std::string>(vrSynonyms_);
- return true;
-}
-
-void RegisterAppInterface_request::reset_vrSynonyms(void)
-{
- if(vrSynonyms)
- delete vrSynonyms;
- vrSynonyms=0;
-}
-
-bool RegisterAppInterface_request::set_usesVehicleData(bool usesVehicleData_)
-{
- delete usesVehicleData;
- usesVehicleData=0;
-
- usesVehicleData=new bool(usesVehicleData_);
- return true;
-}
-
-void RegisterAppInterface_request::reset_usesVehicleData(void)
-{
- if(usesVehicleData)
- delete usesVehicleData;
- usesVehicleData=0;
-}
-
-bool RegisterAppInterface_request::set_isMediaApplication(bool isMediaApplication_)
-{
- isMediaApplication=isMediaApplication_;
- return true;
-}
-
-bool RegisterAppInterface_request::set_languageDesired(const Language& languageDesired_)
-{
- if(!LanguageMarshaller::checkIntegrityConst(languageDesired_)) return false;
- languageDesired=languageDesired_;
- return true;
-}
-
-bool RegisterAppInterface_request::set_autoActivateID(const std::string& autoActivateID_)
-{
- if(autoActivateID_.length()>16) return false;
- delete autoActivateID;
- autoActivateID=0;
-
- autoActivateID=new std::string(autoActivateID_);
- return true;
-}
-
-void RegisterAppInterface_request::reset_autoActivateID(void)
-{
- if(autoActivateID)
- delete autoActivateID;
- autoActivateID=0;
-}
-
-
-
-
-const SyncMsgVersion& RegisterAppInterface_request::get_syncMsgVersion(void) const
-{
- return syncMsgVersion;
-}
-
-const std::string& RegisterAppInterface_request::get_appName(void) const
-{
- return appName;
-}
-
-const std::string* RegisterAppInterface_request::get_ngnMediaScreenAppName(void) const
-{
- return ngnMediaScreenAppName;
-}
-
-const std::vector<std::string>* RegisterAppInterface_request::get_vrSynonyms(void) const
-{
- return vrSynonyms;
-}
-
-const bool* RegisterAppInterface_request::get_usesVehicleData(void) const
-{
- return usesVehicleData;
-}
-
-bool RegisterAppInterface_request::get_isMediaApplication(void) const
-{
- return isMediaApplication;
-}
-
-const Language& RegisterAppInterface_request::get_languageDesired(void) const
-{
- return languageDesired;
-}
-
-const std::string* RegisterAppInterface_request::get_autoActivateID(void) const
-{
- return autoActivateID;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_requestMarshaller.cpp
deleted file mode 100644
index bcfcb0df6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_requestMarshaller.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_request.h"
-#include "LanguageMarshaller.h"
-#include "SyncMsgVersionMarshaller.h"
-
-#include "RegisterAppInterface_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool RegisterAppInterface_requestMarshaller::checkIntegrity(RegisterAppInterface_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool RegisterAppInterface_requestMarshaller::fromString(const std::string& s,RegisterAppInterface_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string RegisterAppInterface_requestMarshaller::toString(const RegisterAppInterface_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool RegisterAppInterface_requestMarshaller::checkIntegrityConst(const RegisterAppInterface_request& s)
-{
- if(!SyncMsgVersionMarshaller::checkIntegrityConst(s.syncMsgVersion)) return false;
- if(s.appName.length()>100) return false;
- if(s.ngnMediaScreenAppName && s.ngnMediaScreenAppName->length()>100) return false;
- if(s.vrSynonyms)
- {
- unsigned int i=s.vrSynonyms[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.vrSynonyms[0][i].length()>40) return false;
- }
- }
- if(!LanguageMarshaller::checkIntegrityConst(s.languageDesired)) return false;
- if(s.autoActivateID && s.autoActivateID->length()>16) return false;
- return true;
-}
-
-Json::Value RegisterAppInterface_requestMarshaller::toJSON(const RegisterAppInterface_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("RegisterAppInterface");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["syncMsgVersion"]=SyncMsgVersionMarshaller::toJSON(e.syncMsgVersion);
-
- j["appName"]=Json::Value(e.appName);
-
- if(e.ngnMediaScreenAppName)
- j["ngnMediaScreenAppName"]=Json::Value(*e.ngnMediaScreenAppName);
-
- if(e.vrSynonyms)
- {
- unsigned int sz=e.vrSynonyms->size();
- j["vrSynonyms"]=Json::Value(Json::arrayValue);
- j["vrSynonyms"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["vrSynonyms"][i]=Json::Value(e.vrSynonyms[0][i]);
- }
-
- if(e.usesVehicleData)
- j["usesVehicleData"]=Json::Value(*e.usesVehicleData);
-
- j["isMediaApplication"]=Json::Value(e.isMediaApplication);
-
- j["languageDesired"]=LanguageMarshaller::toJSON(e.languageDesired);
-
- if(e.autoActivateID)
- j["autoActivateID"]=Json::Value(*e.autoActivateID);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool RegisterAppInterface_requestMarshaller::fromJSON(const Json::Value& js,RegisterAppInterface_request& c)
-{
- if(c.ngnMediaScreenAppName) delete c.ngnMediaScreenAppName;
- c.ngnMediaScreenAppName=0;
-
- if(c.vrSynonyms) delete c.vrSynonyms;
- c.vrSynonyms=0;
-
- if(c.usesVehicleData) delete c.usesVehicleData;
- c.usesVehicleData=0;
-
- if(c.autoActivateID) delete c.autoActivateID;
- c.autoActivateID=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("RegisterAppInterface")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("syncMsgVersion")) return false;
- {
- const Json::Value& j=json["syncMsgVersion"];
- if(!SyncMsgVersionMarshaller::fromJSON(j,c.syncMsgVersion))
- return false;
- }
- if(!json.isMember("appName")) return false;
- {
- const Json::Value& j=json["appName"];
- if(!j.isString()) return false;
- c.appName=j.asString();
- }
- if(json.isMember("ngnMediaScreenAppName"))
- {
- const Json::Value& j=json["ngnMediaScreenAppName"];
- if(!j.isString()) return false;
- c.ngnMediaScreenAppName=new std::string(j.asString());
- }
- if(json.isMember("vrSynonyms"))
- {
- const Json::Value& j=json["vrSynonyms"];
- if(!j.isArray()) return false;
- c.vrSynonyms=new std::vector<std::string>();
- c.vrSynonyms->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.vrSynonyms[0][i]=j[i].asString();
- }
- if(json.isMember("usesVehicleData"))
- {
- const Json::Value& j=json["usesVehicleData"];
- if(!j.isBool()) return false;
- c.usesVehicleData=new bool(j.asBool());
- }
- if(!json.isMember("isMediaApplication")) return false;
- {
- const Json::Value& j=json["isMediaApplication"];
- if(!j.isBool()) return false;
- c.isMediaApplication=j.asBool();
- }
- if(!json.isMember("languageDesired")) return false;
- {
- const Json::Value& j=json["languageDesired"];
- if(!LanguageMarshaller::fromJSON(j,c.languageDesired))
- return false;
- }
- if(json.isMember("autoActivateID"))
- {
- const Json::Value& j=json["autoActivateID"];
- if(!j.isString()) return false;
- c.autoActivateID=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_requestMarshaller.h
deleted file mode 100644
index 5ec33dfa5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_REGISTERAPPINTERFACE_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_REGISTERAPPINTERFACE_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct RegisterAppInterface_requestMarshaller
- {
- static bool checkIntegrity(RegisterAppInterface_request& e);
- static bool checkIntegrityConst(const RegisterAppInterface_request& e);
-
- static bool fromString(const std::string& s,RegisterAppInterface_request& e);
- static const std::string toString(const RegisterAppInterface_request& e);
-
- static bool fromJSON(const Json::Value& s,RegisterAppInterface_request& e);
- static Json::Value toJSON(const RegisterAppInterface_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_response.cpp
deleted file mode 100644
index 0fbf2c2c8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_response.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_response.h"
-#include "RegisterAppInterface_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "ButtonCapabilitiesMarshaller.h"
-#include "DisplayCapabilitiesMarshaller.h"
-#include "HmiZoneCapabilitiesMarshaller.h"
-#include "LanguageMarshaller.h"
-#include "SpeechCapabilitiesMarshaller.h"
-#include "SyncMsgVersionMarshaller.h"
-#include "VrCapabilitiesMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-RegisterAppInterface_response& RegisterAppInterface_response::operator =(const RegisterAppInterface_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
- syncMsgVersion = c.syncMsgVersion ? new SyncMsgVersion(c.syncMsgVersion[0]) : 0;
- autoActivateID = c.autoActivateID ? new std::string(c.autoActivateID[0]) : 0;
- language = c.language ? new Language(c.language[0]) : 0;
- displayCapabilities = c.displayCapabilities ? new DisplayCapabilities(c.displayCapabilities[0]) : 0;
- buttonCapabilities = c.buttonCapabilities ? new std::vector<ButtonCapabilities>(c.buttonCapabilities[0]) : 0;
- hmiZoneCapabilities = c.hmiZoneCapabilities ? new std::vector<HmiZoneCapabilities>(c.hmiZoneCapabilities[0]) : 0;
- speechCapabilities = c.speechCapabilities ? new std::vector<SpeechCapabilities>(c.speechCapabilities[0]) : 0;
- vrCapabilities = c.vrCapabilities ? new std::vector<VrCapabilities>(c.vrCapabilities[0]) : 0;
-
- return *this;
-}
-
-RegisterAppInterface_response::~RegisterAppInterface_response(void)
-{
- if (syncMsgVersion)
- {
- delete syncMsgVersion;
- }
- if (autoActivateID)
- {
- delete autoActivateID;
- }
- if (language)
- {
- delete language;
- }
- if (displayCapabilities)
- {
- delete displayCapabilities;
- }
- if (buttonCapabilities)
- {
- delete buttonCapabilities;
- }
- if (hmiZoneCapabilities)
- {
- delete hmiZoneCapabilities;
- }
- if (speechCapabilities)
- {
- delete speechCapabilities;
- }
- if (vrCapabilities)
- {
- delete vrCapabilities;
- }
-}
-
-RegisterAppInterface_response::RegisterAppInterface_response(const RegisterAppInterface_response& c)
-{
- *this = c;
-}
-
-bool RegisterAppInterface_response::checkIntegrity(void)
-{
- return RegisterAppInterface_responseMarshaller::checkIntegrity(*this);
-}
-
-RegisterAppInterface_response::RegisterAppInterface_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_REGISTERAPPINTERFACE_RESPONSE),
- syncMsgVersion(0),
- autoActivateID(0),
- language(0),
- displayCapabilities(0),
- buttonCapabilities(0),
- hmiZoneCapabilities(0),
- speechCapabilities(0),
- vrCapabilities(0)
-{}
-
-bool RegisterAppInterface_response::set_syncMsgVersion(const SyncMsgVersion& syncMsgVersion_)
-{
- if (!SyncMsgVersionMarshaller::checkIntegrityConst(syncMsgVersion_))
- {
- return false;
- }
- delete syncMsgVersion;
- syncMsgVersion = 0;
-
- syncMsgVersion = new SyncMsgVersion(syncMsgVersion_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_syncMsgVersion(void)
-{
- if (syncMsgVersion)
- {
- delete syncMsgVersion;
- }
- syncMsgVersion = 0;
-}
-
-bool RegisterAppInterface_response::set_autoActivateID(const std::string& autoActivateID_)
-{
- if (autoActivateID_.length() > 16)
- {
- return false;
- }
- delete autoActivateID;
- autoActivateID = 0;
-
- autoActivateID = new std::string(autoActivateID_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_autoActivateID(void)
-{
- if (autoActivateID)
- {
- delete autoActivateID;
- }
- autoActivateID = 0;
-}
-
-bool RegisterAppInterface_response::set_language(const Language& language_)
-{
- if (!LanguageMarshaller::checkIntegrityConst(language_))
- {
- return false;
- }
- delete language;
- language = 0;
-
- language = new Language(language_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_language(void)
-{
- if (language)
- {
- delete language;
- }
- language = 0;
-}
-
-bool RegisterAppInterface_response::set_displayCapabilities(const DisplayCapabilities& displayCapabilities_)
-{
- if (!DisplayCapabilitiesMarshaller::checkIntegrityConst(displayCapabilities_))
- {
- return false;
- }
- delete displayCapabilities;
- displayCapabilities = 0;
-
- displayCapabilities = new DisplayCapabilities(displayCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_displayCapabilities(void)
-{
- if (displayCapabilities)
- {
- delete displayCapabilities;
- }
- displayCapabilities = 0;
-}
-
-bool RegisterAppInterface_response::set_buttonCapabilities(const std::vector<ButtonCapabilities>& buttonCapabilities_)
-{
- unsigned int i = buttonCapabilities_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
- while (i--)
- {
- if (!ButtonCapabilitiesMarshaller::checkIntegrityConst(buttonCapabilities_[i]))
- {
- return false;
- }
- }
- delete buttonCapabilities;
- buttonCapabilities = 0;
-
- buttonCapabilities = new std::vector<ButtonCapabilities>(buttonCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_buttonCapabilities(void)
-{
- if (buttonCapabilities)
- {
- delete buttonCapabilities;
- }
- buttonCapabilities = 0;
-}
-
-bool RegisterAppInterface_response::set_hmiZoneCapabilities(const std::vector<HmiZoneCapabilities>& hmiZoneCapabilities_)
-{
- unsigned int i = hmiZoneCapabilities_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
- while (i--)
- {
- if (!HmiZoneCapabilitiesMarshaller::checkIntegrityConst(hmiZoneCapabilities_[i]))
- {
- return false;
- }
- }
- delete hmiZoneCapabilities;
- hmiZoneCapabilities = 0;
-
- hmiZoneCapabilities = new std::vector<HmiZoneCapabilities>(hmiZoneCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_hmiZoneCapabilities(void)
-{
- if (hmiZoneCapabilities)
- {
- delete hmiZoneCapabilities;
- }
- hmiZoneCapabilities = 0;
-}
-
-bool RegisterAppInterface_response::set_speechCapabilities(const std::vector<SpeechCapabilities>& speechCapabilities_)
-{
- unsigned int i = speechCapabilities_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
- while (i--)
- {
- if (!SpeechCapabilitiesMarshaller::checkIntegrityConst(speechCapabilities_[i]))
- {
- return false;
- }
- }
- delete speechCapabilities;
- speechCapabilities = 0;
-
- speechCapabilities = new std::vector<SpeechCapabilities>(speechCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_speechCapabilities(void)
-{
- if (speechCapabilities)
- {
- delete speechCapabilities;
- }
- speechCapabilities = 0;
-}
-
-bool RegisterAppInterface_response::set_vrCapabilities(const std::vector<VrCapabilities>& vrCapabilities_)
-{
- unsigned int i = vrCapabilities_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
- while (i--)
- {
- if (!VrCapabilitiesMarshaller::checkIntegrityConst(vrCapabilities_[i]))
- {
- return false;
- }
- }
- delete vrCapabilities;
- vrCapabilities = 0;
-
- vrCapabilities = new std::vector<VrCapabilities>(vrCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_vrCapabilities(void)
-{
- if (vrCapabilities)
- {
- delete vrCapabilities;
- }
- vrCapabilities = 0;
-}
-const SyncMsgVersion* RegisterAppInterface_response::get_syncMsgVersion(void) const
-{
- return syncMsgVersion;
-}
-
-const std::string* RegisterAppInterface_response::get_autoActivateID(void) const
-{
- return autoActivateID;
-}
-
-const Language* RegisterAppInterface_response::get_language(void) const
-{
- return language;
-}
-
-const DisplayCapabilities* RegisterAppInterface_response::get_displayCapabilities(void) const
-{
- return displayCapabilities;
-}
-
-const std::vector<ButtonCapabilities>* RegisterAppInterface_response::get_buttonCapabilities(void) const
-{
- return buttonCapabilities;
-}
-
-const std::vector<HmiZoneCapabilities>* RegisterAppInterface_response::get_hmiZoneCapabilities(void) const
-{
- return hmiZoneCapabilities;
-}
-
-const std::vector<SpeechCapabilities>* RegisterAppInterface_response::get_speechCapabilities(void) const
-{
- return speechCapabilities;
-}
-
-const std::vector<VrCapabilities>* RegisterAppInterface_response::get_vrCapabilities(void) const
-{
- return vrCapabilities;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_responseMarshaller.cpp
deleted file mode 100644
index 0952fd3b2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_responseMarshaller.cpp
+++ /dev/null
@@ -1,367 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_response.h"
-#include "ButtonCapabilitiesMarshaller.h"
-#include "DisplayCapabilitiesMarshaller.h"
-#include "HmiZoneCapabilitiesMarshaller.h"
-#include "LanguageMarshaller.h"
-#include "ResultMarshaller.h"
-#include "SpeechCapabilitiesMarshaller.h"
-#include "SyncMsgVersionMarshaller.h"
-#include "VrCapabilitiesMarshaller.h"
-
-#include "RegisterAppInterface_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool RegisterAppInterface_responseMarshaller::checkIntegrity(RegisterAppInterface_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool RegisterAppInterface_responseMarshaller::fromString(const std::string& s,RegisterAppInterface_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string RegisterAppInterface_responseMarshaller::toString(const RegisterAppInterface_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool RegisterAppInterface_responseMarshaller::checkIntegrityConst(const RegisterAppInterface_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- if(s.syncMsgVersion && !SyncMsgVersionMarshaller::checkIntegrityConst(*s.syncMsgVersion)) return false;
- if(s.autoActivateID && s.autoActivateID->length()>16) return false;
- if(s.language && !LanguageMarshaller::checkIntegrityConst(*s.language)) return false;
- if(s.displayCapabilities && !DisplayCapabilitiesMarshaller::checkIntegrityConst(*s.displayCapabilities)) return false;
- if(s.buttonCapabilities)
- {
- unsigned int i=s.buttonCapabilities[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!ButtonCapabilitiesMarshaller::checkIntegrityConst(s.buttonCapabilities[0][i])) return false;
- }
- }
- if(s.hmiZoneCapabilities)
- {
- unsigned int i=s.hmiZoneCapabilities[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!HmiZoneCapabilitiesMarshaller::checkIntegrityConst(s.hmiZoneCapabilities[0][i])) return false;
- }
- }
- if(s.speechCapabilities)
- {
- unsigned int i=s.speechCapabilities[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!SpeechCapabilitiesMarshaller::checkIntegrityConst(s.speechCapabilities[0][i])) return false;
- }
- }
- if(s.vrCapabilities)
- {
- unsigned int i=s.vrCapabilities[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VrCapabilitiesMarshaller::checkIntegrityConst(s.vrCapabilities[0][i])) return false;
- }
- }
- return true;
-}
-
-Json::Value RegisterAppInterface_responseMarshaller::toJSON(const RegisterAppInterface_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("RegisterAppInterface");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- if(e.syncMsgVersion)
- j["syncMsgVersion"]=SyncMsgVersionMarshaller::toJSON(*e.syncMsgVersion);
-
- if(e.autoActivateID)
- j["autoActivateID"]=Json::Value(*e.autoActivateID);
-
- if(e.language)
- j["language"]=LanguageMarshaller::toJSON(*e.language);
-
- if(e.displayCapabilities)
- j["displayCapabilities"]=DisplayCapabilitiesMarshaller::toJSON(*e.displayCapabilities);
-
- if(e.buttonCapabilities)
- {
- unsigned int sz=e.buttonCapabilities->size();
- j["buttonCapabilities"]=Json::Value(Json::arrayValue);
- j["buttonCapabilities"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["buttonCapabilities"][i]=ButtonCapabilitiesMarshaller::toJSON(e.buttonCapabilities[0][i]);
- }
-
- if(e.hmiZoneCapabilities)
- {
- unsigned int sz=e.hmiZoneCapabilities->size();
- j["hmiZoneCapabilities"]=Json::Value(Json::arrayValue);
- j["hmiZoneCapabilities"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["hmiZoneCapabilities"][i]=HmiZoneCapabilitiesMarshaller::toJSON(e.hmiZoneCapabilities[0][i]);
- }
-
- if(e.speechCapabilities)
- {
- unsigned int sz=e.speechCapabilities->size();
- j["speechCapabilities"]=Json::Value(Json::arrayValue);
- j["speechCapabilities"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["speechCapabilities"][i]=SpeechCapabilitiesMarshaller::toJSON(e.speechCapabilities[0][i]);
- }
-
- if(e.vrCapabilities)
- {
- unsigned int sz=e.vrCapabilities->size();
- j["vrCapabilities"]=Json::Value(Json::arrayValue);
- j["vrCapabilities"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["vrCapabilities"][i]=VrCapabilitiesMarshaller::toJSON(e.vrCapabilities[0][i]);
- }
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool RegisterAppInterface_responseMarshaller::fromJSON(const Json::Value& js,RegisterAppInterface_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- if(c.syncMsgVersion) delete c.syncMsgVersion;
- c.syncMsgVersion=0;
-
- if(c.autoActivateID) delete c.autoActivateID;
- c.autoActivateID=0;
-
- if(c.language) delete c.language;
- c.language=0;
-
- if(c.displayCapabilities) delete c.displayCapabilities;
- c.displayCapabilities=0;
-
- if(c.buttonCapabilities) delete c.buttonCapabilities;
- c.buttonCapabilities=0;
-
- if(c.hmiZoneCapabilities) delete c.hmiZoneCapabilities;
- c.hmiZoneCapabilities=0;
-
- if(c.speechCapabilities) delete c.speechCapabilities;
- c.speechCapabilities=0;
-
- if(c.vrCapabilities) delete c.vrCapabilities;
- c.vrCapabilities=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("RegisterAppInterface")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
- if(json.isMember("syncMsgVersion"))
- {
- const Json::Value& j=json["syncMsgVersion"];
- c.syncMsgVersion=new SyncMsgVersion();
- if(!SyncMsgVersionMarshaller::fromJSON(j,c.syncMsgVersion[0]))
- return false;
- }
- if(json.isMember("autoActivateID"))
- {
- const Json::Value& j=json["autoActivateID"];
- if(!j.isString()) return false;
- c.autoActivateID=new std::string(j.asString());
- }
- if(json.isMember("language"))
- {
- const Json::Value& j=json["language"];
- c.language=new Language();
- if(!LanguageMarshaller::fromJSON(j,c.language[0]))
- return false;
- }
- if(json.isMember("displayCapabilities"))
- {
- const Json::Value& j=json["displayCapabilities"];
- c.displayCapabilities=new DisplayCapabilities();
- if(!DisplayCapabilitiesMarshaller::fromJSON(j,c.displayCapabilities[0]))
- return false;
- }
- if(json.isMember("buttonCapabilities"))
- {
- const Json::Value& j=json["buttonCapabilities"];
- if(!j.isArray()) return false;
- c.buttonCapabilities=new std::vector<ButtonCapabilities>();
- c.buttonCapabilities->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- ButtonCapabilities t;
- if(!ButtonCapabilitiesMarshaller::fromJSON(j[i],t))
- return false;
- c.buttonCapabilities[0][i]=t;
- }
-
- }
- if(json.isMember("hmiZoneCapabilities"))
- {
- const Json::Value& j=json["hmiZoneCapabilities"];
- if(!j.isArray()) return false;
- c.hmiZoneCapabilities=new std::vector<HmiZoneCapabilities>();
- c.hmiZoneCapabilities->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- HmiZoneCapabilities t;
- if(!HmiZoneCapabilitiesMarshaller::fromJSON(j[i],t))
- return false;
- c.hmiZoneCapabilities[0][i]=t;
- }
-
- }
- if(json.isMember("speechCapabilities"))
- {
- const Json::Value& j=json["speechCapabilities"];
- if(!j.isArray()) return false;
- c.speechCapabilities=new std::vector<SpeechCapabilities>();
- c.speechCapabilities->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- SpeechCapabilities t;
- if(!SpeechCapabilitiesMarshaller::fromJSON(j[i],t))
- return false;
- c.speechCapabilities[0][i]=t;
- }
-
- }
- if(json.isMember("vrCapabilities"))
- {
- const Json::Value& j=json["vrCapabilities"];
- if(!j.isArray()) return false;
- c.vrCapabilities=new std::vector<VrCapabilities>();
- c.vrCapabilities->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- VrCapabilities t;
- if(!VrCapabilitiesMarshaller::fromJSON(j[i],t))
- return false;
- c.vrCapabilities[0][i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_responseMarshaller.h
deleted file mode 100644
index b6ad563a4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/RegisterAppInterface_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_REGISTERAPPINTERFACE_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_REGISTERAPPINTERFACE_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/RegisterAppInterface_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct RegisterAppInterface_responseMarshaller
- {
- static bool checkIntegrity(RegisterAppInterface_response& e);
- static bool checkIntegrityConst(const RegisterAppInterface_response& e);
-
- static bool fromString(const std::string& s,RegisterAppInterface_response& e);
- static const std::string toString(const RegisterAppInterface_response& e);
-
- static bool fromJSON(const Json::Value& s,RegisterAppInterface_response& e);
- static Json::Value toJSON(const RegisterAppInterface_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_request.cpp
deleted file mode 100644
index f0e346407..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_request.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_request.h"
-#include "ResetGlobalProperties_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "GlobalPropertyMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-ResetGlobalProperties_request::~ResetGlobalProperties_request(void)
-{
-}
-
-
-ResetGlobalProperties_request::ResetGlobalProperties_request(const ResetGlobalProperties_request& c)
-{
- *this=c;
-}
-
-
-bool ResetGlobalProperties_request::checkIntegrity(void)
-{
- return ResetGlobalProperties_requestMarshaller::checkIntegrity(*this);
-}
-
-
-ResetGlobalProperties_request::ResetGlobalProperties_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_RESETGLOBALPROPERTIES_REQUEST)
-{
-}
-
-
-
-bool ResetGlobalProperties_request::set_properties(const std::vector<GlobalProperty>& properties_)
-{
- unsigned int i=properties_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!GlobalPropertyMarshaller::checkIntegrityConst(properties_[i])) return false;
- }
- properties=properties_;
- return true;
-}
-
-
-
-
-const std::vector<GlobalProperty>& ResetGlobalProperties_request::get_properties(void) const
-{
- return properties;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_requestMarshaller.cpp
deleted file mode 100644
index d07333697..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_requestMarshaller.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_request.h"
-#include "GlobalPropertyMarshaller.h"
-
-#include "ResetGlobalProperties_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool ResetGlobalProperties_requestMarshaller::checkIntegrity(ResetGlobalProperties_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ResetGlobalProperties_requestMarshaller::fromString(const std::string& s,ResetGlobalProperties_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ResetGlobalProperties_requestMarshaller::toString(const ResetGlobalProperties_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ResetGlobalProperties_requestMarshaller::checkIntegrityConst(const ResetGlobalProperties_request& s)
-{
- {
- unsigned int i=s.properties.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!GlobalPropertyMarshaller::checkIntegrityConst(s.properties[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value ResetGlobalProperties_requestMarshaller::toJSON(const ResetGlobalProperties_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("ResetGlobalProperties");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["properties"]=Json::Value(Json::arrayValue);
- j["properties"].resize(e.properties.size());
- for(unsigned int i=0;i<e.properties.size();i++)
- j["properties"][i]=GlobalPropertyMarshaller::toJSON(e.properties[i]);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool ResetGlobalProperties_requestMarshaller::fromJSON(const Json::Value& js,ResetGlobalProperties_request& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("ResetGlobalProperties")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("properties")) return false;
- {
- const Json::Value& j=json["properties"];
- if(!j.isArray()) return false;
- for(unsigned int i=0;i<j.size();i++)
- {
- GlobalProperty t;
- if(GlobalPropertyMarshaller::fromJSON(j[i],t))
- {
- c.properties.push_back(t);
- }
- }
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_requestMarshaller.h
deleted file mode 100644
index 47cc096ca..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_RESETGLOBALPROPERTIES_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_RESETGLOBALPROPERTIES_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct ResetGlobalProperties_requestMarshaller
- {
- static bool checkIntegrity(ResetGlobalProperties_request& e);
- static bool checkIntegrityConst(const ResetGlobalProperties_request& e);
-
- static bool fromString(const std::string& s,ResetGlobalProperties_request& e);
- static const std::string toString(const ResetGlobalProperties_request& e);
-
- static bool fromJSON(const Json::Value& s,ResetGlobalProperties_request& e);
- static Json::Value toJSON(const ResetGlobalProperties_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_response.cpp
deleted file mode 100644
index 6ddcf98fa..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_response.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_response.h"
-#include "ResetGlobalProperties_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-ResetGlobalProperties_response& ResetGlobalProperties_response::operator =(const ResetGlobalProperties_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-ResetGlobalProperties_response::~ResetGlobalProperties_response(void)
-{}
-
-ResetGlobalProperties_response::ResetGlobalProperties_response(const ResetGlobalProperties_response& c)
-{
- *this = c;
-}
-
-bool ResetGlobalProperties_response::checkIntegrity(void)
-{
- return ResetGlobalProperties_responseMarshaller::checkIntegrity(*this);
-}
-
-ResetGlobalProperties_response::ResetGlobalProperties_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_RESETGLOBALPROPERTIES_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_responseMarshaller.cpp
deleted file mode 100644
index 4e96802c1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_response.h"
-#include "ResultMarshaller.h"
-
-#include "ResetGlobalProperties_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool ResetGlobalProperties_responseMarshaller::checkIntegrity(ResetGlobalProperties_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ResetGlobalProperties_responseMarshaller::fromString(const std::string& s,ResetGlobalProperties_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ResetGlobalProperties_responseMarshaller::toString(const ResetGlobalProperties_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ResetGlobalProperties_responseMarshaller::checkIntegrityConst(const ResetGlobalProperties_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value ResetGlobalProperties_responseMarshaller::toJSON(const ResetGlobalProperties_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("ResetGlobalProperties");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool ResetGlobalProperties_responseMarshaller::fromJSON(const Json::Value& js,ResetGlobalProperties_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("ResetGlobalProperties")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_responseMarshaller.h
deleted file mode 100644
index 9a50d1d91..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResetGlobalProperties_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_RESETGLOBALPROPERTIES_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_RESETGLOBALPROPERTIES_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/ResetGlobalProperties_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct ResetGlobalProperties_responseMarshaller
- {
- static bool checkIntegrity(ResetGlobalProperties_response& e);
- static bool checkIntegrityConst(const ResetGlobalProperties_response& e);
-
- static bool fromString(const std::string& s,ResetGlobalProperties_response& e);
- static const std::string toString(const ResetGlobalProperties_response& e);
-
- static bool fromJSON(const Json::Value& s,ResetGlobalProperties_response& e);
- static Json::Value toJSON(const ResetGlobalProperties_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Result.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Result.cpp
deleted file mode 100644
index acc37fa8f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Result.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Result.h"
-#include "ResetGlobalProperties_responseMarshaller.h"
-
-// TODO(AK): remove this after new code generation
-#include "../include/JSONHandler/SDLRPCObjects/V2/Result.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-using namespace NsSmartDeviceLinkRPC;
-
-Result::Result() : mInternal(INVALID_ENUM)
-{}
-
-Result::Result(ResultInternal e) : mInternal(e)
-{}
-
-Result::Result(const Result& result)
-{
- mInternal = result.mInternal;
-}
-
-Result::ResultInternal Result::get(void) const
-{
- return mInternal;
-}
-void Result::set(ResultInternal e)
-{
- mInternal = e;
-}
-
-// TODO(AK): remove this after new code generation
-Result::operator NsSmartDeviceLinkRPCV2::Result()
-{
- return NsSmartDeviceLinkRPCV2::Result(
- static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(mInternal));
-}
-
-// TODO(AK): remove this after new code generation
-Result& Result::operator= (const Result& result)
-{
- mInternal = result.mInternal;
- return *this;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.cpp
deleted file mode 100644
index d6ba6a214..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/Result.h"
-#include "ResultMarshaller.h"
-#include "ResultMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const Result::ResultInternal ResultMarshaller::getIndex(const char* s)
-{
- if(!s)
- return Result::INVALID_ENUM;
- const struct PerfectHashTable* p=Result_intHash::getPointer(s,strlen(s));
- return p ? static_cast<Result::ResultInternal>(p->idx) : Result::INVALID_ENUM;
-}
-
-
-bool ResultMarshaller::fromJSON(const Json::Value& s,Result& e)
-{
- e.mInternal=Result::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=Result::INVALID_ENUM);
-}
-
-
-Json::Value ResultMarshaller::toJSON(const Result& e)
-{
- if(e.mInternal==Result::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool ResultMarshaller::fromString(const std::string& s,Result& e)
-{
- e.mInternal=Result::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string ResultMarshaller::toString(const Result& e)
-{
- Json::FastWriter writer;
- return e.mInternal==Result::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable ResultMarshaller::mHashTable[20]=
-{
- {"SUCCESS",0},
- {"INVALID_DATA",1},
- {"UNSUPPORTED_REQUEST",2},
- {"OUT_OF_MEMORY",3},
- {"TOO_MANY_PENDING_REQUESTS",4},
- {"INVALID_ID",5},
- {"DUPLICATE_NAME",6},
- {"TOO_MANY_APPLICATIONS",7},
- {"APPLICATION_REGISTERED_ALREADY",8},
- {"UNSUPPORTED_VERSION",9},
- {"WRONG_LANGUAGE",10},
- {"APPLICATION_NOT_REGISTERED",11},
- {"IN_USE",12},
- {"SUBSCRIBED_ALREADY",13},
- {"REJECTED",14},
- {"ABORTED",15},
- {"IGNORED",16},
- {"UNSUPPORTED_BUTTON",17},
- {"FILE_NOT_FOUND",18},
- {"GENERIC_ERROR",19}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp
deleted file mode 100644
index f23c23085..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp
+++ /dev/null
@@ -1,36 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name Result_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-SUCCESS,0
-INVALID_DATA,1
-UNSUPPORTED_REQUEST,2
-OUT_OF_MEMORY,3
-TOO_MANY_PENDING_REQUESTS,4
-INVALID_ID,5
-DUPLICATE_NAME,6
-TOO_MANY_APPLICATIONS,7
-APPLICATION_REGISTERED_ALREADY,8
-UNSUPPORTED_VERSION,9
-WRONG_LANGUAGE,10
-APPLICATION_NOT_REGISTERED,11
-IN_USE,12
-SUBSCRIBED_ALREADY,13
-REJECTED,14
-ABORTED,15
-IGNORED,16
-UNSUPPORTED_BUTTON,17
-FILE_NOT_FOUND,18
-GENERIC_ERROR,19
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.h
deleted file mode 100644
index 7361c973c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_RESULTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_RESULTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Result.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for Result
-
- class ResultMarshaller
- {
- public:
-
- static std::string toName(const Result& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(Result& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=Result::INVALID_ENUM;
- }
-
- static bool checkIntegrity(Result& e) { return e.mInternal!=Result::INVALID_ENUM; }
- static bool checkIntegrityConst(const Result& e) { return e.mInternal!=Result::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,Result& e);
- static const std::string toString(const Result& e);
-
- static bool fromJSON(const Json::Value& s,Result& e);
- static Json::Value toJSON(const Result& e);
-
- static const char* getName(Result::ResultInternal e)
- {
- return (e>=0 && e<20) ? mHashTable[e].name : NULL;
- }
-
- static const Result::ResultInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[20];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.inc
deleted file mode 100644
index f79567fdc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.inc
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright (c) 2013 Ford Motor Company */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp */
-/* Computed positions: -k'1,13' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 20
-#define MIN_WORD_LENGTH 6
-#define MAX_WORD_LENGTH 30
-#define MIN_HASH_VALUE 6
-#define MAX_HASH_VALUE 40
-/* maximum key range = 35, duplicates = 0 */
-
-class Result_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-Result_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 10, 5, 41, 0, 41,
- 20, 0, 41, 0, 41, 41, 0, 15, 0, 5,
- 41, 41, 0, 15, 0, 0, 5, 0, 41, 0,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[12]];
- /*FALLTHROUGH*/
- case 12:
- case 11:
- case 10:
- case 9:
- case 8:
- case 7:
- case 6:
- case 5:
- case 4:
- case 3:
- case 2:
- case 1:
- hval += asso_values[(unsigned char)str[0]];
- break;
- }
- return hval;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-Result_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 6, 7, 8, 0, 10, 0, 12, 13,
- 14, 0, 0, 7, 13, 19, 0, 21, 7, 18, 19, 25, 0, 0,
- 0, 14, 0, 0, 0, 18, 14, 0, 26, 0, 0, 0, 30
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""},
-#line 29 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"IN_USE",12},
-#line 33 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"IGNORED",16},
-#line 31 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"REJECTED",14},
- {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"INVALID_ID",5},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"INVALID_DATA",1},
-#line 36 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"GENERIC_ERROR",19},
-#line 27 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"WRONG_LANGUAGE",10},
- {""}, {""},
-#line 32 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"ABORTED",15},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"OUT_OF_MEMORY",3},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"UNSUPPORTED_REQUEST",2},
- {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"TOO_MANY_APPLICATIONS",7},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"SUCCESS",0},
-#line 34 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"UNSUPPORTED_BUTTON",17},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"UNSUPPORTED_VERSION",9},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"TOO_MANY_PENDING_REQUESTS",4},
- {""}, {""}, {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"DUPLICATE_NAME",6},
- {""}, {""}, {""},
-#line 30 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"SUBSCRIBED_ALREADY",13},
-#line 35 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"FILE_NOT_FOUND",18},
- {""},
-#line 28 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"APPLICATION_NOT_REGISTERED",11},
- {""}, {""}, {""},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/ResultMarshaller.gp"
- {"APPLICATION_REGISTERED_ALREADY",8}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_request.cpp
deleted file mode 100644
index ca2346662..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_request.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_request.h"
-#include "SetGlobalProperties_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-SetGlobalProperties_request& SetGlobalProperties_request::operator =(const SetGlobalProperties_request& c)
-{
- helpPrompt= c.helpPrompt ? new std::vector<TTSChunk>(c.helpPrompt[0]) : 0;
- timeoutPrompt= c.timeoutPrompt ? new std::vector<TTSChunk>(c.timeoutPrompt[0]) : 0;
-
- return *this;}
-
-
-SetGlobalProperties_request::~SetGlobalProperties_request(void)
-{
- if(helpPrompt)
- delete helpPrompt;
- if(timeoutPrompt)
- delete timeoutPrompt;
-}
-
-
-SetGlobalProperties_request::SetGlobalProperties_request(const SetGlobalProperties_request& c)
-{
- *this=c;
-}
-
-
-bool SetGlobalProperties_request::checkIntegrity(void)
-{
- return SetGlobalProperties_requestMarshaller::checkIntegrity(*this);
-}
-
-
-SetGlobalProperties_request::SetGlobalProperties_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_SETGLOBALPROPERTIES_REQUEST),
- helpPrompt(0),
- timeoutPrompt(0)
-{
-}
-
-
-
-bool SetGlobalProperties_request::set_helpPrompt(const std::vector<TTSChunk>& helpPrompt_)
-{
- unsigned int i=helpPrompt_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(helpPrompt_[i])) return false;
- }
- delete helpPrompt;
- helpPrompt=0;
-
- helpPrompt=new std::vector<TTSChunk>(helpPrompt_);
- return true;
-}
-
-void SetGlobalProperties_request::reset_helpPrompt(void)
-{
- if(helpPrompt)
- delete helpPrompt;
- helpPrompt=0;
-}
-
-bool SetGlobalProperties_request::set_timeoutPrompt(const std::vector<TTSChunk>& timeoutPrompt_)
-{
- unsigned int i=timeoutPrompt_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(timeoutPrompt_[i])) return false;
- }
- delete timeoutPrompt;
- timeoutPrompt=0;
-
- timeoutPrompt=new std::vector<TTSChunk>(timeoutPrompt_);
- return true;
-}
-
-void SetGlobalProperties_request::reset_timeoutPrompt(void)
-{
- if(timeoutPrompt)
- delete timeoutPrompt;
- timeoutPrompt=0;
-}
-
-
-
-
-const std::vector<TTSChunk>* SetGlobalProperties_request::get_helpPrompt(void) const
-{
- return helpPrompt;
-}
-
-const std::vector<TTSChunk>* SetGlobalProperties_request::get_timeoutPrompt(void) const
-{
- return timeoutPrompt;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_requestMarshaller.cpp
deleted file mode 100644
index 1fb2135ec..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_requestMarshaller.cpp
+++ /dev/null
@@ -1,201 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_request.h"
-#include "TTSChunkMarshaller.h"
-
-#include "SetGlobalProperties_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool SetGlobalProperties_requestMarshaller::checkIntegrity(SetGlobalProperties_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetGlobalProperties_requestMarshaller::fromString(const std::string& s,SetGlobalProperties_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetGlobalProperties_requestMarshaller::toString(const SetGlobalProperties_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetGlobalProperties_requestMarshaller::checkIntegrityConst(const SetGlobalProperties_request& s)
-{
- if(s.helpPrompt)
- {
- unsigned int i=s.helpPrompt[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.helpPrompt[0][i])) return false;
- }
- }
- if(s.timeoutPrompt)
- {
- unsigned int i=s.timeoutPrompt[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.timeoutPrompt[0][i])) return false;
- }
- }
- return true;
-}
-
-Json::Value SetGlobalProperties_requestMarshaller::toJSON(const SetGlobalProperties_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("SetGlobalProperties");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- if(e.helpPrompt)
- {
- unsigned int sz=e.helpPrompt->size();
- j["helpPrompt"]=Json::Value(Json::arrayValue);
- j["helpPrompt"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["helpPrompt"][i]=TTSChunkMarshaller::toJSON(e.helpPrompt[0][i]);
- }
-
- if(e.timeoutPrompt)
- {
- unsigned int sz=e.timeoutPrompt->size();
- j["timeoutPrompt"]=Json::Value(Json::arrayValue);
- j["timeoutPrompt"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- j["timeoutPrompt"][i]=TTSChunkMarshaller::toJSON(e.timeoutPrompt[0][i]);
- }
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool SetGlobalProperties_requestMarshaller::fromJSON(const Json::Value& js,SetGlobalProperties_request& c)
-{
- if(c.helpPrompt) delete c.helpPrompt;
- c.helpPrompt=0;
-
- if(c.timeoutPrompt) delete c.timeoutPrompt;
- c.timeoutPrompt=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("SetGlobalProperties")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(json.isMember("helpPrompt"))
- {
- const Json::Value& j=json["helpPrompt"];
- if(!j.isArray()) return false;
- c.helpPrompt=new std::vector<TTSChunk>();
- c.helpPrompt->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.helpPrompt[0][i]=t;
- }
-
- }
- if(json.isMember("timeoutPrompt"))
- {
- const Json::Value& j=json["timeoutPrompt"];
- if(!j.isArray()) return false;
- c.timeoutPrompt=new std::vector<TTSChunk>();
- c.timeoutPrompt->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.timeoutPrompt[0][i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_requestMarshaller.h
deleted file mode 100644
index 15efd9deb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SETGLOBALPROPERTIES_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SETGLOBALPROPERTIES_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct SetGlobalProperties_requestMarshaller
- {
- static bool checkIntegrity(SetGlobalProperties_request& e);
- static bool checkIntegrityConst(const SetGlobalProperties_request& e);
-
- static bool fromString(const std::string& s,SetGlobalProperties_request& e);
- static const std::string toString(const SetGlobalProperties_request& e);
-
- static bool fromJSON(const Json::Value& s,SetGlobalProperties_request& e);
- static Json::Value toJSON(const SetGlobalProperties_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_response.cpp
deleted file mode 100644
index 042acaa74..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_response.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_response.h"
-#include "SetGlobalProperties_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-SetGlobalProperties_response& SetGlobalProperties_response::operator =(const SetGlobalProperties_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-SetGlobalProperties_response::~SetGlobalProperties_response(void)
-{}
-
-SetGlobalProperties_response::SetGlobalProperties_response(const SetGlobalProperties_response& c)
-{
- *this = c;
-}
-
-bool SetGlobalProperties_response::checkIntegrity(void)
-{
- return SetGlobalProperties_responseMarshaller::checkIntegrity(*this);
-}
-
-SetGlobalProperties_response::SetGlobalProperties_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_SETGLOBALPROPERTIES_RESPONSE)
-{
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_responseMarshaller.cpp
deleted file mode 100644
index f384f4cb2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_response.h"
-#include "ResultMarshaller.h"
-
-#include "SetGlobalProperties_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool SetGlobalProperties_responseMarshaller::checkIntegrity(SetGlobalProperties_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetGlobalProperties_responseMarshaller::fromString(const std::string& s,SetGlobalProperties_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetGlobalProperties_responseMarshaller::toString(const SetGlobalProperties_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetGlobalProperties_responseMarshaller::checkIntegrityConst(const SetGlobalProperties_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value SetGlobalProperties_responseMarshaller::toJSON(const SetGlobalProperties_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("SetGlobalProperties");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool SetGlobalProperties_responseMarshaller::fromJSON(const Json::Value& js,SetGlobalProperties_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("SetGlobalProperties")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_responseMarshaller.h
deleted file mode 100644
index 56928f332..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetGlobalProperties_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SETGLOBALPROPERTIES_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SETGLOBALPROPERTIES_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetGlobalProperties_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct SetGlobalProperties_responseMarshaller
- {
- static bool checkIntegrity(SetGlobalProperties_response& e);
- static bool checkIntegrityConst(const SetGlobalProperties_response& e);
-
- static bool fromString(const std::string& s,SetGlobalProperties_response& e);
- static const std::string toString(const SetGlobalProperties_response& e);
-
- static bool fromJSON(const Json::Value& s,SetGlobalProperties_response& e);
- static Json::Value toJSON(const SetGlobalProperties_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_request.cpp
deleted file mode 100644
index 7c2a2a2a7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_request.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_request.h"
-#include "SetMediaClockTimer_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "StartTimeMarshaller.h"
-#include "UpdateModeMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-SetMediaClockTimer_request& SetMediaClockTimer_request::operator =(const SetMediaClockTimer_request& c)
-{
- startTime= c.startTime ? new StartTime(c.startTime[0]) : 0;
- updateMode= c.updateMode;
-
- return *this;}
-
-
-SetMediaClockTimer_request::~SetMediaClockTimer_request(void)
-{
- if(startTime)
- delete startTime;
-}
-
-
-SetMediaClockTimer_request::SetMediaClockTimer_request(const SetMediaClockTimer_request& c)
-{
- *this=c;
-}
-
-
-bool SetMediaClockTimer_request::checkIntegrity(void)
-{
- return SetMediaClockTimer_requestMarshaller::checkIntegrity(*this);
-}
-
-
-SetMediaClockTimer_request::SetMediaClockTimer_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_SETMEDIACLOCKTIMER_REQUEST),
- startTime(0)
-{
-}
-
-
-
-bool SetMediaClockTimer_request::set_startTime(const StartTime& startTime_)
-{
- if(!StartTimeMarshaller::checkIntegrityConst(startTime_)) return false;
- delete startTime;
- startTime=0;
-
- startTime=new StartTime(startTime_);
- return true;
-}
-
-void SetMediaClockTimer_request::reset_startTime(void)
-{
- if(startTime)
- delete startTime;
- startTime=0;
-}
-
-bool SetMediaClockTimer_request::set_updateMode(const UpdateMode& updateMode_)
-{
- if(!UpdateModeMarshaller::checkIntegrityConst(updateMode_)) return false;
- updateMode=updateMode_;
- return true;
-}
-
-
-
-
-const StartTime* SetMediaClockTimer_request::get_startTime(void) const
-{
- return startTime;
-}
-
-const UpdateMode& SetMediaClockTimer_request::get_updateMode(void) const
-{
- return updateMode;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_requestMarshaller.cpp
deleted file mode 100644
index 520b0a29e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_requestMarshaller.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_request.h"
-#include "StartTimeMarshaller.h"
-#include "UpdateModeMarshaller.h"
-
-#include "SetMediaClockTimer_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool SetMediaClockTimer_requestMarshaller::checkIntegrity(SetMediaClockTimer_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetMediaClockTimer_requestMarshaller::fromString(const std::string& s,SetMediaClockTimer_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetMediaClockTimer_requestMarshaller::toString(const SetMediaClockTimer_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetMediaClockTimer_requestMarshaller::checkIntegrityConst(const SetMediaClockTimer_request& s)
-{
- if(s.startTime && !StartTimeMarshaller::checkIntegrityConst(*s.startTime)) return false;
- if(!UpdateModeMarshaller::checkIntegrityConst(s.updateMode)) return false;
- return true;
-}
-
-Json::Value SetMediaClockTimer_requestMarshaller::toJSON(const SetMediaClockTimer_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("SetMediaClockTimer");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- if(e.startTime)
- j["startTime"]=StartTimeMarshaller::toJSON(*e.startTime);
-
- j["updateMode"]=UpdateModeMarshaller::toJSON(e.updateMode);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool SetMediaClockTimer_requestMarshaller::fromJSON(const Json::Value& js,SetMediaClockTimer_request& c)
-{
- if(c.startTime) delete c.startTime;
- c.startTime=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("SetMediaClockTimer")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(json.isMember("startTime"))
- {
- const Json::Value& j=json["startTime"];
- c.startTime=new StartTime();
- if(!StartTimeMarshaller::fromJSON(j,c.startTime[0]))
- return false;
- }
- if(!json.isMember("updateMode")) return false;
- {
- const Json::Value& j=json["updateMode"];
- if(!UpdateModeMarshaller::fromJSON(j,c.updateMode))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_requestMarshaller.h
deleted file mode 100644
index f0f307bf8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SETMEDIACLOCKTIMER_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SETMEDIACLOCKTIMER_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct SetMediaClockTimer_requestMarshaller
- {
- static bool checkIntegrity(SetMediaClockTimer_request& e);
- static bool checkIntegrityConst(const SetMediaClockTimer_request& e);
-
- static bool fromString(const std::string& s,SetMediaClockTimer_request& e);
- static const std::string toString(const SetMediaClockTimer_request& e);
-
- static bool fromJSON(const Json::Value& s,SetMediaClockTimer_request& e);
- static Json::Value toJSON(const SetMediaClockTimer_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_response.cpp
deleted file mode 100644
index 4ef3d18da..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_response.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_response.h"
-#include "SetMediaClockTimer_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-SetMediaClockTimer_response& SetMediaClockTimer_response::operator =(const SetMediaClockTimer_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-SetMediaClockTimer_response::~SetMediaClockTimer_response(void)
-{}
-
-SetMediaClockTimer_response::SetMediaClockTimer_response(const SetMediaClockTimer_response& c)
-{
- *this = c;
-}
-
-bool SetMediaClockTimer_response::checkIntegrity(void)
-{
- return SetMediaClockTimer_responseMarshaller::checkIntegrity(*this);
-}
-
-SetMediaClockTimer_response::SetMediaClockTimer_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_SETMEDIACLOCKTIMER_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_responseMarshaller.cpp
deleted file mode 100644
index 429adf6eb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_response.h"
-#include "ResultMarshaller.h"
-
-#include "SetMediaClockTimer_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool SetMediaClockTimer_responseMarshaller::checkIntegrity(SetMediaClockTimer_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetMediaClockTimer_responseMarshaller::fromString(const std::string& s,SetMediaClockTimer_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetMediaClockTimer_responseMarshaller::toString(const SetMediaClockTimer_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetMediaClockTimer_responseMarshaller::checkIntegrityConst(const SetMediaClockTimer_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value SetMediaClockTimer_responseMarshaller::toJSON(const SetMediaClockTimer_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("SetMediaClockTimer");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool SetMediaClockTimer_responseMarshaller::fromJSON(const Json::Value& js,SetMediaClockTimer_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("SetMediaClockTimer")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_responseMarshaller.h
deleted file mode 100644
index 4af1b73cb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SetMediaClockTimer_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SETMEDIACLOCKTIMER_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SETMEDIACLOCKTIMER_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SetMediaClockTimer_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct SetMediaClockTimer_responseMarshaller
- {
- static bool checkIntegrity(SetMediaClockTimer_response& e);
- static bool checkIntegrityConst(const SetMediaClockTimer_response& e);
-
- static bool fromString(const std::string& s,SetMediaClockTimer_response& e);
- static const std::string toString(const SetMediaClockTimer_response& e);
-
- static bool fromJSON(const Json::Value& s,SetMediaClockTimer_response& e);
- static Json::Value toJSON(const SetMediaClockTimer_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_request.cpp
deleted file mode 100644
index 969b6a816..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_request.cpp
+++ /dev/null
@@ -1,238 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Show_request.h"
-#include "Show_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "TextAlignmentMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-Show_request& Show_request::operator =(const Show_request& c)
-{
- mainField1= c.mainField1 ? new std::string(c.mainField1[0]) : 0;
- mainField2= c.mainField2 ? new std::string(c.mainField2[0]) : 0;
- alignment= c.alignment ? new TextAlignment(c.alignment[0]) : 0;
- statusBar= c.statusBar ? new std::string(c.statusBar[0]) : 0;
- mediaClock= c.mediaClock ? new std::string(c.mediaClock[0]) : 0;
- mediaTrack= c.mediaTrack ? new std::string(c.mediaTrack[0]) : 0;
-
- return *this;}
-
-
-Show_request::~Show_request(void)
-{
- if(mainField1)
- delete mainField1;
- if(mainField2)
- delete mainField2;
- if(alignment)
- delete alignment;
- if(statusBar)
- delete statusBar;
- if(mediaClock)
- delete mediaClock;
- if(mediaTrack)
- delete mediaTrack;
-}
-
-
-Show_request::Show_request(const Show_request& c)
-{
- *this=c;
-}
-
-
-bool Show_request::checkIntegrity(void)
-{
- return Show_requestMarshaller::checkIntegrity(*this);
-}
-
-
-Show_request::Show_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_SHOW_REQUEST),
- mainField1(0),
- mainField2(0),
- alignment(0),
- statusBar(0),
- mediaClock(0),
- mediaTrack(0)
-{
-}
-
-
-
-bool Show_request::set_mainField1(const std::string& mainField1_)
-{
- if(mainField1_.length()>500) return false;
- delete mainField1;
- mainField1=0;
-
- mainField1=new std::string(mainField1_);
- return true;
-}
-
-void Show_request::reset_mainField1(void)
-{
- if(mainField1)
- delete mainField1;
- mainField1=0;
-}
-
-bool Show_request::set_mainField2(const std::string& mainField2_)
-{
- if(mainField2_.length()>500) return false;
- delete mainField2;
- mainField2=0;
-
- mainField2=new std::string(mainField2_);
- return true;
-}
-
-void Show_request::reset_mainField2(void)
-{
- if(mainField2)
- delete mainField2;
- mainField2=0;
-}
-
-bool Show_request::set_alignment(const TextAlignment& alignment_)
-{
- if(!TextAlignmentMarshaller::checkIntegrityConst(alignment_)) return false;
- delete alignment;
- alignment=0;
-
- alignment=new TextAlignment(alignment_);
- return true;
-}
-
-void Show_request::reset_alignment(void)
-{
- if(alignment)
- delete alignment;
- alignment=0;
-}
-
-bool Show_request::set_statusBar(const std::string& statusBar_)
-{
- if(statusBar_.length()>500) return false;
- delete statusBar;
- statusBar=0;
-
- statusBar=new std::string(statusBar_);
- return true;
-}
-
-void Show_request::reset_statusBar(void)
-{
- if(statusBar)
- delete statusBar;
- statusBar=0;
-}
-
-bool Show_request::set_mediaClock(const std::string& mediaClock_)
-{
- if(mediaClock_.length()>500) return false;
- delete mediaClock;
- mediaClock=0;
-
- mediaClock=new std::string(mediaClock_);
- return true;
-}
-
-void Show_request::reset_mediaClock(void)
-{
- if(mediaClock)
- delete mediaClock;
- mediaClock=0;
-}
-
-bool Show_request::set_mediaTrack(const std::string& mediaTrack_)
-{
- if(mediaTrack_.length()>500) return false;
- delete mediaTrack;
- mediaTrack=0;
-
- mediaTrack=new std::string(mediaTrack_);
- return true;
-}
-
-void Show_request::reset_mediaTrack(void)
-{
- if(mediaTrack)
- delete mediaTrack;
- mediaTrack=0;
-}
-
-
-
-
-const std::string* Show_request::get_mainField1(void) const
-{
- return mainField1;
-}
-
-const std::string* Show_request::get_mainField2(void) const
-{
- return mainField2;
-}
-
-const TextAlignment* Show_request::get_alignment(void) const
-{
- return alignment;
-}
-
-const std::string* Show_request::get_statusBar(void) const
-{
- return statusBar;
-}
-
-const std::string* Show_request::get_mediaClock(void) const
-{
- return mediaClock;
-}
-
-const std::string* Show_request::get_mediaTrack(void) const
-{
- return mediaTrack;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_requestMarshaller.cpp
deleted file mode 100644
index 56f83ecf3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_requestMarshaller.cpp
+++ /dev/null
@@ -1,208 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Show_request.h"
-#include "TextAlignmentMarshaller.h"
-
-#include "Show_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool Show_requestMarshaller::checkIntegrity(Show_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Show_requestMarshaller::fromString(const std::string& s,Show_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Show_requestMarshaller::toString(const Show_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Show_requestMarshaller::checkIntegrityConst(const Show_request& s)
-{
- if(s.mainField1 && s.mainField1->length()>500) return false;
- if(s.mainField2 && s.mainField2->length()>500) return false;
- if(s.alignment && !TextAlignmentMarshaller::checkIntegrityConst(*s.alignment)) return false;
- if(s.statusBar && s.statusBar->length()>500) return false;
- if(s.mediaClock && s.mediaClock->length()>500) return false;
- if(s.mediaTrack && s.mediaTrack->length()>500) return false;
- return true;
-}
-
-Json::Value Show_requestMarshaller::toJSON(const Show_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("Show");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- if(e.mainField1)
- j["mainField1"]=Json::Value(*e.mainField1);
-
- if(e.mainField2)
- j["mainField2"]=Json::Value(*e.mainField2);
-
- if(e.alignment)
- j["alignment"]=TextAlignmentMarshaller::toJSON(*e.alignment);
-
- if(e.statusBar)
- j["statusBar"]=Json::Value(*e.statusBar);
-
- if(e.mediaClock)
- j["mediaClock"]=Json::Value(*e.mediaClock);
-
- if(e.mediaTrack)
- j["mediaTrack"]=Json::Value(*e.mediaTrack);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool Show_requestMarshaller::fromJSON(const Json::Value& js,Show_request& c)
-{
- if(c.mainField1) delete c.mainField1;
- c.mainField1=0;
-
- if(c.mainField2) delete c.mainField2;
- c.mainField2=0;
-
- if(c.alignment) delete c.alignment;
- c.alignment=0;
-
- if(c.statusBar) delete c.statusBar;
- c.statusBar=0;
-
- if(c.mediaClock) delete c.mediaClock;
- c.mediaClock=0;
-
- if(c.mediaTrack) delete c.mediaTrack;
- c.mediaTrack=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("Show")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(json.isMember("mainField1"))
- {
- const Json::Value& j=json["mainField1"];
- if(!j.isString()) return false;
- c.mainField1=new std::string(j.asString());
- }
- if(json.isMember("mainField2"))
- {
- const Json::Value& j=json["mainField2"];
- if(!j.isString()) return false;
- c.mainField2=new std::string(j.asString());
- }
- if(json.isMember("alignment"))
- {
- const Json::Value& j=json["alignment"];
- c.alignment=new TextAlignment();
- if(!TextAlignmentMarshaller::fromJSON(j,c.alignment[0]))
- return false;
- }
- if(json.isMember("statusBar"))
- {
- const Json::Value& j=json["statusBar"];
- if(!j.isString()) return false;
- c.statusBar=new std::string(j.asString());
- }
- if(json.isMember("mediaClock"))
- {
- const Json::Value& j=json["mediaClock"];
- if(!j.isString()) return false;
- c.mediaClock=new std::string(j.asString());
- }
- if(json.isMember("mediaTrack"))
- {
- const Json::Value& j=json["mediaTrack"];
- if(!j.isString()) return false;
- c.mediaTrack=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_requestMarshaller.h
deleted file mode 100644
index 15b731256..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SHOW_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SHOW_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Show_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct Show_requestMarshaller
- {
- static bool checkIntegrity(Show_request& e);
- static bool checkIntegrityConst(const Show_request& e);
-
- static bool fromString(const std::string& s,Show_request& e);
- static const std::string toString(const Show_request& e);
-
- static bool fromJSON(const Json::Value& s,Show_request& e);
- static Json::Value toJSON(const Show_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_response.cpp
deleted file mode 100644
index 1d94ea720..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Show_response.h"
-#include "Show_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-Show_response& Show_response::operator =(const Show_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-Show_response::~Show_response(void)
-{}
-
-Show_response::Show_response(const Show_response& c)
-{
- *this = c;
-}
-
-bool Show_response::checkIntegrity(void)
-{
- return Show_responseMarshaller::checkIntegrity(*this);
-}
-
-Show_response::Show_response(void) : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_SHOW_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_responseMarshaller.cpp
deleted file mode 100644
index 50654f6dd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Show_response.h"
-#include "ResultMarshaller.h"
-
-#include "Show_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool Show_responseMarshaller::checkIntegrity(Show_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Show_responseMarshaller::fromString(const std::string& s,Show_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Show_responseMarshaller::toString(const Show_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Show_responseMarshaller::checkIntegrityConst(const Show_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value Show_responseMarshaller::toJSON(const Show_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("Show");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool Show_responseMarshaller::fromJSON(const Json::Value& js,Show_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("Show")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_responseMarshaller.h
deleted file mode 100644
index 2b77f20d1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Show_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SHOW_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SHOW_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Show_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct Show_responseMarshaller
- {
- static bool checkIntegrity(Show_response& e);
- static bool checkIntegrityConst(const Show_response& e);
-
- static bool fromString(const std::string& s,Show_response& e);
- static const std::string toString(const Show_response& e);
-
- static bool fromJSON(const Json::Value& s,Show_response& e);
- static Json::Value toJSON(const Show_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_request.cpp
deleted file mode 100644
index d1d3ad545..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_request.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Speak_request.h"
-#include "Speak_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-Speak_request::~Speak_request(void)
-{
-}
-
-
-Speak_request::Speak_request(const Speak_request& c)
-{
- *this=c;
-}
-
-
-bool Speak_request::checkIntegrity(void)
-{
- return Speak_requestMarshaller::checkIntegrity(*this);
-}
-
-
-Speak_request::Speak_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_SPEAK_REQUEST)
-{
-}
-
-
-
-bool Speak_request::set_ttsChunks(const std::vector<TTSChunk>& ttsChunks_)
-{
- unsigned int i=ttsChunks_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(ttsChunks_[i])) return false;
- }
- ttsChunks=ttsChunks_;
- return true;
-}
-
-
-
-
-const std::vector<TTSChunk>& Speak_request::get_ttsChunks(void) const
-{
- return ttsChunks;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_requestMarshaller.cpp
deleted file mode 100644
index 4ee518a52..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_requestMarshaller.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Speak_request.h"
-#include "TTSChunkMarshaller.h"
-
-#include "Speak_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool Speak_requestMarshaller::checkIntegrity(Speak_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Speak_requestMarshaller::fromString(const std::string& s,Speak_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Speak_requestMarshaller::toString(const Speak_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Speak_requestMarshaller::checkIntegrityConst(const Speak_request& s)
-{
- {
- unsigned int i=s.ttsChunks.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.ttsChunks[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value Speak_requestMarshaller::toJSON(const Speak_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("Speak");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["ttsChunks"]=Json::Value(Json::arrayValue);
- j["ttsChunks"].resize(e.ttsChunks.size());
- for(unsigned int i=0;i<e.ttsChunks.size();i++)
- j["ttsChunks"][i]=TTSChunkMarshaller::toJSON(e.ttsChunks[i]);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool Speak_requestMarshaller::fromJSON(const Json::Value& js,Speak_request& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("Speak")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("ttsChunks")) return false;
- {
- const Json::Value& j=json["ttsChunks"];
- if(!j.isArray()) return false;
- c.ttsChunks.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.ttsChunks[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_requestMarshaller.h
deleted file mode 100644
index 0661e66d9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SPEAK_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SPEAK_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Speak_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct Speak_requestMarshaller
- {
- static bool checkIntegrity(Speak_request& e);
- static bool checkIntegrityConst(const Speak_request& e);
-
- static bool fromString(const std::string& s,Speak_request& e);
- static const std::string toString(const Speak_request& e);
-
- static bool fromJSON(const Json::Value& s,Speak_request& e);
- static Json::Value toJSON(const Speak_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_response.cpp
deleted file mode 100644
index c6921b220..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Speak_response.h"
-#include "Speak_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-Speak_response& Speak_response::operator =(const Speak_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-Speak_response::~Speak_response(void)
-{}
-
-Speak_response::Speak_response(const Speak_response& c)
-{
- *this = c;
-}
-
-bool Speak_response::checkIntegrity(void)
-{
- return Speak_responseMarshaller::checkIntegrity(*this);
-}
-
-Speak_response::Speak_response(void) : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_SPEAK_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_responseMarshaller.cpp
deleted file mode 100644
index 5adb1731a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Speak_response.h"
-#include "ResultMarshaller.h"
-
-#include "Speak_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool Speak_responseMarshaller::checkIntegrity(Speak_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Speak_responseMarshaller::fromString(const std::string& s,Speak_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Speak_responseMarshaller::toString(const Speak_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Speak_responseMarshaller::checkIntegrityConst(const Speak_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value Speak_responseMarshaller::toJSON(const Speak_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("Speak");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool Speak_responseMarshaller::fromJSON(const Json::Value& js,Speak_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("Speak")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_responseMarshaller.h
deleted file mode 100644
index eba715e5f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/Speak_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SPEAK_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SPEAK_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/Speak_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct Speak_responseMarshaller
- {
- static bool checkIntegrity(Speak_response& e);
- static bool checkIntegrityConst(const Speak_response& e);
-
- static bool fromString(const std::string& s,Speak_response& e);
- static const std::string toString(const Speak_response& e);
-
- static bool fromJSON(const Json::Value& s,Speak_response& e);
- static Json::Value toJSON(const Speak_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.cpp
deleted file mode 100644
index 1ba2432a1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/SpeechCapabilities.h"
-#include "SpeechCapabilitiesMarshaller.h"
-#include "SpeechCapabilitiesMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const SpeechCapabilities::SpeechCapabilitiesInternal SpeechCapabilitiesMarshaller::getIndex(const char* s)
-{
- if(!s)
- return SpeechCapabilities::INVALID_ENUM;
- const struct PerfectHashTable* p=SpeechCapabilities_intHash::getPointer(s,strlen(s));
- return p ? static_cast<SpeechCapabilities::SpeechCapabilitiesInternal>(p->idx) : SpeechCapabilities::INVALID_ENUM;
-}
-
-
-bool SpeechCapabilitiesMarshaller::fromJSON(const Json::Value& s,SpeechCapabilities& e)
-{
- e.mInternal=SpeechCapabilities::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=SpeechCapabilities::INVALID_ENUM);
-}
-
-
-Json::Value SpeechCapabilitiesMarshaller::toJSON(const SpeechCapabilities& e)
-{
- if(e.mInternal==SpeechCapabilities::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool SpeechCapabilitiesMarshaller::fromString(const std::string& s,SpeechCapabilities& e)
-{
- e.mInternal=SpeechCapabilities::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string SpeechCapabilitiesMarshaller::toString(const SpeechCapabilities& e)
-{
- Json::FastWriter writer;
- return e.mInternal==SpeechCapabilities::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable SpeechCapabilitiesMarshaller::mHashTable[5]=
-{
- {"TEXT",0},
- {"SAPI_PHONEMES",1},
- {"LHPLUS_PHONEMES",2},
- {"PRE_RECORDED",3},
- {"SILENCE",4}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.gp
deleted file mode 100644
index 698dc17f5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.gp
+++ /dev/null
@@ -1,21 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name SpeechCapabilities_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-TEXT,0
-SAPI_PHONEMES,1
-LHPLUS_PHONEMES,2
-PRE_RECORDED,3
-SILENCE,4
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.h
deleted file mode 100644
index cd40bc5fc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SPEECHCAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SPEECHCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SpeechCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for SpeechCapabilities
-
- class SpeechCapabilitiesMarshaller
- {
- public:
-
- static std::string toName(const SpeechCapabilities& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(SpeechCapabilities& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=SpeechCapabilities::INVALID_ENUM;
- }
-
- static bool checkIntegrity(SpeechCapabilities& e) { return e.mInternal!=SpeechCapabilities::INVALID_ENUM; }
- static bool checkIntegrityConst(const SpeechCapabilities& e) { return e.mInternal!=SpeechCapabilities::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,SpeechCapabilities& e);
- static const std::string toString(const SpeechCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,SpeechCapabilities& e);
- static Json::Value toJSON(const SpeechCapabilities& e);
-
- static const char* getName(SpeechCapabilities::SpeechCapabilitiesInternal e)
- {
- return (e>=0 && e<5) ? mHashTable[e].name : NULL;
- }
-
- static const SpeechCapabilities::SpeechCapabilitiesInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[5];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.inc
deleted file mode 100644
index f58916b3e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.inc
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (c) 2013 Ford Motor Company */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 5
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 15
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 15
-/* maximum key range = 12, duplicates = 0 */
-
-class SpeechCapabilities_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-SpeechCapabilities_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-SpeechCapabilities_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 0, 0, 7, 0, 0, 0, 0, 12, 13,
- 0, 15
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.gp"
- {"TEXT",0},
- {""}, {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.gp"
- {"SILENCE",4},
- {""}, {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.gp"
- {"PRE_RECORDED",3},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.gp"
- {"SAPI_PHONEMES",1},
- {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SpeechCapabilitiesMarshaller.gp"
- {"LHPLUS_PHONEMES",2}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTime.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTime.cpp
deleted file mode 100644
index 1e5a52af0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTime.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/StartTime.h"
-#include "StartTimeMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPC;
-
-StartTime::StartTime(const StartTime& c)
-{
- *this=c;
-}
-
-
-bool StartTime::checkIntegrity(void)
-{
- return StartTimeMarshaller::checkIntegrity(*this);
-}
-
-
-StartTime::StartTime(void)
-{
-}
-
-
-
-bool StartTime::set_hours(unsigned int hours_)
-{
- if(hours_>59) return false;
- hours=hours_;
- return true;
-}
-
-bool StartTime::set_minutes(unsigned int minutes_)
-{
- if(minutes_>59) return false;
- minutes=minutes_;
- return true;
-}
-
-bool StartTime::set_seconds(unsigned int seconds_)
-{
- if(seconds_>59) return false;
- seconds=seconds_;
- return true;
-}
-
-
-
-
-unsigned int StartTime::get_hours(void) const
-{
- return hours;
-}
-
-
-unsigned int StartTime::get_minutes(void) const
-{
- return minutes;
-}
-
-
-unsigned int StartTime::get_seconds(void) const
-{
- return seconds;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTimeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTimeMarshaller.cpp
deleted file mode 100644
index 1c97f5b52..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTimeMarshaller.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/StartTime.h"
-
-
-#include "StartTimeMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool StartTimeMarshaller::checkIntegrity(StartTime& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool StartTimeMarshaller::fromString(const std::string& s,StartTime& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string StartTimeMarshaller::toString(const StartTime& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool StartTimeMarshaller::checkIntegrityConst(const StartTime& s)
-{
- if(s.hours>59) return false;
- if(s.minutes>59) return false;
- if(s.seconds>59) return false;
- return true;
-}
-
-Json::Value StartTimeMarshaller::toJSON(const StartTime& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["hours"]=Json::Value(e.hours);
-
- json["minutes"]=Json::Value(e.minutes);
-
- json["seconds"]=Json::Value(e.seconds);
-
-
- return json;
-}
-
-
-bool StartTimeMarshaller::fromJSON(const Json::Value& json,StartTime& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("hours")) return false;
- {
- const Json::Value& j=json["hours"];
- if(!j.isInt()) return false;
- c.hours=j.asInt();
- }
- if(!json.isMember("minutes")) return false;
- {
- const Json::Value& j=json["minutes"];
- if(!j.isInt()) return false;
- c.minutes=j.asInt();
- }
- if(!json.isMember("seconds")) return false;
- {
- const Json::Value& j=json["seconds"];
- if(!j.isInt()) return false;
- c.seconds=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTimeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTimeMarshaller.h
deleted file mode 100644
index 03e9a6832..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/StartTimeMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_STARTTIMEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_STARTTIMEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/StartTime.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct StartTimeMarshaller
- {
- static bool checkIntegrity(StartTime& e);
- static bool checkIntegrityConst(const StartTime& e);
-
- static bool fromString(const std::string& s,StartTime& e);
- static const std::string toString(const StartTime& e);
-
- static bool fromJSON(const Json::Value& s,StartTime& e);
- static Json::Value toJSON(const StartTime& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_request.cpp
deleted file mode 100644
index b6cc3dc34..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_request.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_request.h"
-#include "SubscribeButton_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "ButtonNameMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-SubscribeButton_request::~SubscribeButton_request(void)
-{
-}
-
-
-SubscribeButton_request::SubscribeButton_request(const SubscribeButton_request& c)
-{
- *this=c;
-}
-
-
-bool SubscribeButton_request::checkIntegrity(void)
-{
- return SubscribeButton_requestMarshaller::checkIntegrity(*this);
-}
-
-
-SubscribeButton_request::SubscribeButton_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_SUBSCRIBEBUTTON_REQUEST)
-{
-}
-
-
-
-bool SubscribeButton_request::set_buttonName(const ButtonName& buttonName_)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(buttonName_)) return false;
- buttonName=buttonName_;
- return true;
-}
-
-
-
-
-const ButtonName& SubscribeButton_request::get_buttonName(void) const
-{
- return buttonName;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_requestMarshaller.cpp
deleted file mode 100644
index f8ca51cee..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_requestMarshaller.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_request.h"
-#include "ButtonNameMarshaller.h"
-
-#include "SubscribeButton_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool SubscribeButton_requestMarshaller::checkIntegrity(SubscribeButton_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SubscribeButton_requestMarshaller::fromString(const std::string& s,SubscribeButton_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SubscribeButton_requestMarshaller::toString(const SubscribeButton_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SubscribeButton_requestMarshaller::checkIntegrityConst(const SubscribeButton_request& s)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(s.buttonName)) return false;
- return true;
-}
-
-Json::Value SubscribeButton_requestMarshaller::toJSON(const SubscribeButton_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("SubscribeButton");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["buttonName"]=ButtonNameMarshaller::toJSON(e.buttonName);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool SubscribeButton_requestMarshaller::fromJSON(const Json::Value& js,SubscribeButton_request& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("SubscribeButton")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("buttonName")) return false;
- {
- const Json::Value& j=json["buttonName"];
- if(!ButtonNameMarshaller::fromJSON(j,c.buttonName))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_requestMarshaller.h
deleted file mode 100644
index b380b243f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SUBSCRIBEBUTTON_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SUBSCRIBEBUTTON_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct SubscribeButton_requestMarshaller
- {
- static bool checkIntegrity(SubscribeButton_request& e);
- static bool checkIntegrityConst(const SubscribeButton_request& e);
-
- static bool fromString(const std::string& s,SubscribeButton_request& e);
- static const std::string toString(const SubscribeButton_request& e);
-
- static bool fromJSON(const Json::Value& s,SubscribeButton_request& e);
- static Json::Value toJSON(const SubscribeButton_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_response.cpp
deleted file mode 100644
index b88f16198..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_response.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_response.h"
-#include "SubscribeButton_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-SubscribeButton_response& SubscribeButton_response::operator =(const SubscribeButton_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-SubscribeButton_response::~SubscribeButton_response(void)
-{}
-
-SubscribeButton_response::SubscribeButton_response(const SubscribeButton_response& c)
-{
- *this = c;
-}
-
-bool SubscribeButton_response::checkIntegrity(void)
-{
- return SubscribeButton_responseMarshaller::checkIntegrity(*this);
-}
-
-SubscribeButton_response::SubscribeButton_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_SUBSCRIBEBUTTON_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_responseMarshaller.cpp
deleted file mode 100644
index 017dd93b0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_response.h"
-#include "ResultMarshaller.h"
-
-#include "SubscribeButton_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool SubscribeButton_responseMarshaller::checkIntegrity(SubscribeButton_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SubscribeButton_responseMarshaller::fromString(const std::string& s,SubscribeButton_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SubscribeButton_responseMarshaller::toString(const SubscribeButton_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SubscribeButton_responseMarshaller::checkIntegrityConst(const SubscribeButton_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value SubscribeButton_responseMarshaller::toJSON(const SubscribeButton_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("SubscribeButton");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool SubscribeButton_responseMarshaller::fromJSON(const Json::Value& js,SubscribeButton_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("SubscribeButton")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_responseMarshaller.h
deleted file mode 100644
index 102b9c6f4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SubscribeButton_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SUBSCRIBEBUTTON_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SUBSCRIBEBUTTON_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SubscribeButton_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct SubscribeButton_responseMarshaller
- {
- static bool checkIntegrity(SubscribeButton_response& e);
- static bool checkIntegrityConst(const SubscribeButton_response& e);
-
- static bool fromString(const std::string& s,SubscribeButton_response& e);
- static const std::string toString(const SubscribeButton_response& e);
-
- static bool fromJSON(const Json::Value& s,SubscribeButton_response& e);
- static Json::Value toJSON(const SubscribeButton_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersion.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersion.cpp
deleted file mode 100644
index cffc86e31..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersion.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SyncMsgVersion.h"
-#include "SyncMsgVersionMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPC;
-
-SyncMsgVersion::SyncMsgVersion(const SyncMsgVersion& c)
-{
- *this=c;
-}
-
-
-bool SyncMsgVersion::checkIntegrity(void)
-{
- return SyncMsgVersionMarshaller::checkIntegrity(*this);
-}
-
-
-SyncMsgVersion::SyncMsgVersion(void)
-{
-}
-
-
-
-bool SyncMsgVersion::set_majorVersion(unsigned int majorVersion_)
-{
- if(majorVersion_>1) return false;
- if(majorVersion_<1) return false;
- majorVersion=majorVersion_;
- return true;
-}
-
-bool SyncMsgVersion::set_minorVersion(unsigned int minorVersion_)
-{
- if(minorVersion_>1000) return false;
- minorVersion=minorVersion_;
- return true;
-}
-
-
-
-
-unsigned int SyncMsgVersion::get_majorVersion(void) const
-{
- return majorVersion;
-}
-
-
-unsigned int SyncMsgVersion::get_minorVersion(void) const
-{
- return minorVersion;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersionMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersionMarshaller.cpp
deleted file mode 100644
index a76cdfbad..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersionMarshaller.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SyncMsgVersion.h"
-
-
-#include "SyncMsgVersionMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool SyncMsgVersionMarshaller::checkIntegrity(SyncMsgVersion& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SyncMsgVersionMarshaller::fromString(const std::string& s,SyncMsgVersion& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SyncMsgVersionMarshaller::toString(const SyncMsgVersion& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SyncMsgVersionMarshaller::checkIntegrityConst(const SyncMsgVersion& s)
-{
- if(s.majorVersion>1) return false;
- if(s.majorVersion<1) return false;
- if(s.minorVersion>1000) return false;
- return true;
-}
-
-Json::Value SyncMsgVersionMarshaller::toJSON(const SyncMsgVersion& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["majorVersion"]=Json::Value(e.majorVersion);
-
- json["minorVersion"]=Json::Value(e.minorVersion);
-
-
- return json;
-}
-
-
-bool SyncMsgVersionMarshaller::fromJSON(const Json::Value& json,SyncMsgVersion& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("majorVersion")) return false;
- {
- const Json::Value& j=json["majorVersion"];
- if(!j.isInt()) return false;
- c.majorVersion=j.asInt();
- }
- if(!json.isMember("minorVersion")) return false;
- {
- const Json::Value& j=json["minorVersion"];
- if(!j.isInt()) return false;
- c.minorVersion=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersionMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersionMarshaller.h
deleted file mode 100644
index c681bf2c1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SyncMsgVersionMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SYNCMSGVERSIONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SYNCMSGVERSIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SyncMsgVersion.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct SyncMsgVersionMarshaller
- {
- static bool checkIntegrity(SyncMsgVersion& e);
- static bool checkIntegrityConst(const SyncMsgVersion& e);
-
- static bool fromString(const std::string& s,SyncMsgVersion& e);
- static const std::string toString(const SyncMsgVersion& e);
-
- static bool fromJSON(const Json::Value& s,SyncMsgVersion& e);
- static Json::Value toJSON(const SyncMsgVersion& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.cpp
deleted file mode 100644
index 77ba41464..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/SystemContext.h"
-#include "SystemContextMarshaller.h"
-#include "SystemContextMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const SystemContext::SystemContextInternal SystemContextMarshaller::getIndex(const char* s)
-{
- if(!s)
- return SystemContext::INVALID_ENUM;
- const struct PerfectHashTable* p=SystemContext_intHash::getPointer(s,strlen(s));
- return p ? static_cast<SystemContext::SystemContextInternal>(p->idx) : SystemContext::INVALID_ENUM;
-}
-
-
-bool SystemContextMarshaller::fromJSON(const Json::Value& s,SystemContext& e)
-{
- e.mInternal=SystemContext::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=SystemContext::INVALID_ENUM);
-}
-
-
-Json::Value SystemContextMarshaller::toJSON(const SystemContext& e)
-{
- if(e.mInternal==SystemContext::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool SystemContextMarshaller::fromString(const std::string& s,SystemContext& e)
-{
- e.mInternal=SystemContext::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string SystemContextMarshaller::toString(const SystemContext& e)
-{
- Json::FastWriter writer;
- return e.mInternal==SystemContext::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable SystemContextMarshaller::mHashTable[3]=
-{
- {"MAIN",0},
- {"VRSESSION",1},
- {"MENU",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.gp
deleted file mode 100644
index cb2be4d05..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name SystemContext_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-MAIN,0
-VRSESSION,1
-MENU,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.h
deleted file mode 100644
index f5b876cb0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_SYSTEMCONTEXTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_SYSTEMCONTEXTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/SystemContext.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for SystemContext
-
- class SystemContextMarshaller
- {
- public:
-
- static std::string toName(const SystemContext& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(SystemContext& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=SystemContext::INVALID_ENUM;
- }
-
- static bool checkIntegrity(SystemContext& e) { return e.mInternal!=SystemContext::INVALID_ENUM; }
- static bool checkIntegrityConst(const SystemContext& e) { return e.mInternal!=SystemContext::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,SystemContext& e);
- static const std::string toString(const SystemContext& e);
-
- static bool fromJSON(const Json::Value& s,SystemContext& e);
- static Json::Value toJSON(const SystemContext& e);
-
- static const char* getName(SystemContext::SystemContextInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const SystemContext::SystemContextInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.inc
deleted file mode 100644
index ef72360c5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.inc
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.gp */
-/* Computed positions: -k'2' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 9
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 9
-/* maximum key range = 6, duplicates = 0 */
-
-class SystemContext_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-SystemContext_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10, 1,10,10,10, 0,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10, 0,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10,10,10,10,10,
- 10,10,10,10,10,10
- };
- return len + asso_values[(unsigned char)str[1]];
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-SystemContext_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 4, 0, 0, 0, 9
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.gp"
- {"MENU",2},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.gp"
- {"MAIN",0},
- {""}, {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/SystemContextMarshaller.gp"
- {"VRSESSION",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.cpp
deleted file mode 100644
index dacf604fd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/TBTState.h"
-#include "TBTStateMarshaller.h"
-#include "TBTStateMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const TBTState::TBTStateInternal TBTStateMarshaller::getIndex(const char* s)
-{
- if(!s)
- return TBTState::INVALID_ENUM;
- const struct PerfectHashTable* p=TBTState_intHash::getPointer(s,strlen(s));
- return p ? static_cast<TBTState::TBTStateInternal>(p->idx) : TBTState::INVALID_ENUM;
-}
-
-
-bool TBTStateMarshaller::fromJSON(const Json::Value& s,TBTState& e)
-{
- e.mInternal=TBTState::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=TBTState::INVALID_ENUM);
-}
-
-
-Json::Value TBTStateMarshaller::toJSON(const TBTState& e)
-{
- if(e.mInternal==TBTState::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool TBTStateMarshaller::fromString(const std::string& s,TBTState& e)
-{
- e.mInternal=TBTState::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string TBTStateMarshaller::toString(const TBTState& e)
-{
- Json::FastWriter writer;
- return e.mInternal==TBTState::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable TBTStateMarshaller::mHashTable[4]=
-{
- {"ROUTE_UPDATE_REQUEST",0},
- {"ROUTE_ACCEPTED",1},
- {"ROUTE_REFUSED",2},
- {"ROUTE_CANCELLED",3}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.gp
deleted file mode 100644
index ed99cb0b2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.gp
+++ /dev/null
@@ -1,20 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name TBTState_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-ROUTE_UPDATE_REQUEST,0
-ROUTE_ACCEPTED,1
-ROUTE_REFUSED,2
-ROUTE_CANCELLED,3
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.h
deleted file mode 100644
index b4703eae7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_TBTSTATEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_TBTSTATEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/TBTState.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for TBTState
-
- class TBTStateMarshaller
- {
- public:
-
- static std::string toName(const TBTState& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(TBTState& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=TBTState::INVALID_ENUM;
- }
-
- static bool checkIntegrity(TBTState& e) { return e.mInternal!=TBTState::INVALID_ENUM; }
- static bool checkIntegrityConst(const TBTState& e) { return e.mInternal!=TBTState::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,TBTState& e);
- static const std::string toString(const TBTState& e);
-
- static bool fromJSON(const Json::Value& s,TBTState& e);
- static Json::Value toJSON(const TBTState& e);
-
- static const char* getName(TBTState::TBTStateInternal e)
- {
- return (e>=0 && e<4) ? mHashTable[e].name : NULL;
- }
-
- static const TBTState::TBTStateInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[4];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.inc
deleted file mode 100644
index 7d5db48d6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.inc
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 4
-#define MIN_WORD_LENGTH 13
-#define MAX_WORD_LENGTH 20
-#define MIN_HASH_VALUE 13
-#define MAX_HASH_VALUE 20
-/* maximum key range = 8, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPC {
-
-class TBTState_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-TBTState_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-TBTState_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
- 14, 15, 0, 0, 0, 0, 20
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.gp"
- {"ROUTE_REFUSED",2},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.gp"
- {"ROUTE_ACCEPTED",1},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.gp"
- {"ROUTE_CANCELLED",3},
- {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TBTStateMarshaller.gp"
- {"ROUTE_UPDATE_REQUEST",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunk.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunk.cpp
deleted file mode 100644
index caaa3c7d5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunk.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/TTSChunk.h"
-#include "TTSChunkMarshaller.h"
-#include "SpeechCapabilitiesMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPC;
-
-TTSChunk::TTSChunk(const TTSChunk& c)
-{
- *this=c;
-}
-
-
-bool TTSChunk::checkIntegrity(void)
-{
- return TTSChunkMarshaller::checkIntegrity(*this);
-}
-
-
-TTSChunk::TTSChunk(void)
-{
-}
-
-
-
-bool TTSChunk::set_text(const std::string& text_)
-{
- if(text_.length()>500) return false;
- text=text_;
- return true;
-}
-
-bool TTSChunk::set_type(const SpeechCapabilities& type_)
-{
- if(!SpeechCapabilitiesMarshaller::checkIntegrityConst(type_)) return false;
- type=type_;
- return true;
-}
-
-
-
-
-const std::string& TTSChunk::get_text(void) const
-{
- return text;
-}
-
-
-const SpeechCapabilities& TTSChunk::get_type(void) const
-{
- return type;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunkMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunkMarshaller.cpp
deleted file mode 100644
index e11e7716b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunkMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/TTSChunk.h"
-#include "SpeechCapabilitiesMarshaller.h"
-
-#include "TTSChunkMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool TTSChunkMarshaller::checkIntegrity(TTSChunk& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool TTSChunkMarshaller::fromString(const std::string& s,TTSChunk& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string TTSChunkMarshaller::toString(const TTSChunk& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool TTSChunkMarshaller::checkIntegrityConst(const TTSChunk& s)
-{
- if(s.text.length()>500) return false;
- if(!SpeechCapabilitiesMarshaller::checkIntegrityConst(s.type)) return false;
- return true;
-}
-
-Json::Value TTSChunkMarshaller::toJSON(const TTSChunk& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["text"]=Json::Value(e.text);
-
- json["type"]=SpeechCapabilitiesMarshaller::toJSON(e.type);
-
-
- return json;
-}
-
-
-bool TTSChunkMarshaller::fromJSON(const Json::Value& json,TTSChunk& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("text")) return false;
- {
- const Json::Value& j=json["text"];
- if(!j.isString()) return false;
- c.text=j.asString();
- }
- if(!json.isMember("type")) return false;
- {
- const Json::Value& j=json["type"];
- if(!SpeechCapabilitiesMarshaller::fromJSON(j,c.type))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunkMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunkMarshaller.h
deleted file mode 100644
index f1f7e5ea2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TTSChunkMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_TTSCHUNKMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_TTSCHUNKMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/TTSChunk.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct TTSChunkMarshaller
- {
- static bool checkIntegrity(TTSChunk& e);
- static bool checkIntegrityConst(const TTSChunk& e);
-
- static bool fromString(const std::string& s,TTSChunk& e);
- static const std::string toString(const TTSChunk& e);
-
- static bool fromJSON(const Json::Value& s,TTSChunk& e);
- static Json::Value toJSON(const TTSChunk& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.cpp
deleted file mode 100644
index 05ce153f1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/TextAlignment.h"
-#include "TextAlignmentMarshaller.h"
-#include "TextAlignmentMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const TextAlignment::TextAlignmentInternal TextAlignmentMarshaller::getIndex(const char* s)
-{
- if(!s)
- return TextAlignment::INVALID_ENUM;
- const struct PerfectHashTable* p=TextAlignment_intHash::getPointer(s,strlen(s));
- return p ? static_cast<TextAlignment::TextAlignmentInternal>(p->idx) : TextAlignment::INVALID_ENUM;
-}
-
-
-bool TextAlignmentMarshaller::fromJSON(const Json::Value& s,TextAlignment& e)
-{
- e.mInternal=TextAlignment::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=TextAlignment::INVALID_ENUM);
-}
-
-
-Json::Value TextAlignmentMarshaller::toJSON(const TextAlignment& e)
-{
- if(e.mInternal==TextAlignment::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool TextAlignmentMarshaller::fromString(const std::string& s,TextAlignment& e)
-{
- e.mInternal=TextAlignment::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string TextAlignmentMarshaller::toString(const TextAlignment& e)
-{
- Json::FastWriter writer;
- return e.mInternal==TextAlignment::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable TextAlignmentMarshaller::mHashTable[3]=
-{
- {"LEFT_ALIGNED",0},
- {"RIGHT_ALIGNED",1},
- {"CENTERED",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.gp
deleted file mode 100644
index 77f3f9eb1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name TextAlignment_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-LEFT_ALIGNED,0
-RIGHT_ALIGNED,1
-CENTERED,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.h
deleted file mode 100644
index d2fe2292d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_TEXTALIGNMENTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_TEXTALIGNMENTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/TextAlignment.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for TextAlignment
-
- class TextAlignmentMarshaller
- {
- public:
-
- static std::string toName(const TextAlignment& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(TextAlignment& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=TextAlignment::INVALID_ENUM;
- }
-
- static bool checkIntegrity(TextAlignment& e) { return e.mInternal!=TextAlignment::INVALID_ENUM; }
- static bool checkIntegrityConst(const TextAlignment& e) { return e.mInternal!=TextAlignment::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,TextAlignment& e);
- static const std::string toString(const TextAlignment& e);
-
- static bool fromJSON(const Json::Value& s,TextAlignment& e);
- static Json::Value toJSON(const TextAlignment& e);
-
- static const char* getName(TextAlignment::TextAlignmentInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const TextAlignment::TextAlignmentInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.inc
deleted file mode 100644
index cbcf7fa11..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.inc
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 8
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 8
-#define MAX_HASH_VALUE 13
-/* maximum key range = 6, duplicates = 0 */
-
-class TextAlignment_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-TextAlignment_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-TextAlignment_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 13
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.gp"
- {"CENTERED",2},
- {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.gp"
- {"LEFT_ALIGNED",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextAlignmentMarshaller.gp"
- {"RIGHT_ALIGNED",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextField.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextField.cpp
deleted file mode 100644
index 6ddf20c4f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextField.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/TextField.h"
-#include "TextFieldMarshaller.h"
-#include "CharacterSetMarshaller.h"
-#include "TextFieldNameMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPC;
-
-TextField::TextField(const TextField& c)
-{
- *this=c;
-}
-
-
-bool TextField::checkIntegrity(void)
-{
- return TextFieldMarshaller::checkIntegrity(*this);
-}
-
-
-TextField::TextField(void)
-{
-}
-
-
-
-bool TextField::set_characterSet(const CharacterSet& characterSet_)
-{
- if(!CharacterSetMarshaller::checkIntegrityConst(characterSet_)) return false;
- characterSet=characterSet_;
- return true;
-}
-
-bool TextField::set_name(const TextFieldName& name_)
-{
- if(!TextFieldNameMarshaller::checkIntegrityConst(name_)) return false;
- name=name_;
- return true;
-}
-
-bool TextField::set_rows(unsigned int rows_)
-{
- if(rows_>3) return false;
- if(rows_<1) return false;
- rows=rows_;
- return true;
-}
-
-bool TextField::set_width(unsigned int width_)
-{
- if(width_>40) return false;
- if(width_<1) return false;
- width=width_;
- return true;
-}
-
-
-
-
-const CharacterSet& TextField::get_characterSet(void) const
-{
- return characterSet;
-}
-
-
-const TextFieldName& TextField::get_name(void) const
-{
- return name;
-}
-
-
-unsigned int TextField::get_rows(void) const
-{
- return rows;
-}
-
-
-unsigned int TextField::get_width(void) const
-{
- return width;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldMarshaller.cpp
deleted file mode 100644
index a643250cb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldMarshaller.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/TextField.h"
-#include "CharacterSetMarshaller.h"
-#include "TextFieldNameMarshaller.h"
-
-#include "TextFieldMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool TextFieldMarshaller::checkIntegrity(TextField& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool TextFieldMarshaller::fromString(const std::string& s,TextField& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string TextFieldMarshaller::toString(const TextField& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool TextFieldMarshaller::checkIntegrityConst(const TextField& s)
-{
- if(!CharacterSetMarshaller::checkIntegrityConst(s.characterSet)) return false;
- if(!TextFieldNameMarshaller::checkIntegrityConst(s.name)) return false;
- if(s.rows>3) return false;
- if(s.rows<1) return false;
- if(s.width>40) return false;
- if(s.width<1) return false;
- return true;
-}
-
-Json::Value TextFieldMarshaller::toJSON(const TextField& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["characterSet"]=CharacterSetMarshaller::toJSON(e.characterSet);
-
- json["name"]=TextFieldNameMarshaller::toJSON(e.name);
-
- json["rows"]=Json::Value(e.rows);
-
- json["width"]=Json::Value(e.width);
-
-
- return json;
-}
-
-
-bool TextFieldMarshaller::fromJSON(const Json::Value& json,TextField& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("characterSet")) return false;
- {
- const Json::Value& j=json["characterSet"];
- if(!CharacterSetMarshaller::fromJSON(j,c.characterSet))
- return false;
- }
- if(!json.isMember("name")) return false;
- {
- const Json::Value& j=json["name"];
- if(!TextFieldNameMarshaller::fromJSON(j,c.name))
- return false;
- }
- if(!json.isMember("rows")) return false;
- {
- const Json::Value& j=json["rows"];
- if(!j.isInt()) return false;
- c.rows=j.asInt();
- }
- if(!json.isMember("width")) return false;
- {
- const Json::Value& j=json["width"];
- if(!j.isInt()) return false;
- c.width=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldMarshaller.h
deleted file mode 100644
index 7631d6eb4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_TEXTFIELDMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_TEXTFIELDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/TextField.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct TextFieldMarshaller
- {
- static bool checkIntegrity(TextField& e);
- static bool checkIntegrityConst(const TextField& e);
-
- static bool fromString(const std::string& s,TextField& e);
- static const std::string toString(const TextField& e);
-
- static bool fromJSON(const Json::Value& s,TextField& e);
- static Json::Value toJSON(const TextField& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.cpp
deleted file mode 100644
index 1494eee2b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/TextFieldName.h"
-#include "TextFieldNameMarshaller.h"
-#include "TextFieldNameMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const TextFieldName::TextFieldNameInternal TextFieldNameMarshaller::getIndex(const char* s)
-{
- if(!s)
- return TextFieldName::INVALID_ENUM;
- const struct PerfectHashTable* p=TextFieldName_intHash::getPointer(s,strlen(s));
- return p ? static_cast<TextFieldName::TextFieldNameInternal>(p->idx) : TextFieldName::INVALID_ENUM;
-}
-
-
-bool TextFieldNameMarshaller::fromJSON(const Json::Value& s,TextFieldName& e)
-{
- e.mInternal=TextFieldName::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=TextFieldName::INVALID_ENUM);
-}
-
-
-Json::Value TextFieldNameMarshaller::toJSON(const TextFieldName& e)
-{
- if(e.mInternal==TextFieldName::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool TextFieldNameMarshaller::fromString(const std::string& s,TextFieldName& e)
-{
- e.mInternal=TextFieldName::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string TextFieldNameMarshaller::toString(const TextFieldName& e)
-{
- Json::FastWriter writer;
- return e.mInternal==TextFieldName::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable TextFieldNameMarshaller::mHashTable[7]=
-{
- {"mainField1",0},
- {"mainField2",1},
- {"statusBar",2},
- {"mediaClock",3},
- {"mediaTrack",4},
- {"alertText1",5},
- {"alertText2",6}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp
deleted file mode 100644
index 001026e5e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp
+++ /dev/null
@@ -1,23 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name TextFieldName_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-mainField1,0
-mainField2,1
-statusBar,2
-mediaClock,3
-mediaTrack,4
-alertText1,5
-alertText2,6
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.h
deleted file mode 100644
index 37b070a9c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_TEXTFIELDNAMEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_TEXTFIELDNAMEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/TextFieldName.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for TextFieldName
-
- class TextFieldNameMarshaller
- {
- public:
-
- static std::string toName(const TextFieldName& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(TextFieldName& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=TextFieldName::INVALID_ENUM;
- }
-
- static bool checkIntegrity(TextFieldName& e) { return e.mInternal!=TextFieldName::INVALID_ENUM; }
- static bool checkIntegrityConst(const TextFieldName& e) { return e.mInternal!=TextFieldName::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,TextFieldName& e);
- static const std::string toString(const TextFieldName& e);
-
- static bool fromJSON(const Json::Value& s,TextFieldName& e);
- static Json::Value toJSON(const TextFieldName& e);
-
- static const char* getName(TextFieldName::TextFieldNameInternal e)
- {
- return (e>=0 && e<7) ? mHashTable[e].name : NULL;
- }
-
- static const TextFieldName::TextFieldNameInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[7];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.inc
deleted file mode 100644
index 5512b621d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.inc
+++ /dev/null
@@ -1,172 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp */
-/* Computed positions: -k'8,10' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 7
-#define MIN_WORD_LENGTH 9
-#define MAX_WORD_LENGTH 10
-#define MIN_HASH_VALUE 9
-#define MAX_HASH_VALUE 19
-/* maximum key range = 11, duplicates = 0 */
-
-class TextFieldName_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-TextFieldName_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 2,
- 0, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 0, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 4, 5, 20,
- 20, 5, 20, 20, 20, 20, 20, 20, 20, 20,
- 0, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[9]];
- /*FALLTHROUGH*/
- case 9:
- case 8:
- hval += asso_values[(unsigned char)str[7]];
- break;
- }
- return hval;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-TextFieldName_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 0, 10, 0,
- 10, 10, 0, 10, 0, 10
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp"
- {"statusBar",2},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp"
- {"alertText2",6},
- {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp"
- {"alertText1",5},
- {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp"
- {"mediaTrack",4},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp"
- {"mainField2",1},
- {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp"
- {"mainField1",0},
- {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TextFieldNameMarshaller.gp"
- {"mediaClock",3}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.cpp
deleted file mode 100644
index 475f62be4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/TriggerSource.h"
-#include "TriggerSourceMarshaller.h"
-#include "TriggerSourceMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const TriggerSource::TriggerSourceInternal TriggerSourceMarshaller::getIndex(const char* s)
-{
- if(!s)
- return TriggerSource::INVALID_ENUM;
- const struct PerfectHashTable* p=TriggerSource_intHash::getPointer(s,strlen(s));
- return p ? static_cast<TriggerSource::TriggerSourceInternal>(p->idx) : TriggerSource::INVALID_ENUM;
-}
-
-
-bool TriggerSourceMarshaller::fromJSON(const Json::Value& s,TriggerSource& e)
-{
- e.mInternal=TriggerSource::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=TriggerSource::INVALID_ENUM);
-}
-
-
-Json::Value TriggerSourceMarshaller::toJSON(const TriggerSource& e)
-{
- if(e.mInternal==TriggerSource::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool TriggerSourceMarshaller::fromString(const std::string& s,TriggerSource& e)
-{
- e.mInternal=TriggerSource::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string TriggerSourceMarshaller::toString(const TriggerSource& e)
-{
- Json::FastWriter writer;
- return e.mInternal==TriggerSource::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable TriggerSourceMarshaller::mHashTable[2]=
-{
- {"MENU",0},
- {"VR",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.gp
deleted file mode 100644
index b0dc33dd6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name TriggerSource_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-MENU,0
-VR,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.h
deleted file mode 100644
index 3ea49c31b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_TRIGGERSOURCEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_TRIGGERSOURCEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/TriggerSource.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for TriggerSource
-
- class TriggerSourceMarshaller
- {
- public:
-
- static std::string toName(const TriggerSource& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(TriggerSource& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=TriggerSource::INVALID_ENUM;
- }
-
- static bool checkIntegrity(TriggerSource& e) { return e.mInternal!=TriggerSource::INVALID_ENUM; }
- static bool checkIntegrityConst(const TriggerSource& e) { return e.mInternal!=TriggerSource::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,TriggerSource& e);
- static const std::string toString(const TriggerSource& e);
-
- static bool fromJSON(const Json::Value& s,TriggerSource& e);
- static Json::Value toJSON(const TriggerSource& e);
-
- static const char* getName(TriggerSource::TriggerSourceInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const TriggerSource::TriggerSourceInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.inc
deleted file mode 100644
index 8ae6d4f0e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.inc
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 4
-#define MIN_HASH_VALUE 2
-#define MAX_HASH_VALUE 4
-/* maximum key range = 3, duplicates = 0 */
-
-class TriggerSource_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-TriggerSource_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-TriggerSource_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 2, 0, 4
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.gp"
- {"VR",1},
- {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/TriggerSourceMarshaller.gp"
- {"MENU",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_request.cpp
deleted file mode 100644
index 7b09ec2ac..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_request.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_request.h"
-#include "UnregisterAppInterface_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-UnregisterAppInterface_request::~UnregisterAppInterface_request(void)
-{
-}
-
-
-UnregisterAppInterface_request::UnregisterAppInterface_request(const UnregisterAppInterface_request& c)
-{
- *this=c;
-}
-
-
-bool UnregisterAppInterface_request::checkIntegrity(void)
-{
- return UnregisterAppInterface_requestMarshaller::checkIntegrity(*this);
-}
-
-
-UnregisterAppInterface_request::UnregisterAppInterface_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_UNREGISTERAPPINTERFACE_REQUEST)
-{
-}
-
-
-
-
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_requestMarshaller.cpp
deleted file mode 100644
index 649d630b3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_requestMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_request.h"
-
-
-#include "UnregisterAppInterface_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool UnregisterAppInterface_requestMarshaller::checkIntegrity(UnregisterAppInterface_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UnregisterAppInterface_requestMarshaller::fromString(const std::string& s,UnregisterAppInterface_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UnregisterAppInterface_requestMarshaller::toString(const UnregisterAppInterface_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UnregisterAppInterface_requestMarshaller::checkIntegrityConst(const UnregisterAppInterface_request& s)
-{
- return true;
-}
-
-Json::Value UnregisterAppInterface_requestMarshaller::toJSON(const UnregisterAppInterface_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("UnregisterAppInterface");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool UnregisterAppInterface_requestMarshaller::fromJSON(const Json::Value& js,UnregisterAppInterface_request& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("UnregisterAppInterface")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_requestMarshaller.h
deleted file mode 100644
index e0edad192..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_UNREGISTERAPPINTERFACE_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_UNREGISTERAPPINTERFACE_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct UnregisterAppInterface_requestMarshaller
- {
- static bool checkIntegrity(UnregisterAppInterface_request& e);
- static bool checkIntegrityConst(const UnregisterAppInterface_request& e);
-
- static bool fromString(const std::string& s,UnregisterAppInterface_request& e);
- static const std::string toString(const UnregisterAppInterface_request& e);
-
- static bool fromJSON(const Json::Value& s,UnregisterAppInterface_request& e);
- static Json::Value toJSON(const UnregisterAppInterface_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_response.cpp
deleted file mode 100644
index d9806e3c6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_response.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_response.h"
-#include "UnregisterAppInterface_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-UnregisterAppInterface_response& UnregisterAppInterface_response::operator =(const UnregisterAppInterface_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-UnregisterAppInterface_response::~UnregisterAppInterface_response(void)
-{}
-
-UnregisterAppInterface_response::UnregisterAppInterface_response(const UnregisterAppInterface_response& c)
-{
- *this = c;
-}
-
-bool UnregisterAppInterface_response::checkIntegrity(void)
-{
- return UnregisterAppInterface_responseMarshaller::checkIntegrity(*this);
-}
-
-UnregisterAppInterface_response::UnregisterAppInterface_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_UNREGISTERAPPINTERFACE_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_responseMarshaller.cpp
deleted file mode 100644
index 8232e9d76..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_response.h"
-#include "ResultMarshaller.h"
-
-#include "UnregisterAppInterface_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool UnregisterAppInterface_responseMarshaller::checkIntegrity(UnregisterAppInterface_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UnregisterAppInterface_responseMarshaller::fromString(const std::string& s,UnregisterAppInterface_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UnregisterAppInterface_responseMarshaller::toString(const UnregisterAppInterface_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UnregisterAppInterface_responseMarshaller::checkIntegrityConst(const UnregisterAppInterface_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value UnregisterAppInterface_responseMarshaller::toJSON(const UnregisterAppInterface_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("UnregisterAppInterface");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool UnregisterAppInterface_responseMarshaller::fromJSON(const Json::Value& js,UnregisterAppInterface_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("UnregisterAppInterface")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_responseMarshaller.h
deleted file mode 100644
index 794a2d4e0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnregisterAppInterface_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_UNREGISTERAPPINTERFACE_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_UNREGISTERAPPINTERFACE_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnregisterAppInterface_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct UnregisterAppInterface_responseMarshaller
- {
- static bool checkIntegrity(UnregisterAppInterface_response& e);
- static bool checkIntegrityConst(const UnregisterAppInterface_response& e);
-
- static bool fromString(const std::string& s,UnregisterAppInterface_response& e);
- static const std::string toString(const UnregisterAppInterface_response& e);
-
- static bool fromJSON(const Json::Value& s,UnregisterAppInterface_response& e);
- static Json::Value toJSON(const UnregisterAppInterface_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_request.cpp
deleted file mode 100644
index 93ca7a7e8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_request.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_request.h"
-#include "UnsubscribeButton_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-#include "ButtonNameMarshaller.h"
-
-#define PROTOCOL_VERSION 1
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-UnsubscribeButton_request::~UnsubscribeButton_request(void)
-{
-}
-
-
-UnsubscribeButton_request::UnsubscribeButton_request(const UnsubscribeButton_request& c)
-{
- *this=c;
-}
-
-
-bool UnsubscribeButton_request::checkIntegrity(void)
-{
- return UnsubscribeButton_requestMarshaller::checkIntegrity(*this);
-}
-
-
-UnsubscribeButton_request::UnsubscribeButton_request(void) : SDLRPCRequest(PROTOCOL_VERSION,Marshaller::METHOD_UNSUBSCRIBEBUTTON_REQUEST)
-{
-}
-
-
-
-bool UnsubscribeButton_request::set_buttonName(const ButtonName& buttonName_)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(buttonName_)) return false;
- buttonName=buttonName_;
- return true;
-}
-
-
-
-
-const ButtonName& UnsubscribeButton_request::get_buttonName(void) const
-{
- return buttonName;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_requestMarshaller.cpp
deleted file mode 100644
index 9b5145877..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_requestMarshaller.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_request.h"
-#include "ButtonNameMarshaller.h"
-
-#include "UnsubscribeButton_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool UnsubscribeButton_requestMarshaller::checkIntegrity(UnsubscribeButton_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UnsubscribeButton_requestMarshaller::fromString(const std::string& s,UnsubscribeButton_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UnsubscribeButton_requestMarshaller::toString(const UnsubscribeButton_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UnsubscribeButton_requestMarshaller::checkIntegrityConst(const UnsubscribeButton_request& s)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(s.buttonName)) return false;
- return true;
-}
-
-Json::Value UnsubscribeButton_requestMarshaller::toJSON(const UnsubscribeButton_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["request"]=Json::Value(Json::objectValue);
- json["request"]["name"]=Json::Value("UnsubscribeButton");
- json["request"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["buttonName"]=ButtonNameMarshaller::toJSON(e.buttonName);
-
- json["request"]["parameters"]=j;
- return json;
-}
-
-
-bool UnsubscribeButton_requestMarshaller::fromJSON(const Json::Value& js,UnsubscribeButton_request& c)
-{
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("request")) return false;
-
- if(!js["request"].isObject()) return false;
- const Json::Value& j2=js["request"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("UnsubscribeButton")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("buttonName")) return false;
- {
- const Json::Value& j=json["buttonName"];
- if(!ButtonNameMarshaller::fromJSON(j,c.buttonName))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_requestMarshaller.h
deleted file mode 100644
index b79b9486e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_UNSUBSCRIBEBUTTON_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_UNSUBSCRIBEBUTTON_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct UnsubscribeButton_requestMarshaller
- {
- static bool checkIntegrity(UnsubscribeButton_request& e);
- static bool checkIntegrityConst(const UnsubscribeButton_request& e);
-
- static bool fromString(const std::string& s,UnsubscribeButton_request& e);
- static const std::string toString(const UnsubscribeButton_request& e);
-
- static bool fromJSON(const Json::Value& s,UnsubscribeButton_request& e);
- static Json::Value toJSON(const UnsubscribeButton_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_response.cpp
deleted file mode 100644
index 22d8b3553..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_response.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_response.h"
-#include "UnsubscribeButton_responseMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V1/Marshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-UnsubscribeButton_response& UnsubscribeButton_response::operator =(const UnsubscribeButton_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-UnsubscribeButton_response::~UnsubscribeButton_response(void)
-{}
-
-UnsubscribeButton_response::UnsubscribeButton_response(const UnsubscribeButton_response& c)
-{
- *this = c;
-}
-
-bool UnsubscribeButton_response::checkIntegrity(void)
-{
- return UnsubscribeButton_responseMarshaller::checkIntegrity(*this);
-}
-
-UnsubscribeButton_response::UnsubscribeButton_response(void)
- : SDLRPCResponse(PROTOCOL_VERSION, Marshaller::METHOD_UNSUBSCRIBEBUTTON_RESPONSE)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_responseMarshaller.cpp
deleted file mode 100644
index 01bd77002..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_responseMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_response.h"
-#include "ResultMarshaller.h"
-
-#include "UnsubscribeButton_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-bool UnsubscribeButton_responseMarshaller::checkIntegrity(UnsubscribeButton_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UnsubscribeButton_responseMarshaller::fromString(const std::string& s,UnsubscribeButton_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UnsubscribeButton_responseMarshaller::toString(const UnsubscribeButton_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UnsubscribeButton_responseMarshaller::checkIntegrityConst(const UnsubscribeButton_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(static_cast<NsSmartDeviceLinkRPCV2::Result>(s.resultCode))) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value UnsubscribeButton_responseMarshaller::toJSON(const UnsubscribeButton_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["response"]=Json::Value(Json::objectValue);
- json["response"]["name"]=Json::Value("UnsubscribeButton");
- json["response"]["correlationID"]=Json::Value(e.getCorrelationID());
-
- Json::Value j=Json::Value(Json::objectValue);
-
- j["success"]=Json::Value(e.success);
-
- j["resultCode"]=ResultMarshaller::toJSON(static_cast<NsSmartDeviceLinkRPCV2::Result>(e.resultCode));
-
- if(e.info)
- j["info"]=Json::Value(*e.info);
-
- json["response"]["parameters"]=j;
- return json;
-}
-
-
-bool UnsubscribeButton_responseMarshaller::fromJSON(const Json::Value& js,UnsubscribeButton_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!js.isObject()) return false;
-
- if(!js.isMember("response")) return false;
-
- if(!js["response"].isObject()) return false;
- const Json::Value& j2=js["response"];
-
- if(!j2.isMember("name") || !j2["name"].isString() || j2["name"].asString().compare("UnsubscribeButton")) return false;
- if(!j2.isMember("correlationID") || !j2["correlationID"].isInt()) return false;
- c.setCorrelationID(j2["correlationID"].asInt());
-
- if(!j2.isMember("parameters")) return false;
- const Json::Value& json=j2["parameters"];
- if(!json.isObject()) return false;
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- NsSmartDeviceLinkRPC::Result result = static_cast<NsSmartDeviceLinkRPC::Result>(c.resultCode);
- if(!ResultMarshaller::fromJSON(j, result))
- return false;
- c.resultCode = static_cast<NsSmartDeviceLinkRPCV2::Result>(result);
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_responseMarshaller.h
deleted file mode 100644
index 7d620850d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UnsubscribeButton_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_UNSUBSCRIBEBUTTON_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_UNSUBSCRIBEBUTTON_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UnsubscribeButton_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
- struct UnsubscribeButton_responseMarshaller
- {
- static bool checkIntegrity(UnsubscribeButton_response& e);
- static bool checkIntegrityConst(const UnsubscribeButton_response& e);
-
- static bool fromString(const std::string& s,UnsubscribeButton_response& e);
- static const std::string toString(const UnsubscribeButton_response& e);
-
- static bool fromJSON(const Json::Value& s,UnsubscribeButton_response& e);
- static Json::Value toJSON(const UnsubscribeButton_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.cpp
deleted file mode 100644
index 564b9f833..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/UpdateMode.h"
-#include "UpdateModeMarshaller.h"
-#include "UpdateModeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const UpdateMode::UpdateModeInternal UpdateModeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return UpdateMode::INVALID_ENUM;
- const struct PerfectHashTable* p=UpdateMode_intHash::getPointer(s,strlen(s));
- return p ? static_cast<UpdateMode::UpdateModeInternal>(p->idx) : UpdateMode::INVALID_ENUM;
-}
-
-
-bool UpdateModeMarshaller::fromJSON(const Json::Value& s,UpdateMode& e)
-{
- e.mInternal=UpdateMode::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=UpdateMode::INVALID_ENUM);
-}
-
-
-Json::Value UpdateModeMarshaller::toJSON(const UpdateMode& e)
-{
- if(e.mInternal==UpdateMode::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool UpdateModeMarshaller::fromString(const std::string& s,UpdateMode& e)
-{
- e.mInternal=UpdateMode::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string UpdateModeMarshaller::toString(const UpdateMode& e)
-{
- Json::FastWriter writer;
- return e.mInternal==UpdateMode::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable UpdateModeMarshaller::mHashTable[4]=
-{
- {"COUNTUP",0},
- {"COUNTDOWN",1},
- {"PAUSE",2},
- {"RESUME",3}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.gp
deleted file mode 100644
index 2e2a2b5b6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.gp
+++ /dev/null
@@ -1,20 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name UpdateMode_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-COUNTUP,0
-COUNTDOWN,1
-PAUSE,2
-RESUME,3
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.h
deleted file mode 100644
index 4b8c39c79..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_UPDATEMODEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_UPDATEMODEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/UpdateMode.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for UpdateMode
-
- class UpdateModeMarshaller
- {
- public:
-
- static std::string toName(const UpdateMode& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(UpdateMode& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=UpdateMode::INVALID_ENUM;
- }
-
- static bool checkIntegrity(UpdateMode& e) { return e.mInternal!=UpdateMode::INVALID_ENUM; }
- static bool checkIntegrityConst(const UpdateMode& e) { return e.mInternal!=UpdateMode::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,UpdateMode& e);
- static const std::string toString(const UpdateMode& e);
-
- static bool fromJSON(const Json::Value& s,UpdateMode& e);
- static Json::Value toJSON(const UpdateMode& e);
-
- static const char* getName(UpdateMode::UpdateModeInternal e)
- {
- return (e>=0 && e<4) ? mHashTable[e].name : NULL;
- }
-
- static const UpdateMode::UpdateModeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[4];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.inc
deleted file mode 100644
index 0a329801b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.inc
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 4
-#define MIN_WORD_LENGTH 5
-#define MAX_WORD_LENGTH 9
-#define MIN_HASH_VALUE 5
-#define MAX_HASH_VALUE 9
-/* maximum key range = 5, duplicates = 0 */
-
-class UpdateMode_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-UpdateMode_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-UpdateMode_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 5, 6, 7, 0, 9
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.gp"
- {"PAUSE",2},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.gp"
- {"RESUME",3},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.gp"
- {"COUNTUP",0},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/UpdateModeMarshaller.gp"
- {"COUNTDOWN",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.cpp
deleted file mode 100644
index 46f92708b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V1/VrCapabilities.h"
-#include "VrCapabilitiesMarshaller.h"
-#include "VrCapabilitiesMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPC;
-
-
-const VrCapabilities::VrCapabilitiesInternal VrCapabilitiesMarshaller::getIndex(const char* s)
-{
- if(!s)
- return VrCapabilities::INVALID_ENUM;
- const struct PerfectHashTable* p=VrCapabilities_intHash::getPointer(s,strlen(s));
- return p ? static_cast<VrCapabilities::VrCapabilitiesInternal>(p->idx) : VrCapabilities::INVALID_ENUM;
-}
-
-
-bool VrCapabilitiesMarshaller::fromJSON(const Json::Value& s,VrCapabilities& e)
-{
- e.mInternal=VrCapabilities::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=VrCapabilities::INVALID_ENUM);
-}
-
-
-Json::Value VrCapabilitiesMarshaller::toJSON(const VrCapabilities& e)
-{
- if(e.mInternal==VrCapabilities::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool VrCapabilitiesMarshaller::fromString(const std::string& s,VrCapabilities& e)
-{
- e.mInternal=VrCapabilities::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string VrCapabilitiesMarshaller::toString(const VrCapabilities& e)
-{
- Json::FastWriter writer;
- return e.mInternal==VrCapabilities::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable VrCapabilitiesMarshaller::mHashTable[1]=
-{
- {"Text",0}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.gp
deleted file mode 100644
index 056f672de..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.gp
+++ /dev/null
@@ -1,17 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name VrCapabilities_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPC::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-Text,0
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.h
deleted file mode 100644
index a6d7d265c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPC_VRCAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPC_VRCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V1/VrCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 1.2
- date 2011-05-17
- generated at Thu Jan 24 06:36:21 2013
- source stamp Thu Jan 24 06:35:34 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPC
-{
-
-//! marshalling class for VrCapabilities
-
- class VrCapabilitiesMarshaller
- {
- public:
-
- static std::string toName(const VrCapabilities& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(VrCapabilities& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=VrCapabilities::INVALID_ENUM;
- }
-
- static bool checkIntegrity(VrCapabilities& e) { return e.mInternal!=VrCapabilities::INVALID_ENUM; }
- static bool checkIntegrityConst(const VrCapabilities& e) { return e.mInternal!=VrCapabilities::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,VrCapabilities& e);
- static const std::string toString(const VrCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,VrCapabilities& e);
- static Json::Value toJSON(const VrCapabilities& e);
-
- static const char* getName(VrCapabilities::VrCapabilitiesInternal e)
- {
- return (e>=0 && e<1) ? mHashTable[e].name : NULL;
- }
-
- static const VrCapabilities::VrCapabilitiesInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[1];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.inc
deleted file mode 100644
index 43c3287dd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.inc
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 1
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 4
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 4
-/* maximum key range = 1, duplicates = 0 */
-
-class VrCapabilities_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-VrCapabilities_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPC::PerfectHashTable *
-VrCapabilities_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4
- };
- static const struct NsSmartDeviceLinkRPC::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V1/VrCapabilitiesMarshaller.gp"
- {"Text",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_request.cpp
deleted file mode 100644
index d7ceff755..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_request.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddCommand_request.h"
-#include "AddCommand_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "ImageMarshaller.h"
-#include "MenuParamsMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-AddCommand_request& AddCommand_request::operator =(const AddCommand_request& c)
-{
- cmdID= c.cmdID;
- menuParams= c.menuParams ? new MenuParams(c.menuParams[0]) : 0;
- vrCommands= c.vrCommands ? new std::vector<std::string>(c.vrCommands[0]) : 0;
- cmdIcon= c.cmdIcon ? new Image(c.cmdIcon[0]) : 0;
-
- return *this;
-}
-
-
-AddCommand_request::~AddCommand_request(void)
-{
- if(menuParams)
- delete menuParams;
- if(vrCommands)
- delete vrCommands;
- if(cmdIcon)
- delete cmdIcon;
-}
-
-
-AddCommand_request::AddCommand_request(const AddCommand_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool AddCommand_request::checkIntegrity(void)
-{
- return AddCommand_requestMarshaller::checkIntegrity(*this);
-}
-
-
-AddCommand_request::AddCommand_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- menuParams(0),
- vrCommands(0),
- cmdIcon(0)
-{
-}
-
-
-
-bool AddCommand_request::set_cmdID(unsigned int cmdID_)
-{
- if(cmdID_>2000000000) return false;
- cmdID=cmdID_;
- return true;
-}
-
-bool AddCommand_request::set_menuParams(const MenuParams& menuParams_)
-{
- if(!MenuParamsMarshaller::checkIntegrityConst(menuParams_)) return false;
- delete menuParams;
- menuParams=0;
-
- menuParams=new MenuParams(menuParams_);
- return true;
-}
-
-void AddCommand_request::reset_menuParams(void)
-{
- if(menuParams)
- delete menuParams;
- menuParams=0;
-}
-
-bool AddCommand_request::set_vrCommands(const std::vector<std::string>& vrCommands_)
-{
- unsigned int i=vrCommands_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(vrCommands_[i].length()>99) return false;
- }
- delete vrCommands;
- vrCommands=0;
-
- vrCommands=new std::vector<std::string>(vrCommands_);
- return true;
-}
-
-void AddCommand_request::reset_vrCommands(void)
-{
- if(vrCommands)
- delete vrCommands;
- vrCommands=0;
-}
-
-bool AddCommand_request::set_cmdIcon(const Image& cmdIcon_)
-{
- if(!ImageMarshaller::checkIntegrityConst(cmdIcon_)) return false;
- delete cmdIcon;
- cmdIcon=0;
-
- cmdIcon=new Image(cmdIcon_);
- return true;
-}
-
-void AddCommand_request::reset_cmdIcon(void)
-{
- if(cmdIcon)
- delete cmdIcon;
- cmdIcon=0;
-}
-
-
-
-
-unsigned int AddCommand_request::get_cmdID(void) const
-{
- return cmdID;
-}
-
-const MenuParams* AddCommand_request::get_menuParams(void) const
-{
- return menuParams;
-}
-
-const std::vector<std::string>* AddCommand_request::get_vrCommands(void) const
-{
- return vrCommands;
-}
-
-const Image* AddCommand_request::get_cmdIcon(void) const
-{
- return cmdIcon;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_requestMarshaller.cpp
deleted file mode 100644
index c7bbbe2b8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_requestMarshaller.cpp
+++ /dev/null
@@ -1,181 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddCommand_request.h"
-#include "ImageMarshaller.h"
-#include "MenuParamsMarshaller.h"
-
-#include "AddCommand_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool AddCommand_requestMarshaller::checkIntegrity(AddCommand_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddCommand_requestMarshaller::fromString(const std::string& s,AddCommand_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddCommand_requestMarshaller::toString(const AddCommand_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddCommand_requestMarshaller::checkIntegrityConst(const AddCommand_request& s)
-{
- if(s.cmdID>2000000000) return false;
- if(s.menuParams && !MenuParamsMarshaller::checkIntegrityConst(*s.menuParams)) return false;
- if(s.vrCommands)
- {
- unsigned int i=s.vrCommands[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.vrCommands[0][i].length()>99) return false;
- }
- }
- if(s.cmdIcon && !ImageMarshaller::checkIntegrityConst(*s.cmdIcon)) return false;
- return true;
-}
-
-Json::Value AddCommand_requestMarshaller::toJSON(const AddCommand_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["cmdID"]=Json::Value(e.cmdID);
-
- if(e.menuParams)
- json["menuParams"]=MenuParamsMarshaller::toJSON(*e.menuParams);
-
- if(e.vrCommands)
- {
- unsigned int sz=e.vrCommands->size();
- json["vrCommands"]=Json::Value(Json::arrayValue);
- json["vrCommands"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["vrCommands"][i]=Json::Value(e.vrCommands[0][i]);
- }
-
- if(e.cmdIcon)
- json["cmdIcon"]=ImageMarshaller::toJSON(*e.cmdIcon);
-
- return json;
-}
-
-
-bool AddCommand_requestMarshaller::fromJSON(const Json::Value& json,AddCommand_request& c)
-{
- if(c.menuParams) delete c.menuParams;
- c.menuParams=0;
-
- if(c.vrCommands) delete c.vrCommands;
- c.vrCommands=0;
-
- if(c.cmdIcon) delete c.cmdIcon;
- c.cmdIcon=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("cmdID")) return false;
- {
- const Json::Value& j=json["cmdID"];
- if(!j.isInt()) return false;
- c.cmdID=j.asInt();
- }
- if(json.isMember("menuParams"))
- {
- const Json::Value& j=json["menuParams"];
- c.menuParams=new MenuParams();
- if(!MenuParamsMarshaller::fromJSON(j,c.menuParams[0]))
- return false;
- }
- if(json.isMember("vrCommands"))
- {
- const Json::Value& j=json["vrCommands"];
- if(!j.isArray()) return false;
- c.vrCommands=new std::vector<std::string>();
- c.vrCommands->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.vrCommands[0][i]=j[i].asString();
- }
- if(json.isMember("cmdIcon"))
- {
- const Json::Value& j=json["cmdIcon"];
- c.cmdIcon=new Image();
- if(!ImageMarshaller::fromJSON(j,c.cmdIcon[0]))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_requestMarshaller.h
deleted file mode 100644
index 699c5a922..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ADDCOMMAND_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ADDCOMMAND_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddCommand_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct AddCommand_requestMarshaller
- {
- static bool checkIntegrity(AddCommand_request& e);
- static bool checkIntegrityConst(const AddCommand_request& e);
-
- static bool fromString(const std::string& s,AddCommand_request& e);
- static const std::string toString(const AddCommand_request& e);
-
- static bool fromJSON(const Json::Value& s,AddCommand_request& e);
- static Json::Value toJSON(const AddCommand_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_response.cpp
deleted file mode 100644
index 69111bee5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddCommand_response.h"
-#include "AddCommand_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-AddCommand_response& AddCommand_response::operator =(const AddCommand_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-AddCommand_response::~AddCommand_response(void)
-{}
-
-AddCommand_response::AddCommand_response(const AddCommand_response& c)
-{
- *this = c;
-}
-
-
-bool AddCommand_response::checkIntegrity(void)
-{
- return AddCommand_responseMarshaller::checkIntegrity(*this);
-}
-
-AddCommand_response::AddCommand_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_responseMarshaller.cpp
deleted file mode 100644
index d37a912eb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddCommand_response.h"
-#include "ResultMarshaller.h"
-
-#include "AddCommand_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool AddCommand_responseMarshaller::checkIntegrity(AddCommand_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddCommand_responseMarshaller::fromString(const std::string& s,AddCommand_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddCommand_responseMarshaller::toString(const AddCommand_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddCommand_responseMarshaller::checkIntegrityConst(const AddCommand_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value AddCommand_responseMarshaller::toJSON(const AddCommand_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool AddCommand_responseMarshaller::fromJSON(const Json::Value& json,AddCommand_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_responseMarshaller.h
deleted file mode 100644
index 1354ed558..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddCommand_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ADDCOMMAND_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ADDCOMMAND_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddCommand_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct AddCommand_responseMarshaller
- {
- static bool checkIntegrity(AddCommand_response& e);
- static bool checkIntegrityConst(const AddCommand_response& e);
-
- static bool fromString(const std::string& s,AddCommand_response& e);
- static const std::string toString(const AddCommand_response& e);
-
- static bool fromJSON(const Json::Value& s,AddCommand_response& e);
- static Json::Value toJSON(const AddCommand_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_request.cpp
deleted file mode 100644
index f74a7a45f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_request.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_request.h"
-#include "AddSubMenu_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-AddSubMenu_request& AddSubMenu_request::operator =(const AddSubMenu_request& c)
-{
- menuID= c.menuID;
- position= c.position ? new unsigned int(c.position[0]) : 0;
- menuName= c.menuName;
-
- return *this;
-}
-
-
-AddSubMenu_request::~AddSubMenu_request(void)
-{
- if(position)
- delete position;
-}
-
-
-AddSubMenu_request::AddSubMenu_request(const AddSubMenu_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool AddSubMenu_request::checkIntegrity(void)
-{
- return AddSubMenu_requestMarshaller::checkIntegrity(*this);
-}
-
-
-AddSubMenu_request::AddSubMenu_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- position(0)
-{
-}
-
-
-
-bool AddSubMenu_request::set_menuID(unsigned int menuID_)
-{
- if(menuID_>2000000000) return false;
- menuID=menuID_;
- return true;
-}
-
-bool AddSubMenu_request::set_position(unsigned int position_)
-{
- if(position_>1000) return false;
- delete position;
- position=0;
-
- position=new unsigned int(position_);
- return true;
-}
-
-void AddSubMenu_request::reset_position(void)
-{
- if(position)
- delete position;
- position=0;
-}
-
-bool AddSubMenu_request::set_menuName(const std::string& menuName_)
-{
- if(menuName_.length()>500) return false;
- menuName=menuName_;
- return true;
-}
-
-
-
-
-unsigned int AddSubMenu_request::get_menuID(void) const
-{
- return menuID;
-}
-
-const unsigned int* AddSubMenu_request::get_position(void) const
-{
- return position;
-}
-
-const std::string& AddSubMenu_request::get_menuName(void) const
-{
- return menuName;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_requestMarshaller.cpp
deleted file mode 100644
index be12c3c34..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_requestMarshaller.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_request.h"
-
-
-#include "AddSubMenu_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool AddSubMenu_requestMarshaller::checkIntegrity(AddSubMenu_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddSubMenu_requestMarshaller::fromString(const std::string& s,AddSubMenu_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddSubMenu_requestMarshaller::toString(const AddSubMenu_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddSubMenu_requestMarshaller::checkIntegrityConst(const AddSubMenu_request& s)
-{
- if(s.menuID>2000000000) return false;
- if(s.position && *s.position>1000) return false;
- if(s.menuName.length()>500) return false;
- return true;
-}
-
-Json::Value AddSubMenu_requestMarshaller::toJSON(const AddSubMenu_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["menuID"]=Json::Value(e.menuID);
-
- if(e.position)
- json["position"]=Json::Value(*e.position);
-
- json["menuName"]=Json::Value(e.menuName);
-
- return json;
-}
-
-
-bool AddSubMenu_requestMarshaller::fromJSON(const Json::Value& json,AddSubMenu_request& c)
-{
- if(c.position) delete c.position;
- c.position=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("menuID")) return false;
- {
- const Json::Value& j=json["menuID"];
- if(!j.isInt()) return false;
- c.menuID=j.asInt();
- }
- if(json.isMember("position"))
- {
- const Json::Value& j=json["position"];
- if(!j.isInt()) return false;
- c.position=new unsigned int(j.asInt());
- }
- if(!json.isMember("menuName")) return false;
- {
- const Json::Value& j=json["menuName"];
- if(!j.isString()) return false;
- c.menuName=j.asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_requestMarshaller.h
deleted file mode 100644
index be0cb7608..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ADDSUBMENU_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ADDSUBMENU_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct AddSubMenu_requestMarshaller
- {
- static bool checkIntegrity(AddSubMenu_request& e);
- static bool checkIntegrityConst(const AddSubMenu_request& e);
-
- static bool fromString(const std::string& s,AddSubMenu_request& e);
- static const std::string toString(const AddSubMenu_request& e);
-
- static bool fromJSON(const Json::Value& s,AddSubMenu_request& e);
- static Json::Value toJSON(const AddSubMenu_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_response.cpp
deleted file mode 100644
index 560b0727d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_response.h"
-#include "AddSubMenu_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-AddSubMenu_response& AddSubMenu_response::operator =(const AddSubMenu_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-AddSubMenu_response::~AddSubMenu_response(void)
-{}
-
-AddSubMenu_response::AddSubMenu_response(const AddSubMenu_response& c)
-{
- *this = c;
-}
-
-
-bool AddSubMenu_response::checkIntegrity(void)
-{
- return AddSubMenu_responseMarshaller::checkIntegrity(*this);
-}
-
-AddSubMenu_response::AddSubMenu_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_responseMarshaller.cpp
deleted file mode 100644
index ea75481ca..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_response.h"
-#include "ResultMarshaller.h"
-
-#include "AddSubMenu_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool AddSubMenu_responseMarshaller::checkIntegrity(AddSubMenu_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AddSubMenu_responseMarshaller::fromString(const std::string& s,AddSubMenu_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AddSubMenu_responseMarshaller::toString(const AddSubMenu_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AddSubMenu_responseMarshaller::checkIntegrityConst(const AddSubMenu_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value AddSubMenu_responseMarshaller::toJSON(const AddSubMenu_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool AddSubMenu_responseMarshaller::fromJSON(const Json::Value& json,AddSubMenu_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_responseMarshaller.h
deleted file mode 100644
index ae04a3d02..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AddSubMenu_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ADDSUBMENU_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ADDSUBMENU_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct AddSubMenu_responseMarshaller
- {
- static bool checkIntegrity(AddSubMenu_response& e);
- static bool checkIntegrityConst(const AddSubMenu_response& e);
-
- static bool fromString(const std::string& s,AddSubMenu_response& e);
- static const std::string toString(const AddSubMenu_response& e);
-
- static bool fromJSON(const Json::Value& s,AddSubMenu_response& e);
- static Json::Value toJSON(const AddSubMenu_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_request.cpp
deleted file mode 100644
index bc4955ad9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_request.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_request.h"
-#include "AlertManeuver_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "SoftButtonMarshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-AlertManeuver_request::~AlertManeuver_request(void)
-{
-}
-
-
-AlertManeuver_request::AlertManeuver_request(const AlertManeuver_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool AlertManeuver_request::checkIntegrity(void)
-{
- return AlertManeuver_requestMarshaller::checkIntegrity(*this);
-}
-
-
-AlertManeuver_request::AlertManeuver_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool AlertManeuver_request::set_ttsChunks(const std::vector<TTSChunk>& ttsChunks_)
-{
- unsigned int i=ttsChunks_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(ttsChunks_[i])) return false;
- }
- ttsChunks=ttsChunks_;
- return true;
-}
-
-bool AlertManeuver_request::set_softButtons(const std::vector<SoftButton>& softButtons_)
-{
- unsigned int i=softButtons_.size();
- if(i>3 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(softButtons_[i])) return false;
- }
- softButtons=softButtons_;
- return true;
-}
-
-
-
-
-const std::vector<TTSChunk>& AlertManeuver_request::get_ttsChunks(void) const
-{
- return ttsChunks;
-}
-
-const std::vector<SoftButton>& AlertManeuver_request::get_softButtons(void) const
-{
- return softButtons;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_requestMarshaller.cpp
deleted file mode 100644
index 55cf7e96b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_requestMarshaller.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_request.h"
-#include "SoftButtonMarshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#include "AlertManeuver_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool AlertManeuver_requestMarshaller::checkIntegrity(AlertManeuver_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AlertManeuver_requestMarshaller::fromString(const std::string& s,AlertManeuver_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AlertManeuver_requestMarshaller::toString(const AlertManeuver_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AlertManeuver_requestMarshaller::checkIntegrityConst(const AlertManeuver_request& s)
-{
- {
- unsigned int i=s.ttsChunks.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.ttsChunks[i])) return false;
- }
- }
- {
- unsigned int i=s.softButtons.size();
- if(i>3 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(s.softButtons[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value AlertManeuver_requestMarshaller::toJSON(const AlertManeuver_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["ttsChunks"]=Json::Value(Json::arrayValue);
- json["ttsChunks"].resize(e.ttsChunks.size());
- for(unsigned int i=0;i<e.ttsChunks.size();i++)
- json["ttsChunks"][i]=TTSChunkMarshaller::toJSON(e.ttsChunks[i]);
-
- json["softButtons"]=Json::Value(Json::arrayValue);
- json["softButtons"].resize(e.softButtons.size());
- for(unsigned int i=0;i<e.softButtons.size();i++)
- json["softButtons"][i]=SoftButtonMarshaller::toJSON(e.softButtons[i]);
-
- return json;
-}
-
-
-bool AlertManeuver_requestMarshaller::fromJSON(const Json::Value& json,AlertManeuver_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("ttsChunks")) return false;
- {
- const Json::Value& j=json["ttsChunks"];
- if(!j.isArray()) return false;
- c.ttsChunks.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.ttsChunks[i]=t;
- }
-
- }
- if(!json.isMember("softButtons")) return false;
- {
- const Json::Value& j=json["softButtons"];
- if(!j.isArray()) return false;
- c.softButtons.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- SoftButton t;
- if(!SoftButtonMarshaller::fromJSON(j[i],t))
- return false;
- c.softButtons[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_requestMarshaller.h
deleted file mode 100644
index f4427ea0b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ALERTMANEUVER_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ALERTMANEUVER_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct AlertManeuver_requestMarshaller
- {
- static bool checkIntegrity(AlertManeuver_request& e);
- static bool checkIntegrityConst(const AlertManeuver_request& e);
-
- static bool fromString(const std::string& s,AlertManeuver_request& e);
- static const std::string toString(const AlertManeuver_request& e);
-
- static bool fromJSON(const Json::Value& s,AlertManeuver_request& e);
- static Json::Value toJSON(const AlertManeuver_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_response.cpp
deleted file mode 100644
index b3483e233..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_response.h"
-#include "AlertManeuver_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-AlertManeuver_response& AlertManeuver_response::operator =(const AlertManeuver_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-AlertManeuver_response::~AlertManeuver_response(void)
-{}
-
-
-AlertManeuver_response::AlertManeuver_response(const AlertManeuver_response& c)
-{
- *this = c;
-}
-
-bool AlertManeuver_response::checkIntegrity(void)
-{
- return AlertManeuver_responseMarshaller::checkIntegrity(*this);
-}
-
-AlertManeuver_response::AlertManeuver_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_responseMarshaller.cpp
deleted file mode 100644
index 98ad0a837..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_response.h"
-#include "ResultMarshaller.h"
-
-#include "AlertManeuver_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool AlertManeuver_responseMarshaller::checkIntegrity(AlertManeuver_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool AlertManeuver_responseMarshaller::fromString(const std::string& s,AlertManeuver_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string AlertManeuver_responseMarshaller::toString(const AlertManeuver_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool AlertManeuver_responseMarshaller::checkIntegrityConst(const AlertManeuver_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value AlertManeuver_responseMarshaller::toJSON(const AlertManeuver_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool AlertManeuver_responseMarshaller::fromJSON(const Json::Value& json,AlertManeuver_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_responseMarshaller.h
deleted file mode 100644
index 36bfe0104..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AlertManeuver_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ALERTMANEUVER_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ALERTMANEUVER_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct AlertManeuver_responseMarshaller
- {
- static bool checkIntegrity(AlertManeuver_response& e);
- static bool checkIntegrityConst(const AlertManeuver_response& e);
-
- static bool fromString(const std::string& s,AlertManeuver_response& e);
- static const std::string toString(const AlertManeuver_response& e);
-
- static bool fromJSON(const Json::Value& s,AlertManeuver_response& e);
- static Json::Value toJSON(const AlertManeuver_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_request.cpp
deleted file mode 100644
index a8fd50361..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_request.cpp
+++ /dev/null
@@ -1,276 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Alert_request.h"
-#include "Alert_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "SoftButtonMarshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-Alert_request& Alert_request::operator =(const Alert_request& c)
-{
- alertText1= c.alertText1 ? new std::string(c.alertText1[0]) : 0;
- alertText2= c.alertText2 ? new std::string(c.alertText2[0]) : 0;
- alertText3= c.alertText3 ? new std::string(c.alertText3[0]) : 0;
- ttsChunks= c.ttsChunks ? new std::vector<TTSChunk>(c.ttsChunks[0]) : 0;
- duration= c.duration ? new unsigned int(c.duration[0]) : 0;
- playTone= c.playTone ? new bool(c.playTone[0]) : 0;
- softButtons= c.softButtons ? new std::vector<SoftButton>(c.softButtons[0]) : 0;
-
- return *this;
-}
-
-
-Alert_request::~Alert_request(void)
-{
- if(alertText1)
- delete alertText1;
- if(alertText2)
- delete alertText2;
- if(alertText3)
- delete alertText3;
- if(ttsChunks)
- delete ttsChunks;
- if(duration)
- delete duration;
- if(playTone)
- delete playTone;
- if(softButtons)
- delete softButtons;
-}
-
-
-Alert_request::Alert_request(const Alert_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool Alert_request::checkIntegrity(void)
-{
- return Alert_requestMarshaller::checkIntegrity(*this);
-}
-
-
-Alert_request::Alert_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- alertText1(0),
- alertText2(0),
- alertText3(0),
- ttsChunks(0),
- duration(0),
- playTone(0),
- softButtons(0)
-{
-}
-
-
-
-bool Alert_request::set_alertText1(const std::string& alertText1_)
-{
- if(alertText1_.length()>500) return false;
- delete alertText1;
- alertText1=0;
-
- alertText1=new std::string(alertText1_);
- return true;
-}
-
-void Alert_request::reset_alertText1(void)
-{
- if(alertText1)
- delete alertText1;
- alertText1=0;
-}
-
-bool Alert_request::set_alertText2(const std::string& alertText2_)
-{
- if(alertText2_.length()>500) return false;
- delete alertText2;
- alertText2=0;
-
- alertText2=new std::string(alertText2_);
- return true;
-}
-
-void Alert_request::reset_alertText2(void)
-{
- if(alertText2)
- delete alertText2;
- alertText2=0;
-}
-
-bool Alert_request::set_alertText3(const std::string& alertText3_)
-{
- if(alertText3_.length()>500) return false;
- delete alertText3;
- alertText3=0;
-
- alertText3=new std::string(alertText3_);
- return true;
-}
-
-void Alert_request::reset_alertText3(void)
-{
- if(alertText3)
- delete alertText3;
- alertText3=0;
-}
-
-bool Alert_request::set_ttsChunks(const std::vector<TTSChunk>& ttsChunks_)
-{
- unsigned int i=ttsChunks_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(ttsChunks_[i])) return false;
- }
- delete ttsChunks;
- ttsChunks=0;
-
- ttsChunks=new std::vector<TTSChunk>(ttsChunks_);
- return true;
-}
-
-void Alert_request::reset_ttsChunks(void)
-{
- if(ttsChunks)
- delete ttsChunks;
- ttsChunks=0;
-}
-
-bool Alert_request::set_duration(unsigned int duration_)
-{
- if(duration_>10000) return false;
- if(duration_<3000) return false;
- delete duration;
- duration=0;
-
- duration=new unsigned int(duration_);
- return true;
-}
-
-void Alert_request::reset_duration(void)
-{
- if(duration)
- delete duration;
- duration=0;
-}
-
-bool Alert_request::set_playTone(bool playTone_)
-{
- delete playTone;
- playTone=0;
-
- playTone=new bool(playTone_);
- return true;
-}
-
-void Alert_request::reset_playTone(void)
-{
- if(playTone)
- delete playTone;
- playTone=0;
-}
-
-bool Alert_request::set_softButtons(const std::vector<SoftButton>& softButtons_)
-{
- unsigned int i=softButtons_.size();
- if(i>4 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(softButtons_[i])) return false;
- }
- delete softButtons;
- softButtons=0;
-
- softButtons=new std::vector<SoftButton>(softButtons_);
- return true;
-}
-
-void Alert_request::reset_softButtons(void)
-{
- if(softButtons)
- delete softButtons;
- softButtons=0;
-}
-
-
-
-
-const std::string* Alert_request::get_alertText1(void) const
-{
- return alertText1;
-}
-
-const std::string* Alert_request::get_alertText2(void) const
-{
- return alertText2;
-}
-
-const std::string* Alert_request::get_alertText3(void) const
-{
- return alertText3;
-}
-
-const std::vector<TTSChunk>* Alert_request::get_ttsChunks(void) const
-{
- return ttsChunks;
-}
-
-const unsigned int* Alert_request::get_duration(void) const
-{
- return duration;
-}
-
-const bool* Alert_request::get_playTone(void) const
-{
- return playTone;
-}
-
-const std::vector<SoftButton>* Alert_request::get_softButtons(void) const
-{
- return softButtons;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_requestMarshaller.cpp
deleted file mode 100644
index 55f0f7372..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_requestMarshaller.cpp
+++ /dev/null
@@ -1,248 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Alert_request.h"
-#include "SoftButtonMarshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#include "Alert_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool Alert_requestMarshaller::checkIntegrity(Alert_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Alert_requestMarshaller::fromString(const std::string& s,Alert_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Alert_requestMarshaller::toString(const Alert_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Alert_requestMarshaller::checkIntegrityConst(const Alert_request& s)
-{
- if(s.alertText1 && s.alertText1->length()>500) return false;
- if(s.alertText2 && s.alertText2->length()>500) return false;
- if(s.alertText3 && s.alertText3->length()>500) return false;
- if(s.ttsChunks)
- {
- unsigned int i=s.ttsChunks[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.ttsChunks[0][i])) return false;
- }
- }
- if(s.duration && *s.duration>10000) return false;
- if(s.duration && *s.duration<3000) return false;
- if(s.softButtons)
- {
- unsigned int i=s.softButtons[0].size();
- if(i>4 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(s.softButtons[0][i])) return false;
- }
- }
- return true;
-}
-
-Json::Value Alert_requestMarshaller::toJSON(const Alert_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- if(e.alertText1)
- json["alertText1"]=Json::Value(*e.alertText1);
-
- if(e.alertText2)
- json["alertText2"]=Json::Value(*e.alertText2);
-
- if(e.alertText3)
- json["alertText3"]=Json::Value(*e.alertText3);
-
- if(e.ttsChunks)
- {
- unsigned int sz=e.ttsChunks->size();
- json["ttsChunks"]=Json::Value(Json::arrayValue);
- json["ttsChunks"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["ttsChunks"][i]=TTSChunkMarshaller::toJSON(e.ttsChunks[0][i]);
- }
-
- if(e.duration)
- json["duration"]=Json::Value(*e.duration);
-
- if(e.playTone)
- json["playTone"]=Json::Value(*e.playTone);
-
- if(e.softButtons)
- {
- unsigned int sz=e.softButtons->size();
- json["softButtons"]=Json::Value(Json::arrayValue);
- json["softButtons"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["softButtons"][i]=SoftButtonMarshaller::toJSON(e.softButtons[0][i]);
- }
-
- return json;
-}
-
-
-bool Alert_requestMarshaller::fromJSON(const Json::Value& json,Alert_request& c)
-{
- if(c.alertText1) delete c.alertText1;
- c.alertText1=0;
-
- if(c.alertText2) delete c.alertText2;
- c.alertText2=0;
-
- if(c.alertText3) delete c.alertText3;
- c.alertText3=0;
-
- if(c.ttsChunks) delete c.ttsChunks;
- c.ttsChunks=0;
-
- if(c.duration) delete c.duration;
- c.duration=0;
-
- if(c.playTone) delete c.playTone;
- c.playTone=0;
-
- if(c.softButtons) delete c.softButtons;
- c.softButtons=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(json.isMember("alertText1"))
- {
- const Json::Value& j=json["alertText1"];
- if(!j.isString()) return false;
- c.alertText1=new std::string(j.asString());
- }
- if(json.isMember("alertText2"))
- {
- const Json::Value& j=json["alertText2"];
- if(!j.isString()) return false;
- c.alertText2=new std::string(j.asString());
- }
- if(json.isMember("alertText3"))
- {
- const Json::Value& j=json["alertText3"];
- if(!j.isString()) return false;
- c.alertText3=new std::string(j.asString());
- }
- if(json.isMember("ttsChunks"))
- {
- const Json::Value& j=json["ttsChunks"];
- if(!j.isArray()) return false;
- c.ttsChunks=new std::vector<TTSChunk>();
- c.ttsChunks->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.ttsChunks[0][i]=t;
- }
-
- }
- if(json.isMember("duration"))
- {
- const Json::Value& j=json["duration"];
- if(!j.isInt()) return false;
- c.duration=new unsigned int(j.asInt());
- }
- if(json.isMember("playTone"))
- {
- const Json::Value& j=json["playTone"];
- if(!j.isBool()) return false;
- c.playTone=new bool(j.asBool());
- }
- if(json.isMember("softButtons"))
- {
- const Json::Value& j=json["softButtons"];
- if(!j.isArray()) return false;
- c.softButtons=new std::vector<SoftButton>();
- c.softButtons->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- SoftButton t;
- if(!SoftButtonMarshaller::fromJSON(j[i],t))
- return false;
- c.softButtons[0][i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_requestMarshaller.h
deleted file mode 100644
index f70f90e51..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ALERT_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ALERT_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Alert_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct Alert_requestMarshaller
- {
- static bool checkIntegrity(Alert_request& e);
- static bool checkIntegrityConst(const Alert_request& e);
-
- static bool fromString(const std::string& s,Alert_request& e);
- static const std::string toString(const Alert_request& e);
-
- static bool fromJSON(const Json::Value& s,Alert_request& e);
- static Json::Value toJSON(const Alert_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_response.cpp
deleted file mode 100644
index 95d887510..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_response.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Alert_response.h"
-#include "Alert_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-Alert_response& Alert_response::operator =(const Alert_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
- tryAgainTime = c.tryAgainTime;
-
- return *this;
-}
-
-
-Alert_response::~Alert_response(void)
-{}
-
-Alert_response::Alert_response(const Alert_response& c)
-{
- *this = c;
-}
-
-bool Alert_response::checkIntegrity(void)
-{
- return Alert_responseMarshaller::checkIntegrity(*this);
-}
-
-Alert_response::Alert_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
- , tryAgainTime(0)
-{}
-
-bool Alert_response::set_tryAgainTime(unsigned int tryAgainTime_)
-{
- if (tryAgainTime_ > 2000000000)
- {
- return false;
- }
-
- tryAgainTime = tryAgainTime_;
- return true;
-}
-
-unsigned int Alert_response::get_tryAgainTime(void) const
-{
- return tryAgainTime;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_responseMarshaller.cpp
deleted file mode 100644
index 47e550eee..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_responseMarshaller.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Alert_response.h"
-#include "ResultMarshaller.h"
-
-#include "Alert_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool Alert_responseMarshaller::checkIntegrity(Alert_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Alert_responseMarshaller::fromString(const std::string& s,Alert_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Alert_responseMarshaller::toString(const Alert_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Alert_responseMarshaller::checkIntegrityConst(const Alert_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- if(s.tryAgainTime>2000000000) return false;
- return true;
-}
-
-Json::Value Alert_responseMarshaller::toJSON(const Alert_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- json["tryAgainTime"]=Json::Value(e.tryAgainTime);
-
- return json;
-}
-
-
-bool Alert_responseMarshaller::fromJSON(const Json::Value& json,Alert_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
- if(!json.isMember("tryAgainTime")) return false;
- {
- const Json::Value& j=json["tryAgainTime"];
- if(!j.isInt()) return false;
- c.tryAgainTime=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_responseMarshaller.h
deleted file mode 100644
index 8aa098fa3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Alert_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ALERT_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ALERT_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Alert_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct Alert_responseMarshaller
- {
- static bool checkIntegrity(Alert_response& e);
- static bool checkIntegrityConst(const Alert_response& e);
-
- static bool fromString(const std::string& s,Alert_response& e);
- static const std::string toString(const Alert_response& e);
-
- static bool fromJSON(const Json::Value& s,Alert_response& e);
- static Json::Value toJSON(const Alert_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.cpp
deleted file mode 100644
index 57392d18e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/AppInterfaceUnregisteredReason.h"
-#include "AppInterfaceUnregisteredReasonMarshaller.h"
-#include "AppInterfaceUnregisteredReasonMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const AppInterfaceUnregisteredReason::AppInterfaceUnregisteredReasonInternal AppInterfaceUnregisteredReasonMarshaller::getIndex(const char* s)
-{
- if(!s)
- return AppInterfaceUnregisteredReason::INVALID_ENUM;
- const struct PerfectHashTable* p=AppInterfaceUnregisteredReason_intHash::getPointer(s,strlen(s));
- return p ? static_cast<AppInterfaceUnregisteredReason::AppInterfaceUnregisteredReasonInternal>(p->idx) : AppInterfaceUnregisteredReason::INVALID_ENUM;
-}
-
-
-bool AppInterfaceUnregisteredReasonMarshaller::fromJSON(const Json::Value& s,AppInterfaceUnregisteredReason& e)
-{
- e.mInternal=AppInterfaceUnregisteredReason::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=AppInterfaceUnregisteredReason::INVALID_ENUM);
-}
-
-
-Json::Value AppInterfaceUnregisteredReasonMarshaller::toJSON(const AppInterfaceUnregisteredReason& e)
-{
- if(e.mInternal==AppInterfaceUnregisteredReason::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool AppInterfaceUnregisteredReasonMarshaller::fromString(const std::string& s,AppInterfaceUnregisteredReason& e)
-{
- e.mInternal=AppInterfaceUnregisteredReason::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string AppInterfaceUnregisteredReasonMarshaller::toString(const AppInterfaceUnregisteredReason& e)
-{
- Json::FastWriter writer;
- return e.mInternal==AppInterfaceUnregisteredReason::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable AppInterfaceUnregisteredReasonMarshaller::mHashTable[11]=
-{
- {"USER_EXIT",0},
- {"IGNITION_OFF",1},
- {"BLUETOOTH_OFF",2},
- {"USB_DISCONNECTED",3},
- {"REQUEST_WHILE_IN_NONE_HMI_LEVEL",4},
- {"TOO_MANY_REQUESTS",5},
- {"DRIVER_DISTRACTION_VIOLATION",6},
- {"LANGUAGE_CHANGE",7},
- {"MASTER_RESET",8},
- {"FACTORY_DEFAULTS",9},
- {"APP_UNAUTHORIZED",10}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp
deleted file mode 100644
index 773da9a20..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp
+++ /dev/null
@@ -1,27 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name AppInterfaceUnregisteredReason_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-USER_EXIT,0
-IGNITION_OFF,1
-BLUETOOTH_OFF,2
-USB_DISCONNECTED,3
-REQUEST_WHILE_IN_NONE_HMI_LEVEL,4
-TOO_MANY_REQUESTS,5
-DRIVER_DISTRACTION_VIOLATION,6
-LANGUAGE_CHANGE,7
-MASTER_RESET,8
-FACTORY_DEFAULTS,9
-APP_UNAUTHORIZED,10
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.h
deleted file mode 100644
index 8c3976bed..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_APPINTERFACEUNREGISTEREDREASONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_APPINTERFACEUNREGISTEREDREASONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AppInterfaceUnregisteredReason.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for AppInterfaceUnregisteredReason
-
- class AppInterfaceUnregisteredReasonMarshaller
- {
- public:
-
- static std::string toName(const AppInterfaceUnregisteredReason& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(AppInterfaceUnregisteredReason& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=AppInterfaceUnregisteredReason::INVALID_ENUM;
- }
-
- static bool checkIntegrity(AppInterfaceUnregisteredReason& e) { return e.mInternal!=AppInterfaceUnregisteredReason::INVALID_ENUM; }
- static bool checkIntegrityConst(const AppInterfaceUnregisteredReason& e) { return e.mInternal!=AppInterfaceUnregisteredReason::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,AppInterfaceUnregisteredReason& e);
- static const std::string toString(const AppInterfaceUnregisteredReason& e);
-
- static bool fromJSON(const Json::Value& s,AppInterfaceUnregisteredReason& e);
- static Json::Value toJSON(const AppInterfaceUnregisteredReason& e);
-
- static const char* getName(AppInterfaceUnregisteredReason::AppInterfaceUnregisteredReasonInternal e)
- {
- return (e>=0 && e<11) ? mHashTable[e].name : NULL;
- }
-
- static const AppInterfaceUnregisteredReason::AppInterfaceUnregisteredReasonInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[11];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.inc
deleted file mode 100644
index 591e51a9e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.inc
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp */
-/* Computed positions: -k'1' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 11
-#define MIN_WORD_LENGTH 9
-#define MAX_WORD_LENGTH 31
-#define MIN_HASH_VALUE 9
-#define MAX_HASH_VALUE 31
-/* maximum key range = 23, duplicates = 0 */
-
-class AppInterfaceUnregisteredReason_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-AppInterfaceUnregisteredReason_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 10, 0, 32, 0, 32,
- 5, 32, 32, 10, 32, 32, 0, 0, 32, 32,
- 32, 32, 0, 32, 0, 0, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32
- };
- return len + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-AppInterfaceUnregisteredReason_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 13,
- 0, 15, 16, 17, 0, 0, 0, 16, 12, 0, 0, 0, 16, 0,
- 28, 0, 0, 31
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"USER_EXIT",0},
- {""}, {""},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"MASTER_RESET",8},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"BLUETOOTH_OFF",2},
- {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"LANGUAGE_CHANGE",7},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"USB_DISCONNECTED",3},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"TOO_MANY_REQUESTS",5},
- {""}, {""}, {""},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"FACTORY_DEFAULTS",9},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"IGNITION_OFF",1},
- {""}, {""}, {""},
-#line 27 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"APP_UNAUTHORIZED",10},
- {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"DRIVER_DISTRACTION_VIOLATION",6},
- {""}, {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppInterfaceUnregisteredReasonMarshaller.gp"
- {"REQUEST_WHILE_IN_NONE_HMI_LEVEL",4}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.cpp
deleted file mode 100644
index 6171f6330..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/AppType.h"
-#include "AppTypeMarshaller.h"
-#include "AppTypeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const AppType::AppTypeInternal AppTypeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return AppType::INVALID_ENUM;
- const struct PerfectHashTable* p=AppType_intHash::getPointer(s,strlen(s));
- return p ? static_cast<AppType::AppTypeInternal>(p->idx) : AppType::INVALID_ENUM;
-}
-
-
-bool AppTypeMarshaller::fromJSON(const Json::Value& s,AppType& e)
-{
- e.mInternal=AppType::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=AppType::INVALID_ENUM);
-}
-
-
-Json::Value AppTypeMarshaller::toJSON(const AppType& e)
-{
- if(e.mInternal==AppType::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool AppTypeMarshaller::fromString(const std::string& s,AppType& e)
-{
- e.mInternal=AppType::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string AppTypeMarshaller::toString(const AppType& e)
-{
- Json::FastWriter writer;
- return e.mInternal==AppType::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable AppTypeMarshaller::mHashTable[10]=
-{
- {"DEFAULT",0},
- {"COMMUNICATION",1},
- {"MEDIA",2},
- {"MESSAGING",3},
- {"NAVIGATION",4},
- {"INFORMATION",5},
- {"SOCIAL",6},
- {"BACKGROUND_PROCESS",7},
- {"TESTING",8},
- {"SYSTEM",9}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp
deleted file mode 100644
index 84f7cc1c3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp
+++ /dev/null
@@ -1,26 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name AppType_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-DEFAULT,0
-COMMUNICATION,1
-MEDIA,2
-MESSAGING,3
-NAVIGATION,4
-INFORMATION,5
-SOCIAL,6
-BACKGROUND_PROCESS,7
-TESTING,8
-SYSTEM,9
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.h
deleted file mode 100644
index 7c5f8c31c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_APPTYPEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_APPTYPEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AppType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for AppType
-
- class AppTypeMarshaller
- {
- public:
-
- static std::string toName(const AppType& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(AppType& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=AppType::INVALID_ENUM;
- }
-
- static bool checkIntegrity(AppType& e) { return e.mInternal!=AppType::INVALID_ENUM; }
- static bool checkIntegrityConst(const AppType& e) { return e.mInternal!=AppType::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,AppType& e);
- static const std::string toString(const AppType& e);
-
- static bool fromJSON(const Json::Value& s,AppType& e);
- static Json::Value toJSON(const AppType& e);
-
- static const char* getName(AppType::AppTypeInternal e)
- {
- return (e>=0 && e<10) ? mHashTable[e].name : NULL;
- }
-
- static const AppType::AppTypeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[10];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.inc
deleted file mode 100644
index 6aa9c19b1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.inc
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp */
-/* Computed positions: -k'3' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 10
-#define MIN_WORD_LENGTH 5
-#define MAX_WORD_LENGTH 18
-#define MIN_HASH_VALUE 5
-#define MAX_HASH_VALUE 23
-/* maximum key range = 19, duplicates = 0 */
-
-class AppType_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-AppType_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 5, 0, 24,
- 5, 24, 24, 24, 24, 24, 24, 0, 24, 24,
- 24, 24, 24, 0, 24, 24, 0, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
- 24, 24, 24, 24, 24, 24
- };
- return len + asso_values[(unsigned char)str[2]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-AppType_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 5, 6, 7, 0, 9, 10, 6, 7, 13,
- 0, 0, 11, 0, 0, 0, 0, 0, 0, 18
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp"
- {"MEDIA",2},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp"
- {"SYSTEM",9},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp"
- {"TESTING",8},
- {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp"
- {"MESSAGING",3},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp"
- {"NAVIGATION",4},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp"
- {"SOCIAL",6},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp"
- {"DEFAULT",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp"
- {"COMMUNICATION",1},
- {""}, {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp"
- {"INFORMATION",5},
- {""}, {""}, {""}, {""}, {""}, {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AppTypeMarshaller.gp"
- {"BACKGROUND_PROCESS",7}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.cpp
deleted file mode 100644
index d52185f72..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/AudioCaptureQuality.h"
-#include "AudioCaptureQualityMarshaller.h"
-#include "AudioCaptureQualityMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const AudioCaptureQuality::AudioCaptureQualityInternal AudioCaptureQualityMarshaller::getIndex(const char* s)
-{
- if(!s)
- return AudioCaptureQuality::INVALID_ENUM;
- const struct PerfectHashTable* p=AudioCaptureQualityV2_intHash::getPointer(s,strlen(s));
- return p ? static_cast<AudioCaptureQuality::AudioCaptureQualityInternal>(p->idx) : AudioCaptureQuality::INVALID_ENUM;
-}
-
-
-bool AudioCaptureQualityMarshaller::fromJSON(const Json::Value& s,AudioCaptureQuality& e)
-{
- e.mInternal=AudioCaptureQuality::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=AudioCaptureQuality::INVALID_ENUM);
-}
-
-
-Json::Value AudioCaptureQualityMarshaller::toJSON(const AudioCaptureQuality& e)
-{
- if(e.mInternal==AudioCaptureQuality::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool AudioCaptureQualityMarshaller::fromString(const std::string& s,AudioCaptureQuality& e)
-{
- e.mInternal=AudioCaptureQuality::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string AudioCaptureQualityMarshaller::toString(const AudioCaptureQuality& e)
-{
- Json::FastWriter writer;
- return e.mInternal==AudioCaptureQuality::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable AudioCaptureQualityMarshaller::mHashTable[2]=
-{
- {"8_BIT",0},
- {"16_BIT",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.gp
deleted file mode 100644
index 1e1a7c7b4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name AudioCaptureQualityV2_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-8_BIT,0
-16_BIT,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.h
deleted file mode 100644
index ee803355c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_AUDIOCAPTUREQUALITYMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_AUDIOCAPTUREQUALITYMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AudioCaptureQuality.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for AudioCaptureQuality
-
- class AudioCaptureQualityMarshaller
- {
- public:
-
- static std::string toName(const AudioCaptureQuality& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(AudioCaptureQuality& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=AudioCaptureQuality::INVALID_ENUM;
- }
-
- static bool checkIntegrity(AudioCaptureQuality& e) { return e.mInternal!=AudioCaptureQuality::INVALID_ENUM; }
- static bool checkIntegrityConst(const AudioCaptureQuality& e) { return e.mInternal!=AudioCaptureQuality::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,AudioCaptureQuality& e);
- static const std::string toString(const AudioCaptureQuality& e);
-
- static bool fromJSON(const Json::Value& s,AudioCaptureQuality& e);
- static Json::Value toJSON(const AudioCaptureQuality& e);
-
- static const char* getName(AudioCaptureQuality::AudioCaptureQualityInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const AudioCaptureQuality::AudioCaptureQualityInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.inc
deleted file mode 100644
index 2a9f3e04f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.inc
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 5
-#define MAX_WORD_LENGTH 6
-#define MIN_HASH_VALUE 5
-#define MAX_HASH_VALUE 6
-/* maximum key range = 2, duplicates = 0 */
-
-class AudioCaptureQualityV2_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-AudioCaptureQualityV2_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-AudioCaptureQualityV2_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 5, 6
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.gp"
- {"8_BIT",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioCaptureQualityMarshaller.gp"
- {"16_BIT",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.cpp
deleted file mode 100644
index 84c74723f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/AudioStreamingState.h"
-#include "AudioStreamingStateMarshaller.h"
-#include "AudioStreamingStateMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const AudioStreamingState::AudioStreamingStateInternal AudioStreamingStateMarshaller::getIndex(const char* s)
-{
- if(!s)
- return AudioStreamingState::INVALID_ENUM;
- const struct PerfectHashTable* p=AudioStreamingState_intHash::getPointer(s,strlen(s));
- return p ? static_cast<AudioStreamingState::AudioStreamingStateInternal>(p->idx) : AudioStreamingState::INVALID_ENUM;
-}
-
-
-bool AudioStreamingStateMarshaller::fromJSON(const Json::Value& s,AudioStreamingState& e)
-{
- e.mInternal=AudioStreamingState::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=AudioStreamingState::INVALID_ENUM);
-}
-
-
-Json::Value AudioStreamingStateMarshaller::toJSON(const AudioStreamingState& e)
-{
- if(e.mInternal==AudioStreamingState::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool AudioStreamingStateMarshaller::fromString(const std::string& s,AudioStreamingState& e)
-{
- e.mInternal=AudioStreamingState::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string AudioStreamingStateMarshaller::toString(const AudioStreamingState& e)
-{
- Json::FastWriter writer;
- return e.mInternal==AudioStreamingState::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable AudioStreamingStateMarshaller::mHashTable[3]=
-{
- {"AUDIBLE",0},
- {"NOT_AUDIBLE",1},
- {"ATTENUATED",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.gp
deleted file mode 100644
index 175b6a2f6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name AudioStreamingState_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-AUDIBLE,0
-ATTENUATED,2
-NOT_AUDIBLE,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.h
deleted file mode 100644
index c1db08d98..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_AUDIOSTREAMINGSTATEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_AUDIOSTREAMINGSTATEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AudioStreamingState.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for AudioStreamingState
-
- class AudioStreamingStateMarshaller
- {
- public:
-
- static std::string toName(const AudioStreamingState& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(AudioStreamingState& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=AudioStreamingState::INVALID_ENUM;
- }
-
- static bool checkIntegrity(AudioStreamingState& e) { return e.mInternal!=AudioStreamingState::INVALID_ENUM; }
- static bool checkIntegrityConst(const AudioStreamingState& e) { return e.mInternal!=AudioStreamingState::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,AudioStreamingState& e);
- static const std::string toString(const AudioStreamingState& e);
-
- static bool fromJSON(const Json::Value& s,AudioStreamingState& e);
- static Json::Value toJSON(const AudioStreamingState& e);
-
- static const char* getName(AudioStreamingState::AudioStreamingStateInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const AudioStreamingState::AudioStreamingStateInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.inc
deleted file mode 100644
index 0037e3852..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.inc
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 7
-#define MAX_WORD_LENGTH 11
-#define MIN_HASH_VALUE 7
-#define MAX_HASH_VALUE 11
-/* maximum key range = 5, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class AudioStreamingState_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-AudioStreamingState_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-AudioStreamingState_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 10, 11
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.gp"
- {"AUDIBLE",0},
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.gp"
- {"ATTENUATED",2},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioStreamingStateMarshaller.gp"
- {"NOT_AUDIBLE",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.cpp
deleted file mode 100644
index 5dc5f63d9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/AudioType.h"
-#include "AudioTypeMarshaller.h"
-#include "AudioTypeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const AudioType::AudioTypeInternal AudioTypeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return AudioType::INVALID_ENUM;
- const struct PerfectHashTable* p=AudioType_intHash::getPointer(s,strlen(s));
- return p ? static_cast<AudioType::AudioTypeInternal>(p->idx) : AudioType::INVALID_ENUM;
-}
-
-
-bool AudioTypeMarshaller::fromJSON(const Json::Value& s,AudioType& e)
-{
- e.mInternal=AudioType::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=AudioType::INVALID_ENUM);
-}
-
-
-Json::Value AudioTypeMarshaller::toJSON(const AudioType& e)
-{
- if(e.mInternal==AudioType::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool AudioTypeMarshaller::fromString(const std::string& s,AudioType& e)
-{
- e.mInternal=AudioType::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string AudioTypeMarshaller::toString(const AudioType& e)
-{
- Json::FastWriter writer;
- return e.mInternal==AudioType::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable AudioTypeMarshaller::mHashTable[1]=
-{
- {"PCM",0}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.gp
deleted file mode 100644
index e65f88028..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.gp
+++ /dev/null
@@ -1,17 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name AudioType_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-PCM,0
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.h
deleted file mode 100644
index c2859b36c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_AUDIOTYPEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_AUDIOTYPEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/AudioType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for AudioType
-
- class AudioTypeMarshaller
- {
- public:
-
- static std::string toName(const AudioType& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(AudioType& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=AudioType::INVALID_ENUM;
- }
-
- static bool checkIntegrity(AudioType& e) { return e.mInternal!=AudioType::INVALID_ENUM; }
- static bool checkIntegrityConst(const AudioType& e) { return e.mInternal!=AudioType::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,AudioType& e);
- static const std::string toString(const AudioType& e);
-
- static bool fromJSON(const Json::Value& s,AudioType& e);
- static Json::Value toJSON(const AudioType& e);
-
- static const char* getName(AudioType::AudioTypeInternal e)
- {
- return (e>=0 && e<1) ? mHashTable[e].name : NULL;
- }
-
- static const AudioType::AudioTypeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[1];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.inc
deleted file mode 100644
index d998476d0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.inc
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 1
-#define MIN_WORD_LENGTH 3
-#define MAX_WORD_LENGTH 3
-#define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 3
-/* maximum key range = 1, duplicates = 0 */
-
-class AudioType_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-AudioType_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-AudioType_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 3
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/AudioTypeMarshaller.gp"
- {"PCM",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilities.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilities.cpp
deleted file mode 100644
index 032b91ddd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilities.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonCapabilities.h"
-#include "ButtonCapabilitiesMarshaller.h"
-#include "ButtonNameMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-ButtonCapabilities::ButtonCapabilities(const ButtonCapabilities& c)
-{
- *this=c;
-}
-
-
-bool ButtonCapabilities::checkIntegrity(void)
-{
- return ButtonCapabilitiesMarshaller::checkIntegrity(*this);
-}
-
-
-ButtonCapabilities::ButtonCapabilities(void)
-{
-}
-
-
-
-bool ButtonCapabilities::set_longPressAvailable(bool longPressAvailable_)
-{
- longPressAvailable=longPressAvailable_;
- return true;
-}
-
-bool ButtonCapabilities::set_name(const ButtonName& name_)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(name_)) return false;
- name=name_;
- return true;
-}
-
-bool ButtonCapabilities::set_shortPressAvailable(bool shortPressAvailable_)
-{
- shortPressAvailable=shortPressAvailable_;
- return true;
-}
-
-bool ButtonCapabilities::set_upDownAvailable(bool upDownAvailable_)
-{
- upDownAvailable=upDownAvailable_;
- return true;
-}
-
-
-
-
-bool ButtonCapabilities::get_longPressAvailable(void) const
-{
- return longPressAvailable;
-}
-
-
-const ButtonName& ButtonCapabilities::get_name(void) const
-{
- return name;
-}
-
-
-bool ButtonCapabilities::get_shortPressAvailable(void) const
-{
- return shortPressAvailable;
-}
-
-
-bool ButtonCapabilities::get_upDownAvailable(void) const
-{
- return upDownAvailable;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilitiesMarshaller.cpp
deleted file mode 100644
index 3b6c4f1e6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonCapabilities.h"
-#include "ButtonNameMarshaller.h"
-
-#include "ButtonCapabilitiesMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ButtonCapabilitiesMarshaller::checkIntegrity(ButtonCapabilities& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ButtonCapabilitiesMarshaller::fromString(const std::string& s,ButtonCapabilities& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ButtonCapabilitiesMarshaller::toString(const ButtonCapabilities& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ButtonCapabilitiesMarshaller::checkIntegrityConst(const ButtonCapabilities& s)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(s.name)) return false;
- return true;
-}
-
-Json::Value ButtonCapabilitiesMarshaller::toJSON(const ButtonCapabilities& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["longPressAvailable"]=Json::Value(e.longPressAvailable);
-
- json["name"]=ButtonNameMarshaller::toJSON(e.name);
-
- json["shortPressAvailable"]=Json::Value(e.shortPressAvailable);
-
- json["upDownAvailable"]=Json::Value(e.upDownAvailable);
-
-
- return json;
-}
-
-
-bool ButtonCapabilitiesMarshaller::fromJSON(const Json::Value& json,ButtonCapabilities& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("longPressAvailable")) return false;
- {
- const Json::Value& j=json["longPressAvailable"];
- if(!j.isBool()) return false;
- c.longPressAvailable=j.asBool();
- }
- if(!json.isMember("name")) return false;
- {
- const Json::Value& j=json["name"];
- if(!ButtonNameMarshaller::fromJSON(j,c.name))
- return false;
- }
- if(!json.isMember("shortPressAvailable")) return false;
- {
- const Json::Value& j=json["shortPressAvailable"];
- if(!j.isBool()) return false;
- c.shortPressAvailable=j.asBool();
- }
- if(!json.isMember("upDownAvailable")) return false;
- {
- const Json::Value& j=json["upDownAvailable"];
- if(!j.isBool()) return false;
- c.upDownAvailable=j.asBool();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilitiesMarshaller.h
deleted file mode 100644
index aed736b62..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_BUTTONCAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_BUTTONCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ButtonCapabilitiesMarshaller
- {
- static bool checkIntegrity(ButtonCapabilities& e);
- static bool checkIntegrityConst(const ButtonCapabilities& e);
-
- static bool fromString(const std::string& s,ButtonCapabilities& e);
- static const std::string toString(const ButtonCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,ButtonCapabilities& e);
- static Json::Value toJSON(const ButtonCapabilities& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.cpp
deleted file mode 100644
index 164fb3e28..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonEventMode.h"
-#include "ButtonEventModeMarshaller.h"
-#include "ButtonEventModeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const ButtonEventMode::ButtonEventModeInternal ButtonEventModeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return ButtonEventMode::INVALID_ENUM;
- const struct PerfectHashTable* p=ButtonEventMode_intHash::getPointer(s,strlen(s));
- return p ? static_cast<ButtonEventMode::ButtonEventModeInternal>(p->idx) : ButtonEventMode::INVALID_ENUM;
-}
-
-
-bool ButtonEventModeMarshaller::fromJSON(const Json::Value& s,ButtonEventMode& e)
-{
- e.mInternal=ButtonEventMode::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=ButtonEventMode::INVALID_ENUM);
-}
-
-
-Json::Value ButtonEventModeMarshaller::toJSON(const ButtonEventMode& e)
-{
- if(e.mInternal==ButtonEventMode::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool ButtonEventModeMarshaller::fromString(const std::string& s,ButtonEventMode& e)
-{
- e.mInternal=ButtonEventMode::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string ButtonEventModeMarshaller::toString(const ButtonEventMode& e)
-{
- Json::FastWriter writer;
- return e.mInternal==ButtonEventMode::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable ButtonEventModeMarshaller::mHashTable[2]=
-{
- {"BUTTONUP",0},
- {"BUTTONDOWN",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.gp
deleted file mode 100644
index 4c9dd25f4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name ButtonEventMode_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-BUTTONUP,0
-BUTTONDOWN,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.h
deleted file mode 100644
index ff64b4be5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_BUTTONEVENTMODEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_BUTTONEVENTMODEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonEventMode.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for ButtonEventMode
-
- class ButtonEventModeMarshaller
- {
- public:
-
- static std::string toName(const ButtonEventMode& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(ButtonEventMode& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=ButtonEventMode::INVALID_ENUM;
- }
-
- static bool checkIntegrity(ButtonEventMode& e) { return e.mInternal!=ButtonEventMode::INVALID_ENUM; }
- static bool checkIntegrityConst(const ButtonEventMode& e) { return e.mInternal!=ButtonEventMode::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,ButtonEventMode& e);
- static const std::string toString(const ButtonEventMode& e);
-
- static bool fromJSON(const Json::Value& s,ButtonEventMode& e);
- static Json::Value toJSON(const ButtonEventMode& e);
-
- static const char* getName(ButtonEventMode::ButtonEventModeInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const ButtonEventMode::ButtonEventModeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.inc
deleted file mode 100644
index 36bc9f63b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.inc
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 8
-#define MAX_WORD_LENGTH 10
-#define MIN_HASH_VALUE 8
-#define MAX_HASH_VALUE 10
-/* maximum key range = 3, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class ButtonEventMode_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-ButtonEventMode_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-ButtonEventMode_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 10
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.gp"
- {"BUTTONUP",0},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonEventModeMarshaller.gp"
- {"BUTTONDOWN",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.cpp
deleted file mode 100644
index 2d2113fb9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonName.h"
-#include "ButtonNameMarshaller.h"
-#include "ButtonNameMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const ButtonName::ButtonNameInternal ButtonNameMarshaller::getIndex(const char* s)
-{
- if(!s)
- return ButtonName::INVALID_ENUM;
- const struct PerfectHashTable* p=ButtonName_intHash::getPointer(s,strlen(s));
- return p ? static_cast<ButtonName::ButtonNameInternal>(p->idx) : ButtonName::INVALID_ENUM;
-}
-
-
-bool ButtonNameMarshaller::fromJSON(const Json::Value& s,ButtonName& e)
-{
- e.mInternal=ButtonName::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=ButtonName::INVALID_ENUM);
-}
-
-
-Json::Value ButtonNameMarshaller::toJSON(const ButtonName& e)
-{
- if(e.mInternal==ButtonName::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool ButtonNameMarshaller::fromString(const std::string& s,ButtonName& e)
-{
- e.mInternal=ButtonName::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string ButtonNameMarshaller::toString(const ButtonName& e)
-{
- Json::FastWriter writer;
- return e.mInternal==ButtonName::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable ButtonNameMarshaller::mHashTable[16]=
-{
- {"OK",0},
- {"SEEKLEFT",1},
- {"SEEKRIGHT",2},
- {"TUNEUP",3},
- {"TUNEDOWN",4},
- {"PRESET_0",5},
- {"PRESET_1",6},
- {"PRESET_2",7},
- {"PRESET_3",8},
- {"PRESET_4",9},
- {"PRESET_5",10},
- {"PRESET_6",11},
- {"PRESET_7",12},
- {"PRESET_8",13},
- {"PRESET_9",14},
- {"CUSTOM_BUTTON",15}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp
deleted file mode 100644
index 69f1aee66..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp
+++ /dev/null
@@ -1,32 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name ButtonName_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-OK,0
-SEEKLEFT,1
-SEEKRIGHT,2
-TUNEUP,3
-TUNEDOWN,4
-PRESET_0,5
-PRESET_1,6
-PRESET_2,7
-PRESET_3,8
-PRESET_4,9
-PRESET_5,10
-PRESET_6,11
-PRESET_7,12
-PRESET_8,13
-PRESET_9,14
-CUSTOM_BUTTON,15
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.h
deleted file mode 100644
index 698516e3f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_BUTTONNAMEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_BUTTONNAMEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonName.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for ButtonName
-
- class ButtonNameMarshaller
- {
- public:
-
- static std::string toName(const ButtonName& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(ButtonName& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=ButtonName::INVALID_ENUM;
- }
-
- static bool checkIntegrity(ButtonName& e) { return e.mInternal!=ButtonName::INVALID_ENUM; }
- static bool checkIntegrityConst(const ButtonName& e) { return e.mInternal!=ButtonName::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,ButtonName& e);
- static const std::string toString(const ButtonName& e);
-
- static bool fromJSON(const Json::Value& s,ButtonName& e);
- static Json::Value toJSON(const ButtonName& e);
-
- static const char* getName(ButtonName::ButtonNameInternal e)
- {
- return (e>=0 && e<16) ? mHashTable[e].name : NULL;
- }
-
- static const ButtonName::ButtonNameInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[16];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.inc
deleted file mode 100644
index 64074a14d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.inc
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp */
-/* Computed positions: -k'8' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 16
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 2
-#define MAX_HASH_VALUE 38
-/* maximum key range = 37, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class ButtonName_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-ButtonName_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 28, 23,
- 18, 13, 8, 3, 30, 25, 20, 15, 39, 39,
- 39, 39, 39, 39, 39, 39, 5, 39, 39, 39,
- 39, 39, 0, 39, 39, 39, 39, 39, 5, 39,
- 39, 39, 39, 39, 0, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[7]];
- /*FALLTHROUGH*/
- case 7:
- case 6:
- case 5:
- case 4:
- case 3:
- case 2:
- break;
- }
- return hval;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-ButtonName_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 2, 0, 0, 0, 6, 0, 8, 9, 0, 8, 0, 8,
- 0, 0, 8, 0, 13, 0, 0, 8, 0, 8, 0, 0, 8, 0,
- 8, 0, 0, 8, 0, 8, 0, 0, 8, 0, 8
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"OK",0},
- {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"TUNEUP",3},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"SEEKLEFT",1},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"SEEKRIGHT",2},
- {""},
-#line 27 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"PRESET_5",10},
- {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"TUNEDOWN",4},
- {""}, {""},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"PRESET_4",9},
- {""},
-#line 32 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"CUSTOM_BUTTON",15},
- {""}, {""},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"PRESET_3",8},
- {""},
-#line 31 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"PRESET_9",14},
- {""}, {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"PRESET_2",7},
- {""},
-#line 30 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"PRESET_8",13},
- {""}, {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"PRESET_1",6},
- {""},
-#line 29 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"PRESET_7",12},
- {""}, {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"PRESET_0",5},
- {""},
-#line 28 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonNameMarshaller.gp"
- {"PRESET_6",11}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.cpp
deleted file mode 100644
index d2eb048aa..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonPressMode.h"
-#include "ButtonPressModeMarshaller.h"
-#include "ButtonPressModeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const ButtonPressMode::ButtonPressModeInternal ButtonPressModeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return ButtonPressMode::INVALID_ENUM;
- const struct PerfectHashTable* p=ButtonPressMode_intHash::getPointer(s,strlen(s));
- return p ? static_cast<ButtonPressMode::ButtonPressModeInternal>(p->idx) : ButtonPressMode::INVALID_ENUM;
-}
-
-
-bool ButtonPressModeMarshaller::fromJSON(const Json::Value& s,ButtonPressMode& e)
-{
- e.mInternal=ButtonPressMode::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=ButtonPressMode::INVALID_ENUM);
-}
-
-
-Json::Value ButtonPressModeMarshaller::toJSON(const ButtonPressMode& e)
-{
- if(e.mInternal==ButtonPressMode::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool ButtonPressModeMarshaller::fromString(const std::string& s,ButtonPressMode& e)
-{
- e.mInternal=ButtonPressMode::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string ButtonPressModeMarshaller::toString(const ButtonPressMode& e)
-{
- Json::FastWriter writer;
- return e.mInternal==ButtonPressMode::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable ButtonPressModeMarshaller::mHashTable[2]=
-{
- {"LONG",0},
- {"SHORT",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.gp
deleted file mode 100644
index 0565b94ce..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name ButtonPressMode_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-LONG,0
-SHORT,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.h
deleted file mode 100644
index 9931b8d95..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_BUTTONPRESSMODEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_BUTTONPRESSMODEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ButtonPressMode.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for ButtonPressMode
-
- class ButtonPressModeMarshaller
- {
- public:
-
- static std::string toName(const ButtonPressMode& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(ButtonPressMode& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=ButtonPressMode::INVALID_ENUM;
- }
-
- static bool checkIntegrity(ButtonPressMode& e) { return e.mInternal!=ButtonPressMode::INVALID_ENUM; }
- static bool checkIntegrityConst(const ButtonPressMode& e) { return e.mInternal!=ButtonPressMode::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,ButtonPressMode& e);
- static const std::string toString(const ButtonPressMode& e);
-
- static bool fromJSON(const Json::Value& s,ButtonPressMode& e);
- static Json::Value toJSON(const ButtonPressMode& e);
-
- static const char* getName(ButtonPressMode::ButtonPressModeInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const ButtonPressMode::ButtonPressModeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.inc
deleted file mode 100644
index 89938400d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.inc
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 5
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 5
-/* maximum key range = 2, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class ButtonPressMode_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-ButtonPressMode_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-ButtonPressMode_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 5
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.gp"
- {"LONG",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ButtonPressModeMarshaller.gp"
- {"SHORT",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_request.cpp
deleted file mode 100644
index b857cdcfe..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_request.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_request.h"
-#include "ChangeRegistration_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "LanguageMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-ChangeRegistration_request::~ChangeRegistration_request(void)
-{
-}
-
-
-ChangeRegistration_request::ChangeRegistration_request(const ChangeRegistration_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool ChangeRegistration_request::checkIntegrity(void)
-{
- return ChangeRegistration_requestMarshaller::checkIntegrity(*this);
-}
-
-
-ChangeRegistration_request::ChangeRegistration_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool ChangeRegistration_request::set_language(const Language& language_)
-{
- if(!LanguageMarshaller::checkIntegrityConst(language_)) return false;
- language=language_;
- return true;
-}
-
-bool ChangeRegistration_request::set_hmiDisplayLanguage(const Language& hmiDisplayLanguage_)
-{
- if(!LanguageMarshaller::checkIntegrityConst(hmiDisplayLanguage_)) return false;
- hmiDisplayLanguage=hmiDisplayLanguage_;
- return true;
-}
-
-
-
-
-const Language& ChangeRegistration_request::get_language(void) const
-{
- return language;
-}
-
-const Language& ChangeRegistration_request::get_hmiDisplayLanguage(void) const
-{
- return hmiDisplayLanguage;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_requestMarshaller.cpp
deleted file mode 100644
index 9e1375964..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_requestMarshaller.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_request.h"
-#include "LanguageMarshaller.h"
-
-#include "ChangeRegistration_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ChangeRegistration_requestMarshaller::checkIntegrity(ChangeRegistration_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ChangeRegistration_requestMarshaller::fromString(const std::string& s,ChangeRegistration_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ChangeRegistration_requestMarshaller::toString(const ChangeRegistration_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ChangeRegistration_requestMarshaller::checkIntegrityConst(const ChangeRegistration_request& s)
-{
- if(!LanguageMarshaller::checkIntegrityConst(s.language)) return false;
- if(!LanguageMarshaller::checkIntegrityConst(s.hmiDisplayLanguage)) return false;
- return true;
-}
-
-Json::Value ChangeRegistration_requestMarshaller::toJSON(const ChangeRegistration_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["language"]=LanguageMarshaller::toJSON(e.language);
-
- json["hmiDisplayLanguage"]=LanguageMarshaller::toJSON(e.hmiDisplayLanguage);
-
- return json;
-}
-
-
-bool ChangeRegistration_requestMarshaller::fromJSON(const Json::Value& json,ChangeRegistration_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("language")) return false;
- {
- const Json::Value& j=json["language"];
- if(!LanguageMarshaller::fromJSON(j,c.language))
- return false;
- }
- if(!json.isMember("hmiDisplayLanguage")) return false;
- {
- const Json::Value& j=json["hmiDisplayLanguage"];
- if(!LanguageMarshaller::fromJSON(j,c.hmiDisplayLanguage))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_requestMarshaller.h
deleted file mode 100644
index 4daa19232..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_CHANGEREGISTRATION_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_CHANGEREGISTRATION_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ChangeRegistration_requestMarshaller
- {
- static bool checkIntegrity(ChangeRegistration_request& e);
- static bool checkIntegrityConst(const ChangeRegistration_request& e);
-
- static bool fromString(const std::string& s,ChangeRegistration_request& e);
- static const std::string toString(const ChangeRegistration_request& e);
-
- static bool fromJSON(const Json::Value& s,ChangeRegistration_request& e);
- static Json::Value toJSON(const ChangeRegistration_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_response.cpp
deleted file mode 100644
index 0d4568df7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_response.h"
-#include "ChangeRegistration_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-ChangeRegistration_response& ChangeRegistration_response::operator =(const ChangeRegistration_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-ChangeRegistration_response::~ChangeRegistration_response(void)
-{}
-
-ChangeRegistration_response::ChangeRegistration_response(const ChangeRegistration_response& c)
-{
- *this = c;
-}
-
-bool ChangeRegistration_response::checkIntegrity(void)
-{
- return ChangeRegistration_responseMarshaller::checkIntegrity(*this);
-}
-
-
-ChangeRegistration_response::ChangeRegistration_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_responseMarshaller.cpp
deleted file mode 100644
index 411bae61a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_response.h"
-#include "ResultMarshaller.h"
-
-#include "ChangeRegistration_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ChangeRegistration_responseMarshaller::checkIntegrity(ChangeRegistration_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ChangeRegistration_responseMarshaller::fromString(const std::string& s,ChangeRegistration_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ChangeRegistration_responseMarshaller::toString(const ChangeRegistration_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ChangeRegistration_responseMarshaller::checkIntegrityConst(const ChangeRegistration_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value ChangeRegistration_responseMarshaller::toJSON(const ChangeRegistration_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool ChangeRegistration_responseMarshaller::fromJSON(const Json::Value& json,ChangeRegistration_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_responseMarshaller.h
deleted file mode 100644
index ff7ff058e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChangeRegistration_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_CHANGEREGISTRATION_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_CHANGEREGISTRATION_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ChangeRegistration_responseMarshaller
- {
- static bool checkIntegrity(ChangeRegistration_response& e);
- static bool checkIntegrityConst(const ChangeRegistration_response& e);
-
- static bool fromString(const std::string& s,ChangeRegistration_response& e);
- static const std::string toString(const ChangeRegistration_response& e);
-
- static bool fromJSON(const Json::Value& s,ChangeRegistration_response& e);
- static Json::Value toJSON(const ChangeRegistration_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.cpp
deleted file mode 100644
index 4d25806ea..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/CharacterSet.h"
-#include "CharacterSetMarshaller.h"
-#include "CharacterSetMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const CharacterSet::CharacterSetInternal CharacterSetMarshaller::getIndex(const char* s)
-{
- if(!s)
- return CharacterSet::INVALID_ENUM;
- const struct PerfectHashTable* p=CharacterSet_intHash::getPointer(s,strlen(s));
- return p ? static_cast<CharacterSet::CharacterSetInternal>(p->idx) : CharacterSet::INVALID_ENUM;
-}
-
-
-bool CharacterSetMarshaller::fromJSON(const Json::Value& s,CharacterSet& e)
-{
- e.mInternal=CharacterSet::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=CharacterSet::INVALID_ENUM);
-}
-
-
-Json::Value CharacterSetMarshaller::toJSON(const CharacterSet& e)
-{
- if(e.mInternal==CharacterSet::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool CharacterSetMarshaller::fromString(const std::string& s,CharacterSet& e)
-{
- e.mInternal=CharacterSet::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string CharacterSetMarshaller::toString(const CharacterSet& e)
-{
- Json::FastWriter writer;
- return e.mInternal==CharacterSet::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable CharacterSetMarshaller::mHashTable[4]=
-{
- {"TYPE2SET",0},
- {"TYPE5SET",1},
- {"CID1SET",2},
- {"CID2SET",3}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.gp
deleted file mode 100644
index 5fad412bf..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.gp
+++ /dev/null
@@ -1,20 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name CharacterSet_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-TYPE2SET,0
-TYPE5SET,1
-CID1SET,2
-CID2SET,3
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.h
deleted file mode 100644
index 913e093a1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_CHARACTERSETMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_CHARACTERSETMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/CharacterSet.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for CharacterSet
-
- class CharacterSetMarshaller
- {
- public:
-
- static std::string toName(const CharacterSet& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(CharacterSet& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=CharacterSet::INVALID_ENUM;
- }
-
- static bool checkIntegrity(CharacterSet& e) { return e.mInternal!=CharacterSet::INVALID_ENUM; }
- static bool checkIntegrityConst(const CharacterSet& e) { return e.mInternal!=CharacterSet::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,CharacterSet& e);
- static const std::string toString(const CharacterSet& e);
-
- static bool fromJSON(const Json::Value& s,CharacterSet& e);
- static Json::Value toJSON(const CharacterSet& e);
-
- static const char* getName(CharacterSet::CharacterSetInternal e)
- {
- return (e>=0 && e<4) ? mHashTable[e].name : NULL;
- }
-
- static const CharacterSet::CharacterSetInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[4];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.inc
deleted file mode 100644
index 7e80c4e12..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.inc
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.gp */
-/* Computed positions: -k'4-5' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 4
-#define MIN_WORD_LENGTH 7
-#define MAX_WORD_LENGTH 8
-#define MIN_HASH_VALUE 7
-#define MAX_HASH_VALUE 13
-/* maximum key range = 7, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class CharacterSet_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-CharacterSet_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
- 5, 14, 14, 0, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 0, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14
- };
- return len + asso_values[(unsigned char)str[4]] + asso_values[(unsigned char)str[3]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-CharacterSet_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 7, 8, 0, 0, 0, 7, 8
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.gp"
- {"CID1SET",2},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.gp"
- {"TYPE5SET",1},
- {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.gp"
- {"CID2SET",3},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CharacterSetMarshaller.gp"
- {"TYPE2SET",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Choice.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Choice.cpp
deleted file mode 100644
index 29d5258b5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Choice.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Choice.h"
-#include "ChoiceMarshaller.h"
-#include "ImageMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-Choice::Choice(const Choice& c)
-{
- *this=c;
-}
-
-
-bool Choice::checkIntegrity(void)
-{
- return ChoiceMarshaller::checkIntegrity(*this);
-}
-
-
-Choice::Choice(void)
-{
-}
-
-
-
-bool Choice::set_choiceID(unsigned int choiceID_)
-{
- if(choiceID_>65535) return false;
- choiceID=choiceID_;
- return true;
-}
-
-bool Choice::set_image(const Image& image_)
-{
- if(!ImageMarshaller::checkIntegrityConst(image_)) return false;
- image=image_;
- return true;
-}
-
-bool Choice::set_menuName(const std::string& menuName_)
-{
- if(menuName_.length()>500) return false;
- menuName=menuName_;
- return true;
-}
-
-bool Choice::set_vrCommands(const std::vector<std::string>& vrCommands_)
-{
- unsigned int i=vrCommands_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(vrCommands_[i].length()>99) return false;
- }
- vrCommands=vrCommands_;
- return true;
-}
-
-
-
-
-unsigned int Choice::get_choiceID(void) const
-{
- return choiceID;
-}
-
-
-const Image& Choice::get_image(void) const
-{
- return image;
-}
-
-
-const std::string& Choice::get_menuName(void) const
-{
- return menuName;
-}
-
-
-const std::vector<std::string>& Choice::get_vrCommands(void) const
-{
- return vrCommands;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChoiceMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChoiceMarshaller.cpp
deleted file mode 100644
index 6ebb3eb25..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChoiceMarshaller.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Choice.h"
-#include "ImageMarshaller.h"
-
-#include "ChoiceMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ChoiceMarshaller::checkIntegrity(Choice& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ChoiceMarshaller::fromString(const std::string& s,Choice& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ChoiceMarshaller::toString(const Choice& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ChoiceMarshaller::checkIntegrityConst(const Choice& s)
-{
- if(s.choiceID>65535) return false;
-
- // TODO(AK): Quick fix for HMI communication with app(v1)
- if (s.image.get_imageType().get() != NsSmartDeviceLinkRPCV2::ImageType::INVALID_ENUM)
- if(!ImageMarshaller::checkIntegrityConst(s.image)) return false;
-
- if(s.menuName.length()>500) return false;
- {
- unsigned int i=s.vrCommands.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.vrCommands[i].length()>99) return false;
- }
- }
- return true;
-}
-
-Json::Value ChoiceMarshaller::toJSON(const Choice& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["choiceID"]=Json::Value(e.choiceID);
-
- // TODO(AK): Quick fix for HMI communication with app(v1)
- if (e.image.get_imageType().get() != NsSmartDeviceLinkRPCV2::ImageType::INVALID_ENUM)
- json["image"]=ImageMarshaller::toJSON(e.image);
-
- json["menuName"]=Json::Value(e.menuName);
-
- json["vrCommands"]=Json::Value(Json::arrayValue);
- json["vrCommands"].resize(e.vrCommands.size());
- for(unsigned int i=0;i<e.vrCommands.size();i++)
- json["vrCommands"][i]=Json::Value(e.vrCommands[i]);
-
-
- return json;
-}
-
-
-bool ChoiceMarshaller::fromJSON(const Json::Value& json,Choice& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("choiceID")) return false;
- {
- const Json::Value& j=json["choiceID"];
- if(!j.isInt()) return false;
- c.choiceID=j.asInt();
- }
- if(json.isMember("image"))
- {
- const Json::Value& j=json["image"];
- if(!ImageMarshaller::fromJSON(j,c.image))
- return false;
- }
- if(!json.isMember("menuName")) return false;
- {
- const Json::Value& j=json["menuName"];
- if(!j.isString()) return false;
- c.menuName=j.asString();
- }
- if(!json.isMember("vrCommands")) return false;
- {
- const Json::Value& j=json["vrCommands"];
- if(!j.isArray()) return false;
- c.vrCommands.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.vrCommands[i]=j[i].asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChoiceMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChoiceMarshaller.h
deleted file mode 100644
index 3dc23e125..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ChoiceMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_CHOICEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_CHOICEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Choice.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ChoiceMarshaller
- {
- static bool checkIntegrity(Choice& e);
- static bool checkIntegrityConst(const Choice& e);
-
- static bool fromString(const std::string& s,Choice& e);
- static const std::string toString(const Choice& e);
-
- static bool fromJSON(const Json::Value& s,Choice& e);
- static Json::Value toJSON(const Choice& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.cpp
deleted file mode 100644
index dcf17a129..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/CompassDirection.h"
-#include "CompassDirectionMarshaller.h"
-#include "CompassDirectionMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const CompassDirection::CompassDirectionInternal CompassDirectionMarshaller::getIndex(const char* s)
-{
- if(!s)
- return CompassDirection::INVALID_ENUM;
- const struct PerfectHashTable* p=CompassDirection_intHash::getPointer(s,strlen(s));
- return p ? static_cast<CompassDirection::CompassDirectionInternal>(p->idx) : CompassDirection::INVALID_ENUM;
-}
-
-
-bool CompassDirectionMarshaller::fromJSON(const Json::Value& s,CompassDirection& e)
-{
- e.mInternal=CompassDirection::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=CompassDirection::INVALID_ENUM);
-}
-
-
-Json::Value CompassDirectionMarshaller::toJSON(const CompassDirection& e)
-{
- if(e.mInternal==CompassDirection::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool CompassDirectionMarshaller::fromString(const std::string& s,CompassDirection& e)
-{
- e.mInternal=CompassDirection::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string CompassDirectionMarshaller::toString(const CompassDirection& e)
-{
- Json::FastWriter writer;
- return e.mInternal==CompassDirection::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable CompassDirectionMarshaller::mHashTable[8]=
-{
- {"NORTH",0},
- {"NORTHWEST",1},
- {"WEST",2},
- {"SOUTHWEST",3},
- {"SOUTH",4},
- {"SOUTHEAST",5},
- {"EAST",6},
- {"NORTHEAST",7}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp
deleted file mode 100644
index bdd04c86f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp
+++ /dev/null
@@ -1,24 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name CompassDirection_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-NORTH,0
-NORTHWEST,1
-WEST,2
-SOUTHWEST,3
-SOUTH,4
-SOUTHEAST,5
-EAST,6
-NORTHEAST,7
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.h
deleted file mode 100644
index 67907eb47..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_COMPASSDIRECTIONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_COMPASSDIRECTIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/CompassDirection.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for CompassDirection
-
- class CompassDirectionMarshaller
- {
- public:
-
- static std::string toName(const CompassDirection& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(CompassDirection& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=CompassDirection::INVALID_ENUM;
- }
-
- static bool checkIntegrity(CompassDirection& e) { return e.mInternal!=CompassDirection::INVALID_ENUM; }
- static bool checkIntegrityConst(const CompassDirection& e) { return e.mInternal!=CompassDirection::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,CompassDirection& e);
- static const std::string toString(const CompassDirection& e);
-
- static bool fromJSON(const Json::Value& s,CompassDirection& e);
- static Json::Value toJSON(const CompassDirection& e);
-
- static const char* getName(CompassDirection::CompassDirectionInternal e)
- {
- return (e>=0 && e<8) ? mHashTable[e].name : NULL;
- }
-
- static const CompassDirection::CompassDirectionInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[8];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.inc
deleted file mode 100644
index 33e2c9b86..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.inc
+++ /dev/null
@@ -1,179 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp */
-/* Computed positions: -k'1,6' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 8
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 9
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 29
-/* maximum key range = 26, duplicates = 0 */
-
-class CompassDirection_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-CompassDirection_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 15,
- 30, 30, 30, 30, 30, 30, 30, 30, 5, 30,
- 30, 30, 30, 0, 30, 30, 30, 0, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
- 30, 30, 30, 30, 30, 30
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[5]];
- /*FALLTHROUGH*/
- case 5:
- case 4:
- case 3:
- case 2:
- case 1:
- hval += asso_values[(unsigned char)str[0]];
- break;
- }
- return hval;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-CompassDirection_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 5, 0, 0, 0, 9, 5, 0, 0, 0,
- 9, 0, 0, 0, 0, 4, 0, 0, 0, 0, 9, 0, 0, 0,
- 0, 9
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp"
- {"WEST",2},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp"
- {"SOUTH",4},
- {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp"
- {"SOUTHWEST",3},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp"
- {"NORTH",0},
- {""}, {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp"
- {"NORTHWEST",1},
- {""}, {""}, {""}, {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp"
- {"EAST",6},
- {""}, {""}, {""}, {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp"
- {"SOUTHEAST",5},
- {""}, {""}, {""}, {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CompassDirectionMarshaller.gp"
- {"NORTHEAST",7}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_request.cpp
deleted file mode 100644
index 6f062cc80..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_request.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_request.h"
-#include "CreateInteractionChoiceSet_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "ChoiceMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-CreateInteractionChoiceSet_request::~CreateInteractionChoiceSet_request(void)
-{
-}
-
-
-CreateInteractionChoiceSet_request::CreateInteractionChoiceSet_request(const CreateInteractionChoiceSet_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool CreateInteractionChoiceSet_request::checkIntegrity(void)
-{
- return CreateInteractionChoiceSet_requestMarshaller::checkIntegrity(*this);
-}
-
-
-CreateInteractionChoiceSet_request::CreateInteractionChoiceSet_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool CreateInteractionChoiceSet_request::set_interactionChoiceSetID(unsigned int interactionChoiceSetID_)
-{
- if(interactionChoiceSetID_>2000000000) return false;
- interactionChoiceSetID=interactionChoiceSetID_;
- return true;
-}
-
-bool CreateInteractionChoiceSet_request::set_choiceSet(const std::vector<Choice>& choiceSet_)
-{
- unsigned int i=choiceSet_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!ChoiceMarshaller::checkIntegrityConst(choiceSet_[i])) return false;
- }
- choiceSet=choiceSet_;
- return true;
-}
-
-
-
-
-unsigned int CreateInteractionChoiceSet_request::get_interactionChoiceSetID(void) const
-{
- return interactionChoiceSetID;
-}
-
-const std::vector<Choice>& CreateInteractionChoiceSet_request::get_choiceSet(void) const
-{
- return choiceSet;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_requestMarshaller.cpp
deleted file mode 100644
index 1cc31d412..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_requestMarshaller.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_request.h"
-#include "ChoiceMarshaller.h"
-
-#include "CreateInteractionChoiceSet_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool CreateInteractionChoiceSet_requestMarshaller::checkIntegrity(CreateInteractionChoiceSet_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool CreateInteractionChoiceSet_requestMarshaller::fromString(const std::string& s,CreateInteractionChoiceSet_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string CreateInteractionChoiceSet_requestMarshaller::toString(const CreateInteractionChoiceSet_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool CreateInteractionChoiceSet_requestMarshaller::checkIntegrityConst(const CreateInteractionChoiceSet_request& s)
-{
- if(s.interactionChoiceSetID>2000000000) return false;
- {
- unsigned int i=s.choiceSet.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!ChoiceMarshaller::checkIntegrityConst(s.choiceSet[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value CreateInteractionChoiceSet_requestMarshaller::toJSON(const CreateInteractionChoiceSet_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["interactionChoiceSetID"]=Json::Value(e.interactionChoiceSetID);
-
- json["choiceSet"]=Json::Value(Json::arrayValue);
- json["choiceSet"].resize(e.choiceSet.size());
- for(unsigned int i=0;i<e.choiceSet.size();i++)
- json["choiceSet"][i]=ChoiceMarshaller::toJSON(e.choiceSet[i]);
-
- return json;
-}
-
-
-bool CreateInteractionChoiceSet_requestMarshaller::fromJSON(const Json::Value& json,CreateInteractionChoiceSet_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("interactionChoiceSetID")) return false;
- {
- const Json::Value& j=json["interactionChoiceSetID"];
- if(!j.isInt()) return false;
- c.interactionChoiceSetID=j.asInt();
- }
- if(!json.isMember("choiceSet")) return false;
- {
- const Json::Value& j=json["choiceSet"];
- if(!j.isArray()) return false;
- c.choiceSet.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- Choice t;
- if(!ChoiceMarshaller::fromJSON(j[i],t))
- return false;
- c.choiceSet[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_requestMarshaller.h
deleted file mode 100644
index e139dd36f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_CREATEINTERACTIONCHOICESET_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_CREATEINTERACTIONCHOICESET_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct CreateInteractionChoiceSet_requestMarshaller
- {
- static bool checkIntegrity(CreateInteractionChoiceSet_request& e);
- static bool checkIntegrityConst(const CreateInteractionChoiceSet_request& e);
-
- static bool fromString(const std::string& s,CreateInteractionChoiceSet_request& e);
- static const std::string toString(const CreateInteractionChoiceSet_request& e);
-
- static bool fromJSON(const Json::Value& s,CreateInteractionChoiceSet_request& e);
- static Json::Value toJSON(const CreateInteractionChoiceSet_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_response.cpp
deleted file mode 100644
index 978551fac..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_response.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_response.h"
-#include "CreateInteractionChoiceSet_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-CreateInteractionChoiceSet_response& CreateInteractionChoiceSet_response::operator =(
- const CreateInteractionChoiceSet_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-CreateInteractionChoiceSet_response::~CreateInteractionChoiceSet_response(void)
-{}
-
-CreateInteractionChoiceSet_response::CreateInteractionChoiceSet_response(
- const CreateInteractionChoiceSet_response& c)
-{
- *this = c;
-}
-
-bool CreateInteractionChoiceSet_response::checkIntegrity(void)
-{
- return CreateInteractionChoiceSet_responseMarshaller::checkIntegrity(*this);
-}
-
-CreateInteractionChoiceSet_response::CreateInteractionChoiceSet_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_responseMarshaller.cpp
deleted file mode 100644
index 5279dee7c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_responseMarshaller.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_response.h"
-#include "ResultMarshaller.h"
-
-#include "CreateInteractionChoiceSet_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool CreateInteractionChoiceSet_responseMarshaller::checkIntegrity(CreateInteractionChoiceSet_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool CreateInteractionChoiceSet_responseMarshaller::fromString(const std::string& s, CreateInteractionChoiceSet_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if (!reader.parse(s, json, false))
- {
- return false;
- }
- if (!fromJSON(json, e))
- {
- return false;
- }
- }
- catch (...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string CreateInteractionChoiceSet_responseMarshaller::toString(const CreateInteractionChoiceSet_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool CreateInteractionChoiceSet_responseMarshaller::checkIntegrityConst(const CreateInteractionChoiceSet_response& s)
-{
- if (!ResultMarshaller::checkIntegrityConst(s.resultCode))
- {
- return false;
- }
- if (s.info && s.info->length() > 1000)
- {
- return false;
- }
- return true;
-}
-
-Json::Value CreateInteractionChoiceSet_responseMarshaller::toJSON(const CreateInteractionChoiceSet_response& e)
-{
- Json::Value json(Json::objectValue);
- if (!checkIntegrityConst(e))
- {
- return Json::Value(Json::nullValue);
- }
-
- json["success"] = Json::Value(e.success);
- json["resultCode"] = ResultMarshaller::toJSON(e.resultCode);
-
- if (e.info)
- {
- json["info"] = Json::Value(*e.info);
- }
-
- return json;
-}
-
-
-bool CreateInteractionChoiceSet_responseMarshaller::fromJSON(const Json::Value& json, CreateInteractionChoiceSet_response& c)
-{
- if (c.info)
- {
- delete c.info;
- }
- c.info = 0;
-
- try
- {
- if (!json.isObject())
- {
- return false;
- }
-
- if (!json.isMember("success"))
- {
- return false;
- }
- {
- const Json::Value& j = json["success"];
- if (!j.isBool())
- {
- return false;
- }
- c.success = j.asBool();
- }
- if (!json.isMember("resultCode"))
- {
- return false;
- }
- {
- const Json::Value& j = json["resultCode"];
- if (!ResultMarshaller::fromJSON(j, c.resultCode))
- {
- return false;
- }
- }
- if (json.isMember("info"))
- {
- const Json::Value& j = json["info"];
- if (!j.isString())
- {
- return false;
- }
- c.info = new std::string(j.asString());
- }
-
- }
- catch (...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_responseMarshaller.h
deleted file mode 100644
index 94911ce75..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/CreateInteractionChoiceSet_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_CREATEINTERACTIONCHOICESET_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_CREATEINTERACTIONCHOICESET_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct CreateInteractionChoiceSet_responseMarshaller
- {
- static bool checkIntegrity(CreateInteractionChoiceSet_response& e);
- static bool checkIntegrityConst(const CreateInteractionChoiceSet_response& e);
-
- static bool fromString(const std::string& s,CreateInteractionChoiceSet_response& e);
- static const std::string toString(const CreateInteractionChoiceSet_response& e);
-
- static bool fromJSON(const Json::Value& s,CreateInteractionChoiceSet_response& e);
- static Json::Value toJSON(const CreateInteractionChoiceSet_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTC.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTC.cpp
deleted file mode 100644
index b9f141b83..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTC.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DTC.h"
-#include "DTCMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-DTC::DTC(const DTC& c)
-{
- *this=c;
-}
-
-
-bool DTC::checkIntegrity(void)
-{
- return DTCMarshaller::checkIntegrity(*this);
-}
-
-
-DTC::DTC(void)
-{
-}
-
-
-
-bool DTC::set_identifier(const std::string& identifier_)
-{
- if(identifier_.length()>500) return false;
- identifier=identifier_;
- return true;
-}
-
-bool DTC::set_statusByte(const std::string& statusByte_)
-{
- if(statusByte_.length()>500) return false;
- statusByte=statusByte_;
- return true;
-}
-
-
-
-
-const std::string& DTC::get_identifier(void) const
-{
- return identifier;
-}
-
-
-const std::string& DTC::get_statusByte(void) const
-{
- return statusByte;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTCMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTCMarshaller.cpp
deleted file mode 100644
index 20b0fb7a7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTCMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DTC.h"
-
-
-#include "DTCMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DTCMarshaller::checkIntegrity(DTC& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DTCMarshaller::fromString(const std::string& s,DTC& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DTCMarshaller::toString(const DTC& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DTCMarshaller::checkIntegrityConst(const DTC& s)
-{
- if(s.identifier.length()>500) return false;
- if(s.statusByte.length()>500) return false;
- return true;
-}
-
-Json::Value DTCMarshaller::toJSON(const DTC& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["identifier"]=Json::Value(e.identifier);
-
- json["statusByte"]=Json::Value(e.statusByte);
-
-
- return json;
-}
-
-
-bool DTCMarshaller::fromJSON(const Json::Value& json,DTC& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("identifier")) return false;
- {
- const Json::Value& j=json["identifier"];
- if(!j.isString()) return false;
- c.identifier=j.asString();
- }
- if(!json.isMember("statusByte")) return false;
- {
- const Json::Value& j=json["statusByte"];
- if(!j.isString()) return false;
- c.statusByte=j.asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTCMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTCMarshaller.h
deleted file mode 100644
index 58f9266f3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DTCMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DTCMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DTCMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DTC.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DTCMarshaller
- {
- static bool checkIntegrity(DTC& e);
- static bool checkIntegrityConst(const DTC& e);
-
- static bool fromString(const std::string& s,DTC& e);
- static const std::string toString(const DTC& e);
-
- static bool fromJSON(const Json::Value& s,DTC& e);
- static Json::Value toJSON(const DTC& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.cpp
deleted file mode 100644
index 5dc89f0a4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeactivateReason.h"
-#include "DeactivateReasonMarshaller.h"
-#include "DeactivateReasonMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const DeactivateReason::DeactivateReasonInternal DeactivateReasonMarshaller::getIndex(const char* s)
-{
- if(!s)
- return DeactivateReason::INVALID_ENUM;
- const struct PerfectHashTable* p=DeactivateReason_intHash::getPointer(s,strlen(s));
- return p ? static_cast<DeactivateReason::DeactivateReasonInternal>(p->idx) : DeactivateReason::INVALID_ENUM;
-}
-
-
-bool DeactivateReasonMarshaller::fromJSON(const Json::Value& s,DeactivateReason& e)
-{
- e.mInternal=DeactivateReason::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=DeactivateReason::INVALID_ENUM);
-}
-
-
-Json::Value DeactivateReasonMarshaller::toJSON(const DeactivateReason& e)
-{
- if(e.mInternal==DeactivateReason::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool DeactivateReasonMarshaller::fromString(const std::string& s,DeactivateReason& e)
-{
- e.mInternal=DeactivateReason::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string DeactivateReasonMarshaller::toString(const DeactivateReason& e)
-{
- Json::FastWriter writer;
- return e.mInternal==DeactivateReason::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable DeactivateReasonMarshaller::mHashTable[6]=
-{
- {"AUDIO",0},
- {"PHONECALL",1},
- {"NAVIGATIONMAP",2},
- {"PHONEMENU",3},
- {"SYNCSETTINGS",4},
- {"GENERAL",5}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.gp
deleted file mode 100644
index c7ff845a9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.gp
+++ /dev/null
@@ -1,22 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name DeactivateReason_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-AUDIO,0
-PHONECALL,1
-NAVIGATIONMAP,2
-PHONEMENU,3
-SYNCSETTINGS,4
-GENERAL,5
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.h
deleted file mode 100644
index 8a5a4ecaf..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DEACTIVATEREASONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DEACTIVATEREASONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeactivateReason.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for DeactivateReason
-
- class DeactivateReasonMarshaller
- {
- public:
-
- static std::string toName(const DeactivateReason& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(DeactivateReason& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=DeactivateReason::INVALID_ENUM;
- }
-
- static bool checkIntegrity(DeactivateReason& e) { return e.mInternal!=DeactivateReason::INVALID_ENUM; }
- static bool checkIntegrityConst(const DeactivateReason& e) { return e.mInternal!=DeactivateReason::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,DeactivateReason& e);
- static const std::string toString(const DeactivateReason& e);
-
- static bool fromJSON(const Json::Value& s,DeactivateReason& e);
- static Json::Value toJSON(const DeactivateReason& e);
-
- static const char* getName(DeactivateReason::DeactivateReasonInternal e)
- {
- return (e>=0 && e<6) ? mHashTable[e].name : NULL;
- }
-
- static const DeactivateReason::DeactivateReasonInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[6];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.inc
deleted file mode 100644
index 7d629bf3e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.inc
+++ /dev/null
@@ -1,167 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.gp */
-/* Computed positions: -k'6' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 6
-#define MIN_WORD_LENGTH 5
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 5
-#define MAX_HASH_VALUE 14
-/* maximum key range = 10, duplicates = 0 */
-
-class DeactivateReason_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-DeactivateReason_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 0, 15, 5, 15, 0,
- 15, 15, 15, 15, 15, 15, 15, 0, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[5]];
- /*FALLTHROUGH*/
- case 5:
- break;
- }
- return hval;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-DeactivateReason_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 5, 0, 7, 0, 9, 0, 0, 12, 13,
- 9
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.gp"
- {"AUDIO",0},
- {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.gp"
- {"GENERAL",5},
- {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.gp"
- {"PHONEMENU",3},
- {""}, {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.gp"
- {"SYNCSETTINGS",4},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.gp"
- {"NAVIGATIONMAP",2},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeactivateReasonMarshaller.gp"
- {"PHONECALL",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_request.cpp
deleted file mode 100644
index b1962c00b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_request.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_request.h"
-#include "DeleteCommand_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-DeleteCommand_request::~DeleteCommand_request(void)
-{
-}
-
-
-DeleteCommand_request::DeleteCommand_request(const DeleteCommand_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool DeleteCommand_request::checkIntegrity(void)
-{
- return DeleteCommand_requestMarshaller::checkIntegrity(*this);
-}
-
-
-DeleteCommand_request::DeleteCommand_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool DeleteCommand_request::set_cmdID(unsigned int cmdID_)
-{
- if(cmdID_>2000000000) return false;
- cmdID=cmdID_;
- return true;
-}
-
-
-
-
-unsigned int DeleteCommand_request::get_cmdID(void) const
-{
- return cmdID;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_requestMarshaller.cpp
deleted file mode 100644
index 7def6904f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_requestMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_request.h"
-
-
-#include "DeleteCommand_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DeleteCommand_requestMarshaller::checkIntegrity(DeleteCommand_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteCommand_requestMarshaller::fromString(const std::string& s,DeleteCommand_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteCommand_requestMarshaller::toString(const DeleteCommand_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteCommand_requestMarshaller::checkIntegrityConst(const DeleteCommand_request& s)
-{
- if(s.cmdID>2000000000) return false;
- return true;
-}
-
-Json::Value DeleteCommand_requestMarshaller::toJSON(const DeleteCommand_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["cmdID"]=Json::Value(e.cmdID);
-
- return json;
-}
-
-
-bool DeleteCommand_requestMarshaller::fromJSON(const Json::Value& json,DeleteCommand_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("cmdID")) return false;
- {
- const Json::Value& j=json["cmdID"];
- if(!j.isInt()) return false;
- c.cmdID=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_requestMarshaller.h
deleted file mode 100644
index d2fc20606..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DELETECOMMAND_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DELETECOMMAND_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DeleteCommand_requestMarshaller
- {
- static bool checkIntegrity(DeleteCommand_request& e);
- static bool checkIntegrityConst(const DeleteCommand_request& e);
-
- static bool fromString(const std::string& s,DeleteCommand_request& e);
- static const std::string toString(const DeleteCommand_request& e);
-
- static bool fromJSON(const Json::Value& s,DeleteCommand_request& e);
- static Json::Value toJSON(const DeleteCommand_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_response.cpp
deleted file mode 100644
index c69d324da..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_response.h"
-#include "DeleteCommand_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-DeleteCommand_response& DeleteCommand_response::operator =(const DeleteCommand_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-DeleteCommand_response::~DeleteCommand_response(void)
-{}
-
-DeleteCommand_response::DeleteCommand_response(const DeleteCommand_response& c)
-{
- *this = c;
-}
-
-bool DeleteCommand_response::checkIntegrity(void)
-{
- return DeleteCommand_responseMarshaller::checkIntegrity(*this);
-}
-
-DeleteCommand_response::DeleteCommand_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_responseMarshaller.cpp
deleted file mode 100644
index 469f33a9c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_response.h"
-#include "ResultMarshaller.h"
-
-#include "DeleteCommand_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DeleteCommand_responseMarshaller::checkIntegrity(DeleteCommand_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteCommand_responseMarshaller::fromString(const std::string& s,DeleteCommand_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteCommand_responseMarshaller::toString(const DeleteCommand_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteCommand_responseMarshaller::checkIntegrityConst(const DeleteCommand_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value DeleteCommand_responseMarshaller::toJSON(const DeleteCommand_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool DeleteCommand_responseMarshaller::fromJSON(const Json::Value& json,DeleteCommand_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_responseMarshaller.h
deleted file mode 100644
index 64167645b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteCommand_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DELETECOMMAND_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DELETECOMMAND_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DeleteCommand_responseMarshaller
- {
- static bool checkIntegrity(DeleteCommand_response& e);
- static bool checkIntegrityConst(const DeleteCommand_response& e);
-
- static bool fromString(const std::string& s,DeleteCommand_response& e);
- static const std::string toString(const DeleteCommand_response& e);
-
- static bool fromJSON(const Json::Value& s,DeleteCommand_response& e);
- static Json::Value toJSON(const DeleteCommand_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_request.cpp
deleted file mode 100644
index d3f1b1dcf..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_request.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteFile_request.h"
-#include "DeleteFile_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-DeleteFile_request::~DeleteFile_request(void)
-{
-}
-
-
-DeleteFile_request::DeleteFile_request(const DeleteFile_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool DeleteFile_request::checkIntegrity(void)
-{
- return DeleteFile_requestMarshaller::checkIntegrity(*this);
-}
-
-
-DeleteFile_request::DeleteFile_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool DeleteFile_request::set_syncFileName(const std::string& syncFileName_)
-{
- if(syncFileName_.length()>500) return false;
- syncFileName=syncFileName_;
- return true;
-}
-
-
-
-
-const std::string& DeleteFile_request::get_syncFileName(void) const
-{
- return syncFileName;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_requestMarshaller.cpp
deleted file mode 100644
index 1ff5a6202..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_requestMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteFile_request.h"
-
-
-#include "DeleteFile_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DeleteFile_requestMarshaller::checkIntegrity(DeleteFile_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteFile_requestMarshaller::fromString(const std::string& s,DeleteFile_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteFile_requestMarshaller::toString(const DeleteFile_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteFile_requestMarshaller::checkIntegrityConst(const DeleteFile_request& s)
-{
- if(s.syncFileName.length()>500) return false;
- return true;
-}
-
-Json::Value DeleteFile_requestMarshaller::toJSON(const DeleteFile_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["syncFileName"]=Json::Value(e.syncFileName);
-
- return json;
-}
-
-
-bool DeleteFile_requestMarshaller::fromJSON(const Json::Value& json,DeleteFile_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("syncFileName")) return false;
- {
- const Json::Value& j=json["syncFileName"];
- if(!j.isString()) return false;
- c.syncFileName=j.asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_requestMarshaller.h
deleted file mode 100644
index 3c397a8e0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DELETEFILE_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DELETEFILE_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteFile_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DeleteFile_requestMarshaller
- {
- static bool checkIntegrity(DeleteFile_request& e);
- static bool checkIntegrityConst(const DeleteFile_request& e);
-
- static bool fromString(const std::string& s,DeleteFile_request& e);
- static const std::string toString(const DeleteFile_request& e);
-
- static bool fromJSON(const Json::Value& s,DeleteFile_request& e);
- static Json::Value toJSON(const DeleteFile_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_response.cpp
deleted file mode 100644
index f22c0a1e7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_response.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteFile_response.h"
-#include "DeleteFile_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-DeleteFile_response& DeleteFile_response::operator =(const DeleteFile_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- spaceAvailable = c.spaceAvailable;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-DeleteFile_response::~DeleteFile_response(void)
-{}
-
-DeleteFile_response::DeleteFile_response(const DeleteFile_response& c)
-{
- *this = c;
-}
-
-bool DeleteFile_response::checkIntegrity(void)
-{
- return DeleteFile_responseMarshaller::checkIntegrity(*this);
-}
-
-DeleteFile_response::DeleteFile_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
-
-bool DeleteFile_response::set_spaceAvailable(unsigned int spaceAvailable_)
-{
- if (spaceAvailable_ > 2000000000)
- {
- return false;
- }
- spaceAvailable = spaceAvailable_;
- return true;
-}
-
-unsigned int DeleteFile_response::get_spaceAvailable(void) const
-{
- return spaceAvailable;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_responseMarshaller.cpp
deleted file mode 100644
index 39f231b2c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_responseMarshaller.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteFile_response.h"
-#include "ResultMarshaller.h"
-
-#include "DeleteFile_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DeleteFile_responseMarshaller::checkIntegrity(DeleteFile_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteFile_responseMarshaller::fromString(const std::string& s,DeleteFile_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteFile_responseMarshaller::toString(const DeleteFile_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteFile_responseMarshaller::checkIntegrityConst(const DeleteFile_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.spaceAvailable>2000000000) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value DeleteFile_responseMarshaller::toJSON(const DeleteFile_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- json["spaceAvailable"]=Json::Value(e.spaceAvailable);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool DeleteFile_responseMarshaller::fromJSON(const Json::Value& json,DeleteFile_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(!json.isMember("spaceAvailable")) return false;
- {
- const Json::Value& j=json["spaceAvailable"];
- if(!j.isInt()) return false;
- c.spaceAvailable=j.asInt();
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_responseMarshaller.h
deleted file mode 100644
index 0be82951c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteFile_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DELETEFILE_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DELETEFILE_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteFile_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DeleteFile_responseMarshaller
- {
- static bool checkIntegrity(DeleteFile_response& e);
- static bool checkIntegrityConst(const DeleteFile_response& e);
-
- static bool fromString(const std::string& s,DeleteFile_response& e);
- static const std::string toString(const DeleteFile_response& e);
-
- static bool fromJSON(const Json::Value& s,DeleteFile_response& e);
- static Json::Value toJSON(const DeleteFile_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_request.cpp
deleted file mode 100644
index 1aa41fdec..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_request.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_request.h"
-#include "DeleteInteractionChoiceSet_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-DeleteInteractionChoiceSet_request::~DeleteInteractionChoiceSet_request(void)
-{
-}
-
-
-DeleteInteractionChoiceSet_request::DeleteInteractionChoiceSet_request(const DeleteInteractionChoiceSet_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool DeleteInteractionChoiceSet_request::checkIntegrity(void)
-{
- return DeleteInteractionChoiceSet_requestMarshaller::checkIntegrity(*this);
-}
-
-
-DeleteInteractionChoiceSet_request::DeleteInteractionChoiceSet_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool DeleteInteractionChoiceSet_request::set_interactionChoiceSetID(unsigned int interactionChoiceSetID_)
-{
- if(interactionChoiceSetID_>2000000000) return false;
- interactionChoiceSetID=interactionChoiceSetID_;
- return true;
-}
-
-
-
-
-unsigned int DeleteInteractionChoiceSet_request::get_interactionChoiceSetID(void) const
-{
- return interactionChoiceSetID;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_requestMarshaller.cpp
deleted file mode 100644
index d34370443..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_requestMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_request.h"
-
-
-#include "DeleteInteractionChoiceSet_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DeleteInteractionChoiceSet_requestMarshaller::checkIntegrity(DeleteInteractionChoiceSet_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteInteractionChoiceSet_requestMarshaller::fromString(const std::string& s,DeleteInteractionChoiceSet_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteInteractionChoiceSet_requestMarshaller::toString(const DeleteInteractionChoiceSet_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteInteractionChoiceSet_requestMarshaller::checkIntegrityConst(const DeleteInteractionChoiceSet_request& s)
-{
- if(s.interactionChoiceSetID>2000000000) return false;
- return true;
-}
-
-Json::Value DeleteInteractionChoiceSet_requestMarshaller::toJSON(const DeleteInteractionChoiceSet_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["interactionChoiceSetID"]=Json::Value(e.interactionChoiceSetID);
-
- return json;
-}
-
-
-bool DeleteInteractionChoiceSet_requestMarshaller::fromJSON(const Json::Value& json,DeleteInteractionChoiceSet_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("interactionChoiceSetID")) return false;
- {
- const Json::Value& j=json["interactionChoiceSetID"];
- if(!j.isInt()) return false;
- c.interactionChoiceSetID=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_requestMarshaller.h
deleted file mode 100644
index 353036deb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DELETEINTERACTIONCHOICESET_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DELETEINTERACTIONCHOICESET_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DeleteInteractionChoiceSet_requestMarshaller
- {
- static bool checkIntegrity(DeleteInteractionChoiceSet_request& e);
- static bool checkIntegrityConst(const DeleteInteractionChoiceSet_request& e);
-
- static bool fromString(const std::string& s,DeleteInteractionChoiceSet_request& e);
- static const std::string toString(const DeleteInteractionChoiceSet_request& e);
-
- static bool fromJSON(const Json::Value& s,DeleteInteractionChoiceSet_request& e);
- static Json::Value toJSON(const DeleteInteractionChoiceSet_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_response.cpp
deleted file mode 100644
index ee1ace74e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_response.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_response.h"
-#include "DeleteInteractionChoiceSet_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-DeleteInteractionChoiceSet_response& DeleteInteractionChoiceSet_response::operator =(
- const DeleteInteractionChoiceSet_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-DeleteInteractionChoiceSet_response::~DeleteInteractionChoiceSet_response(void)
-{}
-
-DeleteInteractionChoiceSet_response::DeleteInteractionChoiceSet_response(const DeleteInteractionChoiceSet_response& c)
-{
- *this = c;
-}
-
-bool DeleteInteractionChoiceSet_response::checkIntegrity(void)
-{
- return DeleteInteractionChoiceSet_responseMarshaller::checkIntegrity(*this);
-}
-
-DeleteInteractionChoiceSet_response::DeleteInteractionChoiceSet_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_responseMarshaller.cpp
deleted file mode 100644
index 3ed44d9fd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_response.h"
-#include "ResultMarshaller.h"
-
-#include "DeleteInteractionChoiceSet_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DeleteInteractionChoiceSet_responseMarshaller::checkIntegrity(DeleteInteractionChoiceSet_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteInteractionChoiceSet_responseMarshaller::fromString(const std::string& s,DeleteInteractionChoiceSet_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteInteractionChoiceSet_responseMarshaller::toString(const DeleteInteractionChoiceSet_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteInteractionChoiceSet_responseMarshaller::checkIntegrityConst(const DeleteInteractionChoiceSet_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value DeleteInteractionChoiceSet_responseMarshaller::toJSON(const DeleteInteractionChoiceSet_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool DeleteInteractionChoiceSet_responseMarshaller::fromJSON(const Json::Value& json,DeleteInteractionChoiceSet_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_responseMarshaller.h
deleted file mode 100644
index 4c83768c5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteInteractionChoiceSet_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DELETEINTERACTIONCHOICESET_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DELETEINTERACTIONCHOICESET_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DeleteInteractionChoiceSet_responseMarshaller
- {
- static bool checkIntegrity(DeleteInteractionChoiceSet_response& e);
- static bool checkIntegrityConst(const DeleteInteractionChoiceSet_response& e);
-
- static bool fromString(const std::string& s,DeleteInteractionChoiceSet_response& e);
- static const std::string toString(const DeleteInteractionChoiceSet_response& e);
-
- static bool fromJSON(const Json::Value& s,DeleteInteractionChoiceSet_response& e);
- static Json::Value toJSON(const DeleteInteractionChoiceSet_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_request.cpp
deleted file mode 100644
index d9b54acdd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_request.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_request.h"
-#include "DeleteSubMenu_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-DeleteSubMenu_request::~DeleteSubMenu_request(void)
-{
-}
-
-
-DeleteSubMenu_request::DeleteSubMenu_request(const DeleteSubMenu_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool DeleteSubMenu_request::checkIntegrity(void)
-{
- return DeleteSubMenu_requestMarshaller::checkIntegrity(*this);
-}
-
-
-DeleteSubMenu_request::DeleteSubMenu_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool DeleteSubMenu_request::set_menuID(unsigned int menuID_)
-{
- if(menuID_>2000000000) return false;
- menuID=menuID_;
- return true;
-}
-
-
-
-
-unsigned int DeleteSubMenu_request::get_menuID(void) const
-{
- return menuID;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_requestMarshaller.cpp
deleted file mode 100644
index f6500beaa..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_requestMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_request.h"
-
-
-#include "DeleteSubMenu_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DeleteSubMenu_requestMarshaller::checkIntegrity(DeleteSubMenu_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteSubMenu_requestMarshaller::fromString(const std::string& s,DeleteSubMenu_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteSubMenu_requestMarshaller::toString(const DeleteSubMenu_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteSubMenu_requestMarshaller::checkIntegrityConst(const DeleteSubMenu_request& s)
-{
- if(s.menuID>2000000000) return false;
- return true;
-}
-
-Json::Value DeleteSubMenu_requestMarshaller::toJSON(const DeleteSubMenu_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["menuID"]=Json::Value(e.menuID);
-
- return json;
-}
-
-
-bool DeleteSubMenu_requestMarshaller::fromJSON(const Json::Value& json,DeleteSubMenu_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("menuID")) return false;
- {
- const Json::Value& j=json["menuID"];
- if(!j.isInt()) return false;
- c.menuID=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_requestMarshaller.h
deleted file mode 100644
index 8b3159d8f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DELETESUBMENU_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DELETESUBMENU_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DeleteSubMenu_requestMarshaller
- {
- static bool checkIntegrity(DeleteSubMenu_request& e);
- static bool checkIntegrityConst(const DeleteSubMenu_request& e);
-
- static bool fromString(const std::string& s,DeleteSubMenu_request& e);
- static const std::string toString(const DeleteSubMenu_request& e);
-
- static bool fromJSON(const Json::Value& s,DeleteSubMenu_request& e);
- static Json::Value toJSON(const DeleteSubMenu_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_response.cpp
deleted file mode 100644
index 87b81d2c8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_response.h"
-#include "DeleteSubMenu_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-DeleteSubMenu_response& DeleteSubMenu_response::operator =(const DeleteSubMenu_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-DeleteSubMenu_response::~DeleteSubMenu_response(void)
-{}
-
-DeleteSubMenu_response::DeleteSubMenu_response(const DeleteSubMenu_response& c)
-{
- *this = c;
-}
-
-bool DeleteSubMenu_response::checkIntegrity(void)
-{
- return DeleteSubMenu_responseMarshaller::checkIntegrity(*this);
-}
-
-DeleteSubMenu_response::DeleteSubMenu_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_responseMarshaller.cpp
deleted file mode 100644
index 293cc153d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_response.h"
-#include "ResultMarshaller.h"
-
-#include "DeleteSubMenu_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DeleteSubMenu_responseMarshaller::checkIntegrity(DeleteSubMenu_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DeleteSubMenu_responseMarshaller::fromString(const std::string& s,DeleteSubMenu_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DeleteSubMenu_responseMarshaller::toString(const DeleteSubMenu_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DeleteSubMenu_responseMarshaller::checkIntegrityConst(const DeleteSubMenu_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value DeleteSubMenu_responseMarshaller::toJSON(const DeleteSubMenu_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool DeleteSubMenu_responseMarshaller::fromJSON(const Json::Value& json,DeleteSubMenu_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_responseMarshaller.h
deleted file mode 100644
index 2495f3bfa..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DeleteSubMenu_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DELETESUBMENU_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DELETESUBMENU_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DeleteSubMenu_responseMarshaller
- {
- static bool checkIntegrity(DeleteSubMenu_response& e);
- static bool checkIntegrityConst(const DeleteSubMenu_response& e);
-
- static bool fromString(const std::string& s,DeleteSubMenu_response& e);
- static const std::string toString(const DeleteSubMenu_response& e);
-
- static bool fromJSON(const Json::Value& s,DeleteSubMenu_response& e);
- static Json::Value toJSON(const DeleteSubMenu_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_request.cpp
deleted file mode 100644
index ea1f50c08..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_request.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DialNumber_request.h"
-#include "DialNumber_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-DialNumber_request::~DialNumber_request(void)
-{
-}
-
-
-DialNumber_request::DialNumber_request(const DialNumber_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool DialNumber_request::checkIntegrity(void)
-{
- return DialNumber_requestMarshaller::checkIntegrity(*this);
-}
-
-
-DialNumber_request::DialNumber_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool DialNumber_request::set_number(const std::string& number_)
-{
- if(number_.length()>500) return false;
- number=number_;
- return true;
-}
-
-
-
-
-const std::string& DialNumber_request::get_number(void) const
-{
- return number;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_requestMarshaller.cpp
deleted file mode 100644
index 8e12e2096..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_requestMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DialNumber_request.h"
-
-
-#include "DialNumber_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DialNumber_requestMarshaller::checkIntegrity(DialNumber_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DialNumber_requestMarshaller::fromString(const std::string& s,DialNumber_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DialNumber_requestMarshaller::toString(const DialNumber_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DialNumber_requestMarshaller::checkIntegrityConst(const DialNumber_request& s)
-{
- if(s.number.length()>500) return false;
- return true;
-}
-
-Json::Value DialNumber_requestMarshaller::toJSON(const DialNumber_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["number"]=Json::Value(e.number);
-
- return json;
-}
-
-
-bool DialNumber_requestMarshaller::fromJSON(const Json::Value& json,DialNumber_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("number")) return false;
- {
- const Json::Value& j=json["number"];
- if(!j.isString()) return false;
- c.number=j.asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_requestMarshaller.h
deleted file mode 100644
index 2b35bf566..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DIALNUMBER_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DIALNUMBER_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DialNumber_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DialNumber_requestMarshaller
- {
- static bool checkIntegrity(DialNumber_request& e);
- static bool checkIntegrityConst(const DialNumber_request& e);
-
- static bool fromString(const std::string& s,DialNumber_request& e);
- static const std::string toString(const DialNumber_request& e);
-
- static bool fromJSON(const Json::Value& s,DialNumber_request& e);
- static Json::Value toJSON(const DialNumber_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_response.cpp
deleted file mode 100644
index ef8422e16..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DialNumber_response.h"
-#include "DialNumber_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-DialNumber_response& DialNumber_response::operator =(const DialNumber_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-DialNumber_response::~DialNumber_response(void)
-{}
-
-DialNumber_response::DialNumber_response(const DialNumber_response& c)
-{
- *this = c;
-}
-
-bool DialNumber_response::checkIntegrity(void)
-{
- return DialNumber_responseMarshaller::checkIntegrity(*this);
-}
-
-DialNumber_response::DialNumber_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_responseMarshaller.cpp
deleted file mode 100644
index b8a0e8c27..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DialNumber_response.h"
-#include "ResultMarshaller.h"
-
-#include "DialNumber_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DialNumber_responseMarshaller::checkIntegrity(DialNumber_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DialNumber_responseMarshaller::fromString(const std::string& s,DialNumber_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DialNumber_responseMarshaller::toString(const DialNumber_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DialNumber_responseMarshaller::checkIntegrityConst(const DialNumber_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value DialNumber_responseMarshaller::toJSON(const DialNumber_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool DialNumber_responseMarshaller::fromJSON(const Json::Value& json,DialNumber_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_responseMarshaller.h
deleted file mode 100644
index ae7839828..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DialNumber_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DIALNUMBER_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DIALNUMBER_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DialNumber_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DialNumber_responseMarshaller
- {
- static bool checkIntegrity(DialNumber_response& e);
- static bool checkIntegrityConst(const DialNumber_response& e);
-
- static bool fromString(const std::string& s,DialNumber_response& e);
- static const std::string toString(const DialNumber_response& e);
-
- static bool fromJSON(const Json::Value& s,DialNumber_response& e);
- static Json::Value toJSON(const DialNumber_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.cpp
deleted file mode 100644
index 5f18ffbc4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/Dimension.h"
-#include "DimensionMarshaller.h"
-#include "DimensionMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const Dimension::DimensionInternal DimensionMarshaller::getIndex(const char* s)
-{
- if(!s)
- return Dimension::INVALID_ENUM;
- const struct PerfectHashTable* p=Dimension_intHash::getPointer(s,strlen(s));
- return p ? static_cast<Dimension::DimensionInternal>(p->idx) : Dimension::INVALID_ENUM;
-}
-
-
-bool DimensionMarshaller::fromJSON(const Json::Value& s,Dimension& e)
-{
- e.mInternal=Dimension::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=Dimension::INVALID_ENUM);
-}
-
-
-Json::Value DimensionMarshaller::toJSON(const Dimension& e)
-{
- if(e.mInternal==Dimension::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool DimensionMarshaller::fromString(const std::string& s,Dimension& e)
-{
- e.mInternal=Dimension::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string DimensionMarshaller::toString(const Dimension& e)
-{
- Json::FastWriter writer;
- return e.mInternal==Dimension::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable DimensionMarshaller::mHashTable[3]=
-{
- {"NO_FIX",0},
- {"2D",1},
- {"3D",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.gp
deleted file mode 100644
index 2227e5fb8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name Dimension_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-NO_FIX,0
-2D,1
-3D,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.h
deleted file mode 100644
index 5db7336b2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DIMENSIONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DIMENSIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Dimension.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for Dimension
-
- class DimensionMarshaller
- {
- public:
-
- static std::string toName(const Dimension& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(Dimension& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=Dimension::INVALID_ENUM;
- }
-
- static bool checkIntegrity(Dimension& e) { return e.mInternal!=Dimension::INVALID_ENUM; }
- static bool checkIntegrityConst(const Dimension& e) { return e.mInternal!=Dimension::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,Dimension& e);
- static const std::string toString(const Dimension& e);
-
- static bool fromJSON(const Json::Value& s,Dimension& e);
- static Json::Value toJSON(const Dimension& e);
-
- static const char* getName(Dimension::DimensionInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const Dimension::DimensionInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.inc
deleted file mode 100644
index fec0eb519..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.inc
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.gp */
-/* Computed positions: -k'1' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 6
-#define MIN_HASH_VALUE 2
-#define MAX_HASH_VALUE 6
-/* maximum key range = 5, duplicates = 0 */
-
-class Dimension_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-Dimension_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 1, 0, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 0, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7
- };
- return len + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-Dimension_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 2, 2, 0, 0, 6
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.gp"
- {"3D",2},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.gp"
- {"2D",1},
- {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DimensionMarshaller.gp"
- {"NO_FIX",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilities.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilities.cpp
deleted file mode 100644
index a236b3d0a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilities.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DisplayCapabilities.h"
-#include "DisplayCapabilitiesMarshaller.h"
-#include "DisplayTypeMarshaller.h"
-#include "MediaClockFormatMarshaller.h"
-#include "TextFieldMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-DisplayCapabilities::DisplayCapabilities(const DisplayCapabilities& c)
-{
- *this=c;
-}
-
-
-bool DisplayCapabilities::checkIntegrity(void)
-{
- return DisplayCapabilitiesMarshaller::checkIntegrity(*this);
-}
-
-
-DisplayCapabilities::DisplayCapabilities(void)
-{
-}
-
-
-
-bool DisplayCapabilities::set_displayType(const DisplayType& displayType_)
-{
- if(!DisplayTypeMarshaller::checkIntegrityConst(displayType_)) return false;
- displayType=displayType_;
- return true;
-}
-
-bool DisplayCapabilities::set_mediaClockFormats(const std::vector<MediaClockFormat>& mediaClockFormats_)
-{
- unsigned int i=mediaClockFormats_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!MediaClockFormatMarshaller::checkIntegrityConst(mediaClockFormats_[i])) return false;
- }
- mediaClockFormats=mediaClockFormats_;
- return true;
-}
-
-bool DisplayCapabilities::set_textFields(const std::vector<TextField>& textFields_)
-{
- unsigned int i=textFields_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TextFieldMarshaller::checkIntegrityConst(textFields_[i])) return false;
- }
- textFields=textFields_;
- return true;
-}
-
-
-
-
-const DisplayType& DisplayCapabilities::get_displayType(void) const
-{
- return displayType;
-}
-
-
-const std::vector<MediaClockFormat>& DisplayCapabilities::get_mediaClockFormats(void) const
-{
- return mediaClockFormats;
-}
-
-
-const std::vector<TextField>& DisplayCapabilities::get_textFields(void) const
-{
- return textFields;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilitiesMarshaller.cpp
deleted file mode 100644
index df285bc3c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DisplayCapabilities.h"
-#include "DisplayTypeMarshaller.h"
-#include "MediaClockFormatMarshaller.h"
-#include "TextFieldMarshaller.h"
-
-#include "DisplayCapabilitiesMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool DisplayCapabilitiesMarshaller::checkIntegrity(DisplayCapabilities& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool DisplayCapabilitiesMarshaller::fromString(const std::string& s,DisplayCapabilities& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string DisplayCapabilitiesMarshaller::toString(const DisplayCapabilities& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool DisplayCapabilitiesMarshaller::checkIntegrityConst(const DisplayCapabilities& s)
-{
- if(!DisplayTypeMarshaller::checkIntegrityConst(s.displayType)) return false;
- {
- unsigned int i=s.mediaClockFormats.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!MediaClockFormatMarshaller::checkIntegrityConst(s.mediaClockFormats[i])) return false;
- }
- }
- {
- unsigned int i=s.textFields.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TextFieldMarshaller::checkIntegrityConst(s.textFields[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value DisplayCapabilitiesMarshaller::toJSON(const DisplayCapabilities& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["displayType"]=DisplayTypeMarshaller::toJSON(e.displayType);
-
- json["mediaClockFormats"]=Json::Value(Json::arrayValue);
- json["mediaClockFormats"].resize(e.mediaClockFormats.size());
- for(unsigned int i=0;i<e.mediaClockFormats.size();i++)
- json["mediaClockFormats"][i]=MediaClockFormatMarshaller::toJSON(e.mediaClockFormats[i]);
-
- json["textFields"]=Json::Value(Json::arrayValue);
- json["textFields"].resize(e.textFields.size());
- for(unsigned int i=0;i<e.textFields.size();i++)
- json["textFields"][i]=TextFieldMarshaller::toJSON(e.textFields[i]);
-
-
- return json;
-}
-
-
-bool DisplayCapabilitiesMarshaller::fromJSON(const Json::Value& json,DisplayCapabilities& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("displayType")) return false;
- {
- const Json::Value& j=json["displayType"];
- if(!DisplayTypeMarshaller::fromJSON(j,c.displayType))
- return false;
- }
- if(!json.isMember("mediaClockFormats")) return false;
- {
- const Json::Value& j=json["mediaClockFormats"];
- if(!j.isArray()) return false;
- c.mediaClockFormats.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- MediaClockFormat t;
- if(!MediaClockFormatMarshaller::fromJSON(j[i],t))
- return false;
- c.mediaClockFormats[i]=t;
- }
-
- }
- if(!json.isMember("textFields")) return false;
- {
- const Json::Value& j=json["textFields"];
- if(!j.isArray()) return false;
- c.textFields.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TextField t;
- if(!TextFieldMarshaller::fromJSON(j[i],t))
- return false;
- c.textFields[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilitiesMarshaller.h
deleted file mode 100644
index c33c6fdd0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DISPLAYCAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DISPLAYCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DisplayCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct DisplayCapabilitiesMarshaller
- {
- static bool checkIntegrity(DisplayCapabilities& e);
- static bool checkIntegrityConst(const DisplayCapabilities& e);
-
- static bool fromString(const std::string& s,DisplayCapabilities& e);
- static const std::string toString(const DisplayCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,DisplayCapabilities& e);
- static Json::Value toJSON(const DisplayCapabilities& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.cpp
deleted file mode 100644
index c7bcf0f3d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/DisplayType.h"
-#include "DisplayTypeMarshaller.h"
-#include "DisplayTypeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const DisplayType::DisplayTypeInternal DisplayTypeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return DisplayType::INVALID_ENUM;
- const struct PerfectHashTable* p=DisplayType_intHash::getPointer(s,strlen(s));
- return p ? static_cast<DisplayType::DisplayTypeInternal>(p->idx) : DisplayType::INVALID_ENUM;
-}
-
-
-bool DisplayTypeMarshaller::fromJSON(const Json::Value& s,DisplayType& e)
-{
- e.mInternal=DisplayType::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=DisplayType::INVALID_ENUM);
-}
-
-
-Json::Value DisplayTypeMarshaller::toJSON(const DisplayType& e)
-{
- if(e.mInternal==DisplayType::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool DisplayTypeMarshaller::fromString(const std::string& s,DisplayType& e)
-{
- e.mInternal=DisplayType::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string DisplayTypeMarshaller::toString(const DisplayType& e)
-{
- Json::FastWriter writer;
- return e.mInternal==DisplayType::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable DisplayTypeMarshaller::mHashTable[9]=
-{
- {"CID",0},
- {"TYPE2",1},
- {"TYPE5",2},
- {"NGN",3},
- {"GEN2_8_DMA",4},
- {"GEN2_6_DMA",5},
- {"MFD3",6},
- {"MFD4",7},
- {"MFD5",8}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp
deleted file mode 100644
index e2ba9124a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp
+++ /dev/null
@@ -1,25 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name DisplayType_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-CID,0
-TYPE2,1
-TYPE5,2
-NGN,3
-GEN2_8_DMA,4
-GEN2_6_DMA,5
-MFD3,6
-MFD4,7
-MFD5,8
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.h
deleted file mode 100644
index 993e3ee5a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DISPLAYTYPEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DISPLAYTYPEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DisplayType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for DisplayType
-
- class DisplayTypeMarshaller
- {
- public:
-
- static std::string toName(const DisplayType& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(DisplayType& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=DisplayType::INVALID_ENUM;
- }
-
- static bool checkIntegrity(DisplayType& e) { return e.mInternal!=DisplayType::INVALID_ENUM; }
- static bool checkIntegrityConst(const DisplayType& e) { return e.mInternal!=DisplayType::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,DisplayType& e);
- static const std::string toString(const DisplayType& e);
-
- static bool fromJSON(const Json::Value& s,DisplayType& e);
- static Json::Value toJSON(const DisplayType& e);
-
- static const char* getName(DisplayType::DisplayTypeInternal e)
- {
- return (e>=0 && e<9) ? mHashTable[e].name : NULL;
- }
-
- static const DisplayType::DisplayTypeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[9];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.inc
deleted file mode 100644
index feab4a103..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.inc
+++ /dev/null
@@ -1,178 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp */
-/* Computed positions: -k'6,$' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 9
-#define MIN_WORD_LENGTH 3
-#define MAX_WORD_LENGTH 10
-#define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 20
-/* maximum key range = 18, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class DisplayType_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-DisplayType_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 15, 10, 5, 0, 5, 21, 0, 21, 21, 21,
- 21, 21, 21, 21, 21, 0, 21, 21, 5, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 0, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[5]];
- /*FALLTHROUGH*/
- case 5:
- case 4:
- case 3:
- break;
- }
- return hval + asso_values[(unsigned char)str[len - 1]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-DisplayType_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 3, 4, 5, 0, 0, 3, 4, 10, 0, 0, 0,
- 4, 10, 0, 0, 0, 0, 5
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp"
- {"NGN",3},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp"
- {"MFD5",8},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp"
- {"TYPE5",2},
- {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp"
- {"CID",0},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp"
- {"MFD4",7},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp"
- {"GEN2_8_DMA",4},
- {""}, {""}, {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp"
- {"MFD3",6},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp"
- {"GEN2_6_DMA",5},
- {""}, {""}, {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DisplayTypeMarshaller.gp"
- {"TYPE2",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.cpp
deleted file mode 100644
index e1386d46a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/DriverDistractionState.h"
-#include "DriverDistractionStateMarshaller.h"
-#include "DriverDistractionStateMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const DriverDistractionState::DriverDistractionStateInternal DriverDistractionStateMarshaller::getIndex(const char* s)
-{
- if(!s)
- return DriverDistractionState::INVALID_ENUM;
- const struct PerfectHashTable* p=DriverDistractionState_intHash::getPointer(s,strlen(s));
- return p ? static_cast<DriverDistractionState::DriverDistractionStateInternal>(p->idx) : DriverDistractionState::INVALID_ENUM;
-}
-
-
-bool DriverDistractionStateMarshaller::fromJSON(const Json::Value& s,DriverDistractionState& e)
-{
- e.mInternal=DriverDistractionState::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=DriverDistractionState::INVALID_ENUM);
-}
-
-
-Json::Value DriverDistractionStateMarshaller::toJSON(const DriverDistractionState& e)
-{
- if(e.mInternal==DriverDistractionState::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool DriverDistractionStateMarshaller::fromString(const std::string& s,DriverDistractionState& e)
-{
- e.mInternal=DriverDistractionState::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string DriverDistractionStateMarshaller::toString(const DriverDistractionState& e)
-{
- Json::FastWriter writer;
- return e.mInternal==DriverDistractionState::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable DriverDistractionStateMarshaller::mHashTable[2]=
-{
- {"DD_ON",0},
- {"DD_OFF",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.gp
deleted file mode 100644
index c0b6849cd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name DriverDistractionState_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-DD_ON,0
-DD_OFF,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.h
deleted file mode 100644
index 61e3c4bfd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_DRIVERDISTRACTIONSTATEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_DRIVERDISTRACTIONSTATEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/DriverDistractionState.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for DriverDistractionState
-
- class DriverDistractionStateMarshaller
- {
- public:
-
- static std::string toName(const DriverDistractionState& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(DriverDistractionState& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=DriverDistractionState::INVALID_ENUM;
- }
-
- static bool checkIntegrity(DriverDistractionState& e) { return e.mInternal!=DriverDistractionState::INVALID_ENUM; }
- static bool checkIntegrityConst(const DriverDistractionState& e) { return e.mInternal!=DriverDistractionState::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,DriverDistractionState& e);
- static const std::string toString(const DriverDistractionState& e);
-
- static bool fromJSON(const Json::Value& s,DriverDistractionState& e);
- static Json::Value toJSON(const DriverDistractionState& e);
-
- static const char* getName(DriverDistractionState::DriverDistractionStateInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const DriverDistractionState::DriverDistractionStateInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.inc
deleted file mode 100644
index 122d4837e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.inc
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 5
-#define MAX_WORD_LENGTH 6
-#define MIN_HASH_VALUE 5
-#define MAX_HASH_VALUE 6
-/* maximum key range = 2, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class DriverDistractionState_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-DriverDistractionState_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-DriverDistractionState_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 5, 6
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.gp"
- {"DD_ON",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/DriverDistractionStateMarshaller.gp"
- {"DD_OFF",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_request.cpp
deleted file mode 100644
index 7ae78baa3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_request.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_request.h"
-#include "EncodedSyncPData_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-EncodedSyncPData_request::~EncodedSyncPData_request(void)
-{
-}
-
-
-EncodedSyncPData_request::EncodedSyncPData_request(const EncodedSyncPData_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool EncodedSyncPData_request::checkIntegrity(void)
-{
- return EncodedSyncPData_requestMarshaller::checkIntegrity(*this);
-}
-
-
-EncodedSyncPData_request::EncodedSyncPData_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool EncodedSyncPData_request::set_data(const std::vector<std::string>& data_)
-{
- unsigned int i=data_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(data_[i].length()>10000) return false;
- }
- data=data_;
- return true;
-}
-
-
-
-
-const std::vector<std::string>& EncodedSyncPData_request::get_data(void) const
-{
- return data;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_requestMarshaller.cpp
deleted file mode 100644
index 7d94b0404..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_requestMarshaller.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_request.h"
-
-
-#include "EncodedSyncPData_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool EncodedSyncPData_requestMarshaller::checkIntegrity(EncodedSyncPData_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool EncodedSyncPData_requestMarshaller::fromString(const std::string& s,EncodedSyncPData_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string EncodedSyncPData_requestMarshaller::toString(const EncodedSyncPData_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool EncodedSyncPData_requestMarshaller::checkIntegrityConst(const EncodedSyncPData_request& s)
-{
- {
- unsigned int i=s.data.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.data[i].length()>10000) return false;
- }
- }
- return true;
-}
-
-Json::Value EncodedSyncPData_requestMarshaller::toJSON(const EncodedSyncPData_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["data"]=Json::Value(Json::arrayValue);
- json["data"].resize(e.data.size());
- for(unsigned int i=0;i<e.data.size();i++)
- json["data"][i]=Json::Value(e.data[i]);
-
- return json;
-}
-
-
-bool EncodedSyncPData_requestMarshaller::fromJSON(const Json::Value& json,EncodedSyncPData_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("data")) return false;
- {
- const Json::Value& j=json["data"];
- if(!j.isArray()) return false;
- c.data.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.data[i]=j[i].asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_requestMarshaller.h
deleted file mode 100644
index a8b37e8f6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ENCODEDSYNCPDATA_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ENCODEDSYNCPDATA_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct EncodedSyncPData_requestMarshaller
- {
- static bool checkIntegrity(EncodedSyncPData_request& e);
- static bool checkIntegrityConst(const EncodedSyncPData_request& e);
-
- static bool fromString(const std::string& s,EncodedSyncPData_request& e);
- static const std::string toString(const EncodedSyncPData_request& e);
-
- static bool fromJSON(const Json::Value& s,EncodedSyncPData_request& e);
- static Json::Value toJSON(const EncodedSyncPData_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_response.cpp
deleted file mode 100644
index 2c748c718..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_response.h"
-#include "EncodedSyncPData_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-EncodedSyncPData_response& EncodedSyncPData_response::operator =(const EncodedSyncPData_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-EncodedSyncPData_response::~EncodedSyncPData_response(void)
-{}
-
-
-EncodedSyncPData_response::EncodedSyncPData_response(const EncodedSyncPData_response& c)
-{
- *this = c;
-}
-
-bool EncodedSyncPData_response::checkIntegrity(void)
-{
- return EncodedSyncPData_responseMarshaller::checkIntegrity(*this);
-}
-
-EncodedSyncPData_response::EncodedSyncPData_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_responseMarshaller.cpp
deleted file mode 100644
index 23092f8dc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_response.h"
-#include "ResultMarshaller.h"
-
-#include "EncodedSyncPData_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool EncodedSyncPData_responseMarshaller::checkIntegrity(EncodedSyncPData_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool EncodedSyncPData_responseMarshaller::fromString(const std::string& s,EncodedSyncPData_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string EncodedSyncPData_responseMarshaller::toString(const EncodedSyncPData_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool EncodedSyncPData_responseMarshaller::checkIntegrityConst(const EncodedSyncPData_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value EncodedSyncPData_responseMarshaller::toJSON(const EncodedSyncPData_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool EncodedSyncPData_responseMarshaller::fromJSON(const Json::Value& json,EncodedSyncPData_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_responseMarshaller.h
deleted file mode 100644
index b0298055d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EncodedSyncPData_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ENCODEDSYNCPDATA_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ENCODEDSYNCPDATA_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct EncodedSyncPData_responseMarshaller
- {
- static bool checkIntegrity(EncodedSyncPData_response& e);
- static bool checkIntegrityConst(const EncodedSyncPData_response& e);
-
- static bool fromString(const std::string& s,EncodedSyncPData_response& e);
- static const std::string toString(const EncodedSyncPData_response& e);
-
- static bool fromJSON(const Json::Value& s,EncodedSyncPData_response& e);
- static Json::Value toJSON(const EncodedSyncPData_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_request.cpp
deleted file mode 100644
index af0fceaac..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_request.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_request.h"
-#include "EndAudioPassThru_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-EndAudioPassThru_request::~EndAudioPassThru_request(void)
-{
-}
-
-
-EndAudioPassThru_request::EndAudioPassThru_request(const EndAudioPassThru_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool EndAudioPassThru_request::checkIntegrity(void)
-{
- return EndAudioPassThru_requestMarshaller::checkIntegrity(*this);
-}
-
-
-EndAudioPassThru_request::EndAudioPassThru_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_requestMarshaller.cpp
deleted file mode 100644
index 02e625b33..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_requestMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_request.h"
-
-
-#include "EndAudioPassThru_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool EndAudioPassThru_requestMarshaller::checkIntegrity(EndAudioPassThru_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool EndAudioPassThru_requestMarshaller::fromString(const std::string& s,EndAudioPassThru_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string EndAudioPassThru_requestMarshaller::toString(const EndAudioPassThru_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool EndAudioPassThru_requestMarshaller::checkIntegrityConst(const EndAudioPassThru_request& s)
-{
- return true;
-}
-
-Json::Value EndAudioPassThru_requestMarshaller::toJSON(const EndAudioPassThru_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- return json;
-}
-
-
-bool EndAudioPassThru_requestMarshaller::fromJSON(const Json::Value& json,EndAudioPassThru_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_requestMarshaller.h
deleted file mode 100644
index 15b2c7e2d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ENDAUDIOPASSTHRU_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ENDAUDIOPASSTHRU_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct EndAudioPassThru_requestMarshaller
- {
- static bool checkIntegrity(EndAudioPassThru_request& e);
- static bool checkIntegrityConst(const EndAudioPassThru_request& e);
-
- static bool fromString(const std::string& s,EndAudioPassThru_request& e);
- static const std::string toString(const EndAudioPassThru_request& e);
-
- static bool fromJSON(const Json::Value& s,EndAudioPassThru_request& e);
- static Json::Value toJSON(const EndAudioPassThru_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_response.cpp
deleted file mode 100644
index 30b966b94..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_response.h"
-#include "EndAudioPassThru_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-EndAudioPassThru_response& EndAudioPassThru_response::operator =(const EndAudioPassThru_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-EndAudioPassThru_response::~EndAudioPassThru_response(void)
-{}
-
-EndAudioPassThru_response::EndAudioPassThru_response(const EndAudioPassThru_response& c)
-{
- *this = c;
-}
-
-bool EndAudioPassThru_response::checkIntegrity(void)
-{
- return EndAudioPassThru_responseMarshaller::checkIntegrity(*this);
-}
-
-EndAudioPassThru_response::EndAudioPassThru_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_responseMarshaller.cpp
deleted file mode 100644
index 9ebee48c8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_response.h"
-#include "ResultMarshaller.h"
-
-#include "EndAudioPassThru_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool EndAudioPassThru_responseMarshaller::checkIntegrity(EndAudioPassThru_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool EndAudioPassThru_responseMarshaller::fromString(const std::string& s,EndAudioPassThru_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string EndAudioPassThru_responseMarshaller::toString(const EndAudioPassThru_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool EndAudioPassThru_responseMarshaller::checkIntegrityConst(const EndAudioPassThru_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value EndAudioPassThru_responseMarshaller::toJSON(const EndAudioPassThru_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool EndAudioPassThru_responseMarshaller::fromJSON(const Json::Value& json,EndAudioPassThru_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_responseMarshaller.h
deleted file mode 100644
index 2f0e997b0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/EndAudioPassThru_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ENDAUDIOPASSTHRU_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ENDAUDIOPASSTHRU_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct EndAudioPassThru_responseMarshaller
- {
- static bool checkIntegrity(EndAudioPassThru_response& e);
- static bool checkIntegrityConst(const EndAudioPassThru_response& e);
-
- static bool fromString(const std::string& s,EndAudioPassThru_response& e);
- static const std::string toString(const EndAudioPassThru_response& e);
-
- static bool fromJSON(const Json::Value& s,EndAudioPassThru_response& e);
- static Json::Value toJSON(const EndAudioPassThru_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.cpp
deleted file mode 100644
index 787108cac..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/FileType.h"
-#include "FileTypeMarshaller.h"
-#include "FileTypeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const FileType::FileTypeInternal FileTypeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return FileType::INVALID_ENUM;
- const struct PerfectHashTable* p=FileType_intHash::getPointer(s,strlen(s));
- return p ? static_cast<FileType::FileTypeInternal>(p->idx) : FileType::INVALID_ENUM;
-}
-
-
-bool FileTypeMarshaller::fromJSON(const Json::Value& s,FileType& e)
-{
- e.mInternal=FileType::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=FileType::INVALID_ENUM);
-}
-
-
-Json::Value FileTypeMarshaller::toJSON(const FileType& e)
-{
- if(e.mInternal==FileType::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool FileTypeMarshaller::fromString(const std::string& s,FileType& e)
-{
- e.mInternal=FileType::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string FileTypeMarshaller::toString(const FileType& e)
-{
- Json::FastWriter writer;
- return e.mInternal==FileType::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable FileTypeMarshaller::mHashTable[5]=
-{
- {"GRAPHIC_BMP",0},
- {"GRAPHIC_JPEG",1},
- {"GRAPHIC_PNG",2},
- {"AUDIO_WAVE",3},
- {"AUDIO_MP3",4}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.gp
deleted file mode 100644
index b4d0f0af2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.gp
+++ /dev/null
@@ -1,21 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name FileType_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-GRAPHIC_BMP,0
-GRAPHIC_JPEG,1
-GRAPHIC_PNG,2
-AUDIO_WAVE,3
-AUDIO_MP3,4
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.h
deleted file mode 100644
index baee50d4a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_FILETYPEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_FILETYPEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/FileType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for FileType
-
- class FileTypeMarshaller
- {
- public:
-
- static std::string toName(const FileType& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(FileType& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=FileType::INVALID_ENUM;
- }
-
- static bool checkIntegrity(FileType& e) { return e.mInternal!=FileType::INVALID_ENUM; }
- static bool checkIntegrityConst(const FileType& e) { return e.mInternal!=FileType::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,FileType& e);
- static const std::string toString(const FileType& e);
-
- static bool fromJSON(const Json::Value& s,FileType& e);
- static Json::Value toJSON(const FileType& e);
-
- static const char* getName(FileType::FileTypeInternal e)
- {
- return (e>=0 && e<5) ? mHashTable[e].name : NULL;
- }
-
- static const FileType::FileTypeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[5];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.inc
deleted file mode 100644
index 1b8803d39..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.inc
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.gp */
-/* Computed positions: -k'9' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 5
-#define MIN_WORD_LENGTH 9
-#define MAX_WORD_LENGTH 12
-#define MIN_HASH_VALUE 9
-#define MAX_HASH_VALUE 16
-/* maximum key range = 8, duplicates = 0 */
-
-class FileType_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-FileType_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 0, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 5, 17, 17, 17,
- 17, 17, 17, 17, 0, 17, 17, 17, 17, 17,
- 0, 17, 17, 17, 17, 17, 0, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17
- };
- return len + asso_values[(unsigned char)str[8]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-FileType_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 11, 12, 0,
- 0, 0, 11
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.gp"
- {"AUDIO_MP3",4},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.gp"
- {"AUDIO_WAVE",3},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.gp"
- {"GRAPHIC_PNG",2},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.gp"
- {"GRAPHIC_JPEG",1},
- {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FileTypeMarshaller.gp"
- {"GRAPHIC_BMP",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.cpp
deleted file mode 100644
index b6f59765b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/FunctionID.h"
-#include "FunctionIDMarshaller.h"
-#include "FunctionIDMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const FunctionID::FunctionIDInternal FunctionIDMarshaller::getIndex(const char* s)
-{
- if(!s)
- return FunctionID::INVALID_ENUM;
- const struct PerfectHashTable* p=FunctionID_intHash::getPointer(s,strlen(s));
- return p ? static_cast<FunctionID::FunctionIDInternal>(p->idx) : FunctionID::INVALID_ENUM;
-}
-
-
-bool FunctionIDMarshaller::fromJSON(const Json::Value& s,FunctionID& e)
-{
- e.mInternal=FunctionID::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=FunctionID::INVALID_ENUM);
-}
-
-
-Json::Value FunctionIDMarshaller::toJSON(const FunctionID& e)
-{
- if(e.mInternal==FunctionID::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool FunctionIDMarshaller::fromString(const std::string& s,FunctionID& e)
-{
- e.mInternal=FunctionID::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string FunctionIDMarshaller::toString(const FunctionID& e)
-{
- Json::FastWriter writer;
- return e.mInternal==FunctionID::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable FunctionIDMarshaller::mHashTable[51]=
-{
- {"RESERVED",0},
- {"RegisterAppInterfaceID",1},
- {"UnregisterAppInterfaceID",2},
- {"SetGlobalPropertiesID",3},
- {"ResetGlobalPropertiesID",4},
- {"AddCommandID",5},
- {"DeleteCommandID",6},
- {"AddSubMenuID",7},
- {"DeleteSubMenuID",8},
- {"CreateInteractionChoiceSetID",9},
- {"PerformInteractionID",10},
- {"DeleteInteractionChoiceSetID",11},
- {"AlertID",12},
- {"ShowID",13},
- {"SpeakID",14},
- {"SetMediaClockTimerID",15},
- {"EncodedSyncPDataID",16},
- {"DialNumberID",17},
- {"PerformAudioPassThruID",18},
- {"EndAudioPassThruID",19},
- {"SubscribeButtonID",20},
- {"UnsubscribeButtonID",21},
- {"SubscribeVehicleDataID",22},
- {"UnsubscribeVehicleDataID",23},
- {"GetVehicleDataID",24},
- {"ReadDIDID",25},
- {"GetDTCsID",26},
- {"ScrollableMessageID",27},
- {"SliderID",28},
- {"ShowConstantTBTID",29},
- {"AlertManeuverID",30},
- {"UpdateTurnListID",31},
- {"ChangeRegistrationID",32},
- {"GenericResponseID",33},
- {"PutFileID",34},
- {"DeleteFileID",35},
- {"ListFilesID",36},
- {"SetAppIconID",37},
- {"SetDisplayLayoutID",38},
- {"OnHMIStatusID",39},
- {"OnAppInterfaceUnregisteredID",40},
- {"OnButtonEventID",41},
- {"OnButtonPressID",42},
- {"OnVehicleDataID",43},
- {"OnCommandID",44},
- {"OnEncodedSyncPDataID",45},
- {"OnTBTClientStateID",46},
- {"OnDriverDistractionID",47},
- {"OnPermissionsChangeID",48},
- {"OnAudioPassThruID",49},
- {"OnLanguageChangeID",50}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp
deleted file mode 100644
index 8b63cd618..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp
+++ /dev/null
@@ -1,67 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name FunctionID_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-RESERVED,0
-RegisterAppInterfaceID,1
-UnregisterAppInterfaceID,2
-SetGlobalPropertiesID,3
-ResetGlobalPropertiesID,4
-AddCommandID,5
-DeleteCommandID,6
-AddSubMenuID,7
-DeleteSubMenuID,8
-CreateInteractionChoiceSetID,9
-PerformInteractionID,10
-DeleteInteractionChoiceSetID,11
-AlertID,12
-ShowID,13
-SpeakID,14
-SetMediaClockTimerID,15
-EncodedSyncPDataID,16
-DialNumberID,17
-PerformAudioPassThruID,18
-EndAudioPassThruID,19
-SubscribeButtonID,20
-UnsubscribeButtonID,21
-SubscribeVehicleDataID,22
-UnsubscribeVehicleDataID,23
-GetVehicleDataID,24
-ReadDIDID,25
-GetDTCsID,26
-ScrollableMessageID,27
-SliderID,28
-ShowConstantTBTID,29
-AlertManeuverID,30
-UpdateTurnListID,31
-ChangeRegistrationID,32
-GenericResponseID,33
-PutFileID,34
-DeleteFileID,35
-ListFilesID,36
-SetAppIconID,37
-SetDisplayLayoutID,38
-OnHMIStatusID,39
-OnAppInterfaceUnregisteredID,40
-OnButtonEventID,41
-OnButtonPressID,42
-OnVehicleDataID,43
-OnCommandID,44
-OnEncodedSyncPDataID,45
-OnTBTClientStateID,46
-OnDriverDistractionID,47
-OnPermissionsChangeID,48
-OnAudioPassThruID,49
-OnLanguageChangeID,50
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.h
deleted file mode 100644
index 8886f7fa8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_FUNCTIONIDMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_FUNCTIONIDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/FunctionID.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for FunctionID
-
- class FunctionIDMarshaller
- {
- public:
-
- static std::string toName(const FunctionID& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(FunctionID& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=FunctionID::INVALID_ENUM;
- }
-
- static bool checkIntegrity(FunctionID& e) { return e.mInternal!=FunctionID::INVALID_ENUM; }
- static bool checkIntegrityConst(const FunctionID& e) { return e.mInternal!=FunctionID::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,FunctionID& e);
- static const std::string toString(const FunctionID& e);
-
- static bool fromJSON(const Json::Value& s,FunctionID& e);
- static Json::Value toJSON(const FunctionID& e);
-
- static const char* getName(FunctionID::FunctionIDInternal e)
- {
- return (e>=0 && e<51) ? mHashTable[e].name : NULL;
- }
-
- static const FunctionID::FunctionIDInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[51];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.inc
deleted file mode 100644
index 132b431b9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.inc
+++ /dev/null
@@ -1,273 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp */
-/* Computed positions: -k'4,9' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 51
-#define MIN_WORD_LENGTH 6
-#define MAX_WORD_LENGTH 28
-#define MIN_HASH_VALUE 7
-#define MAX_HASH_VALUE 72
-/* maximum key range = 66, duplicates = 0 */
-
-class FunctionID_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-FunctionID_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 35, 0, 45, 0, 0,
- 45, 10, 73, 73, 73, 73, 73, 10, 73, 73,
- 73, 0, 73, 35, 73, 73, 10, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 0, 25, 30,
- 5, 10, 0, 73, 15, 35, 0, 73, 40, 15,
- 15, 15, 20, 73, 5, 0, 0, 0, 25, 15,
- 73, 73, 25, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[8]+1];
- /*FALLTHROUGH*/
- case 8:
- case 7:
- case 6:
- case 5:
- case 4:
- hval += asso_values[(unsigned char)str[3]];
- break;
- }
- return hval;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-FunctionID_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 11, 7, 8,
- 9, 15, 16, 17, 18, 19, 15, 6, 22, 13, 24, 15, 21, 17,
- 28, 0, 20, 21, 17, 18, 24, 20, 11, 12, 28, 0, 15, 16,
- 17, 18, 0, 20, 21, 22, 28, 19, 20, 0, 12, 18, 9, 15,
- 0, 22, 18, 0, 15, 0, 12, 23, 0, 0, 0, 12, 0, 0,
- 0, 0, 12
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 31 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"SpeakID",14},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"RESERVED",0},
-#line 43 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"GetDTCsID",26},
- {""},
-#line 53 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"ListFilesID",36},
-#line 29 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"AlertID",12},
-#line 45 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"SliderID",28},
-#line 42 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"ReadDIDID",25},
-#line 59 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnButtonPressID",42},
-#line 48 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"UpdateTurnListID",31},
-#line 37 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"SubscribeButtonID",20},
-#line 63 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnTBTClientStateID",46},
-#line 38 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"UnsubscribeButtonID",21},
-#line 47 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"AlertManeuverID",30},
-#line 30 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"ShowID",13},
-#line 39 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"SubscribeVehicleDataID",22},
-#line 56 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnHMIStatusID",39},
-#line 40 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"UnsubscribeVehicleDataID",23},
-#line 60 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnVehicleDataID",43},
-#line 64 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnDriverDistractionID",47},
-#line 50 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"GenericResponseID",33},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"CreateInteractionChoiceSetID",9},
- {""},
-#line 32 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"SetMediaClockTimerID",15},
-#line 65 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnPermissionsChangeID",48},
-#line 46 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"ShowConstantTBTID",29},
-#line 67 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnLanguageChangeID",50},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"UnregisterAppInterfaceID",2},
-#line 27 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"PerformInteractionID",10},
-#line 61 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnCommandID",44},
-#line 52 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"DeleteFileID",35},
-#line 28 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"DeleteInteractionChoiceSetID",11},
- {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"DeleteCommandID",6},
-#line 41 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"GetVehicleDataID",24},
-#line 66 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnAudioPassThruID",49},
-#line 55 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"SetDisplayLayoutID",38},
- {""},
-#line 62 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnEncodedSyncPDataID",45},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"SetGlobalPropertiesID",3},
-#line 35 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"PerformAudioPassThruID",18},
-#line 57 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnAppInterfaceUnregisteredID",40},
-#line 44 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"ScrollableMessageID",27},
-#line 49 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"ChangeRegistrationID",32},
- {""},
-#line 34 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"DialNumberID",17},
-#line 36 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"EndAudioPassThruID",19},
-#line 51 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"PutFileID",34},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"DeleteSubMenuID",8},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"RegisterAppInterfaceID",1},
-#line 33 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"EncodedSyncPDataID",16},
- {""},
-#line 58 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"OnButtonEventID",41},
- {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"AddSubMenuID",7},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"ResetGlobalPropertiesID",4},
- {""}, {""}, {""},
-#line 54 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"SetAppIconID",37},
- {""}, {""}, {""}, {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/FunctionIDMarshaller.gp"
- {"AddCommandID",5}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSData.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSData.cpp
deleted file mode 100644
index c2c81057d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSData.cpp
+++ /dev/null
@@ -1,306 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GPSData.h"
-#include "GPSDataMarshaller.h"
-#include "CompassDirectionMarshaller.h"
-#include "DimensionMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-GPSData::GPSData(const GPSData& c)
-{
- *this=c;
-}
-
-
-bool GPSData::checkIntegrity(void)
-{
- return GPSDataMarshaller::checkIntegrity(*this);
-}
-
-
-GPSData::GPSData(void)
-{
-}
-
-
-
-bool GPSData::set_actual(bool actual_)
-{
- actual=actual_;
- return true;
-}
-
-bool GPSData::set_altitude(int altitude_)
-{
- if(altitude_>10000) return false;
- altitude=altitude_;
- return true;
-}
-
-bool GPSData::set_compassDirection(const CompassDirection& compassDirection_)
-{
- if(!CompassDirectionMarshaller::checkIntegrityConst(compassDirection_)) return false;
- compassDirection=compassDirection_;
- return true;
-}
-
-bool GPSData::set_dimension(const Dimension& dimension_)
-{
- if(!DimensionMarshaller::checkIntegrityConst(dimension_)) return false;
- dimension=dimension_;
- return true;
-}
-
-bool GPSData::set_hdop(unsigned int hdop_)
-{
- if(hdop_>31) return false;
- hdop=hdop_;
- return true;
-}
-
-bool GPSData::set_heading(unsigned int heading_)
-{
- if(heading_>360) return false;
- heading=heading_;
- return true;
-}
-
-bool GPSData::set_latitudeDegrees(int latitudeDegrees_)
-{
- if(latitudeDegrees_>1000000000) return false;
- latitudeDegrees=latitudeDegrees_;
- return true;
-}
-
-bool GPSData::set_longitudeDegrees(int longitudeDegrees_)
-{
- if(longitudeDegrees_>1000000000) return false;
- longitudeDegrees=longitudeDegrees_;
- return true;
-}
-
-bool GPSData::set_pdop(unsigned int pdop_)
-{
- if(pdop_>31) return false;
- pdop=pdop_;
- return true;
-}
-
-bool GPSData::set_satellites(unsigned int satellites_)
-{
- if(satellites_>31) return false;
- satellites=satellites_;
- return true;
-}
-
-bool GPSData::set_speed(unsigned int speed_)
-{
- if(speed_>400) return false;
- speed=speed_;
- return true;
-}
-
-bool GPSData::set_utcDay(unsigned int utcDay_)
-{
- if(utcDay_>31) return false;
- if(utcDay_<1) return false;
- utcDay=utcDay_;
- return true;
-}
-
-bool GPSData::set_utcHours(unsigned int utcHours_)
-{
- if(utcHours_>23) return false;
- utcHours=utcHours_;
- return true;
-}
-
-bool GPSData::set_utcMinutes(unsigned int utcMinutes_)
-{
- if(utcMinutes_>59) return false;
- utcMinutes=utcMinutes_;
- return true;
-}
-
-bool GPSData::set_utcMonth(unsigned int utcMonth_)
-{
- if(utcMonth_>12) return false;
- if(utcMonth_<1) return false;
- utcMonth=utcMonth_;
- return true;
-}
-
-bool GPSData::set_utcSeconds(unsigned int utcSeconds_)
-{
- if(utcSeconds_>59) return false;
- utcSeconds=utcSeconds_;
- return true;
-}
-
-bool GPSData::set_utcYear(unsigned int utcYear_)
-{
- if(utcYear_>2100) return false;
- if(utcYear_<2010) return false;
- utcYear=utcYear_;
- return true;
-}
-
-bool GPSData::set_vdop(unsigned int vdop_)
-{
- if(vdop_>31) return false;
- vdop=vdop_;
- return true;
-}
-
-
-
-
-bool GPSData::get_actual(void) const
-{
- return actual;
-}
-
-
-int GPSData::get_altitude(void) const
-{
- return altitude;
-}
-
-
-const CompassDirection& GPSData::get_compassDirection(void) const
-{
- return compassDirection;
-}
-
-
-const Dimension& GPSData::get_dimension(void) const
-{
- return dimension;
-}
-
-
-unsigned int GPSData::get_hdop(void) const
-{
- return hdop;
-}
-
-
-unsigned int GPSData::get_heading(void) const
-{
- return heading;
-}
-
-
-int GPSData::get_latitudeDegrees(void) const
-{
- return latitudeDegrees;
-}
-
-
-int GPSData::get_longitudeDegrees(void) const
-{
- return longitudeDegrees;
-}
-
-
-unsigned int GPSData::get_pdop(void) const
-{
- return pdop;
-}
-
-
-unsigned int GPSData::get_satellites(void) const
-{
- return satellites;
-}
-
-
-unsigned int GPSData::get_speed(void) const
-{
- return speed;
-}
-
-
-unsigned int GPSData::get_utcDay(void) const
-{
- return utcDay;
-}
-
-
-unsigned int GPSData::get_utcHours(void) const
-{
- return utcHours;
-}
-
-
-unsigned int GPSData::get_utcMinutes(void) const
-{
- return utcMinutes;
-}
-
-
-unsigned int GPSData::get_utcMonth(void) const
-{
- return utcMonth;
-}
-
-
-unsigned int GPSData::get_utcSeconds(void) const
-{
- return utcSeconds;
-}
-
-
-unsigned int GPSData::get_utcYear(void) const
-{
- return utcYear;
-}
-
-
-unsigned int GPSData::get_vdop(void) const
-{
- return vdop;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSDataMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSDataMarshaller.cpp
deleted file mode 100644
index 51ff8cb54..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSDataMarshaller.cpp
+++ /dev/null
@@ -1,279 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GPSData.h"
-#include "CompassDirectionMarshaller.h"
-#include "DimensionMarshaller.h"
-
-#include "GPSDataMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool GPSDataMarshaller::checkIntegrity(GPSData& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GPSDataMarshaller::fromString(const std::string& s,GPSData& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GPSDataMarshaller::toString(const GPSData& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GPSDataMarshaller::checkIntegrityConst(const GPSData& s)
-{
- if(s.altitude>10000) return false;
- if(s.altitude<-10000) return false;
- if(!CompassDirectionMarshaller::checkIntegrityConst(s.compassDirection)) return false;
- if(!DimensionMarshaller::checkIntegrityConst(s.dimension)) return false;
- if(s.hdop>31) return false;
- if(s.heading>360) return false;
- if(s.latitudeDegrees>1000000000) return false;
- if(s.latitudeDegrees<-1000000000) return false;
- if(s.longitudeDegrees>1000000000) return false;
- if(s.longitudeDegrees<-1000000000) return false;
- if(s.pdop>31) return false;
- if(s.satellites>31) return false;
- if(s.speed>400) return false;
- if(s.utcDay>31) return false;
- if(s.utcDay<1) return false;
- if(s.utcHours>23) return false;
- if(s.utcMinutes>59) return false;
- if(s.utcMonth>12) return false;
- if(s.utcMonth<1) return false;
- if(s.utcSeconds>59) return false;
- if(s.utcYear>2100) return false;
- if(s.utcYear<2010) return false;
- if(s.vdop>31) return false;
- return true;
-}
-
-Json::Value GPSDataMarshaller::toJSON(const GPSData& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["actual"]=Json::Value(e.actual);
-
- json["altitude"]=Json::Value(e.altitude);
-
- json["compassDirection"]=CompassDirectionMarshaller::toJSON(e.compassDirection);
-
- json["dimension"]=DimensionMarshaller::toJSON(e.dimension);
-
- json["hdop"]=Json::Value(e.hdop);
-
- json["heading"]=Json::Value(e.heading);
-
- json["latitudeDegrees"]=Json::Value(e.latitudeDegrees);
-
- json["longitudeDegrees"]=Json::Value(e.longitudeDegrees);
-
- json["pdop"]=Json::Value(e.pdop);
-
- json["satellites"]=Json::Value(e.satellites);
-
- json["speed"]=Json::Value(e.speed);
-
- json["utcDay"]=Json::Value(e.utcDay);
-
- json["utcHours"]=Json::Value(e.utcHours);
-
- json["utcMinutes"]=Json::Value(e.utcMinutes);
-
- json["utcMonth"]=Json::Value(e.utcMonth);
-
- json["utcSeconds"]=Json::Value(e.utcSeconds);
-
- json["utcYear"]=Json::Value(e.utcYear);
-
- json["vdop"]=Json::Value(e.vdop);
-
-
- return json;
-}
-
-
-bool GPSDataMarshaller::fromJSON(const Json::Value& json,GPSData& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("actual")) return false;
- {
- const Json::Value& j=json["actual"];
- if(!j.isBool()) return false;
- c.actual=j.asBool();
- }
- if(!json.isMember("altitude")) return false;
- {
- const Json::Value& j=json["altitude"];
- if(!j.isInt()) return false;
- c.altitude=j.asInt();
- }
- if(!json.isMember("compassDirection")) return false;
- {
- const Json::Value& j=json["compassDirection"];
- if(!CompassDirectionMarshaller::fromJSON(j,c.compassDirection))
- return false;
- }
- if(!json.isMember("dimension")) return false;
- {
- const Json::Value& j=json["dimension"];
- if(!DimensionMarshaller::fromJSON(j,c.dimension))
- return false;
- }
- if(!json.isMember("hdop")) return false;
- {
- const Json::Value& j=json["hdop"];
- if(!j.isInt()) return false;
- c.hdop=j.asInt();
- }
- if(!json.isMember("heading")) return false;
- {
- const Json::Value& j=json["heading"];
- if(!j.isInt()) return false;
- c.heading=j.asInt();
- }
- if(!json.isMember("latitudeDegrees")) return false;
- {
- const Json::Value& j=json["latitudeDegrees"];
- if(!j.isInt()) return false;
- c.latitudeDegrees=j.asInt();
- }
- if(!json.isMember("longitudeDegrees")) return false;
- {
- const Json::Value& j=json["longitudeDegrees"];
- if(!j.isInt()) return false;
- c.longitudeDegrees=j.asInt();
- }
- if(!json.isMember("pdop")) return false;
- {
- const Json::Value& j=json["pdop"];
- if(!j.isInt()) return false;
- c.pdop=j.asInt();
- }
- if(!json.isMember("satellites")) return false;
- {
- const Json::Value& j=json["satellites"];
- if(!j.isInt()) return false;
- c.satellites=j.asInt();
- }
- if(!json.isMember("speed")) return false;
- {
- const Json::Value& j=json["speed"];
- if(!j.isInt()) return false;
- c.speed=j.asInt();
- }
- if(!json.isMember("utcDay")) return false;
- {
- const Json::Value& j=json["utcDay"];
- if(!j.isInt()) return false;
- c.utcDay=j.asInt();
- }
- if(!json.isMember("utcHours")) return false;
- {
- const Json::Value& j=json["utcHours"];
- if(!j.isInt()) return false;
- c.utcHours=j.asInt();
- }
- if(!json.isMember("utcMinutes")) return false;
- {
- const Json::Value& j=json["utcMinutes"];
- if(!j.isInt()) return false;
- c.utcMinutes=j.asInt();
- }
- if(!json.isMember("utcMonth")) return false;
- {
- const Json::Value& j=json["utcMonth"];
- if(!j.isInt()) return false;
- c.utcMonth=j.asInt();
- }
- if(!json.isMember("utcSeconds")) return false;
- {
- const Json::Value& j=json["utcSeconds"];
- if(!j.isInt()) return false;
- c.utcSeconds=j.asInt();
- }
- if(!json.isMember("utcYear")) return false;
- {
- const Json::Value& j=json["utcYear"];
- if(!j.isInt()) return false;
- c.utcYear=j.asInt();
- }
- if(!json.isMember("vdop")) return false;
- {
- const Json::Value& j=json["vdop"];
- if(!j.isInt()) return false;
- c.vdop=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSDataMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSDataMarshaller.h
deleted file mode 100644
index bdc6a0cf6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GPSDataMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_GPSDATAMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_GPSDATAMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GPSData.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct GPSDataMarshaller
- {
- static bool checkIntegrity(GPSData& e);
- static bool checkIntegrityConst(const GPSData& e);
-
- static bool fromString(const std::string& s,GPSData& e);
- static const std::string toString(const GPSData& e);
-
- static bool fromJSON(const Json::Value& s,GPSData& e);
- static Json::Value toJSON(const GPSData& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_response.cpp
deleted file mode 100644
index 9d5e427cd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GenericResponse_response.h"
-#include "GenericResponse_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-GenericResponse_response& GenericResponse_response::operator =(const GenericResponse_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-GenericResponse_response::~GenericResponse_response(void)
-{}
-
-GenericResponse_response::GenericResponse_response(const GenericResponse_response& c)
-{
- *this = c;
-}
-
-bool GenericResponse_response::checkIntegrity(void)
-{
- return GenericResponse_responseMarshaller::checkIntegrity(*this);
-}
-
-GenericResponse_response::GenericResponse_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_responseMarshaller.cpp
deleted file mode 100644
index 5c9e368fb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GenericResponse_response.h"
-#include "ResultMarshaller.h"
-
-#include "GenericResponse_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool GenericResponse_responseMarshaller::checkIntegrity(GenericResponse_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GenericResponse_responseMarshaller::fromString(const std::string& s,GenericResponse_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GenericResponse_responseMarshaller::toString(const GenericResponse_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GenericResponse_responseMarshaller::checkIntegrityConst(const GenericResponse_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value GenericResponse_responseMarshaller::toJSON(const GenericResponse_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool GenericResponse_responseMarshaller::fromJSON(const Json::Value& json,GenericResponse_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_responseMarshaller.h
deleted file mode 100644
index c1807bec3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GenericResponse_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_GENERICRESPONSE_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_GENERICRESPONSE_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GenericResponse_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct GenericResponse_responseMarshaller
- {
- static bool checkIntegrity(GenericResponse_response& e);
- static bool checkIntegrityConst(const GenericResponse_response& e);
-
- static bool fromString(const std::string& s,GenericResponse_response& e);
- static const std::string toString(const GenericResponse_response& e);
-
- static bool fromJSON(const Json::Value& s,GenericResponse_response& e);
- static Json::Value toJSON(const GenericResponse_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_request.cpp
deleted file mode 100644
index d4a63caed..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_request.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetDTCs_request.h"
-#include "GetDTCs_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-GetDTCs_request& GetDTCs_request::operator =(const GetDTCs_request& c)
-{
- ecuName= c.ecuName;
- encrypted= c.encrypted ? new bool(c.encrypted[0]) : 0;
-
- return *this;
-}
-
-
-GetDTCs_request::~GetDTCs_request(void)
-{
- if(encrypted)
- delete encrypted;
-}
-
-
-GetDTCs_request::GetDTCs_request(const GetDTCs_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool GetDTCs_request::checkIntegrity(void)
-{
- return GetDTCs_requestMarshaller::checkIntegrity(*this);
-}
-
-
-GetDTCs_request::GetDTCs_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- encrypted(0)
-{
-}
-
-
-
-bool GetDTCs_request::set_ecuName(unsigned int ecuName_)
-{
- if(ecuName_>65535) return false;
- ecuName=ecuName_;
- return true;
-}
-
-bool GetDTCs_request::set_encrypted(bool encrypted_)
-{
- delete encrypted;
- encrypted=0;
-
- encrypted=new bool(encrypted_);
- return true;
-}
-
-void GetDTCs_request::reset_encrypted(void)
-{
- if(encrypted)
- delete encrypted;
- encrypted=0;
-}
-
-
-
-
-unsigned int GetDTCs_request::get_ecuName(void) const
-{
- return ecuName;
-}
-
-const bool* GetDTCs_request::get_encrypted(void) const
-{
- return encrypted;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_requestMarshaller.cpp
deleted file mode 100644
index c42f45cae..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_requestMarshaller.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetDTCs_request.h"
-
-
-#include "GetDTCs_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool GetDTCs_requestMarshaller::checkIntegrity(GetDTCs_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetDTCs_requestMarshaller::fromString(const std::string& s,GetDTCs_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetDTCs_requestMarshaller::toString(const GetDTCs_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetDTCs_requestMarshaller::checkIntegrityConst(const GetDTCs_request& s)
-{
- if(s.ecuName>65535) return false;
- return true;
-}
-
-Json::Value GetDTCs_requestMarshaller::toJSON(const GetDTCs_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["ecuName"]=Json::Value(e.ecuName);
-
- if(e.encrypted)
- json["encrypted"]=Json::Value(*e.encrypted);
-
- return json;
-}
-
-
-bool GetDTCs_requestMarshaller::fromJSON(const Json::Value& json,GetDTCs_request& c)
-{
- if(c.encrypted) delete c.encrypted;
- c.encrypted=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("ecuName")) return false;
- {
- const Json::Value& j=json["ecuName"];
- if(!j.isInt()) return false;
- c.ecuName=j.asInt();
- }
- if(json.isMember("encrypted"))
- {
- const Json::Value& j=json["encrypted"];
- if(!j.isBool()) return false;
- c.encrypted=new bool(j.asBool());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_requestMarshaller.h
deleted file mode 100644
index b97b568b4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_GETDTCS_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_GETDTCS_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetDTCs_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct GetDTCs_requestMarshaller
- {
- static bool checkIntegrity(GetDTCs_request& e);
- static bool checkIntegrityConst(const GetDTCs_request& e);
-
- static bool fromString(const std::string& s,GetDTCs_request& e);
- static const std::string toString(const GetDTCs_request& e);
-
- static bool fromJSON(const Json::Value& s,GetDTCs_request& e);
- static Json::Value toJSON(const GetDTCs_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_response.cpp
deleted file mode 100644
index 66d209abf..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_response.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetDTCs_response.h"
-#include "GetDTCs_responseMarshaller.h"
-#include "DTCMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-GetDTCs_response& GetDTCs_response::operator =(const GetDTCs_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
- dtcList = c.dtcList ? new std::vector<DTC>(c.dtcList[0]) : 0;
-
- return *this;
-}
-
-GetDTCs_response::~GetDTCs_response(void)
-{
- if (dtcList)
- {
- delete dtcList;
- }
-}
-
-GetDTCs_response::GetDTCs_response(const GetDTCs_response& c)
-{
- *this = c;
-}
-
-bool GetDTCs_response::checkIntegrity(void)
-{
- return GetDTCs_responseMarshaller::checkIntegrity(*this);
-}
-
-GetDTCs_response::GetDTCs_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
- , dtcList(0)
-{}
-
-bool GetDTCs_response::set_dtcList(const std::vector<DTC>& dtcList_)
-{
- unsigned int i = dtcList_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
-
- while (i--)
- {
- if (!DTCMarshaller::checkIntegrityConst(dtcList_[i]))
- {
- return false;
- }
- }
-
- delete dtcList;
- dtcList = 0;
-
- dtcList = new std::vector<DTC>(dtcList_);
- return true;
-}
-
-void GetDTCs_response::reset_dtcList(void)
-{
- if (dtcList)
- {
- delete dtcList;
- }
- dtcList = 0;
-}
-
-const std::vector<DTC>* GetDTCs_response::get_dtcList(void) const
-{
- return dtcList;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_responseMarshaller.cpp
deleted file mode 100644
index b4980c1df..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_responseMarshaller.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetDTCs_response.h"
-#include "DTCMarshaller.h"
-#include "ResultMarshaller.h"
-
-#include "GetDTCs_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool GetDTCs_responseMarshaller::checkIntegrity(GetDTCs_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetDTCs_responseMarshaller::fromString(const std::string& s,GetDTCs_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetDTCs_responseMarshaller::toString(const GetDTCs_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetDTCs_responseMarshaller::checkIntegrityConst(const GetDTCs_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- if(s.dtcList)
- {
- unsigned int i=s.dtcList[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!DTCMarshaller::checkIntegrityConst(s.dtcList[0][i])) return false;
- }
- }
- return true;
-}
-
-Json::Value GetDTCs_responseMarshaller::toJSON(const GetDTCs_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- if(e.dtcList)
- {
- unsigned int sz=e.dtcList->size();
- json["dtcList"]=Json::Value(Json::arrayValue);
- json["dtcList"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["dtcList"][i]=DTCMarshaller::toJSON(e.dtcList[0][i]);
- }
-
- return json;
-}
-
-
-bool GetDTCs_responseMarshaller::fromJSON(const Json::Value& json,GetDTCs_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- if(c.dtcList) delete c.dtcList;
- c.dtcList=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
- if(json.isMember("dtcList"))
- {
- const Json::Value& j=json["dtcList"];
- if(!j.isArray()) return false;
- c.dtcList=new std::vector<DTC>();
- c.dtcList->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- DTC t;
- if(!DTCMarshaller::fromJSON(j[i],t))
- return false;
- c.dtcList[0][i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_responseMarshaller.h
deleted file mode 100644
index 699f44c2d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetDTCs_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_GETDTCS_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_GETDTCS_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetDTCs_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct GetDTCs_responseMarshaller
- {
- static bool checkIntegrity(GetDTCs_response& e);
- static bool checkIntegrityConst(const GetDTCs_response& e);
-
- static bool fromString(const std::string& s,GetDTCs_response& e);
- static const std::string toString(const GetDTCs_response& e);
-
- static bool fromJSON(const Json::Value& s,GetDTCs_response& e);
- static Json::Value toJSON(const GetDTCs_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_request.cpp
deleted file mode 100644
index 6dda35120..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_request.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_request.h"
-#include "GetVehicleData_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "VehicleDataTypeMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-GetVehicleData_request::~GetVehicleData_request(void)
-{
-}
-
-
-GetVehicleData_request::GetVehicleData_request(const GetVehicleData_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool GetVehicleData_request::checkIntegrity(void)
-{
- return GetVehicleData_requestMarshaller::checkIntegrity(*this);
-}
-
-
-GetVehicleData_request::GetVehicleData_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool GetVehicleData_request::set_dataType(const VehicleDataType& dataType_)
-{
- if(!VehicleDataTypeMarshaller::checkIntegrityConst(dataType_)) return false;
- dataType=dataType_;
- return true;
-}
-
-
-
-
-const VehicleDataType& GetVehicleData_request::get_dataType(void) const
-{
- return dataType;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_requestMarshaller.cpp
deleted file mode 100644
index 58b1e5b18..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_requestMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_request.h"
-#include "VehicleDataTypeMarshaller.h"
-
-#include "GetVehicleData_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool GetVehicleData_requestMarshaller::checkIntegrity(GetVehicleData_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetVehicleData_requestMarshaller::fromString(const std::string& s,GetVehicleData_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetVehicleData_requestMarshaller::toString(const GetVehicleData_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetVehicleData_requestMarshaller::checkIntegrityConst(const GetVehicleData_request& s)
-{
- if(!VehicleDataTypeMarshaller::checkIntegrityConst(s.dataType)) return false;
- return true;
-}
-
-Json::Value GetVehicleData_requestMarshaller::toJSON(const GetVehicleData_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["dataType"]=VehicleDataTypeMarshaller::toJSON(e.dataType);
-
- return json;
-}
-
-
-bool GetVehicleData_requestMarshaller::fromJSON(const Json::Value& json,GetVehicleData_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("dataType")) return false;
- {
- const Json::Value& j=json["dataType"];
- if(!VehicleDataTypeMarshaller::fromJSON(j,c.dataType))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_requestMarshaller.h
deleted file mode 100644
index 556419cff..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_GETVEHICLEDATA_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_GETVEHICLEDATA_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct GetVehicleData_requestMarshaller
- {
- static bool checkIntegrity(GetVehicleData_request& e);
- static bool checkIntegrityConst(const GetVehicleData_request& e);
-
- static bool fromString(const std::string& s,GetVehicleData_request& e);
- static const std::string toString(const GetVehicleData_request& e);
-
- static bool fromJSON(const Json::Value& s,GetVehicleData_request& e);
- static Json::Value toJSON(const GetVehicleData_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_response.cpp
deleted file mode 100644
index 2565bb9b6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_response.cpp
+++ /dev/null
@@ -1,670 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_response.h"
-#include "GetVehicleData_responseMarshaller.h"
-#include "GPSDataMarshaller.h"
-#include "PRNDLMarshaller.h"
-#include "TireStatusMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-GetVehicleData_response& GetVehicleData_response::operator =(const GetVehicleData_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
- gps = c.gps ? new GPSData(c.gps[0]) : 0;
- speed = c.speed ? new float(c.speed[0]) : 0;
- rpm = c.rpm ? new unsigned int(c.rpm[0]) : 0;
- fuelLevel = c.fuelLevel ? new float(c.fuelLevel[0]) : 0;
- avgFuelEconomy = c.avgFuelEconomy ? new float(c.avgFuelEconomy[0]) : 0;
- batteryVoltage = c.batteryVoltage ? new float(c.batteryVoltage[0]) : 0;
- externalTemperature = c.externalTemperature ? new float(c.externalTemperature[0]) : 0;
- vin = c.vin ? new std::string(c.vin[0]) : 0;
- prndl = c.prndl ? new PRNDL(c.prndl[0]) : 0;
- tirePressure = c.tirePressure ? new TireStatus(c.tirePressure[0]) : 0;
- batteryPackVoltage = c.batteryPackVoltage ? new float(c.batteryPackVoltage[0]) : 0;
- batteryPackCurrent = c.batteryPackCurrent ? new float(c.batteryPackCurrent[0]) : 0;
- batteryPackTemperature = c.batteryPackTemperature ? new int(c.batteryPackTemperature[0]) : 0;
- engineTorque = c.engineTorque ? new int(c.engineTorque[0]) : 0;
- odometer = c.odometer ? new unsigned int(c.odometer[0]) : 0;
- tripOdometer = c.tripOdometer ? new unsigned int(c.tripOdometer[0]) : 0;
- satRadioESN = c.satRadioESN ? new std::string(c.satRadioESN[0]) : 0;
-
- return *this;
-}
-
-
-GetVehicleData_response::~GetVehicleData_response(void)
-{
- if (gps)
- {
- delete gps;
- }
- if (speed)
- {
- delete speed;
- }
- if (rpm)
- {
- delete rpm;
- }
- if (fuelLevel)
- {
- delete fuelLevel;
- }
- if (avgFuelEconomy)
- {
- delete avgFuelEconomy;
- }
- if (batteryVoltage)
- {
- delete batteryVoltage;
- }
- if (externalTemperature)
- {
- delete externalTemperature;
- }
- if (vin)
- {
- delete vin;
- }
- if (prndl)
- {
- delete prndl;
- }
- if (tirePressure)
- {
- delete tirePressure;
- }
- if (batteryPackVoltage)
- {
- delete batteryPackVoltage;
- }
- if (batteryPackCurrent)
- {
- delete batteryPackCurrent;
- }
- if (batteryPackTemperature)
- {
- delete batteryPackTemperature;
- }
- if (engineTorque)
- {
- delete engineTorque;
- }
- if (odometer)
- {
- delete odometer;
- }
- if (tripOdometer)
- {
- delete tripOdometer;
- }
- if (satRadioESN)
- {
- delete satRadioESN;
- }
-}
-
-GetVehicleData_response::GetVehicleData_response(const GetVehicleData_response& c)
-{
- *this = c;
-}
-
-bool GetVehicleData_response::checkIntegrity(void)
-{
- return GetVehicleData_responseMarshaller::checkIntegrity(*this);
-}
-
-GetVehicleData_response::GetVehicleData_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
- , gps(0)
- , speed(0)
- , rpm(0)
- , fuelLevel(0)
- , avgFuelEconomy(0)
- , batteryVoltage(0)
- , externalTemperature(0)
- , vin(0)
- , prndl(0)
- , tirePressure(0)
- , batteryPackVoltage(0)
- , batteryPackCurrent(0)
- , batteryPackTemperature(0)
- , engineTorque(0)
- , odometer(0)
- , tripOdometer(0)
- , satRadioESN(0)
-{
-}
-
-bool GetVehicleData_response::set_gps(const GPSData& gps_)
-{
- if (!GPSDataMarshaller::checkIntegrityConst(gps_))
- {
- return false;
- }
- delete gps;
- gps = 0;
-
- gps = new GPSData(gps_);
- return true;
-}
-
-void GetVehicleData_response::reset_gps(void)
-{
- if (gps)
- {
- delete gps;
- }
- gps = 0;
-}
-
-bool GetVehicleData_response::set_speed(float speed_)
-{
- if (speed_ > 500)
- {
- return false;
- }
- if (speed_ < -100)
- {
- return false;
- }
- delete speed;
- speed = 0;
-
- speed = new float(speed_);
- return true;
-}
-
-void GetVehicleData_response::reset_speed(void)
-{
- if (speed)
- {
- delete speed;
- }
- speed = 0;
-}
-
-bool GetVehicleData_response::set_rpm(unsigned int rpm_)
-{
- if (rpm_ > 20000)
- {
- return false;
- }
- delete rpm;
- rpm = 0;
-
- rpm = new unsigned int(rpm_);
- return true;
-}
-
-void GetVehicleData_response::reset_rpm(void)
-{
- if (rpm)
- {
- delete rpm;
- }
- rpm = 0;
-}
-
-bool GetVehicleData_response::set_fuelLevel(float fuelLevel_)
-{
- if (fuelLevel_ > 100)
- {
- return false;
- }
- if (fuelLevel_ < 0)
- {
- return false;
- }
- delete fuelLevel;
- fuelLevel = 0;
-
- fuelLevel = new float(fuelLevel_);
- return true;
-}
-
-void GetVehicleData_response::reset_fuelLevel(void)
-{
- if (fuelLevel)
- {
- delete fuelLevel;
- }
- fuelLevel = 0;
-}
-
-bool GetVehicleData_response::set_avgFuelEconomy(float avgFuelEconomy_)
-{
- if (avgFuelEconomy_ > 7000)
- {
- return false;
- }
- if (avgFuelEconomy_ < 0)
- {
- return false;
- }
- delete avgFuelEconomy;
- avgFuelEconomy = 0;
-
- avgFuelEconomy = new float(avgFuelEconomy_);
- return true;
-}
-
-void GetVehicleData_response::reset_avgFuelEconomy(void)
-{
- if (avgFuelEconomy)
- {
- delete avgFuelEconomy;
- }
- avgFuelEconomy = 0;
-}
-
-bool GetVehicleData_response::set_batteryVoltage(float batteryVoltage_)
-{
- if (batteryVoltage_ > 26)
- {
- return false;
- }
- if (batteryVoltage_ < 0)
- {
- return false;
- }
- delete batteryVoltage;
- batteryVoltage = 0;
-
- batteryVoltage = new float(batteryVoltage_);
- return true;
-}
-
-void GetVehicleData_response::reset_batteryVoltage(void)
-{
- if (batteryVoltage)
- {
- delete batteryVoltage;
- }
- batteryVoltage = 0;
-}
-
-bool GetVehicleData_response::set_externalTemperature(float externalTemperature_)
-{
- if (externalTemperature_ > 100)
- {
- return false;
- }
- if (externalTemperature_ < -40)
- {
- return false;
- }
- delete externalTemperature;
- externalTemperature = 0;
-
- externalTemperature = new float(externalTemperature_);
- return true;
-}
-
-void GetVehicleData_response::reset_externalTemperature(void)
-{
- if (externalTemperature)
- {
- delete externalTemperature;
- }
- externalTemperature = 0;
-}
-
-bool GetVehicleData_response::set_vin(const std::string& vin_)
-{
- if (vin_.length() > 17)
- {
- return false;
- }
- delete vin;
- vin = 0;
-
- vin = new std::string(vin_);
- return true;
-}
-
-void GetVehicleData_response::reset_vin(void)
-{
- if (vin)
- {
- delete vin;
- }
- vin = 0;
-}
-
-bool GetVehicleData_response::set_prndl(const PRNDL& prndl_)
-{
- if (!PRNDLMarshaller::checkIntegrityConst(prndl_))
- {
- return false;
- }
- delete prndl;
- prndl = 0;
-
- prndl = new PRNDL(prndl_);
- return true;
-}
-
-void GetVehicleData_response::reset_prndl(void)
-{
- if (prndl)
- {
- delete prndl;
- }
- prndl = 0;
-}
-
-bool GetVehicleData_response::set_tirePressure(const TireStatus& tirePressure_)
-{
- if (!TireStatusMarshaller::checkIntegrityConst(tirePressure_))
- {
- return false;
- }
- delete tirePressure;
- tirePressure = 0;
-
- tirePressure = new TireStatus(tirePressure_);
- return true;
-}
-
-void GetVehicleData_response::reset_tirePressure(void)
-{
- if (tirePressure)
- {
- delete tirePressure;
- }
- tirePressure = 0;
-}
-
-bool GetVehicleData_response::set_batteryPackVoltage(float batteryPackVoltage_)
-{
- if (batteryPackVoltage_ > 1000)
- {
- return false;
- }
- if (batteryPackVoltage_ < -1000)
- {
- return false;
- }
- delete batteryPackVoltage;
- batteryPackVoltage = 0;
-
- batteryPackVoltage = new float(batteryPackVoltage_);
- return true;
-}
-
-void GetVehicleData_response::reset_batteryPackVoltage(void)
-{
- if (batteryPackVoltage)
- {
- delete batteryPackVoltage;
- }
- batteryPackVoltage = 0;
-}
-
-bool GetVehicleData_response::set_batteryPackCurrent(float batteryPackCurrent_)
-{
- if (batteryPackCurrent_ > 1000)
- {
- return false;
- }
- if (batteryPackCurrent_ < -1000)
- {
- return false;
- }
- delete batteryPackCurrent;
- batteryPackCurrent = 0;
-
- batteryPackCurrent = new float(batteryPackCurrent_);
- return true;
-}
-
-void GetVehicleData_response::reset_batteryPackCurrent(void)
-{
- if (batteryPackCurrent)
- {
- delete batteryPackCurrent;
- }
- batteryPackCurrent = 0;
-}
-
-bool GetVehicleData_response::set_batteryPackTemperature(int batteryPackTemperature_)
-{
- if (batteryPackTemperature_ > 250)
- {
- return false;
- }
- delete batteryPackTemperature;
- batteryPackTemperature = 0;
-
- batteryPackTemperature = new int(batteryPackTemperature_);
- return true;
-}
-
-void GetVehicleData_response::reset_batteryPackTemperature(void)
-{
- if (batteryPackTemperature)
- {
- delete batteryPackTemperature;
- }
- batteryPackTemperature = 0;
-}
-
-bool GetVehicleData_response::set_engineTorque(int engineTorque_)
-{
- if (engineTorque_ > 55000)
- {
- return false;
- }
- delete engineTorque;
- engineTorque = 0;
-
- engineTorque = new int(engineTorque_);
- return true;
-}
-
-void GetVehicleData_response::reset_engineTorque(void)
-{
- if (engineTorque)
- {
- delete engineTorque;
- }
- engineTorque = 0;
-}
-
-bool GetVehicleData_response::set_odometer(unsigned int odometer_)
-{
- if (odometer_ > 2000000)
- {
- return false;
- }
- delete odometer;
- odometer = 0;
-
- odometer = new unsigned int(odometer_);
- return true;
-}
-
-void GetVehicleData_response::reset_odometer(void)
-{
- if (odometer)
- {
- delete odometer;
- }
- odometer = 0;
-}
-
-bool GetVehicleData_response::set_tripOdometer(unsigned int tripOdometer_)
-{
- if (tripOdometer_ > 2000000)
- {
- return false;
- }
- delete tripOdometer;
- tripOdometer = 0;
-
- tripOdometer = new unsigned int(tripOdometer_);
- return true;
-}
-
-void GetVehicleData_response::reset_tripOdometer(void)
-{
- if (tripOdometer)
- {
- delete tripOdometer;
- }
- tripOdometer = 0;
-}
-
-bool GetVehicleData_response::set_satRadioESN(const std::string& satRadioESN_)
-{
- if (satRadioESN_.length() > 500)
- {
- return false;
- }
- delete satRadioESN;
- satRadioESN = 0;
-
- satRadioESN = new std::string(satRadioESN_);
- return true;
-}
-
-void GetVehicleData_response::reset_satRadioESN(void)
-{
- if (satRadioESN)
- {
- delete satRadioESN;
- }
- satRadioESN = 0;
-}
-
-const GPSData* GetVehicleData_response::get_gps(void) const
-{
- return gps;
-}
-
-const float* GetVehicleData_response::get_speed(void) const
-{
- return speed;
-}
-
-const unsigned int* GetVehicleData_response::get_rpm(void) const
-{
- return rpm;
-}
-
-const float* GetVehicleData_response::get_fuelLevel(void) const
-{
- return fuelLevel;
-}
-
-const float* GetVehicleData_response::get_avgFuelEconomy(void) const
-{
- return avgFuelEconomy;
-}
-
-const float* GetVehicleData_response::get_batteryVoltage(void) const
-{
- return batteryVoltage;
-}
-
-const float* GetVehicleData_response::get_externalTemperature(void) const
-{
- return externalTemperature;
-}
-
-const std::string* GetVehicleData_response::get_vin(void) const
-{
- return vin;
-}
-
-const PRNDL* GetVehicleData_response::get_prndl(void) const
-{
- return prndl;
-}
-
-const TireStatus* GetVehicleData_response::get_tirePressure(void) const
-{
- return tirePressure;
-}
-
-const float* GetVehicleData_response::get_batteryPackVoltage(void) const
-{
- return batteryPackVoltage;
-}
-
-const float* GetVehicleData_response::get_batteryPackCurrent(void) const
-{
- return batteryPackCurrent;
-}
-
-const int* GetVehicleData_response::get_batteryPackTemperature(void) const
-{
- return batteryPackTemperature;
-}
-
-const int* GetVehicleData_response::get_engineTorque(void) const
-{
- return engineTorque;
-}
-
-const unsigned int* GetVehicleData_response::get_odometer(void) const
-{
- return odometer;
-}
-
-const unsigned int* GetVehicleData_response::get_tripOdometer(void) const
-{
- return tripOdometer;
-}
-
-const std::string* GetVehicleData_response::get_satRadioESN(void) const
-{
- return satRadioESN;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_responseMarshaller.cpp
deleted file mode 100644
index 6a05ebcec..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_responseMarshaller.cpp
+++ /dev/null
@@ -1,376 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_response.h"
-#include "GPSDataMarshaller.h"
-#include "PRNDLMarshaller.h"
-#include "ResultMarshaller.h"
-#include "TireStatusMarshaller.h"
-
-#include "GetVehicleData_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool GetVehicleData_responseMarshaller::checkIntegrity(GetVehicleData_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool GetVehicleData_responseMarshaller::fromString(const std::string& s,GetVehicleData_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string GetVehicleData_responseMarshaller::toString(const GetVehicleData_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool GetVehicleData_responseMarshaller::checkIntegrityConst(const GetVehicleData_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- if(s.gps && !GPSDataMarshaller::checkIntegrityConst(*s.gps)) return false;
- if(s.speed && *s.speed>500) return false;
- if(s.speed && *s.speed<-100) return false;
- if(s.rpm && *s.rpm>20000) return false;
- if(s.fuelLevel && *s.fuelLevel>100) return false;
- if(s.fuelLevel && *s.fuelLevel<0) return false;
- if(s.avgFuelEconomy && *s.avgFuelEconomy>7000) return false;
- if(s.avgFuelEconomy && *s.avgFuelEconomy<0) return false;
- if(s.batteryVoltage && *s.batteryVoltage>26) return false;
- if(s.batteryVoltage && *s.batteryVoltage<0) return false;
- if(s.externalTemperature && *s.externalTemperature>100) return false;
- if(s.externalTemperature && *s.externalTemperature<-40) return false;
- if(s.vin && s.vin->length()>17) return false;
- if(s.prndl && !PRNDLMarshaller::checkIntegrityConst(*s.prndl)) return false;
- if(s.tirePressure && !TireStatusMarshaller::checkIntegrityConst(*s.tirePressure)) return false;
- if(s.batteryPackVoltage && *s.batteryPackVoltage>1000) return false;
- if(s.batteryPackVoltage && *s.batteryPackVoltage<-1000) return false;
- if(s.batteryPackCurrent && *s.batteryPackCurrent>1000) return false;
- if(s.batteryPackCurrent && *s.batteryPackCurrent<-1000) return false;
- if(s.batteryPackTemperature && *s.batteryPackTemperature>250) return false;
- if(s.batteryPackTemperature && *s.batteryPackTemperature<-50) return false;
- if(s.engineTorque && *s.engineTorque>55000) return false;
- if(s.engineTorque && *s.engineTorque<-10000) return false;
- if(s.odometer && *s.odometer>2000000) return false;
- if(s.tripOdometer && *s.tripOdometer>2000000) return false;
- if(s.satRadioESN && s.satRadioESN->length()>500) return false;
- return true;
-}
-
-Json::Value GetVehicleData_responseMarshaller::toJSON(const GetVehicleData_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- if(e.gps)
- json["gps"]=GPSDataMarshaller::toJSON(*e.gps);
-
- if(e.speed)
- json["speed"]=Json::Value(*e.speed);
-
- if(e.rpm)
- json["rpm"]=Json::Value(*e.rpm);
-
- if(e.fuelLevel)
- json["fuelLevel"]=Json::Value(*e.fuelLevel);
-
- if(e.avgFuelEconomy)
- json["avgFuelEconomy"]=Json::Value(*e.avgFuelEconomy);
-
- if(e.batteryVoltage)
- json["batteryVoltage"]=Json::Value(*e.batteryVoltage);
-
- if(e.externalTemperature)
- json["externalTemperature"]=Json::Value(*e.externalTemperature);
-
- if(e.vin)
- json["vin"]=Json::Value(*e.vin);
-
- if(e.prndl)
- json["prndl"]=PRNDLMarshaller::toJSON(*e.prndl);
-
- if(e.tirePressure)
- json["tirePressure"]=TireStatusMarshaller::toJSON(*e.tirePressure);
-
- if(e.batteryPackVoltage)
- json["batteryPackVoltage"]=Json::Value(*e.batteryPackVoltage);
-
- if(e.batteryPackCurrent)
- json["batteryPackCurrent"]=Json::Value(*e.batteryPackCurrent);
-
- if(e.batteryPackTemperature)
- json["batteryPackTemperature"]=Json::Value(*e.batteryPackTemperature);
-
- if(e.engineTorque)
- json["engineTorque"]=Json::Value(*e.engineTorque);
-
- if(e.odometer)
- json["odometer"]=Json::Value(*e.odometer);
-
- if(e.tripOdometer)
- json["tripOdometer"]=Json::Value(*e.tripOdometer);
-
- if(e.satRadioESN)
- json["satRadioESN"]=Json::Value(*e.satRadioESN);
-
- return json;
-}
-
-
-bool GetVehicleData_responseMarshaller::fromJSON(const Json::Value& json,GetVehicleData_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- if(c.gps) delete c.gps;
- c.gps=0;
-
- if(c.speed) delete c.speed;
- c.speed=0;
-
- if(c.rpm) delete c.rpm;
- c.rpm=0;
-
- if(c.fuelLevel) delete c.fuelLevel;
- c.fuelLevel=0;
-
- if(c.avgFuelEconomy) delete c.avgFuelEconomy;
- c.avgFuelEconomy=0;
-
- if(c.batteryVoltage) delete c.batteryVoltage;
- c.batteryVoltage=0;
-
- if(c.externalTemperature) delete c.externalTemperature;
- c.externalTemperature=0;
-
- if(c.vin) delete c.vin;
- c.vin=0;
-
- if(c.prndl) delete c.prndl;
- c.prndl=0;
-
- if(c.tirePressure) delete c.tirePressure;
- c.tirePressure=0;
-
- if(c.batteryPackVoltage) delete c.batteryPackVoltage;
- c.batteryPackVoltage=0;
-
- if(c.batteryPackCurrent) delete c.batteryPackCurrent;
- c.batteryPackCurrent=0;
-
- if(c.batteryPackTemperature) delete c.batteryPackTemperature;
- c.batteryPackTemperature=0;
-
- if(c.engineTorque) delete c.engineTorque;
- c.engineTorque=0;
-
- if(c.odometer) delete c.odometer;
- c.odometer=0;
-
- if(c.tripOdometer) delete c.tripOdometer;
- c.tripOdometer=0;
-
- if(c.satRadioESN) delete c.satRadioESN;
- c.satRadioESN=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
- if(json.isMember("gps"))
- {
- const Json::Value& j=json["gps"];
- c.gps=new GPSData();
- if(!GPSDataMarshaller::fromJSON(j,c.gps[0]))
- return false;
- }
- if(json.isMember("speed"))
- {
- const Json::Value& j=json["speed"];
- if(!j.isNumeric()) return false;
- c.speed=new float(j.asDouble());
- }
- if(json.isMember("rpm"))
- {
- const Json::Value& j=json["rpm"];
- if(!j.isInt()) return false;
- c.rpm=new unsigned int(j.asInt());
- }
- if(json.isMember("fuelLevel"))
- {
- const Json::Value& j=json["fuelLevel"];
- if(!j.isNumeric()) return false;
- c.fuelLevel=new float(j.asDouble());
- }
- if(json.isMember("avgFuelEconomy"))
- {
- const Json::Value& j=json["avgFuelEconomy"];
- if(!j.isNumeric()) return false;
- c.avgFuelEconomy=new float(j.asDouble());
- }
- if(json.isMember("batteryVoltage"))
- {
- const Json::Value& j=json["batteryVoltage"];
- if(!j.isNumeric()) return false;
- c.batteryVoltage=new float(j.asDouble());
- }
- if(json.isMember("externalTemperature"))
- {
- const Json::Value& j=json["externalTemperature"];
- if(!j.isNumeric()) return false;
- c.externalTemperature=new float(j.asDouble());
- }
- if(json.isMember("vin"))
- {
- const Json::Value& j=json["vin"];
- if(!j.isString()) return false;
- c.vin=new std::string(j.asString());
- }
- if(json.isMember("prndl"))
- {
- const Json::Value& j=json["prndl"];
- c.prndl=new PRNDL();
- if(!PRNDLMarshaller::fromJSON(j,c.prndl[0]))
- return false;
- }
- if(json.isMember("tirePressure"))
- {
- const Json::Value& j=json["tirePressure"];
- c.tirePressure=new TireStatus();
- if(!TireStatusMarshaller::fromJSON(j,c.tirePressure[0]))
- return false;
- }
- if(json.isMember("batteryPackVoltage"))
- {
- const Json::Value& j=json["batteryPackVoltage"];
- if(!j.isNumeric()) return false;
- c.batteryPackVoltage=new float(j.asDouble());
- }
- if(json.isMember("batteryPackCurrent"))
- {
- const Json::Value& j=json["batteryPackCurrent"];
- if(!j.isNumeric()) return false;
- c.batteryPackCurrent=new float(j.asDouble());
- }
- if(json.isMember("batteryPackTemperature"))
- {
- const Json::Value& j=json["batteryPackTemperature"];
- if(!j.isInt()) return false;
- c.batteryPackTemperature=new int(j.asInt());
- }
- if(json.isMember("engineTorque"))
- {
- const Json::Value& j=json["engineTorque"];
- if(!j.isInt()) return false;
- c.engineTorque=new int(j.asInt());
- }
- if(json.isMember("odometer"))
- {
- const Json::Value& j=json["odometer"];
- if(!j.isInt()) return false;
- c.odometer=new unsigned int(j.asInt());
- }
- if(json.isMember("tripOdometer"))
- {
- const Json::Value& j=json["tripOdometer"];
- if(!j.isInt()) return false;
- c.tripOdometer=new unsigned int(j.asInt());
- }
- if(json.isMember("satRadioESN"))
- {
- const Json::Value& j=json["satRadioESN"];
- if(!j.isString()) return false;
- c.satRadioESN=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_responseMarshaller.h
deleted file mode 100644
index 0fd76e299..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GetVehicleData_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_GETVEHICLEDATA_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_GETVEHICLEDATA_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct GetVehicleData_responseMarshaller
- {
- static bool checkIntegrity(GetVehicleData_response& e);
- static bool checkIntegrityConst(const GetVehicleData_response& e);
-
- static bool fromString(const std::string& s,GetVehicleData_response& e);
- static const std::string toString(const GetVehicleData_response& e);
-
- static bool fromJSON(const Json::Value& s,GetVehicleData_response& e);
- static Json::Value toJSON(const GetVehicleData_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.cpp
deleted file mode 100644
index d7bd2157e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/GlobalProperty.h"
-#include "GlobalPropertyMarshaller.h"
-#include "GlobalPropertyMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const GlobalProperty::GlobalPropertyInternal GlobalPropertyMarshaller::getIndex(const char* s)
-{
- if(!s)
- return GlobalProperty::INVALID_ENUM;
- const struct PerfectHashTable* p=GlobalProperty_intHash::getPointer(s,strlen(s));
- return p ? static_cast<GlobalProperty::GlobalPropertyInternal>(p->idx) : GlobalProperty::INVALID_ENUM;
-}
-
-
-bool GlobalPropertyMarshaller::fromJSON(const Json::Value& s,GlobalProperty& e)
-{
- e.mInternal=GlobalProperty::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=GlobalProperty::INVALID_ENUM);
-}
-
-
-Json::Value GlobalPropertyMarshaller::toJSON(const GlobalProperty& e)
-{
- if(e.mInternal==GlobalProperty::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool GlobalPropertyMarshaller::fromString(const std::string& s,GlobalProperty& e)
-{
- e.mInternal=GlobalProperty::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string GlobalPropertyMarshaller::toString(const GlobalProperty& e)
-{
- Json::FastWriter writer;
- return e.mInternal==GlobalProperty::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable GlobalPropertyMarshaller::mHashTable[4]=
-{
- {"HELPPROMPT",0},
- {"TIMEOUTPROMPT",1},
- {"VRHELPTITLE",2},
- {"VRHELPITEMS",3}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.gp
deleted file mode 100644
index 552048852..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.gp
+++ /dev/null
@@ -1,20 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name GlobalProperty_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-HELPPROMPT,0
-TIMEOUTPROMPT,1
-VRHELPTITLE,2
-VRHELPITEMS,3
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.h
deleted file mode 100644
index 4a1f83443..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_GLOBALPROPERTYMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_GLOBALPROPERTYMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/GlobalProperty.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for GlobalProperty
-
- class GlobalPropertyMarshaller
- {
- public:
-
- static std::string toName(const GlobalProperty& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(GlobalProperty& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=GlobalProperty::INVALID_ENUM;
- }
-
- static bool checkIntegrity(GlobalProperty& e) { return e.mInternal!=GlobalProperty::INVALID_ENUM; }
- static bool checkIntegrityConst(const GlobalProperty& e) { return e.mInternal!=GlobalProperty::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,GlobalProperty& e);
- static const std::string toString(const GlobalProperty& e);
-
- static bool fromJSON(const Json::Value& s,GlobalProperty& e);
- static Json::Value toJSON(const GlobalProperty& e);
-
- static const char* getName(GlobalProperty::GlobalPropertyInternal e)
- {
- return (e>=0 && e<4) ? mHashTable[e].name : NULL;
- }
-
- static const GlobalProperty::GlobalPropertyInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[4];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.inc
deleted file mode 100644
index 2c354cf18..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.inc
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.gp */
-/* Computed positions: -k'7' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 4
-#define MIN_WORD_LENGTH 10
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 10
-#define MAX_HASH_VALUE 16
-/* maximum key range = 7, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class GlobalProperty_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-GlobalProperty_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 5, 17, 17, 17, 17, 17, 0,
- 17, 17, 17, 17, 0, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17
- };
- return len + asso_values[(unsigned char)str[6]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-GlobalProperty_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 13,
- 0, 0, 11
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.gp"
- {"HELPPROMPT",0},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.gp"
- {"VRHELPTITLE",2},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.gp"
- {"TIMEOUTPROMPT",1},
- {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/GlobalPropertyMarshaller.gp"
- {"VRHELPITEMS",3}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplication.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplication.cpp
deleted file mode 100644
index e3e04c519..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplication.cpp
+++ /dev/null
@@ -1,313 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/HMIApplication.h"
-#include "HMIApplicationMarshaller.h"
-#include "AppTypeMarshaller.h"
-#include "LanguageMarshaller.h"
-#include "TTSChunkMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-HMIApplication& HMIApplication::operator =(const HMIApplication& c)
-{
- appId=c.appId;
- appName=c.appName;
- appType=c.appType ? new std::vector<AppType>(c.appType[0]) : 0;
- deviceName=c.deviceName;
- hmiDisplayLanguageDesired=c.hmiDisplayLanguageDesired;
- icon=c.icon ? new std::string(c.icon[0]) : 0;
- isMediaApplication=c.isMediaApplication;
- languageDesired=c.languageDesired;
- ngnMediaScreenAppName=c.ngnMediaScreenAppName ? new std::string(c.ngnMediaScreenAppName[0]) : 0;
- ttsName=c.ttsName ? new std::vector<TTSChunk>(c.ttsName[0]) : 0;
- vrSynonyms=c.vrSynonyms ? new std::vector<std::string>(c.vrSynonyms[0]) : 0;
-
- return *this;
-}
-
-
-HMIApplication::~HMIApplication(void)
-{
- if(appType)
- delete appType;
- if(icon)
- delete icon;
- if(ngnMediaScreenAppName)
- delete ngnMediaScreenAppName;
- if(ttsName)
- delete ttsName;
- if(vrSynonyms)
- delete vrSynonyms;
-}
-
-
-HMIApplication::HMIApplication(const HMIApplication& c)
-{
- *this=c;
-}
-
-
-bool HMIApplication::checkIntegrity(void)
-{
- return HMIApplicationMarshaller::checkIntegrity(*this);
-}
-
-
-HMIApplication::HMIApplication(void) :
- appType(0),
- icon(0),
- ngnMediaScreenAppName(0),
- ttsName(0),
- vrSynonyms(0)
-{
-}
-
-
-
-bool HMIApplication::set_appId(int appId_)
-{
- appId=appId_;
- return true;
-}
-
-bool HMIApplication::set_appName(const std::string& appName_)
-{
- if(appName_.length()>100) return false;
- appName=appName_;
- return true;
-}
-
-bool HMIApplication::set_appType(const std::vector<AppType>& appType_)
-{
- unsigned int i=appType_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!AppTypeMarshaller::checkIntegrityConst(appType_[i])) return false;
- }
- delete appType;
- appType=0;
-
- appType=new std::vector<AppType>(appType_);
- return true;
-}
-
-void HMIApplication::reset_appType(void)
-{
- if(appType)
- delete appType;
- appType=0;
-}
-
-bool HMIApplication::set_deviceName(const std::string& deviceName_)
-{
- deviceName=deviceName_;
- return true;
-}
-
-bool HMIApplication::set_hmiDisplayLanguageDesired(const Language& hmiDisplayLanguageDesired_)
-{
- if(!LanguageMarshaller::checkIntegrityConst(hmiDisplayLanguageDesired_)) return false;
- hmiDisplayLanguageDesired=hmiDisplayLanguageDesired_;
- return true;
-}
-
-bool HMIApplication::set_icon(const std::string& icon_)
-{
- delete icon;
- icon=0;
-
- icon=new std::string(icon_);
- return true;
-}
-
-void HMIApplication::reset_icon(void)
-{
- if(icon)
- delete icon;
- icon=0;
-}
-
-bool HMIApplication::set_isMediaApplication(bool isMediaApplication_)
-{
- isMediaApplication=isMediaApplication_;
- return true;
-}
-
-bool HMIApplication::set_languageDesired(const Language& languageDesired_)
-{
- if(!LanguageMarshaller::checkIntegrityConst(languageDesired_)) return false;
- languageDesired=languageDesired_;
- return true;
-}
-
-bool HMIApplication::set_ngnMediaScreenAppName(const std::string& ngnMediaScreenAppName_)
-{
- if(ngnMediaScreenAppName_.length()>100) return false;
- delete ngnMediaScreenAppName;
- ngnMediaScreenAppName=0;
-
- ngnMediaScreenAppName=new std::string(ngnMediaScreenAppName_);
- return true;
-}
-
-void HMIApplication::reset_ngnMediaScreenAppName(void)
-{
- if(ngnMediaScreenAppName)
- delete ngnMediaScreenAppName;
- ngnMediaScreenAppName=0;
-}
-
-bool HMIApplication::set_ttsName(const std::vector<TTSChunk>& ttsName_)
-{
- unsigned int i=ttsName_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(ttsName_[i])) return false;
- }
- delete ttsName;
- ttsName=0;
-
- ttsName=new std::vector<TTSChunk>(ttsName_);
- return true;
-}
-
-void HMIApplication::reset_ttsName(void)
-{
- if(ttsName)
- delete ttsName;
- ttsName=0;
-}
-
-bool HMIApplication::set_vrSynonyms(const std::vector<std::string>& vrSynonyms_)
-{
- unsigned int i=vrSynonyms_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(vrSynonyms_[i].length()>40) return false;
- }
- delete vrSynonyms;
- vrSynonyms=0;
-
- vrSynonyms=new std::vector<std::string>(vrSynonyms_);
- return true;
-}
-
-void HMIApplication::reset_vrSynonyms(void)
-{
- if(vrSynonyms)
- delete vrSynonyms;
- vrSynonyms=0;
-}
-
-
-
-
-int HMIApplication::get_appId(void) const
-{
- return appId;
-}
-
-
-const std::string& HMIApplication::get_appName(void) const
-{
- return appName;
-}
-
-
-const std::vector<AppType>* HMIApplication::get_appType(void) const
-{
- return appType;
-}
-
-
-const std::string& HMIApplication::get_deviceName(void) const
-{
- return deviceName;
-}
-
-
-const Language& HMIApplication::get_hmiDisplayLanguageDesired(void) const
-{
- return hmiDisplayLanguageDesired;
-}
-
-
-const std::string* HMIApplication::get_icon(void) const
-{
- return icon;
-}
-
-
-bool HMIApplication::get_isMediaApplication(void) const
-{
- return isMediaApplication;
-}
-
-
-const Language& HMIApplication::get_languageDesired(void) const
-{
- return languageDesired;
-}
-
-
-const std::string* HMIApplication::get_ngnMediaScreenAppName(void) const
-{
- return ngnMediaScreenAppName;
-}
-
-
-const std::vector<TTSChunk>* HMIApplication::get_ttsName(void) const
-{
- return ttsName;
-}
-
-
-const std::vector<std::string>* HMIApplication::get_vrSynonyms(void) const
-{
- return vrSynonyms;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplicationMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplicationMarshaller.cpp
deleted file mode 100644
index 95e35d961..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplicationMarshaller.cpp
+++ /dev/null
@@ -1,294 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/HMIApplication.h"
-#include "AppTypeMarshaller.h"
-#include "LanguageMarshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#include "HMIApplicationMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool HMIApplicationMarshaller::checkIntegrity(HMIApplication& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool HMIApplicationMarshaller::fromString(const std::string& s,HMIApplication& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string HMIApplicationMarshaller::toString(const HMIApplication& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool HMIApplicationMarshaller::checkIntegrityConst(const HMIApplication& s)
-{
- if(s.appName.length()>100) return false;
- if(s.appType)
- {
- unsigned int i=s.appType[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!AppTypeMarshaller::checkIntegrityConst(s.appType[0][i])) return false;
- }
- }
- if(!LanguageMarshaller::checkIntegrityConst(s.hmiDisplayLanguageDesired)) return false;
- if(!LanguageMarshaller::checkIntegrityConst(s.languageDesired)) return false;
- if(s.ngnMediaScreenAppName && s.ngnMediaScreenAppName->length()>100) return false;
- if(s.ttsName)
- {
- unsigned int i=s.ttsName[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.ttsName[0][i])) return false;
- }
- }
- if(s.vrSynonyms)
- {
- unsigned int i=s.vrSynonyms[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.vrSynonyms[0][i].length()>40) return false;
- }
- }
- return true;
-}
-
-Json::Value HMIApplicationMarshaller::toJSON(const HMIApplication& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["appId"]=Json::Value(e.appId);
-
- json["appName"]=Json::Value(e.appName);
-
- if(e.appType)
- {
- unsigned int sz=e.appType->size();
- json["appType"]=Json::Value(Json::arrayValue);
- json["appType"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["appType"][i]=AppTypeMarshaller::toJSON(e.appType[0][i]);
- }
-
- json["deviceName"]=Json::Value(e.deviceName);
-
- json["hmiDisplayLanguageDesired"]=LanguageMarshaller::toJSON(e.hmiDisplayLanguageDesired);
-
- if(e.icon)
- json["icon"]=Json::Value(*e.icon);
-
- json["isMediaApplication"]=Json::Value(e.isMediaApplication);
-
- json["languageDesired"]=LanguageMarshaller::toJSON(e.languageDesired);
-
- if(e.ngnMediaScreenAppName)
- json["ngnMediaScreenAppName"]=Json::Value(*e.ngnMediaScreenAppName);
-
- if(e.ttsName)
- {
- unsigned int sz=e.ttsName->size();
- json["ttsName"]=Json::Value(Json::arrayValue);
- json["ttsName"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["ttsName"][i]=TTSChunkMarshaller::toJSON(e.ttsName[0][i]);
- }
-
- if(e.vrSynonyms)
- {
- unsigned int sz=e.vrSynonyms->size();
- json["vrSynonyms"]=Json::Value(Json::arrayValue);
- json["vrSynonyms"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["vrSynonyms"][i]=Json::Value(e.vrSynonyms[0][i]);
- }
-
-
- return json;
-}
-
-
-bool HMIApplicationMarshaller::fromJSON(const Json::Value& json,HMIApplication& c)
-{
- if(c.appType) delete c.appType;
- c.appType=0;
-
- if(c.icon) delete c.icon;
- c.icon=0;
-
- if(c.ngnMediaScreenAppName) delete c.ngnMediaScreenAppName;
- c.ngnMediaScreenAppName=0;
-
- if(c.ttsName) delete c.ttsName;
- c.ttsName=0;
-
- if(c.vrSynonyms) delete c.vrSynonyms;
- c.vrSynonyms=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("appId")) return false;
- {
- const Json::Value& j=json["appId"];
- if(!j.isInt()) return false;
- c.appId=j.asInt();
- }
- if(!json.isMember("appName")) return false;
- {
- const Json::Value& j=json["appName"];
- if(!j.isString()) return false;
- c.appName=j.asString();
- }
- if(json.isMember("appType"))
- {
- const Json::Value& j=json["appType"];
- if(!j.isArray()) return false;
- c.appType=new std::vector<AppType>();
- c.appType->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- AppType t;
- if(!AppTypeMarshaller::fromJSON(j[i],t))
- return false;
- c.appType[0][i]=t;
- }
-
- }
- if(!json.isMember("deviceName")) return false;
- {
- const Json::Value& j=json["deviceName"];
- if(!j.isString()) return false;
- c.deviceName=j.asString();
- }
- if(!json.isMember("hmiDisplayLanguageDesired")) return false;
- {
- const Json::Value& j=json["hmiDisplayLanguageDesired"];
- if(!LanguageMarshaller::fromJSON(j,c.hmiDisplayLanguageDesired))
- return false;
- }
- if(json.isMember("icon"))
- {
- const Json::Value& j=json["icon"];
- if(!j.isString()) return false;
- c.icon=new std::string(j.asString());
- }
- if(!json.isMember("isMediaApplication")) return false;
- {
- const Json::Value& j=json["isMediaApplication"];
- if(!j.isBool()) return false;
- c.isMediaApplication=j.asBool();
- }
- if(!json.isMember("languageDesired")) return false;
- {
- const Json::Value& j=json["languageDesired"];
- if(!LanguageMarshaller::fromJSON(j,c.languageDesired))
- return false;
- }
- if(json.isMember("ngnMediaScreenAppName"))
- {
- const Json::Value& j=json["ngnMediaScreenAppName"];
- if(!j.isString()) return false;
- c.ngnMediaScreenAppName=new std::string(j.asString());
- }
- if(json.isMember("ttsName"))
- {
- const Json::Value& j=json["ttsName"];
- if(!j.isArray()) return false;
- c.ttsName=new std::vector<TTSChunk>();
- c.ttsName->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.ttsName[0][i]=t;
- }
-
- }
- if(json.isMember("vrSynonyms"))
- {
- const Json::Value& j=json["vrSynonyms"];
- if(!j.isArray()) return false;
- c.vrSynonyms=new std::vector<std::string>();
- c.vrSynonyms->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.vrSynonyms[0][i]=j[i].asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplicationMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplicationMarshaller.h
deleted file mode 100644
index 17980e19b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIApplicationMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_HMIAPPLICATIONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_HMIAPPLICATIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/HMIApplication.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct HMIApplicationMarshaller
- {
- static bool checkIntegrity(HMIApplication& e);
- static bool checkIntegrityConst(const HMIApplication& e);
-
- static bool fromString(const std::string& s,HMIApplication& e);
- static const std::string toString(const HMIApplication& e);
-
- static bool fromJSON(const Json::Value& s,HMIApplication& e);
- static Json::Value toJSON(const HMIApplication& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.cpp
deleted file mode 100644
index 68c509ca0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/HMILevel.h"
-#include "HMILevelMarshaller.h"
-#include "HMILevelMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const HMILevel::HMILevelInternal HMILevelMarshaller::getIndex(const char* s)
-{
- if(!s)
- return HMILevel::INVALID_ENUM;
- const struct PerfectHashTable* p=HMILevel_intHash::getPointer(s,strlen(s));
- return p ? static_cast<HMILevel::HMILevelInternal>(p->idx) : HMILevel::INVALID_ENUM;
-}
-
-
-bool HMILevelMarshaller::fromJSON(const Json::Value& s,HMILevel& e)
-{
- e.mInternal=HMILevel::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=HMILevel::INVALID_ENUM);
-}
-
-
-Json::Value HMILevelMarshaller::toJSON(const HMILevel& e)
-{
- if(e.mInternal==HMILevel::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool HMILevelMarshaller::fromString(const std::string& s,HMILevel& e)
-{
- e.mInternal=HMILevel::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string HMILevelMarshaller::toString(const HMILevel& e)
-{
- Json::FastWriter writer;
- return e.mInternal==HMILevel::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable HMILevelMarshaller::mHashTable[4]=
-{
- {"FULL",0},
- {"LIMITED",1},
- {"BACKGROUND",2},
- {"NONE",3}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.gp
deleted file mode 100644
index 709952be5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.gp
+++ /dev/null
@@ -1,20 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name HMILevel_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-FULL,0
-LIMITED,1
-BACKGROUND,2
-NONE,3
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.h
deleted file mode 100644
index d0aa0d8d2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_HMILEVELMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_HMILEVELMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/HMILevel.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for HMILevel
-
- class HMILevelMarshaller
- {
- public:
-
- static std::string toName(const HMILevel& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(HMILevel& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=HMILevel::INVALID_ENUM;
- }
-
- static bool checkIntegrity(HMILevel& e) { return e.mInternal!=HMILevel::INVALID_ENUM; }
- static bool checkIntegrityConst(const HMILevel& e) { return e.mInternal!=HMILevel::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,HMILevel& e);
- static const std::string toString(const HMILevel& e);
-
- static bool fromJSON(const Json::Value& s,HMILevel& e);
- static Json::Value toJSON(const HMILevel& e);
-
- static const char* getName(HMILevel::HMILevelInternal e)
- {
- return (e>=0 && e<4) ? mHashTable[e].name : NULL;
- }
-
- static const HMILevel::HMILevelInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[4];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.inc
deleted file mode 100644
index 59f976cf0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.inc
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.gp */
-/* Computed positions: -k'1' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 4
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 10
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 10
-/* maximum key range = 7, duplicates = 0 */
-
-class HMILevel_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-HMILevel_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 0, 11, 11, 11,
- 5, 11, 11, 11, 11, 11, 0, 11, 0, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11
- };
- return len + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-HMILevel_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 0, 0, 7, 0, 4, 10
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.gp"
- {"NONE",3},
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.gp"
- {"LIMITED",1},
- {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.gp"
- {"FULL",0},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMILevelMarshaller.gp"
- {"BACKGROUND",2}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissions.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissions.cpp
deleted file mode 100644
index a36ab58c8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissions.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/HMIPermissions.h"
-#include "HMIPermissionsMarshaller.h"
-#include "HMILevelMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-HMIPermissions::HMIPermissions(const HMIPermissions& c)
-{
- *this=c;
-}
-
-
-bool HMIPermissions::checkIntegrity(void)
-{
- return HMIPermissionsMarshaller::checkIntegrity(*this);
-}
-
-
-HMIPermissions::HMIPermissions(void)
-{
-}
-
-
-
-bool HMIPermissions::set_allowed(const std::vector<HMILevel>& allowed_)
-{
- unsigned int i=allowed_.size();
- if(i>100 || i<0) return false;
- while(i--)
- {
- if(!HMILevelMarshaller::checkIntegrityConst(allowed_[i])) return false;
- }
- allowed=allowed_;
- return true;
-}
-
-bool HMIPermissions::set_userDisallowed(const std::vector<HMILevel>& userDisallowed_)
-{
- unsigned int i=userDisallowed_.size();
- if(i>100 || i<0) return false;
- while(i--)
- {
- if(!HMILevelMarshaller::checkIntegrityConst(userDisallowed_[i])) return false;
- }
- userDisallowed=userDisallowed_;
- return true;
-}
-
-
-
-
-const std::vector<HMILevel>& HMIPermissions::get_allowed(void) const
-{
- return allowed;
-}
-
-
-const std::vector<HMILevel>& HMIPermissions::get_userDisallowed(void) const
-{
- return userDisallowed;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissionsMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissionsMarshaller.cpp
deleted file mode 100644
index 003366232..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissionsMarshaller.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/HMIPermissions.h"
-#include "HMILevelMarshaller.h"
-
-#include "HMIPermissionsMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool HMIPermissionsMarshaller::checkIntegrity(HMIPermissions& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool HMIPermissionsMarshaller::fromString(const std::string& s,HMIPermissions& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string HMIPermissionsMarshaller::toString(const HMIPermissions& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool HMIPermissionsMarshaller::checkIntegrityConst(const HMIPermissions& s)
-{
- {
- unsigned int i=s.allowed.size();
- if(i>100 || i<0) return false;
- while(i--)
- {
- if(!HMILevelMarshaller::checkIntegrityConst(s.allowed[i])) return false;
- }
- }
- {
- unsigned int i=s.userDisallowed.size();
- if(i>100 || i<0) return false;
- while(i--)
- {
- if(!HMILevelMarshaller::checkIntegrityConst(s.userDisallowed[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value HMIPermissionsMarshaller::toJSON(const HMIPermissions& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["allowed"]=Json::Value(Json::arrayValue);
- json["allowed"].resize(e.allowed.size());
- for(unsigned int i=0;i<e.allowed.size();i++)
- json["allowed"][i]=HMILevelMarshaller::toJSON(e.allowed[i]);
-
- json["userDisallowed"]=Json::Value(Json::arrayValue);
- json["userDisallowed"].resize(e.userDisallowed.size());
- for(unsigned int i=0;i<e.userDisallowed.size();i++)
- json["userDisallowed"][i]=HMILevelMarshaller::toJSON(e.userDisallowed[i]);
-
-
- return json;
-}
-
-
-bool HMIPermissionsMarshaller::fromJSON(const Json::Value& json,HMIPermissions& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("allowed")) return false;
- {
- const Json::Value& j=json["allowed"];
- if(!j.isArray()) return false;
- c.allowed.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- HMILevel t;
- if(!HMILevelMarshaller::fromJSON(j[i],t))
- return false;
- c.allowed[i]=t;
- }
-
- }
- if(!json.isMember("userDisallowed")) return false;
- {
- const Json::Value& j=json["userDisallowed"];
- if(!j.isArray()) return false;
- c.userDisallowed.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- HMILevel t;
- if(!HMILevelMarshaller::fromJSON(j[i],t))
- return false;
- c.userDisallowed[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissionsMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissionsMarshaller.h
deleted file mode 100644
index 4afbe5739..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HMIPermissionsMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_HMIPERMISSIONSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_HMIPERMISSIONSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/HMIPermissions.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct HMIPermissionsMarshaller
- {
- static bool checkIntegrity(HMIPermissions& e);
- static bool checkIntegrityConst(const HMIPermissions& e);
-
- static bool fromString(const std::string& s,HMIPermissions& e);
- static const std::string toString(const HMIPermissions& e);
-
- static bool fromJSON(const Json::Value& s,HMIPermissions& e);
- static Json::Value toJSON(const HMIPermissions& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.cpp
deleted file mode 100644
index 429bc53cc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/HmiZoneCapabilities.h"
-#include "HmiZoneCapabilitiesMarshaller.h"
-#include "HmiZoneCapabilitiesMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const HmiZoneCapabilities::HmiZoneCapabilitiesInternal HmiZoneCapabilitiesMarshaller::getIndex(const char* s)
-{
- if(!s)
- return HmiZoneCapabilities::INVALID_ENUM;
- const struct PerfectHashTable* p=HmiZoneCapabilities_intHash::getPointer(s,strlen(s));
- return p ? static_cast<HmiZoneCapabilities::HmiZoneCapabilitiesInternal>(p->idx) : HmiZoneCapabilities::INVALID_ENUM;
-}
-
-
-bool HmiZoneCapabilitiesMarshaller::fromJSON(const Json::Value& s,HmiZoneCapabilities& e)
-{
- e.mInternal=HmiZoneCapabilities::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=HmiZoneCapabilities::INVALID_ENUM);
-}
-
-
-Json::Value HmiZoneCapabilitiesMarshaller::toJSON(const HmiZoneCapabilities& e)
-{
- if(e.mInternal==HmiZoneCapabilities::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool HmiZoneCapabilitiesMarshaller::fromString(const std::string& s,HmiZoneCapabilities& e)
-{
- e.mInternal=HmiZoneCapabilities::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string HmiZoneCapabilitiesMarshaller::toString(const HmiZoneCapabilities& e)
-{
- Json::FastWriter writer;
- return e.mInternal==HmiZoneCapabilities::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable HmiZoneCapabilitiesMarshaller::mHashTable[2]=
-{
- {"FRONT",0},
- {"BACK",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.gp
deleted file mode 100644
index 4dd38536b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name HmiZoneCapabilities_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-FRONT,0
-BACK,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.h
deleted file mode 100644
index 1bf347580..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_HMIZONECAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_HMIZONECAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/HmiZoneCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for HmiZoneCapabilities
-
- class HmiZoneCapabilitiesMarshaller
- {
- public:
-
- static std::string toName(const HmiZoneCapabilities& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(HmiZoneCapabilities& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=HmiZoneCapabilities::INVALID_ENUM;
- }
-
- static bool checkIntegrity(HmiZoneCapabilities& e) { return e.mInternal!=HmiZoneCapabilities::INVALID_ENUM; }
- static bool checkIntegrityConst(const HmiZoneCapabilities& e) { return e.mInternal!=HmiZoneCapabilities::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,HmiZoneCapabilities& e);
- static const std::string toString(const HmiZoneCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,HmiZoneCapabilities& e);
- static Json::Value toJSON(const HmiZoneCapabilities& e);
-
- static const char* getName(HmiZoneCapabilities::HmiZoneCapabilitiesInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const HmiZoneCapabilities::HmiZoneCapabilitiesInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.inc
deleted file mode 100644
index 3b9d7dc10..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.inc
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 5
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 5
-/* maximum key range = 2, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class HmiZoneCapabilities_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-HmiZoneCapabilities_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-HmiZoneCapabilities_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 5
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.gp"
- {"BACK",1},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/HmiZoneCapabilitiesMarshaller.gp"
- {"FRONT",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Image.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Image.cpp
deleted file mode 100644
index 43c538e2f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Image.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Image.h"
-#include "ImageMarshaller.h"
-#include "ImageTypeMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-Image::Image(const Image& c)
-{
- *this=c;
-}
-
-
-bool Image::checkIntegrity(void)
-{
- return ImageMarshaller::checkIntegrity(*this);
-}
-
-
-Image::Image(void)
-{
-}
-
-
-
-bool Image::set_imageType(const ImageType& imageType_)
-{
- if(!ImageTypeMarshaller::checkIntegrityConst(imageType_)) return false;
- imageType=imageType_;
- return true;
-}
-
-bool Image::set_value(const std::string& value_)
-{
- if(value_.length()>65535) return false;
- value=value_;
- return true;
-}
-
-
-
-
-const ImageType& Image::get_imageType(void) const
-{
- return imageType;
-}
-
-
-const std::string& Image::get_value(void) const
-{
- return value;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageMarshaller.cpp
deleted file mode 100644
index 4e3c8cc7c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Image.h"
-#include "ImageTypeMarshaller.h"
-
-#include "ImageMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ImageMarshaller::checkIntegrity(Image& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ImageMarshaller::fromString(const std::string& s,Image& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ImageMarshaller::toString(const Image& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ImageMarshaller::checkIntegrityConst(const Image& s)
-{
- if(!ImageTypeMarshaller::checkIntegrityConst(s.imageType)) return false;
- if(s.value.length()>65535) return false;
- return true;
-}
-
-Json::Value ImageMarshaller::toJSON(const Image& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["imageType"]=ImageTypeMarshaller::toJSON(e.imageType);
-
- json["value"]=Json::Value(e.value);
-
-
- return json;
-}
-
-
-bool ImageMarshaller::fromJSON(const Json::Value& json,Image& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("imageType")) return false;
- {
- const Json::Value& j=json["imageType"];
- if(!ImageTypeMarshaller::fromJSON(j,c.imageType))
- return false;
- }
- if(!json.isMember("value")) return false;
- {
- const Json::Value& j=json["value"];
- if(!j.isString()) return false;
- c.value=j.asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageMarshaller.h
deleted file mode 100644
index 4e3d83b3f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_IMAGEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_IMAGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Image.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ImageMarshaller
- {
- static bool checkIntegrity(Image& e);
- static bool checkIntegrityConst(const Image& e);
-
- static bool fromString(const std::string& s,Image& e);
- static const std::string toString(const Image& e);
-
- static bool fromJSON(const Json::Value& s,Image& e);
- static Json::Value toJSON(const Image& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.cpp
deleted file mode 100644
index 961edd8b6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/ImageType.h"
-#include "ImageTypeMarshaller.h"
-#include "ImageTypeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const ImageType::ImageTypeInternal ImageTypeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return ImageType::INVALID_ENUM;
- const struct PerfectHashTable* p=ImageType_intHash::getPointer(s,strlen(s));
- return p ? static_cast<ImageType::ImageTypeInternal>(p->idx) : ImageType::INVALID_ENUM;
-}
-
-
-bool ImageTypeMarshaller::fromJSON(const Json::Value& s,ImageType& e)
-{
- e.mInternal=ImageType::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=ImageType::INVALID_ENUM);
-}
-
-
-Json::Value ImageTypeMarshaller::toJSON(const ImageType& e)
-{
- if(e.mInternal==ImageType::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool ImageTypeMarshaller::fromString(const std::string& s,ImageType& e)
-{
- e.mInternal=ImageType::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string ImageTypeMarshaller::toString(const ImageType& e)
-{
- Json::FastWriter writer;
- return e.mInternal==ImageType::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable ImageTypeMarshaller::mHashTable[2]=
-{
- {"STATIC",0},
- {"DYNAMIC",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.gp
deleted file mode 100644
index 62b224bfa..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name ImageType_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-STATIC,0
-DYNAMIC,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.h
deleted file mode 100644
index c9e6e4edc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_IMAGETYPEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_IMAGETYPEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ImageType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for ImageType
-
- class ImageTypeMarshaller
- {
- public:
-
- static std::string toName(const ImageType& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(ImageType& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=ImageType::INVALID_ENUM;
- }
-
- static bool checkIntegrity(ImageType& e) { return e.mInternal!=ImageType::INVALID_ENUM; }
- static bool checkIntegrityConst(const ImageType& e) { return e.mInternal!=ImageType::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,ImageType& e);
- static const std::string toString(const ImageType& e);
-
- static bool fromJSON(const Json::Value& s,ImageType& e);
- static Json::Value toJSON(const ImageType& e);
-
- static const char* getName(ImageType::ImageTypeInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const ImageType::ImageTypeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.inc
deleted file mode 100644
index 5c3ccddc3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.inc
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 6
-#define MAX_WORD_LENGTH 7
-#define MIN_HASH_VALUE 6
-#define MAX_HASH_VALUE 7
-/* maximum key range = 2, duplicates = 0 */
-
-class ImageType_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-ImageType_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-ImageType_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 6, 7
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.gp"
- {"STATIC",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ImageTypeMarshaller.gp"
- {"DYNAMIC",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.cpp
deleted file mode 100644
index 95e108394..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/InteractionMode.h"
-#include "InteractionModeMarshaller.h"
-#include "InteractionModeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const InteractionMode::InteractionModeInternal InteractionModeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return InteractionMode::INVALID_ENUM;
- const struct PerfectHashTable* p=InteractionMode_intHash::getPointer(s,strlen(s));
- return p ? static_cast<InteractionMode::InteractionModeInternal>(p->idx) : InteractionMode::INVALID_ENUM;
-}
-
-
-bool InteractionModeMarshaller::fromJSON(const Json::Value& s,InteractionMode& e)
-{
- e.mInternal=InteractionMode::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=InteractionMode::INVALID_ENUM);
-}
-
-
-Json::Value InteractionModeMarshaller::toJSON(const InteractionMode& e)
-{
- if(e.mInternal==InteractionMode::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool InteractionModeMarshaller::fromString(const std::string& s,InteractionMode& e)
-{
- e.mInternal=InteractionMode::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string InteractionModeMarshaller::toString(const InteractionMode& e)
-{
- Json::FastWriter writer;
- return e.mInternal==InteractionMode::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable InteractionModeMarshaller::mHashTable[3]=
-{
- {"MANUAL_ONLY",0},
- {"VR_ONLY",1},
- {"BOTH",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.gp
deleted file mode 100644
index a81968963..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name InteractionMode_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-MANUAL_ONLY,0
-VR_ONLY,1
-BOTH,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.h
deleted file mode 100644
index 75b0e3cac..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_INTERACTIONMODEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_INTERACTIONMODEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/InteractionMode.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for InteractionMode
-
- class InteractionModeMarshaller
- {
- public:
-
- static std::string toName(const InteractionMode& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(InteractionMode& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=InteractionMode::INVALID_ENUM;
- }
-
- static bool checkIntegrity(InteractionMode& e) { return e.mInternal!=InteractionMode::INVALID_ENUM; }
- static bool checkIntegrityConst(const InteractionMode& e) { return e.mInternal!=InteractionMode::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,InteractionMode& e);
- static const std::string toString(const InteractionMode& e);
-
- static bool fromJSON(const Json::Value& s,InteractionMode& e);
- static Json::Value toJSON(const InteractionMode& e);
-
- static const char* getName(InteractionMode::InteractionModeInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const InteractionMode::InteractionModeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.inc
deleted file mode 100644
index 454e6333d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.inc
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 11
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 11
-/* maximum key range = 8, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class InteractionMode_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-InteractionMode_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-InteractionMode_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 0, 0, 7, 0, 0, 0, 11
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.gp"
- {"BOTH",2},
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.gp"
- {"VR_ONLY",1},
- {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/InteractionModeMarshaller.gp"
- {"MANUAL_ONLY",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.cpp
deleted file mode 100644
index 055e86a6a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-#include "LanguageMarshaller.h"
-#include "LanguageMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const Language::LanguageInternal LanguageMarshaller::getIndex(const char* s)
-{
- if(!s)
- return Language::INVALID_ENUM;
- const struct PerfectHashTable* p=Language_intHash::getPointer(s,strlen(s));
- return p ? static_cast<Language::LanguageInternal>(p->idx) : Language::INVALID_ENUM;
-}
-
-
-bool LanguageMarshaller::fromJSON(const Json::Value& s,Language& e)
-{
- e.mInternal=Language::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=Language::INVALID_ENUM);
-}
-
-
-Json::Value LanguageMarshaller::toJSON(const Language& e)
-{
- if(e.mInternal==Language::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool LanguageMarshaller::fromString(const std::string& s,Language& e)
-{
- e.mInternal=Language::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string LanguageMarshaller::toString(const Language& e)
-{
- Json::FastWriter writer;
- return e.mInternal==Language::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable LanguageMarshaller::mHashTable[20]=
-{
- {"EN-US",0},
- {"ES-MX",1},
- {"FR-CA",2},
- {"DE-EU",3},
- {"ES-EU",4},
- {"EN-EU",5},
- {"RU-RU",6},
- {"TR-TR",7},
- {"PL-EU",8},
- {"FR-EU",9},
- {"IT-EU",10},
- {"SV-EU",11},
- {"PT-EU",12},
- {"NL-EU",13},
- {"EN-AU",14},
- {"ZH-CN",15},
- {"ZH-TW",16},
- {"JA-JP",17},
- {"AR",18},
- {"KO-KR",19}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp
deleted file mode 100644
index 9e1622550..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp
+++ /dev/null
@@ -1,36 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name Language_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-EN-US,0
-ES-MX,1
-FR-CA,2
-DE-EU,3
-ES-EU,4
-EN-EU,5
-RU-RU,6
-TR-TR,7
-PL-EU,8
-FR-EU,9
-IT-EU,10
-SV-EU,11
-PT-EU,12
-NL-EU,13
-EN-AU,14
-ZH-CN,15
-ZH-TW,16
-JA-JP,17
-AR,18
-KO-KR,19
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h
deleted file mode 100644
index c9497572e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_LANGUAGEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_LANGUAGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Language.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for Language
-
- class LanguageMarshaller
- {
- public:
-
- static std::string toName(const Language& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(Language& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=Language::INVALID_ENUM;
- }
-
- static bool checkIntegrity(Language& e) { return e.mInternal!=Language::INVALID_ENUM; }
- static bool checkIntegrityConst(const Language& e) { return e.mInternal!=Language::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,Language& e);
- static const std::string toString(const Language& e);
-
- static bool fromJSON(const Json::Value& s,Language& e);
- static Json::Value toJSON(const Language& e);
-
- static const char* getName(Language::LanguageInternal e)
- {
- return (e>=0 && e<20) ? mHashTable[e].name : NULL;
- }
-
- static const Language::LanguageInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[20];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.inc
deleted file mode 100644
index 71c457ef8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.inc
+++ /dev/null
@@ -1,219 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp */
-/* Computed positions: -k'1-2,4' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 20
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 5
-#define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 50
-/* maximum key range = 48, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class Language_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-Language_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 1, 51, 3, 28, 5,
- 30, 51, 5, 13, 0, 15, 25, 15, 0, 15,
- 10, 51, 0, 3, 10, 0, 10, 51, 51, 51,
- 0, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[3]];
- /*FALLTHROUGH*/
- case 3:
- case 2:
- hval += asso_values[(unsigned char)str[1]];
- /*FALLTHROUGH*/
- case 1:
- hval += asso_values[(unsigned char)str[0]];
- break;
- }
- return hval;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-Language_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 2, 0, 5, 5, 0, 0, 0, 5, 5, 0, 5,
- 0, 5, 0, 0, 5, 0, 5, 0, 0, 5, 0, 5, 0, 0,
- 5, 0, 5, 0, 0, 5, 0, 5, 0, 0, 5, 0, 5, 0,
- 0, 5, 0, 5, 0, 0, 0, 0, 5
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""},
-#line 35 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"AR",18},
- {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"RU-RU",6},
-#line 34 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"JA-JP",17},
- {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"EN-US",0},
-#line 31 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"EN-AU",14},
- {""},
-#line 32 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"ZH-CN",15},
- {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"EN-EU",5},
- {""}, {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"ES-EU",4},
- {""},
-#line 33 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"ZH-TW",16},
- {""}, {""},
-#line 28 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"SV-EU",11},
- {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"TR-TR",7},
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"ES-MX",1},
- {""},
-#line 29 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"PT-EU",12},
- {""}, {""},
-#line 27 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"IT-EU",10},
- {""},
-#line 30 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"NL-EU",13},
- {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"FR-CA",2},
- {""},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"FR-EU",9},
- {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"DE-EU",3},
- {""},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"PL-EU",8},
- {""}, {""}, {""}, {""},
-#line 36 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/LanguageMarshaller.gp"
- {"KO-KR",19}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_request.cpp
deleted file mode 100644
index 39c9781b2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_request.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ListFiles_request.h"
-#include "ListFiles_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-ListFiles_request::~ListFiles_request(void)
-{
-}
-
-
-ListFiles_request::ListFiles_request(const ListFiles_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool ListFiles_request::checkIntegrity(void)
-{
- return ListFiles_requestMarshaller::checkIntegrity(*this);
-}
-
-
-ListFiles_request::ListFiles_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_requestMarshaller.cpp
deleted file mode 100644
index abf8a76b5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_requestMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ListFiles_request.h"
-
-
-#include "ListFiles_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ListFiles_requestMarshaller::checkIntegrity(ListFiles_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ListFiles_requestMarshaller::fromString(const std::string& s,ListFiles_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ListFiles_requestMarshaller::toString(const ListFiles_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ListFiles_requestMarshaller::checkIntegrityConst(const ListFiles_request& s)
-{
- return true;
-}
-
-Json::Value ListFiles_requestMarshaller::toJSON(const ListFiles_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- return json;
-}
-
-
-bool ListFiles_requestMarshaller::fromJSON(const Json::Value& json,ListFiles_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_requestMarshaller.h
deleted file mode 100644
index 0b5e68555..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_LISTFILES_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_LISTFILES_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ListFiles_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ListFiles_requestMarshaller
- {
- static bool checkIntegrity(ListFiles_request& e);
- static bool checkIntegrityConst(const ListFiles_request& e);
-
- static bool fromString(const std::string& s,ListFiles_request& e);
- static const std::string toString(const ListFiles_request& e);
-
- static bool fromJSON(const Json::Value& s,ListFiles_request& e);
- static Json::Value toJSON(const ListFiles_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_response.cpp
deleted file mode 100644
index 85973fd93..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_response.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ListFiles_response.h"
-#include "ListFiles_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-ListFiles_response& ListFiles_response::operator =(const ListFiles_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- filenames = c.filenames ? new std::vector<std::string>(c.filenames[0]) : 0;
- spaceAvailable = c.spaceAvailable;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-ListFiles_response::~ListFiles_response(void)
-{
- if (filenames)
- {
- delete filenames;
- }
-}
-
-ListFiles_response::ListFiles_response(const ListFiles_response& c)
-{
- *this = c;
-}
-
-bool ListFiles_response::checkIntegrity(void)
-{
- return ListFiles_responseMarshaller::checkIntegrity(*this);
-}
-
-ListFiles_response::ListFiles_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
- , filenames(0)
-{}
-
-bool ListFiles_response::set_filenames(const std::vector<std::string>& filenames_)
-{
- unsigned int i = filenames_.size();
- if (i > 1000 || i < 0) // TODO(AK): unsigned int i < 0
- {
- return false;
- }
- while (i--)
- {
- if (filenames_[i].length() > 500)
- {
- return false;
- }
- }
- delete filenames;
- filenames = 0;
-
- filenames = new std::vector<std::string>(filenames_);
- return true;
-}
-
-void ListFiles_response::reset_filenames(void)
-{
- if (filenames)
- {
- delete filenames;
- }
- filenames = 0;
-}
-
-bool ListFiles_response::set_spaceAvailable(unsigned int spaceAvailable_)
-{
- if (spaceAvailable_ > 2000000000)
- {
- return false;
- }
- spaceAvailable = spaceAvailable_;
- return true;
-}
-
-const std::vector<std::string>* ListFiles_response::get_filenames(void) const
-{
- return filenames;
-}
-
-unsigned int ListFiles_response::get_spaceAvailable(void) const
-{
- return spaceAvailable;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_responseMarshaller.cpp
deleted file mode 100644
index 7ca71414c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_responseMarshaller.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ListFiles_response.h"
-#include "ResultMarshaller.h"
-
-#include "ListFiles_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ListFiles_responseMarshaller::checkIntegrity(ListFiles_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ListFiles_responseMarshaller::fromString(const std::string& s,ListFiles_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ListFiles_responseMarshaller::toString(const ListFiles_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ListFiles_responseMarshaller::checkIntegrityConst(const ListFiles_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.filenames)
- {
- unsigned int i=s.filenames[0].size();
- if(i>1000 || i<0) return false;
- while(i--)
- {
- if(s.filenames[0][i].length()>500) return false;
- }
- }
- if(s.spaceAvailable>2000000000) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value ListFiles_responseMarshaller::toJSON(const ListFiles_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.filenames)
- {
- unsigned int sz=e.filenames->size();
- json["filenames"]=Json::Value(Json::arrayValue);
- json["filenames"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["filenames"][i]=Json::Value(e.filenames[0][i]);
- }
-
- json["spaceAvailable"]=Json::Value(e.spaceAvailable);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool ListFiles_responseMarshaller::fromJSON(const Json::Value& json,ListFiles_response& c)
-{
- if(c.filenames) delete c.filenames;
- c.filenames=0;
-
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("filenames"))
- {
- const Json::Value& j=json["filenames"];
- if(!j.isArray()) return false;
- c.filenames=new std::vector<std::string>();
- c.filenames->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.filenames[0][i]=j[i].asString();
- }
- if(!json.isMember("spaceAvailable")) return false;
- {
- const Json::Value& j=json["spaceAvailable"];
- if(!j.isInt()) return false;
- c.spaceAvailable=j.asInt();
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_responseMarshaller.h
deleted file mode 100644
index 76b8e71b5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ListFiles_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_LISTFILES_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_LISTFILES_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ListFiles_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ListFiles_responseMarshaller
- {
- static bool checkIntegrity(ListFiles_response& e);
- static bool checkIntegrityConst(const ListFiles_response& e);
-
- static bool fromString(const std::string& s,ListFiles_response& e);
- static const std::string toString(const ListFiles_response& e);
-
- static bool fromJSON(const Json::Value& s,ListFiles_response& e);
- static Json::Value toJSON(const ListFiles_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Marshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Marshaller.cpp
deleted file mode 100644
index 9d22600d5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Marshaller.cpp
+++ /dev/null
@@ -1,1362 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddCommand_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddCommand_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteCommand_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/AddSubMenu_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteSubMenu_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/CreateInteractionChoiceSet_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteInteractionChoiceSet_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Alert_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Alert_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Show_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Show_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Speak_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Speak_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/EncodedSyncPData_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/DialNumber_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/DialNumber_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/EndAudioPassThru_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetVehicleData_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ReadDID_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ReadDID_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetDTCs_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/GetDTCs_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Slider_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Slider_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/AlertManeuver_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ChangeRegistration_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/GenericResponse_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/PutFile_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/PutFile_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteFile_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/DeleteFile_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ListFiles_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/ListFiles_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_request.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_response.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnHMIStatus.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnAppInterfaceUnregistered.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnButtonEvent.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnButtonPress.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnVehicleData.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnCommand.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnEncodedSyncPData.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnTBTClientState.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnDriverDistraction.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnPermissionsChange.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnAudioPassThru.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnLanguageChange.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-NsSmartDeviceLinkRPC::SDLRPCMessage* Marshaller::fromString(const std::string& s,FunctionID::FunctionIDInternal fid, messageType::messageTypeInternal mt)
-{
- NsSmartDeviceLinkRPC::SDLRPCMessage* rv=0;
- try
- {
- Json::Reader reader;
- Json::Value json;
-
- if(!reader.parse(s,json,false)) return 0;
- if(!(rv=fromJSON(json,fid,mt))) return 0;
- }
- catch(...)
- {
- return 0;
- }
- return rv;
-}
-
-std::string Marshaller::toString(const NsSmartDeviceLinkRPC::SDLRPCMessage* msg,FunctionID::FunctionIDInternal fid, messageType::messageTypeInternal mt)
-{
- if(!msg) return "";
-
- Json::Value json=toJSON(msg,fid,mt);
-
- if(json.isNull()) return "";
-
- Json::FastWriter writer;
- std::string rv;
- return writer.write(json);
-}
-
-
-NsSmartDeviceLinkRPC::SDLRPCMessage* Marshaller::fromJSON(const Json::Value& json,FunctionID::FunctionIDInternal fid, messageType::messageTypeInternal mt)
-{
- if(!json.isObject()) return NULL;
- Json::Value j=Json::Value(Json::nullValue);
-
- if(!json.isMember("parameters")) return NULL;
- j=json["parameters"];
-
- switch(fid) // let's rock, china style
- {
- case FunctionID::AddCommandID:
- if(mt==messageType::request)
- {
- AddCommand_request* rv=new AddCommand_request;
- if(AddCommand_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- AddCommand_response* rv=new AddCommand_response;
- if(AddCommand_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::AddSubMenuID:
- if(mt==messageType::request)
- {
- AddSubMenu_request* rv=new AddSubMenu_request;
- if(AddSubMenu_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- AddSubMenu_response* rv=new AddSubMenu_response;
- if(AddSubMenu_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::AlertID:
- if(mt==messageType::request)
- {
- Alert_request* rv=new Alert_request;
- if(Alert_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- Alert_response* rv=new Alert_response;
- if(Alert_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::AlertManeuverID:
- if(mt==messageType::request)
- {
- AlertManeuver_request* rv=new AlertManeuver_request;
- if(AlertManeuver_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- AlertManeuver_response* rv=new AlertManeuver_response;
- if(AlertManeuver_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::ChangeRegistrationID:
- if(mt==messageType::request)
- {
- ChangeRegistration_request* rv=new ChangeRegistration_request;
- if(ChangeRegistration_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- ChangeRegistration_response* rv=new ChangeRegistration_response;
- if(ChangeRegistration_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::CreateInteractionChoiceSetID:
- if(mt==messageType::request)
- {
- CreateInteractionChoiceSet_request* rv=new CreateInteractionChoiceSet_request;
- if(CreateInteractionChoiceSet_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- CreateInteractionChoiceSet_response* rv=new CreateInteractionChoiceSet_response;
- if(CreateInteractionChoiceSet_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::DeleteCommandID:
- if(mt==messageType::request)
- {
- DeleteCommand_request* rv=new DeleteCommand_request;
- if(DeleteCommand_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- DeleteCommand_response* rv=new DeleteCommand_response;
- if(DeleteCommand_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::DeleteFileID:
- if(mt==messageType::request)
- {
- DeleteFile_request* rv=new DeleteFile_request;
- if(DeleteFile_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- DeleteFile_response* rv=new DeleteFile_response;
- if(DeleteFile_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::DeleteInteractionChoiceSetID:
- if(mt==messageType::request)
- {
- DeleteInteractionChoiceSet_request* rv=new DeleteInteractionChoiceSet_request;
- if(DeleteInteractionChoiceSet_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- DeleteInteractionChoiceSet_response* rv=new DeleteInteractionChoiceSet_response;
- if(DeleteInteractionChoiceSet_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::DeleteSubMenuID:
- if(mt==messageType::request)
- {
- DeleteSubMenu_request* rv=new DeleteSubMenu_request;
- if(DeleteSubMenu_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- DeleteSubMenu_response* rv=new DeleteSubMenu_response;
- if(DeleteSubMenu_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::DialNumberID:
- if(mt==messageType::request)
- {
- DialNumber_request* rv=new DialNumber_request;
- if(DialNumber_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- DialNumber_response* rv=new DialNumber_response;
- if(DialNumber_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::EncodedSyncPDataID:
- if(mt==messageType::request)
- {
- EncodedSyncPData_request* rv=new EncodedSyncPData_request;
- if(EncodedSyncPData_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- EncodedSyncPData_response* rv=new EncodedSyncPData_response;
- if(EncodedSyncPData_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::EndAudioPassThruID:
- if(mt==messageType::request)
- {
- EndAudioPassThru_request* rv=new EndAudioPassThru_request;
- if(EndAudioPassThru_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- EndAudioPassThru_response* rv=new EndAudioPassThru_response;
- if(EndAudioPassThru_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::GenericResponseID:
- if(mt==messageType::request)
- {
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- GenericResponse_response* rv=new GenericResponse_response;
- if(GenericResponse_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::GetDTCsID:
- if(mt==messageType::request)
- {
- GetDTCs_request* rv=new GetDTCs_request;
- if(GetDTCs_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- GetDTCs_response* rv=new GetDTCs_response;
- if(GetDTCs_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::GetVehicleDataID:
- if(mt==messageType::request)
- {
- GetVehicleData_request* rv=new GetVehicleData_request;
- if(GetVehicleData_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- GetVehicleData_response* rv=new GetVehicleData_response;
- if(GetVehicleData_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::ListFilesID:
- if(mt==messageType::request)
- {
- ListFiles_request* rv=new ListFiles_request;
- if(ListFiles_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- ListFiles_response* rv=new ListFiles_response;
- if(ListFiles_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::OnAppInterfaceUnregisteredID:
- if(mt==messageType::notification)
- {
- OnAppInterfaceUnregistered* rv=new OnAppInterfaceUnregistered;
- if(OnAppInterfaceUnregisteredMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::OnAudioPassThruID:
- if(mt==messageType::notification)
- {
- OnAudioPassThru* rv=new OnAudioPassThru;
- if(OnAudioPassThruMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::OnButtonEventID:
- if(mt==messageType::notification)
- {
- OnButtonEvent* rv=new OnButtonEvent;
- if(OnButtonEventMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::OnButtonPressID:
- if(mt==messageType::notification)
- {
- OnButtonPress* rv=new OnButtonPress;
- if(OnButtonPressMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::OnCommandID:
- if(mt==messageType::notification)
- {
- OnCommand* rv=new OnCommand;
- if(OnCommandMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::OnDriverDistractionID:
- if(mt==messageType::notification)
- {
- OnDriverDistraction* rv=new OnDriverDistraction;
- if(OnDriverDistractionMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::OnEncodedSyncPDataID:
- if(mt==messageType::notification)
- {
- OnEncodedSyncPData* rv=new OnEncodedSyncPData;
- if(OnEncodedSyncPDataMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::OnHMIStatusID:
- if(mt==messageType::notification)
- {
- OnHMIStatus* rv=new OnHMIStatus;
- if(OnHMIStatusMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::OnLanguageChangeID:
- if(mt==messageType::notification)
- {
- OnLanguageChange* rv=new OnLanguageChange;
- if(OnLanguageChangeMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::OnPermissionsChangeID:
- if(mt==messageType::notification)
- {
- OnPermissionsChange* rv=new OnPermissionsChange;
- if(OnPermissionsChangeMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::OnTBTClientStateID:
- if(mt==messageType::notification)
- {
- OnTBTClientState* rv=new OnTBTClientState;
- if(OnTBTClientStateMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::OnVehicleDataID:
- if(mt==messageType::notification)
- {
- OnVehicleData* rv=new OnVehicleData;
- if(OnVehicleDataMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- }
- case FunctionID::PerformAudioPassThruID:
- if(mt==messageType::request)
- {
- PerformAudioPassThru_request* rv=new PerformAudioPassThru_request;
- if(PerformAudioPassThru_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- PerformAudioPassThru_response* rv=new PerformAudioPassThru_response;
- if(PerformAudioPassThru_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::PerformInteractionID:
- if(mt==messageType::request)
- {
- PerformInteraction_request* rv=new PerformInteraction_request;
- if(PerformInteraction_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- PerformInteraction_response* rv=new PerformInteraction_response;
- if(PerformInteraction_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::PutFileID:
- if(mt==messageType::request)
- {
- PutFile_request* rv=new PutFile_request;
- if(PutFile_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- PutFile_response* rv=new PutFile_response;
- if(PutFile_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::ReadDIDID:
- if(mt==messageType::request)
- {
- ReadDID_request* rv=new ReadDID_request;
- if(ReadDID_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- ReadDID_response* rv=new ReadDID_response;
- if(ReadDID_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::RegisterAppInterfaceID:
- if(mt==messageType::request)
- {
- RegisterAppInterface_request* rv=new RegisterAppInterface_request;
- if(RegisterAppInterface_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- RegisterAppInterface_response* rv=new RegisterAppInterface_response;
- if(RegisterAppInterface_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::ResetGlobalPropertiesID:
- if(mt==messageType::request)
- {
- ResetGlobalProperties_request* rv=new ResetGlobalProperties_request;
- if(ResetGlobalProperties_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- ResetGlobalProperties_response* rv=new ResetGlobalProperties_response;
- if(ResetGlobalProperties_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::ScrollableMessageID:
- if(mt==messageType::request)
- {
- ScrollableMessage_request* rv=new ScrollableMessage_request;
- if(ScrollableMessage_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- ScrollableMessage_response* rv=new ScrollableMessage_response;
- if(ScrollableMessage_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::SetAppIconID:
- if(mt==messageType::request)
- {
- SetAppIcon_request* rv=new SetAppIcon_request;
- if(SetAppIcon_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- SetAppIcon_response* rv=new SetAppIcon_response;
- if(SetAppIcon_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::SetDisplayLayoutID:
- if(mt==messageType::request)
- {
- SetDisplayLayout_request* rv=new SetDisplayLayout_request;
- if(SetDisplayLayout_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- SetDisplayLayout_response* rv=new SetDisplayLayout_response;
- if(SetDisplayLayout_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::SetGlobalPropertiesID:
- if(mt==messageType::request)
- {
- SetGlobalProperties_request* rv=new SetGlobalProperties_request;
- if(SetGlobalProperties_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- SetGlobalProperties_response* rv=new SetGlobalProperties_response;
- if(SetGlobalProperties_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::SetMediaClockTimerID:
- if(mt==messageType::request)
- {
- SetMediaClockTimer_request* rv=new SetMediaClockTimer_request;
- if(SetMediaClockTimer_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- SetMediaClockTimer_response* rv=new SetMediaClockTimer_response;
- if(SetMediaClockTimer_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::ShowID:
- if(mt==messageType::request)
- {
- Show_request* rv=new Show_request;
- if(Show_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- Show_response* rv=new Show_response;
- if(Show_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::ShowConstantTBTID:
- if(mt==messageType::request)
- {
- ShowConstantTBT_request* rv=new ShowConstantTBT_request;
- if(ShowConstantTBT_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- ShowConstantTBT_response* rv=new ShowConstantTBT_response;
- if(ShowConstantTBT_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::SliderID:
- if(mt==messageType::request)
- {
- Slider_request* rv=new Slider_request;
- if(Slider_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- Slider_response* rv=new Slider_response;
- if(Slider_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::SpeakID:
- if(mt==messageType::request)
- {
- Speak_request* rv=new Speak_request;
- if(Speak_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- Speak_response* rv=new Speak_response;
- if(Speak_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::SubscribeButtonID:
- if(mt==messageType::request)
- {
- SubscribeButton_request* rv=new SubscribeButton_request;
- if(SubscribeButton_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- SubscribeButton_response* rv=new SubscribeButton_response;
- if(SubscribeButton_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::SubscribeVehicleDataID:
- if(mt==messageType::request)
- {
- SubscribeVehicleData_request* rv=new SubscribeVehicleData_request;
- if(SubscribeVehicleData_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- SubscribeVehicleData_response* rv=new SubscribeVehicleData_response;
- if(SubscribeVehicleData_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::UnregisterAppInterfaceID:
- if(mt==messageType::request)
- {
- UnregisterAppInterface_request* rv=new UnregisterAppInterface_request;
- if(UnregisterAppInterface_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- UnregisterAppInterface_response* rv=new UnregisterAppInterface_response;
- if(UnregisterAppInterface_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::UnsubscribeButtonID:
- if(mt==messageType::request)
- {
- UnsubscribeButton_request* rv=new UnsubscribeButton_request;
- if(UnsubscribeButton_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- UnsubscribeButton_response* rv=new UnsubscribeButton_response;
- if(UnsubscribeButton_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::UnsubscribeVehicleDataID:
- if(mt==messageType::request)
- {
- UnsubscribeVehicleData_request* rv=new UnsubscribeVehicleData_request;
- if(UnsubscribeVehicleData_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- UnsubscribeVehicleData_response* rv=new UnsubscribeVehicleData_response;
- if(UnsubscribeVehicleData_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- case FunctionID::UpdateTurnListID:
- if(mt==messageType::request)
- {
- UpdateTurnList_request* rv=new UpdateTurnList_request;
- if(UpdateTurnList_requestMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
-
- if(mt==messageType::response)
- {
- UpdateTurnList_response* rv=new UpdateTurnList_response;
- if(UpdateTurnList_responseMarshaller::fromJSON(j,*rv))
- return rv;
- delete rv;
- return NULL;
- }
- return NULL;
- default:;
- }
-
- return NULL;
-}
-
-Json::Value Marshaller::toJSON(const NsSmartDeviceLinkRPC::SDLRPCMessage* msg, FunctionID::FunctionIDInternal fid, messageType::messageTypeInternal mt)
-{
- Json::Value j=toJSONparam(msg,fid,mt);
- Json::Value rv=Json::Value(Json::nullValue);
- if(!j.isNull())
- {
- rv=Json::Value(Json::objectValue);
- rv["parameters"]=j;
- }
- return rv;
-}
-
-
-Json::Value Marshaller::toJSONparam(const NsSmartDeviceLinkRPC::SDLRPCMessage* msg,FunctionID::FunctionIDInternal fid, messageType::messageTypeInternal mt)
-{
- Json::Value j=Json::Value(Json::nullValue);
- if(!msg) return j;
-
- switch(fid)
- {
- case FunctionID::AddCommandID:
- if(mt==messageType::request)
- return AddCommand_requestMarshaller::toJSON(* static_cast<const AddCommand_request*>(msg));
- if(mt==messageType::response)
- return AddCommand_responseMarshaller::toJSON(* static_cast<const AddCommand_response*>(msg));
- return j;
- case FunctionID::AddSubMenuID:
- if(mt==messageType::request)
- return AddSubMenu_requestMarshaller::toJSON(* static_cast<const AddSubMenu_request*>(msg));
- if(mt==messageType::response)
- return AddSubMenu_responseMarshaller::toJSON(* static_cast<const AddSubMenu_response*>(msg));
- return j;
- case FunctionID::AlertID:
- if(mt==messageType::request)
- return Alert_requestMarshaller::toJSON(* static_cast<const Alert_request*>(msg));
- if(mt==messageType::response)
- return Alert_responseMarshaller::toJSON(* static_cast<const Alert_response*>(msg));
- return j;
- case FunctionID::AlertManeuverID:
- if(mt==messageType::request)
- return AlertManeuver_requestMarshaller::toJSON(* static_cast<const AlertManeuver_request*>(msg));
- if(mt==messageType::response)
- return AlertManeuver_responseMarshaller::toJSON(* static_cast<const AlertManeuver_response*>(msg));
- return j;
- case FunctionID::ChangeRegistrationID:
- if(mt==messageType::request)
- return ChangeRegistration_requestMarshaller::toJSON(* static_cast<const ChangeRegistration_request*>(msg));
- if(mt==messageType::response)
- return ChangeRegistration_responseMarshaller::toJSON(* static_cast<const ChangeRegistration_response*>(msg));
- return j;
- case FunctionID::CreateInteractionChoiceSetID:
- if(mt==messageType::request)
- return CreateInteractionChoiceSet_requestMarshaller::toJSON(* static_cast<const CreateInteractionChoiceSet_request*>(msg));
- if(mt==messageType::response)
- return CreateInteractionChoiceSet_responseMarshaller::toJSON(* static_cast<const CreateInteractionChoiceSet_response*>(msg));
- return j;
- case FunctionID::DeleteCommandID:
- if(mt==messageType::request)
- return DeleteCommand_requestMarshaller::toJSON(* static_cast<const DeleteCommand_request*>(msg));
- if(mt==messageType::response)
- return DeleteCommand_responseMarshaller::toJSON(* static_cast<const DeleteCommand_response*>(msg));
- return j;
- case FunctionID::DeleteFileID:
- if(mt==messageType::request)
- return DeleteFile_requestMarshaller::toJSON(* static_cast<const DeleteFile_request*>(msg));
- if(mt==messageType::response)
- return DeleteFile_responseMarshaller::toJSON(* static_cast<const DeleteFile_response*>(msg));
- return j;
- case FunctionID::DeleteInteractionChoiceSetID:
- if(mt==messageType::request)
- return DeleteInteractionChoiceSet_requestMarshaller::toJSON(* static_cast<const DeleteInteractionChoiceSet_request*>(msg));
- if(mt==messageType::response)
- return DeleteInteractionChoiceSet_responseMarshaller::toJSON(* static_cast<const DeleteInteractionChoiceSet_response*>(msg));
- return j;
- case FunctionID::DeleteSubMenuID:
- if(mt==messageType::request)
- return DeleteSubMenu_requestMarshaller::toJSON(* static_cast<const DeleteSubMenu_request*>(msg));
- if(mt==messageType::response)
- return DeleteSubMenu_responseMarshaller::toJSON(* static_cast<const DeleteSubMenu_response*>(msg));
- return j;
- case FunctionID::DialNumberID:
- if(mt==messageType::request)
- return DialNumber_requestMarshaller::toJSON(* static_cast<const DialNumber_request*>(msg));
- if(mt==messageType::response)
- return DialNumber_responseMarshaller::toJSON(* static_cast<const DialNumber_response*>(msg));
- return j;
- case FunctionID::EncodedSyncPDataID:
- if(mt==messageType::request)
- return EncodedSyncPData_requestMarshaller::toJSON(* static_cast<const EncodedSyncPData_request*>(msg));
- if(mt==messageType::response)
- return EncodedSyncPData_responseMarshaller::toJSON(* static_cast<const EncodedSyncPData_response*>(msg));
- return j;
- case FunctionID::EndAudioPassThruID:
- if(mt==messageType::request)
- return EndAudioPassThru_requestMarshaller::toJSON(* static_cast<const EndAudioPassThru_request*>(msg));
- if(mt==messageType::response)
- return EndAudioPassThru_responseMarshaller::toJSON(* static_cast<const EndAudioPassThru_response*>(msg));
- return j;
- case FunctionID::GenericResponseID:
- if(mt==messageType::request)
- return Json::nullValue;
- if(mt==messageType::response)
- return GenericResponse_responseMarshaller::toJSON(* static_cast<const GenericResponse_response*>(msg));
- return j;
- case FunctionID::GetDTCsID:
- if(mt==messageType::request)
- return GetDTCs_requestMarshaller::toJSON(* static_cast<const GetDTCs_request*>(msg));
- if(mt==messageType::response)
- return GetDTCs_responseMarshaller::toJSON(* static_cast<const GetDTCs_response*>(msg));
- return j;
- case FunctionID::GetVehicleDataID:
- if(mt==messageType::request)
- return GetVehicleData_requestMarshaller::toJSON(* static_cast<const GetVehicleData_request*>(msg));
- if(mt==messageType::response)
- return GetVehicleData_responseMarshaller::toJSON(* static_cast<const GetVehicleData_response*>(msg));
- return j;
- case FunctionID::ListFilesID:
- if(mt==messageType::request)
- return ListFiles_requestMarshaller::toJSON(* static_cast<const ListFiles_request*>(msg));
- if(mt==messageType::response)
- return ListFiles_responseMarshaller::toJSON(* static_cast<const ListFiles_response*>(msg));
- return j;
- case FunctionID::OnAppInterfaceUnregisteredID:
- return mt==messageType::notification ? OnAppInterfaceUnregisteredMarshaller::toJSON(* static_cast<const OnAppInterfaceUnregistered*>(msg)) : j;
- case FunctionID::OnAudioPassThruID:
- return mt==messageType::notification ? OnAudioPassThruMarshaller::toJSON(* static_cast<const OnAudioPassThru*>(msg)) : j;
- case FunctionID::OnButtonEventID:
- return mt==messageType::notification ? OnButtonEventMarshaller::toJSON(* static_cast<const OnButtonEvent*>(msg)) : j;
- case FunctionID::OnButtonPressID:
- return mt==messageType::notification ? OnButtonPressMarshaller::toJSON(* static_cast<const OnButtonPress*>(msg)) : j;
- case FunctionID::OnCommandID:
- return mt==messageType::notification ? OnCommandMarshaller::toJSON(* static_cast<const OnCommand*>(msg)) : j;
- case FunctionID::OnDriverDistractionID:
- return mt==messageType::notification ? OnDriverDistractionMarshaller::toJSON(* static_cast<const OnDriverDistraction*>(msg)) : j;
- case FunctionID::OnEncodedSyncPDataID:
- return mt==messageType::notification ? OnEncodedSyncPDataMarshaller::toJSON(* static_cast<const OnEncodedSyncPData*>(msg)) : j;
- case FunctionID::OnHMIStatusID:
- return mt==messageType::notification ? OnHMIStatusMarshaller::toJSON(* static_cast<const OnHMIStatus*>(msg)) : j;
- case FunctionID::OnLanguageChangeID:
- return mt==messageType::notification ? OnLanguageChangeMarshaller::toJSON(* static_cast<const OnLanguageChange*>(msg)) : j;
- case FunctionID::OnPermissionsChangeID:
- return mt==messageType::notification ? OnPermissionsChangeMarshaller::toJSON(* static_cast<const OnPermissionsChange*>(msg)) : j;
- case FunctionID::OnTBTClientStateID:
- return mt==messageType::notification ? OnTBTClientStateMarshaller::toJSON(* static_cast<const OnTBTClientState*>(msg)) : j;
- case FunctionID::OnVehicleDataID:
- return mt==messageType::notification ? OnVehicleDataMarshaller::toJSON(* static_cast<const OnVehicleData*>(msg)) : j;
- case FunctionID::PerformAudioPassThruID:
- if(mt==messageType::request)
- return PerformAudioPassThru_requestMarshaller::toJSON(* static_cast<const PerformAudioPassThru_request*>(msg));
- if(mt==messageType::response)
- return PerformAudioPassThru_responseMarshaller::toJSON(* static_cast<const PerformAudioPassThru_response*>(msg));
- return j;
- case FunctionID::PerformInteractionID:
- if(mt==messageType::request)
- return PerformInteraction_requestMarshaller::toJSON(* static_cast<const PerformInteraction_request*>(msg));
- if(mt==messageType::response)
- return PerformInteraction_responseMarshaller::toJSON(* static_cast<const PerformInteraction_response*>(msg));
- return j;
- case FunctionID::PutFileID:
- if(mt==messageType::request)
- return PutFile_requestMarshaller::toJSON(* static_cast<const PutFile_request*>(msg));
- if(mt==messageType::response)
- return PutFile_responseMarshaller::toJSON(* static_cast<const PutFile_response*>(msg));
- return j;
- case FunctionID::ReadDIDID:
- if(mt==messageType::request)
- return ReadDID_requestMarshaller::toJSON(* static_cast<const ReadDID_request*>(msg));
- if(mt==messageType::response)
- return ReadDID_responseMarshaller::toJSON(* static_cast<const ReadDID_response*>(msg));
- return j;
- case FunctionID::RegisterAppInterfaceID:
- if(mt==messageType::request)
- return RegisterAppInterface_requestMarshaller::toJSON(* static_cast<const RegisterAppInterface_request*>(msg));
- if(mt==messageType::response)
- return RegisterAppInterface_responseMarshaller::toJSON(* static_cast<const RegisterAppInterface_response*>(msg));
- return j;
- case FunctionID::ResetGlobalPropertiesID:
- if(mt==messageType::request)
- return ResetGlobalProperties_requestMarshaller::toJSON(* static_cast<const ResetGlobalProperties_request*>(msg));
- if(mt==messageType::response)
- return ResetGlobalProperties_responseMarshaller::toJSON(* static_cast<const ResetGlobalProperties_response*>(msg));
- return j;
- case FunctionID::ScrollableMessageID:
- if(mt==messageType::request)
- return ScrollableMessage_requestMarshaller::toJSON(* static_cast<const ScrollableMessage_request*>(msg));
- if(mt==messageType::response)
- return ScrollableMessage_responseMarshaller::toJSON(* static_cast<const ScrollableMessage_response*>(msg));
- return j;
- case FunctionID::SetAppIconID:
- if(mt==messageType::request)
- return SetAppIcon_requestMarshaller::toJSON(* static_cast<const SetAppIcon_request*>(msg));
- if(mt==messageType::response)
- return SetAppIcon_responseMarshaller::toJSON(* static_cast<const SetAppIcon_response*>(msg));
- return j;
- case FunctionID::SetDisplayLayoutID:
- if(mt==messageType::request)
- return SetDisplayLayout_requestMarshaller::toJSON(* static_cast<const SetDisplayLayout_request*>(msg));
- if(mt==messageType::response)
- return SetDisplayLayout_responseMarshaller::toJSON(* static_cast<const SetDisplayLayout_response*>(msg));
- return j;
- case FunctionID::SetGlobalPropertiesID:
- if(mt==messageType::request)
- return SetGlobalProperties_requestMarshaller::toJSON(* static_cast<const SetGlobalProperties_request*>(msg));
- if(mt==messageType::response)
- return SetGlobalProperties_responseMarshaller::toJSON(* static_cast<const SetGlobalProperties_response*>(msg));
- return j;
- case FunctionID::SetMediaClockTimerID:
- if(mt==messageType::request)
- return SetMediaClockTimer_requestMarshaller::toJSON(* static_cast<const SetMediaClockTimer_request*>(msg));
- if(mt==messageType::response)
- return SetMediaClockTimer_responseMarshaller::toJSON(* static_cast<const SetMediaClockTimer_response*>(msg));
- return j;
- case FunctionID::ShowID:
- if(mt==messageType::request)
- return Show_requestMarshaller::toJSON(* static_cast<const Show_request*>(msg));
- if(mt==messageType::response)
- return Show_responseMarshaller::toJSON(* static_cast<const Show_response*>(msg));
- return j;
- case FunctionID::ShowConstantTBTID:
- if(mt==messageType::request)
- return ShowConstantTBT_requestMarshaller::toJSON(* static_cast<const ShowConstantTBT_request*>(msg));
- if(mt==messageType::response)
- return ShowConstantTBT_responseMarshaller::toJSON(* static_cast<const ShowConstantTBT_response*>(msg));
- return j;
- case FunctionID::SliderID:
- if(mt==messageType::request)
- return Slider_requestMarshaller::toJSON(* static_cast<const Slider_request*>(msg));
- if(mt==messageType::response)
- return Slider_responseMarshaller::toJSON(* static_cast<const Slider_response*>(msg));
- return j;
- case FunctionID::SpeakID:
- if(mt==messageType::request)
- return Speak_requestMarshaller::toJSON(* static_cast<const Speak_request*>(msg));
- if(mt==messageType::response)
- return Speak_responseMarshaller::toJSON(* static_cast<const Speak_response*>(msg));
- return j;
- case FunctionID::SubscribeButtonID:
- if(mt==messageType::request)
- return SubscribeButton_requestMarshaller::toJSON(* static_cast<const SubscribeButton_request*>(msg));
- if(mt==messageType::response)
- return SubscribeButton_responseMarshaller::toJSON(* static_cast<const SubscribeButton_response*>(msg));
- return j;
- case FunctionID::SubscribeVehicleDataID:
- if(mt==messageType::request)
- return SubscribeVehicleData_requestMarshaller::toJSON(* static_cast<const SubscribeVehicleData_request*>(msg));
- if(mt==messageType::response)
- return SubscribeVehicleData_responseMarshaller::toJSON(* static_cast<const SubscribeVehicleData_response*>(msg));
- return j;
- case FunctionID::UnregisterAppInterfaceID:
- if(mt==messageType::request)
- return UnregisterAppInterface_requestMarshaller::toJSON(* static_cast<const UnregisterAppInterface_request*>(msg));
- if(mt==messageType::response)
- return UnregisterAppInterface_responseMarshaller::toJSON(* static_cast<const UnregisterAppInterface_response*>(msg));
- return j;
- case FunctionID::UnsubscribeButtonID:
- if(mt==messageType::request)
- return UnsubscribeButton_requestMarshaller::toJSON(* static_cast<const UnsubscribeButton_request*>(msg));
- if(mt==messageType::response)
- return UnsubscribeButton_responseMarshaller::toJSON(* static_cast<const UnsubscribeButton_response*>(msg));
- return j;
- case FunctionID::UnsubscribeVehicleDataID:
- if(mt==messageType::request)
- return UnsubscribeVehicleData_requestMarshaller::toJSON(* static_cast<const UnsubscribeVehicleData_request*>(msg));
- if(mt==messageType::response)
- return UnsubscribeVehicleData_responseMarshaller::toJSON(* static_cast<const UnsubscribeVehicleData_response*>(msg));
- return j;
- case FunctionID::UpdateTurnListID:
- if(mt==messageType::request)
- return UpdateTurnList_requestMarshaller::toJSON(* static_cast<const UpdateTurnList_request*>(msg));
- if(mt==messageType::response)
- return UpdateTurnList_responseMarshaller::toJSON(* static_cast<const UpdateTurnList_response*>(msg));
- return j;
- default:;
- }
- return j;
-}
-
-RegisterAppInterface_requestMarshaller Marshaller::mRegisterAppInterface_request;
-RegisterAppInterface_responseMarshaller Marshaller::mRegisterAppInterface_response;
-UnregisterAppInterface_requestMarshaller Marshaller::mUnregisterAppInterface_request;
-UnregisterAppInterface_responseMarshaller Marshaller::mUnregisterAppInterface_response;
-SetGlobalProperties_requestMarshaller Marshaller::mSetGlobalProperties_request;
-SetGlobalProperties_responseMarshaller Marshaller::mSetGlobalProperties_response;
-ResetGlobalProperties_requestMarshaller Marshaller::mResetGlobalProperties_request;
-ResetGlobalProperties_responseMarshaller Marshaller::mResetGlobalProperties_response;
-AddCommand_requestMarshaller Marshaller::mAddCommand_request;
-AddCommand_responseMarshaller Marshaller::mAddCommand_response;
-DeleteCommand_requestMarshaller Marshaller::mDeleteCommand_request;
-DeleteCommand_responseMarshaller Marshaller::mDeleteCommand_response;
-AddSubMenu_requestMarshaller Marshaller::mAddSubMenu_request;
-AddSubMenu_responseMarshaller Marshaller::mAddSubMenu_response;
-DeleteSubMenu_requestMarshaller Marshaller::mDeleteSubMenu_request;
-DeleteSubMenu_responseMarshaller Marshaller::mDeleteSubMenu_response;
-CreateInteractionChoiceSet_requestMarshaller Marshaller::mCreateInteractionChoiceSet_request;
-CreateInteractionChoiceSet_responseMarshaller Marshaller::mCreateInteractionChoiceSet_response;
-PerformInteraction_requestMarshaller Marshaller::mPerformInteraction_request;
-PerformInteraction_responseMarshaller Marshaller::mPerformInteraction_response;
-DeleteInteractionChoiceSet_requestMarshaller Marshaller::mDeleteInteractionChoiceSet_request;
-DeleteInteractionChoiceSet_responseMarshaller Marshaller::mDeleteInteractionChoiceSet_response;
-Alert_requestMarshaller Marshaller::mAlert_request;
-Alert_responseMarshaller Marshaller::mAlert_response;
-Show_requestMarshaller Marshaller::mShow_request;
-Show_responseMarshaller Marshaller::mShow_response;
-Speak_requestMarshaller Marshaller::mSpeak_request;
-Speak_responseMarshaller Marshaller::mSpeak_response;
-SetMediaClockTimer_requestMarshaller Marshaller::mSetMediaClockTimer_request;
-SetMediaClockTimer_responseMarshaller Marshaller::mSetMediaClockTimer_response;
-EncodedSyncPData_requestMarshaller Marshaller::mEncodedSyncPData_request;
-EncodedSyncPData_responseMarshaller Marshaller::mEncodedSyncPData_response;
-DialNumber_requestMarshaller Marshaller::mDialNumber_request;
-DialNumber_responseMarshaller Marshaller::mDialNumber_response;
-PerformAudioPassThru_requestMarshaller Marshaller::mPerformAudioPassThru_request;
-PerformAudioPassThru_responseMarshaller Marshaller::mPerformAudioPassThru_response;
-EndAudioPassThru_requestMarshaller Marshaller::mEndAudioPassThru_request;
-EndAudioPassThru_responseMarshaller Marshaller::mEndAudioPassThru_response;
-SubscribeButton_requestMarshaller Marshaller::mSubscribeButton_request;
-SubscribeButton_responseMarshaller Marshaller::mSubscribeButton_response;
-UnsubscribeButton_requestMarshaller Marshaller::mUnsubscribeButton_request;
-UnsubscribeButton_responseMarshaller Marshaller::mUnsubscribeButton_response;
-SubscribeVehicleData_requestMarshaller Marshaller::mSubscribeVehicleData_request;
-SubscribeVehicleData_responseMarshaller Marshaller::mSubscribeVehicleData_response;
-UnsubscribeVehicleData_requestMarshaller Marshaller::mUnsubscribeVehicleData_request;
-UnsubscribeVehicleData_responseMarshaller Marshaller::mUnsubscribeVehicleData_response;
-GetVehicleData_requestMarshaller Marshaller::mGetVehicleData_request;
-GetVehicleData_responseMarshaller Marshaller::mGetVehicleData_response;
-ReadDID_requestMarshaller Marshaller::mReadDID_request;
-ReadDID_responseMarshaller Marshaller::mReadDID_response;
-GetDTCs_requestMarshaller Marshaller::mGetDTCs_request;
-GetDTCs_responseMarshaller Marshaller::mGetDTCs_response;
-ScrollableMessage_requestMarshaller Marshaller::mScrollableMessage_request;
-ScrollableMessage_responseMarshaller Marshaller::mScrollableMessage_response;
-Slider_requestMarshaller Marshaller::mSlider_request;
-Slider_responseMarshaller Marshaller::mSlider_response;
-ShowConstantTBT_requestMarshaller Marshaller::mShowConstantTBT_request;
-ShowConstantTBT_responseMarshaller Marshaller::mShowConstantTBT_response;
-AlertManeuver_requestMarshaller Marshaller::mAlertManeuver_request;
-AlertManeuver_responseMarshaller Marshaller::mAlertManeuver_response;
-UpdateTurnList_requestMarshaller Marshaller::mUpdateTurnList_request;
-UpdateTurnList_responseMarshaller Marshaller::mUpdateTurnList_response;
-ChangeRegistration_requestMarshaller Marshaller::mChangeRegistration_request;
-ChangeRegistration_responseMarshaller Marshaller::mChangeRegistration_response;
-GenericResponse_responseMarshaller Marshaller::mGenericResponse_response;
-PutFile_requestMarshaller Marshaller::mPutFile_request;
-PutFile_responseMarshaller Marshaller::mPutFile_response;
-DeleteFile_requestMarshaller Marshaller::mDeleteFile_request;
-DeleteFile_responseMarshaller Marshaller::mDeleteFile_response;
-ListFiles_requestMarshaller Marshaller::mListFiles_request;
-ListFiles_responseMarshaller Marshaller::mListFiles_response;
-SetAppIcon_requestMarshaller Marshaller::mSetAppIcon_request;
-SetAppIcon_responseMarshaller Marshaller::mSetAppIcon_response;
-SetDisplayLayout_requestMarshaller Marshaller::mSetDisplayLayout_request;
-SetDisplayLayout_responseMarshaller Marshaller::mSetDisplayLayout_response;
-OnHMIStatusMarshaller Marshaller::mOnHMIStatus;
-OnAppInterfaceUnregisteredMarshaller Marshaller::mOnAppInterfaceUnregistered;
-OnButtonEventMarshaller Marshaller::mOnButtonEvent;
-OnButtonPressMarshaller Marshaller::mOnButtonPress;
-OnVehicleDataMarshaller Marshaller::mOnVehicleData;
-OnCommandMarshaller Marshaller::mOnCommand;
-OnEncodedSyncPDataMarshaller Marshaller::mOnEncodedSyncPData;
-OnTBTClientStateMarshaller Marshaller::mOnTBTClientState;
-OnDriverDistractionMarshaller Marshaller::mOnDriverDistraction;
-OnPermissionsChangeMarshaller Marshaller::mOnPermissionsChange;
-OnAudioPassThruMarshaller Marshaller::mOnAudioPassThru;
-OnLanguageChangeMarshaller Marshaller::mOnLanguageChange;
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.cpp
deleted file mode 100644
index 1f8c9b40d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/MediaClockFormat.h"
-#include "MediaClockFormatMarshaller.h"
-#include "MediaClockFormatMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const MediaClockFormat::MediaClockFormatInternal MediaClockFormatMarshaller::getIndex(const char* s)
-{
- if(!s)
- return MediaClockFormat::INVALID_ENUM;
- const struct PerfectHashTable* p=MediaClockFormat_intHash::getPointer(s,strlen(s));
- return p ? static_cast<MediaClockFormat::MediaClockFormatInternal>(p->idx) : MediaClockFormat::INVALID_ENUM;
-}
-
-
-bool MediaClockFormatMarshaller::fromJSON(const Json::Value& s,MediaClockFormat& e)
-{
- e.mInternal=MediaClockFormat::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=MediaClockFormat::INVALID_ENUM);
-}
-
-
-Json::Value MediaClockFormatMarshaller::toJSON(const MediaClockFormat& e)
-{
- if(e.mInternal==MediaClockFormat::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool MediaClockFormatMarshaller::fromString(const std::string& s,MediaClockFormat& e)
-{
- e.mInternal=MediaClockFormat::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string MediaClockFormatMarshaller::toString(const MediaClockFormat& e)
-{
- Json::FastWriter writer;
- return e.mInternal==MediaClockFormat::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable MediaClockFormatMarshaller::mHashTable[5]=
-{
- {"CLOCK1",0},
- {"CLOCK2",1},
- {"CLOCKTEXT1",2},
- {"CLOCKTEXT2",3},
- {"CLOCKTEXT3",4}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.gp
deleted file mode 100644
index f3b9383c1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.gp
+++ /dev/null
@@ -1,21 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name MediaClockFormat_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-CLOCK1,0
-CLOCK2,1
-CLOCKTEXT1,2
-CLOCKTEXT2,3
-CLOCKTEXT3,4
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.h
deleted file mode 100644
index 1f3ccd36b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_MEDIACLOCKFORMATMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_MEDIACLOCKFORMATMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/MediaClockFormat.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for MediaClockFormat
-
- class MediaClockFormatMarshaller
- {
- public:
-
- static std::string toName(const MediaClockFormat& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(MediaClockFormat& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=MediaClockFormat::INVALID_ENUM;
- }
-
- static bool checkIntegrity(MediaClockFormat& e) { return e.mInternal!=MediaClockFormat::INVALID_ENUM; }
- static bool checkIntegrityConst(const MediaClockFormat& e) { return e.mInternal!=MediaClockFormat::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,MediaClockFormat& e);
- static const std::string toString(const MediaClockFormat& e);
-
- static bool fromJSON(const Json::Value& s,MediaClockFormat& e);
- static Json::Value toJSON(const MediaClockFormat& e);
-
- static const char* getName(MediaClockFormat::MediaClockFormatInternal e)
- {
- return (e>=0 && e<5) ? mHashTable[e].name : NULL;
- }
-
- static const MediaClockFormat::MediaClockFormatInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[5];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.inc
deleted file mode 100644
index 579404325..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.inc
+++ /dev/null
@@ -1,154 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.gp */
-/* Computed positions: -k'$' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 5
-#define MIN_WORD_LENGTH 6
-#define MAX_WORD_LENGTH 10
-#define MIN_HASH_VALUE 6
-#define MAX_HASH_VALUE 15
-/* maximum key range = 10, duplicates = 0 */
-
-class MediaClockFormat_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-MediaClockFormat_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 5,
- 0, 2, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16
- };
- return len + asso_values[(unsigned char)str[len - 1]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-MediaClockFormat_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 10, 6, 10, 0,
- 0, 10
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.gp"
- {"CLOCK2",1},
- {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.gp"
- {"CLOCKTEXT2",3},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.gp"
- {"CLOCK1",0},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.gp"
- {"CLOCKTEXT3",4},
- {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MediaClockFormatMarshaller.gp"
- {"CLOCKTEXT1",2}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParams.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParams.cpp
deleted file mode 100644
index e6094516b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParams.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/MenuParams.h"
-#include "MenuParamsMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-MenuParams& MenuParams::operator =(const MenuParams& c)
-{
- menuName=c.menuName;
- parentID=c.parentID ? new unsigned int(c.parentID[0]) : 0;
- position=c.position ? new unsigned int(c.position[0]) : 0;
-
- return *this;
-}
-
-
-MenuParams::~MenuParams(void)
-{
- if(parentID)
- delete parentID;
- if(position)
- delete position;
-}
-
-
-MenuParams::MenuParams(const MenuParams& c)
-{
- *this=c;
-}
-
-
-bool MenuParams::checkIntegrity(void)
-{
- return MenuParamsMarshaller::checkIntegrity(*this);
-}
-
-
-MenuParams::MenuParams(void) :
- parentID(0),
- position(0)
-{
-}
-
-
-
-bool MenuParams::set_menuName(const std::string& menuName_)
-{
- if(menuName_.length()>500) return false;
- menuName=menuName_;
- return true;
-}
-
-bool MenuParams::set_parentID(unsigned int parentID_)
-{
- if(parentID_>2000000000) return false;
- delete parentID;
- parentID=0;
-
- parentID=new unsigned int(parentID_);
- return true;
-}
-
-void MenuParams::reset_parentID(void)
-{
- if(parentID)
- delete parentID;
- parentID=0;
-}
-
-bool MenuParams::set_position(unsigned int position_)
-{
- if(position_>1000) return false;
- delete position;
- position=0;
-
- position=new unsigned int(position_);
- return true;
-}
-
-void MenuParams::reset_position(void)
-{
- if(position)
- delete position;
- position=0;
-}
-
-
-
-
-const std::string& MenuParams::get_menuName(void) const
-{
- return menuName;
-}
-
-
-const unsigned int* MenuParams::get_parentID(void) const
-{
- return parentID;
-}
-
-
-const unsigned int* MenuParams::get_position(void) const
-{
- return position;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParamsMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParamsMarshaller.cpp
deleted file mode 100644
index 7e9e24218..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParamsMarshaller.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/MenuParams.h"
-
-
-#include "MenuParamsMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool MenuParamsMarshaller::checkIntegrity(MenuParams& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool MenuParamsMarshaller::fromString(const std::string& s,MenuParams& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string MenuParamsMarshaller::toString(const MenuParams& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool MenuParamsMarshaller::checkIntegrityConst(const MenuParams& s)
-{
- if(s.menuName.length()>500) return false;
- if(s.parentID && *s.parentID>2000000000) return false;
- if(s.position && *s.position>1000) return false;
- return true;
-}
-
-Json::Value MenuParamsMarshaller::toJSON(const MenuParams& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["menuName"]=Json::Value(e.menuName);
-
- if(e.parentID)
- json["parentID"]=Json::Value(*e.parentID);
-
- if(e.position)
- json["position"]=Json::Value(*e.position);
-
-
- return json;
-}
-
-
-bool MenuParamsMarshaller::fromJSON(const Json::Value& json,MenuParams& c)
-{
- if(c.parentID) delete c.parentID;
- c.parentID=0;
-
- if(c.position) delete c.position;
- c.position=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("menuName")) return false;
- {
- const Json::Value& j=json["menuName"];
- if(!j.isString()) return false;
- c.menuName=j.asString();
- }
- if(json.isMember("parentID"))
- {
- const Json::Value& j=json["parentID"];
- if(!j.isInt()) return false;
- c.parentID=new unsigned int(j.asInt());
- }
- if(json.isMember("position"))
- {
- const Json::Value& j=json["position"];
- if(!j.isInt()) return false;
- c.position=new unsigned int(j.asInt());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParamsMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParamsMarshaller.h
deleted file mode 100644
index f25ab627c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/MenuParamsMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_MENUPARAMSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_MENUPARAMSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/MenuParams.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct MenuParamsMarshaller
- {
- static bool checkIntegrity(MenuParams& e);
- static bool checkIntegrityConst(const MenuParams& e);
-
- static bool fromString(const std::string& s,MenuParams& e);
- static const std::string toString(const MenuParams& e);
-
- static bool fromJSON(const Json::Value& s,MenuParams& e);
- static Json::Value toJSON(const MenuParams& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregistered.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregistered.cpp
deleted file mode 100644
index cea50c4bb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregistered.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnAppInterfaceUnregistered.h"
-#include "OnAppInterfaceUnregisteredMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "AppInterfaceUnregisteredReasonMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-OnAppInterfaceUnregistered::~OnAppInterfaceUnregistered(void)
-{
-}
-
-
-OnAppInterfaceUnregistered::OnAppInterfaceUnregistered(const OnAppInterfaceUnregistered& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnAppInterfaceUnregistered::checkIntegrity(void)
-{
- return OnAppInterfaceUnregisteredMarshaller::checkIntegrity(*this);
-}
-
-
-OnAppInterfaceUnregistered::OnAppInterfaceUnregistered(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool OnAppInterfaceUnregistered::set_reason(const AppInterfaceUnregisteredReason& reason_)
-{
- if(!AppInterfaceUnregisteredReasonMarshaller::checkIntegrityConst(reason_)) return false;
- reason=reason_;
- return true;
-}
-
-
-
-
-const AppInterfaceUnregisteredReason& OnAppInterfaceUnregistered::get_reason(void) const
-{
- return reason;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregisteredMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregisteredMarshaller.cpp
deleted file mode 100644
index 8a3071d80..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregisteredMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnAppInterfaceUnregistered.h"
-#include "AppInterfaceUnregisteredReasonMarshaller.h"
-
-#include "OnAppInterfaceUnregisteredMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnAppInterfaceUnregisteredMarshaller::checkIntegrity(OnAppInterfaceUnregistered& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnAppInterfaceUnregisteredMarshaller::fromString(const std::string& s,OnAppInterfaceUnregistered& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnAppInterfaceUnregisteredMarshaller::toString(const OnAppInterfaceUnregistered& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnAppInterfaceUnregisteredMarshaller::checkIntegrityConst(const OnAppInterfaceUnregistered& s)
-{
- if(!AppInterfaceUnregisteredReasonMarshaller::checkIntegrityConst(s.reason)) return false;
- return true;
-}
-
-Json::Value OnAppInterfaceUnregisteredMarshaller::toJSON(const OnAppInterfaceUnregistered& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["reason"]=AppInterfaceUnregisteredReasonMarshaller::toJSON(e.reason);
-
- return json;
-}
-
-
-bool OnAppInterfaceUnregisteredMarshaller::fromJSON(const Json::Value& json,OnAppInterfaceUnregistered& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("reason")) return false;
- {
- const Json::Value& j=json["reason"];
- if(!AppInterfaceUnregisteredReasonMarshaller::fromJSON(j,c.reason))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregisteredMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregisteredMarshaller.h
deleted file mode 100644
index e249146ce..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAppInterfaceUnregisteredMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONAPPINTERFACEUNREGISTEREDMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONAPPINTERFACEUNREGISTEREDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnAppInterfaceUnregistered.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnAppInterfaceUnregisteredMarshaller
- {
- static bool checkIntegrity(OnAppInterfaceUnregistered& e);
- static bool checkIntegrityConst(const OnAppInterfaceUnregistered& e);
-
- static bool fromString(const std::string& s,OnAppInterfaceUnregistered& e);
- static const std::string toString(const OnAppInterfaceUnregistered& e);
-
- static bool fromJSON(const Json::Value& s,OnAppInterfaceUnregistered& e);
- static Json::Value toJSON(const OnAppInterfaceUnregistered& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThru.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThru.cpp
deleted file mode 100644
index 6592ccec9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThru.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnAudioPassThru.h"
-#include "OnAudioPassThruMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-OnAudioPassThru::~OnAudioPassThru(void)
-{
-}
-
-
-OnAudioPassThru::OnAudioPassThru(const OnAudioPassThru& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnAudioPassThru::checkIntegrity(void)
-{
- return OnAudioPassThruMarshaller::checkIntegrity(*this);
-}
-
-
-OnAudioPassThru::OnAudioPassThru(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThruMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThruMarshaller.cpp
deleted file mode 100644
index b823dc0db..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThruMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnAudioPassThru.h"
-
-
-#include "OnAudioPassThruMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnAudioPassThruMarshaller::checkIntegrity(OnAudioPassThru& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnAudioPassThruMarshaller::fromString(const std::string& s,OnAudioPassThru& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnAudioPassThruMarshaller::toString(const OnAudioPassThru& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnAudioPassThruMarshaller::checkIntegrityConst(const OnAudioPassThru& s)
-{
- return true;
-}
-
-Json::Value OnAudioPassThruMarshaller::toJSON(const OnAudioPassThru& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- return json=Json::Value(Json::nullValue);
-}
-
-
-bool OnAudioPassThruMarshaller::fromJSON(const Json::Value& json,OnAudioPassThru& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThruMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThruMarshaller.h
deleted file mode 100644
index 3b69417f0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnAudioPassThruMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONAUDIOPASSTHRUMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONAUDIOPASSTHRUMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnAudioPassThru.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnAudioPassThruMarshaller
- {
- static bool checkIntegrity(OnAudioPassThru& e);
- static bool checkIntegrityConst(const OnAudioPassThru& e);
-
- static bool fromString(const std::string& s,OnAudioPassThru& e);
- static const std::string toString(const OnAudioPassThru& e);
-
- static bool fromJSON(const Json::Value& s,OnAudioPassThru& e);
- static Json::Value toJSON(const OnAudioPassThru& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEvent.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEvent.cpp
deleted file mode 100644
index 5dd2436a2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEvent.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnButtonEvent.h"
-#include "OnButtonEventMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "ButtonEventModeMarshaller.h"
-#include "ButtonNameMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-OnButtonEvent::~OnButtonEvent(void)
-{
-}
-
-
-OnButtonEvent::OnButtonEvent(const OnButtonEvent& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnButtonEvent::checkIntegrity(void)
-{
- return OnButtonEventMarshaller::checkIntegrity(*this);
-}
-
-
-OnButtonEvent::OnButtonEvent(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool OnButtonEvent::set_buttonName(const ButtonName& buttonName_)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(buttonName_)) return false;
- buttonName=buttonName_;
- return true;
-}
-
-bool OnButtonEvent::set_buttonEventMode(const ButtonEventMode& buttonEventMode_)
-{
- if(!ButtonEventModeMarshaller::checkIntegrityConst(buttonEventMode_)) return false;
- buttonEventMode=buttonEventMode_;
- return true;
-}
-
-bool OnButtonEvent::set_customButtonID(unsigned int customButtonID_)
-{
- if(customButtonID_>65536) return false;
- customButtonID=customButtonID_;
- return true;
-}
-
-
-
-
-const ButtonName& OnButtonEvent::get_buttonName(void) const
-{
- return buttonName;
-}
-
-const ButtonEventMode& OnButtonEvent::get_buttonEventMode(void) const
-{
- return buttonEventMode;
-}
-
-unsigned int OnButtonEvent::get_customButtonID(void) const
-{
- return customButtonID;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEventMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEventMarshaller.cpp
deleted file mode 100644
index ecf9f5c94..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEventMarshaller.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnButtonEvent.h"
-#include "ButtonEventModeMarshaller.h"
-#include "ButtonNameMarshaller.h"
-
-#include "OnButtonEventMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnButtonEventMarshaller::checkIntegrity(OnButtonEvent& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnButtonEventMarshaller::fromString(const std::string& s,OnButtonEvent& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnButtonEventMarshaller::toString(const OnButtonEvent& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnButtonEventMarshaller::checkIntegrityConst(const OnButtonEvent& s)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(s.buttonName)) return false;
- if(!ButtonEventModeMarshaller::checkIntegrityConst(s.buttonEventMode)) return false;
- if(s.customButtonID>65536) return false;
- return true;
-}
-
-Json::Value OnButtonEventMarshaller::toJSON(const OnButtonEvent& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["buttonName"]=ButtonNameMarshaller::toJSON(e.buttonName);
-
- json["buttonEventMode"]=ButtonEventModeMarshaller::toJSON(e.buttonEventMode);
-
- json["customButtonID"]=Json::Value(e.customButtonID);
-
- return json;
-}
-
-
-bool OnButtonEventMarshaller::fromJSON(const Json::Value& json,OnButtonEvent& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("buttonName")) return false;
- {
- const Json::Value& j=json["buttonName"];
- if(!ButtonNameMarshaller::fromJSON(j,c.buttonName))
- return false;
- }
- if(!json.isMember("buttonEventMode")) return false;
- {
- const Json::Value& j=json["buttonEventMode"];
- if(!ButtonEventModeMarshaller::fromJSON(j,c.buttonEventMode))
- return false;
- }
- if(!json.isMember("customButtonID")) return false;
- {
- const Json::Value& j=json["customButtonID"];
- if(!j.isInt()) return false;
- c.customButtonID=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEventMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEventMarshaller.h
deleted file mode 100644
index f3df6184d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonEventMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONBUTTONEVENTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONBUTTONEVENTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnButtonEvent.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnButtonEventMarshaller
- {
- static bool checkIntegrity(OnButtonEvent& e);
- static bool checkIntegrityConst(const OnButtonEvent& e);
-
- static bool fromString(const std::string& s,OnButtonEvent& e);
- static const std::string toString(const OnButtonEvent& e);
-
- static bool fromJSON(const Json::Value& s,OnButtonEvent& e);
- static Json::Value toJSON(const OnButtonEvent& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPress.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPress.cpp
deleted file mode 100644
index 47be4f7bb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPress.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnButtonPress.h"
-#include "OnButtonPressMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "ButtonNameMarshaller.h"
-#include "ButtonPressModeMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-OnButtonPress::~OnButtonPress(void)
-{
-}
-
-
-OnButtonPress::OnButtonPress(const OnButtonPress& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnButtonPress::checkIntegrity(void)
-{
- return OnButtonPressMarshaller::checkIntegrity(*this);
-}
-
-
-OnButtonPress::OnButtonPress(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool OnButtonPress::set_buttonName(const ButtonName& buttonName_)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(buttonName_)) return false;
- buttonName=buttonName_;
- return true;
-}
-
-bool OnButtonPress::set_buttonPressMode(const ButtonPressMode& buttonPressMode_)
-{
- if(!ButtonPressModeMarshaller::checkIntegrityConst(buttonPressMode_)) return false;
- buttonPressMode=buttonPressMode_;
- return true;
-}
-
-bool OnButtonPress::set_customButtonID(unsigned int customButtonID_)
-{
- if(customButtonID_>65536) return false;
- customButtonID=customButtonID_;
- return true;
-}
-
-
-
-
-const ButtonName& OnButtonPress::get_buttonName(void) const
-{
- return buttonName;
-}
-
-const ButtonPressMode& OnButtonPress::get_buttonPressMode(void) const
-{
- return buttonPressMode;
-}
-
-unsigned int OnButtonPress::get_customButtonID(void) const
-{
- return customButtonID;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPressMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPressMarshaller.cpp
deleted file mode 100644
index db7ec8a55..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPressMarshaller.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnButtonPress.h"
-#include "ButtonNameMarshaller.h"
-#include "ButtonPressModeMarshaller.h"
-
-#include "OnButtonPressMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnButtonPressMarshaller::checkIntegrity(OnButtonPress& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnButtonPressMarshaller::fromString(const std::string& s,OnButtonPress& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnButtonPressMarshaller::toString(const OnButtonPress& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnButtonPressMarshaller::checkIntegrityConst(const OnButtonPress& s)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(s.buttonName)) return false;
- if(!ButtonPressModeMarshaller::checkIntegrityConst(s.buttonPressMode)) return false;
- if(s.customButtonID>65536) return false;
- return true;
-}
-
-Json::Value OnButtonPressMarshaller::toJSON(const OnButtonPress& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["buttonName"]=ButtonNameMarshaller::toJSON(e.buttonName);
-
- json["buttonPressMode"]=ButtonPressModeMarshaller::toJSON(e.buttonPressMode);
-
- json["customButtonID"]=Json::Value(e.customButtonID);
-
- return json;
-}
-
-
-bool OnButtonPressMarshaller::fromJSON(const Json::Value& json,OnButtonPress& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("buttonName")) return false;
- {
- const Json::Value& j=json["buttonName"];
- if(!ButtonNameMarshaller::fromJSON(j,c.buttonName))
- return false;
- }
- if(!json.isMember("buttonPressMode")) return false;
- {
- const Json::Value& j=json["buttonPressMode"];
- if(!ButtonPressModeMarshaller::fromJSON(j,c.buttonPressMode))
- return false;
- }
- if(!json.isMember("customButtonID")) return false;
- {
- const Json::Value& j=json["customButtonID"];
- if(!j.isInt()) return false;
- c.customButtonID=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPressMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPressMarshaller.h
deleted file mode 100644
index a78cfcf32..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnButtonPressMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONBUTTONPRESSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONBUTTONPRESSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnButtonPress.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnButtonPressMarshaller
- {
- static bool checkIntegrity(OnButtonPress& e);
- static bool checkIntegrityConst(const OnButtonPress& e);
-
- static bool fromString(const std::string& s,OnButtonPress& e);
- static const std::string toString(const OnButtonPress& e);
-
- static bool fromJSON(const Json::Value& s,OnButtonPress& e);
- static Json::Value toJSON(const OnButtonPress& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommand.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommand.cpp
deleted file mode 100644
index 9852c0b48..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommand.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnCommand.h"
-#include "OnCommandMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "TriggerSourceMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-OnCommand::~OnCommand(void)
-{
-}
-
-
-OnCommand::OnCommand(const OnCommand& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnCommand::checkIntegrity(void)
-{
- return OnCommandMarshaller::checkIntegrity(*this);
-}
-
-
-OnCommand::OnCommand(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool OnCommand::set_cmdID(unsigned int cmdID_)
-{
- if(cmdID_>2000000000) return false;
- cmdID=cmdID_;
- return true;
-}
-
-bool OnCommand::set_triggerSource(const TriggerSource& triggerSource_)
-{
- if(!TriggerSourceMarshaller::checkIntegrityConst(triggerSource_)) return false;
- triggerSource=triggerSource_;
- return true;
-}
-
-
-
-
-unsigned int OnCommand::get_cmdID(void) const
-{
- return cmdID;
-}
-
-const TriggerSource& OnCommand::get_triggerSource(void) const
-{
- return triggerSource;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommandMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommandMarshaller.cpp
deleted file mode 100644
index b255a9132..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommandMarshaller.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnCommand.h"
-#include "TriggerSourceMarshaller.h"
-
-#include "OnCommandMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnCommandMarshaller::checkIntegrity(OnCommand& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnCommandMarshaller::fromString(const std::string& s,OnCommand& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnCommandMarshaller::toString(const OnCommand& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnCommandMarshaller::checkIntegrityConst(const OnCommand& s)
-{
- if(s.cmdID>2000000000) return false;
- if(!TriggerSourceMarshaller::checkIntegrityConst(s.triggerSource)) return false;
- return true;
-}
-
-Json::Value OnCommandMarshaller::toJSON(const OnCommand& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["cmdID"]=Json::Value(e.cmdID);
-
- json["triggerSource"]=TriggerSourceMarshaller::toJSON(e.triggerSource);
-
- return json;
-}
-
-
-bool OnCommandMarshaller::fromJSON(const Json::Value& json,OnCommand& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("cmdID")) return false;
- {
- const Json::Value& j=json["cmdID"];
- if(!j.isInt()) return false;
- c.cmdID=j.asInt();
- }
- if(!json.isMember("triggerSource")) return false;
- {
- const Json::Value& j=json["triggerSource"];
- if(!TriggerSourceMarshaller::fromJSON(j,c.triggerSource))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommandMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommandMarshaller.h
deleted file mode 100644
index 5a2194b76..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnCommandMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONCOMMANDMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONCOMMANDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnCommand.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnCommandMarshaller
- {
- static bool checkIntegrity(OnCommand& e);
- static bool checkIntegrityConst(const OnCommand& e);
-
- static bool fromString(const std::string& s,OnCommand& e);
- static const std::string toString(const OnCommand& e);
-
- static bool fromJSON(const Json::Value& s,OnCommand& e);
- static Json::Value toJSON(const OnCommand& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistraction.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistraction.cpp
deleted file mode 100644
index afe6af9f3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistraction.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnDriverDistraction.h"
-#include "OnDriverDistractionMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "DriverDistractionStateMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-OnDriverDistraction::~OnDriverDistraction(void)
-{
-}
-
-
-OnDriverDistraction::OnDriverDistraction(const OnDriverDistraction& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnDriverDistraction::checkIntegrity(void)
-{
- return OnDriverDistractionMarshaller::checkIntegrity(*this);
-}
-
-
-OnDriverDistraction::OnDriverDistraction(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool OnDriverDistraction::set_state(const DriverDistractionState& state_)
-{
- if(!DriverDistractionStateMarshaller::checkIntegrityConst(state_)) return false;
- state=state_;
- return true;
-}
-
-
-
-
-const DriverDistractionState& OnDriverDistraction::get_state(void) const
-{
- return state;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistractionMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistractionMarshaller.cpp
deleted file mode 100644
index bc70d7ab4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistractionMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnDriverDistraction.h"
-#include "DriverDistractionStateMarshaller.h"
-
-#include "OnDriverDistractionMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnDriverDistractionMarshaller::checkIntegrity(OnDriverDistraction& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnDriverDistractionMarshaller::fromString(const std::string& s,OnDriverDistraction& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnDriverDistractionMarshaller::toString(const OnDriverDistraction& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnDriverDistractionMarshaller::checkIntegrityConst(const OnDriverDistraction& s)
-{
- if(!DriverDistractionStateMarshaller::checkIntegrityConst(s.state)) return false;
- return true;
-}
-
-Json::Value OnDriverDistractionMarshaller::toJSON(const OnDriverDistraction& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["state"]=DriverDistractionStateMarshaller::toJSON(e.state);
-
- return json;
-}
-
-
-bool OnDriverDistractionMarshaller::fromJSON(const Json::Value& json,OnDriverDistraction& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("state")) return false;
- {
- const Json::Value& j=json["state"];
- if(!DriverDistractionStateMarshaller::fromJSON(j,c.state))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistractionMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistractionMarshaller.h
deleted file mode 100644
index c5995e904..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnDriverDistractionMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONDRIVERDISTRACTIONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONDRIVERDISTRACTIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnDriverDistraction.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnDriverDistractionMarshaller
- {
- static bool checkIntegrity(OnDriverDistraction& e);
- static bool checkIntegrityConst(const OnDriverDistraction& e);
-
- static bool fromString(const std::string& s,OnDriverDistraction& e);
- static const std::string toString(const OnDriverDistraction& e);
-
- static bool fromJSON(const Json::Value& s,OnDriverDistraction& e);
- static Json::Value toJSON(const OnDriverDistraction& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPData.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPData.cpp
deleted file mode 100644
index fdecaad45..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPData.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnEncodedSyncPData.h"
-#include "OnEncodedSyncPDataMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-OnEncodedSyncPData& OnEncodedSyncPData::operator =(const OnEncodedSyncPData& c)
-{
- data= c.data;
- URL= c.URL ? new std::string(c.URL[0]) : 0;
- Timeout= c.Timeout ? new int(c.Timeout[0]) : 0;
-
- return *this;
-}
-
-
-OnEncodedSyncPData::~OnEncodedSyncPData(void)
-{
- if(URL)
- delete URL;
- if(Timeout)
- delete Timeout;
-}
-
-
-OnEncodedSyncPData::OnEncodedSyncPData(const OnEncodedSyncPData& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnEncodedSyncPData::checkIntegrity(void)
-{
- return OnEncodedSyncPDataMarshaller::checkIntegrity(*this);
-}
-
-
-OnEncodedSyncPData::OnEncodedSyncPData(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- URL(0),
- Timeout(0)
-{
-}
-
-
-
-bool OnEncodedSyncPData::set_data(const std::vector<std::string>& data_)
-{
- unsigned int i=data_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(data_[i].length()>10000) return false;
- }
- data=data_;
- return true;
-}
-
-bool OnEncodedSyncPData::set_URL(const std::string& URL_)
-{
- if(URL_.length()>1000) return false;
- delete URL;
- URL=0;
-
- URL=new std::string(URL_);
- return true;
-}
-
-void OnEncodedSyncPData::reset_URL(void)
-{
- if(URL)
- delete URL;
- URL=0;
-}
-
-bool OnEncodedSyncPData::set_Timeout(int Timeout_)
-{
- if(Timeout_>2000000000) return false;
- delete Timeout;
- Timeout=0;
-
- Timeout=new int(Timeout_);
- return true;
-}
-
-void OnEncodedSyncPData::reset_Timeout(void)
-{
- if(Timeout)
- delete Timeout;
- Timeout=0;
-}
-
-
-
-
-const std::vector<std::string>& OnEncodedSyncPData::get_data(void) const
-{
- return data;
-}
-
-const std::string* OnEncodedSyncPData::get_URL(void) const
-{
- return URL;
-}
-
-const int* OnEncodedSyncPData::get_Timeout(void) const
-{
- return Timeout;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPDataMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPDataMarshaller.cpp
deleted file mode 100644
index 47003bc2d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPDataMarshaller.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnEncodedSyncPData.h"
-
-
-#include "OnEncodedSyncPDataMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnEncodedSyncPDataMarshaller::checkIntegrity(OnEncodedSyncPData& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnEncodedSyncPDataMarshaller::fromString(const std::string& s,OnEncodedSyncPData& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnEncodedSyncPDataMarshaller::toString(const OnEncodedSyncPData& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnEncodedSyncPDataMarshaller::checkIntegrityConst(const OnEncodedSyncPData& s)
-{
- {
- unsigned int i=s.data.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.data[i].length()>10000) return false;
- }
- }
- if(s.URL && s.URL->length()>1000) return false;
- if(s.Timeout && *s.Timeout>2000000000) return false;
- if(s.Timeout && *s.Timeout<-2000000000) return false;
- return true;
-}
-
-Json::Value OnEncodedSyncPDataMarshaller::toJSON(const OnEncodedSyncPData& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["data"]=Json::Value(Json::arrayValue);
- json["data"].resize(e.data.size());
- for(unsigned int i=0;i<e.data.size();i++)
- json["data"][i]=Json::Value(e.data[i]);
-
- if(e.URL)
- json["URL"]=Json::Value(*e.URL);
-
- if(e.Timeout)
- json["Timeout"]=Json::Value(*e.Timeout);
-
- return json;
-}
-
-
-bool OnEncodedSyncPDataMarshaller::fromJSON(const Json::Value& json,OnEncodedSyncPData& c)
-{
- if(c.URL) delete c.URL;
- c.URL=0;
-
- if(c.Timeout) delete c.Timeout;
- c.Timeout=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("data")) return false;
- {
- const Json::Value& j=json["data"];
- if(!j.isArray()) return false;
- c.data.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.data[i]=j[i].asString();
- }
- if(json.isMember("URL"))
- {
- const Json::Value& j=json["URL"];
- if(!j.isString()) return false;
- c.URL=new std::string(j.asString());
- }
- if(json.isMember("Timeout"))
- {
- const Json::Value& j=json["Timeout"];
- if(!j.isInt()) return false;
- c.Timeout=new int(j.asInt());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPDataMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPDataMarshaller.h
deleted file mode 100644
index 34723a4be..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnEncodedSyncPDataMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONENCODEDSYNCPDATAMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONENCODEDSYNCPDATAMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnEncodedSyncPData.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnEncodedSyncPDataMarshaller
- {
- static bool checkIntegrity(OnEncodedSyncPData& e);
- static bool checkIntegrityConst(const OnEncodedSyncPData& e);
-
- static bool fromString(const std::string& s,OnEncodedSyncPData& e);
- static const std::string toString(const OnEncodedSyncPData& e);
-
- static bool fromJSON(const Json::Value& s,OnEncodedSyncPData& e);
- static Json::Value toJSON(const OnEncodedSyncPData& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatus.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatus.cpp
deleted file mode 100644
index 8179abc2d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatus.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnHMIStatus.h"
-#include "OnHMIStatusMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "AudioStreamingStateMarshaller.h"
-#include "HMILevelMarshaller.h"
-#include "SystemContextMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-OnHMIStatus::~OnHMIStatus(void)
-{
-}
-
-
-OnHMIStatus::OnHMIStatus(const OnHMIStatus& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnHMIStatus::checkIntegrity(void)
-{
- return OnHMIStatusMarshaller::checkIntegrity(*this);
-}
-
-
-OnHMIStatus::OnHMIStatus(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool OnHMIStatus::set_hmiLevel(const HMILevel& hmiLevel_)
-{
- if(!HMILevelMarshaller::checkIntegrityConst(hmiLevel_)) return false;
- hmiLevel=hmiLevel_;
- return true;
-}
-
-bool OnHMIStatus::set_audioStreamingState(const AudioStreamingState& audioStreamingState_)
-{
- if(!AudioStreamingStateMarshaller::checkIntegrityConst(audioStreamingState_)) return false;
- audioStreamingState=audioStreamingState_;
- return true;
-}
-
-bool OnHMIStatus::set_systemContext(const SystemContext& systemContext_)
-{
- if(!SystemContextMarshaller::checkIntegrityConst(systemContext_)) return false;
- systemContext=systemContext_;
- return true;
-}
-
-
-
-
-const HMILevel& OnHMIStatus::get_hmiLevel(void) const
-{
- return hmiLevel;
-}
-
-const AudioStreamingState& OnHMIStatus::get_audioStreamingState(void) const
-{
- return audioStreamingState;
-}
-
-const SystemContext& OnHMIStatus::get_systemContext(void) const
-{
- return systemContext;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatusMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatusMarshaller.cpp
deleted file mode 100644
index 07a2ad937..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatusMarshaller.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnHMIStatus.h"
-#include "AudioStreamingStateMarshaller.h"
-#include "HMILevelMarshaller.h"
-#include "SystemContextMarshaller.h"
-
-#include "OnHMIStatusMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnHMIStatusMarshaller::checkIntegrity(OnHMIStatus& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnHMIStatusMarshaller::fromString(const std::string& s,OnHMIStatus& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnHMIStatusMarshaller::toString(const OnHMIStatus& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnHMIStatusMarshaller::checkIntegrityConst(const OnHMIStatus& s)
-{
- if(!HMILevelMarshaller::checkIntegrityConst(s.hmiLevel)) return false;
- if(!AudioStreamingStateMarshaller::checkIntegrityConst(s.audioStreamingState)) return false;
- if(!SystemContextMarshaller::checkIntegrityConst(s.systemContext)) return false;
- return true;
-}
-
-Json::Value OnHMIStatusMarshaller::toJSON(const OnHMIStatus& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["hmiLevel"]=HMILevelMarshaller::toJSON(e.hmiLevel);
-
- json["audioStreamingState"]=AudioStreamingStateMarshaller::toJSON(e.audioStreamingState);
-
- json["systemContext"]=SystemContextMarshaller::toJSON(e.systemContext);
-
- return json;
-}
-
-
-bool OnHMIStatusMarshaller::fromJSON(const Json::Value& json,OnHMIStatus& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("hmiLevel")) return false;
- {
- const Json::Value& j=json["hmiLevel"];
- if(!HMILevelMarshaller::fromJSON(j,c.hmiLevel))
- return false;
- }
- if(!json.isMember("audioStreamingState")) return false;
- {
- const Json::Value& j=json["audioStreamingState"];
- if(!AudioStreamingStateMarshaller::fromJSON(j,c.audioStreamingState))
- return false;
- }
- if(!json.isMember("systemContext")) return false;
- {
- const Json::Value& j=json["systemContext"];
- if(!SystemContextMarshaller::fromJSON(j,c.systemContext))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatusMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatusMarshaller.h
deleted file mode 100644
index b174db1c4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnHMIStatusMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONHMISTATUSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONHMISTATUSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnHMIStatus.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnHMIStatusMarshaller
- {
- static bool checkIntegrity(OnHMIStatus& e);
- static bool checkIntegrityConst(const OnHMIStatus& e);
-
- static bool fromString(const std::string& s,OnHMIStatus& e);
- static const std::string toString(const OnHMIStatus& e);
-
- static bool fromJSON(const Json::Value& s,OnHMIStatus& e);
- static Json::Value toJSON(const OnHMIStatus& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChange.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChange.cpp
deleted file mode 100644
index 4a13f9c15..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChange.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnLanguageChange.h"
-#include "OnLanguageChangeMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "LanguageMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-OnLanguageChange::~OnLanguageChange(void)
-{
-}
-
-
-OnLanguageChange::OnLanguageChange(const OnLanguageChange& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnLanguageChange::checkIntegrity(void)
-{
- return OnLanguageChangeMarshaller::checkIntegrity(*this);
-}
-
-
-OnLanguageChange::OnLanguageChange(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool OnLanguageChange::set_language(const Language& language_)
-{
- if(!LanguageMarshaller::checkIntegrityConst(language_)) return false;
- language=language_;
- return true;
-}
-
-bool OnLanguageChange::set_hmiDisplayLanguage(const Language& hmiDisplayLanguage_)
-{
- if(!LanguageMarshaller::checkIntegrityConst(hmiDisplayLanguage_)) return false;
- hmiDisplayLanguage=hmiDisplayLanguage_;
- return true;
-}
-
-
-
-
-const Language& OnLanguageChange::get_language(void) const
-{
- return language;
-}
-
-const Language& OnLanguageChange::get_hmiDisplayLanguage(void) const
-{
- return hmiDisplayLanguage;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChangeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChangeMarshaller.cpp
deleted file mode 100644
index f75b7fef7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChangeMarshaller.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnLanguageChange.h"
-#include "LanguageMarshaller.h"
-
-#include "OnLanguageChangeMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnLanguageChangeMarshaller::checkIntegrity(OnLanguageChange& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnLanguageChangeMarshaller::fromString(const std::string& s,OnLanguageChange& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnLanguageChangeMarshaller::toString(const OnLanguageChange& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnLanguageChangeMarshaller::checkIntegrityConst(const OnLanguageChange& s)
-{
- if(!LanguageMarshaller::checkIntegrityConst(s.language)) return false;
- if(!LanguageMarshaller::checkIntegrityConst(s.hmiDisplayLanguage)) return false;
- return true;
-}
-
-Json::Value OnLanguageChangeMarshaller::toJSON(const OnLanguageChange& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["language"]=LanguageMarshaller::toJSON(e.language);
-
- json["hmiDisplayLanguage"]=LanguageMarshaller::toJSON(e.hmiDisplayLanguage);
-
- return json;
-}
-
-
-bool OnLanguageChangeMarshaller::fromJSON(const Json::Value& json,OnLanguageChange& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("language")) return false;
- {
- const Json::Value& j=json["language"];
- if(!LanguageMarshaller::fromJSON(j,c.language))
- return false;
- }
- if(!json.isMember("hmiDisplayLanguage")) return false;
- {
- const Json::Value& j=json["hmiDisplayLanguage"];
- if(!LanguageMarshaller::fromJSON(j,c.hmiDisplayLanguage))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChangeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChangeMarshaller.h
deleted file mode 100644
index 5b8d17f4c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnLanguageChangeMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONLANGUAGECHANGEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONLANGUAGECHANGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnLanguageChange.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnLanguageChangeMarshaller
- {
- static bool checkIntegrity(OnLanguageChange& e);
- static bool checkIntegrityConst(const OnLanguageChange& e);
-
- static bool fromString(const std::string& s,OnLanguageChange& e);
- static const std::string toString(const OnLanguageChange& e);
-
- static bool fromJSON(const Json::Value& s,OnLanguageChange& e);
- static Json::Value toJSON(const OnLanguageChange& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChange.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChange.cpp
deleted file mode 100644
index fbe8630d1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChange.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnPermissionsChange.h"
-#include "OnPermissionsChangeMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "PermissionItemMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-OnPermissionsChange::~OnPermissionsChange(void)
-{
-}
-
-
-OnPermissionsChange::OnPermissionsChange(const OnPermissionsChange& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnPermissionsChange::checkIntegrity(void)
-{
- return OnPermissionsChangeMarshaller::checkIntegrity(*this);
-}
-
-
-OnPermissionsChange::OnPermissionsChange(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool OnPermissionsChange::set_permissionItem(const std::vector<PermissionItem>& permissionItem_)
-{
- unsigned int i=permissionItem_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!PermissionItemMarshaller::checkIntegrityConst(permissionItem_[i])) return false;
- }
- permissionItem=permissionItem_;
- return true;
-}
-
-
-
-
-const std::vector<PermissionItem>& OnPermissionsChange::get_permissionItem(void) const
-{
- return permissionItem;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChangeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChangeMarshaller.cpp
deleted file mode 100644
index a6b46460c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChangeMarshaller.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnPermissionsChange.h"
-#include "PermissionItemMarshaller.h"
-
-#include "OnPermissionsChangeMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnPermissionsChangeMarshaller::checkIntegrity(OnPermissionsChange& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnPermissionsChangeMarshaller::fromString(const std::string& s,OnPermissionsChange& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnPermissionsChangeMarshaller::toString(const OnPermissionsChange& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnPermissionsChangeMarshaller::checkIntegrityConst(const OnPermissionsChange& s)
-{
- {
- unsigned int i=s.permissionItem.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!PermissionItemMarshaller::checkIntegrityConst(s.permissionItem[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value OnPermissionsChangeMarshaller::toJSON(const OnPermissionsChange& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["permissionItem"]=Json::Value(Json::arrayValue);
- json["permissionItem"].resize(e.permissionItem.size());
- for(unsigned int i=0;i<e.permissionItem.size();i++)
- json["permissionItem"][i]=PermissionItemMarshaller::toJSON(e.permissionItem[i]);
-
- return json;
-}
-
-
-bool OnPermissionsChangeMarshaller::fromJSON(const Json::Value& json,OnPermissionsChange& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("permissionItem")) return false;
- {
- const Json::Value& j=json["permissionItem"];
- if(!j.isArray()) return false;
- c.permissionItem.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- PermissionItem t;
- if(!PermissionItemMarshaller::fromJSON(j[i],t))
- return false;
- c.permissionItem[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChangeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChangeMarshaller.h
deleted file mode 100644
index cbe0e7097..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnPermissionsChangeMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONPERMISSIONSCHANGEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONPERMISSIONSCHANGEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnPermissionsChange.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnPermissionsChangeMarshaller
- {
- static bool checkIntegrity(OnPermissionsChange& e);
- static bool checkIntegrityConst(const OnPermissionsChange& e);
-
- static bool fromString(const std::string& s,OnPermissionsChange& e);
- static const std::string toString(const OnPermissionsChange& e);
-
- static bool fromJSON(const Json::Value& s,OnPermissionsChange& e);
- static Json::Value toJSON(const OnPermissionsChange& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientState.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientState.cpp
deleted file mode 100644
index 3976b2d43..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientState.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnTBTClientState.h"
-#include "OnTBTClientStateMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "TBTStateMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-OnTBTClientState::~OnTBTClientState(void)
-{
-}
-
-
-OnTBTClientState::OnTBTClientState(const OnTBTClientState& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnTBTClientState::checkIntegrity(void)
-{
- return OnTBTClientStateMarshaller::checkIntegrity(*this);
-}
-
-
-OnTBTClientState::OnTBTClientState(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool OnTBTClientState::set_state(const TBTState& state_)
-{
- if(!TBTStateMarshaller::checkIntegrityConst(state_)) return false;
- state=state_;
- return true;
-}
-
-
-
-
-const TBTState& OnTBTClientState::get_state(void) const
-{
- return state;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientStateMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientStateMarshaller.cpp
deleted file mode 100644
index 54e22fab8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientStateMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnTBTClientState.h"
-#include "TBTStateMarshaller.h"
-
-#include "OnTBTClientStateMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnTBTClientStateMarshaller::checkIntegrity(OnTBTClientState& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnTBTClientStateMarshaller::fromString(const std::string& s,OnTBTClientState& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnTBTClientStateMarshaller::toString(const OnTBTClientState& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnTBTClientStateMarshaller::checkIntegrityConst(const OnTBTClientState& s)
-{
- if(!TBTStateMarshaller::checkIntegrityConst(s.state)) return false;
- return true;
-}
-
-Json::Value OnTBTClientStateMarshaller::toJSON(const OnTBTClientState& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["state"]=TBTStateMarshaller::toJSON(e.state);
-
- return json;
-}
-
-
-bool OnTBTClientStateMarshaller::fromJSON(const Json::Value& json,OnTBTClientState& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("state")) return false;
- {
- const Json::Value& j=json["state"];
- if(!TBTStateMarshaller::fromJSON(j,c.state))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientStateMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientStateMarshaller.h
deleted file mode 100644
index 1e641003b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnTBTClientStateMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONTBTCLIENTSTATEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONTBTCLIENTSTATEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnTBTClientState.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnTBTClientStateMarshaller
- {
- static bool checkIntegrity(OnTBTClientState& e);
- static bool checkIntegrityConst(const OnTBTClientState& e);
-
- static bool fromString(const std::string& s,OnTBTClientState& e);
- static const std::string toString(const OnTBTClientState& e);
-
- static bool fromJSON(const Json::Value& s,OnTBTClientState& e);
- static Json::Value toJSON(const OnTBTClientState& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleData.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleData.cpp
deleted file mode 100644
index 366a92360..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleData.cpp
+++ /dev/null
@@ -1,534 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnVehicleData.h"
-#include "OnVehicleDataMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "GPSDataMarshaller.h"
-#include "PRNDLMarshaller.h"
-#include "TireStatusMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-OnVehicleData& OnVehicleData::operator =(const OnVehicleData& c)
-{
- gps= c.gps ? new GPSData(c.gps[0]) : 0;
- speed= c.speed ? new float(c.speed[0]) : 0;
- rpm= c.rpm ? new unsigned int(c.rpm[0]) : 0;
- fuelLevel= c.fuelLevel ? new float(c.fuelLevel[0]) : 0;
- avgFuelEconomy= c.avgFuelEconomy ? new float(c.avgFuelEconomy[0]) : 0;
- batteryVoltage= c.batteryVoltage ? new float(c.batteryVoltage[0]) : 0;
- externalTemperature= c.externalTemperature ? new float(c.externalTemperature[0]) : 0;
- vin= c.vin ? new std::string(c.vin[0]) : 0;
- prndl= c.prndl ? new PRNDL(c.prndl[0]) : 0;
- tirePressure= c.tirePressure ? new TireStatus(c.tirePressure[0]) : 0;
- batteryPackVoltage= c.batteryPackVoltage ? new float(c.batteryPackVoltage[0]) : 0;
- batteryPackCurrent= c.batteryPackCurrent ? new float(c.batteryPackCurrent[0]) : 0;
- batteryPackTemperature= c.batteryPackTemperature ? new int(c.batteryPackTemperature[0]) : 0;
- engineTorque= c.engineTorque ? new int(c.engineTorque[0]) : 0;
- odometer= c.odometer ? new unsigned int(c.odometer[0]) : 0;
- tripOdometer= c.tripOdometer ? new unsigned int(c.tripOdometer[0]) : 0;
- genericbinary= c.genericbinary ? new std::string(c.genericbinary[0]) : 0;
-
- return *this;
-}
-
-
-OnVehicleData::~OnVehicleData(void)
-{
- if(gps)
- delete gps;
- if(speed)
- delete speed;
- if(rpm)
- delete rpm;
- if(fuelLevel)
- delete fuelLevel;
- if(avgFuelEconomy)
- delete avgFuelEconomy;
- if(batteryVoltage)
- delete batteryVoltage;
- if(externalTemperature)
- delete externalTemperature;
- if(vin)
- delete vin;
- if(prndl)
- delete prndl;
- if(tirePressure)
- delete tirePressure;
- if(batteryPackVoltage)
- delete batteryPackVoltage;
- if(batteryPackCurrent)
- delete batteryPackCurrent;
- if(batteryPackTemperature)
- delete batteryPackTemperature;
- if(engineTorque)
- delete engineTorque;
- if(odometer)
- delete odometer;
- if(tripOdometer)
- delete tripOdometer;
- if(genericbinary)
- delete genericbinary;
-}
-
-
-OnVehicleData::OnVehicleData(const OnVehicleData& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool OnVehicleData::checkIntegrity(void)
-{
- return OnVehicleDataMarshaller::checkIntegrity(*this);
-}
-
-
-OnVehicleData::OnVehicleData(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- gps(0),
- speed(0),
- rpm(0),
- fuelLevel(0),
- avgFuelEconomy(0),
- batteryVoltage(0),
- externalTemperature(0),
- vin(0),
- prndl(0),
- tirePressure(0),
- batteryPackVoltage(0),
- batteryPackCurrent(0),
- batteryPackTemperature(0),
- engineTorque(0),
- odometer(0),
- tripOdometer(0),
- genericbinary(0)
-{
-}
-
-
-
-bool OnVehicleData::set_gps(const GPSData& gps_)
-{
- if(!GPSDataMarshaller::checkIntegrityConst(gps_)) return false;
- delete gps;
- gps=0;
-
- gps=new GPSData(gps_);
- return true;
-}
-
-void OnVehicleData::reset_gps(void)
-{
- if(gps)
- delete gps;
- gps=0;
-}
-
-bool OnVehicleData::set_speed(float speed_)
-{
- if(speed_>500) return false;
- if(speed_<-100) return false;
- delete speed;
- speed=0;
-
- speed=new float(speed_);
- return true;
-}
-
-void OnVehicleData::reset_speed(void)
-{
- if(speed)
- delete speed;
- speed=0;
-}
-
-bool OnVehicleData::set_rpm(unsigned int rpm_)
-{
- if(rpm_>20000) return false;
- delete rpm;
- rpm=0;
-
- rpm=new unsigned int(rpm_);
- return true;
-}
-
-void OnVehicleData::reset_rpm(void)
-{
- if(rpm)
- delete rpm;
- rpm=0;
-}
-
-bool OnVehicleData::set_fuelLevel(float fuelLevel_)
-{
- if(fuelLevel_>100) return false;
- if(fuelLevel_<0) return false;
- delete fuelLevel;
- fuelLevel=0;
-
- fuelLevel=new float(fuelLevel_);
- return true;
-}
-
-void OnVehicleData::reset_fuelLevel(void)
-{
- if(fuelLevel)
- delete fuelLevel;
- fuelLevel=0;
-}
-
-bool OnVehicleData::set_avgFuelEconomy(float avgFuelEconomy_)
-{
- if(avgFuelEconomy_>7000) return false;
- if(avgFuelEconomy_<0) return false;
- delete avgFuelEconomy;
- avgFuelEconomy=0;
-
- avgFuelEconomy=new float(avgFuelEconomy_);
- return true;
-}
-
-void OnVehicleData::reset_avgFuelEconomy(void)
-{
- if(avgFuelEconomy)
- delete avgFuelEconomy;
- avgFuelEconomy=0;
-}
-
-bool OnVehicleData::set_batteryVoltage(float batteryVoltage_)
-{
- if(batteryVoltage_>26) return false;
- if(batteryVoltage_<0) return false;
- delete batteryVoltage;
- batteryVoltage=0;
-
- batteryVoltage=new float(batteryVoltage_);
- return true;
-}
-
-void OnVehicleData::reset_batteryVoltage(void)
-{
- if(batteryVoltage)
- delete batteryVoltage;
- batteryVoltage=0;
-}
-
-bool OnVehicleData::set_externalTemperature(float externalTemperature_)
-{
- if(externalTemperature_>100) return false;
- if(externalTemperature_<-40) return false;
- delete externalTemperature;
- externalTemperature=0;
-
- externalTemperature=new float(externalTemperature_);
- return true;
-}
-
-void OnVehicleData::reset_externalTemperature(void)
-{
- if(externalTemperature)
- delete externalTemperature;
- externalTemperature=0;
-}
-
-bool OnVehicleData::set_vin(const std::string& vin_)
-{
- if(vin_.length()>17) return false;
- delete vin;
- vin=0;
-
- vin=new std::string(vin_);
- return true;
-}
-
-void OnVehicleData::reset_vin(void)
-{
- if(vin)
- delete vin;
- vin=0;
-}
-
-bool OnVehicleData::set_prndl(const PRNDL& prndl_)
-{
- if(!PRNDLMarshaller::checkIntegrityConst(prndl_)) return false;
- delete prndl;
- prndl=0;
-
- prndl=new PRNDL(prndl_);
- return true;
-}
-
-void OnVehicleData::reset_prndl(void)
-{
- if(prndl)
- delete prndl;
- prndl=0;
-}
-
-bool OnVehicleData::set_tirePressure(const TireStatus& tirePressure_)
-{
- if(!TireStatusMarshaller::checkIntegrityConst(tirePressure_)) return false;
- delete tirePressure;
- tirePressure=0;
-
- tirePressure=new TireStatus(tirePressure_);
- return true;
-}
-
-void OnVehicleData::reset_tirePressure(void)
-{
- if(tirePressure)
- delete tirePressure;
- tirePressure=0;
-}
-
-bool OnVehicleData::set_batteryPackVoltage(float batteryPackVoltage_)
-{
- if(batteryPackVoltage_>1000) return false;
- if(batteryPackVoltage_<-1000) return false;
- delete batteryPackVoltage;
- batteryPackVoltage=0;
-
- batteryPackVoltage=new float(batteryPackVoltage_);
- return true;
-}
-
-void OnVehicleData::reset_batteryPackVoltage(void)
-{
- if(batteryPackVoltage)
- delete batteryPackVoltage;
- batteryPackVoltage=0;
-}
-
-bool OnVehicleData::set_batteryPackCurrent(float batteryPackCurrent_)
-{
- if(batteryPackCurrent_>1000) return false;
- if(batteryPackCurrent_<-1000) return false;
- delete batteryPackCurrent;
- batteryPackCurrent=0;
-
- batteryPackCurrent=new float(batteryPackCurrent_);
- return true;
-}
-
-void OnVehicleData::reset_batteryPackCurrent(void)
-{
- if(batteryPackCurrent)
- delete batteryPackCurrent;
- batteryPackCurrent=0;
-}
-
-bool OnVehicleData::set_batteryPackTemperature(int batteryPackTemperature_)
-{
- if(batteryPackTemperature_>250) return false;
- delete batteryPackTemperature;
- batteryPackTemperature=0;
-
- batteryPackTemperature=new int(batteryPackTemperature_);
- return true;
-}
-
-void OnVehicleData::reset_batteryPackTemperature(void)
-{
- if(batteryPackTemperature)
- delete batteryPackTemperature;
- batteryPackTemperature=0;
-}
-
-bool OnVehicleData::set_engineTorque(int engineTorque_)
-{
- if(engineTorque_>55000) return false;
- delete engineTorque;
- engineTorque=0;
-
- engineTorque=new int(engineTorque_);
- return true;
-}
-
-void OnVehicleData::reset_engineTorque(void)
-{
- if(engineTorque)
- delete engineTorque;
- engineTorque=0;
-}
-
-bool OnVehicleData::set_odometer(unsigned int odometer_)
-{
- if(odometer_>2000000) return false;
- delete odometer;
- odometer=0;
-
- odometer=new unsigned int(odometer_);
- return true;
-}
-
-void OnVehicleData::reset_odometer(void)
-{
- if(odometer)
- delete odometer;
- odometer=0;
-}
-
-bool OnVehicleData::set_tripOdometer(unsigned int tripOdometer_)
-{
- if(tripOdometer_>2000000) return false;
- delete tripOdometer;
- tripOdometer=0;
-
- tripOdometer=new unsigned int(tripOdometer_);
- return true;
-}
-
-void OnVehicleData::reset_tripOdometer(void)
-{
- if(tripOdometer)
- delete tripOdometer;
- tripOdometer=0;
-}
-
-bool OnVehicleData::set_genericbinary(const std::string& genericbinary_)
-{
- if(genericbinary_.length()>500) return false;
- delete genericbinary;
- genericbinary=0;
-
- genericbinary=new std::string(genericbinary_);
- return true;
-}
-
-void OnVehicleData::reset_genericbinary(void)
-{
- if(genericbinary)
- delete genericbinary;
- genericbinary=0;
-}
-
-
-
-
-const GPSData* OnVehicleData::get_gps(void) const
-{
- return gps;
-}
-
-const float* OnVehicleData::get_speed(void) const
-{
- return speed;
-}
-
-const unsigned int* OnVehicleData::get_rpm(void) const
-{
- return rpm;
-}
-
-const float* OnVehicleData::get_fuelLevel(void) const
-{
- return fuelLevel;
-}
-
-const float* OnVehicleData::get_avgFuelEconomy(void) const
-{
- return avgFuelEconomy;
-}
-
-const float* OnVehicleData::get_batteryVoltage(void) const
-{
- return batteryVoltage;
-}
-
-const float* OnVehicleData::get_externalTemperature(void) const
-{
- return externalTemperature;
-}
-
-const std::string* OnVehicleData::get_vin(void) const
-{
- return vin;
-}
-
-const PRNDL* OnVehicleData::get_prndl(void) const
-{
- return prndl;
-}
-
-const TireStatus* OnVehicleData::get_tirePressure(void) const
-{
- return tirePressure;
-}
-
-const float* OnVehicleData::get_batteryPackVoltage(void) const
-{
- return batteryPackVoltage;
-}
-
-const float* OnVehicleData::get_batteryPackCurrent(void) const
-{
- return batteryPackCurrent;
-}
-
-const int* OnVehicleData::get_batteryPackTemperature(void) const
-{
- return batteryPackTemperature;
-}
-
-const int* OnVehicleData::get_engineTorque(void) const
-{
- return engineTorque;
-}
-
-const unsigned int* OnVehicleData::get_odometer(void) const
-{
- return odometer;
-}
-
-const unsigned int* OnVehicleData::get_tripOdometer(void) const
-{
- return tripOdometer;
-}
-
-const std::string* OnVehicleData::get_genericbinary(void) const
-{
- return genericbinary;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleDataMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleDataMarshaller.cpp
deleted file mode 100644
index ab52df37e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleDataMarshaller.cpp
+++ /dev/null
@@ -1,345 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnVehicleData.h"
-#include "GPSDataMarshaller.h"
-#include "PRNDLMarshaller.h"
-#include "TireStatusMarshaller.h"
-
-#include "OnVehicleDataMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool OnVehicleDataMarshaller::checkIntegrity(OnVehicleData& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool OnVehicleDataMarshaller::fromString(const std::string& s,OnVehicleData& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string OnVehicleDataMarshaller::toString(const OnVehicleData& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool OnVehicleDataMarshaller::checkIntegrityConst(const OnVehicleData& s)
-{
- if(s.gps && !GPSDataMarshaller::checkIntegrityConst(*s.gps)) return false;
- if(s.speed && *s.speed>500) return false;
- if(s.speed && *s.speed<-100) return false;
- if(s.rpm && *s.rpm>20000) return false;
- if(s.fuelLevel && *s.fuelLevel>100) return false;
- if(s.fuelLevel && *s.fuelLevel<0) return false;
- if(s.avgFuelEconomy && *s.avgFuelEconomy>7000) return false;
- if(s.avgFuelEconomy && *s.avgFuelEconomy<0) return false;
- if(s.batteryVoltage && *s.batteryVoltage>26) return false;
- if(s.batteryVoltage && *s.batteryVoltage<0) return false;
- if(s.externalTemperature && *s.externalTemperature>100) return false;
- if(s.externalTemperature && *s.externalTemperature<-40) return false;
- if(s.vin && s.vin->length()>17) return false;
- if(s.prndl && !PRNDLMarshaller::checkIntegrityConst(*s.prndl)) return false;
- if(s.tirePressure && !TireStatusMarshaller::checkIntegrityConst(*s.tirePressure)) return false;
- if(s.batteryPackVoltage && *s.batteryPackVoltage>1000) return false;
- if(s.batteryPackVoltage && *s.batteryPackVoltage<-1000) return false;
- if(s.batteryPackCurrent && *s.batteryPackCurrent>1000) return false;
- if(s.batteryPackCurrent && *s.batteryPackCurrent<-1000) return false;
- if(s.batteryPackTemperature && *s.batteryPackTemperature>250) return false;
- if(s.batteryPackTemperature && *s.batteryPackTemperature<-50) return false;
- if(s.engineTorque && *s.engineTorque>55000) return false;
- if(s.engineTorque && *s.engineTorque<-10000) return false;
- if(s.odometer && *s.odometer>2000000) return false;
- if(s.tripOdometer && *s.tripOdometer>2000000) return false;
- if(s.genericbinary && s.genericbinary->length()>500) return false;
- return true;
-}
-
-Json::Value OnVehicleDataMarshaller::toJSON(const OnVehicleData& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- if(e.gps)
- json["gps"]=GPSDataMarshaller::toJSON(*e.gps);
-
- if(e.speed)
- json["speed"]=Json::Value(*e.speed);
-
- if(e.rpm)
- json["rpm"]=Json::Value(*e.rpm);
-
- if(e.fuelLevel)
- json["fuelLevel"]=Json::Value(*e.fuelLevel);
-
- if(e.avgFuelEconomy)
- json["avgFuelEconomy"]=Json::Value(*e.avgFuelEconomy);
-
- if(e.batteryVoltage)
- json["batteryVoltage"]=Json::Value(*e.batteryVoltage);
-
- if(e.externalTemperature)
- json["externalTemperature"]=Json::Value(*e.externalTemperature);
-
- if(e.vin)
- json["vin"]=Json::Value(*e.vin);
-
- if(e.prndl)
- json["prndl"]=PRNDLMarshaller::toJSON(*e.prndl);
-
- if(e.tirePressure)
- json["tirePressure"]=TireStatusMarshaller::toJSON(*e.tirePressure);
-
- if(e.batteryPackVoltage)
- json["batteryPackVoltage"]=Json::Value(*e.batteryPackVoltage);
-
- if(e.batteryPackCurrent)
- json["batteryPackCurrent"]=Json::Value(*e.batteryPackCurrent);
-
- if(e.batteryPackTemperature)
- json["batteryPackTemperature"]=Json::Value(*e.batteryPackTemperature);
-
- if(e.engineTorque)
- json["engineTorque"]=Json::Value(*e.engineTorque);
-
- if(e.odometer)
- json["odometer"]=Json::Value(*e.odometer);
-
- if(e.tripOdometer)
- json["tripOdometer"]=Json::Value(*e.tripOdometer);
-
- if(e.genericbinary)
- json["genericbinary"]=Json::Value(*e.genericbinary);
-
- return json;
-}
-
-
-bool OnVehicleDataMarshaller::fromJSON(const Json::Value& json,OnVehicleData& c)
-{
- if(c.gps) delete c.gps;
- c.gps=0;
-
- if(c.speed) delete c.speed;
- c.speed=0;
-
- if(c.rpm) delete c.rpm;
- c.rpm=0;
-
- if(c.fuelLevel) delete c.fuelLevel;
- c.fuelLevel=0;
-
- if(c.avgFuelEconomy) delete c.avgFuelEconomy;
- c.avgFuelEconomy=0;
-
- if(c.batteryVoltage) delete c.batteryVoltage;
- c.batteryVoltage=0;
-
- if(c.externalTemperature) delete c.externalTemperature;
- c.externalTemperature=0;
-
- if(c.vin) delete c.vin;
- c.vin=0;
-
- if(c.prndl) delete c.prndl;
- c.prndl=0;
-
- if(c.tirePressure) delete c.tirePressure;
- c.tirePressure=0;
-
- if(c.batteryPackVoltage) delete c.batteryPackVoltage;
- c.batteryPackVoltage=0;
-
- if(c.batteryPackCurrent) delete c.batteryPackCurrent;
- c.batteryPackCurrent=0;
-
- if(c.batteryPackTemperature) delete c.batteryPackTemperature;
- c.batteryPackTemperature=0;
-
- if(c.engineTorque) delete c.engineTorque;
- c.engineTorque=0;
-
- if(c.odometer) delete c.odometer;
- c.odometer=0;
-
- if(c.tripOdometer) delete c.tripOdometer;
- c.tripOdometer=0;
-
- if(c.genericbinary) delete c.genericbinary;
- c.genericbinary=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(json.isMember("gps"))
- {
- const Json::Value& j=json["gps"];
- c.gps=new GPSData();
- if(!GPSDataMarshaller::fromJSON(j,c.gps[0]))
- return false;
- }
- if(json.isMember("speed"))
- {
- const Json::Value& j=json["speed"];
- if(!j.isNumeric()) return false;
- c.speed=new float(j.asDouble());
- }
- if(json.isMember("rpm"))
- {
- const Json::Value& j=json["rpm"];
- if(!j.isInt()) return false;
- c.rpm=new unsigned int(j.asInt());
- }
- if(json.isMember("fuelLevel"))
- {
- const Json::Value& j=json["fuelLevel"];
- if(!j.isNumeric()) return false;
- c.fuelLevel=new float(j.asDouble());
- }
- if(json.isMember("avgFuelEconomy"))
- {
- const Json::Value& j=json["avgFuelEconomy"];
- if(!j.isNumeric()) return false;
- c.avgFuelEconomy=new float(j.asDouble());
- }
- if(json.isMember("batteryVoltage"))
- {
- const Json::Value& j=json["batteryVoltage"];
- if(!j.isNumeric()) return false;
- c.batteryVoltage=new float(j.asDouble());
- }
- if(json.isMember("externalTemperature"))
- {
- const Json::Value& j=json["externalTemperature"];
- if(!j.isNumeric()) return false;
- c.externalTemperature=new float(j.asDouble());
- }
- if(json.isMember("vin"))
- {
- const Json::Value& j=json["vin"];
- if(!j.isString()) return false;
- c.vin=new std::string(j.asString());
- }
- if(json.isMember("prndl"))
- {
- const Json::Value& j=json["prndl"];
- c.prndl=new PRNDL();
- if(!PRNDLMarshaller::fromJSON(j,c.prndl[0]))
- return false;
- }
- if(json.isMember("tirePressure"))
- {
- const Json::Value& j=json["tirePressure"];
- c.tirePressure=new TireStatus();
- if(!TireStatusMarshaller::fromJSON(j,c.tirePressure[0]))
- return false;
- }
- if(json.isMember("batteryPackVoltage"))
- {
- const Json::Value& j=json["batteryPackVoltage"];
- if(!j.isNumeric()) return false;
- c.batteryPackVoltage=new float(j.asDouble());
- }
- if(json.isMember("batteryPackCurrent"))
- {
- const Json::Value& j=json["batteryPackCurrent"];
- if(!j.isNumeric()) return false;
- c.batteryPackCurrent=new float(j.asDouble());
- }
- if(json.isMember("batteryPackTemperature"))
- {
- const Json::Value& j=json["batteryPackTemperature"];
- if(!j.isInt()) return false;
- c.batteryPackTemperature=new int(j.asInt());
- }
- if(json.isMember("engineTorque"))
- {
- const Json::Value& j=json["engineTorque"];
- if(!j.isInt()) return false;
- c.engineTorque=new int(j.asInt());
- }
- if(json.isMember("odometer"))
- {
- const Json::Value& j=json["odometer"];
- if(!j.isInt()) return false;
- c.odometer=new unsigned int(j.asInt());
- }
- if(json.isMember("tripOdometer"))
- {
- const Json::Value& j=json["tripOdometer"];
- if(!j.isInt()) return false;
- c.tripOdometer=new unsigned int(j.asInt());
- }
- if(json.isMember("genericbinary"))
- {
- const Json::Value& j=json["genericbinary"];
- if(!j.isString()) return false;
- c.genericbinary=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleDataMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleDataMarshaller.h
deleted file mode 100644
index 4e7f966da..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/OnVehicleDataMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_ONVEHICLEDATAMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_ONVEHICLEDATAMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/OnVehicleData.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct OnVehicleDataMarshaller
- {
- static bool checkIntegrity(OnVehicleData& e);
- static bool checkIntegrityConst(const OnVehicleData& e);
-
- static bool fromString(const std::string& s,OnVehicleData& e);
- static const std::string toString(const OnVehicleData& e);
-
- static bool fromJSON(const Json::Value& s,OnVehicleData& e);
- static Json::Value toJSON(const OnVehicleData& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.cpp
deleted file mode 100644
index 23e857b97..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/PRNDL.h"
-#include "PRNDLMarshaller.h"
-#include "PRNDLMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const PRNDL::PRNDLInternal PRNDLMarshaller::getIndex(const char* s)
-{
- if(!s)
- return PRNDL::INVALID_ENUM;
- const struct PerfectHashTable* p=PRNDL_intHash::getPointer(s,strlen(s));
- return p ? static_cast<PRNDL::PRNDLInternal>(p->idx) : PRNDL::INVALID_ENUM;
-}
-
-
-bool PRNDLMarshaller::fromJSON(const Json::Value& s,PRNDL& e)
-{
- e.mInternal=PRNDL::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=PRNDL::INVALID_ENUM);
-}
-
-
-Json::Value PRNDLMarshaller::toJSON(const PRNDL& e)
-{
- if(e.mInternal==PRNDL::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool PRNDLMarshaller::fromString(const std::string& s,PRNDL& e)
-{
- e.mInternal=PRNDL::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string PRNDLMarshaller::toString(const PRNDL& e)
-{
- Json::FastWriter writer;
- return e.mInternal==PRNDL::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable PRNDLMarshaller::mHashTable[14]=
-{
- {"PARK",0},
- {"REVERSE",1},
- {"NEUTRAL",2},
- {"LOWGEAR",3},
- {"FORWARD_DRIVE_2",4},
- {"FORWARD_DRIVE_3",5},
- {"FORWARD_DRIVE_4",6},
- {"FORWARD_DRIVE_5",7},
- {"FORWARD_DRIVE_6",8},
- {"SECOND_GEAR_HOLD",9},
- {"THIRD_GEAR_HOLD",10},
- {"FOURTH_GEAR_HOLD",11},
- {"FIFTH_GEAR_HOLD",12},
- {"SIXTH_GEAR_HOLD",13}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp
deleted file mode 100644
index c57a7e56a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp
+++ /dev/null
@@ -1,30 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name PRNDL_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-PARK,0
-REVERSE,1
-NEUTRAL,2
-LOWGEAR,3
-FORWARD_DRIVE_2,4
-FORWARD_DRIVE_3,5
-FORWARD_DRIVE_4,6
-FORWARD_DRIVE_5,7
-FORWARD_DRIVE_6,8
-SECOND_GEAR_HOLD,9
-THIRD_GEAR_HOLD,10
-FOURTH_GEAR_HOLD,11
-FIFTH_GEAR_HOLD,12
-SIXTH_GEAR_HOLD,13
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.h
deleted file mode 100644
index 46422b4d1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_PRNDLMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_PRNDLMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PRNDL.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for PRNDL
-
- class PRNDLMarshaller
- {
- public:
-
- static std::string toName(const PRNDL& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(PRNDL& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=PRNDL::INVALID_ENUM;
- }
-
- static bool checkIntegrity(PRNDL& e) { return e.mInternal!=PRNDL::INVALID_ENUM; }
- static bool checkIntegrityConst(const PRNDL& e) { return e.mInternal!=PRNDL::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,PRNDL& e);
- static const std::string toString(const PRNDL& e);
-
- static bool fromJSON(const Json::Value& s,PRNDL& e);
- static Json::Value toJSON(const PRNDL& e);
-
- static const char* getName(PRNDL::PRNDLInternal e)
- {
- return (e>=0 && e<14) ? mHashTable[e].name : NULL;
- }
-
- static const PRNDL::PRNDLInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[14];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.inc
deleted file mode 100644
index 835205540..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.inc
+++ /dev/null
@@ -1,178 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp */
-/* Computed positions: -k'1,$' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 14
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 16
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 35
-/* maximum key range = 32, duplicates = 0 */
-
-class PRNDL_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-PRNDL_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 14, 9, 4, 15, 10, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 0, 10,
- 5, 36, 36, 36, 36, 0, 0, 36, 5, 36,
- 0, 36, 0, 0, 10, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36
- };
- return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-PRNDL_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 0, 0, 7, 0, 0, 0, 0, 7, 0,
- 0, 15, 16, 7, 0, 0, 15, 16, 0, 0, 15, 15, 0, 0,
- 0, 15, 15, 0, 0, 0, 15, 15
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"PARK",0},
- {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"LOWGEAR",3},
- {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"NEUTRAL",2},
- {""}, {""},
-#line 30 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"SIXTH_GEAR_HOLD",13},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"SECOND_GEAR_HOLD",9},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"REVERSE",1},
- {""}, {""},
-#line 29 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"FIFTH_GEAR_HOLD",12},
-#line 28 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"FOURTH_GEAR_HOLD",11},
- {""}, {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"FORWARD_DRIVE_4",6},
-#line 27 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"THIRD_GEAR_HOLD",10},
- {""}, {""}, {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"FORWARD_DRIVE_3",5},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"FORWARD_DRIVE_6",8},
- {""}, {""}, {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"FORWARD_DRIVE_2",4},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PRNDLMarshaller.gp"
- {"FORWARD_DRIVE_5",7}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissions.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissions.cpp
deleted file mode 100644
index e3597d369..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissions.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ParameterPermissions.h"
-#include "ParameterPermissionsMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-ParameterPermissions::ParameterPermissions(const ParameterPermissions& c)
-{
- *this=c;
-}
-
-
-bool ParameterPermissions::checkIntegrity(void)
-{
- return ParameterPermissionsMarshaller::checkIntegrity(*this);
-}
-
-
-ParameterPermissions::ParameterPermissions(void)
-{
-}
-
-
-
-bool ParameterPermissions::set_allowed(const std::vector<std::string>& allowed_)
-{
- unsigned int i=allowed_.size();
- if(i>100 || i<0) return false;
- while(i--)
- {
- if(allowed_[i].length()>100) return false;
- }
- allowed=allowed_;
- return true;
-}
-
-bool ParameterPermissions::set_userDisallowed(const std::vector<std::string>& userDisallowed_)
-{
- unsigned int i=userDisallowed_.size();
- if(i>100 || i<0) return false;
- while(i--)
- {
- }
- userDisallowed=userDisallowed_;
- return true;
-}
-
-
-
-
-const std::vector<std::string>& ParameterPermissions::get_allowed(void) const
-{
- return allowed;
-}
-
-
-const std::vector<std::string>& ParameterPermissions::get_userDisallowed(void) const
-{
- return userDisallowed;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissionsMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissionsMarshaller.cpp
deleted file mode 100644
index f0d40f309..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissionsMarshaller.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ParameterPermissions.h"
-
-
-#include "ParameterPermissionsMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ParameterPermissionsMarshaller::checkIntegrity(ParameterPermissions& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ParameterPermissionsMarshaller::fromString(const std::string& s,ParameterPermissions& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ParameterPermissionsMarshaller::toString(const ParameterPermissions& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ParameterPermissionsMarshaller::checkIntegrityConst(const ParameterPermissions& s)
-{
- {
- unsigned int i=s.allowed.size();
- if(i>100 || i<0) return false;
- while(i--)
- {
- if(s.allowed[i].length()>100) return false;
- }
- }
- {
- unsigned int i=s.userDisallowed.size();
- if(i>100 || i<0) return false;
- while(i--)
- {
- }
- }
- return true;
-}
-
-Json::Value ParameterPermissionsMarshaller::toJSON(const ParameterPermissions& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["allowed"]=Json::Value(Json::arrayValue);
- json["allowed"].resize(e.allowed.size());
- for(unsigned int i=0;i<e.allowed.size();i++)
- json["allowed"][i]=Json::Value(e.allowed[i]);
-
- json["userDisallowed"]=Json::Value(Json::arrayValue);
- json["userDisallowed"].resize(e.userDisallowed.size());
- for(unsigned int i=0;i<e.userDisallowed.size();i++)
- json["userDisallowed"][i]=Json::Value(e.userDisallowed[i]);
-
-
- return json;
-}
-
-
-bool ParameterPermissionsMarshaller::fromJSON(const Json::Value& json,ParameterPermissions& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("allowed")) return false;
- {
- const Json::Value& j=json["allowed"];
- if(!j.isArray()) return false;
- c.allowed.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.allowed[i]=j[i].asString();
- }
- if(!json.isMember("userDisallowed")) return false;
- {
- const Json::Value& j=json["userDisallowed"];
- if(!j.isArray()) return false;
- c.userDisallowed.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.userDisallowed[i]=j[i].asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissionsMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissionsMarshaller.h
deleted file mode 100644
index 78a017cfe..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ParameterPermissionsMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_PARAMETERPERMISSIONSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_PARAMETERPERMISSIONSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ParameterPermissions.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ParameterPermissionsMarshaller
- {
- static bool checkIntegrity(ParameterPermissions& e);
- static bool checkIntegrityConst(const ParameterPermissions& e);
-
- static bool fromString(const std::string& s,ParameterPermissions& e);
- static const std::string toString(const ParameterPermissions& e);
-
- static bool fromJSON(const Json::Value& s,ParameterPermissions& e);
- static Json::Value toJSON(const ParameterPermissions& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerfectHashTable.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerfectHashTable.h
deleted file mode 100644
index e62b1404a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerfectHashTable.h
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef PERFECTHASHTABLE_INCLUDE
-#define PERFECTHASHTABLE_INCLUDE
-
-namespace NsSmartDeviceLinkRPCV2
-{
- struct PerfectHashTable
- {
- const char *name;
- unsigned int idx;
- };
-}
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_request.cpp
deleted file mode 100644
index bb53486ce..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_request.cpp
+++ /dev/null
@@ -1,208 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_request.h"
-#include "PerformAudioPassThru_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "AudioCaptureQualityMarshaller.h"
-#include "AudioTypeMarshaller.h"
-#include "SamplingRateMarshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-PerformAudioPassThru_request& PerformAudioPassThru_request::operator =(const PerformAudioPassThru_request& c)
-{
- initialPrompt= c.initialPrompt;
- audioPassThruDisplayText1= c.audioPassThruDisplayText1 ? new std::string(c.audioPassThruDisplayText1[0]) : 0;
- audioPassThruDisplayText2= c.audioPassThruDisplayText2 ? new std::string(c.audioPassThruDisplayText2[0]) : 0;
- samplingRate= c.samplingRate;
- maxDuration= c.maxDuration;
- bitsPerSample= c.bitsPerSample;
- audioType= c.audioType;
-
- return *this;
-}
-
-
-PerformAudioPassThru_request::~PerformAudioPassThru_request(void)
-{
- if(audioPassThruDisplayText1)
- delete audioPassThruDisplayText1;
- if(audioPassThruDisplayText2)
- delete audioPassThruDisplayText2;
-}
-
-
-PerformAudioPassThru_request::PerformAudioPassThru_request(const PerformAudioPassThru_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool PerformAudioPassThru_request::checkIntegrity(void)
-{
- return PerformAudioPassThru_requestMarshaller::checkIntegrity(*this);
-}
-
-
-PerformAudioPassThru_request::PerformAudioPassThru_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- audioPassThruDisplayText1(0),
- audioPassThruDisplayText2(0)
-{
-}
-
-
-
-bool PerformAudioPassThru_request::set_initialPrompt(const std::vector<TTSChunk>& initialPrompt_)
-{
- unsigned int i=initialPrompt_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(initialPrompt_[i])) return false;
- }
- initialPrompt=initialPrompt_;
- return true;
-}
-
-bool PerformAudioPassThru_request::set_audioPassThruDisplayText1(const std::string& audioPassThruDisplayText1_)
-{
- if(audioPassThruDisplayText1_.length()>500) return false;
- delete audioPassThruDisplayText1;
- audioPassThruDisplayText1=0;
-
- audioPassThruDisplayText1=new std::string(audioPassThruDisplayText1_);
- return true;
-}
-
-void PerformAudioPassThru_request::reset_audioPassThruDisplayText1(void)
-{
- if(audioPassThruDisplayText1)
- delete audioPassThruDisplayText1;
- audioPassThruDisplayText1=0;
-}
-
-bool PerformAudioPassThru_request::set_audioPassThruDisplayText2(const std::string& audioPassThruDisplayText2_)
-{
- if(audioPassThruDisplayText2_.length()>500) return false;
- delete audioPassThruDisplayText2;
- audioPassThruDisplayText2=0;
-
- audioPassThruDisplayText2=new std::string(audioPassThruDisplayText2_);
- return true;
-}
-
-void PerformAudioPassThru_request::reset_audioPassThruDisplayText2(void)
-{
- if(audioPassThruDisplayText2)
- delete audioPassThruDisplayText2;
- audioPassThruDisplayText2=0;
-}
-
-bool PerformAudioPassThru_request::set_samplingRate(const SamplingRate& samplingRate_)
-{
- if(!SamplingRateMarshaller::checkIntegrityConst(samplingRate_)) return false;
- samplingRate=samplingRate_;
- return true;
-}
-
-bool PerformAudioPassThru_request::set_maxDuration(unsigned int maxDuration_)
-{
- if(maxDuration_>1000000) return false;
- maxDuration=maxDuration_;
- return true;
-}
-
-bool PerformAudioPassThru_request::set_bitsPerSample(const AudioCaptureQuality& bitsPerSample_)
-{
- if(!AudioCaptureQualityMarshaller::checkIntegrityConst(bitsPerSample_)) return false;
- bitsPerSample=bitsPerSample_;
- return true;
-}
-
-bool PerformAudioPassThru_request::set_audioType(const AudioType& audioType_)
-{
- if(!AudioTypeMarshaller::checkIntegrityConst(audioType_)) return false;
- audioType=audioType_;
- return true;
-}
-
-
-
-
-const std::vector<TTSChunk>& PerformAudioPassThru_request::get_initialPrompt(void) const
-{
- return initialPrompt;
-}
-
-const std::string* PerformAudioPassThru_request::get_audioPassThruDisplayText1(void) const
-{
- return audioPassThruDisplayText1;
-}
-
-const std::string* PerformAudioPassThru_request::get_audioPassThruDisplayText2(void) const
-{
- return audioPassThruDisplayText2;
-}
-
-const SamplingRate& PerformAudioPassThru_request::get_samplingRate(void) const
-{
- return samplingRate;
-}
-
-unsigned int PerformAudioPassThru_request::get_maxDuration(void) const
-{
- return maxDuration;
-}
-
-const AudioCaptureQuality& PerformAudioPassThru_request::get_bitsPerSample(void) const
-{
- return bitsPerSample;
-}
-
-const AudioType& PerformAudioPassThru_request::get_audioType(void) const
-{
- return audioType;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_requestMarshaller.cpp
deleted file mode 100644
index 00a38360c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_requestMarshaller.cpp
+++ /dev/null
@@ -1,202 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_request.h"
-#include "AudioCaptureQualityMarshaller.h"
-#include "AudioTypeMarshaller.h"
-#include "SamplingRateMarshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#include "PerformAudioPassThru_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool PerformAudioPassThru_requestMarshaller::checkIntegrity(PerformAudioPassThru_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PerformAudioPassThru_requestMarshaller::fromString(const std::string& s,PerformAudioPassThru_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PerformAudioPassThru_requestMarshaller::toString(const PerformAudioPassThru_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PerformAudioPassThru_requestMarshaller::checkIntegrityConst(const PerformAudioPassThru_request& s)
-{
- {
- unsigned int i=s.initialPrompt.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.initialPrompt[i])) return false;
- }
- }
- if(s.audioPassThruDisplayText1 && s.audioPassThruDisplayText1->length()>500) return false;
- if(s.audioPassThruDisplayText2 && s.audioPassThruDisplayText2->length()>500) return false;
- if(!SamplingRateMarshaller::checkIntegrityConst(s.samplingRate)) return false;
- if(s.maxDuration>1000000) return false;
- if(!AudioCaptureQualityMarshaller::checkIntegrityConst(s.bitsPerSample)) return false;
- if(!AudioTypeMarshaller::checkIntegrityConst(s.audioType)) return false;
- return true;
-}
-
-Json::Value PerformAudioPassThru_requestMarshaller::toJSON(const PerformAudioPassThru_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["initialPrompt"]=Json::Value(Json::arrayValue);
- json["initialPrompt"].resize(e.initialPrompt.size());
- for(unsigned int i=0;i<e.initialPrompt.size();i++)
- json["initialPrompt"][i]=TTSChunkMarshaller::toJSON(e.initialPrompt[i]);
-
- if(e.audioPassThruDisplayText1)
- json["audioPassThruDisplayText1"]=Json::Value(*e.audioPassThruDisplayText1);
-
- if(e.audioPassThruDisplayText2)
- json["audioPassThruDisplayText2"]=Json::Value(*e.audioPassThruDisplayText2);
-
- json["samplingRate"]=SamplingRateMarshaller::toJSON(e.samplingRate);
-
- json["maxDuration"]=Json::Value(e.maxDuration);
-
- json["bitsPerSample"]=AudioCaptureQualityMarshaller::toJSON(e.bitsPerSample);
-
- json["audioType"]=AudioTypeMarshaller::toJSON(e.audioType);
-
- return json;
-}
-
-
-bool PerformAudioPassThru_requestMarshaller::fromJSON(const Json::Value& json,PerformAudioPassThru_request& c)
-{
- if(c.audioPassThruDisplayText1) delete c.audioPassThruDisplayText1;
- c.audioPassThruDisplayText1=0;
-
- if(c.audioPassThruDisplayText2) delete c.audioPassThruDisplayText2;
- c.audioPassThruDisplayText2=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("initialPrompt")) return false;
- {
- const Json::Value& j=json["initialPrompt"];
- if(!j.isArray()) return false;
- c.initialPrompt.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.initialPrompt[i]=t;
- }
-
- }
- if(json.isMember("audioPassThruDisplayText1"))
- {
- const Json::Value& j=json["audioPassThruDisplayText1"];
- if(!j.isString()) return false;
- c.audioPassThruDisplayText1=new std::string(j.asString());
- }
- if(json.isMember("audioPassThruDisplayText2"))
- {
- const Json::Value& j=json["audioPassThruDisplayText2"];
- if(!j.isString()) return false;
- c.audioPassThruDisplayText2=new std::string(j.asString());
- }
- if(!json.isMember("samplingRate")) return false;
- {
- const Json::Value& j=json["samplingRate"];
- if(!SamplingRateMarshaller::fromJSON(j,c.samplingRate))
- return false;
- }
- if(!json.isMember("maxDuration")) return false;
- {
- const Json::Value& j=json["maxDuration"];
- if(!j.isInt()) return false;
- c.maxDuration=j.asInt();
- }
- if(!json.isMember("bitsPerSample")) return false;
- {
- const Json::Value& j=json["bitsPerSample"];
- if(!AudioCaptureQualityMarshaller::fromJSON(j,c.bitsPerSample))
- return false;
- }
- if(!json.isMember("audioType")) return false;
- {
- const Json::Value& j=json["audioType"];
- if(!AudioTypeMarshaller::fromJSON(j,c.audioType))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_requestMarshaller.h
deleted file mode 100644
index 128fa0935..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_PERFORMAUDIOPASSTHRU_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_PERFORMAUDIOPASSTHRU_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct PerformAudioPassThru_requestMarshaller
- {
- static bool checkIntegrity(PerformAudioPassThru_request& e);
- static bool checkIntegrityConst(const PerformAudioPassThru_request& e);
-
- static bool fromString(const std::string& s,PerformAudioPassThru_request& e);
- static const std::string toString(const PerformAudioPassThru_request& e);
-
- static bool fromJSON(const Json::Value& s,PerformAudioPassThru_request& e);
- static Json::Value toJSON(const PerformAudioPassThru_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_response.cpp
deleted file mode 100644
index 6524cbbb8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_response.h"
-#include "PerformAudioPassThru_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-PerformAudioPassThru_response& PerformAudioPassThru_response::operator =(const PerformAudioPassThru_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-PerformAudioPassThru_response::~PerformAudioPassThru_response(void)
-{}
-
-PerformAudioPassThru_response::PerformAudioPassThru_response(const PerformAudioPassThru_response& c)
-{
- *this = c;
-}
-
-bool PerformAudioPassThru_response::checkIntegrity(void)
-{
- return PerformAudioPassThru_responseMarshaller::checkIntegrity(*this);
-}
-
-PerformAudioPassThru_response::PerformAudioPassThru_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_responseMarshaller.cpp
deleted file mode 100644
index 3704f19c0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_response.h"
-#include "ResultMarshaller.h"
-
-#include "PerformAudioPassThru_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool PerformAudioPassThru_responseMarshaller::checkIntegrity(PerformAudioPassThru_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PerformAudioPassThru_responseMarshaller::fromString(const std::string& s,PerformAudioPassThru_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PerformAudioPassThru_responseMarshaller::toString(const PerformAudioPassThru_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PerformAudioPassThru_responseMarshaller::checkIntegrityConst(const PerformAudioPassThru_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value PerformAudioPassThru_responseMarshaller::toJSON(const PerformAudioPassThru_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool PerformAudioPassThru_responseMarshaller::fromJSON(const Json::Value& json,PerformAudioPassThru_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_responseMarshaller.h
deleted file mode 100644
index 80d91a4f3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformAudioPassThru_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_PERFORMAUDIOPASSTHRU_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_PERFORMAUDIOPASSTHRU_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformAudioPassThru_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct PerformAudioPassThru_responseMarshaller
- {
- static bool checkIntegrity(PerformAudioPassThru_response& e);
- static bool checkIntegrityConst(const PerformAudioPassThru_response& e);
-
- static bool fromString(const std::string& s,PerformAudioPassThru_response& e);
- static const std::string toString(const PerformAudioPassThru_response& e);
-
- static bool fromJSON(const Json::Value& s,PerformAudioPassThru_response& e);
- static Json::Value toJSON(const PerformAudioPassThru_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_request.cpp
deleted file mode 100644
index e5f05927d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_request.cpp
+++ /dev/null
@@ -1,267 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_request.h"
-#include "PerformInteraction_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "InteractionModeMarshaller.h"
-#include "TTSChunkMarshaller.h"
-#include "VrHelpItemMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-PerformInteraction_request& PerformInteraction_request::operator =(const PerformInteraction_request& c)
-{
- initialText= c.initialText;
- initialPrompt= c.initialPrompt;
- interactionMode= c.interactionMode;
- interactionChoiceSetIDList= c.interactionChoiceSetIDList;
- helpPrompt= c.helpPrompt ? new std::vector<TTSChunk>(c.helpPrompt[0]) : 0;
- timeoutPrompt= c.timeoutPrompt ? new std::vector<TTSChunk>(c.timeoutPrompt[0]) : 0;
- timeout= c.timeout ? new unsigned int(c.timeout[0]) : 0;
- vrHelp= c.vrHelp ? new std::vector<VrHelpItem>(c.vrHelp[0]) : 0;
-
- return *this;
-}
-
-
-PerformInteraction_request::~PerformInteraction_request(void)
-{
- if(helpPrompt)
- delete helpPrompt;
- if(timeoutPrompt)
- delete timeoutPrompt;
- if(timeout)
- delete timeout;
- if(vrHelp)
- delete vrHelp;
-}
-
-
-PerformInteraction_request::PerformInteraction_request(const PerformInteraction_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool PerformInteraction_request::checkIntegrity(void)
-{
- return PerformInteraction_requestMarshaller::checkIntegrity(*this);
-}
-
-
-PerformInteraction_request::PerformInteraction_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- helpPrompt(0),
- timeoutPrompt(0),
- timeout(0),
- vrHelp(0)
-{
-}
-
-
-
-bool PerformInteraction_request::set_initialText(const std::string& initialText_)
-{
- if(initialText_.length()>500) return false;
- initialText=initialText_;
- return true;
-}
-
-bool PerformInteraction_request::set_initialPrompt(const std::vector<TTSChunk>& initialPrompt_)
-{
- unsigned int i=initialPrompt_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(initialPrompt_[i])) return false;
- }
- initialPrompt=initialPrompt_;
- return true;
-}
-
-bool PerformInteraction_request::set_interactionMode(const InteractionMode& interactionMode_)
-{
- if(!InteractionModeMarshaller::checkIntegrityConst(interactionMode_)) return false;
- interactionMode=interactionMode_;
- return true;
-}
-
-bool PerformInteraction_request::set_interactionChoiceSetIDList(const std::vector<unsigned int>& interactionChoiceSetIDList_)
-{
- unsigned int i=interactionChoiceSetIDList_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(interactionChoiceSetIDList_[i]>2000000000) return false;
- }
- interactionChoiceSetIDList=interactionChoiceSetIDList_;
- return true;
-}
-
-bool PerformInteraction_request::set_helpPrompt(const std::vector<TTSChunk>& helpPrompt_)
-{
- unsigned int i=helpPrompt_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(helpPrompt_[i])) return false;
- }
- delete helpPrompt;
- helpPrompt=0;
-
- helpPrompt=new std::vector<TTSChunk>(helpPrompt_);
- return true;
-}
-
-void PerformInteraction_request::reset_helpPrompt(void)
-{
- if(helpPrompt)
- delete helpPrompt;
- helpPrompt=0;
-}
-
-bool PerformInteraction_request::set_timeoutPrompt(const std::vector<TTSChunk>& timeoutPrompt_)
-{
- unsigned int i=timeoutPrompt_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(timeoutPrompt_[i])) return false;
- }
- delete timeoutPrompt;
- timeoutPrompt=0;
-
- timeoutPrompt=new std::vector<TTSChunk>(timeoutPrompt_);
- return true;
-}
-
-void PerformInteraction_request::reset_timeoutPrompt(void)
-{
- if(timeoutPrompt)
- delete timeoutPrompt;
- timeoutPrompt=0;
-}
-
-bool PerformInteraction_request::set_timeout(unsigned int timeout_)
-{
- if(timeout_>100000) return false;
- if(timeout_<5000) return false;
- delete timeout;
- timeout=0;
-
- timeout=new unsigned int(timeout_);
- return true;
-}
-
-void PerformInteraction_request::reset_timeout(void)
-{
- if(timeout)
- delete timeout;
- timeout=0;
-}
-
-bool PerformInteraction_request::set_vrHelp(const std::vector<VrHelpItem>& vrHelp_)
-{
- unsigned int i=vrHelp_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VrHelpItemMarshaller::checkIntegrityConst(vrHelp_[i])) return false;
- }
- delete vrHelp;
- vrHelp=0;
-
- vrHelp=new std::vector<VrHelpItem>(vrHelp_);
- return true;
-}
-
-void PerformInteraction_request::reset_vrHelp(void)
-{
- if(vrHelp)
- delete vrHelp;
- vrHelp=0;
-}
-
-
-
-
-const std::string& PerformInteraction_request::get_initialText(void) const
-{
- return initialText;
-}
-
-const std::vector<TTSChunk>& PerformInteraction_request::get_initialPrompt(void) const
-{
- return initialPrompt;
-}
-
-const InteractionMode& PerformInteraction_request::get_interactionMode(void) const
-{
- return interactionMode;
-}
-
-const std::vector<unsigned int>& PerformInteraction_request::get_interactionChoiceSetIDList(void) const
-{
- return interactionChoiceSetIDList;
-}
-
-const std::vector<TTSChunk>* PerformInteraction_request::get_helpPrompt(void) const
-{
- return helpPrompt;
-}
-
-const std::vector<TTSChunk>* PerformInteraction_request::get_timeoutPrompt(void) const
-{
- return timeoutPrompt;
-}
-
-const unsigned int* PerformInteraction_request::get_timeout(void) const
-{
- return timeout;
-}
-
-const std::vector<VrHelpItem>* PerformInteraction_request::get_vrHelp(void) const
-{
- return vrHelp;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_requestMarshaller.cpp
deleted file mode 100644
index 1541973c9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_requestMarshaller.cpp
+++ /dev/null
@@ -1,303 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_request.h"
-#include "InteractionModeMarshaller.h"
-#include "TTSChunkMarshaller.h"
-#include "VrHelpItemMarshaller.h"
-
-#include "PerformInteraction_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool PerformInteraction_requestMarshaller::checkIntegrity(PerformInteraction_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PerformInteraction_requestMarshaller::fromString(const std::string& s,PerformInteraction_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PerformInteraction_requestMarshaller::toString(const PerformInteraction_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PerformInteraction_requestMarshaller::checkIntegrityConst(const PerformInteraction_request& s)
-{
- if(s.initialText.length()>500) return false;
- {
- unsigned int i=s.initialPrompt.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.initialPrompt[i])) return false;
- }
- }
- if(!InteractionModeMarshaller::checkIntegrityConst(s.interactionMode)) return false;
- {
- unsigned int i=s.interactionChoiceSetIDList.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.interactionChoiceSetIDList[i]>2000000000) return false;
- }
- }
- if(s.helpPrompt)
- {
- unsigned int i=s.helpPrompt[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.helpPrompt[0][i])) return false;
- }
- }
- if(s.timeoutPrompt)
- {
- unsigned int i=s.timeoutPrompt[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.timeoutPrompt[0][i])) return false;
- }
- }
- if(s.timeout && *s.timeout>100000) return false;
- if(s.timeout && *s.timeout<5000) return false;
- if(s.vrHelp)
- {
- unsigned int i=s.vrHelp[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VrHelpItemMarshaller::checkIntegrityConst(s.vrHelp[0][i])) return false;
- }
- }
- return true;
-}
-
-Json::Value PerformInteraction_requestMarshaller::toJSON(const PerformInteraction_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["initialText"]=Json::Value(e.initialText);
-
- json["initialPrompt"]=Json::Value(Json::arrayValue);
- json["initialPrompt"].resize(e.initialPrompt.size());
- for(unsigned int i=0;i<e.initialPrompt.size();i++)
- json["initialPrompt"][i]=TTSChunkMarshaller::toJSON(e.initialPrompt[i]);
-
- json["interactionMode"]=InteractionModeMarshaller::toJSON(e.interactionMode);
-
- json["interactionChoiceSetIDList"]=Json::Value(Json::arrayValue);
- json["interactionChoiceSetIDList"].resize(e.interactionChoiceSetIDList.size());
- for(unsigned int i=0;i<e.interactionChoiceSetIDList.size();i++)
- json["interactionChoiceSetIDList"][i]=Json::Value(e.interactionChoiceSetIDList[i]);
-
- if(e.helpPrompt)
- {
- unsigned int sz=e.helpPrompt->size();
- json["helpPrompt"]=Json::Value(Json::arrayValue);
- json["helpPrompt"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["helpPrompt"][i]=TTSChunkMarshaller::toJSON(e.helpPrompt[0][i]);
- }
-
- if(e.timeoutPrompt)
- {
- unsigned int sz=e.timeoutPrompt->size();
- json["timeoutPrompt"]=Json::Value(Json::arrayValue);
- json["timeoutPrompt"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["timeoutPrompt"][i]=TTSChunkMarshaller::toJSON(e.timeoutPrompt[0][i]);
- }
-
- if(e.timeout)
- json["timeout"]=Json::Value(*e.timeout);
-
- if(e.vrHelp)
- {
- unsigned int sz=e.vrHelp->size();
- json["vrHelp"]=Json::Value(Json::arrayValue);
- json["vrHelp"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["vrHelp"][i]=VrHelpItemMarshaller::toJSON(e.vrHelp[0][i]);
- }
-
- return json;
-}
-
-
-bool PerformInteraction_requestMarshaller::fromJSON(const Json::Value& json,PerformInteraction_request& c)
-{
- if(c.helpPrompt) delete c.helpPrompt;
- c.helpPrompt=0;
-
- if(c.timeoutPrompt) delete c.timeoutPrompt;
- c.timeoutPrompt=0;
-
- if(c.timeout) delete c.timeout;
- c.timeout=0;
-
- if(c.vrHelp) delete c.vrHelp;
- c.vrHelp=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("initialText")) return false;
- {
- const Json::Value& j=json["initialText"];
- if(!j.isString()) return false;
- c.initialText=j.asString();
- }
- if(!json.isMember("initialPrompt")) return false;
- {
- const Json::Value& j=json["initialPrompt"];
- if(!j.isArray()) return false;
- c.initialPrompt.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.initialPrompt[i]=t;
- }
-
- }
- if(!json.isMember("interactionMode")) return false;
- {
- const Json::Value& j=json["interactionMode"];
- if(!InteractionModeMarshaller::fromJSON(j,c.interactionMode))
- return false;
- }
- if(!json.isMember("interactionChoiceSetIDList")) return false;
- {
- const Json::Value& j=json["interactionChoiceSetIDList"];
- if(!j.isArray()) return false;
- c.interactionChoiceSetIDList.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isInt())
- return false;
- else
- c.interactionChoiceSetIDList[i]=j[i].asInt();
- }
- if(json.isMember("helpPrompt"))
- {
- const Json::Value& j=json["helpPrompt"];
- if(!j.isArray()) return false;
- c.helpPrompt=new std::vector<TTSChunk>();
- c.helpPrompt->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.helpPrompt[0][i]=t;
- }
-
- }
- if(json.isMember("timeoutPrompt"))
- {
- const Json::Value& j=json["timeoutPrompt"];
- if(!j.isArray()) return false;
- c.timeoutPrompt=new std::vector<TTSChunk>();
- c.timeoutPrompt->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.timeoutPrompt[0][i]=t;
- }
-
- }
- if(json.isMember("timeout"))
- {
- const Json::Value& j=json["timeout"];
- if(!j.isInt()) return false;
- c.timeout=new unsigned int(j.asInt());
- }
- if(json.isMember("vrHelp"))
- {
- const Json::Value& j=json["vrHelp"];
- if(!j.isArray()) return false;
- c.vrHelp=new std::vector<VrHelpItem>();
- c.vrHelp->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- VrHelpItem t;
- if(!VrHelpItemMarshaller::fromJSON(j[i],t))
- return false;
- c.vrHelp[0][i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_requestMarshaller.h
deleted file mode 100644
index c41160c74..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_PERFORMINTERACTION_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_PERFORMINTERACTION_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct PerformInteraction_requestMarshaller
- {
- static bool checkIntegrity(PerformInteraction_request& e);
- static bool checkIntegrityConst(const PerformInteraction_request& e);
-
- static bool fromString(const std::string& s,PerformInteraction_request& e);
- static const std::string toString(const PerformInteraction_request& e);
-
- static bool fromJSON(const Json::Value& s,PerformInteraction_request& e);
- static Json::Value toJSON(const PerformInteraction_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_response.cpp
deleted file mode 100644
index 380fdb50e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_response.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_response.h"
-#include "PerformInteraction_responseMarshaller.h"
-#include "TriggerSourceMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-PerformInteraction_response& PerformInteraction_response::operator =(const PerformInteraction_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
- choiceID = c.choiceID ? new unsigned int(c.choiceID[0]) : 0;
- triggerSource = c.triggerSource ? new TriggerSource(c.triggerSource[0]) : 0;
-
- return *this;
-}
-
-
-PerformInteraction_response::~PerformInteraction_response(void)
-{
- if (choiceID)
- {
- delete choiceID;
- }
- if (triggerSource)
- {
- delete triggerSource;
- }
-}
-
-PerformInteraction_response::PerformInteraction_response(const PerformInteraction_response& c)
-{
- *this = c;
-}
-
-bool PerformInteraction_response::checkIntegrity(void)
-{
- return PerformInteraction_responseMarshaller::checkIntegrity(*this);
-}
-
-PerformInteraction_response::PerformInteraction_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
- , choiceID(0)
- , triggerSource(0)
-{
-}
-
-bool PerformInteraction_response::set_choiceID(unsigned int choiceID_)
-{
- if (choiceID_ > 2000000000)
- {
- return false;
- }
- delete choiceID;
- choiceID = 0;
-
- choiceID = new unsigned int(choiceID_);
- return true;
-}
-
-void PerformInteraction_response::reset_choiceID(void)
-{
- if (choiceID)
- {
- delete choiceID;
- }
- choiceID = 0;
-}
-
-bool PerformInteraction_response::set_triggerSource(const TriggerSource& triggerSource_)
-{
- if (!TriggerSourceMarshaller::checkIntegrityConst(triggerSource_))
- {
- return false;
- }
- delete triggerSource;
- triggerSource = 0;
-
- triggerSource = new TriggerSource(triggerSource_);
- return true;
-}
-
-void PerformInteraction_response::reset_triggerSource(void)
-{
- if (triggerSource)
- {
- delete triggerSource;
- }
- triggerSource = 0;
-}
-
-const unsigned int* PerformInteraction_response::get_choiceID(void) const
-{
- return choiceID;
-}
-
-const TriggerSource* PerformInteraction_response::get_triggerSource(void) const
-{
- return triggerSource;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_responseMarshaller.cpp
deleted file mode 100644
index 55408aceb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_responseMarshaller.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_response.h"
-#include "ResultMarshaller.h"
-#include "TriggerSourceMarshaller.h"
-
-#include "PerformInteraction_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool PerformInteraction_responseMarshaller::checkIntegrity(PerformInteraction_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PerformInteraction_responseMarshaller::fromString(const std::string& s,PerformInteraction_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PerformInteraction_responseMarshaller::toString(const PerformInteraction_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PerformInteraction_responseMarshaller::checkIntegrityConst(const PerformInteraction_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- if(s.choiceID && *s.choiceID>2000000000) return false;
- if(s.triggerSource && !TriggerSourceMarshaller::checkIntegrityConst(*s.triggerSource)) return false;
- return true;
-}
-
-Json::Value PerformInteraction_responseMarshaller::toJSON(const PerformInteraction_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- if(e.choiceID)
- json["choiceID"]=Json::Value(*e.choiceID);
-
- if(e.triggerSource)
- json["triggerSource"]=TriggerSourceMarshaller::toJSON(*e.triggerSource);
-
- return json;
-}
-
-
-bool PerformInteraction_responseMarshaller::fromJSON(const Json::Value& json,PerformInteraction_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- if(c.choiceID) delete c.choiceID;
- c.choiceID=0;
-
- if(c.triggerSource) delete c.triggerSource;
- c.triggerSource=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
- if(json.isMember("choiceID"))
- {
- const Json::Value& j=json["choiceID"];
- if(!j.isInt()) return false;
- c.choiceID=new unsigned int(j.asInt());
- }
- if(json.isMember("triggerSource"))
- {
- const Json::Value& j=json["triggerSource"];
- c.triggerSource=new TriggerSource();
- if(!TriggerSourceMarshaller::fromJSON(j,c.triggerSource[0]))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_responseMarshaller.h
deleted file mode 100644
index 9de7a9e02..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PerformInteraction_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_PERFORMINTERACTION_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_PERFORMINTERACTION_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PerformInteraction_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct PerformInteraction_responseMarshaller
- {
- static bool checkIntegrity(PerformInteraction_response& e);
- static bool checkIntegrityConst(const PerformInteraction_response& e);
-
- static bool fromString(const std::string& s,PerformInteraction_response& e);
- static const std::string toString(const PerformInteraction_response& e);
-
- static bool fromJSON(const Json::Value& s,PerformInteraction_response& e);
- static Json::Value toJSON(const PerformInteraction_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItem.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItem.cpp
deleted file mode 100644
index ec6d3ad97..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItem.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PermissionItem.h"
-#include "PermissionItemMarshaller.h"
-#include "HMIPermissionsMarshaller.h"
-#include "ParameterPermissionsMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-PermissionItem::PermissionItem(const PermissionItem& c)
-{
- *this=c;
-}
-
-
-bool PermissionItem::checkIntegrity(void)
-{
- return PermissionItemMarshaller::checkIntegrity(*this);
-}
-
-
-PermissionItem::PermissionItem(void)
-{
-}
-
-
-
-bool PermissionItem::set_hmiPermissions(const HMIPermissions& hmiPermissions_)
-{
- if(!HMIPermissionsMarshaller::checkIntegrityConst(hmiPermissions_)) return false;
- hmiPermissions=hmiPermissions_;
- return true;
-}
-
-bool PermissionItem::set_parameterPermissions(const ParameterPermissions& parameterPermissions_)
-{
- if(!ParameterPermissionsMarshaller::checkIntegrityConst(parameterPermissions_)) return false;
- parameterPermissions=parameterPermissions_;
- return true;
-}
-
-bool PermissionItem::set_rpcName(const std::string& rpcName_)
-{
- if(rpcName_.length()>100) return false;
- rpcName=rpcName_;
- return true;
-}
-
-
-
-
-const HMIPermissions& PermissionItem::get_hmiPermissions(void) const
-{
- return hmiPermissions;
-}
-
-
-const ParameterPermissions& PermissionItem::get_parameterPermissions(void) const
-{
- return parameterPermissions;
-}
-
-
-const std::string& PermissionItem::get_rpcName(void) const
-{
- return rpcName;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItemMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItemMarshaller.cpp
deleted file mode 100644
index 1e8c75fd6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItemMarshaller.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PermissionItem.h"
-#include "HMIPermissionsMarshaller.h"
-#include "ParameterPermissionsMarshaller.h"
-
-#include "PermissionItemMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool PermissionItemMarshaller::checkIntegrity(PermissionItem& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PermissionItemMarshaller::fromString(const std::string& s,PermissionItem& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PermissionItemMarshaller::toString(const PermissionItem& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PermissionItemMarshaller::checkIntegrityConst(const PermissionItem& s)
-{
- if(!HMIPermissionsMarshaller::checkIntegrityConst(s.hmiPermissions)) return false;
- if(!ParameterPermissionsMarshaller::checkIntegrityConst(s.parameterPermissions)) return false;
- if(s.rpcName.length()>100) return false;
- return true;
-}
-
-Json::Value PermissionItemMarshaller::toJSON(const PermissionItem& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["hmiPermissions"]=HMIPermissionsMarshaller::toJSON(e.hmiPermissions);
-
- json["parameterPermissions"]=ParameterPermissionsMarshaller::toJSON(e.parameterPermissions);
-
- json["rpcName"]=Json::Value(e.rpcName);
-
-
- return json;
-}
-
-
-bool PermissionItemMarshaller::fromJSON(const Json::Value& json,PermissionItem& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("hmiPermissions")) return false;
- {
- const Json::Value& j=json["hmiPermissions"];
- if(!HMIPermissionsMarshaller::fromJSON(j,c.hmiPermissions))
- return false;
- }
- if(!json.isMember("parameterPermissions")) return false;
- {
- const Json::Value& j=json["parameterPermissions"];
- if(!ParameterPermissionsMarshaller::fromJSON(j,c.parameterPermissions))
- return false;
- }
- if(!json.isMember("rpcName")) return false;
- {
- const Json::Value& j=json["rpcName"];
- if(!j.isString()) return false;
- c.rpcName=j.asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItemMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItemMarshaller.h
deleted file mode 100644
index baf9a772c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionItemMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_PERMISSIONITEMMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_PERMISSIONITEMMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PermissionItem.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct PermissionItemMarshaller
- {
- static bool checkIntegrity(PermissionItem& e);
- static bool checkIntegrityConst(const PermissionItem& e);
-
- static bool fromString(const std::string& s,PermissionItem& e);
- static const std::string toString(const PermissionItem& e);
-
- static bool fromJSON(const Json::Value& s,PermissionItem& e);
- static Json::Value toJSON(const PermissionItem& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.cpp
deleted file mode 100644
index e98b82f58..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/PermissionStatus.h"
-#include "PermissionStatusMarshaller.h"
-#include "PermissionStatusMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const PermissionStatus::PermissionStatusInternal PermissionStatusMarshaller::getIndex(const char* s)
-{
- if(!s)
- return PermissionStatus::INVALID_ENUM;
- const struct PerfectHashTable* p=PermissionStatus_intHash::getPointer(s,strlen(s));
- return p ? static_cast<PermissionStatus::PermissionStatusInternal>(p->idx) : PermissionStatus::INVALID_ENUM;
-}
-
-
-bool PermissionStatusMarshaller::fromJSON(const Json::Value& s,PermissionStatus& e)
-{
- e.mInternal=PermissionStatus::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=PermissionStatus::INVALID_ENUM);
-}
-
-
-Json::Value PermissionStatusMarshaller::toJSON(const PermissionStatus& e)
-{
- if(e.mInternal==PermissionStatus::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool PermissionStatusMarshaller::fromString(const std::string& s,PermissionStatus& e)
-{
- e.mInternal=PermissionStatus::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string PermissionStatusMarshaller::toString(const PermissionStatus& e)
-{
- Json::FastWriter writer;
- return e.mInternal==PermissionStatus::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable PermissionStatusMarshaller::mHashTable[4]=
-{
- {"ALLOWED",0},
- {"DISALLOWED",1},
- {"USER_DISALLOWED",2},
- {"USER_CONSENT_PENDING",3}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.gp
deleted file mode 100644
index 162260ec4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.gp
+++ /dev/null
@@ -1,20 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name PermissionStatus_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-ALLOWED,0
-DISALLOWED,1
-USER_DISALLOWED,2
-USER_CONSENT_PENDING,3
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.h
deleted file mode 100644
index 6ff13a367..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_PERMISSIONSTATUSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_PERMISSIONSTATUSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PermissionStatus.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for PermissionStatus
-
- class PermissionStatusMarshaller
- {
- public:
-
- static std::string toName(const PermissionStatus& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(PermissionStatus& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=PermissionStatus::INVALID_ENUM;
- }
-
- static bool checkIntegrity(PermissionStatus& e) { return e.mInternal!=PermissionStatus::INVALID_ENUM; }
- static bool checkIntegrityConst(const PermissionStatus& e) { return e.mInternal!=PermissionStatus::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,PermissionStatus& e);
- static const std::string toString(const PermissionStatus& e);
-
- static bool fromJSON(const Json::Value& s,PermissionStatus& e);
- static Json::Value toJSON(const PermissionStatus& e);
-
- static const char* getName(PermissionStatus::PermissionStatusInternal e)
- {
- return (e>=0 && e<4) ? mHashTable[e].name : NULL;
- }
-
- static const PermissionStatus::PermissionStatusInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[4];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.inc
deleted file mode 100644
index 3e9834518..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.inc
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 4
-#define MIN_WORD_LENGTH 7
-#define MAX_WORD_LENGTH 20
-#define MIN_HASH_VALUE 7
-#define MAX_HASH_VALUE 20
-/* maximum key range = 14, duplicates = 0 */
-
-class PermissionStatus_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-PermissionStatus_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-PermissionStatus_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 10, 0, 0, 0,
- 0, 15, 0, 0, 0, 0, 20
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.gp"
- {"ALLOWED",0},
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.gp"
- {"DISALLOWED",1},
- {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.gp"
- {"USER_DISALLOWED",2},
- {""}, {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PermissionStatusMarshaller.gp"
- {"USER_CONSENT_PENDING",3}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilities.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilities.cpp
deleted file mode 100644
index 5c5a32a02..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilities.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PresetBankCapabilities.h"
-#include "PresetBankCapabilitiesMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-PresetBankCapabilities::PresetBankCapabilities(const PresetBankCapabilities& c)
-{
- *this=c;
-}
-
-
-bool PresetBankCapabilities::checkIntegrity(void)
-{
- return PresetBankCapabilitiesMarshaller::checkIntegrity(*this);
-}
-
-
-PresetBankCapabilities::PresetBankCapabilities(void)
-{
-}
-
-
-
-bool PresetBankCapabilities::set_onScreenPresetsAvailable(bool onScreenPresetsAvailable_)
-{
- onScreenPresetsAvailable=onScreenPresetsAvailable_;
- return true;
-}
-
-
-
-
-bool PresetBankCapabilities::get_onScreenPresetsAvailable(void) const
-{
- return onScreenPresetsAvailable;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilitiesMarshaller.cpp
deleted file mode 100644
index a9b5efe8d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PresetBankCapabilities.h"
-
-
-#include "PresetBankCapabilitiesMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool PresetBankCapabilitiesMarshaller::checkIntegrity(PresetBankCapabilities& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PresetBankCapabilitiesMarshaller::fromString(const std::string& s,PresetBankCapabilities& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PresetBankCapabilitiesMarshaller::toString(const PresetBankCapabilities& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PresetBankCapabilitiesMarshaller::checkIntegrityConst(const PresetBankCapabilities& s)
-{
- return true;
-}
-
-Json::Value PresetBankCapabilitiesMarshaller::toJSON(const PresetBankCapabilities& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["onScreenPresetsAvailable"]=Json::Value(e.onScreenPresetsAvailable);
-
-
- return json;
-}
-
-
-bool PresetBankCapabilitiesMarshaller::fromJSON(const Json::Value& json,PresetBankCapabilities& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("onScreenPresetsAvailable")) return false;
- {
- const Json::Value& j=json["onScreenPresetsAvailable"];
- if(!j.isBool()) return false;
- c.onScreenPresetsAvailable=j.asBool();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilitiesMarshaller.h
deleted file mode 100644
index fd0c4a776..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PresetBankCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_PRESETBANKCAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_PRESETBANKCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PresetBankCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct PresetBankCapabilitiesMarshaller
- {
- static bool checkIntegrity(PresetBankCapabilities& e);
- static bool checkIntegrityConst(const PresetBankCapabilities& e);
-
- static bool fromString(const std::string& s,PresetBankCapabilities& e);
- static const std::string toString(const PresetBankCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,PresetBankCapabilities& e);
- static Json::Value toJSON(const PresetBankCapabilities& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_request.cpp
deleted file mode 100644
index 52260d301..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_request.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PutFile_request.h"
-#include "PutFile_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "FileTypeMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-PutFile_request& PutFile_request::operator =(const PutFile_request& c)
-{
- syncFileName= c.syncFileName;
- fileType= c.fileType;
- persistentFile= c.persistentFile ? new bool(c.persistentFile[0]) : 0;
- fileData= c.fileData ? new std::string(c.fileData[0]) : 0;
-
- return *this;
-}
-
-
-PutFile_request::~PutFile_request(void)
-{
- if(persistentFile)
- delete persistentFile;
- if(fileData)
- delete fileData;
-}
-
-
-PutFile_request::PutFile_request(const PutFile_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool PutFile_request::checkIntegrity(void)
-{
- return PutFile_requestMarshaller::checkIntegrity(*this);
-}
-
-
-PutFile_request::PutFile_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- persistentFile(0),
- fileData(0)
-{
-}
-
-
-
-bool PutFile_request::set_syncFileName(const std::string& syncFileName_)
-{
- if(syncFileName_.length()>500) return false;
- syncFileName=syncFileName_;
- return true;
-}
-
-bool PutFile_request::set_fileType(const FileType& fileType_)
-{
- if(!FileTypeMarshaller::checkIntegrityConst(fileType_)) return false;
- fileType=fileType_;
- return true;
-}
-
-bool PutFile_request::set_persistentFile(bool persistentFile_)
-{
- delete persistentFile;
- persistentFile=0;
-
- persistentFile=new bool(persistentFile_);
- return true;
-}
-
-void PutFile_request::reset_persistentFile(void)
-{
- if(persistentFile)
- delete persistentFile;
- persistentFile=0;
-}
-
-bool PutFile_request::set_fileData(const std::string& fileData_)
-{
- delete fileData;
- fileData=0;
-
- fileData=new std::string(fileData_);
- return true;
-}
-
-void PutFile_request::reset_fileData(void)
-{
- if(fileData)
- delete fileData;
- fileData=0;
-}
-
-
-
-
-const std::string& PutFile_request::get_syncFileName(void) const
-{
- return syncFileName;
-}
-
-const FileType& PutFile_request::get_fileType(void) const
-{
- return fileType;
-}
-
-const bool* PutFile_request::get_persistentFile(void) const
-{
- return persistentFile;
-}
-
-const std::string* PutFile_request::get_fileData(void) const
-{
- return fileData;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_requestMarshaller.cpp
deleted file mode 100644
index d05375ace..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_requestMarshaller.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PutFile_request.h"
-#include "FileTypeMarshaller.h"
-
-#include "PutFile_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool PutFile_requestMarshaller::checkIntegrity(PutFile_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PutFile_requestMarshaller::fromString(const std::string& s,PutFile_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PutFile_requestMarshaller::toString(const PutFile_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PutFile_requestMarshaller::checkIntegrityConst(const PutFile_request& s)
-{
- if(s.syncFileName.length()>500) return false;
- if(!FileTypeMarshaller::checkIntegrityConst(s.fileType)) return false;
- return true;
-}
-
-Json::Value PutFile_requestMarshaller::toJSON(const PutFile_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["syncFileName"]=Json::Value(e.syncFileName);
-
- json["fileType"]=FileTypeMarshaller::toJSON(e.fileType);
-
- if(e.persistentFile)
- json["persistentFile"]=Json::Value(*e.persistentFile);
-
- if(e.fileData)
- json["fileData"]=Json::Value(*e.fileData);
-
- return json;
-}
-
-
-bool PutFile_requestMarshaller::fromJSON(const Json::Value& json,PutFile_request& c)
-{
- if(c.persistentFile) delete c.persistentFile;
- c.persistentFile=0;
-
- if(c.fileData) delete c.fileData;
- c.fileData=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("syncFileName")) return false;
- {
- const Json::Value& j=json["syncFileName"];
- if(!j.isString()) return false;
- c.syncFileName=j.asString();
- }
- if(!json.isMember("fileType")) return false;
- {
- const Json::Value& j=json["fileType"];
- if(!FileTypeMarshaller::fromJSON(j,c.fileType))
- return false;
- }
- if(json.isMember("persistentFile"))
- {
- const Json::Value& j=json["persistentFile"];
- if(!j.isBool()) return false;
- c.persistentFile=new bool(j.asBool());
- }
- if(json.isMember("fileData"))
- {
- const Json::Value& j=json["fileData"];
- if(!j.isString()) return false;
- c.fileData=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_requestMarshaller.h
deleted file mode 100644
index 73f081579..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_PUTFILE_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_PUTFILE_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PutFile_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct PutFile_requestMarshaller
- {
- static bool checkIntegrity(PutFile_request& e);
- static bool checkIntegrityConst(const PutFile_request& e);
-
- static bool fromString(const std::string& s,PutFile_request& e);
- static const std::string toString(const PutFile_request& e);
-
- static bool fromJSON(const Json::Value& s,PutFile_request& e);
- static Json::Value toJSON(const PutFile_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_response.cpp
deleted file mode 100644
index 6d7180b77..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_response.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PutFile_response.h"
-#include "PutFile_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-PutFile_response& PutFile_response::operator =(const PutFile_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- spaceAvailable = c.spaceAvailable;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-
-PutFile_response::~PutFile_response(void)
-{}
-
-PutFile_response::PutFile_response(const PutFile_response& c)
-{
- *this = c;
-}
-
-bool PutFile_response::checkIntegrity(void)
-{
- return PutFile_responseMarshaller::checkIntegrity(*this);
-}
-
-PutFile_response::PutFile_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
-
-bool PutFile_response::set_spaceAvailable(unsigned int spaceAvailable_)
-{
- if (spaceAvailable_ > 2000000000)
- {
- return false;
- }
- spaceAvailable = spaceAvailable_;
- return true;
-}
-
-unsigned int PutFile_response::get_spaceAvailable(void) const
-{
- return spaceAvailable;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_responseMarshaller.cpp
deleted file mode 100644
index 1f6141b2f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_responseMarshaller.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PutFile_response.h"
-#include "ResultMarshaller.h"
-
-#include "PutFile_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool PutFile_responseMarshaller::checkIntegrity(PutFile_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool PutFile_responseMarshaller::fromString(const std::string& s,PutFile_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string PutFile_responseMarshaller::toString(const PutFile_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool PutFile_responseMarshaller::checkIntegrityConst(const PutFile_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.spaceAvailable>2000000000) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value PutFile_responseMarshaller::toJSON(const PutFile_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- json["spaceAvailable"]=Json::Value(e.spaceAvailable);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool PutFile_responseMarshaller::fromJSON(const Json::Value& json,PutFile_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(!json.isMember("spaceAvailable")) return false;
- {
- const Json::Value& j=json["spaceAvailable"];
- if(!j.isInt()) return false;
- c.spaceAvailable=j.asInt();
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_responseMarshaller.h
deleted file mode 100644
index 4c2d9ca87..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/PutFile_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_PUTFILE_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_PUTFILE_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/PutFile_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct PutFile_responseMarshaller
- {
- static bool checkIntegrity(PutFile_response& e);
- static bool checkIntegrityConst(const PutFile_response& e);
-
- static bool fromString(const std::string& s,PutFile_response& e);
- static const std::string toString(const PutFile_response& e);
-
- static bool fromJSON(const Json::Value& s,PutFile_response& e);
- static Json::Value toJSON(const PutFile_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_request.cpp
deleted file mode 100644
index c1db3fcfd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_request.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ReadDID_request.h"
-#include "ReadDID_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-ReadDID_request& ReadDID_request::operator =(const ReadDID_request& c)
-{
- ecuName= c.ecuName;
- didLocation= c.didLocation;
- encrypted= c.encrypted ? new bool(c.encrypted[0]) : 0;
-
- return *this;
-}
-
-
-ReadDID_request::~ReadDID_request(void)
-{
- if(encrypted)
- delete encrypted;
-}
-
-
-ReadDID_request::ReadDID_request(const ReadDID_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool ReadDID_request::checkIntegrity(void)
-{
- return ReadDID_requestMarshaller::checkIntegrity(*this);
-}
-
-
-ReadDID_request::ReadDID_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- encrypted(0)
-{
-}
-
-
-
-bool ReadDID_request::set_ecuName(unsigned int ecuName_)
-{
- if(ecuName_>65535) return false;
- ecuName=ecuName_;
- return true;
-}
-
-bool ReadDID_request::set_didLocation(const std::vector<unsigned int>& didLocation_)
-{
- unsigned int i=didLocation_.size();
- if(i>1000 || i<0) return false;
- while(i--)
- {
- if(didLocation_[i]>65535) return false;
- }
- didLocation=didLocation_;
- return true;
-}
-
-bool ReadDID_request::set_encrypted(bool encrypted_)
-{
- delete encrypted;
- encrypted=0;
-
- encrypted=new bool(encrypted_);
- return true;
-}
-
-void ReadDID_request::reset_encrypted(void)
-{
- if(encrypted)
- delete encrypted;
- encrypted=0;
-}
-
-
-
-
-unsigned int ReadDID_request::get_ecuName(void) const
-{
- return ecuName;
-}
-
-const std::vector<unsigned int>& ReadDID_request::get_didLocation(void) const
-{
- return didLocation;
-}
-
-const bool* ReadDID_request::get_encrypted(void) const
-{
- return encrypted;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_requestMarshaller.cpp
deleted file mode 100644
index 648d415f8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_requestMarshaller.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ReadDID_request.h"
-
-
-#include "ReadDID_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ReadDID_requestMarshaller::checkIntegrity(ReadDID_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ReadDID_requestMarshaller::fromString(const std::string& s,ReadDID_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ReadDID_requestMarshaller::toString(const ReadDID_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ReadDID_requestMarshaller::checkIntegrityConst(const ReadDID_request& s)
-{
- if(s.ecuName>65535) return false;
- {
- unsigned int i=s.didLocation.size();
- if(i>1000 || i<0) return false;
- while(i--)
- {
- if(s.didLocation[i]>65535) return false;
- }
- }
- return true;
-}
-
-Json::Value ReadDID_requestMarshaller::toJSON(const ReadDID_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["ecuName"]=Json::Value(e.ecuName);
-
- json["didLocation"]=Json::Value(Json::arrayValue);
- json["didLocation"].resize(e.didLocation.size());
- for(unsigned int i=0;i<e.didLocation.size();i++)
- json["didLocation"][i]=Json::Value(e.didLocation[i]);
-
- if(e.encrypted)
- json["encrypted"]=Json::Value(*e.encrypted);
-
- return json;
-}
-
-
-bool ReadDID_requestMarshaller::fromJSON(const Json::Value& json,ReadDID_request& c)
-{
- if(c.encrypted) delete c.encrypted;
- c.encrypted=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("ecuName")) return false;
- {
- const Json::Value& j=json["ecuName"];
- if(!j.isInt()) return false;
- c.ecuName=j.asInt();
- }
- if(!json.isMember("didLocation")) return false;
- {
- const Json::Value& j=json["didLocation"];
- if(!j.isArray()) return false;
- c.didLocation.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isInt())
- return false;
- else
- c.didLocation[i]=j[i].asInt();
- }
- if(json.isMember("encrypted"))
- {
- const Json::Value& j=json["encrypted"];
- if(!j.isBool()) return false;
- c.encrypted=new bool(j.asBool());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_requestMarshaller.h
deleted file mode 100644
index efa5d39a1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_READDID_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_READDID_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ReadDID_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ReadDID_requestMarshaller
- {
- static bool checkIntegrity(ReadDID_request& e);
- static bool checkIntegrityConst(const ReadDID_request& e);
-
- static bool fromString(const std::string& s,ReadDID_request& e);
- static const std::string toString(const ReadDID_request& e);
-
- static bool fromJSON(const Json::Value& s,ReadDID_request& e);
- static Json::Value toJSON(const ReadDID_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_response.cpp
deleted file mode 100644
index be08c903e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_response.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ReadDID_response.h"
-#include "ReadDID_responseMarshaller.h"
-#include "VehicleDataResultCodeMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-ReadDID_response& ReadDID_response::operator =(const ReadDID_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
- dataResult = c.dataResult ? new std::vector<VehicleDataResultCode>(c.dataResult[0]) : 0;
- data = c.data ? new std::vector<std::string>(c.data[0]) : 0;
-
- return *this;
-}
-
-ReadDID_response::~ReadDID_response(void)
-{
- if (dataResult)
- {
- delete dataResult;
- }
- if (data)
- {
- delete data;
- }
-}
-
-ReadDID_response::ReadDID_response(const ReadDID_response& c)
-{
- *this = c;
-}
-
-bool ReadDID_response::checkIntegrity(void)
-{
- return ReadDID_responseMarshaller::checkIntegrity(*this);
-}
-
-ReadDID_response::ReadDID_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
- , dataResult(0)
- , data(0)
-{
-}
-
-bool ReadDID_response::set_dataResult(const std::vector<VehicleDataResultCode>& dataResult_)
-{
- unsigned int i = dataResult_.size();
- if (i > 1000 || i < 0) // TODO(AK): unsigned int i < 0
- {
- return false;
- }
- while (i--)
- {
- if (!VehicleDataResultCodeMarshaller::checkIntegrityConst(dataResult_[i]))
- {
- return false;
- }
- }
- delete dataResult;
- dataResult = 0;
-
- dataResult = new std::vector<VehicleDataResultCode>(dataResult_);
- return true;
-}
-
-void ReadDID_response::reset_dataResult(void)
-{
- if (dataResult)
- {
- delete dataResult;
- }
- dataResult = 0;
-}
-
-bool ReadDID_response::set_data(const std::vector<std::string>& data_)
-{
- unsigned int i = data_.size();
- if (i > 1000 || i < 0) // TODO(AK): unsigned int i < 0
- {
- return false;
- }
- while (i--)
- {
- if (data_[i].length() > 5000)
- {
- return false;
- }
- }
- delete data;
- data = 0;
-
- data = new std::vector<std::string>(data_);
- return true;
-}
-
-void ReadDID_response::reset_data(void)
-{
- if (data)
- {
- delete data;
- }
- data = 0;
-}
-
-const std::vector<VehicleDataResultCode>* ReadDID_response::get_dataResult(void) const
-{
- return dataResult;
-}
-
-const std::vector<std::string>* ReadDID_response::get_data(void) const
-{
- return data;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_responseMarshaller.cpp
deleted file mode 100644
index bfadc37b7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_responseMarshaller.cpp
+++ /dev/null
@@ -1,210 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ReadDID_response.h"
-#include "ResultMarshaller.h"
-#include "VehicleDataResultCodeMarshaller.h"
-
-#include "ReadDID_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ReadDID_responseMarshaller::checkIntegrity(ReadDID_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ReadDID_responseMarshaller::fromString(const std::string& s,ReadDID_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ReadDID_responseMarshaller::toString(const ReadDID_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ReadDID_responseMarshaller::checkIntegrityConst(const ReadDID_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- if(s.dataResult)
- {
- unsigned int i=s.dataResult[0].size();
- if(i>1000 || i<0) return false;
- while(i--)
- {
- if(!VehicleDataResultCodeMarshaller::checkIntegrityConst(s.dataResult[0][i])) return false;
- }
- }
- if(s.data)
- {
- unsigned int i=s.data[0].size();
- if(i>1000 || i<0) return false;
- while(i--)
- {
- if(s.data[0][i].length()>5000) return false;
- }
- }
- return true;
-}
-
-Json::Value ReadDID_responseMarshaller::toJSON(const ReadDID_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- if(e.dataResult)
- {
- unsigned int sz=e.dataResult->size();
- json["dataResult"]=Json::Value(Json::arrayValue);
- json["dataResult"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["dataResult"][i]=VehicleDataResultCodeMarshaller::toJSON(e.dataResult[0][i]);
- }
-
- if(e.data)
- {
- unsigned int sz=e.data->size();
- json["data"]=Json::Value(Json::arrayValue);
- json["data"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["data"][i]=Json::Value(e.data[0][i]);
- }
-
- return json;
-}
-
-
-bool ReadDID_responseMarshaller::fromJSON(const Json::Value& json,ReadDID_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- if(c.dataResult) delete c.dataResult;
- c.dataResult=0;
-
- if(c.data) delete c.data;
- c.data=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
- if(json.isMember("dataResult"))
- {
- const Json::Value& j=json["dataResult"];
- if(!j.isArray()) return false;
- c.dataResult=new std::vector<VehicleDataResultCode>();
- c.dataResult->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- VehicleDataResultCode t;
- if(!VehicleDataResultCodeMarshaller::fromJSON(j[i],t))
- return false;
- c.dataResult[0][i]=t;
- }
-
- }
- if(json.isMember("data"))
- {
- const Json::Value& j=json["data"];
- if(!j.isArray()) return false;
- c.data=new std::vector<std::string>();
- c.data->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.data[0][i]=j[i].asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_responseMarshaller.h
deleted file mode 100644
index 332ea17ad..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ReadDID_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_READDID_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_READDID_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ReadDID_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ReadDID_responseMarshaller
- {
- static bool checkIntegrity(ReadDID_response& e);
- static bool checkIntegrityConst(const ReadDID_response& e);
-
- static bool fromString(const std::string& s,ReadDID_response& e);
- static const std::string toString(const ReadDID_response& e);
-
- static bool fromJSON(const Json::Value& s,ReadDID_response& e);
- static Json::Value toJSON(const ReadDID_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_request.cpp
deleted file mode 100644
index c79ab4b0f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_request.cpp
+++ /dev/null
@@ -1,282 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_request.h"
-#include "RegisterAppInterface_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "AppTypeMarshaller.h"
-#include "LanguageMarshaller.h"
-#include "SyncMsgVersionMarshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-RegisterAppInterface_request& RegisterAppInterface_request::operator =(const RegisterAppInterface_request& c)
-{
- syncMsgVersion= c.syncMsgVersion;
- appName= c.appName;
- ttsName= c.ttsName ? new std::vector<TTSChunk>(c.ttsName[0]) : 0;
- ngnMediaScreenAppName= c.ngnMediaScreenAppName ? new std::string(c.ngnMediaScreenAppName[0]) : 0;
- vrSynonyms= c.vrSynonyms ? new std::vector<std::string>(c.vrSynonyms[0]) : 0;
- isMediaApplication= c.isMediaApplication;
- languageDesired= c.languageDesired;
- hmiDisplayLanguageDesired= c.hmiDisplayLanguageDesired;
- appType= c.appType ? new std::vector<AppType>(c.appType[0]) : 0;
- appID= c.appID;
-
- return *this;
-}
-
-
-RegisterAppInterface_request::~RegisterAppInterface_request(void)
-{
- if(ttsName)
- delete ttsName;
- if(ngnMediaScreenAppName)
- delete ngnMediaScreenAppName;
- if(vrSynonyms)
- delete vrSynonyms;
- if(appType)
- delete appType;
-}
-
-
-RegisterAppInterface_request::RegisterAppInterface_request(const RegisterAppInterface_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool RegisterAppInterface_request::checkIntegrity(void)
-{
- return RegisterAppInterface_requestMarshaller::checkIntegrity(*this);
-}
-
-
-RegisterAppInterface_request::RegisterAppInterface_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- ttsName(0),
- ngnMediaScreenAppName(0),
- vrSynonyms(0),
- appType(0)
-{
-}
-
-
-
-bool RegisterAppInterface_request::set_syncMsgVersion(const SyncMsgVersion& syncMsgVersion_)
-{
- if(!SyncMsgVersionMarshaller::checkIntegrityConst(syncMsgVersion_)) return false;
- syncMsgVersion=syncMsgVersion_;
- return true;
-}
-
-bool RegisterAppInterface_request::set_appName(const std::string& appName_)
-{
- if(appName_.length()>100) return false;
- appName=appName_;
- return true;
-}
-
-bool RegisterAppInterface_request::set_ttsName(const std::vector<TTSChunk>& ttsName_)
-{
- unsigned int i=ttsName_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(ttsName_[i])) return false;
- }
- delete ttsName;
- ttsName=0;
-
- ttsName=new std::vector<TTSChunk>(ttsName_);
- return true;
-}
-
-void RegisterAppInterface_request::reset_ttsName(void)
-{
- if(ttsName)
- delete ttsName;
- ttsName=0;
-}
-
-bool RegisterAppInterface_request::set_ngnMediaScreenAppName(const std::string& ngnMediaScreenAppName_)
-{
- if(ngnMediaScreenAppName_.length()>100) return false;
- delete ngnMediaScreenAppName;
- ngnMediaScreenAppName=0;
-
- ngnMediaScreenAppName=new std::string(ngnMediaScreenAppName_);
- return true;
-}
-
-void RegisterAppInterface_request::reset_ngnMediaScreenAppName(void)
-{
- if(ngnMediaScreenAppName)
- delete ngnMediaScreenAppName;
- ngnMediaScreenAppName=0;
-}
-
-bool RegisterAppInterface_request::set_vrSynonyms(const std::vector<std::string>& vrSynonyms_)
-{
- unsigned int i=vrSynonyms_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(vrSynonyms_[i].length()>40) return false;
- }
- delete vrSynonyms;
- vrSynonyms=0;
-
- vrSynonyms=new std::vector<std::string>(vrSynonyms_);
- return true;
-}
-
-void RegisterAppInterface_request::reset_vrSynonyms(void)
-{
- if(vrSynonyms)
- delete vrSynonyms;
- vrSynonyms=0;
-}
-
-bool RegisterAppInterface_request::set_isMediaApplication(bool isMediaApplication_)
-{
- isMediaApplication=isMediaApplication_;
- return true;
-}
-
-bool RegisterAppInterface_request::set_languageDesired(const Language& languageDesired_)
-{
- if(!LanguageMarshaller::checkIntegrityConst(languageDesired_)) return false;
- languageDesired=languageDesired_;
- return true;
-}
-
-bool RegisterAppInterface_request::set_hmiDisplayLanguageDesired(const Language& hmiDisplayLanguageDesired_)
-{
- if(!LanguageMarshaller::checkIntegrityConst(hmiDisplayLanguageDesired_)) return false;
- hmiDisplayLanguageDesired=hmiDisplayLanguageDesired_;
- return true;
-}
-
-bool RegisterAppInterface_request::set_appType(const std::vector<AppType>& appType_)
-{
- unsigned int i=appType_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!AppTypeMarshaller::checkIntegrityConst(appType_[i])) return false;
- }
- delete appType;
- appType=0;
-
- appType=new std::vector<AppType>(appType_);
- return true;
-}
-
-void RegisterAppInterface_request::reset_appType(void)
-{
- if(appType)
- delete appType;
- appType=0;
-}
-
-bool RegisterAppInterface_request::set_appID(const std::string& appID_)
-{
- if(appID_.length()>100) return false;
- appID=appID_;
- return true;
-}
-
-
-
-
-const SyncMsgVersion& RegisterAppInterface_request::get_syncMsgVersion(void) const
-{
- return syncMsgVersion;
-}
-
-const std::string& RegisterAppInterface_request::get_appName(void) const
-{
- return appName;
-}
-
-const std::vector<TTSChunk>* RegisterAppInterface_request::get_ttsName(void) const
-{
- return ttsName;
-}
-
-const std::string* RegisterAppInterface_request::get_ngnMediaScreenAppName(void) const
-{
- return ngnMediaScreenAppName;
-}
-
-const std::vector<std::string>* RegisterAppInterface_request::get_vrSynonyms(void) const
-{
- return vrSynonyms;
-}
-
-bool RegisterAppInterface_request::get_isMediaApplication(void) const
-{
- return isMediaApplication;
-}
-
-const Language& RegisterAppInterface_request::get_languageDesired(void) const
-{
- return languageDesired;
-}
-
-const Language& RegisterAppInterface_request::get_hmiDisplayLanguageDesired(void) const
-{
- return hmiDisplayLanguageDesired;
-}
-
-const std::vector<AppType>* RegisterAppInterface_request::get_appType(void) const
-{
- return appType;
-}
-
-const std::string& RegisterAppInterface_request::get_appID(void) const
-{
- return appID;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_requestMarshaller.cpp
deleted file mode 100644
index bbd481ebf..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_requestMarshaller.cpp
+++ /dev/null
@@ -1,284 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_request.h"
-#include "AppTypeMarshaller.h"
-#include "LanguageMarshaller.h"
-#include "SyncMsgVersionMarshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#include "RegisterAppInterface_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool RegisterAppInterface_requestMarshaller::checkIntegrity(RegisterAppInterface_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool RegisterAppInterface_requestMarshaller::fromString(const std::string& s,RegisterAppInterface_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string RegisterAppInterface_requestMarshaller::toString(const RegisterAppInterface_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool RegisterAppInterface_requestMarshaller::checkIntegrityConst(const RegisterAppInterface_request& s)
-{
- if(!SyncMsgVersionMarshaller::checkIntegrityConst(s.syncMsgVersion)) return false;
- if(s.appName.length()>100) return false;
- if(s.ttsName)
- {
- unsigned int i=s.ttsName[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.ttsName[0][i])) return false;
- }
- }
- if(s.ngnMediaScreenAppName && s.ngnMediaScreenAppName->length()>100) return false;
- if(s.vrSynonyms)
- {
- unsigned int i=s.vrSynonyms[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(s.vrSynonyms[0][i].length()>40) return false;
- }
- }
- if(!LanguageMarshaller::checkIntegrityConst(s.languageDesired)) return false;
- if(!LanguageMarshaller::checkIntegrityConst(s.hmiDisplayLanguageDesired)) return false;
- if(s.appType)
- {
- unsigned int i=s.appType[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!AppTypeMarshaller::checkIntegrityConst(s.appType[0][i])) return false;
- }
- }
- if(s.appID.length()>100) return false;
- return true;
-}
-
-Json::Value RegisterAppInterface_requestMarshaller::toJSON(const RegisterAppInterface_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["syncMsgVersion"]=SyncMsgVersionMarshaller::toJSON(e.syncMsgVersion);
-
- json["appName"]=Json::Value(e.appName);
-
- if(e.ttsName)
- {
- unsigned int sz=e.ttsName->size();
- json["ttsName"]=Json::Value(Json::arrayValue);
- json["ttsName"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["ttsName"][i]=TTSChunkMarshaller::toJSON(e.ttsName[0][i]);
- }
-
- if(e.ngnMediaScreenAppName)
- json["ngnMediaScreenAppName"]=Json::Value(*e.ngnMediaScreenAppName);
-
- if(e.vrSynonyms)
- {
- unsigned int sz=e.vrSynonyms->size();
- json["vrSynonyms"]=Json::Value(Json::arrayValue);
- json["vrSynonyms"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["vrSynonyms"][i]=Json::Value(e.vrSynonyms[0][i]);
- }
-
- json["isMediaApplication"]=Json::Value(e.isMediaApplication);
-
- json["languageDesired"]=LanguageMarshaller::toJSON(e.languageDesired);
-
- json["hmiDisplayLanguageDesired"]=LanguageMarshaller::toJSON(e.hmiDisplayLanguageDesired);
-
- if(e.appType)
- {
- unsigned int sz=e.appType->size();
- json["appType"]=Json::Value(Json::arrayValue);
- json["appType"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["appType"][i]=AppTypeMarshaller::toJSON(e.appType[0][i]);
- }
-
- json["appID"]=Json::Value(e.appID);
-
- return json;
-}
-
-
-bool RegisterAppInterface_requestMarshaller::fromJSON(const Json::Value& json,RegisterAppInterface_request& c)
-{
- if(c.ttsName) delete c.ttsName;
- c.ttsName=0;
-
- if(c.ngnMediaScreenAppName) delete c.ngnMediaScreenAppName;
- c.ngnMediaScreenAppName=0;
-
- if(c.vrSynonyms) delete c.vrSynonyms;
- c.vrSynonyms=0;
-
- if(c.appType) delete c.appType;
- c.appType=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("syncMsgVersion")) return false;
- {
- const Json::Value& j=json["syncMsgVersion"];
- if(!SyncMsgVersionMarshaller::fromJSON(j,c.syncMsgVersion))
- return false;
- }
- if(!json.isMember("appName")) return false;
- {
- const Json::Value& j=json["appName"];
- if(!j.isString()) return false;
- c.appName=j.asString();
- }
- if(json.isMember("ttsName"))
- {
- const Json::Value& j=json["ttsName"];
- if(!j.isArray()) return false;
- c.ttsName=new std::vector<TTSChunk>();
- c.ttsName->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.ttsName[0][i]=t;
- }
-
- }
- if(json.isMember("ngnMediaScreenAppName"))
- {
- const Json::Value& j=json["ngnMediaScreenAppName"];
- if(!j.isString()) return false;
- c.ngnMediaScreenAppName=new std::string(j.asString());
- }
- if(json.isMember("vrSynonyms"))
- {
- const Json::Value& j=json["vrSynonyms"];
- if(!j.isArray()) return false;
- c.vrSynonyms=new std::vector<std::string>();
- c.vrSynonyms->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.vrSynonyms[0][i]=j[i].asString();
- }
- if(!json.isMember("isMediaApplication")) return false;
- {
- const Json::Value& j=json["isMediaApplication"];
- if(!j.isBool()) return false;
- c.isMediaApplication=j.asBool();
- }
- if(!json.isMember("languageDesired")) return false;
- {
- const Json::Value& j=json["languageDesired"];
- if(!LanguageMarshaller::fromJSON(j,c.languageDesired))
- return false;
- }
- if(!json.isMember("hmiDisplayLanguageDesired")) return false;
- {
- const Json::Value& j=json["hmiDisplayLanguageDesired"];
- if(!LanguageMarshaller::fromJSON(j,c.hmiDisplayLanguageDesired))
- return false;
- }
- if(json.isMember("appType"))
- {
- const Json::Value& j=json["appType"];
- if(!j.isArray()) return false;
- c.appType=new std::vector<AppType>();
- c.appType->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- AppType t;
- if(!AppTypeMarshaller::fromJSON(j[i],t))
- return false;
- c.appType[0][i]=t;
- }
-
- }
- if(!json.isMember("appID")) return false;
- {
- const Json::Value& j=json["appID"];
- if(!j.isString()) return false;
- c.appID=j.asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_requestMarshaller.h
deleted file mode 100644
index 7dcd66db2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_REGISTERAPPINTERFACE_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_REGISTERAPPINTERFACE_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct RegisterAppInterface_requestMarshaller
- {
- static bool checkIntegrity(RegisterAppInterface_request& e);
- static bool checkIntegrityConst(const RegisterAppInterface_request& e);
-
- static bool fromString(const std::string& s,RegisterAppInterface_request& e);
- static const std::string toString(const RegisterAppInterface_request& e);
-
- static bool fromJSON(const Json::Value& s,RegisterAppInterface_request& e);
- static Json::Value toJSON(const RegisterAppInterface_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_response.cpp
deleted file mode 100644
index ecd938a0f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_response.cpp
+++ /dev/null
@@ -1,491 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_response.h"
-#include "RegisterAppInterface_responseMarshaller.h"
-#include "ButtonCapabilitiesMarshaller.h"
-#include "DisplayCapabilitiesMarshaller.h"
-#include "HmiZoneCapabilitiesMarshaller.h"
-#include "LanguageMarshaller.h"
-#include "PresetBankCapabilitiesMarshaller.h"
-#include "SoftButtonCapabilitiesMarshaller.h"
-#include "SpeechCapabilitiesMarshaller.h"
-#include "SyncMsgVersionMarshaller.h"
-#include "VehicleTypeMarshaller.h"
-#include "VrCapabilitiesMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-RegisterAppInterface_response& RegisterAppInterface_response::operator =(const RegisterAppInterface_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
- syncMsgVersion = c.syncMsgVersion ? new SyncMsgVersion(c.syncMsgVersion[0]) : 0;
- language = c.language ? new Language(c.language[0]) : 0;
- hmiDisplayLanguage = c.hmiDisplayLanguage ? new Language(c.hmiDisplayLanguage[0]) : 0;
- displayCapabilities = c.displayCapabilities ? new DisplayCapabilities(c.displayCapabilities[0]) : 0;
- buttonCapabilities = c.buttonCapabilities ? new std::vector<ButtonCapabilities>(c.buttonCapabilities[0]) : 0;
- softButtonCapabilities = c.softButtonCapabilities ? new std::vector<SoftButtonCapabilities>(c.softButtonCapabilities[0]) : 0;
- presetBankCapabilities = c.presetBankCapabilities ? new PresetBankCapabilities(c.presetBankCapabilities[0]) : 0;
- hmiZoneCapabilities = c.hmiZoneCapabilities ? new std::vector<HmiZoneCapabilities>(c.hmiZoneCapabilities[0]) : 0;
- speechCapabilities = c.speechCapabilities ? new std::vector<SpeechCapabilities>(c.speechCapabilities[0]) : 0;
- vrCapabilities = c.vrCapabilities ? new std::vector<VrCapabilities>(c.vrCapabilities[0]) : 0;
- vehicleType = c.vehicleType ? new VehicleType(c.vehicleType[0]) : 0;
-
- return *this;
-}
-
-RegisterAppInterface_response::~RegisterAppInterface_response(void)
-{
- if (syncMsgVersion)
- {
- delete syncMsgVersion;
- }
- if (language)
- {
- delete language;
- }
- if (hmiDisplayLanguage)
- {
- delete hmiDisplayLanguage;
- }
- if (displayCapabilities)
- {
- delete displayCapabilities;
- }
- if (buttonCapabilities)
- {
- delete buttonCapabilities;
- }
- if (softButtonCapabilities)
- {
- delete softButtonCapabilities;
- }
- if (presetBankCapabilities)
- {
- delete presetBankCapabilities;
- }
- if (hmiZoneCapabilities)
- {
- delete hmiZoneCapabilities;
- }
- if (speechCapabilities)
- {
- delete speechCapabilities;
- }
- if (vrCapabilities)
- {
- delete vrCapabilities;
- }
- if (vehicleType)
- {
- delete vehicleType;
- }
-}
-
-RegisterAppInterface_response::RegisterAppInterface_response(const RegisterAppInterface_response& c)
-{
- *this = c;
-}
-
-bool RegisterAppInterface_response::checkIntegrity(void)
-{
- return RegisterAppInterface_responseMarshaller::checkIntegrity(*this);
-}
-
-RegisterAppInterface_response::RegisterAppInterface_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
- , syncMsgVersion(0)
- , language(0)
- , hmiDisplayLanguage(0)
- , displayCapabilities(0)
- , buttonCapabilities(0)
- , softButtonCapabilities(0)
- , presetBankCapabilities(0)
- , hmiZoneCapabilities(0)
- , speechCapabilities(0)
- , vrCapabilities(0)
- , vehicleType(0)
-{
-}
-
-bool RegisterAppInterface_response::set_syncMsgVersion(const SyncMsgVersion& syncMsgVersion_)
-{
- if (!SyncMsgVersionMarshaller::checkIntegrityConst(syncMsgVersion_))
- {
- return false;
- }
- delete syncMsgVersion;
- syncMsgVersion = 0;
-
- syncMsgVersion = new SyncMsgVersion(syncMsgVersion_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_syncMsgVersion(void)
-{
- if (syncMsgVersion)
- {
- delete syncMsgVersion;
- }
- syncMsgVersion = 0;
-}
-
-bool RegisterAppInterface_response::set_language(const Language& language_)
-{
- if (!LanguageMarshaller::checkIntegrityConst(language_))
- {
- return false;
- }
- delete language;
- language = 0;
-
- language = new Language(language_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_language(void)
-{
- if (language)
- {
- delete language;
- }
- language = 0;
-}
-
-bool RegisterAppInterface_response::set_hmiDisplayLanguage(const Language& hmiDisplayLanguage_)
-{
- if (!LanguageMarshaller::checkIntegrityConst(hmiDisplayLanguage_))
- {
- return false;
- }
- delete hmiDisplayLanguage;
- hmiDisplayLanguage = 0;
-
- hmiDisplayLanguage = new Language(hmiDisplayLanguage_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_hmiDisplayLanguage(void)
-{
- if (hmiDisplayLanguage)
- {
- delete hmiDisplayLanguage;
- }
- hmiDisplayLanguage = 0;
-}
-
-bool RegisterAppInterface_response::set_displayCapabilities(const DisplayCapabilities& displayCapabilities_)
-{
- if (!DisplayCapabilitiesMarshaller::checkIntegrityConst(displayCapabilities_))
- {
- return false;
- }
- delete displayCapabilities;
- displayCapabilities = 0;
-
- displayCapabilities = new DisplayCapabilities(displayCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_displayCapabilities(void)
-{
- if (displayCapabilities)
- {
- delete displayCapabilities;
- }
- displayCapabilities = 0;
-}
-
-bool RegisterAppInterface_response::set_buttonCapabilities(const std::vector<ButtonCapabilities>& buttonCapabilities_)
-{
- unsigned int i = buttonCapabilities_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
- while (i--)
- {
- if (!ButtonCapabilitiesMarshaller::checkIntegrityConst(buttonCapabilities_[i]))
- {
- return false;
- }
- }
- delete buttonCapabilities;
- buttonCapabilities = 0;
-
- buttonCapabilities = new std::vector<ButtonCapabilities>(buttonCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_buttonCapabilities(void)
-{
- if (buttonCapabilities)
- {
- delete buttonCapabilities;
- }
- buttonCapabilities = 0;
-}
-
-bool RegisterAppInterface_response::set_softButtonCapabilities(const std::vector<SoftButtonCapabilities>& softButtonCapabilities_)
-{
- unsigned int i = softButtonCapabilities_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
- while (i--)
- {
- if (!SoftButtonCapabilitiesMarshaller::checkIntegrityConst(softButtonCapabilities_[i]))
- {
- return false;
- }
- }
- delete softButtonCapabilities;
- softButtonCapabilities = 0;
-
- softButtonCapabilities = new std::vector<SoftButtonCapabilities>(softButtonCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_softButtonCapabilities(void)
-{
- if (softButtonCapabilities)
- {
- delete softButtonCapabilities;
- }
- softButtonCapabilities = 0;
-}
-
-bool RegisterAppInterface_response::set_presetBankCapabilities(const PresetBankCapabilities& presetBankCapabilities_)
-{
- if (!PresetBankCapabilitiesMarshaller::checkIntegrityConst(presetBankCapabilities_))
- {
- return false;
- }
- delete presetBankCapabilities;
- presetBankCapabilities = 0;
-
- presetBankCapabilities = new PresetBankCapabilities(presetBankCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_presetBankCapabilities(void)
-{
- if (presetBankCapabilities)
- {
- delete presetBankCapabilities;
- }
- presetBankCapabilities = 0;
-}
-
-bool RegisterAppInterface_response::set_hmiZoneCapabilities(const std::vector<HmiZoneCapabilities>& hmiZoneCapabilities_)
-{
- unsigned int i = hmiZoneCapabilities_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
- while (i--)
- {
- if (!HmiZoneCapabilitiesMarshaller::checkIntegrityConst(hmiZoneCapabilities_[i]))
- {
- return false;
- }
- }
- delete hmiZoneCapabilities;
- hmiZoneCapabilities = 0;
-
- hmiZoneCapabilities = new std::vector<HmiZoneCapabilities>(hmiZoneCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_hmiZoneCapabilities(void)
-{
- if (hmiZoneCapabilities)
- {
- delete hmiZoneCapabilities;
- }
- hmiZoneCapabilities = 0;
-}
-
-bool RegisterAppInterface_response::set_speechCapabilities(const std::vector<SpeechCapabilities>& speechCapabilities_)
-{
- unsigned int i = speechCapabilities_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
- while (i--)
- {
- if (!SpeechCapabilitiesMarshaller::checkIntegrityConst(speechCapabilities_[i]))
- {
- return false;
- }
- }
- delete speechCapabilities;
- speechCapabilities = 0;
-
- speechCapabilities = new std::vector<SpeechCapabilities>(speechCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_speechCapabilities(void)
-{
- if (speechCapabilities)
- {
- delete speechCapabilities;
- }
- speechCapabilities = 0;
-}
-
-bool RegisterAppInterface_response::set_vrCapabilities(const std::vector<VrCapabilities>& vrCapabilities_)
-{
- unsigned int i = vrCapabilities_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
- while (i--)
- {
- if (!VrCapabilitiesMarshaller::checkIntegrityConst(vrCapabilities_[i]))
- {
- return false;
- }
- }
- delete vrCapabilities;
- vrCapabilities = 0;
-
- vrCapabilities = new std::vector<VrCapabilities>(vrCapabilities_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_vrCapabilities(void)
-{
- if (vrCapabilities)
- {
- delete vrCapabilities;
- }
- vrCapabilities = 0;
-}
-
-bool RegisterAppInterface_response::set_vehicleType(const VehicleType& vehicleType_)
-{
- if (!VehicleTypeMarshaller::checkIntegrityConst(vehicleType_))
- {
- return false;
- }
- delete vehicleType;
- vehicleType = 0;
-
- vehicleType = new VehicleType(vehicleType_);
- return true;
-}
-
-void RegisterAppInterface_response::reset_vehicleType(void)
-{
- if (vehicleType)
- {
- delete vehicleType;
- }
- vehicleType = 0;
-}
-
-const SyncMsgVersion* RegisterAppInterface_response::get_syncMsgVersion(void) const
-{
- return syncMsgVersion;
-}
-
-const Language* RegisterAppInterface_response::get_language(void) const
-{
- return language;
-}
-
-const Language* RegisterAppInterface_response::get_hmiDisplayLanguage(void) const
-{
- return hmiDisplayLanguage;
-}
-
-const DisplayCapabilities* RegisterAppInterface_response::get_displayCapabilities(void) const
-{
- return displayCapabilities;
-}
-
-const std::vector<ButtonCapabilities>* RegisterAppInterface_response::get_buttonCapabilities(void) const
-{
- return buttonCapabilities;
-}
-
-const std::vector<SoftButtonCapabilities>* RegisterAppInterface_response::get_softButtonCapabilities(void) const
-{
- return softButtonCapabilities;
-}
-
-const PresetBankCapabilities* RegisterAppInterface_response::get_presetBankCapabilities(void) const
-{
- return presetBankCapabilities;
-}
-
-const std::vector<HmiZoneCapabilities>* RegisterAppInterface_response::get_hmiZoneCapabilities(void) const
-{
- return hmiZoneCapabilities;
-}
-
-const std::vector<SpeechCapabilities>* RegisterAppInterface_response::get_speechCapabilities(void) const
-{
- return speechCapabilities;
-}
-
-const std::vector<VrCapabilities>* RegisterAppInterface_response::get_vrCapabilities(void) const
-{
- return vrCapabilities;
-}
-
-const VehicleType* RegisterAppInterface_response::get_vehicleType(void) const
-{
- return vehicleType;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_responseMarshaller.cpp
deleted file mode 100644
index 1cafea7c9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_responseMarshaller.cpp
+++ /dev/null
@@ -1,414 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_response.h"
-#include "ButtonCapabilitiesMarshaller.h"
-#include "DisplayCapabilitiesMarshaller.h"
-#include "HmiZoneCapabilitiesMarshaller.h"
-#include "LanguageMarshaller.h"
-#include "PresetBankCapabilitiesMarshaller.h"
-#include "ResultMarshaller.h"
-#include "SoftButtonCapabilitiesMarshaller.h"
-#include "SpeechCapabilitiesMarshaller.h"
-#include "SyncMsgVersionMarshaller.h"
-#include "VehicleTypeMarshaller.h"
-#include "VrCapabilitiesMarshaller.h"
-
-#include "RegisterAppInterface_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool RegisterAppInterface_responseMarshaller::checkIntegrity(RegisterAppInterface_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool RegisterAppInterface_responseMarshaller::fromString(const std::string& s,RegisterAppInterface_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string RegisterAppInterface_responseMarshaller::toString(const RegisterAppInterface_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool RegisterAppInterface_responseMarshaller::checkIntegrityConst(const RegisterAppInterface_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- if(s.syncMsgVersion && !SyncMsgVersionMarshaller::checkIntegrityConst(*s.syncMsgVersion)) return false;
- if(s.language && !LanguageMarshaller::checkIntegrityConst(*s.language)) return false;
- if(s.hmiDisplayLanguage && !LanguageMarshaller::checkIntegrityConst(*s.hmiDisplayLanguage)) return false;
- if(s.displayCapabilities && !DisplayCapabilitiesMarshaller::checkIntegrityConst(*s.displayCapabilities)) return false;
- if(s.buttonCapabilities)
- {
- unsigned int i=s.buttonCapabilities[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!ButtonCapabilitiesMarshaller::checkIntegrityConst(s.buttonCapabilities[0][i])) return false;
- }
- }
- if(s.softButtonCapabilities)
- {
- unsigned int i=s.softButtonCapabilities[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!SoftButtonCapabilitiesMarshaller::checkIntegrityConst(s.softButtonCapabilities[0][i])) return false;
- }
- }
- if(s.presetBankCapabilities && !PresetBankCapabilitiesMarshaller::checkIntegrityConst(*s.presetBankCapabilities)) return false;
- if(s.hmiZoneCapabilities)
- {
- unsigned int i=s.hmiZoneCapabilities[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!HmiZoneCapabilitiesMarshaller::checkIntegrityConst(s.hmiZoneCapabilities[0][i])) return false;
- }
- }
- if(s.speechCapabilities)
- {
- unsigned int i=s.speechCapabilities[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!SpeechCapabilitiesMarshaller::checkIntegrityConst(s.speechCapabilities[0][i])) return false;
- }
- }
- if(s.vrCapabilities)
- {
- unsigned int i=s.vrCapabilities[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VrCapabilitiesMarshaller::checkIntegrityConst(s.vrCapabilities[0][i])) return false;
- }
- }
- if(s.vehicleType && !VehicleTypeMarshaller::checkIntegrityConst(*s.vehicleType)) return false;
- return true;
-}
-
-Json::Value RegisterAppInterface_responseMarshaller::toJSON(const RegisterAppInterface_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- if(e.syncMsgVersion)
- json["syncMsgVersion"]=SyncMsgVersionMarshaller::toJSON(*e.syncMsgVersion);
-
- if(e.language)
- json["language"]=LanguageMarshaller::toJSON(*e.language);
-
- if(e.hmiDisplayLanguage)
- json["hmiDisplayLanguage"]=LanguageMarshaller::toJSON(*e.hmiDisplayLanguage);
-
- if(e.displayCapabilities)
- json["displayCapabilities"]=DisplayCapabilitiesMarshaller::toJSON(*e.displayCapabilities);
-
- if(e.buttonCapabilities)
- {
- unsigned int sz=e.buttonCapabilities->size();
- json["buttonCapabilities"]=Json::Value(Json::arrayValue);
- json["buttonCapabilities"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["buttonCapabilities"][i]=ButtonCapabilitiesMarshaller::toJSON(e.buttonCapabilities[0][i]);
- }
-
- if(e.softButtonCapabilities)
- {
- unsigned int sz=e.softButtonCapabilities->size();
- json["softButtonCapabilities"]=Json::Value(Json::arrayValue);
- json["softButtonCapabilities"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["softButtonCapabilities"][i]=SoftButtonCapabilitiesMarshaller::toJSON(e.softButtonCapabilities[0][i]);
- }
-
- if(e.presetBankCapabilities)
- json["presetBankCapabilities"]=PresetBankCapabilitiesMarshaller::toJSON(*e.presetBankCapabilities);
-
- if(e.hmiZoneCapabilities)
- {
- unsigned int sz=e.hmiZoneCapabilities->size();
- json["hmiZoneCapabilities"]=Json::Value(Json::arrayValue);
- json["hmiZoneCapabilities"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["hmiZoneCapabilities"][i]=HmiZoneCapabilitiesMarshaller::toJSON(e.hmiZoneCapabilities[0][i]);
- }
-
- if(e.speechCapabilities)
- {
- unsigned int sz=e.speechCapabilities->size();
- json["speechCapabilities"]=Json::Value(Json::arrayValue);
- json["speechCapabilities"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["speechCapabilities"][i]=SpeechCapabilitiesMarshaller::toJSON(e.speechCapabilities[0][i]);
- }
-
- if(e.vrCapabilities)
- {
- unsigned int sz=e.vrCapabilities->size();
- json["vrCapabilities"]=Json::Value(Json::arrayValue);
- json["vrCapabilities"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["vrCapabilities"][i]=VrCapabilitiesMarshaller::toJSON(e.vrCapabilities[0][i]);
- }
-
- if(e.vehicleType)
- json["vehicleType"]=VehicleTypeMarshaller::toJSON(*e.vehicleType);
-
- return json;
-}
-
-
-bool RegisterAppInterface_responseMarshaller::fromJSON(const Json::Value& json,RegisterAppInterface_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- if(c.syncMsgVersion) delete c.syncMsgVersion;
- c.syncMsgVersion=0;
-
- if(c.language) delete c.language;
- c.language=0;
-
- if(c.hmiDisplayLanguage) delete c.hmiDisplayLanguage;
- c.hmiDisplayLanguage=0;
-
- if(c.displayCapabilities) delete c.displayCapabilities;
- c.displayCapabilities=0;
-
- if(c.buttonCapabilities) delete c.buttonCapabilities;
- c.buttonCapabilities=0;
-
- if(c.softButtonCapabilities) delete c.softButtonCapabilities;
- c.softButtonCapabilities=0;
-
- if(c.presetBankCapabilities) delete c.presetBankCapabilities;
- c.presetBankCapabilities=0;
-
- if(c.hmiZoneCapabilities) delete c.hmiZoneCapabilities;
- c.hmiZoneCapabilities=0;
-
- if(c.speechCapabilities) delete c.speechCapabilities;
- c.speechCapabilities=0;
-
- if(c.vrCapabilities) delete c.vrCapabilities;
- c.vrCapabilities=0;
-
- if(c.vehicleType) delete c.vehicleType;
- c.vehicleType=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
- if(json.isMember("syncMsgVersion"))
- {
- const Json::Value& j=json["syncMsgVersion"];
- c.syncMsgVersion=new SyncMsgVersion();
- if(!SyncMsgVersionMarshaller::fromJSON(j,c.syncMsgVersion[0]))
- return false;
- }
- if(json.isMember("language"))
- {
- const Json::Value& j=json["language"];
- c.language=new Language();
- if(!LanguageMarshaller::fromJSON(j,c.language[0]))
- return false;
- }
- if(json.isMember("hmiDisplayLanguage"))
- {
- const Json::Value& j=json["hmiDisplayLanguage"];
- c.hmiDisplayLanguage=new Language();
- if(!LanguageMarshaller::fromJSON(j,c.hmiDisplayLanguage[0]))
- return false;
- }
- if(json.isMember("displayCapabilities"))
- {
- const Json::Value& j=json["displayCapabilities"];
- c.displayCapabilities=new DisplayCapabilities();
- if(!DisplayCapabilitiesMarshaller::fromJSON(j,c.displayCapabilities[0]))
- return false;
- }
- if(json.isMember("buttonCapabilities"))
- {
- const Json::Value& j=json["buttonCapabilities"];
- if(!j.isArray()) return false;
- c.buttonCapabilities=new std::vector<ButtonCapabilities>();
- c.buttonCapabilities->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- ButtonCapabilities t;
- if(!ButtonCapabilitiesMarshaller::fromJSON(j[i],t))
- return false;
- c.buttonCapabilities[0][i]=t;
- }
-
- }
- if(json.isMember("softButtonCapabilities"))
- {
- const Json::Value& j=json["softButtonCapabilities"];
- if(!j.isArray()) return false;
- c.softButtonCapabilities=new std::vector<SoftButtonCapabilities>();
- c.softButtonCapabilities->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- SoftButtonCapabilities t;
- if(!SoftButtonCapabilitiesMarshaller::fromJSON(j[i],t))
- return false;
- c.softButtonCapabilities[0][i]=t;
- }
-
- }
- if(json.isMember("presetBankCapabilities"))
- {
- const Json::Value& j=json["presetBankCapabilities"];
- c.presetBankCapabilities=new PresetBankCapabilities();
- if(!PresetBankCapabilitiesMarshaller::fromJSON(j,c.presetBankCapabilities[0]))
- return false;
- }
- if(json.isMember("hmiZoneCapabilities"))
- {
- const Json::Value& j=json["hmiZoneCapabilities"];
- if(!j.isArray()) return false;
- c.hmiZoneCapabilities=new std::vector<HmiZoneCapabilities>();
- c.hmiZoneCapabilities->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- HmiZoneCapabilities t;
- if(!HmiZoneCapabilitiesMarshaller::fromJSON(j[i],t))
- return false;
- c.hmiZoneCapabilities[0][i]=t;
- }
-
- }
- if(json.isMember("speechCapabilities"))
- {
- const Json::Value& j=json["speechCapabilities"];
- if(!j.isArray()) return false;
- c.speechCapabilities=new std::vector<SpeechCapabilities>();
- c.speechCapabilities->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- SpeechCapabilities t;
- if(!SpeechCapabilitiesMarshaller::fromJSON(j[i],t))
- return false;
- c.speechCapabilities[0][i]=t;
- }
-
- }
- if(json.isMember("vrCapabilities"))
- {
- const Json::Value& j=json["vrCapabilities"];
- if(!j.isArray()) return false;
- c.vrCapabilities=new std::vector<VrCapabilities>();
- c.vrCapabilities->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- VrCapabilities t;
- if(!VrCapabilitiesMarshaller::fromJSON(j[i],t))
- return false;
- c.vrCapabilities[0][i]=t;
- }
-
- }
- if(json.isMember("vehicleType"))
- {
- const Json::Value& j=json["vehicleType"];
- c.vehicleType=new VehicleType();
- if(!VehicleTypeMarshaller::fromJSON(j,c.vehicleType[0]))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_responseMarshaller.h
deleted file mode 100644
index a50253191..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/RegisterAppInterface_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_REGISTERAPPINTERFACE_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_REGISTERAPPINTERFACE_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/RegisterAppInterface_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct RegisterAppInterface_responseMarshaller
- {
- static bool checkIntegrity(RegisterAppInterface_response& e);
- static bool checkIntegrityConst(const RegisterAppInterface_response& e);
-
- static bool fromString(const std::string& s,RegisterAppInterface_response& e);
- static const std::string toString(const RegisterAppInterface_response& e);
-
- static bool fromJSON(const Json::Value& s,RegisterAppInterface_response& e);
- static Json::Value toJSON(const RegisterAppInterface_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_request.cpp
deleted file mode 100644
index 251160cca..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_request.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_request.h"
-#include "ResetGlobalProperties_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "GlobalPropertyMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-ResetGlobalProperties_request::~ResetGlobalProperties_request(void)
-{
-}
-
-
-ResetGlobalProperties_request::ResetGlobalProperties_request(const ResetGlobalProperties_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool ResetGlobalProperties_request::checkIntegrity(void)
-{
- return ResetGlobalProperties_requestMarshaller::checkIntegrity(*this);
-}
-
-
-ResetGlobalProperties_request::ResetGlobalProperties_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool ResetGlobalProperties_request::set_properties(const std::vector<GlobalProperty>& properties_)
-{
- unsigned int i=properties_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!GlobalPropertyMarshaller::checkIntegrityConst(properties_[i])) return false;
- }
- properties=properties_;
- return true;
-}
-
-
-
-
-const std::vector<GlobalProperty>& ResetGlobalProperties_request::get_properties(void) const
-{
- return properties;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_requestMarshaller.cpp
deleted file mode 100644
index fc8a853b9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_requestMarshaller.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_request.h"
-#include "GlobalPropertyMarshaller.h"
-
-#include "ResetGlobalProperties_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ResetGlobalProperties_requestMarshaller::checkIntegrity(ResetGlobalProperties_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ResetGlobalProperties_requestMarshaller::fromString(const std::string& s,ResetGlobalProperties_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ResetGlobalProperties_requestMarshaller::toString(const ResetGlobalProperties_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ResetGlobalProperties_requestMarshaller::checkIntegrityConst(const ResetGlobalProperties_request& s)
-{
- {
- unsigned int i=s.properties.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!GlobalPropertyMarshaller::checkIntegrityConst(s.properties[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value ResetGlobalProperties_requestMarshaller::toJSON(const ResetGlobalProperties_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["properties"]=Json::Value(Json::arrayValue);
- json["properties"].resize(e.properties.size());
- for(unsigned int i=0;i<e.properties.size();i++)
- json["properties"][i]=GlobalPropertyMarshaller::toJSON(e.properties[i]);
-
- return json;
-}
-
-
-bool ResetGlobalProperties_requestMarshaller::fromJSON(const Json::Value& json,ResetGlobalProperties_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("properties")) return false;
- {
- const Json::Value& j=json["properties"];
- if(!j.isArray()) return false;
- for(unsigned int i=0; i<j.size(); i++)
- {
- GlobalProperty t;
- if(GlobalPropertyMarshaller::fromJSON(j[i],t))
- {
- c.properties.push_back(t);
- }
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_requestMarshaller.h
deleted file mode 100644
index fb08f9713..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_RESETGLOBALPROPERTIES_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_RESETGLOBALPROPERTIES_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ResetGlobalProperties_requestMarshaller
- {
- static bool checkIntegrity(ResetGlobalProperties_request& e);
- static bool checkIntegrityConst(const ResetGlobalProperties_request& e);
-
- static bool fromString(const std::string& s,ResetGlobalProperties_request& e);
- static const std::string toString(const ResetGlobalProperties_request& e);
-
- static bool fromJSON(const Json::Value& s,ResetGlobalProperties_request& e);
- static Json::Value toJSON(const ResetGlobalProperties_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_response.cpp
deleted file mode 100644
index c54df2c5b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_response.h"
-#include "ResetGlobalProperties_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-ResetGlobalProperties_response& ResetGlobalProperties_response::operator =(const ResetGlobalProperties_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-ResetGlobalProperties_response::~ResetGlobalProperties_response(void)
-{}
-
-ResetGlobalProperties_response::ResetGlobalProperties_response(const ResetGlobalProperties_response& c)
-{
- *this = c;
-}
-
-bool ResetGlobalProperties_response::checkIntegrity(void)
-{
- return ResetGlobalProperties_responseMarshaller::checkIntegrity(*this);
-}
-
-ResetGlobalProperties_response::ResetGlobalProperties_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_responseMarshaller.cpp
deleted file mode 100644
index ba19bd424..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_response.h"
-#include "ResultMarshaller.h"
-
-#include "ResetGlobalProperties_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ResetGlobalProperties_responseMarshaller::checkIntegrity(ResetGlobalProperties_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ResetGlobalProperties_responseMarshaller::fromString(const std::string& s,ResetGlobalProperties_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ResetGlobalProperties_responseMarshaller::toString(const ResetGlobalProperties_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ResetGlobalProperties_responseMarshaller::checkIntegrityConst(const ResetGlobalProperties_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value ResetGlobalProperties_responseMarshaller::toJSON(const ResetGlobalProperties_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool ResetGlobalProperties_responseMarshaller::fromJSON(const Json::Value& json,ResetGlobalProperties_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_responseMarshaller.h
deleted file mode 100644
index 0f639fabb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResetGlobalProperties_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_RESETGLOBALPROPERTIES_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_RESETGLOBALPROPERTIES_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ResetGlobalProperties_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ResetGlobalProperties_responseMarshaller
- {
- static bool checkIntegrity(ResetGlobalProperties_response& e);
- static bool checkIntegrityConst(const ResetGlobalProperties_response& e);
-
- static bool fromString(const std::string& s,ResetGlobalProperties_response& e);
- static const std::string toString(const ResetGlobalProperties_response& e);
-
- static bool fromJSON(const Json::Value& s,ResetGlobalProperties_response& e);
- static Json::Value toJSON(const ResetGlobalProperties_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Result.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Result.cpp
deleted file mode 100644
index ae46b617c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Result.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Result.h"
-#include "ResetGlobalProperties_responseMarshaller.h"
-
-// TODO(AK): remove this after new code generation
-#include "../include/JSONHandler/SDLRPCObjects/V1/Result.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 1;
-}
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-Result::Result() : mInternal(INVALID_ENUM)
-{}
-
-Result::Result(ResultInternal e) : mInternal(e)
-{}
-
-Result::Result(const Result& result)
-{
- mInternal = result.mInternal;
-}
-
-Result::ResultInternal Result::get(void) const
-{
- return mInternal;
-}
-void Result::set(ResultInternal e)
-{
- mInternal = e;
-}
-
-// TODO(AK): remove this after new code generation
-Result::operator NsSmartDeviceLinkRPC::Result()
-{
- return NsSmartDeviceLinkRPC::Result(
- static_cast<NsSmartDeviceLinkRPC::Result::ResultInternal>(mInternal));
-}
-
-// TODO(AK): remove this after new code generation
-Result& Result::operator= (const Result& result)
-{
- mInternal = result.mInternal;
- return *this;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.cpp
deleted file mode 100644
index cd7d6d1db..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/Result.h"
-#include "ResultMarshaller.h"
-#include "ResultMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const Result::ResultInternal ResultMarshaller::getIndex(const char* s)
-{
- if(!s)
- return Result::INVALID_ENUM;
- const struct PerfectHashTable* p=Result_intHash::getPointer(s,strlen(s));
- return p ? static_cast<Result::ResultInternal>(p->idx) : Result::INVALID_ENUM;
-}
-
-
-bool ResultMarshaller::fromJSON(const Json::Value& s,Result& e)
-{
- e.mInternal=Result::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=Result::INVALID_ENUM);
-}
-
-
-Json::Value ResultMarshaller::toJSON(const Result& e)
-{
- if(e.mInternal==Result::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool ResultMarshaller::fromString(const std::string& s,Result& e)
-{
- e.mInternal=Result::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string ResultMarshaller::toString(const Result& e)
-{
- Json::FastWriter writer;
- return e.mInternal==Result::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable ResultMarshaller::mHashTable[30]=
-{
- {"SUCCESS",0},
- {"INVALID_DATA",1},
- {"UNSUPPORTED_REQUEST",2},
- {"OUT_OF_MEMORY",3},
- {"TOO_MANY_PENDING_REQUESTS",4},
- {"INVALID_ID",5},
- {"DUPLICATE_NAME",6},
- {"TOO_MANY_APPLICATIONS",7},
- {"APPLICATION_REGISTERED_ALREADY",8},
- {"UNSUPPORTED_VERSION",9},
- {"WRONG_LANGUAGE",10},
- {"APPLICATION_NOT_REGISTERED",11},
- {"IN_USE",12},
- {"SUBSCRIBED_ALREADY",13},
- {"REJECTED",14},
- {"ABORTED",15},
- {"IGNORED",16},
- {"UNSUPPORTED_BUTTON",17},
- {"FILE_NOT_FOUND",18},
- {"GENERIC_ERROR",19},
- {"VEHICLE_DATA_NOT_ALLOWED",20},
- {"VEHICLE_DATA_NOT_AVAILABLE",21},
- {"DISALLOWED",22},
- {"USER_DISALLOWED",23},
- {"TIMED_OUT",24},
- {"CANCEL_ROUTE",25},
- {"CLOSED",26},
- {"ENCRYPTED",27},
- {"WARNINGS",28},
- {"RETRY", 29}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp
deleted file mode 100644
index 16fa2d935..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp
+++ /dev/null
@@ -1,46 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name Result_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-SUCCESS,0
-INVALID_DATA,1
-UNSUPPORTED_REQUEST,2
-OUT_OF_MEMORY,3
-TOO_MANY_PENDING_REQUESTS,4
-INVALID_ID,5
-DUPLICATE_NAME,6
-TOO_MANY_APPLICATIONS,7
-APPLICATION_REGISTERED_ALREADY,8
-UNSUPPORTED_VERSION,9
-WRONG_LANGUAGE,10
-APPLICATION_NOT_REGISTERED,11
-IN_USE,12
-SUBSCRIBED_ALREADY,13
-REJECTED,14
-ABORTED,15
-IGNORED,16
-UNSUPPORTED_BUTTON,17
-FILE_NOT_FOUND,18
-GENERIC_ERROR,19
-VEHICLE_DATA_NOT_ALLOWED,20
-VEHICLE_DATA_NOT_AVAILABLE,21
-DISALLOWED,22
-USER_DISALLOWED,23
-TIMED_OUT,24
-CANCEL_ROUTE,25
-CLOSED,26
-ENCRYPTED,27
-WARNINGS,28
-RETRY,29
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.h
deleted file mode 100644
index 0e9212f80..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_RESULTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_RESULTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Result.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for Result
-
- class ResultMarshaller
- {
- public:
-
- static std::string toName(const Result& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(Result& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=Result::INVALID_ENUM;
- }
-
- static bool checkIntegrity(Result& e) { return e.mInternal!=Result::INVALID_ENUM; }
- static bool checkIntegrityConst(const Result& e) { return e.mInternal!=Result::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,Result& e);
- static const std::string toString(const Result& e);
-
- static bool fromJSON(const Json::Value& s,Result& e);
- static Json::Value toJSON(const Result& e);
-
- static const char* getName(Result::ResultInternal e)
- {
- return (e>=0 && e<30) ? mHashTable[e].name : NULL;
- }
-
- static const Result::ResultInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[30];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.inc
deleted file mode 100644
index 310215d55..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.inc
+++ /dev/null
@@ -1,234 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp */
-/* Computed positions: -k'1,13' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 30
-#define MIN_WORD_LENGTH 5
-#define MAX_WORD_LENGTH 30
-#define MIN_HASH_VALUE 5
-#define MAX_HASH_VALUE 50
-/* maximum key range = 46, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class Result_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-Result_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 20, 5, 10, 5, 23,
- 0, 20, 51, 0, 51, 51, 0, 15, 0, 5,
- 51, 51, 0, 10, 0, 0, 5, 5, 51, 0,
- 51, 51, 51, 51, 51, 0, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[12]];
- /*FALLTHROUGH*/
- case 12:
- case 11:
- case 10:
- case 9:
- case 8:
- case 7:
- case 6:
- case 5:
- case 4:
- case 3:
- case 2:
- case 1:
- hval += asso_values[(unsigned char)str[0]];
- break;
- }
- return hval;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-Result_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 5, 6, 7, 8, 9, 10, 0, 12, 8,
- 14, 10, 6, 7, 13, 19, 15, 21, 12, 18, 19, 0, 0, 7,
- 18, 24, 25, 26, 9, 13, 14, 0, 0, 0, 0, 14, 0, 0,
- 0, 0, 0, 0, 26, 0, 0, 0, 30
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""},
-#line 46 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"RETRY",29},
-#line 29 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"IN_USE",12},
-#line 33 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"IGNORED",16},
-#line 31 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"REJECTED",14},
-#line 41 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"TIMED_OUT",24},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"INVALID_ID",5},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"INVALID_DATA",1},
-#line 45 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"WARNINGS",28},
-#line 35 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"FILE_NOT_FOUND",18},
-#line 39 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"DISALLOWED",22},
-#line 43 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"CLOSED",26},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"SUCCESS",0},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"OUT_OF_MEMORY",3},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"UNSUPPORTED_REQUEST",2},
-#line 40 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"USER_DISALLOWED",23},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"TOO_MANY_APPLICATIONS",7},
-#line 42 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"CANCEL_ROUTE",25},
-#line 34 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"UNSUPPORTED_BUTTON",17},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"UNSUPPORTED_VERSION",9},
- {""}, {""},
-#line 32 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"ABORTED",15},
-#line 30 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"SUBSCRIBED_ALREADY",13},
-#line 37 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"VEHICLE_DATA_NOT_ALLOWED",20},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"TOO_MANY_PENDING_REQUESTS",4},
-#line 38 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"VEHICLE_DATA_NOT_AVAILABLE",21},
-#line 44 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"ENCRYPTED",27},
-#line 36 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"GENERIC_ERROR",19},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"DUPLICATE_NAME",6},
- {""}, {""}, {""}, {""},
-#line 27 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"WRONG_LANGUAGE",10},
- {""}, {""}, {""}, {""}, {""}, {""},
-#line 28 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"APPLICATION_NOT_REGISTERED",11},
- {""}, {""}, {""},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ResultMarshaller.gp"
- {"APPLICATION_REGISTERED_ALREADY",8}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.cpp
deleted file mode 100644
index 008bce3e5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/SamplingRate.h"
-#include "SamplingRateMarshaller.h"
-#include "SamplingRateMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const SamplingRate::SamplingRateInternal SamplingRateMarshaller::getIndex(const char* s)
-{
- if(!s)
- return SamplingRate::INVALID_ENUM;
- const struct PerfectHashTable* p=SamplingRate_intHash::getPointer(s,strlen(s));
- return p ? static_cast<SamplingRate::SamplingRateInternal>(p->idx) : SamplingRate::INVALID_ENUM;
-}
-
-
-bool SamplingRateMarshaller::fromJSON(const Json::Value& s,SamplingRate& e)
-{
- e.mInternal=SamplingRate::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=SamplingRate::INVALID_ENUM);
-}
-
-
-Json::Value SamplingRateMarshaller::toJSON(const SamplingRate& e)
-{
- if(e.mInternal==SamplingRate::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool SamplingRateMarshaller::fromString(const std::string& s,SamplingRate& e)
-{
- e.mInternal=SamplingRate::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string SamplingRateMarshaller::toString(const SamplingRate& e)
-{
- Json::FastWriter writer;
- return e.mInternal==SamplingRate::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable SamplingRateMarshaller::mHashTable[4]=
-{
- {"8KHZ",0},
- {"16KHZ",1},
- {"22KHZ",2},
- {"44KHZ",3}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.gp
deleted file mode 100644
index 19c4cafd4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.gp
+++ /dev/null
@@ -1,20 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name SamplingRate_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-8KHZ,0
-16KHZ,1
-22KHZ,2
-44KHZ,3
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.h
deleted file mode 100644
index 36c17fcbc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SAMPLINGRATEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SAMPLINGRATEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SamplingRate.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for SamplingRate
-
- class SamplingRateMarshaller
- {
- public:
-
- static std::string toName(const SamplingRate& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(SamplingRate& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=SamplingRate::INVALID_ENUM;
- }
-
- static bool checkIntegrity(SamplingRate& e) { return e.mInternal!=SamplingRate::INVALID_ENUM; }
- static bool checkIntegrityConst(const SamplingRate& e) { return e.mInternal!=SamplingRate::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,SamplingRate& e);
- static const std::string toString(const SamplingRate& e);
-
- static bool fromJSON(const Json::Value& s,SamplingRate& e);
- static Json::Value toJSON(const SamplingRate& e);
-
- static const char* getName(SamplingRate::SamplingRateInternal e)
- {
- return (e>=0 && e<4) ? mHashTable[e].name : NULL;
- }
-
- static const SamplingRate::SamplingRateInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[4];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.inc
deleted file mode 100644
index 8a74146ac..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.inc
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.gp */
-/* Computed positions: -k'1' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 4
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 5
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 10
-/* maximum key range = 7, duplicates = 0 */
-
-class SamplingRate_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-SamplingRate_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 2,
- 5, 11, 0, 11, 11, 11, 0, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11
- };
- return len + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-SamplingRate_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 5, 0, 5, 0, 0, 5
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.gp"
- {"8KHZ",0},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.gp"
- {"44KHZ",3},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.gp"
- {"16KHZ",1},
- {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SamplingRateMarshaller.gp"
- {"22KHZ",2}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_request.cpp
deleted file mode 100644
index f0a5290e4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_request.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_request.h"
-#include "ScrollableMessage_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "SoftButtonMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-ScrollableMessage_request& ScrollableMessage_request::operator =(const ScrollableMessage_request& c)
-{
- scrollableMessageBody= c.scrollableMessageBody;
- timeout= c.timeout ? new unsigned int(c.timeout[0]) : 0;
- softButtons= c.softButtons ? new std::vector<SoftButton>(c.softButtons[0]) : 0;
-
- return *this;
-}
-
-
-ScrollableMessage_request::~ScrollableMessage_request(void)
-{
- if(timeout)
- delete timeout;
- if(softButtons)
- delete softButtons;
-}
-
-
-ScrollableMessage_request::ScrollableMessage_request(const ScrollableMessage_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool ScrollableMessage_request::checkIntegrity(void)
-{
- return ScrollableMessage_requestMarshaller::checkIntegrity(*this);
-}
-
-
-ScrollableMessage_request::ScrollableMessage_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- timeout(0),
- softButtons(0)
-{
-}
-
-
-
-bool ScrollableMessage_request::set_scrollableMessageBody(const std::string& scrollableMessageBody_)
-{
- if(scrollableMessageBody_.length()>500) return false;
- scrollableMessageBody=scrollableMessageBody_;
- return true;
-}
-
-bool ScrollableMessage_request::set_timeout(unsigned int timeout_)
-{
- if(timeout_>65535) return false;
- delete timeout;
- timeout=0;
-
- timeout=new unsigned int(timeout_);
- return true;
-}
-
-void ScrollableMessage_request::reset_timeout(void)
-{
- if(timeout)
- delete timeout;
- timeout=0;
-}
-
-bool ScrollableMessage_request::set_softButtons(const std::vector<SoftButton>& softButtons_)
-{
- unsigned int i=softButtons_.size();
- if(i>8 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(softButtons_[i])) return false;
- }
- delete softButtons;
- softButtons=0;
-
- softButtons=new std::vector<SoftButton>(softButtons_);
- return true;
-}
-
-void ScrollableMessage_request::reset_softButtons(void)
-{
- if(softButtons)
- delete softButtons;
- softButtons=0;
-}
-
-
-
-
-const std::string& ScrollableMessage_request::get_scrollableMessageBody(void) const
-{
- return scrollableMessageBody;
-}
-
-const unsigned int* ScrollableMessage_request::get_timeout(void) const
-{
- return timeout;
-}
-
-const std::vector<SoftButton>* ScrollableMessage_request::get_softButtons(void) const
-{
- return softButtons;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_requestMarshaller.cpp
deleted file mode 100644
index b5e923742..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_requestMarshaller.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_request.h"
-#include "SoftButtonMarshaller.h"
-
-#include "ScrollableMessage_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ScrollableMessage_requestMarshaller::checkIntegrity(ScrollableMessage_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ScrollableMessage_requestMarshaller::fromString(const std::string& s,ScrollableMessage_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ScrollableMessage_requestMarshaller::toString(const ScrollableMessage_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ScrollableMessage_requestMarshaller::checkIntegrityConst(const ScrollableMessage_request& s)
-{
- if(s.scrollableMessageBody.length()>500) return false;
- if(s.timeout && *s.timeout>65535) return false;
- if(s.softButtons)
- {
- unsigned int i=s.softButtons[0].size();
- if(i>8 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(s.softButtons[0][i])) return false;
- }
- }
- return true;
-}
-
-Json::Value ScrollableMessage_requestMarshaller::toJSON(const ScrollableMessage_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["scrollableMessageBody"]=Json::Value(e.scrollableMessageBody);
-
- if(e.timeout)
- json["timeout"]=Json::Value(*e.timeout);
-
- if(e.softButtons)
- {
- unsigned int sz=e.softButtons->size();
- json["softButtons"]=Json::Value(Json::arrayValue);
- json["softButtons"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["softButtons"][i]=SoftButtonMarshaller::toJSON(e.softButtons[0][i]);
- }
-
- return json;
-}
-
-
-bool ScrollableMessage_requestMarshaller::fromJSON(const Json::Value& json,ScrollableMessage_request& c)
-{
- if(c.timeout) delete c.timeout;
- c.timeout=0;
-
- if(c.softButtons) delete c.softButtons;
- c.softButtons=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("scrollableMessageBody")) return false;
- {
- const Json::Value& j=json["scrollableMessageBody"];
- if(!j.isString()) return false;
- c.scrollableMessageBody=j.asString();
- }
- if(json.isMember("timeout"))
- {
- const Json::Value& j=json["timeout"];
- if(!j.isInt()) return false;
- c.timeout=new unsigned int(j.asInt());
- }
- if(json.isMember("softButtons"))
- {
- const Json::Value& j=json["softButtons"];
- if(!j.isArray()) return false;
- c.softButtons=new std::vector<SoftButton>();
- c.softButtons->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- SoftButton t;
- if(!SoftButtonMarshaller::fromJSON(j[i],t))
- return false;
- c.softButtons[0][i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_requestMarshaller.h
deleted file mode 100644
index 5039596ed..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SCROLLABLEMESSAGE_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SCROLLABLEMESSAGE_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ScrollableMessage_requestMarshaller
- {
- static bool checkIntegrity(ScrollableMessage_request& e);
- static bool checkIntegrityConst(const ScrollableMessage_request& e);
-
- static bool fromString(const std::string& s,ScrollableMessage_request& e);
- static const std::string toString(const ScrollableMessage_request& e);
-
- static bool fromJSON(const Json::Value& s,ScrollableMessage_request& e);
- static Json::Value toJSON(const ScrollableMessage_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_response.cpp
deleted file mode 100644
index e49b0fcdc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_response.h"
-#include "ScrollableMessage_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-ScrollableMessage_response& ScrollableMessage_response::operator =(const ScrollableMessage_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-ScrollableMessage_response::~ScrollableMessage_response(void)
-{}
-
-ScrollableMessage_response::ScrollableMessage_response(const ScrollableMessage_response& c)
-{
- *this = c;
-}
-
-bool ScrollableMessage_response::checkIntegrity(void)
-{
- return ScrollableMessage_responseMarshaller::checkIntegrity(*this);
-}
-
-ScrollableMessage_response::ScrollableMessage_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_responseMarshaller.cpp
deleted file mode 100644
index 05895caa8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_responseMarshaller.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_response.h"
-#include "ResultMarshaller.h"
-
-#include "ScrollableMessage_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ScrollableMessage_responseMarshaller::checkIntegrity(ScrollableMessage_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ScrollableMessage_responseMarshaller::fromString(const std::string& s,ScrollableMessage_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ScrollableMessage_responseMarshaller::toString(const ScrollableMessage_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ScrollableMessage_responseMarshaller::checkIntegrityConst(const ScrollableMessage_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- return true;
-}
-
-Json::Value ScrollableMessage_responseMarshaller::toJSON(const ScrollableMessage_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- return json;
-}
-
-
-bool ScrollableMessage_responseMarshaller::fromJSON(const Json::Value& json,ScrollableMessage_response& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_responseMarshaller.h
deleted file mode 100644
index efab3e398..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ScrollableMessage_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SCROLLABLEMESSAGE_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SCROLLABLEMESSAGE_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ScrollableMessage_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ScrollableMessage_responseMarshaller
- {
- static bool checkIntegrity(ScrollableMessage_response& e);
- static bool checkIntegrityConst(const ScrollableMessage_response& e);
-
- static bool fromString(const std::string& s,ScrollableMessage_response& e);
- static const std::string toString(const ScrollableMessage_response& e);
-
- static bool fromJSON(const Json::Value& s,ScrollableMessage_response& e);
- static Json::Value toJSON(const ScrollableMessage_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_request.cpp
deleted file mode 100644
index 4bce103d1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_request.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_request.h"
-#include "SetAppIcon_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-SetAppIcon_request::~SetAppIcon_request(void)
-{
-}
-
-
-SetAppIcon_request::SetAppIcon_request(const SetAppIcon_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool SetAppIcon_request::checkIntegrity(void)
-{
- return SetAppIcon_requestMarshaller::checkIntegrity(*this);
-}
-
-
-SetAppIcon_request::SetAppIcon_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool SetAppIcon_request::set_syncFileName(const std::string& syncFileName_)
-{
- if(syncFileName_.length()>500) return false;
- syncFileName=syncFileName_;
- return true;
-}
-
-
-
-
-const std::string& SetAppIcon_request::get_syncFileName(void) const
-{
- return syncFileName;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_requestMarshaller.cpp
deleted file mode 100644
index 149d4c9d9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_requestMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_request.h"
-
-
-#include "SetAppIcon_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SetAppIcon_requestMarshaller::checkIntegrity(SetAppIcon_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetAppIcon_requestMarshaller::fromString(const std::string& s,SetAppIcon_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetAppIcon_requestMarshaller::toString(const SetAppIcon_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetAppIcon_requestMarshaller::checkIntegrityConst(const SetAppIcon_request& s)
-{
- if(s.syncFileName.length()>500) return false;
- return true;
-}
-
-Json::Value SetAppIcon_requestMarshaller::toJSON(const SetAppIcon_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["syncFileName"]=Json::Value(e.syncFileName);
-
- return json;
-}
-
-
-bool SetAppIcon_requestMarshaller::fromJSON(const Json::Value& json,SetAppIcon_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("syncFileName")) return false;
- {
- const Json::Value& j=json["syncFileName"];
- if(!j.isString()) return false;
- c.syncFileName=j.asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_requestMarshaller.h
deleted file mode 100644
index 7f1b7c65f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SETAPPICON_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SETAPPICON_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SetAppIcon_requestMarshaller
- {
- static bool checkIntegrity(SetAppIcon_request& e);
- static bool checkIntegrityConst(const SetAppIcon_request& e);
-
- static bool fromString(const std::string& s,SetAppIcon_request& e);
- static const std::string toString(const SetAppIcon_request& e);
-
- static bool fromJSON(const Json::Value& s,SetAppIcon_request& e);
- static Json::Value toJSON(const SetAppIcon_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_response.cpp
deleted file mode 100644
index 6186216b3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_response.h"
-#include "SetAppIcon_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-SetAppIcon_response& SetAppIcon_response::operator =(const SetAppIcon_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-SetAppIcon_response::~SetAppIcon_response(void)
-{}
-
-SetAppIcon_response::SetAppIcon_response(const SetAppIcon_response& c)
-{
- *this = c;
-}
-
-bool SetAppIcon_response::checkIntegrity(void)
-{
- return SetAppIcon_responseMarshaller::checkIntegrity(*this);
-}
-
-SetAppIcon_response::SetAppIcon_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_responseMarshaller.cpp
deleted file mode 100644
index 40b944378..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_response.h"
-#include "ResultMarshaller.h"
-
-#include "SetAppIcon_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SetAppIcon_responseMarshaller::checkIntegrity(SetAppIcon_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetAppIcon_responseMarshaller::fromString(const std::string& s,SetAppIcon_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetAppIcon_responseMarshaller::toString(const SetAppIcon_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetAppIcon_responseMarshaller::checkIntegrityConst(const SetAppIcon_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value SetAppIcon_responseMarshaller::toJSON(const SetAppIcon_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool SetAppIcon_responseMarshaller::fromJSON(const Json::Value& json,SetAppIcon_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_responseMarshaller.h
deleted file mode 100644
index 7af2b0adf..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetAppIcon_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SETAPPICON_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SETAPPICON_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetAppIcon_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SetAppIcon_responseMarshaller
- {
- static bool checkIntegrity(SetAppIcon_response& e);
- static bool checkIntegrityConst(const SetAppIcon_response& e);
-
- static bool fromString(const std::string& s,SetAppIcon_response& e);
- static const std::string toString(const SetAppIcon_response& e);
-
- static bool fromJSON(const Json::Value& s,SetAppIcon_response& e);
- static Json::Value toJSON(const SetAppIcon_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_request.cpp
deleted file mode 100644
index dfa9d2190..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_request.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_request.h"
-#include "SetDisplayLayout_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-SetDisplayLayout_request::~SetDisplayLayout_request(void)
-{
-}
-
-
-SetDisplayLayout_request::SetDisplayLayout_request(const SetDisplayLayout_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool SetDisplayLayout_request::checkIntegrity(void)
-{
- return SetDisplayLayout_requestMarshaller::checkIntegrity(*this);
-}
-
-
-SetDisplayLayout_request::SetDisplayLayout_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool SetDisplayLayout_request::set_displayLayout(const std::string& displayLayout_)
-{
- displayLayout=displayLayout_;
- return true;
-}
-
-
-
-
-const std::string& SetDisplayLayout_request::get_displayLayout(void) const
-{
- return displayLayout;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_requestMarshaller.cpp
deleted file mode 100644
index 955f03cad..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_requestMarshaller.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_request.h"
-
-
-#include "SetDisplayLayout_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SetDisplayLayout_requestMarshaller::checkIntegrity(SetDisplayLayout_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetDisplayLayout_requestMarshaller::fromString(const std::string& s,SetDisplayLayout_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetDisplayLayout_requestMarshaller::toString(const SetDisplayLayout_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetDisplayLayout_requestMarshaller::checkIntegrityConst(const SetDisplayLayout_request& s)
-{
- return true;
-}
-
-Json::Value SetDisplayLayout_requestMarshaller::toJSON(const SetDisplayLayout_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["displayLayout"]=Json::Value(e.displayLayout);
-
- return json;
-}
-
-
-bool SetDisplayLayout_requestMarshaller::fromJSON(const Json::Value& json,SetDisplayLayout_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("displayLayout")) return false;
- {
- const Json::Value& j=json["displayLayout"];
- if(!j.isString()) return false;
- c.displayLayout=j.asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_requestMarshaller.h
deleted file mode 100644
index 1ac3cb412..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SETDISPLAYLAYOUT_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SETDISPLAYLAYOUT_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SetDisplayLayout_requestMarshaller
- {
- static bool checkIntegrity(SetDisplayLayout_request& e);
- static bool checkIntegrityConst(const SetDisplayLayout_request& e);
-
- static bool fromString(const std::string& s,SetDisplayLayout_request& e);
- static const std::string toString(const SetDisplayLayout_request& e);
-
- static bool fromJSON(const Json::Value& s,SetDisplayLayout_request& e);
- static Json::Value toJSON(const SetDisplayLayout_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_response.cpp
deleted file mode 100644
index 6c5dcc011..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_response.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_response.h"
-#include "SetDisplayLayout_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-SetDisplayLayout_response& SetDisplayLayout_response::operator =(const SetDisplayLayout_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-
-SetDisplayLayout_response::~SetDisplayLayout_response(void)
-{}
-
-
-SetDisplayLayout_response::SetDisplayLayout_response(const SetDisplayLayout_response& c)
-{
- *this = c;
-}
-
-bool SetDisplayLayout_response::checkIntegrity(void)
-{
- return SetDisplayLayout_responseMarshaller::checkIntegrity(*this);
-}
-
-SetDisplayLayout_response::SetDisplayLayout_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_responseMarshaller.cpp
deleted file mode 100644
index 38e98195d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_response.h"
-#include "ResultMarshaller.h"
-
-#include "SetDisplayLayout_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SetDisplayLayout_responseMarshaller::checkIntegrity(SetDisplayLayout_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetDisplayLayout_responseMarshaller::fromString(const std::string& s,SetDisplayLayout_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetDisplayLayout_responseMarshaller::toString(const SetDisplayLayout_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetDisplayLayout_responseMarshaller::checkIntegrityConst(const SetDisplayLayout_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value SetDisplayLayout_responseMarshaller::toJSON(const SetDisplayLayout_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool SetDisplayLayout_responseMarshaller::fromJSON(const Json::Value& json,SetDisplayLayout_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_responseMarshaller.h
deleted file mode 100644
index c3b423675..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetDisplayLayout_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SETDISPLAYLAYOUT_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SETDISPLAYLAYOUT_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetDisplayLayout_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SetDisplayLayout_responseMarshaller
- {
- static bool checkIntegrity(SetDisplayLayout_response& e);
- static bool checkIntegrityConst(const SetDisplayLayout_response& e);
-
- static bool fromString(const std::string& s,SetDisplayLayout_response& e);
- static const std::string toString(const SetDisplayLayout_response& e);
-
- static bool fromJSON(const Json::Value& s,SetDisplayLayout_response& e);
- static Json::Value toJSON(const SetDisplayLayout_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_request.cpp
deleted file mode 100644
index cc35f2511..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_request.cpp
+++ /dev/null
@@ -1,203 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_request.h"
-#include "SetGlobalProperties_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "TTSChunkMarshaller.h"
-#include "VrHelpItemMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-SetGlobalProperties_request& SetGlobalProperties_request::operator =(const SetGlobalProperties_request& c)
-{
- helpPrompt= c.helpPrompt ? new std::vector<TTSChunk>(c.helpPrompt[0]) : 0;
- timeoutPrompt= c.timeoutPrompt ? new std::vector<TTSChunk>(c.timeoutPrompt[0]) : 0;
- vrHelpTitle= c.vrHelpTitle ? new std::string(c.vrHelpTitle[0]) : 0;
- vrHelp= c.vrHelp ? new std::vector<VrHelpItem>(c.vrHelp[0]) : 0;
-
- return *this;
-}
-
-
-SetGlobalProperties_request::~SetGlobalProperties_request(void)
-{
- if(helpPrompt)
- delete helpPrompt;
- if(timeoutPrompt)
- delete timeoutPrompt;
- if(vrHelpTitle)
- delete vrHelpTitle;
- if(vrHelp)
- delete vrHelp;
-}
-
-
-SetGlobalProperties_request::SetGlobalProperties_request(const SetGlobalProperties_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool SetGlobalProperties_request::checkIntegrity(void)
-{
- return SetGlobalProperties_requestMarshaller::checkIntegrity(*this);
-}
-
-
-SetGlobalProperties_request::SetGlobalProperties_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- helpPrompt(0),
- timeoutPrompt(0),
- vrHelpTitle(0),
- vrHelp(0)
-{
-}
-
-
-
-bool SetGlobalProperties_request::set_helpPrompt(const std::vector<TTSChunk>& helpPrompt_)
-{
- unsigned int i=helpPrompt_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(helpPrompt_[i])) return false;
- }
- delete helpPrompt;
- helpPrompt=0;
-
- helpPrompt=new std::vector<TTSChunk>(helpPrompt_);
- return true;
-}
-
-void SetGlobalProperties_request::reset_helpPrompt(void)
-{
- if(helpPrompt)
- delete helpPrompt;
- helpPrompt=0;
-}
-
-bool SetGlobalProperties_request::set_timeoutPrompt(const std::vector<TTSChunk>& timeoutPrompt_)
-{
- unsigned int i=timeoutPrompt_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(timeoutPrompt_[i])) return false;
- }
- delete timeoutPrompt;
- timeoutPrompt=0;
-
- timeoutPrompt=new std::vector<TTSChunk>(timeoutPrompt_);
- return true;
-}
-
-void SetGlobalProperties_request::reset_timeoutPrompt(void)
-{
- if(timeoutPrompt)
- delete timeoutPrompt;
- timeoutPrompt=0;
-}
-
-bool SetGlobalProperties_request::set_vrHelpTitle(const std::string& vrHelpTitle_)
-{
- if(vrHelpTitle_.length()>500) return false;
- delete vrHelpTitle;
- vrHelpTitle=0;
-
- vrHelpTitle=new std::string(vrHelpTitle_);
- return true;
-}
-
-void SetGlobalProperties_request::reset_vrHelpTitle(void)
-{
- if(vrHelpTitle)
- delete vrHelpTitle;
- vrHelpTitle=0;
-}
-
-bool SetGlobalProperties_request::set_vrHelp(const std::vector<VrHelpItem>& vrHelp_)
-{
- unsigned int i=vrHelp_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VrHelpItemMarshaller::checkIntegrityConst(vrHelp_[i])) return false;
- }
- delete vrHelp;
- vrHelp=0;
-
- vrHelp=new std::vector<VrHelpItem>(vrHelp_);
- return true;
-}
-
-void SetGlobalProperties_request::reset_vrHelp(void)
-{
- if(vrHelp)
- delete vrHelp;
- vrHelp=0;
-}
-
-
-
-
-const std::vector<TTSChunk>* SetGlobalProperties_request::get_helpPrompt(void) const
-{
- return helpPrompt;
-}
-
-const std::vector<TTSChunk>* SetGlobalProperties_request::get_timeoutPrompt(void) const
-{
- return timeoutPrompt;
-}
-
-const std::string* SetGlobalProperties_request::get_vrHelpTitle(void) const
-{
- return vrHelpTitle;
-}
-
-const std::vector<VrHelpItem>* SetGlobalProperties_request::get_vrHelp(void) const
-{
- return vrHelp;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_requestMarshaller.cpp
deleted file mode 100644
index 2d98fa3c5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_requestMarshaller.cpp
+++ /dev/null
@@ -1,232 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_request.h"
-#include "TTSChunkMarshaller.h"
-#include "VrHelpItemMarshaller.h"
-
-#include "SetGlobalProperties_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SetGlobalProperties_requestMarshaller::checkIntegrity(SetGlobalProperties_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetGlobalProperties_requestMarshaller::fromString(const std::string& s,SetGlobalProperties_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetGlobalProperties_requestMarshaller::toString(const SetGlobalProperties_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetGlobalProperties_requestMarshaller::checkIntegrityConst(const SetGlobalProperties_request& s)
-{
- if(s.helpPrompt)
- {
- unsigned int i=s.helpPrompt[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.helpPrompt[0][i])) return false;
- }
- }
- if(s.timeoutPrompt)
- {
- unsigned int i=s.timeoutPrompt[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.timeoutPrompt[0][i])) return false;
- }
- }
- if(s.vrHelpTitle && s.vrHelpTitle->length()>500) return false;
- if(s.vrHelp)
- {
- unsigned int i=s.vrHelp[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VrHelpItemMarshaller::checkIntegrityConst(s.vrHelp[0][i])) return false;
- }
- }
- return true;
-}
-
-Json::Value SetGlobalProperties_requestMarshaller::toJSON(const SetGlobalProperties_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- if(e.helpPrompt)
- {
- unsigned int sz=e.helpPrompt->size();
- json["helpPrompt"]=Json::Value(Json::arrayValue);
- json["helpPrompt"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["helpPrompt"][i]=TTSChunkMarshaller::toJSON(e.helpPrompt[0][i]);
- }
-
- if(e.timeoutPrompt)
- {
- unsigned int sz=e.timeoutPrompt->size();
- json["timeoutPrompt"]=Json::Value(Json::arrayValue);
- json["timeoutPrompt"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["timeoutPrompt"][i]=TTSChunkMarshaller::toJSON(e.timeoutPrompt[0][i]);
- }
-
- if(e.vrHelpTitle)
- json["vrHelpTitle"]=Json::Value(*e.vrHelpTitle);
-
- if(e.vrHelp)
- {
- unsigned int sz=e.vrHelp->size();
- json["vrHelp"]=Json::Value(Json::arrayValue);
- json["vrHelp"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["vrHelp"][i]=VrHelpItemMarshaller::toJSON(e.vrHelp[0][i]);
- }
-
- return json;
-}
-
-
-bool SetGlobalProperties_requestMarshaller::fromJSON(const Json::Value& json,SetGlobalProperties_request& c)
-{
- if(c.helpPrompt) delete c.helpPrompt;
- c.helpPrompt=0;
-
- if(c.timeoutPrompt) delete c.timeoutPrompt;
- c.timeoutPrompt=0;
-
- if(c.vrHelpTitle) delete c.vrHelpTitle;
- c.vrHelpTitle=0;
-
- if(c.vrHelp) delete c.vrHelp;
- c.vrHelp=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(json.isMember("helpPrompt"))
- {
- const Json::Value& j=json["helpPrompt"];
- if(!j.isArray()) return false;
- c.helpPrompt=new std::vector<TTSChunk>();
- c.helpPrompt->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.helpPrompt[0][i]=t;
- }
-
- }
- if(json.isMember("timeoutPrompt"))
- {
- const Json::Value& j=json["timeoutPrompt"];
- if(!j.isArray()) return false;
- c.timeoutPrompt=new std::vector<TTSChunk>();
- c.timeoutPrompt->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.timeoutPrompt[0][i]=t;
- }
-
- }
- if(json.isMember("vrHelpTitle"))
- {
- const Json::Value& j=json["vrHelpTitle"];
- if(!j.isString()) return false;
- c.vrHelpTitle=new std::string(j.asString());
- }
- if(json.isMember("vrHelp"))
- {
- const Json::Value& j=json["vrHelp"];
- if(!j.isArray()) return false;
- c.vrHelp=new std::vector<VrHelpItem>();
- c.vrHelp->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- VrHelpItem t;
- if(!VrHelpItemMarshaller::fromJSON(j[i],t))
- return false;
- c.vrHelp[0][i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_requestMarshaller.h
deleted file mode 100644
index c5d884e2f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SETGLOBALPROPERTIES_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SETGLOBALPROPERTIES_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SetGlobalProperties_requestMarshaller
- {
- static bool checkIntegrity(SetGlobalProperties_request& e);
- static bool checkIntegrityConst(const SetGlobalProperties_request& e);
-
- static bool fromString(const std::string& s,SetGlobalProperties_request& e);
- static const std::string toString(const SetGlobalProperties_request& e);
-
- static bool fromJSON(const Json::Value& s,SetGlobalProperties_request& e);
- static Json::Value toJSON(const SetGlobalProperties_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_response.cpp
deleted file mode 100644
index ec636a05f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_response.h"
-#include "SetGlobalProperties_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-SetGlobalProperties_response& SetGlobalProperties_response::operator =(const SetGlobalProperties_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-SetGlobalProperties_response::~SetGlobalProperties_response(void)
-{}
-
-SetGlobalProperties_response::SetGlobalProperties_response(const SetGlobalProperties_response& c)
-{
- *this = c;
-}
-
-bool SetGlobalProperties_response::checkIntegrity(void)
-{
- return SetGlobalProperties_responseMarshaller::checkIntegrity(*this);
-}
-
-SetGlobalProperties_response::SetGlobalProperties_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_responseMarshaller.cpp
deleted file mode 100644
index 5f7d188d0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_response.h"
-#include "ResultMarshaller.h"
-
-#include "SetGlobalProperties_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SetGlobalProperties_responseMarshaller::checkIntegrity(SetGlobalProperties_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetGlobalProperties_responseMarshaller::fromString(const std::string& s,SetGlobalProperties_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetGlobalProperties_responseMarshaller::toString(const SetGlobalProperties_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetGlobalProperties_responseMarshaller::checkIntegrityConst(const SetGlobalProperties_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value SetGlobalProperties_responseMarshaller::toJSON(const SetGlobalProperties_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool SetGlobalProperties_responseMarshaller::fromJSON(const Json::Value& json,SetGlobalProperties_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_responseMarshaller.h
deleted file mode 100644
index ace55e9f8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetGlobalProperties_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SETGLOBALPROPERTIES_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SETGLOBALPROPERTIES_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetGlobalProperties_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SetGlobalProperties_responseMarshaller
- {
- static bool checkIntegrity(SetGlobalProperties_response& e);
- static bool checkIntegrityConst(const SetGlobalProperties_response& e);
-
- static bool fromString(const std::string& s,SetGlobalProperties_response& e);
- static const std::string toString(const SetGlobalProperties_response& e);
-
- static bool fromJSON(const Json::Value& s,SetGlobalProperties_response& e);
- static Json::Value toJSON(const SetGlobalProperties_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_request.cpp
deleted file mode 100644
index c338a3134..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_request.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_request.h"
-#include "SetMediaClockTimer_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "StartTimeMarshaller.h"
-#include "UpdateModeMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-SetMediaClockTimer_request& SetMediaClockTimer_request::operator =(const SetMediaClockTimer_request& c)
-{
- startTime= c.startTime ? new StartTime(c.startTime[0]) : 0;
- updateMode= c.updateMode;
-
- return *this;
-}
-
-
-SetMediaClockTimer_request::~SetMediaClockTimer_request(void)
-{
- if(startTime)
- delete startTime;
-}
-
-
-SetMediaClockTimer_request::SetMediaClockTimer_request(const SetMediaClockTimer_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool SetMediaClockTimer_request::checkIntegrity(void)
-{
- return SetMediaClockTimer_requestMarshaller::checkIntegrity(*this);
-}
-
-
-SetMediaClockTimer_request::SetMediaClockTimer_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- startTime(0)
-{
-}
-
-
-
-bool SetMediaClockTimer_request::set_startTime(const StartTime& startTime_)
-{
- if(!StartTimeMarshaller::checkIntegrityConst(startTime_)) return false;
- delete startTime;
- startTime=0;
-
- startTime=new StartTime(startTime_);
- return true;
-}
-
-void SetMediaClockTimer_request::reset_startTime(void)
-{
- if(startTime)
- delete startTime;
- startTime=0;
-}
-
-bool SetMediaClockTimer_request::set_updateMode(const UpdateMode& updateMode_)
-{
- if(!UpdateModeMarshaller::checkIntegrityConst(updateMode_)) return false;
- updateMode=updateMode_;
- return true;
-}
-
-
-
-
-const StartTime* SetMediaClockTimer_request::get_startTime(void) const
-{
- return startTime;
-}
-
-const UpdateMode& SetMediaClockTimer_request::get_updateMode(void) const
-{
- return updateMode;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_requestMarshaller.cpp
deleted file mode 100644
index 84acf6e4a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_requestMarshaller.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_request.h"
-#include "StartTimeMarshaller.h"
-#include "UpdateModeMarshaller.h"
-
-#include "SetMediaClockTimer_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SetMediaClockTimer_requestMarshaller::checkIntegrity(SetMediaClockTimer_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetMediaClockTimer_requestMarshaller::fromString(const std::string& s,SetMediaClockTimer_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetMediaClockTimer_requestMarshaller::toString(const SetMediaClockTimer_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetMediaClockTimer_requestMarshaller::checkIntegrityConst(const SetMediaClockTimer_request& s)
-{
- if(s.startTime && !StartTimeMarshaller::checkIntegrityConst(*s.startTime)) return false;
- if(!UpdateModeMarshaller::checkIntegrityConst(s.updateMode)) return false;
- return true;
-}
-
-Json::Value SetMediaClockTimer_requestMarshaller::toJSON(const SetMediaClockTimer_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- if(e.startTime)
- json["startTime"]=StartTimeMarshaller::toJSON(*e.startTime);
-
- json["updateMode"]=UpdateModeMarshaller::toJSON(e.updateMode);
-
- return json;
-}
-
-
-bool SetMediaClockTimer_requestMarshaller::fromJSON(const Json::Value& json,SetMediaClockTimer_request& c)
-{
- if(c.startTime) delete c.startTime;
- c.startTime=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(json.isMember("startTime"))
- {
- const Json::Value& j=json["startTime"];
- c.startTime=new StartTime();
- if(!StartTimeMarshaller::fromJSON(j,c.startTime[0]))
- return false;
- }
- if(!json.isMember("updateMode")) return false;
- {
- const Json::Value& j=json["updateMode"];
- if(!UpdateModeMarshaller::fromJSON(j,c.updateMode))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_requestMarshaller.h
deleted file mode 100644
index 9512edfba..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SETMEDIACLOCKTIMER_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SETMEDIACLOCKTIMER_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SetMediaClockTimer_requestMarshaller
- {
- static bool checkIntegrity(SetMediaClockTimer_request& e);
- static bool checkIntegrityConst(const SetMediaClockTimer_request& e);
-
- static bool fromString(const std::string& s,SetMediaClockTimer_request& e);
- static const std::string toString(const SetMediaClockTimer_request& e);
-
- static bool fromJSON(const Json::Value& s,SetMediaClockTimer_request& e);
- static Json::Value toJSON(const SetMediaClockTimer_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_response.cpp
deleted file mode 100644
index 0367f6a24..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_response.h"
-#include "SetMediaClockTimer_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-SetMediaClockTimer_response& SetMediaClockTimer_response::operator =(const SetMediaClockTimer_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-SetMediaClockTimer_response::~SetMediaClockTimer_response(void)
-{}
-
-SetMediaClockTimer_response::SetMediaClockTimer_response(const SetMediaClockTimer_response& c)
-{
- *this = c;
-}
-
-bool SetMediaClockTimer_response::checkIntegrity(void)
-{
- return SetMediaClockTimer_responseMarshaller::checkIntegrity(*this);
-}
-
-SetMediaClockTimer_response::SetMediaClockTimer_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_responseMarshaller.cpp
deleted file mode 100644
index d4309d168..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_response.h"
-#include "ResultMarshaller.h"
-
-#include "SetMediaClockTimer_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SetMediaClockTimer_responseMarshaller::checkIntegrity(SetMediaClockTimer_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SetMediaClockTimer_responseMarshaller::fromString(const std::string& s,SetMediaClockTimer_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SetMediaClockTimer_responseMarshaller::toString(const SetMediaClockTimer_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SetMediaClockTimer_responseMarshaller::checkIntegrityConst(const SetMediaClockTimer_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value SetMediaClockTimer_responseMarshaller::toJSON(const SetMediaClockTimer_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool SetMediaClockTimer_responseMarshaller::fromJSON(const Json::Value& json,SetMediaClockTimer_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_responseMarshaller.h
deleted file mode 100644
index c18001fbd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SetMediaClockTimer_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SETMEDIACLOCKTIMER_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SETMEDIACLOCKTIMER_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SetMediaClockTimer_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SetMediaClockTimer_responseMarshaller
- {
- static bool checkIntegrity(SetMediaClockTimer_response& e);
- static bool checkIntegrityConst(const SetMediaClockTimer_response& e);
-
- static bool fromString(const std::string& s,SetMediaClockTimer_response& e);
- static const std::string toString(const SetMediaClockTimer_response& e);
-
- static bool fromJSON(const Json::Value& s,SetMediaClockTimer_response& e);
- static Json::Value toJSON(const SetMediaClockTimer_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_request.cpp
deleted file mode 100644
index 38896f853..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_request.cpp
+++ /dev/null
@@ -1,272 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_request.h"
-#include "ShowConstantTBT_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "ImageMarshaller.h"
-#include "SoftButtonMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-ShowConstantTBT_request& ShowConstantTBT_request::operator =(const ShowConstantTBT_request& c)
-{
- navigationText1= c.navigationText1 ? new std::string(c.navigationText1[0]) : 0;
- navigationText2= c.navigationText2 ? new std::string(c.navigationText2[0]) : 0;
- eta= c.eta ? new std::string(c.eta[0]) : 0;
- totalDistance= c.totalDistance ? new std::string(c.totalDistance[0]) : 0;
- turnIcon= c.turnIcon;
- distanceToManeuver= c.distanceToManeuver;
- distanceToManeuverScale= c.distanceToManeuverScale;
- maneuverComplete= c.maneuverComplete ? new bool(c.maneuverComplete[0]) : 0;
- softButtons= c.softButtons;
-
- return *this;
-}
-
-
-ShowConstantTBT_request::~ShowConstantTBT_request(void)
-{
- if(navigationText1)
- delete navigationText1;
- if(navigationText2)
- delete navigationText2;
- if(eta)
- delete eta;
- if(totalDistance)
- delete totalDistance;
- if(maneuverComplete)
- delete maneuverComplete;
-}
-
-
-ShowConstantTBT_request::ShowConstantTBT_request(const ShowConstantTBT_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool ShowConstantTBT_request::checkIntegrity(void)
-{
- return ShowConstantTBT_requestMarshaller::checkIntegrity(*this);
-}
-
-
-ShowConstantTBT_request::ShowConstantTBT_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- navigationText1(0),
- navigationText2(0),
- eta(0),
- totalDistance(0),
- maneuverComplete(0)
-{
-}
-
-
-
-bool ShowConstantTBT_request::set_navigationText1(const std::string& navigationText1_)
-{
- if(navigationText1_.length()>500) return false;
- delete navigationText1;
- navigationText1=0;
-
- navigationText1=new std::string(navigationText1_);
- return true;
-}
-
-void ShowConstantTBT_request::reset_navigationText1(void)
-{
- if(navigationText1)
- delete navigationText1;
- navigationText1=0;
-}
-
-bool ShowConstantTBT_request::set_navigationText2(const std::string& navigationText2_)
-{
- if(navigationText2_.length()>500) return false;
- delete navigationText2;
- navigationText2=0;
-
- navigationText2=new std::string(navigationText2_);
- return true;
-}
-
-void ShowConstantTBT_request::reset_navigationText2(void)
-{
- if(navigationText2)
- delete navigationText2;
- navigationText2=0;
-}
-
-bool ShowConstantTBT_request::set_eta(const std::string& eta_)
-{
- if(eta_.length()>500) return false;
- delete eta;
- eta=0;
-
- eta=new std::string(eta_);
- return true;
-}
-
-void ShowConstantTBT_request::reset_eta(void)
-{
- if(eta)
- delete eta;
- eta=0;
-}
-
-bool ShowConstantTBT_request::set_totalDistance(const std::string& totalDistance_)
-{
- if(totalDistance_.length()>500) return false;
- delete totalDistance;
- totalDistance=0;
-
- totalDistance=new std::string(totalDistance_);
- return true;
-}
-
-void ShowConstantTBT_request::reset_totalDistance(void)
-{
- if(totalDistance)
- delete totalDistance;
- totalDistance=0;
-}
-
-bool ShowConstantTBT_request::set_turnIcon(const Image& turnIcon_)
-{
- if(!ImageMarshaller::checkIntegrityConst(turnIcon_)) return false;
- turnIcon=turnIcon_;
- return true;
-}
-
-bool ShowConstantTBT_request::set_distanceToManeuver(float distanceToManeuver_)
-{
- if(distanceToManeuver_>1000000000) return false;
- if(distanceToManeuver_<0) return false;
- distanceToManeuver=distanceToManeuver_;
- return true;
-}
-
-bool ShowConstantTBT_request::set_distanceToManeuverScale(float distanceToManeuverScale_)
-{
- if(distanceToManeuverScale_>1000000000) return false;
- if(distanceToManeuverScale_<0) return false;
- distanceToManeuverScale=distanceToManeuverScale_;
- return true;
-}
-
-bool ShowConstantTBT_request::set_maneuverComplete(bool maneuverComplete_)
-{
- delete maneuverComplete;
- maneuverComplete=0;
-
- maneuverComplete=new bool(maneuverComplete_);
- return true;
-}
-
-void ShowConstantTBT_request::reset_maneuverComplete(void)
-{
- if(maneuverComplete)
- delete maneuverComplete;
- maneuverComplete=0;
-}
-
-bool ShowConstantTBT_request::set_softButtons(const std::vector<SoftButton>& softButtons_)
-{
- unsigned int i=softButtons_.size();
- if(i>3 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(softButtons_[i])) return false;
- }
- softButtons=softButtons_;
- return true;
-}
-
-
-
-
-const std::string* ShowConstantTBT_request::get_navigationText1(void) const
-{
- return navigationText1;
-}
-
-const std::string* ShowConstantTBT_request::get_navigationText2(void) const
-{
- return navigationText2;
-}
-
-const std::string* ShowConstantTBT_request::get_eta(void) const
-{
- return eta;
-}
-
-const std::string* ShowConstantTBT_request::get_totalDistance(void) const
-{
- return totalDistance;
-}
-
-const Image& ShowConstantTBT_request::get_turnIcon(void) const
-{
- return turnIcon;
-}
-
-float ShowConstantTBT_request::get_distanceToManeuver(void) const
-{
- return distanceToManeuver;
-}
-
-float ShowConstantTBT_request::get_distanceToManeuverScale(void) const
-{
- return distanceToManeuverScale;
-}
-
-const bool* ShowConstantTBT_request::get_maneuverComplete(void) const
-{
- return maneuverComplete;
-}
-
-const std::vector<SoftButton>& ShowConstantTBT_request::get_softButtons(void) const
-{
- return softButtons;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_requestMarshaller.cpp
deleted file mode 100644
index 4ccb3959b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_requestMarshaller.cpp
+++ /dev/null
@@ -1,231 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_request.h"
-#include "ImageMarshaller.h"
-#include "SoftButtonMarshaller.h"
-
-#include "ShowConstantTBT_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ShowConstantTBT_requestMarshaller::checkIntegrity(ShowConstantTBT_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ShowConstantTBT_requestMarshaller::fromString(const std::string& s,ShowConstantTBT_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ShowConstantTBT_requestMarshaller::toString(const ShowConstantTBT_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ShowConstantTBT_requestMarshaller::checkIntegrityConst(const ShowConstantTBT_request& s)
-{
- if(s.navigationText1 && s.navigationText1->length()>500) return false;
- if(s.navigationText2 && s.navigationText2->length()>500) return false;
- if(s.eta && s.eta->length()>500) return false;
- if(s.totalDistance && s.totalDistance->length()>500) return false;
- if(!ImageMarshaller::checkIntegrityConst(s.turnIcon)) return false;
- if(s.distanceToManeuver>1000000000) return false;
- if(s.distanceToManeuver<0) return false;
- if(s.distanceToManeuverScale>1000000000) return false;
- if(s.distanceToManeuverScale<0) return false;
- {
- unsigned int i=s.softButtons.size();
- if(i>3 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(s.softButtons[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value ShowConstantTBT_requestMarshaller::toJSON(const ShowConstantTBT_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- if(e.navigationText1)
- json["navigationText1"]=Json::Value(*e.navigationText1);
-
- if(e.navigationText2)
- json["navigationText2"]=Json::Value(*e.navigationText2);
-
- if(e.eta)
- json["eta"]=Json::Value(*e.eta);
-
- if(e.totalDistance)
- json["totalDistance"]=Json::Value(*e.totalDistance);
-
- json["turnIcon"]=ImageMarshaller::toJSON(e.turnIcon);
-
- json["distanceToManeuver"]=Json::Value(e.distanceToManeuver);
-
- json["distanceToManeuverScale"]=Json::Value(e.distanceToManeuverScale);
-
- if(e.maneuverComplete)
- json["maneuverComplete"]=Json::Value(*e.maneuverComplete);
-
- json["softButtons"]=Json::Value(Json::arrayValue);
- json["softButtons"].resize(e.softButtons.size());
- for(unsigned int i=0;i<e.softButtons.size();i++)
- json["softButtons"][i]=SoftButtonMarshaller::toJSON(e.softButtons[i]);
-
- return json;
-}
-
-
-bool ShowConstantTBT_requestMarshaller::fromJSON(const Json::Value& json,ShowConstantTBT_request& c)
-{
- if(c.navigationText1) delete c.navigationText1;
- c.navigationText1=0;
-
- if(c.navigationText2) delete c.navigationText2;
- c.navigationText2=0;
-
- if(c.eta) delete c.eta;
- c.eta=0;
-
- if(c.totalDistance) delete c.totalDistance;
- c.totalDistance=0;
-
- if(c.maneuverComplete) delete c.maneuverComplete;
- c.maneuverComplete=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(json.isMember("navigationText1"))
- {
- const Json::Value& j=json["navigationText1"];
- if(!j.isString()) return false;
- c.navigationText1=new std::string(j.asString());
- }
- if(json.isMember("navigationText2"))
- {
- const Json::Value& j=json["navigationText2"];
- if(!j.isString()) return false;
- c.navigationText2=new std::string(j.asString());
- }
- if(json.isMember("eta"))
- {
- const Json::Value& j=json["eta"];
- if(!j.isString()) return false;
- c.eta=new std::string(j.asString());
- }
- if(json.isMember("totalDistance"))
- {
- const Json::Value& j=json["totalDistance"];
- if(!j.isString()) return false;
- c.totalDistance=new std::string(j.asString());
- }
- if(!json.isMember("turnIcon")) return false;
- {
- const Json::Value& j=json["turnIcon"];
- if(!ImageMarshaller::fromJSON(j,c.turnIcon))
- return false;
- }
- if(!json.isMember("distanceToManeuver")) return false;
- {
- const Json::Value& j=json["distanceToManeuver"];
- if(!j.isNumeric()) return false;
- c.distanceToManeuver=j.asDouble();
- }
- if(!json.isMember("distanceToManeuverScale")) return false;
- {
- const Json::Value& j=json["distanceToManeuverScale"];
- if(!j.isNumeric()) return false;
- c.distanceToManeuverScale=j.asDouble();
- }
- if(json.isMember("maneuverComplete"))
- {
- const Json::Value& j=json["maneuverComplete"];
- if(!j.isBool()) return false;
- c.maneuverComplete=new bool(j.asBool());
- }
- if(!json.isMember("softButtons")) return false;
- {
- const Json::Value& j=json["softButtons"];
- if(!j.isArray()) return false;
- c.softButtons.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- SoftButton t;
- if(!SoftButtonMarshaller::fromJSON(j[i],t))
- return false;
- c.softButtons[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_requestMarshaller.h
deleted file mode 100644
index c5a1976a7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SHOWCONSTANTTBT_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SHOWCONSTANTTBT_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ShowConstantTBT_requestMarshaller
- {
- static bool checkIntegrity(ShowConstantTBT_request& e);
- static bool checkIntegrityConst(const ShowConstantTBT_request& e);
-
- static bool fromString(const std::string& s,ShowConstantTBT_request& e);
- static const std::string toString(const ShowConstantTBT_request& e);
-
- static bool fromJSON(const Json::Value& s,ShowConstantTBT_request& e);
- static Json::Value toJSON(const ShowConstantTBT_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_response.cpp
deleted file mode 100644
index 02be0cf75..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_response.h"
-#include "ShowConstantTBT_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-ShowConstantTBT_response& ShowConstantTBT_response::operator =(const ShowConstantTBT_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-ShowConstantTBT_response::~ShowConstantTBT_response(void)
-{}
-
-ShowConstantTBT_response::ShowConstantTBT_response(const ShowConstantTBT_response& c)
-{
- *this = c;
-}
-
-bool ShowConstantTBT_response::checkIntegrity(void)
-{
- return ShowConstantTBT_responseMarshaller::checkIntegrity(*this);
-}
-
-ShowConstantTBT_response::ShowConstantTBT_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_responseMarshaller.cpp
deleted file mode 100644
index d0f8eb235..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_response.h"
-#include "ResultMarshaller.h"
-
-#include "ShowConstantTBT_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool ShowConstantTBT_responseMarshaller::checkIntegrity(ShowConstantTBT_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool ShowConstantTBT_responseMarshaller::fromString(const std::string& s,ShowConstantTBT_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string ShowConstantTBT_responseMarshaller::toString(const ShowConstantTBT_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool ShowConstantTBT_responseMarshaller::checkIntegrityConst(const ShowConstantTBT_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value ShowConstantTBT_responseMarshaller::toJSON(const ShowConstantTBT_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool ShowConstantTBT_responseMarshaller::fromJSON(const Json::Value& json,ShowConstantTBT_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_responseMarshaller.h
deleted file mode 100644
index 0748d4fd7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/ShowConstantTBT_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SHOWCONSTANTTBT_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SHOWCONSTANTTBT_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/ShowConstantTBT_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct ShowConstantTBT_responseMarshaller
- {
- static bool checkIntegrity(ShowConstantTBT_response& e);
- static bool checkIntegrityConst(const ShowConstantTBT_response& e);
-
- static bool fromString(const std::string& s,ShowConstantTBT_response& e);
- static const std::string toString(const ShowConstantTBT_response& e);
-
- static bool fromJSON(const Json::Value& s,ShowConstantTBT_response& e);
- static Json::Value toJSON(const ShowConstantTBT_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_request.cpp
deleted file mode 100644
index 4904e3fa8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_request.cpp
+++ /dev/null
@@ -1,381 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Show_request.h"
-#include "Show_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "ImageMarshaller.h"
-#include "SoftButtonMarshaller.h"
-#include "TextAlignmentMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-Show_request& Show_request::operator =(const Show_request& c)
-{
- mainField1= c.mainField1 ? new std::string(c.mainField1[0]) : 0;
- mainField2= c.mainField2 ? new std::string(c.mainField2[0]) : 0;
- mainField3= c.mainField3 ? new std::string(c.mainField3[0]) : 0;
- mainField4= c.mainField4 ? new std::string(c.mainField4[0]) : 0;
- alignment= c.alignment ? new TextAlignment(c.alignment[0]) : 0;
- statusBar= c.statusBar ? new std::string(c.statusBar[0]) : 0;
- mediaClock= c.mediaClock ? new std::string(c.mediaClock[0]) : 0;
- mediaTrack= c.mediaTrack ? new std::string(c.mediaTrack[0]) : 0;
- graphic= c.graphic ? new Image(c.graphic[0]) : 0;
- softButtons= c.softButtons ? new std::vector<SoftButton>(c.softButtons[0]) : 0;
- customPresets= c.customPresets ? new std::vector<std::string>(c.customPresets[0]) : 0;
-
- return *this;
-}
-
-
-Show_request::~Show_request(void)
-{
- if(mainField1)
- delete mainField1;
- if(mainField2)
- delete mainField2;
- if(mainField3)
- delete mainField3;
- if(mainField4)
- delete mainField4;
- if(alignment)
- delete alignment;
- if(statusBar)
- delete statusBar;
- if(mediaClock)
- delete mediaClock;
- if(mediaTrack)
- delete mediaTrack;
- if(graphic)
- delete graphic;
- if(softButtons)
- delete softButtons;
- if(customPresets)
- delete customPresets;
-}
-
-
-Show_request::Show_request(const Show_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool Show_request::checkIntegrity(void)
-{
- return Show_requestMarshaller::checkIntegrity(*this);
-}
-
-
-Show_request::Show_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- mainField1(0),
- mainField2(0),
- mainField3(0),
- mainField4(0),
- alignment(0),
- statusBar(0),
- mediaClock(0),
- mediaTrack(0),
- graphic(0),
- softButtons(0),
- customPresets(0)
-{
-}
-
-
-
-bool Show_request::set_mainField1(const std::string& mainField1_)
-{
- if(mainField1_.length()>500) return false;
- delete mainField1;
- mainField1=0;
-
- mainField1=new std::string(mainField1_);
- return true;
-}
-
-void Show_request::reset_mainField1(void)
-{
- if(mainField1)
- delete mainField1;
- mainField1=0;
-}
-
-bool Show_request::set_mainField2(const std::string& mainField2_)
-{
- if(mainField2_.length()>500) return false;
- delete mainField2;
- mainField2=0;
-
- mainField2=new std::string(mainField2_);
- return true;
-}
-
-void Show_request::reset_mainField2(void)
-{
- if(mainField2)
- delete mainField2;
- mainField2=0;
-}
-
-bool Show_request::set_mainField3(const std::string& mainField3_)
-{
- if(mainField3_.length()>500) return false;
- delete mainField3;
- mainField3=0;
-
- mainField3=new std::string(mainField3_);
- return true;
-}
-
-void Show_request::reset_mainField3(void)
-{
- if(mainField3)
- delete mainField3;
- mainField3=0;
-}
-
-bool Show_request::set_mainField4(const std::string& mainField4_)
-{
- if(mainField4_.length()>500) return false;
- delete mainField4;
- mainField4=0;
-
- mainField4=new std::string(mainField4_);
- return true;
-}
-
-void Show_request::reset_mainField4(void)
-{
- if(mainField4)
- delete mainField4;
- mainField4=0;
-}
-
-bool Show_request::set_alignment(const TextAlignment& alignment_)
-{
- if(!TextAlignmentMarshaller::checkIntegrityConst(alignment_)) return false;
- delete alignment;
- alignment=0;
-
- alignment=new TextAlignment(alignment_);
- return true;
-}
-
-void Show_request::reset_alignment(void)
-{
- if(alignment)
- delete alignment;
- alignment=0;
-}
-
-bool Show_request::set_statusBar(const std::string& statusBar_)
-{
- if(statusBar_.length()>500) return false;
- delete statusBar;
- statusBar=0;
-
- statusBar=new std::string(statusBar_);
- return true;
-}
-
-void Show_request::reset_statusBar(void)
-{
- if(statusBar)
- delete statusBar;
- statusBar=0;
-}
-
-bool Show_request::set_mediaClock(const std::string& mediaClock_)
-{
- if(mediaClock_.length()>500) return false;
- delete mediaClock;
- mediaClock=0;
-
- mediaClock=new std::string(mediaClock_);
- return true;
-}
-
-void Show_request::reset_mediaClock(void)
-{
- if(mediaClock)
- delete mediaClock;
- mediaClock=0;
-}
-
-bool Show_request::set_mediaTrack(const std::string& mediaTrack_)
-{
- if(mediaTrack_.length()>500) return false;
- delete mediaTrack;
- mediaTrack=0;
-
- mediaTrack=new std::string(mediaTrack_);
- return true;
-}
-
-void Show_request::reset_mediaTrack(void)
-{
- if(mediaTrack)
- delete mediaTrack;
- mediaTrack=0;
-}
-
-bool Show_request::set_graphic(const Image& graphic_)
-{
- if(!ImageMarshaller::checkIntegrityConst(graphic_)) return false;
- delete graphic;
- graphic=0;
-
- graphic=new Image(graphic_);
- return true;
-}
-
-void Show_request::reset_graphic(void)
-{
- if(graphic)
- delete graphic;
- graphic=0;
-}
-
-bool Show_request::set_softButtons(const std::vector<SoftButton>& softButtons_)
-{
- unsigned int i=softButtons_.size();
- if(i>8 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(softButtons_[i])) return false;
- }
- delete softButtons;
- softButtons=0;
-
- softButtons=new std::vector<SoftButton>(softButtons_);
- return true;
-}
-
-void Show_request::reset_softButtons(void)
-{
- if(softButtons)
- delete softButtons;
- softButtons=0;
-}
-
-bool Show_request::set_customPresets(const std::vector<std::string>& customPresets_)
-{
- unsigned int i=customPresets_.size();
- if(i>6 || i<0) return false;
- while(i--)
- {
- if(customPresets_[i].length()>500) return false;
- }
- delete customPresets;
- customPresets=0;
-
- customPresets=new std::vector<std::string>(customPresets_);
- return true;
-}
-
-void Show_request::reset_customPresets(void)
-{
- if(customPresets)
- delete customPresets;
- customPresets=0;
-}
-
-
-
-
-const std::string* Show_request::get_mainField1(void) const
-{
- return mainField1;
-}
-
-const std::string* Show_request::get_mainField2(void) const
-{
- return mainField2;
-}
-
-const std::string* Show_request::get_mainField3(void) const
-{
- return mainField3;
-}
-
-const std::string* Show_request::get_mainField4(void) const
-{
- return mainField4;
-}
-
-const TextAlignment* Show_request::get_alignment(void) const
-{
- return alignment;
-}
-
-const std::string* Show_request::get_statusBar(void) const
-{
- return statusBar;
-}
-
-const std::string* Show_request::get_mediaClock(void) const
-{
- return mediaClock;
-}
-
-const std::string* Show_request::get_mediaTrack(void) const
-{
- return mediaTrack;
-}
-
-const Image* Show_request::get_graphic(void) const
-{
- return graphic;
-}
-
-const std::vector<SoftButton>* Show_request::get_softButtons(void) const
-{
- return softButtons;
-}
-
-const std::vector<std::string>* Show_request::get_customPresets(void) const
-{
- return customPresets;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_requestMarshaller.cpp
deleted file mode 100644
index 83eb71e38..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_requestMarshaller.cpp
+++ /dev/null
@@ -1,300 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Show_request.h"
-#include "ImageMarshaller.h"
-#include "SoftButtonMarshaller.h"
-#include "TextAlignmentMarshaller.h"
-
-#include "Show_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool Show_requestMarshaller::checkIntegrity(Show_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Show_requestMarshaller::fromString(const std::string& s,Show_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Show_requestMarshaller::toString(const Show_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Show_requestMarshaller::checkIntegrityConst(const Show_request& s)
-{
- if(s.mainField1 && s.mainField1->length()>500) return false;
- if(s.mainField2 && s.mainField2->length()>500) return false;
- if(s.mainField3 && s.mainField3->length()>500) return false;
- if(s.mainField4 && s.mainField4->length()>500) return false;
- if(s.alignment && !TextAlignmentMarshaller::checkIntegrityConst(*s.alignment)) return false;
- if(s.statusBar && s.statusBar->length()>500) return false;
- if(s.mediaClock && s.mediaClock->length()>500) return false;
- if(s.mediaTrack && s.mediaTrack->length()>500) return false;
- if(s.graphic && !ImageMarshaller::checkIntegrityConst(*s.graphic)) return false;
- if(s.softButtons)
- {
- unsigned int i=s.softButtons[0].size();
- if(i>8 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(s.softButtons[0][i])) return false;
- }
- }
- if(s.customPresets)
- {
- unsigned int i=s.customPresets[0].size();
- if(i>6 || i<0) return false;
- while(i--)
- {
- if(s.customPresets[0][i].length()>500) return false;
- }
- }
- return true;
-}
-
-Json::Value Show_requestMarshaller::toJSON(const Show_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- if(e.mainField1)
- json["mainField1"]=Json::Value(*e.mainField1);
-
- if(e.mainField2)
- json["mainField2"]=Json::Value(*e.mainField2);
-
- if(e.mainField3)
- json["mainField3"]=Json::Value(*e.mainField3);
-
- if(e.mainField4)
- json["mainField4"]=Json::Value(*e.mainField4);
-
- if(e.alignment)
- json["alignment"]=TextAlignmentMarshaller::toJSON(*e.alignment);
-
- if(e.statusBar)
- json["statusBar"]=Json::Value(*e.statusBar);
-
- if(e.mediaClock)
- json["mediaClock"]=Json::Value(*e.mediaClock);
-
- if(e.mediaTrack)
- json["mediaTrack"]=Json::Value(*e.mediaTrack);
-
- if(e.graphic)
- json["graphic"]=ImageMarshaller::toJSON(*e.graphic);
-
- if(e.softButtons)
- {
- unsigned int sz=e.softButtons->size();
- json["softButtons"]=Json::Value(Json::arrayValue);
- json["softButtons"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["softButtons"][i]=SoftButtonMarshaller::toJSON(e.softButtons[0][i]);
- }
-
- if(e.customPresets)
- {
- unsigned int sz=e.customPresets->size();
- json["customPresets"]=Json::Value(Json::arrayValue);
- json["customPresets"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["customPresets"][i]=Json::Value(e.customPresets[0][i]);
- }
-
- return json;
-}
-
-
-bool Show_requestMarshaller::fromJSON(const Json::Value& json,Show_request& c)
-{
- if(c.mainField1) delete c.mainField1;
- c.mainField1=0;
-
- if(c.mainField2) delete c.mainField2;
- c.mainField2=0;
-
- if(c.mainField3) delete c.mainField3;
- c.mainField3=0;
-
- if(c.mainField4) delete c.mainField4;
- c.mainField4=0;
-
- if(c.alignment) delete c.alignment;
- c.alignment=0;
-
- if(c.statusBar) delete c.statusBar;
- c.statusBar=0;
-
- if(c.mediaClock) delete c.mediaClock;
- c.mediaClock=0;
-
- if(c.mediaTrack) delete c.mediaTrack;
- c.mediaTrack=0;
-
- if(c.graphic) delete c.graphic;
- c.graphic=0;
-
- if(c.softButtons) delete c.softButtons;
- c.softButtons=0;
-
- if(c.customPresets) delete c.customPresets;
- c.customPresets=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(json.isMember("mainField1"))
- {
- const Json::Value& j=json["mainField1"];
- if(!j.isString()) return false;
- c.mainField1=new std::string(j.asString());
- }
- if(json.isMember("mainField2"))
- {
- const Json::Value& j=json["mainField2"];
- if(!j.isString()) return false;
- c.mainField2=new std::string(j.asString());
- }
- if(json.isMember("mainField3"))
- {
- const Json::Value& j=json["mainField3"];
- if(!j.isString()) return false;
- c.mainField3=new std::string(j.asString());
- }
- if(json.isMember("mainField4"))
- {
- const Json::Value& j=json["mainField4"];
- if(!j.isString()) return false;
- c.mainField4=new std::string(j.asString());
- }
- if(json.isMember("alignment"))
- {
- const Json::Value& j=json["alignment"];
- c.alignment=new TextAlignment();
- if(!TextAlignmentMarshaller::fromJSON(j,c.alignment[0]))
- return false;
- }
- if(json.isMember("statusBar"))
- {
- const Json::Value& j=json["statusBar"];
- if(!j.isString()) return false;
- c.statusBar=new std::string(j.asString());
- }
- if(json.isMember("mediaClock"))
- {
- const Json::Value& j=json["mediaClock"];
- if(!j.isString()) return false;
- c.mediaClock=new std::string(j.asString());
- }
- if(json.isMember("mediaTrack"))
- {
- const Json::Value& j=json["mediaTrack"];
- if(!j.isString()) return false;
- c.mediaTrack=new std::string(j.asString());
- }
- if(json.isMember("graphic"))
- {
- const Json::Value& j=json["graphic"];
- c.graphic=new Image();
- if(!ImageMarshaller::fromJSON(j,c.graphic[0]))
- return false;
- }
- if(json.isMember("softButtons"))
- {
- const Json::Value& j=json["softButtons"];
- if(!j.isArray()) return false;
- c.softButtons=new std::vector<SoftButton>();
- c.softButtons->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- SoftButton t;
- if(!SoftButtonMarshaller::fromJSON(j[i],t))
- return false;
- c.softButtons[0][i]=t;
- }
-
- }
- if(json.isMember("customPresets"))
- {
- const Json::Value& j=json["customPresets"];
- if(!j.isArray()) return false;
- c.customPresets=new std::vector<std::string>();
- c.customPresets->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.customPresets[0][i]=j[i].asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_requestMarshaller.h
deleted file mode 100644
index 6907f79a0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SHOW_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SHOW_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Show_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct Show_requestMarshaller
- {
- static bool checkIntegrity(Show_request& e);
- static bool checkIntegrityConst(const Show_request& e);
-
- static bool fromString(const std::string& s,Show_request& e);
- static const std::string toString(const Show_request& e);
-
- static bool fromJSON(const Json::Value& s,Show_request& e);
- static Json::Value toJSON(const Show_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_response.cpp
deleted file mode 100644
index 420e8e3d8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Show_response.h"
-#include "Show_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-Show_response& Show_response::operator =(const Show_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-Show_response::~Show_response(void)
-{}
-
-Show_response::Show_response(const Show_response& c)
-{
- *this = c;
-}
-
-bool Show_response::checkIntegrity(void)
-{
- return Show_responseMarshaller::checkIntegrity(*this);
-}
-
-Show_response::Show_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_responseMarshaller.cpp
deleted file mode 100644
index bda81a476..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Show_response.h"
-#include "ResultMarshaller.h"
-
-#include "Show_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool Show_responseMarshaller::checkIntegrity(Show_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Show_responseMarshaller::fromString(const std::string& s,Show_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Show_responseMarshaller::toString(const Show_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Show_responseMarshaller::checkIntegrityConst(const Show_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value Show_responseMarshaller::toJSON(const Show_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool Show_responseMarshaller::fromJSON(const Json::Value& json,Show_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_responseMarshaller.h
deleted file mode 100644
index 5bd3e025d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Show_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SHOW_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SHOW_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Show_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct Show_responseMarshaller
- {
- static bool checkIntegrity(Show_response& e);
- static bool checkIntegrityConst(const Show_response& e);
-
- static bool fromString(const std::string& s,Show_response& e);
- static const std::string toString(const Show_response& e);
-
- static bool fromJSON(const Json::Value& s,Show_response& e);
- static Json::Value toJSON(const Show_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.cpp
deleted file mode 100644
index 12a3a6118..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/SingleTirePressureStatus.h"
-#include "SingleTirePressureStatusMarshaller.h"
-#include "SingleTirePressureStatusMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const SingleTirePressureStatus::SingleTirePressureStatusInternal SingleTirePressureStatusMarshaller::getIndex(const char* s)
-{
- if(!s)
- return SingleTirePressureStatus::INVALID_ENUM;
- const struct PerfectHashTable* p=SingleTirePressureStatus_intHash::getPointer(s,strlen(s));
- return p ? static_cast<SingleTirePressureStatus::SingleTirePressureStatusInternal>(p->idx) : SingleTirePressureStatus::INVALID_ENUM;
-}
-
-
-bool SingleTirePressureStatusMarshaller::fromJSON(const Json::Value& s,SingleTirePressureStatus& e)
-{
- e.mInternal=SingleTirePressureStatus::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=SingleTirePressureStatus::INVALID_ENUM);
-}
-
-
-Json::Value SingleTirePressureStatusMarshaller::toJSON(const SingleTirePressureStatus& e)
-{
- if(e.mInternal==SingleTirePressureStatus::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool SingleTirePressureStatusMarshaller::fromString(const std::string& s,SingleTirePressureStatus& e)
-{
- e.mInternal=SingleTirePressureStatus::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string SingleTirePressureStatusMarshaller::toString(const SingleTirePressureStatus& e)
-{
- Json::FastWriter writer;
- return e.mInternal==SingleTirePressureStatus::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable SingleTirePressureStatusMarshaller::mHashTable[5]=
-{
- {"UNKNOWN",0},
- {"NORMAL",1},
- {"LOW",2},
- {"FAULT",3},
- {"NOT_SUPPORTED",4}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.gp
deleted file mode 100644
index 568cc2b93..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.gp
+++ /dev/null
@@ -1,21 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name SingleTirePressureStatus_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-UNKNOWN,0
-NORMAL,1
-LOW,2
-FAULT,3
-NOT_SUPPORTED,4
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.h
deleted file mode 100644
index c84ebdba8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SINGLETIREPRESSURESTATUSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SINGLETIREPRESSURESTATUSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SingleTirePressureStatus.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for SingleTirePressureStatus
-
- class SingleTirePressureStatusMarshaller
- {
- public:
-
- static std::string toName(const SingleTirePressureStatus& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(SingleTirePressureStatus& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=SingleTirePressureStatus::INVALID_ENUM;
- }
-
- static bool checkIntegrity(SingleTirePressureStatus& e) { return e.mInternal!=SingleTirePressureStatus::INVALID_ENUM; }
- static bool checkIntegrityConst(const SingleTirePressureStatus& e) { return e.mInternal!=SingleTirePressureStatus::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,SingleTirePressureStatus& e);
- static const std::string toString(const SingleTirePressureStatus& e);
-
- static bool fromJSON(const Json::Value& s,SingleTirePressureStatus& e);
- static Json::Value toJSON(const SingleTirePressureStatus& e);
-
- static const char* getName(SingleTirePressureStatus::SingleTirePressureStatusInternal e)
- {
- return (e>=0 && e<5) ? mHashTable[e].name : NULL;
- }
-
- static const SingleTirePressureStatus::SingleTirePressureStatusInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[5];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.inc
deleted file mode 100644
index 1704e4a70..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.inc
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 5
-#define MIN_WORD_LENGTH 3
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 13
-/* maximum key range = 11, duplicates = 0 */
-
-class SingleTirePressureStatus_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-SingleTirePressureStatus_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-SingleTirePressureStatus_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 3, 0, 5, 6, 7, 0, 0, 0, 0, 0, 13
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.gp"
- {"LOW",2},
- {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.gp"
- {"FAULT",3},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.gp"
- {"NORMAL",1},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.gp"
- {"UNKNOWN",0},
- {""}, {""}, {""}, {""}, {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTirePressureStatusMarshaller.gp"
- {"NOT_SUPPORTED",4}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatus.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatus.cpp
deleted file mode 100644
index 997eb9dde..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatus.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SingleTireStatus.h"
-#include "SingleTireStatusMarshaller.h"
-#include "SingleTirePressureStatusMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-SingleTireStatus::SingleTireStatus(const SingleTireStatus& c)
-{
- *this=c;
-}
-
-
-bool SingleTireStatus::checkIntegrity(void)
-{
- return SingleTireStatusMarshaller::checkIntegrity(*this);
-}
-
-
-SingleTireStatus::SingleTireStatus(void)
-{
-}
-
-
-
-bool SingleTireStatus::set_pressure(unsigned int pressure_)
-{
- if(pressure_>255) return false;
- pressure=pressure_;
- return true;
-}
-
-bool SingleTireStatus::set_status(const SingleTirePressureStatus& status_)
-{
- if(!SingleTirePressureStatusMarshaller::checkIntegrityConst(status_)) return false;
- status=status_;
- return true;
-}
-
-
-
-
-unsigned int SingleTireStatus::get_pressure(void) const
-{
- return pressure;
-}
-
-
-const SingleTirePressureStatus& SingleTireStatus::get_status(void) const
-{
- return status;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatusMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatusMarshaller.cpp
deleted file mode 100644
index 445335d5d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatusMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SingleTireStatus.h"
-#include "SingleTirePressureStatusMarshaller.h"
-
-#include "SingleTireStatusMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SingleTireStatusMarshaller::checkIntegrity(SingleTireStatus& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SingleTireStatusMarshaller::fromString(const std::string& s,SingleTireStatus& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SingleTireStatusMarshaller::toString(const SingleTireStatus& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SingleTireStatusMarshaller::checkIntegrityConst(const SingleTireStatus& s)
-{
- if(s.pressure>255) return false;
- if(!SingleTirePressureStatusMarshaller::checkIntegrityConst(s.status)) return false;
- return true;
-}
-
-Json::Value SingleTireStatusMarshaller::toJSON(const SingleTireStatus& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["pressure"]=Json::Value(e.pressure);
-
- json["status"]=SingleTirePressureStatusMarshaller::toJSON(e.status);
-
-
- return json;
-}
-
-
-bool SingleTireStatusMarshaller::fromJSON(const Json::Value& json,SingleTireStatus& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("pressure")) return false;
- {
- const Json::Value& j=json["pressure"];
- if(!j.isInt()) return false;
- c.pressure=j.asInt();
- }
- if(!json.isMember("status")) return false;
- {
- const Json::Value& j=json["status"];
- if(!SingleTirePressureStatusMarshaller::fromJSON(j,c.status))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatusMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatusMarshaller.h
deleted file mode 100644
index 86dc330a9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SingleTireStatusMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SINGLETIRESTATUSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SINGLETIRESTATUSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SingleTireStatus.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SingleTireStatusMarshaller
- {
- static bool checkIntegrity(SingleTireStatus& e);
- static bool checkIntegrityConst(const SingleTireStatus& e);
-
- static bool fromString(const std::string& s,SingleTireStatus& e);
- static const std::string toString(const SingleTireStatus& e);
-
- static bool fromJSON(const Json::Value& s,SingleTireStatus& e);
- static Json::Value toJSON(const SingleTireStatus& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_request.cpp
deleted file mode 100644
index e44ee76c7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_request.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Slider_request.h"
-#include "Slider_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-Slider_request& Slider_request::operator =(const Slider_request& c)
-{
- numTicks= c.numTicks;
- position= c.position;
- sliderHeader= c.sliderHeader;
- sliderFooter= c.sliderFooter ? new std::vector<std::string>(c.sliderFooter[0]) : 0;
- timeout= c.timeout;
-
- return *this;
-}
-
-
-Slider_request::~Slider_request(void)
-{
- if(sliderFooter)
- delete sliderFooter;
-}
-
-
-Slider_request::Slider_request(const Slider_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool Slider_request::checkIntegrity(void)
-{
- return Slider_requestMarshaller::checkIntegrity(*this);
-}
-
-
-Slider_request::Slider_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION),
- sliderFooter(0)
-{
-}
-
-
-
-bool Slider_request::set_numTicks(unsigned int numTicks_)
-{
- if(numTicks_>26) return false;
- if(numTicks_<2) return false;
- numTicks=numTicks_;
- return true;
-}
-
-bool Slider_request::set_position(unsigned int position_)
-{
- if(position_>26) return false;
- if(position_<1) return false;
- position=position_;
- return true;
-}
-
-bool Slider_request::set_sliderHeader(const std::string& sliderHeader_)
-{
- if(sliderHeader_.length()>500) return false;
- sliderHeader=sliderHeader_;
- return true;
-}
-
-bool Slider_request::set_sliderFooter(const std::vector<std::string>& sliderFooter_)
-{
- unsigned int i=sliderFooter_.size();
- if(i>26 || i<1) return false;
- while(i--)
- {
- if(sliderFooter_[i].length()>500) return false;
- }
- delete sliderFooter;
- sliderFooter=0;
-
- sliderFooter=new std::vector<std::string>(sliderFooter_);
- return true;
-}
-
-void Slider_request::reset_sliderFooter(void)
-{
- if(sliderFooter)
- delete sliderFooter;
- sliderFooter=0;
-}
-
-bool Slider_request::set_timeout(unsigned int timeout_)
-{
- if(timeout_>65535) return false;
- timeout=timeout_;
- return true;
-}
-
-
-
-
-unsigned int Slider_request::get_numTicks(void) const
-{
- return numTicks;
-}
-
-unsigned int Slider_request::get_position(void) const
-{
- return position;
-}
-
-const std::string& Slider_request::get_sliderHeader(void) const
-{
- return sliderHeader;
-}
-
-const std::vector<std::string>* Slider_request::get_sliderFooter(void) const
-{
- return sliderFooter;
-}
-
-unsigned int Slider_request::get_timeout(void) const
-{
- return timeout;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_requestMarshaller.cpp
deleted file mode 100644
index ee7808a65..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_requestMarshaller.cpp
+++ /dev/null
@@ -1,181 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Slider_request.h"
-
-
-#include "Slider_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool Slider_requestMarshaller::checkIntegrity(Slider_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Slider_requestMarshaller::fromString(const std::string& s,Slider_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Slider_requestMarshaller::toString(const Slider_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Slider_requestMarshaller::checkIntegrityConst(const Slider_request& s)
-{
- if(s.numTicks>26) return false;
- if(s.numTicks<2) return false;
- if(s.position>26) return false;
- if(s.position<1) return false;
- if(s.sliderHeader.length()>500) return false;
- if(s.sliderFooter)
- {
- unsigned int i=s.sliderFooter[0].size();
- if(i>26 || i<1) return false;
- while(i--)
- {
- if(s.sliderFooter[0][i].length()>500) return false;
- }
- }
- if(s.timeout>65535) return false;
- return true;
-}
-
-Json::Value Slider_requestMarshaller::toJSON(const Slider_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["numTicks"]=Json::Value(e.numTicks);
-
- json["position"]=Json::Value(e.position);
-
- json["sliderHeader"]=Json::Value(e.sliderHeader);
-
- if(e.sliderFooter)
- {
- unsigned int sz=e.sliderFooter->size();
- json["sliderFooter"]=Json::Value(Json::arrayValue);
- json["sliderFooter"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["sliderFooter"][i]=Json::Value(e.sliderFooter[0][i]);
- }
-
- json["timeout"]=Json::Value(e.timeout);
-
- return json;
-}
-
-
-bool Slider_requestMarshaller::fromJSON(const Json::Value& json,Slider_request& c)
-{
- if(c.sliderFooter) delete c.sliderFooter;
- c.sliderFooter=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("numTicks")) return false;
- {
- const Json::Value& j=json["numTicks"];
- if(!j.isInt()) return false;
- c.numTicks=j.asInt();
- }
- if(!json.isMember("position")) return false;
- {
- const Json::Value& j=json["position"];
- if(!j.isInt()) return false;
- c.position=j.asInt();
- }
- if(!json.isMember("sliderHeader")) return false;
- {
- const Json::Value& j=json["sliderHeader"];
- if(!j.isString()) return false;
- c.sliderHeader=j.asString();
- }
- if(json.isMember("sliderFooter"))
- {
- const Json::Value& j=json["sliderFooter"];
- if(!j.isArray()) return false;
- c.sliderFooter=new std::vector<std::string>();
- c.sliderFooter->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- if(!j[i].isString())
- return false;
- else
- c.sliderFooter[0][i]=j[i].asString();
- }
- if(!json.isMember("timeout")) return false;
- {
- const Json::Value& j=json["timeout"];
- if(!j.isInt()) return false;
- c.timeout=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_requestMarshaller.h
deleted file mode 100644
index 65baf68c1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SLIDER_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SLIDER_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Slider_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct Slider_requestMarshaller
- {
- static bool checkIntegrity(Slider_request& e);
- static bool checkIntegrityConst(const Slider_request& e);
-
- static bool fromString(const std::string& s,Slider_request& e);
- static const std::string toString(const Slider_request& e);
-
- static bool fromJSON(const Json::Value& s,Slider_request& e);
- static Json::Value toJSON(const Slider_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_response.cpp
deleted file mode 100644
index 6c9bc9a64..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_response.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Slider_response.h"
-#include "Slider_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-Slider_response& Slider_response::operator =(const Slider_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- sliderPosition = c.sliderPosition;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-Slider_response::~Slider_response(void)
-{}
-
-Slider_response::Slider_response(const Slider_response& c)
-{
- *this = c;
-}
-
-bool Slider_response::checkIntegrity(void)
-{
- return Slider_responseMarshaller::checkIntegrity(*this);
-}
-
-Slider_response::Slider_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
- , sliderPosition(1)
-{}
-
-bool Slider_response::set_sliderPosition(unsigned int sliderPosition_)
-{
- if (sliderPosition_ > 26)
- {
- return false;
- }
- if (sliderPosition_ < 1)
- {
- return false;
- }
- sliderPosition = sliderPosition_;
- return true;
-}
-
-unsigned int Slider_response::get_sliderPosition(void) const
-{
- return sliderPosition;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_responseMarshaller.cpp
deleted file mode 100644
index 4632270b7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_responseMarshaller.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Slider_response.h"
-#include "ResultMarshaller.h"
-
-#include "Slider_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool Slider_responseMarshaller::checkIntegrity(Slider_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Slider_responseMarshaller::fromString(const std::string& s,Slider_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Slider_responseMarshaller::toString(const Slider_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Slider_responseMarshaller::checkIntegrityConst(const Slider_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.sliderPosition>26) return false;
- if(s.sliderPosition<1) return false;
- return true;
-}
-
-Json::Value Slider_responseMarshaller::toJSON(const Slider_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- json["sliderPosition"]=Json::Value(e.sliderPosition);
-
- return json;
-}
-
-
-bool Slider_responseMarshaller::fromJSON(const Json::Value& json,Slider_response& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(!json.isMember("sliderPosition")) return false;
- {
- const Json::Value& j=json["sliderPosition"];
- if(!j.isInt()) return false;
- c.sliderPosition=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_responseMarshaller.h
deleted file mode 100644
index 52da1caac..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Slider_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SLIDER_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SLIDER_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Slider_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct Slider_responseMarshaller
- {
- static bool checkIntegrity(Slider_response& e);
- static bool checkIntegrityConst(const Slider_response& e);
-
- static bool fromString(const std::string& s,Slider_response& e);
- static const std::string toString(const Slider_response& e);
-
- static bool fromJSON(const Json::Value& s,Slider_response& e);
- static Json::Value toJSON(const Slider_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButton.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButton.cpp
deleted file mode 100644
index f10929c19..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButton.cpp
+++ /dev/null
@@ -1,192 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButton.h"
-#include "SoftButtonMarshaller.h"
-#include "ImageMarshaller.h"
-#include "SoftButtonTypeMarshaller.h"
-#include "SystemActionMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-SoftButton& SoftButton::operator =(const SoftButton& c)
-{
- image=c.image ? new Image(c.image[0]) : 0;
- isHighlighted=c.isHighlighted;
- softButtonID=c.softButtonID;
- systemAction=c.systemAction;
- text=c.text ? new std::string(c.text[0]) : 0;
- type=c.type;
-
- return *this;
-}
-
-
-SoftButton::~SoftButton(void)
-{
- if(image)
- delete image;
- if(text)
- delete text;
-}
-
-
-SoftButton::SoftButton(const SoftButton& c)
-{
- *this=c;
-}
-
-
-bool SoftButton::checkIntegrity(void)
-{
- return SoftButtonMarshaller::checkIntegrity(*this);
-}
-
-
-SoftButton::SoftButton(void) :
- image(0),
- text(0)
-{
-}
-
-
-
-bool SoftButton::set_image(const Image& image_)
-{
- if(!ImageMarshaller::checkIntegrityConst(image_)) return false;
- delete image;
- image=0;
-
- image=new Image(image_);
- return true;
-}
-
-void SoftButton::reset_image(void)
-{
- if(image)
- delete image;
- image=0;
-}
-
-bool SoftButton::set_isHighlighted(bool isHighlighted_)
-{
- isHighlighted=isHighlighted_;
- return true;
-}
-
-bool SoftButton::set_softButtonID(unsigned int softButtonID_)
-{
- if(softButtonID_>65536) return false;
- softButtonID=softButtonID_;
- return true;
-}
-
-bool SoftButton::set_systemAction(const SystemAction& systemAction_)
-{
- if(!SystemActionMarshaller::checkIntegrityConst(systemAction_)) return false;
- systemAction=systemAction_;
- return true;
-}
-
-bool SoftButton::set_text(const std::string& text_)
-{
- if(text_.length()>500) return false;
- delete text;
- text=0;
-
- text=new std::string(text_);
- return true;
-}
-
-void SoftButton::reset_text(void)
-{
- if(text)
- delete text;
- text=0;
-}
-
-bool SoftButton::set_type(const SoftButtonType& type_)
-{
- if(!SoftButtonTypeMarshaller::checkIntegrityConst(type_)) return false;
- type=type_;
- return true;
-}
-
-
-
-
-const Image* SoftButton::get_image(void) const
-{
- return image;
-}
-
-
-bool SoftButton::get_isHighlighted(void) const
-{
- return isHighlighted;
-}
-
-
-unsigned int SoftButton::get_softButtonID(void) const
-{
- return softButtonID;
-}
-
-
-const SystemAction& SoftButton::get_systemAction(void) const
-{
- return systemAction;
-}
-
-
-const std::string* SoftButton::get_text(void) const
-{
- return text;
-}
-
-
-const SoftButtonType& SoftButton::get_type(void) const
-{
- return type;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilities.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilities.cpp
deleted file mode 100644
index 283a6ba4e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilities.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButtonCapabilities.h"
-#include "SoftButtonCapabilitiesMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-SoftButtonCapabilities::SoftButtonCapabilities(const SoftButtonCapabilities& c)
-{
- *this=c;
-}
-
-
-bool SoftButtonCapabilities::checkIntegrity(void)
-{
- return SoftButtonCapabilitiesMarshaller::checkIntegrity(*this);
-}
-
-
-SoftButtonCapabilities::SoftButtonCapabilities(void)
-{
-}
-
-
-
-bool SoftButtonCapabilities::set_imageSupported(bool imageSupported_)
-{
- imageSupported=imageSupported_;
- return true;
-}
-
-bool SoftButtonCapabilities::set_longPressAvailable(bool longPressAvailable_)
-{
- longPressAvailable=longPressAvailable_;
- return true;
-}
-
-bool SoftButtonCapabilities::set_shortPressAvailable(bool shortPressAvailable_)
-{
- shortPressAvailable=shortPressAvailable_;
- return true;
-}
-
-bool SoftButtonCapabilities::set_upDownAvailable(bool upDownAvailable_)
-{
- upDownAvailable=upDownAvailable_;
- return true;
-}
-
-
-
-
-bool SoftButtonCapabilities::get_imageSupported(void) const
-{
- return imageSupported;
-}
-
-
-bool SoftButtonCapabilities::get_longPressAvailable(void) const
-{
- return longPressAvailable;
-}
-
-
-bool SoftButtonCapabilities::get_shortPressAvailable(void) const
-{
- return shortPressAvailable;
-}
-
-
-bool SoftButtonCapabilities::get_upDownAvailable(void) const
-{
- return upDownAvailable;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilitiesMarshaller.cpp
deleted file mode 100644
index fe0b0ac68..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButtonCapabilities.h"
-
-
-#include "SoftButtonCapabilitiesMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SoftButtonCapabilitiesMarshaller::checkIntegrity(SoftButtonCapabilities& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SoftButtonCapabilitiesMarshaller::fromString(const std::string& s,SoftButtonCapabilities& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SoftButtonCapabilitiesMarshaller::toString(const SoftButtonCapabilities& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SoftButtonCapabilitiesMarshaller::checkIntegrityConst(const SoftButtonCapabilities& s)
-{
- return true;
-}
-
-Json::Value SoftButtonCapabilitiesMarshaller::toJSON(const SoftButtonCapabilities& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["imageSupported"]=Json::Value(e.imageSupported);
-
- json["longPressAvailable"]=Json::Value(e.longPressAvailable);
-
- json["shortPressAvailable"]=Json::Value(e.shortPressAvailable);
-
- json["upDownAvailable"]=Json::Value(e.upDownAvailable);
-
-
- return json;
-}
-
-
-bool SoftButtonCapabilitiesMarshaller::fromJSON(const Json::Value& json,SoftButtonCapabilities& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("imageSupported")) return false;
- {
- const Json::Value& j=json["imageSupported"];
- if(!j.isBool()) return false;
- c.imageSupported=j.asBool();
- }
- if(!json.isMember("longPressAvailable")) return false;
- {
- const Json::Value& j=json["longPressAvailable"];
- if(!j.isBool()) return false;
- c.longPressAvailable=j.asBool();
- }
- if(!json.isMember("shortPressAvailable")) return false;
- {
- const Json::Value& j=json["shortPressAvailable"];
- if(!j.isBool()) return false;
- c.shortPressAvailable=j.asBool();
- }
- if(!json.isMember("upDownAvailable")) return false;
- {
- const Json::Value& j=json["upDownAvailable"];
- if(!j.isBool()) return false;
- c.upDownAvailable=j.asBool();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilitiesMarshaller.h
deleted file mode 100644
index 1393dcedd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SOFTBUTTONCAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SOFTBUTTONCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButtonCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SoftButtonCapabilitiesMarshaller
- {
- static bool checkIntegrity(SoftButtonCapabilities& e);
- static bool checkIntegrityConst(const SoftButtonCapabilities& e);
-
- static bool fromString(const std::string& s,SoftButtonCapabilities& e);
- static const std::string toString(const SoftButtonCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,SoftButtonCapabilities& e);
- static Json::Value toJSON(const SoftButtonCapabilities& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.cpp
deleted file mode 100644
index 7703cd5ba..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButton.h"
-#include "ImageMarshaller.h"
-#include "SoftButtonTypeMarshaller.h"
-#include "SystemActionMarshaller.h"
-
-#include "SoftButtonMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SoftButtonMarshaller::checkIntegrity(SoftButton& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SoftButtonMarshaller::fromString(const std::string& s,SoftButton& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SoftButtonMarshaller::toString(const SoftButton& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SoftButtonMarshaller::checkIntegrityConst(const SoftButton& s)
-{
- if(s.image && !ImageMarshaller::checkIntegrityConst(*s.image)) return false;
- if(s.softButtonID>65536) return false;
- if(!SystemActionMarshaller::checkIntegrityConst(s.systemAction)) return false;
- if(s.text && s.text->length()>500) return false;
- if(!SoftButtonTypeMarshaller::checkIntegrityConst(s.type)) return false;
- return true;
-}
-
-Json::Value SoftButtonMarshaller::toJSON(const SoftButton& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- if(e.image)
- json["image"]=ImageMarshaller::toJSON(*e.image);
-
- json["isHighlighted"]=Json::Value(e.isHighlighted);
-
- json["softButtonID"]=Json::Value(e.softButtonID);
-
- json["systemAction"]=SystemActionMarshaller::toJSON(e.systemAction);
-
- if(e.text)
- json["text"]=Json::Value(*e.text);
-
- json["type"]=SoftButtonTypeMarshaller::toJSON(e.type);
-
-
- return json;
-}
-
-
-bool SoftButtonMarshaller::fromJSON(const Json::Value& json,SoftButton& c)
-{
- if(c.image) delete c.image;
- c.image=0;
-
- if(c.text) delete c.text;
- c.text=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(json.isMember("image"))
- {
- const Json::Value& j=json["image"];
- c.image=new Image();
- if(!ImageMarshaller::fromJSON(j,c.image[0]))
- return false;
- }
- if(!json.isMember("isHighlighted")) return false;
- {
- const Json::Value& j=json["isHighlighted"];
- if(!j.isBool()) return false;
- c.isHighlighted=j.asBool();
- }
- if(!json.isMember("softButtonID")) return false;
- {
- const Json::Value& j=json["softButtonID"];
- if(!j.isInt()) return false;
- c.softButtonID=j.asInt();
- }
- if(!json.isMember("systemAction")) return false;
- {
- const Json::Value& j=json["systemAction"];
- if(!SystemActionMarshaller::fromJSON(j,c.systemAction))
- return false;
- }
- if(json.isMember("text"))
- {
- const Json::Value& j=json["text"];
- if(!j.isString()) return false;
- c.text=new std::string(j.asString());
- }
- if(!json.isMember("type")) return false;
- {
- const Json::Value& j=json["type"];
- if(!SoftButtonTypeMarshaller::fromJSON(j,c.type))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.h
deleted file mode 100644
index f764924e7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SOFTBUTTONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SOFTBUTTONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButton.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SoftButtonMarshaller
- {
- static bool checkIntegrity(SoftButton& e);
- static bool checkIntegrityConst(const SoftButton& e);
-
- static bool fromString(const std::string& s,SoftButton& e);
- static const std::string toString(const SoftButton& e);
-
- static bool fromJSON(const Json::Value& s,SoftButton& e);
- static Json::Value toJSON(const SoftButton& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.cpp
deleted file mode 100644
index b619485ff..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButtonType.h"
-#include "SoftButtonTypeMarshaller.h"
-#include "SoftButtonTypeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const SoftButtonType::SoftButtonTypeInternal SoftButtonTypeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return SoftButtonType::INVALID_ENUM;
- const struct PerfectHashTable* p=SoftButtonType_intHash::getPointer(s,strlen(s));
- return p ? static_cast<SoftButtonType::SoftButtonTypeInternal>(p->idx) : SoftButtonType::INVALID_ENUM;
-}
-
-
-bool SoftButtonTypeMarshaller::fromJSON(const Json::Value& s,SoftButtonType& e)
-{
- e.mInternal=SoftButtonType::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=SoftButtonType::INVALID_ENUM);
-}
-
-
-Json::Value SoftButtonTypeMarshaller::toJSON(const SoftButtonType& e)
-{
- if(e.mInternal==SoftButtonType::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool SoftButtonTypeMarshaller::fromString(const std::string& s,SoftButtonType& e)
-{
- e.mInternal=SoftButtonType::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string SoftButtonTypeMarshaller::toString(const SoftButtonType& e)
-{
- Json::FastWriter writer;
- return e.mInternal==SoftButtonType::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable SoftButtonTypeMarshaller::mHashTable[3]=
-{
- {"TEXT",0},
- {"IMAGE",1},
- {"BOTH",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.gp
deleted file mode 100644
index 82c64ce89..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name SoftButtonType_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-TEXT,0
-IMAGE,1
-BOTH,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.h
deleted file mode 100644
index 0ed4ea81e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SOFTBUTTONTYPEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SOFTBUTTONTYPEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SoftButtonType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for SoftButtonType
-
- class SoftButtonTypeMarshaller
- {
- public:
-
- static std::string toName(const SoftButtonType& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(SoftButtonType& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=SoftButtonType::INVALID_ENUM;
- }
-
- static bool checkIntegrity(SoftButtonType& e) { return e.mInternal!=SoftButtonType::INVALID_ENUM; }
- static bool checkIntegrityConst(const SoftButtonType& e) { return e.mInternal!=SoftButtonType::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,SoftButtonType& e);
- static const std::string toString(const SoftButtonType& e);
-
- static bool fromJSON(const Json::Value& s,SoftButtonType& e);
- static Json::Value toJSON(const SoftButtonType& e);
-
- static const char* getName(SoftButtonType::SoftButtonTypeInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const SoftButtonType::SoftButtonTypeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.inc
deleted file mode 100644
index a731d73ae..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.inc
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.gp */
-/* Computed positions: -k'1' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 5
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 6
-/* maximum key range = 3, duplicates = 0 */
-
-class SoftButtonType_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-SoftButtonType_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 2, 7, 7, 7,
- 7, 7, 7, 0, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 0, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7
- };
- return len + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-SoftButtonType_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 5, 4
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.gp"
- {"TEXT",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.gp"
- {"IMAGE",1},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SoftButtonTypeMarshaller.gp"
- {"BOTH",2}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_request.cpp
deleted file mode 100644
index 0ff3ce723..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_request.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Speak_request.h"
-#include "Speak_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "TTSChunkMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-Speak_request::~Speak_request(void)
-{
-}
-
-
-Speak_request::Speak_request(const Speak_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool Speak_request::checkIntegrity(void)
-{
- return Speak_requestMarshaller::checkIntegrity(*this);
-}
-
-
-Speak_request::Speak_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool Speak_request::set_ttsChunks(const std::vector<TTSChunk>& ttsChunks_)
-{
- unsigned int i=ttsChunks_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(ttsChunks_[i])) return false;
- }
- ttsChunks=ttsChunks_;
- return true;
-}
-
-
-
-
-const std::vector<TTSChunk>& Speak_request::get_ttsChunks(void) const
-{
- return ttsChunks;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_requestMarshaller.cpp
deleted file mode 100644
index 615d1419d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_requestMarshaller.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Speak_request.h"
-#include "TTSChunkMarshaller.h"
-
-#include "Speak_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool Speak_requestMarshaller::checkIntegrity(Speak_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Speak_requestMarshaller::fromString(const std::string& s,Speak_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Speak_requestMarshaller::toString(const Speak_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Speak_requestMarshaller::checkIntegrityConst(const Speak_request& s)
-{
- {
- unsigned int i=s.ttsChunks.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TTSChunkMarshaller::checkIntegrityConst(s.ttsChunks[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value Speak_requestMarshaller::toJSON(const Speak_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["ttsChunks"]=Json::Value(Json::arrayValue);
- json["ttsChunks"].resize(e.ttsChunks.size());
- for(unsigned int i=0;i<e.ttsChunks.size();i++)
- json["ttsChunks"][i]=TTSChunkMarshaller::toJSON(e.ttsChunks[i]);
-
- return json;
-}
-
-
-bool Speak_requestMarshaller::fromJSON(const Json::Value& json,Speak_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("ttsChunks")) return false;
- {
- const Json::Value& j=json["ttsChunks"];
- if(!j.isArray()) return false;
- c.ttsChunks.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- TTSChunk t;
- if(!TTSChunkMarshaller::fromJSON(j[i],t))
- return false;
- c.ttsChunks[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_requestMarshaller.h
deleted file mode 100644
index 004d2f48c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SPEAK_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SPEAK_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Speak_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct Speak_requestMarshaller
- {
- static bool checkIntegrity(Speak_request& e);
- static bool checkIntegrityConst(const Speak_request& e);
-
- static bool fromString(const std::string& s,Speak_request& e);
- static const std::string toString(const Speak_request& e);
-
- static bool fromJSON(const Json::Value& s,Speak_request& e);
- static Json::Value toJSON(const Speak_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_response.cpp
deleted file mode 100644
index dc90020c2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Speak_response.h"
-#include "Speak_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-Speak_response& Speak_response::operator =(const Speak_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-Speak_response::~Speak_response(void)
-{}
-
-Speak_response::Speak_response(const Speak_response& c)
-{
- *this = c;
-}
-
-bool Speak_response::checkIntegrity(void)
-{
- return Speak_responseMarshaller::checkIntegrity(*this);
-}
-
-Speak_response::Speak_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_responseMarshaller.cpp
deleted file mode 100644
index a7be924ad..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Speak_response.h"
-#include "ResultMarshaller.h"
-
-#include "Speak_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool Speak_responseMarshaller::checkIntegrity(Speak_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool Speak_responseMarshaller::fromString(const std::string& s,Speak_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string Speak_responseMarshaller::toString(const Speak_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool Speak_responseMarshaller::checkIntegrityConst(const Speak_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value Speak_responseMarshaller::toJSON(const Speak_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool Speak_responseMarshaller::fromJSON(const Json::Value& json,Speak_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_responseMarshaller.h
deleted file mode 100644
index 26a3f94b6..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Speak_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SPEAK_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SPEAK_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Speak_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct Speak_responseMarshaller
- {
- static bool checkIntegrity(Speak_response& e);
- static bool checkIntegrityConst(const Speak_response& e);
-
- static bool fromString(const std::string& s,Speak_response& e);
- static const std::string toString(const Speak_response& e);
-
- static bool fromJSON(const Json::Value& s,Speak_response& e);
- static Json::Value toJSON(const Speak_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.cpp
deleted file mode 100644
index 6cea815e1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/SpeechCapabilities.h"
-#include "SpeechCapabilitiesMarshaller.h"
-#include "SpeechCapabilitiesMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const SpeechCapabilities::SpeechCapabilitiesInternal SpeechCapabilitiesMarshaller::getIndex(const char* s)
-{
- if(!s)
- return SpeechCapabilities::INVALID_ENUM;
- const struct PerfectHashTable* p=SpeechCapabilities_intHash::getPointer(s,strlen(s));
- return p ? static_cast<SpeechCapabilities::SpeechCapabilitiesInternal>(p->idx) : SpeechCapabilities::INVALID_ENUM;
-}
-
-
-bool SpeechCapabilitiesMarshaller::fromJSON(const Json::Value& s,SpeechCapabilities& e)
-{
- e.mInternal=SpeechCapabilities::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=SpeechCapabilities::INVALID_ENUM);
-}
-
-
-Json::Value SpeechCapabilitiesMarshaller::toJSON(const SpeechCapabilities& e)
-{
- if(e.mInternal==SpeechCapabilities::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool SpeechCapabilitiesMarshaller::fromString(const std::string& s,SpeechCapabilities& e)
-{
- e.mInternal=SpeechCapabilities::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string SpeechCapabilitiesMarshaller::toString(const SpeechCapabilities& e)
-{
- Json::FastWriter writer;
- return e.mInternal==SpeechCapabilities::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable SpeechCapabilitiesMarshaller::mHashTable[5]=
-{
- {"TEXT",0},
- {"SAPI_PHONEMES",1},
- {"LHPLUS_PHONEMES",2},
- {"PRE_RECORDED",3},
- {"SILENCE",4}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.gp
deleted file mode 100644
index 02e38136f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.gp
+++ /dev/null
@@ -1,21 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name SpeechCapabilities_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-TEXT,0
-SAPI_PHONEMES,1
-LHPLUS_PHONEMES,2
-PRE_RECORDED,3
-SILENCE,4
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.h
deleted file mode 100644
index ca4059b95..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SPEECHCAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SPEECHCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SpeechCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for SpeechCapabilities
-
- class SpeechCapabilitiesMarshaller
- {
- public:
-
- static std::string toName(const SpeechCapabilities& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(SpeechCapabilities& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=SpeechCapabilities::INVALID_ENUM;
- }
-
- static bool checkIntegrity(SpeechCapabilities& e) { return e.mInternal!=SpeechCapabilities::INVALID_ENUM; }
- static bool checkIntegrityConst(const SpeechCapabilities& e) { return e.mInternal!=SpeechCapabilities::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,SpeechCapabilities& e);
- static const std::string toString(const SpeechCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,SpeechCapabilities& e);
- static Json::Value toJSON(const SpeechCapabilities& e);
-
- static const char* getName(SpeechCapabilities::SpeechCapabilitiesInternal e)
- {
- return (e>=0 && e<5) ? mHashTable[e].name : NULL;
- }
-
- static const SpeechCapabilities::SpeechCapabilitiesInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[5];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.inc
deleted file mode 100644
index 9e89e0020..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.inc
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 5
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 15
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 15
-/* maximum key range = 12, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class SpeechCapabilities_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-SpeechCapabilities_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-SpeechCapabilities_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 0, 0, 7, 0, 0, 0, 0, 12, 13,
- 0, 15
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.gp"
- {"TEXT",0},
- {""}, {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.gp"
- {"SILENCE",4},
- {""}, {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.gp"
- {"PRE_RECORDED",3},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.gp"
- {"SAPI_PHONEMES",1},
- {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SpeechCapabilitiesMarshaller.gp"
- {"LHPLUS_PHONEMES",2}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTime.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTime.cpp
deleted file mode 100644
index b476a0c22..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTime.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/StartTime.h"
-#include "StartTimeMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-StartTime::StartTime(const StartTime& c)
-{
- *this=c;
-}
-
-
-bool StartTime::checkIntegrity(void)
-{
- return StartTimeMarshaller::checkIntegrity(*this);
-}
-
-
-StartTime::StartTime(void)
-{
-}
-
-
-
-bool StartTime::set_hours(unsigned int hours_)
-{
- if(hours_>59) return false;
- hours=hours_;
- return true;
-}
-
-bool StartTime::set_minutes(unsigned int minutes_)
-{
- if(minutes_>59) return false;
- minutes=minutes_;
- return true;
-}
-
-bool StartTime::set_seconds(unsigned int seconds_)
-{
- if(seconds_>59) return false;
- seconds=seconds_;
- return true;
-}
-
-
-
-
-unsigned int StartTime::get_hours(void) const
-{
- return hours;
-}
-
-
-unsigned int StartTime::get_minutes(void) const
-{
- return minutes;
-}
-
-
-unsigned int StartTime::get_seconds(void) const
-{
- return seconds;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTimeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTimeMarshaller.cpp
deleted file mode 100644
index 1e1cced84..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTimeMarshaller.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/StartTime.h"
-
-
-#include "StartTimeMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool StartTimeMarshaller::checkIntegrity(StartTime& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool StartTimeMarshaller::fromString(const std::string& s,StartTime& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string StartTimeMarshaller::toString(const StartTime& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool StartTimeMarshaller::checkIntegrityConst(const StartTime& s)
-{
- if(s.hours>59) return false;
- if(s.minutes>59) return false;
- if(s.seconds>59) return false;
- return true;
-}
-
-Json::Value StartTimeMarshaller::toJSON(const StartTime& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["hours"]=Json::Value(e.hours);
-
- json["minutes"]=Json::Value(e.minutes);
-
- json["seconds"]=Json::Value(e.seconds);
-
-
- return json;
-}
-
-
-bool StartTimeMarshaller::fromJSON(const Json::Value& json,StartTime& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("hours")) return false;
- {
- const Json::Value& j=json["hours"];
- if(!j.isInt()) return false;
- c.hours=j.asInt();
- }
- if(!json.isMember("minutes")) return false;
- {
- const Json::Value& j=json["minutes"];
- if(!j.isInt()) return false;
- c.minutes=j.asInt();
- }
- if(!json.isMember("seconds")) return false;
- {
- const Json::Value& j=json["seconds"];
- if(!j.isInt()) return false;
- c.seconds=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTimeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTimeMarshaller.h
deleted file mode 100644
index 59d8c09c5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/StartTimeMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_STARTTIMEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_STARTTIMEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/StartTime.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct StartTimeMarshaller
- {
- static bool checkIntegrity(StartTime& e);
- static bool checkIntegrityConst(const StartTime& e);
-
- static bool fromString(const std::string& s,StartTime& e);
- static const std::string toString(const StartTime& e);
-
- static bool fromJSON(const Json::Value& s,StartTime& e);
- static Json::Value toJSON(const StartTime& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_request.cpp
deleted file mode 100644
index bf1d4eb0b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_request.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_request.h"
-#include "SubscribeButton_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "ButtonNameMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-SubscribeButton_request::~SubscribeButton_request(void)
-{
-}
-
-
-SubscribeButton_request::SubscribeButton_request(const SubscribeButton_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool SubscribeButton_request::checkIntegrity(void)
-{
- return SubscribeButton_requestMarshaller::checkIntegrity(*this);
-}
-
-
-SubscribeButton_request::SubscribeButton_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool SubscribeButton_request::set_buttonName(const ButtonName& buttonName_)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(buttonName_)) return false;
- buttonName=buttonName_;
- return true;
-}
-
-
-
-
-const ButtonName& SubscribeButton_request::get_buttonName(void) const
-{
- return buttonName;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_requestMarshaller.cpp
deleted file mode 100644
index 516f5a081..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_requestMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_request.h"
-#include "ButtonNameMarshaller.h"
-
-#include "SubscribeButton_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SubscribeButton_requestMarshaller::checkIntegrity(SubscribeButton_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SubscribeButton_requestMarshaller::fromString(const std::string& s,SubscribeButton_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SubscribeButton_requestMarshaller::toString(const SubscribeButton_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SubscribeButton_requestMarshaller::checkIntegrityConst(const SubscribeButton_request& s)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(s.buttonName)) return false;
- return true;
-}
-
-Json::Value SubscribeButton_requestMarshaller::toJSON(const SubscribeButton_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["buttonName"]=ButtonNameMarshaller::toJSON(e.buttonName);
-
- return json;
-}
-
-
-bool SubscribeButton_requestMarshaller::fromJSON(const Json::Value& json,SubscribeButton_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("buttonName")) return false;
- {
- const Json::Value& j=json["buttonName"];
- if(!ButtonNameMarshaller::fromJSON(j,c.buttonName))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_requestMarshaller.h
deleted file mode 100644
index b3359b42d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SUBSCRIBEBUTTON_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SUBSCRIBEBUTTON_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SubscribeButton_requestMarshaller
- {
- static bool checkIntegrity(SubscribeButton_request& e);
- static bool checkIntegrityConst(const SubscribeButton_request& e);
-
- static bool fromString(const std::string& s,SubscribeButton_request& e);
- static const std::string toString(const SubscribeButton_request& e);
-
- static bool fromJSON(const Json::Value& s,SubscribeButton_request& e);
- static Json::Value toJSON(const SubscribeButton_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_response.cpp
deleted file mode 100644
index cc290cd3c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_response.h"
-#include "SubscribeButton_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-SubscribeButton_response& SubscribeButton_response::operator =(const SubscribeButton_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-SubscribeButton_response::~SubscribeButton_response(void)
-{}
-
-SubscribeButton_response::SubscribeButton_response(const SubscribeButton_response& c)
-{
- *this = c;
-}
-
-bool SubscribeButton_response::checkIntegrity(void)
-{
- return SubscribeButton_responseMarshaller::checkIntegrity(*this);
-}
-
-SubscribeButton_response::SubscribeButton_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_responseMarshaller.cpp
deleted file mode 100644
index 24e3ed158..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_response.h"
-#include "ResultMarshaller.h"
-
-#include "SubscribeButton_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SubscribeButton_responseMarshaller::checkIntegrity(SubscribeButton_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SubscribeButton_responseMarshaller::fromString(const std::string& s,SubscribeButton_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SubscribeButton_responseMarshaller::toString(const SubscribeButton_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SubscribeButton_responseMarshaller::checkIntegrityConst(const SubscribeButton_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value SubscribeButton_responseMarshaller::toJSON(const SubscribeButton_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool SubscribeButton_responseMarshaller::fromJSON(const Json::Value& json,SubscribeButton_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_responseMarshaller.h
deleted file mode 100644
index 4f2fd202a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeButton_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SUBSCRIBEBUTTON_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SUBSCRIBEBUTTON_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeButton_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SubscribeButton_responseMarshaller
- {
- static bool checkIntegrity(SubscribeButton_response& e);
- static bool checkIntegrityConst(const SubscribeButton_response& e);
-
- static bool fromString(const std::string& s,SubscribeButton_response& e);
- static const std::string toString(const SubscribeButton_response& e);
-
- static bool fromJSON(const Json::Value& s,SubscribeButton_response& e);
- static Json::Value toJSON(const SubscribeButton_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_request.cpp
deleted file mode 100644
index 40c7fbfb7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_request.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_request.h"
-#include "SubscribeVehicleData_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "VehicleDataTypeMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-SubscribeVehicleData_request::~SubscribeVehicleData_request(void)
-{
-}
-
-
-SubscribeVehicleData_request::SubscribeVehicleData_request(const SubscribeVehicleData_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool SubscribeVehicleData_request::checkIntegrity(void)
-{
- return SubscribeVehicleData_requestMarshaller::checkIntegrity(*this);
-}
-
-
-SubscribeVehicleData_request::SubscribeVehicleData_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool SubscribeVehicleData_request::set_dataType(const std::vector<VehicleDataType>& dataType_)
-{
- unsigned int i=dataType_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VehicleDataTypeMarshaller::checkIntegrityConst(dataType_[i])) return false;
- }
- dataType=dataType_;
- return true;
-}
-
-
-
-
-const std::vector<VehicleDataType>& SubscribeVehicleData_request::get_dataType(void) const
-{
- return dataType;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_requestMarshaller.cpp
deleted file mode 100644
index a5d9e6d58..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_requestMarshaller.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_request.h"
-#include "VehicleDataTypeMarshaller.h"
-
-#include "SubscribeVehicleData_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SubscribeVehicleData_requestMarshaller::checkIntegrity(SubscribeVehicleData_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SubscribeVehicleData_requestMarshaller::fromString(const std::string& s,SubscribeVehicleData_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SubscribeVehicleData_requestMarshaller::toString(const SubscribeVehicleData_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SubscribeVehicleData_requestMarshaller::checkIntegrityConst(const SubscribeVehicleData_request& s)
-{
- {
- unsigned int i=s.dataType.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VehicleDataTypeMarshaller::checkIntegrityConst(s.dataType[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value SubscribeVehicleData_requestMarshaller::toJSON(const SubscribeVehicleData_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["dataType"]=Json::Value(Json::arrayValue);
- json["dataType"].resize(e.dataType.size());
- for(unsigned int i=0;i<e.dataType.size();i++)
- json["dataType"][i]=VehicleDataTypeMarshaller::toJSON(e.dataType[i]);
-
- return json;
-}
-
-
-bool SubscribeVehicleData_requestMarshaller::fromJSON(const Json::Value& json,SubscribeVehicleData_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("dataType")) return false;
- {
- const Json::Value& j=json["dataType"];
- if(!j.isArray()) return false;
- c.dataType.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- VehicleDataType t;
- if(!VehicleDataTypeMarshaller::fromJSON(j[i],t))
- return false;
- c.dataType[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_requestMarshaller.h
deleted file mode 100644
index e4a88fd8f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SUBSCRIBEVEHICLEDATA_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SUBSCRIBEVEHICLEDATA_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SubscribeVehicleData_requestMarshaller
- {
- static bool checkIntegrity(SubscribeVehicleData_request& e);
- static bool checkIntegrityConst(const SubscribeVehicleData_request& e);
-
- static bool fromString(const std::string& s,SubscribeVehicleData_request& e);
- static const std::string toString(const SubscribeVehicleData_request& e);
-
- static bool fromJSON(const Json::Value& s,SubscribeVehicleData_request& e);
- static Json::Value toJSON(const SubscribeVehicleData_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_response.cpp
deleted file mode 100644
index d16fda7c2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_response.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_response.h"
-#include "SubscribeVehicleData_responseMarshaller.h"
-#include "VehicleDataResultMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-SubscribeVehicleData_response& SubscribeVehicleData_response::operator =(const SubscribeVehicleData_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
- dataResult = c.dataResult ? new std::vector<VehicleDataResult>(c.dataResult[0]) : 0;
-
- return *this;
-}
-
-SubscribeVehicleData_response::~SubscribeVehicleData_response(void)
-{
- if (dataResult)
- {
- delete dataResult;
- }
-}
-
-SubscribeVehicleData_response::SubscribeVehicleData_response(const SubscribeVehicleData_response& c)
-{
- *this = c;
-}
-
-bool SubscribeVehicleData_response::checkIntegrity(void)
-{
- return SubscribeVehicleData_responseMarshaller::checkIntegrity(*this);
-}
-
-SubscribeVehicleData_response::SubscribeVehicleData_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
- , dataResult(0)
-{
-}
-
-bool SubscribeVehicleData_response::set_dataResult(const std::vector<VehicleDataResult>& dataResult_)
-{
- unsigned int i = dataResult_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
- while (i--)
- {
- if (!VehicleDataResultMarshaller::checkIntegrityConst(dataResult_[i]))
- {
- return false;
- }
- }
- delete dataResult;
- dataResult = 0;
-
- dataResult = new std::vector<VehicleDataResult>(dataResult_);
- return true;
-}
-
-void SubscribeVehicleData_response::reset_dataResult(void)
-{
- if (dataResult)
- {
- delete dataResult;
- }
- dataResult = 0;
-}
-
-const std::vector<VehicleDataResult>* SubscribeVehicleData_response::get_dataResult(void) const
-{
- return dataResult;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_responseMarshaller.cpp
deleted file mode 100644
index eca716aca..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_responseMarshaller.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_response.h"
-#include "ResultMarshaller.h"
-#include "VehicleDataResultMarshaller.h"
-
-#include "SubscribeVehicleData_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SubscribeVehicleData_responseMarshaller::checkIntegrity(SubscribeVehicleData_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SubscribeVehicleData_responseMarshaller::fromString(const std::string& s,SubscribeVehicleData_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SubscribeVehicleData_responseMarshaller::toString(const SubscribeVehicleData_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SubscribeVehicleData_responseMarshaller::checkIntegrityConst(const SubscribeVehicleData_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- if(s.dataResult)
- {
- unsigned int i=s.dataResult[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VehicleDataResultMarshaller::checkIntegrityConst(s.dataResult[0][i])) return false;
- }
- }
- return true;
-}
-
-Json::Value SubscribeVehicleData_responseMarshaller::toJSON(const SubscribeVehicleData_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- if(e.dataResult)
- {
- unsigned int sz=e.dataResult->size();
- json["dataResult"]=Json::Value(Json::arrayValue);
- json["dataResult"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["dataResult"][i]=VehicleDataResultMarshaller::toJSON(e.dataResult[0][i]);
- }
-
- return json;
-}
-
-
-bool SubscribeVehicleData_responseMarshaller::fromJSON(const Json::Value& json,SubscribeVehicleData_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- if(c.dataResult) delete c.dataResult;
- c.dataResult=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
- if(json.isMember("dataResult"))
- {
- const Json::Value& j=json["dataResult"];
- if(!j.isArray()) return false;
- c.dataResult=new std::vector<VehicleDataResult>();
- c.dataResult->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- VehicleDataResult t;
- if(!VehicleDataResultMarshaller::fromJSON(j[i],t))
- return false;
- c.dataResult[0][i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_responseMarshaller.h
deleted file mode 100644
index cb2b101c9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SubscribeVehicleData_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SUBSCRIBEVEHICLEDATA_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SUBSCRIBEVEHICLEDATA_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SubscribeVehicleData_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SubscribeVehicleData_responseMarshaller
- {
- static bool checkIntegrity(SubscribeVehicleData_response& e);
- static bool checkIntegrityConst(const SubscribeVehicleData_response& e);
-
- static bool fromString(const std::string& s,SubscribeVehicleData_response& e);
- static const std::string toString(const SubscribeVehicleData_response& e);
-
- static bool fromJSON(const Json::Value& s,SubscribeVehicleData_response& e);
- static Json::Value toJSON(const SubscribeVehicleData_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersion.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersion.cpp
deleted file mode 100644
index 50e3d7a1b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersion.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SyncMsgVersion.h"
-#include "SyncMsgVersionMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-SyncMsgVersion::SyncMsgVersion(const SyncMsgVersion& c)
-{
- *this=c;
-}
-
-
-bool SyncMsgVersion::checkIntegrity(void)
-{
- return SyncMsgVersionMarshaller::checkIntegrity(*this);
-}
-
-
-SyncMsgVersion::SyncMsgVersion(void)
-{
-}
-
-
-
-bool SyncMsgVersion::set_majorVersion(unsigned int majorVersion_)
-{
- if(majorVersion_>10) return false;
- if(majorVersion_<1) return false;
- majorVersion=majorVersion_;
- return true;
-}
-
-bool SyncMsgVersion::set_minorVersion(unsigned int minorVersion_)
-{
- if(minorVersion_>1000) return false;
- minorVersion=minorVersion_;
- return true;
-}
-
-
-
-
-unsigned int SyncMsgVersion::get_majorVersion(void) const
-{
- return majorVersion;
-}
-
-
-unsigned int SyncMsgVersion::get_minorVersion(void) const
-{
- return minorVersion;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersionMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersionMarshaller.cpp
deleted file mode 100644
index d81d8e471..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersionMarshaller.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SyncMsgVersion.h"
-
-
-#include "SyncMsgVersionMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool SyncMsgVersionMarshaller::checkIntegrity(SyncMsgVersion& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool SyncMsgVersionMarshaller::fromString(const std::string& s,SyncMsgVersion& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string SyncMsgVersionMarshaller::toString(const SyncMsgVersion& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool SyncMsgVersionMarshaller::checkIntegrityConst(const SyncMsgVersion& s)
-{
- if(s.majorVersion>10) return false;
- if(s.majorVersion<1) return false;
- if(s.minorVersion>1000) return false;
- return true;
-}
-
-Json::Value SyncMsgVersionMarshaller::toJSON(const SyncMsgVersion& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["majorVersion"]=Json::Value(e.majorVersion);
-
- json["minorVersion"]=Json::Value(e.minorVersion);
-
-
- return json;
-}
-
-
-bool SyncMsgVersionMarshaller::fromJSON(const Json::Value& json,SyncMsgVersion& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("majorVersion")) return false;
- {
- const Json::Value& j=json["majorVersion"];
- if(!j.isInt()) return false;
- c.majorVersion=j.asInt();
- }
- if(!json.isMember("minorVersion")) return false;
- {
- const Json::Value& j=json["minorVersion"];
- if(!j.isInt()) return false;
- c.minorVersion=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersionMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersionMarshaller.h
deleted file mode 100644
index 01bdb174c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SyncMsgVersionMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SYNCMSGVERSIONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SYNCMSGVERSIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SyncMsgVersion.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct SyncMsgVersionMarshaller
- {
- static bool checkIntegrity(SyncMsgVersion& e);
- static bool checkIntegrityConst(const SyncMsgVersion& e);
-
- static bool fromString(const std::string& s,SyncMsgVersion& e);
- static const std::string toString(const SyncMsgVersion& e);
-
- static bool fromJSON(const Json::Value& s,SyncMsgVersion& e);
- static Json::Value toJSON(const SyncMsgVersion& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.cpp
deleted file mode 100644
index 854024666..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/SystemAction.h"
-#include "SystemActionMarshaller.h"
-#include "SystemActionMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const SystemAction::SystemActionInternal SystemActionMarshaller::getIndex(const char* s)
-{
- if(!s)
- return SystemAction::INVALID_ENUM;
- const struct PerfectHashTable* p=SystemAction_intHash::getPointer(s,strlen(s));
- return p ? static_cast<SystemAction::SystemActionInternal>(p->idx) : SystemAction::INVALID_ENUM;
-}
-
-
-bool SystemActionMarshaller::fromJSON(const Json::Value& s,SystemAction& e)
-{
- e.mInternal=SystemAction::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=SystemAction::INVALID_ENUM);
-}
-
-
-Json::Value SystemActionMarshaller::toJSON(const SystemAction& e)
-{
- if(e.mInternal==SystemAction::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool SystemActionMarshaller::fromString(const std::string& s,SystemAction& e)
-{
- e.mInternal=SystemAction::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string SystemActionMarshaller::toString(const SystemAction& e)
-{
- Json::FastWriter writer;
- return e.mInternal==SystemAction::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable SystemActionMarshaller::mHashTable[3]=
-{
- {"DEFAULT_ACTION",0},
- {"STEAL_FOCUS",1},
- {"KEEP_CONTEXT",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.gp
deleted file mode 100644
index d9189498b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name SystemAction_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-DEFAULT_ACTION,0
-STEAL_FOCUS,1
-KEEP_CONTEXT,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.h
deleted file mode 100644
index 7ec9eaa3f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SYSTEMACTIONMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SYSTEMACTIONMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SystemAction.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for SystemAction
-
- class SystemActionMarshaller
- {
- public:
-
- static std::string toName(const SystemAction& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(SystemAction& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=SystemAction::INVALID_ENUM;
- }
-
- static bool checkIntegrity(SystemAction& e) { return e.mInternal!=SystemAction::INVALID_ENUM; }
- static bool checkIntegrityConst(const SystemAction& e) { return e.mInternal!=SystemAction::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,SystemAction& e);
- static const std::string toString(const SystemAction& e);
-
- static bool fromJSON(const Json::Value& s,SystemAction& e);
- static Json::Value toJSON(const SystemAction& e);
-
- static const char* getName(SystemAction::SystemActionInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const SystemAction::SystemActionInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.inc
deleted file mode 100644
index eac357b27..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.inc
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (c) 2013 Ford Motor Company */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 11
-#define MAX_WORD_LENGTH 14
-#define MIN_HASH_VALUE 11
-#define MAX_HASH_VALUE 14
-/* maximum key range = 4, duplicates = 0 */
-
-class SystemAction_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-SystemAction_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-SystemAction_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 0,
- 14
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.gp"
- {"STEAL_FOCUS",1},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.gp"
- {"KEEP_CONTEXT",2},
- {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemActionMarshaller.gp"
- {"DEFAULT_ACTION",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.cpp
deleted file mode 100644
index 7205c8a2f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/SystemContext.h"
-#include "SystemContextMarshaller.h"
-#include "SystemContextMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const SystemContext::SystemContextInternal SystemContextMarshaller::getIndex(const char* s)
-{
- if(!s)
- return SystemContext::INVALID_ENUM;
- const struct PerfectHashTable* p=SystemContext_intHash::getPointer(s,strlen(s));
- return p ? static_cast<SystemContext::SystemContextInternal>(p->idx) : SystemContext::INVALID_ENUM;
-}
-
-
-bool SystemContextMarshaller::fromJSON(const Json::Value& s,SystemContext& e)
-{
- e.mInternal=SystemContext::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=SystemContext::INVALID_ENUM);
-}
-
-
-Json::Value SystemContextMarshaller::toJSON(const SystemContext& e)
-{
- if(e.mInternal==SystemContext::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool SystemContextMarshaller::fromString(const std::string& s,SystemContext& e)
-{
- e.mInternal=SystemContext::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string SystemContextMarshaller::toString(const SystemContext& e)
-{
- Json::FastWriter writer;
- return e.mInternal==SystemContext::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable SystemContextMarshaller::mHashTable[7]=
-{
- {"MAIN",0},
- {"VRSESSION",1},
- {"MENU",2},
- {"HMI_OBSCURED",3},
- {"ALERT",4},
- {"NOT_AUDIBLE",5},
- {"AUDIBLE",6}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp
deleted file mode 100644
index 86239917d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp
+++ /dev/null
@@ -1,23 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name SystemContext_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-MAIN,0
-VRSESSION,1
-MENU,2
-HMI_OBSCURED,3
-ALERT,4
-NOT_AUDIBLE,5
-AUDIBLE,6
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.h
deleted file mode 100644
index aa12901b1..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_SYSTEMCONTEXTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_SYSTEMCONTEXTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/SystemContext.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for SystemContext
-
- class SystemContextMarshaller
- {
- public:
-
- static std::string toName(const SystemContext& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(SystemContext& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=SystemContext::INVALID_ENUM;
- }
-
- static bool checkIntegrity(SystemContext& e) { return e.mInternal!=SystemContext::INVALID_ENUM; }
- static bool checkIntegrityConst(const SystemContext& e) { return e.mInternal!=SystemContext::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,SystemContext& e);
- static const std::string toString(const SystemContext& e);
-
- static bool fromJSON(const Json::Value& s,SystemContext& e);
- static Json::Value toJSON(const SystemContext& e);
-
- static const char* getName(SystemContext::SystemContextInternal e)
- {
- return (e>=0 && e<7) ? mHashTable[e].name : NULL;
- }
-
- static const SystemContext::SystemContextInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[7];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.inc
deleted file mode 100644
index f5df67c2b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.inc
+++ /dev/null
@@ -1,160 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp */
-/* Computed positions: -k'2' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 7
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 12
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 12
-/* maximum key range = 9, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class SystemContext_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-SystemContext_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 2, 13, 13, 13, 0,
- 13, 13, 13, 13, 13, 13, 0, 0, 13, 0,
- 13, 13, 0, 13, 13, 0, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13
- };
- return len + asso_values[(unsigned char)str[1]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-SystemContext_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4, 5, 4, 7, 0, 9, 0, 11, 12
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp"
- {"MENU",2},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp"
- {"ALERT",4},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp"
- {"MAIN",0},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp"
- {"AUDIBLE",6},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp"
- {"VRSESSION",1},
- {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp"
- {"NOT_AUDIBLE",5},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/SystemContextMarshaller.gp"
- {"HMI_OBSCURED",3}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.cpp
deleted file mode 100644
index 7d72a5929..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/TBTState.h"
-#include "TBTStateMarshaller.h"
-#include "TBTStateMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const TBTState::TBTStateInternal TBTStateMarshaller::getIndex(const char* s)
-{
- if(!s)
- return TBTState::INVALID_ENUM;
- const struct PerfectHashTable* p=TBTState_intHash::getPointer(s,strlen(s));
- return p ? static_cast<TBTState::TBTStateInternal>(p->idx) : TBTState::INVALID_ENUM;
-}
-
-
-bool TBTStateMarshaller::fromJSON(const Json::Value& s,TBTState& e)
-{
- e.mInternal=TBTState::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=TBTState::INVALID_ENUM);
-}
-
-
-Json::Value TBTStateMarshaller::toJSON(const TBTState& e)
-{
- if(e.mInternal==TBTState::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool TBTStateMarshaller::fromString(const std::string& s,TBTState& e)
-{
- e.mInternal=TBTState::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string TBTStateMarshaller::toString(const TBTState& e)
-{
- Json::FastWriter writer;
- return e.mInternal==TBTState::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable TBTStateMarshaller::mHashTable[10]=
-{
- {"ROUTE_UPDATE_REQUEST",0},
- {"ROUTE_ACCEPTED",1},
- {"ROUTE_REFUSED",2},
- {"ROUTE_CANCELLED",3},
- {"ETA_REQUEST",4},
- {"NEXT_TURN_REQUEST",5},
- {"ROUTE_STATUS_REQUEST",6},
- {"ROUTE_SUMMARY_REQUEST",7},
- {"TRIP_STATUS_REQUEST",8},
- {"ROUTE_UPDATE_REQUEST_TIMEOUT",9}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp
deleted file mode 100644
index e4a0f1876..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp
+++ /dev/null
@@ -1,26 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name TBTState_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-ROUTE_UPDATE_REQUEST,0
-ROUTE_ACCEPTED,1
-ROUTE_REFUSED,2
-ROUTE_CANCELLED,3
-ETA_REQUEST,4
-NEXT_TURN_REQUEST,5
-ROUTE_STATUS_REQUEST,6
-ROUTE_SUMMARY_REQUEST,7
-TRIP_STATUS_REQUEST,8
-ROUTE_UPDATE_REQUEST_TIMEOUT,9
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.h
deleted file mode 100644
index 746d65291..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_TBTSTATEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_TBTSTATEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TBTState.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for TBTState
-
- class TBTStateMarshaller
- {
- public:
-
- static std::string toName(const TBTState& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(TBTState& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=TBTState::INVALID_ENUM;
- }
-
- static bool checkIntegrity(TBTState& e) { return e.mInternal!=TBTState::INVALID_ENUM; }
- static bool checkIntegrityConst(const TBTState& e) { return e.mInternal!=TBTState::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,TBTState& e);
- static const std::string toString(const TBTState& e);
-
- static bool fromJSON(const Json::Value& s,TBTState& e);
- static Json::Value toJSON(const TBTState& e);
-
- static const char* getName(TBTState::TBTStateInternal e)
- {
- return (e>=0 && e<10) ? mHashTable[e].name : NULL;
- }
-
- static const TBTState::TBTStateInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[10];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.inc
deleted file mode 100644
index 6749bae70..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.inc
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp */
-/* Computed positions: -k'7' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 10
-#define MIN_WORD_LENGTH 11
-#define MAX_WORD_LENGTH 28
-#define MIN_HASH_VALUE 11
-#define MAX_HASH_VALUE 28
-/* maximum key range = 18, duplicates = 0 */
-
-class TBTState_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-TBTState_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 0, 29, 0, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 0, 0, 5, 0, 0, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29
- };
- return len + asso_values[(unsigned char)str[6]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-TBTState_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 13,
- 14, 15, 0, 17, 0, 19, 20, 0, 0, 0, 0, 20, 21, 0,
- 28
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp"
- {"ETA_REQUEST",4},
- {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp"
- {"ROUTE_REFUSED",2},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp"
- {"ROUTE_ACCEPTED",1},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp"
- {"ROUTE_CANCELLED",3},
- {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp"
- {"NEXT_TURN_REQUEST",5},
- {""},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp"
- {"TRIP_STATUS_REQUEST",8},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp"
- {"ROUTE_UPDATE_REQUEST",0},
- {""}, {""}, {""}, {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp"
- {"ROUTE_STATUS_REQUEST",6},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp"
- {"ROUTE_SUMMARY_REQUEST",7},
- {""},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TBTStateMarshaller.gp"
- {"ROUTE_UPDATE_REQUEST_TIMEOUT",9}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunk.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunk.cpp
deleted file mode 100644
index 5b5ae21d2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunk.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-#include "TTSChunkMarshaller.h"
-#include "SpeechCapabilitiesMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-TTSChunk::TTSChunk(const TTSChunk& c)
-{
- *this=c;
-}
-
-
-bool TTSChunk::checkIntegrity(void)
-{
- return TTSChunkMarshaller::checkIntegrity(*this);
-}
-
-
-TTSChunk::TTSChunk(void)
-{
-}
-
-
-
-bool TTSChunk::set_text(const std::string& text_)
-{
- if(text_.length()>500) return false;
- text=text_;
- return true;
-}
-
-bool TTSChunk::set_type(const SpeechCapabilities& type_)
-{
- if(!SpeechCapabilitiesMarshaller::checkIntegrityConst(type_)) return false;
- type=type_;
- return true;
-}
-
-
-
-
-const std::string& TTSChunk::get_text(void) const
-{
- return text;
-}
-
-
-const SpeechCapabilities& TTSChunk::get_type(void) const
-{
- return type;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.cpp
deleted file mode 100644
index e3c832f8f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-#include "SpeechCapabilitiesMarshaller.h"
-
-#include "TTSChunkMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool TTSChunkMarshaller::checkIntegrity(TTSChunk& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool TTSChunkMarshaller::fromString(const std::string& s,TTSChunk& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string TTSChunkMarshaller::toString(const TTSChunk& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool TTSChunkMarshaller::checkIntegrityConst(const TTSChunk& s)
-{
- if(s.text.length()>500) return false;
- if(!SpeechCapabilitiesMarshaller::checkIntegrityConst(s.type)) return false;
- return true;
-}
-
-Json::Value TTSChunkMarshaller::toJSON(const TTSChunk& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["text"]=Json::Value(e.text);
-
- json["type"]=SpeechCapabilitiesMarshaller::toJSON(e.type);
-
-
- return json;
-}
-
-
-bool TTSChunkMarshaller::fromJSON(const Json::Value& json,TTSChunk& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("text")) return false;
- {
- const Json::Value& j=json["text"];
- if(!j.isString()) return false;
- c.text=j.asString();
- }
- if(!json.isMember("type")) return false;
- {
- const Json::Value& j=json["type"];
- if(!SpeechCapabilitiesMarshaller::fromJSON(j,c.type))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h
deleted file mode 100644
index b13fa1e57..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TTSChunkMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_TTSCHUNKMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_TTSCHUNKMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TTSChunk.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct TTSChunkMarshaller
- {
- static bool checkIntegrity(TTSChunk& e);
- static bool checkIntegrityConst(const TTSChunk& e);
-
- static bool fromString(const std::string& s,TTSChunk& e);
- static const std::string toString(const TTSChunk& e);
-
- static bool fromJSON(const Json::Value& s,TTSChunk& e);
- static Json::Value toJSON(const TTSChunk& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.cpp
deleted file mode 100644
index 400de0528..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/TextAlignment.h"
-#include "TextAlignmentMarshaller.h"
-#include "TextAlignmentMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const TextAlignment::TextAlignmentInternal TextAlignmentMarshaller::getIndex(const char* s)
-{
- if(!s)
- return TextAlignment::INVALID_ENUM;
- const struct PerfectHashTable* p=TextAlignment_intHash::getPointer(s,strlen(s));
- return p ? static_cast<TextAlignment::TextAlignmentInternal>(p->idx) : TextAlignment::INVALID_ENUM;
-}
-
-
-bool TextAlignmentMarshaller::fromJSON(const Json::Value& s,TextAlignment& e)
-{
- e.mInternal=TextAlignment::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=TextAlignment::INVALID_ENUM);
-}
-
-
-Json::Value TextAlignmentMarshaller::toJSON(const TextAlignment& e)
-{
- if(e.mInternal==TextAlignment::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool TextAlignmentMarshaller::fromString(const std::string& s,TextAlignment& e)
-{
- e.mInternal=TextAlignment::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string TextAlignmentMarshaller::toString(const TextAlignment& e)
-{
- Json::FastWriter writer;
- return e.mInternal==TextAlignment::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable TextAlignmentMarshaller::mHashTable[3]=
-{
- {"LEFT_ALIGNED",0},
- {"RIGHT_ALIGNED",1},
- {"CENTERED",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.gp
deleted file mode 100644
index d36329373..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name TextAlignment_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-LEFT_ALIGNED,0
-RIGHT_ALIGNED,1
-CENTERED,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.h
deleted file mode 100644
index ec30427ae..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_TEXTALIGNMENTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_TEXTALIGNMENTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TextAlignment.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for TextAlignment
-
- class TextAlignmentMarshaller
- {
- public:
-
- static std::string toName(const TextAlignment& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(TextAlignment& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=TextAlignment::INVALID_ENUM;
- }
-
- static bool checkIntegrity(TextAlignment& e) { return e.mInternal!=TextAlignment::INVALID_ENUM; }
- static bool checkIntegrityConst(const TextAlignment& e) { return e.mInternal!=TextAlignment::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,TextAlignment& e);
- static const std::string toString(const TextAlignment& e);
-
- static bool fromJSON(const Json::Value& s,TextAlignment& e);
- static Json::Value toJSON(const TextAlignment& e);
-
- static const char* getName(TextAlignment::TextAlignmentInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const TextAlignment::TextAlignmentInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.inc
deleted file mode 100644
index a7e942a84..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.inc
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 8
-#define MAX_WORD_LENGTH 13
-#define MIN_HASH_VALUE 8
-#define MAX_HASH_VALUE 13
-/* maximum key range = 6, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class TextAlignment_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-TextAlignment_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-TextAlignment_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 13
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.gp"
- {"CENTERED",2},
- {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.gp"
- {"LEFT_ALIGNED",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextAlignmentMarshaller.gp"
- {"RIGHT_ALIGNED",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextField.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextField.cpp
deleted file mode 100644
index f212e03f2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextField.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TextField.h"
-#include "TextFieldMarshaller.h"
-#include "CharacterSetMarshaller.h"
-#include "TextFieldNameMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-TextField::TextField(const TextField& c)
-{
- *this=c;
-}
-
-
-bool TextField::checkIntegrity(void)
-{
- return TextFieldMarshaller::checkIntegrity(*this);
-}
-
-
-TextField::TextField(void)
-{
-}
-
-
-
-bool TextField::set_characterSet(const CharacterSet& characterSet_)
-{
- if(!CharacterSetMarshaller::checkIntegrityConst(characterSet_)) return false;
- characterSet=characterSet_;
- return true;
-}
-
-bool TextField::set_name(const TextFieldName& name_)
-{
- if(!TextFieldNameMarshaller::checkIntegrityConst(name_)) return false;
- name=name_;
- return true;
-}
-
-bool TextField::set_rows(unsigned int rows_)
-{
- if(rows_>3) return false;
- if(rows_<1) return false;
- rows=rows_;
- return true;
-}
-
-bool TextField::set_width(unsigned int width_)
-{
- if(width_>500) return false;
- if(width_<1) return false;
- width=width_;
- return true;
-}
-
-
-
-
-const CharacterSet& TextField::get_characterSet(void) const
-{
- return characterSet;
-}
-
-
-const TextFieldName& TextField::get_name(void) const
-{
- return name;
-}
-
-
-unsigned int TextField::get_rows(void) const
-{
- return rows;
-}
-
-
-unsigned int TextField::get_width(void) const
-{
- return width;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldMarshaller.cpp
deleted file mode 100644
index 704fb99e2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldMarshaller.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TextField.h"
-#include "CharacterSetMarshaller.h"
-#include "TextFieldNameMarshaller.h"
-
-#include "TextFieldMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool TextFieldMarshaller::checkIntegrity(TextField& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool TextFieldMarshaller::fromString(const std::string& s,TextField& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string TextFieldMarshaller::toString(const TextField& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool TextFieldMarshaller::checkIntegrityConst(const TextField& s)
-{
- if(!CharacterSetMarshaller::checkIntegrityConst(s.characterSet)) return false;
- if(!TextFieldNameMarshaller::checkIntegrityConst(s.name)) return false;
- if(s.rows>3) return false;
- if(s.rows<1) return false;
- if(s.width>500) return false;
- if(s.width<1) return false;
- return true;
-}
-
-Json::Value TextFieldMarshaller::toJSON(const TextField& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["characterSet"]=CharacterSetMarshaller::toJSON(e.characterSet);
-
- json["name"]=TextFieldNameMarshaller::toJSON(e.name);
-
- json["rows"]=Json::Value(e.rows);
-
- json["width"]=Json::Value(e.width);
-
-
- return json;
-}
-
-
-bool TextFieldMarshaller::fromJSON(const Json::Value& json,TextField& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("characterSet")) return false;
- {
- const Json::Value& j=json["characterSet"];
- if(!CharacterSetMarshaller::fromJSON(j,c.characterSet))
- return false;
- }
- if(!json.isMember("name")) return false;
- {
- const Json::Value& j=json["name"];
- if(!TextFieldNameMarshaller::fromJSON(j,c.name))
- return false;
- }
- if(!json.isMember("rows")) return false;
- {
- const Json::Value& j=json["rows"];
- if(!j.isInt()) return false;
- c.rows=j.asInt();
- }
- if(!json.isMember("width")) return false;
- {
- const Json::Value& j=json["width"];
- if(!j.isInt()) return false;
- c.width=j.asInt();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldMarshaller.h
deleted file mode 100644
index 150f8dd42..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_TEXTFIELDMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_TEXTFIELDMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TextField.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct TextFieldMarshaller
- {
- static bool checkIntegrity(TextField& e);
- static bool checkIntegrityConst(const TextField& e);
-
- static bool fromString(const std::string& s,TextField& e);
- static const std::string toString(const TextField& e);
-
- static bool fromJSON(const Json::Value& s,TextField& e);
- static Json::Value toJSON(const TextField& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.cpp
deleted file mode 100644
index f2e6b429b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/TextFieldName.h"
-#include "TextFieldNameMarshaller.h"
-#include "TextFieldNameMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const TextFieldName::TextFieldNameInternal TextFieldNameMarshaller::getIndex(const char* s)
-{
- if(!s)
- return TextFieldName::INVALID_ENUM;
- const struct PerfectHashTable* p=TextFieldName_intHash::getPointer(s,strlen(s));
- return p ? static_cast<TextFieldName::TextFieldNameInternal>(p->idx) : TextFieldName::INVALID_ENUM;
-}
-
-
-bool TextFieldNameMarshaller::fromJSON(const Json::Value& s,TextFieldName& e)
-{
- e.mInternal=TextFieldName::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=TextFieldName::INVALID_ENUM);
-}
-
-
-Json::Value TextFieldNameMarshaller::toJSON(const TextFieldName& e)
-{
- if(e.mInternal==TextFieldName::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool TextFieldNameMarshaller::fromString(const std::string& s,TextFieldName& e)
-{
- e.mInternal=TextFieldName::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string TextFieldNameMarshaller::toString(const TextFieldName& e)
-{
- Json::FastWriter writer;
- return e.mInternal==TextFieldName::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable TextFieldNameMarshaller::mHashTable[20]=
-{
- {"mainField1",0},
- {"mainField2",1},
- {"mainField3",2},
- {"mainField4",3},
- {"statusBar",4},
- {"mediaClock",5},
- {"mediaTrack",6},
- {"alertText1",7},
- {"alertText2",8},
- {"alertText3",9},
- {"scrollableMessageBody",10},
- {"initialInteractionText",11},
- {"navigationText1",12},
- {"navigationText2",13},
- {"ETA",14},
- {"totalDistance",15},
- {"audioPassThruDisplayText1",16},
- {"audioPassThruDisplayText2",17},
- {"sliderHeader",18},
- {"sliderFooter",19}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp
deleted file mode 100644
index bf4ffae31..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp
+++ /dev/null
@@ -1,36 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name TextFieldName_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-mainField1,0
-mainField2,1
-mainField3,2
-mainField4,3
-statusBar,4
-mediaClock,5
-mediaTrack,6
-alertText1,7
-alertText2,8
-alertText3,9
-scrollableMessageBody,10
-initialInteractionText,11
-navigationText1,12
-navigationText2,13
-ETA,14
-totalDistance,15
-audioPassThruDisplayText1,16
-audioPassThruDisplayText2,17
-sliderHeader,18
-sliderFooter,19
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.h
deleted file mode 100644
index c824a9419..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_TEXTFIELDNAMEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_TEXTFIELDNAMEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TextFieldName.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for TextFieldName
-
- class TextFieldNameMarshaller
- {
- public:
-
- static std::string toName(const TextFieldName& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(TextFieldName& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=TextFieldName::INVALID_ENUM;
- }
-
- static bool checkIntegrity(TextFieldName& e) { return e.mInternal!=TextFieldName::INVALID_ENUM; }
- static bool checkIntegrityConst(const TextFieldName& e) { return e.mInternal!=TextFieldName::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,TextFieldName& e);
- static const std::string toString(const TextFieldName& e);
-
- static bool fromJSON(const Json::Value& s,TextFieldName& e);
- static Json::Value toJSON(const TextFieldName& e);
-
- static const char* getName(TextFieldName::TextFieldNameInternal e)
- {
- return (e>=0 && e<20) ? mHashTable[e].name : NULL;
- }
-
- static const TextFieldName::TextFieldNameInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[20];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.inc
deleted file mode 100644
index 6351c04a8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.inc
+++ /dev/null
@@ -1,214 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp */
-/* Computed positions: -k'8,$' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 20
-#define MIN_WORD_LENGTH 3
-#define MAX_WORD_LENGTH 25
-#define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 50
-/* maximum key range = 48, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class TextFieldName_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-TextFieldName_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 5,
- 0, 23, 30, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 0, 51, 51, 51, 51,
- 51, 51, 51, 0, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 10, 0, 51,
- 51, 0, 51, 51, 51, 25, 51, 8, 10, 51,
- 51, 5, 51, 51, 0, 5, 0, 51, 51, 51,
- 0, 0, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[7]];
- /*FALLTHROUGH*/
- case 7:
- case 6:
- case 5:
- case 4:
- case 3:
- break;
- }
- return hval + asso_values[(unsigned char)str[len - 1]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-TextFieldName_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 10, 0, 12, 0,
- 0, 10, 0, 12, 13, 9, 10, 21, 22, 10, 0, 10, 0, 0,
- 10, 0, 25, 0, 0, 10, 0, 25, 0, 0, 0, 0, 15, 0,
- 0, 10, 0, 15, 0, 0, 0, 0, 10
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""},
-#line 31 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"ETA",14},
- {""}, {""}, {""}, {""}, {""}, {""},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"alertText2",8},
- {""},
-#line 35 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"sliderHeader",18},
- {""}, {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"alertText1",7},
- {""},
-#line 36 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"sliderFooter",19},
-#line 32 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"totalDistance",15},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"statusBar",4},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"mainField2",1},
-#line 27 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"scrollableMessageBody",10},
-#line 28 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"initialInteractionText",11},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"mediaClock",5},
- {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"mainField1",0},
- {""}, {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"mediaTrack",6},
- {""},
-#line 34 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"audioPassThruDisplayText2",17},
- {""}, {""},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"alertText3",9},
- {""},
-#line 33 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"audioPassThruDisplayText1",16},
- {""}, {""}, {""}, {""},
-#line 30 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"navigationText2",13},
- {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"mainField3",2},
- {""},
-#line 29 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"navigationText1",12},
- {""}, {""}, {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TextFieldNameMarshaller.gp"
- {"mainField4",3}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.cpp
deleted file mode 100644
index 03cca50ab..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/TimerMode.h"
-#include "TimerModeMarshaller.h"
-#include "TimerModeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const TimerMode::TimerModeInternal TimerModeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return TimerMode::INVALID_ENUM;
- const struct PerfectHashTable* p=TimerMode_intHash::getPointer(s,strlen(s));
- return p ? static_cast<TimerMode::TimerModeInternal>(p->idx) : TimerMode::INVALID_ENUM;
-}
-
-
-bool TimerModeMarshaller::fromJSON(const Json::Value& s,TimerMode& e)
-{
- e.mInternal=TimerMode::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=TimerMode::INVALID_ENUM);
-}
-
-
-Json::Value TimerModeMarshaller::toJSON(const TimerMode& e)
-{
- if(e.mInternal==TimerMode::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool TimerModeMarshaller::fromString(const std::string& s,TimerMode& e)
-{
- e.mInternal=TimerMode::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string TimerModeMarshaller::toString(const TimerMode& e)
-{
- Json::FastWriter writer;
- return e.mInternal==TimerMode::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable TimerModeMarshaller::mHashTable[3]=
-{
- {"UP",0},
- {"DOWN",1},
- {"NONE",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.gp
deleted file mode 100644
index 68d794858..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name TimerMode_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-UP,0
-DOWN,1
-NONE,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.h
deleted file mode 100644
index 96f814636..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_TIMERMODEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_TIMERMODEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TimerMode.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for TimerMode
-
- class TimerModeMarshaller
- {
- public:
-
- static std::string toName(const TimerMode& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(TimerMode& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=TimerMode::INVALID_ENUM;
- }
-
- static bool checkIntegrity(TimerMode& e) { return e.mInternal!=TimerMode::INVALID_ENUM; }
- static bool checkIntegrityConst(const TimerMode& e) { return e.mInternal!=TimerMode::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,TimerMode& e);
- static const std::string toString(const TimerMode& e);
-
- static bool fromJSON(const Json::Value& s,TimerMode& e);
- static Json::Value toJSON(const TimerMode& e);
-
- static const char* getName(TimerMode::TimerModeInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const TimerMode::TimerModeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.inc
deleted file mode 100644
index 4c5cf2c46..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.inc
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.gp */
-/* Computed positions: -k'1' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 4
-#define MIN_HASH_VALUE 2
-#define MAX_HASH_VALUE 5
-/* maximum key range = 4, duplicates = 0 */
-
-class TimerMode_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-TimerMode_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 1, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 0, 6,
- 6, 6, 6, 6, 6, 0, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6
- };
- return len + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-TimerMode_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 2, 0, 4, 4
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.gp"
- {"UP",0},
- {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.gp"
- {"NONE",2},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TimerModeMarshaller.gp"
- {"DOWN",1}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.cpp
deleted file mode 100644
index 19e909b36..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/TirePressureTellTale.h"
-#include "TirePressureTellTaleMarshaller.h"
-#include "TirePressureTellTaleMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const TirePressureTellTale::TirePressureTellTaleInternal TirePressureTellTaleMarshaller::getIndex(const char* s)
-{
- if(!s)
- return TirePressureTellTale::INVALID_ENUM;
- const struct PerfectHashTable* p=TirePressureTellTale_intHash::getPointer(s,strlen(s));
- return p ? static_cast<TirePressureTellTale::TirePressureTellTaleInternal>(p->idx) : TirePressureTellTale::INVALID_ENUM;
-}
-
-
-bool TirePressureTellTaleMarshaller::fromJSON(const Json::Value& s,TirePressureTellTale& e)
-{
- e.mInternal=TirePressureTellTale::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=TirePressureTellTale::INVALID_ENUM);
-}
-
-
-Json::Value TirePressureTellTaleMarshaller::toJSON(const TirePressureTellTale& e)
-{
- if(e.mInternal==TirePressureTellTale::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool TirePressureTellTaleMarshaller::fromString(const std::string& s,TirePressureTellTale& e)
-{
- e.mInternal=TirePressureTellTale::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string TirePressureTellTaleMarshaller::toString(const TirePressureTellTale& e)
-{
- Json::FastWriter writer;
- return e.mInternal==TirePressureTellTale::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable TirePressureTellTaleMarshaller::mHashTable[3]=
-{
- {"OFF",0},
- {"ON",1},
- {"FLASH",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.gp
deleted file mode 100644
index 090ca82af..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name TirePressureTellTale_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-OFF,0
-ON,1
-FLASH,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.h
deleted file mode 100644
index 86dee3ab8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_TIREPRESSURETELLTALEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_TIREPRESSURETELLTALEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TirePressureTellTale.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for TirePressureTellTale
-
- class TirePressureTellTaleMarshaller
- {
- public:
-
- static std::string toName(const TirePressureTellTale& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(TirePressureTellTale& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=TirePressureTellTale::INVALID_ENUM;
- }
-
- static bool checkIntegrity(TirePressureTellTale& e) { return e.mInternal!=TirePressureTellTale::INVALID_ENUM; }
- static bool checkIntegrityConst(const TirePressureTellTale& e) { return e.mInternal!=TirePressureTellTale::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,TirePressureTellTale& e);
- static const std::string toString(const TirePressureTellTale& e);
-
- static bool fromJSON(const Json::Value& s,TirePressureTellTale& e);
- static Json::Value toJSON(const TirePressureTellTale& e);
-
- static const char* getName(TirePressureTellTale::TirePressureTellTaleInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const TirePressureTellTale::TirePressureTellTaleInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.inc
deleted file mode 100644
index 880dad58b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.inc
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 5
-#define MIN_HASH_VALUE 2
-#define MAX_HASH_VALUE 5
-/* maximum key range = 4, duplicates = 0 */
-
-class TirePressureTellTale_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-TirePressureTellTale_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-TirePressureTellTale_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 2, 3, 0, 5
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.gp"
- {"ON",1},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.gp"
- {"OFF",0},
- {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TirePressureTellTaleMarshaller.gp"
- {"FLASH",2}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatus.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatus.cpp
deleted file mode 100644
index 9944a27fd..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatus.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TireStatus.h"
-#include "TireStatusMarshaller.h"
-#include "SingleTireStatusMarshaller.h"
-#include "TirePressureTellTaleMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-TireStatus::TireStatus(const TireStatus& c)
-{
- *this=c;
-}
-
-
-bool TireStatus::checkIntegrity(void)
-{
- return TireStatusMarshaller::checkIntegrity(*this);
-}
-
-
-TireStatus::TireStatus(void)
-{
-}
-
-
-
-bool TireStatus::set_innerLeftRear(const SingleTireStatus& innerLeftRear_)
-{
- if(!SingleTireStatusMarshaller::checkIntegrityConst(innerLeftRear_)) return false;
- innerLeftRear=innerLeftRear_;
- return true;
-}
-
-bool TireStatus::set_innerRightRear(const SingleTireStatus& innerRightRear_)
-{
- if(!SingleTireStatusMarshaller::checkIntegrityConst(innerRightRear_)) return false;
- innerRightRear=innerRightRear_;
- return true;
-}
-
-bool TireStatus::set_leftFront(const SingleTireStatus& leftFront_)
-{
- if(!SingleTireStatusMarshaller::checkIntegrityConst(leftFront_)) return false;
- leftFront=leftFront_;
- return true;
-}
-
-bool TireStatus::set_leftRear(const SingleTireStatus& leftRear_)
-{
- if(!SingleTireStatusMarshaller::checkIntegrityConst(leftRear_)) return false;
- leftRear=leftRear_;
- return true;
-}
-
-bool TireStatus::set_pressureTellTale(const TirePressureTellTale& pressureTellTale_)
-{
- if(!TirePressureTellTaleMarshaller::checkIntegrityConst(pressureTellTale_)) return false;
- pressureTellTale=pressureTellTale_;
- return true;
-}
-
-bool TireStatus::set_rightFront(const SingleTireStatus& rightFront_)
-{
- if(!SingleTireStatusMarshaller::checkIntegrityConst(rightFront_)) return false;
- rightFront=rightFront_;
- return true;
-}
-
-bool TireStatus::set_rightRear(const SingleTireStatus& rightRear_)
-{
- if(!SingleTireStatusMarshaller::checkIntegrityConst(rightRear_)) return false;
- rightRear=rightRear_;
- return true;
-}
-
-
-
-
-const SingleTireStatus& TireStatus::get_innerLeftRear(void) const
-{
- return innerLeftRear;
-}
-
-
-const SingleTireStatus& TireStatus::get_innerRightRear(void) const
-{
- return innerRightRear;
-}
-
-
-const SingleTireStatus& TireStatus::get_leftFront(void) const
-{
- return leftFront;
-}
-
-
-const SingleTireStatus& TireStatus::get_leftRear(void) const
-{
- return leftRear;
-}
-
-
-const TirePressureTellTale& TireStatus::get_pressureTellTale(void) const
-{
- return pressureTellTale;
-}
-
-
-const SingleTireStatus& TireStatus::get_rightFront(void) const
-{
- return rightFront;
-}
-
-
-const SingleTireStatus& TireStatus::get_rightRear(void) const
-{
- return rightRear;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatusMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatusMarshaller.cpp
deleted file mode 100644
index ec7d6a97b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatusMarshaller.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TireStatus.h"
-#include "SingleTireStatusMarshaller.h"
-#include "TirePressureTellTaleMarshaller.h"
-
-#include "TireStatusMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool TireStatusMarshaller::checkIntegrity(TireStatus& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool TireStatusMarshaller::fromString(const std::string& s,TireStatus& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string TireStatusMarshaller::toString(const TireStatus& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool TireStatusMarshaller::checkIntegrityConst(const TireStatus& s)
-{
- if(!SingleTireStatusMarshaller::checkIntegrityConst(s.innerLeftRear)) return false;
- if(!SingleTireStatusMarshaller::checkIntegrityConst(s.innerRightRear)) return false;
- if(!SingleTireStatusMarshaller::checkIntegrityConst(s.leftFront)) return false;
- if(!SingleTireStatusMarshaller::checkIntegrityConst(s.leftRear)) return false;
- if(!TirePressureTellTaleMarshaller::checkIntegrityConst(s.pressureTellTale)) return false;
- if(!SingleTireStatusMarshaller::checkIntegrityConst(s.rightFront)) return false;
- if(!SingleTireStatusMarshaller::checkIntegrityConst(s.rightRear)) return false;
- return true;
-}
-
-Json::Value TireStatusMarshaller::toJSON(const TireStatus& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["innerLeftRear"]=SingleTireStatusMarshaller::toJSON(e.innerLeftRear);
-
- json["innerRightRear"]=SingleTireStatusMarshaller::toJSON(e.innerRightRear);
-
- json["leftFront"]=SingleTireStatusMarshaller::toJSON(e.leftFront);
-
- json["leftRear"]=SingleTireStatusMarshaller::toJSON(e.leftRear);
-
- json["pressureTellTale"]=TirePressureTellTaleMarshaller::toJSON(e.pressureTellTale);
-
- json["rightFront"]=SingleTireStatusMarshaller::toJSON(e.rightFront);
-
- json["rightRear"]=SingleTireStatusMarshaller::toJSON(e.rightRear);
-
-
- return json;
-}
-
-
-bool TireStatusMarshaller::fromJSON(const Json::Value& json,TireStatus& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("innerLeftRear")) return false;
- {
- const Json::Value& j=json["innerLeftRear"];
- if(!SingleTireStatusMarshaller::fromJSON(j,c.innerLeftRear))
- return false;
- }
- if(!json.isMember("innerRightRear")) return false;
- {
- const Json::Value& j=json["innerRightRear"];
- if(!SingleTireStatusMarshaller::fromJSON(j,c.innerRightRear))
- return false;
- }
- if(!json.isMember("leftFront")) return false;
- {
- const Json::Value& j=json["leftFront"];
- if(!SingleTireStatusMarshaller::fromJSON(j,c.leftFront))
- return false;
- }
- if(!json.isMember("leftRear")) return false;
- {
- const Json::Value& j=json["leftRear"];
- if(!SingleTireStatusMarshaller::fromJSON(j,c.leftRear))
- return false;
- }
- if(!json.isMember("pressureTellTale")) return false;
- {
- const Json::Value& j=json["pressureTellTale"];
- if(!TirePressureTellTaleMarshaller::fromJSON(j,c.pressureTellTale))
- return false;
- }
- if(!json.isMember("rightFront")) return false;
- {
- const Json::Value& j=json["rightFront"];
- if(!SingleTireStatusMarshaller::fromJSON(j,c.rightFront))
- return false;
- }
- if(!json.isMember("rightRear")) return false;
- {
- const Json::Value& j=json["rightRear"];
- if(!SingleTireStatusMarshaller::fromJSON(j,c.rightRear))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatusMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatusMarshaller.h
deleted file mode 100644
index 6167af186..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TireStatusMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_TIRESTATUSMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_TIRESTATUSMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TireStatus.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct TireStatusMarshaller
- {
- static bool checkIntegrity(TireStatus& e);
- static bool checkIntegrityConst(const TireStatus& e);
-
- static bool fromString(const std::string& s,TireStatus& e);
- static const std::string toString(const TireStatus& e);
-
- static bool fromJSON(const Json::Value& s,TireStatus& e);
- static Json::Value toJSON(const TireStatus& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.cpp
deleted file mode 100644
index d2062150f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/TriggerSource.h"
-#include "TriggerSourceMarshaller.h"
-#include "TriggerSourceMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const TriggerSource::TriggerSourceInternal TriggerSourceMarshaller::getIndex(const char* s)
-{
- if(!s)
- return TriggerSource::INVALID_ENUM;
- const struct PerfectHashTable* p=TriggerSource_intHash::getPointer(s,strlen(s));
- return p ? static_cast<TriggerSource::TriggerSourceInternal>(p->idx) : TriggerSource::INVALID_ENUM;
-}
-
-
-bool TriggerSourceMarshaller::fromJSON(const Json::Value& s,TriggerSource& e)
-{
- e.mInternal=TriggerSource::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=TriggerSource::INVALID_ENUM);
-}
-
-
-Json::Value TriggerSourceMarshaller::toJSON(const TriggerSource& e)
-{
- if(e.mInternal==TriggerSource::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool TriggerSourceMarshaller::fromString(const std::string& s,TriggerSource& e)
-{
- e.mInternal=TriggerSource::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string TriggerSourceMarshaller::toString(const TriggerSource& e)
-{
- Json::FastWriter writer;
- return e.mInternal==TriggerSource::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable TriggerSourceMarshaller::mHashTable[2]=
-{
- {"MENU",0},
- {"VR",1}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.gp
deleted file mode 100644
index d1812ad91..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.gp
+++ /dev/null
@@ -1,18 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name TriggerSource_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-MENU,0
-VR,1
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.h
deleted file mode 100644
index 9c6b8674b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_TRIGGERSOURCEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_TRIGGERSOURCEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/TriggerSource.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for TriggerSource
-
- class TriggerSourceMarshaller
- {
- public:
-
- static std::string toName(const TriggerSource& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(TriggerSource& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=TriggerSource::INVALID_ENUM;
- }
-
- static bool checkIntegrity(TriggerSource& e) { return e.mInternal!=TriggerSource::INVALID_ENUM; }
- static bool checkIntegrityConst(const TriggerSource& e) { return e.mInternal!=TriggerSource::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,TriggerSource& e);
- static const std::string toString(const TriggerSource& e);
-
- static bool fromJSON(const Json::Value& s,TriggerSource& e);
- static Json::Value toJSON(const TriggerSource& e);
-
- static const char* getName(TriggerSource::TriggerSourceInternal e)
- {
- return (e>=0 && e<2) ? mHashTable[e].name : NULL;
- }
-
- static const TriggerSource::TriggerSourceInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[2];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.inc
deleted file mode 100644
index 3f533f14b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.inc
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 2
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 4
-#define MIN_HASH_VALUE 2
-#define MAX_HASH_VALUE 4
-/* maximum key range = 3, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class TriggerSource_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-TriggerSource_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-TriggerSource_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 2, 0, 4
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.gp"
- {"VR",1},
- {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TriggerSourceMarshaller.gp"
- {"MENU",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Turn.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Turn.cpp
deleted file mode 100644
index c9cc8e5e9..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/Turn.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Turn.h"
-#include "TurnMarshaller.h"
-#include "ImageMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-Turn& Turn::operator =(const Turn& c)
-{
- navigationText=c.navigationText ? new std::string(c.navigationText[0]) : 0;
- turnIcon=c.turnIcon;
-
- return *this;
-}
-
-
-Turn::~Turn(void)
-{
- if(navigationText)
- delete navigationText;
-}
-
-
-Turn::Turn(const Turn& c)
-{
- *this=c;
-}
-
-
-bool Turn::checkIntegrity(void)
-{
- return TurnMarshaller::checkIntegrity(*this);
-}
-
-
-Turn::Turn(void) :
- navigationText(0)
-{
-}
-
-
-
-bool Turn::set_navigationText(const std::string& navigationText_)
-{
- if(navigationText_.length()>500) return false;
- delete navigationText;
- navigationText=0;
-
- navigationText=new std::string(navigationText_);
- return true;
-}
-
-void Turn::reset_navigationText(void)
-{
- if(navigationText)
- delete navigationText;
- navigationText=0;
-}
-
-bool Turn::set_turnIcon(const Image& turnIcon_)
-{
- if(!ImageMarshaller::checkIntegrityConst(turnIcon_)) return false;
- turnIcon=turnIcon_;
- return true;
-}
-
-
-
-
-const std::string* Turn::get_navigationText(void) const
-{
- return navigationText;
-}
-
-
-const Image& Turn::get_turnIcon(void) const
-{
- return turnIcon;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TurnMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TurnMarshaller.cpp
deleted file mode 100644
index d6dcf3869..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TurnMarshaller.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Turn.h"
-#include "ImageMarshaller.h"
-
-#include "TurnMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool TurnMarshaller::checkIntegrity(Turn& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool TurnMarshaller::fromString(const std::string& s,Turn& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string TurnMarshaller::toString(const Turn& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool TurnMarshaller::checkIntegrityConst(const Turn& s)
-{
- if(s.navigationText && s.navigationText->length()>500) return false;
- if(!ImageMarshaller::checkIntegrityConst(s.turnIcon)) return false;
- return true;
-}
-
-Json::Value TurnMarshaller::toJSON(const Turn& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- if(e.navigationText)
- json["navigationText"]=Json::Value(*e.navigationText);
-
- json["turnIcon"]=ImageMarshaller::toJSON(e.turnIcon);
-
-
- return json;
-}
-
-
-bool TurnMarshaller::fromJSON(const Json::Value& json,Turn& c)
-{
- if(c.navigationText) delete c.navigationText;
- c.navigationText=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(json.isMember("navigationText"))
- {
- const Json::Value& j=json["navigationText"];
- if(!j.isString()) return false;
- c.navigationText=new std::string(j.asString());
- }
- if(!json.isMember("turnIcon")) return false;
- {
- const Json::Value& j=json["turnIcon"];
- if(!ImageMarshaller::fromJSON(j,c.turnIcon))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TurnMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TurnMarshaller.h
deleted file mode 100644
index 0cb22d62c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/TurnMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_TURNMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_TURNMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/Turn.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct TurnMarshaller
- {
- static bool checkIntegrity(Turn& e);
- static bool checkIntegrityConst(const Turn& e);
-
- static bool fromString(const std::string& s,Turn& e);
- static const std::string toString(const Turn& e);
-
- static bool fromJSON(const Json::Value& s,Turn& e);
- static Json::Value toJSON(const Turn& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_request.cpp
deleted file mode 100644
index 83484c3c7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_request.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_request.h"
-#include "UnregisterAppInterface_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-UnregisterAppInterface_request::~UnregisterAppInterface_request(void)
-{
-}
-
-
-UnregisterAppInterface_request::UnregisterAppInterface_request(const UnregisterAppInterface_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool UnregisterAppInterface_request::checkIntegrity(void)
-{
- return UnregisterAppInterface_requestMarshaller::checkIntegrity(*this);
-}
-
-
-UnregisterAppInterface_request::UnregisterAppInterface_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_requestMarshaller.cpp
deleted file mode 100644
index 6858d1c13..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_requestMarshaller.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_request.h"
-
-
-#include "UnregisterAppInterface_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool UnregisterAppInterface_requestMarshaller::checkIntegrity(UnregisterAppInterface_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UnregisterAppInterface_requestMarshaller::fromString(const std::string& s,UnregisterAppInterface_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UnregisterAppInterface_requestMarshaller::toString(const UnregisterAppInterface_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UnregisterAppInterface_requestMarshaller::checkIntegrityConst(const UnregisterAppInterface_request& s)
-{
- return true;
-}
-
-Json::Value UnregisterAppInterface_requestMarshaller::toJSON(const UnregisterAppInterface_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- return json;
-}
-
-
-bool UnregisterAppInterface_requestMarshaller::fromJSON(const Json::Value& json,UnregisterAppInterface_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_requestMarshaller.h
deleted file mode 100644
index 00f0d5b66..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_UNREGISTERAPPINTERFACE_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_UNREGISTERAPPINTERFACE_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct UnregisterAppInterface_requestMarshaller
- {
- static bool checkIntegrity(UnregisterAppInterface_request& e);
- static bool checkIntegrityConst(const UnregisterAppInterface_request& e);
-
- static bool fromString(const std::string& s,UnregisterAppInterface_request& e);
- static const std::string toString(const UnregisterAppInterface_request& e);
-
- static bool fromJSON(const Json::Value& s,UnregisterAppInterface_request& e);
- static Json::Value toJSON(const UnregisterAppInterface_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_response.cpp
deleted file mode 100644
index 900f7b53e..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_response.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_response.h"
-#include "UnregisterAppInterface_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-UnregisterAppInterface_response& UnregisterAppInterface_response::operator =(const UnregisterAppInterface_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-UnregisterAppInterface_response::~UnregisterAppInterface_response(void)
-{}
-
-UnregisterAppInterface_response::UnregisterAppInterface_response(const UnregisterAppInterface_response& c)
-{
- *this = c;
-}
-
-bool UnregisterAppInterface_response::checkIntegrity(void)
-{
- return UnregisterAppInterface_responseMarshaller::checkIntegrity(*this);
-}
-
-UnregisterAppInterface_response::UnregisterAppInterface_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_responseMarshaller.cpp
deleted file mode 100644
index f66d73454..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_response.h"
-#include "ResultMarshaller.h"
-
-#include "UnregisterAppInterface_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool UnregisterAppInterface_responseMarshaller::checkIntegrity(UnregisterAppInterface_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UnregisterAppInterface_responseMarshaller::fromString(const std::string& s,UnregisterAppInterface_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UnregisterAppInterface_responseMarshaller::toString(const UnregisterAppInterface_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UnregisterAppInterface_responseMarshaller::checkIntegrityConst(const UnregisterAppInterface_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value UnregisterAppInterface_responseMarshaller::toJSON(const UnregisterAppInterface_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool UnregisterAppInterface_responseMarshaller::fromJSON(const Json::Value& json,UnregisterAppInterface_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_responseMarshaller.h
deleted file mode 100644
index 87c8e8cca..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnregisterAppInterface_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_UNREGISTERAPPINTERFACE_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_UNREGISTERAPPINTERFACE_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnregisterAppInterface_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct UnregisterAppInterface_responseMarshaller
- {
- static bool checkIntegrity(UnregisterAppInterface_response& e);
- static bool checkIntegrityConst(const UnregisterAppInterface_response& e);
-
- static bool fromString(const std::string& s,UnregisterAppInterface_response& e);
- static const std::string toString(const UnregisterAppInterface_response& e);
-
- static bool fromJSON(const Json::Value& s,UnregisterAppInterface_response& e);
- static Json::Value toJSON(const UnregisterAppInterface_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_request.cpp
deleted file mode 100644
index e6d978ba5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_request.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_request.h"
-#include "UnsubscribeButton_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "ButtonNameMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-UnsubscribeButton_request::~UnsubscribeButton_request(void)
-{
-}
-
-
-UnsubscribeButton_request::UnsubscribeButton_request(const UnsubscribeButton_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool UnsubscribeButton_request::checkIntegrity(void)
-{
- return UnsubscribeButton_requestMarshaller::checkIntegrity(*this);
-}
-
-
-UnsubscribeButton_request::UnsubscribeButton_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool UnsubscribeButton_request::set_buttonName(const ButtonName& buttonName_)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(buttonName_)) return false;
- buttonName=buttonName_;
- return true;
-}
-
-
-
-
-const ButtonName& UnsubscribeButton_request::get_buttonName(void) const
-{
- return buttonName;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_requestMarshaller.cpp
deleted file mode 100644
index a2ed23d06..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_requestMarshaller.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_request.h"
-#include "ButtonNameMarshaller.h"
-
-#include "UnsubscribeButton_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool UnsubscribeButton_requestMarshaller::checkIntegrity(UnsubscribeButton_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UnsubscribeButton_requestMarshaller::fromString(const std::string& s,UnsubscribeButton_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UnsubscribeButton_requestMarshaller::toString(const UnsubscribeButton_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UnsubscribeButton_requestMarshaller::checkIntegrityConst(const UnsubscribeButton_request& s)
-{
- if(!ButtonNameMarshaller::checkIntegrityConst(s.buttonName)) return false;
- return true;
-}
-
-Json::Value UnsubscribeButton_requestMarshaller::toJSON(const UnsubscribeButton_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["buttonName"]=ButtonNameMarshaller::toJSON(e.buttonName);
-
- return json;
-}
-
-
-bool UnsubscribeButton_requestMarshaller::fromJSON(const Json::Value& json,UnsubscribeButton_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("buttonName")) return false;
- {
- const Json::Value& j=json["buttonName"];
- if(!ButtonNameMarshaller::fromJSON(j,c.buttonName))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_requestMarshaller.h
deleted file mode 100644
index 8b4d106ea..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_UNSUBSCRIBEBUTTON_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_UNSUBSCRIBEBUTTON_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct UnsubscribeButton_requestMarshaller
- {
- static bool checkIntegrity(UnsubscribeButton_request& e);
- static bool checkIntegrityConst(const UnsubscribeButton_request& e);
-
- static bool fromString(const std::string& s,UnsubscribeButton_request& e);
- static const std::string toString(const UnsubscribeButton_request& e);
-
- static bool fromJSON(const Json::Value& s,UnsubscribeButton_request& e);
- static Json::Value toJSON(const UnsubscribeButton_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_response.cpp
deleted file mode 100644
index 7bf2518b7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_response.h"
-#include "UnsubscribeButton_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-UnsubscribeButton_response& UnsubscribeButton_response::operator =(const UnsubscribeButton_response& c)
-{
- success= c.success;
- resultCode= c.resultCode;
- info= c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-UnsubscribeButton_response::~UnsubscribeButton_response(void)
-{}
-
-
-UnsubscribeButton_response::UnsubscribeButton_response(const UnsubscribeButton_response& c)
-{
- *this=c;
-}
-
-bool UnsubscribeButton_response::checkIntegrity(void)
-{
- return UnsubscribeButton_responseMarshaller::checkIntegrity(*this);
-}
-
-UnsubscribeButton_response::UnsubscribeButton_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_responseMarshaller.cpp
deleted file mode 100644
index 7b55748ca..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_response.h"
-#include "ResultMarshaller.h"
-
-#include "UnsubscribeButton_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool UnsubscribeButton_responseMarshaller::checkIntegrity(UnsubscribeButton_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UnsubscribeButton_responseMarshaller::fromString(const std::string& s,UnsubscribeButton_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UnsubscribeButton_responseMarshaller::toString(const UnsubscribeButton_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UnsubscribeButton_responseMarshaller::checkIntegrityConst(const UnsubscribeButton_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value UnsubscribeButton_responseMarshaller::toJSON(const UnsubscribeButton_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool UnsubscribeButton_responseMarshaller::fromJSON(const Json::Value& json,UnsubscribeButton_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_responseMarshaller.h
deleted file mode 100644
index 4f54f4414..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeButton_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_UNSUBSCRIBEBUTTON_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_UNSUBSCRIBEBUTTON_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeButton_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct UnsubscribeButton_responseMarshaller
- {
- static bool checkIntegrity(UnsubscribeButton_response& e);
- static bool checkIntegrityConst(const UnsubscribeButton_response& e);
-
- static bool fromString(const std::string& s,UnsubscribeButton_response& e);
- static const std::string toString(const UnsubscribeButton_response& e);
-
- static bool fromJSON(const Json::Value& s,UnsubscribeButton_response& e);
- static Json::Value toJSON(const UnsubscribeButton_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_request.cpp
deleted file mode 100644
index bd0e313e0..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_request.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_request.h"
-#include "UnsubscribeVehicleData_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "VehicleDataTypeMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-UnsubscribeVehicleData_request::~UnsubscribeVehicleData_request(void)
-{
-}
-
-
-UnsubscribeVehicleData_request::UnsubscribeVehicleData_request(const UnsubscribeVehicleData_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool UnsubscribeVehicleData_request::checkIntegrity(void)
-{
- return UnsubscribeVehicleData_requestMarshaller::checkIntegrity(*this);
-}
-
-
-UnsubscribeVehicleData_request::UnsubscribeVehicleData_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool UnsubscribeVehicleData_request::set_dataType(const std::vector<VehicleDataType>& dataType_)
-{
- unsigned int i=dataType_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VehicleDataTypeMarshaller::checkIntegrityConst(dataType_[i])) return false;
- }
- dataType=dataType_;
- return true;
-}
-
-
-
-
-const std::vector<VehicleDataType>& UnsubscribeVehicleData_request::get_dataType(void) const
-{
- return dataType;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_requestMarshaller.cpp
deleted file mode 100644
index 2fa27cb02..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_requestMarshaller.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_request.h"
-#include "VehicleDataTypeMarshaller.h"
-
-#include "UnsubscribeVehicleData_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool UnsubscribeVehicleData_requestMarshaller::checkIntegrity(UnsubscribeVehicleData_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UnsubscribeVehicleData_requestMarshaller::fromString(const std::string& s,UnsubscribeVehicleData_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UnsubscribeVehicleData_requestMarshaller::toString(const UnsubscribeVehicleData_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UnsubscribeVehicleData_requestMarshaller::checkIntegrityConst(const UnsubscribeVehicleData_request& s)
-{
- {
- unsigned int i=s.dataType.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VehicleDataTypeMarshaller::checkIntegrityConst(s.dataType[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value UnsubscribeVehicleData_requestMarshaller::toJSON(const UnsubscribeVehicleData_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["dataType"]=Json::Value(Json::arrayValue);
- json["dataType"].resize(e.dataType.size());
- for(unsigned int i=0;i<e.dataType.size();i++)
- json["dataType"][i]=VehicleDataTypeMarshaller::toJSON(e.dataType[i]);
-
- return json;
-}
-
-
-bool UnsubscribeVehicleData_requestMarshaller::fromJSON(const Json::Value& json,UnsubscribeVehicleData_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("dataType")) return false;
- {
- const Json::Value& j=json["dataType"];
- if(!j.isArray()) return false;
- c.dataType.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- VehicleDataType t;
- if(!VehicleDataTypeMarshaller::fromJSON(j[i],t))
- return false;
- c.dataType[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_requestMarshaller.h
deleted file mode 100644
index ab17438db..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_UNSUBSCRIBEVEHICLEDATA_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_UNSUBSCRIBEVEHICLEDATA_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct UnsubscribeVehicleData_requestMarshaller
- {
- static bool checkIntegrity(UnsubscribeVehicleData_request& e);
- static bool checkIntegrityConst(const UnsubscribeVehicleData_request& e);
-
- static bool fromString(const std::string& s,UnsubscribeVehicleData_request& e);
- static const std::string toString(const UnsubscribeVehicleData_request& e);
-
- static bool fromJSON(const Json::Value& s,UnsubscribeVehicleData_request& e);
- static Json::Value toJSON(const UnsubscribeVehicleData_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_response.cpp
deleted file mode 100644
index 50526f2cb..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_response.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_response.h"
-#include "UnsubscribeVehicleData_responseMarshaller.h"
-#include "VehicleDataResultMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-UnsubscribeVehicleData_response& UnsubscribeVehicleData_response::operator =(const UnsubscribeVehicleData_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
- dataResult = c.dataResult ? new std::vector<VehicleDataResult>(c.dataResult[0]) : 0;
-
- return *this;
-}
-
-UnsubscribeVehicleData_response::~UnsubscribeVehicleData_response(void)
-{
- if (dataResult)
- {
- delete dataResult;
- }
-}
-
-UnsubscribeVehicleData_response::UnsubscribeVehicleData_response(const UnsubscribeVehicleData_response& c)
-{
- *this = c;
-}
-
-bool UnsubscribeVehicleData_response::checkIntegrity(void)
-{
- return UnsubscribeVehicleData_responseMarshaller::checkIntegrity(*this);
-}
-
-UnsubscribeVehicleData_response::UnsubscribeVehicleData_response(void)
- : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
- , dataResult(0)
-{}
-
-bool UnsubscribeVehicleData_response::set_dataResult(const std::vector<VehicleDataResult>& dataResult_)
-{
- unsigned int i = dataResult_.size();
- if (i > 100 || i < 1)
- {
- return false;
- }
- while (i--)
- {
- if (!VehicleDataResultMarshaller::checkIntegrityConst(dataResult_[i]))
- {
- return false;
- }
- }
- delete dataResult;
- dataResult = 0;
-
- dataResult = new std::vector<VehicleDataResult>(dataResult_);
- return true;
-}
-
-void UnsubscribeVehicleData_response::reset_dataResult(void)
-{
- if (dataResult)
- {
- delete dataResult;
- }
- dataResult = 0;
-}
-
-const std::vector<VehicleDataResult>* UnsubscribeVehicleData_response::get_dataResult(void) const
-{
- return dataResult;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_responseMarshaller.cpp
deleted file mode 100644
index f69a1acab..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_responseMarshaller.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_response.h"
-#include "ResultMarshaller.h"
-#include "VehicleDataResultMarshaller.h"
-
-#include "UnsubscribeVehicleData_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool UnsubscribeVehicleData_responseMarshaller::checkIntegrity(UnsubscribeVehicleData_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UnsubscribeVehicleData_responseMarshaller::fromString(const std::string& s,UnsubscribeVehicleData_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UnsubscribeVehicleData_responseMarshaller::toString(const UnsubscribeVehicleData_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UnsubscribeVehicleData_responseMarshaller::checkIntegrityConst(const UnsubscribeVehicleData_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- if(s.dataResult)
- {
- unsigned int i=s.dataResult[0].size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!VehicleDataResultMarshaller::checkIntegrityConst(s.dataResult[0][i])) return false;
- }
- }
- return true;
-}
-
-Json::Value UnsubscribeVehicleData_responseMarshaller::toJSON(const UnsubscribeVehicleData_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- if(e.dataResult)
- {
- unsigned int sz=e.dataResult->size();
- json["dataResult"]=Json::Value(Json::arrayValue);
- json["dataResult"].resize(sz);
- for(unsigned int i=0;i<sz;i++)
- json["dataResult"][i]=VehicleDataResultMarshaller::toJSON(e.dataResult[0][i]);
- }
-
- return json;
-}
-
-
-bool UnsubscribeVehicleData_responseMarshaller::fromJSON(const Json::Value& json,UnsubscribeVehicleData_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- if(c.dataResult) delete c.dataResult;
- c.dataResult=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
- if(json.isMember("dataResult"))
- {
- const Json::Value& j=json["dataResult"];
- if(!j.isArray()) return false;
- c.dataResult=new std::vector<VehicleDataResult>();
- c.dataResult->resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- VehicleDataResult t;
- if(!VehicleDataResultMarshaller::fromJSON(j[i],t))
- return false;
- c.dataResult[0][i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_responseMarshaller.h
deleted file mode 100644
index 656fb0a3d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UnsubscribeVehicleData_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_UNSUBSCRIBEVEHICLEDATA_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_UNSUBSCRIBEVEHICLEDATA_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UnsubscribeVehicleData_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct UnsubscribeVehicleData_responseMarshaller
- {
- static bool checkIntegrity(UnsubscribeVehicleData_response& e);
- static bool checkIntegrityConst(const UnsubscribeVehicleData_response& e);
-
- static bool fromString(const std::string& s,UnsubscribeVehicleData_response& e);
- static const std::string toString(const UnsubscribeVehicleData_response& e);
-
- static bool fromJSON(const Json::Value& s,UnsubscribeVehicleData_response& e);
- static Json::Value toJSON(const UnsubscribeVehicleData_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.cpp
deleted file mode 100644
index edd5a3906..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/UpdateMode.h"
-#include "UpdateModeMarshaller.h"
-#include "UpdateModeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const UpdateMode::UpdateModeInternal UpdateModeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return UpdateMode::INVALID_ENUM;
- const struct PerfectHashTable* p=UpdateMode_intHash::getPointer(s,strlen(s));
- return p ? static_cast<UpdateMode::UpdateModeInternal>(p->idx) : UpdateMode::INVALID_ENUM;
-}
-
-
-bool UpdateModeMarshaller::fromJSON(const Json::Value& s,UpdateMode& e)
-{
- e.mInternal=UpdateMode::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=UpdateMode::INVALID_ENUM);
-}
-
-
-Json::Value UpdateModeMarshaller::toJSON(const UpdateMode& e)
-{
- if(e.mInternal==UpdateMode::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool UpdateModeMarshaller::fromString(const std::string& s,UpdateMode& e)
-{
- e.mInternal=UpdateMode::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string UpdateModeMarshaller::toString(const UpdateMode& e)
-{
- Json::FastWriter writer;
- return e.mInternal==UpdateMode::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable UpdateModeMarshaller::mHashTable[5]=
-{
- {"COUNTUP",0},
- {"COUNTDOWN",1},
- {"PAUSE",2},
- {"RESUME",3},
- {"CLEAR",4}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.gp
deleted file mode 100644
index 7ff0eb4d3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.gp
+++ /dev/null
@@ -1,21 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name UpdateMode_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-COUNTUP,0
-COUNTDOWN,1
-PAUSE,2
-RESUME,3
-CLEAR,4
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.h
deleted file mode 100644
index 2dd1ad76d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_UPDATEMODEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_UPDATEMODEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UpdateMode.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for UpdateMode
-
- class UpdateModeMarshaller
- {
- public:
-
- static std::string toName(const UpdateMode& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(UpdateMode& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=UpdateMode::INVALID_ENUM;
- }
-
- static bool checkIntegrity(UpdateMode& e) { return e.mInternal!=UpdateMode::INVALID_ENUM; }
- static bool checkIntegrityConst(const UpdateMode& e) { return e.mInternal!=UpdateMode::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,UpdateMode& e);
- static const std::string toString(const UpdateMode& e);
-
- static bool fromJSON(const Json::Value& s,UpdateMode& e);
- static Json::Value toJSON(const UpdateMode& e);
-
- static const char* getName(UpdateMode::UpdateModeInternal e)
- {
- return (e>=0 && e<5) ? mHashTable[e].name : NULL;
- }
-
- static const UpdateMode::UpdateModeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[5];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.inc
deleted file mode 100644
index cba43560c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.inc
+++ /dev/null
@@ -1,155 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.gp */
-/* Computed positions: -k'1' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 5
-#define MIN_WORD_LENGTH 5
-#define MAX_WORD_LENGTH 9
-#define MIN_HASH_VALUE 5
-#define MAX_HASH_VALUE 10
-/* maximum key range = 6, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class UpdateMode_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-UpdateMode_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 0, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 5, 11, 0, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11
- };
- return len + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-UpdateMode_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 5, 6, 7, 0, 9, 5
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.gp"
- {"CLEAR",4},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.gp"
- {"RESUME",3},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.gp"
- {"COUNTUP",0},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.gp"
- {"COUNTDOWN",1},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateModeMarshaller.gp"
- {"PAUSE",2}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_request.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_request.cpp
deleted file mode 100644
index 9b40f4cbc..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_request.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_request.h"
-#include "UpdateTurnList_requestMarshaller.h"
-#include "../include/JSONHandler/SDLRPCObjects/V2/Marshaller.h"
-#include "SoftButtonMarshaller.h"
-#include "TurnMarshaller.h"
-
-#define PROTOCOL_VERSION 2
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-UpdateTurnList_request::~UpdateTurnList_request(void)
-{
-}
-
-
-UpdateTurnList_request::UpdateTurnList_request(const UpdateTurnList_request& c) : NsSmartDeviceLinkRPC::SDLRPCMessage(c)
-{
- *this=c;
-}
-
-
-bool UpdateTurnList_request::checkIntegrity(void)
-{
- return UpdateTurnList_requestMarshaller::checkIntegrity(*this);
-}
-
-
-UpdateTurnList_request::UpdateTurnList_request(void) : NsSmartDeviceLinkRPC::SDLRPCMessage(PROTOCOL_VERSION)
-{
-}
-
-
-
-bool UpdateTurnList_request::set_turnList(const std::vector<Turn>& turnList_)
-{
- unsigned int i=turnList_.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TurnMarshaller::checkIntegrityConst(turnList_[i])) return false;
- }
- turnList=turnList_;
- return true;
-}
-
-bool UpdateTurnList_request::set_softButtons(const std::vector<SoftButton>& softButtons_)
-{
- unsigned int i=softButtons_.size();
- if(i>1 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(softButtons_[i])) return false;
- }
- softButtons=softButtons_;
- return true;
-}
-
-
-
-
-const std::vector<Turn>& UpdateTurnList_request::get_turnList(void) const
-{
- return turnList;
-}
-
-const std::vector<SoftButton>& UpdateTurnList_request::get_softButtons(void) const
-{
- return softButtons;
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_requestMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_requestMarshaller.cpp
deleted file mode 100644
index f04e0abb8..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_requestMarshaller.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_request.h"
-#include "SoftButtonMarshaller.h"
-#include "TurnMarshaller.h"
-
-#include "UpdateTurnList_requestMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool UpdateTurnList_requestMarshaller::checkIntegrity(UpdateTurnList_request& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UpdateTurnList_requestMarshaller::fromString(const std::string& s,UpdateTurnList_request& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UpdateTurnList_requestMarshaller::toString(const UpdateTurnList_request& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UpdateTurnList_requestMarshaller::checkIntegrityConst(const UpdateTurnList_request& s)
-{
- {
- unsigned int i=s.turnList.size();
- if(i>100 || i<1) return false;
- while(i--)
- {
- if(!TurnMarshaller::checkIntegrityConst(s.turnList[i])) return false;
- }
- }
- {
- unsigned int i=s.softButtons.size();
- if(i>1 || i<0) return false;
- while(i--)
- {
- if(!SoftButtonMarshaller::checkIntegrityConst(s.softButtons[i])) return false;
- }
- }
- return true;
-}
-
-Json::Value UpdateTurnList_requestMarshaller::toJSON(const UpdateTurnList_request& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["turnList"]=Json::Value(Json::arrayValue);
- json["turnList"].resize(e.turnList.size());
- for(unsigned int i=0;i<e.turnList.size();i++)
- json["turnList"][i]=TurnMarshaller::toJSON(e.turnList[i]);
-
- json["softButtons"]=Json::Value(Json::arrayValue);
- json["softButtons"].resize(e.softButtons.size());
- for(unsigned int i=0;i<e.softButtons.size();i++)
- json["softButtons"][i]=SoftButtonMarshaller::toJSON(e.softButtons[i]);
-
- return json;
-}
-
-
-bool UpdateTurnList_requestMarshaller::fromJSON(const Json::Value& json,UpdateTurnList_request& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("turnList")) return false;
- {
- const Json::Value& j=json["turnList"];
- if(!j.isArray()) return false;
- c.turnList.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- Turn t;
- if(!TurnMarshaller::fromJSON(j[i],t))
- return false;
- c.turnList[i]=t;
- }
-
- }
- if(!json.isMember("softButtons")) return false;
- {
- const Json::Value& j=json["softButtons"];
- if(!j.isArray()) return false;
- c.softButtons.resize(j.size());
- for(unsigned int i=0;i<j.size();i++)
- {
- SoftButton t;
- if(!SoftButtonMarshaller::fromJSON(j[i],t))
- return false;
- c.softButtons[i]=t;
- }
-
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_requestMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_requestMarshaller.h
deleted file mode 100644
index c829abc5c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_requestMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_UPDATETURNLIST_REQUESTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_UPDATETURNLIST_REQUESTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_request.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct UpdateTurnList_requestMarshaller
- {
- static bool checkIntegrity(UpdateTurnList_request& e);
- static bool checkIntegrityConst(const UpdateTurnList_request& e);
-
- static bool fromString(const std::string& s,UpdateTurnList_request& e);
- static const std::string toString(const UpdateTurnList_request& e);
-
- static bool fromJSON(const Json::Value& s,UpdateTurnList_request& e);
- static Json::Value toJSON(const UpdateTurnList_request& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_response.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_response.cpp
deleted file mode 100644
index 80f10fe40..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_response.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_response.h"
-#include "UpdateTurnList_responseMarshaller.h"
-
-namespace
-{
- const int PROTOCOL_VERSION = 2;
-}
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-UpdateTurnList_response& UpdateTurnList_response::operator =(const UpdateTurnList_response& c)
-{
- success = c.success;
- resultCode = c.resultCode;
- info = c.info ? new std::string(c.info[0]) : 0;
-
- return *this;
-}
-
-UpdateTurnList_response::~UpdateTurnList_response(void)
-{}
-
-
-UpdateTurnList_response::UpdateTurnList_response(const UpdateTurnList_response& c)
-{
- *this = c;
-}
-
-bool UpdateTurnList_response::checkIntegrity(void)
-{
- return UpdateTurnList_responseMarshaller::checkIntegrity(*this);
-}
-
-UpdateTurnList_response::UpdateTurnList_response(void) : NsSmartDeviceLinkRPC::SDLRPCResponse(PROTOCOL_VERSION)
-{}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_responseMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_responseMarshaller.cpp
deleted file mode 100644
index d2c9ca376..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_responseMarshaller.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_response.h"
-#include "ResultMarshaller.h"
-
-#include "UpdateTurnList_responseMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool UpdateTurnList_responseMarshaller::checkIntegrity(UpdateTurnList_response& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool UpdateTurnList_responseMarshaller::fromString(const std::string& s,UpdateTurnList_response& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string UpdateTurnList_responseMarshaller::toString(const UpdateTurnList_response& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool UpdateTurnList_responseMarshaller::checkIntegrityConst(const UpdateTurnList_response& s)
-{
- if(!ResultMarshaller::checkIntegrityConst(s.resultCode)) return false;
- if(s.info && s.info->length()>1000) return false;
- return true;
-}
-
-Json::Value UpdateTurnList_responseMarshaller::toJSON(const UpdateTurnList_response& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["success"]=Json::Value(e.success);
-
- json["resultCode"]=ResultMarshaller::toJSON(e.resultCode);
-
- if(e.info)
- json["info"]=Json::Value(*e.info);
-
- return json;
-}
-
-
-bool UpdateTurnList_responseMarshaller::fromJSON(const Json::Value& json,UpdateTurnList_response& c)
-{
- if(c.info) delete c.info;
- c.info=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("success")) return false;
- {
- const Json::Value& j=json["success"];
- if(!j.isBool()) return false;
- c.success=j.asBool();
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!ResultMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
- if(json.isMember("info"))
- {
- const Json::Value& j=json["info"];
- if(!j.isString()) return false;
- c.info=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_responseMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_responseMarshaller.h
deleted file mode 100644
index 10dc40c8c..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/UpdateTurnList_responseMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_UPDATETURNLIST_RESPONSEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_UPDATETURNLIST_RESPONSEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/UpdateTurnList_response.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct UpdateTurnList_responseMarshaller
- {
- static bool checkIntegrity(UpdateTurnList_response& e);
- static bool checkIntegrityConst(const UpdateTurnList_response& e);
-
- static bool fromString(const std::string& s,UpdateTurnList_response& e);
- static const std::string toString(const UpdateTurnList_response& e);
-
- static bool fromJSON(const Json::Value& s,UpdateTurnList_response& e);
- static Json::Value toJSON(const UpdateTurnList_response& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResult.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResult.cpp
deleted file mode 100644
index 15293e54b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResult.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleDataResult.h"
-#include "VehicleDataResultMarshaller.h"
-#include "VehicleDataResultCodeMarshaller.h"
-#include "VehicleDataTypeMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-VehicleDataResult::VehicleDataResult(const VehicleDataResult& c)
-{
- *this=c;
-}
-
-
-bool VehicleDataResult::checkIntegrity(void)
-{
- return VehicleDataResultMarshaller::checkIntegrity(*this);
-}
-
-
-VehicleDataResult::VehicleDataResult(void)
-{
-}
-
-
-
-bool VehicleDataResult::set_dataType(const VehicleDataType& dataType_)
-{
- if(!VehicleDataTypeMarshaller::checkIntegrityConst(dataType_)) return false;
- dataType=dataType_;
- return true;
-}
-
-bool VehicleDataResult::set_resultCode(const VehicleDataResultCode& resultCode_)
-{
- if(!VehicleDataResultCodeMarshaller::checkIntegrityConst(resultCode_)) return false;
- resultCode=resultCode_;
- return true;
-}
-
-
-
-
-const VehicleDataType& VehicleDataResult::get_dataType(void) const
-{
- return dataType;
-}
-
-
-const VehicleDataResultCode& VehicleDataResult::get_resultCode(void) const
-{
- return resultCode;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.cpp
deleted file mode 100644
index 99aa6b954..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleDataResultCode.h"
-#include "VehicleDataResultCodeMarshaller.h"
-#include "VehicleDataResultCodeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const VehicleDataResultCode::VehicleDataResultCodeInternal VehicleDataResultCodeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return VehicleDataResultCode::INVALID_ENUM;
- const struct PerfectHashTable* p=VehicleDataResultCode_intHash::getPointer(s,strlen(s));
- return p ? static_cast<VehicleDataResultCode::VehicleDataResultCodeInternal>(p->idx) : VehicleDataResultCode::INVALID_ENUM;
-}
-
-
-bool VehicleDataResultCodeMarshaller::fromJSON(const Json::Value& s,VehicleDataResultCode& e)
-{
- e.mInternal=VehicleDataResultCode::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=VehicleDataResultCode::INVALID_ENUM);
-}
-
-
-Json::Value VehicleDataResultCodeMarshaller::toJSON(const VehicleDataResultCode& e)
-{
- if(e.mInternal==VehicleDataResultCode::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool VehicleDataResultCodeMarshaller::fromString(const std::string& s,VehicleDataResultCode& e)
-{
- e.mInternal=VehicleDataResultCode::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string VehicleDataResultCodeMarshaller::toString(const VehicleDataResultCode& e)
-{
- Json::FastWriter writer;
- return e.mInternal==VehicleDataResultCode::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable VehicleDataResultCodeMarshaller::mHashTable[8]=
-{
- {"SUCCESS",0},
- {"DISALLOWED",1},
- {"USER_DISALLOWED",2},
- {"INVALID_ID",3},
- {"VEHICLE_DATA_NOT_AVAILABLE",4},
- {"DATA_ALREADY_SUBSCRIBED",5},
- {"DATA_NOT_SUBSCRIBED",6},
- {"IGNORED",7}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp
deleted file mode 100644
index 73000e0c7..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp
+++ /dev/null
@@ -1,24 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name VehicleDataResultCode_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-SUCCESS,0
-DISALLOWED,1
-USER_DISALLOWED,2
-INVALID_ID,3
-VEHICLE_DATA_NOT_AVAILABLE,4
-DATA_ALREADY_SUBSCRIBED,5
-DATA_NOT_SUBSCRIBED,6
-IGNORED,7
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.h
deleted file mode 100644
index 656f68e89..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_VEHICLEDATARESULTCODEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_VEHICLEDATARESULTCODEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleDataResultCode.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for VehicleDataResultCode
-
- class VehicleDataResultCodeMarshaller
- {
- public:
-
- static std::string toName(const VehicleDataResultCode& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(VehicleDataResultCode& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=VehicleDataResultCode::INVALID_ENUM;
- }
-
- static bool checkIntegrity(VehicleDataResultCode& e) { return e.mInternal!=VehicleDataResultCode::INVALID_ENUM; }
- static bool checkIntegrityConst(const VehicleDataResultCode& e) { return e.mInternal!=VehicleDataResultCode::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,VehicleDataResultCode& e);
- static const std::string toString(const VehicleDataResultCode& e);
-
- static bool fromJSON(const Json::Value& s,VehicleDataResultCode& e);
- static Json::Value toJSON(const VehicleDataResultCode& e);
-
- static const char* getName(VehicleDataResultCode::VehicleDataResultCodeInternal e)
- {
- return (e>=0 && e<8) ? mHashTable[e].name : NULL;
- }
-
- static const VehicleDataResultCode::VehicleDataResultCodeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[8];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.inc
deleted file mode 100644
index 3b9ab618b..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.inc
+++ /dev/null
@@ -1,166 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp */
-/* Computed positions: -k'1' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 8
-#define MIN_WORD_LENGTH 7
-#define MAX_WORD_LENGTH 26
-#define MIN_HASH_VALUE 7
-#define MAX_HASH_VALUE 28
-/* maximum key range = 22, duplicates = 0 */
-
-class VehicleDataResultCode_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-VehicleDataResultCode_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 5, 29,
- 29, 29, 29, 0, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 5, 29, 5, 0, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29
- };
- return len + asso_values[(unsigned char)str[0]];
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-VehicleDataResultCode_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 10, 0, 7, 0,
- 0, 10, 0, 0, 0, 0, 15, 0, 0, 0, 19, 0, 26, 0,
- 23
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp"
- {"IGNORED",7},
- {""}, {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp"
- {"INVALID_ID",3},
- {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp"
- {"SUCCESS",0},
- {""}, {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp"
- {"DISALLOWED",1},
- {""}, {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp"
- {"USER_DISALLOWED",2},
- {""}, {""}, {""},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp"
- {"DATA_NOT_SUBSCRIBED",6},
- {""},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp"
- {"VEHICLE_DATA_NOT_AVAILABLE",4},
- {""},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultCodeMarshaller.gp"
- {"DATA_ALREADY_SUBSCRIBED",5}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultMarshaller.cpp
deleted file mode 100644
index 97b29e28f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultMarshaller.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleDataResult.h"
-#include "VehicleDataResultCodeMarshaller.h"
-#include "VehicleDataTypeMarshaller.h"
-
-#include "VehicleDataResultMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool VehicleDataResultMarshaller::checkIntegrity(VehicleDataResult& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool VehicleDataResultMarshaller::fromString(const std::string& s,VehicleDataResult& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string VehicleDataResultMarshaller::toString(const VehicleDataResult& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool VehicleDataResultMarshaller::checkIntegrityConst(const VehicleDataResult& s)
-{
- if(!VehicleDataTypeMarshaller::checkIntegrityConst(s.dataType)) return false;
- if(!VehicleDataResultCodeMarshaller::checkIntegrityConst(s.resultCode)) return false;
- return true;
-}
-
-Json::Value VehicleDataResultMarshaller::toJSON(const VehicleDataResult& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["dataType"]=VehicleDataTypeMarshaller::toJSON(e.dataType);
-
- json["resultCode"]=VehicleDataResultCodeMarshaller::toJSON(e.resultCode);
-
-
- return json;
-}
-
-
-bool VehicleDataResultMarshaller::fromJSON(const Json::Value& json,VehicleDataResult& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("dataType")) return false;
- {
- const Json::Value& j=json["dataType"];
- if(!VehicleDataTypeMarshaller::fromJSON(j,c.dataType))
- return false;
- }
- if(!json.isMember("resultCode")) return false;
- {
- const Json::Value& j=json["resultCode"];
- if(!VehicleDataResultCodeMarshaller::fromJSON(j,c.resultCode))
- return false;
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultMarshaller.h
deleted file mode 100644
index 237f38dda..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataResultMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_VEHICLEDATARESULTMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_VEHICLEDATARESULTMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleDataResult.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct VehicleDataResultMarshaller
- {
- static bool checkIntegrity(VehicleDataResult& e);
- static bool checkIntegrityConst(const VehicleDataResult& e);
-
- static bool fromString(const std::string& s,VehicleDataResult& e);
- static const std::string toString(const VehicleDataResult& e);
-
- static bool fromJSON(const Json::Value& s,VehicleDataResult& e);
- static Json::Value toJSON(const VehicleDataResult& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.cpp
deleted file mode 100644
index 71312a476..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleDataType.h"
-#include "VehicleDataTypeMarshaller.h"
-#include "VehicleDataTypeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const VehicleDataType::VehicleDataTypeInternal VehicleDataTypeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return VehicleDataType::INVALID_ENUM;
- const struct PerfectHashTable* p=VehicleDataType_intHash::getPointer(s,strlen(s));
- return p ? static_cast<VehicleDataType::VehicleDataTypeInternal>(p->idx) : VehicleDataType::INVALID_ENUM;
-}
-
-
-bool VehicleDataTypeMarshaller::fromJSON(const Json::Value& s,VehicleDataType& e)
-{
- e.mInternal=VehicleDataType::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=VehicleDataType::INVALID_ENUM);
-}
-
-
-Json::Value VehicleDataTypeMarshaller::toJSON(const VehicleDataType& e)
-{
- if(e.mInternal==VehicleDataType::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool VehicleDataTypeMarshaller::fromString(const std::string& s,VehicleDataType& e)
-{
- e.mInternal=VehicleDataType::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string VehicleDataTypeMarshaller::toString(const VehicleDataType& e)
-{
- Json::FastWriter writer;
- return e.mInternal==VehicleDataType::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable VehicleDataTypeMarshaller::mHashTable[16]=
-{
- {"VEHICLEDATA_GPS",0},
- {"VEHICLEDATA_SPEED",1},
- {"VEHICLEDATA_FUELLEVEL",2},
- {"VEHICLEDATA_FUELECONOMY",3},
- {"VEHICLEDATA_ENGINERPM",4},
- {"VEHICLEDATA_BATTVOLTS",5},
- {"VEHICLEDATA_RAINSENSOR",6},
- {"VEHICLEDATA_ODOMETER",7},
- {"VEHICLEDATA_VIN",8},
- {"VEHICLEDATA_EXTERNTEMP",9},
- {"VEHICLEDATA_PRNDLSTATUS",10},
- {"VEHICLEDATA_TIREPRESSURE",11},
- {"VEHICLEDATA_BATTERYPACKVOLTAGE",12},
- {"VEHICLEDATA_BATTERYCURRENT",13},
- {"VEHICLEDATA_BATTERYTEMPERATURE",14},
- {"VEHICLEDATA_SATESN",15}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp
deleted file mode 100644
index 0cf47f536..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp
+++ /dev/null
@@ -1,32 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name VehicleDataType_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-VEHICLEDATA_GPS,0
-VEHICLEDATA_SPEED,1
-VEHICLEDATA_FUELLEVEL,2
-VEHICLEDATA_FUELECONOMY,3
-VEHICLEDATA_ENGINERPM,4
-VEHICLEDATA_BATTVOLTS,5
-VEHICLEDATA_RAINSENSOR,6
-VEHICLEDATA_ODOMETER,7
-VEHICLEDATA_VIN,8
-VEHICLEDATA_EXTERNTEMP,9
-VEHICLEDATA_PRNDLSTATUS,10
-VEHICLEDATA_TIREPRESSURE,11
-VEHICLEDATA_BATTERYPACKVOLTAGE,12
-VEHICLEDATA_BATTERYCURRENT,13
-VEHICLEDATA_BATTERYTEMPERATURE,14
-VEHICLEDATA_SATESN,15
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.h
deleted file mode 100644
index 440a77f8a..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_VEHICLEDATATYPEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_VEHICLEDATATYPEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleDataType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for VehicleDataType
-
- class VehicleDataTypeMarshaller
- {
- public:
-
- static std::string toName(const VehicleDataType& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(VehicleDataType& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=VehicleDataType::INVALID_ENUM;
- }
-
- static bool checkIntegrity(VehicleDataType& e) { return e.mInternal!=VehicleDataType::INVALID_ENUM; }
- static bool checkIntegrityConst(const VehicleDataType& e) { return e.mInternal!=VehicleDataType::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,VehicleDataType& e);
- static const std::string toString(const VehicleDataType& e);
-
- static bool fromJSON(const Json::Value& s,VehicleDataType& e);
- static Json::Value toJSON(const VehicleDataType& e);
-
- static const char* getName(VehicleDataType::VehicleDataTypeInternal e)
- {
- return (e>=0 && e<16) ? mHashTable[e].name : NULL;
- }
-
- static const VehicleDataType::VehicleDataTypeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[16];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.inc
deleted file mode 100644
index 57d12c7f2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.inc
+++ /dev/null
@@ -1,199 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp */
-/* Computed positions: -k'13,20' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-
-#define TOTAL_KEYWORDS 16
-#define MIN_WORD_LENGTH 15
-#define MAX_WORD_LENGTH 30
-#define MIN_HASH_VALUE 15
-#define MAX_HASH_VALUE 36
-/* maximum key range = 22, duplicates = 0 */
-
-class VehicleDataType_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline unsigned int
-VehicleDataType_intHash::hash (register const char *str, register unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 0, 0, 10, 37, 0,
- 10, 5, 37, 37, 37, 37, 37, 37, 0, 0,
- 5, 37, 5, 0, 0, 37, 0, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37
- };
- register int hval = len;
-
- switch (hval)
- {
- default:
- hval += asso_values[(unsigned char)str[19]];
- /*FALLTHROUGH*/
- case 19:
- case 18:
- case 17:
- case 16:
- case 15:
- case 14:
- case 13:
- hval += asso_values[(unsigned char)str[12]];
- break;
- }
- return hval;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-VehicleDataType_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 15, 0, 17, 18, 0, 15, 21, 22, 0, 24, 20, 21, 22,
- 23, 0, 30, 21, 0, 23, 0, 30, 26
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
- {""}, {""}, {""}, {""}, {""}, {""},
-#line 25 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_VIN",8},
- {""},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_SPEED",1},
-#line 32 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_SATESN",15},
- {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_GPS",0},
-#line 22 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_BATTVOLTS",5},
-#line 26 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_EXTERNTEMP",9},
- {""},
-#line 28 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_TIREPRESSURE",11},
-#line 24 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_ODOMETER",7},
-#line 21 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_ENGINERPM",4},
-#line 23 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_RAINSENSOR",6},
-#line 27 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_PRNDLSTATUS",10},
- {""},
-#line 31 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_BATTERYTEMPERATURE",14},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_FUELLEVEL",2},
- {""},
-#line 20 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_FUELECONOMY",3},
- {""},
-#line 29 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_BATTERYPACKVOLTAGE",12},
-#line 30 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleDataTypeMarshaller.gp"
- {"VEHICLEDATA_BATTERYCURRENT",13}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleType.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleType.cpp
deleted file mode 100644
index b647881c3..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleType.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleType.h"
-#include "VehicleTypeMarshaller.h"
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-VehicleType& VehicleType::operator =(const VehicleType& c)
-{
- make=c.make ? new std::string(c.make[0]) : 0;
- model=c.model ? new std::string(c.model[0]) : 0;
- modelYear=c.modelYear ? new std::string(c.modelYear[0]) : 0;
- trim=c.trim ? new std::string(c.trim[0]) : 0;
-
- return *this;
-}
-
-
-VehicleType::~VehicleType(void)
-{
- if(make)
- delete make;
- if(model)
- delete model;
- if(modelYear)
- delete modelYear;
- if(trim)
- delete trim;
-}
-
-
-VehicleType::VehicleType(const VehicleType& c)
-{
- *this=c;
-}
-
-
-bool VehicleType::checkIntegrity(void)
-{
- return VehicleTypeMarshaller::checkIntegrity(*this);
-}
-
-
-VehicleType::VehicleType(void) :
- make(0),
- model(0),
- modelYear(0),
- trim(0)
-{
-}
-
-
-
-bool VehicleType::set_make(const std::string& make_)
-{
- if(make_.length()>500) return false;
- delete make;
- make=0;
-
- make=new std::string(make_);
- return true;
-}
-
-void VehicleType::reset_make(void)
-{
- if(make)
- delete make;
- make=0;
-}
-
-bool VehicleType::set_model(const std::string& model_)
-{
- if(model_.length()>500) return false;
- delete model;
- model=0;
-
- model=new std::string(model_);
- return true;
-}
-
-void VehicleType::reset_model(void)
-{
- if(model)
- delete model;
- model=0;
-}
-
-bool VehicleType::set_modelYear(const std::string& modelYear_)
-{
- if(modelYear_.length()>500) return false;
- delete modelYear;
- modelYear=0;
-
- modelYear=new std::string(modelYear_);
- return true;
-}
-
-void VehicleType::reset_modelYear(void)
-{
- if(modelYear)
- delete modelYear;
- modelYear=0;
-}
-
-bool VehicleType::set_trim(const std::string& trim_)
-{
- if(trim_.length()>500) return false;
- delete trim;
- trim=0;
-
- trim=new std::string(trim_);
- return true;
-}
-
-void VehicleType::reset_trim(void)
-{
- if(trim)
- delete trim;
- trim=0;
-}
-
-
-
-
-const std::string* VehicleType::get_make(void) const
-{
- return make;
-}
-
-
-const std::string* VehicleType::get_model(void) const
-{
- return model;
-}
-
-
-const std::string* VehicleType::get_modelYear(void) const
-{
- return modelYear;
-}
-
-
-const std::string* VehicleType::get_trim(void) const
-{
- return trim;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleTypeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleTypeMarshaller.cpp
deleted file mode 100644
index af3067400..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleTypeMarshaller.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleType.h"
-
-
-#include "VehicleTypeMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool VehicleTypeMarshaller::checkIntegrity(VehicleType& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool VehicleTypeMarshaller::fromString(const std::string& s,VehicleType& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string VehicleTypeMarshaller::toString(const VehicleType& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool VehicleTypeMarshaller::checkIntegrityConst(const VehicleType& s)
-{
- if(s.make && s.make->length()>500) return false;
- if(s.model && s.model->length()>500) return false;
- if(s.modelYear && s.modelYear->length()>500) return false;
- if(s.trim && s.trim->length()>500) return false;
- return true;
-}
-
-Json::Value VehicleTypeMarshaller::toJSON(const VehicleType& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- if(e.make)
- json["make"]=Json::Value(*e.make);
-
- if(e.model)
- json["model"]=Json::Value(*e.model);
-
- if(e.modelYear)
- json["modelYear"]=Json::Value(*e.modelYear);
-
- if(e.trim)
- json["trim"]=Json::Value(*e.trim);
-
-
- return json;
-}
-
-
-bool VehicleTypeMarshaller::fromJSON(const Json::Value& json,VehicleType& c)
-{
- if(c.make) delete c.make;
- c.make=0;
-
- if(c.model) delete c.model;
- c.model=0;
-
- if(c.modelYear) delete c.modelYear;
- c.modelYear=0;
-
- if(c.trim) delete c.trim;
- c.trim=0;
-
- try
- {
- if(!json.isObject()) return false;
-
- if(json.isMember("make"))
- {
- const Json::Value& j=json["make"];
- if(!j.isString()) return false;
- c.make=new std::string(j.asString());
- }
- if(json.isMember("model"))
- {
- const Json::Value& j=json["model"];
- if(!j.isString()) return false;
- c.model=new std::string(j.asString());
- }
- if(json.isMember("modelYear"))
- {
- const Json::Value& j=json["modelYear"];
- if(!j.isString()) return false;
- c.modelYear=new std::string(j.asString());
- }
- if(json.isMember("trim"))
- {
- const Json::Value& j=json["trim"];
- if(!j.isString()) return false;
- c.trim=new std::string(j.asString());
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleTypeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleTypeMarshaller.h
deleted file mode 100644
index ea28ffe70..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VehicleTypeMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_VEHICLETYPEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_VEHICLETYPEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VehicleType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct VehicleTypeMarshaller
- {
- static bool checkIntegrity(VehicleType& e);
- static bool checkIntegrityConst(const VehicleType& e);
-
- static bool fromString(const std::string& s,VehicleType& e);
- static const std::string toString(const VehicleType& e);
-
- static bool fromJSON(const Json::Value& s,VehicleType& e);
- static Json::Value toJSON(const VehicleType& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.cpp
deleted file mode 100644
index f82ee2417..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/VrCapabilities.h"
-#include "VrCapabilitiesMarshaller.h"
-#include "VrCapabilitiesMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const VrCapabilities::VrCapabilitiesInternal VrCapabilitiesMarshaller::getIndex(const char* s)
-{
- if(!s)
- return VrCapabilities::INVALID_ENUM;
- const struct PerfectHashTable* p=VrCapabilities_intHash::getPointer(s,strlen(s));
- return p ? static_cast<VrCapabilities::VrCapabilitiesInternal>(p->idx) : VrCapabilities::INVALID_ENUM;
-}
-
-
-bool VrCapabilitiesMarshaller::fromJSON(const Json::Value& s,VrCapabilities& e)
-{
- e.mInternal=VrCapabilities::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=VrCapabilities::INVALID_ENUM);
-}
-
-
-Json::Value VrCapabilitiesMarshaller::toJSON(const VrCapabilities& e)
-{
- if(e.mInternal==VrCapabilities::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool VrCapabilitiesMarshaller::fromString(const std::string& s,VrCapabilities& e)
-{
- e.mInternal=VrCapabilities::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string VrCapabilitiesMarshaller::toString(const VrCapabilities& e)
-{
- Json::FastWriter writer;
- return e.mInternal==VrCapabilities::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable VrCapabilitiesMarshaller::mHashTable[1]=
-{
- {"TEXT",0}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.gp
deleted file mode 100644
index c9afb3021..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.gp
+++ /dev/null
@@ -1,17 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name VrCapabilities_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-TEXT,0
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.h
deleted file mode 100644
index 8dcc212c5..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_VRCAPABILITIESMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_VRCAPABILITIESMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VrCapabilities.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for VrCapabilities
-
- class VrCapabilitiesMarshaller
- {
- public:
-
- static std::string toName(const VrCapabilities& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(VrCapabilities& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=VrCapabilities::INVALID_ENUM;
- }
-
- static bool checkIntegrity(VrCapabilities& e) { return e.mInternal!=VrCapabilities::INVALID_ENUM; }
- static bool checkIntegrityConst(const VrCapabilities& e) { return e.mInternal!=VrCapabilities::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,VrCapabilities& e);
- static const std::string toString(const VrCapabilities& e);
-
- static bool fromJSON(const Json::Value& s,VrCapabilities& e);
- static Json::Value toJSON(const VrCapabilities& e);
-
- static const char* getName(VrCapabilities::VrCapabilitiesInternal e)
- {
- return (e>=0 && e<1) ? mHashTable[e].name : NULL;
- }
-
- static const VrCapabilities::VrCapabilitiesInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[1];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.inc
deleted file mode 100644
index 1048563f4..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.inc
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 1
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 4
-#define MIN_HASH_VALUE 4
-#define MAX_HASH_VALUE 4
-/* maximum key range = 1, duplicates = 0 */
-
-namespace NsSmartDeviceLinkRPCV2 {
-
-class VrCapabilities_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-VrCapabilities_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-VrCapabilities_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 4
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrCapabilitiesMarshaller.gp"
- {"TEXT",0}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItem.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItem.cpp
deleted file mode 100644
index a87dd3949..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItem.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VrHelpItem.h"
-#include "VrHelpItemMarshaller.h"
-#include "ImageMarshaller.h"
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-VrHelpItem::VrHelpItem(const VrHelpItem& c)
-{
- *this=c;
-}
-
-
-bool VrHelpItem::checkIntegrity(void)
-{
- return VrHelpItemMarshaller::checkIntegrity(*this);
-}
-
-
-VrHelpItem::VrHelpItem(void)
-{
-}
-
-
-
-bool VrHelpItem::set_image(const Image& image_)
-{
- if(!ImageMarshaller::checkIntegrityConst(image_)) return false;
- image=image_;
- return true;
-}
-
-bool VrHelpItem::set_position(unsigned int position_)
-{
- if(position_>8) return false;
- if(position_<1) return false;
- position=position_;
- return true;
-}
-
-bool VrHelpItem::set_text(const std::string& text_)
-{
- if(text_.length()>500) return false;
- text=text_;
- return true;
-}
-
-
-
-
-const Image& VrHelpItem::get_image(void) const
-{
- return image;
-}
-
-
-unsigned int VrHelpItem::get_position(void) const
-{
- return position;
-}
-
-
-const std::string& VrHelpItem::get_text(void) const
-{
- return text;
-}
-
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItemMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItemMarshaller.cpp
deleted file mode 100644
index 23d010c6d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItemMarshaller.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VrHelpItem.h"
-#include "ImageMarshaller.h"
-
-#include "VrHelpItemMarshaller.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-bool VrHelpItemMarshaller::checkIntegrity(VrHelpItem& s)
-{
- return checkIntegrityConst(s);
-}
-
-
-bool VrHelpItemMarshaller::fromString(const std::string& s,VrHelpItem& e)
-{
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(!fromJSON(json,e)) return false;
- }
- catch(...)
- {
- return false;
- }
- return true;
-}
-
-
-const std::string VrHelpItemMarshaller::toString(const VrHelpItem& e)
-{
- Json::FastWriter writer;
- return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
-}
-
-
-bool VrHelpItemMarshaller::checkIntegrityConst(const VrHelpItem& s)
-{
- if(!ImageMarshaller::checkIntegrityConst(s.image)) return false;
- if(s.position>8) return false;
- if(s.position<1) return false;
- if(s.text.length()>500) return false;
- return true;
-}
-
-Json::Value VrHelpItemMarshaller::toJSON(const VrHelpItem& e)
-{
- Json::Value json(Json::objectValue);
- if(!checkIntegrityConst(e))
- return Json::Value(Json::nullValue);
-
- json["image"]=ImageMarshaller::toJSON(e.image);
-
- json["position"]=Json::Value(e.position);
-
- json["text"]=Json::Value(e.text);
-
-
- return json;
-}
-
-
-bool VrHelpItemMarshaller::fromJSON(const Json::Value& json,VrHelpItem& c)
-{
- try
- {
- if(!json.isObject()) return false;
-
- if(!json.isMember("image")) return false;
- {
- const Json::Value& j=json["image"];
- if(!ImageMarshaller::fromJSON(j,c.image))
- return false;
- }
- if(!json.isMember("position")) return false;
- {
- const Json::Value& j=json["position"];
- if(!j.isInt()) return false;
- c.position=j.asInt();
- }
- if(!json.isMember("text")) return false;
- {
- const Json::Value& j=json["text"];
- if(!j.isString()) return false;
- c.text=j.asString();
- }
-
- }
- catch(...)
- {
- return false;
- }
- return checkIntegrity(c);
-}
-
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItemMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItemMarshaller.h
deleted file mode 100644
index c426beb5f..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/VrHelpItemMarshaller.h
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_VRHELPITEMMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_VRHELPITEMMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/VrHelpItem.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
- struct VrHelpItemMarshaller
- {
- static bool checkIntegrity(VrHelpItem& e);
- static bool checkIntegrityConst(const VrHelpItem& e);
-
- static bool fromString(const std::string& s,VrHelpItem& e);
- static const std::string toString(const VrHelpItem& e);
-
- static bool fromJSON(const Json::Value& s,VrHelpItem& e);
- static Json::Value toJSON(const VrHelpItem& e);
- };
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.cpp
deleted file mode 100644
index 1dc2a7506..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include <cstring>
-#include "../include/JSONHandler/SDLRPCObjects/V2/messageType.h"
-#include "messageTypeMarshaller.h"
-#include "messageTypeMarshaller.inc"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-using namespace NsSmartDeviceLinkRPCV2;
-
-
-const messageType::messageTypeInternal messageTypeMarshaller::getIndex(const char* s)
-{
- if(!s)
- return messageType::INVALID_ENUM;
- const struct PerfectHashTable* p=messageType_intHash::getPointer(s,strlen(s));
- return p ? static_cast<messageType::messageTypeInternal>(p->idx) : messageType::INVALID_ENUM;
-}
-
-
-bool messageTypeMarshaller::fromJSON(const Json::Value& s,messageType& e)
-{
- e.mInternal=messageType::INVALID_ENUM;
- if(!s.isString())
- return false;
-
- e.mInternal=getIndex(s.asString().c_str());
- return (e.mInternal!=messageType::INVALID_ENUM);
-}
-
-
-Json::Value messageTypeMarshaller::toJSON(const messageType& e)
-{
- if(e.mInternal==messageType::INVALID_ENUM)
- return Json::Value(Json::nullValue);
- const char* s=getName(e.mInternal);
- return s ? Json::Value(s) : Json::Value(Json::nullValue);
-}
-
-
-bool messageTypeMarshaller::fromString(const std::string& s,messageType& e)
-{
- e.mInternal=messageType::INVALID_ENUM;
- try
- {
- Json::Reader reader;
- Json::Value json;
- if(!reader.parse(s,json,false)) return false;
- if(fromJSON(json,e)) return true;
- }
- catch(...)
- {
- return false;
- }
- return false;
-}
-
-const std::string messageTypeMarshaller::toString(const messageType& e)
-{
- Json::FastWriter writer;
- return e.mInternal==messageType::INVALID_ENUM ? "" : writer.write(toJSON(e));
-
-}
-
-const PerfectHashTable messageTypeMarshaller::mHashTable[3]=
-{
- {"request",0},
- {"response",1},
- {"notification",2}
-};
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.gp b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.gp
deleted file mode 100644
index b5c842d92..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.gp
+++ /dev/null
@@ -1,19 +0,0 @@
-%language=C++
-%struct-type
-%define lookup-function-name getPointer
-%define class-name messageType_intHash
-%omit-struct-type
-%readonly-tables
-%compare-strncmp
-%compare-lengths
-
-struct NsSmartDeviceLinkRPCV2::PerfectHashTable
-{
- const char *name;
- unsigned int idx;
-};
-
-%%
-request,0
-response,1
-notification,2
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.h b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.h
deleted file mode 100644
index d74b9bd0d..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.h
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#ifndef NSSMARTDEVICELINKRPCV2_MESSAGETYPEMARSHALLER_INCLUDE
-#define NSSMARTDEVICELINKRPCV2_MESSAGETYPEMARSHALLER_INCLUDE
-
-#include <string>
-#include <json/json.h>
-
-#include "PerfectHashTable.h"
-
-#include "../include/JSONHandler/SDLRPCObjects/V2/messageType.h"
-
-
-/*
- interface Ford Sync RAPI
- version 2.0O
- date 2012-11-02
- generated at Thu Jan 24 06:36:23 2013
- source stamp Thu Jan 24 06:35:41 2013
- author RC
-*/
-
-namespace NsSmartDeviceLinkRPCV2
-{
-
-//! marshalling class for messageType
-
- class messageTypeMarshaller
- {
- public:
-
- static std::string toName(const messageType& e) { return getName(e.mInternal) ?: ""; }
-
- static bool fromName(messageType& e,const std::string& s)
- {
- return (e.mInternal=getIndex(s.c_str()))!=messageType::INVALID_ENUM;
- }
-
- static bool checkIntegrity(messageType& e) { return e.mInternal!=messageType::INVALID_ENUM; }
- static bool checkIntegrityConst(const messageType& e) { return e.mInternal!=messageType::INVALID_ENUM; }
-
- static bool fromString(const std::string& s,messageType& e);
- static const std::string toString(const messageType& e);
-
- static bool fromJSON(const Json::Value& s,messageType& e);
- static Json::Value toJSON(const messageType& e);
-
- static const char* getName(messageType::messageTypeInternal e)
- {
- return (e>=0 && e<3) ? mHashTable[e].name : NULL;
- }
-
- static const messageType::messageTypeInternal getIndex(const char* s);
-
- static const PerfectHashTable mHashTable[3];
- };
-
-}
-
-#endif
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.inc b/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.inc
deleted file mode 100644
index a4f943916..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.inc
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* C++ code produced by gperf version 3.0.3 */
-/* Command-line: gperf --output-file=./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.inc ./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.gp */
-/* Computed positions: -k'' */
-
-
-#define TOTAL_KEYWORDS 3
-#define MIN_WORD_LENGTH 7
-#define MAX_WORD_LENGTH 12
-#define MIN_HASH_VALUE 7
-#define MAX_HASH_VALUE 12
-/* maximum key range = 6, duplicates = 0 */
-
-class messageType_intHash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *getPointer (const char *str, unsigned int len);
-};
-
-inline /*ARGSUSED*/
-unsigned int
-messageType_intHash::hash (register const char *str, register unsigned int len)
-{
- return len;
-}
-
-const struct NsSmartDeviceLinkRPCV2::PerfectHashTable *
-messageType_intHash::getPointer (register const char *str, register unsigned int len)
-{
- static const unsigned char lengthtable[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 7, 8, 0, 0, 0, 12
- };
- static const struct NsSmartDeviceLinkRPCV2::PerfectHashTable wordlist[] =
- {
- {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 17 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.gp"
- {"request",0},
-#line 18 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.gp"
- {"response",1},
- {""}, {""}, {""},
-#line 19 "./src/components/JSONHandler/src/SDLRPCObjectsImpl/V2/messageTypeMarshaller.gp"
- {"notification",2}
- };
-
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- if (len == lengthtable[key])
- {
- register const char *s = wordlist[key].name;
-
- if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
- return &wordlist[key];
- }
- }
- return 0;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCRequest.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCRequest.cpp
deleted file mode 100644
index 124c7bdb2..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCRequest.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
-* \file SDLRPCRequest.cpp
-* \brief SDLRPCRequest class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "JSONHandler/SDLRPCRequest.h"
-
-using namespace NsSmartDeviceLinkRPC;
-
-SDLRPCRequest::SDLRPCRequest( unsigned int protocolVersion ) :
-SDLRPCMessage( protocolVersion, REQUEST )
-, mCorrelationID(0)
-{}
-
-SDLRPCRequest::SDLRPCRequest(void) :
-SDLRPCMessage( 0, REQUEST )
-, mCorrelationID(0)
-{}
-
-SDLRPCRequest::SDLRPCRequest( unsigned int protocolVersion, int methodId ) :
-SDLRPCMessage( protocolVersion, REQUEST, methodId)
-, mCorrelationID(0)
-{}
-
-SDLRPCRequest::~SDLRPCRequest()
-{}
-
-unsigned int SDLRPCRequest::getCorrelationID() const
-{
- return mCorrelationID;
-}
-
-void SDLRPCRequest::setCorrelationID( unsigned int correlationID )
-{
- mCorrelationID = correlationID;
-}
diff --git a/SDL_Core/src/components/JSONHandler/src/SDLRPCResponse.cpp b/SDL_Core/src/components/JSONHandler/src/SDLRPCResponse.cpp
deleted file mode 100644
index 705d34873..000000000
--- a/SDL_Core/src/components/JSONHandler/src/SDLRPCResponse.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
-* \file SDLRPCResponse.cpp
-* \brief SDLRPCResponse class source file.
-* Copyright (c) 2013, Ford Motor Company
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// Redistributions of source code must retain the above copyright notice, this
-// list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided with the
-// distribution.
-//
-// Neither the name of the Ford Motor Company nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "JSONHandler/SDLRPCResponse.h"
-//#include "../src/JSONHandler/ALRPCObjectsImpl/V1/ResultMarshaller.h"
-
-using namespace NsSmartDeviceLinkRPC;
-
-SDLRPCResponse::SDLRPCResponse(unsigned int protocolVersion)
- : SDLRPCMessage(protocolVersion, RESPONSE)
- , mCorrelationID(0)
- , info(NULL)
- , success(false)
- , resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_ENUM)
-{}
-
-SDLRPCResponse::SDLRPCResponse(void)
- : SDLRPCMessage(0, RESPONSE)
- , mCorrelationID(0)
- , info(NULL)
- , success(false)
- , resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_ENUM)
-{}
-
-SDLRPCResponse::SDLRPCResponse(unsigned int protocolVersion, int methodId)
- : SDLRPCMessage(protocolVersion, RESPONSE, methodId)
- , mCorrelationID(0)
- , info(NULL)
- , success(false)
- , resultCode(NsSmartDeviceLinkRPCV2::Result::INVALID_ENUM)
-{}
-
-SDLRPCResponse::~SDLRPCResponse()
-{
- if (info)
- {
- delete info;
- }
-}
-
-unsigned int SDLRPCResponse::getCorrelationID() const
-{
- return mCorrelationID;
-}
-
-void SDLRPCResponse::setCorrelationID(unsigned int correlationID)
-{
- mCorrelationID = correlationID;
-}
-
-bool SDLRPCResponse::get_success(void) const
-{
- return success;
-}
-
-const NsSmartDeviceLinkRPCV2::Result& SDLRPCResponse::get_resultCode(void) const
-{
- return resultCode;
-}
-
-bool SDLRPCResponse::set_success(bool success_)
-{
- success = success_;
- return true;
-}
-
-bool SDLRPCResponse::set_resultCode(const NsSmartDeviceLinkRPCV2::Result& resultCode_)
-{
- /*if (!NsSmartDeviceLinkRPC::ResultMarshaller::checkIntegrityConst(resultCode_))
- {
- return false;
- }*/
-
- resultCode = resultCode_;
- return true;
-}
-
-bool SDLRPCResponse::set_info(const std::string& info_)
-{
- if (info_.length() > 1000)
- {
- return false;
- }
-
- delete info;
- info = NULL;
-
- info = new std::string(info_);
- return true;
-}
-
-void SDLRPCResponse::reset_info(void)
-{
- if (info)
- {
- delete info;
- }
-
- info = NULL;
-}
-
-const std::string* SDLRPCResponse::get_info(void) const
-{
- return info;
-}
diff --git a/SDL_Core/src/components/ProtocolHandler/CMakeLists.txt b/SDL_Core/src/components/ProtocolHandler/CMakeLists.txt
deleted file mode 100644
index 10e96ee5c..000000000
--- a/SDL_Core/src/components/ProtocolHandler/CMakeLists.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-include_directories (
- ./include
- ../Utils/include/
- ../TransportManager/include/
- ../../thirdPartyLibs/logger/include/
- ../../thirdPartyLibs/logger/log4cplus-1.1.0/include/
- ${CMAKE_BINARY_DIR}/src/thirdPartyLibs/logger/log4cplus-1.1.0/include
-)
-
-set (SOURCES
- ./src/SmartDeviceLinkRawMessage.cpp
- ./src/ProtocolHandler.cpp
- ./src/ProtocolPacket.cpp
-)
-
-add_library("ProtocolHandler" ${SOURCES}) \ No newline at end of file
diff --git a/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/IProtocolObserver.h b/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/IProtocolObserver.h
deleted file mode 100644
index b0f2fe79b..000000000
--- a/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/IProtocolObserver.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
-* \file IProtocolObserver.h
-* \brief IProtocolObserver class header.
-*
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef IPROTOCOLOBSERVER_CLASS
-#define IPROTOCOLOBSERVER_CLASS
-
-/**
- *\namespace NsProtocolHandler
- *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality.
-*/
-namespace NsProtocolHandler
-{
- class SmartDeviceLinkRawMessage;
-
- /**
- * \class IProtocolObserver
- * \brief Interface for making a bridge between
- * ProtocolHandler and JSONHandler components.
- */
- class IProtocolObserver
- {
- public:
-
- /**
- * \brief Callback function which is used by ProtocolHandler
- * when new message is received from Mobile Application.
- * \param message Message with supporting params received
- */
- virtual void onDataReceivedCallback( const SmartDeviceLinkRawMessage * message ) = 0;
-
- protected:
- /**
- * \brief Destructor
- */
- virtual ~IProtocolObserver() {}
-
- };
-}
-
-#endif //IPROTOCOLOBSERVER_CLASS
diff --git a/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ISessionObserver.h b/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ISessionObserver.h
deleted file mode 100644
index 324e54eba..000000000
--- a/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ISessionObserver.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
-* \file ISessionObserver.h
-* \brief ISessionObserver class header file.
-*
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef ISESSIONOBSERVER_CLASS
-#define ISESSIONOBSERVER_CLASS
-
-/**
- *\namespace NsProtocolHandler
- *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality.
-*/
-namespace NsProtocolHandler
-{
- /**
- * \class ISessionObserver
- * \brief Interface for making a bridge between ProtocolHandler and
- * ConnectionHandler components.
- */
- class ISessionObserver
- {
- public:
- /**
- * \brief Callback function used by ProtocolHandler
- * when Mobile Application initiates start of new session.
- * \param connectionHandle Connection identifier whithin which session has to be started.
- * \return int Id (number) of new session if successful otherwise -1.
- */
- virtual int onSessionStartedCallback(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle) = 0;
-
- /**
- * \brief Callback function used by ProtocolHandler
- * when Mobile Application initiates session ending.
- * \param connectionHandle Connection identifier whithin which session exists
- * \param sessionId Identifier of the session to be ended
- * \param hashCode Hash used only in second version of SmartDeviceLink protocol.
- * If not equal to hash assigned to session on start then operation fails.
- * \return int -1 if operation fails session key otherwise
- */
- virtual int onSessionEndedCallback(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned char sessionId,
- unsigned int hashCode) = 0;
-
- /**
- * \brief Creates unique identifier of session (can be used as hash)
- * from given connection identifier
- * whithin which session exists and session number.
- * \param connectionHandle Connection identifier whithin which session exists
- * \param sessionId Identifier of the session
- * \return int Unique key for session
- */
- virtual int keyFromPair(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned char sessionId) = 0;
-
- /**
- * \brief Returns connection identifier and session number from given session key
- * \param key Unique key used by other components as session identifier
- * \param connectionHandle Returned: Connection identifier whithin which session exists
- * \param sessionId Returned: Number of session
- */
- virtual void pairFromKey(int key, NsSmartDeviceLink::NsTransportManager::tConnectionHandle & connectionHandle,
- unsigned char & sessionId) = 0;
- protected:
-
- /**
- * \brief Destructor
- */
- virtual ~ISessionObserver() {};
- };
-}
-
-#endif // ISESSIONOBSERVER_CLASS
diff --git a/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ProtocolHandler.h b/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ProtocolHandler.h
deleted file mode 100644
index b3bc7d1b1..000000000
--- a/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ProtocolHandler.h
+++ /dev/null
@@ -1,312 +0,0 @@
-/**
-* \file ProtocolHandler.h
-* \brief ProtocolHandler class header file.
-*
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef PROTOCOLHANDLER_CLASS
-#define PROTOCOLHANDLER_CLASS
-
-#include <map>
-#include "Logger.hpp"
-#include "Utils/MessageQueue.h"
-#include "ProtocolHandler/SmartDeviceLinkRawMessage.h"
-#include "ProtocolHandler/ProtocolPacket.h"
-#include "TransportManager/ITransportManagerDataListener.hpp"
-
-/**
- *\namespace NsProtocolHandler
- *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality.
-*/
-namespace NsProtocolHandler
-{
- class IProtocolObserver;
- class ISessionObserver;
-
- /**
- * \class ProtocolHandler
- * \brief Class for handling message exchange between Transport and higher layers.
- * Receives message in form of array of bytes, parses its protocol, handles according to
- * parsing results (version number, start/end session etc) and if needed passes message
- * to JSON Handler or notifies Connection Handler about activities around sessions.
- */
- class ProtocolHandler : public NsSmartDeviceLink::NsTransportManager::ITransportManagerDataListener
- {
- public:
- /**
- * \brief Constructor
- * \param transportManager Pointer to Transport layer handler for message exchange.
- */
- ProtocolHandler( NsSmartDeviceLink::NsTransportManager::ITransportManager * transportManager );
-
- /**
- * \brief Destructor
- */
- ~ProtocolHandler();
-
- /**
- * \brief Sets pointer for higher layer handler for message exchange
- * \param observer Pointer to object of the class implementing IProtocolObserver
- */
- void setProtocolObserver( IProtocolObserver * observer );
-
- /**
- * \brief Sets pointer for Connection Handler layer for managing sessions
- * \param observer Pointer to object of the class implementing ISessionObserver
- */
- void setSessionObserver( ISessionObserver * observer );
-
- /**
- * \brief Method for sending message to Mobile Application.
- * \param message Message with params to be sent to Mobile App.
- */
- void sendData(const SmartDeviceLinkRawMessage * message);
-
- protected:
-
- /**
- * \brief Static method for handling message from Transport Layer.
- * \param params Pointer to instance of ProtocolHandler class.
- */
- static void * handleMessagesFromMobileApp( void * params );
-
- /**
- * \brief Static method for handling message to Transport Layer.
- * \param params Pointer to instance of ProtocolHandler class.
- */
- static void * handleMessagesToMobileApp( void * params );
-
- /**
- * \brief Sends fail of ending session to mobile application.
- * \param connectionHandle Identifier of connection whithin which session exists
- * \param sessionID ID of session ment to be ended
- * \param serviceType Type of session: RPC or BULK Data. RPC by default.
- */
- void sendEndSessionNAck( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned int sessionID,
- unsigned char serviceType = SERVICE_TYPE_RPC );
-
- /**
- * \brief Sends acknowledgement of starting session to mobile application
- * with session number and hash code for second version of protocol.
- * \param connectionHandle Identifier of connection whithin which session was started
- * \param sessionID ID of session to be sent to mobile applicatin.
- * \param protocolVersion Version of protocol used for communication
- * \param hashCode For second version of protocol: identifier of session to be sent to
- * mobile app for using when ending session.
- * \param serviceType Type of session: RPC or BULK Data. RPC by default.
- */
- void sendStartSessionAck( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned char sessionID,
- unsigned char protocolVersion,
- unsigned int hashCode = 0,
- unsigned char serviceType = SERVICE_TYPE_RPC );
-
- /**
- * \brief Sends fail of starting session to mobile application.
- * \param connectionHandle Identifier of connection whithin which session ment to be started
- * \param serviceType Type of session: RPC or BULK Data. RPC by default.
- */
- void sendStartSessionNAck( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned char serviceType = SERVICE_TYPE_RPC );
-
- private:
- /**
- * \struct IncomingMessage
- * \brief Used for storing both message and info about message:
- * its size and connection through which it's handled.
- */
- struct IncomingMessage
- {
- /**
- * \brief Identifier of connection through which message is transported.
- */
- NsSmartDeviceLink::NsTransportManager::tConnectionHandle mConnectionHandle;
- /**
- * \brief Message string.
- */
- unsigned char * mData;
- /**
- * \brief Size of message.
- */
- unsigned int mDataSize;
- };
-
- /**
- * @brief Processing frame received callbacks.
- *
- * @param ConnectionHandle Connection handle.
- * @param Data Received frame payload data.
- * @param DataSize Size of data in bytes.
- **/
- virtual void onFrameReceived(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- const uint8_t * data, size_t dataSize);
-
- /**
- * @brief Frame send completed callback.
- *
- * @param ConnectionHandle Connection handle.
- * @param UserData User data that was previously passed to ITransportManager::sendFrame.
- * @param SendStatus Result status.
- **/
- virtual void onFrameSendCompleted(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- int userData, NsSmartDeviceLink::NsTransportManager::ESendStatus sendStatus);
-
- /**
- * \brief Sends message which size permits to send it in one frame.
- * \param connectionHandle Identifier of connection through which message is to be sent.
- * \param sessionID ID of session through which message is to be sent.
- * \param protocolVersion Version of Protocol used in message.
- * \param servType Type of session, RPC or BULK Data
- * \param dataSize Size of message excluding protocol header
- * \param data Message string
- * \param compress Compression flag
- * \return \saRESULT_CODE Status of operation
- */
- RESULT_CODE sendSingleFrameMessage(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- const unsigned char sessionID,
- unsigned int protocolVersion,
- const unsigned char servType,
- const unsigned int dataSize,
- const unsigned char *data,
- const bool compress);
-
- /**
- * \brief Sends message which size doesn't permit to send it in one frame.
- * \param connectionHandle Identifier of connection through which message is to be sent.
- * \param sessionID ID of session through which message is to be sent.
- * \param protocolVersion Version of Protocol used in message.
- * \param servType Type of session, RPC or BULK Data
- * \param dataSize Size of message excluding protocol header
- * \param data Message string
- * \param compress Compression flag
- * \param maxDataSize Maximum allowed size of single frame.
- * \return \saRESULT_CODE Status of operation
- */
- RESULT_CODE sendMultiFrameMessage(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- const unsigned char sessionID,
- unsigned int protocolVersion,
- const unsigned char servType,
- const unsigned int dataSize,
- const unsigned char *data,
- const bool compress,
- const unsigned int maxDataSize);
-
- /**
- * \brief Sends message already containing protocol header.
- * \param connectionHandle Identifier of connection through which message is to be sent.
- * \param packet Message with protocol header.
- * \return \saRESULT_CODE Status of operation
- */
- RESULT_CODE sendFrame( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- const ProtocolPacket & packet );
-
- /**
- * \brief Handles received message.
- * \param connectionHandle Identifier of connection through which message is received.
- * \param packet Received message with protocol header.
- * \return \saRESULT_CODE Status of operation
- */
- RESULT_CODE handleMessage( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- ProtocolPacket * packet );
-
- /**
- * \brief Handles message received in multiple frames. Collects all frames of message.
- * \param connectionHandle Identifier of connection through which message is received.
- * \param packet Current frame of message with protocol header.
- * \return \saRESULT_CODE Status of operation
- */
- RESULT_CODE handleMultiFrameMessage( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- ProtocolPacket * packet );
-
- /**
- * \brief Handles message received in single frame.
- * \param connectionHandle Identifier of connection through which message is received.
- * \param packet Received message with protocol header.
- * \return \saRESULT_CODE Status of operation
- */
- RESULT_CODE handleControlMessage( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- const ProtocolPacket * packet );
-
- /**
- * \brief For logging.
- */
- static log4cplus::Logger mLogger;
-
- /**
- *\brief Pointer on instance of class implementing IProtocolObserver (JSON Handler)
- */
- IProtocolObserver * mProtocolObserver;
-
- /**
- *\brief Pointer on instance of class implementing ISessionObserver (Connection Handler)
- */
- ISessionObserver * mSessionObserver;
-
- /**
- *\brief Pointer on instance of Transport layer handler for message exchange.
- */
- NsSmartDeviceLink::NsTransportManager::ITransportManager * mTransportManager;
-
- /**
- *\brief Queue for message from Mobile side.
- */
- MessageQueue<IncomingMessage *> mMessagesFromMobileApp;
-
- /**
- *\brief Thread for handling messages from Mobile side.
- */
- pthread_t mHandleMessagesFromMobileApp;
-
- /**
- *\brief Queue for message to Mobile side.
- */
- MessageQueue<const SmartDeviceLinkRawMessage *> mMessagesToMobileApp;
-
- /**
- *\brief Thread for handling message to Mobile side.
- */
- pthread_t mHandleMessagesToMobileApp;
-
- /**
- *\brief Map of frames for messages received in multiple frames.
- */
- std::map<int, ProtocolPacket *> mIncompleteMultiFrameMessages;
-
- /**
- *\brief Counter of messages sent in each session.
- */
- std::map<unsigned char, unsigned int> mMessageCounters;
- };
-}
-
-#endif // PROTOCOLHANDLER_CLASS
diff --git a/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ProtocolPacket.h b/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ProtocolPacket.h
deleted file mode 100644
index fdee9d34c..000000000
--- a/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/ProtocolPacket.h
+++ /dev/null
@@ -1,431 +0,0 @@
-/**
-* \file ProtocolPacket.h
-* \brief ProtocolPacket class header file.
-*
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef PROTOCOLPACKET_CLASS
-#define PROTOCOLPACKET_CLASS
-
-/**
- *\namespace NsProtocolHandler
- *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality.
-*/
-namespace NsProtocolHandler
-{
-/**
- *\brief Size of protocol header for first version of protocol.
- */
-const unsigned char PROTOCOL_HEADER_V1_SIZE = 8;
-
-/**
- *\brief Size of protocol header for second version of protocol.
-*/
-const unsigned char PROTOCOL_HEADER_V2_SIZE = 12;
-
-/**
- *\brief Constant: number of protocol version (1).
-*/
-const unsigned char PROTOCOL_VERSION_1 = 0x01;
-
-/**
- *\brief Constant: number of protocol version (2).
-*/
-const unsigned char PROTOCOL_VERSION_2 = 0x02;
-
-/**
- *\brief Constant: flag of no compression
-*/
-const bool COMPRESS_OFF = false;
-
-/**
- *\brief Constant: Control type of frame used in protocol header.
-*/
-const unsigned char FRAME_TYPE_CONTROL = 0x00;
-
-/**
- *\brief Constant: Single type of frame used in protocol header.
-*/
-const unsigned char FRAME_TYPE_SINGLE = 0x01;
-
-/**
- *\brief Constant: First frame for multiple frames used in protocol header.
-*/
-const unsigned char FRAME_TYPE_FIRST = 0x02;
-
-/**
- *\brief Constant: Consecutive type of frame for multiple frames used in protocol header.
-*/
-const unsigned char FRAME_TYPE_CONSECUTIVE = 0x03;
-
-/**
- *\brief Constant: RPC type of session
-*/
-const unsigned char SERVICE_TYPE_RPC = 0x07;
-
-/**
- *\brief Constant: Bulk data type of session
-*/
-const unsigned char SERVICE_TYPE_BULK = 0x0F;
-
-/**
- *\brief Unused: If FRAME_TYPE_CONTROL: Constant: Frame is for hear beat.
-*/
-const unsigned char FRAME_DATA_HEART_BEAT = 0x00; //Unused
-
-/**
- *\brief If FRAME_TYPE_CONTROL: Constant: Start session frame
-*/
-const unsigned char FRAME_DATA_START_SESSION = 0x01;
-
-/**
- *\brief If FRAME_TYPE_CONTROL: Constant: Start session acknowledgement frame
-*/
-const unsigned char FRAME_DATA_START_SESSION_ACK = 0x02;
-
-/**
- *\brief If FRAME_TYPE_CONTROL: Constant: Start session not acknowledgement frame
-*/
-const unsigned char FRAME_DATA_START_SESSION_NACK = 0x03;
-
-/**
- *\brief If FRAME_TYPE_CONTROL: Constant: End session request frame
-*/
-const unsigned char FRAME_DATA_END_SESSION = 0x04;
-
-/**
- *\brief If FRAME_TYPE_CONTROL: Constant: End session not acknowledgement frame
-*/
-const unsigned char FRAME_DATA_END_SESSION_NACK = 0x05; //Assumption
-
-/**
- *\brief If FRAME_TYPE_CONTROL: Constant: Maximum of consecutive frame numbers
- * after which count has to roll over to 0x01
-*/
-const unsigned char FRAME_DATA_MAX_VALUE = 0xFF;
-
-/**
- *\brief If FRAME_TYPE_CONTROL: Constant: Maximum size of one frame excluding frame header.
-*/
-const unsigned int MAXIMUM_FRAME_DATA_SIZE = 1488;
-
-/**
- *\brief If FRAME_TYPE_CONSECUTIVE: Constant: Marks last frame in mutliframe message.
-*/
-const unsigned char FRAME_DATA_LAST_FRAME = 0x00;
-
-/**
- *\brief If FRAME_TYPE_CONSECUTIVE: Constant: Size of first frame in mutliframe message.
-*/
-const unsigned char FIRST_FRAME_DATA_SIZE = 0x08;
-
-/**
- *\enum RESULT_CODE
- *\brief Return type for operations with message handling.
-*/
-enum RESULT_CODE
-{
- RESULT_OK = 1,
- RESULT_FAIL = 2,
- RESULT_NUMBER_BUSY = 3,
- RESULT_CONNECTION_LOST = 4,
- RESULT_DISCONNECTED = 5,
- RESULT_NOTFOUND = 6,
- RESULT_TIMEOUT = 7,
- RESULT_WRONG_SEQUENCE = 8,
- RESULT_AGAIN = 9,
- RESULT_WRONG_FRAME_SEQUENCE = 10,
- RESULT_IN_PROGRESS = 11,
- RESULT_REASSIGN = 12,
- RESULT_XML_PARSING = 13,
- RESULT_RESEND_ACK = 14,
- RESULT_DEFRERRED = 15,
- RESULT_UNKNOWN = 255
-};
-
-/**
- * \struct ProtocolHeader
- * \brief Used for storing protocol header of a message.
-*/
-struct ProtocolHeader
-{
- /**
- * \brief Constructor
- */
- ProtocolHeader() :
- version(0x00),
- compress(0x00),
- frameType(0x00),
- serviceType(0x00),
- frameData(0x00),
- sessionID(0x00),
- dataSize(0x00),
- messageId(0x00)
- {}
-
- /**
- *\brief Version of protocol
- */
- unsigned char version;
-
- /**
- *\brief Compression flag
- */
- bool compress;
-
- /**
- *\brief Type of frame (Single/First/Consecutive)
- */
- unsigned char frameType;
-
- /**
- *\brief Type of service (RPC/Buld data)
- */
- unsigned char serviceType;
-
- /**
- *\brief Data about frame (Start/End session etc)
- */
- unsigned char frameData;
-
- /**
- *\brief Session number withing connection
- */
- unsigned char sessionID;
-
- /**
- *\brief Size of message itself, excluding size of header
- */
- unsigned int dataSize;
-
- /**
- *\brief Used only in second versin of protocol: Message ID
- */
- unsigned int messageId;
-};
-
-/**
- * \struct ProtocolData
- * \brief Used for storing message and its size.
-*/
-struct ProtocolData
-{
- ProtocolData() :
- data(0),
- totalDataBytes(0x00)
- {}
-
- unsigned char * data;
- unsigned int totalDataBytes;
-};
-
- /**
- * \class ProtocolPacket
- * \brief Class for forming/parsing protocol headers of the message and
- * handling multiple frames of the message.
- */
- class ProtocolPacket
- {
- public:
- /**
- * \brief Default constructor
- */
- ProtocolPacket();
-
- /**
- * \brief Constructor
- * \param version Version of protocol
- * \param compress Compression flag
- * \param frameType Type of frame (Single/First/Consecutive)
- * \param serviceType Type of session (RPC/Bulk data)
- * \param frameData Information about frame: start/end session, number of frame, etc
- * \param sessionID Number of frame within connection
- * \param dataSize Size of message string
- * \param messageID ID of message or hash code - only for second protocol
- * \param data Message string if provided
- */
- ProtocolPacket(unsigned char version,
- bool compress,
- unsigned char frameType,
- unsigned char serviceType,
- unsigned char frameData,
- unsigned char sessionID,
- unsigned int dataSize,
- unsigned int messageID,
- const unsigned char * data = 0);
- /**
- * \brief Destructor
- */
- ~ProtocolPacket();
-
- /*Serialization*/
- /**
- * \brief Serializes info about message into protocol header.
- * \param version Version of protocol
- * \param compress Compression flag
- * \param frameType Type of frame (Single/First/Consecutive)
- * \param serviceType Type of session (RPC/Bulk data)
- * \param frameData Information about frame: start/end session, number of frame, etc
- * \param sessionID Number of frame within connection
- * \param dataSize Size of message string
- * \param messageID ID of message or hash code - only for second protocol
- * \param data Message string if provided
- * \return \saRESULT_CODE Status of serialization
- */
- RESULT_CODE serializePacket(unsigned char version,
- bool compress,
- unsigned char frameType,
- unsigned char serviceType,
- unsigned char frameData,
- unsigned char sessionID,
- unsigned int dataSize,
- unsigned int messageID,
- const unsigned char * data = 0);
-
- /**
- * \brief Appends message frame to existing message in
- * recieving multiframe messages.
- * \param chunkData Current frame's message string
- * \param chunkDataSize Size of current message string
- * \return \saRESULT_CODE Status of serialization
- */
- RESULT_CODE appendData( unsigned char * chunkData,
- unsigned int chunkDataSize );
-
- /**
- * \brief Getter of serialized message with protocol header
- * \return unsigned char * Message string or 0 if not serialized properly.
- */
- unsigned char * getPacket() const;
-
- /**
- * \brief Getter of message size including protocol header
- * \return unsigned int size of message string
- */
- unsigned int getPacketSize() const;
- /*End of Serialization*/
-
- /*Deserialization*/
-
- /**
- * \brief Parses protocol header
- * \param message Incoming message string containing both header and message body
- * \param messageSize Incoming message size
- * \return \saRESULT_CODE Status of serialization
- */
- RESULT_CODE deserializePacket(const unsigned char * message, unsigned int messageSize);
-
- /**
- * \brief Getter of protocol version.
- */
- unsigned char getVersion() const;
-
- /**
- * \brief Getter of compression flag
- */
- bool getIfCompress() const;
-
- /**
- * \brief Getter of frame type (single/first/etc)
- */
- unsigned char getFrameType() const;
-
- /**
- *\brief Getter of service type (RPC/Bulk data)
- */
- unsigned char getServiceType() const;
-
- /**
- *\brief Getter of frame data (start/end session, number of frame etc)
- */
- unsigned char getFrameData() const;
-
- /**
- *\brief Getter of session number
- */
- unsigned char getSessionId() const;
-
- /**
- *\brief Getter of size of message body
- */
- unsigned int getDataSize() const;
-
- /**
- *\brief Getter of message id for second version of protocol
- */
- unsigned int getMessageId() const;
-
- /**
- *\brief Getter of message string
- */
- unsigned char * getData() const;
-
- /**
- *\brief Setter for size of multiframe message
- */
- void setTotalDataBytes(unsigned int dataBytes);
-
- /**
- *\brief Getter for size of multiframe message
- */
- unsigned int getTotalDataBytes() const;
- /*End of Deserialization*/
-
- private:
- /**
- *\brief Serialized message string
- */
- unsigned char * mPacket;
-
- /**
- *\brief Serialized message string size
- */
- unsigned int mTotalPacketSize;
-
- /**
- *\brief Protocol header
- */
- ProtocolHeader mPacketHeader;
-
- /**
- *\brief Message body
- */
- ProtocolData mPacketData;
-
- /**
- *\brief Offset for multiframe messages
- */
- unsigned int mDataOffset;
- };
-}
-
-#endif // PROTOCOLPACKET_CLASS
diff --git a/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/SmartDeviceLinkRawMessage.h b/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/SmartDeviceLinkRawMessage.h
deleted file mode 100644
index 6d198cfda..000000000
--- a/SDL_Core/src/components/ProtocolHandler/include/ProtocolHandler/SmartDeviceLinkRawMessage.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
-* \file SmartDeviceLinkRawMessage.h
-* \brief SmartDeviceLinkRawMessage class header file.
-*
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef SMARTDEVICELINKRAWMESSAGE_CLASS
-#define SMARTDEVICELINKRAWMESSAGE_CLASS
-
-/**
- *\namespace NsProtocolHandler
- *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality.
-*/
-
-namespace NsProtocolHandler
-{
- /**
- * \class SmartDeviceLinkRawMessage
- * \brief Class-wraper for information about message for interchanging between components.
- */
- class SmartDeviceLinkRawMessage
- {
- public:
- /**
- * \brief Constructor
- * \param connectionKey Identifier of connection within wich message is transferred
- * \param protocolVersion Version of protocol of the message
- * \param data Message string
- * \param dataSize Message size
- */
- SmartDeviceLinkRawMessage(int connectionKey,
- unsigned int protocolVersion,
- unsigned char * data,
- unsigned int dataSize);
-
- /**
- * \brief Destructor
- */
- ~SmartDeviceLinkRawMessage();
-
- /**
- * \brief Getter for connection identifier
- */
- int getConnectionKey() const;
-
- /**
- * \brief Getter for message string
- */
- unsigned char * getData() const;
-
- /**
- * \brief Getter for message size
- */
- unsigned int getDataSize() const;
-
- /**
- * \brief Getter for protocol version
- */
- unsigned int getProtocolVersion() const;
-
- private:
-
- /**
- * \brief Connection Identifier
- * Obtained from \saCConnectionHandler
- */
- int mConnectionKey;
-
- /**
- * \brief Message string
- */
- unsigned char * mData;
-
- /**
- * \brief Size of message
- */
- unsigned int mDataSize;
-
- /**
- * \brief Version of SmartDeviceLink protocol (currently 1,2)
- * used for tranferring message.
- */
- unsigned int mProtocolVersion;
- };
-}
-
-#endif // SMARTDEVICELINKRAWMESSAGE_CLASS
diff --git a/SDL_Core/src/components/ProtocolHandler/src/ProtocolHandler.cpp b/SDL_Core/src/components/ProtocolHandler/src/ProtocolHandler.cpp
deleted file mode 100644
index ceb5d5daf..000000000
--- a/SDL_Core/src/components/ProtocolHandler/src/ProtocolHandler.cpp
+++ /dev/null
@@ -1,685 +0,0 @@
-/**
-* \file ProtocolHandler.cpp
-* \brief ProtocolHandler class source file.
-*
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <pthread.h>
-#include <signal.h>
-#include <memory.h>
-#include "TransportManager/ITransportManager.hpp"
-#include "ProtocolHandler/ISessionObserver.h"
-#include "ProtocolHandler/IProtocolObserver.h"
-#include "ProtocolHandler/ProtocolHandler.h"
-
-using namespace NsProtocolHandler;
-
-log4cplus::Logger ProtocolHandler::mLogger = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("ProtocolHandler"));
-
-ProtocolHandler::ProtocolHandler( NsSmartDeviceLink::NsTransportManager::ITransportManager * transportManager ) :
- mProtocolObserver( 0 )
-,mSessionObserver( 0 )
-,mTransportManager( transportManager )
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
- pthread_create( &mHandleMessagesFromMobileApp, NULL, &ProtocolHandler::handleMessagesFromMobileApp, (void *)this );
- pthread_create( &mHandleMessagesToMobileApp, NULL, &ProtocolHandler::handleMessagesToMobileApp, (void *)this );
-}
-
-ProtocolHandler::~ProtocolHandler()
-{
- pthread_kill( mHandleMessagesFromMobileApp, 1 );
- pthread_kill( mHandleMessagesToMobileApp, 1 );
- mProtocolObserver = 0;
- mSessionObserver = 0;
- mTransportManager = 0;
-}
-
-void ProtocolHandler::setProtocolObserver( IProtocolObserver * observer )
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
- if ( !observer )
- {
- LOG4CPLUS_ERROR(mLogger, "Invalid (NULL) pointer to IProtocolObserver.");
- return;
- }
-
- mProtocolObserver = observer;
-}
-
-void ProtocolHandler::setSessionObserver( ISessionObserver * observer )
-{
- if ( !observer )
- {
- LOG4CPLUS_ERROR(mLogger, "Invalid (NULL) pointer to ISessionObserver.");
- return;
- }
-
- mSessionObserver = observer;
-}
-
-void ProtocolHandler::sendEndSessionNAck( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned int sessionID,
- unsigned char serviceType )
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
-
- ProtocolPacket packet(PROTOCOL_VERSION_2,
- COMPRESS_OFF,
- FRAME_TYPE_CONTROL,
- 0x0,
- FRAME_DATA_END_SESSION_NACK,
- sessionID,
- 0,
- 0);
-
- if (RESULT_OK == sendFrame(connectionHandle, packet))
- {
- LOG4CPLUS_INFO(mLogger, "sendStartSessionAck() - BT write OK");
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "sendStartSessionAck() - BT write FAIL");
- }
-}
-
-void ProtocolHandler::sendStartSessionAck( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned char sessionID,
- unsigned char protocolVersion,
- unsigned int hashCode,
- unsigned char serviceType )
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
-
- ProtocolPacket packet(protocolVersion,
- COMPRESS_OFF,
- FRAME_TYPE_CONTROL,
- serviceType,
- FRAME_DATA_START_SESSION_ACK,
- sessionID,
- 0,
- hashCode);
-
- if (RESULT_OK == sendFrame(connectionHandle, packet))
- {
- LOG4CPLUS_INFO(mLogger, "sendStartSessionAck() for connection " << connectionHandle
- << " for serviceType " << serviceType << " sessionID " << sessionID);
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "sendStartSessionAck() - BT write FAIL");
- }
-}
-
-void ProtocolHandler::sendStartSessionNAck( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- unsigned char serviceType )
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
-
- unsigned char versionFlag = PROTOCOL_VERSION_1;
-
- ProtocolPacket packet(versionFlag,
- COMPRESS_OFF,
- FRAME_TYPE_CONTROL,
- serviceType,
- FRAME_DATA_START_SESSION_NACK,
- 0x0,
- 0,
- 0);
-
- if (RESULT_OK == sendFrame(connectionHandle, packet))
- {
- LOG4CPLUS_INFO(mLogger, "sendStartSessionAck() - BT write OK");
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "sendStartSessionAck() - BT write FAIL");
- }
-
-}
-
-void ProtocolHandler::sendData(const SmartDeviceLinkRawMessage * message)
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
- if ( !message )
- {
- LOG4CPLUS_ERROR(mLogger, "Invalid message for sending to mobile app is received.");
- return;
- }
- mMessagesToMobileApp.push(message);
-}
-
-void ProtocolHandler::onFrameReceived(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- const uint8_t * data, size_t dataSize)
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
- if (connectionHandle && dataSize > 0 && data )
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Received from TM " << data << "; size " << dataSize);
- IncomingMessage * message = new IncomingMessage;
- message -> mData = new unsigned char[dataSize];
- memcpy(message -> mData, data, dataSize);
- message -> mDataSize = dataSize;
- message -> mConnectionHandle = connectionHandle;
- mMessagesFromMobileApp.push( message );
- }
- else
- {
- LOG4CPLUS_ERROR( mLogger, "Invalid incoming message received in ProtocolHandler from Transport Manager." );
- }
-}
-
-void ProtocolHandler::onFrameSendCompleted(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- int userData, NsSmartDeviceLink::NsTransportManager::ESendStatus sendStatus)
-{
- if ( NsSmartDeviceLink::NsTransportManager::SendStatusOK != sendStatus )
- {
- LOG4CPLUS_ERROR(mLogger, "Failed to send frame with number " << userData);
- }
-}
-
-RESULT_CODE ProtocolHandler::sendFrame( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- const ProtocolPacket & packet )
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
- if ( !packet.getPacket() )
- {
- LOG4CPLUS_ERROR(mLogger, "Failed to create packet.");
- return RESULT_FAIL;
- }
-
- LOG4CPLUS_INFO_EXT( mLogger, "Packet to be sent: " << packet.getPacket() << " of size: " << packet.getPacketSize());
-
- if (mTransportManager)
- {
- mTransportManager->sendFrame(connectionHandle, packet.getPacket(), packet.getPacketSize(), static_cast<int>(packet.getFrameData()) );
- }
- else
- {
- LOG4CPLUS_WARN(mLogger, "No Transport Manager found.");
- return RESULT_FAIL;
- }
-
- return RESULT_OK;
-}
-
-RESULT_CODE ProtocolHandler::sendSingleFrameMessage(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- const unsigned char sessionID,
- unsigned int protocolVersion,
- const unsigned char servType,
- const unsigned int dataSize,
- const unsigned char *data,
- const bool compress)
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
-
- unsigned char versionF = PROTOCOL_VERSION_1;
- if (2 == protocolVersion)
- {
- versionF = PROTOCOL_VERSION_2;
- }
-
- ProtocolPacket packet(versionF,
- compress,
- FRAME_TYPE_SINGLE,
- servType,
- 0,
- sessionID,
- dataSize,
- mMessageCounters[sessionID]++,
- data);
-
- return sendFrame( connectionHandle, packet );
-}
-
-RESULT_CODE ProtocolHandler::sendMultiFrameMessage(NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- const unsigned char sessionID,
- unsigned int protocolVersion,
- const unsigned char servType,
- const unsigned int dataSize,
- const unsigned char *data,
- const bool compress,
- const unsigned int maxDataSize)
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
- RESULT_CODE retVal = RESULT_OK;
-
- LOG4CPLUS_INFO_EXT(mLogger, " data size " << dataSize << " maxDataSize " << maxDataSize);
-
- unsigned char versionF = PROTOCOL_VERSION_1;
- if (2 == protocolVersion)
- {
- versionF = PROTOCOL_VERSION_2;
- }
-
- int numOfFrames = 0;
- int lastDataSize = 0;
-
- if (dataSize % maxDataSize)
- {
- numOfFrames = (dataSize / maxDataSize) + 1;
- lastDataSize = dataSize % maxDataSize;
- }
- else
- {
- numOfFrames = dataSize / maxDataSize;
- lastDataSize = maxDataSize;
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, "Data size " << dataSize << " of " << numOfFrames << " frames with last frame " << lastDataSize);
-
- unsigned char *outDataFirstFrame = new unsigned char[FIRST_FRAME_DATA_SIZE];
- outDataFirstFrame[0] = dataSize >> 24;
- outDataFirstFrame[1] = dataSize >> 16;
- outDataFirstFrame[2] = dataSize >> 8;
- outDataFirstFrame[3] = dataSize;
-
- outDataFirstFrame[4] = numOfFrames >> 24;
- outDataFirstFrame[5] = numOfFrames >> 16;
- outDataFirstFrame[6] = numOfFrames >> 8;
- outDataFirstFrame[7] = numOfFrames;
-
- ProtocolPacket firstPacket(versionF,
- compress,
- FRAME_TYPE_FIRST,
- servType,
- 0,
- sessionID,
- FIRST_FRAME_DATA_SIZE,
- ++mMessageCounters[sessionID],
- outDataFirstFrame);
-
- retVal = sendFrame( connectionHandle, firstPacket );
-
- LOG4CPLUS_INFO_EXT(mLogger, "First frame is sent.");
-
- delete [] outDataFirstFrame;
-
- unsigned char *outDataFrame = new unsigned char[maxDataSize];
-
- for (unsigned int i = 0 ; i < numOfFrames ; i++)
- {
- if (i != (numOfFrames - 1) )
- {
- memcpy(outDataFrame, data + (maxDataSize * i), maxDataSize);
-
- ProtocolPacket packet(versionF,
- compress,
- FRAME_TYPE_CONSECUTIVE,
- servType,
- ( (i % FRAME_DATA_MAX_VALUE) + 1),
- sessionID,
- maxDataSize,
- mMessageCounters[sessionID],
- outDataFrame);
-
- retVal = sendFrame( connectionHandle, packet );
- if ( RESULT_FAIL == retVal)
- {
- break;
- }
- }
- else
- {
- memcpy(outDataFrame, data + (maxDataSize * i), lastDataSize);
-
- ProtocolPacket packet(versionF,
- compress,
- FRAME_TYPE_CONSECUTIVE,
- servType,
- 0x0,
- sessionID,
- lastDataSize,
- mMessageCounters[sessionID],
- outDataFrame);
-
- retVal = sendFrame( connectionHandle, packet );
- }
- }
-
- delete [] outDataFrame;
-
- return retVal;
-}
-
-RESULT_CODE ProtocolHandler::handleMessage( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- ProtocolPacket * packet )
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
-
- switch (packet -> getFrameType())
- {
- case FRAME_TYPE_CONTROL:
- {
- LOG4CPLUS_INFO(mLogger, "handleMessage() - case FRAME_TYPE_CONTROL");
-
- return handleControlMessage( connectionHandle, packet );
- }
- case FRAME_TYPE_SINGLE:
- {
- LOG4CPLUS_INFO(mLogger, "FRAME_TYPE_SINGLE: of size " << packet->getDataSize() << ";message " << packet -> getData());
-
- if ( !mSessionObserver )
- {
- LOG4CPLUS_ERROR(mLogger, "Cannot handle message from Transport Manager: ISessionObserver doesn't exist.");
- return RESULT_FAIL;
- }
-
- int connectionKey = mSessionObserver -> keyFromPair( connectionHandle,
- packet -> getSessionId() );
-
- SmartDeviceLinkRawMessage * rawMessage = new SmartDeviceLinkRawMessage( connectionKey,
- packet -> getVersion(),
- packet -> getData(),
- packet -> getDataSize() );
-
- if (mProtocolObserver)
- mProtocolObserver->onDataReceivedCallback(rawMessage);
-
- break;
- }
- case FRAME_TYPE_FIRST:
- case FRAME_TYPE_CONSECUTIVE:
- {
- LOG4CPLUS_INFO(mLogger, "handleMessage() - case FRAME_TYPE_CONSECUTIVE");
-
- return handleMultiFrameMessage( connectionHandle, packet );
- }
- default:
- {
- LOG4CPLUS_WARN(mLogger, "handleMessage() - case default!!!");
- }
- }
-
- return RESULT_OK;
-}
-
-RESULT_CODE ProtocolHandler::handleMultiFrameMessage( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- ProtocolPacket * packet )
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
-
- if ( !mSessionObserver )
- {
- LOG4CPLUS_ERROR(mLogger, "No ISessionObserver set.");
- return RESULT_FAIL;
- }
-
- LOG4CPLUS_INFO_EXT(mLogger, "Packet " << packet << "; sessionID " << packet -> getSessionId());
-
- int key = mSessionObserver->keyFromPair(connectionHandle, packet -> getSessionId());
-
- if (packet -> getFrameType() == FRAME_TYPE_FIRST)
- {
- LOG4CPLUS_INFO(mLogger, "handleMultiFrameMessage() - FRAME_TYPE_FIRST");
-
- //const unsigned char * data = packet -> getData();
- unsigned int totalDataBytes = packet -> getData()[0] << 24;
- totalDataBytes |= packet -> getData()[1] << 16;
- totalDataBytes |= packet -> getData()[2] << 8;
- totalDataBytes |= packet -> getData()[3];
-
- packet -> setTotalDataBytes( totalDataBytes );
-
- mIncompleteMultiFrameMessages[key] = packet;
- }
- else
- {
- LOG4CPLUS_INFO(mLogger, "handleMultiFrameMessage() - Consecutive frame");
-
- std::map<int, ProtocolPacket*>::iterator it = mIncompleteMultiFrameMessages.find(key);
-
- if ( it == mIncompleteMultiFrameMessages.end() )
- {
- LOG4CPLUS_ERROR(mLogger, "Frame of multiframe message for non-existing session id");
- return RESULT_FAIL;
- }
-
- //LOG4CPLUS_INFO(mLogger, "Found message " << it->second->)
-
- if ( it->second->appendData( packet -> getData(), packet -> getDataSize() ) != RESULT_OK )
- {
- LOG4CPLUS_ERROR(mLogger, "Failed to append frame for multiframe message.");
- return RESULT_FAIL;
- }
-
- if ( packet -> getFrameData() == FRAME_DATA_LAST_FRAME )
- {
- if ( !mProtocolObserver )
- {
- LOG4CPLUS_ERROR(mLogger, "Cannot handle multiframe message: no IProtocolObserver is set.");
- return RESULT_FAIL;
- }
-
- ProtocolPacket * completePacket = it->second;
- SmartDeviceLinkRawMessage * rawMessage = new SmartDeviceLinkRawMessage( key,
- completePacket -> getVersion(),
- completePacket -> getData(),
- completePacket -> getTotalDataBytes() );
-
- mProtocolObserver -> onDataReceivedCallback( rawMessage );
-
- mIncompleteMultiFrameMessages.erase( it );
- }
-
- }
-
- return RESULT_OK;
-}
-
-RESULT_CODE ProtocolHandler::handleControlMessage( NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle,
- const ProtocolPacket * packet )
-{
- LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__);
-
- if ( !mSessionObserver )
- {
- LOG4CPLUS_ERROR(mLogger, "ISessionObserver is not set.");
- return RESULT_FAIL;
- }
-
- if (packet -> getFrameData() == FRAME_DATA_END_SESSION)
- {
- LOG4CPLUS_INFO(mLogger, "handleControlMessage() - FRAME_DATA_END_SESSION");
-
- unsigned char currentSessionID = packet -> getSessionId();
-
- unsigned int hashCode = 0;
- if ( packet -> getVersion() == 2 )
- {
- hashCode = packet -> getMessageId();
- }
-
- bool success = true;
- int sessionHashCode = mSessionObserver -> onSessionEndedCallback( connectionHandle, currentSessionID, hashCode );
-
- if ( -1 != sessionHashCode )
- {
- if ( 2 == packet -> getVersion() ) // check hash code only for second version of protocol.
- {
- if ( packet -> getMessageId() != sessionHashCode )
- {
- success = false;
- }
- }
- }
- else
- {
- success = false;
- }
-
- if ( success )
- {
- mMessageCounters.erase( currentSessionID );
- }
- else
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Refused to end session " << packet -> getServiceType() << " type.");
- sendEndSessionNAck(connectionHandle, currentSessionID, packet -> getServiceType());
- }
- }
-
- if (packet -> getFrameData() == FRAME_DATA_START_SESSION)
- {
- LOG4CPLUS_INFO(mLogger, "handleControlMessage() - FRAME_DATA_START_SESSION");
- LOG4CPLUS_INFO_EXT(mLogger, "Version 2 " << (packet -> getVersion() == PROTOCOL_VERSION_2));
-
- int sessionId = mSessionObserver -> onSessionStartedCallback( connectionHandle );
- if ( -1 != sessionId )
- {
- sendStartSessionAck(connectionHandle, sessionId,
- packet -> getVersion(),
- mSessionObserver -> keyFromPair(connectionHandle, sessionId),
- packet -> getServiceType());
- }
- else
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Refused to create session " << packet -> getServiceType() << " type.");
- sendStartSessionNAck(connectionHandle, packet -> getServiceType());
- }
- }
-
- return RESULT_OK;
-}
-
-void * ProtocolHandler::handleMessagesFromMobileApp( void * params )
-{
- ProtocolHandler * handler = static_cast<ProtocolHandler*> (params);
- if ( !handler )
- {
- pthread_exit( 0 );
- }
-
- while( 1 )
- {
- while( ! handler -> mMessagesFromMobileApp.empty() )
- {
- IncomingMessage * message = handler -> mMessagesFromMobileApp.pop();
- LOG4CPLUS_INFO_EXT(mLogger, "Message " << message -> mData << " from mobile app received of size " << message -> mDataSize );
-
- //@TODO check for ConnectionHandle.
- //@TODO check for data size - crash is possible.
- if ((0 != message -> mData) && (0 != message -> mDataSize) && (MAXIMUM_FRAME_DATA_SIZE + PROTOCOL_HEADER_V2_SIZE >= message -> mDataSize))
- {
- ProtocolPacket * packet = new ProtocolPacket;
- LOG4CPLUS_INFO_EXT(mLogger ,"Data: " << packet -> getData());
- if ( packet -> deserializePacket( message -> mData, message -> mDataSize ) == RESULT_FAIL )
- {
- LOG4CPLUS_ERROR(mLogger, "Failed to parse received message.");
- delete packet;
- }
- else
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Packet: dataSize " << packet -> getDataSize());
- handler -> handleMessage( message -> mConnectionHandle, packet );
- }
- }
- else
- {
- LOG4CPLUS_WARN(mLogger, "handleMessagesFromMobileApp() - incorrect or NULL data");
- }
-
- delete message;
- }
- handler -> mMessagesFromMobileApp.wait();
- }
-
- pthread_exit( 0 );
-}
-
-void * ProtocolHandler::handleMessagesToMobileApp( void * params )
-{
- ProtocolHandler * handler = static_cast<ProtocolHandler*> (params);
- if ( !handler )
- {
- pthread_exit( 0 );
- }
-
- //TODO: check if continue running condition.
- while( 1 )
- {
- while ( ! handler -> mMessagesToMobileApp.empty() )
- {
- const SmartDeviceLinkRawMessage * message = handler -> mMessagesToMobileApp.pop();
- LOG4CPLUS_INFO_EXT(mLogger, "Message to mobile app: connection " << message->getConnectionKey()
- << "; dataSize: " << message->getDataSize() << " ; protocolVersion " << message -> getProtocolVersion());
-
- unsigned int maxDataSize = 0;
- if ( PROTOCOL_VERSION_1 == message -> getProtocolVersion() )
- maxDataSize = MAXIMUM_FRAME_DATA_SIZE - PROTOCOL_HEADER_V1_SIZE;
- else if ( PROTOCOL_VERSION_2 == message -> getProtocolVersion() )
- maxDataSize = MAXIMUM_FRAME_DATA_SIZE - PROTOCOL_HEADER_V2_SIZE;
-
- NsSmartDeviceLink::NsTransportManager::tConnectionHandle connectionHandle = 0;
- unsigned char sessionID = 0;
-
- if ( !handler -> mSessionObserver )
- {
- LOG4CPLUS_ERROR(mLogger, "Cannot handle message to mobile app: ISessionObserver doesn't exist.");
- pthread_exit(0);
- }
- handler -> mSessionObserver -> pairFromKey( message->getConnectionKey(), connectionHandle, sessionID );
-
- if ( message -> getDataSize() <= maxDataSize )
- {
- if (handler -> sendSingleFrameMessage(connectionHandle,
- sessionID,
- message -> getProtocolVersion(),
- SERVICE_TYPE_RPC,
- message -> getDataSize(),
- message -> getData(),
- false) != RESULT_OK)
- {
- LOG4CPLUS_ERROR(mLogger, "ProtocolHandler failed to send single frame message.");
- }
- }
- else
- {
- LOG4CPLUS_INFO_EXT(mLogger, "Message will be sent in multiple frames; max size is " << maxDataSize);
- if (handler -> sendMultiFrameMessage(connectionHandle,
- sessionID,
- message -> getProtocolVersion(),
- SERVICE_TYPE_RPC, // TODO : check if this is correct assumption; and remove this hot fix because it is not supposed to be so.
- message -> getDataSize(),
- message -> getData(),
- false,
- maxDataSize) != RESULT_OK)
- {
- LOG4CPLUS_ERROR(mLogger, "ProtocolHandler failed to send multi frame messages.");
- }
- }
- }
- handler -> mMessagesToMobileApp.wait();
- }
-
- pthread_exit( 0 );
-}
diff --git a/SDL_Core/src/components/ProtocolHandler/src/ProtocolPacket.cpp b/SDL_Core/src/components/ProtocolHandler/src/ProtocolPacket.cpp
deleted file mode 100644
index 2d465819b..000000000
--- a/SDL_Core/src/components/ProtocolHandler/src/ProtocolPacket.cpp
+++ /dev/null
@@ -1,307 +0,0 @@
-/**
-* \file ProtocolPacket.cpp
-* \brief ProtocolPacket class source file.
-*
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <memory.h>
-#include "ProtocolHandler/ProtocolPacket.h"
-
-#include <iostream>
-
-using namespace NsProtocolHandler;
-
-ProtocolPacket::ProtocolPacket() :
-mPacket( 0 )
-,mTotalPacketSize( 0 )
-,mDataOffset( 0 )
-{}
-
-ProtocolPacket::ProtocolPacket(unsigned char version,
- bool compress,
- unsigned char frameType,
- unsigned char serviceType,
- unsigned char frameData,
- unsigned char sessionID,
- unsigned int dataSize,
- unsigned int messageID,
- const unsigned char * data) :
-mPacket( 0 )
-,mTotalPacketSize( 0 )
-,mDataOffset( 0 )
-{
- serializePacket(version,
- compress,
- frameType,
- serviceType,
- frameData,
- sessionID,
- dataSize,
- messageID,
- data);
-}
-
-ProtocolPacket::~ProtocolPacket()
-{
- //TODO: where to clean?
- mPacket = 0;
- mTotalPacketSize = 0;
-}
-
-/*Serialization*/
-RESULT_CODE ProtocolPacket::serializePacket(unsigned char version,
- bool compress,
- unsigned char frameType,
- unsigned char serviceType,
- unsigned char frameData,
- unsigned char sessionID,
- unsigned int dataSize,
- unsigned int messageID,
- const unsigned char * data)
-{
- if ( mPacket )
- {
- delete [] mPacket;
- mPacket = 0;
- mTotalPacketSize = 0;
- }
-
- unsigned char offset = 0;
- unsigned char compressF = 0x0;
- mPacket = new unsigned char[MAXIMUM_FRAME_DATA_SIZE];
- if (compress)
- {
- compressF = 0x1;
- }
- unsigned char firstByte = ( (version << 4) & 0xF0 )
- | ( (compressF << 3) & 0x08)
- | (frameType & 0x07);
-
- mPacket[offset++] = firstByte;
- mPacket[offset++] = serviceType;
- mPacket[offset++] = frameData;
- mPacket[offset++] = sessionID;
-
- mPacket[offset++] = dataSize >> 24;
- mPacket[offset++] = dataSize >> 16;
- mPacket[offset++] = dataSize >> 8;
- mPacket[offset++] = dataSize;
-
- if (version == PROTOCOL_VERSION_2)
- {
- mPacket[offset++] = messageID >> 24;
- mPacket[offset++] = messageID >> 16;
- mPacket[offset++] = messageID >> 8;
- mPacket[offset++] = messageID;
- }
-
- mTotalPacketSize = offset;
-
- if (data)
- {
- if ( (offset + dataSize) <= MAXIMUM_FRAME_DATA_SIZE)
- {
- memcpy(mPacket + offset, data, dataSize);
- mTotalPacketSize += dataSize;
- }
- else
- {
- delete [] mPacket;
- mPacket = 0;
- mTotalPacketSize = 0;
- return RESULT_FAIL;
- }
- }
-
- return RESULT_OK;
-}
-
-unsigned char * ProtocolPacket::getPacket() const
-{
- return mPacket;
-}
-
-unsigned int ProtocolPacket::getPacketSize() const
-{
- return mTotalPacketSize;
-}
-
-
-RESULT_CODE ProtocolPacket::appendData( unsigned char * chunkData,
- unsigned int chunkDataSize )
-{
- if ( mDataOffset + chunkDataSize <= mPacketData.totalDataBytes )
- {
- memcpy(mPacketData.data + mDataOffset, chunkData, chunkDataSize);
- mDataOffset += chunkDataSize;
- return RESULT_OK;
- }
- return RESULT_FAIL;
-}
-/*End of Serialization*/
-
-/*Deserialization*/
-RESULT_CODE ProtocolPacket::deserializePacket(const unsigned char * message, unsigned int messageSize)
-{
- unsigned char offset = 0;
- unsigned char firstByte = message[offset];
- offset++;
-
- mPacketHeader.version = firstByte >> 4u;
-
- //std::cout << "ProtocolPacket::deserializePacket: version " << mPacketHeader.version << std::endl;
- //std::cout.flush();
-
- if (firstByte & 0x08u)
- {
- mPacketHeader.compress = true;
- }
- else
- {
- mPacketHeader.compress = false;
- }
-
- mPacketHeader.frameType = firstByte & 0x07u;
-
- //std::cout << "ProtocolPacket::deserializePacket: frameType " << mPacketHeader.frameType << std::endl;
- //std::cout.flush();
-
- mPacketHeader.serviceType = message[offset++];
- mPacketHeader.frameData = message[offset++];
- mPacketHeader.sessionID = message[offset++];
-
- //std::cout << "ProtocolPacket::deserializePacket: sessionID " << mPacketHeader.sessionID << std::endl;
- //std::cout.flush();
-
- mPacketHeader.dataSize = message[offset++] << 24u;
- mPacketHeader.dataSize |= message[offset++] << 16u;
- mPacketHeader.dataSize |= message[offset++] << 8u;
- mPacketHeader.dataSize |= message[offset++];
-
- //std::cout << "ProtocolPacket::deserializePacket: dataSize " << mPacketHeader.dataSize << std::endl;
- //std::cout.flush();
-
- if (mPacketHeader.version == PROTOCOL_VERSION_2)
- {
- mPacketHeader.messageId = message[offset++] << 24u;
- mPacketHeader.messageId |= message[offset++] << 16u;
- mPacketHeader.messageId |= message[offset++] << 8u;
- mPacketHeader.messageId |= message[offset++];
- }
- else
- {
- mPacketHeader.messageId = 0u;
- }
-
- const unsigned int dataPayloadSize = messageSize - offset;
-
- if (dataPayloadSize != mPacketHeader.dataSize)
- {
- return RESULT_FAIL;
- }
-
- unsigned char * data = 0;
- if (dataPayloadSize != 0u)
- {
- data = new unsigned char[messageSize - offset];
- memcpy(data, message + offset, dataPayloadSize);
- }
-
- mPacketData.data = data;
- mPacketData.totalDataBytes = dataPayloadSize;
- return RESULT_OK;
-}
-
-unsigned char ProtocolPacket::getVersion() const
-{
- return mPacketHeader.version;
-}
-
-bool ProtocolPacket::getIfCompress() const
-{
- return mPacketHeader.compress;
-}
-
-unsigned char ProtocolPacket::getFrameType() const
-{
- return mPacketHeader.frameType;
-}
-
-unsigned char ProtocolPacket::getServiceType() const
-{
- return mPacketHeader.serviceType;
-}
-
-unsigned char ProtocolPacket::getFrameData() const
-{
- return mPacketHeader.frameData;
-}
-
-unsigned char ProtocolPacket::getSessionId() const
-{
- return mPacketHeader.sessionID;
-}
-
-unsigned int ProtocolPacket::getDataSize() const
-{
- return mPacketHeader.dataSize;
-}
-
-unsigned int ProtocolPacket::getMessageId() const
-{
- return mPacketHeader.messageId;
-}
-
-unsigned char * ProtocolPacket::getData() const
-{
- return mPacketData.data;
-}
-
-void ProtocolPacket::setTotalDataBytes(unsigned int dataBytes)
-{
- if ( dataBytes )
- {
- if ( mPacketData.data )
- {
- delete [] mPacketData.data;
- mPacketData.data = 0;
- }
- mPacketData.data = new unsigned char[dataBytes];
- mPacketData.totalDataBytes = dataBytes;
- }
-}
-
-unsigned int ProtocolPacket::getTotalDataBytes() const
-{
- return mPacketData.totalDataBytes;
-}
-/*End of Deserialization*/
diff --git a/SDL_Core/src/components/ProtocolHandler/src/SmartDeviceLinkRawMessage.cpp b/SDL_Core/src/components/ProtocolHandler/src/SmartDeviceLinkRawMessage.cpp
deleted file mode 100644
index adcfdee35..000000000
--- a/SDL_Core/src/components/ProtocolHandler/src/SmartDeviceLinkRawMessage.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
-* \file SmartDeviceLinkRawMessage.cpp
-* \brief SmartDeviceLinkRawMessage class source file.
-*
-* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include "ProtocolHandler/SmartDeviceLinkRawMessage.h"
-
-using namespace NsProtocolHandler;
-
-SmartDeviceLinkRawMessage::SmartDeviceLinkRawMessage(int connectionKey,
- unsigned int protocolVersion,
- unsigned char * data,
- unsigned int dataSize) :
- mConnectionKey( connectionKey )
-,mProtocolVersion( protocolVersion )
-,mData( data )
-,mDataSize( dataSize )
-{}
-
-SmartDeviceLinkRawMessage::~SmartDeviceLinkRawMessage()
-{
- if ( mData )
- {
- delete [] mData;
- mData = 0;
- }
-}
-
-int SmartDeviceLinkRawMessage::getConnectionKey() const
-{
- return mConnectionKey;
-}
-
-unsigned char * SmartDeviceLinkRawMessage::getData() const
-{
- return mData;
-}
-
-unsigned int SmartDeviceLinkRawMessage::getDataSize() const
-{
- return mDataSize;
-}
-
-unsigned int SmartDeviceLinkRawMessage::getProtocolVersion() const
-{
- return mProtocolVersion;
-}
diff --git a/SDL_Core/src/components/TransportManager/CMakeLists.txt b/SDL_Core/src/components/TransportManager/CMakeLists.txt
deleted file mode 100644
index 3871d6a5b..000000000
--- a/SDL_Core/src/components/TransportManager/CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-include_directories (
- ./include
- ../../thirdPartyLibs/logger/include/
- ../../thirdPartyLibs/logger/log4cplus-1.1.0/include/
- ${CMAKE_BINARY_DIR}/src/thirdPartyLibs/logger/log4cplus-1.1.0/include
-)
-
-set (SOURCES
- ./src/SDeviceInfo.cpp
- ./src/IDeviceAdapter.cpp
- ./src/IDeviceAdapterListener.cpp
- ./src/IHandleGenerator.cpp
- ./src/ITransportManager.cpp
- ./src/CBluetoothAdapter.cpp
- ./src/CDeviceAdapter.cpp
- ./src/CTransportManager.cpp
- ./src/CTCPAdapter.cpp
- ./src/SInternalDeviceInfo.cpp
- ./src/ITransportManagerDeviceListener.cpp
- ./src/ITransportManagerDataListener.cpp
-)
-
-add_library("TransportManager" ${SOURCES}) \ No newline at end of file
diff --git a/SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManager.hpp b/SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManager.hpp
deleted file mode 100644
index 301493c9c..000000000
--- a/SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManager.hpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- * \file ITransportManager.hpp
- * \brief Class ITransportManager header.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_ITRANSPORTMANAGER_HPP__
-#define __TRANSPORTMANAGER_ITRANSPORTMANAGER_HPP__
-
-#include <stdint.h>
-#include <sys/types.h>
-#include <vector>
-
-#include "TransportManager/SDeviceInfo.hpp"
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- class ITransportManagerDeviceListener;
- class ITransportManagerDataListener;
-
- /**
- * @brief Connection handle.
- **/
- typedef int tConnectionHandle;
-
- /**
- * @brief Special value of connection handle for indicating invalid connection handle.
- **/
- const tConnectionHandle InvalidConnectionHandle = static_cast<tConnectionHandle>(-1);
-
- /**
- * @brief Interface of transport manager.
- * @interface ITransportManager
- **/
- class ITransportManager
- {
- public:
- /**
- * @brief Destructor.
- **/
- virtual ~ITransportManager(void);
-
- /**
- * @brief Create trasport manager.
- *
- * @return Pointer to created transport manager instance.
- **/
- static ITransportManager * create(void);
-
- /**
- * @brief Run transport manager.
- *
- * Must be called from startup after all references to
- * external components are initialized to start trasport manager.
- **/
- virtual void run(void) = 0;
-
- /**
- * @brief Start scanning for new devices.
- *
- * List of new devices will be supplied in onDeviceListUpdated callback.
- *
- * @see @ref components_transportmanager_client_device_management
- **/
- virtual void scanForNewDevices(void) = 0;
-
- /**
- * @brief Connect to all applications discovered on device.
- *
- * @param DeviceHandle Handle of device to connect to.
- *
- * @see @ref components_transportmanager_client_connection_management
- **/
- virtual void connectDevice(const tDeviceHandle DeviceHandle) = 0;
-
- /**
- * @brief Disconnect from all applications connected on device.
- *
- * @param DeviceHandle Handle of device to disconnect from.
- *
- * @see @ref components_transportmanager_client_connection_management
- **/
- virtual void disconnectDevice(const tDeviceHandle DeviceHandle) = 0;
-
- /**
- * @brief Add listener to the data-related events
- *
- * @param Listener Pointer to listener.
- *
- * @see @ref components_transportmanager_client_data_transfer
- **/
- virtual void addDataListener(ITransportManagerDataListener * Listener) = 0;
-
- /**
- * @brief Remove listener to the data-related events.
- *
- * @param Listener Pointer to listener.
- *
- * @see @ref components_transportmanager_client_data_transfer
- **/
- virtual void removeDataListener(ITransportManagerDataListener * Listener) = 0;
-
- /**
- * @brief Add listener to the device-related events.
- *
- * @param Listener Pointer to listener.
- *
- * @see @ref components_transportmanager_client_device_management
- * @see @ref components_transportmanager_client_connection_management
- **/
- virtual void addDeviceListener(ITransportManagerDeviceListener * Listener) = 0;
-
- /**
- * @brief Remove listenerto the device-related events.
- *
- * @param Listener Pointer to listener.
- *
- * @see @ref components_transportmanager_client_device_management
- * @see @ref components_transportmanager_client_connection_management
- **/
- virtual void removeDeviceListener(ITransportManagerDeviceListener * Listener) = 0;
-
- /**
- * @brief Send frame.
- *
- * @param ConnectionHandle Connection handle.
- * @param Data Frame payload data.
- * @param DataSize Size of data in bytes.
- * @param UserData Any user data. Will be returned as is in ITransportManagerDataListener::onFrameSendCompleted
- *
- * @see @ref components_transportmanager_client_data_transfer
- **/
- virtual void sendFrame(tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize, const int UserData) = 0;
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManagerDataListener.hpp b/SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManagerDataListener.hpp
deleted file mode 100644
index b1770b8db..000000000
--- a/SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManagerDataListener.hpp
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
- * \file ITransportManagerDataListener.hpp
- * \brief Class ITransportManagerDataListener header.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_ITRANSPORTMANAGERDATALISTENER_HPP__
-#define __TRANSPORTMANAGER_ITRANSPORTMANAGERDATALISTENER_HPP__
-
-#include <stdint.h>
-#include <sys/types.h>
-
-#include "TransportManager/ITransportManager.hpp"
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- /**
- * @brief Enumeration of send status.
- **/
- enum ESendStatus
- {
- /**
- * @brief Sending frame has succeeded.
- **/
- SendStatusOK,
-
- /**
- * @brief Timeout occured.
- **/
- SendStatusTimeout,
-
- /**
- * @brief Sending frame has failed.
- **/
- SendStatusFailed,
-
- /**
- * @brief Transport manager internal error.
- **/
- SendStatusInternalError,
-
- /**
- * @brief Invalid incoming parameters.
- **/
- SendStatusInvalidParametersError,
-
- /**
- * @brief Unknown error.
- **/
- SendStatusUnknownError
- };
-
- /**
- * @brief Interface of transport manager listener related to data information.
- *
- * Clients of transport manager must inherit this interface
- * in order to register as listener to receive callbacks about data information
- *
- * @interface ITransportManagerDataListener
- *
- * @see @ref components_transportmanager_client_data_transfer
- **/
- class ITransportManagerDataListener
- {
- public:
- /**
- * @brief Destructor
- *
- **/
- virtual ~ITransportManagerDataListener();
-
- /**
- * @brief Frame received callbacks.
- *
- * @param ConnectionHandle Connection handle.
- * @param Data Received frame payload data.
- * @param DataSize Size of data in bytes.
- *
- * @see @ref components_transportmanager_client_data_transfer
- **/
- virtual void onFrameReceived(tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize);
-
- /**
- * @brief Frame send completed callback.
- *
- * @param ConnectionHandle Connection handle.
- * @param UserData User data that was previously passed to ITransportManager::sendFrame.
- * @param SendStatus Result status.
- *
- * @see @ref components_transportmanager_client_data_transfer
- **/
- virtual void onFrameSendCompleted(tConnectionHandle ConnectionHandle, int UserData, ESendStatus SendStatus);
- };
- }
-}
-
-
-
-#endif // __TRANSPORTMANAGER_ITRANSPORTMANAGERDATALISTENER_HPP__
diff --git a/SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManagerDeviceListener.hpp b/SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManagerDeviceListener.hpp
deleted file mode 100644
index 0bb40e947..000000000
--- a/SDL_Core/src/components/TransportManager/include/TransportManager/ITransportManagerDeviceListener.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * \file ITransportManagerDeviceListener.hpp
- * \brief Class ITransportManagerDeviceListener header.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_ITRANSPORTMANAGERDEVICELISTENER_HPP__
-#define __TRANSPORTMANAGER_ITRANSPORTMANAGERDEVICELISTENER_HPP__
-
-#include "TransportManager/SDeviceInfo.hpp"
-#include "TransportManager/ITransportManager.hpp"
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- /**
- * @brief Interface of transport manager listener related to device information.
- *
- * Clients of transport manager must inherit this interface
- * in order to register as listener to receive callbacks about device information
- *
- * @interface ITransportManagerDeviceListener
- *
- * @see @ref components_transportmanager_client_device_management
- * @see @ref components_transportmanager_client_connection_management
- **/
- class ITransportManagerDeviceListener
- {
- public:
- /**
- * @brief Destructor
- *
- **/
- virtual ~ITransportManagerDeviceListener();
-
- /**
- * @brief Available devices list updated.
- *
- * Called when device scanning initiated with scanForNewDevices
- * is completed.
- *
- * @param DeviceList New list of available devices.
- *
- * @see @ref components_transportmanager_client_device_management
- **/
- virtual void onDeviceListUpdated(const tDeviceList & DeviceList);
-
- /**
- * @brief Application connected.
- *
- * @param ConnectedDevice DeviceInfo of connected device.
- * @param Connection Connection handle.
- *
- * @see @ref components_transportmanager_client_connection_management
- **/
- virtual void onApplicationConnected(const SDeviceInfo & ConnectedDevice, const tConnectionHandle Connection);
-
- /**
- * @brief Application disconnected.
- *
- * @param DisconnectedDevice DeviceInfo of disconnected device.
- * @param Connection Connection handle.
- *
- * @see @ref components_transportmanager_client_connection_management
- **/
- virtual void onApplicationDisconnected(const SDeviceInfo & DisconnectedDevice, const tConnectionHandle Connection);
- };
- }
-}
-
-
-
-#endif // __TRANSPORTMANAGER_ITRANSPORTMANAGERDEVICELISTENER_HPP__
diff --git a/SDL_Core/src/components/TransportManager/include/TransportManager/SDeviceInfo.hpp b/SDL_Core/src/components/TransportManager/include/TransportManager/SDeviceInfo.hpp
deleted file mode 100644
index 42f6a50fb..000000000
--- a/SDL_Core/src/components/TransportManager/include/TransportManager/SDeviceInfo.hpp
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * \file SDeviceInfo.hpp
- * \brief Structure SDeviceInfo header.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_SDEVICEINFO_HPP__
-#define __TRANSPORTMANAGER_SDEVICEINFO_HPP__
-
-#include <string>
-#include <vector>
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- /**
- * @brief Handle to device.
- **/
- typedef int tDeviceHandle;
-
- /**
- * @brief Special value of device handle for indicating invalid device handle.
- **/
- const tDeviceHandle InvalidDeviceHandle = static_cast<tDeviceHandle>(-1);
-
- /**
- * @brief Enumeration for device type.
- **/
- enum EDeviceType
- {
- /**
- * @brief Bluetooth device.
- **/
- DeviceBluetooth,
-
- /**
- * @brief USB device.
- **/
- DeviceUSB,
-
- /**
- * @brief WiFi device.
- **/
- DeviceWiFi
- };
-
- /**
- * @brief Device information.
- **/
- struct SDeviceInfo
- {
- /**
- * @brief Constructor for creating empty struct
- *
- **/
- SDeviceInfo();
-
- /**
- * @brief Constructor for creating struct with predefined values
- *
- * @param DeviceHandle DeviceHandle
- * @param DeviceType DeviceType
- * @param UserFriendlyName User-friendly name
- * @param UniqueDeviceId Unique device id
- **/
- SDeviceInfo(tDeviceHandle DeviceHandle, EDeviceType DeviceType, std::string UserFriendlyName, std::string UniqueDeviceId);
-
- /**
- * @brief Copy constructor
- *
- * @param other Reference to object to be copied
- **/
- SDeviceInfo(const SDeviceInfo& other);
-
- /**
- * @brief Comparison operator.
- *
- * @param i_other Reference to the object to be compared with
- * @return bool
- **/
- bool operator==( const SDeviceInfo& i_other ) const;
-
- /**
- * @brief Device handle.
- **/
- tDeviceHandle mDeviceHandle;
-
- /**
- * @brief Device type.
- **/
- EDeviceType mDeviceType;
-
- /**
- * @brief User-friendly device name.
- **/
- std::string mUserFriendlyName;
-
- /**
- * @brief Unique device identifier across all devices
- **/
- std::string mUniqueDeviceId;
- };
-
- /**
- * @brief Device list.
- **/
- typedef std::vector<SDeviceInfo> tDeviceList;
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/TransportManager/src/CBluetoothAdapter.cpp b/SDL_Core/src/components/TransportManager/src/CBluetoothAdapter.cpp
deleted file mode 100644
index c914fee94..000000000
--- a/SDL_Core/src/components/TransportManager/src/CBluetoothAdapter.cpp
+++ /dev/null
@@ -1,573 +0,0 @@
-/**
- * \file CBluetoothAdapter.cpp
- * \brief Class CBluetoothAdapter.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <errno.h>
-#include <iomanip>
-#include <set>
-#include <unistd.h>
-
-#include <bluetooth/bluetooth.h>
-#include <bluetooth/hci.h>
-#include <bluetooth/hci_lib.h>
-#include <bluetooth/sdp.h>
-#include <bluetooth/sdp_lib.h>
-#include <bluetooth/rfcomm.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include "IDeviceAdapterListener.hpp"
-#include "IHandleGenerator.hpp"
-#include "CBluetoothAdapter.hpp"
-
-NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::SBluetoothDevice::SBluetoothDevice(const bdaddr_t & Address, const char * Name, const NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::tRFCOMMChannelVector & SmartDeviceLinkRFCOMMChannels):
-SDevice(Name),
-mAddress(Address),
-mSmartDeviceLinkRFCOMMChannels(SmartDeviceLinkRFCOMMChannels)
-{
- mUniqueDeviceId = getUniqueDeviceId(Address);
-}
-
-bool NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::SBluetoothDevice::isSameAs(const NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SDevice * OtherDevice) const
-{
- bool result = false;
-
- if (true == SDevice::isSameAs(OtherDevice))
- {
- const SBluetoothDevice * otherBluetoothDevice = dynamic_cast<const SBluetoothDevice *>(OtherDevice);
-
- if (0 != otherBluetoothDevice)
- {
- result = (0 == memcmp(&mAddress, &otherBluetoothDevice->mAddress, sizeof(bdaddr_t)));
- }
- }
-
- return result;
-}
-
-NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::SRFCOMMConnection::SRFCOMMConnection(const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle, const uint8_t RFCOMMChannel):
-SConnection(DeviceHandle),
-mRFCOMMChannel(RFCOMMChannel)
-{
-}
-
-bool NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::SRFCOMMConnection::isSameAs(const NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SConnection * OtherConnection) const
-{
- bool result = false;
-
- if (true == SConnection::isSameAs(OtherConnection))
- {
- const SRFCOMMConnection * otherRFCOMMConnection = dynamic_cast<const SRFCOMMConnection *>(OtherConnection);
-
- if (0 != otherRFCOMMConnection)
- {
- result = (mRFCOMMChannel == otherRFCOMMConnection->mRFCOMMChannel);
- }
- }
-
- return result;
-}
-
-NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::CBluetoothAdapter(NsSmartDeviceLink::NsTransportManager::IDeviceAdapterListener & Listener, IHandleGenerator & HandleGenerator):
-CDeviceAdapter(Listener, HandleGenerator),
-mSmartDeviceLinkServiceUUID()
-{
- LOG4CPLUS_INFO(mLogger, "BluetoothAdapter constructed");
-
- uint8_t SmartDeviceLinkServiceUUIDData[] = {0x93, 0x6D, 0xA0, 0x1F, 0x9A, 0xBD, 0x4D, 0x9D, 0x80, 0xC7, 0x02, 0xAF, 0x85, 0xC8, 0x22, 0xA8};
- sdp_uuid128_create(&mSmartDeviceLinkServiceUUID, SmartDeviceLinkServiceUUIDData);
-}
-
-NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::~CBluetoothAdapter(void)
-{
- LOG4CPLUS_INFO(mLogger, "BluetoothAdapter destructor");
-
- waitForThreadsTermination();
-}
-
-NsSmartDeviceLink::NsTransportManager::EDeviceType NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::getDeviceType(void) const
-{
- return DeviceBluetooth;
-}
-
-void NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::createConnectionsListForDevice(const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle, std::vector< NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SConnection* >& ConnectionsList)
-{
- bdaddr_t deviceAddress;
- tRFCOMMChannelVector rfcommChannels;
- bool isDeviceValid = false;
-
- ConnectionsList.clear();
-
- pthread_mutex_lock(&mDevicesMutex);
-
- tDeviceMap::iterator deviceIterator = mDevices.find(DeviceHandle);
-
- if (mDevices.end() != deviceIterator)
- {
- SBluetoothDevice * device = dynamic_cast<SBluetoothDevice*>(deviceIterator->second);
-
- if (0 != device)
- {
- memcpy(&deviceAddress, &device->mAddress, sizeof(bdaddr_t));
- rfcommChannels = device->mSmartDeviceLinkRFCOMMChannels;
- isDeviceValid = true;
- }
- else
- {
- LOG4CPLUS_WARN(mLogger, "Device " << DeviceHandle << " is invalid");
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device handle " << DeviceHandle << " is invalid");
- }
-
- pthread_mutex_unlock(&mDevicesMutex);
-
- if (true == isDeviceValid)
- {
- if (false == rfcommChannels.empty())
- {
- pthread_mutex_lock(&mConnectionsMutex);
-
- for (tConnectionMap::const_iterator connectionIterator = mConnections.begin(); connectionIterator != mConnections.end(); ++connectionIterator)
- {
- const SRFCOMMConnection * connection = dynamic_cast<SRFCOMMConnection*>(connectionIterator->second);
-
- if (0 != connection)
- {
- rfcommChannels.erase(std::remove_if(rfcommChannels.begin(),
- rfcommChannels.end(),
- [&DeviceHandle, &connection] (const uint8_t & Channel)
- {
- return (connection->mDeviceHandle == DeviceHandle) &&
- (connection->mRFCOMMChannel == Channel);
- }
- ),
- rfcommChannels.end());
- }
- }
-
- pthread_mutex_unlock(&mConnectionsMutex);
-
- for (tRFCOMMChannelVector::const_iterator channelIterator = rfcommChannels.begin(); channelIterator != rfcommChannels.end(); ++channelIterator)
- {
- ConnectionsList.push_back(new SRFCOMMConnection(DeviceHandle, *channelIterator));
- }
- }
- else
- {
- LOG4CPLUS_WARN(mLogger, "SmartDeviceLink service was not discovered on device " << DeviceHandle);
- }
- }
-}
-
-void NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::mainThread(void)
-{
- LOG4CPLUS_INFO(mLogger, "Bluetooth adapter main thread initialized");
-
- const size_t maxDevices = 256u;
- inquiry_info * inquiryInfoList = new inquiry_info[maxDevices];
-
- while (false == mShutdownFlag)
- {
- tDeviceMap newDevices;
- tDeviceVector discoveredDevices;
-
- bool deviceScanRequested = waitForDeviceScanRequest(0);
-
- if (true == deviceScanRequested)
- {
- int deviceID = hci_get_route(0);
-
- if (deviceID >= 0)
- {
- int deviceHandle = hci_open_dev(deviceID);
-
- if (deviceHandle >= 0)
- {
- const uint8_t inquiryTime = 8u; // Time unit is 1.28 seconds
-
- LOG4CPLUS_INFO(mLogger, "Starting hci_inquiry on device " << deviceID);
-
- int numberOfDevices = hci_inquiry(deviceID, inquiryTime, maxDevices, 0, &inquiryInfoList, IREQ_CACHE_FLUSH);
-
- if (numberOfDevices >= 0)
- {
- LOG4CPLUS_INFO(mLogger, "hci_inquiry: found " << numberOfDevices << " devices");
-
- for (int i = 0; i < numberOfDevices; ++i)
- {
- tRFCOMMChannelVector SmartDeviceLinkRFCOMMChannels;
- discoverSmartDeviceLinkRFCOMMChannels(inquiryInfoList[i].bdaddr, SmartDeviceLinkRFCOMMChannels);
-
- if (false == SmartDeviceLinkRFCOMMChannels.empty())
- {
- char deviceName[256];
-
- if (0 != hci_read_remote_name(deviceHandle, &inquiryInfoList[i].bdaddr, sizeof(deviceName) / sizeof(deviceName[0]), deviceName, 0))
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "hci_read_remote_name failed");
- strncpy(deviceName, getUniqueDeviceId(inquiryInfoList[i].bdaddr).c_str(), sizeof(deviceName) / sizeof(deviceName[0]));
- }
-
- discoveredDevices.push_back(new SBluetoothDevice(inquiryInfoList[i].bdaddr, deviceName, SmartDeviceLinkRFCOMMChannels));
- }
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "hci_inquiry failed");
- }
-
- close(deviceHandle);
- }
- }
-
- for (tDeviceVector::iterator discoveredDeviceIterator = discoveredDevices.begin(); discoveredDeviceIterator != discoveredDevices.end(); ++discoveredDeviceIterator)
- {
- SDevice * discoveredDevice = *discoveredDeviceIterator;
-
- if (0 != discoveredDevice)
- {
- tDeviceHandle deviceHandle = InvalidDeviceHandle;
-
- pthread_mutex_lock(&mDevicesMutex);
-
- for (tDeviceMap::iterator deviceIterator = mDevices.begin(); deviceIterator != mDevices.end(); ++deviceIterator)
- {
- SDevice * exisingDevice = deviceIterator->second;
-
- if (true == discoveredDevice->isSameAs(exisingDevice))
- {
- deviceHandle = deviceIterator->first;
- break;
- }
- }
-
- pthread_mutex_unlock(&mDevicesMutex);
-
- if (InvalidDeviceHandle == deviceHandle)
- {
- deviceHandle = mHandleGenerator.generateNewDeviceHandle();
-
- LOG4CPLUS_INFO(mLogger, "Adding new device " << deviceHandle << " (\"" << discoveredDevice->mName << "\")");
- }
-
- newDevices[deviceHandle] = discoveredDevice;
- }
- }
-
- pthread_mutex_lock(&mConnectionsMutex);
-
- std::set<tDeviceHandle> connectedDevices;
-
- for (tConnectionMap::const_iterator connectionIterator = mConnections.begin(); connectionIterator != mConnections.end(); ++connectionIterator)
- {
- const SConnection * connection = connectionIterator->second;
-
- if (0 != connection)
- {
- if (connectedDevices.end() == connectedDevices.find(connection->mDeviceHandle))
- {
- connectedDevices.insert(connection->mDeviceHandle);
- }
- }
- }
-
- pthread_mutex_unlock(&mConnectionsMutex);
-
- pthread_mutex_lock(&mDevicesMutex);
-
- for (tDeviceMap::iterator deviceIterator = mDevices.begin(); deviceIterator != mDevices.end(); ++deviceIterator)
- {
- SDevice * device = deviceIterator->second;
-
- if (0 != device)
- {
- if (newDevices.end() == newDevices.find(deviceIterator->first))
- {
- if (connectedDevices.end() != connectedDevices.find(deviceIterator->first))
- {
- newDevices[deviceIterator->first] = device;
- device = 0;
- }
- }
-
- if (0 != device)
- {
- delete device;
- }
- }
- }
-
- mDevices = newDevices;
-
- pthread_mutex_unlock(&mDevicesMutex);
-
- LOG4CPLUS_INFO(mLogger, "Discovered " << newDevices.size() << " device" << ((1u == newDevices.size()) ? "" : "s") << " with SmartDeviceLink service. New devices map:");
-
- for (tDeviceMap::iterator deviceIterator = newDevices.begin(); deviceIterator != newDevices.end(); ++deviceIterator)
- {
- SDevice * device = deviceIterator->second;
-
- if (0 != device)
- {
- LOG4CPLUS_INFO(mLogger, std::setw(10) << deviceIterator->first << std::setw(0) << ": " << device->mUniqueDeviceId << ", " << device->mName.c_str());
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, std::setw(10) << deviceIterator->first << std::setw(0) << ": Device is null");
- }
- }
-
- mDeviceScanRequested = false;
-
- updateClientDeviceList();
- }
- }
-
- delete [] inquiryInfoList;
-
- LOG4CPLUS_INFO(mLogger, "Bluetooth adapter main thread finished");
-}
-
-void NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::connectionThread(const NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle)
-{
- LOG4CPLUS_INFO(mLogger, "Connection thread started for connection " << ConnectionHandle);
-
- tDeviceHandle deviceHandle = InvalidDeviceHandle;
- struct sockaddr_rc remoteSocketAddress = {0};
- remoteSocketAddress.rc_family = AF_BLUETOOTH;
-
- pthread_mutex_lock(&mConnectionsMutex);
-
- SRFCOMMConnection * connection = 0;
- tConnectionMap::const_iterator connectionIterator = mConnections.find(ConnectionHandle);
-
- if (connectionIterator != mConnections.end())
- {
- connection = dynamic_cast<SRFCOMMConnection*>(connectionIterator->second);
-
- if (0 != connection)
- {
- deviceHandle = connection->mDeviceHandle;
- remoteSocketAddress.rc_channel = connection->mRFCOMMChannel;
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection " << ConnectionHandle << " is not valid");
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection " << ConnectionHandle << " does not exist");
- }
-
- pthread_mutex_unlock(&mConnectionsMutex);
-
- if (0 != connection)
- {
- if (InvalidDeviceHandle != deviceHandle)
- {
- bool isDeviceValid = false;
-
- pthread_mutex_lock(&mDevicesMutex);
-
- tDeviceMap::const_iterator deviceIterator = mDevices.find(deviceHandle);
-
- if (deviceIterator != mDevices.end())
- {
- const SBluetoothDevice * device = dynamic_cast<const SBluetoothDevice*>(deviceIterator->second);
-
- if (0 != device)
- {
- isDeviceValid = true;
- memcpy(&remoteSocketAddress.rc_bdaddr, &device->mAddress, sizeof(bdaddr_t));
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device " << deviceHandle << " is not valid");
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device " << deviceHandle << " does not exist");
- }
-
- pthread_mutex_unlock(&mDevicesMutex);
-
- if (true == isDeviceValid)
- {
- int rfcommSocket = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
-
- if (-1 != rfcommSocket)
- {
- if (0 == connect(rfcommSocket, (struct sockaddr *)&remoteSocketAddress, sizeof(remoteSocketAddress)))
- {
- connection->mConnectionSocket = rfcommSocket;
- handleCommunication(ConnectionHandle);
- }
- else
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "Failed to connect to remote device " << getUniqueDeviceId(remoteSocketAddress.rc_bdaddr) << " for connection " << ConnectionHandle);
- }
- }
- else
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "Failed to create RFCOMM socket for connection " << ConnectionHandle);
- }
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device handle for connection " << ConnectionHandle << " is invalid");
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection " << ConnectionHandle << " is null");
- }
-
- LOG4CPLUS_INFO(mLogger, "Removing connection " << ConnectionHandle << " from connection map");
-
- pthread_mutex_lock(&mConnectionsMutex);
- mConnections.erase(ConnectionHandle);
- pthread_mutex_unlock(&mConnectionsMutex);
-
- delete connection;
-
- LOG4CPLUS_INFO(mLogger, "Connection thread finished for connection " << ConnectionHandle);
-}
-
-std::string NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::getUniqueDeviceId(const bdaddr_t & DeviceAddress)
-{
- char deviceAddressString[32];
-
- ba2str(&DeviceAddress, deviceAddressString);
-
- return std::string("BT-") + deviceAddressString;
-}
-
-void NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::discoverSmartDeviceLinkRFCOMMChannels(const bdaddr_t & DeviceAddress, NsSmartDeviceLink::NsTransportManager::CBluetoothAdapter::tRFCOMMChannelVector & SmartDeviceLinkRFCOMMChannels)
-{
- SmartDeviceLinkRFCOMMChannels.clear();
-
- static bdaddr_t anyAddress = {{0, 0, 0, 0, 0, 0}};
-
- sdp_session_t * sdpSession = sdp_connect(&anyAddress, &DeviceAddress, SDP_RETRY_IF_BUSY);
-
- if (0 != sdpSession)
- {
- sdp_list_t * searchList = sdp_list_append(0, &mSmartDeviceLinkServiceUUID);
- uint32_t range = 0x0000ffff;
- sdp_list_t * attrList = sdp_list_append(0, &range);
- sdp_list_t * responseList = 0;
-
- if (0 == sdp_service_search_attr_req(sdpSession, searchList, SDP_ATTR_REQ_RANGE, attrList, &responseList))
- {
- for (sdp_list_t * r = responseList; 0 != r; r = r->next)
- {
- sdp_record_t * sdpRecord = static_cast<sdp_record_t*>(r->data);
- sdp_list_t * protoList = 0;
-
- if (0 == sdp_get_access_protos(sdpRecord, &protoList))
- {
- for (sdp_list_t * p = protoList; 0 != p; p = p->next)
- {
- sdp_list_t * pdsList = static_cast<sdp_list_t*>(p->data);
-
- for (sdp_list_t * pds = pdsList; 0 != pds; pds = pds->next)
- {
- sdp_data_t * sdpData = static_cast<sdp_data_t*>(pds->data);
- int proto = 0;
-
- for (sdp_data_t * d = sdpData; 0 != d; d = d->next)
- {
- switch (d->dtd)
- {
- case SDP_UUID16:
- case SDP_UUID32:
- case SDP_UUID128:
- proto = sdp_uuid_to_proto(&d->val.uuid);
- break;
-
- case SDP_UINT8:
- if (RFCOMM_UUID == proto)
- {
- SmartDeviceLinkRFCOMMChannels.push_back(d->val.uint8);
- }
- break;
- }
- }
- }
-
- sdp_list_free(pdsList, 0);
- }
-
- sdp_list_free(protoList, 0);
- }
- }
- }
-
- sdp_list_free(searchList, 0);
- sdp_list_free(attrList, 0);
- sdp_list_free(responseList, 0);
- sdp_close(sdpSession);
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Service discovery failed for " << getUniqueDeviceId(DeviceAddress));
- }
-
- if (false == SmartDeviceLinkRFCOMMChannels.empty())
- {
- std::stringstream rfcommChannelsString;
-
- for (tRFCOMMChannelVector::const_iterator channelIterator = SmartDeviceLinkRFCOMMChannels.begin(); channelIterator != SmartDeviceLinkRFCOMMChannels.end(); ++channelIterator)
- {
- if (channelIterator != SmartDeviceLinkRFCOMMChannels.begin())
- {
- rfcommChannelsString << ", ";
- }
-
- rfcommChannelsString << static_cast<uint32_t>(*channelIterator);
- }
-
- LOG4CPLUS_INFO(mLogger, "SmartDeviceLink service was discovered on device " << getUniqueDeviceId(DeviceAddress) << " at channel(s): " << rfcommChannelsString.str().c_str());
- }
- else
- {
- LOG4CPLUS_INFO(mLogger, "SmartDeviceLink service was not discovered on device " << getUniqueDeviceId(DeviceAddress));
- }
-}
diff --git a/SDL_Core/src/components/TransportManager/src/CBluetoothAdapter.hpp b/SDL_Core/src/components/TransportManager/src/CBluetoothAdapter.hpp
deleted file mode 100644
index 43f0b96ef..000000000
--- a/SDL_Core/src/components/TransportManager/src/CBluetoothAdapter.hpp
+++ /dev/null
@@ -1,225 +0,0 @@
-/**
- * \file CBluetoothAdapter.hpp
- * \brief Class CBluetoothAdapter header.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_CBLUETOOTHADAPTER_HPP__
-#define __TRANSPORTMANAGER_CBLUETOOTHADAPTER_HPP__
-
-#include <bluetooth/bluetooth.h>
-#include <bluetooth/sdp.h>
-#include <time.h>
-
-#include "Logger.hpp"
-
-#include "TransportManager/SDeviceInfo.hpp"
-
-#include "CDeviceAdapter.hpp"
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- /**
- * @brief Bluetooth device adapter.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_bluetooth_adapter
- **/
- class CBluetoothAdapter: public CDeviceAdapter
- {
- public:
- /**
- * @brief Constructor.
- *
- * @param Listener Listener for device adapter notifications.
- * @param HandleGenerator Handle generator implementation.
- **/
- CBluetoothAdapter(IDeviceAdapterListener & Listener, IHandleGenerator & HandleGenerator);
-
- /**
- * @brief Destructor.
- **/
- virtual ~CBluetoothAdapter(void);
-
- /**
- * @brief Get type of devices handled by this device adapter.
- *
- * @return Device type.
- **/
- virtual EDeviceType getDeviceType(void) const;
-
- private:
- /**
- * @brief Vector of RFCOMM channels.
- **/
- typedef std::vector<uint8_t> tRFCOMMChannelVector;
-
- /**
- * @brief Internal structure describing bluetooth device.
- **/
- struct SBluetoothDevice: public SDevice
- {
- /**
- * @brief Constructor.
- *
- * @param Address Bluetooth address.
- * @param Name User-friendly device name.
- * @param SmartDeviceLinkRFCOMMChannels List of RFCOMM channels where SmartDeviceLink service has been discovered.
- **/
- SBluetoothDevice(const bdaddr_t & Address, const char * Name, const tRFCOMMChannelVector & SmartDeviceLinkRFCOMMChannels);
-
- /**
- * @brief Compare devices.
- *
- * This method checks whether two SBluetoothDevice structures
- * refer to the same device.
- *
- * @param OtherDevice Device to compare with.
- *
- * @return true if devices are equal, false otherwise.
- **/
- virtual bool isSameAs(const SDevice * OtherDevice) const;
-
- /**
- * @brief Device bluetooth address.
- **/
- bdaddr_t mAddress;
-
- /**
- * @brief List of RFCOMM channels where SmartDeviceLink service has been discovered.
- **/
- tRFCOMMChannelVector mSmartDeviceLinkRFCOMMChannels;
- };
-
- /**
- * @brief RFCOMM connection.
- **/
- struct SRFCOMMConnection: public SConnection
- {
- /**
- * @brief Constructor.
- *
- * @param DeviceHandle Device handle.
- * @param RFCOMMChannel RFCOMM channel of SmartDeviceLink service on remote device.
- **/
- SRFCOMMConnection(const tDeviceHandle DeviceHandle, const uint8_t RFCOMMChannel);
-
- /**
- * @brief Compare connections.
- *
- * This method compares whether two SRFCOMMConnection structures
- * refer to the same connection.
- *
- * @param OtherConnection Connection to compare with.
- *
- * @return true if connections are equal, false otherwise.
- **/
- virtual bool isSameAs(const SConnection * OtherConnection) const;
-
- /**
- * @brief RFCOMM channel of remote device.
- **/
- const uint8_t mRFCOMMChannel;
- };
-
- /**
- * @brief Create list of connections possible for specified device.
- *
- * This method is called from connectDevice(). This implementation will
- * perform service discovery and create connection structures for all
- * RFCOMM channels where SmartDeviceLink service is discovered.
- *
- * @param DeviceHandle Device handle.
- * @param ConnectionsList Reference to connections list that must be filled.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_bluetooth_adapter_connecting_devices
- **/
- virtual void createConnectionsListForDevice(const tDeviceHandle DeviceHandle, std::vector<SConnection*> & ConnectionsList);
-
- /**
- * @brief Device discovery thread.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_main_thread
- * @see @ref components_transportmanager_internal_design_device_adapters_bluetooth_adapter_discovery
- **/
- virtual void mainThread(void);
-
- /**
- * @brief Connection thread.
- *
- * This method is responsible for establishing connection and communicating
- * with remote device via specified connection. It must remove itself from
- * connection map when connection is terminated before terminating connection thread.
- *
- * @param ConnectionHandle Connection handle.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_connection_thread
- **/
- virtual void connectionThread(const tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Get unique device ID.
- *
- * Get TransportManager-unique identifier of
- * bluetooth device based on its bluetooth address.
- *
- * @param DeviceAddress Address of device.
- *
- * @return Unique device identifier.
- **/
- static std::string getUniqueDeviceId(const bdaddr_t & DeviceAddress);
-
- /**
- * @brief Discover SmartDeviceLink RFCOMM channels.
- *
- * Run service discovery for specified remote bluetooth device
- * and discover RFCOMM channels with SmartDeviceLink service.
- *
- * @param DeviceAddress Address of device.
- * @param SmartDeviceLinkRFCOMMChannels Reference to variable that will
- * receive list of RFCOMM channels
- * with SmartDeviceLink service discovered.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_bluetooth_adapter_discovery
- * @see @ref components_transportmanager_internal_design_device_adapters_bluetooth_adapter_connecting_devices
- **/
- void discoverSmartDeviceLinkRFCOMMChannels(const bdaddr_t & DeviceAddress, tRFCOMMChannelVector & SmartDeviceLinkRFCOMMChannels);
-
- /**
- * @brief UUID of SmartDeviceLink service.
- **/
- uuid_t mSmartDeviceLinkServiceUUID;
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/TransportManager/src/CDeviceAdapter.cpp b/SDL_Core/src/components/TransportManager/src/CDeviceAdapter.cpp
deleted file mode 100644
index 32b9e6e88..000000000
--- a/SDL_Core/src/components/TransportManager/src/CDeviceAdapter.cpp
+++ /dev/null
@@ -1,866 +0,0 @@
-/**
- * \file CDeviceAdapter.cpp
- * \brief Class CDeviceAdapter.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <fcntl.h>
-#include <memory.h>
-#include <poll.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include "IDeviceAdapterListener.hpp"
-#include "IHandleGenerator.hpp"
-#include "CDeviceAdapter.hpp"
-
-NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SFrame::SFrame(int UserData, const uint8_t* Data, const size_t DataSize):
-mUserData(UserData),
-mData(0),
-mDataSize(0)
-{
- if ((0 != Data) &&
- (0u != DataSize))
- {
- mData = new uint8_t[DataSize];
-
- if (0 != mData)
- {
- mDataSize = DataSize;
- memcpy(mData, Data, DataSize);
- }
- }
-}
-
-NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SFrame::~SFrame(void)
-{
- if (0 != mData)
- {
- delete [] mData;
- }
-}
-
-NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SDevice::SDevice(const char * Name):
-mName(Name),
-mUniqueDeviceId()
-{
-}
-
-NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SDevice::~SDevice(void)
-{
-}
-
-bool NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SDevice::isSameAs(const NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SDevice * OtherDevice) const
-{
- return true;
-}
-
-NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SConnection::SConnection(const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle):
-mDeviceHandle(DeviceHandle),
-mConnectionThread(),
-mNotificationPipeFds(),
-mConnectionSocket(-1),
-mFramesToSend(),
-mTerminateFlag(false)
-{
-}
-
-NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SConnection::~SConnection(void)
-{
- while (false == mFramesToSend.empty())
- {
- delete mFramesToSend.front();
- mFramesToSend.pop();
- }
-}
-
-bool NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SConnection::isSameAs(const NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SConnection * OtherConnection) const
-{
- bool result = false;
-
- if (0 != OtherConnection)
- {
- result = (mDeviceHandle == OtherConnection->mDeviceHandle);
- }
-
- return result;
-}
-
-NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SConnectionThreadParameters::SConnectionThreadParameters(NsSmartDeviceLink::NsTransportManager::CDeviceAdapter & DeviceAdapter, NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle):
-mDeviceAdapter(DeviceAdapter),
-mConnectionHandle(ConnectionHandle)
-{
-}
-
-NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::CDeviceAdapter(NsSmartDeviceLink::NsTransportManager::IDeviceAdapterListener& Listener, IHandleGenerator& HandleGenerator):
-mLogger(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("TransportManager"))),
-mListener(Listener),
-mHandleGenerator(HandleGenerator),
-mDeviceScanRequested(false),
-mDeviceScanRequestedMutex(),
-mDeviceScanRequestedCond(),
-mDevices(),
-mDevicesMutex(),
-mConnections(),
-mConnectionsMutex(),
-mShutdownFlag(false),
-mMainThread(),
-mMainThreadStarted(false)
-{
- pthread_cond_init(&mDeviceScanRequestedCond, 0);
- pthread_mutex_init(&mDeviceScanRequestedMutex, 0);
- pthread_mutex_init(&mDevicesMutex, 0);
- pthread_mutex_init(&mConnectionsMutex, 0);
-}
-
-NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::~CDeviceAdapter(void)
-{
- pthread_mutex_destroy(&mConnectionsMutex);
- pthread_mutex_destroy(&mDevicesMutex);
- pthread_mutex_destroy(&mDeviceScanRequestedMutex);
- pthread_cond_destroy(&mDeviceScanRequestedCond);
-}
-
-void NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::run(void)
-{
- LOG4CPLUS_INFO(mLogger, "Initializing device adapter");
-
- int errorCode = pthread_create(&mMainThread, 0, &mainThreadStartRoutine, this);
-
- if (0 == errorCode)
- {
- mMainThreadStarted = true;
- LOG4CPLUS_INFO(mLogger, "Device adapter main thread started");
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device adapter main thread start failed, error code " << errorCode);
- }
-}
-
-void NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::scanForNewDevices(void)
-{
- pthread_mutex_lock(&mDeviceScanRequestedMutex);
-
- if (false == mDeviceScanRequested)
- {
- LOG4CPLUS_INFO(mLogger, "Requesting device scan");
-
- mDeviceScanRequested = true;
- pthread_cond_signal(&mDeviceScanRequestedCond);
- }
- else
- {
- LOG4CPLUS_INFO(mLogger, "Device scan is currently in progress");
- }
-
- pthread_mutex_unlock(&mDeviceScanRequestedMutex);
-}
-
-void NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::connectDevice(const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle)
-{
- bool isDeviceValid = false;
-
- pthread_mutex_lock(&mDevicesMutex);
-
- if (mDevices.end() != mDevices.find(DeviceHandle))
- {
- isDeviceValid = true;
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device handle " << DeviceHandle << " is invalid");
- }
-
- pthread_mutex_unlock(&mDevicesMutex);
-
- if (true == isDeviceValid)
- {
- std::vector<SConnection*> connections;
- createConnectionsListForDevice(DeviceHandle, connections);
-
- if (false == connections.empty())
- {
- LOG4CPLUS_INFO(mLogger, "Connecting device " << DeviceHandle);
-
- for (std::vector<SConnection*>::iterator connectionIterator = connections.begin(); connectionIterator != connections.end(); ++connectionIterator)
- {
- startConnection(*connectionIterator);
- }
- }
- else
- {
- LOG4CPLUS_WARN(mLogger, "No connections to establish on device " << DeviceHandle);
- }
- }
-}
-
-void NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::disconnectDevice(const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle)
-{
- bool isDeviceValid = false;
-
- pthread_mutex_lock(&mDevicesMutex);
-
- if (mDevices.end() != mDevices.find(DeviceHandle))
- {
- isDeviceValid = true;
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device handle " << DeviceHandle << " is invalid");
- }
-
- pthread_mutex_unlock(&mDevicesMutex);
-
- if (true == isDeviceValid)
- {
- std::vector<tConnectionHandle> connectionsToTerminate;
-
- pthread_mutex_lock(&mConnectionsMutex);
-
- for (tConnectionMap::const_iterator connectionIterator = mConnections.begin(); connectionIterator != mConnections.end(); ++connectionIterator)
- {
- SConnection * connection = connectionIterator->second;
-
- if (0 != connection)
- {
- if (connection->mDeviceHandle == DeviceHandle)
- {
- connectionsToTerminate.push_back(connectionIterator->first);
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection " << connectionIterator->first << " is null");
- }
- }
-
- pthread_mutex_unlock(&mConnectionsMutex);
-
- for (std::vector<tConnectionHandle>::const_iterator connectionHandleIterator = connectionsToTerminate.begin(); connectionHandleIterator != connectionsToTerminate.end(); ++connectionHandleIterator)
- {
- stopConnection(*connectionHandleIterator);
- }
- }
-}
-
-void NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::sendFrame(NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize, int UserData)
-{
- if (0u == DataSize)
- {
- LOG4CPLUS_WARN(mLogger, "DataSize=0");
- }
- else if (0 == Data)
- {
- LOG4CPLUS_WARN(mLogger, "Data is null");
- }
- else
- {
- pthread_mutex_lock(&mConnectionsMutex);
-
- tConnectionMap::iterator connectionIterator = mConnections.find(ConnectionHandle);
-
- if (mConnections.end() == connectionIterator)
- {
- LOG4CPLUS_ERROR(mLogger, "Connection " << ConnectionHandle << " does not exist");
- }
- else
- {
- SConnection * connection = connectionIterator->second;
-
- if (0 != connection)
- {
- connection->mFramesToSend.push(new SFrame(UserData, Data, DataSize));
-
- if (-1 != connection->mNotificationPipeFds[1])
- {
- uint8_t c = 0;
- if (1 != write(connection->mNotificationPipeFds[1], &c, 1))
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "Failed to wake up connection thread for connection " << connectionIterator->first);
- }
- }
- }
- }
-
- pthread_mutex_unlock(&mConnectionsMutex);
- }
-}
-
-void NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::waitForThreadsTermination(void)
-{
- mShutdownFlag = true;
-
- if (true == mMainThreadStarted)
- {
- LOG4CPLUS_INFO(mLogger, "Waiting for device adapter main thread termination");
- pthread_join(mMainThread, 0);
- LOG4CPLUS_INFO(mLogger, "Device adapter main thread terminated");
- }
-
- std::vector<pthread_t> connectionThreads;
-
- pthread_mutex_lock(&mConnectionsMutex);
-
- for (tConnectionMap::iterator connectionIterator = mConnections.begin(); connectionIterator != mConnections.end(); ++connectionIterator)
- {
- SConnection * connection = connectionIterator->second;
-
- if (0 != connection)
- {
- connection->mTerminateFlag = true;
- if (-1 != connection->mNotificationPipeFds[1])
- {
- uint8_t c = 0;
- if (1 != write(connection->mNotificationPipeFds[1], &c, 1))
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "Failed to wake up connection thread for connection " << connectionIterator->first);
- }
- }
- connectionThreads.push_back(connection->mConnectionThread);
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection " << connectionIterator->first << " is null");
- }
- }
-
- pthread_mutex_unlock(&mConnectionsMutex);
-
- LOG4CPLUS_INFO(mLogger, "Waiting for connection threads termination");
-
- for (std::vector<pthread_t>::iterator connectionThreadIterator = connectionThreads.begin(); connectionThreadIterator != connectionThreads.end(); ++connectionThreadIterator)
- {
- pthread_join(*connectionThreadIterator, 0);
- }
-
- LOG4CPLUS_INFO(mLogger, "Connection threads terminated");
-}
-
-bool NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::startConnection(NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SConnection * Connection)
-{
- bool isConnectionThreadStarted = false;
-
- if (0 != Connection)
- {
- tConnectionHandle newConnectionHandle = mHandleGenerator.generateNewConnectionHandle();
-
- pthread_mutex_lock(&mConnectionsMutex);
-
- if (false == mShutdownFlag)
- {
- tConnectionMap::const_iterator connectionIterator;
- for (connectionIterator = mConnections.begin(); connectionIterator != mConnections.end(); ++connectionIterator)
- {
- const SConnection * existingConnection = connectionIterator->second;
-
- if (0 != existingConnection)
- {
- if (existingConnection->isSameAs(Connection))
- {
- LOG4CPLUS_WARN(mLogger, "Connection is already opened (" << connectionIterator->first << ")");
-
- break;
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection " << connectionIterator->first << " is null");
- }
- }
-
- if (mConnections.end() == connectionIterator)
- {
- std::pair<tConnectionMap::iterator, bool> insertResult = mConnections.insert(std::make_pair(newConnectionHandle, Connection));
-
- if (true == insertResult.second)
- {
- SConnection * newConnection = insertResult.first->second;
-
- if (0 != newConnection)
- {
- SConnectionThreadParameters * connectionThreadParameters = new SConnectionThreadParameters(*this, newConnectionHandle);
-
- int errorCode = pthread_create(&newConnection->mConnectionThread, 0, &CDeviceAdapter::connectionThreadStartRoutine, static_cast<void*>(connectionThreadParameters));
-
- if (0 == errorCode)
- {
- LOG4CPLUS_INFO(mLogger, "Connection thread started for connection " << newConnectionHandle << " (device " << newConnection->mDeviceHandle << ")");
-
- isConnectionThreadStarted = true;
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection thread start failed for connection " << newConnectionHandle << " (device " << newConnection->mDeviceHandle << ")");
-
- delete connectionThreadParameters;
- mConnections.erase(insertResult.first);
- delete newConnection;
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Failed to allocate connection " << newConnectionHandle);
-
- mConnections.erase(newConnectionHandle);
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection handle " << newConnectionHandle << " already exists");
- }
- }
- else
- {
- delete Connection;
- }
- }
-
- pthread_mutex_unlock(&mConnectionsMutex);
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection is null");
- }
-
- return isConnectionThreadStarted;
-}
-
-void NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::stopConnection(NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle)
-{
- pthread_mutex_lock(&mConnectionsMutex);
-
- tConnectionMap::iterator connectionIterator = mConnections.find(ConnectionHandle);
-
- if (mConnections.end() != connectionIterator)
- {
- SConnection * connection = connectionIterator->second;
-
- if (0 != connection)
- {
- if (false == connection->mTerminateFlag)
- {
- connection->mTerminateFlag = true;
- if (-1 != connection->mNotificationPipeFds[1])
- {
- uint8_t c = 0;
- if (1 != write(connection->mNotificationPipeFds[1], &c, 1))
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "Failed to wake up connection thread for connection " << connectionIterator->first);
- }
- }
-
- LOG4CPLUS_INFO(mLogger, "Connection " << ConnectionHandle << "(device " << connection->mDeviceHandle << ") has been marked for termination");
- }
- else
- {
- LOG4CPLUS_WARN(mLogger, "Connection " << ConnectionHandle << " is already terminating");
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection " << ConnectionHandle << " is null");
- }
- }
- else
- {
- LOG4CPLUS_WARN(mLogger, "Connection " << ConnectionHandle << " does not exist");
- }
-
- pthread_mutex_unlock(&mConnectionsMutex);
-}
-
-bool NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::waitForDeviceScanRequest(const time_t Timeout)
-{
- bool deviceScanRequested = false;
-
- pthread_mutex_lock(&mDeviceScanRequestedMutex);
-
- if (false == mDeviceScanRequested)
- {
- if (0 == Timeout)
- {
- if (0 != pthread_cond_wait(&mDeviceScanRequestedCond, &mDeviceScanRequestedMutex))
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "pthread_cond_wait failed");
- }
- }
- else
- {
- timespec timeoutTime;
-
- if (0 == clock_gettime(CLOCK_REALTIME, &timeoutTime))
- {
- timeoutTime.tv_sec += Timeout;
-
- while (0 == pthread_cond_timedwait(&mDeviceScanRequestedCond, &mDeviceScanRequestedMutex, &timeoutTime))
- {
- if (true == mDeviceScanRequested)
- {
- break;
- }
- }
- }
- else
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "clock_gettime failed");
-
- sleep(Timeout);
- }
- }
- }
-
- deviceScanRequested = mDeviceScanRequested;
-
- pthread_mutex_unlock(&mDeviceScanRequestedMutex);
-
- return deviceScanRequested;
-}
-
-void NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::handleCommunication(const NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle)
-{
- SConnection * connection = 0;
- bool isPipeCreated = false;
- int notificationPipeReadFd = -1;
- int connectionSocket = -1;
- tDeviceHandle deviceHandle = InvalidDeviceHandle;
-
- pthread_mutex_lock(&mConnectionsMutex);
-
- tConnectionMap::iterator connectionIterator = mConnections.find(ConnectionHandle);
-
- if (mConnections.end() != connectionIterator)
- {
- connection = connectionIterator->second;
-
- if (0 != connection)
- {
- isPipeCreated = (0 == pipe(connection->mNotificationPipeFds));
- notificationPipeReadFd = connection->mNotificationPipeFds[0];
- connectionSocket = connection->mConnectionSocket;
- deviceHandle = connection->mDeviceHandle;
- }
- }
-
- pthread_mutex_unlock(&mConnectionsMutex);
-
- if (0 != connection)
- {
- if (-1 != connectionSocket)
- {
- if (InvalidDeviceHandle != deviceHandle)
- {
- bool isDeviceValid = false;
- SDeviceInfo clientDeviceInfo;
-
- pthread_mutex_lock(&mDevicesMutex);
-
- tDeviceMap::const_iterator deviceIterator = mDevices.find(deviceHandle);
-
- if (deviceIterator != mDevices.end())
- {
- const SDevice * device = deviceIterator->second;
-
- if (0 != device)
- {
- isDeviceValid = true;
-
- clientDeviceInfo.mDeviceHandle = deviceHandle;
- clientDeviceInfo.mDeviceType = getDeviceType();
- clientDeviceInfo.mUserFriendlyName = device->mName;
- clientDeviceInfo.mUniqueDeviceId = device->mUniqueDeviceId;
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device " << deviceHandle << " is not valid");
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device " << deviceHandle << " does not exist");
- }
-
- pthread_mutex_unlock(&mDevicesMutex);
-
- if (true == isDeviceValid)
- {
- if (true == isPipeCreated)
- {
- if (0 == fcntl(notificationPipeReadFd, F_SETFL, fcntl(notificationPipeReadFd, F_GETFL) | O_NONBLOCK))
- {
- LOG4CPLUS_INFO(mLogger, "Connection " << ConnectionHandle << " to remote device " << clientDeviceInfo.mUniqueDeviceId << " established");
-
- mListener.onApplicationConnected(this, clientDeviceInfo, ConnectionHandle);
-
- pollfd pollFds[2];
- pollFds[0].fd = connectionSocket;
- pollFds[0].events = POLLIN | POLLPRI;
- pollFds[1].fd = connection->mNotificationPipeFds[0];
- pollFds[1].events = POLLIN | POLLPRI;
-
- while (false == connection->mTerminateFlag)
- {
- if (-1 != poll(pollFds, sizeof(pollFds) / sizeof(pollFds[0]), -1))
- {
- if (0 != (pollFds[0].revents & (POLLERR | POLLHUP | POLLNVAL)))
- {
- LOG4CPLUS_INFO(mLogger, "Connection " << ConnectionHandle << " terminated");
-
- connection->mTerminateFlag = true;
- }
- else if (0 != (pollFds[1].revents & (POLLERR | POLLHUP | POLLNVAL)))
- {
- LOG4CPLUS_ERROR(mLogger, "Notification pipe for connection " << ConnectionHandle << " terminated");
-
- connection->mTerminateFlag = true;
- }
- else
- {
- uint8_t buffer[4096];
- ssize_t bytesRead = -1;
-
- if (0 != pollFds[0].revents)
- {
- do
- {
- bytesRead = recv(connectionSocket, buffer, sizeof(buffer), MSG_DONTWAIT);
-
- if (bytesRead > 0)
- {
- LOG4CPLUS_INFO(mLogger, "Received " << bytesRead << " bytes for connection " << ConnectionHandle);
-
- mListener.onFrameReceived(this, ConnectionHandle, buffer, static_cast<size_t>(bytesRead));
- }
- else if (bytesRead < 0)
- {
- if ((EAGAIN != errno) &&
- (EWOULDBLOCK != errno))
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "recv() failed for connection " << ConnectionHandle);
-
- connection->mTerminateFlag = true;
- }
- }
- else
- {
- LOG4CPLUS_INFO(mLogger, "Connection " << ConnectionHandle << " closed by remote peer");
-
- connection->mTerminateFlag = true;
- }
- } while (bytesRead > 0);
- }
-
- if ((false == connection->mTerminateFlag) &&
- (0 != pollFds[1].revents))
- {
- do
- {
- bytesRead = read(notificationPipeReadFd, buffer, sizeof(buffer));
- } while (bytesRead > 0);
-
- if ((bytesRead < 0) &&
- (EAGAIN != errno))
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "Failed to clear notification pipe for connection " << ConnectionHandle);
-
- connection->mTerminateFlag = true;
- }
-
- tFrameQueue framesToSend;
-
- pthread_mutex_lock(&mConnectionsMutex);
- framesToSend.swap(connection->mFramesToSend);
- pthread_mutex_unlock(&mConnectionsMutex);
-
- for (; false == framesToSend.empty(); framesToSend.pop())
- {
- SFrame * frame = framesToSend.front();
- ESendStatus frameSendStatus = SendStatusUnknownError;
-
- if (0 != frame)
- {
- if ((0 != frame->mData) &&
- (0u != frame->mDataSize))
- {
- ssize_t bytesSent = send(connectionSocket, frame->mData, frame->mDataSize, 0);
-
- if (static_cast<size_t>(bytesSent) == frame->mDataSize)
- {
- frameSendStatus = SendStatusOK;
- }
- else
- {
- if (bytesSent >= 0)
- {
- LOG4CPLUS_ERROR(mLogger, "Sent " << bytesSent << " bytes while " << frame->mDataSize << " had been requested for connection " << ConnectionHandle);
- }
- else
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "Send failed for connection " << ConnectionHandle);
- }
-
- frameSendStatus = SendStatusFailed;
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Frame data is invalid for connection " << ConnectionHandle);
-
- frameSendStatus = SendStatusInternalError;
- }
-
- delete frame;
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Frame data is null for connection " << ConnectionHandle);
-
- frameSendStatus = SendStatusInternalError;
- }
-
- mListener.onFrameSendCompleted(this, ConnectionHandle, frame->mUserData, frameSendStatus);
- }
- }
- }
- }
- else
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "poll() failed for connection " << ConnectionHandle);
-
- connection->mTerminateFlag = true;
- }
- }
-
- mListener.onApplicationDisconnected(this, clientDeviceInfo, ConnectionHandle);
- }
- else
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "Failed to set O_NONBLOCK for notification pipe for connection " << ConnectionHandle);
- }
- }
- else
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "Failed to create notification pipe for connection " << ConnectionHandle);
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device for connection " << ConnectionHandle << " is invalid");
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device handle for connection " << ConnectionHandle << " is invalid");
- }
-
- close(connectionSocket);
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Socket is invalid for connection " << ConnectionHandle);
- }
-
- if (true == isPipeCreated)
- {
- pthread_mutex_lock(&mConnectionsMutex);
-
- close(connection->mNotificationPipeFds[0]);
- close(connection->mNotificationPipeFds[1]);
-
- connection->mNotificationPipeFds[0] = connection->mNotificationPipeFds[1] = -1;
-
- pthread_mutex_unlock(&mConnectionsMutex);
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection " << ConnectionHandle << " is not valid");
- }
-}
-
-void NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::updateClientDeviceList(void )
-{
- LOG4CPLUS_INFO(mLogger, "Updating client device list");
-
- tInternalDeviceList clientDeviceList;
-
- pthread_mutex_lock(&mDevicesMutex);
-
- for (tDeviceMap::const_iterator di = mDevices.begin(); di != mDevices.end(); ++di)
- {
- const SDevice * device = di->second;
-
- if (0 != device)
- {
- clientDeviceList.push_back(SInternalDeviceInfo(di->first, device->mName, device->mUniqueDeviceId));
- }
- }
-
- pthread_mutex_unlock(&mDevicesMutex);
-
- mListener.onDeviceListUpdated(this, clientDeviceList);
-}
-
-void NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::createConnectionsListForDevice(const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle, std::vector<NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SConnection *> & ConnectionsList)
-{
- ConnectionsList.clear();
-}
-
-void * NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::mainThreadStartRoutine(void * Data)
-{
- CDeviceAdapter * deviceAdapter = static_cast<CDeviceAdapter*>(Data);
-
- if (0 != deviceAdapter)
- {
- deviceAdapter->mainThread();
- }
-
- return 0;
-}
-
-void * NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::connectionThreadStartRoutine(void * Data)
-{
- SConnectionThreadParameters * connectionThreadParameters = static_cast<SConnectionThreadParameters*>(Data);
-
- if (0 != connectionThreadParameters)
- {
- CDeviceAdapter & deviceAdapter(connectionThreadParameters->mDeviceAdapter);
- tConnectionHandle connectionHandle(connectionThreadParameters->mConnectionHandle);
-
- delete connectionThreadParameters;
- connectionThreadParameters = 0;
-
- deviceAdapter.connectionThread(connectionHandle);
- }
-
- return 0;
-}
diff --git a/SDL_Core/src/components/TransportManager/src/CDeviceAdapter.hpp b/SDL_Core/src/components/TransportManager/src/CDeviceAdapter.hpp
deleted file mode 100644
index 299197a36..000000000
--- a/SDL_Core/src/components/TransportManager/src/CDeviceAdapter.hpp
+++ /dev/null
@@ -1,555 +0,0 @@
-/**
- * \file CDeviceAdapter.hpp
- * \brief Class CDeviceAdapter header.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_CDEVICEADAPTER_HPP__
-#define __TRANSPORTMANAGER_CDEVICEADAPTER_HPP__
-
-#include <pthread.h>
-#include <queue>
-#include <time.h>
-
-#include "Logger.hpp"
-
-#include "IDeviceAdapter.hpp"
-
-#define LOG4CPLUS_ERROR_WITH_ERRNO(logger, message) LOG4CPLUS_ERROR(logger, message << ", error code " << errno << " (" << strerror(errno) << ")")
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- class IDeviceAdapterListener;
- class IHandleGenerator;
-
- /**
- * @brief Base class for @link components_transportmanager_internal_design_device_adapters device adapters @endlink.
- **/
- class CDeviceAdapter: public IDeviceAdapter
- {
- public:
- /**
- * @brief Constructor.
- *
- * @param Listener Listener for device adapter notifications.
- * @param HandleGenerator Handle generator implementation.
- **/
- CDeviceAdapter(IDeviceAdapterListener & Listener, IHandleGenerator & HandleGenerator);
-
- /**
- * @brief Destructor.
- **/
- virtual ~CDeviceAdapter(void);
-
- /**
- * @brief Run device adapter.
- *
- * Called from transport manager to start device adapter.
- **/
- virtual void run(void);
-
- /**
- * @brief Start scanning for new devices.
- *
- * List of new devices will be supplied in onDeviceListUpdated callback.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_device_scan
- **/
- virtual void scanForNewDevices(void);
-
- /**
- * @brief Connect to all applications discovered on device.
- *
- * @param DeviceHandle Handle of device to connect to.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_connecting_devices
- **/
- virtual void connectDevice(const tDeviceHandle DeviceHandle);
-
- /**
- * @brief Disconnect from all applications connected on device.
- *
- * @param DeviceHandle Handle of device to disconnect from.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_disconnecting_devices
- **/
- virtual void disconnectDevice(const tDeviceHandle DeviceHandle);
-
- /**
- * @brief Send frame.
- *
- * @param ConnectionHandle Connection handle.
- * @param Data Frame payload data.
- * @param DataSize Size of data in bytes.
- * @param UserData Any user data.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_handling_communication
- **/
- virtual void sendFrame(tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize, int UserData);
-
- protected:
- /**
- * @brief Frame.
- *
- * Used to store data frames that must be sent to remote device.
- **/
- struct SFrame
- {
- /**
- * @brief Constructor.
- *
- * @param UserData User data
- * @param Data Frame data. SFrame stores a copy of this data,
- * i.e. data may be freed after SFrame object is constructed.
- * @param DataSize Size of frame data in bytes.
- **/
- SFrame(int UserData, const uint8_t * Data, const size_t DataSize);
-
- /**
- * @brief Destructor.
- *
- * Frees stored frame data.
- **/
- ~SFrame(void);
-
- /**
- * @brief User data
- **/
- int mUserData;
-
- /**
- * @brief Frame data.
- **/
- uint8_t * mData;
-
- /**
- * @brief Frame data size in bytes.
- **/
- size_t mDataSize;
- };
-
- /**
- * @brief Frame queue.
- **/
- typedef std::queue<SFrame*> tFrameQueue;
-
- /**
- * @brief Internal structure describing device.
- **/
- struct SDevice
- {
- /**
- * @brief Constructor.
- *
- * @param Name User-friendly device name.
- **/
- SDevice(const char * Name);
-
- /**
- * @brief Destructor.
- **/
- virtual ~SDevice(void);
-
- /**
- * @brief Compare devices.
- *
- * This method checks whether two SDevice structures
- * refer to the same device.
- *
- * @param OtherDevice Device to compare with.
- *
- * @return true if devices are equal, false otherwise.
- **/
- virtual bool isSameAs(const SDevice * OtherDevice) const;
-
- /**
- * @brief Device user-friendly name.
- **/
- std::string mName;
-
- /**
- * @brief Unique device identifier across all devices.
- **/
- std::string mUniqueDeviceId;
- };
-
- /**
- * @brief Vector of devices.
- **/
- typedef std::vector<SDevice *> tDeviceVector;
-
- /**
- * @brief Devices map.
- **/
- typedef std::map<tDeviceHandle, SDevice *> tDeviceMap;
-
- /**
- * @brief Application connection.
- **/
- struct SConnection
- {
- /**
- * @brief Constructor.
- *
- * @param DeviceHandle Device handle.
- **/
- SConnection(const tDeviceHandle DeviceHandle);
-
- /**
- * @brief Destructor.
- *
- * Clears map of frames to send.
- **/
- virtual ~SConnection(void);
-
- /**
- * @brief Compare connections.
- *
- * This method checks whether two SConnection structures
- * refer to the same connection.
- *
- * @param OtherConnection Connection to compare with.
- *
- * @return true if connections are equal, false otherwise.
- **/
- virtual bool isSameAs(const SConnection * OtherConnection) const;
-
- /**
- * @brief Device handle.
- **/
- const tDeviceHandle mDeviceHandle;
-
- /**
- * @brief Thread that handles connection.
- **/
- pthread_t mConnectionThread;
-
- /**
- * @brief File descriptors of notification pipe.
- *
- * Notification pipe is used to wake up connection thread
- * on external event (e.g. new data is available to send or
- * connection is requested to be terminated).
- *
- * mNotificationPipeFds[0] is a descriptor of the read end of the pipe
- * (the one that is used in poll() by connection thread) and
- * mNotificationPipeFds[1] is a descriptor of the write end of the pipe
- * (the one that is used in methods exposed to transport manager to
- * wake up connection thread when necessary).
- *
- * @note eventfd cannot be used instead of a pipe because it does not
- * conform to POSIX (eventfd is Linux-specific).
- **/
- int mNotificationPipeFds[2];
-
- /**
- * @brief Descriptor of connection socket.
- **/
- int mConnectionSocket;
-
- /**
- * @brief Frames that must be sent to remote device.
- **/
- tFrameQueue mFramesToSend;
-
- /**
- * @brief Terminate flag.
- *
- * This flag is set to notify connection thread that connection
- * must be closed and connection thread must be terminated.
- **/
- bool mTerminateFlag;
- };
-
- /**
- * @brief Parameters for starting connection thread.
- **/
- struct SConnectionThreadParameters
- {
- /**
- * @brief Constructor.
- *
- * @param DeviceAdapter Reference to device adapter.
- * @param ConnectionHandle Connection handle.
- **/
- SConnectionThreadParameters(CDeviceAdapter & DeviceAdapter, tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Reference to device adapter.
- **/
- CDeviceAdapter & mDeviceAdapter;
-
- /**
- * @brief Connection handle.
- **/
- tConnectionHandle mConnectionHandle;
- };
-
- /**
- * @brief Wait until all device adapter threads are terminated.
- *
- * Every device adapter must call this method in destructor to wait
- * for other threads to terminate before destroying device adapter.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_threads_termination
- **/
- void waitForThreadsTermination(void);
-
- /**
- * @brief Start connection.
- *
- * Check if connection is not in connection map
- * and if it's not, add it to map and start connection thread.
- *
- * @param Connection Connection to start.
- *
- * @return true if connection thread has been started, false otherwise.
- **/
- bool startConnection(SConnection * Connection);
-
- /**
- * @brief Stop connection.
- *
- * This method only initiates connection termination. It returns immediately
- * without waiting for actual termination of the connection.
- *
- * @param ConnectionHandle Handle of connection to stop.
- **/
- void stopConnection(tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Wait for device scan request.
- *
- * Wait until scanForNewDevices() is called or timeout
- * expires.
- *
- * @param Timeout Timeout value in seconds. 0 means no
- * timeout.
- *
- * @return true if scanForNewDevices() has been called,
- * false if timeout expired.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_device_scan
- **/
- bool waitForDeviceScanRequest(const time_t Timeout);
-
- /**
- * @brief Handle communication.
- *
- * Handle communication for specified connection (send/receive data
- * to/from connection socket).
- *
- * This method must be called from connection thread implementation
- * when connection is established and connection socket descriptor
- * is set for the connection.
- *
- * This methods returns when connection is terminated.
- *
- * @param ConnectionHandle Connection handle.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_handling_communication
- **/
- void handleCommunication(const tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Update client device list.
- *
- * This method is called when list of devices is changed to
- * notify device adapter listener about new list of devices.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_update_client_device_list
- **/
- void updateClientDeviceList(void);
-
- /**
- * @brief Create list of connections possible for specified device.
- *
- * This method is called from connectDevice(). Device adapter may implement
- * this method to provide list of connections that must be running on
- * connected device.
- *
- * @param DeviceHandle Device handle.
- * @param ConnectionsList Reference to connections list that must be filled.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_connecting_devices
- **/
- virtual void createConnectionsListForDevice(const tDeviceHandle DeviceHandle, std::vector<SConnection*> & ConnectionsList);
-
- /**
- * @brief Device adapter main thread.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_main_thread
- **/
- virtual void mainThread(void) = 0;
-
- /**
- * @brief Connection thread.
- *
- * This method is responsible for establishing connection and communicating
- * with remote device via specified connection. It must remove itself from
- * connection map when connection is terminated before terminating connection thread.
- *
- * @param ConnectionHandle Connection handle.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_connection_thread
- **/
- virtual void connectionThread(const tConnectionHandle ConnectionHandle) = 0;
-
- /**
- * @brief Connections map.
- **/
- typedef std::map<tConnectionHandle, SConnection *> tConnectionMap;
-
- /**
- * @brief Logger.
- **/
- const log4cplus::Logger mLogger;
-
- /**
- * @brief Listener for device adapter notifications.
- **/
- IDeviceAdapterListener & mListener;
-
- /**
- * @brief Handle generator implementation.
- **/
- IHandleGenerator & mHandleGenerator;
-
- /**
- * @brief Flag indicating that device scan was requested.
- *
- * This flag is set in scanForNewDevices and reset after requested
- * device scan is completed.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_device_scan
- **/
- bool mDeviceScanRequested;
-
- /**
- * @brief Mutex restricting access to DeviceScanRequested flag.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_device_scan
- **/
- pthread_mutex_t mDeviceScanRequestedMutex;
-
- /**
- * @brief Conditional variable for signaling discovery thread about requested device scan.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_device_scan
- **/
- pthread_cond_t mDeviceScanRequestedCond;
-
- /**
- * @brief Map of device handle to device.
- *
- * This map contains all currently available bluetooth devices.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_devices_map
- **/
- tDeviceMap mDevices;
-
- /**
- * @brief Mutex restricting access to device map.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_devices_map
- **/
- mutable pthread_mutex_t mDevicesMutex;
-
- /**
- * @brief Map of connections.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_connections_map
- **/
- tConnectionMap mConnections;
-
- /**
- * @brief Mutex restricting access to connections map.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_connections_map
- **/
- mutable pthread_mutex_t mConnectionsMutex;
-
- /**
- * @brief Shutdown flag.
- *
- * This flag is set to true on shutdown to inform all device adapter
- * threads that device adapter shutdown is in progress. After setting
- * this flag device adapter waits until all its threads are terminated.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_threads_termination
- **/
- bool mShutdownFlag;
-
- private:
- /**
- * @brief Start routine for device adapter main thread.
- *
- * @param Data Must be pointer to CDeviceAdapter instance.
- *
- * @return Thread return value.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_main_thread
- **/
- static void * mainThreadStartRoutine(void * Data);
-
- /**
- * @brief Connection thread start routine.
- *
- * @param Data Must be pointer to SConnectionThreadParameters. Ownership
- * of connection thread parameters is passed to connection thread, i.e.
- * connection thread is responsible for freeing this object.
- *
- * @return Thread return value.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_connection_thread
- **/
- static void * connectionThreadStartRoutine(void * Data);
-
- /**
- * @brief ID of device adapter main thread.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_main_thread
- **/
- pthread_t mMainThread;
-
- /**
- * @brief Flag indicating whether the device adapter main thread has been started successfully.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_common_main_thread
- **/
- bool mMainThreadStarted;
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/TransportManager/src/CTCPAdapter.cpp b/SDL_Core/src/components/TransportManager/src/CTCPAdapter.cpp
deleted file mode 100644
index 4f545356e..000000000
--- a/SDL_Core/src/components/TransportManager/src/CTCPAdapter.cpp
+++ /dev/null
@@ -1,317 +0,0 @@
-/**
- * \file CTCPAdapter.cpp
- * \brief Class CTCPAdapter.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <memory.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include "CTCPAdapter.hpp"
-#include "IHandleGenerator.hpp"
-
-NsSmartDeviceLink::NsTransportManager::CTCPAdapter::STCPDevice::STCPDevice(const char* Name, const in_addr_t & Address):
-SDevice(Name),
-mAddress(Address)
-{
-}
-
-NsSmartDeviceLink::NsTransportManager::CTCPAdapter::STCPDevice::~STCPDevice(void)
-{
-}
-
-bool NsSmartDeviceLink::NsTransportManager::CTCPAdapter::STCPDevice::isSameAs(const NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SDevice * OtherDevice) const
-{
- bool result = false;
-
- if (true == SDevice::isSameAs(OtherDevice))
- {
- const STCPDevice * otherTCPDevice = dynamic_cast<const STCPDevice*>(OtherDevice);
-
- if (0 != otherTCPDevice)
- {
- result = (mAddress == otherTCPDevice->mAddress);
- }
- }
-
- return result;
-}
-
-NsSmartDeviceLink::NsTransportManager::CTCPAdapter::STCPConnection::STCPConnection(const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle, int ConnectionSocket, const in_port_t Port):
-SConnection(DeviceHandle),
-mPort(Port)
-{
- mConnectionSocket = ConnectionSocket;
-}
-
-NsSmartDeviceLink::NsTransportManager::CTCPAdapter::STCPConnection::~STCPConnection(void)
-{
-}
-
-bool NsSmartDeviceLink::NsTransportManager::CTCPAdapter::STCPConnection::isSameAs(const NsSmartDeviceLink::NsTransportManager::CDeviceAdapter::SConnection* OtherConnection) const
-{
- bool result = false;
-
- if (true == SConnection::isSameAs(OtherConnection))
- {
- const STCPConnection * otherTCPConnection = dynamic_cast<const STCPConnection*>(OtherConnection);
-
- if (0 != otherTCPConnection)
- {
- result = (mPort == otherTCPConnection->mPort);
- }
- }
-
- return result;
-}
-
-NsSmartDeviceLink::NsTransportManager::CTCPAdapter::CTCPAdapter(NsSmartDeviceLink::NsTransportManager::IDeviceAdapterListener & Listener, NsSmartDeviceLink::NsTransportManager::IHandleGenerator & HandleGenerator):
-CDeviceAdapter(Listener, HandleGenerator)
-{
-}
-
-NsSmartDeviceLink::NsTransportManager::CTCPAdapter::~CTCPAdapter(void)
-{
- waitForThreadsTermination();
-}
-
-NsSmartDeviceLink::NsTransportManager::EDeviceType NsSmartDeviceLink::NsTransportManager::CTCPAdapter::getDeviceType(void) const
-{
- return DeviceWiFi;
-}
-
-void NsSmartDeviceLink::NsTransportManager::CTCPAdapter::mainThread(void)
-{
- LOG4CPLUS_INFO(mLogger, "Main thread initialized");
-
- int socketFd = socket(AF_INET, SOCK_STREAM, 0);
-
- if (-1 != socketFd)
- {
- sockaddr_in serverAddress;
-
- memset(&serverAddress, 0, sizeof(serverAddress));
-
- serverAddress.sin_family = AF_INET;
- serverAddress.sin_port = htons(cTCPAdapterPort);
- serverAddress.sin_addr.s_addr = INADDR_ANY;
-
- if (0 == bind(socketFd, (struct sockaddr*)&serverAddress, sizeof(serverAddress)))
- {
- if (0 == listen(socketFd, 128))
- {
- while (false == mShutdownFlag)
- {
- sockaddr_in clientAddress;
- socklen_t clientAddressSize = sizeof(clientAddress);
-
- int connectionFd = accept(socketFd, (struct sockaddr*)&clientAddress, &clientAddressSize);
-
- if (connectionFd >= 0)
- {
- bool isConnectionThreadStarted = false;
-
- if ((AF_INET == clientAddress.sin_family) &&
- (sizeof(clientAddress) == clientAddressSize))
- {
- char deviceName[32];
-
- strncpy(deviceName, inet_ntoa(clientAddress.sin_addr), sizeof(deviceName) / sizeof(deviceName[0]));
-
- LOG4CPLUS_INFO(mLogger, "Connected client " << deviceName);
-
- tDeviceHandle deviceHandle = InvalidDeviceHandle;
-
- pthread_mutex_lock(&mDevicesMutex);
-
- for (tDeviceMap::const_iterator deviceIterator = mDevices.begin(); deviceIterator != mDevices.end(); ++deviceIterator)
- {
- const STCPDevice * device = dynamic_cast<const STCPDevice *>(deviceIterator->second);
-
- if (0 != device)
- {
- if (clientAddress.sin_addr.s_addr == device->mAddress)
- {
- deviceHandle = deviceIterator->first;
- break;
- }
- }
- }
-
- pthread_mutex_unlock(&mDevicesMutex);
-
- if (InvalidDeviceHandle == deviceHandle)
- {
- deviceHandle = mHandleGenerator.generateNewDeviceHandle();
- STCPDevice * device = new STCPDevice(deviceName, clientAddress.sin_addr.s_addr);
-
- pthread_mutex_lock(&mDevicesMutex);
-
- if (true == mDevices.insert(std::make_pair(deviceHandle, device)).second)
- {
- device->mUniqueDeviceId = std::string("TCP-") + deviceName;
-
- LOG4CPLUS_INFO(mLogger, "Added new device " << deviceHandle << ": " << device->mName << " (" << device->mUniqueDeviceId << ")");
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device handle " << deviceHandle << " is already present in devices map");
-
- deviceHandle = InvalidDeviceHandle;
- delete device;
- device = 0;
- }
-
- pthread_mutex_unlock(&mDevicesMutex);
-
- if (0 != device)
- {
- updateClientDeviceList();
- }
- }
-
- if (InvalidDeviceHandle != deviceHandle)
- {
- isConnectionThreadStarted = startConnection(new STCPConnection(deviceHandle, connectionFd, clientAddress.sin_port));
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Failed to insert new device into devices map");
- }
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Address of connected client is invalid");
- }
-
- if (false == isConnectionThreadStarted)
- {
- close(connectionFd);
- }
- }
- else
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "accept() failed");
- }
- }
- }
- else
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "listen() failed");
- }
- }
- else
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "bind() failed");
- }
-
- close(socketFd);
- }
- else
- {
- LOG4CPLUS_ERROR_WITH_ERRNO(mLogger, "Failed to create socket");
- }
-
- LOG4CPLUS_INFO(mLogger, "Main thread finished");
-}
-
-void NsSmartDeviceLink::NsTransportManager::CTCPAdapter::connectionThread(const NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle)
-{
- handleCommunication(ConnectionHandle);
-
- tDeviceHandle deviceHandle = InvalidDeviceHandle;
-
- pthread_mutex_lock(&mConnectionsMutex);
-
- tConnectionMap::iterator connectionIterator = mConnections.find(ConnectionHandle);
-
- if (mConnections.end() != connectionIterator)
- {
- STCPConnection * connection = dynamic_cast<STCPConnection*>(connectionIterator->second);
-
- if (0 != connection)
- {
- deviceHandle = connection->mDeviceHandle;
-
- delete connection;
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection " << ConnectionHandle << " is invalid");
- }
-
- mConnections.erase(connectionIterator);
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Connection " << ConnectionHandle << " was not found in connections map");
- }
-
- for (connectionIterator = mConnections.begin(); connectionIterator != mConnections.end(); ++connectionIterator)
- {
- SConnection * connection = connectionIterator->second;
-
- if (0 != connection)
- {
- if (deviceHandle == connection->mDeviceHandle)
- {
- deviceHandle = InvalidDeviceHandle;
- break;
- }
- }
- }
-
- pthread_mutex_unlock(&mConnectionsMutex);
-
- if (InvalidDeviceHandle != deviceHandle)
- {
- LOG4CPLUS_INFO(mLogger, "No connections left for device " << deviceHandle << ". Deleting device");
-
- pthread_mutex_lock(&mDevicesMutex);
-
- tDeviceMap::iterator deviceIterator = mDevices.find(deviceHandle);
-
- if (mDevices.end() != deviceIterator)
- {
- delete deviceIterator->second;
-
- mDevices.erase(deviceIterator);
- }
-
- pthread_mutex_unlock(&mDevicesMutex);
-
- updateClientDeviceList();
- }
-}
diff --git a/SDL_Core/src/components/TransportManager/src/CTCPAdapter.hpp b/SDL_Core/src/components/TransportManager/src/CTCPAdapter.hpp
deleted file mode 100644
index 14af2be24..000000000
--- a/SDL_Core/src/components/TransportManager/src/CTCPAdapter.hpp
+++ /dev/null
@@ -1,181 +0,0 @@
-/**
- * \file CTCPAdapter.hpp
- * \brief Class CTCPAdapter header.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_CTCPADAPTER_HPP__
-#define __TRANSPORTMANAGER_CTCPADAPTER_HPP__
-
-#include <netinet/in.h>
-
-#include "CDeviceAdapter.hpp"
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- /**
- * @brief Device adapter for TCP/IP connections.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_tcp_adapter
- **/
- class CTCPAdapter: public CDeviceAdapter
- {
- public:
- /**
- * @brief Constructor.
- *
- * @param Listener Listener for device adapter notifications.
- * @param HandleGenerator Handle generator implementation.
- **/
- CTCPAdapter(IDeviceAdapterListener & Listener, IHandleGenerator & HandleGenerator);
-
- /**
- * @brief Destructor.
- **/
- virtual ~CTCPAdapter(void);
-
- /**
- * @brief Get type of devices handled by this device adapter.
- *
- * @return Device type.
- **/
- virtual EDeviceType getDeviceType(void) const;
-
- private:
- /**
- * @brief TCP port for listening for incoming connections.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_tcp_adapter_listen
- **/
- static const uint16_t cTCPAdapterPort = 12345u;
-
- /**
- * @brief Internal structure describing TCP device.
- **/
- struct STCPDevice: public SDevice
- {
- /**
- * @brief Constructor.
- *
- * @param Name User-friendly device name.
- * @param Address Device IP address.
- **/
- STCPDevice(const char * Name, const in_addr_t & Address);
-
- /**
- * @brief Destructor.
- **/
- virtual ~STCPDevice(void);
-
- /**
- * @brief Compare devices.
- *
- * This method checks whether two STCPDevice structures
- * refer to the same device.
- *
- * @param OtherDevice Device to compare with.
- *
- * @return true if devices are equal, false otherwise.
- **/
- virtual bool isSameAs(const SDevice * OtherDevice) const;
-
- /**
- * @brief Device IP address.
- **/
- in_addr_t mAddress;
- };
-
- /**
- * @brief TCP connection.
- **/
- struct STCPConnection: public SConnection
- {
- /**
- * @brief Constructor.
- *
- * @param DeviceHandle Device handle.
- * @param ConnectionSocket Connection socket.
- * @param Port TCP port.
- **/
- STCPConnection(const tDeviceHandle DeviceHandle, int ConnectionSocket, const in_port_t Port);
-
- /**
- * @brief Destructor.
- **/
- virtual ~STCPConnection(void);
-
- /**
- * @brief Compare connections.
- *
- * This method compares whether two STCPConnection structures
- * refer to the same connection.
- *
- * @param OtherConnection Connection to compare with.
- *
- * @return true if connections are equal, false otherwise.
- **/
- virtual bool isSameAs(const SConnection * OtherConnection) const;
-
- /**
- * @brief TCP port of remote device.
- **/
- const in_port_t mPort;
- };
-
- /**
- * @brief Device adapter main thread.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_tcp_adapter_listen
- * @see @ref components_transportmanager_internal_design_device_adapters_tcp_adapter_accept
- * @see @ref components_transportmanager_internal_design_device_adapters_common_main_thread
- **/
- virtual void mainThread(void);
-
- /**
- * @brief Connection thread.
- *
- * This method is responsible for establishing connection and communicating
- * with remote device via specified connection. It must remove itself from
- * connection map when connection is terminated before terminating connection thread.
- *
- * @param ConnectionHandle Connection handle.
- *
- * @see @ref components_transportmanager_internal_design_device_adapters_tcp_adapter_disconnecting
- * @see @ref components_transportmanager_internal_design_device_adapters_common_connection_thread
- **/
- virtual void connectionThread(const tConnectionHandle ConnectionHandle);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/TransportManager/src/CTransportManager.cpp b/SDL_Core/src/components/TransportManager/src/CTransportManager.cpp
deleted file mode 100644
index c9c30332d..000000000
--- a/SDL_Core/src/components/TransportManager/src/CTransportManager.cpp
+++ /dev/null
@@ -1,1311 +0,0 @@
-/**
- * \file CTransportManager.cpp
- * \brief Class CTransportManager.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "LoggerHelper.hpp"
-
-#include "CTransportManager.hpp"
-#include "CBluetoothAdapter.hpp"
-#include "CTCPAdapter.hpp"
-#include "TransportManagerLoggerHelpers.hpp"
-
-#include <algorithm>
-
-using namespace NsSmartDeviceLink::NsTransportManager;
-
-NsSmartDeviceLink::NsTransportManager::CTransportManager::CTransportManager(void):
-mDeviceAdapters(),
-mLogger(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("TransportManager"))),
-mDataListenersMutex(),
-mDeviceListenersMutex(),
-mDeviceHandleGenerationMutex(),
-mConnectionHandleGenerationMutex(),
-mDataListeners(),
-mDeviceListeners(),
-mLastUsedDeviceHandle(0),
-mLastUsedConnectionHandle(0),
-mApplicationCallbacksThread(),
-mDeviceListenersConditionVar(),
-mDeviceListenersCallbacks(),
-mTerminateFlag(false),
-mDevicesByAdapter(),
-mDevicesByAdapterMutex(),
-mConnections(),
-mClientInterfaceMutex()
-{
- pthread_mutex_init(&mDataListenersMutex, 0);
- pthread_mutex_init(&mDeviceListenersMutex, 0);
- pthread_mutex_init(&mDeviceHandleGenerationMutex, 0);
- pthread_mutex_init(&mConnectionHandleGenerationMutex, 0);
- pthread_mutex_init(&mClientInterfaceMutex, 0);
-
- pthread_cond_init(&mDeviceListenersConditionVar, NULL);
-
- LOG4CPLUS_INFO(mLogger, "TransportManager constructed");
-}
-
-NsSmartDeviceLink::NsTransportManager::CTransportManager::~CTransportManager(void)
-{
- LOG4CPLUS_INFO(mLogger, "TransportManager destructor");
-
- mTerminateFlag = true;
-
- // Terminating all threads
- stopApplicationCallbacksThread();
- LOG4CPLUS_INFO(mLogger, "Waiting for application callbacks thread termination");
- pthread_join(mApplicationCallbacksThread, 0);
- LOG4CPLUS_INFO(mLogger, "Application callbacks thread terminated");
-
- pthread_mutex_lock(&mDataListenersMutex);
- std::map<tConnectionHandle, pthread_t> dataThreads;
- for (tConnectionsMap::iterator ConnectionsIterator = mConnections.begin(); ConnectionsIterator != mConnections.end(); ++ConnectionsIterator)
- {
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionsIterator->first, "Stopping connection");
- dataThreads[ConnectionsIterator->first] = ConnectionsIterator->second->mConnectionThread;
- stopConnection(ConnectionsIterator->second->mConnectionHandle);
- }
- pthread_mutex_unlock(&mDataListenersMutex);
-
- for (std::map<tConnectionHandle, pthread_t>::iterator threadsIterator = dataThreads.begin(); threadsIterator != dataThreads.end(); ++threadsIterator)
- {
- TM_CH_LOG4CPLUS_INFO(mLogger, threadsIterator->first, "Waiting for thread stoping");
- pthread_join(threadsIterator->second, 0);
- TM_CH_LOG4CPLUS_INFO(mLogger, threadsIterator->first, "Thread terminated");
- }
-
- LOG4CPLUS_INFO(mLogger, "All data callbacks threads terminated. Terminating device adapters");
-
- for (std::vector<IDeviceAdapter*>::iterator di = mDeviceAdapters.begin(); di != mDeviceAdapters.end(); ++di)
- {
- removeDeviceAdapter((*di));
- delete (*di);
- }
-
- LOG4CPLUS_INFO(mLogger, "All device adapters removed");
-
- pthread_mutex_destroy(&mDataListenersMutex);
- pthread_mutex_destroy(&mDeviceListenersMutex);
- pthread_mutex_destroy(&mDeviceHandleGenerationMutex);
- pthread_mutex_destroy(&mConnectionHandleGenerationMutex);
- pthread_mutex_destroy(&mClientInterfaceMutex);
-
- pthread_cond_destroy(&mDeviceListenersConditionVar);
-
- LOG4CPLUS_INFO(mLogger, "Component terminated");
-}
-
-void NsSmartDeviceLink::NsTransportManager::CTransportManager::run(void)
-{
- pthread_mutex_lock(&mClientInterfaceMutex);
- initializeDeviceAdapters();
-
- LOG4CPLUS_INFO(mLogger, "Starting device adapters");
- for (std::vector<IDeviceAdapter*>::iterator di = mDeviceAdapters.begin(); di != mDeviceAdapters.end(); ++di)
- {
- (*di)->run();
- }
-
- startApplicationCallbacksThread();
- pthread_mutex_unlock(&mClientInterfaceMutex);
-}
-
-void NsSmartDeviceLink::NsTransportManager::CTransportManager::scanForNewDevices(void)
-{
- pthread_mutex_lock(&mClientInterfaceMutex);
- LOG4CPLUS_INFO(mLogger, "Scanning new devices on all registered device adapters");
- for (std::vector<IDeviceAdapter*>::iterator di = mDeviceAdapters.begin(); di != mDeviceAdapters.end(); ++di)
- {
- LOG4CPLUS_INFO(mLogger, "Initiating scanning of new devices on adapter: " <<(*di)->getDeviceType());
- (*di)->scanForNewDevices();
- LOG4CPLUS_INFO(mLogger, "Scanning of new devices initiated on adapter: " <<(*di)->getDeviceType());
- }
- LOG4CPLUS_INFO(mLogger, "Scanning of new devices initiated");
- pthread_mutex_unlock(&mClientInterfaceMutex);
-}
-
-void NsSmartDeviceLink::NsTransportManager::CTransportManager::connectDevice(const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle)
-{
- pthread_mutex_lock(&mClientInterfaceMutex);
- connectDisconnectDevice(DeviceHandle, true);
- pthread_mutex_unlock(&mClientInterfaceMutex);
-}
-
-void NsSmartDeviceLink::NsTransportManager::CTransportManager::disconnectDevice(const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle)
-{
- pthread_mutex_lock(&mClientInterfaceMutex);
- connectDisconnectDevice(DeviceHandle, false);
- pthread_mutex_unlock(&mClientInterfaceMutex);
-}
-
-void NsSmartDeviceLink::NsTransportManager::CTransportManager::addDataListener(NsSmartDeviceLink::NsTransportManager::ITransportManagerDataListener * Listener)
-{
- pthread_mutex_lock(&mClientInterfaceMutex);
- mDataListeners.push_back(Listener);
- pthread_mutex_unlock(&mClientInterfaceMutex);
-}
-
-void NsSmartDeviceLink::NsTransportManager::CTransportManager::removeDataListener(NsSmartDeviceLink::NsTransportManager::ITransportManagerDataListener * Listener)
-{
- pthread_mutex_lock(&mClientInterfaceMutex);
- mDataListeners.erase(std::remove(mDataListeners.begin(), mDataListeners.end(), Listener), mDataListeners.end());
- pthread_mutex_unlock(&mClientInterfaceMutex);
-}
-
-void NsSmartDeviceLink::NsTransportManager::CTransportManager::addDeviceListener(NsSmartDeviceLink::NsTransportManager::ITransportManagerDeviceListener * Listener)
-{
- pthread_mutex_lock(&mClientInterfaceMutex);
- mDeviceListeners.push_back(Listener);
- pthread_mutex_unlock(&mClientInterfaceMutex);
-}
-
-void NsSmartDeviceLink::NsTransportManager::CTransportManager::removeDeviceListener(NsSmartDeviceLink::NsTransportManager::ITransportManagerDeviceListener * Listener)
-{
- pthread_mutex_lock(&mClientInterfaceMutex);
- mDeviceListeners.erase(std::remove(mDeviceListeners.begin(), mDeviceListeners.end(), Listener), mDeviceListeners.end());
- pthread_mutex_unlock(&mClientInterfaceMutex);
-}
-
-void NsSmartDeviceLink::NsTransportManager::CTransportManager::sendFrame(tConnectionHandle ConnectionHandle, const uint8_t* Data, size_t DataSize, const int UserData)
-{
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "sendFrame called. DataSize: "<<DataSize);
-
- if(InvalidConnectionHandle == ConnectionHandle)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "sendFrame received with invalid connection handle");
- return;
- }
-
- bool bIncomingParamsValid = true;
- if(0 == Data)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "sendFrame with empty data");
- bIncomingParamsValid = false;
- }
-
- if(0 == DataSize)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "sendFrame with DataSize=0");
- bIncomingParamsValid = false;
- }
-
- if(false == bIncomingParamsValid)
- {
- SDataListenerCallback newCallback(CTransportManager::DataListenerCallbackType_FrameSendCompleted, ConnectionHandle, UserData, SendStatusInvalidParametersError);
-
- pthread_mutex_lock(&mDataListenersMutex);
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Sending callback");
- sendDataCallback(newCallback);
- pthread_mutex_unlock(&mDataListenersMutex);
- return;
- }
-
- // Searching device adapter
- pthread_mutex_lock(&mDataListenersMutex);
- SConnectionInfo* connectionInfo = getConnection(ConnectionHandle);
- pthread_mutex_unlock(&mDataListenersMutex);
-
- if(0 != connectionInfo)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "Device adapter found (type: "<<connectionInfo->mpDeviceAdapter.getDeviceType()<<"). Sending frame to it");
- connectionInfo->mpDeviceAdapter.sendFrame(ConnectionHandle, Data, DataSize, UserData);
- }
- else
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "Device adapter that handles Connection Handle was not found");
- }
-}
-
-NsSmartDeviceLink::NsTransportManager::tDeviceHandle NsSmartDeviceLink::NsTransportManager::CTransportManager::generateNewDeviceHandle(void)
-{
- tDeviceHandle outputDeviceHandle;
-
- pthread_mutex_lock(&mDeviceHandleGenerationMutex);
- ++mLastUsedDeviceHandle;
- outputDeviceHandle = mLastUsedDeviceHandle;
- pthread_mutex_unlock(&mDeviceHandleGenerationMutex);
-
- return outputDeviceHandle;
-}
-
-NsSmartDeviceLink::NsTransportManager::tConnectionHandle NsSmartDeviceLink::NsTransportManager::CTransportManager::generateNewConnectionHandle(void)
-{
- tConnectionHandle outputConnectionHandle;
-
- pthread_mutex_lock(&mConnectionHandleGenerationMutex);
- ++mLastUsedConnectionHandle;
- outputConnectionHandle = mLastUsedConnectionHandle;
- pthread_mutex_unlock(&mConnectionHandleGenerationMutex);
-
- return outputConnectionHandle;
-}
-
-void CTransportManager::onDeviceListUpdated(IDeviceAdapter * DeviceAdapter, const tInternalDeviceList & DeviceList)
-{
- if(0 == DeviceAdapter)
- {
- LOG4CPLUS_WARN(mLogger, "DeviceAdapter=0");
- }
- else
- {
- LOG4CPLUS_INFO(mLogger, "Device adapter type is: "<<DeviceAdapter->getDeviceType() << ", number of devices is: "<<DeviceList.size());
- pthread_mutex_lock(&mDevicesByAdapterMutex);
-
- tDevicesByAdapterMap::iterator devicesIterator = mDevicesByAdapter.find(DeviceAdapter);
- if(devicesIterator == mDevicesByAdapter.end())
- {
- LOG4CPLUS_WARN(mLogger, "Invalid adapter initialization. No devices vector available for adapter: "<<DeviceAdapter->getDeviceType());
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
- }
- else
- {
- // Updating devices for adapter
- tInternalDeviceList *pDevices = devicesIterator->second;
- pDevices->clear();
- std::copy(DeviceList.begin(), DeviceList.end(), std::back_inserter(*pDevices));
-
- LOG4CPLUS_INFO(mLogger, "Devices list for adapter is updated. Adapter type is: "<<DeviceAdapter->getDeviceType());
-
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
-
- // Calling callback with new device list to subscribers
- sendDeviceListUpdatedCallback();
- }
- }
-}
-
-void CTransportManager::onApplicationConnected(IDeviceAdapter * DeviceAdapter, const SDeviceInfo & ConnectedDevice, const tConnectionHandle ConnectionHandle)
-{
- TM_CH_LOG4CPLUS_TRACE(mLogger, ConnectionHandle, "onApplicationConnected");
-
- if(0 == DeviceAdapter)
- {
- TM_CH_LOG4CPLUS_ERROR(mLogger, ConnectionHandle, "ApplicationConnected received from invalid device adapter");
- return;
- }
-
- if(InvalidConnectionHandle == ConnectionHandle)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "ApplicationConnected received with invalid connection handle");
- return;
- }
-
- if(InvalidDeviceHandle == ConnectedDevice.mDeviceHandle)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "ApplicationConnected received with invalid device handle: "<<ConnectedDevice.mDeviceHandle);
- return;
- }
-
- if(DeviceAdapter->getDeviceType() != ConnectedDevice.mDeviceType)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "ApplicationConnected received but connected device type("<<ConnectedDevice.mDeviceType<<") differs from device adapters type: "<<DeviceAdapter->getDeviceType());
- return;
- }
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Before mDevicesByAdapterMutex mutex lock");
-
- pthread_mutex_lock(&mDevicesByAdapterMutex);
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Right after mDevicesByAdapterMutex mutex lock");
- tDevicesByAdapterMap::iterator devicesIterator = mDevicesByAdapter.find(DeviceAdapter);
- if(devicesIterator == mDevicesByAdapter.end())
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "Invalid device adapter initialization. No devices vector available for adapter: "<<DeviceAdapter->getDeviceType());
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
- return;
- }
-
- tInternalDeviceList *pDevices = devicesIterator->second;
- bool connectionHandleFound = false;
- for(tInternalDeviceList::const_iterator deviceIterator = pDevices->begin(); deviceIterator != pDevices->end(); ++deviceIterator)
- {
- if(deviceIterator->mDeviceHandle == ConnectedDevice.mDeviceHandle)
- {
- connectionHandleFound = true;
- }
- }
-
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "After mDevicesByAdapterMutex mutex unlock");
-
- if(false == connectionHandleFound)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "Connected device handle ("<<ConnectedDevice.mDeviceHandle<<") was not found in devices list for adapter of type: "<<DeviceAdapter->getDeviceType());
- return;
- }
-
- startConnection(ConnectionHandle, *DeviceAdapter);
-
- TM_CH_LOG4CPLUS_TRACE(mLogger, ConnectionHandle, "Sending callback");
-
- // Sending callback
- SDeviceListenerCallback cb(CTransportManager::DeviceListenerCallbackType_ApplicationConnected, ConnectedDevice, ConnectionHandle);
- sendDeviceCallback(cb);
-
- TM_CH_LOG4CPLUS_TRACE(mLogger, ConnectionHandle, "END of onApplicationConnected");
-}
-
-void CTransportManager::onApplicationDisconnected(IDeviceAdapter* DeviceAdapter, const SDeviceInfo& DisconnectedDevice, const tConnectionHandle ConnectionHandle)
-{
- TM_CH_LOG4CPLUS_TRACE(mLogger, ConnectionHandle, "onApplicationDisconnected");
-
- if(0 == DeviceAdapter)
- {
- TM_CH_LOG4CPLUS_ERROR(mLogger, ConnectionHandle, "ApplicationDisconnected received from invalid device adapter");
- return;
- }
-
- if(InvalidConnectionHandle == ConnectionHandle)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "ApplicationDisconnected received with invalid connection handle");
- return;
- }
-
- if(InvalidDeviceHandle == DisconnectedDevice.mDeviceHandle)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "ApplicationDisconnected received with invalid device handle: "<<DisconnectedDevice.mDeviceHandle);
- return;
- }
-
- if(DeviceAdapter->getDeviceType() != DisconnectedDevice.mDeviceType)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "ApplicationDisconnected received but disconnected device type("<<DisconnectedDevice.mDeviceType<<") differs from device adapters type: "<<DeviceAdapter->getDeviceType());
- return;
- }
-
- pthread_mutex_lock(&mDevicesByAdapterMutex);
- tDevicesByAdapterMap::iterator devicesIterator = mDevicesByAdapter.find(DeviceAdapter);
- if(devicesIterator == mDevicesByAdapter.end())
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "Invalid device adapter initialization. No devices vector available for adapter: "<<DeviceAdapter->getDeviceType());
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
- return;
- }
-
- tInternalDeviceList *pDevices = devicesIterator->second;
- bool connectionHandleFound = false;
- for(tInternalDeviceList::const_iterator deviceIterator = pDevices->begin(); deviceIterator != pDevices->end(); ++deviceIterator)
- {
- if(deviceIterator->mDeviceHandle == DisconnectedDevice.mDeviceHandle)
- {
- connectionHandleFound = true;
- }
- }
-
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
-
- if(false == connectionHandleFound)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "Disconnected device handle ("<<DisconnectedDevice.mDeviceHandle<<") was not found in devices list for adapter of type: "<<DeviceAdapter->getDeviceType());
- return;
- }
-
- pthread_mutex_lock(&mDataListenersMutex);
- SConnectionInfo* pConnection = getConnection(ConnectionHandle);
- pthread_mutex_unlock(&mDataListenersMutex);
-
- if(0 == pConnection)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "Thread for connection does not exist");
- return;
- }
-
- pthread_mutex_lock(&mDataListenersMutex);
- if(true == pConnection->mTerminateFlag)
- {
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Connection is already in shutdown state.");
- pthread_mutex_unlock(&mDataListenersMutex);
- }
- else
- {
- stopConnection(ConnectionHandle);
- pthread_mutex_unlock(&mDataListenersMutex);
-
- // Sending callback
- SDeviceListenerCallback cb(CTransportManager::DeviceListenerCallbackType_ApplicationDisconnected, DisconnectedDevice, ConnectionHandle);
- sendDeviceCallback(cb);
- }
-
- TM_CH_LOG4CPLUS_TRACE(mLogger, ConnectionHandle, "END of onApplicationDisconnected");
-}
-
-void CTransportManager::onFrameReceived(IDeviceAdapter * DeviceAdapter, tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize)
-{
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "onFrameReceived called. DA: "<<DeviceAdapter<<", DataSize: "<<DataSize);
-
- if(0 == DeviceAdapter)
- {
- TM_CH_LOG4CPLUS_ERROR(mLogger, ConnectionHandle, "onFrameReceived received from invalid device adapter");
- return;
- }
-
- if(0 == Data)
- {
- TM_CH_LOG4CPLUS_ERROR(mLogger, ConnectionHandle, "onFrameReceived with empty data");
- return;
- }
-
- if(0 == DataSize)
- {
- TM_CH_LOG4CPLUS_ERROR(mLogger, ConnectionHandle, "onFrameReceived with DataSize=0");
- return;
- }
-
- if(InvalidConnectionHandle == ConnectionHandle)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "onFrameReceived received with invalid connection handle");
- return;
- }
-
- pthread_mutex_lock(&mDevicesByAdapterMutex);
- tDevicesByAdapterMap::iterator devicesIterator = mDevicesByAdapter.find(DeviceAdapter);
- if(devicesIterator == mDevicesByAdapter.end())
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "onFrameReceived. Invalid device adapter initialization. No devices vector available for adapter: "<<DeviceAdapter->getDeviceType());
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
- return;
- }
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
-
- pthread_mutex_lock(&mDataListenersMutex);
- SConnectionInfo* connectionInfo = getConnection(ConnectionHandle);
- pthread_mutex_unlock(&mDataListenersMutex);
-
- if(0 == connectionInfo)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "onFrameReceived. Connection information for connection does not exist");
- return;
- }
-
- pthread_mutex_lock(&mDataListenersMutex);
- connectionInfo->mFrameData.appendFrameData(Data, DataSize);
-
- uint8_t *pFramePacketData = 0;
- size_t FramePacketSize = 0;
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Starting frame extraction");
- while(true == connectionInfo->mFrameData.extractFrame(pFramePacketData, FramePacketSize))
- {
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Frame extracted. Size is: "<< FramePacketSize);
- SDataListenerCallback newCallback(CTransportManager::DataListenerCallbackType_FrameReceived, ConnectionHandle, pFramePacketData, FramePacketSize);
- sendDataCallback(newCallback);
- delete pFramePacketData;
- FramePacketSize = 0;
- }
-
- pthread_mutex_unlock(&mDataListenersMutex);
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "onFrameReceived processed");
-}
-
-void CTransportManager::onFrameSendCompleted(IDeviceAdapter * DeviceAdapter, tConnectionHandle ConnectionHandle, int UserData, ESendStatus SendStatus)
-{
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "onFrameSendCompleted called. DA: "<<DeviceAdapter<<", UserData: "<<UserData <<", SendStatus: " <<SendStatus);
-
- if(0 == DeviceAdapter)
- {
- TM_CH_LOG4CPLUS_ERROR(mLogger, ConnectionHandle, "onFrameSendCompleted received from invalid device adapter");
- return;
- }
-
- if(InvalidConnectionHandle == ConnectionHandle)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "onFrameSendCompleted received with invalid connection handle");
- return;
- }
-
- pthread_mutex_lock(&mDevicesByAdapterMutex);
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "searching for devices for adapter");
- tDevicesByAdapterMap::iterator devicesIterator = mDevicesByAdapter.find(DeviceAdapter);
- if(devicesIterator == mDevicesByAdapter.end())
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "onFrameSendCompleted. Invalid device adapter initialization. No devices vector available for adapter: "<<DeviceAdapter->getDeviceType());
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
- return;
- }
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Checking connection information availability");
-
- pthread_mutex_lock(&mDataListenersMutex);
- bool bThreadExist = isConnectionAvailable(ConnectionHandle);
- pthread_mutex_unlock(&mDataListenersMutex);
-
- if(false == bThreadExist)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "onFrameSendCompleted. Connection is not available");
- return;
- }
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Connection is available. Preparing callback");
-
- SDataListenerCallback newCallback(CTransportManager::DataListenerCallbackType_FrameSendCompleted, ConnectionHandle, UserData, SendStatus);
-
- pthread_mutex_lock(&mDataListenersMutex);
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Sending callback");
- sendDataCallback(newCallback);
- pthread_mutex_unlock(&mDataListenersMutex);
-}
-
-CTransportManager::SDeviceListenerCallback::SDeviceListenerCallback(CTransportManager::EDeviceListenerCallbackType CallbackType, const tDeviceList& DeviceList)
-: mCallbackType(CallbackType)
-, mDeviceList(DeviceList)
-, mDeviceInfo()
-, mConnectionHandle()
-{
-}
-
-CTransportManager::SDeviceListenerCallback::SDeviceListenerCallback(CTransportManager::EDeviceListenerCallbackType CallbackType, const SDeviceInfo& DeviceInfo, const tConnectionHandle& ConnectionHandle)
-: mCallbackType(CallbackType)
-, mDeviceList()
-, mDeviceInfo(DeviceInfo)
-, mConnectionHandle(ConnectionHandle)
-{
-}
-
-CTransportManager::SDeviceListenerCallback::SDeviceListenerCallback(const SDeviceListenerCallback& other)
-: mCallbackType(other.mCallbackType)
-, mDeviceList(other.mDeviceList)
-, mDeviceInfo(other.mDeviceInfo)
-, mConnectionHandle(other.mConnectionHandle)
-{
-}
-
-bool CTransportManager::SDeviceListenerCallback::operator==( const SDeviceListenerCallback& i_other ) const
-{
- return ( (mCallbackType == i_other.mCallbackType)
- && (mDeviceList == i_other.mDeviceList)
- && (mDeviceInfo == i_other.mDeviceInfo)
- && (mConnectionHandle == i_other.mConnectionHandle));
-}
-
-CTransportManager::SDeviceListenerCallback::~SDeviceListenerCallback(void )
-{
-}
-
-CTransportManager::SDataListenerCallback::SDataListenerCallback(CTransportManager::EDataListenerCallbackType CallbackType, tConnectionHandle ConnectionHandle, const uint8_t* Data, size_t DataSize)
-: mCallbackType(CallbackType)
-, mConnectionHandle(ConnectionHandle)
-, mData(0)
-, mDataSize(DataSize)
-, mUserData()
-, mSendStatus(NsSmartDeviceLink::NsTransportManager::SendStatusUnknownError)
-{
- if ((0 != Data) &&
- (0u != DataSize))
- {
- mData = new uint8_t[DataSize];
-
- if (0 != mData)
- {
- memcpy(mData, Data, DataSize);
- }
- }
-}
-
-CTransportManager::SDataListenerCallback::SDataListenerCallback(CTransportManager::EDataListenerCallbackType CallbackType, tConnectionHandle ConnectionHandle, int UserData, ESendStatus SendStatus)
-: mCallbackType(CallbackType)
-, mConnectionHandle(ConnectionHandle)
-, mData(0)
-, mDataSize(0)
-, mUserData(UserData)
-, mSendStatus(SendStatus)
-{
-
-}
-
-NsSmartDeviceLink::NsTransportManager::CTransportManager::SDataListenerCallback::SDataListenerCallback(const SDataListenerCallback& other)
-: mCallbackType(other.mCallbackType)
-, mConnectionHandle(other.mConnectionHandle)
-, mData(0)
-, mDataSize(other.mDataSize)
-, mUserData(other.mUserData)
-, mSendStatus(other.mSendStatus)
-{
- if ((0 != other.mData) &&
- (0u != other.mDataSize))
- {
- mData = new uint8_t[other.mDataSize];
-
- if (0 != mData)
- {
- mDataSize = other.mDataSize;
- memcpy(mData, other.mData, mDataSize);
- }
- }
-}
-
-bool NsSmartDeviceLink::NsTransportManager::CTransportManager::SDataListenerCallback::operator==( const SDataListenerCallback& i_other ) const
-{
- return ( (mCallbackType == i_other.mCallbackType)
- && (mConnectionHandle == i_other.mConnectionHandle)
- && (mDataSize == i_other.mDataSize)
- && (mUserData == i_other.mUserData)
- && (mSendStatus == i_other.mSendStatus)
- && (0 == memcmp(mData, i_other.mData, i_other.mDataSize)));
-}
-
-CTransportManager::SDataListenerCallback::~SDataListenerCallback(void )
-{
- if (0 != mData)
- {
- delete[] mData;
- }
-}
-
-CTransportManager::SDataThreadStartupParams::SDataThreadStartupParams(CTransportManager* TransportManager, tConnectionHandle ConnectionHandle)
-: mTransportManager(TransportManager)
-, mConnectionHandle(ConnectionHandle)
-{
-}
-
-
-void CTransportManager::applicationCallbacksThread()
-{
- LOG4CPLUS_INFO(mLogger, "Started application callbacks thread");
-
- while(false == mTerminateFlag)
- {
- pthread_mutex_lock(&mDeviceListenersMutex);
-
- while(mDeviceListenersCallbacks.empty() && (false == mTerminateFlag))
- {
- LOG4CPLUS_INFO(mLogger, "No callbacks to process. Waiting");
- pthread_cond_wait(&mDeviceListenersConditionVar, &mDeviceListenersMutex);
- LOG4CPLUS_INFO(mLogger, "Callbacks processing triggered");
- }
-
- if(mTerminateFlag)
- {
- LOG4CPLUS_INFO(mLogger, "Shutdown is on progress. Skipping callback processing.");
- pthread_mutex_unlock(&mDeviceListenersMutex);
- break;
- }
-
- LOG4CPLUS_INFO(mLogger, "Copying callbacks and device listeners to process");
-
- std::vector<SDeviceListenerCallback> callbacksToProcess(mDeviceListenersCallbacks);
- mDeviceListenersCallbacks.clear();
-
- std::vector<ITransportManagerDeviceListener*> deviceListenersToSend(mDeviceListeners);
-
- pthread_mutex_unlock(&mDeviceListenersMutex);
-
- LOG4CPLUS_INFO(mLogger, "Starting callbacks processing. Number of callbacks: " << callbacksToProcess.size());
-
- std::vector<SDeviceListenerCallback>::const_iterator callbackIterator;
-
- for(callbackIterator = callbacksToProcess.begin(); callbackIterator != callbacksToProcess.end(); ++callbackIterator)
- {
- LOG4CPLUS_INFO(mLogger, "Processing callback of type: " << (*callbackIterator).mCallbackType);
-
- std::vector<ITransportManagerDeviceListener*>::const_iterator deviceListenersIterator;
- int deviceListenerIndex = 0;
-
- for (deviceListenersIterator = deviceListenersToSend.begin(), deviceListenerIndex=0; deviceListenersIterator != deviceListenersToSend.end(); ++deviceListenersIterator, ++deviceListenerIndex)
- {
- LOG4CPLUS_INFO(mLogger, "Calling callback on listener #" << deviceListenerIndex);
-
- switch((*callbackIterator).mCallbackType)
- {
- case CTransportManager::DeviceListenerCallbackType_DeviceListUpdated:
- (*deviceListenersIterator)->onDeviceListUpdated((*callbackIterator).mDeviceList);
- break;
- case CTransportManager::DeviceListenerCallbackType_ApplicationConnected:
- (*deviceListenersIterator)->onApplicationConnected((*callbackIterator).mDeviceInfo, (*callbackIterator).mConnectionHandle);
- break;
- case CTransportManager::DeviceListenerCallbackType_ApplicationDisconnected:
- (*deviceListenersIterator)->onApplicationDisconnected((*callbackIterator).mDeviceInfo, (*callbackIterator).mConnectionHandle);
- break;
- default:
- LOG4CPLUS_ERROR(mLogger, "Unknown callback type: " << (*callbackIterator).mCallbackType);
- break;
- }
-
- LOG4CPLUS_INFO(mLogger, "Callback on listener #" << deviceListenerIndex <<" called");
- }
- }
-
- LOG4CPLUS_INFO(mLogger, "All callbacks processed. Starting next callbacks processing iteration");
- }
-
- LOG4CPLUS_INFO(mLogger, "ApplicationsCallback thread terminated");
-}
-
-void* CTransportManager::applicationCallbacksThreadStartRoutine(void* Data)
-{
- if (0 != Data)
- {
- static_cast<CTransportManager*>(Data)->applicationCallbacksThread();
- }
-
- return 0;
-}
-
-void CTransportManager::dataCallbacksThread(const tConnectionHandle ConnectionHandle)
-{
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Started data callbacks thread");
-
- pthread_mutex_lock(&mDataListenersMutex);
- SConnectionInfo* connectionInfo = getConnection(ConnectionHandle);
- pthread_mutex_unlock(&mDataListenersMutex);
-
- if(0 == connectionInfo)
- {
- TM_CH_LOG4CPLUS_ERROR(mLogger, ConnectionHandle, "Connection information was not found");
- return;
- }
-
- while(false == connectionInfo->mTerminateFlag)
- {
- pthread_mutex_lock(&mDataListenersMutex);
-
- while(connectionInfo->mDataCallbacksVector.empty() && (false == connectionInfo->mTerminateFlag))
- {
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "No callbacks to process. Waiting");
- pthread_cond_wait(&connectionInfo->mConditionVar, &mDataListenersMutex);
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Callbacks processing triggered");
- }
-
- if(connectionInfo->mTerminateFlag)
- {
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Shutdown is on progress. Skipping callback processing.");
- pthread_mutex_unlock(&mDataListenersMutex);
- break;
- }
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Copying callbacks and device listeners to process");
-
- tDataCallbacksVector callbacksToProcess(connectionInfo->mDataCallbacksVector);
- connectionInfo->mDataCallbacksVector.clear();
-
- std::vector<ITransportManagerDataListener*> dataListenersToSend(mDataListeners);
-
- pthread_mutex_unlock(&mDataListenersMutex);
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Starting callbacks processing. Number of callbacks: " << callbacksToProcess.size());
-
- tDataCallbacksVector::const_iterator callbackIterator;
- for(callbackIterator = callbacksToProcess.begin(); callbackIterator != callbacksToProcess.end(); ++callbackIterator)
- {
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Processing callback of type: " << (*callbackIterator).mCallbackType);
-
- if(ConnectionHandle != callbackIterator->mConnectionHandle)
- {
- TM_CH_LOG4CPLUS_ERROR(mLogger, ConnectionHandle, "Possible error. Thread connection handle ("<<ConnectionHandle<<") differs from callback connection handle ("<<callbackIterator->mConnectionHandle<<")");
- }
-
- std::vector<ITransportManagerDataListener*>::const_iterator dataListenersIterator;
- int dataListenerIndex = 0;
-
- for (dataListenersIterator = dataListenersToSend.begin(), dataListenerIndex=0; dataListenersIterator != dataListenersToSend.end(); ++dataListenersIterator, ++dataListenerIndex)
- {
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Calling callback on listener #" << dataListenerIndex);
-
- switch((*callbackIterator).mCallbackType)
- {
- case CTransportManager::DataListenerCallbackType_FrameReceived:
- (*dataListenersIterator)->onFrameReceived(callbackIterator->mConnectionHandle, callbackIterator->mData, callbackIterator->mDataSize);
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Callback onFrameReceived on listener #" << dataListenerIndex << " was called. DataSize: " << callbackIterator->mDataSize);
- break;
- case CTransportManager::DataListenerCallbackType_FrameSendCompleted:
- (*dataListenersIterator)->onFrameSendCompleted(callbackIterator->mConnectionHandle, callbackIterator->mUserData, callbackIterator->mSendStatus);
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Callback onFrameReceived on listener #" << dataListenerIndex << " was called. UserData: " << callbackIterator->mUserData<<", SendStatus: "<<callbackIterator->mSendStatus);
- break;
- default:
- TM_CH_LOG4CPLUS_ERROR(mLogger, ConnectionHandle, "Unknown callback type: " << (*callbackIterator).mCallbackType);
- break;
- }
-
- LOG4CPLUS_INFO(mLogger, "Callback on listener #" << dataListenerIndex <<" called"<<", ConnectionHandle: "<<ConnectionHandle);
- }
- }
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "All callbacks processed. Starting next callbacks processing iteration");
- }
-
- pthread_mutex_lock(&mDataListenersMutex);
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Terminating connection thread");
-
- // Deleting data associated with connection handle
- delete connectionInfo;
- mConnections.erase(ConnectionHandle);
- pthread_mutex_unlock(&mDataListenersMutex);
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Connection thread terminated");
-}
-
-void* CTransportManager::dataCallbacksThreadStartRoutine(void* Data)
-{
- SDataThreadStartupParams * parameters = static_cast<SDataThreadStartupParams*>(Data);
-
- if (0 != parameters)
- {
- CTransportManager *pTransportManager = parameters->mTransportManager;
- tConnectionHandle connectionHandle(parameters->mConnectionHandle);
-
- delete parameters;
- parameters = 0;
-
- pTransportManager->dataCallbacksThread(connectionHandle);
- }
-
- return 0;
-}
-
-void CTransportManager::startApplicationCallbacksThread()
-{
- LOG4CPLUS_INFO(mLogger, "Starting device listeners thread");
-
- int errorCode = pthread_create(&mApplicationCallbacksThread, 0, &applicationCallbacksThreadStartRoutine, this);
-
- if (0 == errorCode)
- {
- LOG4CPLUS_INFO(mLogger, "Device listeners thread started");
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Device listeners thread cannot be started, error code " << errorCode);
- }
-}
-
-void CTransportManager::stopApplicationCallbacksThread()
-{
- LOG4CPLUS_TRACE(mLogger, "Stopping application-callbacks thread");
-
- pthread_mutex_lock(&mDeviceListenersMutex);
- pthread_cond_signal(&mDeviceListenersConditionVar);
- pthread_mutex_unlock(&mDeviceListenersMutex);
-}
-
-void CTransportManager::startConnection(const tConnectionHandle ConnectionHandle, IDeviceAdapter & DeviceAdapter)
-{
- TM_CH_LOG4CPLUS_TRACE(mLogger, ConnectionHandle, "Starting data-callbacks thread");
-
- pthread_mutex_lock(&mDataListenersMutex);
-
- if(isConnectionAvailable(ConnectionHandle))
- {
- TM_CH_LOG4CPLUS_ERROR(mLogger, ConnectionHandle, "Connection with this handle already available. Possible error.");
- }
- else
- {
- SConnectionInfo *connection = new SConnectionInfo(ConnectionHandle, DeviceAdapter);
- SDataThreadStartupParams *connectionThreadParams = new SDataThreadStartupParams(this, ConnectionHandle);
-
- int errorCode = pthread_create(&connection->mConnectionThread, 0, &dataCallbacksThreadStartRoutine, connectionThreadParams);
-
- if (0 == errorCode)
- {
- mConnections[ConnectionHandle] = connection;
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Connection started.");
- }
- else
- {
- LOG4CPLUS_ERROR(mLogger, "Thread start for connection handle (" << ConnectionHandle << ") failed, error code " << errorCode);
- delete connection;
- delete connectionThreadParams;
- }
- }
-
- pthread_mutex_unlock(&mDataListenersMutex);
-}
-
-void CTransportManager::stopConnection(const tConnectionHandle ConnectionHandle)
-{
- TM_CH_LOG4CPLUS_TRACE(mLogger, ConnectionHandle, "Stopping data-callbacks thread");
-
- SConnectionInfo* connectionInfo = getConnection(ConnectionHandle);
- if(0 == connectionInfo)
- {
- //pthread_mutex_unlock(&mDataListenersMutex);
- return;
- }
- else
- {
- connectionInfo->mTerminateFlag = true;
- pthread_cond_signal(&connectionInfo->mConditionVar);
- }
-}
-
-
-bool CTransportManager::isConnectionAvailable(const tConnectionHandle ConnectionHandle)
-{
- TM_CH_LOG4CPLUS_TRACE(mLogger, ConnectionHandle, "Checking connection availability");
-
- bool bConnectionExist = (mConnections.find(ConnectionHandle) != mConnections.end());
-
- TM_CH_LOG4CPLUS_TRACE(mLogger, ConnectionHandle, "Result of checking is: " << bConnectionExist);
-
- return bConnectionExist;
-}
-
-CTransportManager::SConnectionInfo* CTransportManager::getConnection(const tConnectionHandle ConnectionHandle)
-{
- TM_CH_LOG4CPLUS_TRACE(mLogger, ConnectionHandle, "Checking connection availability");
-
- if(ConnectionHandle == InvalidConnectionHandle)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, ConnectionHandle, "Trying to get connection for invalid handle.");
- return 0;
- }
-
- tConnectionsMap::iterator ConnectionIterator = mConnections.find(ConnectionHandle);
- if(ConnectionIterator == mConnections.end())
- {
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Connection info was not found");
- return 0;
- }
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Connection info was found");
- return ConnectionIterator->second;
-}
-
-
-void CTransportManager::addDeviceAdapter(IDeviceAdapter* DeviceAdapter)
-{
- mDeviceAdapters.push_back(DeviceAdapter);
- mDevicesByAdapter.insert(std::make_pair(DeviceAdapter, new tInternalDeviceList()));
-}
-
-void CTransportManager::removeDeviceAdapter(IDeviceAdapter* DeviceAdapter)
-{
- tDevicesByAdapterMap::iterator devicesIterator = mDevicesByAdapter.find(DeviceAdapter);
- if(devicesIterator != mDevicesByAdapter.end())
- {
- delete devicesIterator->second;
- mDevicesByAdapter.erase(DeviceAdapter);
- }
-}
-
-void CTransportManager::initializeDeviceAdapters()
-{
- addDeviceAdapter(new CBluetoothAdapter(*this, *this));
- addDeviceAdapter(new CTCPAdapter(*this, *this));
- LOG4CPLUS_INFO(mLogger, "Device adapters initialized");
-}
-
-void CTransportManager::sendDeviceListUpdatedCallback()
-{
- LOG4CPLUS_INFO(mLogger, "Preparing complete device list from all adapters");
-
- // Preparing complete device list
- tDeviceList devices;
-
- tDevicesByAdapterMap::const_iterator deviceAdaptersIterator;
-
- pthread_mutex_lock(&mDevicesByAdapterMutex);
-
- for(deviceAdaptersIterator = mDevicesByAdapter.begin(); deviceAdaptersIterator != mDevicesByAdapter.end(); ++deviceAdaptersIterator)
- {
- IDeviceAdapter* pDeviceAdapter = deviceAdaptersIterator->first;
- tInternalDeviceList *pDevices = deviceAdaptersIterator->second;
-
- LOG4CPLUS_INFO(mLogger, "Processing adapter with type: "<<pDeviceAdapter->getDeviceType());
-
- tInternalDeviceList::const_iterator devicesInAdapterIterator;
- for(devicesInAdapterIterator = pDevices->begin(); devicesInAdapterIterator != pDevices->end(); ++devicesInAdapterIterator)
- {
- SDeviceInfo deviceInfo;
-
- deviceInfo.mDeviceHandle = devicesInAdapterIterator->mDeviceHandle;
- deviceInfo.mDeviceType = pDeviceAdapter->getDeviceType();
- deviceInfo.mUniqueDeviceId = devicesInAdapterIterator->mUniqueDeviceId;
- deviceInfo.mUserFriendlyName = devicesInAdapterIterator->mUserFriendlyName;
-
- devices.push_back(deviceInfo);
-
- LOG4CPLUS_INFO(mLogger, "Processed device with unique Id: "<<devicesInAdapterIterator->mUniqueDeviceId << ", friendlyName: "<<devicesInAdapterIterator->mUserFriendlyName);
- }
- }
-
- LOG4CPLUS_INFO(mLogger, "Complete device list from all adapters was prepared. Preparing callback OnDeviceListUpdated for sending");
-
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
-
- // Sending DeviceListUpdatedCallback
- SDeviceListenerCallback cb(CTransportManager::DeviceListenerCallbackType_DeviceListUpdated, devices);
- sendDeviceCallback(cb);
-
- LOG4CPLUS_INFO(mLogger, "Callback OnDeviceListUpdated was prepared for sending");
-}
-
-void CTransportManager::connectDisconnectDevice(const tDeviceHandle DeviceHandle, bool Connect)
-{
- LOG4CPLUS_INFO(mLogger, "Performing "<<(Connect?"CONNECT":"DISCONNECT")<<" for device with handle: " << DeviceHandle);
- LOG4CPLUS_INFO(mLogger, "Searching for device adapter for handling DeviceHandle: " << DeviceHandle);
-
- tDevicesByAdapterMap::const_iterator deviceAdaptersIterator;
-
- pthread_mutex_lock(&mDevicesByAdapterMutex);
-
- IDeviceAdapter* pDeviceAdapterToCall = 0;
-
- for(deviceAdaptersIterator = mDevicesByAdapter.begin(); deviceAdaptersIterator != mDevicesByAdapter.end(); ++deviceAdaptersIterator)
- {
- IDeviceAdapter* pDeviceAdapter = deviceAdaptersIterator->first;
- tInternalDeviceList *pDevices = deviceAdaptersIterator->second;
-
- LOG4CPLUS_INFO(mLogger, "Processing adapter with type: "<<pDeviceAdapter->getDeviceType());
-
- tInternalDeviceList::const_iterator devicesInAdapterIterator;
- for(devicesInAdapterIterator = pDevices->begin(); devicesInAdapterIterator != pDevices->end(); ++devicesInAdapterIterator)
- {
- LOG4CPLUS_INFO(mLogger, "Processing device with unique Id: "<<devicesInAdapterIterator->mUniqueDeviceId << ", DeviceHandle: "<<devicesInAdapterIterator->mDeviceHandle);
- if(devicesInAdapterIterator->mDeviceHandle == DeviceHandle)
- {
- LOG4CPLUS_INFO(mLogger, "DeviceHandle relates to adapter: "<<pDeviceAdapter->getDeviceType());
- pDeviceAdapterToCall = pDeviceAdapter;
- }
- }
- }
-
- pthread_mutex_unlock(&mDevicesByAdapterMutex);
-
- if(0 != pDeviceAdapterToCall)
- {
- if(Connect)
- {
- pDeviceAdapterToCall->connectDevice(DeviceHandle);
- }
- else
- {
- pDeviceAdapterToCall->disconnectDevice(DeviceHandle);
- }
- LOG4CPLUS_INFO(mLogger, (Connect?"CONNECT":"DISCONNECT")<<" operation performed on device with handle: " << DeviceHandle);
- }
- else
- {
- LOG4CPLUS_WARN(mLogger, (Connect?"CONNECT":"DISCONNECT")<<" operation was not performed. Device handle was not found on any device: " << DeviceHandle);
- }
-}
-
-void CTransportManager::sendDataCallback(const CTransportManager::SDataListenerCallback& callback)
-{
- TM_CH_LOG4CPLUS_INFO(mLogger, callback.mConnectionHandle, "Preparing callback of type: "<<callback.mCallbackType<<", to send");
-
- SConnectionInfo* connectionInfo = getConnection(callback.mConnectionHandle);
- if(0 == connectionInfo)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, callback.mConnectionHandle, "Connection information was not found");
- }
- else
- {
- connectionInfo->mDataCallbacksVector.push_back(callback);
- pthread_cond_signal(&connectionInfo->mConditionVar);
- }
-}
-
-void CTransportManager::sendDeviceCallback(const CTransportManager::SDeviceListenerCallback& callback)
-{
- LOG4CPLUS_INFO(mLogger, "Sending new device callback. Type: " << callback.mCallbackType);
- pthread_mutex_lock(&mDeviceListenersMutex);
-
- mDeviceListenersCallbacks.push_back(callback);
- LOG4CPLUS_INFO(mLogger, "Device callback was added to pool");
-
- pthread_cond_signal(&mDeviceListenersConditionVar);
-
- pthread_mutex_unlock(&mDeviceListenersMutex);
- LOG4CPLUS_INFO(mLogger, "Triggering device callback processing");
-}
-
-CTransportManager::SFrameDataForConnection::SFrameDataForConnection(tConnectionHandle ConnectionHandle)
-: mDataSize(0)
-, mConnectionHandle(ConnectionHandle)
-, mLogger(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("TransportManager")))
-{
- mBufferSize = 1536;
- mpDataBuffer = new uint8_t[mBufferSize];
-
- TM_CH_LOG4CPLUS_INFO(mLogger, ConnectionHandle, "Initialized frame data for connection container");
-}
-
-CTransportManager::SFrameDataForConnection::~SFrameDataForConnection()
-{
- if(0 != mpDataBuffer)
- {
- delete mpDataBuffer;
- mpDataBuffer = 0;
- }
- TM_CH_LOG4CPLUS_INFO(mLogger, mConnectionHandle, "Frame data for connection container destroyed");
-}
-
-void CTransportManager::SFrameDataForConnection::appendFrameData(const uint8_t* Data, size_t DataSize)
-{
- TM_CH_LOG4CPLUS_INFO(mLogger, mConnectionHandle, "Appending data to container. DataSize: " << DataSize);
-
- // Checking that data can be added to existing buffer
- if( (mDataSize+DataSize) <= mBufferSize)
- {
- TM_CH_LOG4CPLUS_INFO(mLogger, mConnectionHandle, "Data can be appended to existing buffer. Buffer size: "<<mBufferSize<<", Existing data size: "<<mDataSize<<", DataSize: " << DataSize);
- memcpy(&mpDataBuffer[mDataSize], Data, DataSize);
- mDataSize += DataSize;
- }
- else
- {
- TM_CH_LOG4CPLUS_INFO(mLogger, mConnectionHandle, "Data cannot be appended to existing buffer. Buffer size: "<<mBufferSize<<", Existing data size: "<<mDataSize<<", DataSize: " << DataSize);
-
- // Currently memory for incoming data is allocated as sum of existing memory size and incoming data size.
- // In the future depending of type and sizes of incoming data this algorithm can be changed
- size_t newSize = mBufferSize + DataSize;
- uint8_t *newBuffer = new uint8_t[newSize];
-
- TM_CH_LOG4CPLUS_INFO(mLogger, mConnectionHandle, "New buffer allocated. Buffer size: "<<newSize<<", was: "<<mBufferSize);
-
- memcpy(newBuffer, mpDataBuffer, mDataSize);
- memcpy(&newBuffer[mDataSize], Data, DataSize);
- delete mpDataBuffer;
- mpDataBuffer = 0; // Paranoid mode on
-
- mpDataBuffer = newBuffer;
- mDataSize = mDataSize+DataSize;
- mBufferSize = newSize;
- }
-
- TM_CH_LOG4CPLUS_INFO(mLogger, mConnectionHandle, "Data appended. Buffer size: "<<mBufferSize<<", Existing data size: "<<mDataSize);
-}
-
-bool CTransportManager::SFrameDataForConnection::extractFrame(uint8_t *& Data, size_t & DataSize)
-{
- if(mDataSize < PROTOCOL_HEADER_V1_SIZE)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, mConnectionHandle, "Not enough data for version in the buffer. No changes was made. mDataSize: "<<mDataSize);
- return false;
- }
-
- // Extracting version
- uint8_t firstByte = mpDataBuffer[0];
- uint8_t version = firstByte >> 4;
-
- uint8_t offset = sizeof(uint32_t);
- uint32_t frameDataSize = mpDataBuffer[offset++] << 24;
- frameDataSize |= mpDataBuffer[offset++] << 16;
- frameDataSize |= mpDataBuffer[offset++] << 8;
- frameDataSize |= mpDataBuffer[offset++];
-
- size_t requiredDataSize = 0;
-
- if(version == PROTOCOL_VERSION_1)
- {
- requiredDataSize = (PROTOCOL_HEADER_V1_SIZE + frameDataSize);
- }
- else if(version == PROTOCOL_VERSION_2)
- {
- requiredDataSize = (PROTOCOL_HEADER_V2_SIZE + frameDataSize);
- }
- else
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, mConnectionHandle, "Unsupported version received: " << (int)version);
- return false;
- }
-
- if(mDataSize < requiredDataSize)
- {
- TM_CH_LOG4CPLUS_WARN(mLogger, mConnectionHandle, "Frame canot be extracted. Its size: " << requiredDataSize << ", Available data size: "<<mDataSize);
- return false;
- }
-
- // Extracting frame from buffer
- Data = new uint8_t[requiredDataSize];
- memcpy(Data, mpDataBuffer, requiredDataSize);
- DataSize = requiredDataSize;
-
- // Shifting buffer
- mDataSize -= requiredDataSize;
- memmove(mpDataBuffer, &mpDataBuffer[requiredDataSize], mDataSize);
-
- return true;
-}
-
-
-NsSmartDeviceLink::NsTransportManager::CTransportManager::SFrameDataForConnection::SFrameDataForConnection(const SFrameDataForConnection& other)
-: mDataSize(other.mDataSize)
-, mBufferSize(other.mBufferSize)
-, mConnectionHandle(other.mConnectionHandle)
-, mLogger(log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("TransportManager")))
-{
- mpDataBuffer = new uint8_t[other.mBufferSize];
- memcpy(mpDataBuffer, other.mpDataBuffer, other.mBufferSize);
-
- TM_CH_LOG4CPLUS_INFO(mLogger, mConnectionHandle, "Initialized frame data for connection container");
-}
-
-bool NsSmartDeviceLink::NsTransportManager::CTransportManager::SFrameDataForConnection::operator==( const SFrameDataForConnection& i_other ) const
-{
- return ( (mDataSize == i_other.mDataSize)
- && (mBufferSize == i_other.mBufferSize)
- && (mConnectionHandle == i_other.mConnectionHandle)
- && (0 == memcmp(mpDataBuffer, i_other.mpDataBuffer, mBufferSize))
- );
-}
-
-CTransportManager::SConnectionInfo::SConnectionInfo(const tConnectionHandle ConnectionHandle, IDeviceAdapter & DeviceAdapter)
-: mConnectionHandle(ConnectionHandle)
-, mTerminateFlag(false)
-, mDataCallbacksVector()
-, mConnectionThread()
-, mConditionVar()
-, mpDeviceAdapter(DeviceAdapter)
-, mFrameData(ConnectionHandle)
-{
- pthread_cond_init(&mConditionVar, NULL);
-}
-
-CTransportManager::SConnectionInfo::SConnectionInfo(const CTransportManager::SConnectionInfo& other)
-: mConnectionHandle(other.mConnectionHandle)
-, mTerminateFlag(other.mTerminateFlag)
-, mDataCallbacksVector(other.mDataCallbacksVector)
-, mConnectionThread(other.mConnectionThread)
-, mConditionVar(other.mConditionVar)
-, mpDeviceAdapter(other.mpDeviceAdapter)
-, mFrameData(other.mFrameData)
-{
-
-}
-
-bool CTransportManager::SConnectionInfo::operator==(const CTransportManager::SConnectionInfo& i_other) const
-{
- return ( (mConnectionHandle == i_other.mConnectionHandle)
-// && (mTerminateFlag == i_other.mTerminateFlag)
-// && (mDataCallbacksVector == i_other.mDataCallbacksVector)
-// && (mConnectionThread == i_other.mConnectionThread)
-// && (mConditionVar == i_other.mConditionVar)
-// && (mpDeviceAdapter == i_other.mpDeviceAdapter)
-// && (mFrameData == i_other.mFrameData)
- );
-}
-
-CTransportManager::SConnectionInfo::~SConnectionInfo()
-{
- pthread_cond_destroy(&mConditionVar);
-}
diff --git a/SDL_Core/src/components/TransportManager/src/CTransportManager.hpp b/SDL_Core/src/components/TransportManager/src/CTransportManager.hpp
deleted file mode 100644
index ec4062136..000000000
--- a/SDL_Core/src/components/TransportManager/src/CTransportManager.hpp
+++ /dev/null
@@ -1,837 +0,0 @@
-/**
- * \file CTransportManager.hpp
- * \brief Class CTransportManager header.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_CTRANSPORTMANAGER_HPP__
-#define __TRANSPORTMANAGER_CTRANSPORTMANAGER_HPP__
-
-#include "TransportManager/ITransportManager.hpp"
-#include "IDeviceAdapterListener.hpp"
-#include "IHandleGenerator.hpp"
-#include "Logger.hpp"
-
-#include <pthread.h>
-#include <vector>
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- class IDeviceAdapter;
-
- // Some constants
-
- const uint8_t PROTOCOL_HEADER_V1_SIZE = 8;
- const uint8_t PROTOCOL_HEADER_V2_SIZE = 12;
-
- const uint8_t PROTOCOL_VERSION_1 = 1;
- const uint8_t PROTOCOL_VERSION_2 = 2;
-
- // Class definition
-
- /**
- * @brief Transport manager implementation.
- *
- * Potential future optimizations:
- *
- * @todo Potential future optimization: Add shutdown flag checking inside client interface function calls
- * @todo Potential future optimization: Implement more thread-safe processing of shutdown flag
- * @todo Potential future optimization: Move ITransportManagerDeviceListener::onApplicationConnected and
- * ITransportManagerDeviceListener::onApplicationDisconnected callbacks calling to corresponded connection thread
- *
- * @todo Potential future optimization: Currently all frames processed in one thread. In the future processing of them
- * can be moved to the thread, which sent callbacks for corresponded connection.
- *
- * @todo Potential future optimization: Currently it is not possible to validate incoming frame data. Some kind of data
- * validation can be implemented and if incoming data is invalid one of the possible solutions is to close
- * corresponded connection
- **/
- class CTransportManager: public ITransportManager,
- public IDeviceAdapterListener,
- public IHandleGenerator
- {
- public:
- /**
- * @brief Constructor.
- **/
- CTransportManager(void);
-
- /**
- * @brief Destructor.
- **/
- virtual ~CTransportManager(void);
-
- /**
- * @brief Run transport manager.
- *
- * Must be called from startup after all references to
- * external components are initialized to start trasport manager.
- **/
- virtual void run(void);
-
- /**
- * @brief Start scanning for new devices.
- *
- * List of new devices will be supplied in onDeviceListUpdated callback.
- **/
- virtual void scanForNewDevices(void);
-
- /**
- * @brief Connect to all applications discovered on device.
- *
- * @param DeviceHandle Handle of device to connect to.
- **/
- virtual void connectDevice(const tDeviceHandle DeviceHandle);
-
- /**
- * @brief Disconnect from all applications connected on device.
- *
- * @param DeviceHandle Handle of device to disconnect from.
- **/
- virtual void disconnectDevice(const tDeviceHandle DeviceHandle);
-
- /**
- * @brief Add listener to the data-related events
- *
- * @param Listener Pointer to listener.
- **/
- virtual void addDataListener(ITransportManagerDataListener * Listener);
-
- /**
- * @brief Remove listener to the data-related events.
- *
- * @param Listener Pointer to listener.
- **/
- virtual void removeDataListener(ITransportManagerDataListener * Listener);
-
- /**
- * @brief Add listener to the device-related events.
- *
- * @param Listener Pointer to listener.
- **/
- virtual void addDeviceListener(ITransportManagerDeviceListener * Listener);
-
- /**
- * @brief Remove listenerto the device-related events.
- *
- * @param Listener Pointer to listener.
- **/
- virtual void removeDeviceListener(ITransportManagerDeviceListener * Listener);
-
- /**
- * @brief Send frame.
- *
- * @param ConnectionHandle Connection handle.
- * @param Data Frame payload data.
- * @param DataSize Size of data in bytes.
- * @param UserData Any user data. Will be returned as is in ITransportManagerDataListener::onFrameSendCompleted
- **/
- virtual void sendFrame(tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize, const int UserData);
-
- /**
- * @brief Generate new device handle.
- *
- * Internal method used for generation of unique device handle
- * for device adapters.
- *
- * @return New device handle.
- **/
- virtual tDeviceHandle generateNewDeviceHandle(void);
-
- /**
- * @brief Generate new connection handle.
- *
- * Internal method used for generation of unique connection handle
- * for device adapters.
- *
- * @return New connection handle.
- **/
- virtual tConnectionHandle generateNewConnectionHandle(void);
-
- // Handling Device Adapters callbacks
-
- /**
- * @brief Available devices list updated callback.
- *
- * @param DeviceAdapter Calling device adapter.
- * @param DeviceList New list of available devices.
- **/
- virtual void onDeviceListUpdated(IDeviceAdapter * DeviceAdapter, const tInternalDeviceList & DeviceList);
-
- /**
- * @brief Application connected callback.
- *
- * @param ConnectedDevice DeviceInfo of device with connected application.
- * @param Connection Connection handle.
- **/
- virtual void onApplicationConnected(IDeviceAdapter * DeviceAdapter, const SDeviceInfo & ConnectedDevice, const tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Application disconnected callback.
- *
- * @param ConnectedDevice DeviceInfo of device with connected application.
- * @param Connection Connection handle.
- **/
- virtual void onApplicationDisconnected(IDeviceAdapter * DeviceAdapter, const SDeviceInfo & DisconnectedDevice, const tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Frame received callback.
- *
- * @param DeviceAdapter Calling device adapter.
- * @param ConnectionHandle Connection handle.
- * @param Data Received frame data.
- * @param DataSize Size of received data in bytes.
- *
- * @note %Data pointed by parameter Data is valid only until
- * this callback returns control to the caller. Callback
- * handler is responsible to copy this data to its own
- * location if it needs the data after return.
- **/
- virtual void onFrameReceived(IDeviceAdapter * DeviceAdapter, tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize);
-
- /**
- * @brief Frame send completed callback.
- *
- * @param DeviceAdapter Calling device adapter.
- * @param ConnectionHandle Connection handle.
- * @param UserData User data that was previously passed to ITransportManager::sendFrame.
- * @param SendStatus Result status.
- **/
- virtual void onFrameSendCompleted(IDeviceAdapter * DeviceAdapter, tConnectionHandle ConnectionHandle, int UserData, ESendStatus SendStatus);
-
- protected:
-
- /**
- * @brief Enumeration that represents type of the device listener callback
- * that must be called
- **/
- enum EDeviceListenerCallbackType
- {
- DeviceListenerCallbackType_DeviceListUpdated = 0,
- DeviceListenerCallbackType_ApplicationConnected = 1,
- DeviceListenerCallbackType_ApplicationDisconnected = 2
- };
-
- /**
- * @brief Enumeration that represents type of the data listener callback
- * that must be called
- **/
- enum EDataListenerCallbackType
- {
- DataListenerCallbackType_FrameReceived = 0,
- DataListenerCallbackType_FrameSendCompleted = 1
- };
-
- /**
- * @brief Device listener callback information
- *
- * Used to store data for calling device listeners
- **/
- struct SDeviceListenerCallback
- {
- /**
- * @brief Constructor for creating DeviceListUpdated callback.
- *
- * @param CallbackType Type of the callback
- * @param DeviceList Device list
- **/
- SDeviceListenerCallback(EDeviceListenerCallbackType CallbackType, const tDeviceList & DeviceList);
-
- /**
- * @brief Constructor for creating ApplicationConnected and ApplicationDisconnected callbacks
- *
- * @param CallbackType Type of the callback
- * @param DeviceInfo Device information
- * @param ConnectionHandle Connection handle
- **/
- SDeviceListenerCallback(EDeviceListenerCallbackType CallbackType, const SDeviceInfo & DeviceInfo, const tConnectionHandle & ConnectionHandle);
-
- /**
- * @brief Copy constructor
- *
- * @param other Reference to object to be copied
- **/
- SDeviceListenerCallback(const SDeviceListenerCallback& other);
-
- /**
- * @brief Comparison operator.
- *
- * @param i_other Reference to the object to be compared with
- * @return bool
- **/
- bool operator==( const SDeviceListenerCallback& i_other ) const;
-
- /**
- * @brief Destructor.
- *
- **/
- ~SDeviceListenerCallback(void);
-
- /**
- * @brief Type of the callback that must be called
- **/
- EDeviceListenerCallbackType mCallbackType;
-
- /**
- * @brief Device list (will be sent in the DeviceListUpdated callback)
- **/
- tDeviceList mDeviceList;
-
- /**
- * @brief Device information (will be sent in the ApplicationConnected and ApplicationDisconnected callbacks)
- **/
- SDeviceInfo mDeviceInfo;
-
- /**
- * @brief Connection handle (will be sent in the ApplicationConnected and ApplicationDisconnected callbacks)
- **/
- tConnectionHandle mConnectionHandle;
- };
-
- /**
- * @brief Data listener callback information
- *
- * Used to store data for calling data listeners
- **/
- struct SDataListenerCallback
- {
- /**
- * @brief Constructor for creating FrameReceived callback.
- *
- * @param CallbackType Type of the callback
- * @param ConnectionHandle Connection handle
- * @param Data Data
- * @param DataSize Size of the data
- **/
- SDataListenerCallback(NsSmartDeviceLink::NsTransportManager::CTransportManager::EDataListenerCallbackType CallbackType, NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle, const uint8_t* Data, size_t DataSize);
-
- /**
- * @brief Constructor for creating FrameSendCompleted callback
- *
- * @param CallbackType Type of the callback
- * @param ConnectionHandle Connection handle
- * @param UserData User data
- * @param SendStatus Status of operation
- **/
- SDataListenerCallback(EDataListenerCallbackType CallbackType, tConnectionHandle ConnectionHandle, int UserData, ESendStatus SendStatus);
-
- /**
- * @brief Copy constructor
- *
- * @param other Reference to object to be copied
- **/
- SDataListenerCallback(const SDataListenerCallback& other);
-
- /**
- * @brief Comparison operator.
- *
- * @param i_other Reference to the object to be compared with
- * @return bool
- **/
- bool operator==( const SDataListenerCallback& i_other ) const;
-
- /**
- * @brief Destructor.
- *
- **/
- ~SDataListenerCallback(void);
-
- /**
- * @brief Type of the callback that must be called
- **/
- EDataListenerCallbackType mCallbackType;
-
- /**
- * @brief Connection handle (will be sent in the ApplicationConnected and ApplicationDisconnected callbacks)
- **/
- tConnectionHandle mConnectionHandle;
-
- /**
- * @brief Data to send
- **/
- uint8_t * mData;
-
- /**
- * @brief Size of the data
- **/
- size_t mDataSize;
-
- /**
- * @brief User data
- **/
- int mUserData;
-
- /**
- * @brief Operation status
- **/
- ESendStatus mSendStatus;
- };
-
- /**
- * @brief Struct that contains startup params for data-threads
- **/
- struct SDataThreadStartupParams
- {
- /**
- * @brief Constructor
- *
- * @param TransportManager Pointer to the Transport Manager
- * @param ConnectionHandle Connection Handle
- **/
- SDataThreadStartupParams(NsSmartDeviceLink::NsTransportManager::CTransportManager* TransportManager, NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Pointer to Transport Manager
- **/
- CTransportManager * mTransportManager;
-
- /**
- * @brief Connection Handle
- **/
- tConnectionHandle mConnectionHandle;
- };
-
- /**
- * @brief Incapsulates frame data for each connection
- *
- **/
- struct SFrameDataForConnection
- {
- /**
- * @brief Constructor
- *
- **/
- SFrameDataForConnection(tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Destructor
- *
- **/
- ~SFrameDataForConnection();
-
- /**
- * @brief Copy constructor
- *
- * @param other Reference to object to be copied
- **/
- SFrameDataForConnection(const SFrameDataForConnection& other);
-
- /**
- * @brief Comparison operator.
- *
- * @param i_other Reference to the object to be compared with
- * @return bool
- **/
- bool operator==( const SFrameDataForConnection& i_other ) const;
-
- /**
- * @brief Appends new data to the buffer
- *
- * @param Data Data to append
- * @param DataSize Size of data
- * @return void
- **/
- void appendFrameData(const uint8_t * Data, size_t DataSize);
-
- /**
- * @brief Extracts single frame and returns it
- *
- * @param[out] Data Pointer to the frame data
- * @param[out] size_t Size of the returned frame.
- *
- * @return bool Result of extract operation
- *
- * @warning Memory for this buffer is allocated in the method call but must be freed
- * when it does not needed by caller component ONLY if method returns true
- **/
- bool extractFrame(uint8_t *& Data, size_t & DataSize);
-
- /**
- * @brief Pointer to the data buffer
- **/
- uint8_t *mpDataBuffer;
-
- /**
- * @brief Size of the data in the buffer
- **/
- size_t mDataSize;
-
- /**
- * @brief Size of the data buffer
- **/
- size_t mBufferSize;
-
- /**
- * @brief Handle of the connection
- *
- * @note Used only for debugging purposes
- **/
- tConnectionHandle mConnectionHandle;
-
- /**
- * @brief Logger
- **/
- Logger mLogger;
- };
-
- /**
- * @brief Vector for storing Data Callbacks.
- **/
- typedef std::vector<SDataListenerCallback> tDataCallbacksVector;
-
- /**
- * @brief Struct for storing information, related to single connection
- **/
- struct SConnectionInfo
- {
- /**
- * @brief Constructor.
- *
- * @param ConnectionHandle Connection handle.
- * @param DeviceAdapter Device adapter
- **/
- SConnectionInfo(const tConnectionHandle ConnectionHandle, IDeviceAdapter & DeviceAdapter);
-
- /**
- * @brief Copy constructor
- *
- * @param other Reference to object to be copied
- **/
- SConnectionInfo(const SConnectionInfo& other);
-
- /**
- * @brief Comparison operator.
- *
- * @param i_other Reference to the object to be compared with
- * @return bool
- **/
- bool operator==( const SConnectionInfo& i_other ) const;
-
- /**
- * @brief Destructor
- *
- **/
- virtual ~SConnectionInfo();
-
- /**
- * @brief Connection handle, associated with connection information
- **/
- const tConnectionHandle mConnectionHandle;
-
- /**
- * @brief Terminate flag.
- *
- * This flag is set to notify connection thread that connection
- * must be closed and connection thread must be terminated.
- **/
- bool mTerminateFlag;
-
- /**
- * @brief Callbacks for sending
- **/
- tDataCallbacksVector mDataCallbacksVector;
-
- /**
- * @brief Thread handle
- **/
- pthread_t mConnectionThread;
-
- /**
- * @brief Condition variable. Used for waiting for callbacks data
- **/
- pthread_cond_t mConditionVar;
-
- /**
- * @brief Device adapter, which opened connection
- **/
- IDeviceAdapter& mpDeviceAdapter;
-
- /**
- * @brief Frame data
- **/
- SFrameDataForConnection mFrameData;
- };
-
- /**
- * @brief Connections map
- **/
- typedef std::map<tConnectionHandle, SConnectionInfo*> tConnectionsMap;
-
- /**
- * @brief Map for storing available devices for each device adapter
- **/
- typedef std::map<IDeviceAdapter*, tInternalDeviceList*> tDevicesByAdapterMap;
-
- /**
- * @brief Start routine for Application-related callbacks.
- *
- * @param Data Must be pointer to CTransportManager instance.
- *
- * @return Thread return value.
- **/
- static void * applicationCallbacksThreadStartRoutine(void * Data);
-
- /**
- * @brief Application-related callbacks thread.
- *
- * From this thread all application-related callbacks are called
- *
- **/
- void applicationCallbacksThread();
-
- /**
- * @brief Start routine for Data-related callbacks.
- *
- * @param Data Must be pointer to CTransportManager instance.
- *
- * @return Thread return value.
- **/
- static void * dataCallbacksThreadStartRoutine(void * Data);
-
- /**
- * @brief Data-related callbacks thread.
- *
- * From this thread all data-related callbacks related to given connection handle are called
- *
- * @param ConnectionHandle Connection handle
- **/
- void dataCallbacksThread(const tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Starts thread for application-related callbacks
- *
- **/
- void startApplicationCallbacksThread();
-
- /**
- * @brief Stops thread for application-related callbacks
- *
- * @return void
- * @warning terminate flag must be set to true before calling this function
- **/
- void stopApplicationCallbacksThread();
-
- /**
- * @brief Starts thread for data-related callbacks for given connection handle
- *
- * @param ConnectionHandle Connection Handle
- * @return bool
- **/
- void startConnection(const tConnectionHandle ConnectionHandle, IDeviceAdapter& DeviceAdapter);
-
- /**
- * @brief Stops thread for data-related callbacks for given connection handle
- *
- * @param ConnectionHandle Connection Handle
- * @return void
- * @warning terminate flag must be set to true before calling this function
- **/
- void stopConnection(const tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Check thread existence for given ConnectionHandle
- *
- * @param ConnectionHandle Connection Handle
- * @return bool
- *
- * @attention This function is not thread safe
- **/
- bool isConnectionAvailable(const tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Returns connection information by Connection Handle
- *
- * @param ConnectionHandle Connection handle
- * @return SConnectionInfo*
- **/
- SConnectionInfo* getConnection(const tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Adds new device adapter
- *
- * @param DeviceAdapter Device adapter to add
- * @return void
- **/
- void addDeviceAdapter(NsSmartDeviceLink::NsTransportManager::IDeviceAdapter* DeviceAdapter);
-
- /**
- * @brief Removes device adapter
- *
- * @note This function does not deletes DeviceAdapter pointer
- *
- * @param DeviceAdapter Device adapter to remove
- * @return void
- **/
- void removeDeviceAdapter(NsSmartDeviceLink::NsTransportManager::IDeviceAdapter* DeviceAdapter);
-
- /**
- * @brief All device adapters initialized here
- *
- * @return void
- **/
- virtual void initializeDeviceAdapters();
-
- /**
- * @brief Sends callback DeviceListUpdated to subscribers
- *
- * @return void
- * @attention This function is not thread safe
- **/
- void sendDeviceListUpdatedCallback();
-
- /**
- * @brief Connects and disconnects device by its handle
- *
- * @param DeviceHandle Handle of the device to connect or disconnect
- * @param Connect Flag of device operation: true for connect, false for disconnect. Defaults to true.
- * @return void
- **/
- void connectDisconnectDevice(const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle, bool Connect = true);
-
- /**
- * @brief Sends data callback
- *
- * @attention This function is not thread-safe
- * @param callback Callback to send
- * @return void
- **/
- void sendDataCallback(const SDataListenerCallback& callback);
-
- /**
- * @brief Sends device callback
- *
- * @param callback Callback to send
- * @return void
- **/
- void sendDeviceCallback(const SDeviceListenerCallback& callback);
-
- /**
- * @brief Device adapters.
- **/
- std::vector<IDeviceAdapter*> mDeviceAdapters;
-
- /**
- * @brief Logger.
- **/
- const log4cplus::Logger mLogger;
-
- /**
- * @brief Mutex restricting access to data listeners.
- **/
- mutable pthread_mutex_t mDataListenersMutex;
-
- /**
- * @brief Mutex restricting access to device listeners.
- **/
- mutable pthread_mutex_t mDeviceListenersMutex;
-
- /**
- * @brief Mutex restricting access to new device handle generation
- **/
- mutable pthread_mutex_t mDeviceHandleGenerationMutex;
-
- /**
- * @brief Mutex restricting access to new conenction handle generation
- **/
- mutable pthread_mutex_t mConnectionHandleGenerationMutex;
-
- /**
- * @brief Data listeners
- **/
- std::vector<ITransportManagerDataListener*> mDataListeners;
-
- /**
- * @brief Device listeners
- **/
- std::vector<ITransportManagerDeviceListener*> mDeviceListeners;
-
- /**
- * @brief Last used device handle
- *
- * Used during device handle generation
- **/
- tDeviceHandle mLastUsedDeviceHandle;
-
- /**
- * @brief Last used connection handle
- *
- * Used during connection handle generation
- **/
- tConnectionHandle mLastUsedConnectionHandle;
-
- /**
- * @brief ID of thread, which sends Application-related callbacks
- **/
- pthread_t mApplicationCallbacksThread;
-
- /**
- * @brief Condition variable used for device listeners callbacks synchronization
- **/
- pthread_cond_t mDeviceListenersConditionVar;
-
- /**
- * @brief Vector of the device listeners callbacks to call
- **/
- std::vector<SDeviceListenerCallback> mDeviceListenersCallbacks;
-
- /**
- * @brief Terminate flag.
- *
- * This flag is set to notify threads that they must be terminated.
- **/
- bool mTerminateFlag;
-
- /**
- * @brief Devices for each adapter
- **/
- tDevicesByAdapterMap mDevicesByAdapter;
-
- /**
- * @brief Mutex restricting access to devices information for each adapter
- **/
- mutable pthread_mutex_t mDevicesByAdapterMutex;
-
- /**
- * @brief Connections
- **/
- tConnectionsMap mConnections;
-
- /**
- * @brief Mutex restricting access to client interface
- **/
- mutable pthread_mutex_t mClientInterfaceMutex;
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/TransportManager/src/IDeviceAdapter.cpp b/SDL_Core/src/components/TransportManager/src/IDeviceAdapter.cpp
deleted file mode 100644
index 3d45feecd..000000000
--- a/SDL_Core/src/components/TransportManager/src/IDeviceAdapter.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * \file IDeviceAdapter.cpp
- * \brief Class IDeviceAdapter.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "IDeviceAdapter.hpp"
-
-NsSmartDeviceLink::NsTransportManager::IDeviceAdapter::~IDeviceAdapter(void)
-{
-}
diff --git a/SDL_Core/src/components/TransportManager/src/IDeviceAdapter.hpp b/SDL_Core/src/components/TransportManager/src/IDeviceAdapter.hpp
deleted file mode 100644
index ec27f7c0a..000000000
--- a/SDL_Core/src/components/TransportManager/src/IDeviceAdapter.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * \file IDeviceAdapter.hpp
- * \brief Class IDeviceAdapter header.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_IDEVICEADAPTER_HPP__
-#define __TRANSPORTMANAGER_IDEVICEADAPTER_HPP__
-
-#include <stdint.h>
-#include <sys/types.h>
-#include <vector>
-
-#include "TransportManager/ITransportManager.hpp"
-#include "SInternalDeviceInfo.hpp"
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- /**
- * @brief Interface for device adapter.
- * @interface IDeviceAdapter
- **/
- class IDeviceAdapter
- {
- public:
- /**
- * @brief Destructor.
- **/
- virtual ~IDeviceAdapter(void);
-
- /**
- * @brief Run device adapter.
- *
- * Called from transport manager to start device adapter.
- **/
- virtual void run(void) = 0;
-
- /**
- * @brief Start scanning for new devices.
- *
- * List of new devices will be supplied in onDeviceListUpdated callback.
- **/
- virtual void scanForNewDevices(void) = 0;
-
- /**
- * @brief Connect to all applications discovered on device.
- *
- * @param DeviceHandle Handle of device to connect to.
- **/
- virtual void connectDevice(const tDeviceHandle DeviceHandle) = 0;
-
- /**
- * @brief Disconnect from all applications connected on device.
- *
- * @param DeviceHandle Handle of device to disconnect from.
- **/
- virtual void disconnectDevice(const tDeviceHandle DeviceHandle) = 0;
-
- /**
- * @brief Get type of devices handled by this device adapter.
- *
- * @return Device type.
- **/
- virtual EDeviceType getDeviceType(void) const = 0;
-
- /**
- * @brief Send frame.
- *
- * @param ConnectionHandle Connection handle.
- * @param Data Frame payload data.
- * @param DataSize Size of data in bytes.
- * @param UserData Any user data. Will be returned as is in ITransportManagerDataListener::onFrameSendCompleted
- **/
- virtual void sendFrame(tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize, int UserData) = 0;
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/TransportManager/src/IDeviceAdapterListener.cpp b/SDL_Core/src/components/TransportManager/src/IDeviceAdapterListener.cpp
deleted file mode 100644
index d6bc0cce3..000000000
--- a/SDL_Core/src/components/TransportManager/src/IDeviceAdapterListener.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * \file IDeviceAdapterListener.cpp
- * \brief Class IDeviceAdapterListener.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "IDeviceAdapterListener.hpp"
-
-NsSmartDeviceLink::NsTransportManager::IDeviceAdapterListener::~IDeviceAdapterListener(void )
-{
-}
-
-void NsSmartDeviceLink::NsTransportManager::IDeviceAdapterListener::onDeviceListUpdated(NsSmartDeviceLink::NsTransportManager::IDeviceAdapter * DeviceAdapter, const NsSmartDeviceLink::NsTransportManager::tInternalDeviceList & DeviceList)
-{
-}
-
-void NsSmartDeviceLink::NsTransportManager::IDeviceAdapterListener::onApplicationConnected(NsSmartDeviceLink::NsTransportManager::IDeviceAdapter * DeviceAdapter, const NsSmartDeviceLink::NsTransportManager::SDeviceInfo & ConnectedDevice, const NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle)
-{
-}
-
-void NsSmartDeviceLink::NsTransportManager::IDeviceAdapterListener::onApplicationDisconnected(NsSmartDeviceLink::NsTransportManager::IDeviceAdapter * DeviceAdapter, const NsSmartDeviceLink::NsTransportManager::SDeviceInfo & DisconnectedDevice, const NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle)
-{
-}
-
-void NsSmartDeviceLink::NsTransportManager::IDeviceAdapterListener::onFrameReceived(NsSmartDeviceLink::NsTransportManager::IDeviceAdapter * DeviceAdapter, tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize)
-{
-}
-
-void NsSmartDeviceLink::NsTransportManager::IDeviceAdapterListener::onFrameSendCompleted(NsSmartDeviceLink::NsTransportManager::IDeviceAdapter * DeviceAdapter, tConnectionHandle ConnectionHandle, int FrameSequenceNumber, ESendStatus SendStatus)
-{
-}
diff --git a/SDL_Core/src/components/TransportManager/src/IDeviceAdapterListener.hpp b/SDL_Core/src/components/TransportManager/src/IDeviceAdapterListener.hpp
deleted file mode 100644
index be16bc847..000000000
--- a/SDL_Core/src/components/TransportManager/src/IDeviceAdapterListener.hpp
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- * \file IDeviceAdapterListener.hpp
- * \brief Class IDeviceAdapterListener.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_IDEVICEADAPTERLISTENER_HPP__
-#define __TRANSPORTMANAGER_IDEVICEADAPTERLISTENER_HPP__
-
-#include <stdint.h>
-#include <sys/types.h>
-#include <vector>
-
-#include "TransportManager/ITransportManager.hpp"
-#include "TransportManager/ITransportManagerDataListener.hpp"
-#include "TransportManager/ITransportManagerDeviceListener.hpp"
-
-#include "SInternalDeviceInfo.hpp"
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- class IDeviceAdapter;
-
- /**
- * @brief Interface of device adapter listener.
- *
- * Used to notify transport manager about events in
- * device adapters.
- * @interface IDeviceAdapterListener
- **/
- class IDeviceAdapterListener
- {
- public:
- /**
- * @brief Destructor.
- **/
- virtual ~IDeviceAdapterListener(void);
-
- /**
- * @brief Available devices list updated callback.
- *
- * Called when device scanning initiated with scanForNewDevices
- * is completed.
- *
- * @param DeviceAdapter Calling device adapter.
- * @param DeviceList New list of available devices.
- **/
- virtual void onDeviceListUpdated(IDeviceAdapter * DeviceAdapter, const tInternalDeviceList & DeviceList);
-
- /**
- * @brief Application connected callback.
- *
- * @param DeviceAdapter Device adapter
- * @param ConnectedDevice DeviceInfo of device with connected application.
- * @param Connection Connection handle.
- **/
- virtual void onApplicationConnected(IDeviceAdapter * DeviceAdapter, const SDeviceInfo & ConnectedDevice, const tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Application disconnected callback.
- *
- * @param DeviceAdapter Device adapter
- * @param ConnectedDevice DeviceInfo of device with connected application.
- * @param Connection Connection handle.
- **/
- virtual void onApplicationDisconnected(IDeviceAdapter * DeviceAdapter, const SDeviceInfo & DisconnectedDevice, const tConnectionHandle ConnectionHandle);
-
- /**
- * @brief Frame received callback.
- *
- * @param DeviceAdapter Calling device adapter.
- * @param ConnectionHandle Connection handle.
- * @param Data Received frame data.
- * @param DataSize Size of received data in bytes.
- *
- * @note %Data pointed by parameter Data is valid only until
- * this callback returns control to the caller. Callback
- * handler is responsible to copy this data to its own
- * location if it needs the data after return.
- **/
- virtual void onFrameReceived(IDeviceAdapter * DeviceAdapter, tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize);
-
- /**
- * @brief Frame send completed callback.
- *
- * @param DeviceAdapter Calling device adapter.
- * @param ConnectionHandle Connection handle.
- * @param FrameSequenceNumber Sequence numbere of frame that was previously returned by ITransportManager::sendFrame.
- * @param SendStatus Result status.
- **/
- virtual void onFrameSendCompleted(IDeviceAdapter * DeviceAdapter, tConnectionHandle ConnectionHandle, int FrameSequenceNumber, ESendStatus SendStatus);
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/TransportManager/src/IHandleGenerator.cpp b/SDL_Core/src/components/TransportManager/src/IHandleGenerator.cpp
deleted file mode 100644
index 9b4dce66c..000000000
--- a/SDL_Core/src/components/TransportManager/src/IHandleGenerator.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * \file IHandleGenerator.cpp
- * \brief Class IHandleGenerator.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "IHandleGenerator.hpp"
-
-NsSmartDeviceLink::NsTransportManager::IHandleGenerator::~IHandleGenerator(void)
-{
-}
diff --git a/SDL_Core/src/components/TransportManager/src/IHandleGenerator.hpp b/SDL_Core/src/components/TransportManager/src/IHandleGenerator.hpp
deleted file mode 100644
index a820c6e4a..000000000
--- a/SDL_Core/src/components/TransportManager/src/IHandleGenerator.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * \file IHandleGenerator.hpp
- * \brief Class IHandleGenerator.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_IHANDLEGENERATOR_HPP__
-#define __TRANSPORTMANAGER_IHANDLEGENERATOR_HPP__
-
-#include "TransportManager/ITransportManager.hpp"
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- /**
- * @brief Interface for handle generator.
- * @interface IHandleGenerator
- **/
- class IHandleGenerator
- {
- public:
- /**
- * @brief Destructor.
- **/
- virtual ~IHandleGenerator(void);
-
- /**
- * @brief Generate new device handle.
- *
- * Internal method used for generation of unique device handle
- * for device adapters.
- *
- * @return New device handle.
- **/
- virtual tDeviceHandle generateNewDeviceHandle(void) = 0;
-
- /**
- * @brief Generate new connection handle.
- *
- * Internal method used for generation of unique connection handle
- * for device adapters.
- *
- * @return New connection handle.
- **/
- virtual tConnectionHandle generateNewConnectionHandle(void) = 0;
- };
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/TransportManager/src/ITransportManager.cpp b/SDL_Core/src/components/TransportManager/src/ITransportManager.cpp
deleted file mode 100644
index 5406265fc..000000000
--- a/SDL_Core/src/components/TransportManager/src/ITransportManager.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * \file ITransportManager.cpp
- * \brief Class ITransportManager.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "CTransportManager.hpp"
-
-NsSmartDeviceLink::NsTransportManager::ITransportManager * NsSmartDeviceLink::NsTransportManager::ITransportManager::create(void)
-{
- return new CTransportManager();
-}
-
-NsSmartDeviceLink::NsTransportManager::ITransportManager::~ITransportManager(void)
-{
-}
diff --git a/SDL_Core/src/components/TransportManager/src/ITransportManagerDataListener.cpp b/SDL_Core/src/components/TransportManager/src/ITransportManagerDataListener.cpp
deleted file mode 100644
index 3ed2a9aa9..000000000
--- a/SDL_Core/src/components/TransportManager/src/ITransportManagerDataListener.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * \file ITransportManagerDataListener.cpp
- * \brief Class ITransportManagerDataListener.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "TransportManager/ITransportManagerDataListener.hpp"
-
-NsSmartDeviceLink::NsTransportManager::ITransportManagerDataListener::~ITransportManagerDataListener()
-{
-}
-
-void NsSmartDeviceLink::NsTransportManager::ITransportManagerDataListener::onFrameReceived(tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize)
-{
-}
-
-void NsSmartDeviceLink::NsTransportManager::ITransportManagerDataListener::onFrameSendCompleted(tConnectionHandle ConnectionHandle, int FrameSequenceNumber, ESendStatus SendStatus)
-{
-}
diff --git a/SDL_Core/src/components/TransportManager/src/ITransportManagerDeviceListener.cpp b/SDL_Core/src/components/TransportManager/src/ITransportManagerDeviceListener.cpp
deleted file mode 100644
index abdacb781..000000000
--- a/SDL_Core/src/components/TransportManager/src/ITransportManagerDeviceListener.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * \file ITransportManagerDeviceListener.cpp
- * \brief Class ITransportManagerDeviceListener.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "TransportManager/ITransportManagerDeviceListener.hpp"
-
-NsSmartDeviceLink::NsTransportManager::ITransportManagerDeviceListener::~ITransportManagerDeviceListener()
-{
-
-}
-
-void NsSmartDeviceLink::NsTransportManager::ITransportManagerDeviceListener::onDeviceListUpdated(const tDeviceList & DeviceList)
-{
-}
-
-void NsSmartDeviceLink::NsTransportManager::ITransportManagerDeviceListener::onApplicationConnected(const SDeviceInfo & ConnectedDevice, const tConnectionHandle Connection)
-{
-}
-
-void NsSmartDeviceLink::NsTransportManager::ITransportManagerDeviceListener::onApplicationDisconnected(const SDeviceInfo & DisconnectedDevice, const tConnectionHandle Connection)
-{
-}
diff --git a/SDL_Core/src/components/TransportManager/src/SDeviceInfo.cpp b/SDL_Core/src/components/TransportManager/src/SDeviceInfo.cpp
deleted file mode 100644
index 6fda35517..000000000
--- a/SDL_Core/src/components/TransportManager/src/SDeviceInfo.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * \file SDeviceInfo.cpp
- * \brief Class SDeviceInfo.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "TransportManager/SDeviceInfo.hpp"
-
-NsSmartDeviceLink::NsTransportManager::SDeviceInfo::SDeviceInfo()
-: mDeviceHandle()
-, mDeviceType()
-, mUserFriendlyName()
-, mUniqueDeviceId()
-{
-}
-
-NsSmartDeviceLink::NsTransportManager::SDeviceInfo::SDeviceInfo(tDeviceHandle DeviceHandle, EDeviceType DeviceType, std::string UserFriendlyName, std::string UniqueDeviceId)
-: mDeviceHandle(DeviceHandle)
-, mDeviceType(DeviceType)
-, mUserFriendlyName(UserFriendlyName)
-, mUniqueDeviceId(UniqueDeviceId)
-{
-}
-
-NsSmartDeviceLink::NsTransportManager::SDeviceInfo::SDeviceInfo(const SDeviceInfo& other)
-: mDeviceHandle(other.mDeviceHandle)
-, mDeviceType(other.mDeviceType)
-, mUserFriendlyName(other.mUserFriendlyName)
-, mUniqueDeviceId(other.mUniqueDeviceId)
-{
-}
-
-bool NsSmartDeviceLink::NsTransportManager::SDeviceInfo::operator==( const SDeviceInfo& i_other ) const
-{
- return ( (mDeviceHandle == i_other.mDeviceHandle)
- && (mDeviceType == i_other.mDeviceType)
- && (mUserFriendlyName == i_other.mUserFriendlyName)
- && (mUniqueDeviceId == i_other.mUniqueDeviceId));
-}
diff --git a/SDL_Core/src/components/TransportManager/src/SInternalDeviceInfo.cpp b/SDL_Core/src/components/TransportManager/src/SInternalDeviceInfo.cpp
deleted file mode 100644
index 4b7d8753f..000000000
--- a/SDL_Core/src/components/TransportManager/src/SInternalDeviceInfo.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * \file SInternalDeviceInfo.cpp
- * \brief Class SInternalDeviceInfo.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "SInternalDeviceInfo.hpp"
-
-NsSmartDeviceLink::NsTransportManager::SInternalDeviceInfo::SInternalDeviceInfo(void):
-mDeviceHandle(NsSmartDeviceLink::NsTransportManager::InvalidDeviceHandle),
-mUserFriendlyName(),
-mUniqueDeviceId()
-{
-}
-
-NsSmartDeviceLink::NsTransportManager::SInternalDeviceInfo::SInternalDeviceInfo(NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle, const std::string & UserFriendlyName, const std::string & UniqueDeviceId):
-mDeviceHandle(DeviceHandle),
-mUserFriendlyName(UserFriendlyName),
-mUniqueDeviceId(UniqueDeviceId)
-{
-}
diff --git a/SDL_Core/src/components/TransportManager/src/SInternalDeviceInfo.hpp b/SDL_Core/src/components/TransportManager/src/SInternalDeviceInfo.hpp
deleted file mode 100644
index ee95588be..000000000
--- a/SDL_Core/src/components/TransportManager/src/SInternalDeviceInfo.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- * \file SInternalDeviceInfo.hpp
- * \brief Class SInternalDeviceInfo header.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_SINTERNALDEVICEINFO_HPP__
-#define __TRANSPORTMANAGER_SINTERNALDEVICEINFO_HPP__
-
-#include <vector>
-
-#include "TransportManager/SDeviceInfo.hpp"
-
-namespace NsSmartDeviceLink
-{
- namespace NsTransportManager
- {
- /**
- * @brief Internal device information.
- **/
- struct SInternalDeviceInfo
- {
- /**
- * @brief Default constructor.
- **/
- SInternalDeviceInfo(void);
-
- /**
- * @brief Constructor.
- *
- * @param DeviceHandle Device handle.
- * @param UserFriendlyName User-friendly device name.
- * @param UniqueDeviceId Unique device identifier across all devices.
- **/
- SInternalDeviceInfo(tDeviceHandle DeviceHandle, const std::string & UserFriendlyName, const std::string & UniqueDeviceId);
-
- /**
- * @brief Device handle.
- **/
- tDeviceHandle mDeviceHandle;
-
- /**
- * @brief User-friendly device name.
- **/
- std::string mUserFriendlyName;
-
- /**
- * @brief Unique device identifier across all devices.
- **/
- std::string mUniqueDeviceId;
- };
-
- /**
- * @brief List of internal devices.
- **/
- typedef std::vector<SInternalDeviceInfo> tInternalDeviceList;
- }
-}
-
-#endif
diff --git a/SDL_Core/src/components/TransportManager/src/TransportManagerLoggerHelpers.hpp b/SDL_Core/src/components/TransportManager/src/TransportManagerLoggerHelpers.hpp
deleted file mode 100644
index b9578b292..000000000
--- a/SDL_Core/src/components/TransportManager/src/TransportManagerLoggerHelpers.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * \file TransportManagerLoggerHelpers.hpp
- * \brief Class TransportManagerLoggerHelpers header.
- * Copyright (c) 2013, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __TRANSPORTMANAGER_TRANSPORTMANAGERLOGGERHELPERS_HPP__
-#define __TRANSPORTMANAGER_TRANSPORTMANAGERLOGGERHELPERS_HPP__
-
-// Log helpers for logs related to Connection Handle
-#define TM_CH_LOG4CPLUS_INFO(logger, ConnectionHandle, logEvent) LOG4CPLUS_INFO(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_INFO_STR(logger, ConnectionHandle, logEvent) LOG4CPLUS_INFO_STR(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_TRACE_METHOD(logger, ConnectionHandle, logEvent) LOG4CPLUS_TRACE_METHOD(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_TRACE(logger, ConnectionHandle, logEvent) LOG4CPLUS_TRACE(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_TRACE_STR(logger, ConnectionHandle, logEvent) LOG4CPLUS_TRACE_STR(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_DEBUG(logger, ConnectionHandle, logEvent) LOG4CPLUS_DEBUG(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_DEBUG_STR(logger, ConnectionHandle, logEvent) LOG4CPLUS_DEBUG_STR(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_WARN(logger, ConnectionHandle, logEvent) LOG4CPLUS_WARN(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_WARN_STR(logger, ConnectionHandle, logEvent) LOG4CPLUS_WARN_STR(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_ERROR(logger, ConnectionHandle, logEvent) LOG4CPLUS_ERROR(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_ERROR_STR(logger, ConnectionHandle, logEvent) LOG4CPLUS_ERROR_STR(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_FATAL(logger, ConnectionHandle, logEvent) LOG4CPLUS_FATAL(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-#define TM_CH_LOG4CPLUS_FATAL_STR(logger, ConnectionHandle, logEvent) LOG4CPLUS_FATAL_STR(logger, "[ConnectionHandle: " << ConnectionHandle << "]: " << logEvent)
-
-#endif //__TRANSPORTMANAGER_TRANSPORTMANAGERLOGGERHELPERS_HPP__
diff --git a/SDL_Core/src/components/Utils/CMakeLists.txt b/SDL_Core/src/components/Utils/CMakeLists.txt
index dca9f3d2d..e456a51ff 100644
--- a/SDL_Core/src/components/Utils/CMakeLists.txt
+++ b/SDL_Core/src/components/Utils/CMakeLists.txt
@@ -1,12 +1,32 @@
include_directories (
./include
- ../../thirdPartyLibs/logger/include/
- ../../thirdPartyLibs/logger/log4cplus-1.1.0/include/
- ${CMAKE_BINARY_DIR}/src/thirdPartyLibs/logger/log4cplus-1.1.0/include
+ ../config_profile/include
+ ../media_manager/include/
+ ../protocol_handler/include/
)
set (SOURCES
- ./src/WorkWithOS.cpp
+ ./src/bitstream.cc
+ ./src/conditional_variable_posix.cc
+ ./src/file_system.cc
+ ./src/threads/posix_thread.cc
+ ./src/threads/thread_manager.cc
+ ./src/threads/thread_validator.cc
+ ./src/lock_posix.cc
+ ./src/date_time.cc
+ ./src/signals_linux.cc
)
+if (BUILD_BACKTRACE_SUPPORT)
+ list(APPEND SOURCES
+ ./src/back_trace.cc
+ )
+endif()
+
add_library("Utils" ${SOURCES})
+
+IF(${CMAKE_SYSTEM_NAME} MATCHES "QNX")
+ target_link_libraries ("Utils" log4cxx apr-1 aprutil-1)
+else()
+ target_link_libraries ("Utils" log4cxx apr-1 aprutil-1 rt)
+endif()
diff --git a/SDL_Core/src/components/Utils/include/Utils/MessageQueue.h b/SDL_Core/src/components/Utils/include/Utils/MessageQueue.h
deleted file mode 100644
index 3adb03e7f..000000000
--- a/SDL_Core/src/components/Utils/include/Utils/MessageQueue.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
-* \file MessageQueue.hpp
-* \brief Template MessageQueue class header.
-*/
-
-
-#ifndef MESSAGE_QUEUE_CLASS
-#define MESSAGE_QUEUE_CLASS
-
-
-#include <pthread.h>
-#include <queue>
-
-/**
- * \class MessageQueue
- * \brief Wrapper for multithreading queue.
-*/
-template <typename T> class MessageQueue
-{
-public:
- /**
- * \brief Default constructor
- */
- MessageQueue();
-
- /**
- * \brief Constructor
- * \param queue Existing queue.
- */
- explicit MessageQueue( std::queue<T> queue );
-
- /**
- * \brief Destructor
- */
- ~MessageQueue();
-
- /**
- * \brief Returns size of the queue.
- * \return Size of the queue.
- */
- int size() const;
-
- /**
- * \brief If queue is empty.
- * \return Is queue empty.
- */
- bool empty() const;
-
- /**
- * \brief Adds element to the queue.
- * \param element Element to be added to the queue.n
- */
- void push( const T & element );
-
- /**
- * \brief Removes element from the queue and returns it.
- * \return To element of the queue.
- */
- T pop();
-
- /**
- * \brief Conditional wait.
- */
- void wait();
-
-private:
- /**
- *\brief Queue
- */
- std::queue<T> mQueue;
- /**
- *\brief Mutex for queue locking.
- */
- mutable pthread_mutex_t mMutex;
- /**
- *\brief Condition for waiting.
- */
- pthread_cond_t mCond;
- /**
- *\brief Bool condition for waiting.
- */
- bool mIsUp;
-};
-
-template <typename T> MessageQueue<T>::MessageQueue()
-:mMutex( PTHREAD_MUTEX_INITIALIZER )
-,mCond( PTHREAD_COND_INITIALIZER )
-,mIsUp( false )
-{
- pthread_mutex_init( &mMutex, NULL );
- pthread_cond_init( &mCond, NULL );
-}
-
-template <typename T> MessageQueue<T>::MessageQueue( std::queue<T> queue )
-{
- pthread_mutex_init( &mMutex, NULL );
- pthread_cond_init( &mCond, NULL );
- pthread_mutex_lock( &mMutex );
- mQueue = std::queue<T>( queue );
- pthread_mutex_unlock( &mMutex );
-}
-
-template <typename T> MessageQueue<T>::~MessageQueue()
-{
- pthread_cond_destroy( &mCond );
- pthread_mutex_destroy( &mMutex );
-}
-
-template<typename T> void MessageQueue<T>::wait()
-{
- pthread_mutex_lock( &mMutex );
- while ( !mIsUp )
- {
- pthread_cond_wait( &mCond, &mMutex );
- }
- mIsUp = false;
- pthread_mutex_unlock( &mMutex );
-}
-
-template <typename T> int MessageQueue<T>::size() const
-{
- int result = 0;
- pthread_mutex_lock( &mMutex );
- result = mQueue.size();
- pthread_mutex_unlock( &mMutex );
- return result;
-}
-
-template <typename T> bool MessageQueue<T>::empty() const
-{
- bool result = true;
- pthread_mutex_lock( &mMutex );
- result = mQueue.empty();
- pthread_mutex_unlock( &mMutex );
- return result;
-}
-
-template <typename T> void MessageQueue<T>::push( const T & element )
-{
- pthread_mutex_lock( &mMutex );
- mQueue.push( element );
-
- pthread_cond_signal( &mCond );
- mIsUp = true;
-
- pthread_mutex_unlock( &mMutex );
-}
-
-template <typename T> T MessageQueue<T>::pop( )
-{
- pthread_mutex_lock( &mMutex );
- if ( mQueue.empty() )
- {
- //error, TRACE
- }
-
- T result = mQueue.front();
- mQueue.pop();
-
- pthread_mutex_unlock( &mMutex );
- return result;
-}
-
-#endif // MESSAGE_QUEUE_CLASS
diff --git a/SDL_Core/src/components/Utils/include/Utils/MultithreadingMap.h b/SDL_Core/src/components/Utils/include/Utils/MultithreadingMap.h
deleted file mode 100644
index 5a0f76a66..000000000
--- a/SDL_Core/src/components/Utils/include/Utils/MultithreadingMap.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef MULTITHREADED_MAP_CLASS
-#define MULTITHREADED_MAP_CLASS
-
-#include <map>
-
-template <typename T, typename K> class MultithreadingMap
-{
-public:
- MultithreadingMap();
- ~MultithreadingMap();
-
- int size() const;
-
- bool empty() const;
-
- void insert( const std::pair<const T,K> & element );
-
- K & find( const T & key );
-
-private:
- std::multimap<T,K> mMap;
-
- /**
- *\brief Mutex for queue locking.
- */
- mutable pthread_mutex_t mMutex;
-
-};
-
-template <typename T, typename K> MultithreadingMap<T,K>::MultithreadingMap() :
-mMutex( PTHREAD_MUTEX_INITIALIZER )
-{
- pthread_mutex_init( &mMutex, NULL );
-}
-
-template <typename T, typename K> MultithreadingMap<T,K>::~MultithreadingMap()
-{
- pthread_mutex_destroy( &mMutex );
-}
-
-
-
-#endif // MULTITHREADED_MAP_CLASS \ No newline at end of file
diff --git a/SDL_Core/src/components/Utils/include/Utils/WorkWithOS.h b/SDL_Core/src/components/Utils/include/Utils/WorkWithOS.h
deleted file mode 100644
index 2fbb58576..000000000
--- a/SDL_Core/src/components/Utils/include/Utils/WorkWithOS.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
-* \file WorkWithOS.h
-* \brief class source file.
-*/
-
-#ifndef WORKWITHSYSTEM_INCLUDE
-#define WORKWITHSYSTEM_INCLUDE
-
-#include <string.h>
-#include <vector>
-
-namespace WorkWithOS
-{
- unsigned long int getAvailableSpace();
- std::string createDirectory(const std::string & directoryName);
- bool checkIfDirectoryExists(const std::string & directoryName);
- bool checkIfFileExists(const std::string & fileName);
- bool createFileAndWrite(const std::string & fileName, const std::vector<unsigned char>& fileData);
- std::string getFullPath(const std::string & fileName);
- bool deleteFile(const std::string & fileName);
- std::vector<std::string> listFilesInDirectory(const std::string & directoryName);
- bool readFileAsBinary(const std::string& fileName, std::vector<unsigned char>& v);
-}
-
-#endif // WORKWITHSYSTEM_INCLUDE
diff --git a/SDL_Core/src/components/Utils/include/Utils/back_trace.h b/SDL_Core/src/components/Utils/include/Utils/back_trace.h
new file mode 100644
index 000000000..7f8912faf
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/back_trace.h
@@ -0,0 +1,75 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_BACK_TRACE_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_BACK_TRACE_H_
+
+#include <ostream>
+#include <vector>
+#include <string>
+#include "utils/threads/thread.h"
+
+namespace utils {
+
+/*
+ * Class that captures stack trace in place where it was created.
+ * Can be stored and passed for further processing
+ * ostream output operator is available for these objects so stacktrace
+ * here and now can be easily printed as
+ *
+ * std::cout<<utils::Backtrace()<<std::endl;
+ */
+class Backtrace {
+ public:
+ // Inspect stack up to 128 calls back
+ static const int32_t kDefaultDepth = 128;
+ static const int32_t kSkipTop = 0;
+ /* Capture backtrace and store. Limit captured stack length to
+ * count symbols and remove first skip_top elements from it
+ * (to avoid polluting stack trace with debugging function names)
+ */
+ Backtrace(int32_t count = kDefaultDepth, int32_t skip_top = kSkipTop);
+ ~Backtrace();
+
+ // Captured symbols in order from topmost stack frame to last captured
+ std::vector<std::string> CallStack() const;
+ threads::Thread::Id ThreadId() const;
+
+ private:
+ threads::Thread::Id thread_id_;
+ std::vector<void*> backtrace_;
+};
+
+std::ostream& operator<< (std::ostream& os, const Backtrace& bt);
+
+} // namespace utils
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_BACK_TRACE_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/bitstream.h b/SDL_Core/src/components/Utils/include/Utils/bitstream.h
new file mode 100644
index 000000000..cba15abd8
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/bitstream.h
@@ -0,0 +1,170 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_BITSTREAM_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_BITSTREAM_H_
+
+#include "stdint.h"
+
+#include <climits>
+#include <cstring>
+#include <string>
+#include <vector>
+
+#include "utils/macro.h"
+
+namespace utils {
+
+// Big endian input bitstream class
+// Tool to read and parse incoming data in a recursive way
+// Has sublte similarity to standard stream classes in a way
+// it handles stream parsing errors:
+// If error while parsing stream occurs, whole stream is marked as
+// "bad" and all subsequent parsing is stopped.
+class BitStream {
+ public:
+ BitStream(uint8_t* bytes, size_t bytes_count);
+ ~BitStream();
+
+ // Mark stream as badly-formed.
+ // Should be called by Extract* family of procedures if they decide
+ // that stream is invalid
+ void MarkBad() { bad_ = true; }
+ // Predicates to check whether there were errors while parsing
+ // Stream is good when it is created
+ bool IsGood() { return !bad_; }
+ bool IsBad() { return bad_; }
+ operator bool() { return IsGood(); }
+ private:
+ // These two functions are used for internal stream checks only
+ // Stream parser procedures must not define their logic depending on
+ // amount of data left in particular bit stream
+
+ // Amount of full bytes left in stream
+ size_t FullBytesLeft();
+ // Amount of total bits left in stream
+ size_t BitsLeft();
+
+ // These stream extractors are helpers for direct friend extractors
+ // of this class.
+
+ // Extract single value, amount of bits read from stream depends on T size
+ // If there is not enough data in the stream, stream is marked bad
+ template<typename T>
+ void Extract(T& val);
+
+ // Read single value, amount of bits read from stream is signaled by |bits|
+ // parameter. T must be wide enough to hold this amount of bits.
+ // If there is not enough data in the stream, stream is marked bad
+ template<typename T>
+ void ExtractBits(T& val, size_t bits);
+
+ // Extract |length| bytes from the stream. Stream read position
+ // must be byte aligned when it is called, stream is marked bad otherwise.
+ // If there is not enough data in the stream, it is marked bad.
+ void ExtractBytes(void* buffer, size_t length);
+
+ private:
+ const uint8_t* bytes_;
+ const size_t bytes_count_;
+ size_t byte_offset_;
+ size_t bit_offset_;
+ bool bad_;
+ private:
+ friend void Extract(BitStream*, uint8_t*);
+ friend void Extract(BitStream*, uint8_t*, size_t);
+ friend void Extract(BitStream*, uint32_t*);
+ friend void Extract(BitStream*, uint32_t*, size_t);
+ friend void Extract(BitStream*, std::string*, size_t);
+ friend void Extract(BitStream*, std::vector<uint8_t>*, size_t);
+
+};
+
+// Extract single byte from stream
+// If there is not enough data in the stream it is marked bad.
+void Extract(BitStream* bs, uint8_t* val);
+
+// Extract defined amount of |bits| from stream and store them
+// in a byte size |val|. Hence |bits| must be less than 8.
+void Extract(BitStream* bs, uint8_t* val, size_t bits);
+
+// Extract 32 bit word from stream.
+// If there is not enough data in the stream it is marked bad.
+void Extract(BitStream* bs, uint32_t* val);
+
+// Extract up to 32 |bits| from stream and store them in a |val|
+// If there is not enough data in the stream it is marked bad.
+void Extract(BitStream* bs, uint32_t* val, size_t bits);
+
+// Extract |length| bytes from stream and store them to the
+// string |str|. If stream is too short it is marked bad.
+// String must not contain zero bytes.
+void Extract(BitStream* bs, std::string* str, size_t length);
+
+// Extract |length| bytes from stream and store them to the
+// vector |data|. If stream is too short it is marked bad.
+void Extract(BitStream* bs, std::vector<uint8_t>* data, size_t length);
+
+
+// Template member definitions
+template<typename T>
+void BitStream::Extract(T& val) {
+ // Slow but simple implementation
+ // It's a space for bit stream reading optimization
+ ExtractBits(val, sizeof(val) * CHAR_BIT);
+}
+
+template<typename T>
+void BitStream::ExtractBits(T& val, size_t bits) {
+ DCHECK(sizeof(val) * CHAR_BIT >= bits);
+ if (IsGood()) {
+ if (bits > BitsLeft()) {
+ MarkBad();
+ return;
+ }
+ val = T(); // Clear value
+ for (size_t i = 0; i < bits; ++i) {
+ size_t next_bit_number = CHAR_BIT - 1 - bit_offset_;
+ uint8_t nextbit = (bytes_[byte_offset_] >> next_bit_number) & 1;
+ val = (val << 1) | nextbit;
+ ++bit_offset_;
+ if (bit_offset_ == CHAR_BIT) {
+ ++byte_offset_;
+ bit_offset_ = 0;
+ }
+ }
+ }
+}
+
+} // namespace utils
+
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_BITSTREAM_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/conditional_variable.h b/SDL_Core/src/components/Utils/include/Utils/conditional_variable.h
new file mode 100644
index 000000000..433f8d7c0
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/conditional_variable.h
@@ -0,0 +1,94 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_CONDITIONAL_VARIABLE_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_CONDITIONAL_VARIABLE_H_
+
+#if defined(OS_POSIX)
+#include <pthread.h>
+#else
+#error Please implement conditional variable for your OS
+#endif
+#include <stdint.h>
+
+#include "utils/macro.h"
+
+namespace sync_primitives {
+class AutoLock;
+
+namespace impl {
+#if defined(OS_POSIX)
+typedef pthread_cond_t PlatformConditionalVariable;
+#endif
+} // namespace impl
+
+/*
+ * Conditional variable wrapper
+ * Conditional variable is a thing that can be waited on
+ * Wait is finished when other thread puts that thing in a signaled state
+ * (or when timeout is over).
+ * Data that is conditionally accessed should be protected by
+ * a Lock and that lock must be taken before starting to Wait.
+ * When wait is performed, Lock is temporarly released.
+ * When wait is finished, Lock is captured back.
+ * WARNING: Beware of Spurious wakeups
+ * http://en.wikipedia.org/wiki/Spurious_wakeup
+ * Thread can wake up from wait spuriously, without conditional
+ * variable being actually set by other thread. This means
+ * additional check should be made right after thread awakening
+ * and if check fails thread should continue waiting.
+ *
+ * while(!DataReady()) cond_var.Wait(auto_lock);
+ *
+ */
+class ConditionalVariable {
+ public:
+ enum WaitStatus { kNoTimeout, kTimeout };
+ ConditionalVariable();
+ ~ConditionalVariable();
+ // Wakes up single thread that is waiting on this conditional variable
+ void NotifyOne();
+ // Wakes up all waiting threads
+ void Broadcast();
+
+ // Wait forever or up to milliseconds time limit
+ void Wait(AutoLock& auto_lock);
+ WaitStatus WaitFor(AutoLock& auto_lock, int32_t milliseconds );
+ private:
+ impl::PlatformConditionalVariable cond_var_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ConditionalVariable);
+};
+
+} // namespace sync_primitives
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_CONDITIONAL_VARIABLE_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/date_time.h b/SDL_Core/src/components/Utils/include/Utils/date_time.h
new file mode 100644
index 000000000..df2d067ac
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/date_time.h
@@ -0,0 +1,56 @@
+/**
+* \file request_watchdog.h
+* \brief DateTime class header file.
+*
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_DATE_TIME_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_DATE_TIME_H_
+
+#if defined(OS_POSIX)
+#include <sys/time.h>
+typedef struct timeval TimevalStruct;
+#endif
+
+namespace date_time {
+
+class DateTime {
+ public:
+ static const int32_t MILLISECONDS_IN_SECOND = 1000;
+ static const int32_t MICROSECONDS_IN_MILLISECONDS = 1000;
+
+ static TimevalStruct getCurrentTime();
+ static int32_t calculateTimeSpan(TimevalStruct sinceTime);
+};
+
+} // namespace date_time
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_DATE_TIME_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/dict.h b/SDL_Core/src/components/Utils/include/Utils/dict.h
new file mode 100644
index 000000000..bb60390d1
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/dict.h
@@ -0,0 +1,225 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_H_
+
+#include <map>
+
+namespace utils {
+
+template<typename Key, typename Record>
+class Dictionary {
+ private:
+ typedef std::map<Key, Record> ItemContainer;
+ typedef std::map<Key, Dictionary> SubitemContainer;
+
+ public:
+/**
+ * @brief Typedef for subitems iterator
+ */
+ typedef typename SubitemContainer::iterator iterator;
+/**
+ * @brief Typedef for subitems const iterator
+ */
+ typedef typename SubitemContainer::const_iterator const_iterator;
+
+/**
+ * @brief Typedef for items iterator
+ */
+ typedef typename ItemContainer::iterator rec_iterator;
+/**
+ * @brief Typedef for items const iterator
+ */
+ typedef typename ItemContainer::const_iterator rec_const_iterator;
+
+/**
+ * @brief add an item to the dictionary
+ * @param key - item key
+ * @param record - item value
+ */
+ void AddItem(const Key& key, const Record& record);
+/**
+ * @brief add a subitem to the dictionary
+ * @param key - subitem key
+ * @param subitem - subitem dictionary
+ */
+ void AddSubitem(const Key& key, const Dictionary& subitem);
+/**
+ * @brief item under specified key
+ * @param key - item key
+ * @return item with specified key of default-constructed item
+ */
+ Record& ItemAt(const Key& key);
+/**
+ * @brief item under specified key
+ * @param key - item key
+ * @return item with specified key of default-constructed item
+ */
+ const Record& ItemAt(const Key& key) const;
+/**
+ * @brief subitem under specified key
+ * @param key - subitem key
+ * @return subitem with specified key of default-constructed dictionary
+ */
+ Dictionary& SubitemAt(const Key& key);
+/**
+ * @brief subitem under specified key
+ * @param key - subitem key
+ * @return subitem with specified key of default-constructed dictionary
+ */
+ const Dictionary& SubitemAt(const Key& key) const;
+/**
+ * @brief first subitem
+ * @return iterator pointing to the first subitem
+ */
+ iterator begin();
+
+/**
+ * @brief first subitem
+ * @return const iterator pointing to the first subitem
+ */
+ const_iterator begin() const;
+
+/**
+ * @brief first item
+ * @return iterator pointing to the first item
+ */
+ rec_iterator rec_begin();
+
+/**
+ * @brief first item
+ * @return iterator pointing to the first item
+ */
+ rec_const_iterator rec_begin() const;
+
+/**
+ * @brief end of subitem list
+ * @return iterator pointing to the end of subitem list
+ */
+ iterator end();
+/**
+ * @brief end of subitem list
+ * @return const iterator pointing to the end of subitem list
+ */
+ const_iterator end() const;
+
+ /**
+ * @brief end of item list
+ * @return iterator pointing to the end of item list
+ */
+ rec_iterator rec_end();
+
+ /**
+ * @brief end of item list
+ * @return const iterator pointing to the end of item list
+ */
+ rec_const_iterator rec_end() const;
+
+private:
+ ItemContainer items_;
+ SubitemContainer subitems_;
+};
+
+template<typename Key, typename Record>
+void Dictionary<Key, Record>::AddItem(const Key& key, const Record& record) {
+ items_.insert(std::make_pair(key, record));
+}
+
+template<typename Key, typename Record>
+void Dictionary<Key, Record>::AddSubitem(const Key& key, const Dictionary& subitem) {
+ subitems_.insert(std::make_pair(key, subitem));
+}
+
+template<typename Key, typename Record>
+Record& Dictionary<Key, Record>::ItemAt(const Key& key) {
+ return items_.at(key);
+}
+
+template<typename Key, typename Record>
+const Record& Dictionary<Key, Record>::ItemAt(const Key& key) const {
+ return items_.at(key);
+}
+
+template<typename Key, typename Record>
+Dictionary<Key, Record>& Dictionary<Key, Record>::SubitemAt(const Key& key) {
+ return subitems_.at(key);
+}
+
+template<typename Key, typename Record>
+const Dictionary<Key, Record>& Dictionary<Key, Record>::SubitemAt(const Key& key) const {
+ return subitems_.at(key);
+}
+
+template<typename Key, typename Record>
+typename Dictionary<Key, Record>::iterator Dictionary<Key, Record>::begin() {
+ return subitems_.begin();
+}
+
+template<typename Key, typename Record>
+typename Dictionary<Key, Record>::const_iterator Dictionary<Key, Record>::begin() const {
+ return subitems_.begin();
+}
+
+template<typename Key, typename Record>
+typename Dictionary<Key, Record>::rec_iterator Dictionary<Key, Record>::rec_begin() {
+ return items_.begin();
+}
+
+template<typename Key, typename Record>
+typename Dictionary<Key, Record>::rec_const_iterator Dictionary<Key, Record>::rec_begin() const {
+ return items_.begin();
+}
+
+template<typename Key, typename Record>
+typename Dictionary<Key, Record>::iterator Dictionary<Key, Record>::end() {
+ return subitems_.end();
+}
+
+template<typename Key, typename Record>
+typename Dictionary<Key, Record>::const_iterator Dictionary<Key, Record>::end() const {
+ return subitems_.end();
+}
+
+template<typename Key, typename Record>
+typename Dictionary<Key, Record>::rec_iterator Dictionary<Key, Record>::rec_end() {
+ return items_.end();
+}
+
+template<typename Key, typename Record>
+typename Dictionary<Key, Record>::rec_const_iterator Dictionary<Key, Record>::rec_end() const {
+ return items_.end();
+}
+
+} // namespace utils
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/file_system.h b/SDL_Core/src/components/Utils/include/Utils/file_system.h
new file mode 100644
index 000000000..c40c15f39
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/file_system.h
@@ -0,0 +1,207 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_FILE_SYSTEM_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_FILE_SYSTEM_H_
+
+#include <string.h>
+#include <stdint.h>
+#include <string>
+#include <vector>
+#include <iostream>
+#include "utils/logger.h"
+
+namespace file_system {
+
+
+/**
+ * @brief Get available disc space.
+ *
+ * @return free disc space.
+ */
+uint64_t GetAvailableDiskSpace();
+
+/*
+ * @brief Get size of current directory
+ *
+ * @param path to directory
+ */
+uint32_t DirectorySize(const std::string& path);
+
+/*
+ * @brief Get size of current file
+ *
+ * @param path to file
+ * @return size of file, return 0 if file not exist
+ */
+uint32_t FileSize(const std::string& path);
+
+
+/**
+ * @brief Get available app space
+ * @param name of app
+ * @return free app space.
+ */
+uint32_t GetAvailableSpaceForApp(const std::string& name);
+
+/**
+ * @brief Creates directory
+ * @param name path to directory
+ * @return path to created directory.
+ */
+std::string CreateDirectory(const std::string& name);
+
+/**
+ * @brief Checks the file to see whether the file is a directory
+ * @param name path to file
+ * @return returns true if file is directory.
+ */
+bool IsDirectory(const std::string& name);
+
+/**
+ * @brief Is directory exist
+ * @param name path to directory
+ * @return returns true if directory is exists.
+ */
+bool DirectoryExists(const std::string& name);
+
+/**
+ * @brief Is file exist
+ * @param name path to file
+ * @return returns true if file is exists.
+ */
+bool FileExists(const std::string& name);
+
+/**
+ * @brief Writes to file
+ *
+ * @remark - create file if it doesn't exist
+ * @param name path to file
+ * @param data data to write
+ * @return returns true if the operation is successfully.
+ */
+bool Write(const std::string& file_name,
+ const std::vector<uint8_t>& data,
+ std::ios_base::openmode mode = std::ios_base::out);
+
+/**
+ * @brief Opens file stream for writing
+ * @param file_name path to file to write data to
+ * @return returns pointer to opened stream in case of success;
+ * otherwise returns NULL
+ */
+std::ofstream* Open(const std::string& file_name,
+ std::ios_base::openmode mode = std::ios_base::out);
+
+/**
+ * @brief Writes to file stream
+ * @param file_stream file stream to be written to
+ * @param data data to be written to file
+ * @param data_size size of data to be written to file
+ * @return returns true if the operation is successfully.
+ */
+bool Write(std::ofstream* const file_stream,
+ const uint8_t* data,
+ uint32_t data_size);
+
+/**
+ * @brief Closes file stream
+ * @param file_stream file stream to be closed
+ */
+void Close(std::ofstream* file_stream);
+
+/**
+ * @brief Returns full file path
+ *
+ * @param name file name
+ * @return returns full file path.
+ */
+std::string FullPath(const std::string& name);
+
+/**
+ * @brief Removes file
+ *
+ * @param name path to file
+ * @return returns true if the file is successfully deleted.
+ */
+bool DeleteFile(const std::string& name);
+
+/**
+ * @brief Removes directory.
+ *
+ * @param name path to directory.
+ * @param is_recursively true if you need delete directory recursively, otherwise false.
+ * @return returns true if the directory is successfully deleted.
+ */
+bool RemoveDirectory(const std::string& directory_name,
+ bool is_recursively = true);
+
+/**
+ * @brief Check access rights
+ *
+ * @param name path to file.
+ * @param how Read/write attribute.
+ * @return returns true if file has the given mode.
+ */
+bool IsAccessible(const std::string& name, int32_t how);
+
+/**
+ * @brief Lists all files in given directory
+ *
+ * @param name path to directory.
+ * @return returns list of files.
+ */
+std::vector<std::string> ListFiles(const std::string& directory_name);
+
+/**
+ * @brief Reads from file
+ *
+ * @param name path to file
+ * @param result read data
+ * @return returns true if the operation is successfully.
+ */
+bool ReadBinaryFile(const std::string& name,
+ std::vector<uint8_t>& result);
+
+bool ReadFile(const std::string& name, std::string& result);
+
+/**
+ * @brief Convert special symbols in system path to percent-encoded
+ *
+ * @param name path to file
+ * @return returns converted path.
+*/
+const std::string ConvertPathForURL(const std::string& path);
+
+} // namespace file_system
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_FILE_SYSTEM_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/lock.h b/SDL_Core/src/components/Utils/include/Utils/lock.h
new file mode 100644
index 000000000..2aaddbbc6
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/lock.h
@@ -0,0 +1,132 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_LOCK_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_LOCK_H_
+
+#if defined(OS_POSIX)
+#include <pthread.h>
+#else
+#error Please implement lock for your OS
+#endif
+
+#include "utils/macro.h"
+
+namespace sync_primitives {
+
+namespace impl {
+#if defined(OS_POSIX)
+typedef pthread_mutex_t PlatformMutex;
+#endif
+} // namespace impl
+
+/* Platform-indepenednt NON-RECURSIVE lock (mutex) wrapper
+ Please use AutoLock to ackquire and (automatically) release it
+ It eases balancing of multple lock taking/releasing and makes it
+ Impossible to forget to release the lock:
+ ...
+ ConcurentlyAccessedData data_;
+ sync_primitives::Lock data_lock_;
+ ...
+ {
+ sync_primitives::AutoLock auto_lock(data_lock_);
+ data_.ReadOrWriteData();
+ } // lock is automatically released here
+*/
+class Lock {
+ public:
+ Lock();
+ ~Lock();
+
+ // Ackquire the lock. Must be called only once on a thread.
+ // Please consider using AutoLock to capture it.
+ void Ackquire();
+ // Release the lock. Must be called only once on a thread after lock.
+ // was acquired. Please consider using AutoLock to automatically release
+ // the lock
+ void Release();
+ // Try if lock can be captured and lock it if it was possible.
+ // If it captured, lock must be manually released calling to Release
+ // when protected resource access was finished.
+ // @returns wether lock was captured.
+ bool Try();
+
+ private:
+ impl::PlatformMutex mutex_;
+
+#ifndef NDEBUG
+ // Basic debugging aid, a flag that signals wether this lock is currently taken
+ // Allows detection of abandoned and recursively captured mutexes
+ bool lock_taken_;
+ void AssertFreeAndMarkTaken();
+ void AssertTakenAndMarkFree();
+#else
+ void AssertFreeAndMarkTaken() {}
+ void AssertTakenAndMarkFree() {}
+#endif
+
+ private:
+ friend class ConditionalVariable;
+ DISALLOW_COPY_AND_ASSIGN(Lock);
+};
+
+// This class is used to automatically acquire and release the a lock
+class AutoLock {
+ public:
+ explicit AutoLock(Lock& lock)
+ : lock_(lock) { lock_.Ackquire(); }
+ ~AutoLock() { lock_.Release(); }
+ private:
+ Lock& GetLock(){ return lock_; }
+ Lock& lock_;
+
+ private:
+ friend class AutoUnlock;
+ friend class ConditionalVariable;
+ DISALLOW_COPY_AND_ASSIGN(AutoLock);
+};
+
+// This class is used to temporarly unlock autolocked lock
+class AutoUnlock {
+ public:
+ explicit AutoUnlock(AutoLock& lock)
+ : lock_(lock.GetLock()) { lock_.Release(); }
+ ~AutoUnlock() { lock_.Ackquire(); }
+ private:
+ Lock& lock_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AutoUnlock);
+};
+
+} // sync_primitives
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_LOCK_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/logger.h b/SDL_Core/src/components/Utils/include/Utils/logger.h
new file mode 100644
index 000000000..a88c6aa16
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/logger.h
@@ -0,0 +1,72 @@
+/**
+ * \file LOG4CXXLogger.hpp
+ * \brief Definitions required by logger.
+ * Stores device information
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef LOG4CXXLOGGER_HPP_
+ #include <errno.h>
+ #include <string.h>
+ #include <log4cxx/logger.h>
+ #include <log4cxx/propertyconfigurator.h>
+
+namespace log4cxx
+{
+ #define LOG4CXX_INFO_EXT(logger, logEvent) LOG4CXX_INFO(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+ #define LOG4CXX_INFO_STR_EXT(logger, logEvent) LOG4CXX_INFO_STR(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+
+ #define LOG4CXX_TRACE_EXT(logger, logEvent) LOG4CXX_TRACE(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+ #define LOG4CXX_TRACE_STR_EXT(logger, logEvent) LOG4CXX_TRACE_STR(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+
+ #define LOG4CXX_DEBUG_EXT(logger, logEvent) LOG4CXX_DEBUG(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+ #define LOG4CXX_DEBUG_STR_EXT(logger, logEvent) LOG4CXX_DEBUG_STR(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+
+ #define LOG4CXX_WARN_EXT(logger, logEvent) LOG4CXX_WARN(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+ #define LOG4CXX_WARN_STR_EXT(logger, logEvent) LOG4CXX_WARN_STR(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+
+ #define LOG4CXX_ERROR_EXT(logger, logEvent) LOG4CXX_ERROR(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+ #define LOG4CXX_ERROR_STR_EXT(logger, logEvent) LOG4CXX_ERROR_STR(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+
+ #define LOG4CXX_FATAL_EXT(logger, logEvent) LOG4CXX_FATAL(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+ #define LOG4CXX_FATAL_STR_EXT(logger, logEvent) LOG4CXX_FATAL_STR(logger, __PRETTY_FUNCTION__ << ": " << logEvent)
+
+ #define LOG4CXX_TRACE_ENTER(logger) LOG4CXX_TRACE(logger, "ENTER: " << __PRETTY_FUNCTION__ )
+ #define LOG4CXX_TRACE_EXIT(logger) LOG4CXX_TRACE(logger, "EXIT: " << __PRETTY_FUNCTION__ )
+
+ #define LOG4CXX_ERROR_WITH_ERRNO(logger, message) LOG4CXX_ERROR(logger, message << ", error code " << errno << " (" << strerror(errno) << ")")
+}
+
+#define LOG4CXXLOGGER_HPP_
+
+
+#endif /* LOG4CXXLOGGER_HPP_ */
diff --git a/SDL_Core/src/components/Utils/include/Utils/macro.h b/SDL_Core/src/components/Utils/include/Utils/macro.h
new file mode 100644
index 000000000..738f5f4eb
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/macro.h
@@ -0,0 +1,77 @@
+//
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_MACRO_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_MACRO_H_
+
+#include <assert.h>
+#include <stdio.h>
+
+// A macro to disallow the copy constructor and operator= functions
+// This should be used in the private: declarations for a class
+#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
+ TypeName(const TypeName&); \
+ void operator=(const TypeName&)
+
+// A macro to allow utils::Singleton call derivative constructor and destructor
+#define FRIEND_BASE_SINGLETON_CLASS(TypeName) \
+ friend class utils::Singleton<TypeName>
+
+// A macro to allow utils::deleters::Deleter::~Deleter() call class destructor
+#define FRIEND_DELETER_DESTRUCTOR(TypeName) \
+ friend utils::deleters::Deleter<TypeName>::~Deleter()
+
+#define DCHECK(condition) \
+ if (!(condition)) { \
+ printf("\nDCHECK [%s:%d][%s]", __FILE__, __LINE__, __FUNCTION__); \
+ printf("[Check failed: " #condition); \
+ printf("]\n\n"); \
+ assert(false); \
+ }
+
+#define NOTREACHED() DCHECK(false)
+
+// Allows to perform static check that virtual function from base class is
+// actually being overriden if compiler support is available
+#if __cplusplus >= 201103L
+#define OVERRIDE override
+#else
+#define OVERRIDE
+#endif
+
+/*
+* @brief Calculate size of na array
+* @param arr array, which size need to calculate
+*/
+#define ARRAYSIZE(arr) sizeof (arr) / sizeof(*arr)
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_MACRO_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/memory_barrier.h b/SDL_Core/src/components/Utils/include/Utils/memory_barrier.h
new file mode 100644
index 000000000..9ac935a21
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/memory_barrier.h
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_MEMORY_BARRIER_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_MEMORY_BARRIER_H_
+
+#ifdef __QNXNTO__
+#include <sys/cpuinline.h>
+#endif
+
+namespace utils {
+
+inline void memory_barrier() {
+#if defined(__QNXNTO__)
+ __cpu_membarrier();
+#elif defined(__GNUG__)
+ __sync_synchronize();
+#else
+#warning "memory_barrier() implementation does nothing"
+#endif
+}
+
+} // namespace utils
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_MEMORY_BARRIER_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/message_queue.h b/SDL_Core/src/components/Utils/include/Utils/message_queue.h
new file mode 100644
index 000000000..e043440d6
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/message_queue.h
@@ -0,0 +1,181 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef MESSAGE_QUEUE_CLASS
+#define MESSAGE_QUEUE_CLASS
+
+#include <queue>
+
+#include "utils/conditional_variable.h"
+#include "utils/lock.h"
+#include "utils/logger.h"
+#include "utils/prioritized_queue.h"
+
+/**
+ * \class MessageQueue
+ * \brief Wrapper for multithreading queue.
+ */
+
+template<typename T, class Q = std::queue<T> > class MessageQueue {
+ public:
+ typedef Q Queue;
+ /**
+ * \brief Default constructor
+ */
+ MessageQueue();
+
+ /**
+ * \brief Destructor
+ */
+ ~MessageQueue();
+
+ /**
+ * \brief Returns size of the queue.
+ * \return Size of the queue.
+ */
+ int32_t size() const;
+
+ /**
+ * \brief If queue is empty.
+ * \return Is queue empty.
+ */
+ bool empty() const;
+
+ /**
+ * \brief Tells if queue is being shut down
+ */
+ bool IsShuttingDown() const;
+
+ /**
+ * \brief Adds element to the queue.
+ * \param element Element to be added to the queue.n
+ */
+ void push(const T& element);
+
+ /**
+ * \brief Removes element from the queue and returns it.
+ * \return To element of the queue.
+ */
+ T pop();
+
+ /**
+ * \brief Conditional wait.
+ */
+ void wait();
+
+ /**
+ * \brief Shutdown the queue.
+ * This leads to waking up everyone waiting on the queue
+ * Queue being shut down can be drained ( with pop() )
+ * But nothing must be added to the queue after it began
+ * shutting down
+ */
+ void Shutdown();
+ private:
+
+ /**
+ *\brief Queue
+ */
+ Queue queue_;
+ volatile bool shutting_down_;
+ /**
+ *\brief Platform specific syncronisation variable
+ */
+ mutable sync_primitives::Lock queue_lock_;
+ mutable sync_primitives::ConditionalVariable queue_new_items_;
+};
+
+template<typename T, class Q> MessageQueue<T, Q>::MessageQueue()
+ : shutting_down_(false) {
+}
+
+template<typename T, class Q> MessageQueue<T, Q>::~MessageQueue() {
+ if (!queue_.empty()) {
+ log4cxx::LoggerPtr logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("Utils"));
+ LOG4CXX_ERROR(logger, "Destruction of non-drained queue");
+ }
+}
+
+template<typename T, class Q> void MessageQueue<T, Q>::wait() {
+ sync_primitives::AutoLock auto_lock(queue_lock_);
+ while (!shutting_down_ && queue_.empty()) {
+ queue_new_items_.Wait(auto_lock);
+ }
+}
+
+template<typename T, class Q> int32_t MessageQueue<T, Q>::size() const {
+ sync_primitives::AutoLock auto_lock(queue_lock_);
+ return queue_.size();
+}
+
+template<typename T, class Q> bool MessageQueue<T, Q>::empty() const {
+ sync_primitives::AutoLock auto_lock(queue_lock_);
+ return queue_.empty();
+}
+
+template<typename T, class Q> bool MessageQueue<T, Q>::IsShuttingDown() const {
+ sync_primitives::AutoLock auto_lock(queue_lock_);
+ return shutting_down_;
+}
+
+template<typename T, class Q> void MessageQueue<T, Q>::push(const T& element) {
+ sync_primitives::AutoLock auto_lock(queue_lock_);
+ if (shutting_down_) {
+ log4cxx::LoggerPtr logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("Utils"));
+ LOG4CXX_ERROR(logger, "Runtime error, pushing into queue"
+ " that is being shut down");
+ }
+ queue_.push(element);
+ queue_new_items_.Broadcast();
+}
+
+template<typename T, class Q> T MessageQueue<T, Q>::pop() {
+ sync_primitives::AutoLock auto_lock(queue_lock_);
+ if (queue_.empty()) {
+ log4cxx::LoggerPtr logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("Utils"));
+ LOG4CXX_ERROR(logger, "Runtime error, popping out of empty que");
+ }
+ T result = queue_.front();
+ queue_.pop();
+ return result;
+}
+
+template<typename T, class Q> void MessageQueue<T, Q>::Shutdown() {
+ sync_primitives::AutoLock auto_lock(queue_lock_);
+ shutting_down_ = true;
+ queue_new_items_.Broadcast();
+}
+
+#endif // MESSAGE_QUEUE_CLASS
diff --git a/SDL_Core/src/components/Utils/include/Utils/prioritized_queue.h b/SDL_Core/src/components/Utils/include/Utils/prioritized_queue.h
new file mode 100644
index 000000000..0023c2bdb
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/prioritized_queue.h
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_PRIORITIZED_QUEUE_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_PRIORITIZED_QUEUE_H_
+
+#include <queue>
+#include <map>
+#include <iostream>
+
+#include "utils/macro.h"
+
+namespace utils {
+
+/*
+ * Template queue class that gives out messages respecting their priority
+ * Message class must have size_t PriorityOrder() method implemented
+ */
+template < typename M >
+class PrioritizedQueue {
+ public:
+ typedef M value_type;
+ // std::map guarantees it's contents is sorted by key
+ typedef std::map<size_t, std::queue<value_type> > QueuesMap;
+ PrioritizedQueue()
+ : total_size_(0) {
+ }
+ // All api mimics usual std queue interface
+ void push(const value_type& message) {
+ size_t message_priority = message.PriorityOrder();
+ queues_[message_priority].push(message);
+ ++total_size_;
+ }
+ size_t size() const {
+ return total_size_;
+ }
+ bool empty() const {
+ return queues_.empty();
+ }
+ value_type front() {
+ DCHECK(!queues_.empty() && !queues_.rbegin()->second.empty());
+ return queues_.rbegin()->second.front();
+ }
+ void pop() {
+ DCHECK(!queues_.empty() && !queues_.rbegin()->second.empty());
+ typename QueuesMap::iterator last = --queues_.end();
+ last->second.pop();
+ --total_size_;
+ if (last->second.empty()) {
+ queues_.erase(last);
+ }
+ }
+ private:
+ QueuesMap queues_;
+ size_t total_size_;
+};
+
+}
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_
diff --git a/SDL_Core/src/components/Utils/include/Utils/shared_ptr.h b/SDL_Core/src/components/Utils/include/Utils/shared_ptr.h
new file mode 100644
index 000000000..0e06d62c6
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/shared_ptr.h
@@ -0,0 +1,342 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_SHARED_PTR_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_SHARED_PTR_H_
+
+#include <assert.h>
+#include <stddef.h>
+#include <stdint.h>
+
+#include "macro.h"
+#include "atomic.h"
+
+namespace utils {
+/**
+ * @brief Shared pointer.
+ *
+ * Pointer to an object with reference counting.
+ * Object will be automatically deallocated when last shared
+ * pointer is destroyed.
+ *
+ * @tparam ObjectType Type of wrapped object.
+ **/
+template<typename ObjectType>
+class SharedPtr {
+ public:
+ /**
+ * @brief Constructor.
+ *
+ * Initialize shared pointer with wrapped object.
+ * Reference counter will be initialized to 1.
+ *
+ * @param Object Wrapped object.
+ **/
+ SharedPtr(ObjectType* Object);
+
+ SharedPtr();
+
+ /**
+ * @brief Copy constructor.
+ *
+ * Initialize shared pointer with another shared pointer.
+ * Reference counter will be incremented.
+ *
+ * @param Other Other shared pointer.
+ **/
+ SharedPtr(const SharedPtr<ObjectType>& Other);
+
+ /**
+ * @brief Copy constructor.
+ *
+ * Initialize shared pointer with another shared pointer.
+ * Reference counter will be incremented.
+ *
+ * @tparam OtherObjectType Type of other object pointer. This
+ * allows creating a shared pointer to an
+ * intstance of a base class from a shared
+ * pointer to an instance of a class
+ * inherited from this base class.
+ * If OtherObjectType is not implicitly
+ * convertible to ObjectType it will
+ * cause a compile error.
+ *
+ * @param Other Other shared pointer.
+ **/
+ template<typename OtherObjectType>
+ SharedPtr(const SharedPtr<OtherObjectType>& Other);
+
+ /**
+ * @brief Destructor.
+ *
+ * Decrement reference counter and destroy wrapped object
+ * if reference counter reaches zero.
+ **/
+ ~SharedPtr(void);
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Drop reference to currently referenced object and add
+ * reference to assigned object.
+ *
+ * @param Other Shared pointer to an object
+ * that must be referenced.
+ *
+ * @return Reference to this shared pointer.
+ **/
+ SharedPtr<ObjectType>& operator =(const SharedPtr<ObjectType>& Other);
+
+ bool operator ==(const SharedPtr<ObjectType>& Other) const;
+
+ bool operator< (const SharedPtr<ObjectType>& other) const;
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Drop reference to currently referenced object and add
+ * reference to assigned object.
+ *
+ * @tparam OtherObjectType Type of other object pointer. This
+ * allows creating a shared pointer to an
+ * intstance of a base class from a shared
+ * pointer to an instance of a class
+ * inherited from this base class.
+ * If OtherObjectType is not implicitly
+ * convertible to ObjectType it will
+ * cause a compile error.
+ *
+ * @param Other Shared pointer to an object
+ * that must be referenced.
+ *
+ * @return Reference to this shared pointer.
+ **/
+ template<typename OtherObjectType>
+ SharedPtr<ObjectType>& operator =(const SharedPtr<OtherObjectType>& Other);
+
+ template<typename OtherObjectType>
+ static SharedPtr<OtherObjectType> static_pointer_cast(
+ const SharedPtr<ObjectType>& pointer);
+
+ /**
+ * @brief Member access operator.
+ *
+ * @return Wrapped object.
+ **/
+ ObjectType* operator->(void) const;
+
+ ObjectType& operator*() const;
+ operator bool() const;
+ void reset();
+ void reset(ObjectType* other);
+ ObjectType* get() const;
+
+ /**
+ * @return true if mObject not NULL
+ */
+ bool valid() const;
+
+ private:
+ void reset_impl(ObjectType* other);
+
+ // TSharedPtr needs access to other TSharedPtr private members
+ // for shared pointers type casts.
+ template<typename OtherObjectType>
+ friend class SharedPtr;
+
+ /**
+ * @brief Drop reference to wrapped object.
+ *
+ * If reference counter reaches zero object and its reference
+ * counter will be deallocated.
+ **/
+ void dropReference(void);
+
+ /**
+ * @brief Wrapped object.
+ **/
+ ObjectType* mObject;
+
+ /**
+ * @brief Pointer to reference counter.
+ **/
+ uint32_t* mReferenceCounter;
+};
+
+template<typename ObjectType>
+inline utils::SharedPtr<ObjectType>::SharedPtr(ObjectType* Object)
+ : mObject(NULL),
+ mReferenceCounter(new uint32_t(1)) {
+ DCHECK(Object != NULL);
+ mObject = Object;
+}
+
+template<typename ObjectType>
+inline utils::SharedPtr<ObjectType>::SharedPtr()
+ : mObject(0),
+ mReferenceCounter(0) {
+}
+
+template<typename ObjectType>
+inline utils::SharedPtr<ObjectType>::SharedPtr(
+ const SharedPtr<ObjectType>& Other)
+ : mObject(0),
+ mReferenceCounter(0) {
+ *this = Other;
+}
+
+template<typename ObjectType>
+template<typename OtherObjectType>
+inline utils::SharedPtr<ObjectType>::SharedPtr(
+ const SharedPtr<OtherObjectType>& Other)
+ : mObject(0),
+ mReferenceCounter(0) {
+ *this = Other;
+}
+
+template<typename ObjectType>
+inline utils::SharedPtr<ObjectType>::~SharedPtr(void) {
+ dropReference();
+}
+
+template<typename ObjectType>
+inline utils::SharedPtr<ObjectType>&
+utils::SharedPtr<ObjectType>::operator=(const SharedPtr<ObjectType>& Other) {
+ return operator=<ObjectType>(Other);
+}
+
+template<typename ObjectType>
+inline bool utils::SharedPtr<ObjectType>::operator ==(
+ const SharedPtr<ObjectType>& Other) const {
+ return (mObject == Other.mObject);
+}
+
+template<typename ObjectType>
+inline bool utils::SharedPtr<ObjectType>::operator< (
+ const SharedPtr<ObjectType>& other) const {
+ return (mObject < other.mObject);
+}
+
+template<typename ObjectType>
+template<typename OtherObjectType>
+inline utils::SharedPtr<ObjectType>&
+utils::SharedPtr<ObjectType>::operator=(
+ const SharedPtr<OtherObjectType>& Other) {
+ dropReference();
+
+ mObject = Other.mObject;
+ mReferenceCounter = Other.mReferenceCounter;
+
+ if (0 != mReferenceCounter) {
+ atomic_post_inc(mReferenceCounter);
+ }
+
+ return *this;
+}
+
+template<typename ObjectType>
+template<typename OtherObjectType>
+utils::SharedPtr<OtherObjectType> utils::SharedPtr<ObjectType>::static_pointer_cast(const SharedPtr<ObjectType>& pointer) {
+ SharedPtr<OtherObjectType> casted_pointer;
+ casted_pointer.mObject = static_cast<OtherObjectType*>(pointer.mObject);
+ casted_pointer.mReferenceCounter = pointer.mReferenceCounter;
+
+ if (0 != casted_pointer.mReferenceCounter) {
+ atomic_post_inc(casted_pointer.mReferenceCounter);
+ }
+
+ return casted_pointer;
+}
+
+template<typename ObjectType> ObjectType*
+utils::SharedPtr<ObjectType>::operator->(void) const {
+ return mObject;
+}
+
+template<typename ObjectType> ObjectType&
+utils::SharedPtr<ObjectType>::operator*() const {
+ DCHECK(mObject);
+ return *mObject;
+}
+
+template<typename ObjectType>
+utils::SharedPtr<ObjectType>::operator bool() const {
+ return 0 != mObject;
+}
+
+template<typename ObjectType> void
+utils::SharedPtr<ObjectType>::reset() {
+ reset_impl(0);
+}
+
+template<typename ObjectType> void
+utils::SharedPtr<ObjectType>::reset(ObjectType* other) {
+ DCHECK(other != NULL);
+ reset_impl(other);
+}
+
+template<typename ObjectType> void
+utils::SharedPtr<ObjectType>::reset_impl(ObjectType* other) {
+ dropReference();
+ mObject = other;
+ mReferenceCounter = new uint32_t(1);
+}
+
+template<typename ObjectType>
+inline void SharedPtr<ObjectType>::dropReference(void) {
+ if (0 != mReferenceCounter) {
+ if (1 == atomic_post_dec(mReferenceCounter)) {
+
+ delete mObject;
+ mObject = 0;
+
+ delete mReferenceCounter;
+ mReferenceCounter = 0;
+ }
+ }
+}
+
+template<typename ObjectType>
+ObjectType* SharedPtr<ObjectType>::get() const {
+ return mObject;
+}
+
+template<typename ObjectType>
+inline bool SharedPtr<ObjectType>::valid() const {
+ return (mObject != NULL);
+}
+
+} // namespace utils
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_SHARED_PTR_H_
+
+// vim: set ts=2 sw=2 et:
diff --git a/SDL_Core/src/components/Utils/include/Utils/signals.h b/SDL_Core/src/components/Utils/include/Utils/signals.h
new file mode 100644
index 000000000..ad2a2d183
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/signals.h
@@ -0,0 +1,44 @@
+/**
+* \file signals.h
+* \brief Signal (i.e. SIGINT) handling.
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_SIGNALS_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_SIGNALS_H_
+
+namespace utils {
+bool SubscribeToTerminateSignal(void (*func)(int32_t p));
+bool ResetSubscribeToTerminateSignal();
+void ForwardSignal();
+} // namespace utils
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_SIGNALS_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/singleton.h b/SDL_Core/src/components/Utils/include/Utils/singleton.h
new file mode 100644
index 000000000..35ad50393
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/singleton.h
@@ -0,0 +1,179 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_SINGLETON_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_SINGLETON_H_
+
+#include "lock.h"
+#include "memory_barrier.h"
+#include "atomic.h"
+
+namespace utils {
+
+namespace deleters {
+
+class DummyDeleter {
+ public:
+ void grab(void* pointer) {
+ }
+};
+
+template<typename T>
+class Deleter {
+ public:
+ Deleter() : pointer_(0) {
+ }
+ ~Deleter() {
+ if (pointer_) {
+ delete pointer_;
+ }
+ }
+ void grab(T* pointer) {
+ pointer_ = pointer;
+ }
+ private:
+ T* pointer_;
+};
+
+} // namespace deleters
+
+template<typename T, class Deleter = deleters::DummyDeleter>
+class Singleton {
+/**
+ * @brief Singleton template
+ * Singleton classes must derive from this template specialized with class itself:
+ *
+ * class MySingleton : public Singleton<MySingleton> {...};
+ *
+ * All such classes must declare instance() method as friend
+ * by adding FRIEND_BASE_SINGLETON_CLASS macro from macro.h to class definition:
+ *
+ * FRIEND_BASE_SINGLETON_CLASS(MySingleton);
+ *
+ * Instance of this class (if created) can be deleted by Deleter destructor
+ * which is called after main() (or from exit())
+ * This requires T destructor to be accessible for Deleter (e.g. public)
+ * Deleter template parameter can be specified with any class
+ * with public default constructor, destructor and method
+ * void grab(T*);
+ * However, default Deleter specification does nothing
+ *
+ * Also instance can be deleted explicitly by calling destroy() method
+ *
+ * Both instance() and destroy() methods are thread safe
+ * but not thread safety between simultaneous calls
+ * of instance() and destroy() is cared about
+ */
+ public:
+/**
+ * @brief Returns the singleton of class
+ */
+ static T* instance();
+/**
+ * @brief Destroys the singleton (if it had been created)
+ */
+ static void destroy();
+/**
+ * @brief Checks whether the singleton exists
+ */
+ static bool exists();
+
+ private:
+
+ static T** instance_pointer();
+ static Deleter* deleter();
+};
+
+template<typename T, class Deleter>
+T* Singleton<T, Deleter>::instance() {
+ static sync_primitives::Lock lock;
+
+ T* local_instance;
+ atomic_pointer_assign(local_instance, *instance_pointer());
+ memory_barrier();
+
+ if (!local_instance) {
+ lock.Ackquire();
+ local_instance = *instance_pointer();
+ if (!local_instance) {
+ local_instance = new T();
+ memory_barrier();
+ atomic_pointer_assign(*instance_pointer(), local_instance);
+ deleter()->grab(local_instance);
+ }
+ lock.Release();
+ }
+
+ return local_instance;
+}
+
+template<typename T, class Deleter>
+void Singleton<T, Deleter>::destroy() {
+ static sync_primitives::Lock lock;
+
+ T* local_instance;
+ atomic_pointer_assign(local_instance, *instance_pointer());
+ memory_barrier();
+
+ if (local_instance) {
+ lock.Ackquire();
+ local_instance = *instance_pointer();
+ if (local_instance) {
+ atomic_pointer_assign(*instance_pointer(), 0);
+ memory_barrier();
+ delete local_instance;
+ deleter()->grab(0);
+ }
+ lock.Release();
+ }
+}
+
+template<typename T, class Deleter>
+bool Singleton<T, Deleter>::exists() {
+ return *instance_pointer() != 0;
+}
+
+template<typename T, class Deleter>
+T** Singleton<T, Deleter>::instance_pointer() {
+ static T* instance = 0;
+ return &instance;
+}
+
+template<typename T, class Deleter>
+Deleter* Singleton<T, Deleter>::deleter() {
+ static Deleter deleter;
+ return &deleter;
+}
+
+} // namespace utils
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_SINGLETON_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/stl_utils.h b/SDL_Core/src/components/Utils/include/Utils/stl_utils.h
new file mode 100644
index 000000000..f525c6429
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/stl_utils.h
@@ -0,0 +1,81 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_STL_UTILS_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_STL_UTILS_H_
+
+#include "utils/macro.h"
+
+namespace utils {
+
+/*
+ * Utility class that automatically deletes STL collection of
+ * freestore objects
+ */
+template<class T>
+class StlCollectionDeleter {
+ public:
+ typedef T Collection;
+ StlCollectionDeleter(T* collection): collection_(collection) {
+ DCHECK(collection_);
+ }
+ ~StlCollectionDeleter() {
+ for (typename Collection::iterator i = collection_->begin(),
+ end = collection_->end();
+ i != end; ++i) {
+ delete *i;
+ }
+ }
+ private:
+ Collection* collection_;
+};
+
+template<class T>
+class StlMapDeleter {
+ public:
+ typedef T Collection;
+ StlMapDeleter(T* collection): collection_(collection) {
+ DCHECK(collection_);
+ }
+ ~StlMapDeleter() {
+ for (typename Collection::iterator i = collection_->begin(),
+ end = collection_->end();
+ i != end; ++i) {
+ delete i->second;
+ }
+ }
+ private:
+ Collection* collection_;
+};
+
+} // namespace utils
+
+#endif /* SRC_COMPONENTS_UTILS_INCLUDE_UTILS_STL_UTILS_H_ */
diff --git a/SDL_Core/src/components/Utils/include/Utils/threads/message_loop_thread.h b/SDL_Core/src/components/Utils/include/Utils/threads/message_loop_thread.h
new file mode 100644
index 000000000..b2ff91f7b
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/threads/message_loop_thread.h
@@ -0,0 +1,136 @@
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_MESSAGE_LOOP_THREAD_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_MESSAGE_LOOP_THREAD_H_
+
+#include <string>
+#include <queue>
+
+#include "utils/logger.h"
+#include "utils/macro.h"
+#include "utils/message_queue.h"
+#include "utils/threads/thread.h"
+
+namespace threads {
+
+/*
+ * Class that handles a thread which sole purpose is to pump messages pushed
+ * to it's queue. To handle messages someone, Handler must be implemented and
+ * passed to MessageLoopThread constructor.
+ */
+template < class Q >
+class MessageLoopThread {
+ public:
+ typedef Q Queue;
+ typedef typename Queue::value_type Message;
+ /*
+ * Handler interface. It is called from a thread that is
+ * owned by MessageLoopThread so make sure is only accesses
+ * thread-safe data
+ */
+ struct Handler {
+ /*
+ * Method called by MessageLoopThread to process single message
+ * from it's queue. After calling this method message is discarded.
+ */
+ virtual void Handle(const Message& message) = 0;
+ };
+
+ /*
+ * Constructs new MessageLoopThread. Must be named to aid debugging.
+ */
+ MessageLoopThread(const std::string& name,
+ Handler* handler,
+ const ThreadOptions& thread_opts = ThreadOptions());
+ ~MessageLoopThread();
+
+ // Places a message to the therad's queue. Thread-safe.
+ void PostMessage(const Message& message);
+ private:
+
+ /*
+ * Implementation of ThreadDelegate that actually pumps the queue and is
+ * able to correctly shut it down
+ */
+ struct LoopThreadDelegate : public threads::ThreadDelegate {
+ LoopThreadDelegate(MessageQueue<Message, Queue>* message_queue,
+ Handler* handler);
+
+ // threads::ThreadDelegate overrides
+ virtual void threadMain() OVERRIDE;
+ virtual bool exitThreadMain() OVERRIDE;
+ private:
+ // Handle all messages that are in the queue until it is empty
+ void DrainQue();
+ private:
+ // Handler that processes messages
+ Handler& handler_;
+ // Message queue that is actually owned by MessageLoopThread
+ MessageQueue<Message, Queue>& message_queue_;
+ };
+ private:
+ MessageQueue<Message, Queue> message_queue_;
+ threads::Thread thread_;
+};
+
+///////// Implementation
+
+template<class Q>
+MessageLoopThread<Q>::MessageLoopThread(const std::string& name,
+ Handler* handler,
+ const ThreadOptions& thread_opts)
+ : thread_(name.c_str(), new LoopThreadDelegate(&message_queue_, handler)) {
+ bool started = thread_.startWithOptions(thread_opts);
+ if (!started) {
+ log4cxx::LoggerPtr logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("Utils"));
+ LOG4CXX_ERROR(logger, "Failed to start thread " << name);
+ }
+}
+
+template<class Q>
+MessageLoopThread<Q>::~MessageLoopThread() {
+ // this will join us with the thread while it drains message queue
+ thread_.stop();
+}
+
+template <class Q>
+void MessageLoopThread<Q>::PostMessage(const Message& message) {
+ message_queue_.push(message);
+}
+
+//////////
+template<class Q>
+MessageLoopThread<Q>::LoopThreadDelegate::LoopThreadDelegate(
+ MessageQueue<Message, Queue>* message_queue, Handler* handler)
+ : handler_(*handler),
+ message_queue_(*message_queue) {
+ DCHECK(handler != NULL);
+ DCHECK(message_queue != NULL);
+}
+
+template<class Q>
+void MessageLoopThread<Q>::LoopThreadDelegate::threadMain() {
+ while(!message_queue_.IsShuttingDown()){
+ DrainQue();
+ message_queue_.wait();
+ }
+ // Process leftover messages
+ DrainQue();
+}
+
+template<class Q>
+bool MessageLoopThread<Q>::LoopThreadDelegate::exitThreadMain() {
+ message_queue_.Shutdown();
+ // Prevent canceling thread until queue is drained
+ return true;
+}
+
+template<class Q>
+void MessageLoopThread<Q>::LoopThreadDelegate::DrainQue() {
+ while(!message_queue_.empty()) {
+ handler_.Handle(message_queue_.pop());
+ }
+}
+
+} // namespace utils
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_MESSAGE_LOOP_THREAD_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/threads/thread.h b/SDL_Core/src/components/Utils/include/Utils/threads/thread.h
new file mode 100644
index 000000000..bbe0acde3
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/threads/thread.h
@@ -0,0 +1,237 @@
+/**
+ * \file thread.h
+ * \brief
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_H_
+
+#if defined(OS_POSIX)
+#include <pthread.h>
+#endif
+
+#include <ostream>
+#include <string>
+
+#include "utils/macro.h"
+#include "utils/logger.h"
+#include "utils/threads/thread_delegate.h"
+#include "utils/threads/thread_options.h"
+
+namespace threads {
+
+namespace impl {
+#if defined(OS_POSIX)
+typedef pthread_t PlatformThreadHandle;
+#else
+#error Please implement thread for your OS
+#endif
+}
+
+/**
+ * Non platform specific thread abstraction that establishes a
+ * threads::ThreadDelegate on a new thread.
+ *
+ * ThreadDelegate example:
+ * class TestThread : public threads::ThreadDelegate {
+ * public:
+ * void threadMain() {
+ * printf("Hello, thread!\n");
+ * sleep(2);
+ * }
+ * };
+ *
+ * Example usage:
+ * threads::Thread thread("test thread", new TestThread());
+ * thread.startWithOptions(
+ * threads::ThreadOptions(threads::Thread::kMinStackSize));
+ * printf("join!\n");
+ * thread.join();
+ * printf("ok!\n");
+ */
+class Thread {
+ public:
+
+ /*
+ * Class that represents unique in-process thread identifier
+ * due to restriction of pthread API it only allows checks
+ * for equality to different thread id and no ordering.
+ *
+ * ostream<< operator is provided for this class which
+ * outputs thread name associated to an identifier.
+ */
+ class Id {
+ public:
+ explicit Id(const impl::PlatformThreadHandle& id): id_(id) {}
+ bool operator==(const Id that) const;
+ private:
+ impl::PlatformThreadHandle id_;
+ friend class Thread;
+ };
+
+ // Get unique ID of currently executing thread
+ static Id CurrentId();
+
+ // Get name associated with thread identified by thread_id
+ static std::string NameFromId(Id thread_id);
+
+ // Give thread thread_id a name, helpful for debugging
+ static void SetNameForId(Id thread_id, const std::string& name);
+
+ /**
+ * Ctor.
+ * @param name - display string to identify the thread.
+ * @param delegate - thread procedure delegate. Look for
+ * 'threads/thread_delegate.h' for details.
+ * NOTE: delegate will be deleted by destructor.
+ */
+ Thread(const char* name, ThreadDelegate* delegate);
+
+ /**
+ * Dtor.
+ */
+ virtual ~Thread();
+
+ /**
+ * Starts the thread.
+ * @return true if the thread was successfully started.
+ */
+ bool start();
+
+ /**
+ * Starts the thread. Behaves exactly like Start in addition to
+ * allow to override the default options.
+ * @param options - thread options. Look for 'threads/thread_options.h'
+ * for details.
+ * @return true if the thread was successfully started.
+ */
+ bool startWithOptions(const ThreadOptions& options);
+
+ /**
+ * Signals the thread to exit and returns once the thread has exited.
+ * After this method returns, the Thread object is completely reset and may
+ * be used as if it were newly constructed (i.e., Start may be called again).
+ *
+ * Stop may be called multiple times and is simply ignored if the thread is
+ * already stopped.
+ */
+ void stop();
+
+ /**
+ * Joins with a thread created via the Create function.
+ * This function blocks the caller until the designated thread exits.
+ * This will invalidate |thread_handle|.
+ */
+ void join();
+
+ /**
+ * Get thread name.
+ * @return thread name
+ */
+ const std::string &thread_name() {
+ return name_;
+ }
+
+ /**
+ * Returns true if the thread has been started, and not yet stopped.
+ * When a thread is running, the thread_id_ is non-zero.
+ * @return true if the thread has been started, and not yet stopped.
+ */
+ bool is_running() const {
+ return isThreadRunning_;
+ }
+
+ /**
+ * Is thread joinable?
+ * @return - Returns true if the thread is joinable.
+ */
+ bool is_joinable() const {
+ return thread_options_.is_joinable();
+ }
+
+ /**
+ * Thread stack size
+ * @return thread stack size
+ */
+ size_t stack_size() const {
+ return thread_options_.stack_size();
+ }
+
+ /**
+ * The native thread handle.
+ * @return thread handle.
+ */
+ impl::PlatformThreadHandle thread_handle() const {
+ return thread_handle_;
+ }
+
+ /**
+ * Thread id.
+ * @return return thread id.
+ */
+ Id thread_id() const {
+ return Id(thread_handle());
+ }
+
+ /**
+ * Thread options.
+ * @return thread options.
+ */
+ const ThreadOptions& thread_options() const {
+ return thread_options_;
+ }
+
+ /**
+ * Minimum size of thread stack for specific platform.
+ */
+ static size_t kMinStackSize;
+
+ protected:
+ std::string name_;
+ ThreadDelegate* delegate_;
+ impl::PlatformThreadHandle thread_handle_;
+ ThreadOptions thread_options_;
+ bool isThreadRunning_;
+
+ static log4cxx::LoggerPtr logger_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(Thread);
+};
+
+inline bool operator!= (Thread::Id left, Thread::Id right) {return !(left == right); }
+std::ostream& operator<<(std::ostream& os, Thread::Id thread_id);
+
+} // namespace threads
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/threads/thread_delegate.h b/SDL_Core/src/components/Utils/include/Utils/threads/thread_delegate.h
new file mode 100644
index 000000000..963eb3bf8
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/threads/thread_delegate.h
@@ -0,0 +1,71 @@
+/**
+ * \file thread_delegate.h
+ * \brief
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_DELEGATE_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_DELEGATE_H_
+
+#include <pthread.h>
+
+namespace threads {
+
+/**
+ * Thread procedure interface.
+ * Look for "threads/thread.h" for example
+ */
+class ThreadDelegate {
+ public:
+ /**
+ * Dtor.
+ */
+ virtual ~ThreadDelegate() {
+ }
+
+ /**
+ * Thread procedure.
+ */
+ virtual void threadMain() = 0;
+
+ /**
+ * Should be called to free all resources allocated in threadMain
+ * and exiting threadMain
+ */
+ virtual bool exitThreadMain() {
+ return false;
+ }
+};
+
+} // namespace threads
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_DELEGATE_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/threads/thread_manager.h b/SDL_Core/src/components/Utils/include/Utils/threads/thread_manager.h
new file mode 100644
index 000000000..03330170e
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/threads/thread_manager.h
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_MANAGER_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_MANAGER_H_
+
+#include "utils/threads/thread.h"
+#include "utils/lock.h"
+
+#include <map>
+#include <string>
+#include <set>
+
+#include "utils/macro.h"
+#include "utils/singleton.h"
+
+namespace threads {
+namespace impl {
+
+/*
+ * Generates short and unique names for unnamed threads
+ * and remembers association between thread handle and that short name
+ */
+class UnnamedThreadRegistry {
+ public:
+ UnnamedThreadRegistry();
+ ~UnnamedThreadRegistry();
+ /*
+ * Returns a name for given unnamed thread id.
+ * If id is first seen, new name is generated and memorized
+ * If id is already known, previously generated name is returned
+ */
+ std::string GetUniqueName(PlatformThreadHandle id);
+ private:
+ typedef std::map<PlatformThreadHandle, std::string> IdNameMap;
+ IdNameMap id_number_;
+ int32_t last_thread_number_;
+ sync_primitives::Lock state_lock_;
+};
+
+/*
+ * This class is here currently to remember names associated to threads.
+ * It manages raw impl::PlatformHandles because Thread::Id's do not provide
+ * comparison operator. Current linux implementation relies on fact that
+ * pthread_t is just an integer and every thread has single unique value
+ * associated with it.
+ * OS provides it's own facilities to name threads but
+ */
+class ThreadManager : public utils::Singleton<ThreadManager> {
+ public:
+ // Name a thread. Should be called only once for every thread.
+ // Threads can't be renamed
+ void RegisterName(PlatformThreadHandle id, const std::string& name);
+
+ // Get a name for previously registered thread
+ std::string GetName(PlatformThreadHandle id) const;
+
+ // Forget a name of (possibly destroyed) thread
+ // Make sure to call it after thread is finished
+ // Because thread id's can be recycled
+ void Unregister(PlatformThreadHandle id);
+ private:
+ ThreadManager();
+ ~ThreadManager();
+
+ private:
+ typedef std::set<std::string> NamesSet;
+ typedef std::map<PlatformThreadHandle, std::string> IdNamesMap;
+ // Set of thread names for fast checking if name is unique
+ NamesSet names_;
+ // Map from system handle to the thread name
+ IdNamesMap id_names_;
+ mutable sync_primitives::Lock state_lock_;
+
+ // Generator of shorter sequental names for unnamed threads
+ // Has to memorize every generated name this is why it is mutable
+ mutable UnnamedThreadRegistry unnamed_thread_namer_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ThreadManager);
+
+ FRIEND_BASE_SINGLETON_CLASS(ThreadManager);
+};
+
+} // namespace impl
+} // namespace threads
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_MANAGER_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/threads/thread_options.h b/SDL_Core/src/components/Utils/include/Utils/threads/thread_options.h
new file mode 100644
index 000000000..bdeaa367f
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/threads/thread_options.h
@@ -0,0 +1,107 @@
+/**
+ * \file thread_options.h
+ * \brief
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_OPTIONS_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_OPTIONS_H_
+
+namespace threads {
+
+/**
+ * @breif Startup options for thread.
+ * Look for "threads/thread.h" for example
+ */
+class ThreadOptions {
+ public:
+ /**
+ * Ctor
+ * @param stack_size - thread stack size. If stack size less than
+ * threads::Thread::kMinStackSize the default value is used.
+ * 0 - default stack size for current platform.
+ * @param is_joinable - is thread joinable?
+ */
+ explicit ThreadOptions(size_t stack_size = 0, bool is_joinable = true)
+ : stack_size_(stack_size),
+ is_joinable_(is_joinable) {
+ }
+
+ /**
+ * Dtor.
+ */
+ virtual ~ThreadOptions() {
+ }
+
+ /**
+ * Copy ctor.
+ * @param options - new options.
+ */
+ ThreadOptions(const ThreadOptions& options) {
+ *this = options;
+ }
+
+ /**
+ * Assign operator.
+ * @param options - new options.
+ * @return new options.
+ */
+ ThreadOptions& operator=(const ThreadOptions& options ) {
+ stack_size_ = options.stack_size();
+ is_joinable_ = options.is_joinable();
+ return *this;
+ }
+
+ /**
+ * Stack size.
+ * @return Stack size for thread.
+ */
+ size_t stack_size() const {
+ return stack_size_;
+ }
+
+ /**
+ * Is thread joinable?
+ * @return - Returns true if the thread is joinable.
+ */
+ bool is_joinable() const {
+ return is_joinable_;
+ }
+
+ protected:
+ size_t stack_size_;
+ bool is_joinable_;
+};
+
+} // namespace threads
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_OPTIONS_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/threads/thread_validator.h b/SDL_Core/src/components/Utils/include/Utils/threads/thread_validator.h
new file mode 100644
index 000000000..def1994b7
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/threads/thread_validator.h
@@ -0,0 +1,105 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_THREADS_THREAD_VALIDATOR_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_THREADS_THREAD_VALIDATOR_H_
+
+#include "utils/threads/thread.h"
+
+namespace threads {
+/*
+ * Use objects of this class to validate (in run-time) access
+ * to single-threaded objects. It remembers the thread it was
+ * created on and then allows to easily check whether an object is
+ * being accessed from different thread and log an error in that case
+ *
+ * Put a member of type SingleThreadValidator in your class and call
+ * AssertRunningOnCreationThread in it's every public method
+ *
+ * class MySingleThreadedThing {
+ * .....
+ * public:
+ * void DoSomeWork();
+ * .....
+ * private:
+ * SingleThreadValidator thread_validator_;
+ * .....
+ * };
+ *
+ * void MySingleThreadedThing::DoSomeWork() {
+ * thread_validator_.AssertRunningOnCreationThread();
+ * .....
+ * }
+ */
+class SingleThreadSimpleValidator {
+ public:
+ SingleThreadSimpleValidator();
+ ~SingleThreadSimpleValidator();
+
+ // This method should be called in every public method
+ // of classes being checked for absence of concurrent access
+ void AssertRunningOnCreationThread() const;
+ private:
+ const Thread::Id creation_thread_id_;
+};
+
+
+/*
+ * This is bit more sophisticated debug helper which allows
+ * objects being checked to be transferred between threads.
+ * Make sure to pass ownership calling PassToThread before
+ * object is accessed from that thread!
+ *
+ * It's better to virtually inherit it to make PassToThread publicly
+ * available to code that uses objects of your classes and make sure
+ * that if your object consists of different thread-validated
+ * parts you'll need not to call PassToThread proxy method for
+ * every part of your composite object
+ */
+class SingleThreadValidator {
+ public:
+ SingleThreadValidator();
+ ~SingleThreadValidator();
+
+ // Must be called prior to transferring object being validated to
+ // another thread or when passing it back
+ void PassToThread(Thread::Id thread_id) const;
+ // This method should be called in every public method
+ // of classes being checked for absence of unintended concurrent
+ // access
+ void AssertRunningOnValidThread() const;
+ private:
+ mutable Thread::Id owning_thread_id_;
+};
+
+} // namespace threads
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_THREADS_THREAD_VALIDATOR_H_
diff --git a/SDL_Core/src/components/Utils/include/Utils/timer_thread.h b/SDL_Core/src/components/Utils/include/Utils/timer_thread.h
new file mode 100644
index 000000000..0da5616e7
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/Utils/timer_thread.h
@@ -0,0 +1,336 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_TIMER_THREAD
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_TIMER_THREAD
+
+#include <time.h>
+
+#include "utils/conditional_variable.h"
+#include "utils/lock.h"
+#include "utils/logger.h"
+#include "utils/macro.h"
+#include "utils/timer_thread.h"
+#include "utils/threads/thread.h"
+#include "utils/threads/thread_delegate.h"
+
+namespace timer {
+
+class TimerDelegate;
+
+/*
+ * The TimerThread class provide possibility to run timer in a separate thread.
+ * The client should specify callee and const callback function.
+ * Example usage:
+ *
+ * Create timer in mobile request
+ *
+ * timer::TimerThread<MobileRequest> timer(this, &MobileRequest::onTimeOut);
+ * timer.start(10);
+ *
+ * some actions
+ *
+ * To stop timer call timer.stop();
+ *
+ */
+template <class T>
+class TimerThread {
+ public:
+
+ friend class TimerDelegate;
+ friend class TimerLooperDelegate;
+
+ /*
+ * @brief Default constructor
+ *
+ * @param callee A class that use timer
+ * @param f CallBackFunction which will be called on timeout
+ * Atantion! "f()" will be called not in main thread but in timer thread
+ * Never use stop() and start() methods inside f
+ * @param is_looper Define this timer as looer,
+ * if true, TimerThread will call "f()" function every time out
+ * until stop()
+ */
+ TimerThread(T* callee , void (T::*f)(),bool is_looper = false);
+
+ /*
+ * @brief Destructor
+ */
+ virtual ~TimerThread();
+
+ /*
+ * @brief Starts timer for specified timeout.
+ * Previously started timeout will be set to new value.
+ * On timeout TimerThread::onTimeOut interface will be called.
+ * Must not be used in callback function!
+ *
+ * @param timeout_seconds Timeout in seconds to be set
+ */
+ virtual void start(uint32_t timeout_seconds);
+
+ /*
+ * @brief Stops timer execution
+ * Must not be used in callback function!
+ */
+ virtual void stop();
+
+ protected:
+
+ /*
+ * @brief Interface called by delegator on timeout
+ */
+ void onTimeOut() const;
+
+ private:
+
+ /**
+ * @brief Delegate release timer, will call callback function one time
+ */
+ class TimerDelegate : public threads::ThreadDelegate {
+ public:
+
+ /*
+ * @brief Default constructor
+ *
+ * @param timer_thread The Timer_thread pointer
+ * @param timeout Timeout to be set
+ */
+ TimerDelegate(const TimerThread* timer_thread);
+
+ /*
+ * @brief Destructor
+ */
+ virtual ~TimerDelegate();
+
+ /*
+ * @brief Thread main function.
+ */
+ virtual void threadMain();
+
+ /*
+ * @brief Called by thread::thread to free all allocated resources.
+ */
+ virtual bool exitThreadMain();
+
+ /*
+ * @brief Restart timer
+ *
+ * @param timeout_seconds New timeout to be set
+ */
+ virtual void setTimeOut(uint32_t timeout_seconds);
+
+ protected:
+ const TimerThread* timer_thread_;
+ uint32_t timeout_seconds_;
+ sync_primitives::Lock state_lock_;
+ sync_primitives::ConditionalVariable termination_condition_;
+ volatile bool stop_flag_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TimerDelegate);
+ };
+
+
+ /**
+ * @brief Delegate release looper timer.
+ * Will call delegate every timeot function while stop()
+ * won't be called
+ */
+ class TimerLooperDelegate : public TimerDelegate {
+ public:
+
+ /*
+ * @brief Default constructor
+ *
+ * @param timer_thread The Timer_thread pointer
+ * @param timeout Timeout to be set
+ */
+ TimerLooperDelegate(const TimerThread* timer_thread);
+
+ /*
+ * @brief Thread main function.
+ */
+ virtual void threadMain();
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TimerLooperDelegate);
+ };
+ void (T::*callback_)();
+ T* callee_;
+ TimerDelegate* delegate_;
+ threads::Thread* thread_;
+ mutable bool is_running_;
+
+ DISALLOW_COPY_AND_ASSIGN(TimerThread);
+};
+
+template <class T>
+TimerThread<T>::TimerThread(T* callee, void (T::*f)(), bool is_looper)
+ : callback_(f),
+ callee_(callee),
+ delegate_(NULL),
+ thread_(NULL),
+ is_running_(false) {
+ if (is_looper) {
+ delegate_ = new TimerLooperDelegate(this);
+ } else {
+ delegate_ = new TimerDelegate(this);
+ }
+
+ if (delegate_) {
+ thread_ = new threads::Thread("TimerThread", delegate_);
+ }
+}
+
+template <class T>
+TimerThread<T>::~TimerThread() {
+ if (is_running_) {
+ stop();
+ }
+ callback_ = NULL;
+ callee_ = NULL;
+ delete thread_;
+ // delegate_ will be deleted by thread_
+ thread_ = NULL;
+ delegate_ = NULL;
+}
+
+template <class T>
+void TimerThread<T>::start(uint32_t timeout_seconds) {
+ if (is_running_) {
+ stop();
+ }
+
+ delegate_->setTimeOut(timeout_seconds);
+ if (delegate_ && thread_) {
+ is_running_ = true;
+ const size_t kStackSize = 16384;
+ thread_->startWithOptions(threads::ThreadOptions(kStackSize));
+ }
+}
+
+template <class T>
+void TimerThread<T>::stop() {
+ if (delegate_ && thread_) {
+ thread_->stop();
+ is_running_ = false;
+ }
+}
+
+template <class T>
+void TimerThread<T>::onTimeOut() const {
+ if (callee_ && callback_) {
+ (callee_->*callback_)();
+ is_running_ = false;
+ }
+}
+
+template <class T>
+TimerThread<T>::TimerDelegate::TimerDelegate(const TimerThread* timer_thread)
+ : timer_thread_(timer_thread),
+ timeout_seconds_(0),
+ stop_flag_(false) {
+ DCHECK(timer_thread_);
+}
+
+template <class T>
+TimerThread<T>::TimerLooperDelegate::TimerLooperDelegate(const TimerThread* timer_thread)
+ : TimerDelegate(timer_thread) {
+}
+
+template <class T>
+TimerThread<T>::TimerDelegate::~TimerDelegate() {
+ timer_thread_ = NULL;
+}
+
+template <class T>
+void TimerThread<T>::TimerDelegate::threadMain() {
+ using sync_primitives::ConditionalVariable;
+ sync_primitives::AutoLock auto_lock(state_lock_);
+ const time_t end_time = time(NULL) + timeout_seconds_;
+ int32_t wait_seconds_left = int32_t(difftime(end_time, time(NULL)));
+ while (!stop_flag_) {
+ // Sleep
+ ConditionalVariable::WaitStatus wait_status =
+ termination_condition_.WaitFor(auto_lock, wait_seconds_left * 1000);
+ wait_seconds_left = int32_t(difftime(end_time, time(NULL)));
+ // Quit sleeping or continue sleeping in case of spurious wake up
+ if (ConditionalVariable::kTimeout == wait_status ||
+ wait_seconds_left <= 0) {
+ break;
+ }
+ }
+ if (!stop_flag_) {
+ timer_thread_->onTimeOut();
+ }
+ stop_flag_ = false;
+}
+
+template <class T>
+void TimerThread<T>::TimerLooperDelegate::threadMain() {
+ using sync_primitives::ConditionalVariable;
+ sync_primitives::AutoLock auto_lock(TimerDelegate::state_lock_);
+ time_t end_time = time(NULL) + TimerDelegate::timeout_seconds_;
+ int32_t wait_seconds_left = int32_t(difftime(end_time, time(NULL)));
+ while (!TimerDelegate::stop_flag_) {
+ // Sleep
+ ConditionalVariable::WaitStatus wait_status =
+ TimerDelegate::termination_condition_.WaitFor(auto_lock, wait_seconds_left * 1000);
+ wait_seconds_left = int32_t(difftime(end_time, time(NULL)));
+ // Quit sleeping or continue sleeping in case of spurious wake up
+ if (ConditionalVariable::kTimeout == wait_status ||
+ wait_seconds_left <= 0) {
+ TimerDelegate::timer_thread_->onTimeOut();
+ end_time = time(NULL) + TimerDelegate::timeout_seconds_;
+ }
+ }
+ TimerDelegate::stop_flag_ = false;
+}
+
+
+template <class T>
+bool TimerThread<T>::TimerDelegate::exitThreadMain() {
+ {
+ sync_primitives::AutoLock auto_lock(state_lock_);
+ stop_flag_ = true;
+ }
+ termination_condition_.NotifyOne();
+ return true;
+}
+
+template <class T>
+void TimerThread<T>::TimerDelegate::setTimeOut(uint32_t timeout_seconds) {
+ timeout_seconds_ = timeout_seconds;
+}
+
+} // namespace timer
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_TIMER_THREAD
diff --git a/SDL_Core/src/components/Utils/include/utils/atomic.h b/SDL_Core/src/components/Utils/include/utils/atomic.h
new file mode 100644
index 000000000..bf5b4baf8
--- /dev/null
+++ b/SDL_Core/src/components/Utils/include/utils/atomic.h
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifdef __QNXNTO__
+#include <atomic.h>
+#endif
+
+#ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_ATOMIC_H_
+#define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_ATOMIC_H_
+
+#if defined(__QNXNTO__)
+#define atomic_post_inc(ptr) atomic_add_value((ptr), 1)
+#elif defined(__GNUG__)
+#define atomic_post_inc(ptr) __sync_fetch_and_add((ptr), 1)
+#else
+#warning "atomic_post_inc() implementation is not atomic"
+#define atomic_post_inc(ptr) (*(ptr))++
+#endif
+
+#if defined(__QNXNTO__)
+#define atomic_post_dec(ptr) atomic_sub_value((ptr), 1)
+#elif defined(__GNUG__)
+#define atomic_post_dec(ptr) __sync_fetch_and_sub((ptr), 1)
+#else
+#warning "atomic_post_dec() implementation is not atomic"
+#define atomic_post_dec(ptr) (*(ptr))--
+#endif
+
+#if defined(_QNXNTO__)
+// on QNX pointer assignment is believed to be atomic
+#define atomic_pointer_assign(dst, src) (dst) = (src)
+#elif defined(__GNUG__)
+// with g++ pointer assignment is believed to be atomic
+#define atomic_pointer_assign(dst, src) (dst) = (src)
+#else
+#warning atomic_pointer_assign() implementation may be non-atomic
+#define atomic_pointer_assign(dst, src) (dst) = (src)
+#endif
+
+#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_ATOMIC_H_
diff --git a/SDL_Core/src/components/Utils/src/WorkWithOS.cpp b/SDL_Core/src/components/Utils/src/WorkWithOS.cpp
deleted file mode 100644
index 46995fcd4..000000000
--- a/SDL_Core/src/components/Utils/src/WorkWithOS.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
-* \file WorkWithOS.cpp
-* \brief Implementation of general functions for work with OS.
-*/
-
-#include <iostream>
-#include <fstream>
-#include <cstddef>
-#include <algorithm>
-#include <string>
-#include <sstream>
-#include <sys/statvfs.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <dirent.h>
-#include <unistd.h>
-#include "Utils/WorkWithOS.h"
-
-unsigned long int WorkWithOS::getAvailableSpace()
-{
- char currentAppPath[256];
- memset((void*)currentAppPath, 0, 256);
- getcwd(currentAppPath, 255);
-
- struct statvfs fsInfo;
- memset((void*)&fsInfo, 0, sizeof(fsInfo));
- statvfs(currentAppPath, &fsInfo);
- return fsInfo.f_bsize * fsInfo.f_bfree;
-}
-
-std::string WorkWithOS::getFullPath(const std::string & fileName)
-{
- char currentAppPath[FILENAME_MAX];
- memset(currentAppPath, 0, FILENAME_MAX);
- getcwd(currentAppPath, FILENAME_MAX);
-
- char path[FILENAME_MAX];
- memset(path, 0, FILENAME_MAX);
- snprintf(path, FILENAME_MAX - 1, "%s/%s"
- , currentAppPath, fileName.c_str());
- return std::string(path);
-}
-
-std::string WorkWithOS::createDirectory(const std::string & directoryName)
-{
- if (!checkIfDirectoryExists(directoryName))
- {
- mkdir(directoryName.c_str(), S_IRWXU);
- }
-
- return directoryName;
-}
-
-bool WorkWithOS::checkIfDirectoryExists(const std::string & directoryName)
-{
- struct stat status;
- memset(&status, 0, sizeof(status));
-
- if (-1 == stat(directoryName.c_str(), &status)
- || !S_ISDIR(status.st_mode))
- {
- return false;
- }
-
- return true;
-}
-
-bool WorkWithOS::checkIfFileExists(const std::string & fileName)
-{
- struct stat status;
- memset(&status, 0, sizeof(status));
-
- if (-1 == stat(fileName.c_str(), &status))
- {
- return false;
- }
- return true;
-}
-
-bool WorkWithOS::createFileAndWrite(const std::string & fileName,
- const std::vector<unsigned char>& fileData)
-{
- std::ofstream file(fileName.c_str(), std::ios_base::binary);
- if (file.is_open())
- {
- for (int i = 0; i < fileData.size(); ++i)
- {
- file << fileData[i];
- }
- file.close();
- return true;
- }
- return false;
-}
-
-bool WorkWithOS::deleteFile(const std::string & fileName)
-{
- if (checkIfFileExists(fileName))
- {
- return !remove(fileName.c_str());
- }
- return false;
-}
-
-std::vector<std::string> WorkWithOS::listFilesInDirectory(
- const std::string & directoryName)
-{
- std::vector<std::string> listFiles;
- if (!checkIfDirectoryExists(directoryName))
- {
- return listFiles;
- }
-
- DIR * directory = NULL;
- struct dirent* dirElement = NULL;
- directory = opendir(directoryName.c_str());
- if ( NULL != directory )
- {
- while( dirElement = readdir(directory) )
- {
- if (0 == strcmp(dirElement->d_name, "..")
- || 0 == strcmp(dirElement->d_name, "."))
- {
- continue;
- }
- listFiles.push_back(std::string(dirElement->d_name));
- }
- closedir(directory);
- }
-
- return listFiles;
-}
-
-bool WorkWithOS::readFileAsBinary(const std::string& fileName, std::vector<unsigned char>& v)
-{
- if (!checkIfFileExists(fileName))
- return false;
-
- std::ifstream file(fileName.c_str(), std::ios_base::binary);
- std::ostringstream ss;
- ss << file.rdbuf();
- const std::string& s = ss.str();
-
- v.resize(s.length());
- std::copy(s.begin(), s.end(), v.begin());
- return true;
-}
diff --git a/SDL_Core/src/components/Utils/src/back_trace.cc b/SDL_Core/src/components/Utils/src/back_trace.cc
new file mode 100644
index 000000000..23b1b4d1e
--- /dev/null
+++ b/SDL_Core/src/components/Utils/src/back_trace.cc
@@ -0,0 +1,107 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "utils/back_trace.h"
+
+#include <algorithm>
+#include <vector>
+#include <sstream>
+
+#include <cxxabi.h>
+#include <execinfo.h>
+
+#include "utils/macro.h"
+
+using std::ostream;
+using std::string;
+using std::vector;
+using threads::Thread;
+
+namespace utils {
+
+namespace {
+string demangle(const char* symbol) {
+ char temp[2048];
+ if (1 == sscanf(symbol, "%*[^(]%*[^_]%2047[^)+]", temp)) {
+ size_t size;
+ int32_t status;
+ char* demangled = abi::__cxa_demangle(temp, NULL, &size, &status);
+ if (demangled != NULL) {
+ string result(demangled);
+ free(demangled);
+ return result;
+ }
+ }
+ return symbol;
+}
+}
+
+Backtrace::Backtrace(int32_t count, int32_t skip_top)
+ : thread_id_(threads::Thread::CurrentId()) {
+ int32_t skip = skip_top + 1; // Skip this constructor
+ vector<void*> full_trace (count + skip);
+ int32_t captured = backtrace(&full_trace.front(), count + skip);
+ int32_t first_call = std::min(captured, skip);
+ int32_t last_call = std::min(first_call + count, captured);
+ backtrace_.assign(full_trace.begin() + first_call, full_trace.begin() + last_call);
+}
+
+Backtrace::~Backtrace() {
+}
+
+vector<string> Backtrace::CallStack() const {
+ vector<string> callstack;
+ callstack.reserve(backtrace_.size());
+ char** mangled = backtrace_symbols(&backtrace_.front(), backtrace_.size());
+ for (size_t i = 0; i != backtrace_.size(); ++i) {
+ callstack.push_back(demangle(mangled[i]));
+ }
+ free(mangled);
+ return callstack;
+}
+
+Thread::Id Backtrace::ThreadId() const {
+ return thread_id_;
+}
+
+ostream& operator<< (ostream& os, const Backtrace& bt) {
+ const vector<string> symbols = bt.CallStack();
+ os<<"Stack trace ("<<bt.ThreadId()<<")\n";
+ if (symbols.empty()) {
+ os<<"Not available"<<std::endl;
+ } else for (size_t i = 0; i < symbols.size(); ++i) {
+ os<<symbols[i]<<std::endl;
+ }
+ return os;
+}
+
+} // namespace utils
diff --git a/SDL_Core/src/components/Utils/src/bitstream.cc b/SDL_Core/src/components/Utils/src/bitstream.cc
new file mode 100644
index 000000000..94ee5f8a1
--- /dev/null
+++ b/SDL_Core/src/components/Utils/src/bitstream.cc
@@ -0,0 +1,129 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "utils/bitstream.h"
+
+namespace utils {
+
+BitStream::BitStream(uint8_t* bytes, size_t bytes_count)
+ : bytes_(bytes),
+ bytes_count_(bytes_count),
+ byte_offset_(0),
+ bit_offset_(0),
+ bad_(false) {
+}
+
+BitStream::~BitStream() {
+}
+
+size_t BitStream::FullBytesLeft() {
+ size_t left = bytes_count_ - byte_offset_;
+ if (bit_offset_ != 0)
+ left -= 1;
+ return left;
+}
+
+size_t BitStream::BitsLeft() {
+ return (bytes_count_ - byte_offset_) * CHAR_BIT - bit_offset_;
+}
+
+void BitStream::ExtractBytes(void* buffer, size_t length) {
+ DCHECK(length == 0 || buffer != NULL);
+ if (IsGood()) {
+ if (bit_offset_ != 0 || // bytes can be extracted only when
+ FullBytesLeft() < length) { // stream is byte-aligned
+ MarkBad();
+ return;
+ }
+ }
+ memcpy(buffer, &bytes_[byte_offset_], length);
+ byte_offset_ += length;
+}
+
+void Extract(BitStream* bs, uint8_t* val) {
+ DCHECK(bs && val);
+ if (*bs) {
+ bs->Extract(*val);
+ }
+}
+
+void Extract(BitStream* bs, uint8_t* val, size_t bits) {
+ DCHECK(bs && val);
+ if (*bs) {
+ bs->ExtractBits(*val, bits);
+ }
+}
+
+void Extract(BitStream* bs, uint32_t* val) {
+ DCHECK(bs && val);
+ if (*bs) {
+ bs->Extract(*val);
+ }
+}
+
+void Extract(BitStream* bs, uint32_t* val, size_t bits) {
+ DCHECK(bs && val);
+ if (*bs) {
+ bs->ExtractBits(*val, bits);
+ }
+}
+
+void Extract(BitStream* bs, std::string* str, size_t length) {
+ DCHECK(bs && str);
+ if (*bs) {
+ // Prevent memory over-allocation
+ if (bs->FullBytesLeft() < length) {
+ bs->MarkBad();
+ return;
+ }
+ str->resize(length+1);
+ void* stringdata = &(*str)[0];
+ bs->ExtractBytes(stringdata, length);
+ str->resize(length);
+ }
+}
+
+void Extract(BitStream* bs, std::vector<uint8_t>* data, size_t length) {
+ DCHECK(bs && data);
+ if (*bs) {
+ // Prevent memory over-allocation
+ if (bs->FullBytesLeft() < length) {
+ bs->MarkBad();
+ return;
+ }
+ data->resize(length);
+ void* dataptr = &data->front();
+ bs->ExtractBytes(dataptr, length);
+ }
+}
+
+} // namespace utils
+
diff --git a/SDL_Core/src/components/Utils/src/conditional_variable_posix.cc b/SDL_Core/src/components/Utils/src/conditional_variable_posix.cc
new file mode 100644
index 000000000..46b31ee7c
--- /dev/null
+++ b/SDL_Core/src/components/Utils/src/conditional_variable_posix.cc
@@ -0,0 +1,134 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "utils/conditional_variable.h"
+
+#include <errno.h>
+#include <time.h>
+
+#include "utils/lock.h"
+#include "utils/logger.h"
+
+namespace {
+log4cxx::LoggerPtr g_logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("Utils"));
+
+const long kNanosecondsPerSecond = 1000000000;
+const long kMillisecondsPerSecond = 1000;
+const long kNanosecondsPerMillisecond = 1000000;
+}
+
+namespace sync_primitives {
+
+ConditionalVariable::ConditionalVariable() {
+ pthread_condattr_t attrs;
+ int32_t initialized = pthread_condattr_init(&attrs);
+ if (initialized != 0)
+ LOG4CXX_ERROR(g_logger, "Failed to initialize "
+ "conditional variable attributes");
+ pthread_condattr_setclock(&attrs, CLOCK_MONOTONIC);
+ initialized = pthread_cond_init(&cond_var_, &attrs);
+ if (initialized != 0)
+ LOG4CXX_ERROR(g_logger, "Failed to initialize "
+ "conditional variable");
+ int32_t rv = pthread_condattr_destroy(&attrs);
+ if (rv != 0)
+ LOG4CXX_ERROR(g_logger, "Failed to destroy "
+ "conditional variable attributes");
+}
+
+ConditionalVariable::~ConditionalVariable() {
+ pthread_cond_destroy(&cond_var_);
+
+}
+
+void ConditionalVariable::NotifyOne() {
+ int32_t signaled = pthread_cond_signal(&cond_var_);
+ if (signaled != 0)
+ LOG4CXX_ERROR(g_logger, "Failed to signal conditional variable");
+
+}
+
+void ConditionalVariable::Broadcast() {
+ int32_t signaled = pthread_cond_broadcast(&cond_var_);
+ if (signaled != 0)
+ LOG4CXX_ERROR(g_logger, "Failed to broadcast conditional variable");
+
+}
+
+void ConditionalVariable::Wait(AutoLock& auto_lock) {
+ Lock& lock = auto_lock.GetLock();
+ lock.AssertTakenAndMarkFree();
+ int32_t wait_status = pthread_cond_wait(&cond_var_,
+ &lock.mutex_);
+ lock.AssertFreeAndMarkTaken();
+ if (wait_status != 0)
+ LOG4CXX_ERROR(g_logger, "Failed to wait for conditional variable");
+}
+
+ConditionalVariable::WaitStatus ConditionalVariable::WaitFor(
+ AutoLock& auto_lock, int32_t milliseconds){
+ struct timespec now;
+ clock_gettime(CLOCK_MONOTONIC, &now);
+ timespec wait_interval;
+ wait_interval.tv_sec = now.tv_sec +
+ (milliseconds / kMillisecondsPerSecond);
+ wait_interval.tv_nsec = now.tv_nsec +
+ (milliseconds % kMillisecondsPerSecond) * kNanosecondsPerMillisecond;
+ wait_interval.tv_sec += wait_interval.tv_nsec / kNanosecondsPerSecond;
+ wait_interval.tv_nsec %= kNanosecondsPerSecond;
+
+ Lock& lock = auto_lock.GetLock();
+ lock.AssertTakenAndMarkFree();
+ int32_t timedwait_status = pthread_cond_timedwait(&cond_var_,
+ &lock.mutex_,
+ &wait_interval);
+ lock.AssertFreeAndMarkTaken();
+ WaitStatus wait_status = kNoTimeout;
+ switch(timedwait_status) {
+ case 0: {
+ wait_status = kNoTimeout;
+ } break;
+ case EINTR: {
+ wait_status = kNoTimeout;
+ } break;
+ case ETIMEDOUT: {
+ wait_status = kTimeout;
+ } break;
+ default: {
+ LOG4CXX_ERROR(g_logger, "Failed to timewait for conditional variable");
+ }
+ }
+
+ return wait_status;
+}
+
+} // namespace sync_primitives
diff --git a/SDL_Core/src/components/Utils/src/date_time.cc b/SDL_Core/src/components/Utils/src/date_time.cc
new file mode 100644
index 000000000..644e938a9
--- /dev/null
+++ b/SDL_Core/src/components/Utils/src/date_time.cc
@@ -0,0 +1,74 @@
+/**
+* \file request_watchdog.h
+* \brief DateTime class source file.
+*
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <sys/time.h>
+#include <stdint.h>
+#include "utils/date_time.h"
+
+namespace date_time {
+
+int32_t const DateTime::MILLISECONDS_IN_SECOND;
+int32_t const DateTime::MICROSECONDS_IN_MILLISECONDS;
+
+struct timeval DateTime::getCurrentTime() {
+ struct timeval currentTime;
+ struct timezone timeZone;
+
+ gettimeofday(&currentTime, &timeZone);
+
+ return currentTime;
+}
+
+int32_t DateTime::calculateTimeSpan(struct timeval sinceTime) {
+ struct timeval currentTime, timeDifference;
+ struct timezone timeZone;
+
+ gettimeofday(&currentTime, &timeZone);
+
+ timeDifference.tv_sec = currentTime.tv_sec - sinceTime.tv_sec;
+
+ timeDifference.tv_usec = currentTime.tv_usec - sinceTime.tv_usec;
+
+ if ( timeDifference.tv_usec < 0 ) {
+ timeDifference.tv_sec--;
+ timeDifference.tv_usec += MILLISECONDS_IN_SECOND
+ * MICROSECONDS_IN_MILLISECONDS;
+ }
+
+ return timeDifference.tv_sec * MILLISECONDS_IN_SECOND
+ + timeDifference.tv_usec / MICROSECONDS_IN_MILLISECONDS;
+}
+
+} // namespace date_time
diff --git a/SDL_Core/src/components/Utils/src/file_system.cc b/SDL_Core/src/components/Utils/src/file_system.cc
new file mode 100644
index 000000000..2e5b909af
--- /dev/null
+++ b/SDL_Core/src/components/Utils/src/file_system.cc
@@ -0,0 +1,404 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "utils/file_system.h"
+
+#include <sys/statvfs.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include <dirent.h>
+#include <unistd.h>
+// TODO(VS): lint error: Streams are highly discouraged.
+#include <fstream>
+#include <cstddef>
+#include <algorithm>
+#include "config_profile/profile.h"
+
+uint64_t file_system::GetAvailableDiskSpace() {
+ char currentAppPath[FILENAME_MAX];
+ memset(reinterpret_cast<void*>(currentAppPath), 0, FILENAME_MAX);
+ getcwd(currentAppPath, FILENAME_MAX - 1);
+
+ struct statvfs fsInfo;
+ memset(reinterpret_cast<void*>(&fsInfo), 0, sizeof(fsInfo));
+ if( statvfs(currentAppPath, &fsInfo) == 0) {
+ return fsInfo.f_bsize * fsInfo.f_bfree;
+ } else {
+ return 0;
+ }
+}
+
+uint32_t file_system::FileSize(const std::string &path) {
+ if (file_system::FileExists(path)) {
+ struct stat file_info;
+ memset(reinterpret_cast<void*>(&file_info), 0, sizeof(file_info));
+ stat(path.c_str(), &file_info);
+ return file_info.st_size;
+ }
+ return 0;
+}
+
+uint32_t file_system::DirectorySize(const std::string& path) {
+ uint32_t size = 0;
+ int32_t return_code = 0;
+ DIR* directory = NULL;
+
+#ifndef __QNXNTO__
+ struct dirent dir_element_;
+ struct dirent* dir_element = &dir_element_;
+#else
+ char* direntbuffer =
+ new char[offsetof(struct dirent, d_name) +
+ pathconf(path.c_str(), _PC_NAME_MAX) + 1];
+ struct dirent* dir_element = new(direntbuffer) dirent;
+#endif
+ struct dirent* result = NULL;
+ struct stat file_info;
+ directory = opendir(path.c_str());
+ if (NULL != directory) {
+ return_code = readdir_r(directory, dir_element, &result);
+ for (; NULL != result && 0 == return_code;
+ return_code = readdir_r(directory, dir_element, &result)) {
+ if (0 == strcmp(result->d_name, "..")
+ || 0 == strcmp(result->d_name, ".")) {
+ continue;
+ }
+ std::string full_element_path = path + "/" + result->d_name;
+ if (file_system::IsDirectory(full_element_path)) {
+ size += DirectorySize(full_element_path);
+ } else {
+ memset(reinterpret_cast<void*>(&file_info), 0, sizeof(file_info));
+ stat(full_element_path.c_str(), &file_info);
+ size += file_info.st_size;
+ }
+ }
+ }
+ closedir(directory);
+#ifdef __QNXNTO__
+ delete[] direntbuffer;
+#endif
+ return size;
+}
+
+uint32_t file_system::GetAvailableSpaceForApp(const std::string& app_name) {
+ const uint32_t app_quota = profile::Profile::instance()->app_dir_quota();
+ if (DirectoryExists(app_name)) {
+ std::string full_path = FullPath(app_name);
+ uint32_t size_of_directory = DirectorySize(full_path);
+ if (app_quota < size_of_directory) {
+ return 0;
+ }
+ uint32_t current_app_quota = app_quota - size_of_directory;
+ uint32_t available_disk_space = GetAvailableDiskSpace();
+ if (current_app_quota > available_disk_space) {
+ return available_disk_space;
+ } else {
+ return current_app_quota;
+ }
+ } else {
+ return app_quota;
+ }
+}
+
+std::string file_system::CreateDirectory(const std::string& name) {
+ if (!DirectoryExists(name)) {
+ mkdir(name.c_str(), S_IRWXU);
+ }
+
+ return name;
+}
+
+bool file_system::IsDirectory(const std::string& name) {
+ struct stat status;
+ memset(&status, 0, sizeof(status));
+
+ if (-1 == stat(name.c_str(), &status)) {
+ return false;
+ }
+
+ return S_ISDIR(status.st_mode);
+}
+
+bool file_system::DirectoryExists(const std::string& name) {
+ struct stat status;
+ memset(&status, 0, sizeof(status));
+
+ if (-1 == stat(name.c_str(), &status) || !S_ISDIR(status.st_mode)) {
+ return false;
+ }
+
+ return true;
+}
+
+bool file_system::FileExists(const std::string& name) {
+ struct stat status;
+ memset(&status, 0, sizeof(status));
+
+ if (-1 == stat(name.c_str(), &status)) {
+ return false;
+ }
+ return true;
+}
+
+bool file_system::Write(
+ const std::string& file_name, const std::vector<uint8_t>& data,
+ std::ios_base::openmode mode) {
+ std::ofstream file(file_name.c_str(), std::ios_base::binary | mode);
+ if (file.is_open()) {
+ for (int32_t i = 0; i < data.size(); ++i) {
+ file << data[i];
+ }
+ file.close();
+ return true;
+ }
+ return false;
+}
+
+
+
+std::ofstream* file_system::Open(const std::string& file_name,
+ std::ios_base::openmode mode) {
+
+
+ std::ofstream* file = new std::ofstream();
+ file->open( file_name.c_str(),std::ios_base::binary | mode);
+ if (file->is_open()) {
+
+ return file;
+ }
+
+ return NULL;
+}
+
+bool file_system::Write(std::ofstream* const file_stream,
+ const uint8_t* data,
+ uint32_t data_size) {
+ bool result = false;
+ if (file_stream) {
+ for (size_t i = 0; i < data_size; ++i) {
+ (*file_stream) << data[i];
+ }
+ result = true;
+ }
+ return result;
+}
+
+void file_system::Close(std::ofstream* file_stream) {
+ if (file_stream) {
+ file_stream->close();
+ }
+}
+
+std::string file_system::FullPath(const std::string& file) {
+ // FILENAME_MAX defined stdio_lim.h was replaced with less value
+ // since it seems, that is caused overflow in some cases
+
+ size_t filename_max_lenght = 1024;
+ char currentAppPath[filename_max_lenght];
+ memset(currentAppPath, 0, filename_max_lenght);
+ getcwd(currentAppPath, filename_max_lenght);
+
+ char path[filename_max_lenght];
+ memset(path, 0, filename_max_lenght);
+ snprintf(path, filename_max_lenght - 1, "%s/%s", currentAppPath, file.c_str());
+ return std::string(path);
+}
+
+bool file_system::DeleteFile(const std::string& name) {
+ if (FileExists(name) && IsAccessible(name, W_OK)) {
+ return !remove(name.c_str());
+ }
+ return false;
+}
+
+void remove_directory_content(const std::string& directory_name) {
+ int32_t return_code = 0;
+ DIR* directory = NULL;
+#ifndef __QNXNTO__
+ struct dirent dir_element_;
+ struct dirent* dir_element = &dir_element_;
+#else
+ char* direntbuffer =
+ new char[offsetof(struct dirent, d_name) +
+ pathconf(directory_name.c_str(), _PC_NAME_MAX) + 1];
+ struct dirent* dir_element = new(direntbuffer) dirent;
+#endif
+ struct dirent* result = NULL;
+
+ directory = opendir(directory_name.c_str());
+
+ if (NULL != directory) {
+ return_code = readdir_r(directory, dir_element, &result);
+
+ for (; NULL != result && 0 == return_code;
+ return_code = readdir_r(directory, dir_element, &result)) {
+ if (0 == strcmp(result->d_name, "..")
+ || 0 == strcmp(result->d_name, ".")) {
+ continue;
+ }
+
+ std::string full_element_path = directory_name + "/" + result->d_name;
+
+ if (file_system::IsDirectory(full_element_path)) {
+ remove_directory_content(full_element_path);
+ rmdir(full_element_path.c_str());
+ } else {
+ remove(full_element_path.c_str());
+ }
+ }
+ }
+
+ closedir(directory);
+#ifdef __QNXNTO__
+ delete[] direntbuffer;
+#endif
+}
+
+bool file_system::RemoveDirectory(const std::string& directory_name,
+ bool is_recursively) {
+ if (DirectoryExists(directory_name)
+ && IsAccessible(directory_name, W_OK)) {
+ if (is_recursively) {
+ remove_directory_content(directory_name);
+ }
+
+ return !rmdir(directory_name.c_str());
+ }
+ return false;
+}
+
+bool file_system::IsAccessible(const std::string& name, int32_t how) {
+ return !access(name.c_str(), how);
+}
+
+std::vector<std::string> file_system::ListFiles(
+ const std::string& directory_name) {
+ std::vector<std::string> listFiles;
+ if (!DirectoryExists(directory_name)) {
+ return listFiles;
+ }
+
+ int32_t return_code = 0;
+ DIR* directory = NULL;
+#ifndef __QNXNTO__
+ struct dirent dir_element_;
+ struct dirent* dir_element = &dir_element_;
+#else
+ char* direntbuffer =
+ new char[offsetof(struct dirent, d_name) +
+ pathconf(directory_name.c_str(), _PC_NAME_MAX) + 1];
+ struct dirent* dir_element = new(direntbuffer) dirent;
+#endif
+ struct dirent* result = NULL;
+
+ directory = opendir(directory_name.c_str());
+ if (NULL != directory) {
+ return_code = readdir_r(directory, dir_element, &result);
+
+ for (; NULL != result && 0 == return_code;
+ return_code = readdir_r(directory, dir_element, &result)) {
+ if (0 == strcmp(result->d_name, "..")
+ || 0 == strcmp(result->d_name, ".")) {
+ continue;
+ }
+
+ listFiles.push_back(std::string(result->d_name));
+ }
+
+ closedir(directory);
+#ifdef __QNXNTO__
+ delete[] direntbuffer;
+#endif
+ }
+
+ return listFiles;
+}
+
+bool file_system::ReadBinaryFile(const std::string& name,
+ std::vector<uint8_t>& result) {
+ if (!FileExists(name) || !IsAccessible(name, R_OK)) {
+ return false;
+ }
+
+ std::ifstream file(name.c_str(), std::ios_base::binary);
+ std::ostringstream ss;
+ ss << file.rdbuf();
+ const std::string& s = ss.str();
+
+ result.resize(s.length());
+ std::copy(s.begin(), s.end(), result.begin());
+ return true;
+}
+
+bool file_system::ReadFile(const std::string& name, std::string& result) {
+ if (!FileExists(name) || !IsAccessible(name, R_OK)) {
+ return false;
+ }
+
+ std::ifstream file(name.c_str());
+ std::ostringstream ss;
+ ss << file.rdbuf();
+ result = ss.str();
+ return true;
+}
+
+const std::string file_system::ConvertPathForURL(const std::string& path) {
+ std::string::const_iterator it_path = path.begin();
+ std::string::const_iterator it_path_end = path.end();
+
+ const std::string reserved_symbols = "!#$&'()*+,:;=?@[] ";
+ std::string::const_iterator it_sym = reserved_symbols.begin();
+ std::string::const_iterator it_sym_end = reserved_symbols.end();
+
+ std::string converted_path;
+ while (it_path != it_path_end) {
+
+ it_sym = reserved_symbols.begin();
+ for (; it_sym != it_sym_end; ++it_sym) {
+
+ if (*it_path == *it_sym) {
+ size_t size = 100;
+ char percent_value[size];
+ snprintf(percent_value, size, "%%%x", *it_path);
+ converted_path += percent_value;
+ ++it_path;
+ continue;
+ }
+ }
+
+ converted_path += *it_path;
+ ++it_path;
+ }
+
+ return converted_path;
+}
diff --git a/SDL_Core/src/components/Utils/src/lock_posix.cc b/SDL_Core/src/components/Utils/src/lock_posix.cc
new file mode 100644
index 000000000..be292f3e6
--- /dev/null
+++ b/SDL_Core/src/components/Utils/src/lock_posix.cc
@@ -0,0 +1,126 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "utils/lock.h"
+
+#include <errno.h>
+
+#include "utils/logger.h"
+
+namespace {
+log4cxx::LoggerPtr g_logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("Utils"));
+}
+
+namespace sync_primitives {
+
+Lock::Lock()
+#ifndef NDEBUG
+ : lock_taken_(false)
+#endif // NDEBUG
+{
+ int32_t status = pthread_mutex_init(&mutex_, NULL);
+ if (status != 0) {
+ LOG4CXX_ERROR(g_logger, "Failed to initialize mutex");
+ }
+}
+
+Lock::~Lock() {
+#ifndef NDEBUG
+ if (lock_taken_) {
+ LOG4CXX_ERROR(g_logger, "Destroying non-released mutex");
+ }
+#endif
+ int32_t status = pthread_mutex_destroy(&mutex_);
+ if (status != 0) {
+ LOG4CXX_ERROR(g_logger, "Failed to destroy mutex");
+ }
+}
+
+void Lock::Ackquire() {
+ int32_t status = pthread_mutex_lock(&mutex_);
+ if (status != 0) {
+ LOG4CXX_ERROR(g_logger, "Failed to acquire mutex");
+ }
+ AssertFreeAndMarkTaken();
+}
+
+void Lock::Release() {
+ AssertTakenAndMarkFree();
+ int32_t status = pthread_mutex_unlock(&mutex_);
+ if (status != 0) {
+ LOG4CXX_ERROR(g_logger, "Failed to unlock mutex");
+ }
+}
+
+bool Lock::Try() {
+ bool ackquired = false;
+#ifndef NDEBUG
+ if (lock_taken_) {
+ LOG4CXX_ERROR(g_logger, "Trying to lock already taken mutex");
+ }
+#endif
+ switch(pthread_mutex_trylock(&mutex_)) {
+ case 0: {
+ ackquired = true;
+#ifndef NDEBUG
+ lock_taken_ = true;
+#endif
+ } break;
+ case EBUSY: {
+ ackquired = false;
+ } break;
+ default: {
+ ackquired = false;
+ LOG4CXX_ERROR(g_logger, "Failed to try lock the mutex");
+ }
+ }
+ return ackquired;
+}
+
+#ifndef NDEBUG
+void Lock::AssertFreeAndMarkTaken() {
+ if (lock_taken_) {
+ LOG4CXX_ERROR(g_logger, "Locking already taken mutex");
+ }
+ lock_taken_ = true;
+}
+void Lock::AssertTakenAndMarkFree() {
+ if (!lock_taken_) {
+ LOG4CXX_ERROR(g_logger, "Unlocking a mutex that is not taken");
+ }
+ lock_taken_ = false;
+}
+#endif
+
+
+} // namespace sync_primitives
diff --git a/SDL_Core/src/components/Utils/src/signals_linux.cc b/SDL_Core/src/components/Utils/src/signals_linux.cc
new file mode 100644
index 000000000..1821f6fbe
--- /dev/null
+++ b/SDL_Core/src/components/Utils/src/signals_linux.cc
@@ -0,0 +1,57 @@
+/**
+* \file signals.cc
+* \brief Signal (i.e. SIGINT) handling.
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <csignal>
+#include <stdint.h>
+
+namespace utils {
+
+bool SubscribeToTerminateSignal(void (*func)(int32_t p)) {
+ void (*prev_func)(int32_t p);
+
+ prev_func = signal(SIGINT, func);
+ return (SIG_ERR != prev_func);
+}
+
+bool ResetSubscribeToTerminateSignal() {
+ void (*prev_func)(int32_t p);
+ prev_func = signal(SIGINT, SIG_DFL);
+ return (SIG_ERR != prev_func);
+}
+
+void ForwardSignal() {
+ int32_t signal_id = SIGINT;
+ raise(signal_id);
+}
+
+} // namespace utils
diff --git a/SDL_Core/src/components/Utils/src/threads/posix_thread.cc b/SDL_Core/src/components/Utils/src/threads/posix_thread.cc
new file mode 100644
index 000000000..e59fedc2a
--- /dev/null
+++ b/SDL_Core/src/components/Utils/src/threads/posix_thread.cc
@@ -0,0 +1,185 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <limits.h>
+#include <stddef.h>
+
+#include "utils/threads/thread.h"
+#include "utils/threads/thread_manager.h"
+
+using namespace std;
+using namespace threads::impl;
+
+namespace {
+static void* threadFunc(void* closure) {
+ threads::ThreadDelegate* delegate =
+ static_cast<threads::ThreadDelegate*>(closure);
+ delegate->threadMain();
+ return NULL;
+}
+}
+
+namespace threads {
+size_t Thread::kMinStackSize = PTHREAD_STACK_MIN; /* Ubuntu : 16384 ; QNX : 256; */
+log4cxx::LoggerPtr Thread::logger_ =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("threads::Thread"));
+
+bool Thread::Id::operator==(const Thread::Id other) const {
+ return pthread_equal(id_, other.id_) != 0;
+}
+
+// static
+Thread::Id Thread::CurrentId() {
+ return Id(pthread_self());
+}
+
+//static
+std::string Thread::NameFromId(Id thread_id) {
+ return ThreadManager::instance()->GetName(thread_id.id_);
+}
+
+//static
+void Thread::SetNameForId(Id thread_id, const std::string& name) {
+ ThreadManager::instance()->RegisterName(thread_id.id_, name);
+}
+
+
+Thread::Thread(const char* name, ThreadDelegate* delegate)
+ : name_("undefined"),
+ delegate_(delegate),
+ thread_handle_(0),
+ thread_options_(),
+ isThreadRunning_(false) {
+ if (name) {
+ name_ = name;
+ }
+}
+
+Thread::~Thread() {
+ ThreadManager::instance()->Unregister(thread_handle_);
+ if (delegate_) {
+ delete delegate_;
+ }
+}
+
+bool Thread::start() {
+ return startWithOptions(thread_options_);
+}
+
+bool Thread::startWithOptions(const ThreadOptions& options) {
+ if (!delegate_) {
+ NOTREACHED();
+ return false;
+ }
+
+ thread_options_ = options;
+
+ bool success = false;
+ pthread_attr_t attributes;
+ int pthread_result = pthread_attr_init(&attributes);
+ if (pthread_result != 0) {
+ LOG4CXX_INFO(logger_,"Couldn't init pthread attributes."
+ " Error code = " << pthread_result);
+ }
+ if (!thread_options_.is_joinable()) {
+ pthread_result = pthread_attr_setdetachstate(&attributes, PTHREAD_CREATE_DETACHED);
+ if (pthread_result != 0) {
+ LOG4CXX_INFO(logger_,"Couldn't set detach state attribute. Error code = " << pthread_result);
+ }
+ }
+
+ // 0 - default value
+ if (thread_options_.stack_size() > 0
+ && thread_options_.stack_size() >= Thread::kMinStackSize) {
+ pthread_result = pthread_attr_setstacksize(&attributes, thread_options_.stack_size());
+ if (pthread_result != 0) {
+ LOG4CXX_INFO(logger_,"Couldn't set stacksize = " << thread_options_.stack_size() <<
+ "Error code = " << pthread_result);
+ }
+ }
+ success = !pthread_create(&thread_handle_, &attributes, threadFunc,
+ delegate_);
+ if (success) {
+ pthread_result = pthread_setname_np(thread_handle_, name_.c_str());
+# ifdef __QNXNTO__
+ if (pthread_result != EOK) {
+ LOG4CXX_INFO(logger_,"Couldn't set pthread name"
+ " Error code = " << pthread_result);
+ }
+# endif
+ LOG4CXX_INFO(logger_,"Created thread: " << name_);
+ ThreadManager::instance()->RegisterName(thread_handle_, name_);
+ }
+
+ isThreadRunning_ = success;
+
+ pthread_result = pthread_attr_destroy(&attributes);
+ if (pthread_result != 0) {
+ LOG4CXX_INFO(logger_,"Couldn't destroy pthread attributes."
+ " Error code = " << pthread_result);
+ }
+ return success;
+}
+
+void Thread::stop() {
+ if (!is_running()) {
+ return;
+ }
+
+ if (NULL != delegate_) {
+ if (!delegate_->exitThreadMain()) {
+ if (thread_handle_ != pthread_self()) {
+ pthread_cancel(thread_handle_);
+ }
+ }
+ }
+
+ // Wait for the thread to exit. It should already have terminated but make
+ // sure this assumption is valid.
+
+ join();
+}
+
+void Thread::join() {
+ int pthread_result = pthread_join(thread_handle_, NULL);
+ if (pthread_result != 0) {
+ LOG4CXX_INFO(logger_,"Couldn't join thread "
+ " Error code = " << pthread_result);
+ }
+ isThreadRunning_ = false;
+}
+
+std::ostream& operator<<(std::ostream& os, Thread::Id thread_id) {
+ return os<<Thread::NameFromId(thread_id);
+}
+
+} // namespace threads
diff --git a/SDL_Core/src/components/Utils/src/threads/thread_manager.cc b/SDL_Core/src/components/Utils/src/threads/thread_manager.cc
new file mode 100644
index 000000000..e4b96aa51
--- /dev/null
+++ b/SDL_Core/src/components/Utils/src/threads/thread_manager.cc
@@ -0,0 +1,120 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "utils/threads/thread_manager.h"
+
+#include <sstream>
+
+#if defined(OS_LINUX)
+#include <sys/syscall.h>
+#include <unistd.h>
+#endif
+
+namespace threads {
+namespace impl {
+using namespace std;
+using namespace sync_primitives;
+
+namespace {
+
+const char* kUnknownName = "UnnamedThread";
+
+log4cxx::LoggerPtr g_logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("Utils"));
+
+} // namespace
+
+UnnamedThreadRegistry::UnnamedThreadRegistry() {
+
+}
+
+UnnamedThreadRegistry::~UnnamedThreadRegistry() {
+
+}
+
+std::string UnnamedThreadRegistry::GetUniqueName(PlatformThreadHandle id) {
+ AutoLock auto_lock(state_lock_);
+ IdNameMap::iterator found = id_number_.find(id);
+ if (found != id_number_.end()) {
+ return found->second;
+ } else {
+ ++last_thread_number_;
+ std::stringstream namestream;
+ namestream<<kUnknownName<<last_thread_number_;
+ return id_number_[id] = namestream.str();
+ }
+}
+
+ThreadManager::ThreadManager() {
+ names_.insert(kUnknownName);
+}
+
+ThreadManager::~ThreadManager() {
+}
+
+void ThreadManager::RegisterName(PlatformThreadHandle id, const string& name) {
+ AutoLock auto_lock(state_lock_);
+ if (names_.count(name) == 0) {
+ names_.insert(name);
+ pair<IdNamesMap::iterator, bool> inserted =
+ id_names_.insert(make_pair(id, name));
+ if (!inserted.second) {
+ LOG4CXX_ERROR(g_logger, "Trying to register thread name " << name
+ <<", but it is already registered with name "
+ <<inserted.first->second);
+ }
+ } else {
+ LOG4CXX_ERROR(g_logger, "Ignoring duplicate thread name: " + name);
+ }
+}
+
+string ThreadManager::GetName(PlatformThreadHandle id) const {
+ AutoLock auto_lock(state_lock_);
+ IdNamesMap::const_iterator found = id_names_.find(id);
+ if (found != id_names_.end()) {
+ return found->second;
+ } else {
+ LOG4CXX_WARN(g_logger, "Thread doesn't have associated name");
+ return unnamed_thread_namer_.GetUniqueName(id);
+ }
+}
+
+void ThreadManager::Unregister(PlatformThreadHandle id) {
+ AutoLock auto_lock(state_lock_);
+ string name = id_names_[id];
+ names_.erase(name);
+ id_names_.erase(id);
+}
+
+
+} // namespace impl
+} // namespace threads
diff --git a/SDL_Core/src/components/Utils/src/threads/thread_validator.cc b/SDL_Core/src/components/Utils/src/threads/thread_validator.cc
new file mode 100644
index 000000000..5bc66f138
--- /dev/null
+++ b/SDL_Core/src/components/Utils/src/threads/thread_validator.cc
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "utils/threads/thread_validator.h"
+
+#include "utils/logger.h"
+#include "utils/back_trace.h"
+
+namespace threads {
+
+namespace {
+log4cxx::LoggerPtr g_logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("Utils"));
+}
+
+SingleThreadSimpleValidator::SingleThreadSimpleValidator()
+ : creation_thread_id_(Thread::CurrentId()) {
+}
+
+SingleThreadSimpleValidator::~SingleThreadSimpleValidator() {
+}
+
+void SingleThreadSimpleValidator::AssertRunningOnCreationThread() const {
+ Thread::Id current_id = Thread::CurrentId();
+ if (creation_thread_id_ != current_id) {
+ LOG4CXX_ERROR(g_logger, "Single-threaded object created at thread "
+ << creation_thread_id_
+ <<" is accessed from thread "
+ << current_id
+#ifdef BACKTRACE_SUPPORT
+ << "\n"
+ << utils::Backtrace()
+#endif
+ );
+ }
+}
+
+
+SingleThreadValidator::SingleThreadValidator()
+ : owning_thread_id_(Thread::CurrentId()){
+}
+
+SingleThreadValidator::~SingleThreadValidator() {
+}
+
+void SingleThreadValidator::PassToThread(Thread::Id thread_id) const {
+ owning_thread_id_ = thread_id;
+}
+
+void SingleThreadValidator::AssertRunningOnValidThread() const {
+ Thread::Id current_id = Thread::CurrentId();
+ if (owning_thread_id_ != current_id) {
+ LOG4CXX_ERROR(g_logger, "Single-threaded object owned by thread "
+ << owning_thread_id_
+ << " is accessed from thread "
+ << current_id << "\n"
+#ifdef BACKTRACE_SUPPORT
+ << utils::Backtrace()
+#endif
+ );
+ }
+}
+
+
+} // namespace threads
+
+// vim: set ts=2 sw=2 et:
diff --git a/SDL_Core/src/components/application_manager/CMakeLists.txt b/SDL_Core/src/components/application_manager/CMakeLists.txt
new file mode 100644
index 000000000..916d72749
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/CMakeLists.txt
@@ -0,0 +1,347 @@
+include_directories (
+ ./include/
+ ../utils/include/
+ ../formatters/include/
+ ../protocol_handler/include/
+ ../smart_objects/include/
+ ../hmi_message_handler/include
+ ../media_manager/include/
+ ../connection_handler/include/
+ ../config_profile/include/
+ ../request_watchdog/include/
+ ../transport_manager/include/
+ ../policies/include/
+ ../../thirdPartyLibs/jsoncpp/include/
+ ../../thirdPartyLibs/encryption/include/
+ ../../thirdPartyLibs/MessageBroker/include
+ ${CMAKE_BINARY_DIR}/src/components/
+)
+
+set (SOURCES
+./src/application_manager_impl.cc
+./src/message.cc
+./src/application_impl.cc
+./src/mobile_command_factory.cc
+./src/message_helper.cc
+./src/hmi_command_factory.cc
+./src/hmi_capabilities.cc
+./src/application_data_impl.cc
+./src/request_controller.cc
+./src/resume_ctrl.cpp
+./src/mobile_message_handler.cc
+)
+
+set (POLICIES_MANAGER
+./src/policies_manager/policies_manager.cc
+)
+
+set (EVENT_ENGINE
+./src/event_engine/event.cc
+./src/event_engine/event_dispatcher.cc
+./src/event_engine/event_observer.cc
+)
+
+set (MOBILE_COMMANDS_SOURCES
+./src/commands/command_impl.cc
+./src/commands/command_request_impl.cc
+./src/commands/command_response_impl.cc
+./src/commands/command_notification_impl.cc
+./src/commands/pending.cc
+./src/commands/mobile/add_command_request.cc
+./src/commands/mobile/add_command_response.cc
+./src/commands/mobile/add_sub_menu_request.cc
+./src/commands/mobile/add_sub_menu_response.cc
+./src/commands/mobile/alert_request.cc
+./src/commands/mobile/alert_response.cc
+./src/commands/mobile/alert_maneuver_request.cc
+./src/commands/mobile/alert_maneuver_response.cc
+./src/commands/mobile/change_registration_request.cc
+./src/commands/mobile/change_registration_response.cc
+./src/commands/mobile/create_interaction_choice_set_request.cc
+./src/commands/mobile/create_interaction_choice_set_response.cc
+./src/commands/mobile/delete_command_request.cc
+./src/commands/mobile/delete_command_response.cc
+./src/commands/mobile/delete_file_request.cc
+./src/commands/mobile/delete_file_response.cc
+./src/commands/mobile/delete_interaction_choice_set_request.cc
+./src/commands/mobile/delete_interaction_choice_set_response.cc
+./src/commands/mobile/delete_sub_menu_request.cc
+./src/commands/mobile/delete_sub_menu_response.cc
+./src/commands/mobile/dial_number_request.cc
+./src/commands/mobile/encoded_sync_pdata_request.cc
+./src/commands/mobile/encoded_sync_pdata_response.cc
+./src/commands/mobile/end_audio_pass_thru_request.cc
+./src/commands/mobile/end_audio_pass_thru_response.cc
+./src/commands/mobile/generic_response.cc
+./src/commands/mobile/get_dtcs_request.cc
+./src/commands/mobile/get_dtcs_response.cc
+./src/commands/mobile/diagnostic_message_request.cc
+./src/commands/mobile/diagnostic_message_response.cc
+./src/commands/mobile/get_vehicle_data_request.cc
+./src/commands/mobile/get_vehicle_data_response.cc
+./src/commands/mobile/list_files_request.cc
+./src/commands/mobile/list_files_response.cc
+./src/commands/mobile/on_app_interface_unregistered_notification.cc
+./src/commands/mobile/on_audio_pass_thru_notification.cc
+./src/commands/mobile/on_button_event_notification.cc
+./src/commands/mobile/on_button_press_notification.cc
+./src/commands/mobile/on_driver_distraction_notification.cc
+./src/commands/mobile/on_encoded_sync_pdata_notification.cc
+./src/commands/mobile/on_hmi_status_notification.cc
+./src/commands/mobile/on_language_change_notification.cc
+./src/commands/mobile/on_command_notification.cc
+./src/commands/mobile/on_permissions_change_notification.cc
+./src/commands/mobile/on_tbt_client_state_notification.cc
+./src/commands/mobile/on_vehicle_data_notification.cc
+./src/commands/mobile/perform_audio_pass_thru_request.cc
+./src/commands/mobile/perform_audio_pass_thru_response.cc
+./src/commands/mobile/perform_interaction_request.cc
+./src/commands/mobile/perform_interaction_response.cc
+./src/commands/mobile/put_file_request.cc
+./src/commands/mobile/put_file_response.cc
+./src/commands/mobile/read_did_request.cc
+./src/commands/mobile/read_did_response.cc
+./src/commands/mobile/register_app_interface_request.cc
+./src/commands/mobile/register_app_interface_response.cc
+./src/commands/mobile/reset_global_properties_request.cc
+./src/commands/mobile/reset_global_properties_response.cc
+./src/commands/mobile/scrollable_message_request.cc
+./src/commands/mobile/scrollable_message_response.cc
+./src/commands/mobile/set_display_layout_request.cc
+./src/commands/mobile/set_display_layout_response.cc
+./src/commands/mobile/set_global_properties_request.cc
+./src/commands/mobile/set_global_properties_response.cc
+./src/commands/mobile/set_icon_request.cc
+./src/commands/mobile/set_icon_response.cc
+./src/commands/mobile/set_media_clock_timer_request.cc
+./src/commands/mobile/set_media_clock_timer_response.cc
+./src/commands/mobile/show_constant_tbt_request.cc
+./src/commands/mobile/show_constant_tbt_response.cc
+./src/commands/mobile/show_request.cc
+./src/commands/mobile/show_response.cc
+./src/commands/mobile/slider_request.cc
+./src/commands/mobile/slider_response.cc
+./src/commands/mobile/speak_request.cc
+./src/commands/mobile/speak_response.cc
+./src/commands/mobile/subscribe_button_request.cc
+./src/commands/mobile/subscribe_button_response.cc
+./src/commands/mobile/subscribe_vehicle_data_request.cc
+./src/commands/mobile/subscribe_vehicle_data_response.cc
+./src/commands/mobile/unregister_app_interface_request.cc
+./src/commands/mobile/unregister_app_interface_response.cc
+./src/commands/mobile/unsubscribe_button_request.cc
+./src/commands/mobile/unsubscribe_button_response.cc
+./src/commands/mobile/unsubscribe_vehicle_data_request.cc
+./src/commands/mobile/unsubscribe_vehicle_data_response.cc
+./src/commands/mobile/update_turn_list_request.cc
+./src/commands/mobile/update_turn_list_response.cc
+./src/commands/mobile/sync_pdata_request.cc
+./src/commands/mobile/sync_pdata_response.cc
+./src/commands/mobile/system_request.cc
+./src/commands/mobile/system_response.cc
+./src/commands/mobile/on_sync_pdata_notification.cc
+./src/commands/mobile/on_keyboard_input_notification.cc
+./src/commands/mobile/on_touch_event_notification.cc
+./src/commands/mobile/on_system_request_notification.cc
+./src/commands/mobile/on_hash_change_notification.cc
+)
+
+set (HMI_COMMANDS_SOURCES
+./src/commands/hmi/request_to_hmi.cc
+./src/commands/hmi/response_from_hmi.cc
+./src/commands/hmi/notification_to_hmi.cc
+./src/commands/hmi/notification_from_hmi.cc
+./src/commands/hmi/allow_all_apps_request.cc
+./src/commands/hmi/allow_all_apps_response.cc
+./src/commands/hmi/allow_app_request.cc
+./src/commands/hmi/allow_app_response.cc
+./src/commands/hmi/activate_app_request.cc
+./src/commands/hmi/activate_app_response.cc
+./src/commands/hmi/mixing_audio_supported_request.cc
+./src/commands/hmi/mixing_audio_supported_response.cc
+./src/commands/hmi/update_app_list_request.cc
+./src/commands/hmi/update_app_list_response.cc
+./src/commands/hmi/on_update_device_list.cc
+./src/commands/hmi/update_device_list_request.cc
+./src/commands/hmi/update_device_list_response.cc
+./src/commands/hmi/on_exit_all_applications_notification.cc
+./src/commands/hmi/on_exit_application_notification.cc
+./src/commands/hmi/on_start_device_discovery.cc
+./src/commands/hmi/close_popup_request.cc
+./src/commands/hmi/close_popup_response.cc
+./src/commands/hmi/on_app_activated_notification.cc
+./src/commands/hmi/button_get_capabilities_request.cc
+./src/commands/hmi/button_get_capabilities_response.cc
+./src/commands/hmi/vr_is_ready_request.cc
+./src/commands/hmi/vr_is_ready_response.cc
+./src/commands/hmi/vr_add_command_request.cc
+./src/commands/hmi/vr_add_command_response.cc
+./src/commands/hmi/vr_delete_command_request.cc
+./src/commands/hmi/vr_delete_command_response.cc
+./src/commands/hmi/vr_change_registration_request.cc
+./src/commands/hmi/vr_change_registration_response.cc
+./src/commands/hmi/vr_get_supported_languages_request.cc
+./src/commands/hmi/vr_get_supported_languages_response.cc
+./src/commands/hmi/vr_get_language_request.cc
+./src/commands/hmi/vr_get_language_response.cc
+./src/commands/hmi/vr_get_capabilities_request.cc
+./src/commands/hmi/vr_get_capabilities_response.cc
+./src/commands/hmi/tts_is_ready_request.cc
+./src/commands/hmi/tts_is_ready_response.cc
+./src/commands/hmi/tts_change_registration_request.cc
+./src/commands/hmi/tts_change_registration_response.cc
+./src/commands/hmi/tts_get_language_request.cc
+./src/commands/hmi/tts_get_language_response.cc
+./src/commands/hmi/tts_get_supported_languages_request.cc
+./src/commands/hmi/tts_get_supported_languages_response.cc
+./src/commands/hmi/tts_stop_speaking_request.cc
+./src/commands/hmi/tts_stop_speaking_response.cc
+./src/commands/hmi/tts_speak_request.cc
+./src/commands/hmi/tts_speak_response.cc
+./src/commands/hmi/tts_set_global_properties_request.cc
+./src/commands/hmi/tts_set_global_properties_response.cc
+./src/commands/hmi/tts_get_capabilities_request.cc
+./src/commands/hmi/tts_get_capabilities_response.cc
+./src/commands/hmi/tts_perform_interaction_request.cc
+./src/commands/hmi/tts_perform_interaction_response.cc
+./src/commands/hmi/ui_add_command_request.cc
+./src/commands/hmi/ui_add_command_response.cc
+./src/commands/hmi/ui_delete_command_request.cc
+./src/commands/hmi/ui_delete_command_response.cc
+./src/commands/hmi/ui_add_submenu_request.cc
+./src/commands/hmi/ui_add_submenu_response.cc
+./src/commands/hmi/ui_delete_submenu_request.cc
+./src/commands/hmi/ui_delete_submenu_response.cc
+./src/commands/hmi/ui_get_supported_languages_request.cc
+./src/commands/hmi/ui_get_supported_languages_response.cc
+./src/commands/hmi/ui_get_language_request.cc
+./src/commands/hmi/ui_get_language_response.cc
+./src/commands/hmi/ui_get_capabilities_request.cc
+./src/commands/hmi/ui_get_capabilities_response.cc
+./src/commands/hmi/ui_change_registration_request.cc
+./src/commands/hmi/ui_change_registration_response.cc
+./src/commands/hmi/ui_show_request.cc
+./src/commands/hmi/ui_show_response.cc
+./src/commands/hmi/ui_alert_request.cc
+./src/commands/hmi/ui_alert_response.cc
+./src/commands/hmi/ui_slider_request.cc
+./src/commands/hmi/ui_scrollable_message_request.cc
+./src/commands/hmi/ui_scrollable_message_response.cc
+./src/commands/hmi/ui_set_global_properties_request.cc
+./src/commands/hmi/ui_set_global_properties_response.cc
+./src/commands/hmi/ui_slider_response.cc
+./src/commands/hmi/ui_is_ready_request.cc
+./src/commands/hmi/ui_is_ready_response.cc
+./src/commands/hmi/ui_perform_audio_pass_thru_request.cc
+./src/commands/hmi/ui_perform_audio_pass_thru_response.cc
+./src/commands/hmi/ui_end_audio_pass_thru_request.cc
+./src/commands/hmi/ui_end_audio_pass_thru_response.cc
+./src/commands/hmi/ui_perform_interaction_request.cc
+./src/commands/hmi/ui_perform_interaction_response.cc
+./src/commands/hmi/ui_set_icon_request.cc
+./src/commands/hmi/ui_set_icon_response.cc
+./src/commands/hmi/ui_set_media_clock_timer_request.cc
+./src/commands/hmi/ui_set_media_clock_timer_response.cc
+./src/commands/hmi/ui_show_request.cc
+./src/commands/hmi/ui_show_response.cc
+./src/commands/hmi/vi_is_ready_request.cc
+./src/commands/hmi/vi_is_ready_response.cc
+./src/commands/hmi/vi_read_did_request.cc
+./src/commands/hmi/vi_read_did_response.cc
+./src/commands/hmi/vi_get_dtcs_request.cc
+./src/commands/hmi/vi_get_dtcs_response.cc
+./src/commands/hmi/vi_diagnostic_message_request.cc
+./src/commands/hmi/vi_diagnostic_message_response.cc
+./src/commands/hmi/vi_get_vehicle_type_request.cc
+./src/commands/hmi/vi_get_vehicle_type_response.cc
+./src/commands/hmi/navi_is_ready_request.cc
+./src/commands/hmi/navi_is_ready_response.cc
+./src/commands/hmi/navi_alert_maneuver_request.cc
+./src/commands/hmi/navi_alert_maneuver_response.cc
+./src/commands/hmi/navi_update_turn_list_request.cc
+./src/commands/hmi/navi_update_turn_list_response.cc
+./src/commands/hmi/navi_show_constant_tbt_request.cc
+./src/commands/hmi/navi_show_constant_tbt_response.cc
+./src/commands/hmi/on_ready_notification.cc
+./src/commands/hmi/on_system_context_notification.cc
+./src/commands/hmi/on_device_chosen_notification.cc
+./src/commands/hmi/on_update_device_list.cc
+./src/commands/hmi/on_app_registered_notification.cc
+./src/commands/hmi/on_app_unregistered_notification.cc
+./src/commands/hmi/on_driver_distraction_notification.cc
+./src/commands/hmi/on_play_tone_notification.cc
+./src/commands/hmi/on_tts_started_notification.cc
+./src/commands/hmi/on_tts_stopped_notification.cc
+./src/commands/hmi/on_vr_started_notification.cc
+./src/commands/hmi/on_vr_stopped_notification.cc
+./src/commands/hmi/on_vr_command_notification.cc
+./src/commands/hmi/on_ui_command_notification.cc
+./src/commands/hmi/on_navi_tbt_client_state_notification.cc
+./src/commands/hmi/on_app_deactivated_notification.cc
+./src/commands/hmi/on_tts_language_change_notification.cc
+./src/commands/hmi/on_vr_language_change_notification.cc
+./src/commands/hmi/on_ui_language_change_notification.cc
+./src/commands/hmi/on_button_event_notification.cc
+./src/commands/hmi/on_button_press_notification.cc
+./src/commands/hmi/on_show_notification.cc
+./src/commands/hmi/on_find_applications.cc
+./src/commands/hmi/on_ui_keyboard_input_notification.cc
+./src/commands/hmi/on_ui_touch_event_notification.cc
+./src/commands/hmi/on_ui_reset_timeout_notification.cc
+./src/commands/hmi/navi_start_stream_request.cc
+./src/commands/hmi/navi_start_stream_response.cc
+./src/commands/hmi/navi_stop_stream_request.cc
+./src/commands/hmi/navi_stop_stream_response.cc
+./src/commands/hmi/audio_start_stream_request.cc
+./src/commands/hmi/audio_start_stream_response.cc
+./src/commands/hmi/audio_stop_stream_request.cc
+./src/commands/hmi/audio_stop_stream_response.cc
+./src/commands/hmi/on_system_request_notification.cc
+./src/commands/hmi/ui_set_display_layout_request.cc
+./src/commands/hmi/ui_set_display_layout_response.cc
+./src/commands/hmi/on_sdl_close_notification.cc
+)
+
+set (HMI_COMMANDS_SOURCES_WEBHMI
+./src/commands/hmi/vi_get_vehicle_data_request.cc
+./src/commands/hmi/vi_get_vehicle_data_response.cc
+./src/commands/hmi/vi_subscribe_vehicle_data_request.cc
+./src/commands/hmi/vi_subscribe_vehicle_data_response.cc
+./src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc
+./src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc
+./src/commands/hmi/on_vi_vehicle_data_notification.cc
+)
+
+set (HMI_COMMANDS_SOURCES_QTHMI
+./src/commands/hmi/on_vi_gps_data_notification.cc
+./src/commands/hmi/on_vi_speed_notification.cc
+./src/commands/hmi/on_vi_rpm_notification.cc
+./src/commands/hmi/on_vi_fuel_level_notification.cc
+./src/commands/hmi/on_vi_fuel_level_state_notification.cc
+./src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc
+./src/commands/hmi/on_vi_external_temperature_notification.cc
+./src/commands/hmi/on_vi_vin_notification.cc
+./src/commands/hmi/on_vi_prndl_notification.cc
+./src/commands/hmi/on_vi_tire_pressure_notification.cc
+./src/commands/hmi/on_vi_odometer_notification.cc
+./src/commands/hmi/on_vi_belt_status_notification.cc
+./src/commands/hmi/on_vi_body_information_notification.cc
+./src/commands/hmi/on_vi_device_status_notification.cc
+./src/commands/hmi/on_vi_driver_braking_notification.cc
+./src/commands/hmi/on_vi_wiper_status_notification.cc
+./src/commands/hmi/on_vi_head_lamp_status_notification.cc
+./src/commands/hmi/on_vi_engine_torque_notification.cc
+./src/commands/hmi/on_vi_acc_pedal_position_notification.cc
+./src/commands/hmi/on_vi_steering_wheel_angle_notification.cc
+./src/commands/hmi/on_vi_my_key_notification.cc
+)
+
+if (${WEB_HMI})
+ set (HMI_COMMANDS_SOURCES ${HMI_COMMANDS_SOURCES} ${HMI_COMMANDS_SOURCES_WEBHMI})
+endif (${WEB_HMI})
+if (${QT_HMI})
+ set (HMI_COMMANDS_SOURCES ${HMI_COMMANDS_SOURCES} ${HMI_COMMANDS_SOURCES_QTHMI})
+endif (${QT_HMI})
+
+add_library("ApplicationManager" ${SOURCES} ${MOBILE_COMMANDS_SOURCES} ${HMI_COMMANDS_SOURCES} ${POLICIES_MANAGER} ${EVENT_ENGINE})
+target_link_libraries ("ApplicationManager" log4cxx)
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/application.h b/SDL_Core/src/components/application_manager/include/application_manager/application.h
new file mode 100644
index 000000000..06f69348b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/application.h
@@ -0,0 +1,438 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_H_
+
+#include <string>
+#include <map>
+#include "utils/shared_ptr.h"
+#include "interfaces/MOBILE_API.h"
+#include "connection_handler/device.h"
+#include <set>
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+}
+}
+
+namespace application_manager {
+
+namespace mobile_api = mobile_apis;
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+typedef int32_t ErrorCode;
+
+enum APIVersion {
+ kUnknownAPI = -1,
+ kAPIV1 = 1,
+ kAPIV2 = 2
+};
+
+struct Version {
+ APIVersion min_supported_api_version;
+ APIVersion max_supported_api_version;
+
+ Version()
+ : min_supported_api_version(APIVersion::kUnknownAPI),
+ max_supported_api_version(APIVersion::kUnknownAPI) {
+ }
+};
+
+struct AppFile {
+ // need to use in std::map;
+ AppFile() {
+ }
+ AppFile(const std::string& name, bool persistent, bool download_complete,
+ mobile_apis::FileType::eType type)
+ : is_persistent(persistent),
+ is_download_complete(download_complete),
+ file_name(name),
+ file_type(type){
+ }
+ std::string file_name;
+ bool is_persistent;
+ bool is_download_complete;
+ mobile_apis::FileType::eType file_type;
+};
+typedef std::map<std::string, AppFile> AppFilesMap;
+class InitialApplicationData {
+ public:
+ virtual ~InitialApplicationData() {
+ }
+
+ virtual const smart_objects::SmartObject* app_types() const = 0;
+ virtual const smart_objects::SmartObject* vr_synonyms() const = 0;
+ virtual const smart_objects::SmartObject* mobile_app_id() const = 0;
+ virtual const smart_objects::SmartObject* tts_name() const = 0;
+ virtual const smart_objects::SmartObject* ngn_media_screen_name() const = 0;
+ virtual const mobile_api::Language::eType& language() const = 0;
+ virtual const mobile_api::Language::eType& ui_language() const = 0;
+ virtual void set_app_types(const smart_objects::SmartObject& app_types) = 0;
+ virtual void set_vr_synonyms(
+ const smart_objects::SmartObject& vr_synonyms) = 0;
+ virtual void set_mobile_app_id(
+ const smart_objects::SmartObject& mobile_app_id) = 0;
+ virtual void set_tts_name(const smart_objects::SmartObject& tts_name) = 0;
+ virtual void set_ngn_media_screen_name(
+ const smart_objects::SmartObject& ngn_name) = 0;
+ virtual void set_language(const mobile_api::Language::eType& language) = 0;
+ virtual void set_ui_language(
+ const mobile_api::Language::eType& ui_language) = 0;
+};
+
+/*
+ * @brief Typedef for supported commands in application menu
+ */
+typedef std::map<uint32_t, smart_objects::SmartObject*> CommandsMap;
+
+/*
+ * @brief Typedef for supported sub menu in application menu
+ */
+typedef std::map<uint32_t, smart_objects::SmartObject*> SubMenuMap;
+
+/*
+ * @brief Typedef for interaction choice set
+ */
+typedef std::map<uint32_t, smart_objects::SmartObject*> ChoiceSetMap;
+
+/*
+ * @brief Typedef for perform interaction choice set
+ */
+typedef std::map<uint32_t, smart_objects::SmartObject*> PerformChoiceSetMap;
+
+class DynamicApplicationData {
+ public:
+ virtual ~DynamicApplicationData() {
+ }
+ virtual const smart_objects::SmartObject* help_prompt() const = 0;
+ virtual const smart_objects::SmartObject* timeout_prompt() const = 0;
+ virtual const smart_objects::SmartObject* vr_help_title() const = 0;
+ virtual const smart_objects::SmartObject* vr_help() const = 0;
+ virtual const mobile_api::TBTState::eType& tbt_state() const = 0;
+ virtual const smart_objects::SmartObject* show_command() const = 0;
+ virtual const smart_objects::SmartObject* tbt_show_command() const = 0;
+ virtual const std::set<mobile_apis::ButtonName::eType>& SubscribedButtons() const = 0;
+ virtual const std::set<uint32_t>& SubscribesIVI() const = 0;
+ virtual const smart_objects::SmartObject* keyboard_props() const = 0;
+
+ virtual void set_help_prompt(
+ const smart_objects::SmartObject& help_prompt) = 0;
+ virtual void set_timeout_prompt(
+ const smart_objects::SmartObject& timeout_prompt) = 0;
+ virtual void set_vr_help_title(
+ const smart_objects::SmartObject& vr_help_title) = 0;
+ virtual void reset_vr_help_title() = 0;
+ virtual void set_vr_help(const smart_objects::SmartObject& vr_help) = 0;
+ virtual void reset_vr_help() = 0;
+ virtual void set_tbt_state(const mobile_api::TBTState::eType& tbt_state) = 0;
+ virtual void set_show_command(
+ const smart_objects::SmartObject& show_command) = 0;
+ virtual void set_tbt_show_command(
+ const smart_objects::SmartObject& tbt_show) = 0;
+ virtual void set_keyboard_props(
+ const smart_objects::SmartObject& keyboard_props) = 0;
+
+ /*
+ * @brief Adds a command to the in application menu
+ */
+ virtual void AddCommand(uint32_t cmd_id,
+ const smart_objects::SmartObject& command) = 0;
+
+ /*
+ * @brief Deletes all commands from the application
+ * menu with the specified command id
+ */
+ virtual void RemoveCommand(uint32_t cmd_id) = 0;
+
+ /*
+ * @brief Finds command with the specified command id
+ */
+ virtual smart_objects::SmartObject* FindCommand(uint32_t cmd_id) = 0;
+
+ /*
+ * @brief Adds a menu to the application
+ */
+ virtual void AddSubMenu(uint32_t menu_id,
+ const smart_objects::SmartObject& menu) = 0;
+
+ /*
+ * @brief Deletes menu from the application menu
+ */
+ virtual void RemoveSubMenu(uint32_t menu_id) = 0;
+
+ /*
+ * @brief Finds menu with the specified id
+ */
+ virtual smart_objects::SmartObject* FindSubMenu(
+ uint32_t menu_id) const = 0;
+
+ /*
+ * @brief Returns true if sub menu with such name already exist
+ */
+ virtual bool IsSubMenuNameAlreadyExist(const std::string& name) = 0;
+
+ /*
+ * @brief Adds a interaction choice set to the application
+ *
+ * @param choice_set_id Unique ID used for this interaction choice set
+ * @param choice_set SmartObject that represent choice set
+ */
+ virtual void AddChoiceSet(uint32_t choice_set_id,
+ const smart_objects::SmartObject& choice_set) = 0;
+
+ /*
+ * @brief Deletes choice set from the application
+ *
+ * @param choice_set_id Unique ID of the interaction choice set
+ */
+ virtual void RemoveChoiceSet(uint32_t choice_set_id) = 0;
+
+ /*
+ * @brief Finds choice set with the specified choice_set_id id
+ *
+ * @param choice_set_id Unique ID of the interaction choice set
+ */
+ virtual smart_objects::SmartObject* FindChoiceSet(
+ uint32_t choice_set_id) = 0;
+
+ /*
+ * @brief Adds perform interaction choice set to the application
+ *
+ * @param choice_set_id Unique ID used for this interaction choice set
+ * @param choice_set SmartObject that represents choice set
+ */
+ virtual void AddPerformInteractionChoiceSet(
+ uint32_t choice_set_id,
+ const smart_objects::SmartObject& choice_set) = 0;
+
+ /*
+ * @brief Deletes entirely perform interaction choice set map
+ *
+ */
+ virtual void DeletePerformInteractionChoiceSetMap() = 0;
+
+ /*
+ * @brief Retrieves entirely ChoiceSet - VR commands map
+ *
+ * @return ChoiceSet map that is currently in use
+ */
+ virtual const PerformChoiceSetMap&
+ performinteraction_choice_set_map() const = 0;
+
+ /*
+ * @brief Retrieves choice set that is currently in use by perform
+ * interaction
+ *
+ * @param choice_set_id Unique ID of the interaction choice set
+ *
+ * @return SmartObject that represents choice set
+ */
+ virtual smart_objects::SmartObject* FindPerformInteractionChoiceSet(
+ uint32_t choice_set_id) const = 0;
+
+ /*
+ * @brief Retrieve application commands
+ */
+ virtual const CommandsMap& commands_map() const = 0;
+
+ /*
+ * @brief Retrieve application sub menus
+ */
+ virtual const SubMenuMap& sub_menu_map() const = 0;
+
+ /*
+ * @brief Retrieve application choice set map
+ */
+ virtual const ChoiceSetMap& choice_set_map() const = 0;
+
+ /*
+ * @brief Sets perform interaction state
+ *
+ * @param active Current state of the perform interaction
+ */
+ virtual void set_perform_interaction_active(uint32_t active) = 0;
+
+ /*
+ * @brief Retrieves perform interaction state
+ *
+ * @return TRUE if perform interaction active, otherwise FALSE
+ */
+ virtual uint32_t is_perform_interaction_active() const = 0;
+
+ /*
+ * @brief Sets the choice that was selected in
+ * response to PerformInteraction
+ *
+ * @param choice Choice that was selected
+ */
+ virtual void set_perform_interaction_ui_corrid(uint32_t choice) = 0;
+
+ /*
+ * @brief Retrieve the choice that was selected in
+ * response to PerformInteraction
+ *
+ * @return Choice that was selected in response to PerformInteraction
+ */
+ virtual uint32_t perform_interaction_ui_corrid() const = 0;
+
+ /*
+ * @brief Sets the mode for perform interaction: UI/VR/BOTH
+ *
+ * @param mode Mode that was selected (MENU; VR; BOTH)
+ */
+ virtual void set_perform_interaction_mode(int32_t mode) = 0;
+
+ /*
+ * @brief Retrieve the mode that was PerformInteraction sent in
+ *
+ * @return mode of PerformInteraction
+ */
+ virtual int32_t perform_interaction_mode() const = 0;
+
+ /*
+ * @brief Sets reset global properties state
+ *
+ * @param active Current state of the reset global properties
+ */
+ virtual void set_reset_global_properties_active(bool active) = 0;
+
+ /*
+ * @brief Retrieves reset global properties state
+ *
+ * @return TRUE if perform interaction active, otherwise FALSE
+ */
+ virtual bool is_reset_global_properties_active() const = 0;
+};
+
+class Application : public virtual InitialApplicationData,
+ public virtual DynamicApplicationData {
+ public:
+ virtual ~Application() {
+ }
+
+ /**
+ * @brief Returns message belonging to the application
+ * that is currently executed (i.e. on HMI).
+ * @return smart_objects::SmartObject * Active message
+ */
+ virtual const smart_objects::SmartObject* active_message() const = 0;
+
+ /**
+ * @brief Change Hash value and return it
+ * @return next Hash value
+ */
+ virtual uint32_t nextHash() = 0;
+
+ /**
+ * @brief returns cuurent hash value
+ * @return current Hash value
+ */
+ virtual uint32_t curHash() const = 0;
+
+ /**
+ * @brief Change Hash for current application
+ * and send notification to mobile
+ * @return updated_hash
+ */
+ virtual uint32_t UpdateHash() = 0;
+
+ virtual void CloseActiveMessage() = 0;
+ virtual bool IsFullscreen() const = 0;
+ virtual bool MakeFullscreen() = 0;
+ virtual bool IsAudible() const = 0;
+ virtual void MakeNotAudible() = 0;
+ virtual bool allowed_support_navigation() const = 0;
+ virtual void set_allowed_support_navigation(bool allow) = 0;
+ virtual bool hmi_supports_navi_streaming() const = 0;
+ virtual void set_hmi_supports_navi_streaming(const bool& supports) = 0;
+ virtual bool app_allowed() const = 0;
+ virtual bool has_been_activated() const = 0;
+
+ virtual const Version& version() const = 0;
+ virtual uint32_t app_id() const = 0;
+ virtual const std::string& name() const = 0;
+ virtual bool is_media_application() const = 0;
+ virtual const mobile_api::HMILevel::eType& hmi_level() const = 0;
+ virtual const uint32_t put_file_in_none_count() const = 0;
+ virtual const uint32_t delete_file_in_none_count() const = 0;
+ virtual const uint32_t list_files_in_none_count() const = 0;
+ virtual const mobile_api::SystemContext::eType& system_context() const = 0;
+ virtual const mobile_api::AudioStreamingState::eType&
+ audio_streaming_state() const = 0;
+ virtual const std::string& app_icon_path() const = 0;
+ virtual connection_handler::DeviceHandle device() const = 0;
+ virtual void set_tts_speak_state(bool state_tts_speak) = 0;
+ virtual void set_version(const Version& version) = 0;
+ virtual void set_name(const std::string& name) = 0;
+ virtual void set_is_media_application(bool is_media) = 0;
+ virtual void set_hmi_level(const mobile_api::HMILevel::eType& hmi_level) = 0;
+ virtual void increment_put_file_in_none_count() = 0;
+ virtual void increment_delete_file_in_none_count() = 0;
+ virtual void increment_list_files_in_none_count() = 0;
+ virtual void set_system_context(
+ const mobile_api::SystemContext::eType& system_context) = 0;
+ virtual void set_audio_streaming_state(
+ const mobile_api::AudioStreamingState::eType& state) = 0;
+ virtual bool set_app_icon_path(const std::string& file_name) = 0;
+ virtual void set_app_allowed(const bool& allowed) = 0;
+ virtual void set_device(connection_handler::DeviceHandle device) = 0;
+
+ virtual bool AddFile(AppFile& file) = 0;
+ virtual const AppFilesMap& getAppFiles() const = 0;
+
+ /**
+ * @brief Updates fields of existing file
+ * @param file_name File name, that need to update
+ * @param is_persistent Bollean describes is file persistent?
+ * @param is_download_complete Bollean describes is file downloaded fully on need to finish downloading?
+ * @return TRUE if file exist and updated sucsesfuly, othervise return false
+ */
+ virtual bool UpdateFile(AppFile& file) = 0;
+ virtual bool DeleteFile(const std::string& file_name) = 0;
+
+ virtual bool SubscribeToButton(mobile_apis::ButtonName::eType btn_name) = 0;
+ virtual bool IsSubscribedToButton(mobile_apis::ButtonName::eType btn_name) = 0;
+ virtual bool UnsubscribeFromButton(mobile_apis::ButtonName::eType btn_name) = 0;
+
+ virtual bool SubscribeToIVI(uint32_t vehicle_info_type_) = 0;
+ virtual bool IsSubscribedToIVI(uint32_t vehicle_info_type_) = 0;
+ virtual bool UnsubscribeFromIVI(uint32_t vehicle_info_type_) = 0;
+};
+
+typedef utils::SharedPtr<Application> ApplicationSharedPtr;
+typedef utils::SharedPtr<const Application> ApplicationConstSharedPtr;
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/application_data_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/application_data_impl.h
new file mode 100644
index 000000000..ac16a65da
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/application_data_impl.h
@@ -0,0 +1,323 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_DATA_IMPL_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_DATA_IMPL_H_
+
+#include <string>
+#include "smart_objects/smart_object.h"
+#include "application_manager/application.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace mobile_api = mobile_apis;
+
+class InitialApplicationDataImpl : public virtual Application {
+ public:
+ InitialApplicationDataImpl();
+ ~InitialApplicationDataImpl();
+
+ const smart_objects::SmartObject* app_types() const;
+ const smart_objects::SmartObject* vr_synonyms() const;
+ const smart_objects::SmartObject* mobile_app_id() const;
+ const smart_objects::SmartObject* tts_name() const;
+ const smart_objects::SmartObject* ngn_media_screen_name() const;
+ const mobile_api::Language::eType& language() const;
+ const mobile_api::Language::eType& ui_language() const;
+ void set_app_types(const smart_objects::SmartObject& app_types);
+ void set_vr_synonyms(const smart_objects::SmartObject& vr_synonyms);
+ void set_mobile_app_id(const smart_objects::SmartObject& mobile_app_id);
+ void set_tts_name(const smart_objects::SmartObject& tts_name);
+ void set_ngn_media_screen_name(const smart_objects::SmartObject& ngn_name);
+ void set_language(const mobile_api::Language::eType& language);
+ void set_ui_language(const mobile_api::Language::eType& ui_language);
+
+ protected:
+ smart_objects::SmartObject* app_types_;
+ smart_objects::SmartObject* vr_synonyms_;
+ smart_objects::SmartObject* mobile_app_id_;
+ smart_objects::SmartObject* tts_name_;
+ smart_objects::SmartObject* ngn_media_screen_name_;
+ mobile_api::Language::eType language_;
+ mobile_api::Language::eType ui_language_;
+ private:
+ DISALLOW_COPY_AND_ASSIGN(InitialApplicationDataImpl);
+};
+
+class DynamicApplicationDataImpl : public virtual Application {
+ public:
+ DynamicApplicationDataImpl();
+ ~DynamicApplicationDataImpl();
+ const smart_objects::SmartObject* help_prompt() const;
+ const smart_objects::SmartObject* timeout_prompt() const;
+ const smart_objects::SmartObject* vr_help_title() const;
+ const smart_objects::SmartObject* vr_help() const;
+ const mobile_api::TBTState::eType& tbt_state() const;
+ const smart_objects::SmartObject* show_command() const;
+ const smart_objects::SmartObject* tbt_show_command() const;
+ const smart_objects::SmartObject* keyboard_props() const;
+
+ void set_help_prompt(const smart_objects::SmartObject& help_prompt);
+ void set_timeout_prompt(const smart_objects::SmartObject& timeout_prompt);
+ void set_vr_help_title(const smart_objects::SmartObject& vr_help_title);
+ void reset_vr_help_title();
+ void set_vr_help(const smart_objects::SmartObject& vr_help);
+ void reset_vr_help();
+ void set_tbt_state(const mobile_api::TBTState::eType& tbt_state);
+ void set_show_command(const smart_objects::SmartObject& show_command);
+ void set_tbt_show_command(const smart_objects::SmartObject& tbt_show);
+ void set_keyboard_props(const smart_objects::SmartObject& keyboard_props);
+
+ /*
+ * @brief Adds a command to the in application menu
+ */
+ void AddCommand(uint32_t cmd_id,
+ const smart_objects::SmartObject& command);
+
+ /*
+ * @brief Deletes all commands from the application menu with the specified command id
+ */
+ void RemoveCommand(uint32_t cmd_id);
+
+ /*
+ * @brief Finds command with the specified command id
+ */
+ smart_objects::SmartObject* FindCommand(uint32_t cmd_id);
+
+ /*
+ * @brief Adds a menu to the application
+ */
+ void AddSubMenu(uint32_t menu_id, const smart_objects::SmartObject& menu);
+
+ /*
+ * @brief Deletes menu from the application menu
+ */
+ void RemoveSubMenu(uint32_t menu_id);
+
+ /*
+ * @brief Finds menu with the specified id
+ */
+ smart_objects::SmartObject* FindSubMenu(uint32_t menu_id) const;
+
+ /*
+ * @brief Returns true if sub menu with such name already exist
+ */
+ bool IsSubMenuNameAlreadyExist(const std::string& name);
+
+ /*
+ * @brief Adds a interaction choice set to the application
+ *
+ * @param choice_set_id Unique ID used for this interaction choice set
+ * @param choice_set SmartObject that represent choice set
+ */
+ void AddChoiceSet(uint32_t choice_set_id,
+ const smart_objects::SmartObject& choice_set);
+
+ /*
+ * @brief Deletes choice set from the application
+ *
+ * @param choice_set_id Unique ID of the interaction choice set
+ */
+ void RemoveChoiceSet(uint32_t choice_set_id);
+
+ /*
+ * @brief Finds choice set with the specified choice_set_id id
+ *
+ * @param choice_set_id Unique ID of the interaction choice set
+ */
+ smart_objects::SmartObject* FindChoiceSet(uint32_t choice_set_id);
+
+ /*
+ * @brief Adds perform interaction choice set to the application
+ *
+ * @param choice_set_id Unique ID used for this interaction choice set
+ * @param choice_set SmartObject that represents choice set
+ */
+ void AddPerformInteractionChoiceSet(
+ uint32_t choice_set_id, const smart_objects::SmartObject& choice_set);
+
+ /*
+ * @brief Deletes entirely perform interaction choice set map
+ *
+ */
+ void DeletePerformInteractionChoiceSetMap();
+
+ /*
+ * @brief Retrieves entirely ChoiceSet - VR commands map
+ *
+ * @return ChoiceSet map that is currently in use
+ */
+ inline const PerformChoiceSetMap& performinteraction_choice_set_map() const;
+
+ /*
+ * @brief Retrieves choice set that is currently in use by perform
+ * interaction
+ *
+ * @param choice_set_id Unique ID of the interaction choice set
+ *
+ * @return SmartObject that represents choice set
+ */
+ smart_objects::SmartObject* FindPerformInteractionChoiceSet(
+ uint32_t choice_set_id) const;
+
+ /*
+ * @brief Retrieve application commands
+ */
+ inline const CommandsMap& commands_map() const;
+
+ /*
+ * @brief Retrieve application sub menus
+ */
+ inline const SubMenuMap& sub_menu_map() const;
+
+ /*
+ * @brief Retrieve application choice set map
+ */
+ inline const ChoiceSetMap& choice_set_map() const;
+
+ /*
+ * @brief Sets perform interaction state
+ *
+ * @param active Current state of the perform interaction
+ */
+ void set_perform_interaction_active(uint32_t active);
+
+ /*
+ * @brief Retrieves perform interaction state
+ *
+ * @return TRUE if perform interaction active, otherwise FALSE
+ */
+ inline uint32_t is_perform_interaction_active() const;
+
+ /*
+ * @brief Sets the choice that was selected in
+ * response to PerformInteraction
+ *
+ * @param choice Choice that was selected
+ */
+ void set_perform_interaction_ui_corrid(uint32_t corr_id);
+
+ /*
+ * @brief Retrieve the choice that was selected in
+ * response to PerformInteraction
+ *
+ * @return Choice that was selected in response to PerformInteraction
+ */
+ inline uint32_t perform_interaction_ui_corrid() const;
+ /*
+ * @brief Sets the mode for perform interaction: UI/VR/BOTH
+ *
+ * @param mode Mode that was selected (MENU; VR; BOTH)
+ */
+ void set_perform_interaction_mode(int32_t mode);
+
+ /*
+ * @brief Retrieve the mode that was PerformInteraction sent in
+ *
+ * @return mode of PerformInteraction
+ */
+ inline int32_t perform_interaction_mode() const;
+
+ /*
+ * @brief Sets reset global properties state
+ *
+ * @param active Current state of the reset global properties
+ */
+ void set_reset_global_properties_active(bool active);
+
+ /*
+ * @brief Retrieves reset global properties state
+ *
+ * @return TRUE if perform interaction active, otherwise FALSE
+ */
+ inline bool is_reset_global_properties_active() const;
+
+ protected:
+ smart_objects::SmartObject* help_prompt_;
+ smart_objects::SmartObject* timeout_prompt_;
+ smart_objects::SmartObject* vr_help_title_;
+ smart_objects::SmartObject* vr_help_;
+ mobile_api::TBTState::eType tbt_state_;
+ smart_objects::SmartObject* show_command_;
+ smart_objects::SmartObject* tbt_show_command_;
+ smart_objects::SmartObject* keyboard_props_;
+
+
+ CommandsMap commands_;
+ SubMenuMap sub_menu_;
+ ChoiceSetMap choice_set_map_;
+ PerformChoiceSetMap performinteraction_choice_set_map_;
+ int32_t perform_interaction_mode_;
+ uint32_t is_perform_interaction_active_;
+ uint32_t perform_interaction_ui_corrid_;
+ bool is_reset_global_properties_active_;
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DynamicApplicationDataImpl);
+};
+
+const CommandsMap& DynamicApplicationDataImpl::commands_map() const {
+ return commands_;
+}
+
+const SubMenuMap& DynamicApplicationDataImpl::sub_menu_map() const {
+ return sub_menu_;
+}
+
+const ChoiceSetMap& DynamicApplicationDataImpl::choice_set_map() const {
+ return choice_set_map_;
+}
+
+uint32_t DynamicApplicationDataImpl::is_perform_interaction_active() const {
+ return is_perform_interaction_active_;
+}
+
+uint32_t DynamicApplicationDataImpl::perform_interaction_ui_corrid() const {
+ return perform_interaction_ui_corrid_;
+}
+
+bool DynamicApplicationDataImpl::is_reset_global_properties_active() const {
+ return is_reset_global_properties_active_;
+}
+
+const PerformChoiceSetMap&
+DynamicApplicationDataImpl::performinteraction_choice_set_map() const {
+ return performinteraction_choice_set_map_;
+}
+
+inline int32_t DynamicApplicationDataImpl::perform_interaction_mode() const {
+ return perform_interaction_mode_;
+}
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_DATA_IMPL_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/application_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/application_impl.h
new file mode 100644
index 000000000..8216af88c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/application_impl.h
@@ -0,0 +1,176 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_IMPL_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_IMPL_H_
+
+#include <map>
+#include <set>
+#include <vector>
+#include "application_manager/application_data_impl.h"
+#include "connection_handler/device.h"
+
+namespace application_manager {
+
+namespace mobile_api = mobile_apis;
+
+class ApplicationImpl : public virtual InitialApplicationDataImpl,
+ public virtual DynamicApplicationDataImpl {
+ public:
+ explicit ApplicationImpl(uint32_t application_id);
+ ~ApplicationImpl();
+
+ /**
+ * @brief Returns message belonging to the application
+ * that is currently executed (i.e. on HMI).
+ * @return smart_objects::SmartObject * Active message
+ */
+ const smart_objects::SmartObject* active_message() const;
+ void CloseActiveMessage();
+ bool IsFullscreen() const;
+ bool MakeFullscreen();
+ bool IsAudible() const;
+ void MakeNotAudible();
+ bool allowed_support_navigation() const;
+ void set_allowed_support_navigation(bool allow);
+ bool hmi_supports_navi_streaming() const ;
+ void set_hmi_supports_navi_streaming(const bool& supports);
+ inline bool app_allowed() const;
+ bool has_been_activated() const;
+
+ const Version& version() const;
+ inline uint32_t app_id() const;
+ const std::string& name() const;
+ bool is_media_application() const;
+ const mobile_api::HMILevel::eType& hmi_level() const;
+ const uint32_t put_file_in_none_count() const;
+ const uint32_t delete_file_in_none_count() const;
+ const uint32_t list_files_in_none_count() const;
+ const mobile_api::SystemContext::eType& system_context() const;
+ inline const mobile_api::AudioStreamingState::eType&
+ audio_streaming_state() const;
+ const std::string& app_icon_path() const;
+ connection_handler::DeviceHandle device() const;
+ void set_tts_speak_state(bool state_tts_speak);
+ void set_version(const Version& ver);
+ void set_name(const std::string& name);
+ void set_is_media_application(bool is_media);
+ void set_hmi_level(const mobile_api::HMILevel::eType& hmi_level);
+ void increment_put_file_in_none_count();
+ void increment_delete_file_in_none_count();
+ void increment_list_files_in_none_count();
+ void set_system_context(
+ const mobile_api::SystemContext::eType& system_context);
+ void set_audio_streaming_state(
+ const mobile_api::AudioStreamingState::eType& state);
+ bool set_app_icon_path(const std::string& path);
+ void set_app_allowed(const bool& allowed);
+ void set_device(connection_handler::DeviceHandle device);
+
+ bool AddFile(AppFile& file);
+ bool UpdateFile(AppFile& file);
+
+ bool DeleteFile(const std::string& file_name);
+ virtual const AppFilesMap& getAppFiles() const;
+
+ bool SubscribeToButton(mobile_apis::ButtonName::eType btn_name);
+ bool IsSubscribedToButton(mobile_apis::ButtonName::eType btn_name);
+ bool UnsubscribeFromButton(mobile_apis::ButtonName::eType btn_name);
+
+ bool SubscribeToIVI(uint32_t vehicle_info_type_);
+ bool IsSubscribedToIVI(uint32_t vehicle_info_type_);
+ bool UnsubscribeFromIVI(uint32_t vehicle_info_type_);
+
+ virtual const std::set<mobile_apis::ButtonName::eType>& SubscribedButtons() const;
+ virtual const std::set<uint32_t>& SubscribesIVI() const;
+
+ virtual uint32_t nextHash();
+ virtual uint32_t curHash() const;
+
+ /**
+ * @brief Change Hash for current application
+ * and send notification to mobile
+ * @return updated_hash
+ */
+ virtual uint32_t UpdateHash();
+
+
+ protected:
+ void CleanupFiles();
+
+ private:
+
+ uint32_t hash_val_;
+
+ smart_objects::SmartObject* active_message_;
+
+ Version version_;
+ uint32_t app_id_;
+ std::string app_name_;
+ bool is_media_;
+ bool allowed_support_navigation_;
+ bool is_app_allowed_;
+ bool has_been_activated_;
+ bool tts_speak_state_;
+ bool hmi_supports_navi_streaming_;
+
+ mobile_api::HMILevel::eType hmi_level_;
+ uint32_t put_file_in_none_count_;
+ uint32_t delete_file_in_none_count_;
+ uint32_t list_files_in_none_count_;
+ mobile_api::SystemContext::eType system_context_;
+ mobile_api::AudioStreamingState::eType audio_streaming_state_;
+ std::string app_icon_path_;
+ connection_handler::DeviceHandle device_;
+
+ AppFilesMap app_files_;
+ std::set<mobile_apis::ButtonName::eType> subscribed_buttons_;
+ std::set<uint32_t> subscribed_vehicle_info_;
+ DISALLOW_COPY_AND_ASSIGN(ApplicationImpl);
+};
+
+uint32_t ApplicationImpl::app_id() const {
+ return app_id_;
+}
+
+const mobile_api::AudioStreamingState::eType&
+ApplicationImpl::audio_streaming_state() const {
+ return audio_streaming_state_;
+}
+
+bool ApplicationImpl::app_allowed() const {
+ return is_app_allowed_;
+}
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_IMPL_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/application_manager.h b/SDL_Core/src/components/application_manager/include/application_manager/application_manager.h
new file mode 100644
index 000000000..1f1a6739e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/application_manager.h
@@ -0,0 +1,79 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_MANAGER_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_MANAGER_H_
+
+#include <set>
+#include "hmi_message_handler/hmi_message_handler.h"
+#include "connection_handler/connection_handler.h"
+#include "protocol_handler/protocol_handler.h"
+
+namespace policies {
+ class PolicyManager;
+} // namespace policies
+
+namespace application_manager {
+
+class Application;
+class HMIMatrix;
+class PoliciesManager;
+
+class ApplicationManager {
+ public:
+ virtual ~ApplicationManager() {
+ }
+
+ /**
+ * @brief Stop work.
+ *
+ * @return TRUE on success otherwise FALSE.
+ **/
+ virtual bool Stop() = 0;
+
+ virtual void set_hmi_message_handler(
+ hmi_message_handler::HMIMessageHandler* handler) = 0;
+ virtual void set_protocol_handler(
+ protocol_handler::ProtocolHandler* handler) = 0;
+ virtual void set_connection_handler(
+ connection_handler::ConnectionHandler* handler) = 0;
+ virtual void set_policy_manager(
+ policies::PolicyManager* policy_manager) = 0;
+
+ protected:
+ virtual void CreateHMIMatrix(HMIMatrix* matrix) = 0;
+ virtual void CreatePoliciesManager(PoliciesManager* managaer) = 0;
+};
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_APPLICATION_MANAGER_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/application_manager_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/application_manager_impl.h
new file mode 100644
index 000000000..fdb6894c9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/application_manager_impl.h
@@ -0,0 +1,610 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_H_
+
+#include <cstdint>
+#include <vector>
+#include <map>
+#include <set>
+#include "application_manager/hmi_command_factory.h"
+#include "application_manager/application_manager.h"
+#include "application_manager/hmi_capabilities.h"
+#include "application_manager/message.h"
+#include "application_manager/policies_manager/policies_manager.h"
+#include "application_manager/request_controller.h"
+#include "application_manager/resume_ctrl.h"
+#include "protocol_handler/protocol_observer.h"
+#include "hmi_message_handler/hmi_message_observer.h"
+
+#include "media_manager/media_manager_impl.h"
+
+#include "connection_handler/connection_handler_observer.h"
+#include "connection_handler/device.h"
+
+#include "formatters/CSmartFactory.hpp"
+
+#include "interfaces/HMI_API.h"
+#include "interfaces/HMI_API_schema.h"
+#include "interfaces/MOBILE_API_schema.h"
+
+#include "interfaces/v4_protocol_v1_2_no_extra.h"
+#include "interfaces/v4_protocol_v1_2_no_extra_schema.h"
+
+#include "protocol_handler/service_type.h"
+
+#include "utils/macro.h"
+#include "utils/logger.h"
+#include "utils/shared_ptr.h"
+#include "utils/message_queue.h"
+#include "utils/prioritized_queue.h"
+#include "utils/threads/thread.h"
+#include "utils/threads/message_loop_thread.h"
+#include "utils/lock.h"
+#include "utils/singleton.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+}
+}
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+namespace threads {
+class Thread;
+}
+class CommandNotificationImpl;
+
+namespace application_manager {
+namespace mobile_api = mobile_apis;
+
+class ApplicationManagerImpl;
+
+namespace impl {
+using namespace threads;
+
+/*
+ * These dummy classes are here to locally impose strong typing on different
+ * kinds of messages
+ * Currently there is no type difference between incoming and outgoing messages
+ * And due to ApplicationManagerImpl works as message router it has to distinguish
+ * messages passed from it's different connection points
+ * TODO(ik): replace these with globally defined message types
+ * when we have them.
+ */
+struct MessageFromMobile: public utils::SharedPtr<Message> {
+ explicit MessageFromMobile(const utils::SharedPtr<Message>& message):
+ utils::SharedPtr<Message>(message) {}
+ // PrioritizedQueue requres this method to decide which priority to assign
+ size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); }
+};
+
+struct MessageToMobile: public utils::SharedPtr<Message> {
+ explicit MessageToMobile(const utils::SharedPtr<Message>& message,
+ bool final_message):
+ utils::SharedPtr<Message>(message), is_final(final_message) {}
+ // PrioritizedQueue requres this method to decide which priority to assign
+ size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); }
+ // Signals if connection to mobile must be closed after sending this message
+ bool is_final;
+ };
+
+struct MessageFromHmi: public utils::SharedPtr<Message> {
+ explicit MessageFromHmi(const utils::SharedPtr<Message>& message):
+ utils::SharedPtr<Message>(message) {}
+ // PrioritizedQueue requres this method to decide which priority to assign
+ size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); }
+};
+
+struct MessageToHmi: public utils::SharedPtr<Message> {
+ explicit MessageToHmi(const utils::SharedPtr<Message>& message):
+ utils::SharedPtr<Message>(message) {}
+ // PrioritizedQueue requres this method to decide which priority to assign
+ size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); }
+};
+
+// Short type names for proiritized message queues
+typedef threads::MessageLoopThread<
+ utils::PrioritizedQueue<MessageFromMobile> > FromMobileQueue;
+typedef threads::MessageLoopThread<
+ utils::PrioritizedQueue<MessageToMobile> > ToMobileQueue;
+typedef threads::MessageLoopThread<
+ utils::PrioritizedQueue<MessageFromHmi> > FromHmiQueue;
+typedef threads::MessageLoopThread<
+ utils::PrioritizedQueue<MessageToHmi> > ToHmiQueue;
+}
+
+class ApplicationManagerImpl : public ApplicationManager,
+ public hmi_message_handler::HMIMessageObserver,
+ public protocol_handler::ProtocolObserver,
+ public connection_handler::ConnectionHandlerObserver,
+ public impl::FromMobileQueue::Handler,
+ public impl::ToMobileQueue::Handler,
+ public impl::FromHmiQueue::Handler,
+ public impl::ToHmiQueue::Handler,
+ public utils::Singleton<ApplicationManagerImpl> {
+ friend class ResumeCtrl;
+ public:
+ ~ApplicationManagerImpl();
+
+ /**
+ * @brief Stop work.
+ *
+ * @return TRUE on success otherwise FALSE.
+ **/
+ virtual bool Stop();
+
+ /////////////////////////////////////////////////////
+
+ ApplicationSharedPtr application(int32_t app_id) const;
+ inline const std::set<ApplicationSharedPtr>& applications() const;
+ ApplicationSharedPtr active_application() const;
+ std::vector<ApplicationSharedPtr> applications_by_button(uint32_t button);
+ std::vector<ApplicationSharedPtr> applications_by_ivi(uint32_t vehicle_info);
+ std::vector<ApplicationSharedPtr> applications_with_navi();
+
+ /////////////////////////////////////////////////////
+
+ HMICapabilities& hmi_capabilities();
+
+ ApplicationSharedPtr RegisterApplication(
+ const utils::SharedPtr<smart_objects::SmartObject>& request_for_registration);
+ /*
+ * @brief Closes application by id
+ *
+ * @param app_id Application id
+ * @param is_resuming describes - is this unregister
+ * is normal or need to be resumed
+ */
+ void UnregisterApplication(const uint32_t& app_id, bool is_resuming = false);
+
+ /*
+ * @brief Sets unregister reason for closing all registered applications
+ * duringHU switching off
+ *
+ * @param reason Describes the reason for HU switching off
+ */
+ void SetUnregisterAllApplicationsReason(
+ mobile_api::AppInterfaceUnregisteredReason::eType reason);
+
+ /*
+ * @brief Closes all registered applications
+ */
+ void UnregisterAllApplications();
+
+ bool RemoveAppDataFromHMI(ApplicationSharedPtr app);
+ bool LoadAppDataToHMI(ApplicationSharedPtr app);
+ bool ActivateApplication(ApplicationSharedPtr app);
+ /**
+ * @brief Put application in Limited HMI Level if possible,
+ * otherwise put applicatuion other HMI level.
+ * do not send any notifications to mobile
+ * @param app, application, that need to be puted in Limeted
+ * @return seted HMI Level
+ */
+ mobile_api::HMILevel::eType PutApplicationInLimited(ApplicationSharedPtr app);
+
+ /**
+ * @brief Put application in FULL HMI Level if possible,
+ * otherwise put applicatuion other HMI level.
+ * do not send any notifications to mobile
+ * @param app, application, that need to be puted in FULL
+ * @return seted HMI Level
+ */
+ mobile_api::HMILevel::eType PutApplicationInFull(ApplicationSharedPtr app);
+
+ void DeactivateApplication(ApplicationSharedPtr app);
+ void ConnectToDevice(uint32_t id);
+ void OnHMIStartedCooperation();
+
+ /*
+ * @brief Returns unique correlation ID for HMI request
+ *
+ * @return Unique correlation ID
+ */
+ uint32_t GetNextHMICorrelationID();
+
+ /* @brief Starts audio passthru process
+ *
+ * @return true on success, false if passthru is already in process
+ */
+ bool begin_audio_pass_thru();
+
+ /*
+ * @brief Finishes already started audio passthru process
+ *
+ * @return true on success, false if passthru is not active
+ */
+ bool end_audio_pass_thru();
+
+ /*
+ * @brief Retrieves driver distraction state
+ *
+ * @return Current state of the distraction state
+ */
+ inline bool driver_distraction() const;
+
+ /*
+ * @brief Sets state for driver distraction
+ *
+ * @param state New state to be set
+ */
+ void set_driver_distraction(bool is_distracting);
+
+ /*
+ * @brief Retrieves if VR session has started
+ *
+ * @return Current VR session state (started, stopped)
+ */
+ inline bool vr_session_started() const;
+
+ /*
+ * @brief Sets VR session state
+ *
+ * @param state Current HMI VR session state
+ */
+ void set_vr_session_started(const bool& state);
+
+ /*
+ * @brief Retrieves SDL access to all mobile apps
+ *
+ * @return Currently active state of the access
+ */
+ inline bool all_apps_allowed() const;
+
+ /*
+ * @brief Sets SDL access to all mobile apps
+ *
+ * @param allowed SDL access to all mobile apps
+ */
+ void set_all_apps_allowed(const bool& allowed);
+
+ /*
+ * @brief Starts audio pass thru thread
+ *
+ * @param session_key Session key of connection for Mobile side
+ * @param correlation_id Correlation id for response for Mobile side
+ * @param max_duration Max duration of audio recording in milliseconds
+ * @param sampling_rate Value for rate(8, 16, 22, 44 kHz)
+ * @param bits_per_sample The quality the audio is recorded.
+ * @param audio_type Type of audio data
+ */
+ void StartAudioPassThruThread(int32_t session_key, int32_t correlation_id,
+ int32_t max_duration, int32_t sampling_rate,
+ int32_t bits_per_sample, int32_t audio_type);
+
+ /*
+ * @brief Terminates audio pass thru thread
+ * @param application_key Id of application for which
+ * audio pass thru should be stopped
+ */
+ void StopAudioPassThru(int32_t application_key);
+
+ void SendAudioPassThroughNotification(uint32_t session_key,
+ std::vector<uint8_t> binaryData);
+
+ std::string GetDeviceName(connection_handler::DeviceHandle handle);
+
+ /////////////////////////////////////////////////////
+
+ void set_hmi_message_handler(hmi_message_handler::HMIMessageHandler* handler);
+ void set_connection_handler(connection_handler::ConnectionHandler* handler);
+ virtual void set_policy_manager(policies::PolicyManager* policy_manager);
+ void set_protocol_handler(protocol_handler::ProtocolHandler* handler);
+
+ ///////////////////////////////////////////////////////
+
+ void StartDevicesDiscovery();
+
+ // Put message to the queue to be sent to mobile.
+ // if |final_message| parameter is set connection to mobile will be closed
+ // after processing this message
+ void SendMessageToMobile(
+ const utils::SharedPtr<smart_objects::SmartObject>& message, bool final_message = false);
+ bool ManageMobileCommand(
+ const utils::SharedPtr<smart_objects::SmartObject>& message);
+ void SendMessageToHMI(
+ const utils::SharedPtr<smart_objects::SmartObject>& message);
+ bool ManageHMICommand(
+ const utils::SharedPtr<smart_objects::SmartObject>& message);
+
+ /////////////////////////////////////////////////////////
+ /*
+ * @brief Overriden ProtocolObserver method
+ */
+ virtual void OnMessageReceived(const protocol_handler::
+ RawMessagePtr& message);
+
+ /*
+ * @brief Overriden ProtocolObserver method
+ */
+ virtual void OnMobileMessageSent(const protocol_handler::
+ RawMessagePtr& message);
+
+ void OnMessageReceived(
+ hmi_message_handler::MessageSharedPointer message);
+ void OnErrorSending(hmi_message_handler::MessageSharedPointer message);
+
+ void OnDeviceListUpdated(const connection_handler::DeviceList& device_list);
+ void RemoveDevice(const connection_handler::DeviceHandle& device_handle);
+ bool OnServiceStartedCallback(const connection_handler::DeviceHandle& device_handle,
+ const int32_t& session_key,
+ const protocol_handler::ServiceType& type);
+ void OnServiceEndedCallback(const int32_t& session_key,
+ const protocol_handler::ServiceType& type);
+
+ /**
+ * @ Add notification to collection
+ *
+ * @param ptr Reference to shared pointer that point on hmi notification
+ */
+ void addNotification(const CommandSharedPtr& ptr);
+
+ /**
+ * @ Add notification to collection
+ *
+ * @param ptr Reference to shared pointer that point on hmi notification
+ */
+ void removeNotification(const CommandSharedPtr& ptr);
+
+ /**
+ * @ Updates request timeout
+ *
+ * @param connection_key Connection key of application
+ * @param mobile_correlation_id Correlation ID of the mobile request
+ * @param new_timeout_value New timeout to be set
+ */
+ void updateRequestTimeout(uint32_t connection_key,
+ uint32_t mobile_correlation_id,
+ uint32_t new_timeout_value);
+
+ /*
+ * @brief Retrieves application id associated whith correlation id
+ *
+ * @param correlation_id Correlation ID of the HMI request
+ *
+ * @return application id associated whith correlation id
+ */
+ const uint32_t application_id(const int32_t correlation_id);
+
+ /*
+ * @brief Sets application id correlation id
+ *
+ * @param correlation_id Correlation ID of the HMI request
+ * @param app_id Application ID
+ */
+ void set_application_id(const int32_t correlation_id,
+ const uint32_t app_id);
+
+ /*
+ * @brief Change AudioStreamingState for all application according to
+ * system audio-mixing capabilities (NOT_AUDIBLE/ATTENUATED) and
+ * send notification for this changes
+ */
+ void Mute();
+
+ /*
+ * @brief Change AudioStreamingState for all application to AUDIBLE and
+ * send notification for this changes
+ */
+ void Unmute();
+
+ /*
+ * @brief Checks HMI level and returns true if audio streaming is allowed
+ */
+ bool IsAudioStreamingAllowed(uint32_t connection_key) const;
+
+ /*
+ * @brief Checks HMI level and returns true if video streaming is allowed
+ */
+ bool IsVideoStreamingAllowed(uint32_t connection_key) const;
+
+ /**
+ * Getter for resume_controller
+ * @return Resume Controller
+ */
+ ResumeCtrl& resume_controller() { return resume_ctrl_; }
+
+ /*
+ * @brief Save binary data to specified directory
+ *
+ * @param application name
+ * @param binary file name
+ * @param binary data
+ * @param path for saving data
+ * @param offset for saving data to existing file with offset. If offset is 0 - create new file ( overrite existing )
+ *
+ * @return SUCCESS if file was saved, other code otherwise
+ */
+ mobile_apis::Result::eType SaveBinary(
+ const std::string& app_name,
+ const std::vector<uint8_t>& binary_data,
+ const std::string& save_path,
+ const uint32_t offset = 0);
+
+ private:
+ ApplicationManagerImpl();
+ bool InitThread(threads::Thread* thread);
+ hmi_apis::HMI_API& hmi_so_factory();
+ mobile_apis::MOBILE_API& mobile_so_factory();
+
+ void CreateHMIMatrix(HMIMatrix* matrix);
+ void CreatePoliciesManager(PoliciesManager* managaer);
+
+ /**
+ * \brief Performs check using PoliciesManager of availability
+ * of the message for the application. If error occured it is sent
+ * as response to initiator of request.
+ * \param message Message received for application
+ * \param application Application that recieved message to be checked by policies
+ * \return bool Indicates whether message is allowed for application
+ */
+ bool CheckPolicies(smart_objects::SmartObject* message,
+ ApplicationSharedPtr app);
+
+ /**
+ * \brief Using HMIMatrix checks which messages sent to HMI are of higher priority
+ * and acts accordingly (closes message with lower priority,
+ * rejects message in case message with higher priority is operating on HMI).
+ * If error occured it is sent as response to initiator of request.
+ * \param message Message received for application
+ * \return bool Indicates whether message is allowed for application
+ */
+ bool CheckHMIMatrix(smart_objects::SmartObject* message);
+
+ bool ConvertMessageToSO(const Message& message,
+ smart_objects::SmartObject& output);
+ bool ConvertSOtoMessage(const smart_objects::SmartObject& message,
+ Message& output);
+ utils::SharedPtr<Message> ConvertRawMsgToMessage(
+ const protocol_handler::RawMessagePtr& message);
+
+ void ProcessMessageFromMobile(const utils::SharedPtr<Message>& message);
+ void ProcessMessageFromHMI(const utils::SharedPtr<Message>& message);
+
+ // threads::MessageLoopThread<*>::Handler implementations
+ /*
+ * @brief Handles for threads pumping different types
+ * of messages. Beware, each is called on different thread!
+ */
+ // CALLED ON messages_from_mobile_ thread!
+ virtual void Handle(const impl::MessageFromMobile& message) OVERRIDE;
+
+ // CALLED ON messages_to_mobile_ thread!
+ virtual void Handle(const impl::MessageToMobile& message) OVERRIDE;
+
+ // CALLED ON messages_from_hmi_ thread!
+ virtual void Handle(const impl::MessageFromHmi& message) OVERRIDE;
+
+ // CALLED ON messages_to_hmi_ thread!
+ virtual void Handle(const impl::MessageToHmi& message) OVERRIDE;
+
+ private:
+
+
+ // members
+ ResumeCtrl resume_ctrl_;
+
+ /**
+ * @brief Resume controler is responcible for save and load information
+ * about persistent application data on disk, and save session ID for resuming
+ * application in case INGITION_OFF or MASTER_RESSET
+ */
+
+ /**
+ * @brief Map of connection keys and associated applications
+ */
+ std::map<int32_t, ApplicationSharedPtr> applications_;
+
+ /**
+ * @brief List of applications
+ */
+ std::set<ApplicationSharedPtr> application_list_;
+
+ /**
+ * @brief Set of HMI notifications with timeout.
+ */
+ std::list<CommandSharedPtr> notification_list_;
+
+ /**
+ * @brief Map of correlation id and associated application id.
+ */
+ std::map<const int32_t, const uint32_t> appID_list_;
+
+ bool audio_pass_thru_active_;
+ sync_primitives::Lock audio_pass_thru_lock_;
+ bool is_distracting_driver_;
+ bool is_vr_session_strated_;
+ bool hmi_cooperating_;
+ bool is_all_apps_allowed_;
+ media_manager::MediaManager* media_manager_;
+
+ hmi_message_handler::HMIMessageHandler* hmi_handler_;
+ connection_handler::ConnectionHandler* connection_handler_;
+ protocol_handler::ProtocolHandler* protocol_handler_;
+ policies::PolicyManager* policy_manager_;
+ request_controller::RequestController request_ctrl_;
+ HMICapabilities hmi_capabilities_;
+
+ // TODO(YS): Remove old implementation
+ policies_manager::PoliciesManager policies_manager_;
+
+ hmi_apis::HMI_API* hmi_so_factory_;
+ mobile_apis::MOBILE_API* mobile_so_factory_;
+
+ static log4cxx::LoggerPtr logger_;
+
+ static uint32_t corelation_id_;
+ static const uint32_t max_corelation_id_;
+
+ // The reason of HU shutdown
+ mobile_api::AppInterfaceUnregisteredReason::eType unregister_reason_;
+
+ // Construct message threads when everything is already created
+
+ // Thread that pumps messages coming from mobile side.
+ impl::FromMobileQueue messages_from_mobile_;
+ // Thread that pumps messages being passed to mobile side.
+ impl::ToMobileQueue messages_to_mobile_;
+ // Thread that pumps messages coming from HMI.
+ impl::FromHmiQueue messages_from_hmi_;
+ // Thread that pumps messages being passed to HMI.
+ impl::ToHmiQueue messages_to_hmi_;
+
+ // Lock for applications list
+ sync_primitives::Lock applications_list_lock_;
+
+ DISALLOW_COPY_AND_ASSIGN(ApplicationManagerImpl);
+
+ FRIEND_BASE_SINGLETON_CLASS(ApplicationManagerImpl);
+};
+
+const std::set<ApplicationSharedPtr>& ApplicationManagerImpl::applications() const {
+ return application_list_;
+}
+
+bool ApplicationManagerImpl::vr_session_started() const {
+ return is_vr_session_strated_;
+}
+
+bool ApplicationManagerImpl::driver_distraction() const {
+ return is_distracting_driver_;
+}
+
+inline bool ApplicationManagerImpl::all_apps_allowed() const {
+ return is_all_apps_allowed_;
+}
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/command.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/command.h
new file mode 100644
index 000000000..843a20bbb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/command.h
@@ -0,0 +1,81 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_H_
+
+#include "utils/shared_ptr.h"
+#include "smart_objects/smart_object.h"
+#include "application_manager/smart_object_keys.h"
+
+namespace application_manager {
+
+/**
+ * @brief SmartObject type
+ **/
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+typedef utils::SharedPtr<smart_objects::SmartObject> MessageSharedPtr;
+
+namespace commands {
+
+/**
+ * @brief Base command class
+ **/
+class Command {
+ public:
+ /**
+ * @brief Command initialization function
+ **/
+ virtual bool Init() = 0;
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run() = 0;
+
+ /**
+ * @brief Free resources
+ **/
+ virtual bool CleanUp() = 0;
+
+ /**
+ * \brief Command class destructor
+ **/
+ virtual ~Command() {}
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/command_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_impl.h
new file mode 100644
index 000000000..8fab40efd
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_impl.h
@@ -0,0 +1,94 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_IMPL_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_IMPL_H_
+
+#include "application_manager/commands/command.h"
+#include "utils/logger.h"
+
+namespace application_manager {
+
+namespace commands {
+
+extern log4cxx::LoggerPtr logger_;
+
+/**
+ * @brief Class is intended to encapsulate RPC as an object
+ **/
+class CommandImpl : public Command {
+ public:
+ /**
+ * @brief CommandImpl class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit CommandImpl(const MessageSharedPtr& message);
+
+ /**
+ * @brief CommandImpl class destructor
+ *
+ **/
+ virtual ~CommandImpl();
+
+ /**
+ * @brief Init required by command resources
+ **/
+ virtual bool Init();
+
+ /**
+ * @brief Cleanup all resources used by command
+ **/
+ virtual bool CleanUp();
+
+ /**
+ * @brief Execute corresponding command by calling the action on reciever
+ **/
+ virtual void Run();
+
+ // members
+ static const int32_t hmi_protocol_type_;
+ static const int32_t mobile_protocol_type_;
+ static const int32_t protocol_version_;
+
+ protected:
+ MessageSharedPtr message_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(CommandImpl);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_IMPL_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/command_notification_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_notification_impl.h
new file mode 100644
index 000000000..7d0d11af8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_notification_impl.h
@@ -0,0 +1,64 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_IMPL_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_IMPL_H_
+
+#include "application_manager/commands/command_impl.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+}
+}
+
+namespace application_manager {
+
+namespace commands {
+
+class CommandNotificationImpl : public CommandImpl {
+ public:
+ explicit CommandNotificationImpl(const MessageSharedPtr& message);
+ virtual ~CommandNotificationImpl();
+ virtual bool Init();
+ virtual bool CleanUp();
+ virtual void Run();
+ void SendNotification();
+ private:
+ DISALLOW_COPY_AND_ASSIGN(CommandNotificationImpl);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_NOTIFICATION_IMPL_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/command_request_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_request_impl.h
new file mode 100644
index 000000000..008894b22
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_request_impl.h
@@ -0,0 +1,178 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_REQUEST_IMPL_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_REQUEST_IMPL_H_
+
+#include "application_manager/commands/command_impl.h"
+#include "application_manager/event_engine/event_observer.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+#include "utils/lock.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+}
+}
+
+namespace application_manager {
+
+namespace commands {
+
+namespace NsSmart = NsSmartDeviceLink::NsSmartObjects;
+
+class CommandRequestImpl : public CommandImpl,
+ public event_engine::EventObserver {
+ public:
+
+ enum RequestState {
+ kAwaitingHMIResponse = 0,
+ kTimedOut,
+ kCompleted
+ };
+
+ explicit CommandRequestImpl(const MessageSharedPtr& message);
+ virtual ~CommandRequestImpl();
+ virtual bool Init();
+ virtual bool CleanUp();
+ virtual void Run();
+
+ /*
+ * @brief Function is called by RequestController when request execution time
+ * has exceed it's limit
+ *
+ */
+ virtual void onTimeOut();
+
+ /**
+ * @brief Default EvenObserver's pure virtual method implementation
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+ /**
+ * @brief Retrieves request default timeout.
+ * If request has a custom timeout, request_timeout_ should be reassign to it
+ *
+ * @return Request default timeout
+ */
+ inline unsigned int default_timeout() const;
+
+ /*
+ * @brief Retrieves request ID
+ */
+ inline int function_id() const;
+
+ /*
+ * @brief Retrieves correlation ID
+ */
+ inline int correlation_id() const;
+
+ /*
+ * @brief Retrieves connection key
+ */
+ inline int connection_key() const;
+
+ /*
+ * @brief Creates Mobile response
+ *
+ * @param success true if successful; false, if failed
+ * @param result_code Result code (SUCCESS, INVALID_DATA, e.t.c)
+ * @param info Provides additional human readable info regarding the result
+ * @param response_params Additional params in response
+ */
+ void SendResponse(const bool success,
+ const mobile_apis::Result::eType& result_code,
+ const char* info = NULL,
+ const NsSmart::SmartObject* response_params = NULL);
+
+ /**
+ * @brief Check syntax of string from mobile
+ * @param str - string that need to be checked
+ * @param allow_empty_string if true methos allow empty sting
+ * @return true if succes otherwise return false
+ */
+ bool CheckSyntax(std::string str, bool allow_empty_line = false);
+
+ /*
+ * @brief Sends HMI request
+ *
+ * @param function_id HMI request ID
+ * @param msg_params HMI request msg params
+ * @param use_events true if we need subscribe on event(HMI request)
+ *
+ */
+ void SendHMIRequest(const hmi_apis::FunctionID::eType& function_id,
+ const NsSmart::SmartObject* msg_params = NULL,
+ bool use_events = false);
+
+ /*
+ * @brief Creates HMI request
+ *
+ * @param function_id HMI request ID
+ * @param msg_params HMI request msg params
+ */
+ void CreateHMINotification(const hmi_apis::FunctionID::eType& function_id,
+ const NsSmart::SmartObject& msg_params) const;
+
+ protected:
+ unsigned int default_timeout_;
+ RequestState current_state_;
+ sync_primitives::Lock state_lock_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(CommandRequestImpl);
+};
+
+unsigned int CommandRequestImpl::default_timeout() const {
+ return default_timeout_;
+}
+
+int CommandRequestImpl::function_id() const {
+ return (*message_)[strings::params][strings::function_id].asInt();
+}
+
+int CommandRequestImpl::correlation_id() const {
+ return (*message_)[strings::params][strings::correlation_id].asInt();
+}
+
+int CommandRequestImpl::connection_key() const {
+ return (*message_)[strings::params][strings::connection_key].asInt();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_REQUEST_IMPL_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/command_response_impl.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_response_impl.h
new file mode 100644
index 000000000..0c93bf54d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/command_response_impl.h
@@ -0,0 +1,68 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_RESPONSE_IMPL_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_RESPONSE_IMPL_H_
+
+#include "application_manager/commands/command_impl.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+}
+}
+
+namespace application_manager {
+
+namespace commands {
+
+class CommandResponseImpl : public CommandImpl {
+ public:
+ explicit CommandResponseImpl(const MessageSharedPtr& message);
+ virtual ~CommandResponseImpl();
+ virtual bool Init();
+ virtual bool CleanUp();
+ virtual void Run();
+ void SendResponse(bool successe,
+ const mobile_apis::Result::eType& result_code =
+ mobile_apis::Result::INVALID_ENUM,
+ bool final_message = false);
+ private:
+ DISALLOW_COPY_AND_ASSIGN(CommandResponseImpl);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_COMMAND_RESPONSE_IMPL_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h
new file mode 100644
index 000000000..1329178c3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ActivateAppRequest command class
+ **/
+class ActivateAppRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief ActivateAppRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ActivateAppRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief ActivateAppRequest class destructor
+ **/
+ virtual ~ActivateAppRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ActivateAppRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h
new file mode 100644
index 000000000..1df9bc095
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/activate_app_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ActivateAppResponse command class
+ **/
+class ActivateAppResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief ActivateAppResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ActivateAppResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief ActivateAppResponse class destructor
+ **/
+ virtual ~ActivateAppResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ActivateAppResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ACTIVATE_APP_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h
new file mode 100644
index 000000000..6c2db489c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AllowAllAppsRequest command class
+ **/
+class AllowAllAppsRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief AllowAllAppsRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AllowAllAppsRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief AllowAllAppsRequest class destructor
+ **/
+ virtual ~AllowAllAppsRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AllowAllAppsRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h
new file mode 100644
index 000000000..0eb8184fa
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_all_apps_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AllowAllAppsResponse command class
+ **/
+class AllowAllAppsResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief AllowAllAppsResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AllowAllAppsResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief AllowAllAppsResponse class destructor
+ **/
+ virtual ~AllowAllAppsResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AllowAllAppsResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_ALL_APPS_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h
new file mode 100644
index 000000000..91228440a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AllowAppRequest command class
+ **/
+class AllowAppRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief AllowAppRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AllowAppRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief AllowAppRequest class destructor
+ **/
+ virtual ~AllowAppRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AllowAppRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h
new file mode 100644
index 000000000..5a24ac1a7
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/allow_app_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AllowAppResponse command class
+ **/
+class AllowAppResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief AllowAppResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AllowAppResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief AllowAppResponse class destructor
+ **/
+ virtual ~AllowAppResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AllowAppResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ALLOW_APP_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_request.h
new file mode 100644
index 000000000..39a3ecab4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AudioStartStreamRequest command class
+ **/
+class AudioStartStreamRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief AudioStartStreamRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AudioStartStreamRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnNaviStartStreamRequest class destructor
+ **/
+ virtual ~AudioStartStreamRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AudioStartStreamRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_response.h
new file mode 100644
index 000000000..8b816eb82
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_start_stream_response.h
@@ -0,0 +1,71 @@
+/* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AudioStartStreamResponse command class
+ **/
+class AudioStartStreamResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief AudioStartStreamResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AudioStartStreamResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief AudioStartStreamResponse class destructor
+ **/
+ virtual ~AudioStartStreamResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AudioStartStreamResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_START_STREAM_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_request.h
new file mode 100644
index 000000000..c5a1e7543
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_request.h
@@ -0,0 +1,71 @@
+/* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AudioStopStreamRequest command class
+ **/
+class AudioStopStreamRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief AudioStopStreamRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AudioStopStreamRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief NaviStopStreamRequest class destructor
+ **/
+ virtual ~AudioStopStreamRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AudioStopStreamRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_response.h
new file mode 100644
index 000000000..972892469
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/audio_stop_stream_response.h
@@ -0,0 +1,71 @@
+/* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviStopStreamResponse command class
+ **/
+class AudioStopStreamResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief AudioStopStreamResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AudioStopStreamResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnNaviStopStreamResponse class destructor
+ **/
+ virtual ~AudioStopStreamResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AudioStopStreamResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_AUDIO_STOP_STREAM_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h
new file mode 100644
index 000000000..3c9fbac68
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ButtonGetCapabilitiesRequest command class
+ **/
+class ButtonGetCapabilitiesRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief ButtonGetCapabilitiesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ButtonGetCapabilitiesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief ButtonGetCapabilitiesRequest class destructor
+ **/
+ virtual ~ButtonGetCapabilitiesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ButtonGetCapabilitiesRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h
new file mode 100644
index 000000000..067954537
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/button_get_capabilities_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ButtonGetCapabilitiesResponse command class
+ **/
+class ButtonGetCapabilitiesResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief ButtonGetCapabilitiesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ButtonGetCapabilitiesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief ButtonGetCapabilitiesResponse class destructor
+ **/
+ virtual ~ButtonGetCapabilitiesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ButtonGetCapabilitiesResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_BUTTON_GET_CAPABILITIES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h
new file mode 100644
index 000000000..72ff8a2c5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ClosePopupRequest command class
+ **/
+class ClosePopupRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief ClosePopupRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ClosePopupRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief ClosePopupRequest class destructor
+ **/
+ virtual ~ClosePopupRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ClosePopupRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h
new file mode 100644
index 000000000..05318e3cb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/close_popup_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP__RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP__RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ClosePopupResponse command class
+ **/
+class ClosePopupResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief ClosePopupResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ClosePopupResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief ClosePopupResponse class destructor
+ **/
+ virtual ~ClosePopupResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ClosePopupResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_CLOSE_POPUP__RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h
new file mode 100644
index 000000000..905b5b383
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief MixingAudioSupportedRequest command class
+ **/
+class MixingAudioSupportedRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief MixingAudioSupportedRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit MixingAudioSupportedRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief MixingAudioSupportedRequest class destructor
+ **/
+ virtual ~MixingAudioSupportedRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MixingAudioSupportedRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h
new file mode 100644
index 000000000..c8bfe4e15
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/mixing_audio_supported_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief MixingAudioSupportedResponse command class
+ **/
+class MixingAudioSupportedResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief MixingAudioSupportedResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit MixingAudioSupportedResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief MixingAudioSupportedResponse class destructor
+ **/
+ virtual ~MixingAudioSupportedResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MixingAudioSupportedResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_MIXING_AUDIO_SUPPORTED_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h
new file mode 100644
index 000000000..1e2a39df9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviAlertManeuverRequest command class
+ **/
+class NaviAlertManeuverRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief NaviAlertManeuverRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviAlertManeuverRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief NaviAlertManeuverRequest class destructor
+ **/
+ virtual ~NaviAlertManeuverRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviAlertManeuverRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h
new file mode 100644
index 000000000..41e0f623f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_alert_maneuver_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviAlertManeuverResponse command class
+ **/
+class NaviAlertManeuverResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief NaviAlertManeuverResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviAlertManeuverResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief NaviAlertManeuverResponse class destructor
+ **/
+ virtual ~NaviAlertManeuverResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviAlertManeuverResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_ALERT_MANEUVER_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h
new file mode 100644
index 000000000..a31efc7fe
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_IS_READY_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_IS_READY_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviIsReadyRequest command class
+ **/
+class NaviIsReadyRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief NaviIsReadyRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviIsReadyRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief NaviIsReadyRequest class destructor
+ **/
+ virtual ~NaviIsReadyRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviIsReadyRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVIGATION_IS_READY_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h
new file mode 100644
index 000000000..0fbad3515
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_is_ready_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_IS_READY_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_IS_READY_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviIsReadyResponse command class
+ **/
+class NaviIsReadyResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief NaviIsReadyResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviIsReadyResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief NaviIsReadyResponse class destructor
+ **/
+ virtual ~NaviIsReadyResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviIsReadyResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_IS_READY_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h
new file mode 100644
index 000000000..5da47e580
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviShowConstantTBTRequest command class
+ **/
+class NaviShowConstantTBTRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief NaviShowConstantTBTRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviShowConstantTBTRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief NaviShowConstantTBTRequest class destructor
+ **/
+ virtual ~NaviShowConstantTBTRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviShowConstantTBTRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h
new file mode 100644
index 000000000..4a26b26b0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_show_constant_tbt_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviShowConstantTBTResponse command class
+ **/
+class NaviShowConstantTBTResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief NaviShowConstantTBTResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviShowConstantTBTResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief NaviShowConstantTBTResponse class destructor
+ **/
+ virtual ~NaviShowConstantTBTResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviShowConstantTBTResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_SHOW_CONSTANT_TBT_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h
new file mode 100644
index 000000000..f43b99221
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviStartStreamRequest command class
+ **/
+class NaviStartStreamRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief NaviStartStreamRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviStartStreamRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnNaviStartStreamRequest class destructor
+ **/
+ virtual ~NaviStartStreamRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviStartStreamRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_response.h
new file mode 100644
index 000000000..c94b6f219
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_start_stream_response.h
@@ -0,0 +1,71 @@
+/* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviStartStreamResponse command class
+ **/
+class NaviStartStreamResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief NaviStartStreamResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviStartStreamResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief NaviStartStreamResponse class destructor
+ **/
+ virtual ~NaviStartStreamResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviStartStreamResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_START_STREAM_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_request.h
new file mode 100644
index 000000000..86b0981c2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_request.h
@@ -0,0 +1,71 @@
+/* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviStopStreamRequest command class
+ **/
+class NaviStopStreamRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief NaviStopStreamRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviStopStreamRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief NaviStopStreamRequest class destructor
+ **/
+ virtual ~NaviStopStreamRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviStopStreamRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_response.h
new file mode 100644
index 000000000..6f4986e4c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_stop_stream_response.h
@@ -0,0 +1,71 @@
+/* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviStopStreamResponse command class
+ **/
+class NaviStopStreamResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief NaviStopStreamResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviStopStreamResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnNaviStopStreamResponse class destructor
+ **/
+ virtual ~NaviStopStreamResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviStopStreamResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_STOP_STREAM_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h
new file mode 100644
index 000000000..61beef1b3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviUpdateTurnListRequest command class
+ **/
+class NaviUpdateTurnListRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief NaviUpdateTurnListRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviUpdateTurnListRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief NaviUpdateTurnListRequest class destructor
+ **/
+ virtual ~NaviUpdateTurnListRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviUpdateTurnListRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h
new file mode 100644
index 000000000..9e711b8be
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/navi_update_turn_list_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief NaviUpdateTurnListResponse command class
+ **/
+class NaviUpdateTurnListResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief NaviUpdateTurnListResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit NaviUpdateTurnListResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief NaviUpdateTurnListResponse class destructor
+ **/
+ virtual ~NaviUpdateTurnListResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NaviUpdateTurnListResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NAVI_UPDATE_TURN_LIST_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h
new file mode 100644
index 000000000..219306d37
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_from_hmi.h
@@ -0,0 +1,69 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_FROM_HMI_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_FROM_HMI_H_
+
+#include "application_manager/commands/command_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class CSmartObject;
+}
+}
+
+namespace application_manager {
+
+namespace commands {
+
+namespace NsSmartObj = NsSmartDeviceLink::NsSmartObjects;
+
+class NotificationFromHMI : public CommandImpl {
+ public:
+ explicit NotificationFromHMI(const MessageSharedPtr& message);
+ virtual ~NotificationFromHMI();
+ virtual bool Init();
+ virtual bool CleanUp();
+ virtual void Run();
+ void SendNotificationToMobile(const MessageSharedPtr& message);
+ void CreateHMIRequest(const hmi_apis::FunctionID::eType& function_id,
+ const NsSmartObj::SmartObject& msg_params) const;
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NotificationFromHMI);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_FROM_HMI_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_to_hmi.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_to_hmi.h
new file mode 100644
index 000000000..2372754b6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/notification_to_hmi.h
@@ -0,0 +1,58 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_TO_HMI_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_TO_HMI_H_
+
+#include "application_manager/commands/command_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+class NotificationToHMI : public CommandImpl {
+ public:
+ explicit NotificationToHMI(const MessageSharedPtr& message);
+ virtual ~NotificationToHMI();
+ virtual bool Init();
+ virtual bool CleanUp();
+ virtual void Run();
+ void SendNotification();
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NotificationToHMI);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_NOTIFICATION_TO_HMI_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h
new file mode 100644
index 000000000..a8bdeb6c9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_activated_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_ACTIVATED_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_ACTIVATED_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnAppActivatedNotification command class
+ **/
+class OnAppActivatedNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnAppActivatedNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnAppActivatedNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnAppActivatedNotification class destructor
+ **/
+ virtual ~OnAppActivatedNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnAppActivatedNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_ACTIVATED_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h
new file mode 100644
index 000000000..4c56dc415
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_deactivated_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_DEACTIVATED_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_DEACTIVATED_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnAppDeactivatedNotification command class
+ **/
+class OnAppDeactivatedNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnAppDeactivatedNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnAppDeactivatedNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnAppDeactivatedNotification class destructor
+ **/
+ virtual ~OnAppDeactivatedNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnAppDeactivatedNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_DEACTIVATED_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h
new file mode 100644
index 000000000..4364aa9a3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_registered_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_REGISTERED_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_REGISTERED_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnAppRegisteredNotification command class
+ **/
+class OnAppRegisteredNotification : public NotificationToHMI {
+ public:
+ /**
+ * @brief OnAppRegisteredNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnAppRegisteredNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnAppRegisteredNotification class destructor
+ **/
+ virtual ~OnAppRegisteredNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnAppRegisteredNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_REGISTERED_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h
new file mode 100644
index 000000000..d8470af39
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_app_unregistered_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_UNREGISTERED_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_UNREGISTERED_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnAppUnregisteredNotification command class
+ **/
+class OnAppUnregisteredNotification : public NotificationToHMI {
+ public:
+ /**
+ * @brief OnAppUnregisteredNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnAppUnregisteredNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnAppUnregisteredNotification class destructor
+ **/
+ virtual ~OnAppUnregisteredNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnAppUnregisteredNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_APP_UNREGISTERED_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h
new file mode 100644
index 000000000..0e2ffc300
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_event_notification.h
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_EVENT_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_EVENT_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+class Application;
+
+namespace commands {
+
+namespace hmi {
+
+/**
+ * @brief OnButtonEventNotification command class
+ **/
+class OnButtonEventNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnButtonEventNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnButtonEventNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnButtonEventNotification class destructor
+ **/
+ virtual ~OnButtonEventNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnButtonEventNotification);
+};
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_EVENT_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h
new file mode 100644
index 000000000..a54c7584f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_button_press_notification.h
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_PRESS_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_PRESS_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+class Application;
+
+namespace commands {
+
+namespace hmi {
+
+/**
+ * @brief OnButtonPressNotification command class
+ **/
+class OnButtonPressNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnButtonPressNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnButtonPressNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnButtonPressNotification class destructor
+ **/
+ virtual ~OnButtonPressNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnButtonPressNotification);
+};
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_BUTTON_PRESS_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h
new file mode 100644
index 000000000..e980bfe41
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_device_chosen_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_CHOSEN_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_CHOSEN_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnDeviceChosenNotification command class
+ **/
+class OnDeviceChosenNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnDeviceChosenNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnDeviceChosenNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnDeviceChosenNotification class destructor
+ **/
+ virtual ~OnDeviceChosenNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnDeviceChosenNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_CHOSEN_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h
new file mode 100644
index 000000000..77da5cf3b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_driver_distraction_notification.h
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DRIVER_DISTRACTION_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DRIVER_DISTRACTION_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+class Application;
+
+namespace commands {
+
+namespace hmi {
+
+/**
+ * @brief OnDriverDistractionNotification command class
+ **/
+class OnDriverDistractionNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnDriverDistractionNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnDriverDistractionNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnDriverDistractionNotification class destructor
+ **/
+ virtual ~OnDriverDistractionNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnDriverDistractionNotification);
+};
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DRIVER_DISTRACTION_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h
new file mode 100644
index 000000000..0140e649c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_all_applications_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_ALL_APPLICATIONS_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_ALL_APPLICATIONS_REQUEST_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnExitAllApplicationsNotification command class
+ **/
+class OnExitAllApplicationsNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnExitAllApplicationsNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnExitAllApplicationsNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnExitAllApplicationsNotification class destructor
+ **/
+ virtual ~OnExitAllApplicationsNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnExitAllApplicationsNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_ALL_APPLICATIONS_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h
new file mode 100644
index 000000000..b78c0e2af
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_exit_application_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_APPLICATION_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_APPLICATION_REQUEST_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnExitApplicationNotification command class
+ **/
+class OnExitApplicationNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnExitApplicationNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnExitApplicationNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnExitApplicationNotification class destructor
+ **/
+ virtual ~OnExitApplicationNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnExitApplicationNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_EXIT_APPLICATION_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h
new file mode 100644
index 000000000..2499129b2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_find_applications.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_LIST_UPDATED_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_LIST_UPDATED_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnFindApplications command class
+ **/
+class OnFindApplications : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnFindApplications class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnFindApplications(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnFindApplications class destructor
+ **/
+ virtual ~OnFindApplications();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnFindApplications);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_DEVICE_LIST_UPDATED_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h
new file mode 100644
index 000000000..6e42e1a0c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_navi_tbt_client_state_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_NAVI_TBT_CLIENT_STATE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_NAVI_TBT_CLIENT_STATE_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnNaviTBTClientStateNotification command class
+ **/
+class OnNaviTBTClientStateNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnNaviTBTClientStateNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnNaviTBTClientStateNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnNaviTBTClientStateNotification class destructor
+ **/
+ virtual ~OnNaviTBTClientStateNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnNaviTBTClientStateNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_NAVI_TBT_CLIENT_STATE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h
new file mode 100644
index 000000000..8e463c327
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_play_tone_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_PLAY_TONE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_PLAY_TONE_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnPlayToneNotification command class
+ **/
+class OnPlayToneNotification : public NotificationToHMI {
+ public:
+ /**
+ * @brief OnPlayToneNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnPlayToneNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnPlayToneNotification class destructor
+ **/
+ virtual ~OnPlayToneNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnPlayToneNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_PLAY_TONE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h
new file mode 100644
index 000000000..a3e2dd731
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ready_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_READY_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_READY_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnReadyNotification command class
+ **/
+class OnReadyNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnReadyNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnReadyNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnReadyNotification class destructor
+ **/
+ virtual ~OnReadyNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnReadyNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_READY_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h
new file mode 100644
index 000000000..e6b4418d6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_sdl_close_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SDL_CLOSE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SDL_CLOSE_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnSDLCloseNotification command class
+ **/
+class OnSDLCloseNotification : public NotificationToHMI {
+ public:
+ /**
+ * @brief OnSDLCloseNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnSDLCloseNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnSdlCloseNotification class destructor
+ **/
+ virtual ~OnSDLCloseNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnSDLCloseNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SDL_CLOSE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_show_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_show_notification.h
new file mode 100644
index 000000000..1264d5f67
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_show_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SHOW_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SHOW_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnShowNotification command class
+ **/
+class OnShowNotification : public NotificationToHMI {
+ public:
+ /**
+ * @brief OnShowNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnShowNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnShowNotification class destructor
+ **/
+ virtual ~OnShowNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnShowNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SHOW_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h
new file mode 100644
index 000000000..3e4dc1daf
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_start_device_discovery.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_START_DEVICE_DISCOVERY_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_START_DEVICE_DISCOVERY_REQUEST_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnStartDeviceDiscovery command class
+ **/
+class OnStartDeviceDiscovery : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnStartDeviceDiscovery class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnStartDeviceDiscovery(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnStartDeviceDiscovery class destructor
+ **/
+ virtual ~OnStartDeviceDiscovery();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnStartDeviceDiscovery);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_START_DEVICE_DISCOVERY_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h
new file mode 100644
index 000000000..edf325c2d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_context_notification.h
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_CONTEXT_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_CONTEXT_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+class Application;
+
+namespace commands {
+
+/**
+ * @brief OnSystemContextNotification command class
+ **/
+class OnSystemContextNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnSystemContextNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnSystemContextNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnSystemContextNotification class destructor
+ **/
+ virtual ~OnSystemContextNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnSystemContextNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_CONTEXT_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h
new file mode 100644
index 000000000..6e3a0eea7
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_system_request_notification.h
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_REQUEST_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_REQUEST_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnSystemRequestNotification command class
+ **/
+class OnSystemRequestNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnSystemRequestNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnSystemRequestNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnSystemRequestNotification class destructor
+ **/
+ virtual ~OnSystemRequestNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+
+ DISALLOW_COPY_AND_ASSIGN(OnSystemRequestNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_SYSTEM_REQUEST_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h
new file mode 100644
index 000000000..d9b55ac0c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_language_change_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_LANGUAGE_CHANGE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_LANGUAGE_CHANGE_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnTTSLanguageChangeNotification command class
+ **/
+class OnTTSLanguageChangeNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnTTSLanguageChangeNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnTTSLanguageChangeNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnTTSLanguageChangeNotification class destructor
+ **/
+ virtual ~OnTTSLanguageChangeNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnTTSLanguageChangeNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_LANGUAGE_CHANGE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h
new file mode 100644
index 000000000..8cb625607
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_started_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STARTED_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STARTED_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnTTSStartedNotification command class
+ **/
+class OnTTSStartedNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnTTSStartedNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnTTSStartedNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnTTSStartedNotification class destructor
+ **/
+ virtual ~OnTTSStartedNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnTTSStartedNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STARTED_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h
new file mode 100644
index 000000000..31fb6fb31
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_tts_stopped_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STOPPED_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STOPPED_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnTTSStoppedNotification command class
+ **/
+class OnTTSStoppedNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnTTSStoppedNotification class constructor
+ *
+ * @param message Incoming SmartObject OnTTSStartedNotificationmessage
+ **/
+ explicit OnTTSStoppedNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnTTSStoppedNotification class destructor
+ **/
+ virtual ~OnTTSStoppedNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnTTSStoppedNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_TTS_STOPPED_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h
new file mode 100644
index 000000000..1d0aaf307
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_command_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_COMMAND_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_COMMAND_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnUICommandNotification command class
+ **/
+class OnUICommandNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnUICommandNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnUICommandNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnUICommandNotification class destructor
+ **/
+ virtual ~OnUICommandNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnUICommandNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_COMMAND_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h
new file mode 100644
index 000000000..bb0a6a72d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_keyboard_input_notification.h
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_KEYBOARD_INPUT_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_KEYBOARD_INPUT_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace hmi {
+
+/**
+ * @brief OnUIKeyBoardInputNotification command class
+ **/
+class OnUIKeyBoardInputNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnUIKeyBoardInputNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnUIKeyBoardInputNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnUIKeyBoardInputNotification class destructor
+ **/
+ virtual ~OnUIKeyBoardInputNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnUIKeyBoardInputNotification);
+};
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_KEYBOARD_INPUT_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h
new file mode 100644
index 000000000..85b8f60c4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_language_change_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_LANGUAGE_CHANGE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_LANGUAGE_CHANGE_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnUILanguageChangeNotification command class
+ **/
+class OnUILanguageChangeNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnUILanguageChangeNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnUILanguageChangeNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnUILanguageChangeNotification class destructor
+ **/
+ virtual ~OnUILanguageChangeNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnUILanguageChangeNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_LANGUAGE_CHANGE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h
new file mode 100644
index 000000000..511606d07
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_reset_timeout_notification.h
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_RESET_TIMEOUT_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_RESET_TIMEOUT_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace hmi {
+
+/**
+ * @brief OnUIResetTimeoutNotification command class
+ **/
+class OnUIResetTimeoutNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnUIResetTimeoutNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnUIResetTimeoutNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnUIResetTimeoutNotification class destructor
+ **/
+ virtual ~OnUIResetTimeoutNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnUIResetTimeoutNotification);
+};
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_RESET_TIMEOUT_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h
new file mode 100644
index 000000000..3231d1ca2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_ui_touch_event_notification.h
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_TOUCH_EVENT_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_TOUCH_EVENT_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace hmi {
+
+/**
+ * @brief OnUITouchEventNotification command class
+ **/
+class OnUITouchEventNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnUITouchEventNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnUITouchEventNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnUITouchEventNotification class destructor
+ **/
+ virtual ~OnUITouchEventNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnUITouchEventNotification);
+};
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_UI_TOUCH_EVENT_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h
new file mode 100644
index 000000000..b6d7a555d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_update_device_list.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_RESPONSE_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnUpdateDeviceList command class
+ **/
+class OnUpdateDeviceList : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnUpdateDeviceList class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnUpdateDeviceList(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnUpdateDeviceList class destructor
+ **/
+ virtual ~OnUpdateDeviceList();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnUpdateDeviceList);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h
new file mode 100644
index 000000000..04bb3e54b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ACC_PEDAL_POSITION_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ACC_PEDAL_POSITION_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIAccPedalPositionNotification command class
+ **/
+class OnVIAccPedalPositionNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIAccPedalPositionNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIAccPedalPositionNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIAccPedalPositionNotification class destructor
+ **/
+ virtual ~OnVIAccPedalPositionNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIAccPedalPositionNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ACC_PEDAL_POSITION_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h
new file mode 100644
index 000000000..3cfb048cd
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_belt_status_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BELT_STATUS_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BELT_STATUS_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIBeltStatusNotification command class
+ **/
+class OnVIBeltStatusNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIBeltStatusNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIBeltStatusNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIBeltStatusNotification class destructor
+ **/
+ virtual ~OnVIBeltStatusNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIBeltStatusNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BELT_STATUS_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h
new file mode 100644
index 000000000..b9ecf5a34
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_body_information_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BODY_INFORMATION_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BODY_INFORMATION_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIBodyInformationNotification command class
+ **/
+class OnVIBodyInformationNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIBodyInformationNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIBodyInformationNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIBodyInformationNotification class destructor
+ **/
+ virtual ~OnVIBodyInformationNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIBodyInformationNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_BODY_INFORMATION_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h
new file mode 100644
index 000000000..925989e8c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_device_status_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DEVICE_STATUS_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DEVICE_STATUS_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIDeviceStatusNotification command class
+ **/
+class OnVIDeviceStatusNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIDeviceStatusNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIDeviceStatusNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIDeviceStatusNotification class destructor
+ **/
+ virtual ~OnVIDeviceStatusNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIDeviceStatusNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DEVICE_STATUS_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h
new file mode 100644
index 000000000..7baea9065
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_driver_braking_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DRIVER_BRAKING_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DRIVER_BRAKING_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIDriverBrakingNotification command class
+ **/
+class OnVIDriverBrakingNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIDriverBrakingNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIDriverBrakingNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIDriverBrakingNotification class destructor
+ **/
+ virtual ~OnVIDriverBrakingNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIDriverBrakingNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_DRIVER_BRAKING_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h
new file mode 100644
index 000000000..33dd824c6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_engine_torque_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ENGINE_TORQUE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ENGINE_TORQUE_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIEngineTorqueNotification command class
+ **/
+class OnVIEngineTorqueNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIEngineTorqueNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIEngineTorqueNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIEngineTorqueNotification class destructor
+ **/
+ virtual ~OnVIEngineTorqueNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIEngineTorqueNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ENGINE_TORQUE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h
new file mode 100644
index 000000000..207302a37
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_external_temperature_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_EXTERNAL_TEMPERATURE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_EXTERNAL_TEMPERATURE_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIExternalTemperatureNotification command class
+ **/
+class OnVIExternalTemperatureNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIExternalTemperatureNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIExternalTemperatureNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIExternalTemperatureNotification class destructor
+ **/
+ virtual ~OnVIExternalTemperatureNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIExternalTemperatureNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_EXTERNAL_TEMPERATURE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h
new file mode 100644
index 000000000..535758db2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIFuelLevelNotification command class
+ **/
+class OnVIFuelLevelNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIFuelLevelNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIFuelLevelNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIFuelLevelNotification class destructor
+ **/
+ virtual ~OnVIFuelLevelNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIFuelLevelNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h
new file mode 100644
index 000000000..92dffd89b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_fuel_level_state_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_STATE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_STATE_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIFuelLevelStateNotification command class
+ **/
+class OnVIFuelLevelStateNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIFuelLevelStateNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIFuelLevelStateNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIFuelLevelStateNotification class destructor
+ **/
+ virtual ~OnVIFuelLevelStateNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIFuelLevelStateNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_FUEL_LEVEL_STATE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h
new file mode 100644
index 000000000..d8f2a768f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_gps_data_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_GPS_DATA_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_GPS_DATA_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIGpsDataNotification command class
+ **/
+class OnVIGpsDataNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIGpsDataNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIGpsDataNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIGpsDataNotification class destructor
+ **/
+ virtual ~OnVIGpsDataNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIGpsDataNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_GPS_DATA_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h
new file mode 100644
index 000000000..47802e97e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_head_lamp_status_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_HEAD_LAMP_STATUS_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_HEAD_LAMP_STATUS_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIHeadLampStatusNotification command class
+ **/
+class OnVIHeadLampStatusNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIHeadLampStatusNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIHeadLampStatusNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIHeadLampStatusNotification class destructor
+ **/
+ virtual ~OnVIHeadLampStatusNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIHeadLampStatusNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_HEAD_LAMP_STATUS_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h
new file mode 100644
index 000000000..fe3841298
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_INSTANT_FUEL_CONSUMPTION_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_INSTANT_FUEL_CONSUMPTION_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIInstantFuelConsumptionNotification command class
+ **/
+class OnVIInstantFuelConsumptionNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIInstantFuelConsumptionNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIInstantFuelConsumptionNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIInstantFuelConsumptionNotification class destructor
+ **/
+ virtual ~OnVIInstantFuelConsumptionNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIInstantFuelConsumptionNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_INSTANT_FUEL_CONSUMPTION_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h
new file mode 100644
index 000000000..d636b6e77
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_my_key_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_MY_KEY_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_MY_KEY_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIMyKeyNotification command class
+ **/
+class OnVIMyKeyNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIMyKeyNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIMyKeyNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIMyKeyNotification class destructor
+ **/
+ virtual ~OnVIMyKeyNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIMyKeyNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_MY_KEY_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h
new file mode 100644
index 000000000..1cf4c2587
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_odometer_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ODOMETER_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ODOMETER_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIOdometerNotification command class
+ **/
+class OnVIOdometerNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIOdometerNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIOdometerNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIOdometerNotification class destructor
+ **/
+ virtual ~OnVIOdometerNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIOdometerNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_ODOMETER_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h
new file mode 100644
index 000000000..5a3a13637
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_prndl_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_PRNDL_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_PRNDL_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIPrndlNotification command class
+ **/
+class OnVIPrndlNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIPrndlNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIPrndlNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIPrndlNotification class destructor
+ **/
+ virtual ~OnVIPrndlNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIPrndlNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_PRNDL_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h
new file mode 100644
index 000000000..80dea2a6e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_rpm_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_RPM_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_RPM_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIRpmNotification command class
+ **/
+class OnVIRpmNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIRpmNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIRpmNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIRpmNotification class destructor
+ **/
+ virtual ~OnVIRpmNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIRpmNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_RPM_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h
new file mode 100644
index 000000000..19bffabf4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_speed_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_SPEED_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_SPEED_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVISpeedNotification command class
+ **/
+class OnVISpeedNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVISpeedNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVISpeedNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVISpeedNotification class destructor
+ **/
+ virtual ~OnVISpeedNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVISpeedNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_SPEED_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h
new file mode 100644
index 000000000..0826cb6c6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_STEERING_WHEEL_ANGLE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_STEERING_WHEEL_ANGLE_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVISteeringWheelAngleNotification command class
+ **/
+class OnVISteeringWheelAngleNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVISteeringWheelAngleNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVISteeringWheelAngleNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVISteeringWheelAngleNotification class destructor
+ **/
+ virtual ~OnVISteeringWheelAngleNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVISteeringWheelAngleNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_STEERING_WHEEL_ANGLE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h
new file mode 100644
index 000000000..ba8eceefc
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_tire_pressure_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_TIRE_PRESSURE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_TIRE_PRESSURE_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVITirePressureNotification command class
+ **/
+class OnVITirePressureNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVITirePressureNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVITirePressureNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVITirePressureNotification class destructor
+ **/
+ virtual ~OnVITirePressureNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVITirePressureNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_TIRE_PRESSURE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h
new file mode 100644
index 000000000..30ad9d6ac
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vehicle_data_notification.h
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VEHICLE_DATA_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VEHICLE_DATA_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIVehicleDataNotification command class
+ * Sent by HMI for the periodic and non periodic vehicle data
+ **/
+class OnVIVehicleDataNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIVehicleDataNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIVehicleDataNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIVehicleDataNotification class destructor
+ **/
+ virtual ~OnVIVehicleDataNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIVehicleDataNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VEHICLE_DATA_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h
new file mode 100644
index 000000000..0cb5fb17d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_vin_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VIN_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VIN_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIVinNotification command class
+ **/
+class OnVIVinNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIVinNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIVinNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIVinNotification class destructor
+ **/
+ virtual ~OnVIVinNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIVinNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_VIN_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h
new file mode 100644
index 000000000..c7a1a6bd6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vi_wiper_status_notification.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_WIPER_STATUS_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_WIPER_STATUS_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVIWiperStatusNotification command class
+ **/
+class OnVIWiperStatusNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVIWiperStatusNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVIWiperStatusNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVIWiperStatusNotification class destructor
+ **/
+ virtual ~OnVIWiperStatusNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVIWiperStatusNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VI_WIPER_STATUS_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h
new file mode 100644
index 000000000..677bc2672
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_command_notification.h
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_COMMAND_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_COMMAND_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVRCommandNotification command class
+ **/
+class OnVRCommandNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVRCommandNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVRCommandNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVRCommandNotification class destructor
+ **/
+ virtual ~OnVRCommandNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+
+ DISALLOW_COPY_AND_ASSIGN(OnVRCommandNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_COMMAND_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h
new file mode 100644
index 000000000..24c60c32d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_language_change_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_LANGUAGE_CHANGE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_LANGUAGE_CHANGE_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVRLanguageChangeNotification command class
+ **/
+class OnVRLanguageChangeNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVRLanguageChangeNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVRLanguageChangeNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVRLanguageChangeNotification class destructor
+ **/
+ virtual ~OnVRLanguageChangeNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVRLanguageChangeNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_LANGUAGE_CHANGE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h
new file mode 100644
index 000000000..cc78f010b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_started_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STARTED_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STARTED_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVRStartedNotification command class
+ **/
+class OnVRStartedNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVRStartedNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVRStartedNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVRStartedNotification class destructor
+ **/
+ virtual ~OnVRStartedNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVRStartedNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STARTED_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h
new file mode 100644
index 000000000..2ee8ad429
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/on_vr_stopped_notification.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STOPPED_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STOPPED_NOTIFICATION_H_
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVRStoppedNotification command class
+ **/
+class OnVRStoppedNotification : public NotificationFromHMI {
+ public:
+ /**
+ * @brief OnVRStoppedNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVRStoppedNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVRStoppedNotification class destructor
+ **/
+ virtual ~OnVRStoppedNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnVRStoppedNotification);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_ON_VR_STOPPED_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h
new file mode 100644
index 000000000..e1149773b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/request_to_hmi.h
@@ -0,0 +1,75 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_REQUEST_TO_HMI_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_REQUEST_TO_HMI_H_
+
+#include "application_manager/commands/command_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+
+class RequestToHMI : public CommandImpl {
+ public:
+ explicit RequestToHMI(const MessageSharedPtr& message);
+ virtual ~RequestToHMI();
+ virtual bool Init();
+ virtual bool CleanUp();
+ virtual void Run();
+ void SendRequest();
+
+ /*
+ * @brief Retrieves correlation ID
+ */
+ inline int32_t correlation_id() const;
+
+ /*
+ * @brief Retrieves application ID
+ */
+ inline uint32_t application_id() const;
+ private:
+ DISALLOW_COPY_AND_ASSIGN(RequestToHMI);
+};
+int32_t RequestToHMI::correlation_id() const {
+ return (*message_)[strings::params][strings::correlation_id].asInt();
+}
+uint32_t RequestToHMI::application_id() const {
+ return (*message_)[strings::msg_params][strings::app_id].asUInt();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_REQUEST_TO_HMI_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h
new file mode 100644
index 000000000..e46583ba1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/response_from_hmi.h
@@ -0,0 +1,85 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_RESPONSE_FROM_HMI_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_RESPONSE_FROM_HMI_H_
+
+#include "application_manager/commands/command_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+}
+}
+
+namespace application_manager {
+
+namespace commands {
+
+namespace NsSmart = NsSmartDeviceLink::NsSmartObjects;
+
+class ResponseFromHMI : public CommandImpl {
+ public:
+ explicit ResponseFromHMI(const MessageSharedPtr& message);
+ virtual ~ResponseFromHMI();
+ virtual bool Init();
+ virtual bool CleanUp();
+ virtual void Run();
+ void SendResponseToMobile(const MessageSharedPtr& message);
+
+ /*
+ * @brief Creates HMI request
+ *
+ * @param function_id HMI request ID
+ * @param msg_params HMI request msg params
+ */
+ void CreateHMIRequest(const hmi_apis::FunctionID::eType& function_id,
+ const NsSmart::SmartObject& msg_params) const;
+
+ /*
+ * @brief Retrieves correlation ID
+ */
+ inline int32_t correlation_id() const;
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ResponseFromHMI);
+};
+
+int32_t ResponseFromHMI::correlation_id() const {
+ return (*message_)[strings::params][strings::correlation_id].asInt();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_RESPONSE_FROM_HMI_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h
new file mode 100644
index 000000000..a587af950
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSChangeRegistrationRequest command class
+ **/
+class TTSChangeRegistrationRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief TTSChangeRegistrationRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSChangeRegistrationRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSChangeRegistrationRequest class destructor
+ **/
+ virtual ~TTSChangeRegistrationRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSChangeRegistrationRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h
new file mode 100644
index 000000000..3a9e9fda5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_change_registration_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSChangeRegistratioResponse command class
+ **/
+class TTSChangeRegistratioResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief TTSChangeRegistratioResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSChangeRegistratioResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSChangeRegistratioResponse class destructor
+ **/
+ virtual ~TTSChangeRegistratioResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSChangeRegistratioResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_CHANGE_REGISTRATION_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h
new file mode 100644
index 000000000..73edd9de7
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSGetCapabilitiesRequest command class
+ **/
+class TTSGetCapabilitiesRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief TTSGetCapabilitiesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSGetCapabilitiesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSGetCapabilitiesRequest class destructor
+ **/
+ virtual ~TTSGetCapabilitiesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSGetCapabilitiesRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h
new file mode 100644
index 000000000..71f85d68e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_capabilities_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSGetCapabilitiesResponse command class
+ **/
+class TTSGetCapabilitiesResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief TTSGetCapabilitiesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSGetCapabilitiesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSGetCapabilitiesResponse class destructor
+ **/
+ virtual ~TTSGetCapabilitiesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSGetCapabilitiesResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_CAPABILITIES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h
new file mode 100644
index 000000000..94e38ec47
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSGetLanguageRequest command class
+ **/
+class TTSGetLanguageRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief TTSGetLanguageRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSGetLanguageRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSGetLanguageRequest class destructor
+ **/
+ virtual ~TTSGetLanguageRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSGetLanguageRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h
new file mode 100644
index 000000000..bd67d64f3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_language_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSGetLanguageResponse command class
+ **/
+class TTSGetLanguageResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief TTSGetLanguageResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSGetLanguageResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSGetLanguageResponse class destructor
+ **/
+ virtual ~TTSGetLanguageResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSGetLanguageResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_LANGUAGE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h
new file mode 100644
index 000000000..ff80dd238
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSGetSupportedLanguagesRequest command class
+ **/
+class TTSGetSupportedLanguagesRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief TTSGetSupportedLanguagesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSGetSupportedLanguagesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSGetSupportedLanguagesRequest class destructor
+ **/
+ virtual ~TTSGetSupportedLanguagesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSGetSupportedLanguagesRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h
new file mode 100644
index 000000000..244f22346
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_get_supported_languages_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSGetSupportedLanguagesResponse command class
+ **/
+class TTSGetSupportedLanguagesResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief TTSGetSupportedLanguagesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSGetSupportedLanguagesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSGetSupportedLanguagesResponse class destructor
+ **/
+ virtual ~TTSGetSupportedLanguagesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSGetSupportedLanguagesResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_GET_SUPPORTED_LANGUAGES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h
new file mode 100644
index 000000000..dc58d852e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSIsReadyRequest command class
+ **/
+class TTSIsReadyRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief TTSIsReadyRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSIsReadyRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSIsReadyRequest class destructor
+ **/
+ virtual ~TTSIsReadyRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSIsReadyRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h
new file mode 100644
index 000000000..375e5a5d1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_is_ready_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSIsReadyResponse command class
+ **/
+class TTSIsReadyResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief TTSIsReadyResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSIsReadyResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSIsReadyResponse class destructor
+ **/
+ virtual ~TTSIsReadyResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSIsReadyResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_IS_READY_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_request.h
new file mode 100644
index 000000000..04057a3d0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSPerformInteractionRequest command class
+ **/
+class TTSPerformInteractionRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief TTSPerformInteractionRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSPerformInteractionRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSPerformInteractionRequest class destructor
+ **/
+ virtual ~TTSPerformInteractionRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSPerformInteractionRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_response.h
new file mode 100644
index 000000000..08ec53bd5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_perform_interaction_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSPerformInteractionResponse command class
+ **/
+class TTSPerformInteractionResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief TTSPerformInteractionResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSPerformInteractionResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSPerformInteractionResponse class destructor
+ **/
+ virtual ~TTSPerformInteractionResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSPerformInteractionResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_PERFORM_INTERACTION_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h
new file mode 100644
index 000000000..b398e0b2d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSSetGlobalPropertiesRequest command class
+ **/
+class TTSSetGlobalPropertiesRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief TTSSetGlobalPropertiesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSSetGlobalPropertiesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSSetGlobalPropertiesRequest class destructor
+ **/
+ virtual ~TTSSetGlobalPropertiesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSSetGlobalPropertiesRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h
new file mode 100644
index 000000000..adf0b7027
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_set_global_properties_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSSetGlobalPropertiesResponse command class
+ **/
+class TTSSetGlobalPropertiesResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief TTSSetGlobalPropertiesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSSetGlobalPropertiesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSSetGlobalPropertiesResponse class destructor
+ **/
+ virtual ~TTSSetGlobalPropertiesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSSetGlobalPropertiesResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SET_GLOBAL_PROPERTIES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h
new file mode 100644
index 000000000..326c638f4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_request.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSSpeakRequest command class
+ **/
+class TTSSpeakRequest
+ : public RequestToHMI {
+ public:
+ /**
+ * @brief TTSSpeakRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSSpeakRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSSpeakRequest class destructor
+ **/
+ virtual ~TTSSpeakRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSSpeakRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h
new file mode 100644
index 000000000..e22c54987
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_speak_response.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSSpeakResponse command class
+ **/
+class TTSSpeakResponse
+ : public ResponseFromHMI {
+ public:
+ /**
+ * @brief TTSSpeakResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSSpeakResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSSpeakResponse class destructor
+ **/
+ virtual ~TTSSpeakResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSSpeakResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_SPEAK_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h
new file mode 100644
index 000000000..0d82121fd
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSStopSpeakingRequest command class
+ **/
+class TTSStopSpeakingRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief TTSStopSpeakingRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSStopSpeakingRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSStopSpeakingRequest class destructor
+ **/
+ virtual ~TTSStopSpeakingRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSStopSpeakingRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h
new file mode 100644
index 000000000..b9055bfbe
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/tts_stop_speaking_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief TTSStopSpeakingResponse command class
+ **/
+class TTSStopSpeakingResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief TTSStopSpeakingResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit TTSStopSpeakingResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief TTSStopSpeakingResponse class destructor
+ **/
+ virtual ~TTSStopSpeakingResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TTSStopSpeakingResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_TTS_STOP_SPEAKING_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h
new file mode 100644
index 000000000..ffd6eeeef
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIAddCommandRequest command class
+ **/
+class UIAddCommandRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIAddCommandRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIAddCommandRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIAddCommandRequest class destructor
+ **/
+ virtual ~UIAddCommandRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIAddCommandRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h
new file mode 100644
index 000000000..f84b71d0f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_command_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIAddCommandResponse command class
+ **/
+class UIAddCommandResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIAddCommandResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIAddCommandResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIAddCommandResponse class destructor
+ **/
+ virtual ~UIAddCommandResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIAddCommandResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_COMMAND_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h
new file mode 100644
index 000000000..1227de046
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIAddSubmenuRequest command class
+ **/
+class UIAddSubmenuRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIAddSubmenuRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIAddSubmenuRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIAddSubmenuRequest class destructor
+ **/
+ virtual ~UIAddSubmenuRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIAddSubmenuRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h
new file mode 100644
index 000000000..1b3a10729
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_add_submenu_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIAddSubmenuResponse command class
+ **/
+class UIAddSubmenuResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIAddSubmenuResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIAddSubmenuResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIAddSubmenuResponse class destructor
+ **/
+ virtual ~UIAddSubmenuResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIAddSubmenuResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ADD_SUBMENU_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h
new file mode 100644
index 000000000..7395eb19e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIAlertRequest command class
+ **/
+class UIAlertRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIAlertRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIAlertRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIAlertRequest class destructor
+ **/
+ virtual ~UIAlertRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIAlertRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h
new file mode 100644
index 000000000..1d17d9809
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_alert_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIAlertResponse command class
+ **/
+class UIAlertResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIAlertResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIAlertResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIAlertResponse class destructor
+ **/
+ virtual ~UIAlertResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIAlertResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_ALERT_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h
new file mode 100644
index 000000000..51276b7b0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIChangeRegistrationRequest command class
+ **/
+class UIChangeRegistrationRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIChangeRegistrationRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIChangeRegistrationRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIChangeRegistrationRequest class destructor
+ **/
+ virtual ~UIChangeRegistrationRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIChangeRegistrationRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h
new file mode 100644
index 000000000..edb7574e8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_change_registration_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIChangeRegistratioResponse command class
+ **/
+class UIChangeRegistratioResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIChangeRegistratioResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIChangeRegistratioResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIChangeRegistratioResponse class destructor
+ **/
+ virtual ~UIChangeRegistratioResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIChangeRegistratioResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CHANGE_REGISTRATION_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h
new file mode 100644
index 000000000..398f78c28
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIDeleteCommandRequest command class
+ **/
+class UIDeleteCommandRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIDeleteCommandRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIDeleteCommandRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIDeleteCommandRequest class destructor
+ **/
+ virtual ~UIDeleteCommandRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIDeleteCommandRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h
new file mode 100644
index 000000000..bb1981190
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_command_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIDeleteCommandResponse command class
+ **/
+class UIDeleteCommandResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIDeleteCommandResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIDeleteCommandResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIDeleteCommandResponse class destructor
+ **/
+ virtual ~UIDeleteCommandResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIDeleteCommandResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_COMMAND_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h
new file mode 100644
index 000000000..1b3747234
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIAddSubmenuRequest command class
+ **/
+class UIDeleteSubmenuRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIDeleteSubmenuRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIDeleteSubmenuRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIDeleteSubmenuRequest class destructor
+ **/
+ virtual ~UIDeleteSubmenuRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIDeleteSubmenuRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h
new file mode 100644
index 000000000..8bbab9946
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_delete_submenu_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIDeleteSubmenuResponse command class
+ **/
+class UIDeleteSubmenuResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIDeleteSubmenuResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIDeleteSubmenuResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIDeleteSubmenuResponse class destructor
+ **/
+ virtual ~UIDeleteSubmenuResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIDeleteSubmenuResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_DELETE_SUBMENU_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h
new file mode 100644
index 000000000..9e8e11c1a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_request.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIEndAudioPassThruRequest command class
+ * When this request is invoked, the audio capture stops
+ **/
+class UIEndAudioPassThruRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIEndAudioPassThruRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIEndAudioPassThruRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIEndAudioPassThruRequest class destructor
+ **/
+ virtual ~UIEndAudioPassThruRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIEndAudioPassThruRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h
new file mode 100644
index 000000000..740fc5501
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_end_audio_pass_thru_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIEndAudioPassThruResponse command class
+ **/
+class UIEndAudioPassThruResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIEndAudioPassThruResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIEndAudioPassThruResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIEndAudioPassThruResponse class destructor
+ **/
+ virtual ~UIEndAudioPassThruResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIEndAudioPassThruResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_END_AUDIO_PASS_THRU_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h
new file mode 100644
index 000000000..2d0469d6a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIGetCapabilitiesRequest command class
+ **/
+class UIGetCapabilitiesRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIGetCapabilitiesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIGetCapabilitiesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIGetCapabilitiesRequest class destructor
+ **/
+ virtual ~UIGetCapabilitiesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIGetCapabilitiesRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h
new file mode 100644
index 000000000..dc6052e04
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_capabilities_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIGetCapabilitiesResponse command class
+ **/
+class UIGetCapabilitiesResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIGetCapabilitiesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIGetCapabilitiesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIGetCapabilitiesResponse class destructor
+ **/
+ virtual ~UIGetCapabilitiesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIGetCapabilitiesResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_CAPABILITIES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h
new file mode 100644
index 000000000..4fca4826b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIGetLanguageRequest command class
+ **/
+class UIGetLanguageRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIGetLanguageRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIGetLanguageRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIGetLanguageRequest class destructor
+ **/
+ virtual ~UIGetLanguageRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIGetLanguageRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h
new file mode 100644
index 000000000..ea43e3856
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_language_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIGetLanguageResponse command class
+ **/
+class UIGetLanguageResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIGetLanguageResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIGetLanguageResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIGetLanguageResponse class destructor
+ **/
+ virtual ~UIGetLanguageResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIGetLanguageResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_LANGUAGE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h
new file mode 100644
index 000000000..cc0e70fea
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIGetSupportedLanguagesRequest command class
+ **/
+class UIGetSupportedLanguagesRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIGetSupportedLanguagesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIGetSupportedLanguagesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIGetSupportedLanguagesRequest class destructor
+ **/
+ virtual ~UIGetSupportedLanguagesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIGetSupportedLanguagesRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h
new file mode 100644
index 000000000..15e400687
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_get_supported_languages_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIGetSupportedLanguagesResponse command class
+ **/
+class UIGetSupportedLanguagesResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIGetSupportedLanguagesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIGetSupportedLanguagesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIGetSupportedLanguagesResponse class destructor
+ **/
+ virtual ~UIGetSupportedLanguagesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIGetSupportedLanguagesResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_GET_SUPPORTED_LANGUAGES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h
new file mode 100644
index 000000000..5e2cb7ef9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIIsReadyRequest command class
+ **/
+class UIIsReadyRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIIsReadyRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIIsReadyRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIIsReadyRequest class destructor
+ **/
+ virtual ~UIIsReadyRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIIsReadyRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h
new file mode 100644
index 000000000..bc7210f2a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_is_ready_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIIsReadyResponse command class
+ **/
+class UIIsReadyResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIIsReadyResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIIsReadyResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIIsReadyResponse class destructor
+ **/
+ virtual ~UIIsReadyResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIIsReadyResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_IS_READY_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h
new file mode 100644
index 000000000..94bc4827a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIPerformAudioPassThruRequest command class
+ **/
+class UIPerformAudioPassThruRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIPerformAudioPassThruRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIPerformAudioPassThruRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIPerformAudioPassThruRequest class destructor
+ **/
+ virtual ~UIPerformAudioPassThruRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIPerformAudioPassThruRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h
new file mode 100644
index 000000000..04afedfba
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIPerformAudioPassThruResponse command class
+ **/
+class UIPerformAudioPassThruResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIPerformAudioPassThruResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIPerformAudioPassThruResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIPerformAudioPassThruResponse class destructor
+ **/
+ virtual ~UIPerformAudioPassThruResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIPerformAudioPassThruResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h
new file mode 100644
index 000000000..0d6313943
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_INTERACTION_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_INTERACTION_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIPerformInteractionRequest command class
+ **/
+class UIPerformInteractionRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIPerformInteractionRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIPerformInteractionRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIPerformInteractionRequest class destructor
+ **/
+ virtual ~UIPerformInteractionRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIPerformInteractionRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_CREATE_INTERACTION_SET_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h
new file mode 100644
index 000000000..32a87c73c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_perform_interaction_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_INTERACTION_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_INTERACTION_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIPerformInteractionResponse command class
+ **/
+class UIPerformInteractionResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIPerformInteractionResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIPerformInteractionResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIPerformInteractionResponse class destructor
+ **/
+ virtual ~UIPerformInteractionResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIPerformInteractionResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_PERFORM_INTERACTION_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h
new file mode 100644
index 000000000..6f23d3b21
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIScrollableMessageRequest command class
+ **/
+class UIScrollableMessageRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIScrollableMessageRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIScrollableMessageRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIScrollableMessageRequest class destructor
+ **/
+ virtual ~UIScrollableMessageRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIScrollableMessageRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h
new file mode 100644
index 000000000..7bf15a051
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_scrollable_message_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIScrollableMessageResponse command class
+ **/
+class UIScrollableMessageResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIScrollableMessageResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIScrollableMessageResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIScrollableMessageResponse class destructor
+ **/
+ virtual ~UIScrollableMessageResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIScrollableMessageResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SCROLLABLE_MESSAGE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_request.h
new file mode 100644
index 000000000..7e67912f5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_request.h
@@ -0,0 +1,71 @@
+/* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UiSetDisplayLayoutRequest command class
+ **/
+class UiSetDisplayLayoutRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UiSetDisplayLayoutRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UiSetDisplayLayoutRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UiSetDisplayLayoutRequest class destructor
+ **/
+ virtual ~UiSetDisplayLayoutRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UiSetDisplayLayoutRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h
new file mode 100644
index 000000000..74df2030e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_display_layout_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UiSetDisplayLayoutResponse command class
+ **/
+class UiSetDisplayLayoutResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UiSetDisplayLayoutResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UiSetDisplayLayoutResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UiSetDisplayLayoutResponse class destructor
+ **/
+ virtual ~UiSetDisplayLayoutResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UiSetDisplayLayoutResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_DISPLAY_LAYOUT_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h
new file mode 100644
index 000000000..f3f7d0e73
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UISetGlobalPropertiesRequest command class
+ **/
+class UISetGlobalPropertiesRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UISetGlobalPropertiesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISetGlobalPropertiesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIShowRequest class destructor
+ **/
+ virtual ~UISetGlobalPropertiesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISetGlobalPropertiesRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h
new file mode 100644
index 000000000..bc00397e3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_global_properties_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UISetGlobalPropertiesResponse command class
+ **/
+class UISetGlobalPropertiesResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UISetGlobalPropertiesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISetGlobalPropertiesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UISetGlobalPropertiesResponse class destructor
+ **/
+ virtual ~UISetGlobalPropertiesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISetGlobalPropertiesResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_GLOBAL_PROPERTIES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_request.h
new file mode 100644
index 000000000..1541aada6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UISetIconRequest command class
+ **/
+class UISetIconRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UISetIconRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISetIconRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UISetIconRequest class destructor
+ **/
+ virtual ~UISetIconRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISetIconRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_response.h
new file mode 100644
index 000000000..f125f6428
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_icon_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UISetIconResponse command class
+ **/
+class UISetIconResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UISetIconResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISetIconResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UISetIconResponse class destructor
+ **/
+ virtual ~UISetIconResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISetIconResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_ICON_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h
new file mode 100644
index 000000000..44cbbbfcf
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UISetMediaClockTimerRequest command class
+ **/
+class UISetMediaClockTimerRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UISetMediaClockTimerRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISetMediaClockTimerRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UISetMediaClockTimerRequest class destructor
+ **/
+ virtual ~UISetMediaClockTimerRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISetMediaClockTimerRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h
new file mode 100644
index 000000000..dd46f128d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_set_media_clock_timer_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UISetMediaClockTimerResponse command class
+ **/
+class UISetMediaClockTimerResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UISetMediaClockTimerResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISetMediaClockTimerResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UISetMediaClockTimerResponse class destructor
+ **/
+ virtual ~UISetMediaClockTimerResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISetMediaClockTimerResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h
new file mode 100644
index 000000000..6f22263e6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIShowRequest command class
+ **/
+class UIShowRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UIShowRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIShowRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIShowRequest class destructor
+ **/
+ virtual ~UIShowRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIShowRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h
new file mode 100644
index 000000000..a6391fa6c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_show_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UIShowResponse command class
+ **/
+class UIShowResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UIShowResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UIShowResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UIShowResponse class destructor
+ **/
+ virtual ~UIShowResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UIShowResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SHOW_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h
new file mode 100644
index 000000000..5cb31b4a9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ButtonGetCapabilitiesRequest command class
+ **/
+class UISliderRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UISliderRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISliderRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UISliderRequest class destructor
+ **/
+ virtual ~UISliderRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISliderRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h
new file mode 100644
index 000000000..aae5408e2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/ui_slider_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UISliderResponse command class
+ **/
+class UISliderResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UISliderResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UISliderResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UISliderResponse class destructor
+ **/
+ virtual ~UISliderResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UISliderResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UI_SLIDER_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h
new file mode 100644
index 000000000..51dac16ec
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UpdateAppListRequest command class
+ **/
+class UpdateAppListRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UpdateAppListRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UpdateAppListRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UpdateAppListRequest class destructor
+ **/
+ virtual ~UpdateAppListRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UpdateAppListRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h
new file mode 100644
index 000000000..7e3f4d1ac
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_app_list_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UpdateAppListResponse command class
+ **/
+class UpdateAppListResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UpdateAppListResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UpdateAppListResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UpdateAppListResponse class destructor
+ **/
+ virtual ~UpdateAppListResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UpdateAppListResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_APP_LIST_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h
new file mode 100644
index 000000000..abf82b26a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UpdateDeviceListRequest command class
+ **/
+class UpdateDeviceListRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief UpdateDeviceListRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UpdateDeviceListRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UpdateDeviceListRequest class destructor
+ **/
+ virtual ~UpdateDeviceListRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UpdateDeviceListRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_GET_DEVICE_LIST_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h
new file mode 100644
index 000000000..d4191c8be
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/update_device_list_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UPDATE_DEVICE_LIST_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UPDATE_DEVICE_LIST_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UpdateDeviceListResponse command class
+ **/
+class UpdateDeviceListResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief UpdateDeviceListResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UpdateDeviceListResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UpdateDeviceListResponse class destructor
+ **/
+ virtual ~UpdateDeviceListResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UpdateDeviceListResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_UPDATE_DEVICE_LIST_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h
new file mode 100644
index 000000000..90e1e145c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIDiagnosticMessageRequest command class
+ **/
+class VIDiagnosticMessageRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VIDiagnosticMessageRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIDiagnosticMessageRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIDiagnosticMessageRequest class destructor
+ **/
+ virtual ~VIDiagnosticMessageRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIDiagnosticMessageRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h
new file mode 100644
index 000000000..f332a3281
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_diagnostic_message_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIDiagnosticMessageResponse command class
+ **/
+class VIDiagnosticMessageResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VIDiagnosticMessageResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIDiagnosticMessageResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIDiagnosticMessageResponse class destructor
+ **/
+ virtual ~VIDiagnosticMessageResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIDiagnosticMessageResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_DIAGNOSTIC_MESSAGE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h
new file mode 100644
index 000000000..93f046d7d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIGetDTCsRequest command class
+ **/
+class VIGetDTCsRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VIGetDTCsRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIGetDTCsRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIGetDTCsRequest class destructor
+ **/
+ virtual ~VIGetDTCsRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIGetDTCsRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h
new file mode 100644
index 000000000..9ee7fac44
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_dtcs_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIGetDTCsResponse command class
+ **/
+class VIGetDTCsResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VIGetDTCsResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIGetDTCsResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIGetDTCsResponse class destructor
+ **/
+ virtual ~VIGetDTCsResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIGetDTCsResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_DTCS_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h
new file mode 100644
index 000000000..9cb964981
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIGetVehicleDataRequest command class
+ **/
+class VIGetVehicleDataRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VIGetVehicleDataRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIGetVehicleDataRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIGetVehicleDataRequest class destructor
+ **/
+ virtual ~VIGetVehicleDataRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIGetVehicleDataRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h
new file mode 100644
index 000000000..951bf0c33
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_request_template.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_
+#define HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_
+
+#include "application_manager/event_engine/event.h"
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+namespace commands {
+
+/**
+ * @brief VIGetVehicleDataRequestTemplate command class
+ *
+ * Template class for sending 1 subscribe thin request
+ **/
+template<event_engine::Event::EventID eventID>
+class VIGetVehicleDataRequestTemplate : public RequestToHMI {
+ public:
+ /**
+ * @brief VIGetVehicleDataRequestTemplate class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIGetVehicleDataRequestTemplate(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+ }
+
+ /**
+ * @brief Execute command with sending DBus thin request to HMI
+ **/
+ virtual void Run() {
+ LOG4CXX_INFO(logger_, "VIGetVehicleDataRequestTemplate::Run");
+ SendRequest();
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIGetVehicleDataRequestTemplate<eventID>);
+};
+
+} // namespace commands
+} // namespace application_manager
+#endif // HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h
new file mode 100644
index 000000000..952b0fb4d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIGetVehicleDataResponse command class
+ **/
+class VIGetVehicleDataResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VIGetVehicleDataResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIGetVehicleDataResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIGetVehicleDataResponse class destructor
+ **/
+ virtual ~VIGetVehicleDataResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIGetVehicleDataResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_DATA_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h
new file mode 100644
index 000000000..ecd465365
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_data_response_template.h
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_RESPONSE_H_
+#define HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_RESPONSE_H_
+
+#include "application_manager/event_engine/event.h"
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+namespace commands {
+
+/**
+ * @brief VIGetVehicleDataResponseTemplate command class
+ **/
+template<event_engine::Event::EventID eventID>
+class VIGetVehicleDataResponseTemplate : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VIGetVehicleDataResponseTemplate class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIGetVehicleDataResponseTemplate(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+ }
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run() {
+ LOG4CXX_INFO(logger_, "VIGetVehicleDataResponseTemplate::Run");
+ event_engine::Event event(eventID);
+ event.set_smart_object(*message_);
+ event.raise();
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIGetVehicleDataResponseTemplate<eventID>);
+};
+
+} // namespace commands
+} // namespace application_manager
+#endif // HMI_VI_GETBSCRIBE_VEHICLE_DATA_REQUEST_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h
new file mode 100644
index 000000000..876f7d2e5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIGetVehicleTypeRequest command class
+ **/
+class VIGetVehicleTypeRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VIGetVehicleTypeRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIGetVehicleTypeRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIGetVehicleTypeRequest class destructor
+ **/
+ virtual ~VIGetVehicleTypeRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIGetVehicleTypeRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h
new file mode 100644
index 000000000..8b632182f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_get_vehicle_type_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIGetVehicleTypeResponse command class
+ **/
+class VIGetVehicleTypeResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VIGetVehicleTypeResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIGetVehicleTypeResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIGetVehicleTypeResponse class destructor
+ **/
+ virtual ~VIGetVehicleTypeResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIGetVehicleTypeResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_GET_VEHICLE_TYPE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h
new file mode 100644
index 000000000..e905cf4c0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIIsReadyRequest command class
+ **/
+class VIIsReadyRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VIIsReadyRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIIsReadyRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIIsReadyRequest class destructor
+ **/
+ virtual ~VIIsReadyRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIIsReadyRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h
new file mode 100644
index 000000000..e13e368b3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_is_ready_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIIsReadyResponse command class
+ **/
+class VIIsReadyResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VIIsReadyResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIIsReadyResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIIsReadyResponse class destructor
+ **/
+ virtual ~VIIsReadyResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIIsReadyResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_IS_READY_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h
new file mode 100644
index 000000000..336ad4443
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIReadDIDRequest command class
+ **/
+class VIReadDIDRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VIReadDIDRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIReadDIDRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIReadDIDRequest class destructor
+ **/
+ virtual ~VIReadDIDRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIReadDIDRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h
new file mode 100644
index 000000000..af6650517
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_read_did_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIReadDIDResponse command class
+ **/
+class VIReadDIDResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VIReadDIDResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIReadDIDResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIReadDIDResponse class destructor
+ **/
+ virtual ~VIReadDIDResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIReadDIDResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_READ_DID_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h
new file mode 100644
index 000000000..ef14a05f2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VISubscribeVehicleDataRequest command class
+ **/
+class VISubscribeVehicleDataRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VISubscribeVehicleDataRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VISubscribeVehicleDataRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VISubscribeVehicleDataRequest class destructor
+ **/
+ virtual ~VISubscribeVehicleDataRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VISubscribeVehicleDataRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h
new file mode 100644
index 000000000..bcfa2f6f1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_
+#define HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_
+
+#include "application_manager/event_engine/event.h"
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+namespace commands {
+
+/**
+ * @brief VISubscriveVehicleDataRequestTemplate command class
+ *
+ * Template class for sending 1 subscribe thin request
+ **/
+template<event_engine::Event::EventID eventID>
+class VISubscribeVehicleDataRequestTemplate : public RequestToHMI {
+ public:
+ /**
+ * @brief VISubscriveVehicleDataRequestTemplate class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VISubscribeVehicleDataRequestTemplate(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+ }
+
+ /**
+ * @brief Execute command with sending DBus thin request to HMI
+ **/
+ virtual void Run() {
+ LOG4CXX_INFO(logger_, "VISubscriveVehicleDataRequestTemplate::Run");
+ SendRequest();
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VISubscribeVehicleDataRequestTemplate<eventID>);
+};
+
+} // namespace commands
+} // namespace application_manager
+#endif // HMI_VI_SUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h
new file mode 100644
index 000000000..057fd52e1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VISubscribeVehicleDataResponse command class
+ **/
+class VISubscribeVehicleDataResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VISubscribeVehicleDataResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VISubscribeVehicleDataResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VISubscribeVehicleDataResponse class destructor
+ **/
+ virtual ~VISubscribeVehicleDataResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VISubscribeVehicleDataResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h
new file mode 100644
index 000000000..740d8c386
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_
+#define HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_
+
+#include "application_manager/event_engine/event.h"
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+namespace commands {
+/**
+ * @brief VISubscriveVehicleDataResponseTemplate command class
+ **/
+template<event_engine::Event::EventID eventID>
+class VISubscribeVehicleDataResponseTemplate : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VISubscriveVehicleDataResponseTemplate class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VISubscribeVehicleDataResponseTemplate(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+ }
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run() {
+ LOG4CXX_INFO(logger_, "VISubscribeVehicleDataResponse::Run");
+ event_engine::Event event(eventID);
+ event.set_smart_object(*message_);
+ event.raise();
+ }
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VISubscribeVehicleDataResponseTemplate<eventID>);
+};
+
+} // namespace commands
+} // namespace application_manager
+#endif // HMI_VI_SUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h
new file mode 100644
index 000000000..18d118fad
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIUnsubscribeVehicleDataRequest command class
+ **/
+class VIUnsubscribeVehicleDataRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VIUnsubscribeVehicleDataRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIUnsubscribeVehicleDataRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIUnsubscribeVehicleDataRequest class destructor
+ **/
+ virtual ~VIUnsubscribeVehicleDataRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIUnsubscribeVehicleDataRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h
new file mode 100644
index 000000000..d604d4d53
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_
+#define HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_
+
+#include "application_manager/event_engine/event.h"
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+namespace commands {
+
+/**
+ * @brief VIUnsubscriveVehicleDataRequestTemplate command class
+ *
+ * Template class for sending 1 unsubscribe thin request
+ **/
+template<event_engine::Event::EventID eventID>
+class VIUnsubscribeVehicleDataRequestTemplate : public RequestToHMI {
+ public:
+ /**
+ * @brief VIUnsubscriveVehicleDataRequestTemplate class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIUnsubscribeVehicleDataRequestTemplate(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+ }
+
+ /**
+ * @brief Execute command with sending DBus thin request to HMI
+ **/
+ virtual void Run() {
+ LOG4CXX_INFO(logger_, "VIUnsubscriveVehicleDataRequestTemplate::Run");
+ SendRequest();
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIUnsubscribeVehicleDataRequestTemplate<eventID>);
+};
+
+} // namespace commands
+} // namespace application_manager
+#endif // HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_TEMPLATE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h
new file mode 100644
index 000000000..b71b8241f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VIUnsubscribeVehicleDataResponse command class
+ **/
+class VIUnsubscribeVehicleDataResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VIUnsubscribeVehicleDataResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIUnsubscribeVehicleDataResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VIUnsubscribeVehicleDataResponse class destructor
+ **/
+ virtual ~VIUnsubscribeVehicleDataResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIUnsubscribeVehicleDataResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h
new file mode 100644
index 000000000..8730cc036
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_
+#define HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_
+
+#include "application_manager/event_engine/event.h"
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+namespace commands {
+
+/**
+ * @brief VIUnsubscriveVehicleDataResponseTemplate command class
+ **/
+template<event_engine::Event::EventID eventID>
+class VIUnsubscribeVehicleDataResponseTemplate : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VISubscriveVehicleDataResponseTemplate class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VIUnsubscribeVehicleDataResponseTemplate(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+ }
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run() {
+ LOG4CXX_INFO(logger_, "VIUnsubscriveVehicleDataResponseTemplate::Run");
+ event_engine::Event event(eventID);
+ event.set_smart_object(*message_);
+ event.raise();
+ }
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VIUnsubscribeVehicleDataResponseTemplate<eventID>);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // HMI_VI_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_TEMPLATE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h
new file mode 100644
index 000000000..3675cfb15
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRAddCommandRequest command class
+ **/
+class VRAddCommandRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VRAddCommandRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRAddCommandRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRAddCommandRequest class destructor
+ **/
+ virtual ~VRAddCommandRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRAddCommandRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h
new file mode 100644
index 000000000..328e8a205
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_add_command_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRAddCommandResponse command class
+ **/
+class VRAddCommandResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VRAddCommandResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRAddCommandResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRAddCommandResponse class destructor
+ **/
+ virtual ~VRAddCommandResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRAddCommandResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_ADD_COMMAND_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h
new file mode 100644
index 000000000..5e69b4c18
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRChangeRegistrationRequest command class
+ **/
+class VRChangeRegistrationRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VRChangeRegistrationRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRChangeRegistrationRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRChangeRegistrationRequest class destructor
+ **/
+ virtual ~VRChangeRegistrationRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRChangeRegistrationRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h
new file mode 100644
index 000000000..f79da4459
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_change_registration_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRChangeRegistrationResponse command class
+ **/
+class VRChangeRegistrationResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VRChangeRegistrationResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRChangeRegistrationResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRChangeRegistrationResponse class destructor
+ **/
+ virtual ~VRChangeRegistrationResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRChangeRegistrationResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_CHANGE_REGISTRATION_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h
new file mode 100644
index 000000000..b843f498f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRDeleteCommandRequest command class
+ **/
+class VRDeleteCommandRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VRDeleteCommandRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRDeleteCommandRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRDeleteCommandRequest class destructor
+ **/
+ virtual ~VRDeleteCommandRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRDeleteCommandRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h
new file mode 100644
index 000000000..11a681bd5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_delete_command_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRDeleteCommandResponse command class
+ **/
+class VRDeleteCommandResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VRDeleteCommandResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRDeleteCommandResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRDeleteCommandResponse class destructor
+ **/
+ virtual ~VRDeleteCommandResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRDeleteCommandResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_DELETE_COMMAND_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h
new file mode 100644
index 000000000..7771bdd14
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRGetCapabilitiesRequest command class
+ **/
+class VRGetCapabilitiesRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VRGetCapabilitiesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRGetCapabilitiesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRGetCapabilitiesRequest class destructor
+ **/
+ virtual ~VRGetCapabilitiesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRGetCapabilitiesRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h
new file mode 100644
index 000000000..ced60c9d6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_capabilities_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRGetCapabilitiesResponse command class
+ **/
+class VRGetCapabilitiesResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VRGetCapabilitiesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRGetCapabilitiesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRGetCapabilitiesResponse class destructor
+ **/
+ virtual ~VRGetCapabilitiesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRGetCapabilitiesResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_CAPABILITIES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h
new file mode 100644
index 000000000..955355d06
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRGetLanguageRequest command class
+ **/
+class VRGetLanguageRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VRGetLanguageRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRGetLanguageRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRGetLanguageRequest class destructor
+ **/
+ virtual ~VRGetLanguageRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRGetLanguageRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h
new file mode 100644
index 000000000..2bd59b8be
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_language_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRGetLanguageResponse command class
+ **/
+class VRGetLanguageResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VRGetLanguageResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRGetLanguageResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRGetLanguageResponse class destructor
+ **/
+ virtual ~VRGetLanguageResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRGetLanguageResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_LANGUAGE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h
new file mode 100644
index 000000000..79105978b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRGetSupportedLanguagesRequest command class
+ **/
+class VRGetSupportedLanguagesRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VRGetSupportedLanguagesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRGetSupportedLanguagesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRGetSupportedLanguagesRequest class destructor
+ **/
+ virtual ~VRGetSupportedLanguagesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRGetSupportedLanguagesRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h
new file mode 100644
index 000000000..38f505622
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_get_supported_languages_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRGetSupportedLanguagesResponse command class
+ **/
+class VRGetSupportedLanguagesResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VRGetSupportedLanguagesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRGetSupportedLanguagesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRGetSupportedLanguagesResponse class destructor
+ **/
+ virtual ~VRGetSupportedLanguagesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRGetSupportedLanguagesResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_GET_SUPPORTED_LANGUAGES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h
new file mode 100644
index 000000000..ac734638b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_request.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_REQUEST_H_
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRIsReadyRequest command class
+ **/
+class VRIsReadyRequest : public RequestToHMI {
+ public:
+ /**
+ * @brief VRIsReadyRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRIsReadyRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRIsReadyRequest class destructor
+ **/
+ virtual ~VRIsReadyRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRIsReadyRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h
new file mode 100644
index 000000000..4f4f86d84
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/hmi/vr_is_ready_response.h
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_RESPONSE_H_
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief VRIsReadyResponse command class
+ **/
+class VRIsReadyResponse : public ResponseFromHMI {
+ public:
+ /**
+ * @brief VRIsReadyResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit VRIsReadyResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief VRIsReadyResponse class destructor
+ **/
+ virtual ~VRIsReadyResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VRIsReadyResponse);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_HMI_VR_IS_READY_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h
new file mode 100644
index 000000000..bce9d6350
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_request.h
@@ -0,0 +1,141 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_REQUEST_H_
+
+#include "application_manager/application.h"
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AddCommandRequest command class
+ **/
+class AddCommandRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief AddCommandRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AddCommandRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief AddCommandRequest class destructor
+ **/
+ virtual ~AddCommandRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ private:
+
+ /*
+ * @brief Check if command name doesn't exist in application
+ * Please see SDLAQ-CRS-407 for more information
+ *
+ * @param app Mobile application
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool CheckCommandName(ApplicationConstSharedPtr app);
+
+ /*
+ * @brief Check if command VR synonyms doesn't exist in application commands
+ * Please see SDLAQ-CRS-407 for more information
+ *
+ * @param app Mobile application
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool CheckCommandVRSynonym(ApplicationConstSharedPtr app);
+
+ /*
+ * @brief Check if command parent ID exists in submenu map
+ *
+ * @param app Mobile application
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool CheckCommandParentId(ApplicationConstSharedPtr app);
+
+ /*
+ * @brief Check if commands has valid syntax
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool CheckVRCommandsNames();
+
+ /*
+ * @brief Check if menuNames has valid syntax
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool CheckMenuName();
+
+ DISALLOW_COPY_AND_ASSIGN(AddCommandRequest);
+
+ /*
+ * @brief Check if there some not delivered hmi responses exist
+ *
+ * @return true if all responses received
+ */
+ bool IsPendingResponseExist();
+
+ bool is_ui_send_;
+ bool is_vr_send_;
+
+ bool is_ui_received_;
+ bool is_vr_received_;
+
+ hmi_apis::Common_Result::eType ui_result_;
+ hmi_apis::Common_Result::eType vr_result_;
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_response.h
new file mode 100644
index 000000000..67a49a8e1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_command_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AddCommandResponse command class
+ **/
+class AddCommandResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief AddCommandResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AddCommandResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief AddCommandResponse class destructor
+ **/
+ virtual ~AddCommandResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AddCommandResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_COMMAND_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_request.h
new file mode 100644
index 000000000..befeb76d9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_request.h
@@ -0,0 +1,88 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AddSubMenuRequest command class
+ **/
+class AddSubMenuRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief AddSubMenuRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AddSubMenuRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief AddSubMenuRequest class destructor
+ **/
+ virtual ~AddSubMenuRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ private:
+
+ /*
+ * @brief Check if submenu name is valid
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool CheckSubMenuName();
+
+ DISALLOW_COPY_AND_ASSIGN(AddSubMenuRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_response.h
new file mode 100644
index 000000000..62c404951
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/add_sub_menu_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AddSubMenuResponse command class
+ **/
+class AddSubMenuResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief AddSubMenuResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AddSubMenuResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief AddSubMenuResponse class destructor
+ **/
+ virtual ~AddSubMenuResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AddSubMenuResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ADD_SUB_MENU_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_request.h
new file mode 100644
index 000000000..e932b7244
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_request.h
@@ -0,0 +1,87 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "application_manager/commands/pending.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AlertManeuverRequest command class
+ **/
+class AlertManeuverRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief AlertManeuverRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AlertManeuverRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief AlertManeuverRequest class destructor
+ **/
+ virtual ~AlertManeuverRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+ private:
+ mobile_apis::Result::eType result_;
+ mobile_apis::Result::eType tts_speak_result_code_;
+ mobile_apis::Result::eType navi_alert_maneuver_result_code_;
+ Pending pending_requests_;
+
+ DISALLOW_COPY_AND_ASSIGN(AlertManeuverRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_response.h
new file mode 100644
index 000000000..5f0827699
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_maneuver_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AlertManeuverResponse command class
+ **/
+class AlertManeuverResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief AlertManeuverResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AlertManeuverResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief AlertManeuverResponse class destructor
+ **/
+ virtual ~AlertManeuverResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AlertManeuverResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_MANEUVER_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_request.h
new file mode 100644
index 000000000..cb693fdd5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_request.h
@@ -0,0 +1,129 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AlertRequest command class
+ **/
+class AlertRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief AlertRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AlertRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief AlertRequest class destructor
+ **/
+ virtual ~AlertRequest();
+
+ /**
+ * @brief Initialize request params
+ **/
+ virtual bool Init();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ protected:
+
+ private:
+ /*
+ * @brief Checks if request parameters are valid
+ * @param app_id Id of application requested this RPC
+ * @returns true if request is valid and should be processed
+ */
+ bool Validate(uint32_t app_id);
+ /*
+ * @brief Sends UI Alert request
+ *
+ * @param app_id Id of application requested this RPC
+ */
+ void SendAlertRequest(int32_t app_id);
+
+ /*
+ * @brief Sends TTS Speak request
+ *
+ * @param app_id Id of application requested this RPC
+ */
+ void SendSpeakRequest(int32_t app_id);
+
+ /*
+ * @brief Sends Basic communication playtone notification
+ *
+ * @param app_id Id of application requested this RPC
+ */
+ void SendPlayToneNotification(int32_t app_id);
+
+ /*
+ * @brief Tells if there are sent requests without responses
+ */
+ bool HasHmiResponsesToWait();
+
+ bool awaiting_ui_alert_response_;
+ bool awaiting_tts_speak_response_;
+ bool awaiting_tts_stop_speaking_response_;
+ bool response_success_;
+ bool flag_other_component_sent_;
+ mobile_apis::Result::eType response_result_;
+ smart_objects::SmartObject response_params_;
+ mobile_apis::Result::eType tts_speak_response_;
+
+ DISALLOW_COPY_AND_ASSIGN(AlertRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_response.h
new file mode 100644
index 000000000..59b38933a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/alert_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief AlertResponse command class
+ **/
+class AlertResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief AlertResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit AlertResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief AlertResponse class destructor
+ **/
+ virtual ~AlertResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(AlertResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ALERT_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h
new file mode 100644
index 000000000..3fe97ba1c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h
@@ -0,0 +1,124 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_CHANGE_REGISTRATION_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_CHANGE_REGISTRATION_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "application_manager/commands/pending.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ChangeRegistrationRequest command class
+ **/
+class ChangeRegistrationRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief ChangeRegistrationRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ChangeRegistrationRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief ChangeRegistrationRequest class destructor
+ **/
+ virtual ~ChangeRegistrationRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ private:
+ /*
+ * @brief Search for requested language in HMI UI supported languages
+ *
+ * @return true if language supported by UI, otherwise false
+ */
+ bool IsLanguageSupportedByUI(const int32_t& hmi_display_lang);
+
+ /*
+ * @brief Search for requested language in HMI VR supported languages
+ *
+ * @return true if language supported by VR, otherwise false
+ */
+ bool IsLanguageSupportedByVR(const int32_t& hmi_display_lang);
+
+ /*
+ * @brief Search for requested language in HMI TTS supported languages
+ *
+ * @return true if language supported by TTS, otherwise false
+ */
+ bool IsLanguageSupportedByTTS(const int32_t& hmi_display_lang);
+
+ /*
+ * @brief Check if there some not delivered hmi responses exist
+ *
+ * @return true if all responses received
+ */
+ bool IsPendingResponseExist();
+
+ /*
+ * @brief Checks result codes
+ *
+ * @return true if one of result codes is success
+ */
+ static bool WasAnySuccess(const hmi_apis::Common_Result::eType ui,
+ const hmi_apis::Common_Result::eType vr,
+ const hmi_apis::Common_Result::eType tts);
+
+ Pending pending_requests_;
+
+ hmi_apis::Common_Result::eType ui_result_;
+ hmi_apis::Common_Result::eType vr_result_;
+ hmi_apis::Common_Result::eType tts_result_;
+
+ DISALLOW_COPY_AND_ASSIGN(ChangeRegistrationRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_CHANGE_REGISTRATION_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_response.h
new file mode 100644
index 000000000..2cac5f2d5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/change_registration_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CHANGE_REGISTRATION_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CHANGE_REGISTRATION_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ChangeRegistrationResponse command class
+ **/
+class ChangeRegistrationResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief ChangeRegistrationResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ChangeRegistrationResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief ChangeRegistrationResponse class destructor
+ **/
+ virtual ~ChangeRegistrationResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ChangeRegistrationResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CHANGE_REGISTRATION_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_request.h
new file mode 100644
index 000000000..1eca8d518
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_request.h
@@ -0,0 +1,163 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_REQUEST_H_
+
+#include "application_manager/application.h"
+#include "application_manager/commands/command_request_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+class Application;
+
+namespace commands {
+
+/**
+ * @brief CreateInteractionChoiceSetRequest command class
+ **/
+class CreateInteractionChoiceSetRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief CreateInteractionChoiceSetRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit CreateInteractionChoiceSetRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief CreateInteractionChoiceSetRequest class destructor
+ **/
+ virtual ~CreateInteractionChoiceSetRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+
+ /*
+ * @brief Checks incoming choiseSet params.
+ * @param app Registred mobile application
+ *
+ * @return Mobile result code
+ */
+ mobile_apis::Result::eType CheckChoiceSet(ApplicationConstSharedPtr app);
+
+ /*
+ * @brief Predicate for using with CheckChoiceSet method to compare choice ID param
+ *
+ * return TRUE if there is coincidence of choice ID, otherwise FALSE
+ */
+ struct CoincidencePredicateChoiceID {
+ explicit CoincidencePredicateChoiceID(const uint32_t newItem)
+ :newItem_(newItem)
+ {};
+
+ bool operator()(smart_objects::SmartObject obj) {
+ return obj[strings::choice_id].asInt() == newItem_;
+ };
+
+ const uint32_t newItem_;
+ };
+
+ /*
+ * @brief Predicate for using with CheckChoiceSet method to compare menu name param
+ *
+ * return TRUE if there is coincidence of menu name, otherwise FALSE
+ */
+ struct CoincidencePredicateMenuName {
+ explicit CoincidencePredicateMenuName(const std::string& newItem)
+ :newItem_(newItem)
+ {};
+
+ bool operator()(smart_objects::SmartObject obj) {
+ return obj[strings::menu_name].asString() == newItem_;
+ };
+
+ const std::string& newItem_;
+ };
+
+ /*
+ * @brief Predicate for using with CheckChoiceSet method to compare VR commands param
+ *
+ * return TRUE if there is coincidence of VR commands, otherwise FALSE
+ */
+ struct CoincidencePredicateVRCommands {
+ explicit CoincidencePredicateVRCommands(const smart_objects::SmartObject& newItem)
+ :newItem_(newItem)
+ {};
+
+ bool operator()(smart_objects::SmartObject obj) {
+ return compareStr(obj, newItem_);
+ };
+
+ const smart_objects::SmartObject& newItem_;
+ };
+
+ /*
+ * @brief Checks if incoming choice set doesn't has similar VR synonyms.
+ *
+ * @param choice1 Choice to compare
+ * @param choice2 Choice to compare
+ *
+ * return Return TRUE if there are similar VR synonyms in choice set,
+ * otherwise FALSE
+ */
+ bool compareSynonyms(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& choice1,
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& choice2);
+
+ /*
+ * @brief Checks VR synonyms ignoring differences in case.
+ *
+ * @param str1 VR synonym to compare
+ * @param str2 VR synonym to compare
+ *
+ * return Return TRUE if there are similar VR synonyms in choice set,
+ * otherwise FALSE
+ */
+ static bool compareStr(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& str1,
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& str2);
+
+ DISALLOW_COPY_AND_ASSIGN(CreateInteractionChoiceSetRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_response.h
new file mode 100644
index 000000000..965573f4a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/create_interaction_choice_set_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief CreateInteractionChoiceSetResponse command class
+ **/
+class CreateInteractionChoiceSetResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief CreateInteractionChoiceSetResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit CreateInteractionChoiceSetResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief CreateInteractionChoiceSetResponse class destructor
+ **/
+ virtual ~CreateInteractionChoiceSetResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(CreateInteractionChoiceSetResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_CREATE_INTERACTION_CHOICE_SET_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_request.h
new file mode 100644
index 000000000..bae0fedd5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_request.h
@@ -0,0 +1,97 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief DeleteCommandRequest command class
+ **/
+class DeleteCommandRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief DeleteCommandRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit DeleteCommandRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief DeleteCommandRequest class destructor
+ **/
+ virtual ~DeleteCommandRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ private:
+
+ DISALLOW_COPY_AND_ASSIGN(DeleteCommandRequest);
+
+ /*
+ * @brief Check if there some not delivered hmi responses exist
+ *
+ * @return true if all responses received
+ */
+ bool IsPendingResponseExist();
+
+ bool is_ui_send_;
+ bool is_vr_send_;
+
+ bool is_ui_received_;
+ bool is_vr_received_;
+
+ hmi_apis::Common_Result::eType ui_result_;
+ hmi_apis::Common_Result::eType vr_result_;
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_response.h
new file mode 100644
index 000000000..0fe0f0959
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_command_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief DeleteCommandResponse command class
+ **/
+class DeleteCommandResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief DeleteCommandResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit DeleteCommandResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief DeleteCommandResponse class destructor
+ **/
+ virtual ~DeleteCommandResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DeleteCommandResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_COMMAND_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_request.h
new file mode 100644
index 000000000..e10671091
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_request.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief DeleteFileRequest command class
+ **/
+class DeleteFileRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief DeleteFileRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit DeleteFileRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief DeleteFileRequest class destructor
+ **/
+ virtual ~DeleteFileRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DeleteFileRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_response.h
new file mode 100644
index 000000000..cfe6aaa4f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_file_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief DeleteFileResponse command class
+ **/
+class DeleteFileResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief DeleteFileResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit DeleteFileResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief DeleteFileResponse class destructor
+ **/
+ virtual ~DeleteFileResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DeleteFileResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_FILE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_request.h
new file mode 100644
index 000000000..f70594993
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_request.h
@@ -0,0 +1,82 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "application_manager/application.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief DeleteInteractionChoiceSetRequest command class
+ **/
+class DeleteInteractionChoiceSetRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief DeleteInteractionChoiceSetRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit DeleteInteractionChoiceSetRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief DeleteInteractionChoiceSetRequest class destructor
+ **/
+ virtual ~DeleteInteractionChoiceSetRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+
+ /*
+ * @brief Check if requested choice set ID in use by perform interaction
+ *
+ * @param app mobile application
+ */
+ bool ChoiceSetInUse(ApplicationConstSharedPtr app);
+
+ DISALLOW_COPY_AND_ASSIGN(DeleteInteractionChoiceSetRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_response.h
new file mode 100644
index 000000000..1f641e15b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_interaction_choice_set_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief DeleteInteractionChoiceSetResponse command class
+ **/
+class DeleteInteractionChoiceSetResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief DeleteInteractionChoiceSetResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit DeleteInteractionChoiceSetResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief DeleteInteractionChoiceSetResponse class destructor
+ **/
+ virtual ~DeleteInteractionChoiceSetResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DeleteInteractionChoiceSetResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_INTERACTION_CHOICE_SET_RESPONSE_COMMAND_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_request.h
new file mode 100644
index 000000000..668721805
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_request.h
@@ -0,0 +1,99 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "application_manager/application.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief DeleteSubMenuRequest command class
+ **/
+class DeleteSubMenuRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief DeleteSubMenuRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit DeleteSubMenuRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief DeleteSubMenuRequest class destructor
+ **/
+ virtual ~DeleteSubMenuRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ /*
+ * @brief Deletes VR commands from SDL for corresponding submenu ID
+ *
+ * @param app_id Application ID
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ void DeleteSubMenuVRCommands(ApplicationConstSharedPtr app);
+
+ /*
+ * @brief Deletes UI commands from SDL for corresponding submenu ID
+ *
+ * @param app_id Application ID
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ void DeleteSubMenuUICommands(ApplicationSharedPtr const app);
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ DISALLOW_COPY_AND_ASSIGN(DeleteSubMenuRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_response.h
new file mode 100644
index 000000000..0bb080e93
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/delete_sub_menu_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ResetGlobalPropertiesResponse command class
+ **/
+class DeleteSubMenuResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief DeleteSubMenuResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit DeleteSubMenuResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief DeleteSubMenuResponse class destructor
+ **/
+ virtual ~DeleteSubMenuResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DeleteSubMenuResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DELETE_SUB_MENU_RESPONSE_COMMAND_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_request.h
new file mode 100644
index 000000000..4cda040b4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_request.h
@@ -0,0 +1,80 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief DiagnosticMessageRequest command class
+ **/
+class DiagnosticMessageRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief DiagnosticMessageRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit DiagnosticMessageRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief DiagnosticMessageRequest class destructor
+ **/
+ virtual ~DiagnosticMessageRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DiagnosticMessageRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_response.h
new file mode 100644
index 000000000..1b6a6024f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/diagnostic_message_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief DiagnosticMessageResponse command class
+ **/
+class DiagnosticMessageResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief DiagnosticMessageResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit DiagnosticMessageResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief DiagnosticMessageResponse class destructor
+ **/
+ virtual ~DiagnosticMessageResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DiagnosticMessageResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAGNOSTIC_MESSAGE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/dial_number_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/dial_number_request.h
new file mode 100644
index 000000000..10ffa5b32
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/dial_number_request.h
@@ -0,0 +1,72 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAL_NUMBER_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAL_NUMBER_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief DialNumber request command class
+ **/
+class DialNumberRequest : public CommandRequestImpl {
+ public:
+ /**
+ * \brief DialNumberRequest class constructor
+ **/
+ explicit DialNumberRequest(const MessageSharedPtr& message);
+
+ /**
+ * \brief DialNumberRequest class destructor
+ **/
+ virtual ~DialNumberRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DialNumberRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_DIAL_NUMBER_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_request.h
new file mode 100644
index 000000000..daea178cb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_request.h
@@ -0,0 +1,76 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_REQUEST_H_
+
+#include <string>
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief EncodedSyncPData request command class
+ **/
+class EncodedSyncPDataRequest : public CommandRequestImpl {
+ public:
+ /**
+ * \brief EncodedSyncPDataRequest class constructor
+ **/
+ explicit EncodedSyncPDataRequest(const MessageSharedPtr& message);
+
+ /**
+ * \brief EncodedSyncPDataRequest class destructor
+ **/
+ virtual ~EncodedSyncPDataRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ static const std::string TEMPORARY_HARDCODED_FILENAME;
+ static const std::string TEMPORARY_HARDCODED_FOLDERNAME;
+
+ DISALLOW_COPY_AND_ASSIGN(EncodedSyncPDataRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_response.h
new file mode 100644
index 000000000..e067bd0f0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/encoded_sync_pdata_response.h
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "application_manager/message.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+namespace commands {
+
+class EncodedSyncPDataResponse : public CommandResponseImpl {
+ public:
+ /**
+ * \brief EncodedSyncPDataResponse class constructor
+ **/
+ explicit EncodedSyncPDataResponse(const MessageSharedPtr& message);
+
+ /**
+ * \brief EncodedSyncPDataResponse class destructor
+ **/
+ virtual ~EncodedSyncPDataResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(EncodedSyncPDataResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ENCODED_SYNC_PDATA_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_request.h
new file mode 100644
index 000000000..f291f7a74
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_request.h
@@ -0,0 +1,80 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief EndAudioPassThruRequest command class
+ **/
+class EndAudioPassThruRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief EndAudioPassThruRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit EndAudioPassThruRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief EndAudioPassThruRequest class destructor
+ **/
+ virtual ~EndAudioPassThruRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(EndAudioPassThruRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_response.h
new file mode 100644
index 000000000..5ad5f85e6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/end_audio_pass_thru_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief EndAudioPassThruResponse command class
+ **/
+class EndAudioPassThruResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief EndAudioPassThruResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit EndAudioPassThruResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief EndAudioPassThruResponse class destructor
+ **/
+ virtual ~EndAudioPassThruResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(EndAudioPassThruResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_END_AUDIO_PASS_THRU_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/generic_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/generic_response.h
new file mode 100644
index 000000000..c3b39bf91
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/generic_response.h
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GENERIC_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GENERIC_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "application_manager/message.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+namespace commands {
+
+class GenericResponse : public CommandResponseImpl {
+ public:
+ /**
+ * \brief GenericResponse class constructor
+ **/
+ explicit GenericResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+ }
+
+ /**
+ * \brief GenericResponse class destructor
+ **/
+ virtual ~GenericResponse() {
+ }
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(GenericResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GENERIC_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_request.h
new file mode 100644
index 000000000..d76ac253b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_request.h
@@ -0,0 +1,80 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief GetDTCsRequest command class
+ **/
+class GetDTCsRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief GetDTCsRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit GetDTCsRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief GetDTCsRequest class destructor
+ **/
+ virtual ~GetDTCsRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(GetDTCsRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_response.h
new file mode 100644
index 000000000..69ff1fca5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_dtcs_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief GetDTCsResponse command class
+ **/
+class GetDTCsResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief GetDTCsResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit GetDTCsResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief GetDTCsResponse class destructor
+ **/
+ virtual ~GetDTCsResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(GetDTCsResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_DTCS_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_request.h
new file mode 100644
index 000000000..9a8f7d334
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_request.h
@@ -0,0 +1,94 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+class SmartObject;
+
+namespace commands {
+
+/**
+ * @brief GetVehicleDataRequest command class
+ **/
+class GetVehicleDataRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief GetVehicleDataRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit GetVehicleDataRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief GetVehicleDataRequest class destructor
+ **/
+ virtual ~GetVehicleDataRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+
+ protected:
+ virtual void on_event(const event_engine::Event& event);
+
+#ifdef QT_HMI
+ private:
+ void SendRequestsToHmi(const int32_t app_id);
+
+ struct HmiRequest {
+ hmi_apis::Common_Result::eType status;
+ bool complete;
+ smart_objects::SmartObject value;
+ const char* str;
+ hmi_apis::FunctionID::eType func_id;
+ };
+
+ typedef std::vector<HmiRequest> HmiRequests;
+ HmiRequests hmi_requests_;
+#endif // #ifdef QT_HMI
+
+ DISALLOW_COPY_AND_ASSIGN(GetVehicleDataRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_response.h
new file mode 100644
index 000000000..f0306df6a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/get_vehicle_data_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief GetVehicleDataResponse command class
+ **/
+class GetVehicleDataResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief GetVehicleDataResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit GetVehicleDataResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief GetVehicleDataResponse class destructor
+ **/
+ virtual ~GetVehicleDataResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(GetVehicleDataResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_GET_VEHICLE_DATA_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_request.h
new file mode 100644
index 000000000..86171f1ff
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_request.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ListFilesRequest command class
+ **/
+class ListFilesRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief ListFilesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ListFilesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief ListFilesRequest class destructor
+ **/
+ virtual ~ListFilesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ListFilesRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_response.h
new file mode 100644
index 000000000..6f8e80bae
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/list_files_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ListFilesResponse command class
+ **/
+class ListFilesResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief ListFilesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ListFilesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief ListFilesResponse class destructor
+ **/
+ virtual ~ListFilesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ListFilesResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_LIST_FILES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_app_interface_unregistered_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_app_interface_unregistered_notification.h
new file mode 100644
index 000000000..875366047
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_app_interface_unregistered_notification.h
@@ -0,0 +1,74 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_APP_INTERFACE_UNREGISTERED_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_APP_INTERFACE_UNREGISTERED_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnAppInterfaceUnregisteredNotification class
+ **/
+class OnAppInterfaceUnregisteredNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnAppInterfaceUnregisteredNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnAppInterfaceUnregisteredNotification(
+ const MessageSharedPtr& message);
+
+ /**
+ * @brief OnAppInterfaceUnregisteredNotification class destructor
+ **/
+ virtual ~OnAppInterfaceUnregisteredNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnAppInterfaceUnregisteredNotification);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_APP_INTERFACE_UNREGISTERED_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_audio_pass_thru_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_audio_pass_thru_notification.h
new file mode 100644
index 000000000..67bc31977
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_audio_pass_thru_notification.h
@@ -0,0 +1,74 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_AUDIO_PASS_THRU_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_AUDIO_PASS_THRU_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnAudioPassThruNotification class used to send notification with binary data written from
+ * microphone to mobile device while PerformAudioPassThru is active.
+ **/
+class OnAudioPassThruNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnAudioPassThruNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnAudioPassThruNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnAudioPassThruNotification class destructor
+ **/
+ virtual ~OnAudioPassThruNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnAudioPassThruNotification);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_AUDIO_PASS_THRU_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_event_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_event_notification.h
new file mode 100644
index 000000000..d1297ba98
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_event_notification.h
@@ -0,0 +1,86 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_EVENT_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_EVENT_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "application_manager/application.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+/**
+ * @brief OnButtonEventNotification class is used to send notification
+ * to mobile device that some button was pressed on HMI.
+ **/
+class OnButtonEventNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnButtonEventNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnButtonEventNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnButtonEventNotification class destructor
+ **/
+ virtual ~OnButtonEventNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ /*
+ * @brief Sends button event notification to mobile device
+ *
+ * @param app Application to receive notification
+ */
+ void SendButtonEvent(ApplicationConstSharedPtr app);
+
+ DISALLOW_COPY_AND_ASSIGN(OnButtonEventNotification);
+};
+
+} // namespace mobile
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_EVENT_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_press_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_press_notification.h
new file mode 100644
index 000000000..0ebdb6d7c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_button_press_notification.h
@@ -0,0 +1,85 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_PRESS_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_PRESS_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "application_manager/application.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+/**
+ * @brief OnButtonPressNotification class is used to send notification
+ * to mobile device that some button was pressed on HMI.
+ **/
+class OnButtonPressNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnButtonPressNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnButtonPressNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnButtonEventCommand class destructor
+ **/
+ virtual ~OnButtonPressNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ /*
+ * @brief Sends button press notification to mobile device
+ *
+ * @param app Application to receive notification
+ */
+ void SendButtonPress(ApplicationConstSharedPtr app);
+
+ DISALLOW_COPY_AND_ASSIGN(OnButtonPressNotification);
+};
+
+} // namespace mobile
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_BUTTON_PRESS_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_command_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_command_notification.h
new file mode 100644
index 000000000..751b1e7dd
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_command_notification.h
@@ -0,0 +1,75 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_COMMAND_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_COMMAND_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+class Application;
+
+namespace commands {
+
+/**
+ * @brief OnCommandNotification class is used to send notification
+ * to mobile device.
+ **/
+class OnCommandNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnCommandNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnCommandNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnCommandNotification class destructor
+ **/
+ virtual ~OnCommandNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnCommandNotification);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_COMMAND_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_driver_distraction_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_driver_distraction_notification.h
new file mode 100644
index 000000000..2f2a3c81f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_driver_distraction_notification.h
@@ -0,0 +1,77 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_DRIVER_DISTRACTION_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_DRIVER_DISTRACTION_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+/**
+ * @brief OnDriverDistractionNotification class
+ **/
+class OnDriverDistractionNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnDriverDistractionNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnDriverDistractionNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnDriverDistractionNotification class destructor
+ **/
+ virtual ~OnDriverDistractionNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnDriverDistractionNotification);
+};
+
+} // namespace mobile
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_DRIVER_DISTRACTION_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_encoded_sync_pdata_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_encoded_sync_pdata_notification.h
new file mode 100644
index 000000000..f5e06f661
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_encoded_sync_pdata_notification.h
@@ -0,0 +1,90 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_ENCODED_SYNC_PDATA_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_ENCODED_SYNC_PDATA_NOTIFICATION_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/timer_thread.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+class Application;
+
+/**
+ * @brief OnEncodedSyncPDataNotification class is used as callback including binary
+ * data of any SyncP packets that SYNC needs to send back to the mobile device
+ **/
+class OnEncodedSyncPDataNotification : public CommandResponseImpl {
+ public:
+ /**
+ * @brief OnEncodedSyncPDataNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnEncodedSyncPDataNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnEncodedSyncPDataNotification class destructor
+ **/
+ virtual ~OnEncodedSyncPDataNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Timer callback function
+ */
+ void onTimer();
+
+ private:
+ /*
+ * @brief Sends sync pdata notification to mobile device
+ */
+ void SendEncodedPData();
+
+ // members
+ timer::TimerThread<OnEncodedSyncPDataNotification> timer_;
+
+ DISALLOW_COPY_AND_ASSIGN(OnEncodedSyncPDataNotification);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_ENCODED_SYNC_PDATA_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hash_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hash_change_notification.h
new file mode 100644
index 000000000..be8304786
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hash_change_notification.h
@@ -0,0 +1,75 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HASH_CHANGE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HASH_CHANGE_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+namespace mobile {
+
+/**
+ * @brief OnHashChangeNotification class
+ **/
+class OnHashChangeNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnHashChangeNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnHashChangeNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnHashChangeNotification class destructor
+ **/
+ virtual ~OnHashChangeNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnHashChangeNotification);
+};
+
+} // namespace mobile
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HASH_CHANGE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h
new file mode 100644
index 000000000..aefa7f9c2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_hmi_status_notification.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnHMIStatusNotification class
+ **/
+class OnHMIStatusNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnHMIStatusNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnHMIStatusNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnHMIStatusNotification class destructor
+ **/
+ virtual ~OnHMIStatusNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnHMIStatusNotification);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_HMI_STATUS_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_keyboard_input_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_keyboard_input_notification.h
new file mode 100644
index 000000000..e0d6a258e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_keyboard_input_notification.h
@@ -0,0 +1,76 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_KEYBOARD_INPUT_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_KEYBOARD_INPUT_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+/**
+ * @brief OnKeyBoardInputNotification class
+ **/
+class OnKeyBoardInputNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnKeyBoardInputNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnKeyBoardInputNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnKeyBoardInputNotification class destructor
+ **/
+ virtual ~OnKeyBoardInputNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnKeyBoardInputNotification);
+};
+
+} // namespace mobile
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_KEYBOARD_INPUT_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_language_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_language_change_notification.h
new file mode 100644
index 000000000..d16311489
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_language_change_notification.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_LANGUAGE_CHANGE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_LANGUAGE_CHANGE_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnLanguageChangeNotification class
+ **/
+class OnLanguageChangeNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnLanguageChangeNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnLanguageChangeNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnLanguageChangeNotification class destructor
+ **/
+ virtual ~OnLanguageChangeNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnLanguageChangeNotification);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_LANGUAGE_CHANGE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_permissions_change_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_permissions_change_notification.h
new file mode 100644
index 000000000..3cffe8ff4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_permissions_change_notification.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_PERMISSIONS_CHANGE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_PERMISSIONS_CHANGE_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnPermissionsChangeNotification class
+ **/
+class OnPermissionsChangeNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnPermissionsChangeNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnPermissionsChangeNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnPermissionsChangeNotification class destructor
+ **/
+ virtual ~OnPermissionsChangeNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnPermissionsChangeNotification);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_PERMISSIONS_CHANGE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_sync_pdata_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_sync_pdata_notification.h
new file mode 100644
index 000000000..936a68868
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_sync_pdata_notification.h
@@ -0,0 +1,91 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_SYNC_PDATA_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_SYNC_PDATA_NOTIFICATION_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/timer_thread.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+class Application;
+
+/**
+ * @brief OnSyncPDataNotification class is used as callback including binary
+ * data of any SyncP packets that SYNC needs to send back to the mobile device
+ **/
+class OnSyncPDataNotification : public CommandResponseImpl {
+ public:
+ /**
+ * @brief OnSyncPDataNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnSyncPDataNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnSyncPDataNotification class destructor
+ **/
+ virtual ~OnSyncPDataNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Timer callback function
+ *
+ */
+ void onTimer();
+
+ private:
+ /*
+ * @brief Sends sync pdata notification to mobile device
+ */
+ void SendPData();
+
+ // members
+ timer::TimerThread<OnSyncPDataNotification> timer_;
+
+ DISALLOW_COPY_AND_ASSIGN(OnSyncPDataNotification);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_ENCODED_SYNC_PDATA_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h
new file mode 100644
index 000000000..183b673af
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_system_request_notification.h
@@ -0,0 +1,76 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_SYSTEM_REQUEST_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_SYSTEM_REQUEST_NOTIFICATION_H_
+
+
+#include "application_manager/commands/command_notification_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+/**
+ * @brief OnSystemRequestNotification class
+ **/
+class OnSystemRequestNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnSystemRequestNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnSystemRequestNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnSystemRequestNotification class destructor
+ **/
+ virtual ~OnSystemRequestNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnSystemRequestNotification);
+};
+
+} // namespace mobile
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_SYSTEM_REQUEST_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_tbt_client_state_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_tbt_client_state_notification.h
new file mode 100644
index 000000000..5c34caba3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_tbt_client_state_notification.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_TBT_CLIENT_STATE_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_TBT_CLIENT_STATE_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnTBTClientStateNotification class
+ **/
+class OnTBTClientStateNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnTBTClientStateNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnTBTClientStateNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnTBTClientStateNotification class destructor
+ **/
+ virtual ~OnTBTClientStateNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnTBTClientStateNotification);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_TBT_CLIENT_STATE_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_touch_event_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_touch_event_notification.h
new file mode 100644
index 000000000..1aba3087d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_touch_event_notification.h
@@ -0,0 +1,76 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_TOUCH_EVENT_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_TOUCH_EVENT_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+/**
+ * @brief OnTouchEventNotification class
+ **/
+class OnTouchEventNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnTouchEventNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnTouchEventNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnTouchEventNotification class destructor
+ **/
+ virtual ~OnTouchEventNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(OnTouchEventNotification);
+};
+
+} // namespace mobile
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_ON_TOUCH_EVENT_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_vehicle_data_notification.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_vehicle_data_notification.h
new file mode 100644
index 000000000..7e64f1963
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/on_vehicle_data_notification.h
@@ -0,0 +1,82 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_VEHICLE_DATA_NOTIFICATION_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_VEHICLE_DATA_NOTIFICATION_H_
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "application_manager/application.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief OnVehicleDataNotification class is used to send notification
+ * to mobile device that some button was pressed on HMI.
+ **/
+class OnVehicleDataNotification : public CommandNotificationImpl {
+ public:
+ /**
+ * @brief OnVehicleDataNotification class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit OnVehicleDataNotification(const MessageSharedPtr& message);
+
+ /**
+ * @brief OnVehicleDataNotification class destructor
+ **/
+ virtual ~OnVehicleDataNotification();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ /*
+ * @brief Sends vehicle data notification to mobile device
+ *
+ * @param app Application to receive notification
+ */
+ void SendVehicleData(ApplicationConstSharedPtr app);
+
+ DISALLOW_COPY_AND_ASSIGN(OnVehicleDataNotification);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_ON_VEHICLE_DATA_NOTIFICATION_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_request.h
new file mode 100644
index 000000000..2968497df
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_request.h
@@ -0,0 +1,87 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief PerformAudioPassThruRequest command class
+ **/
+class PerformAudioPassThruRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief PerformAudioPassThruRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit PerformAudioPassThruRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief PerformAudioPassThruRequest class destructor
+ **/
+ virtual ~PerformAudioPassThruRequest();
+
+ bool Init();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ private:
+ /*
+ * @brief Sends TTS Speak request
+ */
+ void SendSpeakRequest(const int32_t app_id);
+
+ DISALLOW_COPY_AND_ASSIGN(PerformAudioPassThruRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_response.h
new file mode 100644
index 000000000..d659e59be
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_audio_pass_thru_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief PerformAudioPassThruResponse command class
+ **/
+class PerformAudioPassThruResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief PerformAudioPassThruResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit PerformAudioPassThruResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief PerformAudioPassThruResponse class destructor
+ **/
+ virtual ~PerformAudioPassThruResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PerformAudioPassThruResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_AUDIO_PASS_THRU_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h
new file mode 100644
index 000000000..652e73f86
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_request.h
@@ -0,0 +1,220 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "application_manager/application.h"
+#include "utils/timer_thread.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+class Application;
+
+namespace commands {
+
+/**
+ * @brief PerformInteractionRequest command class
+ **/
+class PerformInteractionRequest : public CommandRequestImpl {
+
+ public:
+ /**
+ * @brief PerformInteractionRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit PerformInteractionRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief PerformInteractionRequest class destructor
+ **/
+ virtual ~PerformInteractionRequest();
+
+ /**
+ * @brief Initialize request params
+ **/
+ virtual bool Init();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+ /**
+ * @brief Timer callback function
+ *
+ */
+ void onTimer();
+
+ private:
+ /*
+ * @brief Function is called by RequestController when request execution time
+ * has exceed it's limit
+ *
+ */
+ virtual void onTimeOut();
+
+ /*
+ * @brief Function will be called when VR_OnCommand event
+ * comes
+ *
+ * @param message which should send to mobile side
+ *
+ */
+ void ProcessVRNotification(const smart_objects::SmartObject& message);
+
+ /*
+ * @brief Function will be called when event AppUnregistered comes
+ *
+ * @param message which will be sent to mobile side
+ *
+ */
+ void ProcessAppUnregisteredNotification
+ (const smart_objects::SmartObject& message);
+
+ /*
+ * @brief Sends VRDeleteCommand request to HMI
+ *
+ * @param app_id Application ID
+ *
+ */
+ void SendVrDeleteCommand(ApplicationSharedPtr app);
+
+ /*
+ * @brief Sends PerformInteraction response to mobile side
+ *
+ * @param message which should send to mobile side
+ *
+ */
+ void ProcessPerformInteractionResponse
+ (const smart_objects::SmartObject& message);
+
+ /*
+ * @brief Sends VR AddCommand request to HMI
+ *
+ * @param app_id Application ID
+ *
+ */
+ void SendVRAddCommandRequest(application_manager::ApplicationSharedPtr const app);
+
+ /*
+ * @brief Sends UI PerformInteraction request to HMI
+ *
+ * @param app_id Application ID
+ *
+ */
+ void SendUIPerformInteractionRequest(
+ application_manager::ApplicationSharedPtr const app);
+
+ /*
+ * @brief Sends TTS PerformInteraction request to HMI
+ *
+ * @param app_id Application ID
+ *
+ */
+ void SendTTSPerformInteractionRequest(
+ application_manager::ApplicationSharedPtr const app);
+
+ /*
+ * @brief Prepare request for sending to HMI
+ *
+ * @param array of structure of TTS
+ *
+ */
+ void DeleteParameterFromTTSChunk(smart_objects::SmartObject* array_tts_chunk);
+
+ /*
+ * @brief Sends UI Show VR help request to HMI
+ *
+ * @param app_id Application ID
+ */
+ void SendUIShowVRHelpRequest(ApplicationSharedPtr const app);
+
+ /**
+ * @brief Creates and Sends Perform interaction to UI.
+ */
+ void CreateUIPerformInteraction(const smart_objects::SmartObject& msg_params,
+ application_manager::ApplicationSharedPtr const app);
+
+ /*
+ * @brief Checks if incoming choice set doesn't has similar menu names.
+ *
+ * @param app_id Application ID
+ *
+ * return Return TRUE if there are no similar menu names in choice set,
+ * otherwise FALSE
+ */
+ bool CheckChoiceSetMenuNames(application_manager::ApplicationSharedPtr const app);
+
+ /*
+ * @brief Checks if incoming choice set doesn't has similar VR synonyms.
+ *
+ * @param app_id Application ID
+ *
+ * return Return TRUE if there are no similar VR synonyms in choice set,
+ * otherwise FALSE
+ */
+ bool CheckChoiceSetVRSynonyms(application_manager::ApplicationSharedPtr const app);
+
+ /*
+ * @brief Checks if request with non-sequential positions of vrHelpItems
+ * SDLAQ-CRS-466
+ *
+ * @param app_id Application ID
+ *
+ * @return TRUE if vrHelpItems positions are sequential,
+ * otherwise FALSE
+ */
+ bool CheckVrHelpItemPositions(application_manager::ApplicationSharedPtr const app);
+
+ // members
+ timer::TimerThread<PerformInteractionRequest> timer_;
+
+ DISALLOW_COPY_AND_ASSIGN(PerformInteractionRequest);
+ mobile_apis::Result::eType tts_perform_interaction_code_;
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_response.h
new file mode 100644
index 000000000..4ecc149fb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/perform_interaction_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief PerformInteractionResponse command class
+ **/
+class PerformInteractionResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief PerformInteractionResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit PerformInteractionResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief PerformInteractionResponse class destructor
+ **/
+ virtual ~PerformInteractionResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PerformInteractionResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PERFORM_INTERACTION_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_request.h
new file mode 100644
index 000000000..3b0309417
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_request.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief PutFileRequest command class
+ **/
+class PutFileRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief PutFileRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit PutFileRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief PutFileRequest class destructor
+ **/
+ virtual ~PutFileRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PutFileRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_response.h
new file mode 100644
index 000000000..89ff6ad08
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/put_file_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief PutFileResponse command class
+ **/
+class PutFileResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief PutFileResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit PutFileResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief PutFileResponse class destructor
+ **/
+ virtual ~PutFileResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PutFileResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PUT_FILE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_request.h
new file mode 100644
index 000000000..e2e5dbf3d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_request.h
@@ -0,0 +1,80 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ReadDIDRequest command class
+ **/
+class ReadDIDRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief ReadDIDRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ReadDIDRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief ReadDIDRequest class destructor
+ **/
+ virtual ~ReadDIDRequest();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ReadDIDRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_response.h
new file mode 100644
index 000000000..80b9b5ea4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/read_did_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ReadDIDResponse command class
+ **/
+class ReadDIDResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief ReadDIDResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ReadDIDResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief ReadDIDResponse class destructor
+ **/
+ virtual ~ReadDIDResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ReadDIDResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_READ_DID_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h
new file mode 100644
index 000000000..834534234
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h
@@ -0,0 +1,183 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_REQUEST_H_
+
+#include <string.h>
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+class Application;
+
+namespace commands {
+
+/**
+ * @brief Register app interface request command class
+ **/
+class RegisterAppInterfaceRequest : public CommandRequestImpl {
+ public:
+ /**
+ * \brief RegisterAppInterfaceRequest class constructor
+ **/
+ explicit RegisterAppInterfaceRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief RegisterAppInterfaceRequest class destructor
+ **/
+ virtual ~RegisterAppInterfaceRequest();
+
+ /**
+ * @brief Init required by command resources
+ **/
+ virtual bool Init();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+ // virtual void cleanUp() = 0;
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+ /**
+ * @brief Sends RegisterAppInterface response to mobile
+ *
+ *@param application_impl application
+ *
+ **/
+ void SendRegisterAppInterfaceResponseToMobile(
+ mobile_apis::Result::eType result = mobile_apis::Result::SUCCESS);
+
+ private:
+ /*
+ * @brief Send addVRcommand request to HMI
+ *
+ * @param application_impl application
+ */
+ void SendVrCommandsOnRegisterAppToHMI(
+ const application_manager::Application& application_impl);
+
+ /*
+ * @brief Send ttsSpeak request to HMI
+ *
+ * @param application_impl application
+ */
+ void SendTTSChunksToHMI(
+ const application_manager::Application& application_impl);
+
+ /*
+ * @brief Check new ID along with known mobile application ID
+ *
+ * return TRUE if ID is known already, otherwise - FALSE
+ */
+ bool IsApplicationWithSameAppIdRegistered();
+
+ /*
+ * @brief Check for some request param. names restrictions, e.g. for
+ * newline characters
+ *
+ * return SUCCESS if param name pass the check, otherwise - error code
+ * will be returned
+ */
+ mobile_apis::Result::eType CheckRestrictions() const;
+
+ /*
+ * @brief Removes hidden symbols and spaces
+ *
+ * return cleared copy of param name
+ */
+ std::string ClearParamName(std::string param_name) const;
+
+
+ /*
+ * @brief Check new application parameters (name, tts, vr) for
+ * coincidence with already known parameters of registered applications
+ *
+ * return SUCCESS if there is no coincidence of app.name/TTS/VR synonyms,
+ * otherwise appropriate error code returns
+ */
+ mobile_apis::Result::eType CheckCoincidence();
+
+ /*
+ * @brief Predicate for using with CheckCoincidence method to compare with TTS SO
+ *
+ * return TRUE if there is coincidence of TTS text field, otherwise FALSE
+ */
+ struct CoincidencePredicateTTS {
+ explicit CoincidencePredicateTTS(const std::string &newItem)
+ :newItem_(newItem)
+ {};
+
+ bool operator()(smart_objects::SmartObject obj) {
+ const std::string text = obj[strings::text].asString();
+ return !(strcasecmp(text.c_str(), newItem_.c_str()));
+ };
+
+ const std::string &newItem_;
+ };
+
+ /*
+ * @brief Predicate for using with CheckCoincidence method to compare with VR synonym SO
+ *
+ * return TRUE if there is coincidence of VR, otherwise FALSE
+ */
+ struct CoincidencePredicateVR {
+ explicit CoincidencePredicateVR(const std::string &newItem)
+ :newItem_(newItem)
+ {};
+
+ bool operator()(smart_objects::SmartObject obj) {
+ const std::string vr_synonym = obj.asString();
+ return !(strcasecmp(vr_synonym.c_str(), newItem_.c_str()));
+ };
+
+ const std::string &newItem_;
+ };
+
+
+ DISALLOW_COPY_AND_ASSIGN(RegisterAppInterfaceRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_response.h
new file mode 100644
index 000000000..14b904e63
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_response.h
@@ -0,0 +1,72 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+namespace commands {
+/**
+ * @brief Register app interface request command class
+ **/
+class RegisterAppInterfaceResponse : public CommandResponseImpl {
+ public:
+ /**
+ * \brief RegisterAppInterfaceResponse class constructor
+ **/
+ explicit RegisterAppInterfaceResponse(const MessageSharedPtr& response)
+ : CommandResponseImpl(response) {
+ }
+
+ /**
+ * \brief RegisterAppInterfaceResponse class destructor
+ **/
+ virtual ~RegisterAppInterfaceResponse() {
+ }
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(RegisterAppInterfaceResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_REGISTER_APP_INTERFACE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_request.h
new file mode 100644
index 000000000..1c4960f5f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_request.h
@@ -0,0 +1,149 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "application_manager/application.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+// TODO(DK): Include GlobalProperty header
+/*
+ * @brief Names of all global properties that should be unset.
+ */
+enum GlobalProperty {
+ HELPPROMT = 0,
+ TIMEOUTPROMT = 1,
+ VRHELPTITLE = 2,
+ VRHELPITEMS = 3
+};
+
+/**
+ * @brief ResetGlobalPropertiesRequest command class
+ **/
+class ResetGlobalPropertiesRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief ResetGlobalPropertiesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ResetGlobalPropertiesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief ResetGlobalPropertiesRequest class destructor
+ **/
+ virtual ~ResetGlobalPropertiesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ private:
+ /*
+ * @brief Sets default value of the HELPPROMT global property
+ * to the first vrCommand of each Command Menu registered in application
+ *
+ * @param app Registered application
+ * @param is_timeout_promp Flag indicating that timeout prompt
+ * should be reset
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool ResetHelpPromt(ApplicationSharedPtr app);
+
+ /*
+ * @brief Sets default value of the TIMEOUTPROMT global property
+ * to the first vrCommand of each Command Menu registered in application
+ *
+ * @param app Registered application
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool ResetTimeoutPromt(application_manager::ApplicationSharedPtr const app);
+
+ /*
+ * @brief Sets default value of the VRHELPTITLE global property
+ * to the application name
+ *
+ * @param app Registered application
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool ResetVrHelpTitle(application_manager::ApplicationSharedPtr const app);
+
+ /*
+ * @brief Sets default value of the VRHELPITEMS global property
+ * to value equal to registered command -1(default command “Help / Cancel”.)
+ *
+ * @param app Registered application
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool ResetVrHelpItems(application_manager::ApplicationSharedPtr const app);
+
+ /*
+ * @brief Check if there some not delivered hmi responses exist
+ *
+ * @return true if all responses received
+ */
+ bool IsPendingResponseExist();
+
+ DISALLOW_COPY_AND_ASSIGN(ResetGlobalPropertiesRequest);
+
+ bool is_ui_send_;
+ bool is_tts_send_;
+
+ bool is_ui_received_;
+ bool is_tts_received_;
+
+ hmi_apis::Common_Result::eType ui_result_;
+ hmi_apis::Common_Result::eType tts_result_;
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_response.h
new file mode 100644
index 000000000..7c0b8eb00
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/reset_global_properties_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ResetGlobalPropertiesResponse command class
+ **/
+class ResetGlobalPropertiesResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief ResetGlobalPropertiesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ResetGlobalPropertiesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief ResetGlobalPropertiesResponse class destructor
+ **/
+ virtual ~ResetGlobalPropertiesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ResetGlobalPropertiesResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_RESET_GLOBAL_PROPERTIES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_request.h
new file mode 100644
index 000000000..bf8bc3eba
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_request.h
@@ -0,0 +1,89 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief scrollable message request command class
+ **/
+class ScrollabelMessageRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief ScrollabeMessageRequest class constructor
+ **/
+ explicit ScrollabelMessageRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief SliderCommand class destructor
+ **/
+ virtual ~ScrollabelMessageRequest();
+
+ /**
+ * @brief Initialize request params
+ **/
+ virtual bool Init();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+ private:
+
+ // members
+ mobile_apis::Result::eType result_;
+
+ DISALLOW_COPY_AND_ASSIGN(ScrollabelMessageRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h
new file mode 100644
index 000000000..36fd311ad
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/scrollable_message_response.h
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "application_manager/message.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+namespace commands {
+
+class ScrollableMessageResponse : public CommandResponseImpl {
+ public:
+ /**
+ * \brief ScrollableMessageResponse class constructor
+ **/
+ explicit ScrollableMessageResponse(const MessageSharedPtr& message);
+
+ /**
+ * \brief SpeakResponseCommand class destructor
+ **/
+ virtual ~ScrollableMessageResponse() {
+ }
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ScrollableMessageResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SCROLLABLE_MESSAGE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_request.h
new file mode 100644
index 000000000..925a1cd67
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_request.h
@@ -0,0 +1,80 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SetDisplayLayoutRequest command class
+ **/
+class SetDisplayLayoutRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief SetDisplayLayoutRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SetDisplayLayoutRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief SetDisplayLayoutRequest class destructor
+ **/
+ virtual ~SetDisplayLayoutRequest();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ **/
+ virtual void on_event(const event_engine::Event& event);
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SetDisplayLayoutRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_response.h
new file mode 100644
index 000000000..dbf3de8d8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_display_layout_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SetDisplayLayoutResponse command class
+ **/
+class SetDisplayLayoutResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief SetDisplayLayoutResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SetDisplayLayoutResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief SetDisplayLayoutResponse class destructor
+ **/
+ virtual ~SetDisplayLayoutResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SetDisplayLayoutResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_DISPLAY_LAYOUT_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_request.h
new file mode 100644
index 000000000..92dbccf06
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_request.h
@@ -0,0 +1,113 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief Register app interface request command class
+ **/
+class SetGlobalPropertiesRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief SetGlobalPropertiesRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SetGlobalPropertiesRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief SetGlobalPropertiesRequest class destructor
+ **/
+ virtual ~SetGlobalPropertiesRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ private:
+ /*
+ * @brief Chec if HelpItems order is correct
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool CheckVrHelpItemsOrder();
+
+ /*
+ * @brief Check if there some not delivered hmi responses exist
+ *
+ * @return true if all responses received
+ */
+ bool IsPendingResponseExist();
+
+ /*
+ * @brief Checks if request has at least one parameter
+ *
+ * @param params request parameters
+ *
+ * @returns true if at least one parameter is present in object
+ */
+ static bool ValidateConditionalMandatoryParameters(
+ const smart_objects::SmartObject& params);
+
+ DISALLOW_COPY_AND_ASSIGN(SetGlobalPropertiesRequest);
+
+ bool is_ui_send_;
+ bool is_tts_send_;
+
+ bool is_ui_received_;
+ bool is_tts_received_;
+
+ hmi_apis::Common_Result::eType ui_result_;
+ hmi_apis::Common_Result::eType tts_result_;
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_response.h
new file mode 100644
index 000000000..dd80e738e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_global_properties_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief Register app interface request command class
+ **/
+class SetGlobalPropertiesResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief SetGlobalPropertiesResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SetGlobalPropertiesResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief SetGlobalPropertiesResponse class destructor
+ **/
+ virtual ~SetGlobalPropertiesResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SetGlobalPropertiesResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_GLOBAL_PROPERTIES_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_request.h
new file mode 100644
index 000000000..d46094032
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_request.h
@@ -0,0 +1,88 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SetIconRequest command class
+ **/
+class SetIconRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief Contains information about the type of image
+ */
+ typedef enum {
+ STATIC = 0,
+ DYNAMIC
+ } ImageType;
+
+ /**
+ * @brief SetIconRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SetIconRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief SetIconRequest class destructor
+ **/
+ virtual ~SetIconRequest();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SetIconRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_response.h
new file mode 100644
index 000000000..88dceaf5a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_icon_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SetIconResponse command class
+ **/
+class SetIconResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief SetIconResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SetIconResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief SetIconResponse class destructor
+ **/
+ virtual ~SetIconResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SetIconResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_ICON_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_request.h
new file mode 100644
index 000000000..e4fae5c0b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_request.h
@@ -0,0 +1,81 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SetMediaClockRequest request command class
+ **/
+class SetMediaClockRequest : public CommandRequestImpl {
+ public:
+ /**
+ * \brief SetMediaClockRequest class constructor
+ **/
+ explicit SetMediaClockRequest(const MessageSharedPtr& message);
+
+ /**
+ * \brief ShowCommand class destructor
+ **/
+ virtual ~SetMediaClockRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ void on_event(const event_engine::Event& event);
+
+ private:
+ bool isDataValid();
+
+ DISALLOW_COPY_AND_ASSIGN(SetMediaClockRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h
new file mode 100644
index 000000000..e835c17c8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/set_media_clock_timer_response.h
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "application_manager/message.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+namespace commands {
+
+class SetMediaClockTimerResponse : public CommandResponseImpl {
+ public:
+ /**
+ * \brief SetMediaClockTimerResponse class constructor
+ **/
+ explicit SetMediaClockTimerResponse(const MessageSharedPtr& message);
+
+ /**
+ * \brief SetMediaClockTimerResponse class destructor
+ **/
+ virtual ~SetMediaClockTimerResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SetMediaClockTimerResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SET_MEDIA_CLOCK_TIMER_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_request.h
new file mode 100644
index 000000000..968a30cdb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_request.h
@@ -0,0 +1,85 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ShowConstantTBTRequest command class
+ **/
+class ShowConstantTBTRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief ShowConstantTBTRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ShowConstantTBTRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief ShowConstantTBTRequest class destructor
+ **/
+ virtual ~ShowConstantTBTRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+ private:
+
+ // members
+ mobile_apis::Result::eType result_;
+
+ DISALLOW_COPY_AND_ASSIGN(ShowConstantTBTRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_response.h
new file mode 100644
index 000000000..6a102b198
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_constant_tbt_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief ShowConstantTBTResponse command class
+ **/
+class ShowConstantTBTResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief ShowConstantTBTResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit ShowConstantTBTResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief ShowConstantTBTResponse class destructor
+ **/
+ virtual ~ShowConstantTBTResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ShowConstantTBTResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_CONSTANT_TBT_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_request.h
new file mode 100644
index 000000000..c187058dc
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_request.h
@@ -0,0 +1,91 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief show request command class
+ **/
+class ShowRequest : public CommandRequestImpl {
+ public:
+ /**
+ * \brief ShowRequest class constructor
+ **/
+ explicit ShowRequest(const MessageSharedPtr& message);
+
+ /**
+ * \brief ShowRequest class destructor
+ **/
+ virtual ~ShowRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+ private:
+
+ /*
+ * @brief Check if main fileds{1,2,3,4} have valid syntax
+ *
+ * @return TRUE on success, otherwise FALSE
+ */
+ bool CheckMenuFieldsNames();
+
+ // members
+ mobile_apis::Result::eType result_;
+
+ DISALLOW_COPY_AND_ASSIGN(ShowRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_response.h
new file mode 100644
index 000000000..970b54747
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/show_response.h
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "application_manager/message.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+namespace commands {
+
+class ShowResponse : public CommandResponseImpl {
+ public:
+ /**
+ * \brief ShowResponse class constructor
+ **/
+ explicit ShowResponse(const MessageSharedPtr& message);
+
+ /**
+ * \brief ShowResponse class destructor
+ **/
+ virtual ~ShowResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ShowResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SHOW_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_request.h
new file mode 100644
index 000000000..edfba87a0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_request.h
@@ -0,0 +1,84 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief slider request command class
+ **/
+class SliderRequest : public CommandRequestImpl {
+ public:
+ /**
+ * \brief SliderRequest class constructor
+ **/
+ explicit SliderRequest(const MessageSharedPtr& message);
+
+ /**
+ * \brief SliderRequest class destructor
+ **/
+ virtual ~SliderRequest();
+
+ /**
+ * @brief Initialize request params
+ **/
+ virtual bool Init();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SliderRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_response.h
new file mode 100644
index 000000000..b7821adca
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/slider_response.h
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "application_manager/message.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+namespace commands {
+
+class SliderResponse : public CommandResponseImpl {
+ public:
+ /**
+ * \brief SliderResponse class constructor
+ **/
+ explicit SliderResponse(const MessageSharedPtr& message);
+
+ /**
+ * \brief SpeakResponseCommand class destructor
+ **/
+ virtual ~SliderResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SliderResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SLIDER_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_request.h
new file mode 100644
index 000000000..6c4e69977
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_request.h
@@ -0,0 +1,86 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief speak request command class
+ **/
+class SpeakRequest : public CommandRequestImpl {
+ public:
+ /**
+ * \brief SpeakRequest class constructor
+ **/
+ explicit SpeakRequest(const MessageSharedPtr& message);
+
+ /**
+ * \brief SpeakRequest class destructor
+ **/
+ virtual ~SpeakRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+ private:
+ /*
+ * @brief Sends Speak response to mobile side
+ *
+ * @param message which should send to mobile side
+ *
+ */
+ void ProcessTTSSpeakResponse(const smart_objects::SmartObject& message);
+ DISALLOW_COPY_AND_ASSIGN(SpeakRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_response.h
new file mode 100644
index 000000000..ef9b8f89d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/speak_response.h
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "application_manager/message.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+namespace commands {
+
+class SpeakResponse : public CommandResponseImpl {
+ public:
+ /**
+ * \brief SpeakResponse class constructor
+ **/
+ explicit SpeakResponse(const MessageSharedPtr& message);
+
+ /**
+ * \brief SpeakResponse class destructor
+ **/
+ virtual ~SpeakResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SpeakResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SPEAK_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_request.h
new file mode 100644
index 000000000..b91480dbb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_request.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SubscribeButtonRequest command class
+ **/
+class SubscribeButtonRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief SubscribeButtonRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SubscribeButtonRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief SubscribeButtonRequest class destructor
+ **/
+ virtual ~SubscribeButtonRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SubscribeButtonRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_response.h
new file mode 100644
index 000000000..836688454
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_button_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SubscribeButtonResponse command class
+ **/
+class SubscribeButtonResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief SubscribeButtonResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SubscribeButtonResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief SubscribeButtonResponse class destructor
+ **/
+ virtual ~SubscribeButtonResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SubscribeButtonResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_BUTTON_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_request.h
new file mode 100644
index 000000000..ae657ffe7
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_request.h
@@ -0,0 +1,96 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SubscribeVehicleDataRequest command class
+ **/
+class SubscribeVehicleDataRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief SubscribeVehicleDataRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SubscribeVehicleDataRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief SubscribeButtonCommandRequest class destructor
+ **/
+ virtual ~SubscribeVehicleDataRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+#ifdef QT_HMI
+ private:
+ struct HmiRequest {
+ hmi_apis::Common_Result::eType status;
+ bool complete;
+ smart_objects::SmartObject value;
+ const char* str;
+ hmi_apis::FunctionID::eType func_id;
+ };
+
+ typedef std::vector<HmiRequest> HmiRequests;
+ HmiRequests hmi_requests_;
+#endif // #ifdef QT_HMI
+
+ private:
+ bool IsAnythingAlreadySubscribed();
+
+ DISALLOW_COPY_AND_ASSIGN(SubscribeVehicleDataRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_response.h
new file mode 100644
index 000000000..d2771c071
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/subscribe_vehicle_data_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SubscribeVehicleDataResponse command class
+ **/
+class SubscribeVehicleDataResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief SubscribeVehicleDataResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SubscribeVehicleDataResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UnsubscribeVehicleDataCommandRequest class destructor
+ **/
+ virtual ~SubscribeVehicleDataResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SubscribeVehicleDataResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_request.h
new file mode 100644
index 000000000..e41ab7f36
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_request.h
@@ -0,0 +1,76 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_REQUEST_H_
+
+#include <string>
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SyncPData request command class
+ **/
+class SyncPDataRequest : public CommandRequestImpl {
+ public:
+ /**
+ * \brief SyncPDataRequest class constructor
+ **/
+ explicit SyncPDataRequest(const MessageSharedPtr& message);
+
+ /**
+ * \brief SyncPDataRequest class destructor
+ **/
+ virtual ~SyncPDataRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ static const std::string TEMPORARY_HARDCODED_FILENAME;
+ static const std::string TEMPORARY_HARDCODED_FOLDERNAME;
+
+ DISALLOW_COPY_AND_ASSIGN(SyncPDataRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_response.h
new file mode 100644
index 000000000..529a7264a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/sync_pdata_response.h
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "application_manager/message.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+namespace commands {
+
+class SyncPDataResponse : public CommandResponseImpl {
+ public:
+ /**
+ * \brief SyncPDataResponse class constructor
+ **/
+ explicit SyncPDataResponse(const MessageSharedPtr& message);
+
+ /**
+ * \brief SyncPDataResponse class destructor
+ **/
+ virtual ~SyncPDataResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SyncPDataResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_SYNC_PDATA_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_request.h
new file mode 100644
index 000000000..745b06b3c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_request.h
@@ -0,0 +1,72 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SystemRequest command class
+ **/
+class SystemRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief SystemRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SystemRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief SystemRequest class destructor
+ **/
+ virtual ~SystemRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SystemRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_response.h
new file mode 100644
index 000000000..ca2fb9997
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/system_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief SystemResponse command class
+ **/
+class SystemResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief SystemResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit SystemResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief SystemResponse class destructor
+ **/
+ virtual ~SystemResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SystemResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_SYSTEM_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_request.h
new file mode 100644
index 000000000..a5a53736e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_request.h
@@ -0,0 +1,76 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief Unregister app interface request command class
+ **/
+class UnregisterAppInterfaceRequest : public CommandRequestImpl {
+ public:
+ /**
+ * \brief UnregisterAppInterfaceRequest class constructor
+ **/
+ explicit UnregisterAppInterfaceRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+ }
+
+ /**
+ * \brief UnregisterAppInterfaceRequest class destructor
+ **/
+ virtual ~UnregisterAppInterfaceRequest() {
+ }
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+ // virtual void cleanUp() = 0;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UnregisterAppInterfaceRequest);
+};
+
+} // namespace commands
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_response.h
new file mode 100644
index 000000000..5c8928a6c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unregister_app_interface_response.h
@@ -0,0 +1,72 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+namespace commands {
+/**
+ * @brief Unregister app interface request command class
+ **/
+class UnregisterAppInterfaceResponse : public CommandResponseImpl {
+ public:
+ /**
+ * \brief UnregisterAppInterfaceResponse class constructor
+ **/
+ explicit UnregisterAppInterfaceResponse(const MessageSharedPtr& response)
+ : CommandResponseImpl(response) {
+ }
+
+ /**
+ * \brief UnregisterAppInterfaceResponse class destructor
+ **/
+ virtual ~UnregisterAppInterfaceResponse() {
+ }
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UnregisterAppInterfaceResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNREGISTER_APP_INTERFACE_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_request.h
new file mode 100644
index 000000000..3ec216de2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_request.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UnsubscribeButtonRequest command class
+ **/
+class UnsubscribeButtonRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief UnsubscribeButtonRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UnsubscribeButtonRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UnsubscribeButtonRequest class destructor
+ **/
+ virtual ~UnsubscribeButtonRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UnsubscribeButtonRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_response.h
new file mode 100644
index 000000000..972da4806
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_button_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UnsubscribeButtonResponse command class
+ **/
+class UnsubscribeButtonResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief UnsubscribeButtonResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UnsubscribeButtonResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UnsubscribeButtonResponse class destructor
+ **/
+ virtual ~UnsubscribeButtonResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UnsubscribeButtonResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_BUTTON_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_request.h
new file mode 100644
index 000000000..be8a00389
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_request.h
@@ -0,0 +1,95 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UnsubscribeVehicleDataRequest command class
+ **/
+class UnsubscribeVehicleDataRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief UnsubscribeVehicleDataRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UnsubscribeVehicleDataRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UnsubscribeVehicleDataRequest class destructor
+ **/
+ virtual ~UnsubscribeVehicleDataRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+#ifdef QT_HMI
+ private:
+ struct HmiRequest {
+ hmi_apis::Common_Result::eType status;
+ bool complete;
+ smart_objects::SmartObject value;
+ const char* str;
+ hmi_apis::FunctionID::eType func_id;
+ };
+
+ typedef std::vector<HmiRequest> HmiRequests;
+ HmiRequests hmi_requests_;
+#endif // #ifdef QT_HMI
+
+ private:
+ bool IsAnythingAlreadyUnsubscribed();
+ DISALLOW_COPY_AND_ASSIGN(UnsubscribeVehicleDataRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_response.h
new file mode 100644
index 000000000..3fb932ecf
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/unsubscribe_vehicle_data_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UnsubscribeVehicleDataResponse command class
+ **/
+class UnsubscribeVehicleDataResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief UnsubscribeVehicleDataResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UnsubscribeVehicleDataResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UnsubscribeVehicleDataResponse class destructor
+ **/
+ virtual ~UnsubscribeVehicleDataResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UnsubscribeVehicleDataResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UNSUBSCRIBE_VEHICLE_DATA_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_request.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_request.h
new file mode 100644
index 000000000..0ae79a54e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_request.h
@@ -0,0 +1,92 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_REQUEST_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_REQUEST_H_
+
+#include "application_manager/commands/command_request_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UpdateTurnListRequest command class
+ **/
+class UpdateTurnListRequest : public CommandRequestImpl {
+ public:
+ /**
+ * @brief UpdateTurnListRequest class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UpdateTurnListRequest(const MessageSharedPtr& message);
+
+ /**
+ * @brief UpdateTurnListRequest class destructor
+ **/
+ virtual ~UpdateTurnListRequest();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+ private:
+ /**
+ * @brief check correct parameter turnList
+ *
+ * @return TRUE if turnList is correct,
+ * otherwise FALSE
+ */
+ bool CheckTurnListArray();
+
+ // members
+ mobile_apis::Result::eType result_;
+
+ DISALLOW_COPY_AND_ASSIGN(UpdateTurnListRequest);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_REQUEST_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_response.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_response.h
new file mode 100644
index 000000000..fdbf64826
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/mobile/update_turn_list_response.h
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_RESPONSE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_RESPONSE_H_
+
+#include "application_manager/commands/command_response_impl.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/**
+ * @brief UpdateTurnListResponse command class
+ **/
+class UpdateTurnListResponse : public CommandResponseImpl {
+ public:
+ /**
+ * @brief UpdateTurnListResponse class constructor
+ *
+ * @param message Incoming SmartObject message
+ **/
+ explicit UpdateTurnListResponse(const MessageSharedPtr& message);
+
+ /**
+ * @brief UpdateTurnListResponse class destructor
+ **/
+ virtual ~UpdateTurnListResponse();
+
+ /**
+ * @brief Execute command
+ **/
+ virtual void Run();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(UpdateTurnListResponse);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_MOBILE_UPDATE_TURN_LIST_RESPONSE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/commands/pending.h b/SDL_Core/src/components/application_manager/include/application_manager/commands/pending.h
new file mode 100644
index 000000000..bbfc24665
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/commands/pending.h
@@ -0,0 +1,75 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PENDING_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PENDING_H_
+
+#include <set>
+#include "utils/macro.h"
+#include "utils/lock.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+/*
+ * @brief Class for monitoring of pending requests/responses to HMI
+ */
+class Pending {
+ public:
+ /*
+ * Constructor
+ */
+ Pending();
+
+ /*
+ * Destructor
+ */
+ ~Pending();
+
+ void Add(hmi_apis::FunctionID::eType id);
+ void Remove(hmi_apis::FunctionID::eType id);
+ bool IsFinal(hmi_apis::FunctionID::eType id);
+
+ private:
+ std::set<hmi_apis::FunctionID::eType> pending_;
+ sync_primitives::Lock lock_;
+ hmi_apis::FunctionID::eType last_;
+ DISALLOW_COPY_AND_ASSIGN(Pending);
+};
+
+} // namespace commands
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_COMMANDS_PENDING_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event.h b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event.h
new file mode 100644
index 000000000..e76b767f1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event.h
@@ -0,0 +1,147 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_H_
+
+#include <interfaces/HMI_API.h>
+
+#include "smart_objects/smart_object.h"
+#include "application_manager/smart_object_keys.h"
+
+namespace application_manager {
+namespace event_engine {
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+class Event {
+ public:
+
+ // Typedef for possible Event ID's from mobile_apis functionID enum
+ typedef hmi_apis::FunctionID::eType EventID;
+
+ /*
+ * @brief Constructor with parameters
+ *
+ * @param id Event ID. Please see mobile_apis::FunctionID for possible ID's
+ */
+ explicit Event(const EventID& id);
+
+ /*
+ * @brief Destructor
+ */
+ virtual ~Event();
+
+ /*
+ * @brief Sends synchronously event to all subscribers.
+ *
+ */
+ void raise();
+
+ /*
+ * @brief Provides event ID
+ */
+ inline const EventID& id() const;
+
+ /*
+ * @brief Sets event smart object
+ *
+ * @param so The smart_object received in HMI response
+ */
+ void set_smart_object(smart_objects::SmartObject& so);
+
+ /*
+ * @brief Retrieves event smart object
+ *
+ * @return The smart_object received in HMI response
+ */
+ inline const smart_objects::SmartObject& smart_object() const;
+
+ /*
+ * @brief Retrieves smart object request ID
+ */
+ inline int32_t smart_object_function_id() const;
+
+ /*
+ * @brief Retrieves smart object correlation ID
+ */
+ inline int32_t smart_object_correlation_id() const;
+
+ /*
+ * @brief Retrieves smart_object response type
+ */
+ inline int32_t smart_object_type() const;
+
+ protected:
+
+ private:
+
+ EventID id_;
+ smart_objects::SmartObject response_so_;
+
+ /*
+ * @brief Default constructor
+ *
+ * Unimplemented to avoid misusing
+ */
+ Event();
+
+ DISALLOW_COPY_AND_ASSIGN(Event);
+};
+
+const Event::EventID& Event::id() const {
+ return id_;
+}
+
+const smart_objects::SmartObject& Event::smart_object() const {
+ return response_so_;
+}
+
+int32_t Event::smart_object_function_id() const {
+ return response_so_.getElement(
+ strings::params).getElement(strings::function_id).asInt();
+}
+
+int32_t Event::smart_object_correlation_id() const {
+ return response_so_.getElement(
+ strings::params).getElement(strings::correlation_id).asInt();
+}
+
+int32_t Event::smart_object_type() const {
+ return response_so_.getElement(
+ strings::params).getElement(strings::message_type).asInt();
+}
+
+}
+}
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h
new file mode 100644
index 000000000..fb7d4cd50
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_dispatcher.h
@@ -0,0 +1,117 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_DISPATCHER_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_DISPATCHER_H_
+
+#include <list>
+#include <map>
+
+#include "utils/lock.h"
+#include "utils/singleton.h"
+
+#include "application_manager/event_engine/event.h"
+
+namespace application_manager {
+namespace event_engine {
+
+class EventObserver;
+
+class EventDispatcher : public utils::Singleton<EventDispatcher> {
+ public:
+
+ /*
+ * @brief Delivers the event to all subscribers
+ *
+ * @param event Received event
+ */
+ void raise_event(const Event& event);
+
+ /*
+ * @brief Subscribe the observer to event
+ *
+ * @param event_id The event ID to subscribe for
+ * @param hmi_correlation_id The event HMI correlation ID
+ * @param observer The observer to subscribe for event
+ */
+ void add_observer(const Event::EventID& event_id,
+ int32_t hmi_correlation_id,
+ EventObserver* const observer);
+
+ /*
+ * @brief Unsubscribes the observer from specific event
+ *
+ * @param event_id The event ID to unsubscribe from
+ * @param observer The observer to be unsubscribed
+ */
+ void remove_observer(const Event::EventID& event_id,
+ EventObserver* const observer);
+
+ /*
+ * @brief Unsubscribes the observer from all events
+ *
+ * @param observer The observer to be unsubscribed
+ */
+ void remove_observer(EventObserver* const observer);
+
+ protected:
+
+ private:
+
+ /*
+ * @brief Default constructor
+ */
+ EventDispatcher();
+
+ /*
+ * @brief Destructor
+ */
+ virtual ~EventDispatcher();
+
+ DISALLOW_COPY_AND_ASSIGN(EventDispatcher);
+
+ FRIEND_BASE_SINGLETON_CLASS(EventDispatcher);
+
+ // Data types section
+ typedef std::list<EventObserver*> ObserverList;
+ typedef std::map<int32_t, ObserverList> ObserversMap;
+ typedef std::map<Event::EventID, ObserversMap> EventObserverMap;
+
+ // Members section
+ sync_primitives::Lock state_lock_;
+ EventObserverMap observers_;
+};
+
+}
+}
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_DISPATCHER_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_observer.h b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_observer.h
new file mode 100644
index 000000000..863120329
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/event_engine/event_observer.h
@@ -0,0 +1,116 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_OBSERVER_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_OBSERVER_H_
+
+#include <string>
+#include "application_manager/event_engine/event.h"
+#include "application_manager/event_engine/event_dispatcher.h"
+
+namespace application_manager {
+namespace event_engine {
+
+class EventObserver
+{
+ public:
+
+ friend class EventDispatcher;
+
+ // Typedef for possible Observer ID's from mobile_apis functionID enum
+ typedef unsigned long ObserverID;
+
+ /*
+ * @brief Constructor
+ *
+ */
+ EventObserver();
+
+ /*
+ * @brief Destructor
+ */
+ virtual ~EventObserver();
+
+ /**
+ * @brief Retrieves observer unique id
+ *
+ * @return Unique Observer id
+ */
+ inline const ObserverID& id() const;
+
+ /**
+ * @brief Interface method that is called whenever new event received
+ *
+ * @param event The received event
+ */
+ virtual void on_event(const Event& event) = 0;
+
+ protected:
+
+ /*
+ * @brief Subscribe to an event
+ *
+ * @param event_id The event ID to subscribe for
+ * @param hmi_correlation_id The event HMI correlation ID.
+ * If param is omitted, it means subscription for HMI notification
+ */
+ void subscribe_on_event(
+ const Event::EventID& event_id, int32_t hmi_correlation_id = 0);
+
+ /*
+ * @brief Unsubscribes the observer from specific event
+ *
+ * @param event_id The event ID to unsubscribe from
+ */
+ void unsubscribe_from_event(const Event::EventID& event_id);
+
+ /*
+ * @brief Unsubscribes the observer from all events
+ *
+ */
+ void unsubscribe_from_all_events();
+
+ private:
+
+ ObserverID id_;
+
+ DISALLOW_COPY_AND_ASSIGN(EventObserver);
+};
+
+const EventObserver::ObserverID& EventObserver::id() const {
+ return id_;
+}
+
+}
+}
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_EVENT_OBSERVER_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/hmi_capabilities.h b/SDL_Core/src/components/application_manager/include/application_manager/hmi_capabilities.h
new file mode 100644
index 000000000..2ac8fd9c4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/hmi_capabilities.h
@@ -0,0 +1,515 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_CAPABILITIES_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_CAPABILITIES_H_
+
+#include "interfaces/HMI_API.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+}
+}
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+namespace application_manager {
+
+class ApplicationManagerImpl;
+
+class HMICapabilities {
+
+ public:
+
+ /*
+ * @ Class constructor
+ *
+ * @param app_mngr Application manager pointer
+ */
+ explicit HMICapabilities(ApplicationManagerImpl* const app_mngr);
+
+ /*
+ * @brief Class destructor
+ *
+ */
+ virtual ~HMICapabilities();
+
+ /**
+ * @brief Checks if all HMI capabilities received
+ *
+ * @return TRUE if all information received, otherwise FALSE
+ */
+ bool is_hmi_capabilities_initialized() const;
+
+ /*
+ * @brief Checks is image type(Static/Dynamic) requested by
+ * Mobile Device is supported on current HMI.
+ * @param image_type recieved type of image from Enum.
+ * @return Bool true if supported
+ */
+ bool VerifyImageType(int32_t image_type) const;
+
+ /**
+ * @brief Checks if all HMI capabilities received
+ *
+ * @return TRUE if all information received, otherwise FALSE
+ */
+ inline bool is_vr_cooperating() const;
+ void set_is_vr_cooperating(bool value);
+
+ inline bool is_tts_cooperating() const;
+ void set_is_tts_cooperating(bool value);
+
+ inline bool is_ui_cooperating() const;
+ void set_is_ui_cooperating(bool value);
+
+ inline bool is_navi_cooperating() const;
+ void set_is_navi_cooperating(bool value);
+
+ inline bool is_ivi_cooperating() const;
+ void set_is_ivi_cooperating(bool value);
+
+ /*
+ * @brief Retrieves if mixing audio is supported by HMI
+ * (ie recording TTS command and playing audio)
+ *
+ * @return Current state of the mixing audio flag
+ */
+ inline bool attenuated_supported() const;
+
+ /*
+ * @brief Sets state for mixing audio
+ *
+ * @param state New state to be set
+ */
+ void set_attenuated_supported(bool state);
+
+ /*
+ * @brief Retrieves currently active UI language
+ *
+ * @return Currently active UI language
+ */
+ inline const hmi_apis::Common_Language::eType&
+ active_ui_language() const;
+
+ /*
+ * @brief Sets currently active UI language
+ *
+ * @param language Currently active UI language
+ */
+ void set_active_ui_language(const hmi_apis::Common_Language::eType& language);
+
+ /*
+ * @brief Retrieves UI supported languages
+ *
+ * @return Currently supported UI languages
+ */
+ inline const smart_objects::SmartObject*
+ ui_supported_languages() const;
+
+ /*
+ * @brief Sets supported UI languages
+ *
+ * @param supported_languages Supported UI languages
+ */
+ void set_ui_supported_languages(
+ const smart_objects::SmartObject& supported_languages);
+
+ /*
+ * @brief Retrieves currently active VR language
+ *
+ * @return Currently active VR language
+ */
+ inline const hmi_apis::Common_Language::eType&
+ active_vr_language() const;
+
+ /*
+ * @brief Sets currently active VR language
+ *
+ * @param language Currently active VR language
+ */
+ void set_active_vr_language(const hmi_apis::Common_Language::eType& language);
+
+ /*
+ * @brief Retrieves VR supported languages
+ *
+ * @return Currently supported VR languages
+ */
+ inline const smart_objects::SmartObject*
+ vr_supported_languages() const;
+
+ /*
+ * @brief Sets supported VR languages
+ *
+ * @param supported_languages Supported VR languages
+ */
+ void set_vr_supported_languages(
+ const smart_objects::SmartObject& supported_languages);
+
+ /*
+ * @brief Retrieves currently active TTS language
+ *
+ * @return Currently active TTS language
+ */
+ inline const hmi_apis::Common_Language::eType&
+ active_tts_language() const;
+
+ /*
+ * @brief Sets currently active TTS language
+ *
+ * @param language Currently active TTS language
+ */
+ void set_active_tts_language(
+ const hmi_apis::Common_Language::eType& language);
+
+ /*
+ * @brief Retrieves TTS supported languages
+ *
+ * @return Currently supported TTS languages
+ */
+ inline const smart_objects::SmartObject*
+ tts_supported_languages() const;
+
+ /*
+ * @brief Sets supported TTS languages
+ *
+ * @param supported_languages Supported TTS languages
+ */
+ void set_tts_supported_languages(
+ const smart_objects::SmartObject& supported_languages);
+
+ /*
+ * @brief Retrieves information about the display capabilities
+ *
+ * @return Currently supported display capabilities
+ */
+ inline const smart_objects::SmartObject*
+ display_capabilities() const;
+
+ /*
+ * @brief Sets supported display capabilities
+ *
+ * @param display_capabilities supported display capabilities
+ */
+ void set_display_capabilities(
+ const smart_objects::SmartObject& display_capabilities);
+
+ /*
+ * @brief Retrieves information about the HMI zone capabilities
+ *
+ * @return Currently supported HMI zone capabilities
+ */
+ inline const smart_objects::SmartObject*
+ hmi_zone_capabilities() const;
+
+ /*
+ * @brief Sets supported HMI zone capabilities
+ *
+ * @param hmi_zone_capabilities supported HMI zone capabilities
+ */
+ void set_hmi_zone_capabilities(
+ const smart_objects::SmartObject& hmi_zone_capabilities);
+
+ /*
+ * @brief Retrieves information about the SoftButton's capabilities
+ *
+ * @return Currently supported SoftButton's capabilities
+ */
+ inline const smart_objects::SmartObject*
+ soft_button_capabilities() const;
+
+ /*
+ * @brief Sets supported SoftButton's capabilities
+ *
+ * @param soft_button_capabilities supported SoftButton's capabilities
+ */
+ void set_soft_button_capabilities(
+ const smart_objects::SmartObject& soft_button_capabilities);
+
+ /*
+ * @brief Retrieves information about the Button's capabilities
+ *
+ * @return Currently supported Button's capabilities
+ */
+ inline const smart_objects::SmartObject* button_capabilities() const;
+
+ /*
+ * @brief Sets supported Button's capabilities
+ *
+ * @param soft_button_capabilities supported Button's capabilities
+ */
+ void set_button_capabilities(
+ const smart_objects::SmartObject& button_capabilities);
+
+ /*
+ * @brief Sets supported speech capabilities
+ *
+ * @param speech_capabilities supported speech capabilities
+ */
+ void set_speech_capabilities(
+ const smart_objects::SmartObject& speech_capabilities);
+
+ /*
+ * @brief Retrieves information about the speech capabilities
+ *
+ * @return Currently supported speech capabilities
+ */
+ inline const smart_objects::SmartObject* speech_capabilities() const;
+
+ /*
+ * @brief Sets supported VR capabilities
+ *
+ * @param vr_capabilities supported VR capabilities
+ */
+ void set_vr_capabilities(const smart_objects::SmartObject& vr_capabilities);
+
+ /*
+ * @brief Retrieves information about the VR capabilities
+ *
+ * @return Currently supported VR capabilities
+ */
+ inline const smart_objects::SmartObject* vr_capabilities() const;
+
+ /*
+ * @brief Sets supported audio_pass_thru capabilities
+ *
+ * @param vr_capabilities supported audio_pass_thru capabilities
+ */
+ void set_audio_pass_thru_capabilities(
+ const smart_objects::SmartObject& audio_pass_thru_capabilities);
+
+ /*
+ * @brief Retrieves information about the audio_pass_thru capabilities
+ *
+ * @return Currently supported audio_pass_thru capabilities
+ */
+ inline const smart_objects::SmartObject*
+ audio_pass_thru_capabilities() const;
+
+ /*
+ * @brief Retrieves information about the preset bank capabilities
+ *
+ * @return Currently supported preset bank capabilities
+ */
+ inline const smart_objects::SmartObject* preset_bank_capabilities() const;
+
+ /*
+ * @brief Sets supported preset bank capabilities
+ *
+ * @param soft_button_capabilities supported preset bank capabilities
+ */
+ void set_preset_bank_capabilities(
+ const smart_objects::SmartObject& preset_bank_capabilities);
+
+ /*
+ * @brief Sets vehicle information(make, model, modelYear)
+ *
+ * @param vehicle_type Cuurent vehicle information
+ */
+ void set_vehicle_type(const smart_objects::SmartObject& vehicle_type);
+
+ /*
+ * @brief Retrieves vehicle information(make, model, modelYear)
+ *
+ * @param vehicle_type Cuurent vehicle information
+ */
+ inline const smart_objects::SmartObject* vehicle_type() const;
+
+ /*
+ * @brief Retrieves information about the prerecorded speech
+ *
+ * @return Currently supported prerecorded speech
+ */
+ inline const smart_objects::SmartObject* prerecorded_speech() const;
+
+ /*
+ * @brief Sets supported prerecorded speech
+ *
+ * @param prerecorded_speech supported prerecorded speech
+ */
+ void set_prerecorded_speech(
+ const smart_objects::SmartObject& prerecorded_speech);
+
+
+ protected:
+
+ /*
+ * @brief Loads capabilities from local file in case SDL was launched
+ * without HMI
+ *
+ * @return TRUE if capabilities loaded successfully, otherwise FALSE.
+ */
+ bool load_capabilities_from_file();
+
+ private:
+ bool is_vr_cooperating_;
+ bool is_tts_cooperating_;
+ bool is_ui_cooperating_;
+ bool is_navi_cooperating_;
+ bool is_ivi_cooperating_;
+
+ // to check if IsReady response for corresponding interface received
+ bool is_vr_ready_response_recieved_;
+ bool is_tts_ready_response_recieved_;
+ bool is_ui_ready_response_recieved_;
+ bool is_navi_ready_response_recieved_;
+ bool is_ivi_ready_response_recieved_;
+
+ bool attenuated_supported_;
+ hmi_apis::Common_Language::eType ui_language_;
+ hmi_apis::Common_Language::eType vr_language_;
+ hmi_apis::Common_Language::eType tts_language_;
+ smart_objects::SmartObject* vehicle_type_;
+ smart_objects::SmartObject* ui_supported_languages_;
+ smart_objects::SmartObject* tts_supported_languages_;
+ smart_objects::SmartObject* vr_supported_languages_;
+ smart_objects::SmartObject* display_capabilities_;
+ smart_objects::SmartObject* hmi_zone_capabilities_;
+ smart_objects::SmartObject* soft_buttons_capabilities_;
+ smart_objects::SmartObject* button_capabilities_;
+ smart_objects::SmartObject* preset_bank_capabilities_;
+ smart_objects::SmartObject* vr_capabilities_;
+ smart_objects::SmartObject* speech_capabilities_;
+ smart_objects::SmartObject* audio_pass_thru_capabilities_;
+ smart_objects::SmartObject* prerecorded_speech_;
+
+ ApplicationManagerImpl* app_mngr_;
+
+ DISALLOW_COPY_AND_ASSIGN(HMICapabilities);
+};
+
+bool HMICapabilities::is_ui_cooperating() const {
+ return is_ui_cooperating_;
+}
+
+bool HMICapabilities::is_vr_cooperating() const {
+ return is_vr_cooperating_;
+}
+
+bool HMICapabilities::is_tts_cooperating() const {
+ return is_tts_cooperating_;
+}
+
+bool HMICapabilities::is_navi_cooperating() const {
+ return is_navi_cooperating_;
+}
+
+bool HMICapabilities::is_ivi_cooperating() const {
+ return is_ivi_cooperating_;
+}
+
+const hmi_apis::Common_Language::eType&
+HMICapabilities::active_ui_language() const {
+ return ui_language_;
+}
+
+const smart_objects::SmartObject*
+HMICapabilities::ui_supported_languages() const {
+ return ui_supported_languages_;
+}
+
+const hmi_apis::Common_Language::eType&
+HMICapabilities::active_vr_language() const {
+ return vr_language_;
+}
+
+const smart_objects::SmartObject*
+HMICapabilities::vr_supported_languages() const {
+ return vr_supported_languages_;
+}
+
+const hmi_apis::Common_Language::eType&
+HMICapabilities::active_tts_language() const {
+ return tts_language_;
+}
+
+const smart_objects::SmartObject*
+HMICapabilities::tts_supported_languages() const {
+ return tts_supported_languages_;
+}
+
+const smart_objects::SmartObject*
+HMICapabilities::display_capabilities() const {
+ return display_capabilities_;
+}
+
+const smart_objects::SmartObject*
+HMICapabilities::hmi_zone_capabilities() const {
+ return hmi_zone_capabilities_;
+}
+
+const smart_objects::SmartObject*
+HMICapabilities::soft_button_capabilities() const {
+ return soft_buttons_capabilities_;
+}
+
+const smart_objects::SmartObject* HMICapabilities::button_capabilities() const {
+ return button_capabilities_;
+}
+
+const smart_objects::SmartObject*
+HMICapabilities::speech_capabilities() const {
+ return speech_capabilities_;
+}
+
+const smart_objects::SmartObject* HMICapabilities::vr_capabilities() const {
+ return vr_capabilities_;
+}
+
+const smart_objects::SmartObject*
+HMICapabilities::audio_pass_thru_capabilities() const {
+ return audio_pass_thru_capabilities_;
+}
+
+const smart_objects::SmartObject*
+HMICapabilities::preset_bank_capabilities() const {
+ return preset_bank_capabilities_;
+}
+
+bool HMICapabilities::attenuated_supported() const {
+ return attenuated_supported_;
+}
+
+const smart_objects::SmartObject* HMICapabilities::vehicle_type() const {
+ return vehicle_type_;
+}
+
+const smart_objects::SmartObject*
+HMICapabilities::prerecorded_speech() const {
+ return prerecorded_speech_;
+}
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_CAPABILITIES_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/hmi_command_factory.h b/SDL_Core/src/components/application_manager/include/application_manager/hmi_command_factory.h
new file mode 100644
index 000000000..de0fa7e25
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/hmi_command_factory.h
@@ -0,0 +1,65 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_COMMAND_FACTORY_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_COMMAND_FACTORY_H_
+
+#include "application_manager/commands/command.h"
+#include "utils/macro.h"
+#include "utils/logger.h"
+
+namespace application_manager {
+
+typedef utils::SharedPtr<commands::Command> CommandSharedPtr;
+
+/**
+ * @brief Factory class for command creation
+ **/
+class HMICommandFactory {
+ public:
+ /**
+ * @brief Create command object and return pointer to it
+ *
+ * @param smartObject SmartObject shared pointer.
+ * @return Pointer to created command object.
+ **/
+ static CommandSharedPtr CreateCommand(const MessageSharedPtr& message);
+
+ private:
+ HMICommandFactory();
+ static log4cxx::LoggerPtr logger_;
+ DISALLOW_COPY_AND_ASSIGN(HMICommandFactory);
+};
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_HMI_COMMAND_FACTORY_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/message.h b/SDL_Core/src/components/application_manager/include/application_manager/message.h
new file mode 100644
index 000000000..0b439c245
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/message.h
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_H_
+
+#include <string>
+#include <vector>
+
+#include "utils/shared_ptr.h"
+#include "protocol_handler/message_priority.h"
+#include "smart_objects/smart_object.h"
+#include "protocol_handler/rpc_type.h"
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+namespace application_manager {
+
+typedef std::vector<uint8_t> BinaryData;
+
+// Message type is a general type used by both mobile and HMI messages
+enum MessageType {
+ kUnknownType = -1,
+ kRequest = 0,
+ kResponse = 1,
+ kNotification = 2,
+ kErrorResponse = 3
+};
+
+// Map PrcType to corresponding MessageType
+MessageType MessageTypeFromRpcType(protocol_handler::RpcType rpc_type);
+
+enum ProtocolVersion {
+ kUnknownProtocol = -1,
+ kHMI = 0,
+ kV1 = 1,
+ kV2 = 2
+};
+
+class Message {
+ public:
+ Message(protocol_handler::MessagePriority priority);
+ Message(const Message& message);
+ Message& operator=(const Message& message);
+ bool operator==(const Message& message);
+ ~Message();
+
+ //! --------------------------------------------------------------------------
+ int32_t function_id() const;
+ int32_t correlation_id() const;
+ int32_t connection_key() const;
+
+ MessageType type() const;
+ ProtocolVersion protocol_version() const;
+
+ const std::string& json_message() const;
+ const BinaryData* binary_data() const;
+ bool has_binary_data() const;
+ const smart_objects::SmartObject& smart_object() const;
+
+ //! --------------------------------------------------------------------------
+ void set_function_id(int32_t id);
+ void set_correlation_id(int32_t id);
+ void set_connection_key(int32_t key);
+ void set_message_type(MessageType type);
+ void set_binary_data(BinaryData* data);
+ void set_json_message(const std::string& json_message);
+ void set_protocol_version(ProtocolVersion version);
+ void set_smart_object(const smart_objects::SmartObject& object);
+
+ protocol_handler::MessagePriority Priority() const { return priority_; }
+
+ private:
+ int32_t function_id_; // @remark protocol V2.
+ int32_t correlation_id_; // @remark protocol V2.
+ MessageType type_; // @remark protocol V2.
+
+ // Pre-calculated message priority, higher priority messages are
+ // Processed first
+ protocol_handler::MessagePriority priority_;
+
+ int32_t connection_key_;
+ ProtocolVersion version_;
+ std::string json_message_;
+ smart_objects::SmartObject smart_object_;
+
+ // TODO(akandul): replace with shared_ptr
+ BinaryData* binary_data_;
+};
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/message_helper.h b/SDL_Core/src/components/application_manager/include/application_manager/message_helper.h
new file mode 100644
index 000000000..a65321690
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/message_helper.h
@@ -0,0 +1,351 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_HELPER_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_HELPER_H_
+
+#include <map>
+#include <string>
+#include "interfaces/MOBILE_API.h"
+#include "utils/macro.h"
+#include "connection_handler/device.h"
+#include "application_manager/application.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+}
+}
+
+namespace application_manager {
+namespace mobile_api = mobile_apis;
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+/*
+ * @brief Typedef for HMI TextFieldName type
+ */
+typedef enum {
+ MAIN_FILED1 = 0,
+ MAIN_FILED2,
+ MAIN_FILED3,
+ MAIN_FILED4,
+ STATUS_BAR,
+ MEDIA_CLOCK,
+ MEDIA_TRACK,
+ ALERT_TEXT1,
+ ALERT_TEXT2,
+ ALERT_TEXT3,
+ SCROLLABLE_MSG_BODY,
+ INITIAL_INTERACTION_TEXT,
+ NAVI_TEXT1,
+ NAVI_TEXT2,
+ ETA,
+ TOTAL_DISTANCE,
+ NAVI_TEXT,
+ AUDIO_DISPLAY_TEXT1,
+ AUDIO_DISPLAY_TEXT2,
+ SLIDER_HADER,
+ SLIDER_FOOTEER
+} TextFieldName;
+
+/*
+ * @brief Typedef for the vehicle data types that can
+ * be published and subscribed to
+ */
+typedef enum {
+ GPS = 0,
+ SPEED,
+ RPM,
+ FUELLEVEL,
+ FUELLEVEL_STATE,
+ FUELCONSUMPTION,
+ EXTERNTEMP,
+ VIN,
+ PRNDL,
+ TIREPRESSURE,
+ ODOMETER,
+ BELTSTATUS,
+ BODYINFO,
+ DEVICESTATUS,
+ ECALLINFO,
+ AIRBAGSTATUS,
+ EMERGENCYEVENT,
+ CLUSTERMODESTATUS,
+ MYKEY,
+ BRAKING,
+ WIPERSTATUS,
+ HEADLAMPSTATUS,
+ BATTVOLTAGE,
+ ENGINETORQUE,
+ ACCPEDAL,
+ STEERINGWHEEL
+} VehicleDataType;
+
+/*
+ * @brief Typedef for VehicleData
+ *
+ * @param const char* Name of the parameter in mobile request
+ * @param VehicleDataType Enum for vehicle data
+ */
+typedef std::map<const char*, VehicleDataType> VehicleData;
+
+/**
+ * @brief MessageHelper class
+ **/
+class MessageHelper {
+ public:
+
+ typedef std::vector<smart_objects::SmartObject*> SmartObjectList;
+
+ /**
+ * @brief Sends HMI status notification to mobile
+ *
+ *@param application_impl application with changed HMI status
+ *
+ **/
+ static void SendHMIStatusNotification(const Application& application_impl);
+
+ /**
+ * @brief Sends OnAppRegistered notification to HMI
+ *
+ *@param application_impl application with changed HMI status
+ *
+ **/
+ static void SendOnAppRegisteredNotificationToHMI(
+ const Application& application_impl);
+
+ /**
+ * @brief Sendss Vr Command 'Help'
+ */
+ static void SendHelpVrCommand();
+
+ /**
+ * @brief Create mobile HashUpdateNotification
+ */
+ static smart_objects::SmartObject* GetHashUpdateNotification(const uint32_t app_id);
+
+ /**
+ * @brief Sends to mobile HashUpdateNotification
+ */
+ static void SendHashUpdateNotification(const uint32_t app_id);
+
+ /**
+ * @brief Removes Vr Synonyms of application name from HMI
+ * when unregistering application.
+ */
+ static void SendRemoveVrCommandsOnUnregisterApp(ApplicationConstSharedPtr app);
+
+ /**
+ * @brief Sends OnAppInterfaceUnregistered notification to mobile
+ *
+ *@param connection_key Connection key
+ *@param reason Reason
+ *
+ **/
+ static void SendOnAppInterfaceUnregisteredNotificationToMobile(
+ int32_t connection_key,
+ mobile_apis::AppInterfaceUnregisteredReason::eType reason);
+
+ /*
+ * @brief Retrieve vehicle data map for param name in mobile request
+ * to VehicleDataType
+ *
+ * @return VehicleData reference
+ */
+ static const VehicleData& vehicle_data();
+
+ static smart_objects::SmartObject* CreateBlockedByPoliciesResponse(
+ mobile_apis::FunctionID::eType function_id,
+ mobile_apis::Result::eType result, uint32_t correlation_id,
+ uint32_t connection_key);
+
+ /*
+ * @brief Prepare GetDeviceListResponse
+ *
+ *
+ * @param devices Devices list
+ *
+ */
+ static smart_objects::SmartObject* CreateDeviceListSO(
+ const connection_handler::DeviceList& devices);
+
+ static smart_objects::SmartObject* CreateModuleInfoSO(
+ uint32_t function_id);
+
+ static smart_objects::SmartObject* CreateSetAppIcon(
+ const std::string& path_to_icon, uint32_t app_id);
+
+ /**
+ * @brief Sends IVI subscriptions
+ */
+ static bool SendIVISubscribtions(const uint32_t app_id);
+
+ /**
+ * @brief Sends IVI subscriptions
+ */
+ static SmartObjectList GetIVISubscribtionRequests(const uint32_t app_id);
+
+ static void SendAppDataToHMI(ApplicationConstSharedPtr app);
+ static void SendGlobalPropertiesToHMI(ApplicationConstSharedPtr app);
+ static SmartObjectList CreateGlobalPropertiesRequestsToHMI(ApplicationConstSharedPtr app);
+
+ static smart_objects::SmartObject* CreateAppVrHelp(ApplicationConstSharedPtr app);
+
+ static void SendShowRequestToHMI(ApplicationConstSharedPtr app);
+ static void SendShowConstantTBTRequestToHMI(ApplicationConstSharedPtr app);
+ static void SendAddCommandRequestToHMI(ApplicationConstSharedPtr app);
+ static SmartObjectList CreateAddCommandRequestToHMI(ApplicationConstSharedPtr app);
+
+ static void SendChangeRegistrationRequestToHMI(ApplicationConstSharedPtr app);
+ static void SendAddVRCommandToHMI(
+ uint32_t cmd_id, const smart_objects::SmartObject& vr_commands,
+ uint32_t app_id);
+
+ static smart_objects::SmartObject* CreateAddVRCommandToHMI(
+ uint32_t cmd_id, const smart_objects::SmartObject& vr_commands,
+ uint32_t app_id);
+
+ static void SendAddSubMenuRequestToHMI(ApplicationConstSharedPtr app);
+ static SmartObjectList CreateAddSubMenuRequestToHMI(ApplicationConstSharedPtr app);
+
+ static void RemoveAppDataFromHMI(ApplicationSharedPtr app);
+ static void SendOnSdlCloseNotificationToHMI();
+ static void SendOnAppUnregNotificationToHMI(ApplicationConstSharedPtr app);
+ static void SendDeleteCommandRequestToHMI(ApplicationConstSharedPtr app);
+ static void SendDeleteSubMenuRequestToHMI(ApplicationConstSharedPtr app);
+ static void ResetGlobalproperties(ApplicationSharedPtr app);
+
+ static void SendActivateAppToHMI(uint32_t const app_id);
+
+
+ /*
+ * @brief Sends notification to HMI to start video streaming
+ *
+ * @param url URL for video streamng
+ * @param connection_key Application connection key
+ *
+ */
+ static void SendNaviStartStream(const std::string& url, int32_t connection_key);
+
+ /*
+ * @brief Sends notification to HMI to stop video streaming
+ *
+ * @param connection_key Application connection key
+ *
+ */
+ static void SendNaviStopStream(int32_t connection_key);
+
+ /*
+ * @brief Sends notification to HMI to start audio streaming
+ *
+ * @param url URL for video streamng
+ * @param connection_key Application connection key
+ *
+ */
+ static void SendAudioStartStream(const std::string& url, int32_t connection_key);
+
+ /*
+ * @brief Sends notification to HMI to stop audio streaming
+ *
+ * @param connection_key Application connection key
+ *
+ */
+ static void SendAudioStopStream(int32_t connection_key);
+
+ /*
+ * @brief Sends notification to HMI to stop audioPathThru
+ *
+ * @param connection_key Application connection key
+ *
+ * @return TRUE on SUCCES otherwise return FALSE
+ */
+ static bool SendStopAudioPathThru();
+
+ static smart_objects::SmartObject* CreateNegativeResponse(
+ uint32_t connection_key, int32_t function_id, uint32_t correlation_id,
+ int32_t result_code);
+
+ /*
+ * @brief Verify image and add image file full path
+ *
+ * @param SmartObject with image
+ *
+ * @param app current application
+ *
+ * @return verification result
+ *
+ */
+ static mobile_apis::Result::eType VerifyImage(smart_objects::SmartObject& image,
+ ApplicationConstSharedPtr app);
+
+ /*
+ * @brief Finds "Image" structure in request and verify image file presence
+ * in Core.
+ *
+ * @param message SmartObject with request
+ *
+ * @param app current application
+ *
+ * @return verification result
+ *
+ */
+ static mobile_apis::Result::eType VerifyImageFiles(
+ smart_objects::SmartObject& message, ApplicationConstSharedPtr app);
+
+ static bool VerifySoftButtonText(smart_objects::SmartObject& soft_button);
+
+ static mobile_apis::Result::eType ProcessSoftButtons(
+ smart_objects::SmartObject& message_params,
+ ApplicationConstSharedPtr app);
+
+ static bool PrintSmartObject(const smart_objects::SmartObject& object);
+
+ template<typename From, typename To>
+ static To ConvertEnumAPINoCheck(const From& input) {
+ return static_cast<To>(input);
+ }
+
+ private:
+ static smart_objects::SmartObject* CreateChangeRegistration(
+ int32_t function_id, int32_t language, uint32_t app_id);
+ static smart_objects::SmartObject* CreateGeneralVrCommand();
+ static void SendRemoveCommandToHMI(int32_t function_id, int32_t command_id,
+ uint32_t app_id);
+ MessageHelper();
+
+ static const VehicleData vehicle_data_;
+ DISALLOW_COPY_AND_ASSIGN(MessageHelper);
+};
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MESSAGE_HELPER_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/mobile_command_factory.h b/SDL_Core/src/components/application_manager/include/application_manager/mobile_command_factory.h
new file mode 100644
index 000000000..ecfe41f0a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/mobile_command_factory.h
@@ -0,0 +1,63 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_COMMAND_FACTORY_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_COMMAND_FACTORY_H_
+
+#include "application_manager/commands/command.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+
+typedef utils::SharedPtr<commands::Command> CommandSharedPtr;
+
+/**
+ * @brief Factory class for command creation
+ **/
+class MobileCommandFactory {
+ public:
+ /**
+ * @brief Create command object and return pointer to it
+ *
+ * @param smartObject SmartObject shared pointer.
+ * @return Pointer to created command object.
+ **/
+ static CommandSharedPtr CreateCommand(const MessageSharedPtr& message);
+
+ private:
+ MobileCommandFactory();
+ DISALLOW_COPY_AND_ASSIGN(MobileCommandFactory);
+};
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_COMMAND_FACTORY_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/mobile_message_handler.h b/SDL_Core/src/components/application_manager/include/application_manager/mobile_message_handler.h
new file mode 100644
index 000000000..5d7be9a34
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/mobile_message_handler.h
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_MESSAGE_HANDLER_IMPL_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_MESSAGE_HANDLER_IMPL_H_
+
+#include "utils/macro.h"
+#include "utils/logger.h"
+#include "protocol_handler/raw_message.h"
+#include "application_manager/message.h"
+
+namespace application_manager {
+typedef utils::SharedPtr<application_manager::Message> MobileMessage;
+class MobileMessageHandler {
+ public:
+ static application_manager::Message* HandleIncomingMessageProtocolV1(
+ const protocol_handler::RawMessagePtr& message);
+
+ static application_manager::Message* HandleIncomingMessageProtocolV2(
+ const protocol_handler::RawMessagePtr& message);
+
+ //! -------------------------------------------------------------
+
+ static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV1(
+ const MobileMessage& message);
+
+ static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV2(
+ const MobileMessage& message);
+
+ //! -------------------------------------------------------------
+ private:
+ static log4cxx::LoggerPtr logger_;
+
+ DISALLOW_COPY_AND_ASSIGN(MobileMessageHandler);
+};
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_MOBILE_MESSAGE_HANDLER_IMPL_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/policies_manager/policies_manager.h b/SDL_Core/src/components/application_manager/include/application_manager/policies_manager/policies_manager.h
new file mode 100644
index 000000000..e401bc7e3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/policies_manager/policies_manager.h
@@ -0,0 +1,73 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_POLICIES_MANAGER_POLICIES_MANAGER_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_POLICIES_MANAGER_POLICIES_MANAGER_H_
+
+#include <map>
+#include <vector>
+#include <string>
+#include <utility>
+
+#include "interfaces/MOBILE_API.h"
+
+#include "utils/logger.h"
+#include "utils/macro.h"
+
+namespace application_manager {
+namespace policies_manager {
+
+typedef mobile_apis::FunctionID::eType ItemName;
+typedef std::vector<mobile_apis::HMILevel::eType> HmiLevels;
+typedef std::pair<ItemName, HmiLevels> PoliciesItem;
+typedef std::map<ItemName, HmiLevels> PoliciesItems;
+
+class PoliciesManager {
+ public:
+ PoliciesManager();
+ ~PoliciesManager();
+
+ bool Init();
+ bool IsValidHmiStatus(mobile_apis::FunctionID::eType function,
+ mobile_apis::HMILevel::eType status);
+
+ private:
+ PoliciesItems items_;
+ static log4cxx::LoggerPtr logger_;
+
+ DISALLOW_COPY_AND_ASSIGN(PoliciesManager);
+};
+
+} // namespace policies_manager
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_POLICIES_MANAGER_POLICIES_MANAGER_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/request_controller.h b/SDL_Core/src/components/application_manager/include/application_manager/request_controller.h
new file mode 100644
index 000000000..b05e372a0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/request_controller.h
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_REQUEST_CONTROLLER_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_REQUEST_CONTROLLER_H_
+
+#include <list>
+#include "utils/lock.h"
+#include "interfaces/MOBILE_API.h"
+#include "request_watchdog/request_watchdog.h"
+#include "request_watchdog/watchdog_subscriber.h"
+#include "application_manager/commands/command.h"
+
+namespace application_manager {
+
+namespace request_controller {
+
+/*
+ * @brief RequestController class is used to control currently active mobile
+ * requests.
+ */
+class RequestController: public request_watchdog::WatchdogSubscriber {
+ public:
+
+ // Data types
+
+ /*
+ * @brief Typedef for active mobile request
+ *
+ */
+ typedef utils::SharedPtr<commands::Command> Request;
+
+ /**
+ * @brief Synchronizing state identifiers
+ */
+ enum TResult
+ {
+ SUCCESS = 0,
+ TOO_MANY_REQUESTS,
+ TOO_MANY_PENDING_REQUESTS,
+ NONE_HMI_LEVEL_MANY_REQUESTS
+ };
+
+ // Methods
+ /*
+ * @brief Class constructor
+ *
+ */
+ RequestController();
+
+ /*
+ * @brief Class destructor
+ *
+ */
+ virtual ~RequestController();
+
+ /*
+ * @brief Check if max request amount wasn't exceed and adds request to queue.
+ *
+ * @param request Active mobile request
+ * @param hmi_level Current application hmi_level
+ *
+ * @return Result code
+ *
+ */
+ TResult addRequest(const Request& request,
+ const mobile_apis::HMILevel::eType& hmi_level);
+
+ /*
+ * @brief Removes request from queue
+ *
+ * @param mobile_corellation_id Active mobile request correlation ID
+ *
+ */
+ void terminateRequest(const uint32_t& mobile_correlation_id);
+
+ /*
+ * @brief Removes all requests from queue for specified application
+ *
+ * @param app_id Mobile application ID
+ *
+ */
+ void terminateAppRequests(const uint32_t& app_id);
+
+ /**
+ * @ Updates request timeout
+ *
+ * @param connection_key Connection key of application
+ * @param mobile_correlation_id Correlation ID of the mobile request
+ * @param new_timeout_value New timeout to be set
+ */
+ void updateRequestTimeout(const uint32_t& connection_key,
+ const uint32_t& mobile_correlation_id,
+ const uint32_t& new_timeout);
+
+ /*
+ * @brief Notify subscriber that expired entry should be removed
+ * using Watchdog::removeRequest(int32_t connection_key, int32_t correlation_id)
+ *
+ * @param RequestInfo Request related information
+ */
+ void onTimeoutExpired(const request_watchdog::RequestInfo& info);
+
+ protected:
+
+ private:
+
+ std::list<Request> request_list_;
+ sync_primitives::Lock request_list_lock_;
+ request_watchdog::Watchdog* watchdog_;
+
+ DISALLOW_COPY_AND_ASSIGN(RequestController);
+};
+
+} // namespace request_controller
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_REQUEST_CONTROLLER_H_
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/resume_ctrl.h b/SDL_Core/src/components/application_manager/include/application_manager/resume_ctrl.h
new file mode 100644
index 000000000..2142d05cb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/resume_ctrl.h
@@ -0,0 +1,221 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_RESUME_CTRL_H
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_RESUME_CTRL_H
+
+#include <cstdint>
+#include <vector>
+#include <map>
+#include <set>
+#include <list>
+
+#include "json/json.h"
+#include "interfaces/HMI_API.h"
+#include "interfaces/HMI_API_schema.h"
+#include "interfaces/MOBILE_API_schema.h"
+#include "connection_handler/connection_handler_observer.h"
+#include "connection_handler/device.h"
+#include "application_manager/event_engine/event_observer.h"
+#include "smart_objects/smart_object.h"
+#include "application_manager/application.h"
+
+namespace application_manager {
+
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+class ApplicationManagerImpl;
+class Application;
+class ResumeCtrl: public event_engine::EventObserver {
+
+ mutable sync_primitives::Lock queue_lock_;
+
+ public:
+
+ /**
+ * @brief Constructor
+ * @param app_mngr ApplicationManager pointer
+ */
+ explicit ResumeCtrl(ApplicationManagerImpl* app_mngr);
+
+ /**
+ * @brief Event, that raised if application get resumption response from HMI
+ * @param event : event object, that contains smart_object with HMI message
+ */
+ virtual void on_event(const event_engine::Event& event);
+
+ /**
+ * @brief Save all applications info to the file system
+ */
+ void SaveAllApplications();
+
+ /**
+ * @brief Save application persistent info for future resuming
+ * @param application is application witch need to be saved
+ * In case of IGN_OFF or Ctl-C or MEATER_RESSET this info will save to to file system
+ */
+ void SaveApplication(ApplicationConstSharedPtr application);
+
+ /**
+ * @brief Load unregistered applications info from the file system
+ * You can use this function only if connection handler is ready
+ */
+ void LoadApplications();
+
+ /**
+ * @brief Set application HMI Level as saved
+ * @param application is application witch HMI Level is need to restore
+ * @return true if success, otherwise return false
+ */
+ bool RestoreApplicationHMILevel(ApplicationSharedPtr application);
+
+ /**
+ * @brief Set application HMI Level as saved
+ * @param application is application witch HMI Level is need to restore
+ * @return true if success, otherwise return false
+ */
+ bool RestoreApplicationData(ApplicationSharedPtr application);
+
+ /**
+ * @brief Check if Resume controller have saved instance of application
+ * @param application is application witch need to be checked
+ * @return true if exist, false otherwise
+ */
+ bool ApplicationIsSaved(ApplicationConstSharedPtr application);
+
+ /**
+ * @brief Remove application from list of saved applications
+ * @param application is application witch need to be removed
+ * @return return true, if success, otherwise return false
+ */
+ bool RemoveApplicationFromSaved(ApplicationConstSharedPtr application);
+
+ /**
+ * @brief Save application info to FileSystem
+ */
+ void SavetoFileSystem();
+
+ /**
+ * @brief Start timer for resumption applications
+ * @param application that is need to be restored
+ * @return true if it was saved, otherwise return false
+ */
+ bool StartResumption(ApplicationSharedPtr application, uint32_t hash);
+
+ /**
+ * @brief Check application hash
+ * @param application that is need to be restored
+ * @return true if it was saved, otherwise return false
+ */
+ bool CheckApplicationHash(uint32_t app_id, uint32_t hash);
+
+ /**
+ * @brief Timer callback function
+ *
+ */
+ void onTimer();
+
+ private:
+
+ timer::TimerThread<ResumeCtrl> timer_;
+ /**
+ * @brief This struct need to map
+ * timestamp and application from correlationID
+ */
+ struct ResumingApp {
+ uint32_t old_session_key; // session key is the same as app_id
+ ApplicationSharedPtr app;
+ };
+
+ static log4cxx::LoggerPtr logger_;
+
+ /**
+ * @brief Time step to check resumption TIME_OUT
+ */
+ static const uint32_t kTimeStep = 3;
+
+ /**
+ *@brief Data of applications, that whait for resuming
+ */
+ std::vector<Json::Value> saved_applications_;
+
+ typedef std::pair<uint32_t, uint32_t> application_timestamp;
+ struct TimeStampComparator {
+ bool operator() (const application_timestamp& lhs,
+ const application_timestamp& rhs) const{
+ return lhs.second < rhs.second;
+ }
+ };
+
+ /**
+ *@brief Mapping applications to time_stamps
+ * wait for timer to resume HMI Level
+ *
+ */
+ std::set<application_timestamp, TimeStampComparator> waiting_for_timer_;
+
+
+ ApplicationManagerImpl* app_mngr_;
+
+ /**
+ * @brief times of IGN_OFF that zombie application have to be saved.
+ */
+ static const uint32_t kApplicationLifes = 3;
+
+
+ /**
+ * @brief Check if Resume controller have saved instance of application
+ * @param app_id - application id witch is the same as session_key or connection_key
+ * @return true if exist, false otherwise
+ */
+ bool ApplicationIsSaved(const uint32_t app_id);
+
+ Json::Value GetApplicationCommands(const uint32_t app_id);
+ Json::Value GetApplicationInteractionChoiseSets(const uint32_t app_id);
+ Json::Value GetApplicationGlobalProperties(const uint32_t app_id);
+ Json::Value GetApplicationSubscriptions(const uint32_t app_id);
+ Json::Value GetApplicationFiles(const uint32_t app_id);
+
+ Json::Value JsonFromSO(const NsSmartDeviceLink::NsSmartObjects::SmartObject *so);
+
+ void SendHMIRequest(const hmi_apis::FunctionID::eType& function_id,
+ const smart_objects::SmartObject* msg_params = NULL,
+ bool use_events = false);
+
+ bool ProcessHMIRequest(
+ NsSmartDeviceLink::NsSmartObjects::SmartObject* request = NULL,
+ bool use_events = false);
+};
+
+} // namespace application_manager
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_RESUME_CTRL_H
diff --git a/SDL_Core/src/components/application_manager/include/application_manager/smart_object_keys.h b/SDL_Core/src/components/application_manager/include/application_manager/smart_object_keys.h
new file mode 100644
index 000000000..e76bbe0d0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/include/application_manager/smart_object_keys.h
@@ -0,0 +1,312 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_SMART_OBJECT_KEYS_H_
+#define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_SMART_OBJECT_KEYS_H_
+
+namespace application_manager {
+
+namespace strings {
+
+const char params[] = "params";
+const char message_type[] = "message_type";
+const char correlation_id[] = "correlation_id";
+const char function_id[] = "function_id";
+const char protocol_version[] = "protocol_version";
+const char protocol_type[] = "protocol_type";
+const char connection_key[] = "connection_key";
+const char error[] = "error";
+const char error_msg[] = "message";
+
+const char msg_params[] = "msg_params";
+const char info[] = "info";
+const char app_id[] = "appID";
+const char url[] = "url";
+const char cmd_icon[] = "cmdIcon";
+const char result_code[] = "resultCode";
+const char success[] = "success";
+const char sync_msg_version[] = "syncMsgVersion";
+const char major_version[] = "majorVersion";
+const char minor_version[] = "minorVersion";
+const char app_name[] = "appName";
+const char ngn_media_screen_app_name[] = "ngnMediaScreenAppName";
+const char vr_synonyms[] = "vrSynonyms";
+const char uses_vehicle_data[] = "usesVehicleData";
+const char is_media_application[] = "isMediaApplication";
+const char language_desired[] = "languageDesired";
+const char auto_activated_id[] = "autoActivateID";
+const char app_type[] = "appType";
+const char app_hmi_type[] = "appHMIType";
+const char tts_name[] = "ttsName";
+const char binary_data[] = "binary_data";
+const char timeout_prompt[] = "timeoutPrompt";
+const char timeout[] = "timeout";
+const char vr_help_title[] = "vrHelpTitle";
+const char vr_help[] = "vrHelp";
+const char main_field_1[] = "mainField1";
+const char main_field_2[] = "mainField2";
+const char main_field_3[] = "mainField3";
+const char main_field_4[] = "mainField4";
+const char eta[] = "eta";
+const char time_to_destination[] = "timeToDestination";
+const char total_distance[] = "totalDistance";
+const char alignment[] = "alignment";
+const char graphic[] = "graphic";
+const char secondary_graphic[] = "secondaryGraphic";
+const char status_bar[] = "statusBar";
+const char media_clock[] = "mediaClock";
+const char media_track[] = "mediaTrack";
+const char properties[] = "properties";
+const char cmd_id[] = "cmdID";
+const char menu_params[] = "menuParams";
+const char menu_title[] = "menuTitle";
+const char menu_icon[] = "menuIcon";
+const char keyboard_properties[] = "keyboardProperties";
+const char vr_commands[] = "vrCommands";
+const char position[] = "position";
+const char num_ticks[] = "numTicks";
+const char slider_footer[] = "sliderFooter";
+const char menu_id[] = "menuID";
+const char menu_name[] = "menuName";
+const char interaction_choice_set_id[] = "interactionChoiceSetID";
+const char interaction_choice_set_id_list[] = "interactionChoiceSetIDList";
+const char choice_set[] = "choiceSet";
+const char choice_id[] = "choiceID";
+const char navigation_text_1[] = "navigationText1";
+const char navigation_text_2[] = "navigationText2";
+const char alert_text1[] = "alertText1";
+const char alert_text2[] = "alertText2";
+const char alert_text3[] = "alertText3";
+const char tts_chunks[] = "ttsChunks";
+const char initial_prompt[] = "initialPrompt";
+const char initial_text[] = "initialText";
+const char duration[] = "duration";
+const char progress_indicator[] = "progressIndicator";
+const char play_tone[] = "playTone";
+const char soft_buttons[] = "softButtons";
+const char custom_presets[] = "customPresets";
+const char audio_pass_display_text1[] = "audioPassThruDisplayText1";
+const char audio_pass_display_text2[] = "audioPassThruDisplayText2";
+const char max_duration[] = "maxDuration";
+const char sampling_rate[] = "samplingRate";
+const char bits_per_sample[] = "bitsPerSample";
+const char audio_type[] = "audioType";
+const char button_name[] = "buttonName";
+const char button_event_mode[] = "buttonEventMode";
+const char button_press_mode[] = "buttonPressMode";
+const char custom_button_id[] = "customButtonID";
+const char data_type[] = "dataType";
+const char turn_list[] = "turnList";
+const char turn_icon[] = "turnIcon";
+const char next_turn_icon[] = "nextTurnIcon";
+const char value[] = "value";
+const char hmi_display_language[] = "hmiDisplayLanguage";
+const char language[] = "language";
+const char data[] = "data";
+const char start_time[] = "startTime";
+const char end_time[] = "endTime";
+const char hours[] = "hours";
+const char minutes[] = "minutes";
+const char seconds [] = "seconds";
+const char update_mode[] = "updateMode";
+const char trigger_source[] = "triggerSource";
+const char hmi_level[] = "hmiLevel";
+const char audio_streaming_state[] = "audioStreamingState";
+const char system_context[] = "systemContext";
+const char speech_capabilities[] = "speechCapabilities";
+const char vr_capabilities[] = "vrCapabilities";
+const char audio_pass_thru_capabilities[] = "audioPassThruCapabilities";
+// PutFile
+const char sync_file_name[] = "syncFileName";
+const char file_type[] = "fileType";
+const char persistent_file[] = "persistentFile";
+const char file_data[] = "fileData";
+const char space_available[] = "spaceAvailable";
+const char image_type[] = "imageType";
+const char image[] = "image";
+const char type[] = "type";
+const char system_file[] = "systemFile";
+const char offset[] = "offset";
+const char length[] = "length";
+
+const char filenames[] = "filenames";
+
+const char hmi_display_language_desired[] = "hmiDisplayLanguageDesired";
+const char ecu_name[] = "ecuName";
+const char dtc_mask[] = "dtcMask";
+const char did_location[] = "didLocation";
+const char app_list[] = "appList";
+const char device_list[] = "deviceList";
+const char device_info[] = "deviceInfo";
+const char name[] = "name";
+const char id[] = "id";
+const char application[] = "application";
+const char icon[] = "icon";
+const char device_name[] = "deviceName";
+const char reason[] = "reason";
+const char available[] = "available";
+const char text[] = "text";
+
+// vehicle info
+const char gps[] = "gps";
+const char speed[] = "speed";
+const char rpm[] = "rpm";
+const char fuel_level[] = "fuelLevel";
+const char fuel_level_state[] = "fuelLevel_State";
+const char instant_fuel_consumption[] = "instantFuelConsumption";
+const char external_temp[] = "externalTemperature";
+const char vin[] = "vin";
+const char prndl[] = "prndl";
+const char tire_pressure[] = "tirePressure";
+const char odometer[] = "odometer";
+const char belt_status[] = "beltStatus";
+const char body_information[] = "bodyInformation";
+const char device_status[] = "deviceStatus";
+const char driver_braking[] = "driverBraking";
+const char wiper_status[] = "wiperStatus";
+const char head_lamp_status[] = "headLampStatus";
+const char engine_torque[] = "engineTorque";
+const char acc_pedal_pos[] = "accPedalPosition";
+const char steering_wheel_angle[] = "steeringWheelAngle";
+const char e_call_info[] = "eCallInfo";
+const char airbag_status[] = "airbagStatus";
+const char emergency_event[] = "emergencyEvent";
+const char cluster_mode_status[] = "clusterModeStatus";
+const char my_key[] = "myKey";
+const char help_prompt[] = "helpPrompt";
+const char scroll_message_body[] = "scrollableMessageBody";
+const char data_result[] = "dataResult";
+const char dtc_list[] = "dtcList";
+const char interaction_mode[] = "interactionMode";
+const char slider_position[] = "sliderPosition";
+const char system_action[] = "systemAction";
+const char prerecorded_speech[] = "prerecordedSpeech";
+const char supported_diag_modes[] = "supportedDiagModes";
+
+//resuming
+const char application_commands[] = "applicationCommands";
+const char application_choise_sets[] = "applicationChoiceSets";
+const char application_global_properties[] = "globalProperties";
+const char application_vehicle_info[] = "vehicleInfo";
+const char application_buttons[] = "buttons";
+const char application_subscribtions[] = "subscribtions";
+const char application_files[] = "applicationFiles";
+const char resumption[] = "resumption";
+const char ign_off_count[] = "ign_off_count";
+const char connection_info[] = "connection_info";
+const char is_download_complete[] = "is_download_complete";
+
+const char hash_id[] = "hashID";
+const char time_stamp[] = "timeStamp";
+const char manual_text_entry[] = "manualTextEntry";
+} // namespace strings
+
+namespace mobile_notification {
+const char state[] = "state";
+const char syncp_timeout[] = "Timeout";
+} // namespace mobile_notification
+
+namespace hmi_request {
+const char parent_id[] = "parentID";
+const char field_name[] = "fieldName";
+const char field_text[] = "fieldText";
+const char alert_strings[] = "alertStrings";
+const char duration[] = "duration";
+const char soft_buttons[] = "softButtons";
+const char tts_chunks[] = "ttsChunks";
+const char audio_pass_display_texts[] = "audioPassThruDisplayTexts";
+const char max_duration[] = "maxDuration";
+const char reason[] = "reason";
+const char message_text[] = "messageText";
+const char initial_text[] = "initialText";
+const char navi_texts[] = "navigationTexts";
+const char navi_text[] = "navigationText";
+const char show_strings[] = "showStrings";
+const char interaction_layout[] = "interactionLayout";
+const char menu_title[] = "menuTitle";
+const char menu_icon[] = "menuIcon";
+const char keyboard_properties[] = "keyboardProperties";
+const char method_name[] = "methodName";
+const char keyboard_layout[] = "keyboardLayout";
+const char send_dynamic_entry[] = "sendDynamicEntry";
+const char limited_character_list[] = "limitedCharacterList";
+const char auto_complete_text[] = "autoCompleteText";
+} // namespace hmi_request
+
+namespace hmi_response {
+const char code[] = "code";
+const char message[] = "message";
+const char method[] = "method";
+const char try_again_time[] = "tryAgainTime";
+const char custom_button_id[] = "customButtonID";
+const char button_name[] = "name";
+const char button_mode[] = "mode";
+const char attenuated_supported[] = "attenuatedSupported";
+const char languages[] = "languages";
+const char language[] = "language";
+const char display_capabilities[] = "displayCapabilities";
+const char hmi_zone_capabilities[] = "hmiZoneCapabilities";
+const char soft_button_capabilities[] = "softButtonCapabilities";
+const char image_supported[] = "imageSupported";
+const char button_capabilities[] = "buttonCapabilities";
+const char capabilities[] = "capabilities";
+const char speech_capabilities[] = "speechCapabilities";
+const char prerecorded_speech_capabilities[] = "prerecordedSpeechCapabilities";
+const char preset_bank_capabilities[] = "presetBankCapabilities";
+const char allowed[] = "allowed";
+const char vehicle_type[] = "vehicleType";
+const char did_result[] = "didResult";
+const char result_code[] = "resultCode";
+const char dtc[] = "dtc";
+const char ecu_header[] = "ecuHeader";
+const char image_capabilities[] = "imageCapabilities";
+const char display_type[] = "displayType";
+const char text_fields[] = "textFields";
+const char media_clock_formats[] = "mediaClockFormats";
+const char graphic_supported[] = "graphicSupported";
+const char templates_available[] = "templatesAvailable";
+const char screen_params[] = "screenParams";
+const char num_custom_presets_available[] = "numCustomPresetsAvailable";
+} // namespace hmi_response
+
+namespace hmi_notification {
+const char prndl[] = "prndl";
+const char file_name[] = "file_name";
+const char system_context[] = "systemContext";
+const char state[] = "state";
+const char result[] = "result";
+
+} // namespace hmi_notification
+
+} // namespace application_manager
+
+#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_SMART_OBJECT_KEYS_H_
diff --git a/SDL_Core/src/components/application_manager/src/application_data_impl.cc b/SDL_Core/src/components/application_manager/src/application_data_impl.cc
new file mode 100644
index 000000000..5b5155c02
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/application_data_impl.cc
@@ -0,0 +1,477 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/application_data_impl.h"
+#include "application_manager/smart_object_keys.h"
+
+namespace application_manager {
+
+InitialApplicationDataImpl::InitialApplicationDataImpl()
+ : app_types_(NULL),
+ vr_synonyms_(NULL),
+ mobile_app_id_(NULL),
+ tts_name_(NULL),
+ ngn_media_screen_name_(NULL),
+ language_(mobile_api::Language::INVALID_ENUM),
+ ui_language_(mobile_api::Language::INVALID_ENUM) {
+}
+
+InitialApplicationDataImpl::~InitialApplicationDataImpl() {
+ if (app_types_) {
+ delete app_types_;
+ app_types_ = NULL;
+ }
+
+ if (vr_synonyms_) {
+ delete vr_synonyms_;
+ vr_synonyms_ = NULL;
+ }
+
+ if (mobile_app_id_) {
+ delete mobile_app_id_;
+ mobile_app_id_ = NULL;
+ }
+
+ if (tts_name_) {
+ delete tts_name_;
+ tts_name_ = NULL;
+ }
+
+ if (ngn_media_screen_name_) {
+ delete ngn_media_screen_name_;
+ ngn_media_screen_name_ = NULL;
+ }
+}
+
+const smart_objects::SmartObject*
+InitialApplicationDataImpl::app_types() const {
+ return app_types_;
+}
+
+const smart_objects::SmartObject*
+InitialApplicationDataImpl::vr_synonyms() const {
+ return vr_synonyms_;
+}
+
+const smart_objects::SmartObject*
+InitialApplicationDataImpl::mobile_app_id() const {
+ return mobile_app_id_;
+}
+
+const smart_objects::SmartObject* InitialApplicationDataImpl::tts_name() const {
+ return tts_name_;
+}
+
+const smart_objects::SmartObject*
+InitialApplicationDataImpl::ngn_media_screen_name() const {
+ return ngn_media_screen_name_;
+}
+
+const mobile_api::Language::eType&
+InitialApplicationDataImpl::language() const {
+ return language_;
+}
+
+const mobile_api::Language::eType&
+InitialApplicationDataImpl::ui_language() const {
+ return ui_language_;
+}
+
+void InitialApplicationDataImpl::set_app_types(
+ const smart_objects::SmartObject& app_types) {
+ if (app_types_) {
+ delete app_types_;
+ }
+
+ app_types_ = new smart_objects::SmartObject(app_types);
+}
+
+void InitialApplicationDataImpl::set_vr_synonyms(
+ const smart_objects::SmartObject& vr_synonyms) {
+ if (vr_synonyms_) {
+ delete vr_synonyms_;
+ }
+ vr_synonyms_ = new smart_objects::SmartObject(vr_synonyms);
+}
+
+void InitialApplicationDataImpl::set_mobile_app_id(
+ const smart_objects::SmartObject& mobile_app_id) {
+ if (mobile_app_id_) {
+ delete mobile_app_id_;
+ }
+ mobile_app_id_ = new smart_objects::SmartObject(mobile_app_id);
+}
+
+void InitialApplicationDataImpl::set_tts_name(
+ const smart_objects::SmartObject& tts_name) {
+ if (tts_name_) {
+ delete tts_name_;
+ }
+
+ tts_name_ = new smart_objects::SmartObject(tts_name);
+}
+
+void InitialApplicationDataImpl::set_ngn_media_screen_name(
+ const smart_objects::SmartObject& ngn_name) {
+ if (ngn_media_screen_name_) {
+ delete ngn_media_screen_name_;
+ }
+
+ ngn_media_screen_name_ = new smart_objects::SmartObject(ngn_name);
+}
+
+void InitialApplicationDataImpl::set_language(
+ const mobile_api::Language::eType& language) {
+ language_ = language;
+}
+
+void InitialApplicationDataImpl::set_ui_language(
+ const mobile_api::Language::eType& ui_language) {
+ ui_language_ = ui_language;
+}
+
+DynamicApplicationDataImpl::DynamicApplicationDataImpl()
+ : help_prompt_(NULL),
+ timeout_prompt_(NULL),
+ vr_help_title_(NULL),
+ vr_help_(NULL),
+ tbt_state_(mobile_api::TBTState::INVALID_ENUM),
+ show_command_(NULL),
+ tbt_show_command_(NULL),
+ commands_(),
+ sub_menu_(),
+ choice_set_map_(),
+ performinteraction_choice_set_map_(),
+ is_perform_interaction_active_(false),
+ perform_interaction_ui_corrid_(0),
+ is_reset_global_properties_active_(false),
+ perform_interaction_mode_(-1) {
+}
+
+DynamicApplicationDataImpl::~DynamicApplicationDataImpl() {
+ if (help_prompt_) {
+ delete help_prompt_;
+ help_prompt_ = NULL;
+ }
+
+ if (timeout_prompt_) {
+ delete timeout_prompt_;
+ timeout_prompt_ = NULL;
+ }
+
+ if (vr_help_title_) {
+ delete vr_help_title_;
+ vr_help_title_ = NULL;
+ }
+
+ if (vr_help_) {
+ delete vr_help_;
+ vr_help_ = NULL;
+ }
+
+ if (show_command_) {
+ delete show_command_;
+ show_command_ = NULL;
+ }
+
+ if (tbt_show_command_) {
+ delete tbt_show_command_;
+ tbt_show_command_ = NULL;
+ }
+
+ for (CommandsMap::iterator command_it = commands_.begin();
+ commands_.end() != command_it; ++command_it) {
+ delete command_it->second;
+ }
+ commands_.clear();
+
+ for (SubMenuMap::iterator sub_menu_it = sub_menu_.begin();
+ sub_menu_.end() != sub_menu_it; ++sub_menu_it) {
+ delete sub_menu_it->second;
+ }
+ sub_menu_.clear();
+
+ PerformChoiceSetMap::iterator it = performinteraction_choice_set_map_.begin();
+ for (; performinteraction_choice_set_map_.end() != it; ++it) {
+ delete it->second;
+ }
+ performinteraction_choice_set_map_.clear();
+}
+
+const smart_objects::SmartObject*
+DynamicApplicationDataImpl::help_prompt() const {
+ return help_prompt_;
+}
+
+const smart_objects::SmartObject*
+DynamicApplicationDataImpl::timeout_prompt() const {
+ return timeout_prompt_;
+}
+
+const smart_objects::SmartObject*
+DynamicApplicationDataImpl::vr_help_title() const {
+ return vr_help_title_;
+}
+
+const smart_objects::SmartObject*
+DynamicApplicationDataImpl::vr_help() const {
+ return vr_help_;
+}
+
+const mobile_api::TBTState::eType&
+DynamicApplicationDataImpl::tbt_state() const {
+ return tbt_state_;
+}
+
+const smart_objects::SmartObject*
+DynamicApplicationDataImpl::show_command() const {
+ return show_command_;
+}
+
+const smart_objects::SmartObject*
+DynamicApplicationDataImpl::tbt_show_command() const {
+ return tbt_show_command_;
+}
+
+const NsSmartDeviceLink::NsSmartObjects::SmartObject *DynamicApplicationDataImpl::keyboard_props() const {
+ return keyboard_props_;
+}
+
+void DynamicApplicationDataImpl::set_help_prompt(
+ const smart_objects::SmartObject& help_prompt) {
+ if (help_prompt_) {
+ delete help_prompt_;
+ }
+ help_prompt_ = new smart_objects::SmartObject(help_prompt);
+}
+
+void DynamicApplicationDataImpl::set_timeout_prompt(
+ const smart_objects::SmartObject& timeout_prompt) {
+ if (timeout_prompt_) {
+ delete timeout_prompt_;
+ }
+ timeout_prompt_ = new smart_objects::SmartObject(timeout_prompt);
+}
+
+void DynamicApplicationDataImpl::set_vr_help_title(
+ const smart_objects::SmartObject& vr_help_title) {
+ if (vr_help_title_) {
+ delete vr_help_title_;
+ }
+ vr_help_title_ = new smart_objects::SmartObject(vr_help_title);
+}
+
+void DynamicApplicationDataImpl::reset_vr_help_title() {
+ if (vr_help_title_) {
+ delete vr_help_title_;
+ vr_help_title_ = NULL;
+ }
+}
+
+void DynamicApplicationDataImpl::set_vr_help(
+ const smart_objects::SmartObject& vr_help) {
+ if (vr_help_) {
+ delete vr_help_;
+ }
+ vr_help_ = new smart_objects::SmartObject(vr_help);
+}
+
+void DynamicApplicationDataImpl::reset_vr_help() {
+ if (vr_help_) {
+ delete vr_help_;
+ }
+ vr_help_ = NULL;
+}
+
+void DynamicApplicationDataImpl::set_tbt_state(
+ const mobile_api::TBTState::eType& tbt_state) {
+ tbt_state_ = tbt_state;
+}
+
+void DynamicApplicationDataImpl::set_show_command(
+ const smart_objects::SmartObject& show_command) {
+ if (show_command_) {
+ delete show_command_;
+ }
+ show_command_ = new smart_objects::SmartObject(show_command);
+}
+
+void DynamicApplicationDataImpl::set_tbt_show_command(
+ const smart_objects::SmartObject& tbt_show) {
+ if (tbt_show_command_) {
+ delete tbt_show_command_;
+ }
+ tbt_show_command_ = new smart_objects::SmartObject(tbt_show);
+}
+
+void DynamicApplicationDataImpl::set_keyboard_props(
+ const smart_objects::SmartObject &keyboard_props) {
+ if (keyboard_props_) {
+ delete keyboard_props_;
+ }
+ keyboard_props_ = new smart_objects::SmartObject(keyboard_props);
+}
+
+
+void DynamicApplicationDataImpl::AddCommand(
+ uint32_t cmd_id, const smart_objects::SmartObject& command) {
+ commands_[cmd_id] = new smart_objects::SmartObject(command);
+}
+
+void DynamicApplicationDataImpl::RemoveCommand(uint32_t cmd_id) {
+ CommandsMap::iterator it = commands_.find(cmd_id);
+
+ if (commands_.end() != it) {
+ delete it->second;
+ commands_.erase(it);
+ }
+}
+
+smart_objects::SmartObject* DynamicApplicationDataImpl::FindCommand(
+ uint32_t cmd_id) {
+ CommandsMap::const_iterator it = commands_.find(cmd_id);
+ if (it != commands_.end()) {
+ return it->second;
+ }
+
+ return NULL;
+}
+
+// TODO(VS): Create common functions for processing collections
+void DynamicApplicationDataImpl::AddSubMenu(
+ uint32_t menu_id, const smart_objects::SmartObject& menu) {
+ sub_menu_[menu_id] = new smart_objects::SmartObject(menu);
+}
+
+void DynamicApplicationDataImpl::RemoveSubMenu(uint32_t menu_id) {
+ SubMenuMap::iterator it = sub_menu_.find(menu_id);
+
+ if (sub_menu_.end() != it) {
+ delete it->second;
+ sub_menu_.erase(menu_id);
+ }
+}
+
+smart_objects::SmartObject* DynamicApplicationDataImpl::FindSubMenu(
+ uint32_t menu_id) const {
+ SubMenuMap::const_iterator it = sub_menu_.find(menu_id);
+ if (it != sub_menu_.end()) {
+ return it->second;
+ }
+
+ return NULL;
+}
+
+bool DynamicApplicationDataImpl::IsSubMenuNameAlreadyExist(
+ const std::string& name) {
+ for (SubMenuMap::iterator it = sub_menu_.begin();
+ sub_menu_.end() != it;
+ ++it) {
+ smart_objects::SmartObject* menu = it->second;
+ if ((*menu)[strings::menu_name] == name) {
+ return true;
+ }
+ }
+ return false;
+}
+
+void DynamicApplicationDataImpl::AddChoiceSet(
+ uint32_t choice_set_id, const smart_objects::SmartObject& choice_set) {
+ choice_set_map_[choice_set_id] = new smart_objects::SmartObject(choice_set);
+}
+
+void DynamicApplicationDataImpl::RemoveChoiceSet(uint32_t choice_set_id) {
+ ChoiceSetMap::iterator it = choice_set_map_.find(choice_set_id);
+
+ if (choice_set_map_.end() != it) {
+ delete it->second;
+ choice_set_map_.erase(choice_set_id);
+ }
+}
+
+smart_objects::SmartObject* DynamicApplicationDataImpl::FindChoiceSet(
+ uint32_t choice_set_id) {
+ ChoiceSetMap::const_iterator it = choice_set_map_.find(choice_set_id);
+ if (it != choice_set_map_.end()) {
+ return it->second;
+ }
+
+ return NULL;
+}
+
+void DynamicApplicationDataImpl::AddPerformInteractionChoiceSet(
+ uint32_t choice_set_id, const smart_objects::SmartObject& vr_commands) {
+ performinteraction_choice_set_map_[choice_set_id] =
+ new smart_objects::SmartObject(vr_commands);
+}
+
+void DynamicApplicationDataImpl::DeletePerformInteractionChoiceSetMap() {
+ PerformChoiceSetMap::iterator it = performinteraction_choice_set_map_.begin();
+ for (; performinteraction_choice_set_map_.end() != it; ++it) {
+ delete it->second;
+ }
+ performinteraction_choice_set_map_.clear();
+}
+
+smart_objects::SmartObject*
+DynamicApplicationDataImpl::FindPerformInteractionChoiceSet(
+ uint32_t choice_set_id) const {
+ PerformChoiceSetMap::const_iterator it = performinteraction_choice_set_map_
+ .find(choice_set_id);
+
+ if (it != performinteraction_choice_set_map_.end()) {
+ return it->second;
+ }
+
+ return NULL;
+}
+
+void DynamicApplicationDataImpl::set_perform_interaction_active(
+ uint32_t active) {
+ is_perform_interaction_active_ = active;
+}
+
+void DynamicApplicationDataImpl::set_perform_interaction_ui_corrid(
+ uint32_t corr_id) {
+ perform_interaction_ui_corrid_ = corr_id;
+}
+
+void DynamicApplicationDataImpl::set_reset_global_properties_active(
+ bool active) {
+ is_reset_global_properties_active_ = active;
+}
+
+void DynamicApplicationDataImpl::set_perform_interaction_mode(int32_t mode) {
+ perform_interaction_mode_ = mode;
+}
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/application_impl.cc b/SDL_Core/src/components/application_manager/src/application_impl.cc
new file mode 100644
index 000000000..198e1a3fb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/application_impl.cc
@@ -0,0 +1,359 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string>
+#include <stdlib.h>
+#include "application_manager/application_impl.h"
+#include "utils/file_system.h"
+#include "application_manager/message_helper.h"
+
+namespace {
+log4cxx::LoggerPtr g_logger = log4cxx::Logger::getLogger("ApplicationManager");
+}
+
+
+
+namespace application_manager {
+
+ApplicationImpl::ApplicationImpl(uint32_t application_id)
+ : app_id_(application_id),
+ active_message_(NULL),
+ is_media_(false),
+ hmi_supports_navi_streaming_(false),
+ allowed_support_navigation_(false),
+ hmi_level_(mobile_api::HMILevel::HMI_NONE),
+ put_file_in_none_count_(0),
+ delete_file_in_none_count_(0),
+ list_files_in_none_count_(0),
+ system_context_(mobile_api::SystemContext::SYSCTXT_MAIN),
+ audio_streaming_state_(mobile_api::AudioStreamingState::NOT_AUDIBLE),
+ is_app_allowed_(true),
+ has_been_activated_(false),
+ tts_speak_state_(false),
+ device_(0) {
+ srand(time(NULL));
+}
+
+ApplicationImpl::~ApplicationImpl() {
+ // TODO(AK): check if this is correct assimption
+ if (active_message_) {
+ delete active_message_;
+ active_message_ = NULL;
+ }
+
+ subscribed_buttons_.clear();
+ subscribed_vehicle_info_.clear();
+
+ CleanupFiles();
+}
+
+void ApplicationImpl::CloseActiveMessage() {
+ delete active_message_;
+ active_message_ = NULL;
+}
+
+bool ApplicationImpl::IsFullscreen() const {
+ return mobile_api::HMILevel::HMI_FULL == hmi_level_;
+}
+
+bool ApplicationImpl::MakeFullscreen() {
+ hmi_level_ = mobile_api::HMILevel::HMI_FULL;
+ if (is_media_ && !tts_speak_state_) {
+ audio_streaming_state_ = mobile_api::AudioStreamingState::AUDIBLE;
+ }
+ system_context_ = mobile_api::SystemContext::SYSCTXT_MAIN;
+ if (!has_been_activated_) {
+ has_been_activated_ = true;
+ }
+ return true;
+}
+
+bool ApplicationImpl::IsAudible() const {
+ return mobile_api::HMILevel::HMI_FULL == hmi_level_
+ || mobile_api::HMILevel::HMI_LIMITED == hmi_level_;
+}
+
+void ApplicationImpl::MakeNotAudible() {
+ hmi_level_ = mobile_api::HMILevel::HMI_BACKGROUND;
+ audio_streaming_state_ = mobile_api::AudioStreamingState::NOT_AUDIBLE;
+}
+
+bool ApplicationImpl::allowed_support_navigation() const {
+ return allowed_support_navigation_;
+}
+
+void ApplicationImpl::set_allowed_support_navigation(bool allow) {
+ allowed_support_navigation_ = allow;
+}
+
+const smart_objects::SmartObject* ApplicationImpl::active_message() const {
+ return active_message_;
+}
+
+const Version& ApplicationImpl::version() const {
+ return version_;
+}
+
+const std::string& ApplicationImpl::name() const {
+ return app_name_;
+}
+
+bool ApplicationImpl::is_media_application() const {
+ return is_media_;
+}
+
+const mobile_api::HMILevel::eType& ApplicationImpl::hmi_level() const {
+ return hmi_level_;
+}
+
+const uint32_t ApplicationImpl::put_file_in_none_count() const {
+ return put_file_in_none_count_;
+}
+
+const uint32_t ApplicationImpl::delete_file_in_none_count() const {
+ return delete_file_in_none_count_;
+}
+
+const uint32_t ApplicationImpl::list_files_in_none_count() const {
+ return list_files_in_none_count_;
+}
+
+const mobile_api::SystemContext::eType&
+ApplicationImpl::system_context() const {
+ return system_context_;
+}
+
+const std::string& ApplicationImpl::app_icon_path() const {
+ return app_icon_path_;
+}
+
+connection_handler::DeviceHandle ApplicationImpl::device() const {
+ return device_;
+}
+
+void ApplicationImpl::set_version(const Version& ver) {
+ version_ = ver;
+}
+
+void ApplicationImpl::set_name(const std::string& name) {
+ app_name_ = name;
+}
+
+void ApplicationImpl::set_is_media_application(bool is_media) {
+ is_media_ = is_media;
+ // Audio streaming state for non-media application can not be different
+ // from NOT_AUDIBLE
+ if (!is_media)
+ set_audio_streaming_state(mobile_api::AudioStreamingState::NOT_AUDIBLE);
+}
+
+void ApplicationImpl::set_tts_speak_state(bool state_tts_speak) {
+ tts_speak_state_ = state_tts_speak;
+}
+
+void ApplicationImpl::set_hmi_level(
+ const mobile_api::HMILevel::eType& hmi_level) {
+ if (mobile_api::HMILevel::HMI_NONE != hmi_level_ &&
+ mobile_api::HMILevel::HMI_NONE == hmi_level) {
+ put_file_in_none_count_ = 0;
+ delete_file_in_none_count_ = 0;
+ list_files_in_none_count_ = 0;
+ }
+
+ hmi_level_ = hmi_level;
+}
+
+void ApplicationImpl::set_hmi_supports_navi_streaming(const bool& supports) {
+ hmi_supports_navi_streaming_ = supports;
+}
+
+bool ApplicationImpl::hmi_supports_navi_streaming() const {
+ return hmi_supports_navi_streaming_;
+}
+
+void ApplicationImpl::increment_put_file_in_none_count() {
+ ++put_file_in_none_count_;
+}
+
+void ApplicationImpl::increment_delete_file_in_none_count() {
+ ++delete_file_in_none_count_;
+}
+
+void ApplicationImpl::increment_list_files_in_none_count() {
+ ++list_files_in_none_count_;
+}
+
+void ApplicationImpl::set_system_context(
+ const mobile_api::SystemContext::eType& system_context) {
+ system_context_ = system_context;
+}
+
+void ApplicationImpl::set_audio_streaming_state(
+ const mobile_api::AudioStreamingState::eType& state) {
+ if (!is_media_application()
+ && state != mobile_api::AudioStreamingState::NOT_AUDIBLE) {
+ LOG4CXX_WARN(g_logger, "Trying to set audio streaming state"
+ " for non-media application to different from NOT_AUDIBLE");
+ return;
+ }
+ audio_streaming_state_ = state;
+}
+
+bool ApplicationImpl::set_app_icon_path(const std::string& path) {
+ std::string file_name = path.substr(path.find_last_of("/") + 1);
+ if (app_files_.find(file_name) != app_files_.end()) {
+ app_icon_path_ = path;
+ return true;
+ }
+ return false;
+}
+
+void ApplicationImpl::set_app_allowed(const bool& allowed) {
+ is_app_allowed_ = allowed;
+}
+
+void ApplicationImpl::set_device(connection_handler::DeviceHandle device) {
+ device_ = device;
+}
+
+bool ApplicationImpl::has_been_activated() const {
+ return has_been_activated_;
+}
+
+bool ApplicationImpl::AddFile(AppFile& file) {
+ if (app_files_.count(file.file_name) == 0) {
+ app_files_[file.file_name] = file;
+ return true;
+ }
+ return false;
+}
+
+bool ApplicationImpl::UpdateFile(AppFile& file) {
+ if (app_files_.count(file.file_name) != 0) {
+ app_files_[file.file_name] = file;
+ return true;
+ }
+ return false;
+}
+
+bool ApplicationImpl::DeleteFile(const std::string& file_name) {
+ AppFilesMap::iterator it = app_files_.find(file_name);
+ if (it != app_files_.end()) {
+ app_files_.erase(it);
+ return true;
+ }
+ return false;
+}
+
+const AppFilesMap& ApplicationImpl::getAppFiles() const {
+ return this->app_files_;
+}
+
+bool ApplicationImpl::SubscribeToButton(mobile_apis::ButtonName::eType btn_name) {
+ size_t old_size = subscribed_buttons_.size();
+ subscribed_buttons_.insert(btn_name);
+ return (subscribed_buttons_.size() == old_size + 1);
+}
+
+bool ApplicationImpl::IsSubscribedToButton(mobile_apis::ButtonName::eType btn_name) {
+ std::set<mobile_apis::ButtonName::eType>::iterator it = subscribed_buttons_.find(btn_name);
+ return (subscribed_buttons_.end() != it);
+}
+bool ApplicationImpl::UnsubscribeFromButton(mobile_apis::ButtonName::eType btn_name) {
+ size_t old_size = subscribed_buttons_.size();
+ subscribed_buttons_.erase(btn_name);
+ return (subscribed_buttons_.size() == old_size - 1);
+}
+
+bool ApplicationImpl::SubscribeToIVI(uint32_t vehicle_info_type_) {
+ size_t old_size = subscribed_vehicle_info_.size();
+ subscribed_vehicle_info_.insert(vehicle_info_type_);
+ return (subscribed_vehicle_info_.size() == old_size + 1);
+}
+
+bool ApplicationImpl::IsSubscribedToIVI(uint32_t vehicle_info_type_) {
+ std::set<uint32_t>::iterator it = subscribed_vehicle_info_.find(
+ vehicle_info_type_);
+ return (subscribed_vehicle_info_.end() != it);
+}
+
+bool ApplicationImpl::UnsubscribeFromIVI(uint32_t vehicle_info_type_) {
+ size_t old_size = subscribed_vehicle_info_.size();
+ subscribed_vehicle_info_.erase(vehicle_info_type_);
+ return (subscribed_vehicle_info_.size() == old_size - 1);
+}
+
+const std::set<mobile_apis::ButtonName::eType>& ApplicationImpl::SubscribedButtons() const {
+ return subscribed_buttons_;
+}
+
+const std::set<uint32_t>& ApplicationImpl::SubscribesIVI() const {
+ return subscribed_vehicle_info_;
+}
+
+uint32_t ApplicationImpl::nextHash() {
+ hash_val_ = rand();
+ return hash_val_;
+}
+
+uint32_t ApplicationImpl::curHash() const {
+ return hash_val_;
+}
+
+uint32_t ApplicationImpl::UpdateHash() {
+ uint32_t new_hash= nextHash();
+ MessageHelper::SendHashUpdateNotification(app_id());
+ return new_hash;
+}
+
+void ApplicationImpl::CleanupFiles() {
+ std::string directory_name = file_system::FullPath(name());
+ if (file_system::DirectoryExists(directory_name)) {
+ for (AppFilesMap::const_iterator it = app_files_.begin();
+ it != app_files_.end(); ++it) {
+ if (!it->second.is_persistent) {
+ std::string file_name = directory_name;
+ file_name += "/";
+ file_name += it->second.file_name;
+ file_system::DeleteFile(file_name);
+ }
+ }
+ std::vector < std::string > persistent_files = file_system::ListFiles(
+ directory_name);
+ if (0 == persistent_files.size()) {
+ file_system::RemoveDirectory(directory_name);
+ }
+ }
+ app_files_.clear();
+}
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/application_manager_impl.cc b/SDL_Core/src/components/application_manager/src/application_manager_impl.cc
new file mode 100644
index 000000000..033882b47
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/application_manager_impl.cc
@@ -0,0 +1,1661 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/application_manager_impl.h"
+
+#include <climits>
+#include <string>
+#include <fstream>
+
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/mobile_command_factory.h"
+#include "application_manager/commands/command_impl.h"
+#include "application_manager/commands/command_notification_impl.h"
+#include "application_manager/message_helper.h"
+#include "application_manager/mobile_message_handler.h"
+#include "connection_handler/connection_handler_impl.h"
+#include "formatters/formatter_json_rpc.h"
+#include "formatters/CFormatterJsonSDLRPCv2.hpp"
+#include "formatters/CFormatterJsonSDLRPCv1.hpp"
+#include "config_profile/profile.h"
+#include "utils/threads/thread.h"
+#include "utils/file_system.h"
+#include "policies/policy_manager.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+log4cxx::LoggerPtr ApplicationManagerImpl::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("ApplicationManager"));
+
+uint32_t ApplicationManagerImpl::corelation_id_ = 0;
+const uint32_t ApplicationManagerImpl::max_corelation_id_ = UINT_MAX;
+
+namespace formatters = NsSmartDeviceLink::NsJSONHandler::Formatters;
+namespace jhs = NsSmartDeviceLink::NsJSONHandler::strings;
+
+ApplicationManagerImpl::ApplicationManagerImpl()
+ : audio_pass_thru_active_(false),
+ is_distracting_driver_(false),
+ is_vr_session_strated_(false),
+ hmi_cooperating_(false),
+ is_all_apps_allowed_(true),
+ hmi_handler_(NULL),
+ connection_handler_(NULL),
+ policy_manager_(NULL),
+ hmi_so_factory_(NULL),
+ mobile_so_factory_(NULL),
+ protocol_handler_(NULL),
+ messages_from_mobile_("application_manager::FromMobileThreadImpl", this),
+ messages_to_mobile_("application_manager::ToMobileThreadImpl", this),
+ messages_from_hmi_("application_manager::FromHMHThreadImpl", this),
+ messages_to_hmi_("application_manager::ToHMHThreadImpl", this),
+ request_ctrl_(),
+ hmi_capabilities_(this),
+ unregister_reason_(mobile_api::AppInterfaceUnregisteredReason::MASTER_RESET),
+ media_manager_(NULL),
+ resume_ctrl_(this)
+{
+ LOG4CXX_INFO(logger_, "Creating ApplicationManager");
+ if (!policies_manager_.Init()) {
+ LOG4CXX_ERROR(logger_, "Policies manager initialization failed.");
+ return;
+ }
+
+ media_manager_ = media_manager::MediaManagerImpl::instance();
+}
+
+bool ApplicationManagerImpl::InitThread(threads::Thread* thread) {
+ if (!thread) {
+ LOG4CXX_ERROR(logger_, "Failed to allocate memory for thread object");
+ return false;
+ }
+ LOG4CXX_INFO(
+ logger_,
+ "Starting thread with stack size "
+ << profile::Profile::instance()->thread_min_stack_size());
+ if (!thread->start()) {
+ /*startWithOptions(
+ threads::ThreadOptions(
+ profile::Profile::instance()->thread_min_stack_size()))*/
+ LOG4CXX_ERROR(logger_, "Failed to start thread");
+ return false;
+ }
+ return true;
+}
+
+ApplicationManagerImpl::~ApplicationManagerImpl() {
+ LOG4CXX_INFO(logger_, "Destructing ApplicationManager.");
+
+ media_manager_ = NULL;
+ hmi_handler_ = NULL;
+ connection_handler_ = NULL;
+ policy_manager_ = NULL;
+ hmi_so_factory_ = NULL;
+ mobile_so_factory_ = NULL;
+ protocol_handler_ = NULL;
+ media_manager_ = NULL;
+}
+
+bool ApplicationManagerImpl::Stop() {
+ LOG4CXX_INFO(logger_, "Stop ApplicationManager.");
+ try {
+ UnregisterAllApplications();
+ }
+ catch(...) {
+ LOG4CXX_ERROR(logger_,
+ "An error occured during unregistering applications.");
+ }
+ MessageHelper::SendOnSdlCloseNotificationToHMI();
+ return true;
+}
+
+ApplicationSharedPtr ApplicationManagerImpl::application(int32_t app_id) const {
+ std::map<int32_t, ApplicationSharedPtr>::const_iterator it =
+ applications_.find(app_id);
+ if (applications_.end() != it) {
+ return it->second;
+ } else {
+ return ApplicationSharedPtr();
+ }
+}
+
+ApplicationSharedPtr ApplicationManagerImpl::active_application() const {
+ // TODO(DK) : check driver distraction
+ for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
+ application_list_.end() != it;
+ ++it) {
+ if ((*it)->IsFullscreen()) {
+ return *it;
+ }
+ }
+ return ApplicationSharedPtr();
+}
+
+std::vector<ApplicationSharedPtr> ApplicationManagerImpl::applications_by_button(
+ uint32_t button) {
+ std::vector<ApplicationSharedPtr> result;
+ for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
+ application_list_.end() != it; ++it) {
+ if ((*it)->IsSubscribedToButton(
+ static_cast<mobile_apis::ButtonName::eType>(button))) {
+ result.push_back(*it);
+ }
+ }
+ return result;
+}
+
+std::vector<ApplicationSharedPtr> ApplicationManagerImpl::applications_by_ivi(
+ uint32_t vehicle_info) {
+ std::vector<ApplicationSharedPtr> result;
+ for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
+ application_list_.end() != it;
+ ++it) {
+ if ((*it)->IsSubscribedToIVI(vehicle_info)) {
+ result.push_back(*it);
+ }
+ }
+ return result;
+}
+
+std::vector<ApplicationSharedPtr> ApplicationManagerImpl::applications_with_navi() {
+ std::vector<ApplicationSharedPtr> result;
+ for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
+ application_list_.end() != it;
+ ++it) {
+ if ((*it)->allowed_support_navigation()) {
+ result.push_back(*it);
+ }
+ }
+ return result;
+}
+
+ApplicationSharedPtr ApplicationManagerImpl::RegisterApplication(
+ const utils::SharedPtr<smart_objects::SmartObject>&
+ request_for_registration) {
+ smart_objects::SmartObject& message = *request_for_registration;
+ uint32_t connection_key =
+ message[strings::params][strings::connection_key].asInt();
+
+ if (false == is_all_apps_allowed_) {
+ LOG4CXX_INFO(logger_,
+ "RegisterApplication: access to app's disabled by user");
+ utils::SharedPtr<smart_objects::SmartObject> response(
+ MessageHelper::CreateNegativeResponse(
+ connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID,
+ message[strings::params][strings::correlation_id].asUInt(),
+ mobile_apis::Result::DISALLOWED));
+ ManageMobileCommand(response);
+ return ApplicationSharedPtr();
+ }
+
+ // app_id is SDL "internal" ID
+ // original app_id can be gotten via ApplicationImpl::mobile_app_id()
+ uint32_t app_id = 0;
+ std::list<int32_t> sessions_list;
+ uint32_t device_id = 0;
+
+ if (connection_handler_) {
+ connection_handler::ConnectionHandlerImpl* con_handler_impl =
+ static_cast<connection_handler::ConnectionHandlerImpl*>(
+ connection_handler_);
+ if (con_handler_impl->GetDataOnSessionKey(connection_key, &app_id,
+ &sessions_list, &device_id)
+ == -1) {
+ LOG4CXX_ERROR(logger_,
+ "Failed to create application: no connection info.");
+ utils::SharedPtr<smart_objects::SmartObject> response(
+ MessageHelper::CreateNegativeResponse(
+ connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID,
+ message[strings::params][strings::correlation_id].asUInt(),
+ mobile_apis::Result::GENERIC_ERROR));
+ ManageMobileCommand(response);
+ return ApplicationSharedPtr();
+ }
+ }
+
+ ApplicationSharedPtr application(new ApplicationImpl(app_id));
+ if (!application) {
+ utils::SharedPtr<smart_objects::SmartObject> response(
+ MessageHelper::CreateNegativeResponse(
+ connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID,
+ message[strings::params][strings::correlation_id].asUInt(),
+ mobile_apis::Result::OUT_OF_MEMORY));
+ ManageMobileCommand(response);
+ return ApplicationSharedPtr();
+ }
+
+ const std::string& name =
+ message[strings::msg_params][strings::app_name].asString();
+
+ application->set_name(name);
+ application->set_device(device_id);
+
+ application->set_language(
+ static_cast<mobile_api::Language::eType>(
+ message[strings::msg_params][strings::language_desired].asInt()));
+
+ application->set_ui_language(
+ static_cast<mobile_api::Language::eType>(
+ message[strings::msg_params][strings::hmi_display_language_desired]
+ .asInt()));
+
+ Version version;
+ int32_t min_version =
+ message[strings::msg_params][strings::sync_msg_version]
+ [strings::minor_version].asInt();
+
+ /*if (min_version < APIVersion::kAPIV2) {
+ LOG4CXX_ERROR(logger_, "UNSUPPORTED_VERSION");
+ utils::SharedPtr<smart_objects::SmartObject> response(
+ MessageHelper::CreateNegativeResponse(
+ connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID,
+ message[strings::params][strings::correlation_id],
+ mobile_apis::Result::UNSUPPORTED_VERSION));
+ ManageMobileCommand(response);
+ delete application;
+ return NULL;
+ }*/
+ version.min_supported_api_version = static_cast<APIVersion>(min_version);
+
+ int32_t max_version =
+ message[strings::msg_params][strings::sync_msg_version]
+ [strings::major_version].asInt();
+
+ /*if (max_version > APIVersion::kAPIV2) {
+ LOG4CXX_ERROR(logger_, "UNSUPPORTED_VERSION");
+ utils::SharedPtr<smart_objects::SmartObject> response(
+ MessageHelper::CreateNegativeResponse(
+ connection_key, mobile_apis::FunctionID::RegisterAppInterfaceID,
+ message[strings::params][strings::correlation_id],
+ mobile_apis::Result::UNSUPPORTED_VERSION));
+ ManageMobileCommand(response);
+ delete application;
+ return NULL;
+ }*/
+ version.max_supported_api_version = static_cast<APIVersion>(max_version);
+ application->set_version(version);
+
+ application->set_mobile_app_id(message[strings::msg_params][strings::app_id]);
+
+ sync_primitives::AutoLock lock(applications_list_lock_);
+
+ applications_.insert(std::pair<int32_t, ApplicationSharedPtr>(app_id, application));
+ application_list_.insert(application);
+
+ // TODO(PV): add asking user to allow application
+ // BasicCommunication_AllowApp
+ // application->set_app_allowed(result);
+ return application;
+}
+
+bool ApplicationManagerImpl::RemoveAppDataFromHMI(ApplicationSharedPtr app) {
+ return true;
+}
+
+bool ApplicationManagerImpl::LoadAppDataToHMI(ApplicationSharedPtr app) {
+ return true;
+}
+
+bool ApplicationManagerImpl::ActivateApplication(ApplicationSharedPtr app) {
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Null-pointer application received.");
+ NOTREACHED();
+ return false;
+ }
+
+ bool is_new_app_media = app->is_media_application();
+
+ for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
+ application_list_.end() != it;
+ ++it) {
+ ApplicationSharedPtr curr_app = *it;
+ if (app->app_id() == curr_app->app_id()) {
+ if (curr_app->IsFullscreen()) {
+ LOG4CXX_WARN(logger_, "Application is already active.");
+ return false;
+ }
+ if (mobile_api::HMILevel::eType::HMI_LIMITED !=
+ curr_app->hmi_level()) {
+ if (curr_app->has_been_activated()) {
+ MessageHelper::SendAppDataToHMI(curr_app);
+ }
+ }
+ if (!curr_app->MakeFullscreen()) {
+ return false;
+ }
+ MessageHelper::SendHMIStatusNotification(*curr_app);
+ } else {
+ if (is_new_app_media) {
+ if (curr_app->IsAudible()) {
+ curr_app->MakeNotAudible();
+ MessageHelper::SendHMIStatusNotification(*curr_app);
+ }
+ }
+ if (curr_app->IsFullscreen()) {
+ MessageHelper::RemoveAppDataFromHMI(curr_app);
+ }
+ }
+ }
+ return true;
+}
+
+mobile_apis::HMILevel::eType ApplicationManagerImpl::PutApplicationInLimited(
+ ApplicationSharedPtr app) {
+ DCHECK(app.get())
+
+ bool is_new_app_media = app->is_media_application();
+ mobile_api::HMILevel::eType result = mobile_api::HMILevel::HMI_LIMITED;
+
+ for (std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
+ application_list_.end() != it;
+ ++it) {
+ ApplicationSharedPtr curr_app = *it;
+ if (app->app_id() == curr_app->app_id()) {
+ continue;
+ }
+
+ if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_LIMITED) {
+ result = mobile_api::HMILevel::HMI_BACKGROUND;
+ break;
+ }
+ if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_FULL) {
+ if (curr_app->is_media_application()) {
+ result = mobile_api::HMILevel::HMI_BACKGROUND;
+ } else {
+ result = mobile_api::HMILevel::HMI_LIMITED;
+ }
+ break;
+ }
+
+ }
+ app->set_hmi_level(result);
+ return result;
+}
+
+mobile_api::HMILevel::eType ApplicationManagerImpl::PutApplicationInFull(
+ ApplicationSharedPtr app) {
+ DCHECK(app.get())
+
+ bool is_new_app_media = app->is_media_application();
+ mobile_api::HMILevel::eType result = mobile_api::HMILevel::HMI_FULL;
+
+ std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
+ for (; application_list_.end() != it; ++it) {
+ ApplicationSharedPtr curr_app = *it;
+ if (app->app_id() == curr_app->app_id()) {
+ continue;
+ }
+
+ if (is_new_app_media) {
+ if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_FULL) {
+ if (curr_app->is_media_application()) {
+ result = mobile_api::HMILevel::HMI_BACKGROUND;
+ } else {
+ result = mobile_api::HMILevel::HMI_LIMITED;
+ }
+ break;
+ }
+ if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_LIMITED) {
+ result = mobile_api::HMILevel::HMI_BACKGROUND;
+ break;
+ }
+ } else {
+ if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_FULL) {
+ result = mobile_api::HMILevel::HMI_BACKGROUND;
+ break;
+ }
+ if (curr_app->hmi_level() == mobile_api::HMILevel::HMI_LIMITED) {
+ result = mobile_api::HMILevel::HMI_FULL;
+ break;
+ }
+ }
+ }
+
+ if ( result == mobile_api::HMILevel::HMI_FULL) {
+ MessageHelper::SendActivateAppToHMI(app->app_id());
+ }
+ return result;
+}
+
+void ApplicationManagerImpl::DeactivateApplication(ApplicationSharedPtr app) {
+ MessageHelper::SendDeleteCommandRequestToHMI(app);
+ MessageHelper::ResetGlobalproperties(app);
+}
+
+void ApplicationManagerImpl::ConnectToDevice(uint32_t id) {
+ // TODO(VS): Call function from ConnectionHandler
+ if (!connection_handler_) {
+ LOG4CXX_WARN(logger_, "Connection handler is not set.");
+ return;
+ }
+
+ connection_handler_->ConnectToDevice(id);
+}
+
+void ApplicationManagerImpl::OnHMIStartedCooperation() {
+ hmi_cooperating_ = true;
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnHMIStartedCooperation()");
+
+ if (true == profile::Profile::instance()->launch_hmi()) {
+ utils::SharedPtr<smart_objects::SmartObject> is_vr_ready(
+ MessageHelper::CreateModuleInfoSO(
+ static_cast<uint32_t>(hmi_apis::FunctionID::VR_IsReady)));
+ ManageHMICommand(is_vr_ready);
+
+ utils::SharedPtr<smart_objects::SmartObject> is_tts_ready(
+ MessageHelper::CreateModuleInfoSO(hmi_apis::FunctionID::TTS_IsReady));
+ ManageHMICommand(is_tts_ready);
+
+ utils::SharedPtr<smart_objects::SmartObject> is_ui_ready(
+ MessageHelper::CreateModuleInfoSO(hmi_apis::FunctionID::UI_IsReady));
+ ManageHMICommand(is_ui_ready);
+
+ utils::SharedPtr<smart_objects::SmartObject> is_navi_ready(
+ MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::Navigation_IsReady));
+ ManageHMICommand(is_navi_ready);
+
+ utils::SharedPtr<smart_objects::SmartObject> is_ivi_ready(
+ MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::VehicleInfo_IsReady));
+ ManageHMICommand(is_ivi_ready);
+
+ utils::SharedPtr<smart_objects::SmartObject> button_capabilities(
+ MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::Buttons_GetCapabilities));
+ ManageHMICommand(button_capabilities);
+ }
+
+ if (!connection_handler_) {
+ LOG4CXX_WARN(logger_, "Connection handler is not set.");
+ } else {
+ connection_handler_->StartTransportManager();
+ }
+}
+
+uint32_t ApplicationManagerImpl::GetNextHMICorrelationID() {
+ if (corelation_id_ < max_corelation_id_) {
+ corelation_id_++;
+ } else {
+ corelation_id_ = 0;
+ }
+
+ return corelation_id_;
+}
+
+bool ApplicationManagerImpl::begin_audio_pass_thru() {
+ sync_primitives::AutoLock lock(audio_pass_thru_lock_);
+ if (audio_pass_thru_active_) {
+ return false;
+ } else {
+ audio_pass_thru_active_ = true;
+ return true;
+ }
+}
+
+bool ApplicationManagerImpl::end_audio_pass_thru() {
+ sync_primitives::AutoLock lock(audio_pass_thru_lock_);
+ if (audio_pass_thru_active_) {
+ audio_pass_thru_active_ = false;
+ return true;
+ } else {
+ return false;
+ }
+}
+
+void ApplicationManagerImpl::set_driver_distraction(bool is_distracting) {
+ is_distracting_driver_ = is_distracting;
+}
+
+void ApplicationManagerImpl::set_vr_session_started(const bool& state) {
+ is_vr_session_strated_ = state;
+}
+
+void ApplicationManagerImpl::set_all_apps_allowed(const bool& allowed) {
+ is_all_apps_allowed_ = allowed;
+}
+
+void ApplicationManagerImpl::StartAudioPassThruThread(int32_t session_key,
+ int32_t correlation_id, int32_t max_duration, int32_t sampling_rate,
+ int32_t bits_per_sample, int32_t audio_type) {
+ LOG4CXX_INFO(logger_, "START MICROPHONE RECORDER");
+ if (NULL != media_manager_) {
+ media_manager_->StartMicrophoneRecording(
+ session_key,
+ std::string("record.wav"),
+ max_duration);
+ }
+}
+
+void ApplicationManagerImpl::SendAudioPassThroughNotification(
+ uint32_t session_key,
+ std::vector<uint8_t> binaryData) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ {
+ sync_primitives::AutoLock lock(audio_pass_thru_lock_);
+ if (!audio_pass_thru_active_) {
+ LOG4CXX_ERROR(logger_, "Trying to send PassThroughNotification"
+ " when PassThrough is not active");
+
+ return;
+ }
+ }
+
+ smart_objects::SmartObject* on_audio_pass = NULL;
+ on_audio_pass = new smart_objects::SmartObject();
+
+ if (NULL == on_audio_pass) {
+ LOG4CXX_ERROR_EXT(logger_, "OnAudioPassThru NULL pointer");
+
+ return;
+ }
+
+ LOG4CXX_INFO_EXT(logger_, "Fill smart object");
+
+ (*on_audio_pass)[strings::params][strings::message_type] =
+ application_manager::MessageType::kNotification;
+
+ (*on_audio_pass)[strings::params][strings::connection_key] =
+ static_cast<int32_t>(session_key);
+ (*on_audio_pass)[strings::params][strings::function_id] =
+ mobile_apis::FunctionID::OnAudioPassThruID;
+
+ LOG4CXX_INFO_EXT(logger_, "Fill binary data");
+ // binary data
+ (*on_audio_pass)[strings::params][strings::binary_data] =
+ smart_objects::SmartObject(binaryData);
+
+ LOG4CXX_INFO_EXT(logger_, "After fill binary data");
+
+ LOG4CXX_INFO_EXT(logger_, "Send data");
+ CommandSharedPtr command =
+ MobileCommandFactory::CreateCommand(&(*on_audio_pass));
+ command->Init();
+ command->Run();
+ command->CleanUp();
+}
+
+void ApplicationManagerImpl::StopAudioPassThru(int32_t application_key) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ if (NULL != media_manager_) {
+ media_manager_->StopMicrophoneRecording(application_key);
+ }
+}
+
+std::string ApplicationManagerImpl::GetDeviceName(
+ connection_handler::DeviceHandle handle) {
+ DCHECK(connection_handler_ != 0);
+
+ std::string device_name = "";
+ std::list<uint32_t> applications_list;
+ connection_handler::ConnectionHandlerImpl* con_handler_impl =
+ static_cast<connection_handler::ConnectionHandlerImpl*>(
+ connection_handler_);
+ if (con_handler_impl->GetDataOnDeviceID(handle, &device_name,
+ &applications_list) == -1) {
+ LOG4CXX_ERROR(logger_, "Failed to extract device name for id " << handle);
+ } else {
+ LOG4CXX_INFO(logger_, "\t\t\t\t\tDevice name is " << device_name);
+ }
+
+ return device_name;
+}
+
+void ApplicationManagerImpl::OnMessageReceived(
+ const protocol_handler::RawMessagePtr& message) {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnMessageReceived");
+
+ if (!message) {
+ LOG4CXX_ERROR(logger_, "Null-pointer message received.");
+ NOTREACHED();
+ return;
+ }
+
+ utils::SharedPtr<Message> outgoing_message = ConvertRawMsgToMessage(message);
+ if (outgoing_message) {
+ messages_from_mobile_.PostMessage(
+ impl::MessageFromMobile(outgoing_message));
+ } else {
+ LOG4CXX_WARN(logger_, "Incorrect message received");
+ }
+}
+
+void ApplicationManagerImpl::OnMobileMessageSent(
+ const protocol_handler::RawMessagePtr& message) {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnMobileMessageSent");
+}
+
+void ApplicationManagerImpl::OnMessageReceived(
+ hmi_message_handler::MessageSharedPointer message) {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnMessageReceived");
+
+ if (!message) {
+ LOG4CXX_ERROR(logger_, "Null-pointer message received.");
+ NOTREACHED();
+ return;
+ }
+
+ messages_from_hmi_.PostMessage(impl::MessageFromHmi(message));
+}
+
+void ApplicationManagerImpl::OnErrorSending(
+ hmi_message_handler::MessageSharedPointer message) {
+ return;
+}
+
+void ApplicationManagerImpl::OnDeviceListUpdated(
+ const connection_handler::DeviceList& device_list) {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::OnDeviceListUpdated");
+
+ smart_objects::SmartObject* update_list = new smart_objects::SmartObject;
+ smart_objects::SmartObject& so_to_send = *update_list;
+ so_to_send[jhs::S_PARAMS][jhs::S_FUNCTION_ID] =
+ hmi_apis::FunctionID::BasicCommunication_UpdateDeviceList;
+ so_to_send[jhs::S_PARAMS][jhs::S_MESSAGE_TYPE] =
+ hmi_apis::messageType::request;
+ so_to_send[jhs::S_PARAMS][jhs::S_PROTOCOL_VERSION] = 2;
+ so_to_send[jhs::S_PARAMS][jhs::S_PROTOCOL_TYPE] = 1;
+ so_to_send[jhs::S_PARAMS][jhs::S_CORRELATION_ID] = GetNextHMICorrelationID();
+ smart_objects::SmartObject* msg_params = MessageHelper::CreateDeviceListSO(
+ device_list);
+ if (!msg_params) {
+ LOG4CXX_WARN(logger_, "Failed to create sub-smart object.");
+ delete update_list;
+ return;
+ }
+ so_to_send[jhs::S_MSG_PARAMS] = *msg_params;
+ ManageHMICommand(update_list);
+}
+
+void ApplicationManagerImpl::RemoveDevice(
+ const connection_handler::DeviceHandle& device_handle) {
+}
+
+
+bool ApplicationManagerImpl::IsAudioStreamingAllowed(uint32_t connection_key) const {
+ ApplicationSharedPtr app = application(connection_key);
+
+ if (!app) {
+ LOG4CXX_INFO(logger_, "An application is not registered.");
+ return false;
+ }
+
+ const mobile_api::HMILevel::eType& hmi_level = app->hmi_level();
+
+ if (mobile_api::HMILevel::HMI_FULL == hmi_level ||
+ mobile_api::HMILevel::HMI_LIMITED == hmi_level) {
+ return true;
+ }
+
+ return false;
+}
+
+bool ApplicationManagerImpl::IsVideoStreamingAllowed(uint32_t connection_key) const {
+ ApplicationSharedPtr app = application(connection_key);
+
+ if (!app) {
+ LOG4CXX_INFO(logger_, "An application is not registered.");
+ return false;
+ }
+
+ const mobile_api::HMILevel::eType& hmi_level = app->hmi_level();
+
+ if (mobile_api::HMILevel::HMI_FULL == hmi_level &&
+ app->hmi_supports_navi_streaming() ) {
+ return true;
+ }
+
+ return false;
+}
+
+bool ApplicationManagerImpl::OnServiceStartedCallback(
+ const connection_handler::DeviceHandle& device_handle,
+ const int32_t& session_key,
+ const protocol_handler::ServiceType& type) {
+ LOG4CXX_INFO(logger_,
+ "OnServiceStartedCallback " << type << " in session " << session_key);
+
+ ApplicationSharedPtr app = application(session_key);
+
+ switch (type) {
+ case protocol_handler::kRpc: {
+ LOG4CXX_INFO(logger_, "RPC service is about to be started.");
+ break;
+ }
+ case protocol_handler::kMobileNav: {
+ LOG4CXX_INFO(logger_, "Video service is about to be started.");
+ if (media_manager_) {
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "An application is not registered.");
+ return false;
+ }
+ if (app->allowed_support_navigation()) {
+ media_manager_->StartVideoStreaming(session_key);
+ } else {
+ return false;
+ }
+ }
+ break;
+ }
+ case protocol_handler::kAudio: {
+ LOG4CXX_INFO(logger_, "Audio service is about to be started.");
+ if (media_manager_) {
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "An application is not registered.");
+ return false;
+ }
+ if (app->allowed_support_navigation()) {
+ media_manager_->StartAudioStreaming(session_key);
+ } else {
+ return false;
+ }
+ }
+ break;
+ }
+ default: {
+ LOG4CXX_WARN(logger_, "Unknown type of service to be started.");
+ break;
+ }
+ }
+
+ return true;
+}
+
+void ApplicationManagerImpl::OnServiceEndedCallback(const int32_t& session_key,
+ const protocol_handler::ServiceType& type) {
+ LOG4CXX_INFO_EXT(
+ logger_,
+ "OnServiceEndedCallback " << type << " in session " << session_key);
+ switch (type) {
+ case protocol_handler::kRpc: {
+ LOG4CXX_INFO(logger_, "Remove application.");
+ UnregisterApplication(session_key, true);
+ break;
+ }
+ case protocol_handler::kMobileNav: {
+ LOG4CXX_INFO(logger_, "Stop video streaming.");
+ if (media_manager_) {
+ media_manager_->StopVideoStreaming(session_key);
+ }
+ break;
+ }
+ case protocol_handler::kAudio:{
+ LOG4CXX_INFO(logger_, "Stop audio service.");
+ if (media_manager_) {
+ media_manager_->StopAudioStreaming(session_key);
+ }
+ break;
+ }
+ default:
+ LOG4CXX_WARN(logger_, "Unknown type of service to be ended.");
+ break;
+ }
+}
+
+void ApplicationManagerImpl::set_hmi_message_handler(
+ hmi_message_handler::HMIMessageHandler* handler) {
+ hmi_handler_ = handler;
+}
+
+void ApplicationManagerImpl::set_connection_handler(
+ connection_handler::ConnectionHandler* handler) {
+ connection_handler_ = handler;
+ resume_ctrl_.LoadApplications();
+}
+
+void ApplicationManagerImpl::set_policy_manager(
+ policies::PolicyManager* policy_manager) {
+ policy_manager_ = policy_manager;
+}
+
+void ApplicationManagerImpl::set_protocol_handler(
+ protocol_handler::ProtocolHandler* handler) {
+ protocol_handler_ = handler;
+}
+
+void ApplicationManagerImpl::StartDevicesDiscovery() {
+ connection_handler::ConnectionHandlerImpl::instance()->
+ StartDevicesDiscovery();
+}
+
+void ApplicationManagerImpl::SendMessageToMobile(
+ const utils::SharedPtr<smart_objects::SmartObject>& message,
+ bool final_message) {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::SendMessageToMobile");
+
+ if (!message) {
+ LOG4CXX_ERROR(logger_, "Null-pointer message received.");
+ NOTREACHED();
+ return;
+ }
+
+ if (!protocol_handler_) {
+ LOG4CXX_WARN(logger_, "No Protocol Handler set");
+ return;
+ }
+
+ mobile_so_factory().attachSchema(*message);
+ LOG4CXX_INFO(
+ logger_,
+ "Attached schema to message, result if valid: " << message->isValid());
+
+ // Messages to mobile are not yet prioritized so use default priority value
+ utils::SharedPtr<Message> message_to_send(new Message(
+ protocol_handler::MessagePriority::kDefault));
+ if (!ConvertSOtoMessage((*message), (*message_to_send))) {
+ LOG4CXX_WARN(logger_, "Can't send msg to Mobile: failed to create string");
+ return;
+ }
+
+ smart_objects::SmartObject& msg_to_mobile = *message;
+ if (msg_to_mobile[strings::params].keyExists(strings::correlation_id)) {
+ request_ctrl_.terminateRequest(
+ msg_to_mobile[strings::params][strings::correlation_id].asUInt());
+ }
+
+ messages_to_mobile_.PostMessage(impl::MessageToMobile(message_to_send,
+ final_message));
+}
+
+bool ApplicationManagerImpl::ManageMobileCommand(
+ const utils::SharedPtr<smart_objects::SmartObject>& message) {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::ManageMobileCommand");
+
+ if (!message) {
+ LOG4CXX_WARN(logger_, "Null-pointer message received.");
+ NOTREACHED()
+ return false;
+ }
+
+#ifdef DEBUG
+ MessageHelper::PrintSmartObject(*message);
+#endif
+
+ LOG4CXX_INFO(logger_, "Trying to create message in mobile factory.");
+ CommandSharedPtr command = MobileCommandFactory::CreateCommand(message);
+
+ if (!command) {
+ LOG4CXX_WARN(logger_, "Failed to create mobile command from smart object");
+ return false;
+ }
+
+ mobile_apis::FunctionID::eType function_id =
+ static_cast<mobile_apis::FunctionID::eType>(
+ (*message)[strings::params][strings::function_id].asInt());
+
+ // Notifications from HMI have no such parameter
+ uint32_t correlation_id =
+ (*message)[strings::params].keyExists(strings::correlation_id)
+ ? (*message)[strings::params][strings::correlation_id].asUInt()
+ : 0;
+
+ uint32_t connection_key =
+ (*message)[strings::params][strings::connection_key].asUInt();
+
+ uint32_t protocol_type =
+ (*message)[strings::params][strings::protocol_type].asUInt();
+
+ ApplicationSharedPtr app;
+
+ if (((mobile_apis::FunctionID::RegisterAppInterfaceID != function_id) &&
+ (protocol_type == commands::CommandImpl::mobile_protocol_type_)) &&
+ (mobile_apis::FunctionID::UnregisterAppInterfaceID != function_id)) {
+ app = ApplicationManagerImpl::instance()->application(connection_key);
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "APPLICATION_NOT_REGISTERED");
+ smart_objects::SmartObject* response =
+ MessageHelper::CreateNegativeResponse(
+ connection_key,
+ static_cast<int32_t>(function_id),
+ correlation_id,
+ static_cast<int32_t>(mobile_apis::Result::APPLICATION_NOT_REGISTERED));
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(response);
+ return false;
+ }
+
+ // Message for "CheckPermission" must be with attached schema
+ mobile_so_factory().attachSchema(*message);
+
+ policies::CheckPermissionResult result =
+ policy_manager_->CheckPermission(app->app_id(),
+ *message,
+ app->hmi_level());
+
+ if (policies::PermissionResult::PERMISSION_ALLOWED != result.result) {
+ LOG4CXX_WARN(
+ logger_,
+ "Request blocked by policies. " << "FunctionID: "
+ << static_cast<int32_t>(function_id) << " Application HMI status: "
+ << static_cast<int32_t>(app->hmi_level()));
+
+ smart_objects::SmartObject* response =
+ MessageHelper::CreateBlockedByPoliciesResponse(function_id,
+ mobile_apis::Result::REJECTED, correlation_id, connection_key);
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(response);
+ return true;
+ }
+ }
+
+ if (command->Init()) {
+ if ((*message)[strings::params][strings::message_type].asInt() ==
+ mobile_apis::messageType::request) {
+ // get application hmi level
+ mobile_api::HMILevel::eType app_hmi_level =
+ mobile_api::HMILevel::INVALID_ENUM;
+ if (app) {
+ app_hmi_level = app->hmi_level();
+ }
+
+ request_controller::RequestController::TResult result =
+ request_ctrl_.addRequest(command, app_hmi_level);
+
+ if (result == request_controller::RequestController::SUCCESS) {
+ LOG4CXX_INFO(logger_, "Perform request");
+ } else if (result ==
+ request_controller::RequestController::
+ TOO_MANY_PENDING_REQUESTS) {
+ LOG4CXX_ERROR_EXT(logger_, "Unable to perform request: " <<
+ "TOO_MANY_PENDING_REQUESTS");
+
+ smart_objects::SmartObject* response =
+ MessageHelper::CreateNegativeResponse(
+ connection_key,
+ static_cast<int32_t>(function_id),
+ correlation_id,
+ static_cast<int32_t>(mobile_apis::Result::TOO_MANY_PENDING_REQUESTS));
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(response);
+ return false;
+ } else if (result ==
+ request_controller::RequestController::TOO_MANY_REQUESTS) {
+ LOG4CXX_ERROR_EXT(logger_, "Unable to perform request: " <<
+ "TOO_MANY_REQUESTS");
+
+ MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
+ connection_key,
+ mobile_api::AppInterfaceUnregisteredReason::TOO_MANY_REQUESTS);
+
+ UnregisterApplication(connection_key, true);
+ return false;
+ } else if (result ==
+ request_controller::RequestController::
+ NONE_HMI_LEVEL_MANY_REQUESTS) {
+ LOG4CXX_ERROR_EXT(logger_, "Unable to perform request: " <<
+ "REQUEST_WHILE_IN_NONE_HMI_LEVEL");
+
+ MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
+ connection_key, mobile_api::AppInterfaceUnregisteredReason::
+ REQUEST_WHILE_IN_NONE_HMI_LEVEL);
+
+ UnregisterApplication(connection_key, true);
+ return false;
+ } else {
+ LOG4CXX_ERROR_EXT(logger_, "Unable to perform request: Unknown case");
+ return false;
+ }
+ }
+
+ command->Run();
+ }
+
+ return true;
+}
+
+void ApplicationManagerImpl::SendMessageToHMI(
+ const utils::SharedPtr<smart_objects::SmartObject>& message) {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::SendMessageToHMI");
+
+ if (!message) {
+ LOG4CXX_WARN(logger_, "Null-pointer message received.");
+ NOTREACHED();
+ return;
+ }
+
+ if (!hmi_handler_) {
+ LOG4CXX_WARN(logger_, "No HMI Handler set");
+ return;
+ }
+
+ // SmartObject |message| has no way to declare priority for now
+ utils::SharedPtr<Message> message_to_send(
+ new Message(protocol_handler::MessagePriority::kDefault));
+ if (!message_to_send) {
+ LOG4CXX_ERROR(logger_, "Null pointer");
+ return;
+ }
+
+ hmi_so_factory().attachSchema(*message);
+ LOG4CXX_INFO(
+ logger_,
+ "Attached schema to message, result if valid: " << message->isValid());
+
+#ifdef WEB_HMI
+ if (!ConvertSOtoMessage(*message, *message_to_send)) {
+ LOG4CXX_WARN(logger_,
+ "Cannot send message to HMI: failed to create string");
+ return;
+ }
+#endif // WEB_HMI
+
+#ifdef QT_HMI
+ message_to_send->set_smart_object(*message);
+#endif // QT_HMI
+
+ messages_to_hmi_.PostMessage(impl::MessageToHmi(message_to_send));
+}
+
+bool ApplicationManagerImpl::ManageHMICommand(
+ const utils::SharedPtr<smart_objects::SmartObject>& message) {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::ManageHMICommand");
+
+ if (!message) {
+ LOG4CXX_WARN(logger_, "Null-pointer message received.");
+ NOTREACHED();
+ return false;
+ }
+
+#ifdef DEBUG
+ MessageHelper::PrintSmartObject(*message);
+#endif
+
+ CommandSharedPtr command = HMICommandFactory::CreateCommand(message);
+
+ if (!command) {
+ LOG4CXX_WARN(logger_, "Failed to create command from smart object");
+ return false;
+ }
+
+ if (command->Init()) {
+ command->Run();
+ if (command->CleanUp()) {
+ return true;
+ }
+ }
+ return false;
+}
+
+void ApplicationManagerImpl::CreateHMIMatrix(HMIMatrix* matrix) {
+}
+
+void ApplicationManagerImpl::CreatePoliciesManager(PoliciesManager* managaer) {
+}
+
+bool ApplicationManagerImpl::CheckPolicies(smart_objects::SmartObject* message,
+ ApplicationSharedPtr app) {
+ return true;
+}
+
+bool ApplicationManagerImpl::CheckHMIMatrix(
+ smart_objects::SmartObject* message) {
+ return true;
+}
+
+bool ApplicationManagerImpl::ConvertMessageToSO(
+ const Message& message, smart_objects::SmartObject& output) {
+ LOG4CXX_INFO(
+ logger_,
+ "\t\t\tMessage to convert: protocol " << message.protocol_version()
+ << "; json " << message.json_message());
+
+ switch (message.protocol_version()) {
+ case ProtocolVersion::kV2: {
+
+ if (!formatters::CFormatterJsonSDLRPCv2::fromString(
+ message.json_message(),
+ output,
+ message.function_id(),
+ message.type(),
+ message.correlation_id())
+ || !mobile_so_factory().attachSchema(output)
+ || ((output.validate() != smart_objects::Errors::OK)
+ && (output.validate() !=
+ smart_objects::Errors::UNEXPECTED_PARAMETER))) {
+ LOG4CXX_WARN(logger_, "Failed to parse string to smart object");
+ utils::SharedPtr<smart_objects::SmartObject> response(
+ MessageHelper::CreateNegativeResponse(
+ message.connection_key(), message.function_id(),
+ message.correlation_id(), mobile_apis::Result::INVALID_DATA));
+ ManageMobileCommand(response);
+ return false;
+ }
+ LOG4CXX_INFO(
+ logger_,
+ "Convertion result for sdl object is true" << " function_id "
+ << output[jhs::S_PARAMS][jhs::S_FUNCTION_ID].asInt());
+ output[strings::params][strings::connection_key] =
+ message.connection_key();
+ if (message.binary_data()) {
+ output[strings::params][strings::binary_data] =
+ *(message.binary_data());
+ }
+ break;
+ }
+ case ProtocolVersion::kHMI: {
+ int32_t result = formatters::FormatterJsonRpc::FromString <
+ hmi_apis::FunctionID::eType, hmi_apis::messageType::eType > (
+ message.json_message(), output);
+ LOG4CXX_INFO(
+ logger_,
+ "Convertion result: " << result << " function id "
+ << output[jhs::S_PARAMS][jhs::S_FUNCTION_ID].asInt());
+ if (!hmi_so_factory().attachSchema(output)) {
+ LOG4CXX_WARN(logger_, "Failed to attach schema to object.");
+ return false;
+ }
+ if (output.validate() != smart_objects::Errors::OK &&
+ output.validate() != smart_objects::Errors::UNEXPECTED_PARAMETER) {
+ LOG4CXX_WARN(
+ logger_,
+ "Incorrect parameter from HMI");
+ output.erase(strings::msg_params);
+ output[strings::params][hmi_response::code] =
+ hmi_apis::Common_Result::INVALID_DATA;
+ output[strings::msg_params][strings::info] =
+ std::string("Received invalid data on HMI response");
+ }
+ break;
+ }
+ case ProtocolVersion::kV1: {
+ static NsSmartDeviceLinkRPC::V1::v4_protocol_v1_2_no_extra v1_shema;
+
+ if (message.function_id() == 0 || message.type() == kUnknownType) {
+ LOG4CXX_ERROR(logger_, "Message received: UNSUPPORTED_VERSION");
+
+ int32_t conversation_result =
+ formatters::CFormatterJsonSDLRPCv1::fromString <
+ NsSmartDeviceLinkRPC::V1::FunctionID::eType,
+ NsSmartDeviceLinkRPC::V1::messageType::eType > (
+ message.json_message(), output);
+
+ if (formatters::CFormatterJsonSDLRPCv1::kSuccess
+ == conversation_result) {
+
+ smart_objects::SmartObject params = smart_objects::SmartObject(smart_objects::SmartType::SmartType_Map);
+
+ output[strings::params][strings::message_type] =
+ NsSmartDeviceLinkRPC::V1::messageType::response;
+ output[strings::params][strings::connection_key] = message.connection_key();
+
+ output[strings::msg_params] =
+ smart_objects::SmartObject(smart_objects::SmartType::SmartType_Map);
+ output[strings::msg_params][strings::success] = false;
+ output[strings::msg_params][strings::result_code] =
+ NsSmartDeviceLinkRPC::V1::Result::UNSUPPORTED_VERSION;
+
+ smart_objects::SmartObject* msg_to_send = new smart_objects::SmartObject(output);
+ v1_shema.attachSchema(*msg_to_send);
+ SendMessageToMobile(msg_to_send);
+ return false;
+ }
+ }
+
+ break;
+ }
+ default:
+ // TODO(PV):
+ // removed NOTREACHED() because some app can still have vesion 1.
+ LOG4CXX_WARN(
+ logger_,
+ "Application used unsupported protocol :" << message.protocol_version()
+ << ".");
+ return false;
+ }
+
+ LOG4CXX_INFO(logger_, "Successfully parsed message into smart object");
+ return true;
+}
+
+bool ApplicationManagerImpl::ConvertSOtoMessage(
+ const smart_objects::SmartObject& message, Message& output) {
+ LOG4CXX_INFO(logger_, "Message to convert");
+
+ if (smart_objects::SmartType_Null == message.getType()
+ || smart_objects::SmartType_Invalid == message.getType()) {
+ LOG4CXX_WARN(logger_, "Invalid smart object received.");
+ return false;
+ }
+
+ LOG4CXX_INFO(
+ logger_,
+ "Message with protocol: "
+ << message.getElement(jhs::S_PARAMS).getElement(jhs::S_PROTOCOL_TYPE)
+ .asInt());
+
+ std::string output_string;
+ switch (message.getElement(jhs::S_PARAMS).getElement(jhs::S_PROTOCOL_TYPE)
+ .asInt()) {
+ case 0:
+ {
+ if (message.getElement(jhs::S_PARAMS).getElement(jhs::S_PROTOCOL_VERSION).asInt() == 1) {
+ if (!formatters::CFormatterJsonSDLRPCv1::toString(message,
+ output_string)) {
+ LOG4CXX_WARN(logger_, "Failed to serialize smart object");
+ return false;
+ }
+ output.set_protocol_version(application_manager::kV1);
+ } else {
+ if (!formatters::CFormatterJsonSDLRPCv2::toString(message,
+ output_string)) {
+ LOG4CXX_WARN(logger_, "Failed to serialize smart object");
+ return false;
+ }
+ output.set_protocol_version(application_manager::kV2);
+ }
+
+ break;
+ }
+ case 1: {
+ if (!formatters::FormatterJsonRpc::ToString(message, output_string)) {
+ LOG4CXX_WARN(logger_, "Failed to serialize smart object");
+ return false;
+ }
+ output.set_protocol_version(application_manager::kHMI);
+ break;
+ }
+ default:
+ NOTREACHED();
+ return false;
+ }
+
+ LOG4CXX_INFO(logger_, "Convertion result: " << output_string);
+
+ output.set_connection_key(
+ message.getElement(jhs::S_PARAMS).getElement(strings::connection_key)
+ .asInt());
+
+ output.set_function_id(
+ message.getElement(jhs::S_PARAMS).getElement(jhs::S_FUNCTION_ID).asInt());
+
+ output.set_correlation_id(
+ message.getElement(jhs::S_PARAMS).getElement(jhs::S_CORRELATION_ID)
+ .asInt());
+ output.set_message_type(
+ static_cast<MessageType>(message.getElement(jhs::S_PARAMS).getElement(
+ jhs::S_MESSAGE_TYPE).asInt()));
+
+ // Currently formatter creates JSON = 3 bytes for empty SmartObject.
+ // workaround for notification. JSON must be empty
+ if (mobile_apis::FunctionID::OnAudioPassThruID
+ != message.getElement(jhs::S_PARAMS).getElement(strings::function_id)
+ .asInt()) {
+ output.set_json_message(output_string);
+ }
+
+ if (message.getElement(jhs::S_PARAMS).keyExists(strings::binary_data)) {
+ application_manager::BinaryData* binaryData =
+ new application_manager::BinaryData(
+ message.getElement(jhs::S_PARAMS).getElement(strings::binary_data)
+ .asBinary());
+
+ if (NULL == binaryData) {
+ LOG4CXX_ERROR(logger_, "Null pointer");
+ return false;
+ }
+ output.set_binary_data(binaryData);
+ }
+
+ LOG4CXX_INFO(logger_, "Successfully parsed smart object into message");
+ return true;
+}
+
+utils::SharedPtr<Message> ApplicationManagerImpl::ConvertRawMsgToMessage(
+ const protocol_handler::RawMessagePtr& message) {
+ DCHECK(message);
+ utils::SharedPtr<Message> outgoing_message;
+
+ if (message->service_type() != protocol_handler::kRpc
+ &&
+ message->service_type() != protocol_handler::kBulk) {
+ // skip this message, not under handling of ApplicationManager
+ LOG4CXX_INFO(logger_, "Skipping message; not the under AM handling.");
+ return outgoing_message;
+ }
+
+ Message* convertion_result = NULL;
+ if (message->protocol_version() == 1) {
+ convertion_result =
+ MobileMessageHandler::HandleIncomingMessageProtocolV1(message);
+ } else if (message->protocol_version() == 2) {
+ convertion_result =
+ MobileMessageHandler::HandleIncomingMessageProtocolV2(message);
+ } else {
+ LOG4CXX_WARN(logger_, "Unknown protocol version.");
+ return outgoing_message;
+ }
+
+ if (convertion_result) {
+ outgoing_message = convertion_result;
+ } else {
+ LOG4CXX_ERROR(logger_, "Received invalid message");
+ }
+ return outgoing_message;
+}
+
+void ApplicationManagerImpl::ProcessMessageFromMobile(
+ const utils::SharedPtr<Message>& message) {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::ProcessMessageFromMobile()");
+
+ utils::SharedPtr<smart_objects::SmartObject> so_from_mobile(
+ new smart_objects::SmartObject);
+
+ if (!so_from_mobile) {
+ LOG4CXX_ERROR(logger_, "Null pointer");
+ return;
+ }
+
+ if (!ConvertMessageToSO(*message, *so_from_mobile)) {
+ LOG4CXX_ERROR(logger_, "Cannot create smart object from message");
+ return;
+ }
+
+ if (!ManageMobileCommand(so_from_mobile)) {
+ LOG4CXX_ERROR(logger_, "Received command didn't run successfully");
+ }
+}
+
+void ApplicationManagerImpl::ProcessMessageFromHMI(
+ const utils::SharedPtr<Message>& message) {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::ProcessMessageFromHMI()");
+ utils::SharedPtr<smart_objects::SmartObject> smart_object(
+ new smart_objects::SmartObject);
+
+ if (!smart_object) {
+ LOG4CXX_ERROR(logger_, "Null pointer");
+ return;
+ }
+
+#ifdef WEB_HMI
+ if (!ConvertMessageToSO(*message, *smart_object)) {
+ LOG4CXX_ERROR(logger_, "Cannot create smart object from message");
+ return;
+ }
+#endif // WEB_HMI
+
+#ifdef QT_HMI
+ *smart_object = message->smart_object();
+#endif // QT_HMI
+
+ LOG4CXX_INFO(logger_, "Converted message, trying to create hmi command");
+ if (!ManageHMICommand(smart_object)) {
+ LOG4CXX_ERROR(logger_, "Received command didn't run successfully");
+ }
+}
+
+hmi_apis::HMI_API& ApplicationManagerImpl::hmi_so_factory() {
+ if (!hmi_so_factory_) {
+ hmi_so_factory_ = new hmi_apis::HMI_API;
+ if (!hmi_so_factory_) {
+ LOG4CXX_ERROR(logger_, "Out of memory");
+ NOTREACHED();
+ }
+ }
+ return *hmi_so_factory_;
+}
+
+mobile_apis::MOBILE_API& ApplicationManagerImpl::mobile_so_factory() {
+ if (!mobile_so_factory_) {
+ mobile_so_factory_ = new mobile_apis::MOBILE_API;
+ if (!mobile_so_factory_) {
+ LOG4CXX_ERROR(logger_, "Out of memory.");
+ NOTREACHED();
+ }
+ }
+ return *mobile_so_factory_;
+}
+
+HMICapabilities& ApplicationManagerImpl::hmi_capabilities() {
+ return hmi_capabilities_;
+}
+
+void ApplicationManagerImpl::addNotification(const CommandSharedPtr& ptr) {
+ notification_list_.push_back(ptr);
+}
+
+void ApplicationManagerImpl::removeNotification(const CommandSharedPtr& ptr) {
+ std::list<CommandSharedPtr>::iterator it = notification_list_.begin();
+ for (; notification_list_.end() != it; ++it) {
+ if (*it == ptr) {
+ notification_list_.erase(it);
+ break;
+ }
+ }
+}
+
+void ApplicationManagerImpl::updateRequestTimeout(uint32_t connection_key,
+ uint32_t mobile_correlation_id,
+ uint32_t new_timeout_value) {
+ request_ctrl_.updateRequestTimeout(connection_key, mobile_correlation_id,
+ new_timeout_value);
+}
+
+const uint32_t ApplicationManagerImpl::application_id
+(const int32_t correlation_id) {
+ // ykazakov: there is no erase for const iterator for QNX
+ std::map<const int32_t, const uint32_t>::iterator it =
+ appID_list_.find(correlation_id);
+ if (appID_list_.end() != it) {
+ const uint32_t app_id = it->second;
+ appID_list_.erase(it);
+ return app_id;
+ } else {
+ return 0;
+ }
+}
+
+void ApplicationManagerImpl::set_application_id(const int32_t correlation_id,
+ const uint32_t app_id) {
+ appID_list_.insert(std::pair<const int32_t, const uint32_t>
+ (correlation_id, app_id));
+}
+
+void ApplicationManagerImpl::SetUnregisterAllApplicationsReason(
+ mobile_api::AppInterfaceUnregisteredReason::eType reason) {
+ unregister_reason_ = reason;
+}
+
+void ApplicationManagerImpl::UnregisterAllApplications() {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::UnregisterAllApplications " <<
+ unregister_reason_);
+
+ hmi_cooperating_ = false;
+
+ std::set<ApplicationSharedPtr>::iterator it = application_list_.begin();
+ while (it != application_list_.end()) {
+ MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
+ (*it)->app_id(), unregister_reason_);
+
+ UnregisterApplication((*it)->app_id(), true);
+ it = application_list_.begin();
+ }
+ resume_ctrl_.SavetoFileSystem();
+}
+
+void ApplicationManagerImpl::UnregisterApplication(const uint32_t& app_id, bool is_resuming) {
+ LOG4CXX_INFO(logger_,
+ "ApplicationManagerImpl::UnregisterApplication " << app_id);
+
+ sync_primitives::AutoLock lock(applications_list_lock_);
+
+ std::map<int32_t, ApplicationSharedPtr>::iterator it = applications_.find(app_id);
+ if (applications_.end() == it) {
+ LOG4CXX_INFO(logger_, "Application is already unregistered.");
+ return;
+ }
+ ApplicationSharedPtr app_to_remove = it->second;
+ if (is_resuming) {
+ resume_ctrl_.SaveApplication(app_to_remove);
+ }
+ if (audio_pass_thru_active_) {
+ // May be better to put this code in MessageHelper?
+ end_audio_pass_thru();
+ StopAudioPassThru(app_id);
+ MessageHelper::SendStopAudioPathThru();
+ }
+ MessageHelper::RemoveAppDataFromHMI(it->second);
+ MessageHelper::SendOnAppUnregNotificationToHMI(it->second);
+ applications_.erase(it);
+ application_list_.erase(app_to_remove);
+ request_ctrl_.terminateAppRequests(app_id);
+
+ return;
+}
+
+void ApplicationManagerImpl::Handle(const impl::MessageFromMobile& message) {
+ LOG4CXX_INFO(logger_, "Received message from Mobile side");
+
+ if (!message) {
+ LOG4CXX_ERROR(logger_, "Null-pointer message received.");
+ return;
+ }
+ ProcessMessageFromMobile(message);
+}
+
+void ApplicationManagerImpl::Handle(const impl::MessageToMobile& message) {
+ protocol_handler::RawMessage* rawMessage = 0;
+ if (message->protocol_version() == application_manager::kV1) {
+ rawMessage = MobileMessageHandler::HandleOutgoingMessageProtocolV1(
+ message);
+ } else if (message->protocol_version() == application_manager::kV2) {
+ rawMessage = MobileMessageHandler::HandleOutgoingMessageProtocolV2(
+ message);
+ } else {
+ return;
+ }
+ if (!rawMessage) {
+ LOG4CXX_ERROR(logger_, "Failed to create raw message.");
+ return;
+ }
+
+ if (!protocol_handler_) {
+ LOG4CXX_WARN(logger_,
+ "Protocol Handler is not set; cannot send message to mobile.");
+ return;
+ }
+
+ protocol_handler_->SendMessageToMobileApp(rawMessage, message.is_final);
+
+ LOG4CXX_INFO(logger_, "Message for mobile given away.");
+}
+
+void ApplicationManagerImpl::Handle(const impl::MessageFromHmi& message) {
+ LOG4CXX_INFO(logger_, "Received message from hmi");
+
+ if (!message) {
+ LOG4CXX_ERROR(logger_, "Null-pointer message received.");
+ return;
+ }
+
+ ProcessMessageFromHMI(message);
+}
+
+void ApplicationManagerImpl::Handle(const impl::MessageToHmi& message) {
+ LOG4CXX_INFO(logger_, "Received message to hmi");
+ if (!hmi_handler_) {
+ LOG4CXX_ERROR(logger_, "Observer is not set for HMIMessageHandler");
+ return;
+ }
+
+ hmi_handler_->SendMessageToHMI(message);
+ LOG4CXX_INFO(logger_, "Message from hmi given away.");
+}
+
+
+void ApplicationManagerImpl::Mute() {
+ mobile_apis::AudioStreamingState::eType state =
+ hmi_capabilities_.attenuated_supported()
+ ? mobile_apis::AudioStreamingState::ATTENUATED
+ : mobile_apis::AudioStreamingState::NOT_AUDIBLE;
+
+ std::set<ApplicationSharedPtr>::const_iterator it = application_list_.begin();
+ std::set<ApplicationSharedPtr>::const_iterator itEnd = application_list_.end();
+ for (; it != itEnd; ++it) {
+ if ((*it)->is_media_application()) {
+ (*it)->set_audio_streaming_state(state);
+ (*it)->set_tts_speak_state(true);
+ MessageHelper::SendHMIStatusNotification(*(*it));
+ }
+ }
+}
+
+void ApplicationManagerImpl::Unmute() {
+ std::set<ApplicationSharedPtr>::const_iterator it = application_list_.begin();
+ std::set<ApplicationSharedPtr>::const_iterator itEnd = application_list_.end();
+ for (; it != itEnd; ++it) {
+ if ((*it)->is_media_application()) {
+ (*it)->set_audio_streaming_state(
+ mobile_apis::AudioStreamingState::AUDIBLE);
+ (*it)->set_tts_speak_state(false);
+ MessageHelper::SendHMIStatusNotification(*(*it));
+ }
+ }
+}
+
+mobile_apis::Result::eType ApplicationManagerImpl::SaveBinary(
+ const std::string& app_name, const std::vector<uint8_t>& binary_data,
+ const std::string& save_path, const uint32_t offset) {
+ if (binary_data.size() > file_system::GetAvailableSpaceForApp(app_name)) {
+ return mobile_apis::Result::OUT_OF_MEMORY;
+ }
+
+ LOG4CXX_INFO(logger_, "SaveBinaryWithOffset binary_size = "
+ << binary_data.size() << " offset = " << offset);
+
+ uint32_t file_size = file_system::FileSize(file_system::FullPath(save_path));
+ std::ofstream* file_stream;
+ if (offset != 0) {
+ if (file_size != offset) {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::SaveBinaryWithOffset offset does'n match existing filesize");
+ return mobile_apis::Result::INVALID_DATA;
+ }
+ file_stream = file_system::Open(file_system::FullPath(save_path),
+ std::ios_base::app);
+ } else {
+ LOG4CXX_INFO(logger_, "ApplicationManagerImpl::SaveBinaryWithOffset offset is 0, rewrite");
+ // if offset == 0: rewrite file
+ file_stream = file_system::Open(file_system::FullPath(save_path),
+ std::ios_base::out);
+ }
+
+ if (!file_system::Write(file_stream,binary_data.data(), binary_data.size())) {
+ file_system::Close(file_stream);
+ return mobile_apis::Result::GENERIC_ERROR;
+ }
+ file_system::Close(file_stream);
+ LOG4CXX_INFO(logger_, "Successfully write data to file");
+ return mobile_apis::Result::SUCCESS;
+}
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/command_impl.cc b/SDL_Core/src/components/application_manager/src/commands/command_impl.cc
new file mode 100644
index 000000000..95d96bde1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/command_impl.cc
@@ -0,0 +1,67 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/command_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+log4cxx::LoggerPtr logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("Commands"));
+
+const int32_t CommandImpl::hmi_protocol_type_ = 1;
+const int32_t CommandImpl::mobile_protocol_type_ = 0;
+const int32_t CommandImpl::protocol_version_ = 2;
+
+CommandImpl::CommandImpl(const MessageSharedPtr& message)
+ : message_(message) {
+}
+
+CommandImpl::~CommandImpl() {
+ CleanUp();
+}
+
+bool CommandImpl::Init() {
+ return true;
+}
+
+bool CommandImpl::CleanUp() {
+ return true;
+}
+
+void CommandImpl::Run() {
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/command_notification_impl.cc b/SDL_Core/src/components/application_manager/src/commands/command_notification_impl.cc
new file mode 100644
index 000000000..c99f2d908
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/command_notification_impl.cc
@@ -0,0 +1,74 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/command_notification_impl.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/message_helper.h"
+
+namespace application_manager {
+
+namespace commands {
+
+CommandNotificationImpl::CommandNotificationImpl(
+ const MessageSharedPtr& message)
+ : CommandImpl(message) {
+}
+
+CommandNotificationImpl::~CommandNotificationImpl() {
+}
+
+bool CommandNotificationImpl::Init() {
+ return true;
+}
+
+bool CommandNotificationImpl::CleanUp() {
+ return true;
+}
+
+void CommandNotificationImpl::Run() {
+}
+
+void CommandNotificationImpl::SendNotification() {
+ (*message_)[strings::params][strings::protocol_type] = mobile_protocol_type_;
+ (*message_)[strings::params][strings::protocol_version] = protocol_version_;
+ (*message_)[strings::params][strings::message_type] =
+ static_cast<int32_t>(application_manager::MessageType::kNotification);
+
+ LOG4CXX_INFO(logger_, "SendNotification");
+ MessageHelper::PrintSmartObject(*message_);
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/command_request_impl.cc b/SDL_Core/src/components/application_manager/src/commands/command_request_impl.cc
new file mode 100644
index 000000000..0ba1ba69d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/command_request_impl.cc
@@ -0,0 +1,211 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string>
+#include "application_manager/commands/command_request_impl.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/message_helper.h"
+#include "smart_objects/smart_object.h"
+#include "config_profile/profile.h"
+
+namespace application_manager {
+
+namespace commands {
+
+CommandRequestImpl::CommandRequestImpl(const MessageSharedPtr& message)
+ : CommandImpl(message),
+ default_timeout_(profile::Profile::instance()->default_timeout()),
+ current_state_(kAwaitingHMIResponse) {
+}
+
+CommandRequestImpl::~CommandRequestImpl() {
+}
+
+bool CommandRequestImpl::Init() {
+ return true;
+}
+
+bool CommandRequestImpl::CleanUp() {
+ return true;
+}
+
+void CommandRequestImpl::Run() {
+}
+
+void CommandRequestImpl::onTimeOut() {
+ LOG4CXX_INFO(logger_, "CommandRequestImpl::onTimeOut");
+
+ unsubscribe_from_all_events();
+ {
+ sync_primitives::AutoLock auto_lock(state_lock_);
+ if (kCompleted == current_state_) {
+ // don't send timeout if request completed
+ return;
+ }
+
+ current_state_ = kTimedOut;
+ }
+
+ smart_objects::SmartObject* response =
+ MessageHelper::CreateNegativeResponse(connection_key(), function_id(),
+ correlation_id(), mobile_api::Result::TIMED_OUT);
+
+ ApplicationManagerImpl::instance()->ManageMobileCommand(response);
+}
+
+void CommandRequestImpl::on_event(const event_engine::Event& event) {
+}
+
+void CommandRequestImpl::SendResponse(
+ const bool success, const mobile_apis::Result::eType& result_code,
+ const char* info, const NsSmart::SmartObject* response_params) {
+
+ {
+ sync_primitives::AutoLock auto_lock(state_lock_);
+ if (kTimedOut == current_state_) {
+ // don't send response if request timeout expired
+ return;
+ }
+
+ current_state_ = kCompleted;
+ }
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
+ new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+ if (!result) {
+ LOG4CXX_ERROR(logger_, "Memory allocation failed.");
+ return;
+ }
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& response = *result;
+
+ response[strings::params][strings::message_type] = MessageType::kResponse;
+ response[strings::params][strings::correlation_id] = correlation_id();
+ response[strings::params][strings::protocol_type] =
+ CommandImpl::mobile_protocol_type_;
+ response[strings::params][strings::protocol_version] =
+ CommandImpl::protocol_version_;
+ response[strings::params][strings::connection_key] = connection_key();
+ response[strings::params][strings::function_id] = function_id();
+
+ if (response_params) {
+ response[strings::msg_params] = *response_params;
+ }
+
+ if (info) {
+ response[strings::msg_params][strings::info] = std::string(info);
+ }
+
+ response[strings::msg_params][strings::success] = success;
+ response[strings::msg_params][strings::result_code] = result_code;
+
+ ApplicationManagerImpl::instance()->ManageMobileCommand(result);
+}
+
+bool CommandRequestImpl::CheckSyntax(std::string str, bool allow_empty_line) {
+ if (std::string::npos != str.find_first_of("\t\n")) {
+ LOG4CXX_ERROR(logger_, "CheckSyntax failed! :" << str);
+ return false;
+ }
+ if (!allow_empty_line) {
+ if ((std::string::npos == str.find_first_not_of(' '))) {
+ return false;
+ }
+ }
+ return true;
+}
+
+void CommandRequestImpl::SendHMIRequest(
+ const hmi_apis::FunctionID::eType& function_id,
+ const NsSmart::SmartObject* msg_params, bool use_events) {
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
+ new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+ if (!result) {
+ LOG4CXX_ERROR(logger_, "Memory allocation failed.");
+ return;
+ }
+
+ const uint32_t hmi_correlation_id =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+ if (use_events) {
+ subscribe_on_event(function_id, hmi_correlation_id);
+ }
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& request = *result;
+ request[strings::params][strings::message_type] = MessageType::kRequest;
+ request[strings::params][strings::function_id] = function_id;
+ request[strings::params][strings::correlation_id] = hmi_correlation_id;
+ request[strings::params][strings::protocol_version] =
+ CommandImpl::protocol_version_;
+ request[strings::params][strings::protocol_type] =
+ CommandImpl::hmi_protocol_type_;
+
+ if (msg_params) {
+ request[strings::msg_params] = *msg_params;
+ }
+
+ if (!ApplicationManagerImpl::instance()->ManageHMICommand(result)) {
+ LOG4CXX_ERROR(logger_, "Unable to send request");
+ SendResponse(false, mobile_apis::Result::OUT_OF_MEMORY);
+ }
+}
+
+//TODO(VS): Should be removed after we will shift to Event engine usage completely
+void CommandRequestImpl::CreateHMINotification(
+ const hmi_apis::FunctionID::eType& function_id,
+ const NsSmart::SmartObject& msg_params) const {
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
+ new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+ if (!result) {
+ LOG4CXX_ERROR(logger_, "Memory allocation failed.");
+ return;
+ }
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& notify = *result;
+
+ notify[strings::params][strings::message_type] =
+ static_cast<int32_t>(application_manager::MessageType::kNotification);
+ notify[strings::params][strings::function_id] = function_id;
+ notify[strings::params][strings::protocol_version] =
+ CommandImpl::protocol_version_;
+ notify[strings::params][strings::protocol_type] =
+ CommandImpl::hmi_protocol_type_;
+ notify[strings::msg_params] = msg_params;
+
+ if (!ApplicationManagerImpl::instance()->ManageHMICommand(result)) {
+ LOG4CXX_ERROR(logger_, "Unable to send HMI notification");
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/command_response_impl.cc b/SDL_Core/src/components/application_manager/src/commands/command_response_impl.cc
new file mode 100644
index 000000000..d7bd9133b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/command_response_impl.cc
@@ -0,0 +1,88 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/command_response_impl.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+CommandResponseImpl::CommandResponseImpl(const MessageSharedPtr& message)
+ : CommandImpl(message) {
+}
+
+CommandResponseImpl::~CommandResponseImpl() {
+}
+
+bool CommandResponseImpl::Init() {
+ return true;
+}
+
+bool CommandResponseImpl::CleanUp() {
+ return true;
+}
+
+void CommandResponseImpl::Run() {
+}
+
+void CommandResponseImpl::SendResponse(
+ bool success, const mobile_apis::Result::eType& result_code, bool final_message) {
+ LOG4CXX_INFO(logger_, "Trying to send response");
+
+ (*message_)[strings::params][strings::protocol_type] = mobile_protocol_type_;
+ (*message_)[strings::params][strings::protocol_version] = protocol_version_;
+ (*message_)[strings::msg_params][strings::success] = success;
+
+ if (!(*message_)[strings::msg_params].keyExists(strings::result_code)) {
+ if (mobile_apis::Result::INVALID_ENUM != result_code) {
+ (*message_)[strings::msg_params][strings::result_code] = result_code;
+ } else if ((*message_)[strings::params].keyExists(hmi_response::code)) {
+ (*message_)[strings::msg_params][strings::result_code] =
+ (*message_)[strings::params][hmi_response::code];
+ } else {
+ if (success) {
+ (*message_)[strings::msg_params][strings::result_code] =
+ mobile_apis::Result::SUCCESS;
+ } else {
+ (*message_)[strings::msg_params][strings::result_code] =
+ mobile_apis::Result::INVALID_ENUM;
+ }
+ }
+ }
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_, final_message);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_request.cc
new file mode 100644
index 000000000..de1cf3347
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_request.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/activate_app_request.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ActivateAppRequest::ActivateAppRequest(
+ const MessageSharedPtr& message): RequestToHMI(message) {
+}
+
+ActivateAppRequest::~ActivateAppRequest() {
+}
+
+void ActivateAppRequest::Run() {
+ LOG4CXX_INFO(logger_, "ActivateAppRequest::Run");
+ int32_t correlation_id = RequestToHMI::correlation_id();
+ uint32_t app_id = RequestToHMI::application_id();
+ ApplicationManagerImpl::instance()->set_application_id(correlation_id, app_id);
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_response.cc
new file mode 100644
index 000000000..fc31b34b5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/activate_app_response.cc
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/activate_app_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ActivateAppResponse::ActivateAppResponse(
+ const MessageSharedPtr& message): ResponseFromHMI(message) {
+}
+
+ActivateAppResponse::~ActivateAppResponse() {
+}
+
+void ActivateAppResponse::Run() {
+ LOG4CXX_INFO(logger_, "ActivateAppResponse::Run");
+ const hmi_apis::Common_Result::eType code =
+ static_cast<hmi_apis::Common_Result::eType>(
+ (*message_)[strings::params][hmi_response::code].asInt());
+ if (hmi_apis::Common_Result::SUCCESS == code) {
+ int32_t correlation_id = ResponseFromHMI::correlation_id();
+ const uint32_t app_id = ApplicationManagerImpl::instance()->
+ application_id(correlation_id);
+ if (!app_id) {
+ LOG4CXX_ERROR(logger_, "Error app_id = "<<app_id);
+ return;
+ }
+ ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(app_id);
+ if (application) {
+ ApplicationManagerImpl::instance()->ActivateApplication(application);
+ } else {
+ LOG4CXX_ERROR(logger_, "Application cannot activate");
+ }
+ } else {
+ LOG4CXX_ERROR(logger_, "Error result code"<<code);
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc
new file mode 100644
index 000000000..6ac42c7a0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/allow_all_apps_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AllowAllAppsRequest::AllowAllAppsRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+AllowAllAppsRequest::~AllowAllAppsRequest() {
+}
+
+void AllowAllAppsRequest::Run() {
+ LOG4CXX_INFO(logger_, "AllowAllAppsRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc
new file mode 100644
index 000000000..69c52a326
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_all_apps_response.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/allow_all_apps_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AllowAllAppsResponse::AllowAllAppsResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+AllowAllAppsResponse::~AllowAllAppsResponse() {
+}
+
+void AllowAllAppsResponse::Run() {
+ LOG4CXX_INFO(logger_, "AllowAllAppsResponse::Run");
+
+ ApplicationManagerImpl::instance()->set_all_apps_allowed(
+ (*message_)[strings::msg_params][hmi_response::allowed].asBool());
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_request.cc
new file mode 100644
index 000000000..302a8c676
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/allow_app_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AllowAppRequest::AllowAppRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+AllowAppRequest::~AllowAppRequest() {
+}
+
+void AllowAppRequest::Run() {
+ LOG4CXX_INFO(logger_, "AllowAppRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_response.cc
new file mode 100644
index 000000000..035e41438
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/allow_app_response.cc
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/allow_app_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AllowAppResponse::AllowAppResponse(
+ const MessageSharedPtr& message): ResponseFromHMI(message) {
+}
+
+AllowAppResponse::~AllowAppResponse() {
+}
+
+void AllowAppResponse::Run() {
+ LOG4CXX_INFO(logger_, "AllowAppResponse::Run");
+
+ uint32_t connection_key =
+ (*message_)[strings::params][strings::connection_key].asInt();
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->
+ application(connection_key);
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+ app->set_app_allowed((*message_)[strings::msg_params][hmi_response::allowed].asBool());
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_request.cc
new file mode 100644
index 000000000..15ffbfe2e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_request.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/audio_start_stream_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AudioStartStreamRequest::AudioStartStreamRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+AudioStartStreamRequest::~AudioStartStreamRequest() {
+}
+
+void AudioStartStreamRequest::Run() {
+ LOG4CXX_INFO(logger_, "AudioStartStreamRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_response.cc
new file mode 100644
index 000000000..1acc07d46
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_start_stream_response.cc
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/audio_start_stream_response.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AudioStartStreamResponse::AudioStartStreamResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+AudioStartStreamResponse::~AudioStartStreamResponse() {
+}
+
+void AudioStartStreamResponse::Run() {
+ LOG4CXX_INFO(logger_, "AudioStartStreamResponse::Run");
+
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_request.cc
new file mode 100644
index 000000000..72c0a54eb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_request.cc
@@ -0,0 +1,23 @@
+#include "application_manager/commands/hmi/audio_stop_stream_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AudioStopStreamRequest::AudioStopStreamRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+AudioStopStreamRequest::~AudioStopStreamRequest() {
+}
+
+void AudioStopStreamRequest::Run() {
+ LOG4CXX_INFO(logger_, "AudioStopStreamRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_response.cc
new file mode 100644
index 000000000..f583feb23
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/audio_stop_stream_response.cc
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/audio_stop_stream_response.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AudioStopStreamResponse::AudioStopStreamResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+AudioStopStreamResponse::~AudioStopStreamResponse() {
+}
+
+void AudioStopStreamResponse::Run() {
+ LOG4CXX_INFO(logger_, "AudioStopStreamResponse::Run");
+
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc
new file mode 100644
index 000000000..e00b3fdc5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_request.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/button_get_capabilities_request.h"
+#include "utils/logger.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ButtonGetCapabilitiesRequest::ButtonGetCapabilitiesRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+ButtonGetCapabilitiesRequest::~ButtonGetCapabilitiesRequest() {
+}
+
+void ButtonGetCapabilitiesRequest::Run() {
+ LOG4CXX_INFO(logger_, "ButtonGetCapabilitiesRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc
new file mode 100644
index 000000000..0b6723474
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/button_get_capabilities_response.cc
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/button_get_capabilities_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "utils/logger.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ButtonGetCapabilitiesResponse::ButtonGetCapabilitiesResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+ButtonGetCapabilitiesResponse::~ButtonGetCapabilitiesResponse() {
+}
+
+void ButtonGetCapabilitiesResponse::Run() {
+ LOG4CXX_INFO(logger_, "ButtonGetCapabilitiesResponse::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_button_capabilities(
+ (*message_)[strings::msg_params][hmi_response::capabilities]);
+
+ hmi_capabilities.set_preset_bank_capabilities(
+ (*message_)[strings::msg_params][hmi_response::preset_bank_capabilities]);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_request.cc
new file mode 100644
index 000000000..3cc581868
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/close_popup_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ClosePopupRequest::ClosePopupRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+ClosePopupRequest::~ClosePopupRequest() {
+}
+
+void ClosePopupRequest::Run() {
+ LOG4CXX_INFO(logger_, "ClosePopupRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_response.cc
new file mode 100644
index 000000000..fa98be5e0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/close_popup_response.cc
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/close_popup_response.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ClosePopupResponse::ClosePopupResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+ClosePopupResponse::~ClosePopupResponse() {
+}
+
+void ClosePopupResponse::Run() {
+ LOG4CXX_INFO(logger_, "ClosePopupResponse::Run");
+
+ // TODO(VS): Process response from HMI
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc
new file mode 100644
index 000000000..9ab4bf5db
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/mixing_audio_supported_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+MixingAudioSupportedRequest::MixingAudioSupportedRequest(
+ const MessageSharedPtr& message) : RequestToHMI(message) {
+}
+
+MixingAudioSupportedRequest::~MixingAudioSupportedRequest() {
+}
+
+void MixingAudioSupportedRequest::Run() {
+ LOG4CXX_INFO(logger_, "MixingAudioSupportedRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc
new file mode 100644
index 000000000..4a4fc276d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/mixing_audio_supported_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/mixing_audio_supported_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+MixingAudioSupportedResponse::MixingAudioSupportedResponse(
+ const MessageSharedPtr& message) : ResponseFromHMI(message) {
+}
+
+MixingAudioSupportedResponse::~MixingAudioSupportedResponse() {
+}
+
+void MixingAudioSupportedResponse::Run() {
+ LOG4CXX_INFO(logger_, "MixingAudioSupportedResponse::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ hmi_capabilities.set_attenuated_supported((*message_)
+ [strings::msg_params][hmi_response::attenuated_supported].asBool());
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc
new file mode 100644
index 000000000..7128231b1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/navi_alert_maneuver_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviAlertManeuverRequest::NaviAlertManeuverRequest(
+ const MessageSharedPtr& message) : RequestToHMI(message) {
+}
+
+NaviAlertManeuverRequest::~NaviAlertManeuverRequest() {
+}
+
+void NaviAlertManeuverRequest::Run() {
+ LOG4CXX_INFO(logger_, "NaviAlertManeuverRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc
new file mode 100644
index 000000000..823c96211
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_alert_maneuver_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/navi_alert_maneuver_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviAlertManeuverResponse::NaviAlertManeuverResponse(
+ const MessageSharedPtr& message) : ResponseFromHMI(message) {
+}
+
+NaviAlertManeuverResponse::~NaviAlertManeuverResponse() {
+}
+
+void NaviAlertManeuverResponse::Run() {
+ LOG4CXX_INFO(logger_, "NaviAlertManeuverResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::Navigation_AlertManeuver);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc
new file mode 100644
index 000000000..b7a179942
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/navi_is_ready_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviIsReadyRequest::NaviIsReadyRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+NaviIsReadyRequest::~NaviIsReadyRequest() {
+}
+
+void NaviIsReadyRequest::Run() {
+ LOG4CXX_INFO(logger_, "NaviIsReadyRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc
new file mode 100644
index 000000000..8aef42b40
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_is_ready_response.cc
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/navi_is_ready_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviIsReadyResponse::NaviIsReadyResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+NaviIsReadyResponse::~NaviIsReadyResponse() {
+}
+
+void NaviIsReadyResponse::Run() {
+ LOG4CXX_INFO(logger_, "NaviIsReadyResponse::Run");
+ smart_objects::SmartObject& object = *message_;
+
+ bool is_available = false;
+ if (object[strings::msg_params].keyExists(strings::available)) {
+ is_available = object[strings::msg_params][strings::available].asBool();
+ }
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_is_navi_cooperating(is_available);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc
new file mode 100644
index 000000000..9103e1f6c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/navi_show_constant_tbt_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviShowConstantTBTRequest::NaviShowConstantTBTRequest(
+ const MessageSharedPtr& message) : RequestToHMI(message) {
+}
+
+NaviShowConstantTBTRequest::~NaviShowConstantTBTRequest() {
+}
+
+void NaviShowConstantTBTRequest::Run() {
+ LOG4CXX_INFO(logger_, "NaviShowConstantTBTRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc
new file mode 100644
index 000000000..03c70dd81
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_show_constant_tbt_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/navi_show_constant_tbt_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviShowConstantTBTResponse::NaviShowConstantTBTResponse(
+ const MessageSharedPtr& message) : ResponseFromHMI(message) {
+}
+
+NaviShowConstantTBTResponse::~NaviShowConstantTBTResponse() {
+}
+
+void NaviShowConstantTBTResponse::Run() {
+ LOG4CXX_INFO(logger_, "NaviShowConstantTBTResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::Navigation_ShowConstantTBT);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc
new file mode 100644
index 000000000..cb9dbd61e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_request.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/navi_start_stream_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviStartStreamRequest::NaviStartStreamRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+NaviStartStreamRequest::~NaviStartStreamRequest() {
+}
+
+void NaviStartStreamRequest::Run() {
+ LOG4CXX_INFO(logger_, "NaviStartStreamRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc
new file mode 100644
index 000000000..77a9ff577
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_start_stream_response.cc
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/navi_start_stream_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviStartStreamResponse::NaviStartStreamResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+NaviStartStreamResponse::~NaviStartStreamResponse() {
+}
+
+void NaviStartStreamResponse::Run() {
+ LOG4CXX_INFO(logger_, "NaviStartStreamResponse::Run");
+
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->active_application();
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "NaviStartStreamResponse no active app!");
+ return;
+ }
+
+ const hmi_apis::Common_Result::eType code =
+ static_cast<hmi_apis::Common_Result::eType>(
+ (*message_)[strings::params][hmi_response::code].asInt());
+
+ if (hmi_apis::Common_Result::SUCCESS == code) {
+ LOG4CXX_INFO(logger_, "NaviStartStreamResponse SUCCESS");
+ app->set_hmi_supports_navi_streaming(true);
+ } else {
+ LOG4CXX_INFO(logger_, "NaviStartStreamResponse NOT SUCCESS");
+ app->set_hmi_supports_navi_streaming(false);
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc
new file mode 100644
index 000000000..2f1e14a12
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_request.cc
@@ -0,0 +1,23 @@
+#include "application_manager/commands/hmi/navi_stop_stream_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviStopStreamRequest::NaviStopStreamRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+NaviStopStreamRequest::~NaviStopStreamRequest() {
+}
+
+void NaviStopStreamRequest::Run() {
+ LOG4CXX_INFO(logger_, "NaviStopStreamRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc
new file mode 100644
index 000000000..c368940d5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_stop_stream_response.cc
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/navi_stop_stream_response.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviStopStreamResponse::NaviStopStreamResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+NaviStopStreamResponse::~NaviStopStreamResponse() {
+}
+
+void NaviStopStreamResponse::Run() {
+ LOG4CXX_INFO(logger_, "NaviStopStreamResponse::Run");
+
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc
new file mode 100644
index 000000000..d0df9ec86
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/navi_update_turn_list_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviUpdateTurnListRequest::NaviUpdateTurnListRequest(
+ const MessageSharedPtr& message) : RequestToHMI(message) {
+}
+
+NaviUpdateTurnListRequest::~NaviUpdateTurnListRequest() {
+}
+
+void NaviUpdateTurnListRequest::Run() {
+ LOG4CXX_INFO(logger_, "NaviUpdateTurnListRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc
new file mode 100644
index 000000000..d93b67bb5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/navi_update_turn_list_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/navi_update_turn_list_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NaviUpdateTurnListResponse::NaviUpdateTurnListResponse(
+ const MessageSharedPtr& message) : ResponseFromHMI(message) {
+}
+
+NaviUpdateTurnListResponse::~NaviUpdateTurnListResponse() {
+}
+
+void NaviUpdateTurnListResponse::Run() {
+ LOG4CXX_INFO(logger_, "NaviUpdateTurnListResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::Navigation_UpdateTurnList);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/notification_from_hmi.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/notification_from_hmi.cc
new file mode 100644
index 000000000..b324e196a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/notification_from_hmi.cc
@@ -0,0 +1,100 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/notification_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+#include "smart_objects/smart_object.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NotificationFromHMI::NotificationFromHMI(const MessageSharedPtr& message)
+ : CommandImpl(message) {
+}
+
+NotificationFromHMI::~NotificationFromHMI() {
+}
+
+bool NotificationFromHMI::Init() {
+ return true;
+}
+
+bool NotificationFromHMI::CleanUp() {
+ return true;
+}
+
+void NotificationFromHMI::Run() {
+}
+
+void NotificationFromHMI::SendNotificationToMobile(
+ const MessageSharedPtr& message) {
+ ApplicationManagerImpl::instance()->ManageMobileCommand(message);
+}
+
+void NotificationFromHMI::CreateHMIRequest(
+ const hmi_apis::FunctionID::eType& function_id,
+ const NsSmartObj::SmartObject& msg_params) const {
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
+ new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+ if (!result) {
+ LOG4CXX_ERROR(logger_, "Memory allocation failed.");
+ return;
+ }
+
+ // get hmi correlation id for chaining further request from this object
+ const uint32_t hmi_correlation_id_ = ApplicationManagerImpl::instance()
+ ->GetNextHMICorrelationID();
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& request = *result;
+ request[strings::params][strings::message_type] =
+ static_cast<int32_t>(application_manager::MessageType::kRequest);
+ request[strings::params][strings::function_id] =
+ static_cast<int32_t>(function_id);
+ request[strings::params][strings::correlation_id] = hmi_correlation_id_;
+ request[strings::params][strings::protocol_version] =
+ CommandImpl::protocol_version_;
+ request[strings::params][strings::protocol_type] =
+ CommandImpl::hmi_protocol_type_;
+
+ request[strings::msg_params] = msg_params;
+
+ if (!ApplicationManagerImpl::instance()->ManageHMICommand(result)) {
+ LOG4CXX_ERROR(logger_, "Unable to send request");
+ return;
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/notification_to_hmi.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/notification_to_hmi.cc
new file mode 100644
index 000000000..51ab188e9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/notification_to_hmi.cc
@@ -0,0 +1,66 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/notification_to_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+NotificationToHMI::NotificationToHMI(const MessageSharedPtr& message)
+ : CommandImpl(message) {
+}
+
+NotificationToHMI::~NotificationToHMI() {
+}
+
+bool NotificationToHMI::Init() {
+ return true;
+}
+
+bool NotificationToHMI::CleanUp() {
+ return true;
+}
+
+void NotificationToHMI::Run() {
+}
+
+void NotificationToHMI::SendNotification() {
+ (*message_)[strings::params][strings::protocol_type] = hmi_protocol_type_;
+ (*message_)[strings::params][strings::protocol_version] = protocol_version_;
+ ApplicationManagerImpl::instance()->SendMessageToHMI(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc
new file mode 100644
index 000000000..8152244a9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_activated_notification.cc
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_app_activated_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/message_helper.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnAppActivatedNotification::OnAppActivatedNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnAppActivatedNotification::~OnAppActivatedNotification() {
+}
+
+void OnAppActivatedNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnAppActivatedNotification::Run");
+ uint32_t app_id = ((*message_)[strings::msg_params][strings::app_id]).asUInt();
+ MessageHelper::SendActivateAppToHMI(app_id);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc
new file mode 100644
index 000000000..e20a1b907
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_deactivated_notification.cc
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_app_deactivated_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "config_profile/profile.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnAppDeactivatedNotification::OnAppDeactivatedNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnAppDeactivatedNotification::~OnAppDeactivatedNotification() {
+}
+
+void OnAppDeactivatedNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnAppDeactivatedNotification::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->active_application();
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "OnAppDeactivatedNotification no active app!");
+ return;
+ }
+
+ if ((*message_)[strings::msg_params][strings::app_id].asInt()
+ != app->app_id()) {
+ LOG4CXX_ERROR_EXT(logger_, "Wrong application id!");
+ return;
+ }
+
+ if (mobile_api::HMILevel::eType::HMI_NONE == app->hmi_level()) {
+ return;
+ }
+
+ switch ((*message_)[strings::msg_params][hmi_request::reason].asInt()) {
+ case hmi_apis::Common_DeactivateReason::AUDIO:
+ case hmi_apis::Common_DeactivateReason::PHONECALL: {
+ if (app->is_media_application()) {
+ if (profile::Profile::instance()->is_mixing_audio_supported()) {
+ app->set_audio_streaming_state(
+ mobile_api::AudioStreamingState::ATTENUATED);
+ } else {
+ app->set_audio_streaming_state(
+ mobile_api::AudioStreamingState::NOT_AUDIBLE);
+ }
+ }
+ ApplicationManagerImpl::instance()->DeactivateApplication(app);
+ app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND);
+ break;
+ }
+ case hmi_apis::Common_DeactivateReason::NAVIGATIONMAP:
+ case hmi_apis::Common_DeactivateReason::PHONEMENU:
+ case hmi_apis::Common_DeactivateReason::SYNCSETTINGS:
+ case hmi_apis::Common_DeactivateReason::GENERAL: {
+ if (app->is_media_application()) {
+ if (mobile_api::HMILevel::HMI_FULL == app->hmi_level()) {
+ app->set_hmi_level(mobile_api::HMILevel::HMI_LIMITED);
+ }
+ } else {
+ ApplicationManagerImpl::instance()->DeactivateApplication(app);
+ app->set_hmi_level(mobile_api::HMILevel::HMI_BACKGROUND);
+ }
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR_EXT(logger_, "Unknown reason of app deactivation");
+ return;
+ }
+ }
+
+ MessageHelper::SendHMIStatusNotification(*app);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc
new file mode 100644
index 000000000..26bc396db
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_registered_notification.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_app_registered_notification.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnAppRegisteredNotification::OnAppRegisteredNotification(
+ const MessageSharedPtr& message) : NotificationToHMI(message) {
+}
+
+OnAppRegisteredNotification::~OnAppRegisteredNotification() {
+}
+
+void OnAppRegisteredNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnAppRegisteredNotification::Run");
+
+ SendNotification();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc
new file mode 100644
index 000000000..2bedcb063
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_app_unregistered_notification.cc
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_app_unregistered_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/event_engine/event.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnAppUnregisteredNotification::OnAppUnregisteredNotification(
+ const MessageSharedPtr& message) : NotificationToHMI(message) {
+}
+
+OnAppUnregisteredNotification::~OnAppUnregisteredNotification() {
+}
+
+void OnAppUnregisteredNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnAppUnregisteredNotification::Run");
+
+ //sending event for delete VRCommand on PerformInteraction
+ event_engine::Event event(hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered);
+ event.set_smart_object(*message_);
+ event.raise();
+
+ SendNotification();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_event_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_event_notification.cc
new file mode 100644
index 000000000..e44fde016
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_event_notification.cc
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_button_event_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "utils/logger.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace hmi {
+
+OnButtonEventNotification::OnButtonEventNotification(
+ const MessageSharedPtr& message) : NotificationFromHMI(message) {
+}
+
+OnButtonEventNotification::~OnButtonEventNotification() {
+}
+
+void OnButtonEventNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnButtonEventNotification::Run");
+
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::OnButtonEventID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_press_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_press_notification.cc
new file mode 100644
index 000000000..f5c65494a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_button_press_notification.cc
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_button_press_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "utils/logger.h"
+#include "application_manager/event_engine/event.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace hmi {
+
+OnButtonPressNotification::OnButtonPressNotification(
+ const MessageSharedPtr& message) : NotificationFromHMI(message) {
+}
+
+OnButtonPressNotification::~OnButtonPressNotification() {
+}
+
+void OnButtonPressNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnButtonPressNotification::Run");
+ event_engine::Event event(hmi_apis::FunctionID::Buttons_OnButtonPress);
+ event.set_smart_object(*message_);
+ event.raise();
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int>(mobile_apis::FunctionID::eType::OnButtonPressID);
+ SendNotificationToMobile(message_);
+}
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc
new file mode 100644
index 000000000..537c246f4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_device_chosen_notification.cc
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_device_chosen_notification.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnDeviceChosenNotification::OnDeviceChosenNotification(
+ const MessageSharedPtr& message) : NotificationFromHMI(message) {
+}
+
+OnDeviceChosenNotification::~OnDeviceChosenNotification() {
+}
+
+void OnDeviceChosenNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnDeviceChosenNotification::Run");
+
+ if ((*message_)[strings::msg_params].keyExists(strings::device_info)) {
+ ApplicationManagerImpl::instance()->ConnectToDevice(
+ (*message_)[strings::msg_params][strings::device_info][strings::id]
+ .asInt());
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc
new file mode 100644
index 000000000..c4263390e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_driver_distraction_notification.cc
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <set>
+#include "application_manager/commands/hmi/on_driver_distraction_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace hmi {
+
+OnDriverDistractionNotification::OnDriverDistractionNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnDriverDistractionNotification::~OnDriverDistractionNotification() {
+}
+
+void OnDriverDistractionNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnDriverDistractionNotification::Run");
+
+ const hmi_apis::Common_DriverDistractionState::eType state =
+ static_cast<hmi_apis::Common_DriverDistractionState::eType>(
+ (*message_)[strings::msg_params][hmi_notification::state]
+ .asInt());
+ ApplicationManagerImpl::instance()->set_driver_distraction(state);
+
+ smart_objects::SmartObject* on_driver_distraction =
+ new smart_objects::SmartObject();
+
+ if (NULL == on_driver_distraction) {
+ LOG4CXX_ERROR_EXT(logger_, "NULL pointer");
+ return;
+ }
+
+ (*on_driver_distraction)[strings::params][strings::function_id] =
+ mobile_api::FunctionID::OnDriverDistractionID;
+
+ (*on_driver_distraction)[strings::msg_params][mobile_notification::state] =
+ state;
+
+ SendNotificationToMobile(on_driver_distraction);
+}
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc
new file mode 100644
index 000000000..ba65e5ddf
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_all_applications_notification.cc
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_exit_all_applications_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/HMI_API.h"
+#include "utils/signals.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnExitAllApplicationsNotification::OnExitAllApplicationsNotification(
+ const MessageSharedPtr& message) : NotificationFromHMI(message) {
+}
+
+OnExitAllApplicationsNotification::~OnExitAllApplicationsNotification() {
+}
+
+void OnExitAllApplicationsNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnExitAllApplicationsNotification::Run");
+
+ const hmi_apis::Common_ApplicationsCloseReason::eType reason =
+ static_cast<hmi_apis::Common_ApplicationsCloseReason::eType>(
+ (*message_)[strings::msg_params][hmi_request::reason].asInt());
+
+ mobile_api::AppInterfaceUnregisteredReason::eType mob_reason =
+ mobile_api::AppInterfaceUnregisteredReason::INVALID_ENUM;
+
+ switch (reason) {
+ case hmi_apis::Common_ApplicationsCloseReason::IGNITION_OFF: {
+ mob_reason = mobile_api::AppInterfaceUnregisteredReason::IGNITION_OFF;
+ break;
+ }
+ case hmi_apis::Common_ApplicationsCloseReason::MASTER_RESET: {
+ mob_reason = mobile_api::AppInterfaceUnregisteredReason::MASTER_RESET;
+ break;
+ }
+ case hmi_apis::Common_ApplicationsCloseReason::FACTORY_DEFAULTS: {
+ mob_reason = mobile_api::AppInterfaceUnregisteredReason::FACTORY_DEFAULTS;
+ break;
+ }
+ default : {
+ LOG4CXX_ERROR(logger_, "Unkown Application close reason" << reason);
+ return;
+ }
+ }
+
+ ApplicationManagerImpl::instance()->SetUnregisterAllApplicationsReason(
+ mob_reason);
+
+ // notify life cycle to stop SDL
+ utils::ForwardSignal();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc
new file mode 100644
index 000000000..f74c2bb3a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_exit_application_notification.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_exit_application_notification.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnExitApplicationNotification::OnExitApplicationNotification(
+ const MessageSharedPtr& message) : NotificationFromHMI(message) {
+}
+
+OnExitApplicationNotification::~OnExitApplicationNotification() {
+}
+
+void OnExitApplicationNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnExitApplicationNotification::Run");
+
+ ApplicationManagerImpl::instance()->UnregisterApplication(
+ (*message_)[strings::msg_params][strings::app_id].asUInt());
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_find_applications.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_find_applications.cc
new file mode 100644
index 000000000..bc32ab1cf
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_find_applications.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_find_applications.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnFindApplications::OnFindApplications(const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnFindApplications::~OnFindApplications() {
+}
+
+void OnFindApplications::Run() {
+ LOG4CXX_INFO(logger_, "OnFindApplications::Run");
+
+ // TODO(PV): add UpdateAppsOnDevice to ApplicationManager
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc
new file mode 100644
index 000000000..a68ae9079
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_navi_tbt_client_state_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_navi_tbt_client_state_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnNaviTBTClientStateNotification::OnNaviTBTClientStateNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnNaviTBTClientStateNotification::~OnNaviTBTClientStateNotification() {
+}
+
+void OnNaviTBTClientStateNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnNaviTBTClientStateNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::OnTBTClientStateID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc
new file mode 100644
index 000000000..e05b38d45
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_play_tone_notification.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_play_tone_notification.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnPlayToneNotification::OnPlayToneNotification(const MessageSharedPtr& message)
+ : NotificationToHMI(message) {
+}
+
+OnPlayToneNotification::~OnPlayToneNotification() {
+}
+
+void OnPlayToneNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnPlayToneNotification::Run");
+
+ SendNotification();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ready_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ready_notification.cc
new file mode 100644
index 000000000..ff870361b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ready_notification.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_ready_notification.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnReadyNotification::OnReadyNotification(const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnReadyNotification::~OnReadyNotification() {
+}
+
+void OnReadyNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnReadyNotification::Run");
+
+ ApplicationManagerImpl::instance()->OnHMIStartedCooperation();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc
new file mode 100644
index 000000000..70240b4bf
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_sdl_close_notification.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_sdl_close_notification.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnSDLCloseNotification::OnSDLCloseNotification(
+ const MessageSharedPtr& message) : NotificationToHMI(message) {
+}
+
+OnSDLCloseNotification::~OnSDLCloseNotification() {
+}
+
+void OnSDLCloseNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnSdlCloseNotification::Run");
+
+ SendNotification();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_show_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_show_notification.cc
new file mode 100644
index 000000000..b33a0310e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_show_notification.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_show_notification.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnShowNotification::OnShowNotification(const MessageSharedPtr& message)
+ : NotificationToHMI(message) {
+}
+
+OnShowNotification::~OnShowNotification() {
+}
+
+void OnShowNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnShowNotification::Run");
+
+ SendNotification();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc
new file mode 100644
index 000000000..fc5ffed42
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_start_device_discovery.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_start_device_discovery.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnStartDeviceDiscovery::OnStartDeviceDiscovery(const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnStartDeviceDiscovery::~OnStartDeviceDiscovery() {
+}
+
+void OnStartDeviceDiscovery::Run() {
+ LOG4CXX_INFO(logger_, "OnStartDeviceDiscovery::Run");
+
+ ApplicationManagerImpl::instance()->StartDevicesDiscovery();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_context_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_context_notification.cc
new file mode 100644
index 000000000..1a4bab0b5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_context_notification.cc
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_system_context_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+
+namespace application_manager {
+
+namespace {
+using namespace mobile_api::AudioStreamingState;
+
+void UpdateVRState(ApplicationManagerImpl* app_mgr,
+ bool vr_session_is_active_on_hmi) {
+ // If VR session state is now different (has changed) on HMI
+ if (app_mgr->vr_session_started() != vr_session_is_active_on_hmi) {
+ app_mgr->set_vr_session_started(vr_session_is_active_on_hmi);
+ }
+}
+
+}
+
+namespace commands {
+using namespace mobile_api::SystemContext;
+
+OnSystemContextNotification::OnSystemContextNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnSystemContextNotification::~OnSystemContextNotification() {
+}
+
+void OnSystemContextNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnSystemContextNotification::Run");
+
+ ApplicationManagerImpl* app_mgr = ApplicationManagerImpl::instance();
+ const std::set<ApplicationSharedPtr>& app_list = app_mgr->applications();
+ std::set<ApplicationSharedPtr>::const_iterator it = app_list.begin();
+
+ mobile_api::SystemContext::eType system_context =
+ static_cast<mobile_api::SystemContext::eType>(
+ (*message_)[strings::msg_params][hmi_notification::system_context].asInt());
+
+ UpdateVRState(app_mgr, SYSCTXT_VRSESSION == system_context);
+
+ // SDLAQ-CRS-833 implementation
+ for (; app_list.end() != it; ++it) {
+ if (mobile_api::HMILevel::HMI_FULL == (*it)->hmi_level() ||
+ mobile_api::HMILevel::HMI_LIMITED == (*it)->hmi_level()) {
+
+ // If context actually changed
+ if (system_context != (*it)->system_context()) {
+ (*it)->set_system_context(system_context);
+ }
+
+ MessageHelper::SendHMIStatusNotification((*(*it)));
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_request_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_request_notification.cc
new file mode 100644
index 000000000..d390cd863
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_system_request_notification.cc
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_system_request_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnSystemRequestNotification::OnSystemRequestNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnSystemRequestNotification::~OnSystemRequestNotification() {
+}
+
+void OnSystemRequestNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnSystemRequestNotification::Run");
+
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnSystemRequestID);
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc
new file mode 100644
index 000000000..7efa49634
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_language_change_notification.cc
@@ -0,0 +1,91 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_tts_language_change_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnTTSLanguageChangeNotification::OnTTSLanguageChangeNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnTTSLanguageChangeNotification::~OnTTSLanguageChangeNotification() {
+}
+
+void OnTTSLanguageChangeNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnTTSLanguageChangeNotification::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_active_tts_language(
+ static_cast<hmi_apis::Common_Language::eType>(
+ (*message_)[strings::msg_params][strings::language].asInt()));
+
+ (*message_)[strings::msg_params][strings::hmi_display_language] =
+ hmi_capabilities.active_ui_language();
+
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::OnLanguageChangeID);
+
+ const std::set<ApplicationSharedPtr> applications =
+ ApplicationManagerImpl::instance()->applications();
+
+ std::set<ApplicationSharedPtr>::iterator it = applications.begin();
+ for (;applications.end() != it; ++it) {
+ ApplicationSharedPtr app = (*it);
+ (*message_)[strings::params][strings::connection_key] = app->app_id();
+ SendNotificationToMobile(message_);
+
+ if (static_cast<int>(app->language())
+ != (*message_)[strings::msg_params][strings::language].asInt()) {
+ app->set_hmi_level(mobile_api::HMILevel::HMI_NONE);
+
+ MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
+ app->app_id(),
+ mobile_api::AppInterfaceUnregisteredReason::LANGUAGE_CHANGE);
+ ApplicationManagerImpl::instance()->UnregisterApplication(app->app_id());
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc
new file mode 100644
index 000000000..c3c8daeea
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_started_notification.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_tts_started_notification.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnTTSStartedNotification::OnTTSStartedNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnTTSStartedNotification::~OnTTSStartedNotification() {
+}
+
+void OnTTSStartedNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnTTSStartedNotification::Run");
+
+ ApplicationManagerImpl::instance()->Mute();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc
new file mode 100644
index 000000000..55be65828
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_tts_stopped_notification.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_tts_stopped_notification.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnTTSStoppedNotification::OnTTSStoppedNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnTTSStoppedNotification::~OnTTSStoppedNotification() {
+}
+
+void OnTTSStoppedNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnTTSStoppedNotification::Run");
+
+ ApplicationManagerImpl::instance()->Unmute();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc
new file mode 100644
index 000000000..4ed5839e5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_command_notification.cc
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_ui_command_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnUICommandNotification::OnUICommandNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnUICommandNotification::~OnUICommandNotification() {
+}
+
+void OnUICommandNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnUICommandNotification::Run");
+
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnCommandID);
+
+ (*message_)[strings::msg_params][strings::trigger_source] =
+ static_cast<int32_t>(mobile_apis::TriggerSource::TS_MENU);
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc
new file mode 100644
index 000000000..45ff7425b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_keyboard_input_notification.cc
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_ui_keyboard_input_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace hmi {
+
+OnUIKeyBoardInputNotification::OnUIKeyBoardInputNotification(
+ const MessageSharedPtr& message) : NotificationFromHMI(message) {
+}
+
+OnUIKeyBoardInputNotification::~OnUIKeyBoardInputNotification() {
+}
+
+void OnUIKeyBoardInputNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnUIKeyBoardInputNotification::Run");
+
+ //prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ mobile_apis::FunctionID::OnKeyboardInputID;
+ SendNotificationToMobile(message_);
+}
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc
new file mode 100644
index 000000000..115ff384f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_language_change_notification.cc
@@ -0,0 +1,93 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_ui_language_change_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnUILanguageChangeNotification::OnUILanguageChangeNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnUILanguageChangeNotification::~OnUILanguageChangeNotification() {
+}
+
+void OnUILanguageChangeNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnUILanguageChangeNotification::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_active_ui_language(
+ static_cast<hmi_apis::Common_Language::eType>(
+ (*message_)[strings::msg_params][strings::language].asInt()));
+
+ (*message_)[strings::msg_params][strings::hmi_display_language] =
+ (*message_)[strings::msg_params][strings::language];
+
+ (*message_)[strings::msg_params][strings::language] =
+ hmi_capabilities.active_vr_language();
+
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::OnLanguageChangeID);
+
+ const std::set<ApplicationSharedPtr> applications =
+ ApplicationManagerImpl::instance()->applications();
+
+ std::set<ApplicationSharedPtr>::iterator it = applications.begin();
+ for (;applications.end() != it; ++it) {
+ ApplicationSharedPtr app = *it;
+ (*message_)[strings::params][strings::connection_key] = app->app_id();
+ SendNotificationToMobile(message_);
+
+ if (app->ui_language() != (*message_)[strings::msg_params]
+ [strings::hmi_display_language].asInt()) {
+
+ MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
+ app->app_id(),
+ mobile_api::AppInterfaceUnregisteredReason::LANGUAGE_CHANGE);
+ ApplicationManagerImpl::instance()->UnregisterApplication(app->app_id(), true);
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc
new file mode 100644
index 000000000..357bfc4cb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_reset_timeout_notification.cc
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_ui_reset_timeout_notification.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace hmi {
+
+OnUIResetTimeoutNotification::OnUIResetTimeoutNotification(
+ const MessageSharedPtr& message) : NotificationFromHMI(message) {
+}
+
+OnUIResetTimeoutNotification::~OnUIResetTimeoutNotification() {
+}
+
+void OnUIResetTimeoutNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnUIResetTimeoutNotification::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_OnResetTimeout);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc
new file mode 100644
index 000000000..7868e8119
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_ui_touch_event_notification.cc
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_ui_touch_event_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace hmi {
+
+OnUITouchEventNotification::OnUITouchEventNotification(
+ const MessageSharedPtr& message) : NotificationFromHMI(message) {
+}
+
+OnUITouchEventNotification::~OnUITouchEventNotification() {
+}
+
+void OnUITouchEventNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnUITouchEventNotification::Run");
+
+ //prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ mobile_apis::FunctionID::OnTouchEventID;
+ SendNotificationToMobile(message_);
+}
+
+} // namespace hmi
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_update_device_list.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_update_device_list.cc
new file mode 100644
index 000000000..737e62c74
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_update_device_list.cc
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/on_update_device_list.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnUpdateDeviceList::OnUpdateDeviceList(const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnUpdateDeviceList::~OnUpdateDeviceList() {
+}
+
+void OnUpdateDeviceList::Run() {
+ LOG4CXX_INFO(logger_, "OnUpdateDeviceList::Run");
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc
new file mode 100644
index 000000000..be0c4ebb6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_acc_pedal_position_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIAccPedalPositionNotification::OnVIAccPedalPositionNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIAccPedalPositionNotification::~OnVIAccPedalPositionNotification() {
+}
+
+void OnVIAccPedalPositionNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIAccPedalPositionNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc
new file mode 100644
index 000000000..688a5c1fb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_belt_status_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_belt_status_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIBeltStatusNotification::OnVIBeltStatusNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIBeltStatusNotification::~OnVIBeltStatusNotification() {
+}
+
+void OnVIBeltStatusNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIBeltStatusNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc
new file mode 100644
index 000000000..e80a2edcf
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_body_information_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_body_information_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIBodyInformationNotification::OnVIBodyInformationNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIBodyInformationNotification::~OnVIBodyInformationNotification() {
+}
+
+void OnVIBodyInformationNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIBodyInformationNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc
new file mode 100644
index 000000000..4669398da
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_device_status_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_device_status_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIDeviceStatusNotification::OnVIDeviceStatusNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIDeviceStatusNotification::~OnVIDeviceStatusNotification() {
+}
+
+void OnVIDeviceStatusNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIDeviceStatusNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc
new file mode 100644
index 000000000..8b61d0af2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_driver_braking_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_driver_braking_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIDriverBrakingNotification::OnVIDriverBrakingNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIDriverBrakingNotification::~OnVIDriverBrakingNotification() {
+}
+
+void OnVIDriverBrakingNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIDriverBrakingNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc
new file mode 100644
index 000000000..1b0989b1e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_engine_torque_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_engine_torque_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIEngineTorqueNotification::OnVIEngineTorqueNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIEngineTorqueNotification::~OnVIEngineTorqueNotification() {
+}
+
+void OnVIEngineTorqueNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIEngineTorqueNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc
new file mode 100644
index 000000000..f7a921359
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_external_temperature_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_external_temperature_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIExternalTemperatureNotification::OnVIExternalTemperatureNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIExternalTemperatureNotification::~OnVIExternalTemperatureNotification() {
+}
+
+void OnVIExternalTemperatureNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIExternalTemperatureNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc
new file mode 100644
index 000000000..97d797b63
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_fuel_level_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIFuelLevelNotification::OnVIFuelLevelNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIFuelLevelNotification::~OnVIFuelLevelNotification() {
+}
+
+void OnVIFuelLevelNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIFuelLevelNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc
new file mode 100644
index 000000000..0024f17a8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_fuel_level_state_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_fuel_level_state_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIFuelLevelStateNotification::OnVIFuelLevelStateNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIFuelLevelStateNotification::~OnVIFuelLevelStateNotification() {
+}
+
+void OnVIFuelLevelStateNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIFuelLevelStateNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc
new file mode 100644
index 000000000..5b7ec7297
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_gps_data_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_gps_data_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIGpsDataNotification::OnVIGpsDataNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIGpsDataNotification::~OnVIGpsDataNotification() {
+}
+
+void OnVIGpsDataNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIGpsDataNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc
new file mode 100644
index 000000000..355c00f0c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_head_lamp_status_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_head_lamp_status_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIHeadLampStatusNotification::OnVIHeadLampStatusNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIHeadLampStatusNotification::~OnVIHeadLampStatusNotification() {
+}
+
+void OnVIHeadLampStatusNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIHeadLampStatusNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc
new file mode 100644
index 000000000..17240bce6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_instant_fuel_consumption_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIInstantFuelConsumptionNotification::OnVIInstantFuelConsumptionNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIInstantFuelConsumptionNotification::~OnVIInstantFuelConsumptionNotification() {
+}
+
+void OnVIInstantFuelConsumptionNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIInstantFuelConsumptionNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc
new file mode 100644
index 000000000..1caaecb44
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_my_key_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_my_key_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIMyKeyNotification::OnVIMyKeyNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIMyKeyNotification::~OnVIMyKeyNotification() {
+}
+
+void OnVIMyKeyNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIMyKeyNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc
new file mode 100644
index 000000000..02127a138
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_odometer_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_odometer_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIOdometerNotification::OnVIOdometerNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIOdometerNotification::~OnVIOdometerNotification() {
+}
+
+void OnVIOdometerNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIOdometerNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc
new file mode 100644
index 000000000..4692191cb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_prndl_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_prndl_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIPrndlNotification::OnVIPrndlNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIPrndlNotification::~OnVIPrndlNotification() {
+}
+
+void OnVIPrndlNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIPrndlNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc
new file mode 100644
index 000000000..b16421903
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_rpm_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_rpm_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIRpmNotification::OnVIRpmNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIRpmNotification::~OnVIRpmNotification() {
+}
+
+void OnVIRpmNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIRpmNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc
new file mode 100644
index 000000000..6bc1e8b2c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_speed_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_speed_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVISpeedNotification::OnVISpeedNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVISpeedNotification::~OnVISpeedNotification() {
+}
+
+void OnVISpeedNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVISpeedNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc
new file mode 100644
index 000000000..853b4eeea
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_steering_wheel_angle_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVISteeringWheelAngleNotification::OnVISteeringWheelAngleNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVISteeringWheelAngleNotification::~OnVISteeringWheelAngleNotification() {
+}
+
+void OnVISteeringWheelAngleNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVISteeringWheelAngleNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc
new file mode 100644
index 000000000..01ac7e9f8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_tire_pressure_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_tire_pressure_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVITirePressureNotification::OnVITirePressureNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVITirePressureNotification::~OnVITirePressureNotification() {
+}
+
+void OnVITirePressureNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVITirePressureNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc
new file mode 100644
index 000000000..eda88ef60
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vehicle_data_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_vehicle_data_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIVehicleDataNotification::OnVIVehicleDataNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIVehicleDataNotification::~OnVIVehicleDataNotification() {
+}
+
+void OnVIVehicleDataNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIVehicleDataNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc
new file mode 100644
index 000000000..546dc0d3c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_vin_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_vin_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIVinNotification::OnVIVinNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIVinNotification::~OnVIVinNotification() {
+}
+
+void OnVIVinNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIVinNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc
new file mode 100644
index 000000000..101427df0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vi_wiper_status_notification.cc
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vi_wiper_status_notification.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVIWiperStatusNotification::OnVIWiperStatusNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVIWiperStatusNotification::~OnVIWiperStatusNotification() {
+}
+
+void OnVIWiperStatusNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVIWiperStatusNotification::Run");
+
+ // prepare SmartObject for mobile factory
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnVehicleDataID);
+
+ SendNotificationToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc
new file mode 100644
index 000000000..b4adc2a63
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_command_notification.cc
@@ -0,0 +1,108 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vr_command_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/message_helper.h"
+#include "config_profile/profile.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+#include "application_manager/event_engine/event.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVRCommandNotification::OnVRCommandNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVRCommandNotification::~OnVRCommandNotification() {
+}
+
+void OnVRCommandNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVRCommandNotification::Run");
+
+ ApplicationSharedPtr active_app = ApplicationManagerImpl::instance()
+ ->active_application();
+ const uint32_t cmd_id = (*message_)[strings::msg_params][strings::cmd_id]
+ .asUInt();
+ uint32_t max_cmd_id = profile::Profile::instance()->max_cmd_id();
+ if (!active_app) {
+ if (cmd_id > max_cmd_id + 1) {
+ MessageHelper::SendActivateAppToHMI(cmd_id - max_cmd_id);
+ } else {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ }
+ return;
+ }
+
+ // Check if this is one of standart VR commands (i.e. "Help")
+ if (cmd_id > max_cmd_id + 1) {
+ LOG4CXX_INFO(logger_, "Switched App");
+ MessageHelper::SendActivateAppToHMI(cmd_id - max_cmd_id);
+ return;
+ }
+ // Check if this is "Help"
+ if (cmd_id == max_cmd_id + 1) {
+ return;
+ }
+ const uint32_t app_id = (*message_)[strings::msg_params][strings::app_id]
+ .asUInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+ /* check if perform interaction is active
+ * if it is active we should sent to HMI DeleteCommand request
+ * and PerformInterActionResponse to mobile
+ */
+ if (0 != app->is_perform_interaction_active()) {
+ event_engine::Event event(hmi_apis::FunctionID::VR_OnCommand);
+ event.set_smart_object(*message_);
+ event.raise();
+ } else {
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnCommandID);
+
+ (*message_)[strings::msg_params][strings::trigger_source] =
+ static_cast<int32_t>(mobile_apis::TriggerSource::TS_VR);
+ SendNotificationToMobile(message_);
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc
new file mode 100644
index 000000000..72c7546f3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_language_change_notification.cc
@@ -0,0 +1,91 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vr_language_change_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVRLanguageChangeNotification::OnVRLanguageChangeNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVRLanguageChangeNotification::~OnVRLanguageChangeNotification() {
+}
+
+void OnVRLanguageChangeNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVRLanguageChangeNotification::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_active_vr_language(
+ static_cast<hmi_apis::Common_Language::eType>(
+ (*message_)[strings::msg_params][strings::language].asInt()));
+
+ (*message_)[strings::msg_params][strings::hmi_display_language] =
+ hmi_capabilities.active_ui_language();
+
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::OnLanguageChangeID);
+
+ const std::set<ApplicationSharedPtr> applications =
+ ApplicationManagerImpl::instance()->applications();
+
+ std::set<ApplicationSharedPtr>::iterator it = applications.begin();
+ for (;applications.end() != it; ++it) {
+ ApplicationSharedPtr app = (*it);
+ (*message_)[strings::params][strings::connection_key] = app->app_id();
+ SendNotificationToMobile(message_);
+ int32_t lang = static_cast<int32_t>(app->language());
+ if (lang
+ != (*message_)[strings::msg_params][strings::language].asInt()) {
+ app->set_hmi_level(mobile_api::HMILevel::HMI_NONE);
+
+ MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
+ app->app_id(),
+ mobile_api::AppInterfaceUnregisteredReason::LANGUAGE_CHANGE);
+ ApplicationManagerImpl::instance()->UnregisterApplication(app->app_id(), true);
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc
new file mode 100644
index 000000000..be0c54e2d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_started_notification.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vr_started_notification.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVRStartedNotification::OnVRStartedNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVRStartedNotification::~OnVRStartedNotification() {
+}
+
+void OnVRStartedNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVRStartedNotification::Run");
+
+ ApplicationManagerImpl::instance()->set_vr_session_started(true);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc
new file mode 100644
index 000000000..4d46f3735
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/on_vr_stopped_notification.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/on_vr_stopped_notification.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVRStoppedNotification::OnVRStoppedNotification(
+ const MessageSharedPtr& message)
+ : NotificationFromHMI(message) {
+}
+
+OnVRStoppedNotification::~OnVRStoppedNotification() {
+}
+
+void OnVRStoppedNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVRStoppedNotification::Run");
+
+ ApplicationManagerImpl::instance()->set_vr_session_started(false);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/request_to_hmi.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/request_to_hmi.cc
new file mode 100644
index 000000000..aa8c97408
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/request_to_hmi.cc
@@ -0,0 +1,67 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/request_to_hmi.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+RequestToHMI::RequestToHMI(const MessageSharedPtr& message)
+ : CommandImpl(message) {
+}
+
+RequestToHMI::~RequestToHMI() {
+}
+
+bool RequestToHMI::Init() {
+ return true;
+}
+
+bool RequestToHMI::CleanUp() {
+ return true;
+}
+
+void RequestToHMI::Run() {
+}
+
+void RequestToHMI::SendRequest() {
+ (*message_)[strings::params][strings::protocol_type] = hmi_protocol_type_;
+ (*message_)[strings::params][strings::protocol_version] = protocol_version_;
+
+ ApplicationManagerImpl::instance()->SendMessageToHMI(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/response_from_hmi.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/response_from_hmi.cc
new file mode 100644
index 000000000..bba5d7d1e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/response_from_hmi.cc
@@ -0,0 +1,105 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/response_from_hmi.h"
+#include "application_manager/application_manager_impl.h"
+#include "smart_objects/smart_object.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ResponseFromHMI::ResponseFromHMI(const MessageSharedPtr& message)
+ : CommandImpl(message) {
+ //If it is error response, shift info
+ if ((*message)[strings::params].keyExists(hmi_response::message)) {
+ (*message)[strings::msg_params][strings::info] =
+ (*message)[strings::params][hmi_response::message];
+ }
+}
+
+ResponseFromHMI::~ResponseFromHMI() {
+}
+
+bool ResponseFromHMI::Init() {
+ return true;
+}
+
+bool ResponseFromHMI::CleanUp() {
+ return true;
+}
+
+void ResponseFromHMI::Run() {
+}
+
+void ResponseFromHMI::SendResponseToMobile(const MessageSharedPtr& message) {
+ (*message)[strings::params][strings::message_type] = MessageType::kResponse;
+
+ ApplicationManagerImpl::instance()->ManageMobileCommand(message);
+}
+
+void ResponseFromHMI::CreateHMIRequest(
+ const hmi_apis::FunctionID::eType& function_id,
+ const NsSmart::SmartObject& msg_params) const {
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
+ new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+
+ if (!result) {
+ LOG4CXX_ERROR(logger_, "Memory allocation failed.");
+ return;
+ }
+
+ // get hmi correlation id for chaining further request from this object
+ const uint32_t hmi_correlation_id_ = ApplicationManagerImpl::instance()
+ ->GetNextHMICorrelationID();
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& request = *result;
+ request[strings::params][strings::message_type] = MessageType::kRequest;
+ request[strings::params][strings::function_id] = function_id;
+ request[strings::params][strings::correlation_id] = hmi_correlation_id_;
+ request[strings::params][strings::protocol_version] =
+ CommandImpl::protocol_version_;
+ request[strings::params][strings::protocol_type] =
+ CommandImpl::hmi_protocol_type_;
+
+ request[strings::msg_params] = msg_params;
+
+ if (!ApplicationManagerImpl::instance()->ManageHMICommand(result)) {
+ LOG4CXX_ERROR(logger_, "Unable to send request");
+ return;
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc
new file mode 100644
index 000000000..638503d16
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/tts_change_registration_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSChangeRegistrationRequest::TTSChangeRegistrationRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+TTSChangeRegistrationRequest::~TTSChangeRegistrationRequest() {
+}
+
+void TTSChangeRegistrationRequest::Run() {
+ LOG4CXX_INFO(logger_, "TTSChangeRegistrationRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc
new file mode 100644
index 000000000..67e48b4ed
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_change_registration_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/tts_change_registration_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSChangeRegistratioResponse::TTSChangeRegistratioResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+TTSChangeRegistratioResponse::~TTSChangeRegistratioResponse() {
+}
+
+void TTSChangeRegistratioResponse::Run() {
+ LOG4CXX_INFO(logger_, "TTSChangeRegistratioResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::TTS_ChangeRegistration);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc
new file mode 100644
index 000000000..59cf50b38
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/tts_get_capabilities_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSGetCapabilitiesRequest::TTSGetCapabilitiesRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+TTSGetCapabilitiesRequest::~TTSGetCapabilitiesRequest() {
+}
+
+void TTSGetCapabilitiesRequest::Run() {
+ LOG4CXX_INFO(logger_, "TTSGetCapabilitiesRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc
new file mode 100644
index 000000000..f7309822d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_capabilities_response.cc
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/tts_get_capabilities_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSGetCapabilitiesResponse::TTSGetCapabilitiesResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+TTSGetCapabilitiesResponse::~TTSGetCapabilitiesResponse() {
+}
+
+void TTSGetCapabilitiesResponse::Run() {
+ LOG4CXX_INFO(logger_, "TTSGetCapabilitiesResponse::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ if ((*message_)[strings::msg_params].keyExists(hmi_response::speech_capabilities)) {
+ hmi_capabilities.set_speech_capabilities(
+ (*message_)[strings::msg_params][hmi_response::speech_capabilities]);
+ }
+ if ((*message_)[strings::msg_params].keyExists(
+ hmi_response::prerecorded_speech_capabilities)) {
+ hmi_capabilities.set_prerecorded_speech(
+ (*message_)[strings::msg_params]
+ [hmi_response::prerecorded_speech_capabilities]);
+ }
+
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_request.cc
new file mode 100644
index 000000000..9f2fe7134
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/tts_get_language_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSGetLanguageRequest::TTSGetLanguageRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+TTSGetLanguageRequest::~TTSGetLanguageRequest() {
+}
+
+void TTSGetLanguageRequest::Run() {
+ LOG4CXX_INFO(logger_, "TTSGetLanguageRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_response.cc
new file mode 100644
index 000000000..e26fa8773
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_language_response.cc
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/tts_get_language_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSGetLanguageResponse::TTSGetLanguageResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+TTSGetLanguageResponse::~TTSGetLanguageResponse() {
+}
+
+void TTSGetLanguageResponse::Run() {
+ LOG4CXX_INFO(logger_, "TTSGetLanguageResponse::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_active_tts_language(
+ static_cast<hmi_apis::Common_Language::eType>(
+ (*message_)[strings::msg_params][hmi_response::language].asInt()));
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc
new file mode 100644
index 000000000..08c1d8244
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/tts_get_supported_languages_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSGetSupportedLanguagesRequest::TTSGetSupportedLanguagesRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+TTSGetSupportedLanguagesRequest::~TTSGetSupportedLanguagesRequest() {
+}
+
+void TTSGetSupportedLanguagesRequest::Run() {
+ LOG4CXX_INFO(logger_, "TTSGetSupportedLanguagesRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc
new file mode 100644
index 000000000..aa041f66b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_get_supported_languages_response.cc
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/tts_get_supported_languages_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSGetSupportedLanguagesResponse::TTSGetSupportedLanguagesResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+TTSGetSupportedLanguagesResponse::~TTSGetSupportedLanguagesResponse() {
+}
+
+void TTSGetSupportedLanguagesResponse::Run() {
+ LOG4CXX_INFO(logger_, "TTSGetSupportedLanguagesResponse::Run");
+
+ const hmi_apis::Common_Result::eType code =
+ static_cast<hmi_apis::Common_Result::eType>(
+ (*message_)[strings::params][hmi_response::code].asInt());
+
+ if (hmi_apis::Common_Result::SUCCESS == code) {
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_tts_supported_languages(
+ (*message_)[strings::msg_params][hmi_response::languages]);
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc
new file mode 100644
index 000000000..7733de488
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/tts_is_ready_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSIsReadyRequest::TTSIsReadyRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+TTSIsReadyRequest::~TTSIsReadyRequest() {
+}
+
+void TTSIsReadyRequest::Run() {
+ LOG4CXX_INFO(logger_, "TTSIsReadyRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc
new file mode 100644
index 000000000..fb3cb4858
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_is_ready_response.cc
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/tts_is_ready_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSIsReadyResponse::TTSIsReadyResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+TTSIsReadyResponse::~TTSIsReadyResponse() {
+}
+
+void TTSIsReadyResponse::Run() {
+ LOG4CXX_INFO(logger_, "TTSIsReadyResponse::Run");
+ smart_objects::SmartObject& object = *message_;
+
+ bool is_available = false;
+ if (object[strings::msg_params].keyExists(strings::available)) {
+ is_available = object[strings::msg_params][strings::available].asBool();
+ }
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ hmi_capabilities.set_is_tts_cooperating(is_available);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_request.cc
new file mode 100644
index 000000000..a61902123
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/tts_perform_interaction_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSPerformInteractionRequest::TTSPerformInteractionRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+TTSPerformInteractionRequest::~TTSPerformInteractionRequest() {
+}
+
+void TTSPerformInteractionRequest::Run() {
+ LOG4CXX_INFO(logger_, "TTSPerformInteractionRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_response.cc
new file mode 100644
index 000000000..2ddacca6b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_perform_interaction_response.cc
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/tts_perform_interaction_response.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSPerformInteractionResponse::TTSPerformInteractionResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+TTSPerformInteractionResponse::~TTSPerformInteractionResponse() {
+}
+
+void TTSPerformInteractionResponse::Run() {
+ LOG4CXX_INFO(logger_, "TTSPerformInteractionResponse::Run");
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc
new file mode 100644
index 000000000..04f1380d9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/tts_set_global_properties_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSSetGlobalPropertiesRequest::TTSSetGlobalPropertiesRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+TTSSetGlobalPropertiesRequest::~TTSSetGlobalPropertiesRequest() {
+}
+
+void TTSSetGlobalPropertiesRequest::Run() {
+ LOG4CXX_INFO(logger_, "TTSSetGlobalPropertiesRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc
new file mode 100644
index 000000000..c90655186
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_set_global_properties_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/tts_set_global_properties_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSSetGlobalPropertiesResponse::TTSSetGlobalPropertiesResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+TTSSetGlobalPropertiesResponse::~TTSSetGlobalPropertiesResponse() {
+}
+
+void TTSSetGlobalPropertiesResponse::Run() {
+ LOG4CXX_INFO(logger_, "TTSSetGlobalPropertiesResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::TTS_SetGlobalProperties);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_request.cc
new file mode 100644
index 000000000..9b4bd6858
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/tts_speak_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSSpeakRequest::TTSSpeakRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+TTSSpeakRequest::~TTSSpeakRequest() {
+}
+
+void TTSSpeakRequest::Run() {
+ LOG4CXX_INFO(logger_, "TTSSpeakRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_response.cc
new file mode 100644
index 000000000..9b9e43dbe
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_speak_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/tts_speak_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSSpeakResponse::TTSSpeakResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+TTSSpeakResponse::~TTSSpeakResponse() {
+}
+
+void TTSSpeakResponse::Run() {
+ LOG4CXX_INFO(logger_, "TTSSpeakResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::TTS_Speak);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc
new file mode 100644
index 000000000..107cb7933
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/tts_stop_speaking_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSStopSpeakingRequest::TTSStopSpeakingRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+TTSStopSpeakingRequest::~TTSStopSpeakingRequest() {
+}
+
+void TTSStopSpeakingRequest::Run() {
+ LOG4CXX_INFO(logger_, "TTSStopSpeakingRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc
new file mode 100644
index 000000000..9bd4f8966
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/tts_stop_speaking_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/tts_stop_speaking_response.h"
+
+#include "application_manager/event_engine/event.h"
+
+namespace application_manager {
+
+namespace commands {
+
+TTSStopSpeakingResponse::TTSStopSpeakingResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+TTSStopSpeakingResponse::~TTSStopSpeakingResponse() {
+}
+
+void TTSStopSpeakingResponse::Run() {
+ LOG4CXX_INFO(logger_, "TTSStopSpeakingResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::TTS_StopSpeaking);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_request.cc
new file mode 100644
index 000000000..9aa5d2e2d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_add_command_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIAddCommandRequest::UIAddCommandRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIAddCommandRequest::~UIAddCommandRequest() {
+}
+
+void UIAddCommandRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIAddCommandRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_response.cc
new file mode 100644
index 000000000..21b34e063
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_command_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_add_command_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIAddCommandResponse::UIAddCommandResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIAddCommandResponse::~UIAddCommandResponse() {
+}
+
+void UIAddCommandResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIAddCommandResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_AddCommand);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc
new file mode 100644
index 000000000..7a9c5c6fe
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_add_submenu_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIAddSubmenuRequest::UIAddSubmenuRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIAddSubmenuRequest::~UIAddSubmenuRequest() {
+}
+
+void UIAddSubmenuRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIAddCommandRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc
new file mode 100644
index 000000000..af88de2b4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_add_submenu_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_add_submenu_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIAddSubmenuResponse::UIAddSubmenuResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIAddSubmenuResponse::~UIAddSubmenuResponse() {
+}
+
+void UIAddSubmenuResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIAddSubmenuResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_AddSubMenu);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_request.cc
new file mode 100644
index 000000000..f8c9ed570
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_alert_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIAlertRequest::UIAlertRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIAlertRequest::~UIAlertRequest() {
+}
+
+void UIAlertRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIAlertRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_response.cc
new file mode 100644
index 000000000..289b90d29
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_alert_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_alert_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIAlertResponse::UIAlertResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIAlertResponse::~UIAlertResponse() {
+}
+
+void UIAlertResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIAlertResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_Alert);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc
new file mode 100644
index 000000000..fbba2b402
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_change_registration_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIChangeRegistrationRequest::UIChangeRegistrationRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIChangeRegistrationRequest::~UIChangeRegistrationRequest() {
+}
+
+void UIChangeRegistrationRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIChangeRegistrationRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc
new file mode 100644
index 000000000..16447077d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_change_registration_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_change_registration_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIChangeRegistratioResponse::UIChangeRegistratioResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIChangeRegistratioResponse::~UIChangeRegistratioResponse() {
+}
+
+void UIChangeRegistratioResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIChangeRegistratioResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_ChangeRegistration);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc
new file mode 100644
index 000000000..23fb4c67f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_delete_command_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIDeleteCommandRequest::UIDeleteCommandRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIDeleteCommandRequest::~UIDeleteCommandRequest() {
+}
+
+void UIDeleteCommandRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIDeleteCommandRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc
new file mode 100644
index 000000000..0ac32877c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_command_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_delete_command_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIDeleteCommandResponse::UIDeleteCommandResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIDeleteCommandResponse::~UIDeleteCommandResponse() {
+}
+
+void UIDeleteCommandResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIDeleteCommandResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_DeleteCommand);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc
new file mode 100644
index 000000000..41f356b98
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_delete_submenu_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIDeleteSubmenuRequest::UIDeleteSubmenuRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIDeleteSubmenuRequest::~UIDeleteSubmenuRequest() {
+}
+
+void UIDeleteSubmenuRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIDeleteSubmenuRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc
new file mode 100644
index 000000000..5a3359b72
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_delete_submenu_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_delete_submenu_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIDeleteSubmenuResponse::UIDeleteSubmenuResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIDeleteSubmenuResponse::~UIDeleteSubmenuResponse() {
+}
+
+void UIDeleteSubmenuResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIDeleteSubmenuResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_DeleteSubMenu);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc
new file mode 100644
index 000000000..4c93f9235
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_end_audio_pass_thru_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIEndAudioPassThruRequest::UIEndAudioPassThruRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIEndAudioPassThruRequest::~UIEndAudioPassThruRequest() {
+}
+
+void UIEndAudioPassThruRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIEndAudioPassThruRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc
new file mode 100644
index 000000000..e560ae293
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_end_audio_pass_thru_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_end_audio_pass_thru_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIEndAudioPassThruResponse::UIEndAudioPassThruResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIEndAudioPassThruResponse::~UIEndAudioPassThruResponse() {
+}
+
+void UIEndAudioPassThruResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIEndAudioPassThruResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_EndAudioPassThru);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc
new file mode 100644
index 000000000..b9f1b6917
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_get_capabilities_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIGetCapabilitiesRequest::UIGetCapabilitiesRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIGetCapabilitiesRequest::~UIGetCapabilitiesRequest() {
+}
+
+void UIGetCapabilitiesRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIGetCapabilitiesRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc
new file mode 100644
index 000000000..0663bf033
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_capabilities_response.cc
@@ -0,0 +1,75 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_get_capabilities_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIGetCapabilitiesResponse::UIGetCapabilitiesResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIGetCapabilitiesResponse::~UIGetCapabilitiesResponse() {
+}
+
+void UIGetCapabilitiesResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIGetCapabilitiesResponse::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_display_capabilities(
+ (*message_)[strings::msg_params][hmi_response::display_capabilities]);
+
+ hmi_capabilities.set_hmi_zone_capabilities(
+ (*message_)[strings::msg_params][hmi_response::hmi_zone_capabilities]);
+
+ if ((*message_)[strings::msg_params].keyExists(
+ hmi_response::soft_button_capabilities)) {
+ hmi_capabilities.set_soft_button_capabilities(
+ (*message_)[strings::msg_params][hmi_response::soft_button_capabilities]);
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(
+ strings::audio_pass_thru_capabilities)) {
+
+ hmi_capabilities.set_audio_pass_thru_capabilities(
+ (*message_)[strings::msg_params][strings::audio_pass_thru_capabilities]);
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_request.cc
new file mode 100644
index 000000000..ffca242d4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_get_language_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIGetLanguageRequest::UIGetLanguageRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIGetLanguageRequest::~UIGetLanguageRequest() {
+}
+
+void UIGetLanguageRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIGetLanguageRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_response.cc
new file mode 100644
index 000000000..20435d788
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_language_response.cc
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_get_language_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIGetLanguageResponse::UIGetLanguageResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIGetLanguageResponse::~UIGetLanguageResponse() {
+}
+
+void UIGetLanguageResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIGetLanguageResponse::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_active_ui_language(
+ static_cast<hmi_apis::Common_Language::eType>(
+ (*message_)[strings::msg_params][hmi_response::language].asInt()));
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc
new file mode 100644
index 000000000..455486ef6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_get_supported_languages_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIGetSupportedLanguagesRequest::UIGetSupportedLanguagesRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIGetSupportedLanguagesRequest::~UIGetSupportedLanguagesRequest() {
+}
+
+void UIGetSupportedLanguagesRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIGetSupportedLanguagesRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc
new file mode 100644
index 000000000..8492cfca5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_get_supported_languages_response.cc
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_get_supported_languages_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIGetSupportedLanguagesResponse::UIGetSupportedLanguagesResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIGetSupportedLanguagesResponse::~UIGetSupportedLanguagesResponse() {
+}
+
+void UIGetSupportedLanguagesResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIGetSupportedLanguagesResponse::Run");
+
+ const hmi_apis::Common_Result::eType code =
+ static_cast<hmi_apis::Common_Result::eType>(
+ (*message_)[strings::params][hmi_response::code].asInt());
+
+ if (hmi_apis::Common_Result::SUCCESS == code) {
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_ui_supported_languages(
+ (*message_)[strings::msg_params][hmi_response::languages]);
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc
new file mode 100644
index 000000000..50d0ddd95
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_is_ready_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIIsReadyRequest::UIIsReadyRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIIsReadyRequest::~UIIsReadyRequest() {
+}
+
+void UIIsReadyRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIIsReadyRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc
new file mode 100644
index 000000000..97d11b602
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_is_ready_response.cc
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_is_ready_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIIsReadyResponse::UIIsReadyResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIIsReadyResponse::~UIIsReadyResponse() {
+}
+
+void UIIsReadyResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIIsReadyResponse::Run");
+ smart_objects::SmartObject& object = *message_;
+
+ bool is_available = false;
+ if (object[strings::msg_params].keyExists(strings::available)) {
+ is_available = object[strings::msg_params][strings::available].asBool();
+ }
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_is_ui_cooperating(is_available);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc
new file mode 100644
index 000000000..cf77703a9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIPerformAudioPassThruRequest::UIPerformAudioPassThruRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIPerformAudioPassThruRequest::~UIPerformAudioPassThruRequest() {
+}
+
+void UIPerformAudioPassThruRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIPerformAudioPassThruRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc
new file mode 100644
index 000000000..36d4c507b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_audio_pass_thru_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIPerformAudioPassThruResponse::UIPerformAudioPassThruResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIPerformAudioPassThruResponse::~UIPerformAudioPassThruResponse() {
+}
+
+void UIPerformAudioPassThruResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIPerformAudioPassThruResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_PerformAudioPassThru);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc
new file mode 100644
index 000000000..09f98ec03
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_perform_interaction_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIPerformInteractionRequest::UIPerformInteractionRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIPerformInteractionRequest::~UIPerformInteractionRequest() {
+}
+
+void UIPerformInteractionRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIPerformInteractionRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc
new file mode 100644
index 000000000..2f5f6ead5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_perform_interaction_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_perform_interaction_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIPerformInteractionResponse::UIPerformInteractionResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIPerformInteractionResponse::~UIPerformInteractionResponse() {
+}
+
+void UIPerformInteractionResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIPerformInteractionResponse::Run");
+ event_engine::Event event(hmi_apis::FunctionID::UI_PerformInteraction);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc
new file mode 100644
index 000000000..ac34dd236
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_scrollable_message_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIScrollableMessageRequest::UIScrollableMessageRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIScrollableMessageRequest::~UIScrollableMessageRequest() {
+}
+
+void UIScrollableMessageRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIScrollableMessageRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc
new file mode 100644
index 000000000..182d512c8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_scrollable_message_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_scrollable_message_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIScrollableMessageResponse::UIScrollableMessageResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIScrollableMessageResponse::~UIScrollableMessageResponse() {
+}
+
+void UIScrollableMessageResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIScrollableMessageResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_ScrollableMessage);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc
new file mode 100644
index 000000000..3dea85348
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_request.cc
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_set_display_layout_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UiSetDisplayLayoutRequest::UiSetDisplayLayoutRequest(
+ const MessageSharedPtr& message): RequestToHMI(message) {
+}
+
+UiSetDisplayLayoutRequest::~UiSetDisplayLayoutRequest() {
+}
+
+void UiSetDisplayLayoutRequest::Run() {
+ LOG4CXX_INFO(logger_, "UiSetDisplayLayoutRequest::Run");
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc
new file mode 100644
index 000000000..f381a4db2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_display_layout_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_set_display_layout_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UiSetDisplayLayoutResponse::UiSetDisplayLayoutResponse(
+ const MessageSharedPtr& message): ResponseFromHMI(message) {
+}
+
+UiSetDisplayLayoutResponse::~UiSetDisplayLayoutResponse() {
+}
+
+void UiSetDisplayLayoutResponse::Run() {
+ LOG4CXX_INFO(logger_, "UiSetDisplayLayoutResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_SetDisplayLayout);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc
new file mode 100644
index 000000000..e538866c1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_set_global_properties_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UISetGlobalPropertiesRequest::UISetGlobalPropertiesRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UISetGlobalPropertiesRequest::~UISetGlobalPropertiesRequest() {
+}
+
+void UISetGlobalPropertiesRequest::Run() {
+ LOG4CXX_INFO(logger_, "UISetGlobalPropertiesRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc
new file mode 100644
index 000000000..67023533c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_global_properties_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_set_global_properties_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UISetGlobalPropertiesResponse::UISetGlobalPropertiesResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UISetGlobalPropertiesResponse::~UISetGlobalPropertiesResponse() {
+}
+
+void UISetGlobalPropertiesResponse::Run() {
+ LOG4CXX_INFO(logger_, "UISetGlobalPropertiesResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_SetGlobalProperties);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_request.cc
new file mode 100644
index 000000000..b587a3028
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_set_icon_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UISetIconRequest::UISetIconRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UISetIconRequest::~UISetIconRequest() {
+}
+
+void UISetIconRequest::Run() {
+ LOG4CXX_INFO(logger_, "UISetIconRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_response.cc
new file mode 100644
index 000000000..f4565baaf
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_icon_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_set_icon_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UISetIconResponse::UISetIconResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UISetIconResponse::~UISetIconResponse() {
+}
+
+void UISetIconResponse::Run() {
+ LOG4CXX_INFO(logger_, "UISetIconResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_SetAppIcon);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc
new file mode 100644
index 000000000..1eb218013
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_set_media_clock_timer_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UISetMediaClockTimerRequest::UISetMediaClockTimerRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UISetMediaClockTimerRequest::~UISetMediaClockTimerRequest() {
+}
+
+void UISetMediaClockTimerRequest::Run() {
+ LOG4CXX_INFO(logger_, "UISetMediaClockTimerRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc
new file mode 100644
index 000000000..ee67862a1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_set_media_clock_timer_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_set_media_clock_timer_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UISetMediaClockTimerResponse::UISetMediaClockTimerResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UISetMediaClockTimerResponse::~UISetMediaClockTimerResponse() {
+}
+
+void UISetMediaClockTimerResponse::Run() {
+ LOG4CXX_INFO(logger_, "UISetMediaClockTimerResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_SetMediaClockTimer);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_request.cc
new file mode 100644
index 000000000..841c8a62f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_show_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIShowRequest::UIShowRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UIShowRequest::~UIShowRequest() {
+}
+
+void UIShowRequest::Run() {
+ LOG4CXX_INFO(logger_, "UIShowRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_response.cc
new file mode 100644
index 000000000..c95cbbd2b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_show_response.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_show_response.h"
+#include "application_manager/event_engine/event.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UIShowResponse::UIShowResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UIShowResponse::~UIShowResponse() {
+}
+
+void UIShowResponse::Run() {
+ LOG4CXX_INFO(logger_, "UIShowResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_Show);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_request.cc
new file mode 100644
index 000000000..fc7203c0e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/ui_slider_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UISliderRequest::UISliderRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UISliderRequest::~UISliderRequest() {
+}
+
+void UISliderRequest::Run() {
+ LOG4CXX_INFO(logger_, "UISliderRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_response.cc
new file mode 100644
index 000000000..8d2522e22
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/ui_slider_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/ui_slider_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UISliderResponse::UISliderResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UISliderResponse::~UISliderResponse() {
+}
+
+void UISliderResponse::Run() {
+ LOG4CXX_INFO(logger_, "UISliderResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::UI_Slider);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_request.cc
new file mode 100644
index 000000000..eaa09b40c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/update_app_list_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UpdateAppListRequest::UpdateAppListRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UpdateAppListRequest::~UpdateAppListRequest() {
+}
+
+void UpdateAppListRequest::Run() {
+ LOG4CXX_INFO(logger_, "UpdateAppListRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_response.cc
new file mode 100644
index 000000000..7c8537bc8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/update_app_list_response.cc
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/update_app_list_response.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UpdateAppListResponse::UpdateAppListResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UpdateAppListResponse::~UpdateAppListResponse() {
+}
+
+void UpdateAppListResponse::Run() {
+ LOG4CXX_INFO(logger_, "UpdateAppListResponse::Run");
+
+ // TODO(PV): add check
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_request.cc
new file mode 100644
index 000000000..6346f312f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_request.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/update_device_list_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UpdateDeviceListRequest::UpdateDeviceListRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+UpdateDeviceListRequest::~UpdateDeviceListRequest() {
+}
+
+void UpdateDeviceListRequest::Run() {
+ LOG4CXX_INFO(logger_, "UpdateDeviceListRequest::Run");
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_response.cc
new file mode 100644
index 000000000..85ef57404
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/update_device_list_response.cc
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/update_device_list_response.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UpdateDeviceListResponse::UpdateDeviceListResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+UpdateDeviceListResponse::~UpdateDeviceListResponse() {
+}
+
+void UpdateDeviceListResponse::Run() {
+ LOG4CXX_INFO(logger_, "UpdateDeviceListResponse::Run");
+
+ // TODO(PV): add check for correctness.
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc
new file mode 100644
index 000000000..45d44e447
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vi_diagnostic_message_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIDiagnosticMessageRequest::VIDiagnosticMessageRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VIDiagnosticMessageRequest::~VIDiagnosticMessageRequest() {
+}
+
+void VIDiagnosticMessageRequest::Run() {
+ LOG4CXX_INFO(logger_, "VIDiagnosticMessageRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc
new file mode 100644
index 000000000..d83869b27
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_diagnostic_message_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vi_diagnostic_message_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIDiagnosticMessageResponse::VIDiagnosticMessageResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VIDiagnosticMessageResponse::~VIDiagnosticMessageResponse() {
+}
+
+void VIDiagnosticMessageResponse::Run() {
+ LOG4CXX_INFO(logger_, "VIDiagnosticMessageResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_DiagnosticMessage);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc
new file mode 100644
index 000000000..5289816fb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vi_get_dtcs_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIGetDTCsRequest::VIGetDTCsRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VIGetDTCsRequest::~VIGetDTCsRequest() {
+}
+
+void VIGetDTCsRequest::Run() {
+ LOG4CXX_INFO(logger_, "VIGetDTCsRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc
new file mode 100644
index 000000000..0cacc51d6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_dtcs_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vi_get_dtcs_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIGetDTCsResponse::VIGetDTCsResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VIGetDTCsResponse::~VIGetDTCsResponse() {
+}
+
+void VIGetDTCsResponse::Run() {
+ LOG4CXX_INFO(logger_, "VIGetDTCsResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_GetDTCs);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc
new file mode 100644
index 000000000..40b2ca9fe
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vi_get_vehicle_data_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIGetVehicleDataRequest::VIGetVehicleDataRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VIGetVehicleDataRequest::~VIGetVehicleDataRequest() {
+}
+
+void VIGetVehicleDataRequest::Run() {
+ LOG4CXX_INFO(logger_, "VIGetVehicleDataRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc
new file mode 100644
index 000000000..122ddcced
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_data_response.cc
@@ -0,0 +1,91 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vi_get_vehicle_data_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIGetVehicleDataResponse::VIGetVehicleDataResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VIGetVehicleDataResponse::~VIGetVehicleDataResponse() {
+}
+
+void VIGetVehicleDataResponse::Run() {
+ LOG4CXX_INFO(logger_, "VIGetVehicleDataResponse::Run");
+ smart_objects::SmartObject* result_so = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ if (!result_so) {
+ // TODO(PV): add response with out of memory.
+ LOG4CXX_ERROR(logger_,
+ "Failed to create new Smart Object on get vehicle response.");
+ return;
+ }
+
+ event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_GetVehicleData);
+
+ smart_objects::SmartObject& result = *result_so;
+
+ if ((*message_)[strings::params][strings::message_type]
+ == static_cast<int32_t>(hmi_apis::messageType::error_response)) {
+ if ((*message_)[strings::params].keyExists(strings::data)) {
+ result[strings::msg_params] = (*message_)[strings::params][strings::data];
+ result[strings::params][hmi_response::code] =
+ (*message_)[strings::params][hmi_response::code];
+ result[strings::params][strings::correlation_id] =
+ (*message_)[strings::params][strings::correlation_id];
+ result[strings::params][strings::error_msg] =
+ (*message_)[strings::params][strings::error_msg];
+ result[strings::params][strings::message_type] =
+ (*message_)[strings::params][strings::message_type];
+ result[strings::params][strings::protocol_type] =
+ (*message_)[strings::params][strings::protocol_type];
+ result[strings::params][strings::protocol_version] =
+ (*message_)[strings::params][strings::protocol_version];
+ }
+
+ event.set_smart_object(*result_so);
+ } else {
+ event.set_smart_object(*message_);
+ }
+
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc
new file mode 100644
index 000000000..4c46de950
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vi_get_vehicle_type_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIGetVehicleTypeRequest::VIGetVehicleTypeRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VIGetVehicleTypeRequest::~VIGetVehicleTypeRequest() {
+}
+
+void VIGetVehicleTypeRequest::Run() {
+ LOG4CXX_INFO(logger_, "VIGetVehicleTypeRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc
new file mode 100644
index 000000000..18c0136d1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_get_vehicle_type_response.cc
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vi_get_vehicle_type_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIGetVehicleTypeResponse::VIGetVehicleTypeResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VIGetVehicleTypeResponse::~VIGetVehicleTypeResponse() {
+}
+
+void VIGetVehicleTypeResponse::Run() {
+ LOG4CXX_INFO(logger_, "VIGetVehicleTypeResponse::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_vehicle_type(
+ (*message_)[strings::msg_params][hmi_response::vehicle_type]);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc
new file mode 100644
index 000000000..074d6f602
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vi_is_ready_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIIsReadyRequest::VIIsReadyRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VIIsReadyRequest::~VIIsReadyRequest() {
+}
+
+void VIIsReadyRequest::Run() {
+ LOG4CXX_INFO(logger_, "VIIsReadyRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc
new file mode 100644
index 000000000..f06e01879
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_is_ready_response.cc
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vi_is_ready_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIIsReadyResponse::VIIsReadyResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VIIsReadyResponse::~VIIsReadyResponse() {
+}
+
+void VIIsReadyResponse::Run() {
+ LOG4CXX_INFO(logger_, "VIIsReadyResponse::Run");
+ smart_objects::SmartObject& object = *message_;
+
+ bool is_available = false;
+ if (object[strings::msg_params].keyExists(strings::available)) {
+ is_available = object[strings::msg_params][strings::available].asBool();
+ }
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ hmi_capabilities.set_is_ivi_cooperating(is_available);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_request.cc
new file mode 100644
index 000000000..1485b471c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vi_read_did_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIReadDIDRequest::VIReadDIDRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VIReadDIDRequest::~VIReadDIDRequest() {
+}
+
+void VIReadDIDRequest::Run() {
+ LOG4CXX_INFO(logger_, "VIReadDIDRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_response.cc
new file mode 100644
index 000000000..ddd9f3c54
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_read_did_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vi_read_did_response.h"
+#include "application_manager/event_engine/event.h"
+#include "application_manager/application_manager_impl.h"
+
+
+namespace application_manager {
+
+namespace commands {
+
+VIReadDIDResponse::VIReadDIDResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VIReadDIDResponse::~VIReadDIDResponse() {
+}
+
+void VIReadDIDResponse::Run() {
+ LOG4CXX_INFO(logger_, "VIReadDIDResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::VehicleInfo_ReadDID);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc
new file mode 100644
index 000000000..38950a2a2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VISubscribeVehicleDataRequest::VISubscribeVehicleDataRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VISubscribeVehicleDataRequest::~VISubscribeVehicleDataRequest() {
+}
+
+void VISubscribeVehicleDataRequest::Run() {
+ LOG4CXX_INFO(logger_, "VISubscribeVehicleDataRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc
new file mode 100644
index 000000000..bd67294fb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_subscribe_vehicle_data_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+namespace commands {
+
+VISubscribeVehicleDataResponse::VISubscribeVehicleDataResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VISubscribeVehicleDataResponse::~VISubscribeVehicleDataResponse() {
+}
+
+void VISubscribeVehicleDataResponse::Run() {
+ LOG4CXX_INFO(logger_, "VISubscribeVehicleDataResponse::Run");
+ event_engine::Event event(
+ hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData
+ );
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc
new file mode 100644
index 000000000..0af87c2a2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VIUnsubscribeVehicleDataRequest::VIUnsubscribeVehicleDataRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VIUnsubscribeVehicleDataRequest::~VIUnsubscribeVehicleDataRequest() {
+}
+
+void VIUnsubscribeVehicleDataRequest::Run() {
+ LOG4CXX_INFO(logger_, "VIUnsubscribeVehicleDataRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc
new file mode 100644
index 000000000..22231b4a6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vi_unsubscribe_vehicle_data_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+namespace commands {
+
+VIUnsubscribeVehicleDataResponse::VIUnsubscribeVehicleDataResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VIUnsubscribeVehicleDataResponse::~VIUnsubscribeVehicleDataResponse() {
+}
+
+void VIUnsubscribeVehicleDataResponse::Run() {
+ LOG4CXX_INFO(logger_, "VIUnsubscribeVehicleDataResponse::Run");
+ event_engine::Event event(
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeVehicleData
+ );
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_request.cc
new file mode 100644
index 000000000..a74ece95d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vr_add_command_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRAddCommandRequest::VRAddCommandRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VRAddCommandRequest::~VRAddCommandRequest() {
+}
+
+void VRAddCommandRequest::Run() {
+ LOG4CXX_INFO(logger_, "VRAddCommandRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_response.cc
new file mode 100644
index 000000000..513ccdace
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_add_command_response.cc
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vr_add_command_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRAddCommandResponse::VRAddCommandResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VRAddCommandResponse::~VRAddCommandResponse() {
+}
+
+void VRAddCommandResponse::Run() {
+ LOG4CXX_INFO(logger_, "VRAddCommandResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::VR_AddCommand);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc
new file mode 100644
index 000000000..bd7c1e784
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vr_change_registration_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRChangeRegistrationRequest::VRChangeRegistrationRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VRChangeRegistrationRequest::~VRChangeRegistrationRequest() {
+}
+
+void VRChangeRegistrationRequest::Run() {
+ LOG4CXX_INFO(logger_, "VRChangeRegistrationRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc
new file mode 100644
index 000000000..92a36d23f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_change_registration_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vr_change_registration_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRChangeRegistrationResponse::VRChangeRegistrationResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VRChangeRegistrationResponse::~VRChangeRegistrationResponse() {
+}
+
+void VRChangeRegistrationResponse::Run() {
+ LOG4CXX_INFO(logger_, "VRChangeRegistratioResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::VR_ChangeRegistration);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc
new file mode 100644
index 000000000..0241be630
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vr_delete_command_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRDeleteCommandRequest::VRDeleteCommandRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VRDeleteCommandRequest::~VRDeleteCommandRequest() {
+}
+
+void VRDeleteCommandRequest::Run() {
+ LOG4CXX_INFO(logger_, "VRDeleteCommandRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc
new file mode 100644
index 000000000..c5a13126b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_delete_command_response.cc
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vr_delete_command_response.h"
+#include "application_manager/event_engine/event.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRDeleteCommandResponse::VRDeleteCommandResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VRDeleteCommandResponse::~VRDeleteCommandResponse() {
+}
+
+void VRDeleteCommandResponse::Run() {
+ LOG4CXX_INFO(logger_, "VRDeleteCommandResponse::Run");
+
+ event_engine::Event event(hmi_apis::FunctionID::VR_DeleteCommand);
+ event.set_smart_object(*message_);
+ event.raise();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc
new file mode 100644
index 000000000..8b1d4ae0b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vr_get_capabilities_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRGetCapabilitiesRequest::VRGetCapabilitiesRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VRGetCapabilitiesRequest::~VRGetCapabilitiesRequest() {
+}
+
+void VRGetCapabilitiesRequest::Run() {
+ LOG4CXX_INFO(logger_, "VRGetCapabilitiesRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc
new file mode 100644
index 000000000..de6fdd7a9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_capabilities_response.cc
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vr_get_capabilities_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRGetCapabilitiesResponse::VRGetCapabilitiesResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VRGetCapabilitiesResponse::~VRGetCapabilitiesResponse() {
+}
+
+void VRGetCapabilitiesResponse::Run() {
+ LOG4CXX_INFO(logger_, "VRGetCapabilitiesResponse::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+
+ hmi_capabilities.set_vr_capabilities(
+ (*message_)[strings::msg_params][strings::vr_capabilities]);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_request.cc
new file mode 100644
index 000000000..9f4aeb979
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vr_get_language_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRGetLanguageRequest::VRGetLanguageRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VRGetLanguageRequest::~VRGetLanguageRequest() {
+}
+
+void VRGetLanguageRequest::Run() {
+ LOG4CXX_INFO(logger_, "VRGetLanguageRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_response.cc
new file mode 100644
index 000000000..acbd24fbb
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_language_response.cc
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vr_get_language_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRGetLanguageResponse::VRGetLanguageResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VRGetLanguageResponse::~VRGetLanguageResponse() {
+}
+
+void VRGetLanguageResponse::Run() {
+ LOG4CXX_INFO(logger_, "VRGetLanguageResponse::Run");
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ hmi_capabilities.set_active_vr_language(
+ static_cast<hmi_apis::Common_Language::eType>(
+ (*message_)[strings::msg_params][hmi_response::language].asInt()));
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc
new file mode 100644
index 000000000..e43d88430
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_request.cc
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vr_get_supported_languages_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRGetSupportedLanguagesRequest::VRGetSupportedLanguagesRequest(
+ const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VRGetSupportedLanguagesRequest::~VRGetSupportedLanguagesRequest() {
+}
+
+void VRGetSupportedLanguagesRequest::Run() {
+ LOG4CXX_INFO(logger_, "VRGetSupportedLanguagesRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc
new file mode 100644
index 000000000..d2cc148a0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_get_supported_languages_response.cc
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vr_get_supported_languages_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRGetSupportedLanguagesResponse::VRGetSupportedLanguagesResponse(
+ const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VRGetSupportedLanguagesResponse::~VRGetSupportedLanguagesResponse() {
+}
+
+void VRGetSupportedLanguagesResponse::Run() {
+ LOG4CXX_INFO(logger_, "VRGetSupportedLanguagesResponse::Run");
+
+ const hmi_apis::Common_Result::eType code =
+ static_cast<hmi_apis::Common_Result::eType>(
+ (*message_)[strings::params][hmi_response::code].asInt());
+
+ if (hmi_apis::Common_Result::SUCCESS == code) {
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ hmi_capabilities.set_vr_supported_languages(
+ (*message_)[strings::msg_params][hmi_response::languages]);
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc
new file mode 100644
index 000000000..944cfcbb3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_request.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/hmi/vr_is_ready_request.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRIsReadyRequest::VRIsReadyRequest(const MessageSharedPtr& message)
+ : RequestToHMI(message) {
+}
+
+VRIsReadyRequest::~VRIsReadyRequest() {
+}
+
+void VRIsReadyRequest::Run() {
+ LOG4CXX_INFO(logger_, "VRIsReadyRequest::Run");
+
+ SendRequest();
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc
new file mode 100644
index 000000000..8cf5e66ee
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/hmi/vr_is_ready_response.cc
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "application_manager/commands/hmi/vr_is_ready_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+VRIsReadyResponse::VRIsReadyResponse(const MessageSharedPtr& message)
+ : ResponseFromHMI(message) {
+}
+
+VRIsReadyResponse::~VRIsReadyResponse() {
+}
+
+void VRIsReadyResponse::Run() {
+ LOG4CXX_INFO(logger_, "VRIsReadyResponse::Run");
+ smart_objects::SmartObject& object = *message_;
+
+ bool is_available = false;
+ if (object[strings::msg_params].keyExists(strings::available)) {
+ is_available = object[strings::msg_params][strings::available].asBool();
+ }
+
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ hmi_capabilities.set_is_vr_cooperating(is_available);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_request.cc
new file mode 100644
index 000000000..78bc47c06
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_request.cc
@@ -0,0 +1,364 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string>
+#include "application_manager/commands/mobile/add_command_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application.h"
+#include "application_manager/message_helper.h"
+#include "utils/file_system.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AddCommandRequest::AddCommandRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message),
+ is_ui_send_(false),
+ is_vr_send_(false),
+ is_ui_received_(false),
+ is_vr_received_(false),
+ ui_result_(hmi_apis::Common_Result::INVALID_ENUM),
+ vr_result_(hmi_apis::Common_Result::INVALID_ENUM) {
+}
+
+AddCommandRequest::~AddCommandRequest() {
+}
+
+void AddCommandRequest::Run() {
+ LOG4CXX_INFO(logger_, "AddCommandRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "No application associated with session key");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ mobile_apis::Result::eType verification_result =
+ MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app);
+
+ if (mobile_apis::Result::SUCCESS != verification_result) {
+ LOG4CXX_ERROR_EXT(
+ logger_,
+ "MessageHelper::VerifyImageFiles return " << verification_result);
+ SendResponse(false, verification_result);
+ return;
+ }
+
+ if (!((*message_)[strings::msg_params].keyExists(strings::cmd_id))) {
+ LOG4CXX_ERROR_EXT(logger_, "INVALID_DATA");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ if (app->FindCommand(
+ (*message_)[strings::msg_params][strings::cmd_id].asUInt())) {
+ LOG4CXX_ERROR_EXT(logger_, "INVALID_ID");
+ SendResponse(false, mobile_apis::Result::INVALID_ID);
+ return;
+ }
+
+ bool data_exist = false;
+
+ if ((*message_)[strings::msg_params].keyExists(strings::menu_params)) {
+ if (!CheckCommandName(app)) {
+ SendResponse(false, mobile_apis::Result::DUPLICATE_NAME);
+ return;
+ }
+ if ((*message_)[strings::msg_params][strings::menu_params].keyExists(
+ hmi_request::parent_id)) {
+ if (!CheckCommandParentId(app)) {
+ SendResponse(false, mobile_apis::Result::INVALID_ID,
+ "Parent ID doesn't exist");
+ return;
+ }
+ }
+ data_exist = true;
+ }
+
+ if (((*message_)[strings::msg_params].keyExists(strings::vr_commands))
+ && ((*message_)[strings::msg_params]
+ [strings::vr_commands].length() > 0)) {
+
+ if (!CheckCommandVRSynonym(app)) {
+ SendResponse(false, mobile_apis::Result::DUPLICATE_NAME);
+ return;
+ }
+
+ if (!CheckVRCommandsNames()) {
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+ data_exist = true;
+ }
+
+ if (!data_exist) {
+ LOG4CXX_ERROR_EXT(logger_, "INVALID_DATA");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::menu_params)) {
+ if (!CheckMenuName()) {
+ LOG4CXX_ERROR_EXT(logger_, "MenuName is invalid");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::cmd_id] =
+ (*message_)[strings::msg_params][strings::cmd_id];
+ msg_params[strings::menu_params] =
+ (*message_)[strings::msg_params][strings::menu_params];
+
+ msg_params[strings::app_id] = app->app_id();
+
+ if ( ((*message_)[strings::msg_params].keyExists(strings::cmd_icon))
+ && ((*message_)[strings::msg_params][strings::cmd_icon].keyExists(strings::value))
+ && (0 < (*message_)[strings::msg_params][strings::cmd_icon]
+ [strings::value].length())) {
+ msg_params[strings::cmd_icon] =
+ (*message_)[strings::msg_params][strings::cmd_icon];
+ }
+
+ is_ui_send_ = true;
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_AddCommand, &msg_params, true);
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::vr_commands)) {
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::cmd_id] =
+ (*message_)[strings::msg_params][strings::cmd_id];
+ msg_params[strings::vr_commands] =
+ (*message_)[strings::msg_params][strings::vr_commands];
+ msg_params[strings::app_id] = app->app_id();
+
+ is_vr_send_ = true;
+
+ SendHMIRequest(hmi_apis::FunctionID::VR_AddCommand, &msg_params, true);
+ }
+}
+
+bool AddCommandRequest::CheckCommandName(ApplicationConstSharedPtr app) {
+ if (!app) {
+ return false;
+ }
+
+ const CommandsMap& commands = app->commands_map();
+ CommandsMap::const_iterator i = commands.begin();
+
+ for (; commands.end() != i; ++i) {
+
+ if(!(*i->second).keyExists(strings::menu_params)) {
+ continue;
+ }
+
+ if ((*i->second)[strings::menu_params][strings::menu_name].asString()
+ == (*message_)[strings::msg_params][strings::menu_params]
+ [strings::menu_name].asString()) {
+ LOG4CXX_INFO(logger_, "AddCommandRequest::CheckCommandName received"
+ " command name already exist");
+ return false;
+ }
+ }
+ return true;
+}
+
+bool AddCommandRequest::CheckCommandVRSynonym(ApplicationConstSharedPtr app) {
+ if (!app) {
+ return false;
+ }
+
+ const CommandsMap& commands = app->commands_map();
+ CommandsMap::const_iterator it = commands.begin();
+
+ for (; commands.end() != it; ++it) {
+
+ if(!(*it->second).keyExists(strings::vr_commands)) {
+ continue;
+ }
+
+ for (size_t i = 0; i < (*it->second)[strings::vr_commands].length(); ++i) {
+ for (size_t j = 0;
+ j < (*message_)[strings::msg_params][strings::vr_commands].length();
+ ++j) {
+ std::string vr_cmd_i =
+ (*it->second)[strings::vr_commands][i].asString();
+ std::string vr_cmd_j =
+ (*message_)[strings::msg_params]
+ [strings::vr_commands][j].asString();
+
+ if (0 == strcasecmp(vr_cmd_i.c_str(), vr_cmd_j.c_str())) {
+ LOG4CXX_INFO(logger_, "AddCommandRequest::CheckCommandVRSynonym"
+ " received command vr synonym already exist");
+ return false;
+ }
+ }
+ }
+ }
+ return true;
+}
+
+bool AddCommandRequest::CheckVRCommandsNames() {
+ for (size_t i = 0;
+ i < (*message_)[strings::msg_params][strings::vr_commands].length();
+ ++i) {
+ const std::string& str =
+ (*message_)[strings::msg_params][strings::vr_commands][i].asString();
+
+ if (!CheckSyntax(str)) {
+ LOG4CXX_INFO(logger_, "Invalid command name.");
+ return false;
+ }
+ }
+ return true;
+}
+
+bool AddCommandRequest::CheckMenuName() {
+ const std::string& str = (*message_)[strings::msg_params][strings::menu_params]
+ [strings::menu_name].asString();
+ if (!CheckSyntax(str)) {
+ LOG4CXX_INFO(logger_, "Invalid menu name.");
+ return false;
+ }
+ return true;
+}
+
+bool AddCommandRequest::CheckCommandParentId(ApplicationConstSharedPtr app) {
+ if (!app) {
+ return false;
+ }
+
+ const int32_t parent_id =
+ (*message_)[strings::msg_params][strings::menu_params]
+ [hmi_request::parent_id].asInt();
+ smart_objects::SmartObject* parent = app->FindSubMenu(parent_id);
+
+ if (!parent) {
+ LOG4CXX_INFO(logger_, "AddCommandRequest::CheckCommandParentId received"
+ " submenu doesn't exist");
+ return false;
+ }
+ return true;
+}
+
+void AddCommandRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "AddCommandRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_AddCommand: {
+ LOG4CXX_INFO(logger_, "Received UI_AddCommand event");
+ is_ui_received_ = true;
+ ui_result_ = static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ if (hmi_apis::Common_Result::SUCCESS != ui_result_) {
+ (*message_)[strings::msg_params].erase(strings::menu_params);
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VR_AddCommand: {
+ LOG4CXX_INFO(logger_, "Received VR_AddCommand event");
+ is_vr_received_ = true;
+ vr_result_ = static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ if (hmi_apis::Common_Result::SUCCESS != vr_result_) {
+ (*message_)[strings::msg_params].erase(strings::vr_commands);
+ }
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_,"Received unknown event" << event.id());
+ return;
+ }
+ }
+
+ if (!IsPendingResponseExist()) {
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(connection_key());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+
+ smart_objects::SmartObject* command = application->FindCommand(
+ (*message_)[strings::msg_params][strings::cmd_id].asInt());
+
+ if (!command) {
+ if ((((*message_)[strings::msg_params].keyExists(strings::menu_params)) ||
+ ((*message_)[strings::msg_params].keyExists(strings::vr_commands))) &&
+ (hmi_apis::Common_Result::REJECTED != ui_result_)) {
+ application->AddCommand((*message_)[strings::msg_params]
+ [strings::cmd_id].asInt(),
+ (*message_)[strings::msg_params]);
+ }
+
+ mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM;
+
+ bool result = ((hmi_apis::Common_Result::SUCCESS == ui_result_) &&
+ (hmi_apis::Common_Result::SUCCESS == vr_result_)) ||
+ ((hmi_apis::Common_Result::SUCCESS == ui_result_) &&
+ (hmi_apis::Common_Result::INVALID_ENUM == vr_result_)) ||
+ ((hmi_apis::Common_Result::INVALID_ENUM == ui_result_) &&
+ (hmi_apis::Common_Result::SUCCESS == vr_result_));
+
+ if (!result && (hmi_apis::Common_Result::REJECTED == ui_result_)) {
+ result_code = static_cast<mobile_apis::Result::eType>(ui_result_);
+ } else {
+ result_code = static_cast<mobile_apis::Result::eType>(
+ std::max(ui_result_, vr_result_));
+ }
+
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(connection_key());
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ application->UpdateHash();
+ }
+ }
+}
+
+bool AddCommandRequest::IsPendingResponseExist() {
+ return is_ui_send_ != is_ui_received_ || is_vr_send_ != is_vr_received_;
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_response.cc
new file mode 100644
index 000000000..0c135af07
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/add_command_response.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/add_command_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AddCommandResponse::AddCommandResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+AddCommandResponse::~AddCommandResponse() {
+}
+
+void AddCommandResponse::Run() {
+ LOG4CXX_INFO(logger_, "AddCommandResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc
new file mode 100644
index 000000000..b3a8b90f4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_request.cc
@@ -0,0 +1,145 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/add_sub_menu_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AddSubMenuRequest::AddSubMenuRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+AddSubMenuRequest::~AddSubMenuRequest() {
+}
+
+void AddSubMenuRequest::Run() {
+ LOG4CXX_INFO(logger_, "AddSubMenuRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (app->FindSubMenu(
+ (*message_)[strings::msg_params][strings::menu_id].asInt())) {
+ LOG4CXX_ERROR(logger_, "INVALID_ID");
+ SendResponse(false, mobile_apis::Result::INVALID_ID);
+ return;
+ }
+
+ if (app->IsSubMenuNameAlreadyExist(
+ (*message_)[strings::msg_params][strings::menu_name].asString())) {
+ LOG4CXX_ERROR(logger_, "DUPLICATE_NAME");
+ SendResponse(false, mobile_apis::Result::DUPLICATE_NAME);
+ return;
+ }
+
+ if (!CheckSubMenuName()) {
+ LOG4CXX_ERROR(logger_, "SubMenuName is not valid");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[strings::menu_id] =
+ (*message_)[strings::msg_params][strings::menu_id];
+ if ((*message_)[strings::msg_params].keyExists(strings::position)) {
+ msg_params[strings::menu_params][strings::position] =
+ (*message_)[strings::msg_params][strings::position];
+ }
+ msg_params[strings::menu_params][strings::menu_name] =
+ (*message_)[strings::msg_params][strings::menu_name];
+ msg_params[strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_AddSubMenu, &msg_params, true);
+}
+
+void AddSubMenuRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "AddSubMenuRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_AddSubMenu: {
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(connection_key());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+
+ if (result) {
+ application->AddSubMenu((*message_)[strings::msg_params]
+ [strings::menu_id].asInt(),
+ (*message_)[strings::msg_params]);
+ }
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+bool AddSubMenuRequest::CheckSubMenuName() {
+ const std::string& str =
+ (*message_)[strings::msg_params][strings::menu_name].asString();
+ if (!CheckSyntax(str)) {
+ LOG4CXX_INFO(logger_, "Invalid subMenu name.");
+ return false;
+ }
+ return true;
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc
new file mode 100644
index 000000000..bcd7df288
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/add_sub_menu_response.cc
@@ -0,0 +1,57 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/add_sub_menu_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AddSubMenuResponse::AddSubMenuResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+AddSubMenuResponse::~AddSubMenuResponse() {
+}
+
+void AddSubMenuResponse::Run() {
+ LOG4CXX_INFO(logger_, "AddSubMenuResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc
new file mode 100644
index 000000000..4707d460d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_request.cc
@@ -0,0 +1,198 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/alert_maneuver_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AlertManeuverRequest::AlertManeuverRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message),
+ result_(mobile_apis::Result::INVALID_ENUM),
+ tts_speak_result_code_(mobile_apis::Result::INVALID_ENUM),
+ navi_alert_maneuver_result_code_(mobile_apis::Result::INVALID_ENUM) {
+}
+
+AlertManeuverRequest::~AlertManeuverRequest() {
+}
+
+void AlertManeuverRequest::Run() {
+ LOG4CXX_INFO(logger_, "AlertManeuverRequest::Run");
+
+ if ((!(*message_)[strings::msg_params].keyExists(strings::soft_buttons)) &&
+ (!(*message_)[strings::msg_params].keyExists(strings::tts_chunks))) {
+ LOG4CXX_ERROR(logger_, "AlertManeuverRequest::Request without parameters!");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (NULL == app.get()) {
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ mobile_apis::Result::eType processing_result =
+ MessageHelper::ProcessSoftButtons((*message_)[strings::msg_params], app);
+
+ if (mobile_apis::Result::SUCCESS != processing_result) {
+ if (mobile_apis::Result::INVALID_DATA == processing_result) {
+ LOG4CXX_ERROR(logger_, "Wrong soft buttons parameters!");
+ SendResponse(false, processing_result);
+ return;
+ }
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) {
+ LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!");
+ result_ = processing_result;
+ }
+ }
+
+ // Checking parameters and how many HMI requests should be sent
+ bool tts_is_ok = false;
+
+ // check TTSChunk parameter
+ if ((*message_)[strings::msg_params].keyExists(strings::tts_chunks)) {
+ if (0 < (*message_)[strings::msg_params][strings::tts_chunks].length()) {
+ pending_requests_.Add(hmi_apis::FunctionID::TTS_Speak);
+ tts_is_ok = true;
+ }
+ }
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if ((*message_)[strings::msg_params].keyExists(strings::soft_buttons)) {
+ msg_params[hmi_request::soft_buttons] =
+ (*message_)[strings::msg_params][strings::soft_buttons];
+ }
+
+ pending_requests_.Add(hmi_apis::FunctionID::Navigation_AlertManeuver);
+ SendHMIRequest(hmi_apis::FunctionID::Navigation_AlertManeuver,
+ &msg_params,
+ true);
+
+ if (tts_is_ok) {
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[hmi_request::tts_chunks] =
+ (*message_)[strings::msg_params][strings::tts_chunks];
+
+ msg_params[strings::app_id] = app->app_id();
+ SendHMIRequest(hmi_apis::FunctionID::TTS_Speak, &msg_params, true);
+ }
+}
+
+void AlertManeuverRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "AlertManeuverRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM;
+ hmi_apis::FunctionID::eType event_id = event.id();
+ switch (event_id) {
+ case hmi_apis::FunctionID::Navigation_AlertManeuver: {
+ LOG4CXX_INFO(logger_, "Received Navigation_AlertManeuver event");
+
+ pending_requests_.Remove(event_id);
+
+ navi_alert_maneuver_result_code_ =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_Speak: {
+ LOG4CXX_INFO(logger_, "Received TTS_Speak event");
+
+ pending_requests_.Remove(event_id);
+
+ tts_speak_result_code_ =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_,"Received unknown event" << event.id());
+ SendResponse(false, result_code, "Received unknown event");
+ return;
+ }
+ }
+
+ if (pending_requests_.IsFinal(event_id)) {
+
+ bool result = ((hmi_apis::Common_Result::SUCCESS ==
+ static_cast<hmi_apis::Common_Result::eType>(tts_speak_result_code_)) &&
+ (hmi_apis::Common_Result::SUCCESS ==
+ static_cast<hmi_apis::Common_Result::eType>(navi_alert_maneuver_result_code_))) ||
+ ((hmi_apis::Common_Result::INVALID_ENUM ==
+ static_cast<hmi_apis::Common_Result::eType>(tts_speak_result_code_)) &&
+ (hmi_apis::Common_Result::SUCCESS ==
+ static_cast<hmi_apis::Common_Result::eType>(navi_alert_maneuver_result_code_)));
+
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(std::max(tts_speak_result_code_,
+ navi_alert_maneuver_result_code_));
+
+ const char* return_info = NULL;
+
+ if (result) {
+ if (mobile_apis::Result::INVALID_ENUM != result_) {
+ result_code = result_;
+ } else if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE ==
+ static_cast<hmi_apis::Common_Result::eType>(result_code)) {
+ result_code = mobile_apis::Result::WARNINGS;
+ return_info =
+ std::string("Unsupported phoneme type sent in a prompt").c_str();
+ }
+ }
+
+ SendResponse(result, result_code, return_info,
+ &(message[strings::msg_params]));
+ } else {
+ LOG4CXX_INFO(logger_,
+ "There are some pending responses from HMI."
+ "AlertManeuverRequest still waiting.");
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc
new file mode 100644
index 000000000..99fcde69a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_maneuver_response.cc
@@ -0,0 +1,57 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/alert_maneuver_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AlertManeuverResponse::AlertManeuverResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+AlertManeuverResponse::~AlertManeuverResponse() {
+}
+
+void AlertManeuverResponse::Run() {
+ LOG4CXX_INFO(logger_, "AlertManeuverResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/alert_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_request.cc
new file mode 100644
index 000000000..3201669a9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_request.cc
@@ -0,0 +1,303 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/alert_request.h"
+
+#include "application_manager/application_impl.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/message_helper.h"
+#include <interfaces/HMI_API.h>
+
+namespace application_manager {
+
+namespace commands {
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+AlertRequest::AlertRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message),
+ awaiting_ui_alert_response_(false),
+ awaiting_tts_speak_response_(false),
+ awaiting_tts_stop_speaking_response_(false),
+ response_success_(false),
+ flag_other_component_sent_(false),
+ response_result_(mobile_apis::Result::SUCCESS),
+ tts_speak_response_(mobile_apis::Result::INVALID_ENUM) {
+ subscribe_on_event(hmi_apis::FunctionID::UI_OnResetTimeout);
+}
+
+AlertRequest::~AlertRequest() {
+}
+
+bool AlertRequest::Init() {
+
+ /* Timeout in milliseconds.
+ If omitted a standard value of 10000 milliseconds is used.*/
+ if ((*message_)[strings::msg_params].keyExists(strings::duration)) {
+ default_timeout_ =
+ (*message_)[strings::msg_params][strings::duration].asUInt();
+ } else {
+ const int32_t def_value = 5000;
+ default_timeout_ = def_value;
+ }
+
+ return true;
+}
+
+void AlertRequest::Run() {
+ LOG4CXX_INFO(logger_, "AlertRequest::Run");
+
+ uint32_t app_id = (*message_)[strings::params][strings::connection_key]
+ .asInt();
+
+ if (!Validate(app_id)) {
+ // Invalid command, abort execution
+ return;
+ }
+
+ awaiting_ui_alert_response_ = true;
+ if ((*message_)[strings::msg_params].keyExists(strings::tts_chunks)) {
+ if (0 < (*message_)[strings::msg_params][strings::tts_chunks].length()) {
+ awaiting_tts_speak_response_ = true;
+ }
+ }
+ SendAlertRequest(app_id);
+ SendPlayToneNotification(app_id);
+ if (awaiting_tts_speak_response_) {
+ SendSpeakRequest(app_id);
+ }
+}
+
+void AlertRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "AlertRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_OnResetTimeout: {
+ LOG4CXX_INFO(logger_, "Received UI_OnResetTimeout event " << awaiting_tts_speak_response_ << " "
+ << awaiting_tts_stop_speaking_response_ << " " << awaiting_ui_alert_response_);
+ ApplicationManagerImpl::instance()->updateRequestTimeout(
+ connection_key(), correlation_id(), default_timeout());
+ break;
+ }
+ case hmi_apis::FunctionID::UI_Alert: {
+ LOG4CXX_INFO(logger_, "Received UI_Alert event");
+ DCHECK(awaiting_ui_alert_response_);
+ awaiting_ui_alert_response_ = false;
+
+ if (awaiting_tts_speak_response_) {
+ awaiting_tts_stop_speaking_response_ = true;
+ SendHMIRequest(hmi_apis::FunctionID::TTS_StopSpeaking, NULL, true);
+ }
+
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ // Mobile Alert request is successful when UI_Alert is successful
+ response_success_ = mobile_apis::Result::SUCCESS == result_code;
+ if (!response_success_) {
+ response_result_ = result_code;
+ }
+ response_params_ = message[strings::msg_params];
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_Speak: {
+ LOG4CXX_INFO(logger_, "Received TTS_Speak event");
+ DCHECK(awaiting_tts_speak_response_);
+ awaiting_tts_speak_response_ = false;
+ tts_speak_response_ = static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_StopSpeaking: {
+ LOG4CXX_INFO(logger_, "Received TTS_StopSpeaking event");
+ DCHECK(awaiting_tts_stop_speaking_response_);
+ awaiting_tts_stop_speaking_response_ = false;
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_,"Received unknown event" << event.id());
+ return;
+ }
+ }
+ if (!HasHmiResponsesToWait()) {
+ std::string response_info("");
+ if ((mobile_apis::Result::UNSUPPORTED_RESOURCE == tts_speak_response_) &&
+ (!flag_other_component_sent_) && response_success_) {
+ response_success_ = false;
+ response_result_ = mobile_apis::Result::WARNINGS;
+ response_info = "Unsupported phoneme type sent in a prompt";
+ } else if ((mobile_apis::Result::UNSUPPORTED_RESOURCE ==
+ tts_speak_response_) && (mobile_apis::Result::UNSUPPORTED_RESOURCE ==
+ response_result_) && response_success_) {
+ response_result_ = mobile_apis::Result::WARNINGS;
+ response_info = "Unsupported phoneme type sent in a prompt and "
+ "unsupported image sent in soft buttons";
+ } else if ((mobile_apis::Result::UNSUPPORTED_RESOURCE ==
+ tts_speak_response_) && response_success_) {
+ response_result_ = mobile_apis::Result::WARNINGS;
+ response_info = "Unsupported phoneme type sent in a prompt";
+ }
+ SendResponse(response_success_, response_result_,
+ response_info.empty() ? NULL : response_info.c_str(),
+ &response_params_);
+ }
+}
+
+bool AlertRequest::Validate(uint32_t app_id) {
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "No application associated with session key");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return false;
+ }
+
+ mobile_apis::Result::eType processing_result =
+ MessageHelper::ProcessSoftButtons((*message_)[strings::msg_params], app);
+
+ if (mobile_apis::Result::SUCCESS != processing_result) {
+ if (mobile_apis::Result::INVALID_DATA == processing_result) {
+ LOG4CXX_ERROR(logger_, "INVALID_DATA!");
+ SendResponse(false, processing_result);
+ return false;
+ }
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) {
+ LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!");
+ response_result_ = processing_result;
+ }
+ }
+
+ // check if mandatory params(alertText1 and TTSChunk) specified
+ if ((!(*message_)[strings::msg_params].keyExists(strings::alert_text1))
+ && (!(*message_)[strings::msg_params].keyExists(strings::alert_text2))
+ && (!(*message_)[strings::msg_params].keyExists(strings::tts_chunks)
+ && (1 > (*message_)[strings::msg_params]
+ [strings::tts_chunks].length()))) {
+ LOG4CXX_ERROR_EXT(logger_, "Mandatory parameters are missing");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA,
+ "Mandatory parameters are missing");
+ return false;
+ }
+
+ return true;
+}
+
+void AlertRequest::SendAlertRequest(int32_t app_id) {
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[hmi_request::alert_strings] = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+
+ int32_t index = 0;
+ if ((*message_)[strings::msg_params].keyExists(strings::alert_text1)) {
+ msg_params[hmi_request::alert_strings][index][hmi_request::field_name] =
+ TextFieldName::ALERT_TEXT1;
+ msg_params[hmi_request::alert_strings][index][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::alert_text1];
+ index++;
+ }
+ if ((*message_)[strings::msg_params].keyExists(strings::alert_text2)) {
+ msg_params[hmi_request::alert_strings][index][hmi_request::field_name] =
+ TextFieldName::ALERT_TEXT2;
+ msg_params[hmi_request::alert_strings][index][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::alert_text2];
+ index++;
+ }
+ if ((*message_)[strings::msg_params].keyExists(strings::alert_text3)) {
+ msg_params[hmi_request::alert_strings][index][hmi_request::field_name] =
+ TextFieldName::ALERT_TEXT3;
+ msg_params[hmi_request::alert_strings][index][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::alert_text3];
+ }
+
+ // softButtons
+ if ((*message_)[strings::msg_params].keyExists(strings::soft_buttons)) {
+ msg_params[hmi_request::soft_buttons] =
+ (*message_)[strings::msg_params][strings::soft_buttons];
+ }
+ // app_id
+ msg_params[strings::app_id] = app_id;
+ msg_params[strings::duration] = default_timeout_;
+
+ // NAVI platform progressIndicator
+ if ((*message_)[strings::msg_params].keyExists(strings::progress_indicator)) {
+ msg_params[strings::progress_indicator] =
+ (*message_)[strings::msg_params][strings::progress_indicator];
+ }
+ if (msg_params[hmi_request::alert_strings].length() > 0 ||
+ msg_params.keyExists(hmi_request::soft_buttons)) {
+ flag_other_component_sent_ = true;
+ }
+ SendHMIRequest(hmi_apis::FunctionID::UI_Alert, &msg_params, true);
+}
+
+void AlertRequest::SendSpeakRequest(int32_t app_id) {
+
+ // crate HMI speak request
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[hmi_request::tts_chunks] = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+ msg_params[hmi_request::tts_chunks] =
+ (*message_)[strings::msg_params][strings::tts_chunks];
+ msg_params[strings::app_id] = app_id;
+ SendHMIRequest(hmi_apis::FunctionID::TTS_Speak, &msg_params, true);
+}
+
+void AlertRequest::SendPlayToneNotification(int32_t app_id) {
+ LOG4CXX_INFO(logger_, "AlertRequest::SendPlayToneNotification");
+
+ // check playtone parameter
+ if ((*message_)[strings::msg_params].keyExists(strings::play_tone)) {
+ if ((*message_)[strings::msg_params][strings::play_tone].asBool()) {
+ // crate HMI basic communication playtone request
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ CreateHMINotification(hmi_apis::FunctionID::BasicCommunication_PlayTone,
+ msg_params);
+ }
+ }
+}
+
+bool AlertRequest::HasHmiResponsesToWait() {
+ return awaiting_ui_alert_response_ || awaiting_tts_speak_response_
+ || awaiting_tts_stop_speaking_response_;
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/alert_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_response.cc
new file mode 100644
index 000000000..5b8cd6557
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/alert_response.cc
@@ -0,0 +1,59 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/alert_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+AlertResponse::AlertResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+AlertResponse::~AlertResponse() {
+}
+
+void AlertResponse::Run() {
+ LOG4CXX_INFO(logger_, "AlertResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_request.cc
new file mode 100644
index 000000000..67d307bd1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_request.cc
@@ -0,0 +1,288 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <algorithm>
+#include "application_manager/commands/mobile/change_registration_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ChangeRegistrationRequest::ChangeRegistrationRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message),
+ ui_result_(hmi_apis::Common_Result::INVALID_ENUM),
+ tts_result_(hmi_apis::Common_Result::INVALID_ENUM),
+ vr_result_(hmi_apis::Common_Result::INVALID_ENUM) {
+}
+
+ChangeRegistrationRequest::~ChangeRegistrationRequest() {
+}
+
+void ChangeRegistrationRequest::Run() {
+ LOG4CXX_INFO(logger_, "ChangeRegistrationRequest::Run");
+
+ ApplicationManagerImpl* instance = ApplicationManagerImpl::instance();
+ const HMICapabilities& hmi_capabilities = instance->hmi_capabilities();
+
+ ApplicationSharedPtr app = instance->application(connection_key());
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (!hmi_capabilities.is_ui_cooperating()) {
+ ui_result_ = hmi_apis::Common_Result::UNSUPPORTED_RESOURCE;
+ }
+
+ if (!hmi_capabilities.is_vr_cooperating()) {
+ vr_result_ = hmi_apis::Common_Result::UNSUPPORTED_RESOURCE;
+ }
+
+ if (!hmi_capabilities.is_tts_cooperating()) {
+ tts_result_ = hmi_apis::Common_Result::UNSUPPORTED_RESOURCE;
+ }
+
+ const int32_t hmi_language =
+ (*message_)[strings::msg_params][strings::hmi_display_language].asInt();
+
+ const int32_t language =
+ (*message_)[strings::msg_params][strings::language].asInt();
+
+ if (false ==
+ (IsLanguageSupportedByUI(hmi_language) &&
+ IsLanguageSupportedByVR(language) &&
+ IsLanguageSupportedByTTS(language))) {
+ LOG4CXX_ERROR(logger_, "Language is not supported");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ pending_requests_.Add(hmi_apis::FunctionID::UI_ChangeRegistration);
+ pending_requests_.Add(hmi_apis::FunctionID::VR_ChangeRegistration);
+ pending_requests_.Add(hmi_apis::FunctionID::TTS_ChangeRegistration);
+
+ // UI processing
+ smart_objects::SmartObject ui_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ ui_params[strings::language] = hmi_language;
+ ui_params[strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_ChangeRegistration,
+ &ui_params, true);
+
+ // VR processing
+ smart_objects::SmartObject vr_params =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ vr_params[strings::language] =
+ (*message_)[strings::msg_params][strings::language];
+
+ vr_params[strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::VR_ChangeRegistration,
+ &vr_params, true);
+
+ // TTS processing
+ smart_objects::SmartObject tts_params =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ tts_params[strings::language] =
+ (*message_)[strings::msg_params][strings::language];
+
+ tts_params[strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::TTS_ChangeRegistration,
+ &tts_params, true);
+}
+
+bool ChangeRegistrationRequest::WasAnySuccess(
+ const hmi_apis::Common_Result::eType ui,
+ const hmi_apis::Common_Result::eType vr,
+ const hmi_apis::Common_Result::eType tts) {
+
+ return
+ hmi_apis::Common_Result::SUCCESS == ui ||
+ hmi_apis::Common_Result::SUCCESS == vr ||
+ hmi_apis::Common_Result::SUCCESS == tts;
+}
+
+void ChangeRegistrationRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "ChangeRegistrationRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ hmi_apis::FunctionID::eType event_id = event.id();
+
+ switch (event_id) {
+ case hmi_apis::FunctionID::UI_ChangeRegistration: {
+ LOG4CXX_INFO(logger_, "Received UI_ChangeRegistration event");
+ pending_requests_.Remove(event_id);
+ ui_result_ = static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ break;
+ }
+ case hmi_apis::FunctionID::VR_ChangeRegistration: {
+ LOG4CXX_INFO(logger_, "Received VR_ChangeRegistration event");
+ pending_requests_.Remove(event_id);
+ vr_result_ = static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_ChangeRegistration: {
+ LOG4CXX_INFO(logger_, "Received TTS_ChangeRegistration event");
+ pending_requests_.Remove(event_id);
+ tts_result_ = static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event_id);
+ return;
+ }
+ }
+
+ if (pending_requests_.IsFinal(event_id)) {
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(connection_key());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+
+ if (hmi_apis::Common_Result::SUCCESS == ui_result_) {
+ application->set_ui_language(static_cast<mobile_api::Language::eType>(
+ (*message_)[strings::msg_params][strings::hmi_display_language].asInt()));
+ }
+
+ if (hmi_apis::Common_Result::SUCCESS == vr_result_
+ || hmi_apis::Common_Result::SUCCESS == tts_result_) {
+ application->set_language(static_cast<mobile_api::Language::eType>(
+ (*message_)[strings::msg_params][strings::language].asInt()));
+ }
+
+ int32_t greates_result_code = std::max(std::max(ui_result_, vr_result_),
+ tts_result_);
+
+ (*message_)[strings::params][strings::function_id] =
+ mobile_apis::FunctionID::eType::ChangeRegistrationID;
+
+ SendResponse(WasAnySuccess(ui_result_, vr_result_, tts_result_),
+ static_cast<mobile_apis::Result::eType>(greates_result_code),
+ NULL, &(message[strings::msg_params]));
+ } else {
+ LOG4CXX_INFO(logger_,
+ "There are some pending responses from HMI."
+ "ChangeRegistrationRequest still waiting.");
+ }
+}
+
+bool ChangeRegistrationRequest::IsLanguageSupportedByUI(
+ const int32_t& hmi_display_lang) {
+
+ const HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ const smart_objects::SmartObject* ui_languages =
+ hmi_capabilities.ui_supported_languages();
+
+ if (!ui_languages) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return false;
+ }
+
+ for (size_t i = 0; i < ui_languages->length(); ++i) {
+ if (hmi_display_lang == ui_languages->getElement(i).asInt()) {
+ return true;
+ }
+ }
+
+ LOG4CXX_ERROR(logger_, "Language isn't supported by UI");
+
+ return false;
+}
+
+bool ChangeRegistrationRequest::IsLanguageSupportedByVR(
+ const int32_t& hmi_display_lang) {
+ const HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ const smart_objects::SmartObject* vr_languages =
+ hmi_capabilities.vr_supported_languages();
+
+ if (!vr_languages) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return false;
+ }
+
+ for (size_t i = 0; i < vr_languages->length(); ++i) {
+ if (hmi_display_lang == vr_languages->getElement(i).asInt()) {
+ return true;
+ }
+ }
+
+ LOG4CXX_ERROR(logger_, "Language isn't supported by VR");
+
+ return false;
+}
+
+bool ChangeRegistrationRequest::IsLanguageSupportedByTTS(
+ const int32_t& hmi_display_lang) {
+ const HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ const smart_objects::SmartObject* tts_languages =
+ hmi_capabilities.tts_supported_languages();
+
+ if (!tts_languages) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return false;
+ }
+
+ for (size_t i = 0; i < tts_languages->length(); ++i) {
+ if (hmi_display_lang == tts_languages->getElement(i).asInt()) {
+ return true;
+ break;
+ }
+ }
+
+ LOG4CXX_ERROR(logger_, "Language isn't supported by TTS");
+ return false;
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_response.cc
new file mode 100644
index 000000000..13c926ec8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/change_registration_response.cc
@@ -0,0 +1,57 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/change_registration_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ChangeRegistrationResponse::ChangeRegistrationResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+ChangeRegistrationResponse::~ChangeRegistrationResponse() {
+}
+
+void ChangeRegistrationResponse::Run() {
+ LOG4CXX_INFO(logger_, "ChangeRegistrationResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc
new file mode 100644
index 000000000..ae8865679
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_request.cc
@@ -0,0 +1,244 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string.h>
+#include <string>
+#include <algorithm>
+#include <vector>
+#include "application_manager/commands/mobile/create_interaction_choice_set_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+
+namespace application_manager {
+
+namespace commands {
+
+CreateInteractionChoiceSetRequest::CreateInteractionChoiceSetRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+CreateInteractionChoiceSetRequest::~CreateInteractionChoiceSetRequest() {
+}
+
+void CreateInteractionChoiceSetRequest::Run() {
+ LOG4CXX_INFO(logger_, "CreateInteractionChoiceSetRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ mobile_apis::Result::eType verification_result =
+ MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app);
+
+ mobile_apis::Result::eType result_ = mobile_apis::Result::SUCCESS;
+ if (mobile_apis::Result::SUCCESS != verification_result) {
+ if (mobile_apis::Result::INVALID_DATA == verification_result) {
+ LOG4CXX_ERROR(logger_, "VerifyImageFiles INVALID_DATA!");
+ SendResponse(false, verification_result);
+ return;
+ }
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE == verification_result) {
+ LOG4CXX_ERROR(logger_, "VerifyImageFiles UNSUPPORTED_RESOURCE!");
+ result_ = verification_result;
+ }
+ }
+
+ const int32_t choice_set_id = (*message_)[strings::msg_params]
+ [strings::interaction_choice_set_id].asInt();
+
+ if (app->FindChoiceSet(choice_set_id)) {
+ LOG4CXX_ERROR(logger_, "Invalid ID");
+ SendResponse(false, mobile_apis::Result::INVALID_ID);
+ return;
+ }
+
+ mobile_apis::Result::eType result = CheckChoiceSet(app);
+ if (mobile_apis::Result::SUCCESS != result) {
+ SendResponse(false, result);
+ return;
+ }
+
+ app->AddChoiceSet(choice_set_id, (*message_)[strings::msg_params]);
+
+ SendResponse(true, result_);
+ app->UpdateHash();
+}
+
+mobile_apis::Result::eType CreateInteractionChoiceSetRequest::CheckChoiceSet(
+ ApplicationConstSharedPtr app) {
+ LOG4CXX_INFO(logger_, "CreateInteractionChoiceSetRequest::CheckChoiceSet");
+
+ const smart_objects::SmartArray* new_choice_set_array =
+ (*message_)[strings::msg_params][strings::choice_set].asArray();
+
+ smart_objects::SmartArray::const_iterator it_array =
+ new_choice_set_array->begin();
+
+ smart_objects::SmartArray::const_iterator it_array_end =
+ new_choice_set_array->end();
+
+ // Self check of new choice set for params coincidence
+ for (; it_array != it_array_end; ++it_array) {
+
+ CoincidencePredicateChoiceID c((*it_array)[strings::choice_id].asInt());
+ if (1 != std::count_if(
+ new_choice_set_array->begin(),
+ new_choice_set_array->end(),
+ c)) {
+
+ LOG4CXX_ERROR(logger_, "Incoming choice set has duplicate IDs.");
+ return mobile_apis::Result::INVALID_ID;
+ }
+
+ // Check new choice set params along with already registered choice sets
+ const ChoiceSetMap& app_choice_set_map = app->choice_set_map();
+ ChoiceSetMap::const_iterator it = app_choice_set_map.begin();
+ ChoiceSetMap::const_iterator itEnd = app_choice_set_map.end();
+ for (; it != itEnd; ++it) {
+ const smart_objects::SmartObject* app_choice_set = it->second;
+ if (NULL != app_choice_set) {
+
+ const smart_objects::SmartArray* curr_choice_set =
+ (*app_choice_set)[strings::choice_set].asArray();
+
+ if (0 != std::count_if(
+ curr_choice_set->begin(),
+ curr_choice_set->end(),
+ c)) {
+ LOG4CXX_ERROR(logger_, "Incoming choice ID already exists.");
+ return mobile_apis::Result::INVALID_ID;
+ }
+ }
+ }
+
+ CoincidencePredicateMenuName m((*it_array)[strings::menu_name].asString());
+ if (1 != std::count_if(
+ new_choice_set_array->begin(),
+ new_choice_set_array->end(),
+ m)) {
+
+ LOG4CXX_ERROR(logger_, "Incoming choice set has duplicate menu names.");
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+
+ // Check coincidence inside the current choice
+ const smart_objects::SmartArray* vr_array =
+ (*it_array)[strings::vr_commands].asArray();
+
+ smart_objects::SmartArray::const_iterator it_vr = vr_array->begin();
+ smart_objects::SmartArray::const_iterator it_vr_end = vr_array->end();
+
+ for (; it_vr != it_vr_end; ++it_vr) {
+ CoincidencePredicateVRCommands v((*it_vr));
+ if (1 != std::count_if(vr_array->begin(), vr_array->end(), v)) {
+
+ LOG4CXX_ERROR(logger_,
+ "Incoming choice set has duplicate VR command(s)");
+
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+ }
+
+ // Check along with VR commands in other choices in the new set
+ smart_objects::SmartArray::const_iterator it_same_array =
+ new_choice_set_array->begin();
+
+ smart_objects::SmartArray::const_iterator it_same_array_end =
+ new_choice_set_array->end();
+
+ for (; it_same_array != it_same_array_end; ++it_same_array) {
+
+ // Skip check for itself
+ if ((*it_array)[strings::choice_id] ==
+ (*it_same_array)[strings::choice_id]) {
+
+ continue;
+ }
+
+ if (compareSynonyms((*it_array), (*it_same_array))) {
+
+ LOG4CXX_ERROR(logger_,
+ "Incoming choice set has duplicate VR command(s).");
+
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+ }
+ }
+
+ return mobile_apis::Result::SUCCESS;
+}
+
+bool CreateInteractionChoiceSetRequest::compareSynonyms(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& choice1,
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& choice2) {
+
+ smart_objects::SmartArray* vr_cmds_1 =
+ choice1[strings::vr_commands].asArray();
+ DCHECK(vr_cmds_1 != NULL);
+ smart_objects::SmartArray* vr_cmds_2 =
+ choice2[strings::vr_commands].asArray();
+ DCHECK(vr_cmds_2 != NULL);
+
+ smart_objects::SmartArray::iterator it;
+ it = std::find_first_of(vr_cmds_1->begin(), vr_cmds_1->end(),
+ vr_cmds_2->begin(), vr_cmds_2->end(),
+ CreateInteractionChoiceSetRequest::compareStr);
+
+
+ if (it != vr_cmds_1->end()) {
+ LOG4CXX_INFO(logger_, "Incoming choice set has duplicated VR synonyms "
+ << it->asString());
+ return true;
+ }
+
+ return false;
+}
+
+bool CreateInteractionChoiceSetRequest::compareStr(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& str1,
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& str2) {
+
+ return 0 == strcasecmp(str1.asCharArray(), str2.asCharArray());
+}
+
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc
new file mode 100644
index 000000000..8d6ea1b34
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/create_interaction_choice_set_response.cc
@@ -0,0 +1,68 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/create_interaction_choice_set_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+CreateInteractionChoiceSetResponse::CreateInteractionChoiceSetResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+CreateInteractionChoiceSetResponse::~CreateInteractionChoiceSetResponse() {
+}
+
+void CreateInteractionChoiceSetResponse::Run() {
+ LOG4CXX_INFO(logger_, "CreateInteractionChoiceSetResponse::Run");
+
+ // check if response false
+ if (true == (*message_)[strings::msg_params].keyExists(strings::success)) {
+ if ((*message_)[strings::msg_params][strings::success].asBool() == false) {
+ LOG4CXX_ERROR(logger_, "Success = false");
+ SendResponse(false);
+ return;
+ }
+ }
+
+ SendResponse(true);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_request.cc
new file mode 100644
index 000000000..3f5e39641
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_request.cc
@@ -0,0 +1,180 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/delete_command_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+DeleteCommandRequest::DeleteCommandRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message),
+ is_ui_send_(false),
+ is_vr_send_(false),
+ is_ui_received_(false),
+ is_vr_received_(false),
+ ui_result_(hmi_apis::Common_Result::INVALID_ENUM),
+ vr_result_(hmi_apis::Common_Result::INVALID_ENUM) {
+}
+
+DeleteCommandRequest::~DeleteCommandRequest() {
+}
+
+void DeleteCommandRequest::Run() {
+ LOG4CXX_INFO(logger_, "DeleteCommandRequest::Run");
+
+ ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!application) {
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ return;
+ }
+
+ smart_objects::SmartObject* command = application->FindCommand(
+ (*message_)[strings::msg_params][strings::cmd_id].asInt());
+
+ if (!command) {
+ SendResponse(false, mobile_apis::Result::INVALID_ID);
+ LOG4CXX_ERROR(logger_, "Invalid ID");
+ return;
+ }
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[strings::cmd_id] =
+ (*message_)[strings::msg_params][strings::cmd_id];
+ msg_params[strings::app_id] = application->app_id();
+
+ // we should specify amount of required responses in the 1st request
+ uint32_t chaining_counter = 0;
+ if ((*command).keyExists(strings::menu_params)) {
+ ++chaining_counter;
+ }
+
+ if ((*command).keyExists(strings::vr_commands)) {
+ ++chaining_counter;
+ }
+
+ if ((*command).keyExists(strings::menu_params)) {
+ is_ui_send_ = true;
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_DeleteCommand, &msg_params, true);
+ }
+ // check vr params
+ if ((*command).keyExists(strings::vr_commands)) {
+ is_vr_send_ = true;
+
+ SendHMIRequest(hmi_apis::FunctionID::VR_DeleteCommand, &msg_params, true);
+ }
+}
+
+void DeleteCommandRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "DeleteCommandRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_DeleteCommand: {
+ LOG4CXX_INFO(logger_, "Received UI_DeleteCommand event");
+ is_ui_received_ = true;
+ ui_result_ = static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ break;
+ }
+ case hmi_apis::FunctionID::VR_DeleteCommand: {
+ LOG4CXX_INFO(logger_, "Received VR_DeleteCommand event");
+ is_vr_received_ = true;
+ vr_result_ = static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_,"Received unknown event" << event.id());
+ return;
+ }
+ }
+
+ if (!IsPendingResponseExist()) {
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(connection_key());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+
+ smart_objects::SmartObject* command = application->FindCommand(
+ (*message_)[strings::msg_params][strings::cmd_id].asInt());
+
+ if (command) {
+ mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM;
+
+ bool result = ((hmi_apis::Common_Result::SUCCESS == ui_result_) &&
+ (hmi_apis::Common_Result::SUCCESS == vr_result_)) ||
+ ((hmi_apis::Common_Result::SUCCESS == ui_result_) &&
+ (hmi_apis::Common_Result::INVALID_ENUM == vr_result_)) ||
+ ((hmi_apis::Common_Result::INVALID_ENUM == ui_result_) &&
+ (hmi_apis::Common_Result::SUCCESS == vr_result_));
+
+ if (result) {
+ application->RemoveCommand(
+ (*message_)[strings::msg_params][strings::cmd_id].asInt());
+ }
+
+ if (!result && (hmi_apis::Common_Result::REJECTED == ui_result_)) {
+ result_code = static_cast<mobile_apis::Result::eType>(vr_result_);
+ } else {
+ result_code = static_cast<mobile_apis::Result::eType>(
+ std::max(ui_result_, vr_result_));
+ }
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ }
+ }
+}
+
+bool DeleteCommandRequest::IsPendingResponseExist() {
+ return is_ui_send_ != is_ui_received_ || is_vr_send_ != is_vr_received_;
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_response.cc
new file mode 100644
index 000000000..812e58743
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_command_response.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/delete_command_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+DeleteCommandResponse::DeleteCommandResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+DeleteCommandResponse::~DeleteCommandResponse() {
+}
+
+void DeleteCommandResponse::Run() {
+ LOG4CXX_INFO(logger_, "DeleteCommandResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_request.cc
new file mode 100644
index 000000000..9fc89b25d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_request.cc
@@ -0,0 +1,96 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/delete_file_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "config_profile/profile.h"
+#include "utils/file_system.h"
+
+namespace application_manager {
+
+namespace commands {
+
+DeleteFileRequest::DeleteFileRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+DeleteFileRequest::~DeleteFileRequest() {
+}
+
+void DeleteFileRequest::Run() {
+ LOG4CXX_INFO(logger_, "DeleteFileRequest::Run");
+
+ ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!application) {
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ return;
+ }
+
+ if (mobile_api::HMILevel::HMI_NONE == application->hmi_level() &&
+ profile::Profile::instance()->delete_file_in_none() <= application->delete_file_in_none_count()) {
+ // If application is in the HMI_NONE level the quantity of allowed
+ // DeleteFile request is limited by the configuration profile
+ LOG4CXX_ERROR(logger_, "Too many requests from the app with HMILevel HMI_NONE ");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ const std::string& sync_file_name =
+ (*message_)[strings::msg_params][strings::sync_file_name].asString();
+
+ std::string relative_file_path = application->name();
+ relative_file_path += "/";
+ relative_file_path += sync_file_name;
+
+ std::string full_file_path = file_system::FullPath(relative_file_path);
+
+ if (file_system::FileExists(full_file_path)) {
+ if (file_system::DeleteFile(full_file_path)) {
+ application->DeleteFile(sync_file_name);
+ application->increment_delete_file_in_none_count();
+ SendResponse(true, mobile_apis::Result::SUCCESS);
+ } else {
+ SendResponse(false, mobile_apis::Result::GENERIC_ERROR);
+ }
+ } else {
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_response.cc
new file mode 100644
index 000000000..3892114f1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_file_response.cc
@@ -0,0 +1,67 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/delete_file_response.h"
+#include "utils/file_system.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+DeleteFileResponse::DeleteFileResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+DeleteFileResponse::~DeleteFileResponse() {
+}
+
+void DeleteFileResponse::Run() {
+ LOG4CXX_INFO(logger_, "DeleteFileResponse::Run");
+ uint32_t app_id = (*message_)[strings::params][strings::connection_key]
+ .asUInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Application not registered");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+ (*message_)[strings::msg_params][strings::space_available] =
+ static_cast<int32_t>(file_system::GetAvailableSpaceForApp(app->name()));
+ SendResponse((*message_)[strings::msg_params][strings::success].asBool());
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc
new file mode 100644
index 000000000..c98f16c97
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_request.cc
@@ -0,0 +1,115 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/delete_interaction_choice_set_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+DeleteInteractionChoiceSetRequest::DeleteInteractionChoiceSetRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+DeleteInteractionChoiceSetRequest::~DeleteInteractionChoiceSetRequest() {
+}
+
+void DeleteInteractionChoiceSetRequest::Run() {
+ LOG4CXX_INFO(logger_, "DeleteInteractionChoiceSetRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "No application associated with session key");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ const int32_t choise_set_id =
+ (*message_)[strings::msg_params]
+ [strings::interaction_choice_set_id].asInt();
+
+ if (!app->FindChoiceSet(choise_set_id)) {
+ LOG4CXX_ERROR_EXT(logger_, "INVALID_ID");
+ SendResponse(false, mobile_apis::Result::INVALID_ID);
+ return;
+ }
+
+ if (ChoiceSetInUse(app)) {
+ LOG4CXX_ERROR_EXT(logger_, "Choice set currently in use");
+ SendResponse(false, mobile_apis::Result::IN_USE);
+ return;
+ }
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[strings::interaction_choice_set_id] = choise_set_id;
+ msg_params[strings::app_id] = app->app_id();
+
+ app->RemoveChoiceSet(choise_set_id);
+
+ SendResponse(true, mobile_apis::Result::SUCCESS);
+ /*CreateHMIRequest(hmi_apis::FunctionID::UI_DeleteInteractionChoiceSet,
+ msg_params, true);*/
+}
+
+bool DeleteInteractionChoiceSetRequest::ChoiceSetInUse(ApplicationConstSharedPtr app) {
+ if (app->is_perform_interaction_active()) {
+ // retrieve stored choice sets for perform interaction
+ const PerformChoiceSetMap& choice_set_map = app
+ ->performinteraction_choice_set_map();
+
+ PerformChoiceSetMap::const_iterator it = choice_set_map.begin();
+ for (; choice_set_map.end() != it; ++it) {
+ if (it->first
+ == (*message_)[strings::msg_params]
+ [strings::interaction_choice_set_id].asInt()) {
+ LOG4CXX_ERROR_EXT(logger_,
+ "DeleteInteractionChoiceSetRequest::ChoiceSetInUse");
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc
new file mode 100644
index 000000000..d260add7c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_interaction_choice_set_response.cc
@@ -0,0 +1,77 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/delete_interaction_choice_set_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+DeleteInteractionChoiceSetResponse::DeleteInteractionChoiceSetResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+DeleteInteractionChoiceSetResponse::~DeleteInteractionChoiceSetResponse() {
+}
+
+void DeleteInteractionChoiceSetResponse::Run() {
+ LOG4CXX_INFO(logger_, "DeleteInteractionChoiceSetResponse::Run");
+
+ // check if response false
+ if (true == (*message_)[strings::msg_params].keyExists(strings::success)) {
+ if ((*message_)[strings::msg_params][strings::success].asBool() == false) {
+ LOG4CXX_ERROR(logger_, "Success = false");
+ SendResponse(false);
+ return;
+ }
+ }
+
+ const int32_t code =
+ (*message_)[strings::msg_params][strings::result_code].asInt();
+
+ if (hmi_apis::Common_Result::SUCCESS == code) {
+ SendResponse(true);
+ } else {
+ // TODO(DK): Some logic
+ SendResponse(false);
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc
new file mode 100644
index 000000000..bcd55a38f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_request.cc
@@ -0,0 +1,178 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/delete_sub_menu_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+DeleteSubMenuRequest::DeleteSubMenuRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+DeleteSubMenuRequest::~DeleteSubMenuRequest() {
+}
+
+void DeleteSubMenuRequest::Run() {
+ LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!app) {
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ return;
+ }
+
+ if (!app->FindSubMenu(
+ (*message_)[strings::msg_params][strings::menu_id].asInt())) {
+ SendResponse(false, mobile_apis::Result::INVALID_ID);
+ LOG4CXX_ERROR(logger_, "Invalid ID");
+ return;
+ }
+
+ // delete sub menu items from SDL and HMI
+ DeleteSubMenuVRCommands(app);
+ DeleteSubMenuUICommands(app);
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[strings::menu_id] =
+ (*message_)[strings::msg_params][strings::menu_id];
+ msg_params[strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_DeleteSubMenu, &msg_params, true);
+}
+
+void DeleteSubMenuRequest::DeleteSubMenuVRCommands(ApplicationConstSharedPtr app) {
+ LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::DeleteSubMenuVRCommands");
+
+ const CommandsMap& commands = app->commands_map();
+ CommandsMap::const_iterator it = commands.begin();
+
+ for (; commands.end() != it; ++it) {
+
+ if (!(*it->second).keyExists(strings::vr_commands)) {
+ continue;
+ }
+
+ if ((*message_)[strings::msg_params][strings::menu_id].asInt()
+ == (*it->second)[strings::menu_params]
+ [hmi_request::parent_id].asInt()) {
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::cmd_id] = (*it->second)[strings::cmd_id].asInt();
+ msg_params[strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::VR_DeleteCommand, &msg_params);
+ }
+ }
+}
+
+void DeleteSubMenuRequest::DeleteSubMenuUICommands(ApplicationSharedPtr const app) {
+ LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::DeleteSubMenuUICommands");
+
+ const CommandsMap& commands = app->commands_map();
+ CommandsMap::const_iterator it = commands.begin();
+
+ while (commands.end() != it) {
+
+ if (!(*it->second).keyExists(strings::menu_params)) {
+ continue;
+ }
+
+ if ((*message_)[strings::msg_params][strings::menu_id].asInt()
+ == (*it->second)[strings::menu_params]
+ [hmi_request::parent_id].asInt()) {
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::app_id] = app->app_id();
+ msg_params[strings::cmd_id] = (*it->second)[strings::cmd_id].asInt();
+
+ app->RemoveCommand((*it->second)[strings::cmd_id].asInt());
+
+ it = commands.begin(); // Can not relay on
+ // iterators after erase was called
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_DeleteCommand, &msg_params);
+ } else {
+ ++it;
+ }
+ }
+}
+
+void DeleteSubMenuRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "DeleteSubMenuRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_DeleteSubMenu: {
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(connection_key());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+
+ if (result) {
+ application->RemoveSubMenu(
+ (*message_)[strings::msg_params][strings::menu_id].asInt());
+ }
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc
new file mode 100644
index 000000000..0a25a1161
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/delete_sub_menu_response.cc
@@ -0,0 +1,57 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/delete_sub_menu_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+DeleteSubMenuResponse::DeleteSubMenuResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+DeleteSubMenuResponse::~DeleteSubMenuResponse() {
+}
+
+void DeleteSubMenuResponse::Run() {
+ LOG4CXX_INFO(logger_, "DeleteSubMenuResponse::Run");
+
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc
new file mode 100644
index 000000000..162d1cdc3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_request.cc
@@ -0,0 +1,81 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/diagnostic_message_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+DiagnosticMessageRequest::DiagnosticMessageRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+DiagnosticMessageRequest::~DiagnosticMessageRequest() {
+}
+
+void DiagnosticMessageRequest::Run() {
+ LOG4CXX_INFO(logger_, "DiagnosticMessageRequest::Run");
+
+ SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_DiagnosticMessage,
+ &(*message_), true);
+}
+
+void DiagnosticMessageRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "DiagnosticMessageRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::VehicleInfo_DiagnosticMessage: {
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc
new file mode 100644
index 000000000..2a8b234ff
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/diagnostic_message_response.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/diagnostic_message_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+DiagnosticMessageResponse::DiagnosticMessageResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+DiagnosticMessageResponse::~DiagnosticMessageResponse() {
+}
+
+void DiagnosticMessageResponse::Run() {
+ LOG4CXX_INFO(logger_, "DiagnosticMessageResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/dial_number_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/dial_number_request.cc
new file mode 100644
index 000000000..140f43128
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/dial_number_request.cc
@@ -0,0 +1,57 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/dial_number_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+DialNumberRequest::DialNumberRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+DialNumberRequest::~DialNumberRequest() {
+}
+
+void DialNumberRequest::Run() {
+ LOG4CXX_INFO(logger_, "DialNumberRequest::Run");
+
+ SendResponse(false, mobile_apis::Result::UNSUPPORTED_REQUEST);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_request.cc
new file mode 100644
index 000000000..53dc83c25
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_request.cc
@@ -0,0 +1,113 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/encoded_sync_pdata_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/file_system.h"
+#include "encryption/Base64.h"
+
+namespace application_manager {
+
+namespace commands {
+
+const std::string EncodedSyncPDataRequest::TEMPORARY_HARDCODED_FILENAME =
+ "policy_sync_data.dat";
+const std::string EncodedSyncPDataRequest::TEMPORARY_HARDCODED_FOLDERNAME =
+ "policies";
+
+EncodedSyncPDataRequest::EncodedSyncPDataRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+EncodedSyncPDataRequest::~EncodedSyncPDataRequest() {
+}
+
+void EncodedSyncPDataRequest::Run() {
+ LOG4CXX_INFO(logger_, "EncodedSyncPDataRequest::Run");
+
+ ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(
+ connection_key());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ const std::string& sync_file_name = TEMPORARY_HARDCODED_FILENAME;
+
+ size_t data_array_size = (*message_)[strings::msg_params][strings::data].
+ length();
+
+ std::string encoded_string_pdata;
+ for (size_t i = 0; i < data_array_size; ++i) {
+ encoded_string_pdata += (*message_)[strings::msg_params][strings::data][i]
+ .asString();
+ }
+
+ LOG4CXX_INFO(logger_, "encoded_string_pdata = " << encoded_string_pdata);
+
+ const std::string string_pdata = base64_decode(encoded_string_pdata);
+
+ LOG4CXX_INFO(logger_, "string_pdata = " << string_pdata);
+
+ const std::vector<uint8_t> file_data(string_pdata.begin(),
+ string_pdata.end());
+
+ std::string relative_file_path = file_system::CreateDirectory(
+ TEMPORARY_HARDCODED_FOLDERNAME);
+ relative_file_path += "/";
+ relative_file_path += sync_file_name;
+
+ mobile_apis::Result::eType save_result =
+ ApplicationManagerImpl::instance()->SaveBinary(
+ application->name(),
+ file_data,
+ relative_file_path);
+
+ switch(save_result) {
+ case mobile_apis::Result::SUCCESS:
+ SendResponse(true, save_result);
+ break;
+ default:
+ SendResponse(false, save_result);
+ break;
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_response.cc
new file mode 100644
index 000000000..0c738bf3c
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/encoded_sync_pdata_response.cc
@@ -0,0 +1,65 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/encoded_sync_pdata_response.h"
+
+namespace application_manager {
+
+namespace commands {
+
+EncodedSyncPDataResponse::EncodedSyncPDataResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+EncodedSyncPDataResponse::~EncodedSyncPDataResponse() {
+}
+
+void EncodedSyncPDataResponse::Run() {
+ LOG4CXX_INFO(logger_, "EncodedSyncPDataResponse::Run");
+
+ // check if response false
+ if (true == (*message_)[strings::msg_params].keyExists(strings::success)) {
+ if ((*message_)[strings::msg_params][strings::success].asBool() == false) {
+ LOG4CXX_ERROR(logger_, "Success = false");
+ SendResponse(false);
+ return;
+ }
+ }
+
+ SendResponse(true);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc
new file mode 100644
index 000000000..71eec0e77
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_request.cc
@@ -0,0 +1,88 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/end_audio_pass_thru_request.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+EndAudioPassThruRequest::EndAudioPassThruRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+EndAudioPassThruRequest::~EndAudioPassThruRequest() {
+}
+
+void EndAudioPassThruRequest::Run() {
+ LOG4CXX_INFO(logger_, "EndAudioPassThruRequest::Run");
+ bool ended_successfully = ApplicationManagerImpl::instance()->end_audio_pass_thru();
+
+ if (ended_successfully) {
+ SendHMIRequest(hmi_apis::FunctionID::UI_EndAudioPassThru, NULL, true);
+ int32_t session_key =
+ (*message_)[strings::params][strings::connection_key].asInt();
+ ApplicationManagerImpl::instance()->StopAudioPassThru(session_key);
+ } else {
+ SendResponse(false, mobile_apis::Result::REJECTED,
+ "No PerformAudioPassThru is now active");
+ }
+}
+
+void EndAudioPassThruRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "EndAudioPassThruRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_EndAudioPassThru: {
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc
new file mode 100644
index 000000000..128d921f9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/end_audio_pass_thru_response.cc
@@ -0,0 +1,57 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/end_audio_pass_thru_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+EndAudioPassThruResponse::EndAudioPassThruResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+EndAudioPassThruResponse::~EndAudioPassThruResponse() {
+}
+
+void EndAudioPassThruResponse::Run() {
+ LOG4CXX_INFO(logger_, "EndAudioPassThruResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/generic_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/generic_response.cc
new file mode 100644
index 000000000..69c841b2f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/generic_response.cc
@@ -0,0 +1,65 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/generic_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+void GenericResponse::Run() {
+ /*NsSmartDeviceLink::NsSmartObjects::SmartObject response;
+
+ response[strings::params][strings::correlation_id] =
+ (*message_)[strings::params][strings::correlation_id];
+ response[strings::params][strings::protocol_version] =
+ (*message_)[strings::params][strings::protocol_version];
+ response[strings::params][strings::connection_key] =
+ (*message_)[strings::params][strings::connection_key];
+
+ response[strings::msg_params][strings::success] = false;
+ */
+
+ (*message_)[strings::params][strings::message_type] = MessageType::kResponse;
+ (*message_)[strings::msg_params][strings::success] = false;
+ (*message_)[strings::msg_params][strings::result_code] =
+ mobile_apis::Result::INVALID_DATA;
+
+ SendResponse(false);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_request.cc
new file mode 100644
index 000000000..f0c91db64
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_request.cc
@@ -0,0 +1,104 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/get_dtcs_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+GetDTCsRequest::GetDTCsRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+GetDTCsRequest::~GetDTCsRequest() {
+}
+
+void GetDTCsRequest::Run() {
+ LOG4CXX_INFO(logger_, "GetDTCsRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (mobile_api::HMILevel::HMI_NONE == app->hmi_level()) {
+ LOG4CXX_ERROR(logger_, "App has not been activated");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[strings::ecu_name] =
+ (*message_)[strings::msg_params][strings::ecu_name];
+ msg_params[strings::dtc_mask] =
+ (*message_)[strings::msg_params][strings::dtc_mask];
+ msg_params[strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_GetDTCs, &msg_params, true);
+}
+
+void GetDTCsRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "GetDTCsRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::VehicleInfo_GetDTCs: {
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_response.cc
new file mode 100644
index 000000000..2ed7a9295
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/get_dtcs_response.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/get_dtcs_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+GetDTCsResponse::GetDTCsResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+GetDTCsResponse::~GetDTCsResponse() {
+}
+
+void GetDTCsResponse::Run() {
+ LOG4CXX_INFO(logger_, "GetDTCsResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc
new file mode 100644
index 000000000..7292dfa99
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_request.cc
@@ -0,0 +1,294 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string>
+#include "application_manager/commands/mobile/get_vehicle_data_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace str = strings;
+
+#ifdef WEB_HMI
+GetVehicleDataRequest::GetVehicleDataRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+GetVehicleDataRequest::~GetVehicleDataRequest() {
+}
+
+void GetVehicleDataRequest::Run() {
+ LOG4CXX_INFO(logger_, "GetVehicleDataRequest::Run");
+
+ int32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (mobile_api::HMILevel::HMI_NONE == app->hmi_level()) {
+ LOG4CXX_ERROR(logger_, "app in HMI level HMI_NONE");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ const VehicleData& vehicle_data = MessageHelper::vehicle_data();
+ VehicleData::const_iterator it = vehicle_data.begin();
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::app_id] = app->app_id();
+ const int32_t min_length_msg_params = 1;
+ for (; vehicle_data.end() != it; ++it) {
+ if (true == (*message_)[str::msg_params].keyExists(it->first)
+ && true == (*message_)[str::msg_params][it->first].asBool()) {
+ msg_params[it->first] = (*message_)[strings::msg_params][it->first];
+ }
+ }
+ if (msg_params.length() > min_length_msg_params) {
+ SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_GetVehicleData,
+ &msg_params, true);
+ return;
+ }
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+}
+
+void GetVehicleDataRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "GetVehicleDataRequest::on_event");
+ smart_objects::SmartObject message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::VehicleInfo_GetVehicleData: {
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ bool result = false;
+ if (mobile_apis::Result::SUCCESS == result_code ||
+ (hmi_apis::Common_Result::DATA_NOT_AVAILABLE ==
+ static_cast<hmi_apis::Common_Result::eType>(result_code)
+ && message[strings::msg_params].length() > 1)) {
+ result = true;
+ }
+ const char *info = NULL;
+ std::string error_message;
+ if (true ==
+ message[strings::msg_params].keyExists(hmi_response::method)) {
+ message[strings::msg_params].erase(hmi_response::method);
+ }
+ if (true == message[strings::params].keyExists(strings::error_msg)) {
+ error_message = message[strings::params][strings::error_msg].asString();
+ info = error_message.c_str();
+ }
+ SendResponse(result, result_code, info, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+#endif // #ifdef WEB_HMI
+#ifdef QT_HMI
+GetVehicleDataRequest::GetVehicleDataRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+GetVehicleDataRequest::~GetVehicleDataRequest() {
+}
+
+void GetVehicleDataRequest::Run() {
+ LOG4CXX_INFO(logger_, "GetVehicleDataRequest::Run");
+
+ int32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (mobile_api::HMILevel::HMI_NONE == app->hmi_level()) {
+ LOG4CXX_ERROR(logger_, "app in HMI level HMI_NONE");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ const VehicleData& vehicle_data = MessageHelper::vehicle_data();
+ VehicleData::const_iterator it = vehicle_data.begin();
+
+ for (; vehicle_data.end() != it; ++it) {
+ if (true == (*message_)[str::msg_params].keyExists(it->first)
+ && true == (*message_)[str::msg_params][it->first].asBool()) {
+ SendRequestsToHmi(app->app_id());
+ return;
+ }
+ }
+
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+}
+
+namespace {
+ struct Subrequest {
+ hmi_apis::FunctionID::eType func_id;
+ const char* str;
+ };
+ Subrequest subrequests[] = {
+ { hmi_apis::FunctionID::VehicleInfo_GetGpsData, str::gps},
+ { hmi_apis::FunctionID::VehicleInfo_GetSpeed, str::speed},
+ { hmi_apis::FunctionID::VehicleInfo_GetRpm, str::rpm},
+ { hmi_apis::FunctionID::VehicleInfo_GetFuelLevel, str::fuel_level},
+ { hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState, str::fuel_level_state},
+ { hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption, str::instant_fuel_consumption},
+ { hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature, str::external_temp},
+ { hmi_apis::FunctionID::VehicleInfo_GetVin, str::vin},
+ { hmi_apis::FunctionID::VehicleInfo_GetPrndl, str::prndl},
+ { hmi_apis::FunctionID::VehicleInfo_GetTirePressure, str::tire_pressure},
+ { hmi_apis::FunctionID::VehicleInfo_GetOdometer, str::odometer},
+ { hmi_apis::FunctionID::VehicleInfo_GetBeltStatus, str::belt_status},
+ { hmi_apis::FunctionID::VehicleInfo_GetBodyInformation, str::body_information},
+ { hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus, str::device_status},
+ { hmi_apis::FunctionID::VehicleInfo_GetDriverBraking, str::driver_braking},
+ { hmi_apis::FunctionID::VehicleInfo_GetWiperStatus, str::wiper_status},
+ { hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus, str::head_lamp_status},
+ { hmi_apis::FunctionID::VehicleInfo_GetEngineTorque, str::engine_torque},
+ { hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition, str::acc_pedal_pos},
+ { hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle, str::steering_wheel_angle},
+ { hmi_apis::FunctionID::VehicleInfo_GetECallInfo, str::e_call_info},
+ { hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus, str::airbag_status},
+ { hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent, str::emergency_event},
+ { hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus, str::cluster_mode_status},
+ { hmi_apis::FunctionID::VehicleInfo_GetMyKey, str::my_key},
+ };
+}
+
+void GetVehicleDataRequest::SendRequestsToHmi(const int32_t app_id) {
+ smart_objects::SmartObject msg_params(smart_objects::SmartType_Map);
+ msg_params[strings::app_id] = app_id;
+
+ for (int32_t i = 0; i < sizeof(subrequests) / sizeof(subrequests[0]); ++i) {
+ const Subrequest& sr = subrequests[i];
+ if (true == (*message_)[str::msg_params].keyExists(sr.str)
+ && true == (*message_)[str::msg_params][sr.str].asBool()) {
+ HmiRequest hmi_request;
+ hmi_request.str = sr.str;
+ hmi_request.func_id = sr.func_id;
+ hmi_request.complete = false;
+ hmi_requests_.push_back(hmi_request);
+ }
+ }
+
+ LOG4CXX_INFO(logger_,
+ hmi_requests_.size() << " requests are going to be sent to HMI");
+
+ for (HmiRequests::const_iterator it = hmi_requests_.begin();
+ it != hmi_requests_.end(); ++it) {
+ SendHMIRequest(it->func_id, &msg_params, true);
+ }
+}
+
+void GetVehicleDataRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "GetVehicleDataRequest::on_event " << event.id());
+
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ for (HmiRequests::iterator it = hmi_requests_.begin();
+ it != hmi_requests_.end(); ++it) {
+ HmiRequest & hmi_request = *it;
+ if (hmi_request.func_id == event.id()) {
+ hmi_request.status =
+ static_cast<hmi_apis::Common_Result::eType>(message[strings::params][hmi_response::code]
+ .asInt());
+ if (hmi_apis::Common_Result::SUCCESS == hmi_request.status)
+ hmi_request.value = message[str::msg_params][hmi_request.str];
+ hmi_request.complete = true;
+ break;
+ }
+ }
+
+ bool all_complete = true;
+ bool any_arg_success = false;
+ mobile_api::Result::eType status = mobile_api::Result::eType::SUCCESS;
+ for (HmiRequests::const_iterator it = hmi_requests_.begin();
+ it != hmi_requests_.end(); ++it) {
+ if (!it->complete) {
+ all_complete = false;
+ break;
+ }
+ if (hmi_apis::Common_Result::SUCCESS != it->status) {
+ if (mobile_api::Result::SUCCESS == status) {
+ status = static_cast<mobile_apis::Result::eType>(it->status);
+ } else if (status
+ != static_cast<mobile_apis::Result::eType>(it->status)) {
+ status = mobile_api::Result::eType::GENERIC_ERROR;
+ }
+ LOG4CXX_TRACE(logger_, "Status from HMI: " << it->status << ", so response status become " << status);
+ } else {
+ any_arg_success = true;
+ }
+ }
+
+ if (all_complete) {
+ smart_objects::SmartObject response_params(smart_objects::SmartType_Map);
+ if (any_arg_success) {
+ for (HmiRequests::const_iterator it = hmi_requests_.begin();
+ it != hmi_requests_.end(); ++it) {
+ response_params[it->str] = it->value;
+ }
+ }
+ LOG4CXX_INFO(
+ logger_, "All HMI requests are complete");
+ const char *info = NULL;
+ std::string error_message;
+ if (true == message[strings::params].keyExists(strings::error_msg)) {
+ error_message = message[strings::params][strings::error_msg].asString();
+ info = error_message.c_str();
+ }
+ SendResponse( any_arg_success, status, info, &response_params);
+ }
+}
+#endif // #ifdef QT_HMI
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc
new file mode 100644
index 000000000..d9087fdc6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/get_vehicle_data_response.cc
@@ -0,0 +1,57 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/get_vehicle_data_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+GetVehicleDataResponse::GetVehicleDataResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+GetVehicleDataResponse::~GetVehicleDataResponse() {
+}
+
+void GetVehicleDataResponse::Run() {
+ LOG4CXX_INFO(logger_, "GetVehicleDataResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_request.cc
new file mode 100644
index 000000000..530fd1c92
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_request.cc
@@ -0,0 +1,90 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/list_files_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "config_profile/profile.h"
+#include "application_manager/mobile_command_factory.h"
+#include "utils/file_system.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ListFilesRequest::ListFilesRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+ListFilesRequest::~ListFilesRequest() {
+}
+
+void ListFilesRequest::Run() {
+ LOG4CXX_INFO(logger_, "ListFilesRequest::Run");
+
+ ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!application) {
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ return;
+ }
+
+ if (mobile_api::HMILevel::HMI_NONE == application->hmi_level() &&
+ profile::Profile::instance()->list_files_in_none() <= application->list_files_in_none_count()) {
+ // If application is in the HMI_NONE level the quantity of allowed
+ // DeleteFile request is limited by the configuration profile
+ LOG4CXX_ERROR(logger_, "Too many requests from the app with HMILevel HMI_NONE ");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ application->increment_list_files_in_none_count();
+
+ (*message_)[strings::msg_params][strings::space_available] =
+ static_cast<int32_t>(file_system::GetAvailableSpaceForApp(application->name()));
+ int32_t i = 0;
+ const AppFilesMap& app_files = application->getAppFiles();
+ for (AppFilesMap::const_iterator it = app_files.begin();
+ it != app_files.end(); ++it) {
+ (*message_)[strings::msg_params][strings::filenames][i++] = it->second.file_name;
+ }
+ (*message_)[strings::params][strings::message_type] =
+ application_manager::MessageType::kResponse;
+ SendResponse(true, mobile_apis::Result::SUCCESS, NULL, &(*message_)[strings::msg_params]);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_response.cc
new file mode 100644
index 000000000..52e8d26e9
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/list_files_response.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/list_files_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ListFilesResponse::ListFilesResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+ListFilesResponse::~ListFilesResponse() {
+}
+
+void ListFilesResponse::Run() {
+ LOG4CXX_INFO(logger_, "ListFilesResponse::Run");
+ SendResponse(true);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc
new file mode 100644
index 000000000..6063c8cc5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_app_interface_unregistered_notification.cc
@@ -0,0 +1,58 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_app_interface_unregistered_notification.h"
+#include "application_manager/message.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnAppInterfaceUnregisteredNotification::OnAppInterfaceUnregisteredNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnAppInterfaceUnregisteredNotification::~OnAppInterfaceUnregisteredNotification() {
+}
+
+void OnAppInterfaceUnregisteredNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnAppInterfaceUnregisteredNotification::Run");
+
+ SendNotification();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc
new file mode 100644
index 000000000..dd000ca11
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_audio_pass_thru_notification.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_audio_pass_thru_notification.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnAudioPassThruNotification::OnAudioPassThruNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnAudioPassThruNotification::~OnAudioPassThruNotification() {
+}
+
+void OnAudioPassThruNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnAudioPassThruNotification::Run");
+
+ SendNotification();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_event_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_event_notification.cc
new file mode 100644
index 000000000..53fd0cf62
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_event_notification.cc
@@ -0,0 +1,120 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_button_event_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+OnButtonEventNotification::OnButtonEventNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnButtonEventNotification::~OnButtonEventNotification() {
+}
+
+void OnButtonEventNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnButtonEventNotification::Run");
+
+ const uint32_t btn_id =
+ static_cast<uint32_t>(
+ (*message_)[strings::msg_params][hmi_response::button_name].asInt());
+
+ const std::vector<ApplicationSharedPtr>& subscribedApps =
+ ApplicationManagerImpl::instance()->applications_by_button(btn_id);
+
+ std::vector<ApplicationSharedPtr>::const_iterator it = subscribedApps.begin();
+ for (; subscribedApps.end() != it; ++it) {
+ ApplicationSharedPtr subscribed_app = *it;
+ if (!subscribed_app) {
+ LOG4CXX_WARN_EXT(logger_, "Null pointer to subscribed app.");
+ continue;
+ }
+
+ if ((mobile_api::HMILevel::HMI_FULL == subscribed_app->hmi_level())
+ || (mobile_api::HMILevel::HMI_LIMITED == subscribed_app->hmi_level()
+ && static_cast<uint32_t>(mobile_apis::ButtonName::OK) !=
+ btn_id)) {
+ SendButtonEvent(subscribed_app);
+ } else {
+ LOG4CXX_WARN_EXT(logger_, "OnButtonEvent in HMI_BACKGROUND or NONE");
+ continue;
+ }
+ }
+}
+
+void OnButtonEventNotification::SendButtonEvent(ApplicationConstSharedPtr app) {
+ smart_objects::SmartObject* on_btn_event = new smart_objects::SmartObject();
+
+ if (!on_btn_event) {
+ LOG4CXX_ERROR_EXT(logger_, "OnButtonEvent NULL pointer");
+ return;
+ }
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "OnButtonEvent NULL pointer");
+ return;
+ }
+
+ (*on_btn_event)[strings::params][strings::connection_key] = app->app_id();
+
+ (*on_btn_event)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnButtonEventID);
+
+ (*on_btn_event)[strings::msg_params][strings::button_name] =
+ (*message_)[strings::msg_params][hmi_response::button_name];
+ (*on_btn_event)[strings::msg_params][strings::button_event_mode] =
+ (*message_)[strings::msg_params][hmi_response::button_mode];
+
+ if ((*message_)[strings::msg_params].keyExists(
+ hmi_response::custom_button_id)) {
+ (*on_btn_event)[strings::msg_params][strings::custom_button_id] =
+ (*message_)[strings::msg_params][strings::custom_button_id];
+ }
+
+ message_.reset(on_btn_event);
+ SendNotification();
+}
+
+} // namespace mobile
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_press_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_press_notification.cc
new file mode 100644
index 000000000..64844f011
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_button_press_notification.cc
@@ -0,0 +1,120 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_button_press_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+OnButtonPressNotification::OnButtonPressNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnButtonPressNotification::~OnButtonPressNotification() {
+}
+
+void OnButtonPressNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnButtonPressNotification::Run");
+
+ const uint32_t btn_id =
+ static_cast<uint32_t>(
+ (*message_)[strings::msg_params][hmi_response::button_name].asInt());
+
+ const std::vector<ApplicationSharedPtr>& subscribedApps =
+ ApplicationManagerImpl::instance()->applications_by_button(btn_id);
+
+ std::vector<ApplicationSharedPtr>::const_iterator it = subscribedApps.begin();
+ for (; subscribedApps.end() != it; ++it) {
+ ApplicationSharedPtr subscribed_app = *it;
+ if (!subscribed_app) {
+ LOG4CXX_WARN_EXT(logger_, "Null pointer to subscribed app.");
+ continue;
+ }
+
+ if ((mobile_api::HMILevel::HMI_FULL == subscribed_app->hmi_level())
+ || (mobile_api::HMILevel::HMI_LIMITED == subscribed_app->hmi_level()
+ && static_cast<uint32_t>(mobile_apis::ButtonName::OK) !=
+ btn_id)) {
+ SendButtonPress(subscribed_app);
+ } else {
+ LOG4CXX_WARN_EXT(logger_, "OnButtonEvent in HMI_BACKGROUND or NONE");
+ continue;
+ }
+ }
+}
+
+void OnButtonPressNotification::SendButtonPress(ApplicationConstSharedPtr app) {
+ smart_objects::SmartObject* on_btn_press = new smart_objects::SmartObject();
+
+ if (!on_btn_press) {
+ LOG4CXX_ERROR_EXT(logger_, "OnButtonPress NULL pointer");
+ return;
+ }
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "OnButtonPress NULL pointer");
+ return;
+ }
+
+ (*on_btn_press)[strings::params][strings::connection_key] = app->app_id();
+
+ (*on_btn_press)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnButtonPressID);
+
+ (*on_btn_press)[strings::msg_params][strings::button_name] =
+ (*message_)[strings::msg_params][hmi_response::button_name];
+ (*on_btn_press)[strings::msg_params][strings::button_press_mode] =
+ (*message_)[strings::msg_params][hmi_response::button_mode];
+
+ if ((*message_)[strings::msg_params].keyExists(
+ hmi_response::custom_button_id)) {
+ (*on_btn_press)[strings::msg_params][strings::custom_button_id] =
+ (*message_)[strings::msg_params][strings::custom_button_id];
+ }
+
+ message_.reset(on_btn_press);
+ SendNotification();
+}
+
+} // namespace mobile
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_command_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_command_notification.cc
new file mode 100644
index 000000000..34f5d8ed4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_command_notification.cc
@@ -0,0 +1,76 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_command_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnCommandNotification::OnCommandNotification(const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnCommandNotification::~OnCommandNotification() {
+}
+
+void OnCommandNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnCommandNotification::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::msg_params][strings::app_id].asInt());
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "No application associated with session key");
+ return;
+ }
+
+ const uint32_t cmd_id = (*message_)[strings::msg_params][strings::cmd_id]
+ .asUInt();
+
+ if (!app->FindCommand(cmd_id)) {
+ LOG4CXX_ERROR_EXT(logger_,
+ " No applications found for the command " << cmd_id);
+ return;
+ }
+
+ (*message_)[strings::params][strings::connection_key] = app->app_id();
+
+ SendNotification();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc
new file mode 100644
index 000000000..2f836a088
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_driver_distraction_notification.cc
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_driver_distraction_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+OnDriverDistractionNotification::OnDriverDistractionNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnDriverDistractionNotification::~OnDriverDistractionNotification() {
+}
+
+void OnDriverDistractionNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnDriverDistractionNotification::Run");
+
+ const std::set<ApplicationSharedPtr>& applications =
+ ApplicationManagerImpl::instance()->applications();
+
+ std::set<ApplicationSharedPtr>::iterator it = applications.begin();
+ for (; applications.end() != it; ++it) {
+ ApplicationSharedPtr app = *it;
+ if (mobile_apis::HMILevel::eType::HMI_NONE != app->hmi_level()) {
+ (*message_)[strings::params][strings::connection_key] = app->app_id();
+ SendNotification();
+ }
+ }
+}
+
+} // namespace mobile
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_encoded_sync_pdata_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_encoded_sync_pdata_notification.cc
new file mode 100644
index 000000000..f22f9de3b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_encoded_sync_pdata_notification.cc
@@ -0,0 +1,105 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string>
+#include <vector>
+#include "application_manager/commands/mobile/on_encoded_sync_pdata_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/file_system.h"
+#include "encryption/Base64.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnEncodedSyncPDataNotification::OnEncodedSyncPDataNotification(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message),
+ timer_(this, &OnEncodedSyncPDataNotification::onTimer) {
+}
+
+OnEncodedSyncPDataNotification::~OnEncodedSyncPDataNotification() {
+}
+
+void OnEncodedSyncPDataNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnEncodedSyncPDataNotification::Run");
+
+ const std::string fileName =
+ (*message_)[strings::params][hmi_notification::file_name].asString();
+
+ if (!file_system::FileExists(fileName)) {
+ (*message_)[strings::msg_params][strings::success] = false;
+ (*message_)[strings::msg_params][strings::result_code] =
+ static_cast<int32_t>(mobile_apis::Result::FILE_NOT_FOUND);
+
+ SendResponse(false);
+ LOG4CXX_ERROR(logger_, "File not found");
+ return;
+ }
+
+ const char* timeout = mobile_notification::syncp_timeout;
+ if ((*message_)[strings::msg_params].keyExists(timeout)) {
+ ApplicationManagerImpl::instance()->addNotification(this);
+ timer_.start((*message_)[strings::msg_params][timeout].asInt());
+ } else {
+ SendEncodedPData();
+ }
+}
+
+void OnEncodedSyncPDataNotification::onTimer() {
+ LOG4CXX_INFO(logger_, "OnEncodedSyncPDataNotification::onTimer");
+
+ SendEncodedPData();
+}
+
+void OnEncodedSyncPDataNotification::SendEncodedPData() {
+ const std::string fileName =
+ (*message_)[strings::params][hmi_notification::file_name].asString();
+
+ std::vector<uint8_t> pData;
+ file_system::ReadBinaryFile(fileName, pData);
+ const std::string string_pdata = base64_decode(
+ std::string(pData.begin(), pData.end()));
+
+ (*message_)[strings::params][strings::data] = string_pdata;
+
+ SendResponse(true);
+ ApplicationManagerImpl::instance()->removeNotification(this);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc
new file mode 100644
index 000000000..1f30231bc
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_hash_change_notification.cc
@@ -0,0 +1,74 @@
+
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_hash_change_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include <string>
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+OnHashChangeNotification::OnHashChangeNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnHashChangeNotification::~OnHashChangeNotification() {
+}
+
+void OnHashChangeNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnHashChangeNotification::Run");
+
+ (*message_)[strings::params][strings::message_type] =
+ static_cast<int32_t>(application_manager::MessageType::kNotification);
+
+ int32_t app_id;
+ app_id = (*message_)[strings::params][strings::connection_key].asInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+ std::stringstream stream;
+ stream << app->curHash();
+ (*message_)[strings::msg_params][strings::hash_id] = stream.str();
+ SendNotification();
+}
+
+} //namespace mobile
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc
new file mode 100644
index 000000000..4208d6b35
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_hmi_status_notification.cc
@@ -0,0 +1,60 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_hmi_status_notification.h"
+#include "application_manager/message.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnHMIStatusNotification::OnHMIStatusNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnHMIStatusNotification::~OnHMIStatusNotification() {
+}
+
+void OnHMIStatusNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnHMIStatusNotification::Run");
+
+ (*message_)[strings::params][strings::message_type] = static_cast<int32_t> (
+ application_manager::MessageType::kNotification);
+ SendNotification();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc
new file mode 100644
index 000000000..969885ab1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_keyboard_input_notification.cc
@@ -0,0 +1,73 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_keyboard_input_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+OnKeyBoardInputNotification::OnKeyBoardInputNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnKeyBoardInputNotification::~OnKeyBoardInputNotification() {
+}
+
+void OnKeyBoardInputNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnKeyBoardInputNotification::Run");
+
+ const std::vector<ApplicationSharedPtr>& applications =
+ ApplicationManagerImpl::instance()->applications_with_navi();
+
+ std::vector<ApplicationSharedPtr>::const_iterator it = applications.begin();
+ for (; applications.end() != it; ++it) {
+ ApplicationSharedPtr app = *it;
+ if (mobile_apis::HMILevel::eType::HMI_NONE != app->hmi_level()) {
+ (*message_)[strings::params][strings::connection_key] = app->app_id();
+ SendNotification();
+ }
+ }
+}
+
+} // namespace mobile
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_language_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_language_change_notification.cc
new file mode 100644
index 000000000..f550df874
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_language_change_notification.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_language_change_notification.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnLanguageChangeNotification::OnLanguageChangeNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnLanguageChangeNotification::~OnLanguageChangeNotification() {
+}
+
+void OnLanguageChangeNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnLanguageChangeNotification::Run");
+
+ SendNotification();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc
new file mode 100644
index 000000000..37c81085e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_permissions_change_notification.cc
@@ -0,0 +1,61 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_permissions_change_notification.h"
+#include "application_manager/message.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnPermissionsChangeNotification::OnPermissionsChangeNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnPermissionsChangeNotification::~OnPermissionsChangeNotification() {
+}
+
+void OnPermissionsChangeNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnPermissionsChangeNotification::Run");
+
+ (*message_)[strings::params][strings::message_type] =
+ static_cast<int32_t>(application_manager::MessageType::kNotification);
+
+ SendNotification();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_sync_pdata_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_sync_pdata_notification.cc
new file mode 100644
index 000000000..bbfa3e576
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_sync_pdata_notification.cc
@@ -0,0 +1,105 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string>
+#include <vector>
+#include "application_manager/commands/mobile/on_sync_pdata_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/file_system.h"
+#include "encryption/Base64.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnSyncPDataNotification::OnSyncPDataNotification(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message),
+ timer_(this, &OnSyncPDataNotification::onTimer) {
+}
+
+OnSyncPDataNotification::~OnSyncPDataNotification() {
+}
+
+void OnSyncPDataNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnSyncPDataNotification::Run");
+
+ const std::string fileName =
+ (*message_)[strings::params][hmi_notification::file_name].asString();
+
+ if (!file_system::FileExists(fileName)) {
+ (*message_)[strings::msg_params][strings::success] = false;
+ (*message_)[strings::msg_params][strings::result_code] =
+ static_cast<int32_t>(mobile_apis::Result::FILE_NOT_FOUND);
+
+ LOG4CXX_ERROR(logger_, "File not found");
+ SendResponse(false);
+ return;
+ }
+
+ const char* timeout = mobile_notification::syncp_timeout;
+ if ((*message_)[strings::msg_params].keyExists(timeout)) {
+ ApplicationManagerImpl::instance()->addNotification(this);
+ timer_.start((*message_)[strings::msg_params][timeout].asInt());
+ } else {
+ SendPData();
+ }
+}
+
+void OnSyncPDataNotification::onTimer() {
+ LOG4CXX_INFO(logger_, "OnSyncPDataNotification::onTimer");
+
+ SendPData();
+}
+
+void OnSyncPDataNotification::SendPData() {
+ LOG4CXX_INFO(logger_, "OnSyncPDataNotification::SendPData");
+
+ const std::string fileName =
+ (*message_)[strings::params][hmi_notification::file_name].asString();
+
+ std::vector<uint8_t> pData;
+ file_system::ReadBinaryFile(fileName, pData);
+ const std::string string_pdata = std::string(pData.begin(), pData.end());
+ (*message_)[strings::params][strings::data] = string_pdata;
+
+ SendResponse(true);
+ ApplicationManagerImpl::instance()->removeNotification(this);
+}
+
+} // namespace commands
+
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_system_request_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_system_request_notification.cc
new file mode 100644
index 000000000..a40f1c1b1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_system_request_notification.cc
@@ -0,0 +1,60 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_system_request_notification.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+OnSystemRequestNotification::OnSystemRequestNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnSystemRequestNotification::~OnSystemRequestNotification() {
+}
+
+void OnSystemRequestNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnSystemRequestNotification::Run");
+
+ SendNotification();
+}
+
+} //namespace mobile
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc
new file mode 100644
index 000000000..05494c614
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_tbt_client_state_notification.cc
@@ -0,0 +1,72 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_tbt_client_state_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnTBTClientStateNotification::OnTBTClientStateNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnTBTClientStateNotification::~OnTBTClientStateNotification() {
+}
+
+void OnTBTClientStateNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnTBTClientStateNotification::Run");
+
+ (*message_)[strings::params][strings::message_type] =
+ static_cast<int32_t>(application_manager::MessageType::kNotification);
+
+ const std::vector<ApplicationSharedPtr>& applications =
+ ApplicationManagerImpl::instance()->applications_with_navi();
+
+ std::vector<ApplicationSharedPtr>::const_iterator it = applications.begin();
+ for (; applications.end() != it; ++it) {
+ ApplicationSharedPtr app = *it;
+ if (mobile_apis::HMILevel::eType::HMI_NONE != app->hmi_level()) {
+ (*message_)[strings::params][strings::connection_key] = app->app_id();
+ SendNotification();
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc
new file mode 100644
index 000000000..dd2431bb6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_touch_event_notification.cc
@@ -0,0 +1,72 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_touch_event_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace mobile {
+
+OnTouchEventNotification::OnTouchEventNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnTouchEventNotification::~OnTouchEventNotification() {
+}
+
+void OnTouchEventNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnTouchEventNotification::Run");
+
+ const std::vector<ApplicationSharedPtr>& applications =
+ ApplicationManagerImpl::instance()->applications_with_navi();
+
+ std::vector<ApplicationSharedPtr>::const_iterator it = applications.begin();
+ for (; applications.end() != it; ++it) {
+ ApplicationSharedPtr app = *it;
+ if (mobile_apis::HMILevel::eType::HMI_NONE != app->hmi_level()) {
+ (*message_)[strings::params][strings::connection_key] = app->app_id();
+ SendNotification();
+ }
+ }
+}
+
+} // namespace mobile
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc
new file mode 100644
index 000000000..46ed25cb1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/on_vehicle_data_notification.cc
@@ -0,0 +1,88 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/on_vehicle_data_notification.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+OnVehicleDataNotification::OnVehicleDataNotification(
+ const MessageSharedPtr& message)
+ : CommandNotificationImpl(message) {
+}
+
+OnVehicleDataNotification::~OnVehicleDataNotification() {
+}
+
+void OnVehicleDataNotification::Run() {
+ LOG4CXX_INFO(logger_, "OnVehicleDataNotification::Run");
+
+ const VehicleData& vehicle_data = MessageHelper::vehicle_data();
+ VehicleData::const_iterator it = vehicle_data.begin();
+
+ for (; vehicle_data.end() != it; ++it) {
+ if (true == (*message_)[strings::msg_params].keyExists(it->first)) {
+ const std::vector<ApplicationSharedPtr>& applications =
+ ApplicationManagerImpl::instance()->applications_by_ivi((static_cast<uint32_t>(it->second)));
+
+ std::vector<ApplicationSharedPtr>::const_iterator it = applications.begin();
+ for (; applications.end() != it; ++it) {
+ ApplicationSharedPtr app = *it;
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "NULL pointer");
+ continue;
+ }
+
+ LOG4CXX_INFO(
+ logger_,
+ "Send OnVehicleData PRNDL notification to " << app->name()
+ << " application id " << app->app_id());
+
+ (*message_)[strings::params][strings::connection_key] = app->app_id();
+
+ SendNotification();
+ }
+
+ return;
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc
new file mode 100644
index 000000000..07ce5cf15
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_request.cc
@@ -0,0 +1,193 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/perform_audio_pass_thru_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace str = strings;
+
+PerformAudioPassThruRequest::PerformAudioPassThruRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+PerformAudioPassThruRequest::~PerformAudioPassThruRequest() {
+}
+
+bool PerformAudioPassThruRequest::Init() {
+ default_timeout_ += (*message_)[str::msg_params][str::max_duration].asInt();
+ return true;
+}
+
+void PerformAudioPassThruRequest::Run() {
+ LOG4CXX_INFO(logger_, "PerformAudioPassThruRequest::Run");
+
+ if (ApplicationManagerImpl::instance()->begin_audio_pass_thru() == false) {
+ // Audio pass thru already active
+ LOG4CXX_ERROR_EXT(logger_, "REJECTED");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ uint32_t app_id = (*message_)[strings::params][strings::connection_key]
+ .asUInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "APPLICATION_NOT_REGISTERED");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (mobile_api::HMILevel::HMI_NONE == app->hmi_level()) {
+ LOG4CXX_ERROR_EXT(logger_, "application isn't activated");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ SendSpeakRequest(app->app_id());
+
+ // create HMI request
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[str::app_id] = app_id;
+
+ msg_params[hmi_request::audio_pass_display_texts] =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+
+ if ((*message_)[str::msg_params].keyExists(str::audio_pass_display_text1)) {
+ msg_params[hmi_request::audio_pass_display_texts]
+ [0][hmi_request::field_name] = static_cast<int32_t>
+ (application_manager::TextFieldName::AUDIO_DISPLAY_TEXT1);
+ msg_params[hmi_request::audio_pass_display_texts]
+ [0][hmi_request::field_text] =
+ (*message_)[str::msg_params][str::audio_pass_display_text1];
+ }
+
+ if ((*message_)[str::msg_params].keyExists(str::audio_pass_display_text2)) {
+ msg_params[hmi_request::audio_pass_display_texts]
+ [1][hmi_request::field_name] = static_cast<int32_t>
+ (application_manager::TextFieldName::AUDIO_DISPLAY_TEXT2);
+ msg_params[hmi_request::audio_pass_display_texts]
+ [1][hmi_request::field_text] =
+ (*message_)[str::msg_params][str::audio_pass_display_text2];
+ }
+
+ // duration
+ msg_params[hmi_request::max_duration] =
+ (*message_)[str::msg_params][str::max_duration];
+
+ msg_params[strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_PerformAudioPassThru,
+ &msg_params, true);
+
+ ApplicationManagerImpl::instance()->StartAudioPassThruThread(
+ (*message_)[str::params][str::connection_key].asInt(),
+ (*message_)[str::params][str::correlation_id].asInt(),
+ (*message_)[str::msg_params][str::max_duration].asInt(),
+ (*message_)[str::msg_params][str::sampling_rate].asInt(),
+ (*message_)[str::msg_params][str::bits_per_sample].asInt(),
+ (*message_)[str::msg_params][str::audio_type].asInt());
+}
+
+void PerformAudioPassThruRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "PerformAudioPassThruRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_PerformAudioPassThru: {
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code ||
+ mobile_apis::Result::RETRY == result_code;
+
+ if (ApplicationManagerImpl::instance()->end_audio_pass_thru()) {
+ int32_t session_key =
+ (*message_)[strings::params][strings::connection_key].asUInt();
+ ApplicationManagerImpl::instance()->StopAudioPassThru(session_key);
+ }
+
+ const char* return_info = NULL;
+
+ if (result) {
+ if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE ==
+ static_cast<hmi_apis::Common_Result::eType>(result_code)) {
+ result_code = mobile_apis::Result::WARNINGS;
+ return_info = std::string("Unsupported phoneme type sent in a prompt").c_str();
+ }
+ }
+
+ SendResponse(result, result_code, return_info, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+void PerformAudioPassThruRequest::SendSpeakRequest(const int32_t app_id) {
+ // crate HMI TTS speak request
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+
+ if ((*message_)[str::msg_params].keyExists(str::initial_prompt) &&
+ (0 < (*message_)[str::msg_params][str::initial_prompt].length())) {
+ for (int32_t i = 0;
+ i < (*message_)[str::msg_params][str::initial_prompt].length();
+ ++i) {
+ msg_params[hmi_request::tts_chunks][i][str::text] =
+ (*message_)[str::msg_params][str::initial_prompt][i][str::text];
+ }
+ // app_id
+ msg_params[strings::app_id] = app_id;
+
+ SendHMIRequest(hmi_apis::FunctionID::TTS_Speak, &msg_params);
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc
new file mode 100644
index 000000000..a10eaac9f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_audio_pass_thru_response.cc
@@ -0,0 +1,58 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/perform_audio_pass_thru_response.h"
+#include "application_manager/application_manager_impl.h"
+
+
+namespace application_manager {
+
+namespace commands {
+
+PerformAudioPassThruResponse::PerformAudioPassThruResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+PerformAudioPassThruResponse::~PerformAudioPassThruResponse() {
+}
+
+void PerformAudioPassThruResponse::Run() {
+ LOG4CXX_INFO(logger_, "PerformAudioPassThruResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc
new file mode 100644
index 000000000..e46161d24
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_request.cc
@@ -0,0 +1,763 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string.h>
+#include <string>
+#include "application_manager/commands/mobile/perform_interaction_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "config_profile/profile.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+#include "utils/file_system.h"
+
+namespace application_manager {
+
+namespace commands {
+
+PerformInteractionRequest::PerformInteractionRequest(
+ const MessageSharedPtr& message)
+: CommandRequestImpl(message),
+ timer_(this, &PerformInteractionRequest::onTimer),
+ tts_perform_interaction_code_(mobile_apis::Result::INVALID_ENUM) {
+
+ subscribe_on_event(hmi_apis::FunctionID::UI_OnResetTimeout);
+ subscribe_on_event(hmi_apis::FunctionID::VR_OnCommand);
+ subscribe_on_event(hmi_apis::FunctionID::Buttons_OnButtonPress);
+ subscribe_on_event(
+ hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered);
+}
+
+PerformInteractionRequest::~PerformInteractionRequest() {
+}
+
+void PerformInteractionRequest::onTimer() {
+ LOG4CXX_INFO(logger_, "PerformInteractionRequest::onTimer");
+}
+
+bool PerformInteractionRequest::Init() {
+
+ /* Timeout in milliseconds.
+ If omitted a standard value of 10000 milliseconds is used.*/
+ if ((*message_)[strings::msg_params].keyExists(strings::timeout)) {
+ default_timeout_ =
+ (*message_)[strings::msg_params][strings::timeout].asUInt();
+ }
+ mobile_apis::InteractionMode::eType mode =
+ static_cast<mobile_apis::InteractionMode::eType>(
+ (*message_)[strings::msg_params][strings::interaction_mode].asInt());
+
+ if (mobile_apis::InteractionMode::BOTH == mode ||
+ mobile_apis::InteractionMode::MANUAL_ONLY == mode) {
+ default_timeout_ *= 2;
+ }
+ return true;
+}
+
+void PerformInteractionRequest::Run() {
+ LOG4CXX_INFO(logger_, "PerformInteractionRequest::Run");
+
+ // timer_.start(2);
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (0 != app->is_perform_interaction_active()) {
+ LOG4CXX_INFO(logger_, "Another perform interaction is running!");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ mobile_apis::Result::eType verification_result =
+ MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app);
+
+ if ((mobile_apis::Result::SUCCESS != verification_result) &&
+ (mobile_apis::Result::UNSUPPORTED_RESOURCE != verification_result)) {
+ LOG4CXX_ERROR_EXT(
+ logger_,
+ "MessageHelper::VerifyImageFiles return " << verification_result);
+ SendResponse(false, verification_result);
+ return;
+ }
+
+ smart_objects::SmartObject& choice_list =
+ (*message_)[strings::msg_params][strings::interaction_choice_set_id_list];
+
+ for (size_t i = 0; i < choice_list.length(); ++i) {
+ if (!app->FindChoiceSet(choice_list[i].asInt())) {
+ LOG4CXX_ERROR(logger_, "Invalid ID");
+ SendResponse(false, mobile_apis::Result::INVALID_ID);
+ return;
+ }
+ }
+
+ uint32_t correlation_id =
+ (*message_)[strings::params][strings::correlation_id].asUInt();
+
+ int32_t mode =
+ (*message_)[strings::msg_params][strings::interaction_mode].asInt();
+
+ app->set_perform_interaction_mode(mode);
+
+ mobile_apis::InteractionMode::eType interaction_mode =
+ static_cast<mobile_apis::InteractionMode::eType>(mode);
+
+ switch (interaction_mode) {
+ case mobile_apis::InteractionMode::BOTH: {
+ LOG4CXX_INFO(logger_, "Interaction Mode: BOTH");
+ if (!CheckChoiceSetVRSynonyms(app)) {
+ return;
+ }
+
+ if (!CheckChoiceSetMenuNames(app)) {
+ return;
+ }
+
+ if (!CheckVrHelpItemPositions(app)) {
+ return;
+ }
+
+ app->set_perform_interaction_active(correlation_id);
+ SendVRAddCommandRequest(app);
+ SendTTSPerformInteractionRequest(app);
+ SendUIPerformInteractionRequest(app);
+ break;
+ }
+ case mobile_apis::InteractionMode::MANUAL_ONLY: {
+ LOG4CXX_INFO(logger_, "Interaction Mode: MANUAL_ONLY");
+ if (!CheckChoiceSetMenuNames(app)) {
+ return;
+ }
+
+ app->set_perform_interaction_active(correlation_id);
+ SendTTSPerformInteractionRequest(app);
+ SendUIPerformInteractionRequest(app);
+ break;
+ }
+ case mobile_apis::InteractionMode::VR_ONLY: {
+ LOG4CXX_INFO(logger_, "Interaction Mode: VR_ONLY");
+ if (!CheckChoiceSetVRSynonyms(app)) {
+ return;
+ }
+
+ if (!CheckVrHelpItemPositions(app)) {
+ return;
+ }
+
+ // TODO(DK): need to implement timeout
+ app->set_perform_interaction_active(correlation_id);
+ SendVRAddCommandRequest(app);
+ SendTTSPerformInteractionRequest(app);
+ SendUIPerformInteractionRequest(app);
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Unknown interaction mode");
+ return;
+ }
+ }
+
+ // TODO(DK): need to implement timeout TTS speak request.
+}
+
+void PerformInteractionRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "PerformInteractionRequest::on_event");
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_OnResetTimeout: {
+ LOG4CXX_INFO(logger_, "Received UI_OnResetTimeout event");
+ ApplicationManagerImpl::instance()->updateRequestTimeout(connection_key(),
+ correlation_id(),
+ default_timeout());
+ break;
+ }
+ case hmi_apis::FunctionID::VR_OnCommand: {
+ LOG4CXX_INFO(logger_, "Received VR_OnCommand event");
+ ProcessVRNotification(event.smart_object());
+ break;
+ }
+ case hmi_apis::FunctionID::UI_PerformInteraction: {
+ LOG4CXX_INFO(logger_, "Received UI_PerformInteraction event");
+ ProcessPerformInteractionResponse(event.smart_object());
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered: {
+ LOG4CXX_INFO(logger_, "Received OnAppUnregistered event");
+ ProcessAppUnregisteredNotification(event.smart_object());
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_PerformInteraction: {
+ LOG4CXX_INFO(logger_, "Received TTS_PerformInteraction");
+ tts_perform_interaction_code_ = static_cast<mobile_apis::Result::eType>(
+ event.smart_object()[strings::params][hmi_response::code].asInt());
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ break;
+ }
+ }
+}
+
+void PerformInteractionRequest::onTimeOut() {
+ LOG4CXX_INFO(logger_, "PerformInteractionRequest::onTimeOut");
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+ if (app) {
+
+ // Unsubscribe from event on UIPerformInteractionResponse to
+ // avoid of double execution of SendVrDeleteCommand()
+ unsubscribe_from_event(hmi_apis::FunctionID::UI_PerformInteraction);
+ SendVrDeleteCommand(app);
+ app->set_perform_interaction_active(0);
+ app->set_perform_interaction_mode(-1);
+ app->DeletePerformInteractionChoiceSetMap();
+ }
+ CommandRequestImpl::onTimeOut();
+}
+
+void PerformInteractionRequest::ProcessVRNotification(
+ const smart_objects::SmartObject& message) {
+ LOG4CXX_INFO(logger_, "PerformInteractionRequest::ProcessVRNotification");
+ const uint32_t app_id = message[strings::msg_params][strings::app_id]
+ .asUInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+ int32_t cmd_id = message[strings::msg_params][strings::cmd_id].asInt();
+ const PerformChoiceSetMap& choice_set_map = app
+ ->performinteraction_choice_set_map();
+ bool choice_id_chosen = false;
+ LOG4CXX_INFO(logger_, "If command was choice id");
+ for (PerformChoiceSetMap::const_iterator it = choice_set_map.begin();
+ choice_set_map.end() != it; ++it) {
+ const smart_objects::SmartObject& choice_set = (*it->second).getElement(
+ strings::choice_set);
+ for (size_t j = 0; j < choice_set.length(); ++j) {
+ if (cmd_id ==
+ choice_set.getElement(j).getElement(strings::choice_id).asInt()) {
+ choice_id_chosen = true;
+ break;
+ }
+ }
+ }
+ if (choice_id_chosen) {
+ LOG4CXX_INFO(logger_, "Command was choice id!");
+ smart_objects::SmartObject c_p_request_so = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ c_p_request_so[hmi_request::method_name] = "UI.PerformInteraction";
+ SendHMIRequest(hmi_apis::FunctionID::UI_ClosePopUp, &(c_p_request_so));
+ SendVrDeleteCommand(app);
+ app->set_perform_interaction_mode(-1);
+ app->DeletePerformInteractionChoiceSetMap();
+ app->set_perform_interaction_active(0);
+
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::PerformInteractionID);
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::choice_id] = cmd_id;
+ msg_params[strings::trigger_source] =
+ static_cast<int32_t>(mobile_apis::TriggerSource::TS_VR);
+ SendResponse(true, mobile_apis::Result::SUCCESS, NULL, &(msg_params));
+
+ } else {
+ LOG4CXX_INFO(logger_, "Sending OnCommand notification");
+ smart_objects::SmartObject* notification_so =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
+ if (!notification_so) {
+ LOG4CXX_ERROR(
+ logger_,
+ "Failed to allocate memory for perform interaction response.");
+ return;
+ }
+ smart_objects::SmartObject& notification = *notification_so;
+ notification = message;
+ notification[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::eType::OnCommandID);
+ notification[strings::msg_params][strings::trigger_source] =
+ static_cast<int32_t>(mobile_apis::TriggerSource::TS_VR);
+ ApplicationManagerImpl::instance()->ManageMobileCommand(notification_so);
+ }
+}
+
+void PerformInteractionRequest::ProcessAppUnregisteredNotification
+ (const smart_objects::SmartObject& message) {
+ LOG4CXX_INFO(logger_,
+ "PerformInteractionRequest::ProcessAppUnregisteredNotification");
+ const uint32_t app_id = (*message_)[strings::params]
+ [strings::connection_key].asUInt();
+ if (app_id == message[strings::msg_params][strings::app_id].asUInt()) {
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+ if (app->is_perform_interaction_active()) {
+ if (static_cast<int32_t>(mobile_apis::InteractionMode::MANUAL_ONLY) !=
+ app->perform_interaction_mode()) {
+ SendVrDeleteCommand(app);
+ }
+ app->set_perform_interaction_mode(-1);
+ app->DeletePerformInteractionChoiceSetMap();
+ app->set_perform_interaction_active(0);
+ }
+ } else {
+ LOG4CXX_INFO(logger_, "Notification was sent from another application");
+ }
+}
+
+void PerformInteractionRequest::SendVrDeleteCommand(
+ application_manager::ApplicationSharedPtr const app) {
+ LOG4CXX_INFO(logger_, "PerformInteractionRequest::SendVrDeleteCommand");
+ const PerformChoiceSetMap& choice_set_map = app
+ ->performinteraction_choice_set_map();
+ PerformChoiceSetMap::const_iterator it = choice_set_map.begin();
+ for (; choice_set_map.end() != it; ++it) {
+ const smart_objects::SmartObject& choice_set = (*it->second).getElement(
+ strings::choice_set);
+ for (size_t j = 0; j < choice_set.length(); ++j) {
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::app_id] = app->app_id();
+ msg_params[strings::cmd_id] = choice_set.getElement(j).getElement(
+ strings::choice_id);
+ SendHMIRequest(hmi_apis::FunctionID::VR_DeleteCommand, &msg_params);
+ }
+ }
+}
+
+void PerformInteractionRequest::ProcessPerformInteractionResponse(
+ const smart_objects::SmartObject& message) {
+ LOG4CXX_INFO(logger_,
+ "PerformInteractionRequest::ProcessPerformInteractionResponse");
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+ if (app->is_perform_interaction_active()) {
+ if (static_cast<int32_t>(mobile_apis::InteractionMode::MANUAL_ONLY)
+ != app->perform_interaction_mode()) {
+ SendVrDeleteCommand(app);
+ }
+ app->set_perform_interaction_mode(-1);
+ app->DeletePerformInteractionChoiceSetMap();
+ app->set_perform_interaction_active(0);
+ }
+ (*message_)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::PerformInteractionID);
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params = message[strings::msg_params];
+ bool result = false;
+ int32_t hmi_response_code =
+ message[strings::params][hmi_response::code].asInt();
+ if (hmi_apis::Common_Result::SUCCESS ==
+ hmi_apis::Common_Result::eType(hmi_response_code)) {
+ if (message[strings::msg_params].keyExists(strings::manual_text_entry)) {
+ msg_params[strings::trigger_source] = mobile_apis::TriggerSource::TS_KEYBOARD;
+ } else {
+ msg_params[strings::trigger_source] = mobile_apis::TriggerSource::TS_MENU;
+ }
+ result = true;
+ }
+
+ const char* return_info = NULL;
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(hmi_response_code);
+ if (result) {
+ if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE ==
+ hmi_apis::Common_Result::eType(hmi_response_code)) {
+ result_code = mobile_apis::Result::WARNINGS;
+ return_info = std::string(
+ "Unsupported phoneme type sent in any item").c_str();
+ }
+ }
+
+ SendResponse(result,
+ result_code,
+ return_info,
+ &(msg_params));
+}
+
+void PerformInteractionRequest::SendVRAddCommandRequest(
+ application_manager::ApplicationSharedPtr const app) {
+ smart_objects::SmartObject& choice_list =
+ (*message_)[strings::msg_params][strings::interaction_choice_set_id_list];
+
+ mobile_apis::InteractionMode::eType mode =
+ static_cast<mobile_apis::InteractionMode::eType>(
+ (*message_)[strings::msg_params][strings::interaction_mode].asInt());
+
+ if (mobile_apis::InteractionMode::VR_ONLY == mode) {
+ // TODO(DK): We need subscribe perform interaction with on command
+ // notification
+ /*CreateHMIRequest(hmi_apis::FunctionID::UI_PerformInteraction,
+ smart_objects::SmartObject(smart_objects::SmartType_Map), true, 1);*/
+ }
+
+ for (size_t i = 0; i < choice_list.length(); ++i) {
+ smart_objects::SmartObject* choice_set = app->FindChoiceSet(
+ choice_list[i].asInt());
+
+ if (choice_set) {
+ for (size_t j = 0; j < (*choice_set)[strings::choice_set].length(); ++j) {
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::app_id] = app->app_id();
+ msg_params[strings::cmd_id] =
+ (*choice_set)[strings::choice_set][j][strings::choice_id];
+ msg_params[strings::vr_commands] = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+ msg_params[strings::vr_commands] =
+ (*choice_set)[strings::choice_set][j][strings::vr_commands];
+ SendHMIRequest(hmi_apis::FunctionID::VR_AddCommand, &msg_params);
+ }
+ }
+ }
+}
+
+void PerformInteractionRequest::SendUIPerformInteractionRequest(
+ application_manager::ApplicationSharedPtr const app) {
+ smart_objects::SmartObject& choice_set_id_list =
+ (*message_)[strings::msg_params][strings::interaction_choice_set_id_list];
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ mobile_apis::InteractionMode::eType mode =
+ static_cast<mobile_apis::InteractionMode::eType>(
+ (*message_)[strings::msg_params][strings::interaction_mode].asInt());
+
+ if (mobile_apis::InteractionMode::VR_ONLY != mode) {
+ msg_params[hmi_request::initial_text][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::
+ INITIAL_INTERACTION_TEXT);
+ msg_params[hmi_request::initial_text][hmi_request::field_text] =
+ (*message_)[strings::msg_params][hmi_request::initial_text];
+ }
+ bool is_vr_help_item = false;
+ if (mobile_apis::InteractionMode::MANUAL_ONLY != mode) {
+ msg_params[strings::vr_help_title] =
+ (*message_)[strings::msg_params][strings::initial_text].asString();
+ if ((*message_)[strings::msg_params].keyExists(strings::vr_help)) {
+ is_vr_help_item = true;
+ msg_params[strings::vr_help] =
+ (*message_)[strings::msg_params][strings::vr_help];
+ }
+ }
+
+ if (mobile_apis::InteractionMode::BOTH == mode ||
+ mobile_apis::InteractionMode::MANUAL_ONLY == mode) {
+ msg_params[strings::timeout] = default_timeout_/2;
+ } else {
+ msg_params[strings::timeout] = default_timeout_;
+ }
+ msg_params[strings::app_id] = app->app_id();
+ if (mobile_apis::InteractionMode::VR_ONLY != mode) {
+ msg_params[strings::choice_set] = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+ }
+ int32_t index_array_of_vr_help = 0;
+ for (size_t i = 0; i < choice_set_id_list.length(); ++i) {
+ smart_objects::SmartObject* choice_set = app->FindChoiceSet(
+ choice_set_id_list[i].asInt());
+ if (choice_set) {
+ // save perform interaction choice set
+ app->AddPerformInteractionChoiceSet(choice_set_id_list[i].asInt(),
+ *choice_set);
+ for (size_t j = 0; j < (*choice_set)[strings::choice_set].length(); ++j) {
+ if (mobile_apis::InteractionMode::VR_ONLY != mode) {
+ size_t index = msg_params[strings::choice_set].length();
+ msg_params[strings::choice_set][index] =
+ (*choice_set)[strings::choice_set][j];
+ // vrCommands should be added via VR.AddCommand only
+ msg_params[strings::choice_set][index].erase(strings::vr_commands);
+ }
+ if (mobile_apis::InteractionMode::MANUAL_ONLY !=
+ mode && !is_vr_help_item) {
+ smart_objects::SmartObject& vr_commands =
+ (*choice_set)[strings::choice_set][j][strings::vr_commands];
+ if (0 < vr_commands.length()) {
+ // copy only first synonym
+ smart_objects::SmartObject item(smart_objects::SmartType_Map);
+ item[strings::text] = vr_commands[0].asString();
+ item[strings::position] = index_array_of_vr_help + 1;
+ msg_params[strings::vr_help][index_array_of_vr_help++] = item;
+ }
+ }
+ }
+ }
+ }
+ if ((*message_)[strings::msg_params]
+ .keyExists(hmi_request::interaction_layout)
+ && mobile_apis::InteractionMode::VR_ONLY != mode) {
+ msg_params[hmi_request::interaction_layout] =
+ (*message_)[strings::msg_params][hmi_request::interaction_layout].
+ asInt();
+ }
+ CreateUIPerformInteraction(msg_params, app);
+}
+
+void PerformInteractionRequest::CreateUIPerformInteraction(
+ const smart_objects::SmartObject& msg_params,
+ application_manager::ApplicationSharedPtr const app) {
+ SendHMIRequest(hmi_apis::FunctionID::UI_PerformInteraction,
+ &msg_params, true);
+}
+
+void PerformInteractionRequest::SendTTSPerformInteractionRequest(
+ application_manager::ApplicationSharedPtr const app) {
+ smart_objects::SmartObject msg_params =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ if ((*message_)[strings::msg_params].keyExists(strings::help_prompt)) {
+
+ msg_params[strings::help_prompt] =
+ (*message_)[strings::msg_params][strings::help_prompt];
+
+ DeleteParameterFromTTSChunk(&msg_params[strings::help_prompt]);
+ } else {
+
+ smart_objects::SmartObject& choice_list =
+ (*message_)[strings::msg_params][strings::interaction_choice_set_id_list];
+
+ msg_params[strings::help_prompt] =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+
+ int32_t index = 0;
+ for (uint32_t i = 0; i < choice_list.length(); ++i) {
+ smart_objects::SmartObject* choice_set =
+ app->FindChoiceSet(choice_list[i].asInt());
+
+ if (choice_set) {
+ for (uint32_t j = 0;
+ j < (*choice_set)[strings::choice_set].length();
+ ++j) {
+ smart_objects::SmartObject& vr_commands =
+ (*choice_set)[strings::choice_set][j][strings::vr_commands];
+ if (0 < vr_commands.length()) {
+ // copy only first synonym
+ smart_objects::SmartObject item(smart_objects::SmartType_Map);
+ item[strings::text] = vr_commands[0].asString();
+ msg_params[strings::help_prompt][index++] = item;
+ }
+ }
+ }
+ }
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::timeout_prompt)) {
+ msg_params[strings::timeout_prompt] =
+ (*message_)[strings::msg_params][strings::timeout_prompt];
+
+ DeleteParameterFromTTSChunk(&msg_params[strings::timeout_prompt]);
+ } else {
+ msg_params[strings::timeout_prompt] = msg_params[strings::help_prompt];
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::initial_prompt)) {
+ msg_params[strings::initial_prompt] =
+ (*message_)[strings::msg_params][strings::initial_prompt];
+
+ DeleteParameterFromTTSChunk(&msg_params[strings::initial_prompt]);
+ }
+
+ mobile_apis::InteractionMode::eType mode =
+ static_cast<mobile_apis::InteractionMode::eType>(
+ (*message_)[strings::msg_params][strings::interaction_mode].asInt());
+
+ if (mobile_apis::InteractionMode::BOTH == mode ||
+ mobile_apis::InteractionMode::MANUAL_ONLY == mode) {
+ msg_params[strings::timeout] = default_timeout_/2;
+ } else {
+ msg_params[strings::timeout] = default_timeout_;
+ }
+
+ SendHMIRequest(hmi_apis::FunctionID::TTS_PerformInteraction, &msg_params,
+ true);
+}
+
+void PerformInteractionRequest::DeleteParameterFromTTSChunk
+(smart_objects::SmartObject* array_tts_chunk) {
+ int32_t length = array_tts_chunk->length();
+ for (int32_t i = 0; i < length; ++i) {
+ array_tts_chunk[i].erase(strings::type);
+ }
+}
+
+bool PerformInteractionRequest::CheckChoiceSetMenuNames(
+ application_manager::ApplicationSharedPtr const app) {
+ smart_objects::SmartObject& choice_list =
+ (*message_)[strings::msg_params][strings::interaction_choice_set_id_list];
+
+ for (size_t i = 0; i < choice_list.length(); ++i) {
+ // choice_set contains SmartObject msg_params
+ smart_objects::SmartObject* i_choice_set = app->FindChoiceSet(
+ choice_list[i].asInt());
+
+ for (size_t j = 0; j < choice_list.length(); ++j) {
+ smart_objects::SmartObject* j_choice_set = app->FindChoiceSet(
+ choice_list[j].asInt());
+
+ if (i == j) {
+ // skip check the same element
+ continue;
+ }
+
+ if (!i_choice_set || !j_choice_set) {
+ LOG4CXX_ERROR(logger_, "Invalid ID");
+ SendResponse(false, mobile_apis::Result::INVALID_ID);
+ return false;
+ }
+
+ size_t ii = 0;
+ size_t jj = 0;
+ for (; ii < (*i_choice_set)[strings::choice_set].length(); ++ii) {
+ for (; jj < (*j_choice_set)[strings::choice_set].length(); ++jj) {
+ std::string ii_menu_name =
+ (*i_choice_set)[strings::choice_set][ii][strings::menu_name]
+ .asString();
+ std::string jj_menu_name =
+ (*j_choice_set)[strings::choice_set][jj][strings::menu_name]
+ .asString();
+
+ if (ii_menu_name == jj_menu_name) {
+ LOG4CXX_ERROR(logger_, "Choice set has duplicated menu name");
+ SendResponse(false, mobile_apis::Result::DUPLICATE_NAME,
+ "Choice set has duplicated menu name");
+ return false;
+ }
+ }
+ }
+ }
+ }
+
+ return true;
+}
+
+bool PerformInteractionRequest::CheckChoiceSetVRSynonyms(
+ application_manager::ApplicationSharedPtr const app) {
+ smart_objects::SmartObject& choice_list =
+ (*message_)[strings::msg_params][strings::interaction_choice_set_id_list];
+
+ for (size_t i = 0; i < choice_list.length(); ++i) {
+ // choice_set contains SmartObject msg_params
+ smart_objects::SmartObject* i_choice_set = app->FindChoiceSet(
+ choice_list[i].asInt());
+
+ for (size_t j = 0; j < choice_list.length(); ++j) {
+ smart_objects::SmartObject* j_choice_set = app->FindChoiceSet(
+ choice_list[j].asInt());
+
+ if (i == j) {
+ // skip check the same element
+ continue;
+ }
+
+ if ((!i_choice_set) || (!j_choice_set)) {
+ LOG4CXX_ERROR(logger_, "Invalid ID");
+ SendResponse(false, mobile_apis::Result::INVALID_ID);
+ return false;
+ }
+
+ size_t ii = 0;
+ size_t jj = 0;
+ for (; ii < (*i_choice_set)[strings::choice_set].length(); ++ii) {
+ for (; jj < (*j_choice_set)[strings::choice_set].length(); ++jj) {
+ // choice_set pointer contains SmartObject msg_params
+ smart_objects::SmartObject& ii_vr_commands =
+ (*i_choice_set)[strings::choice_set][ii][strings::vr_commands];
+
+ smart_objects::SmartObject& jj_vr_commands =
+ (*j_choice_set)[strings::choice_set][jj][strings::vr_commands];
+
+ for (size_t iii = 0; iii < ii_vr_commands.length(); ++iii) {
+ for (size_t jjj = 0; jjj < jj_vr_commands.length(); ++jjj) {
+ std::string vr_cmd_i = ii_vr_commands[iii].asString();
+ std::string vr_cmd_j = jj_vr_commands[jjj].asString();
+ if (0 == strcasecmp(vr_cmd_i.c_str(), vr_cmd_j.c_str())) {
+ LOG4CXX_ERROR(logger_, "Choice set has duplicated VR synonym");
+ SendResponse(false, mobile_apis::Result::DUPLICATE_NAME,
+ "Choice set has duplicated VR synonym");
+ return false;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return true;
+}
+
+bool PerformInteractionRequest::CheckVrHelpItemPositions(
+ application_manager::ApplicationSharedPtr const app) {
+
+ if (!(*message_)[strings::msg_params].keyExists(strings::vr_help)) {
+ LOG4CXX_INFO(logger_, ""
+ "PerformInteractionRequest::CheckVrHelpItemPositions vr_help omitted");
+ return true;
+ }
+
+ smart_objects::SmartObject& vr_help =
+ (*message_)[strings::msg_params][strings::vr_help];
+
+ int32_t position = 1;
+ for (size_t i = 0; i < vr_help.length(); ++i) {
+ if (position != vr_help[i][strings::position].asInt()) {
+ LOG4CXX_ERROR(logger_, "Non-sequential vrHelp item position");
+ SendResponse(false, mobile_apis::Result::REJECTED,
+ "Non-sequential vrHelp item position");
+ return false;
+ }
+ ++position;
+ }
+ return true;
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_response.cc
new file mode 100644
index 000000000..4ceb4ce3b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/perform_interaction_response.cc
@@ -0,0 +1,57 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/perform_interaction_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+PerformInteractionResponse::PerformInteractionResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+PerformInteractionResponse::~PerformInteractionResponse() {
+}
+
+void PerformInteractionResponse::Run() {
+ LOG4CXX_INFO(logger_, "PerformInteractionResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_request.cc
new file mode 100644
index 000000000..12d7c386a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_request.cc
@@ -0,0 +1,188 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/put_file_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "config_profile/profile.h"
+#include "utils/file_system.h"
+
+namespace application_manager {
+
+namespace commands {
+
+PutFileRequest::PutFileRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+PutFileRequest::~PutFileRequest() {
+}
+
+void PutFileRequest::Run() {
+ LOG4CXX_INFO(logger_, "PutFileRequest::Run");
+
+ ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(
+ connection_key());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (mobile_api::HMILevel::HMI_NONE == application->hmi_level() &&
+ profile::Profile::instance()->put_file_in_none() <=
+ application->put_file_in_none_count()) {
+ // If application is in the HMI_NONE level the quantity of allowed
+ // PutFile request is limited by the configuration profile
+ LOG4CXX_ERROR(logger_,
+ "Too many requests from the app with HMILevel HMI_NONE ");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ if (!(*message_)[strings::params].keyExists(strings::binary_data)) {
+ LOG4CXX_ERROR(logger_, "Binary data empty");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ if (!(*message_)[strings::msg_params].keyExists(strings::sync_file_name)) {
+ LOG4CXX_ERROR(logger_, "No file name");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ if (!(*message_)[strings::msg_params].keyExists(strings::file_type)) {
+ LOG4CXX_ERROR(logger_, "No file type");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+ const std::string& sync_file_name =
+ (*message_)[strings::msg_params][strings::sync_file_name].asString();
+ const mobile_apis::FileType::eType& file_type =
+ static_cast<mobile_apis::FileType::eType>(
+ (*message_)[strings::msg_params][strings::file_type].asInt());
+ const std::vector<uint8_t> binary_data =
+ (*message_)[strings::params][strings::binary_data].asBinary();
+
+ uint32_t offset = 0;
+ bool is_persistent_file = false;
+ bool is_system_file = false;
+ uint32_t length = binary_data.size();
+ bool is_download_compleate = true;
+ bool offset_exist = (*message_)[strings::msg_params].keyExists(strings::offset);
+
+ if (offset_exist) {
+ offset = (*message_)[strings::msg_params][strings::offset].asInt();
+ }
+ if ((*message_)[strings::msg_params].keyExists(strings::length)) {
+ length =
+ (*message_)[strings::msg_params][strings::length].asInt();
+ }
+ if ((*message_)[strings::msg_params].
+ keyExists(strings::persistent_file)) {
+ is_persistent_file =
+ (*message_)[strings::msg_params][strings::persistent_file].asBool();
+ }
+ if ((*message_)[strings::msg_params].
+ keyExists(strings::system_file)) {
+ is_system_file =
+ (*message_)[strings::msg_params][strings::system_file].asBool();
+ }
+
+ if (is_system_file & (file_type != mobile_apis::FileType::BINARY)) {
+ LOG4CXX_INFO(logger_, "File is System but not binary");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ }
+ std::string relative_file_path =
+ file_system::CreateDirectory(application->name());
+ relative_file_path += "/";
+ relative_file_path += sync_file_name;
+
+ mobile_apis::Result::eType save_result =
+ ApplicationManagerImpl::instance()->SaveBinary(
+ application->name(),
+ binary_data,
+ relative_file_path,
+ offset);
+
+ switch (save_result) {
+ case mobile_apis::Result::SUCCESS: {
+ AppFile file(sync_file_name, is_persistent_file, is_download_compleate, file_type);
+ if (offset == 0) {
+ LOG4CXX_INFO(logger_, "New file downloading");
+ if (!application->AddFile(file)) {
+ LOG4CXX_INFO(logger_, "Couldn't add file to application (File already Exist in application and was rewrited on fs) ");
+ // It can be first part of new big file, so we need tu update information about it's downloading status and percictency
+ if (!application->UpdateFile(file)) {
+ LOG4CXX_INFO(logger_, "Couldn't update file");
+ // If it is impossible to update file, application doesn't know about existing this file
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+ } else {
+ /* if file added - increment it's count ( may be application->AddFile have to incapsulate it? )
+ * Any way now this method evals not only in "none"*/
+ application->increment_put_file_in_none_count();
+ }
+ }
+// For future implementation ( when length will contains file size)
+// if (offset + binary_data.size() == length) {
+// LOG4CXX_INFO(logger_, "File is Fully downloaded");
+// if (!application->UpdateFile(file)) {
+// // If it is impossible to update file, application doesn't know about existing this file
+// SendResponse(false, mobile_apis::Result::INVALID_DATA);
+// return;
+// }
+// } else {
+// //TODO: Maybe need to save in AppFile information about downloading progress
+// }
+ SendResponse(true, save_result);
+ break;
+ }
+ default:
+ if (mobile_apis::Result::OUT_OF_MEMORY == save_result) {
+ if (file_system::FileExists(relative_file_path)) {
+ DCHECK(file_system::DeleteFile(relative_file_path));
+ }
+ }
+ LOG4CXX_INFO(logger_, "Save in unsuccesfull result = " << save_result);
+ SendResponse(false, save_result);
+ break;
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_response.cc
new file mode 100644
index 000000000..493061d73
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/put_file_response.cc
@@ -0,0 +1,69 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/put_file_response.h"
+#include "utils/file_system.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+PutFileResponse::PutFileResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+PutFileResponse::~PutFileResponse() {
+}
+
+void PutFileResponse::Run() {
+ LOG4CXX_INFO(logger_, "PutFileResponse::Run");
+ uint32_t app_id = (*message_)[strings::params][strings::connection_key]
+ .asUInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Application not registered");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ (*message_)[strings::msg_params][strings::space_available] =
+ static_cast<int32_t>(file_system::GetAvailableSpaceForApp(app->name()));
+
+ SendResponse((*message_)[strings::msg_params][strings::success].asBool());
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_request.cc
new file mode 100644
index 000000000..f8b7aed0d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_request.cc
@@ -0,0 +1,111 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/read_did_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ReadDIDRequest::ReadDIDRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+ReadDIDRequest::~ReadDIDRequest() {
+}
+
+void ReadDIDRequest::Run() {
+ LOG4CXX_INFO(logger_, "ReadDIDRequest::Run");
+
+ uint32_t app_id = (*message_)[strings::params][strings::connection_key]
+ .asUInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "An application is not registered.");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (mobile_api::HMILevel::HMI_NONE == app->hmi_level()) {
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ LOG4CXX_ERROR(logger_, "Rejected");
+ return;
+ }
+
+ if (0 == (*message_)[strings::msg_params][strings::did_location].length()) {
+ LOG4CXX_ERROR_EXT(logger_, "INVALID_DATA");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::app_id] = app->app_id();
+ msg_params[strings::ecu_name] =
+ (*message_)[strings::msg_params][strings::ecu_name];
+ msg_params[strings::did_location] =
+ (*message_)[strings::msg_params][strings::did_location];
+
+ SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_ReadDID, &msg_params, true);
+}
+
+void ReadDIDRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "ReadDIDRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::VehicleInfo_ReadDID: {
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_response.cc
new file mode 100644
index 000000000..888b59075
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/read_did_response.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/read_did_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ReadDIDResponse::ReadDIDResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+ReadDIDResponse::~ReadDIDResponse() {
+}
+
+void ReadDIDResponse::Run() {
+ LOG4CXX_INFO(logger_, "ReadDIDResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc
new file mode 100644
index 000000000..620b38b28
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_request.cc
@@ -0,0 +1,573 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/register_app_interface_request.h"
+
+#include <unistd.h>
+#include <algorithm>
+
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "config_profile/profile.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+RegisterAppInterfaceRequest::RegisterAppInterfaceRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+RegisterAppInterfaceRequest::~RegisterAppInterfaceRequest() {
+}
+
+bool RegisterAppInterfaceRequest::Init() {
+ LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::Init");
+ return true;
+}
+
+void RegisterAppInterfaceRequest::Run() {
+ LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::Run "<< connection_key());
+
+ // wait till all HMI capabilities initialized
+ const HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ while (!hmi_capabilities.is_hmi_capabilities_initialized()) {
+ sleep(1);
+ // TODO(DK): timer_->StartWait(1);
+ ApplicationManagerImpl::instance()->updateRequestTimeout(connection_key(),
+ correlation_id(),
+ default_timeout());
+ }
+
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(connection_key());
+
+ if (application) {
+ SendResponse(false, mobile_apis::Result::APPLICATION_REGISTERED_ALREADY);
+ return;
+ }
+
+ if (IsApplicationWithSameAppIdRegistered()) {
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ mobile_apis::Result::eType restriction_result = CheckRestrictions();
+ if (mobile_apis::Result::SUCCESS != restriction_result) {
+ LOG4CXX_ERROR_EXT(logger_, "Param names restrictions check failed.");
+ SendResponse(false, restriction_result);
+ return;
+ }
+
+ mobile_apis::Result::eType coincidence_result =
+ CheckCoincidence();
+
+ if (mobile_apis::Result::SUCCESS != coincidence_result) {
+ LOG4CXX_ERROR_EXT(logger_, "Coincidence check failed.");
+ SendResponse(false, coincidence_result);
+ return;
+ }
+
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->RegisterApplication(message_);
+
+ const smart_objects::SmartObject& msg_params =
+ (*message_)[strings::msg_params];
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "Application " <<
+ msg_params[strings::app_name].asString() << " hasn't been registered!");
+ } else {
+ app->set_is_media_application(
+ msg_params[strings::is_media_application].asBool());
+
+ if (msg_params.keyExists(strings::vr_synonyms)) {
+ app->set_vr_synonyms(msg_params[strings::vr_synonyms]);
+ }
+
+ if (msg_params.keyExists(strings::ngn_media_screen_app_name)) {
+ app->set_ngn_media_screen_name(
+ msg_params[strings::ngn_media_screen_app_name]);
+ }
+
+ if (msg_params.keyExists(strings::tts_name)) {
+ app->set_tts_name(msg_params[strings::tts_name]);
+ }
+
+ if (msg_params.keyExists(strings::app_hmi_type)) {
+ app->set_app_types(msg_params[strings::app_hmi_type]);
+
+ // check if app is NAVI
+ const int32_t is_navi_type = mobile_apis::AppHMIType::NAVIGATION;
+ const smart_objects::SmartObject& app_type =
+ msg_params.getElement(strings::app_hmi_type);
+
+ for (size_t i = 0; i < app_type.length(); ++i) {
+ if (is_navi_type == app_type.getElement(i).asInt()) {
+ app->set_allowed_support_navigation(true);
+ }
+ }
+ }
+
+ MessageHelper::SendOnAppRegisteredNotificationToHMI(*app);
+ SendRegisterAppInterfaceResponseToMobile();
+
+ }
+}
+
+void RegisterAppInterfaceRequest::SendVrCommandsOnRegisterAppToHMI
+(const application_manager::Application& application_impl) {
+ uint32_t max_cmd_id = profile::Profile::instance()->max_cmd_id();
+ uint32_t app_id = application_impl.app_id();
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::cmd_id] = (max_cmd_id + app_id);
+ msg_params[strings::vr_commands] = *(application_impl.vr_synonyms());
+ if (0 < app_id) {
+ msg_params[strings::app_id] = app_id;
+ }
+ SendHMIRequest(hmi_apis::FunctionID::VR_AddCommand, &msg_params);
+}
+
+void RegisterAppInterfaceRequest::SendTTSChunksToHMI
+(const application_manager::Application& application_impl) {
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::app_id] = application_impl.app_id();
+ msg_params[strings::tts_chunks] = *(application_impl.tts_name());
+ SendHMIRequest(hmi_apis::FunctionID::TTS_Speak, &msg_params, true);
+}
+
+void RegisterAppInterfaceRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::on_event");
+ switch (event.id()) {
+ case hmi_apis::FunctionID::TTS_Speak: {
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ mobile_apis::Result::eType tts_result =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ SendRegisterAppInterfaceResponseToMobile(tts_result);
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ break;
+ }
+ }
+}
+
+
+void RegisterAppInterfaceRequest::SendRegisterAppInterfaceResponseToMobile(
+ mobile_apis::Result::eType result) {
+ smart_objects::SmartObject* params = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if (!params) {
+ SendResponse(false, mobile_apis::Result::OUT_OF_MEMORY);
+ return;
+ }
+
+ ApplicationManagerImpl* app_manager = ApplicationManagerImpl::instance();
+ const HMICapabilities& hmi_capabilities = app_manager->hmi_capabilities();
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(connection_key());
+
+ smart_objects::SmartObject& response_params = *params;
+
+ response_params[strings::sync_msg_version][strings::major_version] =
+ APIVersion::kAPIV2;
+ response_params[strings::sync_msg_version][strings::minor_version] =
+ APIVersion::kAPIV2;
+
+ response_params[strings::language] = hmi_capabilities.active_vr_language();
+ response_params[strings::hmi_display_language] =
+ hmi_capabilities.active_ui_language();
+
+ const smart_objects::SmartObject& msg_params =
+ (*message_)[strings::msg_params];
+
+ if (msg_params[strings::language_desired].asInt() !=
+ hmi_capabilities.active_vr_language() ||
+ msg_params[strings::hmi_display_language_desired].asInt() !=
+ hmi_capabilities.active_ui_language()) {
+
+ LOG4CXX_WARN_EXT(
+ logger_,
+ "Wrong language on registering application " << application->name());
+
+ LOG4CXX_ERROR_EXT(
+ logger_,
+ "vr "
+ << msg_params[strings::language_desired].asInt()
+ << " - "
+ << hmi_capabilities.active_vr_language()
+ << "ui "
+ << msg_params[strings::hmi_display_language_desired].asInt()
+ << " - "
+ << hmi_capabilities.active_ui_language());
+
+ result = mobile_apis::Result::WRONG_LANGUAGE;
+ }
+
+ if (hmi_capabilities.display_capabilities()) {
+
+ response_params[hmi_response::display_capabilities] =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ smart_objects::SmartObject& display_caps =
+ response_params[hmi_response::display_capabilities];
+
+ display_caps[hmi_response::display_type] =
+ hmi_capabilities.display_capabilities()->getElement(
+ hmi_response::display_type);
+
+ display_caps[hmi_response::text_fields] =
+ hmi_capabilities.display_capabilities()->getElement(
+ hmi_response::text_fields);
+
+ display_caps[hmi_response::media_clock_formats] =
+ hmi_capabilities.display_capabilities()->getElement(
+ hmi_response::media_clock_formats);
+
+ display_caps[hmi_response::templates_available] =
+ hmi_capabilities.display_capabilities()->getElement(
+ hmi_response::templates_available);
+
+ display_caps[hmi_response::screen_params] =
+ hmi_capabilities.display_capabilities()->getElement(
+ hmi_response::screen_params);
+
+ display_caps[hmi_response::num_custom_presets_available] =
+ hmi_capabilities.display_capabilities()->getElement(
+ hmi_response::num_custom_presets_available);
+
+ if (hmi_capabilities.display_capabilities()->getElement(
+ hmi_response::image_capabilities).length() > 0) {
+
+ display_caps[hmi_response::graphic_supported] = true;
+ } else {
+
+ display_caps[hmi_response::graphic_supported] = false;
+ }
+ }
+
+ if (hmi_capabilities.button_capabilities()) {
+ response_params[hmi_response::button_capabilities] =
+ *hmi_capabilities.button_capabilities();
+ }
+ if (hmi_capabilities.soft_button_capabilities()) {
+ response_params[hmi_response::soft_button_capabilities] =
+ *hmi_capabilities.soft_button_capabilities();
+ }
+ if (hmi_capabilities.preset_bank_capabilities()) {
+ response_params[hmi_response::preset_bank_capabilities] =
+ *hmi_capabilities.preset_bank_capabilities();
+ }
+ if (hmi_capabilities.hmi_zone_capabilities()) {
+ response_params[hmi_response::hmi_zone_capabilities] =
+ *hmi_capabilities.hmi_zone_capabilities();
+ }
+ if (hmi_capabilities.speech_capabilities()) {
+ response_params[strings::speech_capabilities] =
+ *hmi_capabilities.speech_capabilities();
+ }
+ if (hmi_capabilities.vr_capabilities()) {
+ response_params[strings::vr_capabilities] =
+ *hmi_capabilities.vr_capabilities();
+ }
+ if (hmi_capabilities.audio_pass_thru_capabilities()) {
+ response_params[strings::audio_pass_thru_capabilities] =
+ *hmi_capabilities.audio_pass_thru_capabilities();
+ }
+ if (hmi_capabilities.vehicle_type()) {
+ response_params[hmi_response::vehicle_type] =
+ *hmi_capabilities.vehicle_type();
+ }
+ if (hmi_capabilities.prerecorded_speech()) {
+ response_params[strings::prerecorded_speech] =
+ *(hmi_capabilities.prerecorded_speech());
+ }
+
+ const std::vector<uint32_t>& diag_modes =
+ profile::Profile::instance()->supported_diag_modes();
+ if (!diag_modes.empty()) {
+ std::vector<uint32_t>::const_iterator it = diag_modes.begin();
+ uint32_t index = 0;
+ for (; it != diag_modes.end(); ++it) {
+ response_params[strings::supported_diag_modes][index] = *it;
+ ++index;
+ }
+ }
+
+ ResumeCtrl& resumer = ApplicationManagerImpl::instance()->resume_controller();
+ uint32_t hash_id = 0;
+
+ if ((*message_)[strings::msg_params].keyExists(strings::hash_id)) {
+
+ hash_id = (*message_)[strings::msg_params][strings::hash_id].asUInt();
+ if (!resumer.CheckApplicationHash((*application->mobile_app_id()).asInt(),
+ hash_id)) {
+ result = mobile_apis::Result::RESUME_FAILED;
+ }
+ }
+
+ SendResponse(true, result, "", params);
+ resumer.StartResumption(application, hash_id);
+}
+
+mobile_apis::Result::eType
+RegisterAppInterfaceRequest::CheckCoincidence() {
+
+ LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::CheckCoincidence ");
+
+ const smart_objects::SmartObject& msg_params =
+ (*message_)[strings::msg_params];
+
+ ApplicationManagerImpl* app_manager = ApplicationManagerImpl::instance();
+
+ const std::set<ApplicationSharedPtr>& applications = app_manager->applications();
+ std::set<ApplicationSharedPtr>::const_iterator it = applications.begin();
+ const std::string app_name = msg_params[strings::app_name].asString();
+
+ for (; applications.end() != it; ++it) {
+
+ // name check
+ const std::string &cur_name = (*it)->name();
+ if (!strcasecmp(app_name.c_str(), cur_name.c_str())) {
+ LOG4CXX_ERROR(logger_, "Application name is known already.");
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+
+ const smart_objects::SmartObject* tts = (*it)->tts_name();
+ std::vector<smart_objects::SmartObject>* curr_tts = NULL;
+ if (NULL != tts) {
+ curr_tts = tts->asArray();
+ CoincidencePredicateTTS t(app_name);
+
+ if (0 != std::count_if((*curr_tts).begin(), (*curr_tts).end(), t)) {
+ LOG4CXX_ERROR(logger_, "Application name is known already.");
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+ }
+
+ const smart_objects::SmartObject* vr = (*it)->vr_synonyms();
+ const std::vector<smart_objects::SmartObject>* curr_vr = NULL;
+ if (NULL != vr) {
+ curr_vr = vr->asArray();
+ CoincidencePredicateVR v(app_name);
+
+ if (0 != std::count_if(curr_vr->begin(), curr_vr->end(), v )) {
+ LOG4CXX_ERROR(logger_, "Application name is known already.");
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+ }
+
+
+ // tts check
+ if (msg_params.keyExists(strings::tts_name)) {
+
+ const std::vector<smart_objects::SmartObject>* new_tts =
+ msg_params[strings::tts_name].asArray();
+
+ std::vector<smart_objects::SmartObject>::const_iterator it_tts =
+ new_tts->begin();
+
+ std::vector<smart_objects::SmartObject>::const_iterator it_tts_End =
+ new_tts->end();
+
+ for (; it_tts != it_tts_End; ++it_tts) {
+ std::string text = (*it_tts)[strings::text].asString();
+ if (!strcasecmp(cur_name.c_str(), text.c_str())){
+ LOG4CXX_ERROR(logger_,
+ "Some TTS parameters names are known already.");
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+
+ CoincidencePredicateTTS t((*it_tts)[strings::text].asString());
+ if (NULL != curr_tts
+ && 0 != std::count_if(curr_tts->begin(), curr_tts->end(), t)) {
+ LOG4CXX_ERROR(logger_,
+ "Some TTS parameters names are known already.");
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+
+ CoincidencePredicateVR v((*it_tts)[strings::text].asString());
+ if (NULL != curr_vr
+ && 0 != std::count_if(curr_vr->begin(), curr_vr->end(), v)) {
+ LOG4CXX_ERROR(logger_,
+ "Some TTS parameters names are known already.");
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+ }
+ } // end tts check
+
+ if (msg_params.keyExists(strings::vr_synonyms)) {
+
+ const std::vector<smart_objects::SmartObject>* new_vr =
+ msg_params[strings::vr_synonyms].asArray();
+
+ std::vector<smart_objects::SmartObject>::const_iterator it_vr =
+ new_vr->begin();
+
+ std::vector<smart_objects::SmartObject>::const_iterator it_vr_End =
+ new_vr->end();
+
+ for (; it_vr != it_vr_End; ++it_vr) {
+ std::string vr_synonym = it_vr->asString();
+ if (!strcasecmp(cur_name.c_str(), vr_synonym.c_str())) {
+ LOG4CXX_ERROR(logger_, "Some VR synonyms are known already.");
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+
+ CoincidencePredicateTTS t(it_vr->asString());
+ if (NULL !=curr_tts
+ && 0 != std::count_if(curr_tts->begin(), curr_tts->end(), t)) {
+ LOG4CXX_ERROR(logger_, "Some VR synonyms are known already.");
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+
+ CoincidencePredicateVR v(it_vr->asString());
+ if (NULL != curr_vr
+ && 0 != std::count_if(curr_vr->begin(), curr_vr->end(), v)) {
+ LOG4CXX_ERROR(logger_, "Some VR synonyms are known already.");
+ return mobile_apis::Result::DUPLICATE_NAME;
+ }
+ }
+ } // end vr check
+
+ } // application for end
+
+ return mobile_apis::Result::SUCCESS;
+} // method end
+
+mobile_apis::Result::eType
+RegisterAppInterfaceRequest::CheckRestrictions() const {
+
+ LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::CheckRestrictions");
+
+ const smart_objects::SmartObject& msg_params =
+ (*message_)[strings::msg_params];
+
+ const std::string& app_name = msg_params[strings::app_name].asString();
+
+ if (ClearParamName(app_name).empty()) {
+ printf("Application name is empty.\n");
+ return mobile_apis::Result::INVALID_DATA;
+ }
+
+ if ((app_name[0] == '\n') ||
+ ((app_name[0] == '\\') && (app_name[1] == 'n'))) {
+
+ printf("Application name has invalid characters.");
+ return mobile_apis::Result::INVALID_DATA;
+ }
+
+ if (msg_params.keyExists(strings::tts_name)) {
+
+ const smart_objects::SmartArray* tts =
+ msg_params[strings::tts_name].asArray();
+
+ smart_objects::SmartArray::const_iterator it = tts->begin();
+ smart_objects::SmartArray::const_iterator it_end = tts->end();
+
+ for (; it != it_end; ++it) {
+
+ const std::string& tts_name = (*it)[strings::text].asString();
+
+ if (ClearParamName(tts_name).empty()) {
+ printf("TTS value is empty.");
+ return mobile_apis::Result::INVALID_DATA;
+ }
+
+ if ((tts_name[0] == '\n') ||
+ ((tts_name[0] == '\\') && (tts_name[1] == 'n'))) {
+
+ printf("TTS value(s) has invalid characters.");
+ return mobile_apis::Result::INVALID_DATA;
+ }
+ }
+ }
+
+ return mobile_apis::Result::SUCCESS;
+}
+
+std::string
+RegisterAppInterfaceRequest::ClearParamName(std::string param_name) const {
+
+ // Expecting for chars different from newlines and spaces in the appName
+ //
+ // There is an agreement, that "\n" is not allowed symbols, so we have to
+ // check for this case also
+
+ std::string newline = "\\n";
+ while (std::string::npos != param_name.find(newline)) {
+ param_name.erase(param_name.find(newline), newline.length());
+ }
+
+ std::string::iterator param_name_new_end =
+ std::remove_if(param_name.begin(), param_name.end(), ::isspace);
+
+ return std::string(param_name.begin(), param_name_new_end);
+}
+
+bool RegisterAppInterfaceRequest::IsApplicationWithSameAppIdRegistered() {
+
+ LOG4CXX_INFO(logger_, "RegisterAppInterfaceRequest::IsApplicationRegistered");
+
+ int32_t mobile_app_id = (*message_)[strings::msg_params][strings::app_id].asInt();
+
+ const std::set<ApplicationSharedPtr>& applications =
+ ApplicationManagerImpl::instance()->applications();
+
+ std::set<ApplicationSharedPtr>::const_iterator it = applications.begin();
+ std::set<ApplicationSharedPtr>::const_iterator it_end = applications.end();
+
+ for (; it != it_end; ++it) {
+ if (mobile_app_id == (*it)->mobile_app_id()->asInt()) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_response.cc
new file mode 100644
index 000000000..3f35c44d6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/register_app_interface_response.cc
@@ -0,0 +1,72 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/register_app_interface_response.h"
+#include "interfaces/MOBILE_API.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+
+namespace application_manager {
+
+namespace commands {
+
+void RegisterAppInterfaceResponse::Run() {
+ LOG4CXX_INFO(logger_, "RegisterAppInterfaceResponse::Run");
+
+ bool success = (*message_)[strings::msg_params][strings::success].asBool();
+
+ bool last_message = !success;
+ // Do not close connection in case of APPLICATION_NOT_REGISTERED despite it is an error
+ if (!success && (*message_)[strings::msg_params].keyExists(strings::result_code)) {
+ mobile_apis::Result::eType result_code =
+ mobile_apis::Result::eType((*message_)[strings::msg_params][strings::result_code].asInt());
+ if (result_code == mobile_apis::Result::APPLICATION_REGISTERED_ALREADY) {
+ last_message = false;
+ }
+ }
+
+ SendResponse(success, mobile_apis::Result::INVALID_ENUM, last_message);
+
+ if (success) {
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asInt());
+
+ MessageHelper::SendHMIStatusNotification(*application);
+ MessageHelper::SendChangeRegistrationRequestToHMI(application);
+ }
+}
+
+} // namespace commands
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc
new file mode 100644
index 000000000..4a8939a43
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_request.cc
@@ -0,0 +1,339 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/reset_global_properties_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "config_profile/profile.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ResetGlobalPropertiesRequest::ResetGlobalPropertiesRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message),
+ is_ui_send_(false),
+ is_tts_send_(false),
+ is_ui_received_(false),
+ is_tts_received_(false),
+ ui_result_(hmi_apis::Common_Result::INVALID_ENUM),
+ tts_result_(hmi_apis::Common_Result::INVALID_ENUM) {
+}
+
+ResetGlobalPropertiesRequest::~ResetGlobalPropertiesRequest() {
+}
+
+void ResetGlobalPropertiesRequest::Run() {
+ LOG4CXX_INFO(logger_, "ResetGlobalPropertiesRequest::Run");
+
+ uint32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "No application associated with session key");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ size_t obj_length = (*message_)[strings::msg_params][strings::properties]
+ .length();
+
+ bool helpt_promt = false;
+ bool timeout_prompt = false;
+ bool vr_help_title = false;
+ bool vr_help_items = false;
+ bool menu_name = false;
+ bool menu_icon = false;
+ bool is_key_board_properties = false;
+
+ for (size_t i = 0; i < obj_length; ++i) {
+ switch ((*message_)[strings::msg_params][strings::properties][i].asInt()) {
+ case GlobalProperty::HELPPROMT: {
+ helpt_promt = ResetHelpPromt(app);
+ break;
+ }
+ case GlobalProperty::TIMEOUTPROMT: {
+ timeout_prompt = ResetTimeoutPromt(app);
+ break;
+ }
+ case GlobalProperty::VRHELPTITLE: {
+ vr_help_title = ResetVrHelpTitle(app);
+ break;
+ }
+ case GlobalProperty::VRHELPITEMS: {
+ vr_help_items = ResetVrHelpItems(app);
+ break;
+ }
+ case mobile_apis::GlobalProperty::MENUNAME: {
+ menu_name = true;
+ break;
+ }
+ case mobile_apis::GlobalProperty::MENUICON: {
+ menu_icon = true;
+ break;
+ }
+ case mobile_apis::GlobalProperty::KEYBOARDPROPERTIES: {
+ is_key_board_properties = true;
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(
+ logger_,
+ "Unknown global property 0x%02X value"
+ << (*message_)[strings::msg_params][strings::properties][i].asInt());
+ break;
+ }
+ }
+ }
+
+ if (vr_help_title || vr_help_items || menu_name || menu_icon
+ || is_key_board_properties) {
+ is_ui_send_ = true;
+ }
+
+ if (timeout_prompt || helpt_promt) {
+ is_tts_send_ = true;
+ }
+
+ app->set_reset_global_properties_active(true);
+
+ if (vr_help_title || vr_help_items || menu_name || menu_icon
+ || is_key_board_properties) {
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if (vr_help_title || vr_help_items) {
+ smart_objects::SmartObject* vr_help = MessageHelper::CreateAppVrHelp(app);
+ if (!vr_help) {
+ return;
+ }
+ msg_params = *vr_help;
+ }
+ if (menu_name) {
+ msg_params[hmi_request::menu_title] = "";
+ }
+ //TODO(DT): clarify the sending parameter menuIcon
+ //if (menu_icon) {
+ //}
+ if (is_key_board_properties) {
+ smart_objects::SmartObject key_board_properties = smart_objects::
+ SmartObject(smart_objects::SmartType_Map);
+ key_board_properties[strings::language] = static_cast<int32_t>
+ (hmi_apis::Common_Language::EN_US);
+ key_board_properties[hmi_request::keyboard_layout] = static_cast<int32_t>
+ (hmi_apis::Common_KeyboardLayout::QWERTY);
+ key_board_properties[hmi_request::send_dynamic_entry] = false;
+
+ // Look for APPLINK-4432 for details.
+ /*smart_objects::SmartObject limited_character_list = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+ limited_character_list[0] = "";
+ key_board_properties[hmi_request::limited_character_list] =
+ limited_character_list;*/
+
+ key_board_properties[hmi_request::auto_complete_text] = "";
+ msg_params[hmi_request::keyboard_properties] = key_board_properties;
+ }
+
+ msg_params[strings::app_id] = app->app_id();
+ SendHMIRequest(hmi_apis::FunctionID::UI_SetGlobalProperties,
+ &msg_params, true);
+ }
+
+ if (timeout_prompt || helpt_promt) {
+ // create ui request
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if (helpt_promt) {
+ msg_params[strings::help_prompt] = (*app->help_prompt());
+ }
+
+ if (timeout_prompt) {
+ msg_params[strings::timeout_prompt] = (*app->timeout_prompt());
+ }
+
+ msg_params[strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::TTS_SetGlobalProperties,
+ &msg_params, true);
+ }
+}
+
+bool ResetGlobalPropertiesRequest::ResetHelpPromt(
+ application_manager::ApplicationSharedPtr app) {
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "Null pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return false;
+ }
+
+ const std::vector<std::string>& help_prompt = profile::Profile::instance()
+ ->help_prompt();
+
+ smart_objects::SmartObject so_help_prompt = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+
+ for (uint32_t i = 0; i < help_prompt.size(); ++i) {
+ smart_objects::SmartObject helpPrompt = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ helpPrompt[strings::text] = help_prompt[i];
+ helpPrompt[strings::type] = hmi_apis::Common_SpeechCapabilities::SC_TEXT;
+ so_help_prompt[i] = helpPrompt;
+ }
+
+ app->set_help_prompt(so_help_prompt);
+
+ return true;
+}
+
+bool ResetGlobalPropertiesRequest::ResetTimeoutPromt(
+ application_manager::ApplicationSharedPtr const app) {
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "Null pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return false;
+ }
+
+ const std::vector<std::string>& time_out_promt = profile::Profile::instance()
+ ->time_out_promt();
+
+ smart_objects::SmartObject so_time_out_promt = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+
+ for (uint32_t i = 0; i < time_out_promt.size(); ++i) {
+ smart_objects::SmartObject timeoutPrompt = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ timeoutPrompt[strings::text] = time_out_promt[i];
+ timeoutPrompt[strings::type] = hmi_apis::Common_SpeechCapabilities::SC_TEXT;
+ so_time_out_promt[i] = timeoutPrompt;
+ }
+
+ app->set_timeout_prompt(so_time_out_promt);
+
+ return true;
+}
+
+bool ResetGlobalPropertiesRequest::ResetVrHelpTitle(
+ application_manager::ApplicationSharedPtr const app) {
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "Null pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return false;
+ }
+ app->reset_vr_help_title();
+
+ return true;
+}
+
+bool ResetGlobalPropertiesRequest::ResetVrHelpItems(
+ application_manager::ApplicationSharedPtr const app) {
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "Null pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return false;
+ }
+ app->reset_vr_help();
+
+ return true;
+}
+
+void ResetGlobalPropertiesRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "ResetGlobalPropertiesRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_SetGlobalProperties: {
+ LOG4CXX_INFO(logger_, "Received UI_SetGlobalProperties event");
+ is_ui_received_ = true;
+ ui_result_ = static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_SetGlobalProperties: {
+ LOG4CXX_INFO(logger_, "Received TTS_SetGlobalProperties event");
+ is_tts_received_ = true;
+ tts_result_ = static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+
+ if (!IsPendingResponseExist()) {
+ bool result = ((hmi_apis::Common_Result::SUCCESS == ui_result_)
+ && (hmi_apis::Common_Result::SUCCESS == tts_result_ ||
+ hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == tts_result_))
+ || ((hmi_apis::Common_Result::SUCCESS == ui_result_)
+ && (hmi_apis::Common_Result::INVALID_ENUM == tts_result_))
+ || ((hmi_apis::Common_Result::INVALID_ENUM == ui_result_)
+ && (hmi_apis::Common_Result::SUCCESS == tts_result_));
+
+ mobile_apis::Result::eType result_code;
+ const char* return_info = NULL;
+
+ if (result) {
+ if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == tts_result_) {
+ result_code = mobile_apis::Result::WARNINGS;
+ return_info = std::string("Unsupported phoneme type sent in a prompt").c_str();
+ } else {
+ result_code = static_cast<mobile_apis::Result::eType>(
+ std::max(ui_result_, tts_result_));
+ }
+ } else {
+ result_code = static_cast<mobile_apis::Result::eType>(
+ std::max(ui_result_, tts_result_));
+ }
+
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(connection_key());
+ SendResponse(result, static_cast<mobile_apis::Result::eType>(result_code),
+ return_info, &(message[strings::msg_params]));
+ application->UpdateHash();
+ }
+}
+
+bool ResetGlobalPropertiesRequest::IsPendingResponseExist() {
+ return is_ui_send_ != is_ui_received_ || is_tts_send_ != is_tts_received_;
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc
new file mode 100644
index 000000000..aeacabf9d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/reset_global_properties_response.cc
@@ -0,0 +1,57 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/reset_global_properties_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ResetGlobalPropertiesResponse::ResetGlobalPropertiesResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+ResetGlobalPropertiesResponse::~ResetGlobalPropertiesResponse() {
+}
+
+void ResetGlobalPropertiesResponse::Run() {
+ LOG4CXX_INFO(logger_, "ResetGlobalPropertiesResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_request.cc
new file mode 100644
index 000000000..e949b9888
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_request.cc
@@ -0,0 +1,159 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/scrollable_message_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ScrollabelMessageRequest::ScrollabelMessageRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message),
+ result_(mobile_apis::Result::INVALID_ENUM) {
+
+ subscribe_on_event(hmi_apis::FunctionID::UI_OnResetTimeout);
+}
+
+ScrollabelMessageRequest::~ScrollabelMessageRequest() {
+}
+
+bool ScrollabelMessageRequest::Init() {
+
+ /* Timeout in milliseconds.
+ If omitted a standard value of 10000 milliseconds is used.*/
+ if ((*message_)[strings::msg_params].keyExists(strings::timeout)) {
+ default_timeout_ =
+ (*message_)[strings::msg_params][strings::timeout].asUInt();
+ } else {
+ const int32_t def_value = 30000;
+ default_timeout_ = def_value;
+ }
+
+ return true;
+}
+
+void ScrollabelMessageRequest::Run() {
+ LOG4CXX_INFO(logger_, "ScrollabelMessageRequest::Run");
+
+ ApplicationSharedPtr app = application_manager::ApplicationManagerImpl::instance()
+ ->application((*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ mobile_apis::Result::eType processing_result =
+ MessageHelper::ProcessSoftButtons((*message_)[strings::msg_params], app);
+
+ if (mobile_apis::Result::SUCCESS != processing_result) {
+ if (mobile_apis::Result::INVALID_DATA == processing_result) {
+ LOG4CXX_ERROR(logger_, "Wrong soft buttons parameters!");
+ SendResponse(false, processing_result);
+ return;
+ }
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) {
+ LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!");
+ result_ = processing_result;
+ }
+ }
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[hmi_request::message_text][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::SCROLLABLE_MSG_BODY);
+ msg_params[hmi_request::message_text][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::scroll_message_body];
+ msg_params[strings::app_id] = app->app_id();
+ msg_params[strings::timeout] = default_timeout_;
+
+ if ((*message_)[strings::msg_params].keyExists(strings::soft_buttons)) {
+ msg_params[strings::soft_buttons] =
+ (*message_)[strings::msg_params][strings::soft_buttons];
+ }
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_ScrollableMessage, &msg_params, true);
+}
+
+void ScrollabelMessageRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "ScrollabelMessageRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_OnResetTimeout: {
+ LOG4CXX_INFO(logger_, "Received UI_OnResetTimeout event");
+ ApplicationManagerImpl::instance()->updateRequestTimeout(connection_key(),
+ correlation_id(),
+ default_timeout());
+ break;
+ }
+ case hmi_apis::FunctionID::UI_ScrollableMessage: {
+ LOG4CXX_INFO(logger_, "Received UI_ScrollableMessage event");
+
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>
+ (message[strings::params][hmi_response::code].asInt());
+
+ bool result = false;
+ if (mobile_apis::Result::SUCCESS == result_code) {
+ result = true;
+ }
+ if (mobile_apis::Result::ABORTED == result_code) {
+ result = true;
+ } else
+
+ if (mobile_apis::Result::INVALID_ENUM != result_) {
+ result_code = result_;
+ }
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_,"Received unknown event" << event.id());
+ break;
+ }
+ }
+}
+
+} // namespace commands
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_response.cc
new file mode 100644
index 000000000..45a8e991f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/scrollable_message_response.cc
@@ -0,0 +1,55 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/scrollable_message_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ScrollableMessageResponse::ScrollableMessageResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+void ScrollableMessageResponse::Run() {
+ LOG4CXX_INFO(logger_, "ScrollableMessageResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc
new file mode 100644
index 000000000..5ee701365
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_request.cc
@@ -0,0 +1,109 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/set_display_layout_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+
+namespace application_manager {
+
+namespace commands {
+
+SetDisplayLayoutRequest::SetDisplayLayoutRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+SetDisplayLayoutRequest::~SetDisplayLayoutRequest() {
+}
+
+void SetDisplayLayoutRequest::Run() {
+ LOG4CXX_INFO(logger_, "SetDisplayLayoutRequest::Run");
+
+ ApplicationConstSharedPtr app = ApplicationManagerImpl::instance()
+ ->application(connection_key());
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ (*message_)[strings::msg_params][strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_SetDisplayLayout,
+ &((*message_)[strings::msg_params]), true);
+
+}
+
+void SetDisplayLayoutRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "SetDisplayLayoutRequest::on_event");
+
+ const smart_objects::SmartObject& message = event.smart_object();
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_SetDisplayLayout: {
+ LOG4CXX_INFO(logger_, "Received UI_SetDisplayLayout event");
+
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ bool response_success = mobile_apis::Result::SUCCESS == result_code;
+ if (response_success) {
+ HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ if (message[strings::msg_params].keyExists(hmi_response::display_capabilities)) {
+ hmi_capabilities.set_display_capabilities(
+ message[strings::msg_params][hmi_response::display_capabilities]);
+ }
+
+ if (message[strings::msg_params].keyExists(
+ hmi_response::soft_button_capabilities)) {
+ hmi_capabilities.set_soft_button_capabilities(
+ message[strings::msg_params][hmi_response::soft_button_capabilities]);
+ }
+
+ }
+ SendResponse(response_success, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_,"Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_response.cc
new file mode 100644
index 000000000..51f8c1f35
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_display_layout_response.cc
@@ -0,0 +1,59 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/set_display_layout_response.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SetDisplayLayoutResponse::SetDisplayLayoutResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+SetDisplayLayoutResponse::~SetDisplayLayoutResponse() {
+}
+
+void SetDisplayLayoutResponse::Run() {
+ LOG4CXX_INFO(logger_, "SetDisplayLayoutResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc
new file mode 100644
index 000000000..cfb4be5af
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_request.cc
@@ -0,0 +1,350 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <algorithm>
+#include "application_manager/commands/mobile/set_global_properties_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SetGlobalPropertiesRequest::SetGlobalPropertiesRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message),
+ is_ui_send_(false),
+ is_tts_send_(false),
+ is_ui_received_(false),
+ is_tts_received_(false),
+ ui_result_(hmi_apis::Common_Result::INVALID_ENUM),
+ tts_result_(hmi_apis::Common_Result::INVALID_ENUM) {
+}
+
+SetGlobalPropertiesRequest::~SetGlobalPropertiesRequest() {
+}
+
+void SetGlobalPropertiesRequest::Run() {
+ LOG4CXX_INFO(logger_, "SetGlobalPropertiesRequest::Run");
+
+ const smart_objects::SmartObject& msg_params =
+ (*message_)[strings::msg_params];
+
+ uint32_t app_id =
+ (*message_)[strings::params][strings::connection_key].asUInt();
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "No application associated with session key");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (!ValidateConditionalMandatoryParameters(msg_params)) {
+ SendResponse(false,
+ mobile_apis::Result::INVALID_DATA,
+ "There are no parameters present in request.");
+ return;
+ }
+
+ // Check for image file(s) in vrHelpItem
+ mobile_apis::Result::eType verification_result =
+ MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app);
+
+ if (mobile_apis::Result::SUCCESS != verification_result) {
+ LOG4CXX_ERROR_EXT(
+ logger_,
+ "MessageHelper::VerifyImageFiles return " << verification_result);
+ SendResponse(false, verification_result);
+ return;
+ }
+
+
+ bool is_help_prompt_present = msg_params.keyExists(strings::help_prompt);
+ bool is_timeout_prompt_present = msg_params.keyExists(
+ strings::timeout_prompt);
+ bool is_vr_help_title_present = msg_params.keyExists(strings::vr_help_title);
+ bool is_vr_help_present = msg_params.keyExists(strings::vr_help);
+ bool is_menu_title_present = msg_params.keyExists(hmi_request::menu_title);
+ bool is_menu_icon_present = msg_params.keyExists(hmi_request::menu_icon);
+ bool is_keyboard_props_present =
+ msg_params.keyExists(hmi_request::keyboard_properties);
+
+ // Media-only applications support API v2.1 with less parameters
+ if (!app->allowed_support_navigation() &&
+ (is_keyboard_props_present ||
+ is_menu_icon_present ||
+ is_menu_title_present)
+ ) {
+ const std::string app_type =
+ app->is_media_application() ? "media" : "non-media";
+
+ const std::string message =
+ "There are too many parameters for "+app_type+" application.";
+ SendResponse(false,
+ mobile_apis::Result::INVALID_DATA,
+ message.c_str());
+ return;
+ }
+
+ if ((is_vr_help_title_present && is_vr_help_present) ||
+ (!is_vr_help_title_present && !is_vr_help_present)) {
+ is_ui_send_ = true;
+ }
+
+ if (is_help_prompt_present || is_timeout_prompt_present) {
+ is_tts_send_ = true;
+ }
+
+ if (is_vr_help_title_present && is_vr_help_present) {
+ // check vrhelpitem position index
+ if (!CheckVrHelpItemsOrder()) {
+ LOG4CXX_ERROR(logger_, "Request rejected");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ app->set_vr_help_title(
+ msg_params.getElement(strings::vr_help_title));
+ app->set_vr_help(
+ msg_params.getElement(strings::vr_help));
+
+ smart_objects::SmartObject params =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ params[strings::vr_help_title] = (*app->vr_help_title());
+ params[strings::vr_help] = (*app->vr_help());
+ params[strings::app_id] = app->app_id();
+ if (is_menu_title_present) {
+
+ params[hmi_request::menu_title] =
+ msg_params[hmi_request::menu_title].asString();
+ }
+ if (is_menu_icon_present) {
+
+ params[hmi_request::menu_icon] =
+ msg_params[hmi_request::menu_icon];
+ }
+ if (is_keyboard_props_present) {
+
+ params[hmi_request::keyboard_properties] =
+ msg_params[hmi_request::keyboard_properties];
+ }
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_SetGlobalProperties,
+ &params, true);
+ } else if (!is_vr_help_title_present && !is_vr_help_present) {
+ const CommandsMap& cmdMap = app->commands_map();
+ CommandsMap::const_iterator command_it = cmdMap.begin();
+
+ int32_t index = 0;
+ smart_objects::SmartObject vr_help_items;
+ for (; cmdMap.end() != command_it; ++command_it) {
+ if (false == (*command_it->second).keyExists(strings::vr_commands)) {
+ LOG4CXX_ERROR(logger_, "VR synonyms are empty");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+ // use only first
+ vr_help_items[index][strings::position] = (index + 1);
+ vr_help_items[index++][strings::text] =
+ (*command_it->second)[strings::vr_commands][0];
+ }
+
+ app->set_vr_help_title(smart_objects::SmartObject(app->name()));
+ app->set_vr_help(vr_help_items);
+
+ smart_objects::SmartObject params =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ params[strings::vr_help_title] = (*app->vr_help_title());
+ params[strings::vr_help] = (*app->vr_help());
+ params[strings::app_id] = app->app_id();
+ if (is_menu_title_present) {
+
+ params[hmi_request::menu_title] =
+ msg_params[hmi_request::menu_title].asString();
+ }
+ if (is_menu_icon_present) {
+
+ params[hmi_request::menu_icon] =
+ msg_params[hmi_request::menu_icon];
+ }
+ if (is_keyboard_props_present) {
+
+ params[hmi_request::keyboard_properties] =
+ msg_params[hmi_request::keyboard_properties];
+ }
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_SetGlobalProperties,
+ &params, true);
+ } else {
+ LOG4CXX_ERROR(logger_, "Request rejected");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ // check TTS params
+ if (is_help_prompt_present || is_timeout_prompt_present) {
+ smart_objects::SmartObject params =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ if (is_help_prompt_present) {
+ app->set_help_prompt(
+ msg_params.getElement(strings::help_prompt));
+ params[strings::help_prompt] = (*app->help_prompt());
+ }
+
+ if (is_timeout_prompt_present) {
+ app->set_timeout_prompt(
+ msg_params.getElement(strings::timeout_prompt));
+ params[strings::timeout_prompt] = (*app->timeout_prompt());
+ }
+
+ params[strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::TTS_SetGlobalProperties,
+ &params, true);
+ }
+}
+
+bool SetGlobalPropertiesRequest::CheckVrHelpItemsOrder() {
+ const smart_objects::SmartObject vr_help = (*message_)[strings::msg_params]
+ .getElement(strings::vr_help);
+
+ // vr help item start position must be 1
+ const uint32_t vr_help_item_start_position = 1;
+
+ if (vr_help_item_start_position !=
+ vr_help.getElement(0).getElement(strings::position).asUInt()) {
+ LOG4CXX_ERROR(logger_, "VR help items start position is wrong");
+ return false;
+ }
+
+ // Check if VR Help Items contains sequential positionss
+ size_t i = 0;
+ for (size_t j = 1; j < vr_help.length(); ++i, ++j) {
+ if ((vr_help.getElement(i).getElement(strings::position).asInt() + 1)
+ != vr_help.getElement(j).getElement(strings::position).asInt()) {
+ LOG4CXX_ERROR(logger_, "VR help items order is wrong");
+ return false;
+ }
+ }
+
+ return true;
+}
+
+void SetGlobalPropertiesRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "SetGlobalPropertiesRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(CommandRequestImpl::connection_key());
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_SetGlobalProperties: {
+ LOG4CXX_INFO(logger_, "Received UI_SetGlobalProperties event");
+ is_ui_received_ = true;
+ ui_result_ = static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_SetGlobalProperties: {
+ LOG4CXX_INFO(logger_, "Received TTS_SetGlobalProperties event");
+ is_tts_received_ = true;
+ tts_result_ = static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+
+ if (!IsPendingResponseExist()) {
+ bool result = ((hmi_apis::Common_Result::SUCCESS == ui_result_)
+ && (hmi_apis::Common_Result::SUCCESS == tts_result_ ||
+ hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == tts_result_))
+ || ((hmi_apis::Common_Result::SUCCESS == ui_result_)
+ && (hmi_apis::Common_Result::INVALID_ENUM == tts_result_))
+ || ((hmi_apis::Common_Result::INVALID_ENUM == ui_result_)
+ && (hmi_apis::Common_Result::SUCCESS == tts_result_));
+
+ mobile_apis::Result::eType result_code;
+ const char* return_info = NULL;
+
+ if (result) {
+ if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE == tts_result_) {
+ result_code = mobile_apis::Result::WARNINGS;
+ return_info =
+ std::string("Unsupported phoneme type sent in a prompt").c_str();
+ } else {
+ result_code = static_cast<mobile_apis::Result::eType>(
+ std::max(ui_result_, tts_result_));
+ }
+ } else {
+ result_code = static_cast<mobile_apis::Result::eType>(
+ std::max(ui_result_, tts_result_));
+ }
+
+ ApplicationSharedPtr application =
+ ApplicationManagerImpl::instance()->application(connection_key());
+ SendResponse(result, static_cast<mobile_apis::Result::eType>(result_code),
+ return_info, &(message[strings::msg_params]));
+ application->UpdateHash();
+ }
+}
+
+bool SetGlobalPropertiesRequest::IsPendingResponseExist() {
+
+ return is_ui_send_ != is_ui_received_ || is_tts_send_ != is_tts_received_;
+}
+
+bool SetGlobalPropertiesRequest::ValidateConditionalMandatoryParameters(
+ const smart_objects::SmartObject& params) {
+ return params.keyExists(strings::help_prompt)
+ || params.keyExists(strings::timeout_prompt)
+ || params.keyExists(strings::vr_help_title)
+ || params.keyExists(strings::vr_help)
+ || params.keyExists(strings::menu_title)
+ || params.keyExists(strings::menu_icon)
+ || params.keyExists(strings::keyboard_properties);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_response.cc
new file mode 100644
index 000000000..5f0b62fb4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_global_properties_response.cc
@@ -0,0 +1,58 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/set_global_properties_response.h"
+#include "application_manager/application_manager_impl.h"
+
+
+namespace application_manager {
+
+namespace commands {
+
+SetGlobalPropertiesResponse::SetGlobalPropertiesResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+SetGlobalPropertiesResponse::~SetGlobalPropertiesResponse() {
+}
+
+void SetGlobalPropertiesResponse::Run() {
+ LOG4CXX_INFO(logger_, "SetGlobalPropertiesResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_request.cc
new file mode 100644
index 000000000..73dc1bd0f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_request.cc
@@ -0,0 +1,139 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/set_icon_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+#include "utils/file_system.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SetIconRequest::SetIconRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+SetIconRequest::~SetIconRequest() {
+}
+
+void SetIconRequest::Run() {
+ LOG4CXX_INFO(logger_, "SetIconRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ const std::string& sync_file_name =
+ (*message_)[strings::msg_params][strings::sync_file_name].asString();
+
+ std::string relative_file_path = app->name();
+ relative_file_path += "/";
+ relative_file_path += sync_file_name;
+
+ std::string full_file_path = file_system::FullPath(relative_file_path);
+
+ if (!file_system::FileExists(full_file_path)) {
+ LOG4CXX_ERROR(logger_, "No such file");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[strings::app_id] = app->app_id();
+ msg_params[strings::sync_file_name] = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ const std::string full_file_path_for_hmi = file_system::ConvertPathForURL(
+ full_file_path);
+
+ msg_params[strings::sync_file_name][strings::value] = full_file_path_for_hmi;
+
+ // TODO(VS): research why is image_type hardcoded
+ msg_params[strings::sync_file_name][strings::image_type] =
+ static_cast<int32_t> (SetIconRequest::ImageType::DYNAMIC);
+
+ // for further use in on_event function
+ (*message_)[strings::msg_params][strings::sync_file_name] =
+ msg_params[strings::sync_file_name];
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_SetAppIcon, &msg_params, true);
+}
+
+void SetIconRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "SetIconRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_SetAppIcon: {
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+
+ if (result) {
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ connection_key());
+
+ const std::string path = (*message_)[strings::msg_params]
+ [strings::sync_file_name]
+ [strings::value].asString();
+ app->set_app_icon_path(path);
+
+ LOG4CXX_INFO(logger_,
+ "Icon path was set to '" << app->app_icon_path() << "'");
+ }
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_response.cc
new file mode 100644
index 000000000..f1580823d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_icon_response.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/set_icon_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SetIconResponse::SetIconResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+SetIconResponse::~SetIconResponse() {
+}
+
+void SetIconResponse::Run() {
+ LOG4CXX_INFO(logger_, "SetIconResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc
new file mode 100644
index 000000000..7daddce7a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_request.cc
@@ -0,0 +1,149 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/set_media_clock_timer_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SetMediaClockRequest::SetMediaClockRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+SetMediaClockRequest::~SetMediaClockRequest() {
+}
+
+void SetMediaClockRequest::Run() {
+ LOG4CXX_INFO(logger_, "SetMediaClockRequest::Run");
+
+ uint32_t app_id = (*message_)[strings::params][strings::connection_key]
+ .asUInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+
+ if (!app) {
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ return;
+ }
+
+ if (!app->is_media_application()) {
+ LOG4CXX_ERROR(logger_, "Application is not media application");
+ SendResponse(false, mobile_apis::Result::REJECTED);
+ return;
+ }
+
+ if (isDataValid()) {
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ // copy entirely msg
+ msg_params = (*message_)[strings::msg_params];
+ msg_params[strings::app_id] = app->app_id();
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_SetMediaClockTimer, &msg_params, true);
+ } else {
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ }
+}
+
+void SetMediaClockRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "SetMediaClockRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_SetMediaClockTimer: {
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+ }
+}
+
+bool SetMediaClockRequest::isDataValid() {
+ if (!(*message_)[strings::msg_params].keyExists(strings::start_time)
+ && ((*message_)[strings::msg_params][strings::update_mode]
+ == mobile_apis::UpdateMode::COUNTUP
+ || (*message_)[strings::msg_params][strings::update_mode]
+ == mobile_apis::UpdateMode::COUNTDOWN)) {
+ LOG4CXX_INFO(logger_, "Data is invalid");
+ return false;
+ } else if (((*message_)[strings::msg_params].keyExists(strings::start_time))
+ && ((*message_)[strings::msg_params][strings::update_mode]
+ == mobile_apis::UpdateMode::COUNTUP
+ || (*message_)[strings::msg_params][strings::update_mode]
+ == mobile_apis::UpdateMode::COUNTDOWN) &&
+ ((*message_)[strings::msg_params].keyExists(strings::end_time))) {
+ unsigned int start_time_in_seconds = 0;
+ unsigned int end_time_in_seconds = 0;
+ start_time_in_seconds = ((*message_)[strings::msg_params]
+ [strings::start_time][strings::hours].asUInt()) * 3600;
+ start_time_in_seconds += ((*message_)[strings::msg_params]
+ [strings::start_time][strings::minutes].asUInt()) * 60;
+ start_time_in_seconds += ((*message_)[strings::msg_params]
+ [strings::start_time][strings::seconds].asUInt());
+ end_time_in_seconds = ((*message_)[strings::msg_params]
+ [strings::end_time][strings::hours].asUInt()) * 3600;
+ end_time_in_seconds += ((*message_)[strings::msg_params]
+ [strings::end_time][strings::minutes].asUInt()) * 60;
+ end_time_in_seconds += ((*message_)[strings::msg_params]
+ [strings::end_time][strings::seconds].asUInt());
+ if (((end_time_in_seconds > start_time_in_seconds) &&
+ ((*message_)[strings::msg_params][strings::update_mode] ==
+ mobile_apis::UpdateMode::COUNTDOWN)) ||
+ ((end_time_in_seconds < start_time_in_seconds) &&
+ ((*message_)[strings::msg_params][strings::update_mode] ==
+ mobile_apis::UpdateMode::COUNTUP))) {
+ LOG4CXX_INFO(logger_, "Data is invalid");
+ return false;
+ }
+ }
+ LOG4CXX_INFO(logger_, "Data is valid");
+ return true;
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc
new file mode 100644
index 000000000..73923b002
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/set_media_clock_timer_response.cc
@@ -0,0 +1,57 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/set_media_clock_timer_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SetMediaClockTimerResponse::SetMediaClockTimerResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+SetMediaClockTimerResponse::~SetMediaClockTimerResponse() {
+}
+
+void SetMediaClockTimerResponse::Run() {
+ LOG4CXX_INFO(logger_, "SetMediaClockTimerResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc
new file mode 100644
index 000000000..27cb9f52a
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_request.cc
@@ -0,0 +1,192 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/show_constant_tbt_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ShowConstantTBTRequest::ShowConstantTBTRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message),
+ result_(mobile_apis::Result::INVALID_ENUM) {
+}
+
+ShowConstantTBTRequest::~ShowConstantTBTRequest() {
+}
+
+void ShowConstantTBTRequest::Run() {
+ LOG4CXX_INFO(logger_, "ShowConstantTBTRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!app) {
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ return;
+ }
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params = (*message_)[strings::msg_params];
+
+ // TODO(DK): Missing mandatory param
+ if (!msg_params.keyExists(strings::soft_buttons)) {
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ LOG4CXX_ERROR(logger_, "INVALID_DATA");
+ return;
+ }
+
+ mobile_apis::Result::eType processing_result =
+ MessageHelper::ProcessSoftButtons(msg_params, app);
+
+ if (mobile_apis::Result::SUCCESS != processing_result) {
+ if (mobile_apis::Result::INVALID_DATA == processing_result) {
+ LOG4CXX_ERROR(logger_, "INVALID_DATA!");
+ SendResponse(false, processing_result);
+ return;
+ }
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) {
+ LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!");
+ result_ = processing_result;
+ }
+ }
+
+ mobile_apis::Result::eType verification_result =
+ MessageHelper::VerifyImageFiles(msg_params, app);
+
+ if (mobile_apis::Result::SUCCESS != verification_result) {
+ if (mobile_apis::Result::INVALID_DATA == verification_result) {
+ LOG4CXX_ERROR(logger_, "VerifyImageFiles INVALID_DATA!");
+ SendResponse(false, verification_result);
+ return;
+ }
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE == verification_result) {
+ LOG4CXX_ERROR(logger_, "VerifyImageFiles UNSUPPORTED_RESOURCE!");
+ result_ = verification_result;
+ }
+ }
+
+ msg_params[strings::app_id] = app->app_id();
+
+ msg_params[hmi_request::navi_texts] = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+
+ int32_t index = 0;
+ if (msg_params.keyExists(strings::navigation_text_1)) {
+ // erase useless parametr
+ msg_params.erase(strings::navigation_text_1);
+ msg_params[hmi_request::navi_texts][index][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::NAVI_TEXT1);
+ msg_params[hmi_request::navi_texts][index++][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::navigation_text_1];
+ }
+
+ if (msg_params.keyExists(strings::navigation_text_2)) {
+ // erase useless param
+ msg_params.erase(strings::navigation_text_2);
+ msg_params[hmi_request::navi_texts][index][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::NAVI_TEXT2);
+ msg_params[hmi_request::navi_texts][index++][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::navigation_text_2];
+ }
+
+ if (msg_params.keyExists(strings::eta)) {
+ // erase useless param
+ msg_params.erase(strings::eta);
+ msg_params[hmi_request::navi_texts][index][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::ETA);
+ msg_params[hmi_request::navi_texts][index++][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::eta];
+ }
+
+ if (msg_params.keyExists(strings::total_distance)) {
+ // erase useless param
+ msg_params.erase(strings::total_distance);
+ msg_params[hmi_request::navi_texts][index][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::TOTAL_DISTANCE);
+ msg_params[hmi_request::navi_texts][index++][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::total_distance];
+ }
+
+ if (msg_params.keyExists(strings::time_to_destination)) {
+ // erase useless param
+ msg_params.erase(strings::time_to_destination);
+ msg_params[hmi_request::navi_texts][index][hmi_request::field_name] =
+ static_cast<int32_t>(hmi_apis::Common_TextFieldName::timeToDestination);
+ msg_params[hmi_request::navi_texts][index++][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::time_to_destination];
+ }
+
+ app->set_tbt_show_command(msg_params);
+ SendHMIRequest(hmi_apis::FunctionID::Navigation_ShowConstantTBT, &msg_params,
+ true);
+}
+
+
+void ShowConstantTBTRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "ShowConstantTBTRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::Navigation_ShowConstantTBT: {
+ LOG4CXX_INFO(logger_, "Received Navigation_ShowConstantTBT event");
+
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+ if (mobile_apis::Result::INVALID_ENUM != result_) {
+ result_code = result_;
+ }
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_,"Received unknown event" << event.id());
+ break;
+ }
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc
new file mode 100644
index 000000000..d5539d148
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/show_constant_tbt_response.cc
@@ -0,0 +1,58 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/show_constant_tbt_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ShowConstantTBTResponse::ShowConstantTBTResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+ShowConstantTBTResponse::~ShowConstantTBTResponse() {
+}
+
+void ShowConstantTBTResponse::Run() {
+ LOG4CXX_INFO(logger_, "ShowConstantTBTResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/show_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/show_request.cc
new file mode 100644
index 000000000..bde57429e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/show_request.cc
@@ -0,0 +1,261 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/show_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application.h"
+#include "application_manager/message_helper.h"
+#include "utils/file_system.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ShowRequest::ShowRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message),
+ result_(mobile_apis::Result::INVALID_ENUM) {
+}
+
+ShowRequest::~ShowRequest() {
+}
+
+void ShowRequest::Run() {
+ LOG4CXX_INFO(logger_, "ShowRequest::Run");
+
+ ApplicationSharedPtr app = application_manager::ApplicationManagerImpl::instance()
+ ->application(
+ (*message_)[strings::params][strings::connection_key].asInt());
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(
+ logger_, "An application " << app->name() << " is not registered.");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ mobile_apis::Result::eType processing_result =
+ MessageHelper::ProcessSoftButtons((*message_)[strings::msg_params], app);
+
+ if (mobile_apis::Result::SUCCESS != processing_result) {
+ if (mobile_apis::Result::INVALID_DATA == processing_result) {
+ LOG4CXX_ERROR(logger_, "INVALID_DATA!");
+ SendResponse(false, processing_result);
+ return;
+ }
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) {
+ LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!");
+ result_ = processing_result;
+ }
+ }
+
+ mobile_apis::Result::eType verification_result =
+ MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app);
+
+ if (mobile_apis::Result::SUCCESS != verification_result) {
+ if (mobile_apis::Result::INVALID_DATA == verification_result) {
+ LOG4CXX_ERROR(logger_, "VerifyImageFiles INVALID_DATA!");
+ SendResponse(false, verification_result);
+ return;
+ }
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE == verification_result) {
+ LOG4CXX_ERROR(logger_, "VerifyImageFiles UNSUPPORTED_RESOURCE!");
+ result_ = verification_result;
+ }
+ }
+
+ if (!CheckMenuFieldsNames()) {
+ LOG4CXX_ERROR(logger_, "Bad menu name");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::app_id] = app->app_id();
+
+ msg_params[hmi_request::show_strings] = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+
+ int32_t index = 0;
+ if ((*message_)[strings::msg_params].keyExists(strings::main_field_1)) {
+ msg_params[hmi_request::show_strings][index][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::MAIN_FILED1);
+ msg_params[hmi_request::show_strings][index][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::main_field_1];
+ ++index;
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::main_field_2)) {
+ msg_params[hmi_request::show_strings][index][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::MAIN_FILED2);
+ msg_params[hmi_request::show_strings][index][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::main_field_2];
+ ++index;
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::main_field_3)) {
+ msg_params[hmi_request::show_strings][index][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::MAIN_FILED3);
+ msg_params[hmi_request::show_strings][index][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::main_field_3];
+ ++index;
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::main_field_4)) {
+ msg_params[hmi_request::show_strings][index][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::MAIN_FILED4);
+ msg_params[hmi_request::show_strings][index][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::main_field_4];
+ ++index;
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::media_clock)) {
+ msg_params[hmi_request::show_strings][index][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::MEDIA_CLOCK);
+ msg_params[hmi_request::show_strings][index][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::media_clock];
+ ++index;
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::media_track)) {
+ msg_params[hmi_request::show_strings][index][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::MEDIA_TRACK);
+ msg_params[hmi_request::show_strings][index][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::media_track];
+ ++index;
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::status_bar)) {
+ msg_params[hmi_request::show_strings][index][hmi_request::field_name] =
+ static_cast<int32_t>(application_manager::TextFieldName::STATUS_BAR);
+ msg_params[hmi_request::show_strings][index][hmi_request::field_text] =
+ (*message_)[strings::msg_params][strings::status_bar];
+ ++index;
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::alignment)) {
+ msg_params[strings::alignment] =
+ (*message_)[strings::msg_params][strings::alignment];
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::graphic)) {
+ msg_params[strings::graphic] =
+ (*message_)[strings::msg_params][strings::graphic];
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::secondary_graphic)) {
+ msg_params[strings::secondary_graphic] =
+ (*message_)[strings::msg_params][strings::secondary_graphic];
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::soft_buttons)) {
+ msg_params[strings::soft_buttons] =
+ (*message_)[strings::msg_params][strings::soft_buttons];
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::custom_presets)) {
+ msg_params[strings::custom_presets] =
+ (*message_)[strings::msg_params][strings::custom_presets];
+ }
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_Show, &msg_params, true);
+
+ MessageSharedPtr persistentData = new smart_objects::SmartObject(msg_params);
+ app->set_show_command(*persistentData);
+}
+
+void ShowRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "ShowRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::UI_Show: {
+ LOG4CXX_INFO(logger_, "Received UI_Show event");
+
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+ if (mobile_apis::Result::INVALID_ENUM != result_) {
+ result_code = result_;
+ }
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_,"Received unknown event" << event.id());
+ break;
+ }
+ }
+}
+
+bool ShowRequest::CheckMenuFieldsNames() {
+ if ((*message_)[strings::msg_params].keyExists(strings::main_field_4)) {
+ const std::string& str = (*message_)[strings::msg_params]
+ [strings::main_field_4].asString();
+ if (!CheckSyntax(str, true)) {
+ LOG4CXX_INFO(logger_, "main_field_4 syntax check failed");
+ return false;
+ }
+ }
+ if ((*message_)[strings::msg_params].keyExists(strings::main_field_3)) {
+ const std::string& str = (*message_)[strings::msg_params]
+ [strings::main_field_3].asString();
+ if (!CheckSyntax(str, true)) {
+ LOG4CXX_INFO(logger_, "main_field_3 syntax check failed");
+ return false;
+ }
+ }
+ if ((*message_)[strings::msg_params].keyExists(strings::main_field_2)) {
+ const std::string& str = (*message_)[strings::msg_params]
+ [strings::main_field_2].asString();
+ if (!CheckSyntax(str, true)) {
+ LOG4CXX_INFO(logger_, "main_field_2 syntax check failed");
+ return false;
+ }
+ }
+ if ((*message_)[strings::msg_params].keyExists(strings::main_field_1)) {
+ const std::string& str = (*message_)[strings::msg_params]
+ [strings::main_field_1].asString();
+ if (!CheckSyntax(str, true)) {
+ LOG4CXX_INFO(logger_, "main_field_1 syntax check failed");
+ return false;
+ }
+ }
+ return true;
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/show_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/show_response.cc
new file mode 100644
index 000000000..1f9c59c6f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/show_response.cc
@@ -0,0 +1,58 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/show_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+ShowResponse::ShowResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+ShowResponse::~ShowResponse() {
+}
+
+void ShowResponse::Run() {
+ LOG4CXX_INFO(logger_, "ShowResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/slider_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/slider_request.cc
new file mode 100644
index 000000000..6e0646262
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/slider_request.cc
@@ -0,0 +1,148 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/slider_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SliderRequest::SliderRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+ subscribe_on_event(hmi_apis::FunctionID::UI_OnResetTimeout);
+}
+
+SliderRequest::~SliderRequest() {
+}
+
+bool SliderRequest::Init() {
+
+ /* Timeout in milliseconds.
+ If omitted a standard value of 10000 milliseconds is used.*/
+ if ((*message_)[strings::msg_params].keyExists(strings::timeout)) {
+ default_timeout_ =
+ (*message_)[strings::msg_params][strings::timeout].asUInt();
+ }
+
+ return true;
+}
+
+void SliderRequest::Run() {
+ LOG4CXX_INFO(logger_, "SliderRequest::Run");
+
+ ApplicationSharedPtr application =
+ application_manager::ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if ((*message_)[strings::msg_params][strings::num_ticks].asInt()
+ < (*message_)[strings::msg_params][strings::position].asInt()) {
+ LOG4CXX_ERROR(logger_, "INVALID_DATA");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ if ((*message_)[strings::msg_params].keyExists(strings::slider_footer)) {
+ if (1 < (*message_)[strings::msg_params][strings::slider_footer].length()) {
+ if ((*message_)[strings::msg_params][strings::num_ticks].asInt()
+ != (*message_)[strings::msg_params]
+ [strings::slider_footer].length()) {
+ LOG4CXX_ERROR(logger_, "INVALID_DATA");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+ }
+ }
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params = (*message_)[strings::msg_params];
+ msg_params[strings::app_id] = application->app_id();
+
+ if (!(*message_)[strings::msg_params].keyExists(strings::timeout)) {
+ msg_params[strings::timeout] = default_timeout_;
+ }
+
+ SendHMIRequest(hmi_apis::FunctionID::UI_Slider, &msg_params, true);
+}
+
+void SliderRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "SliderRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ const event_engine::Event::EventID event_id = event.id();
+ if (event_id == hmi_apis::FunctionID::UI_OnResetTimeout) {
+ LOG4CXX_INFO(logger_, "Received UI_OnResetTimeout event");
+ ApplicationManagerImpl::instance()->updateRequestTimeout(connection_key(),
+ correlation_id(),
+ default_timeout());
+ return;
+ }
+ if (event_id != hmi_apis::FunctionID::UI_Slider) {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ return;
+ }
+
+ //event_id == hmi_apis::FunctionID::UI_Slider:
+ LOG4CXX_INFO(logger_, "Received UI_Slider event");
+
+ const int response_code =
+ message[strings::params][hmi_response::code].asInt();
+
+ smart_objects::SmartObject response_msg_params = message[strings::msg_params];
+ if (response_code == hmi_apis::Common_Result::ABORTED)
+ //Copy slider_position info to msg_params section
+ response_msg_params[strings::slider_position] =
+ message[strings::params][strings::data][strings::slider_position];
+
+ const bool is_response_success =
+ (mobile_apis::Result::SUCCESS == response_code) ||
+ //Aborted has slider_position data
+ (mobile_apis::Result::ABORTED == response_code);
+
+ SendResponse(is_response_success,
+ mobile_apis::Result::eType(response_code),
+ 0,
+ &response_msg_params);
+}
+
+} // namespace commands
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/slider_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/slider_response.cc
new file mode 100644
index 000000000..bfb6b0a1e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/slider_response.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/slider_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SliderResponse::SliderResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+SliderResponse::~SliderResponse() {
+}
+
+void SliderResponse::Run() {
+ LOG4CXX_INFO(logger_, "SliderResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/speak_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/speak_request.cc
new file mode 100644
index 000000000..05e4b2310
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/speak_request.cc
@@ -0,0 +1,120 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/speak_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SpeakRequest::SpeakRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+SpeakRequest::~SpeakRequest() {
+}
+
+void SpeakRequest::Run() {
+ LOG4CXX_INFO(logger_, "SpeakRequest::Run");
+
+ ApplicationSharedPtr app = application_manager::ApplicationManagerImpl::instance()
+ ->application(connection_key());
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ (*message_)[strings::msg_params][strings::app_id] = app->app_id();
+ SendHMIRequest(hmi_apis::FunctionID::TTS_Speak,
+ &message_->getElement(strings::msg_params), true);
+}
+
+void SpeakRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "SpeakRequest::on_event");
+ switch (event.id()) {
+ case hmi_apis::FunctionID::TTS_Speak: {
+ LOG4CXX_INFO(logger_, "Received TTS_Speak event");
+
+ ProcessTTSSpeakResponse(event.smart_object());
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_, "Received unknown event" << event.id());
+ break;
+ }
+ }
+}
+
+void SpeakRequest::ProcessTTSSpeakResponse(
+ const smart_objects::SmartObject& message) {
+ LOG4CXX_INFO(logger_, "SpeakRequest::ProcessTTSSpeakResponse");
+ ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(
+ connection_key());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ return;
+ }
+
+ bool result = false;
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+ if (hmi_apis::Common_Result::SUCCESS ==
+ static_cast<hmi_apis::Common_Result::eType>(result_code)) {
+ result = true;
+ }
+ (*message_)[strings::params][strings::function_id] =
+ mobile_apis::FunctionID::SpeakID;
+
+ const char* return_info = NULL;
+
+ if (result) {
+ if (hmi_apis::Common_Result::UNSUPPORTED_RESOURCE ==
+ static_cast<hmi_apis::Common_Result::eType>(result_code)) {
+ result_code = mobile_apis::Result::WARNINGS;
+ return_info = std::string("Unsupported phoneme type sent in a prompt").c_str();
+ }
+ }
+
+ SendResponse(result, static_cast<mobile_apis::Result::eType>(result_code),
+ return_info, &(message[strings::msg_params]));
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/speak_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/speak_response.cc
new file mode 100644
index 000000000..92b85bbb8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/speak_response.cc
@@ -0,0 +1,58 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/speak_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SpeakResponse::SpeakResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+SpeakResponse::~SpeakResponse() {
+}
+
+void SpeakResponse::Run() {
+ LOG4CXX_INFO(logger_, "SpeakResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_request.cc
new file mode 100644
index 000000000..9d014a25d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_request.cc
@@ -0,0 +1,80 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/subscribe_button_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace str = strings;
+
+SubscribeButtonRequest::SubscribeButtonRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+SubscribeButtonRequest::~SubscribeButtonRequest() {
+}
+
+void SubscribeButtonRequest::Run() {
+ LOG4CXX_INFO(logger_, "SubscribeButtonRequest::Run");
+
+ uint32_t app_id = (*message_)[strings::params][strings::connection_key].asUInt();
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "APPLICATION_NOT_REGISTERED");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ const uint32_t btn_id = ((*message_)[str::msg_params][str::button_name]
+ .asUInt());
+
+ if (app->IsSubscribedToButton(static_cast<mobile_apis::ButtonName::eType>(btn_id))) {
+ LOG4CXX_ERROR_EXT(logger_, "Already subscribed to button " << btn_id);
+ SendResponse(false, mobile_apis::Result::IGNORED);
+ return;
+ }
+
+ app->SubscribeToButton(static_cast<mobile_apis::ButtonName::eType>(btn_id));
+ SendResponse(true, mobile_apis::Result::SUCCESS);
+
+ app->UpdateHash();
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_response.cc
new file mode 100644
index 000000000..6253f8ca3
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_button_response.cc
@@ -0,0 +1,66 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/subscribe_button_response.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SubscribeButtonResponse::SubscribeButtonResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+SubscribeButtonResponse::~SubscribeButtonResponse() {
+}
+
+void SubscribeButtonResponse::Run() {
+ LOG4CXX_INFO(logger_, "SubscribeButtonResponse::Run");
+
+ // check if response false
+ if (true == (*message_)[strings::msg_params].keyExists(strings::success)) {
+ if ((*message_)[strings::msg_params][strings::success].asBool() == false) {
+ LOG4CXX_ERROR(logger_, "Success = false");
+ SendResponse(false);
+ return;
+ }
+ }
+
+ // TODO(DK): Some logic
+ SendResponse(true);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc
new file mode 100644
index 000000000..8c427bea1
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_request.cc
@@ -0,0 +1,276 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/subscribe_vehicle_data_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+
+namespace application_manager {
+namespace commands {
+
+SubscribeVehicleDataRequest::SubscribeVehicleDataRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+SubscribeVehicleDataRequest::~SubscribeVehicleDataRequest() {
+}
+
+#ifdef QT_HMI
+namespace {
+ struct Subrequest {
+ hmi_apis::FunctionID::eType func_id;
+ const char* str;
+ };
+ Subrequest subrequests[] = {
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeGps, strings::gps},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed, strings::speed},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeRpm, strings::rpm},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel, strings::fuel_level},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State, strings::fuel_level_state},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption, strings::instant_fuel_consumption},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature, strings::external_temp},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeVin, strings::vin},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribePrndl, strings::prndl},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure, strings::tire_pressure},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer, strings::odometer},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus, strings::belt_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation, strings::body_information},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus, strings::device_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking, strings::driver_braking},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus, strings::wiper_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus, strings::head_lamp_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque, strings::engine_torque},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition, strings::acc_pedal_pos},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle, strings::steering_wheel_angle},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo, strings::e_call_info},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus, strings::airbag_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent, strings::emergency_event},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus, strings::cluster_mode_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey, strings::my_key},
+ };
+}
+#endif // #ifdef QT_HMI
+
+void SubscribeVehicleDataRequest::Run() {
+ LOG4CXX_INFO(logger_, "SubscribeVehicleDataRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ CommandRequestImpl::connection_key());
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ // counter for items to subscribe
+ int32_t items_to_subscribe = 0;
+ // counter for subscribed items by application
+ int32_t subscribed_items = 0;
+
+ const VehicleData& vehicle_data = MessageHelper::vehicle_data();
+ VehicleData::const_iterator it = vehicle_data.begin();
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[strings::app_id] = app->app_id();
+
+ for (; vehicle_data.end() != it; ++it) {
+ std::string key_name = it->first;
+ if ((*message_)[strings::msg_params].keyExists(key_name)) {
+ bool is_key_enabled = (*message_)[strings::msg_params][key_name].asBool();
+ if (is_key_enabled) {
+ ++items_to_subscribe;
+ msg_params[key_name] = is_key_enabled;
+
+ VehicleDataType key_type = it->second;
+ if (app->SubscribeToIVI(static_cast<uint32_t>(key_type))) {
+ ++subscribed_items;
+ }
+ }
+ }
+ }
+
+ if (0 == items_to_subscribe) {
+ SendResponse(false,
+ mobile_apis::Result::INVALID_DATA,
+ "No data in the request");
+ return;
+ } else if (0 == subscribed_items) {
+ SendResponse(false,
+ mobile_apis::Result::IGNORED,
+ "Already subscribed on provided VehicleData");
+ return;
+ }
+#ifdef WEB_HMI
+ SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData,
+ &msg_params, true);
+#endif // #ifdef WEB_HMI
+
+#ifdef QT_HMI
+ //Generate list of subrequests
+ for (int i = 0; i < sizeof(subrequests) / sizeof(subrequests[0]); ++i) {
+ const Subrequest& sr = subrequests[i];
+ if (true == (*message_)[strings::msg_params].keyExists(sr.str)
+ && true == (*message_)[strings::msg_params][sr.str].asBool()) {
+ HmiRequest hmi_request;
+ hmi_request.str = sr.str;
+ hmi_request.func_id = sr.func_id;
+ hmi_request.complete = false;
+ hmi_requests_.push_back(hmi_request);
+ }
+ }
+ LOG4CXX_INFO(logger_, hmi_requests_.size() << " requests are going to be sent to HMI");
+
+ //Send subrequests
+ for (HmiRequests::const_iterator it = hmi_requests_.begin(); it != hmi_requests_.end(); ++it)
+ SendHMIRequest(it->func_id, &msg_params, true);
+#endif // #ifdef QT_HMI
+}
+
+void SubscribeVehicleDataRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "SubscribeVehicleDataRequest::on_event");
+
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ CommandRequestImpl::connection_key());
+
+#ifdef WEB_HMI
+ hmi_apis::Common_Result::eType hmi_result =
+ static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result =
+ hmi_result == hmi_apis::Common_Result::SUCCESS;
+
+ mobile_apis::Result::eType result_code =
+ hmi_result == hmi_apis::Common_Result::SUCCESS
+ ? mobile_apis::Result::SUCCESS
+ : static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ const char* return_info = NULL;
+ if (result) {
+ if (IsAnythingAlreadySubscribed()) {
+ result_code = mobile_apis::Result::WARNINGS;
+ return_info =
+ std::string("Unsupported phoneme type sent in a prompt").c_str();
+ }
+ }
+
+ SendResponse(result,
+ result_code,
+ return_info,
+ &(message[strings::msg_params]));
+ app->UpdateHash();
+#endif // #ifdef WEB_HMI
+#ifdef QT_HMI
+ for (HmiRequests::iterator it = hmi_requests_.begin();
+ it != hmi_requests_.end(); ++it) {
+ HmiRequest & hmi_request = *it;
+ if (hmi_request.func_id == event.id()) {
+ hmi_request.status =
+ static_cast<hmi_apis::Common_Result::eType>(message[strings::params][hmi_response::code]
+ .asInt());
+ if (hmi_apis::Common_Result::SUCCESS == hmi_request.status)
+ hmi_request.value = message[strings::msg_params][hmi_request.str];
+ hmi_request.complete = true;
+ break;
+ }
+ }
+ bool all_complete = true;
+ bool any_arg_success = false;
+ mobile_api::Result::eType status = mobile_api::Result::eType::SUCCESS;
+ for (HmiRequests::const_iterator it = hmi_requests_.begin();
+ it != hmi_requests_.end(); ++it) {
+ if (!it->complete) {
+ all_complete = false;
+ break;
+ }
+ if (hmi_apis::Common_Result::SUCCESS != it->status) {
+ if (mobile_api::Result::SUCCESS == status) {
+ status = static_cast<mobile_apis::Result::eType>(it->status);
+ } else if (status
+ != static_cast<mobile_apis::Result::eType>(it->status)) {
+ status = mobile_api::Result::eType::GENERIC_ERROR;
+ }
+ LOG4CXX_TRACE(logger_, "Status from HMI: " << it->status <<
+ ", so response status become " << status);
+ } else {
+ any_arg_success = true;
+ }
+ }
+
+ if (all_complete) {
+ smart_objects::SmartObject response_params(smart_objects::SmartType_Map);
+ if (any_arg_success) {
+ for (HmiRequests::const_iterator it = hmi_requests_.begin();
+ it != hmi_requests_.end(); ++it) {
+ response_params[it->str] = it->value;
+ }
+ }
+ LOG4CXX_INFO(logger_, "All HMI requests are complete");
+ SendResponse(any_arg_success, status, NULL, &response_params);
+ app->UpdateHash();
+ }
+#endif // #ifdef QT_HMI
+}
+
+bool SubscribeVehicleDataRequest::IsAnythingAlreadySubscribed() {
+ LOG4CXX_INFO(logger_, "SubscribeVehicleDataRequest::Run");
+
+ const VehicleData& vehicle_data = MessageHelper::vehicle_data();
+ VehicleData::const_iterator it = vehicle_data.begin();
+
+ for (; vehicle_data.end() != it; ++it) {
+ if (true == (*message_)[strings::msg_params].keyExists(it->first)) {
+
+ if ((*message_)[strings::msg_params][it->first]
+ [strings::result_code].asInt() ==
+ hmi_apis::Common_VehicleDataResultCode::
+ VDRC_DATA_ALREADY_SUBSCRIBED) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
+
+} // namespace commands
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc
new file mode 100644
index 000000000..972a65418
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/subscribe_vehicle_data_response.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/subscribe_vehicle_data_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+namespace commands {
+
+SubscribeVehicleDataResponse::SubscribeVehicleDataResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+SubscribeVehicleDataResponse::~SubscribeVehicleDataResponse() {
+}
+
+void SubscribeVehicleDataResponse::Run() {
+ LOG4CXX_INFO(logger_, "SubscribeVehicleDataResponse::Run");
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_request.cc
new file mode 100644
index 000000000..4fae27be5
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_request.cc
@@ -0,0 +1,103 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/sync_pdata_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/file_system.h"
+#include "encryption/Base64.h"
+
+namespace application_manager {
+
+namespace commands {
+
+const std::string SyncPDataRequest::TEMPORARY_HARDCODED_FILENAME =
+ "policy_sync_data.dat";
+const std::string SyncPDataRequest::TEMPORARY_HARDCODED_FOLDERNAME =
+ "policies";
+
+SyncPDataRequest::SyncPDataRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+SyncPDataRequest::~SyncPDataRequest() {
+}
+
+void SyncPDataRequest::Run() {
+ LOG4CXX_INFO(logger_, "SyncPDataRequest::Run");
+
+ ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(
+ connection_key());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (!(*message_)[strings::params].keyExists(strings::binary_data)) {
+ LOG4CXX_ERROR(logger_, "Binary data is missed!");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ const std::string& sync_file_name = TEMPORARY_HARDCODED_FILENAME;
+
+ const std::vector<uint8_t> file_data =
+ (*message_)[strings::params][strings::binary_data].asBinary();
+
+ std::string relative_file_path = file_system::CreateDirectory(
+ TEMPORARY_HARDCODED_FOLDERNAME);
+ relative_file_path += "/";
+ relative_file_path += sync_file_name;
+
+ mobile_apis::Result::eType save_result =
+ ApplicationManagerImpl::instance()->SaveBinary(
+ application->name(),
+ file_data,
+ relative_file_path);
+
+ switch(save_result) {
+ case mobile_apis::Result::SUCCESS:
+ SendResponse(true, save_result);
+ break;
+ default:
+ SendResponse(false, save_result);
+ break;
+ }
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_response.cc
new file mode 100644
index 000000000..751fd9eb6
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/sync_pdata_response.cc
@@ -0,0 +1,67 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/sync_pdata_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SyncPDataResponse::SyncPDataResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+SyncPDataResponse::~SyncPDataResponse() {
+}
+
+void SyncPDataResponse::Run() {
+ LOG4CXX_INFO(logger_, "SyncPDataResponse::Run");
+
+ // check if response false
+ if (true == (*message_)[strings::msg_params].keyExists(strings::success)) {
+ if ((*message_)[strings::msg_params][strings::success].asBool() == false) {
+ LOG4CXX_ERROR(logger_, "Success = false");
+ SendResponse(false);
+ return;
+ }
+ }
+
+ SendResponse(true);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/system_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/system_request.cc
new file mode 100644
index 000000000..270907e55
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/system_request.cc
@@ -0,0 +1,72 @@
+/*
+
+Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/system_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SystemRequest::SystemRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+SystemRequest::~SystemRequest() {
+}
+
+void SystemRequest::Run() {
+ LOG4CXX_INFO(logger_, "SystemRequest::Run");
+
+ ApplicationSharedPtr application = ApplicationManagerImpl::instance()->application(
+ connection_key());
+
+ if (!application) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ if (!(*message_)[strings::params].keyExists(strings::binary_data)) {
+ LOG4CXX_ERROR(logger_, "Binary data is missed!");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+ SendResponse(true, mobile_apis::Result::SUCCESS);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/system_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/system_response.cc
new file mode 100644
index 000000000..e77ab0845
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/system_response.cc
@@ -0,0 +1,56 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/system_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+SystemResponse::SystemResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+SystemResponse::~SystemResponse() {
+}
+
+void SystemResponse::Run() {
+ LOG4CXX_INFO(logger_, "SystemResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc
new file mode 100644
index 000000000..0fc1d1fa0
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_request.cc
@@ -0,0 +1,59 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/unregister_app_interface_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/message_helper.h"
+
+namespace application_manager {
+
+namespace commands {
+
+void UnregisterAppInterfaceRequest::Run() {
+ LOG4CXX_INFO(logger_, "UnregisterAppInterfaceRequest::Run");
+
+ ApplicationManagerImpl* app_manager = ApplicationManagerImpl::instance();
+
+ if (!app_manager->application(connection_key())) {
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ return;
+ }
+
+ app_manager->UnregisterApplication(connection_key());
+ SendResponse(true, mobile_apis::Result::SUCCESS);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc
new file mode 100644
index 000000000..8ef0eb3ed
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unregister_app_interface_response.cc
@@ -0,0 +1,47 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/unregister_app_interface_response.h"
+
+namespace application_manager {
+
+namespace commands {
+
+void UnregisterAppInterfaceResponse::Run() {
+ LOG4CXX_INFO(logger_, "UnregisterAppInterfaceResponse::Run");
+
+ SendResponse((*message_)[strings::msg_params][strings::success].asBool());
+}
+
+} // namespace commands
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc
new file mode 100644
index 000000000..f22d1c0a2
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_request.cc
@@ -0,0 +1,79 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/unsubscribe_button_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+namespace str = strings;
+
+UnsubscribeButtonRequest::UnsubscribeButtonRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+UnsubscribeButtonRequest::~UnsubscribeButtonRequest() {
+}
+
+void UnsubscribeButtonRequest::Run() {
+ LOG4CXX_INFO(logger_, "UnsubscribeButtonRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[str::params][str::connection_key].asUInt());
+
+ if (!app) {
+ LOG4CXX_ERROR_EXT(logger_, "APPLICATION_NOT_REGISTERED");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ const uint32_t btn_id = (*message_)[str::msg_params][str::button_name]
+ .asUInt();
+
+ if (!app->IsSubscribedToButton(static_cast<mobile_apis::ButtonName::eType>(btn_id))) {
+ LOG4CXX_ERROR_EXT(logger_, "App doesn't subscibe to button " << btn_id);
+ SendResponse(false, mobile_apis::Result::IGNORED);
+ return;
+ }
+
+ app->UnsubscribeFromButton(static_cast<mobile_apis::ButtonName::eType>(btn_id));
+ SendResponse(true, mobile_apis::Result::SUCCESS);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc
new file mode 100644
index 000000000..1331eac27
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_button_response.cc
@@ -0,0 +1,69 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/unsubscribe_button_response.h"
+#include "application_manager/application_manager_impl.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UnsubscribeButtonResponse::UnsubscribeButtonResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+UnsubscribeButtonResponse::~UnsubscribeButtonResponse() {
+}
+
+void UnsubscribeButtonResponse::Run() {
+ LOG4CXX_INFO(logger_, "UnsubscribeButtonResponse::Run");
+
+ namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+ // check if response false
+ if (true == (*message_)[strings::msg_params].keyExists(strings::success)) {
+ if ((*message_)[strings::msg_params][strings::success].asBool() == false) {
+ LOG4CXX_ERROR(logger_, "Success = false");
+ SendResponse(false);
+ return;
+ }
+ }
+
+ // TODO(DK): Some logic
+ SendResponse(true);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc
new file mode 100644
index 000000000..5d2e33015
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_request.cc
@@ -0,0 +1,272 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/unsubscribe_vehicle_data_request.h"
+#include "application_manager/commands/command_impl.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+#include "application_manager/smart_object_keys.h"
+
+namespace application_manager {
+namespace commands {
+
+UnsubscribeVehicleDataRequest::UnsubscribeVehicleDataRequest(
+ const MessageSharedPtr& message)
+ : CommandRequestImpl(message) {
+}
+
+UnsubscribeVehicleDataRequest::~UnsubscribeVehicleDataRequest() {
+}
+
+#ifdef QT_HMI
+namespace {
+ struct Subrequest {
+ hmi_apis::FunctionID::eType func_id;
+ const char* str;
+ };
+ Subrequest subrequests[] = {
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps, strings::gps},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed, strings::speed},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm, strings::rpm},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel, strings::fuel_level},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State, strings::fuel_level_state},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption, strings::instant_fuel_consumption},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature, strings::external_temp},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin, strings::vin},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl, strings::prndl},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure, strings::tire_pressure},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer, strings::odometer},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus, strings::belt_status},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation, strings::body_information},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus, strings::device_status},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking, strings::driver_braking},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus, strings::wiper_status},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus, strings::head_lamp_status},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque, strings::engine_torque},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition, strings::acc_pedal_pos},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle, strings::steering_wheel_angle},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo, strings::e_call_info},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus, strings::airbag_status},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent, strings::emergency_event},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus, strings::cluster_mode_status},
+ { hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey, strings::my_key},
+ };
+}
+#endif // #ifdef QT_HMI
+
+void UnsubscribeVehicleDataRequest::Run() {
+ LOG4CXX_INFO(logger_, "UnsubscribeVehicleDataRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ CommandRequestImpl::connection_key());
+
+ if (!app) {
+ LOG4CXX_ERROR(logger_, "NULL pointer");
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ return;
+ }
+
+ // counter for items to subscribe
+ int32_t items_to_unsubscribe = 0;
+ // counter for subscribed items by application
+ int32_t unsubscribed_items = 0;
+
+ const VehicleData& vehicle_data = MessageHelper::vehicle_data();
+ VehicleData::const_iterator it = vehicle_data.begin();
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[strings::app_id] = app->app_id();
+
+ for (; vehicle_data.end() != it; ++it) {
+ std::string key_name = it->first;
+ if ((*message_)[strings::msg_params].keyExists(key_name)) {
+ bool is_key_enabled = (*message_)[strings::msg_params][key_name].asBool();
+ if (is_key_enabled) {
+ ++items_to_unsubscribe;
+ msg_params[key_name] = is_key_enabled;
+
+ VehicleDataType key_type = it->second;
+ if (app->UnsubscribeFromIVI(static_cast<uint32_t>(key_type))) {
+ ++unsubscribed_items;
+ }
+ }
+ }
+ }
+
+ if (0 == items_to_unsubscribe) {
+ SendResponse(false, mobile_apis::Result::INVALID_DATA,
+ "No data in the request", &msg_params);
+ return;
+ } else if (0 == unsubscribed_items) {
+ SendResponse(false, mobile_apis::Result::IGNORED,
+ "Was not subscribed on any VehicleData", &msg_params);
+ return;
+ }
+
+#ifdef WEB_HMI
+ SendHMIRequest(hmi_apis::FunctionID::VehicleInfo_UnsubscribeVehicleData,
+ &msg_params, true);
+#endif // #ifdef WEB_HMI
+
+#ifdef QT_HMI
+ //Generate list of subrequests
+ for (int i = 0; i < sizeof(subrequests) / sizeof(subrequests[0]); ++i) {
+ const Subrequest& sr = subrequests[i];
+ if (true == (*message_)[strings::msg_params].keyExists(sr.str)
+ && true == (*message_)[strings::msg_params][sr.str].asBool()) {
+ HmiRequest hmi_request;
+ hmi_request.str = sr.str;
+ hmi_request.func_id = sr.func_id;
+ hmi_request.complete = false;
+ hmi_requests_.push_back(hmi_request);
+ }
+ }
+ LOG4CXX_INFO(logger_,
+ hmi_requests_.size() << " requests are going to be sent to HMI");
+
+ //Send subrequests
+ for (HmiRequests::const_iterator it = hmi_requests_.begin();
+ it != hmi_requests_.end(); ++it)
+ SendHMIRequest(it->func_id, &msg_params, true);
+#endif // #ifdef QT_HMI
+}
+
+void UnsubscribeVehicleDataRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "UnsubscribeVehicleDataRequest::on_event");
+
+ const smart_objects::SmartObject& message = event.smart_object();
+
+#ifdef WEB_HMI
+ hmi_apis::Common_Result::eType hmi_result =
+ static_cast<hmi_apis::Common_Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result =
+ hmi_result == hmi_apis::Common_Result::SUCCESS;
+
+ mobile_apis::Result::eType result_code =
+ hmi_result == hmi_apis::Common_Result::SUCCESS
+ ? mobile_apis::Result::SUCCESS
+ : static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ const char* return_info = NULL;
+
+ if (result) {
+ if (IsAnythingAlreadyUnsubscribed()) {
+ result_code = mobile_apis::Result::WARNINGS;
+ return_info =
+ std::string("Unsupported phoneme type sent in a prompt").c_str();
+ }
+ }
+
+ SendResponse(result, result_code, return_info,
+ &(message[strings::msg_params]));
+#endif // #ifdef WEB_HMI
+#ifdef QT_HMI
+ for (HmiRequests::iterator it = hmi_requests_.begin();
+ it != hmi_requests_.end(); ++it) {
+ HmiRequest & hmi_request = *it;
+ if (hmi_request.func_id == event.id()) {
+ hmi_request.status =
+ static_cast<hmi_apis::Common_Result::eType>(message[strings::params][hmi_response::code]
+ .asInt());
+ if (hmi_apis::Common_Result::SUCCESS == hmi_request.status)
+ hmi_request.value = message[strings::msg_params][hmi_request.str];
+ hmi_request.complete = true;
+ break;
+ }
+ }
+ bool all_complete = true;
+ bool any_arg_success = false;
+ mobile_api::Result::eType status = mobile_api::Result::eType::SUCCESS;
+ for (HmiRequests::const_iterator it = hmi_requests_.begin();
+ it != hmi_requests_.end(); ++it) {
+ if (!it->complete) {
+ all_complete = false;
+ break;
+ }
+ if (hmi_apis::Common_Result::SUCCESS != it->status) {
+ if (mobile_api::Result::SUCCESS == status) {
+ status = static_cast<mobile_apis::Result::eType>(it->status);
+ } else if (status
+ != static_cast<mobile_apis::Result::eType>(it->status)) {
+ status = mobile_api::Result::eType::GENERIC_ERROR;
+ } LOG4CXX_TRACE(logger_, "Status from HMI: " << it->status <<
+ ", so response status become " << status);
+ } else {
+ any_arg_success = true;
+ }
+ }
+ if (all_complete) {
+ smart_objects::SmartObject response_params(smart_objects::SmartType_Map);
+ if (any_arg_success) {
+ for (HmiRequests::const_iterator it = hmi_requests_.begin();
+ it != hmi_requests_.end(); ++it) {
+ response_params[it->str] = it->value;
+ }
+ }
+ LOG4CXX_INFO(logger_, "All HMI requests are complete");
+ SendResponse(any_arg_success, status, NULL, &response_params);
+ }
+#endif // #ifdef QT_HMI
+}
+
+bool UnsubscribeVehicleDataRequest::IsAnythingAlreadyUnsubscribed() {
+ LOG4CXX_INFO(logger_, "UnsubscribeVehicleDataRequest::Run");
+
+ const VehicleData& vehicle_data = MessageHelper::vehicle_data();
+ VehicleData::const_iterator it = vehicle_data.begin();
+
+ for (; vehicle_data.end() != it; ++it) {
+ if (true == (*message_)[strings::msg_params].keyExists(it->first)) {
+
+ if ((*message_)[strings::msg_params][it->first]
+ [strings::result_code].asInt() ==
+ hmi_apis::Common_VehicleDataResultCode::VDRC_DATA_NOT_SUBSCRIBED) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
+
+} // namespace commands
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc
new file mode 100644
index 000000000..60f7077da
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/unsubscribe_vehicle_data_response.cc
@@ -0,0 +1,66 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/unsubscribe_vehicle_data_response.h"
+
+namespace application_manager {
+namespace commands {
+
+UnsubscribeVehicleDataResponse::UnsubscribeVehicleDataResponse(
+ const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+UnsubscribeVehicleDataResponse::~UnsubscribeVehicleDataResponse() {
+}
+
+void UnsubscribeVehicleDataResponse::Run() {
+ LOG4CXX_INFO(logger_, "UnsubscribeVehicleDataResponse::Run");
+
+ namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+ // check if response false
+ if (true == (*message_)[strings::msg_params].keyExists(strings::success)) {
+ if ((*message_)[strings::msg_params][strings::success].asBool() == false) {
+ LOG4CXX_ERROR(logger_, "Success = false");
+ SendResponse(false);
+ return;
+ }
+ }
+
+ // TODO(DK): Some logic
+ SendResponse(true);
+}
+
+} // namespace commands
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_request.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_request.cc
new file mode 100644
index 000000000..f2077ab41
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_request.cc
@@ -0,0 +1,172 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string>
+#include "application_manager/commands/mobile/update_turn_list_request.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "application_manager/message_helper.h"
+#include "interfaces/MOBILE_API.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UpdateTurnListRequest::UpdateTurnListRequest(const MessageSharedPtr& message)
+ : CommandRequestImpl(message),
+ result_(mobile_apis::Result::INVALID_ENUM) {
+}
+
+UpdateTurnListRequest::~UpdateTurnListRequest() {
+}
+
+void UpdateTurnListRequest::Run() {
+ LOG4CXX_INFO(logger_, "UpdateTurnListRequest::Run");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(
+ (*message_)[strings::params][strings::connection_key].asUInt());
+
+ if (!app) {
+ SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
+ LOG4CXX_ERROR(logger_, "Application is not registered");
+ return;
+ }
+
+ mobile_apis::Result::eType processing_result =
+ MessageHelper::ProcessSoftButtons((*message_)[strings::msg_params], app);
+
+ if (mobile_apis::Result::SUCCESS != processing_result) {
+ if (mobile_apis::Result::INVALID_DATA == processing_result) {
+ LOG4CXX_ERROR(logger_, "INVALID_DATA!");
+ SendResponse(false, processing_result);
+ return;
+ }
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE == processing_result) {
+ LOG4CXX_ERROR(logger_, "UNSUPPORTED_RESOURCE!");
+ result_ = processing_result;
+ }
+ }
+
+ mobile_apis::Result::eType verification_result =
+ MessageHelper::VerifyImageFiles((*message_)[strings::msg_params], app);
+
+ if (mobile_apis::Result::SUCCESS != verification_result) {
+ LOG4CXX_ERROR_EXT(
+ logger_,
+ "MessageHelper::VerifyImageFiles return " << verification_result);
+ SendResponse(false, verification_result);
+ return;
+ }
+
+ if (!CheckTurnListArray()) {
+ LOG4CXX_ERROR(logger_, "INVALID_DATA!");
+ SendResponse(false, mobile_apis::Result::INVALID_DATA);
+ return;
+ }
+
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params = (*message_)[strings::msg_params];
+ for (uint32_t i = 0; i < msg_params[strings::turn_list].length(); ++i) {
+ if (msg_params[strings::turn_list][i].keyExists(hmi_request::navi_text)) {
+ std::string navigation_text =
+ msg_params[strings::turn_list][i][hmi_request::navi_text].asString();
+ msg_params[strings::turn_list][i].erase(hmi_request::navi_text);
+ msg_params[strings::turn_list]
+ [i][hmi_request::navi_text][hmi_request::field_name] =
+ static_cast<int>(hmi_apis::Common_TextFieldName::turnText);
+ msg_params[strings::turn_list]
+ [i][hmi_request::navi_text][hmi_request::field_text] =
+ navigation_text;
+ }
+ }
+
+ msg_params[strings::app_id] = app->app_id();
+
+
+ SendHMIRequest(hmi_apis::FunctionID::Navigation_UpdateTurnList, &msg_params,
+ true);
+}
+
+void UpdateTurnListRequest::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "UpdateTurnListRequest::on_event");
+ const smart_objects::SmartObject& message = event.smart_object();
+
+ switch (event.id()) {
+ case hmi_apis::FunctionID::Navigation_UpdateTurnList: {
+ LOG4CXX_INFO(logger_, "Received Navigation_UpdateTurnList event");
+
+ mobile_apis::Result::eType result_code =
+ static_cast<mobile_apis::Result::eType>(
+ message[strings::params][hmi_response::code].asInt());
+
+ bool result = mobile_apis::Result::SUCCESS == result_code;
+ if (mobile_apis::Result::INVALID_ENUM != result_) {
+ result_code = result_;
+ }
+
+ SendResponse(result, result_code, NULL, &(message[strings::msg_params]));
+ break;
+ }
+ default: {
+ LOG4CXX_ERROR(logger_,"Received unknown event" << event.id());
+ break;
+ }
+ }
+}
+
+bool UpdateTurnListRequest::CheckTurnListArray() {
+ if (!(*message_)[strings::msg_params].keyExists(strings::turn_list)) {
+ return false;
+ }
+
+ int32_t length = (*message_)[strings::msg_params][strings::turn_list].length();
+ if (0 == length) {
+ return false;
+ }
+ for (int32_t i = 0; i < length; ++i) {
+ if (!((*message_)[strings::msg_params][strings::turn_list][i].
+ keyExists(hmi_request::navi_text)) &&
+ !((*message_)[strings::msg_params][strings::turn_list][i].
+ keyExists(strings::turn_icon))) {
+ return false;
+ }
+ }
+ return true;
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_response.cc b/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_response.cc
new file mode 100644
index 000000000..ec1e0bce8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/mobile/update_turn_list_response.cc
@@ -0,0 +1,57 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/mobile/update_turn_list_response.h"
+#include "application_manager/application_manager_impl.h"
+#include "interfaces/HMI_API.h"
+
+namespace application_manager {
+
+namespace commands {
+
+UpdateTurnListResponse::UpdateTurnListResponse(const MessageSharedPtr& message)
+ : CommandResponseImpl(message) {
+}
+
+UpdateTurnListResponse::~UpdateTurnListResponse() {
+}
+
+void UpdateTurnListResponse::Run() {
+ LOG4CXX_INFO(logger_, "UpdateTurnListResponse::Run");
+
+ ApplicationManagerImpl::instance()->SendMessageToMobile(message_);
+}
+
+} // namespace commands
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/commands/pending.cc b/SDL_Core/src/components/application_manager/src/commands/pending.cc
new file mode 100644
index 000000000..0c04464af
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/commands/pending.cc
@@ -0,0 +1,67 @@
+/*
+
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/commands/pending.h"
+
+namespace application_manager {
+
+namespace commands {
+
+
+Pending::Pending()
+: last_(hmi_apis::FunctionID::INVALID_ENUM) {
+}
+
+Pending::~Pending() {
+}
+
+void Pending::Add(hmi_apis::FunctionID::eType id) {
+ sync_primitives::AutoLock L(lock_);
+ pending_.insert(id);
+}
+
+void Pending::Remove(hmi_apis::FunctionID::eType id) {
+ sync_primitives::AutoLock L(lock_);
+ pending_.erase(id);
+
+ if (pending_.empty()) {
+ last_ = id;
+ }
+}
+
+bool Pending::IsFinal(hmi_apis::FunctionID::eType id) {
+ return id == last_;
+}
+
+} // namespace commands
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/event_engine/event.cc b/SDL_Core/src/components/application_manager/src/event_engine/event.cc
new file mode 100644
index 000000000..e454025df
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/event_engine/event.cc
@@ -0,0 +1,56 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/event_engine/event.h"
+#include "application_manager/event_engine/event_dispatcher.h"
+
+namespace application_manager {
+namespace event_engine {
+
+Event::Event(const EventID& id)
+: id_(id)
+, response_so_() {
+}
+
+Event::~Event() {
+}
+
+void Event::raise() {
+ EventDispatcher::instance()->raise_event(*this);
+}
+
+void Event::set_smart_object(smart_objects::SmartObject& so) {
+ response_so_ = so;
+}
+
+}
+}
diff --git a/SDL_Core/src/components/application_manager/src/event_engine/event_dispatcher.cc b/SDL_Core/src/components/application_manager/src/event_engine/event_dispatcher.cc
new file mode 100644
index 000000000..a70906580
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/event_engine/event_dispatcher.cc
@@ -0,0 +1,119 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "interfaces/HMI_API.h"
+#include "application_manager/event_engine/event_observer.h"
+#include "application_manager/event_engine/event_dispatcher.h"
+
+namespace application_manager {
+namespace event_engine {
+using namespace sync_primitives;
+
+EventDispatcher::EventDispatcher()
+ : observers_() {
+}
+
+EventDispatcher::~EventDispatcher() {
+}
+
+void EventDispatcher::raise_event(const Event& event) {
+ // create local list
+ ObserverList list;
+ {
+ AutoLock auto_lock(state_lock_);
+ // check if event is notification
+ if (hmi_apis::messageType::notification == event.smart_object_type()) {
+
+ //ObserversMap iterator
+ ObserversMap::iterator it = observers_[event.id()].begin();
+ for (; observers_[event.id()].end() != it; ++it) {
+ list = it->second;
+ }
+ }
+
+ if (hmi_apis::messageType::response == event.smart_object_type()
+ || hmi_apis::messageType::error_response == event.smart_object_type()) {
+ list = observers_[event.id()][event.smart_object_correlation_id()];
+ }
+ }
+
+ // Call observers
+ ObserverList::iterator observers = list.begin();
+ for (; list.end() != observers; ++observers) {
+ (*observers)->on_event(event);
+ }
+}
+
+void EventDispatcher::add_observer(const Event::EventID& event_id,
+ int32_t hmi_correlation_id,
+ EventObserver* const observer) {
+ AutoLock auto_lock(state_lock_);
+ observers_[event_id][hmi_correlation_id].push_back(observer);
+}
+
+void EventDispatcher::remove_observer(const Event::EventID& event_id,
+ EventObserver* const observer) {
+ AutoLock auto_lock(state_lock_);
+ ObserversMap::iterator it = observers_[event_id].begin();
+ for (; observers_[event_id].end() != it; ++it) {
+
+ //ObserverList iterator
+ ObserverList::iterator observer_it = it->second.begin();
+ for (; it->second.end() != observer_it; ++observer_it) {
+ if (observer->id() == (*observer_it)->id()) {
+ observer_it = it->second.erase(observer_it);
+ }
+ }
+ }
+}
+
+void EventDispatcher::remove_observer(EventObserver* const observer) {
+ AutoLock auto_lock(state_lock_);
+ EventObserverMap::iterator event_map = observers_.begin();
+ for (; observers_.end() != event_map; ++event_map) {
+
+ ObserversMap::iterator it = event_map->second.begin();
+ for (; event_map->second.end() != it; ++it) {
+
+ //ObserverList iterator
+ ObserverList::iterator observer_it = it->second.begin();
+ for (; it->second.end() != observer_it; ++observer_it) {
+ if (observer->id() == (*observer_it)->id()) {
+ observer_it = it->second.erase(observer_it);
+ }
+ }
+ }
+ }
+}
+
+}
+}
diff --git a/SDL_Core/src/components/application_manager/src/event_engine/event_observer.cc b/SDL_Core/src/components/application_manager/src/event_engine/event_observer.cc
new file mode 100644
index 000000000..c6d81529f
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/event_engine/event_observer.cc
@@ -0,0 +1,63 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/event_engine/event.h"
+#include "application_manager/event_engine/event_observer.h"
+
+namespace application_manager {
+namespace event_engine {
+
+EventObserver::EventObserver()
+ : id_(0) {
+ //Get unique id based on this
+ id_ = reinterpret_cast<unsigned long>(this);
+}
+
+EventObserver::~EventObserver() {
+ unsubscribe_from_all_events();
+}
+
+void EventObserver::subscribe_on_event(const Event::EventID& event_id,
+ int32_t hmi_correlation_id) {
+ EventDispatcher::instance()->add_observer(event_id, hmi_correlation_id, this);
+}
+
+void EventObserver::unsubscribe_from_event(const Event::EventID& event_id) {
+ EventDispatcher::instance()->remove_observer(event_id, this);
+}
+
+void EventObserver::unsubscribe_from_all_events() {
+ EventDispatcher::instance()->remove_observer(this);
+}
+
+}
+}
diff --git a/SDL_Core/src/components/application_manager/src/hmi_capabilities.cc b/SDL_Core/src/components/application_manager/src/hmi_capabilities.cc
new file mode 100644
index 000000000..d62b0f609
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/hmi_capabilities.cc
@@ -0,0 +1,691 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <map>
+#include "json/json.h"
+#include "utils/file_system.h"
+#include "interfaces/HMI_API.h"
+#include "config_profile/profile.h"
+#include "smart_objects/smart_object.h"
+#include "application_manager/message_helper.h"
+#include "application_manager/hmi_capabilities.h"
+#include "application_manager/smart_object_keys.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/message_helper.h"
+
+namespace application_manager {
+
+std::map<std::string, hmi_apis::Common_Language::eType> languages_enum_values =
+{
+ {"EN_US", hmi_apis::Common_Language::EN_US},
+ {"ES_MX", hmi_apis::Common_Language::ES_MX},
+ {"FR_CA", hmi_apis::Common_Language::FR_CA},
+ {"DE_DE", hmi_apis::Common_Language::DE_DE},
+ {"ES_ES", hmi_apis::Common_Language::ES_ES},
+ {"EN_GB", hmi_apis::Common_Language::EN_GB},
+ {"TR_TR", hmi_apis::Common_Language::RU_RU},
+ {"TR_TR", hmi_apis::Common_Language::TR_TR},
+ {"PL_PL", hmi_apis::Common_Language::PL_PL},
+ {"FR_FR", hmi_apis::Common_Language::FR_FR},
+ {"IT_IT", hmi_apis::Common_Language::IT_IT},
+ {"SV_SE", hmi_apis::Common_Language::SV_SE},
+ {"PT_PT", hmi_apis::Common_Language::PT_PT},
+ {"EN_AU", hmi_apis::Common_Language::NL_NL},
+ {"EN_AU", hmi_apis::Common_Language::EN_AU},
+ {"ZH_CN", hmi_apis::Common_Language::ZH_CN},
+ {"ZH_TW", hmi_apis::Common_Language::ZH_TW},
+ {"JA_JP", hmi_apis::Common_Language::JA_JP},
+ {"AR_SA", hmi_apis::Common_Language::AR_SA},
+ {"KO_KR", hmi_apis::Common_Language::KO_KR},
+ {"PT_BR", hmi_apis::Common_Language::PT_BR},
+ {"CS_CZ", hmi_apis::Common_Language::CS_CZ},
+ {"DA_DK", hmi_apis::Common_Language::DA_DK},
+ {"NO_NO", hmi_apis::Common_Language::NO_NO}
+};
+
+std::map<std::string, hmi_apis::Common_VrCapabilities::eType> vr_enum_capabilities =
+{
+ {"TEXT", hmi_apis::Common_VrCapabilities::VR_TEXT}
+};
+
+std::map<std::string, hmi_apis::Common_ButtonName::eType> button_enum_name =
+{
+ {"OK" , hmi_apis::Common_ButtonName::OK},
+ {"SEEKLEFT" , hmi_apis::Common_ButtonName::SEEKLEFT},
+ {"SEEKRIGHT" , hmi_apis::Common_ButtonName::SEEKRIGHT},
+ {"TUNEUP" , hmi_apis::Common_ButtonName::TUNEUP},
+ {"TUNEDOWN" , hmi_apis::Common_ButtonName::TUNEDOWN},
+ {"PRESET_0" , hmi_apis::Common_ButtonName::PRESET_0},
+ {"PRESET_1" , hmi_apis::Common_ButtonName::PRESET_1},
+ {"PRESET_2" , hmi_apis::Common_ButtonName::PRESET_2},
+ {"PRESET_3" , hmi_apis::Common_ButtonName::PRESET_3},
+ {"PRESET_4" , hmi_apis::Common_ButtonName::PRESET_4},
+ {"PRESET_5" , hmi_apis::Common_ButtonName::PRESET_5},
+ {"PRESET_6" , hmi_apis::Common_ButtonName::PRESET_6},
+ {"PRESET_7" , hmi_apis::Common_ButtonName::PRESET_7},
+ {"PRESET_8" , hmi_apis::Common_ButtonName::PRESET_8},
+ {"PRESET_9" , hmi_apis::Common_ButtonName::PRESET_9},
+ {"CUSTOM_BUTTON" , hmi_apis::Common_ButtonName::CUSTOM_BUTTON},
+ {"SEARCH" , hmi_apis::Common_ButtonName::SEARCH},
+
+};
+
+std::map<std::string, hmi_apis::Common_TextFieldName::eType> text_fields_enum_name =
+{
+ {"mainField1", hmi_apis::Common_TextFieldName::mainField1},
+ {"mainField2", hmi_apis::Common_TextFieldName::mainField2},
+ {"mainField3", hmi_apis::Common_TextFieldName::mainField3},
+ {"mainField4", hmi_apis::Common_TextFieldName::mainField4},
+ {"statusBar" , hmi_apis::Common_TextFieldName::statusBar},
+ {"mediaClock", hmi_apis::Common_TextFieldName::mediaClock},
+ {"mediaTrack", hmi_apis::Common_TextFieldName::mediaTrack},
+ {"alertText1", hmi_apis::Common_TextFieldName::alertText1},
+ {"alertText2", hmi_apis::Common_TextFieldName::alertText2},
+ {"alertText3", hmi_apis::Common_TextFieldName::alertText3},
+ {"scrollableMessageBody" , hmi_apis::Common_TextFieldName::scrollableMessageBody},
+ {"initialInteractionText", hmi_apis::Common_TextFieldName::initialInteractionText},
+ {"navigationText1" , hmi_apis::Common_TextFieldName::navigationText1},
+ {"navigationText2" , hmi_apis::Common_TextFieldName::navigationText2},
+ {"ETA" , hmi_apis::Common_TextFieldName::ETA},
+ {"totalDistance" , hmi_apis::Common_TextFieldName::totalDistance},
+ {"audioPassThruDisplayText1", hmi_apis::Common_TextFieldName::audioPassThruDisplayText1},
+ {"audioPassThruDisplayText2", hmi_apis::Common_TextFieldName::audioPassThruDisplayText2},
+ {"sliderHeader" , hmi_apis::Common_TextFieldName::sliderHeader},
+ {"sliderFooter" , hmi_apis::Common_TextFieldName::sliderFooter},
+ {"notificationText" , hmi_apis::Common_TextFieldName::notificationText},
+ {"menuName" , hmi_apis::Common_TextFieldName::menuName},
+ {"secondaryText" , hmi_apis::Common_TextFieldName::secondaryText},
+ {"tertiaryText" , hmi_apis::Common_TextFieldName::tertiaryText},
+ {"timeToDestination", hmi_apis::Common_TextFieldName::timeToDestination},
+ {"turnText" , hmi_apis::Common_TextFieldName::turnText}
+};
+
+std::map<std::string, hmi_apis::Common_MediaClockFormat::eType> media_clock_enum_name =
+{
+ {"CLOCK1" , hmi_apis::Common_MediaClockFormat::CLOCK1},
+ {"CLOCK2" , hmi_apis::Common_MediaClockFormat::CLOCK2},
+ {"CLOCK3" , hmi_apis::Common_MediaClockFormat::CLOCK3},
+ {"CLOCKTEXT1", hmi_apis::Common_MediaClockFormat::CLOCKTEXT1},
+ {"CLOCKTEXT2", hmi_apis::Common_MediaClockFormat::CLOCKTEXT2},
+ {"CLOCKTEXT3", hmi_apis::Common_MediaClockFormat::CLOCKTEXT3},
+ {"CLOCKTEXT4", hmi_apis::Common_MediaClockFormat::CLOCKTEXT4},
+};
+
+std::map<std::string, hmi_apis::Common_ImageType::eType> image_type_enum =
+{
+ {"STATIC" , hmi_apis::Common_ImageType::STATIC},
+ {"DYNAMIC", hmi_apis::Common_ImageType::DYNAMIC}
+};
+
+std::map<std::string, hmi_apis::Common_SamplingRate::eType> sampling_rate_enum =
+{
+ {"8KHZ" , hmi_apis::Common_SamplingRate::RATE_8KHZ},
+ {"16KHZ", hmi_apis::Common_SamplingRate::RATE_16KHZ},
+ {"22KHZ", hmi_apis::Common_SamplingRate::RATE_22KHZ},
+ {"44KHZ", hmi_apis::Common_SamplingRate::RATE_44KHZ}
+};
+
+std::map<std::string, hmi_apis::Common_BitsPerSample::eType> bit_per_sample_enum =
+{
+ {"RATE_8_BIT", hmi_apis::Common_BitsPerSample::RATE_8_BIT},
+ {"RATE_16_BIT", hmi_apis::Common_BitsPerSample::RATE_16_BIT}
+};
+
+std::map<std::string, hmi_apis::Common_AudioType::eType> audio_type_enum =
+{
+ {"PCM", hmi_apis::Common_AudioType::PCM}
+};
+
+std::map<std::string, hmi_apis::Common_HmiZoneCapabilities::eType> hmi_zone_enum =
+{
+ {"FRONT", hmi_apis::Common_HmiZoneCapabilities::FRONT},
+ {"BACK", hmi_apis::Common_HmiZoneCapabilities::BACK},
+};
+
+
+
+HMICapabilities::HMICapabilities(ApplicationManagerImpl* const app_mngr)
+ : is_vr_cooperating_(false),
+ is_tts_cooperating_(false),
+ is_ui_cooperating_(false),
+ is_navi_cooperating_(false),
+ is_ivi_cooperating_(false),
+ is_vr_ready_response_recieved_(false),
+ is_tts_ready_response_recieved_(false),
+ is_ui_ready_response_recieved_(false),
+ is_navi_ready_response_recieved_(false),
+ is_ivi_ready_response_recieved_(false),
+ ui_language_(hmi_apis::Common_Language::INVALID_ENUM),
+ vr_language_(hmi_apis::Common_Language::INVALID_ENUM),
+ tts_language_(hmi_apis::Common_Language::INVALID_ENUM),
+ vehicle_type_(NULL),
+ attenuated_supported_(false),
+ ui_supported_languages_(NULL),
+ tts_supported_languages_(NULL),
+ vr_supported_languages_(NULL),
+ display_capabilities_(NULL),
+ hmi_zone_capabilities_(NULL),
+ soft_buttons_capabilities_(NULL),
+ button_capabilities_(NULL),
+ preset_bank_capabilities_(NULL),
+ vr_capabilities_(NULL),
+ speech_capabilities_(NULL),
+ audio_pass_thru_capabilities_(NULL),
+ app_mngr_(app_mngr),
+ prerecorded_speech_(NULL) {
+
+ if (false == profile::Profile::instance()->launch_hmi()) {
+ if (load_capabilities_from_file()) {
+ is_vr_ready_response_recieved_ = true;
+ is_tts_ready_response_recieved_ = true;
+ is_ui_ready_response_recieved_ = true;
+ is_navi_ready_response_recieved_ = true;
+ is_ivi_ready_response_recieved_ = true;
+
+ is_vr_cooperating_ = true;
+ is_tts_cooperating_ = true;
+ is_ui_cooperating_ = true;
+ is_navi_cooperating_ = true;
+ is_ivi_cooperating_ = true;
+ }
+ }
+}
+
+HMICapabilities::~HMICapabilities() {
+ delete vehicle_type_;
+ delete ui_supported_languages_;
+ delete tts_supported_languages_;
+ delete vr_supported_languages_;
+ delete display_capabilities_;
+ delete hmi_zone_capabilities_;
+ delete soft_buttons_capabilities_;
+ delete button_capabilities_;
+ delete preset_bank_capabilities_;
+ delete vr_capabilities_;
+ delete speech_capabilities_;
+ delete audio_pass_thru_capabilities_;
+ delete prerecorded_speech_;
+ app_mngr_ = NULL;
+}
+
+bool HMICapabilities::is_hmi_capabilities_initialized() const {
+ bool result = true;
+
+ if (is_vr_ready_response_recieved_ && is_tts_ready_response_recieved_
+ && is_ui_ready_response_recieved_ && is_navi_ready_response_recieved_
+ && is_ivi_ready_response_recieved_) {
+ if (is_vr_cooperating_) {
+ if ((!vr_supported_languages_) ||
+ (hmi_apis::Common_Language::INVALID_ENUM == vr_language_)) {
+ result = false;
+ }
+ }
+
+ if (is_tts_cooperating_) {
+ if ((!tts_supported_languages_) ||
+ (hmi_apis::Common_Language::INVALID_ENUM == tts_language_)) {
+ result = false;
+ }
+ }
+
+ if (is_ui_cooperating_) {
+ if ((!ui_supported_languages_) ||
+ (hmi_apis::Common_Language::INVALID_ENUM == ui_language_)) {
+ result = false;
+ }
+ }
+
+ if (is_ivi_cooperating_) {
+ if (!vehicle_type_) {
+ result = false;
+ }
+ }
+ } else {
+ result = false;
+ }
+
+ return result;
+}
+
+bool HMICapabilities::VerifyImageType(int32_t image_type) const {
+ if (!display_capabilities_) {
+ return false;
+ }
+
+ if (display_capabilities_->keyExists(hmi_response::image_capabilities)) {
+ const smart_objects::SmartObject& image_caps = display_capabilities_
+ ->getElement(hmi_response::image_capabilities);
+ for (int32_t i = 0; i < image_caps.length(); ++i) {
+ if (image_caps.getElement(i).asInt() == image_type) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
+void HMICapabilities::set_is_vr_cooperating(bool value) {
+ is_vr_ready_response_recieved_ = true;
+ is_vr_cooperating_ = value;
+ if (is_vr_cooperating_) {
+ utils::SharedPtr<smart_objects::SmartObject> get_language(
+ MessageHelper::CreateModuleInfoSO(hmi_apis::FunctionID::VR_GetLanguage));
+ app_mngr_->ManageHMICommand(get_language);
+ utils::SharedPtr<smart_objects::SmartObject> get_all_languages(
+ MessageHelper::CreateModuleInfoSO(hmi_apis::FunctionID::VR_GetSupportedLanguages));
+ app_mngr_->ManageHMICommand(get_all_languages);
+ utils::SharedPtr<smart_objects::SmartObject> get_capabilities(
+ MessageHelper::CreateModuleInfoSO(hmi_apis::FunctionID::VR_GetCapabilities));
+ app_mngr_->ManageHMICommand(get_capabilities);
+
+ MessageHelper::SendHelpVrCommand();
+ }
+}
+
+void HMICapabilities::set_is_tts_cooperating(bool value) {
+ is_tts_ready_response_recieved_ = true;
+ is_tts_cooperating_ = value;
+ if (is_tts_cooperating_) {
+ utils::SharedPtr<smart_objects::SmartObject> get_language(
+ MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::TTS_GetLanguage));
+ app_mngr_->ManageHMICommand(get_language);
+ utils::SharedPtr<smart_objects::SmartObject> get_all_languages(
+ MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::TTS_GetSupportedLanguages));
+ app_mngr_->ManageHMICommand(get_all_languages);
+ utils::SharedPtr<smart_objects::SmartObject> get_capabilities(
+ MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::TTS_GetCapabilities));
+ app_mngr_->ManageHMICommand(get_capabilities);
+ }
+}
+
+void HMICapabilities::set_is_ui_cooperating(bool value) {
+ is_ui_ready_response_recieved_ = true;
+ is_ui_cooperating_ = value;
+ if (is_ui_cooperating_) {
+ utils::SharedPtr<smart_objects::SmartObject> get_language(
+ MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::UI_GetLanguage));
+ app_mngr_->ManageHMICommand(get_language);
+ utils::SharedPtr<smart_objects::SmartObject> get_all_languages(
+ MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::UI_GetSupportedLanguages));
+ app_mngr_->ManageHMICommand(get_all_languages);
+ utils::SharedPtr<smart_objects::SmartObject> get_capabilities(
+ MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::UI_GetCapabilities));
+ app_mngr_->ManageHMICommand(get_capabilities);
+ }
+}
+
+void HMICapabilities::set_is_navi_cooperating(bool value) {
+ is_navi_ready_response_recieved_ = true;
+ is_navi_cooperating_ = value;
+}
+
+void HMICapabilities::set_is_ivi_cooperating(bool value) {
+ is_ivi_ready_response_recieved_ = true;
+ is_ivi_cooperating_ = value;
+ if (is_ivi_cooperating_) {
+ utils::SharedPtr<smart_objects::SmartObject> get_type(
+ MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::VehicleInfo_GetVehicleType));
+ app_mngr_->ManageHMICommand(get_type);
+ }
+}
+
+void HMICapabilities::set_attenuated_supported(bool state) {
+ attenuated_supported_ = state;
+}
+
+void HMICapabilities::set_active_ui_language(
+ const hmi_apis::Common_Language::eType& language) {
+ ui_language_ = language;
+}
+
+void HMICapabilities::set_active_vr_language(
+ const hmi_apis::Common_Language::eType& language) {
+ vr_language_ = language;
+}
+
+void HMICapabilities::set_active_tts_language(
+ const hmi_apis::Common_Language::eType& language) {
+ tts_language_ = language;
+}
+
+void HMICapabilities::set_ui_supported_languages(
+ const smart_objects::SmartObject& supported_languages) {
+ if (ui_supported_languages_) {
+ delete ui_supported_languages_;
+ }
+ ui_supported_languages_ = new smart_objects::SmartObject(supported_languages);
+}
+
+void HMICapabilities::set_tts_supported_languages(
+ const smart_objects::SmartObject& supported_languages) {
+ if (tts_supported_languages_) {
+ delete tts_supported_languages_;
+ }
+ tts_supported_languages_ = new smart_objects::SmartObject(
+ supported_languages);
+}
+
+void HMICapabilities::set_vr_supported_languages(
+ const smart_objects::SmartObject& supported_languages) {
+ if (vr_supported_languages_) {
+ delete vr_supported_languages_;
+ }
+ vr_supported_languages_ = new smart_objects::SmartObject(supported_languages);
+}
+
+void HMICapabilities::set_display_capabilities(
+ const smart_objects::SmartObject& display_capabilities) {
+ if (display_capabilities_) {
+ delete display_capabilities_;
+ }
+ display_capabilities_ = new smart_objects::SmartObject(display_capabilities);
+}
+
+void HMICapabilities::set_hmi_zone_capabilities(
+ const smart_objects::SmartObject& hmi_zone_capabilities) {
+ if (hmi_zone_capabilities_) {
+ delete hmi_zone_capabilities_;
+ }
+ hmi_zone_capabilities_ = new smart_objects::SmartObject(
+ hmi_zone_capabilities);
+}
+
+void HMICapabilities::set_soft_button_capabilities(
+ const smart_objects::SmartObject& soft_button_capabilities) {
+ if (soft_buttons_capabilities_) {
+ delete soft_buttons_capabilities_;
+ }
+ soft_buttons_capabilities_ = new smart_objects::SmartObject(
+ soft_button_capabilities);
+}
+
+void HMICapabilities::set_button_capabilities(
+ const smart_objects::SmartObject& button_capabilities) {
+ if (button_capabilities_) {
+ delete button_capabilities_;
+ }
+ button_capabilities_ = new smart_objects::SmartObject(button_capabilities);
+}
+
+void HMICapabilities::set_vr_capabilities(
+ const smart_objects::SmartObject& vr_capabilities) {
+ if (vr_capabilities_) {
+ delete vr_capabilities_;
+ }
+ vr_capabilities_ = new smart_objects::SmartObject(vr_capabilities);
+}
+
+void HMICapabilities::set_speech_capabilities(
+ const smart_objects::SmartObject& speech_capabilities) {
+ if (speech_capabilities_) {
+ delete speech_capabilities_;
+ }
+ speech_capabilities_ = new smart_objects::SmartObject(speech_capabilities);
+}
+
+void HMICapabilities::set_audio_pass_thru_capabilities(
+ const smart_objects::SmartObject& audio_pass_thru_capabilities) {
+ if (audio_pass_thru_capabilities_) {
+ delete audio_pass_thru_capabilities_;
+ }
+ audio_pass_thru_capabilities_ = new smart_objects::SmartObject(
+ audio_pass_thru_capabilities);
+}
+
+void HMICapabilities::set_preset_bank_capabilities(
+ const smart_objects::SmartObject& preset_bank_capabilities) {
+ if (preset_bank_capabilities_) {
+ delete preset_bank_capabilities_;
+ }
+ preset_bank_capabilities_ = new smart_objects::SmartObject(
+ preset_bank_capabilities);
+}
+
+void HMICapabilities::set_vehicle_type(
+ const smart_objects::SmartObject& vehicle_type) {
+ if (vehicle_type_) {
+ delete vehicle_type_;
+ }
+ vehicle_type_ = new smart_objects::SmartObject(vehicle_type);
+}
+
+void HMICapabilities::set_prerecorded_speech(
+ const smart_objects::SmartObject& prerecorded_speech) {
+ if (prerecorded_speech_) {
+ delete prerecorded_speech_;
+ prerecorded_speech_ = NULL;
+ }
+ prerecorded_speech_ = new smart_objects::SmartObject(prerecorded_speech);
+}
+
+bool HMICapabilities::load_capabilities_from_file() {
+ std::string json_string;
+ std::string file_name =
+ profile::Profile::instance()->hmi_capabilities_file_name();
+
+ if (!file_system::FileExists(file_name)) {
+ return false;
+ }
+
+ if (!file_system::ReadFile(file_name, json_string)) {
+ return false;
+ }
+
+ try {
+ Json::Reader reader_;
+ Json::Value root_json;
+
+ bool result = reader_.parse(json_string, root_json, false);
+ if (!result) {
+ return false;
+ }
+ // UI
+ Json::Value ui = root_json.get("UI", "");
+ set_active_ui_language(
+ languages_enum_values.find(ui.get("language", "").asString())->second);
+
+ Json::Value languages = ui.get("languages", "");
+ smart_objects::SmartObject ui_languages =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+ for (int32_t i = 0; i < languages.size(); i++) {
+ ui_languages[i] =
+ languages_enum_values.find(languages[i].asString())->second;
+ }
+ set_ui_supported_languages(ui_languages);
+
+ Json::Value display_capabilities = ui.get("displayCapabilities", "");
+ smart_objects::SmartObject display_capabilities_so =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+ display_capabilities_so["displayType"] =
+ display_capabilities.get("displayType", "").asString();
+
+ display_capabilities_so["textFields"] =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+
+ Json::Value text_fields = display_capabilities.get("textFields", "");
+ for (int32_t i = 0; i < text_fields.size(); i++) {
+
+ // there is an issue with enum to string, therefore used string
+ display_capabilities_so["textFields"][i]["name"] =
+ text_fields_enum_name.find(text_fields[i].asString())->first;
+ }
+
+ display_capabilities_so["mediaClockFormats"] =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+ Json::Value media_clock_format =
+ display_capabilities.get("mediaClockFormats", "");
+ for (int32_t i = 0; i < media_clock_format.size(); i++) {
+ display_capabilities_so["mediaClockFormats"][i] =
+ media_clock_enum_name.find(media_clock_format[i].asString())->second;
+ }
+ display_capabilities_so["graphicSupported"] =
+ display_capabilities.get("graphicSupported", "").asBool();
+
+ Json::Value image_capabilities =
+ display_capabilities.get("imageCapabilities", "");
+ display_capabilities_so["imageCapabilities"] =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+ for (int32_t i = 0; i < image_capabilities.size(); i++) {
+ display_capabilities_so["imageCapabilities"][i] =
+ image_type_enum.find(image_capabilities[i].asString())->second;
+ }
+ set_display_capabilities(display_capabilities_so);
+
+ Json::Value audio_capabilities = ui.get("audioPassThruCapabilities", "");
+ smart_objects::SmartObject audio_capabilities_so =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+ int32_t i = 0;
+ audio_capabilities_so[i] =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+ audio_capabilities_so[i]["samplingRate"] =
+ sampling_rate_enum.find(
+ audio_capabilities.get("samplingRate", "").asString())->second;
+ audio_capabilities_so[i]["bitsPerSample"] =
+ bit_per_sample_enum.find(
+ audio_capabilities.get("bitsPerSample", "").asString())->second;
+ audio_capabilities_so[i]["audioType"] =
+ audio_type_enum.find(
+ audio_capabilities.get("audioType", "").asString())->second;
+ set_audio_pass_thru_capabilities(audio_capabilities_so);
+
+ smart_objects::SmartObject hmi_zone_capabilities_so =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+ int32_t index = 0;
+ hmi_zone_capabilities_so[index] =
+ hmi_zone_enum.find(ui.get("hmiZoneCapabilities", "").asString())->second;
+ set_hmi_zone_capabilities(hmi_zone_capabilities_so);
+
+ Json::Value soft_button_capabilities = ui.get("softButtonCapabilities", "");
+ smart_objects::SmartObject soft_button_capabilities_so =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+ soft_button_capabilities_so["shortPressAvailable"] =
+ soft_button_capabilities.get("shortPressAvailable", "").asBool();
+ soft_button_capabilities_so["longPressAvailable"] =
+ soft_button_capabilities.get("longPressAvailable", "").asBool();
+ soft_button_capabilities_so["upDownAvailable"] =
+ soft_button_capabilities.get("upDownAvailable", "").asBool();
+ soft_button_capabilities_so["imageSupported"] =
+ soft_button_capabilities.get("imageSupported", "").asBool();
+ set_soft_button_capabilities(soft_button_capabilities_so);
+
+ // VR
+ Json::Value vr = root_json.get("VR", "");
+ set_active_vr_language(
+ languages_enum_values.find(vr.get("language", "").asString())->second);
+
+ languages = vr.get("languages", "");
+ smart_objects::SmartObject vr_languages =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+ for (int32_t i = 0; i < languages.size(); i++) {
+ vr_languages[i] =
+ languages_enum_values.find(languages[i].asString())->second;
+ }
+ set_vr_supported_languages(ui_languages);
+
+ Json::Value capabilities = vr.get("capabilities", "");
+ smart_objects::SmartObject vr_capabilities =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+ for (int32_t i = 0; i < capabilities.size(); i++) {
+ vr_capabilities[i] =
+ vr_enum_capabilities.find(capabilities[i].asString())->second;
+ }
+ set_vr_capabilities(vr_capabilities);
+
+ // TTS
+ Json::Value tts = root_json.get("TTS", "");
+ set_active_tts_language(
+ languages_enum_values.find(tts.get("language", "").asString())->second);
+
+ languages = tts.get("languages", "");
+ smart_objects::SmartObject tts_languages =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+ for (int32_t i = 0; i < languages.size(); i++) {
+ tts_languages[i] =
+ languages_enum_values.find(languages[i].asString())->second;
+ }
+ set_tts_supported_languages(ui_languages);
+ set_speech_capabilities(
+ smart_objects::SmartObject(tts.get("capabilities", "").asString()));
+
+ // Buttons
+ Json::Value buttons = root_json.get("Buttons", "");
+ Json::Value bt_capabilities = buttons.get("capabilities", "");
+ smart_objects::SmartObject buttons_capabilities =
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
+ for (int32_t i = 0; i < bt_capabilities.size(); i++) {
+ smart_objects::SmartObject button =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+ button["name"] =
+ button_enum_name.find(bt_capabilities[i].get("name", "").asString())->second;
+ button["shortPressAvailable"] =
+ bt_capabilities[i].get("shortPressAvailable", "").asBool();
+ button["longPressAvailable"] =
+ bt_capabilities[i].get("longPressAvailable", "").asBool();
+ button["upDownAvailable"] =
+ bt_capabilities[i].get("upDownAvailable", "").asBool();
+
+ buttons_capabilities[i] = button;
+ }
+ set_button_capabilities(buttons_capabilities);
+
+ Json::Value presetBank = buttons.get("presetBankCapabilities", "");
+ smart_objects::SmartObject preset_bank =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+ preset_bank["onScreenPresetsAvailable"] =
+ presetBank.get("onScreenPresetsAvailable", "").asBool();
+ set_preset_bank_capabilities(preset_bank);
+
+ // VehicleType
+ Json::Value vehicle_info = root_json.get("VehicleInfo", "");
+ smart_objects::SmartObject vehicle_type =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+ vehicle_type["make"] = vehicle_info.get("make", "").asString();
+ vehicle_type["model"] = vehicle_info.get("model", "").asString();
+ vehicle_type["modelYear"] = vehicle_info.get("modelYear", "").asString();
+ vehicle_type["trim"] = vehicle_info.get("trim", "").asString();
+ set_vehicle_type(vehicle_type);
+
+ } catch (...) {
+ return false;
+ }
+ return true;
+}
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/hmi_command_factory.cc b/SDL_Core/src/components/application_manager/src/hmi_command_factory.cc
new file mode 100644
index 000000000..0612d859e
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/hmi_command_factory.cc
@@ -0,0 +1,1880 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/hmi_command_factory.h"
+
+#include "application_manager/message.h"
+#include "interfaces/HMI_API.h"
+
+#include "application_manager/commands/hmi/update_device_list_request.h"
+#include "application_manager/commands/hmi/update_device_list_response.h"
+#include "application_manager/commands/hmi/on_update_device_list.h"
+#include "application_manager/commands/hmi/on_start_device_discovery.h"
+#include "application_manager/commands/hmi/update_app_list_request.h"
+#include "application_manager/commands/hmi/update_app_list_response.h"
+#include "application_manager/commands/hmi/on_find_applications.h"
+#include "application_manager/commands/hmi/allow_all_apps_request.h"
+#include "application_manager/commands/hmi/allow_all_apps_response.h"
+#include "application_manager/commands/hmi/allow_app_request.h"
+#include "application_manager/commands/hmi/allow_app_response.h"
+#include "application_manager/commands/hmi/activate_app_request.h"
+#include "application_manager/commands/hmi/activate_app_response.h"
+#include "application_manager/commands/hmi/mixing_audio_supported_request.h"
+#include "application_manager/commands/hmi/mixing_audio_supported_response.h"
+#include "application_manager/commands/hmi/on_app_activated_notification.h"
+#include "application_manager/commands/hmi/on_exit_all_applications_notification.h"
+#include "application_manager/commands/hmi/on_exit_application_notification.h"
+#include "application_manager/commands/hmi/close_popup_request.h"
+#include "application_manager/commands/hmi/close_popup_response.h"
+#include "application_manager/commands/hmi/button_get_capabilities_request.h"
+#include "application_manager/commands/hmi/button_get_capabilities_response.h"
+#include "application_manager/commands/hmi/ui_add_command_request.h"
+#include "application_manager/commands/hmi/ui_add_command_response.h"
+#include "application_manager/commands/hmi/ui_delete_command_request.h"
+#include "application_manager/commands/hmi/ui_delete_command_response.h"
+#include "application_manager/commands/hmi/ui_add_submenu_request.h"
+#include "application_manager/commands/hmi/ui_add_submenu_response.h"
+#include "application_manager/commands/hmi/ui_delete_submenu_request.h"
+#include "application_manager/commands/hmi/ui_delete_submenu_response.h"
+#include "application_manager/commands/hmi/ui_get_supported_languages_request.h"
+#include "application_manager/commands/hmi/ui_get_supported_languages_response.h"
+#include "application_manager/commands/hmi/ui_get_language_request.h"
+#include "application_manager/commands/hmi/ui_get_language_response.h"
+#include "application_manager/commands/hmi/ui_get_capabilities_request.h"
+#include "application_manager/commands/hmi/ui_get_capabilities_response.h"
+#include "application_manager/commands/hmi/ui_change_registration_request.h"
+#include "application_manager/commands/hmi/ui_change_registration_response.h"
+#include "application_manager/commands/hmi/ui_show_request.h"
+#include "application_manager/commands/hmi/ui_show_response.h"
+#include "application_manager/commands/hmi/ui_alert_request.h"
+#include "application_manager/commands/hmi/ui_alert_response.h"
+#include "application_manager/commands/hmi/ui_is_ready_request.h"
+#include "application_manager/commands/hmi/ui_is_ready_response.h"
+#include "application_manager/commands/hmi/ui_slider_request.h"
+#include "application_manager/commands/hmi/ui_slider_response.h"
+#include "application_manager/commands/hmi/ui_set_media_clock_timer_request.h"
+#include "application_manager/commands/hmi/ui_set_media_clock_timer_response.h"
+#include "application_manager/commands/hmi/ui_set_global_properties_request.h"
+#include "application_manager/commands/hmi/ui_set_global_properties_response.h"
+#include "application_manager/commands/hmi/ui_scrollable_message_request.h"
+#include "application_manager/commands/hmi/ui_scrollable_message_response.h"
+#include "application_manager/commands/hmi/ui_set_icon_request.h"
+#include "application_manager/commands/hmi/ui_set_icon_response.h"
+#include "application_manager/commands/hmi/ui_perform_audio_pass_thru_response.h"
+#include "application_manager/commands/hmi/ui_perform_audio_pass_thru_request.h"
+#include "application_manager/commands/hmi/ui_end_audio_pass_thru_response.h"
+#include "application_manager/commands/hmi/ui_end_audio_pass_thru_request.h"
+#include "application_manager/commands/hmi/ui_perform_interaction_request.h"
+#include "application_manager/commands/hmi/ui_perform_interaction_response.h"
+#include "application_manager/commands/hmi/vr_is_ready_request.h"
+#include "application_manager/commands/hmi/vr_is_ready_response.h"
+#include "application_manager/commands/hmi/vr_add_command_request.h"
+#include "application_manager/commands/hmi/vr_add_command_response.h"
+#include "application_manager/commands/hmi/vr_delete_command_request.h"
+#include "application_manager/commands/hmi/vr_delete_command_response.h"
+#include "application_manager/commands/hmi/vr_change_registration_request.h"
+#include "application_manager/commands/hmi/vr_change_registration_response.h"
+#include "application_manager/commands/hmi/vr_get_supported_languages_request.h"
+#include "application_manager/commands/hmi/vr_get_supported_languages_response.h"
+#include "application_manager/commands/hmi/vr_get_language_request.h"
+#include "application_manager/commands/hmi/vr_get_language_response.h"
+#include "application_manager/commands/hmi/vr_get_capabilities_request.h"
+#include "application_manager/commands/hmi/vr_get_capabilities_response.h"
+#include "application_manager/commands/hmi/tts_is_ready_request.h"
+#include "application_manager/commands/hmi/tts_is_ready_response.h"
+#include "application_manager/commands/hmi/tts_change_registration_request.h"
+#include "application_manager/commands/hmi/tts_change_registration_response.h"
+#include "application_manager/commands/hmi/tts_get_supported_languages_request.h"
+#include "application_manager/commands/hmi/tts_get_supported_languages_response.h"
+#include "application_manager/commands/hmi/tts_get_language_request.h"
+#include "application_manager/commands/hmi/tts_get_language_response.h"
+#include "application_manager/commands/hmi/tts_stop_speaking_request.h"
+#include "application_manager/commands/hmi/tts_stop_speaking_response.h"
+#include "application_manager/commands/hmi/tts_speak_request.h"
+#include "application_manager/commands/hmi/tts_speak_response.h"
+#include "application_manager/commands/hmi/tts_set_global_properties_request.h"
+#include "application_manager/commands/hmi/tts_set_global_properties_response.h"
+#include "application_manager/commands/hmi/tts_get_capabilities_request.h"
+#include "application_manager/commands/hmi/tts_get_capabilities_response.h"
+#include "application_manager/commands/hmi/tts_perform_interaction_request.h"
+#include "application_manager/commands/hmi/tts_perform_interaction_response.h"
+#include "application_manager/commands/hmi/vi_is_ready_request.h"
+#include "application_manager/commands/hmi/vi_is_ready_response.h"
+#include "application_manager/commands/hmi/vi_read_did_request.h"
+#include "application_manager/commands/hmi/vi_read_did_response.h"
+
+#ifdef WEB_HMI
+#include "application_manager/commands/hmi/vi_get_vehicle_data_request.h"
+#include "application_manager/commands/hmi/vi_get_vehicle_data_response.h"
+#include "application_manager/commands/hmi/on_vi_vehicle_data_notification.h"
+#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_request.h"
+#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_response.h"
+#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request.h"
+#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response.h"
+#endif // #ifdef WEB_HMI
+
+#ifdef QT_HMI
+#include "application_manager/commands/hmi/vi_get_vehicle_data_request_template.h"
+#include "application_manager/commands/hmi/vi_get_vehicle_data_response_template.h"
+#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_request_template.h"
+#include "application_manager/commands/hmi/vi_subscribe_vehicle_data_response_template.h"
+#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_request_template.h"
+#include "application_manager/commands/hmi/vi_unsubscribe_vehicle_data_response_template.h"
+#include "application_manager/commands/hmi/on_vi_gps_data_notification.h"
+#include "application_manager/commands/hmi/on_vi_speed_notification.h"
+#include "application_manager/commands/hmi/on_vi_rpm_notification.h"
+#include "application_manager/commands/hmi/on_vi_fuel_level_notification.h"
+#include "application_manager/commands/hmi/on_vi_fuel_level_state_notification.h"
+#include "application_manager/commands/hmi/on_vi_instant_fuel_consumption_notification.h"
+#include "application_manager/commands/hmi/on_vi_external_temperature_notification.h"
+#include "application_manager/commands/hmi/on_vi_vin_notification.h"
+#include "application_manager/commands/hmi/on_vi_prndl_notification.h"
+#include "application_manager/commands/hmi/on_vi_tire_pressure_notification.h"
+#include "application_manager/commands/hmi/on_vi_odometer_notification.h"
+#include "application_manager/commands/hmi/on_vi_belt_status_notification.h"
+#include "application_manager/commands/hmi/on_vi_body_information_notification.h"
+#include "application_manager/commands/hmi/on_vi_device_status_notification.h"
+#include "application_manager/commands/hmi/on_vi_driver_braking_notification.h"
+#include "application_manager/commands/hmi/on_vi_wiper_status_notification.h"
+#include "application_manager/commands/hmi/on_vi_head_lamp_status_notification.h"
+#include "application_manager/commands/hmi/on_vi_engine_torque_notification.h"
+#include "application_manager/commands/hmi/on_vi_acc_pedal_position_notification.h"
+#include "application_manager/commands/hmi/on_vi_steering_wheel_angle_notification.h"
+#include "application_manager/commands/hmi/on_vi_my_key_notification.h"
+#endif // #ifdef QT_HMI
+
+#include "application_manager/commands/hmi/vi_get_dtcs_request.h"
+#include "application_manager/commands/hmi/vi_get_dtcs_response.h"
+#include "application_manager/commands/hmi/vi_diagnostic_message_request.h"
+#include "application_manager/commands/hmi/vi_diagnostic_message_response.h"
+#include "application_manager/commands/hmi/vi_get_vehicle_type_request.h"
+#include "application_manager/commands/hmi/vi_get_vehicle_type_response.h"
+#include "application_manager/commands/hmi/navi_is_ready_request.h"
+#include "application_manager/commands/hmi/navi_show_constant_tbt_request.h"
+#include "application_manager/commands/hmi/navi_show_constant_tbt_response.h"
+#include "application_manager/commands/hmi/navi_is_ready_response.h"
+#include "application_manager/commands/hmi/navi_alert_maneuver_request.h"
+#include "application_manager/commands/hmi/navi_alert_maneuver_response.h"
+#include "application_manager/commands/hmi/navi_update_turn_list_request.h"
+#include "application_manager/commands/hmi/navi_update_turn_list_response.h"
+#include "application_manager/commands/hmi/on_ready_notification.h"
+#include "application_manager/commands/hmi/on_device_chosen_notification.h"
+#include "application_manager/commands/hmi/on_system_context_notification.h"
+#include "application_manager/commands/hmi/on_app_registered_notification.h"
+#include "application_manager/commands/hmi/on_app_unregistered_notification.h"
+#include "application_manager/commands/hmi/on_driver_distraction_notification.h"
+#include "application_manager/commands/hmi/on_play_tone_notification.h"
+#include "application_manager/commands/hmi/on_tts_started_notification.h"
+#include "application_manager/commands/hmi/on_tts_stopped_notification.h"
+#include "application_manager/commands/hmi/on_vr_started_notification.h"
+#include "application_manager/commands/hmi/on_vr_stopped_notification.h"
+#include "application_manager/commands/hmi/on_vr_command_notification.h"
+#include "application_manager/commands/hmi/on_ui_command_notification.h"
+#include "application_manager/commands/hmi/on_app_deactivated_notification.h"
+#include "application_manager/commands/hmi/on_ui_language_change_notification.h"
+#include "application_manager/commands/hmi/on_vr_language_change_notification.h"
+#include "application_manager/commands/hmi/on_tts_language_change_notification.h"
+#include "application_manager/commands/hmi/on_navi_tbt_client_state_notification.h"
+#include "application_manager/commands/hmi/on_button_event_notification.h"
+#include "application_manager/commands/hmi/on_button_press_notification.h"
+#include "application_manager/commands/hmi/on_show_notification.h"
+#include "application_manager/commands/hmi/on_vi_vehicle_data_notification.h"
+#include "application_manager/commands/hmi/on_ui_keyboard_input_notification.h"
+#include "application_manager/commands/hmi/on_ui_touch_event_notification.h"
+#include "application_manager/commands/hmi/on_ui_reset_timeout_notification.h"
+#include "application_manager/commands/hmi/navi_start_stream_request.h"
+#include "application_manager/commands/hmi/navi_start_stream_response.h"
+#include "application_manager/commands/hmi/navi_stop_stream_request.h"
+#include "application_manager/commands/hmi/navi_stop_stream_response.h"
+#include "application_manager/commands/hmi/audio_start_stream_request.h"
+#include "application_manager/commands/hmi/audio_start_stream_response.h"
+#include "application_manager/commands/hmi/audio_stop_stream_request.h"
+#include "application_manager/commands/hmi/audio_stop_stream_response.h"
+#include "application_manager/commands/hmi/on_system_request_notification.h"
+#include "application_manager/commands/hmi/ui_set_display_layout_request.h"
+#include "application_manager/commands/hmi/ui_set_display_layout_response.h"
+#include "application_manager/commands/hmi/on_sdl_close_notification.h"
+
+namespace application_manager {
+
+log4cxx::LoggerPtr HMICommandFactory::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("ApplicationManager"));
+
+CommandSharedPtr HMICommandFactory::CreateCommand(
+ const MessageSharedPtr& message) {
+ const int function_id = (*message)[strings::params][strings::function_id]
+ .asInt();
+ LOG4CXX_INFO(logger_,
+ "HMICommandFactory::CreateCommand function_id: " << function_id);
+
+ CommandSharedPtr command(
+ new application_manager::commands::CommandImpl(message));
+
+ bool is_response = false;
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ is_response = true;
+ LOG4CXX_INFO(logger_, "HMICommandFactory::CreateCommand response");
+ } else if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kErrorResponse)) {
+ is_response = true;
+ LOG4CXX_INFO(logger_, "HMICommandFactory::CreateCommand error response");
+ } else {
+ LOG4CXX_INFO(logger_, "HMICommandFactory::CreateCommand request");
+ }
+
+ switch (function_id) {
+ case hmi_apis::FunctionID::BasicCommunication_OnStartDeviceDiscovery: {
+ command.reset(new commands::OnStartDeviceDiscovery(message));
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_UpdateDeviceList: {
+ if (is_response) {
+ command.reset(new commands::UpdateDeviceListResponse(message));
+ } else {
+ command.reset(new commands::UpdateDeviceListRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_AllowAllApps: {
+ if (is_response) {
+ command.reset(new commands::AllowAllAppsResponse(message));
+ } else {
+ command.reset(new commands::AllowAllAppsRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_AllowApp: {
+ if (is_response) {
+ command.reset(new commands::AllowAppResponse(message));
+ } else {
+ command.reset(new commands::AllowAppRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_ActivateApp: {
+ if (is_response) {
+ command.reset(new commands::ActivateAppResponse(message));
+ } else {
+ command.reset(new commands::ActivateAppRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_MixingAudioSupported: {
+ if (is_response) {
+ command.reset(new commands::MixingAudioSupportedResponse(message));
+ } else {
+ command.reset(new commands::MixingAudioSupportedRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnExitAllApplications: {
+ command.reset(new commands::OnExitAllApplicationsNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::UI_AddCommand: {
+ if (is_response) {
+ command.reset(new commands::UIAddCommandResponse(message));
+ } else {
+ command.reset(new commands::UIAddCommandRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_DeleteCommand: {
+ if (is_response) {
+ command.reset(new commands::UIDeleteCommandResponse(message));
+ } else {
+ command.reset(new commands::UIDeleteCommandRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_AddSubMenu: {
+ if (is_response) {
+ command.reset(new commands::UIAddSubmenuResponse(message));
+ } else {
+ command.reset(new commands::UIAddSubmenuRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_DeleteSubMenu: {
+ if (is_response) {
+ command.reset(new commands::UIDeleteSubmenuResponse(message));
+ } else {
+ command.reset(new commands::UIDeleteSubmenuRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_SetMediaClockTimer: {
+ if (is_response) {
+ command.reset(new commands::UISetMediaClockTimerResponse(message));
+ } else {
+ command.reset(new commands::UISetMediaClockTimerRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_PerformInteraction: {
+ if (is_response) {
+ command.reset(new commands::UIPerformInteractionResponse(message));
+ } else {
+ command.reset(new commands::UIPerformInteractionRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_SetGlobalProperties: {
+ if (is_response) {
+ command.reset(new commands::UISetGlobalPropertiesResponse(message));
+ } else {
+ command.reset(new commands::UISetGlobalPropertiesRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_ScrollableMessage: {
+ if (is_response) {
+ command.reset(new commands::UIScrollableMessageResponse(message));
+ } else {
+ command.reset(new commands::UIScrollableMessageRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_SetAppIcon: {
+ if (is_response) {
+ command.reset(new commands::UISetIconResponse(message));
+ } else {
+ command.reset(new commands::UISetIconRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_GetSupportedLanguages: {
+ if (is_response) {
+ command.reset(new commands::UIGetSupportedLanguagesResponse(message));
+ } else {
+ command.reset(new commands::UIGetSupportedLanguagesRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_GetLanguage: {
+ if (is_response) {
+ command.reset(new commands::UIGetLanguageResponse(message));
+ } else {
+ command.reset(new commands::UIGetLanguageRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_GetCapabilities: {
+ if (is_response) {
+ command.reset(new commands::UIGetCapabilitiesResponse(message));
+ } else {
+ command.reset(new commands::UIGetCapabilitiesRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_ChangeRegistration: {
+ if (is_response) {
+ command.reset(new commands::UIChangeRegistratioResponse(message));
+ } else {
+ command.reset(new commands::UIChangeRegistrationRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_PerformAudioPassThru: {
+ if (is_response) {
+ command.reset(new commands::UIPerformAudioPassThruResponse(message));
+ } else {
+ command.reset(new commands::UIPerformAudioPassThruRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_EndAudioPassThru: {
+ if (is_response) {
+ command.reset(new commands::UIEndAudioPassThruResponse(message));
+ } else {
+ command.reset(new commands::UIEndAudioPassThruRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_Alert: {
+ if (is_response) {
+ command.reset(new commands::UIAlertResponse(message));
+ } else {
+ command.reset(new commands::UIAlertRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VR_IsReady: {
+ if (is_response) {
+ command.reset(new commands::VRIsReadyResponse(message));
+ } else {
+ command.reset(new commands::VRIsReadyRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VR_AddCommand: {
+ if (is_response) {
+ command.reset(new commands::VRAddCommandResponse(message));
+ } else {
+ command.reset(new commands::VRAddCommandRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VR_DeleteCommand: {
+ if (is_response) {
+ command.reset(new commands::VRDeleteCommandResponse(message));
+ } else {
+ command.reset(new commands::VRDeleteCommandRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VR_ChangeRegistration: {
+ if (is_response) {
+ command.reset(new commands::VRChangeRegistrationResponse(message));
+ } else {
+ command.reset(new commands::VRChangeRegistrationRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VR_GetSupportedLanguages: {
+ if (is_response) {
+ command.reset(new commands::VRGetSupportedLanguagesResponse(message));
+ } else {
+ command.reset(new commands::VRGetSupportedLanguagesRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VR_GetLanguage: {
+ if (is_response) {
+ command.reset(new commands::VRGetLanguageResponse(message));
+ } else {
+ command.reset(new commands::VRGetLanguageRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VR_GetCapabilities: {
+ if (is_response) {
+ command.reset(new commands::VRGetCapabilitiesResponse(message));
+ } else {
+ command.reset(new commands::VRGetCapabilitiesRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_IsReady: {
+ if (is_response) {
+ command.reset(new commands::TTSIsReadyResponse(message));
+ } else {
+ command.reset(new commands::TTSIsReadyRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_ChangeRegistration: {
+ if (is_response) {
+ command.reset(new commands::TTSChangeRegistratioResponse(message));
+ } else {
+ command.reset(new commands::TTSChangeRegistrationRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_GetSupportedLanguages: {
+ if (is_response) {
+ command.reset(new commands::TTSGetSupportedLanguagesResponse(message));
+ } else {
+ command.reset(new commands::TTSGetSupportedLanguagesRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_StopSpeaking: {
+ if (is_response) {
+ command.reset(new commands::TTSStopSpeakingResponse(message));
+ } else {
+ command.reset(new commands::TTSStopSpeakingRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_GetLanguage: {
+ if (is_response) {
+ command.reset(new commands::TTSGetLanguageResponse(message));
+ } else {
+ command.reset(new commands::TTSGetLanguageRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_Speak: {
+ if (is_response) {
+ command.reset(new commands::TTSSpeakResponse(message));
+ } else {
+ command.reset(new commands::TTSSpeakRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_SetGlobalProperties: {
+ if (is_response) {
+ command.reset(new commands::TTSSetGlobalPropertiesResponse(message));
+ } else {
+ command.reset(new commands::TTSSetGlobalPropertiesRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_GetCapabilities: {
+ if (is_response) {
+ command.reset(new commands::TTSGetCapabilitiesResponse(message));
+ } else {
+ command.reset(new commands::TTSGetCapabilitiesRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_Started: {
+ command.reset(new commands::OnTTSStartedNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_Stopped: {
+ command.reset(new commands::OnTTSStoppedNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnAppActivated: {
+ command.reset(new commands::OnAppActivatedNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnExitApplication: {
+ command.reset(new commands::OnExitApplicationNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::UI_Show: {
+ if (is_response) {
+ command.reset(new commands::UIShowResponse(message));
+ } else {
+ command.reset(new commands::UIShowRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_Slider: {
+ if (is_response) {
+ command.reset(new commands::UISliderResponse(message));
+ } else {
+ command.reset(new commands::UISliderRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_ClosePopUp: {
+ if (is_response) {
+ command.reset(new commands::ClosePopupResponse(message));
+ } else {
+ command.reset(new commands::ClosePopupRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::UI_IsReady: {
+ if (is_response) {
+ command.reset(new commands::UIIsReadyResponse(message));
+ } else {
+ command.reset(new commands::UIIsReadyRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_IsReady: {
+ if (is_response) {
+ command.reset(new commands::VIIsReadyResponse(message));
+ } else {
+ command.reset(new commands::VIIsReadyRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_ReadDID: {
+ if (is_response) {
+ command.reset(new commands::VIReadDIDResponse(message));
+ } else {
+ command.reset(new commands::VIReadDIDRequest(message));
+ }
+ break;
+ }
+#ifdef WEB_HMI
+ case hmi_apis::FunctionID::VehicleInfo_GetVehicleData: {
+ if (is_response) {
+ command.reset(new commands::VIGetVehicleDataResponse(message));
+ } else {
+ command.reset(new commands::VIGetVehicleDataRequest(message));
+ }
+ break;
+ }
+#endif // #ifdef WEB_HMI
+#ifdef QT_HMI
+ case hmi_apis::FunctionID::VehicleInfo_GetGpsData: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetGpsData>(message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetGpsData>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetSpeed: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetSpeed>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetSpeed>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetRpm: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetRpm>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetRpm>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetFuelLevel: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetFuelLevel>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetFuelLevel>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetFuelLevelState>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption>(
+ message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetInstantFuelConsumption>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature>(
+ message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetExternalTemperature>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetPrndl: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetPrndl>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetPrndl>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetVin: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetVin>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetVin>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetTirePressure: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetTirePressure>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetTirePressure>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetOdometer: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetOdometer>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetOdometer>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetBeltStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetBeltStatus>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetBeltStatus>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetBodyInformation: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetBodyInformation>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetBodyInformation>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetDeviceStatus>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetDriverBraking: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetDriverBraking>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetDriverBraking>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetWiperStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetWiperStatus>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetWiperStatus>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetHeadLampStatus>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetEngineTorque: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetEngineTorque>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetEngineTorque>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition>(
+ message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetAccPedalPosition>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle>(
+ message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetSteeringWheelAngle>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetECallInfo: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetECallInfo>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetECallInfo>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetAirbagStatus>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetEmergencyEvent>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetClusterModeStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetMyKey: {
+ if (is_response)
+ command.reset(
+ new commands::VIGetVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetMyKey>(message));
+ else
+ command.reset(
+ new commands::VIGetVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_GetMyKey>(message));
+ break;
+ }
+#endif // #ifdef QT_HMI
+ case hmi_apis::FunctionID::VehicleInfo_GetDTCs: {
+ if (is_response) {
+ command.reset(new commands::VIGetDTCsResponse(message));
+ } else {
+ command.reset(new commands::VIGetDTCsRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_DiagnosticMessage: {
+ if (is_response) {
+ command.reset(new commands::VIDiagnosticMessageResponse(message));
+ } else {
+ command.reset(new commands::VIDiagnosticMessageRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_GetVehicleType: {
+ if (is_response) {
+ command.reset(new commands::VIGetVehicleTypeResponse(message));
+ } else {
+ command.reset(new commands::VIGetVehicleTypeRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::Navigation_IsReady: {
+ if (is_response) {
+ command.reset(new commands::NaviIsReadyResponse(message));
+ } else {
+ command.reset(new commands::NaviIsReadyRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::Navigation_AlertManeuver: {
+ if (is_response) {
+ command.reset(new commands::NaviAlertManeuverResponse(message));
+ } else {
+ command.reset(new commands::NaviAlertManeuverRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::Navigation_UpdateTurnList: {
+ if (is_response) {
+ command.reset(new commands::NaviUpdateTurnListResponse(message));
+ } else {
+ command.reset(new commands::NaviUpdateTurnListRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::Navigation_ShowConstantTBT: {
+ if (is_response) {
+ command.reset(new commands::NaviShowConstantTBTResponse(message));
+ } else {
+ command.reset(new commands::NaviShowConstantTBTRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::Buttons_GetCapabilities: {
+ if (is_response) {
+ command.reset(new commands::ButtonGetCapabilitiesResponse(message));
+ } else {
+ command.reset(new commands::ButtonGetCapabilitiesRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_PlayTone: {
+ command.reset(new commands::OnPlayToneNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnReady: {
+ command.reset(new commands::OnReadyNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnDeviceChosen: {
+ command.reset(new commands::OnDeviceChosenNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::UI_OnSystemContext: {
+ command.reset(new commands::OnSystemContextNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::UI_OnDriverDistraction: {
+ command.reset(
+ new commands::hmi::OnDriverDistractionNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnUpdateDeviceList: {
+ command.reset(new commands::OnUpdateDeviceList(message));
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnAppRegistered: {
+ command.reset(new commands::OnAppRegisteredNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered: {
+ command.reset(new commands::OnAppUnregisteredNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnFindApplications: {
+ command.reset(new commands::OnFindApplications(message));
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_UpdateAppList: {
+ if (is_response) {
+ command.reset(new commands::UpdateAppListResponse(message));
+ } else {
+ command.reset(new commands::UpdateAppListRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::VR_Started: {
+ command.reset(new commands::OnVRStartedNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VR_Stopped: {
+ command.reset(new commands::OnVRStoppedNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VR_OnCommand: {
+ command.reset(new commands::OnVRCommandNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::UI_OnCommand: {
+ command.reset(new commands::OnUICommandNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnAppDeactivated: {
+ command.reset(new commands::OnAppDeactivatedNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::UI_OnLanguageChange: {
+ command.reset(new commands::OnUILanguageChangeNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VR_OnLanguageChange: {
+ command.reset(new commands::OnVRLanguageChangeNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_OnLanguageChange: {
+ command.reset(new commands::OnTTSLanguageChangeNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::Buttons_OnButtonEvent: {
+ command.reset(new commands::hmi::OnButtonEventNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::Buttons_OnButtonPress: {
+ command.reset(new commands::hmi::OnButtonPressNotification(message));
+ break;
+ }
+#ifdef WEB_HMI
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData: {
+ if (is_response) {
+ command.reset(new commands::VISubscribeVehicleDataResponse(message));
+ } else {
+ command.reset(new commands::VISubscribeVehicleDataRequest(message));
+ }
+ break;
+ }
+#endif // #ifdef WEB_HMI
+#ifdef QT_HMI
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeGps: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeGps>(message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeGps>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed>(message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeRpm: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeRpm>(message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeRpm>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel>(message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribePrndl: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribePrndl>(message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribePrndl>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeVin: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeVin>(message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeVin>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer>(message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo>(message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey: {
+ if (is_response)
+ command.reset(
+ new commands::VISubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey>(message));
+ else
+ command.reset(
+ new commands::VISubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey>(message));
+ break;
+ }
+#endif // #ifdef QT_HMI
+#ifdef WEB_HMI
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeVehicleData: {
+ if (is_response) {
+ command.reset(new commands::VIUnsubscribeVehicleDataResponse(message));
+ } else {
+ command.reset(new commands::VIUnsubscribeVehicleDataRequest(message));
+ }
+ break;
+ }
+#endif // #ifdef WEB_HMI
+#ifdef QT_HMI
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps>(message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeGps>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed>(message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeSpeed>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm>(message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeRpm>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeFuelLevel_State>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeInstantFuelConsumption>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeExternalTemperature>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl>(message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribePrndl>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin>(message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeVin>(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeTirePressure>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeOdometer>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeBeltStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeBodyInformation>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeDeviceStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeDriverBraking>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeWiperStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeHeadLampStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeEngineTorque>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeAccPedalPosition>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeSteeringWheelAngle>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeECallInfo>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeAirbagStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeEmergencyEvent>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus>(
+ message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeClusterModeStatus>(
+ message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey: {
+ if (is_response)
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataResponseTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey>(message));
+ else
+ command.reset(
+ new commands::VIUnsubscribeVehicleDataRequestTemplate<
+ hmi_apis::FunctionID::VehicleInfo_UnsubscribeMyKey>(message));
+ break;
+ }
+#endif // #ifdef QT_HMI
+#ifdef WEB_HMI
+ case hmi_apis::FunctionID::VehicleInfo_OnVehicleData: {
+ command.reset(new commands::OnVIVehicleDataNotification(message));
+ break;
+ }
+#endif // #ifdef WEB_HMI
+#ifdef QT_HMI
+ case hmi_apis::FunctionID::VehicleInfo_OnGpsData: {
+ command.reset(new commands::OnVIGpsDataNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnSpeed: {
+ command.reset(new commands::OnVISpeedNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnRpm: {
+ command.reset(new commands::OnVIRpmNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnFuelLevel: {
+ command.reset(new commands::OnVIFuelLevelNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnFuelLevelState: {
+ command.reset(new commands::OnVIFuelLevelStateNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnInstantFuelConsumption: {
+ command.reset(
+ new commands::OnVIInstantFuelConsumptionNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnExternalTemperature: {
+ command.reset(new commands::OnVIExternalTemperatureNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnVin: {
+ command.reset(new commands::OnVIVinNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnPrndl: {
+ command.reset(new commands::OnVIPrndlNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnTirePressure: {
+ command.reset(new commands::OnVITirePressureNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnOdometer: {
+ command.reset(new commands::OnVIOdometerNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnBeltStatus: {
+ command.reset(new commands::OnVIBeltStatusNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnBodyInformation: {
+ command.reset(new commands::OnVIBodyInformationNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnDeviceStatus: {
+ command.reset(new commands::OnVIDeviceStatusNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnDriverBraking: {
+ command.reset(new commands::OnVIDriverBrakingNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnWiperStatus: {
+ command.reset(new commands::OnVIWiperStatusNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnHeadLampStatus: {
+ command.reset(new commands::OnVIHeadLampStatusNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnEngineTorque: {
+ command.reset(new commands::OnVIEngineTorqueNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnAccPedalPosition: {
+ command.reset(new commands::OnVIAccPedalPositionNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnSteeringWheelAngle: {
+ command.reset(new commands::OnVISteeringWheelAngleNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::VehicleInfo_OnMyKey: {
+ command.reset(new commands::OnVIMyKeyNotification(message));
+ break;
+ }
+#endif // #ifdef QT_HMI
+ case hmi_apis::FunctionID::UI_ShowNotification: {
+ command.reset(new commands::OnShowNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::Navigation_OnTBTClientState: {
+ command.reset(new commands::OnNaviTBTClientStateNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::UI_OnKeyboardInput: {
+ command.reset(new commands::hmi::OnUIKeyBoardInputNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::UI_OnTouchEvent: {
+ command.reset(new commands::hmi::OnUITouchEventNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::UI_OnResetTimeout: {
+ command.reset(new commands::hmi::OnUIResetTimeoutNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::Navigation_StartStream: {
+ if (is_response) {
+ command.reset(new commands::NaviStartStreamResponse(message));
+ } else {
+ command.reset(new commands::NaviStartStreamRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::Navigation_StopStream: {
+ if (is_response) {
+ command.reset(new commands::NaviStopStreamResponse(message));
+ } else {
+ command.reset(new commands::NaviStopStreamRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::Navigation_StartAudioStream: {
+ if (is_response) {
+ command.reset(new commands::AudioStartStreamResponse(message));
+ } else {
+ command.reset(new commands::AudioStartStreamRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::Navigation_StopAudioStream: {
+ if (is_response) {
+ command.reset(new commands::AudioStopStreamResponse(message));
+ } else {
+ command.reset(new commands::AudioStopStreamRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::TTS_PerformInteraction: {
+ if (is_response) {
+ command.reset(new commands::TTSPerformInteractionResponse(message));
+ } else {
+ command.reset(new commands::TTSPerformInteractionRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnSystemRequest: {
+ command.reset(new commands::OnSystemRequestNotification(message));
+ break;
+ }
+ case hmi_apis::FunctionID::UI_SetDisplayLayout: {
+ if (is_response) {
+ command.reset(new commands::UiSetDisplayLayoutResponse(message));
+ } else {
+ command.reset(new commands::UiSetDisplayLayoutRequest(message));
+ }
+ break;
+ }
+ case hmi_apis::FunctionID::BasicCommunication_OnSDLClose: {
+ command.reset(new commands::OnSDLCloseNotification(message));
+ break;
+ }
+ }
+
+ return command;
+}
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/message.cc b/SDL_Core/src/components/application_manager/src/message.cc
new file mode 100644
index 000000000..c5aef9790
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/message.cc
@@ -0,0 +1,186 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/message.h"
+
+namespace {
+bool BinaryDataPredicate(uint8_t i, uint8_t j) {
+ return (i == j);
+}
+}
+
+namespace application_manager {
+
+MessageType MessageTypeFromRpcType(protocol_handler::RpcType rpc_type) {
+ switch (rpc_type) {
+ case protocol_handler::kRpcTypeRequest:
+ return kRequest;
+ case protocol_handler::kRpcTypeResponse:
+ return kResponse;
+ case protocol_handler::kRpcTypeNotification:
+ return kNotification;
+ case protocol_handler::kRpcTypeReserved:
+ default:
+ DCHECK(false);
+ return kUnknownType;
+ }
+}
+
+Message::Message(protocol_handler::MessagePriority priority)
+ : function_id_(0),
+ type_(kUnknownType),
+ priority_(priority),
+ correlation_id_(0),
+ connection_key_(0),
+ binary_data_(NULL),
+ version_(kUnknownProtocol) {
+}
+
+Message::Message(const Message& message)
+ : priority_(message.priority_) {
+ *this = message;
+}
+
+Message& Message::operator=(const Message& message) {
+ set_function_id(message.function_id_);
+ set_correlation_id(message.correlation_id_);
+ set_connection_key(message.connection_key_);
+ set_message_type(message.type_);
+ if (message.binary_data_) {
+ set_binary_data(message.binary_data_);
+ }
+ set_json_message(message.json_message_);
+ set_protocol_version(message.protocol_version());
+ priority_ = message.priority_;
+
+ return *this;
+}
+
+bool Message::operator==(const Message& message) {
+ bool function_id = function_id_ == message.function_id_;
+ bool correlation_id = correlation_id_ == message.correlation_id_;
+ bool connection_key = connection_key_ == message.connection_key_;
+ bool type = type_ == message.type_;
+ bool json_message = json_message_ == message.json_message_;
+ bool version = version_ == message.version_;
+
+ bool binary_data = std::equal(binary_data_->begin(), binary_data_->end(),
+ message.binary_data_->begin(),
+ BinaryDataPredicate);
+
+ return function_id && correlation_id && connection_key && type && binary_data
+ && json_message && version;
+}
+
+Message::~Message() {
+ if (binary_data_) {
+ delete binary_data_;
+ }
+}
+
+int32_t Message::function_id() const {
+ return function_id_;
+}
+
+int32_t Message::correlation_id() const {
+ return correlation_id_;
+}
+
+int32_t Message::connection_key() const {
+ return connection_key_;
+}
+
+MessageType Message::type() const {
+ return type_;
+}
+
+ProtocolVersion Message::protocol_version() const {
+ return version_;
+}
+
+const std::string& Message::json_message() const {
+ return json_message_;
+}
+
+const BinaryData* Message::binary_data() const {
+ return binary_data_;
+}
+
+bool Message::has_binary_data() const {
+ return (binary_data_ != NULL);
+}
+
+void Message::set_function_id(int32_t id) {
+ function_id_ = id;
+}
+
+void Message::set_correlation_id(int32_t id) {
+ correlation_id_ = id;
+}
+
+void Message::set_connection_key(int32_t key) {
+ connection_key_ = key;
+}
+
+void Message::set_message_type(MessageType type) {
+ type_ = type;
+}
+
+void Message::set_binary_data(BinaryData* data) {
+ if (NULL == data) {
+ NOTREACHED();
+ return;
+ }
+
+ if (binary_data_) {
+ delete binary_data_;
+ }
+
+ binary_data_ = data;
+}
+
+void Message::set_json_message(const std::string& json_message) {
+ json_message_ = json_message;
+}
+
+void Message::set_protocol_version(ProtocolVersion version) {
+ version_ = version;
+}
+
+const smart_objects::SmartObject &Message::smart_object() const {
+ return smart_object_;
+}
+
+void Message::set_smart_object(const smart_objects::SmartObject& object) {
+ smart_object_ = object;
+}
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/message_helper.cc b/SDL_Core/src/components/application_manager/src/message_helper.cc
new file mode 100644
index 000000000..9e7bf4842
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/message_helper.cc
@@ -0,0 +1,1593 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <set>
+#include <string>
+#include <algorithm>
+
+#include "utils/macro.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/message_helper.h"
+#include "application_manager/commands/command_impl.h"
+#include "connection_handler/connection_handler_impl.h"
+#include "application_manager/application.h"
+#include "config_profile/profile.h"
+#include "utils/file_system.h"
+#include "interfaces/MOBILE_API.h"
+
+
+namespace {
+
+log4cxx::LoggerPtr g_logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("ApplicationManager"));
+
+hmi_apis::Common_Language::eType ToCommonLanguage(
+ mobile_apis::Language::eType mobile_language) {
+ // Update this check if mobile_api::Language
+ // or hmi_apis::Common_Language changes.
+ // Or, better, generate functions like this from XML
+ long lang_val = long(mobile_language);
+ long max_common_lang_val = long(hmi_apis::Common_Language::NO_NO);
+ long max_mobile_lang = long(mobile_apis::Language::NO_NO);
+ if (max_common_lang_val != max_mobile_lang) {
+ LOG4CXX_ERROR(g_logger, "Mapping between Common_Language and Language"
+ " has changed! Please update converter function");
+ }
+ if (lang_val > max_common_lang_val) {
+ LOG4CXX_ERROR(g_logger, "Non-convertable language ID");
+ }
+ return hmi_apis::Common_Language::eType(lang_val);
+}
+
+}
+
+namespace application_manager {
+
+namespace {
+
+bool ValidateSoftButtons(smart_objects::SmartObject& soft_buttons) {
+ using namespace smart_objects;
+ for (size_t i = 0; i < soft_buttons.length(); ++i) {
+ SmartObject& button = soft_buttons[i];
+
+ // Check if image parameter is valid
+ if (button.keyExists(strings::image)) {
+ SmartObject& buttonImage = button[strings::image];
+
+ // Image name must not be empty
+ std::string file_name = buttonImage[strings::value].asString();
+ file_name.erase(remove(file_name.begin(), file_name.end(), ' '), file_name.end());
+ if (file_name.empty()) {
+ return false;
+ }
+ }
+ }
+ return true;
+}
+
+}
+std::pair<const char*, VehicleDataType> kVehicleDataInitializer[] = {
+std::make_pair(strings::gps, VehicleDataType::GPS),
+std::make_pair(strings::speed, VehicleDataType::SPEED),
+std::make_pair(strings::rpm, VehicleDataType::RPM),
+std::make_pair(strings::fuel_level, VehicleDataType::FUELLEVEL),
+std::make_pair(strings::fuel_level_state, VehicleDataType::FUELLEVEL_STATE),
+std::make_pair(strings::instant_fuel_consumption, VehicleDataType::FUELCONSUMPTION),
+std::make_pair(strings::external_temp, VehicleDataType::EXTERNTEMP),
+std::make_pair(strings::vin, VehicleDataType::VIN ),
+std::make_pair(strings::prndl, VehicleDataType::PRNDL),
+std::make_pair(strings::tire_pressure, VehicleDataType::TIREPRESSURE),
+std::make_pair(strings::odometer, VehicleDataType::ODOMETER),
+std::make_pair(strings::belt_status, VehicleDataType::BELTSTATUS),
+std::make_pair(strings::body_information, VehicleDataType::BODYINFO),
+std::make_pair(strings::device_status, VehicleDataType::DEVICESTATUS),
+std::make_pair(strings::driver_braking, VehicleDataType::BRAKING),
+std::make_pair(strings::wiper_status, VehicleDataType::WIPERSTATUS),
+std::make_pair(strings::head_lamp_status, VehicleDataType::HEADLAMPSTATUS),
+std::make_pair(strings::e_call_info, VehicleDataType::ECALLINFO),
+std::make_pair(strings::airbag_status, VehicleDataType::AIRBAGSTATUS),
+std::make_pair(strings::emergency_event, VehicleDataType::EMERGENCYEVENT),
+std::make_pair(strings::cluster_mode_status, VehicleDataType::CLUSTERMODESTATUS),
+std::make_pair(strings::my_key, VehicleDataType::MYKEY),
+/*
+ NOT DEFINED in mobile API
+ std::make_pair(strings::gps, VehicleDataType::BATTVOLTAGE),
+ */
+std::make_pair(strings::engine_torque, VehicleDataType::ENGINETORQUE ),
+std::make_pair(strings::acc_pedal_pos, VehicleDataType::ACCPEDAL),
+std::make_pair(strings::steering_wheel_angle, VehicleDataType::STEERINGWHEEL),
+};
+
+const VehicleData MessageHelper::vehicle_data_(kVehicleDataInitializer,
+ kVehicleDataInitializer +
+ ARRAYSIZE(kVehicleDataInitializer));
+
+
+#ifdef QT_HMI
+namespace {
+ struct VehicleInfo_Requests {
+ hmi_apis::FunctionID::eType func_id;
+ const char* str;
+ };
+ static VehicleInfo_Requests ivi_subrequests[] = {
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeGps, strings::gps},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeSpeed, strings::speed},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeRpm, strings::rpm},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel, strings::fuel_level},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeFuelLevel_State, strings::fuel_level_state},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeInstantFuelConsumption, strings::instant_fuel_consumption},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeExternalTemperature, strings::external_temp},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeVin, strings::vin},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribePrndl, strings::prndl},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeTirePressure, strings::tire_pressure},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeOdometer, strings::odometer},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeBeltStatus, strings::belt_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeBodyInformation, strings::body_information},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeDeviceStatus, strings::device_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeDriverBraking, strings::driver_braking},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeWiperStatus, strings::wiper_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeHeadLampStatus, strings::head_lamp_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeEngineTorque, strings::engine_torque},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeAccPedalPosition, strings::acc_pedal_pos},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeSteeringWheelAngle, strings::steering_wheel_angle},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeECallInfo, strings::e_call_info},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeAirbagStatus, strings::airbag_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeEmergencyEvent, strings::emergency_event},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeClusterModeStatus, strings::cluster_mode_status},
+ { hmi_apis::FunctionID::VehicleInfo_SubscribeMyKey, strings::my_key},
+ };
+}
+#endif // #ifdef QT_HMI
+
+
+void MessageHelper::SendHMIStatusNotification(
+ const Application& application_impl) {
+ smart_objects::SmartObject* notification = new smart_objects::SmartObject;
+ if (!notification) {
+ // TODO(VS): please add logger.
+ return;
+ }
+ smart_objects::SmartObject& message = *notification;
+
+ message[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_api::FunctionID::OnHMIStatusID);
+
+ message[strings::params][strings::message_type] =
+ static_cast<int32_t>(application_manager::MessageType::kNotification);
+
+ message[strings::params][strings::connection_key] =
+ static_cast<int32_t>(application_impl.app_id());
+
+ message[strings::msg_params][strings::hmi_level] =
+ static_cast<int32_t>(application_impl.hmi_level());
+
+ message[strings::msg_params][strings::audio_streaming_state] =
+ static_cast<int32_t>(application_impl.audio_streaming_state());
+
+ message[strings::msg_params][strings::system_context] =
+ static_cast<int32_t>(application_impl.system_context());
+
+ DCHECK(ApplicationManagerImpl::instance()->ManageMobileCommand(notification));
+}
+
+void MessageHelper::SendOnAppRegisteredNotificationToHMI(
+ const Application& application_impl) {
+ smart_objects::SmartObject* notification = new smart_objects::SmartObject;
+ if (!notification) {
+ // TODO(VS): please add logger.
+ return;
+ }
+ smart_objects::SmartObject& message = *notification;
+
+ message[strings::params][strings::function_id] =
+ static_cast<int32_t>(hmi_apis::FunctionID::BasicCommunication_OnAppRegistered);
+
+ message[strings::params][strings::message_type] =
+ static_cast<int32_t>(application_manager::MessageType::kNotification);
+ message[strings::msg_params][strings::application][strings::app_name] =
+ application_impl.name();
+
+ const smart_objects::SmartObject* ngn_media_screen_name =
+ application_impl.ngn_media_screen_name();
+
+ if (ngn_media_screen_name) {
+ message[strings::msg_params][strings::application]
+ [strings::ngn_media_screen_app_name] = *ngn_media_screen_name;
+ }
+
+ message[strings::msg_params][strings::application][strings::icon] =
+ application_impl.app_icon_path();
+
+ std::string dev_name = ApplicationManagerImpl::instance()->GetDeviceName(
+ application_impl.device());
+ message[strings::msg_params][strings::application][strings::device_name] =
+ dev_name;
+
+ message[strings::msg_params][strings::application][strings::app_id] =
+ application_impl.app_id();
+
+ message[strings::msg_params][strings::application][strings::hmi_display_language_desired] =
+ static_cast<int32_t>(application_impl.ui_language());
+
+ message[strings::msg_params][strings::application][strings::is_media_application] =
+ application_impl.is_media_application();
+
+ const smart_objects::SmartObject* app_type = application_impl.app_types();
+
+ if (app_type) {
+ message[strings::msg_params][strings::application][strings::app_type] =
+ *app_type;
+ }
+ if (application_impl.vr_synonyms()) {
+ message[strings::msg_params][strings::vr_synonyms] = *(application_impl.vr_synonyms());
+ }
+ if (application_impl.tts_name()) {
+ message[strings::msg_params][strings::tts_name] = *(application_impl.tts_name());
+ }
+ DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(notification));
+}
+
+smart_objects::SmartObject* MessageHelper::CreateGeneralVrCommand() {
+ smart_objects::SmartObject* vr_help_command = new smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+ if (!vr_help_command) {
+ return NULL;
+ }
+ smart_objects::SmartObject& help_object = *vr_help_command;
+ const std::vector<std::string>& vr_general_cmds = profile::Profile::instance()
+ ->vr_commands();
+ for (uint32_t i = 0; i < vr_general_cmds.size(); ++i) {
+ help_object[i] = vr_general_cmds[i];
+ }
+ return vr_help_command;
+}
+
+void MessageHelper::SendHelpVrCommand() {
+ smart_objects::SmartObject* vr_help_command = CreateGeneralVrCommand();
+ if (!vr_help_command) {
+ return;
+ }
+ uint32_t max_cmd_id = profile::Profile::instance()->max_cmd_id();
+ SendAddVRCommandToHMI(max_cmd_id + 1, *vr_help_command, 0);
+}
+
+smart_objects::SmartObject* MessageHelper::GetHashUpdateNotification(const uint32_t app_id) {
+
+ LOG4CXX_INFO(g_logger, "GetHashUpdateNotification" << app_id);
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+ DCHECK(app.get());
+
+ smart_objects::SmartObject* message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ (*message)[strings::params][strings::function_id] =
+ mobile_apis::FunctionID::OnHashChangeID;
+ (*message)[strings::params][strings::connection_key] = app_id;
+
+ return message;
+}
+
+void MessageHelper::SendHashUpdateNotification(const uint32_t app_id) {
+ LOG4CXX_INFO(g_logger, "SendHashUpdateNotification");
+
+ smart_objects::SmartObject* so = GetHashUpdateNotification(app_id);
+ PrintSmartObject(*so);
+ DCHECK(ApplicationManagerImpl::instance()->ManageMobileCommand(so));
+}
+
+void MessageHelper::SendRemoveVrCommandsOnUnregisterApp(ApplicationConstSharedPtr app) {
+ uint32_t max_cmd_id = profile::Profile::instance()->max_cmd_id();
+
+ if (app->vr_synonyms()) {
+ SendRemoveCommandToHMI(
+ static_cast<int32_t>(hmi_apis::FunctionID::VR_DeleteCommand),
+ max_cmd_id + app->app_id(), app->app_id());
+ }
+}
+
+void MessageHelper::SendOnAppInterfaceUnregisteredNotificationToMobile(
+ int32_t connection_key,
+ mobile_api::AppInterfaceUnregisteredReason::eType reason) {
+ smart_objects::SmartObject* notification = new smart_objects::SmartObject;
+ if (!notification) {
+ // TODO(VS): please add logger.
+ return;
+ }
+ smart_objects::SmartObject& message = *notification;
+
+ message[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_api::FunctionID::OnAppInterfaceUnregisteredID);
+
+ message[strings::params][strings::message_type] =
+ static_cast<int32_t>(kNotification);
+
+ message[strings::params][strings::connection_key] = connection_key;
+
+ message[strings::msg_params][strings::reason] =
+ static_cast<int32_t>(reason);
+
+ DCHECK(ApplicationManagerImpl::instance()->ManageMobileCommand(notification));
+}
+
+const VehicleData& MessageHelper::vehicle_data() {
+ return vehicle_data_;
+}
+
+smart_objects::SmartObject* MessageHelper::CreateBlockedByPoliciesResponse(
+ mobile_apis::FunctionID::eType function_id,
+ mobile_apis::Result::eType result, uint32_t correlation_id,
+ uint32_t connection_key) {
+ smart_objects::SmartObject* response = new smart_objects::SmartObject;
+ if (!response) {
+ return NULL;
+ }
+
+ (*response)[strings::params][strings::function_id] = static_cast<int>(function_id);
+ (*response)[strings::params][strings::message_type] = static_cast<int>(kResponse);
+ (*response)[strings::msg_params][strings::success] = false;
+ (*response)[strings::msg_params][strings::result_code] = static_cast<int>(result);
+ (*response)[strings::params][strings::correlation_id] = correlation_id;
+ (*response)[strings::params][strings::connection_key] = connection_key;
+ (*response)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::mobile_protocol_type_;
+ (*response)[strings::params][strings::protocol_version] =
+ static_cast<int>(kV2);
+ return response;
+}
+
+smart_objects::SmartObject* MessageHelper::CreateDeviceListSO(
+ const connection_handler::DeviceList& devices) {
+ smart_objects::SmartObject* device_list_so = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if (NULL == device_list_so) {
+ return NULL;
+ }
+
+ (*device_list_so)[strings::device_list] = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+ smart_objects::SmartObject& list_so = (*device_list_so)[strings::device_list];
+ int32_t index = 0;
+ for (connection_handler::DeviceList::const_iterator it = devices.begin();
+ devices.end() != it; ++it) {
+ const connection_handler::Device& d = static_cast<connection_handler::Device>(it->second);
+ list_so[index][strings::name] =
+ d.user_friendly_name();
+ list_so[index][strings::id] = it->second.device_handle();
+ ++index;
+ }
+ return device_list_so;
+}
+
+smart_objects::SmartObject* MessageHelper::CreateModuleInfoSO(
+ uint32_t function_id) {
+ smart_objects::SmartObject* module_info = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ if (NULL == module_info) {
+ return NULL;
+ }
+ smart_objects::SmartObject& object = *module_info;
+ object[strings::params][strings::message_type] =
+ static_cast<int>(kRequest);
+ object[strings::params][strings::function_id] =
+ static_cast<int>(function_id);
+ object[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+ object[strings::msg_params] = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ return module_info;
+}
+
+smart_objects::SmartObject* MessageHelper::CreateSetAppIcon(
+ const std::string& path_to_icon, uint32_t app_id) {
+ smart_objects::SmartObject* set_icon = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if (!set_icon) {
+ return NULL;
+ }
+
+ smart_objects::SmartObject& object = *set_icon;
+ object[strings::sync_file_name][strings::value] = path_to_icon;
+ // TODO(PV): need to store actual image type
+ object[strings::sync_file_name][strings::image_type] =
+ static_cast<int>(mobile_api::ImageType::DYNAMIC);
+ object[strings::app_id] = app_id;
+
+ return set_icon;
+}
+
+bool MessageHelper::SendIVISubscribtions(const uint32_t app_id) {
+ LOG4CXX_INFO(g_logger, " MessageHelper::SendIVISubscribtions ");
+
+ bool succes = true;
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+ DCHECK(app.get());
+
+ SmartObjectList requests = GetIVISubscribtionRequests(app_id);
+ for (SmartObjectList::const_iterator it = requests.begin();
+ it != requests.end(); ++it) {
+ if (!ApplicationManagerImpl::instance()->ManageHMICommand(*it)) {
+ succes = false;
+ }
+ }
+ return succes;
+}
+
+MessageHelper::SmartObjectList MessageHelper::GetIVISubscribtionRequests(const uint32_t app_id) {
+ LOG4CXX_INFO(g_logger, " MessageHelper::GetIVISubscribtionRequests ");
+
+ ApplicationSharedPtr app = ApplicationManagerImpl::instance()->application(app_id);
+ DCHECK(app);
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::app_id] = app_id;
+ const VehicleData& vehicle_data = MessageHelper::vehicle_data_;
+ VehicleData::const_iterator ivi_it = vehicle_data.begin();
+ const std::set<uint32_t>& subscribes = app->SubscribesIVI();
+
+ for (; vehicle_data.end() != ivi_it; ++ivi_it) {
+ uint32_t type_id = static_cast<int>(ivi_it->second);
+ if (subscribes.end() != subscribes.find(type_id)) {
+ std::string key_name = ivi_it->first;
+ msg_params[key_name] = true;
+ }
+ }
+
+ SmartObjectList hmi_requests;
+#ifdef WEB_HMI
+ smart_objects::SmartObject* request = MessageHelper::CreateModuleInfoSO(
+ hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData);
+ (*request)[strings::msg_params] = msg_params;
+ hmi_requests.push_back(request);
+#endif // #ifdef WEB_HMI
+
+#ifdef QT_HMI
+ //Generate list of ivi_subrequests
+ for (int i = 0; i < sizeof(ivi_subrequests) / sizeof(ivi_subrequests[0]); ++i) {
+ const VehicleInfo_Requests& sr = ivi_subrequests[i];
+ if (true == msg_params.keyExists(sr.str)
+ && true == msg_params[sr.str].asBool()) {
+ smart_objects::SmartObject* request = MessageHelper::CreateModuleInfoSO(
+ sr.func_id);
+ (*request)[strings::msg_params] = msg_params;
+ hmi_requests.push_back(request);
+ }
+ }
+#endif // #ifdef QT_HMI
+ return hmi_requests;
+}
+
+void MessageHelper::SendAppDataToHMI(ApplicationConstSharedPtr app) {
+ uint32_t id = app->app_id();
+
+ utils::SharedPtr<smart_objects::SmartObject> set_app_icon(
+ new smart_objects::SmartObject);
+ if (set_app_icon) {
+ smart_objects::SmartObject& so_to_send = *set_app_icon;
+ so_to_send[strings::params][strings::function_id] =
+ static_cast<int>(hmi_apis::FunctionID::UI_SetAppIcon);
+ so_to_send[strings::params][strings::message_type] =
+ static_cast<int>(hmi_apis::messageType::request);
+ so_to_send[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ so_to_send[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ so_to_send[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ so_to_send[strings::msg_params] = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ smart_objects::SmartObject* msg_params = MessageHelper::CreateSetAppIcon(
+ app->app_icon_path(), id);
+
+ if (msg_params) {
+ so_to_send[strings::msg_params] = *msg_params;
+ }
+ // TODO(PV): appropriate handling of result
+ DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(set_app_icon));
+ }
+
+ SendGlobalPropertiesToHMI(app);
+ SendShowRequestToHMI(app);
+ SendAddCommandRequestToHMI(app);
+}
+
+void MessageHelper::SendGlobalPropertiesToHMI(ApplicationConstSharedPtr app) {
+ DCHECK(app.get());
+
+ SmartObjectList requests = CreateGlobalPropertiesRequestsToHMI(app);
+ for (SmartObjectList::const_iterator it = requests.begin();
+ it != requests.end(); ++it) {
+ DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(*it))
+ }
+}
+
+MessageHelper::SmartObjectList MessageHelper::CreateGlobalPropertiesRequestsToHMI(ApplicationConstSharedPtr app) {
+
+ SmartObjectList requests;
+ DCHECK(app.get());
+
+ // UI global properties
+
+ if (app->vr_help_title() || app->vr_help()) {
+ smart_objects::SmartObject* ui_global_properties =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ if (!ui_global_properties) {
+ return requests;
+ }
+
+ (*ui_global_properties)[strings::params][strings::function_id] =
+ static_cast<int>(hmi_apis::FunctionID::UI_SetGlobalProperties);
+ (*ui_global_properties)[strings::params][strings::message_type] =
+ static_cast<int>(hmi_apis::messageType::request);
+ (*ui_global_properties)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*ui_global_properties)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*ui_global_properties)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject ui_msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ if (app->vr_help_title()) {
+ ui_msg_params[strings::vr_help_title] = (*app->vr_help_title());
+ }
+ if (app->vr_help()) {
+ ui_msg_params[strings::vr_help] = (*app->vr_help());
+ }
+ ui_msg_params[strings::app_id] = app->app_id();
+
+ (*ui_global_properties)[strings::msg_params] = ui_msg_params;
+
+ requests.push_back(ui_global_properties);
+ }
+
+ // TTS global properties
+ if (app->help_prompt() || app->timeout_prompt()) {
+ smart_objects::SmartObject* tts_global_properties =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ if (!tts_global_properties) {
+ return requests;
+ }
+
+ (*tts_global_properties)[strings::params][strings::function_id] =
+ static_cast<int>(hmi_apis::FunctionID::TTS_SetGlobalProperties);
+ (*tts_global_properties)[strings::params][strings::message_type] =
+ static_cast<int>(hmi_apis::messageType::request);
+ (*tts_global_properties)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*tts_global_properties)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*tts_global_properties)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject tts_msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ if (app->help_prompt()) {
+ tts_msg_params[strings::help_prompt] = (*app->help_prompt());
+ }
+ if (app->timeout_prompt()) {
+ tts_msg_params[strings::timeout_prompt] = (*app->timeout_prompt());
+ }
+ tts_msg_params[strings::app_id] = app->app_id();
+
+ (*tts_global_properties)[strings::msg_params] = tts_msg_params;
+
+ requests.push_back(tts_global_properties);
+ }
+ return requests;
+}
+
+smart_objects::SmartObject* MessageHelper::CreateAppVrHelp(ApplicationConstSharedPtr app) {
+ smart_objects::SmartObject* result = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ if (!result) {
+ return NULL;
+ }
+ smart_objects::SmartObject& vr_help = *result;
+ if (app->vr_help_title()) {
+ vr_help[strings::vr_help_title] = (*app->vr_help_title());
+ } else {
+ vr_help[strings::vr_help_title] = app->name();
+ }
+
+ if (app->vr_help()) {
+ vr_help[strings::vr_help] = (*app->vr_help());
+ } else {
+ const std::set<ApplicationSharedPtr>& apps = ApplicationManagerImpl::instance()
+ ->applications();
+
+ int32_t index = 0;
+ std::set<ApplicationSharedPtr>::const_iterator it_app = apps.begin();
+ for (; apps.end() != it_app; ++it_app) {
+ if ((*it_app)->vr_synonyms()) {
+ smart_objects::SmartObject item(smart_objects::SmartType_Map);
+ item[strings::text] = (*((*it_app)->vr_synonyms())).getElement(0);
+ item[strings::position] = index + 1;
+ vr_help[strings::vr_help][index++] = item;
+ }
+ }
+
+ // copy all app VR commands
+ const CommandsMap& commands = app->commands_map();
+ CommandsMap::const_iterator it = commands.begin();
+
+ for (; commands.end() != it; ++it) {
+ smart_objects::SmartObject item(smart_objects::SmartType_Map);
+ item[strings::text] =
+ (*it->second)[strings::vr_commands][0].asString();
+ item[strings::position] = index + 1;
+ vr_help[strings::vr_help][index++] = item;
+ }
+ }
+ return result;
+}
+
+void MessageHelper::SendShowRequestToHMI(ApplicationConstSharedPtr app) {
+ if (!app) {
+ return;
+ }
+
+ smart_objects::SmartObject* ui_show = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if (!ui_show) {
+ return;
+ }
+
+ if (app->show_command()) {
+ (*ui_show)[strings::params][strings::function_id] =
+ static_cast<int>(hmi_apis::FunctionID::UI_Show);
+ (*ui_show)[strings::params][strings::message_type] =
+ static_cast<int>(hmi_apis::messageType::request);
+ (*ui_show)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*ui_show)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*ui_show)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+ (*ui_show)[strings::msg_params] = (*app->show_command());
+ DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(ui_show));
+ }
+}
+
+void MessageHelper::SendShowConstantTBTRequestToHMI(ApplicationConstSharedPtr app) {
+ if (!app) {
+ return;
+ }
+
+ smart_objects::SmartObject* navi_show_tbt = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if (!navi_show_tbt) {
+ return;
+ }
+
+ if (app->tbt_show_command()) {
+ (*navi_show_tbt)[strings::params][strings::function_id] =
+ static_cast<int>(hmi_apis::FunctionID::Navigation_ShowConstantTBT);
+ (*navi_show_tbt)[strings::params][strings::message_type] =
+ static_cast<int>(hmi_apis::messageType::request);
+ (*navi_show_tbt)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*navi_show_tbt)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*navi_show_tbt)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+ (*navi_show_tbt)[strings::msg_params] = (*app->tbt_show_command());
+ DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(navi_show_tbt));
+ }
+}
+
+void MessageHelper::SendAddCommandRequestToHMI(ApplicationConstSharedPtr app) {
+ if (!app) {
+ return;
+ }
+ SmartObjectList requests = CreateAddCommandRequestToHMI(app);
+ for (SmartObjectList::iterator it = requests.begin();
+ it != requests.end(); ++it) {
+ DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(*it));
+ }
+}
+
+MessageHelper::SmartObjectList MessageHelper::CreateAddCommandRequestToHMI(ApplicationConstSharedPtr app) {
+ DCHECK(app.get());
+
+ SmartObjectList requests;
+ const CommandsMap& commands = app->commands_map();
+ CommandsMap::const_iterator i = commands.begin();
+ for (; commands.end() != i; ++i) {
+ // UI Interface
+ if ((*i->second).keyExists(strings::menu_params)) {
+ smart_objects::SmartObject* ui_command = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if (!ui_command) {
+ return requests;
+ }
+
+ (*ui_command)[strings::params][strings::function_id] =
+ static_cast<int>(hmi_apis::FunctionID::UI_AddCommand);
+ (*ui_command)[strings::params][strings::message_type] =
+ static_cast<int>(hmi_apis::messageType::request);
+ (*ui_command)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*ui_command)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*ui_command)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::cmd_id] = i->first;
+ msg_params[strings::menu_params] = (*i->second)[strings::menu_params];
+ msg_params[strings::app_id] = app->app_id();
+
+ if (((*i->second)[strings::cmd_icon].keyExists(strings::value))
+ && (0 < (*i->second)[strings::cmd_icon][strings::value].length())) {
+ msg_params[strings::cmd_icon] = (*i->second)[strings::cmd_icon];
+ msg_params[strings::cmd_icon][strings::value] =
+ (*i->second)[strings::cmd_icon][strings::value].asString();
+ }
+ (*ui_command)[strings::msg_params] = msg_params;
+ requests.push_back(ui_command);
+ }
+
+ // VR Interface
+ if ((*i->second).keyExists(strings::vr_commands)) {
+ SendAddVRCommandToHMI(i->first, (*i->second)[strings::vr_commands],
+ app->app_id());
+ }
+ }
+ return requests;
+}
+
+smart_objects::SmartObject* MessageHelper::CreateChangeRegistration(
+ int32_t function_id, int32_t language, uint32_t app_id) {
+ smart_objects::SmartObject* command = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ if (!command) {
+ return NULL;
+ }
+ smart_objects::SmartObject& params = *command;
+
+ params[strings::params][strings::message_type] =
+ static_cast<int>(hmi_apis::messageType::request);
+ params[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ params[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+
+ params[strings::params][strings::function_id] = function_id;
+
+ params[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::language] = language;
+ msg_params[strings::app_id] = app_id;
+
+ params[strings::msg_params] = msg_params;
+ return command;
+}
+
+void MessageHelper::SendChangeRegistrationRequestToHMI(ApplicationConstSharedPtr app) {
+ hmi_apis::Common_Language::eType app_common_language =
+ ToCommonLanguage(app->language());
+ const HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ if (mobile_apis::Language::INVALID_ENUM != app->language()) {
+ smart_objects::SmartObject* vr_command = CreateChangeRegistration(
+ hmi_apis::FunctionID::VR_ChangeRegistration, app->language(),
+ app->app_id());
+
+ if (vr_command) {
+ ApplicationManagerImpl::instance()->ManageHMICommand(vr_command);
+ }
+ }
+
+ if (mobile_apis::Language::INVALID_ENUM != app->language()) {
+ smart_objects::SmartObject* tts_command = CreateChangeRegistration(
+ hmi_apis::FunctionID::TTS_ChangeRegistration, app->language(),
+ app->app_id());
+
+ if (tts_command) {
+ ApplicationManagerImpl::instance()->ManageHMICommand(tts_command);
+ }
+ }
+
+ if (mobile_apis::Language::INVALID_ENUM != app->ui_language()) {
+ smart_objects::SmartObject* ui_command = CreateChangeRegistration(
+ hmi_apis::FunctionID::UI_ChangeRegistration, app->ui_language(),
+ app->app_id());
+
+ if (ui_command) {
+ ApplicationManagerImpl::instance()->ManageHMICommand(ui_command);
+ }
+
+ }
+}
+
+void MessageHelper::SendAddVRCommandToHMI(
+ uint32_t cmd_id, const smart_objects::SmartObject& vr_commands,
+ uint32_t app_id) {
+ smart_objects::SmartObject* request = CreateAddVRCommandToHMI(cmd_id, vr_commands, app_id);
+ DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(request));
+}
+
+smart_objects::SmartObject* MessageHelper::CreateAddVRCommandToHMI(uint32_t cmd_id, const NsSmartDeviceLink::NsSmartObjects::SmartObject &vr_commands, uint32_t app_id) {
+ smart_objects::SmartObject* vr_command = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if (!vr_command) {
+ return NULL;
+ }
+
+ (*vr_command)[strings::params][strings::function_id] =
+ hmi_apis::FunctionID::VR_AddCommand;
+ (*vr_command)[strings::params][strings::message_type] =
+ hmi_apis::messageType::request;
+ (*vr_command)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*vr_command)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*vr_command)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ if (0 != cmd_id) {
+ msg_params[strings::cmd_id] = cmd_id;
+ }
+ msg_params[strings::vr_commands] = vr_commands;
+ if (0 < app_id) {
+ msg_params[strings::app_id] = app_id;
+ }
+ (*vr_command)[strings::msg_params] = msg_params;
+
+ return vr_command;
+}
+
+void MessageHelper::SendAddSubMenuRequestToHMI(ApplicationConstSharedPtr app) {
+ DCHECK(app.get());
+ SmartObjectList requests = CreateAddSubMenuRequestToHMI(app);
+ for (SmartObjectList::iterator it = requests.begin();
+ it != requests.end(); ++it) {
+ DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(*it));
+ }
+}
+
+MessageHelper::SmartObjectList MessageHelper::CreateAddSubMenuRequestToHMI(ApplicationConstSharedPtr app) {
+ SmartObjectList requsets;
+ const SubMenuMap& sub_menu = app->sub_menu_map();
+ SubMenuMap::const_iterator i = sub_menu.begin();
+ for (; sub_menu.end() != i; ++i) {
+ smart_objects::SmartObject* ui_sub_menu = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if (!ui_sub_menu) {
+ return requsets;
+ }
+
+ (*ui_sub_menu)[strings::params][strings::function_id] =
+ hmi_apis::FunctionID::UI_AddSubMenu;
+ (*ui_sub_menu)[strings::params][strings::message_type] =
+ hmi_apis::messageType::request;
+ (*ui_sub_menu)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*ui_sub_menu)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*ui_sub_menu)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[strings::menu_id] = i->first;
+ msg_params[strings::menu_params][strings::position] =
+ (*i->second)[strings::position];
+ msg_params[strings::menu_params][strings::menu_name] =
+ (*i->second)[strings::menu_name];
+ msg_params[strings::app_id] = app->app_id();
+ (*ui_sub_menu)[strings::msg_params] = msg_params;
+ requsets.push_back(ui_sub_menu);
+ }
+ return requsets;
+}
+
+void MessageHelper::RemoveAppDataFromHMI(ApplicationSharedPtr app) {
+ SendDeleteCommandRequestToHMI(app);
+ SendDeleteSubMenuRequestToHMI(app);
+ SendRemoveVrCommandsOnUnregisterApp(app);
+ ResetGlobalproperties(app);
+}
+
+void MessageHelper::SendOnSdlCloseNotificationToHMI() {
+ smart_objects::SmartObject* notification = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ if (!notification) {
+ return;
+ }
+ smart_objects::SmartObject& message = *notification;
+ message[strings::params][strings::function_id] =
+ hmi_apis::FunctionID::BasicCommunication_OnSDLClose;
+ message[strings::params][strings::message_type] = MessageType::kNotification;
+
+ ApplicationManagerImpl::instance()->ManageHMICommand(&message);
+}
+
+void MessageHelper::SendOnAppUnregNotificationToHMI(ApplicationConstSharedPtr app) {
+ smart_objects::SmartObject* notification = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ if (!notification) {
+ return;
+ }
+
+ smart_objects::SmartObject& message = *notification;
+
+ message[strings::params][strings::function_id] =
+ hmi_apis::FunctionID::BasicCommunication_OnAppUnregistered;
+
+ message[strings::params][strings::message_type] = MessageType::kNotification;
+ message[strings::msg_params][strings::app_id] = app->app_id();
+
+ ApplicationManagerImpl::instance()->ManageHMICommand(&message);
+}
+
+void MessageHelper::SendDeleteCommandRequestToHMI(ApplicationConstSharedPtr app) {
+ if (!app) {
+ return;
+ }
+
+ const CommandsMap& commands = app->commands_map();
+ CommandsMap::const_iterator i = commands.begin();
+ for (; commands.end() != i; ++i) {
+ if ((*i->second).keyExists(strings::menu_params)) {
+ SendRemoveCommandToHMI(
+ static_cast<int32_t>(hmi_apis::FunctionID::UI_DeleteCommand),
+ i->first, app->app_id());
+ }
+
+ if ((*i->second).keyExists(strings::vr_commands)) {
+ SendRemoveCommandToHMI(
+ static_cast<int32_t>(hmi_apis::FunctionID::VR_DeleteCommand),
+ i->first, app->app_id());
+ }
+ }
+}
+
+void MessageHelper::SendRemoveCommandToHMI(int32_t function_id, int32_t command_id,
+ uint32_t app_id) {
+ smart_objects::SmartObject* delete_cmd = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ if (!delete_cmd) {
+ return;
+ }
+
+ (*delete_cmd)[strings::params][strings::function_id] = function_id;
+ (*delete_cmd)[strings::params][strings::message_type] =
+ hmi_apis::messageType::request;
+ (*delete_cmd)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*delete_cmd)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*delete_cmd)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ msg_params[strings::cmd_id] = command_id;
+ msg_params[strings::app_id] = app_id;
+ (*delete_cmd)[strings::msg_params] = msg_params;
+ ApplicationManagerImpl::instance()->ManageHMICommand(delete_cmd);
+}
+
+void MessageHelper::SendDeleteSubMenuRequestToHMI(ApplicationConstSharedPtr app) {
+ if (!app) {
+ return;
+ }
+
+ const SubMenuMap& sub_menu = app->sub_menu_map();
+ SubMenuMap::const_iterator i = sub_menu.begin();
+ for (; sub_menu.end() != i; ++i) {
+ smart_objects::SmartObject* delete_sub_menu =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ if (!delete_sub_menu) {
+ return;
+ }
+
+ (*delete_sub_menu)[strings::params][strings::function_id] =
+ hmi_apis::FunctionID::UI_DeleteSubMenu;
+ (*delete_sub_menu)[strings::params][strings::message_type] =
+ hmi_apis::messageType::request;
+ (*delete_sub_menu)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*delete_sub_menu)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*delete_sub_menu)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject msg_params = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ msg_params[strings::menu_id] = i->first;
+ msg_params[strings::menu_params][strings::position] =
+ (*i->second)[strings::position];
+ msg_params[strings::menu_params][strings::menu_name] =
+ (*i->second)[strings::menu_name];
+ msg_params[strings::app_id] = app->app_id();
+ (*delete_sub_menu)[strings::msg_params] = msg_params;
+
+ ApplicationManagerImpl::instance()->ManageHMICommand(delete_sub_menu);
+ }
+}
+
+void MessageHelper::SendActivateAppToHMI(uint32_t const app_id) {
+ smart_objects::SmartObject* message = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ if (!message) {
+ return;
+ }
+
+ (*message)[strings::params][strings::function_id] =
+ hmi_apis::FunctionID::BasicCommunication_ActivateApp;
+ (*message)[strings::params][strings::message_type] = MessageType::kRequest;
+ (*message)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+ (*message)[strings::msg_params][strings::app_id] = app_id;
+
+ ApplicationManagerImpl::instance()->ManageHMICommand(message);
+}
+
+smart_objects::SmartObject* MessageHelper::CreateNegativeResponse(
+ uint32_t connection_key, int32_t function_id, uint32_t correlation_id,
+ int32_t result_code) {
+ smart_objects::SmartObject* response = new smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ smart_objects::SmartObject& response_data = *response;
+ response_data[strings::params][strings::function_id] = function_id;
+ response_data[strings::params][strings::message_type] =
+ mobile_apis::messageType::response;
+ response_data[strings::params][strings::correlation_id] = correlation_id;
+ response_data[strings::params][strings::protocol_type] =
+ commands::CommandImpl::mobile_protocol_type_;
+ response_data[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ response_data[strings::msg_params][strings::result_code] = result_code;
+ response_data[strings::msg_params][strings::success] = false;
+ response_data[strings::params][strings::connection_key] = connection_key;
+
+ return response;
+}
+
+void MessageHelper::ResetGlobalproperties(ApplicationSharedPtr app) {
+ // reset help_prompt
+ const std::vector<std::string>& help_prompt = profile::Profile::instance()
+ ->help_prompt();
+
+ smart_objects::SmartObject so_help_prompt = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+
+ for (uint32_t i = 0; i < help_prompt.size(); ++i) {
+ smart_objects::SmartObject helpPrompt = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ helpPrompt[strings::text] = help_prompt[i];
+ so_help_prompt[i] = helpPrompt;
+ }
+
+ app->set_help_prompt(so_help_prompt);
+
+ // reset timeout prompt
+ const std::vector<std::string>& time_out_promt = profile::Profile::instance()
+ ->time_out_promt();
+
+ smart_objects::SmartObject so_time_out_promt = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+
+ for (uint32_t i = 0; i < time_out_promt.size(); ++i) {
+ smart_objects::SmartObject timeoutPrompt = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ timeoutPrompt[strings::text] = time_out_promt[i];
+ so_time_out_promt[i] = timeoutPrompt;
+ }
+
+ app->set_timeout_prompt(so_time_out_promt);
+
+ // reset VR help title
+ smart_objects::SmartObject help_title(app->name());
+ app->set_vr_help_title(help_title);
+
+ // reset VR help items
+ const CommandsMap& cmdMap = app->commands_map();
+ smart_objects::SmartObject vr_help_items;
+
+ int32_t index = 0;
+ CommandsMap::const_iterator command_it = cmdMap.begin();
+
+ for (; cmdMap.end() != command_it; ++command_it) {
+ if (true == (*command_it->second).keyExists(strings::vr_commands)) {
+ // use only first
+ vr_help_items[index][strings::position] = (index + 1);
+ vr_help_items[index++][strings::text] =
+ (*command_it->second)[strings::vr_commands][0];
+ }
+ }
+
+ app->set_vr_help(vr_help_items);
+
+ // send global properties
+ SendGlobalPropertiesToHMI(app);
+}
+
+void MessageHelper::SendNaviStartStream(
+ const std::string& url, int32_t connection_key) {
+ LOG4CXX_INFO(g_logger, "MessageHelper::SendNaviStartStream");
+ smart_objects::SmartObject* start_stream =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ if (!start_stream) {
+ return;
+ }
+
+ (*start_stream)[strings::params][strings::function_id] =
+ hmi_apis::FunctionID::Navigation_StartStream;
+ (*start_stream)[strings::params][strings::message_type] =
+ hmi_apis::messageType::request;
+ (*start_stream)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*start_stream)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*start_stream)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject msg_params =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ uint32_t app_id = 0;
+ connection_handler::ConnectionHandlerImpl::instance()->GetDataOnSessionKey(
+ connection_key,
+ &app_id);
+
+ msg_params[strings::app_id] = app_id;
+ msg_params[strings::url] = url;
+
+ (*start_stream)[strings::msg_params] = msg_params;
+
+ ApplicationManagerImpl::instance()->ManageHMICommand(start_stream);
+}
+
+void MessageHelper::SendNaviStopStream(int32_t connection_key) {
+ smart_objects::SmartObject* stop_stream =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ if (!stop_stream) {
+ return;
+ }
+
+ (*stop_stream)[strings::params][strings::function_id] =
+ hmi_apis::FunctionID::Navigation_StopStream;
+ (*stop_stream)[strings::params][strings::message_type] =
+ hmi_apis::messageType::request;
+ (*stop_stream)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*stop_stream)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*stop_stream)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject msg_params =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ uint32_t app_id = 0;
+ connection_handler::ConnectionHandlerImpl::instance()->GetDataOnSessionKey(
+ connection_key,
+ &app_id);
+
+ msg_params[strings::app_id] = app_id;
+
+ (*stop_stream)[strings::msg_params] = msg_params;
+
+ ApplicationManagerImpl::instance()->ManageHMICommand(stop_stream);
+}
+
+void MessageHelper::SendAudioStartStream(
+ const std::string& url, int32_t connection_key) {
+
+ smart_objects::SmartObject* start_stream =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ if (!start_stream) {
+ return;
+ }
+
+ (*start_stream)[strings::params][strings::function_id] =
+ hmi_apis::FunctionID::Navigation_StartAudioStream;
+ (*start_stream)[strings::params][strings::message_type] =
+ hmi_apis::messageType::request;
+ (*start_stream)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*start_stream)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*start_stream)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject msg_params =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ uint32_t app_id = 0;
+ connection_handler::ConnectionHandlerImpl::instance()->GetDataOnSessionKey(
+ connection_key,
+ &app_id);
+
+ msg_params[strings::app_id] = app_id;
+ msg_params[strings::url] = url;
+
+ (*start_stream)[strings::msg_params] = msg_params;
+
+ DCHECK(ApplicationManagerImpl::instance()->ManageHMICommand(start_stream));
+}
+
+void MessageHelper::SendAudioStopStream(int32_t connection_key) {
+ smart_objects::SmartObject* stop_stream =
+ new smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ if (!stop_stream) {
+ return;
+ }
+
+ (*stop_stream)[strings::params][strings::function_id] =
+ hmi_apis::FunctionID::Navigation_StopAudioStream;
+ (*stop_stream)[strings::params][strings::message_type] =
+ hmi_apis::messageType::request;
+ (*stop_stream)[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ (*stop_stream)[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ (*stop_stream)[strings::params][strings::correlation_id] =
+ ApplicationManagerImpl::instance()->GetNextHMICorrelationID();
+
+ smart_objects::SmartObject msg_params =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ uint32_t app_id = 0;
+ connection_handler::ConnectionHandlerImpl::instance()->GetDataOnSessionKey(
+ connection_key,
+ &app_id);
+
+ msg_params[strings::app_id] = app_id;
+
+ (*stop_stream)[strings::msg_params] = msg_params;
+
+ ApplicationManagerImpl::instance()->ManageHMICommand(stop_stream);
+}
+
+bool MessageHelper::SendStopAudioPathThru() {
+ LOG4CXX_INFO(g_logger,"MessageHelper::SendAudioStopAudioPathThru");
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
+ new NsSmartDeviceLink::NsSmartObjects::SmartObject;
+ const uint32_t hmi_correlation_id = ApplicationManagerImpl::instance()->
+ GetNextHMICorrelationID();
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& request = *result;
+ request[strings::params][strings::message_type] = MessageType::kRequest;
+ request[strings::params][strings::function_id] = hmi_apis::FunctionID::UI_EndAudioPassThru;
+ request[strings::params][strings::correlation_id] = hmi_correlation_id;
+ request[strings::params][strings::protocol_version] =
+ commands::CommandImpl::protocol_version_;
+ request[strings::params][strings::protocol_type] =
+ commands::CommandImpl::hmi_protocol_type_;
+ return ApplicationManagerImpl::instance()->ManageHMICommand(result);
+}
+
+mobile_apis::Result::eType MessageHelper::VerifyImageFiles(
+ smart_objects::SmartObject& message, ApplicationConstSharedPtr app) {
+ if (NsSmartDeviceLink::NsSmartObjects::SmartType_Array == message.getType()) {
+ for (int32_t i = 0; i < message.length(); ++i) {
+ mobile_apis::Result::eType res = VerifyImageFiles(message[i], app);
+ if (mobile_apis::Result::SUCCESS != res) {
+ return res;
+ }
+ }
+ } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Map
+ == message.getType()) {
+ if (message.keyExists(strings::image_type)) {
+ mobile_apis::Result::eType verification_result =
+ VerifyImage(message, app);
+
+ if (mobile_apis::Result::SUCCESS != verification_result) {
+ return verification_result; // exit point
+ }
+ } else {
+ std::set < std::string > keys = message.enumerate();
+
+ for (std::set<std::string>::const_iterator key = keys.begin();
+ key != keys.end(); ++key) {
+ if (strings::soft_buttons != (*key)) {
+ mobile_apis::Result::eType res = VerifyImageFiles(message[*key], app);
+ if (mobile_apis::Result::SUCCESS != res) {
+ return res;
+ }
+ }
+ }
+ }
+ } // all other types shoudn't be processed
+
+ return mobile_apis::Result::SUCCESS;
+}
+
+mobile_apis::Result::eType MessageHelper::VerifyImage(
+ smart_objects::SmartObject& image, ApplicationConstSharedPtr app) {
+ const std::string& file_name = image[strings::value].asString();
+
+ std::string str = file_name;
+ str.erase(remove(str.begin(), str.end(), ' '), str.end());
+ if (0 == str.size()) {
+ return mobile_apis::Result::INVALID_DATA;
+ }
+
+ std::string relative_file_path = app->name();
+ relative_file_path += "/";
+ relative_file_path += file_name;
+
+ std::string full_file_path = file_system::FullPath(relative_file_path);
+
+ if (!file_system::FileExists(full_file_path)) {
+ return mobile_apis::Result::INVALID_DATA;
+ }
+
+ const HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ if (!hmi_capabilities.VerifyImageType(
+ static_cast<mobile_apis::ImageType::eType>(image[strings::image_type]
+ .asInt()))) {
+ return mobile_apis::Result::UNSUPPORTED_RESOURCE;
+ }
+
+ image[strings::value] = full_file_path;
+
+ return mobile_apis::Result::SUCCESS;
+}
+
+bool MessageHelper::VerifySoftButtonText
+(smart_objects::SmartObject& soft_button) {
+ std::string text = soft_button[strings::text].asString();
+ text.erase(remove(text.begin(), text.end(), ' '), text.end());
+ text.erase(remove(text.begin(), text.end(), '\n'), text.end());
+ if (text.size()) {
+ return true;
+ } else {
+ soft_button.erase(strings::text);
+ }
+
+ return false;
+}
+
+mobile_apis::Result::eType MessageHelper::ProcessSoftButtons(
+ smart_objects::SmartObject& message_params, ApplicationConstSharedPtr app) {
+ if (!message_params.keyExists(strings::soft_buttons)) {
+ return mobile_apis::Result::SUCCESS;
+ }
+
+ const HMICapabilities& hmi_capabilities =
+ ApplicationManagerImpl::instance()->hmi_capabilities();
+ const smart_objects::SmartObject* soft_button_capabilities =
+ hmi_capabilities.soft_button_capabilities();
+ bool image_supported = false;
+ if (soft_button_capabilities) {
+ image_supported =
+ (*soft_button_capabilities)[hmi_response::image_supported].asBool();
+ }
+
+ smart_objects::SmartObject& request_soft_buttons =
+ message_params[strings::soft_buttons];
+
+ // Check whether soft buttons request is well-formed
+ if (!ValidateSoftButtons(request_soft_buttons))
+ return mobile_apis::Result::INVALID_DATA;
+
+ smart_objects::SmartObject soft_buttons = smart_objects::SmartObject(
+ smart_objects::SmartType_Array);
+ bool flag_unsuported_resource = false;
+
+ int32_t j = 0;
+ for (int32_t i = 0; i < request_soft_buttons.length(); ++i) {
+ switch (request_soft_buttons[i][strings::type].asInt()) {
+ case mobile_apis::SoftButtonType::SBT_IMAGE: {
+ if (!image_supported) {
+ continue;
+ }
+
+ if (request_soft_buttons[i].keyExists(strings::image)) {
+ mobile_apis::Result::eType verification_result = VerifyImage(
+ request_soft_buttons[i][strings::image], app);
+
+ if (mobile_apis::Result::SUCCESS != verification_result) {
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE ==
+ verification_result) {
+ request_soft_buttons[i].erase(strings::image);
+ flag_unsuported_resource = true;
+ } else {
+ return mobile_apis::Result::INVALID_DATA;
+ }
+ }
+ } else {
+ return mobile_apis::Result::INVALID_DATA;
+ }
+ break;
+ }
+ case mobile_apis::SoftButtonType::SBT_TEXT: {
+ if (!request_soft_buttons[i].keyExists(strings::text)) {
+ return mobile_apis::Result::INVALID_DATA;
+ }
+
+ if (!VerifySoftButtonText(request_soft_buttons[i])) {
+ continue;
+ }
+ break;
+ }
+ case mobile_apis::SoftButtonType::SBT_BOTH: {
+
+ if (request_soft_buttons[i].keyExists(strings::text)) {
+ VerifySoftButtonText(request_soft_buttons[i]);
+ } else {
+ return mobile_apis::Result::INVALID_DATA;
+ }
+
+ bool image_exist = false;
+ if (image_supported) {
+ image_exist = request_soft_buttons[i].keyExists(strings::image);
+ if (!image_exist) {
+ return mobile_apis::Result::INVALID_DATA;
+ }
+ }
+ if (image_exist) {
+ mobile_apis::Result::eType verification_result = VerifyImage(
+ request_soft_buttons[i][strings::image], app);
+
+ if (mobile_apis::Result::SUCCESS != verification_result) {
+ if (mobile_apis::Result::UNSUPPORTED_RESOURCE ==
+ verification_result) {
+ request_soft_buttons[i].erase(strings::image);
+ flag_unsuported_resource = true;
+ } else {
+ return mobile_apis::Result::INVALID_DATA;
+ }
+ }
+ }
+ break;
+ }
+ default: {
+ continue;
+ break;
+ }
+ }
+
+ soft_buttons[j] = request_soft_buttons[i];
+
+ if (!soft_buttons[j].keyExists(strings::system_action)) {
+ soft_buttons[j][strings::system_action] =
+ mobile_apis::SystemAction::DEFAULT_ACTION;
+ }
+
+ ++j;
+ }
+
+ request_soft_buttons = soft_buttons;
+
+ if (0 == request_soft_buttons.length()) {
+ message_params.erase(strings::soft_buttons);
+ }
+ if (flag_unsuported_resource) {
+ return mobile_apis::Result::UNSUPPORTED_RESOURCE;
+ } else {
+ return mobile_apis::Result::SUCCESS;
+ }
+}
+
+// TODO(AK): change printf to logger
+bool MessageHelper::PrintSmartObject(const smart_objects::SmartObject& object) {
+ static uint32_t tab = 0;
+ std::string tab_buffer;
+
+ if (tab == 0) {
+ printf("\n-------------------------------------------------------------");
+ }
+
+ for (uint32_t i = 0; i < tab; ++i) {
+ tab_buffer += "\t";
+ }
+
+ switch (object.getType()) {
+ case NsSmartDeviceLink::NsSmartObjects::SmartType_Array: {
+ for (size_t i = 0; i < object.length(); i++) {
+ ++tab;
+
+ printf("\n%s%d: ", tab_buffer.c_str(), i);
+ if (!PrintSmartObject(object.getElement(i))) {
+ printf("\n");
+ return false;
+ }
+ }
+ break;
+ }
+ case NsSmartDeviceLink::NsSmartObjects::SmartType_Map: {
+ std::set < std::string > keys = object.enumerate();
+
+ for (std::set<std::string>::const_iterator key = keys.begin();
+ key != keys.end(); key++) {
+ ++tab;
+
+ printf("\n%s%s: ", tab_buffer.c_str(), (*key).c_str());
+ if (!PrintSmartObject(object[(*key).c_str()])) {
+ printf("\n");
+ return false;
+ }
+ }
+ break;
+ }
+ case NsSmartDeviceLink::NsSmartObjects::SmartType_Boolean:
+ object.asBool() ? printf("true\n") : printf("false\n");
+ break;
+ case NsSmartDeviceLink::NsSmartObjects::SmartType_Double: {
+ printf("%f", object.asDouble());
+ break;
+ }
+ case NsSmartDeviceLink::NsSmartObjects::SmartType_Integer:
+ printf("%d", object.asInt());
+ break;
+ case NsSmartDeviceLink::NsSmartObjects::SmartType_String:
+ printf("%s", object.asString().c_str());
+ break;
+ case NsSmartDeviceLink::NsSmartObjects::SmartType_Character:
+ printf("%c", object.asChar());
+ break;
+ default:
+ printf("PrintSmartObject - default case\n");
+ break;
+ }
+
+ if (0 != tab) {
+ --tab;
+ } else {
+ printf("\n-------------------------------------------------------------\n");
+ }
+
+ return true;
+}
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/mobile_command_factory.cc b/SDL_Core/src/components/application_manager/src/mobile_command_factory.cc
new file mode 100644
index 000000000..9b868f8c4
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/mobile_command_factory.cc
@@ -0,0 +1,570 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/mobile_command_factory.h"
+#include "application_manager/commands/mobile/add_command_request.h"
+#include "application_manager/commands/mobile/add_command_response.h"
+#include "application_manager/commands/mobile/delete_command_request.h"
+#include "application_manager/commands/mobile/delete_command_response.h"
+#include "application_manager/commands/mobile/add_sub_menu_request.h"
+#include "application_manager/commands/mobile/add_sub_menu_response.h"
+#include "application_manager/commands/mobile/alert_request.h"
+#include "application_manager/commands/mobile/alert_response.h"
+#include "application_manager/commands/mobile/alert_maneuver_request.h"
+#include "application_manager/commands/mobile/alert_maneuver_response.h"
+#include "application_manager/commands/mobile/change_registration_request.h"
+#include "application_manager/commands/mobile/change_registration_response.h"
+#include "application_manager/commands/mobile/create_interaction_choice_set_request.h"
+#include "application_manager/commands/mobile/create_interaction_choice_set_response.h"
+#include "application_manager/commands/mobile/delete_file_request.h"
+#include "application_manager/commands/mobile/delete_file_response.h"
+#include "application_manager/commands/mobile/delete_interaction_choice_set_request.h"
+#include "application_manager/commands/mobile/delete_interaction_choice_set_response.h"
+#include "application_manager/commands/mobile/delete_sub_menu_request.h"
+#include "application_manager/commands/mobile/delete_sub_menu_response.h"
+#include "application_manager/commands/mobile/dial_number_request.h"
+#include "application_manager/commands/mobile/encoded_sync_pdata_request.h"
+#include "application_manager/commands/mobile/encoded_sync_pdata_response.h"
+#include "application_manager/commands/mobile/end_audio_pass_thru_request.h"
+#include "application_manager/commands/mobile/end_audio_pass_thru_response.h"
+#include "application_manager/commands/mobile/generic_response.h"
+#include "application_manager/commands/mobile/get_dtcs_request.h"
+#include "application_manager/commands/mobile/get_dtcs_response.h"
+#include "application_manager/commands/mobile/get_vehicle_data_request.h"
+#include "application_manager/commands/mobile/get_vehicle_data_response.h"
+#include "application_manager/commands/mobile/list_files_request.h"
+#include "application_manager/commands/mobile/list_files_response.h"
+#include "application_manager/commands/mobile/on_app_interface_unregistered_notification.h"
+#include "application_manager/commands/mobile/on_audio_pass_thru_notification.h"
+#include "application_manager/commands/mobile/on_button_event_notification.h"
+#include "application_manager/commands/mobile/on_button_press_notification.h"
+#include "application_manager/commands/mobile/on_driver_distraction_notification.h"
+#include "application_manager/commands/mobile/on_encoded_sync_pdata_notification.h"
+#include "application_manager/commands/mobile/on_hmi_status_notification.h"
+#include "application_manager/commands/mobile/on_language_change_notification.h"
+#include "application_manager/commands/mobile/on_command_notification.h"
+#include "application_manager/commands/mobile/on_permissions_change_notification.h"
+#include "application_manager/commands/mobile/on_tbt_client_state_notification.h"
+#include "application_manager/commands/mobile/on_vehicle_data_notification.h"
+#include "application_manager/commands/mobile/on_hash_change_notification.h"
+#include "application_manager/commands/mobile/perform_audio_pass_thru_request.h"
+#include "application_manager/commands/mobile/perform_audio_pass_thru_response.h"
+#include "application_manager/commands/mobile/perform_interaction_request.h"
+#include "application_manager/commands/mobile/perform_interaction_response.h"
+#include "application_manager/commands/mobile/put_file_request.h"
+#include "application_manager/commands/mobile/put_file_response.h"
+#include "application_manager/commands/mobile/read_did_request.h"
+#include "application_manager/commands/mobile/read_did_response.h"
+#include "application_manager/commands/mobile/register_app_interface_request.h"
+#include "application_manager/commands/mobile/register_app_interface_response.h"
+#include "application_manager/commands/mobile/reset_global_properties_request.h"
+#include "application_manager/commands/mobile/reset_global_properties_response.h"
+#include "application_manager/commands/mobile/scrollable_message_request.h"
+#include "application_manager/commands/mobile/scrollable_message_response.h"
+#include "application_manager/commands/mobile/set_display_layout_request.h"
+#include "application_manager/commands/mobile/set_display_layout_response.h"
+#include "application_manager/commands/mobile/set_global_properties_request.h"
+#include "application_manager/commands/mobile/set_global_properties_response.h"
+#include "application_manager/commands/mobile/set_icon_request.h"
+#include "application_manager/commands/mobile/set_icon_response.h"
+#include "application_manager/commands/mobile/set_media_clock_timer_request.h"
+#include "application_manager/commands/mobile/set_media_clock_timer_response.h"
+#include "application_manager/commands/mobile/show_constant_tbt_request.h"
+#include "application_manager/commands/mobile/show_constant_tbt_response.h"
+#include "application_manager/commands/mobile/show_request.h"
+#include "application_manager/commands/mobile/show_response.h"
+#include "application_manager/commands/mobile/slider_request.h"
+#include "application_manager/commands/mobile/slider_response.h"
+#include "application_manager/commands/mobile/speak_request.h"
+#include "application_manager/commands/mobile/speak_response.h"
+#include "application_manager/commands/mobile/subscribe_button_request.h"
+#include "application_manager/commands/mobile/subscribe_button_response.h"
+#include "application_manager/commands/mobile/subscribe_vehicle_data_request.h"
+#include "application_manager/commands/mobile/subscribe_vehicle_data_response.h"
+#include "application_manager/commands/mobile/unregister_app_interface_request.h"
+#include "application_manager/commands/mobile/unregister_app_interface_response.h"
+#include "application_manager/commands/mobile/unsubscribe_button_request.h"
+#include "application_manager/commands/mobile/unsubscribe_button_response.h"
+#include "application_manager/commands/mobile/unsubscribe_vehicle_data_request.h"
+#include "application_manager/commands/mobile/unsubscribe_vehicle_data_response.h"
+#include "application_manager/commands/mobile/update_turn_list_request.h"
+#include "application_manager/commands/mobile/update_turn_list_response.h"
+#include "application_manager/commands/mobile/sync_pdata_request.h"
+#include "application_manager/commands/mobile/sync_pdata_response.h"
+#include "application_manager/commands/mobile/system_request.h"
+#include "application_manager/commands/mobile/system_response.h"
+#include "application_manager/commands/mobile/on_sync_pdata_notification.h"
+#include "application_manager/commands/mobile/on_keyboard_input_notification.h"
+#include "application_manager/commands/mobile/on_touch_event_notification.h"
+#include "application_manager/commands/mobile/on_system_request_notification.h"
+#include "application_manager/commands/mobile/diagnostic_message_request.h"
+#include "application_manager/commands/mobile/diagnostic_message_response.h"
+#include "interfaces/MOBILE_API.h"
+
+namespace application_manager {
+
+CommandSharedPtr MobileCommandFactory::CreateCommand(
+ const MessageSharedPtr& message) {
+ CommandSharedPtr command;
+
+ switch ((*message)[strings::params][strings::function_id].asInt()) {
+ case mobile_apis::FunctionID::RegisterAppInterfaceID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kRequest)) {
+ command.reset(new commands::RegisterAppInterfaceRequest(message));
+ } else {
+ command.reset(new commands::RegisterAppInterfaceResponse(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::UnregisterAppInterfaceID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kRequest)) {
+ command.reset(new commands::UnregisterAppInterfaceRequest(message));
+ } else {
+ command.reset(new commands::UnregisterAppInterfaceResponse(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::SetGlobalPropertiesID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::SetGlobalPropertiesResponse(message));
+ } else {
+ command.reset(new commands::SetGlobalPropertiesRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::ResetGlobalPropertiesID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::ResetGlobalPropertiesResponse(message));
+ } else {
+ command.reset(new commands::ResetGlobalPropertiesRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::AddCommandID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::AddCommandResponse(message));
+ } else {
+ command.reset(new commands::AddCommandRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::DeleteCommandID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::DeleteCommandResponse(message));
+ } else {
+ command.reset(new commands::DeleteCommandRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::AddSubMenuID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::AddSubMenuResponse(message));
+ } else {
+ command.reset(new commands::AddSubMenuRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::DeleteSubMenuID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::DeleteSubMenuResponse(message));
+ } else {
+ command.reset(new commands::DeleteSubMenuRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::DeleteInteractionChoiceSetID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(
+ new commands::DeleteInteractionChoiceSetResponse(message));
+ } else {
+ command.reset(new commands::DeleteInteractionChoiceSetRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::AlertID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::AlertResponse(message));
+ } else {
+ command.reset(new commands::AlertRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::SpeakID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::SpeakResponse(message));
+ } else {
+ command.reset(new commands::SpeakRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::SliderID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::SliderResponse(message));
+ } else {
+ command.reset(new commands::SliderRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::PerformAudioPassThruID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::PerformAudioPassThruResponse(message));
+ } else {
+ command.reset(new commands::PerformAudioPassThruRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::CreateInteractionChoiceSetID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(
+ new commands::CreateInteractionChoiceSetResponse(message));
+ } else {
+ command.reset(new commands::CreateInteractionChoiceSetRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::PerformInteractionID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::PerformInteractionResponse(message));
+ } else {
+ command.reset(new commands::PerformInteractionRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::EndAudioPassThruID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::EndAudioPassThruResponse(message));
+ } else {
+ command.reset(new commands::EndAudioPassThruRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::PutFileID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::PutFileResponse(message));
+ } else {
+ command.reset(new commands::PutFileRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::DeleteFileID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::DeleteFileResponse(message));
+ } else {
+ command.reset(new commands::DeleteFileRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::ListFilesID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::ListFilesResponse(message));
+ } else {
+ command.reset(new commands::ListFilesRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::SubscribeButtonID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::SubscribeButtonResponse(message));
+ } else {
+ command.reset(new commands::SubscribeButtonRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::UnsubscribeButtonID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::UnsubscribeButtonResponse(message));
+ } else {
+ command.reset(new commands::UnsubscribeButtonRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::ShowConstantTBTID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::ShowConstantTBTResponse(message));
+ } else {
+ command.reset(new commands::ShowConstantTBTRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::ShowID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::ShowResponse(message));
+ } else {
+ command.reset(new commands::ShowRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::SubscribeVehicleDataID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::SubscribeVehicleDataResponse(message));
+ } else {
+ command.reset(new commands::SubscribeVehicleDataRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::SyncPDataID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::SyncPDataResponse(message));
+ } else {
+ command.reset(new commands::SyncPDataRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::EncodedSyncPDataID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::EncodedSyncPDataResponse(message));
+ } else {
+ command.reset(new commands::EncodedSyncPDataRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::UnsubscribeVehicleDataID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::UnsubscribeVehicleDataResponse(message));
+ } else {
+ command.reset(new commands::UnsubscribeVehicleDataRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::ReadDIDID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::ReadDIDResponse(message));
+ } else {
+ command.reset(new commands::ReadDIDRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::GetVehicleDataID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::GetVehicleDataResponse(message));
+ } else {
+ command.reset(new commands::GetVehicleDataRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::ScrollableMessageID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::ScrollableMessageResponse(message));
+ } else {
+ command.reset(new commands::ScrollabelMessageRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::AlertManeuverID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::AlertManeuverResponse(message));
+ } else {
+ command.reset(new commands::AlertManeuverRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::SetAppIconID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::SetIconResponse(message));
+ } else {
+ command.reset(new commands::SetIconRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::SetDisplayLayoutID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::SetDisplayLayoutResponse(message));
+ } else {
+ command.reset(new commands::SetDisplayLayoutRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::UpdateTurnListID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::UpdateTurnListResponse(message));
+ } else {
+ command.reset(new commands::UpdateTurnListRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::ChangeRegistrationID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::ChangeRegistrationResponse(message));
+ } else {
+ command.reset(new commands::ChangeRegistrationRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::GetDTCsID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::GetDTCsResponse(message));
+ } else {
+ command.reset(new commands::GetDTCsRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::DiagnosticMessageID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::DiagnosticMessageResponse(message));
+ } else {
+ command.reset(new commands::DiagnosticMessageRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::SetMediaClockTimerID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::SetMediaClockTimerResponse(message));
+ } else {
+ command.reset(new commands::SetMediaClockRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::SystemRequestID: {
+ if ((*message)[strings::params][strings::message_type]
+ == static_cast<int>(application_manager::MessageType::kResponse)) {
+ command.reset(new commands::SystemResponse(message));
+ } else {
+ command.reset(new commands::SystemRequest(message));
+ }
+ break;
+ }
+ case mobile_apis::FunctionID::OnButtonEventID: {
+ command.reset(new commands::mobile::OnButtonEventNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnButtonPressID: {
+ command.reset(new commands::mobile::OnButtonPressNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnAudioPassThruID: {
+ command.reset(new commands::OnAudioPassThruNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnVehicleDataID: {
+ command.reset(new commands::OnVehicleDataNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnAppInterfaceUnregisteredID: {
+ command.reset(
+ new commands::OnAppInterfaceUnregisteredNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnCommandID: {
+ command.reset(new commands::OnCommandNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnTBTClientStateID: {
+ command.reset(new commands::OnTBTClientStateNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnDriverDistractionID: {
+ command.reset(
+ new commands::mobile::OnDriverDistractionNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnLanguageChangeID: {
+ command.reset(new commands::OnLanguageChangeNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnPermissionsChangeID: {
+ command.reset(new commands::OnPermissionsChangeNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnHMIStatusID: {
+ command.reset(new commands::OnHMIStatusNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnSyncPDataID: {
+ command.reset(new commands::OnSyncPDataNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnKeyboardInputID: {
+ command.reset(new commands::mobile::OnKeyBoardInputNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnTouchEventID: {
+ command.reset(new commands::mobile::OnTouchEventNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnSystemRequestID: {
+ command.reset(new commands::mobile::OnSystemRequestNotification(message));
+ break;
+ }
+ case mobile_apis::FunctionID::OnHashChangeID: {
+ command.reset(new commands::mobile::OnHashChangeNotification(message));
+ break;
+ }
+ default: {
+ command.reset(new commands::GenericResponse(message));
+ (*message)[strings::params][strings::function_id] =
+ static_cast<int32_t>(mobile_apis::FunctionID::GenericResponseID);
+ break;
+ }
+ }
+
+ return command;
+}
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/mobile_message_handler.cc b/SDL_Core/src/components/application_manager/src/mobile_message_handler.cc
new file mode 100644
index 000000000..94c277288
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/mobile_message_handler.cc
@@ -0,0 +1,218 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string.h>
+
+#include "utils/macro.h"
+#include "application_manager/mobile_message_handler.h"
+#include "protocol_handler/service_type.h"
+#include "protocol_handler/protocol_payload.h"
+#include "utils/bitstream.h"
+
+#include <stdint.h>
+#include <memory>
+
+namespace {
+const uint8_t kRequest = 0x0;
+const uint8_t kResponse = 0x1;
+const uint8_t kNotification = 0x2;
+const uint8_t kUnknown = 0xF;
+}
+
+namespace application_manager {
+
+log4cxx::LoggerPtr MobileMessageHandler::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("MobileMessageHandler"));
+
+application_manager::Message*
+MobileMessageHandler::HandleIncomingMessageProtocolV1(
+ const protocol_handler::RawMessagePtr& message) {
+ LOG4CXX_INFO(logger_,
+ "MobileMessageHandler HandleIncomingMessageProtocolV1()");
+ application_manager::Message* outgoing_message =
+ new application_manager::Message(
+ protocol_handler::MessagePriority::FromServiceType(
+ message->service_type())
+ );
+ if (!message) {
+ NOTREACHED();
+ return NULL;
+ }
+
+ outgoing_message->set_connection_key(message->connection_key());
+ outgoing_message->set_protocol_version(
+ static_cast<application_manager::ProtocolVersion>(message
+ ->protocol_version()));
+ outgoing_message->set_json_message(
+ std::string(reinterpret_cast<const char*>(message->data()),
+ message->data_size()));
+
+ if (outgoing_message->json_message().empty()) {
+ return NULL;
+ }
+
+ return outgoing_message;
+}
+
+application_manager::Message*
+MobileMessageHandler::HandleIncomingMessageProtocolV2(
+ const protocol_handler::RawMessagePtr& message) {
+ LOG4CXX_INFO(logger_,
+ "MobileMessageHandler HandleIncomingMessageProtocolV2()");
+
+ utils::BitStream message_bytestream(message->data(), message->data_size());
+ protocol_handler::ProtocolPayloadV2 payload;
+ protocol_handler::Extract(&message_bytestream, &payload,
+ message->data_size());
+
+ // Silently drop message if it wasn't parsed correctly
+ if (message_bytestream.IsBad()) {
+ LOG4CXX_INFO(logger_,
+ "Drop ill-formed message from mobile, partially parsed: "
+ <<payload);
+ return NULL;
+ }
+
+ std::auto_ptr<application_manager::Message> outgoing_message(
+ new application_manager::Message(
+ protocol_handler::MessagePriority::FromServiceType(
+ message->service_type())));
+
+ outgoing_message->set_json_message(payload.json);
+ outgoing_message->set_function_id(payload.header.rpc_function_id);
+ outgoing_message->set_message_type(
+ MessageTypeFromRpcType(payload.header.rpc_type));
+ outgoing_message->set_correlation_id(int32_t(payload.header.corellation_id));
+ outgoing_message->set_connection_key(message->connection_key());
+ outgoing_message->set_protocol_version(
+ static_cast<application_manager::ProtocolVersion>(message
+ ->protocol_version()));
+
+ if (!payload.data.empty()) {
+ outgoing_message->set_binary_data(
+ new application_manager::BinaryData(payload.data));
+ }
+ return outgoing_message.release();
+}
+
+protocol_handler::RawMessage*
+MobileMessageHandler::HandleOutgoingMessageProtocolV1(
+ const MobileMessage& message) {
+ LOG4CXX_INFO(logger_,
+ "MobileMessageHandler HandleOutgoingMessageProtocolV1()");
+ std::string messageString = message->json_message();
+ if (messageString.length() == 0) {
+ LOG4CXX_INFO(logger_,
+ "Drop ill-formed message from mobile");
+ return NULL;
+ }
+
+ uint8_t* rawMessage = new uint8_t[messageString.length() + 1];
+ memcpy(rawMessage, messageString.c_str(), messageString.length() + 1);
+
+ protocol_handler::RawMessage* result = new protocol_handler::RawMessage(
+ message->connection_key(), 1, rawMessage, messageString.length() + 1);
+
+ return result;
+}
+
+protocol_handler::RawMessage*
+MobileMessageHandler::HandleOutgoingMessageProtocolV2(
+ const MobileMessage& message) {
+ LOG4CXX_INFO(logger_,
+ "MobileMessageHandler HandleOutgoingMessageProtocolV2()");
+ if (message->json_message().length() == 0) {
+ LOG4CXX_ERROR(logger_, "json string is empty.")
+ }
+ const uint32_t MAX_HEADER_SIZE = 12;
+
+ uint32_t jsonSize = message->json_message().length();
+ uint32_t binarySize = 0;
+ if (message->has_binary_data()) {
+ binarySize = message->binary_data()->size();
+ }
+
+ uint8_t* dataForSending = new uint8_t[MAX_HEADER_SIZE + jsonSize
+ + binarySize];
+ uint8_t offset = 0;
+
+ uint8_t rpcTypeFlag = 0;
+ switch (message->type()) {
+ case application_manager::kRequest:
+ rpcTypeFlag = kRequest;
+ break;
+ case application_manager::kResponse:
+ rpcTypeFlag = kResponse;
+ break;
+ case application_manager::kNotification:
+ rpcTypeFlag = kNotification;
+ break;
+ default:
+ NOTREACHED();
+ break;
+ }
+
+ uint32_t functionId = message->function_id();
+ dataForSending[offset++] = ((rpcTypeFlag << 4) & 0xF0) | (functionId >> 24);
+ dataForSending[offset++] = functionId >> 16;
+ dataForSending[offset++] = functionId >> 8;
+ dataForSending[offset++] = functionId;
+
+ uint32_t correlationId = message->correlation_id();
+ dataForSending[offset++] = correlationId >> 24;
+ dataForSending[offset++] = correlationId >> 16;
+ dataForSending[offset++] = correlationId >> 8;
+ dataForSending[offset++] = correlationId;
+
+ dataForSending[offset++] = jsonSize >> 24;
+ dataForSending[offset++] = jsonSize >> 16;
+ dataForSending[offset++] = jsonSize >> 8;
+ dataForSending[offset++] = jsonSize;
+
+ memcpy(dataForSending + offset, message->json_message().c_str(), jsonSize);
+
+ if (message->has_binary_data()) {
+ const std::vector<uint8_t>& binaryData = *(message->binary_data());
+ uint8_t* currentPointer = dataForSending + offset + jsonSize;
+ for (uint32_t i = 0; i < binarySize; ++i) {
+ currentPointer[i] = binaryData[i];
+ }
+ }
+
+ protocol_handler::RawMessage* msgToProtocolHandler =
+ new protocol_handler::RawMessage(message->connection_key(), 2,
+ dataForSending,
+ MAX_HEADER_SIZE + jsonSize + binarySize);
+
+ return msgToProtocolHandler;
+}
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/policies_manager/policies_manager.cc b/SDL_Core/src/components/application_manager/src/policies_manager/policies_manager.cc
new file mode 100644
index 000000000..408d26cd8
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/policies_manager/policies_manager.cc
@@ -0,0 +1,201 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "application_manager/policies_manager/policies_manager.h"
+
+#include <algorithm>
+
+#include "json/json.h"
+#include "config_profile/profile.h"
+#include "utils/file_system.h"
+
+namespace FunctionID = mobile_apis::FunctionID;
+
+namespace {
+const char kRpcsKey[] = "rpcs";
+const char kHmiLevelsKey[] = "hmi_levels";
+
+std::pair<const char*, FunctionID::eType> kFunctionIDsInitializer[] = {
+ std::make_pair("RegisterAppInterface", FunctionID::RegisterAppInterfaceID),
+ std::make_pair("UnregisterAppInterface", FunctionID::UnregisterAppInterfaceID),
+ std::make_pair("SetGlobalProperties", FunctionID::SetGlobalPropertiesID),
+ std::make_pair("ResetGlobalProperties", FunctionID::ResetGlobalPropertiesID),
+ std::make_pair("AddCommand", FunctionID::AddCommandID),
+ std::make_pair("DeleteCommand", FunctionID::DeleteCommandID),
+ std::make_pair("AddSubMenu", FunctionID::AddSubMenuID),
+ std::make_pair("DeleteSubMenu", FunctionID::DeleteSubMenuID),
+ std::make_pair("CreateInteractionChoiceSet", FunctionID::CreateInteractionChoiceSetID),
+ std::make_pair("PerformInteraction", FunctionID::PerformInteractionID),
+ std::make_pair("DeleteInteractionChoiceSet", FunctionID::DeleteInteractionChoiceSetID),
+ std::make_pair("Alert", FunctionID::AlertID),
+ std::make_pair("Show", FunctionID::ShowID),
+ std::make_pair("Speak", FunctionID::SpeakID),
+ std::make_pair("SetMediaClockTimer", FunctionID::SetMediaClockTimerID),
+ std::make_pair("EncodedSyncPData", FunctionID::EncodedSyncPDataID),
+ std::make_pair("SyncPData", FunctionID::SyncPDataID),
+ std::make_pair("PerformAudioPassThru", FunctionID::PerformAudioPassThruID),
+ std::make_pair("EndAudioPassThru", FunctionID::EndAudioPassThruID),
+ std::make_pair("SubscribeButton", FunctionID::SubscribeButtonID),
+ std::make_pair("UnsubscribeButton", FunctionID::UnsubscribeButtonID),
+ std::make_pair("SubscribeVehicleData", FunctionID::SubscribeVehicleDataID),
+ std::make_pair("UnsubscribeVehicleData", FunctionID::UnsubscribeVehicleDataID),
+ std::make_pair("GetVehicleData", FunctionID::GetVehicleDataID),
+ std::make_pair("ReadDID", FunctionID::ReadDIDID),
+ std::make_pair("GetDTCs", FunctionID::GetDTCsID),
+ std::make_pair("DiagnosticMessage", FunctionID::DiagnosticMessageID),
+ std::make_pair("SystemRequest", FunctionID::SystemRequestID),
+ std::make_pair("ScrollableMessage", FunctionID::ScrollableMessageID),
+ std::make_pair("Slider", FunctionID::SliderID),
+ std::make_pair("ShowConstantTBT", FunctionID::ShowConstantTBTID),
+ std::make_pair("AlertManeuver", FunctionID::AlertManeuverID),
+ std::make_pair("UpdateTurnList", FunctionID::UpdateTurnListID),
+ std::make_pair("ChangeRegistration", FunctionID::ChangeRegistrationID),
+ std::make_pair("GenericResponse", FunctionID::GenericResponseID),
+ std::make_pair("PutFile", FunctionID::PutFileID),
+ std::make_pair("DeleteFile", FunctionID::DeleteFileID),
+ std::make_pair("ListFiles", FunctionID::ListFilesID),
+ std::make_pair("SetAppIcon", FunctionID::SetAppIconID),
+ std::make_pair("SetDisplayLayout", FunctionID::SetDisplayLayoutID),
+ std::make_pair("OnHMIStatus", FunctionID::OnHMIStatusID),
+ std::make_pair("OnAppInterfaceUnregistered", FunctionID::OnAppInterfaceUnregisteredID),
+ std::make_pair("OnButtonEvent", FunctionID::OnButtonEventID),
+ std::make_pair("OnButtonPress", FunctionID::OnButtonPressID),
+ std::make_pair("OnVehicleData", FunctionID::OnVehicleDataID),
+ std::make_pair("OnCommand", FunctionID::OnCommandID),
+ std::make_pair("OnEncodedSyncPData", FunctionID::OnEncodedSyncPDataID),
+ std::make_pair("OnTBTClientState", FunctionID::OnTBTClientStateID),
+ std::make_pair("OnPermissionsChange", FunctionID::OnPermissionsChangeID),
+ std::make_pair("OnAudioPassThru", FunctionID::OnAudioPassThruID),
+ std::make_pair("OnLanguageChange", FunctionID::OnLanguageChangeID),
+ std::make_pair("OnDriverDistraction", FunctionID::OnDriverDistractionID),
+ std::make_pair("OnSyncPData", FunctionID::EncodedSyncPDataID)
+};
+std::map<std::string, FunctionID::eType> kFunctionIDs(kFunctionIDsInitializer,
+ kFunctionIDsInitializer +
+ ARRAYSIZE(kFunctionIDsInitializer));
+
+std::pair<const char*, mobile_apis::HMILevel::eType> kHmiLevelsInitializer[] = {
+ std::make_pair("FULL", mobile_apis::HMILevel::HMI_FULL),
+ std::make_pair("LIMITED", mobile_apis::HMILevel::HMI_LIMITED),
+ std::make_pair("BACKGROUND", mobile_apis::HMILevel::HMI_BACKGROUND),
+ std::make_pair("NONE", mobile_apis::HMILevel::HMI_NONE)
+};
+
+std::map<std::string, mobile_apis::HMILevel::eType> kHmiLevels(kHmiLevelsInitializer,
+ kHmiLevelsInitializer +
+ ARRAYSIZE(kHmiLevelsInitializer));
+} // namespace
+
+namespace application_manager {
+namespace policies_manager {
+
+//! ---------------------------------------------------------------------------
+
+log4cxx::LoggerPtr PoliciesManager::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("PoliciesManager"));
+
+//! ---------------------------------------------------------------------------
+
+PoliciesManager::PoliciesManager() {
+}
+
+PoliciesManager::~PoliciesManager() {
+}
+
+bool PoliciesManager::Init() {
+ std::string json_string;
+ std::string policies_file_name = profile::Profile::instance()
+ ->policies_file_name();
+ if (!file_system::FileExists(policies_file_name)) {
+ return false;
+ }
+
+ if (!file_system::ReadFile(policies_file_name, json_string)) {
+ return false;
+ }
+
+ try {
+ Json::Reader reader_;
+ Json::Value json_;
+ bool parsedSuccess = reader_.parse(json_string, json_, false);
+ if (!parsedSuccess) {
+ LOG4CXX_ERROR(
+ logger_,
+ "Failed to parse JSON: " << reader_.getFormatedErrorMessages());
+ return false;
+ }
+
+ if (!json_.isMember(kRpcsKey)) {
+ LOG4CXX_ERROR(logger_, kRpcsKey << " doesn't exist.");
+ return false;
+ }
+
+ const Json::Value& items = json_[kRpcsKey];
+ for (Json::ValueIterator i = items.begin(); i != items.end(); ++i) {
+ const Json::Value& item = i.key();
+ HmiLevels hmi_levels;
+
+ if (items.isMember(kHmiLevelsKey)) {
+ continue;
+ }
+
+ const Json::Value levels = items[item.asString()][kHmiLevelsKey];
+ for (uint32_t j = 0; j < levels.size(); ++j) {
+ hmi_levels.push_back(kHmiLevels[levels[j].asString()]);
+ }
+
+ items_.insert(PoliciesItem(kFunctionIDs[item.asString()], hmi_levels));
+ }
+ } catch (...) {
+ return false;
+ }
+
+ return true;
+}
+
+bool PoliciesManager::IsValidHmiStatus(FunctionID::eType function,
+ mobile_apis::HMILevel::eType status) {
+ if (items_.find(function) == items_.end()) {
+ return false;
+ }
+
+ HmiLevels levels = items_[function];
+ if (std::find(levels.begin(), levels.end(), status) != levels.end()) {
+ return true;
+ }
+
+ return false;
+}
+
+} // namespace policies_manager
+} // namespace application_manager
+
diff --git a/SDL_Core/src/components/application_manager/src/request_controller.cc b/SDL_Core/src/components/application_manager/src/request_controller.cc
new file mode 100644
index 000000000..5021f721b
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/request_controller.cc
@@ -0,0 +1,204 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "utils/logger.h"
+#include "config_profile/profile.h"
+#include "application_manager/request_controller.h"
+#include "application_manager/commands/command_request_impl.h"
+
+namespace application_manager {
+
+namespace request_controller {
+using namespace sync_primitives;
+
+log4cxx::LoggerPtr logger_ =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("RequestController"));
+
+RequestController::RequestController()
+ : watchdog_(NULL) {
+ LOG4CXX_INFO(logger_, "RequestController::RequestController()");
+ watchdog_ = new request_watchdog::RequestWatchdog;
+ watchdog_->AddListener(this);
+}
+
+RequestController::~RequestController() {
+ LOG4CXX_INFO(logger_, "RequestController::~RequestController()");
+ request_list_.clear();
+
+ if (watchdog_) {
+ watchdog_->RemoveListener(this);
+ delete watchdog_;
+ watchdog_ = NULL;
+ }
+}
+
+RequestController::TResult RequestController::addRequest(
+ const Request& request, const mobile_apis::HMILevel::eType& hmi_level) {
+ LOG4CXX_INFO(logger_, "RequestController::addRequest()");
+
+ RequestController::TResult result = RequestController::SUCCESS;
+ {
+ AutoLock auto_lock(request_list_lock_);
+
+ const commands::CommandRequestImpl* request_impl =
+ static_cast<commands::CommandRequestImpl*>(request.get());
+
+ const uint32_t& app_hmi_level_none_time_scale =
+ profile::Profile::instance()->app_hmi_level_none_time_scale();
+
+ const uint32_t& app_hmi_level_none_max_request_per_time_scale =
+ profile::Profile::instance()->app_hmi_level_none_time_scale_max_requests();
+
+ const uint32_t& app_time_scale =
+ profile::Profile::instance()->app_time_scale();
+
+ const uint32_t& max_request_per_time_scale =
+ profile::Profile::instance()->app_time_scale_max_requests();
+
+ const uint32_t& pending_requests_amount =
+ profile::Profile::instance()->pending_requests_amount();
+
+ const mobile_apis::HMILevel::eType hmi_level =
+ mobile_apis::HMILevel::HMI_NONE;
+
+ if (false == watchdog_->checkHMILevelTimeScaleMaxRequest(hmi_level,
+ request_impl->connection_key(), app_hmi_level_none_time_scale,
+ app_hmi_level_none_max_request_per_time_scale)) {
+ LOG4CXX_ERROR(logger_, "Too many application requests in hmi level NONE");
+ result = RequestController::NONE_HMI_LEVEL_MANY_REQUESTS;
+ } else if (false == watchdog_->checkTimeScaleMaxRequest(
+ request_impl->connection_key(),
+ app_time_scale, max_request_per_time_scale)) {
+ LOG4CXX_ERROR(logger_, "Too many application requests");
+ result = RequestController::TOO_MANY_REQUESTS;
+ } else if (pending_requests_amount == request_list_.size()) {
+ LOG4CXX_ERROR(logger_, "Too many pending request");
+ result = RequestController::TOO_MANY_PENDING_REQUESTS;
+ } else {
+
+ request_list_.push_back(request);
+
+ LOG4CXX_INFO(logger_, "Adding request to watchdog. Default timeout is "
+ << request_impl->default_timeout());
+
+ watchdog_->addRequest(new request_watchdog::RequestInfo(
+ request_impl->function_id(),
+ request_impl->connection_key(),
+ request_impl->correlation_id(),
+ request_impl->default_timeout(),
+ hmi_level));
+
+ LOG4CXX_INFO(logger_, "Added request to watchdog.");
+ LOG4CXX_INFO(logger_, "RequestController size is " << request_list_.size());
+ }
+ }
+
+ return result;
+}
+
+void RequestController::terminateRequest(
+ const uint32_t& mobile_correlation_id) {
+ LOG4CXX_INFO(logger_, "RequestController::terminateRequest()");
+
+ {
+ AutoLock auto_lock(request_list_lock_);
+ std::list<Request>::iterator it = request_list_.begin();
+ for (; request_list_.end() != it; ++it) {
+ const commands::CommandRequestImpl* request_impl =
+ static_cast<commands::CommandRequestImpl*>(it->get());
+ if (request_impl->correlation_id() == mobile_correlation_id) {
+ watchdog_->removeRequest(
+ request_impl->connection_key(), request_impl->correlation_id());
+ request_list_.erase(it);
+ break;
+ }
+ }
+ }
+}
+
+void RequestController::terminateAppRequests(
+ const uint32_t& app_id) {
+ LOG4CXX_INFO(logger_, "RequestController::terminateAppRequests()");
+
+ {
+ AutoLock auto_lock(request_list_lock_);
+ std::list<Request>::iterator it = request_list_.begin();
+ for (; request_list_.end() != it; ++it) {
+ const commands::CommandRequestImpl* request_impl =
+ static_cast<commands::CommandRequestImpl*>(it->get());
+ if (request_impl->connection_key() == app_id) {
+ watchdog_->removeRequest(
+ request_impl->connection_key(), request_impl->correlation_id());
+ it = request_list_.erase(it);
+ }
+ }
+ }
+}
+
+void RequestController::updateRequestTimeout(
+ const uint32_t& connection_key,
+ const uint32_t& mobile_correlation_id,
+ const uint32_t& new_timeout) {
+ LOG4CXX_INFO(logger_, "RequestController::updateRequestTimeout()");
+
+ watchdog_->updateRequestTimeout(connection_key,
+ mobile_correlation_id,
+ new_timeout);
+}
+
+void RequestController::onTimeoutExpired(
+ const request_watchdog::RequestInfo& info) {
+ LOG4CXX_INFO(logger_, "RequestController::onTimeoutExpired()");
+
+ commands::CommandRequestImpl* request_impl = NULL;
+ {
+ AutoLock auto_lock(request_list_lock_);
+ std::list<Request>::iterator it = request_list_.begin();
+ for (; request_list_.end() != it; ++it) {
+ request_impl = static_cast<commands::CommandRequestImpl*>(it->get());
+ if (request_impl->correlation_id() == info.correlationID_ &&
+ request_impl->connection_key() == info.connectionID_) {
+ LOG4CXX_INFO(logger_, "Timeout for request id " << info.correlationID_
+ << " of application " << info.connectionID_ << " expired");
+ break;
+ }
+ }
+ }
+
+ if (request_impl) {
+ request_impl->onTimeOut();
+ }
+}
+
+} // namespace request_controller
+
+} // namespace application_manager
diff --git a/SDL_Core/src/components/application_manager/src/resume_ctrl.cpp b/SDL_Core/src/components/application_manager/src/resume_ctrl.cpp
new file mode 100644
index 000000000..74cb2459d
--- /dev/null
+++ b/SDL_Core/src/components/application_manager/src/resume_ctrl.cpp
@@ -0,0 +1,529 @@
+#include <fstream>
+
+#include "application_manager/resume_ctrl.h"
+#include "config_profile/profile.h"
+#include "utils/file_system.h"
+#include "connection_handler/connection_handler_impl.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application.h"
+#include "application_manager/message_helper.h"
+#include "smart_objects/smart_object.h"
+#include "connection_handler/connection.h"
+#include "formatters/CFormatterJsonBase.hpp"
+#include "application_manager/commands/command_impl.h"
+
+namespace application_manager {
+ log4cxx::LoggerPtr ResumeCtrl::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("ResumeCtrl"));
+namespace Formatters = NsSmartDeviceLink::NsJSONHandler::Formatters;
+
+ResumeCtrl::ResumeCtrl(ApplicationManagerImpl* app_mngr)
+ : app_mngr_(app_mngr),
+ timer_(this, &ResumeCtrl::onTimer) {
+}
+
+void ResumeCtrl::SaveAllApplications() {
+ LOG4CXX_INFO(logger_, " ResumeCtrl::SaveApplications()");
+ DCHECK(app_mngr_);
+
+ std::set<ApplicationSharedPtr>::iterator it =
+ app_mngr_->application_list_.begin();
+ std::set<ApplicationSharedPtr>::iterator it_end =
+ app_mngr_->application_list_.end();
+ for (; it != it_end; ++it) {
+ SaveApplication(*it);
+ }
+}
+
+void ResumeCtrl::SaveApplication(ApplicationConstSharedPtr application) {
+ LOG4CXX_INFO(logger_, " ResumeCtrl::SaveApplication");
+ DCHECK(application.get());
+
+ Json::Value* json_app = NULL;
+ const uint32_t app_id = application->mobile_app_id()->asInt();
+ for (std::vector<Json::Value>::iterator it = saved_applications_.begin();
+ it != saved_applications_.end(); ++it) {
+ if ((*it)[strings::app_id].asInt() == app_id) {
+ json_app = &(*it);
+ LOG4CXX_INFO(logger_, "ResumeCtrl Application with this id"
+ "is already exist ( update info ) " << app_id);
+ break;
+ }
+ }
+
+ if (json_app == NULL) {
+ LOG4CXX_INFO(logger_, "ResumeCtrl Application with this ID does not"
+ "exist. Add new" << app_id);
+ saved_applications_.push_back(Json::Value());
+ json_app = &(saved_applications_.back());
+ }
+
+ uint32_t connection_key = application->app_id();
+ (*json_app)[strings::app_id] = app_id;
+ (*json_app)[strings::connection_key] = connection_key;
+ (*json_app)[strings::hmi_level] =
+ static_cast<int32_t> (application->hmi_level());
+ (*json_app)[strings::ign_off_count] = 0;
+ (*json_app)[strings::hash_id] = application->curHash();
+ (*json_app)[strings::application_commands] =
+ GetApplicationCommands(connection_key);
+ (*json_app)[strings::application_choise_sets] =
+ GetApplicationInteractionChoiseSets(connection_key);
+ (*json_app)[strings::application_global_properties] =
+ GetApplicationGlobalProperties(connection_key);
+ (*json_app)[strings::application_subscribtions] =
+ GetApplicationSubscriptions(connection_key);
+ (*json_app)[strings::application_files] = GetApplicationFiles(connection_key);
+ (*json_app)[strings::time_stamp] = (uint32_t)time(NULL);
+}
+
+void ResumeCtrl::LoadApplications() {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::LoadApplications");
+ DCHECK(app_mngr_);
+
+ const std::string& storage =
+ profile::Profile::instance()->app_info_storage();
+ Json::Value root;
+ Json::Reader m_reader;
+ std::ifstream file(file_system::FullPath(storage).c_str(),
+ std::ios::in);
+ if (!file.is_open()) {
+ LOG4CXX_ERROR(logger_, "Error while opening file");
+ return;
+ }
+
+ m_reader.parse(file, root);
+ if (root.isNull()) {
+ LOG4CXX_INFO(logger_, "There are no Saved applications");
+ return;
+ }
+
+ for (Json::Value::iterator it = root.begin(); it != root.end(); ++it) {
+ Json::Value cur_app_data = (*it);
+ LOG4CXX_INFO(logger_, "Restored Application: " <<
+ cur_app_data.toStyledString());
+ saved_applications_.push_back(cur_app_data);
+ uint32_t session_key = cur_app_data[strings::connection_key].asUInt();
+ }
+}
+
+void ResumeCtrl::on_event(const event_engine::Event& event) {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::on_event ");
+}
+
+bool ResumeCtrl::RestoreApplicationHMILevel(ApplicationSharedPtr application) {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::RestoreApplicationHMILevel");
+ DCHECK(application.get());
+
+ for (std::vector<Json::Value>::iterator it = saved_applications_.begin();
+ it != saved_applications_.end(); ++it) {
+ if ((*it)[strings::app_id].asInt() ==
+ application->mobile_app_id()->asInt()) {
+
+ mobile_apis::HMILevel::eType saved_hmi_level;
+ mobile_apis::HMILevel::eType restored_hmi_level;
+
+ saved_hmi_level = static_cast<mobile_apis::HMILevel::eType>(
+ (*it)[strings::hmi_level].asInt());
+
+ if (saved_hmi_level == mobile_apis::HMILevel::HMI_FULL) {
+ restored_hmi_level = app_mngr_->PutApplicationInFull(application);
+ } else if (saved_hmi_level == mobile_apis::HMILevel::HMI_LIMITED) {
+ restored_hmi_level = app_mngr_->PutApplicationInLimited(application);
+ } else {
+ restored_hmi_level = saved_hmi_level;
+ application->set_hmi_level(saved_hmi_level);
+ }
+ MessageHelper::SendHMIStatusNotification(*(application.get()));
+ LOG4CXX_INFO(logger_, "Restore Application "
+ << (*it)[strings::app_id].asInt()
+ << " to HMILevel " << restored_hmi_level);
+ return true;
+ }
+ }
+
+ return false;
+}
+
+bool ResumeCtrl::RestoreApplicationData(ApplicationSharedPtr application) {
+ LOG4CXX_INFO(logger_, "RestoreApplicationData");
+ DCHECK(application.get());
+
+ std::vector<Json::Value>::iterator it = saved_applications_.begin();
+ for (; it != saved_applications_.end(); ++it) {
+ if ((*it)[strings::app_id].asInt() ==
+ application->mobile_app_id()->asInt()) {
+ break;
+ }
+ }
+ if (it == saved_applications_.end()) {
+ LOG4CXX_WARN(logger_,"Application not saved");
+ return false;
+ }
+
+ Json::Value& saved_app = *it;
+ MessageHelper::SmartObjectList requests;
+
+ LOG4CXX_INFO(logger_, saved_app.toStyledString());
+ Json::Value& app_commands = saved_app[strings::application_commands];
+ Json::Value& app_choise_sets = saved_app[strings::application_choise_sets];
+ Json::Value& global_properties = saved_app[strings::application_global_properties];
+ Json::Value& subscribtions = saved_app[strings::application_subscribtions];
+
+
+ //add commands
+ for (Json::Value::iterator json_it = app_commands.begin();
+ json_it != app_commands.end(); ++json_it) {
+ Json::Value& json_command = *json_it;
+ smart_objects::SmartObject message = smart_objects::SmartObject(
+ smart_objects::SmartType::SmartType_Map);
+ Formatters::CFormatterJsonBase::jsonValueToObj(json_command, message);
+ application->AddCommand(message[strings::cmd_id].asUInt(), message);
+ }
+
+ requests = MessageHelper::CreateAddCommandRequestToHMI(application);
+
+ for (MessageHelper::SmartObjectList::iterator it = requests.begin();
+ it != requests.end(); ++it) {
+ ProcessHMIRequest(*it, true);
+ }
+
+ //add choisets
+ for (Json::Value::iterator json_it = app_choise_sets.begin();
+ json_it != app_choise_sets.end(); ++json_it) {
+ Json::Value& json_choiset = *json_it;
+ smart_objects::SmartObject msg_param = smart_objects::SmartObject(
+ smart_objects::SmartType::SmartType_Map);
+ Formatters::CFormatterJsonBase::jsonValueToObj(json_choiset , msg_param);
+ const int32_t choice_set_id = msg_param
+ [strings::interaction_choice_set_id].asInt();
+ application->AddChoiceSet(choice_set_id, msg_param);
+ }
+
+ //setglobal properties
+ if (!global_properties.isNull()) {
+ smart_objects::SmartObject properties_so = smart_objects::SmartObject(
+ smart_objects::SmartType::SmartType_Map);
+ Formatters::CFormatterJsonBase::jsonValueToObj(global_properties , properties_so);
+
+ application->set_vr_help_title(
+ properties_so.getElement(strings::vr_help_title));
+ application->set_vr_help(
+ properties_so.getElement(strings::vr_help));
+ application->set_timeout_prompt(
+ properties_so.getElement(strings::timeout_prompt));
+ application->set_help_prompt(
+ properties_so.getElement(strings::help_prompt));
+ MessageHelper::SendGlobalPropertiesToHMI(application);
+ }
+
+ //subscribes
+ if (!subscribtions.isNull()) {
+ Json::Value& subscribtions_buttons = subscribtions[strings::application_buttons];
+ Json::Value& subscribtions_ivi= subscribtions[strings::application_vehicle_info];
+ for (Json::Value::iterator json_it = subscribtions_buttons.begin();
+ json_it != subscribtions_buttons.end(); ++json_it) {
+ mobile_apis::ButtonName::eType btn;
+ btn = static_cast<mobile_apis::ButtonName::eType>((*json_it).asInt());
+ application->SubscribeToButton(btn);
+ }
+
+ for (Json::Value::iterator json_it = subscribtions_ivi.begin();
+ json_it != subscribtions_ivi.end(); ++json_it) {
+ VehicleDataType ivi;
+ ivi = static_cast<VehicleDataType>((*json_it).asInt());
+ LOG4CXX_INFO(logger_, "VehicleDataType :" << ivi);
+ bool result = application->SubscribeToIVI(ivi);
+ LOG4CXX_INFO(logger_, "result = :" << result);
+ }
+ requests = MessageHelper::GetIVISubscribtionRequests(application->app_id());
+
+ for (MessageHelper::SmartObjectList::iterator it = requests.begin();
+ it != requests.end(); ++it) {
+ ProcessHMIRequest(*it,true);
+ }
+ }
+ return true;
+}
+
+bool ResumeCtrl::ApplicationIsSaved(const uint32_t app_id) {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::ApplicationIsSaved " << app_id);
+
+ for (std::vector<Json::Value>::iterator it = saved_applications_.begin();
+ it != saved_applications_.end(); ++it) {
+ if ((*it)[strings::connection_key].asInt() == app_id) {
+ return true;
+ }
+ }
+ return false;
+}
+
+bool ResumeCtrl::RemoveApplicationFromSaved(ApplicationConstSharedPtr application) {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::RemoveApplicationFromSaved ");
+ DCHECK(application.get());
+
+ for (std::vector<Json::Value>::iterator it = saved_applications_.begin();
+ it != saved_applications_.end(); ) {
+ if ((*it)[strings::app_id].asInt() == application->mobile_app_id()->asInt()) {
+ saved_applications_.erase(it);
+ return true;
+ } else {
+ ++it;
+ }
+ }
+ return false;
+}
+
+void ResumeCtrl::SavetoFileSystem() {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::SavetoFileSystem()");
+
+ const std::string& storage =
+ profile::Profile::instance()->app_info_storage();
+ std::ofstream file(file_system::FullPath(storage).c_str(),
+ std::ios::out);
+ Json::Value to_save;
+ for (std::vector<Json::Value>::iterator it = saved_applications_.begin();
+ it != saved_applications_.end(); ++it) {
+ uint32_t ign_off_count = (*it)[strings::ign_off_count].asUInt();
+ if (ign_off_count < kApplicationLifes) {
+ ign_off_count++;
+ (*it)[strings::ign_off_count] = ign_off_count;
+ to_save.append(*it);
+ }
+ }
+
+ if (file.is_open()) {
+ file << to_save.toStyledString();
+ } else {
+ LOG4CXX_ERROR(logger_, "An error occurred during save");
+ }
+ file.close();
+}
+
+
+bool ResumeCtrl::StartResumption(ApplicationSharedPtr application,
+ uint32_t hash) {
+
+ LOG4CXX_INFO(logger_, "ResumeCtrl::StartResumption " << hash);
+ DCHECK(application.get());
+ sync_primitives::AutoLock auto_lock(queue_lock_);
+
+ std::vector<Json::Value>::iterator it = saved_applications_.begin();
+ for (; it != saved_applications_.end(); ++it) {
+ if ((*it)[strings::app_id].asInt() ==
+ application->mobile_app_id()->asInt()) {
+
+ uint32_t saved_hash = (*it)[strings::hash_id].asUInt();
+ uint32_t time_stamp= (*it)[strings::time_stamp].asUInt();
+ if (hash == saved_hash) {
+ RestoreApplicationData(application);
+ }
+
+ waiting_for_timer_.insert(std::make_pair(application->app_id(),
+ time_stamp));
+ timer_.start(kTimeStep);
+ return true;
+ }
+ }
+
+ return false;
+}
+
+bool ResumeCtrl::CheckApplicationHash(uint32_t app_id, uint32_t hash) {
+ std::vector<Json::Value>::iterator it = saved_applications_.begin();
+ for (; it != saved_applications_.end(); ++it) {
+ if ((*it)[strings::app_id].asInt() == app_id) {
+ uint32_t saved_hash = (*it)[strings::hash_id].asUInt();
+ if (hash == saved_hash) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
+void ResumeCtrl::onTimer() {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::onTimer()");
+ sync_primitives::AutoLock auto_lock(queue_lock_);
+
+ std::set<application_timestamp, TimeStampComparator>::iterator it=
+ waiting_for_timer_.begin();
+
+ for (; it != waiting_for_timer_.end(); ++it) {
+ ApplicationSharedPtr app =
+ ApplicationManagerImpl::instance()->application((*it).first);
+ if (!app.get()) {
+ LOG4CXX_ERROR(logger_, "Invalid app_id = " << (*it).first);
+ break;
+ }
+
+ RestoreApplicationHMILevel(app);
+ RemoveApplicationFromSaved(app);
+ }
+
+ waiting_for_timer_.clear();
+}
+
+Json::Value ResumeCtrl::GetApplicationCommands(const uint32_t app_id) {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationCommands" << app_id);
+
+ ApplicationConstSharedPtr app =
+ ApplicationManagerImpl::instance()->application(app_id);
+ DCHECK(app.get());
+
+ Json::Value result;
+ const CommandsMap& commands = app->commands_map();
+ CommandsMap::const_iterator it = commands.begin();
+ for (;it != commands.end(); ++it) {
+ smart_objects::SmartObject* so = it->second;
+ Json::Value curr;
+ Formatters::CFormatterJsonBase::objToJsonValue(*so, curr);
+ result.append(curr);
+ LOG4CXX_INFO(logger_, "Converted:" << curr.toStyledString());
+ }
+ return result;
+}
+
+Json::Value ResumeCtrl::GetApplicationInteractionChoiseSets(
+ const uint32_t app_id) {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationInteractionChoiseSets"
+ << app_id);
+
+ Json::Value result;
+ ApplicationConstSharedPtr app =
+ ApplicationManagerImpl::instance()->application(app_id);
+ DCHECK(app.get());
+
+ const ChoiceSetMap& choices = app->choice_set_map();
+ ChoiceSetMap::const_iterator it = choices.begin();
+ for ( ;it != choices.end(); ++it) {
+ smart_objects::SmartObject* so = it->second;
+ Json::Value curr;
+ Formatters::CFormatterJsonBase::objToJsonValue(*so, curr);
+ result.append(curr);
+ LOG4CXX_INFO(logger_, "Converted:" << curr.toStyledString());
+ }
+ return result;
+}
+
+Json::Value ResumeCtrl::GetApplicationGlobalProperties(const uint32_t app_id) {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationGlobalProperties" << app_id);
+
+ Json::Value result;
+ ApplicationConstSharedPtr app =
+ ApplicationManagerImpl::instance()->application(app_id);
+ DCHECK(app.get());
+
+ const smart_objects::SmartObject* help_promt = app->help_prompt();
+ const smart_objects::SmartObject* timeout_prompt = app->timeout_prompt();
+ const smart_objects::SmartObject* vr_help = app->vr_help();
+ const smart_objects::SmartObject* vr_help_title = app->vr_help_title();
+ const smart_objects::SmartObject* vr_synonyms = app->vr_synonyms();
+
+ Json::Value sgp;
+ sgp[strings::help_prompt] = JsonFromSO(help_promt);
+ sgp[strings::timeout_prompt] = JsonFromSO(timeout_prompt);
+ sgp[strings::vr_help] = JsonFromSO(vr_help);
+ sgp[strings::vr_help_title] = JsonFromSO(vr_help_title);
+ sgp[strings::vr_synonyms] = JsonFromSO(vr_synonyms);
+
+ return sgp;
+}
+
+Json::Value ResumeCtrl::GetApplicationSubscriptions(const uint32_t app_id) {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationSubscriptions" << app_id);
+
+ Json::Value result;
+ ApplicationConstSharedPtr app =
+ ApplicationManagerImpl::instance()->application(app_id);
+ DCHECK(app.get());
+
+ std::set<mobile_apis::ButtonName::eType>::iterator it_button ;
+ std::set<uint32_t>::iterator it_vehicle;
+
+ for (it_button = app->SubscribedButtons().begin() ;
+ it_button != app->SubscribedButtons().end(); ++it_button) {
+ result[strings::application_buttons].append(*it_button);
+ }
+ for (it_vehicle = app->SubscribesIVI().begin();
+ it_vehicle != app->SubscribesIVI().end(); ++it_vehicle) {
+ result[strings::application_vehicle_info].append(*it_vehicle);
+ }
+ return result;
+}
+
+Json::Value ResumeCtrl::GetApplicationFiles(const uint32_t app_id) {
+ LOG4CXX_INFO(logger_, "ResumeCtrl::GetApplicationFiles" << app_id);
+
+ Json::Value result;
+ ApplicationConstSharedPtr app =
+ ApplicationManagerImpl::instance()->application(app_id);
+ DCHECK(app.get());
+
+ const AppFilesMap& app_files = app->getAppFiles();
+ for(AppFilesMap::const_iterator file_it = app_files.begin();
+ file_it != app_files.end(); file_it++) {
+ const AppFile& file = file_it->second;
+ if (file.is_persistent) {
+ Json::Value file_data;
+ file_data[strings::persistent_file] = file.is_persistent;
+ file_data[strings::is_download_complete] = file.is_download_complete;
+ file_data[strings::sync_file_name] = file.file_name;
+ result.append(file_data);
+ }
+ }
+ return result;
+}
+
+Json::Value ResumeCtrl::JsonFromSO(const smart_objects::SmartObject *so) {
+ Json::Value temp;
+ if (so) {
+ Formatters::CFormatterJsonBase::objToJsonValue(*so, temp);
+ }
+ return temp;
+}
+
+bool ResumeCtrl::ProcessHMIRequest(smart_objects::SmartObject* request,
+ bool use_events) {
+ if (use_events) {
+ const hmi_apis::FunctionID::eType function_id =
+ static_cast<hmi_apis::FunctionID::eType>(
+ (*request)[strings::function_id].asInt());
+
+ const int32_t hmi_correlation_id =
+ (*request)[strings::correlation_id].asInt();
+ subscribe_on_event(function_id, hmi_correlation_id);
+ }
+ if (!ApplicationManagerImpl::instance()->ManageHMICommand(request)) {
+ LOG4CXX_ERROR(logger_, "Unable to send request");
+ return true;
+ }
+ return false;
+}
+
+void ResumeCtrl::SendHMIRequest(
+ const hmi_apis::FunctionID::eType& function_id,
+ const smart_objects::SmartObject* msg_params, bool use_events) {
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject* result =
+ MessageHelper::CreateModuleInfoSO(function_id);
+ int32_t hmi_correlation_id =
+ (*result)[strings::params][strings::correlation_id].asInt();
+ if (use_events) {
+ subscribe_on_event(function_id, hmi_correlation_id);
+ }
+
+ if (msg_params) {
+ (*result)[strings::msg_params] = *msg_params;
+ }
+
+ if (!ApplicationManagerImpl::instance()->ManageHMICommand(result)) {
+ LOG4CXX_ERROR(logger_, "Unable to send request");
+ }
+}
+
+} // namespace application_manager
+
+
+
diff --git a/SDL_Core/src/components/config_profile/CMakeLists.txt b/SDL_Core/src/components/config_profile/CMakeLists.txt
new file mode 100644
index 000000000..c63d12e3c
--- /dev/null
+++ b/SDL_Core/src/components/config_profile/CMakeLists.txt
@@ -0,0 +1,14 @@
+include_directories (
+ ./include
+ ../utils/include/
+ ../media_manager/include/
+ ../protocol_handler/include
+)
+
+set (SOURCES
+ ./src/profile.cc
+ ./src/ini_file.cc
+)
+
+add_library("ConfigProfile" ${SOURCES})
+target_link_libraries ("ConfigProfile" Utils)
diff --git a/SDL_Core/src/components/config_profile/include/config_profile/ini_file.h b/SDL_Core/src/components/config_profile/include/config_profile/ini_file.h
new file mode 100644
index 000000000..764ff2f6c
--- /dev/null
+++ b/SDL_Core/src/components/config_profile/include/config_profile/ini_file.h
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_CONFIG_PROFILE_INCLUDE_CONFIG_PROFILE_INI_FILE_H_
+#define SRC_COMPONENTS_CONFIG_PROFILE_INCLUDE_CONFIG_PROFILE_INI_FILE_H_
+
+#include <stdint.h>
+
+namespace profile {
+
+#define INI_FILE_VER 1000
+
+#if !defined TRUE
+#define TRUE 1
+#endif
+#if !defined True
+#define True 1
+#endif
+
+#if !defined FALSE
+#define FALSE 0
+#endif
+#if !defined False
+#define False 0
+#endif
+
+/*
+ * @brief Global defines
+ */
+#define INI_LINE_LEN 512
+#define INI_FILE_TEMP_NAME "ini.tmp"
+
+#define INI_FLAG_UPDATE 0x00
+#define INI_FLAG_ITEM_UP_CREA 0x01
+#define INI_FLAG_FILE_UP_CREA 0x10
+
+/*
+ * @brief Global typedefs
+ */
+typedef enum Ini_search_id_e {
+ INI_NOTHING,
+ INI_RIGHT_CHAPTER,
+ INI_WRONG_CHAPTER,
+ INI_RIGHT_ITEM,
+ INI_WRONG_ITEM,
+ INI_REMARK,
+
+ INI_SEARCH_MAX
+} Ini_search_id;
+
+/*
+ * @brief Prototypes of functions
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @brief Write usage instructions to the end of the file
+ * @param
+ *
+ * @return NULL if file or desired entry not found, otherwise pointer to fname
+ */
+extern char* ini_write_inst(const char *fname,
+ uint8_t flag);
+
+/*
+ * @brief Read a certain item of the specified chapter of a ini-file
+ *
+ * @return NULL if file or desired entry not found, otherwise pointer to value
+ */
+extern char* ini_read_value(const char *fname,
+ const char *chapter,
+ const char *item,
+ char *value);
+
+/*
+ * @brief Write a certain item of the specified chapter of a ini-file
+ *
+ * @return NULL if file not found, otherwise pointer to value
+ */
+extern char ini_write_value(const char *fname,
+ const char *chapter,
+ const char *item,
+ const char *value,
+ uint8_t flag);
+
+/*
+ * @brief Parse the given line for the item and returns the value if
+ * there is one otherwise NULL
+ *
+ * @return NULL if desired entry not found, otherwise pointer to value
+ */
+extern Ini_search_id ini_parse_line(const char *line,
+ const char *tag,
+ char *value);
+
+#ifdef __cplusplus
+}
+#endif
+
+} // namespace profile
+
+#endif // SRC_COMPONENTS_CONFIG_PROFILE_INCLUDE_CONFIG_PROFILE_INI_FILE_H_
diff --git a/SDL_Core/src/components/config_profile/include/config_profile/profile.h b/SDL_Core/src/components/config_profile/include/config_profile/profile.h
new file mode 100644
index 000000000..96b1525f8
--- /dev/null
+++ b/SDL_Core/src/components/config_profile/include/config_profile/profile.h
@@ -0,0 +1,393 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_CONFIG_PROFILE_INCLUDE_CONFIG_PROFILE_PROFILE_H_
+#define SRC_COMPONENTS_CONFIG_PROFILE_INCLUDE_CONFIG_PROFILE_PROFILE_H_
+
+#include <string>
+#include <vector>
+#include <stdint.h>
+#include "utils/macro.h"
+#include "utils/singleton.h"
+
+namespace profile {
+
+/**
+ * The Profile class
+ */
+class Profile : public utils::Singleton<Profile> {
+ public:
+ // Methods section
+
+ /**
+ * Destructor
+ *
+ * Unimplemented to avoid misusing
+ *
+ */
+ virtual ~Profile();
+
+ /**
+ * @brief Returns the path to the config file
+ */
+ const std::string& config_file_name() const;
+
+ /**
+ * @brief Sets the path to the config file
+ */
+ void config_file_name(const std::string& fileName);
+
+ /**
+ * @brief Returns true if HMI should be started, otherwise false
+ */
+ bool launch_hmi() const;
+
+ /**
+ * @brief Returns server address
+ */
+ const std::string& server_address() const;
+
+ /**
+ * @brief Returns server port
+ */
+ const uint16_t& server_port() const;
+
+ /**
+ * @brief Returns port for video streaming
+ */
+ const uint16_t& video_streaming_port() const;
+
+ /**
+ * @brief Returns port for audio streaming
+ */
+ const uint16_t& audio_streaming_port() const;
+
+ /**
+ * @brief Returns policies file name
+ */
+ const std::string& policies_file_name() const;
+
+ /**
+ * @brief Returns hmi capabilities file name
+ */
+ const std::string& hmi_capabilities_file_name() const;
+
+ /**
+ * @brief Returns help promt vector
+ */
+ const std::vector<std::string>& help_prompt() const;
+
+ /**
+ * @brief Returns help promt vector
+ */
+ const std::vector<std::string>& time_out_promt() const;
+
+ /**
+ * @brief Returns vr commands default for all apps
+ * such as Help.
+ */
+ const std::vector<std::string>& vr_commands() const;
+
+ /**
+ * @brief Maximum command id available for mobile app
+ */
+ const uint32_t& max_cmd_id() const;
+
+ /**
+ * @brief Default timeout for waiting for response to mobile app
+ */
+ const uint32_t& default_timeout() const;
+
+ /**
+ * @brief Default timeout for waiting for resuming
+ */
+ const uint32_t& app_resuming_timeout() const;
+
+ /**
+ * @brief Returns desirable thread stack size
+ */
+ const uint64_t& thread_min_stack_size() const;
+
+ /**
+ * @brief Returns true if audio mixing is supported
+ */
+ bool is_mixing_audio_supported() const;
+
+ /**
+ * @brief Returns true if video re-decoding enabled
+ */
+ bool is_redecoding_enabled() const;
+
+ /**
+ * @brief Returns title for Vr Help
+ */
+ const std::string& vr_help_title() const;
+
+ /**
+ * @brief Returns application directory quota size
+ */
+ const uint32_t& app_dir_quota() const;
+
+ /**
+ * @brief Returns the video server type
+ */
+ const std::string& video_server_type() const;
+
+ /**
+ * @brief Returns the audio server type
+ */
+ const std::string& audio_server_type() const;
+
+ /**
+ * @brief Returns the video pipe path
+ */
+ const std::string& named_video_pipe_path() const;
+
+ /**
+ * @brief Returns the audio pipe path
+ */
+ const std::string& named_audio_pipe_path() const;
+
+ /**
+ * @brief Returns time scale for max amount of requests for application
+ * in hmi level none.
+ */
+ const uint32_t& app_hmi_level_none_time_scale() const;
+
+ /**
+ * @brief Returns path to testing file to which redirects video stream
+ */
+ const std::string& video_stream_file() const;
+
+ /**
+ * @brief Returns path to testing file to which redirects audio stream
+ */
+ const std::string& audio_stream_file() const;
+
+ /**
+ * @brief Returns allowable max amount of requests per time scale for
+ * application in hmi level none
+ *
+ */
+ const uint32_t& app_hmi_level_none_time_scale_max_requests() const;
+
+ /**
+ * @brief Returns application time scale for max amount of requests per it.
+ */
+ const uint32_t& app_time_scale() const;
+
+ /**
+ * @brief Returns allowable max amount of requests per application
+ * time scale
+ */
+ const uint32_t& app_time_scale_max_requests() const;
+
+ /**
+ * @brief Returns allowable amount of the system pending requests
+ */
+ const uint32_t& pending_requests_amount() const;
+
+ /**
+ * @brief Returns Max allowed number of PutFile requests for one
+ * application in NONE
+ */
+ const uint32_t& put_file_in_none() const;
+
+ /**
+ * @brief Returns Max allowed number of DeleteFile requests for one
+ * application in NONE
+ */
+ const uint32_t& delete_file_in_none() const;
+
+ /**
+ * @brief Returns Max allowed number of ListFiles requests for one
+ * application in NONE
+ */
+ const uint32_t& list_files_in_none() const;
+
+ /*
+ * @brief Returns file name for storing applications data
+ */
+ const std::string& app_info_storage() const;
+
+ /*
+ * @brief Heartbeat timeout before closing connection
+ */
+ const int32_t heart_beat_timeout() const;
+
+ /*
+ * @brief Timeout in transport manager before disconnect
+ */
+ uint32_t transport_manager_disconnect_timeout() const;
+
+ /*
+ * @brief Returns true if last state singleton is used
+ */
+ bool use_last_state() const;
+
+ /**
+ * @brief Returns supported diagnostic modes
+ */
+ const std::vector<uint32_t>& supported_diag_modes() const;
+
+ // Members section
+
+ protected:
+ // Methods section
+
+ // Members section
+
+ private:
+ // Methods section
+
+ /**
+ * Default constructor
+ *
+ * Unimplemented to avoid misusing
+ *
+ */
+ Profile();
+
+ /*
+ * @brief Updates all related values from ini file
+ */
+ void UpdateValues();
+
+ /**
+ * @brief Reads a boolean value from the profile
+ *
+ * @param value The value to return
+ * @param pSection The section to read the value in
+ * @param pKey The key whose value needs to be read out
+ *
+ * @return FALSE if could not read the value out of the profile
+ * (then the value is not changed)
+ */
+ bool ReadValue(bool* value,
+ const char* const pSection,
+ const char* const pKey) const;
+
+ /**
+ * @brief Reads a string value from the profile
+ *
+ * @param value The value to return
+ * @param pSection The section to read the value in
+ * @param pKey The key whose value needs to be read out
+ *
+ * @return FALSE if could not read the value out of the profile
+ * (then the value is not changed)
+ */
+ bool ReadValue(std::string* value,
+ const char* const pSection,
+ const char* const pKey) const;
+
+
+ /**
+ * @brief Reads a string value from the profile
+ *
+ * @param value Result value
+ * @param default_value Value to use key wasn't found
+ * @param pSection The section to read the value in
+ * @param pKey The key whose value needs to be read out
+ *
+ * @return FALSE if could not read the value out of the profile
+ * (then the value is not changed)
+ */
+ bool ReadStringValue(std::string* value,
+ const char* default_value,
+ const char* const pSection,
+ const char* const pKey) const;
+
+ /**
+ * @brief Reads an int32_t value from the profile
+ *
+ * @param value Result value
+ * @param default_value Value to use key wasn't found
+ * @param pSection The section to read the value in
+ * @param pKey The key whose value needs to be read out
+ *
+ * @return FALSE if could not read the value out of the profile
+ * (then the value is not changed)
+ */
+ bool ReadIntValue(int32_t* value,
+ int32_t default_value,
+ const char* const pSection,
+ const char* const pKey) const;
+
+ // Members section
+ bool launch_hmi_;
+ std::string config_file_name_;
+ std::string server_address_;
+ uint16_t server_port_;
+ uint16_t video_streaming_port_;
+ uint16_t audio_streaming_port_;
+ std::string policies_file_name_;
+ std::string hmi_capabilities_file_name_;
+ std::vector<std::string> help_prompt_;
+ std::vector<std::string> time_out_promt_;
+ std::vector<std::string> vr_commands_;
+ uint64_t min_tread_stack_size_;
+ bool is_mixing_audio_supported_;
+ bool is_redecoding_enabled_;
+ uint32_t max_cmd_id_;
+ uint32_t default_timeout_;
+ uint32_t app_resuming_timeout_;
+ std::string vr_help_title_;
+ uint32_t app_dir_quota_;
+ std::string video_consumer_type_;
+ std::string audio_consumer_type_;
+ std::string named_video_pipe_path_;
+ std::string named_audio_pipe_path_;
+ uint32_t app_hmi_level_none_time_scale_max_requests_;
+ uint32_t app_hmi_level_none_requests_time_scale_;
+ std::string video_stream_file_;
+ std::string audio_stream_file_;
+ uint32_t app_time_scale_max_requests_;
+ uint32_t app_requests_time_scale_;
+ uint32_t pending_requests_amount_;
+ uint32_t put_file_in_none_;
+ uint32_t delete_file_in_none_;
+ uint32_t list_files_in_none_;
+ std::string app_info_storage_;
+ int32_t heart_beat_timeout_;
+ uint32_t transport_manager_disconnect_timeout_;
+ bool use_last_state_;
+ std::vector<uint32_t> supported_diag_modes_;
+
+ DISALLOW_COPY_AND_ASSIGN(Profile);
+
+ FRIEND_BASE_SINGLETON_CLASS(Profile);
+};
+
+} // namespace profile
+
+#endif // SRC_COMPONENTS_CONFIG_PROFILE_INCLUDE_CONFIG_PROFILE_PROFILE_H_
diff --git a/SDL_Core/src/components/config_profile/src/ini_file.cc b/SDL_Core/src/components/config_profile/src/ini_file.cc
new file mode 100644
index 000000000..f594f5097
--- /dev/null
+++ b/SDL_Core/src/components/config_profile/src/ini_file.cc
@@ -0,0 +1,411 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "config_profile/ini_file.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <ctype.h>
+#include <limits.h>
+#include <stdint.h>
+
+#ifndef _WIN32
+#include <unistd.h>
+#else
+#define PATH_MAX _MAX_PATH
+#endif
+
+#ifdef __linux__
+#define USE_MKSTEMP 1
+#endif
+
+#include <string>
+
+namespace profile {
+
+char* ini_write_inst(const char *fname, uint8_t flag) {
+ FILE *fp = 0;
+
+ if (NULL == fname)
+ return NULL;
+ if ('\0' == *fname)
+ return NULL;
+
+ if ((fp = fopen(fname, "a")) == 0)
+ if (flag & INI_FLAG_FILE_UP_CREA)
+ if ((fp = fopen(fname, "w")) == 0)
+ return NULL;
+ if (0 == fp) {
+ return NULL;
+ }
+ fprintf(fp, "\n");
+ fprintf(fp, "; The INI-file consists of different chapters.\n");
+ fprintf(fp, "; Each chapter begins with the line containing\n");
+ fprintf(fp, "; the name in square brackets. Syntax:\n");
+ fprintf(fp, "; [chapter]\n");
+ fprintf(fp, "; The chapters consists of a set of items with a\n");
+ fprintf(fp, "; assinged value. The syntax is:\n");
+ fprintf(fp, "; item=value\n");
+ fprintf(fp, "; All white spaces an second encounters of chapters\n");
+ fprintf(fp, "; or items will be ignored.\n");
+ fprintf(fp, "; Remarks start with semicolon or star as first character.\n");
+ fprintf(fp, "; It is alowed for names of chapters and items to\n");
+ fprintf(fp, "; contain semicolon and star. Possible syntax is:\n");
+ fprintf(fp, "; [ chapter ] ;Remark\n");
+ fprintf(fp, "; item = value\n");
+ fprintf(fp, "\n");
+
+ fclose(fp);
+ return const_cast<char*>(fname);
+}
+
+char* ini_read_value(const char *fname,
+ const char *chapter, const char *item, char *value) {
+ FILE *fp = 0;
+ bool chapter_found = false;
+ char line[INI_LINE_LEN] = "";
+ char val[INI_LINE_LEN] = "";
+ char tag[INI_LINE_LEN] = "";
+
+ Ini_search_id result;
+ *line = '\0';
+ *val = '\0';
+ *tag = '\0';
+ if ((NULL == fname) || (NULL == chapter) || (NULL == item) || (NULL == value))
+ return NULL;
+
+ *value = '\0';
+ if (('\0' == *fname) || ('\0' == *chapter) || ('\0' == *item))
+ return NULL;
+
+ if ((fp = fopen(fname, "r")) == 0)
+ return NULL;
+
+ snprintf(tag, INI_LINE_LEN, "%s", chapter);
+ for (int32_t i = 0; i < strlen(tag); i++) {
+ tag[i] = toupper(tag[i]);
+ }
+
+ while (NULL != fgets(line, INI_LINE_LEN, fp)) {
+ // Now start the line parsing
+ result = ini_parse_line(line, tag, val);
+ if (!chapter_found) {
+ if (INI_RIGHT_CHAPTER == result) {
+ chapter_found = true;
+
+ snprintf(tag, INI_LINE_LEN, "%s", item);
+ for (int32_t i = 0; i < strlen(tag); i++)
+ tag[i] = toupper(tag[i]);
+ }
+ } else {
+ // FIXME (dchmerev@gmail.com): Unnecessary condition
+ if ((INI_RIGHT_CHAPTER == result) || (INI_WRONG_CHAPTER == result)) {
+ fclose(fp);
+ return NULL;
+ }
+ if (INI_RIGHT_ITEM == result) {
+ fclose(fp);
+ snprintf(value, INI_LINE_LEN, "%s", val);
+ return value;
+ }
+ }
+ }
+
+ fclose(fp);
+
+ return NULL;
+}
+
+char ini_write_value(const char *fname,
+ const char *chapter, const char *item,
+ const char *value, uint8_t flag) {
+ FILE *rd_fp, *wr_fp = 0;
+ uint16_t i, cr_count;
+ int32_t wr_result;
+ bool chapter_found = false;
+ bool value_written = false;
+ char line[INI_LINE_LEN] = "";
+ char val[INI_LINE_LEN] = "";
+ char tag[INI_LINE_LEN] = "";
+ char temp_fname[PATH_MAX] = "";
+ Ini_search_id result;
+ *line = '\0';
+ *val = '\0';
+ *tag = '\0';
+ *temp_fname = '\0';
+
+ if ((NULL == fname) || (NULL == chapter) || (NULL == item) || (NULL == value))
+ return FALSE;
+ if (('\0' == *fname) || ('\0' == *chapter) || ('\0' == *item))
+ return FALSE;
+
+ if (0 == (rd_fp = fopen(fname, "r"))) {
+ ini_write_inst(fname, flag);
+ if (0 == (rd_fp = fopen(fname, "r")))
+ return FALSE;
+ }
+
+#if USE_MKSTEMP
+ {
+ char *temp_str;
+ int32_t fd = -1;
+ temp_str = static_cast<char*>(getenv("TMPDIR"));
+ if (temp_str) {
+ snprintf(temp_fname, PATH_MAX,
+ "%s/ini.XXXXXX", temp_str);
+
+ fd = mkstemp(temp_fname);
+ if (-1 == fd) {
+ return FALSE;
+ }
+ wr_fp = fdopen(fd, "w");
+ if (NULL == wr_fp) {
+ unlink(temp_fname);
+ close(fd);
+ return FALSE;
+ }
+ } else {
+ return FALSE;
+ }
+ }
+#else // #if USE_MKSTEMP
+ tmpnam(temp_fname);
+ if (0 == (wr_fp = fopen(temp_fname, "w")))
+ return FALSE;
+#endif // #else #if USE_MKSTEMP
+
+ snprintf(tag, INI_LINE_LEN, "%s", chapter);
+ for (int32_t i = 0; i < strlen (tag); i++)
+ tag[i] = toupper(tag[i]);
+
+ wr_result = 1; cr_count = 0;
+ while ((NULL != fgets(line, INI_LINE_LEN, rd_fp)) && (0 < wr_result)) {
+ // Now start the line parsing
+ result = ini_parse_line(line, tag, val);
+
+ if (!value_written) {
+ if (!chapter_found) {
+ if (INI_RIGHT_CHAPTER == result) {
+ chapter_found = true;
+ // coding style
+ snprintf(tag, INI_LINE_LEN, "%s", item);
+ for (int32_t i = 0; i < strlen (tag); i++)
+ tag[i] = toupper(tag[i]);
+ }
+ } else {
+ if ((INI_RIGHT_CHAPTER == result) || (INI_WRONG_CHAPTER == result)) {
+ /* item not found but new capture */
+ if (flag & INI_FLAG_ITEM_UP_CREA)
+ fprintf(wr_fp, "%s=%s\n", item, value);
+ /* The item must not update in an other chapter
+ even it has the right name because only the
+ first chapter is significant */
+ value_written = true;
+ } else if (result == INI_RIGHT_ITEM) {
+ for (i = 0; i < cr_count; i++)
+ fprintf(wr_fp, "\n");
+ cr_count = 0;
+ wr_result = fprintf(wr_fp, "%s=%s\n", item, value);
+ value_written = true;
+ continue;
+ }
+ }
+ } /* if (!value_written) */
+
+ if (0 == strcmp(val, "\n")) {
+ cr_count++;
+ } else {
+ for (int32_t i = 0; i < cr_count; i++)
+ fprintf(wr_fp, "\n");
+ cr_count = 0;
+ wr_result = fprintf(wr_fp, "%s", line);
+ }
+ }
+ if (0 < (wr_result) && (!value_written)) {
+ if (flag & INI_FLAG_ITEM_UP_CREA) {
+ if (!chapter_found)
+ fprintf(wr_fp, "\n[%s]\n", chapter);
+ fprintf(wr_fp, "%s=%s\n", item, value);
+ value_written = true;
+ }
+ }
+ fprintf(wr_fp, "\n");
+
+
+ fclose(wr_fp);
+ fclose(rd_fp);
+
+ remove(fname);
+ if (0 != rename(temp_fname, fname)) {
+ remove(temp_fname);
+ return FALSE;
+ }
+
+ return (value_written);
+}
+
+Ini_search_id ini_parse_line(const char *line, const char *tag, char *value) {
+ const char *line_ptr;
+ char *temp_ptr;
+ char temp_str[INI_LINE_LEN] = "";
+ *temp_str = '\0';
+
+ snprintf(value, INI_LINE_LEN, "%s", line);
+
+ /* cut leading spaces */
+ line_ptr = line;
+ for (int32_t i = 0; i < strlen(line); i++) {
+ if ((line[i] == ' ') ||
+ (line[i] == 9) || // TAB
+ (line[i] == 10) || // LF
+ (line[i] == 13)) { // CR
+ line_ptr++;
+ } else {
+ break;
+ }
+ }
+ if ('\0' == *line_ptr) {
+ snprintf(value, INI_LINE_LEN, "\n");
+ return INI_NOTHING;
+ }
+
+ if ((*line_ptr == ';') || (*line_ptr == '*')) /* remark */
+ return INI_REMARK;
+
+ if (*line_ptr == '[' && strrchr(line_ptr, ']') != NULL) {
+ line_ptr++;
+
+ /* cut leading stuff */
+ uint16_t len = strlen(line_ptr);
+ for (int32_t i = 0; i < len; i++) {
+ if ((*line_ptr == ' ') ||
+ (*line_ptr == 9) || // TAB
+ (*line_ptr == 10) || // LF
+ (*line_ptr == 13)) { // CR
+ line_ptr++;
+ } else {
+ break;
+ }
+ }
+ if (*line_ptr == '\0')
+ return INI_NOTHING;
+
+ snprintf(temp_str, INI_LINE_LEN, "%s", line_ptr);
+ temp_ptr = strrchr(temp_str, ']');
+ if (NULL == temp_ptr) {
+ return INI_NOTHING;
+ } else {
+ *temp_ptr = '\0';
+ }
+
+ /* cut trailing stuff */
+ for (int32_t i = strlen(temp_str) - 1; i > 0; i--) {
+ if ((temp_str[i] == ' ') ||
+ (temp_str[i] == 9) || // TAB
+ (temp_str[i] == 10) || // LF
+ (temp_str[i] == 13)) { // CR
+ temp_str[i] = '\0';
+ } else {
+ break;
+ }
+ }
+
+ snprintf(value, INI_LINE_LEN, "%s", temp_str);
+
+ for (int32_t i = 0; i < strlen(temp_str); i++)
+ temp_str[i] = toupper(temp_str[i]);
+ if (strcmp(temp_str, tag) == 0)
+ return INI_RIGHT_CHAPTER;
+ else
+ return INI_WRONG_CHAPTER;
+ }
+
+ if (NULL != strchr(line_ptr, '=')) {
+ strncpy(temp_str, line_ptr, (strchr(line_ptr, '=') - line_ptr));
+ /* cut trailing stuff */
+ for (int32_t i = strlen(temp_str) - 1; i > 0; i--) {
+ if ((temp_str[i] == '=') ||
+ (temp_str[i] == ' ') ||
+ (temp_str[i] == 9) || // TAB
+ (temp_str[i] == 10) || // LF
+ (temp_str[i] == 13)) { // CR
+ temp_str[i] = '\0';
+ } else {
+ break;
+ }
+ }
+
+ snprintf(value, INI_LINE_LEN, "%s", temp_str);
+
+ for (int32_t i = 0; i < strlen (temp_str); i++)
+ temp_str[i] = toupper(temp_str[i]);
+ if (strcmp(temp_str, tag) == 0) {
+ line_ptr = strchr(line_ptr, '=') + 1;
+ uint16_t len = strlen(line_ptr);
+ /* cut trailing stuff */
+ for (int32_t i = 0; i < len; i++) {
+ if ((*line_ptr == ' ') ||
+ (*line_ptr == 9) || // TAB
+ (*line_ptr == 10) || // LF
+ (*line_ptr == 13)) { // CR
+ line_ptr++;
+ } else {
+ break;
+ }
+ }
+
+ snprintf(value, INI_LINE_LEN, "%s", line_ptr);
+
+ if (value[0] != '\0') {
+ /* cut trailing stuff */
+ for (int32_t i = strlen(value) - 1; i > 0; i--) {
+ if ((value[i] == ' ') ||
+ (value[i] == ';') ||
+ (value[i] == 9) || // TAB
+ (value[i] == 10) || // LF
+ (value[i] == 13)) { // CR
+ value[i] = '\0';
+ } else {
+ break;
+ }
+ }
+ }
+ return INI_RIGHT_ITEM;
+ } else {
+ return INI_WRONG_ITEM;
+ }
+ }
+
+ return INI_NOTHING;
+}
+} // namespace profile
diff --git a/SDL_Core/src/components/config_profile/src/profile.cc b/SDL_Core/src/components/config_profile/src/profile.cc
new file mode 100644
index 000000000..db4a0d5ec
--- /dev/null
+++ b/SDL_Core/src/components/config_profile/src/profile.cc
@@ -0,0 +1,666 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config_profile/profile.h"
+
+#include <string.h>
+#include <stdlib.h>
+
+#include "config_profile/ini_file.h"
+#include "utils/logger.h"
+#include "utils/threads/thread.h"
+
+namespace {
+const char* kMainSection = "MAIN";
+// Heartbeat is disabled by default
+const uint32_t kDefaultHeartBeatTimeout = 0;
+}
+
+log4cxx::LoggerPtr logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("Profile"));
+
+namespace profile {
+Profile::Profile()
+ : config_file_name_("smartDeviceLink.ini"),
+ launch_hmi_(true),
+ policies_file_name_("policy_table.json"),
+ hmi_capabilities_file_name_("hmi_capabilities.json"),
+ server_address_("127.0.0.1"),
+ server_port_(8087),
+ video_streaming_port_(5050),
+ audio_streaming_port_(5080),
+ help_prompt_(),
+ time_out_promt_(),
+ min_tread_stack_size_(threads::Thread::kMinStackSize),
+ is_mixing_audio_supported_(false),
+ is_redecoding_enabled_(false),
+ max_cmd_id_(2000000000),
+ default_timeout_(10000),
+ app_resuming_timeout_(5),
+ app_dir_quota_(104857600),
+ app_hmi_level_none_time_scale_max_requests_(100),
+ app_hmi_level_none_requests_time_scale_(10),
+ app_time_scale_max_requests_(100),
+ app_requests_time_scale_(10),
+ pending_requests_amount_(1000),
+ put_file_in_none_(5),
+ delete_file_in_none_(5),
+ list_files_in_none_(5),
+ app_info_storage_("app_info.dat"),
+ heart_beat_timeout_(kDefaultHeartBeatTimeout),
+ transport_manager_disconnect_timeout_(0),
+ use_last_state_(false),
+ supported_diag_modes_() {
+ UpdateValues();
+}
+
+Profile::~Profile() {
+}
+
+void Profile::config_file_name(const std::string& fileName) {
+ if (false == fileName.empty()) {
+ LOG4CXX_INFO(logger_, "setConfigFileName " << fileName);
+ config_file_name_ = fileName;
+ UpdateValues();
+ }
+}
+
+const std::string& Profile::config_file_name() const {
+ return config_file_name_;
+}
+
+bool Profile::launch_hmi() const {
+ return launch_hmi_;
+}
+
+const std::string& Profile::policies_file_name() const {
+ return policies_file_name_;
+}
+
+const std::string& Profile::hmi_capabilities_file_name() const {
+ return hmi_capabilities_file_name_;
+}
+
+const std::string& Profile::server_address() const {
+ return server_address_;
+}
+
+const std::vector<std::string>& Profile::help_prompt() const {
+ return help_prompt_;
+}
+
+const std::vector<std::string>& Profile::time_out_promt() const {
+ return time_out_promt_;
+}
+
+const std::vector<std::string>& Profile::vr_commands() const {
+ return vr_commands_;
+}
+
+const uint32_t& Profile::max_cmd_id() const {
+ return max_cmd_id_;
+}
+
+const uint32_t& Profile::default_timeout() const {
+ return default_timeout_;
+}
+
+const uint32_t &Profile::app_resuming_timeout() const {
+ return app_resuming_timeout_;
+}
+
+const std::string& Profile::vr_help_title() const {
+ return vr_help_title_;
+}
+
+const uint16_t& Profile::server_port() const {
+ return server_port_;
+}
+
+const uint16_t& Profile::video_streaming_port() const {
+ return video_streaming_port_;
+}
+
+const uint16_t& Profile::audio_streaming_port() const {
+ return audio_streaming_port_;
+}
+
+const uint64_t& Profile::thread_min_stack_size() const {
+ return min_tread_stack_size_;
+}
+
+bool Profile::is_mixing_audio_supported() const {
+ return is_mixing_audio_supported_;
+}
+
+const uint32_t& Profile::app_dir_quota() const {
+ return app_dir_quota_;
+}
+
+bool Profile::is_redecoding_enabled() const {
+ return is_redecoding_enabled_;
+}
+
+const std::string& Profile::video_server_type() const {
+ return video_consumer_type_;
+}
+
+const std::string& Profile::audio_server_type() const {
+ return audio_consumer_type_;
+}
+
+const std::string& Profile::named_video_pipe_path() const {
+ return named_video_pipe_path_;
+}
+
+const std::string& Profile::named_audio_pipe_path() const {
+ return named_audio_pipe_path_;
+}
+
+const uint32_t& Profile::app_hmi_level_none_time_scale() const {
+ return app_hmi_level_none_requests_time_scale_;
+}
+
+const uint32_t& Profile::app_hmi_level_none_time_scale_max_requests() const {
+ return app_hmi_level_none_time_scale_max_requests_;
+}
+
+const std::string& Profile::video_stream_file() const {
+ return video_stream_file_;
+}
+
+const std::string& Profile::audio_stream_file() const {
+ return audio_stream_file_;
+}
+
+const uint32_t& Profile::app_time_scale() const {
+ return app_requests_time_scale_;
+}
+
+const uint32_t& Profile::app_time_scale_max_requests() const {
+ return app_time_scale_max_requests_;
+}
+
+const uint32_t& Profile::pending_requests_amount() const {
+ return pending_requests_amount_;
+}
+
+const uint32_t& Profile::put_file_in_none() const {
+ return put_file_in_none_;
+}
+
+const uint32_t& Profile::delete_file_in_none() const {
+ return delete_file_in_none_;
+}
+
+const uint32_t& Profile::list_files_in_none() const {
+ return list_files_in_none_;
+}
+
+const std::string& Profile::app_info_storage() const {
+ return app_info_storage_;
+}
+
+const int32_t Profile::heart_beat_timeout() const {
+ return heart_beat_timeout_;
+}
+
+uint32_t Profile::transport_manager_disconnect_timeout() const {
+ return transport_manager_disconnect_timeout_;
+}
+
+bool Profile::use_last_state() const {
+ return use_last_state_;
+}
+
+const std::vector<uint32_t>& Profile::supported_diag_modes() const {
+ return supported_diag_modes_;
+}
+
+void Profile::UpdateValues() {
+ LOG4CXX_INFO(logger_, "Profile::UpdateValues");
+
+ char value[INI_LINE_LEN + 1];
+ *value = '\0';
+
+ if ((0 != ini_read_value(config_file_name_.c_str(), "HMI", "LaunchHMI", value))
+ && ('\0' != *value)) {
+ if (0 == strcmp("true", value)) {
+ launch_hmi_ = true;
+ } else {
+ launch_hmi_ = false;
+ }
+ LOG4CXX_INFO(logger_, "Set launch HMI to " << launch_hmi_);
+ }
+
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "HMI", "ServerAddress",
+ value)) && ('\0' != *value)) {
+ server_address_ = value;
+ LOG4CXX_INFO(logger_, "Set server address to " << server_address_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MAIN", "PoliciesTable",
+ value)) && ('\0' != *value)) {
+ policies_file_name_ = value;
+ LOG4CXX_INFO(logger_, "Set policy file to " << policies_file_name_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MAIN", "HMICapabilities",
+ value)) && ('\0' != *value)) {
+ hmi_capabilities_file_name_ = value;
+ LOG4CXX_INFO(
+ logger_,
+ "Set hmi capabilities file to " << hmi_capabilities_file_name_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "HMI", "ServerPort", value))
+ && ('\0' != *value)) {
+ server_port_ = atoi(value);
+ LOG4CXX_INFO(logger_, "Set server port to " << server_port_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "HMI", "VideoStreamingPort",
+ value)) && ('\0' != *value)) {
+ video_streaming_port_ = atoi(value);
+ LOG4CXX_INFO(logger_,
+ "Set video streaming port to " << video_streaming_port_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "HMI", "AudioStreamingPort",
+ value)) && ('\0' != *value)) {
+ audio_streaming_port_ = atoi(value);
+ LOG4CXX_INFO(logger_,
+ "Set audio streaming port to " << audio_streaming_port_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MAIN", "ThreadStackSize",
+ value)) && ('\0' != *value)) {
+ min_tread_stack_size_ = atoi(value);
+ if (min_tread_stack_size_ < threads::Thread::kMinStackSize) {
+ min_tread_stack_size_ = threads::Thread::kMinStackSize;
+ }
+ LOG4CXX_INFO(logger_,
+ "Set threadStackMinSize to " << min_tread_stack_size_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MEDIA MANAGER",
+ "EnableRedecoding", value)) && ('\0' != *value)) {
+ if (0 == strcmp("true", value)) {
+ is_redecoding_enabled_ = true;
+ }
+ LOG4CXX_INFO(logger_, "Set RedecodingEnabled to " << value);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MEDIA MANAGER",
+ "VideoStreamConsumer", value)) && ('\0' != *value)) {
+ video_consumer_type_ = value;
+ LOG4CXX_INFO(logger_,
+ "Set VideoStreamConsumer to " << video_consumer_type_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MEDIA MANAGER",
+ "AudioStreamConsumer", value)) && ('\0' != *value)) {
+ audio_consumer_type_ = value;
+ LOG4CXX_INFO(logger_,
+ "Set AudioStreamConsumer to " << audio_consumer_type_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MEDIA MANAGER",
+ "NamedVideoPipePath", value)) && ('\0' != *value)) {
+ named_video_pipe_path_ = value;
+ LOG4CXX_INFO(logger_, "Set server address to " << named_video_pipe_path_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MEDIA MANAGER",
+ "NamedAudioPipePath", value)) && ('\0' != *value)) {
+ named_audio_pipe_path_ = value;
+ LOG4CXX_INFO(logger_, "Set server address to " << named_audio_pipe_path_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MEDIA MANAGER",
+ "VideoStreamFile", value)) && ('\0' != *value)) {
+ video_stream_file_ = value;
+ LOG4CXX_INFO(logger_, "Set video stream file to " << video_stream_file_);
+ }
+
+ *value = '\0';
+ if ((0 != ini_read_value(config_file_name_.c_str(),
+ "MEDIA MANAGER", "AudioStreamFile", value))
+ && ('\0' != *value)) {
+ audio_stream_file_ = value;
+ LOG4CXX_INFO(logger_, "Set audio stream file to " << audio_stream_file_);
+ }
+
+ *value = '\0';
+ if ((0 != ini_read_value(config_file_name_.c_str(),
+ "MAIN", "MixingAudioSupported", value))
+ && ('\0' != *value)) {
+ if (0 == strcmp("true", value)) {
+ is_mixing_audio_supported_ = true;
+ }
+ LOG4CXX_INFO(logger_, "Set MixingAudioSupported to " << value);
+ }
+
+ *value = '\0';
+ if ((0 != ini_read_value(config_file_name_.c_str(), "MAIN", "MaxCmdID", value))
+ && ('\0' != *value)) {
+ max_cmd_id_ = atoi(value);
+ if (max_cmd_id_ < 0) {
+ max_cmd_id_ = 2000000000;
+ }
+ LOG4CXX_INFO(logger_, "Set Maximum Command ID to " << max_cmd_id_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "FILESYSTEM RESTRICTIONS",
+ "PutFileRequest", value)) && ('\0' != *value)) {
+ put_file_in_none_ = atoi(value);
+ if (put_file_in_none_ < 0) {
+ put_file_in_none_ = 5;
+ }
+ LOG4CXX_INFO(logger_, "Max allowed number of PutFile requests for one "
+ "application in NONE to " << put_file_in_none_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "FILESYSTEM RESTRICTIONS",
+ "DeleteFileRequest", value)) && ('\0' != *value)) {
+ delete_file_in_none_ = atoi(value);
+ if (delete_file_in_none_ < 0) {
+ delete_file_in_none_ = 5;
+ }
+ LOG4CXX_INFO(logger_, "Max allowed number of DeleteFile requests for one "
+ "application in NONE to " << delete_file_in_none_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "FILESYSTEM RESTRICTIONS",
+ "ListFilesRequest", value)) && ('\0' != *value)) {
+ list_files_in_none_ = atoi(value);
+ if (list_files_in_none_ < 0) {
+ list_files_in_none_ = 5;
+ }
+ LOG4CXX_INFO(logger_, "Max allowed number of ListFiles requests for one "
+ "application in NONE to " << list_files_in_none_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MAIN", "DefaultTimeout",
+ value)) && ('\0' != *value)) {
+ default_timeout_ = atoi(value);
+ if (default_timeout_ <= 0) {
+ default_timeout_ = 10000;
+ }
+ LOG4CXX_INFO(logger_, "Set Default timeout to " << default_timeout_);
+ }
+
+ *value = '\0';
+ if ((0 != ini_read_value(config_file_name_.c_str(),
+ "MAIN", "ApplicationResumingTimeout", value))
+ && ('\0' != *value)) {
+ app_resuming_timeout_ = atoi(value);
+ if (app_resuming_timeout_ <= 0) {
+ app_resuming_timeout_ = 5;
+ }
+ LOG4CXX_INFO(logger_, "Set Resuming timeout to " << app_resuming_timeout_);
+ }
+
+ *value = '\0';
+ if ((0 != ini_read_value(config_file_name_.c_str(),
+ "MAIN", "AppDirectoryQuota", value))
+ && ('\0' != *value)) {
+ app_dir_quota_ = atoi(value);
+ if (app_dir_quota_ <= 0) {
+ app_dir_quota_ = 104857600;
+ }
+ LOG4CXX_INFO(logger_, "Set App Directory Quota " << app_dir_quota_);
+ }
+
+ help_prompt_.clear();
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "GLOBAL PROPERTIES",
+ "HelpPromt", value)) && ('\0' != *value)) {
+ char* str = NULL;
+ str = strtok(value, ",");
+ while (str != NULL) {
+ LOG4CXX_INFO(logger_, "Add HelpPromt string" << str);
+ help_prompt_.push_back(std::string(str));
+ str = strtok(NULL, ",");
+ }
+ }
+
+ time_out_promt_.clear();
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "GLOBAL PROPERTIES",
+ "TimeOutPromt", value)) && ('\0' != *value)) {
+ char* str = NULL;
+ str = strtok(value, ",");
+ while (str != NULL) {
+ LOG4CXX_INFO(logger_, "Add TimeOutPromt string" << str);
+ time_out_promt_.push_back(std::string(str));
+ str = strtok(NULL, ",");
+ }
+ }
+
+ vr_help_title_ = "";
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "GLOBAL PROPERTIES",
+ "HelpTitle", value)) && ('\0' != *value)) {
+ vr_help_title_ = value;
+ LOG4CXX_INFO(logger_, "Add HelpTitle string" << vr_help_title_);
+ }
+
+ vr_commands_.clear();
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "VR COMMANDS", "HelpCommand",
+ value)) && ('\0' != *value)) {
+ char* str = NULL;
+ str = strtok(value, ",");
+ while (str != NULL) {
+ LOG4CXX_INFO(logger_, "Add vr command string" << str);
+ vr_commands_.push_back(std::string(str));
+ str = strtok(NULL, ",");
+ }
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MAIN",
+ "AppTimeScaleMaxRequests", value))
+ && ('\0' != *value)) {
+ app_time_scale_max_requests_ = atoi(value);
+ LOG4CXX_INFO(logger_, "Set max amount of requests per application"
+ " time scale " << app_time_scale_max_requests_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MAIN",
+ "AppRequestsTimeScale", value)) && ('\0' != *value)) {
+ app_requests_time_scale_ = atoi(value);
+ LOG4CXX_INFO(logger_, "Set Application time scale for max amount"
+ " of requests " << app_requests_time_scale_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MAIN",
+ "AppHMILevelNoneTimeScaleMaxRequests", value))
+ && ('\0' != *value)) {
+ app_hmi_level_none_time_scale_max_requests_ = atoi(value);
+ LOG4CXX_INFO(logger_, "Set max amount of requests per application"
+ " time scale " << app_hmi_level_none_time_scale_max_requests_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MAIN",
+ "AppHMILevelNoneRequestsTimeScale", value))
+ && ('\0' != *value)) {
+ app_hmi_level_none_requests_time_scale_ = atoi(value);
+ LOG4CXX_INFO(logger_, "Set Application time scale for max amount"
+ " of requests " << app_hmi_level_none_requests_time_scale_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MAIN",
+ "PendingRequestsAmount", value)) && ('\0' != *value)) {
+ pending_requests_amount_ = atoi(value);
+ if (app_dir_quota_ <= 0) {
+ pending_requests_amount_ = 1000;
+ }
+ LOG4CXX_INFO(
+ logger_,
+ "Set system pending requests amount " << pending_requests_amount_);
+ }
+
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "AppInfo", "AppInfoStorage",
+ value)) && ('\0' != *value)) {
+ app_info_storage_ = value;
+ LOG4CXX_INFO(
+ logger_,
+ "Set Application information storage to " << app_info_storage_);
+ }
+
+ supported_diag_modes_.clear();
+ *value = '\0';
+ if ((0
+ != ini_read_value(config_file_name_.c_str(), "MAIN",
+ "SupportedDiagModes", value)) && ('\0' != *value)) {
+ char* str = NULL;
+ str = strtok(value, ",");
+ while (str != NULL) {
+ supported_diag_modes_.push_back(strtol(str, NULL, 16));
+ str = strtok(NULL, ",");
+ }
+ }
+
+ (void) ReadIntValue(&heart_beat_timeout_, kDefaultHeartBeatTimeout,
+ kMainSection, "HeartBeatTimeout");
+}
+
+bool Profile::ReadValue(bool* value, const char* const pSection,
+ const char* const pKey) const {
+ bool ret = false;
+
+ char buf[INI_LINE_LEN + 1];
+ *buf = '\0';
+ if ((0 != ini_read_value(config_file_name_.c_str(), pSection, pKey, buf))
+ && ('\0' != *buf)) {
+ const int32_t tmpVal = atoi(buf);
+ if (0 == tmpVal) {
+ *value = false;
+ } else {
+ *value = true;
+ }
+
+ ret = true;
+ }
+
+ return ret;
+}
+
+bool Profile::ReadValue(std::string* value, const char* const pSection,
+ const char* const pKey) const {
+ bool ret = false;
+
+ char buf[INI_LINE_LEN + 1];
+ *buf = '\0';
+ if ((0 != ini_read_value(config_file_name_.c_str(), pSection, pKey, buf))
+ && ('\0' != *buf)) {
+ *value = buf;
+ ret = true;
+ }
+
+ return ret;
+}
+
+bool Profile::ReadStringValue(std::string* value, const char* default_value,
+ const char* const pSection,
+ const char* const pKey) const {
+ if (!ReadValue(value, pSection, pKey)) {
+ *value = default_value;
+ return false;
+ }
+ return true;
+}
+
+bool Profile::ReadIntValue(int32_t* value, int32_t default_value,
+ const char* const pSection,
+ const char* const pKey) const {
+ std::string string_value;
+ if (!ReadValue(&string_value, pSection, pKey)) {
+ *value = default_value;
+ return false;
+ } else {
+ *value = atoi(string_value.c_str());
+ return true;
+ }
+}
+
+} // namespace profile
diff --git a/SDL_Core/src/components/connection_handler/CMakeLists.txt b/SDL_Core/src/components/connection_handler/CMakeLists.txt
new file mode 100644
index 000000000..568960444
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/CMakeLists.txt
@@ -0,0 +1,20 @@
+include_directories (
+ ./include/
+ ../transport_manager/include/
+ ../protocol_handler/include/
+ ../config_profile/include/
+ ../utils/include/
+)
+
+set (SOURCES
+ ./src/connection_handler_impl.cc
+ ./src/connection.cc
+ ./src/device.cc
+ ./src/heartbeat_monitor.cc
+)
+
+set(LIBRARIES
+ ConfigProfile
+)
+
+add_library("connectionHandler" ${SOURCES})
diff --git a/SDL_Core/src/components/connection_handler/include/connection_handler/connection.h b/SDL_Core/src/components/connection_handler/include/connection_handler/connection.h
new file mode 100644
index 000000000..7bad9027f
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/include/connection_handler/connection.h
@@ -0,0 +1,208 @@
+/**
+ * \file Connection.hpp
+ * \brief Connection class.
+ * Stores connection information
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_H_
+#define SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_H_
+
+#include <map>
+#include <vector>
+
+#include "utils/logger.h"
+#include "utils/lock.h"
+#include "connection_handler/device.h"
+#include "connection_handler/heartbeat_monitor.h"
+
+/**
+ * \namespace connection_handler
+ * \brief SmartDeviceLink connection_handler namespace.
+ */
+namespace connection_handler {
+
+class ConnectionHandler;
+
+/**
+ * \brief Type for ConnectionHandle
+ */
+typedef int32_t ConnectionHandle;
+
+/**
+ * \brief Type for Connections map
+ * Key is ConnectionHandle which is uniq
+ */
+typedef std::map<int32_t, Connection*> ConnectionList;
+
+/**
+ * \brief Type for Connections map iterator
+ */
+typedef ConnectionList::iterator ConnectionListIterator;
+
+/**
+ * \brief Type for Session Services
+ */
+typedef std::vector<uint8_t> ServiceList;
+
+/**
+ * \brief Type for Services iterator
+ */
+typedef std::vector<uint8_t>::iterator ServiceListIterator;
+
+/**
+ * \brief Type for Services iterator
+ */
+typedef std::vector<uint8_t>::const_iterator ServiceListConstIterator;
+
+/**
+ * \brief Type for Services iterator
+ */
+typedef std::map<uint8_t, ServiceList> SessionMap;
+
+/**
+ * \brief Type for Services iterator
+ */
+typedef std::map<uint8_t, ServiceList>::iterator SessionMapIterator;
+
+/**
+ * \brief Type for Services const iterator
+ */
+typedef std::map<uint8_t, ServiceList>::const_iterator SessionMapConstIterator;
+
+/**
+ * \class Connection
+ * \brief Connection class
+ */
+class Connection {
+ public:
+ /**
+ * \brief Class constructor
+ */
+ Connection(ConnectionHandle connection_handle,
+ DeviceHandle connection_device_handle,
+ ConnectionHandler* connection_handler,
+ int32_t heartbeat_timeout);
+
+ /**
+ * \brief Destructor
+ */
+ ~Connection();
+
+ /**
+ * \brief Returns device handle
+ * \return DeviceHandle
+ */
+ ConnectionHandle connection_handle() const;
+
+ /**
+ * \brief Returns connection device handle
+ * \return ConnectionDeviceHandle
+ */
+ DeviceHandle connection_device_handle();
+
+ /**
+ * \brief Adds session to connection
+ * \return sessionID or -1 in case of issues
+ */
+ int32_t AddNewSession();
+
+ /**
+ * \brief Removes session from connection
+ * \param aSession session ID
+ * \return sessionID or -1 in case of issues
+ */
+ int32_t RemoveSession(uint8_t session);
+
+ /**
+ * \brief Adds service to session
+ * \return TRUE on success, otherwise FALSE
+ */
+ bool AddNewService(uint8_t session, uint8_t service);
+
+ /**
+ * \brief Removes service from session
+ * \param aSession session ID
+ * \return TRUE on success, otherwise FALSE
+ */
+ bool RemoveService(uint8_t session, uint8_t service);
+
+ /**
+ * \brief Returns map of sessions which have been opened in
+ * current connection.
+ */
+ const SessionMap session_map() const;
+
+ /*
+ * \brief Close this connection and all associated sessions
+ */
+ void Close();
+
+ /*
+ * \brief Prevent this connection from being closed by heartbeat timeout
+ */
+ void KeepAlive();
+
+ private:
+ ConnectionHandler* connection_handler_;
+
+ /**
+ * \brief Current connection handle.
+ */
+ ConnectionHandle connection_handle_;
+
+ /**
+ * \brief DeviceHandle of this connection.
+ */
+ DeviceHandle connection_device_handle_;
+
+ /**
+ * \brief session/services map
+ */
+ SessionMap session_map_;
+
+ mutable sync_primitives::Lock session_map_lock_;
+
+ /*
+ * \brief monitor that closes connection if there is no traffic over it
+ */
+ HeartBeatMonitor heartbeat_monitor_;
+
+ /**
+ * \brief For logging.
+ */
+ static log4cxx::LoggerPtr logger_;
+};
+
+}/* namespace connection_handler */
+
+#endif // SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_H_
diff --git a/SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler.h b/SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler.h
new file mode 100644
index 000000000..ca061bc30
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler.h
@@ -0,0 +1,91 @@
+/**
+ * \file connection_handler.hpp
+ * \brief Connection handler interface class.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_HANDLER_H_
+#define SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_HANDLER_H_
+
+#include "transport_manager/transport_manager_listener.h"
+#include "protocol_handler/session_observer.h"
+#include "connection_handler/connection_handler_observer.h"
+#include "connection_handler/device.h"
+#include "connection_handler/connection.h"
+#include "connection_handler/devices_discovery_starter.h"
+
+/**
+ * \namespace connection_handler
+ * \brief SmartDeviceLink connection_handler namespace.
+ */
+namespace connection_handler {
+/**
+ * \class ConnectionHandler
+ * \brief SmartDeviceLink ConnectionHandler interface class
+ */
+class ConnectionHandler {
+ public:
+ /**
+ * \brief Sets observer pointer for ConnectionHandler.
+ * \param observer Pointer to observer object.
+ **/
+ virtual void set_connection_handler_observer(
+ ConnectionHandlerObserver* observer) = 0;
+
+ /**
+ * \brief Sets pointer to TransportManager.
+ * \param transportManager Pointer to TransportManager object.
+ **/
+ virtual void set_transport_manager(
+ transport_manager::TransportManager* transport_manager) = 0;
+
+ virtual void StartTransportManager() = 0;
+
+ virtual void ConnectToDevice(
+ connection_handler::DeviceHandle device_handle) = 0;
+
+ /*
+ * Close all associated sessions and close the connection pointed by handle
+ */
+ virtual void CloseConnection(ConnectionHandle connection_handle) = 0;
+
+
+ protected:
+ /**
+ * \brief Destructor
+ */
+ virtual ~ConnectionHandler() {
+ }
+};
+}/* namespace connection_handler */
+
+#endif // SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_HANDLER_H_
diff --git a/SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler_impl.h b/SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler_impl.h
new file mode 100644
index 000000000..31277b4c7
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler_impl.h
@@ -0,0 +1,319 @@
+/**
+ * \file connection_handlerImpl.hpp
+ * \brief Connection handler class.
+ * Observes TransportManager and ProtocolHandler, stores information regarding connections
+ * and sessions and provides it to AppManager.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_HANDLER_IMPL_H_
+#define SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_HANDLER_IMPL_H_
+
+#include <map>
+#include <list>
+#include <string>
+
+#include "transport_manager/transport_manager_listener_empty.h"
+#include "protocol_handler/session_observer.h"
+#include "transport_manager/transport_manager_listener_empty.h"
+#include "connection_handler/connection_handler_observer.h"
+#include "connection_handler/device.h"
+#include "connection_handler/connection.h"
+#include "connection_handler/devices_discovery_starter.h"
+#include "connection_handler/connection_handler.h"
+#include "utils/logger.h"
+#include "utils/macro.h"
+#include "utils/lock.h"
+#include "utils/stl_utils.h"
+#include "utils/singleton.h"
+
+/**
+ * \namespace connection_handler
+ * \brief SmartDeviceLink connection_handler namespace.
+ */
+namespace connection_handler {
+/**
+ * \class ConnectionHandlerImpl
+ * \brief SmartDeviceLink connection_handler main class
+ */
+class ConnectionHandlerImpl : public ConnectionHandler,
+ public transport_manager::TransportManagerListenerEmpty,
+ public protocol_handler::SessionObserver,
+ public DevicesDiscoveryStarter,
+ public utils::Singleton<ConnectionHandlerImpl> {
+ public:
+ /**
+ * \brief Destructor
+ */
+ virtual ~ConnectionHandlerImpl();
+
+ /**
+ * \brief Sets observer pointer for connection_handler.
+ * \param observer Pointer to observer object.
+ **/
+ virtual void set_connection_handler_observer(
+ ConnectionHandlerObserver* observer);
+
+ /**
+ * \brief Sets pointer to TransportManager.
+ * \param transportManager Pointer to TransportManager object.
+ **/
+ virtual void set_transport_manager(
+ transport_manager::TransportManager* transport_mngr);
+
+ /**
+ * \brief Connects to all services of device
+ * \param deviceHandle Handle of device to connect to
+ */
+ virtual void ConnectToDevice(connection_handler::DeviceHandle device_handle);
+
+ virtual void StartTransportManager();
+
+ virtual void OnDeviceListUpdated(
+ const std::vector<transport_manager::DeviceInfo>&);
+
+ /**
+ * \brief Available devices list updated.
+ *
+ * Called when device scanning initiated with scanForNewDevices
+ * is completed or devices connected via background procedures.
+ *
+ * \param DeviceList New list of available devices.
+ **/
+ virtual void OnDeviceFound(const transport_manager::DeviceInfo& device_info);
+ virtual void OnDeviceAdded(const transport_manager::DeviceInfo& device_info);
+ virtual void OnDeviceRemoved(const transport_manager::DeviceInfo& device_info);
+
+ virtual void OnScanDevicesFinished();
+ virtual void OnScanDevicesFailed(
+ const transport_manager::SearchDeviceError& error);
+
+ /**
+ * \brief Notifies about established connection.
+ *
+ * \param connection_id ID of new connection.
+ **/
+ virtual void OnConnectionEstablished(
+ const transport_manager::DeviceInfo& device_info,
+ const transport_manager::ConnectionUID& connection_id);
+ virtual void OnConnectionFailed(
+ const transport_manager::DeviceInfo& device_info,
+ const transport_manager::ConnectError& error);
+ virtual void OnConnectionClosed(
+ transport_manager::ConnectionUID connection_id);
+ virtual void OnConnectionClosedFailure(
+ transport_manager::ConnectionUID connection_id,
+ const transport_manager::DisconnectError& error);
+ virtual void OnUnexpectedDisconnect(
+ transport_manager::ConnectionUID connection_id,
+ const transport_manager::CommunicationError& error);
+ virtual void OnDeviceConnectionLost(
+ const connection_handler::DeviceHandle& device,
+ const transport_manager::DisconnectDeviceError& error);
+ /**
+ * \brief Informs about failure during DisconnectDevice procedure of TM
+ * \param device Information about disconnected device
+ * \param error Information about possible reason of loosing connection
+ */
+ virtual void OnDisconnectFailed(
+ const connection_handler::DeviceHandle& device,
+ const transport_manager::DisconnectDeviceError& error);
+
+ /**
+ * \brief Callback function used by ProtocolHandler
+ * when Mobile Application initiates start of new session.
+ * \param connection_handle Connection identifier whithin which session has to be started.
+ * \param sessionId Identifier of the session to be started
+ * \return int32_t Id (number) of new session if successful otherwise -1.
+ */
+ virtual int32_t OnSessionStartedCallback(
+ const transport_manager::ConnectionUID& connection_handle,
+ const uint8_t& session_id,
+ const protocol_handler::ServiceType& service_type);
+
+ /**
+ * \brief Callback function used by ProtocolHandler
+ * when Mobile Application initiates session ending.
+ * \param connection_handle Connection identifier whithin which session exists
+ * \param sessionId Identifier of the session to be ended
+ * \param hashCode Hash used only in second version of SmartDeviceLink protocol.
+ * If not equal to hash assigned to session on start then operation fails.
+ * \return int32_t -1 if operation fails session key otherwise
+ */
+ virtual uint32_t OnSessionEndedCallback(
+ const transport_manager::ConnectionUID& connection_handle,
+ const uint8_t& session_id, const uint32_t& hashCode,
+ const protocol_handler::ServiceType& service_type);
+
+ /**
+ * \brief Creates unique identifier of session (can be used as hash)
+ * from given connection identifier
+ * whithin which session exists and session number.
+ * \param connection_handle Connection identifier whithin which session exists
+ * \param sessionId Identifier of the session
+ * \return int32_t Unique key for session
+ */
+ virtual uint32_t KeyFromPair(
+ transport_manager::ConnectionUID connection_handle,
+ uint8_t session_id);
+
+ /**
+ * \brief Returns connection identifier and session number from given session key
+ * \param key Unique key used by other components as session identifier
+ * \param connection_handle Returned: Connection identifier whithin which session exists
+ * \param sessionId Returned: Number of session
+ */
+ virtual void PairFromKey(uint32_t key,
+ transport_manager::ConnectionUID* connection_handle,
+ uint8_t* session_id);
+
+ /**
+ * \brief information about given Connection Key.
+ * \param key Unique key used by other components as session identifier
+ * \param app_id Returned: ApplicationID
+ * \param sessions_list Returned: List of session keys
+ * \param device_id Returned: DeviceID
+ * \return int32_t -1 in case of error or 0 in case of success
+ */
+ virtual int32_t GetDataOnSessionKey(uint32_t key, uint32_t* app_id = 0,
+ std::list<int32_t>* sessions_list = NULL,
+ uint32_t* device_id = 0);
+
+ /**
+ * \brief information about given Connection Key.
+ * \param key Unique key used by other components as session identifier
+ * \param app_id Returned: ApplicationID
+ * \param sessions_list Returned: List of session keys
+ * \param device_id Returned: DeviceID
+ * \return int32_t -1 in case of error or 0 in case of success
+ */
+ virtual int32_t GetDataOnDeviceID(connection_handler::DeviceHandle device_handle,
+ std::string* device_name = NULL,
+ std::list<uint32_t>* applications_list = NULL,
+ std::string* mac_address = NULL);
+
+
+ /**
+ * \brief Method which should start devices discoveryng
+ */
+ virtual void StartDevicesDiscovery();
+
+ /*
+ * Close all associated sessions and close the connection associated with the key
+ */
+ virtual void CloseConnection(uint32_t key);
+
+ /*
+ * Close all associated sessions and close the connection pointed by handle
+ */
+ virtual void CloseConnection(ConnectionHandle connection_handle) OVERRIDE;
+
+ /*
+ * Keep connection associated with the key from being closed by heartbeat monitor
+ */
+ void KeepConnectionAlive(uint32_t connection_key);
+ private:
+ /**
+ * \brief Default class constructor
+ */
+ ConnectionHandlerImpl();
+
+ /**
+ * \brief Checks does device exist in list from TransportManager
+ * \param DeviceHandle Handle of device for checking.
+ * \param DeviceHandle Handle of device for checking.
+ * \return True if device exists.
+ */
+ bool DoesDeviceExistInTMList(
+ const std::vector<transport_manager::DeviceInfo>& device_list,
+ const connection_handler::DeviceHandle device_handle);
+
+ /**
+ * \brief Checks does device exist in list and adds if not
+ * \param DeviceHandle Handle of device for checking.
+ * \return True if device was added
+ */
+ bool AddDeviceInDeviceListIfNotExist(
+ const transport_manager::DeviceInfo& device);
+
+ /**
+ * \brief Disconnect application.
+ *
+ * \param device_handle DeviceHandle of disconnected device.
+ * \param connection_handle Connection handle.
+ **/
+ void RemoveConnection(const ConnectionHandle connection_handle);
+
+ void OnConnectionEnded(
+ const transport_manager::ConnectionUID& connection_id);
+
+ /**
+ * \brief Pointer to observer
+ */
+ ConnectionHandlerObserver* connection_handler_observer_;
+
+ /**
+ * \brief Pointer to TransportManager
+ */
+ transport_manager::TransportManager* transport_manager_;
+
+ /**
+ * \brief List of devices
+ */
+ DeviceList device_list_;
+
+ /**
+ * \brief List of connections
+ */
+ ConnectionList connection_list_;
+
+ /**
+ * \brief Lock for applications list
+ */
+ sync_primitives::Lock connection_list_lock_;
+
+ /*
+ * \brief Cleans connection list on destruction
+ */
+ utils::StlMapDeleter<ConnectionList> connection_list_deleter_;
+
+ /**
+ *\brief For logging.
+ */
+ static log4cxx::LoggerPtr logger_;
+ DISALLOW_COPY_AND_ASSIGN(ConnectionHandlerImpl);
+
+ FRIEND_BASE_SINGLETON_CLASS(ConnectionHandlerImpl);
+};
+}/* namespace connection_handler */
+
+#endif // SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_HANDLER_IMPL_H_
diff --git a/SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler_observer.h b/SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler_observer.h
new file mode 100644
index 000000000..614311343
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/include/connection_handler/connection_handler_observer.h
@@ -0,0 +1,106 @@
+/**
+ * \file connection_handlerObserver.hpp
+ * \brief connection_handlerObserver class.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_HANDLER_OBSERVER_H_
+#define SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_HANDLER_OBSERVER_H_
+
+#include "connection_handler/device.h"
+#include "connection_handler/connection.h"
+#include "protocol_handler/service_type.h"
+
+/**
+ * \namespace connection_handler
+ * \brief SmartDeviceLink connection_handler namespace.
+ */
+namespace connection_handler {
+
+/**
+ * \class ConnectionHandlerObserver
+ * \brief ConnectionHandlerObserver class
+ */
+class ConnectionHandlerObserver {
+ public:
+ /**
+ * \brief Available devices list updated.
+ *
+ * Called when device scanning initiated with scanForNewDevices
+ * is completed.
+ *
+ * \param DeviceList New list of available devices.
+ **/
+ virtual void OnDeviceListUpdated(
+ const connection_handler::DeviceList& device_list) = 0;
+
+ /**
+ * \brief Removes device.
+ *
+ * Called when device has been removed from a list.
+ *
+ * \param DeviceHandle Handle of removed device.
+ **/
+ virtual void RemoveDevice(
+ const connection_handler::DeviceHandle& device_handle) = 0;
+
+ /**
+ * \brief Callback function used by connection_handler
+ * when Mobile Application initiates start of new service.
+ * \param deviceHandle Device identifier within which session has to be started.
+ * \param sessionKey Key of started session.
+ * \param type Established service type
+ */
+ virtual bool OnServiceStartedCallback(
+ const connection_handler::DeviceHandle& device_handle,
+ const int32_t& session_key,
+ const protocol_handler::ServiceType& type) = 0;
+
+ /**
+ * \brief Callback function used by connection_handler
+ * when Mobile Application initiates service ending.
+ * \param sessionKey Key of session which should be ended
+ */
+ virtual void OnServiceEndedCallback(
+ const int32_t& session_key,
+ const protocol_handler::ServiceType& type) = 0;
+
+ protected:
+ /**
+ * \brief Destructor
+ */
+ virtual ~ConnectionHandlerObserver() {
+ }
+};
+}/* namespace connection_handler */
+
+#endif // SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_CONNECTION_HANDLER_OBSERVER_H_
diff --git a/SDL_Core/src/components/connection_handler/include/connection_handler/device.h b/SDL_Core/src/components/connection_handler/include/connection_handler/device.h
new file mode 100644
index 000000000..b480aeb99
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/include/connection_handler/device.h
@@ -0,0 +1,123 @@
+/**
+ * \file Device.hpp
+ * \brief Device class.
+ * Stores device information
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_DEVICE_H_
+#define SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_DEVICE_H_
+
+#include <string>
+#include <map>
+#include <vector>
+#include "utils/logger.h"
+
+/**
+ * \namespace connection_handler
+ * \brief SmartDeviceLink connection_handler namespace.
+ */
+namespace connection_handler {
+
+/**
+ * \brief Type for DeviceHandle
+ */
+typedef uint32_t DeviceHandle;
+typedef std::vector<int32_t> AppList;
+
+/**
+ * \class Device
+ * \brief Connection class
+ */
+class Device {
+ public:
+ /**
+ * \brief Class constructor
+ */
+ Device(DeviceHandle device_handle, const std::string& user_friendly_name,
+ const std::string& mac_address = "");
+
+ /**
+ * \brief Destructor
+ */
+ ~Device();
+
+ /**
+ * \brief Returns device handle
+ * \return DeviceHandle
+ */
+ DeviceHandle device_handle() const;
+
+ /**
+ * \brief Returns user frendly device name
+ * \return UserFriendlyName
+ */
+ std::string user_friendly_name() const;
+
+ std::string mac_address() const;
+
+ private:
+ /**
+ * \brief Uniq device handle.
+ */
+ DeviceHandle device_handle_;
+
+ /**
+ * \brief User-friendly device name.
+ */
+ std::string user_friendly_name_;
+
+ /**
+ * \brief Mac address of device if available
+ */
+ std::string mac_address_;
+
+ /**
+ * \brief For logging.
+ */
+ static log4cxx::LoggerPtr logger_;
+};
+
+/**
+ * \brief Type for Devices map
+ */
+typedef std::map<int32_t, Device> DeviceList;
+
+/**
+ * \brief Type for Devices map iterator
+ * Key is DeviceHandle which is uniq
+ */
+typedef std::map<int32_t, Device>::iterator DeviceListIterator;
+
+}/* namespace connection_handler */
+
+#endif // SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_DEVICE_H_
diff --git a/SDL_Core/src/components/connection_handler/include/connection_handler/devices_discovery_starter.h b/SDL_Core/src/components/connection_handler/include/connection_handler/devices_discovery_starter.h
new file mode 100644
index 000000000..d2fb657db
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/include/connection_handler/devices_discovery_starter.h
@@ -0,0 +1,75 @@
+/**
+ * \file DevicesDiscoveryStarter.hpp
+ * \brief Starter of devices discovering process.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_DEVICES_DISCOVERY_STARTER_H_
+#define SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_DEVICES_DISCOVERY_STARTER_H_
+
+#include "connection_handler/device.h"
+
+/**
+ * \namespace connection_handler
+ * \brief SmartDeviceLink connection_handler namespace.
+ */
+namespace connection_handler {
+/**
+ * \class DevicesDiscoveryStarter
+ * \brief Starter of devices discovering process class
+ */
+class DevicesDiscoveryStarter {
+ public:
+ /**
+ * \brief Method which should start devices discoveryng
+ */
+ virtual void StartDevicesDiscovery()=0;
+
+ /**
+ * \brief Connects to all services of device
+ * \param deviceHandle Handle of device to connect to
+ */
+ virtual void ConnectToDevice(
+ connection_handler::DeviceHandle device_handle) = 0;
+
+ virtual void StartTransportManager() = 0;
+
+ protected:
+ /**
+ * \brief Destructor
+ */
+ virtual ~DevicesDiscoveryStarter() {
+ }
+};
+}/* namespace connection_handler */
+
+#endif // SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_CONNECTION_HANDLER_DEVICES_DISCOVERY_STARTER_H_
diff --git a/SDL_Core/src/components/connection_handler/include/connection_handler/heartbeat_monitor.h b/SDL_Core/src/components/connection_handler/include/connection_handler/heartbeat_monitor.h
new file mode 100644
index 000000000..b43f0e90b
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/include/connection_handler/heartbeat_monitor.h
@@ -0,0 +1,75 @@
+/* Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_HEARTBEAT_MONITOR_H_
+#define SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_HEARTBEAT_MONITOR_H_
+
+#include <stdint.h>
+#include <map>
+
+#include "utils/timer_thread.h"
+#include "utils/threads/thread_validator.h"
+#include "utils/macro.h"
+
+namespace connection_handler {
+
+class Connection;
+
+/*
+ * Starts timer and when it elapses closes associated connection
+ */
+class HeartBeatMonitor: public threads::SingleThreadSimpleValidator {
+ public:
+ HeartBeatMonitor(int32_t heartbeat_timeout_seconds,
+ Connection* connection);
+ ~HeartBeatMonitor();
+ /*
+ * \brief Starts connection monitoring.
+ * Should be called when first session was opened.
+ */
+ void BeginMonitoring();
+ /*
+ * Resets keepalive timer preventing connection from being killed
+ */
+ void KeepAlive();
+ private:
+ void TimeOut();
+ private:
+ // \brief Heartbeat timeout, should be read from profile
+ const int32_t heartbeat_timeout_seconds_;
+ // \brief Connection that must be closed when timeout elapsed
+ Connection* connection_;
+ timer::TimerThread<HeartBeatMonitor> timer_;
+ DISALLOW_COPY_AND_ASSIGN(HeartBeatMonitor);
+};
+
+} // namespace connection_handler
+
+#endif // SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_HEARTBEAT_MONITOR_H_
diff --git a/SDL_Core/src/components/connection_handler/src/connection.cc b/SDL_Core/src/components/connection_handler/src/connection.cc
new file mode 100644
index 000000000..1ffecb506
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/src/connection.cc
@@ -0,0 +1,174 @@
+/**
+ * \file Connection.cpp
+ * \brief Connection class implementation.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <algorithm>
+
+#include "connection_handler/connection.h"
+#include "connection_handler/connection_handler.h"
+#include "utils/macro.h"
+
+/**
+ * \namespace connection_handler
+ * \brief SmartDeviceLink ConnectionHandler namespace.
+ */
+namespace connection_handler {
+
+log4cxx::LoggerPtr Connection::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("ConnectionHandler"));
+
+Connection::Connection(ConnectionHandle connection_handle,
+ DeviceHandle connection_device_handle,
+ ConnectionHandler* connection_handler,
+ int32_t heartbeat_timeout)
+ : connection_handler_(connection_handler),
+ connection_handle_(connection_handle),
+ connection_device_handle_(connection_device_handle),
+ heartbeat_monitor_(heartbeat_timeout, this) {
+ DCHECK(connection_handler_);
+}
+
+Connection::~Connection() {
+ session_map_.clear();
+}
+
+int32_t Connection::AddNewSession() {
+ sync_primitives::AutoLock lock(session_map_lock_);
+
+ int32_t result = -1;
+
+ if (session_map_.empty()) {
+ heartbeat_monitor_.BeginMonitoring();
+ }
+
+ const uint8_t max_connections = 255;
+ int32_t size = session_map_.size();
+ if (max_connections > size) {
+
+ ++size;
+ /* whenever new session created RPC and Bulk services are
+ established automatically */
+ session_map_[size].push_back(
+ static_cast<uint8_t>(protocol_handler::kRpc));
+ session_map_[size].push_back(
+ static_cast<uint8_t>(protocol_handler::kBulk));
+
+ result = size;
+ }
+
+ return result;
+}
+
+int32_t Connection::RemoveSession(uint8_t session) {
+ sync_primitives::AutoLock lock(session_map_lock_);
+ int32_t result = -1;
+ SessionMapIterator it = session_map_.find(session);
+ if (session_map_.end() == it) {
+ LOG4CXX_ERROR(logger_, "Session not found in this connection!");
+ } else {
+ session_map_.erase(session);
+ result = session;
+ }
+
+ return result;
+}
+
+bool Connection::AddNewService(uint8_t session, uint8_t service) {
+ sync_primitives::AutoLock lock(session_map_lock_);
+ bool result = false;
+
+ SessionMapIterator session_it = session_map_.find(session);
+ if (session_it == session_map_.end()) {
+ LOG4CXX_ERROR(logger_, "Session not found in this connection!");
+ return result;
+ }
+
+ ServiceListIterator service_it = find(session_it->second.begin(),
+ session_it->second.end(), service);
+ if (service_it != session_it->second.end()) {
+ LOG4CXX_ERROR(logger_, "Session " << session << " already established"
+ " service " << service);
+ } else {
+ session_it->second.push_back(service);
+ result = true;
+ }
+
+ return result;
+}
+
+bool Connection::RemoveService(uint8_t session, uint8_t service) {
+ sync_primitives::AutoLock lock(session_map_lock_);
+ bool result = false;
+
+ SessionMapIterator session_it = session_map_.find(session);
+ if (session_it == session_map_.end()) {
+ LOG4CXX_ERROR(logger_, "Session not found in this connection!");
+ return result;
+ }
+
+ ServiceListIterator service_it = find(session_it->second.begin(),
+ session_it->second.end(), service);
+ if (service_it != session_it->second.end()) {
+ session_it->second.erase(service_it);
+ result = true;
+ } else {
+ LOG4CXX_ERROR(logger_, "Session " << session << " didn't established"
+ " service " << service);
+ }
+
+ return result;
+}
+
+ConnectionHandle Connection::connection_handle() const {
+ return connection_handle_;
+}
+
+DeviceHandle Connection::connection_device_handle() {
+ return connection_device_handle_;
+}
+
+const SessionMap Connection::session_map() const {
+ sync_primitives::AutoLock lock(session_map_lock_);
+ return session_map_;
+}
+
+void Connection::Close() {
+ connection_handler_->CloseConnection(connection_handle_);
+}
+
+void Connection::KeepAlive() {
+ heartbeat_monitor_.KeepAlive();
+}
+
+}/* namespace connection_handler */
diff --git a/SDL_Core/src/components/connection_handler/src/connection_handler_impl.cc b/SDL_Core/src/components/connection_handler/src/connection_handler_impl.cc
new file mode 100644
index 000000000..76e373977
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/src/connection_handler_impl.cc
@@ -0,0 +1,576 @@
+/**
+ * \file ConnectionHandlerImpl.cpp
+ * \brief Connection handler class.
+ * \Observes TransportManager and ProtocolHandler, stores information regarding connections
+ * \and sessions and provides it to AppManager.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include <string>
+#include <list>
+#include <algorithm>
+
+#include "connection_handler/connection_handler_impl.h"
+#include "transport_manager/info.h"
+#include "config_profile/profile.h"
+
+namespace {
+int32_t HeartBeatTimeout() {
+ return profile::Profile::instance()->heart_beat_timeout();
+}
+}
+
+/**
+ * \namespace connection_handler
+ * \brief SmartDeviceLink ConnectionHandler namespace.
+ */
+namespace connection_handler {
+
+ConnectionHandle HandleFromConnectionUID(transport_manager::ConnectionUID uid) {
+ return ConnectionHandle(uid);
+}
+
+transport_manager::ConnectionUID ConnectionUIDFromHandle(ConnectionHandle handle) {
+ return transport_manager::ConnectionUID(handle);
+}
+
+log4cxx::LoggerPtr ConnectionHandlerImpl::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("ConnectionHandler"));
+
+ConnectionHandlerImpl::ConnectionHandlerImpl()
+ : connection_handler_observer_(NULL),
+ transport_manager_(NULL),
+ connection_list_deleter_(&connection_list_){
+}
+
+ConnectionHandlerImpl::~ConnectionHandlerImpl() {
+ LOG4CXX_INFO(logger_, "Destructing ConnectionHandlerImpl.");
+}
+
+void ConnectionHandlerImpl::set_connection_handler_observer(
+ ConnectionHandlerObserver* observer) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::set_connection_handler_observer()");
+ if (!observer) {
+ LOG4CXX_ERROR(logger_, "Null pointer to observer.");
+ return;
+ }
+ connection_handler_observer_ = observer;
+}
+
+void ConnectionHandlerImpl::OnDeviceListUpdated(
+ const std::vector<transport_manager::DeviceInfo>& device_info_list) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::OnDeviceListUpdated()");
+
+ bool list_actually_changed = false;
+ for (DeviceListIterator itr = device_list_.begin(); itr != device_list_.end();
+ ++itr) {
+ if (!DoesDeviceExistInTMList(device_info_list, (*itr).first)) {
+ // Device has been removed. Perform all needed actions.
+ // 1. Delete all the connections and sessions of this device
+ // 2. Delete device from a list
+ // 3. Let observer know that device has been deleted.
+ DeviceHandle device_for_remove_handle = (*itr).first;
+ for (ConnectionListIterator it = connection_list_.begin();
+ it != connection_list_.end(); ++it) {
+ if (device_for_remove_handle
+ == (*it).second->connection_device_handle()) {
+ RemoveConnection((*it).first);
+ }
+ }
+ device_list_.erase(device_for_remove_handle);
+ list_actually_changed = true;
+ if (connection_handler_observer_) {
+ connection_handler_observer_->RemoveDevice(device_for_remove_handle);
+ }
+ }
+ }
+ for (std::vector<transport_manager::DeviceInfo>::const_iterator it_in =
+ device_info_list.begin(); it_in != device_info_list.end(); ++it_in) {
+ list_actually_changed |= AddDeviceInDeviceListIfNotExist((*it_in));
+ }
+ if (connection_handler_observer_ && list_actually_changed) {
+ connection_handler_observer_->OnDeviceListUpdated(device_list_);
+ }
+}
+
+void ConnectionHandlerImpl::OnDeviceFound(
+ const transport_manager::DeviceInfo& device_info) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::OnDeviceFound()");
+}
+
+void ConnectionHandlerImpl::OnDeviceAdded(
+ const transport_manager::DeviceInfo& device_info) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::OnDeviceAdded()");
+}
+
+void ConnectionHandlerImpl::OnDeviceRemoved(
+ const transport_manager::DeviceInfo& device_info) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::OnDeviceRemoved()");
+}
+
+bool ConnectionHandlerImpl::DoesDeviceExistInTMList(
+ const std::vector<transport_manager::DeviceInfo>& device_list,
+ const connection_handler::DeviceHandle device_handle) {
+ bool result = false;
+ for (std::vector<transport_manager::DeviceInfo>::const_iterator it_in =
+ device_list.begin();
+ it_in != device_list.end();
+ ++it_in) {
+ if (it_in->device_handle() == device_handle) {
+ result = true;
+ break;
+ }
+ }
+ return result;
+}
+
+bool ConnectionHandlerImpl::AddDeviceInDeviceListIfNotExist(
+ const transport_manager::DeviceInfo& device_info) {
+ DeviceListIterator it = device_list_.find(device_info.device_handle());
+ if (device_list_.end() == it) {
+ LOG4CXX_INFO(logger_, "Adding new device!");
+ device_list_.insert(
+ DeviceList::value_type(
+ device_info.device_handle(),
+ Device(device_info.device_handle(), device_info.name(),
+ device_info.mac_address())));
+ return true;
+ }
+ return false;
+}
+
+void ConnectionHandlerImpl::OnScanDevicesFinished() {
+ LOG4CXX_INFO(logger_, "Scan devices finished successfully.");
+}
+
+void ConnectionHandlerImpl::OnScanDevicesFailed(
+ const transport_manager::SearchDeviceError& error) {
+ LOG4CXX_ERROR(logger_, "Failed to Scan devices.");
+}
+
+void ConnectionHandlerImpl::OnConnectionEstablished(
+ const transport_manager::DeviceInfo& device_info,
+ const transport_manager::ConnectionUID& connection_id) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::OnConnectionEstablished()");
+
+ DeviceListIterator it = device_list_.find(device_info.device_handle());
+ if (device_list_.end() == it) {
+ LOG4CXX_ERROR(logger_, "Unknown device!");
+ return;
+ }
+ LOG4CXX_INFO(logger_, "Add Connection:" << connection_id << " to the list.");
+ sync_primitives::AutoLock lock(connection_list_lock_);
+ connection_list_.insert(
+ ConnectionList::value_type(
+ connection_id,
+ new Connection(connection_id, device_info.device_handle(),
+ this, HeartBeatTimeout())));
+}
+
+void ConnectionHandlerImpl::OnConnectionFailed(
+ const transport_manager::DeviceInfo& device_info,
+ const transport_manager::ConnectError& error) {
+ // TODO(PV): implement
+ LOG4CXX_ERROR(logger_, "Failed connecting.");
+}
+
+void ConnectionHandlerImpl::OnConnectionClosed(
+ transport_manager::ConnectionUID connection_id) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::OnConnectionClosed");
+
+ OnConnectionEnded(connection_id);
+}
+
+void ConnectionHandlerImpl::OnConnectionClosedFailure(
+ transport_manager::ConnectionUID connection_id,
+ const transport_manager::DisconnectError& error) {
+ // TODO(PV): implement
+ LOG4CXX_ERROR(logger_, "ConnectionHandlerImpl::OnConnectionClosedFailure");
+}
+
+void ConnectionHandlerImpl::OnUnexpectedDisconnect(
+ transport_manager::ConnectionUID connection_id,
+ const transport_manager::CommunicationError& error) {
+ LOG4CXX_ERROR(logger_, "ConnectionHandlerImpl::OnUnexpectedDisconnect");
+}
+
+void ConnectionHandlerImpl::OnDeviceConnectionLost(
+ const transport_manager::DeviceHandle& device,
+ const transport_manager::DisconnectDeviceError& error) {
+ // TODO(PV): implement
+ LOG4CXX_ERROR(logger_, "Lost connection with device " << device);
+}
+
+void ConnectionHandlerImpl::OnDisconnectFailed(
+ const transport_manager::DeviceHandle& device,
+ const transport_manager::DisconnectDeviceError& error) {
+ // TODO(PV): implement
+ LOG4CXX_ERROR(logger_, "Trying to Disconnect device failed.");
+}
+
+void ConnectionHandlerImpl::RemoveConnection(
+ const ConnectionHandle connection_handle) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::RemoveConnection()");
+
+ OnConnectionEnded(connection_handle);
+}
+
+ int32_t ConnectionHandlerImpl::OnSessionStartedCallback(
+ const transport_manager::ConnectionUID& connection_handle,
+ const uint8_t& sessionId,
+ const protocol_handler::ServiceType& service_type) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::OnSessionStartedCallback()");
+
+ int32_t new_session_id = -1;
+
+ sync_primitives::AutoLock lock(connection_list_lock_);
+ ConnectionListIterator it = connection_list_.find(connection_handle);
+ if (connection_list_.end() == it) {
+ LOG4CXX_ERROR(logger_, "Unknown connection!");
+ return -1;
+ }
+
+ if ((0 == sessionId) && (protocol_handler::kRpc == service_type)) {
+ new_session_id = (it->second)->AddNewSession();
+ if (0 > new_session_id) {
+ LOG4CXX_ERROR(logger_, "Not possible to start session!");
+ return -1;
+ }
+ } else if ((0 != sessionId) && (protocol_handler::kRpc != service_type)) {
+ if (!(it->second)->AddNewService(sessionId, service_type)) {
+ LOG4CXX_ERROR(logger_, "Not possible to establish service!");
+ return -1;
+ }
+ new_session_id = sessionId;
+ } else {
+ LOG4CXX_ERROR(logger_, "Not possible to establish service!");
+ return -1;
+ }
+
+ if (connection_handler_observer_) {
+ int32_t session_key = KeyFromPair(connection_handle, new_session_id);
+
+ bool success = connection_handler_observer_->OnServiceStartedCallback(
+ (it->second)->connection_device_handle(), session_key, service_type);
+
+ if (!success && (protocol_handler::kRpc == service_type)) {
+ (it->second)->RemoveSession(new_session_id);
+ new_session_id = -1;
+ } else if (!success) {
+ (it->second)->RemoveService(sessionId, service_type);
+ new_session_id = -1;
+ }
+ }
+
+ return new_session_id;
+}
+
+uint32_t ConnectionHandlerImpl::OnSessionEndedCallback(
+ const uint32_t& connection_handle, const uint8_t& sessionId,
+ const uint32_t& hashCode,
+ const protocol_handler::ServiceType& service_type) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::OnSessionEndedCallback()");
+
+ int32_t result = -1;
+ sync_primitives::AutoLock lock(connection_list_lock_);
+ ConnectionListIterator it = connection_list_.find(connection_handle);
+ if (connection_list_.end() == it) {
+ LOG4CXX_ERROR(logger_, "Unknown connection!");
+ return result;
+ }
+
+ if (protocol_handler::kRpc == service_type) {
+ LOG4CXX_INFO(logger_, "Session to be removed");
+
+ result = (it->second)->RemoveSession(sessionId);
+ if (0 > result) {
+ LOG4CXX_ERROR(logger_, "Not possible to remove session!");
+ return result;
+ }
+ } else {
+ if (!(it->second)->RemoveService(sessionId, service_type)) {
+ LOG4CXX_ERROR(logger_, "Not possible to remove service!");
+ return result;
+ }
+ result = sessionId;
+ }
+
+ if (0 != connection_handler_observer_) {
+ int32_t sessionKey = KeyFromPair(connection_handle, sessionId);
+ connection_handler_observer_->OnServiceEndedCallback(sessionKey,
+ service_type);
+ result = sessionKey;
+ }
+
+ return result;
+}
+
+uint32_t ConnectionHandlerImpl::KeyFromPair(
+ transport_manager::ConnectionUID connection_handle,
+ uint8_t sessionId) {
+ int32_t key = connection_handle | (sessionId << 16);
+ LOG4CXX_INFO(
+ logger_,
+ "Key for ConnectionHandle:" << static_cast<int32_t>(connection_handle)
+ << " Session:" << static_cast<int32_t>(sessionId) << " is: "
+ << static_cast<int32_t>(key));
+ return key;
+}
+
+void ConnectionHandlerImpl::PairFromKey(uint32_t key,
+ uint32_t* connection_handle,
+ uint8_t* sessionId) {
+ *connection_handle = key & 0xFF00FFFF;
+ *sessionId = key >> 16;
+ LOG4CXX_INFO(
+ logger_,
+ "ConnectionHandle:" << static_cast<int32_t>(*connection_handle) << " Session:"
+ << static_cast<int32_t>(*sessionId) << " for key:"
+ << static_cast<int32_t>(key));
+}
+
+int32_t ConnectionHandlerImpl::GetDataOnSessionKey(uint32_t key,
+ uint32_t* app_id,
+ std::list<int32_t>* sessions_list,
+ uint32_t* device_id) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::GetDataOnSessionKey");
+
+ int32_t result = -1;
+ transport_manager::ConnectionUID conn_handle = 0;
+ uint8_t session_id = 0;
+ PairFromKey(key, &conn_handle, &session_id);
+ ConnectionListIterator it = connection_list_.find(conn_handle);
+
+ if (connection_list_.end() == it) {
+ LOG4CXX_ERROR(logger_, "Unknown connection!");
+ return result;
+ }
+
+ Connection& connection = *it->second;
+ if (device_id) {
+ *device_id = connection.connection_device_handle();
+ }
+
+ if (sessions_list) {
+ sessions_list->clear();
+ }
+
+ if (0 == session_id) {
+ LOG4CXX_INFO(logger_,
+ "No sessions in connection " << static_cast<int32_t>(conn_handle));
+ if (app_id) {
+ *app_id = 0;
+ }
+ } else {
+ if (app_id) {
+ *app_id = KeyFromPair(conn_handle, session_id);
+ }
+
+ LOG4CXX_INFO(
+ logger_,
+ "Connection " << static_cast<int32_t>(conn_handle) << " has "
+ << connection.session_map().size() << " sessions.");
+
+ if (sessions_list) {
+ const SessionMap& session_map = connection.session_map();
+ for (SessionMapConstIterator session_it = session_map.begin(),
+ end = session_map.end(); session_it != end; ++session_it) {
+ sessions_list->push_back(KeyFromPair(conn_handle, it->first));
+ }
+ }
+
+ result = 0;
+ }
+
+ return result;
+}
+
+int32_t ConnectionHandlerImpl::GetDataOnDeviceID(
+ DeviceHandle device_handle, std::string* device_name,
+ std::list<uint32_t>* applications_list,
+ std::string* mac_address) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::GetDataOnDeviceID");
+
+ int32_t result = -1;
+ DeviceListIterator it = device_list_.find(device_handle);
+ if (device_list_.end() == it) {
+ LOG4CXX_ERROR(logger_, "Device not found!");
+ return result;
+ }
+
+ if (device_name) {
+ *device_name = (*it).second.user_friendly_name();
+ }
+
+ if (applications_list) {
+ applications_list->clear();
+ for (ConnectionListIterator itr = connection_list_.begin();
+ itr != connection_list_.end(); ++itr) {
+ if (device_handle == (*itr).second->connection_device_handle()) {
+ const SessionMap& session_map = (itr->second)->session_map();
+ for (SessionMapConstIterator session_it = session_map.begin(),
+ end = session_map.end(); session_it != end; ++session_it) {
+ applications_list->push_back(it->first);
+ }
+ }
+ }
+ }
+
+ if (mac_address) {
+ *mac_address = it->second.mac_address();
+ }
+
+ result = 0;
+
+ return result;
+}
+
+void ConnectionHandlerImpl::set_transport_manager(
+ transport_manager::TransportManager* transport_mngr) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::set_transport_manager()");
+ if (!transport_mngr) {
+ LOG4CXX_ERROR(logger_, "Null pointer to TransportManager.");
+ return;
+ }
+ transport_manager_ = transport_mngr;
+}
+
+void ConnectionHandlerImpl::StartDevicesDiscovery() {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::StartDevicesDiscovery()");
+
+ if (NULL == transport_manager_) {
+ LOG4CXX_ERROR(logger_, "Null pointer to TransportManager.");
+ return;
+ }
+ //transport_manager_->SearchDevices();
+ if (connection_handler_observer_) {
+ connection_handler_observer_->OnDeviceListUpdated(device_list_);
+ }
+}
+
+void ConnectionHandlerImpl::ConnectToDevice(
+ connection_handler::DeviceHandle device_handle) {
+ connection_handler::DeviceList::const_iterator it_in;
+ it_in = device_list_.find(device_handle);
+ if (device_list_.end() != it_in) {
+ LOG4CXX_INFO_EXT(logger_,
+ "Connecting to device with handle " << device_handle);
+ if (transport_manager_) {
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_->ConnectDevice(device_handle)) {
+ LOG4CXX_WARN(logger_, "Can't connect to device");
+ }
+ } else {
+ LOG4CXX_ERROR(logger_, "Null pointer to TransportManager.");
+ }
+ } else {
+ LOG4CXX_ERROR(
+ logger_,
+ "Application Manager wanted to connect to non-existing device");
+ }
+}
+
+void ConnectionHandlerImpl::StartTransportManager() {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::StartTransportManager()");
+ if (NULL == transport_manager_) {
+ LOG4CXX_ERROR(logger_, "Null pointer to TransportManager.");
+ return;
+ }
+
+ transport_manager_->Visibility(true);
+}
+
+void ConnectionHandlerImpl::CloseConnection(uint32_t key) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::CloseConnection by HB");
+
+ uint32_t connection_handle = 0;
+ uint8_t session_id = 0;
+ PairFromKey(key, &connection_handle, &session_id);
+
+ CloseConnection(connection_handle);
+}
+
+void ConnectionHandlerImpl::CloseConnection(ConnectionHandle connection_handle) {
+ LOG4CXX_INFO(logger_, "ConnectionHandlerImpl::CloseConnection");
+ if (!transport_manager_) {
+ LOG4CXX_ERROR(logger_, "Null pointer to TransportManager.");
+ return;
+ }
+ transport_manager::ConnectionUID connection_uid =
+ ConnectionUIDFromHandle(connection_handle);
+ transport_manager_->Disconnect(connection_uid);
+}
+
+void ConnectionHandlerImpl::KeepConnectionAlive(uint32_t connection_key) {
+ uint32_t connection_handle = 0;
+ uint8_t session_id = 0;
+ PairFromKey(connection_key, &connection_handle, &session_id);
+
+ sync_primitives::AutoLock lock(connection_list_lock_);
+ ConnectionListIterator it = connection_list_.find(connection_handle);
+ if (connection_list_.end() != it) {
+ it->second->KeepAlive();
+ }
+}
+
+void ConnectionHandlerImpl::OnConnectionEnded(
+ const transport_manager::ConnectionUID& connection_id) {
+ LOG4CXX_INFO(logger_, "Delete Connection: " <<
+ static_cast<int32_t>(connection_id) << " from the list.");
+
+ sync_primitives::AutoLock lock(connection_list_lock_);
+ ConnectionListIterator itr = connection_list_.find(connection_id);
+ if (connection_list_.end() == itr) {
+ LOG4CXX_ERROR(logger_, "Connection not found!");
+ return;
+ }
+
+ if (0 != connection_handler_observer_) {
+ const Connection* connection = itr->second;
+ const SessionMap session_map = connection->session_map();
+ for (SessionMapConstIterator session_it = session_map.begin(),
+ end = session_map.end(); session_it != end; ++session_it) {
+
+ uint32_t session_key = KeyFromPair(connection_id, session_it->first);
+ for (ServiceListConstIterator service_it = session_it->second.begin(),
+ end = session_it->second.end(); service_it != end; ++service_it) {
+
+ connection_handler_observer_->OnServiceEndedCallback(
+ session_key, static_cast<protocol_handler::ServiceType>(*service_it));
+ }
+ }
+ }
+
+ delete itr->second;
+ connection_list_.erase(itr);
+}
+
+}/* namespace connection_handler */
diff --git a/SDL_Core/src/components/connection_handler/src/device.cc b/SDL_Core/src/components/connection_handler/src/device.cc
new file mode 100644
index 000000000..35c9acbaa
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/src/device.cc
@@ -0,0 +1,69 @@
+/**
+ * \file Device.cpp
+ * \brief Device class implementation.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "connection_handler/device.h"
+
+/**
+ * \namespace connection_handler
+ * \brief SmartDeviceLink ConnectionHandler namespace.
+ */
+namespace connection_handler {
+
+log4cxx::LoggerPtr Device::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("ConnectionHandler"));
+
+Device::Device(DeviceHandle device_handle,
+ const std::string& user_friendly_name,
+ const std::string& mac_address)
+ : device_handle_(device_handle),
+ user_friendly_name_(user_friendly_name),
+ mac_address_(mac_address) {
+}
+
+Device::~Device() {
+}
+
+DeviceHandle Device::device_handle() const {
+ return device_handle_;
+}
+
+std::string Device::user_friendly_name() const {
+ return user_friendly_name_;
+}
+
+std::string Device::mac_address() const {
+ return mac_address_;
+}
+}/* namespace connection_handler */
diff --git a/SDL_Core/src/components/connection_handler/src/heartbeat_monitor.cc b/SDL_Core/src/components/connection_handler/src/heartbeat_monitor.cc
new file mode 100644
index 000000000..7058ad0f8
--- /dev/null
+++ b/SDL_Core/src/components/connection_handler/src/heartbeat_monitor.cc
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "connection_handler/heartbeat_monitor.h"
+#include "connection_handler/connection.h"
+#include "log4cxx/logger.h"
+
+namespace connection_handler {
+
+namespace {
+log4cxx::LoggerPtr g_logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("ConnectionHandler"));
+}
+
+HeartBeatMonitor::HeartBeatMonitor(int32_t heartbeat_timeout_seconds,
+ Connection* connection)
+ : heartbeat_timeout_seconds_(heartbeat_timeout_seconds),
+ connection_(connection),
+ timer_(this, &HeartBeatMonitor::TimeOut) {
+}
+
+HeartBeatMonitor::~HeartBeatMonitor() {
+ AssertRunningOnCreationThread();
+}
+
+void HeartBeatMonitor::BeginMonitoring() {
+ AssertRunningOnCreationThread();
+ if (heartbeat_timeout_seconds_ != 0) {
+ LOG4CXX_INFO(g_logger, "Heart beat monitor: monitoring connection "
+ << connection_->connection_handle() << ", timeout "
+ << heartbeat_timeout_seconds_ << " seconds");
+ timer_.start(heartbeat_timeout_seconds_);
+ } else {
+ LOG4CXX_INFO(g_logger, "Heart beat monitor: disabled");
+ }
+}
+
+void HeartBeatMonitor::TimeOut() {
+ LOG4CXX_INFO(g_logger, "Heart beat monitor: connection "
+ << connection_->connection_handle() << " timed out, closing");
+ connection_->Close();
+}
+
+void HeartBeatMonitor::KeepAlive() {
+ AssertRunningOnCreationThread();
+ if (heartbeat_timeout_seconds_ != 0) {
+ LOG4CXX_INFO(
+ g_logger,
+ "Resetting heart beat timer for connection "
+ << connection_->connection_handle());
+ timer_.stop();
+ timer_.start(heartbeat_timeout_seconds_);
+ }
+}
+
+
+} // namespace connection_handler
diff --git a/SDL_Core/src/components/dbus/CMakeLists.txt b/SDL_Core/src/components/dbus/CMakeLists.txt
new file mode 100644
index 000000000..9b2f8be72
--- /dev/null
+++ b/SDL_Core/src/components/dbus/CMakeLists.txt
@@ -0,0 +1,42 @@
+find_package(DBus)
+include_directories (
+ ${DBUS_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_SOURCE_DIR}/src/components/
+ ${CMAKE_BINARY_DIR}/src/components/
+ ${CMAKE_SOURCE_DIR}/src/components/formatters/include/
+ ${CMAKE_SOURCE_DIR}/src/components/smart_objects/include/
+ ${CMAKE_SOURCE_DIR}/src/components/utils/include/
+)
+
+set (SOURCES
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/schema.cc
+ ${CMAKE_CURRENT_BINARY_DIR}/message_descriptions.cc
+ ${CMAKE_CURRENT_BINARY_DIR}/introspection_xml.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/dbus_message_controller.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/dbus_adapter.cc
+)
+
+set (LIBRARIES dbus-1)
+
+add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/message_descriptions.cc
+ COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/codegen/make_message_descriptions.py
+ --infile ${CMAKE_CURRENT_SOURCE_DIR}/../interfaces/QT_HMI_API.xml
+ --outdir ${CMAKE_CURRENT_BINARY_DIR}
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../interfaces/QT_HMI_API.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/codegen/make_message_descriptions.py
+)
+
+add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/introspection_xml.cc
+ COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/codegen/make_introspection_c.py
+ --infile ${CMAKE_CURRENT_SOURCE_DIR}/../interfaces/QT_HMI_API.xml
+ --outdir ${CMAKE_CURRENT_BINARY_DIR}
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../interfaces/QT_HMI_API.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/codegen/make_introspection_c.py
+)
+
+add_library("DBus" ${SOURCES})
+target_link_libraries("DBus" "${LIBRARIES}")
diff --git a/SDL_Core/src/components/dbus/codegen/code_formatter.py b/SDL_Core/src/components/dbus/codegen/code_formatter.py
new file mode 100644
index 000000000..41c2bb6b6
--- /dev/null
+++ b/SDL_Core/src/components/dbus/codegen/code_formatter.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# @file code_formatter.py
+# @brief Utility that helps to manage indents in generated code
+#
+# This file is a part of HMI D-Bus layer.
+#
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+class CodeBlock:
+ indent = 0
+ def __init__(self, out):
+ self.out = out
+ if type(out) == file:
+ self.indent = 0
+ elif type(out) == CodeBlock:
+ self.indent = out.indent
+ def __enter__(self):
+ self.indent += 1
+ return self
+ def __exit__(self, exc_type, exc_value, traceback):
+ if self.indent >= 1:
+ self.indent -= 1
+ def write(self, s):
+ self.out.write(' ' * self.indent + s)
+
+# vim: set ts=4 sw=4 et:
+
diff --git a/SDL_Core/src/components/dbus/codegen/ford_xml_parser.py b/SDL_Core/src/components/dbus/codegen/ford_xml_parser.py
new file mode 100644
index 000000000..f672f0d6d
--- /dev/null
+++ b/SDL_Core/src/components/dbus/codegen/ford_xml_parser.py
@@ -0,0 +1,211 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# @file ford_xml_parser.py
+# @brief Parser for HMI_API.xml
+#
+# This file is a part of HMI D-Bus layer.
+#
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from xml.etree import ElementTree
+from collections import OrderedDict
+
+node_name = '/com/ford/hmi'
+
+class ParamDesc:
+ pass
+
+class FordXmlParser:
+ def __init__(self, in_el_tree, interface_path=None):
+ self.interface_path = interface_path
+ self.el_tree = in_el_tree
+ self.find_enums()
+ self.find_structs()
+
+ def find_enums(self):
+ self.enums = dict()
+ for interface_el in self.el_tree.findall('interface'):
+ interface_name = interface_el.get('name')
+ for enum_el in interface_el.findall('enum'):
+ enum_name = enum_el.get('name')
+ self.enums[(interface_name,enum_name)] = enum_el
+
+
+ def make_param_desc(self, param_el, iface=None):
+ param_desc = ParamDesc()
+ param_desc.name = param_el.get('name')
+ param_desc.type = param_el.get('type')
+ param_desc.enum = False
+ param_desc.struct = False
+ param_desc.fulltype = param_desc.type
+ if param_el.get('mandatory') == 'false':
+ param_desc.mandatory = False
+ else:
+ param_desc.mandatory = True
+ if param_el.get('array') == 'true':
+ param_desc.array = True
+ else:
+ param_desc.array = False
+ param_desc.minValue = param_el.get('minvalue') if param_el.get('minvalue') else 0
+ param_desc.maxValue = param_el.get('maxvalue')
+ param_desc.minLength = param_el.get('minlength') if param_el.get('minlength') else 0
+ param_desc.maxLength = param_el.get('maxlength')
+ param_desc.minSize = param_el.get('minsize')
+ param_desc.maxSize = param_el.get('maxsize')
+
+ param_desc.restricted = param_desc.minValue != None or \
+ param_desc.maxValue != None or \
+ param_desc.minLength > 0 or \
+ param_desc.maxLength > 0
+ param_desc.restrictedArray = param_desc.array and (param_desc.minSize > 0 or param_desc.maxSize > 0)
+ if iface is None:
+ return param_desc
+ if param_desc.type not in ['Integer', 'String', 'Boolean', 'Float']:
+ param_type = param_desc.type.split('.')
+ if len(param_type) > 1:
+ param_type = (param_type[0], param_type[1])
+ else:
+ param_type = (iface, param_type[0])
+ param_desc.fulltype = param_type
+ if param_type in self.enums: param_desc.enum = True
+ elif param_type in self.structs: param_desc.struct = True
+ return param_desc
+
+
+ def find_structs(self):
+ self.structs = OrderedDict()
+ for interface_el in self.el_tree.findall('interface'):
+ interface_name = interface_el.get('name')
+ for struct_el in interface_el.findall('struct'):
+ struct_name = struct_el.get('name')
+ self.structs[(interface_name, struct_name)] = []
+
+ for interface_el in self.el_tree.findall('interface'):
+ interface_name = interface_el.get('name')
+ for struct_el in interface_el.findall('struct'):
+ struct_name = struct_el.get('name')
+ for param_el in struct_el.findall('param'):
+ param_desc = self.make_param_desc(param_el, interface_name)
+ self.structs[(interface_name, struct_name)].append(param_desc)
+
+
+ def convert_struct_to_dbus(self, param_type):
+ ret = '('
+ struct = self.structs[param_type]
+ for param in struct:
+ ret = ret + self.convert_to_dbus_type(param)
+ ret = ret + ')'
+ return ret
+
+
+ def convert_to_dbus_type(self, param):
+ if param.type == 'Integer': restype = 'i'
+ elif param.type == 'String': restype = 's'
+ elif param.type == 'Boolean': restype = 'b'
+ elif param.type == 'Float': restype = 'd' # D-Bus double
+ elif param.enum: restype = 'i' # D-Bus 32-bit signed int
+ elif param.struct: restype = self.convert_struct_to_dbus(param.fulltype)
+ else: raise RuntimeError('Unknown type: ' + param.type)
+ if param.array: restype = 'a' + restype
+ if not param.mandatory: restype = '(b' + restype + ')'
+ return restype
+
+
+ def find_notifications(self, interface_el):
+ notifications = list()
+ for function_el in interface_el.findall('function[@messagetype="notification"]'):
+ notifications.append(function_el)
+ return notifications
+
+
+ def find_request_response_pairs(self, interface_el):
+ result = list()
+ request_els = interface_el.findall('function[@messagetype="request"]')
+ response_els = interface_el.findall('function[@messagetype="response"]')
+ for request_el in request_els:
+ name = request_el.get('name')
+ response_el = next(r for r in response_els if r.get('name') == name)
+ result.append((request_el, response_el))
+ return result
+
+
+ def convert_to_signal(self, notification_el, interface):
+ result = ElementTree.Element('signal')
+ result.set('name', notification_el.get('name'))
+ for param_el in notification_el.findall('param'):
+ self.create_arg_element(result, param_el, interface)
+ return result
+
+
+ def convert_to_method(self, (request_el, response_el), interface):
+ result = ElementTree.Element('method')
+ result.set('name', request_el.get('name'))
+ for param_el in request_el.findall('param'):
+ arg_el = self.create_arg_element(result, param_el, interface)
+ arg_el.set('direction', 'in')
+
+ arg_el = ElementTree.SubElement(result, 'arg')
+ arg_el.set('name', 'retCode')
+ arg_el.set('type', 'i')
+ arg_el.set('direction', 'out')
+
+ for param_el in response_el.findall('param'):
+ arg_el = self.create_arg_element(result, param_el, interface)
+ arg_el.set('direction', 'out')
+ return result
+
+
+ def create_arg_element(self, parent, param_el, interface):
+ arg_el = ElementTree.SubElement(parent, 'arg')
+ arg_el.set('name', param_el.get('name'))
+ arg_el.set('type', self.convert_to_dbus_type(self.make_param_desc(param_el, interface)))
+ return arg_el
+
+
+ def create_introspection_iface_el(self, interface_el):
+ interface = interface_el.get('name')
+ interface_name = self.interface_path + '.' + interface
+
+ notifications = self.find_notifications(interface_el)
+ signals = [self.convert_to_signal(n, interface) for n in notifications]
+
+ request_responses = self.find_request_response_pairs(interface_el)
+ methods = [self.convert_to_method(r, interface) for r in request_responses]
+
+ if signals or methods:
+ el = ElementTree.Element('interface', attrib={'name':interface_name})
+ for m in methods: el.append(m)
+ for s in signals: el.append(s)
+ return el
+
+
+
diff --git a/SDL_Core/src/components/dbus/codegen/make_introspection_c.py b/SDL_Core/src/components/dbus/codegen/make_introspection_c.py
new file mode 100755
index 000000000..2a195d8d6
--- /dev/null
+++ b/SDL_Core/src/components/dbus/codegen/make_introspection_c.py
@@ -0,0 +1,126 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# @file make_introspection_c.py
+# @brief Converts introspection.xml to C-string
+#
+# This file is a part of HMI D-Bus layer.
+#
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from argparse import ArgumentParser
+from ford_xml_parser import FordXmlParser
+from ford_xml_parser import node_name
+from xml.etree import ElementTree
+from os import path
+from sys import argv
+
+class Impl(FordXmlParser):
+ def convert_to_introspection(self, out_el_tree):
+ for interface_el in self.el_tree.findall('interface'):
+ el = self.create_introspection_iface_el(interface_el)
+ if el is not None:
+ out_el_tree.append(el)
+
+arg_parser = ArgumentParser(description='Converts introspection.xml to C-string')
+arg_parser.add_argument('--infile', required=True, help="Full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml")
+arg_parser.add_argument('--outdir', required=True, help="Path to directory where output file introspection_xml.cc will be saved")
+args = arg_parser.parse_args()
+
+if not path.isdir(args.outdir):
+ makedirs(args.outdir)
+
+out_file = open(args.outdir + '/' + 'introspection_xml.cc', "w")
+
+in_tree = ElementTree.parse(args.infile)
+in_tree_root = in_tree.getroot()
+out_tree_root = ElementTree.Element('node', attrib={'name':node_name})
+
+impl = Impl(in_tree_root, 'com.ford.hmi.sdl')
+impl.convert_to_introspection(out_tree_root)
+
+introspection_string = '<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">'
+introspection_string += "\n"
+introspection_string += ElementTree.tostring(out_tree_root)
+
+out_file.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0])
+out_file.write("""/**
+ * @file instrospections_xml.cc
+ * @brief D-Bus introspection XML as C-string
+ *
+ * This file is a part of HMI D-Bus layer.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+""")
+
+out_file.write("char introspection_xml[] = {")
+
+cnt = 0
+for char in introspection_string:
+ if cnt % 12 == 0:
+ out_file.write("\n ")
+ else:
+ out_file.write(" ")
+ out_file.write("0x%02x," % ord(char))
+ cnt = cnt + 1
+
+out_file.write(" 0x00\n")
+out_file.write("};")
+
diff --git a/SDL_Core/src/components/dbus/codegen/make_message_descriptions.py b/SDL_Core/src/components/dbus/codegen/make_message_descriptions.py
new file mode 100755
index 000000000..007966639
--- /dev/null
+++ b/SDL_Core/src/components/dbus/codegen/make_message_descriptions.py
@@ -0,0 +1,273 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# @file make_message_descriptions.py
+# @brief Generates HMI API message descriptions for D-Bus
+#
+# This file is a part of HMI D-Bus layer.
+#
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from argparse import ArgumentParser
+from xml.etree import ElementTree
+from copy import copy
+from ford_xml_parser import FordXmlParser
+from os import path
+from sys import argv
+
+namespace_name = 'ford_message_descriptions'
+namespace = namespace_name + '::'
+
+
+class Impl(FordXmlParser):
+ def write_param_definition(self, param_var_name, param, out):
+ if param.array:
+ tmp_param = copy(param)
+ tmp_param.array = False
+ tmp_param.mandatory = True
+ dbus_sig = self.convert_to_dbus_type(tmp_param)
+ self.write_param_definition(param_var_name + '_array', tmp_param, out)
+
+ if param.array: out.write('const ' + namespace + 'ArrayDescription ')
+ elif param.struct: out.write('const ' + namespace + 'StructDescription ')
+ else: out.write('const ' + namespace + 'ParameterDescription ')
+
+ out.write(param_var_name + " = {\n")
+
+ if param.struct or param.array:
+ out.write(" {\n")
+ shift = ' ' * 4
+ else:
+ shift = ' ' * 2
+
+ out.write(shift + "\"" + param.name + "\",\n")
+
+ if param.array:
+ out.write(shift + namespace + "Array,\n")
+ elif param.struct:
+ out.write(shift + namespace + "Struct,\n")
+ elif param.enum:
+ out.write(shift + namespace + "Enum,\n")
+ else:
+ out.write(shift + namespace + param.type + ",\n")
+
+ if param.mandatory:
+ out.write(shift + "true\n")
+ else:
+ out.write(shift + "false\n")
+
+ if param.struct or param.array:
+ out.write(" },\n")
+ if param.array:
+ out.write(" (const " + namespace + "ParameterDescription*)&" + param_var_name + "_array,\n")
+ out.write(" \"" + dbus_sig + "\"\n")
+ elif param.struct:
+ out.write(" Structs::" + param.fulltype[0] + "__" + param.fulltype[1] + "__parameters\n")
+ out.write("};\n")
+
+
+ def write_struct_params_declarations(self, out):
+ out.write("struct Structs {\n");
+ for (interface, name), params in self.structs.iteritems():
+ params_var_name = interface + '__' + name + '__parameters'
+ out.write(" static const " + namespace + "ParameterDescription* " + params_var_name + "[];\n")
+ out.write("};\n\n")
+
+
+ def write_enum_entries_declarations(self, out):
+ out.write("struct Enums {\n");
+ for interface, name in self.enums:
+ entries_var_name = interface + '__' + name + '__entries'
+ out.write(" static const " + namespace + "EnumDescription::Entry* " + entries_var_name + "[];\n")
+ out.write("};\n\n")
+
+
+ def write_parameters(self, params, out, name):
+ n = 1
+ for param in params:
+ param_var_name = name + str(n)
+ n = n + 1
+ self.write_param_definition(param_var_name, param, out)
+
+
+ def write_struct_params_definitions(self, out):
+ for (interface, name), params in self.structs.iteritems():
+ param_var_name = interface + '__' + name + '__parameter'
+ self.write_parameters(params, out, param_var_name)
+ params_var_name = 'Structs::' + interface + '__' + name + '__parameters'
+ out.write("const " + namespace + "ParameterDescription* " + params_var_name + "[] = {\n")
+ for n in range(1, len(params) + 1):
+ name = param_var_name + str(n)
+ out.write(" (const " + namespace + "ParameterDescription*)&" + name + ",\n")
+ out.write( " NULL };\n\n")
+
+
+ def write_enum_entries_definitions(self, out):
+ for (interface, name), enum_el in self.enums.iteritems():
+ n = 1
+ for element_el in enum_el.findall('element'):
+ entry_var_name = interface + '__' + name + '__entry' + str(n)
+ value = element_el.get("value")
+ if value is None:
+ value = str(n)
+ out.write(namespace + "EnumDescription::Entry " + entry_var_name + " = {\"" + element_el.get("name") + "\", " + value + "};\n")
+ n = n + 1
+
+ entries_var_name = "Enums::" + interface + '__' + name + '__entries'
+ out.write("const " + namespace + "EnumDescription::Entry* " + entries_var_name + "[] = {\n")
+ for n in range(1, len(enum_el.findall('element')) + 1):
+ entry_var_name = interface + '__' + name + '__entry' + str(n)
+ out.write(" &" + entry_var_name + ",\n")
+ out.write(" NULL };\n\n")
+
+
+ def write_message_definition(self, message_el, interface, out):
+ name = message_el.get('name')
+ messagetype = message_el.get('messagetype')
+ params = list()
+ for param_el in message_el.findall('param'):
+ param_desc = self.make_param_desc(param_el, interface)
+ params.append(param_desc)
+ param_var_name = interface + '__' + name + '__' + messagetype + '__parameter'
+ self.write_parameters(params, out, param_var_name)
+
+ params_var_name = param_var_name + 's'
+ out.write("const " + namespace + "ParameterDescription* " + params_var_name + "[] = {\n")
+ for n in range(1, len(params) + 1):
+ param_name = param_var_name + str(n)
+ out.write(" (const " + namespace + "ParameterDescription*)&" + param_name + ",\n")
+ out.write(" NULL };\n")
+
+ message_desc_name = interface + '__' + name + '__' + messagetype
+ out.write("const " + namespace + "MessageDescription " + message_desc_name + " = {\n")
+ out.write(" \"" + interface + "\",\n")
+ out.write(" \"" + name + "\",\n")
+ out.write(" hmi_apis::messageType::" + messagetype + ",\n")
+ out.write(" hmi_apis::FunctionID::" + interface + "_" + name + ",\n")
+ out.write(" " + params_var_name + "\n")
+ out.write("};\n\n")
+
+
+ def write_message_definitions(self, out):
+ for interface_el in self.el_tree.findall('interface'):
+ interface = interface_el.get('name')
+ message_els = interface_el.findall('function')
+ for message_el in message_els:
+ self.write_message_definition(message_el, interface, out)
+
+
+ def make_message_descriptions(self, out):
+ self.write_struct_params_declarations(out)
+ #self.write_enum_entries_declarations(out)
+ self.write_struct_params_definitions(out)
+ #self.write_enum_entries_definitions(out)
+ self.write_message_definitions(out)
+
+
+ def make_message_array(self, out):
+ out.write("const MessageDescription* message_descriptions[] = {\n")
+ for interface_el in self.el_tree.findall('interface'):
+ interface = interface_el.get('name')
+ message_els = interface_el.findall('function')
+ for message_el in message_els:
+ name = message_el.get('name')
+ messagetype = message_el.get('messagetype')
+ message_desc_name = interface + '__' + name + '__' + messagetype
+ out.write(" &" + message_desc_name + ",\n")
+ out.write(" NULL\n")
+ out.write("};\n")
+
+
+arg_parser = ArgumentParser(description="Generates HMI API message descriptions for D-Bus on SDL core side")
+arg_parser.add_argument('--infile', required=True, help="full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml")
+arg_parser.add_argument('--outdir', required=True, help="path to directory where output file message_descriptions.cc will be saved")
+args = arg_parser.parse_args()
+
+if not path.isdir(args.outdir):
+ makedirs(args.outdir)
+
+outfile = 'message_descriptions.cc'
+
+in_tree = ElementTree.parse(args.infile)
+in_tree_root = in_tree.getroot()
+
+impl = Impl(in_tree_root)
+
+out = open(args.outdir + "/" + outfile, "w")
+
+out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0])
+out.write("""/**
+ * @file message_descriptions.cc
+ * @brief Generated HMI API message descriptions for D-Bus
+ *
+ * This file is a part of HMI D-Bus layer.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+""")
+
+out.write("#include \"dbus/message_descriptions.h\"\n\n");
+out.write("namespace {\n\n");
+impl.make_message_descriptions(out)
+out.write("}\n\n");
+
+out.write("namespace " + namespace_name + " {\n\n");
+impl.make_message_array(out)
+out.write("}\n\n");
+
diff --git a/SDL_Core/src/components/dbus/codegen/make_qml_dbus_cpp.py b/SDL_Core/src/components/dbus/codegen/make_qml_dbus_cpp.py
new file mode 100755
index 000000000..910781342
--- /dev/null
+++ b/SDL_Core/src/components/dbus/codegen/make_qml_dbus_cpp.py
@@ -0,0 +1,734 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# @file make_qml_dbus_cpp.py
+# @brief Generator of QML to QDbus C++ part
+#
+# This file is a part of HMI D-Bus layer.
+#
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from argparse import ArgumentParser
+import os.path
+from sys import argv
+from xml.etree import ElementTree
+from copy import copy
+from ford_xml_parser import FordXmlParser, ParamDesc
+from code_formatter import CodeBlock
+
+prefix_class_item = 'Declarative'
+invoke_type_connection = 'Direct'
+
+def defaultValue(param):
+ if param.type == "Integer":
+ return "0"
+ elif param.type == "Float":
+ return "0.0"
+ elif param.type == "Boolean":
+ return "false"
+ elif param.enum:
+ return "0"
+
+class Impl(FordXmlParser):
+ def make_dbus_type_declarations(self, out):
+ for struct in self.structs.items():
+ self.write_struct_declaration(struct, out)
+
+ def make_dbus_metatype_declarations(self, out):
+ for struct in self.structs.items():
+ self.write_struct_metatype_declaration(struct, out)
+
+
+ def write_struct_declaration(self, ((iface, name), params), out):
+ struct_name = "{0}_{1}".format(iface, name)
+ out.write("struct {0} {{\n".format(struct_name))
+ with CodeBlock(out) as out:
+ for param in params:
+ out.write("{0} {1};\n".format(self.qt_param_type(param), param.name))
+ out.write("{0}()\n".format(struct_name))
+ initializersList = map(lambda x: "{0}({1})".format(x.name, defaultValue(x)), [p for p in params if p.type != "String" and not p.struct and not p.array])
+ if initializersList:
+ out.write(": " + ",\n ".join(initializersList))
+
+ out.write("{ }\n")
+
+ out.write("};\n")
+ out.write('QDBusArgument& operator << (QDBusArgument&, const ' + struct_name + "&);\n")
+ out.write('const QDBusArgument& operator >> (const QDBusArgument&, ' + struct_name + "&);\n")
+ out.write('void PutArgToMap(QVariantMap& map, const char* name, const ' + struct_name + "& v);\n")
+ out.write('QVariant ValueToVariant(' + struct_name + "& v);\n")
+ out.write('QVariant ValueToVariant(QList<' + struct_name + " >& v);\n")
+ out.write('bool GetArgFromMap(const QVariantMap& map, const char* name, ' + struct_name + "& v);\n")
+ out.write('bool VariantToValue(const QVariant& variant, ' + struct_name + "& v);\n")
+ out.write('bool VariantToValue(const QVariant& variant, QList<' + struct_name + " >& v);\n")
+
+
+ def write_struct_metatype_declaration(self, ((iface, name), params), out):
+ struct_name = iface + '_' + name
+ out.write('Q_DECLARE_METATYPE(' + struct_name + ")\n")
+ out.write('Q_DECLARE_METATYPE(OptionalArgument<' + struct_name + ">)\n")
+ out.write('Q_DECLARE_METATYPE(QList<' + struct_name + ">)\n")
+ out.write('Q_DECLARE_METATYPE(OptionalArgument<QList<' + struct_name + "> >)\n\n")
+
+
+ def make_dbus_type_definitions(self, out):
+ for struct in self.structs.items():
+ self.write_struct_definition(struct, out)
+
+ def write_struct_definition(self, ((iface, name), params), out):
+ struct_name = iface + '_' + name
+
+ out.write('QDBusArgument& operator << (QDBusArgument& arg, const ' + struct_name + "& v) {\n")
+ with CodeBlock(out) as out:
+ out.write("arg.beginStructure();\n")
+ for param in params:
+ out.write("arg << v.{0};\n".format(param.name))
+ out.write("arg.endStructure();\n")
+ out.write("return arg;\n")
+ out.write("}\n\n")
+
+ out.write('const QDBusArgument& operator >> (const QDBusArgument& arg, ' + struct_name + "& v) {\n")
+ with CodeBlock(out) as out:
+ out.write("arg.beginStructure();\n")
+ for param in params:
+ out.write("arg >> v.{0};\n".format(param.name))
+ out.write("arg.endStructure();\n")
+ out.write("return arg;\n")
+ out.write("}\n\n")
+
+ out.write('QVariant ValueToVariant(const ' + struct_name + "& v) {\n")
+ with CodeBlock(out) as out:
+ out.write("QVariantMap map;\n")
+ for param in params:
+ out.write("""PutArgToMap(map, "{0}", v.{0});\n""".format(param.name))
+ out.write("return QVariant::fromValue(map);\n")
+ out.write("}\n\n")
+
+ out.write('QVariant ValueToVariant(const QList<' + struct_name + ">& v) {\n")
+ with CodeBlock(out) as out:
+ out.write("QList<QVariant> ret;\n")
+ out.write("for (QList<{0}>::const_iterator i = v.begin(); i != v.end(); ++i)\n".format(struct_name))
+ with CodeBlock(out) as out:
+ out.write("ret.append(ValueToVariant(*i));\n")
+ out.write("return QVariant::fromValue(ret);\n")
+ out.write("}\n\n")
+
+ out.write('void PutArgToMap(QVariantMap& map, const char* name, const ' + struct_name + "& v) {\n")
+ with CodeBlock(out) as out:
+ out.write("map.insert(name, ValueToVariant(v));\n")
+ out.write("}\n\n")
+
+ out.write('bool VariantToValue(const QVariant& variant, ' + struct_name + "& v) {\n")
+ with CodeBlock(out) as out:
+ out.write("if (variant.type() != QVariant::Map) {\n")
+ with CodeBlock(out) as out:
+ out.write("""LOG4CXX_ERROR(logger_, "Input argument isn't a map");\n""")
+ out.write("return false;\n")
+ out.write("}\n")
+ out.write("QVariantMap map = variant.toMap();\n")
+ for param in params:
+ out.write("if (!GetArgFromMap(map, \"" + param.name + "\", v." + param.name + ")) return false;\n")
+ out.write("return true;\n")
+ out.write("}\n\n")
+
+ out.write('bool VariantToValue(const QVariant& variant, QList<' + struct_name + ">& v) {\n")
+ with CodeBlock(out) as out:
+ out.write("if (variant.type() != QVariant::List) {\n")
+ with CodeBlock(out) as out:
+ out.write("""LOG4CXX_ERROR(logger_, "Input argument isn't a list");\n""")
+ out.write("return false;\n")
+ out.write("}\n")
+ out.write("QList<QVariant> list = variant.toList();\n")
+ out.write("for (QList<QVariant>::const_iterator i = list.begin(); i != list.end(); ++i) {\n");
+ with CodeBlock(out) as out:
+ out.write(struct_name + " s;\n");
+ out.write("if (!VariantToValue(*i, s)) return false;\n");
+ out.write("v.append(s);\n");
+ out.write("}\n")
+ out.write("return true;\n")
+ out.write("}\n\n")
+
+ out.write('bool GetArgFromMap(const QVariantMap& map, const char* name, ' + struct_name + "& v) {\n")
+ with CodeBlock(out) as out:
+ out.write("QVariantMap::const_iterator it = map.find(name);\n")
+ out.write("if (map.end() == it) {\n")
+ with CodeBlock(out) as out:
+ out.write("""LOG4CXX_WARN(logger_, "Argument '" << name << "' not found");\n""")
+ out.write("return false;\n")
+ out.write("}\n")
+ out.write("if (it->type() != QVariant::Map) {\n")
+ with CodeBlock(out) as out:
+ out.write("""LOG4CXX_ERROR(logger_, "Argument '" << name << "' isn't a map");\n""")
+ out.write("return false;\n")
+ out.write("}\n")
+ out.write("const QVariantMap& inmap = it->toMap();\n")
+ for param in params:
+ out.write("if (!GetArgFromMap(inmap, \"" + param.name + "\", v." + param.name + ")) return false;\n")
+ out.write("return true;\n")
+ out.write("}\n\n")
+
+ def write_param_validation(self, param, param_name, fail_statement, out, level=0):
+ if not param.mandatory and (param.restricted or param.restrictedArray or (param.struct and any(map(lambda x: x.restricted, self.structs[param.fulltype])))):
+ out.write("if (%s.presence) {\n" % param_name)
+ param_copy = copy(param)
+ param_copy.mandatory = True
+ with CodeBlock(out) as out:
+ self.write_param_validation(param_copy, param_name + ".val", fail_statement, out, level+1)
+ out.write("}\n")
+ elif param.array:
+ if param.minSize > 0:
+ out.write("if ({0}.count() < {1}) {{ {2}; }}\n".format(param_name, param.minSize, fail_statement))
+ if param.maxSize != None:
+ out.write("if ({0}.count() > {1}) {{ {2}; }}\n".format(param_name, param.maxSize, fail_statement))
+ if param.restricted:
+ out.write('for ({0}::const_iterator it_{2} = {1}.begin(); it_{2} != {1}.end(); ++it_{2}) {{\n'.format(self.qt_param_type(param), param_name, level))
+ with CodeBlock(out) as out:
+ param_copy = copy(param)
+ param_copy.array = False
+ self.write_param_validation(param_copy, "(*it_{0})".format(level), fail_statement, out, level+1)
+ out.write("}\n")
+ elif param.struct:
+ for p in self.structs[param.fulltype]:
+ self.write_param_validation(p, "{0}.{1}".format(param_name, p.name), fail_statement, out, level+1)
+ elif param.type == "Integer" or param.type == "Float":
+ conditions = []
+ if (param.minValue != None):
+ conditions.append("(%s < %s)" % (param_name, param.minValue))
+ if (param.maxValue != None):
+ conditions.append("(%s > %s)" % (param_name, param.maxValue))
+ if conditions:
+ out.write('if (%s) { %s; }\n' % (' || '.join(conditions), fail_statement))
+ elif param.type == "String":
+ conditions = []
+ if (param.minLength > 0):
+ conditions.append("(%s.size() < %s)" % (param_name, param.minLength))
+ if (param.maxLength > 0):
+ conditions.append("(%s.size() > %s)" % (param_name, param.maxLength))
+ if conditions:
+ out.write('if (%s) { %s; }\n' % (' || '.join(conditions), fail_statement))
+
+ def qt_param_type(self, param):
+ if not param.mandatory:
+ param_copy = copy(param)
+ param_copy.mandatory = True
+ return "OptionalArgument< " + self.qt_param_type(param_copy) + " >"
+ if param.array:
+ param_copy = copy(param)
+ param_copy.array = False
+ if param.type == 'String':
+ return "QStringList"
+ return "QList< " + self.qt_param_type(param_copy) + " >"
+ if param.type == 'Integer' or param.enum:
+ return 'int'
+ elif param.type == 'String':
+ return 'QString'
+ elif param.type == 'Boolean':
+ return 'bool'
+ elif param.type == 'Float':
+ return 'double'
+ elif param.struct:
+ return "_".join(param.fulltype)
+ return "xxx"
+
+
+ def from_variant_func_name(self, param, interface):
+ prefix = ''
+ if not param.mandatory:
+ param_copy = copy(param)
+ param_copy.mandatory = True
+ return 'opt_' + self.from_variant_func_name(param_copy, interface)
+ if param.array:
+ param_copy = copy(param)
+ param_copy.array = False
+ return 'arr_' + self.from_variant_func_name(param_copy, interface)
+
+ if param.type in ['Integer', 'String', 'Boolean', 'Float']:
+ param_type = param.type
+ else:
+ param_type = param.type.split('.')
+ if len(param_type) > 1:
+ param_type = (param_type[0], param_type[1])
+ else:
+ param_type = (interface, param_type[0])
+ if param_type in self.structs:
+ param_type = param_type[0] + '_' + param_type[1]
+ elif param_type in self.enums:
+ param_type = 'Integer'
+ return param_type + '_from_variant'
+
+
+ def make_method_signature(self, request, response, interface, add_classname):
+ in_params = [self.make_param_desc(x, interface) for x in request.findall('param')]
+ out_params = [self.make_param_desc(x, interface) for x in response.findall('param')]
+
+ signature_len = len(''.join(map(lambda x: self.convert_to_dbus_type(x), in_params + out_params)))
+ if signature_len > 255:
+ raise RuntimeError("Too long signature of {0} method. Maximum valid length is 255, actual is {1}", request.get('name'), signature_len)
+
+ return "int {0}{1} ({2}{3}const QDBusMessage& message, QString& userMessage_out{4}{5})".format(
+ interface + "Adaptor::" if add_classname else "",
+ request.get('name'),
+ ", ".join(map(lambda x: "const {0}& {1}_in".format(self.qt_param_type(x), x.name), in_params)),
+ ", " if in_params else "",
+ ", " if out_params else "",
+ ", ".join(map(lambda x: "{0}& {1}_out".format(self.qt_param_type(x), x.name), out_params)))
+
+
+ def make_signal_signature(self, signal, interface, add_void):
+ params = signal.findall('param')
+ if add_void:
+ retstr = 'void '
+ else:
+ retstr = ''
+ retstr = retstr + signal.get('name') + '('
+ params_num = len(params)
+ for i in range(0, params_num):
+ param_desc = self.make_param_desc(params[i], interface)
+ param_type = self.qt_param_type(param_desc)
+ retstr = retstr + param_type + ' ' + param_desc.name
+ if i <> params_num - 1: retstr = retstr + ", "
+ retstr = retstr + ')'
+ return retstr
+
+
+ def make_qml_signal_signature(self, signal, interface, name, short=False, add_classname=False):
+ params = signal.findall('param')
+ if short:
+ retstr = ''
+ else:
+ retstr = 'void '
+ if add_classname:
+ retstr = retstr + interface + 'Adaptor::'
+ retstr = retstr + name + '('
+ params_num = len(params)
+ for i in range(0, params_num):
+ param_desc = self.make_param_desc(params[i], interface)
+ if param_desc.struct or param_desc.array or not param_desc.mandatory: typ = 'QVariant'
+ elif param_desc.type == 'Integer' or param_desc.enum: typ = 'int'
+ elif param_desc.type == 'Boolean': typ = 'bool'
+ elif param_desc.type == 'Float': typ = 'double'
+ elif param_desc.type == 'String': typ = 'QString'
+ else: typ = 'QVariant'
+ retstr = retstr + typ
+ if not short: retstr = retstr + ' ' + param_desc.name
+ if i <> params_num - 1: retstr = retstr + ", "
+ retstr = retstr + ')'
+ return retstr
+
+
+ def write_adaptor_declaration(self, interface_el, notifications, request_responses, out):
+ global prefix_class_item
+ def glue_strings(strings):
+ ret = list()
+ curstr = ''
+ for str in strings:
+ curstr = curstr + str
+ if(str[-1] == '>'):
+ ret.append(curstr)
+ curstr = ''
+ return ret
+ ifacename = interface_el.get('name')
+ out.write("class " + ifacename + "Adaptor : public QDBusAbstractAdaptor {\n");
+ out.write(" Q_OBJECT\n");
+ out.write(" Q_CLASSINFO(\"D-Bus Interface\", \"" + self.interface_path + '.' + ifacename + "\")\n");
+ out.write(" Q_CLASSINFO(\"D-Bus Introspection\",\n");
+ introspection_el = self.create_introspection_iface_el(interface_el)
+ introspection = glue_strings(ElementTree.tostringlist(introspection_el))
+ for str in introspection:
+ str = str.replace('"', '\\"')
+ out.write('"' + str + '"' + "\n")
+ out.write(" )\n")
+ out.write(" public:\n")
+ out.write(" explicit " + ifacename + "Adaptor(QObject *parent = 0);\n")
+ out.write(" void SetApi(Q%sItem*);\n" % prefix_class_item)
+ out.write(" DBusController *dbusController;\n")
+ out.write(" public slots:\n")
+ for (request, response) in request_responses:
+ signature = self.make_method_signature(request, response, ifacename, False)
+ out.write(" " + signature + ";\n")
+ out.write(" signals:\n")
+ for n in notifications:
+ signature = self.make_signal_signature(n, ifacename, True)
+ out.write(" " + signature + ";\n")
+ out.write(" private slots:\n")
+ for n in notifications:
+ signature = self.make_qml_signal_signature(n, ifacename, n.get('name') + '_qml', False)
+ out.write(" " + signature + ";\n")
+ out.write(" private:\n")
+ out.write(" Q%sItem* api_;\n" % prefix_class_item)
+ out.write("};\n\n");
+
+ def write_adaptor_definition(self, interface_el, notifications, request_responses, out):
+ global prefix_class_item
+ iface_name = interface_el.get('name')
+ classname = iface_name + 'Adaptor'
+ out.write("{0}::{0}(QObject* parent) : QDBusAbstractAdaptor(parent) {{}}\n".format(classname))
+
+ out.write("void {0}::SetApi(Q{1}Item* api) {{\n".format(classname, prefix_class_item))
+ with CodeBlock(out) as out:
+ out.write("api_ = api;\n")
+ for n in notifications:
+ signame = n.get('name')
+ signame = signame[:1].lower() + signame[1:]
+ slotname = n.get('name') + '_qml'
+ sig_signature = self.make_qml_signal_signature(n, iface_name, signame, True)
+ slot_signature = self.make_qml_signal_signature(n, iface_name, slotname, True)
+ out.write("connect(api_, SIGNAL(" + sig_signature + "), this, SLOT(" + slot_signature + "));\n")
+ out.write("LOG4CXX_TRACE(logger_, \"CONNECT SIGNALS: \" << __PRETTY_FUNCTION__ );\n")
+ out.write("}\n\n")
+
+ for (request,response) in request_responses:
+ in_params = [ self.make_param_desc(x, iface_name) for x in request.findall('param') ]
+ out_params = [ self.make_param_desc(x, iface_name) for x in response.findall('param') ]
+
+ out.write("bool fill{0}{1}Reply(QDBusMessage& message, const QVariantMap& map) {{\n".format(classname, request.get('name')))
+ with CodeBlock(out) as out:
+ out.write("int retCode_out = 0;\n")
+ out.write("GetArgFromMap(map, \"__retCode\", retCode_out);\n")
+ out.write("QVariant retCode_arg = QVariant::fromValue(retCode_out);\n")
+ out.write("message << retCode_arg;\n")
+ out.write("QString userMessage_out;\n")
+ out.write("GetArgFromMap(map, \"__message\", userMessage_out);\n")
+ out.write("QVariant userMessage_arg = QVariant::fromValue(userMessage_out);\n")
+ out.write("message << userMessage_arg;\n")
+ for p in out_params:
+ param_name = p.name
+ param_type = self.qt_param_type(p)
+ out.write("%s %s_out;\n" % (param_type, p.name))
+ out.write("if (!GetArgFromMap(map, \"{0}\", {0}_out)) {{ return false; }}\n".format(p.name))
+ self.write_param_validation(p, p.name + "_out", "return false", out)
+ out.write("QVariant {0}_arg;\n".format(p.name))
+ out.write("{0}_arg.setValue({0}_out);\n".format(p.name))
+ out.write("message << {0}_arg;\n".format(p.name))
+ out.write("LOG4CXX_DEBUG(logger_, \"Output arguments:\\n\" << QVariant(map));\n")
+ out.write("LOG4CXX_TRACE(logger_, \"REPLY ASYNC: \" << __PRETTY_FUNCTION__ );\n")
+ out.write("return true;\n")
+ out.write("}\n\n")
+
+ out.write("{0} {{\n".format(self.make_method_signature(request, response, iface_name, True)))
+ with CodeBlock(out) as out:
+ out.write("LOG4CXX_TRACE(logger_, \"ENTER: \" << __PRETTY_FUNCTION__ );\n")
+ out.write("int ret = 0;\n")
+ return_statement = "return ret;\n"
+ out.write("QVariantMap in_arg;\n");
+ out.write("QVariant out_arg_v;\n");
+ for param in in_params:
+ self.write_param_validation(param, param.name + "_in", "RaiseDbusError(this, InvalidData); return ret", out)
+ out.write("PutArgToMap(in_arg, \"" + param.name + "\", " + param.name + "_in);\n")
+ out.write("LOG4CXX_DEBUG(logger_, \"Input arguments:\\n\" << in_arg);\n")
+ method_name = request.get('name')[:1].lower() + request.get('name')[1:]
+
+ out.write("dbusController->message = &message;\n")
+ out.write("dbusController->fill = &fill{0}{1}Reply;\n".format(classname, request.get("name")))
+
+ out.write("""if (!QMetaObject::invokeMethod(api_, "{0}", Qt::{1}Connection, Q_RETURN_ARG(QVariant, out_arg_v), Q_ARG(QVariant, QVariant(in_arg)))) {{\n""".format(method_name, invoke_type_connection))
+ with CodeBlock(out) as out:
+ out.write("RaiseDbusError(this, InvalidData);\n")
+ out.write("LOG4CXX_ERROR(logger_, \"Can't invoke method " + method_name +"\");\n ")
+ out.write("return ret;\n")
+ out.write("}\n")
+
+ out.write("dbusController->message = NULL;\n")
+ out.write("dbusController->fill = NULL;\n")
+ out.write("if (message.isDelayedReply()) {\n")
+ with CodeBlock(out) as out:
+ out.write("return ret;\n")
+ out.write("}\n")
+
+ out.write("QVariantMap out_arg;\n")
+ out.write("if (out_arg_v.type() == QVariant::Map) {\n")
+ with CodeBlock(out) as out:
+ out.write("out_arg = out_arg_v.toMap();\n")
+ out.write("};\n")
+
+ out.write("int err;\n")
+ out.write("""if (GetArgFromMap(out_arg, "__errno", err)) { RaiseDbusError(this, err); return ret; }\n""")
+
+ out.write("int async_uid;\n")
+ out.write("if (GetArgFromMap(out_arg, \"__async_uid\", async_uid)) {\n")
+ with CodeBlock(out) as out:
+ out.write("message.setDelayedReply(true);\n")
+ out.write("dbusController->addMessage(message, &fill%s%sReply, async_uid);\n" % (classname, request.get('name')))
+ out.write("LOG4CXX_TRACE(logger_, \"EXIT ASYNC: \" << __PRETTY_FUNCTION__ );\n")
+ out.write("return ret;\n");
+ out.write("}\n\n")
+
+ for param in out_params:
+ out.write("if (!GetArgFromMap(out_arg, \"{0}\", {0}_out)) {{ RaiseDbusError(this, InvalidData); return ret; }}\n".format(param.name))
+ self.write_param_validation(param, param.name + "_out", "RaiseDbusError(this, InvalidData); return ret", out)
+
+ out.write("GetArgFromMap(out_arg, \"__retCode\", ret);\n")
+ out.write("GetArgFromMap(out_arg, \"__message\", userMessage_out);\n")
+ out.write("LOG4CXX_DEBUG(logger_, \"Output arguments:\\n\" << QVariant(out_arg));\n")
+ out.write("LOG4CXX_TRACE(logger_, \"EXIT: \" << __PRETTY_FUNCTION__ );\n")
+ out.write("return ret;\n")
+ out.write("}\n\n")
+
+ for n in notifications:
+ slotname = n.get('name') + '_qml'
+ slot_signature = self.make_qml_signal_signature(n, iface_name, slotname, False, True)
+ out.write(slot_signature + " {\n")
+ params = n.findall('param')
+ out.write(" LOG4CXX_TRACE(logger_, \"EMIT SIGNAL: \" << __PRETTY_FUNCTION__ );\n")
+ out.write(" LOG4CXX_DEBUG(logger_, \"Arguments:\\n{\"")
+ for p in params[0:-1]:
+ param = self.make_param_desc(p, iface_name)
+ out.write(" << \" " + param.name + ":\" << " + param.name + " << \",\"")
+ for p in params[-1:]: # last param without comma in end line
+ p = params[-1]
+ param = self.make_param_desc(p, iface_name)
+ out.write(" << \" " + param.name + ":\" << " + param.name)
+ out.write(" << \" }\");\n")
+ for p in params:
+ param = self.make_param_desc(p, iface_name)
+ param_type = self.qt_param_type(param)
+ param_name = 'p_' + param.name
+ if param.mandatory:
+ if param.array or (param.type not in ['Integer', 'String', 'Float', 'Boolean'] and not param.enum):
+ out.write(' ' + param_type + ' ' + param_name + ";\n")
+ out.write(' if (!VariantToValue(' + param.name + ', ' + param_name + ")) {\n")
+ out.write(" LOG4CXX_ERROR(logger_, \"Can't convert variant to value\");\n")
+ out.write(" return;}\n")
+ else:
+ out.write(' ' + param_type + ' ' + param_name + ";\n")
+ out.write(' ' + param_name + '.presence = !' + param.name + ".isNull();\n")
+ out.write(' if (' + param_name + ".presence) {\n")
+ out.write(' if (!VariantToValue(' + param.name + ', ' + param_name + ".val)) {\n")
+ out.write(" LOG4CXX_ERROR(logger_, \"Can't convert variant to value\");\n")
+ out.write(" return;\n }\n")
+ out.write(" }\n")
+ out.write(' emit ' + n.get('name') + '(')
+ for i in range(len(params)):
+ param = self.make_param_desc(params[i], iface_name)
+ basic_type = (param.type in ['Integer', 'String', 'Float', 'Boolean']) or param.enum
+ if param.array or (not param.mandatory) or (not basic_type):
+ param_name = 'p_' + param.name
+ else:
+ param_name = param.name
+ out.write(param_name)
+ if i != len(params) - 1: out.write(', ')
+ out.write(");\n")
+ out.write("}\n\n")
+
+
+ def make_dbus_adaptor_declarations(self, out):
+ for interface_el in self.el_tree.findall('interface'):
+ notifications = self.find_notifications(interface_el)
+ request_responses = self.find_request_response_pairs(interface_el)
+ if len(notifications) > 0 or len(request_responses) > 0:
+ self.write_adaptor_declaration(interface_el, notifications, request_responses, out)
+
+
+ def make_dbus_adaptor_definitions(self, out):
+ for interface_el in self.el_tree.findall('interface'):
+ notifications = self.find_notifications(interface_el)
+ request_responses = self.find_request_response_pairs(interface_el)
+ if len(notifications) > 0 or len(request_responses) > 0:
+ self.write_adaptor_definition(interface_el, notifications, request_responses, out)
+
+
+ def make_dbus_register_metatypes_declaraion(self, out):
+ out.write("void RegisterDbusMetatypes();\n")
+
+
+ def make_dbus_register_metatypes_definition(self, out):
+ out.write("void RegisterDbusMetatypes() {\n")
+ for (iface, name) in self.structs:
+ struct_name = iface + '_' + name
+ out.write('qDBusRegisterMetaType<' + struct_name + ">();\n")
+ out.write('qDBusRegisterMetaType<OptionalArgument<' + struct_name + "> >();\n")
+ out.write('qDBusRegisterMetaType<QList<' + struct_name + "> >();\n")
+ out.write('qDBusRegisterMetaType<OptionalArgument<QList<' + struct_name + "> > >();\n")
+ out.write("}\n")
+
+
+ def make_api_adaptors_class(self, out):
+ global prefix_class_item
+ out.write("struct ApiAdaptors {\n")
+ interfaces = self.el_tree.findall('interface')
+ def filt(iface):
+ return self.find_notifications(iface) or self.find_request_response_pairs(iface)
+ interfaces = filter(filt, interfaces)
+ for interface_el in interfaces:
+ name = interface_el.get('name') + 'Adaptor'
+ out.write(" " + name + "* " + name + "_;\n")
+ out.write(" ApiAdaptors() :\n")
+ for i in range(len(interfaces)):
+ name = interfaces[i].get('name') + 'Adaptor'
+ out.write(" " + name + "_(NULL)")
+ if i <> len(interfaces) - 1: out.write(',')
+ out.write("\n")
+ out.write(" {}\n")
+ out.write(" void Init(QObject* p) {\n")
+ for interface_el in interfaces:
+ name = interface_el.get('name') + 'Adaptor'
+ out.write(" " + name + "_ = new " + name + "(p);\n")
+ out.write(" }\n")
+ out.write(" void SetApi(QObject* p) {\n")
+ for interface_el in interfaces:
+ name = interface_el.get('name') + 'Adaptor'
+ chname = interface_el.get('name')
+ out.write(" " + name + ("_->SetApi(p->findChild<Q%sItem*>(\"" % prefix_class_item) + chname + "\"));\n")
+ out.write(" }\n")
+ out.write(" void SetDBusController(DBusController* dc) {\n")
+ for interface_el in interfaces:
+ name = interface_el.get('name') + 'Adaptor'
+ chname = interface_el.get('name')
+ out.write(" " + name + "_->dbusController = dc;\n")
+ out.write(" }\n")
+ out.write("};\n\n")
+
+
+
+arg_parser = ArgumentParser(description="Generator of Qt to QDbus C++ part")
+arg_parser.add_argument('--infile', required=True, help="full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml")
+arg_parser.add_argument('--version', required=False, help="Qt version 4.8.5 (default) or 5.1.0")
+arg_parser.add_argument('--outdir', required=True, help="path to directory where output files qml_dbus.cc, qml_dbus.h will be saved")
+args = arg_parser.parse_args()
+
+if args.version == "4.8.5":
+ prefix_class_item = 'Declarative'
+ invoke_type_connection = 'Direct'
+elif args.version == "5.1.0":
+ prefix_class_item = 'Quick'
+ invoke_type_connection = 'BlockingQueued'
+
+header_name = 'qml_dbus.h'
+source_name = 'qml_dbus.cc'
+
+in_tree = ElementTree.parse(args.infile)
+in_tree_root = in_tree.getroot()
+
+impl = Impl(in_tree_root, 'com.ford.sdl.hmi')
+
+header_out = open(args.outdir + '/' + header_name, "w")
+source_out = open(args.outdir + '/' + source_name, "w")
+
+header_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0])
+header_out.write("""/**
+ * @file qml_dbus.h
+ * @brief Generated QDbus adaptors header file
+ *
+ * This file is a part of HMI D-Bus layer.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+""")
+header_out.write("#ifndef SRC_COMPONENTS_DBUS_QML_DBUS_H_\n");
+header_out.write("#define SRC_COMPONENTS_DBUS_QML_DBUS_H_\n\n");
+header_out.write("#include <QtDBus/QDBusArgument>\n");
+header_out.write("#include <QtDBus/QDBusMessage>\n");
+header_out.write("#include <QtDBus/QDBusConnection>\n");
+header_out.write("#include <QtDBus/QDBusAbstractAdaptor>\n");
+header_out.write("#include <QtDBus/QDBusMetaType>\n");
+header_out.write("#include <Qt%s/Q%sItem>\n" % (prefix_class_item, prefix_class_item));
+header_out.write("#include \"qml_dbus_common.h\"\n\n");
+header_out.write("#include \"dbus_controller.h\"\n\n");
+impl.make_dbus_type_declarations(header_out)
+impl.make_dbus_adaptor_declarations(header_out)
+impl.make_dbus_register_metatypes_declaraion(header_out)
+impl.make_api_adaptors_class(header_out)
+impl.make_dbus_metatype_declarations(header_out)
+header_out.write("#endif // #ifndef SRC_COMPONENTS_DBUS_QML_DBUS_H_\n");
+
+source_out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0])
+source_out.write("""/**
+ * @file qml_dbus.cc
+ * @brief Generated QDbus adaptors source file
+ *
+ * This file is a part of HMI D-Bus layer.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+""")
+source_out.write("#include \"" + header_name + "\"\n\n");
+source_out.write("#include <log4cxx/logger.h>\n")
+source_out.write("#include <log4cxx/propertyconfigurator.h>\n\n")
+source_out.write("extern log4cxx::LoggerPtr logger_;\n\n")
+impl.make_dbus_type_definitions(source_out)
+impl.make_dbus_adaptor_definitions(source_out)
+impl.make_dbus_register_metatypes_definition(source_out)
diff --git a/SDL_Core/src/components/dbus/codegen/make_qml_dbus_qml.py b/SDL_Core/src/components/dbus/codegen/make_qml_dbus_qml.py
new file mode 100755
index 000000000..1be73d14e
--- /dev/null
+++ b/SDL_Core/src/components/dbus/codegen/make_qml_dbus_qml.py
@@ -0,0 +1,217 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# @file make_qml_dbus_qml.py
+# @brief Generator of QML to QDbus QML part
+#
+# This file is a part of HMI D-Bus layer.
+#
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from os import path
+from os import makedirs
+from sys import argv
+from argparse import ArgumentParser
+from xml.etree import ElementTree
+from copy import copy
+from ford_xml_parser import FordXmlParser
+
+namespace = 'dbus_qml'
+qt_quick_version = '1.1'
+type_variant_name = 'variant'
+
+class Impl(FordXmlParser):
+ def write_function(self, ifacename, request, response, out):
+ name = request.get('name')
+ name = name[:1].lower() + name[1:]
+ out.write(" function " + name + "(params) {\n")
+ out.write(""" console.debug("{0}Proxy::{1}")\n""".format(ifacename, name))
+ out.write(" try {\n")
+ out.write(" if(\"{0}\" in sdl{1})\n".format(name, ifacename))
+ out.write(" return sdl{0}.{1}(" .format(ifacename, name))
+ params = request.findall('param')
+ for i in range(len(params)):
+ out.write('params.' + params[i].get('name'))
+ if i <> len(params) - 1:
+ out.write(', ')
+ out.write(")\n")
+ out.write(" else\n")
+ out.write(""" return { "__errno": Common.Result.UNSUPPORTED_REQUEST }\n""")
+ out.write(" } catch(err) {\n")
+ out.write(""" return { "__errno": err }\n""")
+ out.write(" }\n")
+ out.write(" }\n\n")
+
+
+ def write_signal_param(self, param, out):
+ if param.array or param.struct or not param.mandatory: typ = type_variant_name
+ elif param.type == 'Integer' or param.enum: typ = 'int'
+ elif param.type == 'String': typ = 'string'
+ elif param.type == 'Boolean': typ = 'bool'
+ elif param.type == 'Float': typ = 'double'
+ else: typ = type_variant_name
+ out.write(typ + ' ' + param.name)
+
+
+ def write_signal(self, ifacename, notification, out):
+ name = notification.get('name')
+ name = name[:1].lower() + name[1:]
+ out.write(" signal " + name + "(")
+ params = notification.findall('param')
+ for i in range(len(params)):
+ self.write_signal_param(self.make_param_desc(params[i], ifacename), out)
+ if i <> len(params) - 1:
+ out.write(', ')
+ out.write(")\n")
+ name = notification.get('name')
+ out.write(""" on{1}: console.debug("emitted {0}:{1}")\n""".format(ifacename, name))
+
+
+ def write_qml(self, iface, out):
+ global qt_quick_version
+ name = iface.get('name')
+ out.write("import QtQuick %s\n" % qt_quick_version)
+ out.write("""import "Common.js" as Common\n""")
+ out.write("import \"..\"\n\n")
+ out.write("Item {\n")
+ out.write(" " + name + " {\n")
+ out.write(" id: sdl" + name + "\n")
+ out.write(" }\n")
+
+ notifications = impl.find_notifications(interface_el)
+ request_responses = impl.find_request_response_pairs(interface_el)
+ for request, response in request_responses:
+ self.write_function(name, request, response, out)
+ for n in notifications:
+ self.write_signal(name, n, out)
+ out.write("}\n")
+
+
+ def write_js_enum(self, enum, out):
+ out.write("var " + enum.get('name') + " = {\n")
+ lastval = -1
+ elements = enum.findall('element')
+ for i in range(len(elements)):
+ element = elements[i]
+ value = element.get('value')
+ if value is None:
+ value = lastval + 1
+ else:
+ value = int(value)
+ lastval = value
+ name = element.get('internal_name')
+ if name is None:
+ name = element.get('name')
+ out.write(" " + name + ': ' + str(value))
+ if len(elements) - 1 != i: out.write(',')
+ out.write("\n")
+ out.write("}\n\n")
+
+
+def write_header(out):
+ out.write("// Warning! This file is generated by '%s'. Edit at your own risk.\n" % argv[0])
+ out.write("""/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+""")
+
+arg_parser = ArgumentParser(description="Generator of Qt to QDbus QML part")
+arg_parser.add_argument('--infile', required=True, help="full name of input file, e.g. applink/src/components/interfaces/QT_HMI_API.xml")
+arg_parser.add_argument('--version', required=False, help="Qt version 4.8.5 (default) or 5.1.0")
+arg_parser.add_argument('--outdir', required=True, help="path to directory where output files with pattern name <intarface name>Proxy.qml will be saved, e.g. BasicCommunicationProxy.qml, ButtonsProxy.qml VRProxy.qml")
+args = arg_parser.parse_args()
+
+if args.version == "4.8.5":
+ qt_quick_version = "1.1"
+ type_variant_name = "variant"
+elif args.version == "5.1.0":
+ qt_quick_version = "2.0"
+ type_variant_name = "var"
+
+if not path.isdir(args.outdir):
+ makedirs(args.outdir)
+
+in_tree = ElementTree.parse(args.infile)
+in_tree_root = in_tree.getroot()
+
+impl = Impl(in_tree_root)
+
+for interface_el in in_tree_root.findall('interface'):
+ notifications = impl.find_notifications(interface_el)
+ request_responses = impl.find_request_response_pairs(interface_el)
+ if notifications or request_responses:
+ filename = interface_el.get('name')+'Proxy.qml'
+ outfile = open(args.outdir + '/' + filename, 'w')
+ write_header(outfile)
+ impl.write_qml(interface_el, outfile)
+
+enum_files = dict()
+for (iface, name), enum in impl.enums.items():
+ if iface in enum_files:
+ outfile = enum_files[iface]
+ else:
+ filename = iface+'.js'
+ outfile = open(args.outdir + '/' + filename, 'w')
+ write_header(outfile)
+ outfile.write(".pragma library\n")
+ enum_files[iface] = outfile
+ impl.write_js_enum(enum, outfile)
+
+
diff --git a/SDL_Core/src/components/dbus/include/dbus/dbus_adapter.h b/SDL_Core/src/components/dbus/include/dbus/dbus_adapter.h
new file mode 100644
index 000000000..a704fc9a0
--- /dev/null
+++ b/SDL_Core/src/components/dbus/include/dbus/dbus_adapter.h
@@ -0,0 +1,351 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_ADAPTER_H_
+#define SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_ADAPTER_H_
+
+#include <string>
+#include "utils/logger.h"
+#include "smart_objects/smart_object.h"
+#include "dbus/schema.h"
+
+struct DBusConnection;
+struct DBusMessage;
+struct DBusMessageIter;
+
+namespace dbus {
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+/**
+ * \brief class for work with DBus
+ */
+class DBusAdapter {
+ public:
+ /**
+ * \brief constructs DBus adapter
+ * \param sdlServiceName core service name
+ * \param sdlObjectPath core object path
+ * \param hmiServiceName hmi service name
+ */
+ DBusAdapter(const std::string& sdlServiceName,
+ const std::string& sdlObjectPath,
+ const std::string& hmiServiceName,
+ const std::string& hmiObjectPath);
+
+ /**
+ * \brief destructs DBus adapter
+ */
+ virtual ~DBusAdapter();
+
+ /**
+ * \brief inits service
+ * \return true if success
+ */
+ bool Init();
+
+ /**
+ * \brief return schema messages for DBus
+ * \return schema
+ */
+ const DBusSchema& get_schema() const;
+
+ protected:
+ static log4cxx::LoggerPtr logger_;
+
+ /**
+ * \brief calls method on HMI
+ * \param id id message
+ * \param func_id id function in Ford protocol
+ * \param name pair interface and name of method for call
+ * \param obj params for call
+ */
+ void MethodCall(uint id, const MessageId func_id, const MessageName name,
+ const smart_objects::SmartObject& obj);
+
+ /**
+ * \brief sends signal
+ * \param id id message
+ * \param func_id id function in Ford protocol
+ * \param name pair interface and name of signal for call
+ * \param obj params for signal
+ */
+ void Signal(const MessageId func_id, const MessageName name,
+ const smart_objects::SmartObject& obj);
+
+ /**
+ * \brief returns result of call method to HMI
+ * \param id id message
+ * \param obj params for return
+ */
+ void MethodReturn(uint id, const smart_objects::SmartObject& obj);
+
+ /**
+ * \brief sends error on message from HMI
+ * \param id id message
+ * \param msg message from HMI
+ * \param name name of error
+ * \param description description of error
+ */
+ void Error(uint id, const std::string& name, const std::string& description);
+
+ /**
+ * \brief adds a match rule
+ * \param rule string rule in the DBus specification
+ */
+ void AddMatch(const std::string& rule);
+
+ /**
+ * \brief processes incoming message from DBus if queue isn't empty
+ * and fill obj
+ * \param obj object for send to core
+ * \return true if message processed
+ */
+ bool Process(smart_objects::SmartObject& obj);
+
+ /**
+ * \brief push Ford message id to map by serial
+ * \param serial DBus message serial
+ * \param ids pair correlation id and Ford message id
+ */
+ inline void PushMessageId(uint32_t serial, std::pair<uint, MessageId> ids);
+
+ /**
+ * \brief pop Ford message id from map by serial
+ * \param serial DBus message serial
+ * \return pair correlation id and Ford message id
+ */
+ inline std::pair<uint, MessageId> PopMessageId(uint32_t serial);
+
+ std::string sdl_service_name_;
+ std::string sdl_object_path_;
+ std::string hmi_service_name_;
+ std::string hmi_object_path_;
+ DBusConnection* conn_;
+
+ private:
+ /**
+ * \brief schema messages and arguments for DBus
+ */
+ const DBusSchema* schema_;
+
+ /**
+ * \brief mapping serial message DBus on message id Ford protocol
+ */
+ std::map<uint32_t, std::pair<uint, MessageId> > map_messages_;
+
+ /**
+ * \brief processes incoming call of method and fill obj
+ * \param msg message from DBus
+ * \param obj object for send to core
+ * \return true if success
+ */
+ bool ProcessMethodCall(DBusMessage* msg, smart_objects::SmartObject& obj);
+
+ /**
+ * \brief processes incoming return of method and fill obj
+ * \param msg message from DBus
+ * \param obj object for send to core
+ * \return true if success
+ */
+ bool ProcessMethodReturn(DBusMessage* msg, smart_objects::SmartObject& obj);
+
+ /**
+ * \brief processes incoming error and fill obj
+ * \param msg message from DBus
+ * \param obj object for send to core
+ * \return true if success
+ */
+ bool ProcessError(DBusMessage* msg, smart_objects::SmartObject& obj);
+
+ /**
+ * \brief processes incoming signal and fill obj
+ * \param msg message from DBus
+ * \param obj object for send to core
+ * \return true if success
+ */
+ bool ProcessSignal(DBusMessage* msg, smart_objects::SmartObject& obj);
+
+ /**
+ * \brief sets arguments to message
+ * \param msg DBus message
+ * \param rules list of rules for arguments
+ * \param args map of arguments
+ * \return true if success
+ */
+ bool SetArguments(DBusMessage* msg, const ListArgs& rules,
+ const smart_objects::SmartObject& args);
+
+ /**
+ * \brief Sets one argument to message
+ * \param iter DBus message iterator
+ * \param rules description for argument
+ * \param param value of argument
+ * \return true if success
+ */
+ bool SetOneArgument(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::ParameterDescription* rules,
+ const smart_objects::SmartObject& param);
+
+ /**
+ * \brief sets value for argument
+ * \param iter DBus message iterator
+ * \param rules description for argument
+ * \param param value of argument
+ * \return true if success
+ */
+ bool SetValue(DBusMessageIter* iter,
+ const ford_message_descriptions::ParameterDescription* rules,
+ const smart_objects::SmartObject& param);
+
+ /**
+ * \brief sets value for every element of argument
+ * \param iter DBus message iterator
+ * \param rules description for argument
+ * \param param array values of argument
+ * \return true if success
+ */
+ bool SetArrayValue(DBusMessageIter* iter,
+ const ford_message_descriptions::ArrayDescription* rules,
+ const smart_objects::SmartObject& param);
+
+ /**
+ * \brief sets struct value for argument
+ * \param iter DBus message iter
+ * \param rules description for argument
+ * \param param structure
+ * \return true if success
+ */
+ bool SetStructValue(DBusMessageIter* iter,
+ const ford_message_descriptions::StructDescription* rules,
+ const smart_objects::SmartObject& param);
+
+ /**
+ * \brief sets optional value for argument.
+ * Optional param is struct bool, value
+ * \param iter DBus message iterator
+ * \param rules description for argument
+ * \param param value of optional argument
+ * \return true if success
+ */
+ bool SetOptionalValue(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::ParameterDescription* rules,
+ const smart_objects::SmartObject &param);
+
+ /**
+ * \brief gets arguments from message
+ * \param iter DBus message iterator
+ * \param code response code (output)
+ * \param message response message (output)
+ * \return true if success
+ */
+ bool GetHeader(DBusMessageIter* iter, int *code, std::string *message);
+
+ /**
+ * \brief gets arguments from message with header
+ * \param iter DBus message iterator
+ * \param rules list of rules for arguments
+ * \param args map of arguments
+ * \return true if success
+ */
+ bool GetArguments(DBusMessageIter* iter, const ListArgs& rules,
+ smart_objects::SmartObject& args);
+
+ /**
+ * \brief gets one argument from message
+ * \param iter DBus message iterator
+ * \param rules description for argument
+ * \param args map of arguments
+ * \return true if success
+ */
+ bool GetOneArgument(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::ParameterDescription* rules,
+ smart_objects::SmartObject &args);
+
+ /**
+ * \brief gets value for argument
+ * \param iter DBus message iterator
+ * \param rules description for argument
+ * \param param value of argument
+ * \return true if success
+ */
+ bool GetValue(DBusMessageIter* iter,
+ const ford_message_descriptions::ParameterDescription* rules,
+ smart_objects::SmartObject& param);
+
+ /**
+ * \brief gets value for every element of argument
+ * \param iter DBus message iterator
+ * \param rules description for argument
+ * \param param array values of argument
+ * \return true if success
+ */
+ bool GetArrayValue(DBusMessageIter* iter,
+ const ford_message_descriptions::ArrayDescription* rules,
+ smart_objects::SmartObject& param);
+
+ /**
+ * \brief gets struct value for argument
+ * \param iter DBus message iterator
+ * \param rules description for argument
+ * \param param structure
+ * \return true if success
+ */
+ bool GetStructValue(DBusMessageIter* iter,
+ const ford_message_descriptions::StructDescription* rules,
+ smart_objects::SmartObject& param);
+
+ /**
+ * \brief gets optional value for argument.
+ * Optional param is struct bool, value
+ * \param iter DBus message iterator
+ * \param rules description for argument
+ * \param param value of optional argument
+ * \return true if success
+ */
+ bool GetOptionalValue(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::ParameterDescription* rules,
+ smart_objects::SmartObject &param);
+
+ /**
+ * \brief processes request on introspect
+ * \param msg DBus message
+ */
+ void Introspect(DBusMessage* msg);
+};
+
+} // namespace dbus
+
+#endif // SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_ADAPTER_H_
diff --git a/SDL_Core/src/components/dbus/include/dbus/dbus_message_controller.h b/SDL_Core/src/components/dbus/include/dbus/dbus_message_controller.h
new file mode 100644
index 000000000..6eb07989e
--- /dev/null
+++ b/SDL_Core/src/components/dbus/include/dbus/dbus_message_controller.h
@@ -0,0 +1,85 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_CONTROLLER_H_
+#define SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_CONTROLLER_H_
+
+#include <string>
+#include <map>
+#include "dbus/dbus_adapter.h"
+
+namespace dbus {
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+class DBusMessageController : public DBusAdapter {
+ public:
+ /**
+ * \brief constructs DBus message controller
+ * \param sdlServiceName name of service SDL
+ * \param sdlObjectPath path of object SDL
+ * \param hmiServiceName name of service HMI
+ * \param hmiObjectPath path of object HMI
+ */
+ DBusMessageController(const std::string& sdlServiceName,
+ const std::string& sdlObjectPath,
+ const std::string& hmiServiceName,
+ const std::string& hmiObjectPath);
+
+ /**
+ * \brief destructs DBus message controller
+ */
+ virtual ~DBusMessageController();
+
+ /**
+ * \brief subscribes to the DBus signal.
+ * \param interface name of interface in HMI
+ * \param signal name of signal
+ */
+ void SubscribeTo(const std::string& interface, const std::string& signal);
+
+ /**
+ * \brief Method for receiving thread.
+ */
+ void* MethodForReceiverThread(void*);
+
+ protected:
+ /**
+ * \brief sends message to core
+ * \param obj
+ */
+ virtual void SendMessageToCore(const smart_objects::SmartObject& obj) = 0;
+};
+
+} // namespace dbus
+
+#endif // SRC_COMPONENTS_DBUS_INCLUDE_DBUS_DBUS_MESSAGE_CONTROLLER_H_
diff --git a/SDL_Core/src/components/dbus/include/dbus/message_descriptions.h b/SDL_Core/src/components/dbus/include/dbus/message_descriptions.h
new file mode 100644
index 000000000..9f73b2573
--- /dev/null
+++ b/SDL_Core/src/components/dbus/include/dbus/message_descriptions.h
@@ -0,0 +1,73 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef SRC_COMPONENTS_DBUS_INCLUDE_DBUS_MESSAGE_DESCRIPTIONS_H_
+#define SRC_COMPONENTS_DBUS_INCLUDE_DBUS_MESSAGE_DESCRIPTIONS_H_
+
+#include <stdint.h>
+#include <stdlib.h>
+#include "interfaces/HMI_API.h"
+
+namespace ford_message_descriptions {
+
+enum ParameterType {Integer, Boolean, Float, String, Struct, Enum, Array};
+
+struct ParameterDescription {
+ const char* name;
+ const ParameterType type;
+ const bool obligatory; // TODO (dchmerev@luxoft.com): rename to 'mandatory' as in HMI API description
+};
+
+struct ArrayDescription {
+ const ParameterDescription base;
+ const ParameterDescription* element;
+ const char* element_dbus_signature;
+};
+
+struct StructDescription {
+ const ParameterDescription base;
+ const ParameterDescription** parameters;
+};
+
+struct MessageDescription {
+ const char* interface;
+ const char* name;
+ const hmi_apis::messageType::eType message_type;
+ const hmi_apis::FunctionID::eType function_id;
+ const ParameterDescription** parameters;
+};
+
+extern const MessageDescription* message_descriptions[];
+
+} // namespace ford_message_descriptions
+
+#endif // SRC_COMPONENTS_DBUS_INCLUDE_DBUS_MESSAGE_DESCRIPTIONS_H_
+
diff --git a/SDL_Core/src/components/dbus/include/dbus/schema.h b/SDL_Core/src/components/dbus/include/dbus/schema.h
new file mode 100644
index 000000000..4e6ae9baf
--- /dev/null
+++ b/SDL_Core/src/components/dbus/include/dbus/schema.h
@@ -0,0 +1,98 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef SRC_COMPONENTS_DBUS_SCHEMA_INCLUDE_DBUS_SCHEMA_SCHEMA_H_
+#define SRC_COMPONENTS_DBUS_SCHEMA_INCLUDE_DBUS_SCHEMA_SCHEMA_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+
+#include "dbus/message_descriptions.h"
+#include "interfaces/HMI_API.h"
+
+namespace dbus {
+
+using ford_message_descriptions::ParameterDescription;
+using ford_message_descriptions::MessageDescription;
+
+struct Description;
+
+typedef hmi_apis::FunctionID::eType MessageId;
+typedef hmi_apis::messageType::eType MessageType;
+typedef std::pair<std::string, std::string> MessageName; // interface, message
+typedef std::vector<const ParameterDescription*> ListArgs;
+typedef std::vector<const Description*> Messages;
+
+/**
+ * \brief Wrapper class for message description
+ */
+class DBusSchema {
+ public:
+ explicit DBusSchema(const MessageDescription** array);
+
+ /**
+ * \brief gets message name by message id
+ * \param id id message
+ * \return name message
+ */
+ MessageName getMessageName(MessageId id) const;
+
+ /**
+ * \brief gets message id by message name
+ * \param name name message
+ * \return id message
+ */
+ MessageId getMessageId(MessageName name) const;
+
+ /**
+ * \brief gets list rules for arguments
+ * \param id id message
+ * \param type type message
+ * \return list rules
+ */
+ ListArgs getListArgs(MessageId id, MessageType type) const;
+
+ /**
+ * \brief gets list rules for arguments
+ * @param name name message
+ * @param type type message
+ * @return list rules
+ */
+ ListArgs getListArgs(MessageName name, MessageType type) const;
+
+ private:
+ Messages msgs_;
+};
+
+} // namespace dbus
+
+#endif // SRC_COMPONENTS_DBUS_SCHEMA_INCLUDE_DBUS_SCHEMA_SCHEMA_H_
diff --git a/SDL_Core/src/components/dbus/src/dbus_adapter.cc b/SDL_Core/src/components/dbus/src/dbus_adapter.cc
new file mode 100644
index 000000000..6f5138aa4
--- /dev/null
+++ b/SDL_Core/src/components/dbus/src/dbus_adapter.cc
@@ -0,0 +1,782 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "dbus/dbus_adapter.h"
+#include <dbus/dbus.h>
+#include "formatters/CSmartFactory.hpp"
+
+using ford_message_descriptions::ParameterDescription;
+namespace sos = NsSmartDeviceLink::NsJSONHandler::strings;
+
+extern char introspection_xml[];
+
+namespace dbus {
+
+log4cxx::LoggerPtr DBusAdapter::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("HMIMessageHandler"));
+
+std::vector<std::string> &split(const std::string &s, char delim,
+ std::vector<std::string> &elems) {
+ std::stringstream ss(s);
+ std::string item;
+ while (std::getline(ss, item, delim)) {
+ elems.push_back(item);
+ }
+ return elems;
+}
+
+DBusAdapter::DBusAdapter(const std::string& sdlServiceName,
+ const std::string& sdlObjectPath,
+ const std::string& hmiServiceName,
+ const std::string& hmiObjectPath)
+ : sdl_service_name_(sdlServiceName),
+ sdl_object_path_(sdlObjectPath),
+ hmi_service_name_(hmiServiceName),
+ hmi_object_path_(hmiObjectPath),
+ conn_(NULL),
+ schema_(new DBusSchema(ford_message_descriptions::message_descriptions)) {
+}
+
+DBusAdapter::~DBusAdapter() {
+ dbus_shutdown();
+ delete schema_;
+}
+
+bool DBusAdapter::Init() {
+ DBusError err;
+ int ret;
+ dbus_error_init(&err);
+ if (!dbus_threads_init_default()) {
+ LOG4CXX_ERROR(logger_, "DBus: Can't initializes threads");
+ return false;
+ }
+ conn_ = dbus_bus_get(DBUS_BUS_SESSION, &err);
+ if (dbus_error_is_set(&err)) {
+ LOG4CXX_ERROR(logger_, "DBus: Connection Error " << err.message);
+ dbus_error_free(&err);
+ return false;
+ }
+ ret = dbus_bus_request_name(conn_, sdl_service_name_.c_str(),
+ DBUS_NAME_FLAG_DO_NOT_QUEUE,
+ &err);
+ if (ret == -1 || dbus_error_is_set(&err)) {
+ LOG4CXX_ERROR(logger_, "DBus: Can't request name " << err.name);
+ dbus_error_free(&err);
+ return false;
+ }
+ if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) {
+ LOG4CXX_ERROR(
+ logger_,
+ "DBus: Service '" << sdl_service_name_ << "' is already running");
+ return false;
+ }
+
+ LOG4CXX_INFO(logger_, "DBus: Success init dbus adaptor");
+ return true;
+}
+
+bool DBusAdapter::Process(smart_objects::SmartObject& obj) {
+ if (conn_ == NULL) {
+ LOG4CXX_ERROR(logger_, "DBus: DBusAdaptor isn't init");
+ return false;
+ }
+ DBusMessage* msg = dbus_connection_pop_message(conn_);
+ if (msg != NULL) {
+ switch (dbus_message_get_type(msg)) {
+ case DBUS_MESSAGE_TYPE_METHOD_CALL:
+ return ProcessMethodCall(msg, obj);
+ case DBUS_MESSAGE_TYPE_METHOD_RETURN:
+ return ProcessMethodReturn(msg, obj);
+ case DBUS_MESSAGE_TYPE_ERROR:
+ return ProcessError(msg, obj);
+ case DBUS_MESSAGE_TYPE_SIGNAL:
+ return ProcessSignal(msg, obj);
+ default:
+ return false;
+ }
+ } else {
+ dbus_connection_read_write(conn_, 50);
+ }
+ return false;
+}
+
+void DBusAdapter::MethodReturn(uint id, const NsSmartDeviceLink::NsSmartObjects::SmartObject &obj) {
+ // TODO(KKolodiy): implement
+}
+
+void DBusAdapter::Error(uint id, const std::string& name,
+ const std::string& description) {
+ // TODO(KKolodiy): implement
+}
+
+void DBusAdapter::MethodCall(uint id, const MessageId func_id,
+ const MessageName name,
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject &obj) {
+ LOG4CXX_DEBUG(logger_, "Method call " << name.first << "." << name.second);
+ if (conn_ == NULL) {
+ LOG4CXX_ERROR(logger_, "DBus: DBusAdaptor isn't init");
+ return;
+ }
+
+ if (func_id == hmi_apis::FunctionID::INVALID_ENUM) {
+ LOG4CXX_ERROR(logger_, "DBus: Invalid name method");
+ return;
+ }
+
+ DBusMessage* msg;
+ msg = dbus_message_new_method_call(
+ hmi_service_name_.c_str(), hmi_object_path_.c_str(),
+ (hmi_service_name_ + "." + name.first).c_str(), name.second.c_str());
+ if (NULL == msg) {
+ LOG4CXX_WARN(logger_, "DBus: Failed call method (Message Null)");
+ return;
+ }
+
+ const ListArgs& args = schema_->getListArgs(func_id,
+ hmi_apis::messageType::request);
+ if (!SetArguments(msg, args, obj)) {
+ LOG4CXX_ERROR(logger_, "DBus: Failed call method (Signature is wrong)");
+ dbus_message_unref(msg);
+ return;
+ }
+
+ dbus_uint32_t serial;
+ if (!dbus_connection_send(conn_, msg, &serial)) {
+ LOG4CXX_ERROR(logger_, "DBus: Failed call method (Can't send message)");
+ dbus_message_unref(msg);
+ return;
+ }
+ PushMessageId(serial, std::make_pair(id, func_id));
+ dbus_message_unref(msg);
+ LOG4CXX_INFO(logger_, "DBus: Success call method");
+}
+
+void DBusAdapter::Signal(const MessageId func_id, const MessageName name,
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject &obj) {
+ LOG4CXX_DEBUG(logger_, "Signal " << name.first << "." << name.second);
+ if (conn_ == NULL) {
+ LOG4CXX_ERROR(logger_, "DBus: DBusAdaptor isn't init");
+ return;
+ }
+
+ if (func_id == hmi_apis::FunctionID::INVALID_ENUM) {
+ LOG4CXX_ERROR(logger_, "DBus: Invalid name method");
+ return;
+ }
+
+ DBusMessage *msg;
+ msg = dbus_message_new_signal(sdl_object_path_.c_str(),
+ (sdl_service_name_ + "." + name.first).c_str(),
+ name.second.c_str());
+ if (NULL == msg) {
+ LOG4CXX_WARN(logger_, "DBus: Failed emit signal (Message Null)");
+ return;
+ }
+
+ const ListArgs& args = schema_->getListArgs(
+ func_id, hmi_apis::messageType::notification);
+ if (!SetArguments(msg, args, obj)) {
+ LOG4CXX_ERROR(logger_, "DBus: Failed call method (Signature is wrong)");
+ dbus_message_unref(msg);
+ return;
+ }
+
+ if (!dbus_connection_send(conn_, msg, NULL)) { // serial isn't required
+ LOG4CXX_WARN(logger_, "DBus: Failed emit signal (Out Of Memory)");
+ dbus_message_unref(msg);
+ return;
+ }
+ dbus_message_unref(msg);
+ LOG4CXX_INFO(logger_, "DBus: Success emit signal");
+}
+
+void DBusAdapter::AddMatch(const std::string& rule) {
+ LOG4CXX_INFO(logger_, "Subscription: " << rule);
+ dbus_bus_add_match(conn_, rule.c_str(), NULL);
+}
+
+bool DBusAdapter::ProcessMethodCall(DBusMessage* msg,
+ smart_objects::SmartObject& obj) {
+ std::string method = dbus_message_get_member(msg);
+ std::string interface = dbus_message_get_interface(msg);
+ LOG4CXX_INFO(logger_, "DBus: name of method " << interface << " " << method);
+
+ if (interface == "org.freedesktop.DBus.Introspectable"
+ && method == "Introspect") {
+ LOG4CXX_INFO(logger_, "DBus: INTROSPECT");
+ Introspect(msg);
+ return false;
+ }
+ // SDL Core does not provide other methods
+ return false;
+}
+
+bool DBusAdapter::ProcessMethodReturn(DBusMessage* msg,
+ smart_objects::SmartObject& obj) {
+ LOG4CXX_INFO(logger_, "ProcessMethodReturn");
+ dbus_uint32_t reply_serial = dbus_message_get_reply_serial(msg);
+ std::pair<uint, MessageId> ids = PopMessageId(reply_serial);
+ if (ids.second == hmi_apis::FunctionID::INVALID_ENUM) {
+ LOG4CXX_ERROR(logger_, "DBus: Invalid name method");
+ return false;
+ }
+
+ obj[sos::S_MSG_PARAMS] = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ ListArgs args = schema_->getListArgs(ids.second,
+ hmi_apis::messageType::response);
+ DBusMessageIter iter;
+ dbus_message_iter_init(msg, &iter);
+ int code = 0;
+ std::string message;
+ smart_objects::SmartObject description(smart_objects::SmartType_Map);
+ bool ret = GetHeader(&iter, &code, &message)
+ && GetArguments(&iter, args, description);
+
+ if (ret) {
+ obj[sos::S_PARAMS][sos::S_CORRELATION_ID] = ids.first;
+ obj[sos::S_PARAMS][sos::S_FUNCTION_ID] = ids.second;
+ obj[sos::S_PARAMS][sos::S_MESSAGE_TYPE] = hmi_apis::messageType::response;
+ obj[sos::S_PARAMS][sos::kCode] = code;
+ obj[sos::S_PARAMS][sos::kMessage] = message;
+ if (code != hmi_apis::Common_Result::SUCCESS) {
+ MessageName name = schema_->getMessageName(ids.second);
+ description["method"] = name.first + "." + name.second;
+ obj[sos::S_PARAMS]["data"] = description;
+ } else {
+ obj[sos::S_MSG_PARAMS] = description;
+ }
+ }
+
+ dbus_message_unref(msg);
+ return ret;
+}
+
+bool DBusAdapter::ProcessError(DBusMessage* msg,
+ smart_objects::SmartObject& obj) {
+ dbus_uint32_t reply_serial = dbus_message_get_reply_serial(msg);
+ std::pair<uint, MessageId> ids = PopMessageId(reply_serial);
+ if (ids.second == hmi_apis::FunctionID::INVALID_ENUM) {
+ LOG4CXX_ERROR(logger_, "DBus: Invalid name method");
+ return false;
+ }
+
+ const char* name;
+ bool ret = false;
+ if ((name = dbus_message_get_error_name(msg)) != NULL) {
+ ford_message_descriptions::ParameterDescription rule = { "description",
+ ford_message_descriptions::String, true };
+ ListArgs args;
+ args.push_back(&rule);
+ smart_objects::SmartObject description(smart_objects::SmartType_Map);
+ description[rule.name] = smart_objects::SmartObject(
+ smart_objects::SmartType_String);
+
+ DBusMessageIter iter;
+ dbus_message_iter_init(msg, &iter);
+ ret = GetArguments(&iter, args, description);
+ MessageName method = schema_->getMessageName(ids.second);
+
+ obj[sos::S_PARAMS][sos::S_CORRELATION_ID] = ids.first;
+ obj[sos::S_PARAMS][sos::S_FUNCTION_ID] = ids.second;
+ obj[sos::S_PARAMS][sos::S_MESSAGE_TYPE] = hmi_apis::messageType::response;
+ obj[sos::S_PARAMS][sos::kCode] = description[rule.name].asInt();
+ obj[sos::S_MSG_PARAMS] = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+ obj[sos::S_PARAMS]["data"]["method"] = method.first + "." + method.second;
+
+ LOG4CXX_WARN(
+ logger_,
+ "DBus: Call of method " << method.first << "." << method.second << " returned error " << name << ": " << description[rule.name].asString());
+ } else {
+ LOG4CXX_ERROR(logger_, "DBus: Type message isn't error");
+ }
+
+ dbus_message_unref(msg);
+ return ret;
+}
+
+bool DBusAdapter::ProcessSignal(DBusMessage* msg,
+ smart_objects::SmartObject& obj) {
+ std::string method = dbus_message_get_member(msg);
+ std::string interface = dbus_message_get_interface(msg);
+ LOG4CXX_INFO(logger_, "DBus: name of signal " << method);
+
+ std::vector<std::string> elems;
+ split(interface, '.', elems);
+ MessageName name(elems.back(), method);
+ MessageId m_id = schema_->getMessageId(name);
+ if (m_id == hmi_apis::FunctionID::INVALID_ENUM) {
+ LOG4CXX_ERROR(logger_, "DBus: Invalid name signal");
+ return false;
+ }
+
+ obj[sos::S_PARAMS][sos::S_FUNCTION_ID] = m_id;
+ obj[sos::S_PARAMS][sos::S_MESSAGE_TYPE] = hmi_apis::messageType::notification;
+ obj[sos::S_MSG_PARAMS] = smart_objects::SmartObject(
+ smart_objects::SmartType_Map);
+
+ const ListArgs args = schema_->getListArgs(
+ name, hmi_apis::messageType::notification);
+
+ DBusMessageIter iter;
+ dbus_message_iter_init(msg, &iter);
+ bool ret = GetArguments(&iter, args, obj[sos::S_MSG_PARAMS]);
+ dbus_message_unref(msg);
+ return ret;
+}
+
+bool DBusAdapter::SetArguments(DBusMessage* msg, const ListArgs& rules,
+ const smart_objects::SmartObject& args) {
+ DBusMessageIter iter;
+ dbus_message_iter_init_append(msg, &iter);
+ size_t size = rules.size();
+ for (size_t i = 0; i < size; ++i) {
+ const smart_objects::SmartObject& param = args.getElement(rules[i]->name);
+ if (!SetOneArgument(&iter, rules[i], param)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool DBusAdapter::SetOneArgument(DBusMessageIter* iter,
+ const ParameterDescription* rules,
+ const smart_objects::SmartObject& param) {
+ if (rules->obligatory) {
+ if (param.isValid()) {
+ return SetValue(iter, rules, param);
+ } else {
+ LOG4CXX_WARN(logger_,
+ "DBus: Argument '" << rules->name << "' is obligatory!");
+ return false;
+ }
+ } else {
+ return SetOptionalValue(iter, rules, param);
+ }
+}
+
+bool DBusAdapter::SetValue(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::ParameterDescription* rules,
+ const smart_objects::SmartObject& param) {
+ // LOG4CXX_DEBUG(logger_, "DBus: Set param " << rules->name << " = " << param.asString());
+ int type = 0;
+ void* value = 0;
+ dbus_int32_t integerValue = 0;
+ double floatValue = 0;
+ dbus_bool_t booleanValue = false;
+ const char* stringValue;
+ switch (rules->type) {
+ case ford_message_descriptions::ParameterType::Array:
+ return SetArrayValue(
+ iter,
+ reinterpret_cast<const ford_message_descriptions::ArrayDescription*>(rules),
+ param);
+ break;
+ case ford_message_descriptions::ParameterType::Struct:
+ return SetStructValue(
+ iter,
+ reinterpret_cast<const ford_message_descriptions::StructDescription*>(rules),
+ param);
+ break;
+ case ford_message_descriptions::ParameterType::Enum:
+ case ford_message_descriptions::ParameterType::Integer:
+ type = DBUS_TYPE_INT32;
+ integerValue = param.asInt();
+ value = &integerValue;
+ break;
+ case ford_message_descriptions::ParameterType::Float:
+ type = DBUS_TYPE_DOUBLE;
+ floatValue = param.asDouble();
+ value = &floatValue;
+ break;
+ case ford_message_descriptions::ParameterType::Boolean:
+ type = DBUS_TYPE_BOOLEAN;
+ booleanValue = param.asBool();
+ value = &booleanValue;
+ break;
+ case ford_message_descriptions::ParameterType::String:
+ type = DBUS_TYPE_STRING;
+ stringValue = param.asString().c_str();
+ value = &stringValue;
+ break;
+ default:
+ LOG4CXX_ERROR(logger_, "DBus: Unknown type of argument")
+ ;
+ return false;
+ }
+ return dbus_message_iter_append_basic(iter, type, value);
+}
+
+bool DBusAdapter::SetOptionalValue(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::ParameterDescription* rules,
+ const smart_objects::SmartObject &param) {
+ DBusMessageIter sub_iter;
+ if (!dbus_message_iter_open_container(iter, DBUS_TYPE_STRUCT, NULL,
+ &sub_iter)) {
+ LOG4CXX_ERROR(
+ logger_,
+ "DBus: Can't open container type (STRUCT) for optional parameter");
+ return false;
+ }
+
+ ford_message_descriptions::ParameterDescription flagRules = { "flag",
+ ford_message_descriptions::Boolean, true };
+ smart_objects::SmartObject flag(
+ param.getType() != smart_objects::SmartType_Invalid);
+ if (!SetValue(&sub_iter, &flagRules, flag)
+ || !SetValue(&sub_iter, rules, param)) {
+ return false;
+ }
+
+ if (!dbus_message_iter_close_container(iter, &sub_iter)) {
+ LOG4CXX_ERROR(
+ logger_,
+ "DBus: Can't close container type (STRUCT) for optional parameter");
+ return false;
+ }
+ return true;
+}
+
+bool DBusAdapter::SetArrayValue(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::ArrayDescription* rules,
+ const smart_objects::SmartObject& param) {
+ smart_objects::SmartType type = param.getType();
+ if (type != smart_objects::SmartType_Array &&
+ type != smart_objects::SmartType_Invalid) {
+ LOG4CXX_ERROR(logger_, "DBus: SmartObject is not a map");
+ return false;
+ }
+ DBusMessageIter sub_iter;
+ if (!dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY,
+ rules->element_dbus_signature,
+ &sub_iter)) {
+ LOG4CXX_ERROR(logger_, "DBus: Can't open container type (ARRAY)");
+ return false;
+ }
+ size_t size = param.length();
+ for (size_t i = 0; i < size; ++i) {
+ if (!SetValue(&sub_iter, rules->element, param[i])) {
+ return false;
+ }
+ }
+ if (!dbus_message_iter_close_container(iter, &sub_iter)) {
+ LOG4CXX_ERROR(logger_, "DBus: Can't close container type (ARRAY)");
+ return false;
+ }
+ return true;
+}
+
+bool DBusAdapter::SetStructValue(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::StructDescription* rules,
+ const smart_objects::SmartObject& structure) {
+ smart_objects::SmartType type = structure.getType();
+ if (type != smart_objects::SmartType_Map &&
+ type != smart_objects::SmartType_Invalid) {
+ LOG4CXX_ERROR(logger_, "DBus: SmartObject is not a map");
+ return false;
+ }
+ DBusMessageIter sub_iter;
+ if (!dbus_message_iter_open_container(iter, DBUS_TYPE_STRUCT, NULL,
+ &sub_iter)) {
+ LOG4CXX_ERROR(logger_, "DBus: Can't open container type (STRUCT)");
+ return false;
+ }
+ const ParameterDescription** entry;
+ entry = rules->parameters;
+ while (*entry != NULL) {
+ const smart_objects::SmartObject& param =
+ structure.getElement((*entry)->name);
+ if (!SetOneArgument(&sub_iter, *entry, param)) {
+ return false;
+ }
+ entry++;
+ }
+ if (!dbus_message_iter_close_container(iter, &sub_iter)) {
+ LOG4CXX_ERROR(logger_, "DBus: Can't close container type (STRUCT)");
+ return false;
+ }
+ return true;
+}
+
+bool DBusAdapter::GetHeader(DBusMessageIter* iter, int* code,
+ std::string* message) {
+ // Get code of response
+ dbus_int32_t intValue;
+ int type = dbus_message_iter_get_arg_type(iter);
+ if (type != DBUS_TYPE_INT32) {
+ LOG4CXX_ERROR(logger_, "DBus: Unknown format of header");
+ return false;
+ }
+ dbus_message_iter_get_basic(iter, &intValue);
+ *code = intValue;
+ LOG4CXX_DEBUG(logger_, "DBus: Code of response " << *code);
+
+ dbus_message_iter_next(iter);
+
+ // Get message of response
+ type = dbus_message_iter_get_arg_type(iter);
+ if (type != DBUS_TYPE_STRING) {
+ LOG4CXX_ERROR(logger_, "DBus: Unknown format of header");
+ return false;
+ }
+ const char* stringValue;
+ dbus_message_iter_get_basic(iter, &stringValue);
+ *message = stringValue;
+ LOG4CXX_DEBUG(logger_, "DBus: message of response " << *message);
+
+ dbus_message_iter_next(iter);
+ return true;
+}
+
+bool DBusAdapter::GetArguments(DBusMessageIter* iter, const ListArgs& rules,
+ smart_objects::SmartObject& args) {
+ LOG4CXX_TRACE(logger_, "GetArguments");
+
+ size_t size = rules.size();
+ for (size_t i = 0; i < size; ++i) {
+ if (!GetOneArgument(iter, rules[i], args)) {
+ return false;
+ }
+ dbus_message_iter_next(iter);
+ }
+ return true;
+}
+
+const DBusSchema& DBusAdapter::get_schema() const {
+ return *schema_;
+}
+
+bool DBusAdapter::GetOneArgument(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::ParameterDescription* rules,
+ smart_objects::SmartObject& args) {
+ if (rules->obligatory) {
+ return GetValue(iter, rules, args[rules->name]);
+ } else {
+ if (!GetOptionalValue(iter, rules, args[rules->name])) {
+ args.erase(rules->name);
+ }
+ return true; // for optional argument always true
+ }
+}
+
+bool DBusAdapter::GetValue(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::ParameterDescription* rules,
+ smart_objects::SmartObject& param) {
+ LOG4CXX_DEBUG(logger_, "DBus: Get param " << rules->name);
+ int type = dbus_message_iter_get_arg_type(iter);
+ switch (rules->type) {
+ case ford_message_descriptions::ParameterType::Array:
+ if (type == DBUS_TYPE_ARRAY) {
+ return GetArrayValue(
+ iter,
+ // FIXME (dchmerev@luxoft.com): not portable, danger cast.
+ reinterpret_cast<const ford_message_descriptions::ArrayDescription*>(rules),
+ param);
+ } else {
+ LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument");
+ return false;
+ }
+ break;
+ case ford_message_descriptions::ParameterType::Struct:
+ if (type == DBUS_TYPE_STRUCT) {
+ return GetStructValue(
+ iter,
+ reinterpret_cast<const ford_message_descriptions::StructDescription*>(rules),
+ param);
+ } else {
+ LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument");
+ return false;
+ }
+ break;
+ case ford_message_descriptions::ParameterType::Enum:
+ case ford_message_descriptions::ParameterType::Integer:
+ if (type == DBUS_TYPE_INT32) {
+ dbus_int32_t integerValue;
+ dbus_message_iter_get_basic(iter, &integerValue);
+ smart_objects::SmartObject value(integerValue);
+ param = value;
+ LOG4CXX_DEBUG(logger_, "DBus: " << rules->name << " = " << integerValue);
+ } else {
+ LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument");
+ return false;
+ }
+ break;
+ case ford_message_descriptions::ParameterType::Float:
+ if (type == DBUS_TYPE_DOUBLE) {
+ double floatValue;
+ dbus_message_iter_get_basic(iter, &floatValue);
+ smart_objects::SmartObject value(floatValue);
+ param = value;
+ LOG4CXX_DEBUG(logger_, "DBus: " << rules->name << " = " << floatValue);
+ } else {
+ LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument");
+ return false;
+ }
+ break;
+ case ford_message_descriptions::ParameterType::Boolean:
+ if (type == DBUS_TYPE_BOOLEAN) {
+ dbus_bool_t booleanValue;
+ dbus_message_iter_get_basic(iter, &booleanValue);
+ smart_objects::SmartObject value(static_cast<bool>(booleanValue));
+ param = value;
+ LOG4CXX_DEBUG(logger_, "DBus: " << rules->name << " = " << (booleanValue ? "true" : "false"));
+ } else {
+ LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument");
+ return false;
+ }
+ break;
+ case ford_message_descriptions::ParameterType::String:
+ if (type == DBUS_TYPE_STRING) {
+ const char* stringValue;
+ dbus_message_iter_get_basic(iter, &stringValue);
+ std::string strValue = stringValue;
+ smart_objects::SmartObject value(strValue);
+ param = value;
+ LOG4CXX_DEBUG(logger_, "DBus: " << rules->name << " = \"" << strValue << "\"");
+ } else {
+ LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument");
+ return false;
+ }
+ break;
+ default:
+ LOG4CXX_ERROR(logger_, "DBus: Unknown type of argument")
+ ;
+ return false;
+ }
+ return true;
+}
+
+bool DBusAdapter::GetArrayValue(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::ArrayDescription* rules,
+ smart_objects::SmartObject& param) {
+ smart_objects::SmartObject array(smart_objects::SmartType_Array);
+ int i = 0;
+ DBusMessageIter sub_iter;
+ dbus_message_iter_recurse(iter, &sub_iter);
+ while (dbus_message_iter_get_arg_type(&sub_iter) != DBUS_TYPE_INVALID) {
+ if (!GetValue(&sub_iter, rules->element, array[i])) {
+ return false;
+ }
+ dbus_message_iter_next(&sub_iter);
+ i++;
+ }
+ param = array;
+ return true;
+}
+
+bool DBusAdapter::GetStructValue(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::StructDescription* rules,
+ smart_objects::SmartObject& param) {
+ DBusMessageIter sub_iter;
+ dbus_message_iter_recurse(iter, &sub_iter);
+ const ParameterDescription** entry;
+ entry = rules->parameters;
+ smart_objects::SmartObject structure(smart_objects::SmartType_Map);
+ while (*entry != NULL) {
+ if (!GetOneArgument(&sub_iter, *entry, structure)) {
+ return false;
+ }
+ dbus_message_iter_next(&sub_iter);
+ entry++;
+ }
+ param = structure;
+ return true;
+}
+
+bool DBusAdapter::GetOptionalValue(
+ DBusMessageIter* iter,
+ const ford_message_descriptions::ParameterDescription* rules,
+ smart_objects::SmartObject& param) {
+ DBusMessageIter sub_iter;
+ dbus_message_iter_recurse(iter, &sub_iter);
+
+ ford_message_descriptions::ParameterDescription flagRules = { "flag",
+ ford_message_descriptions::Boolean, true };
+ smart_objects::SmartObject flag;
+ if (!GetValue(&sub_iter, &flagRules, flag)) {
+ return false;
+ }
+ if (flag.asBool()) {
+ dbus_message_iter_next(&sub_iter);
+ return GetValue(&sub_iter, rules, param);
+ } else {
+ return false;
+ }
+}
+
+std::pair<uint, MessageId> DBusAdapter::PopMessageId(uint32_t serial) {
+ std::map<dbus_uint32_t, std::pair<uint, MessageId> >::iterator it;
+ it = map_messages_.find(serial);
+ if (it != map_messages_.end()) {
+ std::pair<uint, MessageId> ids = (*it).second;
+ map_messages_.erase(it);
+ return ids;
+ }
+ return std::make_pair(0, hmi_apis::FunctionID::INVALID_ENUM);
+}
+
+void DBusAdapter::PushMessageId(uint32_t serial,
+ std::pair<uint, MessageId> ids) {
+ map_messages_.insert(std::make_pair(serial, ids));
+}
+
+void DBusAdapter::Introspect(DBusMessage* msg) {
+ DBusMessage *reply;
+
+ dbus_uint32_t serial = dbus_message_get_serial(msg);
+ reply = dbus_message_new_method_return(msg);
+ if (!reply) {
+ LOG4CXX_WARN(logger_, "DBus: Failed return method for introspection");
+ return;
+ }
+
+ DBusMessageIter iter;
+ dbus_message_iter_init_append(reply, &iter);
+ char* value = introspection_xml;
+ dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &value);
+ dbus_connection_send(conn_, reply, &serial);
+ dbus_connection_flush(conn_);
+ dbus_message_unref(reply);
+ dbus_message_unref(msg);
+}
+
+} // namespace dbus
diff --git a/SDL_Core/src/components/dbus/src/dbus_message_controller.cc b/SDL_Core/src/components/dbus/src/dbus_message_controller.cc
new file mode 100644
index 000000000..99a165398
--- /dev/null
+++ b/SDL_Core/src/components/dbus/src/dbus_message_controller.cc
@@ -0,0 +1,73 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "dbus/dbus_message_controller.h"
+#include "formatters/CSmartFactory.hpp"
+
+namespace sos = NsSmartDeviceLink::NsJSONHandler::strings;
+
+namespace dbus {
+
+DBusMessageController::DBusMessageController(const std::string& sdlServiceName,
+ const std::string& sdlObjectPath,
+ const std::string& hmiServiceName,
+ const std::string& hmiObjectPath)
+ : DBusAdapter(sdlServiceName, sdlObjectPath,
+ hmiServiceName, hmiObjectPath) {}
+
+void DBusMessageController::SubscribeTo(const std::string& interface,
+ const std::string& signal) {
+ std::string rule = "type='signal'";
+ rule.append(", sender='").append(hmi_service_name_).append("'")
+ .append(", path='").append(hmi_object_path_).append("'")
+ .append(", interface='").append(hmi_service_name_).append(".")
+ .append(interface).append("'")
+ .append(", member='").append(signal).append("'");
+ DBusAdapter::AddMatch(rule);
+}
+
+DBusMessageController::~DBusMessageController() {
+}
+
+void* DBusMessageController::MethodForReceiverThread(void*) {
+ while (true) {
+ smart_objects::SmartObject obj(smart_objects::SmartType_Map);
+ obj[sos::S_PARAMS][sos::S_PROTOCOL_VERSION] = 2;
+ obj[sos::S_PARAMS][sos::S_PROTOCOL_TYPE] = 1;
+ if (DBusAdapter::Process(obj)) {
+ SendMessageToCore(obj);
+ }
+ }
+ return NULL;
+}
+
+} // namespace dbus
diff --git a/SDL_Core/src/components/dbus/src/schema.cc b/SDL_Core/src/components/dbus/src/schema.cc
new file mode 100644
index 000000000..226489cb6
--- /dev/null
+++ b/SDL_Core/src/components/dbus/src/schema.cc
@@ -0,0 +1,136 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "dbus/schema.h"
+
+#include <algorithm>
+#include <functional>
+
+namespace dbus {
+
+struct Description {
+ MessageId id;
+ MessageName name;
+ MessageType type;
+ ListArgs args;
+};
+
+struct IsId : public std::unary_function<const Description*, bool> {
+ explicit IsId(MessageId id) : id_(id) {}
+ bool operator() (const Description* desc) {
+ return desc->id == id_;
+ }
+ private:
+ MessageId id_;
+};
+
+struct IsName : public std::unary_function<const Description*, bool> {
+ explicit IsName(const MessageName& name) : name_(name) {}
+ bool operator() (const Description* desc) {
+ return desc->name == name_;
+ }
+ private:
+ MessageName name_;
+};
+
+struct IsIdType : public std::unary_function<const Description*, bool> {
+ explicit IsIdType(const MessageId& id, const MessageType& type)
+ : id_(id), type_(type) {}
+ bool operator() (const Description* desc) {
+ return desc->id == id_ && desc->type == type_;
+ }
+ private:
+ MessageId id_;
+ MessageType type_;
+};
+
+struct IsNameType : public std::unary_function<const Description*, bool> {
+ explicit IsNameType(const MessageName& name, const MessageType& type)
+ : name_(name), type_(type) {}
+ bool operator() (const Description* desc) {
+ return desc->name == name_ && desc->type == type_;
+ }
+ private:
+ MessageName name_;
+ MessageType type_;
+};
+
+DBusSchema::DBusSchema(const MessageDescription** array) {
+ const MessageDescription** msg = array;
+ while (*msg != NULL) {
+ Description *desc = new Description();
+ desc->id = (*msg)->function_id;
+ desc->name = std::make_pair((*msg)->interface, (*msg)->name);
+ desc->type = (*msg)->message_type;
+ const ParameterDescription** param;
+ param = (*msg)->parameters;
+ while (*param != NULL) {
+ desc->args.push_back(*param);
+ param++;
+ }
+ msgs_.push_back(desc);
+ msg++;
+ }
+}
+
+MessageName DBusSchema::getMessageName(MessageId id) const {
+ Messages::const_iterator it = std::find_if(msgs_.begin(), msgs_.end(), IsId(id));
+ if (msgs_.end() != it) {
+ return (*it)->name;
+ }
+ return MessageName();
+}
+
+MessageId DBusSchema::getMessageId(MessageName name) const {
+ Messages::const_iterator it = std::find_if(msgs_.begin(), msgs_.end(), IsName(name));
+ if (msgs_.end() != it) {
+ return (*it)->id;
+ }
+ return hmi_apis::FunctionID::eType::INVALID_ENUM;
+}
+
+ListArgs DBusSchema::getListArgs(MessageId id, MessageType type) const {
+ Messages::const_iterator it = std::find_if(msgs_.begin(), msgs_.end(), IsIdType(id, type));
+ if (msgs_.end() != it) {
+ return (*it)->args;
+ }
+ return ListArgs();
+}
+
+ListArgs DBusSchema::getListArgs(MessageName name, MessageType type) const {
+ Messages::const_iterator it = std::find_if(msgs_.begin(), msgs_.end(), IsNameType(name, type));
+ if (msgs_.end() != it) {
+ return (*it)->args;
+ }
+ return ListArgs();
+}
+
+} // namespace dbus_schema
diff --git a/SDL_Core/src/components/formatters/CMakeLists.txt b/SDL_Core/src/components/formatters/CMakeLists.txt
new file mode 100644
index 000000000..31016ee70
--- /dev/null
+++ b/SDL_Core/src/components/formatters/CMakeLists.txt
@@ -0,0 +1,25 @@
+include_directories (
+ ./include/
+ ../protocol_handler/include/
+ ../utils/include/
+ ../../thirdPartyLibs/jsoncpp/include/
+ ../../thirdPartyLibs/MessageBroker/include
+ ../../../src/components/smart_objects/include
+)
+
+set (SOURCES
+ ./src/CSmartFactory.cpp
+)
+
+set (FORMATTER_SOURCES
+ ./src/CFormatterJsonBase.cpp
+ ./src/CFormatterJsonSDLRPCv1.cpp
+ ./src/CFormatterJsonSDLRPCv2.cpp
+ ./src/formatter_json_rpc.cc
+ ./src/meta_formatter.cc
+ ./src/generic_json_formatter.cc
+)
+
+add_library("formatters" ${SOURCES}
+ ${FORMATTER_SOURCES}
+)
diff --git a/SDL_Core/src/components/formatters/include/formatters/CFormatterJsonBase.hpp b/SDL_Core/src/components/formatters/include/formatters/CFormatterJsonBase.hpp
new file mode 100644
index 000000000..ef57d9b1b
--- /dev/null
+++ b/SDL_Core/src/components/formatters/include/formatters/CFormatterJsonBase.hpp
@@ -0,0 +1,122 @@
+/**
+ * @file CFormatterJsonBase.hpp
+ * @brief CFormatterJsonBase header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef __CFORMATTERJSONBASE_HPP__
+#define __CFORMATTERJSONBASE_HPP__
+
+#include "smart_objects/smart_object.h"
+#include "json/json.h"
+
+namespace NsSmartDeviceLink {
+namespace NsJSONHandler {
+namespace Formatters {
+
+namespace meta_formatter_error_code {
+ /**
+ * @brief Error codes of MetaFormatter represented as bitmask
+ **/
+ typedef long tMetaFormatterErrorCode ;
+
+ /**
+ * @brief OK, no error
+ */
+ static const tMetaFormatterErrorCode kErrorOk = 0x0;
+
+ /**
+ * @brief origin smart object is not function
+ */
+ static const tMetaFormatterErrorCode kErrorObjectIsNotFunction = 0x01;
+
+ /**
+ * @brief smart shema describes object which is not function
+ */
+ static const tMetaFormatterErrorCode kErrorSchemaIsNotFunction = 0x02;
+
+ /**
+ * @brief result smart object has invalid type (SmartType_Invalid)
+ * before passing to MetaFormatter, i.e. result object can not
+ * be changed, i.e. result object can not be built
+ *
+ */
+ static const tMetaFormatterErrorCode kErrorFailedCreateObjectBySchema = 0x04;
+}
+
+ /**
+ * @brief The base class for all JSON based formatters.
+ */
+ class CFormatterJsonBase
+ {
+ private:
+
+ /**
+ * @brief Constructor.
+ */
+ CFormatterJsonBase();
+
+ /**
+ * @brief Copy constructor.
+ *
+ * @param obj Object to copy.
+ */
+ CFormatterJsonBase(const CFormatterJsonBase &obj);
+
+ protected:
+
+
+ public:
+
+ /**
+ * @brief The method constructs a SmartObject from the input JSON object
+ *
+ * @param value Input JSON object.
+ * @param obj The resulting SmartObject.
+ */
+ static void jsonValueToObj(const Json::Value &value,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject &obj);
+
+ /**
+ * @brief The method constructs a JSON object from the input SmartObject
+ *
+ * @param obj Input SmartObject. Can contain a complex structure of objects.
+ * @param value The resulting JSON object. It has the same structure as the input SmartObject.
+ */
+ static void objToJsonValue(const NsSmartDeviceLink::NsSmartObjects::SmartObject &obj,
+ Json::Value &value);
+ };
+
+}
+}
+} // namespace NsSmartDeviceLink::NsJSONHandler::Formatters
+
+#endif // __CFORMATTERJSONBASE_HPP__
diff --git a/SDL_Core/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv1.hpp b/SDL_Core/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv1.hpp
new file mode 100644
index 000000000..3b24a8a71
--- /dev/null
+++ b/SDL_Core/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv1.hpp
@@ -0,0 +1,238 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+#ifndef __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS__CFORMATTERJSONSDLRPCV1_HPP__
+#define __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS__CFORMATTERJSONSDLRPCV1_HPP__
+
+#include "json/json.h"
+
+#include "smart_objects/smart_object.h"
+#include "smart_objects/enum_schema_item.h"
+
+#include "CFormatterJsonBase.hpp"
+
+#include "formatters/CSmartFactory.hpp"
+#include "formatters/meta_formatter.h"
+
+namespace NsSmartDeviceLink {
+namespace NsJSONHandler {
+namespace Formatters {
+
+/**
+ * @brief Class is used to convert SmartObjects to JSON string and vice versa.
+ *
+ * JSON strings is in SDLRPCv1 format.
+ */
+class CFormatterJsonSDLRPCv1 : public CFormatterJsonBase {
+ private:
+ /**
+ * @brief Hidden constructor.
+ *
+ * The class contains only static methods. Should not be instantiated.
+ */
+ CFormatterJsonSDLRPCv1();
+
+ /**
+ * @brief Hidden copy constructor.
+ *
+ * The class contains only static methods. Should not be instantiated.
+ */
+ CFormatterJsonSDLRPCv1(const CFormatterJsonSDLRPCv1&);
+
+ /**
+ * @brief Extracts a message type from the SmartObject
+ */
+ static const std::string getMessageType(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& obj);
+
+ /**
+ * @brief Extracts a message type from the root JSON object.
+ *
+ * @return Type or empty string if there's no type in the JSON object.
+ */
+ static const std::string getMessageType(const Json::Value& root);
+
+ // SDLRPCv1 string consts
+
+ /**
+ * @brief String constant for REQUEST.
+ */
+ static const std::string S_REQUEST;
+
+ /**
+ * @brief String constant for RESPONSE.
+ */
+ static const std::string S_RESPONSE;
+
+ /**
+ * @brief String constant for NOTIFICATION.
+ */
+ static const std::string S_NOTIFICATION;
+
+ /**
+ * @brief String constant for PARAMETERS.
+ */
+ static const std::string S_PARAMETERS;
+
+ /**
+ * @brief String constant for NAME.
+ */
+ static const std::string S_NAME;
+
+ /**
+ * @brief String constant for CORRELATION_ID.
+ */
+ static const std::string S_CORRELATION_ID;
+
+ public:
+
+ static const int32_t kSuccess;
+ static const int32_t kParsingError;
+ static const int32_t kFunctionIdNotFound;
+ static const int32_t kMessageTypeNotFound;
+ static const int32_t kCorrelationIdNotFound;
+
+ typedef NsSmartDeviceLink::NsJSONHandler::Formatters::meta_formatter_error_code::tMetaFormatterErrorCode tMetaFormatterErrorCode;
+
+ /**
+ * @brief Creates a JSON string from a SmartObject.
+ *
+ * @param obj input SmartObject
+ * @param outStr resulting JSON string
+ * @return true if success, false otherwise
+ */
+ static bool toString(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject &obj,
+ std::string& outStr);
+
+ /**
+ * @brief Creates a SmartObject from a JSON string.
+ *
+ * @param str input JSON string
+ * @param out The resulting SmartObject
+ * @return true if success, otherwise - false
+ */
+ template<typename FunctionId, typename MessageType>
+ static int32_t fromString(const std::string &str,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject &out);
+
+ /**
+ * @brief Converts to string the smart object against the given schema
+ *
+ * @param object Original smart object
+ * @param schema Smart schema which describes 'fake' smart object to be formatted
+ * @param outStr Resulting JSON string
+ * @return formatting error code
+ */
+ static tMetaFormatterErrorCode MetaFormatToString(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& object,
+ const NsSmartDeviceLink::NsSmartObjects::CSmartSchema& schema,
+ std::string& outStr);
+
+};
+
+// ----------------------------------------------------------------------------
+
+template<typename FunctionId, typename MessageType>
+int32_t Formatters::CFormatterJsonSDLRPCv1::fromString(
+ const std::string& str,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& out) {
+ int32_t result = kSuccess;
+
+ try {
+ Json::Value root;
+ Json::Reader reader;
+ std::string type;
+
+ if (false == reader.parse(str, root)) {
+ result = kParsingError | kMessageTypeNotFound | kFunctionIdNotFound
+ | kCorrelationIdNotFound;
+ }
+
+ if (kSuccess == result) {
+ type = getMessageType(root);
+ if (true == type.empty()) {
+ result = kMessageTypeNotFound | kFunctionIdNotFound
+ | kCorrelationIdNotFound;
+ }
+ }
+
+ FunctionId functionId;
+ MessageType messageType;
+
+ if (kSuccess == result) {
+ typedef NsSmartDeviceLink::NsSmartObjects::TEnumSchemaItem<MessageType> MessageTypeEnum;
+ if (false == MessageTypeEnum::stringToEnum(type, messageType)) {
+ // If MessageType is not found than FunctionId and CorrelationId can not be found either
+ result = kMessageTypeNotFound | kFunctionIdNotFound
+ | kCorrelationIdNotFound;
+ }
+ }
+
+ if (kSuccess == result) {
+ typedef NsSmartDeviceLink::NsSmartObjects::TEnumSchemaItem<FunctionId> FunctionIdEnum;
+ if (false
+ == FunctionIdEnum::stringToEnum(root[type][S_NAME].asString(),
+ functionId)) {
+ result = kFunctionIdNotFound;
+ functionId = FunctionId::INVALID_ENUM;
+ }
+ }
+
+ namespace S = NsSmartDeviceLink::NsJSONHandler::strings;
+
+ if (!(result & kMessageTypeNotFound)) {
+ jsonValueToObj(root[type][S_PARAMETERS], out[S::S_MSG_PARAMS]);
+
+ out[S::S_PARAMS][S::S_MESSAGE_TYPE] = messageType;
+ out[S::S_PARAMS][S::S_FUNCTION_ID] = functionId;
+ if (true == root[type][S_CORRELATION_ID].empty()) {
+ if (type != S_NOTIFICATION) { // Notification may not have CorrelationId
+ result |= kCorrelationIdNotFound;
+ out[S::S_PARAMS][S::S_CORRELATION_ID] = -1;
+ }
+ } else {
+ out[S::S_PARAMS][S::S_CORRELATION_ID] = root[type][S_CORRELATION_ID]
+ .asInt();
+ }
+ out[S::S_PARAMS][S::S_PROTOCOL_TYPE] = 0;
+ out[S::S_PARAMS][S::S_PROTOCOL_VERSION] = 1;
+ }
+ } catch (...) {
+ result = kParsingError;
+ }
+
+ return result;
+}
+
+}
+}
+} // namespace NsSmartDeviceLink::NsJSONHandler::Formatters
+
+#endif // __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS__CFORMATTERJSONSDLRPCV1_HPP__
diff --git a/SDL_Core/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv2.hpp b/SDL_Core/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv2.hpp
new file mode 100644
index 000000000..3b4e20651
--- /dev/null
+++ b/SDL_Core/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv2.hpp
@@ -0,0 +1,176 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS__CFORMATTERJSONSDLRPCV2_HPP__
+#define __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS__CFORMATTERJSONSDLRPCV2_HPP__
+
+#include "json/json.h"
+
+#include "smart_objects/smart_object.h"
+
+#include "CFormatterJsonBase.hpp"
+#include "formatters/CSmartFactory.hpp"
+
+namespace NsSmartDeviceLink {
+namespace NsJSONHandler {
+namespace Formatters {
+
+/**
+ * @brief Class is used to convert SmartObjects to JSON string and vice versa.
+ *
+ * JSON strings is in SDLRPCv2 format.
+ */
+class CFormatterJsonSDLRPCv2 : public CFormatterJsonBase {
+ private:
+
+ /**
+ * @brief Hidden constructor.
+ *
+ * The class contains only static methods. Should not be instantiated.
+ */
+ CFormatterJsonSDLRPCv2();
+
+ /**
+ * @brief Hidden copy constructor.
+ *
+ * The class contains only static methods. Should not be instantiated.
+ */
+ CFormatterJsonSDLRPCv2(const CFormatterJsonSDLRPCv2&);
+
+ public:
+
+ typedef NsSmartDeviceLink::NsJSONHandler::Formatters::meta_formatter_error_code::tMetaFormatterErrorCode tMetaFormatterErrorCode;
+
+ /**
+ * @brief Creates a JSON string from a SmartObject.
+ *
+ * @param obj input SmartObject
+ * @param outStr resulting JSON string
+ * @return true if success, false otherwise
+ */
+ static bool toString(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject &obj,
+ std::string& outStr);
+
+ /**
+ * @brief Creates a SmartObject from a JSON string.
+ *
+ * @param str Input JSON string in SDLRPCv2 format
+ * @param out Output SmartObject
+ * @param functionId The corresponding field in SmartObject is filled with this param.
+ * @param messageType The corresponding field in SmartObject is filled with this param.
+ * @return true if success, otherwise - false
+ */
+ template<typename FunctionId, typename MessageType>
+ static bool fromString(const std::string &str,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject &out,
+ FunctionId functionId, MessageType messageType);
+
+ /**
+ * @brief Creates a SmartObject from a JSON string.
+ *
+ * Version with CorrelationID.
+ *
+ * @param str Input JSON string in SDLRPCv2 format
+ * @param out Output SmartObject
+ * @param functionId The corresponding field in SmartObject is filled with this param.
+ * @param messageType The corresponding field in SmartObject is filled with this param.
+ * @param correlatioId It's like sequence number. The corresponding field in SmartObject
+ * is filled with this param.
+ * @return true if success, otherwise - false
+ */
+ template<typename FunctionId, typename MessageType>
+ static bool fromString(const std::string &str,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject &out,
+ FunctionId functionId, MessageType messageType,
+ int32_t correlationId);
+
+ /**
+ * @brief Converts to string the smart object against the given schema
+ *
+ * @param object Original smart object
+ * @param schema Smart schema which describes 'fake' smart object to be formatted
+ * @param outStr Resulting JSON string
+ * @return formatting error code
+ */
+ static tMetaFormatterErrorCode MetaFormatToString(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& object,
+ const NsSmartDeviceLink::NsSmartObjects::CSmartSchema& schema,
+ std::string& outStr);
+};
+
+template<typename FunctionId, typename MessageType>
+inline bool CFormatterJsonSDLRPCv2::fromString(
+ const std::string& str, NsSmartDeviceLink::NsSmartObjects::SmartObject& out,
+ FunctionId functionId, MessageType messageType) {
+ bool result = true;
+
+ try {
+ Json::Value root;
+ Json::Reader reader;
+
+ namespace strings = NsSmartDeviceLink::NsJSONHandler::strings;
+ bool result = reader.parse(str, root);
+
+ if (true == result) {
+ out[strings::S_PARAMS][strings::S_MESSAGE_TYPE] = messageType;
+ out[strings::S_PARAMS][strings::S_FUNCTION_ID] = functionId;
+ out[strings::S_PARAMS][strings::S_PROTOCOL_TYPE] = 0;
+ out[strings::S_PARAMS][strings::S_PROTOCOL_VERSION] = 2;
+
+ jsonValueToObj(root, out[strings::S_MSG_PARAMS]);
+ }
+ } catch (...) {
+ result = false;
+ }
+
+ return result;
+}
+
+template<typename FunctionId, typename MessageType>
+inline bool CFormatterJsonSDLRPCv2::fromString(
+ const std::string& str, NsSmartDeviceLink::NsSmartObjects::SmartObject& out,
+ FunctionId functionId, MessageType messageType, int32_t correlationId) {
+
+ bool result = fromString(str, out, functionId, messageType);
+ namespace strings = NsSmartDeviceLink::NsJSONHandler::strings;
+
+ if (true == result) {
+ out[strings::S_PARAMS][strings::S_CORRELATION_ID] = correlationId;
+ }
+
+ return result;
+}
+
+}
+}
+} // namespace NsSmartDeviceLink::NsJSONHandler::Formatters
+
+#endif // __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS__CFORMATTERJSONSDLRPCV2_HPP__
diff --git a/SDL_Core/src/components/formatters/include/formatters/CSmartFactory.hpp b/SDL_Core/src/components/formatters/include/formatters/CSmartFactory.hpp
new file mode 100644
index 000000000..7cefabaa7
--- /dev/null
+++ b/SDL_Core/src/components/formatters/include/formatters/CSmartFactory.hpp
@@ -0,0 +1,422 @@
+/**
+ * @file CSmartFactory.hpp
+ * @brief CSmartFactory header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef __CSMARTFACTORY_HPP__
+#define __CSMARTFACTORY_HPP__
+
+#include "smart_objects/smart_object.h"
+#include "smart_objects/smart_schema.h"
+#include <map>
+#include <string>
+
+namespace NsSmartDeviceLink
+{
+ namespace NsJSONHandler
+ {
+ /**
+ * @brief String constants used by SmartFactory.
+ */
+ namespace strings
+ {
+ /**
+ * @brief String constant for MSG_PARAMS.
+ */
+ extern const std::string S_MSG_PARAMS;
+
+ /**
+ * @brief String constant for PARAMS.
+ */
+ extern const std::string S_PARAMS;
+
+ /**
+ * @brief String constant for FUNCTION_ID.
+ */
+ extern const std::string S_FUNCTION_ID;
+
+ /**
+ * @brief String constant for MESSAGE_TYPE.
+ */
+ extern const std::string S_MESSAGE_TYPE;
+
+ /**
+ * @brief String constant for PROTOCOL_VERSION.
+ */
+ extern const std::string S_PROTOCOL_VERSION;
+
+ /**
+ * @brief String constant for PROTOCOL_TYPE.
+ */
+ extern const std::string S_PROTOCOL_TYPE;
+
+ /**
+ * @brief String constant for CORRELATION_ID.
+ */
+ extern const std::string S_CORRELATION_ID;
+
+ /**
+ * @brief String constant for "code" param name.
+ */
+ extern const std::string kCode;
+
+ /**
+ * @brief String constant for "message" param name.
+ */
+ extern const std::string kMessage;
+ }
+
+ /**
+ * @brief Smart Schema key.
+ *
+ * @tparam FunctionIdEnum Type of function ID enum.
+ * @tparam MessageTypeEnum Type of messageType enum.
+ */
+ template <class FunctionIdEnum, class MessageTypeEnum>
+ struct SmartSchemaKey
+ {
+ /**
+ * @brief Value of function ID for the key.
+ */
+ FunctionIdEnum functionId;
+
+ /**
+ * @brief Value of messageType for the key.
+ */
+ MessageTypeEnum messageType;
+
+ /**
+ * @brief Constructor.
+ *
+ * @param functionIdParam Value of function ID.
+ * @param messageTypeParam Value of message type.
+ */
+ SmartSchemaKey(FunctionIdEnum functionIdParam, MessageTypeEnum messageTypeParam);
+ };
+
+ /**
+ * @brief Smart Factory.
+ *
+ * This class is used as base class for generated factories.
+ * Clients should use methods of this class to access all
+ * SmartSchema validation features.
+ *
+ * @tparam FunctionIdEnum Type of function ID enum.
+ * @tparam MessageTypeEnum Type of messageType enum.
+ * @tparam StructIdEnum Type of StructId enum.
+ */
+ template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum>
+ class CSmartFactory
+ {
+ public:
+
+ /**
+ * @brief Constructor.
+ */
+ CSmartFactory(void);
+
+ /**
+ * @brief Attach schema to the function SmartObject.
+ *
+ * @param object SmartObject to attach schema for.
+ *
+ * @return True if operation was successful or false otherwise.
+ */
+ bool attachSchema(NsSmartDeviceLink::NsSmartObjects::SmartObject& object);
+
+ /**
+ * @brief Attach schema to the struct SmartObject.
+ *
+ * @param struct_id Identifier of the struct.
+ * @param object SmartObject to attach schema for.
+ *
+ * @return True if operation was successful of false otherwise.
+ */
+ bool AttachSchema(const StructIdEnum struct_id,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject &object);
+
+
+ /**
+ * @brief Create new SmartObject with attached function SmartSchema.
+ *
+ * @param function_id FunctionID of the function.
+ * @param message_type messageType of the function.
+ *
+ * @return If function succeeded it returns new SmartObject with
+ * map type and attached SmartSchema. Client can use such
+ * object to store specific function and perform validation.
+ * Otherwise (if SmartSchema was not attached to the
+ * SmartObject) function returns empty SmartObject with
+ * null type.
+ */
+ NsSmartDeviceLink::NsSmartObjects::SmartObject CreateSmartObject(
+ const FunctionIdEnum function_id,
+ const MessageTypeEnum message_type);
+
+ /**
+ * @brief Create new SmartObject with attached struct SmartSchema.
+ *
+ * @param struct_id Identifier of the struct.
+ *
+ * @return If function succeeded it returns new SmartObject with
+ * map type and attached SmartSchema. Client can use such
+ * object to store specific struct and perform validation.
+ * Otherwise (if SmartSchema was not attached to the
+ * SmartObject) function returns empty SmartObject with
+ * null type.
+ */
+ NsSmartDeviceLink::NsSmartObjects::SmartObject CreateSmartObject(
+ const StructIdEnum struct_id);
+
+ /**
+ * @brief Get SmartSchema for specific function.
+ *
+ * @param function_id FunctionID of the function.
+ * @param message_type messageType of the function.
+ * @param[out] result This value will be copy of the desired
+ * function SmartSchema if it found (this
+ * function returns true) or unmodified if
+ * SmartSchema is not found (this function
+ * returns false).
+ *
+ * @return True if function schema for specified input parameters
+ * is found or false otherwise.
+ */
+ bool GetSchema(
+ const FunctionIdEnum function_id,
+ const MessageTypeEnum message_type,
+ NsSmartDeviceLink::NsSmartObjects::CSmartSchema &result);
+
+ /**
+ * @brief Get SmartSchema for specific struct.
+ *
+ * @param struct_id Identifier of the struct.
+ *
+ * @param[out] result This value will be copy of the desired
+ * struct SmartSchema if it found (this
+ * function returns true) or unmodified if
+ * SmartSchema is not found (this function
+ * returns false).
+ *
+ * @return True if struct schema for specified input parameter is
+ * found or false otherwise.
+ */
+ bool GetSchema(
+ const StructIdEnum struct_id,
+ NsSmartDeviceLink::NsSmartObjects::CSmartSchema &result);
+
+ protected:
+
+ /**
+ * @brief Defines map of SmartSchemaKeys to the SmartSchemes.
+ *
+ * This container type should be used to store SmartSchemes of
+ * functions.
+ */
+ typedef std::map<SmartSchemaKey<FunctionIdEnum, MessageTypeEnum>,
+ NsSmartDeviceLink::NsSmartObjects::CSmartSchema>
+ FuncionsSchemesMap;
+
+ /**
+ * @brief Defines map of StructIdEnum to the SmartSchemes.
+ *
+ * This container type should be used to store SmartSchemes of
+ * structs.
+ */
+ typedef std::map<StructIdEnum,
+ NsSmartDeviceLink::NsSmartObjects::CSmartSchema>
+ StructsSchemesMap;
+
+ /**
+ * @brief Map of all function schemes for this factory.
+ */
+ FuncionsSchemesMap functions_schemes_;
+
+ /**
+ * @brief Map of all struct shemes for this factory.
+ */
+ StructsSchemesMap structs_schemes_;
+ };
+
+ template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum>
+ CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::CSmartFactory(void)
+ : functions_schemes_(),
+ structs_schemes_()
+ {
+ }
+
+ template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum>
+ bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::attachSchema(NsSmartDeviceLink::NsSmartObjects::SmartObject &object)
+ {
+ if(false == object.keyExists(strings::S_PARAMS)) return false;
+ if(false == object[strings::S_PARAMS].keyExists(strings::S_MESSAGE_TYPE)) return false;
+ if(false == object[strings::S_PARAMS].keyExists(strings::S_FUNCTION_ID)) return false;
+
+ MessageTypeEnum msgtype((MessageTypeEnum)object[strings::S_PARAMS][strings::S_MESSAGE_TYPE].asInt());
+ FunctionIdEnum fid((FunctionIdEnum)object[strings::S_PARAMS][strings::S_FUNCTION_ID].asInt());
+
+ SmartSchemaKey<FunctionIdEnum, MessageTypeEnum> key(fid, msgtype);
+
+ typename FuncionsSchemesMap::iterator schemaIterator = functions_schemes_.find(key);
+
+ if(schemaIterator == functions_schemes_.end())
+ {
+ // Schema was not found
+ return false;
+ }
+
+ object.setSchema(schemaIterator->second);
+ schemaIterator->second.applySchema(object);
+
+ return true;
+ }
+
+ template <class FunctionIdEnum,
+ class MessageTypeEnum,
+ class StructIdEnum>
+ bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::
+ AttachSchema(
+ const StructIdEnum struct_id,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject &object) {
+ typename StructsSchemesMap::iterator structs_iterator =
+ structs_schemes_.find(struct_id);
+
+ if (structs_iterator == structs_schemes_.end()) {
+ return false;
+ }
+
+ object.setSchema(structs_iterator->second);
+ structs_iterator->second.applySchema(object);
+
+ return true;
+ }
+
+ template <class FunctionIdEnum,
+ class MessageTypeEnum,
+ class StructIdEnum>
+ NsSmartDeviceLink::NsSmartObjects::SmartObject
+ CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::
+ CreateSmartObject(
+ const FunctionIdEnum function_id,
+ const MessageTypeEnum message_type) {
+ SmartSchemaKey<FunctionIdEnum, MessageTypeEnum> key(
+ function_id, message_type);
+
+ typename FuncionsSchemesMap::iterator schema_iterator =
+ functions_schemes_.find(key);
+
+ if(schema_iterator != functions_schemes_.end()) {
+ NsSmartDeviceLink::NsSmartObjects::SmartObject function_object(
+ NsSmartDeviceLink::NsSmartObjects::SmartType_Map);
+ function_object.setSchema(schema_iterator->second);
+ schema_iterator->second.applySchema(function_object);
+ return function_object;
+ }
+
+ return NsSmartDeviceLink::NsSmartObjects::SmartObject();
+ }
+
+ template <class FunctionIdEnum,
+ class MessageTypeEnum,
+ class StructIdEnum>
+ NsSmartDeviceLink::NsSmartObjects::SmartObject
+ CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::
+ CreateSmartObject(const StructIdEnum struct_id) {
+ NsSmartDeviceLink::NsSmartObjects::SmartObject struct_object(
+ NsSmartDeviceLink::NsSmartObjects::SmartType_Map);
+ if (AttachSchema(struct_id, struct_object)) {
+ return struct_object;
+ }
+
+ return NsSmartDeviceLink::NsSmartObjects::SmartObject();
+ }
+
+ template <class FunctionIdEnum,
+ class MessageTypeEnum,
+ class StructIdEnum>
+ bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::
+ GetSchema(const FunctionIdEnum function_id,
+ const MessageTypeEnum message_type,
+ NsSmartDeviceLink::NsSmartObjects::CSmartSchema &result) {
+ SmartSchemaKey<FunctionIdEnum, MessageTypeEnum> key(function_id,
+ message_type);
+
+ typename FuncionsSchemesMap::iterator schema_iterator =
+ functions_schemes_.find(key);
+
+ if(schema_iterator != functions_schemes_.end()) {
+ result = schema_iterator->second;
+ return true;
+ }
+
+ return false;
+ }
+
+ template <class FunctionIdEnum,
+ class MessageTypeEnum,
+ class StructIdEnum>
+ bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::
+ GetSchema(const StructIdEnum struct_id,
+ NsSmartDeviceLink::NsSmartObjects::CSmartSchema &result) {
+ typename StructsSchemesMap::iterator structs_iterator =
+ structs_schemes_.find(struct_id);
+
+ if(structs_iterator != structs_schemes_.end()) {
+ result = structs_iterator->second;
+ return true;
+ }
+
+ return false;
+ }
+
+ template <class FunctionIdEnum, class MessageTypeEnum>
+ SmartSchemaKey<FunctionIdEnum, MessageTypeEnum>::SmartSchemaKey(FunctionIdEnum functionIdParam, MessageTypeEnum messageTypeParam)
+ : functionId(functionIdParam)
+ , messageType(messageTypeParam)
+ {
+
+ }
+
+ template <class FunctionIdEnum, class MessageTypeEnum>
+ bool operator<(const SmartSchemaKey< FunctionIdEnum, MessageTypeEnum >& l, const SmartSchemaKey< FunctionIdEnum, MessageTypeEnum >& r)
+ {
+ if (l.functionId < r.functionId) return true;
+ if (l.functionId > r.functionId) return false;
+
+ if (l.messageType < r.messageType) return true;
+ if (l.messageType > r.messageType) return false;
+
+ return false;
+ }
+ }
+}
+#endif //__CSMARTFACTORY_HPP__
diff --git a/SDL_Core/src/components/formatters/include/formatters/formatter_json_rpc.h b/SDL_Core/src/components/formatters/include/formatters/formatter_json_rpc.h
new file mode 100644
index 000000000..196cab9c2
--- /dev/null
+++ b/SDL_Core/src/components/formatters/include/formatters/formatter_json_rpc.h
@@ -0,0 +1,497 @@
+/**
+ * @file formatter_json_rpc.h
+ * @brief FormatterJsonRpc header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SMARTDEVICELINK_COMPONENTS_JSONHANDLER_INCLUDE_FORMATTERS_FORMATTER_JSON_RPC_H_
+#define SMARTDEVICELINK_COMPONENTS_JSONHANDLER_INCLUDE_FORMATTERS_FORMATTER_JSON_RPC_H_
+
+#include <string>
+#include <sys/stat.h>
+
+#include "smart_objects/smart_object.h"
+#include "smart_objects/enum_schema_item.h"
+#include "json/json.h"
+
+#include "CFormatterJsonBase.hpp"
+#include "formatters/CSmartFactory.hpp"
+
+namespace NsSmartDeviceLink {
+namespace NsJSONHandler {
+namespace Formatters {
+
+/**
+ * @brief Formatter for JSON RPC format.
+ */
+class FormatterJsonRpc: public CFormatterJsonBase {
+ public:
+ /**
+ * @brief No errors occured during the parsing of the input JSON string.
+ */
+ static const int32_t kSuccess = 0;
+
+ /**
+ * @brief Input JSON string cannot be parsed.
+ */
+ static const int32_t kParsingError = 1;
+
+ /**
+ * @brief Input JSON string has invalid format.
+ */
+ static const int32_t kInvalidFormat = 2;
+
+ /**
+ * @brief Method in input JSON string is not
+ * specified or specified incorrectly.
+ */
+ static const int32_t kMethodNotSpecified = 4;
+
+ /**
+ * @brief Method is unknown.
+ */
+ static const int32_t kUnknownMethod = 8;
+
+ /**
+ * @brief Message type is unknown.
+ */
+ static const int32_t kUnknownMessageType = 16;
+
+ /**
+ * @brief Id of request or response is invalid.
+ */
+ static const int32_t kInvalidId = 32;
+
+ /**
+ * @brief Response code is not available.
+ */
+ static const int32_t kResponseCodeNotAvailable = 64;
+
+ /**
+ * @brief Message for error response is not available.
+ */
+ static const int32_t kErrorResponseMessageNotAvailable = 128;
+
+ /**
+ * @brief Creates a JSON string from a SmartObject.
+ *
+ * @param obj Input SmartObject.
+ * @param out_str Resulting JSON string.
+ *
+ * @return true if success, false otherwise.
+ */
+ static bool ToString(const NsSmartObjects::SmartObject& obj,
+ std::string& out_str);
+
+ /**
+ * @brief Creates a SmartObject from a JSON string.
+ *
+ * @tparam FunctionId Type of function id enumeration.
+ * @tparam MessageType Type of message type enumeration.
+ *
+ * @param str input JSON string.
+ * @param out The resulting SmartObject.
+ *
+ * @return An integer that is a bitwise-or of all error codes occured
+ * during the parsing of the input string. 0 if no errors occured.
+ */
+ template <typename FunctionId, typename MessageType>
+ static int32_t FromString(const std::string& str,
+ NsSmartObjects::SmartObject& out);
+
+ private:
+ /**
+ * @brief Request.
+ */
+ static const char* kRequest;
+
+ /**
+ * @brief Response.
+ */
+ static const char* kResponse;
+
+ /**
+ * @brief Notification.
+ */
+ static const char* kNotification;
+
+ /**
+ * @brief Error reponse.
+ */
+ static const char* kErrorResponse;
+
+ /**
+ * @brief Name of "jsonrpc" message field.
+ */
+ static const char* kJsonRpc;
+
+ /**
+ * @brief Expected value of "jsonrpc" message field ("2.0").
+ */
+ static const char* kJsonRpcExpectedValue;
+
+ /**
+ * @brief Name of "id" message field.
+ */
+ static const char* kId;
+
+ /**
+ * @brief Name of "method" field.
+ */
+ static const char* kMethod;
+
+ /**
+ * @brief Name of "params" field.
+ */
+ static const char* kParams;
+
+ /**
+ * @brief Name of "result" field.
+ */
+ static const char* kResult;
+
+ /**
+ * @brief Name of "error" field.
+ */
+ static const char* kError;
+
+ /**
+ * @brief Name of "code" field.
+ */
+ static const char* kCode;
+
+ /**
+ * @brief Name of "data" field.
+ */
+ static const char* kData;
+
+ /**
+ * @brief Name of "message" field.
+ */
+ static const char* kMessage;
+
+ /**
+ * @brief Constructor.
+ */
+ FormatterJsonRpc();
+
+ /**
+ * @brief Copy constructor.
+ *
+ * @param unused Unused parameter.
+ */
+ FormatterJsonRpc(const FormatterJsonRpc& unused);
+
+ /**
+ * @brief Parse function id.
+ *
+ * @tparam FunctionId Type of function id enumeration.
+ *
+ * @param method_value JSON value with function id.
+ * @param out The resulting SmartObject.
+ *
+ * @return An integer that is a bitwise-or of all error codes occured
+ * during the parsing of the function id. 0 if no errors occured.
+ */
+ template <typename FunctionId>
+ static int32_t ParseFunctionId(const Json::Value& method_value,
+ NsSmartObjects::SmartObject& out);
+
+ /**
+ * @brief Set method.
+ *
+ * Try to extract function id from the message object and set the "method"
+ * field of the container.
+ *
+ * @param params Message parameters object.
+ * @param method_container Container for the "method" field.
+ *
+ * @return true if function id was extracted successfully and set as a
+ * value of "method" field.
+ */
+ static bool SetMethod(const NsSmartObjects::SmartObject& params,
+ Json::Value& method_container);
+
+ /**
+ * @brief Set id.
+ *
+ * Try to extract request/response id from the message object and set the
+ * "id" field of the container.
+ *
+ * @param params Message parameters object.
+ * @param id_container Container for the "id" field.
+ *
+ * @return true if request/response id was extracted successfully and set
+ * as a value of "id" field.
+ */
+ static bool SetId(const NsSmartObjects::SmartObject& params,
+ Json::Value& id_container);
+
+ /**
+ * @brief Set message
+ *
+ * Try to extract message from response error object and set "message" field for the container
+ *
+ * @param params Message parameters object.
+ * @param id_container Container of the "message" field
+ *
+ * @return true if message string was extracted successfully and set
+ * as a value of "message" field.
+ */
+ static bool SetMessage(const NsSmartObjects::SmartObject& params,
+ Json::Value& id_container);
+};
+
+template <typename FunctionId, typename MessageType>
+int32_t FormatterJsonRpc::FromString(const std::string& str,
+ NsSmartObjects::SmartObject& out) {
+ int32_t result = kSuccess;
+ try {
+ Json::Value root;
+ Json::Reader reader;
+ namespace strings = NsSmartDeviceLink::NsJSONHandler::strings;
+
+ if (false == reader.parse(str, root)) {
+ result = kParsingError | kMethodNotSpecified | kUnknownMethod |
+ kUnknownMessageType;
+ } else {
+ if (false == root.isMember(kJsonRpc)) {
+ result |= kInvalidFormat;
+ } else {
+ const Json::Value& jsonRpcValue = root[kJsonRpc];
+
+ if ((false == jsonRpcValue.isString()) ||
+ (jsonRpcValue.asString() != kJsonRpcExpectedValue)) {
+ result |= kInvalidFormat;
+ }
+ }
+
+ std::string message_type_string;
+ Json::Value response_value;
+ bool response_value_found = false;
+ bool is_error_response = false;
+
+ if (false == root.isMember(kId)) {
+ message_type_string = kNotification;
+
+ if (false == root.isMember(kMethod)) {
+ result |= kMethodNotSpecified | kUnknownMethod;
+ } else {
+ result |= ParseFunctionId<FunctionId>(root[kMethod], out);
+ }
+ out[strings::S_MSG_PARAMS]
+ = NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map);
+ } else {
+ const Json::Value& id_value = root[kId];
+
+ if (true == id_value.isString()) {
+ out[strings::S_PARAMS][strings::S_CORRELATION_ID] =
+ id_value.asString();
+ } else if (true == id_value.isInt()) {
+ out[strings::S_PARAMS][strings::S_CORRELATION_ID] =
+ id_value.asInt();
+ } else if (true == id_value.isDouble()) {
+ out[strings::S_PARAMS][strings::S_CORRELATION_ID] =
+ id_value.asDouble();
+ } else if (true == id_value.isNull()) {
+ out[strings::S_PARAMS][strings::S_CORRELATION_ID] =
+ NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Null);
+ } else {
+ result |= kInvalidFormat | kInvalidId;
+ }
+
+ if (true == root.isMember(kMethod)) {
+ message_type_string = kRequest;
+ result |= ParseFunctionId<FunctionId>(root[kMethod], out);
+ out[strings::S_MSG_PARAMS]
+ = NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map);
+ } else {
+ Json::Value method_container;
+ bool method_container_found = false;
+
+ if (true == root.isMember(kResult)) {
+ out[strings::S_MSG_PARAMS]
+ = NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map);
+
+ message_type_string = kResponse;
+ response_value = root[kResult];
+ response_value_found = true;
+ method_container = root[kResult];
+ method_container_found = true;
+ } else if (true == root.isMember(kError)) {
+ out[strings::S_MSG_PARAMS]
+ = NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map);
+ message_type_string = kErrorResponse;
+ response_value = root[kError];
+ response_value_found = true;
+ is_error_response = true;
+
+ if (true == response_value.isObject()) {
+ if (true == response_value.isMember(kData)) {
+ method_container = response_value[kData];
+ method_container_found = true;
+ }
+ }
+ } else {
+ result |= kUnknownMessageType;
+ }
+
+ if (false == method_container_found) {
+ result |= kMethodNotSpecified | kUnknownMethod;
+ } else if (false == method_container.isObject()) {
+ result |= kInvalidFormat | kMethodNotSpecified | kUnknownMethod;
+ } else {
+ if (false == method_container.isMember(kMethod)) {
+ result |= kMethodNotSpecified | kUnknownMethod;
+ } else {
+ result |= ParseFunctionId<FunctionId>(method_container[kMethod],
+ out);
+ }
+ }
+ }
+ }
+
+ if (0 == (result & kUnknownMessageType)) {
+ MessageType message_type;
+
+ if (false == NsSmartObjects::TEnumSchemaItem<MessageType>::stringToEnum(
+ message_type_string, message_type)) {
+ result |= kUnknownMessageType;
+ } else {
+ out[strings::S_PARAMS][strings::S_MESSAGE_TYPE] = message_type;
+ }
+ }
+
+ if (true == root.isMember(kParams)) {
+ const Json::Value& params_value = root[kParams];
+
+ if (false == params_value.isObject()) {
+ result |= kInvalidFormat;
+ } else {
+ jsonValueToObj(root[kParams], out[strings::S_MSG_PARAMS]);
+ }
+ } else if (true == root.isMember(kResult)) {
+ const Json::Value& result_value = root[kResult];
+
+ if (false == result_value.isObject()) {
+ result |= kInvalidFormat;
+ } else {
+ jsonValueToObj(root[kResult], out[strings::S_MSG_PARAMS]);
+ }
+ } else if (true == is_error_response) {
+ jsonValueToObj(response_value[kData], out[strings::S_PARAMS][kData]);
+ }
+
+ if ((kResponse == message_type_string) ||
+ (kErrorResponse == message_type_string)) {
+ if (true == out.keyExists(strings::S_MSG_PARAMS)) {
+ out[strings::S_MSG_PARAMS].erase(kMethod);
+ out[strings::S_MSG_PARAMS].erase(kCode);
+ }
+
+ if (false == response_value_found) {
+ result |= kResponseCodeNotAvailable;
+ } else {
+ if (false == response_value.isObject()) {
+ result |= kInvalidFormat | kResponseCodeNotAvailable;
+
+ if (true == is_error_response) {
+ result |= kErrorResponseMessageNotAvailable;
+ }
+ } else {
+ if (false == response_value.isMember(kCode)) {
+ result |= kResponseCodeNotAvailable;
+ } else {
+ const Json::Value& code_value = response_value[kCode];
+
+ if (false == code_value.isInt()) {
+ result |= kInvalidFormat | kResponseCodeNotAvailable;
+ } else {
+ out[strings::S_PARAMS][strings::kCode] = code_value.asInt();
+ }
+ }
+
+ if (true == is_error_response) {
+ if (false == response_value.isMember(kMessage)) {
+ result |= kErrorResponseMessageNotAvailable;
+ } else {
+ const Json::Value& message_value = response_value[kMessage];
+
+ if (false == message_value.isString()) {
+ result |= kErrorResponseMessageNotAvailable;
+ } else {
+ out[strings::S_PARAMS][strings::kMessage] =
+ message_value.asString();
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ out[strings::S_PARAMS][strings::S_PROTOCOL_TYPE] = 1;
+ out[strings::S_PARAMS][strings::S_PROTOCOL_VERSION] = 2;
+ } catch(...) {
+ result = kParsingError;
+ }
+
+ return result;
+}
+
+template <typename FunctionId>
+int32_t FormatterJsonRpc::ParseFunctionId(const Json::Value& method_value,
+ NsSmartObjects::SmartObject& out) {
+ int32_t result = kSuccess;
+
+ if (false == method_value.isString()) {
+ result |= kInvalidFormat | kUnknownMethod;
+ } else {
+ FunctionId function_id;
+
+ if (false == NsSmartObjects::TEnumSchemaItem<FunctionId>::stringToEnum(
+ method_value.asString(), function_id)) {
+ result |= kUnknownMethod;
+ } else {
+ namespace strings = NsSmartDeviceLink::NsJSONHandler::strings;
+
+ out[strings::S_PARAMS][strings::S_FUNCTION_ID] = function_id;
+ }
+ }
+
+ return result;
+}
+
+} // namespace Formatters
+} // namespace NsJSONHandler
+} // namespace NsSmartDeviceLink
+
+#endif // SMARTDEVICELINK_COMPONENTS_JSONHANDLER_INCLUDE_FORMATTERS_FORMATTER_JSON_RPC_H_
diff --git a/SDL_Core/src/components/formatters/include/formatters/generic_json_formatter.h b/SDL_Core/src/components/formatters/include/formatters/generic_json_formatter.h
new file mode 100644
index 000000000..3eaee0b36
--- /dev/null
+++ b/SDL_Core/src/components/formatters/include/formatters/generic_json_formatter.h
@@ -0,0 +1,71 @@
+/**
+ * @file generic_json_formatter.h
+ * @brief Generic JSON formatter header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SMARTDEVICELINK_COMPONENTS_FORMATTERS_INCLUDE_FORMATTERS_GENERIC_JSON_FORMATTER_H_
+#define SMARTDEVICELINK_COMPONENTS_FORMATTERS_INCLUDE_FORMATTERS_GENERIC_JSON_FORMATTER_H_
+
+#include "CFormatterJsonBase.hpp"
+
+namespace NsSmartDeviceLink {
+namespace NsJSONHandler {
+namespace Formatters {
+
+class GenericJsonFormatter: public CFormatterJsonBase {
+public:
+ /**
+ * @brief Creates a JSON string from a SmartObject.
+ *
+ * @param obj Input SmartObject.
+ * @param out_str Resulting JSON string.
+ */
+ static void ToString(const NsSmartObjects::SmartObject& obj,
+ std::string& out_str);
+
+ /**
+ * @brief Creates a SmartObject from a JSON string.
+ *
+ * @param str input JSON string.
+ * @param out The resulting SmartObject.
+ *
+ * @return true if success, false otherwise.
+ */
+ static bool FromString(const std::string& str,
+ NsSmartObjects::SmartObject& out);
+};
+
+} // namespace Formatters
+} // namespace NsJSONHandler
+} // namespace NsSmartDeviceLink
+
+#endif // SMARTDEVICELINK_COMPONENTS_FORMATTERS_INCLUDE_FORMATTERS_GENERIC_JSON_FORMATTER_H_
diff --git a/SDL_Core/src/components/formatters/include/formatters/meta_formatter.h b/SDL_Core/src/components/formatters/include/formatters/meta_formatter.h
new file mode 100644
index 000000000..c1b767d7c
--- /dev/null
+++ b/SDL_Core/src/components/formatters/include/formatters/meta_formatter.h
@@ -0,0 +1,78 @@
+/**
+ * @file meta_fromatter.h
+ * @brief file describes class CMetaFormatter which is designed to format
+ * the smart object against given schema for given formatter
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS_METAFORMATTER_H__
+#define __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS_METAFORMATTER_H__
+
+#include "smart_objects/smart_object.h"
+#include "smart_objects/smart_schema.h"
+
+namespace NsSmartDeviceLink {
+namespace NsJSONHandler {
+namespace Formatters {
+
+/**
+ * @brief Formats to string the smart object against given schema for given formatter
+ *
+ * Sample usage:
+ * CSmartFactory factory;
+ * SmartObject object;
+ * CSmartSchmema schema;
+ *
+ */
+class CMetaFormatter {
+ public:
+
+ /**
+ * @brief Creates smart object by the given schema having copied
+ * matched tree elements from original object.
+ *
+ * @param object Original smart object which macthed tree elements
+ * will be copied from
+ * @param schema Smart schema which describes result smart object
+ * @param result_object createdsmart object
+ * @return true if successful, false - otherwise
+ */
+ static bool CreateObjectByPattern(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& object,
+ const NsSmartDeviceLink::NsSmartObjects::CSmartSchema& schema,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& result_object);
+};
+
+}// namespace NsSmartDeviceLink
+}// namespace NsSmartDeviceLink::NsJSONHandler
+}// namespace NsSmartDeviceLink::NsJSONHandler::Formatters
+
+#endif // __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS_METAFORMATTER_H__
diff --git a/SDL_Core/src/components/formatters/src/CFormatterJsonBase.cpp b/SDL_Core/src/components/formatters/src/CFormatterJsonBase.cpp
new file mode 100644
index 000000000..4abc4b8ae
--- /dev/null
+++ b/SDL_Core/src/components/formatters/src/CFormatterJsonBase.cpp
@@ -0,0 +1,118 @@
+/**
+ * @file CFormatterJsonBase.cpp
+ * @brief CFormatterJsonBase source file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+#include "json/json.h"
+
+#include "formatters/CFormatterJsonBase.hpp"
+
+void NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonBase::jsonValueToObj(
+ const Json::Value& value,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& obj) {
+ try {
+ if (value.type() == Json::objectValue) {
+ obj = NsSmartDeviceLink::NsSmartObjects::SmartObject(
+ NsSmartDeviceLink::NsSmartObjects::SmartType_Map);
+
+ Json::Value::Members members = value.getMemberNames();
+
+ for (int32_t i = 0; i < members.size(); i++) {
+ jsonValueToObj(value[members[i]], obj[members[i]]);
+ }
+ } else if (value.type() == Json::arrayValue) {
+ obj = NsSmartDeviceLink::NsSmartObjects::SmartObject(
+ NsSmartDeviceLink::NsSmartObjects::SmartType_Array);
+
+ for (int32_t i = 0; i < value.size(); i++) {
+ jsonValueToObj(value[i], obj[i]);
+ }
+ } else if (value.type() == Json::intValue
+ || value.type() == Json::uintValue) {
+ obj = value.asInt();
+ } else if (value.type() == Json::realValue) {
+ obj = value.asDouble();
+ } else if (value.type() == Json::booleanValue) {
+ obj = value.asBool();
+ } else if (value.type() == Json::stringValue) {
+ obj = value.asString();
+ }
+ } catch (...) {
+ }
+}
+
+// ----------------------------------------------------------------------------
+
+void NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonBase::objToJsonValue(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject &obj,
+ Json::Value &item) {
+ try {
+ if (NsSmartDeviceLink::NsSmartObjects::SmartType_Array == obj.getType()) {
+ item = Json::arrayValue;
+
+ for (int32_t i = 0; i < obj.length(); i++) {
+ Json::Value value(Json::nullValue);
+
+ objToJsonValue(obj.getElement(i), value);
+
+ item.append(value);
+ }
+ } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Map
+ == obj.getType()) {
+ item = Json::objectValue;
+ std::set<std::string> keys = obj.enumerate();
+
+ for (std::set<std::string>::const_iterator key = keys.begin();
+ key != keys.end(); key++) {
+ Json::Value value(Json::nullValue);
+
+ objToJsonValue(obj.getElement(*key), value);
+
+ item[*key] = value;
+ }
+ } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Boolean
+ == obj.getType()) {
+ item = obj.asBool();
+ } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Integer
+ == obj.getType()) {
+ item = obj.asInt();
+ } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Double
+ == obj.getType()) {
+ item = obj.asDouble();
+ } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Null
+ == obj.getType()) {
+ item = Json::nullValue;
+ } else {
+ item = obj.asString();
+ }
+ } catch (...) {
+ }
+}
diff --git a/SDL_Core/src/components/formatters/src/CFormatterJsonSDLRPCv1.cpp b/SDL_Core/src/components/formatters/src/CFormatterJsonSDLRPCv1.cpp
new file mode 100644
index 000000000..407a00188
--- /dev/null
+++ b/SDL_Core/src/components/formatters/src/CFormatterJsonSDLRPCv1.cpp
@@ -0,0 +1,157 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+#include "formatters/CFormatterJsonSDLRPCv1.hpp"
+#include "formatters/meta_formatter.h"
+
+namespace strings = NsSmartDeviceLink::NsJSONHandler::strings;
+namespace smart_objects_ns = NsSmartDeviceLink::NsSmartObjects;
+
+namespace NsSmartDeviceLink {
+namespace NsJSONHandler {
+namespace Formatters {
+
+// ----------------------------------------------------------------------------
+
+const std::string CFormatterJsonSDLRPCv1::S_REQUEST("request");
+const std::string CFormatterJsonSDLRPCv1::S_RESPONSE("response");
+const std::string CFormatterJsonSDLRPCv1::S_NOTIFICATION("notification");
+const std::string CFormatterJsonSDLRPCv1::S_PARAMETERS("parameters");
+const std::string CFormatterJsonSDLRPCv1::S_NAME("name");
+const std::string CFormatterJsonSDLRPCv1::S_CORRELATION_ID("correlationID");
+
+const int32_t CFormatterJsonSDLRPCv1::kSuccess = 0;
+const int32_t CFormatterJsonSDLRPCv1::kParsingError = 1 << 0;
+const int32_t CFormatterJsonSDLRPCv1::kFunctionIdNotFound = 1 << 1;
+const int32_t CFormatterJsonSDLRPCv1::kMessageTypeNotFound = 1 << 2;
+const int32_t CFormatterJsonSDLRPCv1::kCorrelationIdNotFound = 1 << 3;
+// ----------------------------------------------------------------------------
+
+const std::string CFormatterJsonSDLRPCv1::getMessageType(
+ const smart_objects_ns::SmartObject& obj) {
+ return obj.getElement(strings::S_PARAMS).getElement(strings::S_MESSAGE_TYPE)
+ .asString();
+}
+
+// ----------------------------------------------------------------------------
+
+const std::string CFormatterJsonSDLRPCv1::getMessageType(
+ const Json::Value& root) {
+ std::string type;
+
+ if (true == root.isMember(S_REQUEST)) {
+ type = S_REQUEST;
+ } else if (true == root.isMember(S_RESPONSE)) {
+ type = S_RESPONSE;
+ } else if (true == root.isMember(S_NOTIFICATION)) {
+ type = S_NOTIFICATION;
+ } else {
+ }
+
+ return type;
+}
+
+// ----------------------------------------------------------------------------
+
+bool CFormatterJsonSDLRPCv1::toString(const smart_objects_ns::SmartObject& obj,
+ std::string& outStr) {
+ bool result = false;
+ try {
+ Json::Value root(Json::objectValue);
+ Json::Value params(Json::objectValue);
+
+ smart_objects_ns::SmartObject formattedObj(obj);
+ formattedObj.getSchema().unapplySchema(formattedObj); // converts enums(as int32_t) to strings
+
+ objToJsonValue(formattedObj.getElement(strings::S_MSG_PARAMS), params);
+
+ std::string type = getMessageType(formattedObj);
+ root[type] = Json::Value(Json::objectValue);
+ root[type][S_PARAMETERS] = params;
+
+ if (formattedObj[strings::S_PARAMS].keyExists(strings::S_CORRELATION_ID)) {
+ root[type][S_CORRELATION_ID] =
+ formattedObj[strings::S_PARAMS][strings::S_CORRELATION_ID].asInt();
+ }
+
+ root[type][S_NAME] = formattedObj[strings::S_PARAMS][strings::S_FUNCTION_ID]
+ .asString();
+
+ outStr = root.toStyledString();
+
+ result = true;
+ } catch (...) {
+ result = false;
+ }
+
+ return result;
+}
+
+// ----------------------------------------------------------------------------
+
+CFormatterJsonSDLRPCv1::tMetaFormatterErrorCode CFormatterJsonSDLRPCv1::MetaFormatToString(
+ const smart_objects_ns::SmartObject& object,
+ const smart_objects_ns::CSmartSchema& schema, std::string& outStr) {
+ meta_formatter_error_code::tMetaFormatterErrorCode result_code =
+ meta_formatter_error_code::kErrorOk;
+
+ smart_objects_ns::SmartObject tmp_object;
+
+ if (false
+ == CMetaFormatter::CreateObjectByPattern(object, schema, tmp_object)) {
+ result_code |= meta_formatter_error_code::kErrorFailedCreateObjectBySchema;
+ return result_code;
+ }
+
+ // determine whether smart objects are functions
+ // (in terms of SDLRPC communication)
+ bool is_root_object_created_by_schema = ((tmp_object.getType()
+ == smart_objects_ns::SmartType_Map)
+ && tmp_object.keyExists(strings::S_PARAMS)
+ && tmp_object.keyExists(strings::S_MSG_PARAMS));
+
+ bool is_root_object = ((object.getType() == smart_objects_ns::SmartType_Map)
+ && object.keyExists(strings::S_PARAMS)
+ && object.keyExists(strings::S_MSG_PARAMS));
+
+ if (false == is_root_object) {
+ result_code |= meta_formatter_error_code::kErrorObjectIsNotFunction;
+ }
+ if (false == is_root_object_created_by_schema) {
+ result_code |= meta_formatter_error_code::kErrorSchemaIsNotFunction;
+ }
+
+ CFormatterJsonSDLRPCv1::toString(tmp_object, outStr);
+
+ return result_code;
+}
+
+}
+}
+}
diff --git a/SDL_Core/src/components/formatters/src/CFormatterJsonSDLRPCv2.cpp b/SDL_Core/src/components/formatters/src/CFormatterJsonSDLRPCv2.cpp
new file mode 100644
index 000000000..d76e28911
--- /dev/null
+++ b/SDL_Core/src/components/formatters/src/CFormatterJsonSDLRPCv2.cpp
@@ -0,0 +1,106 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "formatters/CFormatterJsonSDLRPCv2.hpp"
+#include "formatters/meta_formatter.h"
+
+namespace smart_objects_ns = NsSmartDeviceLink::NsSmartObjects;
+namespace strings = NsSmartDeviceLink::NsJSONHandler::strings;
+
+namespace NsSmartDeviceLink {
+namespace NsJSONHandler {
+namespace Formatters {
+
+// ----------------------------------------------------------------------------
+
+bool CFormatterJsonSDLRPCv2::toString(const smart_objects_ns::SmartObject& obj,
+ std::string& outStr) {
+ bool result = true;
+ try {
+ Json::Value root(Json::objectValue);
+
+ smart_objects_ns::SmartObject formattedObj(obj);
+ formattedObj.getSchema().unapplySchema(formattedObj); // converts enums(as int32_t) to strings
+
+ objToJsonValue(formattedObj.getElement(strings::S_MSG_PARAMS), root);
+
+ outStr = root.toStyledString();
+
+ result = true;
+ } catch (...) {
+ result = false;
+ }
+
+ return result;
+}
+
+// ----------------------------------------------------------------------------
+
+CFormatterJsonSDLRPCv2::tMetaFormatterErrorCode CFormatterJsonSDLRPCv2::MetaFormatToString(
+ const smart_objects_ns::SmartObject& object,
+ const smart_objects_ns::CSmartSchema& schema, std::string& outStr) {
+
+ meta_formatter_error_code::tMetaFormatterErrorCode result_code =
+ meta_formatter_error_code::kErrorOk;
+
+ smart_objects_ns::SmartObject tmp_object;
+
+ if (false
+ == CMetaFormatter::CreateObjectByPattern(object, schema, tmp_object)) {
+ result_code |= meta_formatter_error_code::kErrorFailedCreateObjectBySchema;
+ return result_code;
+ }
+
+ // determine whether smart objects are functions
+ // (in terms of SDLRPC communication)
+ bool is_root_object_created_by_schema = ((tmp_object.getType()
+ == smart_objects_ns::SmartType_Map)
+ && tmp_object.keyExists(strings::S_PARAMS)
+ && tmp_object.keyExists(strings::S_MSG_PARAMS));
+
+ bool is_root_object = ((object.getType() == smart_objects_ns::SmartType_Map)
+ && object.keyExists(strings::S_PARAMS)
+ && object.keyExists(strings::S_MSG_PARAMS));
+
+ if (false == is_root_object) {
+ result_code |= meta_formatter_error_code::kErrorObjectIsNotFunction;
+ }
+ if (false == is_root_object_created_by_schema) {
+ result_code |= meta_formatter_error_code::kErrorSchemaIsNotFunction;
+ }
+
+ CFormatterJsonSDLRPCv2::toString(tmp_object, outStr);
+
+ return result_code;
+}
+
+}
+}
+}
diff --git a/SDL_Core/src/components/formatters/src/CSmartFactory.cpp b/SDL_Core/src/components/formatters/src/CSmartFactory.cpp
new file mode 100644
index 000000000..363db7696
--- /dev/null
+++ b/SDL_Core/src/components/formatters/src/CSmartFactory.cpp
@@ -0,0 +1,46 @@
+/**
+ * @file CSmartFactory.cpp
+ * @brief CSmartFactory source file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "formatters/CSmartFactory.hpp"
+
+const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_MSG_PARAMS("msg_params");
+const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_PARAMS("params");
+const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_FUNCTION_ID("function_id");
+const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_MESSAGE_TYPE("message_type");
+const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_PROTOCOL_VERSION("protocol_version");
+const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_PROTOCOL_TYPE("protocol_type");
+const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_CORRELATION_ID("correlation_id");
+const std::string NsSmartDeviceLink::NsJSONHandler::strings::kCode("code");
+const std::string NsSmartDeviceLink::NsJSONHandler::strings::kMessage(
+ "message");
diff --git a/SDL_Core/src/components/formatters/src/formatter_json_rpc.cc b/SDL_Core/src/components/formatters/src/formatter_json_rpc.cc
new file mode 100644
index 000000000..8722df46d
--- /dev/null
+++ b/SDL_Core/src/components/formatters/src/formatter_json_rpc.cc
@@ -0,0 +1,204 @@
+/**
+ * @file formatter_json_rpc.cc
+ * @brief formatter_json_rpc source file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "formatters/formatter_json_rpc.h"
+
+namespace NsSmartDeviceLink {
+namespace NsJSONHandler {
+namespace Formatters {
+
+namespace strings = NsJSONHandler::strings;
+
+const char *FormatterJsonRpc::kRequest = "request";
+const char *FormatterJsonRpc::kResponse = "response";
+const char *FormatterJsonRpc::kNotification = "notification";
+const char *FormatterJsonRpc::kErrorResponse = "error_response";
+const char *FormatterJsonRpc::kJsonRpc = "jsonrpc";
+const char *FormatterJsonRpc::kJsonRpcExpectedValue = "2.0";
+const char *FormatterJsonRpc::kId = "id";
+const char *FormatterJsonRpc::kMethod = "method";
+const char *FormatterJsonRpc::kParams = "params";
+const char *FormatterJsonRpc::kResult = "result";
+const char *FormatterJsonRpc::kError = "error";
+const char *FormatterJsonRpc::kCode = "code";
+const char *FormatterJsonRpc::kData = "data";
+const char *FormatterJsonRpc::kMessage = "message";
+
+bool FormatterJsonRpc::ToString(const NsSmartObjects::SmartObject &obj,
+ std::string &out_str) {
+ bool result = true;
+ try {
+ Json::Value root(Json::objectValue);
+
+ root[kJsonRpc] = kJsonRpcExpectedValue;
+
+ NsSmartObjects::SmartObject formatted_object(obj);
+ Json::Value msg_params_json(Json::objectValue);
+ formatted_object.getSchema().unapplySchema(formatted_object);
+
+ bool is_message_params = formatted_object.keyExists(strings::S_MSG_PARAMS);
+ bool empty_message_params = true;
+ if (true == is_message_params) {
+ const NsSmartObjects::SmartObject &msg_params = formatted_object
+ .getElement(strings::S_MSG_PARAMS);
+
+ result = (NsSmartObjects::SmartType_Map == msg_params.getType());
+ if (true == result) {
+ objToJsonValue(msg_params, msg_params_json);
+ }
+ if (0 < msg_params.length()) {
+ empty_message_params = false;
+ }
+ }
+
+ if (false == formatted_object.keyExists(strings::S_PARAMS)) {
+ result = false;
+ } else {
+ const NsSmartObjects::SmartObject &params = formatted_object.getElement(
+ strings::S_PARAMS);
+ if (NsSmartObjects::SmartType_Map != params.getType()) {
+ result = false;
+ } else {
+ const NsSmartObjects::SmartObject &message_type_object = params
+ .getElement(strings::S_MESSAGE_TYPE);
+
+ if (NsSmartObjects::SmartType_String != message_type_object.getType()) {
+ result = false;
+ } else {
+ const std::string message_type = message_type_object.asString();
+
+ if (kRequest == message_type) {
+ if (false == empty_message_params) {
+ root[kParams] = msg_params_json;
+ }
+ result = result && SetMethod(params, root);
+ result = result && SetId(params, root);
+ } else if (kResponse == message_type) {
+ root[kResult] = msg_params_json;
+ result = result && SetMethod(params, root[kResult]);
+ result = result && SetId(params, root);
+
+ if (false == params.keyExists(strings::kCode)) {
+ result = false;
+ } else {
+ const NsSmartObjects::SmartObject &code = params.getElement(
+ strings::kCode);
+
+ if (NsSmartObjects::SmartType_Integer != code.getType()) {
+ result = false;
+ } else {
+ root[kResult][kCode] = code.asInt();
+ }
+ }
+ } else if (kNotification == message_type) {
+ root[kParams] = msg_params_json;
+ result = result && SetMethod(params, root);
+ } else if (kErrorResponse == message_type) {
+ result = result && SetId(params, root);
+ result = result && SetMethod(params, root[kError][kData]);
+ result = result && SetMessage(params, root[kError]);
+
+ const NsSmartObjects::SmartObject &code = params.getElement(
+ strings::kCode);
+ if (NsSmartObjects::SmartType_Integer != code.getType()) {
+ result = false;
+ } else {
+ root[kError][kCode] = code.asInt();
+ }
+ }
+ }
+ }
+ }
+ out_str = root.toStyledString();
+ } catch (...) {
+ result = false;
+ }
+
+ return result;
+}
+
+bool FormatterJsonRpc::SetMethod(const NsSmartObjects::SmartObject &params,
+ Json::Value &method_container) {
+ bool result = false;
+
+ if (true == params.keyExists(strings::S_FUNCTION_ID)) {
+ const NsSmartObjects::SmartObject &function_id =
+ params.getElement(strings::S_FUNCTION_ID);
+
+ if (NsSmartObjects::SmartType_String == function_id.getType()) {
+ method_container[kMethod] = function_id.asString();
+ result = true;
+ }
+ }
+
+ return result;
+}
+
+bool FormatterJsonRpc::SetId(const NsSmartObjects::SmartObject &params,
+ Json::Value &id_container) {
+ bool result = false;
+
+ if (true == params.keyExists(strings::S_CORRELATION_ID)) {
+ const NsSmartObjects::SmartObject &id = params.getElement(
+ strings::S_CORRELATION_ID);
+
+ if (NsSmartObjects::SmartType_Integer == id.getType()) {
+ id_container[kId] = id.asUInt();
+ result = true;
+ }
+ }
+
+ return result;
+}
+
+bool FormatterJsonRpc::SetMessage(const NsSmartObjects::SmartObject &params,
+ Json::Value &message_container) {
+ bool result = false;
+
+ if (true == params.keyExists(strings::kMessage)) {
+ const NsSmartObjects::SmartObject &message = params.getElement(
+ strings::kMessage);
+
+ if (NsSmartObjects::SmartType_String == message.getType()) {
+ message_container[kMessage] = message.asString();
+ result = true;
+ }
+ }
+
+ return result;
+}
+
+} // namespace Formatters
+} // namespace NsJSONHandler
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/formatters/src/generic_json_formatter.cc b/SDL_Core/src/components/formatters/src/generic_json_formatter.cc
new file mode 100644
index 000000000..ce1aa0380
--- /dev/null
+++ b/SDL_Core/src/components/formatters/src/generic_json_formatter.cc
@@ -0,0 +1,63 @@
+/**
+ * @file generic_json_formatter.cc
+ * @brief Generic JSON formatter source file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "formatters/generic_json_formatter.h"
+
+namespace NsSmartDeviceLink {
+namespace NsJSONHandler {
+namespace Formatters {
+
+void GenericJsonFormatter::ToString(const NsSmartObjects::SmartObject& obj,
+ std::string& out_str) {
+ Json::Value json_root;
+ objToJsonValue(obj, json_root);
+ out_str = json_root.toStyledString();
+}
+
+bool GenericJsonFormatter::FromString(const std::string& str,
+ NsSmartObjects::SmartObject& out) {
+ Json::Value json_root;
+ Json::Reader reader;
+ bool result = reader.parse(str, json_root);
+
+ if (true == result) {
+ jsonValueToObj(json_root, out);
+ }
+
+ return result;
+}
+
+} // namespace Formatters
+} // namespace NsJSONHandler
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/formatters/src/meta_formatter.cc b/SDL_Core/src/components/formatters/src/meta_formatter.cc
new file mode 100644
index 000000000..145020a5e
--- /dev/null
+++ b/SDL_Core/src/components/formatters/src/meta_formatter.cc
@@ -0,0 +1,60 @@
+/**
+ * @file meta_fromatter.cc
+ * @brief implementation of class CMetaFormatter which is designed to format
+ * the smart object against given schema for given formatter
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.auto
+
+#include <set>
+#include <string>
+
+#include "formatters/meta_formatter.h"
+
+namespace formatter_ns = NsSmartDeviceLink::NsJSONHandler::Formatters;
+namespace smart_objects_ns = NsSmartDeviceLink::NsSmartObjects;
+
+//---------------------------------------------------------------
+
+bool formatter_ns::CMetaFormatter::CreateObjectByPattern(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& object,
+ const NsSmartDeviceLink::NsSmartObjects::CSmartSchema& schema,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& result_object) {
+
+ if (smart_objects_ns::SmartType_Invalid == result_object.getType()) {
+ return false;
+ }
+
+ schema.BuildObjectBySchema(object, result_object);
+
+ result_object.setSchema(schema);
+
+ return true;
+}
diff --git a/SDL_Core/src/components/hmi_message_handler/CMakeLists.txt b/SDL_Core/src/components/hmi_message_handler/CMakeLists.txt
new file mode 100644
index 000000000..4bdec5ca2
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/CMakeLists.txt
@@ -0,0 +1,37 @@
+include_directories (
+ ./include/
+ ../application_manager/include/
+ ../utils/include/
+ ../smart_objects/include/
+ ../formatters/include/
+ ../config_profile/include/
+ ../media_manager/include/
+ ../protocol_handler/include
+ ../../thirdPartyLibs/jsoncpp/include/
+ ../../thirdPartyLibs/MessageBroker/include
+ ../config_profile/include
+ ${CMAKE_SOURCE_DIR}/src/components/
+ ${CMAKE_BINARY_DIR}/src/components/
+ ${CMAKE_SOURCE_DIR}/src/components/dbus/include/
+ ${CMAKE_SOURCE_DIR}/
+)
+
+IF (${QT_HMI})
+ set (DBUS_SOURCE ./src/dbus_message_adapter.cc)
+ set (DBUS_ADAPTER DBus)
+ENDIF (${QT_HMI})
+
+set (SOURCES
+ ./src/hmi_message_handler_impl.cc
+ ./src/messagebroker_adapter.cc
+ ./src/hmi_message_adapter.cc
+ ${DBUS_SOURCE}
+)
+
+set (LIBRARIES
+ log4cxx
+ ${DBUS_ADAPTER}
+)
+
+add_library("HMIMessageHandler" ${SOURCES})
+target_link_libraries ("HMIMessageHandler" ${LIBRARIES})
diff --git a/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/dbus_message_adapter.h b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/dbus_message_adapter.h
new file mode 100644
index 000000000..ed3f965bd
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/dbus_message_adapter.h
@@ -0,0 +1,101 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_DBUS_MESSAGE_ADAPTER_H_
+#define SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_DBUS_MESSAGE_ADAPTER_H_
+
+#include <string>
+#include "hmi_message_handler/hmi_message_adapter.h"
+#include "dbus/dbus_message_controller.h"
+#include "smart_objects/smart_object.h"
+
+namespace hmi_message_handler {
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+/**
+ * \brief adapter for DBus
+ */
+class DBusMessageAdapter
+ : public HMIMessageAdapter,
+ public dbus::DBusMessageController {
+ public:
+ typedef utils::SharedPtr<application_manager::Message> MessageSharedPointer;
+ explicit DBusMessageAdapter(HMIMessageHandler* hmi_msg_handler);
+ ~DBusMessageAdapter();
+ void SendMessageToHMI(MessageSharedPointer message);
+
+ /**
+ * \brief subscribes to signals
+ */
+ void SubscribeTo();
+
+ private:
+ static const std::string SDL_SERVICE_NAME;
+ static const std::string SDL_OBJECT_PATH;
+ static const std::string HMI_SERVICE_NAME;
+ static const std::string HMI_OBJECT_PATH;
+
+ /**
+ * \brief sends request to HMI
+ * \param obj request
+ */
+ void Request(const smart_objects::SmartObject &obj);
+
+ /**
+ * \brief sends notification to HMI
+ * \param obj notification
+ */
+ void Notification(const smart_objects::SmartObject& obj);
+
+ /**
+ * \brief sends response to HMI
+ * \param obj response
+ */
+ void Response(const smart_objects::SmartObject &obj);
+
+ /**
+ * \brief sends error response to HMI
+ * \param obj error
+ */
+ void ErrorResponse(const smart_objects::SmartObject& obj);
+
+ /**
+ * \brief sends message to core
+ * \param obj
+ */
+ void SendMessageToCore(const smart_objects::SmartObject &obj);
+};
+
+} // namespace hmi_message_handler
+
+#endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_DBUS_MESSAGE_ADAPTER_H_
diff --git a/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_adapter.h b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_adapter.h
new file mode 100644
index 000000000..dc515318a
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_adapter.h
@@ -0,0 +1,81 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_ADAPTER_H_
+#define SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_ADAPTER_H_
+
+#include "hmi_message_handler/hmi_message_handler.h"
+
+namespace hmi_message_handler {
+/**
+ * \class HMIMessageAdapter
+ * \brief Interface class describing methods neccessary for exchanging message
+ * between ApplicationManager and HMI. Adapter for concrete transport connection
+ * SDL with HMI has to implement this interface.
+ */
+class HMIMessageAdapter : public HMIMessageSender {
+ public:
+ /**
+ * \brief Constructor
+ * \param handler Pointer to implementation of HMIMessageHandler abstract class
+ * to notify it about receiving message or error on sending message.
+ */
+ explicit HMIMessageAdapter(HMIMessageHandler* handler);
+
+ /**
+ * \brief Destructor
+ */
+ virtual ~HMIMessageAdapter();
+
+ protected:
+ /**
+ * \brief Interface for subscriptions.
+ * Each class implementing interface should use it according to
+ * standarts of transport for which it is to be an adapter.
+ * For example, Adapter for MessageBroker will use it to subscribe to notifications
+ * from HMI.
+ */
+ virtual void SubscribeTo() = 0;
+ inline virtual HMIMessageHandler* handler() const {
+ return handler_;
+ }
+
+ private:
+ /**
+ *\brief Pointer on handler to notify it about receiving message/error.
+ */
+ mutable HMIMessageHandler* handler_;
+};
+
+} // namespace hmi_message_handler
+
+#endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_ADAPTER_H_
diff --git a/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler.h b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler.h
new file mode 100644
index 000000000..828ae9a00
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler.h
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_HANDLER_H_
+#define SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_HANDLER_H_
+
+#include "hmi_message_handler/hmi_message_sender.h"
+#include "hmi_message_handler/hmi_message_observer.h"
+
+namespace hmi_message_handler {
+
+class HMIMessageAdapter;
+/**
+ * \class HMIMessageHandler
+ * \brief Abstract class for handling different HMI adapters;
+ * establishing interface for message exchange between SDL core and HMI.
+ */
+class HMIMessageHandler : public HMIMessageObserver, public HMIMessageSender {
+ public:
+ virtual ~HMIMessageHandler() {}
+ virtual void AddHMIMessageAdapter(HMIMessageAdapter* adapter) = 0;
+ virtual void RemoveHMIMessageAdapter(HMIMessageAdapter* adapter) = 0;
+};
+
+} // namespace hmi_message_handler
+
+#endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_HANDLER_H_
diff --git a/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h
new file mode 100644
index 000000000..4800f3000
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h
@@ -0,0 +1,124 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_HANDLER_IMPL_H_
+#define SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_HANDLER_IMPL_H_
+
+#include <set>
+#include "hmi_message_handler/hmi_message_adapter.h"
+#include "hmi_message_handler/hmi_message_handler.h"
+#include "utils/macro.h"
+#include "utils/message_queue.h"
+#include "utils/prioritized_queue.h"
+#include "utils/threads/message_loop_thread.h"
+#include "utils/threads/thread.h"
+#include "utils/singleton.h"
+
+namespace hmi_message_handler {
+
+
+namespace impl {
+/*
+* These dummy classes are here to locally impose strong typing on different
+* kinds of messages
+* Currently there is no type difference between incoming and outgoing messages
+* TODO(ik): replace these with globally defined message types
+* when we have them.
+*/
+struct MessageFromHmi: public MessageSharedPointer {
+ MessageFromHmi(const MessageSharedPointer& message)
+ : MessageSharedPointer(message) {}
+ // PrioritizedQueue requres this method to decide which priority to assign
+ size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); }
+};
+
+struct MessageToHmi: public MessageSharedPointer {
+ MessageToHmi(const MessageSharedPointer& message)
+ : MessageSharedPointer(message) {}
+ // PrioritizedQueue requres this method to decide which priority to assign
+ size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); }
+};
+
+typedef threads::MessageLoopThread<
+ utils::PrioritizedQueue<MessageFromHmi> > FromHmiQueue;
+typedef threads::MessageLoopThread<
+ utils::PrioritizedQueue<MessageToHmi> > ToHmiQueue;
+}
+
+class ToHMIThreadImpl;
+class FromHMIThreadImpl;
+
+class HMIMessageHandlerImpl
+ : public HMIMessageHandler,
+ public impl::FromHmiQueue::Handler,
+ public impl::ToHmiQueue::Handler,
+ public utils::Singleton<HMIMessageHandlerImpl> {
+ public:
+ ~HMIMessageHandlerImpl();
+ void OnMessageReceived(MessageSharedPointer message);
+ void SendMessageToHMI(MessageSharedPointer message);
+ void set_message_observer(HMIMessageObserver* observer);
+ void OnErrorSending(MessageSharedPointer message);
+ void AddHMIMessageAdapter(HMIMessageAdapter* adapter);
+ void RemoveHMIMessageAdapter(HMIMessageAdapter* adapter);
+
+ private:
+ HMIMessageHandlerImpl();
+
+
+ // threads::MessageLoopThread<*>::Handler implementations
+
+ // CALLED ON messages_from_hmi_ THREAD!
+ virtual void Handle(const impl::MessageFromHmi& message) OVERRIDE;
+ // CALLED ON messages_to_hmi_ THREAD!
+ virtual void Handle(const impl::MessageToHmi& message) OVERRIDE;
+ private:
+
+ HMIMessageObserver* observer_;
+ std::set<HMIMessageAdapter*> message_adapters_;
+
+ // Construct message threads when everything is already created
+
+ // Thread that pumps messages coming from hmi.
+ impl::FromHmiQueue messages_from_hmi_;
+ // Thread that pumps messages being passed to hmi.
+ impl::ToHmiQueue messages_to_hmi_;
+
+ static log4cxx::LoggerPtr logger_;
+
+ DISALLOW_COPY_AND_ASSIGN(HMIMessageHandlerImpl);
+
+ FRIEND_BASE_SINGLETON_CLASS(HMIMessageHandlerImpl);
+};
+} // namespace hmi_message_handler
+
+#endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_HANDLER_IMPL_H_
diff --git a/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_observer.h b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_observer.h
new file mode 100644
index 000000000..fa0258149
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_observer.h
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_OBSERVER_H_
+#define SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_OBSERVER_H_
+
+namespace hmi_message_handler {
+
+class HMIMessageObserver {
+ public:
+ virtual void OnMessageReceived(
+ utils::SharedPtr<application_manager::Message> message) = 0;
+ virtual void OnErrorSending(
+ utils::SharedPtr<application_manager::Message> message) = 0;
+};
+}
+
+#endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_OBSERVER_H_
diff --git a/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_sender.h b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_sender.h
new file mode 100644
index 000000000..271285730
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_sender.h
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_SENDER_H_
+#define SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_SENDER_H_
+
+#include "application_manager/message.h"
+
+namespace hmi_message_handler {
+ typedef utils::SharedPtr<application_manager::Message> MessageSharedPointer;
+
+class HMIMessageSender {
+ public:
+ virtual void SendMessageToHMI(MessageSharedPointer message) = 0;
+};
+
+}
+
+#endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_SENDER_H_
diff --git a/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/messagebroker_adapter.h b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/messagebroker_adapter.h
new file mode 100644
index 000000000..6bd244719
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/include/hmi_message_handler/messagebroker_adapter.h
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_MESSAGEBROKER_ADAPTER_H_
+#define SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_MESSAGEBROKER_ADAPTER_H_
+
+#include <string>
+
+#include "mb_controller.hpp"
+#include "hmi_message_handler/hmi_message_adapter.h"
+#include "utils/logger.h"
+#include "utils/threads/thread_validator.h"
+
+namespace hmi_message_handler {
+
+class MessageBrokerAdapter : public HMIMessageAdapter,
+ public NsMessageBroker::CMessageBrokerController,
+ public threads::SingleThreadValidator {
+ public:
+ MessageBrokerAdapter(HMIMessageHandler* handler_param, const std::string&
+ server_address, uint16_t port);
+ ~MessageBrokerAdapter();
+ void SendMessageToHMI(MessageSharedPointer message);
+
+ /*Methods from CMessageBrokerController*/
+ /**
+ * \brief Called on receiving response message from RPCBus.
+ * \param method Name of corresponding request method that was sent previously to RPCBus.
+ * \param root Received Json object.
+ */
+ void processResponse(std::string method, Json::Value& root);
+
+ /**
+ * \brief Called on receiving request message from RPCBus.
+ * \param root Received Json object.
+ */
+ void processRequest(Json::Value& root);
+
+ /**
+ * \brief Called on receiving notification message from RPCBus.
+ * \param root Received Json object.
+ */
+ void processNotification(Json::Value& root);
+
+ void SubscribeTo();
+
+ void* SubscribeAndBeginReceiverThread(void* param);
+
+ protected:
+ void ProcessRecievedFromMB(Json::Value& root);
+
+ private:
+ static const std::string ADDRESS;
+ static const uint16_t PORT;
+
+ static log4cxx::LoggerPtr logger_;
+ DISALLOW_COPY_AND_ASSIGN(MessageBrokerAdapter);
+};
+} // namespace hmi_message_handler
+
+#endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_MESSAGEBROKER_ADAPTER_H_
diff --git a/SDL_Core/src/components/hmi_message_handler/src/dbus_message_adapter.cc b/SDL_Core/src/components/hmi_message_handler/src/dbus_message_adapter.cc
new file mode 100644
index 000000000..62d9f8615
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/src/dbus_message_adapter.cc
@@ -0,0 +1,196 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "hmi_message_handler/dbus_message_adapter.h"
+
+#include "formatters/CSmartFactory.hpp"
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+namespace sos = NsSmartDeviceLink::NsJSONHandler::strings;
+
+namespace hmi_message_handler {
+
+const std::string DBusMessageAdapter::SDL_SERVICE_NAME = "com.ford.sdl.core";
+const std::string DBusMessageAdapter::SDL_OBJECT_PATH = "/";
+const std::string DBusMessageAdapter::HMI_SERVICE_NAME = "com.ford.sdl.hmi";
+const std::string DBusMessageAdapter::HMI_OBJECT_PATH = "/";
+
+std::vector<std::string> &split(const std::string &s, char delim,
+ std::vector<std::string> &elems) {
+ std::stringstream ss(s);
+ std::string item;
+ while (std::getline(ss, item, delim)) {
+ elems.push_back(item);
+ }
+ return elems;
+}
+
+DBusMessageAdapter::DBusMessageAdapter(HMIMessageHandler* hmi_msg_handler)
+ : HMIMessageAdapter(hmi_msg_handler),
+ DBusMessageController(SDL_SERVICE_NAME, SDL_OBJECT_PATH,
+ HMI_SERVICE_NAME, HMI_OBJECT_PATH) {
+ LOG4CXX_INFO(logger_, "Created DBusMessageAdapter");
+}
+
+DBusMessageAdapter::~DBusMessageAdapter() {
+}
+
+void DBusMessageAdapter::SendMessageToHMI(MessageSharedPointer message) {
+ LOG4CXX_INFO(logger_, "DBusMessageAdapter::sendMessageToHMI");
+
+ const smart_objects::SmartObject& smart = message->smart_object();
+ switch (smart[sos::S_PARAMS][sos::S_MESSAGE_TYPE].asInt()) {
+ case hmi_apis::messageType::request:
+ Request(smart);
+ break;
+ case hmi_apis::messageType::notification:
+ Notification(smart);
+ break;
+ case hmi_apis::messageType::response:
+ Response(smart);
+ break;
+ case hmi_apis::messageType::error_response:
+ ErrorResponse(smart);
+ break;
+ case hmi_apis::messageType::INVALID_ENUM:
+ default:
+ LOG4CXX_INFO(logger_, "Message type is invalid");
+ }
+}
+
+void DBusMessageAdapter::SubscribeTo() {
+ LOG4CXX_INFO(logger_, "DBusMessageAdapter::subscribeTo");
+ DBusMessageController::SubscribeTo("Buttons", "OnButtonEvent");
+ DBusMessageController::SubscribeTo("Buttons", "OnButtonPress");
+ DBusMessageController::SubscribeTo("UI", "ShowNotification");
+ DBusMessageController::SubscribeTo("UI", "OnCommand");
+ DBusMessageController::SubscribeTo("UI", "OnDriverDistraction");
+ DBusMessageController::SubscribeTo("UI", "OnSystemContext");
+ DBusMessageController::SubscribeTo("UI", "OnLanguageChange");
+ DBusMessageController::SubscribeTo("UI", "OnKeyboardInput");
+ DBusMessageController::SubscribeTo("UI", "OnTouchEvent");
+ DBusMessageController::SubscribeTo("UI", "OnResetTimeout");
+ DBusMessageController::SubscribeTo("VR", "Started");
+ DBusMessageController::SubscribeTo("VR", "Stopped");
+ DBusMessageController::SubscribeTo("VR", "OnCommand");
+ DBusMessageController::SubscribeTo("VR", "OnLanguageChange");
+ DBusMessageController::SubscribeTo("BasicCommunication", "OnReady");
+ DBusMessageController::SubscribeTo("BasicCommunication", "OnAppDeactivated");
+ DBusMessageController::SubscribeTo("BasicCommunication", "OnStartDeviceDiscovery");
+ DBusMessageController::SubscribeTo("BasicCommunication", "OnUpdateDeviceList");
+ DBusMessageController::SubscribeTo("BasicCommunication", "OnFindApplications");
+ DBusMessageController::SubscribeTo("BasicCommunication", "OnAppActivated");
+ DBusMessageController::SubscribeTo("BasicCommunication", "OnAppRegistered");
+ DBusMessageController::SubscribeTo("BasicCommunication", "OnAppUnregistered");
+ DBusMessageController::SubscribeTo("BasicCommunication", "OnExitApplication");
+ DBusMessageController::SubscribeTo("BasicCommunication", "OnExitAllApplications");
+ DBusMessageController::SubscribeTo("BasicCommunication", "OnDeviceChosen");
+ DBusMessageController::SubscribeTo("TTS", "Started");
+ DBusMessageController::SubscribeTo("TTS", "Stopped");
+ DBusMessageController::SubscribeTo("TTS", "OnLanguageChange");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnGpsData");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnSpeed");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnRpm");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnFuelLevel");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnFuelLevelState");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnInstantFuelConsumption");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnExternalTemperature");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnVin");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnPrndl");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnTirePressure");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnOdometer");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnBeltStatus");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnBodyInformation");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnDeviceStatus");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnDriverBraking");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnWiperStatus");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnHeadLampStatus");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnEngineTorque");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnAccPedalPosition");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnSteeringWheelAngle");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnECallInfo");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnAirbagStatus");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnEmergencyEvent");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnClusterModeStatus");
+ DBusMessageController::SubscribeTo("VehicleInfo", "OnMyKey");
+ DBusMessageController::SubscribeTo("Navigation", "OnTBTClientState");
+ LOG4CXX_INFO(logger_, "Subscribed to notifications.");
+}
+
+void DBusMessageAdapter::SendMessageToCore(const smart_objects::SmartObject& obj) {
+ LOG4CXX_INFO(logger_, "DBusMessageAdapter::SendMessageToCore");
+
+ if (!handler()) {
+ LOG4CXX_WARN(logger_, "DBusMessageAdapter hasn't handler");
+ return;
+ }
+
+ MessageSharedPointer message = new application_manager::Message(protocol_handler::MessagePriority::kDefault);//todo: ykazakov constant is a temp solution to finish merge MessagePriority::FromServiceType(message.servicetype) shall be used instead
+ message->set_protocol_version(application_manager::ProtocolVersion::kHMI);
+ message->set_smart_object(obj);
+ handler()->OnMessageReceived(message);
+ LOG4CXX_INFO(logger_, "Successfully sent to observer");
+}
+
+void DBusMessageAdapter::Request(const smart_objects::SmartObject& obj) {
+ LOG4CXX_DEBUG(logger_, "Request");
+ dbus::MessageId func_id = static_cast<dbus::MessageId>(
+ obj[sos::S_PARAMS][sos::S_FUNCTION_ID].asInt());
+ dbus::MessageName name = get_schema().getMessageName(func_id);
+ uint id = obj[sos::S_PARAMS][sos::S_CORRELATION_ID].asInt();
+ MethodCall(id, func_id, name, obj[sos::S_MSG_PARAMS]);
+}
+
+void DBusMessageAdapter::Notification(const smart_objects::SmartObject &obj) {
+ LOG4CXX_DEBUG(logger_, "Notification");
+ dbus::MessageId func_id = static_cast<dbus::MessageId>(
+ obj[sos::S_PARAMS][sos::S_FUNCTION_ID].asInt());
+ dbus::MessageName name = get_schema().getMessageName(func_id);
+ Signal(func_id, name, obj[sos::S_MSG_PARAMS]);
+}
+
+void DBusMessageAdapter::Response(const smart_objects::SmartObject& obj) {
+ LOG4CXX_DEBUG(logger_, "Response");
+ uint id = obj[sos::S_PARAMS][sos::S_CORRELATION_ID].asInt();
+ MethodReturn(id, obj[sos::S_MSG_PARAMS]);
+}
+
+void DBusMessageAdapter::ErrorResponse(const smart_objects::SmartObject &obj) {
+ LOG4CXX_DEBUG(logger_, "Error");
+ // TODO(KKolodiy): get error and description
+ std::string error = "";
+ std::string description = "";
+ uint id = obj[sos::S_PARAMS][sos::S_CORRELATION_ID].asInt();
+ Error(id, error, description);
+}
+
+} // namespace hmi_message_handler
diff --git a/SDL_Core/src/components/hmi_message_handler/src/hmi_message_adapter.cc b/SDL_Core/src/components/hmi_message_handler/src/hmi_message_adapter.cc
new file mode 100644
index 000000000..343f13f00
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/src/hmi_message_adapter.cc
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "hmi_message_handler/hmi_message_adapter.h"
+
+namespace hmi_message_handler {
+HMIMessageAdapter::HMIMessageAdapter(HMIMessageHandler* handler)
+ : handler_(handler) {
+}
+
+HMIMessageAdapter::~HMIMessageAdapter() {
+ handler_ = 0;
+}
+
+} // namespace hmi_message_handler
diff --git a/SDL_Core/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc b/SDL_Core/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc
new file mode 100644
index 000000000..7df82fd82
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "hmi_message_handler/hmi_message_handler_impl.h"
+#include "config_profile/profile.h"
+
+namespace hmi_message_handler {
+
+log4cxx::LoggerPtr HMIMessageHandlerImpl::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("HMIMessageHandler"));
+
+HMIMessageHandlerImpl::HMIMessageHandlerImpl()
+ : observer_(NULL),
+ messages_to_hmi_("hmi_message_handler::ToHMIThreadImpl", this,
+ threads::ThreadOptions(
+ profile::Profile::instance()->thread_min_stack_size())),
+ messages_from_hmi_("hmi_message_handler::FromHMIThreadImpl", this,
+ threads::ThreadOptions(
+ profile::Profile::instance()->thread_min_stack_size())) {
+}
+
+HMIMessageHandlerImpl::~HMIMessageHandlerImpl() {
+ LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::~HMIMessageHandlerImpl()");
+ observer_ = NULL;
+ if (!message_adapters_.empty()) {
+ LOG4CXX_WARN(logger_, "Not all HMIMessageAdapter have unsubscribed from"
+ " HMIMessageHandlerImpl");
+ }
+}
+
+void HMIMessageHandlerImpl::OnMessageReceived(MessageSharedPointer message) {
+ LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::OnMessageReceived()");
+ if (!observer_) {
+ LOG4CXX_WARN(logger_, "No HMI message observer set!");
+ return;
+ }
+ messages_from_hmi_.PostMessage(impl::MessageFromHmi(message));
+}
+
+void HMIMessageHandlerImpl::SendMessageToHMI(MessageSharedPointer message) {
+ LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::~sendMessageToHMI()");
+ messages_to_hmi_.PostMessage(impl::MessageToHmi(message));
+}
+
+void HMIMessageHandlerImpl::set_message_observer(HMIMessageObserver* observer) {
+ LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::SetMessageObserver()");
+ observer_ = observer;
+}
+
+void HMIMessageHandlerImpl::OnErrorSending(MessageSharedPointer message) {
+ LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::OnErrorSending()");
+ if (!observer_) {
+ LOG4CXX_WARN(logger_, "No HMI message observer set!");
+ return;
+ }
+ observer_->OnErrorSending(message);
+}
+
+void HMIMessageHandlerImpl::AddHMIMessageAdapter(HMIMessageAdapter* adapter) {
+ LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::AddHMIMessageAdapter()");
+ message_adapters_.insert(adapter);
+}
+
+void HMIMessageHandlerImpl::RemoveHMIMessageAdapter(
+ HMIMessageAdapter* adapter) {
+ LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::RemoveHMIMessageAdapter()");
+ DCHECK(adapter != NULL);
+ message_adapters_.erase(adapter);
+}
+
+void HMIMessageHandlerImpl::Handle(const impl::MessageFromHmi& message) {
+ LOG4CXX_INFO(logger_, "Received message from hmi");
+
+ if (!observer_) {
+ LOG4CXX_ERROR(logger_, "Observer is not set for HMIMessageHandler");
+ return;
+ }
+
+ observer_->OnMessageReceived(message);
+ LOG4CXX_INFO(logger_, "Message from hmi given away.");
+
+}
+void HMIMessageHandlerImpl::Handle(const impl::MessageToHmi& message) {
+ for (std::set<HMIMessageAdapter*>::iterator it =
+ message_adapters_.begin();
+ it != message_adapters_.end();
+ ++it) {
+ (*it)->SendMessageToHMI(message);
+ }
+}
+
+
+} // namespace hmi_message_handler
diff --git a/SDL_Core/src/components/hmi_message_handler/src/messagebroker_adapter.cc b/SDL_Core/src/components/hmi_message_handler/src/messagebroker_adapter.cc
new file mode 100644
index 000000000..4949b92e3
--- /dev/null
+++ b/SDL_Core/src/components/hmi_message_handler/src/messagebroker_adapter.cc
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string>
+
+#include "hmi_message_handler/messagebroker_adapter.h"
+#include "config_profile/profile.h"
+
+namespace hmi_message_handler {
+
+typedef NsMessageBroker::CMessageBrokerController MessageBrokerController;
+
+log4cxx::LoggerPtr MessageBrokerAdapter::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("HMIMessageHandler"));
+
+MessageBrokerAdapter::MessageBrokerAdapter(HMIMessageHandler* handler_param,
+ const std::string& server_address,
+ uint16_t port)
+ : MessageBrokerController(server_address, port, "SDL"),
+ HMIMessageAdapter(handler_param) {
+ LOG4CXX_INFO(logger_, "Created MessageBrokerAdapter");
+}
+
+MessageBrokerAdapter::~MessageBrokerAdapter() {
+}
+
+void MessageBrokerAdapter::SendMessageToHMI(
+ hmi_message_handler::MessageSharedPointer message) {
+ LOG4CXX_INFO(logger_, "MessageBrokerAdapter::sendMessageToHMI");
+ /*if (!message) {
+ // TODO(PV): LOG
+ return;
+ }*/
+
+ Json::Reader reader;
+ Json::Value json_value;
+ if (!reader.parse(message->json_message(), json_value, false)) {
+ // TODO(PV): LOG4CXX_ERROR(mLogger, "Received invalid json string.");
+ return;
+ }
+
+ sendJsonMessage(json_value);
+}
+
+void MessageBrokerAdapter::processResponse(std::string method,
+ Json::Value& root) {
+ LOG4CXX_INFO(logger_, "MessageBrokerAdapter::processResponse");
+ ProcessRecievedFromMB(root);
+}
+
+void MessageBrokerAdapter::processRequest(Json::Value& root) {
+ LOG4CXX_INFO(logger_, "MessageBrokerAdapter::processRequest");
+ ProcessRecievedFromMB(root);
+}
+
+void MessageBrokerAdapter::processNotification(Json::Value& root) {
+ LOG4CXX_INFO(logger_, "MessageBrokerAdapter::processNotification");
+ ProcessRecievedFromMB(root);
+}
+
+void MessageBrokerAdapter::SubscribeTo() {
+ LOG4CXX_INFO(logger_, "MessageBrokerAdapter::subscribeTo");
+ MessageBrokerController::subscribeTo("Buttons.OnButtonEvent");
+ MessageBrokerController::subscribeTo("Buttons.OnButtonPress");
+ MessageBrokerController::subscribeTo("UI.OnCommand");
+ MessageBrokerController::subscribeTo("VR.OnCommand");
+ MessageBrokerController::subscribeTo("BasicCommunication.OnReady");
+ MessageBrokerController::subscribeTo("BasicCommunication.OnExitAllApplications");
+ MessageBrokerController::subscribeTo("UI.OnDriverDistraction");
+ MessageBrokerController::subscribeTo("UI.OnSystemContext");
+ MessageBrokerController::subscribeTo("UI.OnAppActivated");
+ MessageBrokerController::subscribeTo("UI.OnKeyboardInput");
+ MessageBrokerController::subscribeTo("UI.OnTouchEvent");
+ MessageBrokerController::subscribeTo("UI.OnResetTimeout");
+ MessageBrokerController::subscribeTo("BasicCommunication.OnAppDeactivated");
+ MessageBrokerController::subscribeTo(
+ "BasicCommunication.OnStartDeviceDiscovery");
+ MessageBrokerController::subscribeTo("BasicCommunication.OnUpdateDeviceList");
+ MessageBrokerController::subscribeTo("BasicCommunication.OnFindApplications");
+ MessageBrokerController::subscribeTo("BasicCommunication.OnAppActivated");
+ MessageBrokerController::subscribeTo("BasicCommunication.OnExitApplication");
+ MessageBrokerController::subscribeTo(
+ "BasicCommunication.OnExitAllApplications");
+ MessageBrokerController::subscribeTo("BasicCommunication.OnDeviceChosen");
+ MessageBrokerController::subscribeTo("UI.OnLanguageChange");
+ MessageBrokerController::subscribeTo("VR.OnLanguageChange");
+ MessageBrokerController::subscribeTo("TTS.OnLanguageChange");
+ MessageBrokerController::subscribeTo("VehicleInfo.OnVehicleData");
+ MessageBrokerController::subscribeTo("Navigation.OnTBTClientState");
+ MessageBrokerController::subscribeTo("TTS.Started");
+ MessageBrokerController::subscribeTo("TTS.Stopped");
+ MessageBrokerController::subscribeTo("BasicCommunication.OnSystemRequest");
+
+ LOG4CXX_INFO(logger_, "Subscribed to notifications.");
+}
+
+void* MessageBrokerAdapter::SubscribeAndBeginReceiverThread(void* param) {
+ PassToThread(threads::Thread::CurrentId());
+ registerController();
+ SubscribeTo();
+ return MethodForReceiverThread(param);
+}
+
+void MessageBrokerAdapter::ProcessRecievedFromMB(Json::Value& root) {
+ LOG4CXX_INFO(logger_, "MessageBrokerAdapter::ProcessRecievedFromMB");
+ if (root.isNull()) {
+ // LOG
+ return;
+ }
+
+ Json::FastWriter writer;
+ std::string message_string = writer.write(root);
+
+ if (message_string.empty()) {
+ // LOG
+ return;
+ }
+
+ if (!handler()) {
+ // WARNING
+ return;
+ }
+
+ // Messages from HMI (sent through message broker) have no priority so far
+ // assign default priority
+ hmi_message_handler::MessageSharedPointer message = hmi_message_handler::MessageSharedPointer(new application_manager::Message(
+ protocol_handler::MessagePriority::kDefault));
+ // message->set_message_type()
+ message->set_json_message(message_string);
+ message->set_protocol_version(application_manager::ProtocolVersion::kHMI);
+
+ handler()->OnMessageReceived(message);
+ LOG4CXX_INFO(logger_, "Successfully sent to observer");
+}
+
+} // namespace hmi_message_handler
diff --git a/SDL_Core/src/components/interfaces/CMakeLists.txt b/SDL_Core/src/components/interfaces/CMakeLists.txt
new file mode 100644
index 000000000..f611dfaca
--- /dev/null
+++ b/SDL_Core/src/components/interfaces/CMakeLists.txt
@@ -0,0 +1,50 @@
+include_directories (
+ ../utils/include/
+ ../formatters/include
+)
+
+GenerateInterface("v4_protocol_v1_2_no_extra.xml" "NsSmartDeviceLinkRPC::V1" "sdlrpcv1")
+GenerateInterface("MOBILE_API.xml" "mobile_apis" "sdlrpcv2")
+
+IF (${WEB_HMI})
+ GenerateInterface("HMI_API.xml" "hmi_apis" "jsonrpc")
+ENDIF (${WEB_HMI})
+
+IF (${QT_HMI})
+ set(hpp_file
+ "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API.h"
+ "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.h"
+ )
+
+ set(cpp_file "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.cc")
+ set(full_xml_name "${CMAKE_CURRENT_SOURCE_DIR}/QT_HMI_API.xml")
+
+ add_custom_command( OUTPUT ${hpp_file} ${cpp_file}
+ COMMAND ${INTEFRACE_GENERATOR_CMD} ${full_xml_name} hmi_apis ${CMAKE_CURRENT_BINARY_DIR} "--parser-type" "jsonrpc"
+ DEPENDS ${INTERFACE_GENERATOR_DEPENDENCIES} ${full_xml_name}
+ COMMENT "Generating files:\n ${hpp_file}\n ${cpp_file}\nfrom:\n QT_HMI_API.xml ..."
+ VERBATIM
+ )
+
+ include_directories (
+ ../../../src/components/smart_objects/include
+ ../../../src/components/formatters/include/
+ ${CMAKE_SOURCE_DIR}/src/components/formatters/include/
+ ${CMAKE_BINARY_DIR}
+ )
+
+ add_custom_command(
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API.h"
+ COMMAND sed "-e" "s/QT_HMI_API/HMI_API/g" "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API.h" > "${CMAKE_CURRENT_BINARY_DIR}/HMI_API.h"
+ DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API.h")
+ add_custom_command(
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.h"
+ COMMAND sed "-e" "s/QT_HMI_API/HMI_API/g" "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.h" > "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.h"
+ DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.h")
+ add_custom_command(
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc"
+ COMMAND sed "-e" "s/QT_HMI_API/HMI_API/g" "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.cc" > "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc"
+ DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.cc" "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.h" "${CMAKE_CURRENT_BINARY_DIR}/HMI_API.h")
+ add_library(HMI_API "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc")
+ENDIF (${QT_HMI})
+
diff --git a/SDL_Core/src/components/media_manager/CMakeLists.txt b/SDL_Core/src/components/media_manager/CMakeLists.txt
new file mode 100644
index 000000000..2d631fd5b
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/CMakeLists.txt
@@ -0,0 +1,75 @@
+if (EXTENDED_MEDIA_MODE)
+find_package(Gstreamer-1.0 REQUIRED)
+find_package(Glib-2.0 REQUIRED)
+find_package(PkgConfig)
+pkg_check_modules(GLIB2 REQUIRED glib-2.0)
+add_definitions(${GLIB2_CFLAGS})
+set(default_includes
+ ${GSTREAMER_gst_INCLUDE_DIR}
+ ${GLIB_glib_2_INCLUDE_DIR}
+)
+set(default_sources
+ ./src/audio/a2dp_source_player_adapter.cc
+ ./src/audio/from_mic_recorder_adapter.cc
+ ./src/audio/from_mic_to_file_recorder_thread.cc
+ ./src/audio/socket_audio_streamer_adapter.cc
+ ./src/audio/pipe_audio_streamer_adapter.cc
+ ./src/video/socket_video_streamer_adapter.cc
+ ./src/video/pipe_video_streamer_adapter.cc
+ ./src/video/video_stream_to_file_adapter.cc
+ ./src/pipe_streamer_adapter.cc
+ ./src/socket_streamer_adapter.cc
+)
+set(LIBRARIES
+ ${GSTREAMER_gstreamer_LIBRARY}
+ pulse-simple
+ pulse
+ gobject-2.0
+ glib-2.0
+)
+else(EXTENDED_MEDIA_MODE)
+set(default_includes
+)
+set(default_sources
+ ./src/video/video_stream_to_file_adapter.cc
+ ./src/audio/socket_audio_streamer_adapter.cc
+ ./src/audio/pipe_audio_streamer_adapter.cc
+ ./src/video/socket_video_streamer_adapter.cc
+ ./src/video/pipe_video_streamer_adapter.cc
+ ./src/video/video_stream_to_file_adapter.cc
+ ./src/pipe_streamer_adapter.cc
+ ./src/socket_streamer_adapter.cc
+)
+set(LIBRARIES
+)
+endif()
+
+include_directories (
+ ./include
+ ./include/audio/
+ ./include/video/
+ ../utils/include/
+ ../protocol_handler/include/
+ ../connection_handler/include/
+ ../transport_manager/include/
+ ../application_manager/include/
+ ../smart_objects/include/
+ ../hmi_message_handler/include/
+ ../request_watchdog/include/
+ ../formatters/include
+ ../config_profile/include/
+ ../../thirdPartyLibs/jsoncpp/include/
+ ${CMAKE_BINARY_DIR}/src/components/
+ ${default_includes}
+)
+
+set (SOURCES
+ ./src/media_adapter_impl.cc
+ ./src/audio/from_mic_recorder_listener.cc
+ ./src/audio/audio_stream_sender_thread.cc
+ ./src/streamer_listener.cc
+ ./src/media_manager_impl.cc
+)
+
+add_library("MediaManager" ${SOURCES} ${default_sources})
+target_link_libraries("MediaManager" ${LIBRARIES})
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/audio/a2dp_source_player_adapter.h b/SDL_Core/src/components/media_manager/include/media_manager/audio/a2dp_source_player_adapter.h
new file mode 100644
index 000000000..ae8433509
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/audio/a2dp_source_player_adapter.h
@@ -0,0 +1,67 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_A2DP_SOURCE_PLAYER_ADAPTER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_A2DP_SOURCE_PLAYER_ADAPTER_H_
+
+#include <map>
+#include "protocol_handler/raw_message.h"
+#include "media_manager/media_adapter_impl.h"
+#include "utils/logger.h"
+
+namespace threads {
+class Thread;
+}
+
+namespace media_manager {
+
+class A2DPSourcePlayerAdapter : public MediaAdapterImpl {
+ public:
+ A2DPSourcePlayerAdapter();
+ ~A2DPSourcePlayerAdapter();
+ void SendData(int32_t application_key,
+ const protocol_handler::RawMessagePtr& message) {}
+ void StartActivity(int32_t application_key);
+ void StopActivity(int32_t application_key);
+ bool is_app_performing_activity(int32_t application_key);
+
+ private:
+ class A2DPSourcePlayerThread;
+
+ std::map<int32_t, threads::Thread*> sources_;
+ static log4cxx::LoggerPtr logger_;
+ DISALLOW_COPY_AND_ASSIGN(A2DPSourcePlayerAdapter);
+};
+
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_A2DP_SOURCE_PLAYER_ADAPTER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/audio/audio_stream_sender_thread.h b/SDL_Core/src/components/media_manager/include/media_manager/audio/audio_stream_sender_thread.h
new file mode 100644
index 000000000..c5ee3231e
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/audio/audio_stream_sender_thread.h
@@ -0,0 +1,135 @@
+//
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_AUDIO_STREAM_SENDER_THREAD_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_AUDIO_STREAM_SENDER_THREAD_H_
+
+#include <string>
+#include "utils/logger.h"
+#include "utils/macro.h"
+#include "utils/threads/thread_delegate.h"
+#include "utils/lock.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+}
+}
+
+namespace media_manager {
+
+typedef enum {
+ SR_INVALID = -1,
+ SR_8KHZ = 0,
+ SR_16KHZ = 1,
+ SR_22KHZ = 2,
+ SR_44KHZ = 3
+} SamplingRate;
+
+typedef enum {
+ ACQ_INVALID = -1,
+ ACQ_8_BIT = 0,
+ ACQ_16_BIT = 1
+} AudioCaptureQuality;
+
+typedef enum {
+ AT_INVALID = -1,
+ AT_PCM = 0
+} AudioType;
+
+/*
+ * @brief AudioStreamSenderThread class used to read binary data written from microphone
+ * and send it every 1 second to mobile device.
+ */
+class AudioStreamSenderThread : public threads::ThreadDelegate {
+ public:
+ /*
+ * @brief AudioStreamSenderThread class constructor
+ *
+ * @param session_key Session key of connection for Mobile side
+ * @param correlation_id Correlation id for response for Mobile side
+ */
+ AudioStreamSenderThread(const std::string fileName,
+ uint32_t session_key);
+
+ /*
+ * @brief AudioStreamSenderThread class destructor
+ */
+ ~AudioStreamSenderThread();
+
+ /**
+ * @brief Thread procedure.
+ */
+ void threadMain();
+
+ /*
+ * @brief Retrieve session key
+ *
+ * @return Stored session key
+ */
+ uint32_t session_key() const;
+
+ bool exitThreadMain();
+
+ private:
+ /*
+ * @brief Sends AudioPassThru request
+ */
+ bool SendEndAudioPassThru();
+
+ void sendAudioChunkToMobile();
+
+ /*
+ * @brief Creates command for corresponding smart object
+ *
+ * @param cmd Smart object representing command
+ */
+ void FactoryCreateCommand(
+ NsSmartDeviceLink::NsSmartObjects::SmartObject* cmd);
+
+ bool getShouldBeStopped();
+ void setShouldBeStopped(bool should_stop);
+
+ uint32_t session_key_;
+ const std::string fileName_;
+ int32_t offset_;
+ bool shouldBeStoped_;
+ sync_primitives::Lock shouldBeStoped_lock_;
+
+ static const int32_t kAudioPassThruTimeout;
+ static log4cxx::LoggerPtr logger_;
+
+ DISALLOW_COPY_AND_ASSIGN(AudioStreamSenderThread);
+};
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_AUDIO_STREAM_SENDER_THREAD_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_recorder_adapter.h b/SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_recorder_adapter.h
new file mode 100644
index 000000000..f49526a0f
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_recorder_adapter.h
@@ -0,0 +1,67 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_FROM_MIC_RECORDER_ADAPTER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_FROM_MIC_RECORDER_ADAPTER_H_
+
+#include <string>
+#include "media_manager/media_adapter_impl.h"
+#include "utils/logger.h"
+
+namespace threads {
+class Thread;
+}
+
+namespace media_manager {
+
+class FromMicRecorderAdapter : public MediaAdapterImpl {
+ public:
+ FromMicRecorderAdapter();
+ ~FromMicRecorderAdapter();
+ void SendData(int32_t application_key,
+ const protocol_handler::RawMessagePtr& message) {}
+ void StartActivity(int32_t application_key);
+ void StopActivity(int32_t application_key);
+ bool is_app_performing_activity(int32_t application_key);
+ void set_output_file(const std::string& output_file);
+ void set_duration(int32_t duration);
+ private:
+ threads::Thread* recorder_thread_;
+ std::string output_file_;
+ int32_t duration_;
+ const int32_t kDefaultDuration;
+ static log4cxx::LoggerPtr logger_;
+ DISALLOW_COPY_AND_ASSIGN(FromMicRecorderAdapter);
+};
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_FROM_MIC_RECORDER_ADAPTER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_recorder_listener.h b/SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_recorder_listener.h
new file mode 100644
index 000000000..37896b385
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_recorder_listener.h
@@ -0,0 +1,67 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_FROM_MIC_RECORDER_LISTENER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_FROM_MIC_RECORDER_LISTENER_H_
+
+#include <string>
+#include "media_manager/media_adapter_listener.h"
+
+namespace threads {
+class Thread;
+}
+
+namespace media_manager {
+class FromMicRecorderListener : public MediaAdapterListener {
+ public:
+ explicit FromMicRecorderListener(
+ const std::string& file_name);
+ ~FromMicRecorderListener();
+ virtual void OnDataReceived(
+ int32_t application_key,
+ const DataForListener& data);
+ virtual void OnErrorReceived(
+ int32_t application_key,
+ const DataForListener& data);
+ virtual void OnActivityStarted(int32_t application_key);
+ virtual void OnActivityEnded(int32_t application_key);
+
+ private:
+ threads::Thread* reader_;
+ std::string file_name_;
+ int32_t current_application_;
+ static log4cxx::LoggerPtr logger_;
+ DISALLOW_COPY_AND_ASSIGN(FromMicRecorderListener);
+};
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_FROM_MIC_RECORDER_LISTENER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_to_file_recorder_thread.h b/SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_to_file_recorder_thread.h
new file mode 100644
index 000000000..ff0af43e4
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/audio/from_mic_to_file_recorder_thread.h
@@ -0,0 +1,100 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_FROM_MIC_TO_FILE_RECORDER_THREAD_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_FROM_MIC_TO_FILE_RECORDER_THREAD_H_
+
+#include <net/if.h>
+#include <gst/gst.h>
+#include <string>
+
+#include "utils/lock.h"
+#include "utils/threads/thread.h"
+#include "utils/threads/thread_delegate.h"
+
+namespace media_manager {
+
+class FromMicToFileRecorderThread : public threads::ThreadDelegate {
+ public:
+ FromMicToFileRecorderThread(const std::string& output_file,
+ int32_t duration);
+
+ void threadMain();
+
+ bool exitThreadMain();
+
+ void set_output_file(const std::string& output_file);
+ void set_record_duration(int32_t duration);
+
+ private:
+ static log4cxx::LoggerPtr logger_;
+
+ int32_t argc_;
+ gchar** argv_;
+
+ const std::string oKey_;
+ const std::string tKey_;
+
+ static GMainLoop* loop;
+ threads::Thread* sleepThread_;
+ bool shouldBeStoped_;
+ sync_primitives::Lock stopFlagLock_;
+
+ std::string outputFileName_, durationString_;
+
+ typedef struct {
+ GstElement* pipeline;
+ gint duration;
+ } GstTimeout;
+
+ void initArgs();
+
+ void psleep(void* timeout);
+
+ class SleepThreadDelegate : public threads::ThreadDelegate {
+ public:
+ explicit SleepThreadDelegate(GstTimeout timeout);
+
+ void threadMain();
+
+ private:
+ GstTimeout timeout_;
+
+ DISALLOW_COPY_AND_ASSIGN(SleepThreadDelegate);
+ };
+
+ DISALLOW_COPY_AND_ASSIGN(FromMicToFileRecorderThread);
+};
+
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_FROM_MIC_TO_FILE_RECORDER_THREAD_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/audio/pipe_audio_streamer_adapter.h b/SDL_Core/src/components/media_manager/include/media_manager/audio/pipe_audio_streamer_adapter.h
new file mode 100644
index 000000000..9e2159446
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/audio/pipe_audio_streamer_adapter.h
@@ -0,0 +1,51 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_PIPE_AUDIO_STREAMER_ADAPTER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_PIPE_AUDIO_STREAMER_ADAPTER_H_
+
+#include <string>
+#include "media_manager/pipe_streamer_adapter.h"
+
+namespace media_manager {
+class PipeAudioStreamerAdapter : public PipeStreamerAdapter {
+ public:
+ PipeAudioStreamerAdapter();
+ ~PipeAudioStreamerAdapter();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PipeAudioStreamerAdapter);
+};
+
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_PIPE_AUDIO_STREAMER_ADAPTER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/audio/socket_audio_streamer_adapter.h b/SDL_Core/src/components/media_manager/include/media_manager/audio/socket_audio_streamer_adapter.h
new file mode 100644
index 000000000..e9c4031ab
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/audio/socket_audio_streamer_adapter.h
@@ -0,0 +1,50 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_SOCKET_AUDIO_STREAMER_ADAPTER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_SOCKET_AUDIO_STREAMER_ADAPTER_H_
+
+#include <string>
+#include "media_manager/socket_streamer_adapter.h"
+
+namespace media_manager {
+class SocketAudioStreamerAdapter : public SocketStreamerAdapter {
+ public:
+ SocketAudioStreamerAdapter();
+ virtual ~SocketAudioStreamerAdapter();
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SocketAudioStreamerAdapter);
+};
+} // namespace media_manager
+
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_AUDIO_SOCKET_AUDIO_STREAMER_ADAPTER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/media_adapter.h b/SDL_Core/src/components/media_manager/include/media_manager/media_adapter.h
new file mode 100644
index 000000000..d2c62a468
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/media_adapter.h
@@ -0,0 +1,51 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_ADAPTER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_ADAPTER_H_
+
+namespace media_manager {
+
+class MediaAdapter {
+ public:
+ virtual void SendData(int32_t application_key,
+ const protocol_handler::RawMessagePtr& message) = 0;
+ virtual void StartActivity(int32_t application_key) = 0;
+ virtual void StopActivity(int32_t application_key) = 0;
+ virtual bool is_app_performing_activity(int32_t application_key) = 0;
+
+ virtual ~MediaAdapter(){}
+};
+
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_ADAPTER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/media_adapter_impl.h b/SDL_Core/src/components/media_manager/include/media_manager/media_adapter_impl.h
new file mode 100644
index 000000000..20d44b423
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/media_adapter_impl.h
@@ -0,0 +1,65 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_ADAPTER_IMPL_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_ADAPTER_IMPL_H_
+
+#include <set>
+#include "protocol_handler/raw_message.h"
+#include "media_manager/media_adapter.h"
+#include "media_manager/media_adapter_listener.h"
+#include "utils/macro.h"
+#include "utils/logger.h"
+
+namespace media_manager {
+
+typedef utils::SharedPtr<MediaAdapterListener> MediaListenerPtr;
+
+class MediaAdapterImpl : public MediaAdapter {
+ public:
+ virtual ~MediaAdapterImpl();
+ virtual void AddListener(const MediaListenerPtr& listener);
+ virtual void RemoveListener(const MediaListenerPtr& listener);
+
+ protected:
+ MediaAdapterImpl();
+ std::set<MediaListenerPtr> media_listeners_;
+ int32_t current_application_;
+
+ private:
+ static log4cxx::LoggerPtr logger_;
+
+ DISALLOW_COPY_AND_ASSIGN(MediaAdapterImpl);
+};
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_ADAPTER_IMPL_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/media_adapter_listener.h b/SDL_Core/src/components/media_manager/include/media_manager/media_adapter_listener.h
new file mode 100644
index 000000000..1a462dd9d
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/media_adapter_listener.h
@@ -0,0 +1,55 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_ADAPTER_LISTENER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_ADAPTER_LISTENER_H_
+
+#include <stdint.h>
+
+namespace media_manager {
+
+typedef int32_t DataForListener;
+
+class MediaAdapterListener {
+ public:
+ virtual void OnDataReceived(
+ int32_t application_key,
+ const DataForListener& data) = 0;
+ virtual void OnErrorReceived(
+ int32_t application_key,
+ const DataForListener& data) = 0;
+ virtual void OnActivityStarted(int32_t application_key) = 0;
+ virtual void OnActivityEnded(int32_t application_key) = 0;
+};
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_ADAPTER_LISTENER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/media_manager.h b/SDL_Core/src/components/media_manager/include/media_manager/media_manager.h
new file mode 100644
index 000000000..458481ca2
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/media_manager.h
@@ -0,0 +1,55 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_MANAGER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_MANAGER_H_
+
+#include <string>
+
+namespace media_manager {
+class MediaManager {
+ public:
+ virtual void PlayA2DPSource(int32_t application_key) = 0;
+ virtual void StopA2DPSource(int32_t application_key) = 0;
+ virtual void StartMicrophoneRecording(int32_t application_key,
+ const std::string& outputFileName,
+ int32_t duration) = 0;
+ virtual void StopMicrophoneRecording(int32_t application_key) = 0;
+ virtual void StartVideoStreaming(int32_t application_key) = 0;
+ virtual void StopVideoStreaming(int32_t application_key) = 0;
+ virtual void StartAudioStreaming(int32_t application_key) = 0;
+ virtual void StopAudioStreaming(int32_t application_key) = 0;
+
+ virtual ~MediaManager(){}
+};
+} // namespace media_manager
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_MANAGER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/media_manager_impl.h b/SDL_Core/src/components/media_manager/include/media_manager/media_manager_impl.h
new file mode 100644
index 000000000..87f948af2
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/media_manager_impl.h
@@ -0,0 +1,92 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_MANAGER_IMPL_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_MANAGER_IMPL_H_
+
+#include <string>
+#include "utils/singleton.h"
+#include "protocol_handler/protocol_observer.h"
+#include "protocol_handler/protocol_handler.h"
+#include "protocol_handler/service_type.h"
+#include "media_manager/media_manager.h"
+#include "media_manager/media_adapter_impl.h"
+#include "media_manager/media_adapter_listener.h"
+
+namespace media_manager {
+
+class MediaManagerImpl : public MediaManager,
+ public protocol_handler::ProtocolObserver,
+ public utils::Singleton<MediaManagerImpl> {
+ public:
+ virtual ~MediaManagerImpl();
+ virtual void SetProtocolHandler(
+ protocol_handler::ProtocolHandler* protocol_handler);
+ virtual void PlayA2DPSource(int32_t application_key);
+ virtual void StopA2DPSource(int32_t application_key);
+ virtual void StartMicrophoneRecording(int32_t application_key,
+ const std::string& outputFileName,
+ int32_t duration);
+ virtual void StopMicrophoneRecording(int32_t application_key);
+ virtual void StartVideoStreaming(int32_t application_key);
+ virtual void StopVideoStreaming(int32_t application_key);
+ virtual void StartAudioStreaming(int32_t application_key);
+ virtual void StopAudioStreaming(int32_t application_key);
+ virtual void OnMessageReceived(
+ const protocol_handler::RawMessagePtr& message);
+ virtual void OnMobileMessageSent(
+ const protocol_handler::RawMessagePtr& message);
+ virtual void FramesProcessed(int32_t application_key, int32_t frame_number);
+
+ protected:
+ MediaManagerImpl();
+ virtual void Init();
+ protocol_handler::ProtocolHandler* protocol_handler_;
+ MediaAdapter* a2dp_player_;
+ MediaAdapterImpl* from_mic_recorder_;
+ MediaListenerPtr from_mic_listener_;
+ MediaAdapterImpl* video_streamer_;
+ MediaAdapterImpl* audio_streamer_;
+ MediaListenerPtr video_streamer_listener_;
+ MediaListenerPtr audio_streamer_listener_;
+ bool video_stream_active_;
+ bool audio_stream_active_;
+
+ private:
+ static log4cxx::LoggerPtr logger_;
+ DISALLOW_COPY_AND_ASSIGN(MediaManagerImpl);
+
+ FRIEND_BASE_SINGLETON_CLASS(MediaManagerImpl);
+};
+
+} // namespace media_manager
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_MANAGER_IMPL_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/pipe_streamer_adapter.h b/SDL_Core/src/components/media_manager/include/media_manager/pipe_streamer_adapter.h
new file mode 100644
index 000000000..a1b98071a
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/pipe_streamer_adapter.h
@@ -0,0 +1,114 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_PIPE_STREAMER_ADAPTER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_PIPE_STREAMER_ADAPTER_H_
+
+#include <string>
+#include "media_manager/media_adapter_impl.h"
+#include "utils/shared_ptr.h"
+#include "utils/message_queue.h"
+#include "utils/threads/thread.h"
+#include "utils/threads/thread_delegate.h"
+
+namespace media_manager {
+class PipeStreamerAdapter : public MediaAdapterImpl {
+ public:
+ PipeStreamerAdapter();
+ virtual ~PipeStreamerAdapter();
+ virtual void SendData(int32_t application_key,
+ const protocol_handler::RawMessagePtr& message);
+ virtual void StartActivity(int32_t application_key);
+ virtual void StopActivity(int32_t application_key);
+ virtual bool is_app_performing_activity(int32_t application_key);
+
+ protected:
+ std::string named_pipe_path_;
+
+ /*
+ * @brief Start streamer thread
+ */
+ virtual void Init();
+
+ private:
+ class Streamer : public threads::ThreadDelegate {
+ public:
+ /*
+ * Default constructor
+ *
+ * @param server Server pointer
+ */
+ explicit Streamer(PipeStreamerAdapter* server);
+
+ /*
+ * Destructor
+ */
+ ~Streamer();
+
+ /*
+ * @brief Function called by thread on start
+ */
+ void threadMain();
+
+ /*
+ * @brief Function called by thread on exit
+ */
+ bool exitThreadMain();
+
+ /*
+ * @brief Opens pipe
+ */
+ void open();
+
+ /*
+ * @brief Closes pipe
+ */
+ void close();
+
+ private:
+ PipeStreamerAdapter* server_;
+ int32_t pipe_fd_;
+ volatile bool stop_flag_;
+
+ DISALLOW_COPY_AND_ASSIGN(Streamer);
+ };
+
+ bool is_ready_;
+ threads::Thread* thread_;
+ MessageQueue<protocol_handler::RawMessagePtr> messages_;
+
+ DISALLOW_COPY_AND_ASSIGN(PipeStreamerAdapter);
+};
+
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_PIPE_STREAMER_ADAPTER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/socket_streamer_adapter.h b/SDL_Core/src/components/media_manager/include/media_manager/socket_streamer_adapter.h
new file mode 100644
index 000000000..899e3ed26
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/socket_streamer_adapter.h
@@ -0,0 +1,136 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_SOCKET_STREAMER_ADAPTER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_SOCKET_STREAMER_ADAPTER_H_
+
+#include <string>
+#include "media_manager/media_adapter_impl.h"
+#include "utils/logger.h"
+#include "utils/shared_ptr.h"
+#include "utils/message_queue.h"
+#include "utils/threads/thread.h"
+#include "utils/threads/thread_delegate.h"
+
+namespace media_manager {
+class SocketStreamerAdapter : public MediaAdapterImpl {
+ public:
+ SocketStreamerAdapter();
+ virtual ~SocketStreamerAdapter();
+ virtual void SendData(int32_t application_key,
+ const protocol_handler::RawMessagePtr& message);
+ virtual void StartActivity(int32_t application_key);
+ virtual void StopActivity(int32_t application_key);
+ virtual bool is_app_performing_activity(int32_t application_key);
+
+ protected:
+
+ /*
+ * @brief Start streamer thread
+ */
+ virtual void Init();
+
+ int32_t port_;
+ std::string ip_;
+
+ private:
+ class Streamer : public threads::ThreadDelegate {
+ public:
+ /*
+ * Default constructor
+ *
+ * @param server Server pointer
+ */
+ explicit Streamer(SocketStreamerAdapter* const server);
+
+ /*
+ * Destructor
+ */
+ ~Streamer();
+
+ /*
+ * Function called by thread on start
+ */
+ void threadMain();
+
+ /*
+ * Function called by thread on exit
+ */
+ bool exitThreadMain();
+
+ /*
+ * Checks if server is ready
+ *
+ * @return TRUE if socket is ready otherwise FALSE
+ */
+ bool is_ready() const;
+
+ /*
+ * Starts server
+ *
+ */
+ void start();
+
+ /*
+ * Stops server
+ *
+ */
+ void stop();
+
+ /*
+ * Sends data to connected client
+ *
+ * @param block Pointer to the data
+ */
+ bool send(const protocol_handler::RawMessagePtr& msg);
+
+ private:
+ SocketStreamerAdapter* const server_;
+ int32_t new_socket_fd_;
+ bool is_first_loop_;
+ volatile bool is_client_connected_;
+ volatile bool stop_flag_;
+
+ DISALLOW_COPY_AND_ASSIGN(Streamer);
+ };
+
+ int32_t socket_fd_;
+ bool is_ready_;
+ threads::Thread* thread_;
+ MessageQueue<protocol_handler::RawMessagePtr> messages_;
+
+ DISALLOW_COPY_AND_ASSIGN(SocketStreamerAdapter);
+};
+} // namespace media_manager
+
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_SOCKET_STREAMER_ADAPTER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/streamer_listener.h b/SDL_Core/src/components/media_manager/include/media_manager/streamer_listener.h
new file mode 100644
index 000000000..df9da33e2
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/streamer_listener.h
@@ -0,0 +1,61 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_STREAMER_LISTENER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_STREAMER_LISTENER_H_
+
+#include <stdint.h>
+#include "media_manager/media_adapter_listener.h"
+#include "utils/macro.h"
+#include "utils/logger.h"
+
+namespace media_manager {
+class StreamerListener : public MediaAdapterListener {
+ public:
+ StreamerListener();
+ ~StreamerListener();
+ virtual void OnDataReceived(
+ int32_t application_key,
+ const DataForListener& data);
+ virtual void OnErrorReceived(
+ int32_t application_key,
+ const DataForListener& data);
+ virtual void OnActivityStarted(int32_t application_key);
+ virtual void OnActivityEnded(int32_t application_key);
+ private:
+ int32_t current_application_;
+ static log4cxx::LoggerPtr logger_;
+ DISALLOW_COPY_AND_ASSIGN(StreamerListener);
+};
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_STREAMER_LISTENER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/video/pipe_video_streamer_adapter.h b/SDL_Core/src/components/media_manager/include/media_manager/video/pipe_video_streamer_adapter.h
new file mode 100644
index 000000000..50328cc43
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/video/pipe_video_streamer_adapter.h
@@ -0,0 +1,51 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_VIDEO_PIPE_VIDEO_STREAMER_ADAPTER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_VIDEO_PIPE_VIDEO_STREAMER_ADAPTER_H_
+
+#include <string>
+#include "media_manager/pipe_streamer_adapter.h"
+
+namespace media_manager {
+class PipeVideoStreamerAdapter : public PipeStreamerAdapter {
+ public:
+ PipeVideoStreamerAdapter();
+ ~PipeVideoStreamerAdapter();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PipeVideoStreamerAdapter);
+};
+
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_VIDEO_PIPE_VIDEO_STREAMER_ADAPTER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/video/socket_video_streamer_adapter.h b/SDL_Core/src/components/media_manager/include/media_manager/video/socket_video_streamer_adapter.h
new file mode 100644
index 000000000..8752efc5e
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/video/socket_video_streamer_adapter.h
@@ -0,0 +1,51 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_VIDEO_SOCKET_VIDEO_STREAMER_ADAPTER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_VIDEO_SOCKET_VIDEO_STREAMER_ADAPTER_H_
+
+#include <string>
+#include "media_manager/socket_streamer_adapter.h"
+
+namespace media_manager {
+class SocketVideoStreamerAdapter : public SocketStreamerAdapter {
+ public:
+ SocketVideoStreamerAdapter();
+ virtual ~SocketVideoStreamerAdapter();
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(SocketVideoStreamerAdapter);
+};
+} // namespace media_manager
+
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_VIDEO_SOCKET_VIDEO_STREAMER_ADAPTER_H_
diff --git a/SDL_Core/src/components/media_manager/include/media_manager/video/video_stream_to_file_adapter.h b/SDL_Core/src/components/media_manager/include/media_manager/video/video_stream_to_file_adapter.h
new file mode 100644
index 000000000..77441f8ee
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/include/media_manager/video/video_stream_to_file_adapter.h
@@ -0,0 +1,111 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_VIDEO_VIDEO_STREAM_TO_FILE_ADAPTER_H_
+#define SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_VIDEO_VIDEO_STREAM_TO_FILE_ADAPTER_H_
+
+#include <string>
+#include <fstream>
+#include "media_manager/media_adapter_impl.h"
+#include "utils/message_queue.h"
+#include "utils/threads/thread.h"
+#include "utils/threads/thread_delegate.h"
+
+namespace media_manager {
+
+class VideoStreamToFileAdapter : public MediaAdapterImpl {
+ public:
+ explicit VideoStreamToFileAdapter(const std::string& file_name);
+ virtual ~VideoStreamToFileAdapter();
+ virtual void SendData(int32_t application_key,
+ const protocol_handler::RawMessagePtr& message);
+ virtual void StartActivity(int32_t application_key);
+ virtual void StopActivity(int32_t application_key);
+ virtual bool is_app_performing_activity(int32_t application_key);
+
+ /*
+ * @brief Start streamer thread
+ */
+ virtual void Init();
+
+ private:
+ class Streamer : public threads::ThreadDelegate {
+ public:
+ /*
+ * Default constructor
+ *
+ * @param server Server pointer
+ */
+ explicit Streamer(VideoStreamToFileAdapter* server);
+
+ /*
+ * Destructor
+ */
+ ~Streamer();
+
+ /*
+ * @brief Function called by thread on start
+ */
+ void threadMain();
+
+ /*
+ * @brief Function called by thread on exit
+ */
+ bool exitThreadMain();
+
+ /*
+ * @brief Opens file
+ */
+ void open();
+
+ /*
+ * @brief Closes file
+ */
+ void close();
+
+ private:
+ VideoStreamToFileAdapter* server_;
+ volatile bool stop_flag_;
+ std::ofstream* file_stream_;
+
+ DISALLOW_COPY_AND_ASSIGN(Streamer);
+ };
+
+ private:
+ std::string file_name_;
+ bool is_ready_;
+ threads::Thread* thread_;
+ MessageQueue<protocol_handler::RawMessagePtr> messages_;
+};
+} // namespace media_manager
+
+#endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_VIDEO_VIDEO_STREAM_TO_FILE_ADAPTER_H_
diff --git a/SDL_Core/src/components/media_manager/src/audio/a2dp_source_player_adapter.cc b/SDL_Core/src/components/media_manager/src/audio/a2dp_source_player_adapter.cc
new file mode 100644
index 000000000..892c6387c
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/audio/a2dp_source_player_adapter.cc
@@ -0,0 +1,284 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+#include <net/if.h>
+#include <pulse/simple.h>
+#include <pulse/error.h>
+#include <string.h>
+#include <utility>
+#include "utils/threads/thread.h"
+#include "media_manager/audio/a2dp_source_player_adapter.h"
+#include "utils/lock.h"
+#include "utils/threads/thread_delegate.h"
+#include "connection_handler/connection_handler_impl.h"
+
+namespace media_manager {
+
+log4cxx::LoggerPtr A2DPSourcePlayerAdapter::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("A2DPSourcePlayerAdapter"));
+
+class A2DPSourcePlayerAdapter::A2DPSourcePlayerThread
+ : public threads::ThreadDelegate {
+ public:
+ explicit A2DPSourcePlayerThread(const std::string& device);
+
+ void threadMain();
+
+ bool exitThreadMain();
+
+ private:
+ static log4cxx::LoggerPtr logger_;
+
+ // The Sample format to use
+ static const pa_sample_spec sSampleFormat_;
+
+ const int32_t BUFSIZE_;
+ pa_simple* s_in, *s_out;
+ std::string device_;
+ bool should_be_stopped_;
+ sync_primitives::Lock should_be_stopped_lock_;
+
+ void freeStreams();
+
+ DISALLOW_COPY_AND_ASSIGN(A2DPSourcePlayerThread);
+};
+
+A2DPSourcePlayerAdapter::A2DPSourcePlayerAdapter() {
+}
+
+A2DPSourcePlayerAdapter::~A2DPSourcePlayerAdapter() {
+ for (std::map<int32_t, threads::Thread*>::iterator it = sources_.begin();
+ sources_.end() != it;
+ ++it) {
+ if (NULL != it->second) {
+ if (it->second->is_running()) {
+ it->second->stop();
+ }
+ delete(it->second);
+ }
+ }
+ sources_.clear();
+}
+
+void A2DPSourcePlayerAdapter::StartActivity(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "Starting a2dp playing music for "
+ << application_key << " application.");
+ if (application_key != current_application_) {
+ current_application_ = application_key;
+
+ std::map<int32_t, threads::Thread*>::iterator it =
+ sources_.find(application_key);
+ if (sources_.end() != it) {
+ if (NULL != it->second && !it->second->is_running()) {
+ it->second->start();
+ } else {
+ current_application_ = 0;
+ }
+ } else {
+ uint32_t device_id = 0;
+ connection_handler::ConnectionHandlerImpl::instance()->
+ GetDataOnSessionKey(application_key, 0, NULL, &device_id);
+ std::string mac_adddress;
+ connection_handler::ConnectionHandlerImpl::instance()->GetDataOnDeviceID(
+ device_id,
+ NULL,
+ NULL,
+ &mac_adddress);
+
+ // TODO(PK): Convert mac_adddress to the
+ // following format : "bluez_source.XX_XX_XX_XX_XX_XX" if needed
+ // before passing to the A2DPSourcePlayerThread constructor
+
+ threads::Thread* new_activity = new threads::Thread(
+ mac_adddress.c_str(),
+ new A2DPSourcePlayerAdapter::A2DPSourcePlayerThread(mac_adddress));
+ if (NULL != new_activity) {
+ sources_.insert(std::pair<int32_t, threads::Thread*>(
+ application_key, new_activity));
+
+ new_activity->start();
+ } else {
+ current_application_ = 0;
+ }
+ }
+ }
+}
+
+void A2DPSourcePlayerAdapter::StopActivity(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "Stopping 2dp playing for "
+ << application_key << " application.");
+ if (application_key != current_application_) {
+ return;
+ }
+ std::map<int32_t, threads::Thread*>::iterator it =
+ sources_.find(application_key);
+ if (sources_.end() != it) {
+ LOG4CXX_DEBUG(logger_, "Source exists.");
+ if (NULL != it->second) {
+ LOG4CXX_DEBUG(logger_, "Sources thread was allocated");
+ if ((*it).second->is_running()) {
+ // Sources thread was started - stop it
+ LOG4CXX_DEBUG(logger_, "Sources thread was started - stop it");
+ (*it).second->stop();
+ }
+ }
+ current_application_ = 0;
+ }
+}
+
+bool A2DPSourcePlayerAdapter::is_app_performing_activity(int32_t
+ application_key) {
+ return (application_key == current_application_);
+}
+
+log4cxx::LoggerPtr A2DPSourcePlayerAdapter::A2DPSourcePlayerThread::logger_ =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("A2DPSourcePlayerThread"));
+
+const pa_sample_spec A2DPSourcePlayerAdapter::A2DPSourcePlayerThread::
+sSampleFormat_ = {
+ /*format*/ PA_SAMPLE_S16LE,
+ /*rate*/ 44100,
+ /*channels*/ 2
+};
+
+A2DPSourcePlayerAdapter::A2DPSourcePlayerThread::A2DPSourcePlayerThread(
+ const std::string& device)
+ : threads::ThreadDelegate(),
+ device_(device),
+ BUFSIZE_(32) {
+}
+
+void A2DPSourcePlayerAdapter::A2DPSourcePlayerThread::freeStreams() {
+ LOG4CXX_INFO(logger_, "Free streams in A2DPSourcePlayerThread.");
+ if (s_in) {
+ pa_simple_free(s_in);
+ }
+
+ if (s_out) {
+ pa_simple_free(s_out);
+ }
+}
+
+bool A2DPSourcePlayerAdapter::A2DPSourcePlayerThread::exitThreadMain() {
+ sync_primitives::AutoLock auto_lock(should_be_stopped_lock_);
+ should_be_stopped_ = true;
+ return true;
+}
+
+void A2DPSourcePlayerAdapter::A2DPSourcePlayerThread::threadMain() {
+ LOG4CXX_INFO(logger_, "Main thread of A2DPSourcePlayerThread.");
+
+ {
+ sync_primitives::AutoLock auto_lock(should_be_stopped_lock_);
+ should_be_stopped_ = false;
+ }
+
+ int32_t error;
+
+ const char* a2dpSource = device_.c_str();
+
+ LOG4CXX_DEBUG(logger_, device_);
+
+ LOG4CXX_DEBUG(logger_, "Creating streams");
+
+ /* Create a new playback stream */
+ if (!(s_out = pa_simple_new(NULL, "AudioManager", PA_STREAM_PLAYBACK, NULL,
+ "playback", &sSampleFormat_, NULL, NULL, &error))) {
+ LOG4CXX_ERROR(logger_, "pa_simple_new() failed: " << pa_strerror(error));
+ freeStreams();
+ return;
+ }
+
+ if (!(s_in = pa_simple_new(NULL, "AudioManager", PA_STREAM_RECORD, a2dpSource,
+ "record", &sSampleFormat_, NULL, NULL, &error))) {
+ LOG4CXX_ERROR(logger_, "pa_simple_new() failed: " << pa_strerror(error));
+ freeStreams();
+ return;
+ }
+
+ LOG4CXX_DEBUG(logger_, "Entering main loop");
+
+ for (;;) {
+ uint8_t buf[BUFSIZE_];
+ ssize_t r;
+
+ pa_usec_t latency;
+
+ if ((latency = pa_simple_get_latency(s_in, &error)) == (pa_usec_t) - 1) {
+ LOG4CXX_ERROR(logger_, "pa_simple_get_latency() failed: "
+ << pa_strerror(error));
+ break;
+ }
+
+ // LOG4CXX_INFO(logger_, "In: " << static_cast<float>(latency));
+
+ if ((latency = pa_simple_get_latency(s_out, &error)) == (pa_usec_t) - 1) {
+ LOG4CXX_ERROR(logger_, "pa_simple_get_latency() failed: "
+ << pa_strerror(error));
+ break;
+ }
+
+ // LOG4CXX_INFO(logger_, "Out: " << static_cast<float>(latency));
+
+ if (pa_simple_read(s_in, buf, sizeof(buf), &error) < 0) {
+ LOG4CXX_ERROR(logger_, "read() failed: " << strerror(error));
+ break;
+ }
+
+ /* ... and play it */
+ if (pa_simple_write(s_out, buf, sizeof(buf), &error) < 0) {
+ LOG4CXX_ERROR(logger_, "pa_simple_write() failed: "
+ << pa_strerror(error));
+ break;
+ }
+
+ bool should_be_stopped;
+ {
+ sync_primitives::AutoLock auto_lock(should_be_stopped_lock_);
+ should_be_stopped = should_be_stopped_;
+ }
+
+ if (should_be_stopped) {
+ break;
+ }
+ }
+
+ /* Make sure that every single sample was played */
+ if (pa_simple_drain(s_out, &error) < 0) {
+ LOG4CXX_ERROR(logger_, "pa_simple_drain() failed: " << pa_strerror(error));
+ freeStreams();
+ return;
+ }
+
+ freeStreams();
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/audio/audio_stream_sender_thread.cc b/SDL_Core/src/components/media_manager/src/audio/audio_stream_sender_thread.cc
new file mode 100644
index 000000000..0b20773f4
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/audio/audio_stream_sender_thread.cc
@@ -0,0 +1,151 @@
+//
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+
+
+#if defined(OS_POSIX) && defined(OS_LINUX)
+#include <pthread.h> // TODO(DK): Need to remove
+#include <unistd.h>
+#endif
+
+
+#include <string>
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/mobile_command_factory.h"
+#include "application_manager/application_impl.h"
+#include "smart_objects/smart_object.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/file_system.h"
+
+#include "media_manager/audio/audio_stream_sender_thread.h"
+#include "application_manager/smart_object_keys.h"
+#include "application_manager/message.h"
+
+namespace media_manager {
+using sync_primitives::AutoLock;
+
+const int32_t AudioStreamSenderThread::kAudioPassThruTimeout = 1;
+log4cxx::LoggerPtr AudioStreamSenderThread::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("AudioPassThruThread"));
+
+AudioStreamSenderThread::AudioStreamSenderThread(
+ const std::string fileName, uint32_t session_key)
+ : session_key_(session_key),
+ shouldBeStoped_(false),
+ fileName_(fileName) {
+ LOG4CXX_TRACE_ENTER(logger_);
+}
+
+AudioStreamSenderThread::~AudioStreamSenderThread() {
+}
+
+void AudioStreamSenderThread::threadMain() {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ offset_ = 0;
+
+ setShouldBeStopped(false);
+
+ while (true) {
+ if (getShouldBeStopped()) {
+ break;
+ }
+
+ sendAudioChunkToMobile();
+
+ if (getShouldBeStopped()) {
+ break;
+ }
+ }
+}
+
+void AudioStreamSenderThread::sendAudioChunkToMobile() {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ std::vector<uint8_t> binaryData;
+ std::vector<uint8_t>::iterator from;
+ std::vector<uint8_t>::iterator to;
+
+ usleep(kAudioPassThruTimeout * 1000000);
+
+ if (!file_system::ReadBinaryFile(fileName_, binaryData)) {
+ LOG4CXX_ERROR_EXT(logger_, "Unable to read file." << fileName_);
+
+ return;
+ }
+
+ if (binaryData.empty()) {
+ LOG4CXX_ERROR_EXT(logger_, "Binary data is empty.");
+ return;
+ }
+
+ LOG4CXX_INFO_EXT(logger_, "offset = " << offset_);
+
+ from = binaryData.begin() + offset_;
+ to = binaryData.end();
+
+ if (from < binaryData.end() /*from != binaryData.end()*/) {
+ LOG4CXX_INFO_EXT(logger_, "from != binaryData.end()");
+
+ offset_ = offset_ + to - from;
+
+ application_manager::ApplicationManagerImpl::instance()->
+ SendAudioPassThroughNotification(session_key_,
+ std::vector<uint8_t>(from, to));
+ binaryData.clear();
+ }
+#if !defined(EXTENDED_MEDIA)
+ // without recording stream restart reading 1-sec file
+ offset_ = 0;
+#endif
+}
+
+bool AudioStreamSenderThread::getShouldBeStopped() {
+ AutoLock auto_lock(shouldBeStoped_lock_);
+ return shouldBeStoped_;
+}
+
+void AudioStreamSenderThread::setShouldBeStopped(bool should_stop) {
+ AutoLock auto_lock(shouldBeStoped_lock_);
+ shouldBeStoped_ = should_stop;
+}
+
+bool AudioStreamSenderThread::exitThreadMain() {
+ LOG4CXX_INFO(logger_, "AudioStreamSenderThread::exitThreadMain");
+ setShouldBeStopped(true);
+ return true;
+}
+
+uint32_t AudioStreamSenderThread::session_key() const {
+ return session_key_;
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/audio/from_mic_recorder_adapter.cc b/SDL_Core/src/components/media_manager/src/audio/from_mic_recorder_adapter.cc
new file mode 100644
index 000000000..94fec1887
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/audio/from_mic_recorder_adapter.cc
@@ -0,0 +1,107 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <string>
+#include "utils/threads/thread.h"
+#include "media_manager/audio/from_mic_to_file_recorder_thread.h"
+#include "media_manager/audio/from_mic_recorder_adapter.h"
+
+namespace media_manager {
+
+log4cxx::LoggerPtr FromMicRecorderAdapter::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("FromMicRecorderAdapter"));
+
+FromMicRecorderAdapter::FromMicRecorderAdapter()
+ : recorder_thread_(NULL)
+ , output_file_("default_recorded_audio.wav")
+ , kDefaultDuration(1000)
+ , duration_(0) {
+ duration_ = kDefaultDuration;
+}
+
+FromMicRecorderAdapter::~FromMicRecorderAdapter() {
+ LOG4CXX_INFO(logger_, "FromMicRecorderAdapter::~FromMicRecorderAdapter()");
+ StopActivity(current_application_);
+}
+
+void FromMicRecorderAdapter::StartActivity(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "FromMicRecorderAdapter::StartActivity "
+ << application_key);
+ if (application_key == current_application_) {
+ LOG4CXX_WARN(logger_, "Running recording from mic for "
+ << current_application_);
+ return;
+ }
+ if (!recorder_thread_) {
+ FromMicToFileRecorderThread* thread_delegate =
+ new FromMicToFileRecorderThread(
+ output_file_, duration_);
+ recorder_thread_ = new threads::Thread("MicrophoneRecorder",
+ thread_delegate);
+ }
+ if (NULL != recorder_thread_) {
+ recorder_thread_->start();
+ current_application_ = application_key;
+ }
+}
+
+void FromMicRecorderAdapter::StopActivity(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "FromMicRecorderAdapter::StopActivity "
+ << application_key);
+ if (application_key != current_application_) {
+ LOG4CXX_WARN(logger_, "Running activity on other app key "
+ << current_application_);
+ return;
+ }
+
+ if (NULL != recorder_thread_) {
+ recorder_thread_->stop();
+ delete recorder_thread_;
+ recorder_thread_ = NULL;
+ }
+ current_application_ = 0;
+}
+
+bool FromMicRecorderAdapter::is_app_performing_activity(int32_t
+ application_key) {
+ return (application_key == current_application_);
+}
+
+void FromMicRecorderAdapter::set_output_file(const std::string& output_file) {
+ output_file_ = output_file;
+}
+
+void FromMicRecorderAdapter::set_duration(int32_t duration) {
+ duration_ = duration;
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/audio/from_mic_recorder_listener.cc b/SDL_Core/src/components/media_manager/src/audio/from_mic_recorder_listener.cc
new file mode 100644
index 000000000..a64e47661
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/audio/from_mic_recorder_listener.cc
@@ -0,0 +1,99 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "utils/threads/thread.h"
+#include "media_manager/audio/from_mic_recorder_listener.h"
+#include "media_manager/audio/audio_stream_sender_thread.h"
+
+namespace media_manager {
+
+log4cxx::LoggerPtr FromMicRecorderListener::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("FromMicRecorderListener"));
+
+FromMicRecorderListener::FromMicRecorderListener(
+ const std::string& file_name)
+ : reader_(NULL)
+ , file_name_(file_name) {
+}
+
+FromMicRecorderListener::~FromMicRecorderListener() {
+ if (reader_) {
+ reader_->stop();
+ delete reader_;
+ reader_ = NULL;
+ }
+}
+
+void FromMicRecorderListener::OnDataReceived(
+ int32_t application_key,
+ const DataForListener& data) {
+}
+
+void FromMicRecorderListener::OnErrorReceived(
+ int32_t application_key,
+ const DataForListener& data) {
+}
+
+void FromMicRecorderListener::OnActivityStarted(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "FromMicRecorderListener::OnActivityStarted "
+ << application_key);
+ if (application_key == current_application_) {
+ return;
+ }
+ if (!reader_) {
+ AudioStreamSenderThread* thread_delegate =
+ new AudioStreamSenderThread(file_name_, application_key);
+ reader_ = new threads::Thread("FromMicRecorderSender", thread_delegate);
+ }
+ if (reader_) {
+ reader_->start();
+ current_application_ = application_key;
+ }
+}
+
+void FromMicRecorderListener::OnActivityEnded(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "FromMicRecorderListener::OnActivityEnded "
+ << application_key);
+ if (application_key != current_application_) {
+ LOG4CXX_WARN(logger_, "Not performing activity on " << application_key
+ << " but on " << current_application_);
+ return;
+ }
+ if (reader_) {
+ reader_->stop();
+ delete reader_;
+ reader_ = NULL;
+ }
+ current_application_ = 0;
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/audio/from_mic_to_file_recorder_thread.cc b/SDL_Core/src/components/media_manager/src/audio/from_mic_to_file_recorder_thread.cc
new file mode 100644
index 000000000..1763957dd
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/audio/from_mic_to_file_recorder_thread.cc
@@ -0,0 +1,272 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <unistd.h>
+
+#include "media_manager/audio/from_mic_to_file_recorder_thread.h"
+
+namespace media_manager {
+
+log4cxx::LoggerPtr FromMicToFileRecorderThread::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("FromMicToFileRecorderThread"));
+
+GMainLoop* FromMicToFileRecorderThread::loop = NULL;
+
+FromMicToFileRecorderThread::FromMicToFileRecorderThread(
+ const std::string& output_file, int32_t duration)
+ : threads::ThreadDelegate(),
+ argc_(5),
+ oKey_("-o"),
+ tKey_("-t"),
+ sleepThread_(NULL),
+ outputFileName_(output_file) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ set_record_duration(duration);
+}
+
+void FromMicToFileRecorderThread::set_output_file(
+ const std::string& output_file) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ outputFileName_ = output_file;
+}
+
+void FromMicToFileRecorderThread::set_record_duration(int32_t duration) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ std::stringstream stringStream;
+ stringStream << duration / 1000;
+ durationString_ = stringStream.str();
+}
+
+void FromMicToFileRecorderThread::initArgs() {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ argv_ = new gchar*[argc_];
+
+ argv_[0] = new gchar[14];
+ argv_[1] = new gchar[3];
+ argv_[2] = new gchar[outputFileName_.length() + 1];
+ argv_[3] = new gchar[3];
+ argv_[4] = new gchar[durationString_.length() + 1];
+
+ argv_[0] = const_cast<gchar*>(std::string("AudioManager").c_str());
+ argv_[1] = const_cast<gchar*>(oKey_.c_str());
+ argv_[2] = const_cast<gchar*>(outputFileName_.c_str());
+ argv_[3] = const_cast<gchar*>(tKey_.c_str());
+ argv_[4] = const_cast<gchar*>(durationString_.c_str());
+}
+
+void FromMicToFileRecorderThread::threadMain() {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ {
+ sync_primitives::AutoLock auto_lock(stopFlagLock_);
+ shouldBeStoped_ = false;
+ }
+
+ initArgs();
+
+ GstElement* pipeline;
+ GstElement* alsasrc, *panorama, *wavenc, *filesink;
+ GstBus* bus;
+
+ const gchar* device = "hw:0,0";
+ gchar* outfile = NULL;
+ gint duration = -1;
+ GOptionContext* context = NULL;
+ GError* err = NULL;
+ GOptionEntry entries[] = { {
+ "device", 'd', 0, G_OPTION_ARG_FILENAME, &device,
+ "device file (Default: hw:0,0)", "SRC"
+ }, {
+ "output", 'o', 0, G_OPTION_ARG_FILENAME, &outfile,
+ "save output of the stream to DEST", "DEST"
+ }, {
+ "duration", 't', 0, G_OPTION_ARG_INT, &duration,
+ "length of time in seconds to capture", "int32_t"
+ }, {
+ NULL
+ }
+ };
+
+ pthread_t wait;
+ int32_t retcode;
+
+ if (!g_thread_supported()) {
+ g_thread_init(NULL);
+ }
+
+ // Parse the arguments
+ context = g_option_context_new("-- M-AUDIO RAW");
+ g_option_context_add_main_entries(context, entries, NULL);
+ g_option_context_add_group(context, gst_init_get_option_group());
+ if (!g_option_context_parse(context, &argc_, &argv_, &err)) {
+ g_error("%s\n", err->message);
+ }
+
+ // Check for proper arguments
+ if (outfile == NULL) {
+ g_error("Must supply destination (-d FILE)\n");
+ }
+
+ LOG4CXX_TRACE(logger_, "Reading from device: " << device);
+ LOG4CXX_TRACE(logger_, "Saving pipeline output to: " << outfile);
+ LOG4CXX_TRACE(logger_, "Duration set to: " << duration);
+
+ // Initialize gstreamer and setup the main loop information
+ gst_init(&argc_, &argv_);
+
+ pipeline = gst_pipeline_new("vga2usb-h264");
+
+ // Set up error handling
+ bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));
+ gst_bus_add_watch(bus,
+ reinterpret_cast<int32_t (*)(_GstBus*, _GstMessage*, void*)>
+ (recvmsg),
+ NULL);
+ gst_object_unref(bus);
+
+ // Create all of the elements to be added to the pipeline
+ alsasrc = gst_element_factory_make("alsasrc", "alsasrc0");
+ panorama = gst_element_factory_make("audiopanorama", "panorama0");
+ wavenc = gst_element_factory_make("wavenc", "wavenc0");
+ filesink = gst_element_factory_make("filesink", "filesink0");
+
+ // Assert that all the elements were created
+ if (!alsasrc || !panorama || !wavenc || !filesink) {
+ g_error("Failed creating one or more of the pipeline elements.\n");
+ }
+
+ // Set input and output destinations
+ g_object_set(G_OBJECT(alsasrc), "device", device, NULL);
+ g_object_set(G_OBJECT(panorama), "panorama", 0.5, NULL);
+ g_object_set(G_OBJECT(filesink), "location", outfile, NULL);
+
+ // Add the elements to the pipeline
+ gst_bin_add_many(GST_BIN(pipeline), alsasrc,
+ panorama, wavenc, filesink, NULL);
+
+ // Link the elements
+ gst_element_link_many(alsasrc, panorama, wavenc, filesink, NULL);
+
+ gst_element_set_state(pipeline, GST_STATE_PLAYING);
+
+ LOG4CXX_TRACE(logger_, "Initializing pipeline ...");
+ while (GST_STATE(pipeline) != GST_STATE_PLAYING) {
+ LOG4CXX_TRACE(logger_, "GST_STATE(pipeline) != GST_STATE_PLAYING");
+
+ bool shouldBeStoped;
+ {
+ sync_primitives::AutoLock auto_lock(stopFlagLock_);
+ shouldBeStoped = shouldBeStoped_;
+ }
+
+ if (shouldBeStoped) {
+ return;
+ }
+ }
+
+ LOG4CXX_TRACE(logger_, "Pipeline started ...\n");
+
+ // Start up a timer for the pipeline
+ if (duration > 0) {
+ GstTimeout timeout;
+ timeout.pipeline = pipeline;
+ timeout.duration = duration;
+
+ sleepThread_ = new threads::Thread("SleepThread"
+ , new SleepThreadDelegate(timeout));
+
+ if (NULL != sleepThread_) {
+ sleepThread_->start();
+ }
+ }
+
+ loop = g_main_loop_new(NULL, FALSE);
+
+ g_main_loop_run(loop);
+
+ gst_element_set_state(pipeline, GST_STATE_NULL);
+
+ LOG4CXX_TRACE(logger_, "Deleting pipeline\n");
+ gst_object_unref(GST_OBJECT(pipeline));
+ g_main_loop_unref(loop);
+
+ loop = NULL;
+}
+
+FromMicToFileRecorderThread::SleepThreadDelegate::SleepThreadDelegate(GstTimeout
+ timeout)
+ : threads::ThreadDelegate(),
+ timeout_(timeout) {
+}
+
+void FromMicToFileRecorderThread::SleepThreadDelegate::threadMain() {
+ LOG4CXX_TRACE(logger_, "Sleep for " << timeout_.duration << " seconds");
+
+ sleep(timeout_.duration);
+
+ if (NULL != loop) {
+ if (g_main_loop_is_running(loop)) {
+ gst_element_send_event(timeout_.pipeline, gst_event_new_eos());
+ }
+ }
+}
+
+bool FromMicToFileRecorderThread::exitThreadMain() {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ if (NULL != loop) {
+ if (g_main_loop_is_running(loop)) {
+ LOG4CXX_TRACE(logger_, "Quit loop\n");
+ g_main_loop_quit(loop);
+ }
+ }
+
+ if (NULL != sleepThread_) {
+ LOG4CXX_TRACE(logger_, "Stop sleep thread\n");
+ sleepThread_->stop();
+ delete sleepThread_;
+ sleepThread_ = NULL;
+ }
+
+ LOG4CXX_TRACE(logger_, "Set should be stopped flag\n");
+ {
+ sync_primitives::AutoLock auto_lock(stopFlagLock_);
+ shouldBeStoped_ = true;
+ }
+
+ return true;
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/audio/pipe_audio_streamer_adapter.cc b/SDL_Core/src/components/media_manager/src/audio/pipe_audio_streamer_adapter.cc
new file mode 100644
index 000000000..80b699cb7
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/audio/pipe_audio_streamer_adapter.cc
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "media_manager/audio/pipe_audio_streamer_adapter.h"
+#include "config_profile/profile.h"
+
+namespace media_manager {
+
+namespace {
+log4cxx::LoggerPtr logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("PipeAudioStreamerAdapter"));
+}
+
+PipeAudioStreamerAdapter::PipeAudioStreamerAdapter() {
+ LOG4CXX_INFO(logger, "PipeAudioStreamerAdapter::PipeAudioStreamerAdapter");
+ named_pipe_path_ = profile::Profile::instance()->named_audio_pipe_path();
+
+ Init();
+}
+
+PipeAudioStreamerAdapter::~PipeAudioStreamerAdapter() {
+ LOG4CXX_INFO(logger, "PipeAudioStreamerAdapter::~PipeAudioStreamerAdapter");
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/audio/socket_audio_streamer_adapter.cc b/SDL_Core/src/components/media_manager/src/audio/socket_audio_streamer_adapter.cc
new file mode 100644
index 000000000..0f6218e67
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/audio/socket_audio_streamer_adapter.cc
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config_profile/profile.h"
+#include "media_manager/audio/socket_audio_streamer_adapter.h"
+
+namespace media_manager {
+
+namespace {
+log4cxx::LoggerPtr logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("SocketAudioStreamerAdapter"));
+}
+
+
+SocketAudioStreamerAdapter::SocketAudioStreamerAdapter() {
+ LOG4CXX_INFO(logger, "SocketAudioStreamerAdapter::SocketAudioStreamerAdapter");
+ port_ = profile::Profile::instance()->audio_streaming_port();
+ ip_ = profile::Profile::instance()->server_address();
+
+ Init();
+}
+
+SocketAudioStreamerAdapter::~SocketAudioStreamerAdapter() {
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/media_adapter_impl.cc b/SDL_Core/src/components/media_manager/src/media_adapter_impl.cc
new file mode 100644
index 000000000..24e25a635
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/media_adapter_impl.cc
@@ -0,0 +1,58 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "media_manager/media_adapter_impl.h"
+
+namespace media_manager {
+
+log4cxx::LoggerPtr MediaAdapterImpl::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("MediaAdapterImpl"));
+
+MediaAdapterImpl::MediaAdapterImpl()
+ : current_application_(0) {
+}
+
+MediaAdapterImpl::~MediaAdapterImpl() {
+ media_listeners_.clear();
+}
+
+void MediaAdapterImpl::AddListener(const MediaListenerPtr& listener) {
+ LOG4CXX_INFO(logger_, "MediaAdapterImpl::AddListener");
+ media_listeners_.insert(listener);
+}
+
+void MediaAdapterImpl::RemoveListener(const MediaListenerPtr& listener) {
+ LOG4CXX_INFO(logger_, "MediaAdapterImpl::RemoveListener");
+ media_listeners_.erase(listener);
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/media_manager_impl.cc b/SDL_Core/src/components/media_manager/src/media_manager_impl.cc
new file mode 100644
index 000000000..e692d887e
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/media_manager_impl.cc
@@ -0,0 +1,323 @@
+/**
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "config_profile/profile.h"
+#include "media_manager/media_manager_impl.h"
+#include "media_manager/audio/from_mic_recorder_listener.h"
+#include "media_manager/streamer_listener.h"
+#include "application_manager/message_helper.h"
+#include "application_manager/application.h"
+#include "application_manager/application_manager_impl.h"
+#include "application_manager/application_impl.h"
+#include "utils/file_system.h"
+#if defined(EXTENDED_MEDIA_MODE)
+#include "media_manager/audio/a2dp_source_player_adapter.h"
+#include "media_manager/audio/from_mic_recorder_adapter.h"
+#endif
+#include "media_manager/video/socket_video_streamer_adapter.h"
+#include "media_manager/audio/socket_audio_streamer_adapter.h"
+#include "media_manager/video/pipe_video_streamer_adapter.h"
+#include "media_manager/audio/pipe_audio_streamer_adapter.h"
+#include "media_manager/video/video_stream_to_file_adapter.h"
+
+
+namespace media_manager {
+
+log4cxx::LoggerPtr MediaManagerImpl::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("MediaManagerImpl"));
+
+MediaManagerImpl::MediaManagerImpl()
+ : protocol_handler_(NULL)
+ , a2dp_player_(NULL)
+ , from_mic_recorder_(NULL)
+ , video_streamer_(NULL)
+ , audio_streamer_(NULL)
+ , video_stream_active_(false)
+ , audio_stream_active_(false) {
+ Init();
+}
+
+MediaManagerImpl::~MediaManagerImpl() {
+ if (a2dp_player_) {
+ delete a2dp_player_;
+ a2dp_player_ = NULL;
+ }
+
+ if (from_mic_recorder_) {
+ delete from_mic_recorder_;
+ from_mic_recorder_ = NULL;
+ }
+
+ if (video_streamer_) {
+ delete video_streamer_;
+ video_streamer_ = NULL;
+ }
+
+ if (audio_streamer_) {
+ delete audio_streamer_;
+ audio_streamer_ = NULL;
+ }
+}
+
+void MediaManagerImpl::SetProtocolHandler(
+ protocol_handler::ProtocolHandler* protocol_handler) {
+ protocol_handler_ = protocol_handler;
+}
+
+void MediaManagerImpl::Init() {
+ LOG4CXX_INFO(logger_, "MediaManagerImpl::Init()");
+
+#if defined(EXTENDED_MEDIA_MODE)
+ LOG4CXX_INFO(logger_, "Called Init with default configuration.");
+ a2dp_player_ = new A2DPSourcePlayerAdapter();
+ from_mic_recorder_ = new FromMicRecorderAdapter();
+#endif
+
+ if ("socket" == profile::Profile::instance()->video_server_type()) {
+ video_streamer_ = new SocketVideoStreamerAdapter();
+ } else if ("pipe" == profile::Profile::instance()->video_server_type()) {
+ video_streamer_ = new PipeVideoStreamerAdapter();
+ } else if ("file" == profile::Profile::instance()->video_server_type()) {
+ video_streamer_ = new VideoStreamToFileAdapter(
+ profile::Profile::instance()->video_stream_file());
+ }
+
+ if ("socket" == profile::Profile::instance()->audio_server_type()) {
+ audio_streamer_ = new SocketAudioStreamerAdapter();
+ } else if ("pipe" == profile::Profile::instance()->audio_server_type()) {
+ audio_streamer_ = new PipeAudioStreamerAdapter();
+ } else if ("file" == profile::Profile::instance()->audio_server_type()) {
+ audio_streamer_ = new VideoStreamToFileAdapter(
+ profile::Profile::instance()->audio_stream_file());
+ }
+
+ video_streamer_listener_ = new StreamerListener();
+ audio_streamer_listener_ = new StreamerListener();
+
+ if (NULL != video_streamer_) {
+ video_streamer_->AddListener(video_streamer_listener_);
+ }
+
+ if (NULL != audio_streamer_) {
+ audio_streamer_->AddListener(audio_streamer_listener_);
+ }
+}
+
+void MediaManagerImpl::PlayA2DPSource(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "MediaManagerImpl::PlayA2DPSource");
+ if (a2dp_player_) {
+ a2dp_player_->StartActivity(application_key);
+ }
+}
+
+void MediaManagerImpl::StopA2DPSource(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "MediaManagerImpl::StopA2DPSource");
+ if (a2dp_player_) {
+ a2dp_player_->StopActivity(application_key);
+ }
+}
+
+void MediaManagerImpl::StartMicrophoneRecording(
+ int32_t application_key,
+ const std::string& output_file,
+ int32_t duration) {
+ LOG4CXX_INFO(logger_, "MediaManagerImpl::StartMicrophoneRecording to "
+ << output_file);
+ application_manager::ApplicationSharedPtr app =
+ application_manager::ApplicationManagerImpl::instance()->
+ application(application_key);
+ std::string relative_file_path =
+ file_system::CreateDirectory(app->name());
+ relative_file_path += "/";
+ relative_file_path += output_file;
+ from_mic_listener_ = new FromMicRecorderListener(relative_file_path);
+#if defined(EXTENDED_MEDIA_MODE)
+ if (from_mic_recorder_) {
+ from_mic_recorder_->AddListener(from_mic_listener_);
+ (static_cast<FromMicRecorderAdapter*>(from_mic_recorder_))
+ ->set_output_file(relative_file_path);
+ (static_cast<FromMicRecorderAdapter*>(from_mic_recorder_))
+ ->set_duration(duration);
+ from_mic_recorder_->StartActivity(application_key);
+ }
+#else
+ if (file_system::FileExists(relative_file_path)) {
+ LOG4CXX_INFO(logger_, "File " << output_file << " exists, removing");
+ if (file_system::DeleteFile(relative_file_path)) {
+ LOG4CXX_INFO(logger_, "File " << output_file << " removed");
+ }
+ else {
+ LOG4CXX_WARN(logger_, "Could not remove file " << output_file);
+ }
+ }
+ const std::string predefined_rec_file = "audio.8bit.wav";
+ std::vector<uint8_t> buf;
+ if (file_system::ReadBinaryFile(predefined_rec_file, buf)) {
+ if (file_system::Write(relative_file_path, buf)) {
+ LOG4CXX_INFO(logger_,
+ "File " << predefined_rec_file << " copied to " << output_file);
+ }
+ else {
+ LOG4CXX_WARN(logger_, "Could not write to file " << output_file);
+ }
+ }
+ else {
+ LOG4CXX_WARN(logger_, "Could not read file " << predefined_rec_file);
+ }
+#endif
+ from_mic_listener_->OnActivityStarted(application_key);
+}
+
+void MediaManagerImpl::StopMicrophoneRecording(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "MediaManagerImpl::StopMicrophoneRecording");
+#if defined(EXTENDED_MEDIA_MODE)
+ if (from_mic_recorder_) {
+ from_mic_recorder_->StopActivity(application_key);
+ }
+#endif
+ if (from_mic_listener_) {
+ from_mic_listener_->OnActivityEnded(application_key);
+ }
+}
+
+void MediaManagerImpl::StartVideoStreaming(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "MediaManagerImpl::StartVideoStreaming");
+
+ if (video_streamer_) {
+ if (!video_stream_active_) {
+ video_stream_active_ = true;
+ video_streamer_->StartActivity(application_key);
+
+ char url[100] = {'\0'};
+
+
+ if ("socket" == profile::Profile::instance()->video_server_type()) {
+ snprintf(url, sizeof(url) / sizeof(url[0]), "http://%s:%d",
+ profile::Profile::instance()->server_address().c_str(),
+ profile::Profile::instance()->video_streaming_port());
+ } else if ("pipe" == profile::Profile::instance()->video_server_type()) {
+ snprintf(url, sizeof(url) / sizeof(url[0]), "%s",
+ profile::Profile::instance()->named_video_pipe_path().c_str());
+ } else {
+ DCHECK(snprintf(url, sizeof(url) / sizeof(url[0]), "%s", file_system::FullPath(
+ profile::Profile::instance()->video_stream_file()).c_str()));
+ }
+ application_manager::MessageHelper::SendNaviStartStream(url,
+ application_key);
+ }
+ }
+}
+
+void MediaManagerImpl::StopVideoStreaming(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "MediaManagerImpl::StopVideoStreaming");
+ if (video_streamer_) {
+ video_stream_active_ = false;
+ application_manager::MessageHelper::SendNaviStopStream(application_key);
+ video_streamer_->StopActivity(application_key);
+ }
+}
+
+void MediaManagerImpl::StartAudioStreaming(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "MediaManagerImpl::StartAudioStreaming");
+
+ if (audio_streamer_) {
+ if (!audio_stream_active_) {
+ audio_stream_active_ = true;
+ audio_streamer_->StartActivity(application_key);
+
+ char url[100] = {'\0'};
+
+ if ("socket" == profile::Profile::instance()->audio_server_type()) {
+ snprintf(url, sizeof(url) / sizeof(url[0]), "http://%s:%d",
+ profile::Profile::instance()->server_address().c_str(),
+ profile::Profile::instance()->audio_streaming_port());
+ } else if ("pipe" == profile::Profile::instance()->audio_server_type()) {
+ snprintf(url, sizeof(url) / sizeof(url[0]), "%s",
+ profile::Profile::instance()->named_audio_pipe_path().c_str());
+ } else {
+ DCHECK(snprintf(url, sizeof(url) / sizeof(url[0]), "%s",
+ file_system::FullPath(profile::Profile::instance()->
+ audio_stream_file()).c_str()));
+ }
+
+ application_manager::MessageHelper::SendAudioStartStream(url,
+ application_key);
+ }
+ }
+}
+
+void MediaManagerImpl::StopAudioStreaming(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "MediaManagerImpl::StopAudioStreaming");
+ if (audio_streamer_) {
+ audio_stream_active_ = false;
+ application_manager::MessageHelper::SendAudioStopStream(application_key);
+ audio_streamer_->StopActivity(application_key);
+ }
+}
+
+
+void MediaManagerImpl::OnMessageReceived(
+ const protocol_handler::RawMessagePtr& message) {
+ if (message->service_type()
+ == protocol_handler::kMobileNav) {
+ if (!(application_manager::ApplicationManagerImpl::instance()->
+ IsVideoStreamingAllowed(message->connection_key()))) {
+ return;
+ }
+ if (video_streamer_) {
+ video_streamer_->SendData(message->connection_key(), message);
+ }
+ } else if (message->service_type()
+ == protocol_handler::kAudio) {
+ if (!(application_manager::ApplicationManagerImpl::instance()->
+ IsAudioStreamingAllowed(message->connection_key()))) {
+ return;
+ }
+ if (audio_streamer_) {
+ audio_streamer_->SendData(message->connection_key(), message);
+ }
+ }
+}
+
+void MediaManagerImpl::OnMobileMessageSent(
+ const protocol_handler::RawMessagePtr& message) {
+}
+
+void MediaManagerImpl::FramesProcessed(int32_t application_key,
+ int32_t frame_number) {
+ if (protocol_handler_) {
+ /*protocol_handler_->SendFramesNumber(application_key,
+ frame_number);*/
+ }
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/pipe_streamer_adapter.cc b/SDL_Core/src/components/media_manager/src/pipe_streamer_adapter.cc
new file mode 100644
index 000000000..5c24a240e
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/pipe_streamer_adapter.cc
@@ -0,0 +1,225 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include "utils/logger.h"
+#include "config_profile/profile.h"
+#include "media_manager/pipe_streamer_adapter.h"
+
+namespace media_manager {
+
+namespace {
+log4cxx::LoggerPtr logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("PipeStreamerAdapter"));
+}
+
+PipeStreamerAdapter::PipeStreamerAdapter()
+ : is_ready_(false),
+ messages_(),
+ thread_(NULL){
+ LOG4CXX_INFO(logger, "PipeStreamerAdapter::PipeStreamerAdapter");
+}
+
+PipeStreamerAdapter::~PipeStreamerAdapter() {
+ LOG4CXX_INFO(logger, "PipeStreamerAdapter::~PipeStreamerAdapter");
+
+ if ((0 != current_application_ ) && (is_ready_)) {
+ StopActivity(current_application_);
+ }
+
+ thread_->stop();
+ delete thread_;
+}
+
+void PipeStreamerAdapter::SendData(
+ int32_t application_key,
+ const protocol_handler::RawMessagePtr& message) {
+ LOG4CXX_INFO(logger, "PipeStreamerAdapter::SendData");
+
+ if (application_key != current_application_) {
+ LOG4CXX_WARN(logger, "Wrong application " << application_key);
+ return;
+ }
+
+ if (is_ready_) {
+ messages_.push(message);
+ }
+}
+
+void PipeStreamerAdapter::StartActivity(int32_t application_key) {
+ LOG4CXX_INFO(logger, "PipeStreamerAdapter::StartActivity");
+
+ if (application_key == current_application_) {
+ LOG4CXX_WARN(logger, "Already started activity for " << application_key);
+ return;
+ }
+
+ current_application_ = application_key;
+ is_ready_ = true;
+
+ for (std::set<MediaListenerPtr>::iterator it = media_listeners_.begin();
+ media_listeners_.end() != it;
+ ++it) {
+ (*it)->OnActivityStarted(application_key);
+ }
+
+ LOG4CXX_TRACE(logger, "Pipe was opened for writing " << named_pipe_path_);
+}
+
+void PipeStreamerAdapter::StopActivity(int32_t application_key) {
+ LOG4CXX_INFO(logger, "PipeStreamerAdapter::StopActivity");
+
+ if (application_key != current_application_) {
+ LOG4CXX_WARN(logger, "Not performing activity for " << application_key);
+ return;
+ }
+
+ is_ready_ = false;
+ current_application_ = 0;
+
+ for (std::set<MediaListenerPtr>::iterator it = media_listeners_.begin();
+ media_listeners_.end() != it;
+ ++it) {
+ (*it)->OnActivityEnded(application_key);
+ }
+}
+
+bool PipeStreamerAdapter::is_app_performing_activity(
+ int32_t application_key) {
+ return (application_key == current_application_);
+}
+
+void PipeStreamerAdapter::Init() {
+ if (!thread_) {
+ LOG4CXX_INFO(logger, "Create and start sending thread");
+ thread_ = new threads::Thread("PipeStreamerAdapter", new Streamer(this));
+ const size_t kStackSize = 16384;
+ thread_->startWithOptions(threads::ThreadOptions(kStackSize));
+ }
+}
+
+PipeStreamerAdapter::Streamer::Streamer(
+ PipeStreamerAdapter* server)
+ : server_(server),
+ pipe_fd_(0),
+ stop_flag_(false) {
+}
+
+PipeStreamerAdapter::Streamer::~Streamer() {
+ server_ = NULL;
+}
+
+void PipeStreamerAdapter::Streamer::threadMain() {
+ LOG4CXX_INFO(logger, "Streamer::threadMain");
+
+ open();
+
+ while (!stop_flag_) {
+ while (!server_->messages_.empty()) {
+ protocol_handler::RawMessagePtr msg = server_->messages_.pop();
+ if (!msg) {
+ LOG4CXX_ERROR(logger, "Null pointer message");
+ continue;
+ }
+
+ ssize_t ret = write(pipe_fd_, msg.get()->data(),
+ msg.get()->data_size());
+
+ if (ret == -1) {
+ LOG4CXX_ERROR(logger, "Failed writing data to pipe "
+ << server_->named_pipe_path_);
+
+ std::set<MediaListenerPtr>::iterator it =
+ server_->media_listeners_.begin();
+ for (;server_->media_listeners_.end() != it; ++it) {
+ (*it)->OnErrorReceived(server_->current_application_, -1);
+ }
+ } else if (ret != msg.get()->data_size()) {
+ LOG4CXX_WARN(logger, "Couldn't write all the data to pipe "
+ << server_->named_pipe_path_);
+ }
+
+ static int32_t messsages_for_session = 0;
+ ++messsages_for_session;
+
+ LOG4CXX_INFO(logger, "Handling map streaming message. This is "
+ << messsages_for_session << " the message for "
+ << server_->current_application_);
+ std::set<MediaListenerPtr>::iterator it =
+ server_->media_listeners_.begin();
+ for (; server_->media_listeners_.end() != it; ++it) {
+ (*it)->OnDataReceived(server_->current_application_,
+ messsages_for_session);
+ }
+ }
+ server_->messages_.wait();
+ }
+ close();
+}
+
+bool PipeStreamerAdapter::Streamer::exitThreadMain() {
+ LOG4CXX_INFO(logger, "Streamer::exitThreadMain");
+ stop_flag_ = true;
+ server_->messages_.Shutdown();
+ return false;
+}
+
+void PipeStreamerAdapter::Streamer::open() {
+
+ LOG4CXX_INFO(logger, "Streamer::open()" << server_->named_pipe_path_.c_str());
+
+ if ((mkfifo(server_->named_pipe_path_.c_str(),
+ S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) < 0)
+ && (errno != EEXIST)) {
+ LOG4CXX_ERROR(logger, "Cannot create pipe " << server_->named_pipe_path_);
+ return;
+ }
+
+ pipe_fd_ = ::open(server_->named_pipe_path_.c_str(), O_RDWR, 0);
+ if (-1 == pipe_fd_) {
+ LOG4CXX_ERROR(logger, "Cannot open pipe for writing "
+ << server_->named_pipe_path_);
+ return;
+ }
+
+ LOG4CXX_TRACE(logger, "Pipe " << server_->named_pipe_path_
+ << " was successfully created");
+}
+
+void PipeStreamerAdapter::Streamer::close() {
+ ::close(pipe_fd_);
+ unlink(server_->named_pipe_path_.c_str());
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/socket_streamer_adapter.cc b/SDL_Core/src/components/media_manager/src/socket_streamer_adapter.cc
new file mode 100644
index 000000000..30b90c745
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/socket_streamer_adapter.cc
@@ -0,0 +1,309 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <sys/select.h>
+#include <sys/time.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <unistd.h>
+#include <string.h>
+#include "config_profile/profile.h"
+#include "media_manager/video/socket_video_streamer_adapter.h"
+
+namespace media_manager {
+
+namespace {
+log4cxx::LoggerPtr logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("SocketStreamerAdapter"));
+}
+
+SocketStreamerAdapter::SocketStreamerAdapter()
+ : socket_fd_(0),
+ is_ready_(false),
+ messages_(),
+ thread_(NULL) {
+}
+
+SocketStreamerAdapter::~SocketStreamerAdapter() {
+ thread_->stop();
+ delete thread_;
+ if (socket_fd_ != -1) {
+ ::close(socket_fd_);
+ }
+}
+
+void SocketStreamerAdapter::StartActivity(int32_t application_key) {
+ LOG4CXX_INFO(logger, "SocketStreamerAdapter::start");
+
+ if (application_key == current_application_) {
+ LOG4CXX_INFO(logger, "Already running for app " << application_key);
+ return;
+ }
+
+ is_ready_ = true;
+ current_application_ = application_key;
+
+ for (std::set<MediaListenerPtr>::iterator it = media_listeners_.begin();
+ media_listeners_.end() != it;
+ ++it) {
+ (*it)->OnActivityStarted(application_key);
+ }
+}
+
+void SocketStreamerAdapter::StopActivity(int32_t application_key) {
+ LOG4CXX_INFO(logger, "SocketStreamerAdapter::stop");
+
+ if (application_key != current_application_) {
+ LOG4CXX_WARN(logger, "Streaming is not active for " << application_key);
+ return;
+ }
+
+ is_ready_ = false;
+ current_application_ = 0;
+
+ for (std::set<MediaListenerPtr>::iterator it = media_listeners_.begin();
+ media_listeners_.end() != it;
+ ++it) {
+ (*it)->OnActivityEnded(application_key);
+ }
+}
+
+bool SocketStreamerAdapter::is_app_performing_activity(
+ int32_t application_key) {
+ return (application_key == current_application_);
+}
+
+void SocketStreamerAdapter::Init() {
+ if (!thread_) {
+ LOG4CXX_INFO(logger, "Create and start sending thread");
+ thread_ = new threads::Thread("PipeStreamerAdapter", new Streamer(this));
+ const size_t kStackSize = 16384;
+ thread_->startWithOptions(threads::ThreadOptions(kStackSize));
+ }
+}
+
+void SocketStreamerAdapter::SendData(
+ int32_t application_key,
+ const protocol_handler::RawMessagePtr& message) {
+ LOG4CXX_INFO(logger, "SocketStreamerAdapter::sendData");
+
+
+ if (application_key != current_application_) {
+ LOG4CXX_WARN(logger, "Currently working with other app "
+ << current_application_);
+ return;
+ }
+
+ if (is_ready_) {
+ messages_.push(message);
+ }
+}
+
+SocketStreamerAdapter::Streamer::Streamer(
+ SocketStreamerAdapter* const server)
+ : server_(server),
+ new_socket_fd_(0),
+ is_first_loop_(true),
+ is_client_connected_(false),
+ stop_flag_(false) {
+}
+
+SocketStreamerAdapter::Streamer::~Streamer() {
+ stop();
+}
+
+void SocketStreamerAdapter::Streamer::threadMain() {
+ LOG4CXX_INFO(logger, "Streamer::threadMain");
+
+ start();
+
+ while (!stop_flag_) {
+ new_socket_fd_ = accept(server_->socket_fd_, NULL, NULL);
+
+ if (0 > new_socket_fd_) {
+ LOG4CXX_ERROR(logger, "Socket is closed");
+ sleep(1);
+ continue;
+ }
+
+ is_client_connected_ = true;
+ while (is_client_connected_) {
+ while (!server_->messages_.empty()) {
+ protocol_handler::RawMessagePtr msg = server_->messages_.pop();
+ if (!msg) {
+ LOG4CXX_ERROR(logger, "Null pointer message");
+ continue;
+ }
+
+ is_client_connected_ = send(msg);
+ static int32_t messsages_for_session = 0;
+ ++messsages_for_session;
+
+ LOG4CXX_INFO(logger, "Handling map streaming message. This is "
+ << messsages_for_session << " the message for "
+ << server_->current_application_);
+ std::set<MediaListenerPtr>::iterator it =
+ server_->media_listeners_.begin();
+ for (; server_->media_listeners_.end() != it; ++it) {
+ (*it)->OnDataReceived(server_->current_application_,
+ messsages_for_session);
+ }
+ }
+ server_->messages_.wait();
+ is_client_connected_ = is_ready();
+ }
+
+ stop();
+ }
+}
+
+bool SocketStreamerAdapter::Streamer::exitThreadMain() {
+ LOG4CXX_INFO(logger, "Streamer::exitThreadMain");
+ stop_flag_ = true;
+ stop();
+ server_->messages_.Shutdown();
+ return false;
+}
+
+void SocketStreamerAdapter::Streamer::start() {
+ server_->socket_fd_ = socket(AF_INET, SOCK_STREAM, 0);
+
+ if (0 >= server_->socket_fd_) {
+ LOG4CXX_ERROR_EXT(logger, "Server open error");
+ return;
+ }
+
+ int32_t optval = 1;
+ if (-1 == setsockopt(server_->socket_fd_, SOL_SOCKET, SO_REUSEADDR,
+ &optval, sizeof optval)) {
+ LOG4CXX_ERROR_EXT(logger, "Unable to set sockopt");
+ return;
+ }
+
+ struct sockaddr_in serv_addr_;
+ memset(&serv_addr_, 0, sizeof(serv_addr_));
+ serv_addr_.sin_addr.s_addr = inet_addr(server_->ip_.c_str());
+ serv_addr_.sin_family = AF_INET;
+ serv_addr_.sin_port = htons(server_->port_);
+
+ if (-1 == bind(server_->socket_fd_,
+ reinterpret_cast<struct sockaddr*>(&serv_addr_),
+ sizeof(serv_addr_))) {
+ LOG4CXX_ERROR_EXT(logger, "Unable to bind");
+ return;
+ }
+
+ LOG4CXX_INFO(logger, "SocketStreamerAdapter::listen for connections");
+ if (-1 == listen(server_->socket_fd_, 5)) {
+ LOG4CXX_ERROR_EXT(logger, "Unable to listen");
+ return;
+ }
+}
+
+void SocketStreamerAdapter::Streamer::stop() {
+ is_client_connected_ = false;
+ if (!new_socket_fd_) {
+ return;
+ }
+
+ if (-1 == shutdown(new_socket_fd_, SHUT_RDWR)) {
+ LOG4CXX_ERROR(logger, "Unable to shutdown socket");
+ return;
+ }
+
+ if (-1 == ::close(new_socket_fd_)) {
+ LOG4CXX_ERROR(logger, "Unable to close socket");
+ return;
+ }
+
+ new_socket_fd_ = -1;
+}
+
+bool SocketStreamerAdapter::Streamer::is_ready() const {
+ bool result = true;
+ fd_set fds;
+ FD_ZERO(&fds);
+ FD_SET(new_socket_fd_, &fds);
+ struct timeval tv;
+ tv.tv_sec = 5; // set a 5 second timeout
+ tv.tv_usec = 0;
+
+ int32_t retval = 0;
+ retval = select(new_socket_fd_ + 1, 0, &fds, 0, &tv);
+
+ if (-1 == retval) {
+ LOG4CXX_ERROR_EXT(logger, "An error occurred");
+ result = false;
+ } else if (0 == retval) {
+ LOG4CXX_ERROR_EXT(logger, "The timeout expired");
+ result = false;
+ }
+
+ return result;
+}
+
+bool SocketStreamerAdapter::Streamer::send(
+ const protocol_handler::RawMessagePtr& msg) {
+ if (!is_ready()) {
+ LOG4CXX_ERROR_EXT(logger, " Socket is not ready");
+ return false;
+ }
+
+ if (is_first_loop_) {
+ is_first_loop_ = false;
+ char hdr[] = {"HTTP/1.1 200 OK\r\n "
+ "Connection: Keep-Alive\r\n"
+ "Keep-Alive: timeout=15, max=300\r\n"
+ "Server: SDL\r\n"
+ "Content-Type: video/mp4\r\n\r\n"
+ };
+
+ if (-1 == ::send(new_socket_fd_, hdr, strlen(hdr), MSG_NOSIGNAL)) {
+ LOG4CXX_ERROR_EXT(logger, " Unable to send");
+ return false;
+ }
+ }
+
+ if (-1 == ::send(new_socket_fd_, (*msg).data(),
+ (*msg).data_size(), MSG_NOSIGNAL)) {
+ LOG4CXX_ERROR_EXT(logger, " Unable to send");
+ return false;
+ }
+
+ LOG4CXX_INFO(logger, "Streamer::sent " << (*msg).data_size());
+ return true;
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/streamer_listener.cc b/SDL_Core/src/components/media_manager/src/streamer_listener.cc
new file mode 100644
index 000000000..656476bee
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/streamer_listener.cc
@@ -0,0 +1,80 @@
+/*
+ Copyright (c) 2013, Ford Motor Company
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Ford Motor Company nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "media_manager/streamer_listener.h"
+#include "media_manager/media_manager_impl.h"
+
+namespace media_manager {
+
+log4cxx::LoggerPtr StreamerListener::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("StreamerListener"));
+
+StreamerListener::StreamerListener()
+ : current_application_(0) {
+}
+
+StreamerListener::~StreamerListener() {
+ OnActivityEnded(current_application_);
+}
+
+void StreamerListener::OnDataReceived(
+ int32_t application_key,
+ const DataForListener& data) {
+ MediaManagerImpl::instance()->FramesProcessed(application_key, data);
+}
+
+void StreamerListener::OnErrorReceived(
+ int32_t application_key,
+ const DataForListener& data) {
+ LOG4CXX_ERROR(logger_, "StreamerListener::OnErrorReceived");
+}
+
+void StreamerListener::OnActivityStarted(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "StreamerListener::OnActivityStarted");
+ if (current_application_ == application_key) {
+ LOG4CXX_WARN(logger_, "Already performing activity for "
+ << application_key);
+ return;
+ }
+ current_application_ = application_key;
+}
+
+void StreamerListener::OnActivityEnded(int32_t application_key) {
+ LOG4CXX_INFO(logger_, "StreamerListener::OnActivityEnded");
+ if (current_application_ != application_key) {
+ LOG4CXX_WARN(logger_, "Already not performing activity for "
+ << application_key);
+ return;
+ }
+ current_application_ = 0;
+}
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/video/pipe_video_streamer_adapter.cc b/SDL_Core/src/components/media_manager/src/video/pipe_video_streamer_adapter.cc
new file mode 100644
index 000000000..9444ddfeb
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/video/pipe_video_streamer_adapter.cc
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "media_manager/video/pipe_video_streamer_adapter.h"
+#include "config_profile/profile.h"
+
+namespace media_manager {
+
+namespace {
+log4cxx::LoggerPtr logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("PipeVideoStreamerAdapter"));
+}
+
+PipeVideoStreamerAdapter::PipeVideoStreamerAdapter() {
+ LOG4CXX_INFO(logger, "PipeVideoStreamerAdapter::PipeVideoStreamerAdapter");
+ named_pipe_path_ = profile::Profile::instance()->named_video_pipe_path();
+
+ Init();
+}
+
+PipeVideoStreamerAdapter::~PipeVideoStreamerAdapter() {
+ LOG4CXX_INFO(logger, "PipeVideoStreamerAdapter::~PipeVideoStreamerAdapter");
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/video/socket_video_streamer_adapter.cc b/SDL_Core/src/components/media_manager/src/video/socket_video_streamer_adapter.cc
new file mode 100644
index 000000000..72463b3e1
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/video/socket_video_streamer_adapter.cc
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config_profile/profile.h"
+#include "media_manager/video/socket_video_streamer_adapter.h"
+
+namespace media_manager {
+
+namespace {
+log4cxx::LoggerPtr logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("SocketVideoStreamerAdapter"));
+}
+
+SocketVideoStreamerAdapter::SocketVideoStreamerAdapter() {
+ LOG4CXX_INFO(logger, "SocketVideoStreamerAdapter::SocketVideoStreamerAdapter");
+ port_ = profile::Profile::instance()->video_streaming_port();
+ ip_ = profile::Profile::instance()->server_address();
+
+ Init();
+}
+
+SocketVideoStreamerAdapter::~SocketVideoStreamerAdapter() {
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/media_manager/src/video/video_stream_to_file_adapter.cc b/SDL_Core/src/components/media_manager/src/video/video_stream_to_file_adapter.cc
new file mode 100644
index 000000000..6d063eb44
--- /dev/null
+++ b/SDL_Core/src/components/media_manager/src/video/video_stream_to_file_adapter.cc
@@ -0,0 +1,201 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "media_manager/video/video_stream_to_file_adapter.h"
+#include "utils/file_system.h"
+
+namespace media_manager {
+
+namespace {
+log4cxx::LoggerPtr logger =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("VideoStreamToFileAdapter"));
+}
+
+VideoStreamToFileAdapter::VideoStreamToFileAdapter(const std::string& file_name)
+ : file_name_(file_name),
+ is_ready_(false),
+ thread_(NULL) {
+ Init();
+}
+
+VideoStreamToFileAdapter::~VideoStreamToFileAdapter() {
+ if ((0 != current_application_ ) && (is_ready_)) {
+ StopActivity(current_application_);
+ }
+
+ thread_->stop();
+ delete thread_;
+}
+
+void VideoStreamToFileAdapter::Init() {
+ if (!thread_) {
+ LOG4CXX_INFO(logger, "Create and start sending thread");
+ thread_ = new threads::Thread("VideoStreamToFileAdapter",
+ new Streamer(this));
+ const size_t kStackSize = 16384;
+ thread_->startWithOptions(threads::ThreadOptions(kStackSize));
+ }
+}
+
+void VideoStreamToFileAdapter::SendData(
+ int32_t application_key,
+ const protocol_handler::RawMessagePtr& message) {
+ LOG4CXX_INFO(logger, "VideoStreamToFileAdapter::SendData "
+ << application_key);
+
+ if (application_key != current_application_) {
+ LOG4CXX_WARN(logger, "Wrong application " << application_key);
+ return;
+ }
+
+ if (is_ready_) {
+ messages_.push(message);
+ }
+}
+
+void VideoStreamToFileAdapter::StartActivity(int32_t application_key) {
+ LOG4CXX_INFO(logger, "VideoStreamToFileAdapter::StartActivity "
+ << application_key);
+ if (application_key == current_application_) {
+ LOG4CXX_WARN(logger, "Already running video stream to file for "
+ << application_key);
+ return;
+ }
+
+ current_application_ = application_key;
+ is_ready_ = true;
+
+ for (std::set<MediaListenerPtr>::iterator it = media_listeners_.begin();
+ media_listeners_.end() != it;
+ ++it) {
+ (*it)->OnActivityStarted(application_key);
+ }
+}
+
+void VideoStreamToFileAdapter::StopActivity(int32_t application_key) {
+ LOG4CXX_INFO(logger, "VideoStreamToFileAdapter::StopActivity "
+ << application_key);
+ if (application_key != current_application_) {
+ LOG4CXX_WARN(logger, "Performing activity for another key "
+ << current_application_);
+ return;
+ }
+
+ is_ready_ = false;
+ current_application_ = 0;
+
+ for (std::set<MediaListenerPtr>::iterator it = media_listeners_.begin();
+ media_listeners_.end() != it;
+ ++it) {
+ (*it)->OnActivityEnded(application_key);
+ }
+}
+
+bool VideoStreamToFileAdapter::is_app_performing_activity(int32_t
+ application_key) {
+ return (application_key == current_application_ && is_ready_);
+}
+
+VideoStreamToFileAdapter::Streamer::Streamer(
+ VideoStreamToFileAdapter* server)
+ : server_(server),
+ stop_flag_(false),
+ file_stream_(NULL) {
+}
+
+VideoStreamToFileAdapter::Streamer::~Streamer() {
+ server_ = NULL;
+ file_stream_ = NULL;
+}
+
+void VideoStreamToFileAdapter::Streamer::threadMain() {
+ LOG4CXX_INFO(logger, "Streamer::threadMain");
+
+ open();
+
+ while (!stop_flag_) {
+ while (!server_->messages_.empty()) {
+ protocol_handler::RawMessagePtr msg = server_->messages_.pop();
+ if (!msg) {
+ LOG4CXX_ERROR(logger, "Null pointer message");
+ continue;
+ }
+
+ if (file_stream_) {
+ file_system::Write(file_stream_, msg->data(), msg->data_size());
+
+ static int32_t messsages_for_session = 0;
+ ++messsages_for_session;
+ std::set<MediaListenerPtr>::iterator it =
+ server_->media_listeners_.begin();
+ for (; server_->media_listeners_.end() != it; ++it) {
+ (*it)->OnDataReceived(server_->current_application_,
+ messsages_for_session);
+ }
+ } else {
+ LOG4CXX_WARN(logger, "Can't open File stream! " << server_->file_name_);
+ }
+ }
+ server_->messages_.wait();
+ }
+
+ close();
+}
+
+bool VideoStreamToFileAdapter::Streamer::exitThreadMain() {
+ LOG4CXX_INFO(logger, "Streamer::exitThreadMain");
+ stop_flag_ = true;
+ server_->messages_.Shutdown();
+ return false;
+}
+
+void VideoStreamToFileAdapter::Streamer::open() {
+ LOG4CXX_INFO(logger, "Streamer::open()" << server_->file_name_.c_str());
+
+ file_stream_ = file_system::Open(server_->file_name_);
+ if (!file_stream_) {
+ LOG4CXX_WARN(logger, "Can't open file stream! " << server_->file_name_);
+ } else {
+ LOG4CXX_INFO(logger, "file_stream_ opened :" << file_stream_);
+ }
+}
+
+void VideoStreamToFileAdapter::Streamer::close() {
+ if (file_stream_) {
+ file_system::Close(file_stream_);
+ delete file_stream_;
+ file_stream_ = NULL;
+ }
+ file_system::DeleteFile(server_->file_name_);
+}
+
+} // namespace media_manager
diff --git a/SDL_Core/src/components/policies/CMakeLists.txt b/SDL_Core/src/components/policies/CMakeLists.txt
new file mode 100644
index 000000000..8e43b970a
--- /dev/null
+++ b/SDL_Core/src/components/policies/CMakeLists.txt
@@ -0,0 +1,22 @@
+include_directories (
+ ./include
+ ../application_manager/include/
+ ../utils/include/
+ ../smart_objects/include/
+ ../formatters/include/
+ ../../thirdPartyLibs/jsoncpp/include/
+ ${CMAKE_BINARY_DIR}/src/components/
+)
+
+set (SOURCES
+ ./src/policy_manager_impl.cc
+ ./src/policy_configuration.cc
+ ./src/policy_table.cc
+ ./src/policy_table_schema.cc
+ ./src/preloaded_pt_schema.cc
+ ./src/permissions_calculator.cc
+)
+
+
+add_library("policies" ${SOURCES})
+target_link_libraries ("policies" formatters jsoncpp SmartObjects) \ No newline at end of file
diff --git a/SDL_Core/src/components/policies/include/policies/permissions_calculator.h b/SDL_Core/src/components/policies/include/policies/permissions_calculator.h
new file mode 100644
index 000000000..c96ebaac4
--- /dev/null
+++ b/SDL_Core/src/components/policies/include/policies/permissions_calculator.h
@@ -0,0 +1,140 @@
+/**
+ * @file permissions_calculator.h
+ * @brief Permissions calculator header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_PERMISSIONS_CALCULATOR_H_
+#define SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_PERMISSIONS_CALCULATOR_H_
+
+#include <vector>
+#include <string>
+#include "policies/policy_manager.h"
+#include "interfaces/MOBILE_API.h"
+#include "utils/logger.h"
+
+namespace policies {
+
+class PermissionsCalculator {
+ public:
+ /**
+ * @brief Calculate permissions for application.
+ *
+ * @param pt_object Policy Table as smart object
+ * @param app_id Application identifier
+ * @param rpc Remote procedure call
+ * @param hmi_status HMI level status
+ *
+ * @return result of check permission
+ */
+ static PermissionResult CalcPermissions(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& pt_object,
+ uint32_t app_id,
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& rpc,
+ mobile_apis::HMILevel::eType hmi_status);
+
+ /**
+ * @brief Get priority for app_id
+ *
+ * @param pt_object Policy Table as smart object
+ * @param app_id Application Id
+ *
+ * @return priority for app_id
+ */
+ static Priority::eType GetPriority(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& pt_object,
+ uint32_t app_id);
+
+ private:
+ /**
+ * @brief Find all RPCs in groups listed under section functional_groupings
+ *
+ * @param pt_object Policy Table as smart object
+ * @param rpc_groups Groups of RPCs
+ * @param rpc Remote procedure call
+ * @param hmi_status HMI level status
+ *
+ * @return Map of rpc to all possible HMI levels amongst all
+ * functional groups where RPC is found.
+ * Returned value must be freed by the caller.
+ */
+ static PermissionResult CalcPermissionsByGroups(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& pt_object,
+ const std::vector<std::string>& rpc_groups,
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& rpc,
+ mobile_apis::HMILevel::eType hmi_status);
+
+ /**
+ * @brief Returns a smart object containing an <app_id> section of PolicyTable
+ *
+ * If app_id is not found in the "app_policies" the "default" section is
+ * returned.
+ * @param pt_object Policy Table as a SmartObject
+ * @param app_id Application ID
+ *
+ * @return SmartObject that contains either <app_id> or "default" section
+ * of "app_policies".
+ */
+ static const NsSmartDeviceLink::NsSmartObjects::SmartObject&
+ GetPolicyTableAppIdSection(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& pt_object,
+ uint32_t app_id);
+
+ /**
+ * @brief Convert HMI level value (as number) to string
+ *
+ * @param hmi_status HMI level status
+ * @param hmi_level_string Pointer to a string where the result is
+ * retunred.
+ */
+ static void ConvertHMILevel2String(
+ mobile_apis::HMILevel::eType hmi_status,
+ std::string* hmi_level_string);
+
+ /**
+ * @breif Convert smart object to vector of strings
+ *
+ * @param object Smart object
+ * @param v_strings Pointer to a verctor of strings where result is
+ * returned.
+ */
+ static void ConvertSmartArray2VectorStrings(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& object,
+ std::vector<std::string>* v_strings);
+ /**
+ * @brief Logger
+ */
+ static log4cxx::LoggerPtr logger_;
+};
+
+} // namespace policies
+
+#endif // SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_PERMISSIONS_CALCULATOR_H_
diff --git a/SDL_Core/src/components/policies/include/policies/policy_configuration.h b/SDL_Core/src/components/policies/include/policies/policy_configuration.h
new file mode 100644
index 000000000..8fae80d42
--- /dev/null
+++ b/SDL_Core/src/components/policies/include/policies/policy_configuration.h
@@ -0,0 +1,96 @@
+/**
+ * @file policy_configuration.h
+ * @brief Policy configuration header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_CONFIGURATION_H_
+#define SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_CONFIGURATION_H_
+
+#include <string>
+#include "smart_objects/smart_object.h"
+#include "smart_objects/smart_schema.h"
+
+namespace policies {
+
+/**
+ * @brief Class contains configuration for policy table
+ */
+class PolicyConfiguration {
+ public:
+ /**
+ * @brief Constructor
+ */
+ PolicyConfiguration();
+
+ /**
+ * @brief set file path (with name) for policy table
+ *
+ * @param pt_file_path File path
+ */
+ void set_pt_file_name(const std::string& pt_file_path);
+
+ /**
+ * @brief set file path (with name) for preload policy table
+ *
+ * @param preload_pt_file_path File path
+ **/
+ void set_preload_pt_file_name(const std::string& preload_pt_file_path);
+
+ /**
+ * @brief Get file path of policy table
+ *
+ * @return File path
+ */
+ const std::string& pt_file_name() const;
+
+ /**
+ * @brief Get file path of preload policy table
+ *
+ * @return File path
+ **/
+ const std::string& preload_pt_file_name() const;
+
+ private:
+ /**
+ * @brief policy table file name
+ */
+ std::string pt_file_name_;
+
+ /**
+ * @brief Preload policy table file name
+ **/
+ std::string preload_pt_file_name_;
+};
+
+} // namespace policies
+
+#endif // SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_CONFIGURATION_H_
diff --git a/SDL_Core/src/components/policies/include/policies/policy_manager.h b/SDL_Core/src/components/policies/include/policies/policy_manager.h
new file mode 100644
index 000000000..b47867ad7
--- /dev/null
+++ b/SDL_Core/src/components/policies/include/policies/policy_manager.h
@@ -0,0 +1,197 @@
+/**
+ * @file policy_manager.h
+ * @brief Policy Manager header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_MANAGER_H_
+#define SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_MANAGER_H_
+
+#include "interfaces/MOBILE_API.h"
+#include "policies/policy_configuration.h"
+#include "smart_objects/smart_object.h"
+
+namespace policies {
+
+ /**
+ * @brief enumeration of result for asking permissions by application
+ **/
+enum PermissionResult {
+ /**
+ * @brief RPC is allowed.
+ */
+ PERMISSION_ALLOWED = 0,
+ /**
+ * @brief Initialization of Policy Manager failed.
+ */
+ PERMISSION_INIT_FAILED,
+ /**
+ * @brief Verification of Policy Table failed.
+ *
+ * Policy Table as smart object has failed in verification against schema.
+ */
+ PERMISSION_PT_VERIFICATION_FAILED,
+ /**
+ * @brief RPC is allowed by the PT(backend), but disallowed by the user.
+ */
+ PERMISSION_USER_DISALLOWED,
+ /**
+ * @brief RPC is not allowed by the PT(backend).
+ */
+ PERMISSION_DISALLOWED,
+ /**
+ * @brief RPC is allowed by PT(backend), but user has not been prompted yet.
+ */
+ PERMISSION_PENDING_USER_CONSENT
+};
+
+// Namespace is neseccary because it is used for automatic string<->enum
+// convertion using schema
+namespace Priority {
+enum eType {
+ /**
+ * @brief Mandatory item. Used for enum<->string convertion
+ */
+ INVALID_ENUM = -1,
+ /**
+ * @brief NONE
+ */
+ PRIORITY_NONE = 0,
+ /**
+ * @brief NORMAL
+ */
+ PRIORITY_NORMAL,
+ /**
+ * @brief COMMUNICATION
+ */
+ PRIORITY_COMMUNICATION,
+ /**
+ * @brief NAVIGATION
+ */
+ PRIORITY_NAVIGATION,
+ /**
+ * @brief EMERGENCY
+ */
+ PRIORITY_EMERGENCY,
+};
+} // namespace Priority
+
+/**
+ * @brief Init() result enumeration
+ **/
+enum InitResult {
+ /**
+ * @brief PT file loaded successfully
+ **/
+ INIT_OK = 0,
+ /**
+ * @brief Initialization has failed
+ *
+ * Possible reason: Policy Table file missing, failed verification
+ *
+ **/
+ INIT_FAILED
+};
+
+/**
+ * @brief Enumeration for state wich reflects states of User consent procedure
+ * @TODO (anyone) for future use
+ */
+enum eType {
+ /**
+ * @brief User was not asked for consent
+ */
+ STATE_IDLE = 0,
+ /**
+ * @brief User was asked just now for consent
+ */
+ STATE_PENDING_CONSENT,
+ /**
+ * @brief User answered 'YES' just now
+ */
+ STATE_CONSENT_YES,
+ /**
+ * @brief User answered 'NO' just now
+ */
+ STATE_CONSENT_NO
+};
+
+/**
+ * @biref Struct contains data of result to return when Policy Manager
+ * is requested for CheckPermission()
+ */
+struct CheckPermissionResult {
+ /**
+ * @brief Permission result
+ */
+ PermissionResult result;
+ /**
+ * @brief Stored priority for current application
+ */
+ Priority::eType priority;
+};
+
+/**
+ * @brief Interface class of policy manager.
+ */
+class PolicyManager {
+ public:
+ /**
+ * @brief Destructor
+ *
+ **/
+ virtual ~PolicyManager() {}
+
+ /**
+ * @brief Initialization method
+ *
+ * @param config PolicyManager configuration
+ */
+ virtual InitResult Init(const PolicyConfiguration& config) = 0;
+
+ /**
+ * @brief Checking permissions for application whether rpc is allowed.
+ *
+ * @param app_id Application identifier
+ * @param rpc Remote procedure call
+ * @param hmi_status HMI level status
+ *
+ * @return result of check permission
+ */
+ virtual CheckPermissionResult CheckPermission(uint32_t app_id,
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& rpc,
+ mobile_apis::HMILevel::eType hmi_status) = 0;
+};
+
+} // namespace policies
+
+
+#endif // SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_MANAGER_H_
diff --git a/SDL_Core/src/components/policies/include/policies/policy_manager_impl.h b/SDL_Core/src/components/policies/include/policies/policy_manager_impl.h
new file mode 100644
index 000000000..adfddf834
--- /dev/null
+++ b/SDL_Core/src/components/policies/include/policies/policy_manager_impl.h
@@ -0,0 +1,126 @@
+/**
+ * @file policy_manager_impl.h
+ * @brief Policy Manager implementation header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_MANAGER_IMPL_H_
+#define SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_MANAGER_IMPL_H_
+
+#include "policies/policy_manager.h"
+#include "policies/policy_table.h"
+#include "utils/logger.h"
+#include "utils/singleton.h"
+
+namespace policies {
+
+/**
+ * @brief Interface implementation class of Policy Manager.
+ */
+class PolicyManagerImpl : public PolicyManager,
+ public utils::Singleton<PolicyManagerImpl> {
+ public:
+ /**
+ * @brief Destructor
+ *
+ **/
+ virtual ~PolicyManagerImpl(void);
+
+ /**
+ * @brief Initialization method
+ *
+ * @param config PolicyManager configuration
+ *
+ */
+ virtual InitResult Init(const PolicyConfiguration& config);
+
+ /**
+ * @brief Checking permissions for application whether rpc is allowed.
+ *
+ * @param app_id Application identifier
+ * @param rpc Remote procedure call
+ * @param hmi_status HMI level status
+ *
+ * @return result of check permission
+ */
+ virtual CheckPermissionResult CheckPermission(uint32_t app_id,
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& rpc,
+ mobile_apis::HMILevel::eType hmi_status);
+
+ protected:
+ /**
+ * @brief Hidden constructor.
+ */
+ PolicyManagerImpl();
+
+ /**
+ * @brief Store policy table to filesystem
+ *
+ * @return true if PolicyTable is successfully saved, false - othewise.
+ */
+ bool StorePolicyTable();
+
+ /**
+ * @brief Get PolicyTable pointer (for testing purposes)
+ *
+ * @return PolicyTable* ptr.
+ **/
+ PolicyTable* policy_table() const;
+
+ private:
+ /**
+ * @brief Policy configuration
+ */
+ PolicyConfiguration policy_config_;
+
+ /**
+ * @brief Policy table
+ */
+ PolicyTable* policy_table_;
+
+ /**
+ * @brief Logger
+ */
+ static log4cxx::LoggerPtr logger_;
+
+ /**
+ * @brief Result of call of public method Init()
+ */
+ InitResult init_result_;
+
+ DISALLOW_COPY_AND_ASSIGN(PolicyManagerImpl);
+
+ FRIEND_BASE_SINGLETON_CLASS(PolicyManagerImpl);
+};
+
+} // namespace policies
+
+#endif // SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_MANAGER_IMPL_H_
diff --git a/SDL_Core/src/components/policies/include/policies/policy_table.h b/SDL_Core/src/components/policies/include/policies/policy_table.h
new file mode 100644
index 000000000..a3feacab2
--- /dev/null
+++ b/SDL_Core/src/components/policies/include/policies/policy_table.h
@@ -0,0 +1,129 @@
+/**
+ * @file policy_table.h
+ * @brief Policy table header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_TABLE_H_
+#define SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_TABLE_H_
+
+#include <string>
+#include "smart_objects/smart_object.h"
+#include "smart_objects/smart_schema.h"
+
+namespace policies {
+
+enum PTValidationResult {
+ VALIDATION_OK = 0,
+ VALIDATION_FAILED_BAD_JSON,
+ VALIDATION_FAILED
+};
+
+enum PolicyTableType {
+ TYPE_POLICY_TABLE = 0,
+ TYPE_PT_PRELOAD
+};
+
+class PolicyTable {
+ public:
+ /**
+ * @brief Constructor
+ *
+ * @param policy_table_string String containing policy table
+ * @param pt_type PolicyTable type (PT or Preload)
+ **/
+ PolicyTable(const std::string& policy_table_string,
+ PolicyTableType pt_type);
+
+ /**
+ * @brief Destructor
+ */
+ ~PolicyTable();
+
+ /**
+ * @brief Get policy table as smart object
+ *
+ * @return Policy table as smart object
+ */
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& AsSmartObject();
+
+ /**
+ * @brief Get policy table as a string
+ *
+ * @param policy_table_string pointer to the string where PolicyTable
+ * will be written.
+ *
+ * @return true if PolicyTable correctly converted to string and the string
+ * is returned in "policy_table_string"
+ */
+ bool AsString(std::string* policy_table_string) const;
+
+ /**
+ * @brief Validate policy table.
+ *
+ * Validates policy table against smart schema which should be set before.
+ *
+ * @return validation result as enum
+ **/
+ PTValidationResult Validate();
+
+ /**
+ * @brief Tells wether Policy Table is Preload
+ *
+ * @return whether Policy Table Preload
+ */
+ bool IsPTPreload();
+
+ private:
+ /**
+ * @brief is Policy Table valid
+ **/
+ PTValidationResult pt_validation_result_;
+
+ /**
+ * @brief PolicyTable type
+ **/
+ PolicyTableType pt_type_;
+
+ /**
+ * @brief Schema to verify policy table
+ */
+ NsSmartDeviceLink::NsSmartObjects::CSmartSchema schema_;
+
+ /**
+ * @brief policy table as smart object
+ */
+ NsSmartDeviceLink::NsSmartObjects::SmartObject pt_smart_object_;
+};
+
+} // namespace policies
+
+#endif // SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_TABLE_H_
diff --git a/SDL_Core/src/components/policies/include/policies/policy_table_schema.h b/SDL_Core/src/components/policies/include/policies/policy_table_schema.h
new file mode 100644
index 000000000..85247cc8b
--- /dev/null
+++ b/SDL_Core/src/components/policies/include/policies/policy_table_schema.h
@@ -0,0 +1,202 @@
+/**
+ * @file policy_table_schema.h
+ * @brief Policy table schema header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_TABLE_SCHEMA_H_
+#define SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_TABLE_SCHEMA_H_
+
+#include <string>
+
+#include "smart_objects/smart_schema.h"
+#include "smart_objects/schema_item.h"
+#include "utils/shared_ptr.h"
+
+namespace policies {
+
+class PolicyTableSchema {
+ public:
+ /**
+ * @brief Creates schema for Policy Table
+ *
+ * @note CSmartSchema is a lightweith wrapper around
+ * "SharedPtr<ISchemaItem>". There's no overhead in returning it by value.
+ */
+ static NsSmartDeviceLink::NsSmartObjects::CSmartSchema Create(void);
+
+
+ // TODO(YS): might need to move these constants to the more
+ // appropriate place
+ /**
+ * @brief String constant for "policy_table" section.
+ */
+ static const char* kStrPolicyTable;
+
+ /**
+ * @brief String constant for "module_config" section.
+ */
+ static const char* kStrModuleConfig;
+
+ /**
+ * @brief String constant for "functional_groupings" section.
+ */
+ static const char* kStrFunctionalGroupings;
+
+ /**
+ * @brief String constant for "app_policies" section.
+ */
+ static const char* kStrAppPolicies;
+
+ /**
+ * @brief String constant for "endpoints" section.
+ */
+ static const char* kStrEndpoints;
+
+ /**
+ * @brief String constant for "default" section.
+ */
+ static const char* kStrDefault;
+
+ /**
+ * @brief String constant for "user_consent_prompt" section.
+ */
+ static const char* kStrUserConsentPrompt;
+
+ /**
+ * @brief String constant for "rpcs" section.
+ */
+ static const char* kStrRpcs;
+
+ /**
+ * @brief String constant for "hmi_levels" section.
+ */
+ static const char* kStrHmiLevels;
+
+ /**
+ * @brief String constant for "parameters" section.
+ */
+ static const char* kStrParameters;
+
+ /**
+ * @brief String constant for "groups" section.
+ */
+ static const char* kStrGroups;
+
+ /**
+ * @brief String constant for "nicknames" section.
+ */
+ static const char* kStrNicknames;
+
+ /**
+ * @brief String constant for "priority" section.
+ */
+ static const char* kStrPriority;
+
+ protected:
+ /**
+ * @brief Hidden constructor to prevent missuse. Only called from inside.
+ */
+ PolicyTableSchema(void);
+
+ /**
+ * @brief Virtual destructor.
+ */
+ virtual ~PolicyTableSchema(void) {}
+
+ /**
+ * @brief Returns a schema.
+ *
+ * If schema hasn't been created yet the method creates it and returns
+ * a newly created schema.
+ *
+ * @note CSmartSchema is a lightweith wrapper around
+ * "SharedPtr<ISchemaItem>". There's no overhead in returning it by value.
+ *
+ * @return If the schema has already been created just returns it,
+ * otherwise creates it and returns it.
+ */
+ virtual NsSmartDeviceLink::NsSmartObjects::CSmartSchema GetSchema(void);
+
+ /**
+ * @brief Creates schema for Policy Table
+ *
+ * @brief Root schema item of the newly created schema.
+ */
+ virtual utils::SharedPtr<NsSmartDeviceLink::NsSmartObjects::ISchemaItem>
+ CreateSchema(void);
+
+ /**
+ * @brief Creates "module_config" schema item
+ */
+ virtual utils::SharedPtr<NsSmartDeviceLink::NsSmartObjects::ISchemaItem>
+ CreateModuleConfig(void);
+
+ /**
+ * @brief Creates "functional_groupings" schema item
+ */
+ virtual utils::SharedPtr<NsSmartDeviceLink::NsSmartObjects::ISchemaItem>
+ CreateFunctionalGroupings(void);
+
+ /**
+ * @brief Creates "app_policies" schema item
+ */
+ virtual utils::SharedPtr<NsSmartDeviceLink::NsSmartObjects::ISchemaItem>
+ CreateAppPolicies(void);
+
+ /**
+ * @brief Creates "<app_id>" schema item
+ */
+ virtual utils::SharedPtr<NsSmartDeviceLink::NsSmartObjects::ISchemaItem>
+ CreateAppId(void);
+
+ /**
+ * @brief Creates "priority" schema item for <app_id> and "default" sections
+ */
+ virtual utils::SharedPtr<NsSmartDeviceLink::NsSmartObjects::ISchemaItem>
+ CreatePriority(void);
+
+ /**
+ * @brief Creates "default" schema item of "app_policies"
+ */
+ virtual utils::SharedPtr<NsSmartDeviceLink::NsSmartObjects::ISchemaItem>
+ CreateAppPoliciesDefault(void);
+
+ private:
+ /**
+ * @brief Contains a schema if it is already been created
+ */
+ utils::SharedPtr<NsSmartDeviceLink::NsSmartObjects::ISchemaItem> schema_;
+};
+
+} // namespace policies
+
+#endif // SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_POLICY_TABLE_SCHEMA_H_
diff --git a/SDL_Core/src/components/policies/include/policies/preloaded_pt_schema.h b/SDL_Core/src/components/policies/include/policies/preloaded_pt_schema.h
new file mode 100644
index 000000000..805364089
--- /dev/null
+++ b/SDL_Core/src/components/policies/include/policies/preloaded_pt_schema.h
@@ -0,0 +1,75 @@
+/**
+ * @file preloaded_pt_schema.h
+ * @brief Policy table preload schema header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_PRELOADED_PT_SCHEMA_H_
+#define SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_PRELOADED_PT_SCHEMA_H_
+
+#include "policies/policy_table_schema.h"
+
+namespace policies {
+
+class PreloadedPTSchema : public PolicyTableSchema {
+ public:
+ /**
+ * @brief Creates schema for preloaded Policy Table
+ */
+ static NsSmartDeviceLink::NsSmartObjects::CSmartSchema Create(void);
+
+ protected:
+ /**
+ * @brief Hidden constructor to prevent missuse. Only called from inside.
+ */
+ PreloadedPTSchema(void) {}
+
+ /**
+ * @brief Virtual destructor.
+ */
+ virtual ~PreloadedPTSchema(void) {}
+
+ /**
+ * @brief Creates "<app_id>" schema item
+ */
+ virtual utils::SharedPtr<NsSmartDeviceLink::NsSmartObjects::ISchemaItem>
+ CreateAppId(void);
+
+ /**
+ * @brief Creates "app_policies" schema item
+ */
+ virtual utils::SharedPtr<NsSmartDeviceLink::NsSmartObjects::ISchemaItem>
+ CreateAppPolicies(void);
+};
+
+} // namespace policies
+
+#endif // SRC_COMPONENTS_POLICIES_INCLUDE_POLICIES_PRELOADED_PT_SCHEMA_H_
diff --git a/SDL_Core/src/components/policies/src/permissions_calculator.cc b/SDL_Core/src/components/policies/src/permissions_calculator.cc
new file mode 100644
index 000000000..240ed1304
--- /dev/null
+++ b/SDL_Core/src/components/policies/src/permissions_calculator.cc
@@ -0,0 +1,234 @@
+/**
+ * @file permissions_calculator.cc
+ * @brief Permissions calculator source file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include <map>
+#include "policies/permissions_calculator.h"
+#include "policies/policy_table_schema.h"
+#include "formatters/CSmartFactory.hpp"
+#include "smart_objects/enum_schema_item.h"
+#include "utils/macro.h"
+
+
+namespace policies {
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+namespace jsonhandler = NsSmartDeviceLink::NsJSONHandler;
+
+using ::NsSmartDeviceLink::NsSmartObjects::SmartObject;
+using ::NsSmartDeviceLink::NsSmartObjects::SmartType;
+
+log4cxx::LoggerPtr PermissionsCalculator::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("Policies"));
+
+//----------------------------------------------------------------------------
+
+const SmartObject& PermissionsCalculator::GetPolicyTableAppIdSection(
+ const SmartObject& pt_object,
+ uint32_t app_id) {
+//
+ const uint8_t kBuffSize = 16;
+ char app_id_string[kBuffSize];
+ snprintf(app_id_string, kBuffSize, "%d", app_id);
+
+ const SmartObject& app_policies =
+ pt_object.getElement(PolicyTableSchema::kStrPolicyTable)
+ .getElement(PolicyTableSchema::kStrAppPolicies);
+
+ // look for <app_id> section within app_policies
+ if ((true == app_policies.keyExists(std::string(app_id_string)))) {
+ const SmartObject& pt_app_id =
+ app_policies.getElement(app_id_string);
+
+ if (SmartType::SmartType_Map == pt_app_id.getType()) {
+ return pt_app_id;
+ } else {
+ LOG4CXX_ERROR(logger_,
+ "Section app_policies|<app_id> neither exists nor is a map");
+ } // look for default section within app_policies
+ } else if (SmartType::SmartType_Map ==
+ app_policies.getElement(PolicyTableSchema::kStrDefault).getType()) {
+ // returning "default" section of "app_policies"
+ return app_policies.getElement(PolicyTableSchema::kStrDefault);
+ } else {
+ LOG4CXX_ERROR(logger_,
+ "Section app_policies|default neither exists nor is a map");
+ }
+
+ return smart_objects::invalid_object_value;
+}
+
+//----------------------------------------------------------------------------
+
+PermissionResult PermissionsCalculator::CalcPermissions(
+ const SmartObject& pt_object,
+ uint32_t app_id,
+ const SmartObject& rpc,
+ mobile_apis::HMILevel::eType hmi_status) {
+//
+ std::vector<std::string> rpc_groups;
+ const SmartObject& pt_app_id = GetPolicyTableAppIdSection(pt_object, app_id);
+
+ const SmartObject& pt_groups =
+ pt_app_id.getElement(PolicyTableSchema::kStrGroups);
+
+ if (SmartType::SmartType_Array == pt_groups.getType()) {
+ ConvertSmartArray2VectorStrings(pt_groups, &rpc_groups);
+ } else {
+ LOG4CXX_ERROR(logger_,
+ "Section app_policies|<app_id>|groups either not exists or not array");
+ }
+
+ if (rpc_groups.size() > 0) {
+ return CalcPermissionsByGroups(pt_object, rpc_groups, rpc, hmi_status);
+ }
+
+ return PermissionResult::PERMISSION_DISALLOWED;
+}
+
+//----------------------------------------------------------------------------
+
+Priority::eType PermissionsCalculator::GetPriority(
+ const SmartObject& pt_object,
+ uint32_t app_id) {
+//
+ const SmartObject& pt_app_id = GetPolicyTableAppIdSection(pt_object, app_id);
+
+ const SmartObject& priority =
+ pt_app_id.getElement(PolicyTableSchema::kStrPriority);
+
+ if (SmartType::SmartType_Integer == priority.getType()) {
+ return static_cast<Priority::eType>( priority.asInt() );
+ } else {
+ LOG4CXX_ERROR(logger_, "Section 'priority' is not an enum");
+ }
+
+ return Priority::PRIORITY_NONE;
+}
+
+//----------------------------------------------------------------------------
+
+PermissionResult
+ PermissionsCalculator::CalcPermissionsByGroups(
+ const SmartObject& pt_object,
+ const std::vector<std::string>& rpc_groups,
+ const SmartObject& rpc,
+ mobile_apis::HMILevel::eType hmi_status) {
+//
+ SmartObject rpc_object(rpc);
+ // unapply schema to convert FunctionID from enum (number) to string
+ rpc_object.getSchema().unapplySchema(rpc_object);
+
+ const SmartObject &function_id =
+ rpc_object.getElement(jsonhandler::strings::S_PARAMS)
+ .getElement(jsonhandler::strings::S_FUNCTION_ID);
+ if (function_id.asString().length() == 0) {
+ return PermissionResult::PERMISSION_DISALLOWED;
+ }
+
+ const SmartObject& functional_groupings_object =
+ pt_object.getElement(PolicyTableSchema::kStrPolicyTable)
+ .getElement(PolicyTableSchema::kStrFunctionalGroupings);
+ if (smart_objects::SmartType::SmartType_Map !=
+ functional_groupings_object.getType()) {
+ return PermissionResult::PERMISSION_DISALLOWED;
+ }
+
+ for (std::vector<std::string>::const_iterator it = rpc_groups.begin() ;
+ it != rpc_groups.end(); ++it) {
+ if (functional_groupings_object.keyExists(*it)) {
+ const SmartObject& fgroup = functional_groupings_object.getElement(*it);
+ if (fgroup.getElement(PolicyTableSchema::kStrRpcs)
+ .keyExists(function_id.asString())) {
+ std::string hmi_status_string;
+ ConvertHMILevel2String(hmi_status, &hmi_status_string);
+
+ smart_objects::SmartObject hmi_levels =
+ fgroup.getElement(PolicyTableSchema::kStrRpcs)
+ .getElement(function_id.asString())
+ .getElement(PolicyTableSchema::kStrHmiLevels);
+ for (uint16_t n = 0; n < hmi_levels.length(); n++) {
+ if (hmi_levels[n].getType() ==
+ smart_objects::SmartType::SmartType_String) {
+ if (hmi_status_string.compare(hmi_levels[n].asString()) == 0) {
+ return PermissionResult::PERMISSION_ALLOWED;
+ }
+ }
+ }
+ } else {
+ continue;
+ }
+ }
+ }
+
+ return PermissionResult::PERMISSION_DISALLOWED;
+}
+
+//----------------------------------------------------------------------------
+
+void PermissionsCalculator::ConvertHMILevel2String(
+ mobile_apis::HMILevel::eType hmi_status,
+ std::string* hmi_level_string) {
+ DCHECK(hmi_level_string);
+
+ const std::map<mobile_apis::HMILevel::eType, std::string>
+ elementsStringRepresentation =
+ smart_objects::TEnumSchemaItem<mobile_apis::HMILevel::eType>::
+ getEnumElementsStringRepresentation();
+
+ std::map<mobile_apis::HMILevel::eType, std::string>::const_iterator i =
+ elementsStringRepresentation.find(hmi_status);
+
+ if (i != elementsStringRepresentation.end()) {
+ *hmi_level_string = i->second;
+ }
+}
+
+//----------------------------------------------------------------------------
+
+void PermissionsCalculator::ConvertSmartArray2VectorStrings(
+ const SmartObject& object,
+ std::vector<std::string>* v_strings) {
+ DCHECK(v_strings);
+
+ if (object.getType() == smart_objects::SmartType::SmartType_Array) {
+ for (uint32_t i = 0; i < object.length(); i++) {
+ const SmartObject & item = object.getElement(i);
+ if (item.getType() == smart_objects::SmartType::SmartType_String) {
+ v_strings->push_back(item.asString());
+ }
+ }
+ }
+}
+
+} // namespace policies
diff --git a/SDL_Core/src/components/policies/src/policy_configuration.cc b/SDL_Core/src/components/policies/src/policy_configuration.cc
new file mode 100644
index 000000000..2b08f3f31
--- /dev/null
+++ b/SDL_Core/src/components/policies/src/policy_configuration.cc
@@ -0,0 +1,68 @@
+/**
+ * @file policy_configuration.cc
+ * @brief Policy configuration source file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "policies/policy_configuration.h"
+
+//----------------------------------------------------------------------------
+
+policies::PolicyConfiguration::PolicyConfiguration()
+ : pt_file_name_()
+ , preload_pt_file_name_() {
+}
+
+//-----------------------------------------------------------------------------
+
+void policies::PolicyConfiguration::set_pt_file_name(
+ const std::string& pt_file_path) {
+ pt_file_name_ = pt_file_path;
+}
+
+//-----------------------------------------------------------------------------
+
+const std::string& policies::PolicyConfiguration::pt_file_name() const {
+ return pt_file_name_;
+}
+
+//-----------------------------------------------------------------------------
+
+void policies::PolicyConfiguration::set_preload_pt_file_name(
+ const std::string& preload_pt_file_path) {
+ preload_pt_file_name_ = preload_pt_file_path;
+}
+
+//-----------------------------------------------------------------------------
+
+const std::string& policies::PolicyConfiguration::preload_pt_file_name() const {
+ return preload_pt_file_name_;
+}
diff --git a/SDL_Core/src/components/policies/src/policy_manager_impl.cc b/SDL_Core/src/components/policies/src/policy_manager_impl.cc
new file mode 100644
index 000000000..095cdc0c9
--- /dev/null
+++ b/SDL_Core/src/components/policies/src/policy_manager_impl.cc
@@ -0,0 +1,175 @@
+/**
+ * @file policy_manager_impl.cc
+ * @brief Policy Manager implementation source file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "policies/policy_manager_impl.h"
+#include "policies/permissions_calculator.h"
+#include "utils/file_system.h"
+#include "utils/macro.h"
+
+namespace policies {
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+log4cxx::LoggerPtr PolicyManagerImpl::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("Policies"));
+
+//---------------------------------------------------------------
+
+PolicyManagerImpl::PolicyManagerImpl()
+ : PolicyManager()
+ , policy_config_()
+ , policy_table_(NULL)
+ , init_result_(InitResult::INIT_FAILED) {
+}
+
+//---------------------------------------------------------------
+
+PolicyManagerImpl::~PolicyManagerImpl() {
+ if (NULL != policy_table_) {
+ delete policy_table_;
+ policy_table_ = NULL;
+ }
+}
+
+//---------------------------------------------------------------
+
+InitResult PolicyManagerImpl::Init(
+ const PolicyConfiguration& config) {
+ // TODO(anyone): Provide some mechanism for recovery (from Preload???)
+ // if PT file corrupted (e.g. bad json)
+ policy_config_ = config;
+
+ std::string pt_string;
+ if (NULL == policy_table_) {
+ if (true == file_system::ReadFile(policy_config_.pt_file_name(),
+ pt_string)) {
+ policy_table_ = new PolicyTable(pt_string,
+ PolicyTableType::TYPE_POLICY_TABLE);
+ init_result_ = InitResult::INIT_OK;
+ } else {
+ LOG4CXX_WARN(logger_, "Can't read policy table file "
+ << policy_config_.pt_file_name());
+ if (true == file_system::ReadFile(
+ policy_config_.preload_pt_file_name(), pt_string)) {
+ policy_table_ = new PolicyTable(
+ pt_string, PolicyTableType::TYPE_PT_PRELOAD);
+ init_result_ = InitResult::INIT_OK;
+ } else {
+ init_result_ = InitResult::INIT_FAILED;
+ LOG4CXX_ERROR(logger_, "Can't read Preload policy table file "
+ << policy_config_.preload_pt_file_name());
+ }
+ }
+ } else {
+ init_result_ = InitResult::INIT_OK;
+ LOG4CXX_WARN(logger_, "Policy table is already created.");
+ }
+ return init_result_;
+}
+
+//---------------------------------------------------------------
+
+CheckPermissionResult
+ PolicyManagerImpl::CheckPermission(
+ uint32_t app_id,
+ const smart_objects::SmartObject& rpc,
+ mobile_apis::HMILevel::eType hmi_status) {
+//
+ CheckPermissionResult result =
+ {PermissionResult::PERMISSION_DISALLOWED, Priority::PRIORITY_NONE};
+ PolicyTable* pt = policy_table();
+
+ if (init_result_ == InitResult::INIT_FAILED) {
+ result.result = PermissionResult::PERMISSION_INIT_FAILED;
+ } else if (NULL != pt
+ && PTValidationResult::VALIDATION_OK == pt->Validate()) {
+ smart_objects::SmartObject& pt_object = pt->AsSmartObject();
+
+ result.result = PermissionsCalculator::CalcPermissions(pt_object,
+ app_id,
+ rpc,
+ hmi_status);
+
+ result.priority = PermissionsCalculator::GetPriority(pt_object, app_id);
+ } else {
+ result.result = PermissionResult::PERMISSION_PT_VERIFICATION_FAILED;
+ }
+
+ return result;
+}
+
+//---------------------------------------------------------------
+
+bool PolicyManagerImpl::StorePolicyTable() {
+ if (NULL == policy_table_) {
+ LOG4CXX_WARN(logger_, "PolicyTable is NULL."
+ "It seems like Init hasn't been called");
+ NOTREACHED();
+ return false;
+ }
+
+ if (smart_objects::SmartType_Map !=
+ policy_table_->AsSmartObject().getType()) {
+ LOG4CXX_WARN(logger_, "PolicyTable is empty. Nothing to store");
+ return false;
+ }
+
+ std::string pt_string;
+ if (false == policy_table_->AsString(&pt_string)) {
+ LOG4CXX_ERROR(logger_, "Can't convert PolicyTable to string.");
+ return false;
+ }
+
+ const std::vector<uint8_t> char_vector_pdata(
+ pt_string.begin(), pt_string.end());
+
+ if (false == file_system::Write(policy_config_.pt_file_name(),
+ char_vector_pdata)) {
+ LOG4CXX_ERROR(logger_, "Can't write policy table file "
+ << policy_config_.pt_file_name());
+ return false;
+ }
+ return true;
+}
+
+//---------------------------------------------------------------
+
+PolicyTable* PolicyManagerImpl::policy_table() const {
+ if (NULL == policy_table_) {
+ LOG4CXX_ERROR(logger_, "Accessing not initialized policy table.");
+ }
+ return policy_table_;
+}
+
+} // namespace policies
diff --git a/SDL_Core/src/components/policies/src/policy_table.cc b/SDL_Core/src/components/policies/src/policy_table.cc
new file mode 100644
index 000000000..94f3c3592
--- /dev/null
+++ b/SDL_Core/src/components/policies/src/policy_table.cc
@@ -0,0 +1,113 @@
+/**
+ * @file policy_table.cc
+ * @brief Policy table source file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "policies/policy_table.h"
+#include "formatters/generic_json_formatter.h"
+#include "policies/policy_table_schema.h"
+#include "utils/macro.h"
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+namespace formatters = NsSmartDeviceLink::NsJSONHandler::Formatters;
+
+
+//---------------------------------------------------------------------------
+
+policies::PolicyTable::PolicyTable(
+ const std::string& policy_table_string,
+ PolicyTableType pt_type)
+ : pt_validation_result_(PTValidationResult::VALIDATION_FAILED)
+ , pt_type_(pt_type)
+ , schema_(policies::PolicyTableSchema::Create())
+ , pt_smart_object_() {
+//
+ if (false == formatters::GenericJsonFormatter::FromString(
+ policy_table_string, pt_smart_object_)) {
+ pt_validation_result_ = PTValidationResult::VALIDATION_FAILED_BAD_JSON;
+ } else {
+ // By applying schema the enums are converted from strings into ints
+ pt_smart_object_.setSchema(schema_);
+ schema_.applySchema(pt_smart_object_);
+ }
+}
+
+//---------------------------------------------------------------------------
+
+policies::PolicyTable::~PolicyTable() {
+}
+
+//---------------------------------------------------------------------------
+
+smart_objects::SmartObject& policies::PolicyTable::AsSmartObject() {
+ return pt_smart_object_;
+}
+
+//---------------------------------------------------------------------------
+
+bool policies::PolicyTable::AsString(std::string* policy_table_string) const {
+ DCHECK(policy_table_string);
+
+ if (PTValidationResult::VALIDATION_FAILED_BAD_JSON == pt_validation_result_) {
+ return false;
+ }
+
+ formatters::GenericJsonFormatter::ToString(pt_smart_object_,
+ *policy_table_string);
+
+ return true;
+}
+
+//---------------------------------------------------------------------------
+
+policies::PTValidationResult policies::PolicyTable::Validate() {
+ // TODO(_): distinct between PT and Preload PolicyTable types (use pt_type_)
+ if (PTValidationResult::VALIDATION_FAILED_BAD_JSON == pt_validation_result_) {
+ return pt_validation_result_;
+ }
+
+ if (smart_objects::Errors::OK == schema_.validate(pt_smart_object_)) {
+ pt_validation_result_ = PTValidationResult::VALIDATION_OK;
+ return pt_validation_result_;
+ }
+
+ pt_validation_result_ = PTValidationResult::VALIDATION_FAILED;
+ return pt_validation_result_;
+}
+
+//---------------------------------------------------------------------------
+
+bool policies::PolicyTable::IsPTPreload() {
+ // evaluate 'preloaded_pt' in 'module_config'
+ return false;
+}
+
diff --git a/SDL_Core/src/components/policies/src/policy_table_schema.cc b/SDL_Core/src/components/policies/src/policy_table_schema.cc
new file mode 100644
index 000000000..56b04af75
--- /dev/null
+++ b/SDL_Core/src/components/policies/src/policy_table_schema.cc
@@ -0,0 +1,272 @@
+/**
+ * @file policy_table_schema.cc
+ * @brief Policy table schema source file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "policies/policy_table_schema.h"
+
+#include <map>
+#include <string>
+
+#include "policies/policy_manager.h"
+#include "smart_objects/object_optional_schema_item.h"
+#include "smart_objects/array_schema_item.h"
+#include "smart_objects/string_schema_item.h"
+#include "smart_objects/enum_schema_item.h"
+
+
+namespace policies {
+
+using ::NsSmartDeviceLink::NsSmartObjects::CObjectSchemaItem;
+using ::NsSmartDeviceLink::NsSmartObjects::CSmartSchema;
+using ::NsSmartDeviceLink::NsSmartObjects::ISchemaItem;
+using ::NsSmartDeviceLink::NsSmartObjects::CAlwaysTrueSchemaItem;
+using ::NsSmartDeviceLink::NsSmartObjects::ObjectOptionalSchemaItem;
+using ::NsSmartDeviceLink::NsSmartObjects::CArraySchemaItem;
+using ::NsSmartDeviceLink::NsSmartObjects::CStringSchemaItem;
+using ::NsSmartDeviceLink::NsSmartObjects::TEnumSchemaItem;
+using ::NsSmartDeviceLink::NsSmartObjects::TSchemaItemParameter;
+
+typedef utils::SharedPtr<ISchemaItem> SchemaItemPtr;
+
+//-----------------------------------------------------------------------------
+
+const char* PolicyTableSchema::kStrPolicyTable = "policy_table";
+const char* PolicyTableSchema::kStrModuleConfig = "module_config";
+const char* PolicyTableSchema::kStrFunctionalGroupings = "functional_groupings";
+const char* PolicyTableSchema::kStrAppPolicies = "app_policies";
+const char* PolicyTableSchema::kStrEndpoints = "endpoints";
+const char* PolicyTableSchema::kStrDefault = "default";
+const char* PolicyTableSchema::kStrUserConsentPrompt = "user_consent_prompt";
+const char* PolicyTableSchema::kStrRpcs = "rpcs";
+const char* PolicyTableSchema::kStrHmiLevels = "hmi_levels";
+const char* PolicyTableSchema::kStrParameters = "parameters";
+const char* PolicyTableSchema::kStrGroups = "groups";
+const char* PolicyTableSchema::kStrNicknames = "nicknames";
+const char* PolicyTableSchema::kStrPriority = "priority";
+
+//-----------------------------------------------------------------------------
+
+PolicyTableSchema::PolicyTableSchema(void)
+ : schema_() {
+}
+
+//-----------------------------------------------------------------------------
+
+CSmartSchema PolicyTableSchema::Create(void) {
+ static PolicyTableSchema schema;
+
+ return schema.GetSchema();
+}
+
+//-----------------------------------------------------------------------------
+
+CSmartSchema PolicyTableSchema::GetSchema(void) {
+ if (false == schema_.valid()) {
+ schema_ = CreateSchema();
+ }
+
+ return CSmartSchema(schema_);
+}
+
+//-----------------------------------------------------------------------------
+
+SchemaItemPtr PolicyTableSchema::CreateSchema(void) {
+ SchemaItemPtr root_schema_item;
+ std::map<std::string, CObjectSchemaItem::SMember> root_member_map;
+ std::map<std::string, CObjectSchemaItem::SMember> policy_table_member_map;
+
+ policy_table_member_map[kStrModuleConfig] = CObjectSchemaItem::SMember(
+ CreateModuleConfig(),
+ true);
+
+ policy_table_member_map[kStrFunctionalGroupings] =
+ CObjectSchemaItem::SMember(CreateFunctionalGroupings(), true);
+
+ policy_table_member_map[kStrAppPolicies] = CObjectSchemaItem::SMember(
+ CreateAppPolicies(),
+ true);
+
+ root_member_map[kStrPolicyTable] = CObjectSchemaItem::SMember(
+ CObjectSchemaItem::create(policy_table_member_map),
+ true);
+
+ root_schema_item = CObjectSchemaItem::create(root_member_map);
+
+ return root_schema_item;
+}
+
+//-----------------------------------------------------------------------------
+
+SchemaItemPtr PolicyTableSchema::CreateModuleConfig(void) {
+ std::map<std::string, CObjectSchemaItem::SMember> service_type_map;
+ service_type_map[kStrDefault] = CObjectSchemaItem::SMember(
+ CArraySchemaItem::create(CStringSchemaItem::create()), true);
+
+ std::map<std::string, CObjectSchemaItem::SMember> endpoint_map;
+
+ endpoint_map[ObjectOptionalSchemaItem::kOptionalGenericFieldName] =
+ CObjectSchemaItem::SMember(
+ CObjectSchemaItem::create(service_type_map), true);
+
+ std::map<std::string, CObjectSchemaItem::SMember> module_config_map;
+ module_config_map[kStrEndpoints] = CObjectSchemaItem::SMember(
+ ObjectOptionalSchemaItem::create(endpoint_map), true);
+
+ return CObjectSchemaItem::create(module_config_map);
+}
+
+//-----------------------------------------------------------------------------
+
+SchemaItemPtr PolicyTableSchema::CreateFunctionalGroupings(void) {
+ std::map<std::string, CObjectSchemaItem::SMember> rpc_map;
+
+ rpc_map[kStrHmiLevels] = CObjectSchemaItem::SMember(
+ CArraySchemaItem::create(CStringSchemaItem::create()) );
+
+ rpc_map[kStrParameters] = CObjectSchemaItem::SMember(
+ CArraySchemaItem::create(CStringSchemaItem::create()), false);
+
+ std::map<std::string, CObjectSchemaItem::SMember> rpcs_map;
+ rpcs_map[ObjectOptionalSchemaItem::kOptionalGenericFieldName] =
+ CObjectSchemaItem::SMember(CObjectSchemaItem::create(rpc_map), false);
+
+ std::map<std::string, CObjectSchemaItem::SMember> functional_grouping_map;
+
+ functional_grouping_map[kStrUserConsentPrompt] =
+ CObjectSchemaItem::SMember(CStringSchemaItem::create(), false);
+ functional_grouping_map[kStrRpcs] = CObjectSchemaItem::SMember(
+ ObjectOptionalSchemaItem::create(rpcs_map), true);
+
+ std::map<std::string, CObjectSchemaItem::SMember> functional_groupings_map;
+
+ functional_groupings_map[
+ ObjectOptionalSchemaItem::kOptionalGenericFieldName] =
+ CObjectSchemaItem::SMember(
+ CObjectSchemaItem::create(functional_grouping_map), false);
+
+ return ObjectOptionalSchemaItem::create(functional_groupings_map);
+}
+
+//-----------------------------------------------------------------------------
+
+SchemaItemPtr PolicyTableSchema::CreatePriority(void) {
+ std::set<Priority::eType> allowed_priorities;
+
+ allowed_priorities.insert(Priority::PRIORITY_NONE);
+ allowed_priorities.insert(Priority::PRIORITY_NORMAL);
+ allowed_priorities.insert(Priority::PRIORITY_COMMUNICATION);
+ allowed_priorities.insert(Priority::PRIORITY_NAVIGATION);
+ allowed_priorities.insert(Priority::PRIORITY_EMERGENCY);
+
+ SchemaItemPtr priority =
+ TEnumSchemaItem<Priority::eType>::create(allowed_priorities);
+
+ return priority;
+}
+
+//-----------------------------------------------------------------------------
+
+SchemaItemPtr PolicyTableSchema::CreateAppId(void) {
+ std::map<std::string, CObjectSchemaItem::SMember> app_id_map;
+
+ app_id_map[kStrGroups] = CObjectSchemaItem::SMember(
+ CArraySchemaItem::create(CStringSchemaItem::create()), true);
+ app_id_map[kStrNicknames] = CObjectSchemaItem::SMember(
+ CArraySchemaItem::create(CStringSchemaItem::create()), true);
+ app_id_map[kStrPriority] = CObjectSchemaItem::SMember(
+ CreatePriority(), true);
+
+ return CObjectSchemaItem::create(app_id_map);
+}
+
+//-----------------------------------------------------------------------------
+
+SchemaItemPtr PolicyTableSchema::CreateAppPoliciesDefault(void) {
+ std::map<std::string, CObjectSchemaItem::SMember> default_map;
+
+ default_map[kStrPriority] = CObjectSchemaItem::SMember(
+ CreatePriority(), true);
+ default_map[kStrGroups] = CObjectSchemaItem::SMember(
+ CArraySchemaItem::create(CStringSchemaItem::create()), true);
+
+ return CObjectSchemaItem::create(default_map);
+}
+
+//-----------------------------------------------------------------------------
+
+SchemaItemPtr PolicyTableSchema::CreateAppPolicies(void) {
+ std::map<std::string, CObjectSchemaItem::SMember> app_policies_map;
+
+ app_policies_map[kStrDefault] =
+ CObjectSchemaItem::SMember(CreateAppPoliciesDefault(), true);
+ app_policies_map[ObjectOptionalSchemaItem::kOptionalGenericFieldName] =
+ CObjectSchemaItem::SMember(CreateAppId(), true);
+
+ return ObjectOptionalSchemaItem::create(app_policies_map);
+}
+
+} // namespace policies
+
+//-------------- String to value enum mapping ----------------
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+template <>
+const std::map<policies::Priority::eType, std::string>&
+ TEnumSchemaItem<policies::Priority::eType>::
+ getEnumElementsStringRepresentation() {
+ static bool is_initialized = false;
+ static std::map<policies::Priority::eType, std::string>
+ enum_string_representation;
+
+ if (false == is_initialized) {
+ enum_string_representation.insert(
+ std::make_pair(policies::Priority::PRIORITY_NONE, "NONE"));
+ enum_string_representation.insert(
+ std::make_pair(policies::Priority::PRIORITY_NORMAL, "NORMAL"));
+ enum_string_representation.insert(
+ std::make_pair(policies::Priority::PRIORITY_COMMUNICATION,
+ "COMMUNICATION"));
+ enum_string_representation.insert(
+ std::make_pair(policies::Priority::PRIORITY_NAVIGATION, "NAVIGATION"));
+ enum_string_representation.insert(
+ std::make_pair(policies::Priority::PRIORITY_EMERGENCY, "EMERGENCY"));
+
+ is_initialized = true;
+ }
+
+ return enum_string_representation;
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/policies/src/preloaded_pt_schema.cc b/SDL_Core/src/components/policies/src/preloaded_pt_schema.cc
new file mode 100644
index 000000000..146b2ac32
--- /dev/null
+++ b/SDL_Core/src/components/policies/src/preloaded_pt_schema.cc
@@ -0,0 +1,92 @@
+/**
+ * @file preloaded_pt_schema.cc
+ * @brief Policy table preloaded schema source file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "policies/preloaded_pt_schema.h"
+
+#include <map>
+#include <string>
+
+#include "smart_objects/object_optional_schema_item.h"
+#include "smart_objects/array_schema_item.h"
+#include "smart_objects/string_schema_item.h"
+
+
+namespace policies {
+
+using ::NsSmartDeviceLink::NsSmartObjects::CObjectSchemaItem;
+using ::NsSmartDeviceLink::NsSmartObjects::CSmartSchema;
+using ::NsSmartDeviceLink::NsSmartObjects::ISchemaItem;
+using ::NsSmartDeviceLink::NsSmartObjects::ObjectOptionalSchemaItem;
+using ::NsSmartDeviceLink::NsSmartObjects::CArraySchemaItem;
+using ::NsSmartDeviceLink::NsSmartObjects::CStringSchemaItem;
+
+typedef utils::SharedPtr<ISchemaItem> SchemaItemPtr;
+
+//-----------------------------------------------------------------------------
+
+CSmartSchema PreloadedPTSchema::Create(void) {
+ static PreloadedPTSchema schema;
+
+ return schema.GetSchema();
+}
+
+//-----------------------------------------------------------------------------
+
+SchemaItemPtr PreloadedPTSchema::CreateAppId(void) {
+ std::map<std::string, CObjectSchemaItem::SMember> app_id_map;
+
+ app_id_map[kStrGroups] = CObjectSchemaItem::SMember(
+ CArraySchemaItem::create(CStringSchemaItem::create()), true);
+ app_id_map[kStrNicknames] = CObjectSchemaItem::SMember(
+ CArraySchemaItem::create(CStringSchemaItem::create()), false);
+ app_id_map[kStrPriority] = CObjectSchemaItem::SMember(
+ CStringSchemaItem::create(), true);
+
+ return CObjectSchemaItem::create(app_id_map);
+}
+
+//-----------------------------------------------------------------------------
+
+SchemaItemPtr PreloadedPTSchema::CreateAppPolicies(void) {
+ std::map<std::string, CObjectSchemaItem::SMember> app_policies_map;
+
+ app_policies_map[kStrDefault] =
+ CObjectSchemaItem::SMember(CreateAppPoliciesDefault(), true);
+ app_policies_map[ObjectOptionalSchemaItem::kOptionalGenericFieldName] =
+ CObjectSchemaItem::SMember(CreateAppId(), false);
+
+ return ObjectOptionalSchemaItem::create(app_policies_map);
+}
+
+} // namespace policies
diff --git a/SDL_Core/src/components/protocol_handler/CMakeLists.txt b/SDL_Core/src/components/protocol_handler/CMakeLists.txt
new file mode 100644
index 000000000..2ca4de0e5
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/CMakeLists.txt
@@ -0,0 +1,20 @@
+include_directories (
+ ./include
+ ../utils/include/
+ ../transport_manager/include/
+ ../connection_handler/include/
+ ../config_profile/include/
+)
+
+set (SOURCES
+ ./src/applink_protocol.cc
+ ./src/rpc_type.cc
+ ./src/raw_message.cc
+ ./src/protocol_handler_impl.cc
+ ./src/protocol_packet.cc
+ ./src/protocol_payload.cc
+ ./src/message_priority.cc
+ ./src/service_type.cc
+)
+
+add_library("ProtocolHandler" ${SOURCES})
diff --git a/SDL_Core/src/components/protocol_handler/include/protocol_handler/applink_protocol.h b/SDL_Core/src/components/protocol_handler/include/protocol_handler/applink_protocol.h
new file mode 100644
index 000000000..01d617c4b
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/include/protocol_handler/applink_protocol.h
@@ -0,0 +1,77 @@
+#ifndef SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_APPLINK_PROTOCOL_H_
+#define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_APPLINK_PROTOCOL_H_
+
+#include <stdint.h>
+
+namespace protocol_handler {
+
+enum FrameType {
+ kFtControlFrame = 0x0,
+ kFtSingleFrame = 0x1,
+ kFtFirstFrame = 0x2,
+ kFtConsecutiveFrame = 0x3,
+ kFtReserved
+};
+
+enum ControlFrameType {
+ kCftHeartBeat = 0x00,
+ kCftStartService = 0x01,
+ kCftStartServiceAck = 0x02,
+ kCftStartServiceNAck = 0x03,
+ kCftEndService = 0x04,
+ kCftEndServiceAck = 0x05,
+ kCftEndServiceNAck = 0x06,
+ kCftReserved,
+ kCftServiceDataAck = 0xFE,
+ kCftHeartBeatAck = 0xFF
+};
+
+enum SingleFrameType {
+ kSftValue = 0x00,
+ kSftReserved
+};
+
+enum FirstFrameType {
+ kFftValue = 0x00,
+ kFftReserved
+};
+
+typedef uint8_t ConsecutiveFrameType;
+static const uint8_t kConsecutiveFrameLast = 0x00;
+
+typedef uint8_t SessionIdType;
+
+enum ControlFrameDataSizeType {
+ kCfDsValue = 0x00,
+ kCfDsReserved
+};
+
+enum FirstFrameDataSizeType {
+ kFfDsValue = 0x08,
+ kFfDsIncorrectValue
+};
+
+typedef uint32_t SingleFrameDataSizeType;
+typedef uint32_t ConsecutiveFrameDataSizeType;
+static const SingleFrameDataSizeType kSingleFrameDataSizeIncorrectValue = 0x0;
+static const ConsecutiveFrameDataSizeType kConsecutiveFrameDataSizeIncorrectValue = 0x0;
+
+typedef uint32_t MessageIdType;
+static const MessageIdType kMessageIdIncorrectValue = 0x0;
+
+typedef uint32_t SessionHashCode;
+static const SessionHashCode SessionHashCodeIncorrectValue = 0x0;
+
+struct ControlFrameHeartBeat {
+ SessionIdType session_id;
+ MessageIdType message_id;
+};
+
+struct ControlFrameHeartBeatAck {
+ SessionIdType session_id;
+ MessageIdType message_id;
+};
+
+} // namespace protocol_handler
+
+#endif // SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_APPLINK_PROTOCOL_H_
diff --git a/SDL_Core/src/components/protocol_handler/include/protocol_handler/message_priority.h b/SDL_Core/src/components/protocol_handler/include/protocol_handler/message_priority.h
new file mode 100644
index 000000000..aca01de7a
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/include/protocol_handler/message_priority.h
@@ -0,0 +1,37 @@
+#ifndef SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_MESSAGE_PRIORITY_H
+#define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_MESSAGE_PRIORITY_H
+
+#include <cstddef>
+
+#include "protocol_handler/service_type.h"
+
+namespace protocol_handler {
+
+// Class for calculating and tracking message priorities in the system
+// It was decided to wrap simple priority number into trivial class to
+// Have all priority value calculations in single place and
+// prevent random priorities assignment in the code
+class MessagePriority {
+ public:
+ // Default (in other words non-prioritized) priority value
+ static const MessagePriority kDefault;
+ // Static constructor to get priority value of Service type
+ static MessagePriority FromServiceType(ServiceType service_type);
+
+ // Trivial inline copy constructor
+ MessagePriority(const MessagePriority& that): value_(that.value_) {}
+
+ // Ordering value which is used by queues to order messages
+ // Higher value means higher prioirty
+ size_t OrderingValue() { return value_; }
+ private:
+ // Constructor is private to prevent creation
+ // of random priorities in the code please use static constructor if you
+ // need priority value
+ explicit MessagePriority(int32_t value): value_(value) {}
+ size_t value_;
+};
+
+} // namespace protocol_handler
+
+#endif // SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_MESSAGE_PRIORITY_H
diff --git a/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_handler.h b/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_handler.h
new file mode 100644
index 000000000..31c5e8d0b
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_handler.h
@@ -0,0 +1,95 @@
+/**
+ * \file protocol_handler.h
+ * \brief ProtocolHandler class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_HANDLER
+#define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_HANDLER
+
+#include "protocol_handler/raw_message.h"
+
+/**
+ *\namespace NsProtocolHandler
+ *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality.
+ */
+namespace protocol_handler {
+
+class ProtocolObserver;
+
+/**
+ * \class ProtocolHandler
+ * \brief Interface for component parsing protocol header
+ * on the messages between SDL and mobile application.
+ */
+class ProtocolHandler {
+ public:
+ /**
+ * \brief Adds pointer to higher layer handler for message exchange
+ * \param observer Pointer to object of the class implementing
+ * IProtocolObserver
+ */
+ virtual void AddProtocolObserver(ProtocolObserver* observer) = 0;
+
+ /**
+ * \brief Removes pointer to higher layer handler for message exchange
+ * \param observer Pointer to object of the class implementing
+ * IProtocolObserver.
+ */
+ virtual void RemoveProtocolObserver(ProtocolObserver* observer) = 0;
+
+ /**
+ * \brief Method for sending message to Mobile Application.
+ * \param message RawMessage with params to be sent to Mobile App.
+ * \param final_message tells whether message's
+ * connection must be closed when message is processed
+ */
+ virtual void SendMessageToMobileApp(const RawMessagePtr& message,
+ bool final_message) = 0;
+
+ /**
+ * \brief Sends number of processed frames in case of binary nav streaming
+ * \param connection_key Id of connection over which message is to be sent
+ * \param number_of_frames Number of frames processed by
+ * streaming server and displayed to user.
+ */
+ virtual void SendFramesNumber(int32_t connection_key, int32_t number_of_frames) = 0;
+
+ protected:
+ /**
+ * \brief Destructor
+ */
+ virtual ~ProtocolHandler() {
+ }
+};
+} // namespace protocol_handler
+
+#endif // SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_HANDLER
diff --git a/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_handler_impl.h b/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_handler_impl.h
new file mode 100644
index 000000000..745370019
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_handler_impl.h
@@ -0,0 +1,455 @@
+/**
+ * \file protocol_handler.h
+ * \brief ProtocolHandlerImpl class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_HANDLER_IMPL_H_
+#define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_HANDLER_IMPL_H_
+
+#include <map>
+#include <set>
+#include "utils/logger.h"
+#include "utils/prioritized_queue.h"
+#include "utils/message_queue.h"
+#include "utils/threads/thread.h"
+#include "utils/threads/message_loop_thread.h"
+#include "utils/shared_ptr.h"
+
+#include "protocol_handler/protocol_handler.h"
+#include "protocol_handler/protocol_packet.h"
+#include "protocol_handler/session_observer.h"
+#include "protocol_handler/protocol_observer.h"
+#include "transport_manager/common.h"
+#include "transport_manager/transport_manager.h"
+#include "transport_manager/transport_manager_listener_empty.h"
+
+/**
+ *\namespace NsProtocolHandler
+ *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality.
+ */
+namespace protocol_handler {
+class ProtocolObserver;
+class SessionObserver;
+
+class MessagesFromMobileAppHandler;
+class MessagesToMobileAppHandler;
+
+using transport_manager::TransportManagerListenerEmpty;
+
+/**
+ * @brief Type definition for variable that hold shared pointer to raw message.
+ */
+typedef utils::SharedPtr<protocol_handler::ProtocolPacket> ProtocolFramePtr;
+
+typedef std::multimap<int32_t, RawMessagePtr> MessagesOverNaviMap;
+typedef std::set<ProtocolObserver*> ProtocolObservers;
+typedef transport_manager::ConnectionUID ConnectionID;
+
+namespace impl {
+/*
+ * These dummy classes are here to locally impose strong typing on different
+ * kinds of messages
+ * Currently there is no type difference between incoming and outgoing messages
+ * TODO(ik): replace these with globally defined message types
+ * when we have them.
+ */
+struct RawFordMessageFromMobile: public ProtocolFramePtr {
+ explicit RawFordMessageFromMobile(const ProtocolFramePtr& message)
+ : ProtocolFramePtr(message) {}
+ // PrioritizedQueue requires this method to decide which priority to assign
+ size_t PriorityOrder() const { return MessagePriority::FromServiceType(ServiceTypeFromByte(
+ get()->service_type())).OrderingValue(); }
+};
+
+struct RawFordMessageToMobile: public ProtocolFramePtr {
+ explicit RawFordMessageToMobile(const ProtocolFramePtr& message, bool final_message)
+ : ProtocolFramePtr(message), is_final(final_message) {}
+ // PrioritizedQueue requires this method to decide which priority to assign
+ size_t PriorityOrder() const { return MessagePriority::FromServiceType(ServiceTypeFromByte(
+ get()->service_type())).OrderingValue(); }
+ // Signals whether connection to mobile must be closed after processing this message
+ bool is_final;
+};
+
+// Short type names for prioritized message queues
+typedef threads::MessageLoopThread<
+ utils::PrioritizedQueue<RawFordMessageFromMobile> > FromMobileQueue;
+typedef threads::MessageLoopThread<
+ utils::PrioritizedQueue<RawFordMessageToMobile> > ToMobileQueue;
+}
+
+/**
+ * \class ProtocolHandlerImpl
+ * \brief Class for handling message exchange between Transport and higher
+ * layers. Receives message in form of array of bytes, parses its protocol,
+ * handles according to parsing results (version number, start/end session etc
+ * and if needed passes message to JSON Handler or notifies Connection Handler
+ * about activities around sessions.
+ */
+class ProtocolHandlerImpl
+ : public ProtocolHandler,
+ public TransportManagerListenerEmpty,
+ public impl::FromMobileQueue::Handler,
+ public impl::ToMobileQueue::Handler {
+ public:
+ /**
+ * \brief Constructor
+ * \param transportManager Pointer to Transport layer handler for
+ * message exchange.
+ */
+ explicit ProtocolHandlerImpl(
+ transport_manager::TransportManager* transport_manager_param);
+
+ /**
+ * \brief Destructor
+ */
+ ~ProtocolHandlerImpl();
+
+ /**
+ * \brief Adds pointer to higher layer handler for message exchange
+ * \param observer Pointer to object of the class implementing
+ * IProtocolObserver
+ */
+ void AddProtocolObserver(ProtocolObserver* observer);
+
+ /**
+ * \brief Removes pointer to higher layer handler for message exchange
+ * \param observer Pointer to object of the class implementing
+ * IProtocolObserver.
+ */
+ void RemoveProtocolObserver(ProtocolObserver* observer);
+
+ /**
+ * \brief Sets pointer for Connection Handler layer for managing sessions
+ * \param observer Pointer to object of the class implementing
+ * ISessionObserver
+ */
+ void set_session_observer(SessionObserver* observer);
+
+ /**
+ * \brief Method for sending message to Mobile Application
+ * \param message Message with params to be sent to Mobile App
+ */
+ void SendMessageToMobileApp(const RawMessagePtr& message,
+ bool final_message) OVERRIDE;
+
+ /**
+ * \brief Sends number of processed frames in case of binary nav streaming
+ * \param connection_key Id of connection over which message is to be sent
+ * \param number_of_frames Number of frames processed by
+ * streaming server and displayed to user.
+ */
+ void SendFramesNumber(int32_t connection_key, int32_t number_of_frames);
+
+ protected:
+
+ /**
+ * \brief Sends acknowledgement of starting session to mobile application
+ * with session number and hash code for second version of protocol
+ * \param connection_handle Identifier of connection within which session
+ * was started
+ * \param session_id ID of session to be sent to mobile application
+ * \param protocol_version Version of protocol used for communication
+ * \param hash_code For second version of protocol: identifier of session
+ * to be sent to
+ * mobile app for using when ending session
+ * \param service_type Type of session: RPC or BULK Data. RPC by default
+ */
+ void SendStartSessionAck(
+ ConnectionID connection_id,
+ uint8_t session_id,
+ uint8_t protocol_version,
+ uint32_t hash_code = 0,
+ uint8_t service_type = SERVICE_TYPE_RPC);
+
+ /**
+ * \brief Sends fail of starting session to mobile application
+ * \param connection_handle Identifier of connection within which session
+ * ment to be started
+ * \param session_id ID of session to be sent to mobile application
+ * \param protocol_version Version of protocol used for communication
+ * \param service_type Type of session: RPC or BULK Data. RPC by default
+ */
+ void SendStartSessionNAck(
+ ConnectionID connection_id,
+ uint8_t session_id,
+ uint8_t protocol_version,
+ uint8_t service_type = SERVICE_TYPE_RPC);
+
+ /**
+ * \brief Sends acknowledgement of end session/service to mobile application
+ * with session number and hash code for second version of protocol
+ * \param connection_handle Identifier of connection within which session
+ * was started
+ * \param session_id ID of session to be sent to mobile application
+ * \param protocol_version Version of protocol used for communication
+ * \param hash_code For second version of protocol: identifier of session
+ * to be sent to
+ * mobile app for using when ending session.
+ * \param service_type Type of session: RPC or BULK Data. RPC by default
+ */
+ void SendEndSessionAck(
+ ConnectionID connection_id ,
+ uint8_t session_id,
+ uint8_t protocol_version,
+ uint32_t hash_code = 0,
+ uint8_t service_type = SERVICE_TYPE_RPC);
+
+ /**
+ * \brief Sends fail of ending session to mobile application
+ * \param connection_handle Identifier of connection within which
+ * session exists
+ * \param session_id ID of session ment to be ended
+ * \param protocol_version Version of protocol used for communication
+ * \param service_type Type of session: RPC or BULK Data. RPC by default
+ */
+ void SendEndSessionNAck(
+ ConnectionID connection_id ,
+ uint32_t session_id,
+ uint8_t protocol_version,
+ uint8_t service_type = SERVICE_TYPE_RPC);
+
+ private:
+ /*
+ * Prepare and send heartbeat acknowledge message
+ */
+ RESULT_CODE SendHeartBeatAck(ConnectionID connection_id,
+ uint8_t session_id,
+ uint32_t message_id);
+
+ /**
+ * @brief Notifies about receiving message from TM.
+ *
+ * @param message Received message
+ **/
+ virtual void OnTMMessageReceived(
+ const RawMessagePtr message);
+
+ /**
+ * @brief Notifies about error on receiving message from TM.
+ *
+ * @param error Occurred error
+ **/
+ virtual void OnTMMessageReceiveFailed(
+ const transport_manager::DataReceiveError& error);
+
+ /**
+ * @brief Notifies about successfully sending message.
+ *
+ **/
+ virtual void OnTMMessageSend(const RawMessagePtr message);
+
+ /**
+ * @brief Notifies about error occurred during
+ * sending message.
+ *
+ * @param error Describes occurred error.
+ * @param message Message during sending which error occurred.
+ **/
+ virtual void OnTMMessageSendFailed(
+ const transport_manager::DataSendError& error,
+ const RawMessagePtr& message);
+
+ /**
+ * @brief Notifies subscribers about message
+ * recieved from mobile device.
+ * @param message Message with already parsed header.
+ */
+ void NotifySubscribers(const RawMessagePtr& message);
+
+ /**
+ * \brief Sends message which size permits to send it in one frame.
+ * \param connection_handle Identifier of connection through which message
+ * is to be sent.
+ * \param session_id ID of session through which message is to be sent.
+ * \param protocol_version Version of Protocol used in message.
+ * \param service_type Type of session, RPC or BULK Data
+ * \param data_size Size of message excluding protocol header
+ * \param data Message string
+ * \param compress Compression flag
+ * \return \saRESULT_CODE Status of operation
+ */
+ RESULT_CODE SendSingleFrameMessage(
+ ConnectionID connection_id,
+ const uint8_t session_id,
+ uint32_t protocol_version,
+ const uint8_t service_type,
+ const uint32_t data_size,
+ const uint8_t* data,
+ const bool compress);
+
+ /**
+ * \brief Sends message which size doesn't permit to send it in one frame.
+ * \param connection_handle Identifier of connection through which message
+ * is to be sent.
+ * \param session_id ID of session through which message is to be sent.
+ * \param protocol_version Version of Protocol used in message.
+ * \param service_type Type of session, RPC or BULK Data
+ * \param data_size Size of message excluding protocol header
+ * \param data Message string
+ * \param compress Compression flag
+ * \param max_data_size Maximum allowed size of single frame.
+ * \return \saRESULT_CODE Status of operation
+ */
+ RESULT_CODE SendMultiFrameMessage(
+ ConnectionID connection_id,
+ const uint8_t session_id,
+ uint32_t protocol_version,
+ const uint8_t service_type,
+ const uint32_t data_size,
+ const uint8_t* data,
+ const bool compress,
+ const uint32_t max_data_size);
+
+ /**
+ * \brief Sends message already containing protocol header.
+ * \param connection_handle Identifier of connection through which message
+ * is to be sent.
+ * \param packet Message with protocol header.
+ * \return \saRESULT_CODE Status of operation
+ */
+ RESULT_CODE SendFrame(
+ ConnectionID connection_id,
+ const ProtocolPacket& packet);
+
+ /**
+ * \brief Handles received message.
+ * \param connection_handle Identifier of connection through which message
+ * is received.
+ * \param packet Received message with protocol header.
+ * \return \saRESULT_CODE Status of operation
+ */
+ RESULT_CODE HandleMessage(
+ ConnectionID connection_id ,
+ const ProtocolFramePtr& packet);
+
+ /**
+ * \brief Handles message received in multiple frames. Collects all frames
+ * of message.
+ * \param connection_handle Identifier of connection through which message
+ * is received.
+ * \param packet Current frame of message with protocol header.
+ * \return \saRESULT_CODE Status of operation
+ */
+ RESULT_CODE HandleMultiFrameMessage(
+ ConnectionID connection_id ,
+ const ProtocolFramePtr& packet);
+
+ /**
+ * \brief Handles message received in single frame.
+ * \param connection_handle Identifier of connection through which message
+ * is received.
+ * \param packet Received message with protocol header.
+ * \return \saRESULT_CODE Status of operation
+ */
+ RESULT_CODE HandleControlMessage(
+ ConnectionID connection_id ,
+ const ProtocolFramePtr& packet);
+
+ RESULT_CODE HandleControlMessageEndSession(
+ ConnectionID connection_id ,
+ const ProtocolPacket& packet);
+
+ RESULT_CODE HandleControlMessageStartSession(
+ ConnectionID connection_id ,
+ const ProtocolPacket& packet);
+
+ RESULT_CODE HandleControlMessageHeartBeat(
+ ConnectionID connection_id ,
+ const ProtocolPacket& packet);
+
+ /**
+ * \brief Sends Mobile Navi Ack message
+ */
+ RESULT_CODE SendMobileNaviAck(
+ ConnectionID connection_id ,
+ int32_t connection_key);
+
+ // threads::MessageLoopThread<*>::Handler implementations
+ // CALLED ON raw_ford_messages_from_mobile_ thread!
+ void Handle(const impl::RawFordMessageFromMobile& message);
+ // CALLED ON raw_ford_messages_to_mobile_ thread!
+ void Handle(const impl::RawFordMessageToMobile& message);
+ private:
+ /**
+ * \brief For logging.
+ */
+ static log4cxx::LoggerPtr logger_;
+
+ /**
+ *\brief Pointer on instance of class implementing IProtocolObserver
+ *\brief (JSON Handler)
+ */
+ ProtocolObservers protocol_observers_;
+
+ /**
+ *\brief Pointer on instance of class implementing ISessionObserver
+ *\brief (Connection Handler)
+ */
+ SessionObserver* session_observer_;
+
+ /**
+ *\brief Pointer on instance of Transport layer handler for message exchange.
+ */
+ transport_manager::TransportManager* transport_manager_;
+
+ /**
+ *\brief Map of frames for messages received in multiple frames.
+ */
+ std::map<int32_t, ProtocolFramePtr> incomplete_multi_frame_messages_;
+
+ /**
+ * \brief Map of messages (frames) recieved over mobile nave session
+ * for map streaming.
+ */
+ MessagesOverNaviMap message_over_navi_session_;
+
+ /**
+ * \brief Untill specified otherwise, amount of message recievied
+ * over streaming session to send Ack
+ */
+ const uint32_t kPeriodForNaviAck;
+
+ /**
+ *\brief Counter of messages sent in each session.
+ */
+ std::map<uint8_t, uint32_t> message_counters_;
+
+ // Thread that pumps non-parsed messages coming from mobile side.
+ impl::FromMobileQueue raw_ford_messages_from_mobile_;
+ // Thread that pumps messages prepared to being sent to mobile side.
+ impl::ToMobileQueue raw_ford_messages_to_mobile_;
+};
+} // namespace protocol_handler
+
+#endif // SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_HANDLER_IMPL_H_
diff --git a/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_observer.h b/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_observer.h
new file mode 100644
index 000000000..e2dcf8320
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_observer.h
@@ -0,0 +1,76 @@
+/**
+ * \file IProtocolObserver.h
+ * \brief IProtocolObserver class header.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_OBSERVER_H_
+#define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_OBSERVER_H_
+
+#include "protocol_handler/raw_message.h"
+#include "utils/shared_ptr.h"
+
+/**
+ *\namespace NsProtocolHandler
+ *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality.
+ */
+namespace protocol_handler {
+
+typedef utils::SharedPtr<RawMessage> RawMessagePtr;
+
+/**
+ * \class IProtocolObserver
+ * \brief Interface for making a bridge between
+ * ProtocolHandler and JSONHandler components.
+ */
+class ProtocolObserver {
+ public:
+ /**
+ * \brief Callback function which is used by ProtocolHandler
+ * when new message is received from Mobile Application.
+ * \param message Message with supporting params received
+ */
+ virtual void OnMessageReceived(const RawMessagePtr& message) = 0;
+
+ virtual void OnMobileMessageSent(const RawMessagePtr& message) = 0;
+
+
+ protected:
+ /**
+ * \brief Destructor
+ */
+ virtual ~ProtocolObserver() {
+ }
+};
+} // namespace protocol_handler
+
+#endif // SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_OBSERVER_H_
diff --git a/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_packet.h b/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_packet.h
new file mode 100644
index 000000000..3775439fb
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_packet.h
@@ -0,0 +1,498 @@
+/**
+ * \file ProtocolPacket.h
+ * \brief ProtocolPacket class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_PACKET_H_
+#define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_PACKET_H_
+
+#include "utils/macro.h"
+
+/**
+ *\namespace NsProtocolHandler
+ *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality.
+ */
+namespace protocol_handler {
+/**
+ *\brief Size of protocol header for first version of protocol.
+ */
+const uint8_t PROTOCOL_HEADER_V1_SIZE = 8;
+
+/**
+ *\brief Size of protocol header for second version of protocol.
+ */
+const uint8_t PROTOCOL_HEADER_V2_SIZE = 12;
+
+/**
+ *\brief Constant: number of protocol version (1).
+ */
+const uint8_t PROTOCOL_VERSION_1 = 0x01;
+
+/**
+ *\brief Constant: number of protocol version (2).
+ */
+const uint8_t PROTOCOL_VERSION_2 = 0x02;
+
+/**
+ *\brief Constant: flag of no compression
+ */
+const bool COMPRESS_OFF = false;
+
+/**
+ *\brief Constant: Control type of frame used in protocol header.
+ */
+const uint8_t FRAME_TYPE_CONTROL = 0x00;
+
+/**
+ *\brief Constant: Single type of frame used in protocol header.
+ */
+const uint8_t FRAME_TYPE_SINGLE = 0x01;
+
+/**
+ *\brief Constant: First frame for multiple frames used in protocol header.
+ */
+const uint8_t FRAME_TYPE_FIRST = 0x02;
+
+/**
+ *\brief Constant: Consecutive type of frame for multiple frames used in
+ *\brief protocol header.
+ */
+const uint8_t FRAME_TYPE_CONSECUTIVE = 0x03;
+
+
+/**
+ *\brief Constant: Frame type for HeartBeat
+ */
+const uint8_t SERVICE_TYPE_ZERO = 0x00;
+
+/**
+ *\brief Constant: RPC type of session
+ */
+const uint8_t SERVICE_TYPE_RPC = 0x07;
+
+/**
+ *\brief Constant: Raw PCM audio service
+ */
+const uint8_t SERVICE_TYPE_AUDIO = 0x0A;
+
+/**
+ * \brief Constant: Mobile Navi type of session for map streaming
+ */
+const uint8_t SERVICE_TYPE_NAVI = 0x0B;
+
+/**
+ *\brief Constant: Bulk data type of session (hybrid)
+ */
+const uint8_t SERVICE_TYPE_BULK = 0x0F;
+
+/**
+ *\brief Unused: If FRAME_TYPE_CONTROL: Constant: Frame is for heart beat.
+ */
+const uint8_t FRAME_DATA_HEART_BEAT = 0x00;
+
+/**
+ *\brief If FRAME_TYPE_CONTROL: Constant: Start service frame
+ */
+const uint8_t FRAME_DATA_START_SERVICE = 0x01;
+
+/**
+ *\brief If FRAME_TYPE_CONTROL: Constant: Start service acknowledgement frame
+ */
+const uint8_t FRAME_DATA_START_SERVICE_ACK = 0x02;
+
+/**
+ *\brief If FRAME_TYPE_CONTROL: Constant: Start service not acknowledgement
+ *\brief frame
+ */
+const uint8_t FRAME_DATA_START_SERVICE_NACK = 0x03;
+
+/**
+ *\brief If FRAME_TYPE_CONTROL: Constant: End service request frame
+ */
+const uint8_t FRAME_DATA_END_SERVICE = 0x04;
+
+/**
+ * \brief if FRAME_TYPE_CONTROL: Constant: End service acknowledgement frame
+ */
+const uint8_t FRAME_DATA_END_SERVICE_ACK = 0x05;
+
+/**
+ *\brief If FRAME_TYPE_CONTROL: Constant: End service not acknowledgement frame
+ */
+const uint8_t FRAME_DATA_END_SERVICE_NACK = 0x06;
+
+/**
+ *\brief If FRAME_TYPE_CONTROL: Constant: Service data ACK frame
+ */
+const uint8_t FRAME_DATA_SERVICE_DATA_ACK = 0xFE;
+
+/**
+ *\brief Unused: If FRAME_TYPE_CONTROL: Constant: Frame is for heart beat ack.
+ */
+const uint8_t FRAME_DATA_HEART_BEAT_ACK = 0xFF;
+
+/**
+ *\brief If FRAME_TYPE_CONTROL: Constant: Maximum of consecutive frame numbers
+ * after which count has to roll over to 0x01
+ */
+const uint8_t FRAME_DATA_MAX_VALUE = 0xFF;
+
+/**
+ *\brief If FRAME_TYPE_CONTROL: Constant: Maximum size of one frame excluding
+ *\brief frame header.
+ */
+const uint32_t MAXIMUM_FRAME_DATA_SIZE = 1488;
+
+/**
+ *\brief If FRAME_TYPE_CONSECUTIVE: Constant: Marks last frame in mutliframe
+ *\brief message.
+ */
+const uint8_t FRAME_DATA_LAST_FRAME = 0x00;
+
+/**
+ *\brief If FRAME_TYPE_CONSECUTIVE: Constant: Size of first frame in
+ *\brief mutliframe message.
+ */
+const uint8_t FIRST_FRAME_DATA_SIZE = 0x08;
+
+/**
+ *\enum RESULT_CODE
+ *\brief Return type for operations with message handling.
+ */
+enum RESULT_CODE {
+ RESULT_OK = 1,
+ RESULT_FAIL = 2,
+ RESULT_NUMBER_BUSY = 3,
+ RESULT_CONNECTION_LOST = 4,
+ RESULT_DISCONNECTED = 5,
+ RESULT_NOTFOUND = 6,
+ RESULT_TIMEOUT = 7,
+ RESULT_WRONG_SEQUENCE = 8,
+ RESULT_AGAIN = 9,
+ RESULT_WRONG_FRAME_SEQUENCE = 10,
+ RESULT_IN_PROGRESS = 11,
+ RESULT_REASSIGN = 12,
+ RESULT_XML_PARSING = 13,
+ RESULT_RESEND_ACK = 14,
+ RESULT_DEFRERRED = 15,
+ RESULT_UNKNOWN = 255
+};
+
+/**
+ * \struct ProtocolHeader
+ * \brief Used for storing protocol header of a message.
+ */
+// TODO(AK): Can we move this to cc file?
+struct ProtocolHeader {
+ /**
+ * \brief Constructor
+ */
+ ProtocolHeader()
+ : version(0x00),
+ compress(0x00),
+ frameType(0x00),
+ serviceType(0x00),
+ frameData(0x00),
+ sessionId(0x00),
+ dataSize(0x00),
+ messageId(0x00) {
+ }
+
+ /**
+ *\brief Version of protocol
+ */
+ uint8_t version;
+
+ /**
+ *\brief Compression flag
+ */
+ bool compress;
+
+ /**
+ *\brief Type of frame (Single/First/Consecutive)
+ */
+ uint8_t frameType;
+
+ /**
+ *\brief Type of service (RPC/Buld data)
+ */
+ uint8_t serviceType;
+
+ /**
+ *\brief Data about frame (Start/End session etc)
+ */
+ uint8_t frameData;
+
+ /**
+ *\brief Session number withing connection
+ */
+ uint8_t sessionId;
+
+ /**
+ *\brief Size of message itself, excluding size of header
+ */
+ uint32_t dataSize;
+
+ /**
+ *\brief Used only in second versin of protocol: Message ID
+ */
+ uint32_t messageId;
+};
+
+/**
+ * \struct ProtocolData
+ * \brief Used for storing message and its size.
+ */
+struct ProtocolData {
+ ProtocolData()
+ : data(0),
+ totalDataBytes(0x00) {
+ }
+
+ uint8_t* data;
+ uint32_t totalDataBytes;
+};
+
+/**
+ * \class ProtocolPacket
+ * \brief Class for forming/parsing protocol headers of the message and
+ * handling multiple frames of the message.
+ */
+class ProtocolPacket {
+ public:
+ /**
+ * \brief Default constructor
+ */
+ ProtocolPacket();
+
+ /**
+ * \brief Cconstructor
+ *
+ * \param connectionKey Identifier of connection within wich message
+ * is transferred
+ * \param data Message string
+ * \param dataSize Message size
+ */
+ ProtocolPacket(uint8_t connection_key, uint8_t* data_param,
+ uint32_t data_size);
+
+ /**
+ * \brief Constructor
+ * \param version Version of protocol
+ * \param compress Compression flag
+ * \param frameType Type of frame (Single/First/Consecutive)
+ * \param serviceType Type of session (RPC/Bulk data)
+ * \param frameData Information about frame: start/end session, number of
+ * frame, etc
+ * \param sessionID Number of frame within connection
+ * \param dataSize Size of message string
+ * \param messageID ID of message or hash code - only for second protocol
+ * \param data Message string if provided
+ */
+ ProtocolPacket(uint8_t connection_key,
+ uint8_t version, bool compress, uint8_t frameType,
+ uint8_t serviceType, uint8_t frameData,
+ uint8_t sessionId, uint32_t dataSize,
+ uint32_t messageID, const uint8_t* data = 0,
+ uint32_t packet_id = 0);
+ /**
+ * \brief Destructor
+ */
+ ~ProtocolPacket();
+
+ /*Serialization*/
+ /**
+ * \brief Serializes info about message into protocol header.
+ * \param version Version of protocol
+ * \param compress Compression flag
+ * \param frameType Type of frame (Single/First/Consecutive)
+ * \param serviceType Type of session (RPC/Bulk data)
+ * \param frameData Information about frame: start/end session, number of
+ * frame, etc
+ * \param sessionID Number of frame within connection
+ * \param dataSize Size of message string
+ * \param messageID ID of message or hash code - only for second protocol
+ * \param data Message string if provided
+ * \return \saRESULT_CODE Status of serialization
+ */
+ RESULT_CODE serializePacket(uint8_t version, bool compress,
+ uint8_t frameType,
+ uint8_t serviceType,
+ uint8_t frameData, uint8_t sessionId,
+ uint32_t dataSize, uint32_t messageID,
+ const uint8_t* data = 0);
+
+ /**
+ * \brief Appends message frame to existing message in
+ * recieving multiframe messages.
+ * \param chunkData Current frame's message string
+ * \param chunkDataSize Size of current message string
+ * \return \saRESULT_CODE Status of serialization
+ */
+ RESULT_CODE appendData(uint8_t* chunkData, uint32_t chunkDataSize);
+
+ /**
+ * \brief Getter of serialized message with protocol header
+ * \return uint8_t * Message string or 0 if not serialized properly.
+ */
+ uint8_t* packet() const;
+
+ /**
+ * \brief Getter of message ID
+ * \return uint32_t size of message string
+ */
+ uint32_t packet_size() const;
+
+ /**
+ * \brief Getter of message size including protocol header
+ * \return uint32_t size of message string
+ */
+ uint32_t packet_id() const;
+
+ /*End of Serialization*/
+
+ /*Deserialization*/
+
+ /**
+ * \brief Parses protocol header
+ * \param message Incoming message string containing both header and
+ * message body
+ * \param messageSize Incoming message size
+ * \return \saRESULT_CODE Status of serialization
+ */
+ RESULT_CODE deserializePacket(const uint8_t* message,
+ uint32_t messageSize);
+
+ /**
+ * \brief Getter of protocol version.
+ */
+ uint8_t protocol_version() const;
+
+ /**
+ * \brief Getter of compression flag
+ */
+ bool is_compress() const;
+
+ /**
+ * \brief Getter of frame type (single/first/etc)
+ */
+ uint8_t frame_type() const;
+
+ /**
+ *\brief Getter of service type (RPC/Bulk data)
+ */
+ uint8_t service_type() const;
+
+ /**
+ *\brief Getter of frame data (start/end session, number of frame etc)
+ */
+ uint8_t frame_data() const;
+
+ /**
+ *\brief Getter of session number
+ */
+ uint8_t session_id() const;
+
+ /**
+ *\brief Getter of size of message body
+ */
+ uint32_t data_size() const;
+
+ /**
+ *\brief Getter of message id for second version of protocol
+ */
+ uint32_t message_id() const;
+
+ /**
+ *\brief Getter of message string
+ */
+ uint8_t* data() const;
+
+ /**
+ *\brief Setter for size of multiframe message
+ */
+ void set_total_data_bytes(uint32_t dataBytes);
+
+ /**
+ *\brief Getter for size of multiframe message
+ */
+ uint32_t total_data_bytes() const;
+ /*End of Deserialization*/
+
+ /**
+ * \brief Getter for Connection Identifier
+ */
+ uint8_t connection_key() const;
+
+ private:
+ /**
+ *\brief Serialized message string
+ */
+ uint8_t* packet_;
+
+ /**
+ *\brief Serialized message string size
+ */
+ uint32_t total_packet_size_;
+
+ /**
+ *\brief Protocol header
+ */
+ ProtocolHeader packet_header_;
+
+ /**
+ *\brief Message body
+ */
+ ProtocolData packet_data_;
+
+ /**
+ *\brief Offset for multiframe messages
+ */
+ uint32_t data_offset_;
+
+ /**
+ *\brief ID for multiframe messages
+ */
+ uint32_t packet_id_;
+
+ /**
+ * \brief Connection Identifier
+ * Obtained from connection_handler
+ */
+ uint8_t connection_key_;
+
+ DISALLOW_COPY_AND_ASSIGN(ProtocolPacket);
+};
+} // namespace protocol_handler
+
+#endif // SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_PACKET_H_
diff --git a/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_payload.h b/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_payload.h
new file mode 100644
index 000000000..2454e62cb
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/include/protocol_handler/protocol_payload.h
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_PAYLOAD_H_
+#define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_PAYLOAD_H_
+
+#include <stdint.h>
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include "protocol_handler/rpc_type.h"
+
+namespace utils {
+class BitStream;
+}
+
+namespace protocol_handler {
+
+// Applink Protocolv5 4.1.2 Protocol Payload Binary header
+struct ProtocolPayloadHeaderV2 {
+ ProtocolPayloadHeaderV2()
+ : rpc_type(kRpcTypeReserved),
+ rpc_function_id(0), corellation_id(0), json_size(0) {}
+ RpcType rpc_type;
+ uint32_t rpc_function_id;
+ uint32_t corellation_id;
+ uint32_t json_size;
+};
+
+// Applink Protocolv5 4.1.1 Protocol Message Payload
+struct ProtocolPayloadV2 {
+ ProtocolPayloadHeaderV2 header;
+ std::string json;
+ std::vector<uint8_t> data;
+};
+
+// Procedures that extract and validate defined protocol structures from
+// a bit stream.
+// If error during parsing is detected, bit stream is marked as invalid
+void Extract(utils::BitStream* bs, ProtocolPayloadHeaderV2* headerv2);
+void Extract(utils::BitStream* bs, ProtocolPayloadV2* payload, size_t payload_size);
+
+std::ostream& operator<<(std::ostream& os, const ProtocolPayloadHeaderV2& payload_header);
+std::ostream& operator<<(std::ostream& os, const ProtocolPayloadV2& payload);
+
+} // namespace protocol_handler
+
+#endif /* SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_PAYLOAD_H_ */
diff --git a/SDL_Core/src/components/protocol_handler/include/protocol_handler/raw_message.h b/SDL_Core/src/components/protocol_handler/include/protocol_handler/raw_message.h
new file mode 100644
index 000000000..6b712b8a0
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/include/protocol_handler/raw_message.h
@@ -0,0 +1,164 @@
+/**
+ * \file SmartDeviceLinkRawMessage.h
+ * \brief SmartDeviceLinkRawMessage class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_RAW_MESSAGE_H_
+#define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_RAW_MESSAGE_H_
+
+#include "utils/macro.h"
+#include "utils/shared_ptr.h"
+#include "protocol_handler/service_type.h"
+#include "protocol_handler/message_priority.h"
+
+/**
+ *\namespace NsProtocolHandler
+ *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality.
+ */
+
+namespace protocol_handler {
+/**
+ * \class SmartDeviceLinkRawMessage
+ * \brief Class-wraper for information about message for interchanging
+ * between components.
+ */
+class RawMessage {
+ public:
+ /**
+ * \brief Constructor
+ * \param connectionKey Identifier of connection within wich message
+ * is transferred
+ * \param protocolVersion Version of protocol of the message
+ * \param data Message string
+ * \param dataSize Message size
+ */
+ RawMessage(int32_t connectionKey, uint32_t protocolVersion,
+ uint8_t* data_param, uint32_t dataSize,
+ uint8_t type = ServiceType::kRpc);
+
+ /**
+ * \brief Destructor
+ */
+ ~RawMessage();
+
+ /**
+ * \brief Getter for connection identifier
+ */
+ int32_t connection_key() const;
+
+ void set_connection_key(uint32_t);
+
+ /**
+ * \brief Getter for message string
+ */
+ uint8_t* data() const;
+
+ /**
+ * \brief Getter for message size
+ */
+ uint32_t data_size() const;
+
+ /**
+ * \brief Getter for protocol version
+ */
+ uint32_t protocol_version() const;
+
+ /**
+ * \brief Getter for service type
+ */
+ ServiceType service_type() const {
+ return service_type_;
+ }
+
+ bool IsWaiting() const;
+
+ void set_waiting(bool v);
+
+ /*
+ * \brief Priority of this message based on it's service type
+ */
+ MessagePriority Priority() const;
+
+ private:
+ /**
+ * \brief Connection Identifier
+ * Obtained from \saCconnection_handler
+ */
+ int32_t connection_key_;
+
+ /**
+ * \brief Message string
+ */
+ uint8_t* data_;
+
+ /**
+ * \brief Size of message
+ */
+ uint32_t data_size_;
+
+ /**
+ * \brief Version of SmartDeviceLink protocol (currently 1,2)
+ * used for tranferring message.
+ */
+ uint32_t protocol_version_;
+
+ /**
+ * \brief Type of service message belongs to
+ */
+ ServiceType service_type_;
+
+ /**
+ * specifies current state of message in queue. if false message is "ready to be processed"
+ * otherwise it is "waiting for response"
+ *
+ */
+ bool waiting_;
+
+ /**
+ * \brief Specifies if this is binary data
+ * (used by ProtocolObserver).
+ */
+ bool fully_binary_;
+
+ /**
+ * \brief Id of connection (for service messages like start/end session)
+ *
+ */
+
+ DISALLOW_COPY_AND_ASSIGN(RawMessage);
+};
+
+typedef utils::SharedPtr<RawMessage> RawMessagePtr;
+} // namespace protocol_handler
+
+#endif // SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_RAW_MESSAGE_H_
diff --git a/SDL_Core/src/components/protocol_handler/include/protocol_handler/rpc_type.h b/SDL_Core/src/components/protocol_handler/include/protocol_handler/rpc_type.h
new file mode 100644
index 000000000..85dcdd1cb
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/include/protocol_handler/rpc_type.h
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_RPC_TYPE_H_
+#define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_RPC_TYPE_H_
+
+#include <stdint.h>
+#include <ostream>
+
+namespace protocol_handler {
+
+// AppLink protocol 4.1.3 RpcType field
+enum RpcType {
+ kRpcTypeRequest = 0x0,
+ kRpcTypeResponse = 0x1,
+ kRpcTypeNotification = 0x2,
+ kRpcTypeReserved
+};
+
+// Validate and map byte value to RPC type
+RpcType RpcTypeFromByte(uint8_t byte);
+// Check and convert RpcType to byte value ready to be transmitted
+uint8_t RpcTypeToByte(RpcType type);
+
+const char* RpcTypeToString(RpcType type);
+
+std::ostream& operator<<(std::ostream& os, RpcType rpc_type);
+
+} // namespace protocol_handler
+
+
+#endif // SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_RPC_TYPE_H_
diff --git a/SDL_Core/src/components/protocol_handler/include/protocol_handler/service_type.h b/SDL_Core/src/components/protocol_handler/include/protocol_handler/service_type.h
new file mode 100644
index 000000000..32a29836b
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/include/protocol_handler/service_type.h
@@ -0,0 +1,32 @@
+#ifndef SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_SERVICE_TYPE_H
+#define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_SERVICE_TYPE_H
+
+#include <stdint.h>
+
+#include "protocol_handler/protocol_packet.h"
+
+namespace protocol_handler {
+
+/**
+ * \brief Enum describing possible types of sessions: RPC for API messages,
+ Navi for video streaming, bulk for PutFile.
+ */
+enum ServiceType {
+ kZero = SERVICE_TYPE_ZERO,
+ kRpc = SERVICE_TYPE_RPC,
+ kAudio = SERVICE_TYPE_AUDIO,
+ kMobileNav = SERVICE_TYPE_NAVI,
+ kBulk = SERVICE_TYPE_BULK,
+ kInvalidServiceType
+};
+
+/*
+ * Service type conversion functions that are used to read and output
+ * Service types to binary stream
+ */
+ServiceType ServiceTypeFromByte(uint8_t type);
+uint8_t ServiceTypeToByte(ServiceType type);
+
+} // namespace protocol_handler
+
+#endif // SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_SERVICE_TYPE_H
diff --git a/SDL_Core/src/components/protocol_handler/include/protocol_handler/session_observer.h b/SDL_Core/src/components/protocol_handler/include/protocol_handler/session_observer.h
new file mode 100644
index 000000000..9151b9dcc
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/include/protocol_handler/session_observer.h
@@ -0,0 +1,145 @@
+/**
+ * \file ISessionObserver.h
+ * \brief ISessionObserver class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_SESSION_OBSERVER_H_
+#define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_SESSION_OBSERVER_H_
+
+#include <list>
+#include <string>
+#include "transport_manager/transport_manager.h"
+#include "connection_handler/connection_handler.h"
+
+/**
+ *\namespace NsProtocolHandler
+ *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality.
+ */
+namespace protocol_handler {
+/**
+ * \class SessionObserver
+ * \brief Interface for making a bridge between ProtocolHandler and
+ * ConnectionHandler components.
+ */
+class SessionObserver {
+ public:
+ /**
+ * \brief Callback function used by ProtocolHandler
+ * when Mobile Application initiates start of new session.
+ * \param connection_handle Connection identifier whithin which session
+ * has to be started.
+ * \param sessionId Identifier of the session to be ended
+ * \return int32_t Id (number) of new session if successful otherwise -1.
+ */
+ virtual int32_t OnSessionStartedCallback(
+ const transport_manager::ConnectionUID& connection_handle,
+ const uint8_t& sessionId,
+ const ServiceType& service_type) = 0;
+
+ /**
+ * \brief Callback function used by ProtocolHandler
+ * when Mobile Application initiates session ending.
+ * \param connection_handle Connection identifier whithin which session exists
+ * \param sessionId Identifier of the session to be ended
+ * \param hashCode Hash used only in second version of SmartDeviceLink protocol.
+ * If not equal to hash assigned to session on start then operation fails.
+ * \return uint32_t 0 if operation fails session key otherwise
+ */
+ virtual uint32_t OnSessionEndedCallback(
+ const transport_manager::ConnectionUID& connection_handle,
+ const uint8_t& sessionId,
+ const uint32_t& hashCode,
+ const ServiceType& service_type) = 0;
+
+ /**
+ * \brief Creates unique identifier of session (can be used as hash)
+ * from given connection identifier
+ * whithin which session exists and session number.
+ * \param connection_handle Connection identifier whithin which session exists
+ * \param sessionId Identifier of the session
+ * \return uint32_t Unique key for session
+ */
+ virtual uint32_t KeyFromPair(
+ transport_manager::ConnectionUID connection_handle,
+ uint8_t sessionId) = 0;
+
+ /**
+ * \brief Returns connection identifier and session number from given
+ * session key
+ * \param key Unique key used by other components as session identifier
+ * \param connection_handle Returned: Connection identifier whithin which
+ * session exists
+ * \param sessionId Returned: Number of session
+ */
+ virtual void PairFromKey(
+ uint32_t key,
+ transport_manager::ConnectionUID* connection_handle,
+ uint8_t* sessionId) = 0;
+
+ /**
+ * \brief information about given Connection Key.
+ * \param key Unique key used by other components as session identifier
+ * \param app_id Returned: ApplicationID
+ * \param sessions_list Returned: List of session keys
+ * \param device_id Returned: DeviceID
+ * \return int32_t -1 in case of error or 0 in case of success
+ */
+ virtual int32_t GetDataOnSessionKey(uint32_t key,
+ uint32_t* app_id,
+ std::list<int32_t>* sessions_list,
+ uint32_t* device_id) = 0;
+
+ /**
+ * \brief information about given Connection Key.
+ * \param key Unique key used by other components as session identifier
+ * \param app_id Returned: ApplicationID
+ * \param sessions_list Returned: List of session keys
+ * \param device_id Returned: DeviceID
+ * \return int32_t -1 in case of error or 0 in case of success
+ */
+ virtual int32_t GetDataOnDeviceID(
+ uint32_t device_handle,
+ std::string* device_name,
+ std::list<uint32_t>* applications_list,
+ std::string* mac_address) = 0;
+
+ protected:
+ /**
+ * \brief Destructor
+ */
+ virtual ~SessionObserver() {
+ }
+};
+} // namespace protocol_handler
+
+#endif // SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_SESSION_OBSERVER_H_
diff --git a/SDL_Core/src/components/protocol_handler/src/applink_protocol.cc b/SDL_Core/src/components/protocol_handler/src/applink_protocol.cc
new file mode 100644
index 000000000..ed22420a2
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/src/applink_protocol.cc
@@ -0,0 +1 @@
+#include "protocol_handler/applink_protocol.h"
diff --git a/SDL_Core/src/components/protocol_handler/src/message_priority.cc b/SDL_Core/src/components/protocol_handler/src/message_priority.cc
new file mode 100644
index 000000000..7a9c30d68
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/src/message_priority.cc
@@ -0,0 +1,26 @@
+#include "protocol_handler/service_type.h"
+#include "protocol_handler/message_priority.h"
+
+#include "utils/logger.h"
+#include "utils/macro.h"
+
+namespace {
+log4cxx::LoggerPtr g_logger = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("ConnectionHandler"));
+}
+
+namespace protocol_handler {
+
+// static
+const MessagePriority MessagePriority::kDefault = MessagePriority(0);
+
+// static
+MessagePriority MessagePriority::FromServiceType(ServiceType service_type) {
+ size_t message_priority_value = size_t(service_type);
+ DCHECK(message_priority_value <= 0xFF);
+ // According to Applink Protocol Specification v5 service with numerically
+ // lower service type identifiers have higher priority
+ return MessagePriority(0xFF - service_type);
+}
+
+} // namespace protocol_handler
diff --git a/SDL_Core/src/components/protocol_handler/src/protocol_handler_impl.cc b/SDL_Core/src/components/protocol_handler/src/protocol_handler_impl.cc
new file mode 100644
index 000000000..3eb4b6861
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/src/protocol_handler_impl.cc
@@ -0,0 +1,781 @@
+/**
+ * \file ProtocolHandler.cpp
+ * \brief ProtocolHandler class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "protocol_handler/protocol_handler_impl.h"
+
+#include <memory.h>
+
+#include "connection_handler/connection_handler_impl.h"
+#include "config_profile/profile.h"
+
+namespace protocol_handler {
+
+log4cxx::LoggerPtr ProtocolHandlerImpl::logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("ProtocolHandler"));
+
+
+/**
+ * Function return packet data as std::string.
+ * If packet data is not printable return error message
+ */
+std::string ConvertPacketDataToString(const uint8_t *data,
+ const std::size_t data_size);
+
+const size_t kStackSize = 32768;
+
+ProtocolHandlerImpl::ProtocolHandlerImpl(
+ transport_manager::TransportManager* transport_manager_param)
+ : protocol_observers_(),
+ session_observer_(0),
+ transport_manager_(transport_manager_param),
+ kPeriodForNaviAck(5),
+ raw_ford_messages_from_mobile_(
+ "MessagesFromMobileAppHandler", this,
+ threads::ThreadOptions(kStackSize)),
+ raw_ford_messages_to_mobile_(
+ "MessagesToMobileAppHandler", this,
+ threads::ThreadOptions(kStackSize)) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+ProtocolHandlerImpl::~ProtocolHandlerImpl() {
+ if (!protocol_observers_.empty()) {
+ LOG4CXX_WARN(logger_, "Not all observers have unsubscribed"
+ " from ProtocolHandlerImpl");
+ }
+}
+
+void ProtocolHandlerImpl::AddProtocolObserver(ProtocolObserver* observer) {
+ if (!observer) {
+ LOG4CXX_ERROR(logger_, "Invalid (NULL) pointer to IProtocolObserver.");
+ return;
+ }
+
+ protocol_observers_.insert(observer);
+}
+
+void ProtocolHandlerImpl::RemoveProtocolObserver(ProtocolObserver* observer) {
+ if (!observer) {
+ LOG4CXX_ERROR(logger_, "Invalid (NULL) pointer to IProtocolObserver.");
+ return;
+ }
+
+ protocol_observers_.erase(observer);
+}
+
+void ProtocolHandlerImpl::set_session_observer(SessionObserver* observer) {
+ if (!observer) {
+ LOG4CXX_ERROR(logger_, "Invalid (NULL) pointer to ISessionObserver.");
+ return;
+ }
+
+ session_observer_ = observer;
+}
+
+void ProtocolHandlerImpl::SendStartSessionAck(ConnectionID connection_id,
+ uint8_t session_id,
+ uint8_t protocol_version,
+ uint32_t hash_code,
+ uint8_t service_type) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id,
+ PROTOCOL_VERSION_2, COMPRESS_OFF, FRAME_TYPE_CONTROL,
+ service_type, FRAME_DATA_START_SERVICE_ACK, session_id,
+ 0, hash_code));
+
+ raw_ford_messages_to_mobile_.PostMessage(
+ impl::RawFordMessageToMobile(ptr, false));
+
+ LOG4CXX_INFO(logger_,
+ "sendStartSessionAck() for connection " << connection_id
+ << " for service_type " << static_cast<int32_t>(service_type)
+ << " session_id " << static_cast<int32_t>(session_id));
+
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void ProtocolHandlerImpl::SendStartSessionNAck(ConnectionID connection_id,
+ uint8_t session_id,
+ uint8_t protocol_version,
+ uint8_t service_type) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id,
+ protocol_version, COMPRESS_OFF, FRAME_TYPE_CONTROL,
+ service_type, FRAME_DATA_START_SERVICE_NACK,
+ session_id, 0, 0));
+
+ raw_ford_messages_to_mobile_.PostMessage(
+ impl::RawFordMessageToMobile(ptr, false));
+
+ LOG4CXX_INFO(logger_,
+ "sendStartSessionNAck() for connection " << connection_id
+ << " for service_type " << static_cast<int32_t>(service_type)
+ << " session_id " << static_cast<int32_t>(session_id));
+
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void ProtocolHandlerImpl::SendEndSessionNAck(ConnectionID connection_id,
+ uint32_t session_id,
+ uint8_t protocol_version,
+ uint8_t service_type) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id,
+ protocol_version, COMPRESS_OFF, FRAME_TYPE_CONTROL,
+ service_type, FRAME_DATA_END_SERVICE_NACK,
+ session_id, 0, 0));
+
+ raw_ford_messages_to_mobile_.PostMessage(
+ impl::RawFordMessageToMobile(ptr, false));
+
+ LOG4CXX_INFO(logger_, "SendEndSessionNAck() for connection " << connection_id
+ << " for service_type " << static_cast<int32_t>(service_type)
+ << " session_id " << static_cast<int32_t>(session_id));
+
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void ProtocolHandlerImpl::SendEndSessionAck(ConnectionID connection_id,
+ uint8_t session_id,
+ uint8_t protocol_version,
+ uint32_t hash_code,
+ uint8_t service_type) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id,
+ protocol_version, COMPRESS_OFF, FRAME_TYPE_CONTROL,
+ service_type, FRAME_DATA_END_SERVICE_ACK, session_id, 0,
+ hash_code));
+
+ raw_ford_messages_to_mobile_.PostMessage(
+ impl::RawFordMessageToMobile(ptr, false));
+
+ LOG4CXX_INFO(logger_,
+ "SendEndSessionAck() for connection " << connection_id
+ << " for service_type " << static_cast<int32_t>(service_type)
+ << " session_id " << static_cast<int32_t>(session_id));
+
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+RESULT_CODE ProtocolHandlerImpl::SendHeartBeatAck(ConnectionID connection_id,
+ uint8_t session_id,
+ uint32_t message_id) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id,
+ PROTOCOL_VERSION_2, COMPRESS_OFF, FRAME_TYPE_CONTROL,
+ SERVICE_TYPE_ZERO, FRAME_DATA_HEART_BEAT_ACK, session_id,
+ 0, message_id));
+
+ raw_ford_messages_to_mobile_.PostMessage(
+ impl::RawFordMessageToMobile(ptr, false));
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_OK;
+}
+
+void ProtocolHandlerImpl::SendMessageToMobileApp(const RawMessagePtr& message,
+ bool final_message) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ if (!message) {
+ LOG4CXX_ERROR(logger_,
+ "Invalid message for sending to mobile app is received.");
+ LOG4CXX_TRACE_EXIT(logger_);
+ return;
+ }
+
+ uint32_t maxDataSize = 0;
+ if (PROTOCOL_VERSION_1 == message->protocol_version()) {
+ maxDataSize = MAXIMUM_FRAME_DATA_SIZE - PROTOCOL_HEADER_V1_SIZE;
+ } else if (PROTOCOL_VERSION_2 == message->protocol_version()) {
+ maxDataSize = MAXIMUM_FRAME_DATA_SIZE - PROTOCOL_HEADER_V2_SIZE;
+ }
+
+ if (!session_observer_) {
+ LOG4CXX_ERROR(
+ logger_,
+ "Cannot handle message to mobile app:" <<
+ " ISessionObserver doesn't exist.");
+ return;
+ }
+ uint32_t connection_handle = 0;
+ uint8_t sessionID = 0;
+ session_observer_->PairFromKey(message->connection_key(), &connection_handle,
+ &sessionID);
+
+ if (message->data_size() <= maxDataSize) {
+ RESULT_CODE result = SendSingleFrameMessage(connection_handle, sessionID,
+ message->protocol_version(),
+ SERVICE_TYPE_RPC,
+ message->data_size(),
+ message->data(), false);
+ if (result != RESULT_OK) {
+ LOG4CXX_ERROR(logger_,
+ "ProtocolHandler failed to send single frame message.");
+ }
+ } else {
+ LOG4CXX_INFO_EXT(
+ logger_,
+ "Message will be sent in multiple frames; max size is " << maxDataSize);
+
+ RESULT_CODE result = SendMultiFrameMessage(connection_handle, sessionID,
+ message->protocol_version(),
+ SERVICE_TYPE_RPC,
+ message->data_size(),
+ message->data(), false,
+ maxDataSize);
+ if (result != RESULT_OK) {
+ LOG4CXX_ERROR(logger_,
+ "ProtocolHandler failed to send multiframe messages.");
+ }
+ }
+
+ if (final_message)
+ transport_manager_->Disconnect(connection_handle);
+
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void ProtocolHandlerImpl::OnTMMessageReceived(const RawMessagePtr message) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ connection_handler::ConnectionHandlerImpl* connection_handler =
+ connection_handler::ConnectionHandlerImpl::instance();
+ // Connection handler should be accessed from TM thread only
+ connection_handler->KeepConnectionAlive(message->connection_key());
+
+ if (message.valid()) {
+ LOG4CXX_INFO_EXT(
+ logger_,
+ "Received from TM " << message->data() <<
+ " with connection id " << message->connection_key()
+ << " msg data_size " << message->data_size());
+
+ ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(
+ message->connection_key(), message->data(), message->data_size()));
+
+ raw_ford_messages_from_mobile_.PostMessage(
+ impl::RawFordMessageFromMobile(ptr));
+ } else {
+ LOG4CXX_ERROR(
+ logger_,
+ "Invalid incoming message received in"
+ << " ProtocolHandler from Transport Manager.");
+ }
+
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void ProtocolHandlerImpl::OnTMMessageReceiveFailed(
+ const transport_manager::DataReceiveError& error) {
+ // TODO(PV): implement
+ LOG4CXX_ERROR(logger_, "Received error on attemping to recieve message.");
+}
+
+void ProtocolHandlerImpl::NotifySubscribers(const RawMessagePtr& message) {
+ for (ProtocolObservers::iterator it = protocol_observers_.begin();
+ protocol_observers_.end() != it; ++it) {
+ (*it)->OnMessageReceived(message);
+ }
+}
+
+void ProtocolHandlerImpl::OnTMMessageSend(const RawMessagePtr message) {
+ LOG4CXX_INFO(logger_, "Sending message finished successfully.");
+
+ for (ProtocolObservers::iterator it = protocol_observers_.begin();
+ protocol_observers_.end() != it; ++it) {
+ (*it)->OnMobileMessageSent(message);
+ }
+}
+
+void ProtocolHandlerImpl::OnTMMessageSendFailed(
+ const transport_manager::DataSendError& error,
+ const RawMessagePtr& message) {
+ // TODO(PV): implement
+ LOG4CXX_ERROR(logger_, "Sending message " <<
+ message-> data() << " failed.");
+}
+
+RESULT_CODE ProtocolHandlerImpl::SendFrame(ConnectionID connection_id,
+ const ProtocolPacket& packet) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ if (!packet.packet()) {
+ LOG4CXX_ERROR(logger_, "Failed to create packet.");
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_FAIL;
+ }
+
+ LOG4CXX_INFO_EXT(
+ logger_,
+ "Packet to be sent: " << packet.packet() <<
+ " of size: " << packet.packet_size());
+
+ if (!session_observer_) {
+ LOG4CXX_WARN(logger_, "No session_observer_ set.");
+ return RESULT_FAIL;
+ }
+
+ RawMessagePtr message_to_send(
+ new RawMessage(connection_id, packet.protocol_version(), packet.packet(),
+ packet.packet_size()));
+
+ LOG4CXX_INFO(logger_,
+ "Message to send with connection id " << connection_id);
+
+ if (transport_manager_) {
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_->SendMessageToDevice(message_to_send)) {
+ LOG4CXX_WARN(logger_, "Can't send message to device");
+ return RESULT_FAIL;
+ };
+ } else {
+ LOG4CXX_WARN(logger_, "No Transport Manager found.");
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_FAIL;
+ }
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_OK;
+}
+
+RESULT_CODE ProtocolHandlerImpl::SendSingleFrameMessage(
+ ConnectionID connection_id, const uint8_t session_id,
+ uint32_t protocol_version, const uint8_t service_type,
+ const uint32_t data_size, const uint8_t* data, const bool compress) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ uint8_t versionF = PROTOCOL_VERSION_1;
+ if (2 == protocol_version) {
+ versionF = PROTOCOL_VERSION_2;
+ }
+
+ ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id,
+ versionF, compress, FRAME_TYPE_SINGLE, service_type, 0,
+ session_id, data_size, message_counters_[session_id]++, data));
+
+ raw_ford_messages_to_mobile_.PostMessage(
+ impl::RawFordMessageToMobile(ptr, false));
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_OK;
+}
+
+RESULT_CODE ProtocolHandlerImpl::SendMultiFrameMessage(
+ ConnectionID connection_id, const uint8_t session_id,
+ uint32_t protocol_version, const uint8_t service_type,
+ const uint32_t data_size, const uint8_t* data, const bool compress,
+ const uint32_t maxdata_size) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ RESULT_CODE retVal = RESULT_OK;
+
+ LOG4CXX_INFO_EXT(
+ logger_, " data size " << data_size << " maxdata_size " << maxdata_size);
+
+ uint8_t versionF = PROTOCOL_VERSION_1;
+ if (2 == protocol_version) {
+ versionF = PROTOCOL_VERSION_2;
+ }
+
+ int32_t numOfFrames = 0;
+ int32_t lastdata_size = 0;
+
+ if (data_size % maxdata_size) {
+ numOfFrames = (data_size / maxdata_size) + 1;
+ lastdata_size = data_size % maxdata_size;
+ } else {
+ numOfFrames = data_size / maxdata_size;
+ lastdata_size = maxdata_size;
+ }
+
+ LOG4CXX_INFO_EXT(
+ logger_,
+ "Data size " << data_size << " of " << numOfFrames <<
+ " frames with last frame " << lastdata_size);
+
+ uint8_t* outDataFirstFrame = new uint8_t[FIRST_FRAME_DATA_SIZE];
+ outDataFirstFrame[0] = data_size >> 24;
+ outDataFirstFrame[1] = data_size >> 16;
+ outDataFirstFrame[2] = data_size >> 8;
+ outDataFirstFrame[3] = data_size;
+
+ outDataFirstFrame[4] = numOfFrames >> 24;
+ outDataFirstFrame[5] = numOfFrames >> 16;
+ outDataFirstFrame[6] = numOfFrames >> 8;
+ outDataFirstFrame[7] = numOfFrames;
+
+ ProtocolFramePtr firstPacket(new protocol_handler::ProtocolPacket(connection_id,
+ versionF, compress, FRAME_TYPE_FIRST, service_type, 0,
+ session_id, FIRST_FRAME_DATA_SIZE, ++message_counters_[session_id],
+ outDataFirstFrame));
+
+ raw_ford_messages_to_mobile_.PostMessage(
+ impl::RawFordMessageToMobile(firstPacket, false));
+ LOG4CXX_INFO_EXT(logger_, "First frame is sent.");
+
+ uint8_t* outDataFrame = new uint8_t[maxdata_size];
+ for (uint32_t i = 0; i < numOfFrames; i++) {
+ if (i != (numOfFrames - 1)) {
+ memcpy(outDataFrame, data + (maxdata_size * i), maxdata_size);
+
+ ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id,
+ versionF, compress, FRAME_TYPE_CONSECUTIVE,
+ service_type, ((i % FRAME_DATA_MAX_VALUE) + 1), session_id,
+ maxdata_size, message_counters_[session_id], outDataFrame));
+
+ raw_ford_messages_to_mobile_.PostMessage(
+ impl::RawFordMessageToMobile(ptr, false));
+
+ } else {
+ memcpy(outDataFrame, data + (maxdata_size * i), lastdata_size);
+
+ ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id,
+ versionF, compress, FRAME_TYPE_CONSECUTIVE,
+ service_type, 0x0, session_id, lastdata_size,
+ message_counters_[session_id], outDataFrame));
+
+ raw_ford_messages_to_mobile_.PostMessage(
+ impl::RawFordMessageToMobile(ptr, false));
+ }
+ }
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return retVal;
+}
+
+RESULT_CODE ProtocolHandlerImpl::HandleMessage(ConnectionID connection_id,
+ const ProtocolFramePtr& packet) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ switch (packet->frame_type()) {
+ case FRAME_TYPE_CONTROL: {
+ LOG4CXX_INFO(logger_, "handleMessage(1) - case FRAME_TYPE_CONTROL");
+ LOG4CXX_TRACE_EXIT(logger_);
+ return HandleControlMessage(connection_id, packet);
+ }
+ case FRAME_TYPE_SINGLE: {
+ LOG4CXX_INFO(
+ logger_,
+ "FRAME_TYPE_SINGLE message of size " << packet->data_size() << "; message "
+ << ConvertPacketDataToString(packet->data(), packet->data_size()));
+
+ if (!session_observer_) {
+ LOG4CXX_ERROR(
+ logger_,
+ "Cannot handle message from Transport"
+ << " Manager: ISessionObserver doesn't exist.");
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_FAIL;
+ }
+
+ int32_t connection_key = session_observer_->KeyFromPair(
+ connection_id, packet->session_id());
+
+ RawMessagePtr raw_message(
+ new RawMessage(connection_key, packet->protocol_version(), packet->data(),
+ packet->data_size(), packet->service_type()));
+
+ NotifySubscribers(raw_message);
+ break;
+ }
+ case FRAME_TYPE_FIRST:
+ case FRAME_TYPE_CONSECUTIVE: {
+ LOG4CXX_INFO(logger_, "handleMessage() - case FRAME_TYPE_CONSECUTIVE");
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return HandleMultiFrameMessage(connection_id, packet);
+ }
+ default: {
+ LOG4CXX_WARN(logger_, "handleMessage() - case default!!!");
+ return RESULT_FAIL;
+ }
+ }
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_OK;
+}
+
+RESULT_CODE ProtocolHandlerImpl::HandleMultiFrameMessage(
+ ConnectionID connection_id, const ProtocolFramePtr& packet) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ if (!session_observer_) {
+ LOG4CXX_ERROR(logger_, "No ISessionObserver set.");
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_FAIL;
+ }
+
+ int32_t key = session_observer_->KeyFromPair(connection_id,
+ packet->session_id());
+ LOG4CXX_INFO_EXT(
+ logger_,
+ "Packet " << packet << "; session id " << static_cast<int32_t>(key));
+
+ if (packet->frame_type() == FRAME_TYPE_FIRST) {
+ LOG4CXX_INFO(logger_, "handleMultiFrameMessage() - FRAME_TYPE_FIRST "
+ << packet->data_size());
+ incomplete_multi_frame_messages_[key] = packet;
+ } else {
+ LOG4CXX_INFO(logger_, "handleMultiFrameMessage() - Consecutive frame");
+
+ std::map<int32_t, ProtocolFramePtr>::iterator it =
+ incomplete_multi_frame_messages_.find(key);
+
+ if (it == incomplete_multi_frame_messages_.end()) {
+ LOG4CXX_ERROR(
+ logger_, "Frame of multiframe message for non-existing session id");
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_FAIL;
+ }
+
+ if (it->second->appendData(packet->data(), packet->data_size())
+ != RESULT_OK) {
+ LOG4CXX_ERROR(logger_,
+ "Failed to append frame for multiframe message.");
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_FAIL;
+ }
+
+ if (packet->frame_data() == FRAME_DATA_LAST_FRAME) {
+
+ LOG4CXX_INFO(
+ logger_,
+ "Last frame of multiframe message size " << packet->data_size()
+ << "; connection key " << key);
+
+ if (protocol_observers_.empty()) {
+ LOG4CXX_ERROR(
+ logger_,
+ "Cannot handle multiframe message: no IProtocolObserver is set.");
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_FAIL;
+ }
+
+ ProtocolPacket* completePacket = it->second.get();
+ RawMessage* rawMessage = new RawMessage(
+ key, completePacket->protocol_version(), completePacket->data(),
+ completePacket->total_data_bytes(), completePacket->service_type());
+
+ NotifySubscribers(rawMessage);
+
+ incomplete_multi_frame_messages_.erase(it);
+ }
+ }
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_OK;
+}
+
+RESULT_CODE ProtocolHandlerImpl::HandleControlMessage(
+ ConnectionID connection_id, const ProtocolFramePtr& packet) {
+ if (!session_observer_) {
+ LOG4CXX_ERROR(logger_, "ISessionObserver is not set.");
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return RESULT_FAIL;
+ }
+
+ switch (packet->frame_data()) {
+ case FRAME_DATA_START_SERVICE:
+ return HandleControlMessageStartSession(connection_id, *(packet.get()));
+ case FRAME_DATA_END_SERVICE:
+ return HandleControlMessageEndSession(connection_id, *(packet.get()));
+ case FRAME_DATA_HEART_BEAT: {
+ LOG4CXX_INFO(logger_,
+ "Received heart beat for connection " << connection_id);
+ return HandleControlMessageHeartBeat(connection_id, *(packet.get()));
+ }
+ default:
+ LOG4CXX_WARN(
+ logger_,
+ "Control message of type " << int32_t(packet->frame_data())
+ << " ignored");
+ return RESULT_OK;
+ }
+}
+
+RESULT_CODE ProtocolHandlerImpl::HandleControlMessageEndSession(
+ ConnectionID connection_id, const ProtocolPacket& packet) {
+ LOG4CXX_INFO(logger_,
+ "ProtocolHandlerImpl::HandleControlMessageEndSession()");
+
+ uint8_t current_session_id = packet.session_id();
+
+ uint32_t hash_code = 0;
+ if (packet.protocol_version() == 2) {
+ hash_code = packet.message_id();
+ }
+
+ bool success = true;
+ int32_t session_hash_code = session_observer_->OnSessionEndedCallback(
+ connection_id, current_session_id, hash_code,
+ ServiceTypeFromByte(packet.service_type()));
+
+ if (-1 != session_hash_code) {
+ if (2 == packet.protocol_version()) {
+ if (packet.message_id() != session_hash_code) {
+ success = false;
+ }
+ }
+ } else {
+ success = false;
+ }
+
+ if (success) {
+ SendEndSessionAck(
+ connection_id, current_session_id, packet.protocol_version(),
+ session_observer_->KeyFromPair(connection_id, current_session_id),
+ packet.service_type());
+ message_counters_.erase(current_session_id);
+ } else {
+ LOG4CXX_INFO_EXT(
+ logger_,
+ "Refused to end session " << packet.service_type() << " type.");
+ SendEndSessionNAck(connection_id, current_session_id, packet.protocol_version(),
+ packet.service_type());
+ }
+ return RESULT_OK;
+}
+
+RESULT_CODE ProtocolHandlerImpl::HandleControlMessageStartSession(
+ ConnectionID connection_id, const ProtocolPacket& packet) {
+ LOG4CXX_INFO(logger_,
+ "ProtocolHandlerImpl::HandleControlMessageStartSession"
+ << (int) packet.protocol_version() );
+ LOG4CXX_INFO_EXT(logger_,
+ "Version 2 " << (packet.protocol_version() == PROTOCOL_VERSION_2));
+
+ int32_t session_id = session_observer_->OnSessionStartedCallback(
+ connection_id, packet.session_id(),
+ ServiceTypeFromByte(packet.service_type()));
+
+ if (-1 != session_id) {
+ SendStartSessionAck(
+ connection_id, session_id, packet.protocol_version(),
+ session_observer_->KeyFromPair(connection_id, session_id),
+ packet.service_type());
+ } else {
+ LOG4CXX_INFO_EXT(
+ logger_,
+ "Refused to create service " <<
+ static_cast<int32_t>(packet.service_type()) << " type.");
+
+ SendStartSessionNAck(connection_id, packet.session_id(), packet.protocol_version(),
+ packet.service_type());
+ }
+ return RESULT_OK;
+}
+
+RESULT_CODE ProtocolHandlerImpl::HandleControlMessageHeartBeat(
+ ConnectionID connection_id, const ProtocolPacket& packet) {
+ LOG4CXX_INFO(
+ logger_,
+ "Sending heart beat acknowledgment for connection " << connection_id);
+ return SendHeartBeatAck(connection_id, packet.session_id(),
+ packet.message_id());
+}
+
+void ProtocolHandlerImpl::Handle(
+ const impl::RawFordMessageFromMobile& message) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ if (((0 != message->data()) && (0 != message->data_size())) ||
+ FRAME_TYPE_CONTROL == message->frame_type() ||
+ FRAME_TYPE_FIRST == message->frame_type()) {
+
+ LOG4CXX_INFO_EXT(logger_, "Packet: dataSize " << message->data_size());
+ HandleMessage(message->connection_key(), message);
+ } else {
+ LOG4CXX_WARN(logger_,
+ "handleMessagesFromMobileApp() - incorrect or NULL data");
+ }
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void ProtocolHandlerImpl::Handle(const impl::RawFordMessageToMobile& message) {
+ LOG4CXX_INFO_EXT(
+ logger_,
+ "Message to mobile app: connection " << message->connection_key() << ";"
+ " dataSize: " << message->data_size() << " ;"
+ " protocolVersion " << message->protocol_version());
+
+ SendFrame(message->connection_key(), (*message.get()));
+}
+
+void ProtocolHandlerImpl::SendFramesNumber(int32_t connection_key,
+ int32_t number_of_frames) {
+ LOG4CXX_INFO(logger_,
+ "SendFramesNumber MobileNaviAck for session " << connection_key);
+
+ transport_manager::ConnectionUID connection_id = 0;
+ uint8_t session_id = 0;
+ session_observer_->PairFromKey(connection_key, &connection_id, &session_id);
+ ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id,
+ PROTOCOL_VERSION_2, COMPRESS_OFF, FRAME_TYPE_CONTROL,
+ SERVICE_TYPE_NAVI, FRAME_DATA_SERVICE_DATA_ACK,
+ session_id, 0, number_of_frames));
+
+ raw_ford_messages_to_mobile_.PostMessage(
+ impl::RawFordMessageToMobile(ptr, false));
+}
+
+std::string ConvertPacketDataToString(const uint8_t* data,
+ const std::size_t data_size) {
+ if (0 == data_size)
+ return std::string();
+ bool is_printable_array = true;
+ std::locale loc;
+ const char* text = reinterpret_cast<const char*>(data);
+ // Check data for printability
+ for (int i = 0; i < data_size; ++i) {
+ if (!std::isprint(text[i], loc)) {
+ is_printable_array = false;
+ break;
+ }
+ }
+ return is_printable_array ? std::string(text) : std::string("is raw data");
+}
+
+} // namespace protocol_handler
diff --git a/SDL_Core/src/components/protocol_handler/src/protocol_packet.cc b/SDL_Core/src/components/protocol_handler/src/protocol_packet.cc
new file mode 100644
index 000000000..0dfb1e7d2
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/src/protocol_packet.cc
@@ -0,0 +1,304 @@
+/**
+ * \file ProtocolPacket.cpp
+ * \brief ProtocolPacket class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include <stdint.h>
+#include <memory.h>
+#include "protocol_handler/protocol_packet.h"
+#include "utils/macro.h"
+
+namespace protocol_handler {
+
+ProtocolPacket::ProtocolPacket()
+ : packet_(0),
+ total_packet_size_(0),
+ data_offset_(0),
+ packet_id_(0),
+ connection_key_(0) {
+}
+
+ProtocolPacket::ProtocolPacket(uint8_t connection_key,
+ uint8_t version, bool compress,
+ uint8_t frameType,
+ uint8_t serviceType,
+ uint8_t frameData, uint8_t sessionID,
+ uint32_t dataSize, uint32_t messageID,
+ const uint8_t* data,
+ uint32_t packet_id)
+ : packet_(0),
+ total_packet_size_(0),
+ data_offset_(0),
+ packet_id_(packet_id),
+ connection_key_(connection_key) {
+ RESULT_CODE result = serializePacket(version, compress, frameType, serviceType, frameData,
+ sessionID, dataSize, messageID, data);
+ if (result != RESULT_OK) {
+ NOTREACHED();
+ }
+}
+
+ProtocolPacket::ProtocolPacket(uint8_t connection_key, uint8_t* data_param,
+ uint32_t data_size)
+ : packet_(0),
+ total_packet_size_(0),
+ data_offset_(0),
+ packet_id_(0),
+ connection_key_(connection_key) {
+ RESULT_CODE result = deserializePacket(data_param, data_size);
+ if (result != RESULT_OK) {
+ NOTREACHED();
+ }
+}
+
+ProtocolPacket::~ProtocolPacket() {
+ packet_ = 0;
+ total_packet_size_ = 0;
+ packet_id_ = 0;
+ if (packet_data_.data) {
+ delete packet_data_.data;
+ packet_data_.data = 0;
+ }
+}
+
+// Serialization
+RESULT_CODE ProtocolPacket::serializePacket(uint8_t version,
+ bool compress,
+ uint8_t frameType,
+ uint8_t serviceType,
+ uint8_t frameData,
+ uint8_t sessionID,
+ uint32_t dataSize,
+ uint32_t messageID,
+ const uint8_t* data) {
+
+ if (packet_) {
+ delete[] packet_;
+ packet_ = 0;
+ total_packet_size_ = 0;
+ }
+
+ uint8_t offset = 0;
+ uint8_t compressF = 0x0;
+ packet_ = new uint8_t[MAXIMUM_FRAME_DATA_SIZE];
+ if (compress) {
+ compressF = 0x1;
+ }
+ uint8_t firstByte = ((version << 4) & 0xF0) | ((compressF << 3) & 0x08)
+ | (frameType & 0x07);
+
+ packet_[offset++] = firstByte;
+ packet_[offset++] = serviceType;
+ packet_[offset++] = frameData;
+ packet_[offset++] = sessionID;
+
+ packet_[offset++] = dataSize >> 24;
+ packet_[offset++] = dataSize >> 16;
+ packet_[offset++] = dataSize >> 8;
+ packet_[offset++] = dataSize;
+
+ if (version == PROTOCOL_VERSION_2) {
+ packet_[offset++] = messageID >> 24;
+ packet_[offset++] = messageID >> 16;
+ packet_[offset++] = messageID >> 8;
+ packet_[offset++] = messageID;
+ }
+
+ total_packet_size_ = offset;
+
+ if (data) {
+ if ((offset + dataSize) <= MAXIMUM_FRAME_DATA_SIZE) {
+ memcpy(packet_ + offset, data, dataSize);
+ total_packet_size_ += dataSize;
+ } else {
+ delete[] packet_;
+ packet_ = 0;
+ total_packet_size_ = 0;
+ return RESULT_FAIL;
+ }
+ }
+
+ return RESULT_OK;
+}
+
+uint8_t * ProtocolPacket::packet() const {
+ return packet_;
+}
+
+uint32_t ProtocolPacket::packet_size() const {
+ return total_packet_size_;
+}
+
+uint32_t ProtocolPacket::packet_id() const {
+ return packet_id_;
+}
+
+RESULT_CODE ProtocolPacket::appendData(uint8_t* chunkData,
+ uint32_t chunkDataSize) {
+ if (data_offset_ + chunkDataSize <= packet_data_.totalDataBytes) {
+ if (chunkData) {
+ if (packet_data_.data) {
+ memcpy(packet_data_.data + data_offset_, chunkData, chunkDataSize);
+ data_offset_ += chunkDataSize;
+ return RESULT_OK;
+ }
+ }
+ }
+
+ return RESULT_FAIL;
+}
+
+RESULT_CODE ProtocolPacket::deserializePacket(const uint8_t* message,
+ uint32_t messageSize) {
+ uint8_t offset = 0;
+ uint8_t firstByte = message[offset];
+ offset++;
+
+ packet_header_.version = firstByte >> 4u;
+
+ if (firstByte & 0x08u) {
+ packet_header_.compress = true;
+ } else {
+ packet_header_.compress = false;
+ }
+
+ packet_header_.frameType = firstByte & 0x07u;
+
+ packet_header_.serviceType = message[offset++];
+ packet_header_.frameData = message[offset++];
+ packet_header_.sessionId = message[offset++];
+
+ packet_header_.dataSize = message[offset++] << 24u;
+ packet_header_.dataSize |= message[offset++] << 16u;
+ packet_header_.dataSize |= message[offset++] << 8u;
+ packet_header_.dataSize |= message[offset++];
+
+ if (packet_header_.version == PROTOCOL_VERSION_2) {
+ packet_header_.messageId = message[offset++] << 24u;
+ packet_header_.messageId |= message[offset++] << 16u;
+ packet_header_.messageId |= message[offset++] << 8u;
+ packet_header_.messageId |= message[offset++];
+ } else {
+ packet_header_.messageId = 0u;
+ }
+
+ packet_data_.totalDataBytes = packet_header_.dataSize;
+
+ uint32_t dataPayloadSize = 0;
+ if ((offset < messageSize) &&
+ packet_header_.frameType != FRAME_TYPE_FIRST) {
+ dataPayloadSize = messageSize - offset;
+ }
+
+ uint8_t * data = 0;
+ if (dataPayloadSize) {
+ data = new uint8_t[dataPayloadSize];
+ if (data) {
+ memcpy(data, message + offset, dataPayloadSize);
+ data_offset_ = dataPayloadSize;
+ } else {
+ return RESULT_FAIL;
+ }
+ }
+
+ if (packet_header_.frameType == FRAME_TYPE_FIRST) {
+ data_offset_ = 0;
+ const uint8_t* data = message + offset;
+ uint32_t total_data_bytes = data[0] << 24;
+ total_data_bytes |= data[1] << 16;
+ total_data_bytes |= data[2] << 8;
+ total_data_bytes |= data[3];
+ set_total_data_bytes(total_data_bytes);
+ } else {
+ packet_data_.data = data;
+ }
+
+ return RESULT_OK;
+}
+
+uint8_t ProtocolPacket::protocol_version() const {
+ return packet_header_.version;
+}
+
+bool ProtocolPacket::is_compress() const {
+ return packet_header_.compress;
+}
+
+uint8_t ProtocolPacket::frame_type() const {
+ return packet_header_.frameType;
+}
+
+uint8_t ProtocolPacket::service_type() const {
+ return packet_header_.serviceType;
+}
+
+uint8_t ProtocolPacket::frame_data() const {
+ return packet_header_.frameData;
+}
+
+uint8_t ProtocolPacket::session_id() const {
+ return packet_header_.sessionId;
+}
+
+uint32_t ProtocolPacket::data_size() const {
+ return packet_header_.dataSize;
+}
+
+uint32_t ProtocolPacket::message_id() const {
+ return packet_header_.messageId;
+}
+
+uint8_t* ProtocolPacket::data() const {
+ return packet_data_.data;
+}
+
+void ProtocolPacket::set_total_data_bytes(uint32_t dataBytes) {
+ if (dataBytes) {
+ if (packet_data_.data) {
+ delete[] packet_data_.data;
+ packet_data_.data = 0;
+ }
+ packet_data_.data = new uint8_t[dataBytes];
+ packet_data_.totalDataBytes = dataBytes;
+ }
+}
+
+uint32_t ProtocolPacket::total_data_bytes() const {
+ return packet_data_.totalDataBytes;
+}
+
+uint8_t ProtocolPacket::connection_key() const {
+ return connection_key_;
+}
+
+// End of Deserialization
+} // namespace protocol_handler
diff --git a/SDL_Core/src/components/protocol_handler/src/protocol_payload.cc b/SDL_Core/src/components/protocol_handler/src/protocol_payload.cc
new file mode 100644
index 000000000..52f24f69f
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/src/protocol_payload.cc
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "protocol_handler/protocol_payload.h"
+
+#include <climits>
+
+#include "utils/bitstream.h"
+#include "utils/macro.h"
+
+namespace {
+// Protocol header field sizes
+static const size_t kRpcTypeBits = 4;
+static const size_t kRpcFunctionIdBits = 32 - kRpcTypeBits;
+static const size_t kCorellationIdBits = 32;
+static const size_t kJsonSizeBits = 32;
+static const size_t PayloadHeaderBits =
+ kRpcTypeBits + kRpcFunctionIdBits + kCorellationIdBits + kJsonSizeBits;
+}
+
+namespace protocol_handler {
+
+void Extract(utils::BitStream* bs, ProtocolPayloadHeaderV2* headerv2) {
+ DCHECK(bs && headerv2);
+ if (*bs) {
+ uint8_t rpc_type;
+ utils::Extract(bs, &rpc_type, kRpcTypeBits);
+ headerv2->rpc_type = RpcTypeFromByte(rpc_type);
+ if (headerv2->rpc_type == kRpcTypeReserved) {
+ bs->MarkBad();
+ return;
+ }
+ utils::Extract(bs, &headerv2->rpc_function_id, kRpcFunctionIdBits);
+ utils::Extract(bs, &headerv2->corellation_id); // kCorellationIdBits
+ utils::Extract(bs, &headerv2->json_size); // kJsonSizeBits
+ }
+}
+
+void Extract(utils::BitStream* bs, ProtocolPayloadV2* payload,
+ size_t payload_size) {
+ DCHECK(bs && payload);
+ if (*bs) {
+ Extract(bs, &payload->header);
+ utils::Extract(bs, &payload->json, payload->header.json_size);
+ size_t data_size = payload_size - payload->header.json_size -
+ PayloadHeaderBits / CHAR_BIT;
+ utils::Extract(bs, &payload->data, data_size);
+ }
+}
+
+std::ostream& operator<<(std::ostream& os, const ProtocolPayloadHeaderV2& payload_header) {
+ return os<<"(ProtocolPayloadHeaderV2"
+ <<" rpc_type: "<<payload_header.rpc_type
+ <<", rpc_function_id: "<<payload_header.rpc_function_id
+ <<", corellation_id: "<<payload_header.corellation_id
+ <<", json_size: "<<payload_header.json_size
+ <<")";
+}
+
+std::ostream& operator<<(std::ostream& os, const ProtocolPayloadV2& payload) {
+ return os<<"(ProtocolPayloadV2"
+ <<" header: "<<payload.header
+ <<", json (bytes): "<<payload.json.size()
+ <<", data (bytes): "<<payload.data.size()
+ <<")";
+}
+
+} // namespace protocol_handler
diff --git a/SDL_Core/src/components/protocol_handler/src/raw_message.cc b/SDL_Core/src/components/protocol_handler/src/raw_message.cc
new file mode 100644
index 000000000..fabafac3d
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/src/raw_message.cc
@@ -0,0 +1,100 @@
+/**
+ * \file SmartDeviceLinkRawMessage.cpp
+ * \brief SmartDeviceLinkRawMessage class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "protocol_handler/raw_message.h"
+
+#include "protocol_handler/message_priority.h"
+
+namespace protocol_handler {
+
+RawMessage::RawMessage(int32_t connectionKey, uint32_t protocolVersion,
+ uint8_t* data_param, uint32_t data_sz,
+ uint8_t type)
+ : connection_key_(connectionKey),
+ protocol_version_(protocolVersion),
+ service_type_(ServiceTypeFromByte(type)),
+ waiting_(false),
+ fully_binary_(false),
+ data_size_(data_sz) {
+ if (data_sz > 0) {
+ data_ = new uint8_t[data_sz];
+ for (uint32_t i = 0; i < data_sz; ++i) {
+ data_[i] = data_param[i];
+ }
+ } else {
+ data_ = 0;
+ }
+}
+
+RawMessage::~RawMessage() {
+ if (data_) {
+ delete[] data_;
+ data_ = 0;
+ }
+}
+
+int32_t RawMessage::connection_key() const {
+ return connection_key_;
+}
+
+void RawMessage::set_connection_key(uint32_t key) {
+ connection_key_ = key;
+}
+
+uint8_t* RawMessage::data() const {
+ return data_;
+}
+
+uint32_t RawMessage::data_size() const {
+ return data_size_;
+}
+
+uint32_t RawMessage::protocol_version() const {
+ return protocol_version_;
+}
+
+bool RawMessage::IsWaiting() const {
+ return waiting_;
+}
+
+void RawMessage::set_waiting(bool v) {
+ waiting_ = v;
+}
+
+MessagePriority RawMessage::Priority() const {
+ return MessagePriority::FromServiceType(this->service_type());
+}
+
+} // namespace protocol_handler
diff --git a/SDL_Core/src/components/protocol_handler/src/rpc_type.cc b/SDL_Core/src/components/protocol_handler/src/rpc_type.cc
new file mode 100644
index 000000000..10aab374b
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/src/rpc_type.cc
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "protocol_handler/rpc_type.h"
+
+#include "utils/logger.h"
+#include "utils/macro.h"
+
+namespace protocol_handler {
+
+namespace {
+log4cxx::LoggerPtr g_logger = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("ProtocolHandler"));
+
+bool IsSupported(RpcType rpc_type) {
+ switch (rpc_type) {
+ case kRpcTypeRequest:
+ case kRpcTypeResponse:
+ case kRpcTypeNotification:
+ return true;
+ default:
+ return false;
+ }
+}
+} // namespace
+
+RpcType RpcTypeFromByte(uint8_t byte) {
+ RpcType type = RpcType(byte);
+ bool supported_type = IsSupported(type);
+ if (!supported_type) {
+ LOG4CXX_INFO(g_logger, "Invalid service type: "<<int32_t(byte))
+ }
+ return supported_type ? type : kRpcTypeReserved;
+}
+
+uint8_t RpcTypeToByte(RpcType type) {
+ DCHECK(IsSupported(type));
+ return uint8_t(type);
+}
+
+const char* RpcTypeToString(RpcType type) {
+ switch (type) {
+ case kRpcTypeRequest:
+ return "kRpcTypeRequest";
+ case kRpcTypeResponse:
+ return "kRpcTypeResponse";
+ case kRpcTypeNotification:
+ return "kRpcTypeNotification";
+ default:
+ return "kRpcTypeReserved";
+ }
+}
+
+std::ostream& operator<<(std::ostream& os, RpcType rpc_type) {
+ return os<<RpcTypeToString(rpc_type);
+}
+
+} // namespace protocol_handler
diff --git a/SDL_Core/src/components/protocol_handler/src/service_type.cc b/SDL_Core/src/components/protocol_handler/src/service_type.cc
new file mode 100644
index 000000000..6bc4896b2
--- /dev/null
+++ b/SDL_Core/src/components/protocol_handler/src/service_type.cc
@@ -0,0 +1,43 @@
+#include "protocol_handler/service_type.h"
+#include "protocol_handler/protocol_packet.h"
+
+#include "utils/logger.h"
+#include "utils/macro.h"
+
+
+namespace protocol_handler {
+
+namespace {
+log4cxx::LoggerPtr g_logger = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("ConnectionHandler"));
+
+// Check if provided service value is one of the specified
+bool IsValid(ServiceType service_type) {
+ switch (service_type) {
+ case kZero:
+ case kRpc:
+ case kAudio:
+ case kMobileNav:
+ case kBulk:
+ return true;
+ default:
+ return false;
+ }
+}
+} // namespace
+
+ServiceType ServiceTypeFromByte(uint8_t byte) {
+ ServiceType type = ServiceType(byte);
+ bool valid_type = IsValid(type);
+ if (!valid_type) {
+ LOG4CXX_INFO(g_logger, "Invalid service type: "<<int32_t(byte))
+ }
+ return valid_type ? type : kInvalidServiceType;
+}
+
+uint8_t ServiceTypeToByte(ServiceType type) {
+ DCHECK(IsValid(type));
+ return uint8_t(type);
+}
+
+} // namespace protocol_handler
diff --git a/SDL_Core/src/components/qt_hmi/CMakeLists.txt b/SDL_Core/src/components/qt_hmi/CMakeLists.txt
new file mode 100644
index 000000000..e77a1e23b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+
+add_subdirectory(./qml_plugins)
+
+if (CMAKE_SYSTEM_NAME STREQUAL "QNX")
+ add_subdirectory(./qml_model_qt4)
+else ()
+ add_subdirectory(./qml_model_qt5)
+endif ()
diff --git a/SDL_Core/src/components/qt_hmi/Readme.txt b/SDL_Core/src/components/qt_hmi/Readme.txt
new file mode 100644
index 000000000..55e85db8e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/Readme.txt
@@ -0,0 +1,7 @@
+How to view QML HMI.
+
+1) Run setup_env.sh from root folder of SDL project (this will install right version of Qt and CMake)
+2) Run CMake with option HMI2=ON “cmake -DHMI2=ON <root_SDL_folder>” (this will build core+dbus adapter and QML HMI+ dbus adapter)
+3) Run “<QT510_INSTALL_PATH>/qmlscene <root_SDL_folder>/src/components/qt_hmi/qml_model_qt5/MainWindow.qml”
+4) Run SDL
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/EVALUATION USE LICENSE AGREEMENT.doc b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/EVALUATION USE LICENSE AGREEMENT.doc
new file mode 100644
index 000000000..e041888df
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/EVALUATION USE LICENSE AGREEMENT.doc
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Bold.ttf b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Bold.ttf
new file mode 100644
index 000000000..8b82f0ae0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Bold.ttf
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Md.ttf b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Md.ttf
new file mode 100644
index 000000000..3595f7013
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Md.ttf
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Roman.ttf b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Roman.ttf
new file mode 100644
index 000000000..7be067d90
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeue FinalDeliveryCorrect_13112011/HelveticaNeueLTStd-Roman.ttf
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-Lt.ttf b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-Lt.ttf
new file mode 100644
index 000000000..4ae24370a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-Lt.ttf
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-LtCn.ttf b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-LtCn.ttf
new file mode 100644
index 000000000..2186efad6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-LtCn.ttf
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-ThCn.ttf b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-ThCn.ttf
new file mode 100644
index 000000000..c0232d069
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTCom-ThCn.ttf
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Bold.ttf b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Bold.ttf
new file mode 100644
index 000000000..8b82f0ae0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Bold.ttf
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Md.ttf b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Md.ttf
new file mode 100644
index 000000000..3595f7013
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Md.ttf
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Roman.ttf b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Roman.ttf
new file mode 100644
index 000000000..7be067d90
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Fonts/HelveticaNeueLTStd-Roman.ttf
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/ImageHardkey.qml b/SDL_Core/src/components/qt_hmi/References/Look/ImageHardkey.qml
new file mode 100644
index 000000000..e39bb4160
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/ImageHardkey.qml
@@ -0,0 +1,52 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+FHardwareKey {
+ width: 50
+ height: 50
+
+ property alias image : theImage.source
+
+ Rectangle {
+ anchors.fill: parent
+ border.color: "black"
+ border.width: 1
+ radius: 10
+ smooth: true
+
+ gradient: Gradient {
+ GradientStop {
+ id: s1
+ color: "#FF646464"
+ position: 0.0
+ }
+ GradientStop {
+ id: s2
+ color: "#FF484848"
+ position: 0.8
+ }
+ GradientStop {
+ id: s3
+ color: "#FF323232"
+ position: 1.0
+ }
+ }
+ }
+
+ FWdgtImage {
+ id: theImage
+ //anchors.fill: parent
+ anchors.centerIn: parent
+ //fillMode: Image.PreserveAspectFit
+ smooth: true
+ }
+
+
+ FViewUseCaseSimple {
+ condition: pressed === true
+ PropertyChanges { target: s1; position: 1.0 }
+ PropertyChanges { target: s2; position: 0.2}
+ PropertyChanges { target: s3; position: 0.0 }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/AlphaSortLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/AlphaSortLayout.qml
new file mode 100644
index 000000000..3ee2761be
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/AlphaSortLayout.qml
@@ -0,0 +1,378 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: alphaLayout
+ width: 800
+ height: 480
+
+
+ property alias a: aBtn.touchBtn
+ property alias b: bBtn.touchBtn
+ property alias c: cBtn.touchBtn
+ property alias d: dBtn.touchBtn
+ property alias e: eBtn.touchBtn
+ property alias f: fBtn.touchBtn
+ property alias g: gBtn.touchBtn
+ property alias h: hBtn.touchBtn
+ property alias i: iBtn.touchBtn
+ property alias j: jBtn.touchBtn
+ property alias k: kBtn.touchBtn
+ property alias l: lBtn.touchBtn
+ property alias m: mBtn.touchBtn
+ property alias n: nBtn.touchBtn
+ property alias o: oBtn.touchBtn
+ property alias p: pBtn.touchBtn
+ property alias q: qBtn.touchBtn
+ property alias r: rBtn.touchBtn
+ property alias s: sBtn.touchBtn
+ property alias t: tBtn.touchBtn
+ property alias u: uBtn.touchBtn
+ property alias v: vBtn.touchBtn
+ property alias w: wBtn.touchBtn
+ property alias xB: xBtn.touchBtn
+ property alias yB: yBtn.touchBtn
+ property alias zB: zBtn.touchBtn
+ property alias num: numBtn.touchBtn
+ property alias close: closeTouch
+
+ property string phonEntry: ""
+
+// BaseText{
+// id: phoneEntry
+// x:25
+// y:115
+// text: phonEntry
+// theFont: "../Fonts/HelveticaNeueLTStd-Roman.ttf"
+// pxSize: 45
+// horAlignment: Text.AlignLeft
+// vertAlignment: Text.AlignTop
+// }
+
+ TouchButtonClimatePCA{
+ id: aBtn
+ x:48
+ y:131
+ text: "A"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: jBtn
+ x:48
+ y:212
+ text: "J"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: sBtn
+ x:48
+ y:293
+ text: "S"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: bBtn
+ x:129
+ y:131
+ text: "B"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: kBtn
+ x:129
+ y:212
+ text: "K"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: tBtn
+ x:129
+ y:293
+ text: "T"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: cBtn
+ x:210
+ y:131
+ text: "C"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: lBtn
+ x:210
+ y:212
+ text: "L"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: uBtn
+ x:210
+ y:293
+ text: "U"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: dBtn
+ x:291
+ y:131
+ text: "D"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: mBtn
+ x:291
+ y:212
+ text: "M"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: vBtn
+ x:291
+ y:293
+ text: "V"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: eBtn
+ x:372
+ y:131
+ text: "E"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: nBtn
+ x:372
+ y:212
+ text: "N"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: wBtn
+ x:372
+ y:293
+ text: "W"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: fBtn
+ x:453
+ y:131
+ text: "F"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: oBtn
+ x:453
+ y:212
+ text: "O"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: xBtn
+ x:453
+ y:293
+ text: "X"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: gBtn
+ x:534
+ y:131
+ text: "G"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: pBtn
+ x:534
+ y:212
+ text: "P"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: yBtn
+ x:534
+ y:293
+ text: "Y"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: hBtn
+ x:615
+ y:131
+ text: "H"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: qBtn
+ x:615
+ y:212
+ text: "Q"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: zBtn
+ x:615
+ y:293
+ text: "Z"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: iBtn
+ x:696
+ y:131
+ text: "I"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: rBtn
+ x:696
+ y:212
+ text: "R"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: numBtn
+ x:696
+ y:293
+ text: "123"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ BaseText{
+ id: closeTxt
+ anchors.horizontalCenter: alphaLayout.horizontalCenter
+ y:430
+ horAlignment: Text.AlignHCenter
+ vertAlignment: Text.AlignTop
+ text: "CLOSE"
+ color: "#1d81d5"
+ pxSize: 22
+ theFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+
+ }
+
+ FWdgtTouchArea{
+ id: closeTouch
+ height: 75
+ width: 750
+ y:430
+ anchors.horizontalCenter: alphaLayout.horizontalCenter
+ }
+
+ FViewUseCase{condition: closeTouch.pressed === true
+ //FActScriptCall { onScript: { FLogger.debug("Test color should change") } }
+ PropertyChanges {
+ target: closeTxt; color: "white"
+ }
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/BlankLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/BlankLayout.qml
new file mode 100644
index 000000000..2a1b2aa5f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/BlankLayout.qml
@@ -0,0 +1,9 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+FLayout {
+ width: 800
+ height: 480
+
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ChromeLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ChromeLayout.qml
new file mode 100644
index 000000000..14daa544b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ChromeLayout.qml
@@ -0,0 +1,69 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: chromelayout
+ width: 800
+ height: 480
+
+ property alias button1: button1
+ property alias button2: button2
+ property alias button3: button3
+
+
+
+ FWdgtTouchArea {
+ id: blockClockTouch
+ anchors.top: chromelayout.top
+ anchors.horizontalCenter: chromelayout.horizontalCenter
+ height: 60
+ width: 160
+ }
+
+ Rectangle{
+ id: clockBackground
+ anchors.fill: blockClockTouch
+ color: "red"
+ }
+
+ BaseText{
+ id: clock
+ anchors.centerIn: blockClockTouch
+ text: "clock"
+ horAlignment: Text.AlignHCenter
+ }
+
+ TouchButton{
+ id: button1
+ anchors.top: blockClockTouch.top
+ anchors.right: blockClockTouch.left
+ anchors.rightMargin: -5
+ height: blockClockTouch.height
+ width: 75
+ text: "Button 1"
+ unpressedColor: "darkRed"
+ }
+
+ TouchButton{
+ id: button2
+ anchors.top: blockClockTouch.top
+ anchors.left: blockClockTouch.right
+ anchors.leftMargin: -5
+ height:blockClockTouch.height
+ width: 75
+ text: "Button 2"
+ unpressedColor:"darkRed"
+ }
+
+ TouchButton{
+ id: button3
+ anchors.bottom: chromelayout.bottom
+ anchors.horizontalCenter: chromelayout.horizontalCenter
+ height:blockClockTouch.height
+ width: 225
+ text: "Button 3"
+ unpressedColor: "red"
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ClimatePCALayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ClimatePCALayout.qml
new file mode 100644
index 000000000..6b6a2761c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ClimatePCALayout.qml
@@ -0,0 +1,111 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: climateLayout
+ width: 800
+ height: 480
+
+ property alias dualBtn: dualBtn.touchBtn
+ property alias drvHeatSeat: drvHeatSeat.touchBtn
+ property alias drvCoolSeat: drvCoolSeat.touchBtn
+ property alias passCoolSeat: passCoolSeat.touchBtn
+ property alias passHeatSeat: passHeatSeat.touchBtn
+ property alias heatWheel: heatWheel.touchBtn
+ property alias heatWinSheild: heatWinSheild.touchBtn
+ property alias defrost: defrost.touchBtn
+ property alias pannel: pannel.touchBtn
+ property alias floor: floor.touchBtn
+
+ property alias dualBtnSt: dualBtn.selected
+ property alias drvHeatSeatSt: drvHeatSeat.selected
+ property alias drvCoolSeatSt: drvCoolSeat.selected
+ property alias passCoolSeatSt: passCoolSeat.selected
+ property alias passHeatSeatSt: passHeatSeat.selected
+ property alias heatWheelSt: heatWheel.selected
+ property alias heatWinSheildSt: heatWinSheild.selected
+ property alias defrostSt: defrost.selected
+ property alias pannelSt: pannel.selected
+ property alias floorSt: floor.selected
+
+
+
+ TouchButtonClimatePCA{
+ id: drvHeatSeat
+ x:105
+ y:178
+ bitmap: "climate/heated seat icon.png"
+ bitmap2: "climate/heated seat iconBlack.png"
+ }
+ TouchButtonClimatePCA{
+ id: drvCoolSeat
+ x:105
+ y:273
+ bitmap: "climate/A_C icon.png"
+ bitmap2: "climate/A_C iconBlack.png"
+ }
+ TouchButtonClimatePCA{
+ id: heatWheel
+ x:200
+ y:178
+ bitmap: "climate/wheel icon.png"
+ bitmap2: "climate/wheel iconBlack.png"
+ }
+ TouchButtonClimatePCA{
+ id: heatWinSheild
+ x:200
+ y:273
+ bitmap: "climate/headed dashBlue.png"
+ bitmap2: "climate/headed dash.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: defrost
+ x:360
+ y:130
+ bitmap: "climate/defrost iconBlue.png"
+ bitmap2: "climate/defrost icon.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: pannel
+ x:360
+ y:226
+ bitmap: "climate/face icon.png"
+ bitmap2: "climate/face iconBlack.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: floor
+ x:360
+ y:322
+ bitmap: "climate/feet icon.png"
+ bitmap2: "climate/feet iconBlack.png"
+ }
+
+
+ TouchButtonClimatePCA{
+ id: dualBtn
+ y:225
+ x:528
+ text: "Dual"
+ }
+
+ TouchButtonClimatePCA{
+ id: passHeatSeat
+ x:615
+ y:178
+ bitmap: "climate/heated seat icon.png"
+ bitmap2: "climate/heated seat iconBlack.png"
+ }
+ TouchButtonClimatePCA{
+ id: passCoolSeat
+ x:615
+ y:273
+ bitmap: "climate/A_C icon.png"
+ bitmap2: "climate/A_C iconBlack.png"
+ }
+
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ControlMirrorLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ControlMirrorLayout.qml
new file mode 100644
index 000000000..0abc7db4b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ControlMirrorLayout.qml
@@ -0,0 +1,57 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: alphaLayout
+ width: 800
+ height: 480
+
+
+ Item {
+ id: _fg
+
+ width: 800; height: 480
+ x:0
+ y:0
+
+ FWdgtTouchArea{
+ id: blockTouch
+ x:0
+ y:0
+ height: 480
+ width: 800
+ }
+
+ Rectangle{
+ anchors.fill: blockTouch
+ color: "black"
+ opacity: 0.8
+ }
+
+ FWdgtImage{
+ id: popupBg
+ anchors.centerIn: blockTouch
+ bitmap: "climate/ring.png"
+ }
+
+ BaseText{
+ id:curTemp
+ anchors.centerIn: popupBg
+ text: dataPool.drvTemp + "\xBA"
+ pxSize: 96
+ }
+
+ BaseText{
+ id:drvPass
+ anchors.horizontalCenter: popupBg.horizontalCenter
+ anchors.bottom: curTemp.top
+ horAlignment: Text.AlignHCenter
+ text: "Driver"
+ pxSize: 28
+ }
+
+ }
+
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/FMLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/FMLayout.qml
new file mode 100644
index 000000000..8057ff2e7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/FMLayout.qml
@@ -0,0 +1,217 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: fmLayout
+ width: 800
+ height: 480
+
+ property alias sourceBtn: sourceBtn
+ property alias browseBtn: browseBtn
+ property alias albumInfoBtn: albumInfoBtn
+ property alias albumInfoImg: stationLogoImg
+ property alias stationTxt: stationTxt
+ property alias trackTxt: trackTxt
+ property alias artistTxt: artistTxt
+ property alias alertBtn: alertBtn
+ property alias preset1Btn: preset1Btn
+ property alias preset2Btn: preset2Btn
+ property alias preset3Btn: preset3Btn
+ property alias preset4Btn: preset4Btn
+ property alias preset5Btn: preset5Btn
+ property alias preset6Btn: preset6Btn
+ property alias replayBtn: replayBtn
+ property alias tuneBtn: tuneBtn
+ property alias presetsBtn: presetsBtn
+ property bool artShown: true
+
+
+ TouchButton{
+ id: sourceBtn
+ anchors.top: fmLayout.top
+ anchors.topMargin: 140
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 10
+ height:25
+ width: 130
+ text: "Source"
+ }
+
+ TouchButton{
+ id: browseBtn
+ anchors.top: fmLayout.top
+ anchors.topMargin: 180
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 10
+ height:25
+ width: 130
+ text: "Browse"
+ }
+
+ TouchButton{
+ id: albumInfoBtn
+ anchors.top: fmLayout.top
+ anchors.topMargin: 95
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 190
+ height:130
+ width: 130
+ text: "Album"
+ vis: false
+
+ }
+
+ FWdgtImage{
+ id: stationLogoImg
+ anchors.top: fmLayout.top
+ anchors.topMargin: 95
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 190
+ height:70
+ width: 130
+ bitmap: ""
+ }
+
+ TouchButton{
+ id: alertBtn
+ anchors.top: albumInfoImg.bottom
+ anchors.topMargin: 20
+ anchors.left: albumInfoImg.left
+ height:25
+ width: 90
+ text: "Alert"
+ }
+
+ BaseText{
+ id: stationTxt
+ anchors.verticalCenter: trackTxt.verticalCenter
+ anchors.verticalCenterOffset: -45
+ anchors.left: trackTxt.left
+ text: "Ch 22 / Pearl Jam Radio"
+ }
+
+ BaseText{
+ id: trackTxt
+ anchors.verticalCenter: albumInfoBtn.verticalCenter
+ anchors.left: albumInfoBtn.right
+ anchors.leftMargin: 15
+ pxSize: 34
+ text: "State of Love ..."
+
+ }
+
+ BaseText{
+ id: artistTxt
+ anchors.verticalCenter: trackTxt.verticalCenter
+ anchors.verticalCenterOffset: 45
+ anchors.left: trackTxt.left
+ text: "Pearl Jam"
+ }
+
+ TouchButton{
+ id: preset1Btn
+ anchors.top: fmLayout.top
+ anchors.topMargin: 280
+ anchors.left: browseBtn.left
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: preset2Btn
+ anchors.top: preset1Btn.bottom
+ anchors.left: preset1Btn.left
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: preset3Btn
+ anchors.top: preset1Btn.top
+ anchors.left: preset1Btn.right
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: preset4Btn
+ anchors.top: preset2Btn.top
+ anchors.left: preset2Btn.right
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: preset5Btn
+ anchors.top: preset3Btn.top
+ anchors.left: preset3Btn.right
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: preset6Btn
+ anchors.top: preset4Btn.top
+ anchors.left: preset4Btn.right
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: replayBtn
+ anchors.verticalCenter: browseBtn.verticalCenter
+ anchors.verticalCenterOffset: 35
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 725
+ height:40
+ width: 55
+ text: "rply"
+ }
+
+ TouchButton{
+ id: tuneBtn
+ anchors.top: preset1Btn.top
+ anchors.right: replayBtn.right
+ height:40
+ width: 120
+ text: "tune"
+ }
+
+ TouchButton{
+ id: presetsBtn
+ anchors.bottom: preset6Btn.bottom
+ anchors.right: replayBtn.right
+ height:60
+ width: 120
+ text: "presets"
+ }
+
+ FViewUseCaseGroup{
+ FViewUseCase{
+ condition: dataPool.hasArt === 0
+ PropertyChanges { target: albumInfoBtn; vis: false;}
+ PropertyChanges { target: albumInfoImg; visible: false;}
+ PropertyChanges { target: trackTxt; anchors.left: albumInfoBtn.left;}
+ PropertyChanges { target: alertBtn; vis: false;}
+ }
+ FViewUseCase{
+ condition: dataPool.hasArt === 1
+ PropertyChanges { target: albumInfoBtn; vis: false;}
+ PropertyChanges { target: albumInfoImg; visible: false;}
+ PropertyChanges { target: trackTxt; anchors.left: albumInfoBtn.left;}
+ PropertyChanges { target: alertBtn; vis: false;}
+ }
+ FViewUseCase{
+ condition: dataPool.hasArt === 2
+ PropertyChanges { target: albumInfoImg; visible: true;}
+ PropertyChanges { target: albumInfoBtn; vis: true;}
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/FMLayoutPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/FMLayoutPCA.qml
new file mode 100644
index 000000000..fd211b3c9
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/FMLayoutPCA.qml
@@ -0,0 +1,152 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: fmLayout
+ width: 800
+ height: 480
+
+ property alias sourceBtn: sourceBtn
+ property alias tuneBtn: tuneBtn
+ property alias hdBtn: hdBtn
+ property alias stationTxt: stationTxt.text
+ property alias freqId: freqId.text
+ property alias listModel: thePresets.listModel
+ property alias artist: artistTxt.text
+ property alias curHD: hdBtn.curHD
+ property alias totHD: hdBtn.totHD
+ property alias curPreset: thePresets.currPreset
+ property alias moving: thePresets.moving
+ property alias direction: thePresets.direction
+ property bool page1: true
+
+
+
+
+
+ FWdgtImage{
+ bitmap: "Radio/Ford-HMI-PCA-audio_fm_sirius.png"
+ visible: false
+ }
+
+ TouchButton_PCA{
+ id: sourceBtn
+ x:25
+ y:80
+ textWidth: 100
+ text: "FM Radio"
+
+ }
+
+ TouchButton_PCA{
+ id: tuneBtn
+ anchors.right: fmLayout.right
+ anchors.rightMargin: 25
+ y:80
+ textWidth: 55
+ text: "Tune"
+
+ }
+
+ BaseText{
+ id: stationTxt
+ x:25
+ y:155
+ pxSize: 45
+ text: "96.3"
+ color: "#1d81d5"
+ theFont: "../Fonts/HelveticaNeueLTCom-Lt.ttf"
+
+ }
+
+ BaseText{
+ id: freqId
+ anchors.left: stationTxt.right
+ anchors.leftMargin: 5
+ anchors.bottom: stationTxt.bottom
+ anchors.bottomMargin: 4
+ text: "FM"
+ color: "#1d81d5"
+ pxSize: 22
+ theFont: "../Fonts/HelveticaNeueLTCom-Lt.ttf"
+
+ }
+
+ BaseText{
+ id: trackTxt
+ x:25
+ y:212
+ text: "So Far Around The Bend"
+ color: "#1d81d5"
+ theFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+ pxSize: 22
+
+
+ }
+
+ BaseText{
+ id: artistTxt
+ x:25
+ y:240
+ text: "The National"
+ color: "#1d81d5"
+ theFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+ pxSize: 22
+ }
+
+ TouchButtonSpecial_PCA{
+ id: hdBtn
+ x:25
+ y:288
+ textWidth: 120
+ bitmap: "Radio/HD Logo.png"
+ bitmap2: "Radio/HD Logo1.png"
+ imageShift: -9
+ spacing: 0
+ text: " 1 "
+ text1: "2"
+ text2: " 3 4"
+
+ }
+
+ Rectangle{
+ x:25
+ y: 365
+ height:1
+ width: 750
+ color: "#1d81d5"
+ }
+
+
+ PresetsGridPCA{
+ id: thePresets
+ x:0
+ y:365
+
+ }
+
+ FWdgtImage{
+ id: swipeIcon1
+ bitmap: "Radio/whiteBall.png"
+ x: 389
+ y: 381
+ }
+
+ FWdgtImage{
+ id: swipeIcon2
+ bitmap: "Radio/blueBall.png"
+ x: 404
+ y: 381
+ }
+
+ FViewUseCaseSimple{condition: fmLayout.page1===false
+ PropertyChanges{
+ target: swipeIcon2; bitmap: "Radio/whiteBall.png"
+ }
+ PropertyChanges{
+ target: swipeIcon1; bitmap: "Radio/blueBall.png"
+ }
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/HomeLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/HomeLayout.qml
new file mode 100644
index 000000000..375f96894
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/HomeLayout.qml
@@ -0,0 +1,61 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: home
+ width: 800
+ height: 480
+
+ property alias button1: button1
+ property alias button2: button2
+ property alias button3: button3
+ property alias button4: button4
+
+
+
+
+ TouchButton{
+ id: button1
+ anchors.top: home.top
+ anchors.left: home.left
+ height:235
+ width: 395
+ text: "Button 1"
+ }
+
+ TouchButton{
+ id: button2
+ anchors.top: home.top
+ anchors.right: home.right
+ height:235
+ width: 395
+ text: "Button 2"
+ }
+
+ TouchButton{
+ id: button3
+ anchors.bottom: home.bottom
+ anchors.left: home.left
+ height:235
+ width: 395
+ text: "Button 3"
+ }
+
+ TouchButton{
+ id: button4
+ anchors.bottom: home.bottom
+ anchors.right: home.right
+ height:235
+ width: 395
+ text: "Button 4"
+ }
+
+ BaseText{
+ id: title
+ anchors.centerIn: home
+ text: "Home"
+ }
+
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ListLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ListLayout.qml
new file mode 100644
index 000000000..326d4feb0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/ListLayout.qml
@@ -0,0 +1,59 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+
+FLayout {
+
+ id: theLayout
+ width: 800
+ height: 480
+ x:10
+ y:10
+ property alias list : theListView
+ property alias list_itemWidget: theListView.itemWidget
+ property alias list_data: theListView.data
+ Rectangle{
+ anchors.fill:parent
+ color:"white"
+
+ }
+
+
+ FWdgtListView {
+
+ id: theListView
+ anchors.fill: parent
+ clip: true
+
+ }
+ FWdgtListView {
+ x:400
+ id: filteredListView
+ clip: true
+ data:filtermodel
+ itemWidget:list_itemWidget
+ width:100
+ height:400
+ }
+ TextInput{
+ text:"HelloWorld"
+ x:200
+ y:20
+ onTextChanged: {
+
+ if(text.length > 0 ) {
+ dataPool.filter = text
+ console.log(dataPool.filter)
+
+ sortList.fillFilterModel(theListView.data)//Just backup original
+ sortList.updateFilterModel(text)
+
+ } else {
+ sortList.fillFilterModel(theListView.data)
+ }
+ }
+
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavInRouteLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavInRouteLayout.qml
new file mode 100644
index 000000000..d0f240f4b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavInRouteLayout.qml
@@ -0,0 +1,130 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: mapLayout
+ width: 800
+ height: 480
+
+ property alias zoomIn: zoomIn.touchBtn
+ property alias zoomOut: zoomOut.touchBtn
+ property alias compass: compass.touchBtn
+ property alias cancel: cancel.touchBtn
+ property alias mute: mute.touchBtn
+ property alias muteSt: mute.selected
+ property alias options: options.touchBtn
+
+
+
+ FWdgtImage{
+ id: mapImg
+ bitmap: "Nav/Map.png"
+ anchors.fill: mapLayout
+ }
+
+ TouchButtonClimatePCA{
+ id: zoomIn
+ text: "+"
+ x:25
+ y:103
+ image: "buttons/zoom_9_9.png"
+ imageActive: "buttons/zoomSelected.png"
+ imagePressed: "buttons/zoomPressed_9_9.png"
+ txtColor: "white"
+ txtSize: 40
+
+ }
+ TouchButtonClimatePCA{
+ id: zoomOut
+ text: "-"
+ x:25
+ y:223
+ image: "buttons/zoom_9_9.png"
+ imageActive: "buttons/zoomSelected.png"
+ imagePressed: "buttons/zoomPressed_9_9.png"
+ txtColor: "white"
+ txtSize: 40
+ }
+ TouchButtonClimatePCA{
+ id: options
+ x:659
+ y:80
+ image: "Nav/Options_9_9.png"
+ imageActive: "Nav/OptionsInActive.png"
+ imagePressed: "Nav/OptionsPressed_9_9.png"
+ }
+ TouchButtonClimatePCA{
+ id: compass
+ x:34
+ y:352
+ image: "Nav/compass.png"
+ imageActive: "Nav/compass.png"
+ imagePressed: "Nav/compass.png"
+ }
+ TouchButtonClimatePCA{
+ id: mute
+ x:25
+ y:419
+ image: "buttons/mute_9_9.png"
+ imageActive: "buttons/muteActive.png"
+ imagePressed: "buttons/mutePressed_9_9.png"
+ imageInActive: "buttons/muteInActive.png"
+ }
+ FWdgtImage{
+ bitmap: "Nav/turnArrow.png"
+ x:97
+ y:428
+ }
+ BaseText{
+ text: "0.2 mi on Cherry Hill Rd."
+ pxSize: 22
+ x:144
+ y:434
+ color: "white"
+ }
+
+ BaseText{
+ text: "2 hrs 27 min"
+ pxSize: 22
+ anchors.right: cancel.left
+ anchors.rightMargin: 26
+ horAlignment: Text.AlignRight
+ y:434
+ color: "white"
+ }
+
+ TouchButtonSpecial_PCA{
+ id: cancel
+ x:621
+ y:419
+ textWidth: 110
+ bitmap: "Nav/destIcon.png"
+ bitmap2: "Nav/destIconBlack.png"
+ imageShift: -9
+ spacing: 0
+ text: " Cancel"
+ text1: ""
+ text2: ""
+ totHD: -1
+
+ }
+ FWdgtImage{
+ id: currStBkgrnd
+ bitmap: "Nav/current street.png"
+ x:265
+ y:349
+ }
+
+ BaseText{
+ id: currentStreet
+ x:312
+ y:360
+ text: "East Capital St. NE"
+ pxSize: 18
+ theFont: "../Fonts/HelveticaNeueLTCom-Lt.ttf"
+ horAlignment: Text.AlignLeft
+ vertAlignment: Text.AlignTop
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavKeyboardLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavKeyboardLayout.qml
new file mode 100644
index 000000000..6c7a03117
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavKeyboardLayout.qml
@@ -0,0 +1,547 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: alphaLayout
+ width: 800
+ height: 480
+ property alias list : theListView
+ property alias list_itemWidget: theListView.itemWidget
+ property alias list_data: theListView.data
+
+ property alias a: aBtn.touchBtn
+ property alias b: bBtn.touchBtn
+ property alias c: cBtn.touchBtn
+ property alias d: dBtn.touchBtn
+ property alias e: eBtn.touchBtn
+ property alias f: fBtn.touchBtn
+ property alias g: gBtn.touchBtn
+ property alias h: hBtn.touchBtn
+ property alias i: iBtn.touchBtn
+ property alias j: jBtn.touchBtn
+ property alias k: kBtn.touchBtn
+ property alias l: lBtn.touchBtn
+ property alias m: mBtn.touchBtn
+ property alias n: nBtn.touchBtn
+ property alias o: oBtn.touchBtn
+ property alias p: pBtn.touchBtn
+ property alias q: qBtn.touchBtn
+ property alias r: rBtn.touchBtn
+ property alias s: sBtn.touchBtn
+ property alias t: tBtn.touchBtn
+ property alias u: uBtn.touchBtn
+ property alias v: vBtn.touchBtn
+ property alias w: wBtn.touchBtn
+ property alias xB: xBtn.touchBtn
+ property alias yB: yBtn.touchBtn
+ property alias zB: zBtn.touchBtn
+ property alias num: numBtn.touchBtn
+ property alias sym: symBtn.touchBtn
+ property alias del: delBtn.touchBtn
+ property alias clr: clrBtn.touchBtn
+ property alias space: spaceBtn.touchBtn
+ property alias close: closeTouch
+ property string entry: ""
+ property alias go: goBtn.touchBtn
+ property alias listOpen: listOpen
+
+ FWdgtListView {
+ id: theListView
+ anchors.fill: parent
+ clip: true
+ visible:false
+ }
+
+ FWdgtListView {
+ x:400
+ id: filteredListView
+ clip: true
+ data:filtermodel
+ itemWidget:list_itemWidget
+ width:100
+ height:400
+ visible: true
+ }
+ TextInput{ //Little Trick for Update on List
+ text:dataPool.navEnrty
+ x:200
+ y:20
+ onTextChanged: {
+
+ if(text.length > 0 ) {
+ dataPool.filter = text
+ console.log(dataPool.filter)
+ sortList.fillFilterModel(theListView.data)//Just backup original
+ sortList.updateFilterModel(text)
+
+ } else {
+ sortList.fillFilterModel(theListView.data)
+ dataPool.navList1stItem=""
+
+ }
+
+
+ }
+
+ }
+ BaseText{
+ id: navEntry
+ x:25
+ y:65
+ text: entry
+ theFont: "../Fonts/HelveticaNeueLTStd-Roman.ttf"
+ pxSize: 45
+ color: "#1d81d5"
+ horAlignment: Text.AlignLeft
+ vertAlignment: Text.AlignTop
+ }
+ BaseText{
+ id: listFiltEntry
+ x:25
+ y:130
+ color:"#1d81d5"
+ text:dataPool.navList1stItem
+ theFont: "../Fonts/HelveticaNeueLTStd-Roman.ttf"
+ pxSize: 45
+ horAlignment: Text.AlignLeft
+ vertAlignment: Text.AlignTop
+ }
+ Rectangle{
+ id:rect
+ x:20
+ y:120
+ height: 60
+ radius:10
+ width:650
+ color:"transparent"
+ border.color: "#1d81d5"
+ border.width: 1
+ visible: false
+ }
+
+ FWdgtTouchArea{
+ id: listOpen
+ anchors.fill: rect
+ enabled: rect.visible
+ }
+
+ TouchButton_PCA{
+ id: goBtn
+ x:690
+ y:115
+ textWidth: 40
+ text: "Go"
+
+ }
+
+
+ TouchButtonClimatePCA{
+ id: qBtn
+ x:61
+ y:211
+ text: "Q"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: wBtn
+ x:130
+ y:211
+ text: "W"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: eBtn
+ x:199
+ y:211
+ text: "E"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: rBtn
+ x:268
+ y:211
+ text: "R"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: tBtn
+ x:337
+ y:211
+ text: "T"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: yBtn
+ x:406
+ y:211
+ text: "Y"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: uBtn
+ x:475
+ y:211
+ text: "U"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: iBtn
+ x:544
+ y:211
+ text: "I"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: oBtn
+ x:613
+ y:211
+ text: "O"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: pBtn
+ x:682
+ y:211
+ text: "P"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: numBtn
+ x:27
+ y:272
+ text: "123"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 22
+ }
+
+ TouchButtonClimatePCA{
+ id: aBtn
+ x:96
+ y:272
+ text: "A"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: sBtn
+ x:165
+ y:272
+ text: "S"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: dBtn
+ x:234
+ y:272
+ text: "D"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: fBtn
+ x:303
+ y:272
+ text: "F"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: gBtn
+ x:372
+ y:272
+ text: "G"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: hBtn
+ x:441
+ y:272
+ text: "H"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: jBtn
+ x:510
+ y:272
+ text: "J"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: kBtn
+ x:579
+ y:272
+ text: "K"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: lBtn
+ x:648
+ y:272
+ text: "L"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: delBtn
+ x:717
+ y:272
+ bitmap: "Nav/deleteIcon.png"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: symBtn
+ x:61
+ y:333
+ text: "!@#"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 22
+ }
+
+ TouchButtonClimatePCA{
+ id: zBtn
+ x:130
+ y:333
+ text: "Z"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: xBtn
+ x:199
+ y:333
+ text: "X"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: cBtn
+ x:268
+ y:333
+ text: "C"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: vBtn
+ x:337
+ y:333
+ text: "V"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: bBtn
+ x:406
+ y:333
+ text: "B"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: nBtn
+ x:475
+ y:333
+ text: "N"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: mBtn
+ x:544
+ y:333
+ text: "M"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ txtSize: 30
+ }
+
+ TouchButtonClimatePCA{
+ id: clrBtn
+ x:613
+ y:333
+ text: "Clear"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ newFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+ txtSize: 16
+ }
+
+ TouchButtonClimatePCA{
+ id: spaceBtn
+ x:682
+ y:333
+ text: "Space"
+ image: "buttons/key_9_9.png"
+ imagePressed: "buttons/keyPressed_9_9.png"
+ imageActive: "buttons/keySelected.png"
+ imageInActive: "buttons/keySelected.png"
+ newFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+ txtSize: 16
+ }
+
+ BaseText{
+ id: closeTxt
+ anchors.horizontalCenter: alphaLayout.horizontalCenter
+ y:430
+ horAlignment: Text.AlignHCenter
+ vertAlignment: Text.AlignTop
+ text: "CLOSE"
+ color: "#1d81d5"
+ pxSize: 22
+ theFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+
+ }
+
+ FWdgtTouchArea{
+ id: closeTouch
+ height: 75
+ width: 750
+ y:430
+ anchors.horizontalCenter: alphaLayout.horizontalCenter
+ }
+
+ FViewUseCase{condition: closeTouch.pressed === true
+ //FActScriptCall { onScript: { FLogger.debug("Test color should change") } }
+ PropertyChanges {
+ target: closeTxt; color: "white"
+ }
+ }
+
+ FViewUseCaseSimple{condition: listFiltEntry.text !== ""
+ PropertyChanges {
+ target: rect; visible: true
+ }
+ }
+
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavNoRouteLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavNoRouteLayout.qml
new file mode 100644
index 000000000..7c65e911a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/NavNoRouteLayout.qml
@@ -0,0 +1,78 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: mapLayout
+ width: 800
+ height: 480
+
+ property alias zoomIn: zoomIn.touchBtn
+ property alias zoomOut: zoomOut.touchBtn
+ property alias compass: compass.touchBtn
+ property alias destSearch: destSearch.touchBtn
+ property alias options: options.touchBtn
+
+
+
+ FWdgtImage{
+ id: mapImg
+ bitmap: "Nav/Map.png"
+ anchors.fill: mapLayout
+ }
+
+ TouchButtonClimatePCA{
+ id: zoomIn
+ text: "+"
+ x:25
+ y:103
+ image: "buttons/zoom_9_9.png"
+ imageActive: "buttons/zoomSelected.png"
+ imagePressed: "buttons/zoomPressed_9_9.png"
+ txtColor: "white"
+ txtSize: 40
+
+ }
+ TouchButtonClimatePCA{
+ id: zoomOut
+ text: "-"
+ x:25
+ y:223
+ image: "buttons/zoom_9_9.png"
+ imageActive: "buttons/zoomSelected.png"
+ imagePressed: "buttons/zoomPressed_9_9.png"
+ txtColor: "white"
+ txtSize: 40
+ }
+ TouchButtonClimatePCA{
+ id: options
+ x:659
+ y:80
+ image: "Nav/Options_9_9.png"
+ imageActive: "Nav/OptionsInActive.png"
+ imagePressed: "Nav/OptionsPressed_9_9.png"
+ }
+ TouchButtonClimatePCA{
+ id: compass
+ x:34
+ y:352
+ image: "Nav/compass.png"
+ imageActive: "Nav/compass.png"
+ imagePressed: "Nav/compass.png"
+ }
+ TouchButtonSpecial_PCA{
+ id: destSearch
+ x:601
+ y:419
+ textWidth: 130
+ bitmap: "Nav/destIcon.png"
+ bitmap2: "Nav/destIconBlack.png"
+ imageShift: -9
+ spacing: 0
+ text: " Destination"
+ text1: ""
+ text2: ""
+ totHD: -1
+
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/OffLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/OffLayout.qml
new file mode 100644
index 000000000..f5cc5d57a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/OffLayout.qml
@@ -0,0 +1,71 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+FLayout {
+ width: 800
+ height: 480
+
+ property alias offTouch: offTouch
+
+ Rectangle {
+ id: bk
+ anchors.fill: parent
+ color: "black"
+ }
+
+ FWdgtTouchArea{
+ id: offTouch
+ anchors.fill: bk
+ }
+
+/* RectangularGlow {
+ id: effect
+ anchors.fill: rect
+ glowRadius: 4
+ spread: 0.7
+ color: "#1d81d5"
+ cornerRadius: rect.radius //+ glowRadius
+ }
+
+ Rectangle {
+ id: rect
+ color: "black"
+ x:40
+ y:40
+ width: 160
+ height: 45
+ radius: 23
+ border.width: 1
+ border.color: "#1d81d5"
+ }
+
+ FWdgtImage{
+ id: img
+ x:40
+ y:90
+ bitmap: "OButton.png"
+ }
+
+ FWdgtImage{
+ id: img
+ x:40
+ y:40
+ bitmap: "Radio/ButtonEnd_8_8.png"
+ }
+
+ FWdgtImage{
+ id: img1
+ anchors.left: img.right
+ anchors.top: img.top
+ width:2
+ fillMode: Image.Stretch
+ bitmap: "Radio/ButtonCenter_0_8.png"
+ }
+
+ FWdgtImage{
+ id: img2
+ anchors.left: img1.right
+ anchors.top: img1.top
+ bitmap: "Radio/ButtonOtherEnd_8_8.png"
+ }*/
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/PCAstatusBarLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/PCAstatusBarLayout.qml
new file mode 100644
index 000000000..1236ea420
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/PCAstatusBarLayout.qml
@@ -0,0 +1,123 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: statusLayout
+ width: 800
+ height: 480
+
+ property alias menuTouch: menuTouch
+
+ Rectangle{
+ id: ln1
+ anchors.horizontalCenter: statusLayout.horizontalCenter
+ y:15
+ height:1
+ width: 14
+ color: "#1d81d5"
+ }
+ Rectangle{
+ id: ln2
+ anchors.horizontalCenter: statusLayout.horizontalCenter
+ y:19
+ height:1
+ width: 14
+ color: "#1d81d5"
+ }
+ Rectangle{
+ id: ln3
+ anchors.horizontalCenter: statusLayout.horizontalCenter
+ y:23
+ height:1
+ width: 14
+ color: "#1d81d5"
+ }
+
+
+
+ BaseText{
+ id: menuTxt
+ anchors.horizontalCenter: statusLayout.horizontalCenter
+ anchors.bottom: statusLayout.top
+ anchors.bottomMargin: -50
+ horAlignment: Text.AlignHCenter
+ vertAlignment: Text.AlignBottom
+ text: "MENU"
+ color: "#1d81d5"
+ pxSize: 22
+ theFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+
+ }
+
+ BaseText{
+ id: tempTxt
+ x:25
+ anchors.bottom: statusLayout.top
+ anchors.bottomMargin: -50
+ horAlignment: Text.AlignLeft
+ vertAlignment: Text.AlignBottom
+ text: "75" + "\xBA"
+ color: "#1d81d5"
+ theFont: "../Fonts/HelveticaNeueLTStd-Roman.ttf"
+ pxSize: 28
+
+
+ }
+
+ BaseText{
+ id: clockTxt
+ anchors.right: statusLayout.right
+ anchors.rightMargin: 25
+ anchors.bottom: statusLayout.top
+ anchors.bottomMargin: -50
+ horAlignment: Text.AlignRight
+ vertAlignment: Text.AlignBottom
+ text: "12:45"
+ color: "#1d81d5"
+ theFont: "../Fonts/HelveticaNeueLTStd-Roman.ttf"
+ pxSize: 28
+ }
+
+ FWdgtTouchArea{
+ id: menuTouch
+ height: 75
+ width: 80
+ y:0
+ anchors.horizontalCenter: statusLayout.horizontalCenter
+ }
+
+ FViewUseCase{condition: menuTouch.pressed === true
+ //FActScriptCall { onScript: { FLogger.debug("Test color should change") } }
+ PropertyChanges {
+ target: ln1; color: "white"
+ }
+ PropertyChanges {
+ target: ln2; color: "white"
+ }
+ PropertyChanges {
+ target: ln3; color: "white"
+ }
+ PropertyChanges {
+ target: menuTxt; color: "white"
+ }
+ }
+
+ FViewUseCase{
+ condition: dataPool.mainPCAmenuShown ===true
+ PropertyChanges {
+ target: ln1; visible: false
+ }
+ PropertyChanges {
+ target: ln2; visible: false
+ }
+ PropertyChanges {
+ target: ln3; visible: false
+ }
+ PropertyChanges {
+ target: menuTxt; visible: false
+ }
+ }
+
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/PhoneContactsLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/PhoneContactsLayout.qml
new file mode 100644
index 000000000..9e119d990
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/PhoneContactsLayout.qml
@@ -0,0 +1,40 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+
+FLayout {
+
+ id: theLayout
+ width: 800
+ height: 480
+
+ property alias list : theListPhoneView
+ property alias list_itemWidget: theListPhoneView.itemWidget
+ property alias list_data: theListPhoneView.data
+ property alias back: back.touchBtn
+ TouchButtonClimatePCA{
+ id: back
+ text: "+"
+ x:25
+ y:80
+ image: "buttons/zoom_9_9.png"
+ imageActive: "buttons/zoomSelected.png"
+ imagePressed: "buttons/zoomPressed_9_9.png"
+ txtColor: "white"
+ txtSize: 40
+ visible: false
+
+ }
+ FWdgtListView {
+
+ width:600
+ height:400
+ id: theListPhoneView
+ x:150
+ y:80
+ clip: true
+ visible:true
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/SiriusLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/SiriusLayout.qml
new file mode 100644
index 000000000..e275c055a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/SiriusLayout.qml
@@ -0,0 +1,195 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: fmLayout
+ width: 800
+ height: 480
+
+ property alias sourceBtn: sourceBtn
+ property alias browseBtn: browseBtn
+ property alias albumInfoBtn: albumInfoBtn
+ property alias albumInfoImg: stationLogoImg
+ property alias stationTxt: stationTxt
+ property alias trackTxt: trackTxt
+ property alias artistTxt: artistTxt
+ property alias alertBtn: alertBtn
+ property alias preset1Btn: preset1Btn
+ property alias preset2Btn: preset2Btn
+ property alias preset3Btn: preset3Btn
+ property alias preset4Btn: preset4Btn
+ property alias preset5Btn: preset5Btn
+ property alias preset6Btn: preset6Btn
+ property alias replayBtn: replayBtn
+ property alias tuneBtn: tuneBtn
+ property alias presetsBtn: presetsBtn
+
+
+ TouchButton{
+ id: sourceBtn
+ anchors.top: fmLayout.top
+ anchors.topMargin: 140
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 10
+ height:25
+ width: 130
+ text: "Source"
+ }
+
+ TouchButton{
+ id: browseBtn
+ anchors.top: fmLayout.top
+ anchors.topMargin: 180
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 10
+ height:25
+ width: 130
+ text: "Browse"
+ }
+
+ TouchButton{
+ id: albumInfoBtn
+ anchors.top: fmLayout.top
+ anchors.topMargin: 95
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 190
+ height:130
+ width: 130
+ text: "Album"
+ vis: false
+
+ }
+
+ FWdgtImage{
+ id: stationLogoImg
+ anchors.top: fmLayout.top
+ anchors.topMargin: 95
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 190
+ height:70
+ width: 130
+ bitmap: ""
+ }
+
+ TouchButton{
+ id: alertBtn
+ anchors.top: albumInfoImg.bottom
+ anchors.topMargin: 20
+ anchors.left: albumInfoImg.left
+ height:25
+ width: 90
+ text: "Alert"
+ }
+
+ BaseText{
+ id: stationTxt
+ anchors.verticalCenter: trackTxt.verticalCenter
+ anchors.verticalCenterOffset: -45
+ anchors.left: trackTxt.left
+ text: "Ch 22 / Pearl Jam Radio"
+ }
+
+ BaseText{
+ id: trackTxt
+ anchors.verticalCenter: albumInfoBtn.verticalCenter
+ anchors.left: albumInfoBtn.right
+ anchors.leftMargin: 15
+ pxSize: 34
+ text: "State of Love ..."
+
+ }
+
+ BaseText{
+ id: artistTxt
+ anchors.verticalCenter: trackTxt.verticalCenter
+ anchors.verticalCenterOffset: 45
+ anchors.left: trackTxt.left
+ text: "Pearl Jam"
+ }
+
+ TouchButton{
+ id: preset1Btn
+ anchors.top: fmLayout.top
+ anchors.topMargin: 280
+ anchors.left: browseBtn.left
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: preset2Btn
+ anchors.top: preset1Btn.bottom
+ anchors.left: preset1Btn.left
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: preset3Btn
+ anchors.top: preset1Btn.top
+ anchors.left: preset1Btn.right
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: preset4Btn
+ anchors.top: preset2Btn.top
+ anchors.left: preset2Btn.right
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: preset5Btn
+ anchors.top: preset3Btn.top
+ anchors.left: preset3Btn.right
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: preset6Btn
+ anchors.top: preset4Btn.top
+ anchors.left: preset4Btn.right
+ height:60
+ width: 208
+ text: "WWWWWWWW"
+ }
+
+ TouchButton{
+ id: replayBtn
+ anchors.verticalCenter: browseBtn.verticalCenter
+ anchors.verticalCenterOffset: 35
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 725
+ height:40
+ width: 55
+ text: "rply"
+ }
+
+ TouchButton{
+ id: tuneBtn
+ anchors.top: preset1Btn.top
+ anchors.right: replayBtn.right
+ height:40
+ width: 120
+ text: "tune"
+ }
+
+ TouchButton{
+ id: presetsBtn
+ anchors.bottom: preset6Btn.bottom
+ anchors.right: replayBtn.right
+ height:60
+ width: 120
+ text: "presets"
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/StartLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/StartLayout.qml
new file mode 100644
index 000000000..396843844
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/StartLayout.qml
@@ -0,0 +1,30 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: chrome
+ width: 800
+ height: 480
+
+ //property alias bg: _bg
+ //property alias btnIndicatorState: button1.indicatorState
+ property alias button1: button1
+
+
+
+
+ BaseText{
+ id: title
+ anchors.centerIn: chrome
+ text: "Chrome"
+ }
+
+ TouchButton{
+ id: button1
+ anchors.top: title.bottom
+ anchors.horizontalCenter: title.horizontalCenter
+ text: "Button 1"
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TC1_B1_Grid.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TC1_B1_Grid.qml
new file mode 100644
index 000000000..d898a0c07
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TC1_B1_Grid.qml
@@ -0,0 +1,37 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ width: 800
+ height: 480
+
+ property alias m1: m1.children
+ property alias list: listView
+ property alias list_data: listView.list_data
+ property alias list_itemWidget: listView.list_itemWidget
+ property alias listWrap: listView.listWrap
+ property alias fg: _fg
+
+
+
+ Item {
+ id: _fg
+
+ width: 800; height: 480
+
+ GridViewWidget {
+ id: listView
+ x: 135; y: 170
+ width: 530; height: 200
+ gridItemHeight: 100; gridItemWidth: 180
+
+ }
+
+ FWdgtContainer {
+ id: m1
+ width: 530; height: 55
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackImgLayoutPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackImgLayoutPCA.qml
new file mode 100644
index 000000000..a1a0d3253
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackImgLayoutPCA.qml
@@ -0,0 +1,76 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ id: layout
+ width: 800
+ height: 480
+
+ property alias m1: m1.children
+ property alias list: listView
+ property alias list_data: listView.list_data
+ property alias list_itemWidget: listView.list_itemWidget
+ property alias listWrap: listView.listWrap
+ property alias fg: _fg
+ property alias theX: listView.x
+ property alias theY: listView.y
+ property alias theWidth: listView.width
+ property alias theHeight: listView.height
+ property alias itemWidth: listView.gridItemWidth
+ property alias itemHeight: listView.gridItemHeight
+ property alias close: closeTouch
+ property bool useClose: false
+
+
+ Item {
+ id: _fg
+
+ width: 800; height: 480
+
+
+ GridViewWidget {
+ id: listView
+ x: 0; y: 75
+ width: 800; height: 356
+ gridItemHeight: 178; gridItemWidth: 200
+
+ }
+
+ FWdgtContainer {
+ id: m1
+ width: 530; height: 55
+ }
+ }
+ BaseText{
+ id: closeTxt
+ anchors.horizontalCenter: layout.horizontalCenter
+ y:430
+ horAlignment: Text.AlignHCenter
+ vertAlignment: Text.AlignTop
+ text: "CLOSE"
+ color: "#1d81d5"
+ pxSize: 22
+ theFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+ visible: useClose
+
+ }
+
+ FWdgtTouchArea{
+ id: closeTouch
+ height: 75
+ width: 750
+ y:430
+ anchors.horizontalCenter: layout.horizontalCenter
+ visible: useClose
+ enabled: useClose
+ }
+
+ FViewUseCase{condition: closeTouch.pressed === true
+ //FActScriptCall { onScript: { FLogger.debug("Test color should change") } }
+ PropertyChanges {
+ target: closeTxt; color: "white"
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackLayout.qml
new file mode 100644
index 000000000..0aed708e3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackLayout.qml
@@ -0,0 +1,107 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: tileLayout
+ width: 800
+ height: 480
+
+ property alias button1: button1
+ property alias button2: button2
+ property alias button3: button3
+ property alias button4: button4
+ property alias button5: button5
+ property alias button6: button6
+ property alias button7: button7
+ property alias button8: button8
+ property alias backBtn: backBtn
+
+
+
+ Grid {
+ id: theGrid
+ flow: Grid.TopToBottom
+ anchors.top: tileLayout.top
+ anchors.topMargin: 130
+ anchors.horizontalCenter: tileLayout.horizontalCenter
+ anchors.leftMargin: 100
+ columns: 4
+ spacing: 20
+ TouchButton{
+ id: button1
+ height:125
+ width: 135
+ text: "Button 1"
+ }
+
+ TouchButton{
+ id: button2
+ height:125
+ width: 135
+ text: "Button 2"
+ }
+
+ TouchButton{
+ id: button3
+ height:125
+ width: 135
+ text: "Button 3"
+ }
+
+ TouchButton{
+ id: button4
+ height:125
+ width: 135
+ text: "Button 4"
+ }
+
+ TouchButton{
+ id: button5
+ height:125
+ width: 135
+ text: "Button 5"
+ }
+
+ TouchButton{
+ id: button6
+ height:125
+ width: 135
+ text: "Button 6"
+ }
+
+ TouchButton{
+ id: button7
+ height:125
+ width: 135
+ text: "Button 7"
+ }
+
+ TouchButton{
+ id: button8
+ height:125
+ width: 135
+ text: "Button 8"
+ }
+ }
+
+
+
+ BaseText{
+ id: title
+ anchors.top: tileLayout.top
+ anchors.topMargin: 80
+ anchors.horizontalCenter: tileLayout.horizontalCenter
+ text: "Select a Source"
+ }
+
+ TouchButton{
+ id: backBtn
+ anchors.verticalCenter: title.verticalCenter
+ anchors.left: tileLayout.left
+ anchors.leftMargin: 20
+ height:40
+ width: 60
+ text: "<"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackLayoutPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackLayoutPCA.qml
new file mode 100644
index 000000000..bc7545b6f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/TileBackLayoutPCA.qml
@@ -0,0 +1,73 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ id: layout
+ width: 800
+ height: 480
+
+ property alias m1: m1.children
+ property alias list: listView
+ property alias list_data: listView.list_data
+ property alias list_itemWidget: listView.list_itemWidget
+ property alias listWrap: listView.listWrap
+ property alias fg: _fg
+ property alias theX: listView.x
+ property alias theY: listView.y
+ property alias theWidth: listView.width
+ property alias theHeight: listView.height
+ property alias itemWidth: listView.gridItemWidth
+ property alias itemHeight: listView.gridItemHeight
+ property alias close: closeTouch
+ property bool useClose: true
+
+
+
+
+ Item {
+ id: _fg
+
+ width: 800; height: 480
+
+ GridViewWidget {
+ id: listView
+ x: 130; y: 170
+ width: 540; height: 200
+ gridItemHeight: 100; gridItemWidth: 180
+
+ }
+
+ FWdgtContainer {
+ id: m1
+ width: 530; height: 55
+ }
+
+
+ }
+
+ BaseText{
+ id: closeTxt
+ anchors.horizontalCenter: layout.horizontalCenter
+ y:430
+ horAlignment: Text.AlignHCenter
+ vertAlignment: Text.AlignTop
+ text: "CLOSE"
+ color: "#1d81d5"
+ pxSize: 22
+ theFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+ visible: useClose
+
+ }
+
+ FWdgtTouchArea{
+ id: closeTouch
+ height: 75
+ width: 750
+ y:430
+ anchors.horizontalCenter: layout.horizontalCenter
+ visible: useClose
+ enabled: useClose
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/USBLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/USBLayout.qml
new file mode 100644
index 000000000..178fe6fc1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/USBLayout.qml
@@ -0,0 +1,132 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: fmLayout
+ width: 800
+ height: 480
+
+ property alias sourceBtn: sourceBtn
+ property alias browseBtn: browseBtn
+ property alias albumInfoBtn: albumInfoBtn
+ property alias stationTxt: stationTxt
+ property alias trackTxt: trackTxt
+ property alias artistTxt: artistTxt
+ property alias seekBkBtn: seekBkBtn
+ property alias playBtn: playBtn
+ property alias seekFdBtn: seekFdBtn
+ property alias repeatBtn: repeatBtn
+ property alias shuffleBtn: shuffleBtn
+
+
+ TouchButton{
+ id: sourceBtn
+ anchors.top: fmLayout.top
+ anchors.topMargin: 140
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 10
+ height:25
+ width: 130
+ text: "Source"
+ }
+
+ TouchButton{
+ id: browseBtn
+ anchors.top: fmLayout.top
+ anchors.topMargin: 290
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 10
+ height:25
+ width: 130
+ text: "Browse"
+ }
+
+ TouchButton{
+ id: albumInfoBtn
+ anchors.top: fmLayout.top
+ anchors.topMargin: 95
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 190
+ height:130
+ width: 130
+ text: "Album"
+ }
+
+ BaseText{
+ id: stationTxt
+ anchors.verticalCenter: trackTxt.verticalCenter
+ anchors.verticalCenterOffset: -45
+ anchors.left: trackTxt.left
+ text: "Ch 22 / Pearl Jam Radio"
+ }
+
+ BaseText{
+ id: trackTxt
+ anchors.verticalCenter: albumInfoBtn.verticalCenter
+ anchors.left: albumInfoBtn.right
+ anchors.leftMargin: 15
+ pxSize: 34
+ text: "State of Love ..."
+
+ }
+
+ BaseText{
+ id: artistTxt
+ anchors.verticalCenter: trackTxt.verticalCenter
+ anchors.verticalCenterOffset: 45
+ anchors.left: trackTxt.left
+ text: "Pearl Jam"
+ }
+
+ TouchButton{
+ id: seekBkBtn
+ anchors.verticalCenter: browseBtn.verticalCenter
+ anchors.horizontalCenter: playBtn.horizontalCenter
+ anchors.horizontalCenterOffset: -150
+ height:100
+ width: 100
+ text: "<<"
+ }
+
+ TouchButton{
+ id: playBtn
+ anchors.verticalCenter: browseBtn.verticalCenter
+ anchors.horizontalCenter: fmLayout.horizontalCenter
+ height:120
+ width: 120
+ text: "||"
+ }
+
+ TouchButton{
+ id: seekFdBtn
+ anchors.verticalCenter: browseBtn.verticalCenter
+ anchors.horizontalCenter: playBtn.horizontalCenter
+ anchors.horizontalCenterOffset: 150
+ height:100
+ width: 100
+ text: ">>"
+ }
+
+ TouchButton{
+ id: repeatBtn
+ anchors.verticalCenter: browseBtn.verticalCenter
+ anchors.verticalCenterOffset: -35
+ anchors.left: fmLayout.left
+ anchors.leftMargin: 670
+ height:40
+ width: 55
+ text: "rpt"
+ }
+
+ TouchButton{
+ id: shuffleBtn
+ anchors.verticalCenter: browseBtn.verticalCenter
+ anchors.verticalCenterOffset: 35
+ anchors.left: repeatBtn.left
+ height:40
+ width: 55
+ text: "sfl"
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Layouts/USBLayoutPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/USBLayoutPCA.qml
new file mode 100644
index 000000000..d82077b55
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Layouts/USBLayoutPCA.qml
@@ -0,0 +1,155 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: fmLayout
+ width: 800
+ height: 480
+
+ property alias sourceBtn: sourceBtn
+ property alias browseBtn: browseBtn
+ property alias trackNumTxt: trackNumTxt.text
+ property alias artist: artistTxt.text
+ property alias play: play.touchBtn
+ property alias pause: pause.touchBtn
+ property bool playing: true
+
+
+
+
+ FWdgtImage{
+ id: albumArt
+ x:25
+ y:176
+ bitmap: "USB/albumArt.png"
+ }
+
+ TouchButton_PCA{
+ id: sourceBtn
+ x:25
+ y:80
+ textWidth: 100
+ text: "FM Radio"
+
+ }
+
+ TouchButton_PCA{
+ id: browseBtn
+ anchors.right: fmLayout.right
+ anchors.rightMargin: 25
+ y:80
+ textWidth: 75
+ text: "Browse"
+
+ }
+
+ BaseText{
+ id: trackNumTxt
+ x:181
+ y:188
+ pxSize: 22
+ text: "Track 13/ 16"
+ color: "#1d81d5"
+ theFont: "../Fonts/HelveticaNeueLTCom-Lt.ttf"
+
+ }
+
+ BaseText{
+ id: trackTxt
+ x:181
+ y:225
+ text: "The Dog Days Are Over"
+ color: "#1d81d5"
+ theFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+ pxSize: 45
+
+
+ }
+
+ BaseText{
+ id: artistTxt
+ x:181
+ y:280
+ text: "Florence and the Machine"
+ color: "#1d81d5"
+ theFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+ pxSize: 22
+ }
+
+
+ TouchButtonClimatePCA{
+ id: play
+ x:367
+ y:390
+ image: "USB/play_9_9.png"
+ imagePressed: "USB/playPressed_9_9.png"
+ visible: playing
+ enabled: playing
+ }
+
+ TouchButtonClimatePCA{
+ id: pause
+ x:367
+ y:390
+ image: "USB/pause_9_9.png"
+ imagePressed: "USB/pausePressed_9_9.png"
+ visible: !playing
+ enabled: !playing
+ }
+
+ TouchButtonClimatePCA{
+ id: seekBack
+ x:287
+ y:399
+ image: "USB/Prev_9_9.png"
+ imagePressed: "USB/PrevPressed_9_9.png"
+ }
+
+ TouchButtonClimatePCA{
+ id: seekNext
+ x:463
+ y:399
+ image: "USB/Next_9_9.png"
+ imagePressed: "USB/NextPressed_9_9.png"
+ }
+
+ Rectangle{
+ x:92
+ y: 365
+ height:1
+ width: 616
+ color: "#1d81d5"
+ }
+
+ Rectangle{
+ x:92
+ y: 365
+ height:1
+ width: 138
+ color: "white"
+ }
+
+ BaseText{
+ id: elapsedTime
+ x:25
+ y:358
+ text: "02:36"
+ color: "white"
+ theFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+ pxSize: 18
+ }
+
+ BaseText{
+ id: totTime
+ y:358
+ anchors.right: fmLayout.right
+ anchors.rightMargin: 25
+ horAlignment: Text.AlignRight
+ text: "04:23"
+ color: "#1d81d5"
+ theFont: "../Fonts/HelveticaNeueLTStd-Md.ttf"
+ pxSize: 18
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/PCA_HMI_v1_0.qml b/SDL_Core/src/components/qt_hmi/References/Look/PCA_HMI_v1_0.qml
new file mode 100644
index 000000000..22e408c71
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/PCA_HMI_v1_0.qml
@@ -0,0 +1,373 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "Models"
+import "Widgets"
+import "Styles"
+
+Rectangle {
+ width: 1360
+ height: 768
+ color: "black"
+
+ // global events
+ FEvent { id: cornerClicked }
+ FEvent { id: closeNormalScreens }
+
+ //global timers
+ FTimer {id: testTimer; interval: 5000; repeat: false}
+
+ // global datapools
+ FDataPool {
+ id: dataPool
+
+ property string version: "V1.0.0"
+ property string currSource: "FM"
+ property string currStation: "91.9"
+ property string currStatText: "WUOM"
+ property string currSong: "Fresh Air"
+ property string currAlbumArt: "album artRazorFish.png"
+ property int layout: 2 //AM/FM:0, AMhd:1, FMhd:2, Sirius:3, USB:4, BT:5
+ property int currFMpreset: 2
+ property int currAMpreset: 1
+ property int currSATpreset: 3
+ property string curStationDT: ""
+ property int statusBarChange: 0
+ property int curFanSpeed: 1
+ property int drvTemp: 70
+ property int passTemp: 70
+
+ property bool mainPCAmenuShown: false
+
+
+ property string fm1pre1: "101.1"
+ property string fm1pre2: "97.1"
+ property string fm1pre3: "94.7"
+ property string fm1pre4: "91.7"
+ property string fm1pre5: "101.9"
+ property string fm1pre6: "88.7"
+
+ property string fm1stat1: "WRIF"
+ property string fm1stat2: "WXYT"
+ property string fm1stat3: "WCSX"
+ property string fm1stat4: "WUOM"
+ property string fm1stat5: "WDET"
+ property string fm1stat6: "CIMX"
+
+ property string fm1song1: "Ace of Spades"
+ property string fm1song2: "Sports Talk"
+ property string fm1song3: "Born to Run"
+ property string fm1song4: "Fresh Air"
+ property string fm1song5: "The Craig Fahle Show"
+ property string fm1song6: "State of Love and Trust"
+
+ property string fm2pre1: "101.1"
+ property string fm2pre2: "97.1"
+ property string fm2pre3: "94.7"
+ property string fm2pre4: "91.7"
+ property string fm2pre5: "101.9"
+ property string fm2pre6: "88.7"
+
+ property string fm2stat1: "WRIF"
+ property string fm2stat2: "WXYT"
+ property string fm2stat3: "WCSX"
+ property string fm2stat4: "WUOM"
+ property string fm2stat5: "WDET"
+ property string fm2stat6: "CIMX"
+
+ property string fm2song1: "Ace of Spades"
+ property string fm2song2: "Sports Talk"
+ property string fm2song3: "Born to Run"
+ property string fm2song4: "Fresh Air"
+ property string fm2song5: "The Craig Fahle Show"
+ property string fm2song6: "State of Love and Trust"
+
+ property string fm3pre1: "101.1"
+ property string fm3pre2: "97.1"
+ property string fm3pre3: "94.7"
+ property string fm3pre4: "91.7"
+ property string fm3pre5: "101.9"
+ property string fm3pre6: "88.7"
+
+ property string fm3stat1: "WRIF"
+ property string fm3stat2: "WXYT"
+ property string fm3stat3: "WCSX"
+ property string fm3stat4: "WUOM"
+ property string fm3stat5: "WDET"
+ property string fm3stat6: "CIMX"
+
+ property string fm3song1: "Ace of Spades"
+ property string fm3song2: "Sports Talk"
+ property string fm3song3: "Born to Run"
+ property string fm3song4: "Fresh Air"
+ property string fm3song5: "The Craig Fahle Show"
+ property string fm3song6: "State of Love and Trust"
+
+
+ /*List Filtered Variables*/
+ property string navEnrty:""
+ property string filter: ""
+ property variant uniqueChars: undefined
+ property string navList1stItem:""
+ property string filterPhone:""
+ }
+
+ // global conditions
+ FConditionPool {
+ id: condPool
+
+ property bool amfmActiveSource: true
+ property bool settingsOpen: false
+ property bool dualBtnSt: true
+ property bool drvHeatSeatSt: false
+ property bool drvCoolSeatSt: false
+ property bool passCoolSeatSt: false
+ property bool passHeatSeatSt: false
+ property bool heatWheelSt: false
+ property bool heatWinSheildSt: true
+ property bool defrostSt: true
+ property bool pannelSt: false
+ property bool floorSt: false
+
+ property bool showMenu: true
+
+ }
+
+
+ Component.onCompleted: {
+ FThemeProvider.resourcePath = Qt.resolvedUrl("Resources");
+ FThemeProvider.theme = "Theme1";
+
+
+ }
+ property QtObject filtermodel: ListModel {
+ ListElement { staticItem: "Five Guys" }
+ ListElement { staticItem: "Archers Of Loaf" }
+ ListElement { staticItem: "Bob Mould" }
+ ListElement { staticItem: "Cat Power" }
+ ListElement { staticItem: "Cloud Nothings"}
+ ListElement { staticItem: "Dentist"}
+ ListElement { staticItem: "Dirty Frank's" }
+ ListElement { staticItem: "Grouplove" }
+ ListElement { staticItem: "Hudson Bell"}
+ ListElement { staticItem: "Japandroids" }
+ ListElement { staticItem: "Macklemore & Ryan Lewis"}
+ ListElement { staticItem: "The National"}
+ ListElement { staticItem: "Titus Andronicus" }
+ ListElement { staticItem: "Tito" }
+ ListElement { staticItem: "Tamal" }
+ ListElement { staticItem: "Taco" }
+ }
+
+ QtObject{
+ id:sortList
+
+ //Check if char exist on Phone DataModel
+ function existChar(model, character){
+ //console.log(model.get(3).staticItem.charAt(0).toLowerCase())
+ for (var i = 0; i < model.count; i++) {
+ var u =model.get(i).staticItem.charAt(0).toLowerCase()
+ if (character=== u){
+ console.log(i)
+ return i;
+ }
+
+ }
+
+ }
+
+ // Check whether given character exists in array
+ function exist(array, character) {
+ console.log(array[0]);
+ for (var i = 0; i < array.length; i++) {
+
+ if (array[i] == character) return true;
+ }
+ return false;
+ }
+
+ // Check whether given filter matches the string (e.g. "ce" would match "Cecilia")
+ // The check is case-insensitive
+ function checkFilter(filter, string) {
+ if (filter.length > string.length) return false;
+
+ var filterlower = filter.toLowerCase();
+ var stringlower = string.toLowerCase();
+
+ for (var i = 0; i < filter.length; i++) {
+ if (filterlower[i] != stringlower[i])
+ return false;
+ }
+
+ return true;
+ }
+
+ // Updates the filtermodel based on the current filter
+ function updateFilterModel(name) {
+ if (dataPool.filter.length > 0) {
+ for (var i = filtermodel.count-1; i >= 0; i--) {
+ if (!checkFilter(dataPool.filter, filtermodel.get(i).staticItem))
+ filtermodel.remove(i)
+ }
+ }
+
+ updateUniqueChars()
+ }
+
+ // Updates the array of unique first letters in the current index of the model
+ function updateUniqueChars() {
+
+ if (filtermodel.get(0) === undefined)
+ {
+ dataPool.navList1stItem=""
+ return;
+
+ }
+
+ var characters = new Array();
+
+ // If filter model has at most 1 item in it, no point in going
+ // any further with filtering
+ dataPool.navList1stItem=filtermodel.get(0).staticItem
+ if (filtermodel.count > 1) {
+
+ for (var i = 0; i < filtermodel.count; i++) {
+ var name = filtermodel.get(i).staticItem;
+
+ if (!exist(characters, name[dataPool.filter.length])) {
+ characters.push(name[dataPool.filter.length])
+ }
+ }
+
+ characters.sort()
+
+
+ }
+
+
+ dataPool.uniqueChars = characters
+
+ }
+
+
+ // Fills the filtermodel with contents from the source list's model
+ function fillFilterModel(fullModel) {
+ if (fullModel === undefined) return;
+ filtermodel.clear();
+ for (var i = 0; i < fullModel.count; i++) {
+ filtermodel.append(fullModel.get(i))
+ }
+
+ }
+
+ }
+
+ FDisplay {
+
+ /* modelPath:Qt.resolvedUrl(".")
+ id: display
+ //activeVariant: "ClassicTop"
+ //activeVariant: "ClassicBottom"
+ //activeVariant: "Tangier"
+ viewCacheSize:0
+
+ //width: 800
+ //height: 480
+// xPixel: 800
+// yPixel: 480
+ anchors.fill: parent
+// anchors { left: parent.left; top: parent.top;}
+
+ priorityLayerCount: 9
+ //initialView: "AutocompleteList"
+ initialView: "Off"*/
+
+
+
+ modelPath:Qt.resolvedUrl(".")
+ id: display
+ //activeVariant: "ClassicTop"
+ //activeVariant: "ClassicBottom"
+ //activeVariant: "Tangier"
+ viewCacheSize:0
+
+
+ width: 800
+ height: 480
+
+ xPixel: 800
+ yPixel: 480
+
+ anchors {
+ horizontalCenter: parent.horizontalCenter;
+ verticalCenter: parent.verticalCenter;
+ verticalCenterOffset: 55
+ }
+
+ priorityLayerCount: 9
+ initialView: "Off"
+ //initialView: "NavTilesView"
+ }
+
+ Item
+ {
+ id: fHardwareKeybezel1
+ width: 800
+ height: 375
+ x:10
+ y:500
+
+ // function keys
+ TextHardkey {
+ id: hk_OnOff
+ width: 100
+ height: 50
+ anchors.left: parent.left
+ anchors.leftMargin: 0
+ anchors.top: parent.top
+ anchors.topMargin: 0
+ label: "On/Off"
+ }
+
+ BaseText {
+ id: info
+ text: dataPool.version
+ color: "black"
+ anchors.top: hk_OnOff.top
+ anchors.left: hk_OnOff.right
+ anchors.leftMargin: 20
+ }
+
+
+ FHardwareKey {
+ id: buttonUp
+ hardwareControlID: "buttonUp"
+ //commName: "buttonBack"
+
+ x:0
+ y:0
+ width: 60
+ height:25
+
+
+ keyboardKey: Qt.Key_Up
+ visible: false
+ }
+
+ FHardwareKey {
+ id: buttonDown
+ hardwareControlID: "buttonDown"
+ //commName: "buttonBack"
+
+ x:0
+ y:0
+ width: 60
+ height:25
+
+
+ keyboardKey: Qt.Key_Down
+ visible: false
+ }
+
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/PCA_HMI_v1_0.qmlproject b/SDL_Core/src/components/qt_hmi/References/Look/PCA_HMI_v1_0.qmlproject
new file mode 100644
index 000000000..e9402cbac
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/PCA_HMI_v1_0.qmlproject
@@ -0,0 +1,20 @@
+/* File generated by Qt Creator, version 2.6.1 */
+
+import QmlProject 1.1
+
+Project {
+ mainFile: "PCA_HMI_v1_0.qml"
+
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ importPaths: [ "plugins" ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/CButton.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/CButton.png
new file mode 100644
index 000000000..aeebdb64c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/CButton.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Ford-HMI-PCA-phone_contacts.psd b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Ford-HMI-PCA-phone_contacts.psd
new file mode 100644
index 000000000..982bd5882
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Ford-HMI-PCA-phone_contacts.psd
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/HierarchicalListBG.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/HierarchicalListBG.png
new file mode 100644
index 000000000..805236eaf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/HierarchicalListBG.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/Map.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/Map.png
new file mode 100644
index 000000000..4b39af9b2
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/Map.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/OptionsInActive.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/OptionsInActive.png
new file mode 100644
index 000000000..601b242bb
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/OptionsInActive.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/OptionsPressed_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/OptionsPressed_9_9.png
new file mode 100644
index 000000000..42c352a7e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/OptionsPressed_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/Options_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/Options_9_9.png
new file mode 100644
index 000000000..46887f106
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/Options_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/compass.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/compass.png
new file mode 100644
index 000000000..b78041307
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/compass.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/current street.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/current street.png
new file mode 100644
index 000000000..e289c054f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/current street.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/deleteIcon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/deleteIcon.png
new file mode 100644
index 000000000..826b5faac
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/deleteIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/deleteIconBlack.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/deleteIconBlack.png
new file mode 100644
index 000000000..56e35c759
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/deleteIconBlack.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/destIcon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/destIcon.png
new file mode 100644
index 000000000..dadcfe25c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/destIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/destIconBlack.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/destIconBlack.png
new file mode 100644
index 000000000..75c99bc4a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/destIconBlack.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/turnArrow.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/turnArrow.png
new file mode 100644
index 000000000..f37731f5a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Nav/turnArrow.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/OButton.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/OButton.png
new file mode 100644
index 000000000..281177095
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/OButton.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonCenter_0_8.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonCenter_0_8.png
new file mode 100644
index 000000000..9933dbcc7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonCenter_0_8.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonEnd_8_8.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonEnd_8_8.png
new file mode 100644
index 000000000..672e57bf3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonEnd_8_8.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonOtherEnd_8_8.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonOtherEnd_8_8.png
new file mode 100644
index 000000000..cc9cb83ed
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/ButtonOtherEnd_8_8.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/Ford-HMI-PCA-audio_fm_sirius.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/Ford-HMI-PCA-audio_fm_sirius.png
new file mode 100644
index 000000000..efe0b7b58
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/Ford-HMI-PCA-audio_fm_sirius.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HD Logo.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HD Logo.png
new file mode 100644
index 000000000..dfc3d4ccf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HD Logo.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HD Logo1.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HD Logo1.png
new file mode 100644
index 000000000..80c9d58b4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HD Logo1.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HDBtn_8_8.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HDBtn_8_8.png
new file mode 100644
index 000000000..6ed0293aa
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/HDBtn_8_8.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/SourceBtn_8_8.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/SourceBtn_8_8.png
new file mode 100644
index 000000000..375195bec
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/SourceBtn_8_8.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/TuneBtn_8_8.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/TuneBtn_8_8.png
new file mode 100644
index 000000000..99f5e90c3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/TuneBtn_8_8.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/blueBall.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/blueBall.png
new file mode 100644
index 000000000..d4db3f96a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/blueBall.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/menuIcon_2_2.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/menuIcon_2_2.png
new file mode 100644
index 000000000..1422e00b4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/menuIcon_2_2.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/perlJamIcon_0_0.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/perlJamIcon_0_0.png
new file mode 100644
index 000000000..3c1cad7c3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/perlJamIcon_0_0.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/whiteBall.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/whiteBall.png
new file mode 100644
index 000000000..952714ebe
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Radio/whiteBall.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/NextPressed_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/NextPressed_9_9.png
new file mode 100644
index 000000000..aab3df891
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/NextPressed_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/Next_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/Next_9_9.png
new file mode 100644
index 000000000..c432068d4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/Next_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/PrevPressed_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/PrevPressed_9_9.png
new file mode 100644
index 000000000..c6eefc09c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/PrevPressed_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/Prev_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/Prev_9_9.png
new file mode 100644
index 000000000..acc2a71de
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/Prev_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/albumArt.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/albumArt.png
new file mode 100644
index 000000000..900068027
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/albumArt.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pause.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pause.png
new file mode 100644
index 000000000..71a7574d2
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pause.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pausePressed_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pausePressed_9_9.png
new file mode 100644
index 000000000..a26cf2e4e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pausePressed_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pause_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pause_9_9.png
new file mode 100644
index 000000000..417bdbf24
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/pause_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/playPressed_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/playPressed_9_9.png
new file mode 100644
index 000000000..ecbb4f2ef
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/playPressed_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/play_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/play_9_9.png
new file mode 100644
index 000000000..f185e9446
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/USB/play_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/Ambient Lighti Icon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/Ambient Lighti Icon.png
new file mode 100644
index 000000000..9b65fd5ce
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/Ambient Lighti Icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/EV Icon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/EV Icon.png
new file mode 100644
index 000000000..0607fb864
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/EV Icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/MCS Icon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/MCS Icon.png
new file mode 100644
index 000000000..1756d5fdf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/MCS Icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/SYNC Services.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/SYNC Services.png
new file mode 100644
index 000000000..361e00fd7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/SYNC Services.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/cal.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/cal.png
new file mode 100644
index 000000000..94d5d44b5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/cal.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/folders.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/folders.png
new file mode 100644
index 000000000..c5985043d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/folders.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/key_car.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/key_car.png
new file mode 100644
index 000000000..a8e5d9d66
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/key_car.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/sun.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/sun.png
new file mode 100644
index 000000000..6424d9d21
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/Vehicle/sun.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/album artRazorFish.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/album artRazorFish.png
new file mode 100644
index 000000000..80c57b4ff
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/album artRazorFish.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/keyPressed_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/keyPressed_9_9.png
new file mode 100644
index 000000000..b0f886342
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/keyPressed_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/keySelected.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/keySelected.png
new file mode 100644
index 000000000..d264e201a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/keySelected.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/key_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/key_9_9.png
new file mode 100644
index 000000000..3add8dd21
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/key_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/muteActive.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/muteActive.png
new file mode 100644
index 000000000..e14b9fb75
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/muteActive.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/muteInActive.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/muteInActive.png
new file mode 100644
index 000000000..a2c1cb831
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/muteInActive.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/mutePressed_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/mutePressed_9_9.png
new file mode 100644
index 000000000..9a9ae5934
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/mutePressed_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/mute_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/mute_9_9.png
new file mode 100644
index 000000000..f7306d96a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/mute_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/presetPressed_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/presetPressed_9_9.png
new file mode 100644
index 000000000..fd7606fbd
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/presetPressed_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/presetSelected.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/presetSelected.png
new file mode 100644
index 000000000..2b567e237
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/presetSelected.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/preset_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/preset_9_9.png
new file mode 100644
index 000000000..58c296a4e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/preset_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoomPressed_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoomPressed_9_9.png
new file mode 100644
index 000000000..c67d2c7c5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoomPressed_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoomSelected.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoomSelected.png
new file mode 100644
index 000000000..36bba93d8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoomSelected.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoom_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoom_9_9.png
new file mode 100644
index 000000000..0df4d2510
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/buttons/zoom_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/A_C icon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/A_C icon.png
new file mode 100644
index 000000000..8554ddfb4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/A_C icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/A_C iconBlack.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/A_C iconBlack.png
new file mode 100644
index 000000000..c549010d6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/A_C iconBlack.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonActive_0_0.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonActive_0_0.png
new file mode 100644
index 000000000..55e2cac50
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonActive_0_0.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonInActive_0_0.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonInActive_0_0.png
new file mode 100644
index 000000000..9f84a139e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonInActive_0_0.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonPressed_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonPressed_9_9.png
new file mode 100644
index 000000000..691f6e3bf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ButtonPressed_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/Button_9_9.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/Button_9_9.png
new file mode 100644
index 000000000..411f00393
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/Button_9_9.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/defrost icon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/defrost icon.png
new file mode 100644
index 000000000..9b0fc7aa4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/defrost icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/defrost iconBlue.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/defrost iconBlue.png
new file mode 100644
index 000000000..22e384dbc
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/defrost iconBlue.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/face icon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/face icon.png
new file mode 100644
index 000000000..72448d6aa
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/face icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/face iconBlack.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/face iconBlack.png
new file mode 100644
index 000000000..4ed608980
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/face iconBlack.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/feet icon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/feet icon.png
new file mode 100644
index 000000000..bac7bc9cf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/feet icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/feet iconBlack.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/feet iconBlack.png
new file mode 100644
index 000000000..6d7a3b7a1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/feet iconBlack.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/headed dash.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/headed dash.png
new file mode 100644
index 000000000..c46b690f7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/headed dash.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/headed dashBlue.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/headed dashBlue.png
new file mode 100644
index 000000000..cf5168b55
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/headed dashBlue.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/heated seat icon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/heated seat icon.png
new file mode 100644
index 000000000..11a32048c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/heated seat icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/heated seat iconBlack.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/heated seat iconBlack.png
new file mode 100644
index 000000000..8211eb79e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/heated seat iconBlack.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ring.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ring.png
new file mode 100644
index 000000000..9908bf71b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/ring.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/wheel icon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/wheel icon.png
new file mode 100644
index 000000000..5956f5a3d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/wheel icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/wheel iconBlack.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/wheel iconBlack.png
new file mode 100644
index 000000000..af3c2598d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/climate/wheel iconBlack.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/dn-arrow.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/dn-arrow.png
new file mode 100644
index 000000000..bb1322277
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/dn-arrow.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/g136p.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/g136p.png
new file mode 100644
index 000000000..1d49f184a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/g136p.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/g137p.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/g137p.png
new file mode 100644
index 000000000..8e674d75b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/g137p.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/arrow.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/arrow.png
new file mode 100644
index 000000000..4c215b2bf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/arrow.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/car.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/car.png
new file mode 100644
index 000000000..18a21656d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/car.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/gear.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/gear.png
new file mode 100644
index 000000000..b1eeba091
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/gear.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/notes.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/notes.png
new file mode 100644
index 000000000..8b4a92fff
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/notes.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/phone.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/phone.png
new file mode 100644
index 000000000..346f36cc3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/phone.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/snow.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/snow.png
new file mode 100644
index 000000000..54756bb2f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/menu/snow.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/DNDoff.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/DNDoff.png
new file mode 100644
index 000000000..04bb2476c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/DNDoff.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/DNDon.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/DNDon.png
new file mode 100644
index 000000000..56b9fe706
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/DNDon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/contacts.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/contacts.png
new file mode 100644
index 000000000..a16d518ba
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/contacts.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/keypad.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/keypad.png
new file mode 100644
index 000000000..1792c8fac
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/keypad.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/messages.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/messages.png
new file mode 100644
index 000000000..b5cbb8e8a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/messages.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/more.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/more.png
new file mode 100644
index 000000000..908ebf654
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/more.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/recent.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/recent.png
new file mode 100644
index 000000000..db54c2f16
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/recent.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/texts.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/texts.png
new file mode 100644
index 000000000..31c024b1d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/phone/texts.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/scrollbar.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/scrollbar.png
new file mode 100644
index 000000000..c849382ae
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/scrollbar.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/slider.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/slider.png
new file mode 100644
index 000000000..83c54f854
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/slider.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Resources/up-arrow.png b/SDL_Core/src/components/qt_hmi/References/Look/Resources/up-arrow.png
new file mode 100644
index 000000000..b0e710a40
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Resources/up-arrow.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/TextHardkey.qml b/SDL_Core/src/components/qt_hmi/References/Look/TextHardkey.qml
new file mode 100644
index 000000000..b73b99116
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/TextHardkey.qml
@@ -0,0 +1,52 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "Widgets"
+
+FHardwareKey {
+ width: 50
+ height: 50
+
+ property alias label : theText.text
+
+ Rectangle {
+ anchors.fill: parent
+ border.color: "black"
+ border.width: 1
+ radius: 10
+ smooth: true
+
+ gradient: Gradient {
+ GradientStop {
+ id: s1
+ color: "#FF646464"
+ position: 0.0
+ }
+ GradientStop {
+ id: s2
+ color: "#FF484848"
+ position: 0.8
+ }
+ GradientStop {
+ id: s3
+ color: "#FF323232"
+ position: 1.0
+ }
+ }
+ }
+
+ CondText {
+ id: theText
+ anchors.fill: parent
+ horizontalAlignment: Text.AlignHCenter
+
+ }
+
+
+ FViewUseCaseSimple {
+ condition: pressed === true
+ PropertyChanges { target: s1; position: 1.0 }
+ PropertyChanges { target: s2; position: 0.2}
+ PropertyChanges { target: s3; position: 0.0 }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/AM.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/AM.qml
new file mode 100644
index 000000000..2ed7d8085
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/AM.qml
@@ -0,0 +1,86 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: FMLayout {
+ id:home
+ albumInfoBtn.vis: false
+ albumInfoImg.visible: false
+ alertBtn.vis: false
+ browseBtn.vis: false
+ replayBtn.vis: false
+ preset1Btn.text: "WJR"
+ preset2Btn.text: "1130"
+ preset3Btn.text: "950"
+ preset4Btn.text: "WWJ"
+ preset5Btn.text: "WXYZ"
+ preset6Btn.text: "1330"
+ artistTxt.text: ""
+ stationTxt.text: ""
+ trackTxt.text: "950"
+
+
+ }
+
+
+ }
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:home.sourceBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChange" }
+ },
+ FTrgTouchArea { touchArea:home.browseBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.albumInfoBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset1Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset2Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset3Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset4Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset5Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset6Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.replayBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.tuneBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.presetsBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/AMPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/AMPCA.qml
new file mode 100644
index 000000000..9a0a99f83
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/AMPCA.qml
@@ -0,0 +1,122 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ attachedViews: ["PCAstatusBar"]
+
+
+
+
+ view: FView {
+ id: v
+
+ layout: FMLayoutPCA {
+ id:home
+ sourceBtn.text: "AM Radio"
+ freqId: "AM"
+ sourceBtn.textWidth: 100
+ curPreset: dataPool.currAMpreset
+ hdBtn.visible: false
+
+ listModel: FProxyListModel {
+ id: menuProxy
+ sourceModel: menuItemData
+ }
+ }
+
+
+ FMenuModel {
+ id: menuItemData
+ FMenuElement { id: preset1; menuText: "1130"; menuData: false; }
+ FMenuElement { id: preset2; menuText: "950"; menuData: false }
+ FMenuElement { id: preset3; menuText: "760"; menuData: true }
+ FMenuElement { id: preset4; menuText: "1270"; menuData: false }
+ FMenuElement { id: preset5; menuText: "1310"; menuData: false }
+ FMenuElement { id: preset6; menuText: "800"; menuData: false }
+ FMenuElement { id: preset7; menuText: "610"; menuData: false }
+ FMenuElement { id: preset8; menuText: "820"; menuData: false}
+ }
+ }
+
+
+
+ triggers: [
+
+
+
+ FTrgEntry{
+ FGrdCondition{condition: dataPool.currAMpreset === 1
+ FActScriptCall { onScript: home.stationTxt = "1130" }
+ }
+ FGrdCondition{condition: dataPool.currAMpreset === 2
+ FActScriptCall { onScript: home.stationTxt = "950" }
+ }
+ FGrdCondition{condition: dataPool.currAMpreset === 3
+ FActScriptCall { onScript: home.stationTxt = "760" }
+ }
+ FGrdCondition{condition: dataPool.currAMpreset === 4
+ FActScriptCall { onScript: home.stationTxt = "1270" }
+ }
+ FGrdCondition{condition: dataPool.currAMpreset === 5
+ FActScriptCall { onScript: home.stationTxt = "1310" }
+ }
+ FGrdCondition{condition: dataPool.currAMpreset === 6
+ FActScriptCall { onScript: home.stationTxt = "800" }
+ }
+ FGrdCondition{condition: dataPool.currAMpreset === 7
+ FActScriptCall { onScript: home.stationTxt = "610" }
+ }
+ FGrdCondition{condition: dataPool.currAMpreset === 8
+ FActScriptCall { onScript: home.stationTxt = "820" }
+ }
+ },
+ FTrgTouchArea { touchArea:home.sourceBtn.touchBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChangePCA" }
+ },
+ FTrgMenuElement { menuElement: preset1
+ FActScriptCall { onScript: home.stationTxt = "1130" }
+ FActScriptCall { onScript: dataPool.currAMpreset = 1 }
+ },
+ FTrgMenuElement { menuElement: preset2
+ FActScriptCall { onScript: home.stationTxt = "950" }
+ FActScriptCall { onScript: dataPool.currAMpreset = 2 }
+ },
+ FTrgMenuElement { menuElement: preset3
+ FActScriptCall { onScript: home.stationTxt = "760" }
+ FActScriptCall { onScript: dataPool.currAMpreset = 3 }
+ },
+ FTrgMenuElement { menuElement: preset4
+ FActScriptCall { onScript: home.stationTxt = "1270" }
+ FActScriptCall { onScript: dataPool.currAMpreset = 4 }
+ },
+ FTrgMenuElement { menuElement: preset5
+ FActScriptCall { onScript: home.stationTxt = "1310" }
+ FActScriptCall { onScript: dataPool.currAMpreset = 5 }
+ },
+ FTrgMenuElement { menuElement: preset6
+ FActScriptCall { onScript: home.stationTxt = "800" }
+ FActScriptCall { onScript: dataPool.currAMpreset = 6 }
+ },
+ FTrgMenuElement { menuElement: preset7
+ FActScriptCall { onScript: home.stationTxt = "610" }
+ FActScriptCall { onScript: dataPool.currAMpreset = 7 }
+ },
+ FTrgMenuElement { menuElement: preset8
+ FActScriptCall { onScript: home.stationTxt = "820" }
+ FActScriptCall { onScript: dataPool.currAMpreset = 8 }
+ },
+ FTrgListModel { id: trgList; model: menuItemData
+ FActScriptCall { onScript: { FLogger.debug("Test", trgList.element.menuText + ", index: " + trgList.index) } }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/AlphaSortPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/AlphaSortPCA.qml
new file mode 100644
index 000000000..015845111
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/AlphaSortPCA.qml
@@ -0,0 +1,151 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ attachedViews: ["PCAstatusBar"]
+
+
+
+
+ view: FView {
+ id: v
+
+ layout: AlphaSortLayout {
+ id:home
+ phonEntry: dataPool.filterPhone
+
+ }
+
+
+ }
+
+ triggers: [
+
+ FTrgEntry{
+ FActScriptCall { onScript: dataPool.filterPhone= ""}
+ },
+ FTrgTouchArea { touchArea:home.a; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "a"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.b; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "b"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.c; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "c"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.d; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "d"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.e; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "e"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.f; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "f"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.g; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "g"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.h; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "h"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.i; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "i"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.j; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "j"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.k; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "k"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.l; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "l"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.m; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "m"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.n; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "n"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.o; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "o"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.p; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "p"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.q; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "q"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.r; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "r"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.s; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "s"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.t; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "t"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.u; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "u"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.v; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "v"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.w; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "w"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.xB; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "x"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.yB; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "y"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.zB; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "z"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.num; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.filterPhone= "a"}
+ FActViewShow { view: "PhoneContactsListView" }
+ },
+ FTrgTouchArea { touchArea:home.close; touchAction: TA.Out
+
+ FActViewShow { view: "PhonePCA" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/AuxPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/AuxPCA.qml
new file mode 100644
index 000000000..478d1e55d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/AuxPCA.qml
@@ -0,0 +1,41 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: FMLayoutPCA {
+ id:home
+ sourceBtn.text: "Line In"
+ sourceBtn.textWidth: 90
+ }
+
+
+ }
+
+
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:home.sourceBtn.touchBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChangePCA" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/BT_AudioPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/BT_AudioPCA.qml
new file mode 100644
index 000000000..83a83147f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/BT_AudioPCA.qml
@@ -0,0 +1,48 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: USBLayoutPCA {
+ id:home
+ sourceBtn.text: "BT Audio"
+ sourceBtn.textWidth: 100
+ playing: true
+ }
+
+
+ }
+
+
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:home.sourceBtn.touchBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChangePCA" }
+ },
+ FTrgTouchArea { touchArea:home.play; touchAction: TA.Out
+ FActScriptCall { onScript: home.playing = false }
+ },
+ FTrgTouchArea { touchArea:home.pause; touchAction: TA.Out
+ FActScriptCall { onScript: home.playing = true }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/CDPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/CDPCA.qml
new file mode 100644
index 000000000..bc6e6ab2f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/CDPCA.qml
@@ -0,0 +1,48 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: USBLayoutPCA {
+ id:home
+ sourceBtn.text: "CD"
+ sourceBtn.textWidth: 40
+ playing: true
+ }
+
+
+ }
+
+
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:home.sourceBtn.touchBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChangePCA" }
+ },
+ FTrgTouchArea { touchArea:home.play; touchAction: TA.Out
+ FActScriptCall { onScript: home.playing = false }
+ },
+ FTrgTouchArea { touchArea:home.pause; touchAction: TA.Out
+ FActScriptCall { onScript: home.playing = true }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/Chrome.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/Chrome.qml
new file mode 100644
index 000000000..e8029fb10
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/Chrome.qml
@@ -0,0 +1,55 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 8
+
+
+
+ view: FView {
+ id: v
+
+ layout: ChromeLayout {
+ id:chrome
+ button2.indicatorState: condPool.settingsOpen
+
+ }
+
+
+ }
+
+ /*FViewUseCaseSimple{condition:condPool.settingsOpen
+ PropertyChanges {
+ target: chrome.button2; indicatorState: true
+ }
+ }*/
+
+ triggers: [
+ FTrgEntry {
+
+ },
+
+ FTrgHardwareKey { hardkeys: hk_OnOff; keyAction: HK.In
+ FActEventFire { event: closeNormalScreens }
+ FActViewShow { view: "Off" }
+ },
+ FTrgTouchArea { touchArea:chrome.button1; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:chrome.button2; touchAction: TA.Out
+ FActViewShow { view: "List" }
+ },
+ FTrgTouchArea { touchArea:chrome.button3; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/ClimatePCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/ClimatePCA.qml
new file mode 100644
index 000000000..812e6afac
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/ClimatePCA.qml
@@ -0,0 +1,74 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+
+
+ view: FView {
+ id: v
+
+ layout: ClimatePCALayout {
+ id:climate
+ dualBtnSt: condPool.dualBtnSt
+ drvHeatSeatSt: condPool.drvHeatSeatSt
+ drvCoolSeatSt: condPool.drvCoolSeatSt
+ passCoolSeatSt: condPool.passCoolSeatSt
+ passHeatSeatSt: condPool.passHeatSeatSt
+ heatWheelSt: condPool.heatWheelSt
+ heatWinSheildSt: condPool.heatWinSheildSt
+ defrostSt: condPool.defrostSt
+ pannelSt: condPool.pannelSt
+ floorSt: condPool.floorSt
+
+ }
+
+ }
+
+
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:climate.dualBtn; touchAction: TA.Out
+ FActScriptCall { onScript: condPool.dualBtnSt = !condPool.dualBtnSt }
+ },
+ FTrgTouchArea { touchArea:climate.drvHeatSeat; touchAction: TA.Out
+ FActScriptCall { onScript: condPool.drvHeatSeatSt = !condPool.drvHeatSeatSt }
+ },
+ FTrgTouchArea { touchArea:climate.drvCoolSeat; touchAction: TA.Out
+ FActScriptCall { onScript: condPool.drvCoolSeatSt = !condPool.drvCoolSeatSt }
+ },
+ FTrgTouchArea { touchArea:climate.passCoolSeat; touchAction: TA.Out
+ FActScriptCall { onScript: condPool.passCoolSeatSt = !condPool.passCoolSeatSt }
+ },
+ FTrgTouchArea { touchArea:climate.passHeatSeat; touchAction: TA.Out
+ FActScriptCall { onScript: condPool.passHeatSeatSt = !condPool.passHeatSeatSt }
+ },
+ FTrgTouchArea { touchArea:climate.heatWheel; touchAction: TA.Out
+ FActScriptCall { onScript: condPool.heatWheelSt = !condPool.heatWheelSt }
+ },
+ FTrgTouchArea { touchArea:climate.heatWinSheild; touchAction: TA.Out
+ FActScriptCall { onScript: condPool.heatWinSheildSt = !condPool.heatWinSheildSt }
+ },
+ FTrgTouchArea { touchArea:climate.defrost; touchAction: TA.Out
+ FActScriptCall { onScript: condPool.defrostSt = !condPool.defrostSt }
+ },
+ FTrgTouchArea { touchArea:climate.pannel; touchAction: TA.Out
+ FActScriptCall { onScript: condPool.pannelSt = !condPool.pannelSt }
+ },
+ FTrgTouchArea { touchArea:climate.floor; touchAction: TA.Out
+ FActScriptCall { onScript: condPool.floorSt = !condPool.floorSt }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/ControlMirror.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/ControlMirror.qml
new file mode 100644
index 000000000..4cd1472c0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/ControlMirror.qml
@@ -0,0 +1,55 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 5
+ property string dirTuneEntry: ""
+
+
+ FTimer { id: popupEnd; interval: 2500; repeat: false }
+
+ view: FView {
+ id: v
+
+ layout: ControlMirrorLayout {
+ id:home
+ }
+
+
+ }
+
+
+
+
+ triggers: [
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ },
+ FTrgEntry{
+ FActTimer { timer: popupEnd; action: TM.Start }
+ },
+ FTrgTimer{timer: popupEnd
+ FActTimer { timer: popupEnd; action: TM.Stop }
+ FActViewHide { }
+ },
+ FTrgHardwareKey { hardkeys: buttonUp; keyAction: HK.In
+ FActTimer { timer: popupEnd; action: TM.Restart }
+ // FActScriptCall { onScript: condPool.climateOnOff = true }
+ FGrdCondition { condition: dataPool.drvTemp !== 80
+ FActScriptCall { onScript: dataPool.drvTemp = (dataPool.drvTemp+1) }
+ }
+ },
+ FTrgHardwareKey { hardkeys: buttonDown; keyAction: HK.In
+ FActTimer { timer: popupEnd; action: TM.Restart }
+ // FActScriptCall { onScript: condPool.climateOnOff = true }
+ FGrdCondition { condition: dataPool.drvTemp !== 65
+ FActScriptCall { onScript: dataPool.drvTemp = (dataPool.drvTemp-1) }
+ }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/FM.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/FM.qml
new file mode 100644
index 000000000..6aa98303b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/FM.qml
@@ -0,0 +1,94 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: FMLayout {
+ id:home
+ preset1Btn.text: dataPool.fm1pre1
+ preset2Btn.text: dataPool.fm1pre2
+ preset3Btn.text: dataPool.fm1pre3
+ preset4Btn.text: dataPool.fm1pre4
+ preset5Btn.text: dataPool.fm1pre5
+ preset6Btn.text: dataPool.fm1pre6
+ trackTxt.text: dataPool.currStation
+ stationTxt.text: dataPool.currStatText
+ artistTxt.text: dataPool.currSong
+ albumInfoBtn.bitmap: dataPool.currAlbumArt
+ }
+
+
+ }
+
+
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:home.sourceBtn.touchBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChange" }
+ },
+ FTrgTouchArea { touchArea:home.browseBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.albumInfoBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset1Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre1 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat1}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song1 }
+ },
+ FTrgTouchArea { touchArea:home.preset2Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre2 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat2}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song2 }
+ },
+ FTrgTouchArea { touchArea:home.preset3Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre3 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat3}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song3 }
+ },
+ FTrgTouchArea { touchArea:home.preset4Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre4 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat4}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song4 }
+ },
+ FTrgTouchArea { touchArea:home.preset5Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre5 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat5}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song5 }
+ },
+ FTrgTouchArea { touchArea:home.preset6Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre6 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat6}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song6 }
+ },
+ FTrgTouchArea { touchArea:home.replayBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.tuneBtn.touchBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.presetsBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/FMPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/FMPCA.qml
new file mode 100644
index 000000000..1e9a46a0b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/FMPCA.qml
@@ -0,0 +1,175 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ attachedViews: ["PCAstatusBar"]
+ property int currHD: 1
+ property int totalHD: 4
+
+
+
+ view: FView {
+ id: v
+
+ layout: FMLayoutPCA {
+ id:home
+ sourceBtn.text: "FM Radio"
+ sourceBtn.textWidth: 100
+ freqId: "FM"
+ curHD: currHD
+ totHD: totalHD
+ curPreset: dataPool.currFMpreset
+
+ listModel: FProxyListModel {
+ id: menuProxy
+ sourceModel: menuItemData
+ }
+ }
+
+
+ FMenuModel {
+ id: menuItemData
+ FMenuElement { id: preset1; menuText: "96.3"; menuData: false; }
+ FMenuElement { id: preset2; menuText: "107.9"; menuData: false }
+ FMenuElement { id: preset3; menuText: "104.3"; menuData: false }
+ FMenuElement { id: preset4; menuText: "101.9"; menuData: false }
+ FMenuElement { id: preset5; menuText: "97.1"; menuData: false }
+ FMenuElement { id: preset6; menuText: "91.7"; menuData: false }
+ FMenuElement { id: preset7; menuText: "101.1"; menuData: false }
+ FMenuElement { id: preset8; menuText: "91.9"; menuData: false}
+ }
+ }
+
+
+ triggers: [
+
+ FTrgCondition{ condition: home.moving === true
+ FActScriptCall { onScript: home.page1=!home.page1 }
+ },
+ FTrgEntry{
+ FGrdCondition{condition: dataPool.currFMpreset === 1
+ FActScriptCall { onScript: home.stationTxt = "96.3" }
+ }
+ FGrdCondition{condition: dataPool.currFMpreset === 2
+ FActScriptCall { onScript: home.stationTxt = "107.9" }
+ }
+ FGrdCondition{condition: dataPool.currFMpreset === 3
+ FActScriptCall { onScript: home.stationTxt = "104.3" }
+ }
+ FGrdCondition{condition: dataPool.currFMpreset === 4
+ FActScriptCall { onScript: home.stationTxt = "101.9" }
+ }
+ FGrdCondition{condition: dataPool.currFMpreset === 5
+ FActScriptCall { onScript: home.stationTxt = "97.1" }
+ }
+ FGrdCondition{condition: dataPool.currFMpreset === 6
+ FActScriptCall { onScript: home.stationTxt = "91.7" }
+ }
+ FGrdCondition{condition: dataPool.currFMpreset === 7
+ FActScriptCall { onScript: home.stationTxt = "101.1" }
+ }
+ FGrdCondition{condition: dataPool.currFMpreset === 8
+ FActScriptCall { onScript: home.stationTxt = "91.9" }
+ }
+ },
+ FTrgTouchArea { touchArea:home.sourceBtn.touchBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChangePCA" }
+ },
+ FTrgTouchArea { touchArea:home.hdBtn.touchBtn; touchAction: TA.Out
+ FGrdCondition { condition: currHD === totalHD
+ FActScriptCall { onScript: currHD = 1 }
+ }
+ FGrdCondition { condition: currHD !== totalHD
+ FActScriptCall { onScript: currHD ++}
+ }
+ },
+ FTrgMenuElement { menuElement: preset1
+ FActScriptCall { onScript: home.stationTxt = "96.3" }
+ FActScriptCall { onScript: dataPool.currFMpreset = 1 }
+ },
+ FTrgMenuElement { menuElement: preset2
+ FActScriptCall { onScript: home.stationTxt = "107.9" }
+ FActScriptCall { onScript: dataPool.currFMpreset = 2 }
+ },
+ FTrgMenuElement { menuElement: preset3
+ FActScriptCall { onScript: home.stationTxt = "104.3" }
+ FActScriptCall { onScript: dataPool.currFMpreset = 3 }
+ },
+ FTrgMenuElement { menuElement: preset4
+ FActScriptCall { onScript: home.stationTxt = "101.9" }
+ FActScriptCall { onScript: dataPool.currFMpreset = 4 }
+ },
+ FTrgMenuElement { menuElement: preset5
+ FActScriptCall { onScript: home.stationTxt = "97.1" }
+ FActScriptCall { onScript: dataPool.currFMpreset = 5 }
+ },
+ FTrgMenuElement { menuElement: preset6
+ FActScriptCall { onScript: home.stationTxt = "91.7" }
+ FActScriptCall { onScript: dataPool.currFMpreset = 6 }
+ },
+ FTrgMenuElement { menuElement: preset7
+ FActScriptCall { onScript: home.stationTxt = "101.1" }
+ FActScriptCall { onScript: dataPool.currFMpreset = 7 }
+ },
+ FTrgMenuElement { menuElement: preset8
+ FActScriptCall { onScript: home.stationTxt = "91.9" }
+ FActScriptCall { onScript: dataPool.currFMpreset = 8 }
+ },
+ FTrgListModel { id: trgList; model: menuItemData
+ FActScriptCall { onScript: { FLogger.debug("Test", trgList.element.menuText + ", index: " + trgList.index) } }
+ },
+ /*FTrgTouchArea { touchArea:home.browseBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.albumInfoBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset1Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre1 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat1}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song1 }
+ },
+ FTrgTouchArea { touchArea:home.preset2Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre2 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat2}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song2 }
+ },
+ FTrgTouchArea { touchArea:home.preset3Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre3 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat3}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song3 }
+ },
+ FTrgTouchArea { touchArea:home.preset4Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre4 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat4}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song4 }
+ },
+ FTrgTouchArea { touchArea:home.preset5Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre5 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat5}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song5 }
+ },
+ FTrgTouchArea { touchArea:home.preset6Btn; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currStation = dataPool.fm1pre6 }
+ FActScriptCall { onScript:dataPool.currStatText = dataPool.fm1stat6}
+ FActScriptCall { onScript:dataPool.currSong=dataPool.fm1song6 }
+ },
+ FTrgTouchArea { touchArea:home.replayBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+
+ FTrgTouchArea { touchArea:home.presetsBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },*/
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/GenListHandling.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/GenListHandling.qml
new file mode 100644
index 000000000..9abdb899f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/GenListHandling.qml
@@ -0,0 +1,14 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+
+FState {
+
+
+ triggers: [
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/GridMenuPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/GridMenuPCA.qml
new file mode 100644
index 000000000..fd43775f0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/GridMenuPCA.qml
@@ -0,0 +1,87 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+
+FStateView {
+ id:sv
+ priority: 2
+
+ view: FView {
+ //viewClass: baseScreen
+ layout: TileBackImgLayoutPCA {
+ id:l
+ itemWidth: 266
+
+
+
+ listWrap: false
+ list_data: FProxyListModel {
+ id: menuProxy
+ sourceModel: menuItemData
+ }
+ list_itemWidget: GridViewImgItemWidget {
+ width: 266
+ }
+ }
+
+ FMenuModel {
+ id: menuItemData
+ FMenuElement { id: climate; menuIcon: "menu/snow.png"}
+ FMenuElement { id: phone; menuIcon: "menu/phone.png" }
+ FMenuElement { id: navigation; menuIcon: "menu/arrow.png" }
+ FMenuElement { id: myVeh; menuIcon: "menu/car.png" }
+ FMenuElement { id: entertainment; menuIcon: "menu/notes.png" }
+ FMenuElement { id: settings; menuIcon: "menu/gear.png" }
+ }
+
+ FViewUseCaseSimple { condition: sv.isInEntry
+ PropertyChanges { target: l; list_data: null }
+ }
+ }
+
+ baseBehavior: GenListHandling {}
+
+ triggers: [
+ // Example for a menu element trigger. This will only work for FMenuModels.
+ FTrgMenuElement { menuElement: climate
+ FActViewShow { view: "ClimatePCA" }
+ },
+ FTrgMenuElement { menuElement: phone
+ FActViewShow { view: "PhonePCA" }
+ },
+ FTrgMenuElement { menuElement: navigation
+ FActViewShow { view: "NavNoRoute" }
+ },
+ FTrgMenuElement { menuElement: myVeh
+ FActViewShow { view: "MyVehiclePCA" }
+ },
+ FTrgMenuElement { menuElement: entertainment
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgMenuElement { menuElement: settings
+ },
+ FTrgListModel { id: trgList; model: menuItemData
+ FActScriptCall { onScript: { FLogger.debug("Test", trgList.element.menuText + ", index: " + trgList.index) } }
+ },
+ FTrgEntry {
+ FActScriptCall { onScript: dataPool.mainPCAmenuShown = true }
+ FActScriptCall { onScript: { FLogger.debug("Test", "Entry") } }
+ },
+ FTrgEntryComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "EntryComplete") } }
+ },
+ FTrgExit {
+ FActScriptCall { onScript: dataPool.mainPCAmenuShown = false }
+ FActScriptCall { onScript: { FLogger.debug("Test", "Exit") } }
+ },
+ FTrgExitComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "ExitComplete") } }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/Home.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/Home.qml
new file mode 100644
index 000000000..3a7edc353
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/Home.qml
@@ -0,0 +1,50 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: HomeLayout {
+ id:home
+
+ }
+
+
+ }
+
+ triggers: [
+
+
+ /*FTrgHardwareKey { hardkeys: hk_OnOff; keyAction: HK.In
+ FActEventFire { event: closeNormalScreens }
+ FActViewShow { view: "Off" }
+ },*/
+ FTrgTouchArea { touchArea:home.button1; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.button2; touchAction: TA.Out
+ FActViewShow { view: "RadioEventHandling" }
+ },
+ FTrgTouchArea { touchArea:home.button3; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.button4; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/List.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/List.qml
new file mode 100644
index 000000000..5f63b7746
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/List.qml
@@ -0,0 +1,74 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+
+
+
+ view: FView {
+ id: v
+
+ layout: ListLayout {
+ id:list
+
+
+ listWrap: true
+ list_data: menuItemData
+ list_itemWidget: MenuListItemWidget { }
+
+ }
+
+
+ }
+
+ FMenuModel {
+ id: menuItemData
+ FMenuElement { id: menuAudio; menuText: "Audio Settings"; menuType: FMenuElement.Submenu
+ FMenuElement { id: menuAudio1; menuText: "Audio 1"; menuType: FMenuElement.Submenu
+ FMenuElement { id: menuAudio11; menuText: "Audio 11"; menuType: FMenuElement.Popup }
+ FMenuElement { id: menuAudio12; menuText: "Audio 12"; menuType: FMenuElement.Popup }
+ }
+ FMenuElement { id: menuAudio2; menuText: "Audio 2"; menuType: FMenuElement.Popup }
+ FMenuElement { id: menuAudio3; menuText: "Audio 3"; menuType: FMenuElement.Popup }
+ }
+ FMenuElement { id: menuVehicle; menuText: "Vehicle Settings"; menuType: FMenuElement.Submenu; isVisible: false }
+ FMenuElement { id: menuClock; menuText: "Clock Settings"; menuType: FMenuElement.Submenu }
+ FMenuElement { id: menuDisplay; menuText: "Display Settings"; menuType: FMenuElement.Submenu }
+ FMenuElement { id: menuMC; menuText: "Message Centre"; menuType: FMenuElement.Popup }
+ }
+
+ triggers: [
+ FTrgEntry {
+ FActScriptCall {onScript: condPool.settingsOpen=true}
+
+ },
+ FTrgExit {
+ FActScriptCall {onScript: condPool.settingsOpen=false}
+ },
+
+ /*FTrgHardwareKey { hardkeys: hk_OnOff; keyAction: HK.In
+ FActEventFire { event: closeNormalScreens }
+ FActViewShow { view: "Off" }
+ },*/
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ },
+
+
+ // Example for a menu element trigger. This will only work for FMenuModels.
+ FTrgMenuElement { menuElement: menuAudio
+ FActScriptCall { onScript: menuAudio.isOpened = !menuAudio.isOpened }
+ },
+ // Example to use a list model trigger. This will work for all classes derived from FAbstractListModel (E.g. TreeModel, MenuModel)
+ FTrgListModel { id: trgList; model: menuItemData
+ FActScriptCall { onScript: { FLogger.debug("Test", trgList.element.menuText + ", index: " + trgList.index) } }
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/MenuTopLevelGrid.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/MenuTopLevelGrid.qml
new file mode 100644
index 000000000..ce477a12a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/MenuTopLevelGrid.qml
@@ -0,0 +1,85 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+
+FStateView {
+ id:sv
+ priority: 2
+
+ view: FView {
+ //viewClass: baseScreen
+ layout: TC1_B1_Grid {
+ id:l
+
+
+ listWrap: false
+ list_data: FProxyListModel {
+ id: menuProxy
+ sourceModel: menuItemData
+ }
+ list_itemWidget: GridViewItemWidget {
+
+ }
+ }
+
+ FMenuModel {
+ id: menuItemData
+ FMenuElement { id: menuAudio; menuText: "AM"; menuType: FMenuElement.Submenu}
+ FMenuElement { id: menuVehicle; menuText: "FM"; menuType: FMenuElement.Submenu; isVisible: false}
+ FMenuElement { id: menuClock; menuText: "Sirius"; menuType: FMenuElement.Submenu }
+ FMenuElement { id: menuDisplay; menuText: "CD"; menuType: FMenuElement.Submenu }
+ FMenuElement { id: menuMC; menuText: "BT Audio"; menuType: FMenuElement.Popup }
+ FMenuElement { menuText: "USB"; menuType: FMenuElement.Popup }
+ FMenuElement { menuText: "Dummy 2"; menuType: FMenuElement.Popup }
+ FMenuElement { menuText: "Dummy 3"; menuType: FMenuElement.Popup }
+ FMenuElement { menuText: "Dummy 4"; menuType: FMenuElement.Popup }
+ FMenuElement { menuText: "Dummy 5"; menuType: FMenuElement.Popup }
+ FMenuElement { menuText: "Dummy 6"; menuType: FMenuElement.Popup }
+ FMenuElement { menuText: "Dummy 7"; menuType: FMenuElement.Popup }
+ FMenuElement { menuText: "Dummy 8"; menuType: FMenuElement.Popup }
+ }
+
+ FViewUseCaseSimple { condition: sv.isInEntry
+ PropertyChanges { target: l; list_data: null }
+ }
+ }
+
+ baseBehavior: GenListHandling {}
+
+ triggers: [
+ // Example for a menu element trigger. This will only work for FMenuModels.
+ FTrgMenuElement { menuElement: menuAudio
+ FGrdCondition { condition: menuAudio.isEnabled
+ FActViewShow { view: "MenuAudioSettings"; animation: "AnimWiperRight" }
+ }
+ },
+ FTrgMenuElement { menuElement: menuClock
+ FActViewShow { view: "MenuTopLevelMenu" }
+ },
+ FTrgMenuElement { menuElement: menuVehicle
+ FActViewShow { view: "MenuTopLevelMenu"; animation: "AnimWiperRight" }
+ },
+ // Example to use a list model trigger. This will work for all classes derived from FAbstractListModel (E.g. TreeModel, MenuModel)
+ FTrgListModel { id: trgList; model: menuItemData
+ FActScriptCall { onScript: { FLogger.debug("Test", trgList.element.menuText + ", index: " + trgList.index) } }
+ },
+ FTrgEntry {
+ FActScriptCall { onScript: { FLogger.debug("Test", "Entry") } }
+ },
+ FTrgEntryComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "EntryComplete") } }
+ },
+ FTrgExit {
+ FActScriptCall { onScript: { FLogger.debug("Test", "Exit") } }
+ },
+ FTrgExitComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "ExitComplete") } }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/MyVehiclePCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/MyVehiclePCA.qml
new file mode 100644
index 000000000..6ecc512b6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/MyVehiclePCA.qml
@@ -0,0 +1,85 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+
+FStateView {
+ id:sv
+ priority: 2
+
+ view: FView {
+ //viewClass: baseScreen
+ layout: TileBackImgLayoutPCA {
+ id:l
+
+
+ //useClose: true
+ listWrap: false
+ list_data: FProxyListModel {
+ id: menuProxy
+ sourceModel: menuItemData
+ }
+ list_itemWidget: GridViewImgItemWidget {
+
+ }
+ }
+
+ FMenuModel {
+ id: menuItemData
+ FMenuElement { id: ev; menuIcon: "Vehicle/EV Icon.png"}
+ FMenuElement { id: aLight; menuIcon: "Vehicle/Ambient Lighti Icon.png" }
+ FMenuElement { id: mcs; menuIcon: "Vehicle/MCS Icon.png" }
+ FMenuElement { id: weather; menuIcon: "Vehicle/sun.png" }
+ FMenuElement { id: kepad; menuIcon: "Vehicle/key_car.png" }
+ FMenuElement { id: calendar; menuIcon: "Vehicle/cal.png" }
+ FMenuElement { id: browse; menuIcon: "Vehicle/folders.png" }
+ FMenuElement { id: syncServices; menuIcon: "Vehicle/SYNC Services.png"}
+ }
+
+ FViewUseCaseSimple { condition: sv.isInEntry
+ PropertyChanges { target: l; list_data: null }
+ }
+ }
+
+ baseBehavior: GenListHandling {}
+
+ triggers: [
+ // Example for a menu element trigger. This will only work for FMenuModels.
+ FTrgMenuElement { menuElement: ev
+ },
+ FTrgMenuElement { menuElement: aLight
+ },
+ FTrgMenuElement { menuElement: mcs
+ },
+ FTrgMenuElement { menuElement: weather
+ },
+ FTrgMenuElement { menuElement: kepad
+ },
+ FTrgMenuElement { menuElement: calendar
+ },
+ FTrgMenuElement { menuElement: browse
+ },
+ FTrgMenuElement { menuElement: syncServices
+ },
+ FTrgTouchArea { touchArea:l.close; touchAction: TA.Out
+ FActViewShow { view: "GridMenuPCA" }
+ },
+ FTrgListModel { id: trgList; model: menuItemData
+ FActScriptCall { onScript: { FLogger.debug("Test", trgList.element.menuText + ", index: " + trgList.index) } }
+ },
+ FTrgEntry {
+ FActScriptCall { onScript: { FLogger.debug("Test", "Entry") } }
+ },
+ FTrgEntryComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "EntryComplete") } }
+ },
+ FTrgExit {
+ FActScriptCall { onScript: { FLogger.debug("Test", "Exit") } }
+ },
+ FTrgExitComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "ExitComplete") } }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/NavInRoute.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/NavInRoute.qml
new file mode 100644
index 000000000..e21d60a3c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/NavInRoute.qml
@@ -0,0 +1,38 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+
+
+ view: FView {
+ id: v
+
+ layout: NavInRouteLayout {
+ id:map
+
+
+ }
+
+ }
+
+
+
+ triggers: [
+ FTrgTouchArea { touchArea:map.cancel; touchAction: TA.Out
+ FActViewShow { view: "NavNoRoute" }
+ },
+ FTrgTouchArea { touchArea:map.mute; touchAction: TA.Out
+ FActScriptCall { onScript: { map.muteSt = !map.muteSt} }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/NavKeyboardPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/NavKeyboardPCA.qml
new file mode 100644
index 000000000..a3499f89d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/NavKeyboardPCA.qml
@@ -0,0 +1,159 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ attachedViews: ["PCAstatusBar"]
+
+
+ view: FView {
+ id: v
+
+ layout: NavKeyboardLayout {
+ id:nav
+ entry:dataPool.navEnrty
+ list_data:sItemData
+ list_itemWidget: VerySimpleListItemWidget {
+ vis: false
+
+ }
+ }
+
+ }
+ ListModel
+ {
+
+ id:sItemData
+ ListElement { staticItem: "Five Guys" }
+ ListElement { staticItem: "Archers Of Loaf" }
+ ListElement { staticItem: "Bob Mould" }
+ ListElement { staticItem: "Cat Power" }
+ ListElement { staticItem: "Cloud Nothings"}
+ ListElement { staticItem: "Dentist"}
+ ListElement { staticItem: "Dirty Frank's" }
+ ListElement { staticItem: "Grouplove" }
+ ListElement { staticItem: "Hudson Bell"}
+ ListElement { staticItem: "Japandroids" }
+ ListElement { staticItem: "Macklemore & Ryan Lewis"}
+ ListElement { staticItem: "The National"}
+ ListElement { staticItem: "Titus Andronicus" }
+ ListElement { staticItem: "Tito" }
+ ListElement { staticItem: "Tamal" }
+ ListElement { staticItem: "Taco" }
+
+ }
+
+ triggers: [
+
+ FTrgTouchArea { touchArea:nav.listOpen; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= ""}
+ FActViewShow { view: "NavInRoute" }
+ },
+ FTrgTouchArea { touchArea:nav.a; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"a"}
+ },
+ FTrgTouchArea { touchArea:nav.b; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"b"}
+ },
+ FTrgTouchArea { touchArea:nav.c; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"c"}
+ },
+ FTrgTouchArea { touchArea:nav.d; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"d"}
+ },
+ FTrgTouchArea { touchArea:nav.e; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"e"}
+ },
+ FTrgTouchArea { touchArea:nav.f; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"f"}
+ },
+ FTrgTouchArea { touchArea:nav.g; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"g"}
+ },
+ FTrgTouchArea { touchArea:nav.h; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"h"}
+ },
+ FTrgTouchArea { touchArea:nav.i; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"i"}
+ },
+ FTrgTouchArea { touchArea:nav.j; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"j"}
+ },
+ FTrgTouchArea { touchArea:nav.k; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"k"}
+ },
+ FTrgTouchArea { touchArea:nav.l; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"l"}
+ },
+ FTrgTouchArea { touchArea:nav.m; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"m"}
+ },
+ FTrgTouchArea { touchArea:nav.n; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"n"}
+ },
+ FTrgTouchArea { touchArea:nav.o; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"o"}
+ },
+ FTrgTouchArea { touchArea:nav.p; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"p"}
+ },
+ FTrgTouchArea { touchArea:nav.q; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"q"}
+ },
+ FTrgTouchArea { touchArea:nav.r; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"r"}
+ },
+ FTrgTouchArea { touchArea:nav.s; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"s"}
+ },
+ FTrgTouchArea { touchArea:nav.t; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"t"}
+ },
+ FTrgTouchArea { touchArea:nav.u; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"u"}
+ },
+ FTrgTouchArea { touchArea:nav.v; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"v"}
+ },
+ FTrgTouchArea { touchArea:nav.w; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"w"}
+ },
+ FTrgTouchArea { touchArea:nav.xB; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"x"}
+ },
+ FTrgTouchArea { touchArea:nav.yB; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"y"}
+ },
+ FTrgTouchArea { touchArea:nav.zB; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+"z"}
+ },
+ FTrgTouchArea { touchArea:nav.num; touchAction: TA.Out
+ },
+ FTrgTouchArea { touchArea:nav.clr; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= ""}
+ },
+ FTrgTouchArea { touchArea:nav.space; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty+" "}
+ },
+ FTrgTouchArea { touchArea:nav.del; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.navEnrty= dataPool.navEnrty.substring(0,dataPool.navEnrty.length-1)}
+ },
+ FTrgTouchArea { touchArea:nav.sym; touchAction: TA.Out
+ },
+ FTrgTouchArea { touchArea:nav.go; touchAction: TA.Out
+ FActViewShow { view: "NavInRoute" }
+ },
+ FTrgTouchArea { touchArea:nav.close; touchAction: TA.Out
+ FActViewShow { view: "NavNoRoute" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/NavMenu.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/NavMenu.qml
new file mode 100644
index 000000000..8d22aa77e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/NavMenu.qml
@@ -0,0 +1,85 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+
+FStateView {
+ id:sv
+ priority: 2
+
+ view: FView {
+ //viewClass: baseScreen
+ layout: TileBackLayoutPCA {
+ id:l
+
+
+ listWrap: false
+ list_data: FProxyListModel {
+ id: menuProxy
+ sourceModel: menuItemData
+ }
+ list_itemWidget: GridViewItemWidget {
+
+ }
+ }
+
+ FMenuModel {
+ id: menuItemData
+ FMenuElement { id: sourceAM; menuText: "Home"; }
+ FMenuElement { id: sourceFM; menuText: "Work"; }
+ FMenuElement { id: sourceCD; menuText: "Keyboard"; }
+ FMenuElement { id: sourceSat; menuText: "Recent"; }
+ FMenuElement { id: sourceBt; menuText: "Favorites"; }
+ FMenuElement { id: sourceIpod; menuText: "POI"; }
+ FMenuElement { id: sourceUSB; menuText: "Scout"; }
+ FMenuElement { id: sourceLineIn; menuText: "Waze";}
+ }
+
+ FViewUseCaseSimple { condition: sv.isInEntry
+ PropertyChanges { target: l; list_data: null }
+ }
+ }
+
+ baseBehavior: GenListHandling {}
+
+ triggers: [
+ // Example for a menu element trigger. This will only work for FMenuModels.
+ FTrgMenuElement { menuElement: sourceAM
+ },
+ FTrgMenuElement { menuElement: sourceFM
+ },
+ FTrgMenuElement { menuElement: sourceSat
+ },
+ FTrgMenuElement { menuElement: sourceCD
+ FActViewShow { view: "NavKeyboardPCA" }
+ },
+ FTrgMenuElement { menuElement: sourceBt
+ },
+ FTrgMenuElement { menuElement: sourceIpod
+ },
+ FTrgMenuElement { menuElement: sourceUSB
+ },
+ FTrgMenuElement { menuElement: sourceLineIn
+ },
+ FTrgTouchArea { touchArea:l.close; touchAction: TA.Out
+ FActViewShow { view: "NavNoRoute" }
+ },
+ FTrgListModel { id: trgList; model: menuItemData
+ FActScriptCall { onScript: { FLogger.debug("Test", trgList.element.menuText + ", index: " + trgList.index) } }
+ },
+ FTrgEntry {
+ FActScriptCall { onScript: { FLogger.debug("Test", "Entry") } }
+ },
+ FTrgEntryComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "EntryComplete") } }
+ },
+ FTrgExit {
+ FActScriptCall { onScript: { FLogger.debug("Test", "Exit") } }
+ },
+ FTrgExitComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "ExitComplete") } }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/NavNoRoute.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/NavNoRoute.qml
new file mode 100644
index 000000000..0299c182e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/NavNoRoute.qml
@@ -0,0 +1,35 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+
+
+ view: FView {
+ id: v
+
+ layout: NavNoRouteLayout {
+ id:map
+
+
+ }
+
+ }
+
+
+
+ triggers: [
+ FTrgTouchArea { touchArea:map.destSearch; touchAction: TA.Out
+ FActViewShow { view: "NavMenu" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/Off.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/Off.qml
new file mode 100644
index 000000000..3e75999c6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/Off.qml
@@ -0,0 +1,34 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 1
+
+ view: FView {
+ layout: OffLayout {
+ id:l
+ }
+ }
+
+ triggers: [
+ FTrgHardwareKey { hardkeys: hk_OnOff; keyAction: HK.In
+ FActViewShow { view: "On" }
+ },
+ FTrgTouchArea { touchArea:l.offTouch; touchAction: TA.Out
+ FActViewShow { view: "On" }
+ },
+ /*FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ },*/
+ FTrgEntry {
+ //FActScriptCall { onScript: dataPool.phoneCrnIcons = false}
+ //FActScriptCall { onScript: dataPool.phonePaired = false}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/On.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/On.qml
new file mode 100644
index 000000000..6e0953430
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/On.qml
@@ -0,0 +1,38 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 1
+
+ view: FView {
+ layout: OffLayout {
+ id:l
+ offTouch.enabled: false
+ }
+ }
+
+ triggers: [
+ FTrgEntry {
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewShow { view: "Off" }
+ },
+ FTrgHardwareKey { hardkeys: hk_OnOff; keyAction: HK.In
+ //FActViewShow { view: "Off" }
+ FActEventFire{ event: closeNormalScreens }
+ },
+ FTrgHardwareKey { hardkeys: buttonUp; keyAction: HK.In
+ FActViewShow { view: "ControlMirror" }
+ },
+ FTrgHardwareKey { hardkeys: buttonDown; keyAction: HK.In
+ FActViewShow { view: "ControlMirror" }
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/PCAstatusBar.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/PCAstatusBar.qml
new file mode 100644
index 000000000..e235f9c15
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/PCAstatusBar.qml
@@ -0,0 +1,37 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 8
+
+
+ view: FView {
+ id: v
+
+ layout: PCAstatusBarLayout {
+ id:statusBar
+
+ }
+
+ }
+
+
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:statusBar.menuTouch; touchAction: TA.Out
+ FActViewShow { view: "GridMenuPCA" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/PhoneContactsListView.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/PhoneContactsListView.qml
new file mode 100644
index 000000000..f64062f3a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/PhoneContactsListView.qml
@@ -0,0 +1,104 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+
+FStateView {
+ priority: 2
+ view: FView {
+ layout: PhoneContactsLayout {
+ id:l
+ list_data:phoneItemData
+ list_itemWidget: PhoneContactListItemWdgt {
+ itemClicked: childClicked
+
+ }
+ }
+ }
+
+ FEvent {id: browseSelected}
+
+ ListModel
+ {
+
+ id:phoneItemData
+ ListElement { staticItem: "Aaron" ; staticNumber:"(614)555-2444";type:"Mobile"}
+ ListElement { staticItem: "Adrian" ; staticNumber:"(740)245-3434";type:"Mobile" }
+ ListElement { staticItem: "Albert" ; staticNumber:"(614)245-5584";type:"Mobile" }
+ ListElement { staticItem: "Alice" ; staticNumber:"(313)878-3566";type:"Office"}
+ ListElement { staticItem: "Alec" ; staticNumber:"(917)608-2418";type:"Mobile"}
+ ListElement { staticItem: "Alexander" ; staticNumber:"(614)608-2400";type:"Home"}
+ ListElement { staticItem: "Alexander" ; staticNumber:"(614)608-2400";type:"Mobile"}
+ ListElement { staticItem: "Amber" ; staticNumber:"(614)608-2111";type:"Mobile"}
+ ListElement { staticItem: "Amy" ; staticNumber:"(440)245-3434";type:"Mobile" }
+ ListElement { staticItem: "Andy" ; staticNumber:"(313)245-3434";type:"Mobile" }
+ ListElement { staticItem: "Antje" ; staticNumber:"(567)245-3434";type:"Home" }
+ ListElement { staticItem: "Barry" ; staticNumber:"(313)555-2211";type:"Mobile" }
+ ListElement { staticItem: "Bea" ; staticNumber:"(614)455-3434";type:"Mobile" }
+ ListElement { staticItem: "Ben" ; staticNumber:"(614)882-1843";type:"Office" }
+ ListElement { staticItem: "Blake" ; staticNumber:"(330)149-7778";type:"Mobile" }
+ ListElement { staticItem: "Bob Mould" ; staticNumber:"(313)245-3434";type:"Mobile" }
+ ListElement { staticItem: "Brian" ; staticNumber:"(614)332-7499";type:"Mobile" }
+ ListElement { staticItem: "Calvin" ; staticNumber:"(614)442-9974";type:"Mobile" }
+ ListElement { staticItem: "Carl" ; staticNumber:"(567)773-3434";type:"Home" }
+ ListElement { staticItem: "Cat Power" ; staticNumber:"(313)608-3434";type:"Home"}
+ ListElement { staticItem: "Cathy" ; staticNumber:"(313)444-456";type:"Home"}
+ ListElement { staticItem: "Chris" ; staticNumber:"(734)997-6514";type:"Home" }
+ ListElement { staticItem: "Cloud Nothings"; staticNumber:"(444)608-543";type:"Mobile"}
+ ListElement { staticItem: "Cody" ; staticNumber:"(567)365-8413";type:"Home" }
+ ListElement { staticItem: "Curtis" ; staticNumber:"(614)245-1547";type:"Office" }
+ ListElement { staticItem: "Dakota" ; staticNumber:"(567)555-4444";type:"Home" }
+ ListElement { staticItem: "Dale" ; staticNumber:"(567)723-1974";type:"Mobile" }
+ ListElement { staticItem: "Dallas"; staticNumber:"(614)556-879";type:"Home"}
+ ListElement { staticItem: "Damian" ; staticNumber:"(614)245-3434";type:"Office" }
+ ListElement { staticItem: "Daniel"; staticNumber:"(614)556-879";type:"Home"}
+ ListElement { staticItem: "Darina"; staticNumber:"(313)895-888";type:"Mobile"}
+ ListElement { staticItem: "Dee "; staticNumber:"(313)432-3434";type:"Home"}
+ ListElement { staticItem: "Edward" ; staticNumber:"(917)608-975";type:"Office"}
+ ListElement { staticItem: "Ferdinand" ; staticNumber:"(917)879-795";type:"Mobile"}
+ ListElement { staticItem: "Gomez" ; staticNumber:"(313)455-543";type:"Mobile"}
+ ListElement { staticItem: "Harry Potter"; staticNumber:"(313)888-432";type:"Home"}
+ ListElement { staticItem: "Ivan"; staticNumber:"(313)996-225";type:"Home"}
+ ListElement { staticItem: "James" ; staticNumber:"(917)608-3434";type:"Mobile"}
+ ListElement { staticItem: "Karen"; staticNumber:"(313)998-332";type:"Home"}
+ ListElement { staticItem: "Luis Torres"; staticNumber:"(313)779-111";type:"Home"}
+ ListElement { staticItem: "Mary"; staticNumber:"(313)234-098";type:"Mobile"}
+ ListElement { staticItem: "Neil"; staticNumber:"(313)444-112";type:"Mobile"}
+ ListElement { staticItem: "Oswald"; staticNumber:"(313)456-921";type:"Mobile"}
+ ListElement { staticItem: "Oscar"; staticNumber:"(313)332-778";type:"Home"}
+ ListElement { staticItem: "Patrice"; staticNumber:"(313)789-111";type:"Mobile"}
+ ListElement { staticItem: "Queen Elizabeth"; staticNumber:"(313)897-666";type:"Mobile"}
+ ListElement { staticItem: "Rose"; staticNumber:"(313)111-211";type:"Mobile"}
+ ListElement { staticItem: "Susell"; staticNumber:"(313)345-122";type:"Home"}
+ ListElement { staticItem: "Susell"; staticNumber:"(313)345-122";type:"Home"}
+ ListElement { staticItem: "Thomas"; staticNumber:"(917)608-342";type:"Mobile"}
+ ListElement { staticItem: "Titus Andronicus" ; staticNumber:"(917)608-321";type:"Office"}
+ ListElement { staticItem: "Toretto" ; staticNumber:"(917)608-3434";type:"Home"}
+ ListElement { staticItem: "Uhl" ; staticNumber:"(313)444-654";type:"Office"}
+ ListElement { staticItem: "Zara" ; staticNumber:"(313)231-009";type:"Mobile"}
+
+ }
+ FEvent { id: childClicked }
+
+ triggers:[
+ FTrgEntry {
+ FActScriptCall{onScript: l.list.positionViewAtIndex(sortList.existChar(phoneItemData,dataPool.filterPhone),l.list.Beginning)}
+ },
+ FTrgTouchArea { touchArea:l.back; touchAction: TA.Out
+ FActViewShow { view: "AlphaSortPCA" }
+ },
+ FTrgEvent { id: trig2; event: childClicked
+ FActScriptCall { onScript:console.log(trig2.data) }
+ }
+
+
+
+ ]
+
+
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/PhonePCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/PhonePCA.qml
new file mode 100644
index 000000000..40969a3a6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/PhonePCA.qml
@@ -0,0 +1,85 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+
+FStateView {
+ id:sv
+ priority: 2
+
+ view: FView {
+ //viewClass: baseScreen
+ layout: TileBackImgLayoutPCA {
+ id:l
+
+ //useClose: true
+ listWrap: false
+ list_data: FProxyListModel {
+ id: menuProxy
+ sourceModel: menuItemData
+ }
+ list_itemWidget: GridViewImgItemWidget {
+
+ }
+ }
+
+ FMenuModel {
+ id: menuItemData
+ FMenuElement { id: phone; menuIcon: "menu/phone.png"}
+ FMenuElement { id: dnd; menuIcon: "phone/DNDoff.png" }
+ FMenuElement { id: phoneBook; menuIcon: "phone/contacts.png" }
+ FMenuElement { id: recent; menuIcon: "phone/recent.png" }
+ FMenuElement { id: messages; menuIcon: "phone/messages.png" }
+ FMenuElement { id: keyPad; menuIcon: "phone/keypad.png" }
+ FMenuElement { id: textMsg; menuIcon: "phone/texts.png" }
+ FMenuElement { id: more; menuIcon: "phone/more.png"}
+ }
+
+ FViewUseCaseSimple { condition: sv.isInEntry
+ PropertyChanges { target: l; list_data: null }
+ }
+ }
+
+ baseBehavior: GenListHandling {}
+
+ triggers: [
+ // Example for a menu element trigger. This will only work for FMenuModels.
+ FTrgMenuElement { menuElement: phone
+ },
+ FTrgMenuElement { menuElement: dnd
+ },
+ FTrgMenuElement { menuElement: phoneBook
+ FActViewShow { view: "AlphaSortPCA" }
+ },
+ FTrgMenuElement { menuElement: recent
+ },
+ FTrgMenuElement { menuElement: more
+ },
+ FTrgMenuElement { menuElement: messages
+ },
+ FTrgMenuElement { menuElement: keyPad
+ },
+ FTrgMenuElement { menuElement: textMsg
+ },
+ FTrgTouchArea { touchArea:l.close; touchAction: TA.Out
+ FActViewShow { view: "GridMenuPCA" }
+ },
+ FTrgListModel { id: trgList; model: menuItemData
+ FActScriptCall { onScript: { FLogger.debug("Test", trgList.element.menuText + ", index: " + trgList.index) } }
+ },
+ FTrgEntry {
+ FActScriptCall { onScript: { FLogger.debug("Test", "Entry") } }
+ },
+ FTrgEntryComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "EntryComplete") } }
+ },
+ FTrgExit {
+ FActScriptCall { onScript: { FLogger.debug("Test", "Exit") } }
+ },
+ FTrgExitComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "ExitComplete") } }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/RadioEventHandling.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/RadioEventHandling.qml
new file mode 100644
index 000000000..ef693d924
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/RadioEventHandling.qml
@@ -0,0 +1,37 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 0
+
+ view: FView {
+ layout: BlankLayout {
+ id:l
+ }
+ }
+
+ triggers: [
+ FTrgEntry {
+ FGrdCondition{ condition: dataPool.currSource==="FM"
+ FActViewShow{ view: "FMPCA"}
+ FActViewHide{}
+ }
+ FGrdCondition{ condition: dataPool.currSource==="USB"
+ FActViewShow{ view: "USB"}
+ FActViewHide{}
+ }
+ FGrdCondition{ condition: dataPool.currSource==="AM"
+ FActViewShow{ view: "AM"}
+ FActViewHide{}
+ }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/RadioEventHandlingPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/RadioEventHandlingPCA.qml
new file mode 100644
index 000000000..90bf0a801
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/RadioEventHandlingPCA.qml
@@ -0,0 +1,61 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 0
+
+ view: FView {
+ layout: BlankLayout {
+ id:l
+ }
+ }
+
+ triggers: [
+ FTrgEntry {
+ FGrdCondition{ condition: dataPool.currSource==="FM"
+ FActViewShow{ view: "FMPCA"}
+ FActViewHide{}
+ }
+ FGrdCondition{ condition: dataPool.currSource==="USB"
+ FActViewShow{ view: "USBPCA"}
+ FActViewHide{}
+ }
+ FGrdCondition{ condition: dataPool.currSource==="AM"
+ FActViewShow{ view: "AMPCA"}
+ FActViewHide{}
+ }
+ FGrdCondition{ condition: dataPool.currSource==="Sirius"
+ FActViewShow{ view: "SiriusPCA"}
+ FActViewHide{}
+ }
+ FGrdCondition{ condition: dataPool.currSource==="CD"
+ FActViewShow{ view: "CDPCA"}
+ FActViewHide{}
+ }
+ FGrdCondition{ condition: dataPool.currSource==="BT_Audio"
+ FActViewShow{ view: "BT_AudioPCA"}
+ FActViewHide{}
+ }
+ FGrdCondition{ condition: dataPool.currSource==="iPod"
+ FActViewShow{ view: "iPodPCA"}
+ FActViewHide{}
+ }
+ FGrdCondition{ condition: dataPool.currSource==="LineIn"
+ FActViewShow{ view: "AuxPCA"}
+ FActViewHide{}
+ }
+ FGrdCondition{ condition: dataPool.currSource==="SDL_Music"
+ FActViewShow{ view: "SDL_MusicPCA"}
+ FActViewHide{}
+ }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/SDL_MusicPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/SDL_MusicPCA.qml
new file mode 100644
index 000000000..a68956518
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/SDL_MusicPCA.qml
@@ -0,0 +1,48 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: USBLayoutPCA {
+ id:home
+ sourceBtn.text: "SDL Music"
+ sourceBtn.textWidth: 100
+ playing: true
+ }
+
+
+ }
+
+
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:home.sourceBtn.touchBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChangePCA" }
+ },
+ FTrgTouchArea { touchArea:home.play; touchAction: TA.Out
+ FActScriptCall { onScript: home.playing = false }
+ },
+ FTrgTouchArea { touchArea:home.pause; touchAction: TA.Out
+ FActScriptCall { onScript: home.playing = true }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/Sirius.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/Sirius.qml
new file mode 100644
index 000000000..bf16b810a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/Sirius.qml
@@ -0,0 +1,71 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: SiriusLayout {
+ id:home
+
+ }
+
+
+ }
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:home.sourceBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChange" }
+ },
+ FTrgTouchArea { touchArea:home.browseBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.albumInfoBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset1Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset2Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset3Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset4Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset5Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.preset6Btn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.replayBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.tuneBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.presetsBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/SiriusPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/SiriusPCA.qml
new file mode 100644
index 000000000..afb5c42fc
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/SiriusPCA.qml
@@ -0,0 +1,115 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: FMLayoutPCA {
+ id:home
+ sourceBtn.text: "Sirius"
+ sourceBtn.textWidth: 70
+ freqId: ""
+ curPreset: dataPool.currSATpreset
+ hdBtn.visible: false
+
+
+ listModel: FProxyListModel {
+ id: menuProxy
+ sourceModel: menuItemData
+ }
+ }
+
+
+ FMenuModel {
+ id: menuItemData
+ FMenuElement { id: preset1; menuText: "Lithium"; menuData: true; }
+ FMenuElement { id: preset2; menuText: "Spectrum"; menuData: false }
+ FMenuElement { id: preset3; menuText: "ESPN"; menuData: false }
+ FMenuElement { id: preset4; menuText: "Alt Nation"; menuData: false }
+ FMenuElement { id: preset5; menuText: "NHL"; menuData: false }
+ FMenuElement { id: preset6; menuText: "the Highway"; menuData: false }
+ FMenuElement { id: preset7; menuText: "SiriusXMU"; menuData: false }
+ FMenuElement { id: preset8; menuText: "First Wave"; menuData: false}
+ }
+ }
+
+ triggers: [
+
+ FTrgEntry{
+ FGrdCondition{condition: dataPool.currSATpreset === 1
+ FActScriptCall { onScript: home.stationTxt = "Lithium" }
+ }
+ FGrdCondition{condition: dataPool.currSATpreset === 2
+ FActScriptCall { onScript: home.stationTxt = "Spectrum" }
+ }
+ FGrdCondition{condition: dataPool.currSATpreset === 3
+ FActScriptCall { onScript: home.stationTxt = "ESPN" }
+ }
+ FGrdCondition{condition: dataPool.currSATpreset === 4
+ FActScriptCall { onScript: home.stationTxt = "Alt Nation" }
+ }
+ FGrdCondition{condition: dataPool.currSATpreset === 5
+ FActScriptCall { onScript: home.stationTxt = "NHL" }
+ }
+ FGrdCondition{condition: dataPool.currSATpreset === 6
+ FActScriptCall { onScript: home.stationTxt = "the Highway" }
+ }
+ FGrdCondition{condition: dataPool.currSATpreset === 7
+ FActScriptCall { onScript: home.stationTxt = "SiriusXMU" }
+ }
+ FGrdCondition{condition: dataPool.currSATpreset === 8
+ FActScriptCall { onScript: home.stationTxt = "First Wave" }
+ }
+ },
+ FTrgTouchArea { touchArea:home.sourceBtn.touchBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChangePCA" }
+ },
+ FTrgMenuElement { menuElement: preset1
+ FActScriptCall { onScript: home.stationTxt = "Lithium" }
+ FActScriptCall { onScript: dataPool.currSATpreset = 1 }
+ },
+ FTrgMenuElement { menuElement: preset2
+ FActScriptCall { onScript: home.stationTxt = "Spectrum" }
+ FActScriptCall { onScript: dataPool.currSATpreset = 2 }
+ },
+ FTrgMenuElement { menuElement: preset3
+ FActScriptCall { onScript: home.stationTxt = "ESPN" }
+ FActScriptCall { onScript: dataPool.currSATpreset = 3 }
+ },
+ FTrgMenuElement { menuElement: preset4
+ FActScriptCall { onScript: home.stationTxt = "Alt Nation" }
+ FActScriptCall { onScript: dataPool.currSATpreset = 4 }
+ },
+ FTrgMenuElement { menuElement: preset5
+ FActScriptCall { onScript: home.stationTxt = "NHL" }
+ FActScriptCall { onScript: dataPool.currSATpreset = 5 }
+ },
+ FTrgMenuElement { menuElement: preset6
+ FActScriptCall { onScript: home.stationTxt = "the Highway" }
+ FActScriptCall { onScript: dataPool.currSATpreset = 6 }
+ },
+ FTrgMenuElement { menuElement: preset7
+ FActScriptCall { onScript: home.stationTxt = "SiriusXMU" }
+ FActScriptCall { onScript: dataPool.currSATpreset = 7 }
+ },
+ FTrgMenuElement { menuElement: preset8
+ FActScriptCall { onScript: home.stationTxt = "First Wave" }
+ FActScriptCall { onScript: dataPool.currSATpreset = 8 }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/SourceChange.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/SourceChange.qml
new file mode 100644
index 000000000..42680f9e8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/SourceChange.qml
@@ -0,0 +1,73 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: TileBackLayout {
+ id:source
+ button1.text: "AM"
+ button2.text: "FM"
+ button3.text: "Sirius"
+ button4.text: "USB"
+ button5.text: "BT Audio"
+ button6.text: "Line In"
+ button7.vis: false
+ button8.vis: false
+ }
+
+
+ }
+
+ triggers: [
+
+
+ /*FTrgHardwareKey { hardkeys: hk_OnOff; keyAction: HK.In
+ FActEventFire { event: closeNormalScreens }
+ FActViewShow { view: "Off" }
+ },*/
+ FTrgTouchArea { touchArea:source.button1; touchAction: TA.Out
+ FActScriptCall { onScript: dataPool.currSource = "AM" }
+ FActViewShow { view: "RadioEventHandling" }
+ },
+ FTrgTouchArea { touchArea:source.button2; touchAction: TA.Out
+ FActViewShow { view: "FM" }
+ },
+ FTrgTouchArea { touchArea:source.button3; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:source.button4; touchAction: TA.Out
+ FActViewShow { view: "USB" }
+ },
+ FTrgTouchArea { touchArea:source.button5; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:source.button6; touchAction: TA.Out
+ FActViewShow { view: "RadioEventHandling" }
+ },
+ FTrgTouchArea { touchArea:source.button7; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:source.button8; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:source.backBtn; touchAction: TA.Out
+ FActViewShow { view: "RadioEventHandling" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/SourceChangePCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/SourceChangePCA.qml
new file mode 100644
index 000000000..bb87d41c2
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/SourceChangePCA.qml
@@ -0,0 +1,105 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+
+FStateView {
+ id:sv
+ priority: 2
+
+ view: FView {
+ //viewClass: baseScreen
+ layout: TileBackLayoutPCA {
+ id:l
+
+
+ listWrap: false
+ list_data: FProxyListModel {
+ id: menuProxy
+ sourceModel: menuItemData
+ }
+ list_itemWidget: GridViewItemWidget {
+
+ }
+ }
+
+ FMenuModel {
+ id: menuItemData
+ FMenuElement { id: sourceAM; menuText: "AM"; }
+ FMenuElement { id: sourceFM; menuText: "FM"; }
+ FMenuElement { id: sourceSat; menuText: "Sirius"; }
+ FMenuElement { id: sourceCD; menuText: "CD"; }
+ FMenuElement { id: sourceBt; menuText: "BT Audio"; }
+ FMenuElement { id: sourceIpod; menuText: "iPod"; }
+ FMenuElement { id: sourceUSB; menuText: "USB"; }
+ FMenuElement { id: sourceLineIn; menuText: "Line In";}
+ FMenuElement { id: sourceSDL; menuText: "SDL Music";}
+ }
+
+ FViewUseCaseSimple { condition: sv.isInEntry
+ PropertyChanges { target: l; list_data: null }
+ }
+ }
+
+ baseBehavior: GenListHandling {}
+
+ triggers: [
+ // Example for a menu element trigger. This will only work for FMenuModels.
+ FTrgMenuElement { menuElement: sourceAM
+ FActScriptCall { onScript: dataPool.currSource = "AM" }
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgMenuElement { menuElement: sourceFM
+ FActScriptCall { onScript: dataPool.currSource = "FM" }
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgMenuElement { menuElement: sourceSat
+ FActScriptCall { onScript: dataPool.currSource = "Sirius" }
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgMenuElement { menuElement: sourceCD
+ FActScriptCall { onScript: dataPool.currSource = "CD" }
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgMenuElement { menuElement: sourceBt
+ FActScriptCall { onScript: dataPool.currSource = "BT_Audio" }
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgMenuElement { menuElement: sourceIpod
+ FActScriptCall { onScript: dataPool.currSource = "iPod" }
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgMenuElement { menuElement: sourceUSB
+ FActScriptCall { onScript: dataPool.currSource = "USB" }
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgMenuElement { menuElement: sourceLineIn
+ FActScriptCall { onScript: dataPool.currSource = "LineIn" }
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgMenuElement { menuElement: sourceSDL
+ FActScriptCall { onScript: dataPool.currSource = "SDL_Music" }
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgTouchArea { touchArea:l.close; touchAction: TA.Out
+ FActViewShow { view: "RadioEventHandlingPCA" }
+ },
+ FTrgListModel { id: trgList; model: menuItemData
+ FActScriptCall { onScript: { FLogger.debug("Test", trgList.element.menuText + ", index: " + trgList.index) } }
+ },
+ FTrgEntry {
+ FActScriptCall { onScript: { FLogger.debug("Test", "Entry") } }
+ },
+ FTrgEntryComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "EntryComplete") } }
+ },
+ FTrgExit {
+ FActScriptCall { onScript: { FLogger.debug("Test", "Exit") } }
+ },
+ FTrgExitComplete {
+ FActScriptCall { onScript: { FLogger.debug("Test", "ExitComplete") } }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/Start.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/Start.qml
new file mode 100644
index 000000000..485847401
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/Start.qml
@@ -0,0 +1,43 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: StartLayout {
+ id:corner
+
+ }
+
+
+ }
+
+ triggers: [
+ FTrgEntry {
+
+ },
+
+ /*FTrgHardwareKey { hardkeys: hk_OnOff; keyAction: HK.In
+ FActEventFire { event: closeNormalScreens }
+ FActViewShow { view: "Off" }
+ },*/
+ FTrgTouchArea { touchArea:corner.button1; touchAction: TA.Out
+ FActViewShow { view: "Home" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/USB.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/USB.qml
new file mode 100644
index 000000000..8931d61ff
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/USB.qml
@@ -0,0 +1,59 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: USBLayout {
+ id:home
+
+ }
+
+
+ }
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:home.sourceBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChange" }
+ },
+ FTrgTouchArea { touchArea:home.browseBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.albumInfoBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.seekBkBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.seekFdBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.playBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.shuffleBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgTouchArea { touchArea:home.repeatBtn; touchAction: TA.Out
+ FActViewShow { view: "Start" }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/USBPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/USBPCA.qml
new file mode 100644
index 000000000..0b1b47270
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/USBPCA.qml
@@ -0,0 +1,49 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+
+ view: FView {
+ id: v
+
+ layout: USBLayoutPCA {
+ id:home
+ sourceBtn.text: "USB"
+ sourceBtn.textWidth: 50
+ playing: true
+ }
+
+
+ }
+
+
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:home.sourceBtn.touchBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChangePCA" }
+ },
+ FTrgTouchArea { touchArea:home.play; touchAction: TA.Out
+ FActScriptCall { onScript: home.playing = false }
+ },
+ FTrgTouchArea { touchArea:home.pause; touchAction: TA.Out
+ FActScriptCall { onScript: home.playing = true }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Views/iPodPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Views/iPodPCA.qml
new file mode 100644
index 000000000..f4d3f68b7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Views/iPodPCA.qml
@@ -0,0 +1,48 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Layouts"
+import "../Animations"
+import "../Widgets"
+import ".."
+
+FStateView {
+ priority: 2
+ //attachedViews: ["Chrome"]
+
+
+
+ view: FView {
+ id: v
+
+ layout: USBLayoutPCA {
+ id:home
+ sourceBtn.text: "iPod"
+ sourceBtn.textWidth: 50
+ playing: true
+ }
+
+
+ }
+
+
+
+ triggers: [
+
+
+
+ FTrgTouchArea { touchArea:home.sourceBtn.touchBtn; touchAction: TA.Out
+ FActViewShow { view: "SourceChangePCA" }
+ },
+ FTrgTouchArea { touchArea:home.play; touchAction: TA.Out
+ FActScriptCall { onScript: home.playing = false }
+ },
+ FTrgTouchArea { touchArea:home.pause; touchAction: TA.Out
+ FActScriptCall { onScript: home.playing = true }
+ },
+ FTrgEvent { event: closeNormalScreens
+ FActViewHide{}
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/FocusListViewLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/FocusListViewLayout.qml
new file mode 100644
index 000000000..2e89924a2
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/FocusListViewLayout.qml
@@ -0,0 +1,34 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ id: theLayout
+
+ property alias list : theListView
+ property alias list_itemWidget: theListView.itemWidget
+ property alias list_data: theListView.data
+ property bool listWrap: false
+
+ FWdgtListView {
+ id: theListView
+ anchors.fill: theLayout
+ clip: true
+ //interactive: false
+ highlightFollowsCurrentItem: true
+ highlightMoveDuration: 100
+ highlightMoveVelocity: -1
+ keyNavigationWraps: listWrap
+ highlight:
+ Rectangle {
+ id: focus
+ height: 51
+ width: theLayout.width
+ radius: 10
+ color: "transparent"
+ border { color: "white"; width: 2 }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewImgItemLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewImgItemLayout.qml
new file mode 100644
index 000000000..cbe173798
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewImgItemLayout.qml
@@ -0,0 +1,25 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: theItem
+ width: 200
+ height: 178
+
+ property alias bitmap : _img.bitmap
+ property alias touch: _touch
+
+
+ FWdgtImage{
+ id: _img
+ anchors.centerIn: theItem
+ }
+
+ FWdgtTouchArea{
+ id: _touch
+ anchors.fill: theItem
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewItemLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewItemLayout.qml
new file mode 100644
index 000000000..2e7712a65
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewItemLayout.qml
@@ -0,0 +1,24 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: theItem
+
+ property alias cx_text : _btn.text
+ property int indentLevel: 0
+ property alias touch: _btn.touchBtn
+ property alias pressed: _btn.pressed
+
+
+ TouchButton_PCA{
+ id: _btn
+ anchors.left: theItem.left
+ anchors.leftMargin: 10
+ anchors.top: theItem.top
+ anchors.topMargin: 10
+ textWidth: 100
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewLayout.qml
new file mode 100644
index 000000000..d5fb96246
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewLayout.qml
@@ -0,0 +1,56 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ id: theLayout
+
+ property alias list : theGridView
+ property alias list_itemWidget: theGridView.itemWidget
+ property alias list_data: theGridView.data
+ property bool listWrap: false
+ property alias gridItemHeight: theGridView.cellHeight
+ property alias gridItemWidth: theGridView.cellWidth
+
+ FWdgtGridView {
+ id: theGridView
+ anchors.fill: theLayout
+ clip: true
+ highlightFollowsCurrentItem: true
+ highlightMoveDuration: 100
+ keyNavigationWraps: listWrap
+ flow: GridView.TopToBottom
+ snapMode: GridView.SnapOneRow
+
+
+
+
+ populate: Transition {
+ id: populateTransition
+ SequentialAnimation {
+ PropertyAction { property: "opacity"; value: 0 }
+ PauseAnimation { duration: populateTransition.ViewTransition.index * 100 }
+ NumberAnimation { properties: "opacity"; from: 0; to: 1; duration: 300 }
+ }
+ }
+
+ add: Transition {
+ NumberAnimation { properties: "opacity"; from: 0; to: 1; duration: 200 }
+ }
+
+ addDisplaced: Transition {
+ NumberAnimation { properties: "x"; duration: 200 }
+ }
+
+ remove: Transition {
+ NumberAnimation { properties: "opacity"; from: 1; to: 0; duration: 200 }
+ }
+
+ removeDisplaced: Transition {
+ NumberAnimation { properties: "x"; duration: 200 }
+ }
+
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewPresetItemLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewPresetItemLayout.qml
new file mode 100644
index 000000000..9b28e961f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewPresetItemLayout.qml
@@ -0,0 +1,22 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FLayout {
+ id: theItem
+
+ property alias presetName : _preset.presetName
+ property alias presetNumber: _preset.presetNumber
+ property alias pressed: _preset.active
+ property alias touchBtn: _preset.touchBtn
+
+
+ PresetPCA{
+ id: _preset
+ anchors.horizontalCenter: theItem.horizontalCenter
+ anchors.horizontalCenterOffset: 0
+ y:20
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewPresetLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewPresetLayout.qml
new file mode 100644
index 000000000..82068b556
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/GridViewPresetLayout.qml
@@ -0,0 +1,61 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ id: theLayout
+
+ property alias list : theGridView
+ property alias list_itemWidget: theGridView.itemWidget
+ property alias list_data: theGridView.data
+ property bool listWrap: false
+ property alias gridItemHeight: theGridView.cellHeight
+ property alias gridItemWidth: theGridView.cellWidth
+ property alias curItem: theGridView.currentIndex
+ property alias moving: theGridView.moving
+ property alias direction: theGridView.flickDeceleration
+
+
+ FWdgtGridView {
+ id: theGridView
+ anchors.fill: theLayout
+ clip: true
+ highlightFollowsCurrentItem: true
+ highlightMoveDuration: 100
+ keyNavigationWraps: listWrap
+ flow: GridView.TopToBottom
+ snapMode: GridView.SnapToRow
+
+
+
+
+
+ /* populate: Transition {
+ id: populateTransition
+ SequentialAnimation {
+ PropertyAction { property: "opacity"; value: 0 }
+ PauseAnimation { duration: populateTransition.ViewTransition.index * 100 }
+ NumberAnimation { properties: "opacity"; from: 0; to: 1; duration: 300 }
+ }
+ }
+
+ add: Transition {
+ NumberAnimation { properties: "opacity"; from: 0; to: 1; duration: 200 }
+ }
+
+ addDisplaced: Transition {
+ NumberAnimation { properties: "x"; duration: 200 }
+ }
+
+ remove: Transition {
+ NumberAnimation { properties: "opacity"; from: 1; to: 0; duration: 200 }
+ }
+
+ removeDisplaced: Transition {
+ NumberAnimation { properties: "x"; duration: 200 }
+ }*/
+
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PhoneListWdgtLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PhoneListWdgtLayout.qml
new file mode 100644
index 000000000..ee2c0369f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PhoneListWdgtLayout.qml
@@ -0,0 +1,50 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+
+ id: theItem
+ height: 50; width: 50
+
+ property alias cx_text: cx.text
+ property alias cn_text: cn.text
+ property alias ct_text: ct.text
+ property alias touch:_touch
+
+ FWdgtTouchArea {
+ id: touch
+ anchors.fill: theItem
+ }
+
+ Item{
+
+
+ BaseText{
+ color:"#9deaec"
+ id: cx
+ width: 100; height: 50
+
+ }
+ BaseText{
+ color:"#9deaec"
+ id: cn
+ width: 302; height: 50
+ x:300
+ }
+
+ BaseText{
+ color:"#9deaec"
+ id: ct
+ width: 302; height: 50
+ x:500
+ }
+
+ }
+ FWdgtTouchArea {
+ id: _touch
+ height: 50; width: 600
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PresetGridLayoutPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PresetGridLayoutPCA.qml
new file mode 100644
index 000000000..c927433f1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PresetGridLayoutPCA.qml
@@ -0,0 +1,40 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ width: 800
+ height: 115
+
+ property alias m1: m1.children
+ property alias list: listView
+ property alias list_data: listView.list_data
+ property alias list_itemWidget: listView.list_itemWidget
+ property alias listWrap: listView.listWrap
+ property alias fg: _fg
+ property alias gridCurItem: listView.gridCurItem
+ property alias moving: listView.moving
+ property alias direction: listView.direction
+
+
+
+ Item {
+ id: _fg
+
+ width: 800; height: 115
+
+ GridViewPresetWidget {
+ id: listView
+ x: 0; y: 0
+ width: 800; height: 115
+ gridItemHeight: 115; gridItemWidth: 200
+
+ }
+
+ FWdgtContainer {
+ id: m1
+ width: 676; height: 115
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PresetPCALayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PresetPCALayout.qml
new file mode 100644
index 000000000..2b832f487
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/PresetPCALayout.qml
@@ -0,0 +1,40 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ id: button
+ property alias active: presetBtn.selected
+ property alias text: presetBtn.text
+ property alias touchBtn: presetBtn
+ property alias presetText: presetTxt.text
+
+
+ TouchButtonClimatePCA{
+ id: presetBtn
+ text: "X"
+ image: "buttons/preset_9_9.png"
+ imageActive: "buttons/presetSelected.png"
+ imagePressed: "buttons/presetPressed_9_9.png"
+ }
+
+ BaseText{
+ id: presetTxt
+ anchors.horizontalCenter: presetBtn.horizontalCenter
+ anchors.horizontalCenterOffset: -16
+ y:59
+ horAlignment: Text.AlignHCenter
+ text: "104.3"
+ color: "#1d81d5"
+ }
+
+ FViewUseCaseSimple{
+ condition: presetBtn.active === true
+ PropertyChanges {
+ target: presetTxt; color: "white"
+ }
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/SimpleItemWdgLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/SimpleItemWdgLayout.qml
new file mode 100644
index 000000000..d2dc8092b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/SimpleItemWdgLayout.qml
@@ -0,0 +1,24 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+
+ id: theItem
+ height: 50; width: 50
+ property bool vis: true
+
+ property alias cx_text : cx.text
+
+ Item{
+
+ FWdgtText{
+ color:"White"
+ id: cx
+ width: 302; height: 45
+ visible: vis
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TGListItemLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TGListItemLayout.qml
new file mode 100644
index 000000000..7708d3ca5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TGListItemLayout.qml
@@ -0,0 +1,50 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ id: theItem
+ height: 50; width: parent.width
+
+ property alias cx_text : cx.text
+ property alias cx_width : cx.width
+ property alias ax_width : ax.width
+ property alias ax_bitmap : ax.bitmap
+ property alias activeMarker_visible: activeMarker.visible
+ property alias touch: _touch
+ property int indentLevel: 0
+
+ Rectangle {
+ id: activeMarker
+ anchors.fill: theItem
+ height: 50
+ radius: 10
+ color: "lightgray"
+ }
+
+ Item {
+ x: 1; y: 0
+ width: 502; height: 45
+
+ BaseText {
+ id: cx
+ anchors.fill: parent
+ anchors.leftMargin: 20*indentLevel+5
+ vertAlignment: Text.AlignVCenter
+ }
+ }
+
+ FWdgtImage {
+ id: ax
+ x: 549; y: 3
+ width: 37; height: 45
+ }
+
+ FWdgtTouchArea {
+ id: _touch
+ width: 400
+ height: 50
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonBackGroundPCALayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonBackGroundPCALayout.qml
new file mode 100644
index 000000000..ff6671cef
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonBackGroundPCALayout.qml
@@ -0,0 +1,97 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ id: button
+ property string bitmap: ""
+ property bool selected: false
+ property string text: ""
+ property alias touchBtn: myButton
+ property string image: "climate/Button_9_9.png"
+ property string imageActive: "climate/ButtonActive_0_0.png"
+ property string imagePressed: "climate/ButtonPressed_9_9.png"
+ property string imageInActive: "climate/ButtonInActive_0_0.png"
+ property bool active: true
+
+
+ FWdgtImage{
+ id: img
+ x:-9
+ y:-9
+ bitmap: "Radio/PresetBtnNotSelected_9_9.png"
+ }
+
+ FWdgtImage{
+ id: imgSelected
+ x:-9
+ y:-9
+ bitmap: "Radio/PresetBtn_9_9.png"
+ visible: false
+ }
+
+ FWdgtTouchArea {
+ id: myButton
+ anchors.fill: img
+ }
+
+ Rectangle {
+ id: btnFill
+ color: "#1d81d5"
+ anchors.centerIn: myButton
+ height: 46
+ width: 46
+ radius: 23
+ visible: false
+ }
+
+ BaseText {
+ id: btnTxt
+ anchors.centerIn: myButton
+ text: button.text
+ color: "#1d81d5"
+ }
+
+
+ FViewUseCaseSimple{
+ condition: button.selected === true
+ PropertyChanges {
+ target: img; visible: false
+ }
+ PropertyChanges {
+ target: imgSelected; visible: true
+ }
+ PropertyChanges {
+ target: btnTxt; color: "white"
+ }
+ PropertyChanges {
+ target: btnFill; color: "white"
+ }
+ }
+
+
+
+ FViewUseCaseGroup{
+ FViewUseCase{condition: myButton.pressed === true
+ PropertyChanges {
+ target: btnFill; visible: true
+ }
+ PropertyChanges {
+ target: btnTxt; color: "black"
+ }
+ }
+ FViewUseCase{condition: myButton.indicatorState === true
+ /* PropertyChanges {
+ target: buttonArea; color: pressedColor
+ }*/
+ }
+ FViewUseCase{condition: myButton.pressed === false
+ PropertyChanges {
+ target: btnFill; visible: false
+ }
+ }
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonClimatePCALayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonClimatePCALayout.qml
new file mode 100644
index 000000000..c03f89c18
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonClimatePCALayout.qml
@@ -0,0 +1,143 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ id: button
+ property string bitmap: ""
+ property string bitmap2: ""
+ property bool selected: false
+ property alias touchBtn: myButton
+ property string text: ""
+ property string image: "climate/Button_9_9.png"
+ property string imageActive: "climate/ButtonActive_0_0.png"
+ property string imagePressed: "climate/ButtonPressed_9_9.png"
+ property string imageInActive: "climate/ButtonInActive_0_0.png"
+ property bool active: true
+ property string newFont: "../Fonts/HelveticaNeueLTStd-Roman.ttf"
+ property int txtSize: 24
+ property string txtColor: "#1d81d5"
+
+
+ FWdgtImage{
+ id: img
+ x:-9
+ y:-9
+ bitmap: image
+ }
+
+ FWdgtImage{
+ id: imgSelected
+ x:0
+ y:0
+ bitmap: imageActive
+ visible: false
+ }
+
+ FWdgtImage{
+ id: imgInBtn
+ anchors.centerIn: imgSelected
+ bitmap: button.bitmap
+ visible: false
+ //height: 10
+ //width: 10
+ }
+
+ BaseText {
+ id: btnTxt
+ anchors.horizontalCenter: imgSelected.horizontalCenter
+ anchors.verticalCenter: imgSelected.verticalCenter
+ //anchors.verticalCenterOffset: -1
+ vertAlignment: Text.AlignVCenter
+ horAlignment: Text.AlignHCenter
+ text: button.text
+ color: button.txtColor
+ visible: false
+ theFont: button.newFont
+ pxSize: button.txtSize
+
+ }
+
+ FWdgtTouchArea {
+ id: myButton
+ anchors.fill: imgSelected
+ }
+
+
+
+ FViewUseCaseSimple{
+ condition: button.text !== ""
+ PropertyChanges {
+ target: btnTxt; visible: true
+ }
+ }
+
+ FViewUseCaseSimple{
+ condition: button.bitmap !== ""
+ PropertyChanges {
+ target: imgInBtn; visible: true
+ }
+ }
+
+
+ FViewUseCaseGroup{
+ FViewUseCase{condition: myButton.pressed === true
+ PropertyChanges {
+ target: img; bitmap: imagePressed
+ }
+ PropertyChanges {
+ target: btnTxt; color: "black"
+ }
+ PropertyChanges {
+ target: imgInBtn; bitmap: button.bitmap2
+ }
+ }
+ FViewUseCase{
+ condition: button.active === false
+ PropertyChanges {
+ target: img; visible: false
+ }
+ PropertyChanges {
+ target: imgSelected; visible: true; bitmap: imageInActive
+ }
+ PropertyChanges {
+ target: btnTxt; color: "black"
+ }
+ PropertyChanges {
+ target: myButton; enabled: false
+ }
+ PropertyChanges {
+ target: imgInBtn; bitmap: button.bitmap2
+ }
+ }
+ FViewUseCase{
+ condition: button.selected === true
+ PropertyChanges {
+ target: img; visible: false
+ }
+ PropertyChanges {
+ target: imgSelected; visible: true
+ }
+ PropertyChanges {
+ target: btnTxt; color: "black"
+ }
+ PropertyChanges {
+ target: imgInBtn; bitmap: button.bitmap2
+ }
+ }
+ FViewUseCase{condition: myButton.pressed === false
+ PropertyChanges {
+ target: img; bitmap: image
+ }
+ PropertyChanges {
+ target: btnTxt; color: button.txtColor
+ }
+ PropertyChanges {
+ target: imgInBtn; bitmap: button.bitmap
+ }
+ }
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonPCALayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonPCALayout.qml
new file mode 100644
index 000000000..db963dc75
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonPCALayout.qml
@@ -0,0 +1,95 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ id: button
+ property string text: ""
+ property int centerWidth: 2
+ property alias touchBtn: myButton
+ property alias pressed: myButton.pressed
+
+ FWdgtImage{
+ id: img
+ x:-8
+ y:-8
+ bitmap: "Radio/ButtonEnd_8_8.png"
+ }
+
+ FWdgtImage{
+ id: img1
+ anchors.left: img.right
+ anchors.top: img.top
+ width: centerWidth
+ fillMode: Image.Stretch
+ bitmap: "Radio/ButtonCenter_0_8.png"
+ }
+
+ FWdgtImage{
+ id: img2
+ anchors.left: img1.right
+ anchors.top: img1.top
+ bitmap: "Radio/ButtonOtherEnd_8_8.png"
+ }
+
+ FWdgtTouchArea {
+ id: myButton
+ width:img1.width+44
+ height: 46
+ anchors.left: img1.left
+ anchors.leftMargin: -22
+ anchors.top: img1.top
+ anchors.topMargin: 8
+ }
+
+ Rectangle {
+ id: btnFill
+ color: "#1d81d5"
+ anchors.fill: myButton
+ radius: 23
+ border.width: 1
+ border.color: "#1d81d5"
+ visible: false
+ }
+
+ BaseText {
+ id: btnTxt
+ anchors.centerIn: btnFill
+ text: button.text
+ color: "#1d81d5"
+ visible: false
+ }
+
+
+
+ FViewUseCaseSimple{
+ condition: button.text !== ""
+ PropertyChanges {
+ target: btnTxt; visible: true
+ }
+ }
+
+ FViewUseCaseGroup{
+ FViewUseCase{condition: myButton.pressed === true
+ PropertyChanges {
+ target: btnFill; visible: true
+ }
+ PropertyChanges {
+ target: btnTxt; color: "black"
+ }
+ }
+ FViewUseCase{condition: indicatorState === true
+ /* PropertyChanges {
+ target: buttonArea; color: pressedColor
+ }*/
+ }
+ FViewUseCase{condition: myButton.pressed === false
+ PropertyChanges {
+ target: btnFill; visible: false
+ }
+ }
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonPCASpecialLayout.qml b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonPCASpecialLayout.qml
new file mode 100644
index 000000000..35b27c056
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/WidgetLayouts/TouchButtonPCASpecialLayout.qml
@@ -0,0 +1,325 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+import "../Widgets"
+
+FLayout {
+ id: button
+ property string bitmap: ""
+ property string bitmap2: ""
+ property bool vis: true
+ property string text: ""
+ property string text1: ""
+ property string text2: ""
+ property int centerWidth: 2
+ property alias touchBtn: myButton
+ property int imageShift: 0
+ property alias spacing: btnArea.spacing
+ property alias pressed: myButton.pressed
+ property int curHD: 4
+ property int totHD: 4
+
+ FWdgtImage{
+ id: img
+ x:-8
+ y:-8
+ bitmap: "Radio/ButtonEnd_8_8.png"
+ }
+
+ FWdgtImage{
+ id: img1
+ anchors.left: img.right
+ anchors.top: img.top
+ width: centerWidth
+ fillMode: Image.Stretch
+ bitmap: "Radio/ButtonCenter_0_8.png"
+ }
+
+ FWdgtImage{
+ id: img2
+ anchors.left: img1.right
+ anchors.top: img1.top
+ bitmap: "Radio/ButtonOtherEnd_8_8.png"
+ }
+
+ FWdgtTouchArea {
+ id: myButton
+ width:img1.width+44
+ height: 46
+ anchors.left: img1.left
+ anchors.leftMargin: -22
+ anchors.top: img1.top
+ anchors.topMargin: 8
+
+ }
+
+ Rectangle {
+ id: btnFill
+ color: "#1d81d5"
+ anchors.fill: myButton
+ radius: 23
+ border.width: 1
+ border.color: "#1d81d5"
+ visible: false
+ }
+
+
+ Row {
+ id: btnArea
+ anchors.fill: img1
+ anchors.left: img1.left
+ anchors.leftMargin: imageShift
+ spacing: 2
+
+
+ FWdgtImage{
+ id: btnImg
+ anchors.verticalCenter: btnArea.verticalCenter
+ bitmap: button.bitmap
+ visible: false
+ }
+
+ BaseText {
+ id: btnTxt
+ anchors.verticalCenter: btnArea.verticalCenter
+ text: button.text
+ color: "#1d81d5"
+ visible: false
+ }
+
+ BaseText {
+ id: btnTxt1
+ anchors.verticalCenter: btnArea.verticalCenter
+ text: button.text1
+ color: "white"
+ visible: false
+ theFont: "../Fonts/HelveticaNeueLTStd-Bold.ttf"
+ //boldTx: true
+ }
+
+ BaseText {
+ id: btnTxt2
+ anchors.verticalCenter: btnArea.verticalCenter
+ text: button.text2
+ color: "#1d81d5"
+ visible: false
+ }
+
+
+ }
+
+ FViewUseCaseSimple{
+ condition: button.bitmap !== ""
+ PropertyChanges {
+ target: btnImg; visible: true
+ }
+ }
+
+ FViewUseCaseSimple{
+ condition: button.text !== ""
+ PropertyChanges {
+ target: btnTxt; visible: true
+ }
+ }
+
+ FViewUseCaseSimple{
+ condition: button.text1 !== ""
+ PropertyChanges {
+ target: btnTxt1; visible: true
+ }
+ }
+
+ FViewUseCaseSimple{
+ condition: button.text2 !== ""
+ PropertyChanges {
+ target: btnTxt2; visible: true
+ }
+ }
+
+ FViewUseCaseGroup{
+ FViewUseCase{condition: myButton.pressed === true
+ PropertyChanges {
+ target: btnFill; visible: true
+ }
+ PropertyChanges {
+ target: btnTxt; color: "black"
+ }
+ PropertyChanges {
+ target: btnTxt2; color: "black"
+ }
+ PropertyChanges {
+ target: btnImg; bitmap: button.bitmap2
+ }
+ }
+ FViewUseCase{condition: indicatorState === true
+ /* PropertyChanges {
+ target: buttonArea; color: pressedColor
+ }*/
+ }
+ FViewUseCase{condition: myButton.pressed === false
+ PropertyChanges {
+ target: btnFill; visible: false
+ }
+ }
+ }
+
+
+ FViewUseCaseGroup{
+ FViewUseCase{condition: totHD === -1
+ PropertyChanges {
+ target: button; visible: true
+ }
+ }
+ FViewUseCase{condition: totHD === 0
+ PropertyChanges {
+ target: button; visible: false
+ }
+ }
+ FViewUseCase{condition: totHD === 1
+ PropertyChanges {
+ target: myButton; enabled: false
+ }
+ PropertyChanges {
+ target: btnTxt; text: ""
+ }
+ PropertyChanges {
+ target: btnTxt1; text: ""
+ }
+ PropertyChanges {
+ target: btnTxt2; text: ""
+ }
+ PropertyChanges {
+ target: img1; width: 4
+ }
+ }
+ FViewUseCase{condition: totHD === 2 && curHD === 1
+ PropertyChanges {
+ target: img1; width: 50
+ }
+ PropertyChanges {
+ target: btnTxt; text: ""
+ }
+ PropertyChanges {
+ target: btnTxt1; text: " 1"
+ }
+ PropertyChanges {
+ target: btnTxt2; text: " 2"
+ }
+ }
+ FViewUseCase{condition: totHD === 2 && curHD === 2
+ PropertyChanges {
+ target: img1; width: 50
+ }
+ PropertyChanges {
+ target: btnTxt; text: " 1 "
+ }
+ PropertyChanges {
+ target: btnTxt1; text: "2"
+ }
+ PropertyChanges {
+ target: btnTxt2; text: ""
+ }
+ }
+ FViewUseCase{condition: totHD === 3 && curHD === 1
+ PropertyChanges {
+ target: img1; width: 65
+ }
+ PropertyChanges {
+ target: btnTxt; text: ""
+ }
+ PropertyChanges {
+ target: btnTxt1; text: " 1"
+ }
+ PropertyChanges {
+ target: btnTxt2; text: " 2 3"
+ }
+ }
+ FViewUseCase{condition: totHD === 3 && curHD === 2
+ PropertyChanges {
+ target: img1; width: 65
+ }
+ PropertyChanges {
+ target: btnTxt; text: " 1 "
+ }
+ PropertyChanges {
+ target: btnTxt1; text: "2"
+ }
+ PropertyChanges {
+ target: btnTxt2; text: " 3"
+ }
+ }
+ FViewUseCase{condition: totHD === 3 && curHD === 3
+ PropertyChanges {
+ target: img1; width: 65
+ }
+ PropertyChanges {
+ target: btnTxt; text: " 1 2 "
+ }
+ PropertyChanges {
+ target: btnTxt1; text: "3"
+ }
+ PropertyChanges {
+ target: btnTxt2; text: ""
+ }
+ }
+ FViewUseCase{condition: totHD === 4 && curHD === 1
+ PropertyChanges {
+ target: img1; width: 85
+ }
+ PropertyChanges {
+ target: btnTxt; text: ""
+ }
+ PropertyChanges {
+ target: btnTxt1; text: " 1"
+ }
+ PropertyChanges {
+ target: btnTxt2; text: " 2 3 4"
+ }
+ }
+ FViewUseCase{condition: totHD === 4 && curHD === 2
+ PropertyChanges {
+ target: img1; width: 85
+ }
+ PropertyChanges {
+ target: btnTxt; text: " 1 "
+ }
+ PropertyChanges {
+ target: btnTxt1; text: "2"
+ }
+ PropertyChanges {
+ target: btnTxt2; text: " 3 4"
+ }
+ }
+ FViewUseCase{condition: totHD === 4 && curHD === 3
+ PropertyChanges {
+ target: img1; width: 85
+ }
+ PropertyChanges {
+ target: btnTxt; text: " 1 2 "
+ }
+ PropertyChanges {
+ target: btnTxt1; text: "3"
+ }
+ PropertyChanges {
+ target: btnTxt2; text: " 4"
+ }
+ }
+ FViewUseCase{condition: totHD === 4 && curHD === 4
+ PropertyChanges {
+ target: img1; width: 85
+ }
+ PropertyChanges {
+ target: btnTxt; text: " 1 2 3 "
+ }
+ PropertyChanges {
+ target: btnTxt1; text: "4"
+ }
+ PropertyChanges {
+ target: btnTxt2; text: ""
+ }
+ }
+
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/BaseText.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/BaseText.qml
new file mode 100644
index 000000000..b9bc380bd
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/BaseText.qml
@@ -0,0 +1,50 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+FWdgtText {
+ id: myText
+
+ property bool enabled: true
+ property bool secondary: false
+ property double secondaryOpacity: 0.7
+ property alias horAlignment: myText.horizontalAlignment
+ property alias vertAlignment: myText.verticalAlignment
+ property int pxSize: 24
+ property bool boldTx: false
+ property alias theFont: testFont.source
+
+ color: "white"
+ smooth: true
+
+ property alias style: _styler.style
+
+ FontLoader {
+ id: testFont; source: "../Fonts/HelveticaNeueLTStd-Roman.ttf"
+ }
+
+ font.family: testFont.name
+ font.pixelSize: pxSize
+ font.bold: boldTx
+ //horizontalAlignment: Text.AlignLeft
+ //verticalAlignment: Text.AlignTop
+
+ states: [
+ State {
+ name: "disabled"
+ when: enabled === false
+ PropertyChanges { target:myText; opacity: secondaryOpacity }
+ },
+
+ State {
+ name: "secondary"
+ when: secondary === true
+ PropertyChanges { target:myText; opacity: secondaryOpacity }
+ }
+ ]
+
+ FStyler {
+ id: _styler
+ styleTarget: myText
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/CondText.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/CondText.qml
new file mode 100644
index 000000000..7b8ae4ada
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/CondText.qml
@@ -0,0 +1,14 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+BaseText {
+ FontLoader {
+ id: testFont; source: "../Fonts/HelveticaNeueLTCom-LtCn.ttf"
+ }
+
+ font.family: testFont.name
+ font.pixelSize: 30
+
+ height: 51
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/FocusListViewWidget.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/FocusListViewWidget.qml
new file mode 100644
index 000000000..082ebdf88
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/FocusListViewWidget.qml
@@ -0,0 +1,45 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../WidgetLayouts"
+
+FWidget {
+ property alias focusNext: _focusNext
+ property alias focusPrevious: _focusPrevious
+ property alias selectElement: _selectElement
+
+ property alias list: l.list
+ property alias list_itemWidget: l.list_itemWidget
+ property alias list_data: l.list_data
+ property alias listWrap: l.listWrap
+
+ FEvent { id: _focusNext; }
+ FEvent { id: _focusPrevious; }
+ FEvent { id: _selectElement; }
+
+ layout: FocusListViewLayout {
+ id: l
+ anchors.fill: parent
+ }
+
+ triggers: [
+ FTrgEvent { event: _focusPrevious
+ FActScriptCall { onScript: {
+ l.list.decrementCurrentIndex();
+ }
+ }
+ },
+ FTrgEvent { event: _focusNext
+ FActScriptCall { onScript: {
+ l.list.incrementCurrentIndex();
+ }
+ }
+ },
+ FTrgEvent { event: _selectElement
+ FActScriptCall { onScript: {
+ list_data.selectElement(l.list.currentIndex);
+ }
+ }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewImgItemWidget.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewImgItemWidget.qml
new file mode 100644
index 000000000..f76057722
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewImgItemWidget.qml
@@ -0,0 +1,31 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+FWidget {
+ id: w
+ height: 178
+ width: 200
+
+
+
+ layout: GridViewImgItemLayout {
+ id: l
+ bitmap: menuIcon
+ }
+
+ FViewUseCaseSimple {
+ condition: isEnabled == false
+ PropertyChanges { target: l
+ opacity: 0.5
+ }
+ }
+
+ triggers: [
+ FTrgTouchArea { touchArea: l.touch; touchAction: TA.Out
+ FActScriptCall { onScript: w.GridView.view.model.selectElement(index) }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewItemWidget.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewItemWidget.qml
new file mode 100644
index 000000000..5b81d7e1b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewItemWidget.qml
@@ -0,0 +1,32 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+FWidget {
+ id: w
+ height: 55
+ width: 200
+
+
+
+ layout: GridViewItemLayout {
+ id: l
+ cx_text: menuText
+ indentLevel: 0
+ }
+
+ FViewUseCaseSimple {
+ condition: isEnabled == false
+ PropertyChanges { target: l
+ opacity: 0.5
+ }
+ }
+
+ triggers: [
+ FTrgTouchArea { touchArea: l.touch; touchAction: TA.Out
+ FActScriptCall { onScript: w.GridView.view.model.selectElement(index) }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewPresetItemWidget.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewPresetItemWidget.qml
new file mode 100644
index 000000000..fa2cb4491
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewPresetItemWidget.qml
@@ -0,0 +1,41 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+FWidget {
+ id: w
+ height: 115
+ width: 169
+
+ property int currPreset: 0
+ property bool pressed: false
+
+
+
+ layout: GridViewPresetItemLayout {
+ id: l
+ presetName: menuText
+ pressed: w.pressed
+ presetNumber: index + 1
+ }
+
+ FViewUseCaseSimple {
+ condition: isEnabled == false
+ PropertyChanges { target: l
+ opacity: 0.5
+ }
+ }
+
+ FViewUseCaseSimple {
+ condition: w.currPreset===index+1
+ PropertyChanges { target: w; pressed: true}
+ }
+
+ triggers: [
+ FTrgTouchArea { touchArea: l.touchBtn.touchBtn; touchAction: TA.Out
+ FActScriptCall { onScript: w.GridView.view.model.selectElement(index) }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewPresetWidget.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewPresetWidget.qml
new file mode 100644
index 000000000..f232bf2c6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewPresetWidget.qml
@@ -0,0 +1,35 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../WidgetLayouts"
+
+FWidget {
+
+ property alias selectElement: _selectElement
+ property alias list: l.list
+ property alias list_itemWidget: l.list_itemWidget
+ property alias list_data: l.list_data
+ property alias listWrap: l.listWrap
+ property alias gridItemHeight: l.gridItemHeight
+ property alias gridItemWidth: l.gridItemWidth
+ property alias gridCurItem: l.curItem
+ property alias moving: l.moving
+ property alias direction: l.direction
+
+
+ FEvent { id: _selectElement; }
+
+ layout: GridViewPresetLayout {
+ id: l
+ anchors.fill: parent
+ }
+
+ triggers: [
+ FTrgEvent { event: _selectElement
+ FActScriptCall { onScript: {
+ list_data.selectElement(l.list.currentIndex);
+ }
+ }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewWidget.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewWidget.qml
new file mode 100644
index 000000000..cfbba6253
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/GridViewWidget.qml
@@ -0,0 +1,31 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../WidgetLayouts"
+
+FWidget {
+
+ property alias selectElement: _selectElement
+ property alias list: l.list
+ property alias list_itemWidget: l.list_itemWidget
+ property alias list_data: l.list_data
+ property alias listWrap: l.listWrap
+ property alias gridItemHeight: l.gridItemHeight
+ property alias gridItemWidth: l.gridItemWidth
+
+ FEvent { id: _selectElement; }
+
+ layout: GridViewLayout {
+ id: l
+ anchors.fill: parent
+ }
+
+ triggers: [
+ FTrgEvent { event: _selectElement
+ FActScriptCall { onScript: {
+ list_data.selectElement(l.list.currentIndex);
+ }
+ }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/MenuListItemWidget.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/MenuListItemWidget.qml
new file mode 100644
index 000000000..48b3bff4a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/MenuListItemWidget.qml
@@ -0,0 +1,48 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+FWidget {
+ id: w
+ height: 50
+
+ layout: TGListItemLayout {
+ id: l
+ anchors.fill: parent
+ ax_bitmap: ""
+ cx_text: menuText
+ activeMarker_visible: false
+ indentLevel: level
+ }
+
+ FViewUseCaseSimple {
+ condition: isEnabled == false
+ PropertyChanges { target: l
+ opacity: 0.5
+ }
+ }
+
+ FViewUseCaseGroup {
+ FViewUseCase {
+ condition: menuType == FMenuElement.Popup
+ PropertyChanges { target: l
+ ax_bitmap: "../Resources/g137p.png"
+ }
+ }
+
+ FViewUseCase {
+ condition: menuType == FMenuElement.Submenu
+ PropertyChanges { target: l
+ ax_bitmap: "../Resources/g136p.png"
+ }
+ }
+ }
+
+ triggers: [
+ FTrgTouchArea { touchArea: l.touch; touchAction: TA.In
+ FActScriptCall { onScript: w.ListView.view.model.selectElement(index) }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/MenuSubmenuListItemWidget.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/MenuSubmenuListItemWidget.qml
new file mode 100644
index 000000000..df9632906
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/MenuSubmenuListItemWidget.qml
@@ -0,0 +1,60 @@
+// import QtQuick 2.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+FWidget {
+ height: 50
+
+ layout: TGListItemLayout {
+ id: l
+ anchors.fill: parent
+ ax_bitmap: ""
+ cx_text: menuItem
+ activeMarker_visible: false
+ }
+
+ FViewUseCaseGroup {
+ FViewUseCase {
+ condition: type === "popup"
+ PropertyChanges { target: l
+ ax_bitmap: "../Resources/g137p.png"
+ }
+
+ }
+
+ FViewUseCase {
+ condition: type === "arrow"
+ PropertyChanges { target: l
+ ax_bitmap: "../Resources/g136p.png"
+ }
+ }
+
+ FViewUseCase {
+ condition: type === "tickboxChecked"
+ PropertyChanges { target: l
+ gx_bitmap: "../Resources/g134p.png"
+ cx_width: ++ax_width
+ }
+ }
+
+ FViewUseCase {
+ condition: type === "tickboxUnchecked"
+ PropertyChanges { target: l
+ gx_bitmap: "../Resources/g135p.png"
+ cx_width: ++ax_width
+ }
+ }
+
+
+ FViewUseCase {
+ condition: type === ""
+ PropertyChanges { target: l
+ visible: true
+ ax_bitmap: ""
+ cx_width: ++(ax_width+gx_width)
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/PhoneContactListItemWdgt.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/PhoneContactListItemWdgt.qml
new file mode 100644
index 000000000..d357c50dc
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/PhoneContactListItemWdgt.qml
@@ -0,0 +1,28 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+
+FWidget {
+ id: w
+ height: 50
+
+ property FEvent itemClicked
+
+ layout: PhoneListWdgtLayout {
+ anchors.fill: parent
+ id: l
+ cx_text: staticItem
+ cn_text: staticNumber
+ ct_text: type
+ }
+ triggers: [
+ FTrgTouchArea { touchArea: l.touch; touchAction: TA.Out
+ FActEventFire{ event: itemClicked; data: index }
+ FActScriptCall { onScript: console.log(staticItem) }
+ }
+ ]
+
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/PresetPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/PresetPCA.qml
new file mode 100644
index 000000000..a575ff91e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/PresetPCA.qml
@@ -0,0 +1,27 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+FWidget {
+
+ id:pcaButton
+
+ property alias active: button.active
+ property alias presetNumber: button.text
+ property alias presetName: button.presetText
+ property alias touchBtn: button.touchBtn
+
+
+ clip: false
+
+
+
+ layout: PresetPCALayout{
+ id:button
+ }
+
+
+
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/PresetsGridPCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/PresetsGridPCA.qml
new file mode 100644
index 000000000..b23375f88
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/PresetsGridPCA.qml
@@ -0,0 +1,48 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+
+
+FWidget {
+ id:sv
+ property int currPreset: 2
+ property alias listModel: l.list_data
+ property alias gridCurItem: l.gridCurItem
+ property alias moving: l.moving
+ property alias direction: l.direction
+
+
+ layout: PresetGridLayoutPCA {
+ id:l
+
+
+ listWrap: false
+ list_data: FProxyListModel {
+ id: menuProxy
+ sourceModel: menuItemData
+ }
+ list_itemWidget: GridViewPresetItemWidget {
+ currPreset: sv.currPreset
+ }
+ }
+
+ FMenuModel {
+ id: menuItemData
+ FMenuElement { id: preset1; menuText: "96.3"; menuData: false; }
+ FMenuElement { id: preset2; menuText: "107.9"; menuData: true }
+ FMenuElement { id: preset3; menuText: "104.3"; menuData: false }
+ FMenuElement { id: preset4; menuText: "101.9"; menuData: false }
+ FMenuElement { id: preset5; menuText: "97.1"; menuData: false }
+ FMenuElement { id: preset6; menuText: "91.7"; menuData: false }
+ FMenuElement { id: preset7; menuText: "101.1"; menuData: false }
+ FMenuElement { id: preset8; menuText: "91.9"; menuData: false}
+ }
+
+ FViewUseCaseSimple { condition: sv.isInEntry
+ PropertyChanges { target: l; list_data: null }
+ }
+
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/ScrollBar.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/ScrollBar.qml
new file mode 100644
index 000000000..b1f67d043
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/ScrollBar.qml
@@ -0,0 +1,78 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+Item {
+ id: scrollbar
+ property variant target
+
+ clip: true
+
+ //anchors {top: target.top; bottom: target.bottom; right: target.right }
+ visible: (track.height == slider.height) ? false : true //TODO: !visible -> width: 0 (but creates a binding loop)
+
+ Timer {
+ property int scrollAmount
+
+ id: timer
+ repeat: true
+ interval: 20
+ onTriggered: {
+ target.contentY = Math.max(
+ 0, Math.min(
+ target.contentY + scrollAmount,
+ target.contentHeight - target.height));
+ }
+ }
+
+ MouseArea {
+ anchors.fill: scrollbar
+ onPressed: {
+ timer.scrollAmount = target.height * (mouseY < slider.y ? -1 : 1) // scroll by a page
+ timer.running = true;
+ }
+ onReleased: {
+ timer.running = false;
+ }
+ }
+
+ Rectangle {
+ id: track
+
+ color: "red"
+ opacity: 0.3
+ radius: 2
+ smooth: true
+
+ anchors.top: scrollbar.top
+ anchors.bottom: scrollbar.bottom
+ anchors.horizontalCenter: scrollbar.horizontalCenter
+ width: 3
+ }
+
+ Rectangle {
+ id:slider
+
+ width: scrollbar.width
+ color: "red"
+ opacity: 0.7
+ radius: 4
+ smooth: true
+
+ height: Math.min(target.height / target.contentHeight * track.height, track.height)
+ y: target.visibleArea.yPosition * track.height
+
+ MouseArea {
+ anchors.fill: parent
+ drag.target: parent
+ drag.axis: Drag.YAxis
+ drag.minimumY: 0
+ drag.maximumY: track.height - height
+
+ onPositionChanged: {
+ if (pressedButtons == Qt.LeftButton) {
+ target.contentY = slider.y * target.contentHeight / track.height
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton.qml
new file mode 100644
index 000000000..c05e1ab52
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton.qml
@@ -0,0 +1,77 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+
+FWdgtTouchArea {
+ id: button
+
+ property string text: "Text"
+ property string bitmap: ""
+ property int wrapText: Text.NoWrap
+ property bool indicatorState: false
+ property string unpressedColor: "gray"
+ property string pressEventColor: "lightGray"
+ property string pressedColor: "darkGray"
+ property bool vis: true
+
+
+ width: 120
+ height: 40
+ enabled: button.vis
+
+
+
+ Rectangle {
+ id: buttonArea
+ radius: 10
+ anchors.centerIn: parent
+ width: button.width
+ height: button.height
+ color: "gray"
+ visible: button.vis
+
+ BaseText {
+ id: st
+ anchors.centerIn: parent
+ text: button.text
+ wrapMode: wrapText
+ visible: button.vis
+ }
+
+ FWdgtImage{
+ id: img
+ anchors.fill: buttonArea
+ bitmap: button.bitmap
+ visible: false
+ }
+
+
+ }
+
+ FViewUseCaseSimple{
+ condition: button.bitmap !== ""
+ PropertyChanges {
+ target: img; visible: true
+ }
+ }
+
+ FViewUseCaseGroup{
+ FViewUseCase{condition: pressed === true
+ PropertyChanges {
+ target: buttonArea; color: pressEventColor
+ }
+ }
+ FViewUseCase{condition: indicatorState === true
+ PropertyChanges {
+ target: buttonArea; color: pressedColor
+ }
+ }
+ FViewUseCase{condition: pressed === false
+ PropertyChanges {
+ target: buttonArea; color: unpressedColor
+ }
+ }
+ }
+
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton2.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton2.qml
new file mode 100644
index 000000000..2f3ca939a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton2.qml
@@ -0,0 +1,32 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import QtGraphicalEffects 1.0
+import "../Widgets"
+
+
+
+Item {
+ width: 160
+ height: 45
+
+ RectangularGlow {
+ id: effect
+ anchors.fill: rect
+ glowRadius: 10
+ spread: 0.2
+ color: "#1d81d5"
+ cornerRadius: rect.radius + glowRadius
+ }
+
+ Rectangle {
+ id: rect
+ color: "black"
+ anchors.centerIn: parent
+ width: 160
+ height: 45
+ radius: 25
+ border.color: "#1d81d5"
+ }
+}
+
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonBackGround_PCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonBackGround_PCA.qml
new file mode 100644
index 000000000..6dbd6b125
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonBackGround_PCA.qml
@@ -0,0 +1,27 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+FWidget {
+
+ id:pcaButton
+
+ property alias bitmap:button.bitmap
+ property alias active: button.selected
+ property alias text: button.text
+ property alias touchBtn: button.touchBtn
+
+
+ clip: false
+
+
+
+ layout: TouchButtonBackGroundPCALayout{
+ id:button
+ }
+
+
+
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonClimatePCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonClimatePCA.qml
new file mode 100644
index 000000000..401e53820
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonClimatePCA.qml
@@ -0,0 +1,38 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+FWidget {
+
+ id:pcaButton
+
+ property alias bitmap: button.bitmap
+ property alias bitmap2: button.bitmap2
+ property alias selected: button.selected
+ property alias touchBtn: button.touchBtn
+ property alias text: button.text
+ property alias image: button.image
+ property alias imageActive: button.imageActive
+ property alias imagePressed: button.imagePressed
+ property alias imageInActive: button.imageInActive
+ property alias active: button.active
+ property alias newFont: button.newFont
+ property alias txtSize: button.txtSize
+ property alias txtColor: button.txtColor
+
+
+ height: 80
+ width: 80
+ clip: false
+
+
+
+ layout: TouchButtonClimatePCALayout{
+ id:button
+ }
+
+
+
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonSpecial_PCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonSpecial_PCA.qml
new file mode 100644
index 000000000..e48c5f276
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButtonSpecial_PCA.qml
@@ -0,0 +1,34 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+FWidget {
+
+ id:pcaButton
+
+ property alias bitmap:button.bitmap
+ property alias bitmap2: button.bitmap2
+ property alias text: button.text
+ property alias text1: button.text1
+ property alias text2:button.text2
+ property alias textWidth: button.centerWidth
+ property alias touchBtn: button.touchBtn
+ property alias imageShift: button.imageShift
+ property alias spacing: button.spacing
+ property alias pressed: button.pressed
+ property alias curHD: button.curHD
+ property alias totHD: button.totHD
+ width: 164
+ clip: false
+
+
+
+ layout: TouchButtonPCASpecialLayout{
+ id:button
+ }
+
+
+
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton_PCA.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton_PCA.qml
new file mode 100644
index 000000000..e46dbf28c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/TouchButton_PCA.qml
@@ -0,0 +1,27 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+FWidget {
+
+ id:pcaButton
+
+
+ property alias text: button.text
+ property alias textWidth: button.centerWidth
+ property alias touchBtn: button.touchBtn
+ property alias pressed: button.pressed
+ width: textWidth+44
+ clip: false
+
+
+
+ layout: TouchButtonPCALayout{
+ id:button
+ }
+
+
+
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/Widgets/VerySimpleListItemWidget.qml b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/VerySimpleListItemWidget.qml
new file mode 100644
index 000000000..42049240f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/Widgets/VerySimpleListItemWidget.qml
@@ -0,0 +1,18 @@
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+import "../Widgets"
+import "../WidgetLayouts"
+
+
+FWidget {
+ id: w
+ height: 50
+ property alias vis: l.vis
+
+ layout: SimpleItemWdgLayout {
+ anchors.fill: parent
+ id: l
+ cx_text: staticItem
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/QtHMIFrameworkd.pdb b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/QtHMIFrameworkd.pdb
new file mode 100644
index 000000000..b6a4d3183
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/QtHMIFrameworkd.pdb
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/plugin.qmltypes b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/plugin.qmltypes
new file mode 100644
index 000000000..b03753aa5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/plugin.qmltypes
@@ -0,0 +1,682 @@
+import QtQuick.tooling 1.1
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated with the command 'C:\Qt\Qt5.0.1\5.0.1\msvc2010\bin\qmlplugindump.exe -notrelocatable com.ford.hmiframework 1.0 C:\HMIRepository\trunk\Framework\QtHMIFramework\output'.
+
+Module {
+ Component {
+ name: "FAbstractListElement"
+ prototype: "QObject"
+ exports: ["com.ford.hmiframework/FAbstractListElement 1.0"]
+ Signal {
+ name: "elementSelected"
+ Parameter { name: "element"; type: "FAbstractListElement"; isPointer: true }
+ }
+ Method { name: "selectElement" }
+ }
+ Component {
+ name: "FAbstractListModel"
+ prototype: "QAbstractListModel"
+ exports: ["com.ford.hmiframework/FAbstractListModel 1.0"]
+ Signal {
+ name: "elementSelected"
+ Parameter { type: "FAbstractListElement"; isPointer: true }
+ Parameter { type: "int" }
+ }
+ }
+ Component {
+ name: "FActAnimControl"
+ prototype: "FAction"
+ exports: ["com.ford.hmiframework/FActAnimControl 1.0"]
+ Property { name: "animation"; type: "FAnimation"; isPointer: true }
+ Property { name: "animAction"; type: "int" }
+ }
+ Component {
+ name: "FActEventFire"
+ prototype: "FAction"
+ exports: ["com.ford.hmiframework/FActEventFire 1.0"]
+ Property { name: "event"; type: "FEvent"; isPointer: true }
+ Property { name: "data"; type: "QVariant" }
+ }
+ Component {
+ name: "FActFunction"
+ defaultProperty: "actions"
+ prototype: "FAction"
+ exports: ["com.ford.hmiframework/FActFunction 1.0"]
+ Property { name: "data"; type: "QVariant" }
+ Property { name: "actions"; type: "FAction"; isList: true; isReadonly: true }
+ }
+ Component {
+ name: "FActFunctionCall"
+ prototype: "FAction"
+ exports: ["com.ford.hmiframework/FActFunctionCall 1.0"]
+ Property { name: "func"; type: "FActFunction"; isPointer: true }
+ Property { name: "data"; type: "QVariant" }
+ }
+ Component {
+ name: "FActHistoryClear"
+ prototype: "FAction"
+ exports: ["com.ford.hmiframework/FActHistoryClear 1.0"]
+ Property { name: "queue"; type: "string" }
+ }
+ Component {
+ name: "FActHistoryPop"
+ prototype: "FAction"
+ exports: ["com.ford.hmiframework/FActHistoryPop 1.0"]
+ Property { name: "queue"; type: "string" }
+ }
+ Component {
+ name: "FActHistoryPush"
+ prototype: "FAction"
+ exports: ["com.ford.hmiframework/FActHistoryPush 1.0"]
+ Property { name: "queue"; type: "string" }
+ Property { name: "animation"; type: "string" }
+ Property { name: "data"; type: "QVariant" }
+ }
+ Component {
+ name: "FActHistoryShow"
+ prototype: "FAction"
+ exports: ["com.ford.hmiframework/FActHistoryShow 1.0"]
+ Property { name: "queue"; type: "string" }
+ Property { name: "animation"; type: "string" }
+ Property { name: "skipMe"; type: "bool" }
+ }
+ Component {
+ name: "FActViewHide"
+ prototype: "FAction"
+ exports: ["com.ford.hmiframework/FActViewHide 1.0"]
+ Property { name: "view"; type: "string" }
+ Property { name: "animation"; type: "string" }
+ }
+ Component {
+ name: "FActViewShow"
+ prototype: "FAction"
+ exports: ["com.ford.hmiframework/FActViewShow 1.0"]
+ Property { name: "view"; type: "string" }
+ Property { name: "animation"; type: "string" }
+ Property { name: "data"; type: "QVariant" }
+ }
+ Component {
+ name: "FAction"
+ prototype: "FMetaInfoObject"
+ exports: ["com.ford.hmiframework/FAction 1.0"]
+ Property { name: "passed"; type: "bool" }
+ Signal { name: "execute" }
+ Method { name: "getDisplay"; type: "FDisplay*" }
+ Method { name: "getStateView"; type: "FStateView*" }
+ }
+ Component {
+ name: "FAnimView"
+ defaultProperty: "data"
+ prototype: "FAnimation"
+ exports: ["com.ford.hmiframework/FAnimView 1.0"]
+ Property { name: "inView"; type: "FStateView"; isPointer: true }
+ Property { name: "outView"; type: "FStateView"; isPointer: true }
+ Property { name: "ingoing"; type: "FLayout"; isReadonly: true; isPointer: true }
+ Property { name: "outgoing"; type: "FLayout"; isReadonly: true; isPointer: true }
+ }
+ Component {
+ name: "FAnimation"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["com.ford.hmiframework/FAnimation 1.0"]
+ Property { name: "isRunning"; type: "bool"; isReadonly: true }
+ Signal {
+ name: "animationComplete"
+ Parameter { name: "anim"; type: "FAnimation"; isPointer: true }
+ }
+ }
+ Component {
+ name: "FAnimationCoordinator"
+ defaultProperty: "defaultAnims"
+ prototype: "FMetaInfoObject"
+ exports: ["com.ford.hmiframework/FAnimationCoordinator 1.0"]
+ Property { name: "defaultAnims"; type: "FDefaultAnimation"; isList: true; isReadonly: true }
+ }
+ Component {
+ name: "FDefaultAnimation"
+ prototype: "FMetaInfoObject"
+ exports: ["com.ford.hmiframework/FDefaultAnimation 1.0"]
+ Property { name: "from"; type: "FViewClass"; isPointer: true }
+ Property { name: "to"; type: "FViewClass"; isPointer: true }
+ Property { name: "animation"; type: "string" }
+ }
+ Component {
+ name: "FDisplay"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["com.ford.hmiframework/FDisplay 1.0"]
+ Property { name: "xPixel"; type: "int" }
+ Property { name: "yPixel"; type: "int" }
+ Property { name: "initialView"; type: "string" }
+ Property { name: "initialAnim"; type: "string" }
+ Property { name: "modelPath"; type: "QUrl" }
+ Property { name: "activeVariant"; type: "string" }
+ Property { name: "priorityLayerCount"; type: "int" }
+ Property { name: "minPriority"; type: "int" }
+ Property { name: "priorityLayerDebug"; type: "QStringList"; isReadonly: true }
+ Property { name: "viewCacheSize"; type: "int" }
+ Signal { name: "preStartInit" }
+ Method {
+ name: "animationCompleted"
+ Parameter { type: "FAnimation"; isPointer: true }
+ }
+ Method { name: "updateDebugInformation" }
+ }
+ Component {
+ name: "FEvent"
+ prototype: "FMetaInfoObject"
+ exports: ["com.ford.hmiframework/FEvent 1.0"]
+ Signal {
+ name: "fire"
+ Parameter { name: "data"; type: "QVariant" }
+ }
+ Method {
+ name: "doFire"
+ Parameter { name: "data"; type: "QVariant" }
+ }
+ }
+ Component {
+ name: "FGrdCondition"
+ defaultProperty: "actions"
+ prototype: "FGuard"
+ exports: ["com.ford.hmiframework/FGrdCondition 1.0"]
+ Property { name: "condition"; type: "bool" }
+ }
+ Component {
+ name: "FGuard"
+ defaultProperty: "actions"
+ prototype: "FAction"
+ exports: ["com.ford.hmiframework/FGuard 1.0"]
+ Property { name: "actions"; type: "FAction"; isList: true; isReadonly: true }
+ }
+ Component {
+ name: "FHardwareControl"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["com.ford.hmiframework/FHardwareControl 1.0"]
+ Property { name: "hardwareControlID"; type: "string" }
+ Signal {
+ name: "checkKeyPressed"
+ Parameter { name: "key"; type: "int" }
+ }
+ Signal {
+ name: "checkKeyReleased"
+ Parameter { name: "key"; type: "int" }
+ }
+ Method {
+ name: "sendHardwareControlEvent"
+ Parameter { name: "data"; type: "int" }
+ }
+ }
+ Component {
+ name: "FHardwareKey"
+ defaultProperty: "data"
+ prototype: "FHardwareControl"
+ exports: ["com.ford.hmiframework/FHardwareKey 1.0"]
+ Property { name: "pressed"; type: "bool" }
+ Property { name: "keyboardKey"; type: "int" }
+ Property { name: "longPressMSec"; type: "int" }
+ Property { name: "repeatDelayMSec"; type: "int" }
+ Property { name: "repeatIntervalMSec"; type: "int" }
+ }
+ Component {
+ name: "FHardwareRotary"
+ defaultProperty: "knob"
+ prototype: "FHardwareControl"
+ exports: ["com.ford.hmiframework/FHardwareRotary 1.0"]
+ Property { name: "knob"; type: "QQuickItem"; isPointer: true }
+ Property { name: "stepsPerRotation"; type: "int" }
+ Property { name: "currentAbsPosition"; type: "int" }
+ Property { name: "currentRelPosition"; type: "int" }
+ Property { name: "generateEvents"; type: "bool" }
+ Property { name: "updateInterval"; type: "int" }
+ }
+ Component {
+ name: "FLayer"
+ defaultProperty: "data"
+ prototype: "FWidgetBase"
+ exports: ["com.ford.hmiframework/FLayer 1.0"]
+ Property { name: "layerID"; type: "int" }
+ Property { name: "initialView"; type: "string" }
+ Property { name: "activeViewName"; type: "string" }
+ }
+ Component {
+ name: "FLayout"
+ defaultProperty: "data"
+ prototype: "FMetaInfoItem"
+ exports: ["com.ford.hmiframework/FLayout 1.0"]
+ Property { name: "viewX"; type: "double" }
+ Property { name: "viewY"; type: "double" }
+ Property { name: "viewZ"; type: "double" }
+ }
+ Component {
+ name: "FLogHandlerItem"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["com.ford.hmiframework/FLogHandlerItem 1.0"]
+ Signal {
+ name: "newEntry"
+ Parameter { name: "s"; type: "string" }
+ }
+ }
+ Component {
+ name: "FLogger"
+ prototype: "QObject"
+ exports: ["com.ford.hmiframework/FLogger 1.0"]
+ Property { name: "perfStamp"; type: "bool" }
+ Method {
+ name: "debug"
+ Parameter { name: "name"; type: "string" }
+ Parameter { name: "s"; type: "string" }
+ }
+ Method {
+ name: "warning"
+ Parameter { name: "name"; type: "string" }
+ Parameter { name: "s"; type: "string" }
+ }
+ Method {
+ name: "error"
+ Parameter { name: "name"; type: "string" }
+ Parameter { name: "s"; type: "string" }
+ }
+ Method {
+ name: "info"
+ Parameter { name: "name"; type: "string" }
+ Parameter { name: "s"; type: "string" }
+ }
+ Method {
+ name: "perf"
+ Parameter { name: "name"; type: "string" }
+ Parameter { name: "s"; type: "string" }
+ }
+ }
+ Component {
+ name: "FLoggerConsole"
+ prototype: "QObject"
+ exports: ["com.ford.hmiframework/FLoggerConsole 1.0"]
+ }
+ Component {
+ name: "FLoggerFile"
+ prototype: "QObject"
+ exports: ["com.ford.hmiframework/FLoggerFile 1.0"]
+ Property { name: "file"; type: "string" }
+ }
+ Component {
+ name: "FMenuElement"
+ defaultProperty: "children"
+ prototype: "FTreeElement"
+ exports: ["com.ford.hmiframework/FMenuElement 1.0"]
+ Enum {
+ name: "MenuElementType"
+ values: {
+ "Undefined": 0,
+ "Submenu": 1,
+ "Popup": 2,
+ "Hyperlink": 3,
+ "Checkbox": 4,
+ "Radiobutton": 5,
+ "Multistate": 6
+ }
+ }
+ Property { name: "isVisible"; type: "bool" }
+ Property { name: "isEnabled"; type: "bool" }
+ Property { name: "menuType"; type: "int" }
+ Property { name: "menuText"; type: "string" }
+ Property { name: "menuIcon"; type: "string" }
+ Property { name: "menuStatus"; type: "int" }
+ Property { name: "menuData"; type: "QVariant" }
+ }
+ Component {
+ name: "FMenuModel"
+ defaultProperty: "children"
+ prototype: "FTreeModel"
+ exports: ["com.ford.hmiframework/FMenuModel 1.0"]
+ }
+ Component {
+ name: "FMetaInfoItem"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["com.ford.hmiframework/FMetaInfoItem 1.0"]
+ Property { name: "metaInfo"; type: "string" }
+ Property { name: "metaID"; type: "string" }
+ Property { name: "metaVersion"; type: "string" }
+ }
+ Component {
+ name: "FMetaInfoObject"
+ prototype: "QObject"
+ exports: ["com.ford.hmiframework/FMetaInfoObject 1.0"]
+ Property { name: "metaInfo"; type: "string" }
+ Property { name: "metaID"; type: "string" }
+ Property { name: "metaVersion"; type: "string" }
+ }
+ Component {
+ name: "FProxyListModel"
+ prototype: "QIdentityProxyModel"
+ exports: ["com.ford.hmiframework/FProxyListModel 1.0"]
+ Property { name: "sourceModel"; type: "FAbstractListModel"; isPointer: true }
+ Property { name: "isFrozen"; type: "bool" }
+ Signal {
+ name: "elementSelected"
+ Parameter { type: "FAbstractListElement"; isPointer: true }
+ Parameter { type: "int" }
+ }
+ Method {
+ name: "selectElement"
+ Parameter { name: "index"; type: "int" }
+ }
+ }
+ Component {
+ name: "FReactiveElementBase"
+ prototype: "FMetaInfoObject"
+ exports: ["com.ford.hmiframework/FReactiveElementBase 1.0"]
+ Property { name: "triggers"; type: "FTrigger"; isList: true; isReadonly: true }
+ }
+ Component {
+ name: "FState"
+ prototype: "FStateBase"
+ exports: ["com.ford.hmiframework/FState 1.0"]
+ Property { name: "baseBehavior"; type: "FStateBase"; isPointer: true }
+ }
+ Component {
+ name: "FStateBase"
+ prototype: "FReactiveElementBase"
+ exports: ["com.ford.hmiframework/FStateBase 1.0"]
+ }
+ Component {
+ name: "FStateView"
+ defaultProperty: "childObjects"
+ prototype: "FState"
+ exports: ["com.ford.hmiframework/FStateView 1.0"]
+ Property { name: "priority"; type: "int" }
+ Property { name: "visualPriority"; type: "int" }
+ Property { name: "view"; type: "FView"; isPointer: true }
+ Property { name: "preload"; type: "QVariant" }
+ Property { name: "attachedViews"; type: "QStringList" }
+ Property { name: "childObjects"; type: "QObject"; isList: true; isReadonly: true }
+ Property { name: "isInEntry"; type: "bool"; isReadonly: true }
+ Property { name: "isInExit"; type: "bool"; isReadonly: true }
+ Signal {
+ name: "entry"
+ Parameter { name: "previousView"; type: "string" }
+ Parameter { name: "data"; type: "QVariant" }
+ }
+ Signal { name: "entryComplete" }
+ Signal { name: "exit" }
+ Signal { name: "exitComplete" }
+ }
+ Component {
+ name: "FThemeProvider"
+ prototype: "QObject"
+ exports: ["com.ford.hmiframework/FThemeProvider 1.0"]
+ Property { name: "theme"; type: "string" }
+ Property { name: "resourcePath"; type: "QUrl" }
+ Method {
+ name: "getFileSubPath"
+ type: "string"
+ Parameter { type: "string" }
+ }
+ Method {
+ name: "getStyle"
+ type: "FStyle*"
+ Parameter { type: "string" }
+ }
+ Method {
+ name: "applyStyle"
+ Parameter { name: "target"; type: "QObject"; isPointer: true }
+ Parameter { name: "styleName"; type: "string" }
+ }
+ }
+ Component {
+ name: "FTreeElement"
+ defaultProperty: "children"
+ prototype: "FAbstractListElement"
+ exports: ["com.ford.hmiframework/FTreeElement 1.0"]
+ Property { name: "children"; type: "FTreeElement"; isList: true; isReadonly: true }
+ Property { name: "level"; type: "int"; isReadonly: true }
+ Property { name: "isOpened"; type: "bool" }
+ }
+ Component {
+ name: "FTreeModel"
+ defaultProperty: "children"
+ prototype: "FAbstractListModel"
+ exports: ["com.ford.hmiframework/FTreeModel 1.0"]
+ Property { name: "children"; type: "FTreeElement"; isList: true; isReadonly: true }
+ Property { name: "root"; type: "FTreeElement"; isPointer: true }
+ Property { name: "rootRoot"; type: "FTreeElement"; isReadonly: true; isPointer: true }
+ Method {
+ name: "openElement"
+ Parameter { name: "numIndex"; type: "int" }
+ }
+ Method {
+ name: "closeElement"
+ Parameter { name: "numIndex"; type: "int" }
+ }
+ Method {
+ name: "selectElement"
+ Parameter { name: "index"; type: "int" }
+ }
+ }
+ Component {
+ name: "FTrgAnimCompleted"
+ defaultProperty: "actions"
+ prototype: "FTrigger"
+ exports: ["com.ford.hmiframework/FTrgAnimCompleted 1.0"]
+ Property { name: "animation"; type: "FAnimation"; isPointer: true }
+ Method {
+ name: "animCompleted"
+ Parameter { type: "FAnimation"; isPointer: true }
+ }
+ }
+ Component {
+ name: "FTrgCondition"
+ defaultProperty: "actions"
+ prototype: "FTrigger"
+ exports: ["com.ford.hmiframework/FTrgCondition 1.0"]
+ Property { name: "condition"; type: "bool" }
+ Property { name: "checkOnEntry"; type: "bool" }
+ }
+ Component {
+ name: "FTrgEntry"
+ defaultProperty: "actions"
+ prototype: "FTrigger"
+ exports: ["com.ford.hmiframework/FTrgEntry 1.0"]
+ Property { name: "previousView"; type: "string"; isReadonly: true }
+ Property { name: "data"; type: "QVariant"; isReadonly: true }
+ Method {
+ name: "entry"
+ Parameter { name: "previousView"; type: "string" }
+ Parameter { name: "data"; type: "QVariant" }
+ }
+ }
+ Component {
+ name: "FTrgEntryComplete"
+ defaultProperty: "actions"
+ prototype: "FTrigger"
+ exports: ["com.ford.hmiframework/FTrgEntryComplete 1.0"]
+ }
+ Component {
+ name: "FTrgEvent"
+ defaultProperty: "actions"
+ prototype: "FTrigger"
+ exports: ["com.ford.hmiframework/FTrgEvent 1.0"]
+ Property { name: "event"; type: "FEvent"; isPointer: true }
+ Property { name: "data"; type: "QVariant" }
+ Method {
+ name: "eventTrigger"
+ Parameter { name: "data"; type: "QVariant" }
+ }
+ }
+ Component {
+ name: "FTrgExit"
+ defaultProperty: "actions"
+ prototype: "FTrigger"
+ exports: ["com.ford.hmiframework/FTrgExit 1.0"]
+ }
+ Component {
+ name: "FTrgExitComplete"
+ defaultProperty: "actions"
+ prototype: "FTrigger"
+ exports: ["com.ford.hmiframework/FTrgExitComplete 1.0"]
+ }
+ Component {
+ name: "FTrgHardwareControl"
+ defaultProperty: "actions"
+ prototype: "FTrigger"
+ exports: ["com.ford.hmiframework/FTrgHardwareControl 1.0"]
+ Property { name: "hardControls"; type: "QVariant" }
+ Signal {
+ name: "handleHardwareControlEvent"
+ Parameter { name: "action"; type: "int" }
+ }
+ }
+ Component {
+ name: "FTrgHardwareKey"
+ defaultProperty: "actions"
+ prototype: "FTrgHardwareControl"
+ exports: ["com.ford.hmiframework/FTrgHardwareKey 1.0"]
+ Property { name: "keyAction"; type: "int" }
+ Property { name: "hardkeys"; type: "QVariant" }
+ }
+ Component {
+ name: "FTrgHardwareRotary"
+ defaultProperty: "actions"
+ prototype: "FTrgHardwareControl"
+ exports: ["com.ford.hmiframework/FTrgHardwareRotary 1.0"]
+ Property { name: "valueChange"; type: "int" }
+ Property { name: "rotary"; type: "QVariant" }
+ }
+ Component {
+ name: "FTrgListModel"
+ defaultProperty: "actions"
+ prototype: "FTrigger"
+ exports: ["com.ford.hmiframework/FTrgListModel 1.0"]
+ Property { name: "model"; type: "FAbstractListModel"; isPointer: true }
+ Property { name: "element"; type: "FAbstractListElement"; isReadonly: true; isPointer: true }
+ Property { name: "index"; type: "int"; isReadonly: true }
+ Method {
+ name: "elementSelected"
+ Parameter { type: "FAbstractListElement"; isPointer: true }
+ Parameter { type: "int" }
+ }
+ }
+ Component {
+ name: "FTrgMenuElement"
+ defaultProperty: "actions"
+ prototype: "FTrigger"
+ exports: ["com.ford.hmiframework/FTrgMenuElement 1.0"]
+ Property { name: "menuElement"; type: "FMenuElement"; isPointer: true }
+ Method {
+ name: "elementSelected"
+ Parameter { type: "FAbstractListElement"; isPointer: true }
+ }
+ }
+ Component {
+ name: "FTrgTouchArea"
+ defaultProperty: "actions"
+ prototype: "FTrigger"
+ exports: ["com.ford.hmiframework/FTrgTouchArea 1.0"]
+ Property { name: "touchArea"; type: "FWdgtTouchArea"; isPointer: true }
+ Property { name: "touchAction"; type: "int" }
+ Property { name: "xPos"; type: "int" }
+ Property { name: "yPos"; type: "int" }
+ Method {
+ name: "touchEvent"
+ Parameter { name: "action"; type: "int" }
+ Parameter { name: "x"; type: "int" }
+ Parameter { name: "y"; type: "int" }
+ }
+ }
+ Component {
+ name: "FTrigger"
+ defaultProperty: "actions"
+ prototype: "FMetaInfoObject"
+ exports: ["com.ford.hmiframework/FTrigger 1.0"]
+ Property { name: "initialized"; type: "bool" }
+ Property { name: "actions"; type: "FAction"; isList: true; isReadonly: true }
+ Signal {
+ name: "init"
+ Parameter { type: "FStateView"; isPointer: true }
+ }
+ Signal {
+ name: "cleanup"
+ Parameter { type: "FStateView"; isPointer: true }
+ }
+ Signal { name: "intializedChanged" }
+ }
+ Component {
+ name: "FView"
+ defaultProperty: "data"
+ prototype: "FWidget"
+ exports: ["com.ford.hmiframework/FView 1.0"]
+ Property { name: "viewClass"; type: "FViewClass"; isPointer: true }
+ }
+ Component {
+ name: "FViewClass"
+ defaultProperty: "derivedClass"
+ prototype: "FMetaInfoObject"
+ exports: ["com.ford.hmiframework/FViewClass 1.0"]
+ Property { name: "derivedClass"; type: "FViewClass"; isList: true; isReadonly: true }
+ }
+ Component {
+ name: "FWdgtTouchArea"
+ defaultProperty: "data"
+ prototype: "QQuickItem"
+ exports: ["com.ford.hmiframework/FWdgtTouchArea 1.0"]
+ Property { name: "pressed"; type: "bool" }
+ Property { name: "enabled"; type: "bool" }
+ Property { name: "longPressMSec"; type: "int" }
+ Property { name: "repeatDelayMSec"; type: "int" }
+ Property { name: "repeatIntervalMSec"; type: "int" }
+ Signal {
+ name: "touchEvent"
+ Parameter { name: "event"; type: "int" }
+ Parameter { name: "x"; type: "int" }
+ Parameter { name: "y"; type: "int" }
+ }
+ }
+ Component {
+ name: "FWidget"
+ defaultProperty: "data"
+ prototype: "FWidgetBase"
+ exports: ["com.ford.hmiframework/FWidget 1.0"]
+ Property { name: "layout"; type: "FLayout"; isPointer: true }
+ Property { name: "triggers"; type: "FTrigger"; isList: true; isReadonly: true }
+ }
+ Component { name: "FWidgetBase"; defaultProperty: "data"; prototype: "FMetaInfoItem" }
+ Component {
+ name: "QAbstractProxyModel"
+ prototype: "QAbstractItemModel"
+ Property { name: "sourceModel"; type: "QAbstractItemModel"; isPointer: true }
+ }
+ Component { name: "QIdentityProxyModel"; prototype: "QAbstractProxyModel" }
+ Component {
+ name: "QSortFilterProxyModel"
+ prototype: "QAbstractProxyModel"
+ exports: ["com.ford.hmiframework/FSortFilterProxyListModel 1.0"]
+ Property { name: "filterRegExp"; type: "QRegExp" }
+ Property { name: "filterKeyColumn"; type: "int" }
+ Property { name: "dynamicSortFilter"; type: "bool" }
+ Property { name: "filterCaseSensitivity"; type: "Qt::CaseSensitivity" }
+ Property { name: "sortCaseSensitivity"; type: "Qt::CaseSensitivity" }
+ Property { name: "isSortLocaleAware"; type: "bool" }
+ Property { name: "sortRole"; type: "int" }
+ Property { name: "filterRole"; type: "int" }
+ Method {
+ name: "setFilterRegExp"
+ Parameter { name: "pattern"; type: "string" }
+ }
+ Method {
+ name: "setFilterWildcard"
+ Parameter { name: "pattern"; type: "string" }
+ }
+ Method {
+ name: "setFilterFixedString"
+ Parameter { name: "pattern"; type: "string" }
+ }
+ Method { name: "clear" }
+ Method { name: "invalidate" }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtBorderImage.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtBorderImage.qml
new file mode 100644
index 000000000..c95ebd319
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtBorderImage.qml
@@ -0,0 +1,40 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+BorderImage {
+ property string bitmap: ""
+ property bool themed: false
+
+ onBitmapChanged: {
+ applyThemedImage();
+ }
+
+ function applyThemedImage() {
+ if (bitmap !== "") {
+ if (themed) {
+ source = FThemeProvider.resourcePath + "/" + FThemeProvider.theme + "/" + bitmap;
+ }
+ else {
+ source = FThemeProvider.resourcePath + "/" + bitmap;
+ }
+ }
+ else {
+ source = "";
+ }
+ }
+
+ Component.onCompleted: {
+ if (themed)
+ {
+ FThemeProvider.themeChanged.connect(applyThemedImage);
+ }
+ }
+
+ Component.onDestruction: {
+ if (themed)
+ {
+ FThemeProvider.themeChanged.disconnect(applyThemedImage);
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtContainer.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtContainer.qml
new file mode 100644
index 000000000..f0e4720cc
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtContainer.qml
@@ -0,0 +1,8 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+Item {
+ id: container
+
+ property alias widget: container.children
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtGridView.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtGridView.qml
new file mode 100644
index 000000000..61d1832db
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtGridView.qml
@@ -0,0 +1,35 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+GridView {
+ id: theGrid
+
+ property alias data : theGrid.model
+ property alias itemWidget : theGrid.delegate
+
+ /*
+ Setting rows/columns fundamentally changes how children fit into the GridView.
+ -Normal behaviour: Children have a fixed size (cellWidth/cellHeight) and the NUMBER of them
+ that will fit into the GridView varies with the GridView's size.
+ -Modified behaviour(setting rows and/or columns triggers this mode): A fixed number of children
+ will fit into the GridView (determined by number of rows/columns) and their SIZE
+ (cellWidth/cellHeight) will vary with the GridView's size
+ -rows/columns determines the size of VISIBLE children and simply sets cellWidth/cellHeight at runtime.
+ If the number of children is different than rows * columns, it will either scroll or not
+ fill the GridView completely, same as normal.
+ -the item_Widget component must be designed for fluid layout using anchors, not fixed sizes,
+ for this to have any effect besides spacing
+ */
+ property int rows
+ property int columns
+
+ Component.onCompleted: {
+ if (rows) {
+ theGrid.cellHeight = theGrid.height/rows
+ }
+ if (columns) {
+ theGrid.cellWidth = theGrid.width/columns
+ }
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtImage.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtImage.qml
new file mode 100644
index 000000000..89e57bbf0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtImage.qml
@@ -0,0 +1,43 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+Image {
+ property string bitmap: ""
+ property bool themed: false
+
+ fillMode: Image.PreserveAspectFit
+ asynchronous: true
+
+ onBitmapChanged: {
+ applyThemedImage();
+ }
+
+ function applyThemedImage() {
+ if (bitmap !== "") {
+ if (themed) {
+ source = FThemeProvider.resourcePath + "/" + FThemeProvider.getFileSubPath(bitmap) + bitmap;
+ }
+ else {
+ source = FThemeProvider.resourcePath + "/" + bitmap;
+ }
+ }
+ else {
+ source = "";
+ }
+ }
+
+ Component.onCompleted: {
+ if (themed)
+ {
+ FThemeProvider.themeChanged.connect(applyThemedImage);
+ }
+ }
+
+ Component.onDestruction: {
+ if (themed)
+ {
+ FThemeProvider.themeChanged.disconnect(applyThemedImage);
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtListView.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtListView.qml
new file mode 100644
index 000000000..7e1ccd10a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtListView.qml
@@ -0,0 +1,9 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+ListView {
+ id: theList
+
+ property alias data : theList.model
+ property alias itemWidget : theList.delegate
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtPathView.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtPathView.qml
new file mode 100644
index 000000000..08762015a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtPathView.qml
@@ -0,0 +1,9 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+PathView {
+ id: thePathView
+
+ property alias data : thePathView.model
+ property alias itemWidget : thePathView.delegate
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtScrollbar.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtScrollbar.qml
new file mode 100644
index 000000000..74c1e27e9
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtScrollbar.qml
@@ -0,0 +1,104 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+BorderImage {
+ property variant target
+
+ source: "../Resources/scrollbar.png"
+ border {left: 0; top: 3; right: 0; bottom: 3}
+ width: 17
+
+ //anchors {top: target.top; bottom: target.bottom; right: target.right }
+ visible: (track.height == slider.height) ? false : true //TODO: !visible -> width: 0 (but creates a binding loop)
+
+ Item {
+ anchors {fill: parent; margins: 1; rightMargin: 2; bottomMargin: 2}
+
+ Image {
+ id: upArrow
+ source: "../Resources/up-arrow.png"
+ anchors.top: parent.top
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ timer.scrollAmount = -10
+ timer.running = true;
+ }
+ onReleased: {
+ timer.running = false;
+ }
+ }
+ }
+
+ Timer {
+ property int scrollAmount
+
+ id: timer
+ repeat: true
+ interval: 20
+ onTriggered: {
+ target.contentY = Math.max(
+ 0, Math.min(
+ target.contentY + scrollAmount,
+ target.contentHeight - target.height));
+ }
+ }
+
+ Item {
+ id: track
+ anchors {top: upArrow.bottom; topMargin: 1; bottom: dnArrow.top;}
+ width: parent.width
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ timer.scrollAmount = target.height * (mouseY < slider.y ? -1 : 1) // scroll by a page
+ timer.running = true;
+ }
+ onReleased: {
+ timer.running = false;
+ }
+ }
+
+ BorderImage {
+ id:slider
+
+ source: "../Resources/slider.png"
+ border {left: 0; top: 3; right: 0; bottom: 3}
+ width: parent.width
+
+ height: Math.min(target.height / target.contentHeight * track.height, track.height)
+ y: target.visibleArea.yPosition * track.height
+
+ MouseArea {
+ anchors.fill: parent
+ drag.target: parent
+ drag.axis: Drag.YAxis
+ drag.minimumY: 0
+ drag.maximumY: track.height - height
+
+ onPositionChanged: {
+ if (pressedButtons == Qt.LeftButton) {
+ target.contentY = slider.y * target.contentHeight / track.height
+ }
+ }
+ }
+ }
+ }
+ Image {
+ id: dnArrow
+ source: "../Resources/dn-arrow.png"
+ anchors.bottom: parent.bottom
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ timer.scrollAmount = 10
+ timer.running = true;
+ }
+ onReleased: {
+ timer.running = false;
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtScrollview.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtScrollview.qml
new file mode 100644
index 000000000..a42f74c9f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtScrollview.qml
@@ -0,0 +1,7 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+Flickable {
+ id: theScrollView
+ clip: true
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtText.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtText.qml
new file mode 100644
index 000000000..9e7a93773
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtText.qml
@@ -0,0 +1,6 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+Text {
+ id: myText
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtTouchAreaEnums.js b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtTouchAreaEnums.js
new file mode 100644
index 000000000..f21a45406
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/BaseWidgets/FWdgtTouchAreaEnums.js
@@ -0,0 +1,12 @@
+.pragma library
+
+var In = 1
+var Out = 2
+var Short = 4
+var Long = 8
+var Repeat = 16
+var InRepeat = 17
+var All = 31
+var Cancel = 32
+var DragOut = 64
+var DragIn = 128
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActScriptCall.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActScriptCall.qml
new file mode 100644
index 000000000..39862d6f2
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActScriptCall.qml
@@ -0,0 +1,13 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+FAction {
+ id: theAction
+
+ signal script
+
+ onExecute: {
+ script();
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActSystemModelCall.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActSystemModelCall.qml
new file mode 100644
index 000000000..5783286cc
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActSystemModelCall.qml
@@ -0,0 +1,14 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+
+FAction {
+ id: theAction
+
+ signal call
+
+ onExecute: {
+ call();
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActTimer.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActTimer.qml
new file mode 100644
index 000000000..e31937a2b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActTimer.qml
@@ -0,0 +1,25 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+FAction {
+ id: theAction
+
+ property variant timer
+ property int action: 1
+
+ onExecute: {
+ switch(action)
+ {
+ case TM.Start:
+ timer.start();
+ break;
+ case TM.Restart:
+ timer.restart();
+ break;
+ case TM.Stop:
+ timer.stop();
+ break;
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActWidgetCall.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActWidgetCall.qml
new file mode 100644
index 000000000..6e7048fe9
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActWidgetCall.qml
@@ -0,0 +1,13 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+FAction {
+ id: theAction
+
+ signal call
+
+ onExecute: {
+ call();
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActWidgetProperty.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActWidgetProperty.qml
new file mode 100644
index 000000000..040695d29
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FActWidgetProperty.qml
@@ -0,0 +1,13 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+FAction {
+ id: theAction
+
+ signal change
+
+ onExecute: {
+ change();
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FAnimViewHide.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FAnimViewHide.qml
new file mode 100644
index 000000000..4eef062be
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FAnimViewHide.qml
@@ -0,0 +1,6 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+FAnimView {
+ supportOutgoing: true
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FAnimationEnums.js b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FAnimationEnums.js
new file mode 100644
index 000000000..117cb9926
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FAnimationEnums.js
@@ -0,0 +1,7 @@
+.pragma library
+
+var Start = 1
+var Restart = 2
+var Pause = 3
+var Resume = 4
+var Stop = 0
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FConditionPool.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FConditionPool.qml
new file mode 100644
index 000000000..97c502e51
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FConditionPool.qml
@@ -0,0 +1,5 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+QtObject {
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FDataPool.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FDataPool.qml
new file mode 100644
index 000000000..97c502e51
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FDataPool.qml
@@ -0,0 +1,5 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+QtObject {
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FEventPool.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FEventPool.qml
new file mode 100644
index 000000000..add041317
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FEventPool.qml
@@ -0,0 +1,9 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+QtObject {
+ id: theEventPool
+ default property alias events: theEventPool._events
+ property list<FEvent> _events
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FGaugeValue.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FGaugeValue.qml
new file mode 100644
index 000000000..1886d54af
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FGaugeValue.qml
@@ -0,0 +1,51 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+// The FGauge allows to transform an input value range into an output value rang using a smooth transition
+// it can be e.g. used to transfrom the speed of a vehicle into an angle of the pointer needle
+// The borders of the input and output ranges are mapped to each other and a linear transformation is executed
+
+Item {
+ id: theGauge
+
+ // the time required to move through the full range from e.g. min to max
+ property int fullSweepTime: 1000
+
+ // minimum border, the input value can reach
+ property double minInput: 0.0
+ // maximum value, the input can reach
+ property double maxInput: 100.0
+ // the current input value. Each change will trigger an animated change of the output
+ property double currentInput: 50.0
+
+ // minimum border, the output value can reach
+ property double minOutput: 0.0
+ // maximum value, the output can reach
+ property double maxOutput: 100.0
+ //
+ property double currentOutput: 50.0
+
+ // this is the targetted output. Changing this, will trigger the animation to be executed
+ property double targetOutput
+ // this is the time required to move to the target value
+ property int targetTime
+
+ PropertyAnimation { id: anim; target: theGauge; properties: "currentOutput"; to: theGauge.targetOutput; duration: theGauge.targetTime }
+
+ onCurrentInputChanged: {
+ // we need to calculate the target and the required time to reach it
+ var target = (currentInput - minInput) * (maxOutput - minOutput) / (maxInput - minInput) + minOutput;
+ if(target < minOutput) {
+ target = minOutput;
+ }
+ else if (target > maxOutput) {
+ target = maxOutput;
+ }
+
+ targetTime = Math.abs((target - currentOutput) / (maxOutput - minOutput)) * fullSweepTime;
+ if(targetTime > 0) {
+ targetOutput = target;
+ anim.restart();
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FHardwareKeyEnums.js b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FHardwareKeyEnums.js
new file mode 100644
index 000000000..ee1db632a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FHardwareKeyEnums.js
@@ -0,0 +1,9 @@
+.pragma library
+
+var In = 1
+var Out = 2
+var Short = 4
+var Long = 8
+var Repeat = 16
+var InRepeat = 17
+var All = 31
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStringFormat.js b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStringFormat.js
new file mode 100644
index 000000000..1a1d2af58
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStringFormat.js
@@ -0,0 +1,132 @@
+var leadSection = ""
+var trailSection = ""
+var varName = ""
+var formatSection = ""
+
+var digits = 0
+var digitZeros = 0
+var decimals = 0
+var decimalsZeros = 0
+var decimalSymbol = "."
+
+function splitFormatString(format) {
+ // we need to analyze the structure of the string first
+ // a typical notation is like this: "{distance:#00.0#} km", where
+ // "{" "}" variable limiters
+ // "distance" variable name, this will be discarded and has not effect
+ // "#" non-leading/-trailing zero character
+ // "0" leading/trailing zero character
+ // " km" additional text which will remain unchanged
+ leadSection = ""
+ trailSection = ""
+ varName = ""
+ formatSection = ""
+
+ var startPos = 0;
+ var searchStep = 0;
+ for(var i = 0; i < format.length; ++i)
+ {
+ // search for the opening "{"
+ if(searchStep === 0) {
+ if(format.charAt(i)==='{') {
+ leadSection = format.slice(startPos, i);
+ startPos = i + 1;
+ searchStep++;
+ }
+ }
+ // search for the ":" or the closing "}"
+ else if(searchStep === 1) {
+ if(format.charAt(i) === '}') {
+ formatSection = format.slice(startPos, i);
+ startPos = i + 1;
+ trailSection = format.slice(startPos)
+ break;
+ }
+ else if(format.charAt(i) === ':') {
+ varName = format.slice(startPos, i);
+ startPos = i + 1;
+ searchStep++;
+ }
+ }
+ else if(searchStep === 2) {
+ if(format.charAt(i) === '}') {
+ formatSection = format.slice(startPos, i);
+ startPos = i + 1;
+ trailSection = format.slice(startPos)
+ break;
+ }
+ }
+ }
+
+ // finally we need to create the formatting string for sprintf out of the formatSection
+ digits = 0;
+ digitZeros = 0;
+ decimals = 0;
+ decimalsZeros = 0;
+ searchStep = 0;
+ for(var i = 0; i < formatSection.length; ++i) {
+ if(searchStep === 0) {
+ if(formatSection.charAt(i) === '#') {
+ digits++;
+ }
+ else if(formatSection.charAt(i) === '0') {
+ digits++;
+ digitZeros++;
+ }
+ else if(formatSection.charAt(i) === '.' || formatSection.charAt(i) === ',') {
+ decimalSymbol = formatSection.charAt(i);
+ searchStep++;
+ }
+ }
+ else if(searchStep === 1) {
+ if(formatSection.charAt(i) === '#') {
+ decimals++;
+ }
+ else if(formatSection.charAt(i) === '0') {
+ decimals++;
+ decimalsZeros++;
+ }
+ }
+ }
+}
+
+function formatOutput(data)
+{
+ // format the output, first the digits
+ var digitString = Math.floor(data).toString();
+ if(digitString.length < digitZeros) {
+ // zero pad the string
+ var temp = "";
+ for(var i = 0; i < digitZeros - digitString.length; ++i) {
+ temp += '0';
+ }
+ digitString = temp + digitString;
+ }
+ else {
+ digitString = digitString.slice(-digits);
+ }
+
+ var decimalString = (data - Math.floor(data)).toFixed(decimals).slice(2);
+ if (decimalString.length > decimalsZeros) {
+ for (var i = decimalString.length - 1; i >= decimalsZeros; i--)
+ {
+ if(decimalString.charAt(i) === '0')
+ {
+ decimalString = decimalString.slice(0, -1);
+ }
+ }
+ }
+ else {
+ for (var i = decimalString.length; i < decimalsZeros; i++)
+ {
+ decimalString += '0';
+ }
+ }
+
+ if (decimalString.length > 0) {
+ return leadSection + digitString + decimalSymbol + decimalString + trailSection;
+ }
+ else {
+ return leadSection + digitString + trailSection;
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStringFormat.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStringFormat.qml
new file mode 100644
index 000000000..c3be3832f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStringFormat.qml
@@ -0,0 +1,28 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import "FStringFormat.js" as CB
+
+QtObject {
+ // output string for which is used as output
+ property string output
+
+ // this string defines the format of the output
+ property string format
+
+ // this is the data to be formatted into the output
+ property variant data
+
+
+ onFormatChanged: {
+ CB.splitFormatString(format);
+ }
+
+ onDataChanged: {
+ doFormat();
+ }
+
+ function doFormat()
+ {
+ output = CB.formatOutput(data);
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStyle.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStyle.qml
new file mode 100644
index 000000000..5f9106f9a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStyle.qml
@@ -0,0 +1,56 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+QtObject {
+ id: _style
+
+ Component.onCompleted: {
+ FThemeProvider.themeChanged.connect(themeChanged);
+ }
+
+ // This property is used to assign a "style" filename to the style. This file loads the style data and updates the properties of the style
+ property string styleFile: ""
+
+ property bool themed: false
+
+ onStyleFileChanged: {
+ loadStyle(_style);
+ }
+
+ function themeChanged() {
+ if (themed)
+ {
+ loadStyle(_style);
+ }
+ }
+
+ // indicate, that the style has been updated to the attached widgets
+ signal styleUpdated
+
+ function loadStyle(style)
+ {
+ if(styleFile.length > 0) {
+ console.log( "Loading style: " + styleFile + " (" + FThemeProvider.theme + ")")
+ var xhr = new XMLHttpRequest();
+ xhr.open("GET", FThemeProvider.resourcePath + FThemeProvider.getFileSubPath(styleFile + ".qmlstyle") + "/" + styleFile + ".qmlstyle");
+ xhr.onreadystatechange = function() {
+ if (xhr.readyState === XMLHttpRequest.DONE) {
+ try {
+ var a = JSON.parse(xhr.responseText);
+ for (var b in a) {
+ if (style.hasOwnProperty(b)) {
+ style[b] = a[b];
+ }
+ }
+ styleUpdated();
+ }
+ catch (ex) {
+ console.log("Style exception (" + styleFile + "): " + ex);
+ }
+ }
+ }
+ xhr.send();
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStyler.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStyler.qml
new file mode 100644
index 000000000..3fb89882d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FStyler.qml
@@ -0,0 +1,41 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+QtObject {
+ // this property can be FStyle, but only if the instance is created in place and not assigned. Otherwise we need to use variant
+ //property FStyle style
+ property variant style
+ property variant styleTarget
+
+ onStyleChanged: {
+ if(style !== undefined && style !== null) {
+ style.styleUpdated.connect(applyStyle);
+ applyStyle();
+ }
+ }
+
+ onStyleTargetChanged: {
+ applyStyle();
+ }
+
+ function applyStyle()
+ {
+ if(style !== undefined && style !== null && styleTarget !== undefined && styleTarget !== null) {
+ setStyledProperties(style, styleTarget)
+ }
+ }
+
+ function setStyledProperties(style, target)
+ {
+ for(var prop in style) {
+ // first filter unwanted properties
+ if(prop !== "objectName" && prop.slice(-7) !== "Changed" ) {
+ // process only properties owned by style & target
+ if (target.hasOwnProperty(prop)) {
+ // assign the value
+ target[prop] = style[prop];
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTimer.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTimer.qml
new file mode 100644
index 000000000..bc148998b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTimer.qml
@@ -0,0 +1,6 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+Timer {
+ triggeredOnStart: false
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTimerEnums.js b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTimerEnums.js
new file mode 100644
index 000000000..d657de1f0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTimerEnums.js
@@ -0,0 +1,5 @@
+.pragma library
+
+var Stop = 0
+var Start = 1
+var Restart = 2
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTrgTimer.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTrgTimer.qml
new file mode 100644
index 000000000..b3ac5f8a1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FTrgTimer.qml
@@ -0,0 +1,19 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+import com.ford.hmiframework 1.0
+
+FTrigger {
+ property QtObject timer
+
+ onInit: {
+ timer.triggered.connect(timerTrigger);
+ }
+
+ onCleanup: {
+ timer.triggered.disconnect(timerTrigger);
+ }
+
+ function timerTrigger() {
+ executeActions();
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCase.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCase.qml
new file mode 100644
index 000000000..258a1da62
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCase.qml
@@ -0,0 +1,9 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+State {
+ default property alias propertyChange: myState.changes
+ property alias condition: myState.when
+ id: myState
+ when: true === true
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseGroup.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseGroup.qml
new file mode 100644
index 000000000..7b1fa6ba5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseGroup.qml
@@ -0,0 +1,7 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+StateGroup {
+ id: myUseCaseGroup
+ default property alias useCases: myUseCaseGroup.states
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseSimple.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseSimple.qml
new file mode 100644
index 000000000..44da5a5a7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseSimple.qml
@@ -0,0 +1,15 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+StateGroup {
+ default property alias propertyChange: theState.changes
+ property alias condition: theState.when
+
+ states: [
+ State {
+ id: theState
+ name: "*"
+ when: true == true
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseTransition.qml b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseTransition.qml
new file mode 100644
index 000000000..24f6acfa4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qml/Framework/FViewUseCaseTransition.qml
@@ -0,0 +1,6 @@
+// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
+import QtQuick 2.0
+
+Transition {
+ to: "*"
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qmldir b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qmldir
new file mode 100644
index 000000000..3ccd0e58e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Look/plugins/com/ford/hmiframework/qmldir
@@ -0,0 +1,35 @@
+module com.ford.hmiframework
+plugin QtHMIFramework
+typeinfo plugin.qmltypes
+FActScriptCall 1.0 qml/Framework/FActScriptCall.qml
+FActSystemModelCall 1.0 qml/Framework/FActSystemModelCall.qml
+FActTimer 1.0 qml/Framework/FActTimer.qml
+FActWidgetCall 1.0 qml/Framework/FActWidgetCall.qml
+FActWidgetProperty 1.0 qml/Framework/FActWidgetProperty.qml
+FConditionPool 1.0 qml/Framework/FConditionPool.qml
+FDataPool 1.0 qml/Framework/FDataPool.qml
+FEventPool 1.0 qml/Framework/FEventPool.qml
+FGaugeValue 1.0 qml/Framework/FGaugeValue.qml
+FStringFormat 1.0 qml/Framework/FStringFormat.qml
+FStyle 1.0 qml/Framework/FStyle.qml
+FStyler 1.0 qml/Framework/FStyler.qml
+FTimer 1.0 qml/Framework/FTimer.qml
+FTrgTimer 1.0 qml/Framework/FTrgTimer.qml
+FViewUseCase 1.0 qml/Framework/FViewUseCase.qml
+FViewUseCaseGroup 1.0 qml/Framework/FViewUseCaseGroup.qml
+FViewUseCaseSimple 1.0 qml/Framework/FViewUseCaseSimple.qml
+FViewUseCaseTransition 1.0 qml/Framework/FViewUseCaseTransition.qml
+FWdgtBorderImage 1.0 qml/BaseWidgets/FWdgtBorderImage.qml
+FWdgtContainer 1.0 qml/BaseWidgets/FWdgtContainer.qml
+FWdgtImage 1.0 qml/BaseWidgets/FWdgtImage.qml
+FWdgtListView 1.0 qml/BaseWidgets/FWdgtListView.qml
+FWdgtPathView 1.0 qml/BaseWidgets/FWdgtPathView.qml
+FWdgtGridView 1.0 qml/BaseWidgets/FWdgtGridView.qml
+FWdgtScrollbar 1.0 qml/BaseWidgets/FWdgtScrollbar.qml
+FWdgtScrollview 1.0 qml/BaseWidgets/FWdgtScrollview.qml
+FWdgtScrollText 1.0 qml/BaseWidgets/FWdgtScrollText.qml
+FWdgtText 1.0 qml/BaseWidgets/FWdgtText.qml
+HK 1.0 qml/Framework/FHardwareKeyEnums.js
+TA 1.0 qml/BaseWidgets/FWdgtTouchAreaEnums.js
+ANIM 1.0 qml/Framework/FAnimationEnums.js
+TM 1.0 qml/Framework/FTimerEnums.js
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/.gitignore b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/.gitignore
new file mode 100644
index 000000000..ba926494c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/.gitignore
@@ -0,0 +1,11 @@
+*.o
+*.pri
+*.so
+*.dll
+.DS_Store
+
+/BananaSnacks.app
+/BananaSnacks
+/BananaSnacks.pro.user
+Makefile
+moc_*.cpp
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/BananaSnacks.pro b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/BananaSnacks.pro
new file mode 100644
index 000000000..c20d41ede
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/BananaSnacks.pro
@@ -0,0 +1,21 @@
+# Add more folders to ship with the application, here
+folder_01.source = qml/Bananas
+folder_01.target = qml
+
+folder_02.source = plugins/com
+folder_02.target = plugins
+DEPLOYMENTFOLDERS = folder_01 folder_02
+
+SOURCES += main.cpp
+
+linux-g++* {
+ QMAKE_CXXFLAGS += -m32
+ QMAKE_LFLAGS += -m32 -L/usr/lib/i386-linux-gnu/mesa
+}
+
+# Please do not modify the following two lines. Required for deployment.
+include(qtquick2applicationviewer/qtquick2applicationviewer.pri)
+qtcAddDeployment()
+
+OTHER_FILES += \
+ qml/Bananas/Layouts/TitledLayout.qml
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas.desktop b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas.desktop
new file mode 100644
index 000000000..a7bfa0111
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=Bananas
+Exec=/opt/Bananas/bin/Bananas
+Icon=Bananas64
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas64.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas64.png
new file mode 100644
index 000000000..707d5c4e8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas64.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas80.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas80.png
new file mode 100644
index 000000000..6ad8096c4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas80.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas_harmattan.desktop b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas_harmattan.desktop
new file mode 100644
index 000000000..5ced151d0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/Bananas_harmattan.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=Bananas
+Exec=/usr/bin/single-instance /opt/Bananas/bin/Bananas
+Icon=/usr/share/icons/hicolor/80x80/apps/Bananas80.png
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/README.md b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/README.md
new file mode 100644
index 000000000..993a4bf59
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/README.md
@@ -0,0 +1,37 @@
+#### sudo vi /etc/apt/apt.conf
+
+``ruby
+Acquire::http::proxy "http://proxyvipecc.nb.ford.com:83";
+Acquire::https::proxy "https://proxyvipecc.nb.ford.com:83";
+``
+
+``bash
+sudo apt-get update
+sudo apt-get install git vim build-essential mesa-common-dev libgl1-mesa-dev # for 64bit: libc6-dev-i386 lib32stdc++6 lib32stdc++6-4.7-dev libgl1-mesa-dev:i386
+
+ssh-keygen
+<enter x3>
+cat ~/.ssh/id_rsa.pub # Save this as a public ssh key on your Gitlab account
+
+git clone git@devbox.pd8.ford.com:zchurch/bananasnacks.git # Type 'yes' to trust the remote host
+
+wget http://releases.qt-project.org/qt5/5.0.1/qt-linux-opensource-5.0.1-x86-offline.run
+chmod +x qt-linux-opensource-5.0.1-x86-offline.run
+./qt-linux-opensource-5.0.1-x86-offline.run # Press next, accept, etc... Do install the Tools. This includes Creator.
+
+echo "export PATH=\$PATH:~/Qt5.0.1/5.0.1/gcc/bin" >> ~/.bashrc
+
+cd ~/bananasnacks
+./fetch_plugins.sh
+qmake
+make
+./Bananas
+
+``
+
+
+### Troubleshooting
+
+#### bash: ./qt-linux-opensource-5.0.1-x86-offline.run: No such file or directory
+You didn't install all your apt-get things. You're missing ia32-libs. Or the file isn't there.
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/bananas.qmlproject b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/bananas.qmlproject
new file mode 100644
index 000000000..f9502d2a9
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/bananas.qmlproject
@@ -0,0 +1,19 @@
+import QmlProject 1.1
+
+Project {
+ mainFile: "qml/Bananas/main.qml"
+
+ QmlFiles {
+ directory: "."
+ }
+
+ JavaScriptFiles {
+ directory: "."
+ }
+
+ ImageFiles {
+ directory: "."
+ }
+
+ importPaths: [ "plugins" ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/fetch_plugins.sh b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/fetch_plugins.sh
new file mode 100755
index 000000000..0f90baeb5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/fetch_plugins.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+wget http://19.7.95.92/uploads/note/attachment/12/libFordMediaCore.so
+chmod 775 libFordMediaCore.so
+mv libFordMediaCore.so plugins/com/ford/mediacore
+
+wget http://19.7.95.92/uploads/note/attachment/11/libFordPhoneCore.so
+chmod 775 libFordPhoneCore.so
+mv libFordPhoneCore.so plugins/com/ford/phonecore
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/load_env.sh b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/load_env.sh
new file mode 100755
index 000000000..0f094b527
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/load_env.sh
@@ -0,0 +1 @@
+# source ./load_env.sh
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/main.cpp b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/main.cpp
new file mode 100644
index 000000000..faa3f175b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/main.cpp
@@ -0,0 +1,17 @@
+#include <QtGui/QGuiApplication>
+#include <QQmlContext>
+#include "qtquick2applicationviewer.h"
+
+int main(int argc, char *argv[])
+{
+ QGuiApplication app(argc, argv);
+
+ QtQuick2ApplicationViewer viewer;
+
+ viewer.addImportPath(QStringLiteral("plugins"));
+
+ viewer.setMainQmlFile(QStringLiteral("qml/Bananas/main.qml"));
+ viewer.showExpanded();
+
+ return app.exec();
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/mediacore/qmldir b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/mediacore/qmldir
new file mode 100644
index 000000000..bb93f4093
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/mediacore/qmldir
@@ -0,0 +1,2 @@
+module com.ford.mediacore
+plugin FordMediaCore
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/navcore/qmldir b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/navcore/qmldir
new file mode 100644
index 000000000..aaacfe020
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/navcore/qmldir
@@ -0,0 +1,3 @@
+module com.ford.navcore
+plugin FordNavCore
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/phonecore/qmldir b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/phonecore/qmldir
new file mode 100644
index 000000000..861f2e223
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/phonecore/qmldir
@@ -0,0 +1,3 @@
+module com.ford.phonecore
+plugin FordPhoneCore
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/sdlcore/qmldir b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/sdlcore/qmldir
new file mode 100644
index 000000000..da1a7b7f9
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/plugins/com/ford/sdlcore/qmldir
@@ -0,0 +1,3 @@
+module com.ford.sdlcore
+plugin FordSdlCore
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/AddIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/AddIcon.png
new file mode 100644
index 000000000..7111c7c93
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/AddIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/BackIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/BackIcon.png
new file mode 100644
index 000000000..d8e607968
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/BackIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/BluetoothIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/BluetoothIcon.png
new file mode 100644
index 000000000..1a65f0751
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/BluetoothIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/CMaxCal.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/CMaxCal.png
new file mode 100644
index 000000000..cfb6d6d59
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/CMaxCal.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ChromeBottom.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ChromeBottom.png
new file mode 100644
index 000000000..91ed3ef6e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ChromeBottom.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ChromeTop.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ChromeTop.png
new file mode 100644
index 000000000..d7ba38ab8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ChromeTop.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Cloud.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Cloud.png
new file mode 100644
index 000000000..4555d71df
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Cloud.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/CloudNight.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/CloudNight.png
new file mode 100644
index 000000000..c21373f22
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/CloudNight.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/FunArtwork.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/FunArtwork.png
new file mode 100644
index 000000000..251db8a7a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/FunArtwork.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/MapMich.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/MapMich.png
new file mode 100644
index 000000000..2f8dc5130
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/MapMich.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/SiriusArtwork.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/SiriusArtwork.png
new file mode 100644
index 000000000..49a01feea
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Content/SiriusArtwork.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Crosshairs.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Crosshairs.png
new file mode 100644
index 000000000..52430d8c5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Crosshairs.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/DeleteIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/DeleteIcon.png
new file mode 100644
index 000000000..f47954968
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/DeleteIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/DndIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/DndIcon.png
new file mode 100644
index 000000000..caa648915
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/DndIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/EvIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/EvIcon.png
new file mode 100644
index 000000000..6c5838989
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/EvIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/FavoritesIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/FavoritesIcon.png
new file mode 100644
index 000000000..0871c5150
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/FavoritesIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Forward.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Forward.png
new file mode 100644
index 000000000..02548e946
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Forward.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/HomeIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/HomeIcon.png
new file mode 100644
index 000000000..2bdd652e0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/HomeIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeyboardIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeyboardIcon.png
new file mode 100644
index 000000000..c6797a440
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeyboardIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeypadEntryIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeypadEntryIcon.png
new file mode 100644
index 000000000..b9ca08ad0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeypadEntryIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeypadIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeypadIcon.png
new file mode 100644
index 000000000..a70ee397f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/KeypadIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/LightingIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/LightingIcon.png
new file mode 100644
index 000000000..3847da93c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/LightingIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Loop.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Loop.png
new file mode 100644
index 000000000..4405a629c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Loop.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MediaTab.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MediaTab.png
new file mode 100644
index 000000000..482b6821e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MediaTab.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MessagesIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MessagesIcon.png
new file mode 100644
index 000000000..5e86d80c7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MessagesIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MissingArtwork.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MissingArtwork.png
new file mode 100644
index 000000000..525e4b915
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/MissingArtwork.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/NavigationTab.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/NavigationTab.png
new file mode 100644
index 000000000..4bce72138
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/NavigationTab.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PandoraIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PandoraIcon.png
new file mode 100644
index 000000000..55498b913
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PandoraIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Pause.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Pause.png
new file mode 100644
index 000000000..bbede1990
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Pause.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneCornerIcons.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneCornerIcons.png
new file mode 100644
index 000000000..281e20a1f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneCornerIcons.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneIcons.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneIcons.png
new file mode 100644
index 000000000..e4071e093
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneIcons.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneTab.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneTab.png
new file mode 100644
index 000000000..9b36907b3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhoneTab.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhonebookIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhonebookIcon.png
new file mode 100644
index 000000000..6af9c1046
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PhonebookIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Play.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Play.png
new file mode 100644
index 000000000..1b665e363
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Play.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PoiIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PoiIcon.png
new file mode 100644
index 000000000..b7b532db7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/PoiIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RadioIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RadioIcon.png
new file mode 100644
index 000000000..f66061020
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RadioIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RecentCallsIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RecentCallsIcon.png
new file mode 100644
index 000000000..16a31b29b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RecentCallsIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RecentDestinationsIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RecentDestinationsIcon.png
new file mode 100644
index 000000000..4351243d4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RecentDestinationsIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Rewind.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Rewind.png
new file mode 100644
index 000000000..798f75480
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Rewind.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RightTurn.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RightTurn.png
new file mode 100644
index 000000000..b1d03d24a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/RightTurn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ScoutIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ScoutIcon.png
new file mode 100644
index 000000000..2c8e7cb2d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ScoutIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SearchIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SearchIcon.png
new file mode 100644
index 000000000..571d06c97
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SearchIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SeatsIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SeatsIcon.png
new file mode 100644
index 000000000..caff60c58
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SeatsIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ServicesIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ServicesIcon.png
new file mode 100644
index 000000000..63a5a6a9d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/ServicesIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Shuffle.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Shuffle.png
new file mode 100644
index 000000000..4b3fc65c6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/Shuffle.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SiriusIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SiriusIcon.png
new file mode 100644
index 000000000..0ea120992
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SiriusIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SpeedDialIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SpeedDialIcon.png
new file mode 100644
index 000000000..f871a9654
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/SpeedDialIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/UsbIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/UsbIcon.png
new file mode 100644
index 000000000..8f0c759ed
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/UsbIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VehicleCornerIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VehicleCornerIcon.png
new file mode 100644
index 000000000..79a277b18
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VehicleCornerIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VehicleTab.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VehicleTab.png
new file mode 100644
index 000000000..b6fb90276
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VehicleTab.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VhrIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VhrIcon.png
new file mode 100644
index 000000000..c27ac4a87
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VhrIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VoicemailIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VoicemailIcon.png
new file mode 100644
index 000000000..c3f91de70
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/VoicemailIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WallpaperIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WallpaperIcon.png
new file mode 100644
index 000000000..e3277af0a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WallpaperIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WifiIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WifiIcon.png
new file mode 100644
index 000000000..97ce15688
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WifiIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WorkIcon.png b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WorkIcon.png
new file mode 100644
index 000000000..69e50caa3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Assets/WorkIcon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/BackButton.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/BackButton.qml
new file mode 100644
index 000000000..61f031181
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/BackButton.qml
@@ -0,0 +1,9 @@
+import QtQuick 2.0
+
+ImageButton {
+ icon: "../Assets/BackIcon.png"
+ height: 42
+ width: 60
+ anchors.top: parent.top
+ anchors.left: parent.left
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Button.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Button.qml
new file mode 100644
index 000000000..7f3c30126
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Button.qml
@@ -0,0 +1,32 @@
+import QtQuick 2.0
+
+Rectangle {
+ signal press
+ property alias text: clickable.text
+ property alias textAnchors: clickable.textAnchors
+ property alias clickable: clickable
+ id: container
+ border.color: "#333"
+ border.width: 1
+ height: 45
+ width: 150
+ radius: 3
+ gradient: Gradient {
+ GradientStop {
+ position: 0.0
+ color: clickable.pressed ? "#3C1414" : Qt.rgba(0.18, 0.18, 0.18, 1)
+ }
+ GradientStop {
+ position: 1.0
+ color: clickable.pressed ? "#9C3335" : "black"
+ }
+ }
+ Clickable {
+ anchors.fill: parent
+ id: clickable
+ onPress: container.press()
+
+ textAnchors.horizontalCenter: horizontalCenter
+ textAnchors.verticalCenter: verticalCenter
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/CheckButton.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/CheckButton.qml
new file mode 100644
index 000000000..713d00d1b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/CheckButton.qml
@@ -0,0 +1,36 @@
+import QtQuick 2.0
+
+Rectangle {
+ signal press
+ property alias text: clickable.text
+
+ states: [
+ State {
+ name: 'pressed'
+ }
+ ]
+ id: container
+ border.color: "#333"
+ border.width: 1
+ height: 45
+ width: 150
+ radius: 3
+ gradient: Gradient {
+ GradientStop {
+ position: 0.0
+ color: (state === 'pressed' || clickable.pressed) ? "#3C1414" : Qt.rgba(0.18, 0.18, 0.18, 1)
+ }
+ GradientStop {
+ position: 1.0
+ color: (state === 'pressed' || clickable.pressed) ? "#9C3335" : "black"
+ }
+ }
+ Clickable {
+ anchors.fill: parent
+ id: clickable
+ onPress: { container.press(); container.state = (container.state === '') ? 'pressed' : '' }
+
+ textAnchors.horizontalCenter: horizontalCenter
+ textAnchors.verticalCenter: verticalCenter
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Clickable.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Clickable.qml
new file mode 100644
index 000000000..2fdc97d7c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Clickable.qml
@@ -0,0 +1,24 @@
+import QtQuick 2.0
+
+Item {
+ property alias text: text.text
+ property alias pressed: mousearea.pressed
+ property alias textAnchors: text.anchors
+ signal press
+
+ id: container
+
+ Text {
+ id: text
+ color: "white"
+ font.pixelSize: 16
+ }
+
+ MouseArea {
+ id: mousearea
+ width: parent.width
+ height: parent.height
+
+ onClicked: container.press()
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/GraphicalButton.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/GraphicalButton.qml
new file mode 100644
index 000000000..2e670682e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/GraphicalButton.qml
@@ -0,0 +1,40 @@
+import QtQuick 2.0
+
+Rectangle {
+ signal press
+ property alias text: clickable.text
+ property alias image: image.source
+
+ id: container
+ border.color: "#333"
+ border.width: 1
+ height: 110
+ width: 150
+ radius: 3
+ gradient: Gradient {
+ GradientStop {
+ position: 0.0
+ color: clickable.pressed ? "#3C1414" : Qt.rgba(0.18, 0.18, 0.18, 1)
+ }
+ GradientStop {
+ position: 1.0
+ color: clickable.pressed ? "#9C3335" : "black"
+ }
+ }
+ Clickable {
+ anchors.fill: parent
+ id: clickable
+ onPress: container.press()
+
+ textAnchors.horizontalCenter: horizontalCenter
+ textAnchors.bottom: bottom
+ textAnchors.bottomMargin: 10
+
+ Image {
+ id: image
+ anchors.top: parent.top
+ anchors.topMargin: 10
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/H1.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/H1.qml
new file mode 100644
index 000000000..b68c7f0f1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/H1.qml
@@ -0,0 +1,6 @@
+import QtQuick 2.0
+
+Text {
+ color: "#fff"
+ font.pixelSize: 32
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/H2.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/H2.qml
new file mode 100644
index 000000000..775838be0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/H2.qml
@@ -0,0 +1,9 @@
+import QtQuick 2.0
+
+Text {
+ color: "#fff"
+ font.pixelSize: 24
+ anchors.margins: 20
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/ImageButton.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/ImageButton.qml
new file mode 100644
index 000000000..81c18a431
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/ImageButton.qml
@@ -0,0 +1,13 @@
+import QtQuick 2.0
+
+Button {
+ property alias icon: icon.source
+
+ width: icon.width + 30
+
+ Image {
+ id: icon
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Key.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Key.qml
new file mode 100644
index 000000000..7fe5dbab8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Key.qml
@@ -0,0 +1,7 @@
+import QtQuick 2.0
+
+Button {
+ width: 60
+
+ onPress: keyboard.letterClicked(text)
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Keyboard.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Keyboard.qml
new file mode 100644
index 000000000..fc5d26aa8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Keyboard.qml
@@ -0,0 +1,129 @@
+import QtQuick 2.0
+
+Item {
+ signal letterClicked(string letter)
+ signal go()
+ id: keyboard
+
+ states: [
+ State {
+ name: 'numpad'
+ PropertyChanges {
+ target: qwerty
+ visible: false
+ }
+ PropertyChanges {
+ target: numpad
+ visible: true
+ }
+ }
+
+ ]
+
+ Column {
+ id: qwerty
+ anchors.fill: parent
+ spacing: 10
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ Key { text: "Q" }
+ Key { text: "W" }
+ Key { text: "E" }
+ Key { text: "R" }
+ Key { text: "T" }
+ Key { text: "Y" }
+ Key { text: "U" }
+ Key { text: "I" }
+ Key { text: "O" }
+ Key { text: "P" }
+ }
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ Key { text: "A" }
+ Key { text: "S" }
+ Key { text: "D" }
+ Key { text: "F" }
+ Key { text: "G" }
+ Key { text: "H" }
+ Key { text: "J" }
+ Key { text: "K" }
+ Key { text: "L" }
+ }
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ Key { text: "Z" }
+ Key { text: "X" }
+ Key { text: "C" }
+ Key { text: "V" }
+ Key { text: "B" }
+ Key { text: "N" }
+ Key { text: "M" }
+ }
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+ Button { text: "123"; width: 60
+ onPress: keyboard.state = 'numpad'
+ }
+ Button { text: "!@#"; width: 60 }
+ Key { text: " "; width: 300 }
+ Key { text: "." }
+ Key { text: "&" }
+ }
+ }
+
+ Column {
+ id: numpad
+ visible: false
+ anchors.fill: parent
+ spacing: 10
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ Key { text: "1" }
+ Key { text: "2" }
+ Key { text: "3" }
+ }
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ Key { text: "4" }
+ Key { text: "5" }
+ Key { text: "6" }
+ }
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ Key { text: "7" }
+ Key { text: "8" }
+ Key { text: "9" }
+ }
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ Button {
+ text: "ABC"
+ width: 60
+ onPress: keyboard.state = ''
+ }
+ Key { text: "*" }
+ Key { text: "0" }
+ Key { text: "#" }
+ Button {
+ text: "Go"
+ width: 60
+ onPress: keyboard.go()
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Keypad.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Keypad.qml
new file mode 100644
index 000000000..0dc0115ac
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Keypad.qml
@@ -0,0 +1,43 @@
+import QtQuick 2.0
+
+Item {
+ signal letterClicked(string letter)
+ id: keyboard
+
+ Column {
+ anchors.fill: parent
+ spacing: 10
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ Key { text: "1" }
+ Key { text: "2" }
+ Key { text: "3" }
+ }
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ Key { text: "4" }
+ Key { text: "5" }
+ Key { text: "6" }
+ }
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ Key { text: "7" }
+ Key { text: "8" }
+ Key { text: "9" }
+ }
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ Key { text: "*" }
+ Key { text: "0" }
+ Key { text: "#" }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/MediaBrowser.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/MediaBrowser.qml
new file mode 100644
index 000000000..f0ef3ed2a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/MediaBrowser.qml
@@ -0,0 +1,40 @@
+import QtQuick 2.0
+
+ListView {
+ id: listView
+ anchors.fill: parent
+ anchors.topMargin: 120
+ spacing: 10
+ clip: true
+ model: MediaModel
+
+ delegate: Button {
+ width: 500
+ anchors.horizontalCenter: parent.horizontalCenter
+ OverflowableText {
+ text: name
+ fontColor: "#fff"
+ font.pixelSize: 20
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ width: parent.width - 40
+ }
+ Text {
+ text: (model.count === 0) ? "" : model.count
+ anchors.right: parent.right
+ anchors.rightMargin: 20
+ anchors.verticalCenter: parent.verticalCenter
+ color: "#fff"
+ }
+
+ onPress: {
+ if (model.is_file) {
+ MediaPlayer.setPlaylist(model.pid, model.index);
+ usb.state = '';
+ } else {
+ MediaModel.browseToChild(model.id)
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/OverflowableText.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/OverflowableText.qml
new file mode 100644
index 000000000..314994361
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/OverflowableText.qml
@@ -0,0 +1,46 @@
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Rectangle {
+ id: oflow_text
+ property alias text: text.text
+ property alias font: text.font
+ property alias fontColor: text.color
+ property string textAlign
+ color: Qt.rgba(0,0,0,0)
+ height: text.font.pixelSize * 1.2
+ clip: true
+ Text {
+ id: text
+ Component.onCompleted: {
+ if (oflow_text.width < width) {
+ anchors.left = parent.left
+ }
+ else if (oflow_text.textAlign == 'center') {
+ anchors.horizontalCenter = parent.horizontalCenter
+ }
+ }
+
+ NumberAnimation on anchors.leftMargin {
+ id: scroll_animation
+ to: oflow_text.width - text.width
+ duration: ((oflow_text.width - text.width) < 0) ? (text.width - oflow_text.width) * 15 : 0
+ running: false
+ onStopped: {
+ restart_timer.start()
+ }
+ }
+ }
+
+ Timer {
+ id: scroll_timer
+ running: true
+ interval: 3000
+ onTriggered: { if (oflow_text.width < text.width) scroll_animation.start();}
+ }
+ Timer {
+ id: restart_timer
+ interval: 3000
+ onTriggered: text.anchors.leftMargin = 0
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/RadioButton.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/RadioButton.qml
new file mode 100644
index 000000000..676d65be3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/RadioButton.qml
@@ -0,0 +1,30 @@
+import QtQuick 2.0
+
+Rectangle {
+ signal press
+ property alias text: clickable.text
+ id: container
+ border.color: "#333"
+ border.width: 1
+ height: 45
+ width: 150
+ radius: 3
+ gradient: Gradient {
+ GradientStop {
+ position: 0.0
+ color: (container.focus || clickable.pressed) ? "#3C1414" : Qt.rgba(0.18, 0.18, 0.18, 1)
+ }
+ GradientStop {
+ position: 1.0
+ color: (container.focus || clickable.pressed) ? "#9C3335" : "black"
+ }
+ }
+ Clickable {
+ anchors.fill: parent
+ id: clickable
+ onPress: { container.forceActiveFocus(); container.press(); }
+
+ textAnchors.horizontalCenter: horizontalCenter
+ textAnchors.verticalCenter: verticalCenter
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/RadioButtonGroup.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/RadioButtonGroup.qml
new file mode 100644
index 000000000..d4266d149
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/RadioButtonGroup.qml
@@ -0,0 +1,5 @@
+import QtQuick 2.0
+
+FocusScope {
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Section.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Section.qml
new file mode 100644
index 000000000..18b5c22f7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Section.qml
@@ -0,0 +1,6 @@
+import QtQuick 2.0
+
+Loader {
+ anchors.fill: parent
+ asynchronous: true
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/TextBox.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/TextBox.qml
new file mode 100644
index 000000000..4c52e05b2
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/TextBox.qml
@@ -0,0 +1,29 @@
+import QtQuick 2.0
+
+Rectangle {
+ property alias text: text.text
+ property alias icon: icon.source
+
+ border.width: 2
+ color: 'black'
+ height: 42
+ radius: 3
+
+ Image {
+ id: icon
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ }
+
+ TextInput {
+ id: text
+ color: "white"
+ font.pixelSize: 24
+ anchors.left: icon.right
+ anchors.right: parent.right
+ anchors.leftMargin: 20
+ anchors.rightMargin: 10
+ anchors.verticalCenter: parent.verticalCenter
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/TextEntry.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/TextEntry.qml
new file mode 100644
index 000000000..774894c13
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/TextEntry.qml
@@ -0,0 +1,72 @@
+import QtQuick 2.0
+
+Item {
+ id: textentry
+ property alias input_border: search_text_box.border
+ property alias autocompleteModel: autocomplete.model
+ property alias text: search_text_box.text
+ signal selected
+ anchors.fill: parent
+
+ TextBox {
+ id: search_text_box
+ icon: "../Assets/SearchIcon.png"
+ anchors.top: parent.top
+ width: parent.width - 160
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ onTextChanged: if (autocomplete.model) autocomplete.model.setSearchString(text)
+ }
+
+ BackButton {
+ anchors.top: search_text_box.top
+ anchors.topMargin: 1
+ anchors.right: search_text_box.left
+ anchors.rightMargin: 10
+ onPress: section.state = 'menu'
+ }
+
+ ImageButton {
+ anchors.top: search_text_box.top
+ anchors.topMargin: 1
+ icon: "../Assets/DeleteIcon.png"
+ anchors.left: search_text_box.right
+ anchors.leftMargin: 10
+ height: 42
+
+ onPress: search_text_box.text = search_text_box.text.replace(/.$/, '')
+ }
+
+ Keyboard {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.topMargin: 40
+ anchors.top: search_text_box.bottom
+
+ onLetterClicked: search_text_box.text += letter
+ onGo: textentry.selected()
+ }
+
+ ListView {
+ id: autocomplete
+ anchors.top: search_text_box.bottom
+ anchors.bottom: parent.bottom
+ anchors.right: search_text_box.right
+ anchors.left: search_text_box.left
+ clip: true
+ visible: (count > 0 && count <= 5)
+
+ delegate: Button {
+ text: model.text
+ width: parent.width
+ textAnchors.horizontalCenter: undefined
+ textAnchors.left: clickable.left
+ textAnchors.leftMargin: 70
+
+ onPress: {
+ autocomplete.model.selected = model.text;
+ textentry.selected()
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Weather.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Weather.qml
new file mode 100644
index 000000000..0bcaf7720
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Components/Weather.qml
@@ -0,0 +1,34 @@
+import QtQuick 2.0
+
+Item {
+ property alias text: text.text
+ property alias temp: temp.text
+ property alias image: image.source
+
+ width: 150
+ height: 75
+
+ Text {
+ id: text
+ text: "Today"
+ anchors.top: parent.top
+ color: "#ffffff"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ Text {
+ id: temp
+ text: "72"
+ font.pixelSize: 36
+ anchors.bottom: parent.bottom
+ anchors.right: parent.right
+ color: "#ffffff"
+ }
+
+ Image {
+ id: image
+ source: "../Assets/Cloud.png"
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/EmptyLayout.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/EmptyLayout.qml
new file mode 100644
index 000000000..8fe6fcfd7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/EmptyLayout.qml
@@ -0,0 +1,16 @@
+import QtQuick 2.0
+import "../Components"
+
+Item {
+ anchors.fill: parent
+ anchors.topMargin: 70
+ anchors.leftMargin: 20
+ anchors.rightMargin: 20
+ anchors.bottomMargin: 70
+ property bool back_button: false
+
+ BackButton {
+ onPress: section.state = ''
+ visible: parent.back_button
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/LeftThirdSection.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/LeftThirdSection.qml
new file mode 100644
index 000000000..b0a7c2f6a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/LeftThirdSection.qml
@@ -0,0 +1,16 @@
+import QtQuick 2.0
+import "../Components"
+
+FocusScope {
+ anchors.fill: parent
+ property alias header: header.text
+
+ Text {
+ id: header
+ font.pixelSize: 24
+ color: "#ffffff"
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+ anchors.topMargin: 70
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/MediaLayout.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/MediaLayout.qml
new file mode 100644
index 000000000..767184de3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/MediaLayout.qml
@@ -0,0 +1,59 @@
+import QtQuick 2.0
+import "../Components"
+
+FocusScope {
+ anchors.fill: parent
+ property alias header: header.text
+ property alias artwork: artwork.source
+ property alias title: title.text
+ property alias artist: artist.text
+
+ Text {
+ id: title
+ text: ""
+ color: "#ffffff"
+ anchors.top: source_select.bottom
+ anchors.topMargin: 20
+ font.pixelSize: 28
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ }
+ Text {
+ id: artist
+ text: ""
+ color: "#ffffff"
+ anchors.top: title.bottom
+ anchors.topMargin: 10
+ font.pixelSize: 18
+ anchors.left: title.left
+ }
+
+ Text {
+ id: header
+ font.pixelSize: 24
+ color: "#ffffff"
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+ anchors.topMargin: parent.height / 20 + 60
+ }
+
+ Button {
+ id: source_select
+ text: "Select source"
+ x: 20
+ y: 75
+ onPress: section.state = 'menu'
+ }
+
+ Image {
+ id: artwork
+ anchors.right: parent.right
+ anchors.rightMargin: 40
+ anchors.top: parent.top
+ width: 230
+ height: 230
+ anchors.topMargin: 140
+ source: ""
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/MediaPlayerLayout.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/MediaPlayerLayout.qml
new file mode 100644
index 000000000..797815d05
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/MediaPlayerLayout.qml
@@ -0,0 +1,34 @@
+import QtQuick 2.0
+import "../Components"
+
+MediaLayout {
+
+ Row {
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 100
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ spacing: 10
+
+ ImageButton {
+ icon: "../Assets/Rewind.png"
+ onPress: MediaPlayer.previous()
+ }
+
+ ImageButton {
+ icon: "../Assets/Pause.png"
+ visible: MediaPlayer.playing
+ onPress: MediaPlayer.pause()
+ }
+ ImageButton {
+ icon: "../Assets/Play.png"
+ visible: ! MediaPlayer.playing
+ onPress: MediaPlayer.play()
+ }
+ ImageButton {
+ icon: "../Assets/Forward.png"
+ onPress: MediaPlayer.next()
+ }
+
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/TitledLayout.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/TitledLayout.qml
new file mode 100644
index 000000000..2ef47fa10
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Layouts/TitledLayout.qml
@@ -0,0 +1,14 @@
+import QtQuick 2.0
+import "../Components"
+
+EmptyLayout {
+ property alias title: title.text
+ anchors.topMargin: 120
+
+ H1 {
+ id: title
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.top
+ anchors.bottomMargin: 10
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/.usb.qml.swp b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/.usb.qml.swp
new file mode 100644
index 000000000..a88c240c3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/.usb.qml.swp
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/Browse/artists.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/Browse/artists.qml
new file mode 100644
index 000000000..af5804e72
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/Browse/artists.qml
@@ -0,0 +1,6 @@
+import QtQuick 2.0
+
+Rectangle {
+ width: 100
+ height: 62
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/applink.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/applink.qml
new file mode 100644
index 000000000..4f9d28196
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/applink.qml
@@ -0,0 +1,29 @@
+import QtQuick 2.0
+import com.ford.sdlcore 1.0
+import "../../Components"
+import "../../Layouts"
+
+MediaPlayerLayout {
+ header: "AppLink"
+ id: applink
+
+ Column {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+
+ Text {
+ id: title
+ text: AppLink.show1
+ color: "#ffffff"
+ font.pixelSize: 28
+ anchors.leftMargin: 20
+ }
+ Text {
+ id: artist
+ text: AppLink.show2
+ color: "#ffffff"
+ font.pixelSize: 18
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/bluetooth.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/bluetooth.qml
new file mode 100644
index 000000000..397b84469
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/bluetooth.qml
@@ -0,0 +1,13 @@
+import QtQuick 2.0
+import "../../Components"
+import "../../Layouts"
+
+MediaLayout {
+ header: "Bluetooth"
+
+ Image {
+ source: "../../Assets/Content/SiriusArtwork.png"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/fm.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/fm.qml
new file mode 100644
index 000000000..b5f3ad1c8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/fm.qml
@@ -0,0 +1,46 @@
+import QtQuick 2.0
+import "../../Components"
+import "../../Layouts"
+
+MediaLayout {
+ header: "FM"
+
+ Flickable {
+ width: 700
+ height: 50
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 80
+ contentHeight: height
+ contentWidth: row.width
+ clip: true
+
+ RadioButtonGroup {
+ width: row.width
+ height: row.height
+ Row {
+ id: row
+ spacing: 8
+
+ RadioButton {
+ text: "Button"
+ }
+ RadioButton {
+ text: "Button"
+ }
+ RadioButton {
+ text: "Button"
+ }
+ RadioButton {
+ text: "Button"
+ }
+ RadioButton {
+ text: "Button"
+ }
+ RadioButton {
+ text: "Button"
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/menu.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/menu.qml
new file mode 100644
index 000000000..d9d951ef3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/menu.qml
@@ -0,0 +1,54 @@
+import QtQuick 2.0
+import com.ford.sdlcore 1.0
+import "../../Components"
+import "../../Layouts"
+
+LeftThirdSection {
+ header: "Select a source"
+
+ Grid {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ GraphicalButton {
+ text: "Radio"
+ image: "../../Assets/RadioIcon.png"
+ onPress: section.state = 'fm'
+ }
+
+ GraphicalButton {
+ text: "Pandora"
+ image: "../../Assets/PandoraIcon.png"
+ onPress: section.state = 'fm'
+ }
+
+ GraphicalButton {
+ text: "Sirius"
+ image: "../../Assets/SiriusIcon.png"
+ onPress: section.state = 'sirius'
+ }
+
+ GraphicalButton {
+ text: "Bluetooth"
+ image: "../../Assets/BluetoothIcon.png"
+ onPress: section.state = 'bluetooth'
+ }
+
+ GraphicalButton {
+ text: "USB"
+ image: "../../Assets/UsbIcon.png"
+ onPress: section.state = 'usb'
+ }
+
+ Repeater {
+ model: MediaApps
+
+ delegate: GraphicalButton {
+ text: modelData
+ image: "../../Assets/UsbIcon.png"
+ onPress: section.state = 'applink'
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/sirius.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/sirius.qml
new file mode 100644
index 000000000..dfe9fc4d5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/sirius.qml
@@ -0,0 +1,13 @@
+import QtQuick 2.0
+import "../../Components"
+import "../../Layouts"
+
+MediaLayout {
+ header: "Sirius"
+
+ Image {
+ source: "../../Assets/Content/SiriusArtwork.png"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/usb.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/usb.qml
new file mode 100644
index 000000000..7236e98cb
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Media/usb.qml
@@ -0,0 +1,59 @@
+import QtQuick 2.0
+import "../../Components"
+import "../../Layouts"
+
+MediaPlayerLayout {
+ header: "USB"
+ id: usb
+
+ Button {
+ text: "Browse Media"
+ anchors.top: parent.top
+ anchors.right: parent.right
+ anchors.rightMargin: 40
+ anchors.topMargin: 75
+
+ onPress: parent.state = 'browse'
+ }
+
+ states: [
+ State {
+ name: 'browse'
+ PropertyChanges { target: browse_interface; visible: true; opacity: 0.9 }
+ }
+
+ ]
+
+ Rectangle {
+ color: "#000000"
+ opacity: 0
+ anchors.fill: parent
+ radius: 10
+ visible: false
+ id: browse_interface
+
+ BackButton {
+ id: back_button
+ anchors.topMargin: 80
+ anchors.leftMargin: 20
+ }
+
+
+ H2 {
+ id: header
+ text: "Browse Media"
+ anchors.topMargin: 80
+ }
+
+ Item {
+ anchors.fill: parent
+ id: browse_container
+ }
+
+ Button {
+ anchors.top: back_button.bottom
+ anchors.left: parent.left
+ text: "Jump"
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/.menu.qml.swp b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/.menu.qml.swp
new file mode 100644
index 000000000..183438e03
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/.menu.qml.swp
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/favorites.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/favorites.qml
new file mode 100644
index 000000000..db16b994b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/favorites.qml
@@ -0,0 +1,70 @@
+import QtQuick 2.0
+import com.ford.navcore 1.0
+import "../../Components"
+import "../../Layouts"
+
+Item {
+ BackButton { onPress: section.state = 'menu' }
+ NavController {
+ id: navController
+ }
+
+ Flickable {
+ height: 300
+ width: 400
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ clip: true
+ contentWidth: content.width
+ contentHeight: content.height
+
+ Column {
+ id: content
+ width: parent.width
+ spacing: 10
+
+ Button {
+ text: "Barry Church's home"
+ width: parent.width
+ onPress: {
+ navController.beginNavigation("USA", "MI", "Davison", "Victoria Sta", "3465");
+ section.state = 'map';
+ }
+ }
+ Button {
+ text: "Subway"
+ width: parent.width
+ onPress: {
+ navController.beginNavigation("USA", "MI", "Dearborn Heights", "Pelham St", "3929");
+ section.state = 'map';
+ }
+ }
+ Button {
+ text: "Ford World Headquarters"
+ width: parent.width
+ onPress: {
+ navController.beginNavigation("USA", "MI", "Dearborn", "American Rd", "1");
+ section.state = 'map';
+ }
+ }
+ Button {
+ text: "Qdoba"
+ width: parent.width
+ onPress: {
+ navController.beginNavigation("USA", "MI", "Allen Park", "Fairlane Dr", "48101");
+ section.state = 'map';
+ }
+ }
+ Button {
+ text: "Levagood Park"
+ width: parent.width
+ onPress: {
+ navController.beginNavigation("USA", "MI", "Dearborn", "Denwood St", "1100");
+ section.state = 'map';
+ }
+ }
+
+ }
+ }
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/keyboard_search.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/keyboard_search.qml
new file mode 100644
index 000000000..011c76164
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/keyboard_search.qml
@@ -0,0 +1,64 @@
+import QtQuick 2.0
+import "../../Components"
+import "../../Layouts"
+
+Item {
+ anchors.fill: parent
+ id: keyboard_search
+
+ states: [
+ State {
+ name: 'city'
+ PropertyChanges {target: text_entry; autocompleteModel: citySuggestions}
+ },
+ State {
+ name: 'street'
+ PropertyChanges {target: text_entry; autocompleteModel: streetSuggestions}
+ },
+ State {
+ name: 'door'
+ PropertyChanges {target: text_entry; autocompleteModel: undefined}
+ },
+ State {
+ name: 'review'
+ PropertyChanges {target: text_entry; visible: false}
+ PropertyChanges {target: review; visible: true}
+ }
+ ]
+
+ Column {
+ id: review
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: 500
+
+ visible: false
+ Button {
+ text: stateSuggestions.selected
+ width: parent.width
+ onPress: keyboard_search.state = ""
+ }
+ Button {
+ text: citySuggestions.selected
+ width: parent.width
+ onPress: keyboard_search.state = "city"
+ }
+ Button {
+ text: streetSuggestions.selected
+ width: parent.width
+ onPress: keyboard_search.state = "city"
+ }
+ Button {
+ id: doornumber
+ width: parent.width
+ onPress: keyboard_search.state = "door"
+ }
+ Button {
+ text: "Begin navigation"
+ anchors.horizontalCenter: parent.horizontalCenter
+ onPress: {
+ section.state = 'map';
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/map.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/map.qml
new file mode 100644
index 000000000..8b48efe78
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/map.qml
@@ -0,0 +1,63 @@
+import QtQuick 2.0
+import "../../Components"
+
+Item {
+ Column {
+ anchors.left: parent.left;
+ anchors.verticalCenter: parent.verticalCenter
+ spacing: 10
+
+ Button {
+ text: "Zoom in"
+ }
+
+ Button {
+ text: "Zoom out"
+ }
+
+ Button {
+ text: "3D"
+ }
+
+ Button {
+ text: "2D"
+ }
+
+ Button {
+ text: "North up"
+ }
+ }
+
+ Rectangle {
+ width: next_turn.width + 20
+ height: 30
+ anchors.top: parent.top
+ anchors.topMargin: 65
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: "black"
+ opacity: 0.6
+
+ }
+
+ Rectangle {
+ width: current_street.width + 20
+ height: 30
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 65
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: "black"
+ opacity: 0.6
+ visible: navController.current_street.length > 0
+
+ }
+
+
+ Button {
+ text: "Go"
+ anchors.top: parent.top
+ anchors.topMargin: 3
+ anchors.right: parent.right
+ anchors.rightMargin: 20
+ onPress: section.state = 'menu'
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/menu.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/menu.qml
new file mode 100644
index 000000000..fdcae3f58
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/menu.qml
@@ -0,0 +1,57 @@
+import QtQuick 2.0
+import "../../Components"
+import "../../Layouts"
+
+EmptyLayout {
+ back_button: true
+
+ Grid {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ GraphicalButton {
+ text: "Home"
+ image: "../../Assets/HomeIcon.png"
+ onPress: {
+ section.state = 'map';
+ }
+ }
+ GraphicalButton {
+ text: "Work"
+ image: "../../Assets/WorkIcon.png"
+ onPress: {
+ section.state = 'map';
+ }
+ }
+ GraphicalButton {
+ text: "Recent Destination"
+ image: "../../Assets/RecentDestinationsIcon.png"
+ onPress: section.state = 'recent_destinations'
+ }
+ GraphicalButton {
+ text: "Keyboard"
+ image: "../../Assets/KeyboardIcon.png"
+ onPress: section.state = 'keyboard_search'
+ }
+ GraphicalButton {
+ text: "Favorites"
+ image: "../../Assets/FavoritesIcon.png"
+ onPress: section.state = 'favorites'
+ }
+ GraphicalButton {
+ text: "Point of Interest"
+ image: "../../Assets/PoiIcon.png"
+ onPress: section.state = 'poi'
+ }
+ GraphicalButton {
+ text: "Scout"
+ image: "../../Assets/ScoutIcon.png"
+ }
+ GraphicalButton {
+ text: "SYNC Services"
+ image: "../../Assets/ServicesIcon.png"
+ onPress: section.state = "video_moving_map"
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/poi.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/poi.qml
new file mode 100644
index 000000000..0ecea8a11
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/poi.qml
@@ -0,0 +1,205 @@
+import QtQuick 2.0
+import com.ford.navcore 1.0
+import "../../Components"
+import "../../Layouts"
+
+EmptyLayout {
+ anchors.fill: parent
+ back_button: true
+ id: poi_search
+
+ Component.onCompleted: state = "search_type"
+
+ states: [
+ State {
+ name: 'search_type'
+ PropertyChanges {
+ target: search_type
+ visible: true
+ }
+ },
+ State {
+ name: 'categories'
+ PropertyChanges {
+ target: category_select
+ visible: true
+ }
+ },
+ State {
+ name: 'select_state'
+ PropertyChanges {
+ target: text_entry
+ visible: true
+ }
+ },
+ State {
+ name: 'results'
+ PropertyChanges {
+ target: results
+ visible: true
+ }
+ },
+ State {
+ name: 'result'
+ PropertyChanges {
+ target: result
+ visible: true
+ }
+ }
+ ]
+
+ NavController {
+ id: navController
+ }
+
+ Grid {
+ id: search_type
+ property string type
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+ visible: false
+
+ GraphicalButton {
+ text: "Near me"
+ image: "../../Assets/HomeIcon.png"
+ onPress: {
+ search_type.type = "nearby"
+ poi_search.state = "categories"
+ }
+ }
+
+ GraphicalButton {
+ text: "Along route"
+ image: "../../Assets/HomeIcon.png"
+ onPress: {
+ search_type.type = "route"
+ poi_search.state = "categories"
+ }
+ }
+
+ GraphicalButton {
+ text: "In city"
+ image: "../../Assets/HomeIcon.png"
+ onPress: {
+ search_type.type = "city"
+ poi_search.state = "select_state"
+ }
+ }
+ }
+
+ ListView {
+ id: category_select
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ height: parent.height - 120
+ width: parent.width
+ spacing: 10
+ clip: true
+
+ GraphicalButton {
+ text: "Search by name"
+ image: "../../Assets/HomeIcon.png"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ }
+
+ visible: false
+ model: NavPoiCategoryListModel { id: poi_categories }
+
+ delegate: Button {
+ property int category_id: id
+ text: name
+ width: 400
+ anchors.horizontalCenter: parent.horizontalCenter
+ onPress: {
+ navController.poiSearch(search_type.type, category_id, "USA", state_suggestions.getSelected(), city_suggestions.getSelected());
+ poi_search.state = "results"
+ }
+ }
+ }
+
+ ListView {
+ id: results
+ visible: false
+ anchors.topMargin: 80
+ anchors.top: parent.top
+ anchors.bottomMargin: 80
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: 400
+ height: parent.height - 120
+ spacing: 10
+ clip: true
+
+ model: NavPoiSuggestionListModel {
+ id: poi_suggestions
+ }
+
+ delegate: Button {
+ text: name
+ width: parent.width
+ onPress: {
+ results.currentIndex = index
+ poi_search.state = "result"
+ }
+ }
+ }
+
+ Item {
+ anchors.fill: parent
+ anchors.topMargin: 80
+ anchors.bottomMargin: 80
+ id: result
+ visible: false
+
+ H1 {
+ id: poi_name
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: (results.currentItem ? results.currentItem.text : "")
+ }
+
+ Button {
+ text: "Begin navigation"
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: poi_name.bottom
+ onPress: {
+ poi_suggestions.navigateToResult(results.currentIndex);
+ section.state = 'map'
+ }
+ }
+ }
+
+ TextEntry {
+ id: text_entry
+ anchors.topMargin: 80
+ input_border.color: "#3C7855"
+
+ states: [
+ State {
+ name: "city_select"
+ PropertyChanges {
+ target: text_entry
+ autocompleteModel: city_suggestions
+ }
+ }
+
+ ]
+
+ NavStateSuggestionListModel { id: state_suggestions }
+ NavCitySuggestionListModel { id: city_suggestions; stateListModel: state_suggestions }
+ autocompleteModel: state_suggestions
+ visible: false
+
+ onSelected: {
+ if (text_entry.state === '') {
+ text = "";
+ text_entry.state = 'city_select';
+ }
+ else {
+ poi_search.state = 'categories'
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/recent_destinations.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/recent_destinations.qml
new file mode 100644
index 000000000..db16b994b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/recent_destinations.qml
@@ -0,0 +1,70 @@
+import QtQuick 2.0
+import com.ford.navcore 1.0
+import "../../Components"
+import "../../Layouts"
+
+Item {
+ BackButton { onPress: section.state = 'menu' }
+ NavController {
+ id: navController
+ }
+
+ Flickable {
+ height: 300
+ width: 400
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ clip: true
+ contentWidth: content.width
+ contentHeight: content.height
+
+ Column {
+ id: content
+ width: parent.width
+ spacing: 10
+
+ Button {
+ text: "Barry Church's home"
+ width: parent.width
+ onPress: {
+ navController.beginNavigation("USA", "MI", "Davison", "Victoria Sta", "3465");
+ section.state = 'map';
+ }
+ }
+ Button {
+ text: "Subway"
+ width: parent.width
+ onPress: {
+ navController.beginNavigation("USA", "MI", "Dearborn Heights", "Pelham St", "3929");
+ section.state = 'map';
+ }
+ }
+ Button {
+ text: "Ford World Headquarters"
+ width: parent.width
+ onPress: {
+ navController.beginNavigation("USA", "MI", "Dearborn", "American Rd", "1");
+ section.state = 'map';
+ }
+ }
+ Button {
+ text: "Qdoba"
+ width: parent.width
+ onPress: {
+ navController.beginNavigation("USA", "MI", "Allen Park", "Fairlane Dr", "48101");
+ section.state = 'map';
+ }
+ }
+ Button {
+ text: "Levagood Park"
+ width: parent.width
+ onPress: {
+ navController.beginNavigation("USA", "MI", "Dearborn", "Denwood St", "1100");
+ section.state = 'map';
+ }
+ }
+
+ }
+ }
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/video_moving_map.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/video_moving_map.qml
new file mode 100644
index 000000000..2f6b798d1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Navigation/video_moving_map.qml
@@ -0,0 +1,20 @@
+import QtQuick 2.0
+import "../../Components"
+import QtMultimedia 5.0
+
+Item {
+ Video {
+ anchors.fill: parent
+ source: "rtsp://172.20.10.7:8086"
+ autoPlay: true
+ }
+
+ Button {
+ text: "Go"
+ anchors.top: parent.top
+ anchors.topMargin: 3
+ anchors.right: parent.right
+ anchors.rightMargin: 20
+ onPress: section.state = 'menu'
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/device_info.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/device_info.qml
new file mode 100644
index 000000000..1f409f58e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/device_info.qml
@@ -0,0 +1,21 @@
+import QtQuick 2.0
+import "../../Components"
+import com.ford.phonecore 1.0
+
+Item {
+ anchors.fill: parent
+
+ H2 {
+ id: h2
+ text: PhoneCore.device_name
+
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ Button {
+ text: "Forget device"
+ onPress: PhoneCore.unpairDevice()
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: h2.bottom
+ anchors.topMargin: 20
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/discovery.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/discovery.qml
new file mode 100644
index 000000000..5d7c51be6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/discovery.qml
@@ -0,0 +1,23 @@
+import QtQuick 2.0
+import com.ford.phonecore 1.0
+import "../../Components"
+
+Item {
+ ListView {
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: 300
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ spacing: 10
+
+ delegate: Button {
+ text: name
+ width: parent.width
+ onPress: bluetooth_devices.createPairedDevice(mac)
+ }
+
+ model: BluetoothDiscoveredDevices {
+ id: bluetooth_devices
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/keypad.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/keypad.qml
new file mode 100644
index 000000000..fd5ed4ff0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/keypad.qml
@@ -0,0 +1,55 @@
+import QtQuick 2.0
+import com.ford.phonecore 1.0
+import "../../Components"
+import "../../Layouts"
+
+Item {
+ anchors.top: parent.top
+ anchors.topMargin: 80
+
+ TextBox {
+ id: phone_number
+ border.color: Qt.rgba(0.454901961,0.37254902,0.203921569,1)
+ anchors.top: parent.top
+ width: parent.width - 160
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ BackButton {
+ anchors.top: phone_number.top
+ anchors.topMargin: 1
+ anchors.right: phone_number.left
+ anchors.rightMargin: 10
+ onPress: section.state = ''
+ }
+
+ ImageButton {
+ anchors.top: phone_number.top
+ anchors.topMargin: 1
+ icon: "../../Assets/DeleteIcon.png"
+ anchors.left: phone_number.right
+ anchors.leftMargin: 10
+ height: 42
+
+ onPress: phone_number.text = phone_number.text.replace(/.$/, '')
+ }
+
+ Keypad {
+ anchors.topMargin: 40
+ anchors.top: phone_number.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ onLetterClicked: phone_number.text += letter
+ }
+
+ Button {
+ text: "Call"
+ onPress: PhoneCore.dial(phone_number.text);
+ y: 100
+ }
+ Button {
+ text: "End call"
+ onPress: PhoneCore.hangup();
+ y: 160
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/manage_devices.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/manage_devices.qml
new file mode 100644
index 000000000..cf62a9c28
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/manage_devices.qml
@@ -0,0 +1,16 @@
+import QtQuick 2.0
+import com.ford.phonecore 1.0
+import "../../Components"
+import "../../Layouts"
+
+TitledLayout {
+ title: "Manage Bluetooth devices"
+ back_button: true
+
+ Loader {
+ id: view
+
+ anchors.fill: parent
+ source: (PhoneCore.device_name === "") ? "discovery.qml" : "device_info.qml"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/menu.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/menu.qml
new file mode 100644
index 000000000..2d53656ba
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/menu.qml
@@ -0,0 +1,54 @@
+import QtQuick 2.0
+import "../../Components"
+import "../../Layouts"
+
+LeftThirdSection {
+ Grid {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ GraphicalButton {
+ text: "Do Not Disturb"
+ image: "../../Assets/DndIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Phonebook"
+ image: "../../Assets/PhonebookIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Voicemail"
+ image: "../../Assets/VoicemailIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Messages"
+ image: "../../Assets/MessagesIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Recent Calls"
+ image: "../../Assets/RecentCallsIcon.png"
+ onPress: section.state = 'recent_calls'
+ }
+
+ GraphicalButton {
+ text: "Keypad"
+ image: "../../Assets/KeypadIcon.png"
+ onPress: section.state = 'keypad'
+ }
+
+ GraphicalButton {
+ text: "Speed Dial"
+ image: "../../Assets/SpeedDialIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Devices"
+ image: "../../Assets/SpeedDialIcon.png"
+ onPress: section.state = 'manage_devices'
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/recent_calls.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/recent_calls.qml
new file mode 100644
index 000000000..1873ed438
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Phone/recent_calls.qml
@@ -0,0 +1,62 @@
+import QtQuick 2.0
+import com.ford.phonecore 1.0
+import "../../Components"
+import "../../Layouts"
+
+TitledLayout {
+ title: "Recent calls"
+ Component.onCompleted: PhoneCore.hangup()
+ back_button: true
+
+ Flickable {
+ height: 300
+ width: 400
+ anchors.top: parent.top
+ anchors.horizontalCenter: parent.horizontalCenter
+ clip: true
+ contentWidth: content.width
+ contentHeight: content.height
+
+ Column {
+ id: content
+ width: parent.width
+ spacing: 10
+
+ Button {
+ text: "Chris Church: Mobile"
+ onPress: PhoneCore.dial("8106567195")
+ width: parent.width
+ }
+ Button {
+ text: "Barry Church: Mobile"
+ onPress: PhoneCore.dial("3134074522")
+ width: parent.width
+ }
+ Button {
+ text: "Barry Church: Work"
+ onPress: PhoneCore.dial("3134074522")
+ width: parent.width
+ }
+ Button {
+ text: "Aaron Church: Mobile"
+ onPress: PhoneCore.dial("3134074522")
+ width: parent.width
+ }
+ Button {
+ text: "Aaron Church: Mobile"
+ onPress: PhoneCore.dial("3134074522")
+ width: parent.width
+ }
+ Button {
+ text: "Aaron Church: Mobile"
+ onPress: PhoneCore.dial("3134074522")
+ width: parent.width
+ }
+ Button {
+ text: "Aaron Church: Mobile"
+ onPress: PhoneCore.dial("3134074522")
+ width: parent.width
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Vehicle/menu.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Vehicle/menu.qml
new file mode 100644
index 000000000..b95bc52da
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/Vehicle/menu.qml
@@ -0,0 +1,60 @@
+import QtQuick 2.0
+import "../../Components"
+import "../../Layouts"
+
+LeftThirdSection {
+ MultiPointTouchArea {
+ anchors.fill: parent
+ }
+
+ Grid {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: 10
+
+ GraphicalButton {
+ text: "HEV"
+ image: "../../Assets/EvIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Ambient Lighting"
+ image: "../../Assets/LightingIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Wallpaper"
+ image: "../../Assets/WallpaperIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Wi-Fi"
+ image: "../../Assets/WifiIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Health Report"
+ image: "../../Assets/VhrIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Seats"
+ image: "../../Assets/SeatsIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Keypad Entry"
+ image: "../../Assets/KeypadEntryIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Sync Services"
+ image: "../../Assets/ServicesIcon.png"
+ }
+
+ GraphicalButton {
+ text: "Add Shortcut"
+ image: "../../Assets/AddIcon.png"
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/alert.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/alert.qml
new file mode 100644
index 000000000..f19539b9b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/alert.qml
@@ -0,0 +1,68 @@
+import QtQuick 2.0
+
+Item {
+ property alias text: alert_text.text
+ id: alert_item
+ opacity: 0
+
+ transitions: Transition {
+ NumberAnimation {
+ properties: "opacity"
+ }
+ }
+
+ function alert(message) {
+ text = message;
+ state = 'alerting';
+ alert_timer.start();
+ }
+
+ states: [
+ State {
+ name: 'alerting'
+ PropertyChanges {
+ target: alert_item
+ opacity: 1
+ }
+ }
+ ]
+
+ Timer {
+ id: alert_timer
+ running: false
+ interval: 4000
+ onTriggered: alert_item.state = '';
+ }
+
+
+ Rectangle {
+ id: background
+ anchors.fill: parent
+ color: "#000"
+ opacity: 0.8
+ }
+
+ Rectangle {
+ color: "#111"
+ width: 500
+ height: alert_text.height + 40
+ radius: 8
+ border.color: "#666"
+ border.width: 2
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+
+ Text {
+ id: alert_text
+ text: "This is a really really long long really really long longreally really long longreally really long longreally really long long alert"
+ color: "#fff"
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: 24
+ width: parent.width
+ wrapMode: Text.WordWrap
+ }
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/chrome.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/chrome.qml
new file mode 100644
index 000000000..b8f4f09d5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/chrome.qml
@@ -0,0 +1,144 @@
+import QtQuick 2.0
+import "../Components"
+
+Item {
+ id: container
+ anchors.fill: parent
+
+ property int horizontalLabelMargin: 20
+
+ Image {
+ id: phonetab
+ source: "../Assets/PhoneTab.png"
+ anchors.top: parent.top
+ anchors.topMargin: (root.state === "phone") ? -height : 0
+ Behavior on anchors.topMargin { PropertyAnimation {} }
+ width: parent.width / 2 - 145
+ height: parent.height / 20 + 25
+
+ Clickable {
+ anchors.fill: parent
+ text: "Phone"
+ onPress: go("phone")
+ textAnchors.verticalCenter: verticalCenter
+ textAnchors.leftMargin: horizontalLabelMargin
+ textAnchors.left: left
+ }
+ }
+ Row {
+ anchors.right: phonetab.right
+ anchors.rightMargin: phonetab.width / 4
+ anchors.top: parent.top
+ height: phonetab.height
+ spacing: 10
+
+ Image {
+ source: "../Assets/PhoneCornerIcons.png"
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ }
+
+
+ Image {
+ source: "../Assets/NavigationTab.png"
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.topMargin: (root.state === "navigation") ? -height : 0
+ Behavior on anchors.topMargin { PropertyAnimation {} }
+ width: parent.width / 2 - 145
+ height: parent.height / 20 + 25
+
+ Clickable {
+ anchors.fill: parent
+ text: "Navigation"
+ onPress: go("navigation")
+ textAnchors.verticalCenter: verticalCenter
+ textAnchors.rightMargin: horizontalLabelMargin
+ textAnchors.right: right
+ }
+ }
+
+ Image {
+ id: test1
+ source: "../Assets/MediaTab.png"
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: (root.state === "media") ? -height : 0
+ anchors.left: parent.left
+ Behavior on anchors.bottomMargin { PropertyAnimation {} }
+ width: parent.width / 2 - 145
+ height: parent.height / 20 + 25
+
+ Clickable {
+ anchors.fill: parent
+ text: "Media"
+ onPress: go("media")
+ textAnchors.verticalCenter: verticalCenter
+ textAnchors.leftMargin: horizontalLabelMargin
+ textAnchors.left: left
+ }
+ }
+
+ Image {
+ source: "../Assets/VehicleTab.png"
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: (root.state === "vehicle") ? -height : 0
+ Behavior on anchors.bottomMargin { PropertyAnimation {} }
+ width: parent.width / 2 - 145
+ height: parent.height / 20 + 25
+
+ Clickable {
+ anchors.fill: parent
+ text: "Vehicle"
+ onPress: go("vehicle")
+ textAnchors.verticalCenter: verticalCenter
+ textAnchors.rightMargin: horizontalLabelMargin
+ textAnchors.right: right
+ }
+ }
+
+ Image {
+ id: chrometop
+ source: "../Assets/ChromeTop.png"
+ anchors.top: parent.top
+ anchors.horizontalCenter: parent.horizontalCenter
+ height: parent.height / 18 + 35
+ width: parent.width / 2 + 40
+ fillMode: Image.PreserveAspectFit
+ Clickable {
+ onPress: go((root.state === 'home_corners') ? 'home' : 'home_corners')
+ width: parent.width / 5
+ height: parent.height
+ anchors.left: parent.left
+ anchors.leftMargin: (parent.width - parent.paintedWidth)/2 + 20
+ }
+
+ Text {
+ id: clock
+ text: "12:00"
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+ anchors.topMargin: 10
+ color: "#ffffff"
+ font.pixelSize: 28
+ }
+ }
+ Image {
+ source: "../Assets/ChromeBottom.png"
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ height: parent.height / 18 + 35
+ width: parent.width / 2
+ fillMode: Image.PreserveAspectFit
+
+ Text {
+ id: exterior_temp
+ text: "72F Outside"
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ color: "#ffffff"
+ anchors.bottomMargin: 15
+ font.pixelSize: 18
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/home.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/home.qml
new file mode 100644
index 000000000..c45f66782
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/home.qml
@@ -0,0 +1,51 @@
+import QtQuick 2.0
+import "../Components"
+import "../Layouts"
+import com.ford.phonecore 1.0
+
+LeftThirdSection {
+ header: "Good Morning, Jen"
+
+ Column {
+ anchors.left: parent.left
+ anchors.leftMargin: 60
+ spacing: 40
+ anchors.verticalCenter: parent.verticalCenter
+
+ Weather {}
+ Weather {
+ text: "Tonight"
+ temp: "55"
+ image: "../Assets/CloudNight.png"
+ }
+ }
+
+
+ Image {
+ id: schedule
+ source: "../Assets/CMaxCal.png"
+ anchors.right: parent.right
+ anchors.rightMargin: 70
+ anchors.verticalCenter: parent.verticalCenter
+ }
+
+ Column {
+ anchors.right: schedule.left
+ anchors.rightMargin: 20
+ anchors.top: schedule.top
+ anchors.topMargin: 5
+ spacing: 40
+
+ Button {
+ text: "Dial"
+ }
+ Button {
+ text: "Navigate"
+ }
+ Button {
+ text: "Siri"
+ onPress: PhoneCore.siriEyesFree()
+ visible: PhoneCore.device_state === "connected" || PhoneCore.device_state === "playing"
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/home_corners.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/home_corners.qml
new file mode 100644
index 000000000..432e978b8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/home_corners.qml
@@ -0,0 +1,133 @@
+import QtQuick 2.0
+import com.ford.phonecore 1.0
+import "../Components"
+import "../Layouts"
+
+Item {
+
+ Image {
+ source: "../Assets/Crosshairs.png"
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ }
+
+ Item {
+ width: parent.width / 2
+ height: parent.height / 2
+
+ Image {
+ id: phone_corner_icon
+ visible: (PhoneCore.device_state === "connected")
+ source: "../Assets/PhoneIcons.png"
+ anchors.top: parent.top
+ anchors.topMargin: 80
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ OverflowableText {
+ id: phone_name
+ text: PhoneCore.device_name
+ anchors.top: phone_corner_icon.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ textAlign: 'center'
+ anchors.topMargin: 10
+ width: 350
+ fontColor: (PhoneCore.device_state === "connected") ? "#ffffff" : "#333"
+ font.pixelSize: 24
+ }
+
+ Text {
+ text: "Connecting..."
+ anchors.top: phone_name.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.topMargin: 10
+ color: "#333"
+ visible: (PhoneCore.device_state === "connecting")
+ font.pixelSize: 24
+ }
+
+ CheckButton {
+ text: "Do Not Disturb"
+ visible: (PhoneCore.device_state === "connected")
+ anchors.top: phone_name.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.topMargin: 10
+ }
+
+
+
+ Row {
+ anchors.top: phone_name.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.topMargin: 10
+ visible: (PhoneCore.device_state === "disconnected")
+ spacing: 10
+
+ Button {
+ text: "Connect"
+ onPress: {
+ PhoneCore.initializeDevice()
+ }
+ }
+
+ Button {
+ text: "Manage Phones"
+ onPress: {
+ go("phone");
+ }
+ }
+ }
+
+ }
+
+ Item {
+ width: parent.width / 2
+ height: parent.height / 2
+ anchors.right: parent.right
+ }
+
+ Item {
+ width: parent.width / 2
+ height: parent.height / 2
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+
+ Image {
+ source: "../Assets/VehicleCornerIcon.png"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+
+ Item {
+ width: parent.width / 2
+ height: parent.height / 2
+ anchors.bottom: parent.bottom
+
+ Image {
+ id: media_corner_icon
+ source: "../Assets/UsbIcon.png"
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+ anchors.topMargin: 40
+ }
+
+ Text {
+ id: media_artist
+ text: ""
+ font.pixelSize: 18
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: media_corner_icon.bottom
+ color: "#ffffff"
+ anchors.topMargin: 10
+ }
+
+ Text {
+ id: media_title
+ text: ""
+ font.pixelSize: 24
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: media_artist.bottom
+ color: "#ffffff"
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/media.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/media.qml
new file mode 100644
index 000000000..af33ddaff
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/media.qml
@@ -0,0 +1,55 @@
+import QtQuick 2.0
+import "../Components"
+import "../Layouts"
+
+Rectangle {
+ anchors.fill: parent
+ id: section
+
+ gradient: Gradient {
+ GradientStop { position: 0.8; color: "#000000" }
+ GradientStop { position: 1.0; color: "#7C3232" }
+ }
+
+ states: [
+ State {
+ name: 'menu'
+ PropertyChanges { target: page; source: "Media/menu.qml" }
+ },
+ State {
+ name: 'fm'
+ PropertyChanges { target: page; source: "Media/fm.qml" }
+ },
+ State {
+ name: 'sirius'
+ PropertyChanges { target: page; source: "Media/sirius.qml" }
+ },
+ State {
+ name: 'usb'
+ PropertyChanges { target: page; source: "Media/usb.qml" }
+ },
+ State {
+ name: 'bluetooth'
+ PropertyChanges { target: page; source: "Media/bluetooth.qml" }
+ },
+ State {
+ name: 'applink'
+ PropertyChanges { target: page; source: "Media/applink.qml" }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ to: "bluetooth"
+ },
+ Transition {
+ to: "usb"
+ }
+
+ ]
+
+ Section {
+ id: page
+ source: "Media/usb.qml"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/navigation.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/navigation.qml
new file mode 100644
index 000000000..e26326b45
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/navigation.qml
@@ -0,0 +1,49 @@
+import QtQuick 2.0
+import "../Components"
+import "../Layouts"
+
+Rectangle {
+ id: section
+ anchors.fill: parent
+
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: "#3C7855" }
+ GradientStop { position: 0.4; color: "#000000" }
+ }
+
+ Section {
+ id: page
+ source: "Navigation/map.qml"
+ }
+
+ states: [
+ State {
+ name: ''
+ PropertyChanges { target: page; source: "Navigation/map.qml" }
+ },
+ State {
+ name: 'menu'
+ PropertyChanges { target: page; source: "Navigation/menu.qml" }
+ },
+ State {
+ name: 'keyboard_search'
+ PropertyChanges { target: page; source: "Navigation/keyboard_search.qml" }
+ },
+ State {
+ name: 'favorites'
+ PropertyChanges { target: page; source: "Navigation/favorites.qml" }
+ },
+ State {
+ name: 'recent_destinations'
+ PropertyChanges { target: page; source: "Navigation/recent_destinations.qml" }
+ },
+ State {
+ name: 'poi'
+ PropertyChanges { target: page; source: "Navigation/poi.qml" }
+ },
+ State {
+ name: 'video_moving_map'
+ PropertyChanges { target: page; source: "Navigation/video_moving_map.qml" }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/phone.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/phone.qml
new file mode 100644
index 000000000..8c2987f2f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/phone.qml
@@ -0,0 +1,37 @@
+import QtQuick 2.0
+import "../Components"
+import "../Layouts"
+
+Rectangle {
+ id: section
+ anchors.fill: parent
+
+ states: [
+ State {
+ name: ''
+ PropertyChanges { target: page; source: "Phone/menu.qml" }
+ },
+ State {
+ name: 'recent_calls'
+ PropertyChanges { target: page; source: "Phone/recent_calls.qml" }
+ },
+ State {
+ name: 'keypad'
+ PropertyChanges { target: page; source: "Phone/keypad.qml" }
+ },
+ State {
+ name: 'manage_devices'
+ PropertyChanges { target: page; source: "Phone/manage_devices.qml" }
+ }
+ ]
+
+ gradient: Gradient {
+ GradientStop { position: 0.0; color: Qt.rgba(0.454901961,0.37254902,0.203921569,1) }
+ GradientStop { position: 0.4; color: "#000000" }
+ }
+
+ Section {
+ id: page
+ source: "Phone/menu.qml"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/vehicle.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/vehicle.qml
new file mode 100644
index 000000000..9687e7c46
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/Sections/vehicle.qml
@@ -0,0 +1,17 @@
+import QtQuick 2.0
+import "../Components"
+import "../Layouts"
+
+Rectangle {
+ anchors.fill: parent
+
+ gradient: Gradient {
+ GradientStop { position: 0.4; color: "#000000" }
+ GradientStop { position: 1.0; color: "#104369" }
+ }
+
+ Section {
+ id: section
+ source: "Vehicle/menu.qml"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/main.qml b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/main.qml
new file mode 100644
index 000000000..c6f0b0e76
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qml/Bananas/main.qml
@@ -0,0 +1,79 @@
+import QtQuick 2.0
+import "Components"
+import com.ford.sdlcore 1.0
+import com.ford.phonecore 1.0
+
+Rectangle {
+ id: root
+ width: 800
+ height: 470
+ color: "#000"
+
+ states: [
+ State {
+ name: "home"
+ PropertyChanges { target: maincontent; source: "Sections/home.qml" }
+ },
+ State {
+ name: "home_corners"
+ PropertyChanges { target: maincontent; source: "Sections/home_corners.qml" }
+ },
+ State {
+ name: "phone"
+ PropertyChanges { target: maincontent; source: "Sections/phone.qml" }
+ },
+ State {
+ name: "navigation"
+ PropertyChanges { target: maincontent; source: "Sections/navigation.qml" }
+ },
+ State {
+ name: "media"
+ PropertyChanges { target: maincontent; source: "Sections/media.qml" }
+ },
+ State {
+ name: "vehicle"
+ PropertyChanges { target: maincontent; source: "Sections/vehicle.qml" }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ to: '*'
+ PropertyAnimation { target: maincontent; property: 'opacity'; from: 0; to: 1}
+ }
+ ]
+
+ function go(string) {
+ state = string
+ }
+
+ Connections {
+ target: AppLink
+ onAlert: root.alert(message);
+ }
+
+ Connections {
+ target: PhoneCore
+ onCallAdded: root.alert("Incoming call: \n" + name + "\n" + number)
+ onCallRemoved: root.alert("Call ended")
+ }
+
+ function alert(message) {
+ alert_loader.item.alert(message)
+ }
+
+ Section {
+ id: maincontent
+ source: "Sections/home.qml"
+ }
+
+ Section {
+ id: alert_loader
+ source: "Sections/alert.qml"
+ }
+
+ Section {
+ id: chrome
+ source: "Sections/chrome.qml"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.cpp b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.cpp
new file mode 100644
index 000000000..547602d83
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.cpp
@@ -0,0 +1,70 @@
+// checksum 0x56a9 version 0x80001
+/*
+ This file was generated by the Qt Quick 2 Application wizard of Qt Creator.
+ QtQuick2ApplicationViewer is a convenience class containing mobile device specific
+ code such as screen orientation handling. Also QML paths and debugging are
+ handled here.
+ It is recommended not to modify this file, since newer versions of Qt Creator
+ may offer an updated version of it.
+*/
+
+#include "qtquick2applicationviewer.h"
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QDir>
+#include <QtQml/QQmlEngine>
+
+class QtQuick2ApplicationViewerPrivate
+{
+ QString mainQmlFile;
+ friend class QtQuick2ApplicationViewer;
+ static QString adjustPath(const QString &path);
+};
+
+QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path)
+{
+#if defined(Q_OS_MAC)
+ if (!QDir::isAbsolutePath(path))
+ return QString::fromLatin1("%1/../Resources/%2")
+ .arg(QCoreApplication::applicationDirPath(), path);
+#elif defined(Q_OS_UNIX)
+ const QString pathInInstallDir =
+ QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
+ if (QFileInfo(pathInInstallDir).exists())
+ return pathInInstallDir;
+#endif
+ return path;
+}
+
+QtQuick2ApplicationViewer::QtQuick2ApplicationViewer(QWindow *parent)
+ : QQuickView(parent)
+ , d(new QtQuick2ApplicationViewerPrivate())
+{
+ connect(engine(), SIGNAL(quit()), SLOT(close()));
+ setResizeMode(QQuickView::SizeRootObjectToView);
+}
+
+QtQuick2ApplicationViewer::~QtQuick2ApplicationViewer()
+{
+ delete d;
+}
+
+void QtQuick2ApplicationViewer::setMainQmlFile(const QString &file)
+{
+ d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file);
+ setSource(QUrl::fromLocalFile(d->mainQmlFile));
+}
+
+void QtQuick2ApplicationViewer::addImportPath(const QString &path)
+{
+ engine()->addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path));
+}
+
+void QtQuick2ApplicationViewer::showExpanded()
+{
+#if defined(Q_WS_SIMULATOR)
+ showFullScreen();
+#else
+ show();
+#endif
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.h b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.h
new file mode 100644
index 000000000..baf67f247
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.h
@@ -0,0 +1,33 @@
+// checksum 0xfde6 version 0x80001
+/*
+ This file was generated by the Qt Quick 2 Application wizard of Qt Creator.
+ QtQuick2ApplicationViewer is a convenience class containing mobile device specific
+ code such as screen orientation handling. Also QML paths and debugging are
+ handled here.
+ It is recommended not to modify this file, since newer versions of Qt Creator
+ may offer an updated version of it.
+*/
+
+#ifndef QTQUICK2APPLICATIONVIEWER_H
+#define QTQUICK2APPLICATIONVIEWER_H
+
+#include <QtQuick/QQuickView>
+
+class QtQuick2ApplicationViewer : public QQuickView
+{
+ Q_OBJECT
+
+public:
+ explicit QtQuick2ApplicationViewer(QWindow *parent = 0);
+ virtual ~QtQuick2ApplicationViewer();
+
+ void setMainQmlFile(const QString &file);
+ void addImportPath(const QString &path);
+
+ void showExpanded();
+
+private:
+ class QtQuick2ApplicationViewerPrivate *d;
+};
+
+#endif // QTQUICK2APPLICATIONVIEWER_H
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/.gitignore b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/.gitignore
new file mode 100644
index 000000000..47f0e1ba0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/.gitignore
@@ -0,0 +1,5 @@
+*.pro.user
+*.o
+moc_*.cpp
+Makefile
+*.so
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/FordSdlCore.pro b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/FordSdlCore.pro
new file mode 100644
index 000000000..ea541b24c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/FordSdlCore.pro
@@ -0,0 +1,48 @@
+TEMPLATE = lib
+TARGET = FordSdlCore
+QT += qml quick
+CONFIG += qt plugin
+
+TARGET = $$qtLibraryTarget($$TARGET)
+uri = com.ford.sdlcore
+
+# Input
+SOURCES += \
+ fordsdlcore_plugin.cpp \
+ smartdevicelink.cpp \
+ sdlalert.cpp \
+ QtWebsocket/QWsSocket.cpp \
+ QtWebsocket/QWsServer.cpp \
+ sdlappslistmodel.cpp
+
+HEADERS += \
+ fordsdlcore_plugin.h \
+ smartdevicelink.h \
+ sdlalert.h \
+ QtWebsocket/QWsSocket.h \
+ QtWebsocket/QWsServer.h \
+ sdlappslistmodel.h
+
+OTHER_FILES = qmldir
+
+!equals(_PRO_FILE_PWD_, $$OUT_PWD) {
+ copy_qmldir.target = $$OUT_PWD/qmldir
+ copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir
+ copy_qmldir.commands = $(COPY_FILE) \"$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)\"
+ QMAKE_EXTRA_TARGETS += copy_qmldir
+ PRE_TARGETDEPS += $$copy_qmldir.target
+}
+
+qmldir.files = qmldir
+unix {
+ installPath = ../BananaSnacks/plugins/com/ford/sdlcore
+ qmldir.path = $$installPath
+ target.path = $$installPath
+ INSTALLS += target qmldir
+}
+
+linux-g++* {
+ QMAKE_CXXFLAGS += -m32
+ QMAKE_LFLAGS += -m32
+}
+QMAKE_LIBDIR += /usr/lib/i386-linux-gnu/mesa
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.cpp b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.cpp
new file mode 100644
index 000000000..5e86daa2f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.cpp
@@ -0,0 +1,470 @@
+#include "QWsServer.h"
+
+#include <QRegExp>
+#include <QStringList>
+#include <QByteArray>
+#include <QCryptographicHash>
+#include <QDateTime>
+
+const QString QWsServer::regExpResourceNameStr( QLatin1String("^GET\\s(.*)\\sHTTP/1.1\r\n") );
+const QString QWsServer::regExpHostStr( QLatin1String("\r\nHost:\\s(.+(:\\d+)?)\r\n") );
+const QString QWsServer::regExpKeyStr( QLatin1String("\r\nSec-WebSocket-Key:\\s(.{24})\r\n") );
+const QString QWsServer::regExpKey1Str( QLatin1String("\r\nSec-WebSocket-Key1:\\s(.+)\r\n") );
+const QString QWsServer::regExpKey2Str( QLatin1String("\r\nSec-WebSocket-Key2:\\s(.+)\r\n") );
+const QString QWsServer::regExpKey3Str( QLatin1String("\r\n(.{8})$") );
+const QString QWsServer::regExpVersionStr( QLatin1String("\r\nSec-WebSocket-Version:\\s(\\d+)\r\n") );
+const QString QWsServer::regExpOriginStr( QLatin1String("\r\nSec-WebSocket-Origin:\\s(.+)\r\n") );
+const QString QWsServer::regExpOrigin2Str( QLatin1String("\r\nOrigin:\\s(.+)\r\n") );
+const QString QWsServer::regExpProtocolStr( QLatin1String("\r\nSec-WebSocket-Protocol:\\s(.+)\r\n") );
+const QString QWsServer::regExpExtensionsStr( QLatin1String("\r\nSec-WebSocket-Extensions:\\s(.+)\r\n") );
+
+QWsServer::QWsServer(QObject * parent)
+ : QObject(parent)
+{
+ tcpServer = new QTcpServer(this);
+ connect( tcpServer, SIGNAL(newConnection()), this, SLOT(newTcpConnection()) );
+ qsrand( QDateTime::currentMSecsSinceEpoch() );
+}
+
+QWsServer::~QWsServer()
+{
+ tcpServer->deleteLater();
+}
+
+bool QWsServer::listen(const QHostAddress & address, quint16 port)
+{
+ return tcpServer->listen(address, port);
+}
+
+void QWsServer::close()
+{
+ tcpServer->close();
+}
+
+QAbstractSocket::SocketError QWsServer::serverError()
+{
+ return tcpServer->serverError();
+}
+
+QString QWsServer::errorString()
+{
+ return tcpServer->errorString();
+}
+
+void QWsServer::newTcpConnection()
+{
+ QTcpSocket * tcpSocket = tcpServer->nextPendingConnection();
+ connect( tcpSocket, SIGNAL(readyRead()), this, SLOT(dataReceived()) );
+ headerBuffer.insert( tcpSocket, QStringList() );
+}
+
+void QWsServer::closeTcpConnection()
+{
+ QTcpSocket * tcpSocket = qobject_cast<QTcpSocket*>( sender() );
+ if (tcpSocket == 0)
+ return;
+
+ tcpSocket->close();
+}
+
+void QWsServer::dataReceived()
+{
+ QTcpSocket * tcpSocket = qobject_cast<QTcpSocket*>( sender() );
+ if (tcpSocket == 0)
+ return;
+
+ bool allHeadersFetched = false;
+
+ const QLatin1String emptyLine("\r\n");
+
+ while ( tcpSocket->canReadLine() )
+ {
+ QString line = tcpSocket->readLine();
+
+ if (line == emptyLine)
+ {
+ allHeadersFetched = true;
+ break;
+ }
+
+ headerBuffer[ tcpSocket ].append(line);
+ }
+
+ if (!allHeadersFetched)
+ return;
+
+ QString request( headerBuffer[ tcpSocket ].join("") );
+
+ QRegExp regExp;
+ regExp.setMinimal( true );
+
+ // Extract mandatory datas
+ // Version
+ regExp.setPattern( QWsServer::regExpVersionStr );
+ regExp.indexIn(request);
+ QString versionStr = regExp.cap(1);
+ EWebsocketVersion version;
+ if ( ! versionStr.isEmpty() )
+ {
+ version = (EWebsocketVersion)versionStr.toInt();
+ }
+ else if ( tcpSocket->bytesAvailable() >= 8 )
+ {
+ version = WS_V0;
+ request.append( tcpSocket->read(8) );
+ }
+ else
+ {
+ version = WS_VUnknow;
+ }
+
+ // Resource name
+ regExp.setPattern( QWsServer::regExpResourceNameStr );
+ regExp.indexIn(request);
+ QString resourceName = regExp.cap(1);
+
+ // Host (address & port)
+ regExp.setPattern( QWsServer::regExpHostStr );
+ regExp.indexIn(request);
+ QString host = regExp.cap(1);
+ QStringList hostTmp = host.split(':');
+ QString hostAddress = hostTmp[0];
+ QString hostPort;
+ if ( hostTmp.size() > 1 )
+ hostPort = hostTmp.last(); // fix for IPv6
+
+ // Key
+ QString key, key1, key2, key3;
+ if ( version >= WS_V4 )
+ {
+ regExp.setPattern( QWsServer::regExpKeyStr );
+ regExp.indexIn(request);
+ key = regExp.cap(1);
+ }
+ else
+ {
+ regExp.setPattern( QWsServer::regExpKey1Str );
+ regExp.indexIn(request);
+ key1 = regExp.cap(1);
+ regExp.setPattern( QWsServer::regExpKey2Str );
+ regExp.indexIn(request);
+ key2 = regExp.cap(1);
+ regExp.setPattern( QWsServer::regExpKey3Str );
+ regExp.indexIn(request);
+ key3 = regExp.cap(1);
+ }
+
+ ////////////////////////////////////////////////////////////////////
+
+ // If the mandatory fields are not specified, we abord the connection to the Websocket server
+ if ( version == WS_VUnknow || resourceName.isEmpty() || hostAddress.isEmpty() || ( key.isEmpty() && ( key1.isEmpty() || key2.isEmpty() || key3.isEmpty() ) ) )
+ {
+ // Send bad request response
+ QString response = QWsServer::composeBadRequestResponse( QList<EWebsocketVersion>() << WS_V6 << WS_V7 << WS_V8 << WS_V13 );
+ tcpSocket->write( response.toUtf8() );
+ tcpSocket->flush();
+ return;
+ }
+
+ ////////////////////////////////////////////////////////////////////
+
+ // Extract optional datas
+
+ // Origin
+ regExp.setPattern( QWsServer::regExpOriginStr );
+ if ( regExp.indexIn(request) == -1 )
+ {
+ regExp.setPattern( QWsServer::regExpOrigin2Str );
+ regExp.indexIn(request);
+ }
+ QString origin = regExp.cap(1);
+
+ // Protocol
+ regExp.setPattern( QWsServer::regExpProtocolStr );
+ regExp.indexIn(request);
+ QString protocol = regExp.cap(1);
+
+ // Extensions
+ regExp.setPattern( QWsServer::regExpExtensionsStr );
+ regExp.indexIn(request);
+ QString extensions = regExp.cap(1);
+
+ ////////////////////////////////////////////////////////////////////
+
+ // Compose opening handshake response
+ QString response;
+
+ if ( version >= WS_V6 )
+ {
+ QString accept = computeAcceptV4( key );
+ response = QWsServer::composeOpeningHandshakeResponseV6( accept, protocol );
+ }
+ else if ( version >= WS_V4 )
+ {
+ QString accept = computeAcceptV4( key );
+ QString nonce = generateNonce();
+ response = QWsServer::composeOpeningHandshakeResponseV4( accept, nonce, protocol );
+ }
+ else
+ {
+ QString accept = computeAcceptV0( key1, key2, key3 );
+ response = QWsServer::composeOpeningHandshakeResponseV0( accept, origin, hostAddress, hostPort, resourceName , protocol );
+ }
+
+ // Handshake OK, disconnect readyRead
+ disconnect( tcpSocket, SIGNAL(readyRead()), this, SLOT(dataReceived()) );
+
+ // Send opening handshake response
+ if ( version == WS_V0 )
+ tcpSocket->write( response.toLatin1() );
+ else
+ tcpSocket->write( response.toUtf8() );
+ tcpSocket->flush();
+
+ QWsSocket * wsSocket = new QWsSocket( this, tcpSocket, version );
+ wsSocket->setResourceName( resourceName );
+ wsSocket->setHost( host );
+ wsSocket->setHostAddress( hostAddress );
+ wsSocket->setHostPort( hostPort.toInt() );
+ wsSocket->setOrigin( origin );
+ wsSocket->setProtocol( protocol );
+ wsSocket->setExtensions( extensions );
+ wsSocket->serverSideSocket = true;
+
+ // ORIGINAL CODE
+ //int socketDescriptor = tcpSocket->socketDescriptor();
+ //incomingConnection( socketDescriptor );
+
+ // CHANGED CODE FOR LINUX COMPATIBILITY
+ addPendingConnection( wsSocket );
+ emit newConnection();
+}
+
+void QWsServer::incomingConnection( int socketDescriptor )
+{
+ QTcpSocket * tcpSocket = new QTcpSocket( tcpServer );
+ tcpSocket->setSocketDescriptor( socketDescriptor, QAbstractSocket::ConnectedState );
+ QWsSocket * wsSocket = new QWsSocket( this, tcpSocket );
+
+ addPendingConnection( wsSocket );
+ emit newConnection();
+}
+
+void QWsServer::addPendingConnection( QWsSocket * socket )
+{
+ if ( pendingConnections.size() < maxPendingConnections() )
+ pendingConnections.enqueue( socket );
+}
+
+QWsSocket * QWsServer::nextPendingConnection()
+{
+ return pendingConnections.dequeue();
+}
+
+bool QWsServer::hasPendingConnections()
+{
+ if ( pendingConnections.size() > 0 )
+ return true;
+ return false;
+}
+
+int QWsServer::maxPendingConnections()
+{
+ return tcpServer->maxPendingConnections();
+}
+
+bool QWsServer::isListening()
+{
+ return tcpServer->isListening();
+}
+
+QNetworkProxy QWsServer::proxy()
+{
+ return tcpServer->proxy();
+}
+
+QHostAddress QWsServer::serverAddress()
+{
+ return tcpServer->serverAddress();
+}
+
+quint16 QWsServer::serverPort()
+{
+ return tcpServer->serverPort();
+}
+
+void QWsServer::setMaxPendingConnections( int numConnections )
+{
+ tcpServer->setMaxPendingConnections( numConnections );
+}
+
+void QWsServer::setProxy( const QNetworkProxy & networkProxy )
+{
+ tcpServer->setProxy( networkProxy );
+}
+
+bool QWsServer::setSocketDescriptor( int socketDescriptor )
+{
+ return tcpServer->setSocketDescriptor( socketDescriptor );
+}
+
+int QWsServer::socketDescriptor()
+{
+ return tcpServer->socketDescriptor();
+}
+
+bool QWsServer::waitForNewConnection( int msec, bool * timedOut )
+{
+ return tcpServer->waitForNewConnection( msec, timedOut );
+}
+
+QString QWsServer::computeAcceptV0( QString key1, QString key2, QString key3 )
+{
+ QString numStr1;
+ QString numStr2;
+
+ QChar carac;
+ for ( int i=0 ; i<key1.size() ; i++ )
+ {
+ carac = key1[ i ];
+ if ( carac.isDigit() )
+ numStr1.append( carac );
+ }
+ for ( int i=0 ; i<key2.size() ; i++ )
+ {
+ carac = key2[ i ];
+ if ( carac.isDigit() )
+ numStr2.append( carac );
+ }
+
+ quint32 num1 = numStr1.toUInt();
+ quint32 num2 = numStr2.toUInt();
+
+ int numSpaces1 = key1.count( ' ' );
+ int numSpaces2 = key2.count( ' ' );
+
+ num1 /= numSpaces1;
+ num2 /= numSpaces2;
+
+ QString concat = serializeInt( num1 ) + serializeInt( num2 ) + key3;
+
+ QByteArray md5 = QCryptographicHash::hash( concat.toLatin1(), QCryptographicHash::Md5 );
+
+ return QString( md5 );
+}
+
+QString QWsServer::computeAcceptV4(QString key)
+{
+ key += QLatin1String("258EAFA5-E914-47DA-95CA-C5AB0DC85B11");
+ QByteArray hash = QCryptographicHash::hash ( key.toUtf8(), QCryptographicHash::Sha1 );
+ return hash.toBase64();
+}
+
+QString QWsServer::generateNonce()
+{
+ qsrand( QDateTime::currentDateTime().toTime_t() );
+
+ QByteArray nonce;
+ int i = 16;
+
+ while( i-- )
+ {
+ nonce.append( qrand() % 0x100 );
+ }
+
+ return QString( nonce.toBase64() );
+}
+
+QByteArray QWsServer::serializeInt( quint32 number, quint8 nbBytes )
+{
+ QByteArray ba;
+ quint8 currentNbBytes = 0;
+ while (number > 0 && currentNbBytes < nbBytes)
+ {
+ char car = static_cast<char>(number & 0xFF);
+ ba.prepend( car );
+ number = number >> 8;
+ currentNbBytes++;
+ }
+ char car = 0x00;
+ while (currentNbBytes < nbBytes)
+ {
+ ba.prepend( car );
+ currentNbBytes++;
+ }
+ return ba;
+}
+
+QString QWsServer::composeOpeningHandshakeResponseV0( QString accept, QString origin, QString hostAddress, QString hostPort, QString resourceName, QString protocol )
+{
+ QString response;
+
+ response.append( QLatin1String("HTTP/1.1 101 WebSocket Protocol Handshake\r\n") );
+ response.append( QLatin1String("Upgrade: Websocket\r\n") );
+ response.append( QLatin1String("Connection: Upgrade\r\n") );
+ response.append( QLatin1String("Sec-WebSocket-Origin: ") + origin + QLatin1String("\r\n") );
+ response.append( QLatin1String("Sec-WebSocket-Location: ws://") + hostAddress);
+ if (!hostPort.isEmpty())
+ response.append(QLatin1String(":") + hostPort);
+ response.append(resourceName + QLatin1String("\r\n"));
+ if ( ! protocol.isEmpty() )
+ response.append( QLatin1String("Sec-WebSocket-Protocol: ") + protocol + QLatin1String("\r\n") );
+ response.append( QLatin1String("\r\n") );
+ response.append( accept );
+
+ return response;
+}
+
+QString QWsServer::composeOpeningHandshakeResponseV4( QString accept, QString nonce, QString protocol, QString extensions )
+{
+ QString response;
+
+ response.append( QLatin1String("HTTP/1.1 101 Switching Protocols\r\n") );
+ response.append( QLatin1String("Upgrade: websocket\r\n") );
+ response.append( QLatin1String("Connection: Upgrade\r\n") );
+ response.append( QLatin1String("Sec-WebSocket-Accept: ") + accept + QLatin1String("\r\n") );
+ response.append( QLatin1String("Sec-WebSocket-Nonce: ") + nonce + QLatin1String("\r\n") );
+ if ( ! protocol.isEmpty() )
+ response.append( QLatin1String("Sec-WebSocket-Protocol: ") + protocol + QLatin1String("\r\n") );
+ if ( ! extensions.isEmpty() )
+ response.append( QLatin1String("Sec-WebSocket-Extensions: ") + extensions + QLatin1String("\r\n") );
+ response.append( QLatin1String("\r\n") );
+
+ return response;
+}
+
+QString QWsServer::composeOpeningHandshakeResponseV6( QString accept, QString protocol, QString extensions )
+{
+ QString response;
+
+ response.append( QLatin1String("HTTP/1.1 101 Switching Protocols\r\n") );
+ response.append( QLatin1String("Upgrade: websocket\r\n") );
+ response.append( QLatin1String("Connection: Upgrade\r\n") );
+ response.append( QLatin1String("Sec-WebSocket-Accept: ") + accept + QLatin1String("\r\n") );
+ if ( ! protocol.isEmpty() )
+ response.append( QLatin1String("Sec-WebSocket-Protocol: ") + protocol + QLatin1String("\r\n") );
+ if ( ! extensions.isEmpty() )
+ response.append( QLatin1String("Sec-WebSocket-Extensions: ") + extensions + QLatin1String("\r\n") );
+ response.append( QLatin1String("\r\n") );
+
+ return response;
+}
+
+QString QWsServer::composeBadRequestResponse( QList<EWebsocketVersion> versions )
+{
+ QString response;
+
+ response.append( QLatin1String("HTTP/1.1 400 Bad Request\r\n") );
+ if ( ! versions.isEmpty() )
+ {
+ QString versionsStr = QString::number( (int)versions.takeLast() );
+ int i = versions.size();
+ while ( i-- )
+ {
+ versionsStr.append( QLatin1String(", ") + QString::number( (int)versions.takeLast() ) );
+ }
+ response.append( QLatin1String("Sec-WebSocket-Version: ") + versionsStr + QLatin1String("\r\n") );
+ }
+
+ return response;
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.h b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.h
new file mode 100644
index 000000000..c526c747a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.h
@@ -0,0 +1,87 @@
+#ifndef QWSSERVER_H
+#define QWSSERVER_H
+
+#include <QTcpServer>
+#include <QTcpSocket>
+#include <QNetworkProxy>
+#include <QString>
+#include <QStringList>
+#include <QMap>
+#include <QQueue>
+
+#include "QWsSocket.h"
+
+class QWsServer : public QObject
+{
+ Q_OBJECT
+
+public:
+ // ctor
+ QWsServer(QObject * parent = 0);
+ // dtor
+ virtual ~QWsServer();
+
+ // public functions
+ void close();
+ QString errorString();
+ bool hasPendingConnections();
+ bool isListening();
+ bool listen(const QHostAddress & address = QHostAddress::Any, quint16 port = 0);
+ int maxPendingConnections();
+ virtual QWsSocket * nextPendingConnection();
+ QNetworkProxy proxy();
+ QHostAddress serverAddress();
+ QAbstractSocket::SocketError serverError();
+ quint16 serverPort();
+ void setMaxPendingConnections( int numConnections );
+ void setProxy( const QNetworkProxy & networkProxy );
+ bool setSocketDescriptor( int socketDescriptor );
+ int socketDescriptor();
+ bool waitForNewConnection( int msec = 0, bool * timedOut = 0 );
+
+signals:
+ void newConnection();
+
+protected:
+ // protected functions
+ void addPendingConnection( QWsSocket * socket );
+ virtual void incomingConnection( int socketDescriptor );
+
+private slots:
+ // private slots
+ void newTcpConnection();
+ void closeTcpConnection();
+ void dataReceived();
+
+private:
+ // private attributes
+ QTcpServer * tcpServer;
+ QQueue<QWsSocket*> pendingConnections;
+ QMap<const QTcpSocket*, QStringList> headerBuffer;
+
+public:
+ // public static functions
+ static QByteArray serializeInt( quint32 number, quint8 nbBytes = 4 );
+ static QString computeAcceptV0( QString key1, QString key2, QString thirdPart );
+ static QString computeAcceptV4( QString key );
+ static QString generateNonce();
+ static QString composeOpeningHandshakeResponseV0( QString accept, QString origin, QString hostAddress, QString hostPort, QString resourceName, QString protocol = "" );
+ static QString composeOpeningHandshakeResponseV4( QString accept, QString nonce, QString protocol = "", QString extensions = "" );
+ static QString composeOpeningHandshakeResponseV6( QString accept, QString protocol = "", QString extensions = "" );
+ static QString composeBadRequestResponse( QList<EWebsocketVersion> versions = QList<EWebsocketVersion>() );
+
+ // public static vars
+ static const QString regExpResourceNameStr;
+ static const QString regExpHostStr;
+ static const QString regExpKeyStr;
+ static const QString regExpKey1Str;
+ static const QString regExpKey2Str;
+ static const QString regExpKey3Str;
+ static const QString regExpVersionStr;
+ static const QString regExpOriginStr;
+ static const QString regExpOrigin2Str;
+ static const QString regExpProtocolStr;
+ static const QString regExpExtensionsStr;
+};
+
+#endif // QWSSERVER_H
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.cpp b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.cpp
new file mode 100644
index 000000000..540b909e0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.cpp
@@ -0,0 +1,792 @@
+#include "QWsSocket.h"
+
+#include <QCryptographicHash>
+#include <QtEndian>
+
+#include "QWsServer.h"
+
+int QWsSocket::maxBytesPerFrame = 1400;
+const QString QWsSocket::regExpAcceptStr(QLatin1String("Sec-WebSocket-Accept:\\s(.{28})\r\n"));
+const QString QWsSocket::regExpUpgradeStr(QLatin1String("Upgrade:\\s(.+)\r\n"));
+const QString QWsSocket::regExpConnectionStr(QLatin1String("Connection:\\s(.+)\r\n"));
+
+QWsSocket::QWsSocket( QObject * parent, QTcpSocket * socket, EWebsocketVersion ws_v ) :
+ QAbstractSocket( QAbstractSocket::UnknownSocketType, parent ),
+ tcpSocket( socket ? socket : new QTcpSocket(this) ),
+ _version( ws_v ),
+ _hostPort( -1 ),
+ closingHandshakeSent( false ),
+ closingHandshakeReceived( false ),
+ readingState( HeaderPending ),
+ isFinalFragment( false ),
+ hasMask( false ),
+ payloadLength( 0 ),
+ maskingKey( 4, 0 ),
+ serverSideSocket( false )
+{
+ tcpSocket->setParent( this );
+
+ QAbstractSocket::setSocketState( tcpSocket->state() );
+ QAbstractSocket::setPeerAddress( tcpSocket->peerAddress() );
+ QAbstractSocket::setPeerPort( tcpSocket->peerPort() );
+
+ if ( _version == WS_V0 )
+ connect( tcpSocket, SIGNAL(readyRead()), this, SLOT(processDataV0()) );
+ else if ( _version >= WS_V4 )
+ connect( tcpSocket, SIGNAL(readyRead()), this, SLOT(processDataV4()) );
+ connect( tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SIGNAL(error(QAbstractSocket::SocketError)) );
+ connect( tcpSocket, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)), this, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)) );
+ connect( tcpSocket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(processTcpStateChanged(QAbstractSocket::SocketState)) );
+ connect( tcpSocket, SIGNAL(readChannelFinished()), this, SIGNAL(readChannelFinished()) );
+ connect( tcpSocket, SIGNAL(hostFound()), this, SIGNAL(hostFound()) );
+}
+
+QWsSocket::~QWsSocket()
+{
+ QAbstractSocket::SocketState state = QAbstractSocket::state();
+ if ( state != QAbstractSocket::UnconnectedState )
+ {
+ qDebug() << "CloseAway, socket destroyed in server";
+ close( CloseGoingAway, QLatin1String("The server destroyed the socket.") );
+ tcpSocket->abort();
+ QAbstractSocket::setSocketState( QAbstractSocket::UnconnectedState );
+ QAbstractSocket::stateChanged( QAbstractSocket::UnconnectedState );
+ emit QAbstractSocket::disconnected();
+ }
+}
+
+void QWsSocket::connectToHost( const QString & hostName, quint16 port, OpenMode mode )
+{
+ QWsSocket::connectToHost( QHostAddress(hostName), port, mode );
+}
+
+void QWsSocket::connectToHost( const QHostAddress &address, quint16 port, OpenMode mode )
+{
+ handshakeResponse.clear();
+ setPeerAddress( address );
+ setPeerPort( port );
+ setOpenMode( mode );
+ tcpSocket->connectToHost( address, port, mode );
+}
+
+void QWsSocket::disconnectFromHost()
+{
+ QWsSocket::close();
+}
+
+void QWsSocket::abort( QString reason )
+{
+ QWsSocket::close( CloseAbnormalDisconnection, reason );
+ tcpSocket->abort();
+}
+
+void QWsSocket::close( ECloseStatusCode closeStatusCode, QString reason )
+{
+ if ( QAbstractSocket::state() == QAbstractSocket::UnconnectedState )
+ return;
+
+ if ( ! closingHandshakeSent )
+ {
+ switch ( _version )
+ {
+ case WS_V4:
+ case WS_V5:
+ case WS_V6:
+ case WS_V7:
+ case WS_V8:
+ case WS_V13:
+ {
+ // Compose and send close frame
+ QByteArray BA;
+
+ // Body
+ if ( closeStatusCode == NoCloseStatusCode )
+ {
+ // Header
+ BA.append( QWsSocket::composeHeader( true, OpClose, 0 ) );
+ }
+ else
+ {
+ // Header
+ QByteArray maskingKey;
+ if ( ! serverSideSocket )
+ maskingKey = QWsSocket::generateMaskingKey();
+ BA.append( QWsSocket::composeHeader( true, OpClose, reason.size() + 2, maskingKey ) );
+
+ QByteArray body;
+
+ // Close status code (optional)
+ body.append( QWsServer::serializeInt( (int)closeStatusCode, 2 ) );
+
+ // Reason (optional)
+ if ( reason.size() )
+ {
+ QByteArray reason_ba = reason.toUtf8();
+ if ( ! serverSideSocket )
+ {
+ reason_ba = QWsSocket::mask( reason_ba, maskingKey );
+ }
+ body.append( reason_ba );
+ }
+
+ BA.append( body );
+ }
+
+ // Send closing handshake
+ tcpSocket->write( BA );
+
+ break;
+ }
+ case WS_V0:
+ {
+ QByteArray closeFrame;
+ closeFrame.append( (char)0xFF );
+ closeFrame.append( (char)0x00 );
+ tcpSocket->write( closeFrame );
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+
+ closingHandshakeSent = true;
+ }
+
+ if ( QAbstractSocket::state() != QAbstractSocket::ClosingState )
+ {
+ QAbstractSocket::setSocketState( QAbstractSocket::ClosingState );
+ emit QAbstractSocket::stateChanged( QAbstractSocket::ClosingState );
+ emit QAbstractSocket::aboutToClose();
+ }
+
+ if ( closingHandshakeSent && closingHandshakeReceived )
+ {
+ QAbstractSocket::setSocketState( QAbstractSocket::UnconnectedState );
+ emit stateChanged( QAbstractSocket::UnconnectedState );
+ emit disconnected();
+ tcpSocket->disconnectFromHost();
+ }
+}
+
+qint64 QWsSocket::write( const QString & string )
+{
+ if ( _version == WS_V0 )
+ {
+ return QWsSocket::write( string.toUtf8() );
+ }
+
+ const QList<QByteArray>& framesList = QWsSocket::composeFrames( string.toUtf8(), false, maxBytesPerFrame );
+ return writeFrames( framesList );
+}
+
+qint64 QWsSocket::write( const QByteArray & byteArray )
+{
+ if ( _version == WS_V0 )
+ {
+ QByteArray BA;
+ BA.append( (char)0x00 );
+ BA.append( byteArray );
+ BA.append( (char)0xFF );
+ return writeFrame( BA );
+ }
+
+ const QList<QByteArray>& framesList = QWsSocket::composeFrames( byteArray, true, maxBytesPerFrame );
+
+ qint64 nbBytesWritten = writeFrames( framesList );
+ emit bytesWritten( nbBytesWritten );
+
+ return nbBytesWritten;
+}
+
+void QWsSocket::processHandshake()
+{
+ //copy from QWsServer::dataReceived();
+ QTcpSocket * tcpSocket = qobject_cast<QTcpSocket*>( sender() );
+ if (tcpSocket == 0)
+ return;
+
+ bool allHeadersFetched = false;
+
+ const QLatin1String emptyLine("\r\n");
+
+ while ( tcpSocket->canReadLine() )
+ {
+ QString line = tcpSocket->readLine();
+
+ if (line == emptyLine)
+ {
+ allHeadersFetched = true;
+ break;
+ }
+
+ handshakeResponse.append(line);
+ }
+
+ if (!allHeadersFetched)
+ return;
+
+ QRegExp regExp;
+ regExp.setMinimal( true );
+
+ // check accept field
+ regExp.setPattern(regExpAcceptStr);
+ regExp.indexIn(handshakeResponse);
+ QString acceptFromServer = regExp.cap(1);
+
+ // check upgrade field
+ regExp.setPattern(regExpUpgradeStr);
+ regExp.indexIn(handshakeResponse);
+ QString upgrade = regExp.cap(1);
+
+ // check connection field
+ regExp.setPattern(regExpConnectionStr);
+ regExp.indexIn(handshakeResponse);
+ QString connection = regExp.cap(1);
+
+ // check extensions field
+ regExp.setPattern(QWsServer::regExpExtensionsStr);
+ regExp.indexIn(handshakeResponse);
+ QString extensions = regExp.cap(1);
+
+ //TODO: check extensions field
+ // If the mandatory params are not setted, we abord the connection to the Websocket server
+ if((acceptFromServer.isEmpty()) || (!upgrade.contains(QLatin1String("websocket"), Qt::CaseInsensitive)) ||
+ (!connection.contains(QLatin1String("Upgrade"), Qt::CaseInsensitive)))
+ {
+ // emit error(QAbstractSocket::ConnectionRefusedError);
+ // return;
+ }
+
+ //TODO: check HTTP code
+
+ //TODO: check protocol field
+
+ QString accept = QWsServer::computeAcceptV4(key);
+ if(accept != acceptFromServer)
+ {
+ // emit error(QAbstractSocket::ConnectionRefusedError);
+ // return;
+ }
+
+ // handshake procedure succeeded
+ QAbstractSocket::setSocketState( QAbstractSocket::ConnectedState );
+ emit QAbstractSocket::stateChanged( QAbstractSocket::ConnectedState );
+ emit QAbstractSocket::connected();
+}
+
+void QWsSocket::processDataV0()
+{
+ if( state() == QAbstractSocket::ConnectingState )
+ {
+ processHandshake();
+ return;
+ }
+
+ QByteArray BA, buffer;
+ quint8 type, b = 0x00;
+
+ BA = tcpSocket->read(1); //TODO: refactor like processDataV4
+ type = BA[0];
+
+ if ( ( type & 0x80 ) == 0x00 ) // MSB of type not set
+ {
+ if ( type != 0x00 )
+ {
+ // ABORT CONNEXION
+ tcpSocket->readAll();
+ return;
+ }
+
+ // read data
+ do
+ {
+ BA = tcpSocket->read(1);
+ b = BA[0];
+ if ( b != 0xFF )
+ buffer.append( b );
+ } while ( b != 0xFF );
+
+ currentFrame.append( buffer );
+ }
+ else // MSB of type set
+ {
+ if ( type != 0xFF )
+ {
+ // ERROR, ABORT CONNEXION
+ close();
+ return;
+ }
+
+ quint8 length = 0x00;
+
+ bool bIsNotZero = true;
+ do
+ {
+ BA = tcpSocket->read(1);
+ b = BA[0];
+ bIsNotZero = ( b != 0x00 ? true : false );
+ if ( bIsNotZero ) // b must be != 0
+ {
+ quint8 b_v = b & 0x7F;
+ length *= 128;
+ length += b_v;
+ }
+ } while ( ( ( b & 0x80 ) == 0x80 ) && bIsNotZero );
+
+ BA = tcpSocket->read(length); // discard this bytes
+ }
+
+ if ( currentFrame.size() > 0 )
+ {
+ emit frameReceived( QString::fromUtf8(currentFrame) );
+ currentFrame.clear();
+ }
+
+ if ( tcpSocket->bytesAvailable() )
+ processDataV0();
+}
+
+void QWsSocket::processDataV4()
+{
+ if( state() == QAbstractSocket::ConnectingState )
+ {
+ processHandshake();
+ }
+ else
+ while (true)
+ switch ( readingState ) {
+ case HeaderPending: {
+ if (tcpSocket->bytesAvailable() < 2)
+ return;
+
+ // END, RSV1-3, Opcode
+ char header[2];
+ tcpSocket->read(header, 2); // XXX: Handle return value
+ isFinalFragment = (header[0] & 0x80) != 0;
+ opcode = static_cast<EOpcode>(header[0] & 0x0F);
+
+ // Mask, PayloadLength
+ hasMask = (header[1] & 0x80) != 0;
+ quint8 length = (header[1] & 0x7F);
+
+ switch (length)
+ {
+ case 126:
+ readingState = PayloadLengthPending;
+ break;
+ case 127:
+ readingState = BigPayloadLenghPending;
+ break;
+ default:
+ payloadLength = length;
+ readingState = MaskPending;
+ break;
+ }
+ }; break;
+ case PayloadLengthPending: {
+ if (tcpSocket->bytesAvailable() < 2)
+ return;
+
+ uchar length[2];
+ tcpSocket->read(reinterpret_cast<char *>(length), 2); // XXX: Handle return value
+ payloadLength = qFromBigEndian<quint16>(reinterpret_cast<const uchar *>(length));
+ readingState = MaskPending;
+ }; break;
+ case BigPayloadLenghPending: {
+ if (tcpSocket->bytesAvailable() < 8)
+ return;
+
+ uchar length[8];
+ tcpSocket->read(reinterpret_cast<char *>(length), 8); // XXX: Handle return value
+ // Most significant bit must be set to 0 as per http://tools.ietf.org/html/rfc6455#section-5.2
+ // XXX: Check for that?
+ payloadLength = qFromBigEndian<quint64>(length) & ~(1LL << 63);
+ readingState = MaskPending;
+ }; break;
+ case MaskPending: {
+ if (!hasMask) {
+ readingState = PayloadBodyPending;
+ break;
+ }
+
+ if (tcpSocket->bytesAvailable() < 4)
+ return;
+
+ tcpSocket->read(maskingKey.data(), 4); // XXX: Handle return value
+
+ if ( opcode == OpClose )
+ {
+ readingState = CloseDataPending;
+ }
+ else
+ {
+ readingState = PayloadBodyPending;
+ }
+ }; /* Intentional fall-through */
+ case PayloadBodyPending: {
+ // TODO: Handle large payloads
+ if (tcpSocket->bytesAvailable() < static_cast<qint32>(payloadLength))
+ return;
+
+ if ( opcode == OpClose )
+ {
+ if ( payloadLength >= 2 && tcpSocket->bytesAvailable() >= 2 )
+ {
+ uchar bytes[2];
+ tcpSocket->read( reinterpret_cast<char *>(bytes), 2 );
+ closeStatusCode = (ECloseStatusCode)qFromBigEndian<quint16>( reinterpret_cast<const uchar *>(bytes) );
+ }
+ else
+ {
+ closeStatusCode = NoCloseStatusCode;
+ }
+ }
+
+ QByteArray ApplicationData = tcpSocket->read( payloadLength );
+ if ( hasMask )
+ ApplicationData = QWsSocket::mask( ApplicationData, maskingKey );
+ currentFrame.append( ApplicationData );
+
+ readingState = HeaderPending;
+
+ if ( !isFinalFragment )
+ break;
+
+ switch ( opcode )
+ {
+ case OpBinary:
+ emit frameReceived( currentFrame );
+ break;
+ case OpText:
+ emit frameReceived( QString::fromUtf8(currentFrame) );
+ break;
+ case OpPing:
+ write( QWsSocket::composeHeader( true, OpPong, 0 ) );
+ break;
+ case OpPong:
+ emit pong( pingTimer.elapsed() );
+ break;
+ case OpClose:
+ closingHandshakeReceived = true;
+ close( closeStatusCode );
+ break;
+ default:
+ // DO NOTHING
+ break;
+ }
+
+ currentFrame.clear();
+ }; break;
+ case CloseDataPending:
+ default:
+ break;
+ } /* while (true) switch */
+}
+
+qint64 QWsSocket::writeFrame ( const QByteArray & byteArray )
+{
+ return tcpSocket->write( byteArray );
+}
+
+qint64 QWsSocket::writeFrames ( const QList<QByteArray> & framesList )
+{
+ qint64 nbBytesWritten = 0;
+ for ( int i=0 ; i<framesList.size() ; i++ )
+ {
+ nbBytesWritten += writeFrame( framesList[i] );
+ }
+ return nbBytesWritten;
+}
+
+void QWsSocket::processTcpStateChanged( QAbstractSocket::SocketState tcpSocketState )
+{
+ QAbstractSocket::SocketState wsSocketState = QAbstractSocket::state();
+ switch ( tcpSocketState )
+ {
+ case QAbstractSocket::HostLookupState:
+ {
+ QAbstractSocket::setSocketState( QAbstractSocket::HostLookupState );
+ emit QAbstractSocket::stateChanged( QAbstractSocket::HostLookupState );
+ break;
+ }
+ case QAbstractSocket::ConnectingState:
+ {
+ QAbstractSocket::setSocketState( QAbstractSocket::ConnectingState );
+ emit QAbstractSocket::stateChanged( QAbstractSocket::ConnectingState );
+ break;
+ }
+ case QAbstractSocket::ConnectedState:
+ {
+ if ( wsSocketState == QAbstractSocket::ConnectingState )
+ {
+ key = QWsServer::generateNonce();
+ QString handshake = composeOpeningHandShake( QLatin1String("/"), QLatin1String("example.com"), QString(), QString(), key );
+ tcpSocket->write( handshake.toUtf8() );
+ }
+ break;
+ }
+ case QAbstractSocket::ClosingState:
+ {
+ if ( wsSocketState == QAbstractSocket::ConnectedState )
+ {
+ QWsSocket::close( CloseGoingAway );
+ QAbstractSocket::setSocketState( QAbstractSocket::ClosingState );
+ emit QAbstractSocket::stateChanged( QAbstractSocket::ClosingState );
+ emit QAbstractSocket::aboutToClose();
+ }
+ break;
+ }
+ case QAbstractSocket::UnconnectedState:
+ {
+ if ( wsSocketState != QAbstractSocket::UnconnectedState )
+ {
+ QAbstractSocket::setSocketError( QAbstractSocket::NetworkError );
+ emit QAbstractSocket::error( QAbstractSocket::NetworkError );
+ QAbstractSocket::setSocketState( QAbstractSocket::UnconnectedState );
+ emit QAbstractSocket::stateChanged( QAbstractSocket::UnconnectedState );
+ emit QAbstractSocket::disconnected();
+ }
+ closingHandshakeSent = false;
+ closingHandshakeReceived = false;
+ break;
+ }
+ default:
+ break;
+ }
+}
+
+QByteArray QWsSocket::generateMaskingKey()
+{
+ QByteArray key;
+ for ( int i=0 ; i<4 ; i++ )
+ {
+ key.append( qrand() % 0x100 );
+ }
+ return key;
+}
+
+QByteArray QWsSocket::generateMaskingKeyV4( QString key, QString nonce )
+{
+ QString concat = key + nonce + QLatin1String("61AC5F19-FBBA-4540-B96F-6561F1AB40A8");
+ QByteArray hash = QCryptographicHash::hash ( concat.toUtf8(), QCryptographicHash::Sha1 );
+ return hash;
+}
+
+QByteArray QWsSocket::mask( QByteArray & data, QByteArray & maskingKey )
+{
+ QByteArray result;
+ result.reserve( data.size() );
+
+ for ( int i=0 ; i<data.size() ; i++ )
+ {
+ result[i] = ( data[i] ^ maskingKey[ i % 4 ] );
+ }
+
+ return result;
+}
+
+QList<QByteArray> QWsSocket::composeFrames( QByteArray byteArray, bool asBinary, int maxFrameBytes )
+{
+ if ( maxFrameBytes == 0 )
+ maxFrameBytes = maxBytesPerFrame;
+
+ QList<QByteArray> framesList;
+
+ QByteArray maskingKey;
+
+ int nbFrames = byteArray.size() / maxFrameBytes + 1;
+
+ for ( int i=0 ; i<nbFrames ; i++ )
+ {
+ QByteArray BA;
+
+ // end, size
+ bool end = false;
+ quint64 size = maxFrameBytes;
+ EOpcode opcode = OpContinue;
+ if ( i == nbFrames-1 ) // for multi-frames
+ {
+ end = true;
+ size = byteArray.size();
+ }
+ if ( i == 0 )
+ {
+ if ( asBinary )
+ opcode = OpBinary;
+ else
+ opcode = OpText;
+ }
+
+ // Header
+ BA.append( QWsSocket::composeHeader( end, opcode, size, maskingKey ) );
+
+ // Application Data
+ QByteArray dataForThisFrame = byteArray.left( size );
+ byteArray.remove( 0, size );
+
+ //dataForThisFrame = QWsSocket::mask( dataForThisFrame, maskingKey );
+ BA.append( dataForThisFrame );
+
+ framesList << BA;
+ }
+
+ return framesList;
+}
+
+QByteArray QWsSocket::composeHeader( bool end, EOpcode opcode, quint64 payloadLength, QByteArray maskingKey )
+{
+ QByteArray BA;
+ quint8 byte;
+
+ // end, RSV1-3, Opcode
+ byte = 0x00;
+ // end
+ if ( end )
+ byte = (byte | 0x80);
+ // Opcode
+ byte = (byte | opcode);
+ BA.append( byte );
+
+ // Mask, PayloadLength
+ byte = 0x00;
+ QByteArray BAsize;
+ // Mask
+ if ( maskingKey.size() == 4 )
+ byte = (byte | 0x80);
+ // PayloadLength
+ if ( payloadLength <= 125 )
+ {
+ byte = (byte | payloadLength);
+ }
+ // Extended payloadLength
+ else
+ {
+ // 2 bytes
+ if ( payloadLength <= 0xFFFF )
+ {
+ byte = ( byte | 126 );
+ BAsize.append( ( payloadLength >> 1*8 ) & 0xFF );
+ BAsize.append( ( payloadLength >> 0*8 ) & 0xFF );
+ }
+ // 8 bytes
+ else if ( payloadLength <= 0x7FFFFFFF )
+ {
+ byte = ( byte | 127 );
+ BAsize.append( ( payloadLength >> 7*8 ) & 0xFF );
+ BAsize.append( ( payloadLength >> 6*8 ) & 0xFF );
+ BAsize.append( ( payloadLength >> 5*8 ) & 0xFF );
+ BAsize.append( ( payloadLength >> 4*8 ) & 0xFF );
+ BAsize.append( ( payloadLength >> 3*8 ) & 0xFF );
+ BAsize.append( ( payloadLength >> 2*8 ) & 0xFF );
+ BAsize.append( ( payloadLength >> 1*8 ) & 0xFF );
+ BAsize.append( ( payloadLength >> 0*8 ) & 0xFF );
+ }
+ }
+ BA.append( byte );
+ BA.append( BAsize );
+
+ // Masking
+ if ( maskingKey.size() == 4 )
+ BA.append( maskingKey );
+
+ return BA;
+}
+
+void QWsSocket::ping()
+{
+ pingTimer.restart();
+ QByteArray pingFrame = QWsSocket::composeHeader( true, OpPing, 0 );
+ writeFrame( pingFrame );
+}
+
+void QWsSocket::setResourceName( QString rn )
+{
+ _resourceName = rn;
+}
+
+void QWsSocket::setHost( QString h )
+{
+ _host = h;
+}
+
+void QWsSocket::setHostAddress( QString ha )
+{
+ _hostAddress = ha;
+}
+
+void QWsSocket::setHostPort( int hp )
+{
+ _hostPort = hp;
+}
+
+void QWsSocket::setOrigin( QString o )
+{
+ _origin = o;
+}
+
+void QWsSocket::setProtocol( QString p )
+{
+ _protocol = p;
+}
+
+void QWsSocket::setExtensions( QString e )
+{
+ _extensions = e;
+}
+
+EWebsocketVersion QWsSocket::version()
+{
+ return _version;
+}
+
+QString QWsSocket::resourceName()
+{
+ return _resourceName;
+}
+
+QString QWsSocket::host()
+{
+ return _host;
+}
+
+QString QWsSocket::hostAddress()
+{
+ return _hostAddress;
+}
+
+int QWsSocket::hostPort()
+{
+ return _hostPort;
+}
+
+QString QWsSocket::origin()
+{
+ return _origin;
+}
+
+QString QWsSocket::protocol()
+{
+ return _protocol;
+}
+
+QString QWsSocket::extensions()
+{
+ return _extensions;
+}
+
+QString QWsSocket::composeOpeningHandShake( QString resourceName, QString host, QString origin, QString extensions, QString key )
+{
+ QString hs;
+ hs.append(QLatin1String("GET ") + resourceName + QLatin1String(" HTTP/1.1\r\n"));
+ hs.append(QLatin1String("Host: ") + host + "\r\n");
+ hs.append(QLatin1String("Upgrade: websocket\r\n"));
+ hs.append(QLatin1String("Connection: Upgrade\r\n"));
+ hs.append(QLatin1String("Sec-WebSocket-Key: ") + key + QLatin1String("\r\n"));
+ hs.append(QLatin1String("Origin: ") + origin + QLatin1String("\r\n"));
+ hs.append(QLatin1String("Sec-WebSocket-Extensions: ") + extensions + QLatin1String("\r\n"));
+ hs.append(QLatin1String("Sec-WebSocket-Version: 13\r\n"));
+ hs.append(QLatin1String("\r\n"));
+ return hs;
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h
new file mode 100644
index 000000000..4bc095aa1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h
@@ -0,0 +1,170 @@
+#ifndef QWSSOCKET_H
+#define QWSSOCKET_H
+
+#include <QTcpSocket>
+#include <QHostAddress>
+#include <QTime>
+
+enum EWebsocketVersion
+{
+ WS_VUnknow = -1,
+ WS_V0 = 0,
+ WS_V4 = 4,
+ WS_V5 = 5,
+ WS_V6 = 6,
+ WS_V7 = 7,
+ WS_V8 = 8,
+ WS_V13 = 13
+};
+
+class QWsSocket : public QAbstractSocket
+{
+ Q_OBJECT
+
+ friend class QWsServer;
+
+public:
+ enum EOpcode
+ {
+ OpContinue = 0x0,
+ OpText = 0x1,
+ OpBinary = 0x2,
+ OpReserved3 = 0x3,
+ OpReserved4 = 0x4,
+ OpReserved5 = 0x5,
+ OpReserved6 = 0x6,
+ OpReserved7 = 0x7,
+ OpClose = 0x8,
+ OpPing = 0x9,
+ OpPong = 0xA,
+ OpReservedB = 0xB,
+ OpReservedV = 0xC,
+ OpReservedD = 0xD,
+ OpReservedE = 0xE,
+ OpReservedF = 0xF
+ };
+ enum ECloseStatusCode
+ {
+ NoCloseStatusCode = 0,
+ CloseNormal = 1000,
+ CloseGoingAway = 1001,
+ CloseProtocolError = 1002,
+ CloseDataTypeNotSupported = 1003,
+ CloseReserved1004 = 1004,
+ CloseMissingStatusCode = 1005,
+ CloseAbnormalDisconnection = 1006,
+ CloseWrongDataType = 1007,
+ ClosePolicyViolated = 1008,
+ CloseTooMuchData = 1009,
+ CloseMissingExtension = 1010,
+ CloseBadOperation = 1011,
+ CloseTLSHandshakeFailed = 1015
+ };
+
+public:
+ // ctor
+ QWsSocket( QObject * parent = 0, QTcpSocket * socket = 0, EWebsocketVersion ws_v = WS_V13 );
+ // dtor
+ virtual ~QWsSocket();
+
+ // Public methods
+ EWebsocketVersion version();
+ QString resourceName();
+ QString host();
+ QString hostAddress();
+ int hostPort();
+ QString origin();
+ QString protocol();
+ QString extensions();
+
+ void setResourceName( QString rn );
+ void setHost( QString h );
+ void setHostAddress( QString ha );
+ void setHostPort( int hp );
+ void setOrigin( QString o );
+ void setProtocol( QString p );
+ void setExtensions( QString e );
+
+ qint64 write( const QString & string ); // write data as text
+ qint64 write( const QByteArray & byteArray ); // write data as binary
+
+public slots:
+ void connectToHost( const QString & hostName, quint16 port, OpenMode mode = ReadWrite );
+ void connectToHost( const QHostAddress & address, quint16 port, OpenMode mode = ReadWrite );
+ void disconnectFromHost();
+ void abort( QString reason = QString() );
+ void ping();
+
+signals:
+ void frameReceived(QString frame);
+ void frameReceived(QByteArray frame);
+ void pong(quint64 elapsedTime);
+
+protected:
+ qint64 writeFrames ( const QList<QByteArray> & framesList );
+ qint64 writeFrame ( const QByteArray & byteArray );
+
+protected slots:
+ virtual void close( ECloseStatusCode closeStatusCode = NoCloseStatusCode, QString reason = QString() );
+ void processDataV0();
+ void processDataV4();
+ void processHandshake();
+ void processTcpStateChanged( QAbstractSocket::SocketState socketState );
+
+private:
+ enum EReadingState
+ {
+ HeaderPending,
+ PayloadLengthPending,
+ BigPayloadLenghPending,
+ MaskPending,
+ PayloadBodyPending,
+ CloseDataPending
+ };
+
+ // private vars
+ QTcpSocket * tcpSocket;
+ QByteArray currentFrame;
+ QTime pingTimer;
+
+ EWebsocketVersion _version;
+ QString _resourceName;
+ QString _host;
+ QString _hostAddress;
+ int _hostPort;
+ QString _origin;
+ QString _protocol;
+ QString _extensions;
+ bool serverSideSocket;
+
+ bool closingHandshakeSent;
+ bool closingHandshakeReceived;
+
+ EReadingState readingState;
+ EOpcode opcode;
+ bool isFinalFragment;
+ bool hasMask;
+ quint64 payloadLength;
+ QByteArray maskingKey;
+ ECloseStatusCode closeStatusCode;
+
+ static const QString regExpAcceptStr;
+ static const QString regExpUpgradeStr;
+ static const QString regExpConnectionStr;
+ QString handshakeResponse;
+ QString key;
+
+public:
+ // Static functions
+ static QByteArray generateMaskingKey();
+ static QByteArray generateMaskingKeyV4( QString key, QString nonce );
+ static QByteArray mask( QByteArray & data, QByteArray & maskingKey );
+ static QList<QByteArray> composeFrames( QByteArray byteArray, bool asBinary = false, int maxFrameBytes = 0 );
+ static QByteArray composeHeader( bool end, EOpcode opcode, quint64 payloadLength, QByteArray maskingKey = QByteArray() );
+ static QString composeOpeningHandShake( QString resourceName, QString host, QString origin, QString extensions, QString key );
+
+ // static vars
+ static int maxBytesPerFrame;
+};
+
+#endif // QWSSOCKET_H
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QtWebsocket.pro b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QtWebsocket.pro
new file mode 100644
index 000000000..f52bda256
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QtWebsocket.pro
@@ -0,0 +1,21 @@
+#-------------------------------------------------
+#
+# Project created by QtCreator 2012-03-05T10:38:43
+#
+#-------------------------------------------------
+
+QT += network
+
+QT -= gui
+
+TARGET = QtWebsocket
+TEMPLATE = lib
+CONFIG += staticlib
+
+SOURCES += \
+ QWsServer.cpp \
+ QWsSocket.cpp
+
+HEADERS += \
+ QWsServer.h \
+ QWsSocket.h
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QtWebsocket.vcproj b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QtWebsocket.vcproj
new file mode 100644
index 000000000..306dcada0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QtWebsocket.vcproj
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="QtWebsocket"
+ ProjectGUID="{7E3A920C-4257-41A1-B9B9-BFA138C1C8A2}"
+ Keyword="Qt4VSv1.0"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="4"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="&quot;.\GeneratedFiles&quot;;&quot;.&quot;;&quot;$(QTDIR)\include&quot;;&quot;.\GeneratedFiles\$(ConfigurationName)&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;"
+ PreprocessorDefinitions=",UNICODE,WIN32,QT_LARGEFILE_SUPPORT;QT_DLL;QT_NO_DEBUG,NDEBUG;QT_CORE_LIB;QT_NETWORK_LIB;QTWEBSOCKET_LIB"
+ RuntimeLibrary="2"
+ TreatWChar_tAsBuiltInType="false"
+ DebugInformationFormat="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)\$(ProjectName).lib"
+ AdditionalLibraryDirectories="$(QTDIR)\lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(ProjectDir)$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="4"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="&quot;.\GeneratedFiles&quot;;&quot;.&quot;;&quot;$(QTDIR)\include&quot;;&quot;.\GeneratedFiles\$(ConfigurationName)&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;"
+ PreprocessorDefinitions=",UNICODE,WIN32,QT_LARGEFILE_SUPPORT;QT_DLL;QT_CORE_LIB;QT_NETWORK_LIB;QTWEBSOCKET_LIB"
+ RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)\$(ProjectName).lib"
+ AdditionalLibraryDirectories="$(QTDIR)\lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;cxx;c;def"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\QWsServer.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\QWsSocket.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\QWsServer.h"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Moc&apos;ing QWsServer.h..."
+ CommandLine="&quot;$(QTDIR)\bin\moc.exe&quot; &quot;$(InputPath)&quot; -o &quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot; -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_NETWORK_LIB -DQTWEBSOCKET_LIB &quot;-I.\GeneratedFiles&quot; &quot;-I.&quot; &quot;-I$(QTDIR)\include&quot; &quot;-I.\GeneratedFiles\$(ConfigurationName)\.&quot; &quot;-I$(QTDIR)\include\QtCore&quot; &quot;-I$(QTDIR)\include\QtNetwork&quot;&#x0D;&#x0A;"
+ AdditionalDependencies="&quot;$(QTDIR)\bin\moc.exe&quot;;$(InputPath)"
+ Outputs="&quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot;"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Moc&apos;ing QWsServer.h..."
+ CommandLine="&quot;$(QTDIR)\bin\moc.exe&quot; &quot;$(InputPath)&quot; -o &quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot; -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_CORE_LIB -DQT_NETWORK_LIB -DQTWEBSOCKET_LIB &quot;-I.\GeneratedFiles&quot; &quot;-I.&quot; &quot;-I$(QTDIR)\include&quot; &quot;-I.\GeneratedFiles\$(ConfigurationName)\.&quot; &quot;-I$(QTDIR)\include\QtCore&quot; &quot;-I$(QTDIR)\include\QtNetwork&quot;&#x0D;&#x0A;"
+ AdditionalDependencies="&quot;$(QTDIR)\bin\moc.exe&quot;;$(InputPath)"
+ Outputs="&quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot;"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\QWsSocket.h"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Moc&apos;ing QWsSocket.h..."
+ CommandLine="&quot;$(QTDIR)\bin\moc.exe&quot; &quot;$(InputPath)&quot; -o &quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot; -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_NETWORK_LIB -DQTWEBSOCKET_LIB &quot;-I.\GeneratedFiles&quot; &quot;-I.&quot; &quot;-I$(QTDIR)\include&quot; &quot;-I.\GeneratedFiles\$(ConfigurationName)\.&quot; &quot;-I$(QTDIR)\include\QtCore&quot; &quot;-I$(QTDIR)\include\QtNetwork&quot;&#x0D;&#x0A;"
+ AdditionalDependencies="&quot;$(QTDIR)\bin\moc.exe&quot;;$(InputPath)"
+ Outputs="&quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot;"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Moc&apos;ing QWsSocket.h..."
+ CommandLine="&quot;$(QTDIR)\bin\moc.exe&quot; &quot;$(InputPath)&quot; -o &quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot; -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_CORE_LIB -DQT_NETWORK_LIB -DQTWEBSOCKET_LIB &quot;-I.\GeneratedFiles&quot; &quot;-I.&quot; &quot;-I$(QTDIR)\include&quot; &quot;-I.\GeneratedFiles\$(ConfigurationName)\.&quot; &quot;-I$(QTDIR)\include\QtCore&quot; &quot;-I$(QTDIR)\include\QtNetwork&quot;&#x0D;&#x0A;"
+ AdditionalDependencies="&quot;$(QTDIR)\bin\moc.exe&quot;;$(InputPath)"
+ Outputs="&quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot;"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Form Files"
+ Filter="ui"
+ UniqueIdentifier="{99349809-55BA-4b9d-BF79-8FDBB0286EB3}"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="qrc;*"
+ UniqueIdentifier="{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}"
+ ParseFiles="false"
+ >
+ </Filter>
+ <Filter
+ Name="Generated Files"
+ Filter="moc;h;cpp"
+ UniqueIdentifier="{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}"
+ SourceControlFiles="false"
+ >
+ <Filter
+ Name="Release"
+ Filter="cpp;moc"
+ SourceControlFiles="false"
+ >
+ <File
+ RelativePath=".\GeneratedFiles\Release\moc_QWsServer.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\GeneratedFiles\Release\moc_QWsSocket.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Debug"
+ Filter="cpp;moc"
+ SourceControlFiles="false"
+ >
+ <File
+ RelativePath=".\GeneratedFiles\Debug\moc_QWsServer.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\GeneratedFiles\Debug\moc_QWsSocket.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ </Filter>
+ </Files>
+ <Globals>
+ <Global
+ Name="lreleaseOptions"
+ Value=""
+ />
+ <Global
+ Name="lupdateOnBuild"
+ Value="0"
+ />
+ <Global
+ Name="lupdateOptions"
+ Value=""
+ />
+ <Global
+ Name="MocDir"
+ Value=".\GeneratedFiles\$(ConfigurationName)"
+ />
+ <Global
+ Name="MocOptions"
+ Value=""
+ />
+ <Global
+ Name="QtVersion Win32"
+ Value="4.8.2"
+ />
+ <Global
+ Name="RccDir"
+ Value=".\GeneratedFiles"
+ />
+ <Global
+ Name="UicDir"
+ Value=".\GeneratedFiles"
+ />
+ </Globals>
+</VisualStudioProject>
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.cpp b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.cpp
new file mode 100644
index 000000000..a89d1efcb
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.cpp
@@ -0,0 +1,31 @@
+#include "fordsdlcore_plugin.h"
+#include "smartdevicelink.h"
+#include <QDebug>
+#include <qqml.h>
+#include "sdlalert.h"
+#include <QQmlEngine>
+#include <QQmlContext>
+
+QObject* sdlSingleton(QQmlEngine * engine, QJSEngine * js) {
+ Q_UNUSED(engine)
+ Q_UNUSED(js)
+
+ engine->rootContext()->setContextProperty("MediaApps", SmartDeviceLink::getInstance().getMediaApps());
+
+ return (QObject *) &SmartDeviceLink::getInstance();
+}
+
+QObject* mediaAppsSingleton(QQmlEngine * engine, QJSEngine * js) {
+ Q_UNUSED(engine)
+ Q_UNUSED(js)
+
+ return (QObject *) SmartDeviceLink::getInstance().getMediaApps();
+}
+
+void FordSdlCorePlugin::registerTypes(const char *uri)
+{
+ qmlRegisterSingletonType<SdlAppsListModel>(uri, 1, 0, "MediaApps", mediaAppsSingleton);
+ qmlRegisterSingletonType<SmartDeviceLink>(uri, 1, 0, "AppLink", sdlSingleton);
+}
+
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.h b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.h
new file mode 100644
index 000000000..655dcb517
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.h
@@ -0,0 +1,16 @@
+#ifndef FORDSDLCORE_PLUGIN_H
+#define FORDSDLCORE_PLUGIN_H
+
+#include <QQmlExtensionPlugin>
+
+class FordSdlCorePlugin : public QQmlExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
+
+public:
+ void registerTypes(const char *uri);
+};
+
+#endif // FORDSDLCORE_PLUGIN_H
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/qmldir b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/qmldir
new file mode 100644
index 000000000..da1a7b7f9
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/qmldir
@@ -0,0 +1,3 @@
+module com.ford.sdlcore
+plugin FordSdlCore
+
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.cpp b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.cpp
new file mode 100644
index 000000000..f625c16b4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.cpp
@@ -0,0 +1,6 @@
+#include "sdlalert.h"
+
+SdlAlert::SdlAlert(QObject *parent) :
+ QQuickItem()
+{
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.h b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.h
new file mode 100644
index 000000000..cb46236db
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.h
@@ -0,0 +1,18 @@
+#ifndef SDLALERT_H
+#define SDLALERT_H
+
+#include <QQuickItem>
+
+class SdlAlert : public QQuickItem
+{
+ Q_OBJECT
+public:
+ explicit SdlAlert(QObject *parent = 0);
+
+signals:
+
+public slots:
+
+};
+
+#endif // SDLALERT_H
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.cpp b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.cpp
new file mode 100644
index 000000000..104b31abe
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.cpp
@@ -0,0 +1,6 @@
+#include "sdlappslistmodel.h"
+
+SdlAppsListModel::SdlAppsListModel(QObject *parent) :
+ QAbstractListModel(parent)
+{
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.h b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.h
new file mode 100644
index 000000000..9b213e666
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.h
@@ -0,0 +1,47 @@
+#ifndef SDLAPPSLISTMODEL_H
+#define SDLAPPSLISTMODEL_H
+
+#include <QAbstractListModel>
+#include <QStringList>
+
+class SdlAppsListModel : public QAbstractListModel
+{
+ Q_OBJECT
+public:
+ explicit SdlAppsListModel(QObject *parent = 0);
+
+ int rowCount(const QModelIndex &parent) const { return m_data.size(); }
+
+ QVariant data(const QModelIndex &index, int role) const {
+ return m_data.values().at(index.row());
+ }
+
+ virtual QHash<int, QByteArray> roleNames() const {
+ QHash<int, QByteArray> roles;
+ roles['t'] = "text";
+ return roles;
+ }
+
+ void append(int id, QString string) {
+ beginResetModel();
+ m_data.clear();
+ m_data[id] = string;
+ endResetModel();
+ }
+
+ void clear() {
+ beginResetModel();
+ m_data.clear();
+ endResetModel();
+ }
+
+signals:
+
+public slots:
+
+private:
+ QHash<int, QString> m_data;
+
+};
+
+#endif // SDLAPPSLISTMODEL_H
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.cpp b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.cpp
new file mode 100644
index 000000000..57cb8ac50
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.cpp
@@ -0,0 +1,263 @@
+#include "smartdevicelink.h"
+#include <QDebug>
+#include "QtWebsocket/QWsSocket.h"
+#include <QJsonDocument>
+#include <QJsonObject>
+#include <unistd.h>
+
+SmartDeviceLink::SmartDeviceLink(QQuickItem *parent):
+ QObject(parent)
+{
+ connect(&m_ws_basic, SIGNAL(connected()), this, SLOT(basic_connected()));
+ connect(&m_ws_basic, SIGNAL(frameReceived(QString)), this, SLOT(basic_receive(QString)));
+ connect(&m_ws_basic, SIGNAL(disconnected()), this, SLOT(disconnected()));
+
+ connect(&m_ws_buttons, SIGNAL(connected()), this, SLOT(buttons_connected()));
+ connect(&m_ws_buttons, SIGNAL(frameReceived(QString)), this, SLOT(buttons_receive(QString)));
+ connect(&m_ws_buttons, SIGNAL(disconnected()), this, SLOT(disconnected()));
+
+ connect(&m_ws_tts, SIGNAL(connected()), this, SLOT(tts_connected()));
+ connect(&m_ws_tts, SIGNAL(frameReceived(QString)), this, SLOT(tts_receive(QString)));
+ connect(&m_ws_tts, SIGNAL(disconnected()), this, SLOT(disconnected()));
+
+ connect(&m_ws_vehicle, SIGNAL(connected()), this, SLOT(vehicle_connected()));
+ connect(&m_ws_vehicle, SIGNAL(frameReceived(QString)), this, SLOT(vehicle_receive(QString)));
+ connect(&m_ws_vehicle, SIGNAL(disconnected()), this, SLOT(disconnected()));
+
+ connect(&m_ws_ui, SIGNAL(connected()), this, SLOT(ui_connected()));
+ connect(&m_ws_ui, SIGNAL(frameReceived(QString)), this, SLOT(ui_receive(QString)));
+ connect(&m_ws_ui, SIGNAL(disconnected()), this, SLOT(disconnected()));
+
+ connect(&m_ws_vr, SIGNAL(connected()), this, SLOT(vr_connected()));
+ connect(&m_ws_vr, SIGNAL(frameReceived(QString)), this, SLOT(vr_receive(QString)));
+ connect(&m_ws_vr, SIGNAL(disconnected()), this, SLOT(disconnected()));
+
+ connect(this, SIGNAL(newAppAvailable(int, QString)), this, SLOT(registerApp(int,QString)));
+
+ m_ws_buttons.connectToHost( QLatin1String("127.0.0.1"), 8087 );
+ m_ws_tts.connectToHost( QLatin1String("127.0.0.1"), 8087 );
+ m_ws_vr.connectToHost( QLatin1String("127.0.0.1"), 8087 );
+ m_ws_basic.connectToHost( QLatin1String("127.0.0.1"), 8087 );
+ m_ws_vehicle.connectToHost( QLatin1String("127.0.0.1"), 8087 );
+ m_ws_ui.connectToHost( QLatin1String("127.0.0.1"), 8087 );
+}
+
+SmartDeviceLink::~SmartDeviceLink()
+{
+ qDebug() << "SmartDeviceLink destroyed";
+}
+
+void SmartDeviceLink::basic_connected() {
+ basic_send("{\"jsonrpc\":\"2.0\",\"id\":600,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"BasicCommunicationClient\"}}");
+}
+
+void SmartDeviceLink::buttons_connected() {
+ buttons_send("{\"jsonrpc\":\"2.0\",\"id\":200,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"Buttons\"}}");
+}
+
+void SmartDeviceLink::tts_connected() {
+ tts_send("{\"jsonrpc\":\"2.0\",\"id\":300,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"TTS\"}}");
+}
+
+void SmartDeviceLink::vehicle_connected() {
+ vehicle_send("{\"jsonrpc\":\"2.0\",\"id\":700,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"VehicleInfo\"}}");
+}
+
+void SmartDeviceLink::ui_connected() {
+ ui_send("{\"jsonrpc\":\"2.0\",\"id\":400,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"UI\"}}");
+}
+
+void SmartDeviceLink::vr_connected() {
+ vr_send("{\"jsonrpc\":\"2.0\",\"id\":500,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"VR\"}}");
+}
+
+void SmartDeviceLink::basic_send(QString message) {
+ qDebug() << "Sending (basic):" << message;
+ m_ws_basic.write(message.append('\n'));
+}
+
+void SmartDeviceLink::buttons_send(QString message) {
+ qDebug() << "Sending (buttons):" << message;
+ m_ws_buttons.write(message.append('\n'));
+}
+
+void SmartDeviceLink::tts_send(QString message) {
+ qDebug() << "Sending (tts):" << message;
+ m_ws_tts.write(message.append('\n'));
+}
+
+void SmartDeviceLink::vehicle_send(QString message) {
+ qDebug() << "Sending (vehicle):" << message;
+ m_ws_vehicle.write(message.append('\n'));
+}
+
+void SmartDeviceLink::ui_send(QString message) {
+ qDebug() << "Sending (ui):" << message;
+ m_ws_ui.write(message.append('\n'));
+}
+
+void SmartDeviceLink::vr_send(QString message) {
+ qDebug() << "Sending (vr):" << message;
+ m_ws_vr.write(message.append('\n'));
+}
+
+void SmartDeviceLink::basic_receive(QString message) {
+ qDebug() << "Receiving(basic):" << message;
+ QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object();
+ int id = root.value("id").toDouble();
+ int result = root.value("result").toDouble();
+ QString method = root.value("method").toString();
+
+ if (id == 600) {
+ char *reg, *unreg, *update;
+
+ asprintf(&reg, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\",\"params\":{\"propertyName\":\"BasicCommunication.OnAppRegistered\"}}", result+1);
+ basic_send(reg);
+ free(reg);
+
+ asprintf(&unreg, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\",\"params\":{\"propertyName\":\"BasicCommunication.OnAppUnregistered\"}}", result+2);
+ basic_send(unreg);
+ free(unreg);
+
+ asprintf(&update, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\",\"params\":{\"propertyName\":\"BasicCommunication.OnDeviceListUpdated\"}} ", result+3);
+ basic_send(update);
+ free(update);
+ }
+ else if (method.compare("BasicCommunication.OnAppRegistered") == 0) {
+ QJsonObject params = root.value("params").toObject();
+ QJsonObject application = params.value("application").toObject();
+ QString appName = application.value("appName").toString();
+ int appId = application.value("appId").toDouble();
+
+ char * update;
+ asprintf(&update, "{\"jsonrpc\":\"2.0\",\"id\":3000,\"method\":\"BasicCommunication.ActivateApp\",\"params\":{\"appName\":\"%s\",\"appId\":%i}}", appName.toLocal8Bit().data(), appId);
+ basic_send(update);
+ free(update);
+ emit newAppAvailable(appId, appName);
+ }
+ else if (method.compare("BasicCommunication.OnAppUnregistered") == 0) {
+ m_media_apps.clear();
+ }
+}
+
+void SmartDeviceLink::buttons_receive(QString message) {
+ qDebug() << "Receiving(buttons):" << message;
+ QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object();
+ int id = root.value("id").toDouble();
+ QString method = root.value("method").toString();
+
+ if (method.compare("Buttons.GetCapabilities") == 0) {
+ buttons_send("{\"jsonrpc\":\"2.0\",\"id\":19,\"result\":{\"capabilities\":[{\"name\":\"PRESET_0\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_1\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_2\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_3\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_4\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_5\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_6\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_7\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_8\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_9\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"OK\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"SEEKLEFT\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"SEEKRIGHT\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"TUNEUP\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"TUNEDOWN\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true}],\"presetBankCapabilities\":{\"onScreenPresetsAvailable\":true},\"method\":\"Buttons.GetCapabilitiesResponse\",\"resultCode\":\"SUCCESS\"}}");
+ }
+}
+
+void SmartDeviceLink::tts_receive(QString message) {
+ qDebug() << "Receiving(tts):" << message;
+ QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object();
+ int id = root.value("id").toDouble();
+ QString method = root.value("method").toString();
+
+ if (method.compare("TTS.GetCapabilities") == 0) {
+ tts_send("{\"jsonrpc\":\"2.0\",\"id\":18,\"result\":{\"capabilities\":[\"TEXT\"],\"resultCode\":\"SUCCESS\",\"method\":\"TTS.GetCapabilitiesResponse\"}}");
+ }
+ else if (method.compare("TTS.GetLanguage") == 0) {
+ tts_send("{\"jsonrpc\":\"2.0\",\"id\":26,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"TTS.GetLanguageResponse\",\"language\":\"EN-US\"}}");
+ }
+ else if (method.compare("TTS.GetSupportedLanguages") == 0) {
+ tts_send("{\"jsonrpc\":\"2.0\",\"id\":22,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"TTS.GetSupportedLanguagesResponse\",\"languages\":[\"EN-US\",\"ES-MX\",\"FR-CA\",\"DE-EU\",\"ES-EU\",\"EN-EU\",\"RU-RU\",\"TR-TR\",\"PL-EU\",\"FR-EU\",\"IT-EU\",\"SV-EU\",\"PT-EU\",\"NL-EU\",\"EN-AU\",\"ZH-CN\",\"ZH-TW\",\"JA-JP\",\"AR\",\"KO-KR\"]}}");
+ }
+
+}
+
+void SmartDeviceLink::vehicle_receive(QString message) {
+ qDebug() << "Receiving(vehicle):" << message;
+ QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object();
+ int id = root.value("id").toDouble();
+ QString method = root.value("method").toString();
+
+ if (method.compare("VehicleInfo.GetVehicleType") == 0) {
+ vehicle_send("{\"jsonrpc\":\"2.0\",\"id\":20,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"VehicleInfo.GetVehicleTypeResponse\",\"vehicleType\":{\"make\":\"Ford\",\"model\":\"Fiesta\",\"modelYear\":\"2013\",\"trim\":\"SE\"}}}");
+ }
+}
+
+void SmartDeviceLink::ui_receive(QString message) {
+ qDebug() << "Receiving(ui):" << message;
+ QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object();
+ int id = root.value("id").toDouble();
+ int result = root.value("result").toDouble();
+ QString method = root.value("method").toString();
+
+ if (id == 400) {
+ char *onchoise;
+ asprintf(&onchoise, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\",\"params\":{\"propertyName\":\"VR.OnChoise\"}}", result + 1);
+ ui_send(onchoise);
+ free(onchoise);
+
+ ui_send("{\"jsonrpc\":\"2.0\",\"method\":\"UI.OnReady\"}");
+ }
+ else if (method.compare("UI.GetCapabilities") == 0) {
+ ui_send("{\"jsonrpc\":\"2.0\",\"id\":16,\"result\":{\"displayCapabilities\":{\"displayType\":\"GEN2_8_DMA\",\"textFields\":[{\"name\":\"mainField1\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"mainField2\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"statusBar\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"mediaClock\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"mediaTrack\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"alertText1\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"alertText2\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1}],\"mediaClockFormats\":[\"CLOCK1\",\"CLOCK2\",\"CLOCKTEXT1\",\"CLOCKTEXT2\",\"CLOCKTEXT3\"]},\"hmiZoneCapabilities\":[\"FRONT\",\"BACK\"],\"softButtonCapabilities\":[{\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true,\"imageSupported\":true}],\"method\":\"UI.GetCapabilitiesResponse\",\"resultCode\":\"SUCCESS\"}}");
+ }
+ else if (method.compare("UI.GetSupportedLanguages") == 0) {
+ ui_send("{\"jsonrpc\":\"2.0\",\"id\":21,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"UI.GetSupportedLanguagesResponse\",\"languages\":[\"EN-US\",\"ES-MX\",\"FR-CA\",\"DE-EU\",\"ES-EU\",\"EN-EU\",\"RU-RU\",\"TR-TR\",\"PL-EU\",\"FR-EU\",\"IT-EU\",\"SV-EU\",\"PT-EU\",\"NL-EU\",\"EN-AU\",\"ZH-CN\",\"ZH-TW\",\"JA-JP\",\"AR\",\"KO-KR\"]}}");
+ }
+ else if (method.compare("UI.GetLanguage") == 0) {
+ ui_send("{\"jsonrpc\":\"2.0\",\"id\":24,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"UI.GetLanguageResponse\",\"hmiDisplayLanguage\":\"EN-US\"}}");
+ }
+ else if (method.compare("UI.Show") == 0) {
+ QJsonObject params = root.value("params").toObject();
+ setShow1(params.value("mainField1").toString());
+ setShow2(params.value("mainField2").toString());
+ char* response;
+ asprintf(&response, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"UI.ShowResponse\"}}", id);
+ ui_send(response);
+ free(response);
+ }
+ else if (method.compare("UI.Alert") == 0) {
+ QJsonObject params = root.value("params").toObject();
+ QString message(params.value("AlertText1").toString());
+ message.append("\n").append(params.value("AlertText2").toString());
+ char * response;
+ asprintf(&response, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"UI.AlertResponse\"}}", id);
+ ui_send(response);
+ free(response);
+ emit alert(message);
+ }
+
+}
+
+void SmartDeviceLink::vr_receive(QString message) {
+ qDebug() << "Receiving(vr):" << message;
+ QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object();
+ int id = root.value("id").toDouble();
+ QString method = root.value("method").toString();
+
+ if (method.compare("VR.GetCapabilities") == 0) {
+ vr_send("{\"jsonrpc\":\"2.0\",\"id\":17,\"result\":{\"capabilities\":[\"TEXT\"],\"method\":\"VR.GetCapabilitiesResponse\",\"resultCode\":\"SUCCESS\"}}");
+ }
+ else if (method.compare("VR.GetSupportedLanguages") == 0) {
+ vr_send("{\"jsonrpc\":\"2.0\",\"id\":23,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"VR.GetSupportedLanguagesResponse\",\"languages\":[\"EN-US\",\"ES-MX\",\"FR-CA\",\"DE-EU\",\"ES-EU\",\"EN-EU\",\"RU-RU\",\"TR-TR\",\"PL-EU\",\"FR-EU\",\"IT-EU\",\"SV-EU\",\"PT-EU\",\"NL-EU\",\"EN-AU\",\"ZH-CN\",\"ZH-TW\",\"JA-JP\",\"AR\",\"KO-KR\"]}}");
+ }
+ else if (method.compare("VR.GetLanguage") == 0) {
+ vr_send("{\"jsonrpc\":\"2.0\",\"id\":25,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"VR.GetLanguageResponse\",\"language\":\"EN-US\"}}");
+ }
+}
+
+void SmartDeviceLink::registerApp(int appId, QString appName) {
+ qDebug() << "New app registered:" << appName;
+ m_media_apps.append(appId, appName);
+}
+
+void SmartDeviceLink::setShow1(QString show) {
+ m_show1 = show;
+ emit show1Changed(show);
+}
+
+void SmartDeviceLink::setShow2(QString show) {
+ m_show2 = show;
+ emit show2Changed(show);
+}
+
+void SmartDeviceLink::disconnected() {
+ qDebug() << "Websocket disconnected";
+}
diff --git a/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.h b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.h
new file mode 100644
index 000000000..f2e7f1b2b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.h
@@ -0,0 +1,75 @@
+#ifndef SMARTDEVICELINK_H
+#define SMARTDEVICELINK_H
+
+#include <QQuickItem>
+#include <QStringListModel>
+#include "QtWebsocket/QWsSocket.h"
+#include "sdlappslistmodel.h"
+
+class SmartDeviceLink : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QString show1 READ getShow1 NOTIFY show1Changed)
+ Q_PROPERTY(QString show2 READ getShow2 NOTIFY show2Changed)
+
+public:
+ SmartDeviceLink(QQuickItem *parent = 0);
+ ~SmartDeviceLink();
+
+ static SmartDeviceLink& getInstance() {
+ static SmartDeviceLink instance;
+ return instance;
+ }
+
+ SdlAppsListModel* getMediaApps() { return &m_media_apps; }
+ QString getShow1() { return m_show1; }
+ QString getShow2() { return m_show2; }
+
+private:
+ QWsSocket m_ws_basic;
+ QWsSocket m_ws_tts;
+ QWsSocket m_ws_buttons;
+ QWsSocket m_ws_vehicle;
+ QWsSocket m_ws_ui;
+ QWsSocket m_ws_vr;
+
+ SdlAppsListModel m_media_apps;
+
+ QString m_show1;
+ QString m_show2;
+
+ void basic_send(QString message);
+ void tts_send(QString message);
+ void buttons_send(QString message);
+ void vehicle_send(QString message);
+ void ui_send(QString message);
+ void vr_send(QString message);
+ void setShow1(QString);
+ void setShow2(QString);
+
+public slots:
+ void basic_connected();
+ void tts_connected();
+ void buttons_connected();
+ void vehicle_connected();
+ void ui_connected();
+ void vr_connected();
+
+ void basic_receive(QString);
+ void tts_receive(QString);
+ void buttons_receive(QString);
+ void vehicle_receive(QString);
+ void ui_receive(QString);
+ void vr_receive(QString);
+ void registerApp(int, QString);
+
+ void disconnected();
+
+signals:
+ void show1Changed(QString);
+ void show2Changed(QString);
+ void newAppAvailable(int, QString);
+ void alert(QString message);
+};
+
+#endif // SMARTDEVICELINK_H
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/.gitignore b/SDL_Core/src/components/qt_hmi/qml_model_qt4/.gitignore
new file mode 100644
index 000000000..3a4593b4d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/.gitignore
@@ -0,0 +1,9 @@
+*.o
+*.pri
+*.so
+.DS_Store
+*.user
+Common.js
+
+Makefile
+moc_*.cpp
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/CMakeLists.txt b/SDL_Core/src/components/qt_hmi/qml_model_qt4/CMakeLists.txt
new file mode 100644
index 000000000..e6eeb9e52
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/CMakeLists.txt
@@ -0,0 +1,87 @@
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+cmake_minimum_required(VERSION 2.8.11)
+
+set(components_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
+set(dbus_dir ${components_dir}/dbus)
+set(codegen_dir ${dbus_dir}/codegen)
+set(codegen ${codegen_dir}/make_qml_dbus_qml.py)
+set(parser ${codegen_dir}/ford_xml_parser.py)
+set(interfaces_dir ${components_dir}/interfaces)
+set(api_xml ${interfaces_dir}/QT_HMI_API.xml)
+set(proxy_dir ${CMAKE_CURRENT_BINARY_DIR}/hmi_api)
+set(qml_dirs hmi_api controls models popups views)
+set(qml_files MainWindow.qml)
+
+add_custom_target(qml_auto ALL
+ COMMAND python ${codegen} --infile ${api_xml} --version ${qt_version} --outdir ${proxy_dir}
+ DEPENDS ${api_xml} ${codegen} ${parser}
+ COMMENT "Generating files:
+ ${proxy_dir}/BasicCommunicationProxy.qml
+ ${proxy_dir}/ButtonsProxy.qml
+ ${proxy_dir}/NavigationProxy.qml
+ ${proxy_dir}/TTSProxy.qml
+ ${proxy_dir}/UIProxy.qml
+ ${proxy_dir}/VehicleInfoProxy.qml
+ ${proxy_dir}/VRProxy.qml
+ from:
+ ${api_xml} ..."
+)
+
+add_custom_target(qml_copy_resources ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/../res ${CMAKE_CURRENT_BINARY_DIR}/res
+ COMMENT "Copying resources")
+
+if(NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+ foreach(qml_dir ${qml_dirs})
+ add_custom_target(qml_copy_${qml_dir} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${qml_dir} ${CMAKE_CURRENT_BINARY_DIR}/${qml_dir}
+ COMMENT "Copying directory ${qml_dir}")
+ endforeach(qml_dir)
+
+ add_dependencies(qml_auto qml_copy_hmi_api)
+
+ foreach(qml_file ${qml_files})
+ add_custom_target(qml_copy_${qml_file} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${qml_file} ${CMAKE_CURRENT_BINARY_DIR}/${qml_file}
+ COMMENT "Copying file ${qml_file}")
+ endforeach(qml_file)
+endif()
+
+install(DIRECTORY
+ ${CMAKE_CURRENT_BINARY_DIR}/controls
+ ${CMAKE_CURRENT_BINARY_DIR}/hmi_api
+ ${CMAKE_CURRENT_BINARY_DIR}/models
+ ${CMAKE_CURRENT_BINARY_DIR}/popups
+ ${CMAKE_CURRENT_BINARY_DIR}/res
+ ${CMAKE_CURRENT_BINARY_DIR}/views
+ DESTINATION bin/hmi)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/MainWindow.qml DESTINATION bin/hmi)
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/MainWindow.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/MainWindow.qml
new file mode 100644
index 000000000..1a3b06fd4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/MainWindow.qml
@@ -0,0 +1,356 @@
+/**
+ * @file MainWindow.qml
+ * @brief Implementation of main window.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import com.ford.sdl.hmi.dbus_adapter 1.0
+import com.ford.sdl.hmi.log4cxx 1.0
+import "./controls"
+import "./views"
+import "./hmi_api" as HmiApi
+import "./models"
+import "./popups"
+import "hmi_api/Common.js" as Common
+import "./models/Constants.js" as Constants
+import "models/Internal.js" as Internal
+
+Rectangle {
+ width: 1280
+ height: 768
+ property string startQml: "./views/ApplicationListView.qml"
+ property int minWidth: Constants.mainScreenMinWidth
+ property int minHeight: Constants.mainScreenMiHeight
+ color: Constants.secondaryColor
+
+ DataStorage {
+ id: dataContainer
+
+ onSystemContextChanged: {
+ sdlUI.onSystemContext(systemContext)
+ }
+
+ // Please note that applicationContext is changed only after setting currentApplication
+ onApplicationContextChanged: {
+ if (applicationContext) {
+ sdlBasicCommunication.onAppActivated(currentApplication.appId)
+ } else {
+ sdlBasicCommunication.onAppDeactivated(currentApplication.appId, contentLoader.item.category)
+ }
+ }
+ }
+
+// TODO(KKolodiy): find way for play sound
+// Audio {
+// id: beep
+// source: "res/initial.wav"
+// }
+
+ SettingsStorage {
+ id: settingsContainer
+ }
+
+ Item {
+ id: mainScreen
+ anchors.top: parent. top
+ anchors.left: parent.left
+ width: (parent.width - simulationScreen.width < minWidth) ?
+ minWidth : parent.width - simulationScreen.width
+ height: (parent.height - hardwareScreen.height < minHeight) ?
+ minHeight : parent.height - hardwareScreen.height
+ clip: true
+ visible: false
+
+ Item {
+ anchors.top: parent.top
+ anchors.horizontalCenter: parent.horizontalCenter
+ height: parent.height * 0.10
+ width: parent.width
+ HeaderMenu {}
+ }
+
+ Item {
+ height: parent.height * 0.90
+ width: parent.width
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ Loader {
+ id: contentLoader
+ height: parent.height - Constants.margin
+ width: parent.width - 2 * Constants.margin
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.leftMargin: Constants.margin
+ anchors.rightMargin: Constants.margin
+ anchors.bottomMargin: Constants.margin
+
+
+ source:startQml
+ property variant viewTransitionStack : []
+
+ function reset() {
+ viewTransitionStack = []
+ }
+
+ property string currentLocation
+ function go(path, appId) {
+ console.debug("enter:", path, ", appId:", appId)
+ if (path) {
+ if (currentLocation !== path) {
+ viewTransitionStack.push({ uri: source.toString(), applicationContext: false })
+ if (appId) {
+ dataContainer.setCurrentApplication(appId)
+ }
+ currentLocation = path
+ source = path
+ }
+ }
+ console.debug("exit")
+ }
+
+ function back() {
+ if (viewTransitionStack.length) {
+ source = viewTransitionStack.pop().uri
+ }
+ currentLocation = ""
+ }
+
+ onStatusChanged: {
+ if (status == Component.Ready) {
+ if (!dataContainer.activeAlert) {
+ dataContainer.applicationContext = item.applicationContext
+ }
+ else {
+ dataContainer.applicationSavedContext = item.applicationContext
+ }
+ if (viewTransitionStack && viewTransitionStack.length) {
+ viewTransitionStack[viewTransitionStack.length - 1].applicationContext = item.applicationContext
+ }
+ dataContainer.setSystemContext()
+ }
+ }
+ }
+ }
+
+ WarningInfo { id: warningInfo }
+
+ InteractionPopup {
+ id: interactionPopup
+ popUpName: "UI.PerformInteraction"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ SliderPopup {
+ id: sliderPopup
+ popUpName: "UI.Slider"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ PerformAudioPassThruPopup {
+ id: performAudioPassThruPopup
+ popUpName: "UI.PerformAudioPassThru"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ VRHelpPopup {
+ id: vrHelpPopup
+ popUpName: "UI.VrHelp"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ AlertWindow {
+ id: alertWindow
+ popUpName: "UI.Alert"
+ objectName: "AlertWindow"
+ anchors.fill: parent
+ visible: false
+ }
+ }
+
+ Item {
+ id: simulationScreen
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.left: mainScreen.right
+ width: simulationPanel.width
+ clip: true
+ SimulationView {
+ id: simulationPanel
+
+ VRPopUp {
+ id: vrPopUp
+ visible: false
+ anchors.fill: parent
+ }
+
+ TTSPopUp {
+ id: ttsPopUp
+ anchors.top: parent.top
+ anchors.right: parent.right
+ visible: false
+ }
+ }
+ }
+
+ Item {
+ id: hardwareScreen
+ anchors.top: mainScreen.bottom
+ anchors.left: parent.left
+ anchors.right: simulationScreen.left
+ height: hardwarePanel.height
+ clip: true
+ HardwareButtonsView { id: hardwarePanel }
+ }
+
+ HMIProxy {
+ HmiApi.ButtonsProxy {
+ id: sdlButtons
+ objectName: "Buttons"
+ }
+ HmiApi.BasicCommunicationProxy {
+ id: sdlBasicCommunication
+ objectName: "BasicCommunication"
+ }
+ HmiApi.VRProxy {
+ id: sdlVR
+ objectName: "VR"
+ }
+ HmiApi.TTSProxy {
+ id: sdlTTS
+ objectName: "TTS"
+ }
+ HmiApi.NavigationProxy {
+ id: sdlNavigation
+ objectName: "Navigation"
+ }
+ HmiApi.VehicleInfoProxy {
+ id: sdlVehicleInfo
+ objectName: "VehicleInfo"
+ }
+ HmiApi.UIProxy {
+ id: sdlUI
+ objectName: "UI"
+ }
+ }
+
+ SDLProxy {
+ id: sdlProxy
+
+ onAppRegistered: {
+ dataContainer.addApplication(
+ {
+ appName: application.appName,
+ ngnMediaScreenAppName: application.ngnMediaScreenAppName,
+ icon: application.icon,
+ deviceName: application.deviceName,
+ appId: application.appId,
+ hmiDisplayLanguageDesired: application.hmiDisplayLanguageDesired,
+ isMediaApplication: application.isMediaApplication,
+ appType: application.appType,
+ hmiUIText: { },
+ mediaClock: {
+ "updateMode": Internal.MediaClockUpdateMode.MCU_COUNTUP,
+ "runningMode": Internal.MediaClockRunningMode.MCR_STOPPED,
+ "startTime": -1,
+ "endTime": -1,
+ "startTimeForProgress": -1
+ }
+ });
+ }
+
+ onAppUnregistered: {
+ console.debug("enter")
+ dataContainer.removeApplication(appId);
+ if ((dataContainer.currentApplication.appId === appId)) {
+ if (dataContainer.applicationContext) {
+ contentLoader.go("views/ApplicationListView.qml");
+ }
+ if (contentLoader.viewTransitionStack.filter(function(x) { return x.applicationContext })) {
+ contentLoader.reset();
+ }
+ dataContainer.currentApplication.reset()
+ }
+ console.debug("exit")
+ }
+
+ onPlayTone: {
+ beep.play()
+ }
+
+ }
+
+ Component.onCompleted: {
+ dataContainer.hmiVRAvailable = true
+ dataContainer.hmiTTSAvailable = true
+ dataContainer.hmiNavigationAvailable = true
+ dataContainer.hmiVehicleInfoAvailable = true
+ dataContainer.hmiUIAvailable = true
+
+ sdlBasicCommunication.onReady()
+ }
+
+ /*
+ * Test Support Section
+ *
+ */
+ function getSlider(){
+ return sliderPopup
+ }
+
+ function getDataStorage(){
+ return dataContainer
+ }
+
+ function getUIProxy(){
+ return sdlUI
+ }
+
+ function getMainScreen(){
+ return mainScreen
+ }
+
+ function getContentLoader(){
+ return contentLoader
+ }
+
+ function getWarningInfo(){
+ return warningInfo
+ }
+ /*
+ * Test Support Section End
+ */
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ArrowKeys.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ArrowKeys.qml
new file mode 100644
index 000000000..4f3396012
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ArrowKeys.qml
@@ -0,0 +1,68 @@
+/**
+ * @file ArrowKeys.qml
+ * @brief Keys with arrow for cursor movement.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+
+Item {
+ width: buttonOk.width
+ height: buttonOk.height
+
+ HardwareButton {
+ id: arrowUp
+ buttonId: Common.ButtonName.TUNEUP
+ name: "Up"
+ }
+ HardwareButton {
+ id: arrowDown
+ buttonId: Common.ButtonName.TUNEDOWN
+ name: "Down"
+ }
+ HardwareButton {
+ id: arrowLeft
+ buttonId: Common.ButtonName.SEEKLEFT
+ name: "Left"
+ }
+ HardwareButton {
+ id: arrowRight
+ buttonId: Common.ButtonName.SEEKRIGHT
+ name: "Right"
+ }
+ HardwareButton {
+ id: buttonOk
+ buttonId: Common.ButtonName.OK
+ name: "Ok"
+ longPressAvailable: false
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/BackButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/BackButton.qml
new file mode 100644
index 000000000..906b3098b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/BackButton.qml
@@ -0,0 +1,48 @@
+/**
+ * @file BackButton.qml
+ * @brief Button "Back" that return to previous menu.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+OvalButton {
+ text: "Back"
+ onClicked: { contentLoader.back() }
+ fontSize: Constants.fontSize
+ opacity: 0
+
+ NumberAnimation on opacity {
+ to: 1;
+ duration: Constants.animationDuration
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/CheckBox.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/CheckBox.qml
new file mode 100644
index 000000000..39d693b97
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/CheckBox.qml
@@ -0,0 +1,78 @@
+/**
+ * @file CheckBox.qml
+ * @brief Check box
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Item {
+ property alias text: text.text
+ property alias color: text.color
+ property bool checked: false
+
+ signal clicked
+
+ onCheckedChanged: {
+ selector.color = checked ? Constants.primaryColorPressed : Constants.transparentColor
+ }
+
+ height: checkbox.height + Constants.generalSpacing / 2
+ width: checkbox.width + text.width + 1.5 * Constants.generalSpacing
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: { checked = !checked; parent.clicked() }
+ }
+ Rectangle {
+ id: checkbox
+ width: text.font.pixelSize + Constants.generalSpacing / 2
+ height: width
+ anchors.left: parent.left
+ border.color: Constants.controlsBorderColor
+ border.width: Constants.controlsBorderWidth
+ color: Constants.panelTextColor
+ radius: Constants.controlsRadius
+ Rectangle {
+ id: selector
+ anchors.fill: parent
+ anchors.margins: checkbox.width / 8
+ color: Constants.transparentColor
+ }
+ }
+ Text {
+ id: text
+ anchors.left: checkbox.right
+ anchors.leftMargin: Constants.generalSpacing
+ anchors.verticalCenter: checkbox.verticalCenter
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/CircleButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/CircleButton.qml
new file mode 100644
index 000000000..818f07ffc
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/CircleButton.qml
@@ -0,0 +1,87 @@
+/**
+ * @file CircleButton.qml
+ * @brief Parent class for circle button.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Image {
+ id: circleBtn
+ source: imgOff
+ property alias text: btnText.text
+ property alias pixelSize: btnText.font.pixelSize
+ property string dest: ""
+ property bool isPressed: false
+ property string imgOff: "../res/buttons/round_btn.png"
+ property string imgOn: "../res/buttons/round_pressed_btn.png"
+ property string textColorOnPressed: Constants.secondaryColor
+ property string textColorDefault: Constants.primaryColor
+
+ signal clicked()
+ function wasClicked()
+ {
+ clicked()
+ }
+
+ Text {
+ anchors.centerIn: parent
+ id: btnText
+ color: textColorDefault
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ console.log("CircleButton onPressed enter");
+ source = imgOn
+ btnText.color = textColorOnPressed
+ isPressed = true
+ console.log("CircleButton onPressed exit");
+ }
+ onReleased: {
+ console.log("CircleButton onReleased enter");
+ source = imgOff
+ btnText.color = textColorDefault
+ isPressed = false
+ console.log("CircleButton onReleased exit");
+ }
+ onClicked: {
+ console.log("CircleButton onClicked enter");
+ if(dest !== ""){
+ contentLoader.go(dest)
+ }
+ circleBtn.wasClicked()
+ console.log("CircleButton onClicked enter");
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClickableImage.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClickableImage.qml
new file mode 100644
index 000000000..f35f7c302
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClickableImage.qml
@@ -0,0 +1,66 @@
+/**
+ * @file ClickableImage.qml
+ * @brief Clickable image item
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Image {
+ signal pressed ()
+ signal released ()
+ signal canceled ()
+ signal clicked()
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ parent.scale = Constants.pressedIconScale
+ parent.pressed()
+ }
+
+ onReleased: {
+ parent.scale = 1
+ parent.released()
+ }
+
+ onCanceled: {
+ parent.scale = 1
+ parent.canceled()
+ }
+
+ onClicked: {
+ parent.clicked()
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClickableText.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClickableText.qml
new file mode 100644
index 000000000..e6b9fbf24
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClickableText.qml
@@ -0,0 +1,77 @@
+/**
+ * @file ClickableText.qml
+ * @brief Clickable text item
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+Text {
+ property string defaultColor
+ property string pressedColor
+ signal pressed ()
+ signal released ()
+ signal canceled ()
+ signal clicked ()
+
+ color: defaultColor
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ press()
+ parent.pressed()
+ }
+
+ onReleased: {
+ release()
+ parent.released()
+ }
+
+ onCanceled: {
+ release()
+ parent.canceled()
+ }
+
+ onClicked: {
+ parent.clicked()
+ }
+ }
+
+ function press () {
+ color = pressedColor
+ }
+
+ function release () {
+ color = defaultColor
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClimateControlBtn.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClimateControlBtn.qml
new file mode 100644
index 000000000..abd344272
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ClimateControlBtn.qml
@@ -0,0 +1,93 @@
+/**
+ * @file ClimateControlBtn.qml
+ * @brief Round button, which is used at climat menu.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Item
+{
+ id: climateControlBtn
+ width: climateBtnImg.width
+ height: climateBtnImg.height
+ property string name: ""
+ property string txt: ""
+ state: "off"
+
+ Image {
+ id: climateBtnImg
+ source: climateControlBtn.state === "off" ? "../res/climate/climate_round_off_btn.png" : "../res/climate/climate_round_on_btn.png"
+
+ Image {
+ id: hoverImg
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ property string st: climateControlBtn.state === "off" ? "_off" : "_on"
+ source: climateControlBtn.name === "" ? "": "../res/climate/" + climateControlBtn.name + st + ".png"
+ }
+
+ Text {
+ id: hoverText
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ text: climateControlBtn.txt
+ font.pixelSize: Constants.fontSize
+ color: climateControlBtn.state === "off" ? Constants.primaryColor : Constants.secondaryColor
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ if(climateControlBtn.state === "on") {
+ climateControlBtn.state = "off"
+ climateBtnImg.source = "../res/climate/climate_round_off_btn.png"
+ if(climateControlBtn.txt != "") {
+ hoverText.color = Constants.primaryColor
+ }
+ if(climateControlBtn.name != "") {
+ hoverImg.source = "../res/climate/" + climateControlBtn.name + "_off.png"
+ }
+ } else {
+ climateControlBtn.state = "on"
+ climateBtnImg.source = "../res/climate/climate_round_on_btn.png"
+ if(climateControlBtn.txt != "") {
+ hoverText.color = Constants.secondaryColor
+ }
+ if(climateControlBtn.name != "") {
+ hoverImg.source = "../res/climate/" + climateControlBtn.name + "_on.png"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ComboBox.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ComboBox.qml
new file mode 100644
index 000000000..d5129a2a1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ComboBox.qml
@@ -0,0 +1,143 @@
+/**
+ * @file ComboBox.qml
+ * @brief Combo box
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Item {
+ id: container
+ width: Constants.defaultComboboxWidth
+ height: main.height
+
+ property alias model: listView.model
+ property alias currentIndex: listView.currentIndex
+ property alias currentText: textMain.text
+ property string textRole
+
+ function choose(name) {
+ var count = listView.count
+ for (var i = 0; i < count; ++i) {
+ if (name === listView.model.get(i).name) {
+ listView.currentIndex = i
+ break
+ }
+ }
+
+ textMain.text = name
+ }
+
+ Rectangle {
+ id: main
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: label.font.pixelSize + Constants.generalSpacing
+ color: Constants.panelTextColor
+ border.color: Constants.controlsBorderColor
+ border.width: Constants.controlsBorderWidth
+ radius: Constants.controlsRadius
+
+ Text {
+ id: textMain
+ anchors.left: parent.left
+ anchors.right: arrow.left
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ color: Constants.secondaryColor
+ verticalAlignment: Text.AlignVCenter
+ anchors.leftMargin: Constants.generalSpacing
+ anchors.rightMargin: Constants.generalSpacing
+ elide: Text.ElideRight
+ }
+
+ Rectangle {
+ id: arrow
+ anchors.right: parent.right
+ height: parent.height; width: height
+
+ color: Constants.panelTextColor
+ border.color: Constants.controlsBorderColor
+ border.width: Constants.controlsBorderWidth
+ radius: Constants.controlsRadius
+
+ Text {
+ anchors.fill: parent
+ text: "v"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: Constants.secondaryColor
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ hoverEnabled: true
+ onClicked: listView.visible = !listView.visible
+ }
+ }
+
+ ScrollableListView {
+ id: listView
+ anchors.top: main.bottom
+ anchors.left: main.left
+ anchors.right: main.right
+ height: 150
+ visible: false
+ delegate: Rectangle {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: label.font.pixelSize + Constants.generalSpacing
+ color: Constants.panelTextColor
+ border.color: Constants.controlsBorderColor
+ border.width: Constants.controlsBorderWidth
+ Text {
+ id: label
+ anchors.fill: parent
+ anchors.leftMargin: Constants.generalSpacing
+ anchors.rightMargin: Constants.generalSpacing
+ verticalAlignment: Text.AlignVCenter
+ text: model.name
+ color: Constants.secondaryColor
+ elide: Text.ElideRight
+ }
+ MouseArea {
+ anchors.fill: parent
+ hoverEnabled: true
+ onClicked: { choose(model.name); listView.visible = false }
+ onEntered: { parent.color = Constants.primaryColorPressed }
+ onExited: { parent.color = Constants.panelTextColor }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/GradientRectangle.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/GradientRectangle.qml
new file mode 100644
index 000000000..7b21bb456
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/GradientRectangle.qml
@@ -0,0 +1,125 @@
+/**
+ * @file GradientRectangle.qml
+ * @brief Rectangle with gradient.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+
+Rectangle {
+ property string firstColor: "grey"
+ property string secondColor: "#2E2E2E"
+ property alias fontSize: text.font.pixelSize
+ property alias text: text.text
+ property int customButtonID
+ property bool isCustomButton: false
+ property bool clickProcessed
+ signal pressed()
+ signal released()
+
+ radius: 5
+ border.color: "#D3D3D3"
+
+ Text {
+ id: text
+ anchors.fill: parent
+ font.pixelSize: Constants.titleFontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ firstColor = "#2E2E2E"
+ secondColor = "grey"
+ parent.pressed()
+ }
+ onReleased: {
+ firstColor = "grey"
+ secondColor = "#2E2E2E"
+ parent.released()
+ }
+ }
+
+ Timer {
+ id: timer
+ interval: Constants.customButtonTimer
+ repeat: false
+ triggeredOnStart: false
+ }
+
+ onPressed: {
+ if (isCustomButton) {
+ timer.start()
+ clickProcessed = false
+ sdlButtons.onButtonEvent(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonEventMode.BUTTONDOWN, customButtonID)
+ }
+ }
+
+ onReleased: {
+ if (isCustomButton) {
+ sdlButtons.onButtonEvent(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonEventMode.BUTTONUP, customButtonID)
+ timer.stop()
+ if (!clickProcessed) {
+ sdlButtons.onButtonPress(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonPressMode.SHORT, customButtonID)
+ }
+ }
+ }
+
+ Connections {
+ target: timer
+ onTriggered: {
+ if (isCustomButton) {
+ if(!clickProcessed) {
+ sdlButtons.onButtonPress(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonPressMode.LONG, customButtonID)
+ clickProcessed = true
+ }
+ }
+ }
+ }
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0.1
+ color: firstColor
+ }
+ GradientStop {
+ position: 0.5
+ color: secondColor
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/GridItem.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/GridItem.qml
new file mode 100644
index 000000000..84528ab80
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/GridItem.qml
@@ -0,0 +1,53 @@
+/**
+ * @file GridItem.qml
+ * @brief Item with animation for GridMenu
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Item {
+ id: item
+ opacity: 0
+ SequentialAnimation {
+ id: animation
+ PauseAnimation {duration: index * 100 }
+ NumberAnimation {
+ target: item
+ duration: Constants.animationDuration
+ property: "opacity"
+ from: 0; to: 1;
+ }
+ }
+ Component.onCompleted: {
+ animation.start()
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/HardwareButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/HardwareButton.qml
new file mode 100644
index 000000000..ea8e406c6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/HardwareButton.qml
@@ -0,0 +1,108 @@
+/**
+ * @file HardwareButton.qml
+ * @brief Parent class for hardware button.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import com.ford.sdl.hmi.hw_buttons 1.0
+import "../hmi_api/Common.js" as Common
+
+MaskedContainer {
+ property string name
+ property int buttonId: Common.ButtonName.CUSTOM_BUTTON
+ property bool upDownAvailable: true
+ property bool shortPressAvailable: true
+ property bool longPressAvailable: true
+
+ signal hold
+
+ Image {
+ source: "../res/controlButtons/" + name + "Button.png"
+ }
+ Image {
+ id: pressedImg
+ source: "../res/controlButtons/" + name + "Button_pressed.png"
+ visible: false
+ Behavior on opacity {
+ NumberAnimation { duration: 80 }
+ }
+ }
+ Timer {
+ id: timer
+ interval: 2000
+ repeat: false
+ triggeredOnStart: false
+ }
+ property bool clickProcessed
+ onPressed: {
+ clickProcessed = false
+ pressedImg.visible = true
+ timer.start()
+ if (upDownAvailable) {
+ sdlButtons.onButtonEvent(buttonId, Common.ButtonEventMode.BUTTONDOWN, undefined)
+ }
+ }
+
+ onReleased: {
+ if (upDownAvailable) {
+ sdlButtons.onButtonEvent(buttonId, Common.ButtonEventMode.BUTTONUP, undefined)
+ }
+ timer.stop()
+ if (!clickProcessed && shortPressAvailable) {
+ sdlButtons.onButtonPress(buttonId, Common.ButtonPressMode.SHORT, undefined)
+ }
+ pressedImg.visible = false
+ }
+
+ Connections {
+ target: timer
+ onTriggered: {
+ if(!clickProcessed && longPressAvailable) {
+ sdlButtons.onButtonPress(buttonId, Common.ButtonPressMode.LONG, undefined)
+ clickProcessed = true
+ hold()
+ }
+ }
+ }
+
+ Component.onCompleted: {
+ if (buttonId !== Common.ButtonName.CUSTOM_BUTTON) {
+ settingsContainer.buttonCapabilities.push(
+ {
+ name: buttonId,
+ upDownAvailable: upDownAvailable,
+ shortPressAvailable: shortPressAvailable,
+ longPressAvailable: longPressAvailable
+ });
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/HeaderMenu.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/HeaderMenu.qml
new file mode 100644
index 000000000..2b0b418c5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/HeaderMenu.qml
@@ -0,0 +1,134 @@
+/**
+ * @file HeaderMenu.qml
+ * @brief Header menu view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Item {
+ id: headerMenu
+ anchors.fill: parent
+
+ Text {
+ anchors.leftMargin: Constants.margin
+ anchors.topMargin: Constants.margin
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize
+ text: "75°"
+ }
+
+ Item {
+ width: menuText.width
+ height: parent.height
+ anchors.topMargin: Constants.margin
+ anchors.horizontalCenter: headerMenu.horizontalCenter
+ signal clicked ()
+
+ ClickableText {
+ id: menuLogo
+ anchors.horizontalCenter: menuText.horizontalCenter
+ anchors.bottom: parent.verticalCenter
+ text: "≡"
+ defaultColor: Constants.primaryColor
+ pressedColor: Constants.primaryColorPressed
+ font.pixelSize: Constants.fontSize
+
+ onClicked: parent.clicked()
+ onPressed: menuLogo.press()
+ onReleased: menuLogo.release()
+ onCanceled: menuLogo.release()
+ }
+
+ ClickableText {
+ id: menuText
+ anchors.top: parent.verticalCenter
+ text: "MENU";
+ defaultColor: Constants.primaryColor
+ pressedColor: Constants.primaryColorPressed
+ font.pixelSize: Constants.fontSize
+
+ onClicked: parent.clicked()
+ onPressed: menuText.press()
+ onReleased: menuText.release()
+ onCanceled: menuText.release()
+ }
+
+ onClicked: {
+ contentLoader.go("./views/MainMenuView.qml")
+ }
+ }
+
+ Row {
+ id: clock
+ height: childrenRect.height
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.rightMargin: Constants.margin
+ anchors.topMargin: Constants.margin
+ property date date: new Date()
+
+ Timer {
+ running: true
+ repeat: true
+ interval: 1000
+ onTriggered: {
+ clock.date = new Date();
+ }
+ }
+
+ Text {
+ text: Qt.formatTime(clock.date, "hh");
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize;
+ }
+
+ Item {
+ width: 10
+ height: parent.height
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: clock.date.getSeconds() % 2 ? ":" : ""
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize;
+ }
+ }
+
+ Text {
+ text: Qt.formatTime(clock.date, "mm");
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize;
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/Icon.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/Icon.qml
new file mode 100644
index 000000000..d0bfdba78
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/Icon.qml
@@ -0,0 +1,65 @@
+/**
+ * @file Navigation.qml
+ * @brief Icon.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+
+Item {
+ property variant source
+
+ Image {
+ anchors.fill: parent
+ source: url(parent.source)
+
+ function image(turnIcon) {
+ if (turnIcon && turnIcon.imageType === Common.ImageType.STATIC) {
+ return turnIcon.value;
+ } else {
+ return "";
+ }
+ }
+
+ function url(turnIcon) {
+ if (turnIcon && turnIcon.imageType === Common.ImageType.DYNAMIC) {
+ return turnIcon.value;
+ } else {
+ return "";
+ }
+ }
+ }
+
+ function reset () {
+ source = undefined
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ListItem.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ListItem.qml
new file mode 100644
index 000000000..c87c24de4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ListItem.qml
@@ -0,0 +1,70 @@
+/**
+ * @file Entry.qml
+ * @brief Entry with icon and text for list.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Rectangle {
+ id: main
+ color: Constants.transparentColor
+
+ property alias text: label.text
+ property alias fontSize: label.font.pixelSize
+ property alias icon: image.source
+
+ Icon {
+ id: image
+ width: Constants.iconItemListSize
+ height: Constants.iconItemListSize
+ anchors.left: parent.left
+ anchors.leftMargin: Constants.generalSpacing
+ anchors.verticalCenter: parent.verticalCenter
+ visible: source ? true : false
+ }
+ Text {
+ id: label
+ anchors.verticalCenter: parent.verticalCenter
+ height: image.height
+ width: parent.width - image.width
+ z: 50
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: Constants.fontSize
+ text: "Name Entry"
+ anchors.left: image.right
+ anchors.leftMargin: Constants.generalSpacing
+ anchors.verticalCenterOffset: 0
+ visible: text !== ""
+ color: Constants.primaryColor
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/MaskedButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/MaskedButton.qml
new file mode 100644
index 000000000..d8a95d1a0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/MaskedButton.qml
@@ -0,0 +1,64 @@
+/**
+ * @file MaskedButton.qml
+ * @brief Masked button.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import com.ford.sdl.hmi.hw_buttons 1.0
+
+MaskedContainer {
+ property string name
+
+ Image {
+ id: icon
+ source: "../res/controlButtons/" + name + "Button.png"
+ }
+
+ onPressed: {
+ state = "pressed";
+ }
+
+ onReleased: {
+ state = "";
+ }
+
+ states: [
+ State {
+ name: "pressed"
+ PropertyChanges {
+ target: icon
+ source: "../res/controlButtons/" + name + "Button_pressed.png"
+ }
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/MultiTouchArea.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/MultiTouchArea.qml
new file mode 100644
index 000000000..e86dcedc8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/MultiTouchArea.qml
@@ -0,0 +1,77 @@
+/**
+ * @file MultiTouchArea.qml
+ * @brief Area for multitouch.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+
+MultiPointTouchArea {
+ readonly property int created: Date.now()
+
+ signal pressed(var touchPoints)
+ signal released(var touchPoints)
+ signal canceled(var touchPoints)
+ signal updated(var touchPoints)
+
+ function fillEvent(touchPoints) {
+ var event = []
+ for (var i = 0; i < touchPoints.length; ++i) {
+ event.push({
+ id: touchPoints[i].pointId,
+ ts: [Date.now() - created],
+ c: [{ x: touchPoints.x, y: touchPoints.y }] // TODO(KKolodiy): need cast to int
+ })
+ }
+ return event
+ }
+
+ minimumTouchPoints: 1
+ maximumTouchPoints: 10
+
+ onPressed: {
+ sdlUI.onTouchEvent(Common.BEGIN, fillEvent(touchPoints))
+ parent.pressed(touchPoints)
+ }
+ onReleased: {
+ sdlUI.onTouchEvent(Common.END, fillEvent(touchPoints))
+ parent.released(touchPoints)
+ }
+ onCanceled: {
+ sdlUI.onTouchEvent(Common.END, fillEvent(touchPoints))
+ parent.canceled(touchPoints)
+ }
+ onUpdated: {
+ sdlUI.onTouchEvent(Common.MOVE, fillEvent(touchPoints))
+ parent.updated(touchPoints)
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/OvalButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/OvalButton.qml
new file mode 100644
index 000000000..59458499a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/OvalButton.qml
@@ -0,0 +1,240 @@
+/**
+ * @file OvalButton.qml
+ * @brief Oval button with flexible width.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import com.ford.sdl.hmi.hw_buttons 1.0
+import "../models/Constants.js" as Constants
+
+// Don't change constants. It break button
+// TODO (dchmerev@luxoft.com): make this comment more clear
+// todo (ykazakov): eliminate this problem and remove all such comments
+
+Item {
+ id: main
+ width: dynamic ? field.width + 2 * left.width : Constants.ovalButtonWidth
+ height: Constants.ovalButtonHeight
+
+ signal clicked;
+ signal pressed;
+ signal released;
+ signal pressAndHold;
+ property alias text: label.text
+ property alias fontSize: label.font.pixelSize
+ property alias icon: image.source
+ property bool highlighted: false
+ property bool dynamic: false
+ property bool disabled: false
+ property color colorizeColor
+ property real colorizeStrength
+
+ onDisabledChanged: colorize()
+ onHighlightedChanged: colorize()
+ Component.onCompleted: colorize()
+
+ function colorize() {
+ if (disabled) {
+ colorizeColor = "gray";
+ colorizeStrength = 1;
+ } else if (highlighted) {
+ colorizeColor = "cyan";
+ colorizeStrength = 1;
+ } else {
+ colorizeStrength = 0;
+ }
+ }
+
+ Item {
+ id: buttonBorderImage
+ visible: true
+ anchors.fill: parent
+ Image {
+ id: left
+ width: 31
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ anchors.top: parent.top
+ source: "../res/buttons/oval_btn_left.png"
+ effect: Colorize {
+ color: main.colorizeColor
+ strength: main.colorizeStrength
+ }
+ }
+
+ Image {
+ id: right
+ width: 31
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.right: parent.right
+ source: "../res/buttons/oval_btn_right.png"
+ effect: Colorize {
+ color: main.colorizeColor
+ strength: main.colorizeStrength
+ }
+ }
+
+ Image {
+ id: top
+ height: 10
+ anchors.right: parent.right
+ anchors.rightMargin: 31
+ anchors.left: parent.left
+ anchors.leftMargin: 31
+ anchors.top: parent.top
+ fillMode: Image.TileHorizontally
+ source: "../res/buttons/oval_btn_top.png"
+ effect: Colorize {
+ color: main.colorizeColor
+ strength: main.colorizeStrength
+ }
+ }
+
+ Image {
+ id: bottom
+ height: 11
+ anchors.right: parent.right
+ anchors.rightMargin: 31
+ anchors.left: parent.left
+ anchors.leftMargin: 31
+ anchors.bottom: parent.bottom
+ fillMode: Image.TileHorizontally
+ source: "../res/buttons/oval_btn_bottom.png"
+ effect: Colorize {
+ color: main.colorizeColor
+ strength: main.colorizeStrength
+ }
+ }
+ }
+
+ Rectangle {
+ id: background
+ color: Constants.transparentColor
+ anchors.fill: parent
+ anchors.rightMargin: 31
+ anchors.leftMargin: 31
+ anchors.bottomMargin: 10
+ anchors.topMargin: 10
+ visible: true
+ effect: Colorize {
+ color: main.colorizeColor
+ strength: main.colorizeStrength
+ }
+ }
+
+ MouseArea {
+ id: mousearea
+ anchors.rightMargin: 15
+ anchors.leftMargin: 15
+ anchors.bottomMargin: 11
+ anchors.topMargin: 10
+ anchors.fill: parent
+ enabled: !parent.disabled
+ onPressed: {
+ parent.state = "pressed";
+ parent.pressed();
+ }
+ onReleased: {
+ parent.state = "";
+ parent.released();
+ }
+ onClicked: {
+ parent.clicked();
+ }
+ onPressAndHold: {
+ parent.pressAndHold();
+ }
+ onCanceled: {
+ parent.state = "";
+ }
+ }
+
+ Item {
+ id: field
+ anchors.fill: background
+
+ Icon {
+ id: image
+ width: Constants.iconButtonSize
+ height: Constants.iconButtonSize
+ anchors.verticalCenter: parent.verticalCenter
+ visible: source ? true : false
+ }
+ Text {
+ id: label
+ width: image.visible ? parent.width - image.width : parent.width
+ color: Constants.primaryColor
+ anchors.centerIn: parent
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: Constants.ovalButtonFontSize
+ visible: true
+ elide: Text.ElideRight
+ effect: Colorize {
+ id: colorizeLabel
+ color: main.colorizeColor
+ strength: main.colorizeStrength
+ }
+ }
+ }
+
+ states: [
+ State {
+ name: "pressed"
+ PropertyChanges {
+ target: left
+ source: "../res/buttons/oval_btn_pressed_left.png"
+ }
+
+ PropertyChanges {
+ target: right
+ source: "../res/buttons/oval_btn_pressed_right.png"
+ }
+
+ PropertyChanges {
+ target: background
+ color: Constants.primaryColor
+ }
+
+ PropertyChanges {
+ target: label
+ color: Constants.secondaryColor
+ }
+
+ PropertyChanges {
+ target: colorizeLabel
+ strength: 0
+ }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PagedFlickable.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PagedFlickable.qml
new file mode 100644
index 000000000..6d40ad647
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PagedFlickable.qml
@@ -0,0 +1,105 @@
+/**
+ * @file PagedFlickable.qml
+ * @brief Animated row.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+Item
+{
+ id: flickablePage
+ height: container.height + pager.height
+ default property alias content: containerRow.children
+ property alias spacing: containerRow.spacing
+ property int elementWidth
+ property int snapTo
+ property int count: 0
+
+ Flickable {
+ id: container
+ anchors.bottom: parent.bottom
+ maximumFlickVelocity: 1500
+ contentWidth: containerRow.width
+ height: containerRow.height
+ width: parent.width
+ interactive: contentWidth > width
+
+ onMovementEnded: {
+ var rest = contentX % snapTo
+ var t = 0.25
+ if (rest > parent.snapTo / 2) {
+ rest = rest - parent.snapTo
+ }
+ var vel = 2 * rest / t
+ flickDeceleration = Math.abs(vel) / t
+ flick(vel, 0)
+ flickDeceleration = 1500
+ }
+ Row {
+ id: containerRow
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ }
+
+ Pager {
+ id: pager
+ space: 7
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+
+ pages: {
+ if ( (container.contentWidth % container.width) >= (flickablePage.elementWidth / 2 + flickablePage.spacing)) {
+ return Math.ceil(container.contentWidth / container.width)
+ }
+ else {
+ return Math.floor(container.contentWidth / container.width)
+ }
+ }
+
+ activePage: {
+ if (container.contentX <= 0) {
+ return 0
+ }
+ else if ( (container.contentWidth - container.contentX) < container.width) {
+ return pages -1
+ }
+ else {
+ if ( (container.contentX % container.width) >= (flickablePage.elementWidth / 2 + flickablePage.spacing)) {
+ return Math.ceil(container.contentX / container.width)
+ }
+ else if ( (container.contentX % container.width) > 0) {
+ return Math.floor(container.contentX / container.width)
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/Pager.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/Pager.qml
new file mode 100644
index 000000000..471d93211
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/Pager.qml
@@ -0,0 +1,53 @@
+/**
+ * @file Pager.qml
+ * @brief Bubbles that indicate about page switch.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+Row {
+ id: pager
+ property int pages
+ property int activePage: 0
+ property int space
+ property int itemsInRowOnScreen: 3
+
+ spacing: space
+ visible: pages !== 1
+
+ Repeater {
+ model: pages
+ Image {
+ source: index === activePage ? "../res/white_ball.png" : "../res/blue_ball.png"
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PlayPauseButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PlayPauseButton.qml
new file mode 100644
index 000000000..825884cc1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PlayPauseButton.qml
@@ -0,0 +1,77 @@
+/**
+ * @file PlayPauseButton.qml
+ * @brief Behavior of Play/Pause button.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+Image {
+ id: playPauseButton
+ property string sourceOnPressed: ""
+ property string sourceOnReleased: ""
+
+ signal clicked
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ playPauseButton.source = playPauseButton.sourceOnPressed
+ }
+ onReleased: {
+ playPauseButton.source = playPauseButton.sourceOnReleased
+ }
+ onClicked: {
+ playPauseButton.clicked()
+ }
+ }
+ states: [
+ State {
+ name: "Play"
+ PropertyChanges {
+ target: playPauseButton
+ source: "../res/buttons/player_play_btn.png"
+ sourceOnPressed: "../res/buttons/player_play_pressed_btn.png"
+ sourceOnReleased: "../res/buttons/player_pause_btn.png"
+ }
+ },
+
+ State {
+ name: "Pause"
+ PropertyChanges {
+ target: playPauseButton
+ source: "../res/buttons/player_pause_btn.png"
+ sourceOnPressed: "../res/buttons/player_pause_pressed_btn.png"
+ sourceOnReleased: "../res/buttons/player_play_btn.png"
+ }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PowerSwitchButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PowerSwitchButton.qml
new file mode 100644
index 000000000..2027e1f59
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PowerSwitchButton.qml
@@ -0,0 +1,75 @@
+/**
+ * @file PowerSwitchBtn.qml
+ * @brief On/Off button.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Rectangle {
+ id: powerSwitchBtn
+ state: "Turn ON"
+ width: 120
+ height: 80
+ radius: 5
+ property bool pressed;
+
+ gradient: Gradient {
+ GradientStop { position: pressed ? 1.0 : 0.0; color: "#2c2c2c" }
+ GradientStop { position: pressed ? 0.0 : 1.0; color: "black" }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.pressed = true
+ }
+ onReleased: {
+ parent.pressed = false
+ parent.state = parent.state === "Turn ON" ? "Turn OFF" : "Turn ON"
+ btnText.text = parent.state
+ if (parent.state === "Turn OFF") {
+ contentLoader.reset()
+ mainScreen.visible = true
+ warningInfo.showOkButton()
+ }
+ }
+ }
+
+ Text {
+ id: btnText
+ color: "red"
+ text: parent.state
+ anchors.centerIn: parent
+ font.pixelSize: Constants.powerButtonFornSize
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PresetRow.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PresetRow.qml
new file mode 100644
index 000000000..1454ed812
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PresetRow.qml
@@ -0,0 +1,106 @@
+/**
+ * @file PresetRow.qml
+ * @brief Animated row with radio stations.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Item {
+ id: presetRow
+ height: childrenRect.height
+ property variant presets: []
+ property int selectedIndex: 0
+ signal presetSelected
+ signal presetButtonPressed()
+ signal presetButtonReleased()
+ signal presetButtonClicked()
+ signal presetButtonHold()
+
+ Image {
+ id: circleButton
+ source: "../res/buttons/preset_pressed_btn.png"
+ visible: false
+ enabled: false
+ }
+
+ PagedFlickable {
+ width: parent.width
+ spacing: (width - (circleButton.width * 4)) / 3
+ snapTo: spacing + circleButton.width
+ elementWidth: circleButton.width
+
+ Repeater {
+ model: presetRow.presets.length
+ delegate:
+ Column {
+ width: circleButton.width
+ Image {
+ anchors.horizontalCenter: parent.horizontalCenter
+ source: presetRow.selectedIndex === index ? "../res/buttons/preset_pressed_btn.png" : "../res/buttons/preset_btn.png"
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ presetRow.selectedIndex = index;
+ presetButtonPressed()
+ }
+ onReleased: {
+ presetRow.selectedIndex = index;
+ presetButtonReleased()
+ }
+ onClicked: {
+ presetRow.selectedIndex = index
+ presetButtonClicked()
+ }
+ onPressAndHold: {
+ presetRow.selectedIndex = index;
+ presetButtonHold()
+ }
+ }
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ text: index + 1
+ font.pixelSize: Constants.fontSize
+ color: presetRow.selectedIndex === index ? Constants.secondaryColor : Constants.primaryColor
+ }
+ }
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: presetRow.presets[index]
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PushButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PushButton.qml
new file mode 100644
index 000000000..36ee9bbb3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/PushButton.qml
@@ -0,0 +1,136 @@
+/**
+ * @file PushButton.qml
+ * @brief Simple button
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+Rectangle {
+ id: toggleButton
+ width: 160
+ height: 40
+ radius: 2
+ border.width: 2
+ border.color: "#000000"
+ gradient: grUnpressed
+
+ property alias label : label.text
+
+ signal pressed()
+ signal unpressed()
+ signal clicked()
+
+ property bool toggleMode: false
+
+ state: "unpressed"
+ onStateChanged: {
+ if (state == "pressed") {
+ pressed();
+ } else {
+ unpressed();
+ }
+ }
+
+ Text {
+ id: label
+ color: "white"
+ text: "PushButton"
+ font.pixelSize: 18
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.fill: parent
+ }
+ MouseArea {
+ id: mouseArea
+
+ anchors.fill: parent
+ onPressed: {
+ if (toggleMode) {
+ if (parent.state == "unpressed") {
+ parent.state = "pressed"
+ } else {
+ parent.state = "unpressed"
+ }
+ } else {
+ parent.state = "pressed"
+ }
+ }
+ onReleased: {
+ if (!toggleMode) {
+ parent.state = "unpressed"
+ if (mouse.isClick) {
+ parent.clicked()
+ }
+ }
+ }
+ }
+
+ states: [
+ State {
+ name: "pressed"
+ PropertyChanges {
+ target: toggleButton
+ gradient: grPressed
+ }
+ },
+ State {
+ name: "unpressed"
+ PropertyChanges {
+ target: toggleButton
+ gradient: grUnpressed
+ }
+ }
+ ]
+
+ Gradient {
+ id: grUnpressed
+
+ GradientStop { position: 0.0; color: "#2c2c2c" }
+ GradientStop { position: 1.0; color: "#0c0c0c" }
+ }
+
+ Gradient {
+ id: grPressed
+
+ GradientStop { position: 0.0; color: "black" }
+ GradientStop { position: 1.0; color: "black" }
+ }
+
+ transitions: [
+ Transition {
+ from: "unpressed"
+ to: "pressed"
+ reversible: true
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ScrollableListView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ScrollableListView.qml
new file mode 100644
index 000000000..cc26c8727
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ScrollableListView.qml
@@ -0,0 +1,49 @@
+/**
+ * @file ScrollableListView.qml
+ * @brief ListView with scrollbar on the right
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+ListView {
+ clip: true
+
+ Rectangle {
+ visible: parent.height < parent.contentHeight
+ anchors.right: parent.right
+ y: parent.visibleArea.yPosition * parent.height
+ width: Constants.scrollBarWidth
+ height: parent.visibleArea.heightRatio * parent.height
+ color: Constants.primaryColor
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ScrollableText.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ScrollableText.qml
new file mode 100644
index 000000000..82f568414
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/ScrollableText.qml
@@ -0,0 +1,70 @@
+/**
+ * @file ScrollableText.qml
+ * @brief Text with scrollers if text more than zone
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Item {
+ property alias text: text.text
+ clip: true
+
+ Flickable {
+ id: flickable
+ anchors.fill: parent
+ contentWidth: text.width
+ contentHeight: text.height
+
+ Text {
+ id: text
+ color: Constants.popUpBorderColor
+ font.pixelSize: Constants.ttsFontSize
+ }
+ }
+ Rectangle {
+ visible: flickable.height < flickable.contentHeight
+ anchors.right: flickable.right
+ y: flickable.visibleArea.yPosition * flickable.height
+ width: Constants.scrollBarWidth
+ height: flickable.visibleArea.heightRatio * flickable.height
+ color: Constants.popUpBorderColor
+ }
+ Rectangle {
+ visible: flickable.width < flickable.contentWidth
+ anchors.bottom: flickable.bottom
+ x: flickable.visibleArea.xPosition * flickable.width
+ height: Constants.scrollBarWidth
+ width: flickable.visibleArea.widthRatio * flickable.width
+ color: Constants.popUpBorderColor
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/SoftButton.js b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/SoftButton.js
new file mode 100644
index 000000000..227f63836
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/SoftButton.js
@@ -0,0 +1,39 @@
+/**
+ * @file SoftButton.js
+ * @brief Soft button view constants
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+.pragma library
+
+var Action = {
+ doOnClicked: 0,
+ doOnReleased: 1
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/SoftButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/SoftButton.qml
new file mode 100644
index 000000000..b92cd5126
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/SoftButton.qml
@@ -0,0 +1,104 @@
+/**
+ * @file SoftButton.qml
+ * @brief Soft button view
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+import "SoftButton.js" as SoftButton
+
+OvalButton {
+ property variant button
+ property int appId
+ visible: !!button
+
+ signal defaultAction;
+ signal stealFocus;
+ signal keepContext;
+
+ property int actionOrder: SoftButton.Action.doOnClicked
+
+ highlighted: button ? button.isHighlighted : false
+ onPressed: {
+ actionOrder = SoftButton.Action.doOnClicked
+ sdlButtons.onButtonEvent(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonEventMode.BUTTONDOWN, button.softButtonID)
+ }
+
+ onReleased: {
+ if (actionOrder === SoftButton.Action.doOnReleased) {
+ switch (button.systemAction) {
+ case Common.SystemAction.DEFAULT_ACTION:
+ defaultAction();
+ break;
+ case Common.SystemAction.STEAL_FOCUS:
+ if (dataContainer.currentApplication.isMediaApplication) {
+ contentLoader.go("views/SDLPlayerView.qml", appId);
+ } else {
+ contentLoader.go("views/SDLNonMediaView.qml", appId);
+ }
+ stealFocus();
+ break;
+ case Common.SystemAction.KEEP_CONTEXT:
+ keepContext();
+ break;
+ }
+ }
+
+ sdlButtons.onButtonEvent(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonEventMode.BUTTONUP, button.softButtonID)
+ }
+
+ onClicked: {
+ sdlButtons.onButtonPress(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonPressMode.SHORT, button.softButtonID);
+ switch (button.systemAction) {
+ case Common.SystemAction.DEFAULT_ACTION:
+ defaultAction();
+ break;
+ case Common.SystemAction.STEAL_FOCUS:
+ if (dataContainer.currentApplication.isMediaApplication) { contentLoader.go("views/SDLPlayerView.qml", appId); }
+ else { contentLoader.go("views/SDLNonMediaView.qml", appId); }
+ stealFocus();
+ break;
+ case Common.SystemAction.KEEP_CONTEXT:
+ keepContext();
+ break;
+ }
+ }
+
+ onPressAndHold: {
+ actionOrder = SoftButton.Action.doOnReleased; // action should be triggered on release
+ sdlButtons.onButtonPress(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonPressMode.LONG, button.softButtonID);
+ }
+
+ onButtonChanged: {
+ icon = button && button.type !== Common.SoftButtonType.SBT_TEXT ? button.image : undefined;
+ text = button && button.type !== Common.SoftButtonType.SBT_IMAGE ? button.text : ""
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/StatusBar.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/StatusBar.qml
new file mode 100644
index 000000000..a6d7640f3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/controls/StatusBar.qml
@@ -0,0 +1,42 @@
+/**
+ * @file StatusBar.qml
+ * @brief Status bar that contains text string.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Text {
+ text: dataContainer.currentApplication.hmiUIText.statusBar
+ color: Constants.primaryColor
+ font.pixelSize: Constants.statusBarFontSize
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Async.js b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Async.js
new file mode 100644
index 000000000..ebc5bfa3c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Async.js
@@ -0,0 +1,7 @@
+.pragma library
+
+var async_uid = 1;
+
+function AsyncCall() {
+ this.__async_uid = async_uid++;
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/BasicCommunication.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/BasicCommunication.qml
new file mode 100644
index 000000000..9d7e0432f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/BasicCommunication.qml
@@ -0,0 +1,88 @@
+/**
+ * @file BasicCommunication.qml
+ * @brief Implement of interface Basic Communication.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+Item {
+ function updateDeviceList (deviceList) {
+ dataContainer.deviceList.clear();
+ for(var i = 0; i < deviceList.length; i++) {
+ dataContainer.deviceList.append({ name: deviceList[i].name, devid: deviceList[i].id })
+ }
+ }
+
+ function updateAppList (applications) {
+ dataContainer.applicationList.clear();
+ for(var i = 0; i < applications.length; i++) {
+ dataContainer.applicationList.append({
+ appName: applications[i].appName,
+ ngnMediaScreenAppName: applications[i].ngnMediaScreenAppName,
+ icon: applications[i].icon,
+ deviceName: applications[i].deviceName,
+ appId: applications[i].appID,
+ hmiDisplayLanguageDesired: applications[i].hmiDisplayLanguageDesired,
+ isMediaApplication: applications[i].isMediaApplication,
+ appType: applications[i].appType
+ });
+ }
+ }
+
+ function allowDeviceToConnect (device) {
+ return {
+ allow: true
+ }
+ }
+
+ function mixingAudioSupported() {
+ return {
+ attenuatedSupport: true
+ }
+ }
+
+ function allowAllApps() {
+ return {
+ allowed: true
+ }
+ }
+
+ function allowApp(app, appPermissions) {
+ return {
+ allowed: true
+ }
+ }
+
+ function activateApp() {
+ contentLoader.go("views/SDLPlayerView.qml", appID);
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Buttons.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Buttons.qml
new file mode 100644
index 000000000..83ea933ed
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Buttons.qml
@@ -0,0 +1,48 @@
+/**
+ * @file Buttons.qml
+ * @brief Implement of interface Buttons.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+Item
+{
+ function getCapabilities()
+ {
+ return {
+ capabilities: settingsContainer.buttonCapabilities,
+ presetBankCapabilities: {
+ onScreenPresetsAvailable: true
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Navigation.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Navigation.qml
new file mode 100644
index 000000000..3ec131c8c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/Navigation.qml
@@ -0,0 +1,127 @@
+/**
+ * @file Navigation.qml
+ * @brief Navigation.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "Common.js" as Common
+
+Item {
+ function isReady () {
+ return {
+ available: dataContainer.hmiNavigationAvailable
+ }
+ }
+
+ function showConstantTBT(navigationTexts, turnIcon, nextTurnIcon, distanceToManeuver,
+ distanceToManeuverScale, maneuverComplete,
+ softButtons, appID) {
+ console.debug("enter")
+ navigationTexts.forEach(fillTexts);
+ dataContainer.navigationModel.turnIcon = turnIcon ? turnIcon.value : ""
+ dataContainer.navigationModel.nextTurnIcon = nextTurnIcon ? nextTurnIcon.value : ""
+ dataContainer.navigationModel.distanceToManeuver = distanceToManeuver;
+ dataContainer.navigationModel.distanceToManeuverScale = distanceToManeuverScale;
+ if (maneuverComplete !== undefined) {
+ dataContainer.navigationModel.maneuverComplete = maneuverComplete;
+ }
+ if (softButtons !== undefined) {
+ dataContainer.navigationModel.softButtons.clear();
+ softButtons.forEach(fillSoftButtons, dataContainer.navigationModel.softButtons);
+ }
+ dataContainer.navigationModel.appId = appID;
+ contentLoader.go("./views/TurnByTurnView.qml");
+ console.debug("exit")
+ }
+
+ function alertManeuver(softButtons) {
+ console.debug("enter")
+ if (softButtons !== undefined) {
+ dataContainer.navigationModel.alertManeuverSoftButtons.clear();
+ softButtons.forEach(fillSoftButtons, dataContainer.navigationModel.alertManeuverSoftButtons);
+ }
+ console.debug("exit")
+ }
+
+ function updateTurnList(turnList, softButtons, appID) {
+ console.debug("enter")
+ if (turnList !== undefined) {
+ dataContainer.getApplication(appID).turnList.clear();
+ turnList.forEach(fillTurnList, dataContainer.getApplication(appID).turnList);
+ }
+ if (softButtons !== undefined) {
+ dataContainer.getApplication(appID).turnListSoftButtons.clear();
+ softButtons.forEach(fillSoftButtons, dataContainer.getApplication(appID).turnListSoftButtons);
+ }
+ dataContainer.navigationModel.appId = appID;
+ console.debug("exit")
+ }
+
+ function fillTexts(element, index, array) {
+ switch (element.fieldName) {
+ case Common.TextFieldName.navigationText1:
+ dataContainer.navigationModel.text1 = element.fieldText;
+ break;
+ case Common.TextFieldName.navigationText2:
+ dataContainer.navigationModel.text2 = element.fieldText;
+ break;
+ case Common.TextFieldName.ETA:
+ dataContainer.navigationModel.eta = element.fieldText;
+ break;
+ case Common.TextFieldName.totalDistance:
+ dataContainer.navigationModel.totalDistance = element.fieldText;
+ break;
+ case Common.TextFieldName.timeToDestination:
+ dataContainer.navigationModel.timeToDestination = element.fieldText;
+ break;
+ }
+ }
+
+ function fillSoftButtons(element, index, array) {
+ this.append({
+ type: element.type,
+ text: element.text,
+ image: element.image,
+ isHighlighted: element.isHighlighted,
+ buttonId: element.softButtonID,
+ systemAction: element.systemAction
+ });
+ }
+
+ function fillTurnList(element, index, array) {
+ this.append({
+ navigationText: element.navigationText,
+ turnIcon: element.turnIcon
+ });
+ console.debug(element.navigationText)
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/TTS.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/TTS.qml
new file mode 100644
index 000000000..96aa9b2c2
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/TTS.qml
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "Common.js" as Common
+import "Async.js" as Async
+
+Item {
+ function isReady() {
+ return {
+ available: dataContainer.hmiTTSAvailable
+ }
+ }
+
+ function speak(ttsChunks, appID) {
+ // appID unused
+ console.debug('enter:', ttsChunks, appID);
+ if (ttsPopUp.async) {
+ console.log('speak send abort');
+ throw Common.Result.ABORTED;
+ }
+
+ var message = ttsChunks.map(function(str) { return str.text }).join('\n');
+ ttsPopUp.activate(message);
+ ttsPopUp.async = new Async.AsyncCall();
+ console.debug('exit');
+ return ttsPopUp.async;
+ }
+
+ function stopSpeaking() {
+ console.debug("enter");
+ ttsPopUp.deactivate();
+ console.debug("exit");
+ }
+
+ function getLanguage() {
+ return {
+ language: dataContainer.hmiTTSVRLanguage
+ }
+ }
+
+ function getSupportedLanguages() {
+ return {
+ languages: settingsContainer.sdlLanguagesList
+ }
+ }
+
+ function getCapabilities() {
+ return {
+ capabilities: Common.SpeechCapabilities.SC_TEXT
+ }
+ }
+
+ function changeRegistration(language, appID) {
+ console.debug("enter:", language, appID);
+ dataContainer.changeRegistrationTTSVR(language, appID);
+ console.debug("exit");
+ }
+
+ function setGlobalProperties(helpPrompt, timeoutPrompt, appID) {
+ console.debug("enter: " + helpPrompt + ", " + timeoutPrompt + ", " + appID)
+
+ var newHelpPropmt = helpPrompt ?
+ helpPrompt.map(
+ function (structure) {
+ return structure.text
+ }
+ ).join(", ") :
+ dataContainer.currentApplication.helpPrompt
+
+ var newTimeoutPrompt = timeoutPrompt ?
+ timeoutPrompt.map(
+ function (structure) {
+ return structure.text
+ }
+ ).join(", ") :
+ dataContainer.currentApplication.timeoutPrompt
+
+ dataContainer.setApplicationProperties(dataContainer.currentApplication.appId, {
+ helpPrompt: newHelpPropmt,
+ timeoutPrompt: newTimeoutPrompt
+ })
+ console.debug("exit")
+ }
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/UI.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/UI.qml
new file mode 100644
index 000000000..648cd1397
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/UI.qml
@@ -0,0 +1,449 @@
+/**
+ * @file UI.qml
+ * @brief UI interface implementation.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "Common.js" as Common
+import "Async.js" as Async
+import "../models/Internal.js" as Internal
+
+Item {
+ function filter (strings, fields) {
+ console.debug("enter")
+// substrings for each allowed field
+ var fieldSubstrings = {}
+// this cycle concatenates allowed lines sorting them by field
+ for (var stringIndex = 0; stringIndex < strings.length; ++stringIndex) {
+ for (var fieldIndex = 0; fieldIndex < fields.length; ++fieldIndex) {
+ var fieldName = strings[stringIndex].fieldName
+ if (fieldName === fields[fieldIndex]) {
+ if (fieldSubstrings[fieldName] !== undefined) {
+ fieldSubstrings[fieldName] += "\n";
+ fieldSubstrings[fieldName] += strings[stringIndex].fieldText
+ }
+ else {
+ fieldSubstrings[fieldName] = strings[stringIndex].fieldText
+ }
+ }
+ }
+ }
+ console.debug("exit")
+ return fieldSubstrings
+ }
+
+ function alert (alertStrings, duration, softButtons, progressIndicator, appID) {
+ var fieldSubstrings = alertStrings
+ .sort(function(a, b) { return a.fieldName - b.fieldName }) // sorting by fieldName
+ .map(function(val) { return val.fieldText }); // mapping to array of strings
+
+ var tryAgainTime = alertWindow.alert(fieldSubstrings, duration, progressIndicator, softButtons, appID)
+ if (tryAgainTime === undefined) {
+ alertWindow.async = new Async.AsyncCall();
+ return alertWindow.async;
+ }
+ else {
+ return {
+ "__retCode": Common.Result.REJECTED,
+ "tryAgainTime": tryAgainTime
+ }
+ }
+ }
+
+ function show (showStrings, alignment, graphic, softButtons, customPresets, appID) {
+ console.debug("enter: " + showStrings + ", " + alignment + ", " + graphic + ", "+ softButtons + ", " + customPresets + ", " + appID)
+ var app = dataContainer.getApplication(appID);
+
+ if (softButtons) {
+ app.softButtons.clear()
+ softButtons.forEach(function(x) { app.softButtons.append(x); });
+ }
+
+ if (customPresets) {
+ app.customPresets.clear()
+ customPresets.forEach( function(x) { app.customPresets.append( {text: x} ); } )
+ }
+
+ var textAlignment
+ switch (alignment) {
+ case Common.TextAlignment.LEFT_ALIGNED:
+ textAlignment = Text.AlignLeft
+ break;
+ case Common.TextAlignment.RIGHT_ALIGNED:
+ textAlignment = Text.AlignRight
+ break;
+ case Common.TextAlignment.CENTERED:
+ textAlignment = Text.AlignHCenter
+ break;
+ default:
+ textAlignment = Text.AlignHCenter
+ break;
+ }
+
+ // with this array we grab only the lines we need
+ var showFields = [
+ Common.TextFieldName.mainField1,
+ Common.TextFieldName.mainField2,
+ Common.TextFieldName.mainField3,
+ Common.TextFieldName.mainField4,
+ Common.TextFieldName.statusBar,
+ Common.TextFieldName.mediaClock,
+ Common.TextFieldName.mediaTrack
+ ]
+ var fieldSubstrings = filter(showStrings, showFields)
+ var showData = { hmiUIText: {} }
+ if (fieldSubstrings[Common.TextFieldName.mainField1] !== undefined) { showData.hmiUIText.mainField1 = fieldSubstrings[Common.TextFieldName.mainField1]; }
+ if (fieldSubstrings[Common.TextFieldName.mainField2] !== undefined) { showData.hmiUIText.mainField2 = fieldSubstrings[Common.TextFieldName.mainField2]; }
+ if (fieldSubstrings[Common.TextFieldName.mainField3] !== undefined) { showData.hmiUIText.mainField3 = fieldSubstrings[Common.TextFieldName.mainField3]; }
+ if (fieldSubstrings[Common.TextFieldName.mainField4] !== undefined) { showData.hmiUIText.mainField4 = fieldSubstrings[Common.TextFieldName.mainField4]; }
+ if (fieldSubstrings[Common.TextFieldName.statusBar] !== undefined) { showData.hmiUIText.statusBar = fieldSubstrings[Common.TextFieldName.statusBar]; }
+ if (fieldSubstrings[Common.TextFieldName.mediaTrack] !== undefined) { showData.hmiUIText.mediaTrack = fieldSubstrings[Common.TextFieldName.mediaTrack]; }
+ if (graphic) { showData.hmiUIText.image = graphic.value; }
+ if (textAlignment) { showData.hmiUITextAlignment = textAlignment; }
+ if (fieldSubstrings[Common.TextFieldName.mediaClock]) {
+ showData.mediaClock = {
+ "updateMode": Internal.MediaClockUpdateMode.MCU_COUNTUP,
+ "runningMode": Internal.MediaClockRunningMode.MCR_STOPPED,
+ "magic": Internal.stringToHmsTime(fieldSubstrings[Common.TextFieldName.mediaClock]),
+ "total": 0
+ }
+ }
+
+ dataContainer.setApplicationProperties(appID, showData);
+ console.debug("exit")
+ }
+
+ function addCommand (cmdID, menuParams, cmdIcon, appID) {
+ dataContainer.addCommand(cmdID, menuParams, cmdIcon, appID)
+ }
+
+ function deleteCommand (cmdID, appID) {
+ dataContainer.deleteCommand(cmdID, appID)
+ }
+
+ function addSubMenu (menuID, menuParams, appID) {
+ dataContainer.addSubMenu(menuID, menuParams, appID)
+ }
+
+ function deleteSubMenu (menuID, appID) {
+ dataContainer.deleteSubMenu(menuID, appID)
+ }
+
+ function performInteraction (initialText, choiceSet, vrHelp, timeout, appID) {
+ console.debug("enter")
+ var async = dataContainer.interactionModel.performInteraction(initialText, choiceSet, vrHelp, timeout, appID)
+ console.debug("exit")
+ return async
+ }
+
+ function setMediaClockTimer (startTime, endTime, updateMode, appID) {
+ console.debug("enter: {", startTime, ", ", endTime, ", ", updateMode, ", ", appID, "}")
+
+ var app = dataContainer.getApplication(appID)
+ var newStartTime
+ var newEndTime
+ var newUpdateMode
+ var newRunningMode
+ var newStartTimeForProgress
+ var resultCode
+ var sendErrorResponce = false
+
+ switch (updateMode) {
+ case Common.ClockUpdateMode.COUNTUP:
+ if (startTime === undefined) {
+ resultCode = Common.Result.INVALID_DATA
+ sendErrorResponce = true
+ break
+ }
+ newStartTime = Internal.hmsTime(startTime.hours, startTime.minutes, startTime.seconds)
+ newEndTime = endTime ? Internal.hmsTime(endTime.hours, endTime.minutes, endTime.seconds) : -1
+ newUpdateMode = Internal.MediaClockUpdateMode.MCU_COUNTUP
+ newRunningMode = Internal.MediaClockRunningMode.MCR_RUNNING
+ newStartTimeForProgress = Internal.hmsTime(startTime.hours, startTime.minutes, startTime.seconds)
+ resultCode = Common.Result.SUCCESS
+ break
+
+ case Common.ClockUpdateMode.COUNTDOWN:
+ if (startTime === undefined) {
+ resultCode = Common.Result.INVALID_DATA
+ sendErrorResponce = true
+ break
+ }
+ newStartTime = Internal.hmsTime(startTime.hours, startTime.minutes, startTime.seconds)
+ newEndTime = endTime ? Internal.hmsTime(endTime.hours, endTime.minutes, endTime.seconds) : -1
+ newUpdateMode = Internal.MediaClockUpdateMode.MCU_COUNTDOWN
+ newRunningMode = Internal.MediaClockRunningMode.MCR_RUNNING
+ newStartTimeForProgress = Internal.hmsTime(startTime.hours, startTime.minutes, startTime.seconds)
+ resultCode = Common.Result.SUCCESS
+ break
+
+ case Common.ClockUpdateMode.PAUSE:
+ // Already paused or cleared
+ if ((app.mediaClock.runningMode === Internal.MediaClockRunningMode.MCR_STOPPED)
+ || (app.mediaClock.startTime === -1 && app.mediaClock.endTime === -1)) {
+ resultCode = Common.Result.IGNORED
+ sendErrorResponce = true
+ break
+ }
+ newStartTime = app.mediaClock.startTime
+ newEndTime = app.mediaClock.endTime
+ newRunningMode = Internal.MediaClockRunningMode.MCR_STOPPED
+ newUpdateMode = app.mediaClock.updateMode
+ newStartTimeForProgress = app.mediaClock.startTime
+ resultCode = Common.Result.SUCCESS
+ break
+
+ case Common.ClockUpdateMode.RESUME:
+ // Already resumed or cleared
+ if ((app.mediaClock.runningMode === Internal.MediaClockRunningMode.MCR_RUNNING)
+ || (app.mediaClock.startTime === -1 && app.mediaClock.endTime === -1)) {
+ resultCode = Common.Result.IGNORED
+ sendErrorResponce = true
+ break
+ }
+ newStartTime = app.mediaClock.startTime
+ newEndTime = app.mediaClock.endTime
+ newRunningMode = Internal.MediaClockRunningMode.MCR_RUNNING
+ newStartTimeForProgress = app.mediaClock.startTime
+ newUpdateMode = app.mediaClock.updateMode
+ resultCode = Common.Result.SUCCESS
+ break
+
+ case Common.ClockUpdateMode.CLEAR:
+ newStartTime = -1
+ newEndTime = -1
+ newRunningMode = Internal.MediaClockRunningMode.MCR_STOPPED
+ newUpdateMode = app.mediaClock.updateMode
+ newStartTimeForProgress = -1
+ resultCode = Common.Result.SUCCESS
+ break
+ }
+
+ if (sendErrorResponce) {
+ console.debug("exit with result code: ", resultCode)
+ return { __retCode: resultCode }
+ }
+
+ dataContainer.setApplicationProperties(appID, {
+ "mediaClock": {
+ "updateMode": newUpdateMode,
+ "runningMode": newRunningMode,
+ "startTime": newStartTime,
+ "endTime": newEndTime,
+ "startTimeForProgress": newStartTimeForProgress
+ }
+ })
+
+ console.debug("exit")
+ return { __retCode: resultCode }
+ }
+
+ function setGlobalProperties (vrHelpTitle, vrHelp, menuTitle, menuIcon, keyboardProperties, appID) {
+ console.debug("enter: " + vrHelpTitle + ", " + vrHelp + ", " + menuTitle + ", " + menuIcon + ", " + keyboardProperties + ", " + appID)
+ if (vrHelpTitle) {
+ vrHelpPopup.title = vrHelpTitle
+ }
+ dataContainer.setVrHelp(vrHelp)
+ console.debug("exit")
+ }
+
+ function showVrHelp (vrHelpTitle, vrHelp, appID) {
+ console.debug("enter: " + vrHelpTitle + ", " + vrHelp + ", " + appID)
+ if (vrHelpTitle) {
+ vrHelpPopup.title = vrHelpTitle
+ }
+ dataContainer.setVrHelp(vrHelp)
+ vrHelpPopup.show()
+ console.debug("exit")
+ }
+
+ function isReady () {
+ return {
+ available: dataContainer.hmiUIAvailable
+ }
+ }
+
+ function getLanguage () {
+ return {
+ language: dataContainer.hmiUILanguage
+ }
+ }
+
+ function getSupportedLanguages () {
+ return {
+ languages: settingsContainer.sdlLanguagesList
+ }
+ }
+
+ function changeRegistration (language, appID) {
+ dataContainer.changeRegistrationUI(language, appID)
+ }
+
+ function setAppIcon (syncFileName, appID) {
+ dataContainer.setApplicationProperties(appID, { icon: syncFileName.value })
+ }
+
+ function slider (numTicks, position, sliderHeader, sliderFooter, timeout, appID) {
+ console.debug("enter", numTicks, position, sliderHeader, sliderFooter, timeout, appID)
+ if (dataContainer.uiSlider.running) {
+ console.debug("aborted")
+ return {__retCode: Common.Result.ABORTED, sliderPosition: position}
+ }
+
+ dataContainer.uiSlider.appName = dataContainer.getApplication(appID).appName
+ dataContainer.uiSlider.header = sliderHeader
+ dataContainer.uiSlider.footer = sliderFooter
+ dataContainer.uiSlider.numTicks = numTicks
+ dataContainer.uiSlider.position = position
+ dataContainer.uiSlider.timeout = timeout
+
+ if (timeout !== 0) {
+ sliderPopup.showSlider()
+ sliderPopup.async = new Async.AsyncCall();
+ console.debug("exit")
+ return sliderPopup.async;
+ } else {
+ return { sliderPosition: position }
+ }
+ }
+
+ function scrollableMessage (messageText, timeout, softButtons, appID) {
+ console.debug("scrollableMessage ", messageText, timeout, softButtons, appID)
+ if(dataContainer.scrollableMessageModel.running){
+ //send error response if long message already running
+ console.debug("scrollableMessage throw")
+ throw Common.Result.ABORTED
+ }
+
+ dataContainer.scrollableMessageModel.longMessageText = messageText.fieldText
+ dataContainer.scrollableMessageModel.softButtons.clear();
+ if (softButtons !== undefined) {
+ softButtons.forEach(fillSoftButtons, dataContainer.scrollableMessageModel.softButtons);
+ }
+ dataContainer.scrollableMessageModel.timeout = timeout
+ dataContainer.scrollableMessageModel.appId = appID
+ dataContainer.scrollableMessageModel.async = new Async.AsyncCall()
+ contentLoader.go("./views/ScrollableMessageView.qml")
+ console.debug("scrollableMessage exit")
+ return dataContainer.scrollableMessageModel.async
+ }
+
+ function getCapabilities() {
+ return {
+ "audioPassThruCapabilities": {
+ "samplingRate": Common.SamplingRate.RATE_44KHZ,
+ "bitsPerSample": Common.BitsPerSample.RATE_8_BIT,
+ "audioType": Common.AudioType.PCM
+ },
+ "displayCapabilities": settingsContainer.displayCapabilities,
+ "hmiZoneCapabilities": Common.HmiZoneCapabilities.FRONT,
+ "softButtonCapabilities": settingsContainer.softButtonCapabilities
+ }
+ }
+
+ function performAudioPassThru (audioPassThruDisplayTexts, timeout, appID) {
+ console.debug("enter", audioPassThruDisplayTexts, timeout)
+
+ if (dataContainer.uiAudioPassThru.running) {
+ console.debug("aborted")
+ throw Common.Result.ABORTED
+ }
+
+ dataContainer.uiAudioPassThru.appName = dataContainer.getApplication(appID).appName
+ dataContainer.uiAudioPassThru.timeout = timeout
+ if (audioPassThruDisplayTexts.length === 2) {
+ dataContainer.uiAudioPassThru.firstLine = audioPassThruDisplayTexts[0].fieldText
+ dataContainer.uiAudioPassThru.secondLine = audioPassThruDisplayTexts[1].fieldText
+ }
+ performAudioPassThruPopup.async = new Async.AsyncCall();
+ performAudioPassThruPopup.showAudioPassThru()
+ console.debug("exit")
+ return performAudioPassThruPopup.async;
+ }
+
+ function endAudioPassThru () {
+ console.debug("enter")
+ if (!dataContainer.uiAudioPassThru.running) {
+ console.debug("rejected")
+ throw Common.Result.REJECTED
+ }
+ DBus.sendReply({__retCode: Common.Result.SUCCESS})
+ performAudioPassThruPopup.complete(Common.Result.SUCCESS)
+ console.debug("exit")
+ }
+
+ function closePopUp (methodName) {
+ console.debug("enter")
+ var popUpToClose
+
+ if (dataContainer.activePopup.length === 0) {
+ return { __retCode: Common.Result.ABORT, __message: "No active PopUps"}
+ }
+
+ if (methodName !== undefined) {
+ popUpToClose = methodName
+ } else {
+ popUpToClose = dataContainer.activePopup[dataContain.activePopUp.length - 1]
+ }
+
+ switch (popUpToClose) {
+ case "UI.PerformInteraction":
+ interactionPopup.complete(Common.Result.SUCCESS)
+ break
+ case "UI.Slider":
+ sliderPopup.complete(Common.Result.SUCCESS)
+ break
+ case "UI.PerformAudioPassThru":
+ performAudioPassThruPopup.complete(Common.Result.SUCCESS)
+ break
+ case "UI.Alert":
+ alertWindow.complete(Common.Result.SUCCESS)
+ break
+ case "UI.VrHelp":
+ vrHelpPopup.complete(Common.Result.SUCCESS)
+ break
+ }
+ console.debug("exit")
+ }
+
+ function fillSoftButtons(element, index, array) {
+ this.append({
+ type: element.type,
+ text: element.text,
+ image: element.image,
+ isHighlighted: element.isHighlighted,
+ softButtonID: element.softButtonID,
+ systemAction: element.systemAction
+ });
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/VR.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/VR.qml
new file mode 100644
index 000000000..37d19f6a4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/VR.qml
@@ -0,0 +1,93 @@
+/**
+ * @file VR.qml
+ * @brief Implement of interface VR.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "Common.js" as Common
+
+Item {
+ function isReady() {
+ return {
+ available: dataContainer.hmiVRAvailable
+ }
+ }
+
+ function addCommand(cmdID, vrCommands, appID) {
+ console.log("VR.AddCommand: cmd ", cmdID, ", app ", appID);
+ for (var i = 0; i < vrCommands.length; ++i) {
+ dataContainer.vrCommands.append({
+ cmdID: cmdID,
+ command: vrCommands[i],
+ appID: appID === undefined ? 0 : appID,
+ });
+ }
+ console.log("exit")
+ }
+
+ function deleteCommand(cmdID, appID) {
+ console.log("VR.DeleteCommand: cmd ", cmdID, ", app ", appID);
+ for (var i = 0; i < dataContainer.vrCommands.count; ) {
+ if ((dataContainer.vrCommands.get(i).cmdID === cmdID) &&
+ ((appID === undefined) || (dataContainer.vrCommands.get(i).appID === appID))) {
+ dataContainer.vrCommands.remove(i);
+ continue;
+ }
+ ++i;
+ }
+ console.log("exit")
+ }
+
+ function getLanguage() {
+ return {
+ language: dataContainer.hmiTTSVRLanguage
+ }
+ }
+
+ function getSupportedLanguages() {
+ return {
+ languages: settingsContainer.sdlLanguagesList
+ }
+ }
+
+ function getCapabilities() {
+ return {
+ vrCapabilities: [ Common.VrCapabilities.VR_TEXT ]
+ }
+ }
+
+ function changeRegistration(language, appID) {
+ console.debug("enter:", language, appID);
+ dataContainer.changeRegistrationTTSVR(language, appID);
+ console.debug("exit");
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/VehicleInfo.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/VehicleInfo.qml
new file mode 100644
index 000000000..18f3a1ce9
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/hmi_api/VehicleInfo.qml
@@ -0,0 +1,749 @@
+/**
+ * @file VehicleInfo.qml
+ * @brief Vehicle information interface realisation.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "Common.js" as Common
+
+Item {
+ function isReady () {
+ return {
+ available: dataContainer.hmiVehicleInfoAvailable
+ }
+ }
+
+ function getVehicleType() {
+ return {
+ "vehicleType": {
+ "make": "Ford",
+ "model": "Fiesta",
+ "modelYear": "2013",
+ "trim": "SE"
+ }
+ }
+ }
+
+ function getGpsData(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { gps: dataContainer.vehicleInfoModel.gps }
+ }
+
+ function getSpeed(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { speed: dataContainer.vehicleInfoModel.speed }
+ }
+
+ function getRpm(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return {
+ rpm: dataContainer.vehicleInfoModel.rpm,
+ __retCode: Common.Result.DATA_NOT_AVAILABLE
+ }
+ }
+
+ function getFuelLevel(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { fuelLevel: dataContainer.vehicleInfoModel.fuelLevel }
+ }
+
+ function getFuelLevelState(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { fuelLevel_State: dataContainer.vehicleInfoModel.fuelLevel_State }
+ }
+
+ function getInstantFuelConsumption(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { instantFuelConsumption: dataContainer.vehicleInfoModel.instantFuelConsumption }
+ }
+
+ function getExternalTemperature(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { externalTemperature: dataContainer.vehicleInfoModel.externalTemperature }
+ }
+
+ function getVin(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { vin: dataContainer.vehicleInfoModel.vin }
+ }
+
+ function getPrndl(appID) {
+ console.debug("enter")
+ if (dataContainer.vehicleInfoModel.prndl === -1) { // Test value, to check response
+ console.debug("exit")
+ return {
+ prndl: dataContainer.vehicleInfoModel.prndl,
+ __retCode: Common.Result.DATA_NOT_AVAILABLE
+ }
+ }
+ console.debug("exit")
+ return { prndl: dataContainer.vehicleInfoModel.prndl }
+ }
+
+ function getTirePressure(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { tirePressure: dataContainer.vehicleInfoModel.tirePressure }
+ }
+
+ function getOdometer(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { odometer: dataContainer.vehicleInfoModel.odometer }
+ }
+
+ function getBeltStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { beltStatus: dataContainer.vehicleInfoModel.beltStatus }
+ }
+
+ function getBodyInformation(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { bodyInformation: dataContainer.vehicleInfoModel.bodyInformation }
+ }
+
+ function getDeviceStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { deviceStatus: dataContainer.vehicleInfoModel.deviceStatus }
+ }
+
+ function getDriverBraking(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { driverBraking: dataContainer.vehicleInfoModel.driverBraking }
+ }
+
+ function getWiperStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { wiperStatus: dataContainer.vehicleInfoModel.wiperStatus }
+ }
+
+ function getHeadLampStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { headLampStatus: dataContainer.vehicleInfoModel.headLampStatus }
+ }
+
+ function getEngineTorque(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { engineTorque: dataContainer.vehicleInfoModel.engineTorque }
+ }
+
+ function getAccPedalPosition(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { accPedalPosition: dataContainer.vehicleInfoModel.accPedalPosition }
+ }
+
+ function getSteeringWheelAngle(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { steeringWheelAngle: dataContainer.vehicleInfoModel.steeringWheelAngle }
+ }
+
+ function getECallInfo(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { eCallInfo: dataContainer.vehicleInfoModel.eCallInfo }
+ }
+
+ function getAirbagStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { airbagStatus: dataContainer.vehicleInfoModel.airbagStatus }
+ }
+
+ function getEmergencyEvent(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { emergencyEvent: dataContainer.vehicleInfoModel.emergencyEvent }
+ }
+
+ function getClusterModeStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { clusterModeStatus: dataContainer.vehicleInfoModel.clusterModeStatus }
+ }
+
+ function getMyKey(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { myKey: dataContainer.vehicleInfoModel.myKey }
+ }
+
+ function getDTCs(ecuName, dtcMask, appID) {
+ var ecuHeader = 2
+ var dtc = []
+
+ for (var i = 0; i < 3; i++) {
+ dtc.push("line" + i)
+ }
+ return {ecuHeader: ecuHeader, dtc: dtc}
+ }
+
+ function readDID(ecuName, didLocation, appID) {
+ console.debug("Enter")
+ //TODO{ALeshin}: refactoring of this function, when we'll have Vehicle Info module
+ var didResult = []
+
+ for (var i = 0; i < didLocation.length; i++) {
+ if (i < 10) {
+ didResult[i] = {}
+ didResult[i].resultCode = Common.VehicleDataResultCode.VDRC_SUCCESS
+ didResult[i].didLocation = didLocation[i]
+ didResult[i].data = '0'
+ }
+ else {
+ didResult[i] = {}
+ didResult[i].resultCode = Common.VehicleDataResultCode.VDRC_DATA_NOT_AVAILABLE
+ didResult[i].didLocation = didLocation[i]
+ didResult[i].data = '0'
+ }
+ }
+ console.debug("Exit")
+ return {didResult: didResult}
+ }
+
+ function subscribeGps(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onGpsChanged.disconnect(model.sendGpsChange)
+ model.onGpsChanged.connect(model.sendGpsChange)
+ console.debug("exit")
+ return {gps:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_GPS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS} }
+ }
+ function unsubscribeGps(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onGpsChanged.disconnect(model.sendGpsChange)
+ console.debug("exit")
+ return {gps:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_GPS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS} }
+
+ }
+
+ function subscribeSpeed(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onSpeedChanged.disconnect(model.sendSpeedChange)
+ model.onSpeedChanged.connect(model.sendSpeedChange)
+ console.debug("exit")
+ return { speed:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_SPEED,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeSpeed(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onSpeedChanged.disconnect(model.sendSpeedChange)
+ console.debug("exit")
+ return { speed:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_SPEED,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeRpm(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onRpmChanged.disconnect(model.sendRpmChange)
+ model.onRpmChanged.connect(model.sendRpmChange)
+ console.debug("exit")
+ return { rpm:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_RPM,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeRpm(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onRpmChanged.disconnect(model.sendRpmChange)
+ console.debug("exit")
+ return { rpm:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_RPM,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeFuelLevel(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onFuelLevelChanged.disconnect(model.sendFuelLevelChange)
+ model.onFuelLevelChanged.connect(model.sendFuelLevelChange)
+ console.debug("exit")
+ return { fuelLevel:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELLEVEL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeFuelLevel(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onFuelLevelChanged.disconnect(model.sendFuelLevelChange)
+ console.debug("exit")
+ return { fuelLevel:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELLEVEL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeFuelLevel_State(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onFuelLevel_StateChanged.disconnect(model.sendFuelLevel_StateChange)
+ model.onFuelLevel_StateChanged.connect(model.sendFuelLevel_StateChange)
+ console.debug("exit")
+ return { fuelLevel_State:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELLEVEL_STATE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeFuelLevel_State(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onFuelLevel_StateChanged.disconnect(model.sendFuelLevel_StateChange)
+ console.debug("exit")
+ return { fuelLevel_State:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELLEVEL_STATE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeInstantFuelConsumption(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onInstantFuelConsumptionChanged.disconnect(model.sendInstantFuelConsumptionChange)
+ model.onInstantFuelConsumptionChanged.connect(model.sendInstantFuelConsumptionChange)
+ console.debug("exit")
+ return { instantFuelConsumption:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELCONSUMPTION,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeInstantFuelConsumption(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onInstantFuelConsumptionChanged.disconnect(model.sendInstantFuelConsumptionChange)
+ console.debug("exit")
+ return { instantFuelConsumption:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELCONSUMPTION,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeExternalTemperature(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onExternalTemperatureChanged.disconnect(model.sendExternalTemperatureChange)
+ model.onExternalTemperatureChanged.connect(model.sendExternalTemperatureChange)
+ console.debug("exit")
+ return { externalTemperature:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_EXTERNTEMP,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeExternalTemperature(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onExternalTemperatureChanged.disconnect(model.sendExternalTemperatureChange)
+ console.debug("exit")
+ return { externalTemperature:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_EXTERNTEMP,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribePrndl(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onPrndlChanged.disconnect(model.sendPrndlChange)
+ model.onPrndlChanged.connect(model.sendPrndlChange)
+ console.debug("exit")
+ return { prndl:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_PRNDL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribePrndl(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onPrndlChanged.disconnect(model.sendPrndlChange)
+ console.debug("exit")
+ return { prndl:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_PRNDL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeVin(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onVinChanged.disconnect(model.sendVinChange)
+ model.onVinChanged.connect(model.sendVinChange)
+ console.debug("exit")
+ return { vin:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_VIN,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeVin(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onVinChanged.disconnect(model.sendVinChange)
+ console.debug("exit")
+ return { vin:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_VIN,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeTirePressure(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onTirePressureChanged.disconnect(model.sendTirePressureChange)
+ model.onTirePressureChanged.connect(model.sendTirePressureChange)
+ console.debug("exit")
+ return { tirePressure:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_TIREPRESSURE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeTirePressure(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onTirePressureChanged.disconnect(model.sendTirePressureChange)
+ console.debug("exit")
+ return { tirePressure:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_TIREPRESSURE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeOdometer(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onOdometerChanged.disconnect(model.sendOdometerChange)
+ model.onOdometerChanged.connect(model.sendOdometerChange)
+ console.debug("exit")
+ return { odometer:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ODOMETER,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeOdometer(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onOdometerChanged.disconnect(model.sendOdometerChange)
+ console.debug("exit")
+ return { odometer:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ODOMETER,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeBeltStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onBeltStatusChanged.disconnect(model.sendBeltStatusChange)
+ model.onBeltStatusChanged.connect(model.sendBeltStatusChange)
+ console.debug("exit")
+ return { beltStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BELTSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeBeltStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onBeltStatusChanged.disconnect(model.sendBeltStatusChange)
+ console.debug("exit")
+ return { beltStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BELTSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeBodyInformation(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onBodyInformationChanged.disconnect(model.sendBodyInformationChange)
+ model.onBodyInformationChanged.connect(model.sendBodyInformationChange)
+ console.debug("exit")
+ return { bodyInformation:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BODYINFO,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeBodyInformation(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onBodyInformationChanged.disconnect(model.sendBodyInformationChange)
+ console.debug("exit")
+ return { bodyInformation:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BODYINFO,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeDeviceStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onDeviceStatusChanged.disconnect(model.sendDeviceStatusChange)
+ model.onDeviceStatusChanged.connect(model.sendDeviceStatusChange)
+ console.debug("exit")
+ return { deviceStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_DEVICESTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeDeviceStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onDeviceStatusChanged.disconnect(model.sendDeviceStatusChange)
+ console.debug("exit")
+ return { deviceStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_DEVICESTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeDriverBraking(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onDriverBrakingChanged.disconnect(model.sendDriverBrakingChange)
+ model.onDriverBrakingChanged.connect(model.sendDriverBrakingChange)
+ console.debug("exit")
+ return { driverBraking:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BRAKING,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeDriverBraking(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onDriverBrakingChanged.disconnect(model.sendDriverBrakingChange)
+ console.debug("exit")
+ return { driverBraking:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BRAKING,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeWiperStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onWiperStatusChanged.disconnect(model.sendWiperStatusChange)
+ model.onWiperStatusChanged.connect(model.sendWiperStatusChange)
+ console.debug("exit")
+ return { wiperStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_WIPERSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeWiperStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onWiperStatusChanged.disconnect(model.sendWiperStatusChange)
+ console.debug("exit")
+ return { wiperStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_WIPERSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeHeadLampStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onHeadLampStatusChanged.disconnect(model.sendHeadLampStatusChange)
+ model.onHeadLampStatusChanged.connect(model.sendHeadLampStatusChange)
+ console.debug("exit")
+ return { headLampStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_HEADLAMPSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeHeadLampStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onHeadLampStatusChanged.disconnect(model.sendHeadLampStatusChange)
+ console.debug("exit")
+ return { headLampStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_HEADLAMPSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeEngineTorque(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onEngineTorqueChanged.disconnect(model.sendEngineTorqueChange)
+ model.onEngineTorqueChanged.connect(model.sendEngineTorqueChange)
+ console.debug("exit")
+ return { engineTorque:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ENGINETORQUE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeEngineTorque(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onEngineTorqueChanged.disconnect(model.sendEngineTorqueChange)
+ console.debug("exit")
+ return { engineTorque:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ENGINETORQUE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeAccPedalPosition(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onAccPedalPositionChanged.disconnect(model.sendAccPedalPositionChange)
+ model.onAccPedalPositionChanged.connect(model.sendAccPedalPositionChange)
+ console.debug("exit")
+ return { accPedalPosition:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ACCPEDAL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeAccPedalPosition(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onAccPedalPositionChanged.disconnect(model.sendAccPedalPositionChange)
+ console.debug("exit")
+ return { accPedalPosition:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ACCPEDAL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeSteeringWheelAngle(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onSteeringWheelAngleChanged.disconnect(model.sendSteeringWheelAngleChange)
+ model.onSteeringWheelAngleChanged.connect(model.sendSteeringWheelAngleChange)
+ console.debug("exit")
+ return { steeringWheelAngle:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_STEERINGWHEEL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeSteeringWheelAngle(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onSteeringWheelAngleChanged.disconnect(model.sendSteeringWheelAngleChange)
+ console.debug("exit")
+ return { steeringWheelAngle:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_STEERINGWHEEL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeECallInfo(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onECallInfoChanged.disconnect(model.sendECallInfoChange)
+ model.onECallInfoChanged.connect(model.sendECallInfoChange)
+ console.debug("exit")
+ return { eCallInfo:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ECALLINFO,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeECallInfo(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onECallInfoChanged.disconnect(model.sendECallInfoChange)
+ console.debug("exit")
+ return { eCallInfo:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ECALLINFO,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeAirbagStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onAirbagStatusChanged.disconnect(model.sendAirbagStatusChange)
+ model.onAirbagStatusChanged.connect(model.sendAirbagStatusChange)
+ console.debug("exit")
+ return { airbagStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_AIRBAGSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeAirbagStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onAirbagStatusChanged.disconnect(model.sendAirbagStatusChange)
+ console.debug("exit")
+ return { airbagStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_AIRBAGSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeEmergencyEvent(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onEmergencyEventChanged.disconnect(model.sendEmergencyEventChange)
+ model.onEmergencyEventChanged.connect(model.sendEmergencyEventChange)
+ console.debug("exit")
+ return { emergencyEvent:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_EMERGENCYEVENT,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeEmergencyEvent(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onEmergencyEventChanged.disconnect(model.sendEmergencyEventChange)
+ console.debug("exit")
+ return { emergencyEvent:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_EMERGENCYEVENT,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeClusterModeStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onClusterModeStatusChanged.disconnect(model.sendClusterModeStatusChange)
+ model.onClusterModeStatusChanged.connect(model.sendClusterModeStatusChange)
+ console.debug("exit")
+ return { clusterModeStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeClusterModeStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onClusterModeStatusChanged.disconnect(model.sendClusterModeStatusChange)
+ console.debug("exit")
+ return { clusterModeStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeMyKey(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onMyKeyChanged.disconnect(model.sendMyKeyChange)
+ model.onMyKeyChanged.connect(model.sendMyKeyChange)
+ console.debug("exit")
+ return { myKey:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_MYKEY,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeMyKey(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onMyKeyChanged.disconnect(model.sendMyKeyChange)
+ console.debug("exit")
+ return { myKey:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_MYKEY,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/log4cxx.properties b/SDL_Core/src/components/qt_hmi/qml_model_qt4/log4cxx.properties
new file mode 100644
index 000000000..0bc5ac8fd
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/log4cxx.properties
@@ -0,0 +1,41 @@
+# Socket logger
+log4j.appender.SocketHub=org.apache.log4j.net.SocketHubAppender
+log4j.appender.SocketHub.port=4555
+log4j.appender.SocketHub.locationInfo=true
+
+# Only ERROR and FATAL messages are logged to console
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+log4j.appender.Console.ImmediateFlush=true
+log4j.appender.Console.layout=org.apache.log4j.PatternLayout
+log4j.appender.Console.layout.ConversionPattern=%-5p [%d{dd MMM yyyy HH:mm:ss,SSS}][%c] %m%n
+log4j.appender.Console.Threshold=ERROR
+
+# Log for all DBus plugin messages
+log4j.appender.DBusPluginLogFile=org.apache.log4j.FileAppender
+log4j.appender.DBusPluginLogFile.File=DBusPlugin.log
+log4j.appender.DBusPluginLogFile.append=false
+log4j.appender.DBusPluginLogFile.DatePattern='.' yyyy-MM-dd
+log4j.appender.DBusPluginLogFile.ImmediateFlush=true
+log4j.appender.DBusPluginLogFile.layout=org.apache.log4j.PatternLayout
+log4j.appender.DBusPluginLogFile.layout.ConversionPattern=%-5p [%d{dd MMM yyyy HH:mm:ss,SSS}][%c] %F:%L %M: %m%n
+
+# Log for all HMI Framework plugin
+log4j.appender.HmiFrameworkPluginLogFile=org.apache.log4j.FileAppender
+log4j.appender.HmiFrameworkPluginLogFile.File=HmiFrameworkPlugin.log
+log4j.appender.HmiFrameworkPluginLogFile.append=false
+log4j.appender.HmiFrameworkPluginLogFile.DatePattern='.' yyyy-MM-dd
+log4j.appender.HmiFrameworkPluginLogFile.ImmediateFlush=true
+log4j.appender.HmiFrameworkPluginLogFile.layout=org.apache.log4j.PatternLayout
+log4j.appender.HmiFrameworkPluginLogFile.layout.ConversionPattern=%-5p [%d{dd MMM yyyy HH:mm:ss,SSS}][%c] %F:%L %M: %m%n
+
+# Log for all Qt HMI
+log4j.rootLogger=ALL, Console
+
+# Log for DBus plugin QtHMI
+log4j.logger.DBusPlugin=ALL, DBusPluginLogFile
+
+# Log for HMI Framework plugin
+log4j.logger.HmiFrameworkPlugin=ALL, HmiFrameworkPluginLogFile
+
+# Log by log4cxx plugin
+log4j.logger.Log4cxxPlugin=ALL, HmiFrameworkPluginLogFile
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationData.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationData.qml
new file mode 100644
index 000000000..a50113095
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationData.qml
@@ -0,0 +1,57 @@
+/**
+ * @file ApplicationData.qml
+ * @brief Model for Application.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+QtObject {
+ property string mainField1
+ property string mainField2
+ property string mainField3
+ property string mainField4
+ property string statusBar
+ property string mediaTrack
+ property string image
+
+ function reset () {
+ console.debug("enter")
+ mainField1 = ""
+ mainField2 = ""
+ mainField3 = ""
+ mainField4 = ""
+ statusBar = ""
+ mediaTrack = ""
+ image = ""
+ console.debug("exit")
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationModel.qml
new file mode 100644
index 000000000..206eaa918
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ApplicationModel.qml
@@ -0,0 +1,91 @@
+/**
+ * @file ApplicationModel.qml
+ * @brief Own fields for each application.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+
+QtObject {
+ property int appId
+ property string appName
+ property string ngnMediaScreenAppName
+ property Icon appIcon: Icon { }
+ property string deviceName
+ property int hmiDisplayLanguageDesired
+ property bool isMediaApplication
+ property variant appType
+ property int hmiUITextAlignment
+
+ // media player
+ property string playPauseState
+ property ApplicationData hmiUIText: ApplicationData { }
+ property MediaClockModel mediaClock: MediaClockModel { }
+
+ property string helpPrompt
+ property string timeoutPrompt
+ property ListModel options: ListModel { }
+
+ property ListModel currentSubMenu: options
+ property ListModel turnList
+ property ListModel softButtons
+ property ListModel turnListSoftButtons
+ property ListModel customPresets
+ property int languageTTSVR
+ // This place is for adding new properties
+
+ function reset () {
+ console.debug("enter")
+ appId = -1
+ appName = ""
+ ngnMediaScreenAppName = ""
+ appIcon.reset()
+ deviceName = ""
+ hmiDisplayLanguageDesired = -1
+ isMediaApplication = false
+ appType = undefined
+ playPauseState = ""
+ hmiUIText.reset()
+// no need to reset mediaClock
+ helpPrompt = ""
+ timeoutPrompt = ""
+ options.clear()
+ currentSubMenu = options
+ turnList = null
+ softButtons = null
+ turnListSoftButtons = null
+ customPresets = null
+ languageTTSVR = -1
+ hmiUITextAlignment = null
+ console.debug("exit")
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/CarMenuModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/CarMenuModel.qml
new file mode 100644
index 000000000..f636d1e79
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/CarMenuModel.qml
@@ -0,0 +1,78 @@
+/**
+ * @file CarMenuModel.qml
+ * @brief Car menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+ListModel
+{
+ ListElement {
+ name: "ambient"
+ icon: "../res/vehicle/Ambient Lighti Icon.png"
+ qml: ""
+ }
+ ListElement {
+ name: "cal"
+ icon: "../res/vehicle/cal.png"
+ qml: ""
+ }
+ ListElement {
+ name: "ev"
+ icon: "../res/vehicle/EV Icon.png"
+ qml: ""
+ }
+ ListElement {
+ name: "folders"
+ icon: "../res/vehicle/folders.png"
+ qml: ""
+ }
+ ListElement {
+ name: "key"
+ icon: "../res/vehicle/key_car.png"
+ qml: ""
+ }
+ ListElement {
+ name: "mcs"
+ icon: "../res/vehicle/MCS Icon.png"
+ qml: ""
+ }
+ ListElement {
+ name: "sun"
+ icon: "../res/vehicle/sun.png"
+ qml: ""
+ }
+ ListElement {
+ name: "sync"
+ icon: "../res/vehicle/SYNC Services.png"
+ qml: ""
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Constants.js b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Constants.js
new file mode 100644
index 000000000..1bc5c558b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Constants.js
@@ -0,0 +1,249 @@
+/**
+ * @file Constants.js
+ * @brief Namespace of constants.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+.pragma library
+
+// Colors
+
+// Main color of HMI model(now it ~lightblue). Buttons, text, icons of this color.
+var primaryColor = "#1d81d5"
+
+// Color of pressed buttons, text, icons etc.
+var primaryColorPressed = "#8ec0ea"
+
+// Secondary color of HMI model, backgroud of this color.
+var secondaryColor = "black"
+
+// Color of text at buttonts that are inactive (at phone keyboard, when no any contact started with current letter).
+var inactiveButtonTextColor = "grey"
+
+// Color of text at buttonts that are inactive but nevertheless pressed (at phone keyboard, when no any contact started with current letter).
+var inactiveButtonTextColorPressed = "lightgrey"
+
+// Color of text at contact list screen view (Name, number and number type).
+var contactTextColor = "lightblue"
+
+// Color of text at buttons, when they are pressed.
+var pressedButtonTextColor = "black"
+
+// Color of text at "white" buttons, for all other buttons (which most) use primaryColor.
+var releasedButtonTextColor = "white"
+
+// Transparent background.
+var transparentColor = "#00000000"
+
+// "Warning" word color
+var warningColor = "red"
+
+// Color for PopUp
+var popUpBorderColor = "white"
+
+// Color for hardware and simulation panels
+var panelColor = "#003"
+
+// Color for text in hardware and simulation panels
+var panelTextColor = "white"
+
+// Audio pass thru PopUp text color
+var audioPassThruTextColor = "white"
+
+// Color for border of controls
+var controlsBorderColor = "#ababab"
+
+//--------------------------------------------------------------------------------------
+
+// Font sizes of different elements
+
+// Font size for most of text in HMI model.
+var fontSize = 20
+
+// Font size for text inside oval buttons.
+var ovalButtonFontSize = 15
+
+// Title font size
+var titleFontSize = 35
+
+// Power on/off button font size
+var powerButtonFornSize = 25
+
+// Font size of status bar
+var statusBarFontSize = 15
+
+// Size icon for buttons
+var iconButtonSize = 30
+
+// Size icon for item list
+var iconItemListSize = 40
+
+// font size fo TTS popup
+var ttsFontSize = 12
+
+// Font size for list of applications
+var appListFontSize = 40
+
+// Size of contact list fields
+var contactListNameFieldSize = 0.4
+var contactListPhoneFieldSize = 0.3
+var contactListDescriptionFieldSize = 0.3
+
+//--------------------------------------------------------------------------------------
+
+// Sizes of buttons, menus, screen, etc
+
+// Minimal width and height of screen (screen wont resize, if height and width are lower).
+var mainScreenMinWidth = 800
+var mainScreenMiHeight = 600
+
+// Width for long oval button
+var ovalButtonWidth = 163
+
+// Height for oval button
+var ovalButtonHeight = 65
+
+// Height item list
+var itemListHeight = 60
+
+// Width for TTS popup
+var ttsPopUpWidth = 250
+
+// Height for TTS popup
+var ttsPopUpHeight = 100
+
+// Width for popup view
+var popupWidth = 700
+
+// Width for alert window
+var alertWidth = 360
+
+// Height for popup view
+var popupHeigth = 500
+
+// Width for combobox
+var defaultComboboxWidth = 150
+
+// Size icon for list of applications
+var appListIconSize = 100
+
+// DistanceBar height
+var distanceBarHeight = 1
+
+
+//---------------------------------------------------------------------------------------
+
+// Other
+
+// Offset from the edges of the screen.
+var margin = 20
+
+// Offset from the edges of the popup
+var popupMargin = 15
+
+// Spacing between contacts at contact screen view.
+var contactListSpacing = 30
+
+// Duration of appearance of icon/button at icon/button menus.
+var animationDuration = 500
+
+// Duration of appearence of "OK" button at warning screen view, when HMI starts.
+var warningScreenDuration = 1000
+
+// Timer to check how long preset button is pressed.
+var presetButtonTimer = 800
+
+// Spacing between icon and item in list
+var iconItemListSpacing = 20
+
+// Spacing between item on views
+var generalSpacing = 10
+
+// Width of scrollBar
+var scrollBarWidth = 5
+
+// Speak text for a given time
+var ttsSpeakTime = 2000
+
+// Maximal number of submenus
+var maximumSubmenus = 1000
+
+// Maximal number of commands in submenu or root menu
+var maximumCommandsPerSubmenu = 1000
+
+// padding for popup view
+var popUpPadding = 20
+
+// Padding for TTS popup
+var ttsPopUpPadding = 10
+
+// -------------------------
+var sliderBarWidth = 400
+var sliderBarHeight = 50
+var sliderBarRadius = 3
+var sliderBarBorderWidth = 1
+var sliderTextColor = "white"
+var sliderBarBorderColor = "white"
+var sliderBarFillColor = "white"
+
+// -------------------------
+var scrollableMessageTextColor = "white"
+var scrollableMessageScrollBarColor = "gray"
+var scrollableMessageScrollBarWidth = 10
+
+// Padding for hardware and simulation panels
+var panelPadding = 20
+
+// Scale for pressed icon in menu
+var pressedIconScale = 1.1
+
+// Values of color effect for highlighted button
+var highlightedButtonHue = 0.9
+var highlightedButtonSaturation = 0.0
+var highlightedButtonLightness = 0.1
+
+// Values of color effect for disabled button
+var disabledButtonHue = 0.0
+var disabledButtonSaturation = -1.0
+var disabledButtonLightness = 0.1
+
+// Count of rows for grid menu
+var menuRowCount = 2
+
+// Count of columns for grid menu
+var menuColumnCount = 3
+
+// Radius of controls
+var controlsRadius = 2
+
+// Width of border of controls
+var controlsBorderWidth = 1
+// Position for element that came without position value (should be always at the end)
+var positionOfElementWithoutPosition = 1001
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ContactsListModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ContactsListModel.qml
new file mode 100644
index 000000000..348d30156
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ContactsListModel.qml
@@ -0,0 +1,98 @@
+/**
+ * @file ContactsListModel.qml
+ * @brief List of contacts.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+ListModel
+{
+ // TODO {ALeshin}: This list model should be sorted in ABC and Upper/lower case order,
+ // when it will be filled dynamically.
+ ListElement { name: "Aaron" ; phone:"(614)555-2444";type:"Mobile"}
+ ListElement { name: "Adrian" ; phone:"(740)245-3434";type:"Mobile" }
+ ListElement { name: "Albert" ; phone:"(614)245-5584";type:"Mobile" }
+ ListElement { name: "Alice" ; phone:"(313)878-3566";type:"Office"}
+ ListElement { name: "Alec" ; phone:"(917)608-2418";type:"Mobile"}
+ ListElement { name: "Alexander" ; phone:"(614)608-2400";type:"Home"}
+ ListElement { name: "Alexander Vasil'evich Michail Leontiy" ; phone:"(614)608-2400";type:"Mobile"}
+ ListElement { name: "Amber" ; phone:"(614)608-2111";type:"Mobile"}
+ ListElement { name: "Amy" ; phone:"(440)245-3434";type:"Mobile" }
+ ListElement { name: "Andy" ; phone:"(313)245-3434";type:"Mobile" }
+ ListElement { name: "Antje" ; phone:"(567)245-3434";type:"Home" }
+ ListElement { name: "buddy" ; phone:"(614)813-6610";type:"Mobile" }
+ ListElement { name: "Barry" ; phone:"(313)555-2211";type:"Mobile" }
+ ListElement { name: "Bea" ; phone:"(614)455-3434";type:"Mobile" }
+ ListElement { name: "Ben" ; phone:"(614)882-1843";type:"Office" }
+ ListElement { name: "Blake" ; phone:"(330)149-7778";type:"Mobile" }
+ ListElement { name: "Bob Mould" ; phone:"(313)245-3434";type:"Mobile" }
+ ListElement { name: "Brian" ; phone:"(614)332-7499";type:"Mobile" }
+ ListElement { name: "Calvin" ; phone:"(614)442-9974";type:"Mobile" }
+ ListElement { name: "Carl" ; phone:"(567)773-3434";type:"Home" }
+ ListElement { name: "Cat Power" ; phone:"(313)608-3434";type:"Home"}
+ ListElement { name: "Cathy" ; phone:"(313)444-456";type:"Home"}
+ ListElement { name: "Chris" ; phone:"(734)997-6514";type:"Home" }
+ ListElement { name: "Cloud Nothings"; phone:"(444)608-543";type:"Mobile"}
+ ListElement { name: "Cody" ; phone:"(567)365-8413";type:"Home" }
+ ListElement { name: "Curtis" ; phone:"(614)245-1547";type:"Office" }
+ ListElement { name: "Dakota" ; phone:"(567)555-4444";type:"Home" }
+ ListElement { name: "Dale" ; phone:"(567)723-1974";type:"Mobile" }
+ ListElement { name: "Dallas"; phone:"(614)556-879";type:"Home"}
+ ListElement { name: "Damian" ; phone:"(614)245-3434";type:"Office" }
+ ListElement { name: "Daniel"; phone:"(614)556-879";type:"Home"}
+ ListElement { name: "Darina"; phone:"(313)895-888";type:"Mobile"}
+ ListElement { name: "Dee "; phone:"(313)432-3434";type:"Home"}
+// ListElement { name: "Edward" ; phone:"(917)608-975";type:"Office"}
+ ListElement { name: "Ferdinand" ; phone:"(917)879-795";type:"Mobile"}
+ ListElement { name: "gomez" ; phone:"(313)455-543";type:"Mobile"}
+ ListElement { name: "Harry Potter"; phone:"(313)888-432";type:"Home"}
+ ListElement { name: "Ivan"; phone:"(313)996-225";type:"Home"}
+// ListElement { name: "James" ; phone:"(917)608-3434";type:"Mobile"}
+ ListElement { name: "Karen"; phone:"(313)998-332";type:"Home"}
+ ListElement { name: "Luis Torres"; phone:"(313)779-111";type:"Home"}
+ ListElement { name: "Mary"; phone:"(313)234-098";type:"Mobile"}
+ ListElement { name: "Neil"; phone:"(313)444-112";type:"Mobile"}
+ ListElement { name: "Oswald"; phone:"(313)456-921";type:"Mobile"}
+ ListElement { name: "Oscar"; phone:"(313)332-778";type:"Home"}
+ ListElement { name: "~1123"; phone:"(313)1332";type:"Home"}
+ ListElement { name: "Patrice"; phone:"(313)789-111";type:"Mobile"}
+ ListElement { name: "Queen Elizabeth"; phone:"(313)897-666";type:"Mobile"}
+ ListElement { name: "Rose"; phone:"(313)111-211";type:"Mobile"}
+ ListElement { name: "Susell"; phone:"(313)345-122";type:"Home"}
+ ListElement { name: "Thomas"; phone:"(917)608-342";type:"Mobile"}
+ ListElement { name: "Titus Andronicus" ; phone:"(917)608-321";type:"Office"}
+ ListElement { name: "Toretto" ; phone:"(917)608-3434";type:"Home"}
+ ListElement { name: "Uhl" ; phone:"(313)444-654";type:"Office"}
+ ListElement { name: "willi" ; phone:"(313)224-5712";type:"Office"}
+ ListElement { name: "Wanda" ; phone:"(313)666-6969";type:"Office"}
+ ListElement { name: "wanda" ; phone:"(313)666-6969";type:"Office"}
+ ListElement { name: "Zara" ; phone:"(313)231-009";type:"Mobile"}
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/DataStorage.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/DataStorage.qml
new file mode 100644
index 000000000..cc5f6fc21
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/DataStorage.qml
@@ -0,0 +1,510 @@
+/**
+ * @file DataStorage.qml
+ * @brief Container for data.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+import "Internal.js" as Internal
+import "Constants.js" as Constants
+
+QtObject {
+
+ property string contactsFirstLetter // first letter of contact's name that need to find at contact list
+ property ApplicationModel currentApplication: ApplicationModel { }
+ property SliderModel uiSlider: SliderModel { }
+ property PerformAudioPassThruModel uiAudioPassThru: PerformAudioPassThruModel { }
+
+ function getApplication(appId) {
+ console.log("dataContainer getApplication enter");
+ for(var i = 0; i < applicationList.count; i++) {
+ if(applicationList.get(i).appId === appId) {
+ console.log("Application found", applicationList.get(i));
+ return applicationList.get(i);
+ }
+ }
+ console.log("dataContainer getApplication exit");
+ }
+
+ onApplicationListChanged: {
+ console.log("onApplicationListChanged()");
+ setCurrentApplication(appId);
+ }
+
+ function setCurrentApplication(appId) {
+ console.log("Enter setCurrentApplication function");
+ var oldApplicationContext = applicationContext;
+ if (currentApplication.appId !== appId) {
+ applicationContext = false;
+ }
+
+ for(var i = 0; i < applicationList.count; i++) {
+ if(applicationList.get(i).appId === appId) {
+ currentApplication.appId = appId
+ var application = applicationList.get(i)
+ currentApplication.appName = application.appName
+ currentApplication.appType = application.appType
+ currentApplication.appIcon.source = application.icon
+ currentApplication.playPauseState = application.playPauseState
+ currentApplication.options = application.options
+ currentApplication.softButtons = application.softButtons
+ currentApplication.customPresets = application.customPresets
+
+ if (application.hmiUIText.mainField1 !== undefined) {
+ currentApplication.hmiUIText.mainField1 = application.hmiUIText.mainField1
+ }
+ if (application.hmiUIText.mainField2 !== undefined) {
+ currentApplication.hmiUIText.mainField2 = application.hmiUIText.mainField2
+ }
+ if (application.hmiUIText.mainField3 !== undefined) {
+ currentApplication.hmiUIText.mainField3 = application.hmiUIText.mainField3
+ }
+ if (application.hmiUIText.mainField4 !== undefined) {
+ currentApplication.hmiUIText.mainField4 = application.hmiUIText.mainField4
+ }
+ if (application.hmiUIText.statusBar !== undefined) {
+ currentApplication.hmiUIText.statusBar = application.hmiUIText.statusBar
+ }
+ if (application.hmiUIText.mediaTrack !== undefined) {
+ currentApplication.hmiUIText.mediaTrack = application.hmiUIText.mediaTrack
+ }
+ if (application.hmiUIText.image !== undefined) {
+ currentApplication.hmiUIText.image = application.hmiUIText.image
+ }
+ if (application.hmiUITextAlignment !== undefined) {
+ currentApplication.hmiUITextAlignment = application.hmiUITextAlignment
+ }
+ if (application.helpPrompt !== undefined) {
+ currentApplication.helpPrompt = application.helpPrompt
+ }
+ if (application.timeoutPrompt !== undefined) {
+ currentApplication.timeoutPrompt = application.timeoutPrompt
+ }
+ // Check fields with mandatory = false
+
+ currentApplication.deviceName = application.deviceName
+ currentApplication.isMediaApplication = application.isMediaApplication
+ currentApplication.turnList = application.turnList
+ currentApplication.turnListSoftButtons = application.turnListSoftButtons
+ currentApplication.mediaClock.updateMode = application.mediaClock.updateMode
+ currentApplication.mediaClock.runningMode = application.mediaClock.runningMode
+ currentApplication.mediaClock.startTimeForProgress = application.mediaClock.startTimeForProgress
+ if (application.mediaClock.startTime !== undefined) {
+ currentApplication.mediaClock.startTime = application.mediaClock.startTime
+ }
+ if (application.mediaClock.endTime !== undefined) {
+ currentApplication.mediaClock.endTime = application.mediaClock.endTime
+ }
+ currentApplication.languageTTSVR = application.languageTTSVR
+ currentApplication.hmiDisplayLanguageDesired = application.hmiDisplayLanguageDesired
+ // This place is for adding new properties
+ }
+ }
+ applicationContext = oldApplicationContext;
+ currentApplicationChanged()
+ console.log("Exit setCurrentApplication function")
+ }
+
+ function addApplication(app) {
+ console.log("enter")
+ applicationList.append({
+ appName: app.appName,
+ ngnMediaScreenAppName: app.ngnMediaScreenAppName,
+ icon: app.icon,
+ deviceName: app.deviceName,
+ appId: app.appId,
+ hmiDisplayLanguageDesired: app.hmiDisplayLanguageDesired,
+ isMediaApplication: app.isMediaApplication,
+ appType: app.appType,
+ helpPrompt: "",
+ timeoutPrompt: "",
+ customPresets: app.customPresets ? app.customPresets : [],
+ playPauseState: 'Pause',
+ hmiUIText: app.hmiUIText,
+ hmiUITextAlignment: app.hmiUITextAlignment,
+ options: [],
+ turnList: [],
+ turnListSoftButtons: [],
+ mediaClock: app.mediaClock,
+ languageTTSVR: Common.Language.EN_US,
+ softButtons: []
+ // This place is for adding new properties
+ })
+
+ if (app.isMediaApplication) {
+ musicSourceModel.insert(0, {
+ "title": app.appName,
+ "qml": "views/SDLPlayerView.qml",
+ "appId": app.appId
+ })
+ }
+
+ console.log("exit")
+ }
+
+ function setApplicationProperties(appId, props) {
+ console.log("Enter setApplicationProperties function");
+ var app = getApplication(appId)
+ for (var p in props) {
+ if (props[p] !== undefined) {
+ app[p] = props[p]
+ }
+ }
+ if (currentApplication.appId === appId) {
+ setCurrentApplication(appId); // copy new values to current application
+ }
+ console.log("Exit setApplicationProperties function");
+ }
+
+ function removeApplication(appId) {
+ console.log("enter");
+ for (var j = 0; j < musicSourceModel.count; ++j) {
+ if (musicSourceModel.get(j).appId === appId) {
+ musicSourceModel.remove(j);
+ break;
+ }
+ }
+ for (var i = 0; i < applicationList.count; i++) {
+ if (applicationList.get(i).appId === appId) {
+ applicationList.remove(i);
+ break;
+ }
+ }
+ console.log("exit");
+ }
+
+ property int systemContext
+ property int hmiContext
+ property bool applicationContext: false
+ property bool applicationSavedContext
+ property string routeText: ""
+ property PlayerState cdPlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState ipodPlayerState: PlayerState {
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ playPauseState: 'Pause'
+ }
+ property PlayerState usbPlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState linePlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState btPlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState amPlayerState: PlayerState {
+ songName: "So Far Around The Bend"
+ albumName: "The National"
+ presets: [ "1130", "950", "760", "1270", "1400", "2100", "940", "1001" ]
+ }
+ property PlayerState fmPlayerState: PlayerState {
+ songName: "So Far Around The Bend"
+ albumName: "The National"
+ presets: ["96.3", "107.9", "104.3", "101.9", "105.3", "100.5", "107.9", "103.4"]
+ }
+ property PlayerState siriusPlayerState: PlayerState {
+ songName: "So Far Around The Bend"
+ albumName: "The National"
+ presets: [ "Lithium", "Spectrum", "ESPN", "Alt Nation", "Lithium", "Spectrum", "ESPN", "Alt Nation" ]
+ }
+
+ property bool hmiVRAvailable: false
+ property bool hmiTTSAvailable: false
+ property bool hmiNavigationAvailable: false
+ property bool hmiVehicleInfoAvailable: false
+ property bool hmiUIAvailable: false
+
+ property int hmiUILanguage: Common.Language.EN_US
+ property int hmiTTSVRLanguage: Common.Language.EN_US
+
+ property ListModel deviceList: ListModel { }
+ property ListModel applicationList: ListModel { }
+
+ property ListModel vrCommands: ListModel {}
+
+ property ListModel vrHelp: ListModel {}
+
+ function reset () {
+ console.log("dataContainer reset enter");
+ routeText = ""
+ console.log("dataContainer reset exit");
+ }
+
+ function changeRegistrationUI (language, appID) {
+ console.log("dataContainer changeRegistrarionUI enter");
+ setApplicationProperties(appID, { hmiDisplayLanguageDesired: language });
+ console.log("dataContainer changeRegistrarionUI exit");
+ }
+
+ function changeRegistrationTTSVR(language, appID) {
+ console.log("dataContainer changeRegistrationTTSVR enter");
+ setApplicationProperties(appID, { languageTTSVR: language });
+ console.log("dataContainer changeRegistrationTTSVR exit");
+ }
+
+ function addCommand (cmdID, menuParams, cmdIcon, appID) {
+ console.debug("enter: " +
+ cmdID +
+ ", " +
+ (menuParams ?
+ "{" + menuParams.parentID + ", " + menuParams.position + ", " + menuParams.menuName + "}" : menuParams) +
+ ", " +
+ (cmdIcon ?
+ "{" + cmdIcon.value + ", " + cmdIcon.imageType + "}" : cmdIcon) +
+ ", " +
+ appID
+ )
+ var commandToAddPosition
+ var app = getApplication(appID)
+ var currentMenu = app.options
+ var maximumCommands = Constants.maximumCommandsPerSubmenu
+ var index = 0
+
+ if ((menuParams) && (menuParams.parentID)) { // Work with sub menu
+ var parentNotFound = true
+ for (var optionIndex = 0; optionIndex < app.options.count; ++optionIndex) {
+ if ((app.options.get(optionIndex).type === Internal.MenuItemType.MI_SUBMENU) && (app.options.get(optionIndex).id === menuParams.parentID)) {
+ currentMenu = app.options.get(optionIndex).subMenu
+ parentNotFound = false
+ maximumCommands += 1
+ }
+ }
+ if (parentNotFound) {
+ console.log("UI::addCommand(): parentID " + menuParams.parentID + " not found")
+ }
+ }
+
+ if (currentMenu.count < maximumCommands) {
+ if (menuParams && (menuParams.position !== undefined)) {
+ commandToAddPosition = menuParams.position
+ } else {
+ commandToAddPosition = Constants.positionOfElementWithoutPosition
+ }
+ for (var i = 0; i < currentMenu.count; i++) {
+ if (commandToAddPosition >= currentMenu.get(i).position) {
+ index = i + 1
+ } else {
+ break
+ }
+ }
+ currentMenu.insert( index,
+ { id: cmdID,
+ name: menuParams.menuName,
+ type: Internal.MenuItemType.MI_NODE,
+ position: commandToAddPosition,
+ icon: cmdIcon ? cmdIcon : {},
+ subMenu: []
+ })
+ } else {
+ console.log("addCommand(): too many commands in menu: ", menuParams.parentID, " rejecting")
+ throw Common.Result.REJECTED
+ }
+ console.debug("exit")
+ }
+
+ function deleteCommand (cmdID, appID) {
+ console.debug("enter: " + cmdID + ", " + appID)
+ for (var optionIndex = 0; optionIndex < getApplication(appID).options.count; ++optionIndex) {
+ var option = getApplication(appID).options.get(optionIndex)
+ if (option.type === Internal.MenuItemType.MI_NODE) {
+ if (option.id === cmdID) {
+ getApplication(appID).options.remove(optionIndex)
+ break
+ }
+ }
+ if (option.type === Internal.MenuItemType.MI_SUBMENU) {
+ var subMenu = option.subMenu
+ var idMatchFound = false
+ for (var subOptionIndex = 0; subOptionIndex < subMenu.count; ++subOptionIndex) {
+ if (subMenu.get(subOptionIndex).id === cmdID) {
+ idMatchFound = true
+ if (subMenu !== currentApplication.currentSubMenu) {
+ subMenu.remove(subOptionIndex)
+ }
+ else {
+ console.log("UI::deleteCommand(): cannot remove item from current submenu")
+ throw Common.Result.IN_USE
+ }
+ break
+ }
+ }
+ if (idMatchFound) {
+ break
+ }
+ }
+ }
+ console.debug("exit")
+ }
+
+ function addSubMenu (menuID, menuParams, appID) {
+ console.debug("enter: " + menuID + ", {" + menuParams.parentID + ", " + menuParams.position + ", " + menuParams.menuName + "}, " + appID)
+ var app = getApplication(appID)
+ var index = 0
+ var count = app.options.count
+ var subMenuToAddPosition
+
+ if (count < Constants.maximumSubmenus) {
+ if (menuParams.position !== undefined) {
+ subMenuToAddPosition = menuParams.position
+ } else {
+ subMenuToAddPosition = Constants.positionOfElementWithoutPosition
+ }
+ for (var i = 0; i < count; i++) {
+ if (subMenuToAddPosition >= app.options.get(i).position) {
+ index = i + 1
+ } else {
+ break
+ }
+ }
+ app.options.insert(index, {
+ "id": menuID,
+ "name": menuParams.menuName,
+ "position": subMenuToAddPosition,
+ "type": Internal.MenuItemType.MI_SUBMENU,
+ "icon": undefined,
+ "subMenu": [{
+ "id": -1,
+ "name": menuParams.menuName,
+ "position": -1,
+ "type": Internal.MenuItemType.MI_PARENT,
+ "icon": {
+ "imageType": Common.ImageType.DYNAMIC,
+ "value": "../res/nav/turnArrow.png"
+ },
+ "subMenu": getApplication(appID).options
+ }]
+ })
+ }
+ else {
+ console.log("addSubMenu(): too many submenus, rejecting")
+ throw Common.Result.REJECTED
+ }
+ console.debug("exit")
+ }
+
+ function deleteSubMenu (menuID, appID) {
+ console.debug("enter: " + menuID + ", " + appID)
+ for (var optionIndex = 0; optionIndex < getApplication(appID).options.count; ++optionIndex) {
+ var option = getApplication(appID).options.get(optionIndex)
+ if ((option.type === Internal.MenuItemType.MI_SUBMENU) && (option.id === menuID)) {
+ if (option.subMenu !== currentApplication.currentSubMenu) {
+ getApplication(appID).options.remove(optionIndex)
+ }
+ else {
+ console.log("UI::deleteSubMenu(): cannot remove current submenu")
+ throw Common.Result.IN_USE
+ }
+ break
+ }
+ }
+ console.debug("exit")
+ }
+
+ function setVrHelp (vrHelp) {
+ this.vrHelp.clear()
+ var index
+ for (var i = 0; i < vrHelp.length; ++i) {
+ index = 0
+// sort by simple inserts
+ while ((index < this.vrHelp.count) && (this.vrHelp.get(index).position < vrHelp[i].position)) {
+ ++index
+ }
+ this.vrHelp.insert(index, {
+ "text": vrHelp[i].text,
+ "icon": vrHelp[i].image ? vrHelp[i].image : {},
+ "position": vrHelp[i].position
+ })
+ }
+ }
+
+ property NavigationModel navigationModel: NavigationModel { }
+ property VehicleInfoModel vehicleInfoModel: VehicleInfoModel { }
+ property ScrollableMessageModel scrollableMessageModel: ScrollableMessageModel { }
+ property bool activeVR: false
+
+ property InteractionModel interactionModel: InteractionModel {
+ }
+
+ property int driverDistractionState: Common.DriverDistractionState.DD_OFF
+ onDriverDistractionStateChanged: {
+ sdlUI.onDriverDistraction(driverDistractionState);
+ }
+ property bool activeTTS: false
+ property variant activePopup
+ property int popups: 0
+
+ property bool activeAlert: false
+
+ onActiveVRChanged: setSystemContext()
+ onActiveAlertChanged: setSystemContext()
+ onPopupsChanged: setSystemContext()
+
+ function setSystemContext () {
+ console.debug("enter")
+ if (popups > 0) {
+ systemContext = Common.SystemContext.SYSCTXT_HMI_OBSCURED
+ }
+ else if (activeAlert) {
+ systemContext = Common.SystemContext.SYSCTXT_ALERT
+ }
+ else if (activeVR) {
+ systemContext = Common.SystemContext.SYSCTXT_VRSESSION
+ }
+ else if (contentLoader.item !== null) {
+ systemContext = contentLoader.item.systemContext
+ }
+ console.debug("exit")
+ }
+ property MusicSourceModel musicSourceModel: MusicSourceModel {
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/InteractionModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/InteractionModel.qml
new file mode 100644
index 000000000..8da8a035d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/InteractionModel.qml
@@ -0,0 +1,58 @@
+/**
+ * @file InteractionModel.qml
+ * @brief Interaction model.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Async.js" as Async
+
+QtObject {
+ property string initialText
+ property ListModel choice: ListModel {
+ }
+ property int timeout
+ property variant async
+
+ function performInteraction (initialText, choiceSet, vrHelp, timeout, appID) {
+ console.debug("enter")
+ this.initialText = initialText.fieldText
+ choice.clear()
+ for (var i = 0; i < choiceSet.length; ++i) {
+ choice.append({"id": choiceSet[i].choiceID, "name": choiceSet[i].menuName ? choiceSet[i].menuName : "choiceID = " + choiceSet[i].choiceID, image: choiceSet[i].image})
+ }
+ this.timeout = timeout
+ interactionPopup.activate()
+ async = new Async.AsyncCall()
+ console.debug("exit")
+ return async
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Internal.js b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Internal.js
new file mode 100644
index 000000000..4a1ebc625
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/Internal.js
@@ -0,0 +1,163 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+var MenuItemType = {
+ MI_NODE: 0,
+ MI_SUBMENU: 1,
+ MI_PARENT: 2
+}
+
+function activePageChoose(flickElement, pages) {
+ if (flickElement.contentX <= 0) {
+ return 0
+ }
+ else if ( (flickElement.contentWidth - flickElement.contentX) < flickElement.width) {
+ return pages -1
+ }
+ else {
+ if ( (flickElement.contentX % flickElement.width) >= (1/6 * flickElement.width)) {
+ return Math.ceil(flickElement.contentX / flickElement.width)
+ }
+ else if ( (flickElement.contentX % flickElement.width) > 0) {
+ return Math.floor(flickElement.contentX / flickElement.width)
+ }
+ }
+}
+
+var MediaClockUpdateMode = {
+ MCU_COUNTUP: 0,
+ MCU_COUNTDOWN: 1,
+}
+
+var MediaClockRunningMode = {
+ MCR_RUNNING: 0,
+ MCR_STOPPED: 1
+}
+
+function appendVrHelpItem (arrayElement, index, array) {
+ this.append({
+ text: arrayElement.text,
+ image: arrayElement.image ? arrayElement.image : "",
+ position: arrayElement.position
+ })
+}
+
+function checkBit(value, bitPosition) {
+ return (value & (1 << bitPosition))
+}
+
+function getArrayForPresetRow() {
+ var array = []
+ for (var i = 0; i < dataContainer.currentApplication.customPresets.count; i++) {
+ array.push(dataContainer.currentApplication.customPresets.get(i).text)
+ }
+ return array
+}
+
+function pad (string, length, lead) {
+ if (!lead) {
+ lead = '0'
+ }
+ var paddedString = "" + string
+ while (paddedString.length < length) {
+ paddedString = lead + paddedString
+ }
+ return paddedString
+}
+
+function hmsTime (hours, minutes, seconds) {
+ return 60 * (60 * hours + minutes) + seconds
+}
+
+function hmsTimeToString (hmsTime) {
+ if (hmsTime === -1) {
+ return "0:00:00"
+ }
+
+ var _time = hmsTime
+ var seconds = _time % 60
+ _time -= seconds
+ _time /= 60
+ var minutes = _time % 60
+ _time -= minutes
+ _time /= 60
+ var hours = _time
+ var string = ""
+ string += hours
+ string += ":"
+ string += pad(minutes, 2)
+ string += ":"
+ string += pad(seconds, 2)
+ return string
+}
+
+function stringToHmsTime (hmsString) {
+ console.debug("enter: \"" + hmsString + "\"")
+ var substrings = hmsString.split(":")
+ var seconds = substrings.length > 0 ? parseInt(substrings.pop()) : 0
+ if (seconds >= 60) {
+ console.log("incorrect field \"seconds\": " + seconds)
+ console.debug("exit")
+ return 0
+ }
+ var minutes = substrings.length > 0 ? parseInt(substrings.pop()) : 0
+ if (minutes >= 60) {
+ console.log("incorrect field \"minutes\": " + minutes)
+ console.debug("exit")
+ return 0
+ }
+ var hours = substrings.length > 0 ? parseInt(substrings.pop()) : 0
+ console.debug("exit")
+ return hmsTime(hours, minutes, seconds)
+}
+
+function mediaClockUpdateModeToString (mediaClockUpdateMode) {
+ switch (mediaClockUpdateMode) {
+ case MediaClockUpdateMode.MCU_COUNTUP:
+ return "Internal.MediaClockUpdateMode.MCU_COUNTUP"
+ case MediaClockUpdateMode.MCU_COUNTDOWN:
+ return "Internal.MediaClockUpdateMode.MCU_COUNTDOWN"
+ default:
+ return ""
+ }
+}
+
+function mediaClockRunningModeToString (mediaClockRunningMode) {
+ switch (mediaClockRunningMode) {
+ case MediaClockRunningMode.MCR_RUNNING:
+ return "Internal.MediaClockRunningMode.MCR_RUNNING"
+ case MediaClockRunningMode.MCR_STOPPED:
+ return "Internal.MediaClockRunningMode.MCR_STOPPED"
+ default:
+ return ""
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MainMenuListModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MainMenuListModel.qml
new file mode 100644
index 000000000..49b4e7fb9
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MainMenuListModel.qml
@@ -0,0 +1,79 @@
+/**
+ * @file MainMenuListModel.qml
+ * @brief Main menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+ListModel
+{
+ ListElement {
+ name: "Climate"
+ icon: "../res/snow.png"
+ qml: "./views/ClimateControlView.qml"
+ }
+
+ ListElement {
+ name: "Navigation"
+ icon: "../res/arrow.png"
+ qml: "./views/NavigationNoRouteGridView.qml"
+ }
+
+ ListElement {
+ name: "Media"
+ icon: "../res/notes.png"
+ qml: "./views/MusicSourceView.qml"
+ }
+
+ ListElement {
+ name: "Preferences"
+ icon: "../res/gear.png"
+ qml: ""
+ }
+
+ ListElement {
+ name: "Apps"
+ icon: "../res/apps.png"
+ qml: "./views/ApplicationListView.qml"
+ }
+
+ ListElement {
+ name: "Phone"
+ icon: "../res/phone/phone.png"
+ qml: "./views/PhoneMenuGridView.qml"
+ }
+
+ ListElement {
+ name: "Car"
+ icon: "../res/car.png"
+ qml: "./views/CarMenuGridView.qml"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MediaClockModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MediaClockModel.qml
new file mode 100644
index 000000000..8f062008a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MediaClockModel.qml
@@ -0,0 +1,112 @@
+/**
+ * @file MediaClockModel.qml
+ * @brief Media clock model
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "Internal.js" as Internal
+
+QtObject {
+ property int updateMode
+ property int runningMode
+ property int startTime
+ property int endTime
+ property int upperTimeLimit: 60 * 60 * 60 - 1
+ property int startTimeForProgress
+ property real progress
+
+ property Timer timer: Timer {
+ id: timer
+ interval: 1000
+ repeat: true
+ onTriggered: onTimer()
+ }
+ onRunningModeChanged: {
+ if (runningMode === Internal.MediaClockRunningMode.MCR_STOPPED) {
+ timer.stop()
+ } else {
+ timer.start()
+ }
+ }
+
+ onStartTimeChanged: {
+ if (startTime === -1) {
+ progress = 0
+ } else {
+ if (updateMode === Internal.MediaClockUpdateMode.MCU_COUNTUP) {
+ progress = (endTime !== -1) ? (startTime / endTime) : (startTime / upperTimeLimit)
+ } else {
+ progress = (endTime !== -1) ? ( (startTime - endTime) / (startTimeForProgress - endTime) )
+ : (startTime / startTimeForProgress)
+ }
+ }
+ }
+
+ function onTimer () {
+ switch (updateMode) {
+ case Internal.MediaClockUpdateMode.MCU_COUNTUP:
+ if (endTime !== -1) {
+ if (startTime < endTime) {
+ startTime++
+ } else {
+ timer.stop()
+ runningMode = Internal.MediaClockRunningMode.MCR_STOPPED
+ console.debug("count Up timer stopped")
+ }
+ } else {
+ if (startTime < upperTimeLimit) {
+ startTime++
+ } else {
+ startTime = 0
+ }
+ }
+ break
+ case Internal.MediaClockUpdateMode.MCU_COUNTDOWN:
+ console.debug("count down")
+ if (--startTime === 0) {
+ timer.stop()
+ runningMode = Internal.MediaClockRunningMode.MCR_STOPPED
+ startTime = endTime = -1
+ console.debug("count Down timer stopped")
+ }
+ break
+ }
+ dataContainer.setApplicationProperties(dataContainer.currentApplication.appId, {
+ "mediaClock": {startTime: startTime,
+ endTime: endTime,
+ updateMode: updateMode,
+ runningMode: runningMode,
+ startTimeForProgress: startTimeForProgress
+ }
+ })
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MusicSourceModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MusicSourceModel.qml
new file mode 100644
index 000000000..b01c4cf83
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/MusicSourceModel.qml
@@ -0,0 +1,78 @@
+/**
+ * @file MusicSourceModel.qml
+ * @brief Music source menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+ListModel
+{
+ ListElement {
+ title: "FM"
+ qml: "./views/FMPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "AM"
+ qml: "./views/AMPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "BT Audio"
+ qml: "./views/BTPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "Sirius"
+ qml: "./views/SiriusPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "CD"
+ qml: "./views/CDPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "iPod"
+ qml: "./views/IPodPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "USB"
+ qml: "./views/UsbPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "LineIn"
+ qml: "./views/LineInPlayerView.qml"
+ appId: 0
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationMenuModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationMenuModel.qml
new file mode 100644
index 000000000..963225719
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationMenuModel.qml
@@ -0,0 +1,72 @@
+/**
+ * @file NavigationMenuModel.qml
+ * @brief Music source menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+ListModel
+{
+ ListElement {
+ title: "Home"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Keyboard"
+ icon: "../res/buttons/long_oval_btn.png"
+ qml: "./views/NavigationKeyboardView.qml"
+ }
+ ListElement {
+ title: "Favorites"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Work"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Recent"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "POI"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Scout"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Waze"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationModel.qml
new file mode 100644
index 000000000..f9203875d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/NavigationModel.qml
@@ -0,0 +1,52 @@
+/**
+ * @file NavigationModel.qml
+ * @brief Model for Navigation.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+QtObject {
+ property string text1: ""
+ property string text2: ""
+ property string totalDistance: ""
+ property string eta: ""
+ property string timeToDestination: ""
+ property variant turnIcon
+ property variant nextTurnIcon
+
+ property real distanceToManeuver: 0
+ property real distanceToManeuverScale: 0
+ property bool maneuverComplete
+ property ListModel softButtons: ListModel {}
+ property int appId: -1
+ property ListModel alertManeuverSoftButtons: ListModel {}
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PerformAudioPassThruModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PerformAudioPassThruModel.qml
new file mode 100644
index 000000000..8b861d37a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PerformAudioPassThruModel.qml
@@ -0,0 +1,43 @@
+/**
+ * @file PerformAudioPassThruModel.qml
+ * @brief Data model audio pass thru.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+QtObject {
+ property string appName: ""
+ property string firstLine: ""
+ property string secondLine: ""
+ property int timeout: 0
+ property bool running: false
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PhoneMenuModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PhoneMenuModel.qml
new file mode 100644
index 000000000..a191f46e4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PhoneMenuModel.qml
@@ -0,0 +1,78 @@
+/**
+ * @file PhoneMenuModel.qml
+ * @brief Phone menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+ListModel
+{
+ ListElement {
+ name: "phone"
+ icon: "../res/phone/phone.png"
+ qml: ""
+ }
+ ListElement {
+ name: "contacts"
+ icon: "../res/phone/contacts.png"
+ qml: "./views/PhoneKeyboardView.qml"
+ }
+ ListElement {
+ name: "messages"
+ icon: "../res/phone/messages.png"
+ qml: ""
+ }
+ ListElement {
+ name: "DND"
+ icon: "../res/phone/dnd_off.png"
+ qml: ""
+ }
+ ListElement {
+ name: "texts"
+ icon: "../res/phone/texts.png"
+ qml: ""
+ }
+ ListElement {
+ name: "recent"
+ icon: "../res/phone/recent.png"
+ qml: ""
+ }
+ ListElement {
+ name: "keyboard"
+ icon: "../res/phone/keypad.png"
+ qml: ""
+ }
+ ListElement {
+ name: "more"
+ icon: "../res/phone/more.png"
+ qml: ""
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PlayerState.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PlayerState.qml
new file mode 100644
index 000000000..bbacd49f8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/PlayerState.qml
@@ -0,0 +1,51 @@
+/**
+ * @file PlayerState.qml
+ * @brief List of parameters for each player.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+
+// Player state for all players except SDL media player
+Item {
+ // Media players
+ property string playPauseState
+ property string albumImage
+ property string trackNumber
+ property int songPosition
+ property string trackName
+
+ // Radio Players
+ property variant presets: []
+
+ // Both players
+ property string songName
+ property string albumName
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ScrollableMessageModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ScrollableMessageModel.qml
new file mode 100644
index 000000000..6fd441ac3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/ScrollableMessageModel.qml
@@ -0,0 +1,54 @@
+/**
+ * @file ScrollableMessageModel.qml
+ * @brief Model for Scrollable Message.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+
+QtObject {
+ property string longMessageText: "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh"
+ property ListModel softButtons: ListModel {}
+ property int appId: -1
+ property int timeout: 0
+ property variant async
+ property bool running: false
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SettingsStorage.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SettingsStorage.qml
new file mode 100644
index 000000000..7fb6cfcdd
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SettingsStorage.qml
@@ -0,0 +1,125 @@
+/**
+ * @file SettingsStorage.qml
+ * @brief Storage for keeping settings.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+
+Item
+{
+ property variant sdlLanguagesList: [
+ Common.Language.EN_US,
+ Common.Language.ES_MX,
+ Common.Language.FR_CA,
+ Common.Language.DE_DE,
+ Common.Language.ES_ES,
+ Common.Language.EN_GB,
+ Common.Language.RU_RU,
+ Common.Language.TR_TR,
+ Common.Language.PL_PL,
+ Common.Language.FR_FR,
+ Common.Language.IT_IT,
+ Common.Language.SV_SE,
+ Common.Language.PT_PT,
+ Common.Language.NL_NL,
+ Common.Language.ZH_TW,
+ Common.Language.JA_JP,
+ Common.Language.AR_SA,
+ Common.Language.KO_KR,
+ Common.Language.PT_BR,
+ Common.Language.CS_CZ,
+ Common.Language.DA_DK,
+ Common.Language.NO_NO
+ ]
+
+ property variant displayCapabilities: {
+ "displayType": Common.DisplayType.GEN2_8_DMA,
+ "textFields": [
+ Common.TextFieldName.mainField1,
+ Common.TextFieldName.mainField2,
+ Common.TextFieldName.mainField3,
+ Common.TextFieldName.mainField4,
+ Common.TextFieldName.statusBar,
+ Common.TextFieldName.mediaClock,
+ Common.TextFieldName.mediaTrack,
+ Common.TextFieldName.alertText1,
+ Common.TextFieldName.alertText2,
+ Common.TextFieldName.alertText3,
+ Common.TextFieldName.scrollableMessageBody,
+ Common.TextFieldName.initialInteractionText,
+ Common.TextFieldName.navigationText1,
+ Common.TextFieldName.navigationText2,
+ Common.TextFieldName.ETA,
+ Common.TextFieldName.totalDistance,
+ Common.TextFieldName.navigationText,
+ Common.TextFieldName.audioPassThruDisplayText1,
+ Common.TextFieldName.audioPassThruDisplayText2,
+ Common.TextFieldName.sliderHeader,
+ Common.TextFieldName.sliderFooter,
+ Common.TextFieldName.notificationText
+ ],
+ "mediaClockFormats": [
+ Common.MediaClockFormat.CLOCK1,
+ Common.MediaClockFormat.CLOCK2,
+ Common.MediaClockFormat.CLOCK3,
+ Common.MediaClockFormat.CLOCKTEXT1,
+ Common.MediaClockFormat.CLOCKTEXT2,
+ Common.MediaClockFormat.CLOCKTEXT3,
+ Common.MediaClockFormat.CLOCKTEXT4
+ ],
+ "graphicSupported": true,
+ "imageCapabilities": [ Common.ImageType.DYNAMIC ],
+ "templatesAvailable": [ "" ],
+ "screenParams": {
+ "resolution": {
+ "resolutionWidth": 800,
+ "resolutionHeight": 480
+ },
+ "touchEventAvailable": {
+ "pressAvailable": true,
+ "multiTouchAvailable": true,
+ "doublePressAvailable": true
+ }
+ },
+ "numCustomPresetsAvailable": 6
+ }
+
+ property variant softButtonCapabilities: {
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true,
+ "imageSupported": true
+ }
+
+ property variant buttonCapabilities: []
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SliderModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SliderModel.qml
new file mode 100644
index 000000000..d335c9eb2
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/SliderModel.qml
@@ -0,0 +1,45 @@
+/**
+ * @file SliderModel.qml
+ * @brief Data model for slider.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+QtObject {
+ property string appName: ""
+ property string header: ""
+ property variant footer: []
+ property int numTicks: 0
+ property int position: 0
+ property int timeout: 0
+ property bool running: false
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/VehicleInfoModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/VehicleInfoModel.qml
new file mode 100644
index 000000000..f5c309880
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/models/VehicleInfoModel.qml
@@ -0,0 +1,234 @@
+/**
+ * @file VehicleInfoModel.qml
+ * @brief Data model for vehicle info.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+
+QtObject {
+ id: vehicleInfo
+ property real speed: 80.1
+ property int rpm: 5000
+ property real fuelLevel: 0.2
+ property int fuelLevel_State: Common.ComponentVolumeStatus.CVS_LOW
+ property real instantFuelConsumption: 2.2
+ property int driverBraking: Common.VehicleDataEventStatus.VDES_NO_EVENT
+ property int wiperStatus: Common.WiperStatus.OFF
+ property real engineTorque: 2.5
+ property real accPedalPosition: 0.5
+ property real steeringWheelAngle: 1.2
+ property real externalTemperature: 40.0
+ property string vin: '52-452-52-752'
+ property int odometer: 2
+ property int prndl: Common.PRNDL.FIFTH
+
+ property variant headLampStatus: {
+ "lowBeamsOn": false,
+ "highBeamsOn": false,
+ "ambientLightSensorStatus": Common.AmbientLightStatus.TWILIGHT_1
+ }
+ property variant deviceStatus: {
+ 'voiceRecOn': false,
+ 'btIconOn': false,
+ 'callActive': false,
+ 'phoneRoaming': false,
+ 'textMsgAvailable': false,
+ 'battLevelStatus': Common.DeviceLevelStatus.ZERO_LEVEL_BARS,
+ 'stereoAudioOutputMuted': false,
+ 'monoAudioOutputMuted': false,
+ 'signalLevelStatus': Common.DeviceLevelStatus.ZERO_LEVEL_BARS,
+ 'primaryAudioSource': Common.PrimaryAudioSource.NO_SOURCE_SELECTED,
+ 'eCallEventActive': false
+ }
+ property variant bodyInformation: {
+ 'parkBrakeActive': false,
+ 'ignitionStableStatus': Common.IgnitionStableStatus.IGNITION_SWITCH_NOT_STABLE,
+ 'ignitionStatus': Common.IgnitionStatus.IS_UNKNOWN
+ }
+ property variant beltStatus: {
+ 'driverBeltDeployed': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'passengerBeltDeployed': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'passengerBuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'driverBuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'leftRow2BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'passengerChildDetected': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'rightRow2BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow2BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow3BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'leftRow3BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'rightRow3BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'leftRearInflatableBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'rightRearInflatableBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow1BeltDeployed': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow1BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ }
+ property variant tirePressure: {
+ 'pressureTelltale': Common.WarningLightStatus.WLS_ON,
+ 'leftFront': { status: Common.ComponentVolumeStatus.CVS_NORMAL},
+ 'rightFront': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN },
+ 'leftRear': { status: Common.ComponentVolumeStatus.CVS_NORMAL },
+ 'rightRear': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN },
+ 'innerLeftRear': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN },
+ 'innerRightRear': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN }
+ }
+ property variant gps: {
+ 'longitudeDegrees': 42.3293,
+ 'latitudeDegrees': -83.0464,
+ 'utcYear': 2013,
+ 'utcMonth': 2,
+ 'utcDay': 14,
+ 'utcHours': 13,
+ 'utcMinutes': 16,
+ 'utcSeconds': 54,
+ 'compassDirection': Common.CompassDirection.SOUTHWEST,
+ 'pdop': 4,
+ 'hdop': 5,
+ 'vdop': 6,
+ 'actual': false,
+ 'satellites': 8,
+ 'dimension': Common.Dimension.Dimension_2D,
+ 'altitude': 7,
+ 'heading': 173,
+ 'speed': 2
+ }
+ property variant ecuDIDData: {
+ 'data1': 'ECU 1 Test Data',
+ 'data2': 'ECU 2 Test Data'
+ }
+ property variant eCallInfo: {
+ "eCallNotificationStatus" : Common.VehicleDataNotificationStatus.VDNS_NORMAL,
+ "auxECallNotificationStatus" : Common.VehicleDataNotificationStatus.VDNS_ACTIVE,
+ "eCallConfirmationStatus" : Common.ECallConfirmationStatus.ECCS_NORMAL
+ }
+ property variant airbagStatus: {
+ "driverAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ "driverSideAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NO,
+ "driverCurtainAirbagDeployed" : Common.VehicleDataEventStatus.VDES_YES,
+ "passengerAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NOT_SUPPORTED,
+ "passengerCurtainAirbagDeployed" : Common.VehicleDataEventStatus.VDES_FAULT,
+ "driverKneeAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NO,
+ "passengerSideAirbagDeployed" : Common.VehicleDataEventStatus.VDES_YES,
+ "passengerKneeAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NOT_SUPPORTED
+ }
+ property variant emergencyEvent: {
+ "emergencyEventType" : Common.EmergencyEventType.EET_NO_EVENT,
+ "fuelCutoffStatus" : Common.EmergencyEventType.EET_FRONTAL,
+ "rolloverEvent" : Common.EmergencyEventType.EET_SIDE,
+ "maximumChangeVelocity" : Common.EmergencyEventType.EET_REAR,
+ "multipleEvents" : Common.EmergencyEventType.EET_ROLLOVER
+ }
+ property variant clusterModeStatus: {
+ "powerModeActive" : true,
+ "powerModeQualificationStatus" : Common.PowerModeQualificationStatus.POWER_MODE_UNDEFINED,
+ "carModeStatus" : Common.CarModeStatus.CMS_NORMAL,
+ "powerModeStatus" : Common.PowerModeStatus.KEY_OUT
+ }
+ property variant myKey: {
+ "e911Override": Common.VehicleDataStatus.VDS_NO_DATA_EXISTS
+ }
+
+
+ function sendGpsChange(){
+ sdlVehicleInfo.onGps(vehicleInfo.gps)
+ }
+ function sendSpeedChange(){
+ sdlVehicleInfo.onSpeed(vehicleInfo.speed)
+ }
+ function sendRpmChange(){
+ sdlVehicleInfo.onRpm(vehicleInfo.rpm)
+ }
+ function sendFuelLevelChange(){
+ sdlVehicleInfo.onFuelLevel(vehicleInfo.fuelLevel)
+ }
+ function sendFuelLevel_StateChange(){
+ sdlVehicleInfo.onFuelLevel_State(vehicleInfo.fuelLevel_State)
+ }
+ function sendInstantFuelConsumptionChange(){
+ sdlVehicleInfo.onInstantFuelConsumption(vehicleInfo.instantFuelConsumption)
+ }
+ function sendExternalTemperatureChange(){
+ sdlVehicleInfo.onExternalTemperature(vehicleInfo.externalTemperature)
+ }
+ function sendPrndlChange() {
+ if (dataContainer.vehicleInfoModel.prndl !== -1)
+ {sdlVehicleInfo.onPrndl(vehicleInfo.prndl)}
+ }
+ function sendTirePressureChange(){
+ sdlVehicleInfo.onTirePressure(vehicleInfo.tirePressure)
+ }
+ function sendOdometerChange(){
+ sdlVehicleInfo.onOdometer(vehicleInfo.odometer)
+ }
+ function sendBeltStatusChange(){
+ sdlVehicleInfo.onBeltStatus(vehicleInfo.beltStatus)
+ }
+ function sendBodyInformationChange(){
+ sdlVehicleInfo.onBodyInformation(vehicleInfo.bodyInformation)
+ }
+ function sendDeviceStatusChange(){
+ sdlVehicleInfo.onDeviceStatus(vehicleInfo.deviceStatus)
+ }
+ function sendDriverBrakingChange(){
+ sdlVehicleInfo.onDriverBraking(vehicleInfo.driverBraking)
+ }
+ function sendWiperStatusChange(){
+ sdlVehicleInfo.onWiperStatus(vehicleInfo.wiperStatus)
+ }
+ function sendHeadLampStatusChange(){
+ sdlVehicleInfo.onHeadLampStatus(vehicleInfo.headLampStatus)
+ }
+ function sendEngineTorqueChange(){
+ sdlVehicleInfo.onEngineTorque(vehicleInfo.engineTorque)
+ }
+ function sendAccPedalPositionChange(){
+ sdlVehicleInfo.onAccPedalPosition(vehicleInfo.accPedalPosition)
+ }
+ function sendSteeringWheelAngleChange(){
+ sdlVehicleInfo.onSteeringWheelAngle(vehicleInfo.steeringWheelAngle)
+ }
+ function sendECallInfoChange(){
+ sdlVehicleInfo.onECallInfo(vehicleInfo.eCallInfo)
+ }
+ function sendAirbagStatusChange(){
+ sdlVehicleInfo.onAirbagStatus(vehicleInfo.airbagStatus)
+ }
+ function sendEmergencyEventChange(){
+ sdlVehicleInfo.onEmergencyEvent(vehicleInfo.emergencyEvent)
+ }
+ function sendClusterModeStatusChange(){
+ sdlVehicleInfo.onClusterModeStatus(vehicleInfo.clusterModeStatus)
+ }
+ function sendMyKeyChange(){
+ sdlVehicleInfo.onMyKey(vehicleInfo.myKey)
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/AlertWindow.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/AlertWindow.qml
new file mode 100644
index 000000000..70e7ba29e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/AlertWindow.qml
@@ -0,0 +1,285 @@
+/**
+ * @file AlertWindow.qml
+ * @brief Alert popup window
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+
+Rectangle {
+ id: alertWindow
+ property date lastAlertTime
+ property variant softButtons
+ property int appId
+ property string popUpName // TODO{ALESHIN}: No requerments for closePopUp, if alert couldn't be closed by closePopUp request - delete everywhere
+
+ color: "transparent"
+
+ property variant async
+
+ Rectangle {
+ id: rectangle
+
+ anchors.centerIn: parent
+ color: "black"
+ border.color: "white"
+
+ width: alertContent.width + 60
+ height: alertContent.height + 60
+
+ property alias alertString: alert.text
+ property alias appNameString: appName.text
+ property int duration
+
+ Column {
+ id: alertContent
+ anchors.centerIn: parent
+ spacing: 20
+
+ Text {
+ id: appName
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: "white"
+ font.pointSize: 16
+ }
+
+ Row {
+ width: Constants.alertWidth
+ spacing: 20
+
+ Image {
+ id: alertLogo
+ source: "../res/warning.png"
+ }
+
+ Text {
+ id: alert
+ width: parent.width - alertLogo.width - parent.spacing
+ clip: true
+ color: "white"
+ font.pointSize: 16
+ }
+ }
+
+ Rectangle {
+ id: progressIndicator
+ color: "white"
+ height: 10
+ }
+
+ Column {
+ Item {
+ width: Constants.alertWidth
+ height: alertButton1.visible ? alertButton1.height : 0
+
+ SoftButton {
+ id: alertButton1
+ appId: alertWindow.appId
+ button: softButtons && softButtons.length > 0 ? softButtons[0] : undefined
+ anchors.left: parent.left
+ anchors.right: alertButton2.visible ? alertButton2.left : parent.right
+ width: Constants.alertWidth / 2
+ onPressed: { alertWindow.keep = true; }
+ onReleased: { alertWindow.keep = false; }
+ onKeepContext: {
+ alertWindow.restart();
+ sdlUI.onResetTimeout(appId, "UI.Alert")
+ }
+ onDefaultAction: { alertWindow.complete(Common.Result.SUCCESS); }
+ onStealFocus: {
+ contentLoader.go("views/SDLPlayerView.qml", appId);
+ alertWindow.complete(Common.Result.SUCCESS);
+ }
+ }
+ SoftButton {
+ id: alertButton2
+ appId: alertWindow.appId
+ button: softButtons && softButtons.length > 1 ? softButtons[1] : undefined
+ anchors.right: parent.right
+ width: Constants.alertWidth / 2
+ onPressed: { alertWindow.keep = true; }
+ onReleased: { alertWindow.keep = false; }
+ onKeepContext: {
+ alertWindow.restart();
+ sdlUI.onResetTimeout(appId, "UI.Alert")
+ }
+ onDefaultAction: { alertWindow.complete(Common.Result.SUCCESS); }
+ onStealFocus: {
+ contentLoader.go("views/SDLPlayerView.qml", appId);
+ alertWindow.complete(Common.Result.SUCCESS);
+ }
+ }
+ }
+ Item {
+ width: Constants.alertWidth
+ height: alertButton3.visible ? childrenRect.height : 0
+ SoftButton {
+ id: alertButton3
+ appId: alertWindow.appId
+ button: softButtons && softButtons.length > 2 ? softButtons[2] : undefined
+ anchors.left: parent.left
+ anchors.right: alertButton4.visible ? alertButton4.left : parent.right
+ width: Constants.alertWidth / 2
+ onPressed: { alertWindow.keep = true; }
+ onReleased: { alertWindow.keep = false; }
+ onKeepContext: {
+ alertWindow.restart();
+ sdlUI.onResetTimeout(appId, "UI.Alert")
+ }
+ onDefaultAction: { alertWindow.complete(Common.Result.SUCCESS); }
+ onStealFocus: {
+ contentLoader.go("views/SDLPlayerView.qml", appId);
+ alertWindow.complete(Common.Result.SUCCESS);
+ }
+ }
+ SoftButton {
+ id: alertButton4
+ appId: alertWindow.appId
+ button: softButtons && softButtons.length > 3 ? softButtons[3] : undefined
+ anchors.right: parent.right
+ width: Constants.alertWidth / 2
+ onPressed: { alertWindow.keep = true; }
+ onReleased: { alertWindow.keep = false; }
+ onKeepContext: {
+ alertWindow.restart();
+ sdlUI.onResetTimeout(appId, "UI.Alert")
+ }
+ onDefaultAction: { alertWindow.complete(Common.Result.SUCCESS); }
+ onStealFocus: {
+ contentLoader.go("views/SDLPlayerView.qml", appId);
+ alertWindow.complete(Common.Result.SUCCESS);
+ }
+ }
+ }
+ }
+ }
+
+ SequentialAnimation {
+ id: animation
+ PropertyAction { target: progressIndicator; property: "width"; value: alertContent.width }
+ PropertyAnimation {
+ id: shrinkProgressAnimation
+ target: progressIndicator
+ property: "width"
+ to: 0
+ duration: rectangle.duration
+ }
+ }
+ }
+
+ Timer {
+ id: timer
+ onTriggered: {
+ complete(Common.Result.SUCCESS)
+ }
+ }
+
+ function alert (alertStrings, duration, showIndicator, sButtons, applicationId) {
+ if (timer.running) { // we have alert already
+ var currentTime = new Date()
+ var timeFromLastAlert = currentTime - lastAlertTime
+ var timeLeft = timer.interval - timeFromLastAlert
+ var discreteInMilliseconds = 1000 // wish to round left time to integer seconds
+ var timeLeftRounded = discreteInMilliseconds * Math.ceil(timeLeft / discreteInMilliseconds)
+ return timeLeftRounded
+ }
+ else {
+ lastAlertTime = new Date();
+ appId = applicationId
+ rectangle.appNameString = dataContainer.getApplication(appId).appName;
+ softButtons = sButtons;
+ rectangle.alertString = alertStrings.join('\n');
+ timer.interval = duration;
+ rectangle.duration = duration;
+ timer.start();
+ show();
+
+ progressIndicator.visible = !!showIndicator
+ progressIndicator.width = alertContent.width
+ console.log("ProgressIndicator.width:", progressIndicator.width)
+ animation.start()
+ }
+ }
+
+ function show () {
+ dataContainer.activeAlert = true
+ dataContainer.applicationSavedContext = dataContainer.applicationContext
+ visible = true
+ }
+
+ function complete (reason, data) {
+ if (!keep) {
+ hide()
+ switch (reason) {
+ case Common.Result.SUCCESS:
+ DBus.sendReply(async, { __retCode: Common.Result.SUCCESS, __message: "UI.Alert" })
+ break
+ // For other cases
+ }
+ }
+ timer.stop()
+ }
+
+ function hide() {
+ console.debug(popUpName, "HIDE")
+ dataContainer.activeAlert = false
+ dataContainer.applicationContext = dataContainer.applicationSavedContext
+ visible = false
+ }
+
+ function restart() {
+ animation.restart();
+ timer.restart();
+ }
+
+ property bool keep: false
+
+ onKeepChanged: {
+ if (visible && !keep && !timer.running) {
+ hide()
+ }
+ }
+
+ onVisibleChanged: {
+ if (visible) {
+ dataContainer.activePopup.push(popUpName)
+ } else {
+ for (var i in dataContainer.activePopup) {
+ if (dataContainer.activePopup[i] === popUpName) {
+ dataContainer.activePopup.splice(i, 1)
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/ContextPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/ContextPopup.qml
new file mode 100644
index 000000000..a1ef64144
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/ContextPopup.qml
@@ -0,0 +1,56 @@
+/**
+ * @file ContextPopup.qml
+ * @brief Popup view with system context.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+
+PopUp {
+ function show() {
+ console.debug("enter")
+ if (!visible) { // must not increment counter if show() called for visible popup
+ visible = true;
+ dataContainer.popups++
+ }
+ console.debug("exit")
+ }
+
+ function hide() {
+ console.debug("enter")
+ console.debug(popUpName, "HIDE")
+ if (visible) { // must not decrement counter if hide() called for invisible popup
+ visible = false;
+ dataContainer.popups--
+ }
+ console.debug("exit")
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/ExitAllApplicationsPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/ExitAllApplicationsPopup.qml
new file mode 100644
index 000000000..17e5de50b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/ExitAllApplicationsPopup.qml
@@ -0,0 +1,81 @@
+/**
+ * @file ExitAllApplicationsPopup.qml
+ * @brief Popup "Exit all applications"
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+import "../controls"
+
+PopUp {
+ function complete(reason){
+ hide()
+ }
+
+ Item {
+ ListModel {
+ id: reasonExit
+
+ Component.onCompleted: {
+ for (var name in Common.ApplicationsCloseReason) {
+ append({name: name});
+ }
+ }
+ }
+ }
+
+ Column
+ {
+ anchors.centerIn: parent
+ Row {
+ Text {
+ text: "Select reason: "
+ color: "white"
+ }
+
+ ComboBox {
+ id: reasonComboBox
+ model: reasonExit
+ }
+ z: 1000
+ }
+ OvalButton {
+ text: "Exit"
+ anchors.horizontalCenter: parent.horizontalCenter
+ onClicked: {
+ sdlBasicCommunication.onExitAllApplications(Common.ApplicationsCloseReason[reasonComboBox.currentText])
+ hide()
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/InteractionPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/InteractionPopup.qml
new file mode 100644
index 000000000..7a5c53501
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/InteractionPopup.qml
@@ -0,0 +1,103 @@
+/**
+ * @file InteractionPopup.qml
+ * @brief Interaction popup view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+
+ContextPopup {
+ Text {
+ id: initialText
+ text: dataContainer.interactionModel.initialText
+ anchors.top: parent.top
+ anchors.topMargin: Constants.popupMargin
+ anchors.left: parent.left
+ anchors.leftMargin: Constants.popupMargin
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+
+ ListView {
+ anchors.top: initialText.bottom
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: Constants.popupMargin
+ model: dataContainer.interactionModel.choice
+ delegate: OvalButton {
+ width: parent.width
+ text: name
+ icon: image
+ onClicked: {
+ complete(Common.Result.SUCCESS, {"choiceID": id})
+ }
+ }
+ }
+
+ Item {
+ Timer {
+ id: timer
+ onTriggered: {
+ complete(Common.Result.TIMED_OUT)
+ }
+ }
+ }
+
+ function activate () {
+ console.debug("enter")
+ timer.interval = dataContainer.interactionModel.timeout
+ timer.start()
+ show()
+ console.debug("exit")
+ }
+
+ function complete (reason, data) {
+ console.debug("enter")
+ switch (reason) {
+ case Common.Result.SUCCESS:
+ DBus.sendReply(dataContainer.interactionModel.async, data)
+ break
+ case Common.Result.ABORTED:
+ DBus.sendReply(dataContainer.interactionModel.async, { __retCode: Common.Result.ABORTED })
+ break
+ case Common.Result.TIMED_OUT:
+ DBus.sendReply(dataContainer.interactionModel.async, { __retCode: Common.Result.TIMED_OUT })
+ break
+ }
+ timer.stop()
+ hide()
+ console.debug("exit")
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/PerformAudioPassThruPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/PerformAudioPassThruPopup.qml
new file mode 100644
index 000000000..e65519d36
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/PerformAudioPassThruPopup.qml
@@ -0,0 +1,149 @@
+/**
+ * @file PerformAudioPassThruPopup.qml
+ * @brief Popup for audio pass thru
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+import "../controls"
+
+ContextPopup {
+ property variant async
+
+ function showAudioPassThru(){
+ console.debug("entered")
+ dataContainer.uiAudioPassThru.running = true
+ show()
+ if (dataContainer.uiAudioPassThru.timeout) {
+ timer.start()
+ }
+ console.debug("exited")
+ }
+
+ function complete(reason){
+ console.debug("enter", reason)
+ timer.stop()
+ dataContainer.uiAudioPassThru.timeout = 0
+ dataContainer.uiAudioPassThru.running = false
+ switch (reason) {
+ case Common.Result.ABORTED:
+ console.debug("exit with abort")
+ DBus.sendError(async, Common.Result.ABORTED)
+ break;
+ case Common.Result.SUCCESS:
+ console.debug("exit with success")
+ DBus.sendReply(async, {})
+ break;
+ case Common.Result.RETRY:
+ console.debug("exit with retry")
+ DBus.sendError(async, Common.Result.RETRY)
+ break;
+ }
+ hide()
+ }
+
+
+ Column {
+ spacing: Constants.generalSpacing
+ anchors.centerIn: parent
+ Timer {
+ id: timer
+ interval: dataContainer.uiAudioPassThru.timeout
+ onTriggered: {
+ complete(Common.Result.SUCCESS)
+ }
+ }
+
+ Text {
+ id: appNameText
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: dataContainer.uiAudioPassThru.appName
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize * 2
+ }
+
+ Row {
+ spacing: Constants.generalSpacing
+ Image {
+ source: "../res/controlButtons/vrImage.png"
+ }
+
+ Column {
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: dataContainer.uiAudioPassThru.firstLine
+ color: Constants.audioPassThruTextColor
+ font.pixelSize: Constants.fontSize
+ }
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: dataContainer.uiAudioPassThru.secondLine
+ color: Constants.audioPassThruTextColor
+ font.pixelSize: Constants.fontSize
+ }
+ }
+ }
+
+
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: Constants.generalSpacing
+
+ OvalButton {
+ text: "Retry"
+ fontSize: Constants.fontSize
+ onClicked: {
+ complete(Common.Result.RETRY)
+ }
+ }
+
+ OvalButton {
+ text: "Done"
+ fontSize: Constants.fontSize
+ onClicked: {
+ complete(Common.Result.SUCCESS)
+ }
+ }
+ }
+
+ OvalButton {
+ text: "Close"
+ anchors.horizontalCenter: parent.horizontalCenter
+ onClicked: {
+ console.debug("enter")
+ complete(Common.Result.ABORTED)
+ console.debug("exit")
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/PopUp.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/PopUp.qml
new file mode 100644
index 000000000..07f8c9801
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/PopUp.qml
@@ -0,0 +1,94 @@
+/**
+ * @file PopUp.qml
+ * @brief General popup view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+Item {
+ default property alias content: content.children
+ property int padding: Constants.popUpPadding
+ property string popUpName
+
+ visible: false
+
+ width: Constants.popupWidth
+ height: Constants.popupHeigth
+
+ MouseArea { anchors.fill: parent }
+
+ Rectangle {
+ width: parent.width - padding / 2
+ height: parent.height - padding / 2
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: Constants.secondaryColor
+ border.width: 1
+ border.color: Constants.popUpBorderColor
+ radius: padding
+ Rectangle {
+ id: content
+ width: parent.width - padding
+ height: parent.height - padding
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: Constants.transparentColor
+ }
+ }
+
+ onVisibleChanged: {
+ if (popUpName) {
+ if (visible) {
+ dataContainer.activePopup.push(popUpName)
+ } else {
+ for (var i in dataContainer.activePopup) {
+ if (dataContainer.activePopup[i] === popUpName) {
+ dataContainer.activePopup.splice(i, 1)
+ }
+ }
+ }
+ }
+ }
+
+ function show() {
+ console.debug("enter");
+ visible = true;
+ console.debug("exit");
+ }
+
+ function hide() {
+ console.debug("enter");
+ visible = false;
+ console.debug("exit");
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/SliderPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/SliderPopup.qml
new file mode 100644
index 000000000..6dcd222ed
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/SliderPopup.qml
@@ -0,0 +1,214 @@
+/**
+ * @file ExitAllApplicationsPopup.qml
+ * @brief Popup "Exit all applications"
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+import "../controls"
+
+ContextPopup {
+ property variant async
+ property int position: 1
+ /**
+ * Test Support Section
+ */
+ property int resultCode: -1
+ signal onReady
+ /**
+ * Test Support Section End
+ */
+
+ function showSlider(){
+ console.debug("enter")
+
+ dataContainer.uiSlider.running = true
+ dataContainer.applicationSavedContext = dataContainer.applicationContext
+ if(dataContainer.uiSlider.footer.length === 0 || dataContainer.uiSlider.position === 0 ) {
+ footerText.text = ""
+ } else {
+ footerText.text = dataContainer.uiSlider.footer.length === 1 ? dataContainer.uiSlider.footer[0] : dataContainer.uiSlider.footer[dataContainer.uiSlider.position - 1]
+ }
+ position = dataContainer.uiSlider.position
+ show()
+ timer.start()
+ onReady()
+ console.debug("exit")
+ }
+
+ function complete(reason){
+ console.debug("enter reason = ", reason)
+ timer.stop()
+ dataContainer.applicationContext = dataContainer.applicationSavedContext
+ dataContainer.uiSlider.running = false
+ switch(reason) {
+ case Common.Result.ABORTED:
+ console.debug("aborted position is", position)
+ resultCode = Common.Result.ABORTED
+ DBus.sendReply(async, {__retCode: resultCode, sliderPosition: position})
+ break
+ case Common.Result.SUCCESS:
+ console.debug("send position", position)
+ resultCode = Common.Result.SUCCESS
+ dataContainer.uiSlider.position = position
+ DBus.sendReply(async, {sliderPosition:position})
+ break
+ default:
+ break
+ }
+ hide()
+ position = 1
+ console.debug("exit")
+ }
+
+
+ Column
+ {
+ spacing: Constants.generalSpacing
+ anchors.centerIn: parent
+ Timer {
+ id: timer
+ interval: dataContainer.uiSlider.timeout
+ onTriggered: {
+ console.debug("triggered")
+ complete(Common.Result.SUCCESS)
+ }
+ }
+
+ Text {
+ id: appNameText
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: dataContainer.uiSlider.appName
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize * 2
+ }
+
+ Text {
+ id: headerText
+ width: borderRectangle.width
+ elide: Text.ElideRight
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: dataContainer.uiSlider.header
+ color: Constants.sliderTextColor
+ font.pixelSize: Constants.fontSize * 2
+ }
+
+ Rectangle {
+ id: borderRectangle
+ width: Constants.sliderBarWidth
+ height: Constants.sliderBarHeight
+ anchors.horizontalCenter: parent.horizontalCenter
+ border.color: Constants.sliderBarBorderColor
+ border.width: Constants.sliderBarBorderWidth
+ radius: Constants.sliderBarRadius
+ color: "black"
+
+ Rectangle {
+ id: rectangle
+ color: Constants.sliderBarFillColor
+ height: parent.height
+ border.color: parent.border.color
+ border.width: parent.border.width
+ radius: parent.radius
+
+ onVisibleChanged: {
+ var tickWidth = borderRectangle.width / dataContainer.uiSlider.numTicks
+ rectangle.width = dataContainer.uiSlider.position * tickWidth
+ }
+ }
+
+ MouseArea{
+ id: mouseArea
+ anchors.fill: parent
+ onClicked: {
+ onPositionChanged(mouse)
+ }
+
+ onPositionChanged: {
+ if(mouseX <= 0){
+ rectangle.width = borderRectangle.width / dataContainer.uiSlider.numTicks
+ position = 1
+ }
+
+ if(mouseX > borderRectangle.width) {
+ rectangle.width = borderRectangle.width
+ position = dataContainer.uiSlider.numTicks
+ }
+
+ if(mouseX > 0 && mouseX < borderRectangle.width) {
+ var tickWidth = borderRectangle.width / dataContainer.uiSlider.numTicks
+ position = Math.ceil(mouseX / tickWidth)
+ rectangle.width = position * tickWidth
+ }
+
+ if(dataContainer.uiSlider.footer.length > 1){
+ footerText.text = dataContainer.uiSlider.footer[position - 1]
+ }
+ }
+ }
+ }
+
+ Text {
+ id:footerText
+ width: borderRectangle.width
+ elide: Text.ElideRight
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: ""
+ color: Constants.sliderTextColor
+ font.pixelSize: Constants.fontSize * 2
+ }
+
+ OvalButton {
+ text: "Close"
+ anchors.horizontalCenter: parent.horizontalCenter
+ onClicked: {
+ console.debug("enter")
+ complete(Common.Result.ABORTED)
+ console.debug("exit")
+ }
+ }
+ }
+
+ function getTimer() {
+ return timer
+ }
+ function getBackButton() {
+ return backButton
+ }
+ function getFooterText() {
+ return footerText
+ }
+ function getBorderRectangle() {
+ return borderRectangle
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/TBTClientStatePopUp.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/TBTClientStatePopUp.qml
new file mode 100644
index 000000000..9a833b19e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/TBTClientStatePopUp.qml
@@ -0,0 +1,71 @@
+/**
+ * @file TBTClientStatePopUp.qml
+ * @brief Popup view for TBT interface (list of states).
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+PopUp {
+ Item {
+ ListModel {
+ id: tbtState
+
+ Component.onCompleted: {
+ for (var name in Common.TBTState) {
+ append({name: name});
+ }
+ }
+ }
+ }
+ Text {
+ text: "TBT Client State"
+ verticalAlignment: Text.AlignVCenter
+ anchors.right: parent.right
+ anchors.left: parent.left
+ anchors.top: parent.top
+ color: Constants.primaryColor
+ }
+ ComboBox {
+ id: comboBox
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ model: tbtState
+ onCurrentTextChanged: {
+ console.log("Send signal onTBTClientState:", currentText);
+ sdlNavigation.onTBTClientState(Common.TBTState[currentText]);
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/TTSPopUp.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/TTSPopUp.qml
new file mode 100644
index 000000000..ce64a6be8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/TTSPopUp.qml
@@ -0,0 +1,79 @@
+/**
+ * @file TTSPopUp.qml
+ * @brief Popup view for TTS
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+PopUp {
+ height: Constants.ttsPopUpHeight
+ width: Constants.ttsPopUpWidth
+ padding: Constants.ttsPopUpPadding
+ property variant async
+
+ ScrollableText {
+ id: text
+ anchors.fill: parent
+ }
+
+ resources: [
+ Timer {
+ id: timer
+ interval: Constants.ttsSpeakTime
+ onTriggered: deactivate()
+ }
+ ]
+
+ function activate(message) {
+ console.debug("Activate TTS popup:", message);
+ dataContainer.activeTTS = true;
+ text.text = message;
+ show();
+ timer.restart();
+ console.debug("Exit");
+ }
+
+ function deactivate() {
+ console.debug("Deactivate TTS popup");
+ dataContainer.activeTTS = false;
+ text.text = '';
+ timer.stop();
+ hide();
+ DBus.sendReply(async, {});
+ async = null;
+ console.debug("Exit");
+ }
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VRHelpPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VRHelpPopup.qml
new file mode 100644
index 000000000..8718c8cd6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VRHelpPopup.qml
@@ -0,0 +1,92 @@
+/**
+ * @file VRHelpPopup.qml
+ * @brief Popup view for VR help
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+
+PopUp {
+ Text {
+ id: title
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: Constants.popupMargin
+ text: "VR HELP" // default title
+ font.pixelSize: Constants.titleFontSize
+ color: Constants.primaryColor
+ }
+
+ ScrollableListView {
+ anchors.top: title.bottom
+ anchors.bottom: closeButton.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: Constants.popupMargin
+
+ model: dataContainer.vrHelp
+
+ delegate: Row {
+ spacing: Constants.iconItemListSpacing
+ Icon {
+ source: model.icon
+ width: Constants.iconItemListSize
+ height: Constants.iconItemListSize
+ }
+
+ Text {
+ text: model.text
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize
+ }
+ }
+ }
+
+ OvalButton {
+ id: closeButton
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.margins: Constants.popupMargin
+ width: Constants.ovalButtonWidth
+ text: "Close"
+ onClicked: complete()
+ }
+
+ property alias title: title.text
+
+ function complete(reason, data) {
+ hide()
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VRPopUp.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VRPopUp.qml
new file mode 100644
index 000000000..8a8be54be
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VRPopUp.qml
@@ -0,0 +1,92 @@
+/**
+ * @file VRPopUp.qml
+ * @brief Popup view for VR interface (list commands).
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+import "../views"
+import "../controls"
+
+PopUp {
+ Text {
+ id: title
+ anchors.left: parent.left
+ anchors.top: parent.top
+ height: voice.height
+ width: parent.width - voice.width
+ text: "Speak the command"
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+
+ Image {
+ id: voice
+ anchors.top: parent.top
+ anchors.right: parent.right
+ source: "../res/controlButtons/vrImage.png"
+ }
+
+ ScrollableListView {
+ anchors.bottomMargin: Constants.popupMargin
+ anchors.rightMargin: Constants.popupMargin
+ anchors.leftMargin: Constants.popupMargin
+ anchors.top: voice.bottom
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+
+ model: dataContainer.vrCommands
+
+ delegate: OvalButton {
+ width: parent.width
+ text: command
+ onClicked: {
+ sdlVR.onCommand(cmdID, appID === 0 ? undefined : appID);
+ }
+ }
+ }
+
+ function activate() {
+ dataContainer.activeVR = true;
+ sdlVR.started();
+ show();
+ }
+
+ function complete(reason) {
+ dataContainer.activeVR = false;
+ sdlVR.stopped();
+ hide();
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VehicleInfoPopUp.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VehicleInfoPopUp.qml
new file mode 100644
index 000000000..f4582c28c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/popups/VehicleInfoPopUp.qml
@@ -0,0 +1,111 @@
+/**
+ * @file VIPopUp.qml
+ * @brief Pop up window with information about vehicle.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+import "../controls"
+
+PopUp {
+ //TODO{ALeshin}: Redraw this window as ListView or Column, when we'll get requirements
+ Column {
+ anchors.fill: parent
+ Text {
+ id: viText
+ width: parent.width
+ height: 1/5 * parent.height
+ text: "Vehicle Information"
+ font.pixelSize: Constants.fontSize
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ color: Constants.primaryColor
+ }
+
+ Row {
+ height: 1/5 * parent.height
+ width: parent.width
+
+ Text {
+ width: 1/4 * parent.width
+ height: 1/5 * parent.height
+ anchors.verticalCenter: parent.verticalCenter
+ text: "PRNDL: "
+ font.pixelSize: Constants.fontSize
+ verticalAlignment: Text.AlignVCenter
+ color: Constants.primaryColor
+ }
+
+ ComboBox {
+ anchors.verticalCenter: parent.verticalCenter
+ id: comboBox
+ model: prndlList
+
+ onCurrentIndexChanged: {
+ console.debug("PRNDL:", currentIndex)
+ dataContainer.vehicleInfoModel.prndl = model.get(currentIndex).id
+ }
+
+ textRole: "name"
+ ListModel {
+ id: prndlList
+ Component.onCompleted: {
+ append({ id: -1, name: "<NO DATA (prndl)>" })
+ for (var name in Common.PRNDL) {
+ append({ id: Common.PRNDL[name], name: name });
+ }
+ }
+ }
+ }
+ z: 1000
+ }
+
+ Text {
+ width: parent.width
+ height: 1/5 * parent.height
+ text: "ECU 1: " + dataContainer.vehicleInfoModel.ecuDIDData.data1
+ font.pixelSize: Constants.fontSize
+ verticalAlignment: Text.AlignVCenter
+ color: Constants.primaryColor
+ }
+
+ Text {
+ width: parent.width
+ height: 1/5 * parent.height
+ text: "ECU 2: " + dataContainer.vehicleInfoModel.ecuDIDData.data2
+ font.pixelSize: Constants.fontSize
+ verticalAlignment: Text.AlignVCenter
+ color: Constants.primaryColor
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/qml_model.qmlproject b/SDL_Core/src/components/qt_hmi/qml_model_qt4/qml_model.qmlproject
new file mode 100644
index 000000000..ea820e801
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/qml_model.qmlproject
@@ -0,0 +1,20 @@
+/* File generated by Qt Creator, version 2.7.0 */
+
+import QmlProject 1.1
+
+Project {
+ mainFile: "MainWindow.qml"
+
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "../res"
+ }
+ /* List of plugin directories passed to QML runtime */
+ importPaths: [ "." ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/AMPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/AMPlayerView.qml
new file mode 100644
index 000000000..4a2916888
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/AMPlayerView.qml
@@ -0,0 +1,48 @@
+/**
+ * @file AMPlayerView.qml
+ * @brief AM player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ RadioPlayer {
+ id: amRadioPlayer
+ anchors.fill: parent
+ radioType: "AM"
+ radioName: "AM Radio"
+
+ playerState: dataContainer.amPlayerState
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ApplicationListView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ApplicationListView.qml
new file mode 100644
index 000000000..19ecf4ca4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ApplicationListView.qml
@@ -0,0 +1,123 @@
+/**
+ * @file ApplicationListView.qml
+ * @brief Application list view
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models"
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ Column {
+ anchors.fill: parent
+ Item {
+ // top 1/4 of screen
+ width: parent.width
+ height: 1/4 * parent.height
+
+ PagedFlickable {
+ anchors.verticalCenter: parent.verticalCenter
+ width: parent.width
+ elementWidth: Constants.ovalButtonWidth
+ snapTo: elementWidth + spacing
+ spacing: (width - 4 * elementWidth) / 3
+
+ OvalButton {
+ text: "Find New Apps"
+ }
+
+ OvalButton {
+ text: "Change device"
+ onReleased: contentLoader.go("./views/ChangeDeviceView.qml")
+ }
+
+ OvalButton {
+ text: "911 Assist"
+ }
+
+ OvalButton {
+ text: "Vehicle Health Report"
+ }
+
+ OvalButton {
+ text: "Install applications/Up"
+ }
+ }
+ }
+
+ Item {
+ height: parent.height / 2
+ width: parent.width
+
+ ScrollableListView {
+ id: applicationListView
+ anchors.fill: parent
+ model: dataContainer.applicationList
+
+ delegate: Item {
+ width: parent.width
+ height: Math.max(applicationName.height, appIcon.height)
+ Image {
+ id: appIcon
+ source: icon
+ height: Constants.appListIconSize
+ width: height
+ }
+ ClickableText {
+ id: applicationName
+ text: appName
+ defaultColor: Constants.primaryColor
+ pressedColor: Constants.primaryColorPressed
+ font.pixelSize: Constants.appListFontSize
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: appIcon.right
+ anchors.leftMargin: Constants.margin
+ onClicked: {
+ dataContainer.setCurrentApplication(appId)
+ dataContainer.currentApplication.isMediaApplication ? contentLoader.go("./views/SDLPlayerView.qml", dataContainer.currentApplication.appId)
+ : contentLoader.go("./views/SDLNonMediaView.qml", dataContainer.currentApplication.appId)
+ }
+ }
+ }
+ }
+ }
+
+ Item {
+ // bottom 1/4 of screen
+ width: parent.width
+ height: 1/4 * parent.height
+
+ BackButton { anchors.centerIn: parent }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/BTPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/BTPlayerView.qml
new file mode 100644
index 000000000..0a5390e92
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/BTPlayerView.qml
@@ -0,0 +1,62 @@
+/**
+ * @file BTPlayerView.qml
+ * @brief FM player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ MediaPlayer {
+ id: btPlayer
+ playerName: "BT Audio"
+ anchors.fill: parent
+
+ playerState: dataContainer.btPlayerState
+ image: playerState.albumImage
+
+ buttons: [
+ OvalButton {
+ text: btPlayer.playerName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ },
+
+ OvalButton {
+ text: "Browse"
+ fontSize: Constants.fontSize
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/CDPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/CDPlayerView.qml
new file mode 100644
index 000000000..f582ff2f7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/CDPlayerView.qml
@@ -0,0 +1,63 @@
+/**
+ * @file CDPlayerView.qml
+ * @brief CD player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ MediaPlayer {
+ id: cdPlayer
+ playerName: "CD"
+ anchors.fill: parent
+ image: playerState.albumImage
+ playerState: dataContainer.cdPlayerState
+
+ buttons: [
+ OvalButton {
+ text: cdPlayer.playerName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ },
+
+ OvalButton {
+ text: "Browse"
+ fontSize: Constants.fontSize
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/CarMenuGridView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/CarMenuGridView.qml
new file mode 100644
index 000000000..9b04b1bad
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/CarMenuGridView.qml
@@ -0,0 +1,54 @@
+/**
+ * @file CarMenuGridView.qml
+ * @brief Car menu screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+import "../models"
+import "../controls"
+
+GridMenu {
+ id: menu
+ model: CarMenuModel { }
+ delegate: GridItem {
+ width: menu.width / menu.columnsOnPage
+ height: menu.height / menu.rows
+ ClickableImage {
+ anchors.centerIn: parent
+ source: icon
+ onClicked: {
+ if(qml !== "") {
+ contentLoader.go(qml)
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ChangeDeviceView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ChangeDeviceView.qml
new file mode 100644
index 000000000..643b07450
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ChangeDeviceView.qml
@@ -0,0 +1,102 @@
+/**
+ * @file ChangeDeviceView.qml
+ * @brief Screen view with list of available devices.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models"
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ Item {
+ anchors.fill: parent
+
+ Item {
+ // 3/4 top screen
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+
+ Text {
+ id: searchDeviceText
+ anchors.left: parent.left
+ anchors.top: parent.top
+ height: 1/4 * parent.height
+ width: parent.width
+ color: Constants.primaryColor
+ font.pixelSize: Constants.titleFontSize
+ text: "Devices available:"
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ ListView {
+ id: changeDeviceListView
+ anchors.left: parent.left
+ anchors.top: searchDeviceText.bottom
+ model: dataContainer.deviceList
+ width:parent.width
+ height:parent.height - searchDeviceText.height
+
+ delegate: Text {
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ sdlBasicCommunication.onDeviceChosen({ name: name, id: devid });
+ sdlBasicCommunication.onFindApplications({ name: name, id: devid })
+ contentLoader.go("./views/ApplicationListView.qml")
+ }
+ }
+ text: name
+ color: Constants.primaryColor
+ font.pixelSize: Constants.titleFontSize
+ }
+ }
+ }
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ BackButton { anchors.centerIn: parent }
+ }
+
+ Component.onCompleted: {
+ console.log("ChangeDeviceView Component.onCompleted enter");
+ sdlBasicCommunication.onStartDeviceDiscovery();
+ console.log("ChangeDeviceView Component.onCompleted exit");
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ClimateControlView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ClimateControlView.qml
new file mode 100644
index 000000000..01c289b13
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ClimateControlView.qml
@@ -0,0 +1,94 @@
+/**
+ * @file ClimateControlView.qml
+ * @brief Screen view of climat menu.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+
+GeneralView {
+ Item {
+ id: climatMenu
+ anchors.fill: parent
+
+ Item {
+ height: parent.height
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+
+ Column {
+ id: leftItem
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 1/4*parent.width - useThisToGetButtonSize.width
+
+ Row {
+ ClimateControlBtn {name: "heated_seat"}
+ ClimateControlBtn {name: "heated_wheel"}
+ }
+ Row {
+ ClimateControlBtn {name: "AC"}
+ ClimateControlBtn {name: "headed_dash"}
+ }
+ }
+
+ Column {
+ id: centralItem
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+
+ ClimateControlBtn {id: useThisToGetButtonSize; name: "defrost"; state: "on"}
+ ClimateControlBtn {name: "face"; state: "on"}
+ ClimateControlBtn {name: "feet"}
+ }
+
+ Row {
+ id: rightItem
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: 1/4*parent.width - useThisToGetButtonSize.width
+
+ ClimateControlBtn {
+ anchors.verticalCenter: parent.verticalCenter
+ txt: "Dual"
+ state: "on"
+ }
+
+ Column {
+ ClimateControlBtn { name: "heated_seat" }
+ ClimateControlBtn { name: "AC" }
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ContactsListView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ContactsListView.qml
new file mode 100644
index 000000000..a2b2be590
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ContactsListView.qml
@@ -0,0 +1,118 @@
+/**
+ * @file ContactsListView.qml
+ * @brief Contact list screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models"
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ function setCurrent(firstLetter){
+ for(var i = 0; i < contactsListView.count; i ++) {
+ if (contactsListView.model.get(i).name[0].toUpperCase() === firstLetter) {
+ contactsListView.positionViewAtIndex(i, ListView.Beginning)
+ break;
+ }
+ }
+ }
+ Component.onCompleted: setCurrent(dataContainer.contactsFirstLetter)
+
+ Item {
+ // 3/4 top screen
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+
+ ScrollableListView {
+ id: contactsListView
+ anchors.fill: parent
+ clip: true
+ spacing: 1/2 * Constants.fontSize
+ model: ContactsListModel { }
+
+ section.property: "name"
+ section.criteria: ViewSection.FirstCharacter
+ section.delegate: Text {
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize
+ text: section.toUpperCase()
+ }
+
+ delegate: Item {
+ anchors.left: parent.left
+ width: parent.width - Constants.scrollBarWidth
+ height: typeText.height
+
+ Text {
+ id: contactName
+ anchors.left: parent.left
+ text: name
+ width: Constants.contactListNameFieldSize * parent.width
+ color: Constants.contactTextColor
+ font.pixelSize: Constants.fontSize
+ elide: Text.ElideRight
+ }
+ Text {
+ id: phoneText
+ anchors.left: contactName.right
+ width: Constants.contactListPhoneFieldSize * parent.width
+ text: phone
+ color: Constants.contactTextColor
+ font.pixelSize: Constants.fontSize
+ horizontalAlignment: Text.AlignHCenter
+ }
+ Text {
+ id: typeText
+ anchors.right: parent.right
+ width: Constants.contactListDescriptionFieldSize * parent.width
+ text: type
+ color: Constants.contactTextColor
+ font.pixelSize: Constants.fontSize
+ horizontalAlignment: Text.AlignHCenter
+ }
+ }
+ }
+ }
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ BackButton { anchors.centerIn: parent }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/FMPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/FMPlayerView.qml
new file mode 100644
index 000000000..5c3ca6a5a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/FMPlayerView.qml
@@ -0,0 +1,121 @@
+/**
+ * @file FMPlayerView.qml
+ * @brief FM player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ RadioPlayer {
+ id: fmRadioPlayer
+ anchors.fill: parent
+ radioType: "FM"
+ radioName: "FM Radio"
+
+ playerState: dataContainer.fmPlayerState
+
+ property int hdButtonValue: 1
+
+ buttonHD: [
+ Image {
+ id: hdButton
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ source: "../res/buttons/long_oval_btn.png"
+ property string textColor: Constants.primaryColor
+
+ Row {
+ anchors.centerIn: parent
+ spacing: (hdButton.width - hdLogo.width - one.width - two.width - three.width - four.width) / 10
+
+ Image {
+ id: hdLogo
+ anchors.verticalCenter: parent.verticalCenter
+ source:"../res/hd_logo_on.png"
+ }
+
+ Text {
+ id: one
+ anchors.verticalCenter: parent.verticalCenter
+ text: "1"
+ color: fmRadioPlayer.hdButtonValue === 1 ? "white" : hdButton.textColor
+ font.pixelSize: Constants.fontSize
+ }
+
+ Text {
+ id: two
+ anchors.verticalCenter: parent.verticalCenter
+ text: "2"
+ color: fmRadioPlayer.hdButtonValue === 2 ? "white" : hdButton.textColor
+ font.pixelSize: Constants.fontSize
+ }
+
+ Text {
+ id: three
+ anchors.verticalCenter: parent.verticalCenter
+ text: "3"
+ color: fmRadioPlayer.hdButtonValue === 3 ? "white" : hdButton.textColor
+ font.pixelSize: Constants.fontSize
+ }
+
+ Text {
+ id: four
+ anchors.verticalCenter: parent.verticalCenter
+ text: "4"
+ color: fmRadioPlayer.hdButtonValue === 4 ? "white" : hdButton.textColor
+ font.pixelSize: Constants.fontSize
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ hdLogo.source = "../res/hd_logo_off.png"
+ hdButton.source = "../res/buttons/long_oval_pressed_btn.png"
+ hdButton.textColor = Constants.secondaryColor
+
+ }
+ onReleased: {
+ hdLogo.source = "../res/hd_logo_on.png"
+ hdButton.source = "../res/buttons/long_oval_btn.png"
+ hdButton.textColor = Constants.primaryColor
+ fmRadioPlayer.hdButtonValue === 4 ? fmRadioPlayer.hdButtonValue = 1 : fmRadioPlayer.hdButtonValue++
+ }
+ }
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/GeneralView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/GeneralView.qml
new file mode 100644
index 000000000..40f809299
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/GeneralView.qml
@@ -0,0 +1,45 @@
+/**
+ * @file GeneralView.qml
+ * @brief Base view class. Defines properties and behavior common for all views
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+
+Item {
+ /// HMI context view is related to
+ property int systemContext: Common.SystemContext.SYSCTXT_MAIN
+ /// True if view is in application context
+ property bool applicationContext: false
+ /// View category for AppDeactivated notification (reason)
+ property int category: Common.DeactivateReason.GENERAL
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/GridMenu.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/GridMenu.qml
new file mode 100644
index 000000000..4cc2f4f61
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/GridMenu.qml
@@ -0,0 +1,86 @@
+/**
+ * @file GridMenu.qml
+ * @brief Parent class for main menu.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+
+GeneralView {
+ id: main
+ property alias model: repeater.model
+ property alias delegate: repeater.delegate
+ property alias rows: grid.rows
+ property int columnsOnPage: Constants.menuColumnCount
+
+ Flickable {
+ id: flicker
+ anchors.fill: parent
+ contentWidth: grid.width
+ flickableDirection: Flickable.HorizontalFlick
+
+ Grid {
+ id: grid
+ anchors.centerIn: parent
+ rows: Constants.menuRowCount
+ columns: Math.ceil(model.count / rows)
+ flow: Grid.TopToBottom
+ Repeater {
+ id: repeater
+ }
+ }
+
+ property int snapTo: width / parent.columnsOnPage
+ onMovementEnded: {
+ var rest = flicker.contentX % snapTo
+ var time = 0.25
+ if (rest > flicker.snapTo / 2) { rest = rest - flicker.snapTo }
+ var vel = 2 * rest / time
+ flickDeceleration = Math.abs(vel) / time
+ flick(vel, 0)
+ flickDeceleration = 1500
+ }
+ }
+
+ Pager {
+ id: pager
+ space: 10
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+ anchors.topMargin: Constants.margin
+
+ pages: Math.ceil(grid.columns / parent.columnsOnPage)
+ activePage: Internal.activePageChoose(flicker, pager.pages)
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/HardwareButtonsView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/HardwareButtonsView.qml
new file mode 100644
index 000000000..83f1ffcd0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/HardwareButtonsView.qml
@@ -0,0 +1,173 @@
+/**
+ * @file HardwareButtonsView.qml
+ * @brief Area of screen responsible for hardware buttons
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+
+Rectangle {
+ height: row.height + row.anchors.margins
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.panelColor
+
+ signal buttonDown(string name)
+ signal buttonUp(string name)
+
+ function pressButton(name) {
+ buttonDown(name)
+ }
+
+ function longPressButton(name) {
+ console.log("long press " + name)
+ }
+
+ function releaseButton(name) {
+ buttonUp(name)
+ }
+
+ Row {
+ id: row
+ spacing: Constants.panelPadding
+ anchors.centerIn: parent
+ anchors.margins: Constants.panelPadding
+
+ PowerSwitchButton {anchors.verticalCenter: parent.verticalCenter}
+
+ MaskedButton {
+ name: "vr"
+ anchors.verticalCenter: parent.verticalCenter
+ onReleased: {
+ console.debug("Clicked VR button");
+ if (!dataContainer.activeVR) {
+ vrPopUp.activate();
+ } else {
+ vrPopUp.complete();
+ }
+ }
+ }
+
+ ArrowKeys {anchors.verticalCenter: parent.verticalCenter}
+
+ Grid {
+ columns: 5
+ rows: 2
+ spacing: 5
+ anchors.verticalCenter: parent.verticalCenter
+ Repeater {
+ model: 10
+ delegate : Rectangle {
+ width: 40
+ height: 40
+ radius: 5
+ gradient: Gradient {
+ GradientStop
+ {
+ position: 0.0;
+ color: "#2c2c2c"
+ Behavior on position {
+ NumberAnimation { duration: 80 }
+ }
+ }
+
+ GradientStop
+ {
+ position: 1.0;
+ color: "black"
+ Behavior on position {
+ NumberAnimation { duration: 80 }
+ }
+ }
+ }
+
+ Text {
+ text: (1 + index) % 10
+ font.pixelSize: 30
+ color: Constants.panelTextColor
+ anchors.centerIn: parent
+ }
+
+ Timer {
+ id: timer
+ interval: Constants.presetButtonTimer
+ repeat: false
+ triggeredOnStart: false
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ property bool clickProcessed
+ onPressed: {
+ parent.gradient.stops[0].position = 1.0
+ parent.gradient.stops[1].position = 0.0
+ clickProcessed = false
+ timer.start()
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + index, Common.ButtonEventMode.BUTTONDOWN, undefined)
+ }
+ onReleased: {
+ parent.gradient.stops[0].position = 0.0
+ parent.gradient.stops[1].position = 1.0
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + index, Common.ButtonEventMode.BUTTONUP, undefined)
+ timer.stop()
+ if (!clickProcessed) {
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + index, Common.ButtonPressMode.SHORT, undefined)
+ }
+ }
+ Connections {
+ target: timer
+ onTriggered: {
+ if(!mouseArea.clickProcessed) {
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + index, Common.ButtonPressMode.LONG, undefined)
+ mouseArea.clickProcessed = true
+ }
+ }
+ }
+ }
+
+ Component.onCompleted: {
+ settingsContainer.buttonCapabilities.push(
+ {
+ name: Common.ButtonName.PRESET_0 + index,
+ upDownAvailable: true,
+ shortPressAvailable: true,
+ longPressAvailable: true
+ });
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/IPodPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/IPodPlayerView.qml
new file mode 100644
index 000000000..4d9b8091d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/IPodPlayerView.qml
@@ -0,0 +1,61 @@
+/**
+ * @file IPodPlayerView.qml
+ * @brief IPod player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ MediaPlayer {
+ id: ipodPlayer
+ playerName: "iPod"
+ anchors.fill: parent
+ image: playerState.albumImage
+ playerState: dataContainer.ipodPlayerState
+
+ buttons: [
+ OvalButton {
+ text: ipodPlayer.playerName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ },
+
+ OvalButton {
+ text: "Browse"
+ fontSize: Constants.fontSize
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/LineInPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/LineInPlayerView.qml
new file mode 100644
index 000000000..eca575d6b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/LineInPlayerView.qml
@@ -0,0 +1,61 @@
+/**
+ * @file LineInPlayerView.qml
+ * @brief LineIn player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ MediaPlayer {
+ id: lineInPlayer
+ playerName: "LineIn"
+ anchors.fill: parent
+ image: playerState.albumImage
+ playerState: dataContainer.linePlayerState
+
+ buttons: [
+ OvalButton {
+ text: lineInPlayer.playerName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ },
+
+ OvalButton {
+ text: "Browse"
+ fontSize: Constants.fontSize
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MainMenuView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MainMenuView.qml
new file mode 100644
index 000000000..321a67831
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MainMenuView.qml
@@ -0,0 +1,54 @@
+/**
+ * @file MainMenuView.qml
+ * @brief Main menu screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+import "../models"
+import "../controls"
+
+GridMenu {
+ id: menu
+ model: MainMenuListModel { }
+ delegate: GridItem {
+ width: menu.width / menu.columnsOnPage
+ height: menu.height / menu.rows
+ ClickableImage {
+ anchors.centerIn: parent
+ source: icon
+ onClicked: {
+ if(qml !== "") {
+ contentLoader.go(qml)
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MediaClockView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MediaClockView.qml
new file mode 100644
index 000000000..183798eb4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MediaClockView.qml
@@ -0,0 +1,73 @@
+/**
+ * @file MediaClockView.qml
+ * @brief Media clock view
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+
+Item {
+ property alias time: timeText.text
+ Text {
+ id: timeText
+ anchors.left: parent.left
+ width: 1/10 * parent.width
+ anchors.verticalCenter: parent.verticalCenter
+ horizontalAlignment: Text.AlignRight
+ color: "white"
+ text: (mediaPlayerView.playerType === "SDL") ? Internal.hmsTimeToString(dataContainer.currentApplication.mediaClock.startTime)
+ : "02:36" //TODO {Aleshin}: get track time for all players except SDL
+ font.pixelSize: 18
+ }
+
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ height: parent.height
+ width: 2/3 * parent.width
+
+ Rectangle {
+ anchors.verticalCenter: parent.verticalCenter
+ height: 2
+ width: dataContainer.currentApplication.mediaClock.progress * parent.width
+ color: "white"
+ }
+
+ Rectangle {
+ anchors.verticalCenter: parent.verticalCenter
+ height: 2
+ width: (1 - dataContainer.currentApplication.mediaClock.progress) * parent.width
+ color: Constants.primaryColor
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MediaPlayer.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MediaPlayer.qml
new file mode 100644
index 000000000..866f5399c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MediaPlayer.qml
@@ -0,0 +1,325 @@
+/**
+ * @file MediaPlayerView.qml
+ * @brief Parent for BT, IPod, CD players screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+
+Item {
+ id: mediaPlayerView
+
+ property string playerName: ""
+ property string playerType: ""
+
+ signal rewind
+ signal forward
+ signal play
+ signal pause
+
+ // Holds players state(song name, play/pause state, track number etc). For all players except SDL.
+ property PlayerState playerState;
+
+ property alias buttons: buttonsRow.content
+ property alias buttonsSpacing: buttonsRow.spacing
+ property alias image: image.source
+
+ Item {
+ // row of oval buttons
+ id: ovalButtonsRow
+ width: parent.width
+ height: 1/5 * parent.height
+ anchors.left: parent.left
+ anchors.top: parent.top
+
+ PagedFlickable {
+ id: buttonsRow
+ width: parent.width
+ spacing: (mediaPlayerView.playerType === "SDL") ? ((width - 4 * elementWidth) / 3)
+ : (width - 2 * elementWidth)
+ anchors.verticalCenter: parent.verticalCenter
+ snapTo: Constants.ovalButtonWidth + spacing
+ elementWidth: Constants.ovalButtonWidth
+ }
+ }
+
+ Item {
+ id: spacingBetweenItems
+ width: parent.width
+ height: 1/10 * parent.height
+ anchors.left: parent.left
+ anchors.top: ovalButtonsRow.bottom
+
+ Behavior on height {
+ NumberAnimation {
+ duration : Constants.animationDuration
+ }
+ }
+ }
+
+ Column {
+ // Picture + text information + media clock
+ id: mediaContent
+ width: parent.width
+ height: 2/5 * parent.height
+ anchors.left: parent.left
+ anchors.top: spacingBetweenItems.bottom
+
+ Row {
+ // picture + text info
+ width: parent.width
+ height: 3/4 * parent.height
+ spacing: Constants.margin
+
+ Image {
+ id: image
+ height: parent.height
+ width: height
+ }
+
+ Column {
+ // text info
+ id: textInfo
+ height: parent.height
+ width: parent.width - image.width - parent.spacing
+ spacing: (height - titleText.height - 3 * text.height) / 3
+
+ Text {
+ id: titleText
+ anchors.left: parent.left
+ anchors.right: parent.right
+ horizontalAlignment: dataContainer.currentApplication.hmiUITextAlignment
+ color: Constants.primaryColor
+ text: (mediaPlayerView.playerType === "SDL") ? dataContainer.currentApplication.hmiUIText.mainField1
+ : playerState.trackName
+ font.pixelSize: Constants.titleFontSize
+ font.bold: true
+ }
+
+ Text {
+ id: text
+ anchors.left: parent.left
+ anchors.right: parent.right
+ horizontalAlignment: dataContainer.currentApplication.hmiUITextAlignment
+ color: Constants.primaryColor
+ text: (mediaPlayerView.playerType === "SDL") ? dataContainer.currentApplication.hmiUIText.mainField2
+ : playerState.albumName
+ font.pixelSize: Constants.fontSize
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ horizontalAlignment: Text.AlignHCenter
+ color: Constants.primaryColor
+ text: (mediaPlayerView.playerType === "SDL") ? dataContainer.currentApplication.hmiUIText.mediaTrack
+ : playerState.trackNumber
+ font.pixelSize: Constants.fontSize
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: "Time to destination: " + dataContainer.navigationModel.timeToDestination
+ font.pixelSize: Constants.fontSize
+ horizontalAlignment: dataContainer.hmiUITextAlignment
+ visible: mediaPlayerView.playerType === "SDL" && dataContainer.navigationModel.timeToDestination
+ }
+ }
+ }
+
+ MediaClockView {
+ width: parent.width
+ height: parent.height * 1/4
+ }
+ }
+
+ Item {
+ id: spacingBetweenItems2
+ width: parent.width
+ height: 1/10 * parent.height
+ anchors.left: parent.left
+ anchors.top: mediaContent.bottom
+
+ Behavior on height {
+ NumberAnimation {
+ duration : Constants.animationDuration
+ }
+ }
+ }
+
+ Row {
+ // Rewind, play, pause, forward buttons
+ id: playPauseRewindForward
+ width: parent.width
+ height: 1/5 * parent.height - statusBar.height
+ anchors.left: parent.left
+ anchors.leftMargin: (width - playPauseButton.width - prevButton.width - nextButton.width) / 2
+ anchors.top: spacingBetweenItems2.bottom
+
+ Image {
+ id: prevButton
+ anchors.verticalCenter: parent.verticalCenter
+ source: "../res/buttons/player_prev_btn.png"
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ prevButton.source = "../res/buttons/player_prev_pressed_btn.png"
+ }
+ onReleased: {
+ prevButton.source = "../res/buttons/player_prev_btn.png"
+ }
+ }
+ }
+
+ PlayPauseButton {
+ id: playPauseButton
+ anchors.verticalCenter: parent.verticalCenter
+ state: (mediaPlayerView.playerType === "SDL") ? dataContainer.currentApplication.playPauseState : playerState.playPauseState
+ onClicked: {
+ (state == 'Play') ? play() : pause();
+ var newState = state === "Play" ? "Pause" : "Play";
+ (mediaPlayerView.playerType === "SDL") ? dataContainer.setApplicationProperties(dataContainer.currentApplication.appId, { playPauseState: newState } )
+ : playerState.playPauseState = newState
+ }
+ }
+
+ Image {
+ id: nextButton
+ anchors.verticalCenter: parent.verticalCenter
+ source: "../res/buttons/player_next_btn.png"
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ nextButton.source = "../res/buttons/player_next_pressed_btn.png"
+ }
+ onReleased: {
+ nextButton.source = "../res/buttons/player_next_btn.png"
+ }
+ }
+ }
+ }
+
+ Item {
+ id: presetButtons
+ width: parent.width
+ height: 1/5 * parent.height
+ anchors.top: playPauseRewindForward.bottom
+ anchors.left: parent.left
+
+ PresetRow {
+ id: presetsRow
+ anchors.top: parent.top
+ anchors.left: parent.left
+ presets: mediaPlayerView.playerType === "SDL" ? Internal.getArrayForPresetRow() : []
+ width: parent.width
+ property bool clickProcessed
+
+ Timer {
+ id: timer
+ interval: Constants.presetButtonTimer
+ repeat: false
+ triggeredOnStart: false
+ onTriggered: {
+ console.log("preset button hold")
+ presetsRow.clickProcessed = true
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + presetsRow.selectedIndex, Common.ButtonPressMode.LONG, undefined)
+ }
+ }
+
+ onPresetButtonPressed: {
+ console.log("preset button pressed")
+ timer.start()
+ clickProcessed = false
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonEventMode.BUTTONDOWN, undefined)
+ }
+
+ onPresetButtonReleased: {
+ console.log("preset button released")
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonEventMode.BUTTONUP, undefined)
+ timer.stop()
+ if (!clickProcessed) {
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonPressMode.SHORT, undefined)
+ }
+ }
+ }
+ }
+
+ StatusBar {
+ id: statusBar
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ }
+
+ states: [
+ State {
+ name: 'presetButtonsON'
+ when: (dataContainer.currentApplication.customPresets.count > 0) && (mediaPlayerView.playerType === "SDL")
+ PropertyChanges {
+ target: spacingBetweenItems
+ height: 1
+ }
+ PropertyChanges {
+ target: spacingBetweenItems2
+ height: 1
+ }
+ PropertyChanges {
+ target: presetButtons
+ visible: true
+ enabled: true
+ }
+ },
+
+ State {
+ name: 'presetButtonsOFF'
+ when: (dataContainer.currentApplication.customPresets.count === 0) || (mediaPlayerView.playerType !== "SDL")
+ PropertyChanges {
+ target: spacingBetweenItems
+ height: 1/10 * mediaPlayerView.height
+ }
+ PropertyChanges {
+ target: spacingBetweenItems2
+ height: 1/10 * mediaPlayerView.height
+ }
+ PropertyChanges {
+ target: presetButtons
+ visible: false
+ enabled: false
+ }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MusicSourceView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MusicSourceView.qml
new file mode 100644
index 000000000..c9c30e200
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/MusicSourceView.qml
@@ -0,0 +1,75 @@
+/**
+ * @file MusicSourceView.qml
+ * @brief Music source screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+import "../models"
+import "../controls"
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ Item {
+ anchors.fill: parent
+ GridMenu {
+ id: menu
+ model: dataContainer.musicSourceModel
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: bottomPanel.top
+ delegate: GridItem {
+ width: menu.width / menu.columnsOnPage
+ height: menu.height / menu.rows
+ OvalButton {
+ text: title
+ onReleased: contentLoader.go(qml, appId)
+ anchors.centerIn: parent
+ fontSize: Constants.fontSize
+ }
+ }
+ }
+
+ Item {
+ id: bottomPanel
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ height: 1/4 * parent.height
+ width: parent.width
+
+ BackButton { anchors.centerIn: parent }
+ }
+ }
+}
+
+
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationInRouteGridView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationInRouteGridView.qml
new file mode 100644
index 000000000..6d5ad5027
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationInRouteGridView.qml
@@ -0,0 +1,250 @@
+/**
+ * @file NavigationInRouteGridView.qml
+ * @brief Navigation in route screen veiw.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+
+GeneralView {
+ Item {
+ id: navInRoute
+ anchors.fill: parent
+
+ Image {
+ // 3/4 top screen
+ id: map
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ source: "../res/nav/map.png"
+
+ Image {
+ id: compas
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 1/4 * compas.width
+ anchors.left: parent.left
+ anchors.leftMargin: 1/4 * compas.width
+ source: "../res/nav/compass.png"
+ }
+
+ Column {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: compas.horizontalCenter
+ spacing: 1/8 * parent.height
+
+ // Zoom "+" button
+ Image {
+ id: zoomIn
+ source: "../res/buttons/zoom.png"
+
+ Text {
+ id: zoomInBtn
+ anchors.centerIn: parent
+ text: "+"
+ color: Constants.releasedButtonTextColor
+ font.pixelSize: 30
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/buttons/zoom_pressed.png"
+ zoomInBtn.color = Constants.pressedButtonTextColor
+ }
+ onReleased: {
+ parent.source = "../res/buttons/zoom.png"
+ zoomInBtn.color = Constants.releasedButtonTextColor
+ }
+
+ onClicked: {
+ //Some behavior
+ }
+ }
+ }
+
+ // Zoom "-" button
+ Image {
+ id: zoomOut
+ source: "../res/buttons/zoom.png"
+
+ Text {
+ id: zoomOutBtn
+ anchors.centerIn: parent
+ text: "-"
+ color: "white"
+ font.pixelSize: 30
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/buttons/zoom_pressed.png"
+ zoomOutBtn.color = Constants.pressedButtonTextColor
+ }
+ onReleased: {
+ parent.source = "../res/buttons/zoom.png"
+ zoomOutBtn.color = Constants.releasedButtonTextColor
+ }
+
+ onClicked: {
+ //Some behavior
+ }
+ }
+ }
+ } // column
+
+ // Options button
+ Image {
+ id: navOptions
+ anchors.top: parent.top
+ anchors.right: parent.right
+ source: "../res/nav/options.png"
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/nav/options_pressed.png"
+ }
+ onReleased: {
+ parent.source = "../res/nav/options.png"
+ }
+ onClicked: {
+ //Options screen
+ }
+ }
+ }
+ } //map
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ Image {
+ id: muteBtnImg
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 1/4 * muteBtnImg.width
+ source: "../res/nav/mute_off.png"
+ MouseArea {
+ anchors.fill: parent
+ onClicked: if (muteBtnImg.state === "off") {
+ muteBtnImg.state = "on"
+ muteBtnImg.source = "../res/nav/mute_off.png"
+ }
+ else {
+ muteBtnImg.source = "../res/nav/mute_on.png"
+ muteBtnImg.state = "off"
+ }
+ }
+ }
+
+ Image {
+ id: turnArrow
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: muteBtnImg.right
+ anchors.leftMargin: 1/20 * contentLoader.width
+ source: "../res/nav/turnArrow.png"
+ }
+
+ Text {
+ id: street
+ anchors.verticalCenter: cancel.verticalCenter
+ anchors.left: turnArrow.right
+ anchors.leftMargin: 1/20 * contentLoader.width
+ text: "0.2 mi on Cherry Hill Rd."
+ color: "White"
+ font.pixelSize: 20
+ }
+
+ Text {
+ id: timeToDest
+ anchors.verticalCenter: cancel.verticalCenter
+ anchors.right: cancel.left
+ anchors.rightMargin: 1/20 * contentLoader.width
+ text: "2 hrs 27 min"
+ color: "White"
+ font.pixelSize: 20
+ }
+
+ Image {
+ id: cancel
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+
+ source: "../res/buttons/long_oval_btn.png"
+
+ Image {
+ id: destIcon
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: cancel.left
+ anchors.leftMargin: Constants.fontSize
+ source: "../res/nav/dest_icon.png"
+ }
+
+ Text {
+ id: cancelText
+ anchors.centerIn: parent
+ text: "Cancel"
+ color: Constants.primaryColor
+ font.pixelSize: 20
+ }
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ cancel.source = "../res/buttons/long_oval_pressed_btn.png"
+ destIcon.source = "../res/nav/dest_icon_black.png"
+ cancelText.color = Constants.pressedButtonTextColor
+ }
+
+ onReleased: {
+ cancel.source = "../res/buttons/long_oval_btn.png"
+ destIcon.source = "../res/nav/dest_icon.png"
+ cancelText.color = Constants.primaryColor
+ }
+
+ onClicked: {
+ contentLoader.go("./views/NavigationNoRouteGridView.qml")
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationKeyboardView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationKeyboardView.qml
new file mode 100644
index 000000000..3ef73ee67
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationKeyboardView.qml
@@ -0,0 +1,221 @@
+/**
+ * @file NavigationKeyboardView.qml
+ * @brief Navigation keyboard screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ Item {
+ id: navKeyboard
+ anchors.fill: parent
+
+ Item {
+ // 3/4 top screen
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+
+ // Text line with input text
+ TextInput {
+ id: inputText
+ anchors.top:parent.top
+ anchors.left:parent.left
+ maximumLength: 30
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize
+ text: dataContainer.routeText
+ }
+
+ // Keyboard
+ Column {
+ anchors.centerIn: parent
+ Row {
+ id: upperRow
+ property string qWERTY : "QWERTYUIOP"
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ Repeater {
+ model: 10
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: upperRow.qWERTY.charAt(index)
+ pixelSize: Constants.fontSize
+
+ onClicked: {
+ dataContainer.routeText += upperRow.qWERTY.charAt(index)
+ }
+ }
+ }
+ }
+ Row {
+ id: middleRow
+ property string aSDFGH : "ASDFGHJKL"
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: "123"
+ pixelSize: 15
+ }
+ //--------------
+ Repeater {
+ model: 9
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: middleRow.aSDFGH.charAt(index)
+ pixelSize: Constants.fontSize
+
+ onClicked: {
+ dataContainer.routeText += middleRow.aSDFGH.charAt(index)
+ }
+ }
+ }
+ //--------------
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ onIsPressedChanged: {
+ hoverImg.source = isPressed ? "../res/nav/delete_icon_black.png" : "../res/nav/delete_icon.png";
+ }
+ Image {
+ id: hoverImg
+ anchors.centerIn: parent
+ source: "../res/nav/delete_icon.png"
+ }
+
+ onClicked: {
+ dataContainer.routeText = dataContainer.routeText.substring(0,dataContainer.routeText.length - 1)
+ }
+ }
+ }
+ Row {
+ id: lowerRow
+ property string zXCVBN : "ZXCVBNM"
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: "!@#"
+ pixelSize: 15
+ }
+ //-----------------
+ Repeater {
+ model: 7
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: lowerRow.zXCVBN.charAt(index)
+ pixelSize: Constants.fontSize
+
+ onClicked: {
+ dataContainer.routeText += lowerRow.zXCVBN.charAt(index)
+ }
+ }
+ }
+ //----------------
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: "Clear"
+ pixelSize: 12
+
+ onClicked: {
+ dataContainer.routeText = ""
+ }
+ }
+ //----------------
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: "Space"
+ pixelSize: 12
+
+ onClicked: {
+ dataContainer.routeText += " "
+ }
+ }
+ }
+
+ } // column
+
+ Image {
+ id: goBtn
+ anchors.right: parent.right
+ anchors.top: parent.top
+ source: "../res/buttons/short_oval_btn.png"
+
+ Text {
+ id: goText
+ anchors.centerIn: parent
+ text: "Go"
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize
+ }
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ goBtn.source = "../res/buttons/short_oval_btn_pressed.png"
+ goText.color = Constants.pressedButtonTextColor
+ }
+
+ onReleased: {
+ goBtn.source = "../res/buttons/short_oval_btn.png"
+ goText.color = Constants.primaryColor
+ }
+
+ onClicked: {
+ contentLoader.go("./views/NavigationInRouteGridView.qml")
+ }
+ }
+ }
+ } // 3/4 top screen
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+ BackButton { anchors.centerIn: parent }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationMenuView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationMenuView.qml
new file mode 100644
index 000000000..5ceffe052
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationMenuView.qml
@@ -0,0 +1,75 @@
+/**
+ * @file NavigationMenuView.qml
+ * @brief Navigation menu screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models"
+import "../controls"
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ Item {
+ anchors.fill: parent
+ GridMenu {
+ id: menu
+ model: NavigationMenuModel {}
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: bottomPanel.top
+ delegate: GridItem {
+ width: menu.width / menu.columnsOnPage
+ height: menu.height / menu.rows
+ OvalButton {
+ text: title
+ onReleased: contentLoader.go(qml)
+ anchors.centerIn: parent
+ fontSize: Constants.fontSize
+ }
+ }
+ }
+
+ Item {
+ id: bottomPanel
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ height: 1/4 * parent.height
+ width: parent.width
+
+ BackButton { anchors.centerIn: parent }
+ }
+ }
+}
+
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationNoRouteGridView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationNoRouteGridView.qml
new file mode 100644
index 000000000..312f07639
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/NavigationNoRouteGridView.qml
@@ -0,0 +1,205 @@
+/**
+ * @file NavigationNoRouteGridView.qml
+ * @brief Navigation no route screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ Item {
+ id: navNoRoute
+ anchors.fill: parent
+
+ Image {
+ // 3/4 top screen
+ id: map
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ source: "../res/nav/map.png"
+
+ Image {
+ id: compas
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 1/4 * compas.width
+ anchors.left: parent.left
+ anchors.leftMargin: 1/4 * compas.width
+ source: "../res/nav/compass.png"
+ }
+
+ Column {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: compas.horizontalCenter
+ spacing: 1/8 * parent.height
+
+ // Zoom "+" button
+ Image {
+ id: zoomIn
+ source: "../res/buttons/zoom.png"
+
+ Text {
+ id: zoomInBtn
+ anchors.centerIn: parent
+ text: "+"
+ color: "white"
+ font.pixelSize: Constants.fontSize
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/buttons/zoom_pressed.png"
+ zoomInBtn.color = Constants.pressedButtonTextColor
+ }
+ onReleased: {
+ parent.source = "../res/buttons/zoom.png"
+ zoomInBtn.color = Constants.releasedButtonTextColor
+ }
+
+ onClicked: {
+ //Some behavior
+ }
+ }
+ }
+
+ // Zoom "-" button
+ Image {
+ id: zoomOut
+ source: "../res/buttons/zoom.png"
+
+ Text {
+ id: zoomOutBtn
+ anchors.centerIn: parent
+ text: "-"
+ color: "white"
+ font.pixelSize: Constants.fontSize
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/buttons/zoom_pressed.png"
+ zoomOutBtn.color = Constants.pressedButtonTextColor
+ }
+ onReleased: {
+ parent.source = "../res/buttons/zoom.png"
+ zoomOutBtn.color = Constants.releasedButtonTextColor
+ }
+
+ onClicked: {
+ //Some behavior
+ }
+ }
+ }
+ } // column
+
+ // Options button
+ Image {
+ id: navOptions
+ anchors.top: parent.top
+ anchors.right: parent.right
+ source: "../res/nav/options.png"
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/nav/options_pressed.png"
+ }
+ onReleased: {
+ parent.source = "../res/nav/options.png"
+ }
+ onClicked: {
+ //Options screen
+ }
+ }
+ }
+ } //map
+
+ Item {
+ // 1/4 bottom screen
+ id: bottomPart
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ // Destination search button
+ Image {
+ id: destSearch
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ source: "../res/buttons/longest_oval_btn.png"
+
+ Image {
+ id: destIcon
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 15
+ source: "../res/nav/dest_icon.png"
+ }
+
+ Text {
+ id: destText
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: destIcon.right
+ anchors.leftMargin: 5
+ text: "Destination"
+ color: Constants.primaryColor
+ font.pixelSize: 20
+ }
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ destSearch.source = "../res/buttons/longest_oval_btn_pressed.png"
+ destIcon.source = "../res/nav/dest_icon_black.png"
+ destText.color = Constants.pressedButtonTextColor
+ }
+
+ onReleased: {
+ destSearch.source = "../res/buttons/longest_oval_btn.png"
+ destIcon.source = "../res/nav/dest_icon.png"
+ destText.color = Constants.primaryColor
+ }
+
+ onClicked: {
+ contentLoader.go("./views/NavigationMenuView.qml")
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/PhoneKeyboardView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/PhoneKeyboardView.qml
new file mode 100644
index 000000000..b328406d6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/PhoneKeyboardView.qml
@@ -0,0 +1,171 @@
+/**
+ * @file PhoneKeyboardView.qml
+ * @brief Phone keyboard screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models"
+import "../models/Constants.js" as Constants
+
+GeneralView{
+ Component.onCompleted: phoneKeyboard.changeColorOfActiveButtons()
+
+ Item {
+ function changeColorOfActiveButtons() {
+ for (var i = 0; i < contactsListModel.count; i++) {
+ activeButtons[contactsListModel.get(i).name[0].toUpperCase()] = true
+ }
+ }
+
+ id: phoneKeyboard
+ anchors.fill: parent
+
+ property variant activeButtons: {
+ "A": false, "B": false, "C": false, "D": false, "E": false,
+ "F": false, "G": false, "H": false, "I": false, "J": false,
+ "K": false, "L": false, "M": false, "N": false, "O": false,
+ "P": false, "Q": false, "R": false, "S": false, "T": false,
+ "U": false, "V": false, "W": false, "X": false, "Y": false, "Z": false
+ }
+
+ ContactsListModel {
+ id: contactsListModel
+ }
+
+ Item {
+ // 3/4 top screen
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Column {
+ anchors.centerIn: parent
+
+ Row {
+ id: upperRow
+ property string contentLoader : "ABCDEFGHI"
+ anchors.horizontalCenter: parent.horizontalCenter
+ Repeater {
+ model: 9
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ textColorDefault: phoneKeyboard.activeButtons[upperRow.contentLoader.charAt(index)]
+ ? Constants.primaryColor : Constants.inactiveButtonTextColor
+ text: upperRow.contentLoader.charAt(index)
+ pixelSize: Constants.fontSize
+ onIsPressedChanged: {
+ if (!isPressed){
+ if (phoneKeyboard.activeButtons[upperRow.contentLoader.charAt(index)]) {
+ dataContainer.contactsFirstLetter = text
+ contentLoader.go("./views/ContactsListView.qml")
+ }
+ }
+ }
+ }
+ }
+ }
+
+ Row {
+ id: middleRow
+ property string contentLoader : "JKLMNOPQR"
+ anchors.horizontalCenter: parent.horizontalCenter
+ Repeater {
+ model: 9
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ textColorDefault: phoneKeyboard.activeButtons[middleRow.contentLoader.charAt(index)]
+ ? Constants.primaryColor : Constants.inactiveButtonTextColor
+ text: middleRow.contentLoader.charAt(index)
+ pixelSize: Constants.fontSize
+ onIsPressedChanged: {
+ if (!isPressed){
+ if (phoneKeyboard.activeButtons[middleRow.contentLoader.charAt(index)]) {
+ dataContainer.contactsFirstLetter = text
+ contentLoader.go("./views/ContactsListView.qml")
+ }
+ }
+ }
+ }
+ }
+ }
+
+ Row {
+ id: lowerRow
+ property string contentLoader : "STUVWXYZ"
+ anchors.horizontalCenter: parent.horizontalCenter
+ Repeater {
+ model: 8
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ textColorDefault: phoneKeyboard.activeButtons[lowerRow.contentLoader.charAt(index)]
+ ? Constants.primaryColor : Constants.inactiveButtonTextColor
+ text: lowerRow.contentLoader.charAt(index)
+ pixelSize: Constants.fontSize
+ onIsPressedChanged: {
+ if (!isPressed){
+ if (phoneKeyboard.activeButtons[lowerRow.contentLoader.charAt(index)]) {
+ dataContainer.contactsFirstLetter = text
+ contentLoader.go("./views/ContactsListView.qml")
+ }
+ }
+ }
+ }
+ }
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: "123"
+ pixelSize: 20
+ }
+ }
+ }
+ }
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ BackButton { anchors.centerIn: parent}
+ }
+ }
+}
+
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/PhoneMenuGridView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/PhoneMenuGridView.qml
new file mode 100644
index 000000000..7d52b1223
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/PhoneMenuGridView.qml
@@ -0,0 +1,55 @@
+/**
+ * @file PhoneMenuGridView.qml
+ * @brief View for phone menu.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../models"
+import "../controls"
+
+GridMenu {
+ id: menu
+ model: PhoneMenuModel {}
+ delegate: GridItem {
+ width: menu.width / menu.columnsOnPage
+ height: menu.height / menu.rows
+ ClickableImage {
+ anchors.centerIn: parent
+ source: icon
+ onClicked: {
+ if(qml !== "") {
+ contentLoader.go(qml)
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/RadioPlayer.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/RadioPlayer.qml
new file mode 100644
index 000000000..1df65d423
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/RadioPlayer.qml
@@ -0,0 +1,160 @@
+/**
+ * @file RadioPlayerView.qml
+ * @brief Parent for AM, FM, Sirius players screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models"
+import "../models/Constants.js" as Constants
+
+Item {
+ id: radioPlayerView
+
+ property string radioType: ""
+ property string radioName: ""
+ property alias buttonHD: bot.children
+
+ property PlayerState playerState
+
+ Item {
+ // top 3/4 screen
+ id: upperContent
+ anchors.top: parent.top
+ anchors.left: parent.left
+ height: parent.height * 3/4
+ width: parent.width
+
+ Item {
+ // top part for buttons
+ id: top
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: parent.height * 1/4
+
+ OvalButton {
+ text: radioName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ }
+
+ OvalButton {
+ anchors.right: parent.right
+ anchors.top: parent.top
+ text: "Tune"
+ fontSize: Constants.fontSize
+ }
+ }
+
+ Item {
+ // mid part for information about song
+ id: mid
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ width: parent.width
+ height: parent.height / 2
+
+ Column {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+
+ Row {
+ Text {
+ id: radioChannelNameText
+ color: Constants.primaryColor
+ text: playerState.presets[0]
+ font.pixelSize: 45
+ }
+ Text {
+ anchors.bottom: radioChannelNameText.bottom
+ color: Constants.primaryColor
+ text: " " + radioType
+ font.pixelSize: 25
+ }
+ }
+
+ Text {
+ color: Constants.primaryColor
+ text: playerState.songName
+ font.pixelSize: 25
+ font.bold: true
+ }
+
+ Text {
+ color: Constants.primaryColor
+ text: playerState.albumName
+ font.pixelSize: 25
+ }
+ }
+ }
+
+ Item {
+ // bottom part for HD button (for FM radio)
+ id: bot
+ anchors.left: parent.left
+ anchors.bottom: parent. bottom
+ width: parent.width
+ height: parent.height * 1/4
+ }
+ }
+
+ Item {
+ // bottom 1/4 screen
+ id: lowerContent
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ // Line that divide screen in two parts
+ Rectangle {
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: 2
+ color: Constants.primaryColor
+ }
+
+ PresetRow {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ presets: playerState.presets
+ width: parent.width
+ onSelectedIndexChanged: {
+ radioChannelNameText.text = presets[selectedIndex];
+ }
+ }
+ }
+}
+
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLNavi.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLNavi.qml
new file mode 100644
index 000000000..620b0434c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLNavi.qml
@@ -0,0 +1,223 @@
+/**
+ * @file SDLNavi.qml
+ * @brief SDL navigation screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+
+GeneralView {
+ applicationContext: true
+
+ Item {
+ anchors.fill: parent
+ id: wholeWindow
+
+ Row {
+ // Top items
+ id: topItems
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/6 * parent.height
+ spacing: Constants.sdlNaviSpacing
+
+ Rectangle {
+ anchors.top: parent.top
+ width: 1/5 * parent.width
+ height: 4/5 * parent.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+
+ Text {
+ text: dataContainer.currentApplication.hmiUIText.mainField1
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ Rectangle {
+ anchors.top: parent.top
+ width: 3/5 * parent.width - 2 * parent.spacing
+ height: parent.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+
+ Text {
+ text: dataContainer.currentApplication.hmiUIText.mainField2
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ Rectangle {
+ id: rightRectOfTopItems
+ anchors.top: parent.top
+ width: 1/5 * parent.width
+ height: 4/5 * parent.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+ Text {
+ text: dataContainer.currentApplication.hmiUIText.mainField3 ? dataContainer.currentApplication.hmiUIText.mainField3 : "field3"
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ }
+
+ Column {
+ // "+", "-" button at left
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ width: 1/12 * parent.width
+ height: 2/10 * parent.height + spacing
+ spacing: Constants.sdlNaviSpacing
+
+ GradientRectangle {
+ width: parent.width
+ height: 1/10 * wholeWindow.height
+ text: "+"
+ isCustomButton: true
+ customButtonID: 3
+ }
+ GradientRectangle {
+ width: parent.width
+ height: 1/10 * wholeWindow.height
+ text: "-"
+ isCustomButton: true
+ customButtonID: 4
+ }
+ }
+
+ Column {
+ anchors.right: parent.right
+ anchors.top: topItems.bottom
+ width: 1/6 * parent.width
+ height: 2/10 * parent.height + spacing
+ spacing: Constants.sdlNaviSpacing
+
+ Rectangle {
+ width: parent.width
+ height: 1/10 * wholeWindow.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+ Text {
+ text: ""
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ Rectangle {
+ width: parent.width
+ height: 1/10 * wholeWindow.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+ Text {
+ text: dataContainer.currentApplication.hmiUIText.mainField4 ? dataContainer.currentApplication.hmiUIText.mainField4 : "mainField4"
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ }
+
+ Row {
+ // bottom items
+ id: bottomItems
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/6 * parent.height
+ spacing: Constants.sdlNaviSpacing
+
+ GradientRectangle {
+ anchors.bottom: parent.bottom
+ width: 1/3 * parent.width
+ height: parent.height
+ text: "Menu"
+ isCustomButton: true
+ customButtonID: 1
+ }
+ Rectangle {
+ anchors.bottom: parent.bottom
+ width: 1/3 * parent.width - 2 * parent.spacing
+ height: parent.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+ Text {
+ text: "mainField5"
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ GradientRectangle {
+ anchors.bottom: parent.bottom
+ width: 1/3 * parent.width
+ height: parent.height
+ text: "Custom Button"
+ isCustomButton: true
+ customButtonID: 2
+ }
+ }
+
+ GradientRectangle {
+ anchors.right: parent.right
+ anchors.bottom: bottomItems.top
+ anchors.bottomMargin: Constants.sdlNaviSpacing
+ width: 1/6 * parent.width
+ height: 1/10 * parent.height
+ text: "Options"
+ fontSize: Constants.fontSize
+ onReleased: {
+ contentLoader.go("./views/SDLPlayerOptionsListView.qml", dataContainer.currentApplication.appId)
+ }
+
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLNonMediaView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLNonMediaView.qml
new file mode 100644
index 000000000..bebfe9585
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLNonMediaView.qml
@@ -0,0 +1,194 @@
+/**
+ * @file SDLNonMediaView.qml
+ * @brief SDL non media screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+import QtQuick 1.1
+import "../models"
+import "../controls"
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+import "../hmi_api/Common.js" as Common
+
+GeneralView {
+ applicationContext: true
+
+ Item {
+ id: upperContent
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+
+ Item {
+ id: topButtonRow
+ // top 1/4 of screen
+ width: parent.width
+ height: 1/4 * parent.height
+
+ PagedFlickable {
+ anchors.verticalCenter: parent.verticalCenter
+ width: parent.width
+ elementWidth: Constants.ovalButtonWidth
+ spacing: (width - 4 * elementWidth) / 3
+ snapTo: elementWidth + spacing
+
+ OvalButton {
+ text: "Options"
+ onClicked: { contentLoader.go("./views/SDLPlayerOptionsListView.qml") }
+ }
+
+ Repeater {
+ model: dataContainer.currentApplication.softButtons ?
+ dataContainer.currentApplication.softButtons.count :
+ 0
+ delegate:
+ SoftButton {
+ appId: dataContainer.currentApplication.appId
+ button: dataContainer.currentApplication.softButtons.get(index)
+ }
+ }
+ }
+ }
+
+ Column {
+ id: midContent
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: topButtonRow.bottom
+ anchors.left: parent.left
+
+ Text {
+ id: deviceName
+ width: parent.width
+ height: 1/5 * parent.height
+ text: "Device: " + dataContainer.currentApplication.deviceName
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+
+ Row {
+ width: parent.width
+ height: 4/5 * parent.height
+ spacing: Constants.margin
+
+ Image {
+ id: image
+ height: parent.height
+ width: height
+ source: dataContainer.currentApplication.hmiUIText.image
+ }
+
+ Column {
+ height: parent.height
+ width: parent.width - image.width - parent.spacing
+ spacing: Constants.margin
+
+ Text {
+ id: text1
+ width: parent.width
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: dataContainer.hmiUITextAlignment
+ text: dataContainer.currentApplication.hmiUIText.mainField1
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+
+ Text {
+ width: parent.width
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: dataContainer.hmiUITextAlignment
+ text: dataContainer.currentApplication.hmiUIText.mainField2
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+ }
+ }
+ }
+ }
+
+ Item {
+ // bottom 1/4 screen
+ id: lowerContent
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: parent.height * 1/4
+
+ PresetRow {
+ id: presetsRow
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ presets: Internal.getArrayForPresetRow()
+ width: parent.width
+ property bool clickProcessed
+
+ Timer {
+ id: timer
+ interval: Constants.presetButtonTimer
+ repeat: false
+ triggeredOnStart: false
+ }
+
+ onPresetButtonPressed: {
+ timer.start()
+ clickProcessed = false
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonEventMode.BUTTONDOWN, undefined)
+ }
+
+ onPresetButtonReleased: {
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonEventMode.BUTTONUP, undefined)
+ timer.stop()
+ if (!clickProcessed) {
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonPressMode.SHORT, undefined)
+ }
+ }
+
+ Connections {
+ target: timer
+ onTriggered: {
+ if(!clickProcessed) {
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonPressMode.LONG, undefined)
+ clickProcessed = true
+ }
+ }
+ }
+ }
+ }
+
+ StatusBar {
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLPlayerOptionsListView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLPlayerOptionsListView.qml
new file mode 100644
index 000000000..076851b29
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLPlayerOptionsListView.qml
@@ -0,0 +1,120 @@
+/**
+ * @file SDLPlayerOptionsListView.qml
+ * @brief SDL player options screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+
+GeneralView {
+ applicationContext: true
+ systemContext: Common.SystemContext.SYSCTXT_MENU
+ Item {
+ // 3/4 top screen
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ ListView {
+ id: sdlPlayerOptionsListView
+ anchors.horizontalCenter: parent.horizontalCenter
+ width:parent.width
+ height:parent.height
+
+ model: dataContainer.currentApplication.currentSubMenu
+
+ delegate: Row {
+ spacing: Constants.iconItemListSpacing
+ Icon {
+ source: model.icon
+ width: Constants.iconItemListSize
+ height: Constants.iconItemListSize
+
+ MouseArea {
+ anchors.fill: parent
+ enabled: model.icon.value !== undefined
+
+ onPressed: text.press()
+ onReleased: text.release()
+ onCanceled: text.release()
+ onClicked: text.click()
+ }
+ }
+
+ ClickableText {
+ id: text
+ text: name + (type === Internal.MenuItemType.MI_SUBMENU ? " >" : "")
+ width: sdlPlayerOptionsListView.width - x
+ elide: Text.ElideRight
+ defaultColor: type === Internal.MenuItemType.MI_PARENT ?
+ Constants.inactiveButtonTextColor :
+ Constants.primaryColor
+ pressedColor: type === Internal.MenuItemType.MI_PARENT ?
+ Constants.inactiveButtonTextColorPressed :
+ Constants.primaryColorPressed
+ font.pixelSize: Constants.titleFontSize
+
+ function click() {
+ console.debug("enter")
+ switch (type) {
+ case Internal.MenuItemType.MI_NODE:
+ sdlUI.onCommand(model.id, dataContainer.currentApplication.appId)
+ contentLoader.back()
+ break;
+ case Internal.MenuItemType.MI_SUBMENU:
+ case Internal.MenuItemType.MI_PARENT:
+ dataContainer.currentApplication.currentSubMenu = subMenu
+ break;
+ }
+ console.debug("exit")
+ }
+ onClicked: click()
+ }
+ }
+ }
+ }
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ BackButton { anchors.centerIn: parent }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLPlayerView.qml
new file mode 100644
index 000000000..0c1bd5b7e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SDLPlayerView.qml
@@ -0,0 +1,79 @@
+/**
+ * @file SDLPlayerView.qml
+ * @brief SDL player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ applicationContext: true
+ MediaPlayer {
+ id: mediaPlayer
+ onPlay: { sdlButtons.onButtonPress(Common.ButtonName.OK, Common.ButtonPressMode.SHORT, undefined) }
+ onPause: { sdlButtons.onButtonPress(Common.ButtonName.OK, Common.ButtonPressMode.SHORT, undefined) }
+ playerName: "SDL music"
+ playerType: "SDL"
+ image: dataContainer.currentApplication.hmiUIText.image
+ anchors.fill: parent
+
+ buttons: [
+ OvalButton {
+ text: dataContainer.currentApplication.appName
+ onReleased: { contentLoader.go("./views/MusicSourceView.qml") }
+ },
+
+ OvalButton {
+ text: "SDL Menu"
+ onReleased: { contentLoader.go("./views/ApplicationListView.qml") }
+ },
+
+ OvalButton {
+ text: "Options"
+ onReleased: { contentLoader.go("./views/SDLPlayerOptionsListView.qml") }
+ },
+
+ Repeater {
+ model: dataContainer.currentApplication.softButtons ?
+ dataContainer.currentApplication.softButtons.count :
+ 0
+
+ delegate: SoftButton {
+ appId: dataContainer.currentApplication.appId
+ button: dataContainer.currentApplication.softButtons.get(index)
+ }
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ScrollableMessageView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ScrollableMessageView.qml
new file mode 100644
index 000000000..f7111906d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/ScrollableMessageView.qml
@@ -0,0 +1,216 @@
+/**
+ * @file ScrollableMessageView.qml
+ * @brief Scrollable Message View .
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../models"
+import "../popups"
+
+GeneralView {
+ applicationContext: true
+ id: scrollableMessageView
+
+ function complete(abort){
+ console.debug("enter")
+ timer.stop()
+ dataContainer.scrollableMessageModel.running = false
+
+ dataContainer.popups--
+ dataContainer.applicationContext = dataContainer.applicationSavedContext
+
+ if(abort) {
+ console.debug("send error")
+ DBus.sendError(dataContainer.scrollableMessageModel.async, Common.Result.ABORTED)
+ } else {
+ console.debug("send ok")
+ DBus.sendReply(dataContainer.scrollableMessageModel.async, {})
+ }
+
+ contentLoader.back()
+ console.debug("exit")
+ }
+
+
+ Connections {
+ target: contentLoader
+ onStatusChanged: {
+ if (status == Component.Ready) {
+ console.debug("enter")
+ console.debug("timeout in timer", timer.interval)
+ dataContainer.popups++
+ dataContainer.applicationSavedContext = dataContainer.applicationContext
+ dataContainer.scrollableMessageModel.running = true
+ timer.start()
+ console.debug("exit")
+ }
+ }
+ }
+
+ Rectangle {
+ anchors.fill: parent
+ color: Constants.secondaryColor
+
+ Timer {
+ id: timer
+ interval: dataContainer.scrollableMessageModel.timeout
+ onTriggered: {
+ complete(false)
+ }
+ }
+
+ Item {
+ // top 1/6 of screen
+ id: top
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: dataContainer.scrollableMessageModel.softButtons.count > 0 ? parent.height * 1/6 : 1
+
+ OvalButton {
+ //this button is used only to get item size for PagedFlickable
+ id: fakeButton
+ text: "defaultBtnSize"//remove this line when default size for btn will be introduced
+ visible:false
+ }
+
+ PagedFlickable {
+ id: flickRow
+ width: top.width
+ spacing: (width - fakeButton.width * 4) / 3
+ snapTo: fakeButton.width + spacing
+ elementWidth: fakeButton.width
+
+
+ ListView {
+ id: softButtons
+ width: model.count * fakeButton.width + (model.count - 1) * flickRow.spacing
+ height: fakeButton.height
+ spacing: flickRow.spacing
+
+ orientation: ListView.Horizontal
+ interactive: false
+ model: dataContainer.scrollableMessageModel.softButtons
+
+ delegate: SoftButton {
+ appId: dataContainer.currentApplication.appId
+ button: model
+ onKeepContext: timer.restart()
+ onDefaultAction: scrollableMessageView.complete(true)
+ }
+ }
+ }
+ }
+
+ Item {
+ id: middle
+ anchors.top: top.bottom
+ anchors.left: parent.left
+ anchors.bottom: bottom.top
+ width: parent.width
+
+ Flickable {
+ id:flickable
+ anchors.fill: middle
+ flickableDirection: Flickable.VerticalFlick
+ contentWidth: longMessageText.width
+ contentHeight: longMessageText.height
+ clip: true
+
+
+ Text {
+ id: longMessageText
+ wrapMode: Text.Wrap
+ width: middle.width
+ text: dataContainer.scrollableMessageModel.longMessageText
+ color: Constants.scrollableMessageTextColor
+ font.pixelSize: Constants.fontSize
+
+ }
+ }
+ Rectangle {
+ id: scrollbar
+ anchors.right: flickable.right
+ y: flickable.visibleArea.yPosition * flickable.height
+ width: Constants.scrollableMessageScrollBarWidth
+ height: flickable.visibleArea.heightRatio * flickable.height
+ visible: !(flickable.visibleArea.heightRatio > 1)
+ color: Constants.scrollableMessageScrollBarColor
+ }
+
+ }
+
+ Item {
+ // 1/4 bottom screen
+ id: bottom
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ BackButton {
+ id:backButton
+ anchors.centerIn: parent
+ onClicked: {
+ console.debug("enter")
+ complete(true)
+ console.debug("exit")
+ }
+ }
+ }
+ }
+ /**
+ * Test Support Section
+ *
+ */
+ function getTimer(){
+ return timer
+ }
+ function getSoftButtonsListView(){
+ return softButtons
+ }
+ function getScrollbar(){
+ return scrollbar
+ }
+ function getTextArea(){
+ return middle
+ }
+ function getBackButton(){
+ return backButton
+ }
+ /**
+ * Test Support Section End
+ */
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SimulationView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SimulationView.qml
new file mode 100644
index 000000000..c30d83f01
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SimulationView.qml
@@ -0,0 +1,284 @@
+/**
+ * @file SimulationView.qml
+ * @brief Area of screen responsible for simulation actions
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../views"
+import "../popups"
+import "../models/Constants.js" as Constants
+
+Rectangle {
+ width: controlArea.width + controlArea.anchors.margins
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ color: Constants.panelColor
+
+ Item {
+ id: showArea
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: parent.height - (controlArea.childrenRect.height + controlArea.anchors.margins)
+
+ ExitAllApplicationsPopup {
+ id: exitAllApplicationsPopup
+ anchors.fill: parent
+ visible: false
+ }
+
+ VehicleInfoPopUp {
+ id: viPopUp
+ anchors.fill: parent
+ }
+
+ TBTClientStatePopUp {
+ id: tbtClientStatePopUp
+ anchors.fill: parent
+ visible: false
+ }
+ }
+
+ Item {
+ id: controlArea
+ anchors.bottom: parent.bottom
+ anchors.margins: Constants.panelPadding
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: table.width
+
+ ListModel {
+ id: languagesList
+
+ Component.onCompleted: {
+ for (var name in Common.Language) {
+ if (settingsContainer.sdlLanguagesList.indexOf(Common.Language[name]) != -1) {
+ append({name: name.replace('_', '-')});
+ }
+ }
+ }
+ }
+
+ Text {
+ id: label
+ text: "Languages"
+ color: Constants.panelTextColor
+ anchors.bottom: table.top
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ Grid {
+ id: table
+ spacing: 5
+ columns: 2
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: globalProperties.top
+
+ Text {
+ text: "HMI UI"
+ color: Constants.panelTextColor
+ }
+
+ Text {
+ text: "HMI TTS + VR"
+ color: Constants.panelTextColor
+ }
+
+ ComboBox {
+ width: table.width / table.columns - table.spacing
+ model: languagesList
+ onCurrentIndexChanged: {
+ dataContainer.hmiUILanguage = settingsContainer.sdlLanguagesList[currentIndex];
+ sdlUI.onLanguageChange(dataContainer.hmiUILanguage);
+ }
+ z: 1000
+ }
+
+ ComboBox {
+ width: table.width / table.columns - table.spacing
+ model: languagesList
+ onCurrentIndexChanged: {
+ dataContainer.hmiTTSVRLanguage = settingsContainer.sdlLanguagesList[currentIndex];
+ sdlTTS.onLanguageChange(dataContainer.hmiTTSVRLanguage);
+ sdlVR.onLanguageChange(dataContainer.hmiTTSVRLanguage);
+ }
+ z: 1000
+ }
+
+ Text {
+ text: "Application UI"
+ color: Constants.panelTextColor
+ }
+
+ Text {
+ text: "Application TTS + VR"
+ color: Constants.panelTextColor
+ }
+
+ Text {
+ id: uiLanguageLabel
+ color: Constants.panelTextColor
+ text: " "
+ Connections {
+ target: dataContainer
+ onCurrentApplicationChanged: {
+ for (var s in Common.Language) {
+ if (Common.Language[s] === dataContainer.currentApplication.hmiDisplayLanguageDesired) {
+ uiLanguageLabel.text = s;
+ }
+ }
+ }
+ }
+ }
+
+ Text {
+ id: ttsLanguageLabel
+ color: Constants.panelTextColor
+ text: " "
+ Connections {
+ target: dataContainer
+ onCurrentApplicationChanged: {
+ for (var s in Common.Language) {
+ if (Common.Language[s] === dataContainer.currentApplication.languageTTSVR) {
+ ttsLanguageLabel.text = s;
+ }
+ }
+ }
+ }
+ }
+
+ PushButton {
+ id: vehicleInfo
+ label: "Vehicle info"
+ toggleMode: true
+ onPressed: {
+ viPopUp.show();
+ }
+ onUnpressed: {
+ viPopUp.hide();
+ }
+ }
+
+ PushButton {
+ id: tbtClientState
+ label: "TBT Client state"
+ toggleMode: true
+ onPressed: {
+ tbtClientStatePopUp.show();
+ }
+ onUnpressed: {
+ tbtClientStatePopUp.hide();
+ }
+ }
+
+ PushButton {
+ label: "Exit application"
+ onClicked: {
+ if (dataContainer.applicationContext) {
+ sdlBasicCommunication.onExitApplication(dataContainer.currentApplication.appId)
+ }
+ }
+ }
+
+ PushButton {
+ id: exitAllAppsButton
+ label: "Exit all apps"
+ toggleMode: true
+ onPressed: {
+ exitAllApplicationsPopup.show()
+
+ }
+ onUnpressed: {
+ exitAllApplicationsPopup.hide()
+ }
+ Connections {
+ target: exitAllApplicationsPopup
+ onVisibleChanged: {
+ if (!exitAllApplicationsPopup.visible) {
+ exitAllAppsButton.state = "unpressed"
+ }
+ }
+ }
+ }
+
+ CheckBox {
+ color: Constants.panelTextColor
+ text: "Use URL"
+ }
+
+ CheckBox {
+ color: Constants.panelTextColor
+ text: "DD"
+
+ onClicked: {
+ if (checked) {
+ dataContainer.driverDistractionState =
+ Common.DriverDistractionState.DD_ON;
+ } else {
+ dataContainer.driverDistractionState =
+ Common.DriverDistractionState.DD_OFF;
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ id: globalProperties
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ height: listGlobalProperties.height + Constants.panelPadding
+ border.color: Constants.panelTextColor
+ border.width: 1
+ color: Constants.panelColor
+ Column {
+ id: listGlobalProperties
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: Constants.panelPadding / 4
+ Text {
+ text: "HELP_PROMPT: " + dataContainer.currentApplication.helpPrompt
+ color: Constants.panelTextColor
+ }
+ Text {
+ text: "TIMEOUT_PROMPT: " + dataContainer.currentApplication.timeoutPrompt
+ color: Constants.panelTextColor
+ }
+ Text {
+ text: "AUTOCOMPLETE_TEXT: " // TODO(ALeshin): Function didn' realized yet
+ color: Constants.panelTextColor
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SiriusPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SiriusPlayerView.qml
new file mode 100644
index 000000000..14dd21130
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/SiriusPlayerView.qml
@@ -0,0 +1,46 @@
+/**
+ * @file SiriusPlayerView.qml
+ * @brief Sirius player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+import "../controls"
+
+GeneralView {
+ RadioPlayer {
+ id: siriusRadioPlayer
+ anchors.fill: parent
+ radioType: ""
+ radioName: "Sirius"
+
+ playerState: dataContainer.siriusPlayerState
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/TurnByTurnView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/TurnByTurnView.qml
new file mode 100644
index 000000000..630113334
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/TurnByTurnView.qml
@@ -0,0 +1,201 @@
+/**
+ * @file TurnByTurnView.qml
+ * @brief View for TurnByTurn.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../models"
+
+GeneralView {
+ applicationContext: true
+
+ Item {
+ id: turnByTurnView
+ anchors.fill: parent
+
+ Item {
+ // top 3/4 of screen
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: parent.height * 3/4
+
+ Item {
+ // row of oval buttons
+ id: ovalButtonsRow
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ PagedFlickable {
+ id: buttonsRow
+ width: parent.width
+ spacing: (width - 4 * elementWidth) / 3
+ anchors.verticalCenter: parent.verticalCenter
+ snapTo: Constants.ovalButtonWidth + spacing
+ elementWidth: Constants.ovalButtonWidth
+
+ OvalButton {
+ id: turnListButton
+ text: "TurnList"
+ onClicked: {
+ console.log("Go to TurnListView");
+ contentLoader.go("./views/TurnListView.qml");
+ }
+ }
+
+ Repeater {
+ model: dataContainer.navigationModel.softButtons ?
+ dataContainer.navigationModel.softButtons.count :
+ 0
+ delegate:
+ SoftButton {
+ appId: dataContainer.navigationModel.appId
+ button: dataContainer.navigationModel.softButtons.get(index)
+ }
+ }
+ }
+ }
+
+ Column {
+ // Picture + text information + media clock
+ id: mediaContent
+ width: parent.width
+ height: 3/4 * parent.height
+ anchors.left: parent.left
+ anchors.top: ovalButtonsRow.bottom
+
+ Row {
+ // picture + text info
+ width: parent.width
+ height: 3/4 * parent.height
+ spacing: Constants.margin
+
+ Image {
+ id: image
+ height: parent.height
+ width: height
+ source: dataContainer.navigationModel.turnIcon
+ }
+
+ Column {
+ // text info
+ id: textInfo
+ height: parent.height
+ width: parent.width - image.width - parent.spacing
+ spacing: (height - 5 * navText1.height) / 4
+
+ Text {
+ id: navText1
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: dataContainer.navigationModel.text1
+ font.pixelSize: Constants.fontSize
+ visible: dataContainer.navigationModel.text1
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: dataContainer.navigationModel.text2
+ font.pixelSize: Constants.fontSize
+ visible: dataContainer.navigationModel.text2
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: "Total distance: " + dataContainer.navigationModel.totalDistance
+ font.pixelSize: Constants.fontSize
+ visible: dataContainer.navigationModel.totalDistance
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: "Time to destination: " + dataContainer.navigationModel.timeToDestination
+ font.pixelSize: Constants.fontSize
+ visible: dataContainer.navigationModel.timeToDestination
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: "ETA: " + dataContainer.navigationModel.eta
+ font.pixelSize: Constants.fontSize
+ visible: dataContainer.navigationModel.eta
+ }
+ }
+ }
+
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ height: 1/4 * parent.height
+ width: 2/3 * parent.width
+
+ Rectangle {
+ id: coveredDistance
+ anchors.verticalCenter: parent.verticalCenter
+ height: Constants.distanceBarHeight
+ width: dataContainer.navigationModel.distanceToManeuver / dataContainer.navigationModel.distanceToManeuverScale * parent.width
+ color: "white"
+ }
+
+ Rectangle {
+ anchors.verticalCenter: parent.verticalCenter
+ height: Constants.distanceBarHeight
+ width: parent.width - coveredDistance.width
+ color: Constants.primaryColor
+ }
+ }
+ }
+ }
+ }
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+ BackButton { anchors.centerIn: parent }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/TurnListView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/TurnListView.qml
new file mode 100644
index 000000000..91ff02ea0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/TurnListView.qml
@@ -0,0 +1,103 @@
+/**
+ * @file TurnListView.qml
+ * @brief View for TurnByTurn list.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+
+GeneralView {
+ applicationContext: true
+
+ Item {
+ anchors.left: parent.left
+ anchors.top: parent.top
+ width: parent.width
+ height: 3/4 * parent.height
+
+ Item {
+ id: sotfButtons
+ width: parent.width
+ height: 1/4 * parent.height
+
+ PagedFlickable {
+ anchors.verticalCenter: parent.verticalCenter
+ width: parent.width
+ elementWidth: Constants.ovalButtonWidth
+ snapTo: elementWidth + spacing
+ spacing: (width - 4 * elementWidth) / 3
+
+ Repeater {
+ model: dataContainer.currentApplication.turnListSoftButtons ?
+ dataContainer.currentApplication.turnListSoftButtons.count :
+ 0
+ delegate:
+ SoftButton {
+ appId: dataContainer.currentApplication.appId
+ button: dataContainer.currentApplication.turnListSoftButtons.get(index)
+ }
+ }
+ }
+ }
+
+ ScrollableListView {
+ id: scrollableList
+ anchors.top: sotfButtons.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 3/4 * parent.height
+
+ model: dataContainer.currentApplication.turnList
+
+ delegate:
+ ListItem {
+ width: scrollableList.width
+ height: Constants.iconItemListSize
+ text: dataContainer.currentApplication.turnList.get(index).navigationText.fieldText
+ fontSize: Constants.fontSize
+ icon: dataContainer.currentApplication.turnList.get(index).turnIcon
+ }
+ }
+ }
+
+ Item {
+ // 1/4 bottom screen
+ id: back
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+ BackButton { anchors.centerIn: parent }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/UsbPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/UsbPlayerView.qml
new file mode 100644
index 000000000..4b17b55c1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/UsbPlayerView.qml
@@ -0,0 +1,61 @@
+/**
+ * @file UsbPlayerView.qml
+ * @brief USB player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 1.1
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ MediaPlayer {
+ id: usbPlayer
+ playerName: "USB"
+ anchors.fill: parent
+ playerState: dataContainer.usbPlayerState
+ image: playerState.albumImage
+
+ buttons: [
+ OvalButton {
+ text: usbPlayer.playerName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ },
+
+ OvalButton {
+ text: "Browse"
+ fontSize: Constants.fontSize
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/WarningInfo.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/WarningInfo.qml
new file mode 100644
index 000000000..e096cb80d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt4/views/WarningInfo.qml
@@ -0,0 +1,135 @@
+/**
+ * @file WarningInfo.qml
+ * @brief Screen with warning information.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 1.1
+import "../controls"
+import "../models/Constants.js" as Constants
+
+Rectangle {
+ id: warningInfo
+ anchors.fill: parent
+ color: Constants.secondaryColor
+ Text {
+ anchors.top: parent.top
+ anchors.left: parent.left
+ height: 1/4 * parent.height
+ width: parent.width
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+
+ text: "WARNING!"
+ color: Constants.warningColor
+ font.pixelSize: Constants.titleFontSize
+ font.bold: true
+ style: Text.Raised
+ styleColor: "gray"
+ }
+
+ Text {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: Constants.margin
+ height: 1/2 * parent.height
+ width: parent.width
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ wrapMode: Text.WordWrap
+
+ text: "This application is intended to be used as a demonstrative aid only, "
+ + "while the vehicle is parked. Don't use it while driving. <br /><br />"
+ + "Use extreme caution when using any device that takes your attention off the road. "
+ + "Ford recommends against the use of any hand-held device while driving and that you comply "
+ + "with all applicable laws. Your primary responsibility is the safe operation of the vehicle."
+ color: "white"
+ font.pixelSize: 25
+ font.bold: true
+ }
+
+ function showOkButton() {
+ okButtonAnimation.start()
+ }
+
+ Item {
+ id: ok
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+ opacity: 0
+
+ SequentialAnimation
+ {
+ id: okButtonAnimation
+ // Decrease this value while debugging
+ PauseAnimation { duration: Constants.warningScreenDuration }
+ NumberAnimation {
+ target: ok
+ duration: Constants.animationDuration
+ property: "opacity"
+ from: 0; to: 1;
+ }
+ }
+
+ Image {
+ id: okButton
+ anchors.centerIn: parent
+ source: "../res/buttons/longest_oval_btn.png"
+
+ Text {
+ id: text
+ anchors.centerIn: parent
+ text: "OK"
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/buttons/longest_oval_btn_pressed.png"
+ text.color = Constants.secondaryColor
+ }
+ onReleased: {
+ parent.source = "../res/buttons/longest_oval_btn.png"
+ text.color = Constants.primaryColor
+ }
+ onClicked: {
+ console.log("WarningInfo OkButton - on clicked enter");
+ warningInfo.visible = false
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/.gitignore b/SDL_Core/src/components/qt_hmi/qml_model_qt5/.gitignore
new file mode 100644
index 000000000..3a4593b4d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/.gitignore
@@ -0,0 +1,9 @@
+*.o
+*.pri
+*.so
+.DS_Store
+*.user
+Common.js
+
+Makefile
+moc_*.cpp
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/CMakeLists.txt b/SDL_Core/src/components/qt_hmi/qml_model_qt5/CMakeLists.txt
new file mode 100644
index 000000000..e6eeb9e52
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/CMakeLists.txt
@@ -0,0 +1,87 @@
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+cmake_minimum_required(VERSION 2.8.11)
+
+set(components_dir ${CMAKE_CURRENT_SOURCE_DIR}/../..)
+set(dbus_dir ${components_dir}/dbus)
+set(codegen_dir ${dbus_dir}/codegen)
+set(codegen ${codegen_dir}/make_qml_dbus_qml.py)
+set(parser ${codegen_dir}/ford_xml_parser.py)
+set(interfaces_dir ${components_dir}/interfaces)
+set(api_xml ${interfaces_dir}/QT_HMI_API.xml)
+set(proxy_dir ${CMAKE_CURRENT_BINARY_DIR}/hmi_api)
+set(qml_dirs hmi_api controls models popups views)
+set(qml_files MainWindow.qml)
+
+add_custom_target(qml_auto ALL
+ COMMAND python ${codegen} --infile ${api_xml} --version ${qt_version} --outdir ${proxy_dir}
+ DEPENDS ${api_xml} ${codegen} ${parser}
+ COMMENT "Generating files:
+ ${proxy_dir}/BasicCommunicationProxy.qml
+ ${proxy_dir}/ButtonsProxy.qml
+ ${proxy_dir}/NavigationProxy.qml
+ ${proxy_dir}/TTSProxy.qml
+ ${proxy_dir}/UIProxy.qml
+ ${proxy_dir}/VehicleInfoProxy.qml
+ ${proxy_dir}/VRProxy.qml
+ from:
+ ${api_xml} ..."
+)
+
+add_custom_target(qml_copy_resources ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/../res ${CMAKE_CURRENT_BINARY_DIR}/res
+ COMMENT "Copying resources")
+
+if(NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+ foreach(qml_dir ${qml_dirs})
+ add_custom_target(qml_copy_${qml_dir} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${qml_dir} ${CMAKE_CURRENT_BINARY_DIR}/${qml_dir}
+ COMMENT "Copying directory ${qml_dir}")
+ endforeach(qml_dir)
+
+ add_dependencies(qml_auto qml_copy_hmi_api)
+
+ foreach(qml_file ${qml_files})
+ add_custom_target(qml_copy_${qml_file} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${qml_file} ${CMAKE_CURRENT_BINARY_DIR}/${qml_file}
+ COMMENT "Copying file ${qml_file}")
+ endforeach(qml_file)
+endif()
+
+install(DIRECTORY
+ ${CMAKE_CURRENT_BINARY_DIR}/controls
+ ${CMAKE_CURRENT_BINARY_DIR}/hmi_api
+ ${CMAKE_CURRENT_BINARY_DIR}/models
+ ${CMAKE_CURRENT_BINARY_DIR}/popups
+ ${CMAKE_CURRENT_BINARY_DIR}/res
+ ${CMAKE_CURRENT_BINARY_DIR}/views
+ DESTINATION bin/hmi)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/MainWindow.qml DESTINATION bin/hmi)
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/MainWindow.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/MainWindow.qml
new file mode 100644
index 000000000..1e952330a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/MainWindow.qml
@@ -0,0 +1,409 @@
+/**
+ * @file MainWindow.qml
+ * @brief Implementation of main window.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import QtMultimedia 5.0
+import com.ford.sdl.hmi.dbus_adapter 1.0
+import com.ford.sdl.hmi.log4cxx 1.0
+import com.ford.sdl.hmi.named_pipe_notifier 1.0
+import "./controls"
+import "./views"
+import "./hmi_api" as HmiApi
+import "./models"
+import "./popups"
+import "hmi_api/Common.js" as Common
+import "./models/Constants.js" as Constants
+import "models/Internal.js" as Internal
+
+Rectangle {
+ width: 1280
+ height: 768
+ property string startQml: "./views/ApplicationListView.qml"
+ property int minWidth: Constants.mainScreenMinWidth
+ property int minHeight: Constants.mainScreenMiHeight
+ color: Constants.secondaryColor
+
+ DataStorage {
+ id: dataContainer
+
+ onSystemContextChanged: {
+ sdlUI.onSystemContext(systemContext)
+ }
+
+ // Please note that applicationContext is changed only after setting currentApplication
+ onApplicationContextChanged: {
+ if (applicationContext) {
+ sdlBasicCommunication.onAppActivated(currentApplication.appId)
+ } else {
+ sdlBasicCommunication.onAppDeactivated(currentApplication.appId, contentLoader.item.category)
+ }
+ }
+ }
+
+ Audio {
+ id: beep
+ source: "res/initial.wav"
+ }
+
+ Audio {
+ id: stream
+
+ property real bufferProgress: 0.0
+ }
+
+ SettingsStorage {
+ id: settingsContainer
+ }
+
+ Item {
+ id: mainScreen
+ anchors.top: parent. top
+ anchors.left: parent.left
+ width: (parent.width - simulationScreen.width < minWidth) ?
+ minWidth : parent.width - simulationScreen.width
+ height: (parent.height - hardwareScreen.height < minHeight) ?
+ minHeight : parent.height - hardwareScreen.height
+ clip: true
+ visible: false
+
+ Item {
+ anchors.top: parent.top
+ anchors.horizontalCenter: parent.horizontalCenter
+ height: parent.height * 0.10
+ width: parent.width
+ HeaderMenu {}
+ }
+
+ Item {
+ height: parent.height * 0.90
+ width: parent.width
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ Video {
+ id: player
+ anchors.fill: parent
+ visible: {
+ var naviString = new RegExp("SDLNavi\.qml")
+ return naviString.test(contentLoader.source);
+ }
+
+ NamedPipeNotifier {
+ id: notifier
+ onReadyRead: {
+ player.source = name
+ player.play()
+ }
+ }
+
+ Component.onCompleted: {
+ notifier.start()
+ }
+ onStopped: {
+ notifier.start()
+
+ }
+ function startStream(url) {
+ notifier.name = url
+ notifier.start()
+ }
+ }
+
+ Loader {
+ id: contentLoader
+ height: parent.height - Constants.margin
+ width: parent.width - 2 * Constants.margin
+ asynchronous: true
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.leftMargin: Constants.margin
+ anchors.rightMargin: Constants.margin
+ anchors.bottomMargin: Constants.margin
+
+
+ source:startQml
+ property var viewTransitionStack : []
+
+ function reset() {
+ viewTransitionStack = []
+ }
+
+ property string currentLocation
+ function go(path, appId) {
+ console.debug("enter:", path, ", appId:", appId)
+ if (path) {
+ if (currentLocation !== path) {
+ viewTransitionStack.push({ uri: source.toString(), applicationContext: false })
+ if (appId) {
+ dataContainer.setCurrentApplication(appId)
+ }
+ item.leaveScreen()
+ currentLocation = path
+ source = path
+ }
+ }
+ console.debug("exit")
+ }
+
+ function back() {
+ if (viewTransitionStack.length) {
+ item.leaveScreen()
+ source = viewTransitionStack.pop().uri
+ }
+ currentLocation = ""
+ }
+
+ onStatusChanged: {
+ if (status == Component.Ready) {
+ if (!dataContainer.activeAlert) {
+ dataContainer.applicationContext = item.applicationContext
+ }
+ else {
+ dataContainer.applicationSavedContext = item.applicationContext
+ }
+ if (viewTransitionStack && viewTransitionStack.length) {
+ viewTransitionStack[viewTransitionStack.length - 1].applicationContext = item.applicationContext
+ }
+ dataContainer.setSystemContext()
+ }
+ }
+ }
+ }
+
+ WarningInfo { id: warningInfo }
+
+ VRHelpPopup {
+ id: vrHelpPopup
+ popUpName: "UI.VrHelp"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ InteractionPopup {
+ id: interactionPopup
+ popUpName: "UI.PerformInteraction"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ SliderPopup {
+ id: sliderPopup
+ popUpName: "UI.Slider"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ PerformAudioPassThruPopup {
+ id: performAudioPassThruPopup
+ popUpName: "UI.PerformAudioPassThru"
+ anchors.centerIn: parent
+ visible: false
+ }
+
+ AlertWindow {
+ id: alertWindow
+ popUpName: "UI.Alert"
+ objectName: "AlertWindow"
+ anchors.fill: parent
+ visible: false
+ }
+ }
+
+ Item {
+ id: simulationScreen
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.left: mainScreen.right
+ width: simulationPanel.width
+ clip: true
+ SimulationView {
+ id: simulationPanel
+
+ VRPopUp {
+ id: vrPopUp
+ visible: false
+ anchors.fill: parent
+ }
+
+ TTSPopUp {
+ id: ttsPopUp
+ anchors.top: parent.top
+ anchors.right: parent.right
+ visible: false
+ }
+ }
+ }
+
+ Item {
+ id: hardwareScreen
+ anchors.top: mainScreen.bottom
+ anchors.left: parent.left
+ anchors.right: simulationScreen.left
+ height: hardwarePanel.height
+ clip: true
+ HardwareButtonsView { id: hardwarePanel }
+ }
+
+ HMIProxy {
+ HmiApi.ButtonsProxy {
+ id: sdlButtons
+ objectName: "Buttons"
+ }
+ HmiApi.BasicCommunicationProxy {
+ id: sdlBasicCommunication
+ objectName: "BasicCommunication"
+ }
+ HmiApi.VRProxy {
+ id: sdlVR
+ objectName: "VR"
+ }
+ HmiApi.TTSProxy {
+ id: sdlTTS
+ objectName: "TTS"
+ }
+ HmiApi.NavigationProxy {
+ id: sdlNavigation
+ objectName: "Navigation"
+ }
+ HmiApi.VehicleInfoProxy {
+ id: sdlVehicleInfo
+ objectName: "VehicleInfo"
+ }
+ HmiApi.UIProxy {
+ id: sdlUI
+ objectName: "UI"
+ }
+ }
+
+ SDLProxy {
+ id: sdlProxy
+
+ onAppRegistered: {
+ var appTypeToAdd = 0
+ if (application.appType !== undefined) {
+ for (var index in application.appType) {
+ if (application.appType[index] > 31) {
+ return { __retCode: Common.Result.GENERIC_ERROR, __message: "Apptype value > 31" }
+ }
+ appTypeToAdd |= 1 << application.appType[index]
+ }
+ }
+
+ dataContainer.addApplication(
+ {
+ appName: application.appName,
+ ngnMediaScreenAppName: application.ngnMediaScreenAppName,
+ icon: application.icon,
+ deviceName: application.deviceName,
+ appId: application.appId,
+ hmiDisplayLanguageDesired: application.hmiDisplayLanguageDesired,
+ isMediaApplication: application.isMediaApplication,
+ appType: appTypeToAdd,
+ hmiUIText: { },
+ mediaClock: {
+ "updateMode": Internal.MediaClockUpdateMode.MCU_COUNTUP,
+ "runningMode": Internal.MediaClockRunningMode.MCR_STOPPED,
+ "startTime": -1,
+ "endTime": -1,
+ "startTimeForProgress": -1
+ }
+ });
+ }
+
+ onAppUnregistered: {
+ console.debug("enter")
+ console.debug("Resume unregister:", resume)
+ if (resume) {
+ dataContainer.stashApplication(appId);
+ }
+ dataContainer.removeApplication(appId);
+ if ((dataContainer.currentApplication.appId === appId)) {
+ if (dataContainer.applicationContext) {
+ contentLoader.go("views/ApplicationListView.qml");
+ }
+ if (contentLoader.viewTransitionStack.filter(function(x) { return x.applicationContext })) {
+ contentLoader.reset();
+ }
+ dataContainer.currentApplication.reset()
+ }
+ console.debug("exit")
+ }
+
+ onPlayTone: {
+ beep.play()
+ }
+
+ }
+
+ Component.onCompleted: {
+ dataContainer.hmiVRAvailable = true
+ dataContainer.hmiTTSAvailable = true
+ dataContainer.hmiNavigationAvailable = true
+ dataContainer.hmiVehicleInfoAvailable = true
+ dataContainer.hmiUIAvailable = true
+
+ sdlBasicCommunication.onReady()
+ }
+
+ /*
+ * Test Support Section
+ *
+ */
+ function getSlider(){
+ return sliderPopup
+ }
+
+ function getDataStorage(){
+ return dataContainer
+ }
+
+ function getUIProxy(){
+ return sdlUI
+ }
+
+ function getMainScreen(){
+ return mainScreen
+ }
+
+ function getContentLoader(){
+ return contentLoader
+ }
+
+ function getWarningInfo(){
+ return warningInfo
+ }
+ /*
+ * Test Support Section End
+ */
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ArrowKeys.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ArrowKeys.qml
new file mode 100644
index 000000000..58cba1770
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ArrowKeys.qml
@@ -0,0 +1,68 @@
+/**
+ * @file ArrowKeys.qml
+ * @brief Keys with arrow for cursor movement.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+
+Item {
+ width: buttonOk.width
+ height: buttonOk.height
+
+ HardwareButton {
+ id: arrowUp
+ buttonId: Common.ButtonName.TUNEUP
+ name: "Up"
+ }
+ HardwareButton {
+ id: arrowDown
+ buttonId: Common.ButtonName.TUNEDOWN
+ name: "Down"
+ }
+ HardwareButton {
+ id: arrowLeft
+ buttonId: Common.ButtonName.SEEKLEFT
+ name: "Left"
+ }
+ HardwareButton {
+ id: arrowRight
+ buttonId: Common.ButtonName.SEEKRIGHT
+ name: "Right"
+ }
+ HardwareButton {
+ id: buttonOk
+ buttonId: Common.ButtonName.OK
+ name: "Ok"
+ longPressAvailable: false
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/BackButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/BackButton.qml
new file mode 100644
index 000000000..5d82f1559
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/BackButton.qml
@@ -0,0 +1,48 @@
+/**
+ * @file BackButton.qml
+ * @brief Button "Back" that return to previous menu.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+OvalButton {
+ text: "Back"
+ onClicked: { contentLoader.back() }
+ fontSize: Constants.fontSize
+ opacity: 0
+
+ NumberAnimation on opacity {
+ to: 1;
+ duration: Constants.animationDuration
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/CircleButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/CircleButton.qml
new file mode 100644
index 000000000..f0755b398
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/CircleButton.qml
@@ -0,0 +1,87 @@
+/**
+ * @file CircleButton.qml
+ * @brief Parent class for circle button.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+Image {
+ id: circleBtn
+ source: imgOff
+ property alias text: btnText.text
+ property alias pixelSize: btnText.font.pixelSize
+ property string dest: ""
+ property bool isPressed: false
+ property string imgOff: "../res/buttons/round_btn.png"
+ property string imgOn: "../res/buttons/round_pressed_btn.png"
+ property string textColorOnPressed: Constants.secondaryColor
+ property string textColorDefault: Constants.primaryColor
+
+ signal clicked()
+ function wasClicked()
+ {
+ clicked()
+ }
+
+ Text {
+ anchors.centerIn: parent
+ id: btnText
+ color: textColorDefault
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ console.log("CircleButton onPressed enter");
+ source = imgOn
+ btnText.color = textColorOnPressed
+ isPressed = true
+ console.log("CircleButton onPressed exit");
+ }
+ onReleased: {
+ console.log("CircleButton onReleased enter");
+ source = imgOff
+ btnText.color = textColorDefault
+ isPressed = false
+ console.log("CircleButton onReleased exit");
+ }
+ onClicked: {
+ console.log("CircleButton onClicked enter");
+ if(dest !== ""){
+ contentLoader.go(dest)
+ }
+ circleBtn.wasClicked()
+ console.log("CircleButton onClicked enter");
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClickableImage.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClickableImage.qml
new file mode 100644
index 000000000..dc1231570
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClickableImage.qml
@@ -0,0 +1,66 @@
+/**
+ * @file ClickableImage.qml
+ * @brief Clickable image item
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+Image {
+ signal pressed ()
+ signal released ()
+ signal canceled ()
+ signal clicked()
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ parent.scale = Constants.pressedIconScale
+ parent.pressed()
+ }
+
+ onReleased: {
+ parent.scale = 1
+ parent.released()
+ }
+
+ onCanceled: {
+ parent.scale = 1
+ parent.canceled()
+ }
+
+ onClicked: {
+ parent.clicked()
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClickableText.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClickableText.qml
new file mode 100644
index 000000000..c56e3dc13
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClickableText.qml
@@ -0,0 +1,77 @@
+/**
+ * @file ClickableText.qml
+ * @brief Clickable text item
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+Text {
+ property string defaultColor
+ property string pressedColor
+ signal pressed ()
+ signal released ()
+ signal canceled ()
+ signal clicked ()
+
+ color: defaultColor
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ press()
+ parent.pressed()
+ }
+
+ onReleased: {
+ release()
+ parent.released()
+ }
+
+ onCanceled: {
+ release()
+ parent.canceled()
+ }
+
+ onClicked: {
+ parent.clicked()
+ }
+ }
+
+ function press () {
+ color = pressedColor
+ }
+
+ function release () {
+ color = defaultColor
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClimateControlBtn.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClimateControlBtn.qml
new file mode 100644
index 000000000..9211ac1ba
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ClimateControlBtn.qml
@@ -0,0 +1,93 @@
+/**
+ * @file ClimateControlBtn.qml
+ * @brief Round button, which is used at climat menu.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+Item
+{
+ id: climateControlBtn
+ width: climateBtnImg.width
+ height: climateBtnImg.height
+ property string name: ""
+ property string txt: ""
+ state: "off"
+
+ Image {
+ id: climateBtnImg
+ source: climateControlBtn.state === "off" ? "../res/climate/climate_round_off_btn.png" : "../res/climate/climate_round_on_btn.png"
+
+ Image {
+ id: hoverImg
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ property string st: climateControlBtn.state === "off" ? "_off" : "_on"
+ source: climateControlBtn.name === "" ? "": "../res/climate/" + climateControlBtn.name + st + ".png"
+ }
+
+ Text {
+ id: hoverText
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ text: climateControlBtn.txt
+ font.pixelSize: Constants.fontSize
+ color: climateControlBtn.state === "off" ? Constants.primaryColor : Constants.secondaryColor
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ if(climateControlBtn.state === "on") {
+ climateControlBtn.state = "off"
+ climateBtnImg.source = "../res/climate/climate_round_off_btn.png"
+ if(climateControlBtn.txt != "") {
+ hoverText.color = Constants.primaryColor
+ }
+ if(climateControlBtn.name != "") {
+ hoverImg.source = "../res/climate/" + climateControlBtn.name + "_off.png"
+ }
+ } else {
+ climateControlBtn.state = "on"
+ climateBtnImg.source = "../res/climate/climate_round_on_btn.png"
+ if(climateControlBtn.txt != "") {
+ hoverText.color = Constants.secondaryColor
+ }
+ if(climateControlBtn.name != "") {
+ hoverImg.source = "../res/climate/" + climateControlBtn.name + "_on.png"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/GradientRectangle.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/GradientRectangle.qml
new file mode 100644
index 000000000..3695070df
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/GradientRectangle.qml
@@ -0,0 +1,125 @@
+/**
+ * @file GradientRectangle.qml
+ * @brief Rectangle with gradient.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+
+Rectangle {
+ property string firstColor: "grey"
+ property string secondColor: "#2E2E2E"
+ property alias fontSize: text.font.pixelSize
+ property alias text: text.text
+ property int customButtonID
+ property bool isCustomButton: false
+ property bool clickProcessed
+ signal pressed()
+ signal released()
+
+ radius: 5
+ border.color: "#D3D3D3"
+
+ Text {
+ id: text
+ anchors.fill: parent
+ font.pixelSize: Constants.titleFontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ firstColor = "#2E2E2E"
+ secondColor = "grey"
+ parent.pressed()
+ }
+ onReleased: {
+ firstColor = "grey"
+ secondColor = "#2E2E2E"
+ parent.released()
+ }
+ }
+
+ Timer {
+ id: timer
+ interval: Constants.customButtonTimer
+ repeat: false
+ triggeredOnStart: false
+ }
+
+ onPressed: {
+ if (isCustomButton) {
+ timer.start()
+ clickProcessed = false
+ sdlButtons.onButtonEvent(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonEventMode.BUTTONDOWN, customButtonID)
+ }
+ }
+
+ onReleased: {
+ if (isCustomButton) {
+ sdlButtons.onButtonEvent(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonEventMode.BUTTONUP, customButtonID)
+ timer.stop()
+ if (!clickProcessed) {
+ sdlButtons.onButtonPress(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonPressMode.SHORT, customButtonID)
+ }
+ }
+ }
+
+ Connections {
+ target: timer
+ onTriggered: {
+ if (isCustomButton) {
+ if(!clickProcessed) {
+ sdlButtons.onButtonPress(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonPressMode.LONG, customButtonID)
+ clickProcessed = true
+ }
+ }
+ }
+ }
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0.1
+ color: firstColor
+ }
+ GradientStop {
+ position: 0.5
+ color: secondColor
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/GridItem.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/GridItem.qml
new file mode 100644
index 000000000..39e1f0d7c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/GridItem.qml
@@ -0,0 +1,53 @@
+/**
+ * @file GridItem.qml
+ * @brief Item with animation for GridMenu
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+Item {
+ id: item
+ opacity: 0
+ SequentialAnimation {
+ id: animation
+ PauseAnimation {duration: index * 100 }
+ NumberAnimation {
+ target: item
+ duration: Constants.animationDuration
+ property: "opacity"
+ from: 0; to: 1;
+ }
+ }
+ Component.onCompleted: {
+ animation.start()
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/HardwareButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/HardwareButton.qml
new file mode 100644
index 000000000..47f034082
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/HardwareButton.qml
@@ -0,0 +1,108 @@
+/**
+ * @file HardwareButton.qml
+ * @brief Parent class for hardware button.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import com.ford.sdl.hmi.hw_buttons 1.0
+import "../hmi_api/Common.js" as Common
+
+MaskedContainer {
+ property string name
+ property int buttonId: Common.ButtonName.CUSTOM_BUTTON
+ property bool upDownAvailable: true
+ property bool shortPressAvailable: true
+ property bool longPressAvailable: true
+
+ signal hold
+
+ Image {
+ source: "../res/controlButtons/" + name + "Button.png"
+ }
+ Image {
+ id: pressedImg
+ source: "../res/controlButtons/" + name + "Button_pressed.png"
+ visible: false
+ Behavior on opacity {
+ NumberAnimation { duration: 80 }
+ }
+ }
+ Timer {
+ id: timer
+ interval: 2000
+ repeat: false
+ triggeredOnStart: false
+ }
+ property bool clickProcessed
+ onPressed: {
+ clickProcessed = false
+ pressedImg.visible = true
+ timer.start()
+ if (upDownAvailable) {
+ sdlButtons.onButtonEvent(buttonId, Common.ButtonEventMode.BUTTONDOWN, undefined)
+ }
+ }
+
+ onReleased: {
+ if (upDownAvailable) {
+ sdlButtons.onButtonEvent(buttonId, Common.ButtonEventMode.BUTTONUP, undefined)
+ }
+ timer.stop()
+ if (!clickProcessed && shortPressAvailable) {
+ sdlButtons.onButtonPress(buttonId, Common.ButtonPressMode.SHORT, undefined)
+ }
+ pressedImg.visible = false
+ }
+
+ Connections {
+ target: timer
+ onTriggered: {
+ if(!clickProcessed && longPressAvailable) {
+ sdlButtons.onButtonPress(buttonId, Common.ButtonPressMode.LONG, undefined)
+ clickProcessed = true
+ hold()
+ }
+ }
+ }
+
+ Component.onCompleted: {
+ if (buttonId !== Common.ButtonName.CUSTOM_BUTTON) {
+ settingsContainer.buttonCapabilities.push(
+ {
+ name: buttonId,
+ upDownAvailable: upDownAvailable,
+ shortPressAvailable: shortPressAvailable,
+ longPressAvailable: longPressAvailable
+ });
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/HeaderMenu.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/HeaderMenu.qml
new file mode 100644
index 000000000..afc6ea0ca
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/HeaderMenu.qml
@@ -0,0 +1,134 @@
+/**
+ * @file HeaderMenu.qml
+ * @brief Header menu view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+Item {
+ id: headerMenu
+ anchors.fill: parent
+
+ Text {
+ anchors.leftMargin: Constants.margin
+ anchors.topMargin: Constants.margin
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize
+ text: "75°"
+ }
+
+ Item {
+ width: menuText.width
+ height: parent.height
+ anchors.topMargin: Constants.margin
+ anchors.horizontalCenter: headerMenu.horizontalCenter
+ signal clicked ()
+
+ ClickableText {
+ id: menuLogo
+ anchors.horizontalCenter: menuText.horizontalCenter
+ anchors.bottom: parent.verticalCenter
+ text: "≡"
+ defaultColor: Constants.primaryColor
+ pressedColor: Constants.primaryColorPressed
+ font.pixelSize: Constants.fontSize
+
+ onClicked: parent.clicked()
+ onPressed: menuText.press()
+ onReleased: menuText.release()
+ onCanceled: menuText.release()
+ }
+
+ ClickableText {
+ id: menuText
+ anchors.top: parent.verticalCenter
+ text: "MENU";
+ defaultColor: Constants.primaryColor
+ pressedColor: Constants.primaryColorPressed
+ font.pixelSize: Constants.fontSize
+
+ onClicked: parent.clicked()
+ onPressed: menuLogo.press()
+ onReleased: menuLogo.release()
+ onCanceled: menuLogo.release()
+ }
+
+ onClicked: {
+ contentLoader.go("./views/MainMenuView.qml")
+ }
+ }
+
+ Row {
+ id: clock
+ height: childrenRect.height
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.rightMargin: Constants.margin
+ anchors.topMargin: Constants.margin
+ property date date: new Date()
+
+ Timer {
+ running: true
+ repeat: true
+ interval: 1000
+ onTriggered: {
+ clock.date = new Date();
+ }
+ }
+
+ Text {
+ text: Qt.formatTime(clock.date, "hh");
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize;
+ }
+
+ Item {
+ width: 10
+ height: parent.height
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: clock.date.getSeconds() % 2 ? ":" : ""
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize;
+ }
+ }
+
+ Text {
+ text: Qt.formatTime(clock.date, "mm");
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize;
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/Icon.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/Icon.qml
new file mode 100644
index 000000000..2aa701942
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/Icon.qml
@@ -0,0 +1,65 @@
+/**
+ * @file Navigation.qml
+ * @brief Icon.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+
+Item {
+ property var source
+
+ Image {
+ anchors.fill: parent
+ source: url(parent.source)
+
+ function image(turnIcon) {
+ if (turnIcon && turnIcon.imageType === Common.ImageType.STATIC) {
+ return turnIcon.value;
+ } else {
+ return "";
+ }
+ }
+
+ function url(turnIcon) {
+ if (turnIcon && turnIcon.imageType === Common.ImageType.DYNAMIC) {
+ return turnIcon.value;
+ } else {
+ return "";
+ }
+ }
+ }
+
+ function reset () {
+ source = undefined
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ListItem.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ListItem.qml
new file mode 100644
index 000000000..637323724
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ListItem.qml
@@ -0,0 +1,70 @@
+/**
+ * @file Entry.qml
+ * @brief Entry with icon and text for list.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+Rectangle {
+ id: main
+ color: Constants.transparentColor
+
+ property alias text: label.text
+ property alias fontSize: label.font.pixelSize
+ property alias icon: image.source
+
+ Icon {
+ id: image
+ width: Constants.iconItemListSize
+ height: Constants.iconItemListSize
+ anchors.left: parent.left
+ anchors.leftMargin: Constants.generalSpacing
+ anchors.verticalCenter: parent.verticalCenter
+ visible: source ? true : false
+ }
+ Text {
+ id: label
+ anchors.verticalCenter: parent.verticalCenter
+ height: image.height
+ width: parent.width - image.width
+ z: 50
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: Constants.fontSize
+ text: "Name Entry"
+ anchors.left: image.right
+ anchors.leftMargin: Constants.generalSpacing
+ anchors.verticalCenterOffset: 0
+ visible: text !== ""
+ color: Constants.primaryColor
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/MaskedButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/MaskedButton.qml
new file mode 100644
index 000000000..a7f91dd39
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/MaskedButton.qml
@@ -0,0 +1,64 @@
+/**
+ * @file MaskedButton.qml
+ * @brief Masked button.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import com.ford.sdl.hmi.hw_buttons 1.0
+
+MaskedContainer {
+ property string name
+
+ Image {
+ id: icon
+ source: "../res/controlButtons/" + name + "Button.png"
+ }
+
+ onPressed: {
+ state = "pressed";
+ }
+
+ onReleased: {
+ state = "";
+ }
+
+ states: [
+ State {
+ name: "pressed"
+ PropertyChanges {
+ target: icon
+ source: "../res/controlButtons/" + name + "Button_pressed.png"
+ }
+ }
+
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/MultiTouchArea.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/MultiTouchArea.qml
new file mode 100644
index 000000000..32626d292
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/MultiTouchArea.qml
@@ -0,0 +1,103 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+
+MultiPointTouchArea {
+ property date created
+
+ minimumTouchPoints: 1
+ maximumTouchPoints: 10
+
+ MouseArea {
+ anchors.fill: parent
+
+ function mouseTouchEvent() {
+ var now = new Date()
+ var touchEvents = [
+ {
+ id: 0,
+ ts: [now.valueOf() - created.valueOf()],
+ c: [{x: mouseX, y: mouseY}]
+ }
+ ]
+ return touchEvents
+ }
+
+ onPressed: {
+ sdlUI.onTouchEvent(Common.TouchType.BEGIN, mouseTouchEvent())
+ }
+ onReleased: {
+ sdlUI.onTouchEvent(Common.TouchType.END, mouseTouchEvent())
+ }
+ onCanceled: {
+ sdlUI.onTouchEvent(Common.TouchType.END, mouseTouchEvent())
+ }
+ onPositionChanged: {
+ sdlUI.onTouchEvent(Common.TouchType.MOVE, mouseTouchEvent())
+ }
+ }
+
+ function touchEvents() {
+ var now = new Date()
+ var touchEvents = []
+ for (var i = 0; i < touchPoints.length; ++i) {
+ touchEvents.push(
+ {
+// pointId is guaranteed to be unique but is not guaranteed to fit in range
+// perhaps we will have to edit protocol xml
+ id: touchPoints[i].pointId,
+ ts: [now.valueOf() - created.valueOf()],
+ c: [{x: touchPoints[i].x, y: touchPoints[i].y}]
+ }
+ )
+ }
+ return touchEvents
+ }
+
+ onPressed: {
+ sdlUI.onTouchEvent(Common.TouchType.BEGIN, touchEvents())
+ }
+ onReleased: {
+ sdlUI.onTouchEvent(Common.TouchType.END, touchEvents())
+ }
+ onCanceled: {
+ sdlUI.onTouchEvent(Common.TouchType.END, touchEvents())
+ }
+ onUpdated: {
+ sdlUI.onTouchEvent(Common.TouchType.MOVE, touchEvents())
+ }
+ Component.onCompleted: {
+ created = new Date()
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/OvalButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/OvalButton.qml
new file mode 100644
index 000000000..6d68a9096
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/OvalButton.qml
@@ -0,0 +1,246 @@
+/**
+ * @file OvalButton.qml
+ * @brief Oval button with flexible width.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+import "../models/Constants.js" as Constants
+
+// Don't change constants. It break button
+// TODO (dchmerev@luxoft.com): make this comment more clear
+// todo (ykazakov): eliminate this problem and remove all such comments
+
+Item {
+ id: main
+ width: dynamic ? field.width + 2 * left.width : Constants.ovalButtonWidth
+ height: Constants.ovalButtonHeight
+
+ signal clicked;
+ signal pressed;
+ signal released;
+ signal pressAndHold;
+ property alias text: label.text
+ property alias fontSize: label.font.pixelSize
+ property alias icon: image.source
+ property bool highlighted: false
+ property bool dynamic: false
+ property bool disabled: false
+
+ function hue() {
+ var ret = 0;
+ if (disabled) {
+ ret = Constants.disabledButtonHue;
+ } else if (highlighted) {
+ ret = Constants.highlightedButtonHue;
+ }
+ return ret;
+ }
+
+ function saturation() {
+ var ret = 0;
+ if (disabled) {
+ ret = Constants.disabledButtonSaturation;
+ } else if (highlighted) {
+ ret = Constants.highlightedButtonSaturation;
+ }
+ return ret;
+ }
+
+ function lightness() {
+ var ret = 0;
+ if (disabled) {
+ ret = Constants.disabledButtonLightness;
+ } else if (highlighted) {
+ ret = Constants.highlightedButtonLightness;
+ }
+ return ret;
+ }
+
+ Item {
+ id: buttonBorderImage
+ visible: false
+ anchors.fill: parent
+ Image {
+ id: left
+ width: 31
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ anchors.top: parent.top
+ source: "../res/buttons/oval_btn_left.png"
+ }
+
+ Image {
+ id: right
+ width: 31
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.right: parent.right
+ source: "../res/buttons/oval_btn_right.png"
+ }
+
+ Image {
+ id: top
+ height: 10
+ anchors.right: parent.right
+ anchors.rightMargin: 31
+ anchors.left: parent.left
+ anchors.leftMargin: 31
+ anchors.top: parent.top
+ fillMode: Image.TileHorizontally
+ source: "../res/buttons/oval_btn_top.png"
+ }
+
+ Image {
+ id: bottom
+ height: 11
+ anchors.right: parent.right
+ anchors.rightMargin: 31
+ anchors.left: parent.left
+ anchors.leftMargin: 31
+ anchors.bottom: parent.bottom
+ fillMode: Image.TileHorizontally
+ source: "../res/buttons/oval_btn_bottom.png"
+ }
+ }
+
+ HueSaturation {
+ anchors.fill: buttonBorderImage
+ source: buttonBorderImage
+ hue: main.hue()
+ saturation: main.saturation()
+ lightness: main.lightness()
+ }
+
+ Rectangle {
+ id: background
+ color: Constants.transparentColor
+ anchors.fill: parent
+ anchors.rightMargin: 31
+ anchors.leftMargin: 31
+ anchors.bottomMargin: 10
+ anchors.topMargin: 10
+ visible: false
+ }
+
+ HueSaturation {
+ anchors.fill: background
+ source: background
+ hue: main.hue()
+ saturation: main.saturation()
+ lightness: main.lightness()
+ }
+
+ MouseArea {
+ id: mousearea
+ anchors.rightMargin: 15
+ anchors.leftMargin: 15
+ anchors.bottomMargin: 11
+ anchors.topMargin: 10
+ anchors.fill: parent
+ enabled: !parent.disabled
+ onPressed: {
+ parent.state = "pressed";
+ parent.pressed();
+ }
+ onReleased: {
+ parent.state = "";
+ parent.released();
+ }
+ onClicked: {
+ parent.clicked();
+ }
+ onPressAndHold: {
+ parent.pressAndHold();
+ }
+ onCanceled: {
+ parent.state = "";
+ }
+ }
+
+ Item {
+ id: field
+ anchors.fill: background
+
+ Icon {
+ id: image
+ width: Constants.iconButtonSize
+ height: Constants.iconButtonSize
+ anchors.verticalCenter: parent.verticalCenter
+ visible: source ? true : false
+ }
+ Text {
+ id: label
+ width: image.visible ? parent.width - image.width : parent.width
+ color: Constants.primaryColor
+ anchors.centerIn: parent
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: Constants.ovalButtonFontSize
+ visible: false
+ elide: Text.ElideRight
+ }
+ HueSaturation {
+ anchors.fill: label
+ source: label
+ hue: main.hue()
+ saturation: main.saturation()
+ lightness: main.lightness()
+ visible: label.text !== ""
+ }
+ }
+
+ states: [
+ State {
+ name: "pressed"
+ PropertyChanges {
+ target: left
+ source: "../res/buttons/oval_btn_pressed_left.png"
+ }
+
+ PropertyChanges {
+ target: right
+ source: "../res/buttons/oval_btn_pressed_right.png"
+ }
+
+ PropertyChanges {
+ target: background
+ color: Constants.primaryColor
+ }
+
+ PropertyChanges {
+ target: label
+ color: Constants.secondaryColor
+ }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PagedFlickable.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PagedFlickable.qml
new file mode 100644
index 000000000..5b150d560
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PagedFlickable.qml
@@ -0,0 +1,105 @@
+/**
+ * @file PagedFlickable.qml
+ * @brief Animated row.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+Item
+{
+ id: flickablePage
+ height: container.height + pager.height
+ default property alias content: containerRow.children
+ property alias spacing: containerRow.spacing
+ property int elementWidth
+ property int snapTo
+ property int count: 0
+
+ Flickable {
+ id: container
+ anchors.bottom: parent.bottom
+ maximumFlickVelocity: 1500
+ contentWidth: containerRow.width
+ height: containerRow.height
+ width: parent.width
+ interactive: contentWidth > width
+
+ onMovementEnded: {
+ var rest = contentX % snapTo
+ var t = 0.25
+ if (rest > parent.snapTo / 2) {
+ rest = rest - parent.snapTo
+ }
+ var vel = 2 * rest / t
+ flickDeceleration = Math.abs(vel) / t
+ flick(vel, 0)
+ flickDeceleration = 1500
+ }
+ Row {
+ id: containerRow
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ }
+
+ Pager {
+ id: pager
+ space: 7
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+
+ pages: {
+ if ( (container.contentWidth % container.width) >= (flickablePage.elementWidth / 2 + flickablePage.spacing)) {
+ return Math.ceil(container.contentWidth / container.width)
+ }
+ else {
+ return Math.floor(container.contentWidth / container.width)
+ }
+ }
+
+ activePage: {
+ if (container.contentX <= 0) {
+ return 0
+ }
+ else if ( (container.contentWidth - container.contentX) < container.width) {
+ return pages -1
+ }
+ else {
+ if ( (container.contentX % container.width) >= (flickablePage.elementWidth / 2 + flickablePage.spacing)) {
+ return Math.ceil(container.contentX / container.width)
+ }
+ else if ( (container.contentX % container.width) > 0) {
+ return Math.floor(container.contentX / container.width)
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/Pager.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/Pager.qml
new file mode 100644
index 000000000..53d99436c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/Pager.qml
@@ -0,0 +1,53 @@
+/**
+ * @file Pager.qml
+ * @brief Bubbles that indicate about page switch.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+Row {
+ id: pager
+ property int pages
+ property int activePage: 0
+ property int space
+ property int itemsInRowOnScreen: 3
+
+ spacing: space
+ visible: pages !== 1
+
+ Repeater {
+ model: pages
+ Image {
+ source: index === activePage ? "../res/white_ball.png" : "../res/blue_ball.png"
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PlayPauseButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PlayPauseButton.qml
new file mode 100644
index 000000000..bb1cb3838
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PlayPauseButton.qml
@@ -0,0 +1,77 @@
+/**
+ * @file PlayPauseButton.qml
+ * @brief Behavior of Play/Pause button.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+Image {
+ id: playPauseButton
+ property string sourceOnPressed: ""
+ property string sourceOnReleased: ""
+
+ signal clicked
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ playPauseButton.source = playPauseButton.sourceOnPressed
+ }
+ onReleased: {
+ playPauseButton.source = playPauseButton.sourceOnReleased
+ }
+ onClicked: {
+ playPauseButton.clicked()
+ }
+ }
+ states: [
+ State {
+ name: "Play"
+ PropertyChanges {
+ target: playPauseButton
+ source: "../res/buttons/player_play_btn.png"
+ sourceOnPressed: "../res/buttons/player_play_pressed_btn.png"
+ sourceOnReleased: "../res/buttons/player_pause_btn.png"
+ }
+ },
+
+ State {
+ name: "Pause"
+ PropertyChanges {
+ target: playPauseButton
+ source: "../res/buttons/player_pause_btn.png"
+ sourceOnPressed: "../res/buttons/player_pause_pressed_btn.png"
+ sourceOnReleased: "../res/buttons/player_play_btn.png"
+ }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PowerSwitchButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PowerSwitchButton.qml
new file mode 100644
index 000000000..95a751c39
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PowerSwitchButton.qml
@@ -0,0 +1,75 @@
+/**
+ * @file PowerSwitchBtn.qml
+ * @brief On/Off button.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+Rectangle {
+ id: powerSwitchBtn
+ state: "Turn ON"
+ width: 120
+ height: 80
+ radius: 5
+ property bool pressed;
+
+ gradient: Gradient {
+ GradientStop { position: pressed ? 1.0 : 0.0; color: "#2c2c2c" }
+ GradientStop { position: pressed ? 0.0 : 1.0; color: "black" }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.pressed = true
+ }
+ onReleased: {
+ parent.pressed = false
+ parent.state = parent.state === "Turn ON" ? "Turn OFF" : "Turn ON"
+ btnText.text = parent.state
+ if (parent.state === "Turn OFF") {
+ contentLoader.reset()
+ mainScreen.visible = true
+ warningInfo.showOkButton()
+ }
+ }
+ }
+
+ Text {
+ id: btnText
+ color: "red"
+ text: parent.state
+ anchors.centerIn: parent
+ font.pixelSize: Constants.powerButtonFornSize
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PresetRow.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PresetRow.qml
new file mode 100644
index 000000000..32e74d71b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PresetRow.qml
@@ -0,0 +1,106 @@
+/**
+ * @file PresetRow.qml
+ * @brief Animated row with radio stations.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+Item {
+ id: presetRow
+ height: childrenRect.height
+ property variant presets: []
+ property int selectedIndex: 0
+ signal presetSelected
+ signal presetButtonPressed()
+ signal presetButtonReleased()
+ signal presetButtonClicked()
+ signal presetButtonHold()
+
+ Image {
+ id: circleButton
+ source: "../res/buttons/preset_pressed_btn.png"
+ visible: false
+ enabled: false
+ }
+
+ PagedFlickable {
+ width: parent.width
+ spacing: (width - (circleButton.width * 4)) / 3
+ snapTo: spacing + circleButton.width
+ elementWidth: circleButton.width
+
+ Repeater {
+ model: presetRow.presets.length
+ delegate:
+ Column {
+ width: circleButton.width
+ Image {
+ anchors.horizontalCenter: parent.horizontalCenter
+ source: presetRow.selectedIndex === index ? "../res/buttons/preset_pressed_btn.png" : "../res/buttons/preset_btn.png"
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ presetRow.selectedIndex = index;
+ presetButtonPressed()
+ }
+ onReleased: {
+ presetRow.selectedIndex = index;
+ presetButtonReleased()
+ }
+ onClicked: {
+ presetRow.selectedIndex = index
+ presetButtonClicked()
+ }
+ onPressAndHold: {
+ presetRow.selectedIndex = index;
+ presetButtonHold()
+ }
+ }
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ text: index + 1
+ font.pixelSize: Constants.fontSize
+ color: presetRow.selectedIndex === index ? Constants.secondaryColor : Constants.primaryColor
+ }
+ }
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: presetRow.presets[index]
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PushButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PushButton.qml
new file mode 100644
index 000000000..f83370a20
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/PushButton.qml
@@ -0,0 +1,136 @@
+/**
+ * @file PushButton.qml
+ * @brief Simple button
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+Rectangle {
+ id: toggleButton
+ width: 160
+ height: 40
+ radius: 2
+ border.width: 2
+ border.color: "#000000"
+ gradient: grUnpressed
+
+ property alias label : label.text
+
+ signal pressed()
+ signal unpressed()
+ signal clicked()
+
+ property bool toggleMode: false
+
+ state: "unpressed"
+ onStateChanged: {
+ if (state == "pressed") {
+ pressed();
+ } else {
+ unpressed();
+ }
+ }
+
+ Text {
+ id: label
+ color: "white"
+ text: "PushButton"
+ font.pixelSize: 18
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.fill: parent
+ }
+ MouseArea {
+ id: mouseArea
+
+ anchors.fill: parent
+ onPressed: {
+ if (toggleMode) {
+ if (parent.state == "unpressed") {
+ parent.state = "pressed"
+ } else {
+ parent.state = "unpressed"
+ }
+ } else {
+ parent.state = "pressed"
+ }
+ }
+ onReleased: {
+ if (!toggleMode) {
+ parent.state = "unpressed"
+ if (mouse.isClick) {
+ parent.clicked()
+ }
+ }
+ }
+ }
+
+ states: [
+ State {
+ name: "pressed"
+ PropertyChanges {
+ target: toggleButton
+ gradient: grPressed
+ }
+ },
+ State {
+ name: "unpressed"
+ PropertyChanges {
+ target: toggleButton
+ gradient: grUnpressed
+ }
+ }
+ ]
+
+ Gradient {
+ id: grUnpressed
+
+ GradientStop { position: 0.0; color: "#2c2c2c" }
+ GradientStop { position: 1.0; color: "#0c0c0c" }
+ }
+
+ Gradient {
+ id: grPressed
+
+ GradientStop { position: 0.0; color: "black" }
+ GradientStop { position: 1.0; color: "black" }
+ }
+
+ transitions: [
+ Transition {
+ from: "unpressed"
+ to: "pressed"
+ reversible: true
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ScrollableListView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ScrollableListView.qml
new file mode 100644
index 000000000..a63960d16
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/ScrollableListView.qml
@@ -0,0 +1,49 @@
+/**
+ * @file ScrollableListView.qml
+ * @brief ListView with scrollbar on the right
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+ListView {
+ clip: true
+
+ Rectangle {
+ visible: parent.height < parent.contentHeight
+ anchors.right: parent.right
+ y: parent.visibleArea.yPosition * parent.height
+ width: Constants.scrollBarWidth
+ height: parent.visibleArea.heightRatio * parent.height
+ color: Constants.primaryColor
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/SoftButton.js b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/SoftButton.js
new file mode 100644
index 000000000..227f63836
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/SoftButton.js
@@ -0,0 +1,39 @@
+/**
+ * @file SoftButton.js
+ * @brief Soft button view constants
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+.pragma library
+
+var Action = {
+ doOnClicked: 0,
+ doOnReleased: 1
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/SoftButton.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/SoftButton.qml
new file mode 100644
index 000000000..0f3cfd714
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/SoftButton.qml
@@ -0,0 +1,97 @@
+/**
+ * @file SoftButton.qml
+ * @brief Soft button view
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+import "SoftButton.js" as SoftButton
+
+OvalButton {
+ property var button
+ property int appId
+ visible: !!button
+
+ signal defaultAction;
+ signal stealFocus;
+ signal keepContext;
+
+ property int actionOrder: SoftButton.Action.doOnClicked
+
+ highlighted: button ? button.isHighlighted : false
+ onPressed: {
+ actionOrder = SoftButton.Action.doOnClicked
+ sdlButtons.onButtonEvent(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonEventMode.BUTTONDOWN, button.softButtonID)
+ }
+
+ onReleased: {
+ if (actionOrder === SoftButton.Action.doOnReleased) {
+ switch (button.systemAction) {
+ case Common.SystemAction.DEFAULT_ACTION:
+ defaultAction();
+ break;
+ case Common.SystemAction.STEAL_FOCUS:
+ stealFocus();
+ break;
+ case Common.SystemAction.KEEP_CONTEXT:
+ keepContext();
+ break;
+ }
+ }
+
+ sdlButtons.onButtonEvent(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonEventMode.BUTTONUP, button.softButtonID)
+ }
+
+ onClicked: {
+ sdlButtons.onButtonPress(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonPressMode.SHORT, button.softButtonID);
+ switch (button.systemAction) {
+ case Common.SystemAction.DEFAULT_ACTION:
+ defaultAction();
+ break;
+ case Common.SystemAction.STEAL_FOCUS:
+ stealFocus();
+ break;
+ case Common.SystemAction.KEEP_CONTEXT:
+ keepContext();
+ break;
+ }
+ }
+
+ onPressAndHold: {
+ actionOrder = SoftButton.Action.doOnReleased; // action should be triggered on release
+ sdlButtons.onButtonPress(Common.ButtonName.CUSTOM_BUTTON, Common.ButtonPressMode.LONG, button.softButtonID);
+ }
+
+ onButtonChanged: {
+ icon = button && button.type !== Common.SoftButtonType.SBT_TEXT ? button.image : undefined;
+ text = button && button.type !== Common.SoftButtonType.SBT_IMAGE ? button.text : ""
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/StatusBar.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/StatusBar.qml
new file mode 100644
index 000000000..c06ebc45e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/controls/StatusBar.qml
@@ -0,0 +1,42 @@
+/**
+ * @file StatusBar.qml
+ * @brief Status bar that contains text string.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+Text {
+ text: dataContainer.currentApplication.hmiUIText.statusBar
+ color: Constants.primaryColor
+ font.pixelSize: Constants.statusBarFontSize
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Async.js b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Async.js
new file mode 100644
index 000000000..ebc5bfa3c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Async.js
@@ -0,0 +1,7 @@
+.pragma library
+
+var async_uid = 1;
+
+function AsyncCall() {
+ this.__async_uid = async_uid++;
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/BasicCommunication.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/BasicCommunication.qml
new file mode 100644
index 000000000..04b369283
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/BasicCommunication.qml
@@ -0,0 +1,139 @@
+/**
+ * @file BasicCommunication.qml
+ * @brief Implement of interface Basic Communication.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+Item {
+ function updateDeviceList (deviceList) {
+ var deviceListLog = "";
+ if (deviceList) {
+ for (var i = 0; i < deviceList.length; i++) {
+ deviceListLog += "{name: '" + deviceList[i].name + "', " +
+ "id: '" + deviceList[i].id + "'},";
+ }
+ }
+ console.log("Message Received - {method: 'BasicCommunication.UpdateDeviceList', params:{ " +
+ "deviceList: [" + deviceListLog + "]" +
+ "}}")
+ dataContainer.deviceList.clear();
+ for(var i = 0; i < deviceList.length; i++) {
+ dataContainer.deviceList.append({ name: deviceList[i].name, devid: deviceList[i].id })
+ }
+ }
+
+ function updateAppList (applications) {
+ var applicationsLog = "",
+ appTypeLog = "";
+ if (applications) {
+ for (var i = 0; i < applications.length; i++) {
+ appTypeLog = "";
+
+ for (var j = 0; j < applications[i].appType.length; i++) {
+ appTypeLog += "'" + applications[i].appType + "', "
+ }
+
+ applicationsLog += "{name: '" + applications[i].name + "', " +
+ "appName: '" + applications[i].appName + "', " +
+ "ngnMediaScreenAppName: '" + applications[i].ngnMediaScreenAppName + "', " +
+ "icon: '" + applications[i].icon + "', " +
+ "deviceName: '" + applications[i].deviceName + "', " +
+ "appID: " + applications[i].appID + ", " +
+ "hmiDisplayLanguageDesired: '" + applications[i].hmiDisplayLanguageDesired + "', " +
+ "isMediaApplication: " + applications[i].isMediaApplication + ", " +
+ "appType: [" + applications[i].deviceName + "]" +
+ "},";
+ }
+ }
+ console.log("Message Received - {method: 'BasicCommunication.UpdateAppList', params:{ " +
+ "applications: [" + applicationsLog + "]" +
+ "}}")
+
+
+ dataContainer.applicationList.clear();
+ for(var i = 0; i < applications.length; i++) {
+ dataContainer.applicationList.append({
+ appName: applications[i].appName,
+ ngnMediaScreenAppName: applications[i].ngnMediaScreenAppName,
+ icon: applications[i].icon,
+ deviceName: applications[i].deviceName,
+ appId: applications[i].appID,
+ hmiDisplayLanguageDesired: applications[i].hmiDisplayLanguageDesired,
+ isMediaApplication: applications[i].isMediaApplication,
+ appType: applications[i].appType
+ });
+ }
+ }
+
+ function getResumeResult (appID) {
+ return dataContainer.getResumeResult(appID)
+ }
+
+ function allowDeviceToConnect (device) {
+ console.log("Message Received - {method: 'BasicCommunication.AllowDeviceToConnect', params:{ " +
+ "device: {name: '" + device.name + "', " +
+ "id: '" + device.id + "'}," +
+ "}}")
+ return {
+ allow: true
+ }
+ }
+
+ function mixingAudioSupported() {
+ console.log("Message Received - {method: 'BasicCommunication.MixingAudioSupported'}")
+ return {
+ attenuatedSupport: true
+ }
+ }
+
+ function allowAllApps() {
+ console.log("Message Received - {method: 'BasicCommunication.AllowAllApps'}")
+ return {
+ allowed: true
+ }
+ }
+
+ function allowApp(app, appPermissions) {
+ console.log("Message Received - {method: 'BasicCommunication.AllowApp'}")
+ return {
+ allowed: true
+ }
+ }
+
+ function activateApp() {
+ console.log("Message Received - {method: 'BasicCommunication.ActivateApp', params:{ " +
+ //"appID: " + appID +
+ "}}")
+ contentLoader.go("views/SDLPlayerView.qml", appID);
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Buttons.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Buttons.qml
new file mode 100644
index 000000000..b8b3da593
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Buttons.qml
@@ -0,0 +1,48 @@
+/**
+ * @file Buttons.qml
+ * @brief Implement of interface Buttons.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+Item
+{
+ function getCapabilities() {
+ console.log("Message Received - {method: 'Buttons.GetCapabilities'}")
+ return {
+ capabilities: settingsContainer.buttonCapabilities,
+ presetBankCapabilities: {
+ onScreenPresetsAvailable: true
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Navigation.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Navigation.qml
new file mode 100644
index 000000000..bab54220b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/Navigation.qml
@@ -0,0 +1,246 @@
+/**
+ * @file Navigation.qml
+ * @brief Navigation.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "Common.js" as Common
+
+Item {
+ function isReady () {
+ console.log("Message Received - {method: 'Navigation.IsReady'}")
+ return {
+ available: dataContainer.hmiNavigationAvailable
+ }
+ }
+
+ function showConstantTBT(navigationTexts, turnIcon, nextTurnIcon, distanceToManeuver,
+ distanceToManeuverScale, maneuverComplete,
+ softButtons, appID) {
+ console.debug("enter")
+ var navigationTextsLog = "",
+ softButtonsLog = "",
+ turnIconLogs = "",
+ nextTurnIconLogs = "";
+ if (navigationTexts) {
+ for (var i = 0; i < navigationTexts.length; i++) {
+ navigationTextsLog += "{fieldName: '" + navigationTexts[i].fieldName + "', " +
+ "fieldText: '" + navigationTexts[i].fieldText + "'},";
+ }
+ }
+ if (softButtons) {
+ for (var i = 0; i < softButtons.length; i++) {
+ softButtonsLog += "{type: '" + softButtons[i].type + "', " +
+ "text: " + softButtons[i].text + "', ";
+ softButtons[i].image ? softButtonsLog += "image: " + "{value: '" + softButtons[i].image.value + "', imageType: " + softButtons[i].image.imageType + "}, " : softButtonsLog += "";
+ softButtonsLog += "isHighlighted: " + softButtons[i].isHighlighted + "', " +
+ "softButtonID: " + softButtons[i].softButtonID + "', " +
+ "systemAction: " + softButtons[i].systemAction +
+ "},";
+ }
+ }
+ if (turnIcon) {
+ turnIconLogs = "{value: '" + turnIcon.value + "', imageType: " + turnIcon.imageType + "}";
+ }
+ if (nextTurnIcon) {
+ nextTurnIconLogs = "{value: '" + nextTurnIcon.value + "', imageType: " + nextTurnIcon.imageType + "}";
+ }
+ console.log("Message Received - {method: 'Navigation.ShowConstantTBT', params:{ " +
+ "navigationTexts: [" + navigationTextsLog + "], " +
+ "turnIcon: " + turnIconLogs + ", " +
+ "nextTurnIcon: " + nextTurnIconLogs + ", " +
+ "distanceToManeuver: " + distanceToManeuver + ", " +
+ "distanceToManeuverScale: " + distanceToManeuverScale + ", " +
+ "maneuverComplete: " + maneuverComplete + ", " +
+ "softButtons: [" + softButtonsLog + "], " +
+ "appID: " + appID +
+ "}}")
+
+ var app = dataContainer.getApplication(appID)
+ var dataToUpdate = {}
+
+ navigationTexts.forEach(fillTexts, dataToUpdate)
+ if (turnIcon !== undefined) { dataToUpdate.turnIcon = turnIcon }
+ if (nextTurnIcon !== undefined) { dataToUpdate.nextTurnIcon = nextTurnIcon }
+ if (distanceToManeuver !== undefined) {
+ dataToUpdate.distanceToManeuver = distanceToManeuver
+ } else {
+ DBus.sendReply( {__retCode: Common.Result.INVALID_DATA, __message: "distanceToManeuver absence"} )
+ }
+ if (distanceToManeuverScale !== undefined) {
+ dataToUpdate.distanceToManeuverScale = distanceToManeuverScale
+ } else {
+ DBus.sendReply( {__retCode: Common.Result.INVALID_DATA, __message: "distanceToManeuverScale absence"} )
+ }
+ if (maneuverComplete !== undefined) {
+ dataToUpdate.maneuverComplete = maneuverComplete
+ }
+ if (softButtons !== undefined) {
+ app.navigationSoftButtons.clear()
+ softButtons.forEach(function(x) { app.navigationSoftButtons.append(x); });
+ }
+ if (appID !== undefined) {
+ dataToUpdate.appID = appID
+ } else {
+ dBus.sendReply( {__retCode: Common.Result.INVALID_DATA, __message: "appID absence"} )
+ }
+
+ dataContainer.setApplicationProperties(appID, { navigationModel : dataToUpdate } )
+ contentLoader.go("./views/TurnByTurnView.qml", appID)
+ }
+
+ function alertManeuver(softButtons) {
+ console.debug("enter")
+ var softButtonsLog = "";
+
+ if (softButtons) {
+ for (var i = 0; i < softButtons.length; i++) {
+ softButtonsLog += "{type: '" + softButtons[i].type + "', " +
+ "text: " + softButtons[i].text + "', ";
+ softButtons[i].image ? softButtonsLog += "image: " + "{value: '" + softButtons[i].image.value + "', imageType: " + softButtons[i].image.imageType + "}, " : softButtonsLog += "";
+ softButtonsLog += "isHighlighted: " + softButtons[i].isHighlighted + "', " +
+ "softButtonID: " + softButtons[i].softButtonID + "', " +
+ "systemAction: " + softButtons[i].systemAction +
+ "},";
+ }
+ }
+ console.log("Message Received - {method: 'Navigation.AlertManeuver', params:{ " +
+ "softButtons: [" + softButtonsLog + "]" +
+ "}}")
+
+ console.debug("exit")
+ return { __retCode: Common.Result.SUCCESS }
+ }
+
+ function updateTurnList(turnList, softButtons, appID) {
+ console.debug("enter")
+ var turnListLog = "",
+ softButtonsLog = "";
+ if (turnList) {
+ for (var i = 0; i < turnList.length; i++) {
+ turnList[i].navigationText ? turnListLog += "{navigationText: {fieldName: '" + turnList[i].navigationText.fieldName + "', fieldText: '" + turnList[i].navigationText.fieldText + "'}," : turnListLog += "{";
+ turnList[i].turnIcon ? turnListLog += "turnIcon: " + "{value: '" + turnList[i].turnIcon.value + "', imageType: " + turnList[i].turnIcon.imageType + "}}, " : turnListLog += "},";
+ }
+ }
+ if (softButtons) {
+ softButtonsLog += "{type: '" + softButtons[0].type + "', " +
+ "text: '" + softButtons[0].text + "', ";
+ softButtons[0].image ? softButtonsLog += "image: " + "{value: '" + softButtons[0].image.value + "', imageType: " + softButtons[0].image.imageType + "}, " : softButtonsLog += "";
+ softButtonsLog += "isHighlighted: " + softButtons[0].isHighlighted + "', " +
+ "softButtonID: " + softButtons[0].softButtonID + "', " +
+ "systemAction: " + softButtons[0].systemAction +
+ "},";
+ }
+ console.log("Message Received - {method: 'Navigation.UpdateTurnList', params:{ " +
+ "softButtons: [" + softButtonsLog + "], " +
+ "turnList: [" + turnListLog + "], " +
+ "appID: " + appID +
+ "}}")
+ if (turnList !== undefined) {
+ dataContainer.getApplication(appID).turnList.clear();
+ turnList.forEach(fillTurnList, dataContainer.getApplication(appID).turnList);
+ }
+ if (softButtons !== undefined) {
+ dataContainer.getApplication(appID).turnListSoftButtons.clear();
+ softButtons.forEach(fillSoftButtons, dataContainer.getApplication(appID).turnListSoftButtons);
+ }
+ dataContainer.navigationModel.appId = appID;
+ console.debug("exit")
+ }
+
+ function fillTexts(element, index, array) {
+ switch (element.fieldName) {
+ case Common.TextFieldName.navigationText1:
+ this.text1 = element.fieldText;
+ break;
+ case Common.TextFieldName.navigationText2:
+ this.text2 = element.fieldText;
+ break;
+ case Common.TextFieldName.ETA:
+ this.eta = element.fieldText;
+ break;
+ case Common.TextFieldName.totalDistance:
+ this.totalDistance = element.fieldText;
+ break;
+ case Common.TextFieldName.timeToDestination:
+ this.timeToDestination = element.fieldText;
+ break;
+ }
+ }
+
+ function startStream(url, appID) {
+ console.debug("enter")
+ player.startStream(url)
+ console.debug("exit")
+ }
+
+ function stopStream(appID) {
+ console.debug("enter")
+ player.stop()
+ console.debug("exit")
+ }
+
+ function startAudioStream(url, appID) {
+ console.log("Message Received - {method: 'Navigation.StartAudioStream', params:{ " +
+ "url: '" + url + "'" +
+ "appID: " + appID +
+ "}}")
+ stream.source = url;
+ stream.play();
+ }
+
+ function stopAudioStream(appID) {
+ console.log("Message Received - {method: 'Navigation.StopAudioStream', params:{ " +
+ "appID: " + appID +
+ "}}")
+ stream.stop();
+ }
+
+ function fillSoftButtons(element, index, array) {
+ this.append({
+ type: element.type,
+ text: element.text,
+ image: element.image,
+ isHighlighted: element.isHighlighted,
+ buttonId: element.softButtonID,
+ systemAction: element.systemAction
+ });
+ }
+
+ function fillTurnList(element, index, array) {
+ this.append({
+ navigationText: element.navigationText,
+ turnIcon: element.turnIcon
+ });
+ console.debug(element.navigationText)
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/TTS.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/TTS.qml
new file mode 100644
index 000000000..7884b3109
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/TTS.qml
@@ -0,0 +1,203 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "Common.js" as Common
+import "Async.js" as Async
+
+Item {
+ function ttsChunksToString(ttsChunks){
+ return ttsChunks.map(function(str) { return str.text }).join('\n')
+ }
+
+ function isReady() {
+ console.log("Message Received - {method: 'TTS.IsReady'}")
+ return {
+ available: dataContainer.hmiTTSAvailable
+ }
+ }
+
+ function speak(ttsChunks, appID) {
+ // appID unused
+ console.debug('enter:', ttsChunks, appID);
+ var ttsChunksLog = "";
+ if (ttsChunks) {
+ for (var i = 0; i < ttsChunks.length; i++) {
+ ttsChunksLog += "{type: " + ttsChunks[i].type + ", " +
+ "text: '" + ttsChunks[i].text + "'}, ";
+ }
+ }
+ console.log("Message Received - {method: 'TTS.Speak', params:{ " +
+ "ttsChunks: [" + ttsChunksLog + "], " +
+ "appID: " + appID + "', " +
+ "}}")
+ if (ttsPopUp.async) {
+ console.log('speak send abort');
+ throw Common.Result.ABORTED;
+ }
+ var message = ttsChunksToString(ttsChunks);
+ ttsPopUp.activate(message);
+ ttsPopUp.async = new Async.AsyncCall();
+ console.debug('exit');
+ return ttsPopUp.async;
+ }
+
+ function stopSpeaking() {
+ console.debug("enter");
+ console.log("Message Received - {method: 'TTS.StopSpeaking'}")
+ ttsPopUp.deactivate();
+ console.debug("exit");
+ }
+
+ function getLanguage() {
+ console.log("Message Received - {method: 'TTS.GetLanguage'}")
+ return {
+ language: dataContainer.hmiTTSVRLanguage
+ }
+ }
+
+ function getSupportedLanguages() {
+ console.log("Message Received - {method: 'TTS.GetSupportedLanguages'}")
+ return {
+ languages: settingsContainer.sdlLanguagesList
+ }
+ }
+
+ function getCapabilities() {
+ console.log("Message Received - {method: 'TTS.GetCapabilities'}")
+ return {
+ speechCapabilities: [
+ Common.SpeechCapabilities.SC_TEXT,
+ Common.SpeechCapabilities.PRE_RECORDED
+ ],
+ prerecordedSpeechCapabilities: [
+ Common.PrerecordedSpeech.HELP_JINGLE,
+ Common.PrerecordedSpeech.INITIAL_JINGLE,
+ Common.PrerecordedSpeech.LISTEN_JINGLE,
+ Common.PrerecordedSpeech.POSITIVE_JINGLE,
+ Common.PrerecordedSpeech.NEGATIVE_JINGLE
+ ]
+ }
+ }
+
+ function performInteraction(helpPrompt, initialPrompt, timeoutPrompt, timeout) {
+ console.debug("enter");
+ var helpttsChunksLog = "",
+ initialttsChunkLog = "",
+ timeoutttsChunkLog = "";
+
+ if (helpPrompt) {
+ for (var i = 0; i < helpPrompt.length; i++) {
+ helpttsChunksLog += "{type: " + helpPrompt[i].type + ", " +
+ "text: '" + helpPrompt[i].text + "'}, ";
+ }
+ }
+ if (initialPrompt) {
+ for (var i = 0; i < initialPrompt.length; i++) {
+ initialttsChunkLog += "{type: " + initialPrompt[i].type + ", " +
+ "text: '" + initialPrompt[i].text + "'}, ";
+ }
+ }
+ if (timeoutPrompt) {
+ for (var i = 0; i < timeoutPrompt.length; i++) {
+ timeoutttsChunkLog += "{type: " + timeoutPrompt[i].type + ", " +
+ "text: '" + timeoutPrompt[i].text + "'}, ";
+ }
+ }
+ console.log("Message Received - {method: 'TTS.PerformInteraction', params:{ " +
+ "helpPrompt: [" + helpttsChunksLog + "], " +
+ "initialPrompt: [" + initialttsChunkLog + "], " +
+ "timeoutPrompt: [" + timeoutttsChunkLog + "], " +
+ "timeout: " + timeout +
+ "}}")
+ ttsPopUp.performInteraction(ttsChunksToString(helpPrompt),
+ ttsChunksToString(initialPrompt),
+ ttsChunksToString(timeoutPrompt),
+ timeout)
+ console.debug("exit");
+ }
+
+ function changeRegistration(language, appID) {
+ console.debug("enter:", language, appID);
+ console.log("Message Received - {method: 'TTS.ChangeRegistration', params:{ " +
+ "language: " + language + ", " +
+ "appID: " + appID +
+ "}}")
+ dataContainer.changeRegistrationTTSVR(language, appID);
+ console.debug("exit");
+ }
+
+ function setGlobalProperties(helpPrompt, timeoutPrompt, appID) {
+ var helpPromptLog = "",
+ timeoutPromptLog = "";
+ if (helpPrompt) {
+ for (var i = 0; i < helpPrompt.length; i++) {
+ helpPromptLog += "{type: " + helpPrompt[i].type + ", " +
+ "text: '" + helpPrompt[i].text + "'}, ";
+ }
+ }
+ if (timeoutPrompt) {
+ for (var i = 0; i < timeoutPrompt.length; i++) {
+ timeoutPromptLog += "{type: " + timeoutPrompt[i].type + ", " +
+ "text: '" + timeoutPrompt[i].text + "'}, ";
+ }
+ }
+ console.log("Message Received - {method: 'TTS.SetGlobalProperties', params:{ " +
+ "appID:" + appID + ", " +
+ "helpPrompt: [" + helpPromptLog + "], " +
+ "timeoutPrompt: [" + timeoutPromptLog + "]" +
+ "}}")
+
+ var newHelpPropmt = helpPrompt ?
+ helpPrompt.map(
+ function (structure) {
+ return structure.text
+ }
+ ).join(", ") :
+ dataContainer.currentApplication.helpPrompt
+
+ var newTimeoutPrompt = timeoutPrompt ?
+ timeoutPrompt.map(
+ function (structure) {
+ return structure.text
+ }
+ ).join(", ") :
+ dataContainer.currentApplication.timeoutPrompt
+
+ dataContainer.setApplicationProperties(dataContainer.currentApplication.appId, {
+ helpPrompt: newHelpPropmt,
+ timeoutPrompt: newTimeoutPrompt
+ })
+ console.debug("exit")
+ }
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/UI.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/UI.qml
new file mode 100644
index 000000000..770856a6a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/UI.qml
@@ -0,0 +1,721 @@
+/**
+ * @file UI.qml
+ * @brief UI interface implementation.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "Common.js" as Common
+import "Async.js" as Async
+import "../models/Internal.js" as Internal
+
+Item {
+ function filter (strings, fields) {
+ console.debug("enter")
+// substrings for each allowed field
+ var fieldSubstrings = {}
+// this cycle concatenates allowed lines sorting them by field
+ for (var stringIndex = 0; stringIndex < strings.length; ++stringIndex) {
+ for (var fieldIndex = 0; fieldIndex < fields.length; ++fieldIndex) {
+ var fieldName = strings[stringIndex].fieldName
+ if (fieldName === fields[fieldIndex]) {
+ if (fieldSubstrings[fieldName] !== undefined) {
+ fieldSubstrings[fieldName] += "\n";
+ fieldSubstrings[fieldName] += strings[stringIndex].fieldText
+ }
+ else {
+ fieldSubstrings[fieldName] = strings[stringIndex].fieldText
+ }
+ }
+ }
+ }
+ console.debug("exit")
+ return fieldSubstrings
+ }
+
+ function alert (alertStrings, duration, softButtons, progressIndicator, appID) {
+ var softButtonsLog = "",
+ alertStringsLog = "";
+ if (alertStrings) {
+ for (var i = 0; i < alertStrings.length; i++) {
+ alertStringsLog += "{fieldName: '" + alertStrings[i].fieldName + "', " +
+ "fieldText: '" + alertStrings[i].fieldText + "'},";
+ }
+ }
+ if (softButtons) {
+ for (var i = 0; i < softButtons.length; i++) {
+ softButtonsLog += "{type: '" + softButtons[i].type + "', " +
+ "text: " + softButtons[i].text + "', ";
+ softButtons[i].image ? softButtonsLog += "image: " + "{value: '" + softButtons[i].image.value + "', imageType: " + softButtons[i].image.imageType + "}, " : softButtonsLog += "";
+ softButtonsLog += "isHighlighted: " + softButtons[i].isHighlighted + "', " +
+ "softButtonID: " + softButtons[i].softButtonID + "', " +
+ "systemAction: " + softButtons[i].systemAction +
+ "},";
+ }
+ }
+ console.log("Message Received - {method: 'UI.Alert', params:{ " +
+ "alertStrings: [" + alertStringsLog + "]," +
+ "duration: " + duration + "', " +
+ "softButtons: [" + softButtonsLog + "]," +
+ "progressIndicator: " + progressIndicator + "', " +
+ "appID: " + appID + "', " +
+ "}}")
+ var fieldSubstrings = alertStrings
+ .sort(function(a, b) { return a.fieldName - b.fieldName }) // sorting by fieldName
+ .map(function(val) { return val.fieldText }); // mapping to array of strings
+
+ var tryAgainTime = alertWindow.alert(fieldSubstrings, duration, progressIndicator, softButtons, appID)
+ if (tryAgainTime === undefined) {
+ alertWindow.async = new Async.AsyncCall();
+ return alertWindow.async;
+ }
+ else {
+ return {
+ "__retCode": Common.Result.REJECTED,
+ "tryAgainTime": tryAgainTime
+ }
+ }
+ }
+
+ function show (showStrings, alignment, graphic, softButtons, customPresets, appID) {
+ var softButtonsLog = "",
+ showStringsLog = "",
+ customPresetsLog = "",
+ graphiLog = "";
+ if (showStrings) {
+ for (var i = 0; i < showStrings.length; i++) {
+ showStringsLog += "{fieldName: '" + showStrings[i].fieldName + "', " +
+ "fieldText: '" + showStrings[i].fieldText + "'},";
+ }
+ }
+ if (customPresets) {
+ for (var i = 0; i < customPresets.length; i++) {
+ customPresetsLog += "'" + customPresets[i] + "', ";
+ }
+ }
+ if (softButtons) {
+ for (var i = 0; i < softButtons.length; i++) {
+ softButtonsLog += "{type: '" + softButtons[i].type + "', " +
+ "text: " + softButtons[i].text + "', ";
+ softButtons[i].image ? softButtonsLog += "image: " + "{value: '" + softButtons[i].image.value + "', imageType: " + softButtons[i].image.imageType + "}, " : softButtonsLog += "";
+ softButtonsLog += "isHighlighted: " + softButtons[i].isHighlighted + "', " +
+ "softButtonID: " + softButtons[i].softButtonID + "', " +
+ "systemAction: " + softButtons[i].systemAction +
+ "},";
+ }
+ }
+ if (graphic) {
+ graphiLog = "{value: '" + graphic.value + "', imageType: " + graphic.imageType + "}";
+ }
+
+ console.log("Message Received - {method: 'UI.Show', params:{ " +
+ "showStrings: [" + showStringsLog + "], " +
+ "alignment: " + alignment + "', " +
+ "graphic: " + graphiLog + ", " +
+ "softButtons: [" + softButtonsLog + "], " +
+ "customPresets: [" + customPresetsLog + "], " +
+ "appID: " + appID +
+ "}}")
+ var app = dataContainer.getApplication(appID);
+
+ app.softButtons.clear()
+ if (softButtons) {
+ softButtons.forEach(function(x) { app.softButtons.append(x); });
+ }
+
+ app.customPresets.clear()
+ if (customPresets) {
+ customPresets.forEach( function(x) { app.customPresets.append( {text: x} ); } )
+ }
+
+ var textAlignment
+ switch (alignment) {
+ case Common.TextAlignment.LEFT_ALIGNED:
+ textAlignment = Text.AlignLeft
+ break;
+ case Common.TextAlignment.RIGHT_ALIGNED:
+ textAlignment = Text.AlignRight
+ break;
+ case Common.TextAlignment.CENTERED:
+ textAlignment = Text.AlignHCenter
+ break;
+ default:
+ textAlignment = Text.AlignHCenter
+ break;
+ }
+
+ // with this array we grab only the lines we need
+ var showFields = [
+ Common.TextFieldName.mainField1,
+ Common.TextFieldName.mainField2,
+ Common.TextFieldName.mainField3,
+ Common.TextFieldName.mainField4,
+ Common.TextFieldName.statusBar,
+ Common.TextFieldName.mediaClock,
+ Common.TextFieldName.mediaTrack
+ ]
+ var fieldSubstrings = filter(showStrings, showFields)
+ var showData = { hmiUIText: {} }
+ if (fieldSubstrings[Common.TextFieldName.mainField1] !== undefined) { showData.hmiUIText.mainField1 = fieldSubstrings[Common.TextFieldName.mainField1]; }
+ if (fieldSubstrings[Common.TextFieldName.mainField2] !== undefined) { showData.hmiUIText.mainField2 = fieldSubstrings[Common.TextFieldName.mainField2]; }
+ if (fieldSubstrings[Common.TextFieldName.mainField3] !== undefined) { showData.hmiUIText.mainField3 = fieldSubstrings[Common.TextFieldName.mainField3]; }
+ if (fieldSubstrings[Common.TextFieldName.mainField4] !== undefined) { showData.hmiUIText.mainField4 = fieldSubstrings[Common.TextFieldName.mainField4]; }
+ if (fieldSubstrings[Common.TextFieldName.statusBar] !== undefined) { showData.hmiUIText.statusBar = fieldSubstrings[Common.TextFieldName.statusBar]; }
+ if (fieldSubstrings[Common.TextFieldName.mediaTrack] !== undefined) { showData.hmiUIText.mediaTrack = fieldSubstrings[Common.TextFieldName.mediaTrack]; }
+ if (graphic) { showData.hmiUIText.image = graphic.value; }
+ if (textAlignment) { showData.hmiUITextAlignment = textAlignment; }
+ if (fieldSubstrings[Common.TextFieldName.mediaClock]) {
+ showData.mediaClock = {
+ "updateMode": Internal.MediaClockUpdateMode.MCU_COUNTUP,
+ "runningMode": Internal.MediaClockRunningMode.MCR_STOPPED,
+ "magic": Internal.stringToHmsTime(fieldSubstrings[Common.TextFieldName.mediaClock]),
+ "startTimeForProgress": -1
+ }
+ }
+
+ dataContainer.setApplicationProperties(appID, showData);
+ console.debug("exit")
+ }
+
+ function addCommand (cmdID, menuParams, cmdIcon, appID) {
+ var cmdIconLogs = "",
+ menuParamsLogs = "";
+
+ if (cmdIcon) {
+ cmdIconLogs = "{value: '" + cmdIcon.value + "', imageType: " + cmdIcon.imageType + "}";
+ }
+ if (menuParams) {
+ menuParamsLogs = "{parentID: " + menuParams.parentID + ", position: " + menuParams.position + "}";
+ }
+ console.log("Message Received - {method: 'UI.AddCommand', params:{ " +
+ "appID: " + appID + ", " +
+ "cmdID: " + cmdID + ", " +
+ "cmdIcon: " + cmdIconLogs + ", " +
+ "menuParams: " + menuParamsLogs +
+ "}}")
+ dataContainer.addCommand(cmdID, menuParams, cmdIcon, appID)
+ }
+
+ function deleteCommand (cmdID, appID) {
+ console.log("Message Received - {method: 'UI.DeleteCommand', params:{ " +
+ "appID: " + appID + ", " +
+ "cmdID: " + cmdID +
+ "}}")
+ dataContainer.deleteCommand(cmdID, appID)
+ }
+
+ function addSubMenu (menuID, menuParams, appID) {
+ var menuParamsLogs = "";
+
+ if (menuParams) {
+ menuParamsLogs = "{parentID: " + menuParams.parentID + ", position: " + menuParams.position + "}";
+ }
+ console.log("Message Received - {method: 'UI.AddSubMenu', params:{ " +
+ "appID: " + appID + ", " +
+ "menuID: " + menuID + ", " +
+ "menuParams: " + menuParamsLogs +
+ "}}")
+ dataContainer.addSubMenu(menuID, menuParams, appID)
+ }
+
+ function deleteSubMenu (menuID, appID) {
+ console.log("Message Received - {method: 'UI.DeleteSubMenu', params:{ " +
+ "appID:" + appID + ", " +
+ "menuID: " + menuID +
+ "}}")
+ dataContainer.deleteSubMenu(menuID, appID)
+ }
+
+ function performInteraction (initialText, choiceSet, vrHelpTitle, vrHelp, timeout, interactionLayout, appID) {
+ console.debug("enter")
+ var choiseLog = "",
+ vrHelpLog = "",
+ initialTextLog = "";
+ if (choiceSet) {
+ for (var i = 0; i < choiceSet.length; i++) {
+ choiseLog += "{choiceID: " + choiceSet[i].choiceID + ", " +
+ "menuName: '" + choiceSet[i].menuName + "', " +
+ "image: {value: '" + choiceSet[i].image.value + "', imageType: " + choiceSet[i].image.imageType + "}, " +
+ "secondaryText: '" + choiceSet[i].secondaryText + "', " +
+ "tertiaryText: '" + choiceSet[i].tertiaryText + "', " +
+ "secondaryImage: {value: '" + choiceSet[i].image.value + "', imageType: " + choiceSet[i].image.imageType + "}},";
+ }
+ }
+ if (vrHelp) {
+ for (var i = 0; i < vrHelp.length; i++) {
+ var vrHelpImageLog = "";
+ if (vrHelp[i].image) {
+ vrHelpImageLog = "{value: '" + vrHelp[i].image.value + "', imageType: " + vrHelp[i].image.imageType + "}";
+ }
+
+ vrHelpLog += "{text: '" + vrHelp[i].text + "', " +
+ "image: " + vrHelpImageLog + ", " +
+ "position: " + vrHelp[i].position +
+ "},";
+ }
+ }
+ if (initialText) {
+ initialTextLog = "{fieldName: " + initialText.fieldName + ", fieldText: '" + initialText.fieldText + "'}";
+ }
+
+ console.log("Message Received - {method: 'UI.PerformInteraction', params:{ " +
+ "appID:" + appID + ", " +
+ "initialText: " + initialTextLog + ", " +
+ "choiceSet: [" + choiseLog + "], " +
+ "vrHelpTitle: '" + vrHelpTitle + "', " +
+ "vrHelp: [" + vrHelpLog + "], " +
+ "timeout: " + timeout + ", " +
+ "interactionLayout: " + interactionLayout +
+ "}}")
+ var async = interactionPopup.performInteraction(initialText, choiceSet, vrHelpTitle, vrHelp, timeout, interactionLayout, appID)
+ console.debug("exit")
+ return async
+ }
+
+ function setMediaClockTimer (startTime, endTime, updateMode, appID) {
+ var startTimeLog = "",
+ endTimeLog = "";
+ if (startTime) {
+ startTimeLog = "hours: " + startTime.hours + ", minutes: " + startTime.minutes + ", seconds: " + startTime.seconds;
+ }
+ if (endTime) {
+ endTimeLog = "hours: " + endTime.hours + ", minutes: " + endTime.minutes + ", seconds: " + endTime.seconds;
+ }
+
+ console.log("Message Received - {method: 'UI.SetMediaClockTimer', params:{ " +
+ "startTime: {" + startTimeLog + "}, " +
+ "endTime: {" + endTimeLog + "}, " +
+ "updateMode: " + updateMode + ", " +
+ "appID: " + appID +
+ "}}")
+ var app = dataContainer.getApplication(appID)
+ var newStartTime
+ var newEndTime
+ var newUpdateMode
+ var newRunningMode
+ var newStartTimeForProgress
+ var resultCode
+ var sendErrorResponce = false
+
+ switch (updateMode) {
+ case Common.ClockUpdateMode.COUNTUP:
+ if (startTime === undefined) {
+ resultCode = Common.Result.INVALID_DATA
+ sendErrorResponce = true
+ break
+ }
+ newStartTime = Internal.hmsTime(startTime.hours, startTime.minutes, startTime.seconds)
+ newEndTime = endTime ? Internal.hmsTime(endTime.hours, endTime.minutes, endTime.seconds) : -1
+ newUpdateMode = Internal.MediaClockUpdateMode.MCU_COUNTUP
+ newRunningMode = Internal.MediaClockRunningMode.MCR_RUNNING
+ newStartTimeForProgress = Internal.hmsTime(startTime.hours, startTime.minutes, startTime.seconds)
+ resultCode = Common.Result.SUCCESS
+ break
+
+ case Common.ClockUpdateMode.COUNTDOWN:
+ if (startTime === undefined) {
+ resultCode = Common.Result.INVALID_DATA
+ sendErrorResponce = true
+ break
+ }
+ newStartTime = Internal.hmsTime(startTime.hours, startTime.minutes, startTime.seconds)
+ newEndTime = endTime ? Internal.hmsTime(endTime.hours, endTime.minutes, endTime.seconds) : -1
+ newUpdateMode = Internal.MediaClockUpdateMode.MCU_COUNTDOWN
+ newRunningMode = Internal.MediaClockRunningMode.MCR_RUNNING
+ newStartTimeForProgress = Internal.hmsTime(startTime.hours, startTime.minutes, startTime.seconds)
+ resultCode = Common.Result.SUCCESS
+ break
+
+ case Common.ClockUpdateMode.PAUSE:
+ // Already paused or cleared
+ if ((app.mediaClock.runningMode === Internal.MediaClockRunningMode.MCR_STOPPED)
+ || (app.mediaClock.startTime === -1 && app.mediaClock.endTime === -1)) {
+ resultCode = Common.Result.IGNORED
+ sendErrorResponce = true
+ break
+ }
+ newStartTime = app.mediaClock.startTime
+ newEndTime = app.mediaClock.endTime
+ newRunningMode = Internal.MediaClockRunningMode.MCR_STOPPED
+ newUpdateMode = app.mediaClock.updateMode
+ newStartTimeForProgress = app.mediaClock.startTime
+ resultCode = Common.Result.SUCCESS
+ break
+
+ case Common.ClockUpdateMode.RESUME:
+ // Already resumed or cleared
+ if ((app.mediaClock.runningMode === Internal.MediaClockRunningMode.MCR_RUNNING)
+ || (app.mediaClock.startTime === -1 && app.mediaClock.endTime === -1)) {
+ resultCode = Common.Result.IGNORED
+ sendErrorResponce = true
+ break
+ }
+ newStartTime = app.mediaClock.startTime
+ newEndTime = app.mediaClock.endTime
+ newRunningMode = Internal.MediaClockRunningMode.MCR_RUNNING
+ newStartTimeForProgress = app.mediaClock.startTime
+ newUpdateMode = app.mediaClock.updateMode
+ resultCode = Common.Result.SUCCESS
+ break
+
+ case Common.ClockUpdateMode.CLEAR:
+ newStartTime = -1
+ newEndTime = -1
+ newRunningMode = Internal.MediaClockRunningMode.MCR_STOPPED
+ newUpdateMode = app.mediaClock.updateMode
+ newStartTimeForProgress = -1
+ resultCode = Common.Result.SUCCESS
+ break
+ }
+
+ if (sendErrorResponce) {
+ console.debug("exit with result code: ", resultCode)
+ return { __retCode: resultCode }
+ }
+
+ dataContainer.setApplicationProperties(appID, {
+ "mediaClock": {
+ "updateMode": newUpdateMode,
+ "runningMode": newRunningMode,
+ "startTime": newStartTime,
+ "endTime": newEndTime,
+ "startTimeForProgress": newStartTimeForProgress
+ }
+ })
+
+ console.debug("exit")
+ return { __retCode: resultCode }
+ }
+
+ function setGlobalProperties (vrHelpTitle, vrHelp, menuTitle, menuIcon, keyboardProperties, appID) {
+ console.debug("enter")
+ var vrHelpLog = "",
+ menuIconLog = "",
+ keyboardPropertiesLog = "";
+ if (vrHelp) {
+ for (var i = 0; i < vrHelp.length; i++) {
+ var vrHelpImageLog = "";
+ if (vrHelp[i].image) {
+ vrHelpImageLog = "{value: '" + vrHelp[i].image.value + "', imageType: " + vrHelp[i].image.imageType + "}";
+ }
+ vrHelpLog += "{text: '" + vrHelp[i].text + "', " +
+ "image: " + vrHelpImageLog + ", " +
+ "position: " + vrHelp[i].position +
+ "},";
+ }
+ }
+ if (menuIcon) {
+ menuIconLog = "{value: '" + menuIcon.value + "', imageType: " + menuIcon.imageType + "}";
+ }
+ if (keyboardProperties) {
+ keyboardPropertiesLog = "{language: '" + keyboardProperties.language + "', keyboardLayout: '" + keyboardProperties.language +
+ "', sendDynamicEntry: '" + keyboardProperties.sendDynamicEntry + "', keypressMode: '" + keyboardProperties.keypressMode +
+ "', limitedCharacterList: '" + keyboardProperties.limitedCharacterList + "', autoCompleteText: '" + keyboardProperties.autoCompleteText + "'}";
+ }
+
+ console.log("Message Received - {method: 'UI.SetGlobalProperties', params:{ " +
+ "appID:" + appID + ", " +
+ "vrHelpTitle: '" + vrHelpTitle + "', " +
+ "vrHelp: [" + vrHelpLog + "], " +
+ "menuTitle: '" + menuTitle + "', " +
+ "menuIcon: " + menuIconLog + ", " +
+ "keyboardProperties: " + keyboardPropertiesLog +
+ "}}")
+ var app = dataContainer.getApplication(appID)
+ var dataToUpdate = {}
+
+ if (vrHelpTitle !== undefined) {
+ dataToUpdate.vrHelpTitle = vrHelpTitle
+ } else if ( (vrHelp !== undefined) && (vrHelp.length >= 1) ) {
+ return { __retCode: Common.Result.REJECTED, __message: "vrHelpTitle - undefined, vrHelpItem - provided" }
+ }
+
+ if (vrHelp !== undefined) {
+ var checkSequentialPosition = vrHelp[0].position
+ for (var index = 0; index < vrHelp.length; index++) {
+ if (vrHelp[index].position !== checkSequentialPosition) {
+ return { __retCode: Common.Result.REJECTED, __message: "Nonsequential positions of VrHelpItems" }
+ }
+ checkSequentialPosition++
+ }
+
+ if (app.vrHelpItems.count !== 0) {
+ app.vrHelpItems.clear()
+ }
+ vrHelp.forEach( Internal.appendVrHelpItem, app.vrHelpItems )
+ } else {
+ if (vrHelpTitle !== undefined) {
+ return { __retCode: Common.Result.REJECTED, __message: "vrHelpItems - undefined, vrHelpTitle - provided" }
+ }
+ }
+ if (menuTitle !== undefined) {
+ dataToUpdate.menuTitle = menuTitle
+ }
+ if (menuIcon !== undefined) {
+ dataToUpdate.menuIcon = menuIcon
+ }
+ dataContainer.setApplicationProperties(appID, dataToUpdate)
+ console.debug("exit")
+ }
+
+ function isReady () {
+ console.log("Message Received - {method: 'UI.IsReady'}")
+ return {
+ available: dataContainer.hmiUIAvailable
+ }
+ }
+
+ function getLanguage () {
+ console.log("Message Received - {method: 'UI.GetLanguage'}")
+ return {
+ language: dataContainer.hmiUILanguage
+ }
+ }
+
+ function getSupportedLanguages () {
+ console.log("Message Received - {method: 'UI.GetSupportedLanguages'}")
+ return {
+ languages: settingsContainer.sdlLanguagesList
+ }
+ }
+
+ function changeRegistration (language, appID) {
+ console.log("Message Received - {method: 'UI.ChangeRegistration', params:{ " +
+ "language: " + language + ", " +
+ "appID: " + appID +
+ "}}")
+ dataContainer.changeRegistrationUI(language, appID)
+ }
+
+ function setAppIcon (syncFileName, appID) {
+ var syncFileNameLog = "";
+ if (syncFileName) {
+ syncFileNameLog = "{value: '" + syncFileName.value + "', imageType: " + syncFileName.imageType + "}";
+ }
+
+ console.log("Message Received - {method: 'UI.SetAppIcon', params:{ " +
+ "syncFileName: " + syncFileNameLog + ", " +
+ "appID: " + appID +
+ "}}")
+ dataContainer.setApplicationProperties(appID, { icon: syncFileName.value })
+ }
+
+ function slider (numTicks, position, sliderHeader, sliderFooter, timeout, appID) {
+ console.log("Message Received - {method: 'UI.Slider', params:{ " +
+ "numTicks: " + numTicks + "', " +
+ "position: " + position + "', " +
+ "sliderHeader: '" + sliderHeader + "', " +
+ "sliderFooter: [" + sliderFooter + "], " +
+ "timeout: " + timeout + ", " +
+ "appID: " + appID +
+ "}}")
+ if (dataContainer.uiSlider.running) {
+ console.debug("aborted")
+ return {__retCode: Common.Result.ABORTED, sliderPosition: position}
+ }
+
+ dataContainer.uiSlider.appName = dataContainer.getApplication(appID).appName
+ dataContainer.uiSlider.header = sliderHeader
+ dataContainer.uiSlider.footer = sliderFooter
+ dataContainer.uiSlider.numTicks = numTicks
+ dataContainer.uiSlider.position = position
+ dataContainer.uiSlider.timeout = timeout
+
+ if (timeout !== 0) {
+ sliderPopup.showSlider()
+ sliderPopup.async = new Async.AsyncCall();
+ console.debug("exit")
+ return sliderPopup.async;
+ } else {
+ console.debug("exit")
+ return { sliderPosition: position }
+ }
+ }
+
+ function scrollableMessage (messageText, timeout, softButtons, appID) {
+
+ var softButtonsLog = "",
+ messageTextLog = "";
+ if (softButtons) {
+ for (var i = 0; i < softButtons.length; i++) {
+ softButtonsLog += "{type: '" + softButtons[i].type + "', " +
+ "text: " + softButtons[i].text + "', ";
+ softButtons[i].image ? softButtonsLog += "image: " + "{value: '" + softButtons[i].image.value + "', imageType: " + softButtons[i].image.imageType + "}, " : softButtonsLog += "";
+ softButtonsLog += "isHighlighted: " + softButtons[i].isHighlighted + "', " +
+ "softButtonID: " + softButtons[i].softButtonID + "', " +
+ "systemAction: " + softButtons[i].systemAction +
+ "},";
+ }
+ }
+ if (messageText) {
+ messageTextLog = "{fieldName: " + messageText.fieldName + ", fieldText: '" + messageText.fieldText + "'}";
+ }
+
+ console.log("Message Received - {method: 'UI.ScrollableMessage', params:{ " +
+ "messageText: " + messageTextLog + ", " +
+ "timeout: " + timeout + "', " +
+ "softButtons: [" + softButtonsLog + "]," +
+ "appID: " + appID + "', " +
+ "}}")
+
+ // TODO{ALeshin}: Also check HMILevel, when it will be available. It should be FULL otherwise - REJECTED
+ if (contentLoader.item.systemContext !== Common.SystemContext.SYSCTXT_MAIN) {
+ return { __retCode: Common.Result.REJECTED, __message: "System Context isn't MAIN" }
+ }
+ if(dataContainer.scrollableMessageModel.running){
+ //send error response if scrollable message already running
+ return { __retCode: Common.Result.ABORTED, __message: "ScrollableMessage already running" }
+ }
+
+ dataContainer.scrollableMessageModel.longMessageText = messageText.fieldText
+ if (timeout === 0) {
+ return { __retCode: Common.Result.SUCCESS, __message: "Timeout = 0" }
+ } else {
+ dataContainer.scrollableMessageModel.timeout = timeout
+ }
+
+ dataContainer.scrollableMessageModel.softButtons.clear();
+ if (softButtons !== undefined) {
+ softButtons.forEach(fillSoftButtons, dataContainer.scrollableMessageModel.softButtons);
+ }
+ dataContainer.scrollableMessageModel.appId = appID
+ dataContainer.scrollableMessageModel.async = new Async.AsyncCall()
+ contentLoader.go("./views/ScrollableMessageView.qml")
+ console.debug("exit")
+ return dataContainer.scrollableMessageModel.async
+ }
+
+ function getCapabilities() {
+ console.log("Message Received - {method: 'UI.GetCapabilities'}")
+ return {
+ "audioPassThruCapabilities": {
+ "samplingRate": Common.SamplingRate.RATE_44KHZ,
+ "bitsPerSample": Common.BitsPerSample.RATE_8_BIT,
+ "audioType": Common.AudioType.PCM
+ },
+ "displayCapabilities": settingsContainer.displayCapabilities,
+ "hmiZoneCapabilities": Common.HmiZoneCapabilities.FRONT,
+ "softButtonCapabilities": settingsContainer.softButtonCapabilities
+ }
+ }
+
+ function performAudioPassThru (audioPassThruDisplayTexts, timeout, appID) {
+ var displayTextsLog = "";
+ if (audioPassThruDisplayTexts) {
+ for (var i = 0; i < audioPassThruDisplayTexts.length; i++) {
+ displayTextsLog += "{fieldName: '" + audioPassThruDisplayTexts[i].fieldName + "', " +
+ "fieldText: " + audioPassThruDisplayTexts[i].fieldText + "'},";
+ }
+ }
+ console.log("Message Received - {method: 'UI.PerformAudioPassThru', params:{ " +
+ "audioPassThruDisplayTexts: [" + displayTextsLog + "], " +
+ "maxDuration: " + timeout +
+ "}}")
+
+ if (dataContainer.uiAudioPassThru.running) {
+ console.debug("aborted")
+ throw Common.Result.ABORTED
+ }
+
+ dataContainer.uiAudioPassThru.appName = dataContainer.getApplication(appID).appName
+ dataContainer.uiAudioPassThru.timeout = timeout
+ if (audioPassThruDisplayTexts.length === 2) {
+ dataContainer.uiAudioPassThru.firstLine = audioPassThruDisplayTexts[0].fieldText
+ dataContainer.uiAudioPassThru.secondLine = audioPassThruDisplayTexts[1].fieldText
+ }
+ performAudioPassThruPopup.async = new Async.AsyncCall();
+ performAudioPassThruPopup.showAudioPassThru()
+ console.debug("exit")
+ return performAudioPassThruPopup.async;
+ }
+
+ function endAudioPassThru () {
+ console.debug("enter")
+ console.log("Message Received - {method: 'UI.EndAudioPassThru'}")
+
+ if (!dataContainer.uiAudioPassThru.running) {
+ console.debug("rejected")
+ throw Common.Result.REJECTED
+ }
+ DBus.sendReply({__retCode: Common.Result.SUCCESS})
+ performAudioPassThruPopup.complete(Common.Result.SUCCESS)
+ console.debug("exit")
+ }
+
+ function closePopUp (methodName) {
+ console.debug("enter")
+ console.log("Message Received - {method: 'UI.ClosePopUp', params:{ " +
+ "methodName: " + methodName +
+ "}}")
+ var popUpToClose
+
+ if (dataContainer.activePopup.length === 0) {
+ return { __retCode: Common.Result.ABORT, __message: "No active PopUps"}
+ }
+
+ if (methodName !== undefined) {
+ popUpToClose = methodName
+ } else {
+ popUpToClose = dataContainer.activePopup[dataContain.activePopUp.length - 1]
+ }
+
+ switch (popUpToClose) {
+ case "UI.PerformInteraction":
+ interactionPopup.complete(Common.Result.SUCCESS)
+ break
+ case "UI.Slider":
+ sliderPopup.complete(Common.Result.SUCCESS)
+ break
+ case "UI.PerformAudioPassThru":
+ performAudioPassThruPopup.complete(Common.Result.SUCCESS)
+ break
+ case "UI.Alert":
+ alertWindow.complete(Common.Result.SUCCESS)
+ break
+ case "UI.VrHelp":
+ vrHelpPopup.complete(Common.Result.SUCCESS)
+ break
+ }
+ console.debug("exit")
+ }
+
+ function fillSoftButtons(element, index, array) {
+ this.append({
+ type: element.type,
+ text: element.text,
+ image: element.image,
+ isHighlighted: element.isHighlighted,
+ softButtonID: element.softButtonID,
+ systemAction: element.systemAction
+ });
+ }
+
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/VR.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/VR.qml
new file mode 100644
index 000000000..8a426197e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/VR.qml
@@ -0,0 +1,114 @@
+/**
+ * @file VR.qml
+ * @brief Implement of interface VR.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "Common.js" as Common
+
+Item {
+ function isReady() {
+ console.log("Message Received - {method: 'VR.IsReady'}")
+ return {
+ available: dataContainer.hmiVRAvailable
+ }
+ }
+
+ function addCommand(cmdID, vrCommands, appID) {
+ var vrCommandsLog = "";
+ if (vrCommands) {
+ for (var i = 0; i < vrCommands.length; i++) {
+ vrCommandsLog += "'" + vrCommands[i] + "', ";
+ }
+ }
+ console.log("Message Received - {method: 'VR.AddCommand', params:{ " +
+ "vrCommands: [" + vrCommandsLog + "], " +
+ "cmdID: " + cmdID + ", " +
+ "appID: " + appID +
+ "}}")
+ for (var i = 0; i < vrCommands.length; ++i) {
+ dataContainer.vrCommands.append({
+ cmdID: cmdID,
+ command: vrCommands[i],
+ appID: appID === undefined ? 0 : appID,
+ });
+ }
+ console.log("exit")
+ }
+
+ function deleteCommand(cmdID, appID) {
+ console.log("Message Received - {method: 'VR.DeleteCommand', params:{ " +
+ "appID: " + appID + ", " +
+ "cmdID: " + cmdID +
+ "}}")
+ for (var i = 0; i < dataContainer.vrCommands.count; ) {
+ if ((dataContainer.vrCommands.get(i).cmdID === cmdID) &&
+ ((appID === undefined) || (dataContainer.vrCommands.get(i).appID === appID))) {
+ dataContainer.vrCommands.remove(i);
+ continue;
+ }
+ ++i;
+ }
+ console.log("exit")
+ }
+
+ function getLanguage() {
+ console.log("Message Received - {method: 'VR.GetLanguage'}")
+ return {
+ language: dataContainer.hmiTTSVRLanguage
+ }
+ }
+
+ function getSupportedLanguages() {
+ console.log("Message Received - {method: 'VR.GetSupportedLanguages'}")
+ return {
+ languages: settingsContainer.sdlLanguagesList
+ }
+ }
+
+ function getCapabilities() {
+ console.log("Message Received - {method: 'UI.GetCapabilities'}")
+ return {
+ vrCapabilities: [ Common.VrCapabilities.VR_TEXT ]
+ }
+ }
+
+ function changeRegistration(language, appID) {
+ console.debug("enter");
+ console.log("Message Received - {method: 'VR.ChangeRegistration', params:{ " +
+ "language: " + language + ", " +
+ "appID: " + appID +
+ "}}")
+ dataContainer.changeRegistrationTTSVR(language, appID);
+ console.debug("exit");
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/VehicleInfo.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/VehicleInfo.qml
new file mode 100644
index 000000000..ab91ea920
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/hmi_api/VehicleInfo.qml
@@ -0,0 +1,761 @@
+/**
+ * @file VehicleInfo.qml
+ * @brief Vehicle information interface realisation.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "Common.js" as Common
+
+Item {
+ function isReady () {
+ console.log("Message Received - {method: 'VehicleInfo.IsReady'}")
+ return {
+ available: dataContainer.hmiVehicleInfoAvailable
+ }
+ }
+
+ function getVehicleType() {
+ console.log("Message Received - {method: 'VehicleInfo.GetVehicleType'}")
+ return {
+ "vehicleType": {
+ "make": "Ford",
+ "model": "Fiesta",
+ "modelYear": "2013",
+ "trim": "SE"
+ }
+ }
+ }
+
+ function getGpsData(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { gps: dataContainer.vehicleInfoModel.gps }
+ }
+
+ function getSpeed(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { speed: dataContainer.vehicleInfoModel.speed }
+ }
+
+ function getRpm(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return {
+ rpm: dataContainer.vehicleInfoModel.rpm,
+ __retCode: Common.Result.DATA_NOT_AVAILABLE
+ }
+ }
+
+ function getFuelLevel(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { fuelLevel: dataContainer.vehicleInfoModel.fuelLevel }
+ }
+
+ function getFuelLevelState(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { fuelLevel_State: dataContainer.vehicleInfoModel.fuelLevel_State }
+ }
+
+ function getInstantFuelConsumption(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { instantFuelConsumption: dataContainer.vehicleInfoModel.instantFuelConsumption }
+ }
+
+ function getExternalTemperature(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { externalTemperature: dataContainer.vehicleInfoModel.externalTemperature }
+ }
+
+ function getVin(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { vin: dataContainer.vehicleInfoModel.vin }
+ }
+
+ function getPrndl(appID) {
+ console.debug("enter")
+ if (dataContainer.vehicleInfoModel.prndl === -1) { // Test value, to check response
+ console.debug("exit")
+ return {
+ prndl: dataContainer.vehicleInfoModel.prndl,
+ __retCode: Common.Result.DATA_NOT_AVAILABLE
+ }
+ }
+ console.debug("exit")
+ return { prndl: dataContainer.vehicleInfoModel.prndl }
+ }
+
+ function getTirePressure(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { tirePressure: dataContainer.vehicleInfoModel.tirePressure }
+ }
+
+ function getOdometer(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { odometer: dataContainer.vehicleInfoModel.odometer }
+ }
+
+ function getBeltStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { beltStatus: dataContainer.vehicleInfoModel.beltStatus }
+ }
+
+ function getBodyInformation(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { bodyInformation: dataContainer.vehicleInfoModel.bodyInformation }
+ }
+
+ function getDeviceStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { deviceStatus: dataContainer.vehicleInfoModel.deviceStatus }
+ }
+
+ function getDriverBraking(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { driverBraking: dataContainer.vehicleInfoModel.driverBraking }
+ }
+
+ function getWiperStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { wiperStatus: dataContainer.vehicleInfoModel.wiperStatus }
+ }
+
+ function getHeadLampStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { headLampStatus: dataContainer.vehicleInfoModel.headLampStatus }
+ }
+
+ function getEngineTorque(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { engineTorque: dataContainer.vehicleInfoModel.engineTorque }
+ }
+
+ function getAccPedalPosition(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { accPedalPosition: dataContainer.vehicleInfoModel.accPedalPosition }
+ }
+
+ function getSteeringWheelAngle(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { steeringWheelAngle: dataContainer.vehicleInfoModel.steeringWheelAngle }
+ }
+
+ function getECallInfo(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { eCallInfo: dataContainer.vehicleInfoModel.eCallInfo }
+ }
+
+ function getAirbagStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { airbagStatus: dataContainer.vehicleInfoModel.airbagStatus }
+ }
+
+ function getEmergencyEvent(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { emergencyEvent: dataContainer.vehicleInfoModel.emergencyEvent }
+ }
+
+ function getClusterModeStatus(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { clusterModeStatus: dataContainer.vehicleInfoModel.clusterModeStatus }
+ }
+
+ function getMyKey(appID) {
+ console.debug("enter")
+ console.debug("exit")
+ return { myKey: dataContainer.vehicleInfoModel.myKey }
+ }
+
+ function getDTCs(ecuName, dtcMask, appID) {
+ console.log("Message Received - {method: 'VehicleInfo.GetDTCs', params:{ " +
+ "ecuName: " + ecuName + ", " +
+ "dtcMask: " + dtcMask + ", " +
+ "appID: " + appID +
+ "}}")
+ var ecuHeader = 2
+ var dtc = []
+
+ for (var i = 0; i < 3; i++) {
+ dtc.push("line" + i)
+ }
+ return {ecuHeader: ecuHeader, dtc: dtc}
+ }
+
+ function readDID(ecuName, didLocation, appID) {
+ console.debug("Enter")
+ console.log("Message Received - {method: 'VehicleInfo.ReadDID', params:{ " +
+ "ecuName: " + ecuName + ", " +
+ "didLocation: " + didLocation + ", " +
+ "appID: " + appID +
+ "}}")
+ //TODO{ALeshin}: refactoring of this function, when we'll have Vehicle Info module
+ var didResult = []
+
+ for (var i = 0; i < didLocation.length; i++) {
+ if (i < 10) {
+ didResult[i] = {}
+ didResult[i].resultCode = Common.VehicleDataResultCode.VDRC_SUCCESS
+ didResult[i].didLocation = didLocation[i]
+ didResult[i].data = '0'
+ }
+ else {
+ didResult[i] = {}
+ didResult[i].resultCode = Common.VehicleDataResultCode.VDRC_DATA_NOT_AVAILABLE
+ didResult[i].didLocation = didLocation[i]
+ didResult[i].data = '0'
+ }
+ }
+ console.debug("Exit")
+ return {didResult: didResult}
+ }
+
+ function subscribeGps(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onGpsChanged.disconnect(model.sendGpsChange)
+ model.onGpsChanged.connect(model.sendGpsChange)
+ console.debug("exit")
+ return {gps:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_GPS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS} }
+ }
+ function unsubscribeGps(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onGpsChanged.disconnect(model.sendGpsChange)
+ console.debug("exit")
+ return {gps:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_GPS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS} }
+
+ }
+
+ function subscribeSpeed(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onSpeedChanged.disconnect(model.sendSpeedChange)
+ model.onSpeedChanged.connect(model.sendSpeedChange)
+ console.debug("exit")
+ return { speed:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_SPEED,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeSpeed(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onSpeedChanged.disconnect(model.sendSpeedChange)
+ console.debug("exit")
+ return { speed:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_SPEED,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeRpm(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onRpmChanged.disconnect(model.sendRpmChange)
+ model.onRpmChanged.connect(model.sendRpmChange)
+ console.debug("exit")
+ return { rpm:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_RPM,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeRpm(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onRpmChanged.disconnect(model.sendRpmChange)
+ console.debug("exit")
+ return { rpm:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_RPM,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeFuelLevel(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onFuelLevelChanged.disconnect(model.sendFuelLevelChange)
+ model.onFuelLevelChanged.connect(model.sendFuelLevelChange)
+ console.debug("exit")
+ return { fuelLevel:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELLEVEL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeFuelLevel(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onFuelLevelChanged.disconnect(model.sendFuelLevelChange)
+ console.debug("exit")
+ return { fuelLevel:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELLEVEL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeFuelLevel_State(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onFuelLevel_StateChanged.disconnect(model.sendFuelLevel_StateChange)
+ model.onFuelLevel_StateChanged.connect(model.sendFuelLevel_StateChange)
+ console.debug("exit")
+ return { fuelLevel_State:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELLEVEL_STATE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeFuelLevel_State(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onFuelLevel_StateChanged.disconnect(model.sendFuelLevel_StateChange)
+ console.debug("exit")
+ return { fuelLevel_State:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELLEVEL_STATE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeInstantFuelConsumption(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onInstantFuelConsumptionChanged.disconnect(model.sendInstantFuelConsumptionChange)
+ model.onInstantFuelConsumptionChanged.connect(model.sendInstantFuelConsumptionChange)
+ console.debug("exit")
+ return { instantFuelConsumption:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELCONSUMPTION,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeInstantFuelConsumption(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onInstantFuelConsumptionChanged.disconnect(model.sendInstantFuelConsumptionChange)
+ console.debug("exit")
+ return { instantFuelConsumption:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_FUELCONSUMPTION,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeExternalTemperature(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onExternalTemperatureChanged.disconnect(model.sendExternalTemperatureChange)
+ model.onExternalTemperatureChanged.connect(model.sendExternalTemperatureChange)
+ console.debug("exit")
+ return { externalTemperature:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_EXTERNTEMP,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeExternalTemperature(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onExternalTemperatureChanged.disconnect(model.sendExternalTemperatureChange)
+ console.debug("exit")
+ return { externalTemperature:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_EXTERNTEMP,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribePrndl(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onPrndlChanged.disconnect(model.sendPrndlChange)
+ model.onPrndlChanged.connect(model.sendPrndlChange)
+ console.debug("exit")
+ return { prndl:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_PRNDL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribePrndl(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onPrndlChanged.disconnect(model.sendPrndlChange)
+ console.debug("exit")
+ return { prndl:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_PRNDL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeVin(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onVinChanged.disconnect(model.sendVinChange)
+ model.onVinChanged.connect(model.sendVinChange)
+ console.debug("exit")
+ return { vin:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_VIN,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeVin(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onVinChanged.disconnect(model.sendVinChange)
+ console.debug("exit")
+ return { vin:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_VIN,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeTirePressure(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onTirePressureChanged.disconnect(model.sendTirePressureChange)
+ model.onTirePressureChanged.connect(model.sendTirePressureChange)
+ console.debug("exit")
+ return { tirePressure:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_TIREPRESSURE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeTirePressure(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onTirePressureChanged.disconnect(model.sendTirePressureChange)
+ console.debug("exit")
+ return { tirePressure:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_TIREPRESSURE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeOdometer(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onOdometerChanged.disconnect(model.sendOdometerChange)
+ model.onOdometerChanged.connect(model.sendOdometerChange)
+ console.debug("exit")
+ return { odometer:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ODOMETER,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeOdometer(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onOdometerChanged.disconnect(model.sendOdometerChange)
+ console.debug("exit")
+ return { odometer:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ODOMETER,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeBeltStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onBeltStatusChanged.disconnect(model.sendBeltStatusChange)
+ model.onBeltStatusChanged.connect(model.sendBeltStatusChange)
+ console.debug("exit")
+ return { beltStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BELTSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeBeltStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onBeltStatusChanged.disconnect(model.sendBeltStatusChange)
+ console.debug("exit")
+ return { beltStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BELTSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeBodyInformation(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onBodyInformationChanged.disconnect(model.sendBodyInformationChange)
+ model.onBodyInformationChanged.connect(model.sendBodyInformationChange)
+ console.debug("exit")
+ return { bodyInformation:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BODYINFO,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeBodyInformation(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onBodyInformationChanged.disconnect(model.sendBodyInformationChange)
+ console.debug("exit")
+ return { bodyInformation:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BODYINFO,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeDeviceStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onDeviceStatusChanged.disconnect(model.sendDeviceStatusChange)
+ model.onDeviceStatusChanged.connect(model.sendDeviceStatusChange)
+ console.debug("exit")
+ return { deviceStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_DEVICESTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeDeviceStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onDeviceStatusChanged.disconnect(model.sendDeviceStatusChange)
+ console.debug("exit")
+ return { deviceStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_DEVICESTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeDriverBraking(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onDriverBrakingChanged.disconnect(model.sendDriverBrakingChange)
+ model.onDriverBrakingChanged.connect(model.sendDriverBrakingChange)
+ console.debug("exit")
+ return { driverBraking:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BRAKING,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeDriverBraking(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onDriverBrakingChanged.disconnect(model.sendDriverBrakingChange)
+ console.debug("exit")
+ return { driverBraking:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_BRAKING,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeWiperStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onWiperStatusChanged.disconnect(model.sendWiperStatusChange)
+ model.onWiperStatusChanged.connect(model.sendWiperStatusChange)
+ console.debug("exit")
+ return { wiperStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_WIPERSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeWiperStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onWiperStatusChanged.disconnect(model.sendWiperStatusChange)
+ console.debug("exit")
+ return { wiperStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_WIPERSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeHeadLampStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onHeadLampStatusChanged.disconnect(model.sendHeadLampStatusChange)
+ model.onHeadLampStatusChanged.connect(model.sendHeadLampStatusChange)
+ console.debug("exit")
+ return { headLampStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_HEADLAMPSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeHeadLampStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onHeadLampStatusChanged.disconnect(model.sendHeadLampStatusChange)
+ console.debug("exit")
+ return { headLampStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_HEADLAMPSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeEngineTorque(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onEngineTorqueChanged.disconnect(model.sendEngineTorqueChange)
+ model.onEngineTorqueChanged.connect(model.sendEngineTorqueChange)
+ console.debug("exit")
+ return { engineTorque:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ENGINETORQUE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeEngineTorque(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onEngineTorqueChanged.disconnect(model.sendEngineTorqueChange)
+ console.debug("exit")
+ return { engineTorque:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ENGINETORQUE,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeAccPedalPosition(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onAccPedalPositionChanged.disconnect(model.sendAccPedalPositionChange)
+ model.onAccPedalPositionChanged.connect(model.sendAccPedalPositionChange)
+ console.debug("exit")
+ return { accPedalPosition:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ACCPEDAL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeAccPedalPosition(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onAccPedalPositionChanged.disconnect(model.sendAccPedalPositionChange)
+ console.debug("exit")
+ return { accPedalPosition:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ACCPEDAL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeSteeringWheelAngle(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onSteeringWheelAngleChanged.disconnect(model.sendSteeringWheelAngleChange)
+ model.onSteeringWheelAngleChanged.connect(model.sendSteeringWheelAngleChange)
+ console.debug("exit")
+ return { steeringWheelAngle:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_STEERINGWHEEL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeSteeringWheelAngle(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onSteeringWheelAngleChanged.disconnect(model.sendSteeringWheelAngleChange)
+ console.debug("exit")
+ return { steeringWheelAngle:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_STEERINGWHEEL,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeECallInfo(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onECallInfoChanged.disconnect(model.sendECallInfoChange)
+ model.onECallInfoChanged.connect(model.sendECallInfoChange)
+ console.debug("exit")
+ return { eCallInfo:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ECALLINFO,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeECallInfo(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onECallInfoChanged.disconnect(model.sendECallInfoChange)
+ console.debug("exit")
+ return { eCallInfo:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_ECALLINFO,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeAirbagStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onAirbagStatusChanged.disconnect(model.sendAirbagStatusChange)
+ model.onAirbagStatusChanged.connect(model.sendAirbagStatusChange)
+ console.debug("exit")
+ return { airbagStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_AIRBAGSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeAirbagStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onAirbagStatusChanged.disconnect(model.sendAirbagStatusChange)
+ console.debug("exit")
+ return { airbagStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_AIRBAGSTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeEmergencyEvent(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onEmergencyEventChanged.disconnect(model.sendEmergencyEventChange)
+ model.onEmergencyEventChanged.connect(model.sendEmergencyEventChange)
+ console.debug("exit")
+ return { emergencyEvent:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_EMERGENCYEVENT,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeEmergencyEvent(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onEmergencyEventChanged.disconnect(model.sendEmergencyEventChange)
+ console.debug("exit")
+ return { emergencyEvent:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_EMERGENCYEVENT,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeClusterModeStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onClusterModeStatusChanged.disconnect(model.sendClusterModeStatusChange)
+ model.onClusterModeStatusChanged.connect(model.sendClusterModeStatusChange)
+ console.debug("exit")
+ return { clusterModeStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeClusterModeStatus(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onClusterModeStatusChanged.disconnect(model.sendClusterModeStatusChange)
+ console.debug("exit")
+ return { clusterModeStatus:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+
+ function subscribeMyKey(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onMyKeyChanged.disconnect(model.sendMyKeyChange)
+ model.onMyKeyChanged.connect(model.sendMyKeyChange)
+ console.debug("exit")
+ return { myKey:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_MYKEY,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+ function unsubscribeMyKey(appID) {
+ console.debug("enter")
+ var model = dataContainer.vehicleInfoModel;
+ model.onMyKeyChanged.disconnect(model.sendMyKeyChange)
+ console.debug("exit")
+ return { myKey:
+ { dataType: Common.VehicleDataType.VEHICLEDATA_MYKEY,
+ resultCode: Common.VehicleDataResultCode.VDRC_SUCCESS } }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/log4cxx.properties b/SDL_Core/src/components/qt_hmi/qml_model_qt5/log4cxx.properties
new file mode 100644
index 000000000..0bc5ac8fd
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/log4cxx.properties
@@ -0,0 +1,41 @@
+# Socket logger
+log4j.appender.SocketHub=org.apache.log4j.net.SocketHubAppender
+log4j.appender.SocketHub.port=4555
+log4j.appender.SocketHub.locationInfo=true
+
+# Only ERROR and FATAL messages are logged to console
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+log4j.appender.Console.ImmediateFlush=true
+log4j.appender.Console.layout=org.apache.log4j.PatternLayout
+log4j.appender.Console.layout.ConversionPattern=%-5p [%d{dd MMM yyyy HH:mm:ss,SSS}][%c] %m%n
+log4j.appender.Console.Threshold=ERROR
+
+# Log for all DBus plugin messages
+log4j.appender.DBusPluginLogFile=org.apache.log4j.FileAppender
+log4j.appender.DBusPluginLogFile.File=DBusPlugin.log
+log4j.appender.DBusPluginLogFile.append=false
+log4j.appender.DBusPluginLogFile.DatePattern='.' yyyy-MM-dd
+log4j.appender.DBusPluginLogFile.ImmediateFlush=true
+log4j.appender.DBusPluginLogFile.layout=org.apache.log4j.PatternLayout
+log4j.appender.DBusPluginLogFile.layout.ConversionPattern=%-5p [%d{dd MMM yyyy HH:mm:ss,SSS}][%c] %F:%L %M: %m%n
+
+# Log for all HMI Framework plugin
+log4j.appender.HmiFrameworkPluginLogFile=org.apache.log4j.FileAppender
+log4j.appender.HmiFrameworkPluginLogFile.File=HmiFrameworkPlugin.log
+log4j.appender.HmiFrameworkPluginLogFile.append=false
+log4j.appender.HmiFrameworkPluginLogFile.DatePattern='.' yyyy-MM-dd
+log4j.appender.HmiFrameworkPluginLogFile.ImmediateFlush=true
+log4j.appender.HmiFrameworkPluginLogFile.layout=org.apache.log4j.PatternLayout
+log4j.appender.HmiFrameworkPluginLogFile.layout.ConversionPattern=%-5p [%d{dd MMM yyyy HH:mm:ss,SSS}][%c] %F:%L %M: %m%n
+
+# Log for all Qt HMI
+log4j.rootLogger=ALL, Console
+
+# Log for DBus plugin QtHMI
+log4j.logger.DBusPlugin=ALL, DBusPluginLogFile
+
+# Log for HMI Framework plugin
+log4j.logger.HmiFrameworkPlugin=ALL, HmiFrameworkPluginLogFile
+
+# Log by log4cxx plugin
+log4j.logger.Log4cxxPlugin=ALL, HmiFrameworkPluginLogFile
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ApplicationData.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ApplicationData.qml
new file mode 100644
index 000000000..524ed02b0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ApplicationData.qml
@@ -0,0 +1,57 @@
+/**
+ * @file ApplicationData.qml
+ * @brief Model for Application.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+QtObject {
+ property string mainField1
+ property string mainField2
+ property string mainField3
+ property string mainField4
+ property string statusBar
+ property string mediaTrack
+ property string image
+
+ function reset () {
+ console.debug("enter")
+ mainField1 = ""
+ mainField2 = ""
+ mainField3 = ""
+ mainField4 = ""
+ statusBar = ""
+ mediaTrack = ""
+ image = ""
+ console.debug("exit")
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ApplicationModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ApplicationModel.qml
new file mode 100644
index 000000000..81bfaef96
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ApplicationModel.qml
@@ -0,0 +1,103 @@
+/**
+ * @file ApplicationModel.qml
+ * @brief Own fields for each application.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+
+QtObject {
+ property int appId
+ property string appName
+ property string ngnMediaScreenAppName
+ property Icon appIcon: Icon { }
+ property string deviceName
+ property int hmiDisplayLanguageDesired
+ property bool isMediaApplication
+ property int appType
+ property int hmiUITextAlignment
+ property string vrHelpTitle
+ property string vrHelpTitleDefault: "VR HELP"
+ property string vrHelpTitlePerformInteraction
+ property string menuTitle
+ property Icon menuIcon: Icon { }
+
+ // media player
+ property string playPauseState
+ property ApplicationData hmiUIText: ApplicationData { }
+ property MediaClockModel mediaClock: MediaClockModel { }
+ property NavigationModel navigationModel: NavigationModel { }
+
+ property string helpPrompt
+ property string timeoutPrompt
+ property ListModel vrHelpItems: ListModel { }
+ property ListModel vrHelpItemsDefault: VrHelpItemsDefault { }
+ property ListModel vrHelpItemsPerformInteraction: ListModel { }
+ property ListModel options: ListModel { }
+ property ListModel currentSubMenu: options
+ property ListModel turnList
+ property ListModel softButtons
+ property ListModel turnListSoftButtons
+ property ListModel navigationSoftButtons
+ property ListModel alertManeuverSoftButtons
+ property ListModel customPresets
+ property int languageTTSVR
+ // This place is for adding new properties
+
+ function reset () {
+ console.debug("enter")
+ appId = -1
+ appName = ""
+ ngnMediaScreenAppName = ""
+ appIcon.reset()
+ deviceName = ""
+ hmiDisplayLanguageDesired = -1
+ isMediaApplication = false
+ playPauseState = ""
+ hmiUIText.reset()
+// no need to reset mediaClock
+ helpPrompt = ""
+ timeoutPrompt = ""
+ options.clear()
+ currentSubMenu = options
+ turnList = null
+ softButtons = null
+ navigationSoftButtons = null
+ alertManeuverSoftButtons = null
+ turnListSoftButtons = null
+ customPresets = null
+ languageTTSVR = -1
+ hmiUITextAlignment = -1
+ appType = 0
+ console.debug("exit")
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/CarMenuModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/CarMenuModel.qml
new file mode 100644
index 000000000..c715ae091
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/CarMenuModel.qml
@@ -0,0 +1,78 @@
+/**
+ * @file CarMenuModel.qml
+ * @brief Car menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+
+ListModel
+{
+ ListElement {
+ name: "ambient"
+ icon: "../res/vehicle/Ambient Lighti Icon.png"
+ qml: ""
+ }
+ ListElement {
+ name: "cal"
+ icon: "../res/vehicle/cal.png"
+ qml: ""
+ }
+ ListElement {
+ name: "ev"
+ icon: "../res/vehicle/EV Icon.png"
+ qml: ""
+ }
+ ListElement {
+ name: "folders"
+ icon: "../res/vehicle/folders.png"
+ qml: ""
+ }
+ ListElement {
+ name: "key"
+ icon: "../res/vehicle/key_car.png"
+ qml: ""
+ }
+ ListElement {
+ name: "mcs"
+ icon: "../res/vehicle/MCS Icon.png"
+ qml: ""
+ }
+ ListElement {
+ name: "sun"
+ icon: "../res/vehicle/sun.png"
+ qml: ""
+ }
+ ListElement {
+ name: "sync"
+ icon: "../res/vehicle/SYNC Services.png"
+ qml: ""
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/Constants.js b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/Constants.js
new file mode 100644
index 000000000..0b4a3191d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/Constants.js
@@ -0,0 +1,250 @@
+/**
+ * @file Constants.js
+ * @brief Namespace of constants.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+.pragma library
+
+// Colors
+
+// Main color of HMI model(now it ~lightblue). Buttons, text, icons of this color.
+var primaryColor = "#1d81d5"
+
+// Color of pressed buttons, text, icons etc.
+var primaryColorPressed = "#8ec0ea"
+
+// Secondary color of HMI model, backgroud of this color.
+var secondaryColor = "black"
+
+// Color of text at buttonts that are inactive (at phone keyboard, when no any contact started with current letter).
+var inactiveButtonTextColor = "grey"
+
+// Color of text at buttonts that are inactive but nevertheless pressed (at phone keyboard, when no any contact started with current letter).
+var inactiveButtonTextColorPressed = "lightgrey"
+
+// Color of text at contact list screen view (Name, number and number type).
+var contactTextColor = "lightblue"
+
+// Color of text at buttons, when they are pressed.
+var pressedButtonTextColor = "black"
+
+// Color of text at "white" buttons, for all other buttons (which most) use primaryColor.
+var releasedButtonTextColor = "white"
+
+// Transparent background.
+var transparentColor = "#00000000"
+
+// "Warning" word color
+var warningColor = "red"
+
+// Color for PopUp
+var popUpBorderColor = "white"
+
+// Color for hardware and simulation panels
+var panelColor = "#003"
+
+// Color for text in hardware and simulation panels
+var panelTextColor = "white"
+
+// Audio pass thru PopUp text color
+var audioPassThruTextColor = "white"
+
+// Semi transparent color of item in SDL Navi menu
+var sdlNaviTransparentItemColor = "#30C0C0C0"
+
+//--------------------------------------------------------------------------------------
+
+// Font sizes of different elements
+
+// Font size for most of text in HMI model.
+var fontSize = 20
+
+// Font size for text inside oval buttons.
+var ovalButtonFontSize = 15
+
+// Title font size
+var titleFontSize = 35
+
+// Power on/off button font size
+var powerButtonFornSize = 25
+
+// Font size of status bar
+var statusBarFontSize = 15
+
+// Size icon for buttons
+var iconButtonSize = 30
+
+// Size icon for item list
+var iconItemListSize = 40
+
+// font size fo TTS popup
+var ttsFontSize = 12
+
+// Font size for list of applications
+var appListFontSize = 40
+
+// Size of contact list fields
+var contactListNameFieldSize = 0.4
+var contactListPhoneFieldSize = 0.3
+var contactListDescriptionFieldSize = 0.3
+
+//--------------------------------------------------------------------------------------
+
+// Sizes of buttons, menus, screen, etc
+
+// Minimal width and height of screen (screen wont resize, if height and width are lower).
+var mainScreenMinWidth = 800
+var mainScreenMiHeight = 600
+
+// Width for long oval button
+var ovalButtonWidth = 163
+
+// Height for oval button
+var ovalButtonHeight = 65
+
+// Height item list
+var itemListHeight = 60
+
+// Width for TTS popup
+var ttsPopUpWidth = 250
+
+// Height for TTS popup
+var ttsPopUpHeight = 100
+
+// Width for popup view
+var popupWidth = 700
+
+// Width for alert window
+var alertWidth = 360
+
+// Height for popup view
+var popupHeigth = 500
+
+// Width for combobox
+var defaultComboboxWidth = 150
+
+// Size icon for list of applications
+var appListIconSize = 100
+
+// DistanceBar height
+var distanceBarHeight = 1
+
+
+//---------------------------------------------------------------------------------------
+
+// Other
+
+// Offset from the edges of the screen.
+var margin = 20
+
+// Offset from the edges of the popup
+var popupMargin = 15
+
+// Spacing between items in SDLNavi view
+var sdlNaviSpacing = 5
+
+// Spacing between contacts at contact screen view.
+var contactListSpacing = 30
+
+// Duration of appearance of icon/button at icon/button menus.
+var animationDuration = 500
+
+// Duration of appearence of "OK" button at warning screen view, when HMI starts.
+var warningScreenDuration = 1000
+
+// Timer to check how long preset button is pressed.
+var presetButtonTimer = 800
+
+// Timer to check got long custom button is pressed.
+var customButtonTimer = 2000
+
+// Spacing between icon and item in list
+var iconItemListSpacing = 20
+
+// Spacing between item on views
+var generalSpacing = 10
+
+// Width of scrollBar
+var scrollBarWidth = 5
+
+// Speak text for a given time
+var ttsSpeakTime = 2000
+
+// Maximal number of submenus
+var maximumSubmenus = 1000
+
+// Maximal number of commands in submenu or root menu
+var maximumCommandsPerSubmenu = 1000
+
+// padding for popup view
+var popUpPadding = 20
+
+// Padding for TTS popup
+var ttsPopUpPadding = 10
+
+// -------------------------
+var sliderBarWidth = 400
+var sliderBarHeight = 50
+var sliderBarRadius = 3
+var sliderBarBorderWidth = 1
+var sliderTextColor = "white"
+var sliderBarBorderColor = "white"
+var sliderBarFillColor = "white"
+
+// -------------------------
+var scrollableMessageTextColor = "white"
+var scrollableMessageScrollBarColor = "gray"
+var scrollableMessageScrollBarWidth = 10
+
+// Padding for hardware and simulation panels
+var panelPadding = 20
+
+// Scale for pressed icon in menu
+var pressedIconScale = 1.1
+
+// Values of color effect for highlighted button
+var highlightedButtonHue = 0.9
+var highlightedButtonSaturation = 0.0
+var highlightedButtonLightness = 0.1
+
+// Values of color effect for disabled button
+var disabledButtonHue = 0.0
+var disabledButtonSaturation = -1.0
+var disabledButtonLightness = 0.1
+
+// Count of rows for grid menu
+var menuRowCount = 2
+
+// Count of columns for grid menu
+var menuColumnCount = 3
+
+// Position for element that came without position value (should be always at the end)
+var positionOfElementWithoutPosition = 1001
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ContactsListModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ContactsListModel.qml
new file mode 100644
index 000000000..7e9326e9d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ContactsListModel.qml
@@ -0,0 +1,98 @@
+/**
+ * @file ContactsListModel.qml
+ * @brief List of contacts.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+
+ListModel
+{
+ // TODO {ALeshin}: This list model should be sorted in ABC and Upper/lower case order,
+ // when it will be filled dynamically.
+ ListElement { name: "Aaron" ; phone:"(614)555-2444";type:"Mobile"}
+ ListElement { name: "Adrian" ; phone:"(740)245-3434";type:"Mobile" }
+ ListElement { name: "Albert" ; phone:"(614)245-5584";type:"Mobile" }
+ ListElement { name: "Alice" ; phone:"(313)878-3566";type:"Office"}
+ ListElement { name: "Alec" ; phone:"(917)608-2418";type:"Mobile"}
+ ListElement { name: "Alexander" ; phone:"(614)608-2400";type:"Home"}
+ ListElement { name: "Alexander Vasil'evich Michail Leontiy" ; phone:"(614)608-2400";type:"Mobile"}
+ ListElement { name: "Amber" ; phone:"(614)608-2111";type:"Mobile"}
+ ListElement { name: "Amy" ; phone:"(440)245-3434";type:"Mobile" }
+ ListElement { name: "Andy" ; phone:"(313)245-3434";type:"Mobile" }
+ ListElement { name: "Antje" ; phone:"(567)245-3434";type:"Home" }
+ ListElement { name: "buddy" ; phone:"(614)813-6610";type:"Mobile" }
+ ListElement { name: "Barry" ; phone:"(313)555-2211";type:"Mobile" }
+ ListElement { name: "Bea" ; phone:"(614)455-3434";type:"Mobile" }
+ ListElement { name: "Ben" ; phone:"(614)882-1843";type:"Office" }
+ ListElement { name: "Blake" ; phone:"(330)149-7778";type:"Mobile" }
+ ListElement { name: "Bob Mould" ; phone:"(313)245-3434";type:"Mobile" }
+ ListElement { name: "Brian" ; phone:"(614)332-7499";type:"Mobile" }
+ ListElement { name: "Calvin" ; phone:"(614)442-9974";type:"Mobile" }
+ ListElement { name: "Carl" ; phone:"(567)773-3434";type:"Home" }
+ ListElement { name: "Cat Power" ; phone:"(313)608-3434";type:"Home"}
+ ListElement { name: "Cathy" ; phone:"(313)444-456";type:"Home"}
+ ListElement { name: "Chris" ; phone:"(734)997-6514";type:"Home" }
+ ListElement { name: "Cloud Nothings"; phone:"(444)608-543";type:"Mobile"}
+ ListElement { name: "Cody" ; phone:"(567)365-8413";type:"Home" }
+ ListElement { name: "Curtis" ; phone:"(614)245-1547";type:"Office" }
+ ListElement { name: "Dakota" ; phone:"(567)555-4444";type:"Home" }
+ ListElement { name: "Dale" ; phone:"(567)723-1974";type:"Mobile" }
+ ListElement { name: "Dallas"; phone:"(614)556-879";type:"Home"}
+ ListElement { name: "Damian" ; phone:"(614)245-3434";type:"Office" }
+ ListElement { name: "Daniel"; phone:"(614)556-879";type:"Home"}
+ ListElement { name: "Darina"; phone:"(313)895-888";type:"Mobile"}
+ ListElement { name: "Dee "; phone:"(313)432-3434";type:"Home"}
+// ListElement { name: "Edward" ; phone:"(917)608-975";type:"Office"}
+ ListElement { name: "Ferdinand" ; phone:"(917)879-795";type:"Mobile"}
+ ListElement { name: "gomez" ; phone:"(313)455-543";type:"Mobile"}
+ ListElement { name: "Harry Potter"; phone:"(313)888-432";type:"Home"}
+ ListElement { name: "Ivan"; phone:"(313)996-225";type:"Home"}
+// ListElement { name: "James" ; phone:"(917)608-3434";type:"Mobile"}
+ ListElement { name: "Karen"; phone:"(313)998-332";type:"Home"}
+ ListElement { name: "Luis Torres"; phone:"(313)779-111";type:"Home"}
+ ListElement { name: "Mary"; phone:"(313)234-098";type:"Mobile"}
+ ListElement { name: "Neil"; phone:"(313)444-112";type:"Mobile"}
+ ListElement { name: "Oswald"; phone:"(313)456-921";type:"Mobile"}
+ ListElement { name: "Oscar"; phone:"(313)332-778";type:"Home"}
+ ListElement { name: "~1123"; phone:"(313)1332";type:"Home"}
+ ListElement { name: "Patrice"; phone:"(313)789-111";type:"Mobile"}
+ ListElement { name: "Queen Elizabeth"; phone:"(313)897-666";type:"Mobile"}
+ ListElement { name: "Rose"; phone:"(313)111-211";type:"Mobile"}
+ ListElement { name: "Susell"; phone:"(313)345-122";type:"Home"}
+ ListElement { name: "Thomas"; phone:"(917)608-342";type:"Mobile"}
+ ListElement { name: "Titus Andronicus" ; phone:"(917)608-321";type:"Office"}
+ ListElement { name: "Toretto" ; phone:"(917)608-3434";type:"Home"}
+ ListElement { name: "Uhl" ; phone:"(313)444-654";type:"Office"}
+ ListElement { name: "willi" ; phone:"(313)224-5712";type:"Office"}
+ ListElement { name: "Wanda" ; phone:"(313)666-6969";type:"Office"}
+ ListElement { name: "wanda" ; phone:"(313)666-6969";type:"Office"}
+ ListElement { name: "Zara" ; phone:"(313)231-009";type:"Mobile"}
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/DataStorage.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/DataStorage.qml
new file mode 100644
index 000000000..619776832
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/DataStorage.qml
@@ -0,0 +1,651 @@
+/**
+ * @file DataStorage.qml
+ * @brief Container for data.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+import "Internal.js" as Internal
+import "Constants.js" as Constants
+
+QtObject {
+ property string contactsFirstLetter // first letter of contact's name that need to find at contact list
+ property ApplicationModel currentApplication: ApplicationModel { }
+ property SliderModel uiSlider: SliderModel { }
+ property PerformAudioPassThruModel uiAudioPassThru: PerformAudioPassThruModel { }
+ property ScrollableMessageModel scrollableMessageModel: ScrollableMessageModel { }
+
+ function getApplication(appId) {
+ console.log("enter");
+ for(var i = 0; i < applicationList.count; i++) {
+ if(applicationList.get(i).appId === appId) {
+ console.log("Application found", applicationList.get(i));
+ return applicationList.get(i);
+ }
+ }
+ console.log("exit");
+ }
+
+ function getStashedApplication(appId) {
+ console.log("enter getStashedApplication function");
+ for(var i = 0; i < stashedApplicationsList.count; i++) {
+ if(stashedApplicationsList.get(i).appId === appId) {
+ console.log("Application found", stashedApplicationsList.get(i));
+ return stashedApplicationsList.get(i);
+ }
+ }
+ console.log("exit getStashedApplication: application was not found");
+ }
+
+ onApplicationListChanged: {
+ console.log("onApplicationListChanged()");
+ setCurrentApplication(appId);
+ }
+
+ function setCurrentApplication(appId) {
+ console.log("Enter setCurrentApplication function");
+ var oldApplicationContext = applicationContext;
+ if (currentApplication.appId !== appId) {
+ applicationContext = false;
+ }
+
+ for(var i = 0; i < applicationList.count; i++) {
+ if(applicationList.get(i).appId === appId) {
+ currentApplication.appId = appId
+ var application = applicationList.get(i)
+
+ currentApplication.appName = application.appName
+ currentApplication.appType = application.appType
+ currentApplication.appIcon.source = application.icon
+ currentApplication.playPauseState = application.playPauseState
+ currentApplication.options = application.options
+ currentApplication.softButtons = application.softButtons
+ currentApplication.navigationSoftButtons = application.navigationSoftButtons
+ currentApplication.alertManeuverSoftButtons = application.alertManeuverSoftButtons
+ currentApplication.customPresets = application.customPresets
+
+ if (application.navigationModel.text1 !== undefined) {
+ currentApplication.navigationModel.text1 = application.navigationModel.text1
+ }
+ if (application.navigationModel.text2 !== undefined) {
+ currentApplication.navigationModel.text2 = application.navigationModel.text2
+ }
+ if (application.navigationModel.totalDistance !== undefined) {
+ currentApplication.navigationModel.totalDistance = application.navigationModel.totalDistance
+ }
+ if (application.navigationModel.eta !== undefined) {
+ currentApplication.navigationModel.eta = application.navigationModel.eta
+ }
+ if (application.navigationModel.timeToDestination !== undefined) {
+ currentApplication.navigationModel.timeToDestination = application.navigationModel.timeToDestination
+ }
+ if (application.navigationModel.turnIcon !== undefined) {
+ currentApplication.navigationModel.turnIcon = application.navigationModel.turnIcon
+ }
+ if (application.navigationModel.nextTurnIcon !== undefined) {
+ currentApplication.navigationModel.nextTurnIcon = application.navigationModel.nextTurnIcon
+ }
+ if (application.navigationModel.distanceToManeuver !== undefined) {
+ currentApplication.navigationModel.distanceToManeuver = application.navigationModel.distanceToManeuver
+ }
+ if (application.navigationModel.distanceToManeuverScale !== undefined) {
+ currentApplication.navigationModel.distanceToManeuverScale = application.navigationModel.distanceToManeuverScale
+ }
+ if (application.navigationModel.maneuverComplete !== undefined) {
+ currentApplication.navigationModel.maneuverComplete = application.navigationModel.maneuverComplete
+ }
+ if (application.navigationModel.appID !== undefined) {
+ currentApplication.navigationModel.appID = application.navigationModel.appID
+ }
+ if (application.hmiUIText.mainField1 !== undefined) {
+ currentApplication.hmiUIText.mainField1 = application.hmiUIText.mainField1
+ }
+ if (application.hmiUIText.mainField2 !== undefined) {
+ currentApplication.hmiUIText.mainField2 = application.hmiUIText.mainField2
+ }
+ if (application.hmiUIText.mainField3 !== undefined) {
+ currentApplication.hmiUIText.mainField3 = application.hmiUIText.mainField3
+ }
+ if (application.hmiUIText.mainField4 !== undefined) {
+ currentApplication.hmiUIText.mainField4 = application.hmiUIText.mainField4
+ }
+ if (application.hmiUIText.statusBar !== undefined) {
+ currentApplication.hmiUIText.statusBar = application.hmiUIText.statusBar
+ }
+ if (application.hmiUIText.mediaTrack !== undefined) {
+ currentApplication.hmiUIText.mediaTrack = application.hmiUIText.mediaTrack
+ }
+ if (application.hmiUIText.image !== undefined) {
+ currentApplication.hmiUIText.image = application.hmiUIText.image
+ }
+ if (application.hmiUITextAlignment !== undefined) {
+ currentApplication.hmiUITextAlignment = application.hmiUITextAlignment
+ }
+ if (application.helpPrompt !== undefined) {
+ currentApplication.helpPrompt = application.helpPrompt
+ }
+ if (application.timeoutPrompt !== undefined) {
+ currentApplication.timeoutPrompt = application.timeoutPrompt
+ }
+ if (application.mediaClock.startTime !== undefined) {
+ currentApplication.mediaClock.startTime = application.mediaClock.startTime
+ }
+ if (application.mediaClock.endTime !== undefined) {
+ currentApplication.mediaClock.endTime = application.mediaClock.endTime
+ }
+ // Check fields with mandatory = false
+
+ if (application.menuIcon !== undefined) {
+ currentApplication.menuIcon.source = application.menuIcon
+ }
+ currentApplication.vrHelpTitle = application.vrHelpTitle
+ currentApplication.vrHelpTitleDefault = application.vrHelpTitleDefault
+ currentApplication.vrHelpTitlePerformInteraction = application.vrHelpTitlePerformInteraction
+ currentApplication.menuTitle = application.menuTitle
+ currentApplication.vrHelpItems = application.vrHelpItems
+ currentApplication.vrHelpItemsPerformInteraction = application.vrHelpItemsPerformInteraction
+ currentApplication.deviceName = application.deviceName
+ currentApplication.isMediaApplication = application.isMediaApplication
+ currentApplication.turnList = application.turnList
+ currentApplication.turnListSoftButtons = application.turnListSoftButtons
+ currentApplication.mediaClock.updateMode = application.mediaClock.updateMode
+ currentApplication.mediaClock.runningMode = application.mediaClock.runningMode
+ if (application.startTimeForProgress !== undefined) {
+ currentApplication.mediaClock.startTimeForProgress = application.mediaClock.startTimeForProgress
+ }
+ currentApplication.languageTTSVR = application.languageTTSVR
+ currentApplication.hmiDisplayLanguageDesired = application.hmiDisplayLanguageDesired
+ // This place is for adding new properties
+ }
+ }
+ applicationContext = oldApplicationContext;
+ currentApplicationChanged()
+ console.log("Exit setCurrentApplication function")
+ }
+
+ function addApplication(app) {
+ console.log("enter")
+ applicationList.append({
+ appName: app.appName,
+ ngnMediaScreenAppName: app.ngnMediaScreenAppName,
+ icon: app.icon,
+ menuIcon: {
+ value: "",
+ imageType: 1
+ },
+ deviceName: app.deviceName,
+ appId: app.appId,
+ hmiDisplayLanguageDesired: app.hmiDisplayLanguageDesired,
+ isMediaApplication: app.isMediaApplication,
+ appType: app.appType,
+ helpPrompt: "",
+ timeoutPrompt: "",
+ customPresets: app.customPresets ? app.customPresets : [],
+ playPauseState: 'Pause',
+ hmiUIText: app.hmiUIText,
+ hmiUITextAlignment: app.hmiUITextAlignment,
+ options: [],
+ turnList: [],
+ turnListSoftButtons: [],
+ mediaClock: app.mediaClock,
+ languageTTSVR: Common.Language.EN_US,
+ softButtons: [],
+ vrHelpTitle: "",
+ vrHelpTitlePerformInteraction: "",
+ vrHelpTitleDefault: "VR HELP",
+ menuTitle: "",
+ keyboardProperties: [],
+ vrHelpItems: [],
+ vrHelpItemsPerformInteraction: [],
+ vrHelpItemsDefault: {
+ text: "VrHelpItems - defaultText1",
+ image: "",
+ position: 1
+ },
+ navigationSoftButtons: [],
+ alertManeuverSoftButtons: [],
+ navigationModel: {
+ appID: -1,
+ text1: "",
+ text2: "",
+ totalDistance: "",
+ eta: "",
+ timeToDestination: "",
+ turnIcon: {
+ value: "",
+ imageType: -1
+ },
+ nextTurnIcon: {
+ value: "",
+ imageType: -1
+ },
+ distanceToManeuver: 0,
+ distanceToManeuverScale: 0,
+ maneuverComplete: null
+ }
+ // This place is for adding new properties
+ })
+ if (app.isMediaApplication) {
+ musicSourceModel.insert(0, {
+ "title": app.appName,
+ "qml": "views/SDLPlayerView.qml",
+ "appId": app.appId
+ })
+ }
+
+ console.log("exit")
+ }
+
+ function setApplicationProperties(appId, props) {
+ console.log("Enter setApplicationProperties function");
+
+ var app = getApplication(appId)
+ for (var p in props) {
+ console.debug(p)
+ if (props[p] !== undefined) {
+ app[p] = props[p]
+ }
+ }
+ if (currentApplication.appId === appId) {
+ setCurrentApplication(appId); // copy new values to current application
+ }
+ console.log("Exit setApplicationProperties function");
+ }
+
+ function removeApplication(appId) {
+ console.log("enter");
+ for (var j = 0; j < musicSourceModel.count; ++j) {
+ if (musicSourceModel.get(j).appId === appId) {
+ musicSourceModel.remove(j);
+ break;
+ }
+ }
+ for (var i = 0; i < applicationList.count; i++) {
+ if (applicationList.get(i).appId === appId) {
+ applicationList.remove(i);
+ break;
+ }
+ }
+ console.log("exit");
+ }
+
+ function stashApplication(appId) {
+ console.log("stashApplication enter");
+ stashedApplicationsList.append(getApplication(appId))
+ console.log("stashApplication exit");
+ }
+
+ function getResumeResult (appID) {
+
+ if (getStashedApplication(appId) && getApplication(appID)) {
+ var stashedApp = getStashedApplication(appId),
+ app = getApplication(appID);
+ if (stashedApp.options.count == app.options.count) {
+ for (var optionIndex = 0; optionIndex < stashedApp.options.count; ++optionIndex) {
+ if (app.options.get(optionIndex).type === Internal.MenuItemType.MI_SUBMENU) {
+ //comparison subMenu compare
+
+ if ( !((app.options.get(optionIndex).id === stashedApp.options.get(optionIndex).id) &&
+ (app.options.get(optionIndex).name === stashedApp.options.get(optionIndex).name) &&
+ (app.options.get(optionIndex).position === stashedApp.options.get(optionIndex).position) &&
+ (app.options.get(optionIndex).icon === stashedApp.options.get(optionIndex).icon))) {
+ return {
+ result: false
+ }
+ }
+
+ var stashedAppSubMenu = stashedApp.options.get(optionIndex).subMenu,
+ appSubMenuArray = app.options.get(optionIndex).subMenu;
+
+ if (stashedAppSubMenu.length != appSubMenuArray.length) {
+ return {
+ result: false
+ }
+ }
+
+ for (var subMenuIndex = 0; subMenuIndex < stashedAppSubMenu.length; subMenuIndex++) {
+ if ( !((appSubMenuArray[subMenuIndex].id === stashedAppSubMenu[subMenuIndex].id) &&
+ (appSubMenuArray[subMenuIndex].name === stashedAppSubMenu[subMenuIndex].name) &&
+ (appSubMenuArray[subMenuIndex].position === stashedAppSubMenu[subMenuIndex].position) &&
+ (appSubMenuArray[subMenuIndex].icon === stashedAppSubMenu[subMenuIndex].icon)
+ )) {
+ return {
+ result: false
+ }
+ }
+ }
+ } else {
+ //comparison Command compare
+ if ( !((app.options.get(optionIndex).id === stashedApp.options.get(optionIndex).id) &&
+ (app.options.get(optionIndex).name === stashedApp.options.get(optionIndex).name) &&
+ (app.options.get(optionIndex).position === stashedApp.options.get(optionIndex).position) &&
+ (app.options.get(optionIndex).icon === stashedApp.options.get(optionIndex).icon)
+ )) {
+ return {
+ result: false
+ }
+ }
+ }
+ }
+ // if all commands and subMenus were same
+ // rerturn SUCCESS result
+ return {
+ result: true
+ }
+ }
+ }
+
+ return {
+ result: false
+ }
+ }
+
+ property int systemContext
+ property int hmiContext
+ property bool applicationContext: false
+ property bool applicationSavedContext
+ property string routeText: ""
+ property PlayerState cdPlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState ipodPlayerState: PlayerState {
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ playPauseState: 'Pause'
+ }
+ property PlayerState usbPlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState linePlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState btPlayerState: PlayerState {
+ playPauseState: 'Pause'
+ albumImage: "../res/album_art.png"
+ trackNumber: "13/16"
+ trackName: "The Dog Days Are Over"
+ albumName: "Florence and the Machine"
+ }
+ property PlayerState amPlayerState: PlayerState {
+ songName: "So Far Around The Bend"
+ albumName: "The National"
+ presets: [ "1130", "950", "760", "1270", "1400", "2100", "940", "1001" ]
+ }
+ property PlayerState fmPlayerState: PlayerState {
+ songName: "So Far Around The Bend"
+ albumName: "The National"
+ presets: ["96.3", "107.9", "104.3", "101.9", "105.3", "100.5", "107.9", "103.4"]
+ }
+ property PlayerState siriusPlayerState: PlayerState {
+ songName: "So Far Around The Bend"
+ albumName: "The National"
+ presets: [ "Lithium", "Spectrum", "ESPN", "Alt Nation", "Lithium", "Spectrum", "ESPN", "Alt Nation" ]
+ }
+
+ property bool hmiVRAvailable: false
+ property bool hmiTTSAvailable: false
+ property bool hmiNavigationAvailable: false
+ property bool hmiVehicleInfoAvailable: false
+ property bool hmiUIAvailable: false
+
+ property int hmiUILanguage: Common.Language.EN_US
+ property int hmiTTSVRLanguage: Common.Language.EN_US
+
+ property ListModel deviceList: ListModel { }
+ property ListModel applicationList: ListModel { }
+ property ListModel stashedApplicationsList: ListModel { }
+ property ListModel vrCommands: ListModel {}
+
+ function reset () {
+ console.log("dataContainer reset enter");
+ routeText = ""
+ console.log("dataContainer reset exit");
+ }
+
+ function changeRegistrationUI (language, appID) {
+ console.log("dataContainer changeRegistrarionUI enter");
+ setApplicationProperties(appID, { hmiDisplayLanguageDesired: language });
+ console.log("dataContainer changeRegistrarionUI exit");
+ }
+
+ function changeRegistrationTTSVR(language, appID) {
+ console.log("dataContainer changeRegistrationTTSVR enter");
+ setApplicationProperties(appID, { languageTTSVR: language });
+ console.log("dataContainer changeRegistrationTTSVR exit");
+ }
+
+ function addCommand (cmdID, menuParams, cmdIcon, appID) {
+ console.debug("enter: " +
+ cmdID +
+ ", " +
+ (menuParams ?
+ "{" + menuParams.parentID + ", " + menuParams.position + ", " + menuParams.menuName + "}" : menuParams) +
+ ", " +
+ (cmdIcon ?
+ "{" + cmdIcon.value + ", " + cmdIcon.imageType + "}" : cmdIcon) +
+ ", " +
+ appID
+ )
+ var commandToAddPosition
+ var app = getApplication(appID)
+ var currentMenu = app.options
+ var maximumCommands = Constants.maximumCommandsPerSubmenu
+ var index = 0
+
+ if ((menuParams) && (menuParams.parentID)) { // Work with sub menu
+ var parentNotFound = true
+ for (var optionIndex = 0; optionIndex < app.options.count; ++optionIndex) {
+ if ((app.options.get(optionIndex).type === Internal.MenuItemType.MI_SUBMENU) && (app.options.get(optionIndex).id === menuParams.parentID)) {
+ currentMenu = app.options.get(optionIndex).subMenu
+ parentNotFound = false
+ maximumCommands += 1
+ }
+ }
+ if (parentNotFound) {
+ console.log("UI::addCommand(): parentID " + menuParams.parentID + " not found")
+ }
+ }
+
+ if (currentMenu.count < maximumCommands) {
+ if (menuParams && (menuParams.position !== undefined)) {
+ commandToAddPosition = menuParams.position
+ } else {
+ commandToAddPosition = Constants.positionOfElementWithoutPosition
+ }
+ for (var i = 0; i < currentMenu.count; i++) {
+ if (commandToAddPosition >= currentMenu.get(i).position) {
+ index = i + 1
+ } else {
+ break
+ }
+ }
+ currentMenu.insert( index,
+ { id: cmdID,
+ name: menuParams.menuName,
+ type: Internal.MenuItemType.MI_NODE,
+ position: commandToAddPosition,
+ icon: cmdIcon ? cmdIcon : {},
+ subMenu: []
+ })
+ } else {
+ console.log("addCommand(): too many commands in menu: ", menuParams.parentID, " rejecting")
+ throw Common.Result.REJECTED
+ }
+ console.debug("exit")
+ }
+
+ function deleteCommand (cmdID, appID) {
+ console.debug("enter: " + cmdID + ", " + appID)
+ for (var optionIndex = 0; optionIndex < getApplication(appID).options.count; ++optionIndex) {
+ var option = getApplication(appID).options.get(optionIndex)
+ if (option.type === Internal.MenuItemType.MI_NODE) {
+ if (option.id === cmdID) {
+ getApplication(appID).options.remove(optionIndex)
+ break
+ }
+ }
+ if (option.type === Internal.MenuItemType.MI_SUBMENU) {
+ var subMenu = option.subMenu
+ var idMatchFound = false
+ for (var subOptionIndex = 0; subOptionIndex < subMenu.count; ++subOptionIndex) {
+ if (subMenu.get(subOptionIndex).id === cmdID) {
+ idMatchFound = true
+ if (subMenu !== currentApplication.currentSubMenu) {
+ subMenu.remove(subOptionIndex)
+ }
+ else {
+ console.log("UI::deleteCommand(): cannot remove item from current submenu")
+ throw Common.Result.IN_USE
+ }
+ break
+ }
+ }
+ if (idMatchFound) {
+ break
+ }
+ }
+ }
+ console.debug("exit")
+ }
+
+ function addSubMenu (menuID, menuParams, appID) {
+ console.debug("enter: " + menuID + ", {" + menuParams.parentID + ", " + menuParams.position + ", " + menuParams.menuName + "}, " + appID)
+ var app = getApplication(appID)
+ var index = 0
+ var count = app.options.count
+ var subMenuToAddPosition
+
+ if (count < Constants.maximumSubmenus) {
+ if (menuParams.position !== undefined) {
+ subMenuToAddPosition = menuParams.position
+ } else {
+ subMenuToAddPosition = Constants.positionOfElementWithoutPosition
+ }
+ for (var i = 0; i < count; i++) {
+ if (subMenuToAddPosition >= app.options.get(i).position) {
+ index = i + 1
+ } else {
+ break
+ }
+ }
+ app.options.insert(index, {
+ "id": menuID,
+ "name": menuParams.menuName,
+ "position": subMenuToAddPosition,
+ "type": Internal.MenuItemType.MI_SUBMENU,
+ "icon": undefined,
+ "subMenu": [{
+ "id": -1,
+ "name": menuParams.menuName,
+ "position": -1,
+ "type": Internal.MenuItemType.MI_PARENT,
+ "icon": {
+ "imageType": Common.ImageType.DYNAMIC,
+ "value": "../res/nav/turnArrow.png"
+ },
+ "subMenu": getApplication(appID).options
+ }]
+ })
+ }
+ else {
+ console.log("addSubMenu(): too many submenus, rejecting")
+ throw Common.Result.REJECTED
+ }
+ console.debug("exit")
+ }
+
+ function deleteSubMenu (menuID, appID) {
+ console.debug("enter: " + menuID + ", " + appID)
+ for (var optionIndex = 0; optionIndex < getApplication(appID).options.count; ++optionIndex) {
+ var option = getApplication(appID).options.get(optionIndex)
+ if ((option.type === Internal.MenuItemType.MI_SUBMENU) && (option.id === menuID)) {
+ if (option.subMenu !== currentApplication.currentSubMenu) {
+ getApplication(appID).options.remove(optionIndex)
+ }
+ else {
+ console.log("UI::deleteSubMenu(): cannot remove current submenu")
+ throw Common.Result.IN_USE
+ }
+ break
+ }
+ }
+ console.debug("exit")
+ }
+ property VehicleInfoModel vehicleInfoModel: VehicleInfoModel { }
+ property bool activeVR: false
+ property int driverDistractionState: Common.DriverDistractionState.DD_OFF
+ onDriverDistractionStateChanged: {
+ sdlUI.onDriverDistraction(driverDistractionState);
+ }
+ property bool activeTTS: false
+ property var activePopup: [] // Stack of names of active pop ups
+ property int popups: 0
+
+ property bool activeAlert: false
+
+ onActiveVRChanged: setSystemContext()
+ onActiveAlertChanged: setSystemContext()
+ onPopupsChanged: setSystemContext()
+
+ function setSystemContext () {
+ console.debug("enter")
+ if (popups > 0) {
+ systemContext = Common.SystemContext.SYSCTXT_HMI_OBSCURED
+ }
+ else if (activeAlert) {
+ systemContext = Common.SystemContext.SYSCTXT_ALERT
+ }
+ else if (activeVR) {
+ systemContext = Common.SystemContext.SYSCTXT_VRSESSION
+ }
+ else if (contentLoader.item !== null) {
+ systemContext = contentLoader.item.systemContext
+ }
+ console.debug("exit")
+ }
+ property MusicSourceModel musicSourceModel: MusicSourceModel {
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/Internal.js b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/Internal.js
new file mode 100644
index 000000000..53d764013
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/Internal.js
@@ -0,0 +1,176 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+.pragma library
+.import "../hmi_api/Common.js" as Common
+
+var MenuItemType = {
+ MI_NODE: 0,
+ MI_SUBMENU: 1,
+ MI_PARENT: 2
+}
+
+function activePageChoose(flickElement, pages) {
+ if (flickElement.contentX <= 0) {
+ return 0
+ }
+ else if ( (flickElement.contentWidth - flickElement.contentX) < flickElement.width) {
+ return pages -1
+ }
+ else {
+ if ( (flickElement.contentX % flickElement.width) >= (1/6 * flickElement.width)) {
+ return Math.ceil(flickElement.contentX / flickElement.width)
+ }
+ else if ( (flickElement.contentX % flickElement.width) > 0) {
+ return Math.floor(flickElement.contentX / flickElement.width)
+ }
+ }
+}
+
+var MediaClockUpdateMode = {
+ MCU_COUNTUP: 0,
+ MCU_COUNTDOWN: 1,
+}
+
+var MediaClockRunningMode = {
+ MCR_RUNNING: 0,
+ MCR_STOPPED: 1
+}
+
+function chooseAppStartScreen(appType, isMediaApplication) {
+ if (checkBit(appType, Common.AppHMIType.NAVIGATION)) {
+ return "./views/SDLNavi.qml"
+ } else if (isMediaApplication) {
+ return "./views/SDLPlayerView.qml"
+ } else {
+ return "./views/SDLNonMediaView.qml"
+ }
+}
+
+function appendVrHelpItem (arrayElement, index, array) {
+ this.append({
+ text: arrayElement.text,
+ image: arrayElement.image ? arrayElement.image : "",
+ position: arrayElement.position
+ })
+}
+
+function checkBit(value, bitPosition) {
+ return (value & (1 << bitPosition))
+}
+
+function getArrayForPresetRow(app) {
+ var array = []
+ for (var i = 0; i < app.customPresets.count; i++) {
+ array.push(app.customPresets.get(i).text)
+ }
+ return array
+}
+
+function pad (string, length, lead) {
+ if (!lead) {
+ lead = '0'
+ }
+ var paddedString = "" + string
+ while (paddedString.length < length) {
+ paddedString = lead + paddedString
+ }
+ return paddedString
+}
+
+function hmsTime (hours, minutes, seconds) {
+ return 60 * (60 * hours + minutes) + seconds
+}
+
+function hmsTimeToString (hmsTime) {
+ if (hmsTime === -1) {
+ return "0:00:00"
+ }
+
+ var _time = hmsTime
+ var seconds = _time % 60
+ _time -= seconds
+ _time /= 60
+ var minutes = _time % 60
+ _time -= minutes
+ _time /= 60
+ var hours = _time
+ var string = ""
+ string += hours
+ string += ":"
+ string += pad(minutes, 2)
+ string += ":"
+ string += pad(seconds, 2)
+ return string
+}
+
+function stringToHmsTime (hmsString) {
+ console.debug("enter: \"" + hmsString + "\"")
+ var substrings = hmsString.split(":")
+ var seconds = substrings.length > 0 ? parseInt(substrings.pop()) : 0
+ if (seconds >= 60) {
+ console.log("incorrect field \"seconds\": " + seconds)
+ console.debug("exit")
+ return 0
+ }
+ var minutes = substrings.length > 0 ? parseInt(substrings.pop()) : 0
+ if (minutes >= 60) {
+ console.log("incorrect field \"minutes\": " + minutes)
+ console.debug("exit")
+ return 0
+ }
+ var hours = substrings.length > 0 ? parseInt(substrings.pop()) : 0
+ console.debug("exit")
+ return hmsTime(hours, minutes, seconds)
+}
+
+function mediaClockUpdateModeToString (mediaClockUpdateMode) {
+ switch (mediaClockUpdateMode) {
+ case MediaClockUpdateMode.MCU_COUNTUP:
+ return "Internal.MediaClockUpdateMode.MCU_COUNTUP"
+ case MediaClockUpdateMode.MCU_COUNTDOWN:
+ return "Internal.MediaClockUpdateMode.MCU_COUNTDOWN"
+ default:
+ return ""
+ }
+}
+
+function mediaClockRunningModeToString (mediaClockRunningMode) {
+ switch (mediaClockRunningMode) {
+ case MediaClockRunningMode.MCR_RUNNING:
+ return "Internal.MediaClockRunningMode.MCR_RUNNING"
+ case MediaClockRunningMode.MCR_STOPPED:
+ return "Internal.MediaClockRunningMode.MCR_STOPPED"
+ default:
+ return ""
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MainMenuListModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MainMenuListModel.qml
new file mode 100644
index 000000000..c880f989d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MainMenuListModel.qml
@@ -0,0 +1,79 @@
+/**
+ * @file MainMenuListModel.qml
+ * @brief Main menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+
+ListModel
+{
+ ListElement {
+ name: "Climate"
+ icon: "../res/snow.png"
+ qml: "./views/ClimateControlView.qml"
+ }
+
+ ListElement {
+ name: "Navigation"
+ icon: "../res/arrow.png"
+ qml: "./views/NavigationNoRouteGridView.qml"
+ }
+
+ ListElement {
+ name: "Media"
+ icon: "../res/notes.png"
+ qml: "./views/MusicSourceView.qml"
+ }
+
+ ListElement {
+ name: "Preferences"
+ icon: "../res/gear.png"
+ qml: ""
+ }
+
+ ListElement {
+ name: "Apps"
+ icon: "../res/apps.png"
+ qml: "./views/ApplicationListView.qml"
+ }
+
+ ListElement {
+ name: "Phone"
+ icon: "../res/phone/phone.png"
+ qml: "./views/PhoneMenuGridView.qml"
+ }
+
+ ListElement {
+ name: "Car"
+ icon: "../res/car.png"
+ qml: "./views/CarMenuGridView.qml"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MediaClockModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MediaClockModel.qml
new file mode 100644
index 000000000..233863823
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MediaClockModel.qml
@@ -0,0 +1,112 @@
+/**
+ * @file MediaClockModel.qml
+ * @brief Media clock model
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "Internal.js" as Internal
+
+QtObject {
+ property int updateMode
+ property int runningMode
+ property int startTime
+ property int endTime
+ property int upperTimeLimit: 60 * 60 * 60 - 1
+ property int startTimeForProgress
+ property real progress
+
+ property Timer timer: Timer {
+ id: timer
+ interval: 1000
+ repeat: true
+ onTriggered: onTimer()
+ }
+ onRunningModeChanged: {
+ if (runningMode === Internal.MediaClockRunningMode.MCR_STOPPED) {
+ timer.stop()
+ } else {
+ timer.start()
+ }
+ }
+
+ onStartTimeChanged: {
+ if (startTime === -1) {
+ progress = 0
+ } else {
+ if (updateMode === Internal.MediaClockUpdateMode.MCU_COUNTUP) {
+ progress = (endTime !== -1) ? (startTime / endTime) : (startTime / upperTimeLimit)
+ } else {
+ progress = (endTime !== -1) ? ( (startTime - endTime) / (startTimeForProgress - endTime) )
+ : (startTime / startTimeForProgress)
+ }
+ }
+ }
+
+ function onTimer () {
+ switch (updateMode) {
+ case Internal.MediaClockUpdateMode.MCU_COUNTUP:
+ if (endTime !== -1) {
+ if (startTime < endTime) {
+ startTime++
+ } else {
+ timer.stop()
+ runningMode = Internal.MediaClockRunningMode.MCR_STOPPED
+ console.debug("count Up timer stopped")
+ }
+ } else {
+ if (startTime < upperTimeLimit) {
+ startTime++
+ } else {
+ startTime = 0
+ }
+ }
+ break
+ case Internal.MediaClockUpdateMode.MCU_COUNTDOWN:
+ console.debug("count down")
+ if (--startTime === 0) {
+ timer.stop()
+ runningMode = Internal.MediaClockRunningMode.MCR_STOPPED
+ startTime = endTime = -1
+ console.debug("count Down timer stopped")
+ }
+ break
+ }
+ dataContainer.setApplicationProperties(dataContainer.currentApplication.appId, {
+ "mediaClock": {startTime: startTime,
+ endTime: endTime,
+ updateMode: updateMode,
+ runningMode: runningMode,
+ startTimeForProgress: startTimeForProgress
+ }
+ })
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MusicSourceModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MusicSourceModel.qml
new file mode 100644
index 000000000..7497d987d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/MusicSourceModel.qml
@@ -0,0 +1,78 @@
+/**
+ * @file MusicSourceModel.qml
+ * @brief Music source menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+
+ListModel
+{
+ ListElement {
+ title: "FM"
+ qml: "./views/FMPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "AM"
+ qml: "./views/AMPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "BT Audio"
+ qml: "./views/BTPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "Sirius"
+ qml: "./views/SiriusPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "CD"
+ qml: "./views/CDPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "iPod"
+ qml: "./views/IPodPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "USB"
+ qml: "./views/UsbPlayerView.qml"
+ appId: 0
+ }
+ ListElement {
+ title: "LineIn"
+ qml: "./views/LineInPlayerView.qml"
+ appId: 0
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/NavigationMenuModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/NavigationMenuModel.qml
new file mode 100644
index 000000000..6e434495a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/NavigationMenuModel.qml
@@ -0,0 +1,72 @@
+/**
+ * @file NavigationMenuModel.qml
+ * @brief Model for navigation menu.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+ListModel
+{
+ ListElement {
+ title: "Home"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Keyboard"
+ icon: "../res/buttons/long_oval_btn.png"
+ qml: "./views/NavigationKeyboardView.qml"
+ }
+ ListElement {
+ title: "Favorites"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Work"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Recent"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "POI"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Scout"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+ ListElement {
+ title: "Waze"
+ icon: "../res/buttons/long_oval_btn.png"
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/NavigationModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/NavigationModel.qml
new file mode 100644
index 000000000..524de403b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/NavigationModel.qml
@@ -0,0 +1,50 @@
+/**
+ * @file NavigationModel.qml
+ * @brief Model for Navigation.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+QtObject {
+ property string text1: ""
+ property string text2: ""
+ property string totalDistance: ""
+ property string eta: ""
+ property string timeToDestination: ""
+ property var turnIcon
+ property var nextTurnIcon
+
+ property real distanceToManeuver: 0
+ property real distanceToManeuverScale: 0
+ property bool maneuverComplete: null
+ property int appID: -1
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PerformAudioPassThruModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PerformAudioPassThruModel.qml
new file mode 100644
index 000000000..0952b7d8a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PerformAudioPassThruModel.qml
@@ -0,0 +1,43 @@
+/**
+ * @file PerformAudioPassThruModel.qml
+ * @brief Data model audio pass thru.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+QtObject {
+ property string appName: ""
+ property string firstLine: ""
+ property string secondLine: ""
+ property int timeout: 0
+ property bool running: false
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PhoneMenuModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PhoneMenuModel.qml
new file mode 100644
index 000000000..519f48a80
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PhoneMenuModel.qml
@@ -0,0 +1,78 @@
+/**
+ * @file PhoneMenuModel.qml
+ * @brief Phone menu list of elements.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+
+ListModel
+{
+ ListElement {
+ name: "phone"
+ icon: "../res/phone/phone.png"
+ qml: ""
+ }
+ ListElement {
+ name: "contacts"
+ icon: "../res/phone/contacts.png"
+ qml: "./views/PhoneKeyboardView.qml"
+ }
+ ListElement {
+ name: "messages"
+ icon: "../res/phone/messages.png"
+ qml: ""
+ }
+ ListElement {
+ name: "DND"
+ icon: "../res/phone/dnd_off.png"
+ qml: ""
+ }
+ ListElement {
+ name: "texts"
+ icon: "../res/phone/texts.png"
+ qml: ""
+ }
+ ListElement {
+ name: "recent"
+ icon: "../res/phone/recent.png"
+ qml: ""
+ }
+ ListElement {
+ name: "keyboard"
+ icon: "../res/phone/keypad.png"
+ qml: ""
+ }
+ ListElement {
+ name: "more"
+ icon: "../res/phone/more.png"
+ qml: ""
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PlayerState.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PlayerState.qml
new file mode 100644
index 000000000..9707f3519
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/PlayerState.qml
@@ -0,0 +1,51 @@
+/**
+ * @file PlayerState.qml
+ * @brief List of parameters for each player.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+
+// Player state for all players except SDL media player
+Item {
+ // Media players
+ property string playPauseState
+ property string albumImage
+ property string trackNumber
+ property int songPosition
+ property string trackName
+
+ // Radio Players
+ property var presets: []
+
+ // Both players
+ property string songName
+ property string albumName
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ScrollableMessageModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ScrollableMessageModel.qml
new file mode 100644
index 000000000..9f45a5d06
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/ScrollableMessageModel.qml
@@ -0,0 +1,54 @@
+/**
+ * @file ScrollableMessageModel.qml
+ * @brief Model for Scrollable Message.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+
+QtObject {
+ property string longMessageText: "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh" +
+ "ffsdjjjjjjjjj jjjjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjjjj jjjjiiiiiiiiiiiii iiiiiiiiiiii iiiiiiiii iiiiiiiiiiiii iiiiiiiiiiiiioooooo ooooooooo oooooooooooooooo ooooooooooooo ooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooo ooooooohhhhhhhhhh hhhhhhhhhhhhh hhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhhhhhhhhhhhhh hhhhhhhhhhhhhhhhhh hhhhh"
+ property ListModel softButtons: ListModel {}
+ property int appId: -1
+ property int timeout: 0
+ property var async
+ property bool running: false
+ property int result: -1
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/SettingsStorage.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/SettingsStorage.qml
new file mode 100644
index 000000000..afddbd5c1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/SettingsStorage.qml
@@ -0,0 +1,125 @@
+/**
+ * @file SettingsStorage.qml
+ * @brief Storage for keeping settings.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+
+Item
+{
+ property var sdlLanguagesList: [
+ Common.Language.EN_US,
+ Common.Language.ES_MX,
+ Common.Language.FR_CA,
+ Common.Language.DE_DE,
+ Common.Language.ES_ES,
+ Common.Language.EN_GB,
+ Common.Language.RU_RU,
+ Common.Language.TR_TR,
+ Common.Language.PL_PL,
+ Common.Language.FR_FR,
+ Common.Language.IT_IT,
+ Common.Language.SV_SE,
+ Common.Language.PT_PT,
+ Common.Language.NL_NL,
+ Common.Language.ZH_TW,
+ Common.Language.JA_JP,
+ Common.Language.AR_SA,
+ Common.Language.KO_KR,
+ Common.Language.PT_BR,
+ Common.Language.CS_CZ,
+ Common.Language.DA_DK,
+ Common.Language.NO_NO
+ ]
+
+ property var displayCapabilities: {
+ "displayType": Common.DisplayType.GEN2_8_DMA,
+ "textFields": [
+ Common.TextFieldName.mainField1,
+ Common.TextFieldName.mainField2,
+ Common.TextFieldName.mainField3,
+ Common.TextFieldName.mainField4,
+ Common.TextFieldName.statusBar,
+ Common.TextFieldName.mediaClock,
+ Common.TextFieldName.mediaTrack,
+ Common.TextFieldName.alertText1,
+ Common.TextFieldName.alertText2,
+ Common.TextFieldName.alertText3,
+ Common.TextFieldName.scrollableMessageBody,
+ Common.TextFieldName.initialInteractionText,
+ Common.TextFieldName.navigationText1,
+ Common.TextFieldName.navigationText2,
+ Common.TextFieldName.ETA,
+ Common.TextFieldName.totalDistance,
+ Common.TextFieldName.navigationText,
+ Common.TextFieldName.audioPassThruDisplayText1,
+ Common.TextFieldName.audioPassThruDisplayText2,
+ Common.TextFieldName.sliderHeader,
+ Common.TextFieldName.sliderFooter,
+ Common.TextFieldName.notificationText
+ ],
+ "mediaClockFormats": [
+ Common.MediaClockFormat.CLOCK1,
+ Common.MediaClockFormat.CLOCK2,
+ Common.MediaClockFormat.CLOCK3,
+ Common.MediaClockFormat.CLOCKTEXT1,
+ Common.MediaClockFormat.CLOCKTEXT2,
+ Common.MediaClockFormat.CLOCKTEXT3,
+ Common.MediaClockFormat.CLOCKTEXT4
+ ],
+ "graphicSupported": true,
+ "imageCapabilities": [ Common.ImageType.DYNAMIC ],
+ "templatesAvailable": [ "" ],
+ "screenParams": {
+ "resolution": {
+ "resolutionWidth": 800,
+ "resolutionHeight": 480
+ },
+ "touchEventAvailable": {
+ "pressAvailable": true,
+ "multiTouchAvailable": true,
+ "doublePressAvailable": true
+ }
+ },
+ "numCustomPresetsAvailable": 6
+ }
+
+ property var softButtonCapabilities: {
+ "shortPressAvailable": true,
+ "longPressAvailable": true,
+ "upDownAvailable": true,
+ "imageSupported": true
+ }
+
+ property var buttonCapabilities: []
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/SliderModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/SliderModel.qml
new file mode 100644
index 000000000..359eb5d59
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/SliderModel.qml
@@ -0,0 +1,45 @@
+/**
+ * @file SliderModel.qml
+ * @brief Data model for slider.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+QtObject {
+ property string appName: ""
+ property string header: ""
+ property var footer: []
+ property int numTicks: 0
+ property int position: 0
+ property int timeout: 0
+ property bool running: false
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/VehicleInfoModel.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/VehicleInfoModel.qml
new file mode 100644
index 000000000..997ce1ee0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/VehicleInfoModel.qml
@@ -0,0 +1,234 @@
+/**
+ * @file VehicleInfoModel.qml
+ * @brief Data model for vehicle info.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+
+QtObject {
+ id: vehicleInfo
+ property real speed: 80.1
+ property int rpm: 5000
+ property real fuelLevel: 0.2
+ property int fuelLevel_State: Common.ComponentVolumeStatus.CVS_LOW
+ property real instantFuelConsumption: 2.2
+ property int driverBraking: Common.VehicleDataEventStatus.VDES_NO_EVENT
+ property int wiperStatus: Common.WiperStatus.OFF
+ property real engineTorque: 2.5
+ property real accPedalPosition: 0.5
+ property real steeringWheelAngle: 1.2
+ property real externalTemperature: 40.0
+ property string vin: '52-452-52-752'
+ property int odometer: 2
+ property int prndl: Common.PRNDL.FIFTH
+
+ property var headLampStatus: {
+ "lowBeamsOn": false,
+ "highBeamsOn": false,
+ "ambientLightSensorStatus": Common.AmbientLightStatus.TWILIGHT_1
+ }
+ property var deviceStatus: {
+ 'voiceRecOn': false,
+ 'btIconOn': false,
+ 'callActive': false,
+ 'phoneRoaming': false,
+ 'textMsgAvailable': false,
+ 'battLevelStatus': Common.DeviceLevelStatus.ZERO_LEVEL_BARS,
+ 'stereoAudioOutputMuted': false,
+ 'monoAudioOutputMuted': false,
+ 'signalLevelStatus': Common.DeviceLevelStatus.ZERO_LEVEL_BARS,
+ 'primaryAudioSource': Common.PrimaryAudioSource.NO_SOURCE_SELECTED,
+ 'eCallEventActive': false
+ }
+ property var bodyInformation: {
+ 'parkBrakeActive': false,
+ 'ignitionStableStatus': Common.IgnitionStableStatus.IGNITION_SWITCH_NOT_STABLE,
+ 'ignitionStatus': Common.IgnitionStatus.IS_UNKNOWN
+ }
+ property var beltStatus: {
+ 'driverBeltDeployed': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'passengerBeltDeployed': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'passengerBuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'driverBuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'leftRow2BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'passengerChildDetected': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'rightRow2BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow2BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow3BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'leftRow3BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'rightRow3BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'leftRearInflatableBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'rightRearInflatableBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow1BeltDeployed': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ 'middleRow1BuckleBelted': Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ }
+ property var tirePressure: {
+ 'pressureTelltale': Common.WarningLightStatus.WLS_ON,
+ 'leftFront': { status: Common.ComponentVolumeStatus.CVS_NORMAL},
+ 'rightFront': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN },
+ 'leftRear': { status: Common.ComponentVolumeStatus.CVS_NORMAL },
+ 'rightRear': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN },
+ 'innerLeftRear': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN },
+ 'innerRightRear': { status: Common.ComponentVolumeStatus.CVS_UNKNOWN }
+ }
+ property var gps: {
+ 'longitudeDegrees': 42.3293,
+ 'latitudeDegrees': -83.0464,
+ 'utcYear': 2013,
+ 'utcMonth': 2,
+ 'utcDay': 14,
+ 'utcHours': 13,
+ 'utcMinutes': 16,
+ 'utcSeconds': 54,
+ 'compassDirection': Common.CompassDirection.SOUTHWEST,
+ 'pdop': 4,
+ 'hdop': 5,
+ 'vdop': 6,
+ 'actual': false,
+ 'satellites': 8,
+ 'dimension': Common.Dimension.Dimension_2D,
+ 'altitude': 7,
+ 'heading': 173,
+ 'speed': 2
+ }
+ property var ecuDIDData: {
+ 'data1': 'ECU 1 Test Data',
+ 'data2': 'ECU 2 Test Data'
+ }
+ property var eCallInfo: {
+ "eCallNotificationStatus" : Common.VehicleDataNotificationStatus.VDNS_NORMAL,
+ "auxECallNotificationStatus" : Common.VehicleDataNotificationStatus.VDNS_ACTIVE,
+ "eCallConfirmationStatus" : Common.ECallConfirmationStatus.ECCS_NORMAL
+ }
+ property var airbagStatus: {
+ "driverAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NO_EVENT,
+ "driverSideAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NO,
+ "driverCurtainAirbagDeployed" : Common.VehicleDataEventStatus.VDES_YES,
+ "passengerAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NOT_SUPPORTED,
+ "passengerCurtainAirbagDeployed" : Common.VehicleDataEventStatus.VDES_FAULT,
+ "driverKneeAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NO,
+ "passengerSideAirbagDeployed" : Common.VehicleDataEventStatus.VDES_YES,
+ "passengerKneeAirbagDeployed" : Common.VehicleDataEventStatus.VDES_NOT_SUPPORTED
+ }
+ property var emergencyEvent: {
+ "emergencyEventType" : Common.EmergencyEventType.EET_NO_EVENT,
+ "fuelCutoffStatus" : Common.EmergencyEventType.EET_FRONTAL,
+ "rolloverEvent" : Common.EmergencyEventType.EET_SIDE,
+ "maximumChangeVelocity" : Common.EmergencyEventType.EET_REAR,
+ "multipleEvents" : Common.EmergencyEventType.EET_ROLLOVER
+ }
+ property var clusterModeStatus: {
+ "powerModeActive" : true,
+ "powerModeQualificationStatus" : Common.PowerModeQualificationStatus.POWER_MODE_UNDEFINED,
+ "carModeStatus" : Common.CarModeStatus.CMS_NORMAL,
+ "powerModeStatus" : Common.PowerModeStatus.KEY_OUT
+ }
+ property var myKey: {
+ "e911Override": Common.VehicleDataStatus.VDS_NO_DATA_EXISTS
+ }
+
+
+ function sendGpsChange(){
+ sdlVehicleInfo.onGps(vehicleInfo.gps)
+ }
+ function sendSpeedChange(){
+ sdlVehicleInfo.onSpeed(vehicleInfo.speed)
+ }
+ function sendRpmChange(){
+ sdlVehicleInfo.onRpm(vehicleInfo.rpm)
+ }
+ function sendFuelLevelChange(){
+ sdlVehicleInfo.onFuelLevel(vehicleInfo.fuelLevel)
+ }
+ function sendFuelLevel_StateChange(){
+ sdlVehicleInfo.onFuelLevel_State(vehicleInfo.fuelLevel_State)
+ }
+ function sendInstantFuelConsumptionChange(){
+ sdlVehicleInfo.onInstantFuelConsumption(vehicleInfo.instantFuelConsumption)
+ }
+ function sendExternalTemperatureChange(){
+ sdlVehicleInfo.onExternalTemperature(vehicleInfo.externalTemperature)
+ }
+ function sendPrndlChange() {
+ if (dataContainer.vehicleInfoModel.prndl !== -1)
+ {sdlVehicleInfo.onPrndl(vehicleInfo.prndl)}
+ }
+ function sendTirePressureChange(){
+ sdlVehicleInfo.onTirePressure(vehicleInfo.tirePressure)
+ }
+ function sendOdometerChange(){
+ sdlVehicleInfo.onOdometer(vehicleInfo.odometer)
+ }
+ function sendBeltStatusChange(){
+ sdlVehicleInfo.onBeltStatus(vehicleInfo.beltStatus)
+ }
+ function sendBodyInformationChange(){
+ sdlVehicleInfo.onBodyInformation(vehicleInfo.bodyInformation)
+ }
+ function sendDeviceStatusChange(){
+ sdlVehicleInfo.onDeviceStatus(vehicleInfo.deviceStatus)
+ }
+ function sendDriverBrakingChange(){
+ sdlVehicleInfo.onDriverBraking(vehicleInfo.driverBraking)
+ }
+ function sendWiperStatusChange(){
+ sdlVehicleInfo.onWiperStatus(vehicleInfo.wiperStatus)
+ }
+ function sendHeadLampStatusChange(){
+ sdlVehicleInfo.onHeadLampStatus(vehicleInfo.headLampStatus)
+ }
+ function sendEngineTorqueChange(){
+ sdlVehicleInfo.onEngineTorque(vehicleInfo.engineTorque)
+ }
+ function sendAccPedalPositionChange(){
+ sdlVehicleInfo.onAccPedalPosition(vehicleInfo.accPedalPosition)
+ }
+ function sendSteeringWheelAngleChange(){
+ sdlVehicleInfo.onSteeringWheelAngle(vehicleInfo.steeringWheelAngle)
+ }
+ function sendECallInfoChange(){
+ sdlVehicleInfo.onECallInfo(vehicleInfo.eCallInfo)
+ }
+ function sendAirbagStatusChange(){
+ sdlVehicleInfo.onAirbagStatus(vehicleInfo.airbagStatus)
+ }
+ function sendEmergencyEventChange(){
+ sdlVehicleInfo.onEmergencyEvent(vehicleInfo.emergencyEvent)
+ }
+ function sendClusterModeStatusChange(){
+ sdlVehicleInfo.onClusterModeStatus(vehicleInfo.clusterModeStatus)
+ }
+ function sendMyKeyChange(){
+ sdlVehicleInfo.onMyKey(vehicleInfo.myKey)
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/VrHelpItemsDefault.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/VrHelpItemsDefault.qml
new file mode 100644
index 000000000..3dc6ad563
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/models/VrHelpItemsDefault.qml
@@ -0,0 +1,66 @@
+/**
+ * @file VrHelpItemsDefault.qml
+ * @brief Default voice recognition help items.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+
+ListModel {
+ id: vrHelpItemsDefault
+
+ Component.onCompleted: {
+ vrHelpItemsDefault.append({
+ text: "Default VR Help Text1",
+ image: {
+ value: "",
+ imageType: 1
+ },
+ position: 1
+ });
+ vrHelpItemsDefault.append({
+ text: "Default VR Help Text2",
+ image: {
+ value: "",
+ imageType: 1
+ },
+ position: 2
+ });
+ vrHelpItemsDefault.append({
+ text: "Default VR Help Text3",
+ image: {
+ value: "",
+ imageType: 1
+ },
+ position: 3
+ });
+ }
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/AlertWindow.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/AlertWindow.qml
new file mode 100644
index 000000000..c9eefbbaf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/AlertWindow.qml
@@ -0,0 +1,290 @@
+/**
+ * @file AlertWindow.qml
+ * @brief Alert popup window
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+
+Rectangle {
+ id: alertWindow
+ property date lastAlertTime
+ property var softButtons
+ property int appId
+ property string popUpName // TODO{ALESHIN}: No requerments for closePopUp, if alert couldn't be closed by closePopUp request - delete everywhere
+
+ color: "transparent"
+
+ property var async
+
+ Rectangle {
+ id: rectangle
+
+ anchors.centerIn: parent
+ color: "black"
+ border.color: "white"
+
+ width: alertContent.width + 60
+ height: alertContent.height + 60
+
+ property alias alertString: alert.text
+ property alias appNameString: appName.text
+ property int duration
+
+ Column {
+ id: alertContent
+ anchors.centerIn: parent
+ spacing: 20
+
+ Text {
+ id: appName
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: "white"
+ font.pointSize: 16
+ }
+
+ Row {
+ width: Constants.alertWidth
+ spacing: 20
+
+ Image {
+ id: alertLogo
+ source: "../res/warning.png"
+ }
+
+ Text {
+ id: alert
+ width: parent.width - alertLogo.width - parent.spacing
+ clip: true
+ color: "white"
+ font.pointSize: 16
+ }
+ }
+
+ Rectangle {
+ id: progressIndicator
+ color: "white"
+ height: 10
+ }
+
+ Column {
+ Item {
+ width: Constants.alertWidth
+ height: alertButton1.visible ? alertButton1.height : 0
+
+ SoftButton {
+ id: alertButton1
+ appId: alertWindow.appId
+ button: softButtons && softButtons.length > 0 ? softButtons[0] : undefined
+ anchors.left: parent.left
+ anchors.right: alertButton2.visible ? alertButton2.left : parent.right
+ width: Constants.alertWidth / 2
+ onPressed: { alertWindow.keep = true; }
+ onReleased: { alertWindow.keep = false; }
+ onKeepContext: {
+ alertWindow.restart();
+ sdlUI.onResetTimeout(appId, "UI.Alert")
+ }
+ onDefaultAction: { alertWindow.complete(Common.Result.SUCCESS); }
+ onStealFocus: {
+ alertWindow.complete(Common.Result.SUCCESS);
+ contentLoader.go( Internal.chooseAppStartScreen(dataContainer.currentApplication.appType,
+ dataContainer.currentApplication.isMediaApplication), appId )
+ }
+ }
+ SoftButton {
+ id: alertButton2
+ appId: alertWindow.appId
+ button: softButtons && softButtons.length > 1 ? softButtons[1] : undefined
+ anchors.right: parent.right
+ width: Constants.alertWidth / 2
+ onPressed: { alertWindow.keep = true; }
+ onReleased: { alertWindow.keep = false; }
+ onKeepContext: {
+ alertWindow.restart();
+ sdlUI.onResetTimeout(appId, "UI.Alert")
+ }
+ onDefaultAction: { alertWindow.complete(Common.Result.SUCCESS); }
+ onStealFocus: {
+ alertWindow.complete(Common.Result.SUCCESS);
+ contentLoader.go( Internal.chooseAppStartScreen(dataContainer.currentApplication.appType,
+ dataContainer.currentApplication.isMediaApplication), appId )
+ }
+ }
+ }
+ Item {
+ width: Constants.alertWidth
+ height: alertButton3.visible ? childrenRect.height : 0
+ SoftButton {
+ id: alertButton3
+ appId: alertWindow.appId
+ button: softButtons && softButtons.length > 2 ? softButtons[2] : undefined
+ anchors.left: parent.left
+ anchors.right: alertButton4.visible ? alertButton4.left : parent.right
+ width: Constants.alertWidth / 2
+ onPressed: { alertWindow.keep = true; }
+ onReleased: { alertWindow.keep = false; }
+ onKeepContext: {
+ alertWindow.restart();
+ sdlUI.onResetTimeout(appId, "UI.Alert")
+ }
+ onDefaultAction: { alertWindow.complete(Common.Result.SUCCESS); }
+ onStealFocus: {
+ alertWindow.complete(Common.Result.SUCCESS);
+ contentLoader.go( Internal.chooseAppStartScreen(dataContainer.currentApplication.appType,
+ dataContainer.currentApplication.isMediaApplication), appId )
+ }
+ }
+ SoftButton {
+ id: alertButton4
+ appId: alertWindow.appId
+ button: softButtons && softButtons.length > 3 ? softButtons[3] : undefined
+ anchors.right: parent.right
+ width: Constants.alertWidth / 2
+ onPressed: { alertWindow.keep = true; }
+ onReleased: { alertWindow.keep = false; }
+ onKeepContext: {
+ alertWindow.restart();
+ sdlUI.onResetTimeout(appId, "UI.Alert")
+ }
+ onDefaultAction: { alertWindow.complete(Common.Result.SUCCESS); }
+ onStealFocus: {
+ alertWindow.complete(Common.Result.SUCCESS);
+ contentLoader.go( Internal.chooseAppStartScreen(dataContainer.currentApplication.appType,
+ dataContainer.currentApplication.isMediaApplication), appId )
+ }
+ }
+ }
+ }
+ }
+
+ SequentialAnimation {
+ id: animation
+ PropertyAction { target: progressIndicator; property: "width"; value: alertContent.width }
+ PropertyAnimation {
+ id: shrinkProgressAnimation
+ target: progressIndicator
+ property: "width"
+ to: 0
+ duration: rectangle.duration
+ }
+ }
+ }
+
+ Timer {
+ id: timer
+ onTriggered: {
+ complete(Common.Result.SUCCESS)
+ }
+ }
+
+ function alert (alertStrings, duration, showIndicator, sButtons, applicationId) {
+ if (timer.running) { // we have alert already
+ var currentTime = new Date()
+ var timeFromLastAlert = currentTime - lastAlertTime
+ var timeLeft = timer.interval - timeFromLastAlert
+ var discreteInMilliseconds = 1000 // wish to round left time to integer seconds
+ var timeLeftRounded = discreteInMilliseconds * Math.ceil(timeLeft / discreteInMilliseconds)
+ return timeLeftRounded
+ }
+ else {
+ lastAlertTime = new Date();
+ appId = applicationId
+ rectangle.appNameString = dataContainer.getApplication(appId).appName;
+ softButtons = sButtons;
+ rectangle.alertString = alertStrings.join('\n');
+ timer.interval = duration;
+ rectangle.duration = duration;
+ timer.start();
+ show();
+
+ progressIndicator.visible = !!showIndicator
+ progressIndicator.width = alertContent.width
+ console.log("ProgressIndicator.width:", progressIndicator.width)
+ animation.start()
+ }
+ }
+
+ function show () {
+ dataContainer.activeAlert = true
+ dataContainer.applicationSavedContext = dataContainer.applicationContext
+ visible = true
+ }
+
+ function complete (reason, data) {
+ if (!keep) {
+ hide()
+ switch (reason) {
+ case Common.Result.SUCCESS:
+ DBus.sendReply(async, { __retCode: Common.Result.SUCCESS, __message: "UI.Alert" })
+ break
+ // For other cases
+ }
+ }
+ timer.stop()
+ }
+
+ function hide() {
+ console.debug(popUpName, "HIDE")
+ dataContainer.activeAlert = false
+ dataContainer.applicationContext = dataContainer.applicationSavedContext
+ visible = false
+ }
+
+ function restart() {
+ animation.restart();
+ timer.restart();
+ }
+
+ property bool keep: false
+
+ onKeepChanged: {
+ if (visible && !keep && !timer.running) {
+ hide()
+ }
+ }
+
+ onVisibleChanged: {
+ if (visible) {
+ dataContainer.activePopup.push(popUpName)
+ } else {
+ for (var i in dataContainer.activePopup) {
+ if (dataContainer.activePopup[i] === popUpName) {
+ dataContainer.activePopup.splice(i, 1)
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/ContextPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/ContextPopup.qml
new file mode 100644
index 000000000..92e9d7442
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/ContextPopup.qml
@@ -0,0 +1,56 @@
+/**
+ * @file ContextPopup.qml
+ * @brief Popup view with system context.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+
+PopUp {
+ function show() {
+ console.debug("enter")
+ if (!visible) { // must not increment counter if show() called for visible popup
+ visible = true;
+ dataContainer.popups++
+ }
+ console.debug("exit")
+ }
+
+ function hide() {
+ console.debug("enter")
+ console.debug(popUpName, "HIDE")
+ if (visible) { // must not decrement counter if hide() called for invisible popup
+ visible = false;
+ dataContainer.popups--
+ }
+ console.debug("exit")
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/ExitAllApplicationsPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/ExitAllApplicationsPopup.qml
new file mode 100644
index 000000000..bf88366ea
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/ExitAllApplicationsPopup.qml
@@ -0,0 +1,82 @@
+/**
+ * @file ExitAllApplicationsPopup.qml
+ * @brief Popup "Exit all applications"
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+import "../controls"
+
+PopUp {
+ function complete(reason){
+ hide()
+ }
+
+ Item {
+ ListModel {
+ id: reasonExit
+
+ Component.onCompleted: {
+ for (var name in Common.ApplicationsCloseReason) {
+ append({name: name});
+ }
+ }
+ }
+ }
+
+ Column
+ {
+ anchors.centerIn: parent
+ Row {
+ Text {
+ text: "Select reason: "
+ color: "white"
+ }
+
+ ComboBox {
+ id: reasonComboBox
+ model: reasonExit
+ }
+ z: 1000
+ }
+ OvalButton {
+ text: "Exit"
+ anchors.horizontalCenter: parent.horizontalCenter
+ onClicked: {
+ sdlBasicCommunication.onExitAllApplications(Common.ApplicationsCloseReason[reasonComboBox.currentText])
+ hide()
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/InteractionPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/InteractionPopup.qml
new file mode 100644
index 000000000..782fd76c1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/InteractionPopup.qml
@@ -0,0 +1,157 @@
+/**
+ * @file InteractionPopup.qml
+ * @brief Interaction popup view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../hmi_api/Async.js" as Async
+import "../models/Internal.js" as Internal
+
+ContextPopup {
+ id: piPopUp
+ property ListModel choiceSet: ListModel { }
+ property int timeout
+ property int appID
+ property int interactionLayout
+ property var async
+ property bool performInteractionIsActiveNow
+
+ Text {
+ id: initialText
+ anchors.top: parent.top
+ anchors.topMargin: Constants.popupMargin
+ anchors.left: parent.left
+ anchors.leftMargin: Constants.popupMargin
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+
+ ListView {
+ anchors.top: initialText.bottom
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: Constants.popupMargin
+ model: choiceSet
+ delegate: OvalButton {
+ width: parent.width
+ text: menuName
+ icon: image
+ onClicked: {
+ complete(Common.Result.SUCCESS, {"choiceID": model.choiceID})
+ }
+ }
+ }
+
+ Item {
+ Timer {
+ id: timer
+ onTriggered: {
+ complete(Common.Result.TIMED_OUT)
+ }
+ }
+ }
+
+ function performInteraction(initialText, choiceSet, vrHelpTitle, vrHelp, timeout, interactionLayout, appID) {
+ console.debug("enter")
+ var app = dataContainer.getApplication(appID)
+ var dataToUpdate = {}
+
+ performInteractionIsActiveNow = true
+ initialText.text = initialText.fieldText
+ this.timeout = timeout
+ this.appID = appID
+
+ this.choiceSet.clear()
+ if (choiceSet !== undefined) {
+ choiceSet.forEach( function(arrayElement) {
+ piPopUp.choiceSet.append({
+ choiceID: arrayElement.choiceID,
+ menuName: arrayElement.menuName ? arrayElement.menuName : "",
+ image: arrayElement.image ? arrayElement.image : "",
+ secondaryText: arrayElement.secondaryText ? arrayElement.secondaryText : "",
+ tertiaryText: arrayElement.tertiaryText ? arrayElement.tertiaryText: "",
+ secondaryImage: arrayElement.secondaryImage ? arrayElement.secondaryImage : ""
+ })
+ })
+ }
+ if (vrHelpTitle !== undefined) {
+ dataToUpdate.vrHelpTitlePerformInteraction = vrHelpTitle
+ }
+
+ app.vrHelpItemsPerformInteraction.clear()
+
+ if (vrHelp !== undefined) {
+ vrHelp.forEach( Internal.appendVrHelpItem, app.vrHelpItemsPerformInteraction )
+ }
+ if (interactionLayout !== undefined) {
+ this.interactionLayout = interactionLayout
+ }
+ dataContainer.setApplicationProperties(appID, dataToUpdate)
+ async = new Async.AsyncCall()
+ if (piPopUp.choiceSet.count !== 0) {
+ activate()
+ }
+ console.debug("exit")
+ return async
+ }
+
+ function activate () {
+ console.debug("enter")
+ timer.interval = timeout
+ timer.start()
+ show()
+ console.debug("exit")
+ }
+
+ function complete (reason, data) {
+ console.debug("enter")
+ switch (reason) {
+ case Common.Result.SUCCESS:
+ DBus.sendReply(async, data)
+ break
+ case Common.Result.ABORTED:
+ DBus.sendReply(async, { __retCode: Common.Result.ABORTED })
+ break
+ case Common.Result.TIMED_OUT:
+ DBus.sendReply(async, { __retCode: Common.Result.TIMED_OUT })
+ break
+ }
+ timer.stop()
+ hide()
+ performInteractionIsActiveNow = false
+ console.debug("exit")
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/PerformAudioPassThruPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/PerformAudioPassThruPopup.qml
new file mode 100644
index 000000000..2cb0212a3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/PerformAudioPassThruPopup.qml
@@ -0,0 +1,150 @@
+/**
+ * @file PerformAudioPassThruPopup.qml
+ * @brief Popup for audio pass thru
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+import "../controls"
+
+ContextPopup {
+ property var async
+
+ function showAudioPassThru(){
+ console.debug("entered")
+ dataContainer.uiAudioPassThru.running = true
+ show()
+ if (dataContainer.uiAudioPassThru.timeout) {
+ timer.start()
+ }
+ console.debug("exited")
+ }
+
+ function complete(reason){
+ console.debug("enter", reason)
+ timer.stop()
+ dataContainer.uiAudioPassThru.timeout = 0
+ dataContainer.uiAudioPassThru.running = false
+ switch (reason) {
+ case Common.Result.ABORTED:
+ console.debug("exit with abort")
+ DBus.sendError(async, Common.Result.ABORTED)
+ break;
+ case Common.Result.SUCCESS:
+ console.debug("exit with success")
+ DBus.sendReply(async, {})
+ break;
+ case Common.Result.RETRY:
+ console.debug("exit with retry")
+ DBus.sendError(async, Common.Result.RETRY)
+ break;
+ }
+ hide()
+ }
+
+
+ Column {
+ spacing: Constants.generalSpacing
+ anchors.centerIn: parent
+ Timer {
+ id: timer
+ interval: dataContainer.uiAudioPassThru.timeout
+ onTriggered: {
+ complete(Common.Result.SUCCESS)
+ }
+ }
+
+ Text {
+ id: appNameText
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: dataContainer.uiAudioPassThru.appName
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize * 2
+ }
+
+ Row {
+ spacing: Constants.generalSpacing
+ Image {
+ source: "../res/controlButtons/vrImage.png"
+ }
+
+ Column {
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: dataContainer.uiAudioPassThru.firstLine
+ color: Constants.audioPassThruTextColor
+ font.pixelSize: Constants.fontSize
+ }
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: dataContainer.uiAudioPassThru.secondLine
+ color: Constants.audioPassThruTextColor
+ font.pixelSize: Constants.fontSize
+ }
+ }
+ }
+
+
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: Constants.generalSpacing
+
+ OvalButton {
+ text: "Retry"
+ fontSize: Constants.fontSize
+ onClicked: {
+ complete(Common.Result.RETRY)
+ }
+ }
+
+ OvalButton {
+ text: "Done"
+ fontSize: Constants.fontSize
+ onClicked: {
+ complete(Common.Result.SUCCESS)
+ }
+ }
+ }
+
+ OvalButton {
+ text: "Close"
+ anchors.horizontalCenter: parent.horizontalCenter
+ onClicked: {
+ console.debug("enter")
+ complete(Common.Result.ABORTED)
+ console.debug("exit")
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/PopUp.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/PopUp.qml
new file mode 100644
index 000000000..544852638
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/PopUp.qml
@@ -0,0 +1,94 @@
+/**
+ * @file PopUp.qml
+ * @brief General popup view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+Item {
+ default property alias content: content.children
+ property int padding: Constants.popUpPadding
+ property string popUpName
+
+ visible: false
+
+ width: Constants.popupWidth
+ height: Constants.popupHeigth
+
+ MouseArea { anchors.fill: parent }
+
+ Rectangle {
+ width: parent.width - padding / 2
+ height: parent.height - padding / 2
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: Constants.secondaryColor
+ border.width: 1
+ border.color: Constants.popUpBorderColor
+ radius: padding
+ Rectangle {
+ id: content
+ width: parent.width - padding
+ height: parent.height - padding
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: Constants.transparentColor
+ }
+ }
+
+ onVisibleChanged: {
+ if (popUpName) {
+ if (visible) {
+ dataContainer.activePopup.push(popUpName)
+ } else {
+ for (var i in dataContainer.activePopup) {
+ if (dataContainer.activePopup[i] === popUpName) {
+ dataContainer.activePopup.splice(i, 1)
+ }
+ }
+ }
+ }
+ }
+
+ function show() {
+ console.debug("enter");
+ visible = true;
+ console.debug("exit");
+ }
+
+ function hide() {
+ console.debug("enter");
+ visible = false;
+ console.debug("exit");
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/SliderPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/SliderPopup.qml
new file mode 100644
index 000000000..38f866797
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/SliderPopup.qml
@@ -0,0 +1,217 @@
+/**
+ * @file ExitAllApplicationsPopup.qml
+ * @brief Popup "Exit all applications"
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+import "../controls"
+
+ContextPopup {
+ property var async
+ property int position: 1
+ /**
+ * Test Support Section
+ */
+ property int resultCode: -1
+ signal onReady
+ /**
+ * Test Support Section End
+ */
+
+ function showSlider(){
+ console.debug("enter")
+
+ dataContainer.uiSlider.running = true
+ dataContainer.applicationSavedContext = dataContainer.applicationContext
+ if(dataContainer.uiSlider.footer === undefined ||
+ dataContainer.uiSlider.footer.length === 0 ||
+ dataContainer.uiSlider.position === 0 ) {
+ footerText.text = ""
+ } else {
+ footerText.text = dataContainer.uiSlider.footer.length === 1 ? dataContainer.uiSlider.footer[0] : dataContainer.uiSlider.footer[dataContainer.uiSlider.position - 1]
+ }
+ position = dataContainer.uiSlider.position
+ show()
+ timer.start()
+ onReady()
+ console.debug("exit")
+ }
+
+ function complete(reason){
+ console.debug("enter reason = ", reason)
+ timer.stop()
+ dataContainer.applicationContext = dataContainer.applicationSavedContext
+ dataContainer.uiSlider.running = false
+ switch(reason) {
+ case Common.Result.ABORTED:
+ console.debug("aborted position is", position)
+ resultCode = Common.Result.ABORTED
+ DBus.sendReply(async, {__retCode: resultCode, sliderPosition: position})
+ break
+ case Common.Result.SUCCESS:
+ console.debug("send position", position)
+ resultCode = Common.Result.SUCCESS
+ dataContainer.uiSlider.position = position
+ DBus.sendReply(async, {sliderPosition:position})
+ break
+ default:
+ break
+ }
+ hide()
+ position = 1
+ console.debug("exit")
+ }
+
+
+ Column
+ {
+ spacing: Constants.generalSpacing
+ anchors.centerIn: parent
+ Timer {
+ id: timer
+ interval: dataContainer.uiSlider.timeout
+ onTriggered: {
+ console.debug("triggered")
+ complete(Common.Result.SUCCESS)
+ }
+ }
+
+ Text {
+ id: appNameText
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: dataContainer.uiSlider.appName
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize * 2
+ }
+
+ Text {
+ id: headerText
+ width: borderRectangle.width
+ elide: Text.ElideRight
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: dataContainer.uiSlider.header
+ color: Constants.sliderTextColor
+ font.pixelSize: Constants.fontSize * 2
+ }
+
+ Rectangle {
+ id: borderRectangle
+ width: Constants.sliderBarWidth
+ height: Constants.sliderBarHeight
+ anchors.horizontalCenter: parent.horizontalCenter
+ border.color: Constants.sliderBarBorderColor
+ border.width: Constants.sliderBarBorderWidth
+ radius: Constants.sliderBarRadius
+ color: "black"
+
+ Rectangle {
+ id: rectangle
+ color: Constants.sliderBarFillColor
+ height: parent.height
+ border.color: parent.border.color
+ border.width: parent.border.width
+ radius: parent.radius
+
+ onVisibleChanged: {
+ var tickWidth = borderRectangle.width / dataContainer.uiSlider.numTicks
+ rectangle.width = dataContainer.uiSlider.position * tickWidth
+ }
+ }
+
+ MouseArea{
+ id: mouseArea
+ anchors.fill: parent
+ onClicked: {
+ onPositionChanged(mouse)
+ }
+
+ onPositionChanged: {
+ if(mouseX <= 0){
+ rectangle.width = borderRectangle.width / dataContainer.uiSlider.numTicks
+ position = 1
+ }
+
+ if(mouseX > borderRectangle.width) {
+ rectangle.width = borderRectangle.width
+ position = dataContainer.uiSlider.numTicks
+ }
+
+ if(mouseX > 0 && mouseX < borderRectangle.width) {
+ var tickWidth = borderRectangle.width / dataContainer.uiSlider.numTicks
+ position = Math.ceil(mouseX / tickWidth)
+ rectangle.width = position * tickWidth
+ }
+
+ if(dataContainer.uiSlider.footer.length > 1){
+ footerText.text = dataContainer.uiSlider.footer[position - 1]
+ }
+ }
+ }
+ }
+
+ Text {
+ id:footerText
+ width: borderRectangle.width
+ elide: Text.ElideRight
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: ""
+ color: Constants.sliderTextColor
+ font.pixelSize: Constants.fontSize * 2
+ }
+
+ OvalButton {
+ text: "Close"
+ anchors.horizontalCenter: parent.horizontalCenter
+ onClicked: {
+ console.debug("enter")
+ complete(Common.Result.ABORTED)
+ console.debug("exit")
+ }
+ }
+ }
+
+ function getTimer() {
+ return timer
+ }
+ function getBackButton() {
+ return backButton
+ }
+ function getFooterText() {
+ return footerText
+ }
+ function getBorderRectangle() {
+ return borderRectangle
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/TBTClientStatePopUp.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/TBTClientStatePopUp.qml
new file mode 100644
index 000000000..5cd49bdd5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/TBTClientStatePopUp.qml
@@ -0,0 +1,71 @@
+/**
+ * @file TBTClientStatePopUp.qml
+ * @brief Popup view for TBT interface (list of states).
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+
+PopUp {
+ Item {
+ ListModel {
+ id: tbtState
+
+ Component.onCompleted: {
+ for (var name in Common.TBTState) {
+ append({name: name});
+ }
+ }
+ }
+ }
+ Text {
+ text: "TBT Client State"
+ verticalAlignment: Text.AlignVCenter
+ anchors.right: parent.right
+ anchors.left: parent.left
+ anchors.top: parent.top
+ color: Constants.primaryColor
+ }
+ ComboBox {
+ id: comboBox
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ model: tbtState
+ onCurrentTextChanged: {
+ console.log("Send signal onTBTClientState:", currentText);
+ sdlNavigation.onTBTClientState(Common.TBTState[currentText]);
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/TTSPopUp.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/TTSPopUp.qml
new file mode 100644
index 000000000..33f82013b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/TTSPopUp.qml
@@ -0,0 +1,104 @@
+/**
+ * @file TTSPopUp.qml
+ * @brief Popup view for TTS
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+
+PopUp {
+ height: Constants.ttsPopUpHeight
+ width: Constants.ttsPopUpWidth
+ padding: Constants.ttsPopUpPadding
+ property var async
+
+ ScrollView {
+ anchors.fill: parent
+ Text {
+ id: text
+ anchors.fill: parent
+ color: Constants.popUpBorderColor
+ font.pixelSize: Constants.ttsFontSize
+ }
+ }
+
+ resources: [
+ Timer {
+ id: timer
+ interval: Constants.ttsSpeakTime
+ onTriggered: deactivate()
+ },
+
+ Timer {
+ id: ttsPerformInteractionTimer
+ interval: Constants.ttsSpeakTime
+ onTriggered: activate(message)
+ property var message: undefined
+ }
+ ]
+
+ function performInteraction(helpPrompt, initialPrompt, timeoutPrompt, timeout) {
+ activate(initialPrompt);
+ if (timeout * 2 - Constants.ttsSpeakTime > 0) {
+ ttsPerformInteractionTimer.message = timeoutPrompt;
+ ttsPerformInteractionTimer.interval = timeout - Constants.ttsSpeakTime;
+ ttsPerformInteractionTimer.restart()
+ }
+ }
+
+ function activate(message) {
+ console.debug("Activate TTS popup:", message);
+ dataContainer.activeTTS = true;
+ sdlTTS.started();
+ console.debug("TTS started");
+ text.text = message;
+ show();
+ timer.restart();
+ console.debug("Exit");
+ }
+
+ function deactivate() {
+ console.debug("Deactivate TTS popup");
+ dataContainer.activeTTS = false;
+ sdlTTS.stopped();
+ console.debug("TTS stopped");
+ text.text = '';
+ timer.stop();
+ hide();
+ DBus.sendReply(async, {});
+ async = null;
+ console.debug("Exit");
+ }
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VRHelpPopup.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VRHelpPopup.qml
new file mode 100644
index 000000000..c699f0f51
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VRHelpPopup.qml
@@ -0,0 +1,113 @@
+/**
+ * @file VRHelpPopup.qml
+ * @brief Popup view for VR help
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+
+PopUp {
+ property alias title: title.text
+ Text {
+ id: title
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: Constants.popupMargin
+ text: {
+ // not in application
+ if (!dataContainer.applicationContext) {
+ return dataContainer.currentApplication.vrHelpTitleDefault
+ // in application
+ } else {
+ if (interactionPopup.performInteractionIsActiveNow) {
+ return dataContainer.currentApplication.vrHelpTitlePerformInteraction
+ } else if (dataContainer.currentApplication.vrHelpTitle) {
+ return dataContainer.currentApplication.vrHelpTitle
+ } else {
+ return dataContainer.currentApplication.vrHelpTitleDefault
+ }
+ }
+ }
+ font.pixelSize: Constants.titleFontSize
+ color: Constants.primaryColor
+ }
+
+ ScrollableListView {
+ anchors.top: title.bottom
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: Constants.popupMargin
+
+ model: {
+ // not in application
+ if (!dataContainer.applicationContext) {
+ return dataContainer.currentApplication.vrHelpItemsDefault
+ // in application
+ } else {
+ if (interactionPopup.performInteractionIsActiveNow) {
+ return dataContainer.currentApplication.vrHelpItemsPerformInteraction
+ } else if (dataContainer.currentApplication.vrHelpItems.count > 0) {
+ return dataContainer.currentApplication.vrHelpItems
+ } else {
+ return dataContainer.currentApplication.vrHelpItemsDefault
+ }
+ }
+ }
+
+ delegate:
+ Row {
+ spacing: Constants.iconItemListSpacing
+ Icon {
+ source: model.image
+ anchors.verticalCenter: parent.verticalCenter
+ width: Constants.iconItemListSize
+ height: Constants.iconItemListSize
+ }
+
+ Text {
+ id: text
+ anchors.verticalCenter: parent.verticalCenter
+ text: model.text
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize
+ }
+ }
+ }
+
+ function complete(reason, data) {
+ hide()
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VRPopUp.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VRPopUp.qml
new file mode 100644
index 000000000..f796ad2b1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VRPopUp.qml
@@ -0,0 +1,92 @@
+/**
+ * @file VRPopUp.qml
+ * @brief Popup view for VR interface (list commands).
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+import "../views"
+import "../controls"
+
+PopUp {
+ Text {
+ id: title
+ anchors.left: parent.left
+ anchors.top: parent.top
+ height: voice.height
+ width: parent.width - voice.width
+ text: "Speak the command"
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+
+ Image {
+ id: voice
+ anchors.top: parent.top
+ anchors.right: parent.right
+ source: "../res/controlButtons/vrImage.png"
+ }
+
+ ScrollableListView {
+ anchors.bottomMargin: Constants.popupMargin
+ anchors.rightMargin: Constants.popupMargin
+ anchors.leftMargin: Constants.popupMargin
+ anchors.top: voice.bottom
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+
+ model: dataContainer.vrCommands
+
+ delegate: OvalButton {
+ width: parent.width
+ text: command
+ onClicked: {
+ sdlVR.onCommand(cmdID, appID === 0 ? undefined : appID);
+ }
+ }
+ }
+
+ function activate() {
+ dataContainer.activeVR = true;
+ sdlVR.started();
+ show();
+ }
+
+ function complete(reason) {
+ dataContainer.activeVR = false;
+ sdlVR.stopped();
+ hide();
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VehicleInfoPopUp.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VehicleInfoPopUp.qml
new file mode 100644
index 000000000..a97f34671
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/popups/VehicleInfoPopUp.qml
@@ -0,0 +1,112 @@
+/**
+ * @file VIPopUp.qml
+ * @brief Pop up window with information about vehicle.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+import "../controls"
+import QtQuick.Controls 1.0
+
+PopUp {
+ //TODO{ALeshin}: Redraw this window as ListView or Column, when we'll get requirements
+ Column {
+ anchors.fill: parent
+ Text {
+ id: viText
+ width: parent.width
+ height: 1/5 * parent.height
+ text: "Vehicle Information"
+ font.pixelSize: Constants.fontSize
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ color: Constants.primaryColor
+ }
+
+ Row {
+ height: 1/5 * parent.height
+ width: parent.width
+
+ Text {
+ width: 1/4 * parent.width
+ height: 1/5 * parent.height
+ anchors.verticalCenter: parent.verticalCenter
+ text: "PRNDL: "
+ font.pixelSize: Constants.fontSize
+ verticalAlignment: Text.AlignVCenter
+ color: Constants.primaryColor
+ }
+
+ ComboBox {
+ anchors.verticalCenter: parent.verticalCenter
+ id: comboBox
+ model: prndlList
+
+ onCurrentIndexChanged: {
+ console.debug("PRNDL:", currentIndex)
+ dataContainer.vehicleInfoModel.prndl = model.get(currentIndex).id
+ }
+
+ textRole: "name"
+ ListModel {
+ id: prndlList
+ Component.onCompleted: {
+ append({ id: -1, name: "<NO DATA (prndl)>" })
+ for (var name in Common.PRNDL) {
+ append({ id: Common.PRNDL[name], name: name });
+ }
+ }
+ }
+ }
+ z: 1000
+ }
+
+ Text {
+ width: parent.width
+ height: 1/5 * parent.height
+ text: "ECU 1: " + dataContainer.vehicleInfoModel.ecuDIDData.data1
+ font.pixelSize: Constants.fontSize
+ verticalAlignment: Text.AlignVCenter
+ color: Constants.primaryColor
+ }
+
+ Text {
+ width: parent.width
+ height: 1/5 * parent.height
+ text: "ECU 2: " + dataContainer.vehicleInfoModel.ecuDIDData.data2
+ font.pixelSize: Constants.fontSize
+ verticalAlignment: Text.AlignVCenter
+ color: Constants.primaryColor
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/qml_model.qmlproject b/SDL_Core/src/components/qt_hmi/qml_model_qt5/qml_model.qmlproject
new file mode 100644
index 000000000..ea820e801
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/qml_model.qmlproject
@@ -0,0 +1,20 @@
+/* File generated by Qt Creator, version 2.7.0 */
+
+import QmlProject 1.1
+
+Project {
+ mainFile: "MainWindow.qml"
+
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "../res"
+ }
+ /* List of plugin directories passed to QML runtime */
+ importPaths: [ "." ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/AMPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/AMPlayerView.qml
new file mode 100644
index 000000000..ad0c9d190
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/AMPlayerView.qml
@@ -0,0 +1,48 @@
+/**
+ * @file AMPlayerView.qml
+ * @brief AM player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ RadioPlayer {
+ id: amRadioPlayer
+ anchors.fill: parent
+ radioType: "AM"
+ radioName: "AM Radio"
+
+ playerState: dataContainer.amPlayerState
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ApplicationListView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ApplicationListView.qml
new file mode 100644
index 000000000..602354d45
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ApplicationListView.qml
@@ -0,0 +1,125 @@
+/**
+ * @file ApplicationListView.qml
+ * @brief Application list view
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../models"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+
+GeneralView {
+ Column {
+ anchors.fill: parent
+ Item {
+ // top 1/4 of screen
+ width: parent.width
+ height: 1/4 * parent.height
+
+ PagedFlickable {
+ anchors.verticalCenter: parent.verticalCenter
+ width: parent.width
+ elementWidth: Constants.ovalButtonWidth
+ snapTo: elementWidth + spacing
+ spacing: (width - 4 * elementWidth) / 3
+
+ OvalButton {
+ text: "Find New Apps"
+ }
+
+ OvalButton {
+ text: "Change device"
+ onReleased: contentLoader.go("./views/ChangeDeviceView.qml")
+ }
+
+ OvalButton {
+ text: "911 Assist"
+ }
+
+ OvalButton {
+ text: "Vehicle Health Report"
+ }
+
+ OvalButton {
+ text: "Install applications/Up"
+ }
+ }
+ }
+
+ Item {
+ height: parent.height / 2
+ width: parent.width
+
+ ScrollableListView {
+ id: applicationListView
+ anchors.fill: parent
+ model: dataContainer.applicationList
+
+ delegate: Item {
+ width: parent.width
+ height: Math.max(applicationName.height, appIcon.height)
+ Image {
+ id: appIcon
+ source: icon
+ height: Constants.appListIconSize
+ width: height
+ }
+ ClickableText {
+ id: applicationName
+ text: appName
+ defaultColor: Constants.primaryColor
+ pressedColor: Constants.primaryColorPressed
+ font.pixelSize: Constants.appListFontSize
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: appIcon.right
+ anchors.leftMargin: Constants.margin
+ onClicked: {
+ dataContainer.setCurrentApplication(appId)
+ contentLoader.go( Internal.chooseAppStartScreen(dataContainer.currentApplication.appType,
+ dataContainer.currentApplication.isMediaApplication), appId )
+ }
+ }
+ }
+ }
+ }
+
+ Item {
+ // bottom 1/4 of screen
+ width: parent.width
+ height: 1/4 * parent.height
+
+ BackButton { anchors.centerIn: parent }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/BTPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/BTPlayerView.qml
new file mode 100644
index 000000000..a1d8c43a3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/BTPlayerView.qml
@@ -0,0 +1,62 @@
+/**
+ * @file BTPlayerView.qml
+ * @brief FM player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ MediaPlayer {
+ id: btPlayer
+ playerName: "BT Audio"
+ anchors.fill: parent
+
+ playerState: dataContainer.btPlayerState
+ image: playerState.albumImage
+
+ buttons: [
+ OvalButton {
+ text: btPlayer.playerName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ },
+
+ OvalButton {
+ text: "Browse"
+ fontSize: Constants.fontSize
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/CDPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/CDPlayerView.qml
new file mode 100644
index 000000000..8cf1c3f72
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/CDPlayerView.qml
@@ -0,0 +1,63 @@
+/**
+ * @file CDPlayerView.qml
+ * @brief CD player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ MediaPlayer {
+ id: cdPlayer
+ playerName: "CD"
+ anchors.fill: parent
+ image: playerState.albumImage
+ playerState: dataContainer.cdPlayerState
+
+ buttons: [
+ OvalButton {
+ text: cdPlayer.playerName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ },
+
+ OvalButton {
+ text: "Browse"
+ fontSize: Constants.fontSize
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/CarMenuGridView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/CarMenuGridView.qml
new file mode 100644
index 000000000..e61bac1d0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/CarMenuGridView.qml
@@ -0,0 +1,54 @@
+/**
+ * @file CarMenuGridView.qml
+ * @brief Car menu screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+import "../models"
+import "../controls"
+
+GridMenu {
+ id: menu
+ model: CarMenuModel { }
+ delegate: GridItem {
+ width: menu.width / menu.columnsOnPage
+ height: menu.height / menu.rows
+ ClickableImage {
+ anchors.centerIn: parent
+ source: icon
+ onClicked: {
+ if(qml !== "") {
+ contentLoader.go(qml)
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ChangeDeviceView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ChangeDeviceView.qml
new file mode 100644
index 000000000..84a751efe
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ChangeDeviceView.qml
@@ -0,0 +1,102 @@
+/**
+ * @file ChangeDeviceView.qml
+ * @brief Screen view with list of available devices.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../models"
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ Item {
+ anchors.fill: parent
+
+ Item {
+ // 3/4 top screen
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+
+ Text {
+ id: searchDeviceText
+ anchors.left: parent.left
+ anchors.top: parent.top
+ height: 1/4 * parent.height
+ width: parent.width
+ color: Constants.primaryColor
+ font.pixelSize: Constants.titleFontSize
+ text: "Devices available:"
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ ListView {
+ id: changeDeviceListView
+ anchors.left: parent.left
+ anchors.top: searchDeviceText.bottom
+ model: dataContainer.deviceList
+ width:parent.width
+ height:parent.height - searchDeviceText.height
+
+ delegate: Text {
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ sdlBasicCommunication.onDeviceChosen({ name: name, id: devid });
+ sdlBasicCommunication.onFindApplications({ name: name, id: devid })
+ contentLoader.go("./views/ApplicationListView.qml")
+ }
+ }
+ text: name
+ color: Constants.primaryColor
+ font.pixelSize: Constants.titleFontSize
+ }
+ }
+ }
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ BackButton { anchors.centerIn: parent }
+ }
+
+ Component.onCompleted: {
+ console.log("ChangeDeviceView Component.onCompleted enter");
+ sdlBasicCommunication.onStartDeviceDiscovery();
+ console.log("ChangeDeviceView Component.onCompleted exit");
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ClimateControlView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ClimateControlView.qml
new file mode 100644
index 000000000..41b0c32ef
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ClimateControlView.qml
@@ -0,0 +1,94 @@
+/**
+ * @file ClimateControlView.qml
+ * @brief Screen view of climat menu.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+
+GeneralView {
+ Item {
+ id: climatMenu
+ anchors.fill: parent
+
+ Item {
+ height: parent.height
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+
+ Column {
+ id: leftItem
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 1/4*parent.width - useThisToGetButtonSize.width
+
+ Row {
+ ClimateControlBtn {name: "heated_seat"}
+ ClimateControlBtn {name: "heated_wheel"}
+ }
+ Row {
+ ClimateControlBtn {name: "AC"}
+ ClimateControlBtn {name: "headed_dash"}
+ }
+ }
+
+ Column {
+ id: centralItem
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+
+ ClimateControlBtn {id: useThisToGetButtonSize; name: "defrost"; state: "on"}
+ ClimateControlBtn {name: "face"; state: "on"}
+ ClimateControlBtn {name: "feet"}
+ }
+
+ Row {
+ id: rightItem
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: 1/4*parent.width - useThisToGetButtonSize.width
+
+ ClimateControlBtn {
+ anchors.verticalCenter: parent.verticalCenter
+ txt: "Dual"
+ state: "on"
+ }
+
+ Column {
+ ClimateControlBtn { name: "heated_seat" }
+ ClimateControlBtn { name: "AC" }
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ContactsListView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ContactsListView.qml
new file mode 100644
index 000000000..90f817036
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ContactsListView.qml
@@ -0,0 +1,118 @@
+/**
+ * @file ContactsListView.qml
+ * @brief Contact list screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../models"
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ function setCurrent(firstLetter){
+ for(var i = 0; i < contactsListView.count; i ++) {
+ if (contactsListView.model.get(i).name[0].toUpperCase() === firstLetter) {
+ contactsListView.positionViewAtIndex(i, ListView.Beginning)
+ break;
+ }
+ }
+ }
+ Component.onCompleted: setCurrent(dataContainer.contactsFirstLetter)
+
+ Item {
+ // 3/4 top screen
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+
+ ScrollableListView {
+ id: contactsListView
+ anchors.fill: parent
+ clip: true
+ spacing: 1/2 * Constants.fontSize
+ model: ContactsListModel { }
+
+ section.property: "name"
+ section.criteria: ViewSection.FirstCharacter
+ section.delegate: Text {
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize
+ text: section.toUpperCase()
+ }
+
+ delegate: Item {
+ anchors.left: parent.left
+ width: parent.width - Constants.scrollBarWidth
+ height: typeText.height
+
+ Text {
+ id: contactName
+ anchors.left: parent.left
+ text: name
+ width: Constants.contactListNameFieldSize * parent.width
+ color: Constants.contactTextColor
+ font.pixelSize: Constants.fontSize
+ elide: Text.ElideRight
+ }
+ Text {
+ id: phoneText
+ anchors.left: contactName.right
+ width: Constants.contactListPhoneFieldSize * parent.width
+ text: phone
+ color: Constants.contactTextColor
+ font.pixelSize: Constants.fontSize
+ horizontalAlignment: Text.AlignHCenter
+ }
+ Text {
+ id: typeText
+ anchors.right: parent.right
+ width: Constants.contactListDescriptionFieldSize * parent.width
+ text: type
+ color: Constants.contactTextColor
+ font.pixelSize: Constants.fontSize
+ horizontalAlignment: Text.AlignHCenter
+ }
+ }
+ }
+ }
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ BackButton { anchors.centerIn: parent }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/FMPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/FMPlayerView.qml
new file mode 100644
index 000000000..ae117ccd0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/FMPlayerView.qml
@@ -0,0 +1,121 @@
+/**
+ * @file FMPlayerView.qml
+ * @brief FM player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ RadioPlayer {
+ id: fmRadioPlayer
+ anchors.fill: parent
+ radioType: "FM"
+ radioName: "FM Radio"
+
+ playerState: dataContainer.fmPlayerState
+
+ property int hdButtonValue: 1
+
+ buttonHD: [
+ Image {
+ id: hdButton
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ source: "../res/buttons/long_oval_btn.png"
+ property string textColor: Constants.primaryColor
+
+ Row {
+ anchors.centerIn: parent
+ spacing: (hdButton.width - hdLogo.width - one.width - two.width - three.width - four.width) / 10
+
+ Image {
+ id: hdLogo
+ anchors.verticalCenter: parent.verticalCenter
+ source:"../res/hd_logo_on.png"
+ }
+
+ Text {
+ id: one
+ anchors.verticalCenter: parent.verticalCenter
+ text: "1"
+ color: fmRadioPlayer.hdButtonValue === 1 ? "white" : hdButton.textColor
+ font.pixelSize: Constants.fontSize
+ }
+
+ Text {
+ id: two
+ anchors.verticalCenter: parent.verticalCenter
+ text: "2"
+ color: fmRadioPlayer.hdButtonValue === 2 ? "white" : hdButton.textColor
+ font.pixelSize: Constants.fontSize
+ }
+
+ Text {
+ id: three
+ anchors.verticalCenter: parent.verticalCenter
+ text: "3"
+ color: fmRadioPlayer.hdButtonValue === 3 ? "white" : hdButton.textColor
+ font.pixelSize: Constants.fontSize
+ }
+
+ Text {
+ id: four
+ anchors.verticalCenter: parent.verticalCenter
+ text: "4"
+ color: fmRadioPlayer.hdButtonValue === 4 ? "white" : hdButton.textColor
+ font.pixelSize: Constants.fontSize
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ hdLogo.source = "../res/hd_logo_off.png"
+ hdButton.source = "../res/buttons/long_oval_pressed_btn.png"
+ hdButton.textColor = Constants.secondaryColor
+
+ }
+ onReleased: {
+ hdLogo.source = "../res/hd_logo_on.png"
+ hdButton.source = "../res/buttons/long_oval_btn.png"
+ hdButton.textColor = Constants.primaryColor
+ fmRadioPlayer.hdButtonValue === 4 ? fmRadioPlayer.hdButtonValue = 1 : fmRadioPlayer.hdButtonValue++
+ }
+ }
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/GeneralView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/GeneralView.qml
new file mode 100644
index 000000000..ca6eb12e8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/GeneralView.qml
@@ -0,0 +1,48 @@
+/**
+ * @file GeneralView.qml
+ * @brief Base view class. Defines properties and behavior common for all views
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+
+Item {
+ /// HMI context view is related to
+ property int systemContext: Common.SystemContext.SYSCTXT_MAIN
+ /// True if view is in application context
+ property bool applicationContext: false
+ /// View category for AppDeactivated notification (reason)
+ property int category: Common.DeactivateReason.GENERAL
+
+ signal enterScreen
+ signal leaveScreen
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/GridMenu.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/GridMenu.qml
new file mode 100644
index 000000000..f935b030c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/GridMenu.qml
@@ -0,0 +1,86 @@
+/**
+ * @file GridMenu.qml
+ * @brief Parent class for main menu.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+
+GeneralView {
+ id: main
+ property alias model: repeater.model
+ property alias delegate: repeater.delegate
+ property alias rows: grid.rows
+ property int columnsOnPage: Constants.menuColumnCount
+
+ Flickable {
+ id: flicker
+ anchors.fill: parent
+ contentWidth: grid.width
+ flickableDirection: Flickable.HorizontalFlick
+
+ Grid {
+ id: grid
+ anchors.centerIn: parent
+ rows: Constants.menuRowCount
+ columns: Math.ceil(model.count / rows)
+ flow: Grid.TopToBottom
+ Repeater {
+ id: repeater
+ }
+ }
+
+ property int snapTo: width / parent.columnsOnPage
+ onMovementEnded: {
+ var rest = flicker.contentX % snapTo
+ var time = 0.25
+ if (rest > flicker.snapTo / 2) { rest = rest - flicker.snapTo }
+ var vel = 2 * rest / time
+ flickDeceleration = Math.abs(vel) / time
+ flick(vel, 0)
+ flickDeceleration = 1500
+ }
+ }
+
+ Pager {
+ id: pager
+ space: 10
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+ anchors.topMargin: Constants.margin
+
+ pages: Math.ceil(grid.columns / parent.columnsOnPage)
+ activePage: Internal.activePageChoose(flicker, pager.pages)
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/HardwareButtonsView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/HardwareButtonsView.qml
new file mode 100644
index 000000000..1a162f2ca
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/HardwareButtonsView.qml
@@ -0,0 +1,175 @@
+/**
+ * @file HardwareButtonsView.qml
+ * @brief Area of screen responsible for hardware buttons
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+
+Rectangle {
+ height: row.height + row.anchors.margins
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.panelColor
+
+ signal buttonDown(string name)
+ signal buttonUp(string name)
+
+ function pressButton(name) {
+ buttonDown(name)
+ }
+
+ function longPressButton(name) {
+ console.log("long press " + name)
+ }
+
+ function releaseButton(name) {
+ buttonUp(name)
+ }
+
+ Row {
+ id: row
+ spacing: Constants.panelPadding
+ anchors.centerIn: parent
+ anchors.margins: Constants.panelPadding
+
+ PowerSwitchButton {anchors.verticalCenter: parent.verticalCenter}
+
+ MaskedButton {
+ name: "vr"
+ anchors.verticalCenter: parent.verticalCenter
+ onReleased: {
+ console.debug("Clicked VR button");
+ if (!dataContainer.activeVR) {
+ vrPopUp.activate();
+ vrHelpPopup.show();
+ } else {
+ vrPopUp.complete();
+ vrHelpPopup.hide()
+ }
+ }
+ }
+
+ ArrowKeys {anchors.verticalCenter: parent.verticalCenter}
+
+ Grid {
+ columns: 5
+ rows: 2
+ spacing: 5
+ anchors.verticalCenter: parent.verticalCenter
+ Repeater {
+ model: 10
+ delegate : Rectangle {
+ width: 40
+ height: 40
+ radius: 5
+ gradient: Gradient {
+ GradientStop
+ {
+ position: 0.0;
+ color: "#2c2c2c"
+ Behavior on position {
+ NumberAnimation { duration: 80 }
+ }
+ }
+
+ GradientStop
+ {
+ position: 1.0;
+ color: "black"
+ Behavior on position {
+ NumberAnimation { duration: 80 }
+ }
+ }
+ }
+
+ Text {
+ text: (1 + index) % 10
+ font.pixelSize: 30
+ color: Constants.panelTextColor
+ anchors.centerIn: parent
+ }
+
+ Timer {
+ id: timer
+ interval: Constants.presetButtonTimer
+ repeat: false
+ triggeredOnStart: false
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ property bool clickProcessed
+ onPressed: {
+ parent.gradient.stops[0].position = 1.0
+ parent.gradient.stops[1].position = 0.0
+ clickProcessed = false
+ timer.start()
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + index, Common.ButtonEventMode.BUTTONDOWN, undefined)
+ }
+ onReleased: {
+ parent.gradient.stops[0].position = 0.0
+ parent.gradient.stops[1].position = 1.0
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + index, Common.ButtonEventMode.BUTTONUP, undefined)
+ timer.stop()
+ if (!clickProcessed) {
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + index, Common.ButtonPressMode.SHORT, undefined)
+ }
+ }
+ Connections {
+ target: timer
+ onTriggered: {
+ if(!mouseArea.clickProcessed) {
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + index, Common.ButtonPressMode.LONG, undefined)
+ mouseArea.clickProcessed = true
+ }
+ }
+ }
+ }
+
+ Component.onCompleted: {
+ settingsContainer.buttonCapabilities.push(
+ {
+ name: Common.ButtonName.PRESET_0 + index,
+ upDownAvailable: true,
+ shortPressAvailable: true,
+ longPressAvailable: true
+ });
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/IPodPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/IPodPlayerView.qml
new file mode 100644
index 000000000..65a667702
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/IPodPlayerView.qml
@@ -0,0 +1,61 @@
+/**
+ * @file IPodPlayerView.qml
+ * @brief IPod player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ MediaPlayer {
+ id: ipodPlayer
+ playerName: "iPod"
+ anchors.fill: parent
+ image: playerState.albumImage
+ playerState: dataContainer.ipodPlayerState
+
+ buttons: [
+ OvalButton {
+ text: ipodPlayer.playerName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ },
+
+ OvalButton {
+ text: "Browse"
+ fontSize: Constants.fontSize
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/LineInPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/LineInPlayerView.qml
new file mode 100644
index 000000000..70f3e0477
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/LineInPlayerView.qml
@@ -0,0 +1,61 @@
+/**
+ * @file LineInPlayerView.qml
+ * @brief LineIn player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ MediaPlayer {
+ id: lineInPlayer
+ playerName: "LineIn"
+ anchors.fill: parent
+ image: playerState.albumImage
+ playerState: dataContainer.linePlayerState
+
+ buttons: [
+ OvalButton {
+ text: lineInPlayer.playerName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ },
+
+ OvalButton {
+ text: "Browse"
+ fontSize: Constants.fontSize
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MainMenuView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MainMenuView.qml
new file mode 100644
index 000000000..7ed435b13
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MainMenuView.qml
@@ -0,0 +1,54 @@
+/**
+ * @file MainMenuView.qml
+ * @brief Main menu screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+import "../models"
+import "../controls"
+
+GridMenu {
+ id: menu
+ model: MainMenuListModel { }
+ delegate: GridItem {
+ width: menu.width / menu.columnsOnPage
+ height: menu.height / menu.rows
+ ClickableImage {
+ anchors.centerIn: parent
+ source: icon
+ onClicked: {
+ if(qml !== "") {
+ contentLoader.go(qml)
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MediaClockView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MediaClockView.qml
new file mode 100644
index 000000000..5178d979c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MediaClockView.qml
@@ -0,0 +1,73 @@
+/**
+ * @file MediaClockView.qml
+ * @brief Media clock view
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+
+Item {
+ property alias time: timeText.text
+ Text {
+ id: timeText
+ anchors.left: parent.left
+ width: 1/10 * parent.width
+ anchors.verticalCenter: parent.verticalCenter
+ horizontalAlignment: Text.AlignRight
+ color: "white"
+ text: (mediaPlayerView.playerType === "SDL") ? Internal.hmsTimeToString(dataContainer.currentApplication.mediaClock.startTime)
+ : "02:36" //TODO {Aleshin}: get track time for all players except SDL
+ font.pixelSize: 18
+ }
+
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+ height: parent.height
+ width: 2/3 * parent.width
+
+ Rectangle {
+ anchors.verticalCenter: parent.verticalCenter
+ height: 2
+ width: dataContainer.currentApplication.mediaClock.progress * parent.width
+ color: "white"
+ }
+
+ Rectangle {
+ anchors.verticalCenter: parent.verticalCenter
+ height: 2
+ width: (1 - dataContainer.currentApplication.mediaClock.progress) * parent.width
+ color: Constants.primaryColor
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MediaPlayer.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MediaPlayer.qml
new file mode 100644
index 000000000..a92908192
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MediaPlayer.qml
@@ -0,0 +1,312 @@
+/**
+ * @file MediaPlayerView.qml
+ * @brief Parent for BT, IPod, CD players screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../models"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+
+Item {
+ id: mediaPlayerView
+
+ property string playerName: ""
+ property string playerType: ""
+
+ signal rewind
+ signal forward
+ signal play
+ signal pause
+
+ // Holds players state(song name, play/pause state, track number etc). For all players except SDL.
+ property PlayerState playerState;
+
+ property alias buttons: buttonsRow.content
+ property alias buttonsSpacing: buttonsRow.spacing
+ property alias image: image.source
+
+ Item {
+ // row of oval buttons
+ id: ovalButtonsRow
+ width: parent.width
+ height: 1/5 * parent.height
+ anchors.left: parent.left
+ anchors.top: parent.top
+
+ PagedFlickable {
+ id: buttonsRow
+ width: parent.width
+ spacing: (mediaPlayerView.playerType === "SDL") ? ((width - 4 * elementWidth) / 3)
+ : (width - 2 * elementWidth)
+ anchors.verticalCenter: parent.verticalCenter
+ snapTo: Constants.ovalButtonWidth + spacing
+ elementWidth: Constants.ovalButtonWidth
+ }
+ }
+
+ Item {
+ id: spacingBetweenItems
+ width: parent.width
+ height: 1/10 * parent.height
+ anchors.left: parent.left
+ anchors.top: ovalButtonsRow.bottom
+
+ Behavior on height {
+ NumberAnimation {
+ duration : Constants.animationDuration
+ }
+ }
+ }
+
+ Column {
+ // Picture + text information + media clock
+ id: mediaContent
+ width: parent.width
+ height: 2/5 * parent.height
+ anchors.left: parent.left
+ anchors.top: spacingBetweenItems.bottom
+
+ Row {
+ // picture + text info
+ width: parent.width
+ height: 3/4 * parent.height
+ spacing: Constants.margin
+
+ Image {
+ id: image
+ height: parent.height
+ width: height
+ }
+
+ Column {
+ // text info
+ id: textInfo
+ height: parent.height
+ width: parent.width - image.width - parent.spacing
+ spacing: (height - titleText.height - 3 * text.height) / 3
+
+ Text {
+ id: titleText
+ anchors.left: parent.left
+ anchors.right: parent.right
+ horizontalAlignment: dataContainer.currentApplication.hmiUITextAlignment
+ color: Constants.primaryColor
+ text: (mediaPlayerView.playerType === "SDL") ? dataContainer.currentApplication.hmiUIText.mainField1
+ : playerState.trackName
+ font.pixelSize: Constants.titleFontSize
+ font.bold: true
+ }
+
+ Text {
+ id: text
+ anchors.left: parent.left
+ anchors.right: parent.right
+ horizontalAlignment: dataContainer.currentApplication.hmiUITextAlignment
+ color: Constants.primaryColor
+ text: (mediaPlayerView.playerType === "SDL") ? dataContainer.currentApplication.hmiUIText.mainField2
+ : playerState.albumName
+ font.pixelSize: Constants.fontSize
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ horizontalAlignment: Text.AlignHCenter
+ color: Constants.primaryColor
+ text: (mediaPlayerView.playerType === "SDL") ? dataContainer.currentApplication.hmiUIText.mediaTrack
+ : playerState.trackNumber
+ font.pixelSize: Constants.fontSize
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: "Time to destination: " + dataContainer.currentApplication.navigationModel.timeToDestination
+ font.pixelSize: Constants.fontSize
+ horizontalAlignment: dataContainer.hmiUITextAlignment
+ visible: mediaPlayerView.playerType === "SDL" && dataContainer.currentApplication.navigationModel.timeToDestination
+ }
+ }
+ }
+
+ MediaClockView {
+ width: parent.width
+ height: parent.height * 1/4
+ }
+ }
+
+ Item {
+ id: spacingBetweenItems2
+ width: parent.width
+ height: 1/10 * parent.height
+ anchors.left: parent.left
+ anchors.top: mediaContent.bottom
+
+ Behavior on height {
+ NumberAnimation {
+ duration : Constants.animationDuration
+ }
+ }
+ }
+
+ Row {
+ // Rewind, play, pause, forward buttons
+ id: playPauseRewindForward
+ width: parent.width
+ height: 1/5 * parent.height - statusBar.height
+ anchors.left: parent.left
+ anchors.leftMargin: (width - playPauseButton.width - prevButton.width - nextButton.width) / 2
+ anchors.top: spacingBetweenItems2.bottom
+
+ Image {
+ id: prevButton
+ anchors.verticalCenter: parent.verticalCenter
+ source: "../res/buttons/player_prev_btn.png"
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ prevButton.source = "../res/buttons/player_prev_pressed_btn.png"
+ }
+ onReleased: {
+ prevButton.source = "../res/buttons/player_prev_btn.png"
+ }
+ }
+ }
+
+ PlayPauseButton {
+ id: playPauseButton
+ anchors.verticalCenter: parent.verticalCenter
+ state: (mediaPlayerView.playerType === "SDL") ? dataContainer.currentApplication.playPauseState : playerState.playPauseState
+ onClicked: {
+ (state == 'Play') ? play() : pause();
+ var newState = state === "Play" ? "Pause" : "Play";
+ (mediaPlayerView.playerType === "SDL") ? dataContainer.setApplicationProperties(dataContainer.currentApplication.appId, { playPauseState: newState } )
+ : playerState.playPauseState = newState
+ }
+ }
+
+ Image {
+ id: nextButton
+ anchors.verticalCenter: parent.verticalCenter
+ source: "../res/buttons/player_next_btn.png"
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ nextButton.source = "../res/buttons/player_next_pressed_btn.png"
+ }
+ onReleased: {
+ nextButton.source = "../res/buttons/player_next_btn.png"
+ }
+ }
+ }
+ }
+
+ Item {
+ id: presetButtons
+ width: parent.width
+ height: 1/5 * parent.height
+ anchors.top: playPauseRewindForward.bottom
+ anchors.left: parent.left
+
+ PresetRow {
+ id: presetsRow
+ anchors.top: parent.top
+ anchors.left: parent.left
+ presets: mediaPlayerView.playerType === "SDL" ? Internal.getArrayForPresetRow(dataContainer.currentApplication) : []
+ width: parent.width
+
+ onPresetButtonPressed: {
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonEventMode.BUTTONDOWN, undefined)
+ }
+
+ onPresetButtonReleased: {
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonEventMode.BUTTONUP, undefined)
+ }
+
+ onPresetButtonClicked: {
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonPressMode.SHORT, undefined)
+ }
+
+ onPresetButtonHold: {
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonPressMode.LONG, undefined)
+ }
+ }
+ }
+
+ StatusBar {
+ id: statusBar
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ }
+
+ states: [
+ State {
+ name: 'presetButtonsON'
+ when: (dataContainer.currentApplication.customPresets.count > 0) && (mediaPlayerView.playerType === "SDL")
+ PropertyChanges {
+ target: spacingBetweenItems
+ height: 1
+ }
+ PropertyChanges {
+ target: spacingBetweenItems2
+ height: 1
+ }
+ PropertyChanges {
+ target: presetButtons
+ visible: true
+ enabled: true
+ }
+ },
+
+ State {
+ name: 'presetButtonsOFF'
+ when: (dataContainer.currentApplication.customPresets.count === 0) || (mediaPlayerView.playerType !== "SDL")
+ PropertyChanges {
+ target: spacingBetweenItems
+ height: 1/10 * mediaPlayerView.height
+ }
+ PropertyChanges {
+ target: spacingBetweenItems2
+ height: 1/10 * mediaPlayerView.height
+ }
+ PropertyChanges {
+ target: presetButtons
+ visible: false
+ enabled: false
+ }
+ }
+ ]
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MusicSourceView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MusicSourceView.qml
new file mode 100644
index 000000000..08f1d76b6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/MusicSourceView.qml
@@ -0,0 +1,75 @@
+/**
+ * @file MusicSourceView.qml
+ * @brief Music source screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+import "../models"
+import "../controls"
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ Item {
+ anchors.fill: parent
+ GridMenu {
+ id: menu
+ model: dataContainer.musicSourceModel
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: bottomPanel.top
+ delegate: GridItem {
+ width: menu.width / menu.columnsOnPage
+ height: menu.height / menu.rows
+ OvalButton {
+ text: title
+ onReleased: contentLoader.go(qml, appId)
+ anchors.centerIn: parent
+ fontSize: Constants.fontSize
+ }
+ }
+ }
+
+ Item {
+ id: bottomPanel
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ height: 1/4 * parent.height
+ width: parent.width
+
+ BackButton { anchors.centerIn: parent }
+ }
+ }
+}
+
+
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationInRouteGridView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationInRouteGridView.qml
new file mode 100644
index 000000000..99f1877a5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationInRouteGridView.qml
@@ -0,0 +1,250 @@
+/**
+ * @file NavigationInRouteGridView.qml
+ * @brief Navigation in route screen veiw.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+
+GeneralView {
+ Item {
+ id: navInRoute
+ anchors.fill: parent
+
+ Image {
+ // 3/4 top screen
+ id: map
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ source: "../res/nav/map.png"
+
+ Image {
+ id: compas
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 1/4 * compas.width
+ anchors.left: parent.left
+ anchors.leftMargin: 1/4 * compas.width
+ source: "../res/nav/compass.png"
+ }
+
+ Column {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: compas.horizontalCenter
+ spacing: 1/8 * parent.height
+
+ // Zoom "+" button
+ Image {
+ id: zoomIn
+ source: "../res/buttons/zoom.png"
+
+ Text {
+ id: zoomInBtn
+ anchors.centerIn: parent
+ text: "+"
+ color: Constants.releasedButtonTextColor
+ font.pixelSize: 30
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/buttons/zoom_pressed.png"
+ zoomInBtn.color = Constants.pressedButtonTextColor
+ }
+ onReleased: {
+ parent.source = "../res/buttons/zoom.png"
+ zoomInBtn.color = Constants.releasedButtonTextColor
+ }
+
+ onClicked: {
+ //Some behavior
+ }
+ }
+ }
+
+ // Zoom "-" button
+ Image {
+ id: zoomOut
+ source: "../res/buttons/zoom.png"
+
+ Text {
+ id: zoomOutBtn
+ anchors.centerIn: parent
+ text: "-"
+ color: "white"
+ font.pixelSize: 30
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/buttons/zoom_pressed.png"
+ zoomOutBtn.color = Constants.pressedButtonTextColor
+ }
+ onReleased: {
+ parent.source = "../res/buttons/zoom.png"
+ zoomOutBtn.color = Constants.releasedButtonTextColor
+ }
+
+ onClicked: {
+ //Some behavior
+ }
+ }
+ }
+ } // column
+
+ // Options button
+ Image {
+ id: navOptions
+ anchors.top: parent.top
+ anchors.right: parent.right
+ source: "../res/nav/options.png"
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/nav/options_pressed.png"
+ }
+ onReleased: {
+ parent.source = "../res/nav/options.png"
+ }
+ onClicked: {
+ //Options screen
+ }
+ }
+ }
+ } //map
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ Image {
+ id: muteBtnImg
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 1/4 * muteBtnImg.width
+ source: "../res/nav/mute_off.png"
+ MouseArea {
+ anchors.fill: parent
+ onClicked: if (muteBtnImg.state === "off") {
+ muteBtnImg.state = "on"
+ muteBtnImg.source = "../res/nav/mute_off.png"
+ }
+ else {
+ muteBtnImg.source = "../res/nav/mute_on.png"
+ muteBtnImg.state = "off"
+ }
+ }
+ }
+
+ Image {
+ id: turnArrow
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: muteBtnImg.right
+ anchors.leftMargin: 1/20 * contentLoader.width
+ source: "../res/nav/turnArrow.png"
+ }
+
+ Text {
+ id: street
+ anchors.verticalCenter: cancel.verticalCenter
+ anchors.left: turnArrow.right
+ anchors.leftMargin: 1/20 * contentLoader.width
+ text: "0.2 mi on Cherry Hill Rd."
+ color: "White"
+ font.pixelSize: 20
+ }
+
+ Text {
+ id: timeToDest
+ anchors.verticalCenter: cancel.verticalCenter
+ anchors.right: cancel.left
+ anchors.rightMargin: 1/20 * contentLoader.width
+ text: "2 hrs 27 min"
+ color: "White"
+ font.pixelSize: 20
+ }
+
+ Image {
+ id: cancel
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+
+ source: "../res/buttons/long_oval_btn.png"
+
+ Image {
+ id: destIcon
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: cancel.left
+ anchors.leftMargin: Constants.fontSize
+ source: "../res/nav/dest_icon.png"
+ }
+
+ Text {
+ id: cancelText
+ anchors.centerIn: parent
+ text: "Cancel"
+ color: Constants.primaryColor
+ font.pixelSize: 20
+ }
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ cancel.source = "../res/buttons/long_oval_pressed_btn.png"
+ destIcon.source = "../res/nav/dest_icon_black.png"
+ cancelText.color = Constants.pressedButtonTextColor
+ }
+
+ onReleased: {
+ cancel.source = "../res/buttons/long_oval_btn.png"
+ destIcon.source = "../res/nav/dest_icon.png"
+ cancelText.color = Constants.primaryColor
+ }
+
+ onClicked: {
+ contentLoader.go("./views/NavigationNoRouteGridView.qml")
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationKeyboardView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationKeyboardView.qml
new file mode 100644
index 000000000..f5d19e762
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationKeyboardView.qml
@@ -0,0 +1,221 @@
+/**
+ * @file NavigationKeyboardView.qml
+ * @brief Navigation keyboard screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ Item {
+ id: navKeyboard
+ anchors.fill: parent
+
+ Item {
+ // 3/4 top screen
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+
+ // Text line with input text
+ TextInput {
+ id: inputText
+ anchors.top:parent.top
+ anchors.left:parent.left
+ maximumLength: 30
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize
+ text: dataContainer.routeText
+ }
+
+ // Keyboard
+ Column {
+ anchors.centerIn: parent
+ Row {
+ id: upperRow
+ property string qWERTY : "QWERTYUIOP"
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ Repeater {
+ model: 10
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: upperRow.qWERTY.charAt(index)
+ pixelSize: Constants.fontSize
+
+ onClicked: {
+ dataContainer.routeText += upperRow.qWERTY.charAt(index)
+ }
+ }
+ }
+ }
+ Row {
+ id: middleRow
+ property string aSDFGH : "ASDFGHJKL"
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: "123"
+ pixelSize: 15
+ }
+ //--------------
+ Repeater {
+ model: 9
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: middleRow.aSDFGH.charAt(index)
+ pixelSize: Constants.fontSize
+
+ onClicked: {
+ dataContainer.routeText += middleRow.aSDFGH.charAt(index)
+ }
+ }
+ }
+ //--------------
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ onIsPressedChanged: {
+ hoverImg.source = isPressed ? "../res/nav/delete_icon_black.png" : "../res/nav/delete_icon.png";
+ }
+ Image {
+ id: hoverImg
+ anchors.centerIn: parent
+ source: "../res/nav/delete_icon.png"
+ }
+
+ onClicked: {
+ dataContainer.routeText = dataContainer.routeText.substring(0,dataContainer.routeText.length - 1)
+ }
+ }
+ }
+ Row {
+ id: lowerRow
+ property string zXCVBN : "ZXCVBNM"
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: "!@#"
+ pixelSize: 15
+ }
+ //-----------------
+ Repeater {
+ model: 7
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: lowerRow.zXCVBN.charAt(index)
+ pixelSize: Constants.fontSize
+
+ onClicked: {
+ dataContainer.routeText += lowerRow.zXCVBN.charAt(index)
+ }
+ }
+ }
+ //----------------
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: "Clear"
+ pixelSize: 12
+
+ onClicked: {
+ dataContainer.routeText = ""
+ }
+ }
+ //----------------
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: "Space"
+ pixelSize: 12
+
+ onClicked: {
+ dataContainer.routeText += " "
+ }
+ }
+ }
+
+ } // column
+
+ Image {
+ id: goBtn
+ anchors.right: parent.right
+ anchors.top: parent.top
+ source: "../res/buttons/short_oval_btn.png"
+
+ Text {
+ id: goText
+ anchors.centerIn: parent
+ text: "Go"
+ color: Constants.primaryColor
+ font.pixelSize: Constants.fontSize
+ }
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ goBtn.source = "../res/buttons/short_oval_btn_pressed.png"
+ goText.color = Constants.pressedButtonTextColor
+ }
+
+ onReleased: {
+ goBtn.source = "../res/buttons/short_oval_btn.png"
+ goText.color = Constants.primaryColor
+ }
+
+ onClicked: {
+ contentLoader.go("./views/NavigationInRouteGridView.qml")
+ }
+ }
+ }
+ } // 3/4 top screen
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+ BackButton { anchors.centerIn: parent }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationMenuView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationMenuView.qml
new file mode 100644
index 000000000..8b8b7ef26
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationMenuView.qml
@@ -0,0 +1,75 @@
+/**
+ * @file NavigationMenuView.qml
+ * @brief Navigation menu screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models"
+import "../controls"
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ Item {
+ anchors.fill: parent
+ GridMenu {
+ id: menu
+ model: NavigationMenuModel {}
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: bottomPanel.top
+ delegate: GridItem {
+ width: menu.width / menu.columnsOnPage
+ height: menu.height / menu.rows
+ OvalButton {
+ text: title
+ onReleased: contentLoader.go(qml)
+ anchors.centerIn: parent
+ fontSize: Constants.fontSize
+ }
+ }
+ }
+
+ Item {
+ id: bottomPanel
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ height: 1/4 * parent.height
+ width: parent.width
+
+ BackButton { anchors.centerIn: parent }
+ }
+ }
+}
+
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationNoRouteGridView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationNoRouteGridView.qml
new file mode 100644
index 000000000..d4fbb9f4e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/NavigationNoRouteGridView.qml
@@ -0,0 +1,205 @@
+/**
+ * @file NavigationNoRouteGridView.qml
+ * @brief Navigation no route screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ Item {
+ id: navNoRoute
+ anchors.fill: parent
+
+ Image {
+ // 3/4 top screen
+ id: map
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ source: "../res/nav/map.png"
+
+ Image {
+ id: compas
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 1/4 * compas.width
+ anchors.left: parent.left
+ anchors.leftMargin: 1/4 * compas.width
+ source: "../res/nav/compass.png"
+ }
+
+ Column {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: compas.horizontalCenter
+ spacing: 1/8 * parent.height
+
+ // Zoom "+" button
+ Image {
+ id: zoomIn
+ source: "../res/buttons/zoom.png"
+
+ Text {
+ id: zoomInBtn
+ anchors.centerIn: parent
+ text: "+"
+ color: "white"
+ font.pixelSize: Constants.fontSize
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/buttons/zoom_pressed.png"
+ zoomInBtn.color = Constants.pressedButtonTextColor
+ }
+ onReleased: {
+ parent.source = "../res/buttons/zoom.png"
+ zoomInBtn.color = Constants.releasedButtonTextColor
+ }
+
+ onClicked: {
+ //Some behavior
+ }
+ }
+ }
+
+ // Zoom "-" button
+ Image {
+ id: zoomOut
+ source: "../res/buttons/zoom.png"
+
+ Text {
+ id: zoomOutBtn
+ anchors.centerIn: parent
+ text: "-"
+ color: "white"
+ font.pixelSize: Constants.fontSize
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/buttons/zoom_pressed.png"
+ zoomOutBtn.color = Constants.pressedButtonTextColor
+ }
+ onReleased: {
+ parent.source = "../res/buttons/zoom.png"
+ zoomOutBtn.color = Constants.releasedButtonTextColor
+ }
+
+ onClicked: {
+ //Some behavior
+ }
+ }
+ }
+ } // column
+
+ // Options button
+ Image {
+ id: navOptions
+ anchors.top: parent.top
+ anchors.right: parent.right
+ source: "../res/nav/options.png"
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/nav/options_pressed.png"
+ }
+ onReleased: {
+ parent.source = "../res/nav/options.png"
+ }
+ onClicked: {
+ //Options screen
+ }
+ }
+ }
+ } //map
+
+ Item {
+ // 1/4 bottom screen
+ id: bottomPart
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ // Destination search button
+ Image {
+ id: destSearch
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ source: "../res/buttons/longest_oval_btn.png"
+
+ Image {
+ id: destIcon
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 15
+ source: "../res/nav/dest_icon.png"
+ }
+
+ Text {
+ id: destText
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: destIcon.right
+ anchors.leftMargin: 5
+ text: "Destination"
+ color: Constants.primaryColor
+ font.pixelSize: 20
+ }
+
+ MouseArea {
+ anchors.fill: parent
+
+ onPressed: {
+ destSearch.source = "../res/buttons/longest_oval_btn_pressed.png"
+ destIcon.source = "../res/nav/dest_icon_black.png"
+ destText.color = Constants.pressedButtonTextColor
+ }
+
+ onReleased: {
+ destSearch.source = "../res/buttons/longest_oval_btn.png"
+ destIcon.source = "../res/nav/dest_icon.png"
+ destText.color = Constants.primaryColor
+ }
+
+ onClicked: {
+ contentLoader.go("./views/NavigationMenuView.qml")
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/PhoneKeyboardView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/PhoneKeyboardView.qml
new file mode 100644
index 000000000..4b217cf9f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/PhoneKeyboardView.qml
@@ -0,0 +1,171 @@
+/**
+ * @file PhoneKeyboardView.qml
+ * @brief Phone keyboard screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../models"
+import "../models/Constants.js" as Constants
+
+GeneralView{
+ Component.onCompleted: phoneKeyboard.changeColorOfActiveButtons()
+
+ Item {
+ function changeColorOfActiveButtons() {
+ for (var i = 0; i < contactsListModel.count; i++) {
+ activeButtons[contactsListModel.get(i).name[0].toUpperCase()] = true
+ }
+ }
+
+ id: phoneKeyboard
+ anchors.fill: parent
+
+ property var activeButtons: {
+ "A": false, "B": false, "C": false, "D": false, "E": false,
+ "F": false, "G": false, "H": false, "I": false, "J": false,
+ "K": false, "L": false, "M": false, "N": false, "O": false,
+ "P": false, "Q": false, "R": false, "S": false, "T": false,
+ "U": false, "V": false, "W": false, "X": false, "Y": false, "Z": false
+ }
+
+ ContactsListModel {
+ id: contactsListModel
+ }
+
+ Item {
+ // 3/4 top screen
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Column {
+ anchors.centerIn: parent
+
+ Row {
+ id: upperRow
+ property string contentLoader : "ABCDEFGHI"
+ anchors.horizontalCenter: parent.horizontalCenter
+ Repeater {
+ model: 9
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ textColorDefault: phoneKeyboard.activeButtons[upperRow.contentLoader.charAt(index)]
+ ? Constants.primaryColor : Constants.inactiveButtonTextColor
+ text: upperRow.contentLoader.charAt(index)
+ pixelSize: Constants.fontSize
+ onIsPressedChanged: {
+ if (!isPressed){
+ if (phoneKeyboard.activeButtons[upperRow.contentLoader.charAt(index)]) {
+ dataContainer.contactsFirstLetter = text
+ contentLoader.go("./views/ContactsListView.qml")
+ }
+ }
+ }
+ }
+ }
+ }
+
+ Row {
+ id: middleRow
+ property string contentLoader : "JKLMNOPQR"
+ anchors.horizontalCenter: parent.horizontalCenter
+ Repeater {
+ model: 9
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ textColorDefault: phoneKeyboard.activeButtons[middleRow.contentLoader.charAt(index)]
+ ? Constants.primaryColor : Constants.inactiveButtonTextColor
+ text: middleRow.contentLoader.charAt(index)
+ pixelSize: Constants.fontSize
+ onIsPressedChanged: {
+ if (!isPressed){
+ if (phoneKeyboard.activeButtons[middleRow.contentLoader.charAt(index)]) {
+ dataContainer.contactsFirstLetter = text
+ contentLoader.go("./views/ContactsListView.qml")
+ }
+ }
+ }
+ }
+ }
+ }
+
+ Row {
+ id: lowerRow
+ property string contentLoader : "STUVWXYZ"
+ anchors.horizontalCenter: parent.horizontalCenter
+ Repeater {
+ model: 8
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ textColorDefault: phoneKeyboard.activeButtons[lowerRow.contentLoader.charAt(index)]
+ ? Constants.primaryColor : Constants.inactiveButtonTextColor
+ text: lowerRow.contentLoader.charAt(index)
+ pixelSize: Constants.fontSize
+ onIsPressedChanged: {
+ if (!isPressed){
+ if (phoneKeyboard.activeButtons[lowerRow.contentLoader.charAt(index)]) {
+ dataContainer.contactsFirstLetter = text
+ contentLoader.go("./views/ContactsListView.qml")
+ }
+ }
+ }
+ }
+ }
+ CircleButton {
+ imgOff: "../res/buttons/preset_btn.png"
+ imgOn: "../res/buttons/preset_pressed_btn.png"
+ text: "123"
+ pixelSize: 20
+ }
+ }
+ }
+ }
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ BackButton { anchors.centerIn: parent}
+ }
+ }
+}
+
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/PhoneMenuGridView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/PhoneMenuGridView.qml
new file mode 100644
index 000000000..5cfdc5a30
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/PhoneMenuGridView.qml
@@ -0,0 +1,55 @@
+/**
+ * @file PhoneMenuGridView.qml
+ * @brief View for phone menu.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../models"
+import "../controls"
+
+GridMenu {
+ id: menu
+ model: PhoneMenuModel {}
+ delegate: GridItem {
+ width: menu.width / menu.columnsOnPage
+ height: menu.height / menu.rows
+ ClickableImage {
+ anchors.centerIn: parent
+ source: icon
+ onClicked: {
+ if(qml !== "") {
+ contentLoader.go(qml)
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/RadioPlayer.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/RadioPlayer.qml
new file mode 100644
index 000000000..f673327c6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/RadioPlayer.qml
@@ -0,0 +1,160 @@
+/**
+ * @file RadioPlayerView.qml
+ * @brief Parent for AM, FM, Sirius players screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../models"
+import "../models/Constants.js" as Constants
+
+Item {
+ id: radioPlayerView
+
+ property string radioType: ""
+ property string radioName: ""
+ property alias buttonHD: bot.children
+
+ property PlayerState playerState
+
+ Item {
+ // top 3/4 screen
+ id: upperContent
+ anchors.top: parent.top
+ anchors.left: parent.left
+ height: parent.height * 3/4
+ width: parent.width
+
+ Item {
+ // top part for buttons
+ id: top
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: parent.height * 1/4
+
+ OvalButton {
+ text: radioName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ }
+
+ OvalButton {
+ anchors.right: parent.right
+ anchors.top: parent.top
+ text: "Tune"
+ fontSize: Constants.fontSize
+ }
+ }
+
+ Item {
+ // mid part for information about song
+ id: mid
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ width: parent.width
+ height: parent.height / 2
+
+ Column {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+
+ Row {
+ Text {
+ id: radioChannelNameText
+ color: Constants.primaryColor
+ text: playerState.presets[0]
+ font.pixelSize: 45
+ }
+ Text {
+ anchors.bottom: radioChannelNameText.bottom
+ color: Constants.primaryColor
+ text: " " + radioType
+ font.pixelSize: 25
+ }
+ }
+
+ Text {
+ color: Constants.primaryColor
+ text: playerState.songName
+ font.pixelSize: 25
+ font.bold: true
+ }
+
+ Text {
+ color: Constants.primaryColor
+ text: playerState.albumName
+ font.pixelSize: 25
+ }
+ }
+ }
+
+ Item {
+ // bottom part for HD button (for FM radio)
+ id: bot
+ anchors.left: parent.left
+ anchors.bottom: parent. bottom
+ width: parent.width
+ height: parent.height * 1/4
+ }
+ }
+
+ Item {
+ // bottom 1/4 screen
+ id: lowerContent
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ // Line that divide screen in two parts
+ Rectangle {
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: 2
+ color: Constants.primaryColor
+ }
+
+ PresetRow {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ presets: playerState.presets
+ width: parent.width
+ onSelectedIndexChanged: {
+ radioChannelNameText.text = presets[selectedIndex];
+ }
+ }
+ }
+}
+
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLNavi.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLNavi.qml
new file mode 100644
index 000000000..ef98ffb10
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLNavi.qml
@@ -0,0 +1,223 @@
+/**
+ * @file SDLNavi.qml
+ * @brief SDL navigation screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import QtMultimedia 5.0
+import "../controls"
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+
+GeneralView {
+ applicationContext: true
+
+ MultiTouchArea {
+ anchors.fill: parent
+ id: wholeWindow
+
+ Row {
+ // Top items
+ id: topItems
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/6 * parent.height
+ spacing: Constants.sdlNaviSpacing
+
+ Rectangle {
+ anchors.top: parent.top
+ width: 1/5 * parent.width
+ height: 4/5 * parent.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+
+ Text {
+ text: dataContainer.currentApplication.hmiUIText.mainField1
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ Rectangle {
+ anchors.top: parent.top
+ width: 3/5 * parent.width - 2 * parent.spacing
+ height: parent.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+
+ Text {
+ text: dataContainer.currentApplication.hmiUIText.mainField2
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ Rectangle {
+ id: rightRectOfTopItems
+ anchors.top: parent.top
+ width: 1/5 * parent.width
+ height: 4/5 * parent.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+ Text {
+ text: dataContainer.currentApplication.hmiUIText.mainField3 ? dataContainer.currentApplication.hmiUIText.mainField3 : "field3"
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ }
+
+ Column {
+ // "+", "-" button at left
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ width: 1/12 * parent.width
+ height: 2/10 * parent.height + spacing
+ spacing: Constants.sdlNaviSpacing
+
+ GradientRectangle {
+ width: parent.width
+ height: 1/10 * wholeWindow.height
+ text: "+"
+ isCustomButton: true
+ customButtonID: 3
+ }
+ GradientRectangle {
+ width: parent.width
+ height: 1/10 * wholeWindow.height
+ text: "-"
+ isCustomButton: true
+ customButtonID: 4
+ }
+ }
+
+ Column {
+ anchors.right: parent.right
+ anchors.top: topItems.bottom
+ width: 1/6 * parent.width
+ height: 2/10 * parent.height + spacing
+ spacing: Constants.sdlNaviSpacing
+
+ Rectangle {
+ width: parent.width
+ height: 1/10 * wholeWindow.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+ Text {
+ text: ""
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ Rectangle {
+ width: parent.width
+ height: 1/10 * wholeWindow.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+ Text {
+ text: dataContainer.currentApplication.hmiUIText.mainField4 ? dataContainer.currentApplication.hmiUIText.mainField4 : "mainField4"
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ }
+
+ Row {
+ // bottom items
+ id: bottomItems
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/6 * parent.height
+ spacing: Constants.sdlNaviSpacing
+
+ GradientRectangle {
+ anchors.bottom: parent.bottom
+ width: 1/3 * parent.width
+ height: parent.height
+ text: "Menu"
+ isCustomButton: true
+ customButtonID: 1
+ }
+ Rectangle {
+ anchors.bottom: parent.bottom
+ width: 1/3 * parent.width - 2 * parent.spacing
+ height: parent.height
+ color: Constants.sdlNaviTransparentItemColor
+ radius: 5
+ Text {
+ text: "mainField5"
+ anchors.fill: parent
+ font.pixelSize: Constants.fontSize
+ color: "white"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ GradientRectangle {
+ anchors.bottom: parent.bottom
+ width: 1/3 * parent.width
+ height: parent.height
+ text: "Custom Button"
+ isCustomButton: true
+ customButtonID: 2
+ }
+ }
+
+ GradientRectangle {
+ anchors.right: parent.right
+ anchors.bottom: bottomItems.top
+ anchors.bottomMargin: Constants.sdlNaviSpacing
+ width: 1/6 * parent.width
+ height: 1/10 * parent.height
+ text: "Options"
+ fontSize: Constants.fontSize
+ onReleased: {
+ contentLoader.go("./views/SDLPlayerOptionsListView.qml", dataContainer.currentApplication.appId)
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLNonMediaView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLNonMediaView.qml
new file mode 100644
index 000000000..422474f4a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLNonMediaView.qml
@@ -0,0 +1,179 @@
+/**
+ * @file SDLNonMediaView.qml
+ * @brief SDL non media screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+import QtQuick 2.0
+import "../models"
+import "../controls"
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+import "../hmi_api/Common.js" as Common
+
+GeneralView {
+ applicationContext: true
+
+ Item {
+ id: upperContent
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+
+ Item {
+ id: topButtonRow
+ // top 1/4 of screen
+ width: parent.width
+ height: 1/4 * parent.height
+
+ PagedFlickable {
+ anchors.verticalCenter: parent.verticalCenter
+ width: parent.width
+ elementWidth: Constants.ovalButtonWidth
+ spacing: (width - 4 * elementWidth) / 3
+ snapTo: elementWidth + spacing
+
+ OvalButton {
+ text: "Options"
+ onClicked: { contentLoader.go("./views/SDLPlayerOptionsListView.qml") }
+ }
+
+ Repeater {
+ model: dataContainer.currentApplication.softButtons ?
+ dataContainer.currentApplication.softButtons.count :
+ 0
+ delegate:
+ SoftButton {
+ appId: dataContainer.currentApplication.appId
+ button: dataContainer.currentApplication.softButtons.get(index)
+ }
+ }
+ }
+ }
+
+ Column {
+ id: midContent
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: topButtonRow.bottom
+ anchors.left: parent.left
+
+ Text {
+ id: deviceName
+ width: parent.width
+ height: 1/5 * parent.height
+ text: "Device: " + dataContainer.currentApplication.deviceName
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+
+ Row {
+ width: parent.width
+ height: 4/5 * parent.height
+ spacing: Constants.margin
+
+ Image {
+ id: image
+ height: parent.height
+ width: height
+ source: dataContainer.currentApplication.hmiUIText.image
+ }
+
+ Column {
+ height: parent.height
+ width: parent.width - image.width - parent.spacing
+ spacing: Constants.margin
+
+ Text {
+ id: text1
+ width: parent.width
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: dataContainer.hmiUITextAlignment
+ text: dataContainer.currentApplication.hmiUIText.mainField1
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+
+ Text {
+ width: parent.width
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: dataContainer.hmiUITextAlignment
+ text: dataContainer.currentApplication.hmiUIText.mainField2
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+ }
+ }
+ }
+ }
+
+ Item {
+ // bottom 1/4 screen
+ id: lowerContent
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: parent.height * 1/4
+
+ PresetRow {
+ id: presetsRow
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ presets: Internal.getArrayForPresetRow(dataContainer.currentApplication)
+ width: parent.width
+ property bool clickProcessed
+
+ onPresetButtonPressed: {
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonEventMode.BUTTONDOWN, undefined)
+ }
+
+ onPresetButtonReleased: {
+ sdlButtons.onButtonEvent(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonEventMode.BUTTONUP, undefined)
+ }
+
+ onPresetButtonClicked: {
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonPressMode.SHORT, undefined)
+ }
+
+ onPresetButtonHold: {
+ sdlButtons.onButtonPress(Common.ButtonName.PRESET_0 + selectedIndex, Common.ButtonPressMode.LONG, undefined)
+ }
+ }
+ }
+
+ StatusBar {
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLPlayerOptionsListView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLPlayerOptionsListView.qml
new file mode 100644
index 000000000..8f3a0a17b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLPlayerOptionsListView.qml
@@ -0,0 +1,120 @@
+/**
+ * @file SDLPlayerOptionsListView.qml
+ * @brief SDL player options screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../models/Internal.js" as Internal
+
+GeneralView {
+ applicationContext: true
+ systemContext: Common.SystemContext.SYSCTXT_MENU
+ Item {
+ // 3/4 top screen
+ height: parent.height * 3/4
+ width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ ListView {
+ id: sdlPlayerOptionsListView
+ anchors.horizontalCenter: parent.horizontalCenter
+ width:parent.width
+ height:parent.height
+
+ model: dataContainer.currentApplication.currentSubMenu
+
+ delegate: Row {
+ spacing: Constants.iconItemListSpacing
+ Icon {
+ source: model.icon
+ width: Constants.iconItemListSize
+ height: Constants.iconItemListSize
+
+ MouseArea {
+ anchors.fill: parent
+ enabled: model.icon.value !== undefined
+
+ onPressed: text.press()
+ onReleased: text.release()
+ onCanceled: text.release()
+ onClicked: text.click()
+ }
+ }
+
+ ClickableText {
+ id: text
+ text: name + (type === Internal.MenuItemType.MI_SUBMENU ? " >" : "")
+ width: sdlPlayerOptionsListView.width - x
+ elide: Text.ElideRight
+ defaultColor: type === Internal.MenuItemType.MI_PARENT ?
+ Constants.inactiveButtonTextColor :
+ Constants.primaryColor
+ pressedColor: type === Internal.MenuItemType.MI_PARENT ?
+ Constants.inactiveButtonTextColorPressed :
+ Constants.primaryColorPressed
+ font.pixelSize: Constants.titleFontSize
+
+ function click() {
+ console.debug("enter")
+ switch (type) {
+ case Internal.MenuItemType.MI_NODE:
+ sdlUI.onCommand(model.id, dataContainer.currentApplication.appId)
+ contentLoader.back()
+ break;
+ case Internal.MenuItemType.MI_SUBMENU:
+ case Internal.MenuItemType.MI_PARENT:
+ dataContainer.currentApplication.currentSubMenu = subMenu
+ break;
+ }
+ console.debug("exit")
+ }
+ onClicked: click()
+ }
+ }
+ }
+ }
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ BackButton { anchors.centerIn: parent }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLPlayerView.qml
new file mode 100644
index 000000000..4fff5aa82
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SDLPlayerView.qml
@@ -0,0 +1,79 @@
+/**
+ * @file SDLPlayerView.qml
+ * @brief SDL player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+
+GeneralView {
+ applicationContext: true
+ MediaPlayer {
+ id: mediaPlayer
+ onPlay: { sdlButtons.onButtonPress(Common.ButtonName.OK, Common.ButtonPressMode.SHORT, undefined) }
+ onPause: { sdlButtons.onButtonPress(Common.ButtonName.OK, Common.ButtonPressMode.SHORT, undefined) }
+ playerName: "SDL music"
+ playerType: "SDL"
+ image: dataContainer.currentApplication.hmiUIText.image
+ anchors.fill: parent
+
+ buttons: [
+ OvalButton {
+ text: dataContainer.currentApplication.appName
+ onReleased: { contentLoader.go("./views/MusicSourceView.qml") }
+ },
+
+ OvalButton {
+ text: "SDL Menu"
+ onReleased: { contentLoader.go("./views/ApplicationListView.qml") }
+ },
+
+ OvalButton {
+ text: "Options"
+ onReleased: { contentLoader.go("./views/SDLPlayerOptionsListView.qml") }
+ },
+
+ Repeater {
+ model: dataContainer.currentApplication.softButtons ?
+ dataContainer.currentApplication.softButtons.count :
+ 0
+
+ delegate: SoftButton {
+ appId: dataContainer.currentApplication.appId
+ button: dataContainer.currentApplication.softButtons.get(index)
+ }
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ScrollableMessageView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ScrollableMessageView.qml
new file mode 100644
index 000000000..72ca59688
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/ScrollableMessageView.qml
@@ -0,0 +1,173 @@
+/**
+ * @file ScrollableMessageView.qml
+ * @brief Scrollable Message View.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../hmi_api/Async.js" as Async
+import "../models/Constants.js" as Constants
+import "../models"
+import "../popups"
+
+GeneralView {
+ applicationContext: true
+ onLeaveScreen: {
+ timer.stop()
+ dataContainer.scrollableMessageModel.running = false
+ DBus.sendReply(dataContainer.scrollableMessageModel.async, { __retCode: dataContainer.scrollableMessageModel.result })
+ }
+ Component.onCompleted: {
+ dataContainer.scrollableMessageModel.running = true
+ timer.start()
+ }
+ Timer {
+ id: timer
+ interval: dataContainer.scrollableMessageModel.timeout
+ onTriggered: {
+ dataContainer.scrollableMessageModel.result = Common.Result.SUCCESS
+ contentLoader.back()
+ }
+ }
+
+ Rectangle {
+ anchors.fill: parent
+ color: Constants.secondaryColor
+
+ Item {
+ // top 1/5 of screen
+ id: top
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: dataContainer.scrollableMessageModel.softButtons.count > 0 ? parent.height * 1/5 : 1
+
+ PagedFlickable {
+ id: flickRow
+ width: top.width
+ spacing: (width - elementWidth * 4) / 3
+ snapTo: Constants.ovalButtonWidth + spacing
+ elementWidth: Constants.ovalButtonWidth
+ Repeater {
+ model: dataContainer.scrollableMessageModel.softButtons ?
+ dataContainer.scrollableMessageModel.softButtons.count :
+ 0
+ delegate:
+ SoftButton {
+ appId: dataContainer.scrollableMessageModel.appId
+ button: dataContainer.scrollableMessageModel.softButtons.get(index)
+ onKeepContext: { timer.restart() }
+ onDefaultAction: {
+ dataContainer.scrollableMessageModel.result = Common.Result.ABORTED
+ contentLoader.back()
+ }
+ }
+ }
+ }
+ }
+
+ Item {
+ id: middle
+ anchors.top: top.bottom
+ anchors.left: parent.left
+ anchors.bottom: bottom.top
+ width: parent.width
+ clip: true
+
+ Flickable {
+ id:flickable
+ anchors.fill: middle
+ flickableDirection: Flickable.VerticalFlick
+ contentWidth: longMessageText.width
+ contentHeight: longMessageText.height
+ clip: true
+
+ Text {
+ id: longMessageText
+ wrapMode: Text.Wrap
+ width: middle.width
+ text: dataContainer.scrollableMessageModel.longMessageText
+ color: Constants.scrollableMessageTextColor
+ font.pixelSize: Constants.fontSize
+ }
+ }
+ Rectangle {
+ id: scrollbar
+ anchors.right: flickable.right
+ y: flickable.visibleArea.yPosition * flickable.height
+ width: Constants.scrollableMessageScrollBarWidth
+ height: flickable.visibleArea.heightRatio * flickable.height
+ visible: !(flickable.visibleArea.heightRatio > 1)
+ color: Constants.scrollableMessageScrollBarColor
+ }
+ }
+ Item {
+ // 1/5 bottom screen
+ id: bottom
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/5 * parent.height
+ OvalButton {
+ anchors.centerIn: parent
+ text: "Close"
+ onClicked: {
+ dataContainer.scrollableMessageModel.result = Common.Result.ABORTED
+ contentLoader.back()
+ }
+ }
+ }
+ }
+ /**
+ * Test Support Section
+ *
+ */
+ function getTimer(){
+ return timer
+ }
+ function getSoftButtonsListView(){
+ return softButtons
+ }
+ function getScrollbar(){
+ return scrollbar
+ }
+ function getTextArea(){
+ return middle
+ }
+ function getBackButton(){
+ return backButton
+ }
+ /**
+ * Test Support Section End
+ */
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SimulationView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SimulationView.qml
new file mode 100644
index 000000000..b79cddf8c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SimulationView.qml
@@ -0,0 +1,293 @@
+/**
+ * @file SimulationView.qml
+ * @brief Area of screen responsible for simulation actions
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import QtQuick.Controls 1.0
+import QtQuick.Controls.Styles 1.0
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../views"
+import "../popups"
+import "../models/Constants.js" as Constants
+
+Rectangle {
+ width: controlArea.width + controlArea.anchors.margins
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ color: Constants.panelColor
+
+ Item {
+ id: showArea
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: parent.height - (controlArea.childrenRect.height + controlArea.anchors.margins)
+
+ ExitAllApplicationsPopup {
+ id: exitAllApplicationsPopup
+ anchors.fill: parent
+ visible: false
+ }
+
+ VehicleInfoPopUp {
+ id: viPopUp
+ anchors.fill: parent
+ }
+
+ TBTClientStatePopUp {
+ id: tbtClientStatePopUp
+ anchors.fill: parent
+ visible: false
+ }
+ }
+
+ Item {
+ id: controlArea
+ anchors.bottom: parent.bottom
+ anchors.margins: Constants.panelPadding
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: table.width
+
+ ListModel {
+ id: languagesList
+
+ Component.onCompleted: {
+ for (var name in Common.Language) {
+ if (settingsContainer.sdlLanguagesList.indexOf(Common.Language[name]) != -1) {
+ append({name: name.replace('_', '-')});
+ }
+ }
+ }
+ }
+
+ Text {
+ id: label
+ text: "Languages"
+ color: Constants.panelTextColor
+ anchors.bottom: table.top
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ Grid {
+ id: table
+ spacing: 5
+ columns: 2
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: globalProperties.top
+
+ Text {
+ text: "HMI UI"
+ color: Constants.panelTextColor
+ }
+
+ Text {
+ text: "HMI TTS + VR"
+ color: Constants.panelTextColor
+ }
+
+ ComboBox {
+ width: table.width / table.columns - table.spacing
+ model: languagesList
+ onCurrentIndexChanged: {
+ dataContainer.hmiUILanguage = settingsContainer.sdlLanguagesList[currentIndex];
+ sdlUI.onLanguageChange(dataContainer.hmiUILanguage);
+ }
+ z: 1000
+ }
+
+ ComboBox {
+ width: table.width / table.columns - table.spacing
+ model: languagesList
+ onCurrentIndexChanged: {
+ dataContainer.hmiTTSVRLanguage = settingsContainer.sdlLanguagesList[currentIndex];
+ sdlTTS.onLanguageChange(dataContainer.hmiTTSVRLanguage);
+ sdlVR.onLanguageChange(dataContainer.hmiTTSVRLanguage);
+ }
+ z: 1000
+ }
+
+ Text {
+ text: "Application UI"
+ color: Constants.panelTextColor
+ }
+
+ Text {
+ text: "Application TTS + VR"
+ color: Constants.panelTextColor
+ }
+
+ Text {
+ id: uiLanguageLabel
+ color: Constants.panelTextColor
+ text: " "
+ Connections {
+ target: dataContainer
+ onCurrentApplicationChanged: {
+ for (var s in Common.Language) {
+ if (Common.Language[s] === dataContainer.currentApplication.hmiDisplayLanguageDesired) {
+ uiLanguageLabel.text = s;
+ }
+ }
+ }
+ }
+ }
+
+ Text {
+ id: ttsLanguageLabel
+ color: Constants.panelTextColor
+ text: " "
+ Connections {
+ target: dataContainer
+ onCurrentApplicationChanged: {
+ for (var s in Common.Language) {
+ if (Common.Language[s] === dataContainer.currentApplication.languageTTSVR) {
+ ttsLanguageLabel.text = s;
+ }
+ }
+ }
+ }
+ }
+
+ PushButton {
+ id: vehicleInfo
+ label: "Vehicle info"
+ toggleMode: true
+ onPressed: {
+ viPopUp.show();
+ }
+ onUnpressed: {
+ viPopUp.hide();
+ }
+ }
+
+ PushButton {
+ id: tbtClientState
+ label: "TBT Client state"
+ toggleMode: true
+ onPressed: {
+ tbtClientStatePopUp.show();
+ }
+ onUnpressed: {
+ tbtClientStatePopUp.hide();
+ }
+ }
+
+ PushButton {
+ label: "Exit application"
+ onClicked: {
+ if (dataContainer.applicationContext) {
+ sdlBasicCommunication.onExitApplication(dataContainer.currentApplication.appId)
+ }
+ }
+ }
+
+ PushButton {
+ id: exitAllAppsButton
+ label: "Exit all apps"
+ toggleMode: true
+ onPressed: {
+ exitAllApplicationsPopup.show()
+
+ }
+ onUnpressed: {
+ exitAllApplicationsPopup.hide()
+ }
+ Connections {
+ target: exitAllApplicationsPopup
+ onVisibleChanged: {
+ if (!exitAllApplicationsPopup.visible) {
+ exitAllAppsButton.state = "unpressed"
+ }
+ }
+ }
+ }
+
+ CheckBox {
+ style: CheckBoxStyle {
+ label: Text {
+ color: Constants.panelTextColor
+ text: "Use URL"
+ }
+ }
+ }
+
+ CheckBox {
+ style: CheckBoxStyle {
+ label: Text {
+ color: Constants.panelTextColor
+ text: "DD"
+ }
+ }
+ onClicked: {
+ if (checked) {
+ dataContainer.driverDistractionState =
+ Common.DriverDistractionState.DD_ON;
+ } else {
+ dataContainer.driverDistractionState =
+ Common.DriverDistractionState.DD_OFF;
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ id: globalProperties
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ height: listGlobalProperties.height + Constants.panelPadding
+ border.color: Constants.panelTextColor
+ border.width: 1
+ color: Constants.panelColor
+ Column {
+ id: listGlobalProperties
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: Constants.panelPadding / 4
+ Text {
+ text: "HELP_PROMPT: " + dataContainer.currentApplication.helpPrompt
+ color: Constants.panelTextColor
+ }
+ Text {
+ text: "TIMEOUT_PROMPT: " + dataContainer.currentApplication.timeoutPrompt
+ color: Constants.panelTextColor
+ }
+ Text {
+ text: "AUTOCOMPLETE_TEXT: " // TODO(ALeshin): Function didn' realized yet
+ color: Constants.panelTextColor
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SiriusPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SiriusPlayerView.qml
new file mode 100644
index 000000000..e5d214954
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/SiriusPlayerView.qml
@@ -0,0 +1,46 @@
+/**
+ * @file SiriusPlayerView.qml
+ * @brief Sirius player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+import "../controls"
+
+GeneralView {
+ RadioPlayer {
+ id: siriusRadioPlayer
+ anchors.fill: parent
+ radioType: ""
+ radioName: "Sirius"
+
+ playerState: dataContainer.siriusPlayerState
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/TurnByTurnView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/TurnByTurnView.qml
new file mode 100644
index 000000000..a69a86a40
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/TurnByTurnView.qml
@@ -0,0 +1,202 @@
+/**
+ * @file TurnByTurnView.qml
+ * @brief View for TurnByTurn.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../models"
+
+GeneralView {
+ applicationContext: true
+
+ Item {
+ id: turnByTurnView
+ anchors.fill: parent
+
+ Item {
+ // top 3/4 of screen
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: parent.height * 3/4
+
+ Item {
+ // row of oval buttons
+ id: ovalButtonsRow
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+
+ PagedFlickable {
+ id: buttonsRow
+ width: parent.width
+ spacing: (width - 4 * elementWidth) / 3
+ anchors.verticalCenter: parent.verticalCenter
+ snapTo: Constants.ovalButtonWidth + spacing
+ elementWidth: Constants.ovalButtonWidth
+
+ OvalButton {
+ id: turnListButton
+ text: "TurnList"
+ onClicked: {
+ console.log("Go to TurnListView");
+ contentLoader.go("./views/TurnListView.qml");
+ }
+ }
+
+ Repeater {
+ model: dataContainer.currentApplication.navigationSoftButtons ?
+ dataContainer.currentApplication.navigationSoftButtons.count :
+ 0
+ delegate:
+ SoftButton {
+ appId: dataContainer.currentApplication.appId
+ button: dataContainer.currentApplication.navigationSoftButtons.get(index)
+ }
+ }
+ }
+ }
+
+ Column {
+ // Picture + text information + media clock
+ id: mediaContent
+ width: parent.width
+ height: 3/4 * parent.height
+ anchors.left: parent.left
+ anchors.top: ovalButtonsRow.bottom
+
+ Row {
+ // picture + text info
+ width: parent.width
+ height: 3/4 * parent.height
+ spacing: Constants.margin
+
+ Icon {
+ id: image
+ height: parent.height
+ width: height
+ source: dataContainer.currentApplication.navigationModel.turnIcon
+ }
+
+ Column {
+ // text info
+ id: textInfo
+ height: parent.height
+ width: parent.width - image.width - parent.spacing
+ spacing: (height - 5 * navText1.height) / 4
+
+ Text {
+ id: navText1
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: dataContainer.currentApplication.navigationModel.text1
+ font.pixelSize: Constants.fontSize
+ visible: dataContainer.currentApplication.navigationModel.text1
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: dataContainer.currentApplication.navigationModel.text2
+ font.pixelSize: Constants.fontSize
+ visible: dataContainer.currentApplication.navigationModel.text2
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: "Total distance: " + dataContainer.currentApplication.navigationModel.totalDistance
+ font.pixelSize: Constants.fontSize
+ visible: dataContainer.currentApplication.navigationModel.totalDistance
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: "Time to destination: " + dataContainer.currentApplication.navigationModel.timeToDestination
+ font.pixelSize: Constants.fontSize
+ visible: dataContainer.currentApplication.navigationModel.timeToDestination
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: Constants.primaryColor
+ text: "ETA: " + dataContainer.currentApplication.navigationModel.eta
+ font.pixelSize: Constants.fontSize
+ visible: dataContainer.currentApplication.navigationModel.eta
+ }
+ }
+ }
+
+ Row {
+ anchors.horizontalCenter: parent.horizontalCenter
+ height: 1/4 * parent.height
+ width: 2/3 * parent.width
+
+ Rectangle {
+ id: coveredDistance
+ anchors.verticalCenter: parent.verticalCenter
+ height: Constants.distanceBarHeight
+ width: dataContainer.currentApplication.navigationModel.distanceToManeuver /
+ dataContainer.currentApplication.navigationModel.distanceToManeuverScale * parent.width
+ color: "white"
+ }
+
+ Rectangle {
+ anchors.verticalCenter: parent.verticalCenter
+ height: Constants.distanceBarHeight
+ width: parent.width - coveredDistance.width
+ color: Constants.primaryColor
+ }
+ }
+ }
+ }
+ }
+
+ Item {
+ // 1/4 bottom screen
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+ BackButton { anchors.centerIn: parent }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/TurnListView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/TurnListView.qml
new file mode 100644
index 000000000..bdd0b3d6c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/TurnListView.qml
@@ -0,0 +1,103 @@
+/**
+ * @file TurnListView.qml
+ * @brief View for TurnByTurn list.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../models/Constants.js" as Constants
+import "../hmi_api/Common.js" as Common
+
+GeneralView {
+ applicationContext: true
+
+ Item {
+ anchors.left: parent.left
+ anchors.top: parent.top
+ width: parent.width
+ height: 3/4 * parent.height
+
+ Item {
+ id: sotfButtons
+ width: parent.width
+ height: 1/4 * parent.height
+
+ PagedFlickable {
+ anchors.verticalCenter: parent.verticalCenter
+ width: parent.width
+ elementWidth: Constants.ovalButtonWidth
+ snapTo: elementWidth + spacing
+ spacing: (width - 4 * elementWidth) / 3
+
+ Repeater {
+ model: dataContainer.currentApplication.turnListSoftButtons ?
+ dataContainer.currentApplication.turnListSoftButtons.count :
+ 0
+ delegate:
+ SoftButton {
+ appId: dataContainer.currentApplication.appId
+ button: dataContainer.currentApplication.turnListSoftButtons.get(index)
+ }
+ }
+ }
+ }
+
+ ScrollableListView {
+ id: scrollableList
+ anchors.top: sotfButtons.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 3/4 * parent.height
+
+ model: dataContainer.currentApplication.turnList
+
+ delegate:
+ ListItem {
+ width: scrollableList.width
+ height: Constants.iconItemListSize
+ text: dataContainer.currentApplication.turnList.get(index).navigationText.fieldText
+ fontSize: Constants.fontSize
+ icon: dataContainer.currentApplication.turnList.get(index).turnIcon
+ }
+ }
+ }
+
+ Item {
+ // 1/4 bottom screen
+ id: back
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+ BackButton { anchors.centerIn: parent }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/UsbPlayerView.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/UsbPlayerView.qml
new file mode 100644
index 000000000..f8a2d3980
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/UsbPlayerView.qml
@@ -0,0 +1,61 @@
+/**
+ * @file UsbPlayerView.qml
+ * @brief USB player screen view.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+import QtQuick 2.0
+import "../hmi_api/Common.js" as Common
+import "../models/Constants.js" as Constants
+import "../controls"
+
+GeneralView {
+ category: Common.DeactivateReason.AUDIO
+ MediaPlayer {
+ id: usbPlayer
+ playerName: "USB"
+ anchors.fill: parent
+ playerState: dataContainer.usbPlayerState
+ image: playerState.albumImage
+
+ buttons: [
+ OvalButton {
+ text: usbPlayer.playerName
+ onReleased: contentLoader.go("./views/MusicSourceView.qml")
+ fontSize: Constants.fontSize
+ },
+
+ OvalButton {
+ text: "Browse"
+ fontSize: Constants.fontSize
+ }
+ ]
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/WarningInfo.qml b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/WarningInfo.qml
new file mode 100644
index 000000000..6228b63c7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_model_qt5/views/WarningInfo.qml
@@ -0,0 +1,135 @@
+/**
+ * @file WarningInfo.qml
+ * @brief Screen with warning information.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import QtQuick 2.0
+import "../controls"
+import "../models/Constants.js" as Constants
+
+Rectangle {
+ id: warningInfo
+ anchors.fill: parent
+ color: Constants.secondaryColor
+ Text {
+ anchors.top: parent.top
+ anchors.left: parent.left
+ height: 1/4 * parent.height
+ width: parent.width
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+
+ text: "WARNING!"
+ color: Constants.warningColor
+ font.pixelSize: Constants.titleFontSize
+ font.bold: true
+ style: Text.Raised
+ styleColor: "gray"
+ }
+
+ Text {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: Constants.margin
+ height: 1/2 * parent.height
+ width: parent.width
+ verticalAlignment: Text.AlignVCenter
+ horizontalAlignment: Text.AlignHCenter
+ wrapMode: Text.WordWrap
+
+ text: "This application is intended to be used as a demonstrative aid only, "
+ + "while the vehicle is parked. Don't use it while driving. <br /><br />"
+ + "Use extreme caution when using any device that takes your attention off the road. "
+ + "Ford recommends against the use of any hand-held device while driving and that you comply "
+ + "with all applicable laws. Your primary responsibility is the safe operation of the vehicle."
+ color: "white"
+ font.pixelSize: 25
+ font.bold: true
+ }
+
+ function showOkButton() {
+ okButtonAnimation.start()
+ }
+
+ Item {
+ id: ok
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ width: parent.width
+ height: 1/4 * parent.height
+ opacity: 0
+
+ SequentialAnimation
+ {
+ id: okButtonAnimation
+ // Decrease this value while debugging
+ PauseAnimation { duration: Constants.warningScreenDuration }
+ NumberAnimation {
+ target: ok
+ duration: Constants.animationDuration
+ property: "opacity"
+ from: 0; to: 1;
+ }
+ }
+
+ Image {
+ id: okButton
+ anchors.centerIn: parent
+ source: "../res/buttons/longest_oval_btn.png"
+
+ Text {
+ id: text
+ anchors.centerIn: parent
+ text: "OK"
+ font.pixelSize: Constants.fontSize
+ color: Constants.primaryColor
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed: {
+ parent.source = "../res/buttons/longest_oval_btn_pressed.png"
+ text.color = Constants.secondaryColor
+ }
+ onReleased: {
+ parent.source = "../res/buttons/longest_oval_btn.png"
+ text.color = Constants.primaryColor
+ }
+ onClicked: {
+ console.log("WarningInfo OkButton - on clicked enter");
+ warningInfo.visible = false
+ }
+ }
+ }
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/CMakeLists.txt b/SDL_Core/src/components/qt_hmi/qml_plugins/CMakeLists.txt
new file mode 100644
index 000000000..6ff595315
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/CMakeLists.txt
@@ -0,0 +1,41 @@
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# --- DBus plugin
+add_subdirectory(./dbus_adapter)
+
+# --- Hmi Framework plugin
+add_subdirectory(./hw_buttons)
+
+# --- Log4cxx plugin
+add_subdirectory(./log4cxx)
+
+# --- NamedPipeNotifier plugin
+add_subdirectory(./named_pipe_notifier)
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/CMakeLists.txt b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/CMakeLists.txt
new file mode 100644
index 000000000..2d970bbb7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/CMakeLists.txt
@@ -0,0 +1,116 @@
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+cmake_minimum_required(VERSION 2.8.11)
+
+set(components_dir ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
+set(dbus_dir ${components_dir}/dbus)
+set(codegen_dir ${dbus_dir}/codegen)
+set(codegen ${codegen_dir}/make_qml_dbus_cpp.py)
+set(parser ${codegen_dir}/ford_xml_parser.py)
+set(interfaces_dir ${components_dir}/interfaces)
+set(api_xml ${interfaces_dir}/QT_HMI_API.xml)
+add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qml_dbus.cc ${CMAKE_CURRENT_BINARY_DIR}/qml_dbus.h
+ COMMAND python ${codegen} --infile ${api_xml} --version ${qt_version} --outdir ${CMAKE_CURRENT_BINARY_DIR}
+ DEPENDS ${api_xml} ${codegen} ${parser}
+ COMMENT "Generating files:
+ ${CMAKE_CURRENT_BINARY_DIR}/qml_dbus.cc
+ ${CMAKE_CURRENT_BINARY_DIR}/qml_dbus.h
+ from:
+ ${api_xml} ..."
+)
+
+set(target DbusAdapter)
+set(destination com/ford/sdl/hmi/dbus_adapter)
+set(install_destination bin/hmi/plugins/${destination})
+set(library_name ${CMAKE_SHARED_LIBRARY_PREFIX}${target}${CMAKE_SHARED_LIBRARY_SUFFIX})
+
+set(CMAKE_AUTOMOC ON)
+set(SOURCES
+ dbus_plugin.cc
+ ${CMAKE_CURRENT_BINARY_DIR}/qml_dbus.cc
+ sdl_proxy.cc
+ hmi_proxy.cc
+ stream_qvariant.cc
+ moc_qml_dbus.cpp
+ dbus_controller.cc
+)
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_BINARY_DIR}/src/components
+)
+
+add_library(${target} SHARED ${SOURCES})
+
+if (${qt_version} MATCHES "4.8.5")
+ qt4_generate_moc(${CMAKE_CURRENT_BINARY_DIR}/qml_dbus.h moc_qml_dbus.cpp)
+ qt4_use_modules(${target} Core DBus Declarative)
+ set(model_dir ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt4/)
+ set(copy_destination ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt4/${destination})
+elseif (${qt_version} MATCHES "5.1.0")
+ qt5_generate_moc(${CMAKE_CURRENT_BINARY_DIR}/qml_dbus.h moc_qml_dbus.cpp)
+ qt5_use_modules(${target} Core DBus Qml)
+ set(model_dir ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt5/)
+ set(copy_destination ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt5/${destination})
+endif ()
+
+target_link_libraries(${target} apr-1 aprutil-1 log4cxx)
+
+add_custom_target(copy_library_${target} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/${library_name}
+ ${copy_destination}
+ DEPENDS ${target}
+ COMMENT "Copying library ${library_name}")
+file(COPY qmldir DESTINATION ${copy_destination})
+
+install(TARGETS ${target}
+ DESTINATION ${install_destination}
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
+ GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE
+)
+install(FILES qmldir DESTINATION ${install_destination})
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ add_custom_target(qmltypes_${target} ALL
+ COMMAND ${qmlplugindump_binary} -nonrelocatable com.ford.sdl.hmi.dbus_adapter 1.0 ${model_dir} > ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes 2>/dev/null || true
+ DEPENDS copy_library_${target}
+ )
+ add_custom_target(copy_qmltypes_${target} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
+ ${copy_destination}
+ DEPENDS qmltypes_${target}
+ )
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes DESTINATION ${install_destination})
+endif ()
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.cc b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.cc
new file mode 100644
index 000000000..7882cfc6d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.cc
@@ -0,0 +1,89 @@
+/**
+ * \file dbus_controller.cpp
+ * \brief DbusController class.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "dbus_controller.h"
+#include "interfaces/QT_HMI_API.h"
+#include <QtDBus/QDBusConnection>
+
+DBusController::DBusController(QObject *parent)
+ : QObject(parent),
+ message(NULL) {}
+
+void DBusController::addMessage(const QDBusMessage& message, fillRoutine fill,
+ int async_uid) {
+ delayedReply reply;
+ reply.message = message;
+ reply.fill = fill;
+ replies_[async_uid] = reply;
+}
+
+void DBusController::sendReply(QVariant asyncObject, QVariant data) {
+ int uid = asyncObject.toMap()["__async_uid"].toInt();
+ std::map<int, delayedReply>::iterator it = replies_.find(uid);
+ if (it != replies_.end()) {
+ QDBusMessage msg = it->second.message.createReply();
+ if (!it->second.fill(msg, data.toMap())) {
+ QDBusConnection::sessionBus()
+ .send(it->second.message.createErrorReply(QDBusError::InternalError,
+ QString::number(hmi_apis::Common_Result::INVALID_DATA)));
+ } else {
+ QDBusConnection::sessionBus().send(msg);
+ }
+ replies_.erase(it);
+ }
+}
+
+void DBusController::sendReply(QVariant data) {
+ if (!message)
+ return;
+ QDBusMessage msg = message->createReply();
+ if (!fill(msg, data.toMap())) {
+ QDBusConnection::sessionBus()
+ .send(message->createErrorReply(QDBusError::InternalError,
+ QString::number(hmi_apis::Common_Result::INVALID_DATA)));
+ } else {
+ QDBusConnection::sessionBus().send(msg);
+ }
+}
+
+void DBusController::sendError(QVariant asyncObject, QVariant data) {
+ int uid = asyncObject.toMap()["__async_uid"].toInt();
+ std::map<int, delayedReply>::iterator it = replies_.find(uid);
+ if (it != replies_.end()) {
+ QDBusMessage msg = it->second.message.createErrorReply(QDBusError::InternalError,
+ data.toString());
+ QDBusConnection::sessionBus().send(msg);
+ replies_.erase(it);
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.h b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.h
new file mode 100644
index 000000000..9fd1252b5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.h
@@ -0,0 +1,64 @@
+/**
+ * \file dbus_controller.h
+ * \brief DbusController class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_DBUS_CONTROLLER_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_DBUS_CONTROLLER_H_
+
+#include <QtDBus/QDBusMessage>
+#include <QtCore/QObject>
+#include <map>
+
+typedef bool (*fillRoutine)(QDBusMessage&, const QVariantMap&);
+
+class DBusController: public QObject {
+ struct delayedReply {
+ QDBusMessage message;
+ fillRoutine fill;
+ };
+ Q_OBJECT
+
+ public:
+ explicit DBusController(QObject *parent = 0);
+ void addMessage(const QDBusMessage& message, fillRoutine fill, int async_uid);
+ Q_INVOKABLE void sendReply(QVariant asyncObject, QVariant data);
+ Q_INVOKABLE void sendReply(QVariant data);
+ Q_INVOKABLE void sendError(QVariant asyncObject, QVariant data);
+ const QDBusMessage* message;
+ fillRoutine fill;
+
+ private:
+ std::map<int, delayedReply> replies_;
+};
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_DBUS_CONTROLLER_H_
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.cc b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.cc
new file mode 100644
index 000000000..0ea0d9eca
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.cc
@@ -0,0 +1,93 @@
+/**
+ * \file dbus_plugin.cpp
+ * \brief DbusPlugin class source file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "dbus_plugin.h"
+
+#include "hmi_proxy.h"
+#include "sdl_proxy.h"
+#include "optional_argument.h"
+#include "qml_dbus.h"
+#include "dbus_controller.h"
+
+#include <log4cxx/logger.h>
+#include <log4cxx/propertyconfigurator.h>
+
+#include <QtCore/QString>
+#include <QtDBus/QDBusConnection>
+
+#if QT_4
+# include <QtDeclarative/QDeclarativeContext>
+# include <QtDeclarative/QDeclarativeListReference>
+# include <QtDeclarative/QDeclarativeEngine>
+#elif QT_5
+# include <QtQml/QQmlContext>
+# include <QtQml/QQmlListReference>
+# include <QtQml/QQmlEngine>
+#endif // QT_VERSION
+log4cxx::LoggerPtr logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("DBusPlugin"));
+
+void DbusPlugin::registerTypes(const char *uri) {
+ log4cxx::PropertyConfigurator::configure("log4cxx.properties");
+
+ // @uri sdl.core.api
+ qmlRegisterType<HmiProxy>(uri, 1, 0, "HMIProxy");
+ qmlRegisterType<SdlProxy>(uri, 1, 0, "SDLProxy");
+
+ RegisterDbusMetatypes();
+ qDBusRegisterMetaType<OptionalArgument<int> >();
+ qDBusRegisterMetaType<OptionalArgument<QList<int> > >();
+ qDBusRegisterMetaType<OptionalArgument<QString> >();
+ qDBusRegisterMetaType<OptionalArgument<QStringList> >();
+ qDBusRegisterMetaType<OptionalArgument<bool> >();
+ qDBusRegisterMetaType<OptionalArgument<QList<bool> > >();
+ qDBusRegisterMetaType<OptionalArgument<double> >();
+ qDBusRegisterMetaType<OptionalArgument<QList<double> > >();
+
+ HmiProxy::api_adaptors_.Init(this);
+
+ QDBusConnection::sessionBus().registerObject("/", this);
+ QDBusConnection::sessionBus().registerService("com.ford.sdl.hmi");
+
+ dbusController_ = new DBusController();
+ HmiProxy::api_adaptors_.SetDBusController(dbusController_);
+}
+
+void DbusPlugin::initializeEngine(Engine *engine, const char *uri) {
+ engine->rootContext()->setContextProperty("DBus", dbusController_);
+}
+
+#if QT_4
+Q_EXPORT_PLUGIN2(DbusAdapter, DbusPlugin)
+#endif // QT_4
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.h b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.h
new file mode 100644
index 000000000..fb3deb5ce
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.h
@@ -0,0 +1,68 @@
+/**
+ * \file dbus_plugin.h
+ * \brief DbusPlugin class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_DBUS_PLUGIN_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_DBUS_PLUGIN_H_
+
+#include "qt_version.h"
+
+#if QT_4
+# include <QtDeclarative/QDeclarativeExtensionPlugin>
+typedef QDeclarativeExtensionPlugin ExtensionPlugin;
+typedef QDeclarativeEngine Engine;
+#elif QT_5
+# include <QtQml/QQmlExtensionPlugin>
+typedef QQmlExtensionPlugin ExtensionPlugin;
+typedef QQmlEngine Engine;
+#endif // QT_VERSION
+#include <QtDBus/QDBusContext>
+
+class DBusController;
+
+class DbusPlugin : public ExtensionPlugin, public QDBusContext {
+ Q_OBJECT
+
+#if QT_5
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
+#endif // QT_5
+
+ DBusController *dbusController_;
+
+ public:
+ void registerTypes(const char *uri);
+ void initializeEngine(Engine *engine, const char *uri);
+};
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_DBUS_PLUGIN_H_
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.cc b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.cc
new file mode 100644
index 000000000..bd9e6efea
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.cc
@@ -0,0 +1,46 @@
+/**
+ * \file hmiproxy.cpp
+ * \brief HmiProxy class source file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "hmi_proxy.h"
+#include <QtDBus/QDBusConnection>
+
+ApiAdaptors HmiProxy::api_adaptors_;
+
+HmiProxy::HmiProxy(Item *parent)
+ : Item(parent) {}
+
+void HmiProxy::componentComplete() {
+ Item::componentComplete();
+ api_adaptors_.SetApi(this);
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.h b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.h
new file mode 100644
index 000000000..7fa0e49bf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.h
@@ -0,0 +1,64 @@
+/**
+ * \file hmiproxy.h
+ * \brief HmiProxy class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_HMI_PROXY_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_HMI_PROXY_H_
+
+#include "qt_version.h"
+#include "qml_dbus.h"
+
+#if QT_4
+# include <QtDeclarative/QDeclarativeItem>
+typedef QDeclarativeItem Item;
+#elif QT_5
+# include <QtQuick/QQuickItem>
+typedef QQuickItem Item;
+#endif // QT_VERSION
+
+class HmiProxy : public Item {
+ Q_OBJECT
+ Q_DISABLE_COPY(HmiProxy)
+
+ public:
+ explicit HmiProxy(Item *parent = 0);
+ static ApiAdaptors api_adaptors_;
+
+ protected:
+ virtual void componentComplete();
+};
+
+QML_DECLARE_TYPE(HmiProxy)
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_HMI_PROXY_H_
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/metatype.h b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/metatype.h
new file mode 100644
index 000000000..6f2b54fc5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/metatype.h
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_METATYPE_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_METATYPE_H_
+
+#include <QMetaType>
+
+template<typename T>
+QMetaType::Type metatype();
+
+template<>
+inline QMetaType::Type metatype<int>() {
+ return QMetaType::Int;
+}
+
+template<>
+inline QMetaType::Type metatype<QString>() {
+ return QMetaType::QString;
+}
+
+template<>
+inline QMetaType::Type metatype<bool>() {
+ return QMetaType::Bool;
+}
+
+template<>
+inline QMetaType::Type metatype<double>() {
+ return QMetaType::Double;
+}
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_METATYPE_H_
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/optional_argument.h b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/optional_argument.h
new file mode 100644
index 000000000..61ed1c0b6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/optional_argument.h
@@ -0,0 +1,83 @@
+/**
+ * \file optional_argument.h
+ * \brief OptionalArgument struct header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_OPTIONAL_ARGUMENT_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_OPTIONAL_ARGUMENT_H_
+
+#include "qt_version.h"
+#include <QtDBus/QDBusArgument>
+
+template<class T>
+struct OptionalArgument {
+ T val;
+ bool presence;
+ explicit OptionalArgument(const T& value)
+ : val(value),
+ presence(true) {}
+ OptionalArgument()
+ : presence(false) {}
+};
+
+template<class T>
+inline
+QDBusArgument& operator << (QDBusArgument& arg, const OptionalArgument<T>& o) {
+ arg.beginStructure();
+ arg << o.presence << o.val;
+ arg.endStructure();
+ return arg;
+}
+
+template<class T>
+inline
+const QDBusArgument& operator >> (const QDBusArgument& arg, OptionalArgument<T>& o) {
+ arg.beginStructure();
+ arg >> o.presence >> o.val;
+ arg.endStructure();
+ return arg;
+}
+
+#if QT_4
+Q_DECLARE_METATYPE(QList<int>)
+#endif // QT_4
+
+Q_DECLARE_METATYPE(OptionalArgument<int>)
+Q_DECLARE_METATYPE(OptionalArgument<QString>)
+Q_DECLARE_METATYPE(OptionalArgument<bool>)
+Q_DECLARE_METATYPE(OptionalArgument<double>)
+
+Q_DECLARE_METATYPE(OptionalArgument<QList<int> >)
+Q_DECLARE_METATYPE(OptionalArgument<QStringList>)
+Q_DECLARE_METATYPE(OptionalArgument<QList<bool> >)
+Q_DECLARE_METATYPE(OptionalArgument<QList<double> >)
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_OPTIONAL_ARGUMENT_H_
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qml_dbus_common.h b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qml_dbus_common.h
new file mode 100644
index 000000000..76e181882
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qml_dbus_common.h
@@ -0,0 +1,232 @@
+/**
+ * \file qml_dbus_common.h
+ * \brief Contain utilities for DBus plugin.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_QML_DBUS_COMMON_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_QML_DBUS_COMMON_H_
+
+#include <QtDBus/QDBusContext>
+#include "optional_argument.h"
+#include "stream_qvariant.h"
+#include "metatype.h"
+
+enum ErrorCode {
+ Success = 0,
+ UnsupportedRequest,
+ UnsupportedResource,
+ Disallowed,
+ Rejected,
+ Aborted,
+ Ignored,
+ Retry,
+ InUse,
+ DataNotAvailable,
+ TimedOut,
+ InvalidData,
+ CharLimitExceeded,
+ InvalidId,
+ DuplicateName,
+ ApplicationNotRegistered,
+ WrongLanguage,
+ OutOfMemory,
+ TooManyPendingRequests,
+ NoAppsRegistered,
+ NoDevicesConnected,
+ Warnings,
+ GenericError,
+ UserDisallowed
+};
+
+inline void RaiseDbusError(QObject* adaptor, int code) {
+ QDBusContext* context = dynamic_cast<QDBusContext*>(adaptor->parent());
+ if (context) {
+ context->sendErrorReply(QDBusError::InternalError,
+ QString::number(static_cast<int>(code)));
+ }
+}
+
+template<typename T>
+inline void PutArgToMap(QVariantMap& map, const char* name, const T& v) {
+ map.insert(name, QVariant::fromValue(v));
+}
+
+inline bool GetArgFromMap(const QVariantMap& map, const char* name, int& v) {
+ QVariantMap::const_iterator it = map.find(name);
+ if (map.end() == it) return false;
+ if (it->type() != QVariant::Int) return false;
+ v = it->toInt();
+ return true;
+}
+
+inline bool GetArgFromMap(const QVariantMap& map, const char* name, QString& v) {
+ QVariantMap::const_iterator it = map.find(name);
+ if (map.end() == it) return false;
+ if (it->type() != QVariant::String) return false;
+ v = it->toString();
+ return true;
+}
+
+inline bool GetArgFromMap(const QVariantMap& map, const char* name, bool& v) {
+ QVariantMap::const_iterator it = map.find(name);
+ if (map.end() == it) return false;
+ if (it->type() != QVariant::Bool) return false;
+ v = it->toBool();
+ return true;
+}
+
+inline bool isNumber(QVariant v) {
+ QVariant::Type t = v.type();
+ return (t == QVariant::Double) || (t == QVariant::Int) ||
+ (t == QVariant::UInt) || (t == QVariant::LongLong) ||
+ (t == QVariant::ULongLong);
+}
+
+inline bool GetArgFromMap(const QVariantMap& map, const char* name, double& v) {
+ QVariantMap::const_iterator it = map.find(name);
+ if (map.end() == it) return false;
+ if (!isNumber(*it)) return false;
+ v = it->toDouble();
+ return true;
+}
+
+inline bool VariantToValue(const QVariant& variant, int& v) {
+ if (variant.type() != QVariant::Int) return false;
+ v = variant.toInt();
+ return true;
+}
+
+inline bool VariantToValue(const QVariant& variant, QString& v) {
+ if (variant.type() != QVariant::String) return false;
+ v = variant.toString();
+ return true;
+}
+
+inline bool VariantToValue(const QVariant& variant, bool& v) {
+ if (variant.type() != QVariant::Bool) return false;
+ v = variant.toBool();
+ return true;
+}
+
+inline bool VariantToValue(const QVariant& variant, double& v) {
+ if (variant.type() != QVariant::Double) return false;
+ v = variant.toDouble();
+ return true;
+}
+
+inline bool VariantToValue(const QVariant& variant, QStringList& v) {
+ if (variant.type() != QVariant::List) return false;
+ QList<QVariant> list = variant.toList();
+ for (QList<QVariant>::const_iterator i = list.begin(); i != list.end(); ++i) {
+ if (i->type() != QVariant::String) return false;
+ v.append(i->toString());
+ }
+ return true;
+}
+
+template<typename T>
+bool VariantToValue(const QVariant& variant, QList<T>& v) {
+ if (variant.type() != QVariant::List) return false;
+ QList<T> spare;
+ QList<QVariant> list = variant.toList();
+ for (QList<QVariant>::const_iterator i = list.begin(); i != list.end(); ++i) {
+ QVariant::Type type = i->type();
+// Although this function is declared as returning QVariant::Type(obsolete),
+// the return value should be interpreted as QMetaType::Type.
+// (http://qt-project.org/doc/qt-5.0/qtcore/qvariant.html#type)
+ QMetaType::Type type_casted = static_cast<QMetaType::Type>(type);
+ if (type_casted != metatype<T>()) {
+ return false;
+ }
+ spare.append(i->value<T>());
+ }
+ v.swap(spare);
+ return true;
+}
+
+template<typename T>
+inline QVariant ValueToVariant(const T& v) {
+ return QVariant::fromValue(v);
+}
+
+template<typename T>
+inline QVariant ValueToVariant(const QList<T>& v) {
+ QList<QVariant> list;
+ for (typename QList<T>::const_iterator i = v.begin(); i != v.end(); ++i)
+ list.append(ValueToVariant(*i));
+ return QVariant::fromValue(list);
+}
+
+template<typename T>
+inline void PutArgToMap(QVariantMap& map, const char* name, const QList<T>& v) {
+ QList<QVariant> list;
+ for (typename QList<T>::const_iterator i = v.begin(); i != v.end(); ++i)
+ list.append(ValueToVariant(*i));
+ map.insert(name, QVariant::fromValue(list));
+}
+
+template<typename T>
+inline bool GetArgFromMap(const QVariantMap& map, const char* name, QList<T>& v) {
+ QVariantMap::const_iterator it = map.find(name);
+ if (map.end() == it) return false;
+ const QVariant& variant = *it;
+ if (variant.type() != QVariant::List) return false;
+ QList<QVariant> list = variant.toList();
+ for (QList<QVariant>::const_iterator i = list.begin(); i != list.end(); ++i) {
+ T t;
+ bool ok = VariantToValue(*i, t);
+ if (!ok) return false;
+ v.append(t);
+ }
+ return true;
+}
+
+template<typename T>
+inline void PutArgToMap(QVariantMap& map, const char* name,
+ const OptionalArgument<T>& v) {
+ if (v.presence)
+ map.insert(name, ValueToVariant(v.val));
+}
+
+template<typename T>
+inline bool GetArgFromMap(const QVariantMap& map, const char* name,
+ OptionalArgument<T>& v) {
+ QVariantMap::const_iterator it = map.find(name);
+ if (map.end() == it || !it->isValid()) {
+ v.presence = false;
+ return true;
+ }
+ v.presence = true;
+ return GetArgFromMap(map, name, v.val);
+}
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_QML_DBUS_COMMON_H_
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qmldir b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qmldir
new file mode 100644
index 000000000..5f426d357
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qmldir
@@ -0,0 +1,3 @@
+module com.ford.sdl.hmi.dbus_adapter
+plugin DbusAdapter
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qt_version.h b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qt_version.h
new file mode 100644
index 000000000..cbad38ed5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/qt_version.h
@@ -0,0 +1,47 @@
+/**
+ * @file qt_version.h
+ * @brief Defines for check Qt version.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_QT_VERSION_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_QT_VERSION_H_
+
+#include <qglobal.h>
+
+#define QT_4 ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \
+ (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)))
+
+#define QT_5 ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \
+ (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)))
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_QT_VERSION_H_
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/sdl_proxy.cc b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/sdl_proxy.cc
new file mode 100644
index 000000000..c0b0a3d7f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/sdl_proxy.cc
@@ -0,0 +1,110 @@
+/**
+ * \file sdlproxy.cpp
+ * \brief SdlProxy class source file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "sdl_proxy.h"
+
+SdlProxy::SdlProxy(Item *parent)
+ : Item(parent) {
+
+ QDBusConnection::sessionBus().connect(
+ "com.ford.sdl.core", "/", "com.ford.sdl.core.BasicCommunication",
+ "OnAppRegistered", this, SLOT(OnAppRegistered(Common_HMIApplication)));
+ QDBusConnection::sessionBus().connect(
+ "com.ford.sdl.core", "/", "com.ford.sdl.core.BasicCommunication",
+ "OnAppUnregistered", this, SLOT(OnAppUnregistered(int, OptionalArgument<bool>)));
+ QDBusConnection::sessionBus().connect(
+ "com.ford.sdl.core", "/", "com.ford.sdl.core.BasicCommunication",
+ "PlayTone", this, SIGNAL(playTone()));
+ QDBusConnection::sessionBus().connect(
+ "com.ford.sdl.core", "/", "com.ford.sdl.core.UI", "ShowNotification",
+ this, SLOT(OnShowNotification(Common_TextFieldStruct,
+ OptionalArgument<Common_Image>, int)));
+}
+
+void SdlProxy::OnAppRegistered(Common_HMIApplication app) {
+ QVariantMap appMap;
+ appMap["appId"] = QVariant::fromValue(app.appID);
+ appMap["appName"] = QVariant::fromValue(app.appName);
+ appMap["deviceName"] = QVariant::fromValue(app.deviceName);
+ appMap["hmiDisplayLanguageDesired"] = QVariant::fromValue(app.hmiDisplayLanguageDesired);
+ appMap["isMediaApplication"] = QVariant::fromValue(app.isMediaApplication);
+
+ if (app.appType.presence) {
+ QList<QVariant> appType;
+ for (QList<int>::const_iterator it = app.appType.val.begin();
+ it != app.appType.val.end(); ++it) {
+ appType.append(QVariant::fromValue(*it));
+ }
+ appMap["appType"] = appType;
+ }
+
+ if (app.ngnMediaScreenAppName.presence) {
+ appMap["ngnMediaScreenAppName"] = QVariant::fromValue(app.ngnMediaScreenAppName.val);
+ }
+
+ if (app.icon.presence) {
+ appMap["icon"] = QVariant::fromValue(app.icon.val);
+ }
+
+ emit appRegistered(QVariant(appMap));
+}
+
+void SdlProxy::OnShowNotification(Common_TextFieldStruct text,
+ OptionalArgument<Common_Image> image,
+ int timeout) {
+ QVariantMap txtMap;
+ QVariant img;
+
+ txtMap["fieldName"] = text.fieldName;
+ txtMap["fieldText"] = text.fieldText;
+
+ if (image.presence) {
+ QVariantMap imgMap;
+ imgMap["imageType"] = image.val.imageType;
+ imgMap["value"] = image.val.value;
+ img = QVariant(imgMap);
+ }
+
+ emit showNotification(QVariant(txtMap), img, timeout);
+}
+
+void SdlProxy::OnAppUnregistered(int appId, OptionalArgument<bool> resume) {
+ QVariant resume_arg;
+
+ if (resume.presence) {
+ resume_arg = QVariant::fromValue(resume.val);
+ }
+
+ emit appUnregistered(appId, resume_arg);
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/sdl_proxy.h b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/sdl_proxy.h
new file mode 100644
index 000000000..81c1ee986
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/sdl_proxy.h
@@ -0,0 +1,76 @@
+/**
+ * \file sdlproxy.h
+ * \brief SdlProxy class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_SDL_PROXY_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_SDL_PROXY_H_
+
+#include "qml_dbus.h"
+#include "qt_version.h"
+
+#include <QtDBus/QDBusInterface>
+#if QT_4
+# include <QtDeclarative/QDeclarativeItem>
+typedef QDeclarativeItem Item;
+#elif QT_5
+# include <QtQuick/QQuickItem>
+typedef QQuickItem Item;
+#endif // QT_VERSION
+
+class SdlProxy: public Item {
+ Q_OBJECT
+ Q_DISABLE_COPY(SdlProxy)
+
+ public:
+ explicit SdlProxy(Item* parent = 0);
+
+ private:
+ QDBusInterface *sdlBasicCommunicationInterface;
+
+ signals:
+ void appRegistered(QVariant application);
+ void appUnregistered(int appId, QVariant resume);
+ void playTone();
+ void showNotification(QVariant text, QVariant icon, int timeout);
+
+ private slots:
+ void OnAppRegistered(Common_HMIApplication);
+ void OnAppUnregistered(int appId, OptionalArgument<bool> resume);
+ void OnShowNotification(Common_TextFieldStruct text,
+ OptionalArgument<Common_Image> image,
+ int timeout);
+};
+
+QML_DECLARE_TYPE(SdlProxy)
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_SDL_PROXY_H_
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.cc b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.cc
new file mode 100644
index 000000000..a1ae3402c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.cc
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "stream_qvariant.h"
+
+std::basic_ostream<char>& operator<<(std::basic_ostream<char>& os,
+ const QVariant& value) {
+ switch (value.type()) {
+ case QVariant::Map: {
+ os << "{ ";
+ QVariantMap structure = value.toMap();
+ QMapIterator<QString, QVariant> i(structure);
+ while (i.hasNext()) {
+ i.next();
+ os << i.key() << ":" << i.value();
+ if (i.hasNext()) {
+ os << ", ";
+ }
+ }
+ os << " }";
+ } break;
+ case QVariant::List: {
+ os << "[ ";
+ QVariantList array = value.toList();
+ QListIterator<QVariant> i(array);
+ while (i.hasNext()) {
+ os << i.next();
+ if (i.hasNext()) {
+ os << ", ";
+ }
+ }
+ os << " ]";
+ } break;
+ default:
+ os << value.toString().toLatin1().data();
+ }
+
+ return os;
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.h b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.h
new file mode 100644
index 000000000..675b6d069
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.h
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_STREAM_QVARIANT_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_STREAM_QVARIANT_H_
+
+#include <QtCore/QVariant>
+#include <sstream>
+
+std::basic_ostream<char>& operator<<(std::basic_ostream<char>& os,
+ const QVariant& value);
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_STREAM_QVARIANT_H_
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/CMakeLists.txt b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/CMakeLists.txt
new file mode 100644
index 000000000..56a64b48b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/CMakeLists.txt
@@ -0,0 +1,85 @@
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+cmake_minimum_required(VERSION 2.8.11)
+
+set(target HWButtons)
+set(destination com/ford/sdl/hmi/hw_buttons)
+set(install_destination bin/hmi/plugins/${destination})
+set(library_name ${CMAKE_SHARED_LIBRARY_PREFIX}${target}${CMAKE_SHARED_LIBRARY_SUFFIX})
+
+set(CMAKE_AUTOMOC ON)
+set(SOURCES
+ attributed_mouse_event.cc
+ hmi_hwbuttons.cc
+ masked_container.cc
+)
+
+add_library(${target} SHARED ${SOURCES})
+
+if (${qt_version} MATCHES "4.8.5")
+ qt4_use_modules(${target} Core Gui Declarative)
+ set(model_dir ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt4/)
+ set(copy_destination ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt4/${destination})
+elseif (${qt_version} MATCHES "5.1.0")
+ qt5_use_modules(${target} Core Qml Quick)
+ set(model_dir ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt5/)
+ set(copy_destination ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt5/${destination})
+endif ()
+
+add_custom_target(copy_library_${target} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/${library_name}
+ ${copy_destination}
+ DEPENDS ${target}
+ COMMENT "Copying library ${library_name}")
+file(COPY qmldir DESTINATION ${copy_destination})
+
+install(TARGETS ${target}
+ DESTINATION ${install_destination}
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
+ GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE
+)
+install(FILES qmldir DESTINATION ${install_destination})
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ add_custom_target(qmltypes_${target} ALL
+ COMMAND ${qmlplugindump_binary} -nonrelocatable com.ford.sdl.hmi.hw_buttons 1.0 ${model_dir} > ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes 2>/dev/null
+ DEPENDS copy_library_${target}
+ )
+ add_custom_target(copy_qmltypes_${target} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
+ ${copy_destination}
+ DEPENDS qmltypes_${target}
+ )
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes DESTINATION ${install_destination})
+endif ()
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.cc b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.cc
new file mode 100644
index 000000000..42e2e4f37
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.cc
@@ -0,0 +1,39 @@
+/**
+ * \file attributed_mouse_event.cpp
+ * \brief AttributedMouseEvent class source file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "attributed_mouse_event.h"
+
+Item *AttributedMouseEvent::item() const {
+ return item_;
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.h b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.h
new file mode 100644
index 000000000..b058e28f2
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.h
@@ -0,0 +1,64 @@
+/**
+ * \file attributed_mouse_event.h
+ * \brief AttributedMouseEvent class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_ATTRIBUTED_MOUSE_EVENT_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_ATTRIBUTED_MOUSE_EVENT_H_
+
+#include "qt_version.h"
+
+#include <QtCore/QObject>
+#if QT_4
+# include <QtDeclarative/QDeclarativeItem>
+typedef QDeclarativeItem Item;
+#elif QT_5
+# include <QtQuick/QQuickItem>
+typedef QQuickItem Item;
+#endif // QT_VERSION
+
+class AttributedMouseEvent : public QObject {
+ Q_OBJECT
+ Q_PROPERTY(Item* item READ item)
+
+ public:
+ explicit AttributedMouseEvent(Item *item) : item_(item) {}
+
+ Item *item() const;
+
+ private:
+ Item *item_;
+ Q_DISABLE_COPY(AttributedMouseEvent)
+};
+
+QML_DECLARE_TYPE(AttributedMouseEvent)
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_ATTRIBUTED_MOUSE_EVENT_H_
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.cc b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.cc
new file mode 100644
index 000000000..9f4f3b611
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.cc
@@ -0,0 +1,58 @@
+/**
+ * \file hmi_hwbuttons.cpp
+ * \brief HmiHWButtons class source file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "hmi_hwbuttons.h"
+
+#if QT_4
+# include <QtDeclarative/qdeclarative.h>
+# include <QtGui/QGraphicsColorizeEffect>
+#elif QT_5
+# include <QtQml>
+#endif // QT_VERSION
+
+#include "masked_container.h"
+#include "attributed_mouse_event.h"
+
+void HmiHWButtons::registerTypes(const char *uri) {
+ // @uri com.ford.hmi_framework
+ qmlRegisterType<MaskedContainer>(uri, 1, 0, "MaskedContainer");
+ qmlRegisterType<AttributedMouseEvent>();
+#if QT_4
+ qmlRegisterType<QGraphicsColorizeEffect>(uri, 1, 0, "Colorize");
+#endif // QT_4
+}
+
+#if QT_4
+Q_EXPORT_PLUGIN2(HWButtons, HmiHWButtons)
+#endif // QT_4
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.h b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.h
new file mode 100644
index 000000000..ee5fa5302
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.h
@@ -0,0 +1,59 @@
+/**
+ * \file hmi_hwbuttons.h
+ * \brief HmiHWButtons class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_HMI_HWBUTTONS_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_HMI_HWBUTTONS_H_
+
+#include "qt_version.h"
+
+#if QT_4
+# include <QtDeclarative/QDeclarativeExtensionPlugin>
+typedef QDeclarativeExtensionPlugin ExtensionPlugin;
+#elif QT_5
+# include <QtQml/QQmlExtensionPlugin>
+typedef QQmlExtensionPlugin ExtensionPlugin;
+#endif // QT_VERSION
+
+class HmiHWButtons : public ExtensionPlugin {
+ Q_OBJECT
+#if QT_5
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
+#endif // QT_5
+
+ public:
+ void registerTypes(const char *uri);
+};
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_HMI_HWBUTTONS_H_
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.cc b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.cc
new file mode 100644
index 000000000..ac9aedacc
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.cc
@@ -0,0 +1,155 @@
+/**
+ * \file masked_container.cpp
+ * \brief MaskedContainer class source file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "masked_container.h"
+
+#if QT_4
+# include <QtCore/QPointF>
+# include <QtGui/QGraphicsSceneMouseEvent>
+# define IMAGE "QDeclarativeImage"
+#elif QT_5
+# include <QtGui/QImage>
+# include <QtCore/QEvent>
+# define IMAGE "QQuickImage"
+#endif // QT_VERSION
+
+MaskedContainer::MaskedContainer(Item *parent)
+ : Item(parent),
+ mask_(NULL) {
+ setAcceptedMouseButtons(Qt::LeftButton);
+}
+
+void MaskedContainer::componentComplete() {
+ Item::componentComplete();
+
+ for (QObjectList::ConstIterator it = children().begin();
+ it != children().end(); ++it) {
+ Item *item = qobject_cast<Item*>(*it);
+ if (item && item->inherits(IMAGE) && item->isVisible()) {
+ images_.push_back(item);
+ }
+ }
+
+ int height = this->height();
+ int width =this->width();
+
+ for (int i = 0; i < images_.size(); ++i) {
+ Item *item = images_[i];
+ int itemWidth = item->width();
+ int itemHeight = item->height();
+ int itemX = item->x();
+ int itemY = item->y();
+ if (height < itemHeight + itemY)
+ height = itemHeight + itemY;
+ if (width < itemWidth + itemX)
+ width = itemWidth + itemX;
+ }
+
+ setHeight(height);
+ setWidth(width);
+
+ mask_ = new int[height * width];
+ std::fill(mask_, mask_ + height * width, -1);
+
+ for (int i = 0; i < images_.size(); ++i) {
+ Item *item = images_[i];
+ int itemWidth = item->width();
+ int itemHeight = item->height();
+ int itemX = item->x();
+ int itemY = item->y();
+
+ QUrl url = item->property("source").toUrl();
+ QImage img(url.path());
+ const QRgb* bits = reinterpret_cast<const QRgb*>(img.constBits());
+ for (int x = 0; x < itemWidth; ++x) {
+ for (int y = 0; y < itemHeight; ++y) {
+ if (qAlpha(bits[y * itemWidth + x]) > 128) {
+ mask_[(itemY + y) * width + (x + itemX)] = i;
+ }
+ }
+ }
+ }
+}
+
+void MaskedContainer::mousePressEvent(MouseEvent *mouse) {
+#if QT_4
+ qreal x = mouse->pos().x();
+ qreal y = mouse->pos().y();
+#elif QT_5
+ int x = mouse->x();
+ int y = mouse->y();
+#endif // QT_VERSION
+
+ if (width() * y + x > width() * height()) {
+ mouse->ignore();
+ } else {
+ int idx = mask_[indexOfMask(x, y)];
+ if (idx >= 0) {
+ AttributedMouseEvent ev(images_[idx]);
+ emit pressed(&ev);
+ grabMouse();
+ mouse->accept();
+ } else {
+ mouse->ignore();
+ }
+ }
+}
+
+void MaskedContainer::mouseReleaseEvent(MouseEvent *mouse) {
+#if QT_4
+ qreal x = mouse->pos().x();
+ qreal y = mouse->pos().y();
+#elif QT_5
+ int x = mouse->x();
+ int y = mouse->y();
+#endif // QT_VERSION
+
+ if (width() * y + x > width() * height()) {
+ return;
+ } else {
+ int idx = mask_[indexOfMask(x, y)];
+ if (idx >= 0) {
+ AttributedMouseEvent ev(images_[idx]);
+ emit released(&ev);
+ } else {
+ emit released(NULL);
+ }
+ }
+ ungrabMouse();
+}
+
+MaskedContainer::~MaskedContainer() {
+ delete[] mask_;
+}
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.h b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.h
new file mode 100644
index 000000000..30e145aa3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.h
@@ -0,0 +1,89 @@
+/**
+ * \file masked_container.h
+ * \brief MaskedContainer class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_MASKED_CONTAINER_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_MASKED_CONTAINER_H_
+
+#include <vector>
+#include <QtCore/QString>
+
+#include "qt_version.h"
+
+#if QT_4
+# include <QtDeclarative/QDeclarativeItem>
+typedef QDeclarativeItem Item;
+typedef QGraphicsSceneMouseEvent MouseEvent;
+#elif QT_5
+# include <QtQuick/QQuickItem>
+typedef QQuickItem Item;
+typedef QMouseEvent MouseEvent;
+#endif
+
+#include "attributed_mouse_event.h"
+
+class MaskedContainer : public Item {
+ Q_OBJECT
+ Q_DISABLE_COPY(MaskedContainer)
+
+ public:
+ explicit MaskedContainer(Item *parent = 0);
+ ~MaskedContainer();
+
+ signals:
+ void pressed(AttributedMouseEvent *attr);
+ void released(AttributedMouseEvent *attr);
+
+ protected:
+ virtual void componentComplete();
+ virtual void mousePressEvent(MouseEvent *event);
+ virtual void mouseReleaseEvent(MouseEvent *event);
+
+ private:
+ std::vector<Item*> images_;
+ int *mask_;
+
+#if QT_4
+ int indexOfMask(qreal x, qreal y) const {
+ return static_cast<int>(y * width() + x);
+ }
+#elif QT_5
+ int indexOfMask(int x, int y) const {
+ return y * static_cast<int>(width()) + x;
+ }
+#endif // QT_VERSION
+};
+
+QML_DECLARE_TYPE(MaskedContainer)
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_MASKED_CONTAINER_H_
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/qmldir b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/qmldir
new file mode 100644
index 000000000..a4bae8144
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/qmldir
@@ -0,0 +1,3 @@
+module com.ford.sdl.hmi.hw_buttons
+plugin HWButtons
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/qt_version.h b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/qt_version.h
new file mode 100644
index 000000000..6a277e386
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/hw_buttons/qt_version.h
@@ -0,0 +1,47 @@
+/**
+ * @file qt_version.h
+ * @brief Defines for check Qt version.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_QT_VERSION_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_QT_VERSION_H_
+
+#include <qglobal.h>
+
+#define QT_4 ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \
+ (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)))
+
+#define QT_5 ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \
+ (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)))
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_QT_VERSION_H_
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/CMakeLists.txt b/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/CMakeLists.txt
new file mode 100644
index 000000000..3153aff77
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/CMakeLists.txt
@@ -0,0 +1,83 @@
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+cmake_minimum_required(VERSION 2.8.11)
+
+set(target QmlLog4cxx)
+set(destination com/ford/sdl/hmi/log4cxx)
+set(install_destination bin/hmi/plugins/${destination})
+set(library_name ${CMAKE_SHARED_LIBRARY_PREFIX}${target}${CMAKE_SHARED_LIBRARY_SUFFIX})
+
+set(CMAKE_AUTOMOC ON)
+set(SOURCES log4cxx_plugin.cc)
+
+add_library(${target} SHARED ${SOURCES})
+
+if (${qt_version} MATCHES "4.8.5")
+ qt4_use_modules(${target} Core Declarative)
+ set(model_dir ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt4/)
+ set(copy_destination ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt4/${destination})
+elseif (${qt_version} MATCHES "5.1.0")
+ qt5_use_modules(${target} Core Qml)
+ set(model_dir ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt5/)
+ set(copy_destination ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt5/${destination})
+endif ()
+
+target_link_libraries(${target} apr-1 aprutil-1 log4cxx)
+
+add_custom_target(copy_library_${target} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/${library_name}
+ ${copy_destination}
+ DEPENDS ${target}
+ COMMENT "Copying library ${library_name}")
+file(COPY qmldir DESTINATION ${copy_destination})
+
+install(TARGETS ${target}
+ DESTINATION ${install_destination}
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
+ GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE
+)
+install(FILES qmldir DESTINATION ${install_destination})
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ add_custom_target(qmltypes_${target} ALL
+ COMMAND ${qmlplugindump_binary} -nonrelocatable com.ford.sdl.hmi.log4cxx 1.0 ${model_dir} > ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes 2>/dev/null
+ DEPENDS copy_library_${target}
+ )
+ add_custom_target(copy_qmltypes_${target} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
+ ${copy_destination}
+ DEPENDS qmltypes_${target}
+ )
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes DESTINATION ${install_destination})
+endif ()
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.cc b/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.cc
new file mode 100644
index 000000000..19eec3665
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.cc
@@ -0,0 +1,108 @@
+/**
+ * @file log4cxx_plugin.cpp
+ * @brief Log4cxxPlugin class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "log4cxx_plugin.h"
+
+#include <log4cxx/log4cxx.h>
+#include <log4cxx/propertyconfigurator.h>
+
+log4cxx::LoggerPtr logger_ = log4cxx::LoggerPtr(
+ log4cxx::Logger::getLogger("Log4cxxPlugin"));
+
+#if QT_4
+void smartLogger(QtMsgType type, const char *msg) {
+ log4cxx::spi::LocationInfo location("", "", -1);
+
+ switch (type) {
+ case QtDebugMsg:
+ (*logger_).debug(msg, location);
+ break;
+ case QtWarningMsg:
+ (*logger_).warn(msg, location);
+ break;
+ case QtCriticalMsg:
+ (*logger_).error(msg, location);
+ break;
+ case QtFatalMsg:
+ (*logger_).fatal(msg, location);
+ break;
+ default:
+ (*logger_).info(msg, location);
+ break;
+ }
+}
+#elif QT_5
+void smartLogger(QtMsgType type, const QMessageLogContext &context,
+ const QString &msg) {
+ log4cxx::spi::LocationInfo location(context.file,
+ context.function ? context.function : "",
+ context.line);
+ switch (type) {
+ case QtDebugMsg:
+ (*logger_).debug(msg.toStdString(), location);
+ break;
+ case QtWarningMsg:
+ (*logger_).warn(msg.toStdString(), location);
+ break;
+ case QtCriticalMsg:
+ (*logger_).error(msg.toStdString(), location);
+ break;
+ case QtFatalMsg:
+ (*logger_).fatal(msg.toStdString(), location);
+ break;
+ default:
+ (*logger_).info(msg.toStdString(), location);
+ break;
+ }
+}
+#endif // QT_VERSION
+
+void Log4cxxPlugin::registerTypes(const char *uri) {
+ log4cxx::PropertyConfigurator::configure("log4cxx.properties");
+
+#if QT_4
+ qInstallMsgHandler(smartLogger);
+#elif QT_5
+ qInstallMessageHandler(smartLogger);
+#endif // QT_VERSION
+
+ // @uri com.ford.sdl.hmi.log4cxx
+ qmlRegisterType<Logger>(uri, 1, 0, "Logger");
+ // Use standart console API Javascript
+ // See Debugging QML Applications in Qt documentation
+}
+
+#if QT_4
+Q_EXPORT_PLUGIN2(QmlLog4cxx, Log4cxxPlugin)
+#endif // QT_4
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.h b/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.h
new file mode 100644
index 000000000..00e136cf7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.h
@@ -0,0 +1,77 @@
+/**
+ * @file log4cxx_plugin.h
+ * @brief Log4cxxPlugin class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_LOG4CXX_LOG4CXX_PLUGIN_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_LOG4CXX_LOG4CXX_PLUGIN_H_
+
+#include <qglobal.h>
+
+#define QT_4 ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \
+ (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)))
+
+#define QT_5 ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \
+ (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)))
+
+#if QT_4
+# include <QtDeclarative/qdeclarative.h>
+# include <QtDeclarative/QDeclarativeExtensionPlugin>
+typedef QDeclarativeExtensionPlugin ExtensionPlugin;
+#elif QT_5
+# include <QtQml/qqml.h>
+# include <QtQml/QQmlExtensionPlugin>
+typedef QQmlExtensionPlugin ExtensionPlugin;
+#endif // QT_VERSION
+
+class Logger : public QObject {
+ Q_OBJECT
+ Q_DISABLE_COPY(Logger)
+
+ public:
+ explicit Logger(QObject *parent = 0) : QObject(parent) {}
+};
+
+class Log4cxxPlugin : public ExtensionPlugin {
+ Q_OBJECT
+#if QT_5
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
+#endif // QT_5
+
+ public:
+ void registerTypes(const char *uri);
+};
+
+QML_DECLARE_TYPE(Logger)
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_LOG4CXX_LOG4CXX_PLUGIN_H_
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/qmldir b/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/qmldir
new file mode 100644
index 000000000..ddd7bc99a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/log4cxx/qmldir
@@ -0,0 +1,3 @@
+module com.ford.sdl.hmi.log4cxx
+plugin QmlLog4cxx
+
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/CMakeLists.txt b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/CMakeLists.txt
new file mode 100644
index 000000000..e777e9526
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/CMakeLists.txt
@@ -0,0 +1,84 @@
+# Copyright (c) 2013, Ford Motor Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided with the
+# distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+cmake_minimum_required(VERSION 2.8.11)
+
+set(target NamedPipeNotifier)
+set(destination com/ford/sdl/hmi/named_pipe_notifier)
+set(install_destination bin/hmi/plugins/${destination})
+set(library_name ${CMAKE_SHARED_LIBRARY_PREFIX}${target}${CMAKE_SHARED_LIBRARY_SUFFIX})
+
+set(CMAKE_AUTOMOC ON)
+set(SOURCES
+ named_pipe_notifier.cc
+ named_pipe_notifier_plugin.cc
+)
+
+add_library(${target} SHARED ${SOURCES})
+
+if (${qt_version} MATCHES "4.8.5")
+ qt4_use_modules(${target} Core Declarative)
+ set(model_dir ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt4/)
+ set(copy_destination ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt4/${destination})
+elseif (${qt_version} MATCHES "5.1.0")
+ qt5_use_modules(${target} Core Qml)
+ set(model_dir ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt5/)
+ set(copy_destination ${CMAKE_CURRENT_BINARY_DIR}/../../qml_model_qt5/${destination})
+endif ()
+
+add_custom_target(copy_library_${target} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/${library_name}
+ ${copy_destination}
+ DEPENDS ${target}
+ COMMENT "Copying library ${library_name}")
+file(COPY qmldir DESTINATION ${copy_destination})
+
+install(TARGETS ${target}
+ DESTINATION ${install_destination}
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
+ GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE
+)
+install(FILES qmldir DESTINATION ${install_destination})
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ add_custom_target(qmltypes_${target} ALL
+ COMMAND ${qmlplugindump_binary} -nonrelocatable com.ford.sdl.hmi.named_pipe_notifier 1.0 ${model_dir} > ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes 2>/dev/null
+ DEPENDS copy_library_${target}
+ )
+ add_custom_target(copy_qmltypes_${target} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
+ ${copy_destination}
+ DEPENDS qmltypes_${target}
+ )
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes DESTINATION ${install_destination})
+endif ()
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.cc b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.cc
new file mode 100644
index 000000000..e231124fe
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.cc
@@ -0,0 +1,59 @@
+/**
+ * @file named_pipe_notifier.cc
+ * @brief NamedPipeNotifier class implementation file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <fcntl.h>
+#include <sys/select.h>
+#include <sys/stat.h>
+#include <errno.h>
+
+#include "named_pipe_notifier.h"
+
+void NamedPipeNotifier::run() {
+ int fd = ::open(name_.toLocal8Bit().constData(), O_RDONLY);
+ if (-1 == fd) { // if open() fails
+ if ((errno != ENOENT) // we can only manage lack of pipe
+ || (-1 == ::mkfifo(name_.toLocal8Bit().constData(), 0666))
+ || (-1 == (fd = ::open(name_.toLocal8Bit().constData(), O_RDONLY)))) {
+ emit openFailed();
+ return;
+ }
+ }
+ ::fd_set readfds;
+ FD_ZERO(&readfds);
+ FD_SET(fd, &readfds);
+// this select() is supposed to block till pipe is empty
+ if (::select(fd + 1, &readfds, 0, 0, 0) > 0) {
+ emit readyRead();
+ }
+}
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.h b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.h
new file mode 100644
index 000000000..14bacd9b6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.h
@@ -0,0 +1,65 @@
+/**
+ * \file named_pipe_notifier.h
+ * \brief NamedPipeNotifier class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_NAMED_PIPE_NOTIFIER_NAMED_PIPE_NOTIFIER_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_NAMED_PIPE_NOTIFIER_NAMED_PIPE_NOTIFIER_H_
+
+#include <QThread>
+
+class NamedPipeNotifier : public QThread {
+ Q_OBJECT
+ Q_PROPERTY(QString name READ name WRITE set_name NOTIFY nameChanged)
+ QString name_;
+
+ public:
+ explicit NamedPipeNotifier(QObject* parent = 0) : QThread(parent) {}
+
+ const QString& name() const { return name_; }
+ void set_name(const QString& name) {
+ if (name_ != name) {
+ name_ = name;
+ emit nameChanged();
+ }
+ }
+
+ protected:
+ virtual void run();
+
+ signals:
+ void nameChanged();
+ void readyRead();
+ void openFailed();
+};
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_NAMED_PIPE_NOTIFIER_NAMED_PIPE_NOTIFIER_H_
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.cc b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.cc
new file mode 100644
index 000000000..a423434c1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.cc
@@ -0,0 +1,52 @@
+/**
+ * \file named_pipe_notifier_plugin.cc
+ * \brief NamedPipeNotifierPlugin class implementation file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "named_pipe_notifier_plugin.h"
+
+#if QT_4
+# include <QtDeclarative/qdeclarative.h>
+#elif QT_5
+# include <QtQml/qqml.h>
+#endif // QT_VERSION
+
+#include "named_pipe_notifier.h"
+
+void NamedPipeNotifierPlugin::registerTypes(const char* uri) {
+ // @uri com.ford.sdl.hmi.named_pipe_notifier
+ qmlRegisterType<NamedPipeNotifier>(uri, 1, 0, "NamedPipeNotifier");
+}
+
+#if QT_4
+Q_EXPORT_PLUGIN2(NamedPipeNotifier, NamedPipeNotifierPlugin)
+#endif // QT_4
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.h b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.h
new file mode 100644
index 000000000..36513aa93
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.h
@@ -0,0 +1,59 @@
+/**
+ * \file named_pipe_notifier_plugin.h
+ * \brief NamedPipeNotifierPlugin class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_NAMED_PIPE_NOTIFIER_NAMED_PIPE_NOTIFIER_PLUGIN_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_NAMED_PIPE_NOTIFIER_NAMED_PIPE_NOTIFIER_PLUGIN_H_
+
+#include "qt_version.h"
+
+#if QT_4
+# include <QtDeclarative/QDeclarativeExtensionPlugin>
+typedef QDeclarativeExtensionPlugin ExtensionPlugin;
+#elif QT_5
+# include <QtQml/QQmlExtensionPlugin>
+typedef QQmlExtensionPlugin ExtensionPlugin;
+#endif // QT_5
+
+class NamedPipeNotifierPlugin : public ExtensionPlugin {
+ Q_OBJECT
+
+#if QT_5
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
+#endif // QT_5
+
+ public:
+ void registerTypes(const char* uri);
+};
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_NAMED_PIPE_NOTIFIER_NAMED_PIPE_NOTIFIER_PLUGIN_H_
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qmldir b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qmldir
new file mode 100644
index 000000000..86ede716e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qmldir
@@ -0,0 +1,2 @@
+module com.ford.sdl.hmi.named_pipe_notifier
+plugin NamedPipeNotifier
diff --git a/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qt_version.h b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qt_version.h
new file mode 100644
index 000000000..42b4bcb9d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qt_version.h
@@ -0,0 +1,47 @@
+/**
+ * @file qt_version.h
+ * @brief Defines for check Qt version.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_QT_HMI_QML_PLUGINS_NAMED_PIPE_NOTIFIER_QT_VERSION_H_
+#define SRC_COMPONENTS_QT_HMI_QML_PLUGINS_NAMED_PIPE_NOTIFIER_QT_VERSION_H_
+
+#include <qglobal.h>
+
+#define QT_4 ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \
+ (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)))
+
+#define QT_5 ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \
+ (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)))
+
+#endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_NAMED_PIPE_NOTIFIER_QT_VERSION_H_
+
diff --git a/SDL_Core/src/components/qt_hmi/res/SPT.png b/SDL_Core/src/components/qt_hmi/res/SPT.png
new file mode 100644
index 000000000..efe0b43dc
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/SPT.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/album_art.png b/SDL_Core/src/components/qt_hmi/res/album_art.png
new file mode 100644
index 000000000..900068027
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/album_art.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/app_911_assist.png b/SDL_Core/src/components/qt_hmi/res/app_911_assist.png
new file mode 100644
index 000000000..dc7d3c663
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/app_911_assist.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/app_vehicle_info.png b/SDL_Core/src/components/qt_hmi/res/app_vehicle_info.png
new file mode 100644
index 000000000..1542c787d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/app_vehicle_info.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/apps.png b/SDL_Core/src/components/qt_hmi/res/apps.png
new file mode 100644
index 000000000..48d8284b2
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/apps.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/arrow.png b/SDL_Core/src/components/qt_hmi/res/arrow.png
new file mode 100644
index 000000000..4c215b2bf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/arrow.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/blue_ball.png b/SDL_Core/src/components/qt_hmi/res/blue_ball.png
new file mode 100644
index 000000000..d4db3f96a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/blue_ball.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/long_oval_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/long_oval_btn.png
new file mode 100644
index 000000000..375195bec
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/long_oval_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/long_oval_pressed_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/long_oval_pressed_btn.png
new file mode 100644
index 000000000..bd4ba813d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/long_oval_pressed_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/longest_oval_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/longest_oval_btn.png
new file mode 100644
index 000000000..6ed0293aa
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/longest_oval_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/longest_oval_btn_pressed.png b/SDL_Core/src/components/qt_hmi/res/buttons/longest_oval_btn_pressed.png
new file mode 100644
index 000000000..73ee397da
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/longest_oval_btn_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_bottom.png b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_bottom.png
new file mode 100644
index 000000000..4964b4787
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_bottom.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_left.png b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_left.png
new file mode 100644
index 000000000..4818162a1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_left.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_pressed_left.png b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_pressed_left.png
new file mode 100644
index 000000000..29c47e189
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_pressed_left.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_pressed_right.png b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_pressed_right.png
new file mode 100644
index 000000000..c7d7d53ab
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_pressed_right.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_right.png b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_right.png
new file mode 100644
index 000000000..d566ac8ca
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_right.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_top.png b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_top.png
new file mode 100644
index 000000000..787e0990e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/oval_btn_top.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/player_next_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/player_next_btn.png
new file mode 100644
index 000000000..c432068d4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/player_next_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/player_next_pressed_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/player_next_pressed_btn.png
new file mode 100644
index 000000000..aab3df891
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/player_next_pressed_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/player_pause_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/player_pause_btn.png
new file mode 100644
index 000000000..a9443feb8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/player_pause_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/player_pause_pressed_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/player_pause_pressed_btn.png
new file mode 100644
index 000000000..9c409c8f1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/player_pause_pressed_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/player_play_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/player_play_btn.png
new file mode 100644
index 000000000..f185e9446
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/player_play_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/player_play_pressed_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/player_play_pressed_btn.png
new file mode 100644
index 000000000..ecbb4f2ef
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/player_play_pressed_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/player_prev_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/player_prev_btn.png
new file mode 100644
index 000000000..acc2a71de
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/player_prev_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/player_prev_pressed_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/player_prev_pressed_btn.png
new file mode 100644
index 000000000..c6eefc09c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/player_prev_pressed_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/preset_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/preset_btn.png
new file mode 100644
index 000000000..58c296a4e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/preset_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/preset_pressed_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/preset_pressed_btn.png
new file mode 100644
index 000000000..fd7606fbd
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/preset_pressed_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/round_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/round_btn.png
new file mode 100644
index 000000000..3add8dd21
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/round_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/round_pressed_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/round_pressed_btn.png
new file mode 100644
index 000000000..b0f886342
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/round_pressed_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/short_oval_btn.png b/SDL_Core/src/components/qt_hmi/res/buttons/short_oval_btn.png
new file mode 100644
index 000000000..99f5e90c3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/short_oval_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/short_oval_btn_pressed.png b/SDL_Core/src/components/qt_hmi/res/buttons/short_oval_btn_pressed.png
new file mode 100644
index 000000000..6b8bc61d8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/short_oval_btn_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/zoom.png b/SDL_Core/src/components/qt_hmi/res/buttons/zoom.png
new file mode 100644
index 000000000..0df4d2510
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/zoom.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/buttons/zoom_pressed.png b/SDL_Core/src/components/qt_hmi/res/buttons/zoom_pressed.png
new file mode 100644
index 000000000..c67d2c7c5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/buttons/zoom_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/car.png b/SDL_Core/src/components/qt_hmi/res/car.png
new file mode 100644
index 000000000..18a21656d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/car.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/change_devices.png b/SDL_Core/src/components/qt_hmi/res/change_devices.png
new file mode 100644
index 000000000..24a43a0d3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/change_devices.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/AC_off.png b/SDL_Core/src/components/qt_hmi/res/climate/AC_off.png
new file mode 100644
index 000000000..8554ddfb4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/AC_off.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/AC_on.png b/SDL_Core/src/components/qt_hmi/res/climate/AC_on.png
new file mode 100644
index 000000000..c549010d6
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/AC_on.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/climate_round_off_btn.png b/SDL_Core/src/components/qt_hmi/res/climate/climate_round_off_btn.png
new file mode 100644
index 000000000..411f00393
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/climate_round_off_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/climate_round_on_btn.png b/SDL_Core/src/components/qt_hmi/res/climate/climate_round_on_btn.png
new file mode 100644
index 000000000..691f6e3bf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/climate_round_on_btn.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/defrost_off.png b/SDL_Core/src/components/qt_hmi/res/climate/defrost_off.png
new file mode 100644
index 000000000..22e384dbc
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/defrost_off.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/defrost_on.png b/SDL_Core/src/components/qt_hmi/res/climate/defrost_on.png
new file mode 100644
index 000000000..9b0fc7aa4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/defrost_on.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/face_off.png b/SDL_Core/src/components/qt_hmi/res/climate/face_off.png
new file mode 100644
index 000000000..72448d6aa
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/face_off.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/face_on.png b/SDL_Core/src/components/qt_hmi/res/climate/face_on.png
new file mode 100644
index 000000000..4ed608980
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/face_on.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/feet_off.png b/SDL_Core/src/components/qt_hmi/res/climate/feet_off.png
new file mode 100644
index 000000000..bac7bc9cf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/feet_off.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/feet_on.png b/SDL_Core/src/components/qt_hmi/res/climate/feet_on.png
new file mode 100644
index 000000000..6d7a3b7a1
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/feet_on.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/headed_dash_off.png b/SDL_Core/src/components/qt_hmi/res/climate/headed_dash_off.png
new file mode 100644
index 000000000..cf5168b55
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/headed_dash_off.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/headed_dash_on.png b/SDL_Core/src/components/qt_hmi/res/climate/headed_dash_on.png
new file mode 100644
index 000000000..c46b690f7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/headed_dash_on.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/heated_seat_off.png b/SDL_Core/src/components/qt_hmi/res/climate/heated_seat_off.png
new file mode 100644
index 000000000..11a32048c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/heated_seat_off.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/heated_seat_on.png b/SDL_Core/src/components/qt_hmi/res/climate/heated_seat_on.png
new file mode 100644
index 000000000..8211eb79e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/heated_seat_on.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/heated_wheel_off.png b/SDL_Core/src/components/qt_hmi/res/climate/heated_wheel_off.png
new file mode 100644
index 000000000..5956f5a3d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/heated_wheel_off.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/climate/heated_wheel_on.png b/SDL_Core/src/components/qt_hmi/res/climate/heated_wheel_on.png
new file mode 100644
index 000000000..af3c2598d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/climate/heated_wheel_on.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/DownButton.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/DownButton.png
new file mode 100644
index 000000000..fd44c5438
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/DownButton.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/DownButton_pressed.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/DownButton_pressed.png
new file mode 100644
index 000000000..013672bbf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/DownButton_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/LeftButton.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/LeftButton.png
new file mode 100644
index 000000000..e65dd5ce0
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/LeftButton.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/LeftButton_pressed.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/LeftButton_pressed.png
new file mode 100644
index 000000000..8df2e136e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/LeftButton_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/OkButton.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/OkButton.png
new file mode 100644
index 000000000..9e82fe298
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/OkButton.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/OkButton_pressed.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/OkButton_pressed.png
new file mode 100644
index 000000000..478d9ef7e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/OkButton_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/RightButton.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/RightButton.png
new file mode 100644
index 000000000..24e0f50a8
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/RightButton.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/RightButton_pressed.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/RightButton_pressed.png
new file mode 100644
index 000000000..9e70d8d72
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/RightButton_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/UpButton.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/UpButton.png
new file mode 100644
index 000000000..3547a7fc7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/UpButton.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/UpButton_pressed.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/UpButton_pressed.png
new file mode 100644
index 000000000..2cbcfbe67
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/UpButton_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/backGroundControllButtons.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/backGroundControllButtons.png
new file mode 100644
index 000000000..041d49e7e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/backGroundControllButtons.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/vrButton.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/vrButton.png
new file mode 100644
index 000000000..af09282df
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/vrButton.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/vrButton_pressed.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/vrButton_pressed.png
new file mode 100644
index 000000000..9206e42a9
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/vrButton_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/controlButtons/vrImage.png b/SDL_Core/src/components/qt_hmi/res/controlButtons/vrImage.png
new file mode 100644
index 000000000..2f6bac2d9
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/controlButtons/vrImage.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/find_apps.png b/SDL_Core/src/components/qt_hmi/res/find_apps.png
new file mode 100644
index 000000000..55a9a2867
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/find_apps.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/gear.png b/SDL_Core/src/components/qt_hmi/res/gear.png
new file mode 100644
index 000000000..b1eeba091
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/gear.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/hd_logo_off.png b/SDL_Core/src/components/qt_hmi/res/hd_logo_off.png
new file mode 100644
index 000000000..80c9d58b4
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/hd_logo_off.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/hd_logo_on.png b/SDL_Core/src/components/qt_hmi/res/hd_logo_on.png
new file mode 100644
index 000000000..dfc3d4ccf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/hd_logo_on.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/initial.wav b/SDL_Core/src/components/qt_hmi/res/initial.wav
new file mode 100644
index 000000000..61a549fbc
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/initial.wav
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/install_apps.png b/SDL_Core/src/components/qt_hmi/res/install_apps.png
new file mode 100644
index 000000000..dc33c0965
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/install_apps.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/compass.png b/SDL_Core/src/components/qt_hmi/res/nav/compass.png
new file mode 100644
index 000000000..15c73ee87
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/compass.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/current_street.png b/SDL_Core/src/components/qt_hmi/res/nav/current_street.png
new file mode 100644
index 000000000..e289c054f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/current_street.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/delete_icon.png b/SDL_Core/src/components/qt_hmi/res/nav/delete_icon.png
new file mode 100644
index 000000000..826b5faac
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/delete_icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/delete_icon_black.png b/SDL_Core/src/components/qt_hmi/res/nav/delete_icon_black.png
new file mode 100644
index 000000000..56e35c759
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/delete_icon_black.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/dest_icon.png b/SDL_Core/src/components/qt_hmi/res/nav/dest_icon.png
new file mode 100644
index 000000000..dadcfe25c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/dest_icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/dest_icon_black.png b/SDL_Core/src/components/qt_hmi/res/nav/dest_icon_black.png
new file mode 100644
index 000000000..75c99bc4a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/dest_icon_black.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/map.png b/SDL_Core/src/components/qt_hmi/res/nav/map.png
new file mode 100644
index 000000000..328bca44c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/map.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/mute_off.png b/SDL_Core/src/components/qt_hmi/res/nav/mute_off.png
new file mode 100644
index 000000000..f7306d96a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/mute_off.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/mute_on.png b/SDL_Core/src/components/qt_hmi/res/nav/mute_on.png
new file mode 100644
index 000000000..de2a2bb5b
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/mute_on.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/options.png b/SDL_Core/src/components/qt_hmi/res/nav/options.png
new file mode 100644
index 000000000..46887f106
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/options.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/options_in_active.png b/SDL_Core/src/components/qt_hmi/res/nav/options_in_active.png
new file mode 100644
index 000000000..601b242bb
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/options_in_active.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/options_pressed.png b/SDL_Core/src/components/qt_hmi/res/nav/options_pressed.png
new file mode 100644
index 000000000..42c352a7e
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/options_pressed.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/nav/turnArrow.png b/SDL_Core/src/components/qt_hmi/res/nav/turnArrow.png
new file mode 100644
index 000000000..f37731f5a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/nav/turnArrow.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/notes.png b/SDL_Core/src/components/qt_hmi/res/notes.png
new file mode 100644
index 000000000..8b4a92fff
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/notes.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/phone/contacts.png b/SDL_Core/src/components/qt_hmi/res/phone/contacts.png
new file mode 100644
index 000000000..a16d518ba
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/phone/contacts.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/phone/dnd_off.png b/SDL_Core/src/components/qt_hmi/res/phone/dnd_off.png
new file mode 100644
index 000000000..04bb2476c
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/phone/dnd_off.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/phone/dnd_on.png b/SDL_Core/src/components/qt_hmi/res/phone/dnd_on.png
new file mode 100644
index 000000000..56b9fe706
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/phone/dnd_on.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/phone/keypad.png b/SDL_Core/src/components/qt_hmi/res/phone/keypad.png
new file mode 100644
index 000000000..1792c8fac
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/phone/keypad.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/phone/messages.png b/SDL_Core/src/components/qt_hmi/res/phone/messages.png
new file mode 100644
index 000000000..b5cbb8e8a
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/phone/messages.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/phone/more.png b/SDL_Core/src/components/qt_hmi/res/phone/more.png
new file mode 100644
index 000000000..908ebf654
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/phone/more.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/phone/phone.png b/SDL_Core/src/components/qt_hmi/res/phone/phone.png
new file mode 100644
index 000000000..346f36cc3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/phone/phone.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/phone/recent.png b/SDL_Core/src/components/qt_hmi/res/phone/recent.png
new file mode 100644
index 000000000..db54c2f16
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/phone/recent.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/phone/texts.png b/SDL_Core/src/components/qt_hmi/res/phone/texts.png
new file mode 100644
index 000000000..31c024b1d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/phone/texts.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/snow.png b/SDL_Core/src/components/qt_hmi/res/snow.png
new file mode 100644
index 000000000..54756bb2f
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/snow.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/vehicle/Ambient Lighti Icon.png b/SDL_Core/src/components/qt_hmi/res/vehicle/Ambient Lighti Icon.png
new file mode 100644
index 000000000..9b65fd5ce
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/vehicle/Ambient Lighti Icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/vehicle/EV Icon.png b/SDL_Core/src/components/qt_hmi/res/vehicle/EV Icon.png
new file mode 100644
index 000000000..0607fb864
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/vehicle/EV Icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/vehicle/MCS Icon.png b/SDL_Core/src/components/qt_hmi/res/vehicle/MCS Icon.png
new file mode 100644
index 000000000..1756d5fdf
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/vehicle/MCS Icon.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/vehicle/SYNC Services.png b/SDL_Core/src/components/qt_hmi/res/vehicle/SYNC Services.png
new file mode 100644
index 000000000..361e00fd7
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/vehicle/SYNC Services.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/vehicle/cal.png b/SDL_Core/src/components/qt_hmi/res/vehicle/cal.png
new file mode 100644
index 000000000..94d5d44b5
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/vehicle/cal.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/vehicle/folders.png b/SDL_Core/src/components/qt_hmi/res/vehicle/folders.png
new file mode 100644
index 000000000..c5985043d
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/vehicle/folders.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/vehicle/key_car.png b/SDL_Core/src/components/qt_hmi/res/vehicle/key_car.png
new file mode 100644
index 000000000..a8e5d9d66
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/vehicle/key_car.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/vehicle/sun.png b/SDL_Core/src/components/qt_hmi/res/vehicle/sun.png
new file mode 100644
index 000000000..6424d9d21
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/vehicle/sun.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/warning.png b/SDL_Core/src/components/qt_hmi/res/warning.png
new file mode 100644
index 000000000..c91cd31d3
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/warning.png
Binary files differ
diff --git a/SDL_Core/src/components/qt_hmi/res/white_ball.png b/SDL_Core/src/components/qt_hmi/res/white_ball.png
new file mode 100644
index 000000000..952714ebe
--- /dev/null
+++ b/SDL_Core/src/components/qt_hmi/res/white_ball.png
Binary files differ
diff --git a/SDL_Core/src/components/request_watchdog/CMakeLists.txt b/SDL_Core/src/components/request_watchdog/CMakeLists.txt
new file mode 100644
index 000000000..fe885605b
--- /dev/null
+++ b/SDL_Core/src/components/request_watchdog/CMakeLists.txt
@@ -0,0 +1,15 @@
+include_directories (
+ ./include
+ ../utils/include/
+ ../config_profile/include/
+ ../../thirdPartyLibs/MessageBroker/include/
+)
+
+set (SOURCES
+ ./src/watchdog.cc
+ ./src/request_watchdog.cc
+ ./src/request_info.cc
+)
+
+add_library("RequestWatchdog" ${SOURCES})
+target_link_libraries ("RequestWatchdog" Utils)
diff --git a/SDL_Core/src/components/request_watchdog/include/request_watchdog/request_info.h b/SDL_Core/src/components/request_watchdog/include/request_watchdog/request_info.h
new file mode 100644
index 000000000..48d0d4b6e
--- /dev/null
+++ b/SDL_Core/src/components/request_watchdog/include/request_watchdog/request_info.h
@@ -0,0 +1,62 @@
+/**
+* \file request_info.h
+* \brief request information structure header file.
+*
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_REQUEST_INFO_H_
+#define SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_REQUEST_INFO_H_
+
+#include <stdint.h>
+
+namespace request_watchdog {
+
+struct RequestInfo {
+ RequestInfo(const int32_t& function_id, const int32_t& connection_id,
+ const int32_t& correlation_id, const int32_t& custom_timeout,
+ const int32_t& app_hmi_level);
+
+ int32_t functionID_;
+ int32_t connectionID_;
+ int32_t correlationID_;
+ int32_t customTimeout_;
+ int32_t app_hmi_level_;
+ bool delayed_delete_;
+
+ friend bool operator==(const RequestInfo& left, const RequestInfo& right);
+
+ friend bool operator<(const RequestInfo& left, const RequestInfo& right);
+};
+
+} // namespace request_watchdog
+
+#endif // SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_REQUEST_INFO_H_
diff --git a/SDL_Core/src/components/request_watchdog/include/request_watchdog/request_watchdog.h b/SDL_Core/src/components/request_watchdog/include/request_watchdog/request_watchdog.h
new file mode 100644
index 000000000..0310f84c5
--- /dev/null
+++ b/SDL_Core/src/components/request_watchdog/include/request_watchdog/request_watchdog.h
@@ -0,0 +1,227 @@
+/**
+* \file request_watchdog.h
+* \brief RequestWatchdog class header file.
+*
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_REQUEST_WATCHDOG_H_
+#define SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_REQUEST_WATCHDOG_H_
+
+#include <list>
+#include <map>
+#include "request_watchdog/watchdog.h"
+#include "utils/logger.h"
+#include "utils/threads/thread.h"
+#include "utils/threads/thread_delegate.h"
+#include "utils/date_time.h"
+#include "utils/lock.h"
+
+namespace request_watchdog {
+
+class RequestWatchdog : public Watchdog {
+ public:
+
+ //static Watchdog* instance();
+
+ virtual void AddListener(WatchdogSubscriber* subscriber);
+ virtual void RemoveListener(WatchdogSubscriber* subscriber);
+ virtual void removeAllListeners();
+
+ /*
+ * @brief Adds request
+ *
+ * @brief requestInfo Request info (connection key, request correlation id,
+ * request id, watchdog timeout for request, current application hmi level
+ */
+ virtual void addRequest(RequestInfo* requestInfo);
+
+ /*
+ * @brief Removes corresponding request
+ *
+ * @brief connection_key Application connection key
+ * @brief correlation_id Mobile request correlation ID
+ */
+ virtual void removeRequest(int32_t connection_key,
+ int32_t correlation_id);
+
+ /*
+ * @brief Update request watchdog timeout
+ *
+ * @brief connection_key Application connection key
+ * @brief correlation_id Mobile request correlation ID
+ * @brief new_timeout_value New value of request watchdog timeout
+ */
+ virtual void updateRequestTimeout(int32_t connection_key,
+ int32_t correlation_id,
+ int32_t new_timeout_value);
+
+ /*
+ * @brief Check if amount of requests during time scale for application
+ * doesn't exceed limit.
+ *
+ * @brief connection_key Application ID
+ * @brief app_time_scale Configured time scale for application
+ * @brief max_request_per_time_scale Configured max request amount for
+ * application time scale
+ *
+ * @return TRUE if amount of request doesn't exceed limit, otherwise FALSE
+ */
+ virtual bool checkTimeScaleMaxRequest(
+ const int32_t& connection_key,
+ const uint32_t& app_time_scale,
+ const uint32_t& max_request_per_time_scale);
+
+ /*
+ * @brief Check if amount of requests during time scale for application in
+ * specified hmi level doesn't exceed limit.
+ *
+ * @brief hmi_level Application hmi level(NONE)
+ * @brief connection_key Application ID
+ * @brief app_time_scale Configured time scale for application
+ * @brief max_request_per_time_scale Configured max request amount for
+ * application time scale
+ *
+ * @return TRUE if amount of request doesn't exceed limit, otherwise FALSE
+ */
+ virtual bool checkHMILevelTimeScaleMaxRequest(
+ const int32_t& hmi_level,
+ const int32_t& connection_key,
+ const uint32_t& app_time_scale,
+ const uint32_t& max_request_per_time_scale);
+
+ /*
+ * @brief Removes all requests
+ */
+ virtual void removeAllRequests();
+
+ virtual int32_t getRegesteredRequestsNumber();
+
+ ~RequestWatchdog();
+
+ RequestWatchdog();
+
+ private:
+
+ void notifySubscribers(const RequestInfo& requestInfo);
+
+ void startDispatcherThreadIfNeeded();
+
+ void stopDispatcherThreadIfNeeded();
+
+ friend class QueueDispatcherThreadDelegate;
+
+ class QueueDispatcherThreadDelegate : public threads::ThreadDelegate {
+ public:
+ explicit QueueDispatcherThreadDelegate(RequestWatchdog *inRequestWatchdog);
+
+ void threadMain();
+
+ virtual bool exitThreadMain();
+
+ private:
+ volatile bool stop_flag_;
+ RequestWatchdog* requestWatchdog_;
+ DISALLOW_COPY_AND_ASSIGN(QueueDispatcherThreadDelegate);
+ };
+
+ /*
+ * @brief Structure used in std algorithms to determine amount of request
+ * during time scale
+ */
+ struct TimeScale {
+ explicit TimeScale(const TimevalStruct& start, const TimevalStruct& end,
+ const int32_t& connection_key)
+ : start_(start),
+ end_(end),
+ connection_key_(connection_key) {};
+
+ bool operator()(std::pair<RequestInfo*, TimevalStruct> mapEntry) {
+ bool result = false;
+ if (mapEntry.first->connectionID_ == connection_key_) {
+ if (mapEntry.second.tv_sec >= start_.tv_sec &&
+ mapEntry.second.tv_sec <= end_.tv_sec) {
+ result = true;
+ }
+ }
+ return result;
+ };
+
+ TimevalStruct start_;
+ TimevalStruct end_;
+ int32_t connection_key_;
+ };
+
+ /*
+ * @brief Structure used in std algorithms to determine amount of request
+ * during time scale for application in defined hmi level
+ */
+ struct HMILevelTimeScale {
+ explicit HMILevelTimeScale(
+ const TimevalStruct& start, const TimevalStruct& end,
+ const int32_t& connection_key, const int32_t& hmi_level)
+ : start_(start),
+ end_(end),
+ connection_key_(connection_key),
+ hmi_level_(hmi_level) {};
+
+ bool operator()(std::pair<RequestInfo*, TimevalStruct> mapEntry) {
+ bool result = false;
+ if (mapEntry.first->connectionID_ == connection_key_ &&
+ mapEntry.first->app_hmi_level_ == hmi_level_) {
+ if (mapEntry.second.tv_sec >= start_.tv_sec &&
+ mapEntry.second.tv_sec <= end_.tv_sec) {
+ result = true;
+ }
+ }
+ return result;
+ };
+
+ TimevalStruct start_;
+ TimevalStruct end_;
+ int32_t connection_key_;
+ int32_t hmi_level_;
+ };
+
+ static const int32_t DEFAULT_CYCLE_TIMEOUT = 250000;
+ static log4cxx::LoggerPtr logger_;
+ std::list<WatchdogSubscriber*> subscribers_;
+ sync_primitives::Lock subscribersLock_;
+ std::map<RequestInfo*, TimevalStruct> requests_;
+ sync_primitives::Lock requestsLock_;
+ threads::Thread queueDispatcherThread;
+
+ DISALLOW_COPY_AND_ASSIGN(RequestWatchdog);
+};
+
+} // namespace request_watchdog
+
+#endif // SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_REQUEST_WATCHDOG_H_
diff --git a/SDL_Core/src/components/request_watchdog/include/request_watchdog/watchdog.h b/SDL_Core/src/components/request_watchdog/include/request_watchdog/watchdog.h
new file mode 100644
index 000000000..c4ad65853
--- /dev/null
+++ b/SDL_Core/src/components/request_watchdog/include/request_watchdog/watchdog.h
@@ -0,0 +1,134 @@
+/**
+* \file watchdog.h
+* \brief Watchdog interface header file.
+*
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_WATCHDOG_H_
+#define SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_WATCHDOG_H_
+
+#include <stdint.h>
+#include "request_watchdog/watchdog_subscriber.h"
+#include "request_watchdog/request_info.h"
+
+namespace request_watchdog {
+
+class Watchdog {
+ public:
+
+ /*
+ * @brief Default constructor
+ */
+ Watchdog();
+
+ /*
+ * @brief Destructor
+ */
+ virtual ~Watchdog();
+
+ virtual void AddListener(WatchdogSubscriber* subscriber) = 0;
+ virtual void RemoveListener(WatchdogSubscriber* listener) = 0;
+ virtual void removeAllListeners() = 0;
+
+ /*
+ * @brief Adds request
+ *
+ * @brief requestInfo Request info (connection key, request correlation id,
+ * request id, watchdog timeout for request, current application hmi level
+ */
+ virtual void addRequest(RequestInfo* requestInfo) = 0;
+
+ /*
+ * @brief Removes corresponding request
+ *
+ * @brief connection_key Application connection key
+ * @brief correlation_id Mobile request correlation ID
+ */
+ virtual void removeRequest(int32_t connection_key,
+ int32_t correlation_id) = 0;
+
+ /*
+ * @brief Update request watchdog timeout
+ *
+ * @brief connection_key Application connection key
+ * @brief correlation_id Mobile request correlation ID
+ * @brief new_timeout_value New value of request watchdog timeout
+ */
+ virtual void updateRequestTimeout(int32_t connection_key,
+ int32_t correlation_id,
+ int32_t new_timeout_value) = 0;
+
+ /*
+ * @brief Check if amount of requests during time scale for application
+ * doesn't exceed limit.
+ *
+ * @brief connection_key Application ID
+ * @brief app_time_scale Configured time scale for application
+ * @brief max_request_per_time_scale Configured max request amount for
+ * application time scale
+ *
+ * @return TRUE if amount of request doesn't exceed limit, otherwise FALSE
+ */
+ virtual bool checkTimeScaleMaxRequest(
+ const int32_t& connection_key,
+ const uint32_t& app_time_scale,
+ const uint32_t& max_request_per_time_scale) = 0;
+
+ /*
+ * @brief Check if amount of requests during time scale for application in
+ * specified hmi level doesn't exceed limit.
+ *
+ * @brief hmi_level Application hmi level(NONE)
+ * @brief connection_key Application ID
+ * @brief app_time_scale Configured time scale for application
+ * @brief max_request_per_time_scale Configured max request amount for
+ * application time scale
+ *
+ * @return TRUE if amount of request doesn't exceed limit, otherwise FALSE
+ */
+ virtual bool checkHMILevelTimeScaleMaxRequest(
+ const int32_t& hmi_level,
+ const int32_t& connection_key,
+ const uint32_t& app_time_scale,
+ const uint32_t& max_request_per_time_scale) = 0;
+
+ /*
+ * @brief Removes all requests
+ */
+ virtual void removeAllRequests() = 0;
+
+ virtual int32_t getRegesteredRequestsNumber() = 0;
+};
+
+} // namespace request_watchdog
+
+#endif // SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_WATCHDOG_H_
diff --git a/SDL_Core/src/components/request_watchdog/include/request_watchdog/watchdog_subscriber.h b/SDL_Core/src/components/request_watchdog/include/request_watchdog/watchdog_subscriber.h
new file mode 100644
index 000000000..26cb27204
--- /dev/null
+++ b/SDL_Core/src/components/request_watchdog/include/request_watchdog/watchdog_subscriber.h
@@ -0,0 +1,58 @@
+/**
+* \file watchdog_subscriber.h
+* \brief watchdog subscriber interface header file.
+*
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_WATCHDOG_SUBSCRIBER_H_
+#define SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_WATCHDOG_SUBSCRIBER_H_
+
+#include "request_watchdog/request_info.h"
+
+namespace request_watchdog {
+
+class WatchdogSubscriber {
+ public:
+ /*
+ * When receiving this notification subscriber should remove expired entry
+ * itself using Watchdog::removeRequest(int32_t connection_key,
+ int32_t correlation_id)
+ */
+ virtual void onTimeoutExpired(const RequestInfo& info) = 0;
+
+ virtual ~WatchdogSubscriber() {
+ }
+};
+
+} // namespace request_watchdog
+
+#endif // SRC_COMPONENTS_REQUEST_WATCHDOG_INCLUDE_REQUEST_WATCHDOG_WATCHDOG_SUBSCRIBER_H_
diff --git a/SDL_Core/src/components/request_watchdog/src/request_info.cc b/SDL_Core/src/components/request_watchdog/src/request_info.cc
new file mode 100644
index 000000000..e124d3617
--- /dev/null
+++ b/SDL_Core/src/components/request_watchdog/src/request_info.cc
@@ -0,0 +1,64 @@
+/**
+* \file request_info.h
+* \brief request information structure source file.
+*
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "request_watchdog/request_info.h"
+
+namespace request_watchdog {
+
+RequestInfo::RequestInfo(const int32_t& function_id, const int32_t& connection_id,
+ const int32_t& correlation_id, const int32_t& custom_timeout,
+ const int32_t& app_hmi_level)
+ : functionID_(function_id),
+ connectionID_(connection_id),
+ correlationID_(correlation_id),
+ customTimeout_(custom_timeout),
+ app_hmi_level_(app_hmi_level),
+ delayed_delete_(false)
+{}
+
+bool operator==(const RequestInfo& left, const RequestInfo& right) {
+ return left.connectionID_ == right.connectionID_ &&
+ left.correlationID_ == right.correlationID_ ;
+}
+
+bool operator<(const RequestInfo& left, const RequestInfo& right) {
+ if (left.connectionID_ == right.connectionID_) {
+ return left.correlationID_ < right.correlationID_;
+ } else {
+ return left.connectionID_ < right.connectionID_;
+ }
+}
+
+} // namespace request_watchdog
diff --git a/SDL_Core/src/components/request_watchdog/src/request_watchdog.cc b/SDL_Core/src/components/request_watchdog/src/request_watchdog.cc
new file mode 100644
index 000000000..aafbdf3ee
--- /dev/null
+++ b/SDL_Core/src/components/request_watchdog/src/request_watchdog.cc
@@ -0,0 +1,371 @@
+/**
+* \file request_watchdog.cc
+* \brief RequetWatchdog class source file.
+*
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <unistd.h>
+#include <iterator>
+#include <vector>
+#include <algorithm>
+#include <functional>
+#include <map>
+#include "request_watchdog/request_watchdog.h"
+
+namespace request_watchdog {
+using namespace sync_primitives;
+
+const int32_t RequestWatchdog::DEFAULT_CYCLE_TIMEOUT;
+
+log4cxx::LoggerPtr RequestWatchdog::logger_ =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("RequestWatchdog"));
+/*
+Watchdog* RequestWatchdog::instance() {
+ static RequestWatchdog instnc;
+ return &instnc;
+}
+*/
+RequestWatchdog::RequestWatchdog()
+ : queueDispatcherThread("RequestQueueThread",
+ new QueueDispatcherThreadDelegate(this)) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ queueDispatcherThread.start();
+}
+
+RequestWatchdog::~RequestWatchdog() {
+ //printf("\n\n\n after begin \n\n\n");
+ LOG4CXX_INFO(logger_, "RequestWatchdog destructor.");
+ stopDispatcherThreadIfNeeded();
+ //printf("\n\n\n after join \n\n\n");
+}
+
+void RequestWatchdog::AddListener(WatchdogSubscriber* subscriber) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ {
+ AutoLock auto_lock(subscribersLock_);
+
+ subscribers_.push_back(subscriber);
+
+ LOG4CXX_INFO(logger_, "Subscriber " << subscriber << " was added.");
+ }
+}
+
+void RequestWatchdog::RemoveListener(WatchdogSubscriber* subscriber) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ {
+ AutoLock auto_lock(subscribersLock_);
+
+ subscribers_.remove(subscriber);
+
+ LOG4CXX_INFO(logger_, "Subscriber " << subscriber << " was removed.");
+ }
+}
+
+void RequestWatchdog::removeAllListeners() {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ {
+ AutoLock auto_lock(subscribersLock_);
+ subscribers_.clear();
+ }
+
+ queueDispatcherThread.stop();
+}
+
+void RequestWatchdog::notifySubscribers(const RequestInfo& requestInfo) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ {
+ AutoLock auto_lock(subscribersLock_);
+ std::list<WatchdogSubscriber*>::iterator i = subscribers_.begin();
+
+ while (i != subscribers_.end()) {
+ (*i)->onTimeoutExpired(requestInfo);
+ i++;
+ }
+ }
+}
+
+void RequestWatchdog::addRequest(RequestInfo* requestInfo) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ {
+ AutoLock auto_lock(requestsLock_);
+ requests_.insert(std::pair<RequestInfo*, TimevalStruct>(requestInfo,
+ date_time::DateTime::getCurrentTime()));
+
+ LOG4CXX_INFO(logger_, "Add request "
+ << "\n ConnectionID : " << requestInfo->connectionID_
+ << "\n CorrelationID : " << requestInfo->correlationID_
+ << "\n FunctionID : " << requestInfo->functionID_
+ << "\n CustomTimeOut : " << requestInfo->customTimeout_
+ << "\n");
+ }
+}
+
+void RequestWatchdog::removeRequest(int32_t connection_key,
+ int32_t correlation_id) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ {
+ AutoLock auto_lock(requestsLock_);
+ for (std::map<RequestInfo*, TimevalStruct>::iterator it =
+ requests_.begin();
+ requests_.end() != it;
+ ++it) {
+ if (it->first->connectionID_ == connection_key
+ && it->first->correlationID_ == correlation_id) {
+ LOG4CXX_INFO(logger_, "Delete request "
+ << "\n ConnectionID : " << it->first->connectionID_
+ << "\n CorrelationID : " << it->first->correlationID_
+ << "\n FunctionID : " << it->first->functionID_
+ << "\n CustomTimeOut : " << it->first->customTimeout_
+ << "\n");
+ if (!it->first->delayed_delete_) {
+ delete it->first;
+ requests_.erase(it);
+ }
+ break;
+ }
+ }
+ }
+}
+
+void RequestWatchdog::updateRequestTimeout(int32_t connection_key,
+ int32_t correlation_id,
+ int32_t new_timeout_value) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ {
+ AutoLock auto_lock(requestsLock_);
+
+ for (std::map<RequestInfo*, TimevalStruct>::iterator it =
+ requests_.begin();
+ requests_.end() != it;
+ ++it) {
+ if (it->first->connectionID_ == connection_key
+ && it->first->correlationID_ == correlation_id) {
+ LOG4CXX_INFO(logger_, "Update request's expiration timeout "
+ << "\n ConnectionID : " << it->first->connectionID_
+ << "\n CorrelationID : " << it->first->correlationID_
+ << "\n FunctionID : " << it->first->functionID_
+ << "\n CustomTimeOut : " << it->first->customTimeout_
+ << "\n");
+ it->first->customTimeout_ = new_timeout_value;
+ it->second = date_time::DateTime::getCurrentTime();
+ it->first->delayed_delete_ = false;
+ break;
+ }
+ }
+
+ }
+}
+
+bool RequestWatchdog::checkTimeScaleMaxRequest(
+ const int32_t& connection_key,
+ const uint32_t& app_time_scale,
+ const uint32_t& max_request_per_time_scale) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ bool result = true;
+ {
+ AutoLock auto_lock(requestsLock_);
+ TimevalStruct end = date_time::DateTime::getCurrentTime();
+ TimevalStruct start;
+ start.tv_sec = end.tv_sec - app_time_scale;
+
+ TimeScale scale(start, end, connection_key);
+ int32_t count = 0;
+
+ count = count_if (requests_.begin(), requests_.end(), scale);
+
+ if (count == max_request_per_time_scale ) {
+ LOG4CXX_ERROR(logger_, "Requests count " << count <<
+ " exceed application limit" << max_request_per_time_scale);
+ result = false;
+ }
+
+ }
+
+ return result;
+}
+
+bool RequestWatchdog::checkHMILevelTimeScaleMaxRequest(
+ const int32_t& hmi_level,
+ const int32_t& connection_key,
+ const uint32_t& app_time_scale,
+ const uint32_t& max_request_per_time_scale) {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ bool result = true;
+ {
+ AutoLock auto_lock(requestsLock_);
+ TimevalStruct end = date_time::DateTime::getCurrentTime();
+ TimevalStruct start;
+ start.tv_sec = end.tv_sec - app_time_scale;
+
+ HMILevelTimeScale scale(start, end, connection_key, hmi_level);
+ int32_t count = 0;
+
+ count = count_if (requests_.begin(), requests_.end(), scale);
+
+ if (count == max_request_per_time_scale ) {
+ LOG4CXX_ERROR(logger_, "Requests count " << count <<
+ " exceed application limit" << max_request_per_time_scale
+ << " in hmi level " << hmi_level);
+ result = false;
+ }
+
+ }
+
+ return result;
+}
+
+void RequestWatchdog::removeAllRequests() {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ {
+ AutoLock auto_lock(requestsLock_);
+ for (std::map<RequestInfo*, TimevalStruct>::iterator it = requests_.begin();
+ requests_.end() != it; ++it) {
+ delete it->first;
+ }
+ requests_.clear();
+ }
+ queueDispatcherThread.stop();
+}
+
+int32_t RequestWatchdog::getRegesteredRequestsNumber() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ {
+ AutoLock auto_lock(requestsLock_);
+ return requests_.size();
+ }
+}
+
+void RequestWatchdog::startDispatcherThreadIfNeeded() {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ if (!requests_.empty() && !subscribers_.empty()) {
+ queueDispatcherThread.start();
+ }
+}
+
+void RequestWatchdog::stopDispatcherThreadIfNeeded() {
+ LOG4CXX_INFO(logger_, "Stop Watchdog thread.");
+ queueDispatcherThread.stop();
+}
+
+RequestWatchdog::QueueDispatcherThreadDelegate::QueueDispatcherThreadDelegate(RequestWatchdog* inRequestWatchdog)
+ : threads::ThreadDelegate()
+ , stop_flag_(false)
+ ,requestWatchdog_(inRequestWatchdog)
+{
+}
+
+void RequestWatchdog::QueueDispatcherThreadDelegate::threadMain() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ std::map<RequestInfo*, TimevalStruct>::iterator it;
+ std::map<RequestInfo*, TimevalStruct>::iterator it_temp;
+
+ int32_t cycleSleepInterval = DEFAULT_CYCLE_TIMEOUT;
+
+ //RequestWatchdog* instnc = static_cast<RequestWatchdog*>(
+ // RequestWatchdog::instance());
+ if (!requestWatchdog_) {
+ LOG4CXX_INFO(logger_, "Cannot get instance of RequestWatchdog.");
+ return;
+ }
+
+ while (!stop_flag_) {
+ usleep(cycleSleepInterval);
+
+ {
+ AutoLock auto_lock(requestWatchdog_->requestsLock_);
+
+ it = requestWatchdog_->requests_.begin();
+
+ while (it != requestWatchdog_->requests_.end()) {
+ if (it->first->delayed_delete_) {
+ if (requestWatchdog_->requests_.begin() == it) {
+ delete it->first;
+ requestWatchdog_->requests_.erase(it);
+ it = requestWatchdog_->requests_.begin();
+ } else {
+ it_temp = --it;
+ delete(++it)->first;
+ requestWatchdog_->requests_.erase(it);
+ it = ++it_temp;
+ }
+ continue;
+ }
+/* LOG4CXX_INFO(logger_, "Checking timeout for the following request :"
+ << "\n ConnectionID : " << (*it).first->connectionID_
+ << "\n CorrelationID : " << (*it).first->correlationID_
+ << "\n FunctionID : " << (*it).first->functionID_
+ << "\n CustomTimeOut : " << (*it).first->customTimeout_
+ << "\n");*/
+
+ // hmi timeout delay
+ int32_t const khmi_delay = 1000;
+ if ((*it).first->customTimeout_ + khmi_delay <
+ date_time::DateTime::calculateTimeSpan((*it).second)) {
+ // Request is expired - notify all subscribers and remove request
+
+ it->first->delayed_delete_ = true;
+
+ LOG4CXX_INFO(logger_, "Timeout had expired for the following request :"
+ << "\n ConnectionID : " << (*it).first->connectionID_
+ << "\n CorrelationID : " << (*it).first->correlationID_
+ << "\n FunctionID : " << (*it).first->functionID_
+ << "\n CustomTimeOut : " << (*it).first->customTimeout_
+ << "\n");
+
+ {
+ AutoUnlock auto_unlock(auto_lock);
+ requestWatchdog_->notifySubscribers(*(it->first));
+ }
+
+ }
+ it++;
+ }
+ }
+
+ }
+}
+
+bool RequestWatchdog::QueueDispatcherThreadDelegate::exitThreadMain() {
+ stop_flag_ = true;
+ return true;
+}
+
+} // namespace request_watchdog
diff --git a/SDL_Core/src/components/request_watchdog/src/watchdog.cc b/SDL_Core/src/components/request_watchdog/src/watchdog.cc
new file mode 100644
index 000000000..f76bb9ae2
--- /dev/null
+++ b/SDL_Core/src/components/request_watchdog/src/watchdog.cc
@@ -0,0 +1,48 @@
+/**
+* \file request_info.h
+* \brief request information structure source file.
+*
+* Copyright (c) 2013, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "request_watchdog/watchdog.h"
+
+namespace request_watchdog {
+
+Watchdog::Watchdog() {
+
+}
+
+Watchdog::~Watchdog() {
+
+}
+
+} // namespace request_watchdog
diff --git a/SDL_Core/src/components/resumption/CMakeLists.txt b/SDL_Core/src/components/resumption/CMakeLists.txt
new file mode 100644
index 000000000..28415b05c
--- /dev/null
+++ b/SDL_Core/src/components/resumption/CMakeLists.txt
@@ -0,0 +1,11 @@
+include_directories (
+ ./include
+ ../utils/include/
+ ${CMAKE_SOURCE_DIR}/src/thirdPartyLibs/jsoncpp/include
+)
+
+set (SOURCES
+ ./src/last_state.cc
+)
+
+add_library("Resumption" ${SOURCES})
diff --git a/SDL_Core/src/components/resumption/include/resumption/last_state.h b/SDL_Core/src/components/resumption/include/resumption/last_state.h
new file mode 100644
index 000000000..684cf4e99
--- /dev/null
+++ b/SDL_Core/src/components/resumption/include/resumption/last_state.h
@@ -0,0 +1,101 @@
+/**
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_RESUMPTION_INCLUDE_RESUMPTION_LAST_STATE_H_
+#define SRC_COMPONENTS_RESUMPTION_INCLUDE_RESUMPTION_LAST_STATE_H_
+
+#include <string>
+
+#include "utils/macro.h"
+#include "utils/dict.h"
+#include "utils/singleton.h"
+#include "json/json.h"
+
+namespace resumption {
+
+class LastState : public utils::Singleton<LastState> {
+ public:
+/**
+ * @brief Typedef for string-driven dictionary
+ */
+ typedef utils::Dictionary<std::string, std::string> Dictionary;
+/**
+ * @brief public dictionary
+ */
+ Dictionary dictionary;
+
+ /**
+ * @brief Convert utils::Dictionary<std::string, std::string> to Json
+ * @param dict - input dictionary
+ * @return created Json value
+ */
+ static Json::Value toJson(const Dictionary& dict);
+
+ /**
+ * @brief Convert Json to utils::Dictionary<std::string, std::string>
+ * @param json_val - Json Kson
+ * @return created Dictionary
+ */
+ static Dictionary fromJson(const Json::Value& json_val);
+
+ private:
+
+ /**
+ * @brief File to save Dictionary
+ */
+ static const std::string filename;
+
+ /**
+ * @brief Saving dictionary to filesystem as Json
+ */
+ void SaveToFileSystem();
+
+ /**
+ * @brief Load dictionary from filesystem as Json
+ */
+ void LoadFromFileSystem();
+
+ /**
+ * @brief Private default constructor
+ */
+ LastState();
+ ~LastState();
+
+
+ DISALLOW_COPY_AND_ASSIGN(LastState);
+
+ FRIEND_BASE_SINGLETON_CLASS(LastState);
+};
+
+} // namespace resumption
+
+#endif // SRC_COMPONENTS_RESUMPTION_INCLUDE_RESUMPTION_LAST_STATE_H_
diff --git a/SDL_Core/src/components/resumption/src/last_state.cc b/SDL_Core/src/components/resumption/src/last_state.cc
new file mode 100644
index 000000000..42383f1c8
--- /dev/null
+++ b/SDL_Core/src/components/resumption/src/last_state.cc
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "resumption/last_state.h"
+#include "utils/file_system.h"
+
+namespace resumption {
+
+
+Json::Value LastState::toJson(const Dictionary& dict) {
+ Json::Value val;
+ Dictionary::const_iterator it;
+ Dictionary::rec_const_iterator rec_it;
+
+ it = dict.begin();
+ rec_it = dict.rec_begin();
+
+ for ( ; rec_it != dict.rec_end() ;++rec_it) {
+ std::string key = rec_it->first;
+ std::string value = rec_it->second;
+ val[key] = value;
+ }
+ for ( ; it != dict.end() ;++it) {
+ std::string key = it->first;
+ const Dictionary& value = it->second;
+ val[key] = toJson(value);
+ }
+
+ return val;
+}
+
+LastState::Dictionary LastState::fromJson(const Json::Value& json_val) {
+ Dictionary result;
+
+ Json::Value::Members members = json_val.getMemberNames();
+ Json::Value::Members::const_iterator it = members.begin();
+ for ( ; it != members.end(); ++it) {
+ std::string key = (*it);
+ const Json::Value& value = json_val[key];
+ if (value.isString()) {
+ result.AddItem(key,value.asString());
+ } else if(value.isObject()) {
+ Dictionary sub_item = fromJson(value);
+ result.AddSubitem(key, sub_item);
+ } else {
+ NOTREACHED();
+ }
+ }
+
+ return result;
+}
+
+void LastState::SaveToFileSystem() {
+ const Json::Value& val = toJson(dictionary);
+ const std::string& str = val.toStyledString();
+ const std::vector<uint8_t> char_vector_pdata(
+ str.begin(), str.end());
+ DCHECK(file_system::Write(filename, char_vector_pdata));
+}
+
+void LastState::LoadFromFileSystem() {
+ std::string buffer;
+ bool result = file_system::ReadFile(filename,buffer);
+ if (result) {
+ Json::Reader m_reader;
+ Json::Value val;
+ DCHECK(m_reader.parse(buffer,val));
+ dictionary = fromJson(val);
+ } else {
+ // Error
+ }
+}
+
+LastState::LastState() {
+ LoadFromFileSystem();
+}
+
+LastState::~LastState() {
+ SaveToFileSystem();
+}
+
+const std::string LastState::filename = "TM.dat";
+}
diff --git a/SDL_Core/src/components/rpc_base/CMakeLists.txt b/SDL_Core/src/components/rpc_base/CMakeLists.txt
new file mode 100644
index 000000000..8ca7d406b
--- /dev/null
+++ b/SDL_Core/src/components/rpc_base/CMakeLists.txt
@@ -0,0 +1,18 @@
+include_directories(
+ include
+ ${CMAKE_SOURCE_DIR}/src/thirdPartyLibs/jsoncpp/include
+)
+
+set (SOURCES
+ src/rpc_base/rpc_message.cc
+ src/rpc_base/rpc_base.cc
+)
+
+set (HEADERS
+ include/rpc_base/rpc_message.h
+ include/rpc_base/rpc_base.h
+ include/rpc_base/rpc_base_inl.h
+)
+
+add_library(rpc_base ${HEADERS} ${SOURCES})
+target_link_libraries(rpc_base jsoncpp)
diff --git a/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base.h b/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base.h
new file mode 100644
index 000000000..94e886995
--- /dev/null
+++ b/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base.h
@@ -0,0 +1,297 @@
+/**
+ * Copyright (c) 2014, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef VALIDATED_TYPES_H_
+#define VALIDATED_TYPES_H_
+
+#include <stdint.h>
+#include <map>
+#include <string>
+#include <vector>
+
+namespace Json {
+class Value;
+} // namespace Json
+
+namespace rpc {
+template<typename T> class Range;
+class PrimitiveType;
+class CompositeType;
+class Boolean;
+template<typename T, T minval, T maxval> class Integer;
+template<int64_t minnum, int64_t maxnum,
+ int64_t minden = 1, int64_t maxden = 1> class Float;
+template<size_t minlen, size_t maxlen> class String;
+template<typename T> class Enum;
+template<typename T, size_t minsize, size_t maxsize> class Array;
+template<typename T, size_t minsize, size_t maxsize> class Map;
+template<typename T> class Mandatory;
+template<typename T> class Optional;
+
+template<typename T>
+class Range {
+ public:
+ // Methods
+ Range(const T min, const T max);
+ T min() const;
+ T max() const;
+ template<typename U>
+ bool Includes(U val) const;
+ private:
+ T min_;
+ T max_;
+};
+
+/*
+ * Base class for all primitive types, keeps a flag to
+ * tell whether descendant object was initialized
+ */
+class PrimitiveType {
+ public:
+ bool is_initialized() const;
+ bool is_valid() const;
+ protected:
+ PrimitiveType(bool initialized, bool valid);
+ protected:
+ bool initialized_;
+ bool valid_;
+};
+
+/*
+ * Helper class for all composite types (arrays and all user-defined types)
+ */
+class CompositeType {
+ public:
+ template<class T, size_t minsize, size_t maxsize>
+ static void WriteJsonField(const char* field_name,
+ const Array<T, minsize, maxsize>& field,
+ Json::Value* json_value);
+ template<class T, size_t minsize, size_t maxsize>
+ static void WriteJsonField(const char* field_name,
+ const Map<T, minsize, maxsize>& field,
+ Json::Value* json_value);
+ template<class T>
+ static void WriteJsonField(const char* field_name, const Optional<T>& field,
+ Json::Value* json_value);
+ template<class T>
+ static void WriteJsonField(const char* field_name, const Mandatory<T>& field,
+ Json::Value* json_value);
+};
+
+/*
+ * Class that holds primitive boolean value. It is always valid.
+ */
+class Boolean : public PrimitiveType {
+ public:
+ // Types
+ typedef bool ValueType;
+ public:
+ // Methods
+ Boolean();
+ explicit Boolean(bool value);
+ explicit Boolean(const Json::Value& value);
+ Boolean(const Json::Value& value, bool def_value);
+ Boolean& operator=(bool new_val);
+ operator bool() const;
+ Json::Value ToJsonValue() const;
+
+ private:
+ // Fields
+ ValueType value_;
+};
+
+template<typename T, T minval, T maxval>
+class Integer : public PrimitiveType {
+ public:
+ // Types
+ typedef T IntType;
+ public:
+ // Methods
+ Integer();
+ explicit Integer(IntType value);
+ explicit Integer(const Json::Value& value);
+ Integer(const Json::Value& value, IntType def_value);
+ Integer& operator=(IntType new_val);
+ operator IntType() const;
+ Json::Value ToJsonValue() const;
+
+ private:
+ IntType value_;
+ static const Range<T> range_;
+};
+
+template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden>
+class Float : public PrimitiveType {
+ public:
+ // Methods
+ Float();
+ explicit Float(double value);
+ explicit Float(const Json::Value& value);
+ Float(const Json::Value& value, double def_value);
+ Float& operator=(double new_val);
+ operator double() const;
+ Json::Value ToJsonValue() const;
+
+ private:
+ double value_;
+ static const Range<double> range_;
+};
+
+template<size_t minlen, size_t maxlen>
+class String : public PrimitiveType {
+ public:
+ // Methods
+ String();
+ explicit String(const std::string& value);
+ explicit String(const char* value);
+ explicit String(const Json::Value& value);
+ String(const Json::Value& value, const std::string& def_value);
+ String& operator=(const std::string& new_val);
+ operator const std::string&() const;
+ Json::Value ToJsonValue() const;
+
+ private:
+ std::string value_;
+ static const Range<size_t> length_range_;
+};
+
+template<typename T>
+class Enum : public PrimitiveType {
+ public:
+ // Types
+ typedef T EnumType;
+ public:
+ // Methods
+ Enum();
+ explicit Enum(EnumType value);
+ explicit Enum(const Json::Value& value);
+ Enum(const Json::Value& value, EnumType def_value);
+ Enum& operator=(EnumType new_val);
+ operator EnumType() const;
+ Json::Value ToJsonValue() const;
+
+ private:
+ // Fields
+ EnumType value_;
+};
+
+template<typename T, size_t minsize, size_t maxsize>
+class Array : public std::vector<T> {
+ public:
+ // Types
+ typedef std::vector<T> ArrayType;
+ public:
+ // Methods
+ Array();
+ explicit Array(const Json::Value& value);
+ template<typename U>
+ explicit Array(const U& value);
+ template<typename U>
+ Array& operator=(const U& that);
+ using ArrayType::push_back;
+ template<typename U>
+ void push_back(const U& value);
+ Json::Value ToJsonValue() const;
+
+ bool is_valid() const;
+ bool is_initialized() const;
+};
+
+template<typename T, size_t minsize, size_t maxsize>
+class Map : public std::map<std::string, T> {
+ public:
+ // Types
+ typedef std::map<std::string, T> MapType;
+ public:
+ // Methods
+ Map();
+ explicit Map(const Json::Value& value);
+ template<typename U>
+ explicit Map(const U& value);
+ template<typename U>
+ Map& operator=(const U& that);
+ using MapType::insert;
+ template<typename U>
+ void insert(const std::pair<std::string, U>& value);
+ Json::Value ToJsonValue() const;
+
+ bool is_valid() const;
+ bool is_initialized() const;
+};
+
+template<typename T>
+class Mandatory : public T {
+ public:
+ // Methods
+ Mandatory();
+ template<typename U>
+ explicit Mandatory(const U& value);
+ template<typename U>
+ Mandatory(const Json::Value& value, const U& def_value);
+ template<typename U>
+ Mandatory& operator=(const U& new_val);
+
+ bool is_valid() const;
+};
+
+template<typename T>
+class Optional {
+ public:
+ // Methods
+ Optional();
+ template<typename U>
+ explicit Optional(const U& value);
+ template<typename U>
+ Optional(const Json::Value& value,const U& def_value);
+
+ // Pointer semantics
+ T& operator*();
+ const T& operator*() const;
+ T* operator->();
+ const T* operator->() const;
+ // For pointer-like 'if (optional_value)' tests
+ // Better than operator bool because bool can be implicitly
+ // casted to integral types
+ operator const void*() const;
+
+ bool is_valid() const;
+ bool is_initialized() const;
+ private:
+ T value_;
+};
+
+} // namespace rpc
+
+// Template methods implementation
+#include "rpc_base_inl.h"
+
+#endif /* VALIDATED_TYPES_H_ */
diff --git a/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base_inl.h b/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base_inl.h
new file mode 100644
index 000000000..615acf929
--- /dev/null
+++ b/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base_inl.h
@@ -0,0 +1,407 @@
+/**
+* Copyright (c) 2014, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef VALIDATED_TYPES_INL_H_
+#define VALIDATED_TYPES_INL_H_
+
+#include "rpc_base.h"
+
+#include <cassert>
+
+namespace rpc {
+
+/*
+ * Range helper class
+ */
+template <typename T>
+Range<T>::Range(T min, T max)
+ : min_(min),
+ max_(max) {
+}
+
+template <typename T>
+T Range<T>::min() const {
+ return min_;
+}
+
+template <typename T>
+T Range<T>::max() const {
+ return max_;
+}
+
+template <typename T>
+template <typename U>
+bool Range<T>::Includes(U val) const {
+ return min() <= val && val <= max();
+}
+
+inline PrimitiveType::PrimitiveType(bool initialized, bool valid)
+ : initialized_(initialized), valid_(valid) {
+}
+
+inline bool PrimitiveType::is_initialized() const {
+ return initialized_;
+}
+
+inline bool PrimitiveType::is_valid() const {
+ return valid_;
+}
+
+/*
+ * Boolean class
+ */
+inline Boolean::Boolean()
+ : PrimitiveType(false, false), value_(false) {
+}
+
+inline Boolean::Boolean(bool value)
+ : PrimitiveType(true, true), value_(value) {
+}
+
+inline Boolean& Boolean::operator=(bool new_val) {
+ value_ = new_val;
+ initialized_ = true;
+ valid_ = true;
+ return *this;
+}
+
+inline Boolean::operator bool() const {
+ return value_;
+}
+
+/*
+ * Integer class
+ */
+template<typename T, T minval, T maxval>
+const Range<T> Integer<T, minval, maxval>::range_(minval, maxval);
+
+template<typename T, T minval, T maxval>
+Integer<T, minval, maxval>::Integer()
+ : PrimitiveType(false, false),
+ value_(range_.min()) {
+}
+
+template<typename T, T minval, T maxval>
+Integer<T, minval, maxval>::Integer(IntType value)
+ : PrimitiveType(true, range_.Includes(value)),
+ value_(value) {
+}
+
+template<typename T, T minval, T maxval>
+Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator=(IntType new_val) {
+ value_ = new_val;
+ initialized_ = true;
+ valid_ = range_.Includes(value_);
+ return *this;
+}
+
+template<typename T, T minval, T maxval>
+Integer<T, minval, maxval>::operator IntType() const {
+ return value_;
+}
+
+/*
+ * Float class
+ */
+template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden>
+const Range<double> Float<minnum, maxnum, minden, maxden>::range_(
+ (double(minnum)/minden), (double(maxnum)/maxden));
+
+
+template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden>
+Float<minnum, maxnum, minden, maxden>::Float()
+ : PrimitiveType(false, false),
+ value_(range_.min()) {
+}
+
+template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden>
+Float<minnum, maxnum, minden, maxden>::Float(double value)
+ : PrimitiveType(true, range_.Includes(value)),
+ value_(value) {
+}
+
+template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden>
+Float<minnum, maxnum, minden, maxden>&
+Float<minnum, maxnum, minden, maxden>::operator=(double new_val) {
+ value_ = new_val;
+ initialized_ = true;
+ valid_ = range_.Includes(new_val);
+ return *this;
+}
+
+template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden>
+Float<minnum, maxnum, minden, maxden>::operator double() const {
+ return value_;
+}
+
+/*
+ * String class
+ */
+template<size_t minlen, size_t maxlen>
+const Range<size_t> String<minlen, maxlen>::length_range_(minlen, maxlen);
+
+template<size_t minlen, size_t maxlen>
+String<minlen, maxlen>::String()
+ : PrimitiveType(false, false) {
+}
+
+template<size_t minlen, size_t maxlen>
+String<minlen, maxlen>::String(const std::string& value)
+ : PrimitiveType(true, length_range_.Includes(value.length())),
+ value_(value) {
+}
+
+template<size_t minlen, size_t maxlen>
+String<minlen, maxlen>::String(const char* value)
+ : PrimitiveType(true, true),
+ value_(value) {
+ valid_ = length_range_.Includes(value_.length());
+}
+
+template<size_t minlen, size_t maxlen>
+String<minlen, maxlen>& String<minlen, maxlen>::operator=(const std::string& new_val) {
+ value_ = new_val;
+ initialized_ = true;
+ valid_ = length_range_.Includes(new_val.length());
+ return *this;
+}
+
+template<size_t minlen, size_t maxlen>
+String<minlen, maxlen>::operator const std::string&() const {
+ return value_;
+}
+
+/*
+ * Enum class
+ */
+template<typename T>
+Enum<T>::Enum()
+ : PrimitiveType(false, false),
+ value_(EnumType()) {
+}
+
+template<typename T>
+Enum<T>::Enum(EnumType value)
+ : PrimitiveType(true, IsValidEnum(value_)),
+ value_(value) {
+}
+
+template<typename T>
+Enum<T>& Enum<T>::operator=(EnumType new_val) {
+ value_ = new_val;
+ initialized_ = true;
+ valid_ = IsValidEnum(value_);
+ return *this;
+}
+
+template<typename T>
+Enum<T>::operator EnumType() const {
+ return value_;
+}
+
+/*
+ * Array class
+ */
+template<typename T, size_t minsize, size_t maxsize>
+Array<T, minsize, maxsize>::Array() {
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+template<typename U>
+Array<T, minsize, maxsize>::Array(const U& value)
+ : ArrayType(value.begin(), value.end() ){
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+template<typename U>
+Array<T, minsize, maxsize>&
+Array<T, minsize, maxsize>::operator=(const U& that) {
+ this->assign(that.begin(), that.end());
+ return *this;
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+template<typename U>
+void Array<T, minsize, maxsize>::push_back(const U& value) {
+ ArrayType::push_back(T(value));
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+bool Array<T, minsize, maxsize>::is_valid() const {
+ if (!Range<size_t>(minsize, maxsize).Includes(this->size()))
+ return false;
+ for (typename ArrayType::const_iterator i = this->begin();
+ i != this->end(); ++i) {
+ if (!i->is_valid())
+ return false;
+ }
+ return true;
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+bool Array<T, minsize, maxsize>::is_initialized() const {
+ return !this->empty();
+}
+
+/*
+ * Map class
+ */
+template<typename T, size_t minsize, size_t maxsize>
+Map<T, minsize, maxsize>::Map() {
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+template<typename U>
+Map<T, minsize, maxsize>::Map(const U& value) {
+ for (typename U::const_iterator i = value.begin(), e = value.end(); i != e;
+ ++i) {
+ // Explicitly convert that value to T because all rpc_types have explicit
+ // constructors
+ insert(typename MapType::value_type(i->first, T(i->second)));
+ }
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+template<typename U>
+Map<T, minsize, maxsize>&
+Map<T, minsize, maxsize>::operator=(const U& that) {
+ this->clear();
+ for (typename U::const_iterator i = that.begin(), e = that.end(); i != e;
+ ++i) {
+ // Explicitly convert that value to T because all rpc_types have explicit
+ // constructors
+ insert(typename MapType::value_type(i->first, T(i->second)));
+ }
+ return *this;
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+template<typename U>
+void Map<T, minsize, maxsize>::insert(const std::pair<std::string, U>& value) {
+ MapType::insert(typename MapType::value_type(value.first, T(value.second)));
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+bool Map<T, minsize, maxsize>::is_valid() const {
+ if (!Range<size_t>(minsize, maxsize).Includes(this->size()))
+ return false;
+ for (typename Map::const_iterator i = this->begin();
+ i != this->end(); ++i) {
+ if (!i->second.is_valid())
+ return false;
+ }
+ return true;
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+bool Map<T, minsize, maxsize>::is_initialized() const {
+ return !this->empty();
+}
+
+/*
+ * Mandatory class
+ */
+template<typename T>
+Mandatory<T>::Mandatory() {
+}
+
+template<typename T>
+template<typename U>
+Mandatory<T>::Mandatory(const U& value)
+ : T(value) {
+}
+
+template<typename T>
+template<typename U>
+Mandatory<T>& Mandatory<T>::operator=(const U& new_val) {
+ this->T::operator=(new_val);
+ return *this;
+}
+
+template<typename T>
+bool Mandatory<T>::is_valid() const {
+ return T::is_initialized() && T::is_valid();
+}
+
+/*
+ * Optional class
+ */
+template<typename T>
+Optional<T>::Optional() {
+}
+
+template<typename T>
+template<typename U>
+Optional<T>::Optional(const U& value)
+ : value_(value) {
+}
+
+template<typename T>
+T& Optional<T>::operator*() {
+ return value_;
+}
+
+template<typename T>
+const T& Optional<T>::operator*() const {
+ return value_;
+}
+
+template<typename T>
+T* Optional<T>::operator->() {
+ return &value_;
+}
+
+template<typename T>
+const T* Optional<T>::operator->() const {
+ return &value_;
+}
+
+template<typename T>
+Optional<T>::operator const void*() const {
+ return is_initialized() ? &value_ : NULL;
+}
+
+template<typename T>
+bool Optional<T>::is_valid() const {
+ return !value_.is_initialized() || value_.is_valid();
+}
+
+template<typename T>
+bool Optional<T>::is_initialized() const {
+ return value_.is_initialized();
+}
+
+} // namespace rpc
+
+
+
+#endif /* VALIDATED_TYPES_INL_H_ */
diff --git a/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base_json_inl.h b/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base_json_inl.h
new file mode 100644
index 000000000..1b852c4aa
--- /dev/null
+++ b/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_base_json_inl.h
@@ -0,0 +1,245 @@
+/**
+ * Copyright (c) 2014, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef VALIDATED_TYPES_JSON_INL_H_
+#define VALIDATED_TYPES_JSON_INL_H_
+
+#include "rpc_base/rpc_base.h"
+#include "json/value.h"
+
+namespace rpc {
+
+/*
+ * Composite type
+ */
+// static
+template<class T, size_t minsize, size_t maxsize>
+void CompositeType::WriteJsonField(const char* field_name,
+ const Array<T, minsize, maxsize>& field,
+ Json::Value* json_value) {
+ if (field.is_initialized()) {
+ (*json_value)[field_name] = field.ToJsonValue();
+ }
+}
+
+// static
+template<class T, size_t minsize, size_t maxsize>
+void CompositeType::WriteJsonField(const char* field_name,
+ const Map<T, minsize, maxsize>& field,
+ Json::Value* json_value) {
+ if (field.is_initialized()) {
+ (*json_value)[field_name] = field.ToJsonValue();
+ }
+}
+
+// static
+template<class T>
+void CompositeType::WriteJsonField(const char* field_name,
+ const Optional<T>& field,
+ Json::Value* json_value) {
+ if (field.is_initialized()) {
+ (*json_value)[field_name] = field->ToJsonValue();
+ }
+}
+// static
+template<class T>
+void CompositeType::WriteJsonField(const char* field_name,
+ const Mandatory<T>& field,
+ Json::Value* json_value) {
+ (*json_value)[field_name] = field.ToJsonValue();
+}
+
+
+inline Boolean::Boolean(const Json::Value& value)
+ : PrimitiveType(!value.isNull(), value.isBool()),
+ value_(valid_ ? value.asBool() : bool()) {
+}
+
+inline Boolean::Boolean(const Json::Value& value, bool def_value)
+ : PrimitiveType(true, value.isBool() || value.isNull()),
+ value_(value.isBool() ? value.asBool() : def_value) {
+}
+
+inline Json::Value Boolean::ToJsonValue() const {
+ return Json::Value(value_);
+}
+
+template<typename T, T minval, T maxval>
+Integer<T, minval, maxval>::Integer(const Json::Value& value)
+ : PrimitiveType(!value.isNull(),
+ value.isInt() && range_.Includes(value.asInt64())),
+ value_(valid_ ? value.asInt64() : IntType()) {
+}
+
+template<typename T, T minval, T maxval>
+Integer<T, minval, maxval>::Integer(const Json::Value& value, IntType def_value)
+ : PrimitiveType(true, (value.isInt() && range_.Includes(value.asInt64()))
+ || value.isNull()),
+ value_(value.isInt() ? value.asInt64() : def_value) {
+}
+
+// TODO: int64_t support
+template<typename T, T minval, T maxval>
+Json::Value Integer<T, minval, maxval>::ToJsonValue() const {
+ return Json::Value(int32_t(value_));
+}
+
+template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden>
+Float<minnum, maxnum, minden, maxden>::Float(const Json::Value& value)
+ : PrimitiveType(!value.isNull(),
+ value.isDouble() && range_.Includes(value.asDouble())),
+ value_(valid_ ? value.asDouble() : double()) {
+}
+
+template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden>
+Float<minnum, maxnum, minden, maxden>::Float(const Json::Value& value,
+ double def_value)
+ : PrimitiveType(true, (value.isDouble()
+ && range_.Includes(value.asDouble()))
+ || value.isNull()),
+ value_(value.isDouble() ? value.asDouble() : def_value) {
+}
+
+template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden>
+Json::Value Float<minnum, maxnum, minden, maxden>::ToJsonValue() const {
+ return Json::Value(value_);
+}
+
+template<size_t minlen, size_t maxlen>
+String<minlen, maxlen>::String(const Json::Value& value)
+ : PrimitiveType(!value.isNull(),
+ (value.isString() &&
+ length_range_.Includes(value.asString().length()))),
+ value_(valid_ ? value.asString() : std::string()) {
+}
+
+template<size_t minlen, size_t maxlen>
+String<minlen, maxlen>::String(const Json::Value& value, const std::string& def_value)
+ : PrimitiveType(true, (value.isString()
+ && length_range_.Includes(value.asString().length()))
+ || value.isNull()),
+ value_(value.isString() ? value.asString() : def_value) {
+}
+
+template<size_t minlen, size_t maxlen>
+Json::Value String<minlen, maxlen>::ToJsonValue() const {
+ return Json::Value(value_);
+}
+
+template<typename T>
+Enum<T>::Enum(const Json::Value& value)
+ : PrimitiveType(!value.isNull(), value.isString()),
+ value_(EnumType()) {
+ if (valid_) {
+ valid_ = EnumFromJsonString(value.asString(), &value_);
+ }
+}
+
+template<typename T>
+Enum<T>::Enum(const Json::Value& value, EnumType def_value)
+ : PrimitiveType(true, value.isString() || value.isNull()),
+ value_(def_value) {
+ if (value.isString()) {
+ valid_ = EnumFromJsonString(value.asString(), &value_);
+ }
+}
+
+template<typename T>
+Json::Value Enum<T>::ToJsonValue() const {
+ return Json::Value(Json::StaticString(EnumToJsonString(value_)));
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+Array<T, minsize, maxsize>::Array(const Json::Value& value) {
+ if (value.isArray()) {
+ this->reserve(value.size());
+ for (Json::Value::const_iterator i = value.begin(); i != value.end(); ++i) {
+ push_back(*i);
+ }
+ } else if (value.isNull()) {
+ // Do nothing, keep array empty and uninitialized
+ } else {
+ // In case of non-array value initialize array with null value
+ // so it handled as initialized but invalid
+ push_back(Json::Value());
+ }
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+Json::Value Array<T, minsize, maxsize>::ToJsonValue() const {
+ Json::Value array(Json::arrayValue);
+ array.resize(this->size());
+ for (size_t i = 0; i != this->size(); ++i) {
+ array[Json::ArrayIndex(i)] = (this->operator [](i)).ToJsonValue();
+ }
+ return array;
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+Map<T, minsize, maxsize>::Map(const Json::Value& value) {
+ if (value.isObject()) {
+ for (Json::Value::const_iterator i = value.begin(); i != value.end(); ++i) {
+ this->insert(typename MapType::value_type(i.key().asString(), T(*i)));
+ }
+ } else if (value.isNull()) {
+ // Do nothing, keep array empty and uninitialized
+ } else {
+ // In case of non-array value initialize array with null value
+ // so it handled as initialized but invalid
+ this->insert(typename MapType::value_type("", T(Json::Value())));
+ }
+}
+
+template<typename T, size_t minsize, size_t maxsize>
+Json::Value Map<T, minsize, maxsize>::ToJsonValue() const {
+ Json::Value map(Json::objectValue);
+ for (typename MapType::const_iterator i = this->begin(); i != this->end(); ++i) {
+ map[i->first] = i->second.ToJsonValue();
+ }
+ return map;
+}
+
+template<typename T>
+template<typename U>
+Mandatory<T>::Mandatory(const Json::Value& value, const U& def_value)
+ : T(value, def_value) {
+}
+
+template<typename T>
+template<typename U>
+Optional<T>::Optional(const Json::Value& value, const U& def_value)
+ : value_(value, def_value) {
+}
+
+} // namespace rpc
+
+#endif /* VALIDATED_TYPES_JSON_INL_H_ */
diff --git a/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_message.h b/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_message.h
new file mode 100644
index 000000000..25188e09d
--- /dev/null
+++ b/SDL_Core/src/components/rpc_base/include/rpc_base/rpc_message.h
@@ -0,0 +1,95 @@
+/**
+* Copyright (c) 2014, Ford Motor Company
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* Redistributions of source code must retain the above copyright notice, this
+* list of conditions and the following disclaimer.
+*
+* Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the
+* distribution.
+*
+* Neither the name of the Ford Motor Company nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef TYPE_BASE_H_
+#define TYPE_BASE_H_
+
+#include "rpc_base.h"
+
+namespace Json {
+class Value;
+}
+
+namespace rpc {
+
+enum MessageType {
+ kRequest = 0,
+ kResponse = 1,
+ kNotification = 2
+};
+
+// Base class for all RPC messages
+// Has methods to identify interface this message belongs to
+// And message ID
+class Message {
+public:
+ // Type of message
+ virtual MessageType message_type() const = 0;
+ // Numerical function identifier, unique to the interface
+ // Responses share function identifier with corresponding requests
+ virtual int32_t function_id() const = 0;
+ // Function string identifier as specified in original xml file
+ virtual const char* function_string_id() const = 0;
+ // Interface name as specified in original xml file
+ virtual const char* interface_string_id() const = 0;
+ // Serializes message to Json::Value
+ virtual Json::Value ToJsonValue() const = 0;
+ virtual ~Message() {}
+};
+
+// Base class for all interface-specific requests
+class RequestBase : public Message {
+ public:
+ // Message interface
+ MessageType message_type() const { return kRequest; }
+ virtual ~RequestBase() {}
+};
+
+// Base class for all interface-specific responses
+class ResponseBase : public Message {
+ public:
+ // Message interface
+ MessageType message_type() const { return kResponse; }
+ virtual ~ResponseBase() {}
+};
+
+// Base class for all interface-specific notifications
+class NotificationBase : public Message {
+ public:
+ MessageType message_type() const { return kNotification; }
+ // Message interface
+ virtual ~NotificationBase() {}
+};
+
+} // namespace rpc
+
+#endif /* TYPE_BASE_H_ */
diff --git a/SDL_Core/src/components/rpc_base/src/rpc_base/rpc_base.cc b/SDL_Core/src/components/rpc_base/src/rpc_base/rpc_base.cc
new file mode 100644
index 000000000..4e3a5d312
--- /dev/null
+++ b/SDL_Core/src/components/rpc_base/src/rpc_base/rpc_base.cc
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2014, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rpc_base/rpc_base.h"
+
+namespace rpc {
+} // namespace rpc
diff --git a/SDL_Core/src/components/rpc_base/src/rpc_base/rpc_message.cc b/SDL_Core/src/components/rpc_base/src/rpc_base/rpc_message.cc
new file mode 100644
index 000000000..2411273e5
--- /dev/null
+++ b/SDL_Core/src/components/rpc_base/src/rpc_base/rpc_message.cc
@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2014, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rpc_base/rpc_message.h"
+
+#include "json/value.h"
+
+namespace rpc {
+
+} // namespace rpc
diff --git a/SDL_Core/src/components/smart_objects/CMakeLists.txt b/SDL_Core/src/components/smart_objects/CMakeLists.txt
new file mode 100644
index 000000000..02d4797e0
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/CMakeLists.txt
@@ -0,0 +1,22 @@
+include_directories (
+ ./include
+ ../utils/include/
+)
+
+set (SOURCES
+ ./src/smart_object.cc
+ ./src/smart_schema.cc
+ ./src/schema_item.cc
+ ./src/always_false_schema_item.cc
+ ./src/always_true_schema_item.cc
+ ./src/array_schema_item.cc
+ ./src/bool_schema_item.cc
+ ./src/object_schema_item.cc
+ ./src/string_schema_item.cc
+ ./src/enum_schema_item.cc
+ ./src/number_schema_item.cc
+ ./src/object_optional_schema_item.cc
+)
+
+add_library("SmartObjects" ${SOURCES})
+target_link_libraries ("SmartObjects" log4cxx)
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/always_false_schema_item.h b/SDL_Core/src/components/smart_objects/include/smart_objects/always_false_schema_item.h
new file mode 100644
index 000000000..a4bfb5060
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/always_false_schema_item.h
@@ -0,0 +1,92 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ALWAYS_FALSE_SCHEMA_ITEM_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ALWAYS_FALSE_SCHEMA_ITEM_H_
+
+#include "utils/shared_ptr.h"
+#include "smart_objects/schema_item.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+/**
+ * @brief Always false schema item.
+ **/
+class CAlwaysFalseSchemaItem : public ISchemaItem {
+ public:
+ /**
+ * @brief Create a new schema item.
+ *
+ * @return Shared pointer to a new schema item.
+ **/
+ static utils::SharedPtr<CAlwaysFalseSchemaItem> create();
+
+ /**
+ * @brief Validate smart object.
+ *
+ * @param Object Object to validate.
+ *
+ * @return Errors::ERROR
+ **/
+ virtual Errors::eType validate(const SmartObject& Object);
+
+ virtual ~CAlwaysFalseSchemaItem() {
+ }
+
+ private:
+ /**
+ * @brief Constructor.
+ **/
+ CAlwaysFalseSchemaItem(void);
+
+ /**
+ * @brief Copy constructor.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ **/
+ CAlwaysFalseSchemaItem(const CAlwaysFalseSchemaItem& Other);
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ *
+ * @return Not implemented.
+ **/
+ CAlwaysFalseSchemaItem & operator =(const CAlwaysFalseSchemaItem& Other);
+};
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ALWAYS_FALSE_SCHEMA_ITEM_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/always_true_schema_item.h b/SDL_Core/src/components/smart_objects/include/smart_objects/always_true_schema_item.h
new file mode 100644
index 000000000..5616b0e1a
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/always_true_schema_item.h
@@ -0,0 +1,92 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ALWAYS_TRUE_SCHEMA_ITEM_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ALWAYS_TRUE_SCHEMA_ITEM_H_
+
+#include "utils/shared_ptr.h"
+#include "smart_objects/schema_item.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+/**
+ * @brief Always true schema item.
+ **/
+class CAlwaysTrueSchemaItem : public ISchemaItem {
+ public:
+ /**
+ * @brief Create a new schema item.
+ *
+ * @return Shared pointer to a new schema item.
+ **/
+ static utils::SharedPtr<CAlwaysTrueSchemaItem> create();
+
+ /**
+ * @brief Validate smart object.
+ *
+ * @param Object Object to validate.
+ *
+ * @return NsSmartObjects::Errors::eType
+ **/
+ virtual Errors::eType validate(const SmartObject& Object);
+
+ virtual ~CAlwaysTrueSchemaItem() {
+ }
+
+ private:
+ /**
+ * @brief Constructor.
+ **/
+ CAlwaysTrueSchemaItem();
+
+ /**
+ * @brief Copy constructor.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ **/
+ CAlwaysTrueSchemaItem(const CAlwaysTrueSchemaItem& Other);
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ *
+ * @return Not implemented.
+ **/
+ CAlwaysTrueSchemaItem & operator =(const CAlwaysTrueSchemaItem& Other);
+};
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ALWAYS_TRUE_SCHEMA_ITEM_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/array_schema_item.h b/SDL_Core/src/components/smart_objects/include/smart_objects/array_schema_item.h
new file mode 100644
index 000000000..8e5e3e23b
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/array_schema_item.h
@@ -0,0 +1,151 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ARRAY_SCHEMA_ITEM_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ARRAY_SCHEMA_ITEM_H_
+
+#include <stddef.h>
+
+#include "utils/shared_ptr.h"
+#include "smart_objects/schema_item.h"
+#include "smart_objects/always_true_schema_item.h"
+#include "smart_objects/schema_item_parameter.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+/**
+ * @brief Array schema item.
+ **/
+class CArraySchemaItem : public ISchemaItem {
+ public:
+ /**
+ * @brief Create a new schema item.
+ *
+ * @param ElementSchemaItem SchemaItem for array elements.
+ * @param MinSize Minimum allowed size.
+ * @param MaxSize Maximum allowed size.
+ *
+ * @return Shared pointer to a new schema item.
+ **/
+ static utils::SharedPtr<CArraySchemaItem> create(
+ const utils::SharedPtr<ISchemaItem> & ElementSchemaItem =
+ CAlwaysTrueSchemaItem::create(),
+ const TSchemaItemParameter<size_t> & MinSize =
+ TSchemaItemParameter<size_t>(),
+ const TSchemaItemParameter<size_t> & MaxSize =
+ TSchemaItemParameter<size_t>());
+
+ /**
+ * @brief Validate smart object.
+ *
+ * @param Object Object to validate.
+ *
+ * @return NsSmartObjects::Errors::eType
+ **/
+ virtual Errors::eType validate(const SmartObject& Object);
+
+ /**
+ * @brief Apply schema.
+ *
+ * @param Object Object to apply schema.
+ **/
+ virtual void applySchema(SmartObject& Object);
+
+ /**
+ * @brief Unapply schema.
+ *
+ * @param Object Object to unapply schema.
+ **/
+ virtual void unapplySchema(SmartObject& Object);
+
+ /**
+ * @brief Build smart object by smart schema having copied matched
+ * parameters from pattern smart object
+ *
+ * @param pattern_object pattern object
+ * @param result_object object to build
+ */
+ virtual void BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object);
+
+ virtual ~CArraySchemaItem() {
+ }
+
+ private:
+ /**
+ * @brief Constructor.
+ *
+ * @param ElementSchemaItem SchemaItem for array elements.
+ * @param MinSize Minimum allowed size.
+ * @param MaxSize Maximum allowed size.
+ **/
+ CArraySchemaItem(const utils::SharedPtr<ISchemaItem>& ElementSchemaItem,
+ const TSchemaItemParameter<size_t>& MinSize,
+ const TSchemaItemParameter<size_t>& MaxSize);
+
+ /**
+ * @brief Copy constructor.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ **/
+ CArraySchemaItem(const CArraySchemaItem& Other);
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ *
+ * @return Not implemented.
+ **/
+ CArraySchemaItem & operator =(const CArraySchemaItem& Other);
+
+ /**
+ * @brief SchemaItem for array elements.
+ **/
+ const utils::SharedPtr<ISchemaItem> mElementSchemaItem;
+
+ /**
+ * @brief Minimum allowed size.
+ **/
+ const TSchemaItemParameter<size_t> mMinSize;
+
+ /**
+ * @brief Maximum allowed size.
+ **/
+ const TSchemaItemParameter<size_t> mMaxSize;
+};
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ARRAY_SCHEMA_ITEM_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/bool_schema_item.h b/SDL_Core/src/components/smart_objects/include/smart_objects/bool_schema_item.h
new file mode 100644
index 000000000..4479aeea9
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/bool_schema_item.h
@@ -0,0 +1,124 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_BOOL_SCHEMA_ITEM_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_BOOL_SCHEMA_ITEM_H_
+
+#include "utils/shared_ptr.h"
+
+#include "smart_objects/schema_item_parameter.h"
+#include "smart_objects/schema_item.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+/**
+ * @brief Bool schema item.
+ **/
+class CBoolSchemaItem : public ISchemaItem {
+ public:
+ /**
+ * @brief Create a new schema item.
+ *
+ * @param DefaultValue Default value of a parameter.
+ *
+ * @return Shared pointer to a new schema item.
+ **/
+ static utils::SharedPtr<CBoolSchemaItem> create(
+ const TSchemaItemParameter<bool>& DefaultValue = TSchemaItemParameter<
+ bool>());
+
+ /**
+ * @brief Validate smart object.
+ *
+ * @param Object Object to validate.
+ *
+ * @return NsSmartObjects::Errors::eType
+ **/
+ virtual Errors::eType validate(const SmartObject& Object);
+
+ /**
+ * @brief Set default value to an object.
+ *
+ * @param Object Object to set default value.
+ *
+ * @return true if default value was successfully set, false otherwise.
+ **/
+ virtual bool setDefaultValue(SmartObject& Object);
+
+ /**
+ * @brief Build smart object by smart schema having copied matched
+ * parameters from pattern smart object
+ *
+ * @param pattern_object pattern object
+ * @param result_object object to build
+ */
+ virtual void BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object);
+
+ virtual ~CBoolSchemaItem() {
+ }
+
+ private:
+ /**
+ * @brief Constructor.
+ *
+ * @param DefaultValue Default value of a parameter.
+ **/
+ explicit CBoolSchemaItem(const TSchemaItemParameter<bool>& DefaultValue);
+
+ /**
+ * @brief Copy constructor.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ **/
+ CBoolSchemaItem(const CBoolSchemaItem& Other);
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ *
+ * @return Not implemented.
+ **/
+ CBoolSchemaItem & operator =(const CBoolSchemaItem& Other);
+
+ /**
+ * @param DefaultValue Default value of a parameter.
+ */
+ const TSchemaItemParameter<bool> mDefaultValue;
+};
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_BOOL_SCHEMA_ITEM_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/enum_schema_item.h b/SDL_Core/src/components/smart_objects/include/smart_objects/enum_schema_item.h
new file mode 100644
index 000000000..15f5c5aab
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/enum_schema_item.h
@@ -0,0 +1,302 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ENUM_SCHEMA_ITEM_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ENUM_SCHEMA_ITEM_H_
+
+#include <map>
+#include <set>
+#include <string>
+
+#include "utils/shared_ptr.h"
+
+#include "smart_objects/smart_object.h"
+#include "smart_objects/schema_item.h"
+#include "smart_objects/schema_item_parameter.h"
+
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+/**
+ * @brief Enumeration schema item.
+ *
+ * @tparam EnumType Enumeration type.
+ **/
+template<typename EnumType>
+class TEnumSchemaItem : public ISchemaItem {
+ public:
+ /**
+ * @brief Create a new schema item.
+ *
+ * @param AllowedElements Set of allowed enumeration elements.
+ * @param DefaultValue Default value.
+ *
+ * @return Shared pointer to a new schema item.
+ **/
+ static utils::SharedPtr<TEnumSchemaItem> create(
+ const std::set<EnumType>& AllowedElements,
+ const TSchemaItemParameter<EnumType> & DefaultValue =
+ TSchemaItemParameter<EnumType>());
+
+ /**
+ * @brief Validate smart object.
+ *
+ * @param Object Object to validate.
+ *
+ * @return NsSmartObjects::Errors::eType
+ **/
+ virtual Errors::eType validate(const SmartObject& Object);
+
+ /**
+ * @brief Set default value to an object.
+ *
+ * @param Object Object to set default value.
+ *
+ * @return true if default value was successfully set, false otherwise.
+ **/
+ // TODO(cpplint): Is this a non-const reference?
+ // If so, make const or use a pointer.
+ virtual bool setDefaultValue(SmartObject& Object);
+
+ /**
+ * @brief Apply schema.
+ *
+ * This implementation checks if enumeration is represented as string
+ * and tries to convert it to integer according to element-to-string
+ * map provided by getEnumElementsStringRepresentation().
+ *
+ * @param Object Object to apply schema.
+ **/
+ // TODO(cpplint): Is this a non-const reference?
+ // If so, make const or use a pointer.
+ virtual void applySchema(SmartObject& Object);
+
+ /**
+ * @brief Unapply schema.
+ *
+ * @param Object Object to unapply schema.
+ **/
+ // TODO(cpplint): Is this a non-const reference?
+ // If so, make const or use a pointer.
+ virtual void unapplySchema(SmartObject& Object);
+
+ /**
+ * @brief Build smart object by smart schema having copied matched
+ * parameters from pattern smart object
+ *
+ * @param pattern_object pattern object
+ * @param result_object object to build
+ */
+ virtual void BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object);
+
+ /**
+ * @brief The method converts a string into the value of enum EnumType
+ *
+ * @param str String to convert
+ * @param value the resulting enum value
+ * @return true if the string is converted successfully
+ */
+ static bool stringToEnum(const std::string& str, EnumType &value);
+
+ /**
+ * @brief Get string representation of enumeration elements.
+ *
+ * @return Map of enum element to its string representation.
+ **/
+ static const std::map<EnumType, std::string>&
+ getEnumElementsStringRepresentation();
+
+ virtual ~TEnumSchemaItem() {
+ }
+
+ private:
+ /**
+ * @brief Constructor.
+ *
+ * @param AllowedElements Set of allowed enumeration elements.
+ * @param DefaultValue Default value.
+ **/
+ TEnumSchemaItem(const std::set<EnumType>& AllowedElements,
+ const TSchemaItemParameter<EnumType>& DefaultValue);
+
+ /**
+ * @brief Copy constructor.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ **/
+ TEnumSchemaItem(const TEnumSchemaItem<EnumType>& Other);
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ *
+ * @return Not implemented.
+ **/
+ TEnumSchemaItem & operator =(const TEnumSchemaItem<EnumType>& Other);
+
+ /**
+ * @brief Set of allowed enumeration elements.
+ **/
+ const std::set<EnumType> mAllowedElements;
+
+ /**
+ * @brief Default value.
+ **/
+ const TSchemaItemParameter<EnumType> mDefaultValue;
+};
+
+template<typename EnumType>
+utils::SharedPtr<TEnumSchemaItem<EnumType> > TEnumSchemaItem<EnumType>::create(
+ const std::set<EnumType>& AllowedElements,
+ const TSchemaItemParameter<EnumType>& DefaultValue) {
+ return new TEnumSchemaItem<EnumType>(AllowedElements, DefaultValue);
+}
+
+template<typename EnumType>
+Errors::eType TEnumSchemaItem<EnumType>::validate(const SmartObject& Object) {
+ Errors::eType result = Errors::ERROR;
+
+ if (SmartType_Integer == Object.getType()) {
+ if (mAllowedElements.end()
+ != mAllowedElements.find(static_cast<EnumType>(Object.asInt()))) {
+ result = Errors::OK;
+ } else {
+ result = Errors::OUT_OF_RANGE;
+ }
+ } else {
+ result = Errors::INVALID_VALUE;
+ }
+
+ return result;
+}
+
+// TODO(cpplint): Is this a non-const reference?
+// If so, make const or use a pointer.
+template<typename EnumType>
+bool TEnumSchemaItem<EnumType>::setDefaultValue(SmartObject& Object) {
+ bool result = false;
+ EnumType value;
+
+ if (true == mDefaultValue.getValue(value)) {
+ Object = static_cast<int32_t>(value);
+ result = true;
+ }
+
+ return result;
+}
+
+// TODO(cpplint): Is this a non-const reference?
+// If so, make const or use a pointer.
+template<typename EnumType>
+void TEnumSchemaItem<EnumType>::applySchema(SmartObject& Object) {
+ if (SmartType_String == Object.getType()) {
+ std::string stringValue = Object.asString();
+ const std::map<EnumType, std::string> elementsStringRepresentation =
+ getEnumElementsStringRepresentation();
+
+ for (typename std::map<EnumType, std::string>::const_iterator i =
+ elementsStringRepresentation.begin();
+ i != elementsStringRepresentation.end(); ++i) {
+ if (i->second == stringValue) {
+ Object = static_cast<int32_t>(i->first);
+ break;
+ }
+ }
+ }
+}
+
+// TODO(cpplint): Is this a non-const reference?
+// If so, make const or use a pointer.
+template<typename EnumType>
+void TEnumSchemaItem<EnumType>::unapplySchema(SmartObject& Object) {
+ if (SmartType_Integer == Object.getType()) {
+ int32_t integerValue = Object.asInt();
+ const std::map<EnumType, std::string> elementsStringRepresentation =
+ getEnumElementsStringRepresentation();
+ typename std::map<EnumType, std::string>::const_iterator i =
+ elementsStringRepresentation.find(static_cast<EnumType>(integerValue));
+
+ if (i != elementsStringRepresentation.end()) {
+ Object = i->second;
+ }
+ }
+}
+
+template<typename EnumType>
+void TEnumSchemaItem<EnumType>::BuildObjectBySchema(
+ const SmartObject& pattern_object, SmartObject& result_object) {
+
+ if (SmartType_Integer == pattern_object.getType()) {
+ result_object = pattern_object; // TODO(AK): Check this...
+ } else {
+ bool result = setDefaultValue(result_object);
+ if (false == result) {
+ result_object = static_cast<EnumType>(EnumType::INVALID_ENUM);
+ }
+ }
+}
+
+template<typename EnumType>
+TEnumSchemaItem<EnumType>::TEnumSchemaItem(
+ const std::set<EnumType> & AllowedElements,
+ const TSchemaItemParameter<EnumType> & DefaultValue)
+ : mAllowedElements(AllowedElements),
+ mDefaultValue(DefaultValue) {
+}
+
+template<typename EnumType>
+bool TEnumSchemaItem<EnumType>::stringToEnum(const std::string& str,
+ EnumType& value) {
+ bool result = false;
+ std::map<EnumType, std::string> enumMap =
+ TEnumSchemaItem<EnumType>::getEnumElementsStringRepresentation();
+
+ for (typename std::map<EnumType, std::string>::const_iterator it = enumMap
+ .begin(); it != enumMap.end(); ++it) {
+ if (str == it->second) {
+ value = it->first;
+ result = true;
+ break;
+ }
+ }
+
+ return result;
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ENUM_SCHEMA_ITEM_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/errors.h b/SDL_Core/src/components/smart_objects/include/smart_objects/errors.h
new file mode 100644
index 000000000..04a939a37
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/errors.h
@@ -0,0 +1,80 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ERRORS_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ERRORS_H_
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+namespace Errors {
+/**
+ * @brief Enumeration that provides information about SmartObject validation errors
+ **/
+enum eType {
+ /**
+ * @brief Success validation
+ **/
+ OK = 0,
+
+ /**
+ * @brief Invalid value.
+ **/
+ INVALID_VALUE,
+
+ /**
+ * @brief Value is out of allowed range.
+ **/
+ OUT_OF_RANGE,
+
+ /**
+ * @brief Mandatory parameter is missing.
+ **/
+ MISSING_MANDATORY_PARAMETER,
+
+ /**
+ * @brief Mandatory untitled (with any name) parameter is missing.
+ **/
+ MISSING_MANDATORY_UNTITLED_PARAMETER,
+
+ /**
+ * @brief Unexpected parameter.
+ **/
+ UNEXPECTED_PARAMETER,
+
+ /**
+ * @brief General validation error
+ **/
+ ERROR
+};
+} // namespace Errors
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_ERRORS_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/number_schema_item.h b/SDL_Core/src/components/smart_objects/include/smart_objects/number_schema_item.h
new file mode 100644
index 000000000..eec29feb7
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/number_schema_item.h
@@ -0,0 +1,282 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_NUMBER_SCHEMA_ITEM_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_NUMBER_SCHEMA_ITEM_H_
+
+#include <typeinfo>
+#include <string>
+
+#include "utils/shared_ptr.h"
+
+#include "smart_objects/smart_object.h"
+#include "smart_objects/schema_item.h"
+#include "smart_objects/schema_item_parameter.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+/**
+ * @brief Number schema item.
+ *
+ * @tparam NumberType Number type.
+ **/
+template<typename NumberType>
+class TNumberSchemaItem : public ISchemaItem {
+ public:
+ /**
+ * @brief Create a new schema item.
+ *
+ * @param MinValue Minimum allowed value.
+ * @param MaxValue Maximum allowed value.
+ * @param DefaultValue Default value.
+ *
+ * @return Shared pointer to a new schema item.
+ **/
+ static utils::SharedPtr<TNumberSchemaItem> create(
+ const TSchemaItemParameter<NumberType>& MinValue = TSchemaItemParameter<
+ NumberType>(),
+ const TSchemaItemParameter<NumberType>& MaxValue = TSchemaItemParameter<
+ NumberType>(),
+ const TSchemaItemParameter<NumberType>& DefaultValue =
+ TSchemaItemParameter<NumberType>());
+
+ /**
+ * @brief Validate smart object.
+ *
+ * @param Object Object to validate.
+ *
+ * @return NsSmartObjects::Errors::eType
+ **/
+ virtual Errors::eType validate(const SmartObject& Object);
+
+ /**
+ * @brief Set default value to an object.
+ *
+ * @param Object Object to set default value.
+ *
+ * @return true if default value was successfully set, false otherwise.
+ **/
+ // TODO(cpplint): Is this a non-const reference?
+ // If so, make const or use a pointer.
+ virtual bool setDefaultValue(SmartObject& Object);
+
+ /**
+ * @brief Build smart object by smart schema having copied matched
+ * parameters from pattern smart object
+ *
+ * @param pattern_object pattern object
+ * @param result_object object to build
+ */
+ virtual void BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object);
+
+ virtual ~TNumberSchemaItem() {
+ }
+
+ private:
+ /**
+ * @brief Constructor.
+ *
+ * @param MinValue Minimum allowed value.
+ * @param MaxValue Maximum allowed value.
+ * @param DefaultValue Default value.
+ **/
+ TNumberSchemaItem(const TSchemaItemParameter<NumberType>& MinValue,
+ const TSchemaItemParameter<NumberType>& MaxValue,
+ const TSchemaItemParameter<NumberType>& DefaultValue);
+
+ /**
+ * @brief Get smart type for this NumberType.
+ *
+ * @return Smart type for this NumberType.
+ **/
+ static SmartType getSmartType();
+
+ bool isNumberType(SmartType type);
+
+ /**
+ * @brief Copy constructor.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ **/
+ TNumberSchemaItem(const TNumberSchemaItem<NumberType>& Other);
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ *
+ * @return Not implemented.
+ **/
+ TNumberSchemaItem & operator =(const TNumberSchemaItem<NumberType>& Other);
+
+ /**
+ * @brief Minimum allowed value.
+ **/
+ const TSchemaItemParameter<NumberType> mMinValue;
+
+ /**
+ * @brief Maximum allowed value.
+ **/
+ const TSchemaItemParameter<NumberType> mMaxValue;
+
+ /**
+ * @brief Default value.
+ **/
+ const TSchemaItemParameter<NumberType> mDefaultValue;
+};
+
+/**
+ * @brief Specialization of getSmartType for int32_t.
+ *
+ * @return SmartType_Integer.
+ **/
+template<>
+SmartType TNumberSchemaItem<int32_t>::getSmartType();
+
+/**
+ * @brief Specialization of getSmartType for long.
+ *
+ * @return SmartType_Integer.
+ **/
+template<>
+SmartType TNumberSchemaItem<uint32_t>::getSmartType();
+
+/**
+ * @brief Specialization of getSmartType for double.
+ *
+ * @return SmartType_Double.
+ **/
+template<>
+SmartType TNumberSchemaItem<double>::getSmartType(void);
+
+template<typename NumberType>
+utils::SharedPtr<TNumberSchemaItem<NumberType> >
+TNumberSchemaItem<NumberType>::create(
+ const TSchemaItemParameter<NumberType>& MinValue,
+ const TSchemaItemParameter<NumberType>& MaxValue,
+ const TSchemaItemParameter<NumberType>& DefaultValue) {
+ return new TNumberSchemaItem<NumberType>(MinValue, MaxValue, DefaultValue);
+}
+
+template<typename NumberType>
+bool TNumberSchemaItem<NumberType>::isNumberType(SmartType type) {
+ if (SmartType_Integer == type || SmartType_Double == type) {
+ return true;
+ }
+
+ return false;
+}
+
+template<typename NumberType>
+Errors::eType TNumberSchemaItem<NumberType>::validate(
+ const SmartObject& Object) {
+ Errors::eType result = Errors::ERROR;
+
+ if (isNumberType(Object.getType())) {
+ result = Errors::OK;
+ NumberType value;
+
+ if (std::string("i") == typeid(value).name()) {
+ value = Object.asInt();
+ } else if (std::string("j") == typeid(value).name()) {
+ value = Object.asUInt();
+ } else if (std::string("d") == typeid(value).name()) {
+ value = Object.asDouble();
+ } else {
+ NOTREACHED();
+ }
+
+ NumberType rangeLimit;
+
+ if (true == mMinValue.getValue(rangeLimit)) {
+ if (value < rangeLimit) {
+ result = Errors::OUT_OF_RANGE;
+ }
+ }
+
+ if ((Errors::OK == result) && (true == mMaxValue.getValue(rangeLimit))) {
+ if (value > rangeLimit) {
+ result = Errors::OUT_OF_RANGE;
+ }
+ }
+ } else {
+ result = Errors::INVALID_VALUE;
+ }
+
+ return result;
+}
+
+template<typename NumberType>
+bool TNumberSchemaItem<NumberType>::setDefaultValue(SmartObject& Object) {
+ bool result = false;
+ NumberType value;
+
+ if (true == mDefaultValue.getValue(value)) {
+ Object = value;
+ result = true;
+ }
+
+ return result;
+}
+
+template<typename NumberType>
+void TNumberSchemaItem<NumberType>::BuildObjectBySchema(
+ const SmartObject& pattern_object, SmartObject& result_object) {
+
+ if (getSmartType() == pattern_object.getType()) {
+ result_object = pattern_object; // TODO(AK): check this..
+ } else {
+ bool result = setDefaultValue(result_object);
+ if (false == result) {
+ result_object = static_cast<NumberType>(0);
+ }
+ }
+}
+
+template<typename NumberType>
+TNumberSchemaItem<NumberType>::TNumberSchemaItem(
+ const TSchemaItemParameter<NumberType>& MinValue,
+ const TSchemaItemParameter<NumberType>& MaxValue,
+ const TSchemaItemParameter<NumberType>& DefaultValue)
+ : mMinValue(MinValue),
+ mMaxValue(MaxValue),
+ mDefaultValue(DefaultValue) {
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_NUMBER_SCHEMA_ITEM_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/object_optional_schema_item.h b/SDL_Core/src/components/smart_objects/include/smart_objects/object_optional_schema_item.h
new file mode 100644
index 000000000..92060ea29
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/object_optional_schema_item.h
@@ -0,0 +1,170 @@
+/**
+ * @file CObjectSchemaItem.hpp
+ * @brief CObjectSchemaItem header file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEORY
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_OBJECT_OPTIONAL_SCHEMA_ITEM_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_OBJECT_OPTIONAL_SCHEMA_ITEM_H_
+
+#include <map>
+#include <string>
+#include <set>
+
+#include "utils/shared_ptr.h"
+#include "smart_objects/schema_item.h"
+#include "smart_objects/object_schema_item.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+/**
+ * @brief Object schema item for object which can have "optional"
+ * parameter with any(unknown when describing schema) name.
+ *
+ * Please note that optional parameter can be also as mandatory.
+ */
+class ObjectOptionalSchemaItem : public CObjectSchemaItem {
+ public:
+ /**
+ * @brief Generic field name for optional members of smart object.
+ *
+ * Name should be uniqe, not to itersect with all possible regular names
+ */
+ static const char* kOptionalGenericFieldName;
+
+ /**
+ * @brief Create a new schema item.
+ *
+ * @param Members Map of member name to SMember structure
+ * describing the object member.
+ * @param ObjectHasOptioanalMembers Smart object can have
+ * optioanal members
+ *
+ * @return Shared pointer to a new schema item.
+ **/
+ static utils::SharedPtr<ObjectOptionalSchemaItem> create(
+ const std::map<std::string, CObjectSchemaItem::SMember> & members);
+
+ /**
+ * @brief Validate smart object.
+ *
+ * @param Object Object to validate.
+ *
+ * @return NsSmartObjects::Errors::eType
+ **/
+ virtual Errors::eType validate(const SmartObject & object);
+
+ /**
+ * @brief Apply schema.
+ *
+ * @param object Object to apply schema.
+ **/
+ virtual void applySchema(SmartObject & object);
+
+ /**
+ * @brief Unapply schema.
+ *
+ * @param object Object to unapply schema.
+ **/
+ virtual void unapplySchema(SmartObject & object);
+
+ private:
+ /**
+ * @brief Constructor.
+ *
+ * @param Members Map of member name to SMember structure
+ * describing the object member.
+ * @param ObjectHasOptioanalMembers Smart object can have
+ * any name members
+ **/
+ ObjectOptionalSchemaItem(const std::map<std::string,
+ CObjectSchemaItem::SMember> & members);
+
+ /**
+ * @brief Copy constructor.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ **/
+ ObjectOptionalSchemaItem(const ObjectOptionalSchemaItem & Other);
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ *
+ * @return Not implemented.
+ **/
+ ObjectOptionalSchemaItem & operator =(
+ const ObjectOptionalSchemaItem & Other);
+
+ /**
+ * @brief Tells whether name (normally schema item field name)
+ * may have any string value
+ *
+ * @param name Name of field (key) in object
+ *
+ * @return Whether schema item with name may have any string value as name
+ */
+ bool IsOptionalName(const std::string& name);
+
+ /**
+ * @brief Extracts a set of sub object keys from the root object that are
+ * optional.
+ *
+ * @param Object Object from which the sub object keys will be extracted.
+ *
+ * @return A set of keys of sub-objects that are optional.
+ */
+ std::set<std::string> GetOptionalObjectKeys(const SmartObject& root_obj);
+
+ /**
+ * @brief Method iterates over optional sub-objects.
+ *
+ * The method iterates over optional sub-objects in the root object
+ * and performs action on each object.
+ * The action is intended as either "applySchema" or "unapplySchema"
+ *
+ * @param object The root object. Can be modified by "action".
+ * @param action Pointer to the method of ISchemaItem. Either "applySchema"
+ * or "unapplySchema"
+ */
+ void IterateOverOptionalItems(SmartObject* object,
+ void (ISchemaItem:: *action)(SmartObject&) );
+};
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_OBJECT_OPTIONAL_SCHEMA_ITEM_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/object_schema_item.h b/SDL_Core/src/components/smart_objects/include/smart_objects/object_schema_item.h
new file mode 100644
index 000000000..aa3ba7be8
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/object_schema_item.h
@@ -0,0 +1,164 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_OBJECT_SCHEMA_ITEM_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_OBJECT_SCHEMA_ITEM_H_
+
+#include <map>
+#include <string>
+
+#include "utils/shared_ptr.h"
+
+#include "smart_objects/schema_item.h"
+#include "smart_objects/schema_item_parameter.h"
+
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+/**
+ * @brief Object schema item.
+ **/
+class CObjectSchemaItem : public ISchemaItem {
+ public:
+ /**
+ * @brief Object member.
+ **/
+ struct SMember {
+ /**
+ * @brief Default constructor.
+ **/
+ SMember(void);
+
+ /**
+ * @brief Constructor.
+ *
+ * @param SchemaItem Member schema item.
+ * @param IsMandatory true if member is mandatory, false
+ * otherwise. Defaults to true.
+ **/
+ SMember(const utils::SharedPtr<ISchemaItem>& SchemaItem,
+ const bool IsMandatory = true);
+
+ /**
+ * @brief Member schema item.
+ **/
+ utils::SharedPtr<ISchemaItem> mSchemaItem;
+
+ /**
+ * @brief true if member is mandatory, false otherwise.
+ **/
+ bool mIsMandatory;
+ };
+
+ /**
+ * @brief Create a new schema item.
+ *
+ * @param Members Map of member name to SMember structure
+ * describing the object member.
+ *
+ * @return Shared pointer to a new schema item.
+ **/
+ static utils::SharedPtr<CObjectSchemaItem> create(
+ const std::map<std::string, SMember>& Members);
+
+ /**
+ * @brief Validate smart object.
+ *
+ * @param Object Object to validate.
+ *
+ * @return NsSmartObjects::Errors::eType
+ **/
+ virtual Errors::eType validate(const SmartObject& Object);
+
+ /**
+ * @brief Apply schema.
+ *
+ * @param Object Object to apply schema.
+ **/
+ virtual void applySchema(SmartObject& Object);
+
+ /**
+ * @brief Unapply schema.
+ *
+ * @param Object Object to unapply schema.
+ **/
+ virtual void unapplySchema(SmartObject& Object);
+
+ /**
+ * @brief Build smart object by smart schema having copied matched
+ * parameters from pattern smart object
+ *
+ * @param pattern_object pattern object
+ * @param result_object object to build
+ */
+ virtual void BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object);
+
+ virtual ~CObjectSchemaItem() {
+ }
+
+ protected:
+ /**
+ * @brief Constructor.
+ *
+ * @param Members Map of member name to SMember structure
+ * describing the object member.
+ **/
+ CObjectSchemaItem(const std::map<std::string, SMember>& Members);
+
+ /**
+ * @brief Copy constructor.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ **/
+ CObjectSchemaItem(const CObjectSchemaItem& Other);
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ *
+ * @return Not implemented.
+ **/
+ CObjectSchemaItem & operator =(const CObjectSchemaItem& Other);
+
+ /**
+ * @brief Map of member name to SMember structure describing the object member.
+ **/
+ const std::map<std::string, SMember> mMembers;
+};
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_OBJECT_SCHEMA_ITEM_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/schema_item.h b/SDL_Core/src/components/smart_objects/include/smart_objects/schema_item.h
new file mode 100644
index 000000000..a73ffc62e
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/schema_item.h
@@ -0,0 +1,96 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SCHEMA_ITEM_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SCHEMA_ITEM_H_
+
+#include "smart_objects/errors.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+
+/**
+ * @brief Base schema item.
+ **/
+class ISchemaItem {
+ public:
+ /**
+ * @brief Validate object.
+ *
+ * @param Object Object to validate.
+ *
+ * @return NsSmartObjects::Errors::eType
+ **/
+ virtual Errors::eType validate(const SmartObject& Object);
+
+ /**
+ * @brief Set default value to an object.
+ *
+ * @param Object Object to set default value.
+ *
+ * @return true if default value was successfully set, false otherwise.
+ **/
+ virtual bool setDefaultValue(SmartObject& Object);
+
+ /**
+ * @brief Apply schema.
+ *
+ * @param Object Object to apply schema.
+ **/
+ virtual void applySchema(
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& Object);
+
+ /**
+ * @brief Unapply schema.
+ *
+ * @param Object Object to unapply schema.
+ **/
+ virtual void unapplySchema(
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& Object);
+
+ /**
+ * @brief Build smart object by smart schema having copied matched
+ * parameters from pattern smart object
+ *
+ * @param pattern_object pattern object
+ * @param result_object object to build
+ */
+ virtual void BuildObjectBySchema(
+ const NsSmartDeviceLink::NsSmartObjects::SmartObject& pattern_object,
+ NsSmartDeviceLink::NsSmartObjects::SmartObject& result_object);
+
+ virtual ~ISchemaItem() {
+ }
+};
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SCHEMA_ITEM_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/schema_item_parameter.h b/SDL_Core/src/components/smart_objects/include/smart_objects/schema_item_parameter.h
new file mode 100644
index 000000000..d918ce227
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/schema_item_parameter.h
@@ -0,0 +1,115 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SCHEMA_ITEM_PARAMETER_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SCHEMA_ITEM_PARAMETER_H_
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+/**
+ * @brief SchemaItem parameter.
+ *
+ * Container for schema item parameter such as min/max value, size,
+ * etc. which may be unspecified.
+ *
+ * @tparam ParameterType Type of a parameter.
+ */
+template<typename ParameterType>
+class TSchemaItemParameter {
+ public:
+ /**
+ * @brief Constructor.
+ *
+ * Initialize unspecified parameter.
+ **/
+ TSchemaItemParameter();
+
+ /**
+ * @brief Constructor.
+ *
+ * Initialize parameter with specified value.
+ *
+ * @param ParameterValue Value of a parameter.
+ **/
+ explicit TSchemaItemParameter(const ParameterType& ParameterValue);
+
+ /**
+ * @brief Get parameter value.
+ *
+ * Get the value of the parameter if it is specified.
+ *
+ * @param Value Reference to variable that must receive the
+ * value of the parameter. If parameter is not
+ * specified this variable is not modified.
+ *
+ * @return true if the parameter is specified and its value
+ * has been stored in Value variable, false otherwise.
+ **/
+ bool getValue(ParameterType& Value) const;
+
+ private:
+ /**
+ * @brief true if parameter is specified, false otherwise.
+ **/
+ const bool mIsSpecified;
+
+ /**
+ * @brief Parameter value.
+ **/
+ const ParameterType mValue;
+};
+
+template<typename ParameterType>
+TSchemaItemParameter<ParameterType>::TSchemaItemParameter(void)
+ : mIsSpecified(false),
+ mValue() {
+}
+
+template<typename ParameterType>
+TSchemaItemParameter<ParameterType>::TSchemaItemParameter(
+ const ParameterType& ParameterValue)
+ : mIsSpecified(true),
+ mValue(ParameterValue) {
+}
+
+template<typename ParameterType>
+bool TSchemaItemParameter<ParameterType>::getValue(
+ ParameterType& Value) const {
+ if (true == mIsSpecified) {
+ Value = mValue;
+ }
+
+ return mIsSpecified;
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SCHEMA_ITEM_PARAMETER_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/smart_object.h b/SDL_Core/src/components/smart_objects/include/smart_objects/smart_object.h
new file mode 100644
index 000000000..f02a7d8a8
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/smart_object.h
@@ -0,0 +1,942 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SMART_OBJECT_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SMART_OBJECT_H_
+
+#include <set>
+#include <string>
+#include <vector>
+#include <map>
+
+#include "smart_objects/smart_schema.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+
+/**
+ * @brief Enumeration with all types, supported by SmartObject
+ **/
+enum SmartType {
+ /**
+ * @brief Null value. Act as initial value.
+ **/
+ SmartType_Null = 0,
+
+ /**
+ * @brief Boolean value.
+ **/
+ SmartType_Boolean = 1,
+
+ /**
+ * @brief Integer value.
+ **/
+ SmartType_Integer = 2,
+
+ /**
+ * @brief Character value.
+ **/
+ SmartType_Character = 3,
+
+ /**
+ * @brief String value.
+ **/
+ SmartType_String = 4,
+
+ /**
+ * @brief Double value.
+ **/
+ SmartType_Double = 5,
+
+ /**
+ * @brief Map value. Gives possibility for object to act like hashtable.
+ **/
+ SmartType_Map = 6,
+
+ /**
+ * @brief Array value. Gives possibility for object to act like array.
+ **/
+ SmartType_Array = 7,
+
+ /**
+ * @brief Binary data value. Gives possibility for object to store binary data.
+ **/
+ SmartType_Binary = 8,
+
+ /**
+ * @brief Invalid value. Represents invalid object that cannot change his type.
+ **/
+ SmartType_Invalid = -1
+};
+
+/**
+ * @brief SmartArray type
+ **/
+typedef std::vector<SmartObject> SmartArray;
+
+/**
+ * @brief SmartMap type
+ **/
+typedef std::map<std::string, SmartObject> SmartMap;
+
+/**
+ * @brief SmartBinary type
+ **/
+typedef std::vector<uint8_t> SmartBinary;
+
+/**
+ * @brief Main SmartObject class
+ *
+ * This class act as Variant type from other languages and can be used as primitive type
+ * like bool, int32_t, char, double, string and as complex type like array and map.
+ **/
+class SmartObject {
+ public:
+ /**
+ * @brief Constructor.
+ *
+ * Creates object with Null type.
+ **/
+ SmartObject();
+
+ /**
+ * @brief Copy constructor.
+ *
+ * @param Other Object to be copied from.
+ **/
+ SmartObject(const SmartObject& Other);
+
+ /**
+ * @brief Constructor for creating object of given primitive type.
+ *
+ * Only primitive types (bool, int32_t, char, double, string) are supported.
+ *
+ * @param type Type of the created object.
+ **/
+ explicit SmartObject(SmartType Type);
+
+ /**
+ * @brief Destructor
+ *
+ **/
+ ~SmartObject();
+
+ /**
+ * @brief Assignment operator.
+ *
+ * @param Other Other SmartObject
+ * @return SmartObject&
+ **/
+ SmartObject& operator=(const SmartObject& Other);
+
+ /**
+ * @brief Comparison operator
+ *
+ * @param Other Other SmartObject to be compared with
+ * @return bool Result of comparison
+ **/
+ bool operator==(const SmartObject& Other) const;
+
+ /**
+ * @name Support of type: int32_t
+ * @{
+ */
+ /**
+ * @brief Constructor for creating object of type: int32_t
+ *
+ * @param InitialValue Initial object value
+ **/
+ explicit SmartObject(int32_t InitialValue);
+
+ /**
+ * @brief Returns current object converted to int32_t
+ *
+ * @return int32_t
+ **/
+ int32_t asInt() const;
+
+ /**
+ * @brief Assignment operator for type: int32_t
+ *
+ * @param NewValue New object value
+ * @return SmartObject&
+ **/
+ SmartObject& operator=(int32_t NewValue);
+
+ /**
+ * @brief Comparison operator for comparing object with integer value
+ *
+ * @param Value Value to compare object with
+ * @return bool
+ **/
+ bool operator==(int32_t Value) const;
+
+ // Support of type: uint32_t
+ /**
+ * @brief Constructor for creating object of type: int32_t
+ *
+ * @param InitialValue Initial object value
+ **/
+ explicit SmartObject(uint32_t InitialValue);
+
+ /**
+ * @brief Returns current object converted to uint32_t int32_t
+ *
+ * @return double
+ **/
+ uint32_t asUInt() const;
+
+ /**
+ * @brief Assignment operator for type: int32_t
+ *
+ * @param NewValue New object value
+ * @return SmartObject&
+ **/
+ SmartObject& operator=(uint32_t NewValue);
+
+ /**
+ * @brief Comparison operator for comparing object with uint32_t value
+ *
+ * @param Value Value to compare object with
+ * @return bool
+ **/
+ bool operator==(uint32_t Value) const;
+
+ /** @} */
+
+ /**
+ * @name Support of type: double
+ * @{
+ */
+ /**
+ * @brief Constructor for creating object of type: double
+ *
+ * @param InitialValue Initial object value
+ **/
+ explicit SmartObject(double InitialValue);
+
+ /**
+ * @brief Returns current object converted to double
+ *
+ * @return double
+ **/
+ double asDouble() const;
+
+ /**
+ * @brief Assignment operator for type: double
+ *
+ * @param new_value New object value
+ * @return SmartObject&
+ **/
+ SmartObject& operator=(double new_value);
+
+ /**
+ * @brief Comparison operator for comparing object with double value
+ *
+ * @param new_value Value to compare object with
+ * @return bool
+ **/
+ bool operator==(double new_value) const;
+ /** @} */
+
+ /**
+ * @name Support of type: bool
+ * @{
+ */
+ /**
+ * @brief Constructor for creating object of type: bool
+ *
+ * @param InitialValue Initial object value
+ **/
+ explicit SmartObject(bool InitialValue);
+
+ /**
+ * @brief Returns current object converted to bool
+ *
+ * @return bool
+ **/
+ bool asBool() const;
+
+ /**
+ * @brief Assignment operator for type: bool
+ *
+ * @param NewValue New object value
+ * @return SmartObject&
+ **/
+ SmartObject& operator=(bool NewValue);
+
+ /**
+ * @brief Comparison operator for comparing object with bool value
+ *
+ * @param Value Value to compare object with
+ * @return bool
+ **/
+ bool operator==(bool Value) const;
+ /** @} */
+
+ /**
+ * @name Support of type: char
+ * @{
+ */
+ /**
+ * @brief Constructor for creating object of type: char
+ *
+ * @param InitialValue Initial object value
+ **/
+ explicit SmartObject(char InitialValue);
+
+ /**
+ * @brief Conversion operator to type: char
+ *
+ * @return char Value of the object converted to bool type or invalid_char_value if
+ * conversion is not possible
+ **/
+ // operator char() const;
+ /**
+ * @brief Returns current object converted to char
+ *
+ * @return char
+ **/
+ char asChar() const;
+
+ /**
+ * @brief Assignment operator for type: char
+ *
+ * @param NewValue New object value
+ * @return SmartObject&
+ **/
+ SmartObject& operator=(char NewValue);
+
+ /**
+ * @brief Comparison operator for comparing object with char value
+ *
+ * @param Value Value to compare object with
+ * @return bool
+ **/
+ bool operator==(char Value) const;
+ /** @} */
+
+ /**
+ * @name Support of type: string
+ * @{
+ */
+ /**
+ * @brief Constructor for creating object of type: string
+ *
+ * @param InitialValue Initial object value
+ **/
+ explicit SmartObject(const std::string& InitialValue);
+
+ /**
+ * @brief Constructor for creating object of type: string
+ *
+ * @param InitialValue Initial object value
+ **/
+ explicit SmartObject(char* InitialValue);
+
+ /**
+ * @brief Conversion operator to type: string
+ *
+ * @return std::string Value of the object converted to bool type or invalid_string_value if
+ * conversion is not possible
+ **/
+ // operator std::string(void) const;
+ /**
+ * @brief Returns current object converted to string
+ *
+ * @return std::string
+ **/
+ std::string asString() const;
+
+ /**
+ * @brief Returns char array from SmartObject data if exist. Otherwise returns
+ * empty string
+ *
+ * @return const char*
+ **/
+ const char* asCharArray() const;
+
+ /**
+ * @brief Assignment operator for type: string
+ *
+ * @param NewValue New object value
+ * @return SmartObject&
+ **/
+ SmartObject& operator=(const std::string& NewValue);
+
+ /**
+ * @brief Assignment operator for type: string
+ *
+ * @param NewValue New object value
+ * @return SmartObject&
+ **/
+ SmartObject& operator=(const char* NewValue);
+
+ /**
+ * @brief Comparison operator for comparing object with string value
+ *
+ * @param Value Value to compare object with
+ * @return bool
+ **/
+ bool operator==(std::string Value) const;
+
+ /**
+ * @brief Comparison operator for comparing object with string value
+ *
+ * @param Value Value to compare object with
+ * @return bool
+ **/
+ bool operator==(const char* Value) const;
+ /** @} */
+
+ /**
+ * @name Support of type: binary
+ * @{
+ */
+ /**
+ * @brief Constructor for creating object of type: binary
+ *
+ * @param InitialValue Initial binary value
+ **/
+ explicit SmartObject(const SmartBinary& InitialValue);
+
+ /**
+ * @brief Conversion operator to type: binary
+ *
+ * @return SmartBinary Value of the object converted to binary type or invalid_binary_value if
+ * conversion is not possible
+ **/
+ // operator SmartBinary(void) const;
+ /**
+ * @brief Returns current object converted to binary
+ *
+ * @return SmartBinary
+ **/
+ SmartBinary asBinary() const;
+
+ /**
+ * @brief Returns current object converted to array
+ *
+ * @return SmartArray
+ **/
+ SmartArray* asArray() const;
+
+ /**
+ * @brief Assignment operator for type: binary
+ *
+ * @param NewValue New object value
+ * @return SmartObject&
+ **/
+ SmartObject& operator=(SmartBinary);
+
+ /**
+ * @brief Comparison operator for comparing object with binary value
+ *
+ * @param Value Value to compare object with
+ * @return bool
+ **/
+ bool operator==(SmartBinary) const;
+ /** @} */
+
+ /**
+ * @name Array interface support
+ * @{
+ */
+ /**
+ * @brief Support of array-like access
+ *
+ * @param Index index of element to return
+ * @return SmartObject&
+ **/
+ SmartObject& operator[](int32_t Index);
+ const SmartObject& operator[](int32_t Index) const;
+
+ /**
+ * @brief Get array element.
+ *
+ * This method does not automatically convert the object to an array or
+ * add elements. If this object is not an array or index is out of
+ * range then null object is returned.
+ *
+ * @param Index Index of an element.
+ *
+ * @return Element of array or null object if element can't be provided.
+ **/
+ const SmartObject & getElement(size_t Index) const;
+
+ /** @} */
+
+ /**
+ * @name Map/Hashtable interface support
+ * @{
+ */
+ /**
+ * @brief Support of map-like access
+ *
+ * @param Key Key of element to return
+ * @return SmartObject&
+ **/
+ SmartObject& operator[](const std::string Key);
+ const SmartObject& operator[](const std::string Key) const;
+
+ /**
+ * @brief Support of map-like access
+ *
+ * @param Key Key of element to return
+ * @return SmartObject&
+ **/
+ SmartObject& operator[](char* Key);
+ const SmartObject& operator[](char* Key) const;
+
+ /**
+ * @brief Support of map-like access
+ *
+ * @param Key Key of element to return
+ * @return SmartObject&
+ **/
+ SmartObject& operator[](const char* Key);
+
+ /**
+ * @brief Support of map-like access
+ *
+ * @param Key Key of element to return
+ * @return const SmartObject&
+ **/
+ const SmartObject& operator[](const char* Key) const;
+
+ /**
+ * @brief Get map element.
+ *
+ * This method does not automatically convert the object to a map or
+ * add elements. If this object is not a map or it does not contain
+ * key then invalid object is returned.
+ *
+ * @param Key Key of an element.
+ *
+ * @return Element of map or null object if element can't be provided.
+ **/
+ const SmartObject & getElement(const std::string & Key) const;
+
+ /**
+ * @brief Enumerates content of the object when it behaves like a map.
+ *
+ * @return Set of map keys or empty set if object has type other than map
+ **/
+ std::set<std::string> enumerate() const;
+
+ /**
+ * @brief Checks for key presense when object is behaves like a map
+ *
+ * @param Key Key to check presense for
+ * @return bool
+ **/
+ bool keyExists(const std::string & Key) const;
+
+ /**
+ * @brief Removes element from the map.
+ *
+ * @param Key Key of the element.
+ *
+ * @return true if success, false if there is no such element in the map
+ */
+ bool erase(const std::string & Key);
+ /** @} */
+
+ /**
+ * @name Validation and schema support
+ * @{
+ */
+ /**
+ * @brief Validates object according to attached schema.
+ *
+ * @return bolean validation result
+ **/
+ bool isValid() const;
+
+ /**
+ * @brief Validates object according to attached schema.
+ *
+ * @return Result of validation.
+ */
+ Errors::eType validate();
+
+ /**
+ * @brief Sets new schema
+ *
+ * @param schema Schema for object validation
+ * @return void
+ **/
+ void setSchema(CSmartSchema schema);
+
+ /**
+ * @brief Returns attached schema
+ *
+ * @return CSmartSchema
+ **/
+ CSmartSchema getSchema();
+ /** @} */
+
+ /**
+ * @brief Returns current object type
+ *
+ * @return NsSmartObjects::SmartType
+ **/
+ SmartType getType() const;
+
+ /**
+ * @brief Returns length of object
+ *
+ * If object has type string, array or map then method returns corresponded
+ * size. Otherwise returns zero.
+ *
+ * @note This method does not return size of binary data.
+ *
+ * @return size_t Length of the object
+ **/
+ size_t length() const;
+
+ protected:
+ static std::string OperatorToTransform(const SmartMap::value_type &pair) ;
+ /**
+ * @name Support of type: int32_t (internal)
+ * @{
+ */
+ /**
+ * @brief Sets new integer value to the object.
+ *
+ * This method changes also internal object type
+ *
+ * @param NewValue New object value
+ * @return void
+ **/
+ inline void set_value_integer(int32_t NewValue);
+
+ /**
+ * @brief Sets new integer value to the object.
+ *
+ * This method changes also internal object type
+ *
+ * @param NewValue New object value
+ * @return void
+ **/
+ inline void set_value_unsigned_int(uint32_t NewValue);
+
+ /**
+ * @brief Converts object to int32_t type
+ *
+ * @return int32_t Converted value or invalid_int_value if conversion not possible
+ **/
+ inline int32_t convert_int() const;
+
+ /**
+ * @brief Converts object to int32_t type
+ *
+ * @return int32_t Converted value or invalid_int_value if conversion not possible
+ **/
+ inline uint32_t convert_unsigned_int() const;
+ /** @} */
+
+ /**
+ * @name Support of type: char (internal)
+ * @{
+ */
+ /**
+ * @brief Sets new char value to the object.
+ *
+ * This method changes also internal object type
+ *
+ * @param NewValue New object value
+ * @return void
+ **/
+ inline void set_value_char(char NewValue);
+
+ /**
+ * @brief Converts object to char type
+ *
+ * @return int32_t Converted value or invalid_char_value if conversion not possible
+ **/
+ inline char convert_char() const;
+ /** @} */
+
+ /**
+ * @name Support of type: double (internal)
+ * @{
+ */
+ /**
+ * @brief Sets new double value to the object.
+ *
+ * This method changes also internal object type
+ *
+ * @param NewValue New object value
+ * @return void
+ **/
+ inline void set_value_double(double NewValue);
+
+ /**
+ * @brief Converts object to double type
+ *
+ * @return int32_t Converted value or invalid_double_value if conversion not possible
+ **/
+ inline double convert_double() const;
+ /** @} */
+
+ /**
+ * @name Support of type: bool (internal)
+ * @{
+ */
+ /**
+ * @brief Sets new bool value to the object.
+ *
+ * This method changes also internal object type
+ *
+ * @param NewValue New object value
+ * @return void
+ **/
+ inline void set_value_bool(bool NewValue);
+
+ /**
+ * @brief Converts object to bool type
+ *
+ * @return int32_t Converted value or invalid_bool_value if conversion not possible
+ **/
+ inline bool convert_bool() const;
+ /** @} */
+
+ /**
+ * @name Support of type: string (internal)
+ * @{
+ */
+ /**
+ * @brief Sets new string value to the object.
+ *
+ * This method changes also internal object type
+ *
+ * @param NewValue New object value
+ * @return void
+ **/
+ inline void set_value_string(const std::string& NewValue);
+
+ /**
+ * @brief Sets new string value to the object.
+ *
+ * This method changes also internal object type
+ *
+ * @param NewValue New object value
+ * @return void
+ **/
+ inline void set_value_cstr(const char* NewValue);
+
+ /**
+ * @brief Converts object to string type
+ *
+ * @return int32_t Converted value or invalid_string_value if conversion not possible
+ **/
+ inline std::string convert_string() const;
+ /** @} */
+
+ /**
+ * @name Support of type: binary (internal)
+ * @{
+ */
+ /**
+ * @brief Sets new binary value to the object.
+ *
+ * This method changes also internal object type
+ *
+ * @param NewValue New object value
+ * @return void
+ **/
+ inline void set_value_binary(SmartBinary NewValue);
+
+ /**
+ * @brief Converts object to binary type
+ *
+ * @return int32_t Converted value or invalid_binary_value if conversion not possible
+ **/
+ inline SmartBinary convert_binary() const;
+ /** @} */
+
+ /**
+ * @name Array-like interface support (internal)
+ * @{
+ */
+ /**
+ * @brief Returns SmartObject from internal array data by it's index
+ *
+ * @param Index Index of element to retrieve
+ * @return SmartObject&
+ **/
+ SmartObject& handle_array_access(int32_t Index);
+ /** @} */
+
+ /**
+ * @name Map-like interface support (internal)
+ * @{
+ */
+ /**
+ * @brief Returns SmartObject from internal map data by it's key
+ *
+ * @param Key Key of element to retrieve
+ * @return SmartObject&
+ **/
+ inline SmartObject& handle_map_access(std::string Key);
+ /** @} */
+
+ /**
+ * @name Helper conversion methods
+ * @{
+ */
+ /**
+ * @brief Converts string to double
+ *
+ * @param Value Pointer to string to convert
+ * @return double
+ **/
+ static double convert_string_to_double(const std::string* Value);
+
+ /**
+ * @brief Converts string to uint32_t
+ *
+ * @param Value Pointer to string to convert
+ * @return uint32_t int32_t
+ **/
+ static uint32_t convert_string_to_unsigned_int(const std::string* Value);
+
+ /**
+ * @brief Converts double value to string
+ *
+ * @param Value Value to be converted
+ * @return std::string
+ **/
+ static std::string convert_double_to_string(const double& Value);
+ /** @} */
+
+ /**
+ * @brief Duplicates another SmartObject
+ *
+ * After calling that function current SmartObject will have the same
+ * type, schema and data, as passed.
+ *
+ * @param OtherObject Object to be duplicated
+ * @return void
+ **/
+ void duplicate(const SmartObject& OtherObject);
+
+ /**
+ * @brief Cleans up internal data for some types (like string, array or map)
+ *
+ * @return void
+ **/
+ void cleanup_data();
+
+ /**
+ * @brief Sets new internal type and cleans up if it changes
+ *
+ * @param NewType New object type
+ * @return void
+ **/
+ void set_new_type(SmartType NewType);
+
+ /**
+ * @brief Current type of the object
+ **/
+ SmartType m_type;
+
+ /**
+ * @brief Union for holding actual internal object data
+ **/
+ typedef union {
+ double double_value;
+ bool bool_value;
+ char char_value;
+ int32_t int_value;
+ // uint32_t unsigned_int_value;
+ std::string* str_value;
+ SmartArray* array_value;
+ SmartMap* map_value;
+ SmartBinary* binary_value;
+ } SmartData;
+
+ /**
+ * @brief Current internal object data
+ **/
+ SmartData m_data;
+
+ /**
+ * @brief Validation schema, attached to the object
+ **/
+ CSmartSchema m_schema;
+};
+
+/**
+ * @brief Value that is used as invalid value for bool type
+ **/
+static const bool invalid_bool_value = false;
+
+/**
+ * @brief Value that is used as invalid value for int32_t type
+ **/
+static const int32_t invalid_int_value = -1;
+static const int32_t invalid_unsigned_int_value = 0;
+
+/**
+ * @brief Value that is used as invalid value for char type
+ **/
+static const char invalid_char_value = 0;
+
+/**
+ * @brief Value that is used as invalid value for string type
+ **/
+static const std::string invalid_string_value = "";
+
+/**
+ * @brief Value that is used as invalid value for double type
+ **/
+static const double invalid_double_value = -1;
+
+/**
+ * @brief Value that is used as invalid value for string type
+ **/
+static const char* invalid_cstr_value = "";
+
+/**
+ * @brief Value that is used as invalid value for object type
+ **/
+static SmartObject invalid_object_value(SmartType_Invalid);
+
+/**
+ * @brief Value that is used as invalid value for object type
+ **/
+static const SmartBinary invalid_binary_value;
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SMART_OBJECT_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/smart_schema.h b/SDL_Core/src/components/smart_objects/include/smart_objects/smart_schema.h
new file mode 100644
index 000000000..d00088962
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/smart_schema.h
@@ -0,0 +1,116 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SMART_SCHEMA_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SMART_SCHEMA_H_
+
+#include "utils/shared_ptr.h"
+#include "smart_objects/schema_item.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+class SmartObject;
+
+/**
+ * @brief Smart Schema.
+ */
+class CSmartSchema {
+ public:
+ /**
+ * @brief Constructor.
+ *
+ * Default constructor. Creates empty schema.
+ */
+ CSmartSchema();
+
+ /**
+ * @brief Constructor.
+ *
+ * Creates schema with given root schema item.
+ *
+ * @param SchemaItem Root schema item.
+ */
+ explicit CSmartSchema(utils::SharedPtr<ISchemaItem> SchemaItem);
+
+ /**
+ * @brief Validate smart object.
+ *
+ * @param Object SmartObject to validate.
+ *
+ * @return Result of validation.
+ */
+ Errors::eType validate(const SmartObject& Object) const;
+
+ /**
+ * @brief Set new root schema item.
+ *
+ * @param SchemaItem Root schema item.
+ */
+ void setSchemaItem(utils::SharedPtr<ISchemaItem> SchemaItem);
+
+ /**
+ * @brief Apply schema.
+ *
+ * @param Object Object to apply schema.
+ **/
+ virtual void applySchema(SmartObject& Object);
+
+ /**
+ * @brief The reverse SmartObject conversion using schema.
+ *
+ * @param object Object to convert.
+ */
+ // TODO(cpplint): Is this a non-const reference?
+ // If so, make const or use a pointer.
+ virtual void unapplySchema(SmartObject& object);
+
+ /**
+ * @brief Build smart object by smart schema having copied matched
+ * parameters from pattern smart object
+ *
+ * @param pattern_object pattern object
+ * @param result_object object to build
+ */
+ virtual void BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object) const;
+
+ virtual ~CSmartSchema() {
+ }
+
+ protected:
+ /**
+ * @brief Root schema item.
+ */
+ utils::SharedPtr<ISchemaItem> mSchemaItem;
+};
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_SMART_SCHEMA_H_
diff --git a/SDL_Core/src/components/smart_objects/include/smart_objects/string_schema_item.h b/SDL_Core/src/components/smart_objects/include/smart_objects/string_schema_item.h
new file mode 100644
index 000000000..f934e7bd4
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/include/smart_objects/string_schema_item.h
@@ -0,0 +1,145 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_STRING_SCHEMA_ITEM_H_
+#define SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_STRING_SCHEMA_ITEM_H_
+
+#include <stddef.h>
+#include <string>
+
+#include "utils/shared_ptr.h"
+
+#include "smart_objects/schema_item.h"
+#include "smart_objects/schema_item_parameter.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+/**
+ * @brief String schema item.
+ **/
+class CStringSchemaItem : public ISchemaItem {
+ public:
+ /**
+ * @brief Create a new schema item.
+ *
+ * @param MaxLength Maximum allowed string length.
+ * @param DefaultValue Default value.
+ *
+ * @return Shared pointer to a new schema item.
+ **/
+ static utils::SharedPtr<CStringSchemaItem> create(
+ const TSchemaItemParameter<size_t>& MinLength = TSchemaItemParameter<
+ size_t>(),
+ const TSchemaItemParameter<size_t>& MaxLength = TSchemaItemParameter<
+ size_t>(),
+ const TSchemaItemParameter<std::string>& DefaultValue =
+ TSchemaItemParameter<std::string>());
+
+ /**
+ * @brief Validate smart object.
+ *
+ * @param Object Object to validate.
+ *
+ * @return NsSmartObjects::Errors::eType
+ **/
+ virtual Errors::eType validate(const SmartObject& Object);
+
+ /**
+ * @brief Set default value to an object.
+ *
+ * @param Object Object to set default value.
+ *
+ * @return true if default value was successfully set, false otherwise.
+ **/
+ virtual bool setDefaultValue(SmartObject& Object);
+
+ /**
+ * @brief Build smart object by smart schema having copied matched
+ * parameters from pattern smart object
+ *
+ * @param pattern_object pattern object
+ * @param result_object object to build
+ */
+ virtual void BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object);
+
+ virtual ~CStringSchemaItem() {
+ }
+
+ private:
+ /**
+ * @brief Constructor.
+ *
+ * @param MaxLength Maximum allowed string length.
+ * @param DefaultValue Default value.
+ **/
+ CStringSchemaItem(const TSchemaItemParameter<size_t>& MinLength,
+ const TSchemaItemParameter<size_t>& MaxLength,
+ const TSchemaItemParameter<std::string>& DefaultValue);
+
+ /**
+ * @brief Copy constructor.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ **/
+ CStringSchemaItem(const CStringSchemaItem& Other);
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Not implemented to prevent misuse.
+ *
+ * @param Other Other schema item.
+ *
+ * @return Not implemented.
+ **/
+ CStringSchemaItem & operator =(const CStringSchemaItem& Other);
+
+ /**
+ * @brief Minimum allowed string length.
+ **/
+ const TSchemaItemParameter<size_t> mMinLength;
+
+ /**
+ * @brief Maximum allowed string length.
+ **/
+ const TSchemaItemParameter<size_t> mMaxLength;
+
+ /**
+ * @brief Default value.
+ **/
+ const TSchemaItemParameter<std::string> mDefaultValue;
+};
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
+#endif // SRC_COMPONENTS_SMART_OBJECTS_INCLUDE_SMART_OBJECTS_STRING_SCHEMA_ITEM_H_
diff --git a/SDL_Core/src/components/smart_objects/src/always_false_schema_item.cc b/SDL_Core/src/components/smart_objects/src/always_false_schema_item.cc
new file mode 100644
index 000000000..95209b7c7
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/always_false_schema_item.cc
@@ -0,0 +1,48 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "smart_objects/always_false_schema_item.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+CAlwaysFalseSchemaItem::CAlwaysFalseSchemaItem(void) {
+}
+
+utils::SharedPtr<CAlwaysFalseSchemaItem> CAlwaysFalseSchemaItem::create(void) {
+ return new CAlwaysFalseSchemaItem();
+}
+
+Errors::eType CAlwaysFalseSchemaItem::validate(const SmartObject& object) {
+ return Errors::ERROR;
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/smart_objects/src/always_true_schema_item.cc b/SDL_Core/src/components/smart_objects/src/always_true_schema_item.cc
new file mode 100644
index 000000000..8f486a15f
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/always_true_schema_item.cc
@@ -0,0 +1,48 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "smart_objects/always_true_schema_item.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+CAlwaysTrueSchemaItem::CAlwaysTrueSchemaItem(void) {
+}
+
+utils::SharedPtr<CAlwaysTrueSchemaItem> CAlwaysTrueSchemaItem::create(void) {
+ return new CAlwaysTrueSchemaItem();
+}
+
+Errors::eType CAlwaysTrueSchemaItem::validate(const SmartObject& object) {
+ return Errors::OK;
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/smart_objects/src/array_schema_item.cc b/SDL_Core/src/components/smart_objects/src/array_schema_item.cc
new file mode 100644
index 000000000..1888d3d79
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/array_schema_item.cc
@@ -0,0 +1,121 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "smart_objects/array_schema_item.h"
+#include "smart_objects/smart_object.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+utils::SharedPtr<CArraySchemaItem> CArraySchemaItem::create(
+ const utils::SharedPtr<ISchemaItem> & ElementSchemaItem,
+ const TSchemaItemParameter<size_t> & MinSize,
+ const TSchemaItemParameter<size_t> & MaxSize) {
+ return new CArraySchemaItem(ElementSchemaItem, MinSize, MaxSize);
+}
+
+Errors::eType CArraySchemaItem::validate(const SmartObject& Object) {
+ Errors::eType result = Errors::ERROR;
+
+ if (SmartType_Array == Object.getType()) {
+ result = Errors::OK;
+ size_t sizeLimit;
+
+ if (true == mMinSize.getValue(sizeLimit)) {
+ if (Object.length() < sizeLimit) {
+ result = Errors::OUT_OF_RANGE;
+ }
+ }
+
+ if ((Errors::OK == result) && (true == mMaxSize.getValue(sizeLimit))) {
+ if (Object.length() > sizeLimit) {
+ result = Errors::OUT_OF_RANGE;
+ }
+ }
+
+ if (Errors::OK == result) {
+ for (size_t i = 0U; i < Object.length(); ++i) {
+ result = mElementSchemaItem->validate(Object.getElement(i));
+
+ if (Errors::OK != result) {
+ break;
+ }
+ }
+ }
+ } else {
+ result = Errors::INVALID_VALUE;
+ }
+
+ return result;
+}
+
+void CArraySchemaItem::applySchema(SmartObject& Object) {
+ if (SmartType_Array == Object.getType()) {
+ for (size_t i = 0U; i < Object.length(); ++i) {
+ mElementSchemaItem->applySchema(Object[i]);
+ }
+ }
+}
+
+void CArraySchemaItem::unapplySchema(SmartObject& Object) {
+ if (SmartType_Array == Object.getType()) {
+ for (size_t i = 0U; i < Object.length(); ++i) {
+ mElementSchemaItem->unapplySchema(Object[i]);
+ }
+ }
+}
+
+void CArraySchemaItem::BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object) {
+ if (SmartType_Array == pattern_object.getType()) {
+ int32_t array_len = pattern_object.length();
+ if (array_len > 0) {
+ for (int32_t i = 0; i < array_len; i++) {
+ mElementSchemaItem->BuildObjectBySchema(pattern_object.getElement(i),
+ result_object[i]);
+ }
+ return;
+ }
+ }
+ // empty array
+ result_object = SmartObject(SmartType_Array);
+}
+
+CArraySchemaItem::CArraySchemaItem(
+ const utils::SharedPtr<ISchemaItem>& ElementSchemaItem,
+ const TSchemaItemParameter<size_t>& MinSize,
+ const TSchemaItemParameter<size_t>& MaxSize)
+ : mElementSchemaItem(ElementSchemaItem),
+ mMinSize(MinSize),
+ mMaxSize(MaxSize) {
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/smart_objects/src/bool_schema_item.cc b/SDL_Core/src/components/smart_objects/src/bool_schema_item.cc
new file mode 100644
index 000000000..11d8c667f
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/bool_schema_item.cc
@@ -0,0 +1,79 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "smart_objects/bool_schema_item.h"
+#include "smart_objects/smart_object.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+utils::SharedPtr<CBoolSchemaItem> CBoolSchemaItem::create(
+ const TSchemaItemParameter<bool> & DefaultValue) {
+ return new CBoolSchemaItem(DefaultValue);
+}
+
+Errors::eType CBoolSchemaItem::validate(const SmartObject& Object) {
+ return
+ (true == SmartType_Boolean == Object.getType()) ?
+ Errors::OK : Errors::INVALID_VALUE;
+}
+
+bool CBoolSchemaItem::setDefaultValue(SmartObject& Object) {
+ bool result = false;
+ bool value = false;
+
+ if (true == mDefaultValue.getValue(value)) {
+ Object = value;
+ result = true;
+ }
+
+ return result;
+}
+
+void CBoolSchemaItem::BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object) {
+ if (SmartType_Boolean == pattern_object.getType()) {
+ result_object = pattern_object;
+ } else {
+ bool result = setDefaultValue(result_object);
+ if (false == result) {
+ result_object = false;
+ }
+ }
+}
+
+CBoolSchemaItem::CBoolSchemaItem(
+ const TSchemaItemParameter<bool>& DefaultValue)
+ : mDefaultValue(DefaultValue) {
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
diff --git a/SDL_Core/src/components/smart_objects/src/enum_schema_item.cc b/SDL_Core/src/components/smart_objects/src/enum_schema_item.cc
new file mode 100644
index 000000000..ec2236b61
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/enum_schema_item.cc
@@ -0,0 +1,31 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "smart_objects/enum_schema_item.h"
diff --git a/SDL_Core/src/components/smart_objects/src/number_schema_item.cc b/SDL_Core/src/components/smart_objects/src/number_schema_item.cc
new file mode 100644
index 000000000..dc87da2df
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/number_schema_item.cc
@@ -0,0 +1,49 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "smart_objects/number_schema_item.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+template<> SmartType TNumberSchemaItem<int32_t>::getSmartType() {
+ return SmartType_Integer;
+}
+
+template<> SmartType TNumberSchemaItem<uint32_t>::getSmartType() {
+ return SmartType_Integer;
+}
+
+template<> SmartType TNumberSchemaItem<double>::getSmartType() {
+ return SmartType_Double;
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/smart_objects/src/object_optional_schema_item.cc b/SDL_Core/src/components/smart_objects/src/object_optional_schema_item.cc
new file mode 100644
index 000000000..7765a0e3a
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/object_optional_schema_item.cc
@@ -0,0 +1,186 @@
+/**
+ * @file object_optional_schema_item.cc
+ * @brief Schema item of object with optional parameters.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "smart_objects/object_optional_schema_item.h"
+#include "smart_objects/always_false_schema_item.h"
+#include "smart_objects/smart_object.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
+
+const char* smart_objects::ObjectOptionalSchemaItem::kOptionalGenericFieldName
+ = "<-- @@@@$$$&&& uniqe1 uancdm,vn 991188 --->";
+
+
+//----------------------------------------------------------------------------
+
+utils::SharedPtr<smart_objects::ObjectOptionalSchemaItem>
+ smart_objects::ObjectOptionalSchemaItem::create(
+ const std::map<std::string,
+ smart_objects::CObjectSchemaItem::SMember> & members) {
+ return new ObjectOptionalSchemaItem(members);
+}
+
+//----------------------------------------------------------------------------
+
+smart_objects::Errors::eType smart_objects::ObjectOptionalSchemaItem::validate(
+ const smart_objects::SmartObject & object) {
+ smart_objects::Errors::eType result = smart_objects::Errors::ERROR;
+
+ if (NsSmartDeviceLink::NsSmartObjects::SmartType_Map == object.getType()) {
+ result = smart_objects::Errors::OK;
+ const std::set<std::string> object_keys = object.enumerate();
+
+ for (std::map<std::string, CObjectSchemaItem::SMember>
+ ::const_iterator i = mMembers.begin(); i != mMembers.end(); ++i) {
+ if (object_keys.end() != object_keys.find(i->first)) {
+ result = i->second.mSchemaItem->validate(object.getElement(i->first));
+ } else if (true == i->second.mIsMandatory
+ && false == IsOptionalName(i->first)) {
+ result = smart_objects::Errors::MISSING_MANDATORY_PARAMETER;
+ }
+ if (smart_objects::Errors::OK != result) {
+ break;
+ }
+ }
+
+ bool have_optional_parameter = false;
+ std::map<std::string, CObjectSchemaItem::SMember>::const_iterator
+ optional_iterator = mMembers.find(kOptionalGenericFieldName);
+ if (smart_objects::Errors::OK == result) {
+ for (std::set<std::string>::const_iterator k = object_keys.begin();
+ k != object_keys.end(); ++k) {
+ if (mMembers.end() == mMembers.find(*k)) {
+ // this key is supposed as optional
+ if (mMembers.end() != optional_iterator) {
+ // validate optional (having any name) object member
+ have_optional_parameter = true;
+ result = optional_iterator->
+ second.mSchemaItem->validate(object.getElement(*k));
+ } else {
+ result = smart_objects::Errors::UNEXPECTED_PARAMETER;
+ break;
+ }
+ if (smart_objects::Errors::OK != result) {
+ break;
+ }
+ }
+ }
+ if (false == have_optional_parameter
+ && mMembers.end() != optional_iterator
+ && true == optional_iterator->second.mIsMandatory) {
+ result = smart_objects::Errors::MISSING_MANDATORY_UNTITLED_PARAMETER;
+ }
+ }
+ } else {
+ result = smart_objects::Errors::INVALID_VALUE;
+ }
+
+ return result;
+}
+
+//----------------------------------------------------------------------------
+
+bool smart_objects::ObjectOptionalSchemaItem::IsOptionalName(
+ const std::string& name) {
+ return (0 == name.compare(kOptionalGenericFieldName));
+}
+
+//----------------------------------------------------------------------------
+
+smart_objects::ObjectOptionalSchemaItem::ObjectOptionalSchemaItem(
+ const std::map<std::string,
+ smart_objects::CObjectSchemaItem::SMember> & members):
+ CObjectSchemaItem(members) {
+}
+
+//----------------------------------------------------------------------------
+
+std::set<std::string>
+ObjectOptionalSchemaItem::GetOptionalObjectKeys(const SmartObject& root_obj) {
+ std::set<std::string> optional_objects;
+
+ const std::set<std::string> object_keys = root_obj.enumerate();
+ typedef std::set<std::string>::const_iterator Iter;
+ for (Iter k = object_keys.begin(); k != object_keys.end(); ++k) {
+ // if an object is not among the schema items then it is optional
+ if (mMembers.end() == mMembers.find(*k)) {
+ optional_objects.insert(*k);
+ }
+ }
+
+ return optional_objects;
+}
+
+//----------------------------------------------------------------------------
+
+void ObjectOptionalSchemaItem::IterateOverOptionalItems(SmartObject* object,
+ void (ISchemaItem::* action)(SmartObject&) ) {
+ if (0 == mMembers.count(kOptionalGenericFieldName)) {
+ return; // There are no optional items
+ }
+
+ utils::SharedPtr<ISchemaItem> schema =
+ mMembers.at(kOptionalGenericFieldName).mSchemaItem;
+
+ // Then apply schema for all the optional objects
+ std::set<std::string> optionals = GetOptionalObjectKeys(*object);
+ typedef std::set<std::string>::const_iterator Iter;
+ for (Iter key = optionals.begin(); key != optionals.end(); ++key) {
+ (schema.get()->*action)((*object)[*key]);
+ }
+}
+
+//----------------------------------------------------------------------------
+
+void ObjectOptionalSchemaItem::applySchema(SmartObject & object) {
+ // At first apply schema for the regular objects
+ CObjectSchemaItem::applySchema(object);
+
+ IterateOverOptionalItems(&object, &ISchemaItem::applySchema);
+}
+
+//----------------------------------------------------------------------------
+
+void ObjectOptionalSchemaItem::unapplySchema(SmartObject & object) {
+ CObjectSchemaItem::unapplySchema(object);
+
+ IterateOverOptionalItems(&object, &ISchemaItem::unapplySchema);
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
+
diff --git a/SDL_Core/src/components/smart_objects/src/object_schema_item.cc b/SDL_Core/src/components/smart_objects/src/object_schema_item.cc
new file mode 100644
index 000000000..90591a488
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/object_schema_item.cc
@@ -0,0 +1,151 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "smart_objects/always_false_schema_item.h"
+#include "smart_objects/object_schema_item.h"
+#include "smart_objects/smart_object.h"
+
+namespace smart_objects_ns = NsSmartDeviceLink::NsSmartObjects;
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+CObjectSchemaItem::SMember::SMember()
+ : mSchemaItem(CAlwaysFalseSchemaItem::create()),
+ mIsMandatory(true) {
+}
+
+CObjectSchemaItem::SMember::SMember(
+ const utils::SharedPtr<CObjectSchemaItem::ISchemaItem>& SchemaItem,
+ const bool IsMandatory)
+ : mSchemaItem(SchemaItem),
+ mIsMandatory(IsMandatory) {
+}
+
+utils::SharedPtr<CObjectSchemaItem> CObjectSchemaItem::create(
+ const std::map<std::string, CObjectSchemaItem::SMember>& Members) {
+ return new CObjectSchemaItem(Members);
+}
+
+Errors::eType CObjectSchemaItem::validate(const SmartObject& Object) {
+ Errors::eType result = Errors::ERROR;
+
+ if (SmartType_Map == Object.getType()) {
+ result = Errors::OK;
+ const std::set<std::string> objectKeys = Object.enumerate();
+
+ for (std::map<std::string, CObjectSchemaItem::SMember>::const_iterator i =
+ mMembers.begin(); i != mMembers.end(); ++i) {
+ if (objectKeys.end() != objectKeys.find(i->first)) {
+ result = i->second.mSchemaItem->validate(Object.getElement(i->first));
+ } else {
+ if (i->second.mIsMandatory) {
+ result = Errors::MISSING_MANDATORY_PARAMETER;
+ }
+ }
+
+ if (Errors::OK != result) {
+ break;
+ }
+ }
+
+ if (Errors::OK == result) {
+ for (std::set<std::string>::const_iterator k = objectKeys.begin();
+ k != objectKeys.end(); ++k) {
+ if (mMembers.end() == mMembers.find(*k)) {
+ result = Errors::UNEXPECTED_PARAMETER;
+ break;
+ }
+ }
+ }
+ } else {
+ result = Errors::INVALID_VALUE;
+ }
+
+ return result;
+}
+
+void CObjectSchemaItem::applySchema(SmartObject& Object) {
+ if (SmartType_Map == Object.getType()) {
+ for (std::map<std::string, CObjectSchemaItem::SMember>::const_iterator i =
+ mMembers.begin(); i != mMembers.end(); ++i) {
+ if (Object.keyExists(i->first)) {
+ i->second.mSchemaItem->applySchema(Object[i->first]);
+ }
+ }
+ }
+}
+
+void CObjectSchemaItem::unapplySchema(SmartObject& Object) {
+ if (SmartType_Map == Object.getType()) {
+ for (std::map<std::string, CObjectSchemaItem::SMember>::const_iterator i =
+ mMembers.begin(); i != mMembers.end(); ++i) {
+ if (Object.keyExists(i->first)) {
+ i->second.mSchemaItem->unapplySchema(Object[i->first]);
+ }
+ }
+ }
+}
+
+void CObjectSchemaItem::BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object) {
+ result_object = SmartObject(SmartType_Map);
+
+ if (SmartType_Map == pattern_object.getType()) {
+ for (std::map<std::string, CObjectSchemaItem::SMember>::const_iterator i =
+ mMembers.begin(); i != mMembers.end(); ++i) { // for
+ if (pattern_object.keyExists(i->first)) {
+ i->second.mSchemaItem->BuildObjectBySchema(
+ pattern_object.getElement(i->first), result_object[i->first]);
+ } else if (i->second.mIsMandatory) {
+ i->second.mSchemaItem->BuildObjectBySchema(SmartObject(),
+ result_object[i->first]);
+ }
+ } // for
+ } else {
+ bool is_any_mandatory_field = false;
+ for (std::map<std::string, CObjectSchemaItem::SMember>::const_iterator i =
+ mMembers.begin(); i != mMembers.end(); ++i) { // for
+ if (i->second.mIsMandatory) {
+ is_any_mandatory_field = true;
+ i->second.mSchemaItem->BuildObjectBySchema(SmartObject(),
+ result_object[i->first]);
+ }
+ } // for
+ }
+}
+
+CObjectSchemaItem::CObjectSchemaItem(
+ const std::map<std::string, CObjectSchemaItem::SMember>& Members)
+ : mMembers(Members) {
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/smart_objects/src/schema_item.cc b/SDL_Core/src/components/smart_objects/src/schema_item.cc
new file mode 100644
index 000000000..60386442c
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/schema_item.cc
@@ -0,0 +1,55 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "smart_objects/schema_item.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+Errors::eType ISchemaItem::validate(const SmartObject& object) {
+ return Errors::ERROR;
+}
+
+bool ISchemaItem::setDefaultValue(SmartObject& Object) {
+ return false;
+}
+
+void ISchemaItem::applySchema(SmartObject& Object) {
+}
+
+void ISchemaItem::unapplySchema(SmartObject& Object) {
+}
+
+void ISchemaItem::BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object) {
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/smart_objects/src/smart_object.cc b/SDL_Core/src/components/smart_objects/src/smart_object.cc
new file mode 100644
index 000000000..581b324e9
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/smart_object.cc
@@ -0,0 +1,1015 @@
+/**
+ * @file SmartObject.cpp
+ * @brief SmartObject source file.
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "smart_objects/smart_object.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <cstdio>
+#include <algorithm>
+#include <sstream>
+#include <iomanip>
+#include <iterator>
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+SmartObject::SmartObject()
+ : m_type(SmartType_Null),
+ m_schema() {
+ m_data.str_value = NULL;
+}
+
+SmartObject::SmartObject(const SmartObject& Other)
+ : m_type(SmartType_Null),
+ m_schema() {
+ m_data.str_value = NULL;
+ duplicate(Other);
+}
+
+SmartObject::SmartObject(SmartType Type)
+ : m_type(SmartType_Null),
+ m_schema() {
+ switch (Type) {
+ case SmartType_Integer:
+ set_value_unsigned_int(0);
+ break;
+ case SmartType_Double:
+ set_value_double(0);
+ break;
+ case SmartType_Boolean:
+ set_value_bool(false);
+ break;
+ case SmartType_Character:
+ set_value_char(' ');
+ break;
+ case SmartType_String:
+ set_value_string("");
+ break;
+ case SmartType_Map:
+ m_data.map_value = new SmartMap();
+ m_type = SmartType_Map;
+ break;
+ case SmartType_Array:
+ m_data.array_value = new SmartArray();
+ m_type = SmartType_Array;
+ break;
+ case SmartType_Binary:
+ set_value_binary(SmartBinary());
+ break;
+ case SmartType_Invalid:
+ m_type = SmartType_Invalid;
+ break;
+ default: {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ break;
+ }
+ }
+}
+
+SmartObject::~SmartObject() {
+ cleanup_data();
+}
+
+SmartObject& SmartObject::operator=(const SmartObject& Other) {
+ if (this != &Other)
+ duplicate(Other);
+ return *this;
+}
+
+bool SmartObject::operator==(const SmartObject& Other) const {
+ if (m_type != Other.m_type)
+ return false;
+
+ switch (m_type) {
+ case SmartType_Integer:
+ return m_data.int_value == Other.m_data.int_value;
+ case SmartType_Double:
+ return m_data.double_value == Other.m_data.double_value;
+ case SmartType_Boolean:
+ return m_data.bool_value == Other.m_data.bool_value;
+ case SmartType_Character:
+ return m_data.char_value == Other.m_data.char_value;
+ case SmartType_String:
+ return *(m_data.str_value) == *(Other.m_data.str_value);
+ case SmartType_Map:
+ if (m_data.map_value == Other.m_data.map_value)
+ return true;
+ return std::equal(m_data.map_value->begin(), m_data.map_value->end(),
+ Other.m_data.map_value->begin());
+ case SmartType_Array:
+ if (m_data.array_value == Other.m_data.array_value)
+ return true;
+ return std::equal(m_data.array_value->begin(), m_data.array_value->end(),
+ Other.m_data.array_value->begin());
+ case SmartType_Binary:
+ if (m_data.binary_value == Other.m_data.binary_value)
+ return true;
+ return std::equal(m_data.binary_value->begin(),
+ m_data.binary_value->end(),
+ Other.m_data.binary_value->begin());
+ case SmartType_Null:
+ return true;
+ case SmartType_Invalid:
+ return true;
+ default: {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ break;
+ }
+ }
+ return false;
+}
+
+// =============================================================
+// INTEGER TYPE SUPPORT
+// =============================================================
+SmartObject::SmartObject(int32_t InitialValue)
+ : m_type(SmartType_Null),
+ m_schema() {
+ m_data.str_value = NULL;
+ set_value_integer(InitialValue);
+}
+
+int32_t SmartObject::asInt() const {
+ return convert_int();
+}
+
+SmartObject& SmartObject::operator=(int32_t NewValue) {
+ if (m_type != SmartType_Invalid) {
+ set_value_integer(NewValue);
+ }
+ return *this;
+}
+
+bool SmartObject::operator==(int32_t Value) const {
+ int32_t comp = convert_int();
+ if (comp == invalid_int_value) {
+ return false;
+ } else {
+ return comp == Value;
+ }
+}
+
+void SmartObject::set_value_integer(int32_t NewValue) {
+ set_new_type(SmartType_Integer);
+ m_data.int_value = NewValue;
+}
+
+int32_t SmartObject::convert_int() const {
+ int32_t retval;
+
+ switch (m_type) {
+ case SmartType_String:
+ retval = convert_string_to_unsigned_int(m_data.str_value);
+ break;
+ case SmartType_Boolean:
+ retval = (m_data.bool_value == true) ? 1 : 0;
+ break;
+ case SmartType_Integer:
+ retval = m_data.int_value;
+ break;
+ case SmartType_Double:
+ retval = static_cast<uint32_t>(m_data.double_value);
+ break;
+ default: {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ retval = invalid_int_value;
+ break;
+ }
+ }
+
+ return static_cast<int32_t>(retval);
+}
+
+// =============================================================
+// uint32_t TYPE SUPPORT
+// =============================================================
+SmartObject::SmartObject(uint32_t InitialValue)
+ : m_type(SmartType_Null),
+ m_schema() {
+ m_data.str_value = NULL;
+ set_value_unsigned_int(InitialValue);
+}
+
+uint32_t SmartObject::asUInt() const {
+ return convert_unsigned_int();
+}
+
+SmartObject& SmartObject::operator=(uint32_t NewValue) {
+ if (m_type != SmartType_Invalid) {
+ set_value_unsigned_int(NewValue);
+ }
+ return *this;
+}
+
+bool SmartObject::operator==(uint32_t Value) const {
+ int32_t comp = convert_unsigned_int();
+ if (comp == invalid_int_value) {
+ return false;
+ } else {
+ return comp == Value;
+ }
+}
+
+void SmartObject::set_value_unsigned_int(uint32_t NewValue) {
+ set_new_type(SmartType_Integer);
+ m_data.int_value = NewValue;
+}
+
+uint32_t SmartObject::convert_unsigned_int() const {
+ uint32_t retval;
+
+ switch (m_type) {
+ case SmartType_String:
+ retval = convert_string_to_unsigned_int(m_data.str_value);
+ break;
+ case SmartType_Boolean:
+ return (m_data.bool_value == true) ? 1 : 0;
+ case SmartType_Integer:
+ retval = m_data.int_value;
+ break;
+ case SmartType_Double:
+ retval = static_cast<uint32_t>(m_data.double_value);
+ break;
+ default: {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return invalid_int_value;
+ }
+ }
+
+ return retval;
+}
+
+// =============================================================
+// DOUBLE TYPE SUPPORT
+// =============================================================
+SmartObject::SmartObject(double InitialValue)
+ : m_type(SmartType_Null),
+ m_schema() {
+ m_data.str_value = NULL;
+ set_value_double(InitialValue);
+}
+
+double SmartObject::asDouble() const {
+ return convert_double();
+}
+
+SmartObject& SmartObject::operator=(double NewValue) {
+ if (m_type != SmartType_Invalid) {
+ set_value_double(NewValue);
+ }
+ return *this;
+}
+
+bool SmartObject::operator==(double Value) const {
+ double comp = convert_double();
+ if (comp == invalid_double_value) {
+ return false;
+ } else {
+ return comp == Value;
+ }
+}
+
+void SmartObject::set_value_double(double NewValue) {
+ set_new_type(SmartType_Double);
+ m_data.double_value = NewValue;
+}
+
+double SmartObject::convert_double(void) const {
+ double retval;
+
+ switch (m_type) {
+ case SmartType_String:
+ retval = convert_string_to_double(m_data.str_value);
+ break;
+ case SmartType_Boolean:
+ retval = (m_data.bool_value) ? 1.0 : 0.0;
+ break;
+ case SmartType_Integer:
+ retval = static_cast<double>(convert_int());
+ break;
+ case SmartType_Double:
+ retval = m_data.double_value;
+ break;
+ default:
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ retval = invalid_double_value;
+ break;
+ }
+
+ return retval;
+}
+
+// =============================================================
+// BOOL TYPE SUPPORT
+// =============================================================
+
+SmartObject::SmartObject(bool InitialValue)
+ : m_type(SmartType_Null),
+ m_schema() {
+ m_data.str_value = NULL;
+ set_value_bool(InitialValue);
+}
+
+bool SmartObject::asBool() const {
+ return convert_bool();
+}
+
+SmartObject& SmartObject::operator=(bool NewValue) {
+ if (m_type != SmartType_Invalid) {
+ set_value_bool(NewValue);
+ }
+ return *this;
+}
+
+bool SmartObject::operator==(bool Value) const {
+ bool comp = convert_bool();
+ if (comp == invalid_bool_value) {
+ return false;
+ } else {
+ return comp == Value;
+ }
+}
+
+void SmartObject::set_value_bool(bool NewValue) {
+ set_new_type(SmartType_Boolean);
+ m_data.bool_value = NewValue;
+}
+
+bool SmartObject::convert_bool() const {
+ bool retval;
+
+ switch (m_type) {
+ case SmartType_Boolean:
+ retval = m_data.bool_value;
+ break;
+ case SmartType_Integer:
+ retval = (m_data.int_value != 0);
+ break;
+ case SmartType_Double:
+ retval = (m_data.double_value != 0.0);
+ break;
+ default:
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ retval = invalid_bool_value;
+ break;
+ }
+
+ return retval;
+}
+
+// =============================================================
+// CHAR TYPE SUPPORT
+// =============================================================
+
+SmartObject::SmartObject(char InitialValue)
+ : m_type(SmartType_Null),
+ m_schema() {
+ m_data.str_value = NULL;
+ set_value_char(InitialValue);
+}
+
+char SmartObject::asChar() const {
+ return convert_char();
+}
+
+SmartObject& SmartObject::operator=(char NewValue) {
+ if (m_type != SmartType_Invalid) {
+ set_value_char(NewValue);
+ }
+ return *this;
+}
+
+bool SmartObject::operator==(char Value) const {
+ char comp = convert_char();
+ if (comp == invalid_char_value) {
+ return false;
+ } else {
+ return comp == Value;
+ }
+}
+
+void SmartObject::set_value_char(char NewValue) {
+ set_new_type(SmartType_Character);
+ m_data.char_value = NewValue;
+}
+
+char SmartObject::convert_char() const {
+ char retval;
+
+ switch (m_type) {
+ case SmartType_String:
+ retval =
+ (m_data.str_value->length() == 1) ?
+ m_data.str_value->at(0) : invalid_char_value;
+ break;
+ case SmartType_Character:
+ retval = m_data.char_value;
+ break;
+ default:
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ retval = invalid_char_value;
+ break;
+ }
+
+ return retval;
+}
+
+// =============================================================
+// STD::STRING TYPE SUPPORT
+// =============================================================
+
+SmartObject::SmartObject(const std::string& InitialValue)
+ : m_type(SmartType_Null),
+ m_schema() {
+ m_data.str_value = NULL;
+ set_value_string(InitialValue);
+}
+
+std::string SmartObject::asString() const {
+ return convert_string();
+}
+
+const char* SmartObject::asCharArray() const {
+ if (m_data.str_value != NULL) {
+ return m_data.str_value->c_str();
+ }
+
+ return "";
+}
+
+SmartObject& SmartObject::operator=(const std::string& NewValue) {
+ if (m_type != SmartType_Invalid) {
+ set_value_string(NewValue);
+ }
+ return *this;
+}
+
+bool SmartObject::operator==(std::string Value) const {
+ std::string comp = convert_string();
+ if (comp == invalid_string_value) {
+ return false;
+ } else {
+ return comp == Value;
+ }
+}
+
+void SmartObject::set_value_string(const std::string& NewValue) {
+ set_new_type(SmartType_String);
+ m_data.str_value = new std::string(NewValue);
+}
+
+std::string SmartObject::convert_string(void) const {
+ std::string retval;
+
+ switch (m_type) {
+ case SmartType_String:
+ retval = *(m_data.str_value);
+ break;
+ case SmartType_Integer:
+ char val[20];
+ sprintf(val, "%d", m_data.int_value);
+ retval = std::string(val);
+ break;
+ case SmartType_Character:
+ retval = std::string(1, m_data.char_value);
+ break;
+ case SmartType_Double:
+ retval = convert_double_to_string(m_data.double_value);
+ break;
+ default:
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ retval = invalid_cstr_value;
+ break;
+ }
+ return retval;
+}
+
+// =============================================================
+// CHAR* TYPE SUPPORT
+// =============================================================
+
+SmartObject::SmartObject(char* InitialValue)
+ : m_type(SmartType_Null),
+ m_schema() {
+ m_data.str_value = NULL;
+ set_value_cstr(InitialValue);
+ return;
+}
+
+SmartObject& SmartObject::operator=(const char* NewValue) {
+ if (m_type != SmartType_Invalid) {
+ set_value_cstr(NewValue);
+ }
+ return *this;
+}
+
+bool SmartObject::operator==(const char* Value) const {
+ std::string comp = convert_string();
+ std::string val(Value);
+ if (comp == invalid_string_value) {
+ return false;
+ } else {
+ return comp == val;
+ }
+}
+
+void SmartObject::set_value_cstr(const char* NewValue) {
+ if (NewValue) {
+ set_value_string(std::string(NewValue));
+ } else {
+ std::string tmp;
+ set_value_string(tmp);
+ }
+}
+
+// =============================================================
+// BINARY TYPE SUPPORT
+// =============================================================
+SmartObject::SmartObject(const SmartBinary& InitialValue)
+ : m_type(SmartType_Null),
+ m_schema() {
+ m_data.str_value = NULL;
+ set_value_binary(InitialValue);
+}
+
+SmartBinary SmartObject::asBinary() const {
+ return convert_binary();
+}
+
+SmartArray* SmartObject::asArray() const {
+ if (m_type != SmartType_Array) {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return NULL;
+ }
+
+ return m_data.array_value;
+}
+
+SmartObject& SmartObject::operator=(SmartBinary NewValue) {
+ if (m_type != SmartType_Invalid) {
+ set_value_binary(NewValue);
+ }
+ return *this;
+}
+
+bool SmartObject::operator==(SmartBinary Value) const {
+ SmartBinary comp = convert_binary();
+ if (comp == invalid_binary_value) {
+ return false;
+ } else {
+ return std::equal(comp.begin(), comp.end(), Value.begin());
+ }
+}
+
+void SmartObject::set_value_binary(SmartBinary NewValue) {
+ set_new_type(SmartType_Binary);
+ m_data.binary_value = new SmartBinary(NewValue);
+}
+
+SmartBinary SmartObject::convert_binary(void) const {
+ switch (m_type) {
+ case SmartType_Binary:
+ return *(m_data.binary_value);
+ default: {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return invalid_binary_value;
+ }
+ }
+
+ return invalid_binary_value;
+}
+
+// =============================================================
+// ARRAY INTERFACE SUPPORT
+// =============================================================
+
+SmartObject& SmartObject::operator[](int32_t Index) {
+ return handle_array_access(Index);
+}
+
+const SmartObject& SmartObject::operator[](int32_t Index) const {
+ return getElement(Index);
+}
+
+inline SmartObject& SmartObject::handle_array_access(int32_t Index) {
+ if (m_type == SmartType_Invalid) {
+ return *this;
+ }
+
+ if (m_type != SmartType_Array) {
+ cleanup_data();
+ m_type = SmartType_Array;
+ m_data.array_value = new SmartArray();
+ }
+
+ int32_t sz = m_data.array_value->size();
+ if (Index == -1) {
+ Index = sz;
+ }
+ if (Index == sz) {
+ SmartObject uc;
+ m_data.array_value->push_back(uc);
+ }
+ if (Index > sz || Index < 0) {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return invalid_object_value;
+ }
+ return m_data.array_value->at(Index);
+}
+
+// =============================================================
+// MAP INTERFACE SUPPORT
+// =============================================================
+
+SmartObject& SmartObject::operator[](const std::string Key) {
+ return handle_map_access(Key);
+}
+
+const SmartObject& SmartObject::operator[] (const std::string Key) const {
+ return getElement(Key);
+}
+
+SmartObject& SmartObject::operator[](char* Key) {
+ std::string str(Key);
+ return handle_map_access(str);
+}
+
+const SmartObject& SmartObject::operator[](char* Key) const {
+ std::string str(Key);
+ return getElement(str);
+}
+
+SmartObject& SmartObject::operator[](const char* Key) {
+ std::string str(Key);
+ return handle_map_access(str);
+}
+
+const SmartObject& SmartObject::operator[](const char* Key) const {
+ return getElement(Key);
+}
+
+const SmartObject& SmartObject::getElement(size_t Index) const {
+ if (SmartType_Array == m_type) {
+ if (Index < m_data.array_value->size()) {
+ return m_data.array_value->at(Index);
+ }
+ }
+
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return invalid_object_value;
+}
+
+const SmartObject& SmartObject::getElement(const std::string & Key) const {
+ if (SmartType_Map == m_type) {
+ SmartMap::const_iterator i = m_data.map_value->find(Key);
+
+ if (i != m_data.map_value->end()) {
+ return i->second;
+ }
+ }
+
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return invalid_object_value;
+}
+
+SmartObject& SmartObject::handle_map_access(const std::string Key) {
+ if (m_type == SmartType_Invalid) {
+ return *this;
+ }
+
+ // TODO(404): implement handling of non-existing keys similar to array
+ if (m_type != SmartType_Map) {
+ cleanup_data();
+ m_type = SmartType_Map;
+ m_data.map_value = new SmartMap();
+ }
+
+ // TODO(404): Add check for key presense
+ return (*(m_data.map_value))[Key];
+}
+
+// =============================================================
+// OTHER METHODS
+// =============================================================
+void SmartObject::duplicate(const SmartObject& OtherObject) {
+ SmartData newData;
+ SmartType newType = OtherObject.m_type;
+ CSmartSchema newSchema = OtherObject.m_schema;
+
+ switch (newType) {
+ case SmartType_Map:
+ newData.map_value = new SmartMap(*OtherObject.m_data.map_value);
+ break;
+ case SmartType_Array:
+ newData.array_value = new SmartArray(*OtherObject.m_data.array_value);
+ break;
+ case SmartType_Integer:
+ newData.int_value = OtherObject.m_data.int_value;
+ break;
+ case SmartType_Double:
+ newData.double_value = OtherObject.m_data.double_value;
+ break;
+ case SmartType_Boolean:
+ newData.bool_value = OtherObject.m_data.bool_value;
+ break;
+ case SmartType_Character:
+ newData.char_value = OtherObject.m_data.char_value;
+ break;
+ case SmartType_String:
+ newData.str_value = new std::string(*OtherObject.m_data.str_value);
+ break;
+ case SmartType_Binary:
+ newData.binary_value = new SmartBinary(*OtherObject.m_data.binary_value);
+ break;
+ default:
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ break;
+ }
+
+ cleanup_data();
+
+ m_type = newType;
+ m_data = newData;
+ m_schema = newSchema;
+}
+
+void SmartObject::cleanup_data() {
+ switch (m_type) {
+ case SmartType_String:
+ delete m_data.str_value;
+ break;
+ case SmartType_Map:
+ delete m_data.map_value;
+ break;
+ case SmartType_Array:
+ delete m_data.array_value;
+ break;
+ case SmartType_Binary:
+ delete m_data.binary_value;
+ break;
+ default:
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ break;
+ }
+}
+
+size_t SmartObject::length() const {
+ size_t size = 0;
+
+ switch (m_type) {
+ case SmartType_String:
+ size = m_data.str_value->size();
+ break;
+ case SmartType_Array:
+ size = m_data.array_value->size();
+ break;
+ case SmartType_Map:
+ size = m_data.map_value->size();
+ break;
+ default:
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ size = 0;
+ break;
+ }
+
+ return size;
+}
+
+void SmartObject::set_new_type(SmartType NewType) {
+ cleanup_data();
+ m_type = NewType;
+}
+
+double SmartObject::convert_string_to_double(const std::string* Value) {
+ if (0 == Value->size()) {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return invalid_double_value;
+ }
+
+ char* ptr;
+ errno = 0;
+
+ double result = strtod(Value->c_str(), &ptr);
+ if (errno || (ptr != (Value->c_str() + Value->length()))) {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return invalid_double_value;
+ }
+
+ return result;
+}
+
+std::string SmartObject::convert_double_to_string(const double& Value) {
+ std::stringstream ss;
+
+ // convert double to string w fixed notation, hi precision
+ ss << std::fixed << std::setprecision(10) << Value;
+
+ // output to std::string
+ std::string s = ss.str();
+
+ // remove trailing 000s (123.1200 => 123.12, 123.000 => 123.)
+ s.erase(s.find_last_not_of('0') + 1, std::string::npos);
+ if (s[s.size() - 1] == '.') {
+ // remove dangling decimal (123. => 123)
+ s.erase(s.end() - 1);
+ }
+ return s;
+}
+
+uint32_t SmartObject::convert_string_to_unsigned_int(
+ const std::string* Value) {
+ if (0 == Value->size()) {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return invalid_int_value;
+ }
+
+ char* ptr;
+ errno = 0;
+ uint32_t result = strtol(Value->c_str(), &ptr, 10);
+ if (errno || (ptr != (Value->c_str() + Value->length()))) {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return invalid_int_value;
+ }
+
+ return result;
+}
+
+SmartType SmartObject::getType() const {
+ return m_type;
+}
+
+std::string NsSmartDeviceLink::NsSmartObjects::SmartObject::OperatorToTransform(const SmartMap::value_type &pair) {
+ return pair.first;
+}
+
+std::set<std::string> SmartObject::enumerate() const {
+ std::set<std::string> keys;
+
+ if(m_type == SmartType_Map) {
+ std::transform(
+ m_data.map_value->begin(),
+ m_data.map_value->end(),
+ std::inserter(keys, keys.end()),
+ //operator[](const SmartMap::value_type &pair){return pair.first;}
+ &NsSmartDeviceLink::NsSmartObjects::SmartObject::OperatorToTransform
+ );
+ }
+ return keys;
+}
+
+bool SmartObject::keyExists(const std::string & Key) const {
+ if (m_type != SmartType_Map) {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return false;
+ }
+
+ return m_data.map_value->count(Key);
+}
+
+bool SmartObject::erase(const std::string & Key) {
+ if (m_type != SmartType_Map) {
+/*
+#if !defined UNIT_TESTS
+ NOTREACHED();
+#endif
+*/
+ return false;
+ }
+
+ return (1 == m_data.map_value->erase(Key));
+}
+
+bool SmartObject::isValid() const {
+ return (Errors::OK == m_schema.validate(*this));
+}
+
+Errors::eType SmartObject::validate() {
+ return m_schema.validate(*this);
+}
+
+void SmartObject::setSchema(CSmartSchema schema) {
+ m_schema = schema;
+}
+
+CSmartSchema SmartObject::getSchema() {
+ return m_schema;
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/smart_objects/src/smart_schema.cc b/SDL_Core/src/components/smart_objects/src/smart_schema.cc
new file mode 100644
index 000000000..f956a5faa
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/smart_schema.cc
@@ -0,0 +1,66 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+#include "smart_objects/smart_schema.h"
+#include "smart_objects/always_true_schema_item.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+CSmartSchema::CSmartSchema()
+ : mSchemaItem(CAlwaysTrueSchemaItem::create()) {
+}
+
+CSmartSchema::CSmartSchema(utils::SharedPtr<ISchemaItem> SchemaItem)
+ : mSchemaItem(SchemaItem) {
+}
+
+Errors::eType CSmartSchema::validate(const SmartObject& object) const {
+ return mSchemaItem->validate(object);
+}
+
+void CSmartSchema::setSchemaItem(utils::SharedPtr<ISchemaItem> schemaItem) {
+ mSchemaItem = schemaItem;
+}
+
+void CSmartSchema::applySchema(SmartObject& Object) {
+ mSchemaItem->applySchema(Object);
+}
+
+void CSmartSchema::unapplySchema(SmartObject& Object) {
+ mSchemaItem->unapplySchema(Object);
+}
+
+void CSmartSchema::BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object) const {
+ mSchemaItem->BuildObjectBySchema(pattern_object, result_object);
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/smart_objects/src/string_schema_item.cc b/SDL_Core/src/components/smart_objects/src/string_schema_item.cc
new file mode 100644
index 000000000..769cf14b8
--- /dev/null
+++ b/SDL_Core/src/components/smart_objects/src/string_schema_item.cc
@@ -0,0 +1,107 @@
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#include "smart_objects/smart_object.h"
+#include "smart_objects/string_schema_item.h"
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+utils::SharedPtr<CStringSchemaItem> CStringSchemaItem::create(
+ const TSchemaItemParameter<size_t>& MinLength,
+ const TSchemaItemParameter<size_t>& MaxLength,
+ const TSchemaItemParameter<std::string>& DefaultValue) {
+ return new CStringSchemaItem(MinLength, MaxLength, DefaultValue);
+}
+
+Errors::eType CStringSchemaItem::validate(const SmartObject& Object) {
+ Errors::eType result = Errors::ERROR;
+
+ if (SmartType_String == Object.getType()) {
+ result = Errors::OK;
+
+ size_t minLength;
+ size_t maxLength;
+ std::string value = Object.asString();
+
+ if (true == mMinLength.getValue(minLength)) {
+ if (value.size() < minLength) {
+ result = Errors::INVALID_VALUE;
+ }
+ }
+
+ if (true == mMaxLength.getValue(maxLength)) {
+ if (value.size() > maxLength) {
+ result = Errors::OUT_OF_RANGE;
+ }
+ }
+
+ } else {
+ result = Errors::INVALID_VALUE;
+ }
+
+ return result;
+}
+
+bool CStringSchemaItem::setDefaultValue(SmartObject& Object) {
+ bool result = false;
+ std::string value;
+
+ if (true == mDefaultValue.getValue(value)) {
+ Object = value;
+ result = true;
+ }
+
+ return result;
+}
+
+void CStringSchemaItem::BuildObjectBySchema(const SmartObject& pattern_object,
+ SmartObject& result_object) {
+ if (SmartType_String == pattern_object.getType()) {
+ result_object = pattern_object;
+ } else {
+ bool result = setDefaultValue(result_object);
+ if (false == result) {
+ result_object = std::string("");
+ }
+ }
+}
+
+CStringSchemaItem::CStringSchemaItem(
+ const TSchemaItemParameter<size_t>& MinLength,
+ const TSchemaItemParameter<size_t>& MaxLength,
+ const TSchemaItemParameter<std::string>& DefaultValue)
+ : mMinLength(MinLength),
+ mMaxLength(MaxLength),
+ mDefaultValue(DefaultValue) {
+}
+
+} // namespace NsSmartObjects
+} // namespace NsSmartDeviceLink
diff --git a/SDL_Core/src/components/transport_manager/CMakeLists.txt b/SDL_Core/src/components/transport_manager/CMakeLists.txt
new file mode 100644
index 000000000..f614b32d7
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/CMakeLists.txt
@@ -0,0 +1,81 @@
+include_directories (
+ ./include
+ ../utils/include/
+ ../protocol_handler/include
+ ../connection_handler/include
+ ../config_profile/include
+ ../resumption/include
+ ${CMAKE_SOURCE_DIR}/src/thirdPartyLibs/jsoncpp/include
+ ${CMAKE_SOURCE_DIR}/src/thirdPartyLibs/libusbx-1.0.16
+)
+if (BUILD_BT_SUPPORT)
+ include_directories(
+ )
+endif()
+
+
+set (SOURCES
+ ./src/transport_manager_impl.cc
+ ./src/transport_manager_default.cc
+ ./src/transport_adapter/transport_adapter_listener_impl.cc
+ ./src/transport_adapter/transport_adapter_impl.cc
+ ./src/tcp/tcp_transport_adapter.cc
+ ./src/transport_adapter/threaded_socket_connection.cc
+ ./src/tcp/tcp_client_listener.cc
+ ./src/tcp/tcp_device.cc
+ ./src/transport_adapter/transport_adapter_event.cc
+ ./src/tcp/tcp_socket_connection.cc
+ ./src/tcp/tcp_connection_factory.cc
+)
+
+if (BUILD_AVAHI_SUPPORT)
+ list (APPEND SOURCES
+ ./src/tcp/dnssd_service_browser.cc
+ )
+endif()
+if (BUILD_BT_SUPPORT)
+ list (APPEND SOURCES
+ ./src/bluetooth/bluetooth_device_scanner.cc
+ ./src/bluetooth/bluetooth_transport_adapter.cc
+ ./src/bluetooth/bluetooth_connection_factory.cc
+ ./src/bluetooth/bluetooth_socket_connection.cc
+ ./src/bluetooth/bluetooth_device.cc
+ )
+endif()
+
+if (BUILD_USB_SUPPORT)
+ list (APPEND SOURCES
+ ./src/usb/usb_aoa_adapter.cc
+ ./src/usb/usb_connection_factory.cc
+ ./src/usb/usb_device_scanner.cc
+ )
+ if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ list (APPEND SOURCES
+ ./src/usb/libusb/usb_handler.cc
+ ./src/usb/libusb/usb_connection.cc
+ ./src/usb/libusb/platform_usb_device.cc
+ )
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "QNX")
+ list(APPEND SOURCES
+ ./src/usb/qnx/usb_handler.cc
+ ./src/usb/qnx/usb_connection.cc
+ ./src/usb/qnx/platform_usb_device.cc
+ )
+ endif()
+endif(BUILD_USB_SUPPORT)
+
+add_library("TransportManager" ${SOURCES})
+
+if (BUILD_USB_SUPPORT)
+ if (CMAKE_SYSTEM_NAME STREQUAL "QNX")
+ target_link_libraries ("TransportManager" usbdi )
+ endif()
+endif(BUILD_USB_SUPPORT)
+
+if (BUILD_AVAHI_SUPPORT)
+ target_link_libraries ("TransportManager" avahi-common)
+endif()
+target_link_libraries ("TransportManager" log4cxx)
+if (BUILD_BT_SUPPORT)
+ target_link_libraries("TransportManager" bluetooth)
+endif()
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_connection_factory.h b/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_connection_factory.h
new file mode 100644
index 000000000..1bf8cbbcb
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_connection_factory.h
@@ -0,0 +1,98 @@
+/**
+ * \file bluetooth_connection_factory.h
+ * \brief BluetoothConnectionFactory class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_BLUETOOTH_CONNECTION_FACTORY_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_BLUETOOTH_CONNECTION_FACTORY_H_
+
+#include "transport_manager/transport_adapter/server_connection_factory.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class TransportAdapterController;
+
+/**
+ * @brief Create connections.
+ */
+class BluetoothConnectionFactory : public ServerConnectionFactory {
+ public:
+
+ /**
+ * @brief Constructor.
+ *
+ * @param controller Pointer to the device adapter controller.
+ */
+ BluetoothConnectionFactory(TransportAdapterController* controller);
+ protected:
+
+ /**
+ * @brief Start BT connection factory.
+ */
+ virtual TransportAdapter::Error Init();
+
+ /**
+ * @brief Create bluetooth socket connection.
+ *
+ * @param device_uid Device unique identifier.
+ * @param ap_handle Handle of application.
+ */
+ virtual TransportAdapter::Error CreateConnection(const DeviceUID& device_uid,
+ const ApplicationHandle& app_handle);
+
+ /**
+ * @brief
+ */
+ virtual void Terminate();
+
+ /**
+ * @brief Check for initialization.
+ *
+ * @return true - initialized.
+ * false - not initialized.
+ */
+ virtual bool IsInitialised() const;
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~BluetoothConnectionFactory();
+ private:
+ TransportAdapterController* controller_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_CONNECTION_FACTORY_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device.h b/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device.h
new file mode 100644
index 000000000..f34fd089b
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device.h
@@ -0,0 +1,128 @@
+/**
+ * \file bluetooth_device.h
+ * \brief BluetoothDevice class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_BLUETOOTH_DEVICE_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_BLUETOOTH_DEVICE_H_
+
+#include <bluetooth/bluetooth.h>
+#include <bluetooth/hci.h>
+#include <bluetooth/hci_lib.h>
+#include <bluetooth/sdp.h>
+#include <bluetooth/sdp_lib.h>
+#include <bluetooth/rfcomm.h>
+
+#include <vector>
+
+#include "transport_manager/common.h"
+#include "transport_manager/transport_adapter/device.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+/**
+ * @brief Type definition for vector that holds uint8_t variables.
+ */
+typedef std::vector<uint8_t> RfcommChannelVector;
+
+/**
+ * @brief Information about device that use bluetooth transport.
+ */
+class BluetoothDevice : public Device {
+ public:
+
+ /**
+ * @brief Return device unique identifier.
+ *
+ * @return string with device unique identifier.
+ */
+ static std::string GetUniqueDeviceId(const bdaddr_t& device_address);
+
+ /**
+ * @brief Constructor.
+ *
+ * @param address Bluetooth address.
+ * @param name Human-readable device name.
+ * @param rfcomm_channels List of RFCOMM channels where SmartDeviceLink service has been discovered.
+ **/
+ BluetoothDevice(const bdaddr_t& device_address, const char* device_name,
+ const RfcommChannelVector& rfcomm_channels);
+
+ /**
+ * @brief Compare devices.
+ *
+ * This method checks whether two SBluetoothDevice structures
+ * refer to the same device.
+ *
+ * @param other Device to compare with.
+ *
+ * @return true if devices are equal, false otherwise.
+ **/
+ virtual bool IsSameAs(const Device* other) const;
+
+ bool GetRfcommChannel(const ApplicationHandle app_handle,
+ uint8_t* channel_out);
+
+ /**
+ * @brief Update list of applications available on device.
+ *
+ * @return Container with list of applications.
+ */
+ virtual ApplicationList GetApplicationList() const;
+
+ /**
+ * @brief Return device bluetooth address.
+ *
+ * @return Device bluetooth address.
+ */
+ const bdaddr_t& address() const {
+ return address_;
+ }
+
+ private:
+ /**
+ * @brief Device bluetooth address.
+ **/
+ bdaddr_t address_;
+
+ /**
+ * @brief List of RFCOMM channels where SmartDeviceLink service has been discovered.
+ **/
+ RfcommChannelVector rfcomm_channels_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_DEVICE_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h b/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h
new file mode 100644
index 000000000..b89082209
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h
@@ -0,0 +1,178 @@
+/**
+ * \file bluetooth_device_scanner.h
+ * \brief BluetoothDeviceScanner class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_BLUETOOTH_DEVICE_SCANNER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_BLUETOOTH_DEVICE_SCANNER_H_
+
+#include <bluetooth/bluetooth.h>
+#include <bluetooth/hci.h>
+#include <bluetooth/hci_lib.h>
+#include <bluetooth/sdp.h>
+#include <bluetooth/sdp_lib.h>
+#include <bluetooth/rfcomm.h>
+
+#include "transport_manager/transport_adapter/device_scanner.h"
+#include "utils/conditional_variable.h"
+#include "utils/lock.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class TransportAdapterController;
+
+/**
+ * @brief Scan for devices using bluetooth.
+ */
+class BluetoothDeviceScanner : public DeviceScanner {
+ public:
+
+ /**
+ * @brief Constructor.
+ * @param controller Transport adapter controller
+ * @param auto_repeat_search true - autorepeated or continous device search, false - search on demand
+ * @param repeat_search_pause_sec - pause between device searches, 0 means continous search
+ */
+ BluetoothDeviceScanner(TransportAdapterController* controller,
+ bool auto_repeat_search, int repeat_search_pause_sec);
+
+ /**
+ * @brief Destructor.
+ */
+ ~BluetoothDeviceScanner();
+
+ /**
+ * @brief Main thread initialization.
+ */
+ void Thread();
+ protected:
+
+ /**
+ * @brief Start device scanner.
+ *
+ * @return Error information about reason of initialization failure.
+ */
+ virtual TransportAdapter::Error Init();
+
+ /**
+ * @brief Terminates device scanner thread
+ */
+ virtual void Terminate();
+
+ /**
+ * @brief Request device search
+ *
+ * @return Error information about reason of Scan failure.
+ */
+ virtual TransportAdapter::Error Scan();
+
+ /**
+ * @brief Check device scanner for initialization.
+ *
+ * @return true - initialized.
+ * false - not initialized.
+ */
+ virtual bool IsInitialised() const;
+ private:
+
+ typedef std::vector<uint8_t> RfcommChannelVector;
+
+ /**
+ * @brief Waits for external scan request or time out for repeated search or terminate request
+ */
+ void TimedWaitForDeviceScanRequest();
+
+ /**
+ * @brief Finds RFCOMM-channels of SDL enabled applications for set of devices
+ * @param device_addresses Bluetooth addresses to search on
+ * @return List of RFCOMM-channels lists
+ */
+ std::vector<RfcommChannelVector> DiscoverSmartDeviceLinkRFCOMMChannels(
+ const std::vector<bdaddr_t>& device_addresses);
+
+ /**
+ * @brief Finds RFCOMM-channels of SDL enabled applications for given device
+ * @param[out] discovered List of RFCOMM-channels to fill
+ * @return true - if search was OK, false if it failed
+ */
+ bool DiscoverSmartDeviceLinkRFCOMMChannels(const bdaddr_t& device_address,
+ RfcommChannelVector* discovered);
+
+ /**
+ * @brief Summarizes the total list of devices (paired and scanned) and notifies controller
+ */
+ void UpdateTotalDeviceList();
+
+ /**
+ * @brief Performs search of SDL-enabled devices
+ */
+ void DoInquiry();
+
+ /**
+ * @brief Checks if given devices have SDL service and creates appropriate BluetoothDevice objects
+ * @param bd_address List of bluetooth addresses to check
+ * @param device_handle HCI handle
+ * @param[out] discovered_devices List of created BluetoothDevice objects to fill
+ */
+ void CheckSDLServiceOnDevices(const std::vector<bdaddr_t>& bd_address,
+ int device_handle,
+ DeviceVector* discovered_devices);
+
+ TransportAdapterController* controller_;
+ pthread_t thread_;
+ bool thread_started_;
+ bool shutdown_requested_;
+ bool device_scan_requested_;
+ bool ready_;
+ sync_primitives::Lock device_scan_requested_lock_;
+ sync_primitives::ConditionalVariable device_scan_requested_cv_;
+
+ std::vector<bdaddr_t> paired_devices_;
+
+ DeviceVector paired_devices_with_sdl_;
+ DeviceVector found_devices_with_sdl_;
+
+ /**
+ * @brief UUID of SmartDeviceLink service.
+ **/
+ uuid_t smart_device_link_service_uuid_;
+
+ const bool auto_repeat_search_;
+ const int auto_repeat_pause_sec_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif /* BLUETOOTH_DEVICE_SCANNER_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_socket_connection.h b/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_socket_connection.h
new file mode 100644
index 000000000..e1606da87
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_socket_connection.h
@@ -0,0 +1,83 @@
+/**
+ * \file bluetooth_socket_connection.h
+ * \brief BluetoothSocketConnection class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_BLUETOOTH_SOCKET_CONNECTION_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_BLUETOOTH_SOCKET_CONNECTION_H_
+
+#include "transport_manager/transport_adapter/threaded_socket_connection.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class TransportAdapterController;
+
+/**
+ * @brief Class responsible for communication over bluetooth sockets.
+ */
+class BluetoothSocketConnection : public ThreadedSocketConnection {
+ public:
+
+ /**
+ * @brief Constructor.
+ *
+ * @param device_uid Device unique identifier.
+ * @param app_handle Handle of device.
+ * @param controller Pointer to the device adapter controller.
+ */
+ BluetoothSocketConnection(const DeviceUID& device_uid,
+ const ApplicationHandle& app_handle,
+ TransportAdapterController* controller);
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~BluetoothSocketConnection();
+ protected:
+
+ /**
+ * @brief Establish connection.
+ *
+ * @param error Connection error.
+ *
+ * @return True - connection established.
+ * false - connection not established.
+ */
+ virtual bool Establish(ConnectError** error);
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif /* BLUETOOTH_SOCKET_CONNECTION_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_transport_adapter.h b/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_transport_adapter.h
new file mode 100644
index 000000000..2816581a2
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_transport_adapter.h
@@ -0,0 +1,81 @@
+/**
+ * \file bluetooth_transport_adapter.h
+ * \brief BluetoothAdapter class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_BLUETOOTH_ADAPTER_H
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_BLUETOOTH_ADAPTER_H
+
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+/**
+ * @brief Transport adapter that use bluetooth transport.
+ */
+class BluetoothTransportAdapter : public TransportAdapterImpl {
+ public:
+ /**
+ * @brief Constructor.
+ */
+ BluetoothTransportAdapter();
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~BluetoothTransportAdapter();
+ protected:
+
+ /**
+ * @brief Return type of device.
+ */
+ virtual DeviceType GetDeviceType() const;
+
+ /**
+ * @brief Store adapter state in last state singleton
+ */
+ virtual void Store() const;
+
+ /**
+ * @brief Restore adapter state from last state singleton
+ *
+ * @return True on success false otherwise
+ */
+ virtual bool Restore();
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_BLUETOOTH_ADAPTER
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/common.h b/SDL_Core/src/components/transport_manager/include/transport_manager/common.h
new file mode 100644
index 000000000..62ee1ff12
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/common.h
@@ -0,0 +1,86 @@
+/**
+ * \file common.h
+ * \brief Common definitions.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_COMMON_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_COMMON_H_
+
+#include <set>
+#include <vector>
+#include <string>
+
+#include "protocol_handler/raw_message.h"
+#include "utils/shared_ptr.h"
+
+/**
+ * @brief - transport_manager namespace
+ */
+namespace transport_manager {
+
+/**
+ * @brief Shared pointer for RawMessage class
+ **/
+
+/**
+ * @brief Type definition for variable that hold shared pointer to raw message.
+ */
+typedef utils::SharedPtr<protocol_handler::RawMessage> RawMessageSptr;
+
+/**
+ * @brief Type definition for variable that hold handle of device.
+ */
+typedef unsigned int DeviceHandle;
+
+/**
+ * @brief Type definition for variable that hold connection unique identifier.
+ */
+typedef unsigned int ConnectionUID;
+
+/**
+ * @brief Type definition for variable that hold device unique identifier.
+ */
+typedef std::string DeviceUID;
+
+/**
+ * @brief Type definition for variable that hold handle of application.
+ */
+typedef int ApplicationHandle;
+
+/**
+ * @brief Type definition for vector that contain ApplicationHandle variables.
+ */
+typedef std::vector<ApplicationHandle> ApplicationList;
+
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_COMMON.H
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/error.h b/SDL_Core/src/components/transport_manager/include/transport_manager/error.h
new file mode 100644
index 000000000..43bcd1630
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/error.h
@@ -0,0 +1,147 @@
+/**
+ * \file error.h
+ * \brief Error classes header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_ERROR_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_ERROR_H_
+
+#include <string>
+
+namespace transport_manager {
+
+/**
+ * @brief Class that hold information about error.
+ */
+class BaseError {
+ public:
+ /**
+ * @brief Constructor.
+ */
+ BaseError() {}
+
+ /**
+ * @brief Constructor.
+ *
+ * @param desc Description of error.
+ */
+ explicit BaseError(const std::string& desc) : description_(desc) {}
+
+ /**
+ * @brief Constructor.
+ *
+ * @param other Error class.
+ */
+ BaseError(const BaseError& other) : description_(other.description_) {}
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~BaseError() {}
+
+ /**
+ * @brief Return description of error.
+ *
+ * @return string with description of error.
+ */
+ virtual const std::string& text() const {
+ return description_;
+ }
+
+ private:
+ std::string description_;
+};
+
+/**
+ * @brief Error that originates during device search.
+ */
+class SearchDeviceError : public BaseError {
+};
+
+/**
+ * @brief Error that originates during connection.
+ */
+class ConnectError : public BaseError {
+};
+
+/**
+ * @brief Error that originates during disconnection.
+ */
+class DisconnectError : public BaseError {
+};
+
+/**
+ * @brief Error that originates during device disconnection.
+ */
+class DisconnectDeviceError : public BaseError {
+};
+
+/**
+ * @brief Error that originates during data receive..
+ */
+class DataReceiveError : public BaseError {
+};
+
+/**
+ * @brief Error that originates during data send.
+ */
+class DataSendError : public BaseError {
+ public:
+ /**
+ * @brief Constructor.
+ */
+ DataSendError() : BaseError() {}
+
+ /**
+ * @brief Constructor.
+ *
+ * @param Error description.
+ */
+ explicit DataSendError(const std::string &desc) : BaseError(desc) {}
+};
+
+/**
+ * @brief Error that originates during data sending timeout.
+ */
+class DataSendTimeoutError : public DataSendError {
+};
+
+
+/**
+ * @brief Error that originates during communication.
+ */
+class CommunicationError : public BaseError {
+};
+
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_ERROR_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/info.h b/SDL_Core/src/components/transport_manager/include/transport_manager/info.h
new file mode 100644
index 000000000..21b8d9952
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/info.h
@@ -0,0 +1,161 @@
+/*
+ * \file info.h
+ * \brief Information classes header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_INFO_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_INFO_H_
+
+#include <string>
+#include "transport_manager/common.h"
+
+/**
+ * @brief transport_manager name space
+ */
+namespace transport_manager {
+
+/**
+ * @brief Base information class.
+ */
+class Info {
+ protected:
+
+ /**
+ * @brief Variable that hold name.
+ */
+ std::string name_;
+
+ public:
+
+ /**
+ * @brief Constructor.
+ */
+ Info() {}
+
+ /**
+ * @brief Constructor
+ *
+ * @param name Info class object name.
+ */
+ explicit Info(std::string name)
+ : name_(name) {
+ }
+
+ /**
+ * @brief Return string with name.
+ */
+ std::string name() const{
+ return name_;
+ }
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~Info() {}
+};
+
+/**
+ * @brief Hold information about device.
+ */
+class DeviceInfo : public Info {
+ protected:
+
+ /**
+ * @brief Variable that hold MAC adress of device.
+ */
+ std::string mac_address_;
+
+ /**
+ * @brief Variable that hold handle of device.
+ */
+ DeviceHandle device_handle_;
+
+ public:
+
+ /**
+ * @brief Constructor.
+ *
+ * @param device_handle Handle of device.
+ * @param mac_adress MAC adress of device.
+ * @param name Name of device.
+ */
+ DeviceInfo(DeviceHandle device_handle, std::string mac_address,
+ std::string name)
+ : Info(name),
+ mac_address_(mac_address),
+ device_handle_(device_handle) {
+ }
+
+ /**
+ * @brief Return mac_adress.
+ */
+ std::string mac_address() const {
+ return mac_address_;
+ }
+
+ /**
+ * @brief Return device_handle field.
+ */
+ DeviceHandle device_handle() const {
+ return device_handle_;
+ }
+
+ /**
+ * @brief Overloaded operator "==".
+ */
+ friend bool operator ==(const DeviceInfo &first, const DeviceInfo &second);
+
+ // Needed for std::set container
+ bool operator <(const DeviceInfo& than) const {
+ return device_handle_ < than.device_handle_;
+ }
+};
+
+/**
+ * @brief Assign fields of one DeviceInfo class to another.
+ */
+inline bool operator ==(const DeviceInfo &first, const DeviceInfo &second) {
+ return first.name_ == second.name_
+ && first.mac_address_ == second.mac_address_
+ && first.device_handle_ == second.device_handle_;
+}
+
+/**
+ * @brief AdapterInfo class
+ */
+class AdapterInfo : public Info {
+
+};
+}
+
+#endif /* SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_INFO_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/dnssd_service_browser.h b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/dnssd_service_browser.h
new file mode 100644
index 000000000..9e8523f1b
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/dnssd_service_browser.h
@@ -0,0 +1,133 @@
+/**
+ * \file dnssd_service_browser.h
+ * \brief DnssdServiceBrowser class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_DNSSD_SERVICE_BROWSER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_DNSSD_SERVICE_BROWSER_H_
+
+#include <string>
+#include <vector>
+#include <pthread.h>
+#include <avahi-client/client.h>
+#include <avahi-client/lookup.h>
+#include <avahi-common/error.h>
+#include <avahi-common/thread-watch.h>
+
+#include "transport_manager/transport_adapter/device_scanner.h"
+#include "transport_manager/transport_adapter/transport_adapter.h"
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+struct DnssdServiceRecord {
+ AvahiIfIndex interface;
+ AvahiProtocol protocol;
+ std::string domain_name;
+ std::string host_name;
+ std::string name;
+ std::string type;
+ uint16_t port;
+ uint32_t addr;
+};
+
+#define DNSSD_DEFAULT_SERVICE_TYPE "_ford-sdlapp._tcp"
+
+/**
+ * @brief DNS service discovery class.
+ */
+class DnssdServiceBrowser : public DeviceScanner {
+ public:
+ /**
+ * @brief Constructor.
+ *
+ * @param controller Pointer to the device adapter controller.
+ */
+ DnssdServiceBrowser(class TransportAdapterController* controller);
+ virtual ~DnssdServiceBrowser();
+ protected:
+ virtual TransportAdapter::Error Init();
+ virtual TransportAdapter::Error Scan();
+ virtual void Terminate();
+ virtual bool IsInitialised() const;
+ private:
+ TransportAdapter::Error CreateAvahiClientAndBrowser();
+ void AddService(AvahiIfIndex interface, AvahiProtocol protocol,
+ const char *name, const char *type, const char *domain);
+ void RemoveService(AvahiIfIndex interface, AvahiProtocol protocol,
+ const char *name, const char *type, const char *domain);
+
+ void OnClientConnected();
+ void OnClientFailure();
+
+ DeviceVector PrepareDeviceVector() const;
+
+ void ServiceResolved(const DnssdServiceRecord& service_record);
+ void ServiceResolveFailed(const DnssdServiceRecord& service_record);
+
+ friend void AvahiClientCallback(AvahiClient *avahi_client,
+ AvahiClientState avahi_client_state,
+ void* data);
+ friend void AvahiServiceBrowserCallback(
+ AvahiServiceBrowser *avahi_service_browser, AvahiIfIndex interface,
+ AvahiProtocol protocol, AvahiBrowserEvent event, const char *name,
+ const char *type, const char *domain, AvahiLookupResultFlags flags,
+ void* data);
+
+ friend void AvahiServiceResolverCallback(
+ AvahiServiceResolver* avahi_service_resolver, AvahiIfIndex interface,
+ AvahiProtocol protocol, AvahiResolverEvent event, const char* name,
+ const char* type, const char* domain, const char* host_name,
+ const AvahiAddress* avahi_address, uint16_t port, AvahiStringList* txt,
+ AvahiLookupResultFlags flags, void *data);
+
+ TransportAdapterController* controller_;
+
+ AvahiServiceBrowser* avahi_service_browser_;
+ AvahiThreadedPoll* avahi_threaded_poll_;
+ AvahiClient* avahi_client_;
+
+ typedef std::vector<DnssdServiceRecord> ServiceRecords;
+ ServiceRecords service_records_;
+
+ pthread_mutex_t mutex_;
+
+ bool initialised_;
+}
+;
+
+} // namespace
+} // namespace
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_DNSSD_SERVICE_BROWSER
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h
new file mode 100644
index 000000000..34269117e
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h
@@ -0,0 +1,115 @@
+/**
+ * \file tcp_client_listener.h
+ * \brief TcpClientListener class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_CLIENT_LISTENER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_CLIENT_LISTENER_H_
+
+#include "transport_manager/transport_adapter/client_connection_listener.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class TransportAdapterController;
+
+/**
+ * @brief Listener of device adapter that use TCP transport.
+ */
+class TcpClientListener : public ClientConnectionListener {
+ public:
+
+ /**
+ * @breaf Constructor.
+ *
+ * @param controller Pointer to the device adapter controller.
+ * @param port Port No.
+ */
+ TcpClientListener(TransportAdapterController* controller, const uint16_t port);
+
+ /**
+ * @brief Start TCP client listener thread.
+ */
+ void Thread();
+ protected:
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~TcpClientListener();
+
+ /**
+ * @brief Run TCP client listener.
+ *
+ * @return Error information about possible reason of starting TCP listener listener failure.
+ */
+ virtual TransportAdapter::Error Init();
+
+ /**
+ * @brief Stop TCP client listener.
+ */
+ virtual void Terminate();
+
+ /**
+ * @brief Check initialization.
+ *
+ * @return True if initialized.
+ * @return False if not initialized.
+ */
+ virtual bool IsInitialised() const;
+
+ /**
+ * @brief
+ *
+ * @return Error information about possible reason of failure.
+ */
+ virtual TransportAdapter::Error StartListening();
+
+ /**
+ * @brief Terminate TCP client listener thread.
+ */
+ virtual TransportAdapter::Error StopListening();
+ private:
+ const uint16_t port_;
+ TransportAdapterController* controller_;
+ pthread_t thread_;
+ int socket_;
+ bool thread_started_;
+ bool shutdown_requested_;
+ bool thread_stop_requested_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif /* TCP_CLIENT_LISTENER_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_connection_factory.h b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_connection_factory.h
new file mode 100644
index 000000000..ac2ea74ac
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_connection_factory.h
@@ -0,0 +1,99 @@
+/**
+ * \file tcp_connection_factory.h
+ * \brief TcpConnectionFactory class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_CONNECTION_FACTORY_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_CONNECTION_FACTORY_H_
+
+#include "transport_manager/transport_adapter/server_connection_factory.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+/**
+ * @brief Create connections.
+ */
+class TcpConnectionFactory : public ServerConnectionFactory {
+ public:
+
+ /**
+ * @brief Constructor.
+ *
+ * @param controller Pointer to the device adapter controller.
+ */
+ TcpConnectionFactory(TransportAdapterController* controller);
+ protected:
+
+ /**
+ * @brief Start TCP connection factory.
+ */
+ virtual TransportAdapter::Error Init();
+
+ /**
+ * @brief Constructor.
+ *
+ * @param device_uid device unique identifier.
+ * @param app_handle Handle of application.
+ *
+ * @return Error information about possible reason of failure.
+ */
+ virtual TransportAdapter::Error CreateConnection(const DeviceUID& device_uid,
+ const ApplicationHandle& app_handle);
+
+ /**
+ * @brief
+ */
+ virtual void Terminate();
+
+ /**
+ * @brief Check for initialization.
+ *
+ * @return true - initialized.
+ * false - not initialized.
+ */
+ virtual bool IsInitialised() const;
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~TcpConnectionFactory();
+ private:
+ TransportAdapterController* controller_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_CONNECTION_FACTORY_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_device.h b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_device.h
new file mode 100644
index 000000000..08821ab3c
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_device.h
@@ -0,0 +1,148 @@
+/**
+ * \file tcp_device.h
+ * \brief TcpDevice class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_DEVICE_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_DEVICE_H_
+
+#include "transport_manager/transport_adapter/device.h"
+
+#include <map>
+#include <memory.h>
+#include <signal.h>
+#include <errno.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+namespace transport_manager {
+namespace transport_adapter {
+
+/**
+ * @brief Information about device that use TCP transport.
+ */
+class TcpDevice : public Device {
+ public:
+ /**
+ * @brief Constructor.
+ *
+ * @param in_addr Address.
+ * @param name Device Name.
+ **/
+ TcpDevice(const in_addr_t& in_addr, const std::string& name);
+
+ virtual ~TcpDevice();
+
+ /**
+ * @brief Compare devices.
+ *
+ * @param other Device to compare with.
+ *
+ * @return True if devices are equal, false otherwise.
+ **/
+ virtual bool IsSameAs(const Device* other) const;
+
+ /**
+ * @brief Update list of applications available on device.
+ *
+ * @return Container with list of applications.
+ */
+ virtual ApplicationList GetApplicationList() const;
+
+ /**
+ * @brief Add an application to the container of applications.
+ *
+ * @param socket Value of socket.
+ */
+ ApplicationHandle AddIncomingApplication(int socket_fd);
+
+ /**
+ * @brief Add application that was discovered before.
+ *
+ * @param Port No.
+ */
+ ApplicationHandle AddDiscoveredApplication(int port);
+
+ /**
+ * @brief Remove application from the container of applications.
+ *
+ * @param app_handle Handle of application.
+ */
+ void RemoveApplication(const ApplicationHandle app_handle);
+
+ /**
+ * @brief Return application's socket value.
+ *
+ * @param app_handle Handle of application.
+ *
+ * @return Application's socket value.
+ */
+ int GetApplicationSocket(const ApplicationHandle app_handle) const;
+
+ /**
+ * @brief Return application's port No.
+ *
+ * @param app_handle Handle of application.
+ *
+ * @return Application's port No.
+ */
+ int GetApplicationPort(const ApplicationHandle app_handle) const;
+
+ /**
+ * @brief Return address.
+ *
+ * @return Address.
+ */
+ in_addr_t in_addr() const {
+ return in_addr_;
+ }
+
+ private:
+ struct Application {
+ bool incoming;
+ int socket;
+ uint16_t port;
+ };
+ std::map<ApplicationHandle, Application> applications_;
+ mutable pthread_mutex_t applications_mutex_;
+ const in_addr_t in_addr_;
+ const std::string name_;
+ ApplicationHandle last_handle_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif /* TCP_DEVICE_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h
new file mode 100644
index 000000000..592c79109
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h
@@ -0,0 +1,112 @@
+/**
+ * \file tcp_socket_connection.h
+ * \brief TcpSocketConnection class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_SOCKET_CONNECTION_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_SOCKET_CONNECTION_H_
+
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#include "transport_manager/transport_adapter/threaded_socket_connection.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class TransportAdapterController;
+
+/**
+ * @brief Class responsible for communication over TCP sockets.
+ */
+class TcpSocketConnection : public ThreadedSocketConnection {
+ public:
+
+ /**
+ * @brief Constructor.
+ *
+ * @param device_uid Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param controller Pointer to the TCP device adapter controller.
+ */
+ TcpSocketConnection(const DeviceUID& device_uid,
+ const ApplicationHandle& app_handle,
+ TransportAdapterController* controller);
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~TcpSocketConnection();
+ protected:
+
+ /**
+ * @brief
+ */
+ virtual bool Establish(ConnectError** error);
+};
+
+/**
+ * @brief Class responsible for communication over sockets that originated by server.
+ */
+class TcpServerOiginatedSocketConnection : public ThreadedSocketConnection {
+ public:
+
+ /**
+ * @brief Constructor.
+ *
+ * @param device_uid Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param controller Pointer to the device adapter controller.
+ */
+ TcpServerOiginatedSocketConnection(const DeviceUID& device_uid,
+ const ApplicationHandle& app_handle,
+ TransportAdapterController* controller);
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~TcpServerOiginatedSocketConnection();
+ protected:
+
+ /**
+ * @brief
+ */
+ virtual bool Establish(ConnectError** error);
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_SOCKET_CONNECTION_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h
new file mode 100644
index 000000000..2d2f2a026
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h
@@ -0,0 +1,88 @@
+/**
+ * \file tcp_transport_adapter.h
+ * \brief TcpTransportAdapter class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_ADAPTER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_ADAPTER_H_
+
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+/**
+ * @brief Transport adapter that use TCP transport.
+ */
+class TcpTransportAdapter : public TransportAdapterImpl {
+ public:
+ /**
+ * @brief Constructor.
+ */
+ TcpTransportAdapter();
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~TcpTransportAdapter();
+
+ /**
+ * @brief Default port.
+ */
+ static const uint16_t default_port = 12345;
+ protected:
+
+ /**
+ * @brief Return type of device.
+ *
+ * @return String with device type.
+ */
+ virtual DeviceType GetDeviceType() const;
+
+ /**
+ * @brief Store adapter state in last state singleton
+ */
+ virtual void Store() const;
+
+ /**
+ * @brief Restore adapter state from last state singleton
+ *
+ * @return True on success false otherwise
+ */
+ virtual bool Restore();
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_ADAPTER
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h
new file mode 100644
index 000000000..41658fb45
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h
@@ -0,0 +1,91 @@
+/**
+ * \file client_connection_listener.h
+ * \brief ClientConnectionListener class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_CLIENT_CONNECTION_LISTENER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_CLIENT_CONNECTION_LISTENER_H_
+
+#include "transport_manager/transport_adapter/transport_adapter.h"
+
+
+namespace transport_manager {
+
+
+namespace transport_adapter {
+
+/**
+ * @brief Abstract class for listener of client connection.
+ */
+class ClientConnectionListener {
+ public:
+ /**
+ * @brief Run client connection listener.
+ *
+ * @return Error information about possible reason of starting client listener failure.
+ */
+ virtual TransportAdapter::Error Init() = 0;
+
+ /**
+ * @brief Stop client connection listener.
+ */
+ virtual void Terminate() = 0;
+
+ /**
+ * @brief Check initialization.
+ *
+ * @return True if initialized.
+ * @return False if not initialized.
+ */
+ virtual bool IsInitialised() const = 0;
+
+ /**
+ * @brief Start to listen for connection from client.
+ */
+ virtual TransportAdapter::Error StartListening() = 0;
+
+ /**
+ * @brief Stop to listen for connection from client.
+ */
+ virtual TransportAdapter::Error StopListening() = 0;
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~ClientConnectionListener() {
+ }
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif /* CLIENT_CONNECTION_LISTENER_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/connection.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/connection.h
new file mode 100644
index 000000000..3e82f7fd2
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/connection.h
@@ -0,0 +1,84 @@
+/**
+ * \file connection.h
+ * \brief Connection class header.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_CONNECTION_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_CONNECTION_H_
+
+#include "utils/shared_ptr.h"
+#include "transport_manager/transport_adapter/transport_adapter.h"
+
+using utils::SharedPtr;
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+/**
+ * @brief Application connection.
+ **/
+class Connection {
+ public:
+ /**
+ * @brief Constructor.
+ */
+ Connection() {}
+ /**
+ * @brief Destructor.
+ **/
+ virtual ~Connection() {}
+
+ /**
+ * @brief Send data frame.
+ *
+ * @param Message Smart pointer to the raw message.
+ *
+ * @return Error Information about possible reason of sending data failure.
+ */
+ virtual TransportAdapter::Error SendData(RawMessageSptr message) = 0;
+
+ /**
+ * @brief Disconnect the current connection.
+ */
+ virtual TransportAdapter::Error Disconnect() = 0;
+};
+
+/**
+ * @typedef Type definition of smart pointer to the Connection class.
+ */
+typedef utils::SharedPtr<Connection> ConnectionSptr;
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif /* CONNECTION_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/device.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/device.h
new file mode 100644
index 000000000..8330a8208
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/device.h
@@ -0,0 +1,128 @@
+/**
+ * \file device.h
+ * \brief Device class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_DEVICE_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_DEVICE_H_
+
+#include <string>
+
+#include "transport_manager/common.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+/**
+ * @brief Internal class describing device.
+ **/
+class Device {
+ public:
+ /**
+ * @brief Constructor.
+ *
+ * @param name User-friendly device name.
+ * @param unique_device_id device unique identifier.
+ **/
+ Device(const std::string& name, const DeviceUID& unique_device_id)
+ : name_(name),
+ unique_device_id_(unique_device_id),
+ keep_on_disconnect_(false) {}
+ /**
+ * @brief Destructor.
+ **/
+ virtual ~Device() {}
+
+ /**
+ * @brief Compare devices.
+ *
+ * This method checks whether two SDevice structures
+ * refer to the same device.
+ *
+ * @param other_Ddvice Device to compare with.
+ *
+ * @return true if devices are equal, false otherwise.
+ **/
+ virtual bool IsSameAs(const Device* other_device) const = 0;
+
+ virtual ApplicationList GetApplicationList() const = 0;
+
+ const DeviceUID& unique_device_id() const {
+ return unique_device_id_;
+ }
+
+ /**
+ * @brief Return name of device.
+ */
+ const std::string& name() const {
+ return name_;
+ }
+
+ /**
+ * @brief Get @link keep_on_disconnect_ @endlink value
+ */
+ bool keep_on_disconnect() const {
+ return keep_on_disconnect_;
+ }
+
+ /**
+ * @brief Set @link keep_on_disconnect_ @endlink value
+ * @param keep_on_disconnect new value
+ */
+ void set_keep_on_disconnect(bool keep_on_disconnect) {
+ keep_on_disconnect_ = keep_on_disconnect;
+ }
+
+ private:
+ /**
+ * @brief Device user-friendly name.
+ **/
+ std::string name_;
+
+ /**
+ * @brief Unique device identifier across all devices.
+ **/
+ DeviceUID unique_device_id_;
+
+ /**
+ * @brief If true, device will remain in list even if all its connections finished.
+ **/
+ bool keep_on_disconnect_;
+};
+
+typedef utils::SharedPtr<Device> DeviceSptr;
+typedef std::vector<DeviceSptr> DeviceVector;
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif /* DEVICE_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/device_scanner.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/device_scanner.h
new file mode 100644
index 000000000..5b09a726e
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/device_scanner.h
@@ -0,0 +1,86 @@
+/**
+ * \file device_scanner.h
+ * \brief DeviceScanner class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_DEVICE_SCANNER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_DEVICE_SCANNER_H_
+
+#include "transport_manager/transport_adapter/device.h"
+#include "transport_manager/transport_adapter/transport_adapter.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+/**
+ * @brief Abstract class for device scanner.
+ */
+class DeviceScanner {
+ public:
+ /**
+ * @brief Start device scanner.
+ *
+ * @return Error information about reason of initialization failure.
+ */
+ virtual TransportAdapter::Error Init() = 0;
+
+ /**
+ * @brief
+ *
+ * @return Error information about reason of Scan failure.
+ */
+ virtual TransportAdapter::Error Scan() = 0;
+
+ /**
+ * @brief Stop device scanner.
+ */
+ virtual void Terminate() = 0;
+
+ /**
+ * @brief Check device scanner for initialization.
+ *
+ * @return true - initialized.
+ * false - not initialized.
+ */
+ virtual bool IsInitialised() const = 0;
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~DeviceScanner() {
+ }
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif /* DEVICE_SCANNER_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/server_connection_factory.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/server_connection_factory.h
new file mode 100644
index 000000000..d944594d8
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/server_connection_factory.h
@@ -0,0 +1,89 @@
+/**
+ * \file server_connection_factory.h
+ * \brief ServerConnectionFactory class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_SERVER_CONNECTION_FACTORY_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_SERVER_CONNECTION_FACTORY_H_
+
+#include "transport_manager/transport_adapter/transport_adapter.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+/**
+ * @brief Implement transport dependent connection that was originated by the user.
+ */
+class ServerConnectionFactory {
+ public:
+ /**
+ * @brief Start server connection factory.
+ *
+ * @return Information about possible reason of error during initialization.
+ */
+ virtual TransportAdapter::Error Init() = 0;
+
+ /**
+ * @brief
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ *
+ * @return Information about posible reason of error.
+ */
+ virtual TransportAdapter::Error CreateConnection(
+ const DeviceUID& device_handle, const ApplicationHandle& app_handle) = 0;
+
+ /**
+ * @brief
+ */
+ virtual void Terminate() = 0;
+
+ /**
+ * @brief Check device scanner for initialization.
+ *
+ * @return true - initialized.
+ * false - not initialized.
+ */
+ virtual bool IsInitialised() const = 0;
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~ServerConnectionFactory() {
+ }
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif /* SERVER_CONNECTION_FACTORY_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h
new file mode 100644
index 000000000..1778e5ef1
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h
@@ -0,0 +1,165 @@
+/**
+ * \file threaded_socket_connection.h
+ * \brief Header for classes responsible for communication over sockets.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_THREADED_SOCKET_CONNECTION_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_THREADED_SOCKET_CONNECTION_H_
+
+#include <poll.h>
+
+#include <queue>
+
+#include "utils/logger.h"
+#include "transport_manager/transport_adapter/connection.h"
+
+using ::transport_manager::transport_adapter::Connection;
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class TransportAdapterController;
+
+/**
+ * @brief Class responsible for communication over sockets.
+ */
+class ThreadedSocketConnection : public Connection {
+ public:
+
+ /**
+ * @brief Send data frame.
+ *
+ * @param message Smart pointer to the raw message.
+ *
+ * @return Error Information about possible reason of sending data failure.
+ */
+ TransportAdapter::Error SendData(RawMessageSptr message);
+
+ /**
+ * @brief Disconnect the current connection.
+ *
+ * @return Error Information about possible reason of Disconnect failure.
+ */
+ TransportAdapter::Error Disconnect();
+
+ /**
+ * @brief Start thread creation.
+ *
+ * @return Information about possible reason of thread creation error.
+ */
+ TransportAdapter::Error Start();
+
+ /**
+ * @brief Set variable that hold socket No.
+ */
+ void set_socket(int socket) {
+ socket_ = socket;
+ }
+ protected:
+
+ /**
+ * @brief Constructor.
+ *
+ * @param device_uid Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param controller Pointer to the device adapter controller.
+ */
+ ThreadedSocketConnection(const DeviceUID& device_uid,
+ const ApplicationHandle& app_handle,
+ TransportAdapterController* controller);
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~ThreadedSocketConnection();
+
+
+ virtual bool Establish(ConnectError** error) = 0;
+
+ /**
+ * @brief Return pointer to the device adapter controller.
+ */
+ TransportAdapterController* controller() {
+ return controller_;
+ }
+
+ /**
+ * @brief Return device unique identifier.
+ */
+ DeviceUID device_handle() const {
+ return device_uid_;
+ }
+
+ /**
+ * @brief Return handle of application.
+ */
+ ApplicationHandle application_handle() const {
+ return app_handle_;
+ }
+
+ private:
+
+ int read_fd_;
+ int write_fd_;
+ void Thread();
+ void Transmit();
+ void Finalize();
+ TransportAdapter::Error Notify() const;
+ bool Receive();
+ bool Send();
+ void Abort();
+
+ friend void* StartThreadedSocketConnection(void*);
+
+ TransportAdapterController* controller_;
+ /**
+ * @brief Frames that must be sent to remote device.
+ **/
+ typedef std::queue<RawMessageSptr> FrameQueue;
+ FrameQueue frames_to_send_;
+ mutable pthread_mutex_t frames_to_send_mutex_;
+
+ pthread_t thread_;
+
+ int socket_;
+ bool terminate_flag_;
+ bool unexpected_disconnect_;
+ const DeviceUID device_uid_;
+ const ApplicationHandle app_handle_;
+};
+
+extern log4cxx::LoggerPtr logger_;
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif //SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_transport_adapter_SOCKET_COMMUNICATION
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter.h
new file mode 100644
index 000000000..a65e64b8d
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter.h
@@ -0,0 +1,251 @@
+/**
+ * \file transport_adapter.h
+ * \brief TransportAdapter class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_H_
+
+#include <string>
+#include <vector>
+#include <list>
+#include "utils/shared_ptr.h"
+#include "transport_manager/common.h"
+#include "transport_manager/error.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class TransportAdapterListener;
+typedef std::string DeviceType;
+typedef int ApplicationHandle;
+typedef std::vector<ApplicationHandle> ApplicationList;
+/**
+ * @brief Type definition of container(vector) that holds device unique
+ * identifiers.
+ */
+typedef std::vector<DeviceUID> DeviceList;
+/**
+ * @brief Type definition for container(list) that holds pointers to device
+ * adapter listeners
+ */
+typedef std::list<TransportAdapterListener*> TransportAdapterListenerList;
+
+class TransportAdapter {
+ public:
+ /**
+ * @enum Available types of errors.
+ */
+ enum Error {
+ OK,
+ FAIL,
+ NOT_SUPPORTED,
+ ALREADY_EXISTS,
+ BAD_STATE,
+ BAD_PARAM
+ };
+
+ public:
+ /**
+ * @brief Destructor.
+ */
+ virtual ~TransportAdapter() {}
+
+ /**
+ * @brief
+ */
+ virtual DeviceType GetDeviceType() const = 0;
+
+ /* TODO
+ virtual Error LoadState(TransportAdapterState* state) = 0;
+ virtual void SaveState(TransportAdapterState* state) = 0;
+ */
+
+ /**
+ * @brief Check initialization.
+ *
+ * @return true if initialized.
+ * @return false if not initialized.
+ */
+ virtual bool IsInitialised() const = 0;
+
+ /**
+ * @brief Run device adapter.
+ *
+ * Called from transport manager to start device adapter.
+ *
+ * @return Error information about possible reason of starting client listener
+ *failure.
+ **/
+ virtual Error Init() = 0;
+
+ /**
+ * @brief Add listener to the container(list) of device adapter listeners.
+ *
+ * @param listener Pointer to the device adapter listener.
+ */
+ virtual void AddListener(TransportAdapterListener* listener) = 0;
+
+ /**
+ * @brief Notify that device scanner is available.
+ *
+ * @return true - available, false - not available.
+ */
+ virtual bool IsSearchDevicesSupported() const = 0;
+
+ /**
+ * @brief Start scanning for new devices.
+ *
+ * List of new devices will be supplied in onDeviceListUpdated callback.
+ *
+ * @return Error information about possible reason of searching devices
+ *failure.
+ **/
+ virtual Error SearchDevices() = 0;
+
+ /**
+ * @brief Notify that server connection factory is available.
+ *
+ * @return true - available, false - not available.
+ */
+ virtual bool IsServerOriginatedConnectSupported() const = 0;
+
+ /**
+ * @brief Connect to the specified application discovered on device.
+ *
+ * @param device_handle Handle of device to connect to.
+ * @param app_handle Handle of application to connect to.
+ *
+ * @return Error information about possible reason of connection to the device
+ *failure.
+ **/
+ virtual Error Connect(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle) = 0;
+
+ /**
+ * @brief Connect to all applications discovered on device
+ * @param device_handle Handle of device
+ * @return Error information about connecting applications on device
+ */
+ virtual Error ConnectDevice(const DeviceUID& device_handle) = 0;
+
+ /**
+ * @brief Notify that listener of client connection is available.
+ *
+ * @return true - available, false - not available.
+ */
+ virtual bool IsClientOriginatedConnectSupported() const = 0;
+
+ /**
+ * @brief Start client listener.
+ *
+ * @return Error information about possible reason of starting client listener
+ *failure.
+ */
+ virtual Error StartClientListening() = 0;
+
+ /**
+ * @brief Stop client listener.
+ *
+ * @return Error information about possible reason of stopping client listener
+ *failure.
+ */
+ virtual Error StopClientListening() = 0;
+
+ /**
+ * @brief Disconnect from specified session.
+ *
+ * @param device_handle Handle of device to Disconnect from.
+ * @param app_handle Handle of application.
+ *
+ * @return Error information about possible reason of disconnection from the
+ *device failure.
+ **/
+ virtual Error Disconnect(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle) = 0;
+
+ /**
+ * @brief Disconnect from all sessions on specified device.
+ *
+ * @param device_handle Device handle to Disconnect.
+ *
+ * @return Error information about possible reason of disconnecting from
+ *device failure
+ **/
+ virtual Error DisconnectDevice(const DeviceUID& device_handle) = 0;
+
+ /**
+ * @brief Send frame.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param data Smart pointer to the raw message.
+ *
+ * @return Error information about possible reason of sending data failure.
+ **/
+ virtual Error SendData(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const RawMessageSptr data) = 0;
+
+ /**
+ * @brief Create container(vector) of device unique identifiers.
+ *
+ * @return container(vector) of device unique identifiers.
+ */
+ virtual DeviceList GetDeviceList() const = 0;
+
+ /**
+ * @brief Get container(vector) of application unique identifiers that
+ *available at specified device.
+ *
+ * @param device_handle Device unique identifier.
+ *
+ * @return Container(vector) that holds application unique identifiers.
+ */
+ virtual ApplicationList GetApplicationList(const DeviceUID& device_handle)
+ const = 0;
+
+ /**
+ * @brief Return name of device.
+ *
+ * @param device_id device unique identifier.
+ *
+ * @return string.
+ */
+ virtual std::string DeviceName(const DeviceUID& device_id) const = 0;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_transport_adapter_transport_adapter
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h
new file mode 100644
index 000000000..44565c84d
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h
@@ -0,0 +1,192 @@
+/**
+ * \file transport_adapter_controller.h
+ * \brief TransportAdapterController class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_CONTROLLER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_CONTROLLER_H_
+
+#include "transport_manager/transport_adapter/device.h"
+#include "transport_manager/transport_adapter/connection.h"
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+
+class TransportAdapterController {
+ public:
+
+ virtual ~TransportAdapterController() {
+ }
+
+ /**
+ * @brief Add device to the container(map), if container doesn't hold it yet.
+ *
+ * @param device Smart pointer to the device.
+ *
+ * @return Smart pointer to the device.
+ */
+ virtual DeviceSptr AddDevice(DeviceSptr device) = 0;
+
+ /**
+ * @brief Search for device in container of devices, if it is not there - adds it.
+ *
+ * @param devices Container(vector) of smart pointers to devices.
+ */
+ virtual void SearchDeviceDone(const DeviceVector& devices) = 0;
+
+ /**
+ * @brief Launch OnSearchDeviceFailed event in device adapter listener.
+ *
+ * @param error Error class that contains details of this error situation.
+ */
+ virtual void SearchDeviceFailed(const SearchDeviceError& error) = 0;
+
+ /**
+ * @brief Find device in the internal container(map).
+ *
+ * @param device_handle Device unique identifier.
+ *
+ * @return Smart pointer to the device.
+ */
+ virtual DeviceSptr FindDevice(const DeviceUID& device_handle) const = 0;
+
+ /**
+ * @brief Create connection and fill its parameters.
+ *
+ * @param connection Smart pointer to the connection.
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void ConnectionCreated(ConnectionSptr connection,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle) = 0;
+
+ /**
+ * @brief Make state of specified connection - ESTABLISHED and launch OnConnectDone event in device adapter listener.
+ *
+ * @param devcie_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void ConnectDone(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle) = 0;
+
+ /**
+ * @brief Delete connection from the container of connections and launch OnConnectFailed event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void ConnectFailed(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const ConnectError& error) = 0;
+
+ /**
+ * @brief Make state of specified connection - FINILIZING.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void ConnectionFinished(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle) = 0;
+
+ /**
+ * @brief Set specified connection state to FINILIZING and launch OnUnexpectedDisconnect event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param error Error class that contains details of this error situation.
+ */
+ virtual void ConnectionAborted(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const CommunicationError& error) = 0;
+
+ /**
+ * @brief Delete specified connection from the container(map) of connections and launch event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void DisconnectDone(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle) = 0;
+
+ /**
+ * @brief Launch OnDataReceiveDone event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param message Smart pointer to the raw message.
+ */
+ virtual void DataReceiveDone(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ RawMessageSptr message) = 0;
+
+ /**
+ * @brief Launch OnDataReceiveFailed event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param error Class that contains details of this error situation.
+ */
+ virtual void DataReceiveFailed(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const DataReceiveError&) = 0;
+
+ /**
+ * @brief Launch OnDataSendDone event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param message Smart pointer to raw message.
+ */
+ virtual void DataSendDone(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ RawMessageSptr message) = 0;
+
+ /**
+ * @brief Launch OnDataSendFailed event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param message Smart pointer to raw message.
+ * @param error Class that contains details of this error situation.
+ */
+ virtual void DataSendFailed(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ RawMessageSptr message, const DataSendError&) = 0;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif /* transport_adapter_CONTROLLER_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_event.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_event.h
new file mode 100644
index 000000000..05e3cbd48
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_event.h
@@ -0,0 +1,163 @@
+/**
+ * \file transport_adapter_event.h
+ * \brief TransportAdapterEvent class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_EVENT_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_EVENT_H_
+
+#include "transport_manager/common.h"
+#include "transport_manager/transport_adapter/transport_adapter.h"
+
+namespace transport_manager {
+
+class TransportAdapterEvent {
+ public:
+ /**
+ * @brief Constructor.
+ *
+ * @param type Event type.
+ * @param transport_adapter Transport adapter
+ * @param device_handle Handle of device.
+ * @param application_id Handle of application.
+ * @param data Smart pointer to the raw message.
+ * @param error Error class that contains details of this error situation.
+ */
+ TransportAdapterEvent(int type,
+ transport_adapter::TransportAdapter *transport_adapter,
+ const DeviceUID &device_handle,
+ const ApplicationHandle &application_id,
+ RawMessageSptr data, BaseError *error);
+
+ /**
+ * @brief Destructor.
+ */
+ ~TransportAdapterEvent();
+
+ /**
+ * @brief Set value that describe event type.
+ *
+ * @param type Type of the event.
+ */
+ void set_event_type(int type);
+
+ /**
+ * @brief Set connection unique identifier field.
+ *
+ * @param id Connection unique identifier.
+ */
+ void set_connection_uid(ConnectionUID id);
+
+ /**
+ * @brief Set device adapter field.
+ *
+ * @param transport_adapter Smart pointer to the device adapter.
+ */
+ void set_transport_adapter(
+ transport_adapter::TransportAdapter *transport_adapter);
+
+ /**
+ * @brief Set pointer to the data.
+ *
+ * @param message Smart pointer to the raw message.
+ */
+ void set_data(RawMessageSptr message);
+
+ /**
+ * @brief Set field that responsible for the pointer to error.
+ *
+ * @param error Error class that contains details of this error situation.
+ */
+ void set_error(BaseError *error);
+
+ /**
+ * @brief Set device handle field.
+ *
+ * @param device_handle Device unique identifier.
+ */
+ void set_device_handle(const DeviceUID &device_handle);
+
+ /**
+ * @brief Return device unique identifier value.
+ *
+ * @return Device unique identifier.
+ */
+ const DeviceUID &device_uid() const;
+
+ /**
+ * @brief Return value that describe event type.
+ *
+ * @return Value that describe event type.
+ */
+ int event_type(void) const;
+
+ /**
+ * @brief Return handle of application value.
+ *
+ * @return Handle of application.
+ */
+ ApplicationHandle application_id(void) const;
+
+ /**
+ * @brief Return smart pointer to the device adapter.
+ *
+ * @return Transport adapter.
+ */
+ transport_adapter::TransportAdapter *transport_adapter(void) const;
+
+ /**
+ * @brief Return smart pointer to the raw message.
+ *
+ * @return Smart pointer to the raw message.
+ */
+ RawMessageSptr data(void) const;
+
+ /**
+ * @brief Return pointer to the class that contain details of error.
+ *
+ * @return Pointer to the class that contain details of error.
+ */
+ BaseError *event_error(void) const;
+
+ private:
+ DeviceUID device_uid_; /**< Device unique identifier. */
+ int event_type_; /**< Value that describe event type. */
+ ApplicationHandle application_id_; /**< Handle of application. */
+ transport_adapter::TransportAdapter *transport_adapter_;
+ RawMessageSptr event_data_; /**< Smart pointer to the raw message. */
+ BaseError *event_error_; /** Pointer to the class that contain details of
+ error */
+};
+
+} // namespace
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_transport_adapter_EVENT
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h
new file mode 100644
index 000000000..664a5c8d5
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h
@@ -0,0 +1,498 @@
+/**
+ * \file transport_adapter_impl.h
+ * \brief TransportAdapterImpl class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_IMPL_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_IMPL_H_
+
+#include <queue>
+#include <set>
+#include <memory>
+#include <string>
+
+#include "utils/logger.h"
+
+#include "transport_manager/transport_adapter/transport_adapter.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+#include "transport_manager/transport_adapter/connection.h"
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+class TransportAdapterListener;
+class DeviceScanner;
+class ServerConnectionFactory;
+class ClientConnectionListener;
+
+/*
+ * @brief Implementation of device adapter class.
+ **/
+class TransportAdapterImpl : public TransportAdapter,
+ public TransportAdapterController {
+ protected:
+ /**
+ * @brief Constructor.
+ *
+ * @param device_scanner Pointer to device scanner.
+ * @param server_connection_factory Pointer to the factory that create
+ *connections from server.
+ * @param client_connection_listener Pointer to the listener of client
+ *connection.
+ **/
+ TransportAdapterImpl(DeviceScanner* device_scanner,
+ ServerConnectionFactory* server_connection_factory,
+ ClientConnectionListener* client_connection_listener);
+
+ /**
+ * @brief Destructor.
+ **/
+ virtual ~TransportAdapterImpl();
+
+ /**
+ * @brief Check initialization.
+ *
+ * @return true if initialized.
+ * @return false if not initialized.
+ */
+ virtual bool IsInitialised() const;
+
+ public:
+ /**
+ * @brief Initiate device adapter.
+ *
+ * Called from transport manager to start device adapter.
+ *
+ * @return Error information about possible reason of starting client listener
+ *failure.
+ **/
+ virtual TransportAdapter::Error Init();
+
+ /**
+ * @brief Add listener to the container(list) of device adapter listeners.
+ *
+ * @param listener Pointer to the device adapter listener.
+ */
+ virtual void AddListener(TransportAdapterListener* listener);
+
+ /**
+ * @brief Start scanning for new devices.
+ *
+ * List of new devices will be supplied in onDeviceListUpdated callback.
+ *
+ * @return Error information about possible reason of search devices failure.
+ **/
+ virtual TransportAdapter::Error SearchDevices();
+
+ /**
+ * @brief Connect to the specified application discovered on device.
+ *
+ * @param device_handle Device unique identifier to connect to.
+ * @param app_handle Handle of application to connect to.
+ *
+ * @return Error information about possible reason of connecting to device
+ *failure.
+ **/
+ virtual TransportAdapter::Error Connect(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle);
+
+ /**
+ * @brief Connect to all applications discovered on device
+ * @param device_handle Handle of device
+ * @return Error information about connecting applications on device
+ */
+ virtual TransportAdapter::Error ConnectDevice(const DeviceUID& device_handle);
+
+ /**
+ * @brief Disconnect from specified session.
+ *
+ * @param devcie_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ *
+ * @return Error information about possible reason of disconnecting failure.
+ **/
+ virtual TransportAdapter::Error Disconnect(
+ const DeviceUID& device_handle, const ApplicationHandle& app_handle);
+
+ /**
+ * @brief Disconnect from all sessions on specified device.
+ *
+ * @param device_handle Device handle to Disconnect.
+ *
+ * @return Error information about possible reason of disconnecting from
+ *specified device failure.
+ **/
+ virtual TransportAdapter::Error DisconnectDevice(
+ const DeviceUID& device_handle);
+
+ /**
+ * @brief Send frame of data.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param data Smart pointer to the raw message.
+ *
+ * @return Error information about possible reason of sending data failure
+ **/
+ virtual TransportAdapter::Error SendData(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const RawMessageSptr data);
+
+ /**
+ * @brief Start client listener.
+ *
+ * @return Error information about possible reason of starting client listener
+ *failure.
+ */
+ virtual TransportAdapter::Error StartClientListening();
+
+ /**
+ * @brief Stop client listener.
+ *
+ * @return Error information about possible reason of stopping client listener
+ *failure.
+ */
+ virtual TransportAdapter::Error StopClientListening();
+
+ /**
+ * @brief Notify that device scanner is available.
+ *
+ * @return True - available, false - not available.
+ */
+ virtual bool IsSearchDevicesSupported() const;
+
+ /**
+ * @brief Notify that server connection factory is available.
+ *
+ * @return True - available, false - not available.
+ */
+ virtual bool IsServerOriginatedConnectSupported() const;
+
+ /**
+ * @brief Notify that listener of client connection is available.
+ *
+ * @return True - available, false - not available.
+ */
+ virtual bool IsClientOriginatedConnectSupported() const;
+
+ /**
+ * @brief Create container(vector) of device unique identifiers.
+ *
+ * @return Container(vector) of device unique identifiers.
+ */
+ virtual DeviceList GetDeviceList() const;
+
+ /**
+ * @brief Get container(vector) of application unique identifiers that
+ *available at specified device.
+ *
+ * @param device_handle Device unique identifier.
+ *
+ * @return Container(vector) that holds application unique identifiers.
+ */
+ virtual ApplicationList GetApplicationList(const DeviceUID& device_handle)
+ const;
+
+ /**
+ * @brief Find device in the internal container(map).
+ *
+ * @param device_handle Device unique identifier.
+ *
+ * @return Smart pointer to device.
+ */
+ virtual DeviceSptr FindDevice(const DeviceUID& device_handle) const;
+
+ /**
+ * @brief Search for device in container of devices, if it is not there - adds
+ *it.
+ *
+ * @param devices Container(vector) of smart pointers to devices.
+ */
+ virtual void SearchDeviceDone(const DeviceVector& devices);
+
+ /**
+ * @brief Launch OnSearchDeviceFailed event in device adapter listener.
+ *
+ * @param error Error class that contains details of this error situation.
+ */
+ virtual void SearchDeviceFailed(const SearchDeviceError& error);
+
+ /**
+ * @brief Add device to the container(map), if container doesn't hold it yet.
+ *
+ * @param device Smart pointer to the device.
+ *
+ * @return Smart pointer to the device.
+ */
+ virtual DeviceSptr AddDevice(DeviceSptr device);
+
+ /**
+ * @brief Create connection and fill its parameters.
+ *
+ * @param connection Smart pointer to the connection.
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void ConnectionCreated(ConnectionSptr connection,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle);
+
+ /**
+ * @brief Set state of specified connection - FINILIZING.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void ConnectionFinished(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle);
+
+ /**
+ * @brief Set specified connection state to FINILIZING and launch
+ *OnUnexpectedDisconnect event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param error Error class that contains details of this error situation.
+ */
+ virtual void ConnectionAborted(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const CommunicationError& error);
+
+ /**
+ * @brief Set state of specified connection - ESTABLISHED and launch
+ *OnConnectDone event in device adapter listener.
+ *
+ * @param devcie_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void ConnectDone(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle);
+
+ /**
+ * @brief Delete connection from the container of connections and launch
+ *OnConnectFailed event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void ConnectFailed(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const ConnectError& error);
+
+ /**
+ * @brief Delete specified connection from the container(map) of connections
+ *and launch event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void DisconnectDone(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle);
+
+ /**
+ * @brief Launch OnDataReceiveDone event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param message Smart pointer to the raw message.
+ */
+ virtual void DataReceiveDone(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ RawMessageSptr message);
+
+ /**
+ * @brief Launch OnDataReceiveFailed event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param error Class that contains details of this error situation.
+ */
+ virtual void DataReceiveFailed(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const DataReceiveError& error);
+
+ /**
+ * @brief Launch OnDataSendDone event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param message Smart pointer to raw message.
+ */
+ virtual void DataSendDone(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ RawMessageSptr message);
+
+ /**
+ * @brief Launch OnDataSendFailed event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param message Smart pointer to raw message.
+ * @param error Class that contains details of this error situation.
+ */
+ virtual void DataSendFailed(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ RawMessageSptr message,
+ const DataSendError& error);
+
+ /**
+ * @brief Return name of device.
+ *
+ * @param device_id Device unique identifier.
+ *
+ * @return String with name.
+ */
+ virtual std::string DeviceName(const DeviceUID& device_id) const;
+
+ protected:
+
+ /**
+ * @brief Store adapter state where applicable
+ */
+ virtual void Store() const;
+
+ /**
+ * @brief Restore adapter state where applicable
+ *
+ * @return True on success false otherwise (or vacuous true)
+ */
+ virtual bool Restore();
+
+ /**
+ * @brief Returns true if \a device is to be connected automatically
+ */
+ virtual bool ToBeAutoConnected(DeviceSptr device) const;
+
+ private:
+ /**
+ * @brief Find connection that has state - ESTABLISHED.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ *
+ * @return ConnectionSptr smart pointer to the connection.
+ */
+ ConnectionSptr FindEstablishedConnection(const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle);
+ /**
+ * @brief Connect to all applications discovered on device
+ * @param device Pointer to device
+ * @return Error information about connecting applications on device
+ */
+ TransportAdapter::Error ConnectDevice(DeviceSptr device);
+
+ /**
+ * @brief Listener for device adapter notifications.
+ **/
+ TransportAdapterListenerList listeners_;
+
+ /**
+ * @brief Flag variable that notify initialized device adapter or not.
+ */
+ bool initialised_;
+
+ /**
+ * @brief Type definition of container(map) that holds device unique
+ *identifier(key value) and smart pointer to the device(mapped value).
+ **/
+ typedef std::map<DeviceUID, DeviceSptr> DeviceMap;
+
+ /**
+ * @brief Structure that holds information about connection.
+ */
+ struct ConnectionInfo {
+ ConnectionSptr connection;
+ DeviceUID device_id;
+ ApplicationHandle app_handle;
+ enum {
+ NEW,
+ ESTABLISHED,
+ FINALISING
+ } state;
+ };
+
+ /**
+ * @brief Type definition of container(map) that holds pair<device unique
+ * identifier, handle of application>(key value) and structure that holds
+ * information
+ * about connection(mapped value).
+ */
+ typedef std::map<std::pair<DeviceUID, ApplicationHandle>, ConnectionInfo>
+ ConnectionMap;
+
+ /**
+ * @brief Map of device handle to device.
+ *
+ * This map contains all currently available devices.
+ **/
+ DeviceMap devices_;
+
+ /**
+ * @brief Mutex restricting access to device map.
+ **/
+ mutable pthread_mutex_t devices_mutex_;
+
+ /**
+ * @brief Container(map) of connections.
+ **/
+ ConnectionMap connections_;
+
+ /**
+ * @brief Mutex restricting access to connections map.
+ **/
+ mutable pthread_mutex_t connections_mutex_;
+
+ protected:
+ /**
+ * @brief Pointer to the device scanner.
+ */
+ DeviceScanner* device_scanner_;
+
+ /**
+ * @brief Pointer to the factory if connections initiated from server.
+ */
+ ServerConnectionFactory* server_connection_factory_;
+
+ /**
+ * @brief Pointer to the factory of connections initiated from client.
+ */
+ ClientConnectionListener* client_connection_listener_;
+};
+
+extern log4cxx::LoggerPtr logger_;
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // #ifndef \
+ // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_transport_adapter_IMPL_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h
new file mode 100644
index 000000000..186ed9967
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h
@@ -0,0 +1,252 @@
+/**
+ * \file transport_adapter_listener.h
+ * \brief TransportAdapterListener class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_LISTENER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_LISTENER_H_
+
+#include "transport_manager/common.h"
+#include "transport_manager/error.h"
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+class TransportAdapter;
+
+/**
+ * @brief Abstract class for device adapter listener.
+ */
+class TransportAdapterListener {
+ public:
+ /**
+ * @brief Destructor.
+ */
+ virtual ~TransportAdapterListener() {
+ }
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available,
+ * launch event ON_SEARCH_DONE in transport manager.
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ */
+ virtual void OnSearchDeviceDone(
+ const TransportAdapter* transport_adapter) = 0;
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create search device error,
+ * launch event ON_SEARCH_FAIL in transport manager.
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param error Error class with information about possible reason of search device failure.
+ */
+ virtual void OnSearchDeviceFailed(const TransportAdapter* transport_adapter,
+ const SearchDeviceError& error) = 0;
+
+ /**
+ * @brief Notification by transport adapter that list of known devices has
+ * changed. Updated list can be obtained using
+ * TransportAdapter::GetDeviceList()
+ *
+ * @param transport_adapter Transport adapter that sent notifcation
+ */
+ virtual void OnDeviceListUpdated(
+ const TransportAdapter* transport_adapter) = 0;
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available,
+ * launch event ON_CONNECT_DONE in transport manager.
+ *
+ * @param device_adater Pointer to the device adapter.
+ * @param device_handle Device unique identifier.
+ * @param app_id Handle of application.
+ */
+ virtual void OnConnectDone(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle) = 0;
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available,
+ * launch event ON_CONNECT_FAIL in transport manager.
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ * @param error Error class with information about possible reason of connect failure.
+ */
+ virtual void OnConnectFailed(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const ConnectError& error) = 0;
+
+ /**
+ * @brief
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void OnConnectRequested(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle) = 0;
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available,
+ * launch event ON_UNEXPECTED_DISCONNECT in transport manager.
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ * @param error Error class with information about possible reason of unexpected Disconnect.
+ */
+ virtual void OnUnexpectedDisconnect(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const CommunicationError& error) = 0;
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available,
+ * launch event ON_DISCONNECT_DONE in transport manager.
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param devcie_id Device unique identifier.
+ * @param app_id Handle of application.
+ */
+ virtual void OnDisconnectDone(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle) = 0;
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create Disconnect error,
+ * launch event ON_DISCONNECT_FAIL in transport manager.
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ * @param error Error class with information about possible reason of Disconnect failure.
+ */
+ virtual void OnDisconnectFailed(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const DisconnectError& error) = 0;
+
+ /**
+ * @brief
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param devic Device unique identifier.
+ */
+ virtual void OnDisconnectDeviceDone(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle) = 0;
+
+ /**
+ * @brief
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param error Error class with information about possible reason of Disconnect from device failure.
+ */
+ virtual void OnDisconnectDeviceFailed(
+ const TransportAdapter* transport_adapter, const DeviceUID& device_handle,
+ const DisconnectDeviceError& error) = 0;
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create error,
+ * launch event ON_RECEIVED_DONE in transport manager.
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param devcie Device unique identifier.
+ * @param app_id Handle of application.
+ * @param data_container Smart pointer to the raw message.
+ */
+ virtual void OnDataSendDone(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const RawMessageSptr data_container) = 0;
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create data receive error,
+ * launch event ON_RECEIVED_DONE in transport manager.
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ * @param error Error class with information about possible reason of data receive failure.
+ */
+ virtual void OnDataSendFailed(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const RawMessageSptr data_container,
+ const DataSendError& error) = 0;
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create error,
+ * launch event ON_SEND_DONE in transport manager.
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ * @param data_container Smart pointer to the raw message.
+ */
+ virtual void OnDataReceiveDone(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const RawMessageSptr data_container) = 0;
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create data send error,
+ * launch event ON_SEND_FAIL in transport manager.
+ */
+ virtual void OnDataReceiveFailed(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle,
+ const DataReceiveError& error) = 0;
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create error,
+ * launch event ON_COMMUNICATION_ERROR in transport manager.
+ *
+ * @param transport_adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ */
+ virtual void OnCommunicationError(const TransportAdapter* transport_adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle) = 0;
+};
+
+} // transport_adapter namespace
+} // transport_manager namespace
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_transport_adapter_LISTENER
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h
new file mode 100644
index 000000000..3a9975e86
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h
@@ -0,0 +1,303 @@
+/**
+ * \file transport_adapter_listener_impl.h
+ * \brief TransportAdapterListenerImpl class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_LISTENER_IMPL_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_LISTENER_IMPL_H_
+
+#include "transport_manager/common.h"
+#include "transport_manager/transport_adapter/transport_adapter_listener.h"
+#include "transport_manager/transport_adapter/transport_adapter.h"
+#include "utils/logger.h"
+
+using transport_manager::transport_adapter::TransportAdapter;
+
+namespace transport_manager {
+
+class TransportManagerImpl;
+
+/**
+ * @brief Implementation of TransportAdapterListener class.
+ */
+class TransportAdapterListenerImpl
+ : public transport_adapter::TransportAdapterListener {
+ public:
+ /**
+ * @enum Available types of events.
+ */
+ enum EventTypeEnum {
+ ON_SEARCH_DONE = 0,
+ ON_SEARCH_FAIL,
+ ON_DEVICE_LIST_UPDATED,
+ ON_CONNECT_DONE,
+ ON_CONNECT_FAIL,
+ ON_DISCONNECT_DONE,
+ ON_DISCONNECT_FAIL,
+ ON_SEND_DONE,
+ ON_SEND_FAIL,
+ ON_RECEIVED_DONE,
+ ON_RECEIVED_FAIL,
+ ON_COMMUNICATION_ERROR,
+ ON_UNEXPECTED_DISCONNECT
+ };
+
+ /**
+ * @brief Constructor.
+ *
+ * @param manager Pointer to the transport manager implementation class.
+ * @param adapter Pointer to the transport adapter associated with listener.
+ */
+ TransportAdapterListenerImpl(TransportManagerImpl* manager,
+ TransportAdapter* adapter);
+
+ /**
+ * @brief Dectructor.
+ */
+ virtual ~TransportAdapterListenerImpl();
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ *to device adapters to be sure it is available,
+ * launch event ON_SEARCH_DONE in transport manager.
+ *
+ * @param adapter Pointer to the device adapter.
+ */
+ virtual void OnSearchDeviceDone(const TransportAdapter* adapter);
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ *to device adapters to be sure it is available, create search device error,
+ * launch event ON_SEARCH_FAIL in transport manager.
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param error Error class with information about possible reason of search
+ *device failure.
+ */
+ virtual void OnSearchDeviceFailed(const TransportAdapter* adapter,
+ const SearchDeviceError& error);
+
+ /**
+ * @brief Passes notification to TransportManagerImpl
+ *
+ * @param adapter Transport adapter that sent notification
+ */
+ virtual void OnDeviceListUpdated(const TransportAdapter* adapter);
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ *to device adapters to be sure it is available,
+ * launch event ON_CONNECT_DONE in transport manager.
+ *
+ * @param device_adater Pointer to the device adapter.
+ * @param device_handle Device unique identifier.
+ * @param app_id Handle of application.
+ */
+ virtual void OnConnectDone(const TransportAdapter* adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_id);
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ *to device adapters to be sure it is available,
+ * launch event ON_CONNECT_FAIL in transport manager.
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ * @param error Error class with information about possible reason of connect
+ *failure.
+ */
+ virtual void OnConnectFailed(const TransportAdapter* adapter,
+ const DeviceUID& device,
+ const ApplicationHandle& app_id,
+ const ConnectError& error);
+
+ /**
+ * @brief
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ */
+ virtual void OnConnectRequested(const TransportAdapter* adapter,
+ const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle);
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ *to device adapters to be sure it is available,
+ * launch event ON_UNEXPECTED_DISCONNECT in transport manager.
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ * @param error Error class with information about possible reason of
+ *unexpected Disconnect.
+ */
+ virtual void OnUnexpectedDisconnect(const TransportAdapter* adapter,
+ const DeviceUID& device,
+ const ApplicationHandle& app_id,
+ const CommunicationError& error);
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ *to device adapters to be sure it is available,
+ * launch event ON_DISCONNECT_DONE in transport manager.
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param devcie_id Device unique identifier.
+ * @param app_id Handle of application.
+ */
+ virtual void OnDisconnectDone(const TransportAdapter* adapter,
+ const DeviceUID& device_id,
+ const ApplicationHandle& app_id);
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ *to device adapters to be sure it is available, create Disconnect error,
+ * launch event ON_DISCONNECT_FAIL in transport manager.
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ * @param error Error class with information about possible reason of
+ *Disconnect failure.
+ */
+ virtual void OnDisconnectFailed(const TransportAdapter* adapter,
+ const DeviceUID& device,
+ const ApplicationHandle& app_id,
+ const DisconnectError& error);
+
+ /**
+ * @brief
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param devic Device unique identifier.
+ */
+ virtual void OnDisconnectDeviceDone(const TransportAdapter* adapter,
+ const DeviceUID& device);
+
+ /**
+ * @brief
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param error Error class with information about possible reason of
+ *Disconnect from device failure.
+ */
+ virtual void OnDisconnectDeviceFailed(const TransportAdapter* adapter,
+ const DeviceUID& device,
+ const DisconnectDeviceError& error);
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ *to device adapters to be sure it is available, create error,
+ * launch event ON_RECEIVED_DONE in transport manager.
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param devcie Device unique identifier.
+ * @param app_id Handle of application.
+ * @param data_container Smart pointer to the raw message.
+ */
+ virtual void OnDataReceiveDone(const TransportAdapter* adapter,
+ const DeviceUID& device,
+ const ApplicationHandle& app_id,
+ const RawMessageSptr data_container);
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ *to device adapters to be sure it is available, create data receive error,
+ * launch event ON_RECEIVED_DONE in transport manager.
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ * @param error Error class with information about possible reason of data
+ *receive failure.
+ */
+ virtual void OnDataReceiveFailed(const TransportAdapter* adapter,
+ const DeviceUID& device,
+ const ApplicationHandle& app_id,
+ const DataReceiveError& error);
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ *to device adapters to be sure it is available, create error,
+ * launch event ON_SEND_DONE in transport manager.
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ * @param data_container Smart pointer to the raw message.
+ */
+ virtual void OnDataSendDone(const TransportAdapter* adapter,
+ const DeviceUID& device,
+ const ApplicationHandle& app_id,
+ const RawMessageSptr data_container);
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ * to device adapters to be sure it is available, create data send error,
+ * launch event ON_SEND_FAIL in transport manager.
+ */
+ virtual void OnDataSendFailed(const TransportAdapter* adapter,
+ const DeviceUID& device,
+ const ApplicationHandle& app_id,
+ const RawMessageSptr data_container,
+ const DataSendError& error);
+
+ /**
+ * @brief Search specified device adapter in the container of shared pointers
+ *to device adapters to be sure it is available, create error,
+ * launch event ON_COMMUNICATION_ERROR in transport manager.
+ *
+ * @param adapter Pointer to the device adapter.
+ * @param device Device unique identifier.
+ * @param app_id Handle of application.
+ */
+ virtual void OnCommunicationError(const TransportAdapter* adapter,
+ const DeviceUID& device,
+ const ApplicationHandle& app_id);
+
+ private:
+ /**
+ * \brief For logging.
+ */
+ static log4cxx::LoggerPtr logger_;
+ TransportManagerImpl* transport_manager_impl_;
+ TransportAdapter* transport_adapter_;
+};
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_transport_adapter_transport_adapter_LISTENER_IMPL_H
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager.h
new file mode 100644
index 000000000..8ce2b1247
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager.h
@@ -0,0 +1,166 @@
+/**
+ * \file transport_manager.h
+ * \brief TransportManager class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_H_
+
+#include "protocol_handler/protocol_handler.h" //YK: temp solution until B1.0 release
+#include "transport_manager/common.h"
+#include "transport_manager/info.h"
+
+namespace transport_manager {
+
+class TransportAdapterEvent;
+class TransportManagerListener;
+
+namespace transport_adapter {
+class TransportAdapter;
+} // namespace transport_adapter
+
+/**
+ * @brief Interface of transport manager.
+ **/
+class TransportManager {
+ public:
+ /**
+ * @brief Destructor.
+ **/
+ virtual ~TransportManager() {}
+
+ /**
+ * @brief Initialize transport manager.
+ * @return Error code.
+ */
+ virtual int Init() = 0;
+
+ /**
+ * @brief Start scanning for new devices.
+ *
+ * @return Code error.
+ **/
+ virtual int SearchDevices(void) = 0;
+
+ /**
+ * @brief Connect to all applications discovered on device.
+ *
+ * @param device_id Handle of device to connect to.
+ *
+ * @return Code error.
+ **/
+ virtual int ConnectDevice(const DeviceHandle &device_id) = 0;
+
+ /**
+ * @brief Disconnect from all applications connected on device.
+ *
+ * @param device_id Handle of device to Disconnect from.
+ *
+ * @return Code error.
+ **/
+ virtual int DisconnectDevice(const DeviceHandle &device_id) = 0;
+
+ /**
+ * @brief Disconnect from applications connected on device by connection
+ *unique identifier.
+ *
+ * @param connection Connection unique identifier.
+ *
+ * @return Code error.
+ **/
+ virtual int Disconnect(const ConnectionUID &connection_id) = 0;
+
+ /**
+ * @brief Post new message in queue for massages destined to device.
+ *
+ * @param message Smart pointer to the raw massage.
+ *
+ * @return Code error.
+ **/
+ virtual int SendMessageToDevice(const RawMessageSptr message) = 0;
+
+ /**
+ * @brief Post event in the event queue.
+ *
+ * @param event Current event information.
+ *
+ * @return Code error.
+ **/
+ virtual int ReceiveEventFromDevice(const TransportAdapterEvent &event) = 0;
+
+ /**
+ * @brief Add transport adapter.
+ *
+ * @param transport_adapter Transport adapter
+ *
+ * @return Error code.
+ **/
+ virtual int AddTransportAdapter(
+ transport_adapter::TransportAdapter *transport_adapter) = 0;
+
+ /**
+ * @brief Post listener to the container of transport manager listeners.
+ *
+ * @param listener Pointer to the transport manager listener.
+ *
+ * @return Code error.
+ **/
+ virtual int AddEventListener(TransportManagerListener *listener) = 0;
+
+ /**
+ * @brief Stop work finally. No new events guaranteed after method finish.
+ *
+ * @return Error code.
+ **/
+ virtual int Stop() = 0;
+
+ /**
+ * @brief Remove device from the container that hold devices.
+ *
+ * @param device Handle of device.
+ *
+ * @return Code error.
+ **/
+ virtual int RemoveDevice(const DeviceHandle &device_handle) = 0;
+
+ /**
+ * @brief Turns on or off visibility of SDL to mobile devices
+ * when visibility is ON (on_off = true) mobile devices are able to connect
+ * otherwise ((on_off = false)) SDL is not visible from outside
+ *
+ * @return Code error.
+ */
+ virtual int Visibility(const bool &on_off) const = 0;
+};
+}
+
+#endif
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_default.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_default.h
new file mode 100644
index 000000000..6857a5c67
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_default.h
@@ -0,0 +1,71 @@
+/*
+ * \file transport_manager_default.h
+ * \brief Transport manager default class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_DEFAULT_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_DEFAULT_H_
+
+#include "utils/singleton.h"
+
+#include "transport_manager/transport_manager_impl.h"
+
+namespace transport_manager {
+
+/**
+ * @brief Default realization of transport_manager_impl class.
+ */
+class TransportManagerDefault : public TransportManagerImpl,
+ public utils::Singleton<TransportManagerDefault> {
+
+ /**
+ * @brief Initialize transport manager.
+ *
+ * @return Code error.
+ */
+ virtual int Init();
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~TransportManagerDefault();
+
+ TransportManagerDefault();
+
+ DISALLOW_COPY_AND_ASSIGN(TransportManagerDefault);
+
+ FRIEND_BASE_SINGLETON_CLASS(TransportManagerDefault);
+};
+}
+
+#endif /* TRANSPORT_MANAGER_DEFAULT_H_ */
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_impl.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_impl.h
new file mode 100755
index 000000000..c46301758
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_impl.h
@@ -0,0 +1,495 @@
+/**
+ * \file transport_manager_impl.h
+ * \brief TransportManagerImpl class header file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_IMPL_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_IMPL_H_
+
+#include <pthread.h>
+
+#ifdef RWLOCK_SUPPORT
+# if (defined(OS_LINUX) && (defined(__USE_UNIX98) || defined(__USE_XOPEN2K))) || \
+ (defined(OS_QNX) && (defined(__EXT_POSIX1_200112)))
+# define USE_RWLOCK
+# endif
+#endif
+
+#include <queue>
+#include <map>
+#include <list>
+#include <algorithm>
+#include <memory>
+
+#include "utils/logger.h"
+#include "utils/timer_thread.h"
+#include "transport_manager/common.h"
+#include "transport_manager/transport_manager.h"
+#include "transport_manager/transport_manager_listener.h"
+#include "transport_manager/transport_adapter/transport_adapter_listener_impl.h"
+
+using ::transport_manager::transport_adapter::TransportAdapterListener;
+
+namespace transport_manager {
+
+/**
+ * @enum Transport manager states.
+ */
+enum {
+ E_SUCCESS = 0,
+ E_TM_IS_NOT_INITIALIZED,
+ E_INVALID_HANDLE,
+ E_CONNECTION_IS_TO_SHUTDOWN,
+ E_CONNECTION_EXISTS,
+ E_ADAPTER_EXISTS,
+ E_ADAPTERS_FAIL,
+ E_INTERNAL_ERROR
+};
+
+/**
+ * @brief Implementation of transport manager.
+ */
+class TransportManagerImpl : public TransportManager {
+ public:
+ /**
+ * @brief Hold connection parameters.
+ */
+ struct Connection {
+ ConnectionUID id;
+ DeviceUID device;
+ ApplicationHandle application;
+ };
+
+ private:
+ /**
+ * @brief Structure that contains internal connection parameters
+ */
+ struct ConnectionInternal: public Connection {
+ TransportManagerImpl* transport_manager;
+ TransportAdapter* transport_adapter;
+ typedef timer::TimerThread<ConnectionInternal> TimerInternal;
+ typedef utils::SharedPtr<TimerInternal> TimerInternalSharedPointer;
+ TimerInternalSharedPointer timer;
+ bool shutDown;
+ int messages_count;
+
+ ConnectionInternal(TransportManagerImpl* transport_manager,
+ TransportAdapter* transport_adapter,
+ const ConnectionUID& id, const DeviceUID& dev_id,
+ const ApplicationHandle& app_id)
+ : transport_manager(transport_manager),
+ transport_adapter(transport_adapter),
+ timer(new TimerInternal(this, &ConnectionInternal::DisconnectFailedRoutine)),
+ shutDown(false),
+ messages_count(0) {
+ Connection::id = id;
+ Connection::device = dev_id;
+ Connection::application = app_id;
+ }
+
+ void DisconnectFailedRoutine() {
+ LOG4CXX_INFO(logger_, "Disconnection failed");
+ transport_manager->RaiseEvent(&TransportManagerListener::OnDisconnectFailed,
+ transport_manager->converter_.UidToHandle(device),
+ DisconnectDeviceError());
+ shutDown = false;
+ timer->stop();
+ }
+
+ };
+ public:
+
+ /**
+ * @brief Destructor.
+ **/
+ virtual ~TransportManagerImpl(void);
+
+ /**
+ * @brief Initialize transport manager.
+ *
+ * @return Code error.
+ */
+ virtual int Init();
+
+ /**
+ * @brief Start scanning for new devices.
+ *
+ * @return Code error.
+ **/
+ virtual int SearchDevices(void);
+
+ /**
+ * @brief Connect to all applications discovered on device.
+ *
+ * @param device_id Handle of device to connect to.
+ *
+ * @return Code error.
+ **/
+ virtual int ConnectDevice(const DeviceHandle& device_id);
+
+ /**
+ * @brief Disconnect from all applications connected on device.
+ *
+ * @param device_id Handle of device to Disconnect from.
+ *
+ * @return Code error.
+ **/
+ virtual int DisconnectDevice(const DeviceHandle& device_id);
+
+ /**
+ * @brief Disconnect from applications connected on device by connection
+ *unique identifier.
+ *
+ * @param connection Connection unique identifier.
+ *
+ * @return Code error.
+ **/
+ virtual int Disconnect(const ConnectionUID& connection_id);
+
+ /**
+ * @brief Disconnect and clear all unreceived data.
+ *
+ * @param connection Connection unique identifier.
+ */
+ virtual int DisconnectForce(const ConnectionUID& connection_id);
+ /**
+ * @brief Post new message in queue for massages destined to device.
+ *
+ * @param message Smart pointer to the raw massage.
+ *
+ * @return Code error.
+ **/
+ virtual int SendMessageToDevice(const RawMessageSptr message);
+
+ /**
+ * @brief Post event in the event queue.
+ *
+ * @param event Current event information.
+ *
+ * @return Code error.
+ **/
+ virtual int ReceiveEventFromDevice(const TransportAdapterEvent& event);
+
+ /**
+ * @brief Post listener to the container of transport manager listeners.
+ *
+ * @param listener Pointer to the transport manager listener.
+ *
+ * @return Code error.
+ **/
+ virtual int AddEventListener(TransportManagerListener* listener);
+
+ virtual int Stop();
+
+ /**
+ * @brief Add device adapter to the container of device adapters.
+ *
+ * @param transport_adapter Smart pointer to the device adapter.
+ *
+ * @return Code error.
+ **/
+ virtual int AddTransportAdapter(
+ transport_adapter::TransportAdapter* transport_adapter);
+
+ /**
+ * @brief Remove device from the container that hold devices.
+ *
+ * @param device Handle of device.
+ *
+ * @return Code error.
+ **/
+ virtual int RemoveDevice(const DeviceHandle& device);
+
+ /**
+ * @brief Turns on or off visibility of SDL to mobile devices
+ * when visibility is ON (on_off = true) mobile devices are able to connect
+ * otherwise ((on_off = false)) SDL is not visible from outside
+ *
+ * @return Code error.
+ */
+ virtual int Visibility(const bool& on_off) const;
+
+ /**
+ * @brief Updates total device list with info from specific transport adapter.
+ * @param ta Transport adapter
+ */
+ void UpdateDeviceList(TransportAdapter* ta);
+
+ /**
+ * @brief Constructor.
+ **/
+ TransportManagerImpl();
+
+ protected:
+
+ template <class Proc, class... Args>
+ void RaiseEvent(Proc proc, Args... args) {
+ for (TransportManagerListenerList::iterator it =
+ transport_manager_listener_.begin();
+ it != transport_manager_listener_.end(); ++it) {
+ ((*it)->*proc)(args...);
+ }
+ }
+
+ /**
+ * @brief Put massage in the container of massages.
+ *
+ * @param message Smart pointer to the raw massage.
+ **/
+ void PostMessage(const RawMessageSptr message);
+
+ /**
+ * @brief update message in queue
+ *
+ * @param message shared pointer to raw massage
+ *
+ * @see @ref components_transportmanager_client_connection_management
+ **/
+ /*not clear when this function shall be used
+ * void updateMessage(const RawMessageSptr old_message, const RawMessageSptr
+ * new_message);*/
+
+ /**
+ * @brief Remove message from the container of massages.
+ *
+ * @param message Smart pointer to the raw massage.
+ **/
+ void RemoveMessage(const RawMessageSptr message);
+
+ /**
+ * @brief Post event to the container of events.
+ *
+ * @param event Event of device adapter.
+ **/
+ void PostEvent(const TransportAdapterEvent& event);
+
+ /**
+ * @brief Type definition of container that holds smart pointer to the raw
+ *massages.
+ **/
+ typedef std::list<RawMessageSptr> MessageQueue;
+
+ /**
+ * @brief Type definition of container that holds events of device adapters.
+ **/
+ typedef std::vector<TransportAdapterEvent> EventQueue;
+
+ static void* MessageQueueStartThread(void* data);
+
+ /**
+ * @brief Scan message's queue and pull messages according to priority and
+ *serial number
+ *
+ * @param
+ *
+ * @see @ref components_transportmanager_client_connection_management
+ */
+ void MessageQueueThread(void);
+
+ /**
+ * @brief Launch EventListenerThread(void).
+ */
+ static void* EventListenerStartThread(void*);
+ /**
+ * @brief wait until event happens
+ *
+ * @param
+ *
+ * @see @ref components_transportmanager_client_connection_management
+ */
+ void EventListenerThread(void);
+
+ /**
+ * \brief For logging.
+ */
+ static log4cxx::LoggerPtr logger_;
+
+ /**
+ * @brief store messages
+ *
+ * @param
+ *
+ * @see @ref components_transportmanager_client_connection_management
+ **/
+ MessageQueue message_queue_;
+
+ /**
+ * @brief Mutex restricting access to messages.
+ **/
+#ifdef USE_RWLOCK
+ mutable pthread_rwlock_t message_queue_rwlock_;
+#endif
+ mutable pthread_mutex_t message_queue_mutex_;
+
+ pthread_cond_t message_queue_cond_;
+
+ /**
+ * @brief store events from comming device
+ *
+ * @param
+ *
+ * @see @ref components_transportmanager_client_connection_management
+ **/
+ EventQueue event_queue_;
+
+ /**
+ * @brief flag that indicates that thread is active
+ * if it is false then threads exist main loop
+ **/
+ volatile bool all_thread_active_;
+
+ typedef std::list<TransportManagerListener*> TransportManagerListenerList;
+ /**
+ * @brief listener that would be called when TM's event happened.
+ **/
+ TransportManagerListenerList transport_manager_listener_;
+
+ /**
+ * @brief ID of message queue processing thread
+ **/
+ pthread_t message_queue_thread_;
+
+ /**
+ * @brief Conditional event thread
+ **/
+ pthread_t event_queue_thread_;
+
+ /**
+ * @brief Condition variable to wake up event
+ **/
+ pthread_cond_t device_listener_thread_wakeup_;
+
+ /**
+ * @brief Mutex restricting access to events.
+ **/
+#ifdef USE_RWLOCK
+ mutable pthread_rwlock_t event_queue_rwlock_;
+#endif
+ mutable pthread_mutex_t event_queue_mutex_;
+
+ /**
+ * @brief Flag that TM is initialized
+ */
+ bool is_initialized_;
+
+ private:
+ /**
+ * @brief Returns size of frame to be formed from raw bytes.
+ * expects first bytes of message which will be treated as frame header.
+ */
+ // TODO this function should be moved outside of TM to protocol handler or
+ // somewhere else
+ unsigned int GetPacketSize(unsigned int size, unsigned char* data);
+
+ /**
+ * @brief Structure that contains conversion functions (Device ID -> Device
+ * Handle; Device Handle -> Device ID)
+ */
+ struct Handle2GUIDConverter {
+ typedef std::vector<DeviceUID> ConversionTable;
+
+ DeviceHandle UidToHandle(const DeviceUID& dev_uid) {
+ bool is_new = true;
+ return UidToHandle(dev_uid, is_new);
+ }
+
+ DeviceHandle UidToHandle(const DeviceUID& dev_uid, bool& is_new) {
+ ConversionTable::iterator it = std::find(
+ conversion_table_.begin(), conversion_table_.end(), dev_uid);
+ if (it != conversion_table_.end()) {
+ is_new = false;
+ return std::distance(conversion_table_.begin(), it) +
+ 1; // handle begin since 1 (one)
+ }
+ is_new = true;
+ conversion_table_.push_back(dev_uid);
+ return conversion_table_.size(); // handle begin since 1 (one)
+ }
+
+ DeviceUID HandleToUid(DeviceHandle handle) {
+ if (handle == 0 || handle > conversion_table_.size()) {
+ return DeviceUID();
+ }
+ return conversion_table_[handle - 1]; // handle begin since 1 (one)
+ }
+
+ ConversionTable conversion_table_;
+ };
+
+ /**
+ * @brief Converter variable (Device ID -> Device Handle; Device Handle ->
+ * Device ID)
+ */
+ Handle2GUIDConverter converter_;
+
+ explicit TransportManagerImpl(const TransportManagerImpl&);
+ int connection_id_counter_;
+ std::vector<ConnectionInternal> connections_;
+ std::map<DeviceUID, TransportAdapter*> device_to_adapter_map_;
+ std::vector<TransportAdapter*> transport_adapters_;
+ /** For keep listeners which were add TMImpl */
+ std::map<TransportAdapter*, TransportAdapterListenerImpl*>
+ transport_adapter_listeners_;
+
+ typedef std::vector<std::pair<const TransportAdapter*, DeviceInfo> >
+ DeviceList;
+ DeviceList device_list_;
+
+ class IncomingDataHandler;
+ std::auto_ptr<IncomingDataHandler> incoming_data_handler_;
+
+ void AddConnection(const ConnectionInternal& c);
+ void RemoveConnection(int id);
+ ConnectionInternal* GetConnection(const ConnectionUID& id);
+ ConnectionInternal* GetConnection(const DeviceUID& device,
+ const ApplicationHandle& application);
+
+ void AddDataToContainer(
+ ConnectionUID id,
+ std::map<ConnectionUID, std::pair<unsigned int, unsigned char*> >&
+ container,
+ unsigned char* data, unsigned int data_size);
+ bool GetFrameSize(unsigned char* data, unsigned int data_size,
+ unsigned int& frame_size);
+ bool GetFrame(std::map<ConnectionUID,
+ std::pair<unsigned int, unsigned char*> >& container,
+ ConnectionUID id, unsigned int frame_size,
+ unsigned char** frame);
+
+ void OnDeviceListUpdated(TransportAdapter* ta);
+ static Connection convert(ConnectionInternal& p);
+};
+// class ;
+
+} // namespace transport_manager
+
+#endif
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_listener.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_listener.h
new file mode 100644
index 000000000..a4b240472
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_listener.h
@@ -0,0 +1,170 @@
+/**
+ * \file transport_manager_listener.h
+ * \brief TransportManagerListener class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_LISTENER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_LISTENER_H_
+
+#include "transport_manager/common.h"
+#include "transport_manager/info.h"
+#include "transport_manager/error.h"
+
+namespace transport_manager {
+
+class TransportManagerListener {
+ public:
+ /**
+ * @brief Destructor.
+ */
+ virtual ~TransportManagerListener() {
+ }
+
+ /**
+ * @brief Reaction to the event, when the list of devices is updated.
+ *
+ * @param Container that holds information about devices.
+ */
+ virtual void OnDeviceListUpdated(const std::vector<DeviceInfo>&) = 0;
+
+ /**
+ * @brief Reaction to the event, when the device is found.
+ *
+ * @param device_info Variable that hold information about device.
+ */
+ virtual void OnDeviceFound(const DeviceInfo &device_info) = 0;
+ virtual void OnDeviceAdded(const DeviceInfo &device_info) = 0;
+ virtual void OnDeviceRemoved(const DeviceInfo &device_info) = 0;
+
+ /**
+ * @brief Reaction to the event, when scanning of devices is finished.
+ */
+ virtual void OnScanDevicesFinished() = 0;
+
+ /**
+ * @brief Reaction to the event, when scanning of devices is failed.
+ *
+ * @param error Error information about possible reason of scanning of devices failure.
+ */
+ virtual void OnScanDevicesFailed(const SearchDeviceError& error) = 0;
+
+ /**
+ * @brief Reaction to the event, when connection is established.
+ *
+ * @param devcie_info Variable that hold information about device.
+ * @param connection_id connection unique identifier.
+ */
+ virtual void OnConnectionEstablished(const DeviceInfo &device_info,
+ const ConnectionUID &connection_id) = 0;
+
+ /**
+ * @brief Reaction to the event, when connection to the device is failed.
+ *
+ * @param device_info Variable that hold information about device.
+ * @param error Error information about possible reason of connect failure.
+ */
+ virtual void OnConnectionFailed(const DeviceInfo &device_info,
+ const ConnectError& error) = 0;
+
+ /**
+ * @brief Reaction to the event, when connection is closed.
+ *
+ * @param connection_id Connection unique identifier.
+ */
+ virtual void OnConnectionClosed(ConnectionUID connection_id) = 0;
+
+ /**
+ * @brief Called when connection is closed unexpectedly, i.e. disconnect was not requested
+ *
+ * @param connection_id Connection ID.
+ * @param error Error information.
+ */
+ virtual void OnUnexpectedDisconnect(ConnectionUID connection_id,
+ const CommunicationError& error) = 0;
+
+ /**
+ * @brief Reaction to the event, when connection close is failed.
+ *
+ * @param connection_id Connection unique identifier.
+ * @param error Error information about possible reason of failure.
+ */
+ virtual void OnConnectionClosedFailure(ConnectionUID connection_id,
+ const DisconnectError& error) = 0;
+
+ /**
+ * \brief Inform about losing connection with device.
+ * \param device Handle of device.
+ * \param error Error information about possible reason of loosing connection.
+ */
+ virtual void OnDeviceConnectionLost(const DeviceHandle& device,
+ const DisconnectDeviceError& error) = 0;
+
+ /**
+ * \brief Inform about failure during DisconnectDevice procedure of transport manager.
+ * \param device Handle of device.
+ * \param error Error information about possible reason of disconnecting failure.
+ */
+ virtual void OnDisconnectFailed(const DeviceHandle& device,
+ const DisconnectDeviceError& error) = 0;
+ /**
+ * @brief Notifies about recieving message from TM.
+ *
+ * @param message Recieved message
+ **/
+ virtual void OnTMMessageReceived(const RawMessageSptr message) = 0;
+
+ /**
+ * @brief Reaction to the event, when receiving of massage for transport manager is failed.
+ *
+ * @param connection_id connection unique identifier.
+ * @param error Error information about possible reason of failure.
+ */
+ virtual void OnTMMessageReceiveFailed(ConnectionUID connection_id,
+ const DataReceiveError& error) = 0;
+
+ /**
+ * @brief Reaction to the event, when transport manager sent a massage.
+ */
+ virtual void OnTMMessageSend(const RawMessageSptr message) = 0;
+
+ /**
+ * @brief Reaction to the event, when sending of massage by transport manager is failed.
+ *
+ * @param error Error information about possible reason of failure.
+ * @param message Smart pointer to the raw massage.
+ */
+ virtual void OnTMMessageSendFailed(const DataSendError& error,
+ const RawMessageSptr message) = 0;
+};
+} // namespace transport_manager
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_LISTENER
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_listener_empty.h b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_listener_empty.h
new file mode 100644
index 000000000..5251a1c50
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/transport_manager_listener_empty.h
@@ -0,0 +1,189 @@
+/**
+ * \file transport_manager_listener_empty.h
+ * \brief TransportManagerListenerEmpty class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_LISTENER_EMPTY_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_LISTENER_EMPTY_H_
+
+#include "transport_manager/info.h"
+#include "transport_manager/transport_manager_listener.h"
+#include "transport_manager/transport_manager_impl.h"
+
+namespace transport_manager {
+
+/**
+ * @brief Empty implementation class for transport manager listener.
+ */
+class TransportManagerListenerEmpty : public TransportManagerListener {
+ const TransportManagerImpl *transport_manager_;
+ public:
+
+ /**
+ * @Destructor.
+ */
+ virtual ~TransportManagerListenerEmpty(){};
+
+ /**
+ * @brief Reaction to the event, when the list of devices is updated.
+ *
+ * @param Container that holds information about devices.
+ */
+ virtual void OnDeviceListUpdated(const std::vector<DeviceInfo>&) {
+ }
+
+ /**
+ * @brief Reaction to the event, when the device is found.
+ *
+ * @param device_info Variable that hold information about device.
+ */
+ virtual void OnDeviceFound(const DeviceInfo& device_info) {
+ }
+ virtual void OnDeviceAdded(const DeviceInfo& device_info) {
+ }
+ virtual void OnDeviceRemoved(const DeviceInfo& device_info) {
+ }
+
+ /**
+ * @brief Reaction to the event, when scanning of devices is finished.
+ */
+ virtual void OnScanDevicesFinished() {
+ }
+
+ /**
+ * @brief Reaction to the event, when scanning of devices is failed.
+ *
+ * @param error Error information about possible reason of scanning of devices failure.
+ */
+ virtual void OnScanDevicesFailed(const SearchDeviceError& error) {
+ }
+
+ /**
+ * @brief Reaction to the event, when connection is established.
+ *
+ * @param devcie_info Variable that hold information about device.
+ * @param connection_id connection unique identifier.
+ */
+ virtual void OnConnectionEstablished(const DeviceInfo &device_info,
+ const ConnectionUID &connection_id) {
+ }
+
+ /**
+ * @brief Reaction to the event, when connection to the device is failed.
+ *
+ * @param device_info Variable that hold information about device.
+ * @param error Error information about possible reason of connect failure.
+ */
+ virtual void OnConnectionFailed(const DeviceInfo &device_info,
+ const ConnectError& error) {
+ }
+
+ /**
+ * @brief Reaction to the event, when connection is closed.
+ *
+ * @param connection_id Connection unique identifier.
+ */
+ virtual void OnConnectionClosed(ConnectionUID connection_id) {
+ }
+
+ virtual void OnUnexpectedDisconnect(ConnectionUID connection_id,
+ const CommunicationError& error) {
+ }
+
+ /**
+ * @brief Reaction to the event, when connection close is failed.
+ *
+ * @param connection_id Connection unique identifier.
+ * @param error Error information about possible reason of failure.
+ */
+ virtual void OnConnectionClosedFailure(ConnectionUID connection_id,
+ const DisconnectError& error) {
+ }
+
+ /**
+ * @brief Reaction to the event, when connection with the device is lost.
+ *
+ * @param device Handle of device.
+ * @param error Error information about possible reason of lost connection.
+ */
+ virtual void OnDeviceConnectionLost(const DeviceHandle& device,
+ const DisconnectDeviceError& error) {
+ }
+
+ /**
+ * @brief Reaction to the event, when Disconnect is failed.
+ *
+ * @param device Handle of device.
+ * @param error Error information about possible reason of Disconnect failure.
+ */
+ virtual void OnDisconnectFailed(const DeviceHandle& device,
+ const DisconnectDeviceError& error) {
+ }
+
+ /**
+ * @brief Reaction to the event, when transport manager received a massage.
+ *
+ * @param message Smart pointer to the raw massage.
+ * @param connection_id Connection unique identifier.
+ */
+ virtual void OnTMMessageReceived(const RawMessageSptr message) {
+ }
+
+ /**
+ * @brief Reaction to the event, when receiving of massage for transport manager is failed.
+ *
+ * @param connection_id connection unique identifier.
+ * @param error Error information about possible reason of failure.
+ */
+ virtual void OnTMMessageReceiveFailed(ConnectionUID connection_id,
+ const DataReceiveError& error) {
+ }
+
+ /**
+ * @brief Reaction to the event, when transport manager sent a massage.
+ */
+ virtual void OnTMMessageSend(const RawMessageSptr message) {
+ }
+
+ /**
+ * @brief Reaction to the event, when sending of massage by transport manager is failed.
+ *
+ * @param error Error information about possible reason of failure.
+ * @param message Smart pointer to the raw massage.
+ */
+ virtual void OnTMMessageSendFailed(const DataSendError& error,
+ const RawMessageSptr message) {
+ }
+};
+} // namespace transport_manager
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_LISTENER_EMPTY_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/common.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/common.h
new file mode 100644
index 000000000..31ef25a24
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/common.h
@@ -0,0 +1,82 @@
+/**
+ * \file common.h
+ * \brief TM USB adapter common definitions
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_COMMON_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_COMMON_H_
+
+#include <cstdint>
+
+#include "utils/shared_ptr.h"
+
+#if defined(__QNX__) || (__QNXNTO__)
+#include "transport_manager/usb/qnx/usb_handler.h"
+#else
+#include "transport_manager/usb/libusb/usb_handler.h"
+#endif
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+static const uint16_t kAoaVid = 0x18d1;
+static const uint16_t kAoaPid1 = 0x2d00;
+static const uint16_t kAoaPid2 = 0x2d01;
+static const uint8_t kAoaInterfaceSubclass = 0xff;
+static const int kUsbConfiguration = 1;
+
+typedef utils::SharedPtr<UsbHandler> UsbHandlerSptr;
+
+class UsbDeviceListener {
+ public:
+ virtual ~UsbDeviceListener() {}
+
+ UsbHandlerSptr GetUsbHandler() { return usb_handler_; }
+
+ void SetUsbHandler(UsbHandlerSptr usb_handler) {
+ usb_handler_ = usb_handler;
+ usb_handler_->usb_device_listeners_.push_back(this);
+ }
+
+ virtual void OnDeviceArrived(PlatformUsbDevice* device) = 0;
+ virtual void OnDeviceLeft(PlatformUsbDevice* device) = 0;
+
+ private:
+ UsbHandlerSptr usb_handler_;
+};
+
+} // namespace
+} // namespace
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_COMMON_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h
new file mode 100644
index 000000000..d1f485c9d
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h
@@ -0,0 +1,78 @@
+/**
+ * \file platform_usb_device.h
+ * \brief libusb PlatformUsbDevice class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_PLATFORM_USB_DEVICE_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_PLATFORM_USB_DEVICE_H_
+
+#include <string>
+#include <libusb/libusb.h>
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+class PlatformUsbDevice {
+ public:
+ uint8_t bus_number() const { return bus_number_; }
+ uint8_t address() const { return address_; }
+ uint16_t vendor_id() const { return vendor_id_; }
+ uint16_t product_id() const { return product_id_; }
+ std::string GetManufacturer() const;
+ std::string GetProductName() const;
+ std::string GetSerialNumber() const;
+ PlatformUsbDevice(uint8_t bus, uint8_t address,
+ const libusb_device_descriptor& device_descriptor,
+ libusb_device* device_libusb,
+ libusb_device_handle* device_handle_libusb);
+ libusb_device_handle* GetLibusbHandle() { return libusb_device_handle_; }
+ libusb_device* GetLibusbDevice() { return libusb_device_; }
+
+ private:
+ std::string GetDescString(uint8_t index) const;
+
+ private:
+ uint8_t bus_number_;
+ uint8_t address_;
+ uint16_t vendor_id_;
+ uint16_t product_id_;
+ libusb_device_descriptor device_descriptor_;
+ libusb_device_handle* libusb_device_handle_;
+ libusb_device* libusb_device_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_PLATFORM_USB_DEVICE_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h
new file mode 100644
index 000000000..b6c050fa7
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h
@@ -0,0 +1,100 @@
+/**
+ * \file usb_connection.h
+ * \brief UsbConnection class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_USB_CONNECTION_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_USB_CONNECTION_H_
+
+#include <pthread.h>
+
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+#include "transport_manager/transport_adapter/connection.h"
+#include "transport_manager/usb/common.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class UsbConnection : public Connection {
+ public:
+ UsbConnection(const DeviceUID& device_uid,
+ const ApplicationHandle& app_handle,
+ TransportAdapterController* controller,
+ const UsbHandlerSptr& usb_handler, PlatformUsbDevice* device);
+
+ bool Init();
+
+ virtual ~UsbConnection();
+
+ protected:
+ virtual TransportAdapter::Error SendData(RawMessageSptr message);
+ virtual TransportAdapter::Error Disconnect();
+
+ private:
+ friend void InTransferCallback(struct libusb_transfer*);
+ friend void OutTransferCallback(struct libusb_transfer*);
+ bool FindEndpoints();
+ void PopOutMessage();
+ bool PostInTransfer();
+ bool PostOutTransfer();
+ void OnInTransfer(struct libusb_transfer*);
+ void OnOutTransfer(struct libusb_transfer*);
+ void Finalise();
+
+ const DeviceUID device_uid_;
+ const ApplicationHandle app_handle_;
+ TransportAdapterController* controller_;
+ UsbHandlerSptr usb_handler_;
+ libusb_device* libusb_device_;
+ libusb_device_handle* device_handle_;
+ uint8_t in_endpoint_;
+ uint16_t in_endpoint_max_packet_size_;
+ uint8_t out_endpoint_;
+ uint16_t out_endpoint_max_packet_size_;
+ unsigned char* in_buffer_;
+ libusb_transfer* in_transfer_;
+ libusb_transfer* out_transfer_;
+
+ std::list<RawMessageSptr> out_messages_;
+ RawMessageSptr current_out_message_;
+ pthread_mutex_t out_messages_mutex_;
+ size_t bytes_sent_;
+ bool disconnecting_;
+ bool waiting_in_transfer_cancel_;
+ bool waiting_out_transfer_cancel_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_USB_CONNECTION_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h
new file mode 100644
index 000000000..e76f49f8e
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h
@@ -0,0 +1,100 @@
+/**
+ * \file usb_handler.h
+ * \brief libusb USB handler class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_USB_HANDLER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_USB_HANDLER_H_
+
+#include <pthread.h>
+
+#include <libusb/libusb.h>
+
+#include "transport_manager/transport_adapter/transport_adapter.h"
+#include "transport_manager/usb/usb_control_transfer.h"
+#include "transport_manager/usb/libusb/platform_usb_device.h"
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+class UsbHandler {
+ public:
+ UsbHandler();
+ ~UsbHandler();
+ void StartControlTransferSequence(UsbControlTransferSequence* sequence,
+ PlatformUsbDevice* device);
+ TransportAdapter::Error Init();
+
+ public:
+ void CloseDeviceHandle(libusb_device_handle* device_handle);
+
+ private:
+ class ControlTransferSequenceState;
+
+ void Thread();
+ void DeviceArrived(libusb_device* device);
+ void DeviceLeft(libusb_device* device);
+
+ void ControlTransferCallback(libusb_transfer* transfer);
+ void SubmitControlTransfer(ControlTransferSequenceState* sequence_state);
+ friend void UsbTransferSequenceCallback(libusb_transfer* transfer);
+
+ private:
+ bool shutdown_requested_;
+ pthread_t thread_;
+
+ friend class UsbDeviceListener;
+ std::list<class UsbDeviceListener*> usb_device_listeners_;
+
+ typedef std::vector<PlatformUsbDevice*> Devices;
+ Devices devices_;
+
+ typedef std::list<ControlTransferSequenceState*> TransferSequences;
+ TransferSequences transfer_sequences_;
+ std::list<libusb_device_handle*> device_handles_to_close_;
+ libusb_context* libusb_context_;
+ libusb_hotplug_callback_handle arrived_callback_handle_;
+ libusb_hotplug_callback_handle left_callback_handle_;
+
+ friend void* UsbHandlerThread(void* data);
+ friend int ArrivedCallback(libusb_context* context, libusb_device* device,
+ libusb_hotplug_event event, void* data);
+ friend int LeftCallback(libusb_context* context, libusb_device* device,
+ libusb_hotplug_event event, void* data);
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_USB_HANDLER_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h
new file mode 100644
index 000000000..939a8fcb3
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h
@@ -0,0 +1,78 @@
+/**
+ * \file platform_usb_device.h
+ * \brief QNX PlatfromUsbDevice class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_QNX_PLATFORM_USB_DEVICE_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_QNX_PLATFORM_USB_DEVICE_H_
+
+#include <string>
+#include <sys/usbdi.h>
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+class PlatformUsbDevice {
+ public:
+ uint8_t bus_number() const { return bus_number_; }
+ uint8_t address() const { return address_; }
+ uint16_t vendor_id() const { return vendor_id_; }
+ uint16_t product_id() const { return product_id_; }
+ std::string GetManufacturer() const;
+ std::string GetProductName() const;
+ std::string GetSerialNumber() const;
+ PlatformUsbDevice(usbd_device_instance_t* instance, usbd_device* device,
+ const usbd_device_descriptor_t& device_descriptor);
+ const usbd_device_instance_t& GetDeviceInstance() {
+ return usbd_device_instance_;
+ }
+ usbd_device* GetUsbdDevice() { return usbd_device_; }
+
+ private:
+ std::string GetDescString(uint8_t index) const;
+
+ private:
+ uint8_t bus_number_;
+ uint8_t address_;
+ uint16_t vendor_id_;
+ uint16_t product_id_;
+ usbd_device_descriptor_t device_descriptor_;
+ usbd_device_instance_t usbd_device_instance_;
+ usbd_device* usbd_device_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_QNX_PLATFORM_USB_DEVICE_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h
new file mode 100644
index 000000000..3cd52fade
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h
@@ -0,0 +1,101 @@
+/**
+ * \file usb_connection.h
+ * \brief UsbConnection class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_QNX_USB_CONNECTION_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_QNX_USB_CONNECTION_H_
+
+#include <pthread.h>
+
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+#include "transport_manager/transport_adapter/connection.h"
+#include "transport_manager/usb/common.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class UsbConnection : public Connection {
+ static const uint32_t kInBufferSize = 2048;
+ public:
+ UsbConnection(const DeviceUID& device_uid,
+ const ApplicationHandle& app_handle,
+ TransportAdapterController* controller,
+ const UsbHandlerSptr& libusb_handler,
+ PlatformUsbDevice* device);
+
+ bool Init();
+
+ virtual ~UsbConnection();
+ protected:
+ virtual TransportAdapter::Error SendData(RawMessageSptr message);
+ virtual TransportAdapter::Error Disconnect();
+ private:
+ friend void InTransferCallback(usbd_urb* urb, usbd_pipe*, void*);
+ friend void OutTransferCallback(usbd_urb* urb, usbd_pipe*, void*);
+ bool OpenEndpoints();
+ void PopOutMessage();
+ bool PostInTransfer();
+ bool PostOutTransfer();
+ void OnInTransfer(usbd_urb* urb);
+ void OnOutTransfer(usbd_urb* urb);
+ void Finalise();
+
+ const DeviceUID device_uid_;
+ const ApplicationHandle app_handle_;
+ TransportAdapterController* controller_;
+ UsbHandlerSptr libusb_handler_;
+ usbd_device* usbd_device_;
+
+ usbd_pipe* in_pipe_;
+ usbd_pipe* out_pipe_;
+
+ unsigned char* in_buffer_;
+ void* out_buffer_;
+
+ usbd_urb* in_urb_;
+ usbd_urb* out_urb_;
+
+ std::list<RawMessageSptr> out_messages_;
+ RawMessageSptr current_out_message_;
+ pthread_mutex_t out_messages_mutex_;
+ size_t bytes_sent_;
+ bool disconnecting_;
+ bool pending_in_transfer_;
+ bool pending_out_transfer_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_QNX_USB_CONNECTION_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/usb_handler.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/usb_handler.h
new file mode 100644
index 000000000..26b00087f
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/qnx/usb_handler.h
@@ -0,0 +1,85 @@
+/**
+ * \file usb_handler.h
+ * \brief QNX USB handler class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_QNX_USB_HANDLER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_QNX_USB_HANDLER_H_
+
+#include <sys/usbdi.h>
+
+#include "transport_manager/transport_adapter/transport_adapter.h"
+#include "transport_manager/usb/usb_control_transfer.h"
+#include "transport_manager/usb/qnx/platform_usb_device.h"
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+class UsbHandler {
+ public:
+ UsbHandler();
+ ~UsbHandler();
+ void StartControlTransferSequence(UsbControlTransferSequence* sequence,
+ PlatformUsbDevice* device);
+ TransportAdapter::Error Init();
+
+ private:
+ void DeviceArrived(usbd_connection* connection,
+ usbd_device_instance_t* instance);
+ void DeviceLeft(usbd_device_instance_t* instance);
+
+ private:
+ friend class UsbDeviceListener;
+ std::list<class UsbDeviceListener*> usb_device_listeners_;
+
+ typedef std::vector<PlatformUsbDevice*> Devices;
+ Devices devices_;
+
+ struct usbd_connection* usbd_general_connection_;
+ struct usbd_connection* usbd_aoa_connection_;
+
+ friend void ArrivedCallback(usbd_connection* connection,
+ usbd_device_instance_t* instance);
+ friend void LeftCallback(usbd_connection* connection,
+ usbd_device_instance_t* instance);
+ friend void ArrivedAoaCallback(usbd_connection* connection,
+ usbd_device_instance_t* instance);
+ friend void LeftAoaCallback(usbd_connection* connection,
+ usbd_device_instance_t* instance);
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_QNX_USB_HANDLER_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_aoa_adapter.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_aoa_adapter.h
new file mode 100644
index 000000000..55fb028ef
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_aoa_adapter.h
@@ -0,0 +1,64 @@
+/**
+ * \file usb_aoa_adapter.h
+ * \brief UsbAoaAdapter class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_AOA_ADAPTER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_AOA_ADAPTER_H_
+
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/usb/common.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class UsbAoaAdapter : public TransportAdapterImpl {
+ public:
+ UsbAoaAdapter();
+ virtual ~UsbAoaAdapter();
+
+ protected:
+ virtual DeviceType GetDeviceType() const;
+ virtual bool IsInitialised() const;
+ virtual TransportAdapter::Error Init();
+ virtual bool ToBeAutoConnected(DeviceSptr device) const;
+
+ private:
+ bool is_initialised_;
+ UsbHandlerSptr usb_handler_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_AOA_ADAPTER
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_connection_factory.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_connection_factory.h
new file mode 100644
index 000000000..ed0fda91e
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_connection_factory.h
@@ -0,0 +1,67 @@
+/**
+ * \file usb_connection_factory.h
+ * \brief UsbConnectionFactory class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_CONNECTION_FACTORY_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_CONNECTION_FACTORY_H_
+
+#include "transport_manager/transport_adapter/server_connection_factory.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+#include "transport_manager/usb/common.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class UsbConnectionFactory : public ServerConnectionFactory {
+ public:
+ UsbConnectionFactory(TransportAdapterController* controller);
+ void SetUsbHandler(const UsbHandlerSptr& usb_handler);
+
+ protected:
+ virtual TransportAdapter::Error Init();
+ virtual TransportAdapter::Error CreateConnection(
+ const DeviceUID& device_uid, const ApplicationHandle& app_handle);
+ virtual void Terminate();
+ virtual bool IsInitialised() const;
+ virtual ~UsbConnectionFactory();
+
+ private:
+ TransportAdapterController* controller_;
+ UsbHandlerSptr usb_handler_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_CONNECTION_FACTORY_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h
new file mode 100644
index 000000000..8c4f8a9d4
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h
@@ -0,0 +1,105 @@
+/**
+ * \file aoa_common.h
+ * \brief Google AOA protocol header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_CONTROL_TRANSFER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_CONTROL_TRANSFER_H_
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+class UsbControlTransfer;
+class UsbControlInTransfer;
+class UsbControlOutTransfer;
+
+class UsbControlTransfer {
+ public:
+ enum TransferDirection {
+ IN,
+ OUT
+ };
+
+ enum RequestType {
+ VENDOR
+ };
+
+ virtual ~UsbControlTransfer() {}
+ virtual TransferDirection Direction() const = 0;
+ virtual RequestType Type() const = 0;
+ virtual uint8_t Request() const = 0;
+ virtual uint16_t Value() const = 0;
+ virtual uint16_t Index() const = 0;
+ virtual uint16_t Length() const = 0;
+};
+
+class UsbControlInTransfer : public UsbControlTransfer {
+ public:
+ virtual ~UsbControlInTransfer() {}
+ virtual TransferDirection Direction() const { return IN; }
+ virtual bool OnCompleted(unsigned char* data) const = 0;
+};
+
+class UsbControlOutTransfer : public UsbControlTransfer {
+ public:
+ virtual ~UsbControlOutTransfer() {}
+ virtual TransferDirection Direction() const { return OUT; }
+ virtual const char* Data() const = 0;
+};
+
+class UsbControlTransferSequence {
+ public:
+ typedef std::list<UsbControlTransfer*> Transfers;
+ const Transfers& transfers() const { return transfers_; }
+
+ virtual ~UsbControlTransferSequence() {
+ for (Transfers::iterator it = transfers_.begin(); it != transfers_.end();
+ ++it) {
+ delete *it;
+ }
+ }
+
+ protected:
+ void AddTransfer(UsbControlTransfer* transfer) {
+ transfers_.push_back(transfer);
+ }
+
+ private:
+ Transfers transfers_;
+};
+
+} // namespace
+} // namespace
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_CONTROL_TRANSFER_H_
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_device.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_device.h
new file mode 100644
index 000000000..48c5867f9
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_device.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * \file usb_device.h
+ * \brief UsbDevice class header file.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_DEVICE_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_DEVICE_H_
+
+#include "transport_manager/transport_adapter/device.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class UsbDevice : public Device {
+ public:
+ UsbDevice(PlatformUsbDevice* usb_device, const std::string& name,
+ const DeviceUID& unique_device_id)
+ : Device(name, unique_device_id), usb_device_(usb_device) {}
+
+ PlatformUsbDevice* usb_device() const { return usb_device_; }
+
+ protected:
+ virtual ~UsbDevice() {}
+
+ virtual bool IsSameAs(const Device* other_device) const {
+ return unique_device_id() == other_device->unique_device_id();
+ }
+
+ virtual ApplicationList GetApplicationList() const {
+ ApplicationList app_list;
+ app_list.push_back(1);
+ return app_list;
+ }
+
+ private:
+ PlatformUsbDevice* usb_device_;
+};
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_DEVICE
diff --git a/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h
new file mode 100644
index 000000000..6cae52266
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h
@@ -0,0 +1,78 @@
+/**
+ * \file usb_device_scanner.h
+ * \brief UsbDeviceScanner class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_DEVICE_SCANNER_H_
+#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_DEVICE_SCANNER_H_
+
+#include <list>
+
+#include <pthread.h>
+
+#include "transport_manager/transport_adapter/device_scanner.h"
+#include "transport_manager/usb/common.h"
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+class UsbDeviceScanner : public DeviceScanner, public UsbDeviceListener {
+ public:
+ UsbDeviceScanner(class TransportAdapterController* controller);
+ virtual ~UsbDeviceScanner();
+
+ protected:
+ virtual TransportAdapter::Error Init();
+ virtual TransportAdapter::Error Scan();
+ virtual void Terminate();
+ virtual bool IsInitialised() const;
+ virtual void OnDeviceArrived(PlatformUsbDevice* device);
+ virtual void OnDeviceLeft(PlatformUsbDevice* device);
+
+ private:
+ void UpdateList();
+ void TurnIntoAccessoryMode(PlatformUsbDevice* device);
+ void GoogleAccessoryFound(PlatformUsbDevice* device);
+
+ TransportAdapterController* controller_;
+
+ typedef std::list<PlatformUsbDevice*> Devices;
+ Devices devices_;
+ pthread_mutex_t devices_mutex_;
+};
+
+} // namespace
+} // namespace
+
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_DEVICE_SCANNER
diff --git a/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc b/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc
new file mode 100644
index 000000000..8d75c84b2
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc
@@ -0,0 +1,77 @@
+/**
+ * \file bluetooth_connection_factory.cc
+ * \brief BluetoothConnectionFactory class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/bluetooth/bluetooth_connection_factory.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+#include "transport_manager/bluetooth/bluetooth_socket_connection.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+BluetoothConnectionFactory::BluetoothConnectionFactory(
+ TransportAdapterController* controller)
+ : controller_(controller) {
+}
+
+TransportAdapter::Error BluetoothConnectionFactory::Init() {
+ return TransportAdapter::OK;
+}
+
+TransportAdapter::Error BluetoothConnectionFactory::CreateConnection(
+ const DeviceUID& device_uid, const ApplicationHandle& app_handle) {
+ LOG4CXX_INFO(logger_, "enter");
+ BluetoothSocketConnection* connection(
+ new BluetoothSocketConnection(device_uid, app_handle, controller_));
+ TransportAdapter::Error error = connection->Start();
+ if (error != TransportAdapter::OK) {
+ LOG4CXX_INFO(logger_, "connection::Start() failed");
+ delete connection;
+ }
+ LOG4CXX_INFO(logger_, "exit");
+ return error;
+}
+
+void BluetoothConnectionFactory::Terminate() {
+}
+
+bool BluetoothConnectionFactory::IsInitialised() const {
+ return true;
+}
+
+BluetoothConnectionFactory::~BluetoothConnectionFactory() {
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_device.cc b/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_device.cc
new file mode 100644
index 000000000..472922ec4
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_device.cc
@@ -0,0 +1,98 @@
+/**
+ * \file bluetooth_device.cc
+ * \brief BluetoothDevice class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/bluetooth/bluetooth_device.h"
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#include <algorithm>
+#include <limits>
+
+namespace transport_manager {
+namespace transport_adapter {
+
+bool BluetoothDevice::GetRfcommChannel(const ApplicationHandle app_handle,
+ uint8_t* channel_out) {
+ if (app_handle < 0 || app_handle > std::numeric_limits<uint8_t>::max())
+ return false;
+ const uint8_t channel = static_cast<uint8_t>(app_handle);
+ RfcommChannelVector::const_iterator it = std::find(rfcomm_channels_.begin(),
+ rfcomm_channels_.end(),
+ channel);
+ if (it == rfcomm_channels_.end())
+ return false;
+ *channel_out = channel;
+ return true;
+}
+
+std::string BluetoothDevice::GetUniqueDeviceId(const bdaddr_t& device_address) {
+ char device_address_string[32];
+ ba2str(&device_address, device_address_string);
+ return std::string("BT-") + device_address_string;
+}
+
+BluetoothDevice::BluetoothDevice(const bdaddr_t& device_address, const char* device_name,
+ const RfcommChannelVector& rfcomm_channels)
+ : Device(device_name, GetUniqueDeviceId(device_address)),
+ address_(device_address),
+ rfcomm_channels_(rfcomm_channels) {
+}
+
+bool BluetoothDevice::IsSameAs(const Device* other) const {
+ bool result = false;
+
+ const BluetoothDevice* other_bluetooth_device =
+ dynamic_cast<const BluetoothDevice*>(other);
+
+ if (0 != other_bluetooth_device) {
+ if (0
+ == memcmp(&address_, &other_bluetooth_device->address_,
+ sizeof(bdaddr_t))) {
+ result = true;
+ }
+ }
+
+ return result;
+}
+
+ApplicationList BluetoothDevice::GetApplicationList() const {
+ return ApplicationList(rfcomm_channels_.begin(), rfcomm_channels_.end());
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
diff --git a/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc b/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc
new file mode 100644
index 000000000..e1147fa52
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc
@@ -0,0 +1,487 @@
+/**
+ * \file bluetooth_device_scanner.cc
+ * \brief BluetoothDeviceScanner class header file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/bluetooth/bluetooth_device_scanner.h"
+
+#include <bluetooth/bluetooth.h>
+#include <bluetooth/hci.h>
+#include <bluetooth/hci_lib.h>
+#include <bluetooth/sdp.h>
+#include <bluetooth/sdp_lib.h>
+#include <bluetooth/rfcomm.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/time.h>
+#include <unistd.h>
+#include <vector>
+#include <sstream>
+#include "transport_manager/bluetooth/bluetooth_transport_adapter.h"
+#include "transport_manager/bluetooth/bluetooth_device.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+namespace {
+char* SplitToAddr(char* dev_list_entry) {
+ char* bl_address = strtok(dev_list_entry, "()");
+ if (bl_address != NULL) {
+ bl_address = strtok(NULL, "()");
+ return bl_address;
+ } else {
+ return NULL;
+ }
+}
+
+int FindPairedDevs(std::vector<bdaddr_t>* result) {
+ DCHECK(result != NULL);
+
+ const char* cmd = "bt-device -l";
+
+ FILE* pipe = popen(cmd, "r");
+ if (!pipe) {
+ return -1;
+ }
+ char* buffer = new char[1028];
+ size_t counter = 0;
+ while (fgets(buffer, 1028, pipe) != NULL) {
+ if (0 < counter++) { // skip first line
+ char* bt_address = SplitToAddr(buffer);
+ if (bt_address) {
+ bdaddr_t address;
+ str2ba(bt_address, &address);
+ result->push_back(address);
+ }
+ }
+ delete [] buffer;
+ buffer = new char[1028];
+ }
+ pclose(pipe);
+ return 0;
+}
+} // namespace
+
+BluetoothDeviceScanner::BluetoothDeviceScanner(
+ TransportAdapterController* controller, bool auto_repeat_search,
+ int auto_repeat_pause_sec)
+ : controller_(controller),
+ thread_(),
+ thread_started_(false),
+ shutdown_requested_(false),
+ ready_(true),
+ device_scan_requested_(false),
+ device_scan_requested_lock_(),
+ device_scan_requested_cv_(),
+ auto_repeat_search_(auto_repeat_search),
+ auto_repeat_pause_sec_(auto_repeat_pause_sec) {
+ uint8_t smart_device_link_service_uuid_data[] = { 0x93, 0x6D, 0xA0, 0x1F,
+ 0x9A, 0xBD, 0x4D, 0x9D, 0x80, 0xC7, 0x02, 0xAF, 0x85, 0xC8, 0x22, 0xA8
+ };
+ sdp_uuid128_create(&smart_device_link_service_uuid_,
+ smart_device_link_service_uuid_data);
+}
+
+BluetoothDeviceScanner::~BluetoothDeviceScanner() {
+}
+
+void* bluetoothDeviceScannerThread(void* data) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ BluetoothDeviceScanner* bluetoothDeviceScanner =
+ static_cast<BluetoothDeviceScanner*>(data);
+ assert(bluetoothDeviceScanner != 0);
+ bluetoothDeviceScanner->Thread();
+ LOG4CXX_TRACE_EXIT(logger_);
+ return 0;
+}
+
+bool BluetoothDeviceScanner::IsInitialised() const {
+ return thread_started_;
+}
+
+void BluetoothDeviceScanner::UpdateTotalDeviceList() {
+ DeviceVector devices;
+ devices.insert(devices.end(), paired_devices_with_sdl_.begin(),
+ paired_devices_with_sdl_.end());
+ devices.insert(devices.end(), found_devices_with_sdl_.begin(),
+ found_devices_with_sdl_.end());
+ controller_->SearchDeviceDone(devices);
+}
+
+void BluetoothDeviceScanner::DoInquiry() {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ const int device_id = hci_get_route(0);
+ if (device_id < 0) {
+ LOG4CXX_INFO(logger_, "HCI device is not available");
+ shutdown_requested_ = true;
+ controller_->SearchDeviceFailed(SearchDeviceError());
+ return;
+ }
+
+ int device_handle = hci_open_dev(device_id);
+ if (device_handle < 0) {
+ LOG4CXX_INFO(logger_, "device_handle < 0, exit DoInquiry");
+ controller_->SearchDeviceFailed(SearchDeviceError());
+ return;
+ }
+
+ if (paired_devices_.empty()) {
+ LOG4CXX_INFO(logger_, "Searching for paired devices.");
+ if (-1 == FindPairedDevs(&paired_devices_)) {
+ LOG4CXX_ERROR(logger_, "Failed to retrieve list of paired devices.");
+ controller_->SearchDeviceFailed(SearchDeviceError());
+ }
+ }
+
+ LOG4CXX_INFO(logger_, "Check rfcomm channel on "
+ << paired_devices_.size() << " paired devices.");
+
+ paired_devices_with_sdl_.clear();
+ CheckSDLServiceOnDevices(paired_devices_, device_handle,
+ &paired_devices_with_sdl_);
+ UpdateTotalDeviceList();
+
+ LOG4CXX_INFO(logger_, "Starting hci_inquiry on device " << device_id);
+ const uint8_t inquiry_time = 8u; // Time unit is 1.28 seconds
+ const size_t max_devices = 256u;
+ inquiry_info* inquiry_info_list = new inquiry_info[max_devices];
+
+ const int number_of_devices = hci_inquiry(device_id, inquiry_time,
+ max_devices, 0, &inquiry_info_list,
+ IREQ_CACHE_FLUSH);
+
+ if (number_of_devices >= 0) {
+ LOG4CXX_INFO(logger_,
+ "hci_inquiry: found " << number_of_devices << " devices");
+ std::vector < bdaddr_t > found_devices(number_of_devices);
+ for (int i = 0; i < number_of_devices; ++i) {
+ found_devices[i] = inquiry_info_list[i].bdaddr;
+ }
+ found_devices_with_sdl_.clear();
+ CheckSDLServiceOnDevices(found_devices, device_handle,
+ &found_devices_with_sdl_);
+ }
+ UpdateTotalDeviceList();
+
+ close(device_handle);
+ delete[] inquiry_info_list;
+
+ if (number_of_devices < 0) {
+ LOG4CXX_INFO(logger_, "number_of_devices < 0");
+ LOG4CXX_TRACE_EXIT(logger_);
+ controller_->SearchDeviceFailed(SearchDeviceError());
+ }
+
+ LOG4CXX_INFO(logger_, "Bluetooth inquiry finished");
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void BluetoothDeviceScanner::CheckSDLServiceOnDevices(
+ const std::vector<bdaddr_t>& bd_addresses, int device_handle,
+ DeviceVector* discovered_devices) {
+ std::vector<RfcommChannelVector> sdl_rfcomm_channels =
+ DiscoverSmartDeviceLinkRFCOMMChannels(bd_addresses);
+
+ for (size_t i = 0; i < bd_addresses.size(); ++i) {
+ if (sdl_rfcomm_channels[i].empty()) {
+ continue;
+ }
+
+ const bdaddr_t& bd_address = bd_addresses[i];
+ char deviceName[256];
+ int hci_read_remote_name_ret = hci_read_remote_name(
+ device_handle, &bd_address, sizeof(deviceName) / sizeof(deviceName[0]),
+ deviceName, 0);
+
+ if (hci_read_remote_name_ret != 0) {
+ LOG4CXX_ERROR_WITH_ERRNO(logger_, "hci_read_remote_name failed");
+ strncpy(deviceName,
+ BluetoothDevice::GetUniqueDeviceId(bd_address).c_str(),
+ sizeof(deviceName) / sizeof(deviceName[0]));
+ }
+
+ Device* bluetooth_device = new BluetoothDevice(bd_address, deviceName,
+ sdl_rfcomm_channels[i]);
+ if (bluetooth_device) {
+ LOG4CXX_INFO(logger_, "Bluetooth device created successfully");
+ discovered_devices->push_back(bluetooth_device);
+ } else {
+ LOG4CXX_WARN(logger_, "Can't create bluetooth device " << deviceName);
+ }
+ }
+}
+
+std::vector<BluetoothDeviceScanner::RfcommChannelVector> BluetoothDeviceScanner::DiscoverSmartDeviceLinkRFCOMMChannels(
+ const std::vector<bdaddr_t>& device_addresses) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ const size_t size = device_addresses.size();
+ std::vector<RfcommChannelVector> result(size);
+
+ static const int attempts = 4;
+ static const int attempt_timeout = 5;
+ std::vector<bool> processed(size, false);
+ unsigned processed_count = 0;
+ for (int nattempt = 0; nattempt < attempts; ++nattempt) {
+ for (size_t i = 0; i < size; ++i) {
+ if (processed[i]) {
+ continue;
+ }
+ const bool final = DiscoverSmartDeviceLinkRFCOMMChannels(
+ device_addresses[i], &result[i]);
+ if (final) {
+ processed[i] = true;
+ ++processed_count;
+ }
+ }
+ if (++processed_count >= size) {
+ break;
+ }
+ sleep(attempt_timeout);
+ }
+ return result;
+}
+
+bool BluetoothDeviceScanner::DiscoverSmartDeviceLinkRFCOMMChannels(
+ const bdaddr_t& device_address, RfcommChannelVector* channels) {
+ static bdaddr_t any_address = { { 0, 0, 0, 0, 0, 0 } };
+
+ sdp_session_t* sdp_session = sdp_connect(
+ &any_address, &device_address, SDP_RETRY_IF_BUSY | SDP_WAIT_ON_CLOSE);
+ if (sdp_session == 0) {
+ LOG4CXX_INFO(logger_, "sdp_connect errno " << errno);
+ return !(errno == 31 || errno == 16 || errno == 117 || errno == 114);
+ }
+
+ sdp_list_t* search_list = sdp_list_append(0,
+ &smart_device_link_service_uuid_);
+ uint32_t range = 0x0000ffff;
+ sdp_list_t* attr_list = sdp_list_append(0, &range);
+ sdp_list_t* response_list = 0;
+
+ if (0
+ == sdp_service_search_attr_req(sdp_session, search_list,
+ SDP_ATTR_REQ_RANGE, attr_list,
+ &response_list)) {
+ for (sdp_list_t* r = response_list; 0 != r; r = r->next) {
+ sdp_record_t* sdp_record = static_cast<sdp_record_t*>(r->data);
+ sdp_list_t* proto_list = 0;
+
+ if (0 == sdp_get_access_protos(sdp_record, &proto_list)) {
+ for (sdp_list_t* p = proto_list; 0 != p; p = p->next) {
+ sdp_list_t* pdsList = static_cast<sdp_list_t*>(p->data);
+
+ for (sdp_list_t* pds = pdsList; 0 != pds; pds = pds->next) {
+ sdp_data_t* sdpData = static_cast<sdp_data_t*>(pds->data);
+ int proto = 0;
+
+ for (sdp_data_t* d = sdpData; 0 != d; d = d->next) {
+ switch (d->dtd) {
+ case SDP_UUID16:
+ case SDP_UUID32:
+ case SDP_UUID128:
+ proto = sdp_uuid_to_proto(&d->val.uuid);
+ break;
+
+ case SDP_UINT8:
+ if (RFCOMM_UUID == proto) {
+ channels->push_back(d->val.uint8);
+ }
+ break;
+ }
+ }
+ }
+
+ sdp_list_free(pdsList, 0);
+ }
+
+ sdp_list_free(proto_list, 0);
+ }
+ }
+ }
+ sdp_list_free(search_list, 0);
+ sdp_list_free(attr_list, 0);
+ sdp_list_free(response_list, 0);
+ sdp_close(sdp_session);
+
+ if (!channels->empty()) {
+ LOG4CXX_INFO(logger_, "channels not empty");
+ std::stringstream rfcomm_channels_string;
+
+ for (RfcommChannelVector::const_iterator it = channels->begin();
+ it != channels->end(); ++it) {
+ if (it != channels->begin()) {
+ rfcomm_channels_string << ", ";
+ }
+ rfcomm_channels_string << static_cast<uint32_t>(*it);
+ }
+
+ LOG4CXX_INFO(
+ logger_,
+ "SmartDeviceLink service was discovered on device "
+ << BluetoothDevice::GetUniqueDeviceId(device_address)
+ << " at channel(s): " << rfcomm_channels_string.str().c_str());
+ } else {
+ LOG4CXX_INFO(
+ logger_,
+ "SmartDeviceLink service was not discovered on device "
+ << BluetoothDevice::GetUniqueDeviceId(device_address));
+ }
+ LOG4CXX_TRACE_EXIT(logger_);
+ return true;
+}
+
+void BluetoothDeviceScanner::Thread() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ LOG4CXX_INFO(logger_, "Bluetooth adapter main thread initialized");
+ ready_ = true;
+ if (auto_repeat_search_) {
+ while (!shutdown_requested_) {
+ DoInquiry();
+ device_scan_requested_ = false;
+ TimedWaitForDeviceScanRequest();
+ }
+ } else { // search only on demand
+ while (true) {
+ {
+ sync_primitives::AutoLock auto_lock(device_scan_requested_lock_);
+ while (!(device_scan_requested_ || shutdown_requested_)) {
+ device_scan_requested_cv_.Wait(auto_lock);
+ }
+ }
+ if (shutdown_requested_) {
+ break;
+ }
+ DoInquiry();
+ device_scan_requested_ = false;
+ }
+ }
+
+ LOG4CXX_INFO(logger_, "Bluetooth device scanner thread finished");
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void BluetoothDeviceScanner::TimedWaitForDeviceScanRequest() {
+ LOG4CXX_TRACE_ENTER(logger_);
+
+ if (auto_repeat_pause_sec_ == 0) {
+ LOG4CXX_TRACE_EXIT(logger_);
+ return;
+ }
+
+ {
+ sync_primitives::AutoLock auto_lock(device_scan_requested_lock_);
+ while (!(device_scan_requested_ || shutdown_requested_)) {
+ const sync_primitives::ConditionalVariable::WaitStatus wait_status =
+ device_scan_requested_cv_.WaitFor(auto_lock, auto_repeat_pause_sec_ * 1000);
+ if (wait_status == sync_primitives::ConditionalVariable::kTimeout) {
+ LOG4CXX_INFO(logger_, "Bluetooth scanner timeout, performing scan");
+ device_scan_requested_ = true;
+ }
+ }
+ }
+
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+TransportAdapter::Error BluetoothDeviceScanner::Init() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ const int thread_start_error = pthread_create(&thread_, 0,
+ &bluetoothDeviceScannerThread,
+ this);
+
+ if (0 == thread_start_error) {
+ thread_started_ = true;
+ LOG4CXX_INFO(logger_, "Bluetooth device scanner thread started");
+ } else {
+ LOG4CXX_ERROR(
+ logger_,
+ "Bluetooth device scanner thread start failed, error code "
+ << thread_start_error);
+ LOG4CXX_TRACE_EXIT(logger_);
+ return TransportAdapter::FAIL;
+ }
+ LOG4CXX_TRACE_EXIT(logger_);
+ return TransportAdapter::OK;
+}
+
+void BluetoothDeviceScanner::Terminate() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ shutdown_requested_ = true;
+
+ if (true == thread_started_) {
+ {
+ sync_primitives::AutoLock auto_lock(device_scan_requested_lock_);
+ device_scan_requested_ = false;
+ device_scan_requested_cv_.NotifyOne();
+ }
+ LOG4CXX_INFO(logger_,
+ "Waiting for bluetooth device scanner thread termination");
+ pthread_join(thread_, 0);
+ LOG4CXX_INFO(logger_, "Bluetooth device scanner thread terminated");
+ }
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+TransportAdapter::Error BluetoothDeviceScanner::Scan() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ if ((!thread_started_) || shutdown_requested_) {
+ LOG4CXX_INFO(logger_, "bad state");
+ return TransportAdapter::BAD_STATE;
+ }
+ if (auto_repeat_pause_sec_ == 0) {
+ LOG4CXX_INFO(logger_, "no search pause, scan forcing not needed");
+ return TransportAdapter::OK;
+ }
+ TransportAdapter::Error ret = TransportAdapter::OK;
+
+ {
+ sync_primitives::AutoLock auto_lock(device_scan_requested_lock_);
+ if (false == device_scan_requested_) {
+ LOG4CXX_INFO(logger_, "Requesting device Scan");
+ device_scan_requested_ = true;
+ device_scan_requested_cv_.NotifyOne();
+ } else {
+ ret = TransportAdapter::BAD_STATE;
+ LOG4CXX_INFO(logger_, "Device Scan is currently in progress");
+ }
+ }
+
+ LOG4CXX_TRACE_EXIT(logger_);
+ return ret;
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
diff --git a/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc b/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc
new file mode 100644
index 000000000..64e6f9d71
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc
@@ -0,0 +1,132 @@
+/**
+ * \file bluetooth_socket_connection.cc
+ * \brief BluetoothSocketConnection class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/bluetooth/bluetooth_socket_connection.h"
+
+#include <unistd.h>
+#include <bluetooth/bluetooth.h>
+#include <bluetooth/hci.h>
+#include <bluetooth/hci_lib.h>
+#include <bluetooth/sdp.h>
+#include <bluetooth/sdp_lib.h>
+#include <bluetooth/rfcomm.h>
+
+#include "transport_manager/bluetooth/bluetooth_device.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+BluetoothSocketConnection::BluetoothSocketConnection(
+ const DeviceUID& device_uid, const ApplicationHandle& app_handle,
+ TransportAdapterController* controller)
+ : ThreadedSocketConnection(device_uid, app_handle, controller) {
+}
+
+BluetoothSocketConnection::~BluetoothSocketConnection() {
+}
+
+bool BluetoothSocketConnection::Establish(ConnectError** error) {
+ LOG4CXX_INFO(logger_, "enter (#" << pthread_self() << ")");
+ DeviceSptr device = controller()->FindDevice(device_handle());
+
+ BluetoothDevice* bluetooth_device =
+ static_cast<BluetoothDevice*>(device.get());
+
+ uint8_t rfcomm_channel;
+ if (!bluetooth_device->GetRfcommChannel(application_handle(),
+ &rfcomm_channel)) {
+ LOG4CXX_ERROR(logger_,
+ "Application " << application_handle() << " not found");
+ *error = new ConnectError();
+ LOG4CXX_INFO(logger_, "exit (#" << pthread_self() << ")");
+ return false;
+ }
+
+ struct sockaddr_rc remoteSocketAddress = { 0 };
+ remoteSocketAddress.rc_family = AF_BLUETOOTH;
+ memcpy(&remoteSocketAddress.rc_bdaddr, &bluetooth_device->address(),
+ sizeof(bdaddr_t));
+ remoteSocketAddress.rc_channel = rfcomm_channel;
+
+ int rfcomm_socket;
+
+ int attempts = 4;
+ int connect_status = 0;
+ LOG4CXX_INFO(logger_, "start rfcomm Connect attempts");
+ do {
+ rfcomm_socket = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
+ if (-1 == rfcomm_socket) {
+ LOG4CXX_ERROR_WITH_ERRNO(
+ logger_,
+ "Failed to create RFCOMM socket for device " << device_handle());
+ *error = new ConnectError();
+ LOG4CXX_INFO(logger_, "exit (#" << pthread_self() << ")");
+ return false;
+ }
+ connect_status = ::connect(rfcomm_socket,
+ (struct sockaddr*) &remoteSocketAddress,
+ sizeof(remoteSocketAddress));
+ if (0 == connect_status) {
+ LOG4CXX_INFO(logger_, "rfcomm Connect ok");
+ break;
+ }
+ LOG4CXX_INFO(logger_, "rfcomm Connect errno " << errno);
+ if (errno != 111 && errno != 104) {
+ break;
+ }
+ if (errno) {
+ close(rfcomm_socket);
+ }
+ sleep(2);
+ } while (--attempts > 0);
+ LOG4CXX_INFO(logger_, "rfcomm Connect attempts finished");
+ if (0 != connect_status) {
+ LOG4CXX_ERROR_WITH_ERRNO(
+ logger_,
+ "Failed to Connect to remote device " << BluetoothDevice::GetUniqueDeviceId(remoteSocketAddress.rc_bdaddr) << " for session " << this);
+ *error = new ConnectError();
+ LOG4CXX_INFO(logger_, "exit (#" << pthread_self() << ")");
+ return false;
+ }
+
+ set_socket(rfcomm_socket);
+ LOG4CXX_INFO(logger_, "exit (#" << pthread_self() << ")");
+ return true;
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
diff --git a/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_transport_adapter.cc b/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_transport_adapter.cc
new file mode 100644
index 000000000..e16ba186f
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/bluetooth/bluetooth_transport_adapter.cc
@@ -0,0 +1,144 @@
+/**
+ * \file bluetooth_transport_adapter.cc
+ * \brief BluetoothTransportAdapter class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <unistd.h>
+
+#include <iomanip>
+#include <set>
+#include <bluetooth/bluetooth.h>
+
+#include "resumption/last_state.h"
+
+#include "transport_manager/bluetooth/bluetooth_transport_adapter.h"
+#include "transport_manager/bluetooth/bluetooth_device_scanner.h"
+#include "transport_manager/bluetooth/bluetooth_connection_factory.h"
+#include "transport_manager/bluetooth/bluetooth_device.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+BluetoothTransportAdapter::~BluetoothTransportAdapter() {
+}
+
+BluetoothTransportAdapter::BluetoothTransportAdapter()
+ : TransportAdapterImpl(new BluetoothDeviceScanner(this, true, 0),
+ new BluetoothConnectionFactory(this), 0) {
+}
+
+DeviceType BluetoothTransportAdapter::GetDeviceType() const {
+ return "sdl-bluetooth";
+}
+
+void BluetoothTransportAdapter::Store() const {
+ LOG4CXX_TRACE_ENTER(logger_);
+ resumption::LastState::Dictionary bluetooth_adapter_dictionary;
+ DeviceList device_ids = GetDeviceList();
+ for (DeviceList::const_iterator i = device_ids.begin(); i != device_ids.end(); ++i) {
+ DeviceUID device_id = *i;
+ DeviceSptr device = FindDevice(device_id);
+ if (!device) { // device could have been disconnected
+ continue;
+ }
+ utils::SharedPtr<BluetoothDevice> bluetooth_device =
+ DeviceSptr::static_pointer_cast<BluetoothDevice>(device);
+ resumption::LastState::Dictionary device_dictionary;
+ char address[18];
+ ba2str(&bluetooth_device->address(), address);
+ device_dictionary.AddItem("address", std::string(address));
+ resumption::LastState::Dictionary applications_dictionary;
+ ApplicationList app_ids = bluetooth_device->GetApplicationList();
+ for (ApplicationList::const_iterator j = app_ids.begin(); j != app_ids.end(); ++j) {
+ ApplicationHandle app_handle = *j;
+ uint8_t rfcomm_channel;
+ bluetooth_device->GetRfcommChannel(app_handle, &rfcomm_channel);
+ resumption::LastState::Dictionary application_dictionary;
+ application_dictionary.AddItem("rfcomm_channel", std::to_string(rfcomm_channel));
+ applications_dictionary.AddSubitem(std::to_string(rfcomm_channel), application_dictionary);
+ }
+ device_dictionary.AddSubitem("applications", applications_dictionary);
+ bluetooth_adapter_dictionary.AddSubitem(bluetooth_device->name(), device_dictionary);
+ }
+ resumption::LastState::instance()->dictionary.AddSubitem(
+ "BluetoothAdapter", bluetooth_adapter_dictionary
+ );
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+bool BluetoothTransportAdapter::Restore() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ bool errors_occured = false;
+ resumption::LastState::Dictionary bluetooth_adapter_dictionary =
+ resumption::LastState::instance()->dictionary.SubitemAt("BluetoothAdapter");
+ for (resumption::LastState::Dictionary::const_iterator i =
+ bluetooth_adapter_dictionary.begin(); i != bluetooth_adapter_dictionary.end(); ++i) {
+ std::string name = i->first;
+ resumption::LastState::Dictionary device_dictionary = i->second;
+ std::string address_record = device_dictionary.ItemAt("address");
+ bdaddr_t address;
+ str2ba(address_record.c_str(), &address);
+ RfcommChannelVector rfcomm_channels;
+ resumption::LastState::Dictionary applications_dictionary =
+ device_dictionary.SubitemAt("applications");
+ for (resumption::LastState::Dictionary::const_iterator j =
+ applications_dictionary.begin(); j != applications_dictionary.end(); ++j) {
+ resumption::LastState::Dictionary application_dictionary = j->second;
+ std::string rfcomm_channel_record =
+ application_dictionary.ItemAt("rfcomm_channel");
+ uint8_t rfcomm_channel =
+ static_cast<uint8_t>(atoi(rfcomm_channel_record.c_str()));
+ rfcomm_channels.push_back(rfcomm_channel);
+ }
+ BluetoothDevice* bluetooth_device =
+ new BluetoothDevice(address, name.c_str(), rfcomm_channels);
+ DeviceSptr device(bluetooth_device);
+ AddDevice(device);
+ for (RfcommChannelVector::const_iterator j =
+ rfcomm_channels.begin(); j != rfcomm_channels.end(); ++j) {
+ ApplicationHandle app_handle = *j; // for Bluetooth device app_handle is just RFCOMM channel
+ if (Error::OK != Connect(device->unique_device_id(), app_handle)) {
+ errors_occured = true;
+ }
+ }
+ }
+ LOG4CXX_TRACE_EXIT(logger_);
+ return !errors_occured;
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
diff --git a/SDL_Core/src/components/transport_manager/src/tcp/dnssd_service_browser.cc b/SDL_Core/src/components/transport_manager/src/tcp/dnssd_service_browser.cc
new file mode 100644
index 000000000..799348cfb
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/tcp/dnssd_service_browser.cc
@@ -0,0 +1,326 @@
+/**
+ * \file dnssd_service_browser.cc
+ * \brief DnssdServiceBrowser class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <algorithm>
+#include <map>
+
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/tcp/tcp_device.h"
+#include "transport_manager/tcp/dnssd_service_browser.h"
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+bool operator==(const DnssdServiceRecord& a, const DnssdServiceRecord& b) {
+ return a.name == b.name && a.type == b.type && a.interface == b.interface
+ && a.protocol == b.protocol && a.domain_name == b.domain_name;
+}
+
+void DnssdServiceBrowser::Terminate() {
+ if (0 != avahi_threaded_poll_)
+ avahi_threaded_poll_stop(avahi_threaded_poll_);
+ if (0 != avahi_service_browser_)
+ avahi_service_browser_free(avahi_service_browser_);
+ if (0 != avahi_client_)
+ avahi_client_free(avahi_client_);
+ if (0 != avahi_threaded_poll_)
+ avahi_threaded_poll_free(avahi_threaded_poll_);
+}
+
+bool DnssdServiceBrowser::IsInitialised() const {
+ return initialised_;
+}
+
+DnssdServiceBrowser::DnssdServiceBrowser(TransportAdapterController* controller)
+ : controller_(controller),
+ avahi_service_browser_(0),
+ avahi_threaded_poll_(0),
+ avahi_client_(0),
+ service_records_(),
+ mutex_(),
+ initialised_(false) {
+ pthread_mutex_init(&mutex_, 0);
+}
+
+DnssdServiceBrowser::~DnssdServiceBrowser() {
+ pthread_mutex_destroy(&mutex_);
+}
+
+void DnssdServiceBrowser::OnClientConnected() {
+ initialised_ = true;
+ LOG4CXX_ERROR(logger_, "AvahiClient ready");
+}
+
+void DnssdServiceBrowser::OnClientFailure() {
+ const int avahi_errno = avahi_client_errno(avahi_client_);
+ if (avahi_errno == AVAHI_ERR_DISCONNECTED) {
+ LOG4CXX_INFO(logger_, "AvahiClient disconnected");
+ CreateAvahiClientAndBrowser();
+ } else {
+ LOG4CXX_ERROR(logger_,
+ "AvahiClient failure: " << avahi_strerror(avahi_errno));
+ }
+}
+
+void AvahiClientCallback(AvahiClient *avahi_client,
+ AvahiClientState avahi_client_state, void* data) {
+ DnssdServiceBrowser* dnssd_service_browser =
+ static_cast<DnssdServiceBrowser*>(data);
+
+ switch (avahi_client_state) {
+ case AVAHI_CLIENT_S_RUNNING:
+ dnssd_service_browser->OnClientConnected();
+ break;
+ case AVAHI_CLIENT_FAILURE:
+ dnssd_service_browser->OnClientFailure();
+ break;
+ }
+}
+
+void AvahiServiceBrowserCallback(AvahiServiceBrowser *avahi_service_browser,
+ AvahiIfIndex interface, AvahiProtocol protocol,
+ AvahiBrowserEvent event, const char *name,
+ const char *type, const char *domain,
+ AvahiLookupResultFlags flags, void* data) {
+ DnssdServiceBrowser* dnssd_service_browser =
+ static_cast<DnssdServiceBrowser*>(data);
+
+ int avahi_errno;
+ switch (event) {
+ case AVAHI_BROWSER_FAILURE:
+ avahi_errno = avahi_client_errno(
+ avahi_service_browser_get_client(avahi_service_browser));
+ LOG4CXX_ERROR(
+ logger_,
+ "AvahiServiceBrowser failure: " << avahi_strerror(avahi_errno));
+ break;
+
+ case AVAHI_BROWSER_NEW:
+ dnssd_service_browser->AddService(interface, protocol, name, type,
+ domain);
+ break;
+
+ case AVAHI_BROWSER_REMOVE:
+ dnssd_service_browser->RemoveService(interface, protocol, name, type,
+ domain);
+ break;
+
+ case AVAHI_BROWSER_ALL_FOR_NOW:
+ case AVAHI_BROWSER_CACHE_EXHAUSTED:
+ break;
+ }
+}
+
+void DnssdServiceBrowser::ServiceResolved(
+ const DnssdServiceRecord& service_record) {
+ pthread_mutex_lock(&mutex_);
+ ServiceRecords::iterator service_record_it = std::find(
+ service_records_.begin(), service_records_.end(), service_record);
+ if (service_record_it != service_records_.end()) {
+ *service_record_it = service_record;
+ }
+ DeviceVector device_vector = PrepareDeviceVector();
+ controller_->SearchDeviceDone(device_vector);
+ pthread_mutex_unlock(&mutex_);
+}
+
+void DnssdServiceBrowser::ServiceResolveFailed(
+ const DnssdServiceRecord& service_record) {
+ LOG4CXX_ERROR(logger_,
+ "AvahiServiceResolver failure for: " << service_record.name);
+ pthread_mutex_lock(&mutex_);
+ ServiceRecords::iterator service_record_it = std::find(
+ service_records_.begin(), service_records_.end(), service_record);
+ if (service_record_it != service_records_.end()) {
+ service_records_.erase(service_record_it);
+ }
+ pthread_mutex_unlock(&mutex_);
+}
+
+void AvahiServiceResolverCallback(AvahiServiceResolver* avahi_service_resolver,
+ AvahiIfIndex interface,
+ AvahiProtocol protocol,
+ AvahiResolverEvent event, const char* name,
+ const char* type, const char* domain,
+ const char* host_name,
+ const AvahiAddress* avahi_address,
+ uint16_t port, AvahiStringList* txt,
+ AvahiLookupResultFlags flags, void *data) {
+ DnssdServiceBrowser* dnssd_service_browser =
+ static_cast<DnssdServiceBrowser*>(data);
+
+ DnssdServiceRecord service_record;
+ service_record.interface = interface;
+ service_record.protocol = protocol;
+ service_record.domain_name = domain;
+ service_record.host_name = host_name;
+ service_record.name = name;
+ service_record.type = type;
+ switch (event) {
+ case AVAHI_RESOLVER_FOUND:
+ service_record.addr = avahi_address->data.ipv4.address;
+ service_record.port = port;
+ dnssd_service_browser->ServiceResolved(service_record);
+ break;
+ case AVAHI_RESOLVER_FAILURE:
+ dnssd_service_browser->ServiceResolveFailed(service_record);
+ break;
+ }
+
+ avahi_service_resolver_free(avahi_service_resolver);
+}
+
+TransportAdapter::Error DnssdServiceBrowser::CreateAvahiClientAndBrowser() {
+ if (0 != avahi_service_browser_)
+ avahi_service_browser_free(avahi_service_browser_);
+ if (0 != avahi_client_)
+ avahi_client_free(avahi_client_);
+
+ int avahi_error;
+ avahi_client_ = avahi_client_new(
+ avahi_threaded_poll_get(avahi_threaded_poll_), AVAHI_CLIENT_NO_FAIL,
+ AvahiClientCallback, this, &avahi_error);
+ if (0 == avahi_client_) {
+ LOG4CXX_ERROR(
+ logger_,
+ "Failed to create AvahiClient: " << avahi_strerror(avahi_error));
+ return TransportAdapter::FAIL;
+ }
+
+ pthread_mutex_lock(&mutex_);
+ service_records_.clear();
+ pthread_mutex_unlock(&mutex_);
+
+ avahi_service_browser_ = avahi_service_browser_new(
+ avahi_client_, AVAHI_IF_UNSPEC, /* TODO use only required iface */
+ AVAHI_PROTO_INET, DNSSD_DEFAULT_SERVICE_TYPE, NULL, /* use default domain */
+ static_cast<AvahiLookupFlags>(0), AvahiServiceBrowserCallback, this);
+
+ return TransportAdapter::OK;
+}
+
+TransportAdapter::Error DnssdServiceBrowser::Init() {
+ avahi_threaded_poll_ = avahi_threaded_poll_new();
+ if (0 == avahi_threaded_poll_) {
+ LOG4CXX_ERROR(logger_, "Failed to create AvahiThreadedPoll");
+ return TransportAdapter::FAIL;
+ }
+
+ const TransportAdapter::Error err = CreateAvahiClientAndBrowser();
+ if (err != TransportAdapter::OK) {
+ return err;
+ }
+
+ const int poll_start_status = avahi_threaded_poll_start(avahi_threaded_poll_);
+ if (poll_start_status != 0) {
+ LOG4CXX_ERROR(logger_, "Failed to start AvahiThreadedPoll");
+ return TransportAdapter::FAIL;
+ }
+
+ return TransportAdapter::OK;
+}
+
+TransportAdapter::Error DnssdServiceBrowser::Scan() {
+ return TransportAdapter::NOT_SUPPORTED;
+}
+
+void DnssdServiceBrowser::AddService(AvahiIfIndex interface,
+ AvahiProtocol protocol, const char* name,
+ const char* type, const char* domain) {
+ DnssdServiceRecord record;
+ record.interface = interface;
+ record.protocol = protocol;
+ record.domain_name = domain;
+ record.name = name;
+ record.type = type;
+
+ pthread_mutex_lock(&mutex_);
+ if (service_records_.end()
+ == std::find(service_records_.begin(), service_records_.end(), record)) {
+ service_records_.push_back(record);
+ AvahiServiceResolver* avahi_service_resolver = avahi_service_resolver_new(
+ avahi_client_, interface, protocol, name, type, domain,
+ AVAHI_PROTO_INET, static_cast<AvahiLookupFlags>(0),
+ AvahiServiceResolverCallback, this);
+ }
+ pthread_mutex_unlock(&mutex_);
+}
+
+void DnssdServiceBrowser::RemoveService(AvahiIfIndex interface,
+ AvahiProtocol protocol,
+ const char* name, const char* type,
+ const char* domain) {
+ DnssdServiceRecord record;
+ record.interface = interface;
+ record.protocol = protocol;
+ record.name = name;
+ record.type = type;
+ record.domain_name = domain;
+
+ pthread_mutex_lock(&mutex_);
+ service_records_.erase(
+ std::remove(service_records_.begin(), service_records_.end(), record),
+ service_records_.end());
+ pthread_mutex_unlock(&mutex_);
+}
+
+DeviceVector DnssdServiceBrowser::PrepareDeviceVector() const {
+ std::map<uint32_t, TcpDevice*> devices;
+ for (ServiceRecords::const_iterator it = service_records_.begin();
+ it != service_records_.end(); ++it) {
+ const DnssdServiceRecord& service_record = *it;
+ if (service_record.host_name.empty()) continue;
+ if (devices[service_record.addr] == 0) {
+ devices[service_record.addr] = new TcpDevice(service_record.addr,
+ service_record.host_name);
+ }
+ if (devices[service_record.addr] != 0) {
+ devices[service_record.addr]->AddDiscoveredApplication(
+ service_record.port);
+ }
+ }
+ DeviceVector device_vector;
+ device_vector.reserve(devices.size());
+ for (std::map<uint32_t, TcpDevice*>::const_iterator it = devices.begin();
+ it != devices.end(); ++it) {
+ device_vector.push_back(DeviceSptr(it->second));
+ }
+ return device_vector;
+}
+
+} // namespace
+} // namespace
+
diff --git a/SDL_Core/src/components/transport_manager/src/tcp/tcp_client_listener.cc b/SDL_Core/src/components/transport_manager/src/tcp/tcp_client_listener.cc
new file mode 100644
index 000000000..5180129ad
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/tcp/tcp_client_listener.cc
@@ -0,0 +1,254 @@
+/**
+ * \file tcp_client_listener.cc
+ * \brief TcpClientListener class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/tcp/tcp_client_listener.h"
+
+#include <memory.h>
+#include <signal.h>
+#include <errno.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#include <sys/socket.h>
+#ifdef __linux__
+# include <linux/tcp.h>
+#else // __linux__
+# include <sys/time.h>
+# include <netinet/in.h>
+# include <netinet/tcp.h>
+# include <netinet/tcp_var.h>
+#endif // __linux__
+
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+#include "transport_manager/tcp/tcp_device.h"
+#include "transport_manager/tcp/tcp_socket_connection.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+TcpClientListener::TcpClientListener(TransportAdapterController* controller,
+ const uint16_t port)
+ : port_(port),
+ controller_(controller),
+ thread_(),
+ socket_(-1),
+ thread_started_(false),
+ shutdown_requested_(false),
+ thread_stop_requested_(false) {
+}
+
+void* tcpClientListenerThread(void* data) {
+ TcpClientListener* tcpClientListener = static_cast<TcpClientListener*>(data);
+ assert(tcpClientListener != 0);
+ tcpClientListener->Thread();
+ return 0;
+}
+
+TransportAdapter::Error TcpClientListener::Init() {
+ return TransportAdapter::OK;
+}
+
+void TcpClientListener::Terminate() {
+ shutdown_requested_ = true;
+ if (TransportAdapter::OK != StopListening()) {
+ LOG4CXX_ERROR(logger_, "Cannot stop listening TCP");
+ }
+}
+
+bool TcpClientListener::IsInitialised() const {
+ return true;
+}
+
+TcpClientListener::~TcpClientListener() {
+ LOG4CXX_INFO(logger_, "destructor");
+}
+
+void TcpClientListener::Thread() {
+ LOG4CXX_INFO(logger_, "Tcp client listener thread started");
+
+ while (false == thread_stop_requested_) {
+ sockaddr_in client_address;
+ socklen_t client_address_size = sizeof(client_address);
+ const int connection_fd = accept(socket_,
+ (struct sockaddr*) &client_address,
+ &client_address_size);
+ if (thread_stop_requested_) break;
+
+ if (connection_fd < 0) {
+ LOG4CXX_ERROR_WITH_ERRNO(logger_, "accept() failed");
+ continue;
+ }
+
+ if (AF_INET != client_address.sin_family) {
+ LOG4CXX_ERROR(logger_, "Address of connected client is invalid");
+ continue;
+ }
+
+ char device_name[32];
+ strncpy(device_name, inet_ntoa(client_address.sin_addr),
+ sizeof(device_name) / sizeof(device_name[0]));
+ LOG4CXX_INFO(logger_, "Connected client " << device_name);
+
+ int yes = 1;
+ int keepidle = 3; // 3 seconds to disconnection detecting
+ int keepcnt = 5;
+ int keepintvl = 1;
+ int user_timeout = 7000; // milliseconds
+#ifdef __linux__
+ setsockopt(connection_fd, SOL_SOCKET, SO_KEEPALIVE, &yes, sizeof(yes));
+ setsockopt(connection_fd, IPPROTO_TCP, TCP_KEEPIDLE, &keepidle, sizeof(keepidle));
+ setsockopt(connection_fd, IPPROTO_TCP, TCP_KEEPCNT, &keepcnt, sizeof(keepcnt));
+ setsockopt(connection_fd, IPPROTO_TCP, TCP_KEEPINTVL, &keepintvl, sizeof(keepintvl));
+ setsockopt(connection_fd, IPPROTO_TCP, TCP_USER_TIMEOUT, &user_timeout, sizeof(user_timeout));
+#elif __QNX__ // __linux__
+ // TODO (KKolodiy): Out of order!
+ const int kMidLength = 4;
+ int mib[kMidLength];
+ timeval tval;
+
+ mib[0] = CTL_NET;
+ mib[1] = AF_INET;
+ mib[2] = IPPROTO_TCP;
+ mib[3] = TCPCTL_KEEPIDLE;
+ sysctl(mib, kMidLength, NULL, NULL, &keepidle, sizeof(keepidle));
+
+ mib[0] = CTL_NET;
+ mib[1] = AF_INET;
+ mib[2] = IPPROTO_TCP;
+ mib[3] = TCPCTL_KEEPCNT;
+ sysctl(mib, kMidLength, NULL, NULL, &keepcnt, sizeof(keepcnt));
+
+ mib[0] = CTL_NET;
+ mib[1] = AF_INET;
+ mib[2] = IPPROTO_TCP;
+ mib[3] = TCPCTL_KEEPINTVL;
+ sysctl(mib, kMidLength, NULL, NULL, &keepintvl, sizeof(keepintvl));
+
+ memset(&tval, sizeof(tval), 0);
+ tval.tv_sec = keepidle;
+ setsockopt(connection_fd, SOL_SOCKET, SO_KEEPALIVE, &yes, sizeof(yes));
+ setsockopt(connection_fd, IPPROTO_TCP, TCP_KEEPALIVE, &tval, sizeof(tval));
+#endif // __QNX__
+
+ TcpDevice* tcp_device = new TcpDevice(client_address.sin_addr.s_addr, device_name);
+ DeviceSptr device = controller_->AddDevice(tcp_device);
+ tcp_device = static_cast<TcpDevice*>(device.get());
+ const ApplicationHandle app_handle = tcp_device->AddIncomingApplication(
+ connection_fd);
+
+ TcpSocketConnection* connection(
+ new TcpSocketConnection(device->unique_device_id(), app_handle,
+ controller_));
+ connection->set_socket(connection_fd);
+ const TransportAdapter::Error error = connection->Start();
+ if (error != TransportAdapter::OK) {
+ delete connection;
+ }
+ }
+
+ LOG4CXX_INFO(logger_, "Tcp client listener thread finished");
+}
+
+TransportAdapter::Error TcpClientListener::StartListening() {
+ if (thread_started_)
+ return TransportAdapter::BAD_STATE;
+
+ socket_ = socket(AF_INET, SOCK_STREAM, 0);
+
+ if (-1 == socket_) {
+ LOG4CXX_ERROR_WITH_ERRNO(logger_, "Failed to create socket");
+ return TransportAdapter::FAIL;
+ }
+
+ sockaddr_in server_address;
+ memset(&server_address, 0, sizeof(server_address));
+ server_address.sin_family = AF_INET;
+ server_address.sin_port = htons(port_);
+ server_address.sin_addr.s_addr = INADDR_ANY;
+
+ int optval = 1;
+ setsockopt(socket_, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));
+
+ if (0 != bind(socket_, (sockaddr*) &server_address, sizeof(server_address))) {
+ LOG4CXX_ERROR_WITH_ERRNO(logger_, "bind() failed");
+ return TransportAdapter::FAIL;
+ }
+
+ if (0 != listen(socket_, 128)) {
+ LOG4CXX_ERROR_WITH_ERRNO(logger_, "listen() failed");
+ return TransportAdapter::FAIL;
+ }
+
+ const int thread_start_error = pthread_create(&thread_, 0,
+ &tcpClientListenerThread, this);
+ if (0 == thread_start_error) {
+ thread_started_ = true;
+ LOG4CXX_INFO(logger_, "Tcp client listener thread started");
+ } else {
+ LOG4CXX_ERROR(
+ logger_,
+ "Tcp client listener thread start failed, error code "
+ << thread_start_error);
+ return TransportAdapter::FAIL;
+ }
+ return TransportAdapter::OK;
+}
+
+TransportAdapter::Error TcpClientListener::StopListening() {
+ if (!thread_started_)
+ return TransportAdapter::BAD_STATE;
+
+ thread_stop_requested_ = true;
+ int byebyesocket = socket(AF_INET, SOCK_STREAM, 0);
+ sockaddr_in server_address;
+ memset(&server_address, 0, sizeof(server_address));
+ server_address.sin_family = AF_INET;
+ server_address.sin_port = htons(port_);
+ server_address.sin_addr.s_addr = INADDR_ANY;
+ connect(byebyesocket, (sockaddr*)&server_address, sizeof(server_address));
+ shutdown(byebyesocket, SHUT_RDWR);
+ close(byebyesocket);
+ pthread_join(thread_, 0);
+ LOG4CXX_INFO(logger_, "Tcp client listener thread terminated");
+ close(socket_);
+ socket_ = -1;
+ thread_started_ = false;
+ thread_stop_requested_ = false;
+ return TransportAdapter::OK;
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/tcp/tcp_connection_factory.cc b/SDL_Core/src/components/transport_manager/src/tcp/tcp_connection_factory.cc
new file mode 100644
index 000000000..cb6f4c5b6
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/tcp/tcp_connection_factory.cc
@@ -0,0 +1,72 @@
+/**
+ * \file tcp_connection_factory.cc
+ * \brief TcpConnectionFactory class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/tcp/tcp_connection_factory.h"
+#include "transport_manager/tcp/tcp_socket_connection.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+TcpConnectionFactory::TcpConnectionFactory(TransportAdapterController* controller)
+ : controller_(controller) {
+}
+
+TransportAdapter::Error TcpConnectionFactory::Init() {
+ return TransportAdapter::OK;
+}
+
+TransportAdapter::Error TcpConnectionFactory::CreateConnection(
+ const DeviceUID& device_uid, const ApplicationHandle& app_handle) {
+ TcpServerOiginatedSocketConnection* connection(
+ new TcpServerOiginatedSocketConnection(device_uid, app_handle,
+ controller_));
+ TransportAdapter::Error error = connection->Start();
+ if (error != TransportAdapter::OK)
+ delete connection;
+ return error;
+}
+
+void TcpConnectionFactory::Terminate() {
+}
+
+bool TcpConnectionFactory::IsInitialised() const {
+ return true;
+}
+
+TcpConnectionFactory::~TcpConnectionFactory() {
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/tcp/tcp_device.cc b/SDL_Core/src/components/transport_manager/src/tcp/tcp_device.cc
new file mode 100644
index 000000000..d8d714f44
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/tcp/tcp_device.cc
@@ -0,0 +1,113 @@
+/**
+ * \file tcp_device.cc
+ * \brief TcpDevice class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/tcp/tcp_device.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+TcpDevice::TcpDevice(const in_addr_t& in_addr, const std::string& name)
+ : Device(name, name),
+ in_addr_(in_addr),
+ last_handle_(0) {
+ pthread_mutex_init(&applications_mutex_, 0);
+}
+
+bool TcpDevice::IsSameAs(const Device* other) const {
+ const TcpDevice* other_tcp_device = static_cast<const TcpDevice*>(other);
+ return other_tcp_device->in_addr_ == in_addr_;
+}
+
+ApplicationList TcpDevice::GetApplicationList() const {
+ pthread_mutex_lock(&applications_mutex_);
+ ApplicationList app_list;
+ for (std::map<ApplicationHandle, Application>::const_iterator it =
+ applications_.begin(); it != applications_.end(); ++it) {
+ app_list.push_back(it->first);
+ }
+ pthread_mutex_unlock(&applications_mutex_);
+ return app_list;
+}
+
+ApplicationHandle TcpDevice::AddIncomingApplication(int socket_fd) {
+ Application app;
+ app.incoming = true;
+ app.socket = socket_fd;
+ pthread_mutex_lock(&applications_mutex_);
+ const ApplicationHandle app_handle = ++last_handle_;
+ applications_[app_handle] = app;
+ pthread_mutex_unlock(&applications_mutex_);
+ return app_handle;
+}
+
+ApplicationHandle TcpDevice::AddDiscoveredApplication(int port) {
+ Application app;
+ app.incoming = false;
+ app.port = port;
+ pthread_mutex_lock(&applications_mutex_);
+ const ApplicationHandle app_handle = ++last_handle_;
+ applications_[app_handle] = app;
+ pthread_mutex_unlock(&applications_mutex_);
+ return app_handle;
+}
+
+
+void TcpDevice::RemoveApplication(const ApplicationHandle app_handle) {
+ pthread_mutex_lock(&applications_mutex_);
+ applications_.erase(app_handle);
+ pthread_mutex_unlock(&applications_mutex_);
+}
+
+TcpDevice::~TcpDevice() {
+ pthread_mutex_destroy(&applications_mutex_);
+}
+
+int TcpDevice::GetApplicationSocket(const ApplicationHandle app_handle) const {
+ std::map<ApplicationHandle, Application>::const_iterator it = applications_.find(app_handle);
+ if(applications_.end() == it) return -1;
+ if(! it->second.incoming) return -1;
+ return it->second.socket;
+}
+
+int TcpDevice::GetApplicationPort(const ApplicationHandle app_handle) const {
+ std::map<ApplicationHandle, Application>::const_iterator it = applications_.find(app_handle);
+ if(applications_.end() == it) return -1;
+ if(it->second.incoming) return -1;
+ return it->second.port;
+}
+
+
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/tcp/tcp_socket_connection.cc b/SDL_Core/src/components/transport_manager/src/tcp/tcp_socket_connection.cc
new file mode 100644
index 000000000..321abb988
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/tcp/tcp_socket_connection.cc
@@ -0,0 +1,117 @@
+/**
+ * \file tcp_socket_connection.cc
+ * \brief TcpSocketConnection class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+#include "transport_manager/tcp/tcp_socket_connection.h"
+#include "transport_manager/tcp/tcp_device.h"
+
+#include <memory.h>
+#include <signal.h>
+#include <errno.h>
+
+namespace transport_manager {
+namespace transport_adapter {
+
+TcpSocketConnection::TcpSocketConnection(const DeviceUID& device_uid,
+ const ApplicationHandle& app_handle,
+ TransportAdapterController* controller)
+ : ThreadedSocketConnection(device_uid, app_handle, controller) {
+}
+
+TcpSocketConnection::~TcpSocketConnection() {
+}
+
+bool TcpSocketConnection::Establish(ConnectError** error) {
+ return true;
+}
+
+TcpServerOiginatedSocketConnection::TcpServerOiginatedSocketConnection(
+ const DeviceUID& device_uid, const ApplicationHandle& app_handle,
+ TransportAdapterController* controller)
+ : ThreadedSocketConnection(device_uid, app_handle, controller) {
+}
+
+TcpServerOiginatedSocketConnection::~TcpServerOiginatedSocketConnection() {
+}
+
+bool TcpServerOiginatedSocketConnection::Establish(ConnectError** error) {
+ DeviceSptr device = controller()->FindDevice(device_handle());
+ if (!device.valid()) {
+ LOG4CXX_ERROR(
+ logger_,
+ "Device " << device_handle() << " not found");
+ *error = new ConnectError();
+ return false;
+ }
+ TcpDevice* tcp_device = static_cast<TcpDevice*>(device.get());
+
+ int port;
+ if (-1 == (port = tcp_device->GetApplicationPort(application_handle()))) {
+ LOG4CXX_ERROR(
+ logger_,
+ "Application port for " << application_handle() << " not found");
+ *error = new ConnectError();
+ return false;
+ }
+
+ const int socket = ::socket(AF_INET, SOCK_STREAM, 0);
+ if (socket < 0) {
+ LOG4CXX_ERROR(logger_, "Failed to create socket");
+ *error = new ConnectError();
+ return false;
+ }
+
+ struct sockaddr_in addr;
+ memset((char*) &addr, 0, sizeof(addr));
+ addr.sin_family = AF_INET;
+ addr.sin_addr.s_addr = tcp_device->in_addr();
+ addr.sin_port = htons(port);
+
+ LOG4CXX_INFO(logger_, "Connecting " << inet_ntoa(addr.sin_addr) << ":"
+ << port);
+ if (::connect(socket, (struct sockaddr*) &addr, sizeof(addr)) < 0) {
+ LOG4CXX_ERROR(logger_, "Failed to connect for application "
+ << application_handle() << ", error " << errno);
+ *error = new ConnectError();
+ return false;
+ }
+
+ set_socket(socket);
+ return true;
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
diff --git a/SDL_Core/src/components/transport_manager/src/tcp/tcp_transport_adapter.cc b/SDL_Core/src/components/transport_manager/src/tcp/tcp_transport_adapter.cc
new file mode 100644
index 000000000..d5fde5d26
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/tcp/tcp_transport_adapter.cc
@@ -0,0 +1,146 @@
+/**
+ * \file tcp_transport_adapter.cc
+ * \brief TcpTransportAdapter class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <memory.h>
+#include <signal.h>
+#include <errno.h>
+#include <sstream>
+#include <cstdlib>
+
+#include "resumption/last_state.h"
+
+#include "transport_manager/tcp/tcp_transport_adapter.h"
+#include "transport_manager/tcp/tcp_client_listener.h"
+#include "transport_manager/tcp/tcp_connection_factory.h"
+#include "transport_manager/tcp/tcp_device.h"
+
+#ifdef AVAHI_SUPPORT
+#include "transport_manager/tcp/dnssd_service_browser.h"
+#endif
+
+namespace transport_manager {
+namespace transport_adapter {
+
+TcpTransportAdapter::TcpTransportAdapter()
+ : TransportAdapterImpl(
+#ifdef AVAHI_SUPPORT
+ new DnssdServiceBrowser(this)
+#else
+ NULL
+#endif
+ , new TcpConnectionFactory(this)
+ , new TcpClientListener(this, default_port)) {
+}
+
+TcpTransportAdapter::~TcpTransportAdapter() {
+}
+
+DeviceType TcpTransportAdapter::GetDeviceType() const {
+ return "sdl-tcp";
+}
+
+void TcpTransportAdapter::Store() const {
+ LOG4CXX_TRACE_ENTER(logger_);
+ resumption::LastState::Dictionary tcp_adapter_dictionary;
+ DeviceList device_ids = GetDeviceList();
+ for (DeviceList::const_iterator i = device_ids.begin(); i != device_ids.end(); ++i) {
+ DeviceUID device_id = *i;
+ DeviceSptr device = FindDevice(device_id);
+ if (!device) { // device could have been disconnected
+ continue;
+ }
+ utils::SharedPtr<TcpDevice> tcp_device =
+ DeviceSptr::static_pointer_cast<TcpDevice>(device);
+ resumption::LastState::Dictionary device_dictionary;
+ struct in_addr address;
+ address.s_addr = tcp_device->in_addr();
+ device_dictionary.AddItem("address", std::string(inet_ntoa(address)));
+ resumption::LastState::Dictionary applications_dictionary;
+ ApplicationList app_ids = tcp_device->GetApplicationList();
+ for (ApplicationList::const_iterator j = app_ids.begin(); j != app_ids.end(); ++j) {
+ ApplicationHandle app_handle = *j;
+ const int port = tcp_device->GetApplicationPort(app_handle);
+ std::string port_string;
+ std::stringstream stream(port_string);
+ stream << port;
+ if (port != -1) { // don't want to store incoming applications
+ resumption::LastState::Dictionary application_dictionary;
+ application_dictionary.AddItem("port", port_string);
+ applications_dictionary.AddSubitem(port_string, application_dictionary);
+ }
+ }
+ device_dictionary.AddSubitem("applications", applications_dictionary);
+ tcp_adapter_dictionary.AddSubitem(tcp_device->name(), device_dictionary);
+ }
+ resumption::LastState::instance()->dictionary.AddSubitem(
+ "TcpAdapter", tcp_adapter_dictionary
+ );
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+bool TcpTransportAdapter::Restore() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ bool errors_occured = false;
+ resumption::LastState::Dictionary tcp_adapter_dictionary =
+ resumption::LastState::instance()->dictionary.SubitemAt("TcpAdapter");
+ for (resumption::LastState::Dictionary::const_iterator i =
+ tcp_adapter_dictionary.begin(); i != tcp_adapter_dictionary.end(); ++i) {
+ std::string name = i->first;
+ resumption::LastState::Dictionary device_dictionary = i->second;
+ std::string address_record = device_dictionary.ItemAt("address");
+ in_addr_t address = inet_addr(address_record.c_str());
+ TcpDevice* tcp_device = new TcpDevice(address, name);
+ DeviceSptr device(tcp_device);
+ AddDevice(device);
+ resumption::LastState::Dictionary applications_dictionary =
+ device_dictionary.SubitemAt("applications");
+ for (resumption::LastState::Dictionary::const_iterator j =
+ applications_dictionary.begin(); j != applications_dictionary.end(); ++j) {
+ resumption::LastState::Dictionary application_dictionary = j->second;
+ std::string port_record = application_dictionary.ItemAt("port");
+ int port = atoi(port_record.c_str());
+ ApplicationHandle app_handle = tcp_device->AddDiscoveredApplication(port);
+ if (Error::OK != Connect(device->unique_device_id(), app_handle)) {
+ errors_occured = true;
+ }
+ }
+ }
+ LOG4CXX_TRACE_EXIT(logger_);
+ return !errors_occured;
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
+
diff --git a/SDL_Core/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc b/SDL_Core/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc
new file mode 100644
index 000000000..a107c1b7d
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc
@@ -0,0 +1,357 @@
+/**
+ * \file threaded_socket_connection.cc
+ * \brief ThreadedSocketConnection class source file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <memory.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#include "transport_manager/transport_adapter/threaded_socket_connection.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+ThreadedSocketConnection::ThreadedSocketConnection(
+ const DeviceUID& device_id, const ApplicationHandle& app_handle,
+ TransportAdapterController* controller)
+ : read_fd_(-1), write_fd_(-1), controller_(controller),
+ frames_to_send_(),
+ frames_to_send_mutex_(),
+ thread_(),
+ socket_(-1),
+ terminate_flag_(false),
+ unexpected_disconnect_(false),
+ device_uid_(device_id),
+ app_handle_(app_handle) {
+ pthread_mutex_init(&frames_to_send_mutex_, 0);
+}
+
+ThreadedSocketConnection::~ThreadedSocketConnection() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ terminate_flag_ = true;
+ Notify();
+ pthread_join(thread_, 0);
+ pthread_mutex_destroy(&frames_to_send_mutex_);
+
+ if (-1 != read_fd_)
+ close(read_fd_);
+ if (-1 != write_fd_)
+ close(write_fd_);
+
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void ThreadedSocketConnection::Abort() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ unexpected_disconnect_ = true;
+ terminate_flag_ = true;
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void* StartThreadedSocketConnection(void* v) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ ThreadedSocketConnection* connection =
+ static_cast<ThreadedSocketConnection*>(v);
+ connection->Thread();
+ LOG4CXX_TRACE_EXIT(logger_);
+ return 0;
+}
+
+TransportAdapter::Error ThreadedSocketConnection::Start() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ int fds[2];
+ const int pipe_ret = pipe(fds);
+ if (0 == pipe_ret) {
+ LOG4CXX_INFO(logger_, "pipe created(#" << pthread_self() << ")");
+ read_fd_ = fds[0];
+ write_fd_ = fds[1];
+ } else {
+ LOG4CXX_INFO(logger_, "pipe creation failed (#" << pthread_self() << ")");
+ LOG4CXX_TRACE_EXIT(logger_);
+ return TransportAdapter::FAIL;
+ }
+ const int fcntl_ret = fcntl(read_fd_, F_SETFL,
+ fcntl(read_fd_, F_GETFL) | O_NONBLOCK);
+ if (0 != fcntl_ret) {
+ LOG4CXX_INFO(logger_, "fcntl failed (#" << pthread_self() << ")");
+ LOG4CXX_TRACE_EXIT(logger_);
+ return TransportAdapter::FAIL;
+ }
+
+ if (0 == pthread_create(&thread_, 0, &StartThreadedSocketConnection, this)) {
+ LOG4CXX_INFO(logger_, "thread created (#" << pthread_self() << ")");
+ LOG4CXX_TRACE_EXIT(logger_);
+ return TransportAdapter::OK;
+ } else {
+ LOG4CXX_INFO(logger_, "thread creation failed (#" << pthread_self() << ")");
+ LOG4CXX_TRACE_EXIT(logger_);
+ return TransportAdapter::FAIL;
+ }
+}
+
+void ThreadedSocketConnection::Finalize() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ if (unexpected_disconnect_) {
+ LOG4CXX_INFO(logger_, "unexpected_disconnect (#" << pthread_self() << ")");
+ controller_->ConnectionAborted(device_handle(), application_handle(),
+ CommunicationError());
+ } else {
+ LOG4CXX_INFO(logger_, "not unexpected_disconnect (#" << pthread_self() << ")");
+ controller_->ConnectionFinished(device_handle(), application_handle());
+ }
+ close(socket_);
+ LOG4CXX_INFO(logger_, "Connection finalized");
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+TransportAdapter::Error ThreadedSocketConnection::Notify() const {
+ LOG4CXX_TRACE_ENTER(logger_);
+ if (-1 == write_fd_) {
+ LOG4CXX_ERROR_WITH_ERRNO(
+ logger_, "Failed to wake up connection thread for connection " << this);
+ LOG4CXX_INFO(logger_, "exit");
+ return TransportAdapter::BAD_STATE;
+ }
+ uint8_t c = 0;
+ if (1 == write(write_fd_, &c, 1)) {
+ LOG4CXX_INFO(logger_, "exit");
+ return TransportAdapter::OK;
+ } else {
+ LOG4CXX_ERROR_WITH_ERRNO(
+ logger_, "Failed to wake up connection thread for connection " << this);
+ LOG4CXX_TRACE_EXIT(logger_);
+ return TransportAdapter::FAIL;
+ }
+}
+
+TransportAdapter::Error ThreadedSocketConnection::SendData(
+ RawMessageSptr message) {
+ LOG4CXX_TRACE_ENTER(logger_);
+ pthread_mutex_lock(&frames_to_send_mutex_);
+ frames_to_send_.push(message);
+ pthread_mutex_unlock(&frames_to_send_mutex_);
+ LOG4CXX_TRACE_EXIT(logger_);
+ return Notify();
+}
+
+TransportAdapter::Error ThreadedSocketConnection::Disconnect() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ terminate_flag_ = true;
+ LOG4CXX_TRACE_EXIT(logger_);
+ return Notify();
+}
+
+void ThreadedSocketConnection::Thread() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ controller_->ConnectionCreated(this, device_uid_, app_handle_);
+ ConnectError* connect_error = NULL;
+ if (Establish(&connect_error)) {
+ LOG4CXX_INFO(logger_, "Connection established (#" << pthread_self() << ")");
+ controller_->ConnectDone(device_handle(), application_handle());
+ while (!terminate_flag_) {
+ Transmit();
+ }
+ LOG4CXX_INFO(logger_, "Connection is to finalize (#" << pthread_self() << ")");
+ Finalize();
+ while (!frames_to_send_.empty()) {
+ LOG4CXX_INFO(logger_, "removing message (#" << pthread_self() << ")");
+ RawMessageSptr message = frames_to_send_.front();
+ frames_to_send_.pop();
+ controller_->DataSendFailed(device_handle(), application_handle(),
+ message, DataSendError());
+ }
+ controller_->DisconnectDone(device_handle(), application_handle());
+ } else {
+ LOG4CXX_INFO(logger_, "Connection Establish failed (#" << pthread_self() << ")");
+ controller_->ConnectFailed(device_handle(), application_handle(),
+ *connect_error);
+ delete connect_error;
+ }
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+void ThreadedSocketConnection::Transmit() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ bool pipe_notified = false;
+ bool pipe_terminated = false;
+
+ const nfds_t poll_fds_size = 2;
+ pollfd poll_fds[poll_fds_size];
+ poll_fds[0].fd = socket_;
+ poll_fds[0].events = POLLIN | POLLPRI | (frames_to_send_.empty() ? 0 : POLLOUT);
+ poll_fds[1].fd = read_fd_;
+ poll_fds[1].events = POLLIN | POLLPRI;
+
+ LOG4CXX_INFO(logger_, "poll (#" << pthread_self() << ") " << this);
+ if (-1 == poll(poll_fds, poll_fds_size, -1)) {
+ LOG4CXX_ERROR_WITH_ERRNO(logger_, "poll failed for connection " << this);
+ Abort();
+ LOG4CXX_INFO(logger_, "exit");
+ return;
+ }
+ LOG4CXX_INFO(logger_, "poll is ok (#" << pthread_self() << ") " << this << " revents0:" << std::hex << poll_fds[0].revents << " revents1:" << std::hex << poll_fds[1].revents);
+ // error check
+ if (0 != (poll_fds[1].revents & (POLLERR | POLLHUP | POLLNVAL))) {
+ LOG4CXX_ERROR(logger_,
+ "Notification pipe for connection " << this << " terminated");
+ Abort();
+ LOG4CXX_INFO(logger_, "exit");
+ return;
+ }
+
+ if (0 != (poll_fds[0].revents & (POLLERR | POLLHUP | POLLNVAL))) {
+ LOG4CXX_INFO(logger_, "Connection " << this << " terminated");
+ Abort();
+ LOG4CXX_INFO(logger_, "exit");
+ return;
+ }
+
+ // clear notifications
+ char buffer[256];
+ ssize_t bytes_read = -1;
+ do {
+ bytes_read = read(read_fd_, buffer, sizeof(buffer));
+ } while (bytes_read > 0);
+ if ((bytes_read < 0) && (EAGAIN != errno)) {
+ LOG4CXX_ERROR_WITH_ERRNO(logger_, "Failed to clear notification pipe");
+ LOG4CXX_ERROR_WITH_ERRNO(logger_, "poll failed for connection " << this);
+ Abort();
+ LOG4CXX_INFO(logger_, "exit");
+ return;
+ }
+
+ // send data if possible
+ if (!frames_to_send_.empty() && (poll_fds[0].revents | POLLOUT)) {
+ LOG4CXX_INFO(logger_, "frames_to_send_ not empty() (#" << pthread_self() << ")");
+
+ // send data
+ const bool send_ok = Send();
+ if (!send_ok) {
+ LOG4CXX_INFO(logger_, "Send() failed (#" << pthread_self() << ")");
+ Abort();
+ LOG4CXX_INFO(logger_, "exit");
+ return;
+ }
+ }
+
+ // receive data
+ if (0 != poll_fds[0].revents & (POLLIN | POLLPRI)) {
+ const bool receive_ok = Receive();
+ if (!receive_ok) {
+ LOG4CXX_INFO(logger_, "Receive() failed (#" << pthread_self() << ")");
+ Abort();
+ LOG4CXX_INFO(logger_, "exit");
+ return;
+ }
+ }
+ LOG4CXX_TRACE_EXIT(logger_);
+}
+
+bool ThreadedSocketConnection::Receive() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ uint8_t buffer[4096];
+ ssize_t bytes_read = -1;
+
+ do {
+ bytes_read = recv(socket_, buffer, sizeof(buffer), MSG_DONTWAIT);
+
+ if (bytes_read > 0) {
+ LOG4CXX_INFO(
+ logger_,
+ "Received " << bytes_read << " bytes for connection " << this);
+
+ RawMessageSptr frame(
+ new protocol_handler::RawMessage(0, 0, buffer, bytes_read));
+ controller_->DataReceiveDone(device_handle(), application_handle(),
+ frame);
+ } else if (bytes_read < 0) {
+ if (EAGAIN != errno && EWOULDBLOCK != errno) {
+ LOG4CXX_ERROR_WITH_ERRNO(logger_,
+ "recv() failed for connection " << this);
+ LOG4CXX_TRACE_EXIT(logger_);
+ return false;
+ }
+ } else {
+ LOG4CXX_INFO(logger_, "Connection " << this << " closed by remote peer");
+ LOG4CXX_TRACE_EXIT(logger_);
+ return false;
+ }
+ } while (bytes_read > 0);
+ LOG4CXX_TRACE_EXIT(logger_);
+ return true;
+}
+
+bool ThreadedSocketConnection::Send() {
+ LOG4CXX_TRACE_ENTER(logger_);
+ FrameQueue frames_to_send;
+ pthread_mutex_lock(&frames_to_send_mutex_);
+ std::swap(frames_to_send, frames_to_send_);
+ pthread_mutex_unlock(&frames_to_send_mutex_);
+
+ bool frame_sent = false;
+ size_t offset = 0;
+ while (!frames_to_send.empty()) {
+ LOG4CXX_INFO(logger_, "frames_to_send is not empty" << pthread_self() << ")");
+ RawMessageSptr frame = frames_to_send.front();
+
+ const ssize_t bytes_sent = ::send(socket_, frame->data() + offset,
+ frame->data_size() - offset, 0);
+
+ if (bytes_sent >= 0) {
+ LOG4CXX_INFO(logger_, "bytes_sent >= 0" << pthread_self() << ")");
+ offset += bytes_sent;
+ if (offset == frame->data_size()) {
+ frames_to_send.pop();
+ offset = 0;
+ controller_->DataSendDone(device_handle(), application_handle(), frame);
+ }
+ } else {
+ LOG4CXX_INFO(logger_, "bytes_sent < 0" << pthread_self() << ")");
+ LOG4CXX_ERROR_WITH_ERRNO(logger_, "Send failed for connection " << this);
+ frames_to_send.pop();
+ offset = 0;
+ controller_->DataSendFailed(device_handle(), application_handle(), frame,
+ DataSendError());
+ }
+ }
+ LOG4CXX_TRACE_EXIT(logger_);
+ return true;
+}
+
+} // namespace
+} // namespace
+
diff --git a/SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_event.cc b/SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_event.cc
new file mode 100644
index 000000000..505b42a1a
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_event.cc
@@ -0,0 +1,93 @@
+/**
+ * \file transport_adapter_event.cc
+ * \brief TransportAdapterEvent class source file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/error.h"
+#include "transport_manager/transport_adapter/transport_adapter_event.h"
+
+namespace transport_manager {
+
+TransportAdapterEvent::TransportAdapterEvent(
+ int type, transport_adapter::TransportAdapter *transport_adapter,
+ const DeviceUID &device_handle, const ApplicationHandle &application_id,
+ RawMessageSptr data, BaseError *error)
+ : event_type_(type),
+ application_id_(application_id),
+ transport_adapter_(transport_adapter),
+ device_uid_(device_handle),
+ event_data_(data) {
+ set_error(error);
+}
+
+
+TransportAdapterEvent::~TransportAdapterEvent() {
+ transport_adapter_ = NULL;
+ event_error_ = NULL;
+}
+
+void TransportAdapterEvent::set_event_type(int type) { event_type_ = type; }
+
+void TransportAdapterEvent::set_transport_adapter(
+ transport_adapter::TransportAdapter *transport_adapter) {
+ transport_adapter_ = transport_adapter;
+}
+void TransportAdapterEvent::set_data(RawMessageSptr message) {
+ event_data_ = message;
+}
+
+void TransportAdapterEvent::set_error(BaseError *error) {
+ event_error_ = error;
+}
+
+int TransportAdapterEvent::event_type(void) const { return event_type_; }
+
+ApplicationHandle TransportAdapterEvent::application_id(void) const {
+ return application_id_;
+}
+
+transport_adapter::TransportAdapter *TransportAdapterEvent::transport_adapter(
+ void) const {
+ return transport_adapter_;
+}
+
+RawMessageSptr TransportAdapterEvent::data(void) const { return event_data_; }
+
+const DeviceUID &TransportAdapterEvent::device_uid() const {
+ return device_uid_;
+}
+
+BaseError *TransportAdapterEvent::event_error(void) const {
+ return event_error_;
+}
+
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc b/SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc
new file mode 100644
index 000000000..6149670d9
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc
@@ -0,0 +1,614 @@
+/**
+ * \file transport_adapter_impl.cc
+ * \brief TransportAdapterImpl class source file.
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config_profile/profile.h"
+
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/transport_adapter/transport_adapter_listener.h"
+#include "transport_manager/transport_adapter/device_scanner.h"
+#include "transport_manager/transport_adapter/server_connection_factory.h"
+#include "transport_manager/transport_adapter/client_connection_listener.h"
+
+namespace transport_manager {
+
+namespace transport_adapter {
+
+log4cxx::LoggerPtr logger_ =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("TransportManager"));
+
+TransportAdapterImpl::TransportAdapterImpl(
+ DeviceScanner* device_scanner,
+ ServerConnectionFactory* server_connection_factory,
+ ClientConnectionListener* client_connection_listener)
+ : listeners_(),
+ initialised_(0),
+ devices_(),
+ devices_mutex_(),
+ connections_(),
+ connections_mutex_(),
+ device_scanner_(device_scanner),
+ server_connection_factory_(server_connection_factory),
+ client_connection_listener_(client_connection_listener) {
+ pthread_mutex_init(&devices_mutex_, 0);
+ pthread_mutex_init(&connections_mutex_, 0);
+}
+
+TransportAdapterImpl::~TransportAdapterImpl() {
+ if (device_scanner_) {
+ device_scanner_->Terminate();
+ delete device_scanner_;
+ }
+ if (server_connection_factory_) {
+ server_connection_factory_->Terminate();
+ delete server_connection_factory_;
+ }
+ if (client_connection_listener_) {
+ client_connection_listener_->Terminate();
+ delete client_connection_listener_;
+ }
+
+ pthread_mutex_lock(&connections_mutex_);
+ ConnectionMap connections;
+ std::swap(connections, connections_);
+ pthread_mutex_unlock(&connections_mutex_);
+ connections.clear();
+
+ pthread_mutex_lock(&devices_mutex_);
+ DeviceMap devices;
+ std::swap(devices, devices_);
+ pthread_mutex_unlock(&devices_mutex_);
+ devices.clear();
+
+ pthread_mutex_destroy(&connections_mutex_);
+ pthread_mutex_destroy(&devices_mutex_);
+}
+
+TransportAdapter::Error TransportAdapterImpl::Init() {
+ LOG4CXX_INFO(logger_, "Initializing device adapter");
+
+ Error error = OK;
+
+ if ((error == OK) && device_scanner_) error = device_scanner_->Init();
+ if ((error == OK) && server_connection_factory_)
+ error = server_connection_factory_->Init();
+ if ((error == OK) && client_connection_listener_)
+ error = client_connection_listener_->Init();
+
+ initialised_ = (error == OK);
+
+ if (profile::Profile::instance()->use_last_state()) {
+ if (!Restore()) {
+ LOG4CXX_WARN(logger_, "could not restore transport adapter state");
+ error = FAIL;
+ }
+ }
+
+ return error;
+}
+
+TransportAdapter::Error TransportAdapterImpl::SearchDevices() {
+ LOG4CXX_INFO(logger_, "enter");
+ if (device_scanner_ == NULL) {
+ LOG4CXX_INFO(logger_, "not supported");
+ return NOT_SUPPORTED;
+ } else if (!device_scanner_->IsInitialised()) {
+ LOG4CXX_INFO(logger_, "bad state");
+ return BAD_STATE;
+ }
+ LOG4CXX_INFO(logger_, "exit");
+ return device_scanner_->Scan();
+}
+
+TransportAdapter::Error TransportAdapterImpl::Connect(
+ const DeviceUID& device_id, const ApplicationHandle& app_handle) {
+ LOG4CXX_INFO(logger_,
+ "enter TransportAdapter::Error TransportAdapterImpl::Connect");
+ if (server_connection_factory_ == 0) {
+ LOG4CXX_ERROR(logger_, "feature is NOT_SUPPORTED");
+ return NOT_SUPPORTED;
+ }
+ if (!server_connection_factory_->IsInitialised()) {
+ LOG4CXX_ERROR(logger_, "BAD_STATE");
+ return BAD_STATE;
+ }
+
+ pthread_mutex_lock(&connections_mutex_);
+ const bool already_exists =
+ connections_.end() !=
+ connections_.find(std::make_pair(device_id, app_handle));
+ if (!already_exists) {
+ ConnectionInfo& info = connections_[std::make_pair(device_id, app_handle)];
+ info.app_handle = app_handle;
+ info.device_id = device_id;
+ info.state = ConnectionInfo::NEW;
+ }
+ pthread_mutex_unlock(&connections_mutex_);
+ if (already_exists) {
+ LOG4CXX_ERROR(logger_, "Connection for device " << device_id << ", channel "
+ << app_handle
+ << " already exists");
+ return ALREADY_EXISTS;
+ }
+
+ const TransportAdapter::Error err =
+ server_connection_factory_->CreateConnection(device_id, app_handle);
+ if (TransportAdapter::OK != err) {
+ pthread_mutex_lock(&connections_mutex_);
+ connections_.erase(std::make_pair(device_id, app_handle));
+ pthread_mutex_unlock(&connections_mutex_);
+ }
+ return err;
+}
+
+TransportAdapter::Error TransportAdapterImpl::ConnectDevice(
+ const DeviceUID& device_handle) {
+ DeviceSptr device = FindDevice(device_handle);
+ if (device) {
+ return ConnectDevice(device);
+ }
+ else {
+ return BAD_PARAM;
+ }
+}
+
+TransportAdapter::Error TransportAdapterImpl::Disconnect(
+ const DeviceUID& device_id, const ApplicationHandle& app_handle) {
+ if (!initialised_) return BAD_STATE;
+ ConnectionSptr connection = FindEstablishedConnection(device_id, app_handle);
+ if (connection.valid()) {
+ return connection->Disconnect();
+ } else {
+ return BAD_PARAM;
+ }
+}
+
+TransportAdapter::Error TransportAdapterImpl::DisconnectDevice(
+ const DeviceUID& device_id) {
+ if (!initialised_) return BAD_STATE;
+
+ Error error = OK;
+ pthread_mutex_lock(&connections_mutex_);
+ for (ConnectionMap::iterator it = connections_.begin();
+ it != connections_.end(); ++it) {
+
+ ConnectionInfo& info = it->second;
+ if (info.device_id == device_id &&
+ info.state != ConnectionInfo::FINALISING) {
+ if (OK != info.connection->Disconnect()) {
+ error = FAIL;
+ }
+ }
+ }
+ pthread_mutex_unlock(&connections_mutex_);
+
+ return OK;
+}
+
+TransportAdapter::Error TransportAdapterImpl::SendData(
+ const DeviceUID& device_id, const ApplicationHandle& app_handle,
+ const RawMessageSptr data) {
+ if (!initialised_) return BAD_STATE;
+
+ ConnectionSptr connection = FindEstablishedConnection(device_id, app_handle);
+ if (connection.get() != 0) {
+ return connection->SendData(data);
+ } else {
+ return BAD_PARAM;
+ }
+}
+
+TransportAdapter::Error TransportAdapterImpl::StartClientListening() {
+ if (client_connection_listener_ == 0) return NOT_SUPPORTED;
+ if (!client_connection_listener_->IsInitialised()) return BAD_STATE;
+ return client_connection_listener_->StartListening();
+}
+
+TransportAdapter::Error TransportAdapterImpl::StopClientListening() {
+ if (client_connection_listener_ == 0) return NOT_SUPPORTED;
+ if (!client_connection_listener_->IsInitialised()) return BAD_STATE;
+ return client_connection_listener_->StopListening();
+}
+
+DeviceList TransportAdapterImpl::GetDeviceList() const {
+ DeviceList devices;
+ pthread_mutex_lock(&devices_mutex_);
+ for (DeviceMap::const_iterator it = devices_.begin(); it != devices_.end();
+ ++it) {
+ devices.push_back(it->first);
+ }
+ pthread_mutex_unlock(&devices_mutex_);
+ return devices;
+}
+
+DeviceSptr TransportAdapterImpl::AddDevice(DeviceSptr device) {
+ DeviceSptr existing_device;
+ bool same_device_found = false;
+ pthread_mutex_lock(&devices_mutex_);
+ for (DeviceMap::const_iterator i = devices_.begin(); i != devices_.end();
+ ++i) {
+ existing_device = i->second;
+ if (device->IsSameAs(existing_device.get())) {
+ same_device_found = true;
+ break;
+ }
+ }
+ if (!same_device_found) {
+ devices_[device->unique_device_id()] = device;
+ }
+ pthread_mutex_unlock(&devices_mutex_);
+ if (same_device_found) {
+ return existing_device;
+ } else {
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it) {
+ (*it)->OnDeviceListUpdated(this);
+ }
+ if (ToBeAutoConnected(device)) {
+ ConnectDevice(device);
+ }
+ return device;
+ }
+}
+
+void TransportAdapterImpl::SearchDeviceDone(const DeviceVector& devices) {
+ DeviceMap new_devices;
+ for (DeviceVector::const_iterator it = devices.begin(); it != devices.end();
+ ++it) {
+ DeviceSptr device = *it;
+ bool device_found = false;
+
+ pthread_mutex_lock(&devices_mutex_);
+ for (DeviceMap::iterator it = devices_.begin(); it != devices_.end();
+ ++it) {
+ DeviceSptr existing_device = it->second;
+ if (device->IsSameAs(existing_device.get())) {
+ existing_device->set_keep_on_disconnect(true);
+ device_found = true;
+ break;
+ }
+ }
+ pthread_mutex_unlock(&devices_mutex_);
+
+ if (!device_found) {
+ LOG4CXX_INFO(logger_, "Adding new device " << device->unique_device_id()
+ << " (\"" << device->name()
+ << "\")");
+ }
+
+ device->set_keep_on_disconnect(true);
+ new_devices[device->unique_device_id()] = device;
+ }
+
+ pthread_mutex_lock(&connections_mutex_);
+ std::set<DeviceUID> connected_devices;
+ for (ConnectionMap::const_iterator it = connections_.begin();
+ it != connections_.end(); ++it) {
+ const ConnectionInfo& info = it->second;
+ if (info.state != ConnectionInfo::FINALISING)
+ connected_devices.insert(info.device_id);
+ }
+ pthread_mutex_unlock(&connections_mutex_);
+
+ DeviceMap all_devices = new_devices;
+ pthread_mutex_lock(&devices_mutex_);
+ for (DeviceMap::iterator it = devices_.begin(); it != devices_.end(); ++it) {
+ DeviceSptr existing_device = it->second;
+
+ if (all_devices.end() == all_devices.find(it->first)) {
+ if (connected_devices.end() != connected_devices.find(it->first)) {
+ existing_device->set_keep_on_disconnect(false);
+ all_devices[it->first] = existing_device;
+ }
+ }
+ }
+ devices_ = all_devices;
+ pthread_mutex_unlock(&devices_mutex_);
+
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it) {
+ (*it)->OnDeviceListUpdated(this);
+ (*it)->OnSearchDeviceDone(this);
+ }
+
+ for (DeviceMap::iterator it = new_devices.begin(); it != new_devices.end(); ++it) {
+ DeviceSptr device = it->second;
+ if (ToBeAutoConnected(device)) {
+ ConnectDevice(device);
+ }
+ }
+}
+
+void TransportAdapterImpl::SearchDeviceFailed(const SearchDeviceError& error) {
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it)
+ (*it)->OnSearchDeviceFailed(this, error);
+}
+
+bool TransportAdapterImpl::IsSearchDevicesSupported() const {
+ return device_scanner_ != 0;
+}
+
+bool TransportAdapterImpl::IsServerOriginatedConnectSupported() const {
+ return server_connection_factory_ != 0;
+}
+
+bool TransportAdapterImpl::IsClientOriginatedConnectSupported() const {
+ return client_connection_listener_ != 0;
+}
+
+void TransportAdapterImpl::ConnectionCreated(
+ ConnectionSptr connection, const DeviceUID& device_id,
+ const ApplicationHandle& app_handle) {
+ pthread_mutex_lock(&connections_mutex_);
+ ConnectionInfo& info = connections_[std::make_pair(device_id, app_handle)];
+ info.app_handle = app_handle;
+ info.device_id = device_id;
+ info.connection = connection;
+ info.state = ConnectionInfo::NEW;
+ pthread_mutex_unlock(&connections_mutex_);
+}
+
+void TransportAdapterImpl::DisconnectDone(const DeviceUID& device_id,
+ const ApplicationHandle& app_handle) {
+ bool device_disconnected = true;
+ pthread_mutex_lock(&connections_mutex_);
+ for (ConnectionMap::const_iterator it = connections_.begin();
+ it != connections_.end(); ++it) {
+ const DeviceUID& current_device_id = it->first.first;
+ const ApplicationHandle& current_app_handle = it->first.second;
+ if (current_device_id == device_id && current_app_handle != app_handle) {
+ device_disconnected = false;
+ break;
+ }
+ }
+ pthread_mutex_unlock(&connections_mutex_);
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it) {
+ TransportAdapterListener* listener = *it;
+ listener->OnDisconnectDone(this, device_id, app_handle);
+ if (device_disconnected) listener->OnDisconnectDeviceDone(this, device_id);
+ }
+ pthread_mutex_lock(&connections_mutex_);
+ connections_.erase(std::make_pair(device_id, app_handle));
+ pthread_mutex_unlock(&connections_mutex_);
+
+ if (device_disconnected) {
+ pthread_mutex_lock(&devices_mutex_);
+ DeviceMap::iterator it = devices_.find(device_id); //ykazakov: there is no erase for const iterator for QNX
+ if (it != devices_.end()) {
+ DeviceSptr device = it->second;
+ if (!device->keep_on_disconnect()) {
+ devices_.erase(it);
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it) {
+ (*it)->OnDeviceListUpdated(this);
+ }
+ }
+ }
+ pthread_mutex_unlock(&devices_mutex_);
+ }
+}
+
+void TransportAdapterImpl::DataReceiveDone(const DeviceUID& device_id,
+ const ApplicationHandle& app_handle,
+ RawMessageSptr message) {
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it)
+ (*it)->OnDataReceiveDone(this, device_id, app_handle, message);
+}
+
+void TransportAdapterImpl::DataReceiveFailed(
+ const DeviceUID& device_id, const ApplicationHandle& app_handle,
+ const DataReceiveError& error) {
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it)
+ (*it)->OnDataReceiveFailed(this, device_id, app_handle, error);
+}
+
+void TransportAdapterImpl::DataSendDone(const DeviceUID& device_id,
+ const ApplicationHandle& app_handle,
+ RawMessageSptr message) {
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it)
+ (*it)->OnDataSendDone(this, device_id, app_handle, message);
+}
+
+void TransportAdapterImpl::DataSendFailed(const DeviceUID& device_id,
+ const ApplicationHandle& app_handle,
+ RawMessageSptr message,
+ const DataSendError& error) {
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it)
+ (*it)->OnDataSendFailed(this, device_id, app_handle, message, error);
+}
+
+DeviceSptr TransportAdapterImpl::FindDevice(const DeviceUID& device_id) const {
+ DeviceSptr ret;
+ pthread_mutex_lock(&devices_mutex_);
+ LOG4CXX_INFO(logger_,
+ "DeviceSptr TransportAdapterImpl::FindDevice(const DeviceUID& "
+ "device_id) enter");
+ DeviceMap::const_iterator it = devices_.find(device_id);
+ LOG4CXX_INFO(logger_, "devices_.size() = " << devices_.size());
+ if (it != devices_.end()) ret = it->second;
+ pthread_mutex_unlock(&devices_mutex_);
+ LOG4CXX_INFO(logger_,
+ "DeviceSptr TransportAdapterImpl::FindDevice(const DeviceUID& "
+ "device_id) exit");
+ return ret;
+}
+
+void TransportAdapterImpl::ConnectDone(const DeviceUID& device_id,
+ const ApplicationHandle& app_handle) {
+ pthread_mutex_lock(&connections_mutex_);
+ ConnectionMap::iterator it_conn =
+ connections_.find(std::make_pair(device_id, app_handle));
+ if (it_conn != connections_.end()) {
+ ConnectionInfo& info = it_conn->second;
+ info.state = ConnectionInfo::ESTABLISHED;
+ }
+ pthread_mutex_unlock(&connections_mutex_);
+
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it)
+ (*it)->OnConnectDone(this, device_id, app_handle);
+}
+
+void TransportAdapterImpl::ConnectFailed(const DeviceUID& device_id,
+ const ApplicationHandle& app_handle,
+ const ConnectError& error) {
+ pthread_mutex_lock(&connections_mutex_);
+ connections_.erase(std::make_pair(device_id, app_handle));
+ pthread_mutex_unlock(&connections_mutex_);
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it)
+ (*it)->OnConnectFailed(this, device_id, app_handle, error);
+}
+
+void TransportAdapterImpl::AddListener(TransportAdapterListener* listener) {
+ listeners_.push_back(listener);
+}
+
+ApplicationList TransportAdapterImpl::GetApplicationList(
+ const DeviceUID& device_id) const {
+ LOG4CXX_INFO(
+ logger_,
+ "ApplicationList TransportAdapterImpl::GetApplicationList enter");
+ DeviceSptr device = FindDevice(device_id);
+ if (device.valid()) {
+ LOG4CXX_INFO(logger_, "device is valid");
+ return device->GetApplicationList();
+ }
+
+ LOG4CXX_INFO(logger_, "device is NOT valid. Return empty list");
+ return ApplicationList();
+}
+
+void TransportAdapterImpl::ConnectionFinished(
+ const DeviceUID& device_id, const ApplicationHandle& app_handle) {
+ pthread_mutex_lock(&connections_mutex_);
+ ConnectionMap::iterator it =
+ connections_.find(std::make_pair(device_id, app_handle));
+ if (it != connections_.end()) {
+ ConnectionInfo& info = it->second;
+ info.state = ConnectionInfo::FINALISING;
+ }
+ pthread_mutex_unlock(&connections_mutex_);
+}
+
+void TransportAdapterImpl::ConnectionAborted(
+ const DeviceUID& device_id, const ApplicationHandle& app_handle,
+ const CommunicationError& error) {
+ ConnectionFinished(device_id, app_handle);
+ for (TransportAdapterListenerList::iterator it = listeners_.begin();
+ it != listeners_.end(); ++it)
+ (*it)->OnUnexpectedDisconnect(this, device_id, app_handle, error);
+}
+
+bool TransportAdapterImpl::IsInitialised() const {
+ if (!initialised_) return false;
+ if (device_scanner_ && !device_scanner_->IsInitialised()) return false;
+ if (server_connection_factory_ &&
+ !server_connection_factory_->IsInitialised())
+ return false;
+ if (client_connection_listener_ &&
+ !client_connection_listener_->IsInitialised())
+ return false;
+ return true;
+}
+
+std::string TransportAdapterImpl::DeviceName(const DeviceUID& device_id) const {
+ DeviceSptr device = FindDevice(device_id);
+ if (device.valid()) {
+ return device->name();
+ } else {
+ return "";
+ }
+}
+
+void TransportAdapterImpl::Store() const {
+}
+
+bool TransportAdapterImpl::Restore() {
+ return true;
+}
+
+bool TransportAdapterImpl::ToBeAutoConnected(DeviceSptr device) const {
+ return false;
+}
+
+ConnectionSptr TransportAdapterImpl::FindEstablishedConnection(
+ const DeviceUID& device_id, const ApplicationHandle& app_handle) {
+ ConnectionSptr connection;
+ pthread_mutex_lock(&connections_mutex_);
+ ConnectionMap::iterator it =
+ connections_.find(std::make_pair(device_id, app_handle));
+ if (it != connections_.end()) {
+ ConnectionInfo& info = it->second;
+ if (info.state == ConnectionInfo::ESTABLISHED) connection = info.connection;
+ }
+ pthread_mutex_unlock(&connections_mutex_);
+ return connection;
+}
+
+TransportAdapter::Error TransportAdapterImpl::ConnectDevice(DeviceSptr device) {
+ DeviceUID device_id = device->unique_device_id();
+ ApplicationList app_list = device->GetApplicationList();
+ bool errors_occured = false;
+ for (ApplicationList::iterator it = app_list.begin(); it != app_list.end(); ++it) {
+ ApplicationHandle app_handle = *it;
+ LOG4CXX_INFO(logger_, "Attempt to connect device " << device_id <<
+ ", channel " << app_handle);
+ Error error = Connect(device_id, app_handle);
+ switch (error) {
+ case OK:
+ LOG4CXX_DEBUG(logger_, "OK");
+ break;
+ case ALREADY_EXISTS:
+ LOG4CXX_INFO(logger_, "Already connected");
+ break;
+ default:
+ LOG4CXX_ERROR(logger_, "Connect to device " << device_id <<
+ ", channel " << app_handle <<
+ " failed with error " << error);
+ errors_occured = true;
+ break;
+ }
+ }
+ return errors_occured ? OK : FAIL;
+}
+
+} // namespace transport_adapter
+
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc b/SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc
new file mode 100644
index 000000000..a4c9e000c
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc
@@ -0,0 +1,241 @@
+/**
+ * \file transport_adapter_listener_impl.cc
+ * \brief TransportAdapterListenerImpl class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/transport_adapter/transport_adapter_listener_impl.h"
+
+#include <algorithm>
+
+#include "transport_manager/transport_manager_impl.h"
+#include "transport_manager/transport_adapter/transport_adapter_event.h"
+
+namespace transport_manager {
+
+log4cxx::LoggerPtr TransportAdapterListenerImpl::logger_ =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("TransportManager"));
+
+TransportAdapterListenerImpl::~TransportAdapterListenerImpl() {}
+
+TransportAdapterListenerImpl::TransportAdapterListenerImpl(
+ TransportManagerImpl* manager, TransportAdapter* adapter)
+ : transport_manager_impl_(manager), transport_adapter_(adapter) {}
+
+void TransportAdapterListenerImpl::OnSearchDeviceDone(
+ const TransportAdapter* adapter) {
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_DONE,
+ transport_adapter_, "", 0, RawMessageSptr(), new BaseError());
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnSearchDeviceFailed(
+ const TransportAdapter* adapter,
+ const SearchDeviceError& error) {
+ SearchDeviceError* err = new SearchDeviceError(error);
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_FAIL,
+ transport_adapter_, "", 0, RawMessageSptr(), err);
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnDeviceListUpdated(
+ const TransportAdapter* adapter) {
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_DEVICE_LIST_UPDATED,
+ transport_adapter_, "", 0, RawMessageSptr(), NULL);
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnConnectDone(
+ const TransportAdapter* adapter, const DeviceUID& device,
+ const ApplicationHandle& application_id) {
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_DONE,
+ transport_adapter_, device, application_id, RawMessageSptr(),
+ new BaseError());
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnConnectFailed(
+ const TransportAdapter* adapter, const DeviceUID& device,
+ const ApplicationHandle& app_id, const ConnectError& error) {
+ ConnectError* err = new ConnectError(error);
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_FAIL,
+ transport_adapter_, device, app_id, RawMessageSptr(), err);
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnDisconnectDone(
+ const TransportAdapter* adapter, const DeviceUID& device,
+ const ApplicationHandle& app_id) {
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_DONE,
+ transport_adapter_, device, app_id, RawMessageSptr(), new BaseError());
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnDisconnectFailed(
+ const TransportAdapter* adapter, const DeviceUID& device,
+ const ApplicationHandle& app_id, const DisconnectError& error) {
+ DisconnectError* err = new DisconnectError(error);
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_FAIL,
+ transport_adapter_, device, app_id, RawMessageSptr(), err);
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnDisconnectDeviceDone(
+ const TransportAdapter* adapter, const DeviceUID& device) {}
+
+void TransportAdapterListenerImpl::OnDisconnectDeviceFailed(
+ const TransportAdapter* adapter, const DeviceUID& device,
+ const DisconnectDeviceError& error) {}
+
+void TransportAdapterListenerImpl::OnDataReceiveDone(
+ const TransportAdapter* adapter, const DeviceUID& device,
+ const ApplicationHandle& app_id, const RawMessageSptr data_container) {
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_DONE,
+ transport_adapter_, device, app_id, data_container, new BaseError());
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnDataReceiveFailed(
+ const TransportAdapter* adapter, const DeviceUID& device,
+ const ApplicationHandle& app_id, const DataReceiveError& error) {
+ DataReceiveError* err = new DataReceiveError(error);
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_FAIL,
+ transport_adapter_, device, app_id, RawMessageSptr(), err);
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnDataSendDone(
+ const TransportAdapter* adapter, const DeviceUID& device,
+ const ApplicationHandle& app_id, const RawMessageSptr data_container) {
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_DONE,
+ transport_adapter_, device, app_id, data_container, new BaseError());
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnDataSendFailed(
+ const TransportAdapter* adapter, const DeviceUID& device,
+ const ApplicationHandle& app_id, const RawMessageSptr data_container,
+ const DataSendError& error) {
+ DataSendError* err = new DataSendError(error);
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_FAIL,
+ transport_adapter_, device, app_id, data_container, err);
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnConnectRequested(
+ const TransportAdapter* adapter, const DeviceUID& device_handle,
+ const ApplicationHandle& app_handle) {}
+
+void TransportAdapterListenerImpl::OnUnexpectedDisconnect(
+ const TransportAdapter* adapter,
+ const DeviceUID& device, const ApplicationHandle& application,
+ const CommunicationError& error) {
+ CommunicationError* err = new CommunicationError(error);
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_UNEXPECTED_DISCONNECT,
+ transport_adapter_, device, application, RawMessageSptr(), err);
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+void TransportAdapterListenerImpl::OnCommunicationError(
+ const TransportAdapter* adapter, const DeviceUID& device,
+ const ApplicationHandle& app_id) {
+ TransportAdapterEvent event(
+ TransportAdapterListenerImpl::EventTypeEnum::ON_COMMUNICATION_ERROR,
+ transport_adapter_, device, app_id, RawMessageSptr(), new BaseError());
+
+ if (transport_manager::E_SUCCESS !=
+ transport_manager_impl_->ReceiveEventFromDevice(event)) {
+ LOG4CXX_WARN(logger_, "Failed to receive event from device");
+ }
+}
+
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/transport_manager_default.cc b/SDL_Core/src/components/transport_manager/src/transport_manager_default.cc
new file mode 100644
index 000000000..e2154b3ec
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/transport_manager_default.cc
@@ -0,0 +1,71 @@
+/*
+ * \file transport_manager_default.cc
+ * \brief TransportManagerDefault class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/transport_manager_default.h"
+#include "transport_manager/tcp/tcp_transport_adapter.h"
+
+#ifdef BLUETOOTH_SUPPORT
+#include "transport_manager/bluetooth/bluetooth_transport_adapter.h"
+#endif
+
+#ifdef USB_SUPPORT
+#include "transport_manager/usb/usb_aoa_adapter.h"
+#endif
+
+
+namespace transport_manager {
+
+int TransportManagerDefault::Init() {
+ if (E_SUCCESS != TransportManagerImpl::Init()) {
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+
+#ifdef BLUETOOTH_SUPPORT
+ AddTransportAdapter(new transport_adapter::BluetoothTransportAdapter);
+#endif
+ AddTransportAdapter(new transport_adapter::TcpTransportAdapter);
+#ifdef USB_SUPPORT
+ AddTransportAdapter(new transport_adapter::UsbAoaAdapter);
+#endif
+
+ return E_SUCCESS;
+}
+
+TransportManagerDefault::~TransportManagerDefault() {}
+
+TransportManagerDefault::TransportManagerDefault()
+ : TransportManagerImpl() {}
+
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/transport_manager_impl.cc b/SDL_Core/src/components/transport_manager/src/transport_manager_impl.cc
new file mode 100644
index 000000000..62a970ccf
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/transport_manager_impl.cc
@@ -0,0 +1,966 @@
+/**
+ * \file transport_manager_impl.cc
+ * \brief TransportManagerImpl class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <pthread.h>
+#include <stdint.h>
+#include <cstring>
+#include <queue>
+#include <set>
+#include <algorithm>
+#include <limits>
+#include <functional>
+#include <sstream>
+#include "utils/macro.h"
+#include "protocol_handler/raw_message.h"
+#include "protocol_handler/protocol_packet.h"
+#include "transport_manager/transport_manager_impl.h"
+#include "transport_manager/transport_manager_listener.h"
+#include "transport_manager/transport_manager_listener_empty.h"
+#include "transport_manager/bluetooth/bluetooth_transport_adapter.h"
+#include "transport_manager/tcp/tcp_transport_adapter.h"
+#include "transport_manager/transport_adapter/transport_adapter.h"
+#include "config_profile/profile.h"
+#include "transport_manager/transport_adapter/transport_adapter_event.h"
+
+using ::transport_manager::transport_adapter::TransportAdapter;
+
+namespace transport_manager {
+
+log4cxx::LoggerPtr TransportManagerImpl::logger_ =
+ log4cxx::LoggerPtr(log4cxx::Logger::getLogger("TransportManager"));
+
+TransportManagerImpl::Connection TransportManagerImpl::convert(TransportManagerImpl::ConnectionInternal& p) {
+ TransportManagerImpl::Connection c;
+ c.application = p.application;
+ c.device = p.device;
+ c.id = p.id;
+ return c;
+}
+
+class TransportManagerImpl::IncomingDataHandler {
+ public:
+ IncomingDataHandler(TransportManagerImpl* tm_impl)
+ : connections_data_(), tm_impl_(tm_impl) {}
+
+ bool ProcessData(ConnectionUID connection_id, uint8_t* data,
+ std::size_t size) {
+ LOG4CXX_TRACE(logger_, "Start of processing incoming data of size "
+ << size << " for connection " << connection_id);
+ const uint32_t kBytesForSizeDetection = 8;
+ ConnectionsData::iterator it = connections_data_.find(connection_id);
+ if (connections_data_.end() == it) {
+ LOG4CXX_ERROR(logger_, "ProcessData requested for unknown connection");
+ return false;
+ }
+ std::vector<uint8_t>& connection_data = it->second;
+ connection_data.insert(connection_data.end(), data, data + size);
+
+ LOG4CXX_TRACE(logger_, "Total data size for connection "
+ << connection_id << " is "
+ << connection_data.size());
+ while (connection_data.size() >= kBytesForSizeDetection) {
+ const uint32_t packet_size =
+ tm_impl_->GetPacketSize(kBytesForSizeDetection, &connection_data[0]);
+ if (0 == packet_size) {
+ LOG4CXX_ERROR(logger_, "Failed to get packet size");
+ return false;
+ }
+ LOG4CXX_TRACE(logger_, "Packet size " << packet_size);
+ if (connection_data.size() >= packet_size) {
+ RawMessageSptr raw_message(new protocol_handler::RawMessage(
+ connection_id, 0, // It's not up to TM to know protocol version
+ &connection_data[0], packet_size));
+ tm_impl_->RaiseEvent(&TransportManagerListener::OnTMMessageReceived,
+ raw_message);
+ connection_data.erase(connection_data.begin(),
+ connection_data.begin() + packet_size);
+ LOG4CXX_TRACE(logger_,
+ "Packet created and passed, new data size for connection "
+ << connection_id << " is " << connection_data.size());
+ } else {
+ LOG4CXX_TRACE(logger_, "Packet data is not available yet");
+ return true;
+ }
+ }
+ return true;
+ }
+
+ void AddConnection(ConnectionUID connection_id) {
+ connections_data_[connection_id];
+ }
+
+ void RemoveConnection(ConnectionUID connection_id) {
+ connections_data_.erase(connection_id);
+ }
+
+ private:
+ typedef std::map<ConnectionUID, std::vector<uint8_t> > ConnectionsData;
+ ConnectionsData connections_data_;
+ TransportManagerImpl* tm_impl_;
+};
+
+TransportManagerImpl::TransportManagerImpl()
+ : message_queue_mutex_(),
+ all_thread_active_(false),
+ message_queue_thread_(),
+ event_queue_thread_(),
+ device_listener_thread_wakeup_(),
+ is_initialized_(false),
+ connection_id_counter_(0),
+ incoming_data_handler_(new IncomingDataHandler(this)) {
+ LOG4CXX_INFO(logger_, "==============================================");
+#ifdef USE_RWLOCK
+ pthread_rwlock_init(&message_queue_rwlock_, NULL);
+ pthread_rwlock_init(&event_queue_rwlock_, NULL);
+#endif
+ pthread_mutex_init(&message_queue_mutex_, NULL);
+ pthread_cond_init(&message_queue_cond_, NULL);
+ pthread_mutex_init(&event_queue_mutex_, 0);
+ pthread_cond_init(&device_listener_thread_wakeup_, NULL);
+ LOG4CXX_INFO(logger_, "TransportManager object created");
+}
+
+TransportManagerImpl::~TransportManagerImpl() {
+ LOG4CXX_INFO(logger_, "TransportManager object destroyed");
+
+ for (std::vector<TransportAdapter*>::iterator it =
+ transport_adapters_.begin();
+ it != transport_adapters_.end(); ++it) {
+ delete *it;
+ }
+
+ for (std::map<TransportAdapter*, TransportAdapterListenerImpl*>::iterator it =
+ transport_adapter_listeners_.begin();
+ it != transport_adapter_listeners_.end(); ++it) {
+ delete it->second;
+ }
+
+ pthread_mutex_destroy(&message_queue_mutex_);
+ pthread_cond_destroy(&message_queue_cond_);
+ pthread_mutex_destroy(&event_queue_mutex_);
+ pthread_cond_destroy(&device_listener_thread_wakeup_);
+}
+
+int TransportManagerImpl::ConnectDevice(const DeviceHandle& device_handle) {
+ LOG4CXX_INFO(logger_, "Connect device called with arguments device_handle "
+ << device_handle);
+ if (!this->is_initialized_) {
+ LOG4CXX_ERROR(logger_, "TransportManager is not initialized.");
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+
+ DeviceUID device_id = converter_.HandleToUid(device_handle);
+ LOG4CXX_INFO(logger_, "Convert handle to id " << device_id);
+
+ transport_adapter::TransportAdapter* ta = device_to_adapter_map_[device_id];
+ if (NULL == ta) {
+ LOG4CXX_ERROR(logger_, "No device adapter found by id " << device_id);
+ return E_INVALID_HANDLE;
+ }
+
+ TransportAdapter::Error ta_error = ta->ConnectDevice(device_id);
+ return (TransportAdapter::OK == ta_error) ? E_SUCCESS : E_INTERNAL_ERROR;
+}
+
+int TransportManagerImpl::DisconnectDevice(const DeviceHandle& device_handle) {
+ LOG4CXX_INFO(logger_, "Disconnect device called");
+ if (!this->is_initialized_) {
+ LOG4CXX_ERROR(logger_, "TransportManager is not initialized.");
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+ DeviceUID device_id = converter_.HandleToUid(device_handle);
+ LOG4CXX_INFO(logger_, "Convert handle to id" << device_id);
+
+ transport_adapter::TransportAdapter* ta = device_to_adapter_map_[device_id];
+ if (NULL == ta) {
+ LOG4CXX_ERROR(logger_, "No device adapter found by id " << device_id);
+ return E_INVALID_HANDLE;
+ }
+ ta->DisconnectDevice(device_id);
+ LOG4CXX_INFO(logger_, "Disconnected");
+ return E_SUCCESS;
+}
+
+int TransportManagerImpl::Disconnect(const ConnectionUID& cid) {
+ if (!this->is_initialized_) {
+ LOG4CXX_ERROR(logger_, "TransportManager is not initialized.");
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+
+ ConnectionInternal* connection = GetConnection(cid);
+ if (connection == NULL) {
+ LOG4CXX_ERROR(
+ logger_,
+ "TransportManagerImpl::Disconnect: Connection does not exist.");
+ return E_INVALID_HANDLE;
+ }
+
+ pthread_mutex_lock(&event_queue_mutex_);
+ int messages_count = 0;
+ for (EventQueue::const_iterator it = event_queue_.begin();
+ it != event_queue_.end();
+ ++it) {
+ if (it->application_id() == cid) {
+ ++messages_count;
+ }
+ }
+ pthread_mutex_unlock(&event_queue_mutex_);
+
+ if (messages_count > 0) {
+ connection->messages_count = messages_count;
+ connection->shutDown = true;
+ connection->timer->start(
+ profile::Profile::instance()->transport_manager_disconnect_timeout()
+ );
+ } else {
+ connection->transport_adapter->Disconnect(connection->device,
+ connection->application);
+ }
+ return E_SUCCESS;
+}
+
+int TransportManagerImpl::DisconnectForce(const ConnectionUID& cid) {
+ if (false == this->is_initialized_) {
+ LOG4CXX_ERROR(logger_, "TransportManager is not initialized.");
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+ pthread_mutex_lock(&event_queue_mutex_);
+ // Clear messages for this connection
+ // Note that MessageQueue typedef is assumed to be std::list,
+ // or there is a problem here. One more point versus typedefs-everywhere
+ MessageQueue::iterator e = message_queue_.begin();
+ while (e != message_queue_.end()) {
+ if ((*e)->connection_key() == cid) {
+ RaiseEvent(&TransportManagerListener::OnTMMessageSendFailed,
+ DataSendTimeoutError(), *e);
+ e = message_queue_.erase(e);
+ } else {
+ ++e;
+ }
+ }
+ pthread_mutex_unlock(&event_queue_mutex_);
+ const ConnectionInternal* connection = GetConnection(cid);
+ if (connection == NULL) {
+ LOG4CXX_ERROR(
+ logger_,
+ "TransportManagerImpl::DisconnectForce: Connection does not exist.");
+ return E_INVALID_HANDLE;
+ }
+ connection->transport_adapter->Disconnect(connection->device,
+ connection->application);
+ return E_SUCCESS;
+}
+
+int TransportManagerImpl::AddEventListener(TransportManagerListener* listener) {
+ transport_manager_listener_.push_back(listener);
+ return E_SUCCESS;
+}
+
+int TransportManagerImpl::Stop() {
+ if (!all_thread_active_) return E_TM_IS_NOT_INITIALIZED;
+
+ all_thread_active_ = false;
+
+ pthread_mutex_lock(&event_queue_mutex_);
+ pthread_cond_signal(&device_listener_thread_wakeup_);
+ pthread_mutex_unlock(&event_queue_mutex_);
+
+ pthread_mutex_lock(&message_queue_mutex_);
+ pthread_cond_signal(&message_queue_cond_);
+ pthread_mutex_unlock(&message_queue_mutex_);
+
+ pthread_join(message_queue_thread_, 0);
+ pthread_join(event_queue_thread_, 0);
+
+ LOG4CXX_INFO(logger_, "TransportManager object stopped");
+
+ return E_SUCCESS;
+}
+
+int TransportManagerImpl::SendMessageToDevice(const RawMessageSptr message) {
+ LOG4CXX_INFO(logger_, "Send message to device called with arguments "
+ << message.get());
+ if (false == this->is_initialized_) {
+ LOG4CXX_ERROR(logger_, "TM is not initialized.");
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+
+ const ConnectionInternal* connection =
+ GetConnection(message->connection_key());
+ if (connection == NULL) {
+ LOG4CXX_ERROR(logger_, "Connection with id " << message->connection_key()
+ << " does not exist.");
+ return E_INVALID_HANDLE;
+ }
+
+ if (connection->shutDown) {
+ LOG4CXX_ERROR(
+ logger_,
+ "TransportManagerImpl::Disconnect: Connection is to shut down.");
+ return E_CONNECTION_IS_TO_SHUTDOWN;
+ }
+
+ this->PostMessage(message);
+ LOG4CXX_INFO(logger_, "Message posted");
+ return E_SUCCESS;
+}
+
+int TransportManagerImpl::ReceiveEventFromDevice(
+ const TransportAdapterEvent& event) {
+ if (false == this->is_initialized_) {
+ LOG4CXX_ERROR(logger_, "TM is not initialized.");
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+ this->PostEvent(event);
+ return E_SUCCESS;
+}
+
+int TransportManagerImpl::RemoveDevice(const DeviceHandle& device_handle) {
+ DeviceUID device_id = converter_.HandleToUid(device_handle);
+ if (false == this->is_initialized_) {
+ LOG4CXX_ERROR(logger_, "TM is not initialized.");
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+ device_to_adapter_map_.erase(device_id);
+ return E_SUCCESS;
+}
+
+int TransportManagerImpl::AddTransportAdapter(
+ transport_adapter::TransportAdapter* transport_adapter) {
+ LOG4CXX_INFO(logger_, "Add device adapter "
+ << transport_adapter << "["
+ << transport_adapter->GetDeviceType() << "]");
+
+ if (transport_adapter_listeners_.find(transport_adapter) !=
+ transport_adapter_listeners_.end()) {
+ LOG4CXX_ERROR(logger_, "Adapter already exists.");
+ return E_ADAPTER_EXISTS;
+ }
+ transport_adapter_listeners_[transport_adapter] =
+ new TransportAdapterListenerImpl(this, transport_adapter);
+ transport_adapter->AddListener(
+ transport_adapter_listeners_[transport_adapter]);
+
+ if (transport_adapter->IsInitialised() ||
+ transport_adapter->Init() == TransportAdapter::OK) {
+ transport_adapters_.push_back(transport_adapter);
+ }
+
+ return E_SUCCESS;
+}
+
+int TransportManagerImpl::SearchDevices(void) {
+ if (!this->is_initialized_) {
+ LOG4CXX_ERROR(logger_, "TM is not initialized");
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+
+ LOG4CXX_INFO(logger_, "Search device called");
+
+ bool success_occured = false;
+
+ for (std::vector<TransportAdapter*>::iterator it =
+ transport_adapters_.begin();
+ it != transport_adapters_.end(); ++it) {
+ LOG4CXX_INFO(logger_, "Iterating over transport adapters");
+ TransportAdapter::Error scanResult = (*it)->SearchDevices();
+ if (transport_adapter::TransportAdapter::OK == scanResult) {
+ success_occured = true;
+ }
+ else {
+ LOG4CXX_ERROR(logger_, "Transport Adapter search failed "
+ << *it << "[" << (*it)->GetDeviceType()
+ << "]");
+ switch (scanResult) {
+ case transport_adapter::TransportAdapter::NOT_SUPPORTED: {
+ LOG4CXX_ERROR(logger_, "Search feature is not supported "
+ << *it << "[" << (*it)->GetDeviceType()
+ << "]");
+ break;
+ }
+ case transport_adapter::TransportAdapter::BAD_STATE: {
+ LOG4CXX_ERROR(logger_, "Transport Adapter has bad state "
+ << *it << "[" << (*it)->GetDeviceType()
+ << "]");
+ break;
+ }
+ }
+ }
+ }
+
+ LOG4CXX_INFO(logger_, "SearchDevices() function is complete");
+
+ return (success_occured || transport_adapters_.empty())
+ ? E_SUCCESS
+ : E_ADAPTERS_FAIL;
+}
+
+int TransportManagerImpl::Init(void) {
+ LOG4CXX_INFO(logger_, "Init is called");
+ all_thread_active_ = true;
+
+ int error_code =
+ pthread_create(&message_queue_thread_, 0, &MessageQueueStartThread, this);
+
+ if (0 != error_code) {
+ LOG4CXX_ERROR(logger_,
+ "Message queue thread is not created exit with error code "
+ << error_code);
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+
+ error_code =
+ pthread_create(&event_queue_thread_, 0, &EventListenerStartThread, this);
+
+ if (0 != error_code) {
+ LOG4CXX_ERROR(logger_,
+ "Event queue thread is not created exit with error code "
+ << error_code);
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+
+ is_initialized_ = true;
+ LOG4CXX_INFO(logger_, "Init complete");
+ return E_SUCCESS;
+}
+
+int TransportManagerImpl::Visibility(const bool& on_off) const {
+ TransportAdapter::Error ret;
+
+ LOG4CXX_INFO(logger_, "Visibility change requested to " << on_off);
+ if (false == this->is_initialized_) {
+ LOG4CXX_ERROR(logger_, "TM is not initialized");
+ return E_TM_IS_NOT_INITIALIZED;
+ }
+
+ for (std::vector<TransportAdapter*>::const_iterator it =
+ transport_adapters_.begin();
+ it != transport_adapters_.end(); ++it) {
+ if (on_off) {
+ ret = (*it)->StartClientListening();
+ } else {
+ ret = (*it)->StopClientListening();
+ }
+ if (TransportAdapter::Error::NOT_SUPPORTED == ret) {
+ LOG4CXX_INFO(logger_, "Visibility change is not supported for adapter "
+ << *it << "[" << (*it)->GetDeviceType() << "]");
+ }
+ }
+
+ LOG4CXX_INFO(logger_, "Visibility change requested complete");
+ return E_SUCCESS;
+}
+
+void TransportManagerImpl::UpdateDeviceList(TransportAdapter* ta) {
+ std::set<DeviceInfo> old_devices;
+ for (DeviceList::iterator it = device_list_.begin();
+ it != device_list_.end();) {
+ if (it->first == ta) {
+ old_devices.insert(it->second);
+ it = device_list_.erase(it);
+ } else {
+ ++it;
+ }
+ }
+
+ std::set<DeviceInfo> new_devices;
+ const transport_adapter::DeviceList dev_list = ta->GetDeviceList();
+ for (transport_adapter::DeviceList::const_iterator it = dev_list.begin();
+ it != dev_list.end(); ++it) {
+ DeviceHandle device_handle = converter_.UidToHandle(*it);
+ DeviceInfo info(device_handle, *it, ta->DeviceName(*it));
+ device_list_.push_back(std::make_pair(ta, info));
+ new_devices.insert(info);
+ }
+
+ std::set<DeviceInfo> added_devices;
+ std::set_difference(new_devices.begin(), new_devices.end(),
+ old_devices.begin(), old_devices.end(),
+ std::inserter(added_devices, added_devices.begin()));
+ for(std::set<DeviceInfo>::const_iterator it = added_devices.begin();
+ it != added_devices.end();
+ ++it) {
+ RaiseEvent(&TransportManagerListener::OnDeviceAdded, *it);
+ }
+
+ std::set<DeviceInfo> removed_devices;
+ std::set_difference(old_devices.begin(), old_devices.end(),
+ new_devices.begin(), new_devices.end(),
+ std::inserter(removed_devices, removed_devices.begin()));
+
+ for(std::set<DeviceInfo>::const_iterator it = removed_devices.begin();
+ it != removed_devices.end();
+ ++it) {
+ RaiseEvent(&TransportManagerListener::OnDeviceRemoved, *it);
+ }
+}
+
+void TransportManagerImpl::PostMessage(const RawMessageSptr message) {
+ LOG4CXX_INFO(logger_, "Post message called serial number " << message.get());
+
+#ifdef USE_RWLOCK
+ pthread_rwlock_wrlock(&message_queue_rwlock_);
+#else
+ pthread_mutex_lock(&message_queue_mutex_);
+#endif
+ message_queue_.push_back(message);
+ pthread_cond_signal(&message_queue_cond_);
+#ifdef USE_RWLOCK
+ pthread_rwlock_unlock(&message_queue_rwlock_);
+#else
+ pthread_mutex_unlock(&message_queue_mutex_);
+#endif
+ LOG4CXX_INFO(logger_, "Post message complete");
+}
+
+void TransportManagerImpl::RemoveMessage(const RawMessageSptr message) {
+ // TODO: Reconsider necessity of this method, remove if it's useless,
+ // make to work otherwise.
+ // 2013-08-21 dchmerev@luxoft.com
+ LOG4CXX_INFO(logger_, "Remove message called " << message.get());
+#ifdef USE_RWLOCK
+ pthread_rwlock_wrlock(&message_queue_rwlock_);
+#else
+ pthread_mutex_lock(&message_queue_mutex_);
+#endif
+ std::remove(message_queue_.begin(), message_queue_.end(), message);
+#ifdef USE_RWLOCK
+ pthread_rwlock_unlock(&message_queue_rwlock_);
+#else
+ pthread_mutex_unlock(&message_queue_mutex_);
+#endif
+ LOG4CXX_INFO(logger_, "Remove message from queue complete");
+}
+
+void TransportManagerImpl::PostEvent(const TransportAdapterEvent& event) {
+#ifdef USE_RWLOCK
+ pthread_rwlock_wrlock(&event_queue_rwlock_);
+#else
+ pthread_mutex_lock(&event_queue_mutex_);
+#endif
+ event_queue_.push_back(event);
+ pthread_cond_signal(&device_listener_thread_wakeup_);
+#ifdef USE_RWLOCK
+ pthread_rwlock_unlock(&event_queue_rwlock_);
+#else
+ pthread_mutex_unlock(&event_queue_mutex_);
+#endif
+}
+
+void* TransportManagerImpl::EventListenerStartThread(void* data) {
+ if (NULL != data) {
+ static_cast<TransportManagerImpl*>(data)->EventListenerThread();
+ }
+ return 0;
+}
+
+void TransportManagerImpl::AddConnection(const ConnectionInternal& c) {
+ connections_.push_back(c);
+ incoming_data_handler_->AddConnection(c.id);
+}
+
+void TransportManagerImpl::RemoveConnection(int id) {
+ for (std::vector<ConnectionInternal>::iterator it = connections_.begin();
+ it != connections_.end(); ++it) {
+ if (it->id == id) {
+ connections_.erase(it);
+ break;
+ }
+ }
+ incoming_data_handler_->RemoveConnection(id);
+}
+
+TransportManagerImpl::ConnectionInternal* TransportManagerImpl::GetConnection(
+ const ConnectionUID& id) {
+ for (std::vector<ConnectionInternal>::iterator it = connections_.begin(); it != connections_.end(); ++it) {
+ if (it->id == id) {
+ return &*it;
+ }
+ }
+ return NULL;
+}
+
+TransportManagerImpl::ConnectionInternal* TransportManagerImpl::GetConnection(
+ const DeviceUID& device, const ApplicationHandle& application) {
+ for (std::vector<ConnectionInternal>::iterator it = connections_.begin(); it != connections_.end(); ++it) {
+ if (it->device == device && it->application == application) {
+ return &*it;
+ }
+ }
+ return NULL;
+}
+
+// TODO this function should be moved outside of TM to protocol handler or
+// somewhere else
+unsigned int TransportManagerImpl::GetPacketSize(unsigned int data_size,
+ unsigned char* first_bytes) {
+ DCHECK(first_bytes);
+ unsigned char offset = sizeof(uint32_t);
+ if (data_size < 2 * offset) {
+ LOG4CXX_ERROR(logger_, "Received bytes are not enough to parse fram size.");
+ return 0;
+ }
+
+ unsigned char* received_bytes = first_bytes;
+ DCHECK(received_bytes);
+
+ unsigned char version = received_bytes[0] >> 4u;
+ uint32_t frame_body_size = received_bytes[offset++] << 24u;
+ frame_body_size |= received_bytes[offset++] << 16u;
+ frame_body_size |= received_bytes[offset++] << 8u;
+ frame_body_size |= received_bytes[offset++];
+
+ unsigned int required_size = frame_body_size;
+ switch (version) {
+ case protocol_handler::PROTOCOL_VERSION_1:
+ required_size += protocol_handler::PROTOCOL_HEADER_V1_SIZE;
+ break;
+ case protocol_handler::PROTOCOL_VERSION_2:
+ required_size += protocol_handler::PROTOCOL_HEADER_V2_SIZE;
+ break;
+ default:
+ LOG4CXX_ERROR(logger_, "Unknown protocol version.");
+ return 0;
+ }
+
+ return required_size;
+}
+
+void TransportManagerImpl::OnDeviceListUpdated(TransportAdapter* ta) {
+ const transport_adapter::DeviceList device_list = ta->GetDeviceList();
+ LOG4CXX_INFO(logger_, "DEVICE_LIST_UPDATED " << device_list.size());
+ for (transport_adapter::DeviceList::const_iterator it = device_list.begin();
+ it != device_list.end(); ++it) {
+ device_to_adapter_map_.insert(std::make_pair(*it, ta));
+ DeviceHandle device_handle = converter_.UidToHandle(*it);
+ DeviceInfo info(device_handle, *it, ta->DeviceName(*it));
+ RaiseEvent(&TransportManagerListener::OnDeviceFound, info);
+ }
+ UpdateDeviceList(ta);
+ std::vector<DeviceInfo> device_infos;
+ for (DeviceList::const_iterator it = device_list_.begin();
+ it != device_list_.end(); ++it) {
+ device_infos.push_back(it->second);
+ }
+ RaiseEvent(&TransportManagerListener::OnDeviceListUpdated, device_infos);
+}
+
+void TransportManagerImpl::EventListenerThread(void) {
+#ifndef USE_RWLOCK
+ pthread_mutex_lock(&event_queue_mutex_);
+#endif
+ LOG4CXX_INFO(logger_, "Event listener thread started");
+ while (true) {
+ while (event_queue_.size() > 0) {
+#ifdef USE_RWLOCK
+ pthread_rwlock_rdlock(&event_queue_rwlock_);
+#endif
+ LOG4CXX_INFO(logger_, "Event listener queue pushed to process events");
+ EventQueue::iterator current = event_queue_.begin();
+ TransportAdapter* ta = current->transport_adapter();
+ ApplicationHandle app_handle = current->application_id();
+ DeviceUID device_id = current->device_uid();
+ DeviceHandle device_handle;
+ BaseError* error = current->event_error();
+ RawMessageSptr data = current->data();
+
+ int event_type = current->event_type();
+ event_queue_.erase(current);
+#ifdef USE_RWLOCK
+ pthread_rwlock_unlock(&event_queue_rwlock_);
+#else
+ pthread_mutex_unlock(&event_queue_mutex_);
+#endif
+ transport_adapter::DeviceList dev_list;
+ ConnectionInternal* connection = GetConnection(device_id, app_handle);
+ std::vector<DeviceInfo>::iterator device_info_iterator;
+
+ switch (event_type) {
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_DONE: {
+ LOG4CXX_INFO(logger_, "Event ON_SEARCH_DONE");
+ RaiseEvent(&TransportManagerListener::OnScanDevicesFinished);
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_FAIL: {
+ LOG4CXX_INFO(logger_, "Event ON_SEARCH_FAIL");
+ // error happened in real search process (external error)
+ RaiseEvent(&TransportManagerListener::OnScanDevicesFailed,
+ *static_cast<SearchDeviceError*>(error));
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_DEVICE_LIST_UPDATED
+ : {
+ OnDeviceListUpdated(ta);
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_DONE: {
+ LOG4CXX_INFO(logger_, "Event ON_CONNECT_DONE");
+ AddConnection(ConnectionInternal(this, ta, ++connection_id_counter_,
+ device_id, app_handle));
+ device_handle = converter_.UidToHandle(device_id);
+ RaiseEvent(
+ &TransportManagerListener::OnConnectionEstablished,
+ DeviceInfo(device_handle, device_id, ta->DeviceName(device_id)),
+ connection_id_counter_);
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_FAIL: {
+ LOG4CXX_INFO(logger_, "Event ON_CONNECT_FAIL");
+ RaiseEvent(&TransportManagerListener::OnConnectionFailed,
+ DeviceInfo(converter_.UidToHandle(device_id), device_id,
+ ta->DeviceName(device_id)),
+ ConnectError());
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_DONE: {
+ LOG4CXX_INFO(logger_, "Event ON_DISCONNECT_DONE");
+ if (connection == NULL) {
+ LOG4CXX_ERROR(logger_, "Connection ('" << device_id << ", "
+ << app_handle
+ << ") not found");
+ break;
+ }
+ RaiseEvent(&TransportManagerListener::OnConnectionClosed,
+ connection->id);
+ RemoveConnection(connection->id);
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_FAIL: {
+ LOG4CXX_INFO(logger_, "Event ON_DISCONNECT_FAIL");
+ device_handle = converter_.UidToHandle(device_id);
+ RaiseEvent(&TransportManagerListener::OnDisconnectFailed,
+ device_handle, DisconnectDeviceError());
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_DONE: {
+ LOG4CXX_INFO(logger_, "Event ON_SEND_DONE");
+ if (connection == NULL) {
+ LOG4CXX_ERROR(logger_, "Connection ('" << device_id << ", "
+ << app_handle
+ << ") not found");
+ break;
+ }
+ RaiseEvent(&TransportManagerListener::OnTMMessageSend, data);
+ this->RemoveMessage(data);
+ if (connection->shutDown && --connection->messages_count == 0) {
+ connection->timer->stop();
+ connection->transport_adapter->Disconnect(connection->device,
+ connection->application);
+ }
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_FAIL: {
+ LOG4CXX_INFO(logger_, "Event ON_SEND_FAIL");
+ if (connection == NULL) {
+ LOG4CXX_ERROR(logger_, "Connection ('" << device_id << ", "
+ << app_handle
+ << ") not found");
+ break;
+ }
+
+ // TODO(YK): start timer here to wait before notify caller
+ // and remove unsent messages
+ LOG4CXX_ERROR(logger_, "Transport adapter failed to send data");
+ // TODO(YK): potential error case -> thread unsafe
+ // update of message content
+ data->set_waiting(true);
+ if (data.valid()) {
+ data->set_waiting(true);
+ } else {
+ LOG4CXX_ERROR(logger_, "Data is invalid");
+ }
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_DONE: {
+ LOG4CXX_INFO(logger_, "Event ON_RECEIVED_DONE");
+ if (connection == NULL) {
+ LOG4CXX_ERROR(logger_, "Connection ('" << device_id << ", "
+ << app_handle
+ << ") not found");
+ break;
+ }
+ const bool ok = incoming_data_handler_->ProcessData(
+ connection->id, data->data(), data->data_size());
+ if (!ok) {
+ LOG4CXX_ERROR(
+ logger_,
+ "Incoming data processing failed. Terminating connection.");
+ DisconnectForce(connection->id);
+ }
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_FAIL: {
+ LOG4CXX_INFO(logger_, "Event ON_RECEIVED_FAIL");
+ if (connection == NULL) {
+ LOG4CXX_ERROR(logger_, "Connection ('" << device_id << ", "
+ << app_handle
+ << ") not found");
+ break;
+ }
+
+ RaiseEvent(&TransportManagerListener::OnTMMessageReceiveFailed,
+ connection->id, *static_cast<DataReceiveError*>(error));
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::ON_COMMUNICATION_ERROR
+ : {
+ LOG4CXX_INFO(logger_, "Event ON_COMMUNICATION_ERROR");
+ break;
+ }
+ case TransportAdapterListenerImpl::EventTypeEnum::
+ ON_UNEXPECTED_DISCONNECT: {
+ LOG4CXX_INFO(logger_, "Event ON_UNEXPECTED_DISCONNECT");
+ if (connection) {
+ RaiseEvent(&TransportManagerListener::OnUnexpectedDisconnect,
+ connection->id,
+ *static_cast<CommunicationError*>(error));
+ } else {
+ LOG4CXX_ERROR(logger_, "Connection ('" << device_id << ", "
+ << app_handle
+ << ") not found");
+ }
+ break;
+ }
+ } // switch
+ delete error;
+#ifndef USE_RWLOCK
+ pthread_mutex_lock(&event_queue_mutex_);
+#endif
+ } // while (event_queue_.size() > 0)
+
+ if (all_thread_active_)
+ pthread_cond_wait(&device_listener_thread_wakeup_, &event_queue_mutex_);
+ else
+ break;
+ } // while (true)
+
+ pthread_mutex_unlock(&event_queue_mutex_);
+
+ LOG4CXX_INFO(logger_, "Event listener thread finished");
+}
+void* TransportManagerImpl::MessageQueueStartThread(void* data) {
+ if (NULL != data) {
+ static_cast<TransportManagerImpl*>(data)->MessageQueueThread();
+ }
+ return 0;
+}
+
+void TransportManagerImpl::MessageQueueThread(void) {
+ LOG4CXX_INFO(logger_, "Message queue thread started");
+
+#ifndef USE_RWLOCK
+ pthread_mutex_lock(&message_queue_mutex_);
+#endif
+
+ while (all_thread_active_) {
+ // TODO(YK): add priority processing
+
+ while (message_queue_.size() > 0) {
+#ifdef USE_RWLOCK
+ pthread_rwlock_rdlock(&message_queue_rwlock_);
+#endif
+ MessageQueue::iterator it = message_queue_.begin();
+ while (it != message_queue_.end() && it->valid() && (*it)->IsWaiting()) {
+ ++it;
+ }
+ if (it == message_queue_.end()) {
+#ifdef USE_RWLOCK
+ pthread_rwlock_unlock(&message_queue_rwlock_);
+#endif
+ break;
+ }
+ RawMessageSptr active_msg = *it;
+#ifdef USE_RWLOCK
+ pthread_rwlock_unlock(&message_queue_rwlock_);
+#else
+ pthread_mutex_unlock(&message_queue_mutex_);
+#endif
+ if (active_msg.valid() && !active_msg->IsWaiting()) {
+ ConnectionInternal* connection =
+ GetConnection(active_msg->connection_key());
+ if (connection == NULL) {
+ std::stringstream ss;
+ ss << "Connection " << active_msg->connection_key() << " not found";
+ LOG4CXX_ERROR(logger_, ss.str());
+ RaiseEvent(&TransportManagerListener::OnTMMessageSendFailed,
+ DataSendError(ss.str()), active_msg);
+ message_queue_.remove(active_msg);
+ continue;
+ }
+ TransportAdapter* transport_adapter = connection->transport_adapter;
+ LOG4CXX_INFO(logger_, "Got adapter "
+ << transport_adapter << "["
+ << transport_adapter->GetDeviceType() << "]"
+ << " by session id "
+ << active_msg->connection_key());
+
+ if (NULL == transport_adapter) {
+ std::string error_text =
+ "Transport adapter is not found - message removed";
+ LOG4CXX_ERROR(logger_, error_text);
+ RaiseEvent(&TransportManagerListener::OnTMMessageSendFailed,
+ DataSendError(error_text), active_msg);
+ message_queue_.remove(active_msg);
+ } else {
+ if (TransportAdapter::OK ==
+ transport_adapter->SendData(
+ connection->device, connection->application, active_msg)) {
+ LOG4CXX_INFO(logger_, "Data sent to adapter");
+ active_msg->set_waiting(true);
+ } else {
+ LOG4CXX_ERROR(logger_, "Data sent error");
+ RaiseEvent(&TransportManagerListener::OnTMMessageSendFailed,
+ DataSendError("Send failed - message removed"),
+ active_msg);
+ message_queue_.remove(active_msg);
+ }
+ }
+ }
+#ifndef USE_RWLOCK
+ pthread_mutex_lock(&message_queue_mutex_);
+#endif
+ }
+ pthread_cond_wait(&message_queue_cond_, &message_queue_mutex_);
+ } // while(true)
+
+ message_queue_.clear();
+
+ pthread_mutex_unlock(&message_queue_mutex_);
+ LOG4CXX_INFO(logger_, "Message queue thread finished");
+}
+
+} // namespace transport_manager
+
+
diff --git a/SDL_Core/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc b/SDL_Core/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc
new file mode 100644
index 000000000..2110ac3fc
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc
@@ -0,0 +1,79 @@
+/**
+ * \file platform_usb_device.cc
+ * \brief Libusb PlatformUsbDevice class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/usb/libusb/platform_usb_device.h"
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+PlatformUsbDevice::PlatformUsbDevice(
+ uint8_t bus_number, uint8_t address,
+ const libusb_device_descriptor& device_descriptor,
+ libusb_device* device_libusb, libusb_device_handle* device_handle_libusb)
+ : bus_number_(bus_number),
+ address_(address),
+ vendor_id_(device_descriptor.idVendor),
+ product_id_(device_descriptor.idProduct),
+ device_descriptor_(device_descriptor),
+ libusb_device_handle_(device_handle_libusb),
+ libusb_device_(device_libusb) {}
+
+std::string PlatformUsbDevice::GetDescString(uint8_t index) const {
+ unsigned char buf[128];
+ const int libusb_ret = libusb_get_string_descriptor_ascii(
+ libusb_device_handle_, index, buf, sizeof(buf));
+ if (libusb_ret < 0) {
+ LOG4CXX_INFO(logger_, "Failed to get USB string descriptor: "
+ << libusb_error_name(libusb_ret));
+ return "";
+ }
+ return std::string(reinterpret_cast<char*>(buf));
+}
+
+std::string PlatformUsbDevice::GetManufacturer() const {
+ return GetDescString(device_descriptor_.iManufacturer);
+}
+
+std::string PlatformUsbDevice::GetProductName() const {
+ return GetDescString(device_descriptor_.iProduct);
+}
+
+std::string PlatformUsbDevice::GetSerialNumber() const {
+ return GetDescString(device_descriptor_.iSerialNumber);
+}
+
+} // namespace
+} // namespace
diff --git a/SDL_Core/src/components/transport_manager/src/usb/libusb/usb_connection.cc b/SDL_Core/src/components/transport_manager/src/usb/libusb/usb_connection.cc
new file mode 100644
index 000000000..00c792de8
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/usb/libusb/usb_connection.cc
@@ -0,0 +1,313 @@
+/**
+ * \file usb_connection.cc
+ * \brief UsbConnection class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <iomanip>
+
+#include <libusb/libusb.h>
+
+#include "transport_manager/usb/libusb/usb_connection.h"
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+UsbConnection::UsbConnection(const DeviceUID& device_uid,
+ const ApplicationHandle& app_handle,
+ TransportAdapterController* controller,
+ const UsbHandlerSptr& usb_handler,
+ PlatformUsbDevice* device)
+ : device_uid_(device_uid),
+ app_handle_(app_handle),
+ controller_(controller),
+ usb_handler_(usb_handler),
+ libusb_device_(device->GetLibusbDevice()),
+ device_handle_(device->GetLibusbHandle()),
+ in_endpoint_(0),
+ in_endpoint_max_packet_size_(0),
+ out_endpoint_(0),
+ out_endpoint_max_packet_size_(0),
+ in_buffer_(0),
+ in_transfer_(0),
+ out_transfer_(0),
+ out_messages_(),
+ current_out_message_(),
+ out_messages_mutex_(),
+ bytes_sent_(0),
+ disconnecting_(false),
+ waiting_in_transfer_cancel_(false),
+ waiting_out_transfer_cancel_(false) {
+ pthread_mutex_init(&out_messages_mutex_, 0);
+}
+
+UsbConnection::~UsbConnection() {
+ Finalise();
+ if (in_transfer_) {
+ libusb_free_transfer(in_transfer_);
+ }
+ if (in_buffer_) {
+ delete[] in_buffer_;
+ }
+ pthread_mutex_destroy(&out_messages_mutex_);
+}
+
+void InTransferCallback(libusb_transfer* transfer) {
+ static_cast<UsbConnection*>(transfer->user_data)->OnInTransfer(transfer);
+}
+
+void OutTransferCallback(libusb_transfer* transfer) {
+ static_cast<UsbConnection*>(transfer->user_data)->OnOutTransfer(transfer);
+}
+
+bool UsbConnection::PostInTransfer() {
+ libusb_fill_bulk_transfer(in_transfer_, device_handle_, in_endpoint_,
+ in_buffer_, in_endpoint_max_packet_size_,
+ InTransferCallback, this, 0);
+ const int libusb_ret = libusb_submit_transfer(in_transfer_);
+ if (LIBUSB_SUCCESS != libusb_ret) {
+ LOG4CXX_ERROR(logger_, "libusb_submit_transfer failed: "
+ << libusb_error_name(libusb_ret));
+ return false;
+ }
+ return true;
+}
+
+void UsbConnection::OnInTransfer(libusb_transfer* transfer) {
+ if (transfer->status == LIBUSB_TRANSFER_COMPLETED) {
+ if (logger_->isTraceEnabled()) {
+ std::ostringstream hexdata;
+ for (int i = 0; i < transfer->actual_length; ++i) {
+ hexdata << " " << std::hex << std::setw(2) << std::setfill('0')
+ << (int)transfer->buffer[i];
+ }
+ LOG4CXX_TRACE(logger_, "USB incoming transfer, size:"
+ << transfer->actual_length
+ << ", data:" << hexdata.str());
+ }
+ RawMessageSptr data(new protocol_handler::RawMessage(
+ 0, 0, in_buffer_, transfer->actual_length));
+ controller_->DataReceiveDone(device_uid_, app_handle_, data);
+ } else {
+ LOG4CXX_ERROR(logger_, "USB transfer failed: " << transfer->status);
+ controller_->DataReceiveFailed(device_uid_, app_handle_,
+ DataReceiveError());
+ }
+ if (disconnecting_) {
+ waiting_in_transfer_cancel_ = false;
+ } else {
+ if (!PostInTransfer()) {
+ controller_->ConnectionAborted(device_uid_, app_handle_,
+ CommunicationError());
+ Disconnect();
+ }
+ }
+}
+
+void UsbConnection::PopOutMessage() {
+ bytes_sent_ = 0;
+ if (out_messages_.empty()) {
+ current_out_message_.reset();
+ } else {
+ current_out_message_ = out_messages_.front();
+ out_messages_.pop_front();
+ PostOutTransfer();
+ }
+}
+
+bool UsbConnection::PostOutTransfer() {
+ out_transfer_ = libusb_alloc_transfer(0);
+ if (0 == out_transfer_) {
+ LOG4CXX_ERROR(logger_, "libusb_alloc_transfer failed");
+ return false;
+ }
+ libusb_fill_bulk_transfer(out_transfer_, device_handle_, out_endpoint_,
+ current_out_message_->data() + bytes_sent_,
+ current_out_message_->data_size() - bytes_sent_,
+ OutTransferCallback, this, 0);
+ const int libusb_ret = libusb_submit_transfer(out_transfer_);
+ if (LIBUSB_SUCCESS != libusb_ret) {
+ LOG4CXX_ERROR(logger_, "libusb_submit_transfer failed: "
+ << libusb_error_name(libusb_ret));
+ controller_->ConnectionAborted(device_uid_, app_handle_,
+ CommunicationError());
+ Disconnect();
+ return false;
+ }
+ return true;
+}
+
+void UsbConnection::OnOutTransfer(libusb_transfer* transfer) {
+ pthread_mutex_lock(&out_messages_mutex_);
+ if (transfer->status == LIBUSB_TRANSFER_COMPLETED) {
+ bytes_sent_ += transfer->actual_length;
+ if (bytes_sent_ == current_out_message_->data_size()) {
+ LOG4CXX_INFO(logger_, "USB out transfer, data sent: "
+ << current_out_message_.get());
+ controller_->DataSendDone(device_uid_, app_handle_, current_out_message_);
+ PopOutMessage();
+ }
+ } else {
+ LOG4CXX_ERROR(logger_, "USB transfer failed: " << transfer->status);
+ controller_->DataSendFailed(device_uid_, app_handle_, current_out_message_,
+ DataSendError());
+ PopOutMessage();
+ }
+ libusb_free_transfer(transfer);
+ out_transfer_ = 0;
+ pthread_mutex_unlock(&out_messages_mutex_);
+ waiting_out_transfer_cancel_ = false;
+}
+
+TransportAdapter::Error UsbConnection::SendData(RawMessageSptr message) {
+ if (disconnecting_) {
+ return TransportAdapter::BAD_STATE;
+ }
+ pthread_mutex_lock(&out_messages_mutex_);
+ if (current_out_message_.valid()) {
+ out_messages_.push_back(message);
+ } else {
+ current_out_message_ = message;
+ if (!PostOutTransfer()) {
+ controller_->DataSendFailed(device_uid_, app_handle_, message,
+ DataSendError());
+ }
+ }
+ pthread_mutex_unlock(&out_messages_mutex_);
+ return TransportAdapter::OK;
+}
+
+void UsbConnection::Finalise() {
+ LOG4CXX_INFO(logger_, "Finalise USB connection " << device_uid_);
+ pthread_mutex_lock(&out_messages_mutex_);
+ disconnecting_ = true;
+ if (out_transfer_) {
+ waiting_out_transfer_cancel_ = true;
+ if (LIBUSB_SUCCESS != libusb_cancel_transfer(out_transfer_)) {
+ waiting_out_transfer_cancel_ = false;
+ }
+ }
+ if (in_transfer_) {
+ waiting_in_transfer_cancel_ = true;
+ if (LIBUSB_SUCCESS != libusb_cancel_transfer(in_transfer_)) {
+ waiting_in_transfer_cancel_ = false;
+ }
+ }
+ for (std::list<RawMessageSptr>::iterator it = out_messages_.begin();
+ it != out_messages_.end(); it = out_messages_.erase(it)) {
+ controller_->DataSendFailed(device_uid_, app_handle_, *it, DataSendError());
+ }
+ pthread_mutex_unlock(&out_messages_mutex_);
+
+ while (waiting_in_transfer_cancel_ || waiting_out_transfer_cancel_) {
+ pthread_yield();
+ }
+}
+
+TransportAdapter::Error UsbConnection::Disconnect() {
+ Finalise();
+ LOG4CXX_INFO(logger_, "USB disconnect done " << device_uid_);
+ controller_->DisconnectDone(device_uid_, app_handle_);
+ return TransportAdapter::OK;
+}
+
+bool UsbConnection::Init() {
+ if (!FindEndpoints()) {
+ return false;
+ }
+
+ in_buffer_ = new unsigned char[in_endpoint_max_packet_size_];
+ if (0 == in_buffer_) {
+ LOG4CXX_ERROR(logger_, "in buffer allocation failed (size "
+ << in_endpoint_max_packet_size_ << ")");
+ return false;
+ }
+
+ in_transfer_ = libusb_alloc_transfer(0);
+ if (0 == in_transfer_) {
+ LOG4CXX_ERROR(logger_, "libusb_alloc_transfer failed");
+ return false;
+ }
+
+ controller_->ConnectDone(device_uid_, app_handle_);
+ if (!PostInTransfer()) {
+ controller_->ConnectionAborted(device_uid_, app_handle_,
+ CommunicationError());
+ return true;
+ }
+
+ return true;
+}
+
+bool UsbConnection::FindEndpoints() {
+ struct libusb_config_descriptor* config;
+ const int libusb_ret =
+ libusb_get_active_config_descriptor(libusb_device_, &config);
+ if (LIBUSB_SUCCESS != libusb_ret) {
+ LOG4CXX_ERROR(logger_, "libusb_get_active_config_descriptor failed: "
+ << libusb_error_name(libusb_ret));
+ return false;
+ }
+
+ bool find_in_endpoint = true;
+ bool find_out_endpoint = true;
+
+ for (int i = 0; i < config->bNumInterfaces; ++i) {
+ const libusb_interface& interface = config->interface[i];
+ for (int i = 0; i < interface.num_altsetting; ++i) {
+ const libusb_interface_descriptor& iface_desc = interface.altsetting[i];
+ for (int i = 0; i < iface_desc.bNumEndpoints; ++i) {
+ const libusb_endpoint_descriptor& endpoint_desc =
+ iface_desc.endpoint[i];
+
+ const uint8_t endpoint_dir =
+ endpoint_desc.bEndpointAddress & LIBUSB_ENDPOINT_DIR_MASK;
+ if (find_in_endpoint && endpoint_dir == LIBUSB_ENDPOINT_IN) {
+ in_endpoint_ = endpoint_desc.bEndpointAddress;
+ in_endpoint_max_packet_size_ = endpoint_desc.wMaxPacketSize;
+ find_in_endpoint = false;
+ } else if (find_out_endpoint && endpoint_dir == LIBUSB_ENDPOINT_OUT) {
+ out_endpoint_ = endpoint_desc.bEndpointAddress;
+ out_endpoint_max_packet_size_ = endpoint_desc.wMaxPacketSize;
+ find_out_endpoint = false;
+ }
+ }
+ }
+ }
+ libusb_free_config_descriptor(config);
+
+ return !(find_in_endpoint || find_out_endpoint);
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/usb/libusb/usb_handler.cc b/SDL_Core/src/components/transport_manager/src/usb/libusb/usb_handler.cc
new file mode 100644
index 000000000..88c4ee1da
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/usb/libusb/usb_handler.cc
@@ -0,0 +1,418 @@
+/**
+ * \file usb_handler.cc
+ * \brief UsbHandler class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <cstring>
+#include <cstdlib>
+
+#include "transport_manager/usb/common.h"
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class UsbHandler::ControlTransferSequenceState {
+ public:
+ ControlTransferSequenceState(class UsbHandler* usb_handler,
+ UsbControlTransferSequence* sequence,
+ PlatformUsbDevice* device);
+ ~ControlTransferSequenceState();
+ void Finish();
+ bool Finished() const { return finished_; }
+ UsbControlTransfer* CurrentTransfer();
+ UsbControlTransfer* Next();
+ UsbHandler* usb_handler() const { return usb_handler_; }
+ PlatformUsbDevice* device() const { return device_; }
+
+ private:
+ UsbHandler* usb_handler_;
+ PlatformUsbDevice* device_;
+ bool finished_;
+ UsbControlTransferSequence* sequence_;
+ UsbControlTransferSequence::Transfers::const_iterator current_transfer_;
+};
+
+UsbHandler::UsbHandler()
+ : shutdown_requested_(false),
+ thread_(),
+ usb_device_listeners_(),
+ devices_(),
+ transfer_sequences_(),
+ device_handles_to_close_(),
+ libusb_context_(NULL),
+ arrived_callback_handle_(),
+ left_callback_handle_() {}
+
+UsbHandler::~UsbHandler() {
+ shutdown_requested_ = true;
+ if (libusb_context_ != 0) {
+ libusb_hotplug_deregister_callback(libusb_context_,
+ arrived_callback_handle_);
+ libusb_hotplug_deregister_callback(libusb_context_, left_callback_handle_);
+ }
+ pthread_join(thread_, 0);
+ LOG4CXX_INFO(logger_, "UsbHandler thread finished");
+ if (libusb_context_) {
+ libusb_exit(libusb_context_);
+ libusb_context_ = 0;
+ }
+}
+
+void UsbHandler::DeviceArrived(libusb_device* device_libusb) {
+ const uint8_t bus_number = libusb_get_bus_number(device_libusb);
+ const uint8_t device_address = libusb_get_device_address(device_libusb);
+ libusb_device_descriptor descriptor;
+ int libusb_ret = libusb_get_device_descriptor(device_libusb, &descriptor);
+ if (LIBUSB_SUCCESS != libusb_ret) {
+ LOG4CXX_ERROR(logger_,
+ "libusb_get_device_descriptor failed: " << libusb_ret);
+ return;
+ }
+
+ libusb_device_handle* device_handle_libusb;
+ libusb_ret = libusb_open(device_libusb, &device_handle_libusb);
+ if (libusb_ret != LIBUSB_SUCCESS) {
+ LOG4CXX_ERROR(logger_,
+ "libusb_open failed: " << libusb_error_name(libusb_ret));
+ return;
+ }
+
+ int configuration;
+ libusb_ret = libusb_get_configuration(device_handle_libusb, &configuration);
+ if (LIBUSB_SUCCESS != libusb_ret) {
+ LOG4CXX_INFO(
+ logger_,
+ "libusb_get_configuration failed: " << libusb_error_name(libusb_ret));
+ return;
+ }
+
+ if (configuration != kUsbConfiguration) {
+ libusb_ret = libusb_set_configuration(device_handle_libusb, kUsbConfiguration);
+ if (LIBUSB_SUCCESS != libusb_ret) {
+ LOG4CXX_INFO(
+ logger_,
+ "libusb_set_configuration failed: " << libusb_error_name(libusb_ret));
+ return;
+ }
+ }
+
+ libusb_ret = libusb_claim_interface(device_handle_libusb, 0);
+ if (LIBUSB_SUCCESS != libusb_ret) {
+ LOG4CXX_INFO(logger_, "libusb_claim_interface failed: "
+ << libusb_error_name(libusb_ret));
+ CloseDeviceHandle(device_handle_libusb);
+ return;
+ }
+
+ PlatformUsbDevice* device(new PlatformUsbDevice(bus_number, device_address,
+ descriptor, device_libusb,
+ device_handle_libusb));
+ devices_.push_back(device);
+
+ for (std::list<UsbDeviceListener*>::iterator it =
+ usb_device_listeners_.begin();
+ it != usb_device_listeners_.end(); ++it) {
+ (*it)->OnDeviceArrived(device);
+ }
+}
+
+void UsbHandler::DeviceLeft(libusb_device* device_libusb) {
+ PlatformUsbDevice* device = NULL;
+ for (Devices::iterator it = devices_.begin(); it != devices_.end(); ++it) {
+ if ((*it)->GetLibusbDevice() == device_libusb) {
+ device = *it;
+ break;
+ }
+ }
+ if (NULL == device) {
+ return;
+ }
+
+ for (std::list<UsbDeviceListener*>::iterator it =
+ usb_device_listeners_.begin();
+ it != usb_device_listeners_.end(); ++it) {
+ (*it)->OnDeviceLeft(device);
+ }
+
+ for (Devices::iterator it = devices_.begin(); it != devices_.end(); ++it) {
+ if ((*it)->GetLibusbDevice() == device_libusb) {
+ devices_.erase(it);
+ break;
+ }
+ }
+
+ if (device->GetLibusbHandle()) {
+ libusb_release_interface(device->GetLibusbHandle(), 0);
+ CloseDeviceHandle(device->GetLibusbHandle());
+ }
+ delete device;
+}
+
+void UsbHandler::StartControlTransferSequence(
+ UsbControlTransferSequence* sequence, PlatformUsbDevice* device) {
+ TransferSequences::iterator it = transfer_sequences_.insert(
+ transfer_sequences_.end(),
+ new ControlTransferSequenceState(this, sequence, device));
+ SubmitControlTransfer(*it);
+}
+
+void UsbHandler::CloseDeviceHandle(libusb_device_handle* device_handle) {
+ device_handles_to_close_.push_back(device_handle);
+}
+
+void* UsbHandlerThread(void* data) {
+ static_cast<UsbHandler*>(data)->Thread();
+ return 0;
+}
+
+int ArrivedCallback(libusb_context* context, libusb_device* device,
+ libusb_hotplug_event event, void* data) {
+ LOG4CXX_INFO(logger_, "libusb device arrived (bus number "
+ << static_cast<int>(libusb_get_bus_number(device))
+ << ", device address "
+ << static_cast<int>(
+ libusb_get_device_address(device)) << ")");
+ UsbHandler* usb_handler = static_cast<UsbHandler*>(data);
+ usb_handler->DeviceArrived(device);
+ return 0;
+}
+
+int LeftCallback(libusb_context* context, libusb_device* device,
+ libusb_hotplug_event event, void* data) {
+ LOG4CXX_INFO(logger_, "libusb device left (bus number "
+ << static_cast<int>(libusb_get_bus_number(device))
+ << ", device address "
+ << static_cast<int>(
+ libusb_get_device_address(device)) << ")");
+ UsbHandler* usb_handler = static_cast<UsbHandler*>(data);
+ usb_handler->DeviceLeft(device);
+ return 0;
+}
+
+TransportAdapter::Error UsbHandler::Init() {
+ int libusb_ret = libusb_init(&libusb_context_);
+
+ if (LIBUSB_SUCCESS != libusb_ret) {
+ LOG4CXX_ERROR(logger_, "libusb_init failed: " << libusb_ret);
+ return TransportAdapter::FAIL;
+ }
+
+ if (!libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)) {
+ LOG4CXX_ERROR(logger_, "LIBUSB_CAP_HAS_HOTPLUG not supported");
+ return TransportAdapter::FAIL;
+ }
+
+ libusb_ret = libusb_hotplug_register_callback(
+ libusb_context_, LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED,
+ LIBUSB_HOTPLUG_ENUMERATE, LIBUSB_HOTPLUG_MATCH_ANY,
+ LIBUSB_HOTPLUG_MATCH_ANY, LIBUSB_HOTPLUG_MATCH_ANY, ArrivedCallback, this,
+ &arrived_callback_handle_);
+
+ if (LIBUSB_SUCCESS != libusb_ret) {
+ LOG4CXX_ERROR(logger_,
+ "libusb_hotplug_register_callback failed: " << libusb_ret);
+ return TransportAdapter::FAIL;
+ }
+
+ libusb_ret = libusb_hotplug_register_callback(
+ libusb_context_, LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT,
+ static_cast<libusb_hotplug_flag>(0), LIBUSB_HOTPLUG_MATCH_ANY,
+ LIBUSB_HOTPLUG_MATCH_ANY, LIBUSB_HOTPLUG_MATCH_ANY, LeftCallback, this,
+ &left_callback_handle_);
+
+ if (LIBUSB_SUCCESS != libusb_ret) {
+ LOG4CXX_ERROR(logger_,
+ "libusb_hotplug_register_callback failed: " << libusb_ret);
+ return TransportAdapter::FAIL;
+ }
+
+ const int thread_start_error =
+ pthread_create(&thread_, 0, &UsbHandlerThread, this);
+ if (0 == thread_start_error) {
+ LOG4CXX_INFO(logger_, "UsbHandler thread started");
+ return TransportAdapter::OK;
+ } else {
+ LOG4CXX_ERROR(logger_, "USB device scanner thread start failed, error code "
+ << thread_start_error);
+ return TransportAdapter::FAIL;
+ }
+}
+
+void UsbHandler::Thread() {
+ int completed = 0;
+ while (!shutdown_requested_) {
+ libusb_handle_events_completed(libusb_context_, &completed);
+
+ for (TransferSequences::iterator it = transfer_sequences_.begin();
+ it != transfer_sequences_.end();) {
+ ControlTransferSequenceState* sequence_state = *it;
+ if (sequence_state->Finished()) {
+ delete *it;
+ it = transfer_sequences_.erase(it);
+ } else {
+ ++it;
+ }
+ }
+
+ for (std::list<libusb_device_handle*>::iterator it =
+ device_handles_to_close_.begin();
+ it != device_handles_to_close_.end();
+ it = device_handles_to_close_.erase(it)) {
+ libusb_close(*it);
+ }
+ }
+}
+
+void UsbTransferSequenceCallback(libusb_transfer* transfer) {
+ UsbHandler::ControlTransferSequenceState* sequence_state =
+ static_cast<UsbHandler::ControlTransferSequenceState*>(transfer->user_data);
+ sequence_state->usb_handler()->ControlTransferCallback(transfer);
+}
+
+void UsbHandler::SubmitControlTransfer(
+ ControlTransferSequenceState* sequence_state) {
+ UsbControlTransfer* transfer = sequence_state->CurrentTransfer();
+ if (NULL == transfer) return;
+
+ libusb_transfer* libusb_transfer = libusb_alloc_transfer(0);
+ if (0 == libusb_transfer) {
+ LOG4CXX_ERROR(logger_, "libusb_alloc_transfer failed");
+ sequence_state->Finish();
+ return;
+ }
+
+ assert(transfer->Type() == UsbControlTransfer::VENDOR);
+ const libusb_request_type request_type = LIBUSB_REQUEST_TYPE_VENDOR;
+
+ libusb_endpoint_direction endpoint_direction;
+ if (transfer->Direction() == UsbControlTransfer::IN) {
+ endpoint_direction = LIBUSB_ENDPOINT_IN;
+ } else if (transfer->Direction() == UsbControlTransfer::OUT) {
+ endpoint_direction = LIBUSB_ENDPOINT_OUT;
+ } else {
+ assert(0);
+ }
+ const uint8_t request = transfer->Request();
+ const uint16_t value = transfer->Value();
+ const uint16_t index = transfer->Index();
+ const uint16_t length = transfer->Length();
+
+ unsigned char* buffer =
+ static_cast<unsigned char*>(malloc(length + LIBUSB_CONTROL_SETUP_SIZE));
+ if (NULL == buffer) {
+ LOG4CXX_ERROR(logger_, "buffer allocation failed");
+ libusb_free_transfer(libusb_transfer);
+ sequence_state->Finish();
+ return;
+ }
+
+ libusb_fill_control_setup(buffer, request_type | endpoint_direction, request,
+ value, index, length);
+
+ if (0 != length && endpoint_direction == LIBUSB_ENDPOINT_OUT) {
+ const char* data = static_cast<UsbControlOutTransfer*>(transfer)->Data();
+ memcpy(buffer + LIBUSB_CONTROL_SETUP_SIZE, data, length);
+ }
+ libusb_fill_control_transfer(
+ libusb_transfer, sequence_state->device()->GetLibusbHandle(), buffer,
+ UsbTransferSequenceCallback, sequence_state, 0);
+ libusb_transfer->flags = LIBUSB_TRANSFER_FREE_BUFFER;
+
+ const int libusb_ret = libusb_submit_transfer(libusb_transfer);
+ if (LIBUSB_SUCCESS != libusb_ret) {
+ LOG4CXX_ERROR(logger_, "libusb_submit_transfer failed: "
+ << libusb_error_name(libusb_ret));
+ libusb_free_transfer(libusb_transfer);
+ sequence_state->Finish();
+ }
+}
+
+void UsbHandler::ControlTransferCallback(libusb_transfer* transfer) {
+ ControlTransferSequenceState* sequence_state =
+ static_cast<ControlTransferSequenceState*>(transfer->user_data);
+ if (transfer->status == LIBUSB_TRANSFER_COMPLETED) {
+ LOG4CXX_INFO(logger_, "USB control transfer completed");
+ UsbControlTransfer* current_transfer = sequence_state->CurrentTransfer();
+ bool submit_next = true;
+ if (current_transfer &&
+ current_transfer->Direction() == UsbControlTransfer::IN) {
+ submit_next =
+ static_cast<UsbControlInTransfer*>(current_transfer)
+ ->OnCompleted(libusb_control_transfer_get_data(transfer));
+ }
+
+ sequence_state->Next();
+ if (submit_next && !sequence_state->Finished()) {
+ SubmitControlTransfer(sequence_state);
+ } else {
+ sequence_state->Finish();
+ }
+ } else {
+ LOG4CXX_ERROR(logger_, "USB control transfer failed: " << transfer->status);
+ sequence_state->Finish();
+ }
+ libusb_free_transfer(transfer);
+}
+
+UsbHandler::ControlTransferSequenceState::ControlTransferSequenceState(
+ UsbHandler* usb_handler, UsbControlTransferSequence* sequence,
+ PlatformUsbDevice* device)
+ : usb_handler_(usb_handler),
+ device_(device),
+ finished_(false),
+ sequence_(sequence),
+ current_transfer_(sequence->transfers().begin()) {}
+
+UsbHandler::ControlTransferSequenceState::~ControlTransferSequenceState() {
+ delete sequence_;
+}
+
+UsbControlTransfer* UsbHandler::ControlTransferSequenceState::Next() {
+ if (finished_) return NULL;
+ if (++current_transfer_ == sequence_->transfers().end()) {
+ Finish();
+ return NULL;
+ } else {
+ return *current_transfer_;
+ }
+}
+
+UsbControlTransfer* UsbHandler::ControlTransferSequenceState::CurrentTransfer() {
+ return finished_ ? NULL : *current_transfer_;
+}
+
+void UsbHandler::ControlTransferSequenceState::Finish() { finished_ = true; }
+
+} // namespace
+} // namespace
diff --git a/SDL_Core/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc b/SDL_Core/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc
new file mode 100644
index 000000000..c17c2aab6
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc
@@ -0,0 +1,75 @@
+/**
+ * \file platform_usb_device.cc
+ * \brief QNX PlatformUsbDevice class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/usb/qnx/platform_usb_device.h"
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+PlatformUsbDevice::PlatformUsbDevice(
+ usbd_device_instance_t* instance, usbd_device* device,
+ const usbd_device_descriptor_t& device_descriptor)
+ : bus_number_(instance->path),
+ address_(instance->devno),
+ vendor_id_(instance->ident.vendor),
+ product_id_(instance->ident.device),
+ device_descriptor_(device_descriptor),
+ usbd_device_instance_(*instance),
+ usbd_device_(device) {}
+
+std::string PlatformUsbDevice::GetDescString(uint8_t index) const {
+ char* str = usbd_string(usbd_device_, index, 0);
+ if (NULL == str) {
+ LOG4CXX_INFO(logger_, "Failed to get USB string descriptor");
+ return "";
+ }
+ return std::string(str);
+}
+
+std::string PlatformUsbDevice::GetManufacturer() const {
+ return GetDescString(device_descriptor_.iManufacturer);
+}
+
+std::string PlatformUsbDevice::GetProductName() const {
+ return GetDescString(device_descriptor_.iProduct);
+}
+
+std::string PlatformUsbDevice::GetSerialNumber() const {
+ return GetDescString(device_descriptor_.iSerialNumber);
+}
+
+} // namespace
+} // namespace
diff --git a/SDL_Core/src/components/transport_manager/src/usb/qnx/usb_connection.cc b/SDL_Core/src/components/transport_manager/src/usb/qnx/usb_connection.cc
new file mode 100644
index 000000000..dec5267ba
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/usb/qnx/usb_connection.cc
@@ -0,0 +1,399 @@
+/**
+ * \file usb_connection.cc
+ * \brief UsbConnection class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sched.h>
+#include <cstring>
+
+#include "transport_manager/usb/qnx/usb_connection.h"
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+UsbConnection::UsbConnection(const DeviceUID& device_uid,
+ const ApplicationHandle& app_handle,
+ TransportAdapterController* controller,
+ const UsbHandlerSptr& libusb_handler,
+ PlatformUsbDevice* device)
+ : device_uid_(device_uid),
+ app_handle_(app_handle),
+ controller_(controller),
+ libusb_handler_(libusb_handler),
+ usbd_device_(device->GetUsbdDevice()),
+ in_pipe_(NULL),
+ out_pipe_(NULL),
+ in_buffer_(NULL),
+ in_urb_(NULL),
+ out_urb_(NULL),
+ out_messages_(),
+ current_out_message_(),
+ out_messages_mutex_(),
+ bytes_sent_(0),
+ disconnecting_(false),
+ pending_in_transfer_(false),
+ pending_out_transfer_(false) {
+ pthread_mutex_init(&out_messages_mutex_, 0);
+}
+
+UsbConnection::~UsbConnection() {
+ Finalise();
+ if (in_urb_) usbd_free_urb(in_urb_);
+ if (out_urb_) usbd_free_urb(out_urb_);
+
+ if (in_pipe_) {
+ const int close_pipe_rc = usbd_close_pipe(in_pipe_);
+ if (EOK != close_pipe_rc) {
+ LOG4CXX_ERROR(logger_, "Failed to close pipe: " << close_pipe_rc);
+ }
+ }
+ if (out_pipe_) {
+ const int close_pipe_rc = usbd_close_pipe(out_pipe_);
+ if (EOK != close_pipe_rc) {
+ LOG4CXX_ERROR(logger_, "Failed to close pipe: " << close_pipe_rc);
+ }
+ }
+
+ pthread_mutex_destroy(&out_messages_mutex_);
+}
+
+void InTransferCallback(usbd_urb* urb, usbd_pipe*, void* data) {
+ static_cast<UsbConnection*>(data)->OnInTransfer(urb);
+}
+
+void OutTransferCallback(usbd_urb* urb, usbd_pipe*, void* data) {
+ static_cast<UsbConnection*>(data)->OnOutTransfer(urb);
+}
+
+bool UsbConnection::PostInTransfer() {
+ usbd_setup_bulk(in_urb_, URB_DIR_IN, in_buffer_, kInBufferSize);
+ pending_in_transfer_ = true;
+ const int io_rc =
+ usbd_io(in_urb_, in_pipe_, InTransferCallback, this, USBD_TIME_INFINITY);
+ if (EOK != io_rc) {
+ pending_in_transfer_ = false;
+ LOG4CXX_ERROR(logger_, "Failed to post in transfer: " << io_rc);
+ return false;
+ }
+ return true;
+}
+
+void UsbConnection::OnInTransfer(usbd_urb* urb) {
+ uint32_t status = 0;
+ uint32_t len = 0;
+ bool error = false;
+ const int urb_status_rc = usbd_urb_status(urb, &status, &len);
+ if (EOK != urb_status_rc && EIO != urb_status_rc) { // EIO is OK
+ LOG4CXX_ERROR(logger_, "Get in urb status failed: " << urb_status_rc);
+ error = true;
+ }
+ LOG4CXX_INFO(logger_, "USB in transfer, status " << std::hex << status
+ << ", length " << std::dec
+ << len);
+
+ if (!error) {
+ const uint32_t urb_status = status & USBD_URB_STATUS_MASK;
+ switch (status) {
+ case USBD_STATUS_CMP:
+ case USBD_STATUS_CMP_ERR | USBD_STATUS_DATA_UNDERRUN:
+ error = false;
+ break;
+ default:
+ error = true;
+ break;
+ }
+ }
+
+ if (error) {
+ LOG4CXX_ERROR(logger_, "USB in transfer failed");
+ controller_->DataReceiveFailed(device_uid_, app_handle_,
+ DataReceiveError());
+ } else {
+ RawMessageSptr msg(new protocol_handler::RawMessage(0, 0, in_buffer_, len));
+ controller_->DataReceiveDone(device_uid_, app_handle_, msg);
+ }
+
+ pending_in_transfer_ = false;
+ if (!disconnecting_) {
+ if (!PostInTransfer()) {
+ controller_->ConnectionAborted(device_uid_, app_handle_,
+ CommunicationError());
+ Disconnect();
+ }
+ }
+}
+
+void UsbConnection::PopOutMessage() {
+ bytes_sent_ = 0;
+ if (out_messages_.empty()) {
+ current_out_message_.reset();
+ } else {
+ current_out_message_ = out_messages_.front();
+ out_messages_.pop_front();
+ }
+}
+
+bool UsbConnection::PostOutTransfer() {
+ const int len = current_out_message_->data_size() - bytes_sent_;
+ out_buffer_ = usbd_alloc(len);
+ memmove(out_buffer_, current_out_message_->data() + bytes_sent_, len);
+ usbd_setup_bulk(out_urb_, URB_DIR_OUT, out_buffer_, len);
+ LOG4CXX_INFO(logger_, "out transfer :" << len);
+ pending_out_transfer_ = true;
+ const int io_rc = usbd_io(out_urb_, out_pipe_, OutTransferCallback, this,
+ USBD_TIME_INFINITY);
+ if (EOK != io_rc) {
+ pending_out_transfer_ = false;
+ usbd_free(out_buffer_);
+ LOG4CXX_ERROR(logger_, "Failed to post out transfer: " << io_rc);
+ return false;
+ }
+ return true;
+}
+
+void UsbConnection::OnOutTransfer(usbd_urb* urb) {
+ usbd_free(out_buffer_);
+ uint32_t status = 0;
+ uint32_t len = 0;
+ bool error = false;
+ const int urb_status_rc = usbd_urb_status(urb, &status, &len);
+ if (EOK != urb_status_rc && EIO != urb_status_rc) { // EIO is OK
+ LOG4CXX_ERROR(logger_, "Get out urb status failed: " << urb_status_rc);
+ error = true;
+ }
+ LOG4CXX_INFO(logger_, "USB out transfer, status " << std::hex << status
+ << ", length " << std::dec
+ << len);
+
+ if (!error) {
+ const uint32_t urb_status = status & USBD_URB_STATUS_MASK;
+ switch (status) {
+ case USBD_STATUS_CMP:
+ case USBD_STATUS_CMP_ERR | USBD_STATUS_DATA_UNDERRUN:
+ error = false;
+ break;
+ default:
+ error = true;
+ break;
+ }
+ }
+
+ pthread_mutex_lock(&out_messages_mutex_);
+
+ if (error) {
+ LOG4CXX_ERROR(logger_, "USB out transfer failed");
+ controller_->DataSendFailed(device_uid_, app_handle_, current_out_message_,
+ DataSendError());
+ PopOutMessage();
+ } else {
+ bytes_sent_ += len;
+ if (bytes_sent_ == current_out_message_->data_size()) {
+ LOG4CXX_INFO(logger_, "USB out transfer, data sent: "
+ << current_out_message_.get());
+ controller_->DataSendDone(device_uid_, app_handle_, current_out_message_);
+ PopOutMessage();
+ }
+ }
+
+ if ((!disconnecting_) && current_out_message_.valid()) {
+ PostOutTransfer();
+ } else {
+ pending_out_transfer_ = false;
+ }
+ pthread_mutex_unlock(&out_messages_mutex_);
+}
+
+TransportAdapter::Error UsbConnection::SendData(RawMessageSptr message) {
+ if (disconnecting_) {
+ return TransportAdapter::BAD_STATE;
+ }
+ pthread_mutex_lock(&out_messages_mutex_);
+ if (current_out_message_.valid()) {
+ out_messages_.push_back(message);
+ } else {
+ current_out_message_ = message;
+ if (!PostOutTransfer()) {
+ controller_->DataSendFailed(device_uid_, app_handle_, message,
+ DataSendError());
+ }
+ }
+ pthread_mutex_unlock(&out_messages_mutex_);
+ return TransportAdapter::OK;
+}
+
+void UsbConnection::Finalise() {
+ LOG4CXX_INFO(logger_, "Finalising");
+ pthread_mutex_lock(&out_messages_mutex_);
+ disconnecting_ = true;
+ usbd_abort_pipe(in_pipe_);
+ usbd_abort_pipe(out_pipe_);
+ for (std::list<RawMessageSptr>::iterator it = out_messages_.begin();
+ it != out_messages_.end(); it = out_messages_.erase(it)) {
+ controller_->DataSendFailed(device_uid_, app_handle_, *it, DataSendError());
+ }
+ pthread_mutex_unlock(&out_messages_mutex_);
+ while (pending_in_transfer_ || pending_out_transfer_) sched_yield();
+}
+
+TransportAdapter::Error UsbConnection::Disconnect() {
+ LOG4CXX_INFO(logger_, "Disconnecting");
+ Finalise();
+ controller_->DisconnectDone(device_uid_, app_handle_);
+ return TransportAdapter::OK;
+}
+
+bool UsbConnection::Init() {
+ if (!OpenEndpoints()) return false;
+
+ in_urb_ = usbd_alloc_urb(NULL);
+ out_urb_ = usbd_alloc_urb(NULL);
+ if (NULL == in_urb_ || NULL == out_urb_) {
+ LOG4CXX_ERROR(logger_, "usbd_alloc_urb failed");
+ return false;
+ }
+
+ in_buffer_ = static_cast<unsigned char*>(usbd_alloc(kInBufferSize));
+ if (NULL == in_buffer_) {
+ LOG4CXX_ERROR(logger_, "usbd_alloc failed");
+ return false;
+ }
+
+ controller_->ConnectDone(device_uid_, app_handle_);
+
+ if (!PostInTransfer()) {
+ controller_->ConnectionAborted(device_uid_, app_handle_,
+ CommunicationError());
+ return true;
+ }
+
+ return true;
+}
+
+bool UsbConnection::OpenEndpoints() {
+ usbd_descriptors_t* in_endpoint_desc = NULL;
+ usbd_descriptors_t* out_endpoint_desc = NULL;
+
+ usbd_desc_node* device_desc_node = NULL;
+ usbd_device_descriptor_t* device_desc =
+ usbd_device_descriptor(usbd_device_, &device_desc_node);
+ if (0 == device_desc) {
+ LOG4CXX_ERROR(logger_, "Device descriptor not found");
+ return false;
+ }
+ usbd_desc_node* cfg_desc_node = NULL;
+ usbd_descriptors_t* config_desc = NULL;
+ usbd_descriptors_t* iface_desc = NULL;
+ int cfg = 0;
+ bool found = false;
+ while (!found) {
+ config_desc =
+ usbd_parse_descriptors(usbd_device_, device_desc_node,
+ USB_DESC_CONFIGURATION, cfg++, &cfg_desc_node);
+ if (config_desc == NULL) {
+ break;
+ }
+ LOG4CXX_INFO(logger_, "USB configuration "
+ << static_cast<int>(config_desc->configuration
+ .bConfigurationValue));
+ int iface = 0;
+ usbd_desc_node* iface_desc_node;
+ while (!found) {
+ iface_desc =
+ usbd_parse_descriptors(usbd_device_, cfg_desc_node,
+ USB_DESC_INTERFACE, iface++, &iface_desc_node);
+ if (iface_desc == NULL) {
+ break;
+ }
+ const uint8_t interface_number = iface_desc->interface.bInterfaceNumber;
+ const uint8_t interface_subclass =
+ iface_desc->interface.bInterfaceSubClass;
+ LOG4CXX_INFO(logger_, "USB interface number "
+ << static_cast<int>(interface_number)
+ << ", subclass " << std::hex
+ << static_cast<int>(interface_subclass)
+ << std::dec);
+ if (interface_subclass != 0xff) {
+ continue;
+ }
+ int endpoint = 0;
+ in_endpoint_desc = NULL;
+ out_endpoint_desc = NULL;
+ while (true) {
+ usbd_descriptors_t* endpoint_desc = usbd_parse_descriptors(
+ usbd_device_, iface_desc_node, USB_DESC_ENDPOINT, endpoint++, NULL);
+ if (NULL == endpoint_desc) break;
+ const uint8_t attributes = endpoint_desc->endpoint.bmAttributes;
+ if ((attributes & 0x03) == USB_ATTRIB_BULK) {
+ const uint8_t endpoint_address =
+ endpoint_desc->endpoint.bEndpointAddress;
+ LOG4CXX_INFO(logger_, "Endpoint with address "
+ << std::hex
+ << static_cast<int>(endpoint_address)
+ << std::dec << " found");
+ if (endpoint_address & USB_ENDPOINT_IN) {
+ if (NULL == in_endpoint_desc) {
+ in_endpoint_desc = endpoint_desc;
+ }
+ } else {
+ if (NULL == out_endpoint_desc) {
+ out_endpoint_desc = endpoint_desc;
+ }
+ }
+ }
+ }
+ if (in_endpoint_desc != NULL && out_endpoint_desc != NULL) {
+ found = true;
+ }
+ }
+ }
+
+ if (!found) return false;
+
+ int open_pipe_rc = usbd_open_pipe(usbd_device_, in_endpoint_desc, &in_pipe_);
+ if (EOK != open_pipe_rc) {
+ LOG4CXX_ERROR(logger_, "Cannot open input pipe, error " << open_pipe_rc);
+ return false;
+ }
+
+ open_pipe_rc = usbd_open_pipe(usbd_device_, out_endpoint_desc, &out_pipe_);
+ if (EOK != open_pipe_rc) {
+ LOG4CXX_ERROR(logger_, "Cannot open output pipe, error " << open_pipe_rc);
+ return false;
+ }
+
+ return true;
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/usb/qnx/usb_handler.cc b/SDL_Core/src/components/transport_manager/src/usb/qnx/usb_handler.cc
new file mode 100644
index 000000000..ccb9cd0d5
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/usb/qnx/usb_handler.cc
@@ -0,0 +1,296 @@
+/**
+ * \file usb_handler.cc
+ * \brief UsbHandler class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <cstring>
+#include <cstdlib>
+
+#include "transport_manager/usb/common.h"
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+namespace {
+UsbHandler* usb_handler;
+}
+
+UsbHandler::UsbHandler()
+ : usb_device_listeners_(),
+ devices_(),
+ usbd_general_connection_(NULL),
+ usbd_aoa_connection_(NULL) {
+ usb_handler = this;
+}
+
+UsbHandler::~UsbHandler() {
+ usb_handler = NULL;
+ if (usbd_general_connection_) {
+ const int disconnect_rc = usbd_disconnect(usbd_general_connection_);
+ if (EOK != disconnect_rc) {
+ LOG4CXX_ERROR(logger_, "usbd_disconnect failed, error code "
+ << disconnect_rc);
+ }
+ }
+ if (usbd_aoa_connection_) {
+ const int disconnect_rc = usbd_disconnect(usbd_aoa_connection_);
+ if (EOK != disconnect_rc) {
+ LOG4CXX_ERROR(logger_, "usbd_disconnect failed, error code "
+ << disconnect_rc);
+ }
+ }
+}
+
+bool operator==(const usbd_device_instance_t& a,
+ const usbd_device_instance_t& b) {
+ return a.path == b.path && a.devno == b.devno;
+}
+
+void UsbHandler::DeviceArrived(usbd_connection* connection,
+ usbd_device_instance_t* instance) {
+ for (Devices::const_iterator it = devices_.begin(); it != devices_.end();
+ ++it) {
+ if ((*it)->GetDeviceInstance() == *instance) return;
+ }
+ usbd_device* device_usbd = 0;
+ const int attach_rc = usbd_attach(connection, instance, 0, &device_usbd);
+ if (EOK != attach_rc) {
+ LOG4CXX_ERROR(logger_, "usbd_attach failed: " << attach_rc);
+ return;
+ }
+
+ usbd_desc_node* node;
+ usbd_device_descriptor_t* descriptor =
+ usbd_device_descriptor(device_usbd, &node);
+ if (NULL == descriptor) {
+ LOG4CXX_ERROR(logger_, "usbd_device_descriptor failed");
+ return;
+ }
+
+ PlatformUsbDevice* device(
+ new PlatformUsbDevice(instance, device_usbd, *descriptor));
+ devices_.push_back(device);
+ for (std::list<UsbDeviceListener*>::iterator it =
+ usb_device_listeners_.begin();
+ it != usb_device_listeners_.end(); ++it) {
+ (*it)->OnDeviceArrived(device);
+ }
+}
+
+void UsbHandler::DeviceLeft(usbd_device_instance_t* instance) {
+ PlatformUsbDevice* device = NULL;
+ for (Devices::iterator it = devices_.begin(); it != devices_.end(); ++it) {
+ if (((*it)->GetDeviceInstance()) == *instance) {
+ device = *it;
+ break;
+ }
+ }
+ if (NULL == device) {
+ return;
+ }
+
+ for (std::list<UsbDeviceListener*>::iterator it =
+ usb_device_listeners_.begin();
+ it != usb_device_listeners_.end(); ++it) {
+ (*it)->OnDeviceLeft(device);
+ }
+
+ for (Devices::iterator it = devices_.begin(); it != devices_.end(); ++it) {
+ if ((*it)->GetDeviceInstance() == *instance) {
+ const int detach_rc = usbd_detach((*it)->GetUsbdDevice());
+ if (EOK != detach_rc)
+ LOG4CXX_ERROR(logger_, "usbd_detach failed: " << detach_rc);
+ devices_.erase(it);
+ break;
+ }
+ }
+
+ delete device;
+}
+
+void UsbHandler::StartControlTransferSequence(
+ UsbControlTransferSequence* sequence, PlatformUsbDevice* device) {
+ usbd_descriptors_t* descriptor = usbd_parse_descriptors(
+ device->GetUsbdDevice(), NULL, USB_DESC_DEVICE, 0, NULL);
+ if (NULL == descriptor) {
+ LOG4CXX_ERROR(logger_, "usbd_parse_descriptors failed");
+ }
+
+ usbd_pipe* usb_pipe = 0;
+ const int open_pipe_rc =
+ usbd_open_pipe(device->GetUsbdDevice(), descriptor, &usb_pipe);
+ if (EOK != open_pipe_rc) {
+ LOG4CXX_ERROR(logger_, "usbd_open_pipe failed, error " << open_pipe_rc);
+ return;
+ }
+
+ for (UsbControlTransferSequence::Transfers::const_iterator it =
+ sequence->transfers().begin();
+ it != sequence->transfers().end(); ++it) {
+ UsbControlTransfer* transfer = *it;
+
+ usbd_urb* urb = usbd_alloc_urb(NULL);
+ if (NULL == urb) {
+ LOG4CXX_ERROR(logger_, "usbd_alloc_urb failed");
+ break;
+ }
+
+ unsigned char* buf =
+ static_cast<unsigned char*>(usbd_alloc(transfer->Length()));
+ if (NULL == buf) {
+ LOG4CXX_ERROR(logger_, "usbd_alloc failed");
+ break;
+ }
+
+ uint32_t flags = 0;
+ if (transfer->Direction() == UsbControlTransfer::IN) {
+ flags = URB_DIR_IN;
+ } else if (transfer->Direction() == UsbControlTransfer::OUT) {
+ flags = URB_DIR_OUT;
+ UsbControlOutTransfer* out_transfer =
+ static_cast<UsbControlOutTransfer*>(transfer);
+ std::copy(out_transfer->Data(),
+ out_transfer->Data() + out_transfer->Length(), buf);
+ } else {
+ assert(0);
+ }
+
+ assert(transfer->Type() == UsbControlTransfer::VENDOR);
+
+ usbd_setup_vendor(urb, flags, transfer->Request(), USB_TYPE_VENDOR,
+ transfer->Value(), transfer->Index(), buf,
+ transfer->Length());
+ const int io_rc = usbd_io(urb, usb_pipe, 0, 0, USBD_TIME_DEFAULT);
+
+ bool submit_next = true;
+ if (io_rc == EOK) {
+ if (transfer->Direction() == UsbControlTransfer::IN) {
+ submit_next =
+ static_cast<UsbControlInTransfer*>(transfer)->OnCompleted(buf);
+ }
+ } else {
+ LOG4CXX_ERROR(logger_, "usbd_io failed, error " << io_rc);
+ submit_next = false;
+ }
+ usbd_free(buf);
+ usbd_free_urb(urb);
+ if (!submit_next) break;
+ }
+ usbd_close_pipe(usb_pipe);
+
+ delete sequence;
+}
+
+void ArrivedCallback(usbd_connection* connection,
+ usbd_device_instance_t* instance) {
+ if (kAoaVid == instance->ident.vendor) return;
+ LOG4CXX_INFO(logger_, "USB device arrived (path "
+ << static_cast<int>(instance->path) << ", devno "
+ << static_cast<int>(instance->devno) << ", config "
+ << static_cast<int>(instance->config) << ", iface "
+ << static_cast<int>(instance->iface) << ")");
+ usb_handler->DeviceArrived(connection, instance);
+}
+
+void ArrivedAoaCallback(usbd_connection* connection,
+ usbd_device_instance_t* instance) {
+ if (kAoaVid != instance->ident.vendor) return;
+ LOG4CXX_INFO(logger_, "USB AOA device arrived (path "
+ << static_cast<int>(instance->path) << ", devno "
+ << static_cast<int>(instance->devno) << ", config "
+ << static_cast<int>(instance->config) << ", iface "
+ << static_cast<int>(instance->iface) << ")");
+ usb_handler->DeviceArrived(connection, instance);
+}
+
+void LeftCallback(usbd_connection* connection,
+ usbd_device_instance_t* instance) {
+ if (kAoaVid == instance->ident.vendor) return;
+ LOG4CXX_INFO(logger_, "USB device left (path "
+ << static_cast<int>(instance->path) << ", devno "
+ << static_cast<int>(instance->devno) << ", config "
+ << static_cast<int>(instance->config) << ", iface "
+ << static_cast<int>(instance->iface) << ")");
+ usb_handler->DeviceLeft(instance);
+}
+
+void LeftAoaCallback(usbd_connection* connection,
+ usbd_device_instance_t* instance) {
+ if (kAoaVid != instance->ident.vendor) return;
+ LOG4CXX_INFO(logger_, "USB AOA device left (path "
+ << static_cast<int>(instance->path) << ", devno "
+ << static_cast<int>(instance->devno) << ", config "
+ << static_cast<int>(instance->config) << ", iface "
+ << static_cast<int>(instance->iface) << ")");
+ usb_handler->DeviceLeft(instance);
+}
+
+TransportAdapter::Error UsbHandler::Init() {
+ {
+ usbd_device_ident_t interest = {
+ USBD_CONNECT_WILDCARD, USBD_CONNECT_WILDCARD, kAoaInterfaceSubclass,
+ USBD_CONNECT_WILDCARD, USBD_CONNECT_WILDCARD};
+ usbd_funcs_t funcs = {_USBDI_NFUNCS, ArrivedCallback, LeftCallback, NULL};
+ usbd_connect_parm_t cparms = {NULL, USB_VERSION, USBD_VERSION, 0, 0,
+ NULL, 0, &interest, &funcs};
+
+ const int connect_rc = usbd_connect(&cparms, &usbd_general_connection_);
+
+ if (EOK != connect_rc) {
+ LOG4CXX_ERROR(logger_, "usbd_connect failed, error code " << connect_rc);
+ return TransportAdapter::FAIL;
+ }
+ }
+ {
+ usbd_device_ident_t interest = {
+ kAoaVid, USBD_CONNECT_WILDCARD, USBD_CONNECT_WILDCARD,
+ kAoaInterfaceSubclass, USBD_CONNECT_WILDCARD};
+ usbd_funcs_t funcs = {_USBDI_NFUNCS, ArrivedAoaCallback,
+ LeftAoaCallback, NULL};
+ usbd_connect_parm_t cparms = {NULL, USB_VERSION, USBD_VERSION, 0, 0,
+ NULL, 0, &interest, &funcs};
+
+ const int connect_rc = usbd_connect(&cparms, &usbd_aoa_connection_);
+
+ if (EOK != connect_rc) {
+ LOG4CXX_ERROR(logger_, "usbd_connect failed, error code " << connect_rc);
+ return TransportAdapter::FAIL;
+ }
+ }
+
+ return TransportAdapter::OK;
+}
+
+} // namespace
+} // namespace
diff --git a/SDL_Core/src/components/transport_manager/src/usb/usb_aoa_adapter.cc b/SDL_Core/src/components/transport_manager/src/usb/usb_aoa_adapter.cc
new file mode 100644
index 000000000..88487bcc1
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/usb/usb_aoa_adapter.cc
@@ -0,0 +1,80 @@
+/**
+ * \file usb_aoa_adapter.cpp
+ * \brief UsbAoaAdapter class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/usb/usb_aoa_adapter.h"
+#include "transport_manager/usb/usb_device_scanner.h"
+#include "transport_manager/usb/usb_connection_factory.h"
+#include "transport_manager/usb/common.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+UsbAoaAdapter::UsbAoaAdapter()
+ : TransportAdapterImpl(new UsbDeviceScanner(this),
+ new UsbConnectionFactory(this), 0),
+ is_initialised_(false),
+ usb_handler_(new UsbHandler()) {
+ static_cast<UsbDeviceScanner*>(device_scanner_)->SetUsbHandler(usb_handler_);
+ static_cast<UsbConnectionFactory*>(server_connection_factory_)
+ ->SetUsbHandler(usb_handler_);
+}
+
+UsbAoaAdapter::~UsbAoaAdapter() {}
+
+DeviceType UsbAoaAdapter::GetDeviceType() const { return "sdl-usb-aoa"; }
+
+bool UsbAoaAdapter::IsInitialised() const {
+ return is_initialised_ && TransportAdapterImpl::IsInitialised();
+}
+
+TransportAdapter::Error UsbAoaAdapter::Init() {
+ TransportAdapter::Error error = usb_handler_->Init();
+ if (error != TransportAdapter::OK) {
+ return error;
+ }
+ error = TransportAdapterImpl::Init();
+ if (error != TransportAdapter::OK) {
+ return error;
+ }
+ is_initialised_ = true;
+ return TransportAdapter::OK;
+}
+
+bool UsbAoaAdapter::ToBeAutoConnected(DeviceSptr device) const {
+ return true;
+}
+
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/usb/usb_connection_factory.cc b/SDL_Core/src/components/transport_manager/src/usb/usb_connection_factory.cc
new file mode 100644
index 000000000..4081ac40f
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/usb/usb_connection_factory.cc
@@ -0,0 +1,91 @@
+/**
+ * \file usb_connection_factory.cc
+ * \brief UsbConnectionFactory class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "transport_manager/usb/usb_connection_factory.h"
+#include "transport_manager/usb/usb_device.h"
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+
+#if defined(__QNX__) || defined(__QNXNTO__)
+#include "transport_manager/usb/qnx/usb_connection.h"
+#else
+#include "transport_manager/usb/libusb/usb_connection.h"
+#endif
+
+namespace transport_manager {
+namespace transport_adapter {
+
+UsbConnectionFactory::UsbConnectionFactory(
+ TransportAdapterController* controller)
+ : controller_(controller), usb_handler_() {}
+
+TransportAdapter::Error UsbConnectionFactory::Init() {
+ return TransportAdapter::OK;
+}
+
+void UsbConnectionFactory::SetUsbHandler(const UsbHandlerSptr& usb_handler) {
+ usb_handler_ = usb_handler;
+}
+
+TransportAdapter::Error UsbConnectionFactory::CreateConnection(
+ const DeviceUID& device_uid, const ApplicationHandle& app_handle) {
+ DeviceSptr device = controller_->FindDevice(device_uid);
+ if (!device.valid()) {
+ LOG4CXX_ERROR(logger_, "device " << device_uid << " not found");
+ return TransportAdapter::BAD_PARAM;
+ }
+
+ UsbDevice* usb_device = static_cast<UsbDevice*>(device.get());
+ UsbConnection* usb_connection =
+ new UsbConnection(device_uid, app_handle, controller_, usb_handler_,
+ usb_device->usb_device());
+ ConnectionSptr connection(usb_connection);
+
+ controller_->ConnectionCreated(connection, device_uid, app_handle);
+ if (!usb_connection->Init()) {
+ return TransportAdapter::FAIL;
+ }
+ LOG4CXX_INFO(logger_, "Usb connection initialised");
+
+ return TransportAdapter::OK;
+}
+
+void UsbConnectionFactory::Terminate() {}
+
+bool UsbConnectionFactory::IsInitialised() const { return true; }
+
+UsbConnectionFactory::~UsbConnectionFactory() {}
+
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/SDL_Core/src/components/transport_manager/src/usb/usb_device_scanner.cc b/SDL_Core/src/components/transport_manager/src/usb/usb_device_scanner.cc
new file mode 100644
index 000000000..78358d419
--- /dev/null
+++ b/SDL_Core/src/components/transport_manager/src/usb/usb_device_scanner.cc
@@ -0,0 +1,213 @@
+/**
+ * \file usb_device_scanner.cc
+ * \brief UsbDeviceScanner class source file.
+ *
+ * Copyright (c) 2013, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sstream>
+
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/usb/usb_device_scanner.h"
+#include "transport_manager/usb/usb_device.h"
+#include "transport_manager/usb/common.h"
+
+namespace transport_manager {
+namespace transport_adapter {
+
+class AoaInitSequence : public UsbControlTransferSequence {
+ public:
+ AoaInitSequence();
+ virtual ~AoaInitSequence() {}
+
+ private:
+ class AoaGetProtocolRequest;
+ class AoaSendIdString;
+ class AoaTurnIntoAccessoryMode;
+};
+
+bool IsGoogleAccessory(uint16_t vid, uint16_t pid) {
+ return (vid == kAoaVid) && (pid == kAoaPid1 || pid == kAoaPid2);
+}
+
+void UsbDeviceScanner::OnDeviceArrived(PlatformUsbDevice* device) {
+ if (IsGoogleAccessory(device->vendor_id(), device->product_id())) {
+ GoogleAccessoryFound(device);
+ } else {
+ TurnIntoAccessoryMode(device);
+ }
+}
+
+void UsbDeviceScanner::OnDeviceLeft(PlatformUsbDevice* device) {
+ bool list_changed = false;
+ pthread_mutex_lock(&devices_mutex_);
+ for (Devices::iterator it = devices_.begin(); it != devices_.end(); ++it) {
+ if (device == *it) {
+ devices_.erase(it);
+ list_changed = true;
+ break;
+ }
+ }
+ pthread_mutex_unlock(&devices_mutex_);
+ if (list_changed) UpdateList();
+}
+
+UsbDeviceScanner::UsbDeviceScanner(TransportAdapterController* controller)
+ : controller_(controller) {
+ pthread_mutex_init(&devices_mutex_, 0);
+}
+
+UsbDeviceScanner::~UsbDeviceScanner() {
+ pthread_mutex_destroy(&devices_mutex_);
+}
+
+class AoaInitSequence::AoaGetProtocolRequest : public UsbControlInTransfer {
+ virtual ~AoaGetProtocolRequest() {}
+ virtual RequestType Type() const { return VENDOR; }
+ virtual uint8_t Request() const { return 51; }
+ virtual uint16_t Value() const { return 0; }
+ virtual uint16_t Index() const { return 0; }
+ virtual uint16_t Length() const { return 2; }
+ virtual bool OnCompleted(unsigned char* data) const {
+ const int protocol_version = data[1] << 8 | data[0];
+ LOG4CXX_INFO(logger_, "AOA protocol version " << protocol_version);
+ if (protocol_version == 0) {
+ // AOA protocol not supported
+ return false;
+ }
+ return true;
+ }
+};
+
+class AoaInitSequence::AoaSendIdString : public UsbControlOutTransfer {
+ public:
+ AoaSendIdString(uint16_t index, const char* string, uint16_t length)
+ : index_(index), string_(string), length_(length) {}
+
+ private:
+ virtual ~AoaSendIdString() {}
+ virtual RequestType Type() const { return VENDOR; }
+ virtual uint8_t Request() const { return 52; }
+ virtual uint16_t Value() const { return 0; }
+ virtual uint16_t Index() const { return index_; }
+ virtual uint16_t Length() const { return length_; }
+ virtual const char* Data() const { return string_; }
+ uint16_t index_;
+ const char* string_;
+ uint16_t length_;
+};
+
+class AoaInitSequence::AoaTurnIntoAccessoryMode : public UsbControlOutTransfer {
+ virtual ~AoaTurnIntoAccessoryMode() {}
+ virtual RequestType Type() const { return VENDOR; }
+ virtual uint8_t Request() const { return 53; }
+ virtual uint16_t Value() const { return 0; }
+ virtual uint16_t Index() const { return 0; }
+ virtual uint16_t Length() const { return 0; }
+ virtual const char* Data() const { return 0; }
+};
+
+static char manufacturer[] = "Ford";
+static char model_name[] = "HMI";
+static char description[] = "Human machine interface";
+static char version[] = "1.0";
+static char uri[] = "http://www.ford.com";
+static char serial_num[] = "N000000";
+
+AoaInitSequence::AoaInitSequence() : UsbControlTransferSequence() {
+ AddTransfer(new AoaGetProtocolRequest);
+ AddTransfer(new AoaSendIdString(0, manufacturer, sizeof(manufacturer)));
+ AddTransfer(new AoaSendIdString(1, model_name, sizeof(model_name)));
+ AddTransfer(new AoaSendIdString(2, description, sizeof(description)));
+ AddTransfer(new AoaSendIdString(3, version, sizeof(version)));
+ AddTransfer(new AoaSendIdString(4, uri, sizeof(uri)));
+ AddTransfer(new AoaSendIdString(5, serial_num, sizeof(serial_num)));
+ AddTransfer(new AoaTurnIntoAccessoryMode);
+}
+
+void UsbDeviceScanner::TurnIntoAccessoryMode(PlatformUsbDevice* device) {
+ LOG4CXX_INFO(logger_, "USB device VID:" << device->vendor_id()
+ << " PID:" << device->product_id()
+ << " turning into accessory mode");
+ GetUsbHandler()->StartControlTransferSequence(new AoaInitSequence, device);
+}
+
+void UsbDeviceScanner::GoogleAccessoryFound(PlatformUsbDevice* device) {
+ LOG4CXX_INFO(logger_, "Google accessory found");
+
+ pthread_mutex_lock(&devices_mutex_);
+ devices_.push_back(device);
+ pthread_mutex_unlock(&devices_mutex_);
+ LOG4CXX_INFO(logger_, "Google accessory (bus number "
+ << static_cast<int>(device->bus_number())
+ << ", address "
+ << static_cast<int>(device->address())
+ << ") identified as: " << device->GetManufacturer()
+ << ", " << device->GetProductName());
+ UpdateList();
+}
+
+TransportAdapter::Error UsbDeviceScanner::Init() {
+ return TransportAdapter::OK;
+}
+
+TransportAdapter::Error UsbDeviceScanner::Scan() {
+ return TransportAdapter::OK;
+}
+
+void UsbDeviceScanner::UpdateList() {
+ DeviceVector device_vector;
+ pthread_mutex_lock(&devices_mutex_);
+ for (Devices::const_iterator it = devices_.begin(); it != devices_.end();
+ ++it) {
+ const std::string device_name =
+ (*it)->GetManufacturer() + " " + (*it)->GetProductName();
+ std::ostringstream oss;
+ oss << (*it)->GetManufacturer() << ":" << (*it)->GetProductName() << ":"
+ << (*it)->GetSerialNumber() << ":"
+ << static_cast<int>((*it)->bus_number()) << ":"
+ << static_cast<int>((*it)->address());
+ const DeviceUID device_uid = oss.str();
+ DeviceSptr device(new UsbDevice(*it, device_name, device_uid));
+ device_vector.push_back(device);
+ }
+ pthread_mutex_unlock(&devices_mutex_);
+
+ LOG4CXX_INFO(logger_, "USB search done " << device_vector.size());
+ controller_->SearchDeviceDone(device_vector);
+}
+
+void UsbDeviceScanner::Terminate() {}
+
+bool UsbDeviceScanner::IsInitialised() const { return true; }
+
+} // namespace
+} // namespace